@madie/madie-design-system 1.2.72 → 1.2.73

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.
@@ -40,213 +40,213 @@ const iconStyle = {
40
40
  display: "block",
41
41
  };
42
42
 
43
- const MenuBar = ({ editor, disabled }) => {
44
- if (!editor) {
45
- return null;
46
- }
47
- return (
48
- <div
49
- className="control-group"
50
- role="toolbar"
51
- aria-label="Text formatting toolbar"
52
- data-testid="rich-text-editor-toolbar"
43
+ const MenuBar = ({editor, disabled}) => {
44
+ if (!editor) {
45
+ return null;
46
+ }
47
+ return (
48
+ <div
49
+ className="control-group"
50
+ role="toolbar"
51
+ aria-label="Text formatting toolbar"
52
+ data-testid="rich-text-editor-toolbar"
53
+ >
54
+ <div className="button-group">
55
+ <Tooltip
56
+ data-testid="undo-tooltip"
57
+ title="Undo"
58
+ placement="top"
59
+ enterDelay={1000}
60
+ arrow
61
+ >
62
+ <IconButton
63
+ key={"undo"}
64
+ onClick={() =>
65
+ editor.chain().focus().undo().run()
66
+ }
67
+ >
68
+ <UndoIcon/>
69
+ </IconButton>
70
+ </Tooltip>
71
+ <Tooltip
72
+ data-testid="redo-tooltip"
73
+ title="Redo"
74
+ placement="top"
75
+ enterDelay={1000}
76
+ arrow
77
+ >
78
+ <IconButton
79
+ key={"redo"}
80
+ onClick={() =>
81
+ editor.chain().focus().redo().run()
82
+ }
83
+ style={{borderRight: "solid 1px #9c9c9c"}}
84
+ >
85
+ <RedoIcon/>
86
+ </IconButton>
87
+ </Tooltip>
88
+ <Tooltip
89
+ data-testid="bold-tooltip"
90
+ title="Bold"
91
+ placement="top"
92
+ enterDelay={1000}
93
+ arrow
94
+ >
95
+ <IconButton
96
+ key={"bold"}
97
+ onClick={() =>
98
+ editor.chain().focus().toggleBold().run()
99
+ }
100
+ aria-label="Bold"
101
+ aria-pressed={editor.isActive("bold")}
102
+ className={editor.isActive("bold") ? "is-active" : ""}
103
+ disabled={disabled}
104
+ type="button"
105
+ >
106
+ <FormatBoldIcon/>
107
+ </IconButton>
108
+ </Tooltip>
109
+ <Tooltip
110
+ data-testid="italic-tooltip"
111
+ title="Italic"
112
+ placement="top"
113
+ enterDelay={1000}
114
+ arrow
115
+ >
116
+ <IconButton
117
+ key={"italic"}
118
+ onClick={() =>
119
+ editor.chain().focus().toggleItalic().run()
120
+ }
121
+ aria-label="Italic"
122
+ aria-pressed={editor.isActive("italic")}
123
+ className={editor.isActive("italic") ? "is-active" : ""}
124
+ disabled={disabled}
125
+ type="button"
126
+ >
127
+ <FormatItalicIcon/>
128
+ </IconButton>
129
+ </Tooltip>
130
+ <Tooltip
131
+ data-testid="underline-tooltip"
132
+ title="Underline"
133
+ placement="top"
134
+ enterDelay={1000}
135
+ arrow
53
136
  >
54
- <div className="button-group">
55
- <Tooltip
56
- data-testid="undo-tooltip"
57
- title="Undo"
58
- placement="top"
59
- enterDelay={1000}
60
- arrow
61
- >
62
- <IconButton
63
- key={"undo"}
64
- onClick={() =>
65
- editor.chain().focus().undo().run()
66
- }
67
- >
68
- <UndoIcon />
69
- </IconButton>
70
- </Tooltip>
71
- <Tooltip
72
- data-testid="redo-tooltip"
73
- title="Redo"
74
- placement="top"
75
- enterDelay={1000}
76
- arrow
77
- >
78
- <IconButton
79
- key={"redo"}
80
- onClick={() =>
81
- editor.chain().focus().redo().run()
82
- }
83
- style={{ borderRight: "solid 1px #9c9c9c" }}
84
- >
85
- <RedoIcon />
86
- </IconButton>
87
- </Tooltip>
88
- <Tooltip
89
- data-testid="bold-tooltip"
90
- title="Bold"
91
- placement="top"
92
- enterDelay={1000}
93
- arrow
94
- >
95
- <IconButton
96
- key={"bold"}
97
- onClick={() =>
98
- editor.chain().focus().toggleBold().run()
99
- }
100
- aria-label="Bold"
101
- aria-pressed={editor.isActive("bold")}
102
- className={editor.isActive("bold") ? "is-active" : ""}
103
- disabled={disabled}
104
- type="button"
105
- >
106
- <FormatBoldIcon />
107
- </IconButton>
108
- </Tooltip>
109
- <Tooltip
110
- data-testid="italic-tooltip"
111
- title="Italic"
112
- placement="top"
113
- enterDelay={1000}
114
- arrow
115
- >
116
- <IconButton
117
- key={"italic"}
118
- onClick={() =>
119
- editor.chain().focus().toggleItalic().run()
120
- }
121
- aria-label="Italic"
122
- aria-pressed={editor.isActive("italic")}
123
- className={editor.isActive("italic") ? "is-active" : ""}
124
- disabled={disabled}
125
- type="button"
126
- >
127
- <FormatItalicIcon />
128
- </IconButton>
129
- </Tooltip>
130
- <Tooltip
131
- data-testid="underline-tooltip"
132
- title="Underline"
133
- placement="top"
134
- enterDelay={1000}
135
- arrow
136
- >
137
- <IconButton
138
- key={"underline"}
139
- onClick={() =>
140
- editor.chain().focus().toggleUnderline().run()
141
- }
142
- aria-label="Underline"
143
- aria-pressed={editor.isActive("underline")}
144
- className={
145
- editor.isActive("underline") ? "is-active" : ""
146
- }
147
- disabled={disabled}
148
- type="button"
149
- >
150
- <FormatUnderlinedIcon />
151
- </IconButton>
152
- </Tooltip>
153
- <Tooltip
154
- data-testid="strikethrough-tooltip"
155
- title="Strikethrough"
156
- placement="top"
157
- enterDelay={1000}
158
- arrow
159
- >
160
- <IconButton
161
- key={"strike"}
162
- onClick={() =>
163
- editor.chain().focus().toggleStrike().run()
164
- }
165
- aria-label="Strikethrough"
166
- aria-pressed={editor.isActive("strike")}
167
- className={editor.isActive("strike") ? "is-active" : ""}
168
- style={{ borderRight: "solid 1px #9c9c9c" }}
169
- disabled={disabled}
170
- type="button"
171
- >
172
- <StrikethroughSIcon />
173
- </IconButton>
174
- </Tooltip>
175
- <Tooltip
176
- data-testid="orderedlist-tooltip"
177
- title="Ordered List"
178
- placement="top"
179
- enterDelay={1000}
180
- arrow
181
- >
182
- <IconButton
183
- key={"orderedList"}
184
- onClick={() =>
185
- editor.chain().focus().toggleOrderedList().run()
186
- }
187
- aria-label="Ordered List"
188
- aria-pressed={editor.isActive("orderedList")}
189
- className={
190
- editor.isActive("orderedList") ? "is-active" : ""
191
- }
192
- disabled={disabled}
193
- type="button"
194
- >
195
- <FormatListNumberedIcon />
196
- </IconButton>
197
- </Tooltip>
198
- <Tooltip
199
- data-testid="bulletedlist-tooltip"
200
- title="Bulleted List"
201
- placement="top"
202
- enterDelay={1000}
203
- arrow
204
- >
205
- <IconButton
206
- key={"bulletList"}
207
- onClick={() =>
208
- editor.chain().focus().toggleBulletList().run()
209
- }
210
- aria-label="Bulleted List"
211
- aria-pressed={editor.isActive("bulletList")}
212
- className={
213
- editor.isActive("bulletList") ? "is-active" : ""
214
- }
215
- style={{ borderRight: "solid 1px #9c9c9c" }}
216
- disabled={disabled}
217
- type="button"
218
- >
219
- <FormatListBulletedIcon />
220
- </IconButton>
221
- </Tooltip>
222
- <Tooltip
223
- data-testid="table-tooltip"
224
- title="Table"
225
- placement="top"
226
- enterDelay={1000}
227
- arrow
228
- >
229
- <IconButton
230
- key={"insertTable"}
231
- onClick={() =>
232
- editor.commands.insertTable({
233
- rows: 3,
234
- cols: 3,
235
- withHeaderRow: true,
236
- })
237
- }
238
- aria-label="Insert Table"
239
- className={
240
- editor.isActive("insertTable") ? "is-active" : ""
241
- }
242
- disabled={disabled}
243
- type="button"
244
- >
137
+ <IconButton
138
+ key={"underline"}
139
+ onClick={() =>
140
+ editor.chain().focus().toggleUnderline().run()
141
+ }
142
+ aria-label="Underline"
143
+ aria-pressed={editor.isActive("underline")}
144
+ className={
145
+ editor.isActive("underline") ? "is-active" : ""
146
+ }
147
+ disabled={disabled}
148
+ type="button"
149
+ >
150
+ <FormatUnderlinedIcon/>
151
+ </IconButton>
152
+ </Tooltip>
153
+ <Tooltip
154
+ data-testid="strikethrough-tooltip"
155
+ title="Strikethrough"
156
+ placement="top"
157
+ enterDelay={1000}
158
+ arrow
159
+ >
160
+ <IconButton
161
+ key={"strike"}
162
+ onClick={() =>
163
+ editor.chain().focus().toggleStrike().run()
164
+ }
165
+ aria-label="Strikethrough"
166
+ aria-pressed={editor.isActive("strike")}
167
+ className={editor.isActive("strike") ? "is-active" : ""}
168
+ style={{borderRight: "solid 1px #9c9c9c"}}
169
+ disabled={disabled}
170
+ type="button"
171
+ >
172
+ <StrikethroughSIcon/>
173
+ </IconButton>
174
+ </Tooltip>
175
+ <Tooltip
176
+ data-testid="orderedlist-tooltip"
177
+ title="Ordered List"
178
+ placement="top"
179
+ enterDelay={1000}
180
+ arrow
181
+ >
182
+ <IconButton
183
+ key={"orderedList"}
184
+ onClick={() =>
185
+ editor.chain().focus().toggleOrderedList().run()
186
+ }
187
+ aria-label="Ordered List"
188
+ aria-pressed={editor.isActive("orderedList")}
189
+ className={
190
+ editor.isActive("orderedList") ? "is-active" : ""
191
+ }
192
+ disabled={disabled}
193
+ type="button"
194
+ >
195
+ <FormatListNumberedIcon/>
196
+ </IconButton>
197
+ </Tooltip>
198
+ <Tooltip
199
+ data-testid="bulletedlist-tooltip"
200
+ title="Bulleted List"
201
+ placement="top"
202
+ enterDelay={1000}
203
+ arrow
204
+ >
205
+ <IconButton
206
+ key={"bulletList"}
207
+ onClick={() =>
208
+ editor.chain().focus().toggleBulletList().run()
209
+ }
210
+ aria-label="Bulleted List"
211
+ aria-pressed={editor.isActive("bulletList")}
212
+ className={
213
+ editor.isActive("bulletList") ? "is-active" : ""
214
+ }
215
+ style={{borderRight: "solid 1px #9c9c9c"}}
216
+ disabled={disabled}
217
+ type="button"
218
+ >
219
+ <FormatListBulletedIcon/>
220
+ </IconButton>
221
+ </Tooltip>
222
+ <Tooltip
223
+ data-testid="table-tooltip"
224
+ title="Table"
225
+ placement="top"
226
+ enterDelay={1000}
227
+ arrow
228
+ >
229
+ <IconButton
230
+ key={"insertTable"}
231
+ onClick={() =>
232
+ editor.commands.insertTable({
233
+ rows: 3,
234
+ cols: 3,
235
+ withHeaderRow: true,
236
+ })
237
+ }
238
+ aria-label="Insert Table"
239
+ className={
240
+ editor.isActive("insertTable") ? "is-active" : ""
241
+ }
242
+ disabled={disabled}
243
+ type="button"
244
+ >
245
245
 
246
- <TableChartIcon />
247
- </IconButton>
248
- </Tooltip>
249
- {editor.isActive("table") && (
246
+ <TableChartIcon/>
247
+ </IconButton>
248
+ </Tooltip>
249
+ {editor.isActive("table") && (
250
250
  <>
251
251
  <Tooltip
252
252
  data-testid="add-row-above-tooltip"
@@ -259,7 +259,7 @@ const MenuBar = ({ editor, disabled }) => {
259
259
  key="addRowAbove"
260
260
  onClick={() => editor.chain().focus().addRowBefore().run()}
261
261
  >
262
- <AddRowAboveIcon style={iconStyle} />
262
+ <AddRowAboveIcon style={iconStyle}/>
263
263
  </IconButton>
264
264
  </Tooltip>
265
265
  <Tooltip
@@ -273,7 +273,7 @@ const MenuBar = ({ editor, disabled }) => {
273
273
  key="addRowBelow"
274
274
  onClick={() => editor.chain().focus().addRowAfter().run()}
275
275
  >
276
- <AddRowBelowIcon style={iconStyle} />
276
+ <AddRowBelowIcon style={iconStyle}/>
277
277
  </IconButton>
278
278
  </Tooltip>
279
279
 
@@ -288,7 +288,7 @@ const MenuBar = ({ editor, disabled }) => {
288
288
  key="deleteRow"
289
289
  onClick={() => editor.chain().focus().deleteRow().run()}
290
290
  >
291
- <DeleteRowIcon style={iconStyle} />
291
+ <DeleteRowIcon style={iconStyle}/>
292
292
  </IconButton>
293
293
  </Tooltip>
294
294
  <Tooltip
@@ -302,7 +302,7 @@ const MenuBar = ({ editor, disabled }) => {
302
302
  key="addColumnRight"
303
303
  onClick={() => editor.chain().focus().addColumnAfter().run()}
304
304
  >
305
- <AddColumnRightIcon style={iconStyle} />
305
+ <AddColumnRightIcon style={iconStyle}/>
306
306
  </IconButton>
307
307
  </Tooltip>
308
308
  <Tooltip
@@ -316,7 +316,7 @@ const MenuBar = ({ editor, disabled }) => {
316
316
  key="addColumnLeft"
317
317
  onClick={() => editor.chain().focus().addColumnBefore().run()}
318
318
  >
319
- <AddColumnLeftIcon style={iconStyle} />
319
+ <AddColumnLeftIcon style={iconStyle}/>
320
320
  </IconButton>
321
321
  </Tooltip>
322
322
 
@@ -331,7 +331,7 @@ const MenuBar = ({ editor, disabled }) => {
331
331
  key="deleteColumn"
332
332
  onClick={() => editor.chain().focus().deleteColumn().run()}
333
333
  >
334
- <DeleteColumnIcon style={iconStyle} />
334
+ <DeleteColumnIcon style={iconStyle}/>
335
335
  </IconButton>
336
336
  </Tooltip>
337
337
 
@@ -345,9 +345,9 @@ const MenuBar = ({ editor, disabled }) => {
345
345
  <IconButton
346
346
  key="deleteTable"
347
347
  onClick={() => editor.chain().focus().deleteTable().run()}
348
- style={{ borderRight: "solid 1px #9c9c9c" }}
348
+ style={{borderRight: "solid 1px #9c9c9c"}}
349
349
  >
350
- <DeleteTableIcon style={iconStyle} />
350
+ <DeleteTableIcon style={iconStyle}/>
351
351
  </IconButton>
352
352
  </Tooltip>
353
353
  </>
@@ -358,28 +358,74 @@ const MenuBar = ({ editor, disabled }) => {
358
358
  };
359
359
 
360
360
  const RichTextEditor = ({
361
- name,
362
- id,
363
- error = false,
364
- helperText,
365
- required = false,
366
- label,
367
- onChange,
368
- onBlur,
369
- content,
370
- disabled = false,
371
- readOnly = false,
361
+ name,
362
+ id,
363
+ error = false,
364
+ helperText,
365
+ required = false,
366
+ label,
367
+ onChange,
368
+ onBlur,
369
+ content,
370
+ disabled = false,
371
+ readOnly = false,
372
372
  }) => {
373
- if(readOnly) {
373
+ const labelStyles = [
374
+ {
375
+ backgroundColor: "transparent",
376
+ borderColor: "#8C8C8C",
377
+ display: "inline-flex",
378
+ flexDirection: "row-reverse",
379
+ alignSelf: "baseline",
380
+ textTransform: "none",
381
+ // force it outside the select box
382
+ position: "initial",
383
+ transform: "translateX(0px) translateY(0px)",
384
+ fontFamily: "Rubik",
385
+ fontWeight: 500,
386
+ fontSize: 14,
387
+ color: "#333",
388
+ "& .MuiInputLabel-asterisk": {
389
+ color: "#AE1C1C !important",
390
+ marginRight: "3px !important", //this was
391
+ },
392
+ },
393
+ required && {
394
+ transform: "translateX(-12px) translateY(0px)",
395
+ "& .MuiInputLabel-asterisk": {
396
+ color: "#D92F2",
397
+ marginRight: "3px !important", //this was
398
+ },
399
+ },
400
+ error && {
401
+ color: "#AE1C1C !important",
402
+ },
403
+ ];
404
+
405
+ if (readOnly) {
374
406
  return (
375
- <p
376
- className="rich-text-editor_read_only"
377
- data-testid={`${id}-value`}
378
- aria-labelledby={`${id}-label`}
379
- dangerouslySetInnerHTML={{
380
- __html: content ? DOMPurify.sanitize(content) : "-",
381
- }}
382
- />
407
+ <div className="rich-text-editor" data-testid={`${kebabCase(id)}-rich-text-editor`}>
408
+ <InputLabel
409
+ id={`${id}-label`}
410
+ shrink
411
+ required={required}
412
+ error={error}
413
+ htmlFor={id}
414
+ style={{marginBottom: 0, height: 16}} // force a height
415
+ sx={labelStyles}
416
+ disabled={false}
417
+ >
418
+ {label}
419
+ </InputLabel>
420
+ <p
421
+ className="rich-text-editor_read_only"
422
+ data-testid={`${id}-value`}
423
+ aria-labelledby={`${id}-label`}
424
+ dangerouslySetInnerHTML={{
425
+ __html: content ? DOMPurify.sanitize(content) : "-",
426
+ }}
427
+ />
428
+ </div>
383
429
  );
384
430
  }
385
431
 
@@ -402,7 +448,7 @@ const RichTextEditor = ({
402
448
  Underline,
403
449
  Strike.extend({
404
450
  strike: false, // disable default strike through
405
- renderHTML({ HTMLAttributes }) {
451
+ renderHTML({HTMLAttributes}) {
406
452
  return ["del", HTMLAttributes, 0];
407
453
  },
408
454
  }),
@@ -410,7 +456,7 @@ const RichTextEditor = ({
410
456
  shouldRerenderOnTransaction: false,
411
457
  content,
412
458
  editable: !disabled,
413
- onUpdate: ({ editor }) => {
459
+ onUpdate: ({editor}) => {
414
460
  const newValue = editor.getHTML();
415
461
  onChange?.(newValue);
416
462
  },
@@ -426,124 +472,95 @@ const RichTextEditor = ({
426
472
  }, [content, editor, disabled]);
427
473
 
428
474
  React.useEffect(() => {
429
- if (!editor || !onBlur || !name) return;
475
+ if (!editor || !onBlur || !name) return;
430
476
 
431
- const handleBlur = () => {
432
- onBlur({ target: { name } });
433
- };
477
+ const handleBlur = () => {
478
+ onBlur({target: {name}});
479
+ };
434
480
 
435
- editor.on("blur", handleBlur);
481
+ editor.on("blur", handleBlur);
436
482
 
437
- return () => {
438
- editor.off("blur", handleBlur);
439
- };
440
- }, [editor, onBlur, name]);
483
+ return () => {
484
+ editor.off("blur", handleBlur);
485
+ };
486
+ }, [editor, onBlur, name]);
441
487
 
442
- return (
443
- <div
444
- className="rich-text-editor"
445
- data-testid={`${kebabCase(id)}-rich-text-editor`}
446
- >
447
- <InputLabel
448
- id={`${id}-label`}
449
- shrink
450
- required={required}
451
- error={error}
452
- htmlFor={id}
453
- style={{ marginBottom: 0, height: 16 }} // force a height
454
- sx={[
455
- {
456
- backgroundColor: "transparent",
457
- borderColor: "#8C8C8C",
458
- display: "inline-flex",
459
- flexDirection: "row-reverse",
460
- alignSelf: "baseline",
461
- textTransform: "none",
462
- // force it outside the select box
463
- position: "initial",
464
- transform: "translateX(0px) translateY(0px)",
465
- fontFamily: "Rubik",
466
- fontWeight: 500,
467
- fontSize: 14,
468
- color: "#333",
469
- "& .MuiInputLabel-asterisk": {
470
- color: "#AE1C1C !important",
471
- marginRight: "3px !important", //this was
472
- },
473
- },
474
- required && {
475
- transform: "translateX(-12px) translateY(0px)",
476
- "& .MuiInputLabel-asterisk": {
477
- color: "#D92F2",
478
- marginRight: "3px !important", //this was
479
- },
480
- },
481
- error && {
482
- color: "#AE1C1C !important",
483
- },
484
- ]}
485
- >
486
- {label}
487
- </InputLabel>
488
+ return (
489
+ <div
490
+ className="rich-text-editor"
491
+ data-testid={`${kebabCase(id)}-rich-text-editor`}
492
+ >
493
+ <InputLabel
494
+ id={`${id}-label`}
495
+ shrink
496
+ required={required}
497
+ error={error}
498
+ htmlFor={id}
499
+ style={{marginBottom: 0, height: 16}} // force a height
500
+ sx={labelStyles}
501
+ disabled
502
+ >
503
+ {label}
504
+ </InputLabel>
488
505
 
489
- {helperText && (
490
- <FormHelperText
491
- tabIndex={0}
492
- aria-live="polite"
493
- id={`${id}-helper-text`}
494
- data-testid={`${id}-helper-text`}
495
- sx={[
496
- {
497
- margin: "4px 0px 0px 0px",
498
- color: "#515151",
499
- lineHeight: 1,
500
- },
501
- error && {
502
- color: "#AE1C1C !important",
503
- },
504
- ]}
505
- >
506
- {helperText}
507
- </FormHelperText>
508
- )}
509
- <>
510
- <MenuBar editor={editor} disabled={disabled} />
511
- <EditorContent
512
- id={id}
513
- tabIndex={0}
514
- data-testid="rich-text-editor-content"
515
- editor={editor}
516
- aria-labelledby={`${id}-label`}
517
- aria-describedby={
518
- helperText ? `${id}-helper-text` : undefined
519
- }
520
- aria-multiline="true"
521
- aria-required={required || undefined}
522
- aria-invalid={error || undefined}
523
- className={`${error ? "has-error" : ""}`}
524
- />
525
- </>
526
- </div>
527
- );
506
+ {helperText && (
507
+ <FormHelperText
508
+ tabIndex={0}
509
+ aria-live="polite"
510
+ id={`${id}-helper-text`}
511
+ data-testid={`${id}-helper-text`}
512
+ sx={[
513
+ {
514
+ margin: "4px 0px 0px 0px",
515
+ color: "#515151",
516
+ lineHeight: 1,
517
+ },
518
+ error && {
519
+ color: "#AE1C1C !important",
520
+ },
521
+ ]}
522
+ >
523
+ {helperText}
524
+ </FormHelperText>
525
+ )}
526
+ <>
527
+ <MenuBar editor={editor} disabled={disabled}/>
528
+ <EditorContent
529
+ id={id}
530
+ tabIndex={0}
531
+ data-testid="rich-text-editor-content"
532
+ editor={editor}
533
+ aria-labelledby={`${id}-label`}
534
+ aria-describedby={
535
+ helperText ? `${id}-helper-text` : undefined
536
+ }
537
+ aria-multiline="true"
538
+ aria-required={required || undefined}
539
+ aria-invalid={error || undefined}
540
+ className={`${error ? "has-error" : ""}`}
541
+ />
542
+ </>
543
+ </div>
544
+ );
528
545
  };
529
546
 
530
547
  RichTextEditor.propTypes = {
531
548
  id: PropTypes.string,
532
- name: PropTypes.string,
549
+ name: PropTypes.string,
533
550
  error: PropTypes.bool,
534
- helperText: PropTypes.string,
551
+ helperText: PropTypes.string,
535
552
  required: PropTypes.bool,
536
553
  label: PropTypes.string,
537
554
  onChange: PropTypes.func,
538
- onBlur: PropTypes.func,
555
+ onBlur: PropTypes.func,
539
556
  content: PropTypes.any,
540
557
  disabled: PropTypes.bool,
541
- readOnly: PropTypes.bool,
558
+ readOnly: PropTypes.bool,
542
559
  };
543
560
 
544
561
  MenuBar.propTypes = {
545
562
  editor: PropTypes.any,
546
- disabled: PropTypes.bool,
563
+ disabled: PropTypes.bool,
547
564
  };
548
565
 
549
566
  export default RichTextEditor;