@ckeditor/ckeditor5-widget 47.6.1 → 48.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 (110) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/index-editor.css +484 -122
  3. package/dist/index.css +479 -187
  4. package/dist/index.css.map +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/package.json +26 -46
  8. package/lang/contexts.json +0 -12
  9. package/lang/translations/af.po +0 -52
  10. package/lang/translations/ar.po +0 -52
  11. package/lang/translations/ast.po +0 -52
  12. package/lang/translations/az.po +0 -52
  13. package/lang/translations/be.po +0 -52
  14. package/lang/translations/bg.po +0 -52
  15. package/lang/translations/bn.po +0 -52
  16. package/lang/translations/bs.po +0 -52
  17. package/lang/translations/ca.po +0 -52
  18. package/lang/translations/cs.po +0 -52
  19. package/lang/translations/da.po +0 -52
  20. package/lang/translations/de-ch.po +0 -52
  21. package/lang/translations/de.po +0 -52
  22. package/lang/translations/el.po +0 -52
  23. package/lang/translations/en-au.po +0 -52
  24. package/lang/translations/en-gb.po +0 -52
  25. package/lang/translations/en.po +0 -52
  26. package/lang/translations/eo.po +0 -52
  27. package/lang/translations/es-co.po +0 -52
  28. package/lang/translations/es.po +0 -52
  29. package/lang/translations/et.po +0 -52
  30. package/lang/translations/eu.po +0 -52
  31. package/lang/translations/fa.po +0 -52
  32. package/lang/translations/fi.po +0 -52
  33. package/lang/translations/fr.po +0 -52
  34. package/lang/translations/gl.po +0 -52
  35. package/lang/translations/gu.po +0 -52
  36. package/lang/translations/he.po +0 -52
  37. package/lang/translations/hi.po +0 -52
  38. package/lang/translations/hr.po +0 -52
  39. package/lang/translations/hu.po +0 -52
  40. package/lang/translations/hy.po +0 -52
  41. package/lang/translations/id.po +0 -52
  42. package/lang/translations/it.po +0 -52
  43. package/lang/translations/ja.po +0 -52
  44. package/lang/translations/jv.po +0 -52
  45. package/lang/translations/kk.po +0 -52
  46. package/lang/translations/km.po +0 -52
  47. package/lang/translations/kn.po +0 -52
  48. package/lang/translations/ko.po +0 -52
  49. package/lang/translations/ku.po +0 -52
  50. package/lang/translations/lt.po +0 -52
  51. package/lang/translations/lv.po +0 -52
  52. package/lang/translations/ms.po +0 -52
  53. package/lang/translations/nb.po +0 -52
  54. package/lang/translations/ne.po +0 -52
  55. package/lang/translations/nl.po +0 -52
  56. package/lang/translations/no.po +0 -52
  57. package/lang/translations/oc.po +0 -52
  58. package/lang/translations/pl.po +0 -52
  59. package/lang/translations/pt-br.po +0 -52
  60. package/lang/translations/pt.po +0 -52
  61. package/lang/translations/ro.po +0 -52
  62. package/lang/translations/ru.po +0 -52
  63. package/lang/translations/si.po +0 -52
  64. package/lang/translations/sk.po +0 -52
  65. package/lang/translations/sl.po +0 -52
  66. package/lang/translations/sq.po +0 -52
  67. package/lang/translations/sr-latn.po +0 -52
  68. package/lang/translations/sr.po +0 -52
  69. package/lang/translations/sv.po +0 -52
  70. package/lang/translations/th.po +0 -52
  71. package/lang/translations/ti.po +0 -52
  72. package/lang/translations/tk.po +0 -52
  73. package/lang/translations/tr.po +0 -52
  74. package/lang/translations/tt.po +0 -52
  75. package/lang/translations/ug.po +0 -52
  76. package/lang/translations/uk.po +0 -52
  77. package/lang/translations/ur.po +0 -52
  78. package/lang/translations/uz.po +0 -52
  79. package/lang/translations/vi.po +0 -52
  80. package/lang/translations/zh-cn.po +0 -52
  81. package/lang/translations/zh.po +0 -52
  82. package/src/augmentation.js +0 -5
  83. package/src/highlightstack.js +0 -126
  84. package/src/index.js +0 -19
  85. package/src/utils.js +0 -414
  86. package/src/verticalnavigation.js +0 -185
  87. package/src/widget.js +0 -727
  88. package/src/widgetresize/resizer.js +0 -390
  89. package/src/widgetresize/resizerstate.js +0 -165
  90. package/src/widgetresize/sizeview.js +0 -65
  91. package/src/widgetresize.js +0 -193
  92. package/src/widgettoolbarrepository.js +0 -274
  93. package/src/widgettypearound/utils.js +0 -60
  94. package/src/widgettypearound/widgettypearound.js +0 -778
  95. package/theme/widget.css +0 -91
  96. package/theme/widgetresize.css +0 -43
  97. package/theme/widgettypearound.css +0 -119
  98. /package/{src → dist}/augmentation.d.ts +0 -0
  99. /package/{src → dist}/highlightstack.d.ts +0 -0
  100. /package/{src → dist}/index.d.ts +0 -0
  101. /package/{src → dist}/utils.d.ts +0 -0
  102. /package/{src → dist}/verticalnavigation.d.ts +0 -0
  103. /package/{src → dist}/widget.d.ts +0 -0
  104. /package/{src → dist}/widgetresize/resizer.d.ts +0 -0
  105. /package/{src → dist}/widgetresize/resizerstate.d.ts +0 -0
  106. /package/{src → dist}/widgetresize/sizeview.d.ts +0 -0
  107. /package/{src → dist}/widgetresize.d.ts +0 -0
  108. /package/{src → dist}/widgettoolbarrepository.d.ts +0 -0
  109. /package/{src → dist}/widgettypearound/utils.d.ts +0 -0
  110. /package/{src → dist}/widgettypearound/widgettypearound.d.ts +0 -0
