@instructure/ui-options 10.26.1 → 11.0.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.
package/CHANGELOG.md CHANGED
@@ -3,9 +3,30 @@
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
- ## [10.26.1](https://github.com/instructure/instructure-ui/compare/v10.26.0...v10.26.1) (2025-10-06)
6
+ # [11.0.0](https://github.com/instructure/instructure-ui/compare/v10.26.0...v11.0.0) (2025-10-06)
7
7
 
8
- **Note:** Version bump only for package @instructure/ui-options
8
+
9
+ ### Features
10
+
11
+ * **many:** instUI v11 release ([36f5438](https://github.com/instructure/instructure-ui/commit/36f54382669186227ba24798bbf7201ef2f5cd4c))
12
+
13
+
14
+ ### BREAKING CHANGES
15
+
16
+ * **many:** InstUI v11 contains the following breaking changes:
17
+ - React 16 and 17 are no longer supported
18
+ - remove `PropTypes` from all packages
19
+ - remove `CodeEditor` component
20
+ - remove `@instui/theme-registry` package
21
+ - remove `@testable`, `@experimental`, `@hack` decorators
22
+ - InstUISettingsProvider's `as` prop is removed
23
+ - `canvas.use()`, `canvasHighContrast.use()` functions are removed
24
+ - `canvasThemeLocal`, `canvasHighContrastThemeLocal` are removed
25
+ - `variables` field on theme objects are removed
26
+ - remove deprecated props from Table: Row's `isStacked`, Body's
27
+ `isStacked`, `hover`, and `headers`
28
+ - `Table`'s `caption` prop is now required
29
+ - `ui-dom-utils`'s `getComputedStyle` can now return `undefined`
9
30
 
10
31
 
11
32
 
@@ -1,4 +1,4 @@
1
- var _dec, _dec2, _dec3, _class, _Item;
1
+ var _dec, _dec2, _class, _Item;
2
2
  /*
3
3
  * The MIT License (MIT)
4
4
  *
@@ -25,11 +25,10 @@ var _dec, _dec2, _dec3, _class, _Item;
25
25
 
26
26
  import { Component } from 'react';
27
27
  import { omitProps, getElementType, callRenderProp, withDeterministicId } from '@instructure/ui-react-utils';
28
- import { testable } from '@instructure/ui-testable';
29
28
  import { withStyle } from '@instructure/emotion';
30
29
  import generateStyles from './styles';
31
30
  import generateComponentTheme from './theme';
32
- import { allowedProps, propTypes } from './props';
31
+ import { allowedProps } from './props';
33
32
 
34
33
  /**
35
34
  ---
@@ -38,7 +37,7 @@ id: Options.Item
38
37
  ---
39
38
  **/
40
39
  import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
41
- let Item = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyles, generateComponentTheme), _dec3 = testable(), _dec(_class = _dec2(_class = _dec3(_class = (_Item = class Item extends Component {
40
+ let Item = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyles, generateComponentTheme), _dec(_class = _dec2(_class = (_Item = class Item extends Component {
42
41
  constructor(props) {
43
42
  super(props);
44
43
  this.ref = null;
@@ -93,6 +92,7 @@ let Item = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyles, gene
93
92
  const ariaDescribedBy = this.props['aria-describedby'] || (descriptionContent ? this._descriptionId : void 0);
94
93
  return _jsxs(ElementType, {
95
94
  role: voiceoverRoleBugWorkaround ? role : 'none',
95
+ "data-cid": "Options.Item",
96
96
  css: styles === null || styles === void 0 ? void 0 : styles.item,
97
97
  ref: element => {
98
98
  this.ref = element;
@@ -116,7 +116,7 @@ let Item = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyles, gene
116
116
  }), renderBeforeLabel && this.renderContent(renderBeforeLabel, styles === null || styles === void 0 ? void 0 : styles.contentBefore), renderAfterLabel && this.renderContent(renderAfterLabel, styles === null || styles === void 0 ? void 0 : styles.contentAfter)]
117
117
  });
118
118
  }
119
- }, _Item.displayName = "Item", _Item.componentId = 'Options.Item', _Item.allowedProps = allowedProps, _Item.propTypes = propTypes, _Item.defaultProps = {
119
+ }, _Item.displayName = "Item", _Item.componentId = 'Options.Item', _Item.allowedProps = allowedProps, _Item.defaultProps = {
120
120
  as: 'span',
121
121
  variant: 'default',
122
122
  role: 'listitem',
@@ -124,6 +124,6 @@ let Item = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyles, gene
124
124
  beforeLabelContentVAlign: 'center',
125
125
  afterLabelContentVAlign: 'center',
126
126
  isSelected: false
127
- }, _Item)) || _class) || _class) || _class);
127
+ }, _Item)) || _class) || _class);
128
128
  export default Item;
