@instructure/ui-drilldown 10.26.1-snapshot-0 → 10.26.1-snapshot-2

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 (54) hide show
  1. package/CHANGELOG.md +28 -2
  2. package/es/Drilldown/DrilldownGroup/index.js +2 -2
  3. package/es/Drilldown/DrilldownGroup/props.js +1 -18
  4. package/es/Drilldown/DrilldownOption/index.js +2 -2
  5. package/es/Drilldown/DrilldownOption/props.js +1 -24
  6. package/es/Drilldown/DrilldownPage/index.js +1 -2
  7. package/es/Drilldown/DrilldownPage/props.js +1 -17
  8. package/es/Drilldown/DrilldownSeparator/index.js +2 -2
  9. package/es/Drilldown/DrilldownSeparator/props.js +1 -6
  10. package/es/Drilldown/index.js +44 -25
  11. package/es/Drilldown/props.js +1 -46
  12. package/lib/Drilldown/DrilldownGroup/index.js +1 -1
  13. package/lib/Drilldown/DrilldownGroup/props.js +1 -19
  14. package/lib/Drilldown/DrilldownOption/index.js +1 -1
  15. package/lib/Drilldown/DrilldownOption/props.js +1 -25
  16. package/lib/Drilldown/DrilldownPage/index.js +0 -1
  17. package/lib/Drilldown/DrilldownPage/props.js +1 -18
  18. package/lib/Drilldown/DrilldownSeparator/index.js +1 -1
  19. package/lib/Drilldown/DrilldownSeparator/props.js +1 -7
  20. package/lib/Drilldown/index.js +43 -24
  21. package/lib/Drilldown/props.js +1 -48
  22. package/package.json +20 -23
  23. package/src/Drilldown/DrilldownGroup/index.tsx +1 -2
  24. package/src/Drilldown/DrilldownGroup/props.ts +1 -23
  25. package/src/Drilldown/DrilldownOption/index.tsx +1 -2
  26. package/src/Drilldown/DrilldownOption/props.ts +1 -28
  27. package/src/Drilldown/DrilldownPage/index.tsx +1 -2
  28. package/src/Drilldown/DrilldownPage/props.ts +2 -30
  29. package/src/Drilldown/DrilldownSeparator/index.tsx +1 -2
  30. package/src/Drilldown/DrilldownSeparator/props.ts +1 -10
  31. package/src/Drilldown/index.tsx +40 -24
  32. package/src/Drilldown/props.ts +1 -52
  33. package/tsconfig.build.json +0 -2
  34. package/tsconfig.build.tsbuildinfo +1 -1
  35. package/types/Drilldown/DrilldownGroup/index.d.ts +0 -18
  36. package/types/Drilldown/DrilldownGroup/index.d.ts.map +1 -1
  37. package/types/Drilldown/DrilldownGroup/props.d.ts +2 -3
  38. package/types/Drilldown/DrilldownGroup/props.d.ts.map +1 -1
  39. package/types/Drilldown/DrilldownOption/index.d.ts +0 -44
  40. package/types/Drilldown/DrilldownOption/index.d.ts.map +1 -1
  41. package/types/Drilldown/DrilldownOption/props.d.ts +2 -3
  42. package/types/Drilldown/DrilldownOption/props.d.ts.map +1 -1
  43. package/types/Drilldown/DrilldownPage/index.d.ts +0 -11
  44. package/types/Drilldown/DrilldownPage/index.d.ts.map +1 -1
  45. package/types/Drilldown/DrilldownPage/props.d.ts +2 -3
  46. package/types/Drilldown/DrilldownPage/props.d.ts.map +1 -1
  47. package/types/Drilldown/DrilldownSeparator/index.d.ts +0 -4
  48. package/types/Drilldown/DrilldownSeparator/index.d.ts.map +1 -1
  49. package/types/Drilldown/DrilldownSeparator/props.d.ts +2 -3
  50. package/types/Drilldown/DrilldownSeparator/props.d.ts.map +1 -1
  51. package/types/Drilldown/index.d.ts +0 -58
  52. package/types/Drilldown/index.d.ts.map +1 -1
  53. package/types/Drilldown/props.d.ts +2 -3
  54. package/types/Drilldown/props.d.ts.map +1 -1
