formstrap 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/app/assets/javascripts/formstrap/controllers/redactor_controller.js +18 -0
  4. data/app/assets/javascripts/formstrap/controllers/select_controller.js +22 -18
  5. data/app/assets/javascripts/formstrap/index.js +5 -2
  6. data/app/assets/javascripts/formstrap/vendor/redactor/i18n/de.js +214 -0
  7. data/app/assets/javascripts/formstrap/vendor/redactor/i18n/en.js +214 -0
  8. data/app/assets/javascripts/formstrap/vendor/redactor/i18n/fr.js +214 -0
  9. data/app/assets/javascripts/formstrap/vendor/redactor/i18n/nl.js +214 -0
  10. data/app/assets/javascripts/formstrap/vendor/redactor/index.js +5 -0
  11. data/app/assets/javascripts/formstrap/vendor/redactor/plugins/emoji.js +332 -0
  12. data/app/assets/javascripts/formstrap/vendor/redactor/plugins/linkstyles.js +124 -0
  13. data/app/assets/javascripts/formstrap.js +1295 -148
  14. data/app/assets/stylesheets/formstrap/general.scss +0 -6
  15. data/app/assets/stylesheets/formstrap/vendor/overrides/redactor.scss +151 -0
  16. data/app/assets/stylesheets/formstrap/vendor/redactor.css +2535 -0
  17. data/app/assets/stylesheets/formstrap.css +2650 -5
  18. data/app/assets/stylesheets/formstrap.scss +4 -0
  19. data/app/models/formstrap/redactor_view.rb +57 -0
  20. data/app/models/formstrap/wysiwyg_view.rb +9 -1
  21. data/app/views/formstrap/{_redactorx.html.erb → _redactor.html.erb} +4 -7
  22. data/app/views/formstrap/_wysiwyg.html.erb +3 -5
  23. data/lib/formstrap/form_builder.rb +12 -4
  24. data/lib/formstrap/version.rb +1 -1
  25. data/package.json +2 -2
  26. data/yarn.lock +4 -4
  27. metadata +14 -5
  28. data/app/assets/javascripts/formstrap/controllers/redactorx_controller.js +0 -40
  29. data/app/models/formstrap/redactorx_view.rb +0 -57
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc7c89e02028fbd50ff04f97b36ad9ef3bcbc3a1e270d025a664a721a9755e7d
4
- data.tar.gz: 2375b43a0db037bcb58be9bac12d47079d7f4e5baaa03b08a5ea839053a3aaad
3
+ metadata.gz: 4b2d2e888ad5276d55adec6e93fa3c9d8f7a461c7b166d5b63828137fb69a59e
4
+ data.tar.gz: af940de7b13d8c07eb22b96494bddd6d61162c60dea21422ab547d0dcf96fa40
5
5
  SHA512:
6
- metadata.gz: c888b852f01b98134dae97d0a5573ac695c4525020a9fef792af903b9c7a894c5b85dce0172633246e78a0e5ed2825c89659ecf2ff2a663f5aea9b10d844002b
7
- data.tar.gz: 30ae20de2ddf908f64a82ca167bbc62fa6c0c6b744403e48ff053a9b6e1f293a323f3070947f3d29dd5e4509ef7cee20d42ec9db18d76adb53c8eddb79ee65aa
6
+ metadata.gz: 958941ba2f0ff2747a96de87aae82ef42bfb316a63742a964a254917304d0d080857b7230057aa30d3d0d1b4f19a59a998823be5fe0a4fd86a4b2e6011b6f6b5
7
+ data.tar.gz: 7c6c651c014d19ce4e85eecf8856339ae24049f8762be4ed942d5989ba150a13340aed3965bbbc55f67535e066b08d96b5b515129b10160e0af323209d43e0f7
data/README.md CHANGED
@@ -64,7 +64,7 @@ An overview of all the Formstrap / Ruby on Rails form helpers:
64
64
  | Media | media | N/A |
