@ckeditor/ckeditor5-ui 38.2.0-alpha.0 → 39.0.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/README.md +0 -1
- package/lang/contexts.json +2 -1
- package/lang/translations/ar.po +5 -1
- package/lang/translations/ast.po +4 -0
- package/lang/translations/az.po +4 -0
- package/lang/translations/bg.po +5 -1
- package/lang/translations/bn.po +5 -1
- package/lang/translations/ca.po +5 -1
- package/lang/translations/cs.po +5 -1
- package/lang/translations/da.po +5 -1
- package/lang/translations/de-ch.po +4 -0
- package/lang/translations/de.po +5 -1
- package/lang/translations/el.po +5 -1
- package/lang/translations/en-au.po +4 -0
- package/lang/translations/en-gb.po +4 -0
- package/lang/translations/en.po +4 -0
- package/lang/translations/eo.po +4 -0
- package/lang/translations/es.po +5 -1
- package/lang/translations/et.po +5 -1
- package/lang/translations/eu.po +4 -0
- package/lang/translations/fa.po +4 -0
- package/lang/translations/fi.po +5 -1
- package/lang/translations/fr.po +5 -1
- package/lang/translations/gl.po +7 -3
- package/lang/translations/he.po +5 -1
- package/lang/translations/hi.po +5 -1
- package/lang/translations/hr.po +6 -2
- package/lang/translations/hu.po +5 -1
- package/lang/translations/id.po +5 -1
- package/lang/translations/it.po +4 -0
- package/lang/translations/ja.po +5 -1
- package/lang/translations/km.po +4 -0
- package/lang/translations/kn.po +4 -0
- package/lang/translations/ko.po +5 -1
- package/lang/translations/ku.po +4 -0
- package/lang/translations/lt.po +5 -1
- package/lang/translations/lv.po +5 -1
- package/lang/translations/ms.po +5 -1
- package/lang/translations/nb.po +4 -0
- package/lang/translations/ne.po +4 -0
- package/lang/translations/nl.po +5 -1
- package/lang/translations/no.po +5 -1
- package/lang/translations/pl.po +5 -1
- package/lang/translations/pt-br.po +5 -1
- package/lang/translations/pt.po +5 -1
- package/lang/translations/ro.po +5 -1
- package/lang/translations/ru.po +5 -1
- package/lang/translations/sk.po +5 -1
- package/lang/translations/sl.po +4 -0
- package/lang/translations/sq.po +17 -13
- package/lang/translations/sr-latn.po +4 -0
- package/lang/translations/sr.po +5 -1
- package/lang/translations/sv.po +5 -1
- package/lang/translations/th.po +5 -1
- package/lang/translations/tk.po +4 -0
- package/lang/translations/tr.po +5 -1
- package/lang/translations/tt.po +4 -0
- package/lang/translations/ug.po +4 -0
- package/lang/translations/uk.po +5 -1
- package/lang/translations/ur.po +4 -0
- package/lang/translations/uz.po +4 -0
- package/lang/translations/vi.po +5 -1
- package/lang/translations/zh-cn.po +5 -1
- package/lang/translations/zh.po +5 -1
- package/package.json +4 -5
- package/src/colorgrid/colortileview.js +1 -1
- package/src/colorpicker/colorpickerview.d.ts +35 -8
- package/src/colorpicker/colorpickerview.js +29 -12
- package/src/colorpicker/utils.d.ts +8 -0
- package/src/colorselector/colorgridsfragmentview.d.ts +194 -0
- package/src/colorselector/colorgridsfragmentview.js +289 -0
- package/src/colorselector/colorpickerfragmentview.d.ts +128 -0
- package/src/colorselector/colorpickerfragmentview.js +205 -0
- package/src/colorselector/colorselectorview.d.ts +242 -0
- package/src/colorselector/colorselectorview.js +256 -0
- package/src/colorselector/documentcolorcollection.d.ts +70 -0
- package/src/colorselector/documentcolorcollection.js +42 -0
- package/src/dropdown/dropdownpanelview.js +2 -1
- package/src/dropdown/utils.js +4 -1
- package/src/editorui/poweredby.js +6 -1
- package/src/index.d.ts +2 -1
- package/src/index.js +1 -0
- package/src/panel/sticky/stickypanelview.d.ts +41 -15
- package/src/panel/sticky/stickypanelview.js +138 -46
- package/theme/components/colorpicker/colorpicker.css +10 -0
- package/theme/components/colorselector/colorselector.css +35 -0
- package/theme/icons/project-logo.svg +1 -1
|
@@ -86,26 +86,24 @@ export default class StickyPanelView extends View {
|
|
|
86
86
|
* @readonly
|
|
87
87
|
* @observable
|
|
88
88
|
*/
|
|
89
|
-
|
|
89
|
+
_isStickyToTheBottomOfLimiter: boolean;
|
|
90
90
|
/**
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
* is not `0`.
|
|
91
|
+
* The `top` CSS position of the panel when it is sticky to the top of the viewport or scrollable
|
|
92
|
+
* ancestors of the {@link #limiterElement}.
|
|
94
93
|
*
|
|
95
94
|
* @private
|
|
96
95
|
* @readonly
|
|
97
96
|
* @observable
|
|
98
97
|
*/
|
|
99
|
-
|
|
98
|
+
_stickyTopOffset: number | null;
|
|
100
99
|
/**
|
|
101
|
-
* The
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
*
|
|
106
|
-
* of the panel.
|
|
100
|
+
* The `bottom` CSS position of the panel when it is sticky to the bottom of the {@link #limiterElement}.
|
|
101
|
+
*
|
|
102
|
+
* @private
|
|
103
|
+
* @readonly
|
|
104
|
+
* @observable
|
|
107
105
|
*/
|
|
108
|
-
|
|
106
|
+
_stickyBottomOffset: number | null;
|
|
109
107
|
/**
|
|
110
108
|
* A dummy element which visually fills the space as long as the
|
|
111
109
|
* actual panel is sticky. It prevents flickering of the UI.
|
|
@@ -125,8 +123,36 @@ export default class StickyPanelView extends View {
|
|
|
125
123
|
*/
|
|
126
124
|
render(): void;
|
|
127
125
|
/**
|
|
128
|
-
* Analyzes the environment to decide whether the panel should
|
|
129
|
-
*
|
|
126
|
+
* Analyzes the environment to decide whether the panel should be sticky or not.
|
|
127
|
+
* Then handles the positioning of the panel.
|
|
128
|
+
*
|
|
129
|
+
* @param [scrollTarget] The element which is being scrolled.
|
|
130
|
+
*/
|
|
131
|
+
checkIfShouldBeSticky(scrollTarget?: HTMLElement | Document): void;
|
|
132
|
+
/**
|
|
133
|
+
* Sticks the panel at the given CSS `top` offset.
|
|
134
|
+
*
|
|
135
|
+
* @private
|
|
136
|
+
* @param topOffset
|
|
137
|
+
*/
|
|
138
|
+
private _stickToTopOfAncestors;
|
|
139
|
+
/**
|
|
140
|
+
* Sticks the panel at the bottom of the limiter with a given CSS `bottom` offset.
|
|
141
|
+
*
|
|
142
|
+
* @private
|
|
143
|
+
* @param stickyBottomOffset
|
|
144
|
+
*/
|
|
145
|
+
private _stickToBottomOfLimiter;
|
|
146
|
+
/**
|
|
147
|
+
* Unsticks the panel putting it back to its original position.
|
|
148
|
+
*
|
|
149
|
+
* @private
|
|
150
|
+
*/
|
|
151
|
+
private _unstick;
|
|
152
|
+
/**
|
|
153
|
+
* Returns the bounding rect of the {@link #_contentPanel}.
|
|
154
|
+
*
|
|
155
|
+
* @private
|
|
130
156
|
*/
|
|
131
|
-
private
|
|
157
|
+
private get _contentPanelRect();
|
|
132
158
|
}
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import View from '../../view';
|
|
9
9
|
import Template from '../../template';
|
|
10
|
-
import { global, toUnit } from '@ckeditor/ckeditor5-utils';
|
|
10
|
+
import { getElementsIntersectionRect, getScrollableAncestors, global, toUnit, Rect } from '@ckeditor/ckeditor5-utils';
|
|
11
|
+
// @if CK_DEBUG_STICKYPANEL // const RectDrawer = require( '@ckeditor/ckeditor5-utils/tests/_utils/rectdrawer' ).default
|
|
11
12
|
import '../../../theme/components/panel/stickypanel.css';
|
|
12
13
|
const toPx = toUnit('px');
|
|
13
14
|
/**
|
|
@@ -26,8 +27,9 @@ export default class StickyPanelView extends View {
|
|
|
26
27
|
this.set('limiterBottomOffset', 50);
|
|
27
28
|
this.set('viewportTopOffset', 0);
|
|
28
29
|
this.set('_marginLeft', null);
|
|
29
|
-
this.set('
|
|
30
|
-
this.set('
|
|
30
|
+
this.set('_isStickyToTheBottomOfLimiter', false);
|
|
31
|
+
this.set('_stickyTopOffset', null);
|
|
32
|
+
this.set('_stickyBottomOffset', null);
|
|
31
33
|
this.content = this.createCollection();
|
|
32
34
|
this._contentPanelPlaceholder = new Template({
|
|
33
35
|
tag: 'div',
|
|
@@ -39,7 +41,7 @@ export default class StickyPanelView extends View {
|
|
|
39
41
|
style: {
|
|
40
42
|
display: bind.to('isSticky', isSticky => isSticky ? 'block' : 'none'),
|
|
41
43
|
height: bind.to('isSticky', isSticky => {
|
|
42
|
-
return isSticky ? toPx(this.
|
|
44
|
+
return isSticky ? toPx(this._contentPanelRect.height) : null;
|
|
43
45
|
})
|
|
44
46
|
}
|
|
45
47
|
}
|
|
@@ -52,18 +54,14 @@ export default class StickyPanelView extends View {
|
|
|
52
54
|
'ck-sticky-panel__content',
|
|
53
55
|
// Toggle class of the panel when "sticky" state changes in the view.
|
|
54
56
|
bind.if('isSticky', 'ck-sticky-panel__content_sticky'),
|
|
55
|
-
bind.if('
|
|
57
|
+
bind.if('_isStickyToTheBottomOfLimiter', 'ck-sticky-panel__content_sticky_bottom-limit')
|
|
56
58
|
],
|
|
57
59
|
style: {
|
|
58
60
|
width: bind.to('isSticky', isSticky => {
|
|
59
61
|
return isSticky ? toPx(this._contentPanelPlaceholder.getBoundingClientRect().width) : null;
|
|
60
62
|
}),
|
|
61
|
-
top: bind.to('
|
|
62
|
-
|
|
63
|
-
}),
|
|
64
|
-
bottom: bind.to('_isStickyToTheLimiter', _isStickyToTheLimiter => {
|
|
65
|
-
return _isStickyToTheLimiter ? toPx(this.limiterBottomOffset) : null;
|
|
66
|
-
}),
|
|
63
|
+
top: bind.to('_stickyTopOffset', value => value ? toPx(value) : value),
|
|
64
|
+
bottom: bind.to('_stickyBottomOffset', value => value ? toPx(value) : value),
|
|
67
65
|
marginLeft: bind.to('_marginLeft')
|
|
68
66
|
}
|
|
69
67
|
},
|
|
@@ -89,51 +87,145 @@ export default class StickyPanelView extends View {
|
|
|
89
87
|
render() {
|
|
90
88
|
super.render();
|
|
91
89
|
// Check if the panel should go into the sticky state immediately.
|
|
92
|
-
this.
|
|
93
|
-
// Update sticky state of the panel as the window
|
|
94
|
-
this.listenTo(global.
|
|
95
|
-
this.
|
|
96
|
-
});
|
|
90
|
+
this.checkIfShouldBeSticky();
|
|
91
|
+
// Update sticky state of the panel as the window and ancestors are being scrolled.
|
|
92
|
+
this.listenTo(global.document, 'scroll', (evt, data) => {
|
|
93
|
+
this.checkIfShouldBeSticky(data.target);
|
|
94
|
+
}, { useCapture: true });
|
|
97
95
|
// Synchronize with `model.isActive` because sticking an inactive panel is pointless.
|
|
98
96
|
this.listenTo(this, 'change:isActive', () => {
|
|
99
|
-
this.
|
|
97
|
+
this.checkIfShouldBeSticky();
|
|
100
98
|
});
|
|
101
99
|
}
|
|
102
100
|
/**
|
|
103
|
-
* Analyzes the environment to decide whether the panel should
|
|
104
|
-
*
|
|
101
|
+
* Analyzes the environment to decide whether the panel should be sticky or not.
|
|
102
|
+
* Then handles the positioning of the panel.
|
|
103
|
+
*
|
|
104
|
+
* @param [scrollTarget] The element which is being scrolled.
|
|
105
105
|
*/
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
106
|
+
checkIfShouldBeSticky(scrollTarget) {
|
|
107
|
+
// @if CK_DEBUG_STICKYPANEL // RectDrawer.clear();
|
|
108
|
+
if (!this.limiterElement || !this.isActive) {
|
|
109
|
+
this._unstick();
|
|
110
|
+
return;
|
|
111
111
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
this.isSticky = this.isActive &&
|
|
116
|
-
// The limiter's top edge must be beyond the upper edge of the visible viewport (+the viewportTopOffset).
|
|
117
|
-
limiterRect.top < this.viewportTopOffset &&
|
|
118
|
-
// The model#limiterElement's height mustn't be smaller than the panel's height and model#limiterBottomOffset.
|
|
119
|
-
// There's no point in entering the sticky mode if the model#limiterElement is very, very small, because
|
|
120
|
-
// it would immediately set model#_isStickyToTheLimiter true and, given model#limiterBottomOffset, the panel
|
|
121
|
-
// would be positioned before the model#limiterElement.
|
|
122
|
-
this._panelRect.height + this.limiterBottomOffset < limiterRect.height;
|
|
112
|
+
const scrollableAncestors = getScrollableAncestors(this.limiterElement);
|
|
113
|
+
if (scrollTarget && !scrollableAncestors.includes(scrollTarget)) {
|
|
114
|
+
return;
|
|
123
115
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
if (
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
116
|
+
const visibleAncestorsRect = getElementsIntersectionRect(scrollableAncestors, this.viewportTopOffset);
|
|
117
|
+
const limiterRect = new Rect(this.limiterElement);
|
|
118
|
+
// @if CK_DEBUG_STICKYPANEL // if ( visibleAncestorsRect ) {
|
|
119
|
+
// @if CK_DEBUG_STICKYPANEL // RectDrawer.draw( visibleAncestorsRect,
|
|
120
|
+
// @if CK_DEBUG_STICKYPANEL // { outlineWidth: '3px', opacity: '.8', outlineColor: 'red', outlineOffset: '-3px' },
|
|
121
|
+
// @if CK_DEBUG_STICKYPANEL // 'Visible anc'
|
|
122
|
+
// @if CK_DEBUG_STICKYPANEL // );
|
|
123
|
+
// @if CK_DEBUG_STICKYPANEL // }
|
|
124
|
+
// @if CK_DEBUG_STICKYPANEL //
|
|
125
|
+
// @if CK_DEBUG_STICKYPANEL // RectDrawer.draw( limiterRect,
|
|
126
|
+
// @if CK_DEBUG_STICKYPANEL // { outlineWidth: '3px', opacity: '.8', outlineColor: 'green', outlineOffset: '-3px' },
|
|
127
|
+
// @if CK_DEBUG_STICKYPANEL // 'Limiter'
|
|
128
|
+
// @if CK_DEBUG_STICKYPANEL // );
|
|
129
|
+
// Stick the panel only if
|
|
130
|
+
// * the limiter's ancestors are intersecting with each other so that some of their rects are visible,
|
|
131
|
+
// * and the limiter's top edge is above the visible ancestors' top edge.
|
|
132
|
+
if (visibleAncestorsRect && limiterRect.top < visibleAncestorsRect.top) {
|
|
133
|
+
const visibleLimiterRect = limiterRect.getIntersection(visibleAncestorsRect);
|
|
134
|
+
// Sticky the panel only if the limiter's visible rect is at least partially visible in the
|
|
135
|
+
// visible ancestors' rects intersection.
|
|
136
|
+
if (visibleLimiterRect) {
|
|
137
|
+
// @if CK_DEBUG_STICKYPANEL // RectDrawer.draw( visibleLimiterRect,
|
|
138
|
+
// @if CK_DEBUG_STICKYPANEL // { outlineWidth: '3px', opacity: '.8', outlineColor: 'fuchsia', outlineOffset: '-3px',
|
|
139
|
+
// @if CK_DEBUG_STICKYPANEL // backgroundColor: 'rgba(255, 0, 255, .3)' },
|
|
140
|
+
// @if CK_DEBUG_STICKYPANEL // 'Visible limiter'
|
|
141
|
+
// @if CK_DEBUG_STICKYPANEL // );
|
|
142
|
+
const visibleAncestorsTop = visibleAncestorsRect.top;
|
|
143
|
+
// Check if there's a change the panel can be sticky to the bottom of the limiter.
|
|
144
|
+
if (visibleAncestorsTop + this._contentPanelRect.height + this.limiterBottomOffset > visibleLimiterRect.bottom) {
|
|
145
|
+
const stickyBottomOffset = Math.max(limiterRect.bottom - visibleAncestorsRect.bottom, 0) + this.limiterBottomOffset;
|
|
146
|
+
// @if CK_DEBUG_STICKYPANEL // const stickyBottomOffsetRect = new Rect( {
|
|
147
|
+
// @if CK_DEBUG_STICKYPANEL // top: limiterRect.bottom - stickyBottomOffset, left: 0, right: 2000,
|
|
148
|
+
// @if CK_DEBUG_STICKYPANEL // bottom: limiterRect.bottom - stickyBottomOffset, width: 2000, height: 1
|
|
149
|
+
// @if CK_DEBUG_STICKYPANEL // } );
|
|
150
|
+
// @if CK_DEBUG_STICKYPANEL // RectDrawer.draw( stickyBottomOffsetRect,
|
|
151
|
+
// @if CK_DEBUG_STICKYPANEL // { outlineWidth: '1px', opacity: '.8', outlineColor: 'black' },
|
|
152
|
+
// @if CK_DEBUG_STICKYPANEL // 'Sticky bottom offset'
|
|
153
|
+
// @if CK_DEBUG_STICKYPANEL // );
|
|
154
|
+
// Check if sticking the panel to the bottom of the limiter does not cause it to suddenly
|
|
155
|
+
// move upwards if there's not enough space for it.
|
|
156
|
+
if (limiterRect.bottom - stickyBottomOffset > limiterRect.top + this._contentPanelRect.height) {
|
|
157
|
+
this._stickToBottomOfLimiter(stickyBottomOffset);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
this._unstick();
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
if (this._contentPanelRect.height + this.limiterBottomOffset < limiterRect.height) {
|
|
165
|
+
this._stickToTopOfAncestors(visibleAncestorsTop);
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
this._unstick();
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
this._unstick();
|
|
174
|
+
}
|
|
131
175
|
}
|
|
132
|
-
// Detach the panel from the top edge of the viewport.
|
|
133
176
|
else {
|
|
134
|
-
this.
|
|
135
|
-
this._hasViewportTopOffset = false;
|
|
136
|
-
this._marginLeft = null;
|
|
177
|
+
this._unstick();
|
|
137
178
|
}
|
|
179
|
+
// @if CK_DEBUG_STICKYPANEL // console.clear();
|
|
180
|
+
// @if CK_DEBUG_STICKYPANEL // console.log( 'isSticky', this.isSticky );
|
|
181
|
+
// @if CK_DEBUG_STICKYPANEL // console.log( '_isStickyToTheBottomOfLimiter', this._isStickyToTheBottomOfLimiter );
|
|
182
|
+
// @if CK_DEBUG_STICKYPANEL // console.log( '_stickyTopOffset', this._stickyTopOffset );
|
|
183
|
+
// @if CK_DEBUG_STICKYPANEL // console.log( '_stickyBottomOffset', this._stickyBottomOffset );
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Sticks the panel at the given CSS `top` offset.
|
|
187
|
+
*
|
|
188
|
+
* @private
|
|
189
|
+
* @param topOffset
|
|
190
|
+
*/
|
|
191
|
+
_stickToTopOfAncestors(topOffset) {
|
|
192
|
+
this.isSticky = true;
|
|
193
|
+
this._isStickyToTheBottomOfLimiter = false;
|
|
194
|
+
this._stickyTopOffset = topOffset;
|
|
195
|
+
this._stickyBottomOffset = null;
|
|
196
|
+
this._marginLeft = toPx(-global.window.scrollX);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Sticks the panel at the bottom of the limiter with a given CSS `bottom` offset.
|
|
200
|
+
*
|
|
201
|
+
* @private
|
|
202
|
+
* @param stickyBottomOffset
|
|
203
|
+
*/
|
|
204
|
+
_stickToBottomOfLimiter(stickyBottomOffset) {
|
|
205
|
+
this.isSticky = true;
|
|
206
|
+
this._isStickyToTheBottomOfLimiter = true;
|
|
207
|
+
this._stickyTopOffset = null;
|
|
208
|
+
this._stickyBottomOffset = stickyBottomOffset;
|
|
209
|
+
this._marginLeft = toPx(-global.window.scrollX);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Unsticks the panel putting it back to its original position.
|
|
213
|
+
*
|
|
214
|
+
* @private
|
|
215
|
+
*/
|
|
216
|
+
_unstick() {
|
|
217
|
+
this.isSticky = false;
|
|
218
|
+
this._isStickyToTheBottomOfLimiter = false;
|
|
219
|
+
this._stickyTopOffset = null;
|
|
220
|
+
this._stickyBottomOffset = null;
|
|
221
|
+
this._marginLeft = null;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Returns the bounding rect of the {@link #_contentPanel}.
|
|
225
|
+
*
|
|
226
|
+
* @private
|
|
227
|
+
*/
|
|
228
|
+
get _contentPanelRect() {
|
|
229
|
+
return new Rect(this._contentPanel);
|
|
138
230
|
}
|
|
139
231
|
}
|
|
@@ -16,6 +16,16 @@
|
|
|
16
16
|
flex-direction: row;
|
|
17
17
|
flex-wrap: nowrap;
|
|
18
18
|
justify-content: space-between;
|
|
19
|
+
margin: var(--ck-spacing-large) 0 0;
|
|
20
|
+
width: unset;
|
|
21
|
+
|
|
22
|
+
& .ck.ck-labeled-field-view {
|
|
23
|
+
padding-top: unset;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
& .ck.ck-input-text {
|
|
27
|
+
width: unset;
|
|
28
|
+
}
|
|
19
29
|
|
|
20
30
|
& .ck-color-picker__hash-view {
|
|
21
31
|
padding-top: var(--ck-spacing-tiny);
|
|
@@ -0,0 +1,35 @@
|
|
|
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-color-selector {
|
|
9
|
+
/* View fragment with color grids. */
|
|
10
|
+
& .ck-color-grids-fragment {
|
|
11
|
+
& .ck-button.ck-color-selector__remove-color,
|
|
12
|
+
& .ck-button.ck-color-selector__color-picker {
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
|
|
16
|
+
@mixin ck-dir rtl {
|
|
17
|
+
justify-content: flex-start;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* View fragment with a color picker. */
|
|
23
|
+
& .ck-color-picker-fragment {
|
|
24
|
+
& .ck.ck-color-selector_action-bar {
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: row;
|
|
27
|
+
justify-content: space-around;
|
|
28
|
+
|
|
29
|
+
& .ck-button-save,
|
|
30
|
+
& .ck-button-cancel {
|
|
31
|
+
flex: 1
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg"
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 53 10"><path d="M31.724 1.492a15.139 15.139 0 0 0 .045 1.16 2.434 2.434 0 0 0-.687-.34 3.68 3.68 0 0 0-1.103-.166 2.332 2.332 0 0 0-1.14.255 1.549 1.549 0 0 0-.686.87c-.15.41-.225.98-.225 1.712 0 .939.148 1.659.444 2.161.297.503.792.754 1.487.754.452.015.9-.094 1.294-.316.296-.174.557-.4.771-.669l.14.852h1.282V.007h-1.623v1.485ZM31 6.496a1.77 1.77 0 0 1-.494.061.964.964 0 0 1-.521-.127.758.758 0 0 1-.296-.466 3.984 3.984 0 0 1-.093-.992 4.208 4.208 0 0 1 .098-1.052.753.753 0 0 1 .307-.477 1.08 1.08 0 0 1 .55-.122 2.4 2.4 0 0 1 .69.089l.483.144v2.553c-.11.076-.213.143-.307.2a1.73 1.73 0 0 1-.417.189ZM35.68 0l-.702.004c-.322.002-.482.168-.48.497l.004.581c.002.33.164.493.486.49l.702-.004c.322-.002.481-.167.48-.496L36.165.49c-.002-.33-.164-.493-.486-.491Zm.465 2.313-1.612.01.034 5.482 1.613-.01-.035-5.482ZM39.623.79 37.989.8 38 2.306l-.946.056.006 1.009.949-.006.024 2.983c.003.476.143.844.419 1.106.275.26.658.39 1.148.387.132 0 .293-.01.483-.03.19-.02.38-.046.57-.08.163-.028.324-.068.482-.119l-.183-1.095-.702.004a.664.664 0 0 1-.456-.123.553.553 0 0 1-.14-.422l-.016-2.621 1.513-.01-.006-1.064-1.514.01-.01-1.503Zm6.603 1.598c-.41-.184-.956-.274-1.636-.27-.673.004-1.215.101-1.627.29-.402.179-.72.505-.888.91-.18.419-.268.979-.264 1.68.004.688.1 1.24.285 1.655.172.404.495.724.9.894.414.18.957.268 1.63.264.68-.004 1.224-.099 1.632-.284.4-.176.714-.501.878-.905.176-.418.263-.971.258-1.658-.004-.702-.097-1.261-.28-1.677a1.696 1.696 0 0 0-.888-.9Zm-.613 3.607a.77.77 0 0 1-.337.501 1.649 1.649 0 0 1-1.317.009.776.776 0 0 1-.343-.497 4.066 4.066 0 0 1-.105-1.02 4.136 4.136 0 0 1 .092-1.03.786.786 0 0 1 .337-.507 1.59 1.59 0 0 1 1.316-.008.79.79 0 0 1 .344.502c.078.337.113.683.105 1.03.012.343-.019.685-.092 1.02Zm6.501-3.925a2.67 2.67 0 0 0-1.128.278c-.39.191-.752.437-1.072.73l-.157-.846-1.273.008.036 5.572 1.623-.01-.024-3.78c.35-.124.646-.22.887-.286.26-.075.53-.114.8-.118l.45-.003.144-1.546-.286.001ZM22.083 7.426l-1.576-2.532a2.137 2.137 0 0 0-.172-.253 1.95 1.95 0 0 0-.304-.29.138.138 0 0 1 .042-.04 1.7 1.7 0 0 0 .328-.374l1.75-2.71c.01-.015.025-.028.024-.048-.01-.01-.021-.007-.031-.007L20.49 1.17a.078.078 0 0 0-.075.045l-.868 1.384c-.23.366-.46.732-.688 1.099a.108.108 0 0 1-.112.06c-.098-.005-.196-.001-.294-.002-.018 0-.038.006-.055-.007.002-.02.002-.039.005-.058a4.6 4.6 0 0 0 .046-.701V1.203c0-.02-.009-.032-.03-.03h-.033L16.93 1.17c-.084 0-.073-.01-.073.076v6.491c-.001.018.006.028.025.027h1.494c.083 0 .072.007.072-.071v-2.19c0-.055-.003-.11-.004-.166a3.366 3.366 0 0 0-.05-.417h.06c.104 0 .209.002.313-.002a.082.082 0 0 1 .084.05c.535.913 1.07 1.824 1.607 2.736a.104.104 0 0 0 .103.062c.554-.003 1.107-.002 1.66-.002l.069-.003-.019-.032-.188-.304Zm5.029-.871c-.005-.08-.004-.08-.082-.08h-2.414c-.053 0-.106-.003-.159-.011a.279.279 0 0 1-.246-.209.558.558 0 0 1-.022-.15c0-.382 0-.762-.002-1.143 0-.032.007-.049.042-.044h2.504c.029.003.037-.012.034-.038V3.814c0-.089.013-.078-.076-.078h-2.44c-.07 0-.062.003-.062-.06v-.837c0-.047.004-.093.013-.14a.283.283 0 0 1 .241-.246.717.717 0 0 1 .146-.011h2.484c.024.002.035-.009.036-.033l.003-.038.03-.496c.01-.183.024-.365.034-.548.005-.085.003-.087-.082-.094-.218-.018-.437-.038-.655-.05a17.845 17.845 0 0 0-.657-.026 72.994 72.994 0 0 0-1.756-.016 1.7 1.7 0 0 0-.471.064 1.286 1.286 0 0 0-.817.655 1.349 1.349 0 0 0-.145.633v3.875c0 .072.003.144.011.216a1.27 1.27 0 0 0 .711 1.029c.228.113.48.167.734.158.757-.005 1.515.002 2.272-.042.274-.016.548-.034.82-.053.03-.002.043-.008.04-.041-.008-.104-.012-.208-.019-.312a69.964 69.964 0 0 1-.05-.768Zm-10.972.86-.127-1.075c-.004-.03-.014-.04-.044-.037a13.125 13.125 0 0 1-.998.073c-.336.01-.672.02-1.008.016a1.693 1.693 0 0 1-.347-.039.746.746 0 0 1-.45-.262 1.038 1.038 0 0 1-.167-.33 3.324 3.324 0 0 1-.126-.773 9.113 9.113 0 0 1-.015-.749c0-.285.022-.57.065-.852a1.94 1.94 0 0 1 .127-.46.728.728 0 0 1 .518-.443 1.64 1.64 0 0 1 .397-.048c.628-.001 1.255.003 1.882.05.022.001.033-.006.036-.026l.003-.031.06-.55c.019-.177.036-.355.057-.532.004-.034-.005-.046-.04-.056a5.595 5.595 0 0 0-1.213-.21 10.783 10.783 0 0 0-.708-.02 5.09 5.09 0 0 0-.719.041 3.477 3.477 0 0 0-.625.14 1.912 1.912 0 0 0-.807.497c-.185.2-.33.433-.424.688a4.311 4.311 0 0 0-.24 1.096 7.262 7.262 0 0 0-.042.86c-.006.43.024.86.091 1.286.04.25.104.497.193.734.098.279.26.53.473.734.214.205.473.358.756.446.344.11.702.17 1.063.177a8.505 8.505 0 0 0 1.578-.083 6.11 6.11 0 0 0 .766-.18c.03-.008.047-.023.037-.057a.157.157 0 0 1-.003-.025Z"/><path d="M6.016 6.69a1.592 1.592 0 0 0-.614.21c-.23.132-.422.32-.56.546-.044.072-.287.539-.287.539l-.836 1.528.009.006c.038.025.08.046.123.063.127.046.26.07.395.073.505.023 1.011-.007 1.517-.003.29.009.58.002.869-.022a.886.886 0 0 0 .395-.116.962.962 0 0 0 .312-.286c.056-.083.114-.163.164-.249.24-.408.48-.816.718-1.226.075-.128.148-.257.222-.386l.112-.192a1.07 1.07 0 0 0 .153-.518l-1.304.023s-1.258-.005-1.388.01Z"/><path d="m2.848 9.044.76-1.39.184-.352c-.124-.067-.245-.14-.367-.21-.346-.204-.706-.384-1.045-.6a.984.984 0 0 1-.244-.207c-.108-.134-.136-.294-.144-.46-.021-.409-.002-.818-.009-1.227-.003-.195 0-.39.003-.585.004-.322.153-.553.427-.713l.833-.488c.22-.13.44-.257.662-.385.05-.029.105-.052.158-.077.272-.128.519-.047.76.085l.044.028c.123.06.242.125.358.196.318.178.635.357.952.537.095.056.187.117.275.184.194.144.254.35.266.578.016.284.007.569.006.853-.001.28.004.558 0 .838.592-.003 1.259 0 1.259 0l.723-.013c-.003-.292-.007-.584-.007-.876 0-.524.015-1.048-.016-1.571-.024-.42-.135-.8-.492-1.067a5.02 5.02 0 0 0-.506-.339A400.52 400.52 0 0 0 5.94.787C5.722.664 5.513.524 5.282.423 5.255.406 5.228.388 5.2.373 4.758.126 4.305-.026 3.807.21c-.097.046-.197.087-.29.14A699.896 699.896 0 0 0 .783 1.948c-.501.294-.773.717-.778 1.31-.004.36-.009.718-.001 1.077.016.754-.017 1.508.024 2.261.016.304.07.6.269.848.127.15.279.28.448.382.622.4 1.283.734 1.92 1.11l.183.109Z"/></svg>
|