@ckeditor/ckeditor5-code-block 41.3.1 → 41.4.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 (303) hide show
  1. package/build/code-block.js +2 -2
  2. package/build/translations/af.js +1 -1
  3. package/build/translations/ar.js +1 -1
  4. package/build/translations/az.js +1 -1
  5. package/build/translations/bg.js +1 -1
  6. package/build/translations/bn.js +1 -1
  7. package/build/translations/bs.js +1 -1
  8. package/build/translations/ca.js +1 -1
  9. package/build/translations/cs.js +1 -1
  10. package/build/translations/da.js +1 -1
  11. package/build/translations/de-ch.js +1 -1
  12. package/build/translations/de.js +1 -1
  13. package/build/translations/el.js +1 -1
  14. package/build/translations/en-au.js +1 -1
  15. package/build/translations/es-co.js +1 -1
  16. package/build/translations/es.js +1 -1
  17. package/build/translations/et.js +1 -1
  18. package/build/translations/fa.js +1 -1
  19. package/build/translations/fi.js +1 -1
  20. package/build/translations/fr.js +1 -1
  21. package/build/translations/gl.js +1 -1
  22. package/build/translations/he.js +1 -1
  23. package/build/translations/hi.js +1 -1
  24. package/build/translations/hr.js +1 -1
  25. package/build/translations/hu.js +1 -1
  26. package/build/translations/id.js +1 -1
  27. package/build/translations/it.js +1 -1
  28. package/build/translations/ja.js +1 -1
  29. package/build/translations/jv.js +1 -1
  30. package/build/translations/ko.js +1 -1
  31. package/build/translations/ku.js +1 -1
  32. package/build/translations/lt.js +1 -1
  33. package/build/translations/lv.js +1 -1
  34. package/build/translations/ms.js +1 -1
  35. package/build/translations/nl.js +1 -1
  36. package/build/translations/no.js +1 -1
  37. package/build/translations/pl.js +1 -1
  38. package/build/translations/pt-br.js +1 -1
  39. package/build/translations/pt.js +1 -1
  40. package/build/translations/ro.js +1 -1
  41. package/build/translations/ru.js +1 -1
  42. package/build/translations/sk.js +1 -1
  43. package/build/translations/sq.js +1 -1
  44. package/build/translations/sr-latn.js +1 -1
  45. package/build/translations/sr.js +1 -1
  46. package/build/translations/sv.js +1 -1
  47. package/build/translations/th.js +1 -1
  48. package/build/translations/tk.js +1 -1
  49. package/build/translations/tr.js +1 -1
  50. package/build/translations/ug.js +1 -1
  51. package/build/translations/uk.js +1 -1
  52. package/build/translations/ur.js +1 -1
  53. package/build/translations/uz.js +1 -1
  54. package/build/translations/vi.js +1 -1
  55. package/build/translations/zh-cn.js +1 -1
  56. package/build/translations/zh.js +1 -1
  57. package/dist/index-content.css +22 -0
  58. package/dist/index-editor.css +11 -0
  59. package/dist/index.css +46 -0
  60. package/dist/index.css.map +1 -0
  61. package/dist/index.js +1348 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/translations/af.d.ts +8 -0
  64. package/dist/translations/af.js +5 -0
  65. package/dist/translations/af.umd.js +11 -0
  66. package/dist/translations/ar.d.ts +8 -0
  67. package/dist/translations/ar.js +5 -0
  68. package/dist/translations/ar.umd.js +11 -0
  69. package/dist/translations/az.d.ts +8 -0
  70. package/dist/translations/az.js +5 -0
  71. package/dist/translations/az.umd.js +11 -0
  72. package/dist/translations/bg.d.ts +8 -0
  73. package/dist/translations/bg.js +5 -0
  74. package/dist/translations/bg.umd.js +11 -0
  75. package/dist/translations/bn.d.ts +8 -0
  76. package/dist/translations/bn.js +5 -0
  77. package/dist/translations/bn.umd.js +11 -0
  78. package/dist/translations/bs.d.ts +8 -0
  79. package/dist/translations/bs.js +5 -0
  80. package/dist/translations/bs.umd.js +11 -0
  81. package/dist/translations/ca.d.ts +8 -0
  82. package/dist/translations/ca.js +5 -0
  83. package/dist/translations/ca.umd.js +11 -0
  84. package/dist/translations/cs.d.ts +8 -0
  85. package/dist/translations/cs.js +5 -0
  86. package/dist/translations/cs.umd.js +11 -0
  87. package/dist/translations/da.d.ts +8 -0
  88. package/dist/translations/da.js +5 -0
  89. package/dist/translations/da.umd.js +11 -0
  90. package/dist/translations/de-ch.d.ts +8 -0
  91. package/dist/translations/de-ch.js +5 -0
  92. package/dist/translations/de-ch.umd.js +11 -0
  93. package/dist/translations/de.d.ts +8 -0
  94. package/dist/translations/de.js +5 -0
  95. package/dist/translations/de.umd.js +11 -0
  96. package/dist/translations/el.d.ts +8 -0
  97. package/dist/translations/el.js +5 -0
  98. package/dist/translations/el.umd.js +11 -0
  99. package/dist/translations/en-au.d.ts +8 -0
  100. package/dist/translations/en-au.js +5 -0
  101. package/dist/translations/en-au.umd.js +11 -0
  102. package/dist/translations/en.d.ts +8 -0
  103. package/dist/translations/en.js +5 -0
  104. package/dist/translations/en.umd.js +11 -0
  105. package/dist/translations/es-co.d.ts +8 -0
  106. package/dist/translations/es-co.js +5 -0
  107. package/dist/translations/es-co.umd.js +11 -0
  108. package/dist/translations/es.d.ts +8 -0
  109. package/dist/translations/es.js +5 -0
  110. package/dist/translations/es.umd.js +11 -0
  111. package/dist/translations/et.d.ts +8 -0
  112. package/dist/translations/et.js +5 -0
  113. package/dist/translations/et.umd.js +11 -0
  114. package/dist/translations/fa.d.ts +8 -0
  115. package/dist/translations/fa.js +5 -0
  116. package/dist/translations/fa.umd.js +11 -0
  117. package/dist/translations/fi.d.ts +8 -0
  118. package/dist/translations/fi.js +5 -0
  119. package/dist/translations/fi.umd.js +11 -0
  120. package/dist/translations/fr.d.ts +8 -0
  121. package/dist/translations/fr.js +5 -0
  122. package/dist/translations/fr.umd.js +11 -0
  123. package/dist/translations/gl.d.ts +8 -0
  124. package/dist/translations/gl.js +5 -0
  125. package/dist/translations/gl.umd.js +11 -0
  126. package/dist/translations/he.d.ts +8 -0
  127. package/dist/translations/he.js +5 -0
  128. package/dist/translations/he.umd.js +11 -0
  129. package/dist/translations/hi.d.ts +8 -0
  130. package/dist/translations/hi.js +5 -0
  131. package/dist/translations/hi.umd.js +11 -0
  132. package/dist/translations/hr.d.ts +8 -0
  133. package/dist/translations/hr.js +5 -0
  134. package/dist/translations/hr.umd.js +11 -0
  135. package/dist/translations/hu.d.ts +8 -0
  136. package/dist/translations/hu.js +5 -0
  137. package/dist/translations/hu.umd.js +11 -0
  138. package/dist/translations/id.d.ts +8 -0
  139. package/dist/translations/id.js +5 -0
  140. package/dist/translations/id.umd.js +11 -0
  141. package/dist/translations/it.d.ts +8 -0
  142. package/dist/translations/it.js +5 -0
  143. package/dist/translations/it.umd.js +11 -0
  144. package/dist/translations/ja.d.ts +8 -0
  145. package/dist/translations/ja.js +5 -0
  146. package/dist/translations/ja.umd.js +11 -0
  147. package/dist/translations/jv.d.ts +8 -0
  148. package/dist/translations/jv.js +5 -0
  149. package/dist/translations/jv.umd.js +11 -0
  150. package/dist/translations/ko.d.ts +8 -0
  151. package/dist/translations/ko.js +5 -0
  152. package/dist/translations/ko.umd.js +11 -0
  153. package/dist/translations/ku.d.ts +8 -0
  154. package/dist/translations/ku.js +5 -0
  155. package/dist/translations/ku.umd.js +11 -0
  156. package/dist/translations/lt.d.ts +8 -0
  157. package/dist/translations/lt.js +5 -0
  158. package/dist/translations/lt.umd.js +11 -0
  159. package/dist/translations/lv.d.ts +8 -0
  160. package/dist/translations/lv.js +5 -0
  161. package/dist/translations/lv.umd.js +11 -0
  162. package/dist/translations/ms.d.ts +8 -0
  163. package/dist/translations/ms.js +5 -0
  164. package/dist/translations/ms.umd.js +11 -0
  165. package/dist/translations/nl.d.ts +8 -0
  166. package/dist/translations/nl.js +5 -0
  167. package/dist/translations/nl.umd.js +11 -0
  168. package/dist/translations/no.d.ts +8 -0
  169. package/dist/translations/no.js +5 -0
  170. package/dist/translations/no.umd.js +11 -0
  171. package/dist/translations/pl.d.ts +8 -0
  172. package/dist/translations/pl.js +5 -0
  173. package/dist/translations/pl.umd.js +11 -0
  174. package/dist/translations/pt-br.d.ts +8 -0
  175. package/dist/translations/pt-br.js +5 -0
  176. package/dist/translations/pt-br.umd.js +11 -0
  177. package/dist/translations/pt.d.ts +8 -0
  178. package/dist/translations/pt.js +5 -0
  179. package/dist/translations/pt.umd.js +11 -0
  180. package/dist/translations/ro.d.ts +8 -0
  181. package/dist/translations/ro.js +5 -0
  182. package/dist/translations/ro.umd.js +11 -0
  183. package/dist/translations/ru.d.ts +8 -0
  184. package/dist/translations/ru.js +5 -0
  185. package/dist/translations/ru.umd.js +11 -0
  186. package/dist/translations/sk.d.ts +8 -0
  187. package/dist/translations/sk.js +5 -0
  188. package/dist/translations/sk.umd.js +11 -0
  189. package/dist/translations/sq.d.ts +8 -0
  190. package/dist/translations/sq.js +5 -0
  191. package/dist/translations/sq.umd.js +11 -0
  192. package/dist/translations/sr-latn.d.ts +8 -0
  193. package/dist/translations/sr-latn.js +5 -0
  194. package/dist/translations/sr-latn.umd.js +11 -0
  195. package/dist/translations/sr.d.ts +8 -0
  196. package/dist/translations/sr.js +5 -0
  197. package/dist/translations/sr.umd.js +11 -0
  198. package/dist/translations/sv.d.ts +8 -0
  199. package/dist/translations/sv.js +5 -0
  200. package/dist/translations/sv.umd.js +11 -0
  201. package/dist/translations/th.d.ts +8 -0
  202. package/dist/translations/th.js +5 -0
  203. package/dist/translations/th.umd.js +11 -0
  204. package/dist/translations/tk.d.ts +8 -0
  205. package/dist/translations/tk.js +5 -0
  206. package/dist/translations/tk.umd.js +11 -0
  207. package/dist/translations/tr.d.ts +8 -0
  208. package/dist/translations/tr.js +5 -0
  209. package/dist/translations/tr.umd.js +11 -0
  210. package/dist/translations/ug.d.ts +8 -0
  211. package/dist/translations/ug.js +5 -0
  212. package/dist/translations/ug.umd.js +11 -0
  213. package/dist/translations/uk.d.ts +8 -0
  214. package/dist/translations/uk.js +5 -0
  215. package/dist/translations/uk.umd.js +11 -0
  216. package/dist/translations/ur.d.ts +8 -0
  217. package/dist/translations/ur.js +5 -0
  218. package/dist/translations/ur.umd.js +11 -0
  219. package/dist/translations/uz.d.ts +8 -0
  220. package/dist/translations/uz.js +5 -0
  221. package/dist/translations/uz.umd.js +11 -0
  222. package/dist/translations/vi.d.ts +8 -0
  223. package/dist/translations/vi.js +5 -0
  224. package/dist/translations/vi.umd.js +11 -0
  225. package/dist/translations/zh-cn.d.ts +8 -0
  226. package/dist/translations/zh-cn.js +5 -0
  227. package/dist/translations/zh-cn.umd.js +11 -0
  228. package/dist/translations/zh.d.ts +8 -0
  229. package/dist/translations/zh.js +5 -0
  230. package/dist/translations/zh.umd.js +11 -0
  231. package/dist/types/augmentation.d.ts +29 -0
  232. package/dist/types/codeblock.d.ts +33 -0
  233. package/dist/types/codeblockcommand.d.ts +64 -0
  234. package/dist/types/codeblockconfig.d.ts +150 -0
  235. package/dist/types/codeblockediting.d.ts +44 -0
  236. package/dist/types/codeblockui.d.ts +33 -0
  237. package/dist/types/converters.d.ts +130 -0
  238. package/dist/types/indentcodeblockcommand.d.ts +37 -0
  239. package/dist/types/index.d.ts +19 -0
  240. package/dist/types/outdentcodeblockcommand.d.ts +37 -0
  241. package/dist/types/utils.d.ts +147 -0
  242. package/lang/contexts.json +4 -0
  243. package/lang/translations/af.po +16 -0
  244. package/lang/translations/ar.po +16 -0
  245. package/lang/translations/az.po +16 -0
  246. package/lang/translations/bg.po +16 -0
  247. package/lang/translations/bn.po +16 -0
  248. package/lang/translations/bs.po +16 -0
  249. package/lang/translations/ca.po +16 -0
  250. package/lang/translations/cs.po +16 -0
  251. package/lang/translations/da.po +16 -0
  252. package/lang/translations/de-ch.po +16 -0
  253. package/lang/translations/de.po +16 -0
  254. package/lang/translations/el.po +16 -0
  255. package/lang/translations/en-au.po +16 -0
  256. package/lang/translations/en.po +16 -0
  257. package/lang/translations/es-co.po +16 -0
  258. package/lang/translations/es.po +16 -0
  259. package/lang/translations/et.po +16 -0
  260. package/lang/translations/fa.po +16 -0
  261. package/lang/translations/fi.po +16 -0
  262. package/lang/translations/fr.po +16 -0
  263. package/lang/translations/gl.po +16 -0
  264. package/lang/translations/he.po +16 -0
  265. package/lang/translations/hi.po +16 -0
  266. package/lang/translations/hr.po +16 -0
  267. package/lang/translations/hu.po +16 -0
  268. package/lang/translations/id.po +16 -0
  269. package/lang/translations/it.po +16 -0
  270. package/lang/translations/ja.po +16 -0
  271. package/lang/translations/jv.po +16 -0
  272. package/lang/translations/ko.po +16 -0
  273. package/lang/translations/ku.po +16 -0
  274. package/lang/translations/lt.po +16 -0
  275. package/lang/translations/lv.po +16 -0
  276. package/lang/translations/ms.po +16 -0
  277. package/lang/translations/nl.po +16 -0
  278. package/lang/translations/no.po +16 -0
  279. package/lang/translations/pl.po +16 -0
  280. package/lang/translations/pt-br.po +16 -0
  281. package/lang/translations/pt.po +16 -0
  282. package/lang/translations/ro.po +16 -0
  283. package/lang/translations/ru.po +16 -0
  284. package/lang/translations/sk.po +16 -0
  285. package/lang/translations/sq.po +16 -0
  286. package/lang/translations/sr-latn.po +16 -0
  287. package/lang/translations/sr.po +16 -0
  288. package/lang/translations/sv.po +16 -0
  289. package/lang/translations/th.po +16 -0
  290. package/lang/translations/tk.po +16 -0
  291. package/lang/translations/tr.po +16 -0
  292. package/lang/translations/ug.po +16 -0
  293. package/lang/translations/uk.po +16 -0
  294. package/lang/translations/ur.po +16 -0
  295. package/lang/translations/uz.po +16 -0
  296. package/lang/translations/vi.po +16 -0
  297. package/lang/translations/zh-cn.po +16 -0
  298. package/lang/translations/zh.po +16 -0
  299. package/package.json +4 -2
  300. package/src/codeblockediting.d.ts +7 -3
  301. package/src/codeblockediting.js +26 -4
  302. package/src/utils.d.ts +5 -0
  303. package/src/utils.js +18 -0
