@ckeditor/ckeditor5-media-embed 48.8.1-alpha.4 → 49.0.0-alpha.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 (186) hide show
  1. package/ckeditor5-metadata.json +108 -12
  2. package/dist/augmentation.d.ts +33 -23
  3. package/dist/automediaembed.d.ts +50 -50
  4. package/dist/converters.d.ts +37 -37
  5. package/dist/index-content.css +54 -6
  6. package/dist/index-content.css.map +1 -0
  7. package/dist/index-editor.css +145 -111
  8. package/dist/index-editor.css.map +1 -0
  9. package/dist/index.css +179 -101
  10. package/dist/index.css.map +1 -1
  11. package/dist/index.d.ts +31 -18
  12. package/dist/index.js +2645 -1087
  13. package/dist/index.js.map +1 -1
  14. package/dist/mediaembed.d.ts +32 -33
  15. package/dist/mediaembedcommand.d.ts +32 -32
  16. package/dist/mediaembedconfig.d.ts +574 -270
  17. package/dist/mediaembedediting.d.ts +29 -30
  18. package/dist/mediaembedresize/constants.d.ts +17 -0
  19. package/dist/mediaembedresize/mediaembedcustomresizeui.d.ts +64 -0
  20. package/dist/mediaembedresize/mediaembedresizebuttons.d.ts +54 -0
  21. package/dist/mediaembedresize/mediaembedresizeediting.d.ts +51 -0
  22. package/dist/mediaembedresize/mediaembedresizehandles.d.ts +42 -0
  23. package/dist/mediaembedresize/resizemediaembedcommand.d.ts +40 -0
  24. package/dist/mediaembedresize/ui/mediaembedcustomresizeformview.d.ts +117 -0
  25. package/dist/mediaembedresize/utils/getselectedmediaembededitornodes.d.ts +23 -0
  26. package/dist/mediaembedresize/utils/getselectedmediaembedpossibleresizerange.d.ts +25 -0
  27. package/dist/mediaembedresize/utils/getselectedmediaembedwidthinunits.d.ts +21 -0
  28. package/dist/mediaembedresize.d.ts +32 -0
  29. package/dist/mediaembedstyle/constants.d.ts +29 -0
  30. package/dist/mediaembedstyle/mediaembedstylecommand.d.ts +72 -0
  31. package/dist/mediaembedstyle/mediaembedstyleediting.d.ts +43 -0
  32. package/dist/mediaembedstyle/mediaembedstyleui.d.ts +81 -0
  33. package/dist/mediaembedstyle/utils.d.ts +23 -0
  34. package/dist/mediaembedstyle.d.ts +33 -0
  35. package/dist/mediaembedtoolbar.d.ts +28 -29
  36. package/dist/mediaembedui.d.ts +33 -33
  37. package/dist/mediaregistry.d.ts +59 -59
  38. package/dist/translations/af.js +1 -1
  39. package/dist/translations/af.umd.js +5 -3
  40. package/dist/translations/ar.js +1 -1
  41. package/dist/translations/ar.umd.js +5 -3
  42. package/dist/translations/ast.js +1 -1
  43. package/dist/translations/ast.umd.js +5 -3
  44. package/dist/translations/az.js +1 -1
  45. package/dist/translations/az.umd.js +5 -3
  46. package/dist/translations/be.js +1 -1
  47. package/dist/translations/be.umd.js +5 -3
  48. package/dist/translations/bg.js +1 -1
  49. package/dist/translations/bg.umd.js +5 -3
  50. package/dist/translations/bn.js +1 -1
  51. package/dist/translations/bn.umd.js +5 -3
  52. package/dist/translations/bs.js +1 -1
  53. package/dist/translations/bs.umd.js +5 -3
  54. package/dist/translations/ca.js +1 -1
  55. package/dist/translations/ca.umd.js +5 -3
  56. package/dist/translations/cs.js +1 -1
  57. package/dist/translations/cs.umd.js +5 -3
  58. package/dist/translations/da.js +1 -1
  59. package/dist/translations/da.umd.js +5 -3
  60. package/dist/translations/de-ch.js +1 -1
  61. package/dist/translations/de-ch.umd.js +5 -3
  62. package/dist/translations/de.js +1 -1
  63. package/dist/translations/de.umd.js +5 -3
  64. package/dist/translations/el.js +1 -1
  65. package/dist/translations/el.umd.js +5 -3
  66. package/dist/translations/en-au.js +1 -1
  67. package/dist/translations/en-au.umd.js +5 -3
  68. package/dist/translations/en-gb.js +1 -1
  69. package/dist/translations/en-gb.umd.js +5 -3
  70. package/dist/translations/en.js +1 -1
  71. package/dist/translations/en.umd.js +5 -3
  72. package/dist/translations/eo.js +1 -1
  73. package/dist/translations/eo.umd.js +5 -3
  74. package/dist/translations/es-co.js +1 -1
  75. package/dist/translations/es-co.umd.js +5 -3
  76. package/dist/translations/es.js +1 -1
  77. package/dist/translations/es.umd.js +5 -3
  78. package/dist/translations/et.js +1 -1
  79. package/dist/translations/et.umd.js +5 -3
  80. package/dist/translations/eu.js +1 -1
  81. package/dist/translations/eu.umd.js +5 -3
  82. package/dist/translations/fa.js +1 -1
  83. package/dist/translations/fa.umd.js +5 -3
  84. package/dist/translations/fi.js +1 -1
  85. package/dist/translations/fi.umd.js +5 -3
  86. package/dist/translations/fr.js +1 -1
  87. package/dist/translations/fr.umd.js +5 -3
  88. package/dist/translations/gl.js +1 -1
  89. package/dist/translations/gl.umd.js +5 -3
  90. package/dist/translations/gu.js +1 -1
  91. package/dist/translations/gu.umd.js +5 -3
  92. package/dist/translations/he.js +1 -1
  93. package/dist/translations/he.umd.js +5 -3
  94. package/dist/translations/hi.js +1 -1
  95. package/dist/translations/hi.umd.js +5 -3
  96. package/dist/translations/hr.js +1 -1
  97. package/dist/translations/hr.umd.js +5 -3
  98. package/dist/translations/hu.js +1 -1
  99. package/dist/translations/hu.umd.js +5 -3
  100. package/dist/translations/hy.js +1 -1
  101. package/dist/translations/hy.umd.js +5 -3
  102. package/dist/translations/id.js +1 -1
  103. package/dist/translations/id.umd.js +5 -3
  104. package/dist/translations/it.js +1 -1
  105. package/dist/translations/it.umd.js +5 -3
  106. package/dist/translations/ja.js +1 -1
  107. package/dist/translations/ja.umd.js +5 -3
  108. package/dist/translations/jv.js +1 -1
  109. package/dist/translations/jv.umd.js +5 -3
  110. package/dist/translations/kk.js +1 -1
  111. package/dist/translations/kk.umd.js +5 -3
  112. package/dist/translations/km.js +1 -1
  113. package/dist/translations/km.umd.js +5 -3
  114. package/dist/translations/kn.js +1 -1
  115. package/dist/translations/kn.umd.js +5 -3
  116. package/dist/translations/ko.js +1 -1
  117. package/dist/translations/ko.umd.js +5 -3
  118. package/dist/translations/ku.js +1 -1
  119. package/dist/translations/ku.umd.js +5 -3
  120. package/dist/translations/lt.js +1 -1
  121. package/dist/translations/lt.umd.js +5 -3
  122. package/dist/translations/lv.js +1 -1
  123. package/dist/translations/lv.umd.js +5 -3
  124. package/dist/translations/ms.js +1 -1
  125. package/dist/translations/ms.umd.js +5 -3
  126. package/dist/translations/nb.js +1 -1
  127. package/dist/translations/nb.umd.js +5 -3
  128. package/dist/translations/ne.js +1 -1
  129. package/dist/translations/ne.umd.js +5 -3
  130. package/dist/translations/nl.js +1 -1
  131. package/dist/translations/nl.umd.js +5 -3
  132. package/dist/translations/no.js +1 -1
  133. package/dist/translations/no.umd.js +5 -3
  134. package/dist/translations/oc.js +1 -1
  135. package/dist/translations/oc.umd.js +5 -3
  136. package/dist/translations/pl.js +1 -1
  137. package/dist/translations/pl.umd.js +5 -3
  138. package/dist/translations/pt-br.js +1 -1
  139. package/dist/translations/pt-br.umd.js +5 -3
  140. package/dist/translations/pt.js +1 -1
  141. package/dist/translations/pt.umd.js +5 -3
  142. package/dist/translations/ro.js +1 -1
  143. package/dist/translations/ro.umd.js +5 -3
  144. package/dist/translations/ru.js +1 -1
  145. package/dist/translations/ru.umd.js +5 -3
  146. package/dist/translations/si.js +1 -1
  147. package/dist/translations/si.umd.js +5 -3
  148. package/dist/translations/sk.js +1 -1
  149. package/dist/translations/sk.umd.js +5 -3
  150. package/dist/translations/sl.js +1 -1
  151. package/dist/translations/sl.umd.js +5 -3
  152. package/dist/translations/sq.js +1 -1
  153. package/dist/translations/sq.umd.js +5 -3
  154. package/dist/translations/sr-latn.js +1 -1
  155. package/dist/translations/sr-latn.umd.js +5 -3
  156. package/dist/translations/sr.js +1 -1
  157. package/dist/translations/sr.umd.js +5 -3
  158. package/dist/translations/sv.js +1 -1
  159. package/dist/translations/sv.umd.js +5 -3
  160. package/dist/translations/th.js +1 -1
  161. package/dist/translations/th.umd.js +5 -3
  162. package/dist/translations/ti.js +1 -1
  163. package/dist/translations/ti.umd.js +5 -3
  164. package/dist/translations/tk.js +1 -1
  165. package/dist/translations/tk.umd.js +5 -3
  166. package/dist/translations/tr.js +1 -1
  167. package/dist/translations/tr.umd.js +5 -3
  168. package/dist/translations/tt.js +1 -1
  169. package/dist/translations/tt.umd.js +5 -3
  170. package/dist/translations/ug.js +1 -1
  171. package/dist/translations/ug.umd.js +5 -3
  172. package/dist/translations/uk.js +1 -1
  173. package/dist/translations/uk.umd.js +5 -3
  174. package/dist/translations/ur.js +1 -1
  175. package/dist/translations/ur.umd.js +5 -3
  176. package/dist/translations/uz.js +1 -1
  177. package/dist/translations/uz.umd.js +5 -3
  178. package/dist/translations/vi.js +1 -1
  179. package/dist/translations/vi.umd.js +5 -3
  180. package/dist/translations/zh-cn.js +1 -1
  181. package/dist/translations/zh-cn.umd.js +5 -3
  182. package/dist/translations/zh.js +1 -1
  183. package/dist/translations/zh.umd.js +5 -3
  184. package/dist/ui/mediaformview.d.ts +82 -83
  185. package/dist/utils.d.ts +61 -61
  186. package/package.json +10 -10
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ import { Plugin, type PluginDependenciesOf } from "@ckeditor/ckeditor5-core";
6
+ import { MediaEmbedEditing } from "../mediaembedediting.js";
7
+ import type { NormalizedMediaStyleOption } from "../mediaembedconfig.js";
8
+ /**
9
+ * The media embed style engine plugin. It extends the schema with the `mediaStyle` attribute,
10
+ * registers the {@link module:media-embed/mediaembedstyle/mediaembedstylecommand~MediaEmbedStyleCommand} command,
11
+ * and adds the converters that apply alignment CSS classes to the figure.
12
+ */
13
+ export declare class MediaEmbedStyleEditing extends Plugin {
14
+ /**
15
+ * The resolved list of media style options. Built once from
16
+ * {@link module:media-embed/mediaembedconfig~MediaEmbedConfig#styles `config.mediaEmbed.styles`}
17
+ * during {@link #init} and consumed by both the command and the UI plugin (single source of truth).
18
+ *
19
+ * @internal
20
+ * @readonly
21
+ */
22
+ normalizedStyles: Array<NormalizedMediaStyleOption>;
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ static get requires(): PluginDependenciesOf<[MediaEmbedEditing]>;
27
+ /**
28
+ * @inheritDoc
29
+ */
30
+ static get pluginName(): "MediaEmbedStyleEditing";
31
+ /**
32
+ * @inheritDoc
33
+ */
34
+ static override get isOfficialPlugin(): true;
35
+ /**
36
+ * @inheritDoc
37
+ */
38
+ init(): void;
39
+ /**
40
+ * Registers the downcast and upcast converters for the `mediaStyle` attribute.
41
+ */
42
+ private _registerConverters;
43
+ }
@@ -0,0 +1,81 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ /**
6
+ * @module media-embed/mediaembedstyle/mediaembedstyleui
7
+ */
8
+ import { Plugin, type PluginDependenciesOf } from "@ckeditor/ckeditor5-core";
9
+ import { MediaEmbedStyleEditing } from "./mediaembedstyleediting.js";
10
+ /**
11
+ * The media embed style UI plugin.
12
+ *
13
+ * It registers a button for every style in the resolved
14
+ * {@link module:media-embed/mediaembedconfig~MediaEmbedConfig#styles `config.mediaEmbed.styles`}
15
+ * list, and the default split-button dropdowns (`mediaEmbed:wrapText`, `mediaEmbed:breakText`)
16
+ * — filtered to the styles that survived configuration. The resulting components can be placed
17
+ * in the {@link module:media-embed/mediaembedconfig~MediaEmbedConfig#toolbar media embed toolbar}.
18
+ */
19
+ export declare class MediaEmbedStyleUI extends Plugin {
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ static get requires(): PluginDependenciesOf<[MediaEmbedStyleEditing]>;
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ static get pluginName(): "MediaEmbedStyleUI";
28
+ /**
29
+ * @inheritDoc
30
+ */
31
+ static override get isOfficialPlugin(): true;
32
+ /**
33
+ * @inheritDoc
34
+ */
35
+ init(): void;
36
+ /**
37
+ * Returns the alignment button definitions sourced from the resolved options list.
38
+ */
39
+ private _getButtonDefinitions;
40
+ /**
41
+ * Returns the localized titles of the built-in styles and dropdowns.
42
+ */
43
+ private _getLocalizedTitles;
44
+ /**
45
+ * Returns the split-button dropdown definitions, filtered to the styles present in the
46
+ * resolved options list. Combines the {@link module:media-embed/mediaembedstyle/constants~DEFAULT_DROPDOWN_DEFINITIONS
47
+ * built-in dropdowns} with custom dropdowns declared inline in
48
+ * {@link module:media-embed/mediaembedconfig~MediaEmbedConfig#toolbar `config.mediaEmbed.toolbar`}.
49
+ *
50
+ * A dropdown with fewer than two items is skipped — a single-item dropdown carries no value
51
+ * over the flat button. If the configured `defaultItem` was filtered out, the first surviving
52
+ * item becomes the default.
53
+ *
54
+ * When a *custom* dropdown's items reference styles that are not in the resolved options list,
55
+ * a console warning is emitted (the integrator's config was not fully honored). Built-in
56
+ * dropdowns auto-skip silently — they are added by the plugin, not the integrator.
57
+ */
58
+ private _getDropdownDefinitions;
59
+ /**
60
+ * Scans `config.mediaEmbed.toolbar` for entries shaped like a dropdown definition
61
+ * (objects with both `items` and `defaultItem`) and returns the valid ones. `defaultItem`
62
+ * is the discriminator between our split-button dropdowns and generic toolbar groupings
63
+ * (which use `items` + `label` and have no `defaultItem`).
64
+ *
65
+ * Invalid entries (wrong name prefix, `defaultItem` missing from `items`) are warned and
66
+ * dropped here. Items that reference filtered-out styles are filtered later by
67
+ * {@link #_getDropdownDefinitions}, alongside the same logic that applies to built-in
68
+ * dropdowns.
69
+ */
70
+ private _collectCustomDropdowns;
71
+ /**
72
+ * Registers a single alignment toggle button in the component factory.
73
+ */
74
+ private _createButton;
75
+ /**
76
+ * Registers a split-button dropdown grouping a set of alignment buttons. The action button
77
+ * reflects whichever child option is currently `isOn`, falling back to the dropdown's
78
+ * `defaultItem` when nothing is active.
79
+ */
80
+ private _createDropdown;
81
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ import type { ToolbarConfigItem } from "@ckeditor/ckeditor5-core";
6
+ import type { MediaStyleConfig, MediaStyleDropdownDefinition, NormalizedMediaStyleOption } from "../mediaembedconfig.js";
7
+ /**
8
+ * Normalizes the {@link module:media-embed/mediaembedconfig~MediaStyleConfig#options style options}
9
+ * provided by the integrator. Each entry is resolved into a full
10
+ * {@link module:media-embed/mediaembedconfig~MediaStyleOptionDefinition} and invalid entries
11
+ * are filtered out with a console warning.
12
+ *
13
+ * @internal
14
+ */
15
+ export declare function normalizeStyles(configuredStyles: MediaStyleConfig): Array<NormalizedMediaStyleOption>;
16
+ /**
17
+ * Type guard for toolbar config entries shaped like a media style dropdown definition. The
18
+ * discriminator is `defaultItem` — generic toolbar groupings use `items` + `label` and never
19
+ * carry a `defaultItem` field.
20
+ *
21
+ * @internal
22
+ */
23
+ export declare function isMediaStyleDropdown(item: ToolbarConfigItem | MediaStyleDropdownDefinition): item is MediaStyleDropdownDefinition;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ /**
6
+ * @module media-embed/mediaembedstyle
7
+ */
8
+ import { Plugin, type PluginDependenciesOf } from "@ckeditor/ckeditor5-core";
9
+ import { MediaEmbedStyleEditing } from "./mediaembedstyle/mediaembedstyleediting.js";
10
+ import { MediaEmbedStyleUI } from "./mediaembedstyle/mediaembedstyleui.js";
11
+ /**
12
+ * The media embed style plugin.
13
+ *
14
+ * This is a "glue" plugin which loads the following plugins:
15
+ * * {@link module:media-embed/mediaembedstyle/mediaembedstyleediting~MediaEmbedStyleEditing},
16
+ * * {@link module:media-embed/mediaembedstyle/mediaembedstyleui~MediaEmbedStyleUI}
17
+ *
18
+ * For a detailed overview, check the {@glink features/media-embed/media-embed-styles Media embed styles feature documentation}.
19
+ */
20
+ export declare class MediaEmbedStyle extends Plugin {
21
+ /**
22
+ * @inheritDoc
23
+ */
24
+ static get requires(): PluginDependenciesOf<[MediaEmbedStyleEditing, MediaEmbedStyleUI]>;
25
+ /**
26
+ * @inheritDoc
27
+ */
28
+ static get pluginName(): "MediaEmbedStyle";
29
+ /**
30
+ * @inheritDoc
31
+ */
32
+ static override get isOfficialPlugin(): true;
33
+ }
@@ -1,34 +1,33 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
5
  /**
6
- * @module media-embed/mediaembedtoolbar
7
- */
8
- import { Plugin } from '@ckeditor/ckeditor5-core';
9
- import { WidgetToolbarRepository } from '@ckeditor/ckeditor5-widget';
10
- import './mediaembedconfig.js';
6
+ * @module media-embed/mediaembedtoolbar
7
+ */
8
+ import { Plugin, type PluginDependenciesOf } from "@ckeditor/ckeditor5-core";
9
+ import { WidgetToolbarRepository } from "@ckeditor/ckeditor5-widget";
11
10
  /**
12
- * The media embed toolbar plugin. It creates a toolbar for media embed that shows up when the media element is selected.
13
- *
14
- * Instances of toolbar components (e.g. buttons) are created based on the
15
- * {@link module:media-embed/mediaembedconfig~MediaEmbedConfig#toolbar `media.toolbar` configuration option}.
16
- */
11
+ * The media embed toolbar plugin. It creates a toolbar for media embed that shows up when the media element is selected.
12
+ *
13
+ * Instances of toolbar components (e.g. buttons) are created based on the
14
+ * {@link module:media-embed/mediaembedconfig~MediaEmbedConfig#toolbar `media.toolbar` configuration option}.
15
+ */
17
16
  export declare class MediaEmbedToolbar extends Plugin {
18
- /**
19
- * @inheritDoc
20
- */
21
- static get requires(): readonly [typeof WidgetToolbarRepository];
22
- /**
23
- * @inheritDoc
24
- */
25
- static get pluginName(): "MediaEmbedToolbar";
26
- /**
27
- * @inheritDoc
28
- */
29
- static get isOfficialPlugin(): true;
30
- /**
31
- * @inheritDoc
32
- */
33
- afterInit(): void;
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ static get requires(): PluginDependenciesOf<[WidgetToolbarRepository]>;
21
+ /**
22
+ * @inheritDoc
23
+ */
24
+ static get pluginName(): "MediaEmbedToolbar";
25
+ /**
26
+ * @inheritDoc
27
+ */
28
+ static override get isOfficialPlugin(): true;
29
+ /**
30
+ * @inheritDoc
31
+ */
32
+ afterInit(): void;
34
33
  }
@@ -1,38 +1,38 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
5
  /**
6
- * @module media-embed/mediaembedui
7
- */
8
- import { Plugin } from '@ckeditor/ckeditor5-core';
9
- import { Dialog } from '@ckeditor/ckeditor5-ui';
10
- import { MediaEmbedEditing } from './mediaembedediting.js';
6
+ * @module media-embed/mediaembedui
7
+ */
8
+ import { Plugin, type PluginDependenciesOf } from "@ckeditor/ckeditor5-core";
9
+ import { Dialog } from "@ckeditor/ckeditor5-ui";
10
+ import { MediaEmbedEditing } from "./mediaembedediting.js";
11
11
  /**
12
- * The media embed UI plugin.
13
- */
12
+ * The media embed UI plugin.
13
+ */
14
14
  export declare class MediaEmbedUI extends Plugin {
15
- /**
16
- * @inheritDoc
17
- */
18
- static get requires(): readonly [typeof MediaEmbedEditing, typeof Dialog];
19
- /**
20
- * @inheritDoc
21
- */
22
- static get pluginName(): "MediaEmbedUI";
23
- /**
24
- * @inheritDoc
25
- */
26
- static get isOfficialPlugin(): true;
27
- private _formView;
28
- /**
29
- * @inheritDoc
30
- */
31
- init(): void;
32
- /**
33
- * Creates a button for menu bar that will show media embed dialog.
34
- */
35
- private _createDialogButton;
36
- private _showDialog;
37
- private _handleSubmitForm;
15
+ /**
16
+ * @inheritDoc
17
+ */
18
+ static get requires(): PluginDependenciesOf<[MediaEmbedEditing, Dialog]>;
19
+ /**
20
+ * @inheritDoc
21
+ */
22
+ static get pluginName(): "MediaEmbedUI";
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ static override get isOfficialPlugin(): true;
27
+ private _formView;
28
+ /**
29
+ * @inheritDoc
30
+ */
31
+ init(): void;
32
+ /**
33
+ * Creates a button for menu bar that will show media embed dialog.
34
+ */
35
+ private _createDialogButton;
36
+ private _showDialog;
37
+ private _handleSubmitForm;
38
38
  }
@@ -1,63 +1,63 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
5
- import { type Locale } from '@ckeditor/ckeditor5-utils';
6
- import type { ViewDowncastWriter, ViewElement } from '@ckeditor/ckeditor5-engine';
7
- import type { MediaEmbedConfig, MediaEmbedProvider } from './mediaembedconfig.js';
8
- import type { MediaOptions } from './utils.js';
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ import { type Locale } from "@ckeditor/ckeditor5-utils";
6
+ import type { ViewDowncastWriter, ViewElement } from "@ckeditor/ckeditor5-engine";
7
+ import type { MediaEmbedConfig, MediaEmbedProvider } from "./mediaembedconfig.js";
8
+ import type { MediaOptions } from "./utils.js";
9
9
  /**
10
- * A bridge between the raw media content provider definitions and the editor view content.
11
- *
12
- * It helps translating media URLs to corresponding {@link module:engine/view/element~ViewElement view elements}.
13
- *
14
- * Mostly used by the {@link module:media-embed/mediaembedediting~MediaEmbedEditing} plugin.
15
- */
10
+ * A bridge between the raw media content provider definitions and the editor view content.
11
+ *
12
+ * It helps translating media URLs to corresponding {@link module:engine/view/element~ViewElement view elements}.
13
+ *
14
+ * Mostly used by the {@link module:media-embed/mediaembedediting~MediaEmbedEditing} plugin.
15
+ */
16
16
  export declare class MediaRegistry {
17
- /**
18
- * The {@link module:utils/locale~Locale} instance.
19
- */
20
- locale: Locale;
21
- /**
22
- * The media provider definitions available for the registry. Usually corresponding with the
23
- * {@link module:media-embed/mediaembedconfig~MediaEmbedConfig media configuration}.
24
- */
25
- providerDefinitions: Array<MediaEmbedProvider>;
26
- /**
27
- * Creates an instance of the {@link module:media-embed/mediaregistry~MediaRegistry} class.
28
- *
29
- * @param locale The localization services instance.
30
- * @param config The configuration of the media embed feature.
31
- */
32
- constructor(locale: Locale, config: MediaEmbedConfig);
33
- /**
34
- * Checks whether the passed URL is representing a certain media type allowed in the editor.
35
- *
36
- * @param url The URL to be checked
37
- */
38
- hasMedia(url: string): boolean;
39
- /**
40
- * For the given media URL string and options, it returns the {@link module:engine/view/element~ViewElement view element}
41
- * representing that media.
42
- *
43
- * **Note:** If no URL is specified, an empty view element is returned.
44
- *
45
- * @param writer The view writer used to produce a view element.
46
- * @param url The URL to be translated into a view element.
47
- */
48
- getMediaViewElement(writer: ViewDowncastWriter, url: string, options: MediaOptions): ViewElement;
49
- /**
50
- * Returns a `Media` instance for the given URL.
51
- *
52
- * @param url The URL of the media.
53
- * @returns The `Media` instance or `null` when there is none.
54
- */
55
- private _getMedia;
56
- /**
57
- * Tries to match `url` to `pattern`.
58
- *
59
- * @param url The URL of the media.
60
- * @param pattern The pattern that should accept the media URL.
61
- */
62
- private _getUrlMatches;
17
+ /**
18
+ * The {@link module:utils/locale~Locale} instance.
19
+ */
20
+ locale: Locale;
21
+ /**
22
+ * The media provider definitions available for the registry. Usually corresponding with the
23
+ * {@link module:media-embed/mediaembedconfig~MediaEmbedConfig media configuration}.
24
+ */
25
+ providerDefinitions: Array<MediaEmbedProvider>;
26
+ /**
27
+ * Creates an instance of the {@link module:media-embed/mediaregistry~MediaRegistry} class.
28
+ *
29
+ * @param locale The localization services instance.
30
+ * @param config The configuration of the media embed feature.
31
+ */
32
+ constructor(locale: Locale, config: MediaEmbedConfig);
33
+ /**
34
+ * Checks whether the passed URL is representing a certain media type allowed in the editor.
35
+ *
36
+ * @param url The URL to be checked
37
+ */
38
+ hasMedia(url: string): boolean;
39
+ /**
40
+ * For the given media URL string and options, it returns the {@link module:engine/view/element~ViewElement view element}
41
+ * representing that media.
42
+ *
43
+ * **Note:** If no URL is specified, an empty view element is returned.
44
+ *
45
+ * @param writer The view writer used to produce a view element.
46
+ * @param url The URL to be translated into a view element.
47
+ */
48
+ getMediaViewElement(writer: ViewDowncastWriter, url: string, options: MediaOptions): ViewElement;
49
+ /**
50
+ * Returns a `Media` instance for the given URL.
51
+ *
52
+ * @param url The URL of the media.
53
+ * @returns The `Media` instance or `null` when there is none.
54
+ */
55
+ private _getMedia;
56
+ /**
57
+ * Tries to match `url` to `pattern`.
58
+ *
59
+ * @param url The URL of the media.
60
+ * @param pattern The pattern that should accept the media URL.
61
+ */
62
+ private _getUrlMatches;
63
63
  }
@@ -2,4 +2,4 @@
2
2
  * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
- export default {"af":{"dictionary":{"media widget":"","Media URL":"","Paste the media URL in the input.":"","Tip: Paste the URL into the content to embed faster.":"","The URL must not be empty.":"","This media URL is not supported.":"","Insert media":"","Media":"","Media toolbar":"","Open media in new tab":"","Media embed":""},getPluralForm(n){return (n != 1);}}}
5
+ export default {"af":{"dictionary":{"media widget":"","Media URL":"","Paste the media URL in the input.":"","Tip: Paste the URL into the content to embed faster.":"","The URL must not be empty.":"","This media URL is not supported.":"","Insert media":"","Media embed":"","Media":"","Media toolbar":"","Open media in new tab":"","Left aligned media":"","Centered media":"","Right aligned media":"","Resize media":"","Resize media to %0":"","Resize media to the original size":"","Resize media (in %0)":"","Custom media size":"","Media resize list":"","Media Resize":""}}}
@@ -4,8 +4,10 @@
4
4
  */
5
5
 
6
6
  ( e => {
7
- const { [ 'af' ]: { dictionary, getPluralForm } } = {"af":{"dictionary":{"media widget":"","Media URL":"","Paste the media URL in the input.":"","Tip: Paste the URL into the content to embed faster.":"","The URL must not be empty.":"","This media URL is not supported.":"","Insert media":"","Media":"","Media toolbar":"","Open media in new tab":"","Media embed":""},getPluralForm(n){return (n != 1);}}};
7
+ const { [ 'af' ]: translations } = {"af":{"dictionary":{"media widget":"","Media URL":"","Paste the media URL in the input.":"","Tip: Paste the URL into the content to embed faster.":"","The URL must not be empty.":"","This media URL is not supported.":"","Insert media":"","Media embed":"","Media":"","Media toolbar":"","Open media in new tab":"","Left aligned media":"","Centered media":"","Right aligned media":"","Resize media":"","Resize media to %0":"","Resize media to the original size":"","Resize media (in %0)":"","Custom media size":"","Media resize list":"","Media Resize":""}}};
8
8
  e[ 'af' ] ||= { dictionary: {}, getPluralForm: null };
9
- e[ 'af' ].dictionary = Object.assign( e[ 'af' ].dictionary, dictionary );
10
- e[ 'af' ].getPluralForm = getPluralForm;
9
+ e[ 'af' ].dictionary = Object.assign( e[ 'af' ].dictionary, translations.dictionary );
10
+ if ( translations.getPluralForm ) {
11
+ e[ 'af' ].getPluralForm = translations.getPluralForm;
12
+ }
11
13
  } )( window.CKEDITOR_TRANSLATIONS ||= {} );
@@ -2,4 +2,4 @@
2
2
  * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
- export default {"ar":{"dictionary":{"media widget":"أداة الوسائط","Media URL":"عنوان URL الوسائط","Paste the media URL in the input.":"ألصق عنوان URL الوسائط في موضع الإدخال.","Tip: Paste the URL into the content to embed faster.":"نصيحة: ألصق عنوان URL داخل المحتوى؛ لتسريع عملية التضمين.","The URL must not be empty.":"لا يمكن ترك بيان عنوان URL فارغاً.","This media URL is not supported.":"عنوان URL الوسائط هذا غير مدعوم.","Insert media":"أدخل الوسائط","Media":"وسائط","Media toolbar":"شريط أدوات الوسائط","Open media in new tab":"فتح الوسائط في علامة تبويب جديدة","Media embed":"تضمين الوسائط"},getPluralForm(n){return (n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);}}}
5
+ export default {"ar":{"dictionary":{"media widget":"أداة الوسائط","Media URL":"عنوان URL الوسائط","Paste the media URL in the input.":"ألصق عنوان URL الوسائط في موضع الإدخال.","Tip: Paste the URL into the content to embed faster.":"نصيحة: ألصق عنوان URL داخل المحتوى؛ لتسريع عملية التضمين.","The URL must not be empty.":"لا يمكن ترك بيان عنوان URL فارغاً.","This media URL is not supported.":"عنوان URL الوسائط هذا غير مدعوم.","Insert media":"أدخل الوسائط","Media embed":"تضمين الوسائط","Media":"وسائط","Media toolbar":"شريط أدوات الوسائط","Open media in new tab":"فتح الوسائط في علامة تبويب جديدة","Left aligned media":"وسائط مُحاذية لليسار","Centered media":"وسائط مُوسّطة","Right aligned media":"وسائط مُحاذية لليمين","Resize media":"تغيير حجم الوسائط","Resize media to %0":"تغيير حجم الوسائط إلى %0","Resize media to the original size":"تغيير حجم الوسائط إلى حجمها الأصلي","Resize media (in %0)":"تغيير حجم الوسائط (في %0)","Custom media size":"حجم مخصص للوسائط","Media resize list":"قائمة تغيير حجم الوسائط","Media Resize":"تغيير حجم الوسائط"}}}
@@ -4,8 +4,10 @@
4
4
  */
5
5
 
6
6
  ( e => {
7
- const { [ 'ar' ]: { dictionary, getPluralForm } } = {"ar":{"dictionary":{"media widget":"أداة الوسائط","Media URL":"عنوان URL الوسائط","Paste the media URL in the input.":"ألصق عنوان URL الوسائط في موضع الإدخال.","Tip: Paste the URL into the content to embed faster.":"نصيحة: ألصق عنوان URL داخل المحتوى؛ لتسريع عملية التضمين.","The URL must not be empty.":"لا يمكن ترك بيان عنوان URL فارغاً.","This media URL is not supported.":"عنوان URL الوسائط هذا غير مدعوم.","Insert media":"أدخل الوسائط","Media":"وسائط","Media toolbar":"شريط أدوات الوسائط","Open media in new tab":"فتح الوسائط في علامة تبويب جديدة","Media embed":"تضمين الوسائط"},getPluralForm(n){return (n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);}}};
7
+ const { [ 'ar' ]: translations } = {"ar":{"dictionary":{"media widget":"أداة الوسائط","Media URL":"عنوان URL الوسائط","Paste the media URL in the input.":"ألصق عنوان URL الوسائط في موضع الإدخال.","Tip: Paste the URL into the content to embed faster.":"نصيحة: ألصق عنوان URL داخل المحتوى؛ لتسريع عملية التضمين.","The URL must not be empty.":"لا يمكن ترك بيان عنوان URL فارغاً.","This media URL is not supported.":"عنوان URL الوسائط هذا غير مدعوم.","Insert media":"أدخل الوسائط","Media embed":"تضمين الوسائط","Media":"وسائط","Media toolbar":"شريط أدوات الوسائط","Open media in new tab":"فتح الوسائط في علامة تبويب جديدة","Left aligned media":"وسائط مُحاذية لليسار","Centered media":"وسائط مُوسّطة","Right aligned media":"وسائط مُحاذية لليمين","Resize media":"تغيير حجم الوسائط","Resize media to %0":"تغيير حجم الوسائط إلى %0","Resize media to the original size":"تغيير حجم الوسائط إلى حجمها الأصلي","Resize media (in %0)":"تغيير حجم الوسائط (في %0)","Custom media size":"حجم مخصص للوسائط","Media resize list":"قائمة تغيير حجم الوسائط","Media Resize":"تغيير حجم الوسائط"}}};
8
8
  e[ 'ar' ] ||= { dictionary: {}, getPluralForm: null };
9
- e[ 'ar' ].dictionary = Object.assign( e[ 'ar' ].dictionary, dictionary );
10
- e[ 'ar' ].getPluralForm = getPluralForm;
9
+ e[ 'ar' ].dictionary = Object.assign( e[ 'ar' ].dictionary, translations.dictionary );
10
+ if ( translations.getPluralForm ) {
11
+ e[ 'ar' ].getPluralForm = translations.getPluralForm;
12
+ }
11
13
  } )( window.CKEDITOR_TRANSLATIONS ||= {} );
@@ -2,4 +2,4 @@
2
2
  * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
- export default {"ast":{"dictionary":{"media widget":"","Media URL":"","Paste the media URL in the input.":"","Tip: Paste the URL into the content to embed faster.":"","The URL must not be empty.":"","This media URL is not supported.":"","Insert media":"","Media":"","Media toolbar":"","Open media in new tab":"","Media embed":""},getPluralForm(n){return (n != 1);}}}
5
+ export default {"ast":{"dictionary":{"media widget":"","Media URL":"","Paste the media URL in the input.":"","Tip: Paste the URL into the content to embed faster.":"","The URL must not be empty.":"","This media URL is not supported.":"","Insert media":"","Media embed":"","Media":"","Media toolbar":"","Open media in new tab":"","Left aligned media":"","Centered media":"","Right aligned media":"","Resize media":"","Resize media to %0":"","Resize media to the original size":"","Resize media (in %0)":"","Custom media size":"","Media resize list":"","Media Resize":""}}}
@@ -4,8 +4,10 @@
4
4
  */
5
5
 
6
6
  ( e => {
7
- const { [ 'ast' ]: { dictionary, getPluralForm } } = {"ast":{"dictionary":{"media widget":"","Media URL":"","Paste the media URL in the input.":"","Tip: Paste the URL into the content to embed faster.":"","The URL must not be empty.":"","This media URL is not supported.":"","Insert media":"","Media":"","Media toolbar":"","Open media in new tab":"","Media embed":""},getPluralForm(n){return (n != 1);}}};
7
+ const { [ 'ast' ]: translations } = {"ast":{"dictionary":{"media widget":"","Media URL":"","Paste the media URL in the input.":"","Tip: Paste the URL into the content to embed faster.":"","The URL must not be empty.":"","This media URL is not supported.":"","Insert media":"","Media embed":"","Media":"","Media toolbar":"","Open media in new tab":"","Left aligned media":"","Centered media":"","Right aligned media":"","Resize media":"","Resize media to %0":"","Resize media to the original size":"","Resize media (in %0)":"","Custom media size":"","Media resize list":"","Media Resize":""}}};
8
8
  e[ 'ast' ] ||= { dictionary: {}, getPluralForm: null };
9
- e[ 'ast' ].dictionary = Object.assign( e[ 'ast' ].dictionary, dictionary );
10
- e[ 'ast' ].getPluralForm = getPluralForm;
9
+ e[ 'ast' ].dictionary = Object.assign( e[ 'ast' ].dictionary, translations.dictionary );
10
+ if ( translations.getPluralForm ) {
11
+ e[ 'ast' ].getPluralForm = translations.getPluralForm;
12
+ }
11
13
  } )( window.CKEDITOR_TRANSLATIONS ||= {} );
@@ -2,4 +2,4 @@
2
2
  * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
- export default {"az":{"dictionary":{"media widget":"media vidgeti","Media URL":"Media URL","Paste the media URL in the input.":"Media URL-ni xanaya əlavə edin","Tip: Paste the URL into the content to embed faster.":"Məsləhət: Sürətli qoşma üçün URL-i kontentə əlavə edin","The URL must not be empty.":"URL boş olmamalıdır.","This media URL is not supported.":"Bu media URL dəstəklənmir.","Insert media":"Media əlavə ed","Media":"","Media toolbar":"Media paneli","Open media in new tab":"","Media embed":""},getPluralForm(n){return (n != 1);}}}
5
+ export default {"az":{"dictionary":{"media widget":"media vidgeti","Media URL":"Media URL","Paste the media URL in the input.":"Media URL-ni xanaya əlavə edin","Tip: Paste the URL into the content to embed faster.":"Məsləhət: Sürətli qoşma üçün URL-i kontentə əlavə edin","The URL must not be empty.":"URL boş olmamalıdır.","This media URL is not supported.":"Bu media URL dəstəklənmir.","Insert media":"Media əlavə ed","Media embed":"","Media":"","Media toolbar":"Media paneli","Open media in new tab":"","Left aligned media":"","Centered media":"","Right aligned media":"","Resize media":"","Resize media to %0":"","Resize media to the original size":"","Resize media (in %0)":"","Custom media size":"","Media resize list":"","Media Resize":""}}}
@@ -4,8 +4,10 @@
4
4
  */
5
5
 
6
6
  ( e => {
7
- const { [ 'az' ]: { dictionary, getPluralForm } } = {"az":{"dictionary":{"media widget":"media vidgeti","Media URL":"Media URL","Paste the media URL in the input.":"Media URL-ni xanaya əlavə edin","Tip: Paste the URL into the content to embed faster.":"Məsləhət: Sürətli qoşma üçün URL-i kontentə əlavə edin","The URL must not be empty.":"URL boş olmamalıdır.","This media URL is not supported.":"Bu media URL dəstəklənmir.","Insert media":"Media əlavə ed","Media":"","Media toolbar":"Media paneli","Open media in new tab":"","Media embed":""},getPluralForm(n){return (n != 1);}}};
7
+ const { [ 'az' ]: translations } = {"az":{"dictionary":{"media widget":"media vidgeti","Media URL":"Media URL","Paste the media URL in the input.":"Media URL-ni xanaya əlavə edin","Tip: Paste the URL into the content to embed faster.":"Məsləhət: Sürətli qoşma üçün URL-i kontentə əlavə edin","The URL must not be empty.":"URL boş olmamalıdır.","This media URL is not supported.":"Bu media URL dəstəklənmir.","Insert media":"Media əlavə ed","Media embed":"","Media":"","Media toolbar":"Media paneli","Open media in new tab":"","Left aligned media":"","Centered media":"","Right aligned media":"","Resize media":"","Resize media to %0":"","Resize media to the original size":"","Resize media (in %0)":"","Custom media size":"","Media resize list":"","Media Resize":""}}};
8
8
  e[ 'az' ] ||= { dictionary: {}, getPluralForm: null };
9
- e[ 'az' ].dictionary = Object.assign( e[ 'az' ].dictionary, dictionary );
10
- e[ 'az' ].getPluralForm = getPluralForm;
9
+ e[ 'az' ].dictionary = Object.assign( e[ 'az' ].dictionary, translations.dictionary );
10
+ if ( translations.getPluralForm ) {
11
+ e[ 'az' ].getPluralForm = translations.getPluralForm;
12
+ }
11
13
  } )( window.CKEDITOR_TRANSLATIONS ||= {} );
@@ -2,4 +2,4 @@
2
2
  * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
- export default {"be":{"dictionary":{"media widget":"медыя-віджэт","Media URL":"URL медыя","Paste the media URL in the input.":"Уставіць URL медыя ў поле ўводу.","Tip: Paste the URL into the content to embed faster.":"Падказка: Уставіць URL у кантэнт для ўключэння хутчэй.","The URL must not be empty.":"URL не павінен быць пустым.","This media URL is not supported.":"Гэты медыя URL не падтрымліваецца.","Insert media":"Уставіць медыя","Media":"Медыя","Media toolbar":"Панель інструментаў медыя","Open media in new tab":"Адкрыць медыя ў новай картцы","Media embed":""},getPluralForm(n){return (n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);}}}
5
+ export default {"be":{"dictionary":{"media widget":"медыя-віджэт","Media URL":"URL медыя","Paste the media URL in the input.":"Уставіць URL медыя ў поле ўводу.","Tip: Paste the URL into the content to embed faster.":"Падказка: Уставіць URL у кантэнт для ўключэння хутчэй.","The URL must not be empty.":"URL не павінен быць пустым.","This media URL is not supported.":"Гэты медыя URL не падтрымліваецца.","Insert media":"Уставіць медыя","Media embed":"","Media":"Медыя","Media toolbar":"Панель інструментаў медыя","Open media in new tab":"Адкрыць медыя ў новай картцы","Left aligned media":"","Centered media":"","Right aligned media":"","Resize media":"","Resize media to %0":"","Resize media to the original size":"","Resize media (in %0)":"","Custom media size":"","Media resize list":"","Media Resize":""}}}
@@ -4,8 +4,10 @@
4
4
  */
5
5
 
6
6
  ( e => {
7
- const { [ 'be' ]: { dictionary, getPluralForm } } = {"be":{"dictionary":{"media widget":"медыя-віджэт","Media URL":"URL медыя","Paste the media URL in the input.":"Уставіць URL медыя ў поле ўводу.","Tip: Paste the URL into the content to embed faster.":"Падказка: Уставіць URL у кантэнт для ўключэння хутчэй.","The URL must not be empty.":"URL не павінен быць пустым.","This media URL is not supported.":"Гэты медыя URL не падтрымліваецца.","Insert media":"Уставіць медыя","Media":"Медыя","Media toolbar":"Панель інструментаў медыя","Open media in new tab":"Адкрыць медыя ў новай картцы","Media embed":""},getPluralForm(n){return (n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);}}};
7
+ const { [ 'be' ]: translations } = {"be":{"dictionary":{"media widget":"медыя-віджэт","Media URL":"URL медыя","Paste the media URL in the input.":"Уставіць URL медыя ў поле ўводу.","Tip: Paste the URL into the content to embed faster.":"Падказка: Уставіць URL у кантэнт для ўключэння хутчэй.","The URL must not be empty.":"URL не павінен быць пустым.","This media URL is not supported.":"Гэты медыя URL не падтрымліваецца.","Insert media":"Уставіць медыя","Media embed":"","Media":"Медыя","Media toolbar":"Панель інструментаў медыя","Open media in new tab":"Адкрыць медыя ў новай картцы","Left aligned media":"","Centered media":"","Right aligned media":"","Resize media":"","Resize media to %0":"","Resize media to the original size":"","Resize media (in %0)":"","Custom media size":"","Media resize list":"","Media Resize":""}}};
8
8
  e[ 'be' ] ||= { dictionary: {}, getPluralForm: null };
9
- e[ 'be' ].dictionary = Object.assign( e[ 'be' ].dictionary, dictionary );
10
- e[ 'be' ].getPluralForm = getPluralForm;
9
+ e[ 'be' ].dictionary = Object.assign( e[ 'be' ].dictionary, translations.dictionary );
10
+ if ( translations.getPluralForm ) {
11
+ e[ 'be' ].getPluralForm = translations.getPluralForm;
12
+ }
11
13
  } )( window.CKEDITOR_TRANSLATIONS ||= {} );
@@ -2,4 +2,4 @@
2
2
  * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
4
  */
5
- export default {"bg":{"dictionary":{"media widget":"Медиен компонент","Media URL":"Медиен уеб адрес","Paste the media URL in the input.":"Постави медииния уеб адрес във входа.","Tip: Paste the URL into the content to embed faster.":"Полезен съвет: Постави уеб адреса в съдържанието, за да вградите по-бързо.","The URL must not be empty.":"Уеб адресът не трябва да бъде празен.","This media URL is not supported.":"Този медиен уеб адрес не се поддържа.","Insert media":"Вмъкни медия","Media":"Медия","Media toolbar":"Лента със задачи за медия","Open media in new tab":"Отворете мултимедията в нов раздел","Media embed":"Вмъкване на мултимедия"},getPluralForm(n){return (n != 1);}}}
5
+ export default {"bg":{"dictionary":{"media widget":"Медиен компонент","Media URL":"Медиен уеб адрес","Paste the media URL in the input.":"Постави медииния уеб адрес във входа.","Tip: Paste the URL into the content to embed faster.":"Полезен съвет: Постави уеб адреса в съдържанието, за да вградите по-бързо.","The URL must not be empty.":"Уеб адресът не трябва да бъде празен.","This media URL is not supported.":"Този медиен уеб адрес не се поддържа.","Insert media":"Вмъкни медия","Media embed":"Вмъкване на мултимедия","Media":"Медия","Media toolbar":"Лента със задачи за медия","Open media in new tab":"Отворете мултимедията в нов раздел","Left aligned media":"Медия, подравнена вляво","Centered media":"Центрирана медия","Right aligned media":"Медия, подравнена вдясно","Resize media":"Преоразмери медийния файл","Resize media to %0":"Преоразмери медийния файл до %0","Resize media to the original size":"Преоразмери медийния файл до оригиналния му размер","Resize media (in %0)":"Преоразмери медийния файл (в %0)","Custom media size":"Персонализиран размер на медийния файл","Media resize list":"Списък с медийни файлове за преоразмеряване","Media Resize":"Преоразмеряване на медийни файлове"}}}