package/CHANGELOG.md CHANGED
@@ -3,9 +3,35 @@
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-snapshot-0](https://github.com/instructure/instructure-ui/compare/v10.26.0...v10.26.1-snapshot-0) (2025-10-02)
6
+ ## [10.26.1-snapshot-2](https://github.com/instructure/instructure-ui/compare/v10.26.0...v10.26.1-snapshot-2) (2025-10-06)
7
7
 
8
- **Note:** Version bump only for package @instructure/ui-drilldown
8
+
9
+ ### Bug Fixes
10
+
11
+ * **ui-drilldown:** fix for prevent option selection when Drilldown or its sub-components get disabled prop ([5fc37f6](https://github.com/instructure/instructure-ui/commit/5fc37f6b7c7622ab248a4d1bd575b2bbac97e0a0))
12
+
13
+
14
+ ### Features
15
+
16
+ * **many:** instUI v11 release ([36f5438](https://github.com/instructure/instructure-ui/commit/36f54382669186227ba24798bbf7201ef2f5cd4c))
17
+
18
+
19
+ ### BREAKING CHANGES
20
+
21
+ * **many:** InstUI v11 contains the following breaking changes:
22
+ - React 16 and 17 are no longer supported
23
+ - remove `PropTypes` from all packages
24
+ - remove `CodeEditor` component
25
+ - remove `@instui/theme-registry` package
26
+ - remove `@testable`, `@experimental`, `@hack` decorators
27
+ - InstUISettingsProvider's `as` prop is removed
28
+ - `canvas.use()`, `canvasHighContrast.use()` functions are removed
29
+ - `canvasThemeLocal`, `canvasHighContrastThemeLocal` are removed
30
+ - `variables` field on theme objects are removed
31
+ - remove deprecated props from Table: Row's `isStacked`, Body's
32
+ `isStacked`, `hover`, and `headers`
33
+ - `Table`'s `caption` prop is now required
34
+ - `ui-dom-utils`'s `getComputedStyle` can now return `undefined`
9
35
 
10
36
 
11
37
 
@@ -26,7 +26,7 @@ var _dec, _class, _DrilldownGroup;
26
26
  import { Component } from 'react';
27
27
  import { withStyle } from '@instructure/emotion';
28
28
  import { optionsThemeGenerator } from '@instructure/ui-options';
29
- import { propTypes, allowedProps } from './props';
29
+ import { allowedProps } from './props';
30
30
  import { isMac, isFirefox } from '@instructure/ui-utils';
31
31
 
32
32
  /**
@@ -44,7 +44,7 @@ let DrilldownGroup = (_dec = withStyle(null, optionsThemeGenerator), _dec(_class
44
44
  // Drilldown.Group is parsed in Drilldown as an Options component.
45
45
  return null;
46
46
  }
47
- }, _DrilldownGroup.displayName = "DrilldownGroup", _DrilldownGroup.componentId = 'Drilldown.Group', _DrilldownGroup.propTypes = propTypes, _DrilldownGroup.allowedProps = allowedProps, _DrilldownGroup.defaultProps = {
47
+ }, _DrilldownGroup.displayName = "DrilldownGroup", _DrilldownGroup.componentId = 'Drilldown.Group', _DrilldownGroup.allowedProps = allowedProps, _DrilldownGroup.defaultProps = {
48
48
  disabled: false,
49
49
  withoutSeparators: false,
50
50
  // Firefox with NVDA does not read Drilldown.Group with role="group" correctly
@@ -22,22 +22,5 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
 
25
- import PropTypes from 'prop-types';
26
- import { Children } from '@instructure/ui-prop-types';
27
- import DrilldownOption from '../DrilldownOption';
28
- import DrilldownSeparator from '../DrilldownSeparator';
29
- const propTypes = {
30
- id: PropTypes.string.isRequired,
31
- children: Children.oneOf([DrilldownOption, DrilldownSeparator]),
32
- renderGroupTitle: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
33
- withoutSeparators: PropTypes.bool,
34
- disabled: PropTypes.bool,
35
- role: PropTypes.string,
36
- as: PropTypes.elementType,
37
- elementRef: PropTypes.func,
38
- selectableType: PropTypes.oneOf(['single', 'multiple']),
39
- defaultSelected: PropTypes.array,
40
- onSelect: PropTypes.func
41
- };
42
25
  const allowedProps = ['id', 'children', 'renderGroupTitle', 'withoutSeparators', 'disabled', 'role', 'as', 'elementRef', 'selectableType', 'defaultSelected', 'onSelect'];
43
- export { propTypes, allowedProps };
26
+ export { allowedProps };
@@ -26,7 +26,7 @@ var _dec, _class, _DrilldownOption;
26
26
  import { Component } from 'react';
27
27
  import { withStyle } from '@instructure/emotion';
28
28
  import { optionsItemThemeGenerator } from '@instructure/ui-options';
29
- import { propTypes, allowedProps } from './props';
29
+ import { allowedProps } from './props';
30
30
  /**
31
31
  ---
32
32
  parent: Drilldown
@@ -42,7 +42,7 @@ let DrilldownOption = (_dec = withStyle(null, optionsItemThemeGenerator), _dec(_
42
42
  // are parsed in Drilldown and rendered as Options.Item components
43
43
  return null;
44
44
  }
45
- }, _DrilldownOption.displayName = "DrilldownOption", _DrilldownOption.componentId = 'Drilldown.Option', _DrilldownOption.propTypes = propTypes, _DrilldownOption.allowedProps = allowedProps, _DrilldownOption.defaultProps = {
45
+ }, _DrilldownOption.displayName = "DrilldownOption", _DrilldownOption.componentId = 'Drilldown.Option', _DrilldownOption.allowedProps = allowedProps, _DrilldownOption.defaultProps = {
46
46
  disabled: false,
47
47
  beforeLabelContentVAlign: 'start',
48
48
  afterLabelContentVAlign: 'start',
@@ -22,28 +22,5 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
 
25
- import PropTypes from 'prop-types';
26
- const propTypes = {
27
- id: PropTypes.string.isRequired,
28
- children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
29
- subPageId: PropTypes.string,
30
- disabled: PropTypes.bool,
31
- selected: PropTypes.bool,
32
- value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
33
- href: PropTypes.string,
34
- as: PropTypes.elementType,
35
- role: PropTypes.string,
36
- renderLabelInfo: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
37
- renderBeforeLabel: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
38
- renderAfterLabel: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
39
- beforeLabelContentVAlign: PropTypes.oneOf(['start', 'center', 'end']),
40
- afterLabelContentVAlign: PropTypes.oneOf(['start', 'center', 'end']),
41
- description: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
42
- descriptionRole: PropTypes.string,
43
- onOptionClick: PropTypes.func,
44
- defaultSelected: PropTypes.bool,
45
- elementRef: PropTypes.func,
46
- shouldCloseOnClick: PropTypes.oneOf(['auto', 'always', 'never'])
47
- };
48
25
  const allowedProps = ['id', 'children', 'subPageId', 'disabled', 'selected', 'value', 'href', 'as', 'role', 'renderLabelInfo', 'renderBeforeLabel', 'renderAfterLabel', 'beforeLabelContentVAlign', 'afterLabelContentVAlign', 'description', 'descriptionRole', 'onOptionClick', 'defaultSelected', 'elementRef', 'shouldCloseOnClick'];
49
- export { propTypes, allowedProps };
26
+ export { allowedProps };
@@ -23,7 +23,7 @@
23
23
  */
24
24
 
25
25
  import { Component } from 'react';
26
- import { propTypes, allowedProps } from './props';
26
+ import { allowedProps } from './props';
27
27
  /**
28
28
  ---
29
29
  parent: Drilldown
@@ -40,7 +40,6 @@ class DrilldownPage extends Component {
40
40
  }
41
41
  DrilldownPage.displayName = "DrilldownPage";
42
42
  DrilldownPage.componentId = 'Drilldown.Page';
43
- DrilldownPage.propTypes = propTypes;
44
43
  DrilldownPage.allowedProps = allowedProps;
45
44
  DrilldownPage.defaultProps = {
46
45
  renderBackButtonLabel: 'Back',
@@ -22,21 +22,5 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
 
25
- import PropTypes from 'prop-types';
26
- import { Children } from '@instructure/ui-prop-types';
27
- import DrilldownGroup from '../DrilldownGroup';
28
- import DrilldownOption from '../DrilldownOption';
29
- import DrilldownSeparator from '../DrilldownSeparator';
30
- const propTypes = {
31
- id: PropTypes.string.isRequired,
32
- children: Children.oneOf([DrilldownOption, DrilldownSeparator, DrilldownGroup]),
33
- renderTitle: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
34
- renderActionLabel: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
35
- renderBackButtonLabel: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
36
- onHeaderActionClicked: PropTypes.func,
37
- onBackButtonClicked: PropTypes.func,
38
- withoutHeaderSeparator: PropTypes.bool,
39
- disabled: PropTypes.bool
40
- };
41
25
  const allowedProps = ['id', 'children', 'renderTitle', 'renderActionLabel', 'renderBackButtonLabel', 'onHeaderActionClicked', 'onBackButtonClicked', 'withoutHeaderSeparator', 'disabled'];
42
- export { propTypes, allowedProps };
26
+ export { allowedProps };
@@ -26,7 +26,7 @@ var _dec, _class, _DrilldownSeparator;
26
26
  import { Component } from 'react';
27
27
  import { withStyle } from '@instructure/emotion';
28
28
  import { optionsSeparatorThemeGenerator } from '@instructure/ui-options';
29
- import { propTypes, allowedProps } from './props';
29
+ import { allowedProps } from './props';
30
30
  /**
31
31
  ---
32
32
  parent: Drilldown
@@ -42,6 +42,6 @@ let DrilldownSeparator = (_dec = withStyle(null, optionsSeparatorThemeGenerator)
42
42
  // are parsed in Drilldown and rendered as Options.Separator components
43
43
  return null;
44
44
  }
45
- }, _DrilldownSeparator.displayName = "DrilldownSeparator", _DrilldownSeparator.componentId = 'Drilldown.Separator', _DrilldownSeparator.propTypes = propTypes, _DrilldownSeparator.allowedProps = allowedProps, _DrilldownSeparator.defaultProps = {}, _DrilldownSeparator)) || _class);
45
+ }, _DrilldownSeparator.displayName = "DrilldownSeparator", _DrilldownSeparator.componentId = 'Drilldown.Separator', _DrilldownSeparator.allowedProps = allowedProps, _DrilldownSeparator.defaultProps = {}, _DrilldownSeparator)) || _class);
46
46
  export default DrilldownSeparator;
47
47
  export { DrilldownSeparator };
@@ -22,10 +22,5 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
 
25
- import PropTypes from 'prop-types';
26
- const propTypes = {
27
- id: PropTypes.string.isRequired,
28
- as: PropTypes.elementType
29
- };
30
25
  const allowedProps = ['id', 'as'];
31
- export { propTypes, allowedProps };
26
+ export { allowedProps };
@@ -2,7 +2,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
2
2
  const _excluded = ["groupProps"],
3
3
  _excluded2 = ["groupProps"],
4
4
  _excluded3 = ["id", "themeOverride"];
5
- var _dec, _dec2, _dec3, _class, _Drilldown, _IconArrowOpenEndSoli, _IconArrowOpenStartSo, _Options$Separator, _Options$Separator2;
5
+ var _dec, _dec2, _class, _Drilldown, _IconArrowOpenEndSoli, _IconArrowOpenStartSo, _Options$Separator, _Options$Separator2;
6
6
  /*
7
7
  * The MIT License (MIT)
8
8
  *
@@ -29,7 +29,6 @@ var _dec, _dec2, _dec3, _class, _Drilldown, _IconArrowOpenEndSoli, _IconArrowOpe
29
29
 
30
30
  import { Children, Component } from 'react';
31
31
  import { warn, error } from '@instructure/console';
32
- import { testable } from '@instructure/ui-testable';
33
32
  import { contains, containsActiveElement } from '@instructure/ui-dom-utils';
34
33
  import { callRenderProp, matchComponentTypes, omitProps, safeCloneElement, withDeterministicId } from '@instructure/ui-react-utils';
35
34
  import { View } from '@instructure/ui-view';
@@ -44,7 +43,7 @@ import { DrilldownGroup } from './DrilldownGroup';
44
43
  import { DrilldownPage } from './DrilldownPage';
45
44
  import generateStyle from './styles';
46
45
  import generateComponentTheme from './theme';
47
- import { propTypes, allowedProps } from './props';
46
+ import { allowedProps } from './props';
48
47
 
49
48
  // Additional data we need to track on the Options,
50
49
  // but shouldn't be settable via props
@@ -63,7 +62,7 @@ import { createElement as _createElement } from "@emotion/react";
63
62
  category: components
64
63
  ---
65
64
  **/
66
- let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle, generateComponentTheme), _dec3 = testable(), _dec(_class = _dec2(_class = _dec3(_class = (_Drilldown = class Drilldown extends Component {
65
+ let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle, generateComponentTheme), _dec(_class = _dec2(_class = (_Drilldown = class Drilldown extends Component {
67
66
  constructor(props) {
68
67
  super(props);
69
68
  this._drilldownRef = null;
@@ -228,11 +227,15 @@ let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle,
228
227
  this.handleOptionSelect = (event, {
229
228
  id
230
229
  }) => {
230
+ var _this$currentPage, _selectedOption$group;
231
231
  const selectedOption = this.getPageChildById(id);
232
-
233
- // TODO: this line can be removed when React 16 is no longer supported
234
- event.persist();
235
- if (!id || !selectedOption || selectedOption.props.disabled || event.target.getAttribute('disabled') || event.target.getAttribute('aria-disabled')) {
232
+ if (!id || !selectedOption) {
233
+ event.preventDefault();
234
+ event.stopPropagation();
235
+ return;
236
+ }
237
+ const isOptionDisabled = id !== this._headerBackId && (this.props.disabled || ((_this$currentPage = this.currentPage) === null || _this$currentPage === void 0 ? void 0 : _this$currentPage.disabled) || ((_selectedOption$group = selectedOption.groupProps) === null || _selectedOption$group === void 0 ? void 0 : _selectedOption$group.disabled) || selectedOption.props.disabled);
238
+ if (isOptionDisabled) {
236
239
  event.preventDefault();
237
240
  event.stopPropagation();
238
241
  return;
@@ -271,11 +274,19 @@ let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle,
271
274
  if (groupProps !== null && groupProps !== void 0 && groupProps.selectableType) {
272
275
  this.handleGroupOptionSelected(event, selectedOption);
273
276
  } else {
277
+ // TODO workaround for react 19 default props
278
+ const optionWithDefaultProps = {
279
+ ...selectedOptionChild,
280
+ props: {
281
+ ...selectedOptionChild.props,
282
+ role: 'menuitem'
283
+ }
284
+ };
274
285
  if (typeof onSelect === 'function') {
275
286
  onSelect(event, {
276
287
  value,
277
288
  isSelected: true,
278
- selectedOption: selectedOptionChild,
289
+ selectedOption: optionWithDefaultProps,
279
290
  drilldown: this
280
291
  });
281
292
  }
@@ -357,8 +368,8 @@ let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle,
357
368
  }
358
369
  };
359
370
  this.getFirstOption = () => {
360
- var _this$currentPage;
361
- const children = Children.toArray((_this$currentPage = this.currentPage) === null || _this$currentPage === void 0 ? void 0 : _this$currentPage.children);
371
+ var _this$currentPage2;
372
+ const children = Children.toArray((_this$currentPage2 = this.currentPage) === null || _this$currentPage2 === void 0 ? void 0 : _this$currentPage2.children);
362
373
  const child = children[0];
363
374
  if (!child) return void 0;
364
375
 
@@ -481,14 +492,14 @@ let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle,
481
492
  };
482
493
  }
483
494
  get currentPageAriaLabel() {
484
- var _this$currentPage2;
495
+ var _this$currentPage3;
485
496
  // return, if explicitly set
486
497
  if (this.props['aria-labelledby']) {
487
498
  return this.props['aria-labelledby'];
488
499
  }
489
500
 
490
501
  // if it has title, point to the title label content
491
- if ((_this$currentPage2 = this.currentPage) !== null && _this$currentPage2 !== void 0 && _this$currentPage2.renderTitle) {
502
+ if ((_this$currentPage3 = this.currentPage) !== null && _this$currentPage3 !== void 0 && _this$currentPage3.renderTitle) {
492
503
  return this._headerTitleLabelId;
493
504
  }
494
505
 
@@ -802,22 +813,27 @@ let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle,
802
813
  });
803
814
  }
804
815
  renderOption(option, getOptionProps, getDisabledOptionProps, groupProps) {
805
- var _this$currentPage3, _optionProps$renderBe, _optionProps$renderBe2, _optionProps$renderAf, _optionProps$renderAf2;
816
+ var _this$currentPage4, _optionProps$renderBe, _optionProps$renderBe2, _optionProps$renderAf, _optionProps$renderAf2;
806
817
  const styles = this.props.styles;
807
818
  let isSelected = false;
808
819
  const _option$props = option.props,
809
820
  id = _option$props.id,
810
821
  children = _option$props.children,
811
822
  href = _option$props.href,
812
- as = _option$props.as,
813
- role = _option$props.role,
823
+ _option$props$as = _option$props.as,
824
+ as = _option$props$as === void 0 ? 'li' : _option$props$as,
825
+ _option$props$role = _option$props.role,
826
+ role = _option$props$role === void 0 ? 'menuitem' : _option$props$role,
814
827
  subPageId = _option$props.subPageId,
815
- disabled = _option$props.disabled,
828
+ _option$props$disable = _option$props.disabled,
829
+ disabled = _option$props$disable === void 0 ? false : _option$props$disable,
816
830
  renderLabelInfo = _option$props.renderLabelInfo,
817
831
  renderBeforeLabel = _option$props.renderBeforeLabel,
818
832
  renderAfterLabel = _option$props.renderAfterLabel,
819
- beforeLabelContentVAlign = _option$props.beforeLabelContentVAlign,
820
- afterLabelContentVAlign = _option$props.afterLabelContentVAlign,
833
+ _option$props$beforeL = _option$props.beforeLabelContentVAlign,
834
+ beforeLabelContentVAlign = _option$props$beforeL === void 0 ? 'start' : _option$props$beforeL,
835
+ _option$props$afterLa = _option$props.afterLabelContentVAlign,
836
+ afterLabelContentVAlign = _option$props$afterLa === void 0 ? 'start' : _option$props$afterLa,
821
837
  description = _option$props.description,
822
838
  descriptionRole = _option$props.descriptionRole,
823
839
  elementRef = _option$props.elementRef,
@@ -862,7 +878,7 @@ let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle,
862
878
  };
863
879
  const isOptionDisabled = id !== this._headerBackId && (
864
880
  // Back nav is never disabled
865
- this.props.disabled || ((_this$currentPage3 = this.currentPage) === null || _this$currentPage3 === void 0 ? void 0 : _this$currentPage3.disabled) || (groupProps === null || groupProps === void 0 ? void 0 : groupProps.disabled) || disabled);
881
+ this.props.disabled || ((_this$currentPage4 = this.currentPage) === null || _this$currentPage4 === void 0 ? void 0 : _this$currentPage4.disabled) || (groupProps === null || groupProps === void 0 ? void 0 : groupProps.disabled) || disabled);
866
882
 
867
883
  // display option as disabled
868
884
  if (isOptionDisabled) {
@@ -1002,7 +1018,8 @@ let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle,
1002
1018
  children = _group$props.children,
1003
1019
  renderGroupTitle = _group$props.renderGroupTitle,
1004
1020
  themeOverride = _group$props.themeOverride,
1005
- role = _group$props.role,
1021
+ _group$props$role = _group$props.role,
1022
+ role = _group$props$role === void 0 ? 'group' : _group$props$role,
1006
1023
  as = _group$props.as,
1007
1024
  elementRef = _group$props.elementRef;
1008
1025
  if (!children) {
@@ -1012,7 +1029,7 @@ let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle,
1012
1029
 
1013
1030
  // add a separator above
1014
1031
  if (needsFirstSeparator) {
1015
- groupChildren.push(_Options$Separator || (_Options$Separator = _jsx(Options.Separator, {})));
1032
+ groupChildren.push(_Options$Separator || (_Options$Separator = _jsx(Options.Separator, {}, "drilldown-options-separator")));
1016
1033
  }
1017
1034
 
1018
1035
  // create a sublist as a group
@@ -1039,7 +1056,7 @@ let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle,
1039
1056
 
1040
1057
  // add a separator below
1041
1058
  if (needsLastSeparator) {
1042
- groupChildren.push(_Options$Separator2 || (_Options$Separator2 = _jsx(Options.Separator, {})));
1059
+ groupChildren.push(_Options$Separator2 || (_Options$Separator2 = _jsx(Options.Separator, {}, "drilldown-options-separator-2")));
1043
1060
  }
1044
1061
  return groupChildren;
1045
1062
  }
@@ -1099,6 +1116,7 @@ let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle,
1099
1116
  borderWidth: 'small'
1100
1117
  }),
1101
1118
  as: "div",
1119
+ "data-cid": "Drilldown",
1102
1120
  elementRef: this.handleDrilldownRef,
1103
1121
  tabIndex: 0,
1104
1122
  css: styles === null || styles === void 0 ? void 0 : styles.drilldown,
@@ -1186,6 +1204,7 @@ let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle,
1186
1204
  styles = _this$props7.styles;
1187
1205
  const borderColor = styles === null || styles === void 0 ? void 0 : (_styles$drilldown = styles.drilldown) === null || _styles$drilldown === void 0 ? void 0 : _styles$drilldown.borderColor;
1188
1206
  return trigger ? _jsx(Popover, {
1207
+ "data-cid": "Drilldown",
1189
1208
  themeOverride: {
1190
1209
  // use here own theme's color
1191
1210
  borderColor: borderColor
@@ -1250,7 +1269,7 @@ let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle,
1250
1269
  children: this.renderPage()
1251
1270
  }) : this.renderPage();
1252
1271
  }
1253
- }, _Drilldown.displayName = "Drilldown", _Drilldown.componentId = 'Drilldown', _Drilldown.propTypes = propTypes, _Drilldown.allowedProps = allowedProps, _Drilldown.defaultProps = {
1272
+ }, _Drilldown.displayName = "Drilldown", _Drilldown.componentId = 'Drilldown', _Drilldown.allowedProps = allowedProps, _Drilldown.defaultProps = {
1254
1273
  disabled: false,
1255
1274
  rotateFocus: true,
1256
1275
  as: 'ul',
@@ -1266,6 +1285,6 @@ let Drilldown = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle,
1266
1285
  offsetX: 0,
1267
1286
  offsetY: 0,
1268
1287
  shouldSetAriaExpanded: true
1269
- }, _Drilldown.Group = DrilldownGroup, _Drilldown.Option = DrilldownOption, _Drilldown.Page = DrilldownPage, _Drilldown.Separator = DrilldownSeparator, _Drilldown)) || _class) || _class) || _class);
1288
+ }, _Drilldown.Group = DrilldownGroup, _Drilldown.Option = DrilldownOption, _Drilldown.Page = DrilldownPage, _Drilldown.Separator = DrilldownSeparator, _Drilldown)) || _class) || _class);
1270
1289
  export default Drilldown;
