@atlaskit/link-datasource 1.19.11 → 1.19.13

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 (25) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/analytics/constants.js +1 -1
  3. package/dist/cjs/ui/assets-modal/search-container/styled.js +1 -1
  4. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +14 -1
  5. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +11 -1
  6. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.js +8 -5
  7. package/dist/cjs/ui/jira-issues-modal/basic-filters/ui/index.js +13 -3
  8. package/dist/cjs/ui/jira-issues-modal/jira-search-container/index.js +9 -13
  9. package/dist/es2019/analytics/constants.js +1 -1
  10. package/dist/es2019/ui/assets-modal/search-container/styled.js +2 -1
  11. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +14 -1
  12. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +11 -1
  13. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.js +8 -5
  14. package/dist/es2019/ui/jira-issues-modal/basic-filters/ui/index.js +7 -2
  15. package/dist/es2019/ui/jira-issues-modal/jira-search-container/index.js +10 -13
  16. package/dist/esm/analytics/constants.js +1 -1
  17. package/dist/esm/ui/assets-modal/search-container/styled.js +1 -1
  18. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/formatOptionLabel.js +14 -1
  19. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/index.js +11 -1
  20. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/async-popup-select/trigger.js +8 -5
  21. package/dist/esm/ui/jira-issues-modal/basic-filters/ui/index.js +10 -3
  22. package/dist/esm/ui/jira-issues-modal/jira-search-container/index.js +8 -11
  23. package/dist/types/ui/jira-issues-modal/basic-filters/ui/index.d.ts +2 -1
  24. package/dist/types-ts4.5/ui/jira-issues-modal/basic-filters/ui/index.d.ts +2 -1
  25. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 1.19.13
