@ckeditor/ckeditor5-collaboration-core 48.2.0 → 48.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 (201) hide show
  1. package/dist/augmentation.d.ts +28 -28
  2. package/dist/collaborationhistory.d.ts +16 -16
  3. package/dist/collaborationoperation.d.ts +16 -16
  4. package/dist/config.d.ts +139 -139
  5. package/dist/documentcompare.d.ts +115 -115
  6. package/dist/index-editor.css +80 -0
  7. package/dist/index.css +80 -0
  8. package/dist/index.d.ts +27 -26
  9. package/dist/index.js +1 -1
  10. package/dist/legacyerrors.d.ts +0 -4
  11. package/dist/permissions.d.ts +49 -49
  12. package/dist/suggestions/integrations/alignment.d.ts +10 -10
  13. package/dist/suggestions/integrations/basicstyles.d.ts +10 -10
  14. package/dist/suggestions/integrations/bookmark.d.ts +10 -10
  15. package/dist/suggestions/integrations/font.d.ts +10 -10
  16. package/dist/suggestions/integrations/footnotes.d.ts +10 -10
  17. package/dist/suggestions/integrations/generalhtmlsupport.d.ts +20 -20
  18. package/dist/suggestions/integrations/highlight.d.ts +10 -10
  19. package/dist/suggestions/integrations/horizontalline.d.ts +10 -10
  20. package/dist/suggestions/integrations/htmlembed.d.ts +10 -10
  21. package/dist/suggestions/integrations/image.d.ts +10 -10
  22. package/dist/suggestions/integrations/indent.d.ts +10 -10
  23. package/dist/suggestions/integrations/lineheight.d.ts +10 -10
  24. package/dist/suggestions/integrations/link.d.ts +10 -10
  25. package/dist/suggestions/integrations/list.d.ts +10 -10
  26. package/dist/suggestions/integrations/listproperties.d.ts +10 -10
  27. package/dist/suggestions/integrations/mediaembed.d.ts +10 -10
  28. package/dist/suggestions/integrations/multilevellist.d.ts +10 -10
  29. package/dist/suggestions/integrations/shiftenter.d.ts +10 -10
  30. package/dist/suggestions/integrations/table.d.ts +10 -10
  31. package/dist/suggestions/integrations/tablecellproperties.d.ts +10 -10
  32. package/dist/suggestions/integrations/tablefooters.d.ts +10 -10
  33. package/dist/suggestions/integrations/tableheadings.d.ts +10 -10
  34. package/dist/suggestions/integrations/tablelayout.d.ts +10 -10
  35. package/dist/suggestions/integrations/tableproperties.d.ts +10 -10
  36. package/dist/suggestions/integrations/uploadcare.d.ts +10 -10
  37. package/dist/suggestions/suggestionsconversion.d.ts +79 -79
  38. package/dist/suggestions/view/ariadescriptionview.d.ts +18 -18
  39. package/dist/suggestions/view/latefocusbuttonview.d.ts +29 -29
  40. package/dist/suggestionstyles.d.ts +17 -16
  41. package/dist/translations/af.js +1 -1
  42. package/dist/translations/af.umd.js +1 -1
  43. package/dist/translations/ar.js +1 -1
  44. package/dist/translations/ar.umd.js +1 -1
  45. package/dist/translations/ast.js +1 -1
  46. package/dist/translations/ast.umd.js +1 -1
  47. package/dist/translations/az.js +1 -1
  48. package/dist/translations/az.umd.js +1 -1
  49. package/dist/translations/be.js +1 -1
  50. package/dist/translations/be.umd.js +1 -1
  51. package/dist/translations/bg.js +1 -1
  52. package/dist/translations/bg.umd.js +1 -1
  53. package/dist/translations/bn.js +1 -1
  54. package/dist/translations/bn.umd.js +1 -1
  55. package/dist/translations/bs.js +1 -1
  56. package/dist/translations/bs.umd.js +1 -1
  57. package/dist/translations/ca.js +1 -1
  58. package/dist/translations/ca.umd.js +1 -1
  59. package/dist/translations/cs.js +1 -1
  60. package/dist/translations/cs.umd.js +1 -1
  61. package/dist/translations/da.js +1 -1
  62. package/dist/translations/da.umd.js +1 -1
  63. package/dist/translations/de-ch.js +1 -1
  64. package/dist/translations/de-ch.umd.js +1 -1
  65. package/dist/translations/de.js +1 -1
  66. package/dist/translations/de.umd.js +1 -1
  67. package/dist/translations/el.js +1 -1
  68. package/dist/translations/el.umd.js +1 -1
  69. package/dist/translations/en-au.js +1 -1
  70. package/dist/translations/en-au.umd.js +1 -1
  71. package/dist/translations/en-gb.js +1 -1
  72. package/dist/translations/en-gb.umd.js +1 -1
  73. package/dist/translations/en.js +1 -1
  74. package/dist/translations/en.umd.js +1 -1
  75. package/dist/translations/eo.js +1 -1
  76. package/dist/translations/eo.umd.js +1 -1
  77. package/dist/translations/es-co.js +1 -1
  78. package/dist/translations/es-co.umd.js +1 -1
  79. package/dist/translations/es.js +1 -1
  80. package/dist/translations/es.umd.js +1 -1
  81. package/dist/translations/et.js +1 -1
  82. package/dist/translations/et.umd.js +1 -1
  83. package/dist/translations/eu.js +1 -1
  84. package/dist/translations/eu.umd.js +1 -1
  85. package/dist/translations/fa.js +1 -1
  86. package/dist/translations/fa.umd.js +1 -1
  87. package/dist/translations/fi.js +1 -1
  88. package/dist/translations/fi.umd.js +1 -1
  89. package/dist/translations/fr.js +1 -1
  90. package/dist/translations/fr.umd.js +1 -1
  91. package/dist/translations/gl.js +1 -1
  92. package/dist/translations/gl.umd.js +1 -1
  93. package/dist/translations/gu.js +1 -1
  94. package/dist/translations/gu.umd.js +1 -1
  95. package/dist/translations/he.js +1 -1
  96. package/dist/translations/he.umd.js +1 -1
  97. package/dist/translations/hi.js +1 -1
  98. package/dist/translations/hi.umd.js +1 -1
  99. package/dist/translations/hr.js +1 -1
  100. package/dist/translations/hr.umd.js +1 -1
  101. package/dist/translations/hu.js +1 -1
  102. package/dist/translations/hu.umd.js +1 -1
  103. package/dist/translations/hy.js +1 -1
  104. package/dist/translations/hy.umd.js +1 -1
  105. package/dist/translations/id.js +1 -1
  106. package/dist/translations/id.umd.js +1 -1
  107. package/dist/translations/it.js +1 -1
  108. package/dist/translations/it.umd.js +1 -1
  109. package/dist/translations/ja.js +1 -1
  110. package/dist/translations/ja.umd.js +1 -1
  111. package/dist/translations/jv.js +1 -1
  112. package/dist/translations/jv.umd.js +1 -1
  113. package/dist/translations/kk.js +1 -1
  114. package/dist/translations/kk.umd.js +1 -1
  115. package/dist/translations/km.js +1 -1
  116. package/dist/translations/km.umd.js +1 -1
  117. package/dist/translations/kn.js +1 -1
  118. package/dist/translations/kn.umd.js +1 -1
  119. package/dist/translations/ko.js +1 -1
  120. package/dist/translations/ko.umd.js +1 -1
  121. package/dist/translations/ku.js +1 -1
  122. package/dist/translations/ku.umd.js +1 -1
  123. package/dist/translations/lt.js +1 -1
  124. package/dist/translations/lt.umd.js +1 -1
  125. package/dist/translations/lv.js +1 -1
  126. package/dist/translations/lv.umd.js +1 -1
  127. package/dist/translations/ms.js +1 -1
  128. package/dist/translations/ms.umd.js +1 -1
  129. package/dist/translations/nb.js +1 -1
  130. package/dist/translations/nb.umd.js +1 -1
  131. package/dist/translations/ne.js +1 -1
  132. package/dist/translations/ne.umd.js +1 -1
  133. package/dist/translations/nl.js +1 -1
  134. package/dist/translations/nl.umd.js +1 -1
  135. package/dist/translations/no.js +1 -1
  136. package/dist/translations/no.umd.js +1 -1
  137. package/dist/translations/oc.js +1 -1
  138. package/dist/translations/oc.umd.js +1 -1
  139. package/dist/translations/pl.js +1 -1
  140. package/dist/translations/pl.umd.js +1 -1
  141. package/dist/translations/pt-br.js +1 -1
  142. package/dist/translations/pt-br.umd.js +1 -1
  143. package/dist/translations/pt.js +1 -1
  144. package/dist/translations/pt.umd.js +1 -1
  145. package/dist/translations/ro.js +1 -1
  146. package/dist/translations/ro.umd.js +1 -1
  147. package/dist/translations/ru.js +1 -1
  148. package/dist/translations/ru.umd.js +1 -1
  149. package/dist/translations/si.js +1 -1
  150. package/dist/translations/si.umd.js +1 -1
  151. package/dist/translations/sk.js +1 -1
  152. package/dist/translations/sk.umd.js +1 -1
  153. package/dist/translations/sl.js +1 -1
  154. package/dist/translations/sl.umd.js +1 -1
  155. package/dist/translations/sq.js +1 -1
  156. package/dist/translations/sq.umd.js +1 -1
  157. package/dist/translations/sr-latn.js +1 -1
  158. package/dist/translations/sr-latn.umd.js +1 -1
  159. package/dist/translations/sr.js +1 -1
  160. package/dist/translations/sr.umd.js +1 -1
  161. package/dist/translations/sv.js +1 -1
  162. package/dist/translations/sv.umd.js +1 -1
  163. package/dist/translations/th.js +1 -1
  164. package/dist/translations/th.umd.js +1 -1
  165. package/dist/translations/ti.js +1 -1
  166. package/dist/translations/ti.umd.js +1 -1
  167. package/dist/translations/tk.js +1 -1
  168. package/dist/translations/tk.umd.js +1 -1
  169. package/dist/translations/tr.js +1 -1
  170. package/dist/translations/tr.umd.js +1 -1
  171. package/dist/translations/tt.js +1 -1
  172. package/dist/translations/tt.umd.js +1 -1
  173. package/dist/translations/ug.js +1 -1
  174. package/dist/translations/ug.umd.js +1 -1
  175. package/dist/translations/uk.js +1 -1
  176. package/dist/translations/uk.umd.js +1 -1
  177. package/dist/translations/ur.js +1 -1
  178. package/dist/translations/ur.umd.js +1 -1
  179. package/dist/translations/uz.js +1 -1
  180. package/dist/translations/uz.umd.js +1 -1
  181. package/dist/translations/vi.js +1 -1
  182. package/dist/translations/vi.umd.js +1 -1
  183. package/dist/translations/zh-cn.js +1 -1
  184. package/dist/translations/zh-cn.umd.js +1 -1
  185. package/dist/translations/zh.js +1 -1
  186. package/dist/translations/zh.umd.js +1 -1
  187. package/dist/ui/pillview.d.ts +103 -0
  188. package/dist/users/view/userview.d.ts +12 -12
  189. package/dist/users.d.ts +173 -173
  190. package/dist/utils/common-translations.d.ts +6 -6
  191. package/dist/utils/confirmmixin.d.ts +27 -17
  192. package/dist/utils/confirmview.d.ts +20 -20
  193. package/dist/utils/getdatetimeformatter.d.ts +31 -31
  194. package/dist/utils/getmarkerdomelement.d.ts +17 -17
  195. package/dist/utils/hashobject.d.ts +5 -5
  196. package/dist/utils/sanitizeeditorconfig.d.ts +11 -11
  197. package/dist/utils/setupthreadkeyboardnavigation.d.ts +31 -31
  198. package/dist/utils/suggestionmarkerutils.d.ts +13 -13
  199. package/dist/utils/surroundingmarkersdetector.d.ts +11 -11
  200. package/dist/utils/trim-html.d.ts +14 -14
  201. package/package.json +12 -12
