@atlaskit/select 18.1.0 → 18.1.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @atlaskit/select
2
2
 
3
+ ## 18.1.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#153221](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/153221)
8
+ [`e362b41d4b35f`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/e362b41d4b35f) -
9
+ This version removes `tab-event-should-close-popupSelect` feature flag. Tab and Shift+Tab now
10
+ dismisses the list of opened popup select options and allows users to navigate to next or previous
11
+ elements accordingly.
12
+
13
+ ## 18.1.1
14
+
15
+ ### Patch Changes
16
+
17
+ - [#150983](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/150983)
18
+ [`a06534942509c`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/a06534942509c) -
19
+ Remove `react-uid` and use an ID generator that is compatible with React16 and React 18; Strict
20
+ React 18 behind a flag.
21
+ - Updated dependencies
22
+
3
23
  ## 18.1.0
4
24
 
5
25
  ### Minor Changes
@@ -22,8 +22,8 @@ var _reactFocusLock = _interopRequireDefault(require("react-focus-lock"));
22
22
  var _reactFocusLockNext = _interopRequireDefault(require("react-focus-lock-next"));
23
23
  var _reactNodeResolver = _interopRequireDefault(require("react-node-resolver"));
24
24
  var _reactPopper = require("react-popper");
25
- var _reactUid = require("react-uid");
26
25
  var _shallowEqual = require("shallow-equal");
26
+ var _useId = require("@atlaskit/ds-lib/use-id");
27
27
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
28
28
  var _reactSelect = require("@atlaskit/react-select");
29
29
  var _colors = require("@atlaskit/theme/colors");
@@ -109,9 +109,6 @@ var PopupSelect = exports.default = /*#__PURE__*/function (_PureComponent) {
109
109
  mergedComponents: _components.defaultComponents,
110
110
  mergedPopperProps: defaultPopperProps
111
111
  });
112
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "popperWrapperId", "".concat((0, _reactUid.uid)({
113
- options: _this.props.options
114
- }), "-popup-select"));
115
112
  // Event Handlers
116
113
  // ==============================
117
114
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleTargetKeyDown", function (event) {
@@ -124,11 +121,9 @@ var PopupSelect = exports.default = /*#__PURE__*/function (_PureComponent) {
124
121
  });
125
122
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleKeyDown", function (event) {
126
123
  //We shouldn't close PopupSelect on tab event if there are custom interactive element.