@@ -25,6 +25,22 @@ msgctxt "A language of the code block in the editor content when no specific pro
25
25
  msgid "Plain text"
26
26
  msgstr "纯文本"
27
27
 
28
+ msgctxt "Assistive technologies label for leaving the code block with a specified programming language. Example: 'Leaving JavaScript code snippet'"
29
+ msgid "Leaving %0 code snippet"
30
+ msgstr "正在退出 %0 代码片段"
31
+
32
+ msgctxt "Assistive technologies label for entering the code block with a specified programming language. Example: 'Entering JavaScript code snippet'"
33
+ msgid "Entering %0 code snippet"
34
+ msgstr "正在输入 %0 代码片段"
35
+
36
+ msgctxt "Assistive technologies label for entering the code block with unspecified programming language."
37
+ msgid "Entering code snippet"
38
+ msgstr "正在输入代码片段"
39
+
40
+ msgctxt "Assistive technologies label for leaving the code block with unspecified programming language."
41
+ msgid "Leaving code snippet"
42
+ msgstr "正在退出代码片段"
43
+
28
44
  msgctxt "The accessible label of the menu bar button that inserts a code block into editor content."
29
45
  msgid "Code block"
30
46
  msgstr "代码块"
@@ -25,6 +25,22 @@ msgctxt "A language of the code block in the editor content when no specific pro
25
25
  msgid "Plain text"