1271
1290
  export { Drilldown };
@@ -22,52 +22,7 @@
22
22
  * SOFTWARE.
23
23
  */
24
24
 
25
- import PropTypes from 'prop-types';
26
- import { Children, controllable } from '@instructure/ui-prop-types';
27
- import { PositionPropTypes } from '@instructure/ui-position';
28
- import { DrilldownPage } from './DrilldownPage';
29
- const propTypes = {
30
- rootPageId: PropTypes.string.isRequired,
31
- children: Children.oneOf([DrilldownPage]),
32
- id: PropTypes.string,
33
- label: PropTypes.string,
34
- disabled: PropTypes.bool,
35
- rotateFocus: PropTypes.bool,
36
- as: PropTypes.elementType,
37
- role: PropTypes.string,
38
- elementRef: PropTypes.func,
39
- drilldownRef: PropTypes.func,
40
- overflowX: PropTypes.oneOf(['auto', 'hidden', 'visible']),
41
- overflowY: PropTypes.oneOf(['auto', 'hidden', 'visible']),
42
- height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
43
- width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
44
- minHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
45
- minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
46
- maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
47
- maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
48
- trigger: PropTypes.node,
49
- placement: PositionPropTypes.placement,
50
- defaultShow: PropTypes.bool,
51
- show: controllable(PropTypes.bool, 'onToggle', 'defaultShow'),
52
- onToggle: PropTypes.func,
53
- onSelect: PropTypes.func,
54
- onDismiss: PropTypes.func,
55
- onFocus: PropTypes.func,
56
- onMouseOver: PropTypes.func,
57
- popoverRef: PropTypes.func,
58
- mountNode: PositionPropTypes.mountNode,
59
- positionTarget: PositionPropTypes.mountNode,
60
- positionContainerDisplay: PropTypes.oneOf(['inline-block', 'block']),
61
- constrain: PositionPropTypes.constrain,
62
- shouldHideOnSelect: PropTypes.bool,
63
- shouldContainFocus: PropTypes.bool,
64
- shouldReturnFocus: PropTypes.bool,
65
- withArrow: PropTypes.bool,
66
- offsetX: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
67
- offsetY: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
68
- shouldSetAriaExpanded: PropTypes.bool
69
- };
70
25
  const allowedProps = ['rootPageId', 'children', 'id', 'label', 'disabled', 'rotateFocus', 'as', 'role', 'overflowX', 'overflowY', 'height', 'width', 'minHeight', 'minWidth', 'maxHeight', 'maxWidth',
71
26
  // Popover version props
72
27
  'trigger', 'placement', 'defaultShow', 'show', 'onToggle', 'onSelect', 'onDismiss', 'onFocus', 'onMouseOver', 'elementRef', 'drilldownRef', 'popoverRef', 'mountNode', 'positionTarget', 'positionContainerDisplay', 'constrain', 'shouldHideOnSelect', 'shouldContainFocus', 'shouldReturnFocus', 'withArrow', 'offsetX', 'offsetY'];
