apostrophe 4.7.0 → 4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/index.js +1 -1
  3. package/lib/moog.js +1 -1
  4. package/modules/@apostrophecms/admin-bar/index.js +61 -2
  5. package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposContextBreakpointPreviewMode.vue +166 -0
  6. package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposContextTitle.vue +25 -0
  7. package/modules/@apostrophecms/area/ui/apos/components/AposAreaEditor.vue +3 -12
  8. package/modules/@apostrophecms/asset/index.js +41 -1
  9. package/modules/@apostrophecms/asset/lib/globalIcons.js +6 -0
  10. package/modules/@apostrophecms/asset/lib/webpack/apos/webpack.scss.js +16 -16
  11. package/modules/@apostrophecms/asset/lib/webpack/media-to-container-queries-loader.js +94 -0
  12. package/modules/@apostrophecms/asset/lib/webpack/src/webpack.scss.js +12 -0
  13. package/modules/@apostrophecms/attachment/index.js +8 -1
  14. package/modules/@apostrophecms/command-menu/ui/apos/components/AposCommandMenuKey.vue +1 -1
  15. package/modules/@apostrophecms/command-menu/ui/apos/components/AposCommandMenuShortcut.vue +5 -2
  16. package/modules/@apostrophecms/doc-type/index.js +0 -1
  17. package/modules/@apostrophecms/doc-type/ui/apos/components/AposDocEditor.vue +1 -19
  18. package/modules/@apostrophecms/i18n/i18n/en.json +12 -1
  19. package/modules/@apostrophecms/image/ui/apos/components/AposMediaUploader.vue +9 -18
  20. package/modules/@apostrophecms/migration/index.js +20 -13
  21. package/modules/@apostrophecms/migration/lib/addMissingSchemaFields.js +182 -0
  22. package/modules/@apostrophecms/page/index.js +19 -0
  23. package/modules/@apostrophecms/piece-type/ui/apos/components/AposRelationshipEditor.vue +2 -7
  24. package/modules/@apostrophecms/rich-text-widget/index.js +66 -0
  25. package/modules/@apostrophecms/schema/index.js +20 -29
  26. package/modules/@apostrophecms/schema/lib/addFieldTypes.js +2 -27
  27. package/modules/@apostrophecms/schema/lib/newInstance.js +36 -0
  28. package/modules/@apostrophecms/schema/ui/apos/components/AposInputArray.vue +238 -80
  29. package/modules/@apostrophecms/schema/ui/apos/components/AposInputWrapper.vue +34 -24
  30. package/modules/@apostrophecms/schema/ui/apos/logic/AposArrayEditor.js +2 -7
  31. package/modules/@apostrophecms/schema/ui/apos/logic/AposInputArray.js +207 -44
  32. package/modules/@apostrophecms/schema/ui/apos/logic/AposInputRelationship.js +3 -14
  33. package/modules/@apostrophecms/schema/ui/apos/scss/AposInputArray.scss +288 -105
  34. package/modules/@apostrophecms/template/views/outerLayoutBase.html +1 -0
  35. package/modules/@apostrophecms/ui/ui/apos/components/AposButton.vue +2 -1
  36. package/modules/@apostrophecms/ui/ui/apos/components/AposContextMenu.vue +9 -6
  37. package/modules/@apostrophecms/ui/ui/apos/components/AposContextMenuDialog.vue +8 -6
  38. package/modules/@apostrophecms/ui/ui/apos/components/AposContextMenuItem.vue +52 -51
  39. package/modules/@apostrophecms/ui/ui/apos/components/AposFile.vue +16 -6
  40. package/modules/@apostrophecms/ui/ui/apos/components/AposIndicator.vue +1 -0
  41. package/modules/@apostrophecms/ui/ui/apos/components/AposLocalePicker.vue +6 -4
  42. package/modules/@apostrophecms/ui/ui/apos/components/AposSlatList.vue +6 -2
  43. package/modules/@apostrophecms/ui/ui/apos/components/AposTagApply.vue +8 -6
  44. package/modules/@apostrophecms/ui/ui/apos/scss/global/_breakpoint_preview.scss +38 -0
  45. package/modules/@apostrophecms/ui/ui/apos/scss/global/_tables.scss +3 -1
  46. package/modules/@apostrophecms/ui/ui/apos/scss/global/import-all.scss +1 -0
  47. package/modules/@apostrophecms/widget-type/ui/apos/components/AposWidgetEditor.vue +2 -13
  48. package/package.json +3 -2
  49. package/test/add-missing-schema-fields.js +323 -0
  50. package/test/content-i18n.js +1 -1
  51. package/test/events2.js +4 -2
  52. package/test/pages.js +10 -0
  53. package/test/parked-pages.js +75 -0