package/dist/index.css CHANGED
@@ -2,259 +2,551 @@
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
- /*
6
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
7
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
- */
9
-
10
5
  :root {
11
- --ck-color-resizer: var(--ck-color-focus-border);
12
- --ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);
13
- --ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);
6
+ --ck-widget-outline-thickness: 3px;
7
+ --ck-widget-handler-icon-size: 16px;
8
+ --ck-widget-handler-animation-duration: .2s;
9
+ --ck-widget-handler-animation-curve: ease;
10
+ --ck-color-widget-blurred-border: #dedede;
11
+ --ck-color-widget-hover-border: #ffc83d;
12
+ --ck-color-widget-editable-focus-background: var(--ck-color-base-background);
13
+ --ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);
14
+ --ck-color-resizer: var(--ck-color-focus-border);
15
+ --ck-color-resizer-tooltip-background: #262626;
16
+ --ck-color-resizer-tooltip-text: #f2f2f2;
17
+ --ck-resizer-border-radius: var(--ck-border-radius);
18
+ --ck-resizer-tooltip-offset: 10px;
19
+ --ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);
20
+ }
21
+
22
+ .ck .ck-widget {
23
+ outline-width: var(--ck-widget-outline-thickness);
24
+ transition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);
25
+ outline-style: solid;
26
+ outline-color: #0000;
27
+ }
28
+
29
+ @media (prefers-reduced-motion: reduce) {
30
+ .ck .ck-widget {
31
+ transition: none;
32
+ }
33
+ }
34
+
35
+ .ck .ck-widget.ck-widget_selected, .ck .ck-widget.ck-widget_selected:hover {
36
+ outline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);
37
+ }
14
38
 
15
- --ck-resizer-border-radius: var(--ck-border-radius);
16
- --ck-resizer-tooltip-offset: 10px;
17
- --ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);
39
+ .ck .ck-widget:hover {
40
+ outline-color: var(--ck-color-widget-hover-border);
18
41
  }
19
42
 
20
43
  .ck .ck-widget {
21
- /* This is neccessary for type around UI to be positioned properly. */
22
- position: relative;
44
+ position: relative;
23
45
  }
24
46
 