129
129
  export { Item };
@@ -22,22 +22,5 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
 
25
- import PropTypes from 'prop-types';
26
- const propTypes = {
27
- as: PropTypes.elementType,
28
- variant: PropTypes.oneOf(['default', 'highlighted', 'selected', 'disabled', 'highlighted-disabled', 'selected-highlighted']),
29
- role: PropTypes.string,
30
- renderBeforeLabel: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
31
- renderAfterLabel: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
32
- beforeLabelContentVAlign: PropTypes.oneOf(['start', 'center', 'end']),
33
- afterLabelContentVAlign: PropTypes.oneOf(['start', 'center', 'end']),
34
- description: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
35
- descriptionRole: PropTypes.string,
36
- href: PropTypes.string,
37
- voiceoverRoleBugWorkaround: PropTypes.bool,
38
- elementRef: PropTypes.func,
39
- children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
40
- isSelected: PropTypes.bool
41
- };
42
25
  const allowedProps = ['as', 'variant', 'role', 'renderBeforeLabel', 'renderAfterLabel', 'beforeLabelContentVAlign', 'afterLabelContentVAlign', 'description', 'descriptionRole', 'voiceoverRoleBugWorkaround', 'href', 'elementRef', 'children', 'isSelected'];
43
- export { propTypes, allowedProps };
26
+ export { allowedProps };
@@ -30,7 +30,7 @@ import { getElementType, omitProps } from '@instructure/ui-react-utils';
30
30
  import { withStyle } from '@instructure/emotion';
31
31
  import generateStyles from './styles';
32
32
  import generateComponentTheme from './theme';
33
- import { allowedProps, propTypes } from './props';
33
+ import { allowedProps } from './props';
34
34
 
35
35
  /**
36
36
  ---
@@ -64,7 +64,7 @@ let Separator = (_dec = withStyle(generateStyles, generateComponentTheme), _dec(
64
64
  })
65
65
  });
66
66
  }
67
- }, _Separator.displayName = "Separator", _Separator.componentId = 'Options.Separator', _Separator.allowedProps = allowedProps, _Separator.propTypes = propTypes, _Separator.defaultProps = {
67
+ }, _Separator.displayName = "Separator", _Separator.componentId = 'Options.Separator', _Separator.allowedProps = allowedProps, _Separator.defaultProps = {
68
68
  as: 'span'
69
69
  }, _Separator)) || _class);
70
70
  export default Separator;
@@ -21,9 +21,6 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  * SOFTWARE.
23
23
  */
24
- import PropTypes from 'prop-types';
25
- const propTypes = {
26
- as: PropTypes.elementType
27
- };
24
+
28
25
  const allowedProps = ['as'];