26
26
  msgstr "純文字"
27
27
 
28
+ msgctxt "Assistive technologies label for leaving the code block with a specified programming language. Example: 'Leaving JavaScript code snippet'"
29
+ msgid "Leaving %0 code snippet"
30
+ msgstr "離開 %0 程式碼片段"
31
+
32
+ msgctxt "Assistive technologies label for entering the code block with a specified programming language. Example: 'Entering JavaScript code snippet'"
33
+ msgid "Entering %0 code snippet"
34
+ msgstr "進入 %0 程式碼片段"
35
+
36
+ msgctxt "Assistive technologies label for entering the code block with unspecified programming language."
37
+ msgid "Entering code snippet"
38
+ msgstr "進入程式碼片段"
39
+
40
+ msgctxt "Assistive technologies label for leaving the code block with unspecified programming language."
41
+ msgid "Leaving code snippet"
42
+ msgstr "離開程式碼片段"
43
+
28
44
  msgctxt "The accessible label of the menu bar button that inserts a code block into editor content."
29
45
  msgid "Code block"
30
46
  msgstr "程式碼區塊"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-code-block",
3
- "version": "41.3.1",
3
+ "version": "41.4.0",
4
4
  "description": "Code block feature for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -13,7 +13,8 @@
13
13
  "type": "module",
