@instructure/canvas-rce 5.10.1 → 5.10.2

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.
package/lib/rce/style.js DELETED
@@ -1,843 +0,0 @@
1
- /*
2
- * Copyright (C) 2023 - present Instructure, Inc.
3
- *
4
- * This file is part of Canvas.
5
- *
6
- * Canvas is free software: you can redistribute it and/or modify it under
7
- * the terms of the GNU Affero General Public License as published by the Free
8
- * Software Foundation, version 3 of the License.
9
- *
10
- * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
11
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12
- * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
13
- * details.
14
- *
15
- * You should have received a copy of the GNU Affero General Public License along
16
- * with this program. If not, see <http://www.gnu.org/licenses/>.
17
- */
18
- import { getThemeVars } from '../getThemeVars';
19
- import { darken, lighten, alpha } from '@instructure/ui-color-utils';
20
- export default function buildStyle() {
21
- /*
22
- * If the theme variables to be used when generating the styles below
23
- * are dependent on the actual theme in use, you can also pull out the
24
- * `key` property from the return from `getThemeVars()` and do a bit of
25
- * if or switch statement logic to get the result you want.
26
- */
27
- const {
28
- variables,
29
- key
30
- } = getThemeVars();
31
- let themeCanvasLinkColor = '';
32
- let themeCanvasLinkDecoration = '';
33
- let themeCanvasTextColor = '';
34
- let themeCanvasBrandColor = '';
35
- let themeCanvasFocusBorderColor = '';
36
- let themeCanvasFocusBoxShadow = '';
37
- let themeCanvasEnabledColor = '';
38
- let themeCanvasPrimaryButtonBackground = '';
39
- let themeCanvasPrimaryButtonColor = '';
40
- let themeCanvasPrimaryButtonHoverBackground = '';
41
- let themeActiveMenuItemBackground = '';
42
- let themeActiveMenuItemLabelColor = '';
43
- let themeTableSelectorHighlightColor = '';
44
- let themeCanvasButtonBackground = '';
45
- let themeCanvasSecondaryButtonBorderColor = '';
46
-
47
- switch (key) {
48
- case 'canvas':
49
- themeCanvasLinkColor = variables['ic-link-color'];
50
- themeCanvasLinkDecoration = variables['ic-link-decoration'];
51
- themeCanvasTextColor = variables['ic-brand-font-color-dark'];
52
- themeCanvasBrandColor = variables['ic-brand-primary'];
53
- themeCanvasFocusBorderColor = variables['ic-brand-primary'];
54
- themeCanvasFocusBoxShadow = `0 0 0 2px ${variables['ic-brand-primary']}`;
55
- themeCanvasEnabledColor = variables['ic-brand-primary'];
56
- themeCanvasPrimaryButtonBackground = variables['ic-brand-primary'];
57
- themeCanvasPrimaryButtonColor = variables['ic-brand-button--primary-text'];
58
- themeCanvasPrimaryButtonHoverBackground = darken(variables['ic-brand-button--primary-bgd'], 10);
59
- themeActiveMenuItemBackground = variables['ic-brand-button--primary-bgd'];
60
- themeActiveMenuItemLabelColor = variables['ic-brand-button--primary-text'];
61
- themeTableSelectorHighlightColor = alpha(lighten(variables['ic-brand-primary'], 10), 50);
62
- break;
63
-
64
- case 'canvas-a11y':
65
- case 'canvas-high-contrast':
66
- themeCanvasButtonBackground = variables.colors.backgroundLight;
67
- themeCanvasSecondaryButtonBorderColor = variables.colors.borderMedium;
68
- themeCanvasLinkDecoration = 'underline';
69
- themeCanvasFocusBorderColor = variables.colors.borderBrand;
70
- themeCanvasFocusBoxShadow = `0 0 0 2px ${variables.colors.brand}`;
71
- themeCanvasBrandColor = variables.colors.brand;
72
- break;
73
-
74
- default:
75
- themeCanvasLinkColor = variables.colors.link;
76
- themeCanvasLinkDecoration = 'none';
77
- themeCanvasTextColor = variables.colors.textDarkest;
78
- themeCanvasBrandColor = variables.colors.brand;
79
- themeCanvasFocusBorderColor = variables.borders.brand;
80
- themeCanvasFocusBoxShadow = `0 0 0 2px ${variables.colors.brand}`;
81
- themeCanvasEnabledColor = variables.borders.brand;
82
- themeCanvasPrimaryButtonBackground = variables.colors.backgroundBrand;
83
- themeCanvasPrimaryButtonColor = variables.colors.textLightest;
84
- themeCanvasPrimaryButtonHoverBackground = darken(variables.colors.backgroundBrand, 10);
85
- themeActiveMenuItemBackground = variables.colors.backgroundBrand;
86
- themeActiveMenuItemLabelColor = variables.colors.textLightest;
87
- themeTableSelectorHighlightColor = alpha(lighten(variables.colors.brand, 10), 50);
88
- themeCanvasButtonBackground = variables.colors.backgroundLightest;
89
- themeCanvasSecondaryButtonBorderColor = darken(variables.colors.backgroundLight, 10);
90
- break;
91
- }
92
-
93
- const classNames = {
94
- root: 'canvas-rce__skins--root'
95
- };
96
- const toolbarButtonHoverBackgroundConst = darken(variables.colors.backgroundLightest, 5);
97
- const tinySplitButtonChevronHoverBackgroundConst = darken(toolbarButtonHoverBackgroundConst, 10);
98
- const theme = {
99
- canvasBackgroundColor: variables.colors.white,
100
- canvasTextColor: themeCanvasTextColor,
101
- canvasErrorColor: variables.colors.textDanger,
102
- canvasWarningColor: variables.colors.textWarning,
103
- canvasInfoColor: variables.colors.textInfo,
104
- canvasSuccessColor: variables.colors.textSuccess,
105
- canvasBorderColor: variables.colors.borderMedium,
106
- toolbarButtonHoverBackground: toolbarButtonHoverBackgroundConst,
107
- // copied from INSTUI "light" Button
108
- tinySplitButtonChevronHoverBackground: tinySplitButtonChevronHoverBackgroundConst,
109
- canvasBrandColor: themeCanvasBrandColor,
110
- activeMenuItemBackground: themeActiveMenuItemBackground,
111
- activeMenuItemLabelColor: themeActiveMenuItemLabelColor,
112
- tableSelectorHighlightColor: themeTableSelectorHighlightColor,
113
- canvasLinkColor: themeCanvasLinkColor,
114
- canvasLinkDecoration: themeCanvasLinkDecoration,
115
- // the instui default button
116
- canvasButtonBackground: themeCanvasButtonBackground,
117
- canvasButtonBorderColor: 'transparent',
118
- canvasButtonColor: variables.colors.textDarkest,
119
- canvasButtonHoverBackground: variables.colors.backgroundLightest,
120
- canvasButtonHoverColor: variables.colors.brand,
121
- canvasButtonActiveBackground: variables.colors.backgroundLightest,
122
- canvasButtonFontWeight: variables.typography.fontWeightNormal,
123
- canvasButtonFontSize: variables.typography.fontSizeMedium,
124
- canvasButtonLineHeight: variables.forms.inputHeightMedium,
125
- canvasButtonPadding: `0 ${variables.spacing.small}`,
126
- // the instui primary button
127
- canvasPrimaryButtonBackground: themeCanvasPrimaryButtonBackground,
128
- canvasPrimaryButtonColor: themeCanvasPrimaryButtonColor,
129
- canvasPrimaryButtonBorderColor: 'transparent',
130
- canvasPrimaryButtonHoverBackground: themeCanvasPrimaryButtonHoverBackground,
131
- canvasPrimaryButtonHoverColor: variables.colors.textLightest,
132
- // the instui secondary button
133
- canvasSecondaryButtonBackground: variables.colors.backgroundLight,
134
- canvasSecondaryButtonColor: variables.colors.textDarkest,
135
- canvasSecondaryButtonBorderColor: themeCanvasSecondaryButtonBorderColor,
136
- canvasSecondaryButtonHoverBackground: darken(variables.colors.backgroundLight, 10),
137
- canvasSecondaryButtonHoverColor: variables.colors.textDarkest,
138
- canvasFocusBorderColor: themeCanvasFocusBorderColor,
139
- canvasFocusBorderWidth: variables.borders.widthSmall,
140
- // canvas really uses widthMedium
141
- canvasFocusBoxShadow: themeCanvasFocusBoxShadow,
142
- canvasEnabledColor: themeCanvasEnabledColor,
143
- canvasEnabledBoxShadow: `inset 0 0 0.1875rem 0.0625rem ${darken(variables.colors.borderLightest, 25)}`,
144
- canvasFontFamily: variables.typography.fontFamily,
145
- canvasFontSize: '1rem',
146
- canvasFontSizeSmall: variables.typography.fontSizeSmall,
147
- // modal dialogs
148
- canvasModalShadow: variables.shadows.depth3,
149
- canvasModalHeadingPadding: variables.spacing.medium,
150
- canvasModalHeadingFontSize: variables.typography.fontSizeXLarge,
151
- canvasModalHeadingFontWeight: variables.typography.fontWeightNormal,
152
- canvasModalBodyPadding: variables.spacing.medium,
153
- canvasModalFooterPadding: variables.spacing.small,
154
- canvasModalFooterBackground: variables.colors.backgroundLight,
155
- canvasFormElementMargin: `0 0 ${variables.spacing.medium} 0`,
156
- canvasFormElementLabelColor: variables.colors.textDarkest,
157
- canvasFormElementLabelMargin: `0 0 ${variables.spacing.small} 0`,
158
- canvasFormElementLabelFontSize: variables.typography.fontSizeMedium,
159
- canvasFormElementLabelFontWeight: variables.typography.fontWeightBold,
160
- // a11y button badge
161
- canvasBadgeBackgroundColor: variables.colors.textInfo
162
- };
163
- const css = `
164
- .${classNames.root} {
165
- background-color: ${theme.canvasBackgroundColor};
166
- }
167
-
168
- .rce-wrapper textarea {
169
- width: 100%;
170
- box-sizing: border-box;
171
- min-height: auto;
172
- }
173
- .tox,
174
- .tox *:not(svg) {
175
- color: inherit;
176
- font-family: inherit;
177
- }
178
- [dir=rtl] .tox :not(svg) {
179
- direction: rtl;
180
- }
181
- .tox:not(.tox-tinymce-inline) .tox-editor-header {
182
- background-color: ${theme.canvasBackgroundColor};
183
- }
184
- .tox.tox-tinymce .screenreader-only {
185
- border: 0;
186
- clip: rect(0 0 0 0);
187
- height: 1px;
188
- margin: -1px;
189
- overflow: hidden;
190
- padding: 0;
191
- position: absolute;
192
- width: 1px;
193
- transform: translatez(0);
194
- }
195
- .tox-tinymce-aux {
196
- font-family: ${theme.canvasFontFamily};
197
- }
198
- .tox.tox-tinymce-aux {
199
- z-index: 10000;
200
- }
201
- .tox .tox-button {
202
- background-color: ${theme.canvasPrimaryButtonHoverBackground};
203
- font-family: ${theme.canvasFontFamily};
204
- font-weight: ${theme.canvasButtonFontWeight};
205
- font-size: ${theme.canvasButtonFontSize};
206
- color: ${theme.canvasPrimaryButtonColor};
207
- border-color: ${theme.canvasPrimaryButtonBorderColor};
208
- line-height: calc(${theme.canvasButtonLineHeight} - 2px);
209
- padding: ${theme.canvasButtonPadding};
210
- }
211
- .tox .tox-button[disabled] {
212
- opacity: 0.5;
213
- border-color: inherit;
214
- color: inherit;
215
- }
216
- .tox .tox-button:focus:not(:disabled) {
217
- background-color: ${theme.canvasPrimaryButtonBackground};
218
- color: ${theme.canvasPrimaryButtonColor};
219
- border-color: ${theme.canvasBackgroundColor};
220
- box-shadow: ${theme.canvasFocusBoxShadow};
221
- }
222
- .tox .tox-button:hover:not(:disabled) {
223
- background-color: ${theme.canvasPrimaryButtonHoverBackground};
224
- color: ${theme.canvasPrimaryButtonHoverColor};
225
- }
226
- .tox .tox-button:active:not(:disabled) {
227
- background-color: ${theme.canvasPrimaryButtonBackground};
228
- border-color: ${theme.canvasPrimaryButtonBorderColor};
229
- color: ${theme.canvasPrimaryButtonColor};
230
- }
231
- .tox .tox-button--secondary {
232
- background-color: ${theme.canvasSecondaryButtonBackground};
233
- border-color: ${theme.canvasSecondaryButtonBorderColor};
234
- color: ${theme.canvasSecondaryButtonColor};
235
- }
236
- .tox .tox-button--secondary[disabled] {
237
- background-color: inherit;
238
- border-color: ${theme.canvasSecondaryButtonBorderColor};
239
- color: inherit;
240
- opacity: 0.5;
241
- }
242
- .tox .tox-button--secondary:focus:not(:disabled) {
243
- background-color: inherit;
244
- border-color: ${theme.canvasFocusBorderColor};
245
- color: inherit;
246
- }
247
- .tox .tox-button--secondary:hover:not(:disabled) {
248
- background-color: ${theme.canvasSecondaryButtonHoverBackground};
249
- border-color: ${theme.canvasSecondaryButtonBorderColor};
250
- color: ${theme.canvasSecondaryButtonHoverColor};
251
- }
252
- .tox .tox-button--secondary:active:not(:disabled) {
253
- background-color: inherit;
254
- border-color: ${theme.canvasSecondaryButtonBorderColor};
255
- color: inherit;
256
- }
257
- .tox .tox-button-link {
258
- font-family: ${theme.canvasFontFamily};
259
- }
260
- .tox .tox-button--naked {
261
- background: ${theme.canvasButtonBackground};
262
- border-color: ${theme.canvasButtonBorderColor};
263
- color: ${theme.canvasButtonColor};
264
- }
265
- .tox .tox-button--naked:hover:not(:disabled) {
266
- background-color: ${theme.canvasButtonHoverBackground};
267
- border-color: ${theme.canvasButtonBorderColor};
268
- color: ${theme.canvasButtonHoverColor};
269
- }
270
- .tox .tox-button--naked:focus:not(:disabled) {
271
- background-color: ${theme.canvasButtonBackground};
272
- color: ${theme.canvasButtonColor};
273
- border-color: ${theme.canvasBackgroundColor};
274
- box-shadow: ${theme.canvasFocusBoxShadow};
275
- }
276
- .tox .tox-button--naked:active:not(:disabled) {
277
- background-color: inherit;
278
- color: inherit;
279
- }
280
- .tox .tox-button--naked.tox-button--icon {
281
- color: ${theme.canvasButtonColor};
282
- }
283
- .tox .tox-button--naked.tox-button--icon:hover:not(:disabled) {
284
- background: ${theme.canvasButtonHoverBackground};
285
- color: ${theme.canvasButtonHoverColor};
286
- }
287
- .tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg {
288
- fill: rgba(45, 59, 69, 0.3);
289
- }
290
- .tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg {
291
- fill: ${theme.canvasTextColor};
292
- }
293
- .tox .tox-checkbox__icons .tox-checkbox-icon__checked svg {
294
- fill: ${theme.canvasTextColor};
295
- }
296
- .tox input.tox-checkbox__input:focus + .tox-checkbox__icons {
297
- box-shadow: ${theme.canvasFocusBoxShadow};
298
- }
299
- .tox .tox-collection--list .tox-collection__group {
300
- border-color: ${theme.canvasBorderColor};
301
- }
302
- .tox .tox-collection__group-heading {
303
- background-color: #e3e6e8;
304
- color: rgba(45, 59, 69, 0.6);
305
- }
306
- .tox .tox-collection__item {
307
- color: ${theme.canvasTextColor};
308
- }
309
- .tox .tox-collection__item--state-disabled {
310
- background-color: unset;
311
- opacity: 0.5;
312
- cursor: default;
313
- }
314
- .tox .tox-collection--list .tox-collection__item--enabled {
315
- color: contrast(inherit, ${theme.canvasTextColor}, #fff);
316
- }
317
- .tox .tox-collection--list .tox-collection__item--active {
318
- background-color: ${theme.activeMenuItemBackground};
319
- color: ${theme.activeMenuItemLabelColor};
320
- }
321
- .tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled) {
322
- background-color: ${theme.activeMenuItemBackground};
323
- color: ${theme.activeMenuItemLabelColor};
324
- }
325
- .tox .tox-collection--toolbar .tox-collection__item--enabled {
326
- background-color: #cbced1;
327
- color: ${theme.canvasTextColor};
328
- }
329
- .tox .tox-collection--toolbar .tox-collection__item--active {
330
- background-color: #e0e2e3;
331
- color: ${theme.canvasTextColor};
332
- }
333
- .tox .tox-collection--grid .tox-collection__item--enabled {
334
- background-color: #cbced1;
335
- color: ${theme.canvasTextColor};
336
- }
337
- .tox .tox-collection--grid .tox-collection__item--active {
338
- background-color: #e0e2e3;
339
- color: ${theme.canvasTextColor};
340
- }
341
- .tox .tox-collection--list .tox-collection__item-icon:first-child {
342
- margin-right: 8px;
343
- }
344
- .tox .tox-collection__item-accessory {
345
- color: rgba(45, 59, 69, 0.6);
346
- }
347
- .tox .tox-sv-palette {
348
- border: 1px solid black;
349
- box-sizing: border-box;
350
- }
351
- .tox .tox-hue-slider {
352
- border: 1px solid black;
353
- }
354
- .tox .tox-rgb-form input.tox-invalid {
355
- /* Need !important to override Chrome's focus styling unfortunately */
356
- border-color: ${theme.canvasErrorColor} !important;
357
- }
358
- .tox .tox-rgb-form {
359
- padding: 2px;
360
- /* make room for the canvas focus ring on contained input elements */
361
- }
362
- .tox .tox-swatches__picker-btn:hover {
363
- background: #e0e2e3;
364
- }
365
- .tox .tox-comment-thread {
366
- background: ${theme.canvasBackgroundColor};
367
- }
368
- .tox .tox-comment {
369
- background: ${theme.canvasBackgroundColor};
370
- border-color: ${theme.canvasBorderColor};
371
- box-shadow: 0 4px 8px 0 rgba(45, 59, 69, 0.1);
372
- }
373
- .tox .tox-comment__header {
374
- color: ${theme.canvasTextColor};
375
- }
376
- .tox .tox-comment__date {
377
- color: rgba(45, 59, 69, 0.6);
378
- }
379
- .tox .tox-comment__body {
380
- color: ${theme.canvasTextColor};
381
- }
382
- .tox .tox-comment__expander p {
383
- color: rgba(45, 59, 69, 0.6);
384
- }
385
- .tox .tox-comment-thread__overlay::after {
386
- background: ${theme.canvasBackgroundColor};
387
- }
388
- .tox .tox-comment__overlay {
389
- background: ${theme.canvasBackgroundColor};
390
- }
391
- .tox .tox-comment__loading-text {
392
- color: ${theme.canvasTextColor};
393
- }
394
- .tox .tox-comment__overlaytext p {
395
- background-color: ${theme.canvasBackgroundColor};
396
- color: ${theme.canvasTextColor};
397
- }
398
- .tox .tox-comment__busy-spinner {
399
- background-color: ${theme.canvasBackgroundColor};
400
- }
401
- .tox .tox-user__avatar svg {
402
- fill: rgba(45, 59, 69, 0.6);
403
- }
404
- .tox .tox-user__name {
405
- color: rgba(45, 59, 69, 0.6);
406
- }
407
- .tox .tox-dialog-wrap__backdrop {
408
- background-color: rgba(255, 255, 255, 0.75);
409
- }
410
- .tox .tox-dialog {
411
- background-color: ${theme.canvasBackgroundColor};
412
- border-color: ${theme.canvasBorderColor};
413
- box-shadow: ${theme.canvasModalShadow};
414
- }
415
- .tox .tox-dialog__header {
416
- background-color: ${theme.canvasBackgroundColor};
417
- color: ${theme.canvasTextColor};
418
- border-bottom: 1px solid ${theme.canvasBorderColor};
419
- padding: ${theme.canvasModalHeadingPadding};
420
- margin: 0;
421
- }
422
- .tox .tox-dialog__title {
423
- font-family: ${theme.canvasFontFamily};
424
- font-size: ${theme.canvasModalHeadingFontSize};
425
- font-weight: ${theme.canvasModalHeadingFontWeight};
426
- }
427
- .tox .tox-dialog__body {
428
- color: ${theme.canvasTextColor};
429
- padding: ${theme.canvasModalBodyPadding};
430
- }
431
- .tox .tox-dialog__body-nav-item {
432
- color: rgba(45, 59, 69, 0.75);
433
- }
434
- .tox .tox-dialog__body-nav-item:focus {
435
- box-shadow: ${theme.canvasFocusBoxShadow};
436
- }
437
- .tox .tox-dialog__body-nav-item--active {
438
- border-bottom-color: ${theme.canvasBrandColor};
439
- color: ${theme.canvasBrandColor};
440
- }
441
- .tox .tox-dialog__footer {
442
- background-color: ${theme.canvasModalFooterBackground};
443
- border-top: 1px solid ${theme.canvasBorderColor};
444
- padding: ${theme.canvasModalFooterPadding};
445
- margin: 0;
446
- }
447
- .tox .tox-dialog__table tbody tr {
448
- border-bottom-color: ${theme.canvasBorderColor};
449
- }
450
- .tox .tox-dropzone {
451
- background: ${theme.canvasBackgroundColor};
452
- border: 2px dashed ${theme.canvasBorderColor};
453
- }
454
- .tox .tox-dropzone p {
455
- color: rgba(45, 59, 69, 0.6);
456
- }
457
- .tox .tox-edit-area {
458
- border: 1px solid ${theme.canvasBorderColor};
459
- border-radius: 3px;
460
- }
461
- .tox .tox-edit-area__iframe {
462
- background-color: ${theme.canvasBackgroundColor};
463
- border: ${theme.canvasFocusBorderWidth} solid transparent;
464
- }
465
- .tox.tox-inline-edit-area {
466
- border-color: ${theme.canvasBorderColor};
467
- }
468
- .tox .tox-form__group {
469
- padding: 2px;
470
- }
471
- .tox .tox-control-wrap .tox-textfield {
472
- padding-right: 32px;
473
- }
474
- .tox .tox-control-wrap__status-icon-invalid svg {
475
- fill: ${theme.canvasErrorColor};
476
- }
477
- .tox .tox-control-wrap__status-icon-unknown svg {
478
- fill: ${theme.canvasWarningColor};
479
- }
480
- .tox .tox-control-wrap__status-icon-valid svg {
481
- fill: ${theme.canvasSuccessColor};
482
- }
483
- .tox .tox-color-input span {
484
- border-color: rgba(45, 59, 69, 0.2);
485
- }
486
- .tox .tox-color-input span:focus {
487
- border-color: ${theme.canvasBrandColor};
488
- }
489
- .tox .tox-label,
490
- .tox .tox-toolbar-label {
491
- color: rgba(45, 59, 69, 0.6);
492
- }
493
- .tox .tox-form__group {
494
- margin: ${theme.canvasFormElementMargin};
495
- }
496
- .tox .tox-form__group:last-child {
497
- margin: 0;
498
- }
499
- .tox .tox-form__group .tox-label {
500
- color: ${theme.canvasFormElementLabelColor};
501
- margin: ${theme.canvasFormElementLabelMargin};
502
- font-size: ${theme.canvasFormElementLabelFontSize};
503
- font-weight: ${theme.canvasFormElementLabelFontWeight};
504
- }
505
- .tox .tox-form__group--error {
506
- color: ${theme.canvasErrorColor};
507
- }
508
- .tox .tox-textfield,
509
- .tox .tox-selectfield select,
510
- .tox .tox-textarea,
511
- .tox .tox-toolbar-textfield {
512
- background-color: ${theme.canvasBackgroundColor};
513
- border-color: ${theme.canvasBorderColor};
514
- color: ${theme.canvasTextColor};
515
- font-family: ${theme.canvasFontFamily};
516
- }
517
- .tox .tox-textfield:focus,
518
- .tox .tox-selectfield select:focus,
519
- .tox .tox-textarea:focus {
520
- /*border-color: ${theme.canvasFocusBorderColor};*/
521
- border-color: ${theme.canvasBorderColor};
522
- box-shadow: ${theme.canvasFocusBoxShadow};
523
- }
524
- .tox .tox-naked-btn {
525
- color: ${theme.canvasButtonColor};
526
- }
527
- .tox .tox-naked-btn svg {
528
- fill: ${theme.canvasButtonColor};
529
- }
530
- .tox .tox-insert-table-picker > div {
531
- border-color: #cccccc;
532
- }
533
- .tox .tox-insert-table-picker .tox-insert-table-picker__selected {
534
- background-color: ${theme.tableSelectorHighlightColor};
535
- border-color: ${theme.tableSelectorHighlightColor};
536
- }
537
- .tox-selected-menu .tox-insert-table-picker {
538
- background-color: ${theme.canvasBackgroundColor};
539
- }
540
- .tox .tox-insert-table-picker__label {
541
- color: ${theme.canvasTextColor};
542
- }
543
- .tox .tox-menu {
544
- background-color: ${theme.canvasBackgroundColor};
545
- border-color: ${theme.canvasBorderColor};
546
- }
547
- .tox .tox-menubar {
548
- background-color: ${theme.canvasBackgroundColor};
549
- }
550
- .tox .tox-mbtn {
551
- color: ${theme.canvasButtonColor};
552
- }
553
- .tox .tox-mbtn[disabled] {
554
- opacity: 0.5;
555
- }
556
- .tox .tox-mbtn:hover:not(:disabled) {
557
- background: ${theme.toolbarButtonHoverBackground};
558
- color: ${theme.canvasButtonColor};
559
- }
560
- .tox .tox-mbtn:focus:not(:disabled) {
561
- background-color: transparent;
562
- color: ${theme.canvasButtonColor};
563
- border-color: ${theme.canvasBackgroundColor};
564
- box-shadow: ${theme.canvasFocusBoxShadow};
565
- }
566
- .tox .tox-mbtn--active {
567
- background: ${theme.toolbarButtonHoverBackground};
568
- color: ${theme.canvasButtonColor};
569
- }
570
- .tox .tox-notification {
571
- background-color: ${theme.canvasBackgroundColor};
572
- border-color: #c5c5c5;
573
- }
574
- .tox .tox-notification--success {
575
- background-color: #dff0d8;
576
- border-color: ${theme.canvasSuccessColor};
577
- }
578
- .tox .tox-notification--error {
579
- background-color: #f2dede;
580
- border-color: ${theme.canvasErrorColor};
581
- }
582
- .tox .tox-notification--warn {
583
- background-color: #fcf8e3;
584
- border-color: ${theme.canvasWarningColor};
585
- }
586
- .tox .tox-notification--info {
587
- background-color: #d9edf7;
588
- border-color: ${theme.canvasInfoColor};
589
- }
590
- .tox .tox-notification__body {
591
- color: ${theme.canvasTextColor};
592
- }
593
- .tox .tox-pop__dialog {
594
- background-color: ${theme.canvasBackgroundColor};
595
- border-color: ${theme.canvasBorderColor};
596
- }
597
- .tox .tox-pop.tox-pop--bottom::before {
598
- border-color: ${theme.canvasBorderColor} transparent transparent transparent;
599
- }
600
- .tox .tox-pop.tox-pop--top::before {
601
- border-color: transparent transparent ${theme.canvasBorderColor} transparent;
602
- }
603
- .tox .tox-pop.tox-pop--left::before {
604
- border-color: transparent ${theme.canvasBorderColor} transparent transparent;
605
- }
606
- .tox .tox-pop.tox-pop--right::before {
607
- border-color: transparent transparent transparent ${theme.canvasBorderColor};
608
- }
609
- .tox .tox-slider {
610
- width: 100%;
611
- }
612
- .tox .tox-slider__rail {
613
- border-color: ${theme.canvasBorderColor};
614
- }
615
- .tox .tox-slider__handle {
616
- background-color: ${theme.canvasBrandColor};
617
- }
618
- .tox .tox-spinner > div {
619
- background-color: rgba(45, 59, 69, 0.6);
620
- }
621
- .tox .tox-tbtn {
622
- border-style: none;
623
- color: ${theme.canvasButtonColor};
624
- position: relative;
625
- }
626
- .tox .tox-tbtn svg {
627
- fill: ${theme.canvasButtonColor};
628
- }
629
- .tox .tox-tbtn.tox-tbtn--enabled {
630
- background: inherit;
631
- }
632
- .tox .tox-tbtn:focus,
633
- .tox .tox-split-button:focus {
634
- background: ${theme.canvasBackgroundColor};
635
- color: ${theme.canvasButtonColor};
636
- box-shadow: ${theme.canvasFocusBoxShadow};
637
- }
638
- .tox .tox-tbtn:hover,
639
- .tox .tox-split-button:hover,
640
- .tox .tox-tbtn.tox-tbtn--enabled:hover,
641
- .tox .tox-split-button .tox-tbtn.tox-split-button__chevron:hover {
642
- background: ${theme.toolbarButtonHoverBackground};
643
- color: ${theme.canvasButtonColor};
644
- }
645
- .tox-tbtn.tox-split-button__chevron {
646
- position: relative;
647
- }
648
- .tox .tox-tbtn.tox-tbtn--enabled::after {
649
- position: absolute;
650
- top: -3px;
651
- content: "\\25BC";
652
- text-align: center;
653
- height: 8px;
654
- font-size: 8px;
655
- width: 100%;
656
- color: ${theme.canvasEnabledColor};
657
- }
658
- .tox .tox-tbtn.tox-tbtn--enabled.tox-tbtn--select::after {
659
- text-align: left;
660
- padding-left: 18px;
661
- }
662
- .tox-tbtn.tox-split-button__chevron.tox-tbtn--enabled::after {
663
- display: none;
664
- }
665
- .tox .tox-tbtn--disabled,
666
- .tox .tox-tbtn--disabled:hover,
667
- .tox .tox-tbtn:disabled,
668
- .tox .tox-tbtn:disabled:hover {
669
- opacity: 0.5;
670
- }
671
- .tox .tox-tbtn--disabled svg,
672
- .tox .tox-tbtn--disabled:hover svg,
673
- .tox .tox-tbtn:disabled svg,
674
- .tox .tox-tbtn:disabled:hover svg {
675
- /* stylelint-disable-line no-descending-specificity */
676
- opacity: 0.5;
677
- }
678
- .tox .tox-tbtn__select-chevron svg {
679
- fill: ${theme.canvasButtonColor};
680
- width: 10px;
681
- height: 10px;
682
- }
683
- .tox .tox-split-button__chevron svg {
684
- fill: ${theme.canvasButtonColor};
685
- width: 10px;
686
- height: 10px;
687
- }
688
- .tox .tox-split-button.tox-tbtn--disabled:hover,
689
- .tox .tox-split-button.tox-tbtn--disabled:focus,
690
- .tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,
691
- .tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus {
692
- opacity: 0.5;
693
- }
694
- .tox .tox-toolbar {
695
- background-color: ${theme.canvasBackgroundColor};
696
- border-top: 1px solid ${theme.canvasBorderColor};
697
- }
698
- .tox .tox-toolbar__group:not(:last-of-type) {
699
- border-right: 1px solid ${theme.canvasBorderColor};
700
- }
701
- .tox .tox-tooltip__body {
702
- background-color: ${theme.canvasTextColor};
703
- box-shadow: 0 2px 4px rgba(45, 59, 69, 0.3);
704
- color: rgba(255, 255, 255, 0.75);
705
- }
706
- .tox .tox-tooltip--down .tox-tooltip__arrow {
707
- border-top-color: ${theme.canvasTextColor};
708
- }
709
- .tox .tox-tooltip--up .tox-tooltip__arrow {
710
- border-bottom-color: ${theme.canvasTextColor};
711
- }
712
- .tox .tox-tooltip--right .tox-tooltip__arrow {
713
- border-left-color: ${theme.canvasTextColor};
714
- }
715
- .tox .tox-tooltip--left .tox-tooltip__arrow {
716
- border-right-color: ${theme.canvasTextColor};
717
- }
718
- .tox .tox-well {
719
- border-color: ${theme.canvasBorderColor};
720
- }
721
- .tox .tox-custom-editor {
722
- border-color: ${theme.canvasBorderColor};
723
- }
724
- .tox a {
725
- color: ${theme.canvasLinkColor};
726
- }
727
- .tox.tox-tinymce {
728
- border-style: none;
729
- }
730
- .tox-editor-container .tox-toolbar,
731
- .tox-editor-container .tox-toolbar-overlord {
732
- background-image: none;
733
- margin-bottom: 5px;
734
- }
735
- .tox-editor-container .tox-toolbar__primary {
736
- background-image: none;
737
- }
738
- .tox .tox-menubar + .tox-toolbar-overlord .tox-toolbar__primary {
739
- border-style: none;
740
- }
741
- .tox .tox-toolbar .tox-toolbar__group,
742
- .tox .tox-toolbar-overlord .tox-toolbar__group,
743
- .tox-toolbar__overflow .tox-toolbar__group,
744
- .tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type),
745
- .tox[dir=rtl] .tox-toolbar__group:not(:last-of-type) {
746
- border-style: none;
747
- }
748
- .tox-toolbar .tox-toolbar__group::after,
749
- .tox-toolbar-overlord .tox-toolbar__group::after,
750
- .tox-toolbar__overflow .tox-toolbar__group::after,
751
- .tox-tinymce-aux .tox-toolbar .tox-toolbar__group::after {
752
- /* popup toolbar */
753
- content: "";
754
- display: inline-block;
755
- box-sizing: border-box;
756
- border-inline-end: 1px solid ${theme.canvasBorderColor};
757
- width: 8px;
758
- height: 24px;
759
- }
760
- .tox-toolbar .tox-toolbar__group:last-child::after,
761
- .tox-toolbar-overlord .tox-toolbar__group:last-child::after,
762
- .tox-toolbar__overflow .tox-toolbar__group:last-child::after,
763
- .tox-tinymce-aux .tox-toolbar .tox-toolbar__group:last-child::after {
764
- border-inline-end-width: 0;
765
- padding-inline-start: 0;
766
- width: 0;
767
- }
768
- .tox .tox-tbtn--bespoke .tox-tbtn__select-label {
769
- width: auto;
770
- padding-inline-end: 0;
771
- }
772
- .tox .tox-tbtn {
773
- box-sizing: border-box;
774
- }
775
- .tox .tox-tbtn,
776
- .tox .tox-split-button,
777
- .tox .tox-tbtn--select {
778
- border-style: none;
779
- margin: 2px 2px 3px;
780
- }
781
- .tox .tox-split-button .tox-tbtn {
782
- margin-inline-end: 0;
783
- }
784
- .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {
785
- margin-inline-start: 0;
786
- }
787
- .tox .tox-edit-area.active,
788
- .tox .tox-edit-area.active iframe {
789
- border-color: ${theme.canvasFocusBorderColor};
790
- }
791
- .tox .tox-split-button .tox-tbtn {
792
- margin-inline-end: 0;
793
- }
794
- .tox .tox-split-button .tox-tbtn.tox-split-button__chevron {
795
- margin-inline-start: -6px;
796
- background-color: ${theme.canvasBackgroundColor};
797
- /* Increases touch-target width of split-button dropdowns for MAT-602 */
798
- width: 30px;
799
- }
800
- .tox .tox-split-button:hover {
801
- box-shadow: none;
802
- }
803
- .tox .tox-split-button:hover .tox-split-button__chevron {
804
- background: ${theme.canvasBackgroundColor};
805
- color: ${theme.canvasButtonColor};
806
- box-shadow: none;
807
- }
808
- .tox .tox-tbtn:hover.tox-split-button__chevron,
809
- .tox .tox-tbtn:focus.tox-split-button__chevron {
810
- box-shadow: none;
811
- }
812
- .tox .tox-toolbar__primary {
813
- border-width: 0;
814
- }
815
- .tox-tbtn.tox-tbtn--select .tox-icon.tox-tbtn__icon-wrap {
816
- margin-inline-end: 4px;
817
- }
818
- .tox .tox-icon svg:not([height]),
819
- .tox .tox-collection__item-icon svg:not([height]) {
820
- height: 16px;
821
- }
822
- .tox .tox-collection--toolbar-lg .tox-collection__item-icon {
823
- height: 30px;
824
- width: 30px;
825
- }
826
- .tox-selectfield__icon-js svg {
827
- width: 10px;
828
- height: 10px;
829
- }
830
- [data-canvascontenttray-content]:focus {
831
- outline-color: ${theme.canvasFocusBorderColor};
832
- }
833
- .tox .tox-toolbar-overlord .tox-toolbar__overflow {
834
- /* Remove the errant gray line below the expanded toolbar in "sliding" mode */
835
- background: none;
836
- }
837
- `;
838
- return {
839
- css,
840
- classNames,
841
- theme
842
- };
843
- }