@@ -27,20 +27,15 @@
27
27
  }
28
28
  }
29
29
 
30
- .apos-is-dragging {
31
- opacity: 0.5;
32
- background: var(--a-base-4);
33
- }
34
-
35
30
  .apos-input-array-inline-empty {
36
31
  display: flex;
37
32
  flex-direction: column;
38
33
  align-items: center;
39
34
  justify-content: center;
40
- margin-bottom: $spacing-base;
41
35
  padding: $spacing-triple 0;
42
36
  border: 1px solid var(--a-base-9);
43
37
  color: var(--a-base-8);
38
+ border-radius: var(--a-border-radius);
44
39
  }
45
40
 
46
41
  .apos-input-array-inline-empty-label {
@@ -56,61 +51,11 @@
56
51
 
57
52
  & {
58
53
  position: relative;
59
- left: -35px;
60
- min-width: calc(100% + 35px);
61
- width: max-content;
54
+ width: 100%;
62
55
  margin: 0 0 $spacing-base;
63
56
  border-collapse: collapse;
64
57
  }
65
58
 
66
- th {
67
- height: 40px;
68
- padding-right: $spacing-base;
69
- padding-left: $spacing-base;
70
- border: 1px solid var(--a-base-9);
71
- text-align: left;
72
- background-color: var(--a-base-10);
73
- }
74
-
75
- .apos-table-cell--hidden {
76
- padding-left: 5px;
77
- border: none;
78
- cursor: pointer;
79
- background-color: transparent;
80
- }
81
-
82
- td, :deep(td) {
83
- padding: $spacing-base;
84
- border: 1px solid var(--a-base-9);
85
- vertical-align: middle;
86
- text-align: center;
87
- transition: background-color 300ms ease;
88
- background-color: var(--a-background-primary);
89
- }
90
-
91
- td.apos-input-array-inline-item-controls { /* stylelint-disable-line selector-no-qualifying-type */
92
- width: 15px;
93
- min-width: 15px;
94
- border: none;
95
- background-color: transparent;
96
- }
97
-
98
- tr.apos-is-dragging, :deep(tr.apos-is-dragging) { /* stylelint-disable-line selector-no-qualifying-type */
99
- td, &:hover td {
100
- background: var(--a-base-4);
101
- }
102
- }
103
-
104
- tr:hover, :deep(tr:hover) {
105
- td {
106
- background-color: var(--a-base-10);
107
- }
108
-
109
- td.apos-input-array-inline-item-controls { /* stylelint-disable-line selector-no-qualifying-type */
110
- background-color: transparent;
111
- }
112
- }
113
-
114
59
  :deep(.apos-field__info) {
115
60
  padding-top: 0;
116
61
  }
@@ -119,10 +64,6 @@
119
64
  display: none;
120
65
  }
121
66
 
122
- :deep(.apos-input-wrapper) {
123
- padding: 0 4px;
124
- }
125
-
126
67
  :deep(.apos-input--select) {
127
68
  min-width: 130px;
128
69
  }
@@ -167,63 +108,302 @@
167
108
  }
168
109
  }
169
110
 
