apostrophe 4.6.0 → 4.7.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 (126) hide show
  1. package/.github/workflows/main.yml +1 -1
  2. package/CHANGELOG.md +47 -1
  3. package/lib/big-upload-client.js +100 -0
  4. package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposAdminBar.vue +5 -3
  5. package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposAdminBarLocale.vue +6 -3
  6. package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposAdminBarUser.vue +4 -1
  7. package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposContextBar.vue +24 -16
  8. package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposContextTitle.vue +1 -0
  9. package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposSavingIndicator.vue +7 -5
  10. package/modules/@apostrophecms/area/index.js +5 -2
  11. package/modules/@apostrophecms/area/ui/apos/components/AposAreaContextualMenu.vue +27 -15
  12. package/modules/@apostrophecms/area/ui/apos/components/AposAreaExpandedMenu.vue +11 -7
  13. package/modules/@apostrophecms/area/ui/apos/components/AposAreaMenu.vue +25 -12
  14. package/modules/@apostrophecms/area/ui/apos/components/AposAreaMenuItem.vue +3 -1
  15. package/modules/@apostrophecms/area/ui/apos/components/AposAreaWidget.vue +80 -30
  16. package/modules/@apostrophecms/asset/index.js +8 -4
  17. package/modules/@apostrophecms/attachment/index.js +4 -2
  18. package/modules/@apostrophecms/command-menu/ui/apos/components/AposCommandMenuKey.vue +28 -24
  19. package/modules/@apostrophecms/command-menu/ui/apos/components/AposCommandMenuShortcut.vue +17 -11
  20. package/modules/@apostrophecms/doc/index.js +22 -19
  21. package/modules/@apostrophecms/doc-type/index.js +6 -2
  22. package/modules/@apostrophecms/doc-type/ui/apos/components/AposDocEditor.vue +9 -5
  23. package/modules/@apostrophecms/doc-type/ui/apos/components/AposDocLocalePicker.vue +10 -5
  24. package/modules/@apostrophecms/doc-type/ui/apos/logic/AposDocContextMenu.js +12 -0
  25. package/modules/@apostrophecms/http/index.js +19 -3
  26. package/modules/@apostrophecms/http/lib/big-upload-middleware.js +251 -0
  27. package/modules/@apostrophecms/i18n/i18n/de.json +1 -1
  28. package/modules/@apostrophecms/i18n/i18n/en.json +9 -1
  29. package/modules/@apostrophecms/i18n/i18n/es.json +1 -1
  30. package/modules/@apostrophecms/i18n/i18n/fr.json +1 -1
  31. package/modules/@apostrophecms/i18n/i18n/it.json +1 -1
  32. package/modules/@apostrophecms/i18n/i18n/pt-BR.json +1 -1
  33. package/modules/@apostrophecms/i18n/i18n/sk.json +1 -1
  34. package/modules/@apostrophecms/i18n/index.js +3 -0
  35. package/modules/@apostrophecms/i18n/ui/apos/components/AposI18nLocalize.vue +30 -16
  36. package/modules/@apostrophecms/i18n/ui/apos/components/AposI18nLocalizeErrors.vue +7 -5
  37. package/modules/@apostrophecms/image/ui/apos/components/AposImageCropper.vue +5 -1
  38. package/modules/@apostrophecms/image/ui/apos/components/AposImageRelationshipEditor.vue +10 -6
  39. package/modules/@apostrophecms/image/ui/apos/components/AposMediaManager.vue +40 -18
  40. package/modules/@apostrophecms/image/ui/apos/components/AposMediaManagerDisplay.vue +35 -25
  41. package/modules/@apostrophecms/image/ui/apos/components/AposMediaManagerEditor.vue +11 -5
  42. package/modules/@apostrophecms/image/ui/apos/components/AposMediaManagerSelections.vue +15 -9
  43. package/modules/@apostrophecms/image/ui/apos/components/AposMediaUploader.vue +39 -31
  44. package/modules/@apostrophecms/job/index.js +1 -1
  45. package/modules/@apostrophecms/login/ui/apos/components/AposLoginForm.vue +9 -7
  46. package/modules/@apostrophecms/login/ui/apos/components/TheAposLogin.vue +17 -13
  47. package/modules/@apostrophecms/login/ui/apos/components/TheAposLoginHeader.vue +30 -20
  48. package/modules/@apostrophecms/modal/ui/apos/components/AposDocsManagerToolbar.vue +5 -0
  49. package/modules/@apostrophecms/modal/ui/apos/components/AposModal.vue +4 -1
  50. package/modules/@apostrophecms/modal/ui/apos/components/AposModalBreadcrumbs.vue +8 -4
  51. package/modules/@apostrophecms/modal/ui/apos/components/AposModalConfirm.vue +14 -8
  52. package/modules/@apostrophecms/modal/ui/apos/components/AposModalShareDraft.vue +32 -22
  53. package/modules/@apostrophecms/modal/ui/apos/components/AposModalTabs.vue +16 -14
  54. package/modules/@apostrophecms/modal/ui/apos/components/AposWidgetModalTabs.vue +16 -14
  55. package/modules/@apostrophecms/notification/ui/apos/components/AposNotification.vue +93 -91
  56. package/modules/@apostrophecms/page/index.js +482 -13
  57. package/modules/@apostrophecms/page/ui/apos/components/AposPagesManager.vue +43 -23
  58. package/modules/@apostrophecms/page/ui/apos/logic/AposPagesManager.js +248 -156
  59. package/modules/@apostrophecms/permission/ui/apos/components/AposPermissionGrid.vue +9 -5
  60. package/modules/@apostrophecms/piece-type/index.js +7 -7
  61. package/modules/@apostrophecms/piece-type/ui/apos/components/AposDocsManager.vue +92 -36
  62. package/modules/@apostrophecms/rich-text-widget/ui/apos/components/AposRichTextWidgetEditor.vue +32 -24
  63. package/modules/@apostrophecms/rich-text-widget/ui/apos/components/AposTiptapDivider.vue +4 -2
  64. package/modules/@apostrophecms/rich-text-widget/ui/apos/components/AposTiptapLink.vue +2 -1
  65. package/modules/@apostrophecms/rich-text-widget/ui/apos/components/AposTiptapMarks.vue +5 -3
  66. package/modules/@apostrophecms/rich-text-widget/ui/apos/components/AposTiptapStyles.vue +5 -3
  67. package/modules/@apostrophecms/rich-text-widget/ui/apos/components/AposTiptapTable.vue +5 -2
  68. package/modules/@apostrophecms/schema/index.js +26 -5
  69. package/modules/@apostrophecms/schema/lib/addFieldTypes.js +42 -9
  70. package/modules/@apostrophecms/schema/ui/apos/components/AposInputColor.vue +4 -2
  71. package/modules/@apostrophecms/schema/ui/apos/components/AposInputRange.vue +8 -4
  72. package/modules/@apostrophecms/schema/ui/apos/components/AposInputRelationship.vue +6 -4
  73. package/modules/@apostrophecms/schema/ui/apos/components/AposInputSlug.vue +5 -3
  74. package/modules/@apostrophecms/schema/ui/apos/components/AposInputWrapper.vue +19 -13
  75. package/modules/@apostrophecms/schema/ui/apos/components/AposSearchList.vue +6 -2
  76. package/modules/@apostrophecms/schema/ui/apos/components/AposSubform.vue +6 -4
  77. package/modules/@apostrophecms/schema/ui/apos/logic/AposInputSlug.js +28 -25
  78. package/modules/@apostrophecms/schema/ui/apos/scss/AposInputArray.scss +13 -7
  79. package/modules/@apostrophecms/settings/ui/apos/components/AposSettingsManager.vue +11 -6
  80. package/modules/@apostrophecms/translation/ui/apos/components/AposTranslationIndicator.vue +5 -3
  81. package/modules/@apostrophecms/ui/ui/apos/components/AposAvatar.vue +14 -12
  82. package/modules/@apostrophecms/ui/ui/apos/components/AposButton.vue +14 -11
  83. package/modules/@apostrophecms/ui/ui/apos/components/AposButtonSplit.vue +7 -3
  84. package/modules/@apostrophecms/ui/ui/apos/components/AposCellContextMenu.vue +4 -2
  85. package/modules/@apostrophecms/ui/ui/apos/components/AposCombo.vue +23 -17
  86. package/modules/@apostrophecms/ui/ui/apos/components/AposContextMenu.vue +41 -18
  87. package/modules/@apostrophecms/ui/ui/apos/components/AposContextMenuDialog.vue +7 -5
  88. package/modules/@apostrophecms/ui/ui/apos/components/AposContextMenuItem.vue +10 -8
  89. package/modules/@apostrophecms/ui/ui/apos/components/AposEmptyState.vue +9 -5
  90. package/modules/@apostrophecms/ui/ui/apos/components/AposFile.vue +9 -6
  91. package/modules/@apostrophecms/ui/ui/apos/components/AposIndicator.vue +5 -0
  92. package/modules/@apostrophecms/ui/ui/apos/components/AposLoadingBlock.vue +3 -1
  93. package/modules/@apostrophecms/ui/ui/apos/components/AposLocale.vue +3 -1
  94. package/modules/@apostrophecms/ui/ui/apos/components/AposLocalePicker.vue +11 -9
  95. package/modules/@apostrophecms/ui/ui/apos/components/AposMinMaxCount.vue +5 -3
  96. package/modules/@apostrophecms/ui/ui/apos/components/AposPager.vue +4 -2
  97. package/modules/@apostrophecms/ui/ui/apos/components/AposPagerDots.vue +8 -6
  98. package/modules/@apostrophecms/ui/ui/apos/components/AposSlat.vue +25 -17
  99. package/modules/@apostrophecms/ui/ui/apos/components/AposSlatList.vue +5 -9
  100. package/modules/@apostrophecms/ui/ui/apos/components/AposSubformPreview.vue +10 -6
  101. package/modules/@apostrophecms/ui/ui/apos/components/AposTag.vue +9 -7
  102. package/modules/@apostrophecms/ui/ui/apos/components/AposTagApply.vue +8 -4
  103. package/modules/@apostrophecms/ui/ui/apos/components/AposTagList.vue +4 -2
  104. package/modules/@apostrophecms/ui/ui/apos/components/AposTagListItem.vue +7 -5
  105. package/modules/@apostrophecms/ui/ui/apos/components/AposToggle.vue +16 -0
  106. package/modules/@apostrophecms/ui/ui/apos/components/AposTree.vue +3 -1
  107. package/modules/@apostrophecms/ui/ui/apos/components/AposTreeRows.vue +11 -9
  108. package/modules/@apostrophecms/ui/ui/apos/mixins/AposArchiveMixin.js +2 -2
  109. package/modules/@apostrophecms/ui/ui/apos/mixins/AposPublishMixin.js +6 -6
  110. package/modules/@apostrophecms/ui/ui/apos/scss/global/_inputs.scss +30 -22
  111. package/modules/@apostrophecms/ui/ui/apos/scss/global/_theme.scss +22 -18
  112. package/modules/@apostrophecms/ui/ui/apos/scss/global/_tooltips.scss +18 -15
  113. package/modules/@apostrophecms/ui/ui/apos/scss/mixins/_input_mixins.scss +8 -6
  114. package/modules/@apostrophecms/ui/ui/apos/scss/mixins/_mixins.scss +3 -1
  115. package/modules/@apostrophecms/ui/ui/apos/scss/mixins/_theme_mixins.scss +34 -19
  116. package/modules/@apostrophecms/ui/ui/apos/scss/mixins/_type_mixins.scss +3 -1
  117. package/modules/@apostrophecms/ui/ui/apos/scss/mixins/_zindex.scss +1 -0
  118. package/modules/@apostrophecms/ui/ui/apos/utils/index.js +140 -51
  119. package/modules/@apostrophecms/widget-type/index.js +3 -2
  120. package/modules/@apostrophecms/widget-type/ui/apos/mixins/AposWidgetMixin.js +5 -1
  121. package/package.json +5 -6
  122. package/test/big-upload.js +111 -0
  123. package/test/change-doc-ids.js +60 -1
  124. package/test/pages.js +488 -0
  125. package/test/schemas.js +327 -0
  126. package/test/utils.js +266 -5
