@atlaskit/smart-card 26.46.0 → 26.46.1

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 (76) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/messages.js +5 -0
  3. package/dist/cjs/utils/analytics/analytics.js +1 -1
  4. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/index.js +33 -0
  5. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +73 -0
  6. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/types.js +5 -0
  7. package/dist/cjs/view/FlexibleCard/components/blocks/footer-block/resolved/index.js +8 -19
  8. package/dist/cjs/view/FlexibleCard/components/blocks/index.js +8 -1
  9. package/dist/cjs/view/FlexibleCard/components/blocks/utils.js +10 -2
  10. package/dist/cjs/view/LinkUrl/index.js +1 -1
  11. package/dist/cjs/view/common/ai-icon/index.js +117 -0
  12. package/dist/cjs/view/common/ai-prism/ai-glowing-border/animated-svg-container.js +249 -0
  13. package/dist/cjs/view/common/ai-prism/ai-glowing-border/index.js +55 -0
  14. package/dist/cjs/view/common/ai-prism/ai-glowing-border/types.js +5 -0
  15. package/dist/cjs/view/common/ai-prism/constants.js +53 -0
  16. package/dist/cjs/view/common/ai-prism/index.js +45 -0
  17. package/dist/cjs/view/common/ai-prism/types.js +5 -0
  18. package/dist/es2019/messages.js +5 -0
  19. package/dist/es2019/utils/analytics/analytics.js +1 -1
  20. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/index.js +25 -0
  21. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +62 -0
  22. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/types.js +1 -0
  23. package/dist/es2019/view/FlexibleCard/components/blocks/footer-block/resolved/index.js +1 -12
  24. package/dist/es2019/view/FlexibleCard/components/blocks/index.js +2 -1
  25. package/dist/es2019/view/FlexibleCard/components/blocks/utils.js +10 -0
  26. package/dist/es2019/view/LinkUrl/index.js +1 -1
  27. package/dist/es2019/view/common/ai-icon/index.js +108 -0
  28. package/dist/es2019/view/common/ai-prism/ai-glowing-border/animated-svg-container.js +236 -0
  29. package/dist/es2019/view/common/ai-prism/ai-glowing-border/index.js +45 -0
  30. package/dist/es2019/view/common/ai-prism/ai-glowing-border/types.js +1 -0
  31. package/dist/es2019/view/common/ai-prism/constants.js +47 -0
  32. package/dist/es2019/view/common/ai-prism/index.js +36 -0
  33. package/dist/es2019/view/common/ai-prism/types.js +1 -0
  34. package/dist/esm/messages.js +5 -0
  35. package/dist/esm/utils/analytics/analytics.js +1 -1
  36. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/index.js +27 -0
  37. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +63 -0
  38. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/types.js +1 -0
  39. package/dist/esm/view/FlexibleCard/components/blocks/footer-block/resolved/index.js +1 -12
  40. package/dist/esm/view/FlexibleCard/components/blocks/index.js +2 -1
  41. package/dist/esm/view/FlexibleCard/components/blocks/utils.js +9 -1
  42. package/dist/esm/view/LinkUrl/index.js +1 -1
  43. package/dist/esm/view/common/ai-icon/index.js +110 -0
  44. package/dist/esm/view/common/ai-prism/ai-glowing-border/animated-svg-container.js +239 -0
  45. package/dist/esm/view/common/ai-prism/ai-glowing-border/index.js +47 -0
  46. package/dist/esm/view/common/ai-prism/ai-glowing-border/types.js +1 -0
  47. package/dist/esm/view/common/ai-prism/constants.js +47 -0
  48. package/dist/esm/view/common/ai-prism/index.js +37 -0
  49. package/dist/esm/view/common/ai-prism/types.js +1 -0
  50. package/dist/types/messages.d.ts +1 -1
  51. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/index.d.ts +11 -0
  52. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.d.ts +4 -0
  53. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/types.d.ts +23 -0
  54. package/dist/types/view/FlexibleCard/components/blocks/index.d.ts +1 -0
  55. package/dist/types/view/FlexibleCard/components/blocks/utils.d.ts +1 -0
  56. package/dist/types/view/common/ai-icon/index.d.ts +9 -0
  57. package/dist/types/view/common/ai-prism/ai-glowing-border/animated-svg-container.d.ts +9 -0
  58. package/dist/types/view/common/ai-prism/ai-glowing-border/index.d.ts +10 -0
  59. package/dist/types/view/common/ai-prism/ai-glowing-border/types.d.ts +25 -0
  60. package/dist/types/view/common/ai-prism/constants.d.ts +30 -0
  61. package/dist/types/view/common/ai-prism/index.d.ts +4 -0
  62. package/dist/types/view/common/ai-prism/types.d.ts +13 -0
  63. package/dist/types-ts4.5/messages.d.ts +1 -1
  64. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/index.d.ts +11 -0
  65. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.d.ts +4 -0
  66. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/types.d.ts +23 -0
  67. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/index.d.ts +1 -0
  68. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/utils.d.ts +1 -0
  69. package/dist/types-ts4.5/view/common/ai-icon/index.d.ts +9 -0
  70. package/dist/types-ts4.5/view/common/ai-prism/ai-glowing-border/animated-svg-container.d.ts +9 -0
  71. package/dist/types-ts4.5/view/common/ai-prism/ai-glowing-border/index.d.ts +10 -0
  72. package/dist/types-ts4.5/view/common/ai-prism/ai-glowing-border/types.d.ts +25 -0
  73. package/dist/types-ts4.5/view/common/ai-prism/constants.d.ts +30 -0
  74. package/dist/types-ts4.5/view/common/ai-prism/index.d.ts +4 -0
  75. package/dist/types-ts4.5/view/common/ai-prism/types.d.ts +13 -0
  76. package/package.json +3 -3
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.borderContentStyles = void 0;
8
+ var _react = require("@emotion/react");
9
+ var _react2 = _interopRequireDefault(require("react"));
10
+ var _animatedSvgContainer = _interopRequireDefault(require("./animated-svg-container"));
11
+ var _constants = require("../constants");
12
+ /** @jsx jsx */
13
+
14
+ var borderContainerStyles = (0, _react.css)({
15
+ display: 'flex',
16
+ position: 'relative',
17
+ padding: "var(--ds-space-025, 2px)",
18
+ width: 'fit-content'
19
+ });
20
+ var borderContentStyles = exports.borderContentStyles = (0, _react.css)({
21
+ borderRadius: _constants.INNER_BORDER_RADIUS,
22
+ flexGrow: 1,
23
+ zIndex: 1 // needs to be more than the svg container at least
24
+ });
25
+
26
+ /**
27
+ * The bulk of this file is originally from
28
+ * https://bitbucket.org/atlassian/barrel/src/master/ui/platform/ui-kit/ai
29
+ * with modifications.
30
+ */
31
+ var AIGlowingBorder = function AIGlowingBorder(_ref) {
32
+ var children = _ref.children,
33
+ palette = _ref.palette,
34
+ _ref$isMoving = _ref.isMoving,
35
+ isMoving = _ref$isMoving === void 0 ? true : _ref$isMoving,
36
+ isGlowing = _ref.isGlowing,
37
+ testId = _ref.testId,
38
+ additionalCss = _ref.additionalCss;
39
+ return (0, _react.jsx)("div", {
40
+ css: [borderContainerStyles, additionalCss === null || additionalCss === void 0 ? void 0 : additionalCss.container],
41
+ "data-testid": testId
42
+ }, (0, _react.jsx)(_animatedSvgContainer.default, {
43
+ palette: palette,
44
+ isMoving: isMoving,
45
+ additionalCss: additionalCss === null || additionalCss === void 0 ? void 0 : additionalCss.animatedSvgContainer
46
+ }), isGlowing && (0, _react.jsx)(_animatedSvgContainer.default, {
47
+ palette: palette,
48
+ isMoving: isMoving,
49
+ isGlowing: true,
50
+ additionalCss: additionalCss === null || additionalCss === void 0 ? void 0 : additionalCss.animatedSvgContainer
51
+ }), (0, _react.jsx)("div", {
52
+ css: borderContentStyles
53
+ }, children, " "));
54
+ };
55
+ var _default = exports.default = AIGlowingBorder;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.aiThemeTokens = exports.OUTER_BORDER_RADIUS = exports.INNER_BORDER_RADIUS = exports.GLOW_SIZE = exports.AI_BORDER_PALETTE = void 0;
7
+ /**
8
+ * The bulk of this file is originally from
9
+ * https://bitbucket.org/atlassian/barrel/src/master/ui/platform/ui-kit/ai
10
+ * with modifications.
11
+ */
12
+
13
+ var GLOW_SIZE = exports.GLOW_SIZE = 8;
14
+ var INNER_BORDER_RADIUS = exports.INNER_BORDER_RADIUS = 8;
15
+ var OUTER_BORDER_RADIUS = exports.OUTER_BORDER_RADIUS = 10;
16
+
17
+ // We don't yet have design system tokens representing the AI prism colour palette. We should replace this with
18
+ // equivalent tokens when available
19
+ /* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
20
+ var aiThemeTokens = exports.aiThemeTokens = {
21
+ blueUniqueGradientLight: '#00ACF8',
22
+ blueUniqueGradientDark: '#008BD2',
23
+ blue1000: '#092957',
24
+ blue800: '#0055CC',
25
+ blue700: '#0C66E4',
26
+ blue600: '#1D7AFC',
27
+ blue500: '#388BFF',
28
+ blue300: '#85B8FF',
29
+ blue200: '#CCE0FF',
30
+ blue100: '#E9F2FF',
31
+ teal500: '#37B4C3',
32
+ teal300: '#8BDBE5',
33
+ yellow500: '#CF9F02',
34
+ yellow200: '#F8E6A0',
35
+ red800: '#AE2A19',
36
+ red600: '#E34935',
37
+ orange500: '#F18D13',
38
+ orange300: '#FEC57B'
39
+ };
40
+ /* eslint-enable @atlaskit/design-system/ensure-design-token-usage */
41
+
42
+ var AI_BORDER_PALETTE = exports.AI_BORDER_PALETTE = {
43
+ dark: {
44
+ blue: aiThemeTokens.blue800,
45
+ teal: aiThemeTokens.teal500,
46
+ yellow: aiThemeTokens.yellow500
47
+ },
48
+ light: {
49
+ blue: aiThemeTokens.blue600,
50
+ teal: aiThemeTokens.teal300,
51
+ yellow: aiThemeTokens.yellow200
52
+ }
53
+ };
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = require("@emotion/react");
9
+ var _react2 = _interopRequireDefault(require("react"));
10
+ var _tokens = require("@atlaskit/tokens");
11
+ var _constants = require("./constants");
12
+ var _aiGlowingBorder = _interopRequireDefault(require("./ai-glowing-border"));
13
+ /** @jsx jsx */
14
+
15
+ var contentStyles = (0, _react.css)({
16
+ backgroundColor: "var(--ds-surface-raised, white)",
17
+ borderRadius: _constants.INNER_BORDER_RADIUS
18
+ });
19
+ var AIPrism = function AIPrism(_ref) {
20
+ var _AI_BORDER_PALETTE$co;
21
+ var children = _ref.children,
22
+ _ref$isGlowing = _ref.isGlowing,
23
+ isGlowing = _ref$isGlowing === void 0 ? true : _ref$isGlowing,
24
+ _ref$isMoving = _ref.isMoving,
25
+ isMoving = _ref$isMoving === void 0 ? true : _ref$isMoving,
26
+ isVisible = _ref.isVisible,
27
+ testId = _ref.testId;
28
+ var _useThemeObserver = (0, _tokens.useThemeObserver)(),
29
+ _useThemeObserver$col = _useThemeObserver.colorMode,
30
+ colorMode = _useThemeObserver$col === void 0 ? 'light' : _useThemeObserver$col;
31
+ return (0, _react.jsx)(_aiGlowingBorder.default, {
32
+ additionalCss: {
33
+ animatedSvgContainer: (0, _react.css)({
34
+ opacity: isVisible ? 1 : 0
35
+ })
36
+ },
37
+ palette: (_AI_BORDER_PALETTE$co = _constants.AI_BORDER_PALETTE[colorMode]) !== null && _AI_BORDER_PALETTE$co !== void 0 ? _AI_BORDER_PALETTE$co : _constants.AI_BORDER_PALETTE.light,
38
+ isGlowing: isGlowing,
39
+ isMoving: isMoving,
40
+ testId: testId
41
+ }, (0, _react.jsx)("div", {
42
+ css: contentStyles
43
+ }, children));
44
+ };
45
+ var _default = exports.default = AIPrism;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -13,6 +13,11 @@ export const messages = defineMessages({
13
13
  defaultMessage: 'Add account',
14
14
  description: 'Allows to add a new account'
15
15
  },
16
+ ai_summarize: {
17
+ id: 'fabric.linking.ai_summarize',
18
+ defaultMessage: 'Summarize',
19
+ description: 'Action to summarize link resource content with AI'
20
+ },
16
21
  assigned_to: {
17
22
  id: 'fabric.linking.assigned_to',
18
23
  defaultMessage: 'Assigned to {context}',
@@ -4,7 +4,7 @@ export const ANALYTICS_CHANNEL = 'media';
4
4
  export const context = {
5
5
  componentName: 'smart-cards',
6
6
  packageName: "@atlaskit/smart-card",
7
- packageVersion: "26.46.0"
7
+ packageVersion: "26.46.1"
8
8
  };
9
9
  export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
10
10
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -0,0 +1,25 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import AISummaryBlockResolvedView from './resolved';
4
+ import { SmartLinkStatus } from '../../../../../constants';
5
+
6
+ /**
7
+ * Represents an AISummaryBlock, designed to summarising link resource
8
+ * content using AI.
9
+ * @public
10
+ * @param {AISummaryBlockProps} AISummaryBlock
11
+ * @see Block
12
+ */
13
+ const AISummaryBlock = ({
14
+ status,
15
+ testId = 'smart-ai-summary-block',
16
+ ...props
17
+ }) => {
18
+ if (status !== SmartLinkStatus.Resolved) {
19
+ return null;
20
+ }
21
+ return /*#__PURE__*/React.createElement(AISummaryBlockResolvedView, _extends({}, props, {
22
+ testId: testId
23
+ }));
24
+ };
25
+ export default AISummaryBlock;
@@ -0,0 +1,62 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React, { useCallback, useMemo } from 'react';
3
+ import { FormattedMessage } from 'react-intl-next';
4
+ import { ActionName, SmartLinkAlignment, SmartLinkSize, SmartLinkWidth } from '../../../../../../constants';
5
+ import { useFlexibleUiContext } from '../../../../../../state/flexible-ui-context';
6
+ import ActionGroup from '../../action-group';
7
+ import Block from '../../block';
8
+ import ElementGroup from '../../element-group';
9
+ import { filterActionItems, getActionGroupStyles, renderElementItems } from '../../utils';
10
+ import { messages } from '../../../../../../messages';
11
+ const AISummaryBlockResolvedView = props => {
12
+ const {
13
+ actions = [],
14
+ metadata,
15
+ testId,
16
+ onActionMenuOpenChange,
17
+ onAIActionChange,
18
+ size = SmartLinkSize.Medium
19
+ } = props;
20
+ const context = useFlexibleUiContext();
21
+ const metadataElements = renderElementItems(metadata);
22
+ const onAIActionClick = useCallback(() => {
23
+ if (onAIActionChange) {
24
+ onAIActionChange();
25
+ }
26
+ }, [onAIActionChange]);
27
+ const combinedActions = useMemo(() => {
28
+ const aiAction = {
29
+ content: /*#__PURE__*/React.createElement(FormattedMessage, messages.ai_summarize),
30
+ name: ActionName.CustomAction,
31
+ onClick: onAIActionClick,
32
+ testId: `${testId}-ai-summary-action`
33
+ };
34
+ return [aiAction, ...actions];
35
+ }, [actions, onAIActionClick, testId]);
36
+ const hasActions = useMemo(() => {
37
+ var _filterActionItems;
38
+ return ((_filterActionItems = filterActionItems(combinedActions, context)) === null || _filterActionItems === void 0 ? void 0 : _filterActionItems.length) > 0;
39
+ }, [combinedActions, context]);
40
+ const onDropdownOpenChange = useCallback(isOpen => {
41
+ if (onActionMenuOpenChange) {
42
+ onActionMenuOpenChange({
43
+ isOpen
44
+ });
45
+ }
46
+ }, [onActionMenuOpenChange]);
47
+ return /*#__PURE__*/React.createElement(Block, _extends({}, props, {
48
+ testId: `${testId}-resolved-view`
49
+ }), /*#__PURE__*/React.createElement(ElementGroup, {
50
+ width: SmartLinkWidth.Flexible
51
+ }, metadataElements), hasActions && /*#__PURE__*/React.createElement(ElementGroup, {
52
+ testId: "smart-element-group-actions",
53
+ align: SmartLinkAlignment.Right,
54
+ overrideCss: getActionGroupStyles(size),
55
+ width: SmartLinkWidth.Flexible
56
+ }, /*#__PURE__*/React.createElement(ActionGroup, {
57
+ onDropdownOpenChange: onDropdownOpenChange,
58
+ items: combinedActions,
59
+ appearance: "default"
60
+ })));
61
+ };
62
+ export default AISummaryBlockResolvedView;
@@ -1,5 +1,4 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import { css } from '@emotion/react';
3
2
  import React, { useCallback, useMemo } from 'react';
4
3
  import { SmartLinkAlignment, SmartLinkDirection, SmartLinkSize, SmartLinkWidth } from '../../../../../../constants';
5
4
  import { useFlexibleUiContext } from '../../../../../../state/flexible-ui-context';
@@ -7,17 +6,7 @@ import { Provider } from '../../../elements';
7
6
  import ActionGroup from '../../action-group';
8
7
  import Block from '../../block';
9
8
  import ElementGroup from '../../element-group';
10
- import { filterActionItems } from '../../utils';
11
- const getActionGroupStyles = size => {
12
- if (size === SmartLinkSize.XLarge) {
13
- // The biggest height of the action button exceeds the max line-height
14
- // of the elements causing the action on the block with x-large size to
15
- // get cut at the bottom.
16
- return css`
17
- max-height: 2rem;
18
- `;
19
- }
20
- };
9
+ import { filterActionItems, getActionGroupStyles } from '../../utils';
21
10
  const FooterBlockResolvedView = props => {
22
11
  const {
23
12
  actions,
@@ -7,4 +7,5 @@ export { default as CustomBlock } from './block';
7
7
 
8
8
  // Internal components to be used within @atlaskit/smart-card only.
9
9
  export { default as InternalFooterBlock } from './footer-block/resolved';
10
- export { default as RelatedUrlsBlock } from './related-urls-block';
10
+ export { default as RelatedUrlsBlock } from './related-urls-block';
11
+ export { default as AISummaryBlock } from './ai-summary-block';
@@ -111,6 +111,16 @@ export const isJSXElementNull = children => {
111
111
  return Boolean(children.type() === null);
112
112
  };
113
113
  const isElementOrElementGroup = node => /*#__PURE__*/React.isValidElement(node) && (isFlexibleUiElement(node) || node.type === ElementGroup);
114
+ export const getActionGroupStyles = size => {
115
+ if (size === SmartLinkSize.XLarge) {
116
+ // The biggest height of the action button exceeds the max line-height
117
+ // of the elements causing the action on the block with x-large size to
118
+ // get cut at the bottom.
119
+ return css`
120
+ max-height: 2rem;
121
+ `;
122
+ }
123
+ };
114
124
  export const filterActionItems = (items = [], context) => {
115
125
  return items.filter(item => {
116
126
  switch (item.name) {
@@ -7,7 +7,7 @@ import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-m
7
7
  import LinkWarningModal from './LinkWarningModal';
8
8
  const PACKAGE_DATA = {
9
9
  packageName: "@atlaskit/smart-card",
10
- packageVersion: "26.46.0",
10
+ packageVersion: "26.46.1",
11
11
  componentName: 'linkUrl'
12
12
  };
13
13
  const Link = withLinkClickedEvent('a');
@@ -0,0 +1,108 @@
1
+ import React from 'react';
2
+ import SVG from '@atlaskit/icon/svg';
3
+ import { B200, B400 } from '@atlaskit/theme/colors';
4
+ /**
5
+ * The bulk of this file is originally from
6
+ * https://bitbucket.org/atlassian/barrel/src/master/ui/platform/ui-kit/ai
7
+ * with modifications
8
+ */
9
+ const AiIcon = props => /*#__PURE__*/React.createElement(SVG, props, /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("linearGradient", {
10
+ id: "ai_icon_lg0",
11
+ x1: "21",
12
+ y1: "12",
13
+ x2: "17.5",
14
+ y2: "12",
15
+ gradientUnits: "userSpaceOnUse"
16
+ }, /*#__PURE__*/React.createElement("stop", {
17
+ offset: "0.270833",
18
+ stopColor: `var(--ds-icon-accent-blue, ${B200})`,
19
+ color: `var(--ds-icon-accent-blue, ${B200})`
20
+ }), /*#__PURE__*/React.createElement("stop", {
21
+ offset: "1",
22
+ stopColor: `var(--ds-text-accent-blue, ${B400})`,
23
+ color: `var(--ds-text-accent-blue, ${B400})`
24
+ })), /*#__PURE__*/React.createElement("linearGradient", {
25
+ id: "ai_icon_lg1",
26
+ x1: "12.5",
27
+ y1: "3",
28
+ x2: "12.5",
29
+ y2: "6.5",
30
+ gradientUnits: "userSpaceOnUse"
31
+ }, /*#__PURE__*/React.createElement("stop", {
32
+ offset: "0.1875",
33
+ stopColor: `var(--ds-icon-accent-blue, ${B200})`,
34
+ color: `var(--ds-icon-accent-blue, ${B200})`
35
+ }), /*#__PURE__*/React.createElement("stop", {
36
+ offset: "1",
37
+ stopColor: `var(--ds-text-accent-blue, ${B400})`,
38
+ color: `var(--ds-text-accent-blue, ${B400})`
39
+ })), /*#__PURE__*/React.createElement("linearGradient", {
40
+ id: "ai_icon_lg2",
41
+ x1: "6.82996",
42
+ y1: "12",
43
+ x2: "3.32996",
44
+ y2: "12",
45
+ gradientUnits: "userSpaceOnUse"
46
+ }, /*#__PURE__*/React.createElement("stop", {
47
+ stopColor: `var(--ds-text-accent-blue, ${B400})`,
48
+ color: `var(--ds-text-accent-blue, ${B400})`
49
+ }), /*#__PURE__*/React.createElement("stop", {
50
+ offset: "0.791667",
51
+ stopColor: `var(--ds-icon-accent-blue, ${B200})`,
52
+ color: `var(--ds-icon-accent-blue, ${B200})`
53
+ })), /*#__PURE__*/React.createElement("linearGradient", {
54
+ id: "ai_icon_lg3",
55
+ x1: "12.5",
56
+ y1: "17",
57
+ x2: "12.5",
58
+ y2: "21",
59
+ gradientUnits: "userSpaceOnUse"
60
+ }, /*#__PURE__*/React.createElement("stop", {
61
+ stopColor: `var(--ds-text-accent-blue, ${B400})`,
62
+ color: `var(--ds-text-accent-blue, ${B400})`
63
+ }), /*#__PURE__*/React.createElement("stop", {
64
+ offset: "0.802083",
65
+ stopColor: `var(--ds-icon-accent-blue, ${B200})`,
66
+ color: `var(--ds-icon-accent-blue, ${B200})`
67
+ }))), /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("path", {
68
+ fillRule: "evenodd",
69
+ clipRule: "evenodd",
70
+ d: "M17.17 12C17.17 11.4477 17.6177 11 18.17 11H20C20.5523 11 21 11.4477 21 12C21 12.5523 20.5523 13 20 13H18.17C17.6177 13 17.17 12.5523 17.17 12Z",
71
+ fill: "url(#ai_icon_lg0)"
72
+ }), /*#__PURE__*/React.createElement("path", {
73
+ fillRule: "evenodd",
74
+ clipRule: "evenodd",
75
+ d: "M12 3C12.5523 3 13 3.44772 13 4V5.83C13 6.38228 12.5523 6.83 12 6.83C11.4477 6.83 11 6.38228 11 5.83V4C11 3.44772 11.4477 3 12 3Z",
76
+ fill: "url(#ai_icon_lg1)"
77
+ }), /*#__PURE__*/React.createElement("path", {
78
+ fillRule: "evenodd",
79
+ clipRule: "evenodd",
80
+ d: "M3 12C3 11.4477 3.44772 11 4 11H5.83C6.38228 11 6.83 11.4477 6.83 12C6.83 12.5523 6.38228 13 5.83 13H4C3.44772 13 3 12.5523 3 12Z",
81
+ fill: "url(#ai_icon_lg2)"
82
+ }), /*#__PURE__*/React.createElement("path", {
83
+ fillRule: "evenodd",
84
+ clipRule: "evenodd",
85
+ d: "M12 17.17C12.5523 17.17 13 17.6177 13 18.17V20C13 20.5523 12.5523 21 12 21C11.4477 21 11 20.5523 11 20V18.17C11 17.6177 11.4477 17.17 12 17.17Z",
86
+ fill: "url(#ai_icon_lg3)"
87
+ }), /*#__PURE__*/React.createElement("path", {
88
+ fillRule: "evenodd",
89
+ clipRule: "evenodd",
90
+ d: "M14.2929 14.2929C14.6835 13.9024 15.3166 13.9024 15.7071 14.2929L19.7071 18.2929C20.0977 18.6834 20.0977 19.3166 19.7071 19.7071C19.3166 20.0976 18.6835 20.0976 18.2929 19.7071L14.2929 15.7071C13.9024 15.3166 13.9024 14.6834 14.2929 14.2929Z",
91
+ fill: `var(--ds-icon-accent-blue, ${B200})`
92
+ }), /*#__PURE__*/React.createElement("path", {
93
+ fillRule: "evenodd",
94
+ clipRule: "evenodd",
95
+ d: "M19.7071 4.29289C20.0977 4.68342 20.0977 5.31658 19.7071 5.70711L15.7071 9.70711C15.3166 10.0976 14.6835 10.0976 14.2929 9.70711C13.9024 9.31658 13.9024 8.68342 14.2929 8.29289L18.2929 4.29289C18.6835 3.90237 19.3166 3.90237 19.7071 4.29289Z",
96
+ fill: `var(--ds-icon-accent-blue, ${B200})`
97
+ }), /*#__PURE__*/React.createElement("path", {
98
+ fillRule: "evenodd",
99
+ clipRule: "evenodd",
100
+ d: "M4.29289 4.29289C4.68342 3.90237 5.31658 3.90237 5.70711 4.29289L9.70711 8.29289C10.0976 8.68342 10.0976 9.31658 9.70711 9.70711C9.31658 10.0976 8.68342 10.0976 8.29289 9.70711L4.29289 5.70711C3.90237 5.31658 3.90237 4.68342 4.29289 4.29289Z",
101
+ fill: `var(--ds-icon-accent-blue, ${B200})`
102
+ }), /*#__PURE__*/React.createElement("path", {
103
+ fillRule: "evenodd",
104
+ clipRule: "evenodd",
105
+ d: "M9.70711 14.2929C10.0976 14.6834 10.0976 15.3166 9.70711 15.7071L5.70711 19.7071C5.31658 20.0976 4.68342 20.0976 4.29289 19.7071C3.90237 19.3166 3.90237 18.6834 4.29289 18.2929L8.29289 14.2929C8.68342 13.9024 9.31658 13.9024 9.70711 14.2929Z",
106
+ fill: `var(--ds-icon-accent-blue, ${B200})`
107
+ })));
108
+ export default AiIcon;