29
- export { propTypes, allowedProps };
26
+ export { allowedProps };
@@ -1,4 +1,4 @@
1
- var _dec, _dec2, _dec3, _class, _Options;
1
+ var _dec, _dec2, _class, _Options;
2
2
  /*
3
3
  * The MIT License (MIT)
4
4
  *
@@ -25,14 +25,13 @@ var _dec, _dec2, _dec3, _class, _Options;
25
25
 
26
26
  import { Component, Children } from 'react';
27
27
  import { omitProps, matchComponentTypes, callRenderProp, safeCloneElement, withDeterministicId } from '@instructure/ui-react-utils';
28
- import { testable } from '@instructure/ui-testable';
29
28
  import { View } from '@instructure/ui-view';
30
29
  import { withStyle } from '@instructure/emotion';
31
30
  import generateStyles from './styles';
32
31
  import generateComponentTheme from './theme';
33
32
  import { Item } from './Item';
34
33
  import { Separator } from './Separator';
35
- import { allowedProps, propTypes } from './props';
34
+ import { allowedProps } from './props';
36
35
  import { isAndroidOrIOS } from '@instructure/ui-utils';
37
36
  import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
38
37
  /**
@@ -40,7 +39,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
40
39
  category: components
41
40
  ---
42
41
  **/
43
- let Options = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyles, generateComponentTheme), _dec3 = testable(), _dec(_class = _dec2(_class = _dec3(_class = (_Options = class Options extends Component {
42
+ let Options = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyles, generateComponentTheme), _dec(_class = _dec2(_class = (_Options = class Options extends Component {
44
43
  constructor(...args) {
45
44
  super(...args);
46
45
  this.ref = null;
@@ -122,6 +121,7 @@ let Options = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyles, g
122
121
  css: styles === null || styles === void 0 ? void 0 : styles.options,
123
122
  role: "presentation",
124
123
  ref: this.handleRef,
124
+ "data-cid": "Options",
125
125
  children: [renderLabel && this.renderLabel(), _jsx(View, {
126
126
  ...passthroughProps,
127
127
  elementRef: elementRef,
@@ -137,12 +137,12 @@ let Options = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyles, g
137
137
  })]
138
138
  });
139
139
  }
140
- }, _Options.displayName = "Options", _Options.componentId = 'Options', _Options.allowedProps = allowedProps, _Options.propTypes = propTypes, _Options.defaultProps = {
140
+ }, _Options.displayName = "Options", _Options.componentId = 'Options', _Options.allowedProps = allowedProps, _Options.defaultProps = {
141
141
  as: 'span',
142
142
  role: 'list',
143
143
  elementRef: () => {},
144
144
  renderLabel: null,
145
145
  children: null
146
- }, _Options.Item = Item, _Options.Separator = Separator, _Options)) || _class) || _class) || _class);
146
+ }, _Options.Item = Item, _Options.Separator = Separator, _Options)) || _class) || _class);
147
147
  export default Options;
148
148
  export { Options };
@@ -22,14 +22,5 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
 
25
- import PropTypes from 'prop-types';
26
- import { Children as ChildrenPropTypes } from '@instructure/ui-prop-types';
27
- const propTypes = {
28
- as: PropTypes.elementType,
29
- role: PropTypes.string,
30
- elementRef: PropTypes.func,
31
- renderLabel: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
32
- children: ChildrenPropTypes.oneOf(['Options', 'Item', 'Separator'])
33
- };
34
25
  const allowedProps = ['as', 'role', 'elementRef', 'renderLabel', 'children'];
35
- export { propTypes, allowedProps };
26
+ export { allowedProps };
@@ -7,13 +7,12 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = exports.Item = void 0;
8
8
  var _react = require("react");
9
9
  var _uiReactUtils = require("@instructure/ui-react-utils");
10
- var _uiTestable = require("@instructure/ui-testable");
11
10
  var _emotion = require("@instructure/emotion");
12
11
  var _styles = _interopRequireDefault(require("./styles"));
13
12
  var _theme = _interopRequireDefault(require("./theme"));
14
13
  var _props = require("./props");
15
14
  var _jsxRuntime = require("@emotion/react/jsx-runtime");
16
- var _dec, _dec2, _dec3, _class, _Item;
15
+ var _dec, _dec2, _class, _Item;
17
16
  /*
18
17
  * The MIT License (MIT)
19
18
  *
@@ -43,7 +42,7 @@ parent: Options
43
42
  id: Options.Item
44
43
  ---
45
44
  **/