25
- .ck .ck-widget.ck-widget_with-selection-handle {
26
- /* Make the widget wrapper a relative positioning container for the drag handle. */
27
- position: relative;
47
+ .ck .ck-editor__nested-editable {
48
+ border: 1px solid #0000;
49
+ }
50
+
51
+ .ck .ck-editor__nested-editable.ck-editor__nested-editable_focused, .ck .ck-editor__nested-editable:focus {
52
+ box-shadow: var(--ck-inner-shadow), 0 0;
53
+ }
54
+
55
+ @media (forced-colors: none) {
56
+ .ck .ck-editor__nested-editable.ck-editor__nested-editable_focused, .ck .ck-editor__nested-editable:focus {
57
+ background-color: var(--ck-color-widget-editable-focus-background);
58
+ }
59
+ }
60
+
61
+ :is(.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused, .ck .ck-editor__nested-editable:focus):not(td, th) {
62
+ border: var(--ck-focus-ring);
63
+ outline: none;
28
64
  }
29
65
 
30
66
  .ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
31
- position: absolute;
32
- }
67
+ box-sizing: border-box;
68
+ opacity: 0;
69
+ transition: background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),
70
+ visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),
71
+ opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);
72
+ border-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;
73
+ left: calc(0px - var(--ck-widget-outline-thickness));
74
+ background-color: #0000;
75
+ padding: 4px;
76
+ top: 0;
77
+ transform: translateY(-100%);
78
+ }
79
+
80
+ @media (prefers-reduced-motion: reduce) {
81
+ .ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
82
+ transition: none;
83
+ }
84
+ }
85
+
86
+ .ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon {
87
+ width: var(--ck-widget-handler-icon-size);
88
+ height: var(--ck-widget-handler-icon-size);
89
+ color: var(--ck-color-widget-drag-handler-icon-color);
90
+ }
91
+
92
+ .ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator {
93
+ opacity: 0;
94
+ transition: opacity .3s var(--ck-widget-handler-animation-curve);
95
+ }
96
+
97
+ @media (prefers-reduced-motion: reduce) {
98
+ .ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator {
99
+ transition: none;
100
+ }
101
+ }
33
102
 
34
103
  .ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon {
35
- /* Make sure the icon in not a subject to font-size or line-height to avoid
36
- unnecessary spacing around it. */
37
- display: block;
38
- }
104
+ display: block;
105
+ }
106
+
107
+ .ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator {
108
+ opacity: 1;
109
+ }
39
110
 
40
- /* Show the selection handle on mouse hover over the widget, but not for nested widgets. */
111
+ .ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
112
+ position: absolute;
113
+ }
41
114
 
42
115
  .ck .ck-widget.ck-widget_with-selection-handle:hover > .ck-widget__selection-handle {
43
- visibility: visible;
44
- }
116
+ opacity: 1;
117
+ background-color: var(--ck-color-widget-hover-border);
118
+ visibility: visible;
119
+ }
120
+
121
+ :is(.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected, .ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover) > .ck-widget__selection-handle {
122
+ opacity: 1;
123
+ background-color: var(--ck-color-focus-border);
124
+ visibility: visible;
125
+ }
45
126
 
46
- /* Show the selection handle when the widget is selected, but not for nested widgets. */
127
+ :is(.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected, .ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover) > .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator {
128
+ opacity: 1;
129
+ }
47
130
 