170
- .apos-input-array-inline-standard {
171
- .apos-input-array-inline-collapse {
172
- position: absolute;
173
- top: $spacing-quadruple;
174
- left: $spacing-base;
111
+ .apos-input-array-inline-table-row {
112
+ border-right: 1px solid var(--a-base-9);
113
+ border-bottom: 1px solid var(--a-base-9);
114
+ border-left: 1px solid var(--a-base-9);
115
+
116
+ &:hover,
117
+ &:hover :deep(td) {
118
+ &, td {
119
+ background-color: var(--a-base-10);
120
+ }
175
121
  }
176
122
 
177
- :deep(.apos-schema) {
178
- position: relative;
179
- display: grid;
180
- grid-template-columns: 35px auto 35px;
181
- gap: 5px;
182
- width: 100%;
183
- padding-bottom: $spacing-base;
184
- border-bottom: 1px solid var(--a-base-9);
185
- transition: background-color 300ms ease;
123
+ &:focus, &:focus-visible {
124
+ outline: 1px solid var(--a-primary-transparent-50);
125
+ }
126
+
127
+ &.apos-is-ghost,
128
+ :deep(.apos-is-ghost) {
129
+ opacity: 0;
130
+ }
131
+
132
+ &.apos-is-dragging,
133
+ :deep(.apos-is-dragging) {
134
+ // stylelint-disable declaration-no-important
135
+ opacity: 1 !important; // Opacity applied inline by drag library
136
+ // stylelint-enable declaration-no-important
137
+ display: flex;
138
+ align-items: center;
139
+ outline: 2px solid var(--a-primary-transparent-50);
140
+
141
+ .apos-input-array-inline-table-cell--controls,
142
+ .apos-input-array-inline-table-cell--controls--menu {
143
+ flex: 0;
144
+ width: auto;
145
+ background-color: var(--a-background-primary);
146
+ }
147
+ }
148
+ }
149
+
150
+ .apos-input-array-inline-table-row--engaged {
151
+ &, &:focus, &:focus-visible {
152
+ outline: 2px solid var(--a-primary-transparent-50);
153
+ }
154
+ }
155
+
156
+ .apos-input-array-inline-table-cell-drag-handle {
157
+ &:focus, &:focus-visible {
158
+ outline: 1px solid var(--a-primary-transparent-50);
159
+ }
160
+ }
161
+
162
+ .apos-input-array-inline-table-cell,
163
+ .apos-input-array-inline-table-row :deep(td),
164
+ :deep(.apos-input-array-inline-table-cell) {
165
+ padding: $spacing-base;
166
+ border: 1px solid var(--a-base-9);
167
+ vertical-align: middle;
168
+ text-align: center;
169
+ transition: background-color 300ms ease;
170
+ background-color: var(--a-background-primary);
171
+
172
+ &:focus {
173
+ border: 1px solid var(--a-primary-transparent-50);
174
+ }
175
+
176
+ &.apos-input-array-inline-table-cell--controls {
177
+ width: 20px;
178
+ padding: 0 $spacing-base;
179
+ }
180
+
181
+ &.apos-input-array-inline-table-cell--controls--menu {
182
+ :deep(.apos-context-menu) {
183
+ width: 30px;
184
+ }
185
+ }
186
+ }
187
+
188
+ .apos-input-array-inline-table-header-cell {
189
+ @include type-base;
190
+
191
+ & {
192
+ height: 40px;
193
+ padding-right: $spacing-base;
194
+ padding-left: $spacing-base;
195
+ text-align: left;
196
+ background-color: var(--a-base-9);
197
+ }
198
+ }
199
+
200
+ .apos-input-array-inline-header {
201
+ display: flex;
202
+ justify-content: space-between;
203
+ padding: 0 $spacing-half;
204
+ transition: all 0.3 var(--a-transition-timing-bounce);
205
+
206
+ &:hover {
207
+ cursor: grab;
208
+ }
209
+
210
+ &:active,
211
+ &:hover:active {
212
+ cursor: grabbing;
213
+ }
214
+
215
+ :deep(.apos-button) {
216
+ // stylelint-disable scale-unlimited/declaration-strict-value
217
+ color: currentcolor;
218
+
219
+ &:focus {
220
+ color: currentcolor;
221
+ background-color: transparent;
222
+ }
186
223
 
187
224
  &:hover {
225
+ outline: 1px solid var(--a-base-6);
226
+ }
227
+ }
228
+
229
+ :deep(.apos-button--subtle.apos-is-active) {
230
+ color: currentcolor;
231
+ outline: 1px solid var(--a-base-7);
232
+ }
233
+ // stylelint-enable scale-unlimited/declaration-strict-value
234
+ }
235
+
236
+ .apos-input-array-inline-header-ui {
237
+ display: flex;
238
+ align-items: center;
239
+ justify-content: center;
240
+ }
241
+
242
+ .apos-input-array-inline-header-ui-element {
243
+ &.apos-indicator,
244
+ :deep(.apos-button),
245
+ :deep(.apos-button--icon-only.apos-button--small) {
246
+ display: flex;
247
+ align-items: center;
248
+ justify-content: center;
249
+ width: 30px;
250
+ height: 30px;
251
+ padding: 0;
252
+ }
253
+ }
254
+
255
+ .apos-input-array-inline-body {
256
+ overflow: hidden;
257
+ max-height: 999px;
258
+ padding: $spacing-base 0;
259
+ transition: all 400ms ease;
260
+
261
+ &.collapse-enter-from,
262
+ &.collapse-leave-to {
263
+ max-height: 0;
264
+ }
265
+
266
+ &.collapse-enter-active,
267
+ &.collapse-leave-active {
268
+ transition: max-height 400ms ease;
269
+ }
270
+ }
271
+
272
+ .apos-input-array-inline-label {
273
+ @include type-large;
274
+
275
+ & {
276
+ margin: 0;
277
+ padding-top: $spacing-base;
278
+ padding-bottom: $spacing-base;
279
+ // stylelint-disable scale-unlimited/declaration-strict-value
280
+ color: currentcolor;
281
+ // stylelint-enable scale-unlimited/declaration-strict-value
282
+ text-align: left;
283
+ transition: background-color 400ms ease;
284
+ }
285
+ }
286
+
287
+ .apos-input-array-inline-all-controls {
288
+ display: flex;
289
+ gap: $spacing-double;
290
+
291
+ :deep(.apos-button) {
292
+ color: var(--a-primary);
293
+
294
+ &:hover, &:hover * {
295
+ color: var(--a-primary);
296
+ text-decoration: underline;
297
+ }
298
+ }
299
+ }
300
+
301
+ .apos-input-array-inline-standard {
302
+ display: flex;
303
+ flex-direction: column;
304
+ gap: $spacing-base;
305
+
306
+ .apos-input-array-inline-item {
307
+ @include apos-transition();
308
+
309
+ & {
310
+ overflow: hidden;
311
+ padding: 0;
312
+ border: 1px solid var(--a-base-9);
313
+ outline: 1px solid transparent;
188
314
  background-color: var(--a-base-10);
315
+ border-radius: var(--a-border-radius);
189
316
  }
190
317
 
191
- .apos-field.apos-field--small,
192
- .apos-field.apos-field--micro,
193
- .apos-field.apos-field--margin-micro {
194
- margin-bottom: 0;
318
+ &.apos-is-dragging {
319
+ // stylelint-disable declaration-no-important
320
+ opacity: 0 !important; // Opacity applied inline by drag library
321
+ // stylelint-enable declaration-no-important
195
322
  }
196
323
 
197
- & > div {
198
- grid-column: 2;
324
+ &.apos-is-ghost {
325
+ border-color: var(--a-primary-transparent-50);
326
+ box-shadow: var(--a-box-shadow)
199
327
  }
200
328
 
201
- &.apos-input-array-inline-item--active {
202
- background-color: var(--a-base-10);
203
- border-bottom: 1px solid var(--a-base-6);
329
+ &--open .apos-input-array-inline-header {
330
+ background: var(--a-base-8);
204
331
  }
205
332
 
206
- &.apos-input-array-inline-item--active > div {
207
- display: block;
333
+ &:focus {
334
+ outline: 1px solid var(--a-primary-transparent-50);
335
+ box-shadow: var(--a-box-shadow);
208
336
  }
209
337
 
210
- .apos-input-array-inline-label,
211
- .apos-input-array-inline-item-controls,
212
- .apos-input-array-inline-item-controls--remove {
213
- display: block;
338
+ &--engaged,
339
+ &--engaged:focus,
340
+ &.apos-is-ghost {
341
+ outline: 2px solid var(--a-primary-transparent-50);
342
+ }
343
+
344
+ &--engaged > .apos-input-array-inline-header,
345
+ &--engaged:focus > .apos-input-array-inline-header,
346
+ &.apos-is-ghost > .apos-input-array-inline-header {
347
+ border-color: var(--a-primary-transparent-50);
348
+ color: var(--a-text-inverted);
349
+ background: var(--a-primary-transparent-90);
350
+ }
351
+
352
+ &--drag-disabled .apos-input-array-inline-header-ui--left {
353
+ padding-left: $spacing-base;
354
+ }
355
+
356
+ :deep(.apos-input-array-inline-empty) {
357
+ border-color: var(--a-base-7);
358
+ background-color: var(--a-background-primary);
359
+ }
360
+
361
+ :deep(.apos-input-array-inline-empty .apos-input-array-inline-empty-label) {
362
+ color: var(--a-text-primary);
363
+ }
364
+
365
+ :deep(.apos-input-array-inline-empty .material-design-icon__svg) {
366
+ fill: var(--a-base-7);
367
+ }
368
+
369
+ // stylelint-disable max-nesting-depth
370
+ .apos-input-array-inline-item {
371
+ border-color: var(--a-base-8);
372
+ background-color: var(--a-background-primary);
373
+
374
+ &--engaged,
375
+ &--engaged .apos-input-array-inline-label,
376
+ &--engaged > .apos-input-array-inline-header {
377
+ color: var(--a-text-primary);
378
+ }
379
+
380
+ .apos-input-array-inline-header {
381
+ background-color: var(--a-base-8);
382
+ }
383
+ }
384
+ // stylelint-enable max-nesting-depth
385
+ }
386
+
387
+ :deep(.apos-schema) {
388
+ display: flex;
389
+ flex-direction: column;
390
+ gap: $spacing-double;
391
+ margin: 0 $spacing-double;
392
+ transition: background-color 300ms ease;
393
+
394
+ .apos-field,
395
+ .apos-field.apos-field--small,
396
+ .apos-field.apos-field--micro,
397
+ .apos-field.apos-field--margin-micro {
398
+ margin-bottom: 0;
214
399
  }
215
400
 
216
- .apos-input-array-inline-label {
217
- @include type-label;
401
+ &.apos-input-array-inline-table-row--active {
402
+ background-color: var(--a-base-10);
218
403
  }
219
404
 
220
- .apos-input-array-inline-label {
221
- margin: 0;
222
- padding-top: $spacing-base;
223
- padding-bottom: $spacing-base;
224
- text-align: left;
225
- transition: background-color 300ms ease;
226
- grid-column: 2;
405
+ &.apos-input-array-inline-table-row > div {
406
+ display: block;
227
407
  }
228
408
 
229
409
  .apos-input-array-inline-label:hover {
@@ -232,13 +412,16 @@
232
412
 
233
413
  .apos-input-array-inline-item-controls {
234
414
  padding: $spacing-base;
235
- grid-column: 1;
236
- grid-row: 1;
237
415
  }
416
+ }
417
+ }
238
418
 
239
- .apos-input-array-inline-item-controls--remove {
240
- grid-column: 3;
241
- grid-row: 1;
242
- }
419
+ .apos-input-array-inline-add-button {
420
+ margin-top: $spacing-base;
421
+ }
422
+
423
+ .apos-input-array-inline-array--is-dragging {
424
+ :deep(*::selection) {
425
+ background-color: transparent;
243
426
  }
244
427
  }
@@ -29,6 +29,7 @@
29
29
  <div id="apos-notification"></div>
30
30
  {% endif %}
31
31
  {% endblock %}
32
+ <div data-apos-context-label></div>
32
33
  <div data-apos-refreshable>
33
34
  {% block beforeMain %}{% endblock %}
34
35
  {% block mainAnchor %}<a name="main"></a>{% endblock %}
@@ -14,7 +14,7 @@
14
14
  class="apos-button"
15
15
  :class="modifierClass"
16
16
  :tabindex="tabindex"
17
- :disabled="isDisabled"
17
+ :disabled="isDisabled ? isDisabled : null"
18
18
  :type="buttonType"
19
19
  :role="role"
20
20
  :style="{color: textColor}"
@@ -673,6 +673,7 @@ export default {
673
673
  &:hover:not([disabled]),
674
674
  &:focus:not([disabled]) {
675
675
  transform: none;
676
+ box-shadow: none;
676
677
  }
677
678
  }
678
679
 
@@ -268,6 +268,7 @@ async function setDropdownPosition() {
268
268
 
269
269
  function handleKeyboard(event) {
270
270
  if (event.key === 'Escape') {
271
+ event.stopImmediatePropagation();
271
272
  hide();
272
273
  }
273
274
  }
@@ -332,11 +333,13 @@ function handleKeyboard(event) {
332
333
  .apos-context-menu__items {
333
334
  @include apos-list-reset();
334
335
 
335
- display: inline-block;
336
- list-style-type: none;
337
- width: max-content;
338
- margin: none;
339
- margin-block: 0;
340
- padding: 10px 0;
336
+ & {
337
+ display: inline-block;
338
+ list-style-type: none;
339
+ width: max-content;
340
+ margin: none;
341
+ margin-block: 0;
342
+ padding: 10px 0;
343
+ }
341
344
  }
342
345
  </style>
@@ -138,12 +138,14 @@ function emitSetArrow(arrowEl) {
138
138
  .apos-context-menu__items {
139
139
  @include apos-list-reset();
140
140
 
141
- display: inline-block;
142
- list-style-type: none;
143
- width: max-content;
144
- margin: none;
145
- margin-block: 0;
146
- padding: 10px 0;
141
+ & {
142
+ display: inline-block;
143
+ list-style-type: none;
144
+ width: max-content;
145
+ margin: none;
146
+ margin-block: 0;
147
+ padding: 10px 0;
148
+ }
147
149
  }
148
150
 
149
151
  .apos-context-menu__dialog :deep(.apos-schema .apos-field) {
@@ -9,7 +9,7 @@
9
9
  :data-apos-test-selected="selected"
10
10
  :data-apos-test-danger="danger"
11
11
  :data-apos-test-disabled="disabled"
12
- @click="click"
12
+ v-on="disabled ? {} : { click: click }"
13
13
  >
14
14
  {{ $t(label) }}
15
15
  </button>
@@ -38,12 +38,12 @@ export default {
38
38
  return this.menuItem.modifiers?.includes('danger');
39
39
  },
40
40
  disabled() {
41
- return this.menuItem.modifiers?.includes('disabled');
41
+ return !!this.menuItem.modifiers?.includes('disabled');
42
42
  },
43
43
  modifiers() {
44
44
  const classes = [];
45
45
  if (this.menuItem.modifiers) {
46
- this.menuItem.modifiers.forEach(modifier => {
46
+ this.menuItem.modifiers.forEach((modifier) => {
47
47
  classes.push(`apos-context-menu__button--${modifier}`);
48
48
  });
49
49
  }
@@ -69,69 +69,70 @@ export default {
69
69
  </script>
70
70
 
71
71
  <style lang="scss" scoped>
72
- .apos-context-menu__item {
73
- display: flex;
72
+ .apos-context-menu__item {
73
+ display: flex;
74
+ }
75
+
76
+ .apos-context-menu__button {
77
+ @include type-base;
78
+
79
+ & {
80
+ display: inline-block;
81
+ flex-grow: 1;
82
+ width: 100%;
83
+ padding: 10px 20px;
84
+ border: none;
85
+ color: var(--a-base-1);
86
+ text-align: left;
87
+ background-color: var(--a-background-primary);
74
88
  }
75
89
 
76
- .apos-context-menu__button {
77
- @include type-base;
90
+ &:hover {
91
+ cursor: pointer;
92
+ color: var(--a-text-primary);
93
+ }
78
94
 
79
- & {
80
- display: inline-block;
81
- flex-grow: 1;
82
- width: 100%;
83
- padding: 10px 20px;
84
- border: none;
85
- color: var(--a-base-1);
86
- text-align: left;
87
- background-color: var(--a-background-primary);
88
- }
95
+ &:focus {
96
+ outline: none;
97
+ color: var(--a-text-primary);
98
+ }
89
99
 
90
- &:hover {
91
- cursor: pointer;
92
- color: var(--a-text-primary);
93
- }
100
+ &:active {
101
+ color: var(--a-base-1);
102
+ }
103
+
104
+ &--danger {
105
+ color: var(--a-danger);
94
106
 
95
- &:focus {
96
- outline: none;
97
- color: var(--a-text-primary);
107
+ &:hover {
108
+ color: var(--a-danger-button-hover);
98
109
  }
99
110
 
111
+ &:focus,
100
112
  &:active {
101
- color: var(--a-base-1);
113
+ color: var(--a-danger-button-active);
102
114
  }
115
+ }
103
116
 
104
- &--danger {
105
- color: var(--a-danger);
106
-
107
- &:hover {
108
- color: var(--a-danger-button-hover);
109
- }
110
-
111
- &:focus, &:active {
112
- color: var(--a-danger-button-active);
113
- }
114
- }
117
+ &--primary {
118
+ color: var(--a-primary);
115
119
 
116
- &--primary {
120
+ &:hover,
121
+ &:focus,
122
+ &:active {
117
123
  color: var(--a-primary);
118
-
119
- &:hover,
120
- &:focus,
121
- &:active {
122
- color: var(--a-primary);
123
- }
124
124
  }
125
+ }
125
126
 
126
- &--disabled {
127
- color: var(--a-base-5);
127
+ &--disabled {
128
+ color: var(--a-base-5);
128
129
 
129
- &:hover,
130
- &:focus,
131
- &:active {
132
- cursor: not-allowed;
133
- color: var(--a-base-5);
134
- }
130
+ &:hover,
131
+ &:focus,
132
+ &:active {
133
+ cursor: not-allowed;
134
+ color: var(--a-base-5);
135
135
  }
136
136
  }
137
+ }
137
138
  </style>