46
- let Item = exports.Item = (_dec = (0, _uiReactUtils.withDeterministicId)(), _dec2 = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec3 = (0, _uiTestable.testable)(), _dec(_class = _dec2(_class = _dec3(_class = (_Item = class Item extends _react.Component {
45
+ let Item = exports.Item = (_dec = (0, _uiReactUtils.withDeterministicId)(), _dec2 = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = _dec2(_class = (_Item = class Item extends _react.Component {
47
46
  constructor(props) {
48
47
  super(props);
49
48
  this.ref = null;
@@ -98,6 +97,7 @@ let Item = exports.Item = (_dec = (0, _uiReactUtils.withDeterministicId)(), _dec
98
97
  const ariaDescribedBy = this.props['aria-describedby'] || (descriptionContent ? this._descriptionId : void 0);
99
98
  return (0, _jsxRuntime.jsxs)(ElementType, {
100
99
  role: voiceoverRoleBugWorkaround ? role : 'none',
100
+ "data-cid": "Options.Item",
101
101
  css: styles === null || styles === void 0 ? void 0 : styles.item,
102
102
  ref: element => {
103
103
  this.ref = element;
@@ -121,7 +121,7 @@ let Item = exports.Item = (_dec = (0, _uiReactUtils.withDeterministicId)(), _dec
121
121
  }), renderBeforeLabel && this.renderContent(renderBeforeLabel, styles === null || styles === void 0 ? void 0 : styles.contentBefore), renderAfterLabel && this.renderContent(renderAfterLabel, styles === null || styles === void 0 ? void 0 : styles.contentAfter)]
122
122
  });
123
123
  }
124
- }, _Item.displayName = "Item", _Item.componentId = 'Options.Item', _Item.allowedProps = _props.allowedProps, _Item.propTypes = _props.propTypes, _Item.defaultProps = {
124
+ }, _Item.displayName = "Item", _Item.componentId = 'Options.Item', _Item.allowedProps = _props.allowedProps, _Item.defaultProps = {
125
125
  as: 'span',
126
126
  variant: 'default',
127
127
  role: 'listitem',
@@ -129,5 +129,5 @@ let Item = exports.Item = (_dec = (0, _uiReactUtils.withDeterministicId)(), _dec
129
129
  beforeLabelContentVAlign: 'center',
130
130
  afterLabelContentVAlign: 'center',
131
131
  isSelected: false
132
- }, _Item)) || _class) || _class) || _class);
132
+ }, _Item)) || _class) || _class);
133
133
  var _default = exports.default = Item;
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.propTypes = exports.allowedProps = void 0;
8
- var _propTypes = _interopRequireDefault(require("prop-types"));
6
+ exports.allowedProps = void 0;
9
7
  /*
10
8
  * The MIT License (MIT)
11
9
  *
@@ -30,20 +28,4 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
30
28
  * SOFTWARE.
31
29
  */
32
30
 
33
- const propTypes = exports.propTypes = {
34
- as: _propTypes.default.elementType,
35
- variant: _propTypes.default.oneOf(['default', 'highlighted', 'selected', 'disabled', 'highlighted-disabled', 'selected-highlighted']),
36
- role: _propTypes.default.string,
37
- renderBeforeLabel: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
38
- renderAfterLabel: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
39
- beforeLabelContentVAlign: _propTypes.default.oneOf(['start', 'center', 'end']),
40
- afterLabelContentVAlign: _propTypes.default.oneOf(['start', 'center', 'end']),
41
- description: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
42
- descriptionRole: _propTypes.default.string,
43
- href: _propTypes.default.string,
44
- voiceoverRoleBugWorkaround: _propTypes.default.bool,
45
- elementRef: _propTypes.default.func,
46
- children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
47
- isSelected: _propTypes.default.bool
48
- };
49
31
  const allowedProps = exports.allowedProps = ['as', 'variant', 'role', 'renderBeforeLabel', 'renderAfterLabel', 'beforeLabelContentVAlign', 'afterLabelContentVAlign', 'description', 'descriptionRole', 'voiceoverRoleBugWorkaround', 'href', 'elementRef', 'children', 'isSelected'];
