@ntlab/ntjs-assets 2.116.0 → 2.118.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/assets/js/cdn.json +2 -2
  2. package/assets/js/tinymce/CHANGELOG.md +24 -0
  3. package/assets/js/tinymce/models/dom/model.js +32 -37
  4. package/assets/js/tinymce/models/dom/model.min.js +1 -1
  5. package/assets/js/tinymce/plugins/accordion/plugin.js +27 -14
  6. package/assets/js/tinymce/plugins/accordion/plugin.min.js +1 -1
  7. package/assets/js/tinymce/plugins/advlist/plugin.js +7 -5
  8. package/assets/js/tinymce/plugins/advlist/plugin.min.js +1 -1
  9. package/assets/js/tinymce/plugins/anchor/plugin.js +1 -1
  10. package/assets/js/tinymce/plugins/autolink/plugin.js +3 -5
  11. package/assets/js/tinymce/plugins/autolink/plugin.min.js +1 -1
  12. package/assets/js/tinymce/plugins/autoresize/plugin.js +4 -6
  13. package/assets/js/tinymce/plugins/autoresize/plugin.min.js +1 -1
  14. package/assets/js/tinymce/plugins/autosave/plugin.js +4 -7
  15. package/assets/js/tinymce/plugins/autosave/plugin.min.js +1 -1
  16. package/assets/js/tinymce/plugins/charmap/plugin.js +8 -7
  17. package/assets/js/tinymce/plugins/charmap/plugin.min.js +1 -1
  18. package/assets/js/tinymce/plugins/code/plugin.js +1 -1
  19. package/assets/js/tinymce/plugins/codesample/plugin.js +9 -9
  20. package/assets/js/tinymce/plugins/codesample/plugin.min.js +2 -2
  21. package/assets/js/tinymce/plugins/directionality/plugin.js +8 -7
  22. package/assets/js/tinymce/plugins/directionality/plugin.min.js +1 -1
  23. package/assets/js/tinymce/plugins/emoticons/plugin.js +7 -5
  24. package/assets/js/tinymce/plugins/emoticons/plugin.min.js +1 -1
  25. package/assets/js/tinymce/plugins/fullscreen/plugin.js +10 -9
  26. package/assets/js/tinymce/plugins/fullscreen/plugin.min.js +1 -1
  27. package/assets/js/tinymce/plugins/help/plugin.js +10 -11
  28. package/assets/js/tinymce/plugins/help/plugin.min.js +1 -1
  29. package/assets/js/tinymce/plugins/image/plugin.js +21 -28
  30. package/assets/js/tinymce/plugins/image/plugin.min.js +1 -1
  31. package/assets/js/tinymce/plugins/importcss/plugin.js +4 -5
  32. package/assets/js/tinymce/plugins/importcss/plugin.min.js +1 -1
  33. package/assets/js/tinymce/plugins/insertdatetime/plugin.js +3 -3
  34. package/assets/js/tinymce/plugins/insertdatetime/plugin.min.js +1 -1
  35. package/assets/js/tinymce/plugins/langs8/it.js +1 -1
  36. package/assets/js/tinymce/plugins/langs8/zh-CN.js +4 -4
  37. package/assets/js/tinymce/plugins/link/plugin.js +15 -17
  38. package/assets/js/tinymce/plugins/link/plugin.min.js +1 -1
  39. package/assets/js/tinymce/plugins/lists/plugin.js +7 -5
  40. package/assets/js/tinymce/plugins/lists/plugin.min.js +1 -1
  41. package/assets/js/tinymce/plugins/media/plugin.js +15 -21
  42. package/assets/js/tinymce/plugins/media/plugin.min.js +1 -1
  43. package/assets/js/tinymce/plugins/nonbreaking/plugin.js +1 -1
  44. package/assets/js/tinymce/plugins/pagebreak/plugin.js +1 -1
  45. package/assets/js/tinymce/plugins/preview/plugin.js +88 -10
  46. package/assets/js/tinymce/plugins/preview/plugin.min.js +1 -1
  47. package/assets/js/tinymce/plugins/quickbars/plugin.js +9 -9
  48. package/assets/js/tinymce/plugins/quickbars/plugin.min.js +1 -1
  49. package/assets/js/tinymce/plugins/save/plugin.js +1 -1
  50. package/assets/js/tinymce/plugins/searchreplace/plugin.js +10 -11
  51. package/assets/js/tinymce/plugins/searchreplace/plugin.min.js +1 -1
  52. package/assets/js/tinymce/plugins/table/plugin.js +12 -13
  53. package/assets/js/tinymce/plugins/table/plugin.min.js +1 -1
  54. package/assets/js/tinymce/plugins/visualblocks/plugin.js +1 -1
  55. package/assets/js/tinymce/plugins/visualchars/plugin.js +9 -9
  56. package/assets/js/tinymce/plugins/visualchars/plugin.min.js +1 -1
  57. package/assets/js/tinymce/plugins/wordcount/plugin.js +1 -1
  58. package/assets/js/tinymce/skins/ui/oxide/content.css +32 -0
  59. package/assets/js/tinymce/skins/ui/oxide/content.inline.css +32 -0
  60. package/assets/js/tinymce/skins/ui/oxide/content.inline.js +1 -1
  61. package/assets/js/tinymce/skins/ui/oxide/content.inline.min.css +1 -1
  62. package/assets/js/tinymce/skins/ui/oxide/content.js +1 -1
  63. package/assets/js/tinymce/skins/ui/oxide/content.min.css +1 -1
  64. package/assets/js/tinymce/skins/ui/oxide/skin.css +52 -3
  65. package/assets/js/tinymce/skins/ui/oxide/skin.js +1 -1
  66. package/assets/js/tinymce/skins/ui/oxide/skin.min.css +1 -1
  67. package/assets/js/tinymce/skins/ui/oxide-dark/content.css +32 -0
  68. package/assets/js/tinymce/skins/ui/oxide-dark/content.inline.css +32 -0
  69. package/assets/js/tinymce/skins/ui/oxide-dark/content.inline.js +1 -1
  70. package/assets/js/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -1
  71. package/assets/js/tinymce/skins/ui/oxide-dark/content.js +1 -1
  72. package/assets/js/tinymce/skins/ui/oxide-dark/content.min.css +1 -1
  73. package/assets/js/tinymce/skins/ui/oxide-dark/skin.css +52 -3
  74. package/assets/js/tinymce/skins/ui/oxide-dark/skin.js +1 -1
  75. package/assets/js/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
  76. package/assets/js/tinymce/skins/ui/tinymce-5/content.css +32 -0
  77. package/assets/js/tinymce/skins/ui/tinymce-5/content.inline.css +32 -0
  78. package/assets/js/tinymce/skins/ui/tinymce-5/content.inline.js +1 -1
  79. package/assets/js/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -1
  80. package/assets/js/tinymce/skins/ui/tinymce-5/content.js +1 -1
  81. package/assets/js/tinymce/skins/ui/tinymce-5/content.min.css +1 -1
  82. package/assets/js/tinymce/skins/ui/tinymce-5/skin.css +52 -3
  83. package/assets/js/tinymce/skins/ui/tinymce-5/skin.js +1 -1
  84. package/assets/js/tinymce/skins/ui/tinymce-5/skin.min.css +1 -1
  85. package/assets/js/tinymce/skins/ui/tinymce-5-dark/content.css +32 -0
  86. package/assets/js/tinymce/skins/ui/tinymce-5-dark/content.inline.css +32 -0
  87. package/assets/js/tinymce/skins/ui/tinymce-5-dark/content.inline.js +1 -1
  88. package/assets/js/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -1
  89. package/assets/js/tinymce/skins/ui/tinymce-5-dark/content.js +1 -1
  90. package/assets/js/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -1
  91. package/assets/js/tinymce/skins/ui/tinymce-5-dark/skin.css +52 -3
  92. package/assets/js/tinymce/skins/ui/tinymce-5-dark/skin.js +1 -1
  93. package/assets/js/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -1
  94. package/assets/js/tinymce/themes/silver/theme.js +73 -88
  95. package/assets/js/tinymce/themes/silver/theme.min.js +1 -1
  96. package/assets/js/tinymce/tinymce.js +671 -449
  97. package/assets/js/tinymce/tinymce.min.js +2 -2
  98. package/package.json +1 -1