@@ -1,153 +1,153 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
5
  /**
6
- * @module collaboration-core/documentcompare
7
- */
8
- import { ContextPlugin, Editor } from '@ckeditor/ckeditor5-core';
9
- import { ModelPosition, type ModelDocumentFragment, type ModelElement, type Operation } from '@ckeditor/ckeditor5-engine';
6
+ * @module collaboration-core/documentcompare
7
+ */
8
+ import { ContextPlugin, Editor } from "@ckeditor/ckeditor5-core";
9
+ import { ModelPosition, type ModelDocumentFragment, type ModelElement, type Operation } from "@ckeditor/ckeditor5-engine";
10
10
  export declare const DATA_ID_MODEL_ATTRIBUTE = "$elementId";
11
11
  export declare const DATA_ID_VIEW_ATTRIBUTE = "data-id";
12
12
  /**
13
- * The `DocumentCompare` plugin provides utilities to compare two documents or documents fragments, and provide set of operations
14
- * which need to be executed to transform one document into the other.
15
- */
13
+ * The `DocumentCompare` plugin provides utilities to compare two documents or documents fragments, and provide set of operations
14
+ * which need to be executed to transform one document into the other.
15
+ */
16
16
  export declare class DocumentCompare extends ContextPlugin {
17
- /**
18
- * @inheritDoc
19
- */
20
- static get pluginName(): "DocumentCompare";
21
- /**
22
- * @inheritDoc
23
- */
24
- static get isOfficialPlugin(): true;
25
- /**
26
- * @inheritDoc
27
- */
28
- static get isPremiumPlugin(): true;
29
- init(): Promise<void>;
30
- get editor(): Editor;
31
- getDiff(dataBefore: string, dataAfter: string, options?: DocumentCompareOptions): DocumentDiff;
32
- /**
33
- * Returns `true` if given `operation` is an operation that marks a content to be removed. This kind of operations can be
34
- * returned by {@link module:collaboration-core/documentcompare~DocumentCompare#getOperations} if `markedDeletions` mode is enabled.
35
- *
36
- * @param operation
37
- */
38
- isMarkedRemoveOperation(operation: Operation): boolean;
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ static get pluginName(): "DocumentCompare";
21
+ /**
22
+ * @inheritDoc
23
+ */
24
+ static override get isOfficialPlugin(): true;
25
+ /**
26
+ * @inheritDoc
27
+ */
28
+ static override get isPremiumPlugin(): true;
29
+ init(): Promise<void>;
30
+ get editor(): Editor;
31
+ getDiff(dataBefore: string, dataAfter: string, options?: DocumentCompareOptions): DocumentDiff;
32
+ /**
33
+ * Returns `true` if given `operation` is an operation that marks a content to be removed. This kind of operations can be
34
+ * returned by {@link module:collaboration-core/documentcompare~DocumentCompare#getOperations} if `markedDeletions` mode is enabled.
35
+ *
36
+ * @param operation
37
+ */
38
+ isMarkedRemoveOperation(operation: Operation): boolean;
39
39
  }
