apostrophe 4.27.1-alpha.1 → 4.27.1

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/CHANGELOG.md CHANGED
@@ -1,12 +1,11 @@
1
1
  # Changelog
2
2
 
3
- ## 4.27.1-alpha.1
4
-
5
- ### Patch Changes
3
+ ## 4.27.1 (2026-03-03)
6
4
 
7
5
  ### Fixes
8
6
 
9
- - Relationship field: fixes two conditions where slow internet speed could cause input to lose focus before a selection can be registered. Thanks to Gysho for the report and the fix.
7
+ - Fixes two conditions where slow internet speed could cause relationship field inputs to lose focus before a selection can be registered.
8
+ - Fixes a subtle bug in AposPermissionGrid that caused unrelated clicks to be "swallowed" due to a race condition at low network speeds.
10
9
 
11
10
  ## 4.27.0 (2026-02-18)
12
11
 
@@ -91,9 +91,21 @@ export default {
91
91
  },
92
92
  watch: {
93
93
  apiParams: {
94
- async handler() {
94
+ async handler(newValue, oldValue) {
95
+ // The way we pass the props to this component as an object every
96
+ // means that everything gets flagged as a change every time the
97
+ // component is included in a render.
98
+ //
99
+ // So we need to compare the actual data, and this is a simple way
100
+ // to do that deeply for both regular and advanced permission.
101
+ if (JSON.stringify(newValue) === JSON.stringify(oldValue)) {
102
+ return;
103
+ }
95
104
  this.permissionSets = await this.getPermissionSets();
96
105
  },
106
+ // Still in place in case we stop passing a new object
107
+ // every time, in which case this wouldn't fire
108
+ // without it. -Tom
97
109
  deep: true
98
110
  }
99
111
  },
@@ -43,7 +43,10 @@
43
43
  class="apos-button__icon"
44
44
  fill-color="currentColor"
45
45
  />
46
- <div class="apos-search__item__title">
46
+ <div
47
+ class="apos-search__item__title"
48
+ data-apos-test="searchItemTitle"
49
+ >
47
50
  {{ item.title }}
48
51
  </div>
49
52
  <div
@@ -188,6 +191,9 @@ export default {
188
191
 
189
192
  & {
190
193
  color: var(--a-text-primary);
194
+ max-width: 40ch;
195
+ overflow-wrap: break-word;
196
+ word-break: break-all;
191
197
  }
192
198
  }
193
199
 
@@ -22,6 +22,7 @@
22
22
  :key="objectValues ? checked.value : checked"
23
23
  class="apos-combo__selected"
24
24
  @pointerdown.stop.prevent="selectOption(getSelectedOption(checked))"
25
+ @click.stop
25
26
  >
26
27
  {{ getSelectedOption(checked)?.label }}
27
28
  <AposIndicator
@@ -75,6 +76,7 @@
75
76
  role="menuitemcheckbox"
76
77
  :class="{focused: focusedItemIndex === i}"
77
78
  @pointerdown.stop.prevent="selectOption(choice)"
79
+ @click.stop
78
80
  @mouseover="focusedItemIndex = i"
79
81
  >
80
82
  <AposIndicator
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apostrophe",
3
- "version": "4.27.1-alpha.1",
3
+ "version": "4.27.1",
4
4
  "description": "The Apostrophe Content Management System.",
5
5
  "main": "index.js",
6
6
  "repository": {
@@ -120,10 +120,10 @@
120
120
  "webpack-merge": "^5.7.3",
121
121
  "xregexp": "^2.0.0",
122
122
  "@apostrophecms/emulate-mongo-3-driver": "^1.0.6",
123
- "broadband": "^1.1.0",
124
123
  "express-cache-on-demand": "^1.0.4",
125
124
  "postcss-viewport-to-container-toggle": "^2.2.0",
126
125
  "boring": "^1.1.1",
126
+ "broadband": "^1.1.0",
127
127
  "sanitize-html": "^2.17.0"
128
128
  },
129
129
  "devDependencies": {
@@ -132,8 +132,8 @@
132
132
  "mocha": "^11.7.1",
133
133
  "nyc": "^17.1.0",
134
134
  "stylelint": "^16.5.0",
135
- "stylelint-config-apostrophe": "^4.4.0",
136
- "eslint-config-apostrophe": "^6.0.2"
135
+ "eslint-config-apostrophe": "^6.0.2",
136
+ "stylelint-config-apostrophe": "^4.4.0"
137
137
  },
138
138
  "browserslist": [
139
139
  "ie >= 10"