@pie-lib/editable-html-tip-tap 2.1.12 → 2.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [2.1.14](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html-tip-tap@2.1.13...@pie-lib/editable-html-tip-tap@2.1.14) (2026-08-21)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **theming:** move the grey palette reads onto --pie-\* tokens PIE-856 ([9bbaf10](https://github.com/pie-framework/pie-lib/commit/9bbaf10ab25a050e4d1b727f84c7ad9fdc952f6a)), closes [#C0C3](https://github.com/pie-framework/pie-lib/issues/C0C3)
11
+
12
+ ## [2.1.13](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html-tip-tap@2.1.12...@pie-lib/editable-html-tip-tap@2.1.13) (2026-08-18)
13
+
14
+ ### Bug Fixes
15
+
16
+ - **editable-html-tip-tap:** give toolbar buttons accessible names PIE-708 ([8cf0065](https://github.com/pie-framework/pie-lib/commit/8cf0065ba7ba684c5d51bcdee3cce8166b1cd8bc))
17
+
6
18
  ## [2.1.12](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html-tip-tap@2.1.11...@pie-lib/editable-html-tip-tap@2.1.12) (2026-08-13)
7
19
 
8
20
  **Note:** Version bump only for package @pie-lib/editable-html-tip-tap
@@ -13,6 +13,7 @@ var _react = _interopRequireWildcard(require("react"));
13
13
  var _classnames = _interopRequireDefault(require("classnames"));
14
14
  var _styles = require("@mui/material/styles");
15
15
  var _prosemirrorState = require("prosemirror-state");
16
+ var _renderUi = require("@pie-lib/render-ui");
16
17
  var _FormatBold = _interopRequireDefault(require("@mui/icons-material/FormatBold"));
17
18
  var _FormatItalic = _interopRequireDefault(require("@mui/icons-material/FormatItalic"));
18
19
  var _FormatStrikethrough = _interopRequireDefault(require("@mui/icons-material/FormatStrikethrough"));
@@ -48,7 +49,9 @@ var SuperscriptIcon = function SuperscriptIcon() {
48
49
  height: "24px",
49
50
  viewBox: "0 0 24 24",
50
51
  width: "24px",
51
- fill: "none"
52
+ fill: "none",
53
+ "aria-hidden": "true",
54
+ focusable: "false"
52
55
  }, /*#__PURE__*/_react["default"].createElement("path", {
53
56
  d: "M22,7h-2v1h3v1h-4V7c0-0.55,0.45-1,1-1h2V5h-3V4h3c0.55,0,1,0.45,1,1v1C23,6.55,22.55,7,22,7z M5.88,20h2.66l3.4-5.42h0.12 l3.4,5.42h2.66l-4.65-7.27L17.81,6h-2.68l-3.07,4.99h-0.12L8.85,6H6.19l4.32,6.73L5.88,20z",
54
57
  fill: "currentColor"
@@ -60,7 +63,9 @@ var SubscriptIcon = function SubscriptIcon() {
60
63
  height: "24px",
61
64
  viewBox: "0 0 24 24",
62
65
  width: "24px",
63
- fill: "none"
66
+ fill: "none",
67
+ "aria-hidden": "true",
68
+ focusable: "false"
64
69
  }, /*#__PURE__*/_react["default"].createElement("path", {
65
70
  d: "M22,18h-2v1h3v1h-4v-2c0-0.55,0.45-1,1-1h2v-1h-3v-1h3c0.55,0,1,0.45,1,1v1C23,17.55,22.55,18,22,18z M5.88,18h2.66 l3.4-5.42h0.12l3.4,5.42h2.66l-4.65-7.27L17.81,4h-2.68l-3.07,4.99h-0.12L8.85,4H6.19l4.32,6.73L5.88,18z",
66
71
  fill: "currentColor"
@@ -76,7 +81,9 @@ var HeadingIcon = function HeadingIcon() {
76
81
  style: {
77
82
  width: '20px',
78
83
  height: '18px'
79
- }
84
+ },
85
+ "aria-hidden": "true",
86
+ focusable: "false"
80
87
  }, /*#__PURE__*/_react["default"].createElement("path", {
81
88
  d: "M27 4V24H29C29.5 24 30 24.5 30 25V27C30 27.5625 29.5 28 29 28H19C18.4375 28 18 27.5625 18 27V25C18 24.5 18.4375 24 19 24H21V16H9V24H11C11.5 24 12 24.5 12 25V27C12 27.5625 11.5 28 11 28H1C0.4375 28 0 27.5625 0 27V25C0 24.5 0.4375 24 1 24H3V4H1C0.4375 4 0 3.5625 0 3V1C0 0.5 0.4375 0 1 0H11C11.5 0 12 0.5 12 1V3C12 3.5625 11.5 4 11 4H9V12H21V4H19C18.4375 4 18 3.5625 18 3V1C18 0.5 18.4375 0 19 0H29C29.5 0 30 0.5 30 1V3C30 3.5625 29.5 4 29 4H27Z",
82
89
  fill: "currentColor"
@@ -173,6 +180,7 @@ function MenuBar(_ref) {
173
180
  var toolbarButtons = (0, _react.useMemo)(function () {
174
181
  return [{
175
182
  icon: /*#__PURE__*/_react["default"].createElement(_GridOn["default"], null),
183
+ label: 'Insert table',
176
184
  onClick: function onClick(editor) {
177
185
  return editor.chain().focus().insertTable({
178
186
  rows: 2,
@@ -191,6 +199,7 @@ function MenuBar(_ref) {
191
199
  }
192
200
  }, {
193
201
  icon: /*#__PURE__*/_react["default"].createElement(_TableIcons.AddRow, null),
202
+ label: 'Add table row',
194
203
  onClick: function onClick(editor) {
195
204
  return editor.chain().focus().addRowAfter().run();
196
205
  },
@@ -205,6 +214,7 @@ function MenuBar(_ref) {
205
214
  }
206
215
  }, {
207
216
  icon: /*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveRow, null),
217
+ label: 'Remove table row',
208
218
  onClick: function onClick(editor) {
209
219
  return editor.chain().focus().deleteRow().run();
210
220
  },
@@ -219,6 +229,7 @@ function MenuBar(_ref) {
219
229
  }
220
230
  }, {
221
231
  icon: /*#__PURE__*/_react["default"].createElement(_TableIcons.AddColumn, null),
232
+ label: 'Add table column',
222
233
  onClick: function onClick(editor) {
223
234
  return editor.chain().focus().addColumnAfter().run();
224
235
  },
@@ -233,6 +244,7 @@ function MenuBar(_ref) {
233
244
  }
234
245
  }, {
235
246
  icon: /*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveColumn, null),
247
+ label: 'Remove table column',
236
248
  onClick: function onClick(editor) {
237
249
  return editor.chain().focus().deleteColumn().run();
238
250
  },
@@ -247,6 +259,7 @@ function MenuBar(_ref) {
247
259
  }
248
260
  }, {
249
261
  icon: /*#__PURE__*/_react["default"].createElement(_TableIcons.RemoveTable, null),
262
+ label: 'Remove table',
250
263
  onClick: function onClick(editor) {
251
264
  return editor.chain().focus().deleteTable().run();
252
265
  },
@@ -261,6 +274,8 @@ function MenuBar(_ref) {
261
274
  }
262
275
  }, {
263
276
  icon: /*#__PURE__*/_react["default"].createElement(_BorderAll["default"], null),
277
+ label: 'Table borders',
278
+ toggle: true,
264
279
  onClick: function onClick(editor) {
265
280
  var tableAttrs = editor.getAttributes('table');
266
281
  var update = _objectSpread(_objectSpread({}, tableAttrs), {}, {
@@ -279,6 +294,8 @@ function MenuBar(_ref) {
279
294
  }
280
295
  }, {
281
296
  icon: /*#__PURE__*/_react["default"].createElement(_FormatBold["default"], null),
297
+ label: 'Bold',
298
+ toggle: true,
282
299
  onClick: function onClick(editor) {
283
300
  return editor.chain().focus().toggleBold().run();
284
301
  },
@@ -293,6 +310,8 @@ function MenuBar(_ref) {
293
310
  }
294
311
  }, {
295
312
  icon: /*#__PURE__*/_react["default"].createElement(_FormatItalic["default"], null),
313
+ label: 'Italic',
314
+ toggle: true,
296
315
  onClick: function onClick(editor) {
297
316
  return editor.chain().focus().toggleItalic().run();
298
317
  },
@@ -307,6 +326,8 @@ function MenuBar(_ref) {
307
326
  }
308
327
  }, {
309
328
  icon: /*#__PURE__*/_react["default"].createElement(_FormatStrikethrough["default"], null),
329
+ label: 'Strikethrough',
330
+ toggle: true,
310
331
  onClick: function onClick(editor) {
311
332
  return editor.chain().focus().toggleStrike().run();
312
333
  },
@@ -321,6 +342,8 @@ function MenuBar(_ref) {
321
342
  }
322
343
  }, {
323
344
  icon: /*#__PURE__*/_react["default"].createElement(_Code["default"], null),
345
+ label: 'Code',
346
+ toggle: true,
324
347
  onClick: function onClick(editor) {
325
348
  return editor.chain().focus().toggleCode().run();
326
349
  },
@@ -335,6 +358,8 @@ function MenuBar(_ref) {
335
358
  }
336
359
  }, {
337
360
  icon: /*#__PURE__*/_react["default"].createElement(_FormatUnderlined["default"], null),
361
+ label: 'Underline',
362
+ toggle: true,
338
363
  onClick: function onClick(editor) {
339
364
  return editor.chain().focus().toggleUnderline().run();
340
365
  },
@@ -346,6 +371,8 @@ function MenuBar(_ref) {
346
371
  }
347
372
  }, {
348
373
  icon: /*#__PURE__*/_react["default"].createElement(SubscriptIcon, null),
374
+ label: 'Subscript',
375
+ toggle: true,
349
376
  onClick: function onClick(editor) {
350
377
  return editor.chain().focus().toggleSubscript().run();
351
378
  },
@@ -357,6 +384,8 @@ function MenuBar(_ref) {
357
384
  }
358
385
  }, {
359
386
  icon: /*#__PURE__*/_react["default"].createElement(SuperscriptIcon, null),
387
+ label: 'Superscript',
388
+ toggle: true,
360
389
  onClick: function onClick(editor) {
361
390
  return editor.chain().focus().toggleSuperscript().run();
362
391
  },
@@ -368,6 +397,7 @@ function MenuBar(_ref) {
368
397
  }
369
398
  }, {
370
399
  icon: /*#__PURE__*/_react["default"].createElement(_Image["default"], null),
400
+ label: 'Insert image',
371
401
  hidden: function hidden() {
372
402
  return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('image'));
373
403
  },
@@ -376,6 +406,7 @@ function MenuBar(_ref) {
376
406
  }
377
407
  }, {
378
408
  icon: /*#__PURE__*/_react["default"].createElement(_Theaters["default"], null),
409
+ label: 'Insert video',
379
410
  hidden: function hidden() {
380
411
  return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('video'));
381
412
  },
@@ -386,6 +417,7 @@ function MenuBar(_ref) {
386
417
  }
387
418
  }, {
388
419
  icon: /*#__PURE__*/_react["default"].createElement(_VolumeUp["default"], null),
420
+ label: 'Insert audio',
389
421
  hidden: function hidden() {
390
422
  return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('audio'));
391
423
  },
@@ -397,6 +429,7 @@ function MenuBar(_ref) {
397
429
  }
398
430
  }, {
399
431
  icon: /*#__PURE__*/_react["default"].createElement(_CssIcon["default"], null),
432
+ label: 'CSS classes',
400
433
  hidden: function hidden() {
401
434
  return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('css'));
402
435
  },
@@ -405,6 +438,8 @@ function MenuBar(_ref) {
405
438
  }
406
439
  }, {
407
440
  icon: /*#__PURE__*/_react["default"].createElement(_FormatQuote["default"], null),
441
+ label: 'Blockquote',
442
+ toggle: true,
408
443
  hidden: function hidden() {
409
444
  return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('blockquote'));
410
445
  },
@@ -416,6 +451,8 @@ function MenuBar(_ref) {
416
451
  }
417
452
  }, {
418
453
  icon: /*#__PURE__*/_react["default"].createElement(HeadingIcon, null),
454
+ label: 'Heading',
455
+ toggle: true,
419
456
  hidden: function hidden() {
420
457
  return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('h3'));
421
458
  },
@@ -427,6 +464,7 @@ function MenuBar(_ref) {
427
464
  }
428
465
  }, {
429
466
  icon: /*#__PURE__*/_react["default"].createElement(_Functions["default"], null),
467
+ label: 'Insert math',
430
468
  hidden: function hidden() {
431
469
  return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('math'));
432
470
  },
@@ -437,6 +475,7 @@ function MenuBar(_ref) {
437
475
  icon: /*#__PURE__*/_react["default"].createElement(_CharacterPicker.CharacterIcon, {
438
476
  letter: "\xF1"
439
477
  }),
478
+ label: 'Spanish characters (ñ)',
440
479
  hidden: function hidden() {
441
480
  return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('languageCharacters'));
442
481
  },
@@ -447,6 +486,7 @@ function MenuBar(_ref) {
447
486
  icon: /*#__PURE__*/_react["default"].createElement(_CharacterPicker.CharacterIcon, {
448
487
  letter: "\u20AC"
449
488
  }),
489
+ label: 'Special characters (€)',
450
490
  hidden: function hidden() {
451
491
  return (activePlugins === null || activePlugins === void 0 ? void 0 : activePlugins.filter(function (p) {
452
492
  return p === 'languageCharacters';
@@ -459,12 +499,15 @@ function MenuBar(_ref) {
459
499
  icon: /*#__PURE__*/_react["default"].createElement(_TextAlign["default"], {
460
500
  editor: editor
461
501
  }),
502
+ label: 'Text alignment',
462
503
  hidden: function hidden() {
463
504
  return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('text-align'));
464
505
  },
465
506
  onClick: function onClick() {}
466
507
  }, {
467
508
  icon: /*#__PURE__*/_react["default"].createElement(_FormatListBulleted["default"], null),
509
+ label: 'Bulleted list',
510
+ toggle: true,
468
511
  hidden: function hidden() {
469
512
  return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('bulleted-list'));
470
513
  },
@@ -476,6 +519,8 @@ function MenuBar(_ref) {
476
519
  }
477
520
  }, {
478
521
  icon: /*#__PURE__*/_react["default"].createElement(_FormatListNumbered["default"], null),
522
+ label: 'Numbered list',
523
+ toggle: true,
479
524
  hidden: function hidden() {
480
525
  return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('numbered-list'));
481
526
  },
@@ -487,6 +532,7 @@ function MenuBar(_ref) {
487
532
  }
488
533
  }, {
489
534
  icon: /*#__PURE__*/_react["default"].createElement(_Undo["default"], null),
535
+ label: 'Undo',
490
536
  hidden: function hidden() {
491
537
  return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('undo'));
492
538
  },
@@ -498,6 +544,7 @@ function MenuBar(_ref) {
498
544
  }
499
545
  }, {
500
546
  icon: /*#__PURE__*/_react["default"].createElement(_Redo["default"], null),
547
+ label: 'Redo',
501
548
  hidden: function hidden() {
502
549
  return !(activePlugins !== null && activePlugins !== void 0 && activePlugins.includes('redo'));
503
550
  },
@@ -527,7 +574,8 @@ function MenuBar(_ref) {
527
574
  editor.chain().focus().deleteSelection().run();
528
575
  onChange === null || onChange === void 0 || onChange(editor.getHTML());
529
576
  },
530
- "aria-label": "Delete response area"
577
+ "aria-label": "Delete response area",
578
+ title: "Delete response area"
531
579
  }, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null)))), !editorState.hideDefaultToolbar && /*#__PURE__*/_react["default"].createElement("div", {
532
580
  className: classes.defaultToolbar,
533
581
  tabIndex: "1"
@@ -542,7 +590,11 @@ function MenuBar(_ref) {
542
590
  var active = (_btn$isActive = btn.isActive) === null || _btn$isActive === void 0 ? void 0 : _btn$isActive.call(btn, editorState);
543
591
  return /*#__PURE__*/_react["default"].createElement("button", {
544
592
  key: index,
593
+ type: "button",
545
594
  disabled: disabled,
595
+ "aria-label": btn.label,
596
+ title: btn.label,
597
+ "aria-pressed": btn.toggle ? !!active : undefined,
546
598
  onClick: function onClick(e) {
547
599
  e.preventDefault();
548
600
  btn.onClick(editor);
@@ -550,6 +602,9 @@ function MenuBar(_ref) {
550
602
  className: (0, _classnames["default"])(classes.button, (0, _defineProperty2["default"])({}, classes.active, active))
551
603
  }, btn.icon);
552
604
  })), (activePlugins === null || activePlugins === void 0 ? void 0 : activePlugins.includes('responseArea')) && /*#__PURE__*/_react["default"].createElement("button", {
605
+ type: "button",
606
+ "aria-label": "Insert response area",
607
+ title: "Insert response area",
553
608
  onClick: function onClick() {
554
609
  editor.chain().focus().insertResponseArea(responseAreaProps.type).run();
555
610
  },
@@ -601,8 +656,7 @@ var StyledMenuBar = function StyledMenuBar(props) {
601
656
  classes: classes
602
657
  })));
603
658
  };
604
- var StyledMenuBarRoot = (0, _styles.styled)('div')(function (_ref4) {
605
- var theme = _ref4.theme;
659
+ var StyledMenuBarRoot = (0, _styles.styled)('div')(function () {
606
660
  return {
607
661
  '& .defaultToolbar': {
608
662
  display: 'flex',
@@ -627,20 +681,26 @@ var StyledMenuBarRoot = (0, _styles.styled)('div')(function (_ref4) {
627
681
  height: '24px'
628
682
  },
629
683
  '&:hover': {
630
- color: 'black'
684
+ color: _renderUi.color.text()
631
685
  },
632
686
  '&:focus': {
633
- outline: "2px solid ".concat(theme.palette.grey[700])
687
+ /*
688
+ * A focus ring is the one thing a keyboard user cannot do without, so it takes
689
+ * the registered focus token rather than a grey. `--pie-button-focus-outline`
690
+ * measures at least 3.68:1 against every scheme's own background; MUI's
691
+ * grey[700] fell to 1.28:1 on yellow-on-navy.
692
+ */
693
+ outline: "2px solid ".concat(_renderUi.color.buttonFocusOutline())
634
694
  }
635
695
  },
636
696
  '& .active': {
637
- color: 'black'
697
+ color: _renderUi.color.text()
638
698
  },
639
699
  '& .disabled': {
640
700
  opacity: 0.7,
641
701
  cursor: 'not-allowed',
642
702
  '& :hover': {
643
- color: 'grey'
703
+ color: _renderUi.color.disabled()
644
704
  }
645
705
  },
646
706
  '& .isActive': {