14
14
  "main": "src/index.js",
15
15
  "dependencies": {
16
- "ckeditor5": "41.3.1"
16
+ "ckeditor5": "41.4.0",
17
+ "lodash-es": "4.17.21"
17
18
  },
18
19
  "author": "CKSource (http://cksource.com/)",
19
20
  "license": "GPL-2.0-or-later",
@@ -25,6 +26,7 @@
25
26
  "directory": "packages/ckeditor5-code-block"
26
27
  },
27
28
  "files": [
29
+ "dist",
28
30
  "lang",
29
31
  "src/**/*.js",
30
32
  "src/**/*.d.ts",
@@ -2,9 +2,6 @@
2
2
  * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
- /**
6
- * @module code-block/codeblockediting
7
- */
8
5
  import { Plugin, type Editor } from 'ckeditor5/src/core.js';
9
6
  import { ShiftEnter } from 'ckeditor5/src/enter.js';
10
7
  /**
@@ -33,4 +30,11 @@ export default class CodeBlockEditing extends Plugin {
33
30
  * @inheritDoc
34
31
  */
35
32
  afterInit(): void;
33
+ /**
34
+ * Observe when user enters or leaves code block and set proper aria value in global live announcer.
35
+ * This allows screen readers to indicate when the user has entered and left the specified code block.
36
+ *
37
+ * @internal
38
+ */
39
+ private _initAriaAnnouncements;
36
40
  }