@@ -160,16 +160,19 @@ export default {
160
160
  };
161
161
  </script>
162
162
  <style scoped lang='scss'>
163
+
163
164
  .apos-file-dropzone {
164
165
  @include apos-button-reset();
165
166
  @include type-base;
166
167
 
167
- display: block;
168
- margin: 10px 0;
169
- padding: 20px;
170
- border: 2px dashed var(--a-base-8);
171
- border-radius: var(--a-border-radius);
172
- transition: all 200ms ease;
168
+ & {
169
+ display: block;
170
+ margin: 10px 0;
171
+ padding: 20px;
172
+ border: 2px dashed var(--a-base-8);
173
+ border-radius: var(--a-border-radius);
174
+ transition: all 200ms ease;
175
+ }
173
176
 
174
177
  &:hover {
175
178
  border-color: var(--a-primary);
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <span
3
+ ref="icon"
3
4
  v-apos-tooltip="tooltip"
4
5
  class="apos-indicator"
5
6
  :aria-hidden="decorative"
@@ -43,6 +44,10 @@ export default {
43
44
  type: Boolean,
44
45
  default: true
45
46
  }
47
+ },
48
+ emits: [ 'icon' ],
49
+ mounted() {
50
+ this.$emit('icon', this.$refs.icon);
46
51
  }
47
52
  };