48
- .ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle {
49
- visibility: visible;
50
- }
131
+ .ck .ck-widget.ck-widget_with-selection-handle {
132
+ position: relative;
133
+ }
134
+
135
+ .ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
136
+ left: auto;
137
+ right: calc(0px - var(--ck-widget-outline-thickness));
138
+ }
139
+
140
+ .ck.ck-editor__editable.ck-read-only .ck-widget {
141
+ transition: none;
142
+ }
143
+
144
+ .ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected) {
145
+ --ck-widget-outline-thickness: 0px;
146
+ }
147
+
148
+ .ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle, .ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover {
149
+ background: var(--ck-color-widget-blurred-border);
150
+ }
151
+
152
+ .ck .ck-widget:has(.ck-widget.table:hover) {
153
+ outline-color: #0000;
154
+ }
155
+
156
+ .ck .ck-widget.ck-widget_with-selection-handle:has(.ck-widget.table:hover) > .ck-widget__selection-handle {
157
+ opacity: 0;
158
+ visibility: hidden;
159
+ }
160
+
161
+ .ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected, .ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover {
162
+ outline-color: var(--ck-color-widget-blurred-border);
163
+ }
164
+
165
+ :is(.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected, .ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover).ck-widget_with-selection-handle > .ck-widget__selection-handle, :is(.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected, .ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover).ck-widget_with-selection-handle > .ck-widget__selection-handle:hover {
166
+ background: var(--ck-color-widget-blurred-border);
167
+ }
168
+
169
+ .ck.ck-editor__editable:not(.ck-pagination-view) > .ck-widget.ck-widget_with-selection-handle:first-child, .ck.ck-editor__editable:not(.ck-pagination-view) blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {
170
+ margin-top: calc(1em + var(--ck-widget-handler-icon-size));
171
+ }
51
172
 
52
173
  .ck .ck-size-view {
53
- background: var(--ck-color-resizer-tooltip-background);
54
- color: var(--ck-color-resizer-tooltip-text);
55
- border: 1px solid var(--ck-color-resizer-tooltip-text);
56
- border-radius: var(--ck-resizer-border-radius);
57
- font-size: var(--ck-font-size-tiny);
58
- display: block;
59
- padding: 0 var(--ck-spacing-small);
60
- height: var(--ck-resizer-tooltip-height);
61
- line-height: var(--ck-resizer-tooltip-height);
62
- }
63
-
64
- .ck .ck-size-view.ck-orientation-top-left,
65
- .ck .ck-size-view.ck-orientation-top-right,
66
- .ck .ck-size-view.ck-orientation-bottom-right,
67
- .ck .ck-size-view.ck-orientation-bottom-left,
68
- .ck .ck-size-view.ck-orientation-above-center {
69
- position: absolute;
70
- }
174
+ background: var(--ck-color-resizer-tooltip-background);
175
+ color: var(--ck-color-resizer-tooltip-text);
176
+ border: 1px solid var(--ck-color-resizer-tooltip-text);
177
+ border-radius: var(--ck-resizer-border-radius);
178
+ font-size: var(--ck-font-size-tiny);
179
+ padding: 0 var(--ck-spacing-small);
180
+ height: var(--ck-resizer-tooltip-height);
181
+ line-height: var(--ck-resizer-tooltip-height);
182
+ display: block;
183
+ }
184
+
185
+ .ck .ck-size-view.ck-orientation-top-left, .ck .ck-size-view.ck-orientation-top-right, .ck .ck-size-view.ck-orientation-bottom-right, .ck .ck-size-view.ck-orientation-bottom-left, .ck .ck-size-view.ck-orientation-above-center {
186
+ position: absolute;
187
+ }
71
188
 
72
189
  .ck .ck-size-view.ck-orientation-top-left {
73
- top: var(--ck-resizer-tooltip-offset);
74
- left: var(--ck-resizer-tooltip-offset);
75
- }
190
+ top: var(--ck-resizer-tooltip-offset);
191
+ left: var(--ck-resizer-tooltip-offset);
192
+ }
76
193
 
77
194
  .ck .ck-size-view.ck-orientation-top-right {
78
- top: var(--ck-resizer-tooltip-offset);
79
- right: var(--ck-resizer-tooltip-offset);
80
- }
195
+ top: var(--ck-resizer-tooltip-offset);
196
+ right: var(--ck-resizer-tooltip-offset);
197
+ }
81
198
 
82
199
  .ck .ck-size-view.ck-orientation-bottom-right {
83
- bottom: var(--ck-resizer-tooltip-offset);
84
- right: var(--ck-resizer-tooltip-offset);
85
- }
200
+ bottom: var(--ck-resizer-tooltip-offset);
201
+ right: var(--ck-resizer-tooltip-offset);
202
+ }
86
203
 
