@ckeditor/ckeditor5-table 47.2.0 → 47.3.0-alpha.1

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 (332) hide show
  1. package/LICENSE.md +4 -4
  2. package/build/table.js +2 -2
  3. package/build/translations/af.js +1 -1
  4. package/build/translations/ar.js +1 -1
  5. package/build/translations/ast.js +1 -1
  6. package/build/translations/az.js +1 -1
  7. package/build/translations/be.js +1 -1
  8. package/build/translations/bg.js +1 -1
  9. package/build/translations/bn.js +1 -1
  10. package/build/translations/bs.js +1 -1
  11. package/build/translations/ca.js +1 -1
  12. package/build/translations/cs.js +1 -1
  13. package/build/translations/da.js +1 -1
  14. package/build/translations/de-ch.js +1 -1
  15. package/build/translations/de.js +1 -1
  16. package/build/translations/el.js +1 -1
  17. package/build/translations/en-au.js +1 -1
  18. package/build/translations/en-gb.js +1 -1
  19. package/build/translations/eo.js +1 -1
  20. package/build/translations/es-co.js +1 -1
  21. package/build/translations/es.js +1 -1
  22. package/build/translations/et.js +1 -1
  23. package/build/translations/eu.js +1 -1
  24. package/build/translations/fa.js +1 -1
  25. package/build/translations/fi.js +1 -1
  26. package/build/translations/fr.js +1 -1
  27. package/build/translations/gl.js +1 -1
  28. package/build/translations/gu.js +1 -1
  29. package/build/translations/he.js +1 -1
  30. package/build/translations/hi.js +1 -1
  31. package/build/translations/hr.js +1 -1
  32. package/build/translations/hu.js +1 -1
  33. package/build/translations/hy.js +1 -1
  34. package/build/translations/id.js +1 -1
  35. package/build/translations/it.js +1 -1
  36. package/build/translations/ja.js +1 -1
  37. package/build/translations/jv.js +1 -1
  38. package/build/translations/kk.js +1 -1
  39. package/build/translations/km.js +1 -1
  40. package/build/translations/kn.js +1 -1
  41. package/build/translations/ko.js +1 -1
  42. package/build/translations/ku.js +1 -1
  43. package/build/translations/lt.js +1 -1
  44. package/build/translations/lv.js +1 -1
  45. package/build/translations/ms.js +1 -1
  46. package/build/translations/nb.js +1 -1
  47. package/build/translations/ne.js +1 -1
  48. package/build/translations/nl.js +1 -1
  49. package/build/translations/no.js +1 -1
  50. package/build/translations/oc.js +1 -1
  51. package/build/translations/pl.js +1 -1
  52. package/build/translations/pt-br.js +1 -1
  53. package/build/translations/pt.js +1 -1
  54. package/build/translations/ro.js +1 -1
  55. package/build/translations/ru.js +1 -1
  56. package/build/translations/si.js +1 -1
  57. package/build/translations/sk.js +1 -1
  58. package/build/translations/sl.js +1 -1
  59. package/build/translations/sq.js +1 -1
  60. package/build/translations/sr-latn.js +1 -1
  61. package/build/translations/sr.js +1 -1
  62. package/build/translations/sv.js +1 -1
  63. package/build/translations/th.js +1 -1
  64. package/build/translations/ti.js +1 -1
  65. package/build/translations/tk.js +1 -1
  66. package/build/translations/tr.js +1 -1
  67. package/build/translations/tt.js +1 -1
  68. package/build/translations/ug.js +1 -1
  69. package/build/translations/uk.js +1 -1
  70. package/build/translations/ur.js +1 -1
  71. package/build/translations/uz.js +1 -1
  72. package/build/translations/vi.js +1 -1
  73. package/build/translations/zh-cn.js +1 -1
  74. package/build/translations/zh.js +1 -1
  75. package/dist/index-content.css +32 -3
  76. package/dist/index-editor.css +189 -88
  77. package/dist/index.css +310 -160
  78. package/dist/index.css.map +1 -1
  79. package/dist/index.js +11215 -8546
  80. package/dist/index.js.map +1 -1
  81. package/dist/translations/af.js +1 -1
  82. package/dist/translations/af.umd.js +1 -1
  83. package/dist/translations/ar.js +1 -1
  84. package/dist/translations/ar.umd.js +1 -1
  85. package/dist/translations/ast.js +1 -1
  86. package/dist/translations/ast.umd.js +1 -1
  87. package/dist/translations/az.js +1 -1
  88. package/dist/translations/az.umd.js +1 -1
  89. package/dist/translations/be.js +1 -1
  90. package/dist/translations/be.umd.js +1 -1
  91. package/dist/translations/bg.js +1 -1
  92. package/dist/translations/bg.umd.js +1 -1
  93. package/dist/translations/bn.js +1 -1
  94. package/dist/translations/bn.umd.js +1 -1
  95. package/dist/translations/bs.js +1 -1
  96. package/dist/translations/bs.umd.js +1 -1
  97. package/dist/translations/ca.js +1 -1
  98. package/dist/translations/ca.umd.js +1 -1
  99. package/dist/translations/cs.js +1 -1
  100. package/dist/translations/cs.umd.js +1 -1
  101. package/dist/translations/da.js +1 -1
  102. package/dist/translations/da.umd.js +1 -1
  103. package/dist/translations/de-ch.js +1 -1
  104. package/dist/translations/de-ch.umd.js +1 -1
  105. package/dist/translations/de.js +1 -1
  106. package/dist/translations/de.umd.js +1 -1
  107. package/dist/translations/el.js +1 -1
  108. package/dist/translations/el.umd.js +1 -1
  109. package/dist/translations/en-au.js +1 -1
  110. package/dist/translations/en-au.umd.js +1 -1
  111. package/dist/translations/en-gb.js +1 -1
  112. package/dist/translations/en-gb.umd.js +1 -1
  113. package/dist/translations/en.js +1 -1
  114. package/dist/translations/en.umd.js +1 -1
  115. package/dist/translations/eo.js +1 -1
  116. package/dist/translations/eo.umd.js +1 -1
  117. package/dist/translations/es-co.js +1 -1
  118. package/dist/translations/es-co.umd.js +1 -1
  119. package/dist/translations/es.js +1 -1
  120. package/dist/translations/es.umd.js +1 -1
  121. package/dist/translations/et.js +1 -1
  122. package/dist/translations/et.umd.js +1 -1
  123. package/dist/translations/eu.js +1 -1
  124. package/dist/translations/eu.umd.js +1 -1
  125. package/dist/translations/fa.js +1 -1
  126. package/dist/translations/fa.umd.js +1 -1
  127. package/dist/translations/fi.js +1 -1
  128. package/dist/translations/fi.umd.js +1 -1
  129. package/dist/translations/fr.js +1 -1
  130. package/dist/translations/fr.umd.js +1 -1
  131. package/dist/translations/gl.js +1 -1
  132. package/dist/translations/gl.umd.js +1 -1
  133. package/dist/translations/gu.js +1 -1
  134. package/dist/translations/gu.umd.js +1 -1
  135. package/dist/translations/he.js +1 -1
  136. package/dist/translations/he.umd.js +1 -1
  137. package/dist/translations/hi.js +1 -1
  138. package/dist/translations/hi.umd.js +1 -1
  139. package/dist/translations/hr.js +1 -1
  140. package/dist/translations/hr.umd.js +1 -1
  141. package/dist/translations/hu.js +1 -1
  142. package/dist/translations/hu.umd.js +1 -1
  143. package/dist/translations/hy.js +1 -1
  144. package/dist/translations/hy.umd.js +1 -1
  145. package/dist/translations/id.js +1 -1
  146. package/dist/translations/id.umd.js +1 -1
  147. package/dist/translations/it.js +1 -1
  148. package/dist/translations/it.umd.js +1 -1
  149. package/dist/translations/ja.js +1 -1
  150. package/dist/translations/ja.umd.js +1 -1
  151. package/dist/translations/jv.js +1 -1
  152. package/dist/translations/jv.umd.js +1 -1
  153. package/dist/translations/kk.js +1 -1
  154. package/dist/translations/kk.umd.js +1 -1
  155. package/dist/translations/km.js +1 -1
  156. package/dist/translations/km.umd.js +1 -1
  157. package/dist/translations/kn.js +1 -1
  158. package/dist/translations/kn.umd.js +1 -1
  159. package/dist/translations/ko.js +1 -1
  160. package/dist/translations/ko.umd.js +1 -1
  161. package/dist/translations/ku.js +1 -1
  162. package/dist/translations/ku.umd.js +1 -1
  163. package/dist/translations/lt.js +1 -1
  164. package/dist/translations/lt.umd.js +1 -1
  165. package/dist/translations/lv.js +1 -1
  166. package/dist/translations/lv.umd.js +1 -1
  167. package/dist/translations/ms.js +1 -1
  168. package/dist/translations/ms.umd.js +1 -1
  169. package/dist/translations/nb.js +1 -1
  170. package/dist/translations/nb.umd.js +1 -1
  171. package/dist/translations/ne.js +1 -1
  172. package/dist/translations/ne.umd.js +1 -1
  173. package/dist/translations/nl.js +1 -1
  174. package/dist/translations/nl.umd.js +1 -1
  175. package/dist/translations/no.js +1 -1
  176. package/dist/translations/no.umd.js +1 -1
  177. package/dist/translations/oc.js +1 -1
  178. package/dist/translations/oc.umd.js +1 -1
  179. package/dist/translations/pl.js +1 -1
  180. package/dist/translations/pl.umd.js +1 -1
  181. package/dist/translations/pt-br.js +1 -1
  182. package/dist/translations/pt-br.umd.js +1 -1
  183. package/dist/translations/pt.js +1 -1
  184. package/dist/translations/pt.umd.js +1 -1
  185. package/dist/translations/ro.js +1 -1
  186. package/dist/translations/ro.umd.js +1 -1
  187. package/dist/translations/ru.js +1 -1
  188. package/dist/translations/ru.umd.js +1 -1
  189. package/dist/translations/si.js +1 -1
  190. package/dist/translations/si.umd.js +1 -1
  191. package/dist/translations/sk.js +1 -1
  192. package/dist/translations/sk.umd.js +1 -1
  193. package/dist/translations/sl.js +1 -1
  194. package/dist/translations/sl.umd.js +1 -1
  195. package/dist/translations/sq.js +1 -1
  196. package/dist/translations/sq.umd.js +1 -1
  197. package/dist/translations/sr-latn.js +1 -1
  198. package/dist/translations/sr-latn.umd.js +1 -1
  199. package/dist/translations/sr.js +1 -1
  200. package/dist/translations/sr.umd.js +1 -1
  201. package/dist/translations/sv.js +1 -1
  202. package/dist/translations/sv.umd.js +1 -1
  203. package/dist/translations/th.js +1 -1
  204. package/dist/translations/th.umd.js +1 -1
  205. package/dist/translations/ti.js +1 -1
  206. package/dist/translations/ti.umd.js +1 -1
  207. package/dist/translations/tk.js +1 -1
  208. package/dist/translations/tk.umd.js +1 -1
  209. package/dist/translations/tr.js +1 -1
  210. package/dist/translations/tr.umd.js +1 -1
  211. package/dist/translations/tt.js +1 -1
  212. package/dist/translations/tt.umd.js +1 -1
  213. package/dist/translations/ug.js +1 -1
  214. package/dist/translations/ug.umd.js +1 -1
  215. package/dist/translations/uk.js +1 -1
  216. package/dist/translations/uk.umd.js +1 -1
  217. package/dist/translations/ur.js +1 -1
  218. package/dist/translations/ur.umd.js +1 -1
  219. package/dist/translations/uz.js +1 -1
  220. package/dist/translations/uz.umd.js +1 -1
  221. package/dist/translations/vi.js +1 -1
  222. package/dist/translations/vi.umd.js +1 -1
  223. package/dist/translations/zh-cn.js +1 -1
  224. package/dist/translations/zh-cn.umd.js +1 -1
  225. package/dist/translations/zh.js +1 -1
  226. package/dist/translations/zh.umd.js +1 -1
  227. package/lang/contexts.json +6 -0
  228. package/lang/translations/af.po +24 -0
  229. package/lang/translations/ar.po +24 -0
  230. package/lang/translations/ast.po +24 -0
  231. package/lang/translations/az.po +24 -0
  232. package/lang/translations/be.po +24 -0
  233. package/lang/translations/bg.po +24 -0
  234. package/lang/translations/bn.po +24 -0
  235. package/lang/translations/bs.po +24 -0
  236. package/lang/translations/ca.po +24 -0
  237. package/lang/translations/cs.po +24 -0
  238. package/lang/translations/da.po +24 -0
  239. package/lang/translations/de-ch.po +24 -0
  240. package/lang/translations/de.po +24 -0
  241. package/lang/translations/el.po +24 -0
  242. package/lang/translations/en-au.po +24 -0
  243. package/lang/translations/en-gb.po +24 -0
  244. package/lang/translations/en.po +24 -0
  245. package/lang/translations/eo.po +24 -0
  246. package/lang/translations/es-co.po +24 -0
  247. package/lang/translations/es.po +24 -0
  248. package/lang/translations/et.po +24 -0
  249. package/lang/translations/eu.po +24 -0
  250. package/lang/translations/fa.po +24 -0
  251. package/lang/translations/fi.po +24 -0
  252. package/lang/translations/fr.po +24 -0
  253. package/lang/translations/gl.po +24 -0
  254. package/lang/translations/gu.po +24 -0
  255. package/lang/translations/he.po +24 -0
  256. package/lang/translations/hi.po +24 -0
  257. package/lang/translations/hr.po +24 -0
  258. package/lang/translations/hu.po +24 -0
  259. package/lang/translations/hy.po +24 -0
  260. package/lang/translations/id.po +24 -0
  261. package/lang/translations/it.po +24 -0
  262. package/lang/translations/ja.po +24 -0
  263. package/lang/translations/jv.po +24 -0
  264. package/lang/translations/kk.po +24 -0
  265. package/lang/translations/km.po +24 -0
  266. package/lang/translations/kn.po +24 -0
  267. package/lang/translations/ko.po +24 -0
  268. package/lang/translations/ku.po +24 -0
  269. package/lang/translations/lt.po +24 -0
  270. package/lang/translations/lv.po +24 -0
  271. package/lang/translations/ms.po +24 -0
  272. package/lang/translations/nb.po +24 -0
  273. package/lang/translations/ne.po +24 -0
  274. package/lang/translations/nl.po +24 -0
  275. package/lang/translations/no.po +24 -0
  276. package/lang/translations/oc.po +24 -0
  277. package/lang/translations/pl.po +24 -0
  278. package/lang/translations/pt-br.po +24 -0
  279. package/lang/translations/pt.po +24 -0
  280. package/lang/translations/ro.po +24 -0
  281. package/lang/translations/ru.po +24 -0
  282. package/lang/translations/si.po +24 -0
  283. package/lang/translations/sk.po +24 -0
  284. package/lang/translations/sl.po +24 -0
  285. package/lang/translations/sq.po +24 -0
  286. package/lang/translations/sr-latn.po +24 -0
  287. package/lang/translations/sr.po +24 -0
  288. package/lang/translations/sv.po +24 -0
  289. package/lang/translations/th.po +24 -0
  290. package/lang/translations/ti.po +24 -0
  291. package/lang/translations/tk.po +24 -0
  292. package/lang/translations/tr.po +24 -0
  293. package/lang/translations/tt.po +24 -0
  294. package/lang/translations/ug.po +24 -0
  295. package/lang/translations/uk.po +24 -0
  296. package/lang/translations/ur.po +24 -0
  297. package/lang/translations/uz.po +24 -0
  298. package/lang/translations/vi.po +24 -0
  299. package/lang/translations/zh-cn.po +24 -0
  300. package/lang/translations/zh.po +24 -0
  301. package/package.json +9 -9
  302. package/src/augmentation.d.ts +21 -0
  303. package/src/converters/downcast.d.ts +26 -1
  304. package/src/converters/downcast.js +129 -3
  305. package/src/converters/tableproperties.d.ts +46 -2
  306. package/src/converters/tableproperties.js +218 -1
  307. package/src/converters/upcasttable.js +147 -36
  308. package/src/index.d.ts +5 -1
  309. package/src/index.js +5 -0
  310. package/src/plaintableoutput.js +0 -91
  311. package/src/tablecellproperties/tablecellpropertiesediting.js +7 -4
  312. package/src/tablecellproperties/tablecellpropertiesuiexperimental.d.ts +128 -0
  313. package/src/tablecellproperties/tablecellpropertiesuiexperimental.js +386 -0
  314. package/src/tablecellproperties/ui/tablecellpropertiesviewexperimental.d.ts +237 -0
  315. package/src/tablecellproperties/ui/tablecellpropertiesviewexperimental.js +633 -0
  316. package/src/tableconfig.d.ts +187 -10
  317. package/src/tableediting.d.ts +5 -0
  318. package/src/tableediting.js +28 -1
  319. package/src/tablelayout/tablelayoutediting.js +8 -2
  320. package/src/tableproperties/tablepropertiesediting.js +255 -8
  321. package/src/tableproperties/tablepropertiesuiexperimental.d.ts +136 -0
  322. package/src/tableproperties/tablepropertiesuiexperimental.js +375 -0
  323. package/src/tableproperties/ui/tablepropertiesviewexperimental.d.ts +216 -0
  324. package/src/tableproperties/ui/tablepropertiesviewexperimental.js +544 -0
  325. package/src/utils/structure.d.ts +5 -1
  326. package/src/utils/structure.js +10 -0
  327. package/src/utils/ui/table-propertiesexperimental.d.ts +215 -0
  328. package/src/utils/ui/table-propertiesexperimental.js +391 -0
  329. package/theme/formrow-experimental.css +15 -0
  330. package/theme/table.css +2 -2
  331. package/theme/tableform-experimental.css +73 -0
  332. package/theme/tableproperties-experimental.css +78 -0