@@ -2,16 +2,13 @@
2
2
  * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
- /**
6
- * @module code-block/codeblockediting
7
- */
8
5
  import { Plugin } from 'ckeditor5/src/core.js';
9
6
  import { ShiftEnter } from 'ckeditor5/src/enter.js';
10
7
  import { UpcastWriter } from 'ckeditor5/src/engine.js';
11
8
  import CodeBlockCommand from './codeblockcommand.js';
12
9
  import IndentCodeBlockCommand from './indentcodeblockcommand.js';
13
10
  import OutdentCodeBlockCommand from './outdentcodeblockcommand.js';
14
- import { getNormalizedAndLocalizedLanguageDefinitions, getLeadingWhiteSpaces, rawSnippetTextToViewDocumentFragment } from './utils.js';
11
+ import { getNormalizedAndLocalizedLanguageDefinitions, getLeadingWhiteSpaces, rawSnippetTextToViewDocumentFragment, getCodeBlockAriaAnnouncement } from './utils.js';
15
12
  import { modelToViewCodeBlockInsertion, modelToDataViewSoftBreakInsertion, dataViewToModelCodeBlockInsertion, dataViewToModelTextNewlinesInsertion, dataViewToModelOrphanNodeConsumer } from './converters.js';
16
13
  const DEFAULT_ELEMENT = 'paragraph';
