Răsfoiți Sursa

Merge branch 'master' into ckeditor5/t/1214

Piotrek Koszuliński 7 ani în urmă
părinte
comite
3023908384
78 a modificat fișierele cu 1053 adăugiri și 31 ștergeri
  1. 14 0
      packages/ckeditor5-basic-styles/CHANGELOG.md
  2. 1 1
      packages/ckeditor5-basic-styles/README.md
  3. 1 0
      packages/ckeditor5-basic-styles/docs/_snippets/features/basic-styles.html
  4. 2 2
      packages/ckeditor5-basic-styles/docs/_snippets/features/basic-styles.js
  5. 3 1
      packages/ckeditor5-basic-styles/docs/_snippets/features/build-basic-styles-source.js
  6. 3 1
      packages/ckeditor5-basic-styles/docs/api/basic-styles.md
  7. 9 3
      packages/ckeditor5-basic-styles/docs/features/basic-styles.md
  8. 3 1
      packages/ckeditor5-basic-styles/lang/contexts.json
  9. 8 0
      packages/ckeditor5-basic-styles/lang/translations/ar.po
  10. 8 0
      packages/ckeditor5-basic-styles/lang/translations/ast.po
  11. 8 0
      packages/ckeditor5-basic-styles/lang/translations/bg.po
  12. 8 0
      packages/ckeditor5-basic-styles/lang/translations/ca.po
  13. 8 0
      packages/ckeditor5-basic-styles/lang/translations/cs.po
  14. 8 0
      packages/ckeditor5-basic-styles/lang/translations/da.po
  15. 8 0
      packages/ckeditor5-basic-styles/lang/translations/de.po
  16. 8 0
      packages/ckeditor5-basic-styles/lang/translations/el.po
  17. 8 0
      packages/ckeditor5-basic-styles/lang/translations/en-au.po
  18. 8 0
      packages/ckeditor5-basic-styles/lang/translations/en.po
  19. 8 0
      packages/ckeditor5-basic-styles/lang/translations/eo.po
  20. 8 0
      packages/ckeditor5-basic-styles/lang/translations/es.po
  21. 8 0
      packages/ckeditor5-basic-styles/lang/translations/et.po
  22. 8 0
      packages/ckeditor5-basic-styles/lang/translations/eu.po
  23. 8 0
      packages/ckeditor5-basic-styles/lang/translations/fa.po
  24. 8 0
      packages/ckeditor5-basic-styles/lang/translations/fi.po
  25. 9 1
      packages/ckeditor5-basic-styles/lang/translations/fr.po
  26. 8 0
      packages/ckeditor5-basic-styles/lang/translations/gl.po
  27. 8 0
      packages/ckeditor5-basic-styles/lang/translations/gu.po
  28. 8 0
      packages/ckeditor5-basic-styles/lang/translations/hr.po
  29. 8 0
      packages/ckeditor5-basic-styles/lang/translations/hu.po
  30. 8 0
      packages/ckeditor5-basic-styles/lang/translations/it.po
  31. 8 0
      packages/ckeditor5-basic-styles/lang/translations/ja.po
  32. 8 0
      packages/ckeditor5-basic-styles/lang/translations/km.po
  33. 8 0
      packages/ckeditor5-basic-styles/lang/translations/kn.po
  34. 8 0
      packages/ckeditor5-basic-styles/lang/translations/ko.po
  35. 8 0
      packages/ckeditor5-basic-styles/lang/translations/ku.po
  36. 8 0
      packages/ckeditor5-basic-styles/lang/translations/nb.po
  37. 8 0
      packages/ckeditor5-basic-styles/lang/translations/ne.po
  38. 8 0
      packages/ckeditor5-basic-styles/lang/translations/nl.po
  39. 8 0
      packages/ckeditor5-basic-styles/lang/translations/no.po
  40. 8 0
      packages/ckeditor5-basic-styles/lang/translations/oc.po
  41. 8 0
      packages/ckeditor5-basic-styles/lang/translations/pl.po
  42. 8 0
      packages/ckeditor5-basic-styles/lang/translations/pt-br.po
  43. 8 0
      packages/ckeditor5-basic-styles/lang/translations/pt.po
  44. 8 0
      packages/ckeditor5-basic-styles/lang/translations/ro.po
  45. 8 0
      packages/ckeditor5-basic-styles/lang/translations/ru.po
  46. 8 0
      packages/ckeditor5-basic-styles/lang/translations/si.po
  47. 8 0
      packages/ckeditor5-basic-styles/lang/translations/sk.po
  48. 8 0
      packages/ckeditor5-basic-styles/lang/translations/sq.po
  49. 8 0
      packages/ckeditor5-basic-styles/lang/translations/sv.po
  50. 8 0
      packages/ckeditor5-basic-styles/lang/translations/tr.po
  51. 8 0
      packages/ckeditor5-basic-styles/lang/translations/tt.po
  52. 8 0
      packages/ckeditor5-basic-styles/lang/translations/ug.po
  53. 8 0
      packages/ckeditor5-basic-styles/lang/translations/uk.po
  54. 8 0
      packages/ckeditor5-basic-styles/lang/translations/zh-cn.po
  55. 8 0
      packages/ckeditor5-basic-styles/lang/translations/zh.po
  56. 10 11
      packages/ckeditor5-basic-styles/package.json
  57. 36 0
      packages/ckeditor5-basic-styles/src/subscript.js
  58. 49 0
      packages/ckeditor5-basic-styles/src/subscript/subscriptediting.js
  59. 49 0
      packages/ckeditor5-basic-styles/src/subscript/subscriptui.js
  60. 36 0
      packages/ckeditor5-basic-styles/src/superscript.js
  61. 49 0
      packages/ckeditor5-basic-styles/src/superscript/superscriptediting.js
  62. 49 0
      packages/ckeditor5-basic-styles/src/superscript/superscriptui.js
  63. 1 1
      packages/ckeditor5-basic-styles/tests/manual/basic-styles.html
  64. 4 2
      packages/ckeditor5-basic-styles/tests/manual/basic-styles.js
  65. 4 2
      packages/ckeditor5-basic-styles/tests/manual/basic-styles.md
  66. 18 0
      packages/ckeditor5-basic-styles/tests/subscript.js
  67. 87 0
      packages/ckeditor5-basic-styles/tests/subscript/subscriptediting.js
  68. 68 0
      packages/ckeditor5-basic-styles/tests/subscript/subscriptui.js
  69. 18 0
      packages/ckeditor5-basic-styles/tests/superscript.js
  70. 87 0
      packages/ckeditor5-basic-styles/tests/superscript/superscriptediting.js
  71. 68 0
      packages/ckeditor5-basic-styles/tests/superscript/superscriptui.js
  72. 1 1
      packages/ckeditor5-basic-styles/theme/icons/bold.svg
  73. 1 1
      packages/ckeditor5-basic-styles/theme/icons/code.svg
  74. 1 1
      packages/ckeditor5-basic-styles/theme/icons/italic.svg
  75. 1 1
      packages/ckeditor5-basic-styles/theme/icons/strikethrough.svg
  76. 1 0
      packages/ckeditor5-basic-styles/theme/icons/subscript.svg
  77. 1 0
      packages/ckeditor5-basic-styles/theme/icons/superscript.svg
  78. 1 1
      packages/ckeditor5-basic-styles/theme/icons/underline.svg

+ 14 - 0
packages/ckeditor5-basic-styles/CHANGELOG.md

@@ -1,6 +1,20 @@
 Changelog
 Changelog
 =========
 =========
 
 