40
40
  export interface DocumentCompareOptions {
41
- anchor: string | ModelPosition;
42
- markDeletions: boolean;
43
- /**
44
- * When `DocumentCompare` runs on a context with several editors, `DocumentCompare#editor` is the first editor in the context.
45
- * Pass the editor whose model/schema should be used for parsing and for resolving a string `anchor` (e.g. multi-root root names).
46
- */
47
- targetEditor?: Editor;
41
+ anchor?: string | ModelPosition;
42
+ markDeletions: boolean;
43
+ /**
44
+ * When `DocumentCompare` runs on a context with several editors, `DocumentCompare#editor` is the first editor in the context.
45
+ * Pass the editor whose model/schema should be used for parsing and for resolving a string `anchor` (e.g. multi-root root names).
46
+ */
47
+ targetEditor?: Editor;
48
48
  }
49
49
  export declare class DocumentDiff {
50
- constructor({ editor, before, after, options }: {
51
- editor: Editor;
52
- before: ModelDocumentFragment;
53
- after: ModelDocumentFragment;
54
- options: {
55
- markDeletions: boolean;
56
- anchor: ModelPosition;
57
- };
58
- });
59
- getOperationsData(): Array<OperationData>;
60
- getOperations(): Array<Operation>;
50
+ constructor({ editor, before, after, options }: {
51
+ editor: Editor;
52
+ before: ModelDocumentFragment;
53
+ after: ModelDocumentFragment;
54
+ options: {
55
+ markDeletions: boolean;
56
+ anchor: ModelPosition;
57
+ };
58
+ });
59
+ getOperationsData(): Array<OperationData>;
60
+ getOperations(): Array<Operation>;
61
61
  }