87
204
  .ck .ck-size-view.ck-orientation-bottom-left {
88
- bottom: var(--ck-resizer-tooltip-offset);
89
- left: var(--ck-resizer-tooltip-offset);
90
- }
91
-
92
- /* Class applied if the widget is too small to contain the size label */
205
+ bottom: var(--ck-resizer-tooltip-offset);
206
+ left: var(--ck-resizer-tooltip-offset);
207
+ }
93
208
 
94
209
  .ck .ck-size-view.ck-orientation-above-center {
95
- top: calc(var(--ck-resizer-tooltip-height) * -1);
96
- left: 50%;
97
- transform: translate(-50%);
98
- }
99
-
100
- /*
101
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
102
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
103
- */
210
+ top: calc(var(--ck-resizer-tooltip-height) * -1);
211
+ left: 50%;
212
+ transform: translate(-50%);
213
+ }
104
214
 
105
- .ck .ck-widget_with-resizer {
106
- /* Make the widget wrapper a relative positioning container for the drag handle. */
107
- position: relative;
215
+ :root {
216
+ --ck-resizer-size: 10px;
217
+ --ck-resizer-offset: calc(( var(--ck-resizer-size) / -2 ) - 2px);
218
+ --ck-resizer-border-width: 1px;
108
219
  }
109
220
 
110
221
  .ck .ck-widget__resizer {
111
- display: none;
112
- position: absolute;
222
+ outline: 1px solid var(--ck-color-resizer);
223
+ pointer-events: none;
224
+ display: none;
225
+ position: absolute;
226
+ top: 0;
227
+ left: 0;
228
+ }
113
229
 
114
- /* The wrapper itself should not interfere with the pointer device, only the handles should. */
115
- pointer-events: none;
230
+ .ck .ck-widget__resizer__handle {
231
+ width: var(--ck-resizer-size);
232
+ height: var(--ck-resizer-size);
233
+ background: var(--ck-color-focus-border);
234
+ border: var(--ck-resizer-border-width) solid #fff;
235
+ border-radius: var(--ck-resizer-border-radius);
236
+ pointer-events: all;
237
+ position: absolute;
238
+ }
116
239
 
117
- left: 0;
118
- top: 0;
240
+ .ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left {
241
+ top: var(--ck-resizer-offset);
242
+ left: var(--ck-resizer-offset);
119
243
  }
120
244
 
121
- .ck-focused .ck-widget_with-resizer.ck-widget_selected > .ck-widget__resizer {
122
- display: block;
123
- }
245
+ .ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right {
246
+ top: var(--ck-resizer-offset);
247
+ right: var(--ck-resizer-offset);
248
+ }
124
249
 
125
- .ck .ck-widget__resizer__handle {
126
- position: absolute;
250
+ .ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right {
251
+ bottom: var(--ck-resizer-offset);
252
+ right: var(--ck-resizer-offset);
253
+ }
127
254
 
128
- /* Resizers are the only UI elements that should interfere with a pointer device. */
129
- pointer-events: all;
255
+ .ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left {
256
+ bottom: var(--ck-resizer-offset);
257
+ left: var(--ck-resizer-offset);
130
258
  }
131
259
 
132
- .ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left,
133
- .ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right {
134
- cursor: nwse-resize;
135
- }
260
+ .ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left, .ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right {
261
+ cursor: nwse-resize;
262
+ }
136
263
 
137
- .ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right,
138
- .ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left {
139
- cursor: nesw-resize;
140
- }
264
+ .ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right, .ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left {
265
+ cursor: nesw-resize;
266
+ }
141
267
 
142
- /*
143
- * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
144
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
145
- */
268
+ .ck .ck-widget_with-resizer {
269
+ position: relative;
270
+ }
271
+
272
+ .ck-focused .ck-widget_with-resizer.ck-widget_selected > .ck-widget__resizer {
273
+ display: block;
274
+ }
146
275
 
147
- /*
148
- * Styles of the type around buttons
149
- */
276
+ :root {
277
+ --ck-widget-type-around-button-size: 20px;
278
+ --ck-color-widget-type-around-button-active: var(--ck-color-focus-border);
279
+ --ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);
280
+ --ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);
281
+ --ck-color-widget-type-around-button-radar-start-alpha: 0;
282
+ --ck-color-widget-type-around-button-radar-end-alpha: .3;
283
+ --ck-color-widget-type-around-button-icon: var(--ck-color-base-background);
284
+ }
150
285
 