+## [10.1.0](https://github.com/ckeditor/ckeditor5-basic-styles/compare/v10.0.3...v10.1.0) (2018-12-05)
+
+### Features
+
+* Introduced the `Superscript` and the `Subscript` features. Closes [#76](https://github.com/ckeditor/ckeditor5-basic-styles/issues/76). Closes [#74](https://github.com/ckeditor/ckeditor5-basic-styles/issues/74). ([f281e99](https://github.com/ckeditor/ckeditor5-basic-styles/commit/f281e99))
+
+  Thanks to [@idleb](https://github.com/idleb)!
+
+### Other changes
+
+* Improved SVG icons size. See [ckeditor/ckeditor5-theme-lark#206](https://github.com/ckeditor/ckeditor5-theme-lark/issues/206). ([6314191](https://github.com/ckeditor/ckeditor5-basic-styles/commit/6314191))
+* Updated translations. ([f9d3d07](https://github.com/ckeditor/ckeditor5-basic-styles/commit/f9d3d07)) ([67fb2e2](https://github.com/ckeditor/ckeditor5-basic-styles/commit/67fb2e2))
+
+
 ## [10.0.3](https://github.com/ckeditor/ckeditor5-basic-styles/compare/v10.0.2...v10.0.3) (2018-10-08)
 ## [10.0.3](https://github.com/ckeditor/ckeditor5-basic-styles/compare/v10.0.2...v10.0.3) (2018-10-08)
 
 
 ### Other changes
 ### Other changes

+ 1 - 1
packages/ckeditor5-basic-styles/README.md

@@ -10,7 +10,7 @@ CKEditor 5 basic styles feature
 [![Dependency Status](https://david-dm.org/ckeditor/ckeditor5-basic-styles/status.svg)](https://david-dm.org/ckeditor/ckeditor5-basic-styles)
 [![Dependency Status](https://david-dm.org/ckeditor/ckeditor5-basic-styles/status.svg)](https://david-dm.org/ckeditor/ckeditor5-basic-styles)
 [![devDependency Status](https://david-dm.org/ckeditor/ckeditor5-basic-styles/dev-status.svg)](https://david-dm.org/ckeditor/ckeditor5-basic-styles?type=dev)
 [![devDependency Status](https://david-dm.org/ckeditor/ckeditor5-basic-styles/dev-status.svg)](https://david-dm.org/ckeditor/ckeditor5-basic-styles?type=dev)
 
 
-This package contains CKEditor 5 features allowing to apply basic text formatting such as bold, italic, underline and code in CKEditor 5.
+This package contains CKEditor 5 features allowing to apply basic text formatting such as bold, italic, underline, and code in CKEditor 5.
 
 
 ## Demo
 ## Demo
 
 

+ 1 - 0
packages/ckeditor5-basic-styles/docs/_snippets/features/basic-styles.html

@@ -4,4 +4,5 @@
 	<p><u>This text is underlined</u>.</p>
 	<p><u>This text is underlined</u>.</p>
 	<p><s>This is a strikethrough text</s>.</p>
 	<p><s>This is a strikethrough text</s>.</p>
 	<p><code>This is an inline code</code>.</p>
 	<p><code>This is an inline code</code>.</p>
+	<p>These are <sub>a subscript</sub> and <sup>a superscript</sup>.</p>
 </div>
 </div>

+ 2 - 2
packages/ckeditor5-basic-styles/docs/_snippets/features/basic-styles.js

@@ -11,9 +11,9 @@ ClassicEditor
 	.create( document.querySelector( '#snippet-basic-styles' ), {
 	.create( document.querySelector( '#snippet-basic-styles' ), {
 		toolbar: {
 		toolbar: {
 			items: [
 			items: [
-				'bold', 'italic', 'underline', 'strikethrough', 'code', '|', 'undo', 'redo'
+				'bold', 'italic', 'underline', 'strikethrough', 'subscript', 'superscript', 'code', '|', 'undo', 'redo'
 			],
 			],
-			viewportTopOffset: 100
+			viewportTopOffset: window.getViewportTopOffsetConfig()
 		},
 		},
 		cloudServices: CS_CONFIG
 		cloudServices: CS_CONFIG
 	} )
 	} )

+ 3 - 1
packages/ckeditor5-basic-styles/docs/_snippets/features/build-basic-styles-source.js

@@ -11,8 +11,10 @@ import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold';
 import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic';
 import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic';
 import Underline from '@ckeditor/ckeditor5-basic-styles/src/underline';
 import Underline from '@ckeditor/ckeditor5-basic-styles/src/underline';
 import Strikethrough from '@ckeditor/ckeditor5-basic-styles/src/strikethrough';
 import Strikethrough from '@ckeditor/ckeditor5-basic-styles/src/strikethrough';
+import Subscript from '@ckeditor/ckeditor5-basic-styles/src/subscript';
+import Superscript from '@ckeditor/ckeditor5-basic-styles/src/superscript';
 import Code from '@ckeditor/ckeditor5-basic-styles/src/code';
 import Code from '@ckeditor/ckeditor5-basic-styles/src/code';
 
 
-ClassicEditor.builtinPlugins.push( Bold, Italic, Underline, Strikethrough, Code );
+ClassicEditor.builtinPlugins.push( Bold, Italic, Underline, Strikethrough, Subscript, Superscript, Code );
 
 
 window.ClassicEditor = ClassicEditor;
 window.ClassicEditor = ClassicEditor;

+ 3 - 1
packages/ckeditor5-basic-styles/docs/api/basic-styles.md

@@ -6,7 +6,7 @@ category: api-reference
 
 
 [![npm version](https://badge.fury.io/js/%40ckeditor%2Fckeditor5-basic-styles.svg)](https://www.npmjs.com/package/@ckeditor/ckeditor5-basic-styles)
 [![npm version](https://badge.fury.io/js/%40ckeditor%2Fckeditor5-basic-styles.svg)](https://www.npmjs.com/package/@ckeditor/ckeditor5-basic-styles)
 
 
-This package contains features allowing to apply basic text formatting such as bold, italic, underline, strikethrough and code in CKEditor 5.
+This package contains features allowing to apply basic text formatting such as bold, italic, underline, strikethrough, subscript, superscript, and code in CKEditor 5.
 
 
 ## Demo
 ## Demo
 
 
@@ -22,6 +22,8 @@ You can also check out the following plugins:
 * {@link module:basic-styles/italic~Italic}
 * {@link module:basic-styles/italic~Italic}
 * {@link module:basic-styles/strikethrough~Strikethrough}
 * {@link module:basic-styles/strikethrough~Strikethrough}
 * {@link module:basic-styles/underline~Underline}
 * {@link module:basic-styles/underline~Underline}
+* {@link module:basic-styles/subscript~Subscript}
+* {@link module:basic-styles/superscript~Superscript}
 * {@link module:basic-styles/code~Code}
 * {@link module:basic-styles/code~Code}
 
 
 ## Installation
 ## Installation

+ 9 - 3
packages/ckeditor5-basic-styles/docs/features/basic-styles.md

@@ -5,7 +5,7 @@ category: features
 
 
 {@snippet features/build-basic-styles-source}
 {@snippet features/build-basic-styles-source}
 
 
-The {@link api/basic-styles basic styles} package provides text formatting features such as bold, italic, underline, strikethrough and code.
+The {@link api/basic-styles basic styles} package provides text formatting features such as bold, italic, underline, strikethrough, subscript, superscript, and code.
 
 
 ## Demo
 ## Demo
 
 
@@ -20,6 +20,8 @@ The {@link api/basic-styles basic styles} package provides text formatting featu
 | {@link module:basic-styles/underline~Underline} | `'underline'` | `'underline'` | `<u>underline</u>` |
 | {@link module:basic-styles/underline~Underline} | `'underline'` | `'underline'` | `<u>underline</u>` |
 | {@link module:basic-styles/strikethrough~Strikethrough} | `'strikethrough'` | `'strikethrough'` | `<s>strikethrough</s>` |
 | {@link module:basic-styles/strikethrough~Strikethrough} | `'strikethrough'` | `'strikethrough'` | `<s>strikethrough</s>` |
 | {@link module:basic-styles/code~Code} | `'code'` | `'code'` | `<code>code</code>` |
 | {@link module:basic-styles/code~Code} | `'code'` | `'code'` | `<code>code</code>` |
+| {@link module:basic-styles/subscript~Subscript} | `'subscript'` | `'subscript'` | `<sub>subscript</sub>` |
+| {@link module:basic-styles/superscript~Superscript} | `'superscript'` | `'superscript'` | `<sup>superscript</sup>` |
 
 
 <info-box info>
 <info-box info>
 	{@link module:basic-styles/bold~Bold} and {@link module:basic-styles/italic~Italic} are available out–of–the–box in most of the {@link builds/guides/overview editor builds}.
 	{@link module:basic-styles/bold~Bold} and {@link module:basic-styles/italic~Italic} are available out–of–the–box in most of the {@link builds/guides/overview editor builds}.
@@ -36,6 +38,8 @@ By default, each feature can upcast more than one type of the content. Here's th
 | {@link module:basic-styles/underline~Underline} | `<u>`, `<* style="text-decoration: underline">` |
 | {@link module:basic-styles/underline~Underline} | `<u>`, `<* style="text-decoration: underline">` |
 | {@link module:basic-styles/strikethrough~Strikethrough} | `<s>`, `<del>`, `<strike>`, `<* style="text-decoration: line-through">` |
 | {@link module:basic-styles/strikethrough~Strikethrough} | `<s>`, `<del>`, `<strike>`, `<* style="text-decoration: line-through">` |
 | {@link module:basic-styles/code~Code} | `<code>`, `<* style="word-wrap: break-word">` |
 | {@link module:basic-styles/code~Code} | `<code>`, `<* style="word-wrap: break-word">` |
+| {@link module:basic-styles/subscript~Subscript} | `<sub>`, `<* style="vertical-align: sub">` |
+| {@link module:basic-styles/superscript~Superscript} | `<sup>`, `<* style="vertical-align: super">` |
 
 
 ## Installation
 ## Installation
 
 
@@ -53,12 +57,14 @@ import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic';
 import Underline from '@ckeditor/ckeditor5-basic-styles/src/underline';
 import Underline from '@ckeditor/ckeditor5-basic-styles/src/underline';
 import Strikethrough from '@ckeditor/ckeditor5-basic-styles/src/strikethrough';
 import Strikethrough from '@ckeditor/ckeditor5-basic-styles/src/strikethrough';
 import Code from '@ckeditor/ckeditor5-basic-styles/src/code';
 import Code from '@ckeditor/ckeditor5-basic-styles/src/code';
+import Subscript from '@ckeditor/ckeditor5-basic-styles/src/subscript';
+import Superscript from '@ckeditor/ckeditor5-basic-styles/src/superscript';
 
 
 ClassicEditor
 ClassicEditor
 	.create( document.querySelector( '#editor' ), {
 	.create( document.querySelector( '#editor' ), {
-		plugins: [ Bold, Italic, Underline, Strikethrough, Code ],
+		plugins: [ Bold, Italic, Underline, Strikethrough, Code, Subscript, Superscript ],
 		image: {
 		image: {
-			toolbar: [ 'bold', 'italic', 'underline', 'strikethrough', 'code'  ]
+			toolbar: [ 'bold', 'italic', 'underline', 'strikethrough', 'code','subscript', 'superscript'  ]
 		}
 		}
 	} )
 	} )
 	.then( ... )
 	.then( ... )

+ 3 - 1
packages/ckeditor5-basic-styles/lang/contexts.json

@@ -3,5 +3,7 @@
 	"Italic": "Toolbar button tooltip for the Italic feature.",
 	"Italic": "Toolbar button tooltip for the Italic feature.",
 	"Underline": "Toolbar button tooltip for the Underline feature.",
 	"Underline": "Toolbar button tooltip for the Underline feature.",
 	"Code": "Toolbar button tooltip for the Code feature.",
 	"Code": "Toolbar button tooltip for the Code feature.",
-	"Strikethrough": "Toolbar button tooltip for the Strikethrough feature."
+	"Strikethrough": "Toolbar button tooltip for the Strikethrough feature.",
+	"Subscript": "Toolbar button tooltip for the Subscript feature.",
+	"Superscript": "Toolbar button tooltip for the Superscript feature."
 }
 }

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/ar.po

@@ -24,3 +24,11 @@ msgstr "شفرة برمجية"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "يتوسطه خط"
 msgstr "يتوسطه خط"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/ast.po

@@ -24,3 +24,11 @@ msgstr ""
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/bg.po

@@ -24,3 +24,11 @@ msgstr ""
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/ca.po

@@ -24,3 +24,11 @@ msgstr "Codi"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Marcat"
 msgstr "Marcat"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/cs.po

@@ -24,3 +24,11 @@ msgstr "Kódový blok"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Přeškrtnuté"
 msgstr "Přeškrtnuté"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/da.po

@@ -24,3 +24,11 @@ msgstr "Kode"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/de.po

@@ -24,3 +24,11 @@ msgstr "Code"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Durchgestrichen"
 msgstr "Durchgestrichen"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/el.po

@@ -24,3 +24,11 @@ msgstr ""
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/en-au.po

@@ -24,3 +24,11 @@ msgstr "Code"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Strikethrough"
 msgstr "Strikethrough"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/en.po

@@ -24,3 +24,11 @@ msgstr "Code"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Strikethrough"
 msgstr "Strikethrough"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr "Subscript"
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr "Superscript"

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/eo.po

@@ -24,3 +24,11 @@ msgstr ""
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/es.po

@@ -24,3 +24,11 @@ msgstr "Código"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Tachado"
 msgstr "Tachado"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/et.po

@@ -24,3 +24,11 @@ msgstr "Kood"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Läbijoonitud"
 msgstr "Läbijoonitud"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/eu.po

@@ -24,3 +24,11 @@ msgstr "Kodea"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/fa.po

@@ -24,3 +24,11 @@ msgstr "کد"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "خط خورده"
 msgstr "خط خورده"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/fi.po

@@ -24,3 +24,11 @@ msgstr "Koodi"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 9 - 1
packages/ckeditor5-basic-styles/lang/translations/fr.po

@@ -15,7 +15,7 @@ msgstr "Italique"
 
 
 msgctxt "Toolbar button tooltip for the Underline feature."
 msgctxt "Toolbar button tooltip for the Underline feature."
 msgid "Underline"
 msgid "Underline"
-msgstr "Souligner"
+msgstr "Souligné"
 
 
 msgctxt "Toolbar button tooltip for the Code feature."
 msgctxt "Toolbar button tooltip for the Code feature."
 msgid "Code"
 msgid "Code"
@@ -24,3 +24,11 @@ msgstr "Code"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Barré"
 msgstr "Barré"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr "Indice"
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr "Exposant"

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/gl.po

@@ -24,3 +24,11 @@ msgstr "Código"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Riscado"
 msgstr "Riscado"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr "Subíndice"
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr "Superíndice"

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/gu.po

@@ -24,3 +24,11 @@ msgstr ""
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/hr.po

@@ -24,3 +24,11 @@ msgstr "Kod"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Precrtano"
 msgstr "Precrtano"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/hu.po

@@ -24,3 +24,11 @@ msgstr "Forráskód"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Áthúzott"
 msgstr "Áthúzott"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr "Alsó index"
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr "Felső index"

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/it.po

@@ -24,3 +24,11 @@ msgstr "Codice"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Barrato"
 msgstr "Barrato"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/ja.po

@@ -24,3 +24,11 @@ msgstr "コード"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "取り消し線"
 msgstr "取り消し線"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/km.po

@@ -24,3 +24,11 @@ msgstr ""
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/kn.po

@@ -24,3 +24,11 @@ msgstr ""
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/ko.po

@@ -24,3 +24,11 @@ msgstr "소스"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/ku.po

@@ -24,3 +24,11 @@ msgstr "کۆد"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "هێڵ بەسەرداهاتوو"
 msgstr "هێڵ بەسەرداهاتوو"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/nb.po

@@ -24,3 +24,11 @@ msgstr "Kode"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Gjennomstreking"
 msgstr "Gjennomstreking"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/ne.po

@@ -24,3 +24,11 @@ msgstr "कोड"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "स्ट्राइकथ्रू"
 msgstr "स्ट्राइकथ्रू"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/nl.po

@@ -24,3 +24,11 @@ msgstr "Code"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Doorhalen"
 msgstr "Doorhalen"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/no.po

@@ -24,3 +24,11 @@ msgstr "Kode"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Gjennomstreket"
 msgstr "Gjennomstreket"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr "Senket skrift"
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr "Hevet skrift"

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/oc.po

@@ -24,3 +24,11 @@ msgstr ""
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/pl.po

@@ -24,3 +24,11 @@ msgstr "Kod"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Przekreślenie"
 msgstr "Przekreślenie"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr "Indeks dolny"
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr "Indeks górny"

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/pt-br.po

@@ -24,3 +24,11 @@ msgstr "Código"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Tachado"
 msgstr "Tachado"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/pt.po

@@ -24,3 +24,11 @@ msgstr "Código"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/ro.po

@@ -24,3 +24,11 @@ msgstr "Cod"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/ru.po

@@ -24,3 +24,11 @@ msgstr "Исходный код"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Зачеркнутый"
 msgstr "Зачеркнутый"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/si.po

@@ -24,3 +24,11 @@ msgstr ""
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/sk.po

@@ -24,3 +24,11 @@ msgstr "Kód"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Preškrtnuté"
 msgstr "Preškrtnuté"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/sq.po

@@ -24,3 +24,11 @@ msgstr "Kod"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Vi në mes"
 msgstr "Vi në mes"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/sv.po

@@ -24,3 +24,11 @@ msgstr "Kod"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Genomstruken"
 msgstr "Genomstruken"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/tr.po

@@ -24,3 +24,11 @@ msgstr "Kod"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Üstü çizili"
 msgstr "Üstü çizili"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr "Alt Simge"
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr "Üst Simge"

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/tt.po

@@ -24,3 +24,11 @@ msgstr "Код"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/ug.po

@@ -24,3 +24,11 @@ msgstr "كودى"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/uk.po

@@ -24,3 +24,11 @@ msgstr "Код"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "Закреслений"
 msgstr "Закреслений"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/zh-cn.po

@@ -24,3 +24,11 @@ msgstr "代码"
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr "删除线"
 msgstr "删除线"
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 8 - 0
packages/ckeditor5-basic-styles/lang/translations/zh.po

@@ -24,3 +24,11 @@ msgstr ""
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgctxt "Toolbar button tooltip for the Strikethrough feature."
 msgid "Strikethrough"
 msgid "Strikethrough"
 msgstr ""
 msgstr ""
+
+msgctxt "Toolbar button tooltip for the Subscript feature."
+msgid "Subscript"
+msgstr ""
+
+msgctxt "Toolbar button tooltip for the Superscript feature."
+msgid "Superscript"
+msgstr ""

+ 10 - 11
packages/ckeditor5-basic-styles/package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "@ckeditor/ckeditor5-basic-styles",
   "name": "@ckeditor/ckeditor5-basic-styles",
-  "version": "10.0.3",
+  "version": "10.1.0",
   "description": "Basic styles feature for CKEditor 5.",
   "description": "Basic styles feature for CKEditor 5.",
   "keywords": [
   "keywords": [
     "ckeditor",
     "ckeditor",
@@ -10,19 +10,18 @@
     "ckeditor5-plugin"
     "ckeditor5-plugin"
   ],
   ],
   "dependencies": {
   "dependencies": {
-    "@ckeditor/ckeditor5-core": "^11.0.1",
-    "@ckeditor/ckeditor5-theme-lark": "^11.1.0",
-    "@ckeditor/ckeditor5-ui": "^11.1.0"
+    "@ckeditor/ckeditor5-core": "^11.1.0",
+    "@ckeditor/ckeditor5-ui": "^11.2.0"
   },
   },
   "devDependencies": {
   "devDependencies": {
-    "@ckeditor/ckeditor5-cloud-services": "^10.1.0",
-    "@ckeditor/ckeditor5-editor-classic": "^11.0.1",
-    "@ckeditor/ckeditor5-engine": "^11.0.0",
-    "@ckeditor/ckeditor5-essentials": "^10.1.2",
-    "@ckeditor/ckeditor5-paragraph": "^10.0.3",
-    "@ckeditor/ckeditor5-utils": "^11.0.0",
+    "@ckeditor/ckeditor5-cloud-services": "^10.1.1",
+    "@ckeditor/ckeditor5-editor-classic": "^11.0.2",
+    "@ckeditor/ckeditor5-engine": "^12.0.0",
+    "@ckeditor/ckeditor5-essentials": "^10.1.3",
+    "@ckeditor/ckeditor5-paragraph": "^10.0.4",
+    "@ckeditor/ckeditor5-utils": "^11.1.0",
     "eslint": "^5.5.0",
     "eslint": "^5.5.0",
-    "eslint-config-ckeditor5": "^1.0.7",
+    "eslint-config-ckeditor5": "^1.0.9",
     "husky": "^0.14.3",
     "husky": "^0.14.3",
     "lint-staged": "^7.0.0"
     "lint-staged": "^7.0.0"
   },
   },

+ 36 - 0
packages/ckeditor5-basic-styles/src/subscript.js

@@ -0,0 +1,36 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/**
+ * @module basic-styles/subscript
+ */
+
+import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
+import SubscriptEditing from './subscript/subscriptediting';
+import SubscriptUI from './subscript/subscriptui';
+
+/**
+ * The subscript feature.
+ *
+ * It loads the {@link module:basic-styles/subscript/subscriptediting~SubscriptEditing} and
+ * {@link module:basic-styles/subscript/subscriptui~SubscriptUI} plugins.
+ *
+ * @extends module:core/plugin~Plugin
+ */
+export default class Subscript extends Plugin {
+	/**
+	 * @inheritDoc
+	 */
+	static get requires() {
+		return [ SubscriptEditing, SubscriptUI ];
+	}
+
+	/**
+	 * @inheritDoc
+	 */
+	static get pluginName() {
+		return 'Subscript';
+	}
+}

+ 49 - 0
packages/ckeditor5-basic-styles/src/subscript/subscriptediting.js

@@ -0,0 +1,49 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/**
+ * @module basic-styles/subscript/subscriptediting
+ */
+
+import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
+import AttributeCommand from '../attributecommand';
+
+const SUBSCRIPT = 'subscript';
+
+/**
+ * The subscript editing feature.
+ *
+ * It registers the `sub` command and introduces the `sub` attribute in the model which renders to the view
+ * as a `<sub>` element.
+ *
+ * @extends module:core/plugin~Plugin
+ */
+export default class SubscriptEditing extends Plugin {
+	/**
+	 * @inheritDoc
+	 */
+	init() {
+		const editor = this.editor;
+		// Allow sub attribute on text nodes.
+		editor.model.schema.extend( '$text', { allowAttributes: SUBSCRIPT } );
+
+		// Build converter from model to view for data and editing pipelines.
+
+		editor.conversion.attributeToElement( {
+			model: SUBSCRIPT,
+			view: 'sub',
+			upcastAlso: [
+				{
+					styles: {
+						'vertical-align': 'sub'
+					}
+				}
+			]
+		} );
+
+		// Create sub command.
+		editor.commands.add( SUBSCRIPT, new AttributeCommand( editor, SUBSCRIPT ) );
+	}
+}

+ 49 - 0
packages/ckeditor5-basic-styles/src/subscript/subscriptui.js

@@ -0,0 +1,49 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/**
+ * @module basic-styles/subscript/subscriptui
+ */
+
+import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
+import ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';
+
+import subscriptIcon from '../../theme/icons/subscript.svg';
+
+const SUBSCRIPT = 'subscript';
+
+/**
+ * The subscript UI feature. It introduces the Subscript button.
+ *
+ * @extends module:core/plugin~Plugin
+ */
+export default class SubscriptUI extends Plugin {
+	/**
+	 * @inheritDoc
+	 */
+	init() {
+		const editor = this.editor;
+		const t = editor.t;
+
+		// Add subscript button to feature components.
+		editor.ui.componentFactory.add( SUBSCRIPT, locale => {
+			const command = editor.commands.get( SUBSCRIPT );
+			const view = new ButtonView( locale );
+
+			view.set( {
+				label: t( 'Subscript' ),
+				icon: subscriptIcon,
+				tooltip: true
+			} );
+
+			view.bind( 'isOn', 'isEnabled' ).to( command, 'value', 'isEnabled' );
+
+			// Execute command.
+			this.listenTo( view, 'execute', () => editor.execute( SUBSCRIPT ) );
+
+			return view;
+		} );
+	}
+}

+ 36 - 0
packages/ckeditor5-basic-styles/src/superscript.js

@@ -0,0 +1,36 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/**
+ * @module basic-styles/superscript
+ */
+
+import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
+import SuperscriptEditing from './superscript/superscriptediting';
+import SuperscriptUI from './superscript/superscriptui';
+
+/**
+ * The superscript feature.
+ *
+ * It loads the {@link module:basic-styles/superscript/superscriptediting~SuperscriptEditing} and
+ * {@link module:basic-styles/superscript/superscriptui~SuperscriptUI} plugins.
+ *
+ * @extends module:core/plugin~Plugin
+ */
+export default class Superscript extends Plugin {
+	/**
+	 * @inheritDoc
+	 */
+	static get requires() {
+		return [ SuperscriptEditing, SuperscriptUI ];
+	}
+
+	/**
+	 * @inheritDoc
+	 */
+	static get pluginName() {
+		return 'Superscript';
+	}
+}

+ 49 - 0
packages/ckeditor5-basic-styles/src/superscript/superscriptediting.js

@@ -0,0 +1,49 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/**
+ * @module basic-styles/superscript/superscriptediting
+ */
+
+import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
+import AttributeCommand from '../attributecommand';
+
+const SUPERSCRIPT = 'superscript';
+
+/**
+ * The superscript editing feature.
+ *
+ * It registers the `super` command and introduces the `super` attribute in the model which renders to the view
+ * as a `<super>` element.
+ *
+ * @extends module:core/plugin~Plugin
+ */
+export default class SuperscriptEditing extends Plugin {
+	/**
+	 * @inheritDoc
+	 */
+	init() {
+		const editor = this.editor;
+		// Allow super attribute on text nodes.
+		editor.model.schema.extend( '$text', { allowAttributes: SUPERSCRIPT } );
+
+		// Build converter from model to view for data and editing pipelines.
+
+		editor.conversion.attributeToElement( {
+			model: SUPERSCRIPT,
+			view: 'sup',
+			upcastAlso: [
+				{
+					styles: {
+						'vertical-align': 'super'
+					}
+				}
+			]
+		} );
+
+		// Create super command.
+		editor.commands.add( SUPERSCRIPT, new AttributeCommand( editor, SUPERSCRIPT ) );
+	}
+}

+ 49 - 0
packages/ckeditor5-basic-styles/src/superscript/superscriptui.js

@@ -0,0 +1,49 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/**
+ * @module basic-styles/superscript/superscriptui
+ */
+
+import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
+import ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';
+
+import superscriptIcon from '../../theme/icons/superscript.svg';
+
+const SUPERSCRIPT = 'superscript';
+
+/**
+ * The superscript UI feature. It introduces the Superscript button.
+ *
+ * @extends module:core/plugin~Plugin
+ */
+export default class SuperscriptUI extends Plugin {
+	/**
+	 * @inheritDoc
+	 */
+	init() {
+		const editor = this.editor;
+		const t = editor.t;
+
+		// Add superscript button to feature components.
+		editor.ui.componentFactory.add( SUPERSCRIPT, locale => {
+			const command = editor.commands.get( SUPERSCRIPT );
+			const view = new ButtonView( locale );
+
+			view.set( {
+				label: t( 'Superscript' ),
+				icon: superscriptIcon,
+				tooltip: true
+			} );
+
+			view.bind( 'isOn', 'isEnabled' ).to( command, 'value', 'isEnabled' );
+
+			// Execute command.
+			this.listenTo( view, 'execute', () => editor.execute( SUPERSCRIPT ) );
+
+			return view;
+		} );
+	}
+}

+ 1 - 1
packages/ckeditor5-basic-styles/tests/manual/basic-styles.html

@@ -1,3 +1,3 @@
 <div id="editor">
 <div id="editor">
-	<p><i>This</i> <s>is</s> <code>an</code> <strong>editor</strong> <u>instance</u>.</p>
+	<p><i>This</i> <s>is</s> <code>an</code> <strong>editor</strong> <u>instance</u>, X<sub>1</sub>, X<sup>2</sup>.</p>
 </div>
 </div>

+ 4 - 2
packages/ckeditor5-basic-styles/tests/manual/basic-styles.js

@@ -13,11 +13,13 @@ import Italic from '../../src/italic';
 import Strikethrough from '../../src/strikethrough';
 import Strikethrough from '../../src/strikethrough';
 import Underline from '../../src/underline';
 import Underline from '../../src/underline';
 import Code from '../../src/code';
 import Code from '../../src/code';
+import Subscript from '../../src/subscript';
+import Superscript from '../../src/Superscript';
 
 
 ClassicEditor
 ClassicEditor
 	.create( document.querySelector( '#editor' ), {
 	.create( document.querySelector( '#editor' ), {
-		plugins: [ Essentials, Paragraph, Bold, Italic, Strikethrough, Underline, Code ],
-		toolbar: [ 'bold', 'italic', 'strikethrough', 'underline', 'code', 'undo', 'redo' ]
+		plugins: [ Essentials, Paragraph, Bold, Italic, Strikethrough, Underline, Code, Subscript, Superscript ],
+		toolbar: [ 'bold', 'italic', 'strikethrough', 'underline', 'code', 'undo', 'redo', 'subscript', 'superscript' ]
 	} )
 	} )
 	.then( editor => {
 	.then( editor => {
 		window.editor = editor;
 		window.editor = editor;

+ 4 - 2
packages/ckeditor5-basic-styles/tests/manual/basic-styles.md

@@ -5,5 +5,7 @@
   * bold **"editor"**,
   * bold **"editor"**,
   * underline "instance",
   * underline "instance",
   * strikethrough ~~"is"~~,
   * strikethrough ~~"is"~~,
-  * code `"an"`.
-2. Test the bold, italic, strikethrough, underline and code features live.
+  * code `"an"`,
+  * subscript X<sub>1</sub>,
+  * superscript X<sup>2</sup>.
+2. Test the bold, italic, strikethrough, underline, code, subscript and superscript features live.

+ 18 - 0
packages/ckeditor5-basic-styles/tests/subscript.js

@@ -0,0 +1,18 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+import Subscript from '../src/subscript';
+import SubEditing from '../src/subscript/subscriptediting';
+import SubUI from '../src/subscript/subscriptui';
+
+describe( 'Subscript', () => {
+	it( 'should require SubEditing and SubUI', () => {
+		expect( Subscript.requires ).to.deep.equal( [ SubEditing, SubUI ] );
+	} );
+
+	it( 'should be named', () => {
+		expect( Subscript.pluginName ).to.equal( 'Subscript' );
+	} );
+} );

+ 87 - 0
packages/ckeditor5-basic-styles/tests/subscript/subscriptediting.js

@@ -0,0 +1,87 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+import SubEditing from '../../src/subscript/subscriptediting';
+
+import VirtualTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/virtualtesteditor';
+import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
+import AttributeCommand from '../../src/attributecommand';
+
+import { getData as getModelData, setData as setModelData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';
+import { getData as getViewData } from '@ckeditor/ckeditor5-engine/src/dev-utils/view';
+
+describe( 'SubEditing', () => {
+	let editor, model;
+
+	beforeEach( () => {
+		return VirtualTestEditor
+			.create( {
+				plugins: [ Paragraph, SubEditing ]
+			} )
+			.then( newEditor => {
+				editor = newEditor;
+				model = editor.model;
+			} );
+	} );
+
+	afterEach( () => {
+		return editor.destroy();
+	} );
+
+	it( 'should be loaded', () => {
+		expect( editor.plugins.get( SubEditing ) ).to.be.instanceOf( SubEditing );
+	} );
+
+	it( 'should set proper schema rules', () => {
+		expect( model.schema.checkAttribute( [ '$root', '$block', '$text' ], 'subscript' ) ).to.be.true;
+		expect( model.schema.checkAttribute( [ '$clipboardHolder', '$text' ], 'subscript' ) ).to.be.true;
+	} );
+
+	describe( 'command', () => {
+		it( 'should register subscript command', () => {
+			const command = editor.commands.get( 'subscript' );
+
+			expect( command ).to.be.instanceOf( AttributeCommand );
+			expect( command ).to.have.property( 'attributeKey', 'subscript' );
+		} );
+	} );
+
+	describe( 'data pipeline conversions', () => {
+		it( 'should convert <sub> to sub attribute', () => {
+			editor.setData( '<p><sub>foo</sub>bar</p>' );
+
+			expect( getModelData( model, { withoutSelection: true } ) )
+				.to.equal( '<paragraph><$text subscript="true">foo</$text>bar</paragraph>' );
+
+			expect( editor.getData() ).to.equal( '<p><sub>foo</sub>bar</p>' );
+		} );
+
+		it( 'should convert vertical-align:sub to sub attribute', () => {
+			editor.setData( '<p><span style="vertical-align: sub;">foo</span>bar</p>' );
+
+			expect( getModelData( model, { withoutSelection: true } ) )
+				.to.equal( '<paragraph><$text subscript="true">foo</$text>bar</paragraph>' );
+
+			expect( editor.getData() ).to.equal( '<p><sub>foo</sub>bar</p>' );
+		} );
+
+		it( 'should be integrated with autoparagraphing', () => {
+			editor.setData( '<sub>foo</sub>bar' );
+
+			expect( getModelData( model, { withoutSelection: true } ) )
+				.to.equal( '<paragraph><$text subscript="true">foo</$text>bar</paragraph>' );
+
+			expect( editor.getData() ).to.equal( '<p><sub>foo</sub>bar</p>' );
+		} );
+	} );
+
+	describe( 'editing pipeline conversion', () => {
+		it( 'should convert attribute', () => {
+			setModelData( model, '<paragraph><$text subscript="true">foo</$text>bar</paragraph>' );
+
+			expect( getViewData( editor.editing.view, { withoutSelection: true } ) ).to.equal( '<p><sub>foo</sub>bar</p>' );
+		} );
+	} );
+} );

+ 68 - 0
packages/ckeditor5-basic-styles/tests/subscript/subscriptui.js

@@ -0,0 +1,68 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/* globals document */
+
+import ClassicTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/classictesteditor';
+import SubscriptEditing from '../../src/subscript/subscriptediting';
+import SubscriptUI from '../../src/subscript/subscriptui';
+import ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';
+import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils';
+
+import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
+
+describe( 'SubscriptUI', () => {
+	let editor, subView;
+
+	testUtils.createSinonSandbox();
+
+	beforeEach( () => {
+		const editorElement = document.createElement( 'div' );
+		document.body.appendChild( editorElement );
+
+		return ClassicTestEditor
+			.create( editorElement, {
+				plugins: [ Paragraph, SubscriptEditing, SubscriptUI ]
+			} )
+			.then( newEditor => {
+				editor = newEditor;
+
+				subView = editor.ui.componentFactory.create( 'subscript' );
+			} );
+	} );
+
+	afterEach( () => {
+		return editor.destroy();
+	} );
+
+	it( 'should register subscript feature component', () => {
+		expect( subView ).to.be.instanceOf( ButtonView );
+		expect( subView.isOn ).to.be.false;
+		expect( subView.label ).to.equal( 'Subscript' );
+		expect( subView.icon ).to.match( /<svg / );
+	} );
+
+	it( 'should execute subscript command on model execute event', () => {
+		const executeSpy = testUtils.sinon.spy( editor, 'execute' );
+
+		subView.fire( 'execute' );
+
+		sinon.assert.calledOnce( executeSpy );
+		sinon.assert.calledWithExactly( executeSpy, 'subscript' );
+	} );
+
+	it( 'should bind model to subscript command', () => {
+		const command = editor.commands.get( 'subscript' );
+
+		expect( subView.isOn ).to.be.false;
+		expect( subView.isEnabled ).to.be.true;
+
+		command.value = true;
+		expect( subView.isOn ).to.be.true;
+
+		command.isEnabled = false;
+		expect( subView.isEnabled ).to.be.false;
+	} );
+} );

+ 18 - 0
packages/ckeditor5-basic-styles/tests/superscript.js

@@ -0,0 +1,18 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+import Superscript from '../src/superscript';
+import SuperEditing from '../src/superscript/superscriptediting';
+import SuperUI from '../src/superscript/superscriptui';
+
+describe( 'Superscript', () => {
+	it( 'should require SuperEditing and SuperUI', () => {
+		expect( Superscript.requires ).to.deep.equal( [ SuperEditing, SuperUI ] );
+	} );
+
+	it( 'should be named', () => {
+		expect( Superscript.pluginName ).to.equal( 'Superscript' );
+	} );
+} );

+ 87 - 0
packages/ckeditor5-basic-styles/tests/superscript/superscriptediting.js

@@ -0,0 +1,87 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+import SuperEditing from '../../src/superscript/superscriptediting';
+
+import VirtualTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/virtualtesteditor';
+import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
+import AttributeCommand from '../../src/attributecommand';
+
+import { getData as getModelData, setData as setModelData } from '@ckeditor/ckeditor5-engine/src/dev-utils/model';
+import { getData as getViewData } from '@ckeditor/ckeditor5-engine/src/dev-utils/view';
+
+describe( 'SuperEditing', () => {
+	let editor, model;
+
+	beforeEach( () => {
+		return VirtualTestEditor
+			.create( {
+				plugins: [ Paragraph, SuperEditing ]
+			} )
+			.then( newEditor => {
+				editor = newEditor;
+				model = editor.model;
+			} );
+	} );
+
+	afterEach( () => {
+		return editor.destroy();
+	} );
+
+	it( 'should be loaded', () => {
+		expect( editor.plugins.get( SuperEditing ) ).to.be.instanceOf( SuperEditing );
+	} );
+
+	it( 'should set proper schema rules', () => {
+		expect( model.schema.checkAttribute( [ '$root', '$block', '$text' ], 'superscript' ) ).to.be.true;
+		expect( model.schema.checkAttribute( [ '$clipboardHolder', '$text' ], 'superscript' ) ).to.be.true;
+	} );
+
+	describe( 'command', () => {
+		it( 'should register superscript command', () => {
+			const command = editor.commands.get( 'superscript' );
+
+			expect( command ).to.be.instanceOf( AttributeCommand );
+			expect( command ).to.have.property( 'attributeKey', 'superscript' );
+		} );
+	} );
+
+	describe( 'data pipeline conversions', () => {
+		it( 'should convert <sup> to superscript attribute', () => {
+			editor.setData( '<p><sup>foo</sup>bar</p>' );
+
+			expect( getModelData( model, { withoutSelection: true } ) )
+				.to.equal( '<paragraph><$text superscript="true">foo</$text>bar</paragraph>' );
+
+			expect( editor.getData() ).to.equal( '<p><sup>foo</sup>bar</p>' );
+		} );
+
+		it( 'should convert vertical-align:super to super attribute', () => {
+			editor.setData( '<p><span style="vertical-align: super;">foo</span>bar</p>' );
+
+			expect( getModelData( model, { withoutSelection: true } ) )
+				.to.equal( '<paragraph><$text superscript="true">foo</$text>bar</paragraph>' );
+
+			expect( editor.getData() ).to.equal( '<p><sup>foo</sup>bar</p>' );
+		} );
+
+		it( 'should be integrated with autoparagraphing', () => {
+			editor.setData( '<sup>foo</sup>bar' );
+
+			expect( getModelData( model, { withoutSelection: true } ) )
+				.to.equal( '<paragraph><$text superscript="true">foo</$text>bar</paragraph>' );
+
+			expect( editor.getData() ).to.equal( '<p><sup>foo</sup>bar</p>' );
+		} );
+	} );
+
+	describe( 'editing pipeline conversion', () => {
+		it( 'should convert attribute', () => {
+			setModelData( model, '<paragraph><$text superscript="true">foo</$text>bar</paragraph>' );
+
+			expect( getViewData( editor.editing.view, { withoutSelection: true } ) ).to.equal( '<p><sup>foo</sup>bar</p>' );
+		} );
+	} );
+} );

+ 68 - 0
packages/ckeditor5-basic-styles/tests/superscript/superscriptui.js

@@ -0,0 +1,68 @@
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/* globals document */
+
+import ClassicTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/classictesteditor';
+import SuperscriptEditing from '../../src/superscript/superscriptediting';
+import SuperscriptUI from '../../src/superscript/superscriptui';
+import ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';
+import testUtils from '@ckeditor/ckeditor5-core/tests/_utils/utils';
+
+import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
+
+describe( 'SuperscriptUI', () => {
+	let editor, superView;
+
+	testUtils.createSinonSandbox();
+
+	beforeEach( () => {
+		const editorElement = document.createElement( 'div' );
+		document.body.appendChild( editorElement );
+
+		return ClassicTestEditor
+			.create( editorElement, {
+				plugins: [ Paragraph, SuperscriptEditing, SuperscriptUI ]
+			} )
+			.then( newEditor => {
+				editor = newEditor;
+
+				superView = editor.ui.componentFactory.create( 'superscript' );
+			} );
+	} );
+
+	afterEach( () => {
+		return editor.destroy();
+	} );
+
+	it( 'should register superscript feature component', () => {
+		expect( superView ).to.be.instanceOf( ButtonView );
+		expect( superView.isOn ).to.be.false;
+		expect( superView.label ).to.equal( 'Superscript' );
+		expect( superView.icon ).to.match( /<svg / );
+	} );
+
+	it( 'should execute superscript command on model execute event', () => {
+		const executeSpy = testUtils.sinon.spy( editor, 'execute' );
+
+		superView.fire( 'execute' );
+
+		sinon.assert.calledOnce( executeSpy );
+		sinon.assert.calledWithExactly( executeSpy, 'superscript' );
+	} );
+
+	it( 'should bind model to superscript command', () => {
+		const command = editor.commands.get( 'superscript' );
+
+		expect( superView.isOn ).to.be.false;
+		expect( superView.isEnabled ).to.be.true;
+
+		command.value = true;
+		expect( superView.isOn ).to.be.true;
+
+		command.isEnabled = false;
+		expect( superView.isEnabled ).to.be.false;
+	} );
+} );

+ 1 - 1
packages/ckeditor5-basic-styles/theme/icons/bold.svg

@@ -1 +1 @@
-<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg"><path d="M10.187 17H5.773c-.637 0-1.092-.138-1.364-.415-.273-.277-.409-.718-.409-1.323V4.738c0-.617.14-1.062.419-1.332.279-.27.73-.406 1.354-.406h4.68c.69 0 1.288.041 1.793.124.506.083.96.242 1.36.478.341.197.644.447.906.75a3.262 3.262 0 0 1 .808 2.162c0 1.401-.722 2.426-2.167 3.075C15.05 10.175 16 11.315 16 13.01a3.756 3.756 0 0 1-2.296 3.504 6.1 6.1 0 0 1-1.517.377c-.571.073-1.238.11-2 .11zm-.217-6.217H7v4.087h3.069c1.977 0 2.965-.69 2.965-2.072 0-.707-.256-1.22-.768-1.537-.512-.319-1.277-.478-2.296-.478zM7 5.13v3.619h2.606c.729 0 1.292-.067 1.69-.2a1.6 1.6 0 0 0 .91-.765c.165-.267.247-.566.247-.897 0-.707-.26-1.176-.778-1.409-.519-.232-1.31-.348-2.375-.348H7z" fill="#000" fill-rule="evenodd"/></svg>
+<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M10.187 17H5.773c-.637 0-1.092-.138-1.364-.415-.273-.277-.409-.718-.409-1.323V4.738c0-.617.14-1.062.419-1.332.279-.27.73-.406 1.354-.406h4.68c.69 0 1.288.041 1.793.124.506.083.96.242 1.36.478.341.197.644.447.906.75a3.262 3.262 0 0 1 .808 2.162c0 1.401-.722 2.426-2.167 3.075C15.05 10.175 16 11.315 16 13.01a3.756 3.756 0 0 1-2.296 3.504 6.1 6.1 0 0 1-1.517.377c-.571.073-1.238.11-2 .11zm-.217-6.217H7v4.087h3.069c1.977 0 2.965-.69 2.965-2.072 0-.707-.256-1.22-.768-1.537-.512-.319-1.277-.478-2.296-.478zM7 5.13v3.619h2.606c.729 0 1.292-.067 1.69-.2a1.6 1.6 0 0 0 .91-.765c.165-.267.247-.566.247-.897 0-.707-.26-1.176-.778-1.409-.519-.232-1.31-.348-2.375-.348H7z"/></svg>

+ 1 - 1
packages/ckeditor5-basic-styles/theme/icons/code.svg

@@ -1 +1 @@
-<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><g fill="#353535"><g transform="translate(2 5.6)"><path d="M10.5.1L15.7 4v1.3l-5.6 4c-.1.2-.3.2-.5.2-.3-.1-.6-.7-.6-1l.3-.4L14 4.6 9.5 1.4l-.2-.2c-.1-.3-.1-.6 0-.8.2-.2.5-.4.8-.4a.8.8 0 0 1 .4.1zM5.3.1L0 4v1.3l5.6 4c.1.2.3.2.5.2.3-.1.7-.7.6-1 0-.1 0-.3-.2-.4l-5-3.5 4.7-3.2.2-.2c.1-.3.1-.6 0-.8-.2-.2-.5-.4-.8-.4a.8.8 0 0 0-.3.1z"/></g></g></g></svg>
+<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M12.5 5.7l5.2 3.9v1.3l-5.6 4c-.1.2-.3.2-.5.2-.3-.1-.6-.7-.6-1l.3-.4 4.7-3.5L11.5 7l-.2-.2c-.1-.3-.1-.6 0-.8.2-.2.5-.4.8-.4a.8.8 0 0 1 .4.1zm-5.2 0L2 9.6v1.3l5.6 4c.1.2.3.2.5.2.3-.1.7-.7.6-1 0-.1 0-.3-.2-.4l-5-3.5L8.2 7l.2-.2c.1-.3.1-.6 0-.8-.2-.2-.5-.4-.8-.4a.8.8 0 0 0-.3.1z"/></svg>

+ 1 - 1
packages/ckeditor5-basic-styles/theme/icons/italic.svg

@@ -1 +1 @@
-<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M9.586 14.633l.021.004c-.036.335.095.655.393.962.082.083.173.15.274.201h1.474a.6.6 0 1 1 0 1.2H5.304a.6.6 0 0 1 0-1.2h1.15c.474-.07.809-.182 1.005-.334.157-.122.291-.32.404-.597l2.416-9.55a1.053 1.053 0 0 0-.281-.823 1.12 1.12 0 0 0-.442-.296H8.15a.6.6 0 0 1 0-1.2h6.443a.6.6 0 1 1 0 1.2h-1.195c-.376.056-.65.155-.823.296-.215.175-.423.439-.623.79l-2.366 9.347z" fill="#333" fill-rule="evenodd"/></svg>
+<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M9.586 14.633l.021.004c-.036.335.095.655.393.962.082.083.173.15.274.201h1.474a.6.6 0 1 1 0 1.2H5.304a.6.6 0 0 1 0-1.2h1.15c.474-.07.809-.182 1.005-.334.157-.122.291-.32.404-.597l2.416-9.55a1.053 1.053 0 0 0-.281-.823 1.12 1.12 0 0 0-.442-.296H8.15a.6.6 0 0 1 0-1.2h6.443a.6.6 0 1 1 0 1.2h-1.195c-.376.056-.65.155-.823.296-.215.175-.423.439-.623.79l-2.366 9.347z"/></svg>

+ 1 - 1
packages/ckeditor5-basic-styles/theme/icons/strikethrough.svg

@@ -1 +1 @@
-<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><g fill="#333" fill-rule="evenodd"><path d="M7 16.4c-.8-.4-1.5-.9-2.2-1.5a.6.6 0 0 1-.2-.5l.3-.6h1c1 1.2 2.1 1.7 3.7 1.7 1 0 1.8-.3 2.3-.6.6-.4.6-1.2.6-1.3.2-1.2-.9-2.1-.9-2.1h2.1c.3.7.4 1.2.4 1.7v.8l-.6 1.2c-.6.8-1.1 1-1.6 1.2a6 6 0 0 1-2.4.6c-1 0-1.8-.3-2.5-.6zM6.8 9L6 8.3c-.4-.5-.5-.8-.5-1.6 0-.7.1-1.3.5-1.8.4-.6 1-1 1.6-1.3a6.3 6.3 0 0 1 4.7 0 4 4 0 0 1 1.7 1l.3.7c0 .1.2.4-.2.7-.4.2-.9.1-1 0a3 3 0 0 0-1.2-1c-.4-.2-1-.3-2-.4-.7 0-1.4.2-2 .6-.8.6-1 .8-1 1.5 0 .8.5 1 1.2 1.5.6.4 1.1.7 1.9 1H6.8z"/><path fill-rule="nonzero" d="M3 10.5V9h14v1.5z"/></g></svg>
+<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><g><path d="M7 16.4c-.8-.4-1.5-.9-2.2-1.5a.6.6 0 0 1-.2-.5l.3-.6h1c1 1.2 2.1 1.7 3.7 1.7 1 0 1.8-.3 2.3-.6.6-.4.6-1.2.6-1.3.2-1.2-.9-2.1-.9-2.1h2.1c.3.7.4 1.2.4 1.7v.8l-.6 1.2c-.6.8-1.1 1-1.6 1.2a6 6 0 0 1-2.4.6c-1 0-1.8-.3-2.5-.6zM6.8 9L6 8.3c-.4-.5-.5-.8-.5-1.6 0-.7.1-1.3.5-1.8.4-.6 1-1 1.6-1.3a6.3 6.3 0 0 1 4.7 0 4 4 0 0 1 1.7 1l.3.7c0 .1.2.4-.2.7-.4.2-.9.1-1 0a3 3 0 0 0-1.2-1c-.4-.2-1-.3-2-.4-.7 0-1.4.2-2 .6-.8.6-1 .8-1 1.5 0 .8.5 1 1.2 1.5.6.4 1.1.7 1.9 1H6.8z"/><path d="M3 10.5V9h14v1.5z"/></g></svg>

+ 1 - 0
packages/ckeditor5-basic-styles/theme/icons/subscript.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M7.03 10.349l3.818-3.819a.8.8 0 1 1 1.132 1.132L8.16 11.48l3.819 3.818a.8.8 0 1 1-1.132 1.132L7.03 12.61l-3.818 3.82a.8.8 0 1 1-1.132-1.132L5.9 11.48 2.08 7.662A.8.8 0 1 1 3.212 6.53l3.818 3.82zm8.147 7.829h2.549c.254 0 .447.05.58.152a.49.49 0 0 1 .201.413.54.54 0 0 1-.159.393c-.105.108-.266.162-.48.162h-3.594c-.245 0-.435-.066-.572-.197a.621.621 0 0 1-.205-.463c0-.114.044-.265.132-.453a1.62 1.62 0 0 1 .288-.444c.433-.436.824-.81 1.172-1.122.348-.312.597-.517.747-.615.267-.183.49-.368.667-.553.177-.185.312-.375.405-.57.093-.194.139-.384.139-.57a1.008 1.008 0 0 0-.554-.917 1.197 1.197 0 0 0-.56-.133c-.426 0-.761.182-1.005.546a2.332 2.332 0 0 0-.164.39 1.609 1.609 0 0 1-.258.488c-.096.114-.237.17-.423.17a.558.558 0 0 1-.405-.156.568.568 0 0 1-.161-.427c0-.218.05-.446.151-.683.101-.238.252-.453.452-.646s.454-.349.762-.467a2.998 2.998 0 0 1 1.081-.178c.498 0 .923.076 1.274.228a1.916 1.916 0 0 1 1.004 1.032 1.984 1.984 0 0 1-.156 1.794c-.2.32-.405.572-.613.754-.208.182-.558.468-1.048.857-.49.39-.826.691-1.008.906a2.703 2.703 0 0 0-.24.309z"/></svg>

+ 1 - 0
packages/ckeditor5-basic-styles/theme/icons/superscript.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M15.677 8.678h2.549c.254 0 .447.05.58.152a.49.49 0 0 1 .201.413.54.54 0 0 1-.159.393c-.105.108-.266.162-.48.162h-3.594c-.245 0-.435-.066-.572-.197a.621.621 0 0 1-.205-.463c0-.114.044-.265.132-.453a1.62 1.62 0 0 1 .288-.444c.433-.436.824-.81 1.172-1.122.348-.312.597-.517.747-.615.267-.183.49-.368.667-.553.177-.185.312-.375.405-.57.093-.194.139-.384.139-.57a1.008 1.008 0 0 0-.554-.917 1.197 1.197 0 0 0-.56-.133c-.426 0-.761.182-1.005.546a2.332 2.332 0 0 0-.164.39 1.609 1.609 0 0 1-.258.488c-.096.114-.237.17-.423.17a.558.558 0 0 1-.405-.156.568.568 0 0 1-.161-.427c0-.218.05-.446.151-.683.101-.238.252-.453.452-.646s.454-.349.762-.467a2.998 2.998 0 0 1 1.081-.178c.498 0 .923.076 1.274.228a1.916 1.916 0 0 1 1.004 1.032 1.984 1.984 0 0 1-.156 1.794c-.2.32-.405.572-.613.754-.208.182-.558.468-1.048.857-.49.39-.826.691-1.008.906a2.703 2.703 0 0 0-.24.309zM7.03 10.349l3.818-3.819a.8.8 0 1 1 1.132 1.132L8.16 11.48l3.819 3.818a.8.8 0 1 1-1.132 1.132L7.03 12.61l-3.818 3.82a.8.8 0 1 1-1.132-1.132L5.9 11.48 2.08 7.662A.8.8 0 1 1 3.212 6.53l3.818 3.82z"/></svg>

+ 1 - 1
packages/ckeditor5-basic-styles/theme/icons/underline.svg

@@ -1 +1 @@
-<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><g fill="#333"><path fill-rule="nonzero" d="M3 18v-1.5h14V18z"/><path d="M5.2 10V3.6c0-.4.4-.6.8-.6.3 0 .7.2.7.6v6.2c0 2 1.3 2.8 3.2 2.8 1.9 0 3.4-.9 3.4-2.9V3.6c0-.3.4-.5.8-.5.3 0 .7.2.7.5V10c0 2.7-2.2 4-4.9 4-2.6 0-4.7-1.2-4.7-4z"/></g></g></svg>
+<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><g><path d="M3 18v-1.5h14V18z"/><path d="M5.2 10V3.6c0-.4.4-.6.8-.6.3 0 .7.2.7.6v6.2c0 2 1.3 2.8 3.2 2.8 1.9 0 3.4-.9 3.4-2.9V3.6c0-.3.4-.5.8-.5.3 0 .7.2.7.5V10c0 2.7-2.2 4-4.9 4-2.6 0-4.7-1.2-4.7-4z"/></g></svg>