73
- export { propTypes, allowedProps };
28
+ export { allowedProps };
@@ -48,7 +48,7 @@ let DrilldownGroup = exports.DrilldownGroup = (_dec = (0, _emotion.withStyle)(nu
48
48
  // Drilldown.Group is parsed in Drilldown as an Options component.
49
49
  return null;
50
50
  }
51
- }, _DrilldownGroup.displayName = "DrilldownGroup", _DrilldownGroup.componentId = 'Drilldown.Group', _DrilldownGroup.propTypes = _props.propTypes, _DrilldownGroup.allowedProps = _props.allowedProps, _DrilldownGroup.defaultProps = {
51
+ }, _DrilldownGroup.displayName = "DrilldownGroup", _DrilldownGroup.componentId = 'Drilldown.Group', _DrilldownGroup.allowedProps = _props.allowedProps, _DrilldownGroup.defaultProps = {
52
52
  disabled: false,
53
53
  withoutSeparators: false,
54
54
  // Firefox with NVDA does not read Drilldown.Group with role="group" correctly
@@ -1,14 +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 _Children = require("@instructure/ui-prop-types/lib/Children.js");
10
- var _DrilldownOption = _interopRequireDefault(require("../DrilldownOption"));
11
- var _DrilldownSeparator = _interopRequireDefault(require("../DrilldownSeparator"));
6
+ exports.allowedProps = void 0;
12
7
  /*
13
8
  * The MIT License (MIT)
14
9
  *
@@ -33,17 +28,4 @@ var _DrilldownSeparator = _interopRequireDefault(require("../DrilldownSeparator"
33
28
  * SOFTWARE.
34
29
  */
35
30
 
36
- const propTypes = exports.propTypes = {
37
- id: _propTypes.default.string.isRequired,
38
- children: _Children.Children.oneOf([_DrilldownOption.default, _DrilldownSeparator.default]),
39
- renderGroupTitle: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
40
- withoutSeparators: _propTypes.default.bool,
41
- disabled: _propTypes.default.bool,
42
- role: _propTypes.default.string,
43
- as: _propTypes.default.elementType,
44
- elementRef: _propTypes.default.func,
45
- selectableType: _propTypes.default.oneOf(['single', 'multiple']),
46
- defaultSelected: _propTypes.default.array,
47
- onSelect: _propTypes.default.func
48
- };
49
31
  const allowedProps = exports.allowedProps = ['id', 'children', 'renderGroupTitle', 'withoutSeparators', 'disabled', 'role', 'as', 'elementRef', 'selectableType', 'defaultSelected', 'onSelect'];
@@ -47,7 +47,7 @@ let DrilldownOption = exports.DrilldownOption = (_dec = (0, _emotion.withStyle)(
47
47
  // are parsed in Drilldown and rendered as Options.Item components
48
48
  return null;
49
49
  }
50
- }, _DrilldownOption.displayName = "DrilldownOption", _DrilldownOption.componentId = 'Drilldown.Option', _DrilldownOption.propTypes = _props.propTypes, _DrilldownOption.allowedProps = _props.allowedProps, _DrilldownOption.defaultProps = {
50
+ }, _DrilldownOption.displayName = "DrilldownOption", _DrilldownOption.componentId = 'Drilldown.Option', _DrilldownOption.allowedProps = _props.allowedProps, _DrilldownOption.defaultProps = {
51
51
  disabled: false,
52
52
  beforeLabelContentVAlign: 'start',
53
53
  afterLabelContentVAlign: 'start',
@@ -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,26 +28,4 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
30
28
  * SOFTWARE.
31
29
  */
32
30
 
33
- const propTypes = exports.propTypes = {
34
- id: _propTypes.default.string.isRequired,
35
- children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
36
- subPageId: _propTypes.default.string,
37
- disabled: _propTypes.default.bool,
38
- selected: _propTypes.default.bool,
39
- value: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
40
- href: _propTypes.default.string,
41
- as: _propTypes.default.elementType,
42
- role: _propTypes.default.string,
43
- renderLabelInfo: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
44
- renderBeforeLabel: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
45
- renderAfterLabel: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
46
- beforeLabelContentVAlign: _propTypes.default.oneOf(['start', 'center', 'end']),
47
- afterLabelContentVAlign: _propTypes.default.oneOf(['start', 'center', 'end']),
48
- description: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
49
- descriptionRole: _propTypes.default.string,
50
- onOptionClick: _propTypes.default.func,
51
- defaultSelected: _propTypes.default.bool,
52
- elementRef: _propTypes.default.func,
53
- shouldCloseOnClick: _propTypes.default.oneOf(['auto', 'always', 'never'])
54
- };
55
31
  const allowedProps = exports.allowedProps = ['id', 'children', 'subPageId', 'disabled', 'selected', 'value', 'href', 'as', 'role', 'renderLabelInfo', 'renderBeforeLabel', 'renderAfterLabel', 'beforeLabelContentVAlign', 'afterLabelContentVAlign', 'description', 'descriptionRole', 'onOptionClick', 'defaultSelected', 'elementRef', 'shouldCloseOnClick'];
@@ -47,7 +47,6 @@ class DrilldownPage extends _react.Component {
47
47
  exports.DrilldownPage = DrilldownPage;
48
48
  DrilldownPage.displayName = "DrilldownPage";
49
49
  DrilldownPage.componentId = 'Drilldown.Page';
50
- DrilldownPage.propTypes = _props.propTypes;
51
50
  DrilldownPage.allowedProps = _props.allowedProps;
52
51
  DrilldownPage.defaultProps = {
53
52
  renderBackButtonLabel: 'Back',
@@ -1,15 +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 _Children = require("@instructure/ui-prop-types/lib/Children.js");
10
- var _DrilldownGroup = _interopRequireDefault(require("../DrilldownGroup"));
11
- var _DrilldownOption = _interopRequireDefault(require("../DrilldownOption"));
12
- var _DrilldownSeparator = _interopRequireDefault(require("../DrilldownSeparator"));
6
+ exports.allowedProps = void 0;
13
7
  /*
14
8
  * The MIT License (MIT)
15
9
  *
@@ -34,15 +28,4 @@ var _DrilldownSeparator = _interopRequireDefault(require("../DrilldownSeparator"
34
28
  * SOFTWARE.
35
29
  */
36
30
 
37
- const propTypes = exports.propTypes = {
38
- id: _propTypes.default.string.isRequired,
39
- children: _Children.Children.oneOf([_DrilldownOption.default, _DrilldownSeparator.default, _DrilldownGroup.default]),
40
- renderTitle: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
41
- renderActionLabel: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
42
- renderBackButtonLabel: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
43
- onHeaderActionClicked: _propTypes.default.func,
44
- onBackButtonClicked: _propTypes.default.func,
45
- withoutHeaderSeparator: _propTypes.default.bool,
46
- disabled: _propTypes.default.bool
47
- };
48
31
  const allowedProps = exports.allowedProps = ['id', 'children', 'renderTitle', 'renderActionLabel', 'renderBackButtonLabel', 'onHeaderActionClicked', 'onBackButtonClicked', 'withoutHeaderSeparator', 'disabled'];
@@ -47,5 +47,5 @@ let DrilldownSeparator = exports.DrilldownSeparator = (_dec = (0, _emotion.withS
47
47
  // are parsed in Drilldown and rendered as Options.Separator components
48
48
  return null;
49
49
  }
50
- }, _DrilldownSeparator.displayName = "DrilldownSeparator", _DrilldownSeparator.componentId = 'Drilldown.Separator', _DrilldownSeparator.propTypes = _props.propTypes, _DrilldownSeparator.allowedProps = _props.allowedProps, _DrilldownSeparator.defaultProps = {}, _DrilldownSeparator)) || _class);
50
+ }, _DrilldownSeparator.displayName = "DrilldownSeparator", _DrilldownSeparator.componentId = 'Drilldown.Separator', _DrilldownSeparator.allowedProps = _props.allowedProps, _DrilldownSeparator.defaultProps = {}, _DrilldownSeparator)) || _class);
51
51
  var _default = exports.default = DrilldownSeparator;
@@ -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,8 +28,4 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
30
28
  * SOFTWARE.
31
29
  */
32
30
 
33
- const propTypes = exports.propTypes = {
34
- id: _propTypes.default.string.isRequired,
35
- as: _propTypes.default.elementType
36
- };
37
31
  const allowedProps = exports.allowedProps = ['id', 'as'];