62
62
  export interface InsertOperationData {
63
- type: 'insert';
64
- path: Path;
65
- tokens: Array<ModelToken>;
63
+ type: "insert";
64
+ path: Path;
65
+ tokens: Array<ModelToken>;
66
66
  }
67
67
  export interface RemoveOperationData {
68
- type: 'remove';
69
- path: Path;
70
- howMany: number;
68
+ type: "remove";
69
+ path: Path;
70
+ howMany: number;
71
71
  }
72
72
  export interface SplitOperationData {
73
- type: 'split';
74
- path: Path;
73
+ type: "split";
74
+ path: Path;
75
75
  }
76
76
  export interface MergeOperationData {
77
- type: 'merge';
78
- path: Path;
77
+ type: "merge";
78
+ path: Path;
79
79
  }
80
80
  export interface RenameOperationData {
81
- type: 'rename';
82
- path: Path;
83
- oldName: string;
84
- newName: string;
81
+ type: "rename";
82
+ path: Path;
83
+ oldName: string;
84
+ newName: string;
85
85
  }
86
86
  export interface AttributeOperationData {
87
- type: 'attribute';
88
- path: Path;
89
- howMany: number;
90
- key: string;
91
- oldValue: string;
92
- newValue: string;
87
+ type: "attribute";
88
+ path: Path;
89
+ howMany: number;
90
+ key: string;
91
+ oldValue: string;
92
+ newValue: string;
93
93
  }
94
94
  export interface MarkerOperationData {
95
- type: 'marker';
96
- name: string;
97
- range: null | {
98
- start: Path;
99
- end: Path;
100
- };
95
+ type: "marker";
96
+ name: string;
97
+ range: null | {
98
+ start: Path;
99
+ end: Path;
100
+ };
101
101
  }