65
65
  | Number | number | number formstrap: false or number_field |
66
66
  | Password | password | password formstrap: false or password_field |
67
- | RedactorX * | redactorx | N/A |
67
+ | Redactor * | redactor | N/A |
68
68
  | Search | search | N/A |
69
69
  | Select | select | select formstrap: false |
70
70
  | Switch | switch | N/A |
@@ -77,7 +77,7 @@ An overview of all the Formstrap / Ruby on Rails form helpers:
77
77
  \* Formstrap provides the implementation of these 3rd party libraries, however it is up to the user to provide the
78
78
  correct assets.
79
79
 
80
- As you might have noticed, Formstrap provides more helpers than what is standard in Ruby on Rails, e.g. ```Media```, ```Date range```, ```RedactorX``` ...
80
+ As you might have noticed, Formstrap provides more helpers than what is standard in Ruby on Rails, e.g. ```Media```, ```Date range```, ```Redactor``` ...
81
81
 
82
82
  ### Altering Formstrap helpers
83
83
 
@@ -0,0 +1,18 @@
1
+ /* global Redactor */
2
+ import { Controller } from '@hotwired/stimulus'
3
+
4
+ export default class extends Controller {
5
+ connect () {
6
+ this.initRedactor()
7
+ }
8
+
9
+ initRedactor () {
10
+ if (typeof Redactor === 'undefined') {
11
+ console.error('Redactor is a paid module and is not included in Headmin. Please purchase it and import it as a JS module')
12
+ return false
13
+ }
14
+
15
+ const options = JSON.parse(this.element.getAttribute('data-redactor-options'))
16
+ Redactor(this.element, options)
17
+ }
18
+ }
@@ -9,30 +9,34 @@ export default class extends Controller {
9
9
  }
10
10
  }
11
11
 
