apostrophe 4.3.2 → 4.4.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 (158) hide show
  1. package/.stylelintrc +1 -93
  2. package/CHANGELOG.md +56 -0
  3. package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposAdminBar.vue +7 -1
  4. package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposAdminBarLocale.vue +6 -3
  5. package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposAdminBarUser.vue +2 -1
  6. package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposContextModeAndSettings.vue +1 -0
  7. package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposContextTitle.vue +3 -2
  8. package/modules/@apostrophecms/admin-bar/ui/apos/components/TheAposSavingIndicator.vue +6 -2
  9. package/modules/@apostrophecms/any-page-type/index.js +2 -2
  10. package/modules/@apostrophecms/area/ui/apos/components/AposAreaContextualMenu.vue +13 -7
  11. package/modules/@apostrophecms/area/ui/apos/components/AposAreaEditor.vue +4 -4
  12. package/modules/@apostrophecms/area/ui/apos/components/AposAreaExpandedMenu.vue +17 -11
  13. package/modules/@apostrophecms/area/ui/apos/components/AposAreaMenu.vue +13 -7
  14. package/modules/@apostrophecms/area/ui/apos/components/AposAreaMenuItem.vue +3 -0
  15. package/modules/@apostrophecms/area/ui/apos/components/AposAreaWidget.vue +36 -20
  16. package/modules/@apostrophecms/area/ui/apos/components/AposWidgetControls.vue +18 -11
  17. package/modules/@apostrophecms/busy/ui/apos/components/TheAposBusy.vue +6 -8
  18. package/modules/@apostrophecms/command-menu/index.js +12 -7
  19. package/modules/@apostrophecms/command-menu/ui/apos/components/AposCommandMenuKey.vue +9 -7
  20. package/modules/@apostrophecms/command-menu/ui/apos/components/AposCommandMenuShortcut.vue +28 -15
  21. package/modules/@apostrophecms/command-menu/ui/apos/components/TheAposCommandMenu.vue +44 -42
  22. package/modules/@apostrophecms/doc-type/index.js +2 -1
  23. package/modules/@apostrophecms/doc-type/ui/apos/components/AposDocEditor.vue +4 -3
  24. package/modules/@apostrophecms/file-tag/index.js +1 -1
  25. package/modules/@apostrophecms/global/index.js +29 -0
  26. package/modules/@apostrophecms/i18n/i18n/de.json +20 -0
  27. package/modules/@apostrophecms/i18n/i18n/en.json +1 -0
  28. package/modules/@apostrophecms/i18n/i18n/es.json +1 -0
  29. package/modules/@apostrophecms/i18n/i18n/fr.json +1 -0
  30. package/modules/@apostrophecms/i18n/i18n/it.json +1 -0
  31. package/modules/@apostrophecms/i18n/i18n/pt-BR.json +1 -0
  32. package/modules/@apostrophecms/i18n/i18n/sk.json +1 -0
  33. package/modules/@apostrophecms/i18n/ui/apos/components/AposI18nLocalize.vue +25 -17
  34. package/modules/@apostrophecms/i18n/ui/apos/components/AposI18nLocalizeErrors.vue +5 -4
  35. package/modules/@apostrophecms/image/index.js +2 -1
  36. package/modules/@apostrophecms/image/ui/apos/components/AposImageCropper.vue +1 -1
  37. package/modules/@apostrophecms/image/ui/apos/components/AposImageRelationshipEditor.vue +9 -8
  38. package/modules/@apostrophecms/image/ui/apos/components/AposMediaManager.vue +13 -10
  39. package/modules/@apostrophecms/image/ui/apos/components/AposMediaManagerDisplay.vue +11 -7
  40. package/modules/@apostrophecms/image/ui/apos/components/AposMediaManagerEditor.vue +12 -2
  41. package/modules/@apostrophecms/image/ui/apos/components/AposMediaManagerSelections.vue +8 -5
  42. package/modules/@apostrophecms/image/ui/apos/components/AposMediaUploader.vue +17 -8
  43. package/modules/@apostrophecms/image-tag/index.js +1 -1
  44. package/modules/@apostrophecms/login/ui/apos/components/AposLoginForm.vue +1 -0
  45. package/modules/@apostrophecms/login/ui/apos/components/AposResetPasswordForm.vue +1 -0
  46. package/modules/@apostrophecms/login/ui/apos/components/TheAposLogin.vue +16 -14
  47. package/modules/@apostrophecms/login/ui/apos/components/TheAposLoginHeader.vue +9 -4
  48. package/modules/@apostrophecms/modal/ui/apos/apps/AposModals.js +11 -59
  49. package/modules/@apostrophecms/modal/ui/apos/components/AposDocsManagerToolbar.vue +1 -0
  50. package/modules/@apostrophecms/modal/ui/apos/components/AposModal.vue +59 -55
  51. package/modules/@apostrophecms/modal/ui/apos/components/AposModalBody.vue +1 -0
  52. package/modules/@apostrophecms/modal/ui/apos/components/AposModalBreadcrumbs.vue +5 -0
  53. package/modules/@apostrophecms/modal/ui/apos/components/AposModalConfirm.vue +6 -10
  54. package/modules/@apostrophecms/modal/ui/apos/components/AposModalShareDraft.vue +14 -16
  55. package/modules/@apostrophecms/modal/ui/apos/components/AposModalTabs.vue +68 -5
  56. package/modules/@apostrophecms/modal/ui/apos/components/AposWidgetModalTabs.vue +15 -9
  57. package/modules/@apostrophecms/modal/ui/apos/components/TheAposModals.vue +48 -122
  58. package/modules/@apostrophecms/modal/ui/apos/composables/AposFocus.js +9 -6
  59. package/modules/@apostrophecms/modal/ui/apos/mixins/AposDocsManagerMixin.js +38 -36
  60. package/modules/@apostrophecms/notification/ui/apos/components/AposNotification.vue +15 -9
  61. package/modules/@apostrophecms/notification/ui/apos/components/TheAposNotifications.vue +2 -2
  62. package/modules/@apostrophecms/page/index.js +9 -6
  63. package/modules/@apostrophecms/page/ui/apos/components/AposPagesManager.vue +3 -4
  64. package/modules/@apostrophecms/page/ui/apos/logic/AposPagesManager.js +5 -10
  65. package/modules/@apostrophecms/page/views/notFound.html +5 -5
  66. package/modules/@apostrophecms/permission/ui/apos/components/AposPermissionGrid.vue +6 -2
  67. package/modules/@apostrophecms/piece-page-type/index.js +1 -0
  68. package/modules/@apostrophecms/piece-type/ui/apos/components/AposDocsManager.vue +8 -12
  69. package/modules/@apostrophecms/piece-type/ui/apos/components/AposDocsManagerSelectBox.vue +2 -2
  70. package/modules/@apostrophecms/piece-type/ui/apos/components/AposRelationshipEditor.vue +1 -2
  71. package/modules/@apostrophecms/rich-text-widget/ui/apos/components/AposRichTextWidgetEditor.vue +59 -41
  72. package/modules/@apostrophecms/rich-text-widget/ui/apos/components/AposTiptapDivider.vue +1 -0
  73. package/modules/@apostrophecms/rich-text-widget/ui/apos/components/AposTiptapMarks.vue +3 -1
  74. package/modules/@apostrophecms/rich-text-widget/ui/apos/components/AposTiptapStyles.vue +3 -1
  75. package/modules/@apostrophecms/rich-text-widget/ui/apos/components/AposTiptapTable.vue +2 -0
  76. package/modules/@apostrophecms/rich-text-widget/ui/apos/tiptap-extensions/Classes.js +1 -7
  77. package/modules/@apostrophecms/rich-text-widget/ui/apos/tiptap-extensions/Heading.js +10 -0
  78. package/modules/@apostrophecms/schema/lib/addFieldTypes.js +8 -3
  79. package/modules/@apostrophecms/schema/ui/apos/components/AposArrayEditor.vue +4 -6
  80. package/modules/@apostrophecms/schema/ui/apos/components/AposInputArea.vue +1 -0
  81. package/modules/@apostrophecms/schema/ui/apos/components/AposInputBoolean.vue +5 -2
  82. package/modules/@apostrophecms/schema/ui/apos/components/AposInputColor.vue +1 -0
  83. package/modules/@apostrophecms/schema/ui/apos/components/AposInputDateAndTime.vue +1 -1
  84. package/modules/@apostrophecms/schema/ui/apos/components/AposInputObject.vue +2 -0
  85. package/modules/@apostrophecms/schema/ui/apos/components/AposInputRadio.vue +1 -0
  86. package/modules/@apostrophecms/schema/ui/apos/components/AposInputRange.vue +14 -8
  87. package/modules/@apostrophecms/schema/ui/apos/components/AposInputRelationship.vue +4 -2
  88. package/modules/@apostrophecms/schema/ui/apos/components/AposInputSlug.vue +7 -1
  89. package/modules/@apostrophecms/schema/ui/apos/components/AposInputString.vue +3 -1
  90. package/modules/@apostrophecms/schema/ui/apos/components/AposInputWrapper.vue +35 -5
  91. package/modules/@apostrophecms/schema/ui/apos/components/AposSchema.vue +7 -4
  92. package/modules/@apostrophecms/schema/ui/apos/components/AposSearchList.vue +50 -15
  93. package/modules/@apostrophecms/schema/ui/apos/components/AposSubform.vue +5 -10
  94. package/modules/@apostrophecms/schema/ui/apos/logic/AposArrayEditor.js +19 -31
  95. package/modules/@apostrophecms/schema/ui/apos/logic/AposInputRelationship.js +3 -0
  96. package/modules/@apostrophecms/schema/ui/apos/logic/AposInputString.js +9 -0
  97. package/modules/@apostrophecms/schema/ui/apos/logic/AposInputWrapper.js +7 -0
  98. package/modules/@apostrophecms/schema/ui/apos/logic/AposSchema.js +11 -2
  99. package/modules/@apostrophecms/schema/ui/apos/logic/AposSearchList.js +3 -0
  100. package/modules/@apostrophecms/schema/ui/apos/mixins/AposInputMixin.js +5 -0
  101. package/modules/@apostrophecms/schema/ui/apos/scss/AposInputArray.scss +42 -9
  102. package/modules/@apostrophecms/search/index.js +1 -0
  103. package/modules/@apostrophecms/settings/index.js +33 -0
  104. package/modules/@apostrophecms/settings/ui/apos/components/AposSettingsManager.vue +6 -7
  105. package/modules/@apostrophecms/settings/ui/apos/logic/AposSettingsManager.js +0 -1
  106. package/modules/@apostrophecms/submitted-draft/index.js +26 -0
  107. package/modules/@apostrophecms/submitted-draft/ui/apos/components/AposSubmittedDraftIcon.vue +4 -4
  108. package/modules/@apostrophecms/template/views/templateError.html +4 -4
  109. package/modules/@apostrophecms/translation/ui/apos/components/AposTranslationIndicator.vue +2 -1
  110. package/modules/@apostrophecms/ui/ui/apos/components/AposAvatar.vue +3 -2
  111. package/modules/@apostrophecms/ui/ui/apos/components/AposButton.vue +62 -15
  112. package/modules/@apostrophecms/ui/ui/apos/components/AposButtonGroup.vue +8 -0
  113. package/modules/@apostrophecms/ui/ui/apos/components/AposButtonSplit.vue +9 -3
  114. package/modules/@apostrophecms/ui/ui/apos/components/AposCellContextMenu.vue +2 -0
  115. package/modules/@apostrophecms/ui/ui/apos/components/AposCellLabels.vue +1 -0
  116. package/modules/@apostrophecms/ui/ui/apos/components/AposCloudUploadIcon.vue +5 -5
  117. package/modules/@apostrophecms/ui/ui/apos/components/AposCombo.vue +7 -5
  118. package/modules/@apostrophecms/ui/ui/apos/components/AposContextMenu.vue +8 -5
  119. package/modules/@apostrophecms/ui/ui/apos/components/AposContextMenuDialog.vue +5 -3
  120. package/modules/@apostrophecms/ui/ui/apos/components/AposContextMenuItem.vue +22 -2
  121. package/modules/@apostrophecms/ui/ui/apos/components/AposEmptyState.vue +3 -1
  122. package/modules/@apostrophecms/ui/ui/apos/components/AposFile.vue +5 -1
  123. package/modules/@apostrophecms/ui/ui/apos/components/AposFilterMenu.vue +2 -1
  124. package/modules/@apostrophecms/ui/ui/apos/components/AposLabel.vue +1 -0
  125. package/modules/@apostrophecms/ui/ui/apos/components/AposMinMaxCount.vue +1 -0
  126. package/modules/@apostrophecms/ui/ui/apos/components/AposPager.vue +1 -0
  127. package/modules/@apostrophecms/ui/ui/apos/components/AposPagerDots.vue +3 -1
  128. package/modules/@apostrophecms/ui/ui/apos/components/AposSlat.vue +15 -2
  129. package/modules/@apostrophecms/ui/ui/apos/components/AposSlatList.vue +3 -1
  130. package/modules/@apostrophecms/ui/ui/apos/components/AposSpinner.vue +33 -7
  131. package/modules/@apostrophecms/ui/ui/apos/components/AposSubformPreview.vue +3 -2
  132. package/modules/@apostrophecms/ui/ui/apos/components/AposTag.vue +5 -3
  133. package/modules/@apostrophecms/ui/ui/apos/components/AposTagApply.vue +5 -2
  134. package/modules/@apostrophecms/ui/ui/apos/components/AposTagList.vue +5 -1
  135. package/modules/@apostrophecms/ui/ui/apos/components/AposTagListItem.vue +9 -1
  136. package/modules/@apostrophecms/ui/ui/apos/components/AposToggle.vue +13 -13
  137. package/modules/@apostrophecms/ui/ui/apos/components/AposTree.vue +1 -0
  138. package/modules/@apostrophecms/ui/ui/apos/components/AposTreeRows.vue +17 -7
  139. package/modules/@apostrophecms/ui/ui/apos/lib/vue.js +4 -0
  140. package/modules/@apostrophecms/ui/ui/apos/scss/global/_admin.scss +1 -1
  141. package/modules/@apostrophecms/ui/ui/apos/scss/global/_inputs.scss +28 -5
  142. package/modules/@apostrophecms/ui/ui/apos/scss/global/_scrollbars.scss +16 -0
  143. package/modules/@apostrophecms/ui/ui/apos/scss/global/_tables.scss +8 -3
  144. package/modules/@apostrophecms/ui/ui/apos/scss/global/_theme.scss +9 -8
  145. package/modules/@apostrophecms/ui/ui/apos/scss/global/_tooltips.scss +13 -7
  146. package/modules/@apostrophecms/ui/ui/apos/scss/global/import-all.scss +1 -1
  147. package/modules/@apostrophecms/ui/ui/apos/scss/mixins/_input_mixins.scss +5 -3
  148. package/modules/@apostrophecms/ui/ui/apos/scss/mixins/_mixins.scss +1 -0
  149. package/modules/@apostrophecms/ui/ui/apos/scss/mixins/_responsive.scss +4 -3
  150. package/modules/@apostrophecms/ui/ui/apos/scss/mixins/_theme_mixins.scss +6 -0
  151. package/modules/@apostrophecms/ui/ui/apos/scss/shared/_table-rows.scss +6 -3
  152. package/modules/@apostrophecms/ui/ui/apos/stores/modal.js +180 -0
  153. package/modules/@apostrophecms/widget-type/ui/apos/components/AposWidgetEditor.vue +2 -2
  154. package/package.json +4 -4
  155. package/test/modules/@apostrophecms/search/views/index.html +1 -0
  156. package/test/pages.js +227 -0
  157. package/test/schemas.js +184 -0
  158. package/test/search.js +49 -13