17
14
  /**
@@ -195,6 +192,31 @@ export default class CodeBlockEditing extends Plugin {
195
192
  data.preventDefault();
196
193
  evt.stop();
197
194
  }, { context: 'pre' });
195
+ this._initAriaAnnouncements();
196
+ }
197
+ /**
198
+ * Observe when user enters or leaves code block and set proper aria value in global live announcer.
199
+ * This allows screen readers to indicate when the user has entered and left the specified code block.
200
+ *
201
+ * @internal
202
+ */
203
+ _initAriaAnnouncements() {
204
+ const { model, ui, t } = this.editor;
205
+ const languageDefs = getNormalizedAndLocalizedLanguageDefinitions(this.editor);
206
+ let lastFocusedCodeBlock = null;
207
+ model.document.selection.on('change:range', () => {
208
+ const focusParent = model.document.selection.focus.parent;
209
+ if (!ui || lastFocusedCodeBlock === focusParent || !focusParent.is('element')) {
210
+ return;
211
+ }
212
+ if (lastFocusedCodeBlock && lastFocusedCodeBlock.is('element', 'codeBlock')) {
213
+ ui.ariaLiveAnnouncer.announce(getCodeBlockAriaAnnouncement(t, languageDefs, lastFocusedCodeBlock, 'leave'));
214
+ }
215
+ if (focusParent.is('element', 'codeBlock')) {
216
+ ui.ariaLiveAnnouncer.announce(getCodeBlockAriaAnnouncement(t, languageDefs, focusParent, 'enter'));
217
+ }
218
+ lastFocusedCodeBlock = focusParent;
219
+ });
198
220
  }
199
221
  }
200
222
  /**
package/src/utils.d.ts CHANGED
@@ -8,6 +8,7 @@
8
8
  import type { Editor } from 'ckeditor5/src/core.js';
9
9
  import type { CodeBlockLanguageDefinition } from './codeblockconfig.js';
10
10
  import type { DocumentSelection, Element, Model, Position, Schema, Text, UpcastWriter, ViewDocumentFragment } from 'ckeditor5/src/engine.js';
11
+ import { type LocaleTranslate } from 'ckeditor5/src/utils.js';
11
12
  /**
12
13
  * Returns code block languages as defined in `config.codeBlock.languages` but processed:
13
14
  *
@@ -136,3 +137,7 @@ export declare function isModelSelectionInCodeBlock(selection: DocumentSelection
136
137
  * @returns Check result.
137
138
  */
138
139
  export declare function canBeCodeBlock(schema: Schema, element: Element): boolean;
140
+ /**
141
+ * Get the translated message read by the screen reader when you enter or exit an element with your cursor.
142
+ */
143
+ export declare function getCodeBlockAriaAnnouncement(t: LocaleTranslate, languageDefs: Array<CodeBlockLanguageDefinition>, element: Element, direction: 'enter' | 'leave'): string;
package/src/utils.js CHANGED
@@ -207,3 +207,21 @@ export function canBeCodeBlock(schema, element) {
207
207
  }
208
208
  return schema.checkChild(element.parent, 'codeBlock');
209
209
  }
210
+ /**
211
+ * Get the translated message read by the screen reader when you enter or exit an element with your cursor.
212
+ */
213
+ export function getCodeBlockAriaAnnouncement(t, languageDefs, element, direction) {
214
+ const languagesToLabels = getPropertyAssociation(languageDefs, 'language', 'label');
215
+ const codeBlockLanguage = element.getAttribute('language');
216
+ if (codeBlockLanguage in languagesToLabels) {
217
+ const language = languagesToLabels[codeBlockLanguage];
218
+ if (direction === 'enter') {
219
+ return t('Entering %0 code snippet', language);
220
+ }
221
+ return t('Leaving %0 code snippet', language);
222
+ }
223
+ if (direction === 'enter') {
224
+ return t('Entering code snippet');
225
+ }
226
+ return t('Leaving code snippet');
227
+ }