@instructure/ui-modal 11.7.4-snapshot-118 → 11.7.4-snapshot-120

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
@@ -3,11 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [11.7.4-snapshot-118](https://github.com/instructure/instructure-ui/compare/v11.7.3...v11.7.4-snapshot-118) (2026-07-21)
6
+ ## [11.7.4-snapshot-120](https://github.com/instructure/instructure-ui/compare/v11.7.3...v11.7.4-snapshot-120) (2026-07-21)
7
7
 
8
8
 
9
9
  ### Bug Fixes
10
10
 
11
+ * **ui-modal:** add whitespace between header text nodes in scroll body aria-label ([350e841](https://github.com/instructure/instructure-ui/commit/350e841666bc5635a7e130bef1a82bd1583048be))
11
12
  * **ui-modal:** restore Modal open/close transition animation ([ef6b3d1](https://github.com/instructure/instructure-ui/commit/ef6b3d14de2db187934b4e7a54276ee38fce6b0b))
12
13
  * **ui-modal:** skip Modal.Body tab stop when it has focusable children ([25e4261](https://github.com/instructure/instructure-ui/commit/25e42617898fa6584da0b33eed589e2710875570))
13
14
 
@@ -58,12 +58,19 @@ let ModalHeader = (_dec = withStyleNew(generateStyle, 'ModalHeader'), _dec(_clas
58
58
  return node.parentElement?.closest('button') ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;
59
59
  }
60
60
  });
61
- let text = '';
61
+ const textParts = [];
62
62
  let current;
63
63
  while (current = walker.nextNode()) {
64
- text += current.nodeValue;
64
+ // Trim each text node and drop empty ones so adjacent text nodes from
65
+ // different elements (e.g. the decorative "IgniteAI" span a `Heading`
66
+ // with `aiVariant` renders before its title) are separated by a single
67
+ // space instead of being concatenated into "IgniteAI Nutrition Facts".
68
+ const value = current.nodeValue?.trim();
69
+ if (value) {
70
+ textParts.push(value);
71
+ }
65
72
  }
66
- return text;
73
+ return textParts.join(' ');
67
74
  };
68
75
  handleRef = el => {
69
76
  this.ref = el;
@@ -65,12 +65,19 @@ let ModalHeader = exports.ModalHeader = (_dec = (0, _emotion.withStyleNew)(_styl
65
65
  return node.parentElement?.closest('button') ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;
66
66
  }
67
67
  });
68
- let text = '';
68
+ const textParts = [];
69
69
  let current;
70
70
  while (current = walker.nextNode()) {
71
- text += current.nodeValue;
71
+ // Trim each text node and drop empty ones so adjacent text nodes from
72
+ // different elements (e.g. the decorative "IgniteAI" span a `Heading`
73
+ // with `aiVariant` renders before its title) are separated by a single
74
+ // space instead of being concatenated into "IgniteAI Nutrition Facts".
75
+ const value = current.nodeValue?.trim();
76
+ if (value) {
77
+ textParts.push(value);
78
+ }
72
79
  }
73
- return text;
80
+ return textParts.join(' ');
74
81
  };
75
82
  handleRef = el => {
76
83
  this.ref = el;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instructure/ui-modal",
3
- "version": "11.7.4-snapshot-118",
3
+ "version": "11.7.4-snapshot-120",
4
4
  "description": "A component for displaying content in a dialog overlay",
5
5
  "author": "Instructure, Inc. Engineering and Product Design",
6
6
  "module": "./es/index.js",
@@ -15,28 +15,28 @@
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
17
  "@babel/runtime": "^7.29.7",
18
- "@instructure/console": "11.7.4-snapshot-118",
19
- "@instructure/shared-types": "11.7.4-snapshot-118",
20
- "@instructure/ui-buttons": "11.7.4-snapshot-118",
21
- "@instructure/ui-dialog": "11.7.4-snapshot-118",
22
- "@instructure/ui-dom-utils": "11.7.4-snapshot-118",
23
- "@instructure/emotion": "11.7.4-snapshot-118",
24
- "@instructure/ui-portal": "11.7.4-snapshot-118",
25
- "@instructure/ui-motion": "11.7.4-snapshot-118",
26
- "@instructure/ui-overlays": "11.7.4-snapshot-118",
27
- "@instructure/ui-themes": "11.7.4-snapshot-118",
28
- "@instructure/ui-react-utils": "11.7.4-snapshot-118",
29
- "@instructure/ui-utils": "11.7.4-snapshot-118",
30
- "@instructure/ui-view": "11.7.4-snapshot-118"
18
+ "@instructure/console": "11.7.4-snapshot-120",
19
+ "@instructure/emotion": "11.7.4-snapshot-120",
20
+ "@instructure/shared-types": "11.7.4-snapshot-120",
21
+ "@instructure/ui-dialog": "11.7.4-snapshot-120",
22
+ "@instructure/ui-buttons": "11.7.4-snapshot-120",
23
+ "@instructure/ui-dom-utils": "11.7.4-snapshot-120",
24
+ "@instructure/ui-motion": "11.7.4-snapshot-120",
25
+ "@instructure/ui-overlays": "11.7.4-snapshot-120",
26
+ "@instructure/ui-portal": "11.7.4-snapshot-120",
27
+ "@instructure/ui-react-utils": "11.7.4-snapshot-120",
28
+ "@instructure/ui-themes": "11.7.4-snapshot-120",
29
+ "@instructure/ui-utils": "11.7.4-snapshot-120",
30
+ "@instructure/ui-view": "11.7.4-snapshot-120"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@testing-library/jest-dom": "^6.9.1",
34
34
  "@testing-library/react": "16.3.2",
35
35
  "@testing-library/user-event": "^14.6.1",
36
36
  "vitest": "^4.1.9",
37
- "@instructure/ui-babel-preset": "11.7.4-snapshot-118",
38
- "@instructure/ui-color-utils": "11.7.4-snapshot-118",
39
- "@instructure/ui-position": "11.7.4-snapshot-118"
37
+ "@instructure/ui-babel-preset": "11.7.4-snapshot-120",
38
+ "@instructure/ui-position": "11.7.4-snapshot-120",
39
+ "@instructure/ui-color-utils": "11.7.4-snapshot-120"
40
40
  },
41
41
  "peerDependencies": {
42
42
  "react": ">=18 <=19"
@@ -75,12 +75,19 @@ class ModalHeader extends Component<ModalHeaderProps> {
75
75
  : NodeFilter.FILTER_ACCEPT
76
76
  }
77
77
  })
78
- let text = ''
78
+ const textParts: string[] = []
79
79
  let current
80
80
  while ((current = walker.nextNode())) {
81
- text += current.nodeValue
81
+ // Trim each text node and drop empty ones so adjacent text nodes from
82
+ // different elements (e.g. the decorative "IgniteAI" span a `Heading`
83
+ // with `aiVariant` renders before its title) are separated by a single
84
+ // space instead of being concatenated into "IgniteAI Nutrition Facts".
85
+ const value = current.nodeValue?.trim()
86
+ if (value) {
87
+ textParts.push(value)
88
+ }
82
89
  }
83
- return text
90
+ return textParts.join(' ')
84
91
  }
85
92
 
86
93
  handleRef = (el: HTMLDivElement | null) => {