package/.stylelintrc CHANGED
@@ -1,95 +1,3 @@
1
1
  {
2
- plugins: [
3
- 'stylelint-order',
4
- 'stylelint-declaration-strict-value'
5
- ],
6
- rules: {
7
- 'color-hex-length': 'short',
8
- 'color-named': 'never',
9
- 'color-no-invalid-hex': true,
10
- 'declaration-property-unit-allowed-list': { 'line-height': [] },
11
- 'font-family-no-duplicate-names': true,
12
- 'number-leading-zero': 'always',
13
- 'number-max-precision': 2,
14
- 'number-no-trailing-zeros': true,
15
- 'string-no-newline': true,
16
- 'length-zero-no-unit': true,
17
- 'unit-case': 'lower',
18
- 'unit-no-unknown': true,
19
- 'value-keyword-case': 'lower',
20
- 'value-list-comma-newline-after': 'always-multi-line',
21
- 'value-list-comma-space-after': 'always-single-line',
22
- 'value-list-comma-space-before': 'never',
23
- 'value-list-max-empty-lines': 0,
24
- 'shorthand-property-no-redundant-values': true,
25
- 'property-case': 'lower',
26
- 'property-no-unknown': true,
27
- 'property-no-vendor-prefix': true,
28
- 'declaration-no-important': true,
29
- 'declaration-colon-space-after': 'always-single-line',
30
- 'declaration-colon-space-before': 'never',
31
- 'declaration-block-no-duplicate-properties': true,
32
- 'declaration-block-no-redundant-longhand-properties': true,
33
- 'declaration-block-no-shorthand-property-overrides': true,
34
- 'declaration-block-semicolon-newline-after': 'always',
35
- 'declaration-block-semicolon-newline-before': 'never-multi-line',
36
- 'declaration-block-single-line-max-declarations': 1,
37
- 'declaration-block-trailing-semicolon': 'always',
38
- 'block-closing-brace-empty-line-before': 'never',
39
- 'block-closing-brace-newline-after': [
40
- 'always',
41
- { ignoreAtRules: ['if', 'else'] }
42
- ],
43
- 'block-closing-brace-newline-before': 'always-multi-line',
44
- 'block-no-empty': true,
45
- indentation: 2,
46
- 'max-empty-lines': 1,
47
- 'max-nesting-depth': 2,
48
- 'selector-list-comma-newline-after': 'always-multi-line',
49
- 'string-quotes': 'single',
50
- 'time-min-milliseconds': 150,
51
- 'order/order': ['declarations', 'rules'],
52
- 'order/properties-order': [
53
- 'z-index',
54
- 'position',
55
- 'top',
56
- 'right',
57
- 'bottom',
58
- 'left',
59
- 'display',
60
- 'overflow',
61
- 'width',
62
- 'height',
63
- 'margin',
64
- 'padding',
65
- 'border',
66
- 'color',
67
- 'background',
68
- 'font-family',
69
- 'font-size',
70
- 'text-align'
71
- ],
72
- 'scale-unlimited/declaration-strict-value': [
73
- ['/color/', 'font', 'font-family', 'font-size', 'z-index'],
74
- {
75
- ignoreKeywords: [
76
- 'currentColor',
77
- 'inherit',
78
- 'initial',
79
- 'transparent',
80
- 'auto'
81
- ]
82
- }
83
- ]
84
- },
85
- overrides: [
86
- {
87
- files: ['**/*.scss'],
88
- customSyntax: 'postcss-scss'
89
- },
90
- {
91
- files: ['**/*.vue'],
92
- customSyntax: 'postcss-html'
93
- }
94
- ]
2
+ "extends": "stylelint-config-apostrophe"
95
3
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,61 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.4.0 (2024-06-12)
4
+
5
+ ### Adds
6
+
7
+ * Adds a pinia store to handle modals logic.
8
+ * Methods from the store are registered on `apos.modal` instead of methods from `TheAposModals` component.
9
+ * No more need to emit `safe-close` when defining an `AposModal`, modal is automatically resolved when closed.
10
+ * Adds field components access to the reactive document value.
11
+ * Expose `AposContextMenu` owned method for re-calculation of the content position.
12
+ * Field Meta components of `slug` and `string` types can now fire `replace-field-value` events with text value payload, which will replace the respective field value.
13
+ * `AposInputString` now accepts a `rows` prop, in effect only when `field.textarea` is set to `true`.
14
+ * Add `T,S` shortcut to open the Personal Settings.
15
+ * Add `T,D` shortcut to open the Submitted Drafts.
16
+ * Add a scrollbar to the shortcut list.
17
+ * Add breadcrumbs to search results page.
18
+ * Pages relationships have now their checkboxes disabled when max is reached.
19
+
20
+ ### Changes
21
+
22
+ * Improves widget tabs for the hidden entries, improves UX when validation errors are present in non-focused tabs.
23
+ * When moving a page, recognize when the slug of a new child
24
+ already contains the new parent's slug and not double it.
25
+ For example, given we have two pages as children of the home page, page A and page B.
26
+ Page A and page B are siblings.
27
+ Page A has the slug `/peer` and page B has the slug `/peer/page`.
28
+ Now we want page B to be the child of page A.
29
+ We will now end up with page B slug as `/peer/page` and not `/peer/peer/page` as before.
30
+ * `AposSpinner` now respects the colors for `heavy` weight mode and also accepts second, "light" color in this mode. Props JSDoc blocks are added.
31
+ * `AposContextMenu` now respects the `menuOffset` component property.
32
+ * Set `G,Shift+I` shortcut to open the Image Tags manager modal.
33
+ * Set `G,Shift+F` shortcut to open the File Tags manager modal.
34
+ * Remove slug from suggestion for images.
35
+ * Increase suggestion search image size to 50px.
36
+ * For suggestions with image, keep title on a single line and truncate title field with `...` when it hits the right side.
37
+
38
+ ### Fixes
39
+
40
+ * Rich Text editor properly unsets marks on heading close.
41
+ * Widget client side schema validation.
42
+ * Allow `G,Shift+I` shortcut style.
43
+ * Detect shortcut conflicts when using multiple shortcuts.
44
+ * Updating schema fields as read-only no longer reset the value when updating the document.
45
+ * Fixes stylelint config file, uses config from our shared configuration, fixes all lint errors.
46
+ * Removes `$nextTick` use to re render schema in `AposArrayEditor` because it was triggering weird vue error in production.
47
+ Instead, makes the AposSchema for loop keys more unique using `modelValue.data._id`,
48
+ if document changes it re-renders schema fields.
49
+ * Fixes `TheAposCommandMenu` modals not computing shortcuts from the current opened modal.
50
+ * Fixes select boxes of relationships, we can now check manually published relationships, and `AposSlatList` renders properly checked relationships.
51
+ * Fixes issues in `AposInputArray` on production build to be able to add, remove and edit array items after `required` error.
52
+ * Relationships browse button isn't disabled when max is reached.
53
+ * In media manager image checkboxes are disabled when max is reached.
54
+ * Fixes tiptap bubble menu jumping on Firefox when clicking on buttons. Also fixes the fact that
55
+ double clicking on bubble menu out of buttons would prevent it from closing when unfocusing the rich text area.
56
+ * In media manager images checkboxes are disabled when max is reached.
57
+ * Makes the final fields accessible in the media manager right rail.
58
+
3
59
  ## 4.3.2 (2024-05-18)
4
60
 
5
61
  ### Fixes
@@ -100,6 +100,7 @@ export default {
100
100
 
101
101
  :deep(.apos-admin-bar__control-set) {
102
102
  @include type-base;
103
+
103
104
  display: flex;
104
105
  width: 100%;
105
106
  height: 100%;
@@ -112,25 +113,30 @@ export default {
112
113
  :deep(.apos-context-menu__pane) {
113
114
  min-width: 150px;
114
115
  }
116
+
115
117
  :deep(.flip-enter) { // to the ground
116
118
  transform: translateY(-20%);
117
119
  opacity: 0;
118
120
  }
121
+
119
122
  :deep(.flip-leave) { // in the frame
120
123
  transform: translateY(0);
121
124
  opacity: 1;
122
125
  }
126
+
123
127
  :deep(.flip-enter-to) { // from the ground
124
128
  transform: translateY(0);
125
129
  opacity: 1;
126
130
  }
131
+
127
132
  :deep(.flip-leave-to) { // to the sky
128
133
  transform: translateY(20%);
129
134
  opacity: 0;
130
135
  }
131
136
 
132
137
  :deep(.flip-enter-active), :deep(.flip-leave-active) {
133
- transition: all 150ms;
138
+ transition: all 200ms;
139
+
134
140
  &.apos-admin-bar__control-set__group {
135
141
  position: absolute;
136
142
  }
@@ -192,8 +192,9 @@ export default {
192
192
  .apos-admin-locales {
193
193
  position: relative;
194
194
  margin-right: $spacing-base;
195
- padding-left: $spacing-base;
196
195
  padding-right: $spacing-base;
196
+ padding-left: $spacing-base;
197
+
197
198
  &::before,
198
199
  &::after {
199
200
  content: '';
@@ -214,6 +215,7 @@ export default {
214
215
 
215
216
  &:deep(.apos-button__label) {
216
217
  @include type-small;
218
+
217
219
  color: var(--a-primary);
218
220
  font-weight: var(--a-weight-bold);
219
221
  letter-spacing: 1px;
@@ -226,6 +228,7 @@ export default {
226
228
 
227
229
  .apos-locales-filter {
228
230
  @include type-large;
231
+
229
232
  box-sizing: border-box;
230
233
  width: 100%;
231
234
  padding: 20px 45px 20px 20px;
@@ -248,11 +251,11 @@ export default {
248
251
  }
249
252
 
250
253
  .apos-locales {
254
+ margin: $spacing-base 0;
255
+ padding-left: 0;
251
256
  list-style-type: none;
252
257
  max-height: 350px;
253
258
  overflow-y: scroll;
254
- padding-left: 0;
255
- margin: $spacing-base 0;
256
259
  font-weight: var(--a-weight-base);
257
260
  }
258
261
 
@@ -56,12 +56,13 @@ export default {
56
56
 
57
57
  :deep(.apos-button) {
58
58
  @include type-base;
59
+
59
60
  color: var(--a-text-primary);
60
61
  }
61
62
 
62
63
  :deep(.apos-context-menu__popup) {
63
64
  right: 0;
64
- transform: translatex(10px);
65
+ transform: translateX(10px);
65
66
  }
66
67
  }
67
68
 
@@ -187,6 +187,7 @@ export default {
187
187
  <style lang="scss" scoped>
188
188
  .apos-admin-bar__control-set--mode-and-settings {
189
189
  justify-content: flex-end;
190
+
190
191
  &:deep(.apos-button) {
191
192
  margin-left: 4px;
192
193
  }
@@ -148,9 +148,10 @@ export default {
148
148
  </script>
149
149
  <style lang="scss" scoped>
150
150
  .apos-admin-bar__control-set--title {
151
- justify-content: center;
152
151
  align-items: center;
152
+ justify-content: center;
153
153
  }
154
+
154
155
  .apos-admin-bar__title {
155
156
  display: inline-flex;
156
157
  align-items: center;
@@ -169,8 +170,8 @@ export default {
169
170
 
170
171
  &__separator {
171
172
  align-items: center;
172
- padding: 0 7px;
173
173
  margin-top: 1px;
174
+ padding: 0 7px;
174
175
  }
175
176
 
176
177
  &__document {
@@ -121,14 +121,17 @@ export default {
121
121
  <style lang="scss" scoped>
122
122
  .apos-admin-bar__status {
123
123
  @include type-help;
124
+
124
125
  position: relative;
125
126
  margin-left: 7.5px;
126
127
  opacity: 1;
127
128
  color: var(--a-base-2);
128
- transition: opacity 150ms;
129
+ transition: opacity 200ms;
130
+
129
131
  &.apos-is-hidden {
130
132
  opacity: 0;
131
133
  }
134
+
132
135
  .apos-is-success {
133
136
  color: var(--a-success);
134
137
  }
@@ -148,14 +151,15 @@ export default {
148
151
  }
149
152
 
150
153
  .apos-admin-bar__status__icon {
151
- margin-right: 7.5px;
152
154
  width: 18px;
153
155
  height: 18px;
156
+ margin-right: 7.5px;
154
157
  }
155
158
 
156
159
  .apos-admin-bar__status__label {
157
160
  opacity: 1;
158
161
  transition: opacity 200ms ease;
162
+
159
163
  &.apos-is-hidden {
160
164
  opacity: 0;
161
165
  }
@@ -109,8 +109,9 @@ module.exports = {
109
109
  ancestors: {
110
110
  def: false,
111
111
  async after(results) {
112
+ const req = query.req;
112
113
  const options = query.get('ancestors');
113
- if (!options) {
114
+ if (!options && req.aposAncestors !== true) {
114
115
  return;
115
116
  }
116
117
  for (const page of results) {
@@ -118,7 +119,6 @@ module.exports = {
118
119
  // Projection is too limited, don't crash trying to get ancestors
119
120
  continue;
120
121
  }
121
- const req = query.req;
122
122
  const subquery = self.apos.page.find(req);
123
123
  subquery.ancestorPerformanceRestrictions();
124
124
  const parameters = applySubqueryOptions(subquery, options, [ 'depth' ]);
@@ -294,6 +294,7 @@ export default {
294
294
  .apos-area-menu__button {
295
295
  @include apos-button-reset();
296
296
  @include type-base;
297
+
297
298
  box-sizing: border-box;
298
299
  width: 100%;
299
300
  padding: 5px 20px;
@@ -329,11 +330,13 @@ export default {
329
330
 
330
331
  .apos-area-menu__group-label {
331
332
  @include apos-button-reset();
332
- box-sizing: border-box;
333
+
333
334
  display: flex;
334
- width: 100%;
335
+ box-sizing: border-box;
335
336
  justify-content: space-between;
337
+ width: 100%;
336
338
  padding: 10px 20px;
339
+
337
340
  &:hover {
338
341
  cursor: pointer;
339
342
  }
@@ -346,6 +349,7 @@ export default {
346
349
 
347
350
  .apos-area-menu__group-chevron {
348
351
  @include apos-transition();
352
+
349
353
  transform: rotate(90deg);
350
354
  }
351
355
 
@@ -354,23 +358,25 @@ export default {
354
358
  }
355
359
 
356
360
  .apos-area-menu__group {
357
- border-bottom: 1px solid var(--a-base-8);
358
- padding-bottom: 10px;
359
361
  margin: 10px 0;
362
+ padding-bottom: 10px;
363
+ border-bottom: 1px solid var(--a-base-8);
360
364
  }
365
+
361
366
  .apos-area-menu__item:last-child.apos-has-group .apos-area-menu__group {
362
- border-bottom: none;
363
367
  margin-bottom: 0;
368
+ border-bottom: none;
364
369
  }
365
370
 
366
371
  .apos-area-menu__items--accordion {
372
+ @include apos-transition($duration:0.3s);
373
+
367
374
  overflow: hidden;
368
375
  max-height: 0;
369
- @include apos-transition($duration:0.3s);
370
376
  }
371
377
 
372
378
  .apos-area-menu__items--accordion.apos-is-active {
373
- transition-delay: 0.25s;
379
+ transition-delay: 250ms;
374
380
  max-height: 20rem;
375
381
  }
376
382
 
@@ -621,13 +621,13 @@ function cancelRefresh(refreshOptions) {
621
621
  <style lang="scss" scoped>
622
622
  .apos-empty-area {
623
623
  display: flex;
624
- padding: 30px;
625
- justify-content: center;
626
- align-items: center;
627
624
  flex-direction: column;
625
+ align-items: center;
626
+ justify-content: center;
627
+ padding: 30px;
628
+ border: 1px solid var(--a-base-8);
628
629
  min-height: 50px;
629
630
  background-color: var(--a-base-9);
630
- border: 1px solid var(--a-base-8);
631
631
  border-radius: var(--a-border-radius);
632
632
  }
633
633
 
@@ -6,7 +6,6 @@
6
6
  @inactive="modal.active = false"
7
7
  @show-modal="modal.showModal = true"
8
8
  @esc="close"
9
- @no-modal="$emit('safe-close')"
10
9
  >
11
10
  <template #main>
12
11
  <AposModalBody>
@@ -77,7 +76,7 @@ export default {
77
76
  default: 0
78
77
  }
79
78
  },
80
- emits: [ 'expanded-menu-close', 'safe-close', 'modal-result' ],
79
+ emits: [ 'expanded-menu-close', 'modal-result' ],
81
80
  data() {
82
81
  return {
83
82
  modal: {
@@ -212,9 +211,9 @@ export default {
212
211
  .apos-widget__preview {
213
212
  position: relative;
214
213
  display: flex;
215
- justify-content: center;
216
- align-items: center;
217
214
  overflow: hidden;
215
+ align-items: center;
216
+ justify-content: center;
218
217
  height: 135px;
219
218
  outline: 1px solid var(--a-base-7);
220
219
  border-radius: var(--a-border-radius);
@@ -231,6 +230,7 @@ export default {
231
230
  display: grid;
232
231
  grid-template-columns: repeat(3, 1fr);
233
232
  gap: 15px 10px;
233
+
234
234
  .apos-widget__preview {
235
235
  height: 89px;
236
236
  }
@@ -240,6 +240,7 @@ export default {
240
240
  display: grid;
241
241
  grid-template-columns: repeat(4, 1fr);
242
242
  gap: 15px 5px;
243
+
243
244
  .apos-widget__preview {
244
245
  height: 66px;
245
246
  }
@@ -248,6 +249,7 @@ export default {
248
249
 
249
250
  .apos-widget {
250
251
  @include type-base;
252
+
251
253
  padding: 0;
252
254
  border: none;
253
255
  background: none;
@@ -255,33 +257,35 @@ export default {
255
257
 
256
258
  .apos-widget__preview {
257
259
  transition: opacity 250ms ease-in-out;
260
+
258
261
  .apos-icon--add {
259
262
  z-index: $z-index-default;
260
263
  position: absolute;
261
- // Center in the parent element
262
- align-self: center;
263
- justify-self: center;
264
264
  // Center the child content
265
265
  display: flex;
266
- justify-content: center;
267
266
  align-items: center;
267
+ // Center in the parent element
268
+ place-self: center center;
269
+ justify-content: center;
268
270
  width: 27px;
269
271
  height: 27px;
272
+ color: var(--a-white);
270
273
  border-radius: 50%;
271
274
  background-color: var(--a-primary);
272
275
  opacity: 0;
273
- color: var(--a-white);
274
276
  }
277
+
275
278
  &::after {
276
- transition: all 250ms ease-in-out;
277
279
  position: absolute;
278
- content: '';
279
280
  width: 100%;
280
281
  height: 100%;
282
+ transition: all 250ms ease-in-out;
283
+ content: '';
281
284
  background-color: var(--a-primary);
282
285
  opacity: 0;
283
286
  }
284
287
  }
288
+
285
289
  &:hover {
286
290
  cursor: pointer;
287
291
  // stylelint-disable max-nesting-depth
@@ -289,6 +293,7 @@ export default {
289
293
  .apos-icon--add {
290
294
  opacity: 1;
291
295
  }
296
+
292
297
  &::after {
293
298
  opacity: 0.4;
294
299
  }
@@ -304,6 +309,7 @@ export default {
304
309
  .apos-widget-group__label,
305
310
  .apos-widget__help {
306
311
  @include type-base;
312
+
307
313
  margin-top: 0;
308
314
  line-height: var(--a-line-tall);
309
315
  text-align: left;
@@ -107,6 +107,7 @@ export default {
107
107
  .apos-area-menu__button {
108
108
  @include apos-button-reset();
109
109
  @include type-base;
110
+
110
111
  box-sizing: border-box;
111
112
  width: 100%;
112
113
  padding: 5px 20px;
@@ -142,11 +143,13 @@ export default {
142
143
 
143
144
  .apos-area-menu__group-label {
144
145
  @include apos-button-reset();
145
- box-sizing: border-box;
146
+
146
147
  display: flex;
147
- width: 100%;
148
+ box-sizing: border-box;
148
149
  justify-content: space-between;
150
+ width: 100%;
149
151
  padding: 10px 20px;
152
+
150
153
  &:hover {
151
154
  cursor: pointer;
152
155
  }
@@ -159,6 +162,7 @@ export default {
159
162
 
160
163
  .apos-area-menu__group-chevron {
161
164
  @include apos-transition();
165
+
162
166
  transform: rotate(90deg);
163
167
  }
164
168
 
@@ -167,23 +171,25 @@ export default {
167
171
  }
168
172
 
169
173
  .apos-area-menu__group {
170
- border-bottom: 1px solid var(--a-base-8);
171
- padding-bottom: 10px;
172
174
  margin: 10px 0;
175
+ padding-bottom: 10px;
176
+ border-bottom: 1px solid var(--a-base-8);
173
177
  }
178
+
174
179
  .apos-area-menu__item:last-child.apos-has-group .apos-area-menu__group {
175
- border-bottom: none;
176
180
  margin-bottom: 0;
181
+ border-bottom: none;
177
182
  }
178
183
 
179
184
  .apos-area-menu__items--accordion {
185
+ @include apos-transition($duration:0.3s);
186
+
180
187
  overflow: hidden;
181
188
  max-height: 0;
182
- @include apos-transition($duration:0.3s);
183
189
  }
184
190
 
185
191
  .apos-area-menu__items--accordion.apos-is-active {
186
- transition-delay: 0.25s;
192
+ transition-delay: 250ms;
187
193
  max-height: 20rem;
188
194
  }
189
195
 
@@ -66,12 +66,15 @@ export default {
66
66
 
67
67
  .apos-area-menu__item-icon {
68
68
  @include apos-align-icon();
69
+
69
70
  margin-right: 10px;
70
71
  }
72
+
71
73
  .apos-area-menu__item-content {
72
74
  display: flex;
73
75
  align-items: center;
74
76
  }
77
+
75
78
  .apos-area-menu__item-sublabel {
76
79
  margin-bottom: 10px;
77
80
  color: var(--a-base-4);