102
102
  export interface UnwrapOperationData {
103
- type: 'unwrap';
104
- path: Path;
105
- howMany: number;
103
+ type: "unwrap";
104
+ path: Path;
105
+ howMany: number;
106
106
  }
107
107
  export interface WrapOperationData {
108
- type: 'wrap';
109
- token: ModelElementToken;
110
- range: {
111
- start: Path;
112
- end: Path;
113
- };
108
+ type: "wrap";
109
+ token: ModelElementToken;
110
+ range: {
111
+ start: Path;
112
+ end: Path;
113
+ };
114
114
  }
115
115
  export interface MarkedRemoveData {
116
- type: 'markedRemove';
117
- range: {
118
- start: Path;
119
- end: Path;
120
- };
116
+ type: "markedRemove";
117
+ range: {
118
+ start: Path;
119
+ end: Path;
120
+ };
121
121
  }
122
122
  export type OperationData = InsertOperationData | RemoveOperationData | SplitOperationData | MergeOperationData | RenameOperationData | AttributeOperationData | MarkerOperationData | UnwrapOperationData | WrapOperationData | MarkedRemoveData;
123
123
  export type ModelToken = ModelElementToken | ModelTextToken;
124
124
  export interface ModelElementToken {
125
- type: 'element';
126
- element: ModelElement;
127
- elementId: string;
128
- /**
129
- * Elements category.
130
- *
131
- * Describes how the element behaves and how it can change. It is used when comparing lists of model tokens to create a better diff.
132
- *
133
- * * `block` - elements like paragraphs, lists, or headings. Can be renamed. Can be created by splitting. Can be removed by merging.
134
- * Its contents can be "moved around" by splitting or merging.
135
- *
136
- * * `container` - elements like blockquote. Cannot be renamed. Can be created by wrapping. Can be removed by unwrapping. Can be
137
- * "resized" by having other elements be moved into or out of them.
138
- *
139
- * * `solid` - limit-like elements like table or image. Cannot be renamed, split or merged. Can be added by insertion and removed by
140
- * deletion. If added or removed, all their content also should be treated as added or removed.
141
- */
142
- category: 'block' | 'container' | 'solid';
143
- isStart: boolean;
144
- limitId: string;
125
+ type: "element";
126
+ element: ModelElement;
127
+ elementId: string;
128
+ /**
129
+ * Elements category.
130
+ *
131
+ * Describes how the element behaves and how it can change. It is used when comparing lists of model tokens to create a better diff.
132
+ *
133
+ * * `block` - elements like paragraphs, lists, or headings. Can be renamed. Can be created by splitting. Can be removed by merging.
134
+ * Its contents can be "moved around" by splitting or merging.
135
+ *
136
+ * * `container` - elements like blockquote. Cannot be renamed. Can be created by wrapping. Can be removed by unwrapping. Can be
137
+ * "resized" by having other elements be moved into or out of them.
138
+ *
139
+ * * `solid` - limit-like elements like table or image. Cannot be renamed, split or merged. Can be added by insertion and removed by
140
+ * deletion. If added or removed, all their content also should be treated as added or removed.
141
+ */
142
+ category: "block" | "container" | "solid";
143
+ isStart: boolean;
144
+ limitId: string;
145
145
  }
146
146
  export interface ModelTextToken {
147
- type: 'text';
148
- data: string;
149
- parent: ModelElement | ModelDocumentFragment;
150
- offset: number;
151
- limitId: string;
147
+ type: "text";
148
+ data: string;
149
+ parent: ModelElement | ModelDocumentFragment;
150
+ offset: number;
151
+ limitId: string;
152
152
  }
153
153
  export type Path = Array<number>;
@@ -144,6 +144,52 @@
144
144
  max-height:19px;
145
145
  }
146
146
 
