@ckeditor/ckeditor5-block-quote 0.0.0-internal-20241017.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 (346) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/LICENSE.md +17 -0
  3. package/README.md +26 -0
  4. package/build/block-quote.js +5 -0
  5. package/build/translations/af.js +1 -0
  6. package/build/translations/ar.js +1 -0
  7. package/build/translations/az.js +1 -0
  8. package/build/translations/bg.js +1 -0
  9. package/build/translations/bn.js +1 -0
  10. package/build/translations/bs.js +1 -0
  11. package/build/translations/ca.js +1 -0
  12. package/build/translations/cs.js +1 -0
  13. package/build/translations/da.js +1 -0
  14. package/build/translations/de-ch.js +1 -0
  15. package/build/translations/de.js +1 -0
  16. package/build/translations/el.js +1 -0
  17. package/build/translations/en-au.js +1 -0
  18. package/build/translations/en-gb.js +1 -0
  19. package/build/translations/es-co.js +1 -0
  20. package/build/translations/es.js +1 -0
  21. package/build/translations/et.js +1 -0
  22. package/build/translations/eu.js +1 -0
  23. package/build/translations/fa.js +1 -0
  24. package/build/translations/fi.js +1 -0
  25. package/build/translations/fr.js +1 -0
  26. package/build/translations/gl.js +1 -0
  27. package/build/translations/gu.js +1 -0
  28. package/build/translations/he.js +1 -0
  29. package/build/translations/hi.js +1 -0
  30. package/build/translations/hr.js +1 -0
  31. package/build/translations/hu.js +1 -0
  32. package/build/translations/id.js +1 -0
  33. package/build/translations/it.js +1 -0
  34. package/build/translations/ja.js +1 -0
  35. package/build/translations/km.js +1 -0
  36. package/build/translations/kn.js +1 -0
  37. package/build/translations/ko.js +1 -0
  38. package/build/translations/ku.js +1 -0
  39. package/build/translations/lt.js +1 -0
  40. package/build/translations/lv.js +1 -0
  41. package/build/translations/ms.js +1 -0
  42. package/build/translations/nb.js +1 -0
  43. package/build/translations/ne.js +1 -0
  44. package/build/translations/nl.js +1 -0
  45. package/build/translations/no.js +1 -0
  46. package/build/translations/pl.js +1 -0
  47. package/build/translations/pt-br.js +1 -0
  48. package/build/translations/pt.js +1 -0
  49. package/build/translations/ro.js +1 -0
  50. package/build/translations/ru.js +1 -0
  51. package/build/translations/sk.js +1 -0
  52. package/build/translations/sl.js +1 -0
  53. package/build/translations/sq.js +1 -0
  54. package/build/translations/sr-latn.js +1 -0
  55. package/build/translations/sr.js +1 -0
  56. package/build/translations/sv.js +1 -0
  57. package/build/translations/th.js +1 -0
  58. package/build/translations/tk.js +1 -0
  59. package/build/translations/tr.js +1 -0
  60. package/build/translations/ug.js +1 -0
  61. package/build/translations/uk.js +1 -0
  62. package/build/translations/ur.js +1 -0
  63. package/build/translations/uz.js +1 -0
  64. package/build/translations/vi.js +1 -0
  65. package/build/translations/zh-cn.js +1 -0
  66. package/build/translations/zh.js +1 -0
  67. package/ckeditor5-metadata.json +23 -0
  68. package/dist/augmentation.d.ts +19 -0
  69. package/dist/blockquote.d.ts +38 -0
  70. package/dist/blockquotecommand.d.ts +65 -0
  71. package/dist/blockquoteediting.d.ts +39 -0
  72. package/dist/blockquoteui.d.ts +38 -0
  73. package/dist/index-content.css +19 -0
  74. package/dist/index-editor.css +4 -0
  75. package/dist/index.css +29 -0
  76. package/dist/index.css.map +1 -0
  77. package/dist/index.d.ts +16 -0
  78. package/dist/index.js +373 -0
  79. package/dist/index.js.map +1 -0
  80. package/dist/translations/af.d.ts +8 -0
  81. package/dist/translations/af.js +5 -0
  82. package/dist/translations/af.umd.js +11 -0
  83. package/dist/translations/ar.d.ts +8 -0
  84. package/dist/translations/ar.js +5 -0
  85. package/dist/translations/ar.umd.js +11 -0
  86. package/dist/translations/az.d.ts +8 -0
  87. package/dist/translations/az.js +5 -0
  88. package/dist/translations/az.umd.js +11 -0
  89. package/dist/translations/bg.d.ts +8 -0
  90. package/dist/translations/bg.js +5 -0
  91. package/dist/translations/bg.umd.js +11 -0
  92. package/dist/translations/bn.d.ts +8 -0
  93. package/dist/translations/bn.js +5 -0
  94. package/dist/translations/bn.umd.js +11 -0
  95. package/dist/translations/bs.d.ts +8 -0
  96. package/dist/translations/bs.js +5 -0
  97. package/dist/translations/bs.umd.js +11 -0
  98. package/dist/translations/ca.d.ts +8 -0
  99. package/dist/translations/ca.js +5 -0
  100. package/dist/translations/ca.umd.js +11 -0
  101. package/dist/translations/cs.d.ts +8 -0
  102. package/dist/translations/cs.js +5 -0
  103. package/dist/translations/cs.umd.js +11 -0
  104. package/dist/translations/da.d.ts +8 -0
  105. package/dist/translations/da.js +5 -0
  106. package/dist/translations/da.umd.js +11 -0
  107. package/dist/translations/de-ch.d.ts +8 -0
  108. package/dist/translations/de-ch.js +5 -0
  109. package/dist/translations/de-ch.umd.js +11 -0
  110. package/dist/translations/de.d.ts +8 -0
  111. package/dist/translations/de.js +5 -0
  112. package/dist/translations/de.umd.js +11 -0
  113. package/dist/translations/el.d.ts +8 -0
  114. package/dist/translations/el.js +5 -0
  115. package/dist/translations/el.umd.js +11 -0
  116. package/dist/translations/en-au.d.ts +8 -0
  117. package/dist/translations/en-au.js +5 -0
  118. package/dist/translations/en-au.umd.js +11 -0
  119. package/dist/translations/en-gb.d.ts +8 -0
  120. package/dist/translations/en-gb.js +5 -0
  121. package/dist/translations/en-gb.umd.js +11 -0
  122. package/dist/translations/en.d.ts +8 -0
  123. package/dist/translations/en.js +5 -0
  124. package/dist/translations/en.umd.js +11 -0
  125. package/dist/translations/es-co.d.ts +8 -0
  126. package/dist/translations/es-co.js +5 -0
  127. package/dist/translations/es-co.umd.js +11 -0
  128. package/dist/translations/es.d.ts +8 -0
  129. package/dist/translations/es.js +5 -0
  130. package/dist/translations/es.umd.js +11 -0
  131. package/dist/translations/et.d.ts +8 -0
  132. package/dist/translations/et.js +5 -0
  133. package/dist/translations/et.umd.js +11 -0
  134. package/dist/translations/eu.d.ts +8 -0
  135. package/dist/translations/eu.js +5 -0
  136. package/dist/translations/eu.umd.js +11 -0
  137. package/dist/translations/fa.d.ts +8 -0
  138. package/dist/translations/fa.js +5 -0
  139. package/dist/translations/fa.umd.js +11 -0
  140. package/dist/translations/fi.d.ts +8 -0
  141. package/dist/translations/fi.js +5 -0
  142. package/dist/translations/fi.umd.js +11 -0
  143. package/dist/translations/fr.d.ts +8 -0
  144. package/dist/translations/fr.js +5 -0
  145. package/dist/translations/fr.umd.js +11 -0
  146. package/dist/translations/gl.d.ts +8 -0
  147. package/dist/translations/gl.js +5 -0
  148. package/dist/translations/gl.umd.js +11 -0
  149. package/dist/translations/gu.d.ts +8 -0
  150. package/dist/translations/gu.js +5 -0
  151. package/dist/translations/gu.umd.js +11 -0
  152. package/dist/translations/he.d.ts +8 -0
  153. package/dist/translations/he.js +5 -0
  154. package/dist/translations/he.umd.js +11 -0
  155. package/dist/translations/hi.d.ts +8 -0
  156. package/dist/translations/hi.js +5 -0
  157. package/dist/translations/hi.umd.js +11 -0
  158. package/dist/translations/hr.d.ts +8 -0
  159. package/dist/translations/hr.js +5 -0
  160. package/dist/translations/hr.umd.js +11 -0
  161. package/dist/translations/hu.d.ts +8 -0
  162. package/dist/translations/hu.js +5 -0
  163. package/dist/translations/hu.umd.js +11 -0
  164. package/dist/translations/id.d.ts +8 -0
  165. package/dist/translations/id.js +5 -0
  166. package/dist/translations/id.umd.js +11 -0
  167. package/dist/translations/it.d.ts +8 -0
  168. package/dist/translations/it.js +5 -0
  169. package/dist/translations/it.umd.js +11 -0
  170. package/dist/translations/ja.d.ts +8 -0
  171. package/dist/translations/ja.js +5 -0
  172. package/dist/translations/ja.umd.js +11 -0
  173. package/dist/translations/km.d.ts +8 -0
  174. package/dist/translations/km.js +5 -0
  175. package/dist/translations/km.umd.js +11 -0
  176. package/dist/translations/kn.d.ts +8 -0
  177. package/dist/translations/kn.js +5 -0
  178. package/dist/translations/kn.umd.js +11 -0
  179. package/dist/translations/ko.d.ts +8 -0
  180. package/dist/translations/ko.js +5 -0
  181. package/dist/translations/ko.umd.js +11 -0
  182. package/dist/translations/ku.d.ts +8 -0
  183. package/dist/translations/ku.js +5 -0
  184. package/dist/translations/ku.umd.js +11 -0
  185. package/dist/translations/lt.d.ts +8 -0
  186. package/dist/translations/lt.js +5 -0
  187. package/dist/translations/lt.umd.js +11 -0
  188. package/dist/translations/lv.d.ts +8 -0
  189. package/dist/translations/lv.js +5 -0
  190. package/dist/translations/lv.umd.js +11 -0
  191. package/dist/translations/ms.d.ts +8 -0
  192. package/dist/translations/ms.js +5 -0
  193. package/dist/translations/ms.umd.js +11 -0
  194. package/dist/translations/nb.d.ts +8 -0
  195. package/dist/translations/nb.js +5 -0
  196. package/dist/translations/nb.umd.js +11 -0
  197. package/dist/translations/ne.d.ts +8 -0
  198. package/dist/translations/ne.js +5 -0
  199. package/dist/translations/ne.umd.js +11 -0
  200. package/dist/translations/nl.d.ts +8 -0
  201. package/dist/translations/nl.js +5 -0
  202. package/dist/translations/nl.umd.js +11 -0
  203. package/dist/translations/no.d.ts +8 -0
  204. package/dist/translations/no.js +5 -0
  205. package/dist/translations/no.umd.js +11 -0
  206. package/dist/translations/pl.d.ts +8 -0
  207. package/dist/translations/pl.js +5 -0
  208. package/dist/translations/pl.umd.js +11 -0
  209. package/dist/translations/pt-br.d.ts +8 -0
  210. package/dist/translations/pt-br.js +5 -0
  211. package/dist/translations/pt-br.umd.js +11 -0
  212. package/dist/translations/pt.d.ts +8 -0
  213. package/dist/translations/pt.js +5 -0
  214. package/dist/translations/pt.umd.js +11 -0
  215. package/dist/translations/ro.d.ts +8 -0
  216. package/dist/translations/ro.js +5 -0
  217. package/dist/translations/ro.umd.js +11 -0
  218. package/dist/translations/ru.d.ts +8 -0
  219. package/dist/translations/ru.js +5 -0
  220. package/dist/translations/ru.umd.js +11 -0
  221. package/dist/translations/sk.d.ts +8 -0
  222. package/dist/translations/sk.js +5 -0
  223. package/dist/translations/sk.umd.js +11 -0
  224. package/dist/translations/sl.d.ts +8 -0
  225. package/dist/translations/sl.js +5 -0
  226. package/dist/translations/sl.umd.js +11 -0
  227. package/dist/translations/sq.d.ts +8 -0
  228. package/dist/translations/sq.js +5 -0
  229. package/dist/translations/sq.umd.js +11 -0
  230. package/dist/translations/sr-latn.d.ts +8 -0
  231. package/dist/translations/sr-latn.js +5 -0
  232. package/dist/translations/sr-latn.umd.js +11 -0
  233. package/dist/translations/sr.d.ts +8 -0
  234. package/dist/translations/sr.js +5 -0
  235. package/dist/translations/sr.umd.js +11 -0
  236. package/dist/translations/sv.d.ts +8 -0
  237. package/dist/translations/sv.js +5 -0
  238. package/dist/translations/sv.umd.js +11 -0
  239. package/dist/translations/th.d.ts +8 -0
  240. package/dist/translations/th.js +5 -0
  241. package/dist/translations/th.umd.js +11 -0
  242. package/dist/translations/tk.d.ts +8 -0
  243. package/dist/translations/tk.js +5 -0
  244. package/dist/translations/tk.umd.js +11 -0
  245. package/dist/translations/tr.d.ts +8 -0
  246. package/dist/translations/tr.js +5 -0
  247. package/dist/translations/tr.umd.js +11 -0
  248. package/dist/translations/ug.d.ts +8 -0
  249. package/dist/translations/ug.js +5 -0
  250. package/dist/translations/ug.umd.js +11 -0
  251. package/dist/translations/uk.d.ts +8 -0
  252. package/dist/translations/uk.js +5 -0
  253. package/dist/translations/uk.umd.js +11 -0
  254. package/dist/translations/ur.d.ts +8 -0
  255. package/dist/translations/ur.js +5 -0
  256. package/dist/translations/ur.umd.js +11 -0
  257. package/dist/translations/uz.d.ts +8 -0
  258. package/dist/translations/uz.js +5 -0
  259. package/dist/translations/uz.umd.js +11 -0
  260. package/dist/translations/vi.d.ts +8 -0
  261. package/dist/translations/vi.js +5 -0
  262. package/dist/translations/vi.umd.js +11 -0
  263. package/dist/translations/zh-cn.d.ts +8 -0
  264. package/dist/translations/zh-cn.js +5 -0
  265. package/dist/translations/zh-cn.umd.js +11 -0
  266. package/dist/translations/zh.d.ts +8 -0
  267. package/dist/translations/zh.js +5 -0
  268. package/dist/translations/zh.umd.js +11 -0
  269. package/lang/contexts.json +3 -0
  270. package/lang/translations/af.po +22 -0
  271. package/lang/translations/ar.po +22 -0
  272. package/lang/translations/az.po +22 -0
  273. package/lang/translations/bg.po +22 -0
  274. package/lang/translations/bn.po +22 -0
  275. package/lang/translations/bs.po +22 -0
  276. package/lang/translations/ca.po +22 -0
  277. package/lang/translations/cs.po +22 -0
  278. package/lang/translations/da.po +22 -0
  279. package/lang/translations/de-ch.po +22 -0
  280. package/lang/translations/de.po +22 -0
  281. package/lang/translations/el.po +22 -0
  282. package/lang/translations/en-au.po +22 -0
  283. package/lang/translations/en-gb.po +22 -0
  284. package/lang/translations/en.po +22 -0
  285. package/lang/translations/es-co.po +22 -0
  286. package/lang/translations/es.po +22 -0
  287. package/lang/translations/et.po +22 -0
  288. package/lang/translations/eu.po +22 -0
  289. package/lang/translations/fa.po +22 -0
  290. package/lang/translations/fi.po +22 -0
  291. package/lang/translations/fr.po +22 -0
  292. package/lang/translations/gl.po +22 -0
  293. package/lang/translations/gu.po +22 -0
  294. package/lang/translations/he.po +22 -0
  295. package/lang/translations/hi.po +22 -0
  296. package/lang/translations/hr.po +22 -0
  297. package/lang/translations/hu.po +22 -0
  298. package/lang/translations/id.po +22 -0
  299. package/lang/translations/it.po +22 -0
  300. package/lang/translations/ja.po +22 -0
  301. package/lang/translations/km.po +22 -0
  302. package/lang/translations/kn.po +22 -0
  303. package/lang/translations/ko.po +22 -0
  304. package/lang/translations/ku.po +22 -0
  305. package/lang/translations/lt.po +22 -0
  306. package/lang/translations/lv.po +22 -0
  307. package/lang/translations/ms.po +22 -0
  308. package/lang/translations/nb.po +22 -0
  309. package/lang/translations/ne.po +22 -0
  310. package/lang/translations/nl.po +22 -0
  311. package/lang/translations/no.po +22 -0
  312. package/lang/translations/pl.po +22 -0
  313. package/lang/translations/pt-br.po +22 -0
  314. package/lang/translations/pt.po +22 -0
  315. package/lang/translations/ro.po +22 -0
  316. package/lang/translations/ru.po +22 -0
  317. package/lang/translations/sk.po +22 -0
  318. package/lang/translations/sl.po +22 -0
  319. package/lang/translations/sq.po +22 -0
  320. package/lang/translations/sr-latn.po +22 -0
  321. package/lang/translations/sr.po +22 -0
  322. package/lang/translations/sv.po +22 -0
  323. package/lang/translations/th.po +22 -0
  324. package/lang/translations/tk.po +22 -0
  325. package/lang/translations/tr.po +22 -0
  326. package/lang/translations/ug.po +22 -0
  327. package/lang/translations/uk.po +22 -0
  328. package/lang/translations/ur.po +22 -0
  329. package/lang/translations/uz.po +22 -0
  330. package/lang/translations/vi.po +22 -0
  331. package/lang/translations/zh-cn.po +22 -0
  332. package/lang/translations/zh.po +22 -0
  333. package/package.json +43 -0
  334. package/src/augmentation.d.ts +15 -0
  335. package/src/augmentation.js +5 -0
  336. package/src/blockquote.d.ts +34 -0
  337. package/src/blockquote.js +40 -0
  338. package/src/blockquotecommand.d.ts +61 -0
  339. package/src/blockquotecommand.js +172 -0
  340. package/src/blockquoteediting.d.ts +35 -0
  341. package/src/blockquoteediting.js +124 -0
  342. package/src/blockquoteui.d.ts +34 -0
  343. package/src/blockquoteui.js +74 -0
  344. package/src/index.d.ts +12 -0
  345. package/src/index.js +11 -0
  346. package/theme/blockquote.css +23 -0
