@carbon/ibm-products 2.43.2-canary.191 → 2.43.2-canary.195

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,11 +6,12 @@
6
6
  */
7
7
 
8
8
  import { objectWithoutProperties as _objectWithoutProperties, extends as _extends, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
9
- import { ComposedModal, ModalHeader, ModalBody, Theme, ModalFooter } from '@carbon/react';
9
+ import { unstable_FeatureFlags, ComposedModal, ModalHeader, ModalBody, Theme, ModalFooter } from '@carbon/react';
10
10
  import React__default, { useRef, useEffect } from 'react';
11
11
  import PropTypes from '../../node_modules/prop-types/index.js';
12
12
  import cx from 'classnames';
13
13
  import { getDevtoolsProps } from '../../global/js/utils/devtools.js';
14
+ import { useFocus } from '../../global/js/hooks/useFocus.js';
14
15
  import { pkg } from '../../settings.js';
15
16
  import { usePortalTarget } from '../../global/js/hooks/usePortalTarget.js';
16
17
  import uuidv4 from '../../global/js/utils/uuidv4.js';
@@ -45,9 +46,13 @@ var AboutModal = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
45
46
  version = _ref.version,
46
47
  rest = _objectWithoutProperties(_ref, _excluded);
47
48
  var bodyRef = useRef(null);
49
+ var localRef = useRef();
50
+ var modalRef = ref || localRef;
48
51
  var contentRef = useRef(null);
49
52
  var contentId = uuidv4();
50
53
  var renderPortalUse = usePortalTarget(portalTargetIn);
54
+ var _useFocus = useFocus(modalRef),
55
+ firstElement = _useFocus.firstElement;
51
56
 
52
57
  // We can't add a ref directly to the ModalBody, so track it in a ref
53
58
  // as the parent of the current bodyRef element
@@ -55,16 +60,28 @@ var AboutModal = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
55
60
  var _contentRef$current;
56
61
  bodyRef.current = (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.parentElement;
57
62
  }, [bodyRef]);
58
- return renderPortalUse( /*#__PURE__*/React__default.createElement(ComposedModal, _extends({}, rest, {
63
+ useEffect(function () {
64
+ if (open) {
65
+ setTimeout(function () {
66
+ return firstElement === null || firstElement === void 0 ? void 0 : firstElement.focus();
67
+ }, 0);
68
+ }
69
+ // eslint-disable-next-line react-hooks/exhaustive-deps
70
+ }, [open]);
71
+ return renderPortalUse( /*#__PURE__*/React__default.createElement(unstable_FeatureFlags, {
72
+ flags: {
73
+ 'enable-experimental-focus-wrap-without-sentinels': true
74
+ }
75
+ }, /*#__PURE__*/React__default.createElement(ComposedModal, _extends({}, rest, {
59
76
  className: cx(blockClass,
60
77
  // Apply the block class to the main HTML element
61
78
  className // Apply any supplied class names to the main HTML element.
62
79
  ),
63
- "aria-label": modalAriaLabel
80
+ "aria-label": modalAriaLabel,
81
+ ref: modalRef
64
82
  }, _objectSpread2({
65
83
  onClose: onClose,
66
- open: open,
67
- ref: ref
84
+ open: open
68
85
  }, getDevtoolsProps(componentName))), /*#__PURE__*/React__default.createElement("div", {
69
86
  className: "".concat(blockClass, "__logo")
70
87
  }, logo), /*#__PURE__*/React__default.createElement(ModalHeader, {
@@ -95,7 +112,7 @@ var AboutModal = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
95
112
  theme: "g100"
96
113
  }, /*#__PURE__*/React__default.createElement(ModalFooter, {
97
114
  className: "".concat(blockClass, "__footer")
98
- }, additionalInfo))));
115
+ }, additionalInfo)))));
99
116
  });
100
117
 
101
118
  // Return a placeholder if not released and not enabled by feature flag
@@ -31,6 +31,9 @@ var defaults = {
31
31
  secondaryActionLabel: 'Cancel',
32
32
  align: 'bottom'
33
33
  };