147
+ .ck.ck-pill{
148
+ --ck-pill-icon-size:12px;
149
+ --ck-pill-radius:9999px;
150
+ --ck-pill-line-height:var(--ck-pill-icon-size);
151
+ --ck-pill-padding-block:var(--ck-spacing-small);
152
+ --ck-pill-padding-inline:var(--ck-spacing-standard);
153
+ --ck-pill-gap:var(--ck-spacing-small);
154
+ --ck-pill-font-size:var(--ck-font-size-small);
155
+ --ck-pill-background:var(--ck-color-button-default-hover-background);
156
+ --ck-pill-color:var(--ck-color-text);
157
+ align-items:center;
158
+ gap:var(--ck-pill-gap);
159
+ padding:var(--ck-pill-padding-block) var(--ck-pill-padding-inline);
160
+ border-radius:var(--ck-pill-radius);
161
+ background:var(--ck-pill-background);
162
+ color:var(--ck-pill-color);
163
+ font-size:var(--ck-pill-font-size);
164
+ line-height:var(--ck-pill-line-height);
165
+ white-space:nowrap;
166
+ cursor:default;
167
+ display:inline-flex;
168
+ }
169
+
170
+ .ck.ck-pill.ck-pill_icon-right{
171
+ flex-direction:row-reverse;
172
+ }
173
+
174
+ .ck.ck-pill .ck-pill__icon{
175
+ flex:0 0 var(--ck-pill-icon-size);
176
+ width:var(--ck-pill-icon-size);
177
+ height:var(--ck-pill-icon-size);
178
+ display:inline-flex;
179
+ }
180
+
181
+ .ck.ck-pill .ck-pill__icon svg{
182
+ width:100%;
183
+ height:100%;
184
+ }
185
+
186
+ .ck.ck-pill .ck-pill__label{
187
+ color:inherit;
188
+ font-size:inherit;
189
+ line-height:inherit;
190
+ display:inline-block;
191
+ }
192
+
147
193
  .ck.ck-button.ck-confirm-view-submit{
148
194
  color:var(--ck-color-button-save);
149
195
  }
@@ -190,6 +236,9 @@
190
236
  --ck-color-suggestion-box-deletion-border:#d85a79;
191
237
  --ck-color-suggestion-box-insertion-border:#5ad86b;
192
238
  --ck-color-suggestion-box-format-border:#5ac1d8;
239
+ --ck-color-suggestion-ai-accent:#743ccd;
240
+ --ck-color-suggestion-ai-accent-background:#f2ebff;
241
+ --ck-suggestion-ai-author-icon-size:18px;
193
242
  }
194
243
 
195
244
  .ck .ck-suggestion{
@@ -271,6 +320,37 @@
271
320
  border-left-color:var(--ck-color-suggestion-box-format-border);
272
321
  }
273
322
 
323
+ .ck.ck-pill.ck-pill_ai{
324
+ --ck-pill-background:var(--ck-color-suggestion-ai-accent-background);
325
+ --ck-pill-color:var(--ck-color-suggestion-ai-accent);
326
+ --ck-pill-font-size:calc(var(--ck-font-size-base) * .9);
327
+ --ck-pill-line-height:1em;
328
+ --ck-pill-padding-block:calc(var(--ck-font-size-base) * .3);
329
+ --ck-pill-padding-inline:calc(var(--ck-font-size-base) * .6);
330
+ --ck-pill-gap:calc(var(--ck-font-size-base) * .3);
331
+ }
332
+
333
+ .ck .ck-user[data-user-id="ck-ai-author"] .ck-user__img.ck-user__avatar{
334
+ background-color:var(--ck-color-base-foreground);
335
+ box-shadow:0 0 0 1.5px var(--ck-color-suggestion-ai-accent);
336
+ color:var(--ck-color-suggestion-ai-accent);
337
+ justify-content:center;
338
+ align-items:center;
339
+ display:flex;
340
+ }
341
+
342
+ .ck .ck-user[data-user-id="ck-ai-author"] .ck-user__avatar-icon{
343
+ width:var(--ck-suggestion-ai-author-icon-size);
344
+ height:var(--ck-suggestion-ai-author-icon-size);
345
+ }
346
+
347
+ .ck .ck-suggestion__ai-source-pill{
348
+ margin-top:var(--ck-spacing-small);
349
+ grid-column:1 / -1;
350
+ justify-content:flex-end;
351
+ display:flex;
352
+ }
353
+
274
354
  :root{
275
355
  --ck-color-suggestion-marker-insertion-border:#1eae3159;
276
356
  --ck-color-suggestion-marker-insertion-border-active:#126d1f80;
package/dist/index.css CHANGED
@@ -144,6 +144,52 @@
144
144
  max-height: 19px;
145
145
  }
146
146
 