@@ -239,11 +239,11 @@
239
239
  }
240
240
  },
241
241
  "tinymce": {
242
- "version": "8.1.2",
242
+ "version": "8.2.0",
243
243
  "jsdelivr": ""
244
244
  },
245
245
  "tinymce-i18n": {
246
- "version": "25.10.6",
246
+ "version": "25.10.27",
247
247
  "jsdelivr": ""
248
248
  },
249
249
  "typeahead.js": {
@@ -5,6 +5,30 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html),
6
6
  and is generated by [Changie](https://github.com/miniscruff/changie).
7
7
 
8
+ ## 8.2.0 - 2025-10-23
9
+
10
+ ### Improved
11
+ - Some elements would be given an extra newline by the serializer when indented. #TINY-12857
12
+
13
+ ### Fixed
14
+ - UI elements like focus outlines and placeholders would be visible after printing. #TINY-12584
15
+ - The `open` attribute on `<details>` elements is now normalized to `open="open"` when the accordion plugin is enabled. #TINY-12862
16
+ - Tooltips on toolbar buttons sometimes remained visible if the button icon was updated while hovered. #TINY-12289
17
+ - The editor would upon gaining focus scroll to the center of the editor on some browsers if the top of the editor was out of frame. #TINY-12626
18
+ - Some UI elements related to dragging elements were not properly filtered out when fetching content. #TINY-12384
19
+ - The cursor could get stuck around an absolute CEF element when navigating using arrow keys. #TINY-10526
20
+ - The schema will now allow the `property` RDFa attribute on `meta` elements. #TINY-12858
21
+ - Corrected type of `undoManager.add` method. The `event` parameter is type `EditorEvent` not `Event`. #TINY-12936
22
+ - Chromium browsers would in certain situations scroll the editor unexpectedly when dragging content over the editor. #INT-3373
23
+ - Support for setting component urls for custom elements. #TINY-13006
24
+ - Reverted toolbar button width to `auto`. #TINY-13097
25
+ - Addressed split buttons rendering narrower than in TinyMCE 7, ensuring consistent sizing across the toolbar. #TINY-13111
26
+
27
+ ## 8.1.2 - 2025-09-18
28
+
29
+ ### Fixed
30
+ - Some sidebar UI components were not rendering correctly. #TINY-12925
31
+
8
32
  ## 8.1.1 - 2025-09-17
9
33
 
10
34
  ### Fixed
@@ -1,5 +1,5 @@
1
1
  /**
2
- * TinyMCE version 8.1.2 (TBD)
2
+ * TinyMCE version 8.2.0 (2025-10-23)
3
3
  */
4
4
 
5
5
  (function () {
@@ -9,13 +9,12 @@
9
9
 
10
10
  /* eslint-disable @typescript-eslint/no-wrapper-object-types */
11
11
  const hasProto = (v, constructor, predicate) => {
12
- var _a;
13
12
  if (predicate(v, constructor.prototype)) {
14
13
  return true;
15
14
  }
16
15
  else {
17
16
  // String-based fallback time
18
- return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;
17
+ return v.constructor?.name === constructor.name;
19
18
  }
20
19
  };
21
20
  const typeOf = (x) => {
@@ -101,6 +100,11 @@
101
100
  * strict-null-checks
102
101
  */
103
102
  class Optional {
103
+ tag;
104
+ value;
105
+ // Sneaky optimisation: every instance of Optional.none is identical, so just
106
+ // reuse the same object
107
+ static singletonNone = new Optional(false);
104
108
  // The internal representation has a `tag` and a `value`, but both are
105
109
  // private: able to be console.logged, but not able to be accessed by code
106
110
  constructor(tag, value) {
@@ -268,7 +272,7 @@
268
272
  */
269
273
  getOrDie(message) {
270
274
  if (!this.tag) {
271
- throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');
275
+ throw new Error(message ?? 'Called getOrDie on None');
272
276
  }
273
277
  else {
274
278
  return this.value;
@@ -332,9 +336,6 @@
332
336
  return this.tag ? `some(${this.value})` : 'none()';
333
337
  }
334
338
  }
335
- // Sneaky optimisation: every instance of Optional.none is identical, so just
336
- // reuse the same object
337
- Optional.singletonNone = new Optional(false);
338
339
 
339
340
  const nativeSlice = Array.prototype.slice;
340
341
  const nativeIndexOf = Array.prototype.indexOf;
@@ -1350,7 +1351,7 @@
1350
1351
  const detectBrowser$1 = (browsers, userAgentData) => {
1351
1352
  return findMap(userAgentData.brands, (uaBrand) => {
1352
1353
  const lcBrand = uaBrand.brand.toLowerCase();
1353
- return find$1(browsers, (browser) => { var _a; return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase()); })
1354
+ return find$1(browsers, (browser) => lcBrand === browser.brand?.toLowerCase())
1354
1355
  .map((info) => ({
1355
1356
  current: info.name,
1356
1357
  version: Version.nu(parseInt(uaBrand.version, 10), 0)
@@ -2220,8 +2221,8 @@
2220
2221
  if (body === element.dom) {
2221
2222
  return SugarPosition(body.offsetLeft, body.offsetTop);
2222
2223
  }
2223
- const scrollTop = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageYOffset, html.scrollTop);
2224
- const scrollLeft = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageXOffset, html.scrollLeft);
2224
+ const scrollTop = firstDefinedOrZero(win?.pageYOffset, html.scrollTop);
2225
+ const scrollLeft = firstDefinedOrZero(win?.pageXOffset, html.scrollLeft);
2225
2226
  const clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);
2226
2227
  const clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);
2227
2228
  return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);
@@ -2575,21 +2576,18 @@
2575
2576
  range
2576
2577
  };
2577
2578
 
2578
- const caretPositionFromPoint = (doc, x, y) => {
2579
- var _a;
2580
- return Optional.from((_a = doc.caretPositionFromPoint) === null || _a === void 0 ? void 0 : _a.call(doc, x, y))
2581
- .bind((pos) => {
2582
- // It turns out that Firefox can return null for pos.offsetNode
2583
- if (pos.offsetNode === null) {
2584
- return Optional.none();
2585
- }
2586
- const r = doc.createRange();
2587
- r.setStart(pos.offsetNode, pos.offset);
2588
- r.collapse();
2589
- return Optional.some(r);
2590
- });
2591
- };
2592
- const caretRangeFromPoint = (doc, x, y) => { var _a; return Optional.from((_a = doc.caretRangeFromPoint) === null || _a === void 0 ? void 0 : _a.call(doc, x, y)); };
2579
+ const caretPositionFromPoint = (doc, x, y) => Optional.from(doc.caretPositionFromPoint?.(x, y))
2580
+ .bind((pos) => {
2581
+ // It turns out that Firefox can return null for pos.offsetNode
2582
+ if (pos.offsetNode === null) {
2583
+ return Optional.none();
2584
+ }
2585
+ const r = doc.createRange();
2586
+ r.setStart(pos.offsetNode, pos.offset);
2587
+ r.collapse();
2588
+ return Optional.some(r);
2589
+ });
2590
+ const caretRangeFromPoint = (doc, x, y) => Optional.from(doc.caretRangeFromPoint?.(x, y));
2593
2591
  const availableSearch = (doc, x, y) => {
2594
2592
  if (doc.caretPositionFromPoint) {
2595
2593
  return caretPositionFromPoint(doc, x, y); // defined standard, firefox only
@@ -2663,7 +2661,7 @@
2663
2661
  try {
2664
2662
  setLegacyRtlRange(win, selection, start, soffset, finish, foffset);
2665
2663
  }
2666
- catch (_a) {
2664
+ catch {
2667
2665
  // If it does fail, try again with ltr.
2668
2666
  doSetRange(win, finish, foffset, start, soffset);
2669
2667
  }
@@ -3868,7 +3866,7 @@
3868
3866
  };
3869
3867
  const run = (operation, extract, adjustment, postAction, genWrappers, table, target, generators, behaviours) => {
3870
3868
  const warehouse = Warehouse.fromTable(table);
3871
- const tableSection = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.section).getOrThunk(TableSection.fallback);
3869
+ const tableSection = Optional.from(behaviours?.section).getOrThunk(TableSection.fallback);
3872
3870
  const output = extract(warehouse, target).map((info) => {
3873
3871
  const model = fromWarehouse(warehouse, generators);
3874
3872
  const result = operation(model, info, eq$1, genWrappers(generators), tableSection);
@@ -3883,8 +3881,8 @@
3883
3881
  });
3884
3882
  return output.bind((out) => {
3885
3883
  const newElements = render$1(table, out.grid);
3886
- const tableSizing = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.sizing).getOrThunk(() => TableSize.getTableSize(table));
3887
- const resizing = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.resize).getOrThunk(preserveTable);
3884
+ const tableSizing = Optional.from(behaviours?.sizing).getOrThunk(() => TableSize.getTableSize(table));
3885
+ const resizing = Optional.from(behaviours?.resize).getOrThunk(preserveTable);
3888
3886
  adjustment(table, out.grid, out.info, { sizing: tableSizing, resize: resizing, section: tableSection });
3889
3887
  postAction(table);
3890
3888
  // Update locked cols attribute
@@ -5823,9 +5821,8 @@
5823
5821
  return someIf(isEditable(elem), elem);
5824
5822
  }));
5825
5823
  const elementFromGrid = (grid, row, column) => {
5826
- var _a, _b;
5827
5824
  const rows = extractGridDetails(grid).rows;
5828
- return Optional.from((_b = (_a = rows[row]) === null || _a === void 0 ? void 0 : _a.cells[column]) === null || _b === void 0 ? void 0 : _b.element)
5825
+ return Optional.from(rows[row]?.cells[column]?.element)
5829
5826
  .filter(isEditable)
5830
5827
  // Fallback to the first valid position in the table
5831
5828
  .orThunk(() => findEditableCursorPosition(rows));
@@ -6431,6 +6428,7 @@
6431
6428
  };
6432
6429
  const div = SugarElement.fromTag('div');
6433
6430
  set$2(div, 'role', 'presentation');
6431
+ set$2(div, 'data-mce-bogus', 'all');
6434
6432
  setAll(div, {
6435
6433
  position: 'fixed',
6436
6434
  left: '0px',
@@ -6494,8 +6492,7 @@
6494
6492
  });
6495
6493
 
6496
6494
  const transform = (mutation, settings = {}) => {
6497
- var _a;
6498
- const mode = (_a = settings.mode) !== null && _a !== void 0 ? _a : MouseDrag;
6495
+ const mode = settings.mode ?? MouseDrag;
6499
6496
  return setup(mutation, mode, settings);
6500
6497
  };
6501
6498
 
@@ -6812,10 +6809,9 @@
6812
6809
  // Note: This is also contained in the table plugin Options.ts file
6813
6810
  const defaultWidth = '100%';
6814
6811
  const getPixelForcedWidth = (editor) => {
6815
- var _a;
6816
6812
  // Determine the inner size of the parent block element where the table will be inserted
6817
6813
  const dom = editor.dom;
6818
- const parentBlock = (_a = dom.getParent(editor.selection.getStart(), dom.isBlock)) !== null && _a !== void 0 ? _a : editor.getBody();
6814
+ const parentBlock = dom.getParent(editor.selection.getStart(), dom.isBlock) ?? editor.getBody();
6819
6815
  return getInner(SugarElement.fromDom(parentBlock)) + 'px';
6820
6816
  };
6821
6817
  // Note: This is also contained in the table plugin Options.ts file
@@ -8384,8 +8380,7 @@
8384
8380
  global.write([fakeClipboardItem]);
8385
8381
  };
8386
8382
  const getData = (type) => {
8387
- var _a;
8388
- const items = (_a = global.read()) !== null && _a !== void 0 ? _a : [];
8383
+ const items = global.read() ?? [];
8389
8384
  return findMap(items, (item) => Optional.from(item.getType(type)));
8390
8385
  };
8391
8386
  const clearData = (type) => {