@@ -0,0 +1,124 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module block-quote/blockquoteediting
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core.js';
9
+ import { Enter } from 'ckeditor5/src/enter.js';
10
+ import { Delete } from 'ckeditor5/src/typing.js';
11
+ import BlockQuoteCommand from './blockquotecommand.js';
12
+ /**
13
+ * The block quote editing.
14
+ *
15
+ * Introduces the `'blockQuote'` command and the `'blockQuote'` model element.
16
+ *
17
+ * @extends module:core/plugin~Plugin
18
+ */
19
+ export default class BlockQuoteEditing extends Plugin {
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ static get pluginName() {
24
+ return 'BlockQuoteEditing';
25
+ }
26
+ /**
27
+ * @inheritDoc
28
+ */
29
+ static get isOfficialPlugin() {
30
+ return true;
31
+ }
32
+ /**
33
+ * @inheritDoc
34
+ */
35
+ static get requires() {
36
+ return [Enter, Delete];
37
+ }
38
+ /**
39
+ * @inheritDoc
40
+ */
41
+ init() {
42
+ const editor = this.editor;
43
+ const schema = editor.model.schema;
44
+ editor.commands.add('blockQuote', new BlockQuoteCommand(editor));
45
+ schema.register('blockQuote', {
46
+ inheritAllFrom: '$container'
47
+ });
48
+ editor.conversion.elementToElement({ model: 'blockQuote', view: 'blockquote' });
49
+ // Postfixer which cleans incorrect model states connected with block quotes.
50
+ editor.model.document.registerPostFixer(writer => {
51
+ const changes = editor.model.document.differ.getChanges();
52
+ for (const entry of changes) {
53
+ if (entry.type == 'insert') {
54
+ const element = entry.position.nodeAfter;
55
+ if (!element) {
56
+ // We are inside a text node.
57
+ continue;
58
+ }
59
+ if (element.is('element', 'blockQuote') && element.isEmpty) {
60
+ // Added an empty blockQuote - remove it.
61
+ writer.remove(element);
62
+ return true;
63
+ }
64
+ else if (element.is('element', 'blockQuote') && !schema.checkChild(entry.position, element)) {
65
+ // Added a blockQuote in incorrect place. Unwrap it so the content inside is not lost.
66
+ writer.unwrap(element);
67
+ return true;
68
+ }
69
+ else if (element.is('element')) {
70
+ // Just added an element. Check that all children meet the scheme rules.
71
+ const range = writer.createRangeIn(element);
72
+ for (const child of range.getItems()) {
73
+ if (child.is('element', 'blockQuote') &&
74
+ !schema.checkChild(writer.createPositionBefore(child), child)) {
75
+ writer.unwrap(child);
76
+ return true;
77
+ }
78
+ }
79
+ }
80
+ }
81
+ else if (entry.type == 'remove') {
82
+ const parent = entry.position.parent;
83
+ if (parent.is('element', 'blockQuote') && parent.isEmpty) {
84
+ // Something got removed and now blockQuote is empty. Remove the blockQuote as well.
85
+ writer.remove(parent);
86
+ return true;
87
+ }
88
+ }
89
+ }
90
+ return false;
91
+ });
92
+ const viewDocument = this.editor.editing.view.document;
93
+ const selection = editor.model.document.selection;
94
+ const blockQuoteCommand = editor.commands.get('blockQuote');
95
+ // Overwrite default Enter key behavior.
96
+ // If Enter key is pressed with selection collapsed in empty block inside a quote, break the quote.
97
+ this.listenTo(viewDocument, 'enter', (evt, data) => {
98
+ if (!selection.isCollapsed || !blockQuoteCommand.value) {
99
+ return;
100
+ }
101
+ const positionParent = selection.getLastPosition().parent;
102
+ if (positionParent.isEmpty) {
103
+ editor.execute('blockQuote');
104
+ editor.editing.view.scrollToTheSelection();
105
+ data.preventDefault();
106
+ evt.stop();
107
+ }
108
+ }, { context: 'blockquote' });
109
+ // Overwrite default Backspace key behavior.
110
+ // If Backspace key is pressed with selection collapsed in first empty block inside a quote, break the quote.
111
+ this.listenTo(viewDocument, 'delete', (evt, data) => {
112
+ if (data.direction != 'backward' || !selection.isCollapsed || !blockQuoteCommand.value) {
113
+ return;
114
+ }
115
+ const positionParent = selection.getLastPosition().parent;
116
+ if (positionParent.isEmpty && !positionParent.previousSibling) {
117
+ editor.execute('blockQuote');
118
+ editor.editing.view.scrollToTheSelection();
119
+ data.preventDefault();
120
+ evt.stop();
121
+ }
122
+ }, { context: 'blockquote' });
123
+ }
124
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module block-quote/blockquoteui
7
+ */
8
+ import { Plugin } from 'ckeditor5/src/core.js';
9
+ import '../theme/blockquote.css';
10
+ /**
11
+ * The block quote UI plugin.
12
+ *
13
+ * It introduces the `'blockQuote'` button.
14
+ *
15
+ * @extends module:core/plugin~Plugin
16
+ */
17
+ export default class BlockQuoteUI extends Plugin {
18
+ /**
19
+ * @inheritDoc
20
+ */
21
+ static get pluginName(): "BlockQuoteUI";
22
+ /**
23
+ * @inheritDoc
24
+ */
25
+ static get isOfficialPlugin(): true;
26
+ /**
27
+ * @inheritDoc
28
+ */
29
+ init(): void;
30
+ /**
31
+ * Creates a button for block quote command to use either in toolbar or in menu bar.
32
+ */
33
+ private _createButton;
34
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module block-quote/blockquoteui
7
+ */
8
+ import { Plugin, icons } from 'ckeditor5/src/core.js';
9
+ import { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';
10
+ import '../theme/blockquote.css';
11
+ /**
12
+ * The block quote UI plugin.
13
+ *
14
+ * It introduces the `'blockQuote'` button.
15
+ *
16
+ * @extends module:core/plugin~Plugin
17
+ */
18
+ export default class BlockQuoteUI extends Plugin {
19
+ /**
20
+ * @inheritDoc
21
+ */
22
+ static get pluginName() {
23
+ return 'BlockQuoteUI';
24
+ }
25
+ /**
26
+ * @inheritDoc
27
+ */
28
+ static get isOfficialPlugin() {
29
+ return true;
30
+ }
31
+ /**
32
+ * @inheritDoc
33
+ */
34
+ init() {
35
+ const editor = this.editor;
36
+ editor.ui.componentFactory.add('blockQuote', () => {
37
+ const buttonView = this._createButton(ButtonView);
38
+ buttonView.set({
39
+ tooltip: true
40
+ });
41
+ return buttonView;
42
+ });
43
+ editor.ui.componentFactory.add('menuBar:blockQuote', () => {
44
+ const buttonView = this._createButton(MenuBarMenuListItemButtonView);
45
+ buttonView.set({
46
+ role: 'menuitemcheckbox'
47
+ });
48
+ return buttonView;
49
+ });
50
+ }
51
+ /**
52
+ * Creates a button for block quote command to use either in toolbar or in menu bar.
53
+ */
54
+ _createButton(ButtonClass) {
55
+ const editor = this.editor;
56
+ const locale = editor.locale;
57
+ const command = editor.commands.get('blockQuote');
58
+ const view = new ButtonClass(editor.locale);
59
+ const t = locale.t;
60
+ view.set({
61
+ label: t('Block quote'),
62
+ icon: icons.quote,
63
+ isToggleable: true
64
+ });
65
+ view.bind('isEnabled').to(command, 'isEnabled');
66
+ view.bind('isOn').to(command, 'value');
67
+ // Execute the command.
68
+ this.listenTo(view, 'execute', () => {
69
+ editor.execute('blockQuote');
70
+ editor.editing.view.focus();
71
+ });
72
+ return view;
73
+ }
74
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module block-quote
7
+ */
8
+ export { default as BlockQuote } from './blockquote.js';
9
+ export { default as BlockQuoteEditing } from './blockquoteediting.js';
10
+ export { default as BlockQuoteUI } from './blockquoteui.js';
11
+ export type { default as BlockQuoteCommand } from './blockquotecommand.js';
12
+ import './augmentation.js';
package/src/index.js ADDED
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module block-quote
7
+ */
8
+ export { default as BlockQuote } from './blockquote.js';
9
+ export { default as BlockQuoteEditing } from './blockquoteediting.js';
10
+ export { default as BlockQuoteUI } from './blockquoteui.js';
11
+ import './augmentation.js';
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+
6
+ .ck-content blockquote {
7
+ /* See #12 */
8
+ overflow: hidden;
9
+
10
+ /* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */
11
+ padding-right: 1.5em;
12
+ padding-left: 1.5em;
13
+
14
+ margin-left: 0;
15
+ margin-right: 0;
16
+ font-style: italic;
17
+ border-left: solid 5px hsl(0, 0%, 80%);
18
+ }
19
+
20
+ .ck-content[dir="rtl"] blockquote {
21
+ border-left: 0;
22
+ border-right: solid 5px hsl(0, 0%, 80%);
23
+ }