34
+
35
+ // Use same empty array every time, for benefit of useEffect() etc. dependency checking.
36
+ var emptyArray = [];
34
37
  var FilterFlyout = function FilterFlyout(_ref) {
35
38
  var updateMethod = _ref.updateMethod,
36
39
  _ref$flyoutIconDescri = _ref.flyoutIconDescription,
@@ -38,7 +41,7 @@ var FilterFlyout = function FilterFlyout(_ref) {
38
41
  _ref$align = _ref.align,
39
42
  align = _ref$align === void 0 ? defaults.align : _ref$align,
40
43
  _ref$filters = _ref.filters,
41
- filters = _ref$filters === void 0 ? [] : _ref$filters,
44
+ filters = _ref$filters === void 0 ? emptyArray : _ref$filters,
42
45
  _ref$title = _ref.title,
43
46
  title = _ref$title === void 0 ? defaults.title : _ref$title,
44
47
  _ref$primaryActionLab = _ref.primaryActionLabel,
@@ -55,9 +58,9 @@ var FilterFlyout = function FilterFlyout(_ref) {
55
58
  secondaryActionLabel = _ref$secondaryActionL === void 0 ? defaults.secondaryActionLabel : _ref$secondaryActionL,
56
59
  setAllFilters = _ref.setAllFilters,
57
60
  _ref$data = _ref.data,
58
- data = _ref$data === void 0 ? [] : _ref$data,
61
+ data = _ref$data === void 0 ? emptyArray : _ref$data,
59
62
  _ref$reactTableFilter = _ref.reactTableFiltersState,
60
- reactTableFiltersState = _ref$reactTableFilter === void 0 ? [] : _ref$reactTableFilter;
63
+ reactTableFiltersState = _ref$reactTableFilter === void 0 ? emptyArray : _ref$reactTableFilter;
61
64
  /** State */
62
65
  var _useState = useState(false),
63
66
  _useState2 = _slicedToArray(_useState, 2),
@@ -34,6 +34,9 @@ var defaults = {
34
34
  searchLabelText: 'Filter search',
35
35
  searchPlaceholder: 'Find filters'
36
36
  };
37
+
38
+ // Use same empty array every time, for benefit of useEffect() etc. dependency checking.
39
+ var emptyArray = [];
37
40
  var FilterPanel = function FilterPanel(_ref) {
38
41
  var _ref$title = _ref.title,
39
42
  title = _ref$title === void 0 ? defaults.title : _ref$title,
@@ -63,7 +66,7 @@ var FilterPanel = function FilterPanel(_ref) {
63
66
  _ref$searchPlaceholde = _ref.searchPlaceholder,
64
67
  searchPlaceholder = _ref$searchPlaceholde === void 0 ? defaults.searchPlaceholder : _ref$searchPlaceholde,
65
68
  _ref$reactTableFilter = _ref.reactTableFiltersState,
66
- reactTableFiltersState = _ref$reactTableFilter === void 0 ? [] : _ref$reactTableFilter,
69
+ reactTableFiltersState = _ref$reactTableFilter === void 0 ? emptyArray : _ref$reactTableFilter,
67
70
  _ref$autoHideFilters = _ref.autoHideFilters,
68
71
  autoHideFilters = _ref$autoHideFilters === void 0 ? false : _ref$autoHideFilters,
69
72
  _ref$isFetching = _ref.isFetching,
@@ -16,10 +16,12 @@ import { handleCheckboxChange } from '../handleCheckboxChange.js';
16
16
  import uuidv4 from '../../../../../../global/js/utils/uuidv4.js';
17
17
  import { usePreviousValue } from '../../../../../../global/js/hooks/usePreviousValue.js';
18
18
 
19
+ // Use same empty array every time, for benefit of useEffect() etc. dependency checking.
20
+ var emptyArray = [];
19
21
  var useFilters = function useFilters(_ref) {
20
22
  var updateMethod = _ref.updateMethod,
21
23
  _ref$filters = _ref.filters,
22
- filters = _ref$filters === void 0 ? [] : _ref$filters,
24
+ filters = _ref$filters === void 0 ? emptyArray : _ref$filters,
23
25
  setAllFilters = _ref.setAllFilters,
24
26
  variation = _ref.variation,
25
27
  reactTableFiltersState = _ref.reactTableFiltersState,
@@ -15,6 +15,7 @@ var React = require('react');
15
15
  var index = require('../../node_modules/prop-types/index.js');
16
16
  var cx = require('classnames');
17
17
  var devtools = require('../../global/js/utils/devtools.js');
18
+ var useFocus = require('../../global/js/hooks/useFocus.js');
18
19
  var settings = require('../../settings.js');
19
20
  var usePortalTarget = require('../../global/js/hooks/usePortalTarget.js');
20
21
  var uuidv4 = require('../../global/js/utils/uuidv4.js');
@@ -54,9 +55,13 @@ exports.AboutModal = /*#__PURE__*/React__default["default"].forwardRef(function
54
55
  version = _ref.version,
55
56
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
56
57
  var bodyRef = React.useRef(null);
58
+ var localRef = React.useRef();
59
+ var modalRef = ref || localRef;
57
60
  var contentRef = React.useRef(null);
58
61
  var contentId = uuidv4["default"]();
59
62
  var renderPortalUse = usePortalTarget.usePortalTarget(portalTargetIn);
63
+ var _useFocus = useFocus.useFocus(modalRef),
64
+ firstElement = _useFocus.firstElement;
60
65
 
61
66
  // We can't add a ref directly to the ModalBody, so track it in a ref
62
67
  // as the parent of the current bodyRef element
@@ -64,16 +69,28 @@ exports.AboutModal = /*#__PURE__*/React__default["default"].forwardRef(function
64
69
  var _contentRef$current;
65
70
  bodyRef.current = (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.parentElement;
66
71
  }, [bodyRef]);
67
- return renderPortalUse( /*#__PURE__*/React__default["default"].createElement(react.ComposedModal, _rollupPluginBabelHelpers["extends"]({}, rest, {
72
+ React.useEffect(function () {
73
+ if (open) {
74
+ setTimeout(function () {
75
+ return firstElement === null || firstElement === void 0 ? void 0 : firstElement.focus();
76
+ }, 0);
77
+ }
78
+ // eslint-disable-next-line react-hooks/exhaustive-deps
79
+ }, [open]);
80
+ return renderPortalUse( /*#__PURE__*/React__default["default"].createElement(react.unstable_FeatureFlags, {
81
+ flags: {
82
+ 'enable-experimental-focus-wrap-without-sentinels': true
83
+ }
84
+ }, /*#__PURE__*/React__default["default"].createElement(react.ComposedModal, _rollupPluginBabelHelpers["extends"]({}, rest, {
68
85
  className: cx__default["default"](blockClass,
69
86
  // Apply the block class to the main HTML element
70
87
  className // Apply any supplied class names to the main HTML element.
71
88
  ),
72
- "aria-label": modalAriaLabel
89
+ "aria-label": modalAriaLabel,
90
+ ref: modalRef
73
91
  }, _rollupPluginBabelHelpers.objectSpread2({
74
92
  onClose: onClose,
75
- open: open,
76
- ref: ref
93
+ open: open
77
94
  }, devtools.getDevtoolsProps(componentName))), /*#__PURE__*/React__default["default"].createElement("div", {
78
95
  className: "".concat(blockClass, "__logo")
79
96
  }, logo), /*#__PURE__*/React__default["default"].createElement(react.ModalHeader, {
@@ -104,7 +121,7 @@ exports.AboutModal = /*#__PURE__*/React__default["default"].forwardRef(function
104
121
  theme: "g100"
105
122
  }, /*#__PURE__*/React__default["default"].createElement(react.ModalFooter, {
106
123
  className: "".concat(blockClass, "__footer")
107
- }, additionalInfo))));
124
+ }, additionalInfo)))));
108
125
  });
109
126
 
110
127
  // Return a placeholder if not released and not enabled by feature flag
@@ -40,6 +40,9 @@ var defaults = {
40
40
  secondaryActionLabel: 'Cancel',
41
41
  align: 'bottom'
42
42
  };
43
+
44
+ // Use same empty array every time, for benefit of useEffect() etc. dependency checking.
45
+ var emptyArray = [];
43
46
  var FilterFlyout = function FilterFlyout(_ref) {
44
47
  var updateMethod = _ref.updateMethod,
45
48
  _ref$flyoutIconDescri = _ref.flyoutIconDescription,
@@ -47,7 +50,7 @@ var FilterFlyout = function FilterFlyout(_ref) {
47
50
  _ref$align = _ref.align,
48
51
  align = _ref$align === void 0 ? defaults.align : _ref$align,
49
52
  _ref$filters = _ref.filters,
50
- filters = _ref$filters === void 0 ? [] : _ref$filters,
53
+ filters = _ref$filters === void 0 ? emptyArray : _ref$filters,
51
54
  _ref$title = _ref.title,
52
55
  title = _ref$title === void 0 ? defaults.title : _ref$title,
53
56
  _ref$primaryActionLab = _ref.primaryActionLabel,
@@ -64,9 +67,9 @@ var FilterFlyout = function FilterFlyout(_ref) {
64
67
  secondaryActionLabel = _ref$secondaryActionL === void 0 ? defaults.secondaryActionLabel : _ref$secondaryActionL,
65
68
  setAllFilters = _ref.setAllFilters,
66
69
  _ref$data = _ref.data,
67
- data = _ref$data === void 0 ? [] : _ref$data,
70
+ data = _ref$data === void 0 ? emptyArray : _ref$data,
68
71
  _ref$reactTableFilter = _ref.reactTableFiltersState,
69
- reactTableFiltersState = _ref$reactTableFilter === void 0 ? [] : _ref$reactTableFilter;
72
+ reactTableFiltersState = _ref$reactTableFilter === void 0 ? emptyArray : _ref$reactTableFilter;
70
73
  /** State */
71
74
  var _useState = React.useState(false),
72
75
  _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
@@ -43,6 +43,9 @@ var defaults = {
43
43
  searchLabelText: 'Filter search',
44
44
  searchPlaceholder: 'Find filters'
45
45
  };
46
+
47
+ // Use same empty array every time, for benefit of useEffect() etc. dependency checking.
48
+ var emptyArray = [];
46
49
  var FilterPanel = function FilterPanel(_ref) {
47
50
  var _ref$title = _ref.title,
48
51
  title = _ref$title === void 0 ? defaults.title : _ref$title,
@@ -72,7 +75,7 @@ var FilterPanel = function FilterPanel(_ref) {
72
75
  _ref$searchPlaceholde = _ref.searchPlaceholder,
73
76
  searchPlaceholder = _ref$searchPlaceholde === void 0 ? defaults.searchPlaceholder : _ref$searchPlaceholde,
74
77
  _ref$reactTableFilter = _ref.reactTableFiltersState,
75
- reactTableFiltersState = _ref$reactTableFilter === void 0 ? [] : _ref$reactTableFilter,
78
+ reactTableFiltersState = _ref$reactTableFilter === void 0 ? emptyArray : _ref$reactTableFilter,
76
79
  _ref$autoHideFilters = _ref.autoHideFilters,
77
80
  autoHideFilters = _ref$autoHideFilters === void 0 ? false : _ref$autoHideFilters,
78
81
  _ref$isFetching = _ref.isFetching,
@@ -24,10 +24,12 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
24
24
 
25
25
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
26
26
 
27
+ // Use same empty array every time, for benefit of useEffect() etc. dependency checking.
28
+ var emptyArray = [];
27
29
  var useFilters = function useFilters(_ref) {
28
30
  var updateMethod = _ref.updateMethod,
29
31
  _ref$filters = _ref.filters,
30
- filters = _ref$filters === void 0 ? [] : _ref$filters,
32
+ filters = _ref$filters === void 0 ? emptyArray : _ref$filters,
31
33
  setAllFilters = _ref.setAllFilters,
32
34
  variation = _ref.variation,
33
35
  reactTableFiltersState = _ref.reactTableFiltersState,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/ibm-products",
3
3
  "description": "Carbon for IBM Products",
4
- "version": "2.43.2-canary.191+694128bb7",
4
+ "version": "2.43.2-canary.195+e6ce08b23",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -81,7 +81,7 @@
81
81
  "fs-extra": "^11.2.0",
82
82
  "glob": "^10.3.10",
83
83
  "jest": "^29.7.0",
84
- "jest-config-ibm-cloud-cognitive": "^1.7.0",
84
+ "jest-config-ibm-cloud-cognitive": "^1.8.0-rc.0",
85
85
  "jest-environment-jsdom": "^29.7.0",
86
86
  "namor": "^1.1.2",
87
87
  "npm-check-updates": "^16.14.12",
@@ -96,7 +96,7 @@
96
96
  "dependencies": {
97
97
  "@babel/runtime": "^7.23.9",
98
98
  "@carbon/feature-flags": "^0.20.0",
99
- "@carbon/ibm-products-styles": "^2.39.1-canary.201+694128bb7",
99
+ "@carbon/ibm-products-styles": "^2.45.0-rc.0",
100
100
  "@carbon/telemetry": "^0.1.0",
101
101
  "@dnd-kit/core": "^6.0.8",
102
102
  "@dnd-kit/modifiers": "^7.0.0",
@@ -120,5 +120,5 @@
120
120
  "react": "^16.8.6 || ^17.0.1 || ^18.2.0",
121
121
  "react-dom": "^16.8.6 || ^17.0.1 || ^18.2.0"
122
122
  },
123
- "gitHead": "694128bb707a2400d67e6618af3fea3f3ffba86f"
123
+ "gitHead": "e6ce08b236acf9f7360e01b2ebb5e5a8568afc9c"
124
124
  }