4
+
5
+ ### Patch Changes
6
+
7
+ - [#57773](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/57773) [`a2e16053a3dd`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/a2e16053a3dd) - Added group icon and clear search text when popup opens.
8
+ - [#57739](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/57739) [`c1ca80ef5958`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/c1ca80ef5958) - Update filter tigger button logic to show hydration loader only if the filter has value.
9
+ - [#57513](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/57513) [`e0ce3402d2c9`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/e0ce3402d2c9) - [ux] make schema drop down selector wider
10
+ - Updated dependencies
11
+
12
+ ## 1.19.12
13
+
14
+ ### Patch Changes
15
+
16
+ - [#57143](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/57143) [`9b8b89c7c87e`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/9b8b89c7c87e) - Remove redundant selection handler for basic filter selection.
17
+
3
18
  ## 1.19.11
4
19
 
5
20
  ### Patch Changes
@@ -7,5 +7,5 @@ exports.packageMetaData = exports.EVENT_CHANNEL = void 0;
7
7
  var EVENT_CHANNEL = exports.EVENT_CHANNEL = 'media';
8
8
  var packageMetaData = exports.packageMetaData = {
9
9
  packageName: "@atlaskit/link-datasource",
10
- packageVersion: "1.19.11"
10
+ packageVersion: "1.19.13"
11
11
  };
@@ -15,4 +15,4 @@ var FormContainer = exports.FormContainer = _styled.default.form(_templateObject
15
15
 
16
16
  // Override the top margin of fields
17
17
  var FieldContainer = exports.FieldContainer = _styled.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n flex: 1;\n margin-top: ", ";\n"])), "var(--ds-space-negative-100, -8px)");
18
- var SchemaSelectContainer = exports.SchemaSelectContainer = _styled.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n width: 200px;\n"])));
18
+ var SchemaSelectContainer = exports.SchemaSelectContainer = _styled.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n width: 100%;\n max-width: 386px;\n"])));
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _avatar = _interopRequireDefault(require("@atlaskit/avatar"));
10
+ var _peopleGroup = _interopRequireDefault(require("@atlaskit/icon/glyph/people-group"));
10
11
  var _lozenge = _interopRequireDefault(require("@atlaskit/lozenge"));
11
12
  var _primitives = require("@atlaskit/primitives");
12
13
  var commonLabelStyles = (0, _primitives.xcss)({
@@ -16,6 +17,11 @@ var commonLabelStyles = (0, _primitives.xcss)({
16
17
  var avatarOptionLabelStyles = (0, _primitives.xcss)({
17
18
  marginLeft: 'space.050'
18
19
  });
20
+ var groupWrapperStyles = (0, _primitives.xcss)({
21
+ width: "var(--ds-space-250, 20px)",
22
+ minWidth: "var(--ds-space-250, 20px)",
23
+ height: "var(--ds-space-250, 20px)"
24
+ });
19
25
  var IconOptionLabel = function IconOptionLabel(_ref) {
20
26
  var data = _ref.data;
21
27
  var label = data.label,
@@ -48,7 +54,14 @@ var AvatarOptionLabel = function AvatarOptionLabel(_ref3) {
48
54
  return /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
49
55
  alignItems: "center",
50
56
  testId: testId || 'jlol-basic-filter-popup-select-option--avatar'
51
- }, /*#__PURE__*/_react.default.createElement(_avatar.default, {
57
+ }, data.isGroup ? /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
58
+ alignItems: "center",
59
+ justifyContent: "center",
60
+ xcss: groupWrapperStyles
61
+ }, /*#__PURE__*/_react.default.createElement(_peopleGroup.default, {
62
+ size: "small",
63
+ label: ""
64
+ })) : /*#__PURE__*/_react.default.createElement(_avatar.default, {
52
65
  appearance: data.isSquare ? 'square' : 'circle',
53
66
  src: data.avatar,
54
67
  size: "xsmall"
@@ -172,11 +172,21 @@ var AsyncPopupSelect = function AsyncPopupSelect(_ref) {
172
172
  });
173
173
  }, [fetchFilterOptions, filterType, fireEvent, searchTerm, selectedOptions.length, sortOptionsOnPopupOpen, status]);
174
174
  var handleMenuClose = (0, _react.useCallback)(function () {
175
+ /**
176
+ * Clearing the search is to ensure that the sortOptionsOnPopupOpen logic does not mess up.
177
+ * Without this, when the user opens, sortOptionsOnPopupOpen will inject the selected options to the list and the list count and values will be off
178
+ */
179
+ if (searchTerm) {
180
+ handleInputChange('', {
181
+ action: 'input-change',
182
+ prevInputValue: searchTerm
183
+ });
184
+ }
175
185
  fireEvent('ui.dropdown.closed.basicSearchDropdown', {
176
186
  filterType: filterType,
177
187
  selectionCount: selectedOptions.length
178
188
  });
179
- }, [filterType, fireEvent, selectedOptions.length]);
189
+ }, [filterType, fireEvent, handleInputChange, searchTerm, selectedOptions.length]);
180
190
  (0, _react.useEffect)(function () {
181
191
  if (status === 'resolved') {
182
192
  sortOptionsOnResolve();
@@ -52,13 +52,15 @@ var PopupTrigger = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
52
52
  firstOption = _ref3[0];
53
53
  var hasOptions = selectedOptions && selectedOptions.length > 0;
54
54
  var showButtonLoading = !isDisabled && isLoading;
55
+ var testId = "jlol-basic-filter-".concat(filterType, "-trigger");
55
56
  var LoadingButton = (0, _react.useCallback)(function () {
56
57
  return /*#__PURE__*/_react.default.createElement(LoadingStateAnimationWrapper, null, /*#__PURE__*/_react.default.createElement(_standardButton.default, {
57
58
  iconAfter: /*#__PURE__*/_react.default.createElement(_spinner.default, {
58
59
  size: 'xsmall'
59
- })
60
+ }),
61
+ testId: "".concat(testId, "--loading-button")
60
62
  }, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.asyncPopupSelectMessages["".concat(filterType, "Label")])));
61
- }, [filterType]);
63
+ }, [filterType, testId]);
62
64
  var DefaultButton = (0, _react.useCallback)(function () {
63
65
  return /*#__PURE__*/_react.default.createElement(_standardButton.default, {
64
66
  appearance: "default",
@@ -66,7 +68,8 @@ var PopupTrigger = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
66
68
  isDisabled: isDisabled,
67
69
  iconAfter: /*#__PURE__*/_react.default.createElement(_chevronDown.default, {
68
70
  label: ""
69
- })
71
+ }),
72
+ testId: "".concat(testId, "--button")
70
73
  }, /*#__PURE__*/_react.default.createElement(_primitives.Flex, null, /*#__PURE__*/_react.default.createElement(_primitives.Box, {
71
74
  xcss: triggerButtonLabelStyles
72
75
  }, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.asyncPopupSelectMessages["".concat(filterType, "Label")]), firstOption && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, ": ", firstOption.label)), selectedOptions && selectedOptions.length > 1 && /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
@@ -75,7 +78,7 @@ var PopupTrigger = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
75
78
  }, /*#__PURE__*/_react.default.createElement(_badge.default, {
76
79
  appearance: "primary"
77
80
  }, "+", selectedOptions.length - 1))));
78
- }, [filterType, firstOption, hasOptions, isDisabled, isSelected, selectedOptions]);
81
+ }, [filterType, firstOption, hasOptions, isDisabled, isSelected, selectedOptions, testId]);
79
82
 
80
83
  /**
81
84
  * We had an issue with the popup component referencing a stale DOM ref for the trigger button.
@@ -83,7 +86,7 @@ var PopupTrigger = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
83
86
  */
84
87
  return /*#__PURE__*/_react.default.createElement(_primitives.Box, {
85
88
  ref: ref,
86
- testId: "jlol-basic-filter-".concat(filterType, "-trigger")
89
+ testId: testId
87
90
  }, showButtonLoading ? /*#__PURE__*/_react.default.createElement(LoadingButton, null) : /*#__PURE__*/_react.default.createElement(DefaultButton, null));
88
91
  });
89
92
  var _default = exports.default = PopupTrigger;
@@ -1,33 +1,43 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = exports.availableBasicFilterTypes = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
+ var _react = _interopRequireWildcard(require("react"));
9
10
  var _primitives = require("@atlaskit/primitives");
11
+ var _extractValuesFromNonComplexJQL = require("../utils/extractValuesFromNonComplexJQL");
10
12
  var _asyncPopupSelect = _interopRequireDefault(require("./async-popup-select"));
13
+ 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); }
14
+ 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; }
11
15
  var availableBasicFilterTypes = exports.availableBasicFilterTypes = ['project', 'type', 'status', 'assignee'];
