@carbon/ibm-products 1.65.0 → 1.67.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,19 +1,19 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- // @flow
4
3
  /**
5
- * Copyright IBM Corp. 2022, 2023
4
+ * Copyright IBM Corp. 2022, 2024
6
5
  *
7
6
  * This source code is licensed under the Apache-2.0 license found in the
8
7
  * LICENSE file in the root directory of this source tree.
9
8
  */
10
9
 
11
- import { Filter16 } from '@carbon/icons-react';
10
+ import React, { useRef, useState, useEffect } from 'react';
12
11
  import { Button } from 'carbon-components-react';
12
+ import { Filter16 } from '@carbon/icons-react';
13
+ import { px, breakpoints } from '@carbon/layout';
13
14
  import cx from 'classnames';
14
15
  import PropTypes from 'prop-types';
15
- import React, { useRef, useState, useEffect } from 'react';
16
- import { useClickOutside } from '../../../../../global/js/hooks';
16
+ import { useClickOutside, useWindowResize } from '../../../../../global/js/hooks';
17
17
  import { pkg } from '../../../../../settings';
18
18
  import { ActionSet } from '../../../../ActionSet';
19
19
  import { BATCH, CLEAR_FILTERS, FLYOUT, INSTANT } from './constants';
@@ -53,6 +53,10 @@ var FilterFlyout = function FilterFlyout(_ref) {
53
53
  _useState2 = _slicedToArray(_useState, 2),
54
54
  open = _useState2[0],
55
55
  setOpen = _useState2[1];
56
+ var _useState3 = useState(false),
57
+ _useState4 = _slicedToArray(_useState3, 2),
58
+ stackedLayout = _useState4[0],
59
+ setStackedLayout = _useState4[1];
56
60
  var _useFilters = useFilters({
57
61
  updateMethod: updateMethod,
58
62
  filters: filters,
@@ -69,9 +73,13 @@ var FilterFlyout = function FilterFlyout(_ref) {
69
73
  renderFilter = _useFilters.renderFilter,
70
74
  filtersObjectArray = _useFilters.filtersObjectArray,
71
75
  lastAppliedFilters = _useFilters.lastAppliedFilters;
76
+ var width = breakpoints.md.width;
77
+ var mdPxWidth = parseInt(width) * 16;
72
78
 
73
79
  /** Refs */
74
80
  var filterFlyoutRef = useRef(null);
81
+ var flyoutInnerRef = useRef(null);
82
+ var flyoutFiltersContainerRef = useRef(null);
75
83
  var _useShouldDisableButt = useShouldDisableButtons({
76
84
  initialValue: true,
77
85
  filtersState: filtersState,
@@ -80,6 +88,33 @@ var FilterFlyout = function FilterFlyout(_ref) {
80
88
  _useShouldDisableButt2 = _slicedToArray(_useShouldDisableButt, 2),
81
89
  shouldDisableButtons = _useShouldDisableButt2[0],
82
90
  setShouldDisableButtons = _useShouldDisableButt2[1];
91
+ var handleResize = function handleResize(current) {
92
+ var filterFlyoutRefPosition = flyoutInnerRef === null || flyoutInnerRef === void 0 ? void 0 : flyoutInnerRef.current.getBoundingClientRect();
93
+ var originalFlyoutWidth = parseInt(window.getComputedStyle(flyoutInnerRef === null || flyoutInnerRef === void 0 ? void 0 : flyoutInnerRef.current).getPropertyValue('width'));
94
+ // Check to see if left value from flyout getBoundingClientRect is a negative number
95
+ // If it is, that is the amount we need to subtract from the flyout width
96
+ if (Math.sign(filterFlyoutRefPosition.left) === -1) {
97
+ var newFlyoutWidth = originalFlyoutWidth - Math.abs(filterFlyoutRefPosition.left);
98
+ flyoutInnerRef.current.style.width = px(newFlyoutWidth);
99
+ }
100
+ // Check to see if left value from flyout getBoundingClientRect is a positive number or 0
101
+ // If it is, that is the amount we need to add to the flyout width until we reach the
102
+ // max-width of the flyout (642)
103
+ if (originalFlyoutWidth < 642 && Math.sign(filterFlyoutRefPosition.left) === 1 || Math.sign(filterFlyoutRefPosition.left).toString() === '0') {
104
+ var _newFlyoutWidth = originalFlyoutWidth + Math.abs(filterFlyoutRefPosition.left);
105
+ flyoutInnerRef.current.style.width = px(_newFlyoutWidth);
106
+ }
107
+ // Begin stacking filters at this specific point
108
+ if ((current === null || current === void 0 ? void 0 : current.innerWidth) <= mdPxWidth + 254) {
109
+ setStackedLayout(true);
110
+ } else {
111
+ setStackedLayout(false);
112
+ }
113
+ };
114
+ useWindowResize(function (_ref2) {
115
+ var current = _ref2.current;
116
+ handleResize(current);
117
+ });
83
118
 
84
119
  /** Memos */
85
120
  var showActionSet = updateMethod === BATCH;
@@ -92,7 +127,12 @@ var FilterFlyout = function FilterFlyout(_ref) {
92
127
  var closeFlyout = function closeFlyout() {
93
128
  setOpen(false);
94
129
  onFlyoutClose();
130
+ flyoutInnerRef.current.style.width = px(642);
95
131
  };
132
+ useEffect(function () {
133
+ // Initialize flyout width
134
+ flyoutInnerRef.current.style.width = px(642);
135
+ }, []);
96
136
  var apply = function apply() {
97
137
  setAllFilters(filtersObjectArray);
98
138
  closeFlyout();
@@ -151,7 +191,8 @@ var FilterFlyout = function FilterFlyout(_ref) {
151
191
  lastAppliedFilters.current = JSON.stringify(reactTableFiltersState);
152
192
  }, [reactTableFiltersState, lastAppliedFilters]);
153
193
  return /*#__PURE__*/React.createElement("div", {
154
- className: "".concat(componentClass, "__container")
194
+ className: "".concat(componentClass, "__container"),
195
+ ref: filterFlyoutRef
155
196
  }, /*#__PURE__*/React.createElement(Button, {
156
197
  kind: "ghost",
157
198
  hasIconOnly: true,
@@ -162,14 +203,15 @@ var FilterFlyout = function FilterFlyout(_ref) {
162
203
  className: cx("".concat(componentClass, "__trigger"), _defineProperty({}, "".concat(componentClass, "__trigger--open"), open)),
163
204
  disabled: data.length === 0
164
205
  }), /*#__PURE__*/React.createElement("div", {
165
- ref: filterFlyoutRef,
206
+ ref: flyoutInnerRef,
166
207
  className: cx(componentClass, (_cx2 = {}, _defineProperty(_cx2, "".concat(componentClass, "--open"), open), _defineProperty(_cx2, "".concat(componentClass, "--batch"), showActionSet), _defineProperty(_cx2, "".concat(componentClass, "--instant"), !showActionSet), _cx2))
167
208
  }, /*#__PURE__*/React.createElement("div", {
168
209
  className: "".concat(componentClass, "__inner-container")
169
210
  }, /*#__PURE__*/React.createElement("span", {
170
211
  className: "".concat(componentClass, "__title")
171
212
  }, title), /*#__PURE__*/React.createElement("div", {
172
- className: "".concat(componentClass, "__filters")
213
+ className: cx("".concat(componentClass, "__filters"), _defineProperty({}, "".concat(componentClass, "__stacked"), stackedLayout)),
214
+ ref: flyoutFiltersContainerRef
173
215
  }, renderFilters())), renderActionSet()));
174
216
  };
175
217
  FilterFlyout.propTypes = {
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  /* eslint-disable react/jsx-key */
4
4
  /**
5
- * Copyright IBM Corp. 2022, 2023
5
+ * Copyright IBM Corp. 2022, 2024
6
6
  *
7
7
  * This source code is licensed under the Apache-2.0 license found in the
8
8
  * LICENSE file in the root directory of this source tree.
@@ -15,7 +15,7 @@ import { rem } from '@carbon/layout';
15
15
  import { pkg } from '../../../../../settings';
16
16
  import { BATCH, CLEAR_FILTERS, INSTANT, PANEL } from './constants';
17
17
  import cx from 'classnames';
18
- import { motion } from 'framer-motion';
18
+ import { motion, useReducedMotion } from 'framer-motion';
19
19
  import { panelVariants, innerContainerVariants, actionSetVariants } from './motion/variants';
20
20
  import { Close32 } from '@carbon/icons-react';
21
21
  import { ActionSet } from '../../../../ActionSet';
@@ -102,6 +102,7 @@ var FilterPanel = function FilterPanel(_ref) {
102
102
  _useShouldDisableButt2 = _slicedToArray(_useShouldDisableButt, 2),
103
103
  shouldDisableButtons = _useShouldDisableButt2[0],
104
104
  setShouldDisableButtons = _useShouldDisableButt2[1];
105
+ var shouldReduceMotion = useReducedMotion();
105
106
 
106
107
  /** Memos */
107
108
  var showActionSet = useMemo(function () {
@@ -146,6 +147,7 @@ var FilterPanel = function FilterPanel(_ref) {
146
147
  }],
147
148
  className: "".concat(componentClass, "__action-set"),
148
149
  ref: actionSetRef,
150
+ custom: shouldReduceMotion,
149
151
  variants: actionSetVariants
150
152
  });
151
153
  };
@@ -183,8 +185,10 @@ var FilterPanel = function FilterPanel(_ref) {
183
185
  className: cx(componentClass, "".concat(componentClass, "__container"), (_cx = {}, _defineProperty(_cx, "".concat(componentClass, "--open"), panelOpen), _defineProperty(_cx, "".concat(componentClass, "--batch"), showActionSet), _defineProperty(_cx, "".concat(componentClass, "--instant"), !showActionSet), _cx)),
184
186
  initial: false,
185
187
  animate: panelOpen ? 'visible' : 'hidden',
188
+ custom: shouldReduceMotion,
186
189
  variants: panelVariants
187
190
  }, /*#__PURE__*/React.createElement(motion.div, {
191
+ custom: shouldReduceMotion,
188
192
  variants: innerContainerVariants
189
193
  }, /*#__PURE__*/React.createElement("header", {
190
194
  ref: filterHeadingRef,
@@ -1,55 +1,77 @@
1
+ /**
2
+ * Copyright IBM Corp. 2023, 2024
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
1
8
  import { DURATIONS, EASINGS } from '../../../../../../global/js/utils/motionConstants';
2
9
  import { ACTION_SET_HEIGHT, PANEL_WIDTH } from '../constants';
3
10
  export var panelVariants = {
4
- hidden: {
5
- width: 0,
6
- overflow: 'hidden',
7
- transition: {
8
- duration: DURATIONS.fast02,
9
- ease: EASINGS.productive.exit,
10
- when: 'afterChildren'
11
- }
11
+ hidden: function hidden(shouldReduceMotion) {
12
+ return {
13
+ width: 0,
14
+ overflow: 'hidden',
15
+ transition: {
16
+ duration: shouldReduceMotion ? 0 : DURATIONS.fast02,
17
+ ease: shouldReduceMotion ? 0 : EASINGS.productive.exit,
18
+ when: 'afterChildren'
19
+ }
20
+ };
12
21
  },
13
- visible: {
14
- width: PANEL_WIDTH,
15
- overflow: 'visible',
16
- transition: {
17
- duration: DURATIONS.moderate02,
18
- ease: EASINGS.productive.entrance,
19
- when: 'beforeChildren'
20
- }
22
+ visible: function visible(shouldReduceMotion) {
23
+ return {
24
+ width: PANEL_WIDTH,
25
+ overflow: 'visible',
26
+ transition: {
27
+ duration: shouldReduceMotion ? 0 : DURATIONS.moderate02,
28
+ ease: shouldReduceMotion ? 0 : EASINGS.productive.entrance,
29
+ when: 'beforeChildren'
30
+ }
31
+ };
21
32
  }
22
33
  };
23
34
  export var innerContainerVariants = {
24
- hidden: {
25
- opacity: 0,
26
- transition: {
27
- duration: DURATIONS.fast01,
28
- ease: EASINGS.productive.exit
29
- }
35
+ hidden: function hidden(shouldReduceMotion) {
36
+ return {
37
+ opacity: 0,
38
+ transition: {
39
+ duration: shouldReduceMotion ? DURATIONS.moderate01 : DURATIONS.fast01,
40
+ ease: shouldReduceMotion ? 0 : EASINGS.productive.exit
41
+ }
42
+ };
30
43
  },
31
- visible: {
32
- opacity: 1,
33
- transition: {
34
- duration: DURATIONS.fast02,
35
- ease: EASINGS.productive.entrance,
36
- when: 'beforeChildren'
37
- }
44
+ visible: function visible(shouldReduceMotion) {
45
+ return {
46
+ opacity: 1,
47
+ transition: {
48
+ duration: shouldReduceMotion ? DURATIONS.moderate01 : DURATIONS.fast02,
49
+ ease: shouldReduceMotion ? 0 : EASINGS.productive.entrance,
50
+ when: shouldReduceMotion ? null : 'beforeChildren'
51
+ }
52
+ };
38
53
  }
39
54
  };
40
55
  export var actionSetVariants = {
41
- hidden: {
42
- y: ACTION_SET_HEIGHT,
43
- transition: {
44
- duration: DURATIONS.fast01,
45
- ease: EASINGS.productive.exit
46
- }
56
+ hidden: function hidden(shouldReduceMotion) {
57
+ return {
58
+ y: shouldReduceMotion ? 0 : ACTION_SET_HEIGHT,
59
+ opacity: shouldReduceMotion ? 0 : 1,
60
+ transition: {
61
+ duration: shouldReduceMotion ? DURATIONS.moderate01 : DURATIONS.fast01,
62
+ ease: shouldReduceMotion ? 0 : EASINGS.productive.exit
63
+ }
64
+ };
47
65
  },
48
- visible: {
49
- y: 0,
50
- transition: {
51
- duration: DURATIONS.fast02,
52
- ease: EASINGS.productive.entrance
53
- }
66
+ visible: function visible(shouldReduceMotion) {
67
+ return {
68
+ y: 0,
69
+ opacity: 1,
70
+ transition: {
71
+ duration: shouldReduceMotion ? DURATIONS.moderate01 : DURATIONS.fast02,
72
+ ease: shouldReduceMotion ? 0 : EASINGS.productive.entrance,
73
+ delay: shouldReduceMotion ? 0.075 : 0
74
+ }
75
+ };
54
76
  }
55
77
  };
@@ -8,11 +8,12 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _iconsReact = require("@carbon/icons-react");
11
+ var _react = _interopRequireWildcard(require("react"));
12
12
  var _carbonComponentsReact = require("carbon-components-react");
13
+ var _iconsReact = require("@carbon/icons-react");
14
+ var _layout = require("@carbon/layout");
13
15
  var _classnames = _interopRequireDefault(require("classnames"));
14
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
- var _react = _interopRequireWildcard(require("react"));
16
17
  var _hooks = require("../../../../../global/js/hooks");
17
18
  var _settings = require("../../../../../settings");
18
19
  var _ActionSet = require("../../../../ActionSet");
@@ -20,9 +21,8 @@ var _constants = require("./constants");
20
21
  var _hooks2 = require("./hooks");
21
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
23
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
- // @flow
24
24
  /**
25
- * Copyright IBM Corp. 2022, 2023
25
+ * Copyright IBM Corp. 2022, 2024
26
26
  *
27
27
  * This source code is licensed under the Apache-2.0 license found in the
28
28
  * LICENSE file in the root directory of this source tree.
@@ -62,6 +62,10 @@ var FilterFlyout = function FilterFlyout(_ref) {
62
62
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
63
63
  open = _useState2[0],
64
64
  setOpen = _useState2[1];
65
+ var _useState3 = (0, _react.useState)(false),
66
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
67
+ stackedLayout = _useState4[0],
68
+ setStackedLayout = _useState4[1];
65
69
  var _useFilters = (0, _hooks2.useFilters)({
66
70
  updateMethod: updateMethod,
67
71
  filters: filters,
@@ -78,9 +82,13 @@ var FilterFlyout = function FilterFlyout(_ref) {
78
82
  renderFilter = _useFilters.renderFilter,
79
83
  filtersObjectArray = _useFilters.filtersObjectArray,
80
84
  lastAppliedFilters = _useFilters.lastAppliedFilters;
85
+ var width = _layout.breakpoints.md.width;
86
+ var mdPxWidth = parseInt(width) * 16;
81
87
 
82
88
  /** Refs */
83
89
  var filterFlyoutRef = (0, _react.useRef)(null);
90
+ var flyoutInnerRef = (0, _react.useRef)(null);
91
+ var flyoutFiltersContainerRef = (0, _react.useRef)(null);
84
92
  var _useShouldDisableButt = (0, _hooks2.useShouldDisableButtons)({
85
93
  initialValue: true,
86
94
  filtersState: filtersState,
@@ -89,6 +97,33 @@ var FilterFlyout = function FilterFlyout(_ref) {
89
97
  _useShouldDisableButt2 = (0, _slicedToArray2.default)(_useShouldDisableButt, 2),
90
98
  shouldDisableButtons = _useShouldDisableButt2[0],
91
99
  setShouldDisableButtons = _useShouldDisableButt2[1];
100
+ var handleResize = function handleResize(current) {
101
+ var filterFlyoutRefPosition = flyoutInnerRef === null || flyoutInnerRef === void 0 ? void 0 : flyoutInnerRef.current.getBoundingClientRect();
102
+ var originalFlyoutWidth = parseInt(window.getComputedStyle(flyoutInnerRef === null || flyoutInnerRef === void 0 ? void 0 : flyoutInnerRef.current).getPropertyValue('width'));
103
+ // Check to see if left value from flyout getBoundingClientRect is a negative number
104
+ // If it is, that is the amount we need to subtract from the flyout width
105
+ if (Math.sign(filterFlyoutRefPosition.left) === -1) {
106
+ var newFlyoutWidth = originalFlyoutWidth - Math.abs(filterFlyoutRefPosition.left);
107
+ flyoutInnerRef.current.style.width = (0, _layout.px)(newFlyoutWidth);
108
+ }
109
+ // Check to see if left value from flyout getBoundingClientRect is a positive number or 0
110
+ // If it is, that is the amount we need to add to the flyout width until we reach the
111
+ // max-width of the flyout (642)
112
+ if (originalFlyoutWidth < 642 && Math.sign(filterFlyoutRefPosition.left) === 1 || Math.sign(filterFlyoutRefPosition.left).toString() === '0') {
113
+ var _newFlyoutWidth = originalFlyoutWidth + Math.abs(filterFlyoutRefPosition.left);
114
+ flyoutInnerRef.current.style.width = (0, _layout.px)(_newFlyoutWidth);
115
+ }
116
+ // Begin stacking filters at this specific point
117
+ if ((current === null || current === void 0 ? void 0 : current.innerWidth) <= mdPxWidth + 254) {
118
+ setStackedLayout(true);
119
+ } else {
120
+ setStackedLayout(false);
121
+ }
122
+ };
123
+ (0, _hooks.useWindowResize)(function (_ref2) {
124
+ var current = _ref2.current;
125
+ handleResize(current);
126
+ });
92
127
 
93
128
  /** Memos */
94
129
  var showActionSet = updateMethod === _constants.BATCH;
@@ -101,7 +136,12 @@ var FilterFlyout = function FilterFlyout(_ref) {
101
136
  var closeFlyout = function closeFlyout() {
102
137
  setOpen(false);
103
138
  onFlyoutClose();
139
+ flyoutInnerRef.current.style.width = (0, _layout.px)(642);
104
140
  };
141
+ (0, _react.useEffect)(function () {
142
+ // Initialize flyout width
143
+ flyoutInnerRef.current.style.width = (0, _layout.px)(642);
144
+ }, []);
105
145
  var apply = function apply() {
106
146
  setAllFilters(filtersObjectArray);
107
147
  closeFlyout();
@@ -160,7 +200,8 @@ var FilterFlyout = function FilterFlyout(_ref) {
160
200
  lastAppliedFilters.current = JSON.stringify(reactTableFiltersState);
161
201
  }, [reactTableFiltersState, lastAppliedFilters]);
162
202
  return /*#__PURE__*/_react.default.createElement("div", {
163
- className: "".concat(componentClass, "__container")
203
+ className: "".concat(componentClass, "__container"),
204
+ ref: filterFlyoutRef
164
205
  }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
165
206
  kind: "ghost",
166
207
  hasIconOnly: true,
@@ -171,14 +212,15 @@ var FilterFlyout = function FilterFlyout(_ref) {
171
212
  className: (0, _classnames.default)("".concat(componentClass, "__trigger"), (0, _defineProperty2.default)({}, "".concat(componentClass, "__trigger--open"), open)),
172
213
  disabled: data.length === 0
173
214
  }), /*#__PURE__*/_react.default.createElement("div", {
174
- ref: filterFlyoutRef,
215
+ ref: flyoutInnerRef,
175
216
  className: (0, _classnames.default)(componentClass, (_cx2 = {}, (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--open"), open), (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--batch"), showActionSet), (0, _defineProperty2.default)(_cx2, "".concat(componentClass, "--instant"), !showActionSet), _cx2))
176
217
  }, /*#__PURE__*/_react.default.createElement("div", {
177
218
  className: "".concat(componentClass, "__inner-container")
178
219
  }, /*#__PURE__*/_react.default.createElement("span", {
179
220
  className: "".concat(componentClass, "__title")
180
221
  }, title), /*#__PURE__*/_react.default.createElement("div", {
181
- className: "".concat(componentClass, "__filters")
222
+ className: (0, _classnames.default)("".concat(componentClass, "__filters"), (0, _defineProperty2.default)({}, "".concat(componentClass, "__stacked"), stackedLayout)),
223
+ ref: flyoutFiltersContainerRef
182
224
  }, renderFilters())), renderActionSet()));
183
225
  };
184
226
  FilterFlyout.propTypes = {
@@ -25,7 +25,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
25
25
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
26
26
  /* eslint-disable react/jsx-key */
27
27
  /**
28
- * Copyright IBM Corp. 2022, 2023
28
+ * Copyright IBM Corp. 2022, 2024
29
29
  *
30
30
  * This source code is licensed under the Apache-2.0 license found in the
31
31
  * LICENSE file in the root directory of this source tree.
@@ -112,6 +112,7 @@ var FilterPanel = function FilterPanel(_ref) {
112
112
  _useShouldDisableButt2 = (0, _slicedToArray2.default)(_useShouldDisableButt, 2),
113
113
  shouldDisableButtons = _useShouldDisableButt2[0],
114
114
  setShouldDisableButtons = _useShouldDisableButt2[1];
115
+ var shouldReduceMotion = (0, _framerMotion.useReducedMotion)();
115
116
 
116
117
  /** Memos */
117
118
  var showActionSet = (0, _react.useMemo)(function () {
@@ -156,6 +157,7 @@ var FilterPanel = function FilterPanel(_ref) {
156
157
  }],
157
158
  className: "".concat(componentClass, "__action-set"),
158
159
  ref: actionSetRef,
160
+ custom: shouldReduceMotion,
159
161
  variants: _variants.actionSetVariants
160
162
  });
161
163
  };
@@ -193,8 +195,10 @@ var FilterPanel = function FilterPanel(_ref) {
193
195
  className: (0, _classnames.default)(componentClass, "".concat(componentClass, "__container"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(componentClass, "--open"), panelOpen), (0, _defineProperty2.default)(_cx, "".concat(componentClass, "--batch"), showActionSet), (0, _defineProperty2.default)(_cx, "".concat(componentClass, "--instant"), !showActionSet), _cx)),
194
196
  initial: false,
195
197
  animate: panelOpen ? 'visible' : 'hidden',
198
+ custom: shouldReduceMotion,
196
199
  variants: _variants.panelVariants
197
200
  }, /*#__PURE__*/_react.default.createElement(_framerMotion.motion.div, {
201
+ custom: shouldReduceMotion,
198
202
  variants: _variants.innerContainerVariants
199
203
  }, /*#__PURE__*/_react.default.createElement("header", {
200
204
  ref: filterHeadingRef,
@@ -6,59 +6,81 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.panelVariants = exports.innerContainerVariants = exports.actionSetVariants = void 0;
7
7
  var _motionConstants = require("../../../../../../global/js/utils/motionConstants");
8
8
  var _constants = require("../constants");
9
+ /**
10
+ * Copyright IBM Corp. 2023, 2024
11
+ *
12
+ * This source code is licensed under the Apache-2.0 license found in the
13
+ * LICENSE file in the root directory of this source tree.
14
+ */
15
+
9
16
  var panelVariants = {
10
- hidden: {
11
- width: 0,
12
- overflow: 'hidden',
13
- transition: {
14
- duration: _motionConstants.DURATIONS.fast02,
15
- ease: _motionConstants.EASINGS.productive.exit,
16
- when: 'afterChildren'
17
- }
17
+ hidden: function hidden(shouldReduceMotion) {
18
+ return {
19
+ width: 0,
20
+ overflow: 'hidden',
21
+ transition: {
22
+ duration: shouldReduceMotion ? 0 : _motionConstants.DURATIONS.fast02,
23
+ ease: shouldReduceMotion ? 0 : _motionConstants.EASINGS.productive.exit,
24
+ when: 'afterChildren'
25
+ }
26
+ };
18
27
  },
19
- visible: {
20
- width: _constants.PANEL_WIDTH,
21
- overflow: 'visible',
22
- transition: {
23
- duration: _motionConstants.DURATIONS.moderate02,
24
- ease: _motionConstants.EASINGS.productive.entrance,
25
- when: 'beforeChildren'
26
- }
28
+ visible: function visible(shouldReduceMotion) {
29
+ return {
30
+ width: _constants.PANEL_WIDTH,
31
+ overflow: 'visible',
32
+ transition: {
33
+ duration: shouldReduceMotion ? 0 : _motionConstants.DURATIONS.moderate02,
34
+ ease: shouldReduceMotion ? 0 : _motionConstants.EASINGS.productive.entrance,
35
+ when: 'beforeChildren'
36
+ }
37
+ };
27
38
  }
28
39
  };
29
40
  exports.panelVariants = panelVariants;
30
41
  var innerContainerVariants = {
31
- hidden: {
32
- opacity: 0,
33
- transition: {
34
- duration: _motionConstants.DURATIONS.fast01,
35
- ease: _motionConstants.EASINGS.productive.exit
36
- }
42
+ hidden: function hidden(shouldReduceMotion) {
43
+ return {
44
+ opacity: 0,
45
+ transition: {
46
+ duration: shouldReduceMotion ? _motionConstants.DURATIONS.moderate01 : _motionConstants.DURATIONS.fast01,
47
+ ease: shouldReduceMotion ? 0 : _motionConstants.EASINGS.productive.exit
48
+ }
49
+ };
37
50
  },
38
- visible: {
39
- opacity: 1,
40
- transition: {
41
- duration: _motionConstants.DURATIONS.fast02,
42
- ease: _motionConstants.EASINGS.productive.entrance,
43
- when: 'beforeChildren'
44
- }
51
+ visible: function visible(shouldReduceMotion) {
52
+ return {
53
+ opacity: 1,
54
+ transition: {
55
+ duration: shouldReduceMotion ? _motionConstants.DURATIONS.moderate01 : _motionConstants.DURATIONS.fast02,
56
+ ease: shouldReduceMotion ? 0 : _motionConstants.EASINGS.productive.entrance,
57
+ when: shouldReduceMotion ? null : 'beforeChildren'
58
+ }
59
+ };
45
60
  }
46
61
  };
47
62
  exports.innerContainerVariants = innerContainerVariants;
48
63
  var actionSetVariants = {
49
- hidden: {
50
- y: _constants.ACTION_SET_HEIGHT,
51
- transition: {
52
- duration: _motionConstants.DURATIONS.fast01,
53
- ease: _motionConstants.EASINGS.productive.exit
54
- }
64
+ hidden: function hidden(shouldReduceMotion) {
65
+ return {
66
+ y: shouldReduceMotion ? 0 : _constants.ACTION_SET_HEIGHT,
67
+ opacity: shouldReduceMotion ? 0 : 1,
68
+ transition: {
69
+ duration: shouldReduceMotion ? _motionConstants.DURATIONS.moderate01 : _motionConstants.DURATIONS.fast01,
70
+ ease: shouldReduceMotion ? 0 : _motionConstants.EASINGS.productive.exit
71
+ }
72
+ };
55
73
  },
56
- visible: {
57
- y: 0,
58
- transition: {
59
- duration: _motionConstants.DURATIONS.fast02,
60
- ease: _motionConstants.EASINGS.productive.entrance
61
- }
74
+ visible: function visible(shouldReduceMotion) {
75
+ return {
76
+ y: 0,
77
+ opacity: 1,
78
+ transition: {
79
+ duration: shouldReduceMotion ? _motionConstants.DURATIONS.moderate01 : _motionConstants.DURATIONS.fast02,
80
+ ease: shouldReduceMotion ? 0 : _motionConstants.EASINGS.productive.entrance,
81
+ delay: shouldReduceMotion ? 0.075 : 0
82
+ }
83
+ };
62
84
  }
63
85
  };
64
86
  exports.actionSetVariants = actionSetVariants;
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": "1.65.0",
4
+ "version": "1.67.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -97,5 +97,5 @@
97
97
  "react": "^16.8.6 || ^17.0.1",
98
98
  "react-dom": "^16.8.6 || ^17.0.1"
99
99
  },
100
- "gitHead": "4d5770a9e051155c8559c650142f729f4187ac82"
100
+ "gitHead": "9d38cf405fc58bb75d8bab999816bf18c8d63167"
101
101
  }
@@ -1,10 +1,9 @@
1
- /*
2
- * Licensed Materials - Property of IBM
3
- * 5724-Q36
4
- * (c) Copyright IBM Corp. 2022
5
- * US Government Users Restricted Rights - Use, duplication or disclosure
6
- * restricted by GSA ADP Schedule Contract with IBM Corp.
7
- */
1
+ //
2
+ // Copyright IBM Corp. 2022, 2024
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
8
7
 
9
8
  // stylelint-disable carbon/layout-token-use
10
9
 
@@ -65,7 +64,7 @@ $action-set-height: rem(64px);
65
64
  .#{$block-class}-filter-flyout__filters {
66
65
  display: grid;
67
66
  gap: rem(16px) rem(32px);
68
- grid-template-columns: 1fr 1fr;
67
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
69
68
  }
70
69
 
71
70
  // Carbon overrides
@@ -78,3 +77,7 @@ $action-set-height: rem(64px);
78
77
  .#{$block-class}-filter-flyout .#{$carbon-prefix}--fieldset {
79
78
  margin-bottom: 0;
80
79
  }
80
+
81
+ .#{$block-class}-filter-flyout__stacked {
82
+ grid-template-columns: 1fr;
83
+ }
@@ -73,8 +73,7 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
73
73
  @include setPanelSize($size_value);
74
74
  .#{$block-class}__title-container.#{$block-class}__title-container--no-title-animation,
75
75
  .#{$block-class}__subtitle-text.#{$block-class}__subtitle-text-no-animation,
76
- .#{$block-class}__action-toolbar.#{$block-class}__action-toolbar-no-animation,
77
- .#{$block-class}__actions-container.#{$action-set-block-class}--#{$size} {
76
+ .#{$block-class}__action-toolbar.#{$block-class}__action-toolbar-no-animation {
78
77
  @include setPanelSize($size_value);
79
78
  }
80
79
  }
@@ -87,6 +86,9 @@ $action-set-block-class: #{$pkg-prefix}--action-set;
87
86
  border-right: 1px solid $decorative-01;
88
87
  }
89
88
  }
89
+ .#{$block-class}__actions-container {
90
+ width: 100%;
91
+ }
90
92
  &.#{$block-class}__container-with-action-toolbar.#{$block-class}__with-condensed-header {
91
93
  .#{$block-class}__title-container {
92
94
  &::before {