package/dist/index.css CHANGED
@@ -109,9 +109,9 @@
109
109
  * * The table has `display: table` style set.
110
110
  * * The block element is placed directly after the table.
111
111
  */
112
- .ck-content figure.table:not(.layout-table):not(:has(> figcaption)) {
113
- display: block;
112
+ .ck-content figure.table:not(.layout-table) {
114
113
  width: fit-content;
114
+ height: fit-content;
115
115
  }
116
116
 
117
117
  /**
@@ -144,29 +144,6 @@
144
144
  width: 100%;
145
145
  }
146
146
 
147
- /*
148
- * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
149
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
150
- */
151
-
152
- .ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row {
153
- flex-wrap: wrap;
154
- }
155
-
156
- .ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type {
157
- /* 4 buttons out of 7 (h-alignment + v-alignment) = 0.57 */
158
- flex-grow: 0.57;
159
- }
160
-
161
- .ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type {
162
- /* 3 buttons out of 7 (h-alignment + v-alignment) = 0.43 */
163
- flex-grow: 0.43;
164
- }
165
-
166
- .ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button {
167
- flex-grow: 1;
168
- }
169
-
170
147
  /*
171
148
  * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
172
149
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
@@ -241,6 +218,302 @@
241
218
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
242
219
  */
243
220
 
221
+ .ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row {
222
+ flex-wrap: wrap;
223
+ flex-basis: 0;
224
+ align-content: baseline;
225
+ }
226
+
227
+ .ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items {
228
+ flex-wrap: nowrap;
229
+ }
230
+
231
+ /*
232
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
233
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
234
+ */
235
+
236
+ /*
237
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
238
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
239
+ */
240
+
241
+ :root {
242
+ --ck-content-color-table-caption-background: hsl(0, 0%, 97%);
243
+ --ck-content-color-table-caption-text: hsl(0, 0%, 20%);
244
+ --ck-color-table-caption-highlighted-background: hsl(52deg 100% 50%);
245
+ }
246
+
247
+ /* Content styles */
248
+ .ck-content .table > figcaption,
249
+ .ck-content figure.table > table > caption {
250
+ display: table-caption;
251
+ caption-side: top;
252
+ word-break: normal;
253
+ overflow-wrap: anywhere;
254
+ text-align: center;
255
+ color: var(--ck-content-color-table-caption-text);
256
+ background-color: var(--ck-content-color-table-caption-background);
257
+ padding: .6em;
258
+ font-size: .75em;
259
+ outline-offset: -1px;
260
+
261
+ /* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */
262
+ }
263
+ @media (forced-colors: active) {
264
+ .ck-content .table > figcaption, .ck-content figure.table > table > caption {
265
+ background-color: unset;
266
+ color: unset;
267
+ }
268
+ }
269
+
270
+ /* Editing styles */
271
+ @media (forced-colors: none) {
272
+ .ck.ck-editor__editable .table > figcaption.table__caption_highlighted, .ck.ck-editor__editable figure.table > table > caption.table__caption_highlighted {
273
+ animation: ck-table-caption-highlight .6s ease-out;
274
+ }
275
+ }
276
+ .ck.ck-editor__editable .table > figcaption.ck-placeholder::before, .ck.ck-editor__editable figure.table > table > caption.ck-placeholder::before {
277
+ padding-left: inherit;
278
+ padding-right: inherit;
279
+
280
+ /*
281
+ * Make sure the table caption placeholder doesn't overflow the placeholder area.
282
+ * See https://github.com/ckeditor/ckeditor5/issues/9162.
283
+ */
284
+ white-space: nowrap;
285
+ overflow: hidden;
286
+ text-overflow: ellipsis;
287
+ }
288
+
289
+ @keyframes ck-table-caption-highlight {
290
+ 0% {
291
+ background-color: var(--ck-color-table-caption-highlighted-background);
292
+ }
293
+
294
+ 100% {
295
+ background-color: var(--ck-content-color-table-caption-background);
296
+ }
297
+ }
298
+
299
+ /*
300
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
301
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
302
+ */
303
+
304
+ :root {
305
+ --ck-color-table-column-resizer-hover: var(--ck-color-base-active);
306
+ --ck-table-column-resizer-width: 7px;
307
+
308
+ /* The offset used for absolute positioning of the resizer element, so that it is placed exactly above the cell border.
309
+ The value is: minus half the width of the resizer decreased additionaly by the half the width of the border (0.5px). */
310
+ --ck-table-column-resizer-position-offset: calc(var(--ck-table-column-resizer-width) * -0.5 - 0.5px);
311
+ }
312
+
313
+ .ck-content .table .ck-table-resized {
314
+ table-layout: fixed;
315
+ }
316
+
317
+ .ck-content .table td,
318
+ .ck-content .table th {
319
+ /* To prevent text overflowing beyond its cell when columns are resized by resize handler
320
+ (https://github.com/ckeditor/ckeditor5/pull/14379#issuecomment-1589460978). */
321
+ overflow-wrap: break-word;
322
+ }
323
+
324
+ .ck.ck-editor__editable .table td,
325
+ .ck.ck-editor__editable .table th {
326
+ /* The resizer element is placed inside each cell, so it must be positioned relatively to the cell. */
327
+ position: relative;
328
+ }
329
+
330
+ .ck.ck-editor__editable .table .ck-table-column-resizer {
331
+ position: absolute;
332
+ top: 0;
333
+ bottom: 0;
334
+ right: var(--ck-table-column-resizer-position-offset);
335
+ width: var(--ck-table-column-resizer-width);
336
+ cursor: col-resize;
337
+ user-select: none;
338
+ z-index: var(--ck-z-default);
339
+ }
340
+
341
+ .ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer {
342
+ display: none;
343
+ }
344
+
345
+ /* The resizer elements, which are extended to an extremely high height, break the drag & drop feature in Chrome. To make it work again,
346
+ all resizers must be hidden while the table is dragged. */
347
+ .ck.ck-editor__editable .table[draggable] .ck-table-column-resizer {
348
+ display: none;
349
+ }
350
+
351
+ .ck.ck-editor__editable .table .ck-table-column-resizer:hover,
352
+ .ck.ck-editor__editable .table .ck-table-column-resizer__active {
353
+ background-color: var(--ck-color-table-column-resizer-hover);
354
+ opacity: 0.25;
355
+ }
356
+
357
+ .ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer {
358
+ left: var(--ck-table-column-resizer-position-offset);
359
+ right: unset;
360
+ }
361
+
362
+ /*
363
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
364
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
365
+ */
366
+
367
+ .ck.ck-form__row.ck-table-form__action-row {
368
+ justify-content: flex-end;
369
+ }
370
+
371
+ .ck.ck-form__row.ck-table-form__action-row .ck-button-save,
372
+ .ck.ck-form__row.ck-table-form__action-row .ck-button-cancel {
373
+ justify-content: center;
374
+ }
375
+
376
+ /*
377
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
378
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
379
+ */
380
+
381
+ .ck.ck-table-form .ck-form__row.ck-table-form__border-row {
382
+ flex-wrap: wrap;
383
+ }
384
+
385
+ .ck.ck-table-form .ck-form__row.ck-table-form__background-row {
386
+ flex-wrap: wrap;
387
+ }
388
+
389
+ .ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row {
390
+ flex-wrap: wrap;
391
+ align-items: center;
392
+ }
393
+
394
+ .ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view {
395
+ display: flex;
396
+ flex-direction: column-reverse;
397
+ align-items: center;
398
+ }
399
+
400
+ .ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view .ck.ck-dropdown {
401
+ flex-grow: 0;
402
+ }
403
+
404
+ /* Ignore labels that work as fieldset legends */
405
+
406
+ /* Fallback for table dimension operator */
407
+
408
+ .ck.ck-table-form .ck-form__row:not(.ck-table-form__action-row) > *:not(.ck-label, .ck-table-form__dimension-operator) {
409
+ flex-grow: 1;
410
+ }
411
+
412
+ .ck.ck-table-form .ck.ck-labeled-field-view {
413
+ /* Allow absolute positioning of the status (error) balloons. */
414
+ position: relative;
415
+ }
416
+
417
+ .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status {
418
+ position: absolute;
419
+ left: 50%;
420
+ bottom: calc( -1 * var(--ck-table-properties-error-arrow-size) );
421
+ transform: translate(-50%,100%);
422
+
423
+ /* Make sure the balloon status stays on top of other form elements. */
424
+ z-index: 1;
425
+
426
+ /* The arrow pointing towards the field. */
427
+ }
428
+
429
+ .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status::after {
430
+ content: "";
431
+ position: absolute;
432
+ top: calc( -1 * var(--ck-table-properties-error-arrow-size) );
433
+ left: 50%;
434
+ transform: translateX( -50% );
435
+ }
436
+
437
+ .ck.ck-table-form:has( .ck-form__header > .ck-button-back ) .ck-form__row.ck-table-form__action-row > .ck.ck-button {
438
+ flex-grow: initial;
439
+ }
440
+
441
+ .ck.ck-table-form:has( .ck-form__header > .ck-button-back ) .ck-form__row.ck-table-form__action-row > .ck.ck-button .ck-button__label {
442
+ color: currentColor;
443
+ }
444
+
445
+ /*
446
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
447
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
448
+ */
449
+
450
+ :root {
451
+ --ck-content-table-style-spacing: 1.5em;
452
+ }
453
+
454
+ .ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row {
455
+ flex-wrap: wrap;
456
+ flex-basis: 0;
457
+ align-content: baseline;
458
+ }
459
+
460
+ .ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items {
461
+ flex-wrap: nowrap;
462
+ }
463
+
464
+ .ck-content .table.table-style-align-left {
465
+ float: left;
466
+ margin-right: var(--ck-content-table-style-spacing);
467
+ }
468
+
469
+ .ck-content .table.table-style-align-right {
470
+ float: right;
471
+ margin-left: var(--ck-content-table-style-spacing);
472
+ }
473
+
474
+ .ck-content .table.table-style-align-center {
475
+ margin-left: auto;
476
+ margin-right: auto;
477
+ }
478
+
479
+ .ck-content .table.table-style-block-align-left {
480
+ margin-left: 0;
481
+ margin-right: auto;
482
+ }
483
+
484
+ .ck-content .table.table-style-block-align-right {
485
+ margin-left: auto;
486
+ margin-right: 0;
487
+ }
488
+
489
+ .ck-editor__editable .table.layout-table.table-style-align-center {
490
+ margin-left: auto;
491
+ margin-right: auto;
492
+ }
493
+
494
+ .ck-editor__editable .table.layout-table.table-style-align-left {
495
+ margin-right: var(--ck-content-table-style-spacing);
496
+ }
497
+
498
+ .ck-editor__editable .table.layout-table.table-style-align-right {
499
+ margin-left: var(--ck-content-table-style-spacing);
500
+ }
501
+
502
+ .ck-editor__editable .table.layout-table.table-style-block-align-left {
503
+ margin-left: 0;
504
+ margin-right: auto;
505
+ }
506
+
507
+ .ck-editor__editable .table.layout-table.table-style-block-align-right {
508
+ margin-left: auto;
509
+ margin-right: 0;
510
+ }
511
+
512
+ /*
513
+ * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
514
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
515
+ */
516
+
244
517
  /*
245
518
  * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
246
519
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
@@ -406,146 +679,23 @@
406
679
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
407
680
  */
408
681
 
409
- .ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row {
682
+ .ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row {
410
683
  flex-wrap: wrap;
411
- flex-basis: 0;
412
- align-content: baseline;
413
684
  }
414
685
 
415
- .ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items {
416
- flex-wrap: nowrap;
417
- }
418
-
419
- /*
420
- * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
421
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
422
- */
423
-
424
- /*
425
- * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
426
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
427
- */
428
-
429
- :root {
430
- --ck-content-color-table-caption-background: hsl(0, 0%, 97%);
431
- --ck-content-color-table-caption-text: hsl(0, 0%, 20%);
432
- --ck-color-table-caption-highlighted-background: hsl(52deg 100% 50%);
433
- }
434
-
435
- /* Content styles */
436
- .ck-content .table > figcaption,
437
- .ck-content figure.table > table > caption {
438
- display: table-caption;
439
- caption-side: top;
440
- word-break: normal;
441
- overflow-wrap: anywhere;
442
- text-align: center;
443
- color: var(--ck-content-color-table-caption-text);
444
- background-color: var(--ck-content-color-table-caption-background);
445
- padding: .6em;
446
- font-size: .75em;
447
- outline-offset: -1px;
448
-
449
- /* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */
450
- }
451
- @media (forced-colors: active) {
452
- .ck-content .table > figcaption, .ck-content figure.table > table > caption {
453
- background-color: unset;
454
- color: unset;
455
- }
456
- }
457
-
458
- /* Editing styles */
459
- @media (forced-colors: none) {
460
- .ck.ck-editor__editable .table > figcaption.table__caption_highlighted, .ck.ck-editor__editable figure.table > table > caption.table__caption_highlighted {
461
- animation: ck-table-caption-highlight .6s ease-out;
462
- }
463
- }
464
- .ck.ck-editor__editable .table > figcaption.ck-placeholder::before, .ck.ck-editor__editable figure.table > table > caption.ck-placeholder::before {
465
- padding-left: inherit;
466
- padding-right: inherit;
467
-
468
- /*
469
- * Make sure the table caption placeholder doesn't overflow the placeholder area.
470
- * See https://github.com/ckeditor/ckeditor5/issues/9162.
471
- */
472
- white-space: nowrap;
473
- overflow: hidden;
474
- text-overflow: ellipsis;
475
- }
476
-
477
- @keyframes ck-table-caption-highlight {
478
- 0% {
479
- background-color: var(--ck-color-table-caption-highlighted-background);
480
- }
481
-
482
- 100% {
483
- background-color: var(--ck-content-color-table-caption-background);
484
- }
485
- }
486
-
487
- /*
488
- * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
489
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
490
- */
491
-
492
- :root {
493
- --ck-color-table-column-resizer-hover: var(--ck-color-base-active);
494
- --ck-table-column-resizer-width: 7px;
495
-
496
- /* The offset used for absolute positioning of the resizer element, so that it is placed exactly above the cell border.
497
- The value is: minus half the width of the resizer decreased additionaly by the half the width of the border (0.5px). */
498
- --ck-table-column-resizer-position-offset: calc(var(--ck-table-column-resizer-width) * -0.5 - 0.5px);
499
- }
500
-
501
- .ck-content .table .ck-table-resized {
502
- table-layout: fixed;
503
- }
504
-
505
- .ck-content .table td,
506
- .ck-content .table th {
507
- /* To prevent text overflowing beyond its cell when columns are resized by resize handler
508
- (https://github.com/ckeditor/ckeditor5/pull/14379#issuecomment-1589460978). */
509
- overflow-wrap: break-word;
510
- }
511
-
512
- .ck.ck-editor__editable .table td,
513
- .ck.ck-editor__editable .table th {
514
- /* The resizer element is placed inside each cell, so it must be positioned relatively to the cell. */
515
- position: relative;
516
- }
517
-
518
- .ck.ck-editor__editable .table .ck-table-column-resizer {
519
- position: absolute;
520
- top: 0;
521
- bottom: 0;
522
- right: var(--ck-table-column-resizer-position-offset);
523
- width: var(--ck-table-column-resizer-width);
524
- cursor: col-resize;
525
- user-select: none;
526
- z-index: var(--ck-z-default);
527
- }
528
-
529
- .ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer {
530
- display: none;
531
- }
532
-
533
- /* The resizer elements, which are extended to an extremely high height, break the drag & drop feature in Chrome. To make it work again,
534
- all resizers must be hidden while the table is dragged. */
535
- .ck.ck-editor__editable .table[draggable] .ck-table-column-resizer {
536
- display: none;
537
- }
686
+ .ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type {
687
+ /* 4 buttons out of 7 (h-alignment + v-alignment) = 0.57 */
688
+ flex-grow: 0.57;
689
+ }
538
690
 
539
- .ck.ck-editor__editable .table .ck-table-column-resizer:hover,
540
- .ck.ck-editor__editable .table .ck-table-column-resizer__active {
541
- background-color: var(--ck-color-table-column-resizer-hover);
542
- opacity: 0.25;
543
- }
691
+ .ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type {
692
+ /* 3 buttons out of 7 (h-alignment + v-alignment) = 0.43 */
693
+ flex-grow: 0.43;
694
+ }
544
695
 
545
- .ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer {
546
- left: var(--ck-table-column-resizer-position-offset);
547
- right: unset;
548
- }
696
+ .ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button {
697
+ flex-grow: 1;
698
+ }
549
699
 
550
700
  /*
551
701
  * Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.