147
+ .ck.ck-pill {
148
+ --ck-pill-icon-size: 12px;
149
+ --ck-pill-radius: 9999px;
150
+ --ck-pill-line-height: var(--ck-pill-icon-size);
151
+ --ck-pill-padding-block: var(--ck-spacing-small);
152
+ --ck-pill-padding-inline: var(--ck-spacing-standard);
153
+ --ck-pill-gap: var(--ck-spacing-small);
154
+ --ck-pill-font-size: var(--ck-font-size-small);
155
+ --ck-pill-background: var(--ck-color-button-default-hover-background);
156
+ --ck-pill-color: var(--ck-color-text);
157
+ align-items: center;
158
+ gap: var(--ck-pill-gap);
159
+ padding: var(--ck-pill-padding-block) var(--ck-pill-padding-inline);
160
+ border-radius: var(--ck-pill-radius);
161
+ background: var(--ck-pill-background);
162
+ color: var(--ck-pill-color);
163
+ font-size: var(--ck-pill-font-size);
164
+ line-height: var(--ck-pill-line-height);
165
+ white-space: nowrap;
166
+ cursor: default;
167
+ display: inline-flex;
168
+ }
169
+
170
+ .ck.ck-pill.ck-pill_icon-right {
171
+ flex-direction: row-reverse;
172
+ }
173
+
174
+ .ck.ck-pill .ck-pill__icon {
175
+ flex: 0 0 var(--ck-pill-icon-size);
176
+ width: var(--ck-pill-icon-size);
177
+ height: var(--ck-pill-icon-size);
178
+ display: inline-flex;
179
+ }
180
+
181
+ .ck.ck-pill .ck-pill__icon svg {
182
+ width: 100%;
183
+ height: 100%;
184
+ }
185
+
186
+ .ck.ck-pill .ck-pill__label {
187
+ color: inherit;
188
+ font-size: inherit;
189
+ line-height: inherit;
190
+ display: inline-block;
191
+ }
192
+
147
193
  .ck.ck-button.ck-confirm-view-submit {
148
194
  color: var(--ck-color-button-save);
149
195
  }
@@ -190,6 +236,9 @@
190
236
  --ck-color-suggestion-box-deletion-border: #d85a79;
191
237
  --ck-color-suggestion-box-insertion-border: #5ad86b;
192
238
  --ck-color-suggestion-box-format-border: #5ac1d8;
239
+ --ck-color-suggestion-ai-accent: #743ccd;
240
+ --ck-color-suggestion-ai-accent-background: #f2ebff;
241
+ --ck-suggestion-ai-author-icon-size: 18px;
193
242
  }
194
243
 
195
244
  .ck .ck-suggestion {
@@ -271,6 +320,37 @@
271
320
  border-left-color: var(--ck-color-suggestion-box-format-border);
272
321
  }
273
322
 