48
53
  </script>
@@ -45,6 +45,8 @@ const props = defineProps({
45
45
  .apos-loading-block__text {
46
46
  @include type-base;
47
47
 
48
- color: var(--a-base-1);
48
+ & {
49
+ color: var(--a-base-1);
50
+ }
49
51
  }
50
52
  </style>
@@ -27,7 +27,9 @@ const locale = computed(() => {
27
27
  .apos-locale {
28
28
  @include type-base;
29
29
 
30
- font-weight: var(--a-weight-bold);
30
+ & {
31
+ font-weight: var(--a-weight-bold);
32
+ }
31
33
  }
32
34
 
33
35
  .apos-locale__label-name {
@@ -175,15 +175,17 @@ function getForbiddenTooltip(locale) {
175
175
  .apos-locales-picker__filter {
176
176
  @include type-large;
177
177
 
178
- box-sizing: border-box;
179
- width: 100%;
180
- padding: 20px 45px 20px 20px;
181
- border-top: 0;
182
- border-right: 0;
183
- border-bottom: 1px solid var(--a-base-9);
184
- border-left: 0;
185
- border-top-right-radius: var(--a-border-radius);
186
- border-top-left-radius: var(--a-border-radius);
178
+ & {
179
+ box-sizing: border-box;
180
+ width: 100%;
181
+ padding: 20px 45px 20px 20px;
182
+ border-top: 0;
183
+ border-right: 0;
184
+ border-bottom: 1px solid var(--a-base-9);
185
+ border-left: 0;
186
+ border-top-right-radius: var(--a-border-radius);
187
+ border-top-left-radius: var(--a-border-radius);
188
+ }
187
189
 
188
190
  &::placeholder {
189
191
  color: var(--a-base-4);
@@ -104,9 +104,11 @@ export default {
104
104
  .apos-min-max-count {
105
105
  @include type-help;
106
106
 
107
- display: flex;
108
- flex-grow: 1;
109
- margin-bottom: $spacing-base;
107
+ & {
108
+ display: flex;
109
+ flex-grow: 1;
110
+ margin-bottom: $spacing-base;
111
+ }
110
112
  }
111
113
 
112
114
  .apos-has-error {
@@ -99,8 +99,10 @@ export default {
99
99
  .apos-pager {
100
100
  @include type-base;
101
101
 
102
- display: inline-flex;
103
- align-items: center;
102
+ & {
103
+ display: inline-flex;
104
+ align-items: center;
105
+ }
104
106
  }
105
107
 
106
108
  .apos-input--select {
@@ -56,12 +56,14 @@ export default {
56
56
  .apos-pager-dots__button {
57
57
  @include apos-button-reset();
58
58
 
59
- width: 12px;
60
- height: 12px;
61
- border-radius: 50%;
62
- background-color: var(--a-primary-light-40);
63
- margin-right: 20px;
64
- transition: all 300ms ease;
59
+ & {
60
+ width: 12px;
61
+ height: 12px;
62
+ border-radius: 50%;
63
+ background-color: var(--a-primary-light-40);
64
+ margin-right: 20px;
65
+ transition: all 300ms ease;
66
+ }
65
67
  }
66
68
 
67
69
  .apos-pager-dots__button.apos-is-active {
@@ -236,14 +236,16 @@ export default {
236
236
  .apos-slat {
237
237
  @include apos-transition();
238
238
 
239
- display: flex;
240
- align-items: center;
241
- justify-content: space-between;
242
- padding: 10px;
243
- border: 1px solid var(--a-base-5);
244
- border-radius: var(--a-border-radius);
245
- background-color: var(--a-base-9);
246
- color: var(--a-text-primary);
239
+ & {
240
+ display: flex;
241
+ align-items: center;
242
+ justify-content: space-between;
243
+ padding: 10px;
244
+ border: 1px solid var(--a-base-5);
245
+ border-radius: var(--a-border-radius);
246
+ background-color: var(--a-base-9);
247
+ color: var(--a-text-primary);
248
+ }
247
249
 
248
250
  &.apos-is-disabled {
249
251
  .apos-slat__control--view {
@@ -349,10 +351,12 @@ export default {
349
351
  .apos-slat__label {
350
352
  @include type-small;
351
353
 
352
- overflow: hidden;
353
- margin-left: 5px;
354
- white-space: nowrap;
355
- text-overflow: ellipsis;
354
+ & {
355
+ overflow: hidden;
356
+ margin-left: 5px;
357
+ white-space: nowrap;
358
+ text-overflow: ellipsis;
359
+ }
356
360
  }
357
361
 
358
362
  .apos-slat__editor-btn {
@@ -386,7 +390,9 @@ export default {
386
390
  .apos-slat__size {
387
391
  @include type-small;
388
392
 
389
- margin-right: 5px;
393
+ & {
394
+ margin-right: 5px;
395
+ }
390
396
  }
391
397
 
392
398
  .apos-slat__control--view {
@@ -396,10 +402,12 @@ export default {
396
402
  .apos-slat__extension {
397
403
  @include type-help;
398
404
 
399
- display: inline-block;
400
- padding: 4px;
401
- background-color: var(--a-generic);
402
- color: var(--a-white);
405
+ & {
406
+ display: inline-block;
407
+ padding: 4px;
408
+ background-color: var(--a-generic);
409
+ color: var(--a-white);
410
+ }
403
411
  }
404
412
 
405
413
  // file types
@@ -131,13 +131,7 @@ export default {
131
131
  update({
132
132
  oldIndex, newIndex
133
133
  }) {
134
- if (oldIndex !== newIndex) {
135
- this.next = this.next.map((elem, index) => {
136
- return index === oldIndex
137
- ? this.next[newIndex]
138
- : (index === newIndex && this.next[oldIndex]) || elem;
139
- });
140
- }
134
+ this.next.splice(newIndex, 0, this.next.splice(oldIndex, 1)[0]);
141
135
  },
142
136
  engage(id) {
143
137
  this.engaged = id;
@@ -216,8 +210,10 @@ export default {
216
210
  .apos-slat-limit {
217
211
  @include type-help;
218
212
 
219
- margin: 10px 0 0;
220
- text-align: center;
213
+ & {
214
+ margin: 10px 0 0;
215
+ text-align: center;
216
+ }
221
217
 
222
218
  span {
223
219
  margin-right: 10px;
@@ -116,9 +116,11 @@ function inferFieldValues(schema, values, $t) {
116
116
  &__value {
117
117
  @include type-base;
118
118
 
119
- line-height: 1;
120
- // color: var(--a-base-1);
121
- color: var(--a-text-primary);
119
+ & {
120
+ line-height: 1;
121
+ // color: var(--a-base-1);
122
+ color: var(--a-text-primary);
123
+ }
122
124
  }
123
125
 
124
126
  &__value-block {
@@ -129,9 +131,11 @@ function inferFieldValues(schema, values, $t) {
129
131
  &__label {
130
132
  @include type-base;
131
133
 
132
- display: inline-block;
133
- line-height: 1;
134
- color: var(--a-base-3);
134
+ & {
135
+ display: inline-block;
136
+ line-height: 1;
137
+ color: var(--a-base-3);
138
+ }
135
139
  }
136
140
  }
137
141
  </style>
@@ -36,13 +36,15 @@ export default {
36
36
  .apos-tag {
37
37
  @include type-base;
38
38
 
39
- display: inline-flex;
40
- align-items: center;
41
- justify-content: center;
42
- padding: 6px 12px;
43
- color: var(--a-base-8);
44
- border-radius: var(--a-border-radius);
45
- background-color: var(--a-base-1);
39
+ & {
40
+ display: inline-flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ padding: 6px 12px;
44
+ color: var(--a-base-8);
45
+ border-radius: var(--a-border-radius);
46
+ background-color: var(--a-base-1);
47
+ }
46
48
  }
47
49
 
48
50
  .apos-tag__remove {
@@ -339,9 +339,11 @@ export default {
339
339
  .apos-apply-tag-menu__empty-message {
340
340
  @include type-base;
341
341
 
342
- margin-bottom: 20px;
343
- max-width: 240px;
344
- text-align: center;
342
+ & {
343
+ margin-bottom: 20px;
344
+ max-width: 240px;
345
+ text-align: center;
346
+ }
345
347
  }
346
348
 
347
349
  .apos-apply-tag-menu__empty-icon {
@@ -353,7 +355,9 @@ export default {
353
355
  /* stylelint-disable-next-line scale-unlimited/declaration-strict-value */
354
356
  @include type-title;
355
357
 
356
- margin: 0;
358
+ & {
359
+ margin: 0;
360
+ }
357
361
  }
358
362
 
359
363
  .fade-enter-active, .fade-leave-active {
@@ -69,8 +69,10 @@ export default {
69
69
  .apos-tag-list__title {
70
70
  @include type-base;
71
71
 
72
- margin-bottom: 15px;
73
- color: var(--a-base-3);
72
+ & {
73
+ margin-bottom: 15px;
74
+ color: var(--a-base-3);
75
+ }
74
76
  }
75
77
 
76
78
  .apos-tag-list__items {
@@ -55,11 +55,13 @@ export default {
55
55
  @include apos-button-reset();
56
56
  @include apos-transition($what: all, $duration: 0.1s, $ease: ease-in-out);
57
57
 
58
- display: flex;
59
- align-items: center;
60
- padding: 2px 0;
61
- border-radius: 5px;
62
- background: transparent;
58
+ & {
59
+ display: flex;
60
+ align-items: center;
61
+ padding: 2px 0;
62
+ border-radius: 5px;
63
+ background: transparent;
64
+ }
63
65
 
64
66
  &.apos-is-active {
65
67
  color: var(--a-primary);
@@ -2,8 +2,11 @@
2
2
  <div class="apos-toggle__container">
3
3
  <div
4
4
  class="apos-toggle__slider"
5
+ tabindex="0"
5
6
  :class="{'apos-toggle__slider--activated': !modelValue}"
6
7
  @click="$emit('toggle')"
8
+ @keydown.stop.space="$emit('toggle')"
9
+ @keydown.stop.enter="$emit('toggle')"
7
10
  />
8
11
  </div>
9
12
  </template>
@@ -46,6 +49,13 @@ export default {
46
49
  cursor: pointer;
47
50
  background-color: var(--a-base-3);
48
51
 
52
+ &:focus,
53
+ &:hover,
54
+ &:active {
55
+ box-shadow: 0 0 10px var(--a-base-1);
56
+ outline: 2px solid var(--a-primary-transparent-90);
57
+ }
58
+
49
59
  &::before {
50
60
  content: '';
51
61
  position: absolute;
@@ -60,6 +70,12 @@ export default {
60
70
  &__slider--activated {
61
71
  background-color: var(--a-primary);
62
72
 
73
+ &:focus,
74
+ &:hover,
75
+ &:active {
76
+ outline: 2px solid var(--a-primary-transparent-25);
77
+ }
78
+
63
79
  &::before {
64
80
  transform: translateX(calc($toggle-width - $btn-size));
65
81
  }
@@ -204,7 +204,9 @@ export default {
204
204
  .apos-tree {
205
205
  @include type-base;
206
206
 
207
- color: var(--a-text-primary);
207
+ & {
208
+ color: var(--a-text-primary);
209
+ }
208
210
  }
209
211
 
210
212
  </style>
@@ -71,7 +71,6 @@
71
71
  v-if="options.bulkSelect && index === 0"
72
72
  v-model="checkedProxy"
73
73
  class="apos-tree__row__checkbox"
74
- tabindex="-1"
75
74
  :field="{
76
75
  name: row._id,
77
76
  hideLabel: true,
@@ -79,7 +78,6 @@
79
78
  key: 'apostrophe:toggleSelectionOf',
80
79
  title: row.title
81
80
  }),
82
- disableFocus: true,
83
81
  readOnly: maxReached && !checked.includes(row._id)
84
82
  }"
85
83
  :choice="{ value: row._id }"
@@ -494,11 +492,13 @@ export default {
494
492
  .apos-tree__row__toggle {
495
493
  @include apos-button-reset();
496
494
 
497
- position: absolute;
498
- top: 50%;
499
- left: -(math.div($row-nested-h-padding, 2));
500
- background-color: var(--a-background-primary);
501
- transform: translate(-50%, -50%);
495
+ & {
496
+ position: absolute;
497
+ top: 50%;
498
+ left: -(math.div($row-nested-h-padding, 2));
499
+ background-color: var(--a-background-primary);
500
+ transform: translate(-50%, -50%);
501
+ }
502
502
  }
503
503
 
504
504
  .apos-tree__row__toggle-icon {
@@ -577,8 +577,10 @@ export default {
577
577
  button.apos-tree__cell { /* stylelint-disable-line selector-no-qualifying-type */
578
578
  @include apos-button-reset();
579
579
 
580
- padding: $cell-padding;
581
- border-bottom: 1px solid var(--a-base-8);
580
+ & {
581
+ padding: $cell-padding;
582
+ border-bottom: 1px solid var(--a-base-8);
583
+ }
582
584
  }
583
585
 
584
586
  </style>
@@ -132,7 +132,7 @@ export default {
132
132
  draft: true
133
133
  });
134
134
 
135
- apos.notify('apostrophe:contentArchived', {
135
+ await apos.notify('apostrophe:contentArchived', {
136
136
  type: 'success',
137
137
  icon: 'archive-arrow-down-icon',
138
138
  dismiss: true
@@ -258,7 +258,7 @@ export default {
258
258
  draft: true
259
259
  });
260
260
 
261
- apos.notify('apostrophe:contentRestored', {
261
+ await apos.notify('apostrophe:contentRestored', {
262
262
  type: 'success',
263
263
  icon: 'archive-arrow-up-icon',
264
264
  dismiss: true
@@ -24,7 +24,7 @@ export default {
24
24
  body: {},
25
25
  busy: true
26
26
  });
27
- apos.notify('apostrophe:changesPublished', {
27
+ await apos.notify('apostrophe:changesPublished', {
28
28
  type: 'success',
29
29
  dismiss: true,
30
30
  icon: 'check-all-icon',
@@ -92,7 +92,7 @@ export default {
92
92
  body: {},
93
93
  busy: true
94
94
  });
95
- apos.notify('apostrophe:noLongerPublished', {
95
+ await apos.notify('apostrophe:noLongerPublished', {
96
96
  type: 'success',
97
97
  dismiss: true
98
98
  });
@@ -125,7 +125,7 @@ export default {
125
125
  ...doc,
126
126
  submitted
127
127
  };
128
- apos.notify('apostrophe:submittedForReview', {
128
+ await apos.notify('apostrophe:submittedForReview', {
129
129
  type: 'success',
130
130
  icon: 'list-status-icon',
131
131
  dismiss: true
@@ -155,7 +155,7 @@ export default {
155
155
  body: {},
156
156
  busy: true
157
157
  });
158
- apos.notify('apostrophe:dismissedSubmission', {
158
+ await apos.notify('apostrophe:dismissedSubmission', {
159
159
  type: 'success',
160
160
  dismiss: true,
161
161
  icon: 'close-circle-icon'
@@ -208,7 +208,7 @@ export default {
208
208
  body: {},
209
209
  busy: true
210
210
  });
211
- apos.notify('apostrophe:draftDiscarded', {
211
+ await apos.notify('apostrophe:draftDiscarded', {
212
212
  type: 'success',
213
213
  dismiss: true,
214
214
  icon: 'text-box-remove-icon'
@@ -226,7 +226,7 @@ export default {
226
226
  body: {},
227
227
  busy: true
228
228
  });
229
- apos.notify('apostrophe:draftDeleted', {
229
+ await apos.notify('apostrophe:draftDeleted', {
230
230
  type: 'success',
231
231
  dismiss: true
232
232
  });
@@ -11,15 +11,17 @@
11
11
  @include type-base;
12
12
  @include apos-transition(all);
13
13
 
14
- box-sizing: border-box;
15
- width: 100%;
16
- border: 1px solid var(--a-base-8);
17
- border-radius: var(--a-border-radius);
18
- background-color: var(--a-base-9);
19
- color: var(--a-text-primary);
20
- // Some browser styles set `textarea` to monospace.
21
- resize: none;
22
-
14
+ & {
15
+ box-sizing: border-box;
16
+ width: 100%;
17
+ border: 1px solid var(--a-base-8);
18
+ border-radius: var(--a-border-radius);
19
+ background-color: var(--a-base-9);
20
+ color: var(--a-text-primary);
21
+ // Some browser styles set `textarea` to monospace.
22
+ resize: none;
23
+ }
24
+
23
25
  &::placeholder {
24
26
  color: var(--a-base-4);
25
27
  font-style: italic;
@@ -147,9 +149,11 @@
147
149
  .apos-choice-label {
148
150
  @include type-base;
149
151
 
150
- display: flex;
151
- align-items: center;
152
- color: var(--a-base-2);
152
+ & {
153
+ display: flex;
154
+ align-items: center;
155
+ color: var(--a-base-2);
156
+ }
153
157
 
154
158
  &:hover:not(.apos-choice-label--disabled) {
155
159
  color: var(--a-text-primary);
@@ -237,21 +241,25 @@
237
241
  .apos-choice-label-text {
238
242
  @include type-base;
239
243
 
240
- margin-left: $spacing-base;
244
+ & {
245
+ margin-left: $spacing-base;
246
+ }
241
247
  }
242
248
 
243
249
  .apos-input-indicator {
244
250
  @include apos-transition($what: all, $duration: 0.1s, $ease: ease-in-out);
245
251
 
246
- display: inline-flex;
247
- flex-shrink: 0;
248
- align-items: center;
249
- align-self: flex-start;
250
- justify-content: center;
251
- width: $box-width;
252
- height: $box-width;
253
- border: 1px solid var(--a-base-4);
254
- background-color: var(--a-base-10);
252
+ & {
253
+ display: inline-flex;
254
+ flex-shrink: 0;
255
+ align-items: center;
256
+ align-self: flex-start;
257
+ justify-content: center;
258
+ width: $box-width;
259
+ height: $box-width;
260
+ border: 1px solid var(--a-base-4);
261
+ background-color: var(--a-base-10);
262
+ }
255
263
 
256
264
  .apos-choice-label:hover > &,
257
265
  .apos-choice-label:focus > & {
@@ -13,8 +13,8 @@
13
13
  --a-danger-button-active: #a10000;
14
14
  --a-danger-button-disabled: #ff9d98;
15
15
  --a-sensitive: #643810;
16
- --a-sensitive-medium: #E2C7B9;
17
- --a-sensitive-light: #FFF3E7;
16
+ --a-sensitive-medium: #e2c7b9;
17
+ --a-sensitive-light: #fff3e7;
18
18
  --a-base-1: #5d5d5d;
19
19
  --a-base-2: #6f6f6f;
20
20
  --a-base-3: #818181;
@@ -58,7 +58,9 @@
58
58
  --a-pdf: #e74c3c;
59
59
 
60
60
  // Font-Family
61
- --a-family-default: -apple-system, system-ui, 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'Helvetica', 'Arial', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
61
+ --a-family-default: -apple-system, system-ui, "BlinkMacSystemFont", "Segoe UI",
62
+ "Roboto", "Helvetica", "Arial", sans-serif, "Apple Color Emoji",
63
+ "Segoe UI Emoji", "Segoe UI Symbol";
62
64
 
63
65
  // Font-Weights
64
66
  --a-weight-base: 500;
@@ -93,21 +95,23 @@
93
95
  @include apos-primary-mixin(#0062ff);
94
96
  }
95
97
 
96
- --a-base-1: #d1d3d5;
97
- --a-base-2: #6b7c92;
98
- --a-base-3: #607084;
99
- --a-base-4: #566477;
100
- --a-base-5: #4b5869;
101
- --a-base-6: #414d5b;
102
- --a-base-7: #36414d;
103
- --a-base-8: #2c3540;
104
- --a-base-9: #212932;
105
- --a-base-10: #171d24;
106
- --a-background-primary: #0b0b0c;
107
- --a-background-inverted: #fff;
108
- --a-overlay: #0062ffe0;
109
- --a-text-primary: #fff;
110
- --a-text-inverted: #000;
98
+ & {
99
+ --a-base-1: #d1d3d5;
100
+ --a-base-2: #6b7c92;
101
+ --a-base-3: #607084;
102
+ --a-base-4: #566477;
103
+ --a-base-5: #4b5869;
104
+ --a-base-6: #414d5b;
105
+ --a-base-7: #36414d;
106
+ --a-base-8: #2c3540;
107
+ --a-base-9: #212932;
108
+ --a-base-10: #171d24;
109
+ --a-background-primary: #0b0b0c;
110
+ --a-background-inverted: #fff;
111
+ --a-overlay: #0062ffe0;
112
+ --a-text-primary: #fff;
113
+ --a-text-inverted: #000;
114
+ }
111
115
  }
112
116
 
113
117
  .apos-theme--primary-default {