@@ -69,7 +69,7 @@ let Separator = exports.Separator = (_dec = (0, _emotion.withStyle)(_styles.defa
69
69
  })
70
70
  });
71
71
  }
72
- }, _Separator.displayName = "Separator", _Separator.componentId = 'Options.Separator', _Separator.allowedProps = _props.allowedProps, _Separator.propTypes = _props.propTypes, _Separator.defaultProps = {
72
+ }, _Separator.displayName = "Separator", _Separator.componentId = 'Options.Separator', _Separator.allowedProps = _props.allowedProps, _Separator.defaultProps = {
73
73
  as: 'span'
74
74
  }, _Separator)) || _class);
75
75
  var _default = exports.default = Separator;
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.propTypes = exports.allowedProps = void 0;
8
- var _propTypes = _interopRequireDefault(require("prop-types"));
6
+ exports.allowedProps = void 0;
9
7
  /*
10
8
  * The MIT License (MIT)
11
9
  *
@@ -30,7 +28,4 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
30
28
  * SOFTWARE.
31
29
  */
32
30
 
33
- const propTypes = exports.propTypes = {
34
- as: _propTypes.default.elementType
35
- };
36
31
  const allowedProps = exports.allowedProps = ['as'];
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = exports.Options = void 0;
8
8
  var _react = require("react");
9
9
  var _uiReactUtils = require("@instructure/ui-react-utils");
10
- var _uiTestable = require("@instructure/ui-testable");
11
10
  var _uiView = require("@instructure/ui-view");
12
11
  var _emotion = require("@instructure/emotion");
13
12
  var _styles = _interopRequireDefault(require("./styles"));
@@ -17,7 +16,7 @@ var _Separator = require("./Separator");
17
16
  var _props = require("./props");
18
17
  var _uiUtils = require("@instructure/ui-utils");
19
18
  var _jsxRuntime = require("@emotion/react/jsx-runtime");
20
- var _dec, _dec2, _dec3, _class, _Options;
19
+ var _dec, _dec2, _class, _Options;
21
20
  /*
22
21
  * The MIT License (MIT)
23
22
  *
@@ -46,7 +45,7 @@ var _dec, _dec2, _dec3, _class, _Options;
46
45
  category: components
47
46
  ---
48
47
  **/
49
- let Options = exports.Options = (_dec = (0, _uiReactUtils.withDeterministicId)(), _dec2 = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec3 = (0, _uiTestable.testable)(), _dec(_class = _dec2(_class = _dec3(_class = (_Options = class Options extends _react.Component {
48
+ let Options = exports.Options = (_dec = (0, _uiReactUtils.withDeterministicId)(), _dec2 = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = _dec2(_class = (_Options = class Options extends _react.Component {
50
49
  constructor(...args) {
51
50
  super(...args);
52
51
  this.ref = null;
@@ -128,6 +127,7 @@ let Options = exports.Options = (_dec = (0, _uiReactUtils.withDeterministicId)()
128
127
  css: styles === null || styles === void 0 ? void 0 : styles.options,
129
128
  role: "presentation",
130
129
  ref: this.handleRef,
130
+ "data-cid": "Options",
131
131
  children: [renderLabel && this.renderLabel(), (0, _jsxRuntime.jsx)(_uiView.View, {
132
132
  ...passthroughProps,
133
133
  elementRef: elementRef,
@@ -143,11 +143,11 @@ let Options = exports.Options = (_dec = (0, _uiReactUtils.withDeterministicId)()
143
143
  })]
144
144
  });
145
145
  }
146
- }, _Options.displayName = "Options", _Options.componentId = 'Options', _Options.allowedProps = _props.allowedProps, _Options.propTypes = _props.propTypes, _Options.defaultProps = {
146
+ }, _Options.displayName = "Options", _Options.componentId = 'Options', _Options.allowedProps = _props.allowedProps, _Options.defaultProps = {
147
147
  as: 'span',
148
148
  role: 'list',
149
149
  elementRef: () => {},
150
150
  renderLabel: null,
151
151
  children: null
152
- }, _Options.Item = _Item.Item, _Options.Separator = _Separator.Separator, _Options)) || _class) || _class) || _class);
152
+ }, _Options.Item = _Item.Item, _Options.Separator = _Separator.Separator, _Options)) || _class) || _class);
153
153
  var _default = exports.default = Options;
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.propTypes = exports.allowedProps = void 0;
8
- var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _uiPropTypes = require("@instructure/ui-prop-types");
6
+ exports.allowedProps = void 0;
10
7
  /*
11
8
  * The MIT License (MIT)
12
9
  *
@@ -31,11 +28,4 @@ var _uiPropTypes = require("@instructure/ui-prop-types");
31
28
  * SOFTWARE.
32
29
  */