323
+ .ck.ck-pill.ck-pill_ai {
324
+ --ck-pill-background: var(--ck-color-suggestion-ai-accent-background);
325
+ --ck-pill-color: var(--ck-color-suggestion-ai-accent);
326
+ --ck-pill-font-size: calc(var(--ck-font-size-base) * .9);
327
+ --ck-pill-line-height: 1em;
328
+ --ck-pill-padding-block: calc(var(--ck-font-size-base) * .3);
329
+ --ck-pill-padding-inline: calc(var(--ck-font-size-base) * .6);
330
+ --ck-pill-gap: calc(var(--ck-font-size-base) * .3);
331
+ }
332
+
333
+ .ck .ck-user[data-user-id="ck-ai-author"] .ck-user__img.ck-user__avatar {
334
+ background-color: var(--ck-color-base-foreground);
335
+ box-shadow: 0 0 0 1.5px var(--ck-color-suggestion-ai-accent);
336
+ color: var(--ck-color-suggestion-ai-accent);
337
+ justify-content: center;
338
+ align-items: center;
339
+ display: flex;
340
+ }
341
+
342
+ .ck .ck-user[data-user-id="ck-ai-author"] .ck-user__avatar-icon {
343
+ width: var(--ck-suggestion-ai-author-icon-size);
344
+ height: var(--ck-suggestion-ai-author-icon-size);
345
+ }
346
+
347
+ .ck .ck-suggestion__ai-source-pill {
348
+ margin-top: var(--ck-spacing-small);
349
+ grid-column: 1 / -1;
350
+ justify-content: flex-end;
351
+ display: flex;
352
+ }
353
+
274
354
  :root {
275
355
  --ck-color-suggestion-marker-insertion-border: #1eae3159;
276
356
  --ck-color-suggestion-marker-insertion-border-active: #126d1f80;
package/dist/index.d.ts CHANGED
@@ -1,28 +1,29 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
5
  /**
6
- * @module collaboration-core
7
- */
8
- export { Permissions } from './permissions.js';
9
- export { Users, User, CollaborationUserColor, type CollaborationUserData } from './users.js';
10
- export { UserView } from './users/view/userview.js';
11
- export { AriaDescriptionView } from './suggestions/view/ariadescriptionview.js';
12
- export { LateFocusButtonView, LateFocusDropdownButtonView } from './suggestions/view/latefocusbuttonview.js';
13
- export { SuggestionsConversion } from './suggestions/suggestionsconversion.js';
14
- export { getDateTimeFormatter } from './utils/getdatetimeformatter.js';
15
- export { getMarkerDomElement, getAllMarkersDomElementsSorted } from './utils/getmarkerdomelement.js';
16
- export { trimHtml } from './utils/trim-html.js';
17
- export { ConfirmMixin, type ConfirmApi, type RemoveConfirmEvent } from './utils/confirmmixin.js';
18
- export { hashObject } from './utils/hashobject.js';
19
- export { sanitizeEditorConfig } from './utils/sanitizeeditorconfig.js';
20
- export { surroundingMarkersDetector } from './utils/surroundingmarkersdetector.js';
21
- export { setupThreadKeyboardNavigation, FOCUS_ANNOTATION_KEYSTROKE, type ThreadEscapeEvent, type ThreadArrowUpEvent, type ThreadArrowDownEvent } from './utils/setupthreadkeyboardnavigation.js';
22
- export { splitSuggestionMarkerName, fixElementSuggestionRange } from './utils/suggestionmarkerutils.js';
23
- export { DocumentCompare, DATA_ID_MODEL_ATTRIBUTE, DATA_ID_VIEW_ATTRIBUTE, type DocumentCompareOptions, DocumentDiff, type OperationData, type InsertOperationData, type RemoveOperationData, type SplitOperationData, type MergeOperationData, type RenameOperationData, type AttributeOperationData, type MarkerOperationData, type UnwrapOperationData, type WrapOperationData, type MarkedRemoveData, type ModelToken, type ModelElementToken, type ModelTextToken, type Path } from './documentcompare.js';
24
- export type { CollaborationOperation, InsertCollaborationOperation, SplitCollaborationOperation, MarkerCollaborationOperation, MoveCollaborationOperation, MergeCollaborationOperation, RootCollaborationOperation, RootAttributeCollaborationOperation } from './collaborationoperation.js';
25
- export type { CollaborationHistory } from './collaborationhistory.js';
26
- export type { LocaleConfig, RealTimeCollaborationConfig, CollaborationUsersConfig } from './config.js';
27
- import './suggestionstyles.js';
28
- import './augmentation.js';
6
+ * @module collaboration-core
7
+ */
8
+ export { Permissions } from "./permissions.js";
9
+ export { Users, User, CollaborationUserColor, type CollaborationUserData } from "./users.js";
10
+ export { UserView } from "./users/view/userview.js";
11
+ export { PillView } from "./ui/pillview.js";
12
+ export { AriaDescriptionView } from "./suggestions/view/ariadescriptionview.js";
13
+ export { LateFocusButtonView, LateFocusDropdownButtonView } from "./suggestions/view/latefocusbuttonview.js";
14
+ export { SuggestionsConversion } from "./suggestions/suggestionsconversion.js";
15
+ export { getDateTimeFormatter } from "./utils/getdatetimeformatter.js";
16
+ export { getMarkerDomElement, getAllMarkersDomElementsSorted } from "./utils/getmarkerdomelement.js";
17
+ export { trimHtml } from "./utils/trim-html.js";
18
+ export { ConfirmMixin, type ConfirmApi, type ConfirmMixinConstructor, type RemoveConfirmEvent } from "./utils/confirmmixin.js";
19
+ export { hashObject } from "./utils/hashobject.js";
20
+ export { sanitizeEditorConfig } from "./utils/sanitizeeditorconfig.js";
21
+ export { surroundingMarkersDetector } from "./utils/surroundingmarkersdetector.js";
22
+ export { setupThreadKeyboardNavigation, FOCUS_ANNOTATION_KEYSTROKE, type ThreadEscapeEvent, type ThreadArrowUpEvent, type ThreadArrowDownEvent } from "./utils/setupthreadkeyboardnavigation.js";
23
+ export { splitSuggestionMarkerName, fixElementSuggestionRange } from "./utils/suggestionmarkerutils.js";
24
+ export { DocumentCompare, DATA_ID_MODEL_ATTRIBUTE, DATA_ID_VIEW_ATTRIBUTE, type DocumentCompareOptions, DocumentDiff, type OperationData, type InsertOperationData, type RemoveOperationData, type SplitOperationData, type MergeOperationData, type RenameOperationData, type AttributeOperationData, type MarkerOperationData, type UnwrapOperationData, type WrapOperationData, type MarkedRemoveData, type ModelToken, type ModelElementToken, type ModelTextToken, type Path } from "./documentcompare.js";
25
+ export type { CollaborationOperation, InsertCollaborationOperation, SplitCollaborationOperation, MarkerCollaborationOperation, MoveCollaborationOperation, MergeCollaborationOperation, RootCollaborationOperation, RootAttributeCollaborationOperation } from "./collaborationoperation.js";
26
+ export type { CollaborationHistory } from "./collaborationhistory.js";
27
+ export type { LocaleConfig, RealTimeCollaborationConfig, CollaborationUsersConfig } from "./config.js";
28
+ import "./suggestionstyles.js";
29
+ import "./augmentation.js";