151
286
  .ck .ck-widget .ck-widget__type-around__button {
152
- display: block;
153
- position: absolute;
154
- overflow: hidden;
155
- z-index: var(--ck-z-default);
156
- }
287
+ width: var(--ck-widget-type-around-button-size);
288
+ height: var(--ck-widget-type-around-button-size);
289
+ background: var(--ck-color-widget-type-around-button);
290
+ transition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);
291
+ opacity: 0;
292
+ pointer-events: none;
293
+ z-index: var(--ck-z-default);
294
+ border-radius: 100px;
295
+ display: block;
296
+ position: absolute;
297
+ overflow: hidden;
298
+ }
299
+
300
+ @media (prefers-reduced-motion: reduce) {
301
+ .ck .ck-widget .ck-widget__type-around__button {
302
+ transition: none;
303
+ }
304
+ }
157
305
 
158
306
  .ck .ck-widget .ck-widget__type-around__button svg {
159
- position: absolute;
160
- top: 50%;
161
- left: 50%;
162
- z-index: calc(var(--ck-z-default) + 2);
163
- }
307
+ width: 10px;
308
+ height: 8px;
309
+ margin-top: 1px;
310
+ transition: transform .5s;
311
+ position: absolute;
312
+ top: 50%;
313
+ left: 50%;
314
+ transform: translate(-50%, -50%);
315
+ }
164
316
 
165
- .ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before {
166
- /* Place it in the middle of the outline */
167
- top: calc(-0.5 * var(--ck-widget-outline-thickness));
168
- left: min(10%, 30px);
317
+ @media (prefers-reduced-motion: reduce) {
318
+ .ck .ck-widget .ck-widget__type-around__button svg {
319
+ transition: none;
320
+ }
321
+ }
322
+
323
+ .ck .ck-widget .ck-widget__type-around__button svg * {
324
+ stroke-dasharray: 10;
325
+ stroke-dashoffset: 0;
326
+ fill: none;
327
+ stroke: var(--ck-color-widget-type-around-button-icon);
328
+ stroke-width: 1.5px;
329
+ stroke-linecap: round;
330
+ stroke-linejoin: round;
331
+ }
332
+
333
+ .ck .ck-widget .ck-widget__type-around__button svg line {
334
+ stroke-dasharray: 7;
335
+ }
336
+
337
+ .ck .ck-widget .ck-widget__type-around__button svg {
338
+ z-index: calc(var(--ck-z-default) + 2);
339
+ }
340
+
341
+ .ck .ck-widget .ck-widget__type-around__button:hover {
342
+ animation: 1s infinite ck-widget-type-around-button-sonar;
343
+ }
344
+
345
+ .ck .ck-widget .ck-widget__type-around__button:hover svg polyline {
346
+ animation: 2s linear ck-widget-type-around-arrow-dash;
347
+ }
348
+
349
+ .ck .ck-widget .ck-widget__type-around__button:hover svg line {
350
+ animation: 2s linear ck-widget-type-around-arrow-tip-dash;
351
+ }
352
+
353
+ @media (prefers-reduced-motion: reduce) {
354
+ .ck .ck-widget .ck-widget__type-around__button:hover {
355
+ animation: none;
356
+ }
169
357
 
170
- transform: translateY(-50%);
171
- }
358
+ .ck .ck-widget .ck-widget__type-around__button:hover svg polyline, .ck .ck-widget .ck-widget__type-around__button:hover svg line {
359
+ animation: none;
360
+ }
361
+ }
362
+
363
+ .ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before {
364
+ top: calc(-.5 * var(--ck-widget-outline-thickness));
365
+ left: min(10%, 30px);
366
+ transform: translateY(-50%);
367
+ }
172
368
 