12
16
  var basicFilterContainerStyles = (0, _primitives.xcss)({
13
17
  paddingLeft: "var(--ds-space-100, 8px)"
14
18
  });
15
19
  var BasicFilterContainer = function BasicFilterContainer(_ref) {
16
- var cloudId = _ref.cloudId,
20
+ var jql = _ref.jql,
21
+ cloudId = _ref.cloudId,
17
22
  onChange = _ref.onChange,
18
23
  selections = _ref.selections,
19
24
  isJQLHydrating = _ref.isJQLHydrating;
25
+ var extractedFilterValues = (0, _react.useMemo)(function () {
26
+ return isJQLHydrating ? (0, _extractValuesFromNonComplexJQL.extractValuesFromNonComplexJQL)(jql) : {};
27
+ }, [isJQLHydrating, jql]);
20
28
  return /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
21
29
  xcss: basicFilterContainerStyles,
22
30
  gap: "space.100",
23
31
  testId: "jlol-basic-filter-container"
24
32
  }, availableBasicFilterTypes.map(function (filter) {
33
+ var _extractedFilterValue;
34
+ var shouldShowHydrationLoader = isJQLHydrating && ((_extractedFilterValue = extractedFilterValues[filter]) === null || _extractedFilterValue === void 0 ? void 0 : _extractedFilterValue.length) > 0;
25
35
  return /*#__PURE__*/_react.default.createElement(_asyncPopupSelect.default, {
26
36
  cloudId: cloudId,
27
37
  filterType: filter,
28
38
  key: filter,
29
39
  selection: selections[filter] || [],
30
- isJQLHydrating: isJQLHydrating,
40
+ isJQLHydrating: shouldShowHydrationLoader,
31
41
  isDisabled: !cloudId,
32
42
  onSelectionChange: onChange
33
43
  });
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.JiraSearchContainer = exports.DEFAULT_JQL_QUERY = exports.ALLOWED_ORDER_BY_KEYS = void 0;
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
9
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
  var _react2 = require("@emotion/react");
@@ -26,11 +26,10 @@ var _modeSwitcher = require("../mode-switcher");
26
26
  var _buildJQL = require("./buildJQL");
27
27
  var _messages = require("./messages");
28
28
  var _excluded = ["basicInputTextValue"];
29
- /** @jsx jsx */
30
29
  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); }
31
30
  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; }
32
31
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
33
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
32
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /** @jsx jsx */
34
33
  var inputContainerStyles = (0, _react2.css)({
35
34
  alignItems: 'baseline',
36
35
  display: 'flex',
@@ -168,10 +167,11 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
168
167
  }, _asyncPopupSelect.SEARCH_DEBOUNCE_MS),
169
168
  _useDebouncedCallback2 = (0, _slicedToArray2.default)(_useDebouncedCallback, 1),
170
169
  debouncedBasicFilterSelectionChange = _useDebouncedCallback2[0];
171
- var handleBasicFilterSelectionChange = (0, _react.useCallback)(function (filterValues) {
172
- setFilterSelections(filterValues);
173
- debouncedBasicFilterSelectionChange(filterValues);
174
- }, [debouncedBasicFilterSelectionChange]);
170
+ var handleBasicFilterSelectionChange = (0, _react.useCallback)(function (filterType, options) {
171
+ var updatedSelection = _objectSpread(_objectSpread({}, filterSelections), {}, (0, _defineProperty2.default)({}, filterType, options));
172
+ setFilterSelections(updatedSelection);
173
+ debouncedBasicFilterSelectionChange(updatedSelection);
174
+ }, [debouncedBasicFilterSelectionChange, filterSelections]);
175
175
  (0, _react.useEffect)(function () {
176
176
  var isCurrentQueryComplex = (0, _isQueryTooComplex.isQueryTooComplex)(jql);
177
177
  setIsComplexQuery(isCurrentQueryComplex);
@@ -190,11 +190,6 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
190
190
  }
191
191
  }
192
192
  }, [hydratedOptions, basicFilterHydrationStatus]);