12
- defaultOptions (locale) {
13
- const defaultOptions = {
12
+ defaultOptions () {
13
+ return {
14
+ plugins: ['drag_drop', 'caret_position', 'input_autogrow'],
15
+ persist: false,
16
+ create: true,
17
+ render: this.renderOptions()[I18n.locale]
18
+ }
19
+ }
20
+
21
+ renderOptions () {
22
+ return {
14
23
  en: {
15
- render: {
16
- option_create: function (data, escape) {
17
- return '<div class="create">Add <strong>' + escape(data.input) + '</strong>&hellip;</div>'
18
- },
19
- no_results: function (data, escape) {
20
- return '<div class="no-results">No results found</div>'
21
- }
24
+ option_create: function (data, escape) {
25
+ return '<div class="create">Add <strong>' + escape(data.input) + '</strong>&hellip;</div>'
26
+ },
27
+ no_results: function (data, escape) {
28
+ return '<div class="no-results">No results found</div>'
22
29
  }
23
30
  },
24
31
  nl: {
25
- render: {
26
- option_create: function (data, escape) {
27
- return '<div class="create">Voeg <strong>' + escape(data.input) + '</strong> toe &hellip;</div>'
28
- },
29
- no_results: function (data, escape) {
30
- return '<div class="no-results">Geen resultaten gevonden</div>'
31
- }
32
+ option_create: function (data, escape) {
33
+ return '<div class="create">Voeg <strong>' + escape(data.input) + '</strong> toe &hellip;</div>'
34
+ },
35
+ no_results: function (data, escape) {
36
+ return '<div class="no-results">Geen resultaten gevonden</div>'
32
37
  }
33
38
  }
34
39
  }
35
- return defaultOptions[locale]
36
40
  }
37
41
 
38
42
  hasTags () {
@@ -40,7 +44,7 @@ export default class extends Controller {
40
44
  }
41
45
 
42
46
  initTomSelect () {
43
- const defaultOptions = this.defaultOptions(I18n.locale)
47
+ const defaultOptions = this.defaultOptions()
44
48
  const options = { create: this.hasTags() }
45
49
 
46
50
  /* eslint-disable no-new */
@@ -11,11 +11,14 @@ import MediaModalController from './controllers/media_modal_controller'
11
11
  import NestedPreviewController from './controllers/nested_preview_controller'
12
12
  import PopupController from './controllers/popup_controller'
13
13
  import PreviewController from './controllers/preview_controller'
14
- import RedactorxController from './controllers/redactorx_controller'
14
+ import RedactorController from './controllers/redactor_controller'
15
15
  import RepeaterController from './controllers/repeater_controller'
16
16
  import SelectController from './controllers/select_controller'
17
17
  import TextareaController from './controllers/textarea_controller'
18
18
 
19
+ // Import redactor dependencies
20
+ import './vendor/redactor'
21
+
19
22
  export class Formstrap {
20
23
  static start () {
21
24
  window.Stimulus = window.Stimulus || Application.start()
@@ -30,7 +33,7 @@ export class Formstrap {
30
33
  Stimulus.register('nested-preview', NestedPreviewController)
31
34
  Stimulus.register('popup', PopupController)
32
35
  Stimulus.register('preview', PreviewController)
33
- Stimulus.register('redactorx', RedactorxController)
36
+ Stimulus.register('redactor', RedactorController)
34
37
  Stimulus.register('repeater', RepeaterController)
35
38
  Stimulus.register('select', SelectController)
36
39
  Stimulus.register('textarea', TextareaController)
@@ -0,0 +1,214 @@
1
+ /* global Redactor */
2
+ Redactor.lang.de = {
3
+ accessibility: {
4
+ 'help-label': 'Texteditor'
5
+ },
6
+ placeholders: {
7
+ figcaption: 'Beschreibung eingeben (optional)'
8
+ },
9
+ modal: {
10
+ link: 'Link',
11
+ image: 'Bild',
12
+ 'add-image': 'Bild hinzufügen'
13
+ },
14
+ embed: {
15
+ embed: 'Einbetten',
16
+ caption: 'Beschriftung',
17
+ description: 'Fügen Sie einen Einbettungscode ein oder geben Sie die URL ein (nur Vimeo- oder YouTube-Video)',
18
+ 'responsive-video': 'Responsives Video'
19
+ },
20
+ image: {
21
+ or: 'oder',
22
+ 'alt-text': 'Alternativer Text',
23
+ link: 'Link',
24
+ width: 'Breite',
25
+ caption: 'Beschriftung',
26
+ 'link-in-new-tab': 'Link in neuem Tab öffnen',
27
+ 'url-placeholder': 'URL des Bildes einfügen...',
28
+ 'upload-new-placeholder': 'Zum Hochladen eines neuen Bildes ziehen<br>oder klicken Sie, um auszuwählen'
29
+ },
30
+ link: {
31
+ link: 'Link',
32
+ 'edit-link': 'Link bearbeiten',
33
+ unlink: 'Link entfernen',
34
+ 'link-in-new-tab': 'Link in neuem Tab öffnen',
35
+ text: 'Text',
36
+ url: 'URL'
37
+ },
38
+ table: {
39
+ width: 'Breite',
40
+ nowrap: 'Kein Zeilenumbruch',
41
+ 'table-cell': 'Tabellenzelle',
42
+ 'select-table': 'Tabelle auswählen',
43
+ 'select-cell': 'Zelle auswählen',
44
+ 'cell-setting': 'Zelleinstellung',
45
+ 'add-head': 'Kopfzeile hinzufügen',
46
+ 'remove-head': 'Kopfzeile entfernen',
47
+ 'add-row-below': 'Zeile unten hinzufügen',
48
+ 'add-row-above': 'Zeile oben hinzufügen',
49
+ 'remove-row': 'Zeile entfernen',
50
+ 'add-column-after': 'Spalte danach hinzufügen',
51
+ 'add-column-before': 'Spalte davor hinzufügen',
52
+ 'remove-column': 'Spalte entfernen',
53
+ 'delete-table': 'Tabelle löschen'
54
+ },
55
+ buttons: {
56
+ add: 'Hinzufügen',
57
+ insert: 'Einfügen',
58
+ save: 'Speichern',
59
+ cancel: 'Abbrechen',
60
+ delete: 'Löschen',
61
+ 'ai-tools': 'KI-Werkzeuge',
62
+ 'ai-image': 'KI-Bild',
63
+ html: 'HTML',
64
+ format: 'Format',
65
+ bold: 'Fett',
66
+ italic: 'Kursiv',
67
+ deleted: 'Durchgestrichen',
68
+ 'more-formatting': 'Weitere Formatierungen',
69
+ link: 'Link',
70
+ 'link-text': 'Linktext',
71
+ unlink: 'Link entfernen',
72
+ image: 'Bild',
73
+ unwrap: 'Formatierung aufheben',
74
+ outset: 'Hervorhebung',
75
+ 'wrap-image': 'Bild einrahmen',
76
+ 'move-up': 'Nach oben verschieben',
77
+ 'move-down': 'Nach unten verschieben',
78
+ list: 'Liste',
79
+ 'numbered-list': 'Nummerierte Liste',
80
+ 'bullet-list': 'Aufzählung',
81
+ indent: 'Einrücken',
82
+ outdent: 'Ausrücken',
83
+ 'definition-list': 'Definitionslite',
84
+ hotkeys: 'Tastenkombinationen',
85
+ undo: 'Rückgängig machen',
86
+ redo: 'Wiederherstellen',
87
+ toggle: 'Umschalten',
88
+ duplicate: 'Duplizieren',
89
+ table: 'Tabelle',
90
+ embed: 'Einbetten',
91
+ quote: 'Zitat',
92
+ layout: 'Layout',
93
+ wrapper: 'Umschlag',
94
+ todo: 'Aufgabe',
95
+ 'code-snippet': 'Code-Schnipsel',
96
+ line: 'Linie',
97
+ parent: 'Elternteil',
98
+ code: 'Code',
99
+ underline: 'Unterstreichen',
100
+ highlight: 'Hervorheben',
101
+ superscript: 'Hochgestellt',
102
+ subscript: 'Tiefgestellt',
103
+ 'clear-all-styles': 'Alle Stile löschen',
104
+ heading: 'Überschrift',
105
+ text: 'Text',
106
+ address: 'Adresse'
107
+ },
108
+ colorpicker: {
109
+ 'remove-color': 'Farbe entfernen',
110
+ 'remove-background': 'Hintergrundfarbe entfernen',
111
+ color: 'Farbe',
112
+ background: 'Hintergrund',
113
+ 'set-color': 'Farbe einstellen'
114
+ },
115
+ ai: {
116
+ 'placeholder-image': 'Beschreiben Sie das Bild, das Sie generieren möchten.',
117
+ 'placeholder-text': 'Sagen Sie mir, was Sie schreiben möchten.',
118
+ send: 'Senden',
119
+ stop: 'Stoppen',
120
+ discard: 'Verwerfen',
121
+ insert: 'Einfügen',
122
+ prompt: 'Aufforderung'
123
+ },
124
+ pathbar: {
125
+ title: 'Körper'
126
+ },
127
+ layout: {
128
+ 'single-column': 'Eine Spalte',
129
+ 'two-columns': 'Zwei Spalten',
130
+ 'three-columns': 'Drei Spalten',
131
+ 'four-columns': 'Vier Spalten'
132
+ },
133
+ outset: {
134
+ 'outset-none': 'Keine Hervorhebung',
135
+ 'outset-left': 'Hervorhebung links',
136
+ 'outset-both': 'Hervorhebung beidseitig',
137
+ 'outset-right': 'Hervorhebung rechts'
138
+ },
139
+ wrap: {
140
+ 'wrap-none': 'Kein Einrahmen',
141
+ 'wrap-left': 'Links einrahmen',
142
+ 'wrap-center': 'Zentriert einrahmen',
143
+ 'wrap-right': 'Rechts einrahmen'
144
+ },
145
+ blocks: {
146
+ address: 'Adresse',
147
+ cell: 'Zelle',
148
+ column: 'Spalte',
149
+ dlist: 'Definitionenliste',
150
+ embed: 'Einbetten',
151
+ figcaption: 'Beschriftung',
152
+ heading: 'Überschrift',
153
+ image: 'Bild',
154
+ wrapper: 'Umschlag',
155
+ layout: 'Layout',
156
+ line: 'Linie',
157
+ list: 'Liste',
158
+ listitem: 'Element',
159
+ noneditable: 'Nicht bearbeitbar',
160
+ pre: 'Vorformatiert',
161
+ quote: 'Zitat',
162
+ row: 'Zeile',
163
+ table: 'Tabelle',
164
+ text: 'Text',
165
+ todo: 'Aufgabe',
166
+ todoitem: 'Element',
167
+ mergetag: 'Zusammenführungszeichen'
168
+ },
169
+ hotkeys: {
170
+ 'meta-shift-a': 'Text im Block auswählen',
171
+ 'meta-a': 'Alle Blöcke auswählen',
172
+ 'meta-z': 'Rückgängig machen',
173
+ 'meta-shift-z': 'Wiederherstellen',
174
+ 'meta-shift-m': 'Inline-Formatierung entfernen',
175
+ 'meta-b': 'Fett',
176
+ 'meta-i': 'Kursiv',
177
+ 'meta-u': 'Unterstreichen',
178
+ 'meta-h': 'Hochgestellt',
179
+ 'meta-l': 'Tiefgestellt',
180
+ 'meta-k': 'Link',
181
+ 'meta-alt-0': 'Normaler Text',
182
+ 'meta-alt-1': 'Überschrift 1',
183
+ 'meta-alt-2': 'Überschrift 2',
184
+ 'meta-alt-3': 'Überschrift 3',
185
+ 'meta-alt-4': 'Überschrift 4',
186
+ 'meta-alt-5': 'Überschrift 5',
187
+ 'meta-alt-6': 'Überschrift 6',
188
+ 'meta-shift-7': 'Nummerierte Liste',
189
+ 'meta-shift-8': 'Ungeordnete Liste',
190
+ 'meta-indent': 'Einzug',
191
+ 'meta-outdent': 'Ausrückung',
192
+ 'meta-shift-backspace': 'Block löschen',
193
+ 'meta-shift-o': 'Block hinzufügen',
194
+ 'meta-shift-d': 'Block duplizieren',
195
+ 'meta-shift-up': 'Zeile nach oben verschieben',
196
+ 'meta-shift-down': 'Zeile nach unten verschieben'
197
+ },
198
+ emoji: {
199
+ emoji: 'Emoji',
200
+ favorites: 'Favoriten',
201
+ smileys: 'Smileys',
202
+ gestures: 'Gesten',
203
+ animals: 'Tiere',
204
+ food: 'Essen',
205
+ activities: 'Aktivitäten',
206
+ travel: 'Reisen'
207
+ },
208
+ linkstyles: {
209
+ label: 'Stile',
210
+ link: 'Link',
211
+ primary: 'Primärer Button',
212
+ secondary: 'Sekundärer Button'
213
+ }
214
+ }
@@ -0,0 +1,214 @@
1
+ /* global Redactor */
2
+ Redactor.lang.en = {
3
+ accessibility: {
4
+ 'help-label': 'Rich text editor'
5
+ },
6
+ placeholders: {
7
+ figcaption: 'Type caption (optional)'
8
+ },
9
+ modal: {
10
+ link: 'Link',
11
+ image: 'Image',
12
+ 'add-image': 'Add Image'
13
+ },
14
+ embed: {
15
+ embed: 'Embed',
16
+ caption: 'Caption',
17
+ description: 'Paste any embed/html code or enter the url (vimeo or youtube video only)',
18
+ 'responsive-video': 'Responsive video'
19
+ },
20
+ image: {
21
+ or: 'or',
22
+ 'alt-text': 'Alt Text',
23
+ link: 'Link',
24
+ width: 'Width',
25
+ caption: 'Caption',
26
+ 'link-in-new-tab': 'Open link in new tab',
27
+ 'url-placeholder': 'Paste url of image...',
28
+ 'upload-new-placeholder': 'Drag to upload a new image<br>or click to select'
29
+ },
30
+ link: {
31
+ link: 'Linkje',
32
+ 'edit-link': 'Edit Link',
33
+ unlink: 'Unlink',
34
+ 'link-in-new-tab': 'Open link in new tab',
35
+ text: 'Text',
36
+ url: 'URL'
37
+ },
38
+ table: {
39
+ width: 'Width',
40
+ nowrap: 'Nowrap',
41
+ 'table-cell': 'Table cell',
42
+ 'select-table': 'Select table',
43
+ 'select-cell': 'Select cell',
44
+ 'cell-setting': 'Cell setting',
45
+ 'add-head': 'Add head',
46
+ 'remove-head': 'Remove head',
47
+ 'add-row-below': 'Add row below',
48
+ 'add-row-above': 'Add row above',
49
+ 'remove-row': 'Remove row',
50
+ 'add-column-after': 'Add column after',
51
+ 'add-column-before': 'Add column before',
52
+ 'remove-column': 'Remove column',
53
+ 'delete-table': 'Delete table'
54
+ },
55
+ buttons: {
56
+ add: 'Add',
57
+ insert: 'Insert',
58
+ save: 'Save',
59
+ cancel: 'Cancel',
60
+ delete: 'Delete',
61
+ 'ai-tools': 'AI Tools',
62
+ 'ai-image': 'AI Image',
63
+ html: 'HTML',
64
+ format: 'Format',
65
+ bold: 'Bold',
66
+ italic: 'Italic',
67
+ deleted: 'Deleted',
68
+ 'more-formatting': 'More formatting',
69
+ link: 'Link',
70
+ 'link-text': 'Link Text',
71
+ unlink: 'Unlink',
72
+ image: 'Image',
73
+ unwrap: 'Unwrap',
74
+ outset: 'Outset',
75
+ 'wrap-image': 'Wrap image',
76
+ 'move-up': 'Move up',
77
+ 'move-down': 'Move down',
78
+ list: 'List',
79
+ 'numbered-list': 'Numbered list',
80
+ 'bullet-list': 'Bullet list',
81
+ indent: 'Indent',
82
+ outdent: 'Outdent',
83
+ 'definition-list': 'Definition list',
84
+ hotkeys: 'Hotkeys',
85
+ undo: 'Undo',
86
+ redo: 'Redo',
87
+ toggle: 'Toggle',
88
+ duplicate: 'Duplicate',
89
+ table: 'Table',
90
+ embed: 'Embed',
91
+ quote: 'Quote',
92
+ layout: 'Layout',
93
+ wrapper: 'Wrapper',
94
+ todo: 'Todo',
95
+ 'code-snippet': 'Code snippet',
96
+ line: 'Line',
97
+ parent: 'Parent',
98
+ code: 'Code',
99
+ underline: 'Underline',
100
+ highlight: 'Highlight',
101
+ superscript: 'Superscript',
102
+ subscript: 'Subscript',
103
+ 'clear-all-styles': 'Clear all styles',
104
+ heading: 'Heading',
105
+ text: 'Text',
106
+ address: 'Address'
107
+ },
108
+ colorpicker: {
109
+ 'remove-color': 'Remove color',
110
+ 'remove-background': 'Remove background color',
111
+ color: 'Color',
112
+ background: 'Background',
113
+ 'set-color': 'Set color'
114
+ },
115
+ ai: {
116
+ 'placeholder-image': 'Describe the image you want to generate.',
117
+ 'placeholder-text': 'Tell me what you want to write.',
118
+ send: 'Send',
119
+ stop: 'Stop',
120
+ discard: 'Discard',
121
+ insert: 'Insert',
122
+ prompt: 'Prompt'
123
+ },
124
+ pathbar: {
125
+ title: 'Body'
126
+ },
127
+ layout: {
128
+ 'single-column': 'Single column',
129
+ 'two-columns': 'Two columns',
130
+ 'three-columns': 'Three columns',
131
+ 'four-columns': 'Four columns'
132
+ },
133
+ outset: {
134
+ 'outset-none': 'Outset none',
135
+ 'outset-left': 'Outset left',
136
+ 'outset-both': 'Outset both',
137
+ 'outset-right': 'Outset right'
138
+ },
139
+ wrap: {
140
+ 'wrap-none': 'Wrap none',
141
+ 'wrap-left': 'Wrap left',
142
+ 'wrap-center': 'Wrap center',
143
+ 'wrap-right': 'Wrap right'
144
+ },
145
+ blocks: {
146
+ address: 'Address',
147
+ cell: 'Cell',
148
+ column: 'Column',
149
+ dlist: 'Definition List',
150
+ embed: 'Embed',
151
+ figcaption: 'Figcaption',
152
+ heading: 'Heading',
153
+ image: 'Image',
154
+ wrapper: 'Wrapper',
155
+ layout: 'Layout',
156
+ line: 'Line',
157
+ list: 'List',
158
+ listitem: 'Item',
159
+ noneditable: 'Noneditable',
160
+ pre: 'Pre',
161
+ quote: 'Quote',
162
+ row: 'Row',
163
+ table: 'Table',
164
+ text: 'Text',
165
+ todo: 'Todo',
166
+ todoitem: 'Item',
167
+ mergetag: 'Mergetag'
168
+ },
169
+ hotkeys: {
170
+ 'meta-shift-a': 'Select text in the block',
171
+ 'meta-a': 'Select all blocks',
172
+ 'meta-z': 'Undo',
173
+ 'meta-shift-z': 'Redo',
174
+ 'meta-shift-m': 'Remove inline format',
175
+ 'meta-b': 'Bold',
176
+ 'meta-i': 'Italic',
177
+ 'meta-u': 'Underline',
178
+ 'meta-h': 'Superscript',
179
+ 'meta-l': 'Subscript',
180
+ 'meta-k': 'Link',
181
+ 'meta-alt-0': 'Normal text',
182
+ 'meta-alt-1': 'Heading 1',
183
+ 'meta-alt-2': 'Heading 2',
184
+ 'meta-alt-3': 'Heading 3',
185
+ 'meta-alt-4': 'Heading 4',
186
+ 'meta-alt-5': 'Heading 5',
187
+ 'meta-alt-6': 'Heading 6',
188
+ 'meta-shift-7': 'Ordered List',
189
+ 'meta-shift-8': 'Unordered List',
190
+ 'meta-indent': 'Indent',
191
+ 'meta-outdent': 'Outdent',
192
+ 'meta-shift-backspace': 'Delete block',
193
+ 'meta-shift-o': 'Add block',
194
+ 'meta-shift-d': 'Duplicate block',
195
+ 'meta-shift-up': 'Move line up',
196
+ 'meta-shift-down': 'Move line down'
197
+ },
198
+ emoji: {
199
+ emoji: 'Emoji',
200
+ favorites: 'Favorites',
201
+ smileys: 'Smileys',
202
+ gestures: 'Gestures',
203
+ animals: 'Animals',
204
+ food: 'Food',
205
+ activities: 'Activities',
206
+ travel: 'Travel'
207
+ },
208
+ linkstyles: {
209
+ label: 'Styles',
210
+ link: 'Link',
211
+ primary: 'Primary button',
212
+ secondary: 'Secondary button'
213
+ }
214
+ }