173
369
  .ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after {
174
- /* Place it in the middle of the outline */
175
- bottom: calc(-0.5 * var(--ck-widget-outline-thickness));
176
- right: min(10%, 30px);
177
-
178
- transform: translateY(50%);
179
- }
180
-
181
- /*
182
- * Styles for the buttons when:
183
- * - the widget is selected,
184
- * - or the button is being hovered (regardless of the widget state).
185
- */
186
-
187
- .ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button::after, .ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover::after {
188
- content: "";
189
- display: block;
190
- position: absolute;
191
- top: 1px;
192
- left: 1px;
193
- z-index: calc(var(--ck-z-default) + 1);
194
- }
195
-
196
- /*
197
- * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.
198
- */
370
+ bottom: calc(-.5 * var(--ck-widget-outline-thickness));
371
+ right: min(10%, 30px);
372
+ transform: translateY(50%);
373
+ }
374
+
375
+ .ck .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__button {
376
+ opacity: 1;
377
+ pointer-events: auto;
378
+ }
379
+
380
+ .ck .ck-widget:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {
381
+ background: var(--ck-color-widget-type-around-button-hover);
382
+ }
383
+
384
+ .ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button, .ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover {
385
+ background: var(--ck-color-widget-type-around-button-active);
386
+ }
387
+
388
+ :is(.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button, .ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover):after {
389
+ width: calc(var(--ck-widget-type-around-button-size) - 2px);
390
+ height: calc(var(--ck-widget-type-around-button-size) - 2px);
391
+ content: "";
392
+ z-index: calc(var(--ck-z-default) + 1);
393
+ background: linear-gradient(135deg, #fff0 0%, #ffffff4d 100%);
394
+ border-radius: 100px;
395
+ display: block;
396
+ position: absolute;
397
+ top: 1px;
398
+ left: 1px;
399
+ }
400
+
401
+ .ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before, .ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after {
402
+ outline-color: #0000;
403
+ }
404
+
405
+ .ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button {
406
+ opacity: 1;
407
+ pointer-events: auto;
408
+ }
409
+
410
+ .ck .ck-widget.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {
411
+ margin-left: 20px;
412
+ }
413
+
414
+ .ck .ck-widget .ck-widget__type-around__fake-caret {
415
+ pointer-events: none;
416
+ background: var(--ck-color-base-text);
417
+ outline: 1px solid #ffffff80;
418
+ height: 1px;
419
+ animation: 1s linear infinite forwards ck-widget-type-around-fake-caret-pulse;
420
+ }
421
+
422
+ :is(.ck .ck-widget.ck-widget_type-around_show-fake-caret_before, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after).ck-widget_selected:hover {
423
+ outline-color: var(--ck-color-widget-hover-border);
424
+ }
425
+
426
+ :is(.ck .ck-widget.ck-widget_type-around_show-fake-caret_before, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after) > .ck-widget__type-around > .ck-widget__type-around__button {
427
+ opacity: 0;
428
+ pointer-events: none;
429
+ }
430
+
431
+ :is(:is(.ck .ck-widget.ck-widget_type-around_show-fake-caret_before, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after).ck-widget_with-selection-handle.ck-widget_selected, :is(.ck .ck-widget.ck-widget_type-around_show-fake-caret_before, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after).ck-widget_with-selection-handle.ck-widget_selected:hover) > .ck-widget__selection-handle {
432
+ opacity: 0;
433
+ }
434
+
435
+ :is(.ck .ck-widget.ck-widget_type-around_show-fake-caret_before, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after).ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {
436
+ opacity: 0;
437
+ }
199
438
 
200
439
  .ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
201
- display: none;
202
- position: absolute;
203
- left: 0;
204
- right: 0;
205
- }
206
-
207
- /*
208
- * When the widget is hovered the "fake caret" would normally be narrower than the
209
- * extra outline displayed around the widget. Let's extend the "fake caret" to match
210
- * the full width of the widget.
211
- */
440
+ display: none;
441
+ position: absolute;
442
+ left: 0;
443
+ right: 0;
444
+ }
212
445
 
213
446
  .ck .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
