@atlaskit/link-datasource 4.27.4 → 4.28.0

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,17 @@
1
1
  # @atlaskit/link-datasource
2
2
 
3
+ ## 4.28.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`6cb21d13010a3`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/6cb21d13010a3) -
8
+ [ux] Description field of a Jira SLLV now supports rich text when backend sends `html` property in
9
+ the data.
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies
14
+
3
15
  ## 4.27.4
4
16
 
5
17
  ### Patch Changes
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.stringifyType = exports.renderType = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _react = _interopRequireDefault(require("react"));
11
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
12
  var _boolean = _interopRequireDefault(require("./boolean"));
12
13
  var _dateTime = _interopRequireWildcard(require("./date-time"));
13
14
  var _icon = _interopRequireDefault(require("./icon"));
@@ -44,8 +45,12 @@ var stringifyType = exports.stringifyType = function stringifyType(_ref, formatM
44
45
  case 'user':
45
46
  return (value === null || value === void 0 ? void 0 : value.displayName) || formatMessage(_messages.userTypeMessages.userDefaultdisplayNameValue);
46
47
  case 'richtext':
47
- var adfPlainText = (0, _richtext.parseRichText)(value);
48
- return adfPlainText || '';
48
+ if (value.html && value.html.trim() !== '' && (0, _platformFeatureFlags.fg)('platform_navx_jira_sllv_rich_text_gate')) {
49
+ return '';
50
+ } else {
51
+ var adfPlainText = (0, _richtext.parseRichText)(value);
52
+ return adfPlainText || '';
53
+ }
49
54
  case 'link':
50
55
  default:
51
56
  return '';
@@ -1 +1,2 @@
1
+ ._80om73ad{cursor:default}
1
2
  ._kqswh2mm{position:relative}
@@ -13,8 +13,10 @@ var React = _react;
13
13
  var _runtime = require("@compiled/react/runtime");
14
14
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _dompurify = _interopRequireDefault(require("dompurify"));
16
17
  var _schemaDefault = require("@atlaskit/adf-schema/schema-default");
17
18
  var _model = require("@atlaskit/editor-prosemirror/model");
19
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
18
20
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
19
21
  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; }
20
22
  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; }