127
- if ((0, _platformFeatureFlags.fg)('tab-event-should-close-popupSelect')) {
128
- var tabEvent = event.key === 'Tab' && event.shiftKey || event.key === 'Tab';
129
- if (_this.props.shouldCloseMenuOnTab && tabEvent) {
130
- _this.close();
131
- }
124
+ var tabEvent = event.key === 'Tab' && event.shiftKey || event.key === 'Tab';
125
+ if (_this.props.shouldCloseMenuOnTab && tabEvent) {
126
+ _this.close();
132
127
  }
133
128
  switch (event.key) {
134
129
  case 'Escape':
@@ -327,7 +322,7 @@ var PopupSelect = exports.default = /*#__PURE__*/function (_PureComponent) {
327
322
  });
328
323
  // Renderers
329
324
  // ==============================
330
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderSelect", function () {
325
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderSelect", function (id) {
331
326
  var _this$props5 = _this.props,
332
327
  footer = _this$props5.footer,
333
328
  label = _this$props5.label,
@@ -433,7 +428,7 @@ var PopupSelect = exports.default = /*#__PURE__*/function (_PureComponent) {
433
428
  "data-placement": placement,
434
429
  minWidth: minMenuWidth,
435
430
  maxWidth: maxMenuWidth,
436
- id: _this.popperWrapperId,
431
+ id: id,
437
432
  testId: testId,
438
433
  ref: !(0, _platformFeatureFlags.fg)('platform_design_system_team_select_node_resolver') ? null : _this.resolveMenuRef(ref)
439
434
  }, /*#__PURE__*/_react.default.createElement(FocusLock, {
@@ -515,17 +510,22 @@ var PopupSelect = exports.default = /*#__PURE__*/function (_PureComponent) {
515
510
  var _this3 = this;
516
511
  var target = this.props.target;
517
512
  var isOpen = this.state.isOpen;
518
- return /*#__PURE__*/_react.default.createElement(_reactPopper.Manager, null, /*#__PURE__*/_react.default.createElement(_reactPopper.Reference, null, function (_ref3) {
519
- var ref = _ref3.ref;
520
- return target && target({
521
- isOpen: isOpen,
522
- onKeyDown: _this3.handleTargetKeyDown,
523
- ref: _this3.resolveTargetRef(ref),
524
- 'aria-haspopup': 'true',
525
- 'aria-expanded': isOpen,
526
- 'aria-controls': isOpen ? _this3.popperWrapperId : undefined
527
- });
528
- }), this.renderSelect());
513
+ return /*#__PURE__*/_react.default.createElement(_reactPopper.Manager, null, /*#__PURE__*/_react.default.createElement(_useId.IdProvider, {
514
+ postfix: "-popup-select"
515
+ }, function (_ref3) {
516
+ var id = _ref3.id;
517
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactPopper.Reference, null, function (_ref4) {
518
+ var ref = _ref4.ref;
519
+ return target && target({
520
+ isOpen: isOpen,
521
+ onKeyDown: _this3.handleTargetKeyDown,
522
+ ref: _this3.resolveTargetRef(ref),
523
+ 'aria-haspopup': 'true',
524
+ 'aria-expanded': isOpen,
525
+ 'aria-controls': isOpen ? id : undefined
526
+ });
527
+ }), _this3.renderSelect(id));
528
+ }));
529
529
  }
530
530
  }], [{
531
531
  key: "getDerivedStateFromProps",
@@ -574,10 +574,10 @@ var PopupSelect = exports.default = /*#__PURE__*/function (_PureComponent) {
574
574
  * @param {(instance: HTMLDivElement) => void} props.innerRef - A ref callback to get the instance of the HTMLDivElement.
575
575
  * @returns {ReactElement} The children wrapped with NodeResolver if hasNodeResolver is true, otherwise just the children.
576
576
  */
577
- var ConditionalNodeResolverWrapper = function ConditionalNodeResolverWrapper(_ref4) {
578
- var hasNodeResolver = _ref4.hasNodeResolver,
579
- children = _ref4.children,
580
- innerRef = _ref4.innerRef;
577
+ var ConditionalNodeResolverWrapper = function ConditionalNodeResolverWrapper(_ref5) {
578
+ var hasNodeResolver = _ref5.hasNodeResolver,
579
+ children = _ref5.children,
580
+ innerRef = _ref5.innerRef;
581
581
  if (hasNodeResolver) {
582
582
  return /*#__PURE__*/_react.default.createElement(_reactNodeResolver.default, {
583
583
  innerRef: innerRef
@@ -11,7 +11,7 @@ var _createSelect = _interopRequireDefault(require("./createSelect"));
11
11
  /* eslint-disable @repo/internal/react/require-jsdoc */
12
12
 
13
13
  var packageName = "@atlaskit/select";
14
- var packageVersion = "18.1.0";
14
+ var packageVersion = "18.1.2";
15
15
  var SelectWithoutAnalytics = exports.SelectWithoutAnalytics = (0, _createSelect.default)(_reactSelect.default);
16
16
  var createAndFireEventOnAtlaskit = (0, _analyticsNext.createAndFireEvent)('atlaskit');
17
17
  var Select = (0, _analyticsNext.withAnalyticsContext)({
@@ -8,8 +8,8 @@ import FocusLockOld from 'react-focus-lock';
8
8
  import FocusLockNext from 'react-focus-lock-next';
9
9
  import NodeResolver from 'react-node-resolver';
10
10
  import { Manager, Popper, Reference } from 'react-popper';
11
- import { uid } from 'react-uid';
12
11
  import { shallowEqualObjects } from 'shallow-equal';
12
+ import { IdProvider } from '@atlaskit/ds-lib/use-id';
13
13
  import { fg } from '@atlaskit/platform-feature-flags';
14
14
  import { mergeStyles } from '@atlaskit/react-select';
15
15
  import { N80 } from '@atlaskit/theme/colors';
@@ -76,9 +76,6 @@ export default class PopupSelect extends PureComponent {
76
76
  mergedComponents: defaultComponents,
77
77
  mergedPopperProps: defaultPopperProps
78
78
  });
79
- _defineProperty(this, "popperWrapperId", `${uid({
80
- options: this.props.options
81
- })}-popup-select`);
82
79
  // Event Handlers
83
80
  // ==============================
84
81
  _defineProperty(this, "handleTargetKeyDown", event => {
@@ -91,11 +88,9 @@ export default class PopupSelect extends PureComponent {
91
88
  });
92
89
  _defineProperty(this, "handleKeyDown", event => {
93
90
  //We shouldn't close PopupSelect on tab event if there are custom interactive element.
94
- if (fg('tab-event-should-close-popupSelect')) {
95
- const tabEvent = event.key === 'Tab' && event.shiftKey || event.key === 'Tab';
96
- if (this.props.shouldCloseMenuOnTab && tabEvent) {
97
- this.close();
98
- }
91
+ const tabEvent = event.key === 'Tab' && event.shiftKey || event.key === 'Tab';
92
+ if (this.props.shouldCloseMenuOnTab && tabEvent) {
93
+ this.close();
99
94
  }
100
95
  switch (event.key) {
101
96
  case 'Escape':
@@ -299,7 +294,7 @@ export default class PopupSelect extends PureComponent {
299
294
  });
300
295
  // Renderers
301
296
  // ==============================
302
- _defineProperty(this, "renderSelect", () => {
297
+ _defineProperty(this, "renderSelect", id => {
303
298
  const {
304
299
  footer,
305
300
  label,
@@ -411,7 +406,7 @@ export default class PopupSelect extends PureComponent {
411
406
  "data-placement": placement,
412
407
  minWidth: minMenuWidth,
413
408
  maxWidth: maxMenuWidth,
414
- id: this.popperWrapperId,
409
+ id: id,
415
410
  testId: testId,
416
411
  ref: !fg('platform_design_system_team_select_node_resolver') ? null : this.resolveMenuRef(ref)
417
412
  }, /*#__PURE__*/React.createElement(FocusLock, {
@@ -513,7 +508,11 @@ export default class PopupSelect extends PureComponent {
513
508
  const {
514
509
  isOpen
515
510
  } = this.state;
516
- return /*#__PURE__*/React.createElement(Manager, null, /*#__PURE__*/React.createElement(Reference, null, ({
511
+ return /*#__PURE__*/React.createElement(Manager, null, /*#__PURE__*/React.createElement(IdProvider, {
512
+ postfix: "-popup-select"
513
+ }, ({
514
+ id
515
+ }) => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Reference, null, ({
517
516
  ref
518
517
  }) => target && target({
519
518
  isOpen,
@@ -521,8 +520,8 @@ export default class PopupSelect extends PureComponent {
521
520
  ref: this.resolveTargetRef(ref),
522
521
  'aria-haspopup': 'true',
523
522
  'aria-expanded': isOpen,
524
- 'aria-controls': isOpen ? this.popperWrapperId : undefined
525
- })), this.renderSelect());
523
+ 'aria-controls': isOpen ? id : undefined
524
+ })), this.renderSelect(id))));
526
525
  }
527
526
  }
528
527
  _defineProperty(PopupSelect, "defaultProps", {
@@ -3,7 +3,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
3
3
  import ReactSelect from '@atlaskit/react-select';
4
4
  import createSelect from './createSelect';
5
5
  const packageName = "@atlaskit/select";
6
- const packageVersion = "18.1.0";
6
+ const packageVersion = "18.1.2";
7
7
  export const SelectWithoutAnalytics = createSelect(ReactSelect);
8
8
  const createAndFireEventOnAtlaskit = createAndFireEvent('atlaskit');
9
9
  const Select = withAnalyticsContext({
@@ -20,8 +20,8 @@ import FocusLockOld from 'react-focus-lock';
20
20
  import FocusLockNext from 'react-focus-lock-next';
21
21
  import NodeResolver from 'react-node-resolver';
22
22
  import { Manager, Popper, Reference } from 'react-popper';
23
- import { uid } from 'react-uid';
24
23
  import { shallowEqualObjects } from 'shallow-equal';
24
+ import { IdProvider } from '@atlaskit/ds-lib/use-id';
25
25
  import { fg } from '@atlaskit/platform-feature-flags';
26
26
  import { mergeStyles } from '@atlaskit/react-select';
27
27
  import { N80 } from '@atlaskit/theme/colors';
@@ -100,9 +100,6 @@ var PopupSelect = /*#__PURE__*/function (_PureComponent) {
100
100
  mergedComponents: defaultComponents,
101
101
  mergedPopperProps: defaultPopperProps
102
102
  });
103
- _defineProperty(_assertThisInitialized(_this), "popperWrapperId", "".concat(uid({
104
- options: _this.props.options
105
- }), "-popup-select"));
106
103
  // Event Handlers
107
104
  // ==============================
108
105
  _defineProperty(_assertThisInitialized(_this), "handleTargetKeyDown", function (event) {
@@ -115,11 +112,9 @@ var PopupSelect = /*#__PURE__*/function (_PureComponent) {
115
112
  });
116
113
  _defineProperty(_assertThisInitialized(_this), "handleKeyDown", function (event) {
117
114
  //We shouldn't close PopupSelect on tab event if there are custom interactive element.
118
- if (fg('tab-event-should-close-popupSelect')) {
119
- var tabEvent = event.key === 'Tab' && event.shiftKey || event.key === 'Tab';
120
- if (_this.props.shouldCloseMenuOnTab && tabEvent) {
121
- _this.close();
122
- }
115
+ var tabEvent = event.key === 'Tab' && event.shiftKey || event.key === 'Tab';
116
+ if (_this.props.shouldCloseMenuOnTab && tabEvent) {
117
+ _this.close();
123
118
  }
124
119
  switch (event.key) {
125
120
  case 'Escape':
@@ -318,7 +313,7 @@ var PopupSelect = /*#__PURE__*/function (_PureComponent) {
318
313
  });
319
314
  // Renderers
320
315
  // ==============================
321
- _defineProperty(_assertThisInitialized(_this), "renderSelect", function () {
316
+ _defineProperty(_assertThisInitialized(_this), "renderSelect", function (id) {
322
317
  var _this$props5 = _this.props,
323
318
  footer = _this$props5.footer,
324
319
  label = _this$props5.label,
@@ -424,7 +419,7 @@ var PopupSelect = /*#__PURE__*/function (_PureComponent) {
424
419
  "data-placement": placement,
425
420
  minWidth: minMenuWidth,
426
421
  maxWidth: maxMenuWidth,
427
- id: _this.popperWrapperId,
422
+ id: id,
428
423
  testId: testId,
429
424
  ref: !fg('platform_design_system_team_select_node_resolver') ? null : _this.resolveMenuRef(ref)
430
425
  }, /*#__PURE__*/React.createElement(FocusLock, {
@@ -506,17 +501,22 @@ var PopupSelect = /*#__PURE__*/function (_PureComponent) {
506
501
  var _this3 = this;
507
502
  var target = this.props.target;
508
503
  var isOpen = this.state.isOpen;
509
- return /*#__PURE__*/React.createElement(Manager, null, /*#__PURE__*/React.createElement(Reference, null, function (_ref3) {
510
- var ref = _ref3.ref;
511
- return target && target({
512
- isOpen: isOpen,
513
- onKeyDown: _this3.handleTargetKeyDown,
514
- ref: _this3.resolveTargetRef(ref),
515
- 'aria-haspopup': 'true',
516
- 'aria-expanded': isOpen,
517
- 'aria-controls': isOpen ? _this3.popperWrapperId : undefined
518
- });
519
- }), this.renderSelect());
504
+ return /*#__PURE__*/React.createElement(Manager, null, /*#__PURE__*/React.createElement(IdProvider, {
505
+ postfix: "-popup-select"
506
+ }, function (_ref3) {
507
+ var id = _ref3.id;
508
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Reference, null, function (_ref4) {
509
+ var ref = _ref4.ref;
510
+ return target && target({
511
+ isOpen: isOpen,
512
+ onKeyDown: _this3.handleTargetKeyDown,
513
+ ref: _this3.resolveTargetRef(ref),
514
+ 'aria-haspopup': 'true',
515
+ 'aria-expanded': isOpen,
516
+ 'aria-controls': isOpen ? id : undefined
517
+ });
518
+ }), _this3.renderSelect(id));
519
+ }));
520
520
  }
521
521
  }], [{
522
522
  key: "getDerivedStateFromProps",
@@ -566,10 +566,10 @@ export { PopupSelect as default };
566
566
  * @param {(instance: HTMLDivElement) => void} props.innerRef - A ref callback to get the instance of the HTMLDivElement.
567
567
  * @returns {ReactElement} The children wrapped with NodeResolver if hasNodeResolver is true, otherwise just the children.
568
568
  */
569
- var ConditionalNodeResolverWrapper = function ConditionalNodeResolverWrapper(_ref4) {
570
- var hasNodeResolver = _ref4.hasNodeResolver,
571
- children = _ref4.children,
572
- innerRef = _ref4.innerRef;
569
+ var ConditionalNodeResolverWrapper = function ConditionalNodeResolverWrapper(_ref5) {
570
+ var hasNodeResolver = _ref5.hasNodeResolver,
571
+ children = _ref5.children,
572
+ innerRef = _ref5.innerRef;
573
573
  if (hasNodeResolver) {
574
574
  return /*#__PURE__*/React.createElement(NodeResolver, {
575
575
  innerRef: innerRef
@@ -3,7 +3,7 @@ import { createAndFireEvent, withAnalyticsContext, withAnalyticsEvents } from '@
3
3
  import ReactSelect from '@atlaskit/react-select';
4
4
  import createSelect from './createSelect';
5
5
  var packageName = "@atlaskit/select";
6
- var packageVersion = "18.1.0";
6
+ var packageVersion = "18.1.2";
7
7
  export var SelectWithoutAnalytics = createSelect(ReactSelect);
8
8
  var createAndFireEventOnAtlaskit = createAndFireEvent('atlaskit');
9
9
  var Select = withAnalyticsContext({
@@ -119,7 +119,6 @@ export default class PopupSelect<Option = OptionType, IsMulti extends boolean =
119
119
  };
120
120
  mergedPopperProps: PopperPropsNoChildren<string>;
121
121
  };
122
- popperWrapperId: string;
123
122
  static defaultProps: {
124
123
  closeMenuOnSelect: boolean;
125
124
  shouldCloseMenuOnTab: boolean;
@@ -164,7 +163,7 @@ export default class PopupSelect<Option = OptionType, IsMulti extends boolean =
164
163
  getItemCount: () => number;
165
164
  getMaxHeight: () => number | undefined;
166
165
  showSearchControl: () => boolean | undefined;
167
- renderSelect: () => JSX.Element | null;
166
+ renderSelect: (id: string) => JSX.Element | null;
168
167
  render(): JSX.Element;
169
168
  }
170
169
  export {};
@@ -119,7 +119,6 @@ export default class PopupSelect<Option = OptionType, IsMulti extends boolean =
119
119
  };
120
120
  mergedPopperProps: PopperPropsNoChildren<string>;
121
121
  };
122
- popperWrapperId: string;
123
122
  static defaultProps: {
124
123
  closeMenuOnSelect: boolean;
125
124
  shouldCloseMenuOnTab: boolean;
@@ -164,7 +163,7 @@ export default class PopupSelect<Option = OptionType, IsMulti extends boolean =
164
163
  getItemCount: () => number;
165
164
  getMaxHeight: () => number | undefined;
166
165
  showSearchControl: () => boolean | undefined;
167
- renderSelect: () => JSX.Element | null;
166
+ renderSelect: (id: string) => JSX.Element | null;
168
167
  render(): JSX.Element;
169
168
  }
170
169
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/select",
3
- "version": "18.1.0",
3
+ "version": "18.1.2",
4
4
  "description": "Select allows users to make a single selection or multiple selections from a list of options.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -39,12 +39,13 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "@atlaskit/analytics-next": "^10.1.0",
42
+ "@atlaskit/ds-lib": "^3.1.0",
42
43
  "@atlaskit/icon": "^22.22.0",
43
44
  "@atlaskit/platform-feature-flags": "^0.3.0",
44
45
  "@atlaskit/primitives": "^12.2.0",
45
46
  "@atlaskit/react-select": "^1.0.1",
46
47
  "@atlaskit/spinner": "^16.3.0",
47
- "@atlaskit/theme": "^13.0.0",
48
+ "@atlaskit/theme": "^13.1.0",
48
49
  "@atlaskit/tokens": "^2.0.0",
49
50
  "@atlaskit/visually-hidden": "^1.5.0",
50
51
  "@babel/runtime": "^7.0.0",
@@ -55,7 +56,6 @@
55
56
  "react-focus-lock-next": "npm:react-focus-lock@^2.13.2",
56
57
  "react-node-resolver": "^1.0.1",
57
58
  "react-popper": "^2.3.0",
58
- "react-uid": "^2.2.0",
59
59
  "shallow-equal": "^3.1.0"
60
60
  },
61
61
  "peerDependencies": {
@@ -67,7 +67,6 @@
67
67
  "@af/integration-testing": "*",
68
68
  "@af/visual-regression": "*",
69
69
  "@atlaskit/checkbox": "^14.0.0",
70
- "@atlaskit/ds-lib": "^3.0.0",
71
70
  "@atlaskit/modal-dialog": "^12.17.0",
72
71
  "@atlaskit/radio": "^6.5.0",
73
72
  "@atlaskit/ssr": "*",
@@ -109,9 +108,6 @@
109
108
  "platform-visual-refresh-icons-legacy-facade": {
110
109
  "type": "boolean"
111
110
  },
112
- "tab-event-should-close-popupSelect": {
113
- "type": "boolean"
114
- },
115
111
  "platform_dst_select-bump-react-focus-lock": {
116
112
  "type": "boolean"
117
113
  }