193
- var handleSelectionChange = (0, _react.useCallback)(function (filterType, options) {
194
- var updatedSelection = _objectSpread(_objectSpread({}, filterSelections), {}, (0, _defineProperty2.default)({}, filterType, options));
195
- setFilterSelections(updatedSelection);
196
- handleBasicFilterSelectionChange(updatedSelection);
197
- }, [handleBasicFilterSelectionChange, filterSelections]);
198
193
  (0, _react.useEffect)(function () {
199
194
  if (currentCloudId !== cloudId) {
200
195
  setBasicSearchTerm('');
@@ -218,8 +213,9 @@ var JiraSearchContainer = exports.JiraSearchContainer = function JiraSearchConta
218
213
  onSearch: handleSearch,
219
214
  searchTerm: basicSearchTerm
220
215
  }), showBasicFilters && (0, _react2.jsx)(_basicFilters.BasicFilters, {
216
+ jql: jql,
221
217
  cloudId: cloudId || '',
222
- onChange: handleSelectionChange,
218
+ onChange: handleBasicFilterSelectionChange,
223
219
  selections: filterSelections,
224
220
  isJQLHydrating: basicFilterHydrationStatus === 'loading'
225
221
  })), currentSearchMethod === 'jql' && (0, _react2.jsx)(_jqlEditor.JiraJQLEditor, {
@@ -1,5 +1,5 @@
1
1
  export const EVENT_CHANNEL = 'media';
2
2
  export const packageMetaData = {
3
3
  packageName: "@atlaskit/link-datasource",
4
- packageVersion: "1.19.11"
4
+ packageVersion: "1.19.13"
5
5
  };
@@ -18,5 +18,6 @@ export const FieldContainer = styled.div`
18
18
  margin-top: ${"var(--ds-space-negative-100, -8px)"};
19
19
  `;
20
20
  export const SchemaSelectContainer = styled.div`
21
- width: 200px;
21
+ width: 100%;
22
+ max-width: 386px;
22
23
  `;
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import Avatar from '@atlaskit/avatar';
3
+ import PeopleGroupIcon from '@atlaskit/icon/glyph/people-group';
3
4
  import Lozenge from '@atlaskit/lozenge';
4
5
  import { Box, Flex, xcss } from '@atlaskit/primitives';
5
6
  const commonLabelStyles = xcss({
@@ -9,6 +10,11 @@ const commonLabelStyles = xcss({
9
10
  const avatarOptionLabelStyles = xcss({
10
11
  marginLeft: 'space.050'
11
12
  });
13
+ const groupWrapperStyles = xcss({
14
+ width: "var(--ds-space-250, 20px)",
15
+ minWidth: "var(--ds-space-250, 20px)",
16
+ height: "var(--ds-space-250, 20px)"
17
+ });
12
18
  const IconOptionLabel = ({
13
19
  data
14
20
  }) => {
@@ -46,7 +52,14 @@ const AvatarOptionLabel = ({
46
52
  return /*#__PURE__*/React.createElement(Flex, {
47
53
  alignItems: "center",
48
54
  testId: testId || 'jlol-basic-filter-popup-select-option--avatar'
49
- }, /*#__PURE__*/React.createElement(Avatar, {
55
+ }, data.isGroup ? /*#__PURE__*/React.createElement(Flex, {
56
+ alignItems: "center",
57
+ justifyContent: "center",
58
+ xcss: groupWrapperStyles
59
+ }, /*#__PURE__*/React.createElement(PeopleGroupIcon, {
60
+ size: "small",
61
+ label: ""
62
+ })) : /*#__PURE__*/React.createElement(Avatar, {
50
63
  appearance: data.isSquare ? 'square' : 'circle',
51
64
  src: data.avatar,
52
65
  size: "xsmall"
@@ -124,11 +124,21 @@ const AsyncPopupSelect = ({
124
124
  });
125
125
  }, [fetchFilterOptions, filterType, fireEvent, searchTerm, selectedOptions.length, sortOptionsOnPopupOpen, status]);
126
126
  const handleMenuClose = useCallback(() => {
127
+ /**
128
+ * Clearing the search is to ensure that the sortOptionsOnPopupOpen logic does not mess up.
129
+ * Without this, when the user opens, sortOptionsOnPopupOpen will inject the selected options to the list and the list count and values will be off
130
+ */
131
+ if (searchTerm) {
132
+ handleInputChange('', {
133
+ action: 'input-change',
134
+ prevInputValue: searchTerm
135
+ });
136
+ }
127
137
  fireEvent('ui.dropdown.closed.basicSearchDropdown', {
128
138
  filterType,
129
139
  selectionCount: selectedOptions.length
130
140
  });
131
- }, [filterType, fireEvent, selectedOptions.length]);
141
+ }, [filterType, fireEvent, handleInputChange, searchTerm, selectedOptions.length]);
132
142
  useEffect(() => {
133
143
  if (status === 'resolved') {
134
144
  sortOptionsOnResolve();
@@ -40,18 +40,21 @@ const PopupTrigger = /*#__PURE__*/forwardRef(({
40
40
  const [firstOption] = selectedOptions || [];
41
41
  const hasOptions = selectedOptions && selectedOptions.length > 0;
42
42
  const showButtonLoading = !isDisabled && isLoading;
43
+ const testId = `jlol-basic-filter-${filterType}-trigger`;
43
44
  const LoadingButton = useCallback(() => /*#__PURE__*/React.createElement(LoadingStateAnimationWrapper, null, /*#__PURE__*/React.createElement(Button, {
44
45
  iconAfter: /*#__PURE__*/React.createElement(Spinner, {
45
46
  size: 'xsmall'
46
- })
47
- }, /*#__PURE__*/React.createElement(FormattedMessage, asyncPopupSelectMessages[`${filterType}Label`]))), [filterType]);
47
+ }),
48
+ testId: `${testId}--loading-button`
49
+ }, /*#__PURE__*/React.createElement(FormattedMessage, asyncPopupSelectMessages[`${filterType}Label`]))), [filterType, testId]);
48
50
  const DefaultButton = useCallback(() => /*#__PURE__*/React.createElement(Button, {
49
51
  appearance: "default",
50
52
  isSelected: isSelected || hasOptions,
51
53
  isDisabled: isDisabled,
52
54
  iconAfter: /*#__PURE__*/React.createElement(ChevronDownIcon, {
53
55
  label: ""
54
- })
56
+ }),
57
+ testId: `${testId}--button`
55
58
  }, /*#__PURE__*/React.createElement(Flex, null, /*#__PURE__*/React.createElement(Box, {
56
59
  xcss: triggerButtonLabelStyles
57
60
  }, /*#__PURE__*/React.createElement(FormattedMessage, asyncPopupSelectMessages[`${filterType}Label`]), firstOption && /*#__PURE__*/React.createElement(React.Fragment, null, ": ", firstOption.label)), selectedOptions && selectedOptions.length > 1 && /*#__PURE__*/React.createElement(Flex, {
@@ -59,7 +62,7 @@ const PopupTrigger = /*#__PURE__*/forwardRef(({
59
62
  alignItems: "center"
60
63
  }, /*#__PURE__*/React.createElement(Badge, {
61
64
  appearance: "primary"
62
- }, "+", selectedOptions.length - 1)))), [filterType, firstOption, hasOptions, isDisabled, isSelected, selectedOptions]);
65
+ }, "+", selectedOptions.length - 1)))), [filterType, firstOption, hasOptions, isDisabled, isSelected, selectedOptions, testId]);
63
66
 
64
67
  /**
65
68
  * We had an issue with the popup component referencing a stale DOM ref for the trigger button.
@@ -67,7 +70,7 @@ const PopupTrigger = /*#__PURE__*/forwardRef(({
67
70
  */
68
71
  return /*#__PURE__*/React.createElement(Box, {
69
72
  ref: ref,
70
- testId: `jlol-basic-filter-${filterType}-trigger`
73
+ testId: testId
71
74
  }, showButtonLoading ? /*#__PURE__*/React.createElement(LoadingButton, null) : /*#__PURE__*/React.createElement(DefaultButton, null));
72
75
  });
73
76
  export default PopupTrigger;
@@ -1,27 +1,32 @@
1
- import React from 'react';
1
+ import React, { useMemo } from 'react';
2
2
  import { Flex, xcss } from '@atlaskit/primitives';
3
+ import { extractValuesFromNonComplexJQL } from '../utils/extractValuesFromNonComplexJQL';
3
4
  import AsyncPopupSelect from './async-popup-select';
4
5
  export const availableBasicFilterTypes = ['project', 'type', 'status', 'assignee'];
5
6
  const basicFilterContainerStyles = xcss({
6
7
  paddingLeft: "var(--ds-space-100, 8px)"
7
8
  });
8
9
  const BasicFilterContainer = ({
10
+ jql,
9
11
  cloudId,
10
12
  onChange,
11
13
  selections,
12
14
  isJQLHydrating
13
15
  }) => {
16
+ const extractedFilterValues = useMemo(() => isJQLHydrating ? extractValuesFromNonComplexJQL(jql) : {}, [isJQLHydrating, jql]);
14
17
  return /*#__PURE__*/React.createElement(Flex, {
15
18
  xcss: basicFilterContainerStyles,
16
19
  gap: "space.100",
17
20
  testId: "jlol-basic-filter-container"
18
21
  }, availableBasicFilterTypes.map(filter => {
22
+ var _extractedFilterValue;
23
+ const shouldShowHydrationLoader = isJQLHydrating && ((_extractedFilterValue = extractedFilterValues[filter]) === null || _extractedFilterValue === void 0 ? void 0 : _extractedFilterValue.length) > 0;
19
24
  return /*#__PURE__*/React.createElement(AsyncPopupSelect, {
20
25
  cloudId: cloudId,
21
26
  filterType: filter,
22
27
  key: filter,
23
28
  selection: selections[filter] || [],
24
- isJQLHydrating: isJQLHydrating,
29
+ isJQLHydrating: shouldShowHydrationLoader,
25
30
  isDisabled: !cloudId,
26
31
  onSelectionChange: onChange
27
32
  });
@@ -130,10 +130,14 @@ export const JiraSearchContainer = props => {
130
130
  isQueryComplex: isCurrentQueryComplex
131
131
  });
132
132
  }, SEARCH_DEBOUNCE_MS);
133
- const handleBasicFilterSelectionChange = useCallback(filterValues => {
134
- setFilterSelections(filterValues);
135
- debouncedBasicFilterSelectionChange(filterValues);
136
- }, [debouncedBasicFilterSelectionChange]);
133
+ const handleBasicFilterSelectionChange = useCallback((filterType, options) => {
134
+ const updatedSelection = {
135
+ ...filterSelections,
136
+ [filterType]: options
137
+ };
138
+ setFilterSelections(updatedSelection);
139
+ debouncedBasicFilterSelectionChange(updatedSelection);
140
+ }, [debouncedBasicFilterSelectionChange, filterSelections]);
137
141
  useEffect(() => {
138
142
  const isCurrentQueryComplex = isQueryTooComplex(jql);
139
143
  setIsComplexQuery(isCurrentQueryComplex);
@@ -154,14 +158,6 @@ export const JiraSearchContainer = props => {
154
158
  }
155
159
  }
156
160
  }, [hydratedOptions, basicFilterHydrationStatus]);
157
- const handleSelectionChange = useCallback((filterType, options) => {
158
- const updatedSelection = {
159
- ...filterSelections,
160
- [filterType]: options
161
- };
162
- setFilterSelections(updatedSelection);
163
- handleBasicFilterSelectionChange(updatedSelection);
164
- }, [handleBasicFilterSelectionChange, filterSelections]);
165
161
  useEffect(() => {
166
162
  if (currentCloudId !== cloudId) {
167
163
  setBasicSearchTerm('');
@@ -185,8 +181,9 @@ export const JiraSearchContainer = props => {
185
181
  onSearch: handleSearch,
186
182
  searchTerm: basicSearchTerm
187
183
  }), showBasicFilters && jsx(BasicFilters, {
184
+ jql: jql,
188
185
  cloudId: cloudId || '',
189
- onChange: handleSelectionChange,
186
+ onChange: handleBasicFilterSelectionChange,
190
187
  selections: filterSelections,
191
188
  isJQLHydrating: basicFilterHydrationStatus === 'loading'
192
189
  })), currentSearchMethod === 'jql' && jsx(JiraJQLEditor, {
@@ -1,5 +1,5 @@
1
1
  export var EVENT_CHANNEL = 'media';
2
2
  export var packageMetaData = {
3
3
  packageName: "@atlaskit/link-datasource",
4
- packageVersion: "1.19.11"
4
+ packageVersion: "1.19.13"
5
5
  };
@@ -8,4 +8,4 @@ export var FormContainer = styled.form(_templateObject2 || (_templateObject2 = _
8
8
 
9
9
  // Override the top margin of fields
10
10
  export var FieldContainer = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n flex: 1;\n margin-top: ", ";\n"])), "var(--ds-space-negative-100, -8px)");
11
- export var SchemaSelectContainer = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width: 200px;\n"])));
11
+ export var SchemaSelectContainer = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width: 100%;\n max-width: 386px;\n"])));
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import Avatar from '@atlaskit/avatar';
3
+ import PeopleGroupIcon from '@atlaskit/icon/glyph/people-group';
3
4
  import Lozenge from '@atlaskit/lozenge';
4
5
  import { Box, Flex, xcss } from '@atlaskit/primitives';
5
6
  var commonLabelStyles = xcss({
@@ -9,6 +10,11 @@ var commonLabelStyles = xcss({
9
10
  var avatarOptionLabelStyles = xcss({
10
11
  marginLeft: 'space.050'
11
12
  });
13
+ var groupWrapperStyles = xcss({
14
+ width: "var(--ds-space-250, 20px)",
15
+ minWidth: "var(--ds-space-250, 20px)",
16
+ height: "var(--ds-space-250, 20px)"
17
+ });
12
18
  var IconOptionLabel = function IconOptionLabel(_ref) {
13
19
  var data = _ref.data;
14
20
  var label = data.label,
@@ -41,7 +47,14 @@ var AvatarOptionLabel = function AvatarOptionLabel(_ref3) {
41
47
  return /*#__PURE__*/React.createElement(Flex, {
42
48
  alignItems: "center",
43
49
  testId: testId || 'jlol-basic-filter-popup-select-option--avatar'
44
- }, /*#__PURE__*/React.createElement(Avatar, {
50
+ }, data.isGroup ? /*#__PURE__*/React.createElement(Flex, {
51
+ alignItems: "center",
52
+ justifyContent: "center",
53
+ xcss: groupWrapperStyles
54
+ }, /*#__PURE__*/React.createElement(PeopleGroupIcon, {
55
+ size: "small",
56
+ label: ""
57
+ })) : /*#__PURE__*/React.createElement(Avatar, {
45
58
  appearance: data.isSquare ? 'square' : 'circle',
46
59
  src: data.avatar,
47
60
  size: "xsmall"
@@ -162,11 +162,21 @@ var AsyncPopupSelect = function AsyncPopupSelect(_ref) {
162
162
  });
163
163
  }, [fetchFilterOptions, filterType, fireEvent, searchTerm, selectedOptions.length, sortOptionsOnPopupOpen, status]);
164
164
  var handleMenuClose = useCallback(function () {
165
+ /**
166
+ * Clearing the search is to ensure that the sortOptionsOnPopupOpen logic does not mess up.
167
+ * Without this, when the user opens, sortOptionsOnPopupOpen will inject the selected options to the list and the list count and values will be off
168
+ */
169
+ if (searchTerm) {
170
+ handleInputChange('', {
171
+ action: 'input-change',
172
+ prevInputValue: searchTerm
173
+ });
174
+ }
165
175
  fireEvent('ui.dropdown.closed.basicSearchDropdown', {
166
176
  filterType: filterType,
167
177
  selectionCount: selectedOptions.length
168
178
  });
169
- }, [filterType, fireEvent, selectedOptions.length]);
179
+ }, [filterType, fireEvent, handleInputChange, searchTerm, selectedOptions.length]);
170
180
  useEffect(function () {
171
181
  if (status === 'resolved') {
172
182
  sortOptionsOnResolve();
@@ -42,13 +42,15 @@ var PopupTrigger = /*#__PURE__*/forwardRef(function (_ref, ref) {
42
42
  firstOption = _ref3[0];
43
43
  var hasOptions = selectedOptions && selectedOptions.length > 0;
44
44
  var showButtonLoading = !isDisabled && isLoading;
45
+ var testId = "jlol-basic-filter-".concat(filterType, "-trigger");
45
46
  var LoadingButton = useCallback(function () {
46
47
  return /*#__PURE__*/React.createElement(LoadingStateAnimationWrapper, null, /*#__PURE__*/React.createElement(Button, {
47
48
  iconAfter: /*#__PURE__*/React.createElement(Spinner, {
48
49
  size: 'xsmall'
49
- })
50
+ }),
51
+ testId: "".concat(testId, "--loading-button")
50
52
  }, /*#__PURE__*/React.createElement(FormattedMessage, asyncPopupSelectMessages["".concat(filterType, "Label")])));
51
- }, [filterType]);
53
+ }, [filterType, testId]);
52
54
  var DefaultButton = useCallback(function () {
53
55
  return /*#__PURE__*/React.createElement(Button, {
54
56
  appearance: "default",
@@ -56,7 +58,8 @@ var PopupTrigger = /*#__PURE__*/forwardRef(function (_ref, ref) {
56
58
  isDisabled: isDisabled,
57
59
  iconAfter: /*#__PURE__*/React.createElement(ChevronDownIcon, {
58
60
  label: ""
59
- })
61
+ }),
62
+ testId: "".concat(testId, "--button")
60
63
  }, /*#__PURE__*/React.createElement(Flex, null, /*#__PURE__*/React.createElement(Box, {
61
64
  xcss: triggerButtonLabelStyles
62
65
  }, /*#__PURE__*/React.createElement(FormattedMessage, asyncPopupSelectMessages["".concat(filterType, "Label")]), firstOption && /*#__PURE__*/React.createElement(React.Fragment, null, ": ", firstOption.label)), selectedOptions && selectedOptions.length > 1 && /*#__PURE__*/React.createElement(Flex, {
@@ -65,7 +68,7 @@ var PopupTrigger = /*#__PURE__*/forwardRef(function (_ref, ref) {
65
68
  }, /*#__PURE__*/React.createElement(Badge, {
66
69
  appearance: "primary"
67
70
  }, "+", selectedOptions.length - 1))));
68
- }, [filterType, firstOption, hasOptions, isDisabled, isSelected, selectedOptions]);
71
+ }, [filterType, firstOption, hasOptions, isDisabled, isSelected, selectedOptions, testId]);
69
72
 
70
73
  /**
71
74
  * We had an issue with the popup component referencing a stale DOM ref for the trigger button.
@@ -73,7 +76,7 @@ var PopupTrigger = /*#__PURE__*/forwardRef(function (_ref, ref) {
73
76
  */
74
77
  return /*#__PURE__*/React.createElement(Box, {
75
78
  ref: ref,
76
- testId: "jlol-basic-filter-".concat(filterType, "-trigger")
79
+ testId: testId
77
80
  }, showButtonLoading ? /*#__PURE__*/React.createElement(LoadingButton, null) : /*#__PURE__*/React.createElement(DefaultButton, null));
78
81
  });
79
82
  export default PopupTrigger;
@@ -1,26 +1,33 @@
1
- import React from 'react';
1
+ import React, { useMemo } from 'react';
2
2
  import { Flex, xcss } from '@atlaskit/primitives';
3
+ import { extractValuesFromNonComplexJQL } from '../utils/extractValuesFromNonComplexJQL';
3
4
  import AsyncPopupSelect from './async-popup-select';
4
5
  export var availableBasicFilterTypes = ['project', 'type', 'status', 'assignee'];
5
6
  var basicFilterContainerStyles = xcss({
6
7
  paddingLeft: "var(--ds-space-100, 8px)"
7
8
  });
8
9
  var BasicFilterContainer = function BasicFilterContainer(_ref) {
9
- var cloudId = _ref.cloudId,
10
+ var jql = _ref.jql,
11
+ cloudId = _ref.cloudId,
10
12
  onChange = _ref.onChange,
11
13
  selections = _ref.selections,
12
14
  isJQLHydrating = _ref.isJQLHydrating;
15
+ var extractedFilterValues = useMemo(function () {
16
+ return isJQLHydrating ? extractValuesFromNonComplexJQL(jql) : {};
17
+ }, [isJQLHydrating, jql]);
13
18
  return /*#__PURE__*/React.createElement(Flex, {
14
19
  xcss: basicFilterContainerStyles,
15
20
  gap: "space.100",
16
21
  testId: "jlol-basic-filter-container"
17
22
  }, availableBasicFilterTypes.map(function (filter) {
23
+ var _extractedFilterValue;
24
+ var shouldShowHydrationLoader = isJQLHydrating && ((_extractedFilterValue = extractedFilterValues[filter]) === null || _extractedFilterValue === void 0 ? void 0 : _extractedFilterValue.length) > 0;
18
25
  return /*#__PURE__*/React.createElement(AsyncPopupSelect, {
19
26
  cloudId: cloudId,
20
27
  filterType: filter,
21
28
  key: filter,
22
29
  selection: selections[filter] || [],
23
- isJQLHydrating: isJQLHydrating,
30
+ isJQLHydrating: shouldShowHydrationLoader,
24
31
  isDisabled: !cloudId,
25
32
  onSelectionChange: onChange
26
33
  });
@@ -1,5 +1,5 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
1
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  var _excluded = ["basicInputTextValue"];
5
5
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -158,10 +158,11 @@ export var JiraSearchContainer = function JiraSearchContainer(props) {
158
158
  }, SEARCH_DEBOUNCE_MS),
159
159
  _useDebouncedCallback2 = _slicedToArray(_useDebouncedCallback, 1),
160
160
  debouncedBasicFilterSelectionChange = _useDebouncedCallback2[0];
161
- var handleBasicFilterSelectionChange = useCallback(function (filterValues) {
162
- setFilterSelections(filterValues);
163
- debouncedBasicFilterSelectionChange(filterValues);
164
- }, [debouncedBasicFilterSelectionChange]);
161
+ var handleBasicFilterSelectionChange = useCallback(function (filterType, options) {
162
+ var updatedSelection = _objectSpread(_objectSpread({}, filterSelections), {}, _defineProperty({}, filterType, options));
163
+ setFilterSelections(updatedSelection);
164
+ debouncedBasicFilterSelectionChange(updatedSelection);
165
+ }, [debouncedBasicFilterSelectionChange, filterSelections]);
165
166
  useEffect(function () {
166
167
  var isCurrentQueryComplex = isQueryTooComplex(jql);
167
168
  setIsComplexQuery(isCurrentQueryComplex);
@@ -180,11 +181,6 @@ export var JiraSearchContainer = function JiraSearchContainer(props) {
180
181
  }
181
182
  }
182
183
  }, [hydratedOptions, basicFilterHydrationStatus]);
183
- var handleSelectionChange = useCallback(function (filterType, options) {
184
- var updatedSelection = _objectSpread(_objectSpread({}, filterSelections), {}, _defineProperty({}, filterType, options));
185
- setFilterSelections(updatedSelection);
186
- handleBasicFilterSelectionChange(updatedSelection);
187
- }, [handleBasicFilterSelectionChange, filterSelections]);
188
184
  useEffect(function () {
189
185
  if (currentCloudId !== cloudId) {
190
186
  setBasicSearchTerm('');
@@ -208,8 +204,9 @@ export var JiraSearchContainer = function JiraSearchContainer(props) {
208
204
  onSearch: handleSearch,
209
205
  searchTerm: basicSearchTerm
210
206
  }), showBasicFilters && jsx(BasicFilters, {
207
+ jql: jql,
211
208
  cloudId: cloudId || '',
212
- onChange: handleSelectionChange,
209
+ onChange: handleBasicFilterSelectionChange,
213
210
  selections: filterSelections,
214
211
  isJQLHydrating: basicFilterHydrationStatus === 'loading'
215
212
  })), currentSearchMethod === 'jql' && jsx(JiraJQLEditor, {
@@ -2,10 +2,11 @@
2
2
  import type { BasicFilterFieldType, SelectedOptionsMap, SelectOption } from '../types';
3
3
  export declare const availableBasicFilterTypes: BasicFilterFieldType[];
4
4
  export interface BasicFilterContainerProps {
5
+ jql: string;
5
6
  cloudId: string;
6
7
  selections: SelectedOptionsMap;
7
8
  onChange: (filterType: BasicFilterFieldType, options: SelectOption[]) => void;
8
9
  isJQLHydrating: boolean;
9
10
  }
10
- declare const BasicFilterContainer: ({ cloudId, onChange, selections, isJQLHydrating, }: BasicFilterContainerProps) => JSX.Element;
11
+ declare const BasicFilterContainer: ({ jql, cloudId, onChange, selections, isJQLHydrating, }: BasicFilterContainerProps) => JSX.Element;
11
12
  export default BasicFilterContainer;
@@ -2,10 +2,11 @@
2
2
  import type { BasicFilterFieldType, SelectedOptionsMap, SelectOption } from '../types';
3
3
  export declare const availableBasicFilterTypes: BasicFilterFieldType[];
4
4
  export interface BasicFilterContainerProps {
5
+ jql: string;
5
6
  cloudId: string;
6
7
  selections: SelectedOptionsMap;
7
8
  onChange: (filterType: BasicFilterFieldType, options: SelectOption[]) => void;
8
9
  isJQLHydrating: boolean;
9
10
  }
10
- declare const BasicFilterContainer: ({ cloudId, onChange, selections, isJQLHydrating, }: BasicFilterContainerProps) => JSX.Element;
11
+ declare const BasicFilterContainer: ({ jql, cloudId, onChange, selections, isJQLHydrating, }: BasicFilterContainerProps) => JSX.Element;
11
12
  export default BasicFilterContainer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "1.19.11",
3
+ "version": "1.19.13",
4
4
  "description": "UI Components to support linking platform dataset feature",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -55,7 +55,7 @@
55
55
  "@atlaskit/pragmatic-drag-and-drop-hitbox": "^0.12.0",
56
56
  "@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-autoscroll": "^0.6.0",
57
57
  "@atlaskit/pragmatic-drag-and-drop-react-indicator": "^0.17.0",
58
- "@atlaskit/primitives": "^1.12.0",
58
+ "@atlaskit/primitives": "^1.13.0",
59
59
  "@atlaskit/select": "^17.0.0",
60
60
  "@atlaskit/smart-card": "^26.42.0",
61
61
  "@atlaskit/spinner": "^16.0.0",