@@ -53,10 +55,20 @@ var RichTextType = function RichTextType(_ref) {
53
55
  var adfPlainText = (0, _react.useMemo)(function () {
54
56
  return parseRichText(value);
55
57
  }, [value]);
58
+ if (value.html && value.html.trim() !== '' && (0, _platformFeatureFlags.fg)('platform_navx_jira_sllv_rich_text_gate')) {
59
+ // eslint-disable-next-line react/no-danger
60
+ return /*#__PURE__*/React.createElement("div", {
61
+ "data-testid": "datasource-richtext-html-content",
62
+ dangerouslySetInnerHTML: {
63
+ __html: _dompurify.default.sanitize(value.html)
64
+ },
65
+ className: (0, _runtime.ax)(["_kqswh2mm _80om73ad"])
66
+ });
67
+ }
56
68
  if (adfPlainText) {
57
69
  return /*#__PURE__*/React.createElement("span", {
58
70
  "data-testid": "richtext-plaintext",
59
- className: (0, _runtime.ax)(["_kqswh2mm"])
71
+ className: (0, _runtime.ax)(["_kqswh2mm _80om73ad"])
60
72
  }, adfPlainText);
61
73
  } else {
62
74
  return /*#__PURE__*/React.createElement("span", {
@@ -1,5 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
+ import { fg } from '@atlaskit/platform-feature-flags';
3
4
  import BooleanRenderType from './boolean';
4
5
  import DateTimeRenderType, { getFormattedDate } from './date-time';
5
6
  import IconRenderType from './icon';
@@ -36,8 +37,12 @@ export const stringifyType = ({
36
37
  case 'user':
37
38
  return (value === null || value === void 0 ? void 0 : value.displayName) || formatMessage(userTypeMessages.userDefaultdisplayNameValue);
38
39
  case 'richtext':
39
- const adfPlainText = parseRichText(value);
40
- return adfPlainText || '';
40
+ if (value.html && value.html.trim() !== '' && fg('platform_navx_jira_sllv_rich_text_gate')) {
41
+ return '';
42
+ } else {
43
+ const adfPlainText = parseRichText(value);
44
+ return adfPlainText || '';
45
+ }
41
46
  case 'link':
42
47
  default:
43
48
  return '';
@@ -1 +1,2 @@
1
+ ._80om73ad{cursor:default}
1
2
  ._kqswh2mm{position:relative}
@@ -3,8 +3,10 @@ import "./index.compiled.css";
3
3
  import * as React from 'react';
4
4
  import { ax, ix } from "@compiled/react/runtime";
5
5
  import { useMemo } from 'react';
6
+ import dompurify from 'dompurify';
6
7
  import { defaultSchema } from '@atlaskit/adf-schema/schema-default';
7
8
  import { Node as PMNode, Schema } from '@atlaskit/editor-prosemirror/model';
9
+ import { fg } from '@atlaskit/platform-feature-flags';
8
10
  const rootStyles = null;
9
11
  const smartLinkNodeToUrl = node => {
10
12
  var _node$attrs$url;
@@ -43,10 +45,20 @@ const RichTextType = ({
43
45
  value
44
46
  }) => {
45
47
  const adfPlainText = useMemo(() => parseRichText(value), [value]);
48
+ if (value.html && value.html.trim() !== '' && fg('platform_navx_jira_sllv_rich_text_gate')) {
49
+ // eslint-disable-next-line react/no-danger
50
+ return /*#__PURE__*/React.createElement("div", {
51
+ "data-testid": "datasource-richtext-html-content",
52
+ dangerouslySetInnerHTML: {
53
+ __html: dompurify.sanitize(value.html)
54
+ },
55
+ className: ax(["_kqswh2mm _80om73ad"])
56
+ });
57
+ }
46
58
  if (adfPlainText) {
47
59
  return /*#__PURE__*/React.createElement("span", {
48
60
  "data-testid": "richtext-plaintext",
49
- className: ax(["_kqswh2mm"])
61
+ className: ax(["_kqswh2mm _80om73ad"])
50
62
  }, adfPlainText);
51
63
  } else {
52
64
  return /*#__PURE__*/React.createElement("span", {
@@ -1,5 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
+ import { fg } from '@atlaskit/platform-feature-flags';
3
4
  import BooleanRenderType from './boolean';
4
5
  import DateTimeRenderType, { getFormattedDate } from './date-time';
5
6
  import IconRenderType from './icon';
@@ -35,8 +36,12 @@ export var stringifyType = function stringifyType(_ref, formatMessage, formatDat
35
36
  case 'user':
36
37
  return (value === null || value === void 0 ? void 0 : value.displayName) || formatMessage(userTypeMessages.userDefaultdisplayNameValue);
37
38
  case 'richtext':
38
- var adfPlainText = parseRichText(value);
39
- return adfPlainText || '';
39
+ if (value.html && value.html.trim() !== '' && fg('platform_navx_jira_sllv_rich_text_gate')) {
40
+ return '';
41
+ } else {
42
+ var adfPlainText = parseRichText(value);
43
+ return adfPlainText || '';
44
+ }
40
45
  case 'link':
41
46
  default:
42
47
  return '';
@@ -1 +1,2 @@
1
+ ._80om73ad{cursor:default}
1
2
  ._kqswh2mm{position:relative}
@@ -7,8 +7,10 @@ import { ax, ix } from "@compiled/react/runtime";
7
7
  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; }
8
8
  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) { _defineProperty(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; }
9
9
  import { useMemo } from 'react';
10
+ import dompurify from 'dompurify';
10
11
  import { defaultSchema } from '@atlaskit/adf-schema/schema-default';
11
12
  import { Node as PMNode, Schema } from '@atlaskit/editor-prosemirror/model';
13
+ import { fg } from '@atlaskit/platform-feature-flags';
12
14
  var rootStyles = null;
13
15
  var smartLinkNodeToUrl = function smartLinkNodeToUrl(node) {
14
16
  var _node$attrs$url;
@@ -44,10 +46,20 @@ var RichTextType = function RichTextType(_ref) {
44
46
  var adfPlainText = useMemo(function () {
45
47
  return parseRichText(value);
46
48
  }, [value]);
49
+ if (value.html && value.html.trim() !== '' && fg('platform_navx_jira_sllv_rich_text_gate')) {
50
+ // eslint-disable-next-line react/no-danger
51
+ return /*#__PURE__*/React.createElement("div", {
52
+ "data-testid": "datasource-richtext-html-content",
53
+ dangerouslySetInnerHTML: {
54
+ __html: dompurify.sanitize(value.html)
55
+ },
56
+ className: ax(["_kqswh2mm _80om73ad"])
57
+ });
58
+ }
47
59
  if (adfPlainText) {
48
60
  return /*#__PURE__*/React.createElement("span", {
49
61
  "data-testid": "richtext-plaintext",
50
- className: ax(["_kqswh2mm"])
62
+ className: ax(["_kqswh2mm _80om73ad"])
51
63
  }, adfPlainText);
52
64
  } else {
53
65
  return /*#__PURE__*/React.createElement("span", {
@@ -1,10 +1,10 @@
1
1
  export declare const DatasourceTableView: import("react").ForwardRefExoticComponent<{
2
2
  datasourceId: string;
3
- parameters: object;
3
+ parameters: import("@atlaskit/linking-types").DatasourceParameters;
4
4
  url?: string;
5
5
  } & Partial<Pick<import("../issue-like-table/types").IssueLikeDataTableViewProps, "visibleColumnKeys" | "wrappedColumnKeys" | "columnCustomSizes" | "onColumnResize" | "onVisibleColumnKeysChange" | "onWrappedColumnChange" | "scrollableContainerHeight">> & import("@atlaskit/analytics-next").WithContextProps & import("react").RefAttributes<any>>;
6
6
  export declare const DataSourceTableViewNoSuspense: import("react").ForwardRefExoticComponent<{
7
7
  datasourceId: string;
8
- parameters: object;
8
+ parameters: import("@atlaskit/linking-types").DatasourceParameters;
9
9
  url?: string;
10
10
  } & Partial<Pick<import("../issue-like-table/types").IssueLikeDataTableViewProps, "visibleColumnKeys" | "wrappedColumnKeys" | "columnCustomSizes" | "onColumnResize" | "onVisibleColumnKeysChange" | "onWrappedColumnChange" | "scrollableContainerHeight">> & import("@atlaskit/analytics-next").WithContextProps & import("react").RefAttributes<any>>;
@@ -1,9 +1,10 @@
1
+ import type { DatasourceParameters } from '@atlaskit/linking-types';
1
2
  import { type IssueLikeDataTableViewProps } from '../issue-like-table/types';
2
3
  export type DatasourceTableViewProps = {
3
4
  /** Unique identifier for which type of datasource is being rendered and for making its requests */
4
5
  datasourceId: string;
5
6
  /** Parameters for making the data requests necessary to render data within the table */
6
- parameters: object;
7
+ parameters: DatasourceParameters;
7
8
  /** Url for an existing datasource, initially used for displaying to a user unauthorized to query that site */
8
9
  url?: string;
9
10
  } & Partial<Pick<IssueLikeDataTableViewProps, 'visibleColumnKeys' | 'onVisibleColumnKeysChange' | 'wrappedColumnKeys' | 'onWrappedColumnChange' | 'onColumnResize' | 'columnCustomSizes' | 'scrollableContainerHeight'>>;
@@ -1,10 +1,10 @@
1
1
  export declare const DatasourceTableView: import("react").ForwardRefExoticComponent<{
2
2
  datasourceId: string;
3
- parameters: object;
3
+ parameters: import("@atlaskit/linking-types").DatasourceParameters;
4
4
  url?: string;
5
5
  } & Partial<Pick<import("../issue-like-table/types").IssueLikeDataTableViewProps, "visibleColumnKeys" | "wrappedColumnKeys" | "columnCustomSizes" | "onColumnResize" | "onVisibleColumnKeysChange" | "onWrappedColumnChange" | "scrollableContainerHeight">> & import("@atlaskit/analytics-next").WithContextProps & import("react").RefAttributes<any>>;
6
6
  export declare const DataSourceTableViewNoSuspense: import("react").ForwardRefExoticComponent<{
7
7
  datasourceId: string;
8
- parameters: object;
8
+ parameters: import("@atlaskit/linking-types").DatasourceParameters;
9
9
  url?: string;
10
10
  } & Partial<Pick<import("../issue-like-table/types").IssueLikeDataTableViewProps, "visibleColumnKeys" | "wrappedColumnKeys" | "columnCustomSizes" | "onColumnResize" | "onVisibleColumnKeysChange" | "onWrappedColumnChange" | "scrollableContainerHeight">> & import("@atlaskit/analytics-next").WithContextProps & import("react").RefAttributes<any>>;
@@ -1,9 +1,10 @@
1
+ import type { DatasourceParameters } from '@atlaskit/linking-types';
1
2
  import { type IssueLikeDataTableViewProps } from '../issue-like-table/types';
2
3
  export type DatasourceTableViewProps = {
3
4
  /** Unique identifier for which type of datasource is being rendered and for making its requests */
4
5
  datasourceId: string;
5
6
  /** Parameters for making the data requests necessary to render data within the table */
6
- parameters: object;
7
+ parameters: DatasourceParameters;
7
8
  /** Url for an existing datasource, initially used for displaying to a user unauthorized to query that site */
8
9
  url?: string;
9
10
  } & Partial<Pick<IssueLikeDataTableViewProps, 'visibleColumnKeys' | 'onVisibleColumnKeysChange' | 'wrappedColumnKeys' | 'onWrappedColumnChange' | 'onColumnResize' | 'columnCustomSizes' | 'scrollableContainerHeight'>>;
@@ -3,13 +3,12 @@ import React, { useMemo } from 'react';
3
3
  import { IntlMessagesProvider } from '@atlaskit/intl-messages-provider';
4
4
  import { SmartCardProvider } from '@atlaskit/link-provider';
5
5
  import { mockDatasourceFetchRequests } from '@atlaskit/link-test-helpers/datasource';
6
- import { type DatasourceParameters } from '@atlaskit/linking-types';
7
6
 
8
7
  import { type DatasourceTableView } from '../src';
9
8
  import { fetchMessagesForLocale } from '../src/common/utils/locale/fetch-messages-for-locale';
10
9
  import { DatasourceExperienceIdProvider } from '../src/contexts/datasource-experience-id';
11
10
  import { DataSourceTableViewNoSuspense } from '../src/ui/datasource-table-view/datasourceTableView';
12
- import { type JiraIssueDatasourceParameters } from '../src/ui/jira-issues-modal/types';
11
+ import type { DatasourceTableViewProps } from '../src/ui/datasource-table-view/types';
13
12
 
14
13
  import SmartLinkClient from './smartLinkCustomClient';
15
14
  import { useCommonTableProps } from './useCommonTableProps';
@@ -20,23 +19,26 @@ type JiraIssuesTableViewProps = {
20
19
  */
21
20
  DatasourceTable?: typeof DataSourceTableViewNoSuspense | typeof DatasourceTableView;
22
21
  mockDatasourceFetchRequest?: boolean;
23
- parameters?: DatasourceParameters;
24
- };
22
+ } & Partial<Pick<DatasourceTableViewProps, 'parameters' | 'scrollableContainerHeight' | 'visibleColumnKeys'>>;
25
23
 
26
24
  const JiraIssuesTableView = ({
27
- parameters,
28
25
  DatasourceTable = DataSourceTableViewNoSuspense,
29
- }: JiraIssuesTableViewProps) => {
30
- const cloudId = parameters?.cloudId || 'some-cloud-id';
31
-
32
- const datasourceParameters = useMemo<JiraIssueDatasourceParameters>(
33
- () => ({
34
- cloudId,
35
- jql: 'some-jql',
36
- }),
37
- [cloudId],
38
- );
39
-
26
+ ...props
27
+ }: Omit<JiraIssuesTableViewProps, 'mockDatasourceFetchRequest'>) => {
28
+ const {
29
+ parameters: {
30
+ cloudId = 'some-cloud-id',
31
+ jql = 'some-jql',
32
+ } = {},
33
+ scrollableContainerHeight,
34
+ visibleColumnKeys: initialVisibleColumnKeys,
35
+ } = props
36
+
37
+ const parameters = useMemo(() => ({
38
+ cloudId,
39
+ jql,
40
+ }), [cloudId, jql]);
41
+
40
42
  const {
41
43
  visibleColumnKeys,
42
44
  onVisibleColumnKeysChange,
@@ -51,25 +53,27 @@ const JiraIssuesTableView = ({
51
53
  link: 350,
52
54
  labels: 100,
53
55
  priority: 200,
56
+ description: 650,
54
57
  },
58
+ visibleColumnKeys: initialVisibleColumnKeys,
55
59
  });
56
60
 
57
61
  return (
58
62
  <DatasourceTable
59
63
  datasourceId={'some-datasource-id'}
60
- parameters={datasourceParameters}
64
+ parameters={parameters}
61
65
  visibleColumnKeys={visibleColumnKeys}
62
66
  onVisibleColumnKeysChange={onVisibleColumnKeysChange}
63
67
  columnCustomSizes={columnCustomSizes}
64
68
  onColumnResize={onColumnResize}
65
69
  onWrappedColumnChange={onWrappedColumnChange}
66
70
  wrappedColumnKeys={wrappedColumnKeys}
71
+ scrollableContainerHeight={scrollableContainerHeight}
67
72
  />
68
73
  );
69
74
  };
70
75
 
71
76
  export const ExampleJiraIssuesTableView = ({
72
- parameters,
73
77
  mockDatasourceFetchRequest = true,
74
78
  ...props
75
79
  }: JiraIssuesTableViewProps) => {
@@ -81,7 +85,7 @@ export const ExampleJiraIssuesTableView = ({
81
85
  <DatasourceExperienceIdProvider>
82
86
  <IntlMessagesProvider loaderFn={fetchMessagesForLocale}>
83
87
  <SmartCardProvider client={new SmartLinkClient()}>
84
- <JiraIssuesTableView parameters={parameters} {...props} />
88
+ <JiraIssuesTableView {...props} />
85
89
  </SmartCardProvider>
86
90
  </IntlMessagesProvider>
87
91
  </DatasourceExperienceIdProvider>
@@ -8,7 +8,7 @@ import type { DatasourceTableViewProps } from '../src/ui/datasource-table-view/t
8
8
  import type { ColumnSizesMap } from '../src/ui/issue-like-table/types';
9
9
 
10
10
  export const useCommonTableProps = (
11
- props: { defaultColumnCustomSizes?: ColumnSizesMap } = {},
11
+ props: { defaultColumnCustomSizes?: ColumnSizesMap, visibleColumnKeys?: string[] } = {},
12
12
  ): Required<
13
13
  Pick<
14
14
  DatasourceTableViewProps,
@@ -21,7 +21,7 @@ export const useCommonTableProps = (
21
21
  > &
22
22
  Pick<DatasourceTableViewProps, 'columnCustomSizes'> => {
23
23
  const [visibleColumnKeys, onVisibleColumnKeysChange] = useState<string[]>(
24
- defaultInitialVisibleJiraColumnKeys,
24
+ props.visibleColumnKeys ?? defaultInitialVisibleJiraColumnKeys,
25
25
  );
26
26
 
27
27
  const { columnCustomSizes, onColumnResize } = useColumnResize(props.defaultColumnCustomSizes);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-datasource",
3
- "version": "4.27.4",
3
+ "version": "4.28.0",
4
4
  "description": "UI Components to support linking platform dataset feature",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -59,7 +59,7 @@
59
59
  "@atlaskit/inline-edit": "^15.3.0",
60
60
  "@atlaskit/intl-messages-provider": "^2.0.0",
61
61
  "@atlaskit/jql-ast": "^3.3.0",
62
- "@atlaskit/jql-editor": "^5.7.0",
62
+ "@atlaskit/jql-editor": "^5.8.0",
63
63
  "@atlaskit/jql-editor-autocomplete-rest": "^3.0.0",
64
64
  "@atlaskit/layering": "^3.2.0",
65
65
  "@atlaskit/link": "^3.2.0",
@@ -71,27 +71,29 @@
71
71
  "@atlaskit/modal-dialog": "^14.6.0",
72
72
  "@atlaskit/outbound-auth-flow-client": "^3.4.0",
73
73
  "@atlaskit/platform-feature-flags": "^1.1.0",
74
- "@atlaskit/popup": "^4.4.0",
74
+ "@atlaskit/popup": "^4.6.0",
75
75
  "@atlaskit/pragmatic-drag-and-drop": "^1.7.0",
76
76
  "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.1.0",
77
77
  "@atlaskit/pragmatic-drag-and-drop-react-beautiful-dnd-autoscroll": "^2.0.0",
78
78
  "@atlaskit/pragmatic-drag-and-drop-react-drop-indicator": "^3.2.0",
79
- "@atlaskit/primitives": "^16.0.0",
79
+ "@atlaskit/primitives": "^16.1.0",
80
80
  "@atlaskit/react-select": "^3.8.0",
81
81
  "@atlaskit/select": "^21.3.0",
82
- "@atlaskit/smart-card": "^43.4.0",
82
+ "@atlaskit/smart-card": "^43.5.0",
83
83
  "@atlaskit/smart-user-picker": "^8.4.0",
84
84
  "@atlaskit/spinner": "^19.0.0",
85
85
  "@atlaskit/tag": "^14.1.0",
86
86
  "@atlaskit/textfield": "^8.0.0",
87
87
  "@atlaskit/theme": "^21.0.0",
88
- "@atlaskit/tokens": "^7.0.0",
89
- "@atlaskit/tooltip": "^20.6.0",
88
+ "@atlaskit/tokens": "^7.1.0",
89
+ "@atlaskit/tooltip": "^20.7.0",
90
90
  "@atlaskit/ufo": "^0.4.0",
91
91
  "@atlaskit/width-detector": "^5.0.0",
92
92
  "@babel/runtime": "^7.0.0",
93
93
  "@compiled/react": "^0.18.6",
94
+ "@types/dompurify": "^2.2.3",
94
95
  "debounce-promise": "^3.1.2",
96
+ "dompurify": "^2.5.6",
95
97
  "lodash": "^4.17.21",
96
98
  "react-sweet-state": "^2.6.5",
97
99
  "tiny-invariant": "^1.2.0",
@@ -190,6 +192,9 @@
190
192
  },
191
193
  "navx-1845-sllv-autofocus-first-interactive-element": {
192
194
  "type": "boolean"
195
+ },
196
+ "platform_navx_jira_sllv_rich_text_gate": {
197
+ "type": "boolean"
193
198
  }
194
199
  },
195
200
  "compassUnitTestMetricSourceId": "ari:cloud:compass:a436116f-02ce-4520-8fbb-7301462a1674:metric-source/c5751cc6-3513-4070-9deb-af31e86aed34/9c893299-a527-4457-9b46-f3bc4c828766"