33
30
 
34
- const propTypes = exports.propTypes = {
35
- as: _propTypes.default.elementType,
36
- role: _propTypes.default.string,
37
- elementRef: _propTypes.default.func,
38
- renderLabel: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
39
- children: _uiPropTypes.Children.oneOf(['Options', 'Item', 'Separator'])
40
- };
41
31
  const allowedProps = exports.allowedProps = ['as', 'role', 'elementRef', 'renderLabel', 'children'];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instructure/ui-options",
3
- "version": "10.26.1",
3
+ "version": "11.0.0",
4
4
  "description": "A view-only component for composing interactive lists and menus.",
5
5
  "author": "Instructure, Inc. Engineering and Product Design",
6
6
  "module": "./es/index.js",
@@ -23,29 +23,26 @@
23
23
  },
24
24
  "license": "MIT",
25
25
  "devDependencies": {
26
- "@instructure/ui-axe-check": "10.26.1",
27
- "@instructure/ui-babel-preset": "10.26.1",
28
- "@instructure/ui-color-utils": "10.26.1",
29
- "@instructure/ui-themes": "10.26.1",
26
+ "@instructure/ui-axe-check": "11.0.0",
27
+ "@instructure/ui-babel-preset": "11.0.0",
28
+ "@instructure/ui-color-utils": "11.0.0",
29
+ "@instructure/ui-themes": "11.0.0",
30
30
  "@testing-library/jest-dom": "^6.6.3",
31
- "@testing-library/react": "^16.0.1",
31
+ "@testing-library/react": "15.0.7",
32
32
  "@testing-library/user-event": "^14.6.1",
33
33
  "vitest": "^3.2.2"
34
34
  },
35
35
  "dependencies": {
36
36
  "@babel/runtime": "^7.27.6",
37
- "@instructure/emotion": "10.26.1",
38
- "@instructure/shared-types": "10.26.1",
39
- "@instructure/ui-icons": "10.26.1",
40
- "@instructure/ui-prop-types": "10.26.1",
41
- "@instructure/ui-react-utils": "10.26.1",
42
- "@instructure/ui-testable": "10.26.1",
43
- "@instructure/ui-utils": "10.26.1",
44
- "@instructure/ui-view": "10.26.1",
45
- "prop-types": "^15.8.1"
37
+ "@instructure/emotion": "11.0.0",
38
+ "@instructure/shared-types": "11.0.0",
39
+ "@instructure/ui-icons": "11.0.0",
40
+ "@instructure/ui-react-utils": "11.0.0",
41
+ "@instructure/ui-utils": "11.0.0",
42
+ "@instructure/ui-view": "11.0.0"
46
43
  },
47
44
  "peerDependencies": {
48
- "react": ">=16.14 <=18"
45
+ "react": ">=18 <=19"
49
46
  },
