@ckeditor/ckeditor5-ui 39.0.2 → 40.1.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.
- package/LICENSE.md +3 -3
- package/lang/contexts.json +5 -1
- package/lang/translations/ar.po +16 -0
- package/lang/translations/ast.po +16 -0
- package/lang/translations/az.po +16 -0
- package/lang/translations/bg.po +16 -0
- package/lang/translations/bn.po +16 -0
- package/lang/translations/ca.po +16 -0
- package/lang/translations/cs.po +16 -0
- package/lang/translations/da.po +16 -0
- package/lang/translations/de-ch.po +16 -0
- package/lang/translations/de.po +16 -0
- package/lang/translations/el.po +16 -0
- package/lang/translations/en-au.po +16 -0
- package/lang/translations/en-gb.po +16 -0
- package/lang/translations/en.po +16 -0
- package/lang/translations/eo.po +16 -0
- package/lang/translations/es.po +16 -0
- package/lang/translations/et.po +16 -0
- package/lang/translations/eu.po +16 -0
- package/lang/translations/fa.po +16 -0
- package/lang/translations/fi.po +16 -0
- package/lang/translations/fr.po +16 -0
- package/lang/translations/gl.po +16 -0
- package/lang/translations/he.po +16 -0
- package/lang/translations/hi.po +16 -0
- package/lang/translations/hr.po +16 -0
- package/lang/translations/hu.po +16 -0
- package/lang/translations/id.po +16 -0
- package/lang/translations/it.po +16 -0
- package/lang/translations/ja.po +16 -0
- package/lang/translations/km.po +16 -0
- package/lang/translations/kn.po +16 -0
- package/lang/translations/ko.po +16 -0
- package/lang/translations/ku.po +16 -0
- package/lang/translations/lt.po +16 -0
- package/lang/translations/lv.po +16 -0
- package/lang/translations/ms.po +16 -0
- package/lang/translations/nb.po +16 -0
- package/lang/translations/ne.po +16 -0
- package/lang/translations/nl.po +16 -0
- package/lang/translations/no.po +16 -0
- package/lang/translations/pl.po +16 -0
- package/lang/translations/pt-br.po +17 -1
- package/lang/translations/pt.po +16 -0
- package/lang/translations/ro.po +16 -0
- package/lang/translations/ru.po +16 -0
- package/lang/translations/sk.po +16 -0
- package/lang/translations/sl.po +16 -0
- package/lang/translations/sq.po +16 -0
- package/lang/translations/sr-latn.po +16 -0
- package/lang/translations/sr.po +16 -0
- package/lang/translations/sv.po +16 -0
- package/lang/translations/th.po +16 -0
- package/lang/translations/tk.po +16 -0
- package/lang/translations/tr.po +16 -0
- package/lang/translations/tt.po +16 -0
- package/lang/translations/ug.po +38 -22
- package/lang/translations/uk.po +16 -0
- package/lang/translations/ur.po +16 -0
- package/lang/translations/uz.po +16 -0
- package/lang/translations/vi.po +16 -0
- package/lang/translations/zh-cn.po +16 -0
- package/lang/translations/zh.po +16 -0
- package/package.json +3 -3
- package/src/arialiveannouncer.d.ts +94 -0
- package/src/arialiveannouncer.js +113 -0
- package/src/autocomplete/autocompleteview.d.ts +81 -0
- package/src/autocomplete/autocompleteview.js +153 -0
- package/src/button/button.d.ts +0 -6
- package/src/button/buttonlabel.d.ts +34 -0
- package/src/button/buttonlabel.js +5 -0
- package/src/button/buttonlabelview.d.ts +31 -0
- package/src/button/buttonlabelview.js +42 -0
- package/src/button/buttonview.d.ts +14 -10
- package/src/button/buttonview.js +11 -25
- package/src/dropdown/dropdownview.js +5 -4
- package/src/dropdown/utils.d.ts +15 -1
- package/src/dropdown/utils.js +47 -21
- package/src/editorui/editorui.d.ts +6 -0
- package/src/editorui/editorui.js +2 -0
- package/src/editorui/poweredby.js +14 -37
- package/src/focuscycler.d.ts +45 -2
- package/src/focuscycler.js +34 -9
- package/src/formheader/formheaderview.d.ts +6 -0
- package/src/formheader/formheaderview.js +6 -0
- package/src/highlightedtext/highlightedtextview.d.ts +38 -0
- package/src/highlightedtext/highlightedtextview.js +102 -0
- package/src/icon/iconview.d.ts +7 -0
- package/src/icon/iconview.js +2 -0
- package/src/index.d.ts +12 -2
- package/src/index.js +8 -0
- package/src/input/inputbase.d.ts +107 -0
- package/src/input/inputbase.js +110 -0
- package/src/input/inputview.d.ts +4 -89
- package/src/input/inputview.js +5 -87
- package/src/labeledfield/labeledfieldview.d.ts +7 -2
- package/src/labeledfield/labeledfieldview.js +2 -2
- package/src/labeledfield/utils.d.ts +34 -4
- package/src/labeledfield/utils.js +51 -6
- package/src/list/listitemgroupview.d.ts +59 -0
- package/src/list/listitemgroupview.js +63 -0
- package/src/list/listitemview.d.ts +2 -1
- package/src/list/listitemview.js +3 -1
- package/src/list/listview.d.ts +59 -2
- package/src/list/listview.js +105 -8
- package/src/panel/balloon/balloonpanelview.js +26 -4
- package/src/panel/sticky/stickypanelview.d.ts +1 -3
- package/src/panel/sticky/stickypanelview.js +53 -50
- package/src/search/filteredview.d.ts +31 -0
- package/src/search/filteredview.js +5 -0
- package/src/search/searchinfoview.d.ts +45 -0
- package/src/search/searchinfoview.js +59 -0
- package/src/search/searchresultsview.d.ts +54 -0
- package/src/search/searchresultsview.js +65 -0
- package/src/search/text/searchtextqueryview.d.ts +76 -0
- package/src/search/text/searchtextqueryview.js +75 -0
- package/src/search/text/searchtextview.d.ts +219 -0
- package/src/search/text/searchtextview.js +201 -0
- package/src/spinner/spinnerview.d.ts +25 -0
- package/src/spinner/spinnerview.js +38 -0
- package/src/textarea/textareaview.d.ts +88 -0
- package/src/textarea/textareaview.js +142 -0
- package/src/toolbar/block/blocktoolbar.js +30 -26
- package/src/toolbar/normalizetoolbarconfig.d.ts +1 -0
- package/src/toolbar/normalizetoolbarconfig.js +9 -8
- package/src/toolbar/toolbarview.d.ts +1 -0
- package/src/toolbar/toolbarview.js +4 -2
- package/theme/components/arialiveannouncer/arialiveannouncer.css +10 -0
- package/theme/components/autocomplete/autocomplete.css +22 -0
- package/theme/components/button/button.css +9 -1
- package/theme/components/formheader/formheader.css +4 -0
- package/theme/components/highlightedtext/highlightedtext.css +12 -0
- package/theme/components/search/search.css +43 -0
- package/theme/components/spinner/spinner.css +23 -0
- package/theme/components/textarea/textarea.css +10 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* @module ui/textarea/textareaview
|
|
7
|
+
*/
|
|
8
|
+
import { Rect, toUnit, getBorderWidths, global, CKEditorError, isVisible } from '@ckeditor/ckeditor5-utils';
|
|
9
|
+
import InputBase from '../input/inputbase';
|
|
10
|
+
import '../../theme/components/input/input.css';
|
|
11
|
+
import '../../theme/components/textarea/textarea.css';
|
|
12
|
+
/**
|
|
13
|
+
* The textarea view class.
|
|
14
|
+
*
|
|
15
|
+
* ```ts
|
|
16
|
+
* const textareaView = new TextareaView();
|
|
17
|
+
*
|
|
18
|
+
* textareaView.minRows = 2;
|
|
19
|
+
* textareaView.maxRows = 10;
|
|
20
|
+
*
|
|
21
|
+
* textareaView.render();
|
|
22
|
+
*
|
|
23
|
+
* document.body.append( textareaView.element );
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export default class TextareaView extends InputBase {
|
|
27
|
+
/**
|
|
28
|
+
* @inheritDoc
|
|
29
|
+
*/
|
|
30
|
+
constructor(locale) {
|
|
31
|
+
super(locale);
|
|
32
|
+
const toPx = toUnit('px');
|
|
33
|
+
this.set('minRows', 2);
|
|
34
|
+
this.set('maxRows', 5);
|
|
35
|
+
this.set('_height', null);
|
|
36
|
+
this.set('resize', 'none');
|
|
37
|
+
this.on('change:minRows', this._validateMinMaxRows.bind(this));
|
|
38
|
+
this.on('change:maxRows', this._validateMinMaxRows.bind(this));
|
|
39
|
+
const bind = this.bindTemplate;
|
|
40
|
+
this.template.tag = 'textarea';
|
|
41
|
+
this.extendTemplate({
|
|
42
|
+
attributes: {
|
|
43
|
+
class: ['ck-textarea'],
|
|
44
|
+
style: {
|
|
45
|
+
height: bind.to('_height', height => height ? toPx(height) : null),
|
|
46
|
+
resize: bind.to('resize')
|
|
47
|
+
},
|
|
48
|
+
rows: bind.to('minRows')
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @inheritDoc
|
|
54
|
+
*/
|
|
55
|
+
render() {
|
|
56
|
+
super.render();
|
|
57
|
+
this.on('input', () => {
|
|
58
|
+
this._updateAutoGrowHeight(true);
|
|
59
|
+
this.fire('update');
|
|
60
|
+
});
|
|
61
|
+
this.on('change:value', () => {
|
|
62
|
+
// The content needs to be updated by the browser after the value is changed. It takes a few ms.
|
|
63
|
+
global.window.requestAnimationFrame(() => {
|
|
64
|
+
if (isVisible(this.element)) {
|
|
65
|
+
this._updateAutoGrowHeight();
|
|
66
|
+
this.fire('update');
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* @inheritDoc
|
|
73
|
+
*/
|
|
74
|
+
reset() {
|
|
75
|
+
super.reset();
|
|
76
|
+
this._updateAutoGrowHeight();
|
|
77
|
+
this.fire('update');
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Updates the {@link #_height} of the view depending on {@link #minRows}, {@link #maxRows}, and the current content size.
|
|
81
|
+
*
|
|
82
|
+
* **Note**: This method overrides manual resize done by the user using a handle. It's a known bug.
|
|
83
|
+
*/
|
|
84
|
+
_updateAutoGrowHeight(shouldScroll) {
|
|
85
|
+
const viewElement = this.element;
|
|
86
|
+
const singleLineContentClone = getTextareaElementClone(viewElement, '1');
|
|
87
|
+
const fullTextValueClone = getTextareaElementClone(viewElement, viewElement.value);
|
|
88
|
+
const singleLineContentStyles = singleLineContentClone.ownerDocument.defaultView.getComputedStyle(singleLineContentClone);
|
|
89
|
+
const verticalPaddings = parseFloat(singleLineContentStyles.paddingTop) + parseFloat(singleLineContentStyles.paddingBottom);
|
|
90
|
+
const borders = getBorderWidths(singleLineContentClone);
|
|
91
|
+
const lineHeight = parseFloat(singleLineContentStyles.lineHeight);
|
|
92
|
+
const verticalBorder = borders.top + borders.bottom;
|
|
93
|
+
const singleLineAreaDefaultHeight = new Rect(singleLineContentClone).height;
|
|
94
|
+
const numberOfLines = Math.round((fullTextValueClone.scrollHeight - verticalPaddings) / lineHeight);
|
|
95
|
+
const maxHeight = this.maxRows * lineHeight + verticalPaddings + verticalBorder;
|
|
96
|
+
// There's a --ck-ui-component-min-height CSS custom property that enforces min height of the component.
|
|
97
|
+
// This min-height is relevant only when there's one line of text. Other than that, we can rely on line-height.
|
|
98
|
+
const minHeight = numberOfLines === 1 ? singleLineAreaDefaultHeight : this.minRows * lineHeight + verticalPaddings + verticalBorder;
|
|
99
|
+
// The size of textarea is controlled by height style instead of rows attribute because event though it is
|
|
100
|
+
// a more complex solution, it is immune to the layout textarea has been rendered in (gird, flex).
|
|
101
|
+
this._height = Math.min(Math.max(Math.max(numberOfLines, this.minRows) * lineHeight + verticalPaddings + verticalBorder, minHeight), maxHeight);
|
|
102
|
+
if (shouldScroll) {
|
|
103
|
+
viewElement.scrollTop = viewElement.scrollHeight;
|
|
104
|
+
}
|
|
105
|
+
singleLineContentClone.remove();
|
|
106
|
+
fullTextValueClone.remove();
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Validates the {@link #minRows} and {@link #maxRows} properties and warns in the console if the configuration is incorrect.
|
|
110
|
+
*/
|
|
111
|
+
_validateMinMaxRows() {
|
|
112
|
+
if (this.minRows > this.maxRows) {
|
|
113
|
+
/**
|
|
114
|
+
* The minimum number of rows is greater than the maximum number of rows.
|
|
115
|
+
*
|
|
116
|
+
* @error ui-textarea-view-min-rows-greater-than-max-rows
|
|
117
|
+
* @param textareaView The misconfigured textarea view instance.
|
|
118
|
+
* @param minRows The value of `minRows` property.
|
|
119
|
+
* @param maxRows The value of `maxRows` property.
|
|
120
|
+
*/
|
|
121
|
+
throw new CKEditorError('ui-textarea-view-min-rows-greater-than-max-rows', {
|
|
122
|
+
textareaView: this,
|
|
123
|
+
minRows: this.minRows,
|
|
124
|
+
maxRows: this.maxRows
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
function getTextareaElementClone(element, value) {
|
|
130
|
+
const clone = element.cloneNode();
|
|
131
|
+
clone.style.position = 'absolute';
|
|
132
|
+
clone.style.top = '-99999px';
|
|
133
|
+
clone.style.left = '-99999px';
|
|
134
|
+
clone.style.height = 'auto';
|
|
135
|
+
clone.style.overflow = 'hidden';
|
|
136
|
+
clone.style.width = element.ownerDocument.defaultView.getComputedStyle(element).width;
|
|
137
|
+
clone.tabIndex = -1;
|
|
138
|
+
clone.rows = 1;
|
|
139
|
+
clone.value = value;
|
|
140
|
+
element.parentNode.insertBefore(clone, element);
|
|
141
|
+
return clone;
|
|
142
|
+
}
|
|
@@ -6,15 +6,14 @@
|
|
|
6
6
|
* @module ui/toolbar/block/blocktoolbar
|
|
7
7
|
*/
|
|
8
8
|
/* global window */
|
|
9
|
-
import { Plugin
|
|
10
|
-
import { Rect, ResizeObserver,
|
|
9
|
+
import { Plugin } from '@ckeditor/ckeditor5-core';
|
|
10
|
+
import { Rect, ResizeObserver, toUnit } from '@ckeditor/ckeditor5-utils';
|
|
11
11
|
import BlockButtonView from './blockbuttonview';
|
|
12
12
|
import BalloonPanelView from '../../panel/balloon/balloonpanelview';
|
|
13
|
-
import ToolbarView from '../toolbarview';
|
|
13
|
+
import ToolbarView, { NESTED_TOOLBAR_ICONS } from '../toolbarview';
|
|
14
14
|
import clickOutsideHandler from '../../bindings/clickoutsidehandler';
|
|
15
15
|
import normalizeToolbarConfig from '../normalizetoolbarconfig';
|
|
16
16
|
const toPx = toUnit('px');
|
|
17
|
-
const { pilcrow } = icons;
|
|
18
17
|
/**
|
|
19
18
|
* The block toolbar plugin.
|
|
20
19
|
*
|
|
@@ -101,6 +100,16 @@ export default class BlockToolbar extends Plugin {
|
|
|
101
100
|
*/
|
|
102
101
|
init() {
|
|
103
102
|
const editor = this.editor;
|
|
103
|
+
const t = editor.t;
|
|
104
|
+
const editBlockText = t('Click to edit block');
|
|
105
|
+
const dragToMoveText = t('Drag to move');
|
|
106
|
+
const editBlockLabel = t('Edit block');
|
|
107
|
+
const isDragDropBlockToolbarPluginLoaded = editor.plugins.has('DragDropBlockToolbar');
|
|
108
|
+
const label = isDragDropBlockToolbarPluginLoaded ? `${editBlockText}\n${dragToMoveText}` : editBlockLabel;
|
|
109
|
+
this.buttonView.label = label;
|
|
110
|
+
if (isDragDropBlockToolbarPluginLoaded) {
|
|
111
|
+
this.buttonView.element.dataset.ckeTooltipClass = 'ck-tooltip_multi-line';
|
|
112
|
+
}
|
|
104
113
|
// Hides panel on a direct selection change.
|
|
105
114
|
this.listenTo(editor.model.document.selection, 'change:range', (evt, data) => {
|
|
106
115
|
if (data.directChange) {
|
|
@@ -192,9 +201,11 @@ export default class BlockToolbar extends Plugin {
|
|
|
192
201
|
const editor = this.editor;
|
|
193
202
|
const t = editor.t;
|
|
194
203
|
const buttonView = new BlockButtonView(editor.locale);
|
|
204
|
+
const iconFromConfig = this._blockToolbarConfig.icon;
|
|
205
|
+
const icon = NESTED_TOOLBAR_ICONS[iconFromConfig] || iconFromConfig || NESTED_TOOLBAR_ICONS.dragIndicator;
|
|
195
206
|
buttonView.set({
|
|
196
207
|
label: t('Edit block'),
|
|
197
|
-
icon
|
|
208
|
+
icon,
|
|
198
209
|
withText: false
|
|
199
210
|
});
|
|
200
211
|
// Bind the panelView observable properties to the buttonView.
|
|
@@ -334,27 +345,20 @@ export default class BlockToolbar extends Plugin {
|
|
|
334
345
|
// When line height is not an integer then treat it as "normal".
|
|
335
346
|
// MDN says that 'normal' == ~1.2 on desktop browsers.
|
|
336
347
|
const contentLineHeight = parseInt(contentStyles.lineHeight, 10) || parseInt(contentStyles.fontSize, 10) * 1.2;
|
|
337
|
-
const
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
left
|
|
352
|
-
};
|
|
353
|
-
}
|
|
354
|
-
]
|
|
355
|
-
});
|
|
356
|
-
this.buttonView.top = position.top;
|
|
357
|
-
this.buttonView.left = position.left;
|
|
348
|
+
const buttonRect = new Rect(this.buttonView.element);
|
|
349
|
+
const contentRect = new Rect(targetElement);
|
|
350
|
+
let positionLeft;
|
|
351
|
+
if (this.editor.locale.uiLanguageDirection === 'ltr') {
|
|
352
|
+
positionLeft = editableRect.left - buttonRect.width;
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
355
|
+
positionLeft = editableRect.right;
|
|
356
|
+
}
|
|
357
|
+
const positionTop = contentRect.top + contentPaddingTop + (contentLineHeight - buttonRect.height) / 2;
|
|
358
|
+
buttonRect.moveTo(positionLeft, positionTop);
|
|
359
|
+
const absoluteButtonRect = buttonRect.toAbsoluteRect();
|
|
360
|
+
this.buttonView.top = absoluteButtonRect.top;
|
|
361
|
+
this.buttonView.left = absoluteButtonRect.left;
|
|
358
362
|
}
|
|
359
363
|
/**
|
|
360
364
|
* Creates a resize observer that observes selected editable and resizes the toolbar panel accordingly.
|
|
@@ -38,14 +38,15 @@ export default function normalizeToolbarConfig(config) {
|
|
|
38
38
|
removeItems: []
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
return {
|
|
43
|
-
items: [],
|
|
44
|
-
removeItems: []
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
return Object.assign({
|
|
41
|
+
const predefinedConfigOptions = {
|
|
48
42
|
items: [],
|
|
49
43
|
removeItems: []
|
|
50
|
-
}
|
|
44
|
+
};
|
|
45
|
+
if (!config) {
|
|
46
|
+
return predefinedConfigOptions;
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
...predefinedConfigOptions,
|
|
50
|
+
...config
|
|
51
|
+
};
|
|
51
52
|
}
|
|
@@ -12,6 +12,7 @@ import type DropdownPanelFocusable from '../dropdown/dropdownpanelfocusable';
|
|
|
12
12
|
import { FocusTracker, KeystrokeHandler, type Locale } from '@ckeditor/ckeditor5-utils';
|
|
13
13
|
import { type ToolbarConfig } from '@ckeditor/ckeditor5-core';
|
|
14
14
|
import '../../theme/components/toolbar/toolbar.css';
|
|
15
|
+
export declare const NESTED_TOOLBAR_ICONS: Record<string, string | undefined>;
|
|
15
16
|
/**
|
|
16
17
|
* The toolbar view class.
|
|
17
18
|
*/
|
|
@@ -17,14 +17,16 @@ import { icons } from '@ckeditor/ckeditor5-core';
|
|
|
17
17
|
import { isObject } from 'lodash-es';
|
|
18
18
|
import '../../theme/components/toolbar/toolbar.css';
|
|
19
19
|
const { threeVerticalDots } = icons;
|
|
20
|
-
const NESTED_TOOLBAR_ICONS = {
|
|
20
|
+
export const NESTED_TOOLBAR_ICONS = {
|
|
21
21
|
alignLeft: icons.alignLeft,
|
|
22
22
|
bold: icons.bold,
|
|
23
23
|
importExport: icons.importExport,
|
|
24
24
|
paragraph: icons.paragraph,
|
|
25
25
|
plus: icons.plus,
|
|
26
26
|
text: icons.text,
|
|
27
|
-
threeVerticalDots: icons.threeVerticalDots
|
|
27
|
+
threeVerticalDots: icons.threeVerticalDots,
|
|
28
|
+
pilcrow: icons.pilcrow,
|
|
29
|
+
dragIndicator: icons.dragIndicator
|
|
28
30
|
};
|
|
29
31
|
/**
|
|
30
32
|
* The toolbar view class.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
.ck.ck-aria-live-announcer {
|
|
7
|
+
position: absolute;
|
|
8
|
+
left: -10000px;
|
|
9
|
+
top: -10000px;
|
|
10
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
.ck.ck-autocomplete {
|
|
7
|
+
position: relative;
|
|
8
|
+
|
|
9
|
+
& > .ck-search__results {
|
|
10
|
+
position: absolute;
|
|
11
|
+
z-index: var(--ck-z-modal);
|
|
12
|
+
|
|
13
|
+
&.ck-search__results_n {
|
|
14
|
+
bottom: 100%;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&.ck-search__results_s {
|
|
18
|
+
top: 100%;
|
|
19
|
+
bottom: auto;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
@import "../../mixins/_unselectable.css";
|
|
7
|
+
@import "../../mixins/_dir.css";
|
|
7
8
|
|
|
8
9
|
.ck.ck-button,
|
|
9
10
|
a.ck.ck-button {
|
|
@@ -12,7 +13,14 @@ a.ck.ck-button {
|
|
|
12
13
|
position: relative;
|
|
13
14
|
display: inline-flex;
|
|
14
15
|
align-items: center;
|
|
15
|
-
|
|
16
|
+
|
|
17
|
+
@mixin ck-dir ltr {
|
|
18
|
+
justify-content: left;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@mixin ck-dir rtl {
|
|
22
|
+
justify-content: right;
|
|
23
|
+
}
|
|
16
24
|
|
|
17
25
|
& .ck-button__label {
|
|
18
26
|
display: none;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
.ck.ck-highlighted-text mark {
|
|
7
|
+
background: var(--ck-color-highlight-background);
|
|
8
|
+
vertical-align: initial;
|
|
9
|
+
font-weight: inherit;
|
|
10
|
+
line-height: inherit;
|
|
11
|
+
font-size: inherit;
|
|
12
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";
|
|
7
|
+
|
|
8
|
+
.ck.ck-search {
|
|
9
|
+
& > .ck-labeled-field-view {
|
|
10
|
+
& > .ck-labeled-field-view__input-wrapper > .ck-icon {
|
|
11
|
+
position: absolute;
|
|
12
|
+
top: 50%;
|
|
13
|
+
transform: translateY(-50%);
|
|
14
|
+
|
|
15
|
+
@mixin ck-dir ltr {
|
|
16
|
+
left: var(--ck-spacing-medium);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@mixin ck-dir rtl {
|
|
20
|
+
right: var(--ck-spacing-medium);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
& .ck-search__reset {
|
|
25
|
+
position: absolute;
|
|
26
|
+
top: 50%;
|
|
27
|
+
transform: translateY(-50%);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
& > .ck-search__results {
|
|
32
|
+
& > .ck-search__info {
|
|
33
|
+
& > span:first-child {
|
|
34
|
+
display: block;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* Hide the filtered view when nothing was found */
|
|
38
|
+
&:not(.ck-hidden) ~ * {
|
|
39
|
+
display: none;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
:root {
|
|
7
|
+
--ck-toolbar-spinner-size: 18px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.ck.ck-spinner-container {
|
|
11
|
+
display: block;
|
|
12
|
+
position: relative;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.ck.ck-spinner {
|
|
16
|
+
position: absolute;
|
|
17
|
+
top: 50%;
|
|
18
|
+
left: 0;
|
|
19
|
+
right: 0;
|
|
20
|
+
margin: 0 auto;
|
|
21
|
+
transform: translateY(-50%);
|
|
22
|
+
z-index: 1;
|
|
23
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/*
|
|
7
|
+
* Note: This file should contain the wireframe styles only. But since there are no such styles,
|
|
8
|
+
* it acts as a message to the builder telling that it should look for the corresponding styles
|
|
9
|
+
* **in the theme** when compiling the editor.
|
|
10
|
+
*/
|