214
- left: calc( -1 * var(--ck-widget-outline-thickness) );
215
- right: calc( -1 * var(--ck-widget-outline-thickness) );
216
- }
217
-
218
- /*
219
- * Styles for the horizontal "fake caret" when it should be displayed before the widget (backward keyboard navigation).
220
- */
447
+ left: calc(-1 * var(--ck-widget-outline-thickness));
448
+ right: calc(-1 * var(--ck-widget-outline-thickness));
449
+ }
221
450
 
222
451
  .ck .ck-widget.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
223
- top: calc( -1 * var(--ck-widget-outline-thickness) - 1px );
224
- display: block;
225
- }
226
-
227
- /*
228
- * Styles for the horizontal "fake caret" when it should be displayed after the widget (forward keyboard navigation).
229
- */
452
+ top: calc(-1 * var(--ck-widget-outline-thickness) - 1px);
453
+ display: block;
454
+ }
230
455
 
231
456
  .ck .ck-widget.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
232
- bottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );
233
- display: block;
234
- }
457
+ bottom: calc(-1 * var(--ck-widget-outline-thickness) - 1px);
458
+ display: block;
459
+ }
235
460
 
236
- /*
237
- * Integration with the read-only mode of the editor.
238
- */
239
- .ck.ck-editor__editable.ck-read-only .ck-widget__type-around {
240
- display: none;
461
+ .ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {
462
+ margin-left: 0;
463
+ margin-right: 20px;
241
464
  }
242
465
 
243
- /*
244
- * Integration with the #isEnabled property of the WidgetTypeAround plugin.
245
- */
246
- .ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {
247
- display: none;
466
+ :is(.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected, .ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover) > .ck-widget__type-around > .ck-widget__type-around__button {
467
+ opacity: 0;
468
+ pointer-events: none;
469
+ }
470
+
471
+ .ck .ck-widget:has(.ck-widget.table:hover) > .ck-widget__type-around > .ck-widget__type-around__button {
472
+ opacity: 0;
473
+ pointer-events: none;
474
+ }
475
+
476
+ .ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {
477
+ background: var(--ck-color-widget-type-around-button-blurred-editable);
478
+ }
479
+
480
+ .ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) svg * {
481
+ stroke: #999;
482
+ }
483
+
484
+ @keyframes ck-widget-type-around-arrow-dash {
485
+ 0% {
486
+ stroke-dashoffset: 10px;
487
+ }
488
+
489
+ 20%, 100% {
490
+ stroke-dashoffset: 0;
491
+ }
492
+ }
493
+
494
+ @keyframes ck-widget-type-around-arrow-tip-dash {
495
+ 0%, 20% {
496
+ stroke-dashoffset: 7px;
497
+ }
498
+
499
+ 40%, 100% {
500
+ stroke-dashoffset: 0;
501
+ }
502
+ }
503
+
504
+ @keyframes ck-widget-type-around-button-sonar {
505
+ 0% {
506
+ box-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));
507
+ }
508
+
509
+ 50% {
510
+ box-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));
511
+ }
512
+
513
+ 100% {
514
+ box-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));
515
+ }
516
+ }
517
+
518
+ @keyframes ck-widget-type-around-fake-caret-pulse {
519
+ 0% {
520
+ opacity: 1;
521
+ }
522
+
523
+ 49% {
524
+ opacity: 1;
525
+ }
526
+
527
+ 50% {
528
+ opacity: 0;
529
+ }
530
+
531
+ 99% {
532
+ opacity: 0;
533
+ }
534
+
535
+ 100% {
536
+ opacity: 1;
537
+ }
538
+ }
539
+
540
+ .ck.ck-editor__editable.ck-read-only .ck-widget__type-around, .ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {
541
+ display: none;
248
542
  }
249
543
 
250
- /*
251
- * Integration with the restricted editing mode (feature) of the editor.
252
- */
253
544
  .ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {
254
- display: none;
255
- }
545
+ display: none;
546
+ }
547
+
256
548
  .ck.ck-editor__editable.ck-restricted-editing_mode_restricted div.restricted-editing-exception .ck-widget__type-around {
257
- display: initial;
258
- }
549
+ display: initial;
550
+ }
259
551
 
260
552
  /*# sourceMappingURL=index.css.map */