50
47
  "publishConfig": {
51
48
  "access": "public"
@@ -30,14 +30,13 @@ import {
30
30
  callRenderProp,
31
31
  withDeterministicId
32
32
  } from '@instructure/ui-react-utils'
33
- import { testable } from '@instructure/ui-testable'
34
33
 
35
34
  import { withStyle } from '@instructure/emotion'
36
35
 
37
36
  import generateStyles from './styles'
38
37
  import generateComponentTheme from './theme'
39
38
  import type { OptionsItemProps, OptionsItemStyle } from './props'
40
- import { allowedProps, propTypes } from './props'
39
+ import { allowedProps } from './props'
41
40
 
42
41
  /**
43
42
  ---
@@ -47,12 +46,10 @@ id: Options.Item
47
46
  **/
48
47
  @withDeterministicId()
49
48
  @withStyle(generateStyles, generateComponentTheme)
50
- @testable()
51
49
  class Item extends Component<OptionsItemProps> {
52
50
  static readonly componentId = 'Options.Item'
53
51
 
54
52
  static allowedProps = allowedProps
55
- static propTypes = propTypes
56
53
 
57
54
  static defaultProps = {
58
55
  as: 'span',
@@ -138,6 +135,7 @@ class Item extends Component<OptionsItemProps> {
138
135
  return (
139
136
  <ElementType
140
137
  role={voiceoverRoleBugWorkaround ? role : 'none'}
138
+ data-cid="Options.Item"
141
139
  css={styles?.item}
142
140
  ref={(element: Element | null) => {
143
141
  this.ref = element
@@ -22,11 +22,8 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
 
25
- import PropTypes from 'prop-types'
26
-
27
25
  import type {
28
26
  AsElementType,
29
- PropValidators,
30
27
  OptionsItemTheme,
31
28
  OtherHTMLAttributes,
32
29
  Renderable
@@ -118,31 +115,6 @@ type OptionsItemStyle = ComponentStyle<
118
115
  | 'contentAfter'
119
116
  | 'description'
120
117
  >
121
-
122
- const propTypes: PropValidators<PropKeys> = {
123
- as: PropTypes.elementType,
124
- variant: PropTypes.oneOf([
125
- 'default',
126
- 'highlighted',
127
- 'selected',
128
- 'disabled',
129
- 'highlighted-disabled',
130
- 'selected-highlighted'
131
- ]),
132
- role: PropTypes.string,
133
- renderBeforeLabel: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
134
- renderAfterLabel: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
135
- beforeLabelContentVAlign: PropTypes.oneOf(['start', 'center', 'end']),
136
- afterLabelContentVAlign: PropTypes.oneOf(['start', 'center', 'end']),
137
- description: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
138
- descriptionRole: PropTypes.string,
139
- href: PropTypes.string,
140
- voiceoverRoleBugWorkaround: PropTypes.bool,
141
- elementRef: PropTypes.func,
142
- children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
143
- isSelected: PropTypes.bool
144
- }
145
-
146
118
  const allowedProps: AllowedPropKeys = [
147
119
  'as',
148
120
  'variant',
@@ -161,4 +133,4 @@ const allowedProps: AllowedPropKeys = [
161
133
  ]
162
134
 
163
135
  export type { OptionsItemProps, OptionsItemStyle, OptionsItemRenderProps }
164
- export { propTypes, allowedProps }
136
+ export { allowedProps }
@@ -31,7 +31,7 @@ import { withStyle } from '@instructure/emotion'
31
31
  import generateStyles from './styles'
32
32
  import generateComponentTheme from './theme'
33
33
  import type { OptionsSeparatorProps } from './props'
34
- import { allowedProps, propTypes } from './props'
34
+ import { allowedProps } from './props'
35
35
 
36
36
  /**
37
37
  ---
@@ -45,7 +45,6 @@ class Separator extends Component<OptionsSeparatorProps> {
45
45
  static readonly componentId = 'Options.Separator'
46
46
 
47
47
  static allowedProps = allowedProps
48
- static propTypes = propTypes
49
48
 
50
49
  static defaultProps = {
51
50
  as: 'span'
@@ -21,11 +21,9 @@
21
21
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
22
  * SOFTWARE.
23
23
  */
24
- import PropTypes from 'prop-types'
25
24
 
26
25
  import type {
27
26
  AsElementType,
28
- PropValidators,
29
27
  OptionsSeparatorTheme,
30
28
  OtherHTMLAttributes
31
29
  } from '@instructure/shared-types'
@@ -48,12 +46,7 @@ type OptionsSeparatorProps = OptionsSeparatorOwnProps &
48
46
  OtherHTMLAttributes<OptionsSeparatorOwnProps, AllHTMLAttributes<any>>
49
47
 
50
48
  type OptionsSeparatorStyle = ComponentStyle<'separator'>
51
-
52
- const propTypes: PropValidators<PropKeys> = {
53
- as: PropTypes.elementType
54
- }
55
-
56
49
  const allowedProps: AllowedPropKeys = ['as']
57
50
 
58
51
  export type { OptionsSeparatorProps, OptionsSeparatorStyle }
59
- export { propTypes, allowedProps }
52
+ export { allowedProps }
@@ -31,7 +31,6 @@ import {
31
31
  safeCloneElement,
32
32
  withDeterministicId
33
33
  } from '@instructure/ui-react-utils'
34
- import { testable } from '@instructure/ui-testable'
35
34
 
36
35
  import { View } from '@instructure/ui-view'
37
36
 
@@ -46,7 +45,7 @@ import { Separator } from './Separator'
46
45
  import type { OptionsSeparatorProps } from './Separator/props'
47
46
 
48
47
  import type { OptionsProps } from './props'
49
- import { allowedProps, propTypes } from './props'
48
+ import { allowedProps } from './props'
50
49
  import { isAndroidOrIOS } from '@instructure/ui-utils'
51
50
 
52
51
  type ItemChild = ComponentElement<OptionsItemProps, Item>
@@ -61,12 +60,10 @@ category: components
61
60
  **/
62
61
  @withDeterministicId()
63
62
  @withStyle(generateStyles, generateComponentTheme)
64
- @testable()
65
63
  class Options extends Component<OptionsProps> {
66
64
  static readonly componentId = 'Options'
67
65
 
68
66
  static allowedProps = allowedProps
69
- static propTypes = propTypes
70
67
 
71
68
  static defaultProps = {
72
69
  as: 'span',
@@ -162,7 +159,12 @@ class Options extends Component<OptionsProps> {
162
159
  const { as, role, renderLabel, elementRef, styles } = this.props
163
160
 
164
161
  return (
165
- <div css={styles?.options} role="presentation" ref={this.handleRef}>
162
+ <div
163
+ css={styles?.options}
164
+ role="presentation"
165
+ ref={this.handleRef}
166
+ data-cid="Options"
167
+ >
166
168
  {renderLabel && this.renderLabel()}
167
169
  <View
168
170
  {...passthroughProps}
@@ -22,13 +22,8 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
  import React from 'react'
25
- import PropTypes from 'prop-types'
26
-
27
- import { Children as ChildrenPropTypes } from '@instructure/ui-prop-types'
28
-
29
25
  import type {
30
26
  AsElementType,
31
- PropValidators,
32
27
  OptionsTheme,
33
28
  OtherHTMLAttributes
34
29
  } from '@instructure/shared-types'
@@ -69,15 +64,6 @@ type OptionsProps = OptionsOwnProps &
69
64
  WithDeterministicIdProps
70
65
 
71
66
  type OptionsStyle = ComponentStyle<'options' | 'list' | 'label'>
72
-
73
- const propTypes: PropValidators<PropKeys> = {
74
- as: PropTypes.elementType,
75
- role: PropTypes.string,
76
- elementRef: PropTypes.func,
77
- renderLabel: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
78
- children: ChildrenPropTypes.oneOf(['Options', 'Item', 'Separator'])
79
- }
80
-
81
67
  const allowedProps: AllowedPropKeys = [
82
68
  'as',
83
69
  'role',
@@ -87,4 +73,4 @@ const allowedProps: AllowedPropKeys = [
87
73
  ]
88
74
 
89
75
  export type { OptionsProps, OptionsStyle }
90
- export { propTypes, allowedProps }
76
+ export { allowedProps }