@atlaskit/user-picker 11.23.3 → 11.25.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 +16 -0
- package/afm-cc/tsconfig.json +3 -0
- package/afm-jira/tsconfig.json +3 -0
- package/afm-products/tsconfig.json +3 -0
- package/dist/cjs/analytics.js +2 -1
- package/dist/cjs/components/AvatarItemOption.js +31 -2
- package/dist/cjs/components/AvatarOrIcon.js +1 -1
- package/dist/cjs/components/BaseUserPicker.js +69 -39
- package/dist/cjs/components/ClearIndicator.js +1 -1
- package/dist/cjs/components/Control.js +1 -1
- package/dist/cjs/components/CustomOption/main.js +1 -1
- package/dist/cjs/components/EmailOption/main.js +1 -1
- package/dist/cjs/components/ExternalUserOption/ExternalAvatarItemOption.js +1 -1
- package/dist/cjs/components/ExternalUserOption/InfoIcon.js +1 -1
- package/dist/cjs/components/GroupOption/main.js +1 -1
- package/dist/cjs/components/Input.js +1 -1
- package/dist/cjs/components/MultiValue.js +152 -10
- package/dist/cjs/components/MultiValueContainer.js +1 -1
- package/dist/cjs/components/SingleValue.compiled.css +2 -0
- package/dist/cjs/components/SingleValue.js +13 -3
- package/dist/cjs/components/SingleValueContainer.js +1 -1
- package/dist/cjs/components/UserPicker.js +1 -1
- package/dist/cjs/components/i18n.js +5 -0
- package/dist/cjs/components/styles.js +2 -1
- package/dist/cjs/components/utils.js +1 -1
- package/dist/cjs/util/group-options-by-type/index.js +7 -3
- package/dist/es2019/analytics.js +1 -0
- package/dist/es2019/components/AvatarItemOption.js +31 -2
- package/dist/es2019/components/AvatarOrIcon.js +1 -1
- package/dist/es2019/components/BaseUserPicker.js +30 -1
- package/dist/es2019/components/ClearIndicator.js +1 -1
- package/dist/es2019/components/Control.js +1 -1
- package/dist/es2019/components/CustomOption/main.js +1 -1
- package/dist/es2019/components/EmailOption/main.js +1 -1
- package/dist/es2019/components/ExternalUserOption/ExternalAvatarItemOption.js +1 -1
- package/dist/es2019/components/ExternalUserOption/InfoIcon.js +1 -1
- package/dist/es2019/components/GroupOption/main.js +1 -1
- package/dist/es2019/components/Input.js +1 -1
- package/dist/es2019/components/MultiValue.js +151 -11
- package/dist/es2019/components/MultiValueContainer.js +1 -1
- package/dist/es2019/components/SingleValue.compiled.css +2 -0
- package/dist/es2019/components/SingleValue.js +12 -3
- package/dist/es2019/components/SingleValueContainer.js +1 -1
- package/dist/es2019/components/UserPicker.js +1 -1
- package/dist/es2019/components/i18n.js +5 -0
- package/dist/es2019/components/styles.js +2 -1
- package/dist/es2019/components/utils.js +1 -1
- package/dist/es2019/util/group-options-by-type/index.js +7 -3
- package/dist/esm/analytics.js +1 -0
- package/dist/esm/components/AvatarItemOption.js +31 -2
- package/dist/esm/components/AvatarOrIcon.js +1 -1
- package/dist/esm/components/BaseUserPicker.js +69 -39
- package/dist/esm/components/ClearIndicator.js +1 -1
- package/dist/esm/components/Control.js +1 -1
- package/dist/esm/components/CustomOption/main.js +1 -1
- package/dist/esm/components/EmailOption/main.js +1 -1
- package/dist/esm/components/ExternalUserOption/ExternalAvatarItemOption.js +1 -1
- package/dist/esm/components/ExternalUserOption/InfoIcon.js +1 -1
- package/dist/esm/components/GroupOption/main.js +1 -1
- package/dist/esm/components/Input.js +1 -1
- package/dist/esm/components/MultiValue.js +150 -10
- package/dist/esm/components/MultiValueContainer.js +1 -1
- package/dist/esm/components/SingleValue.compiled.css +2 -0
- package/dist/esm/components/SingleValue.js +12 -3
- package/dist/esm/components/SingleValueContainer.js +1 -1
- package/dist/esm/components/UserPicker.js +1 -1
- package/dist/esm/components/i18n.js +5 -0
- package/dist/esm/components/styles.js +2 -1
- package/dist/esm/components/utils.js +1 -1
- package/dist/esm/util/group-options-by-type/index.js +7 -3
- package/dist/types/analytics.d.ts +2 -2
- package/dist/types/components/AvatarItemOption.d.ts +2 -2
- package/dist/types/components/BaseUserPicker.d.ts +4 -1
- package/dist/types/components/ExternalUserOption/index.d.ts +4 -2
- package/dist/types/components/ExternalUserOption/main.d.ts +3 -2
- package/dist/types/components/GroupOption/main.d.ts +2 -2
- package/dist/types/components/PopupUserPicker.d.ts +90 -86
- package/dist/types/components/UserPicker.d.ts +2 -1
- package/dist/types/components/i18n.d.ts +5 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/types.d.ts +4 -0
- package/dist/types/util/group-options-by-type/index.d.ts +2 -1
- package/dist/types-ts4.5/analytics.d.ts +2 -2
- package/dist/types-ts4.5/components/AvatarItemOption.d.ts +2 -2
- package/dist/types-ts4.5/components/BaseUserPicker.d.ts +4 -1
- package/dist/types-ts4.5/components/ExternalUserOption/index.d.ts +4 -2
- package/dist/types-ts4.5/components/ExternalUserOption/main.d.ts +3 -2
- package/dist/types-ts4.5/components/GroupOption/main.d.ts +2 -2
- package/dist/types-ts4.5/components/PopupUserPicker.d.ts +90 -86
- package/dist/types-ts4.5/components/UserPicker.d.ts +2 -1
- package/dist/types-ts4.5/components/i18n.d.ts +5 -0
- package/dist/types-ts4.5/index.d.ts +1 -1
- package/dist/types-ts4.5/types.d.ts +4 -0
- package/dist/types-ts4.5/util/group-options-by-type/index.d.ts +2 -1
- package/package.json +16 -6
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
/* SingleValue.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* SingleValue.tsx generated by @compiled/babel-plugin v0.39.1 */
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
5
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
6
|
Object.defineProperty(exports, "__esModule", {
|
|
6
7
|
value: true
|
|
@@ -10,18 +11,22 @@ require("./SingleValue.compiled.css");
|
|
|
10
11
|
var React = _interopRequireWildcard(require("react"));
|
|
11
12
|
var _runtime = require("@compiled/react/runtime");
|
|
12
13
|
var _select = require("@atlaskit/select");
|
|
14
|
+
var _lozenge = _interopRequireDefault(require("@atlaskit/lozenge"));
|
|
13
15
|
var _AvatarOrIcon = require("./AvatarOrIcon");
|
|
14
16
|
var _SizeableAvatar = require("./SizeableAvatar");
|
|
15
17
|
var _utils = require("./utils");
|
|
16
18
|
var _avatar = require("@atlaskit/avatar");
|
|
17
19
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
18
20
|
var _verifiedTeamIcon = require("@atlaskit/people-teams-ui-public/verified-team-icon");
|
|
21
|
+
var _reactIntlNext = require("react-intl-next");
|
|
19
22
|
var _compiled = require("@atlaskit/primitives/compiled");
|
|
23
|
+
var _i18n = require("./i18n");
|
|
20
24
|
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); }
|
|
21
25
|
var styles = {
|
|
22
26
|
avatarItem: "_1reo15vq _18m915vq _4cvr1h6o _1ul953f4",
|
|
23
27
|
avatarItemTextWrapper: "_16jlkb7n _1o9zkb7n _i0dl1osq _1ul9idpf _p12f1osq _bozgu2gc _vwz419ii",
|
|
24
|
-
avatarItemText: "_syazi7uo _1reo15vq _1bto1l2s _o5721q9c"
|
|
28
|
+
avatarItemText: "_syazi7uo _1reo15vq _1bto1l2s _o5721q9c",
|
|
29
|
+
archivedLozengeWrapper: "_1e0c1txw _19bv1b66"
|
|
25
30
|
};
|
|
26
31
|
var ElementAfter = function ElementAfter(props) {
|
|
27
32
|
var data = props.data.data,
|
|
@@ -41,6 +46,7 @@ var SingleValue = exports.SingleValue = function SingleValue(props) {
|
|
|
41
46
|
_props$selectProps = props.selectProps,
|
|
42
47
|
appearance = _props$selectProps.appearance,
|
|
43
48
|
isFocused = _props$selectProps.isFocused;
|
|
49
|
+
var canShowArchivedLozenge = (0, _utils.isTeam)(data) && (data === null || data === void 0 ? void 0 : data.state) === 'DISBANDED' && (0, _platformFeatureFlags.fg)('enable-sup-archive-experience');
|
|
44
50
|
return !isFocused ? /*#__PURE__*/React.createElement(_select.components.SingleValue, props, /*#__PURE__*/React.createElement(_compiled.Flex, {
|
|
45
51
|
xcss: styles.avatarItem
|
|
46
52
|
}, data.icon ? /*#__PURE__*/React.createElement(_AvatarOrIcon.AvatarOrIcon, {
|
|
@@ -63,5 +69,9 @@ var SingleValue = exports.SingleValue = function SingleValue(props) {
|
|
|
63
69
|
xcss: styles.avatarItemText
|
|
64
70
|
}, /*#__PURE__*/React.createElement(_compiled.Inline, {
|
|
65
71
|
alignBlock: "center"
|
|
66
|
-
}, label, /*#__PURE__*/React.createElement(
|
|
72
|
+
}, label, canShowArchivedLozenge ? /*#__PURE__*/React.createElement(_compiled.Box, {
|
|
73
|
+
xcss: styles.archivedLozengeWrapper
|
|
74
|
+
}, /*#__PURE__*/React.createElement(_lozenge.default, {
|
|
75
|
+
appearance: "default"
|
|
76
|
+
}, /*#__PURE__*/React.createElement(_reactIntlNext.FormattedMessage, _i18n.messages.archivedLozenge))) : null, /*#__PURE__*/React.createElement(ElementAfter, props))))))) : null;
|
|
67
77
|
};
|
|
@@ -176,6 +176,11 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
|
|
|
176
176
|
defaultMessage: 'Guest groups can only access certain spaces and have limited access to user info.',
|
|
177
177
|
description: 'Tooltip text for lozenge showing that a group is for guests in Confluence'
|
|
178
178
|
},
|
|
179
|
+
archivedLozenge: {
|
|
180
|
+
id: 'fabric.elements.user-picker.archived.lozenge.text',
|
|
181
|
+
defaultMessage: 'Archived',
|
|
182
|
+
description: 'Text within the lozenge when the selected team has been archived/disbanded'
|
|
183
|
+
},
|
|
179
184
|
userTypeLabel: {
|
|
180
185
|
id: 'fabric.elements.user-picker.user.type.label',
|
|
181
186
|
defaultMessage: 'People',
|
|
@@ -10,6 +10,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
10
10
|
var _colors = require("@atlaskit/theme/colors");
|
|
11
11
|
var _memoizeOne = _interopRequireDefault(require("memoize-one"));
|
|
12
12
|
var _select = require("@atlaskit/select");
|
|
13
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
13
14
|
var _excluded = ["_paddingTop", "_paddingBottom", "_paddingLeft", "_paddingRight"],
|
|
14
15
|
_excluded2 = ["_paddingTop", "_paddingBottom", "_position"];
|
|
15
16
|
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; }
|
|
@@ -36,7 +37,7 @@ var getStyles = exports.getStyles = (0, _memoizeOne.default)(function (width, is
|
|
|
36
37
|
return _objectSpread(_objectSpread({}, css), {}, {
|
|
37
38
|
width: width,
|
|
38
39
|
borderColor: state.isFocused ? "var(--ds-border-focused, ".concat(css.borderColor, ")") : state.isInvalid ? "var(--ds-border-danger, ".concat(_colors.R400, ")") : state.selectProps.subtle || state.selectProps.noBorder ? 'transparent' : "var(--ds-border-input, ".concat(_colors.N90, ")"),
|
|
39
|
-
backgroundColor: state.isFocused ? "var(--ds-background-input, ".concat(css['backgroundColor'], ")") : state.selectProps.subtle ? 'transparent' : state.selectProps.textFieldBackgroundColor ? "var(--ds-background-input, ".concat(_colors.N10, ")") : "var(--ds-background-input, ".concat(_colors.N20, ")"),
|
|
40
|
+
backgroundColor: state.isFocused ? "var(--ds-background-input, ".concat(css['backgroundColor'], ")") : state.selectProps.subtle ? 'transparent' : state.isDisabled && (0, _platformFeatureFlags.fg)('platform-dst-lozenge-tag-badge-visual-uplifts') ? "var(--ds-background-disabled, ".concat(_colors.N10, ")") : state.selectProps.textFieldBackgroundColor ? "var(--ds-background-input, ".concat(_colors.N10, ")") : "var(--ds-background-input, ".concat(_colors.N20, ")"),
|
|
40
41
|
'&:hover .fabric-user-picker__clear-indicator': {
|
|
41
42
|
opacity: 1
|
|
42
43
|
},
|
|
@@ -19,7 +19,7 @@ var isUser = exports.isUser = function isUser(option) {
|
|
|
19
19
|
return option.type === undefined || option.type === _types.UserType;
|
|
20
20
|
};
|
|
21
21
|
var isTeam = exports.isTeam = function isTeam(option) {
|
|
22
|
-
return option.type === _types.TeamType;
|
|
22
|
+
return (option === null || option === void 0 ? void 0 : option.type) === _types.TeamType;
|
|
23
23
|
};
|
|
24
24
|
var isGroup = exports.isGroup = function isGroup(option) {
|
|
25
25
|
return option.type === _types.GroupType;
|
|
@@ -6,10 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.groupOptionsByType = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
9
10
|
var _reactIntlNext = require("react-intl-next");
|
|
10
11
|
var _memoizeOne = _interopRequireDefault(require("memoize-one"));
|
|
11
12
|
var _i18n = require("../../components/i18n");
|
|
12
|
-
var getLabelForType = function getLabelForType(type) {
|
|
13
|
+
var getLabelForType = function getLabelForType(type, customLabels) {
|
|
14
|
+
if (customLabels && type in customLabels && (0, _platformFeatureFlags.fg)('jsm-wfo-assignee-recommendation-on-queues')) {
|
|
15
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, customLabels[type]);
|
|
16
|
+
}
|
|
13
17
|
switch (type) {
|
|
14
18
|
case 'user':
|
|
15
19
|
return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _i18n.messages.userTypeLabel);
|
|
@@ -25,7 +29,7 @@ var getLabelForType = function getLabelForType(type) {
|
|
|
25
29
|
return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _i18n.messages.otherTypeLabel);
|
|
26
30
|
}
|
|
27
31
|
};
|
|
28
|
-
var groupOptionsByType = exports.groupOptionsByType = (0, _memoizeOne.default)(function (options, groupByTypeOrder) {
|
|
32
|
+
var groupOptionsByType = exports.groupOptionsByType = (0, _memoizeOne.default)(function (options, groupByTypeOrder, customGroupLabels) {
|
|
29
33
|
// If groupByTypeOrder is empty, just return the original options
|
|
30
34
|
if (groupByTypeOrder.length === 0) {
|
|
31
35
|
return options;
|
|
@@ -45,7 +49,7 @@ var groupOptionsByType = exports.groupOptionsByType = (0, _memoizeOne.default)(f
|
|
|
45
49
|
groupByTypeOrder.forEach(function (type) {
|
|
46
50
|
if (groupedMap.has(type)) {
|
|
47
51
|
result.push({
|
|
48
|
-
label: getLabelForType(type),
|
|
52
|
+
label: getLabelForType(type, customGroupLabels),
|
|
49
53
|
options: groupedMap.get(type)
|
|
50
54
|
});
|
|
51
55
|
groupedMap.delete(type);
|
package/dist/es2019/analytics.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-imports
|
|
1
2
|
import { createAndFireEvent } from '@atlaskit/analytics-next';
|
|
2
3
|
import FeatureGates from '@atlaskit/feature-gate-js-client';
|
|
3
4
|
// eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
* @jsx jsx
|
|
4
4
|
*/
|
|
5
5
|
import React from 'react';
|
|
6
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
|
|
6
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports
|
|
7
7
|
import { css, jsx } from '@emotion/react';
|
|
8
8
|
import Lozenge from '@atlaskit/lozenge';
|
|
9
|
+
import Tag from '@atlaskit/tag';
|
|
9
10
|
import { isLozengeText } from './utils';
|
|
10
11
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
11
12
|
const AsyncTooltip = /*#__PURE__*/React.lazy(() => import( /* webpackChunkName: "@atlaskit-internal_@atlaskit/tooltip" */'@atlaskit/tooltip').then(module => {
|
|
@@ -106,6 +107,14 @@ export const textWrapper = color => {
|
|
|
106
107
|
color
|
|
107
108
|
});
|
|
108
109
|
};
|
|
110
|
+
const lozengeAppearanceToTagColor = {
|
|
111
|
+
default: 'standard',
|
|
112
|
+
success: 'lime',
|
|
113
|
+
removed: 'red',
|
|
114
|
+
inprogress: 'blue',
|
|
115
|
+
new: 'purple',
|
|
116
|
+
moved: 'orange'
|
|
117
|
+
};
|
|
109
118
|
export const AvatarItemOption = ({
|
|
110
119
|
avatar,
|
|
111
120
|
isDisabled,
|
|
@@ -113,6 +122,26 @@ export const AvatarItemOption = ({
|
|
|
113
122
|
primaryText,
|
|
114
123
|
secondaryText
|
|
115
124
|
}) => {
|
|
125
|
+
const renderTag = () => {
|
|
126
|
+
if (isLozengeText(lozenge) && !lozenge.isBold) {
|
|
127
|
+
const color = lozenge.appearance ? lozengeAppearanceToTagColor[lozenge.appearance] : 'standard';
|
|
128
|
+
const tag = jsx(Tag, {
|
|
129
|
+
text: lozenge.text,
|
|
130
|
+
color: color,
|
|
131
|
+
isRemovable: false,
|
|
132
|
+
migration_fallback: "lozenge"
|
|
133
|
+
});
|
|
134
|
+
if (lozenge.tooltip) {
|
|
135
|
+
return jsx(React.Suspense, {
|
|
136
|
+
fallback: tag
|
|
137
|
+
}, jsx(AsyncTooltip, {
|
|
138
|
+
content: lozenge.tooltip
|
|
139
|
+
}, tag));
|
|
140
|
+
}
|
|
141
|
+
return tag;
|
|
142
|
+
}
|
|
143
|
+
return renderLozenge();
|
|
144
|
+
};
|
|
116
145
|
const renderLozenge = () => {
|
|
117
146
|
if (isLozengeText(lozenge)) {
|
|
118
147
|
if (lozenge !== null && lozenge !== void 0 && lozenge.tooltip) {
|
|
@@ -140,6 +169,6 @@ export const AvatarItemOption = ({
|
|
|
140
169
|
css: getTextStyle(true)
|
|
141
170
|
}, secondaryText))), lozenge && jsx("div", {
|
|
142
171
|
css: additionalInfo
|
|
143
|
-
}, renderLozenge()))
|
|
172
|
+
}, fg('platform-dst-lozenge-tag-badge-visual-uplifts') ? renderTag() : renderLozenge()))
|
|
144
173
|
);
|
|
145
174
|
};
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import { SizeableAvatar } from './SizeableAvatar';
|
|
7
7
|
import { getAvatarSize } from './utils';
|
|
8
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
|
|
8
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports
|
|
9
9
|
import { css, jsx } from '@emotion/react';
|
|
10
10
|
const iconStyle = css({
|
|
11
11
|
display: 'flex',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
4
|
import { withAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
4
5
|
import { UFOExperienceState } from '@atlaskit/ufo';
|
|
5
6
|
import debounce from 'lodash/debounce';
|
|
@@ -341,7 +342,7 @@ export class BaseUserPickerWithoutAnalytics extends React.Component {
|
|
|
341
342
|
hoveringClearIndicator
|
|
342
343
|
});
|
|
343
344
|
});
|
|
344
|
-
_defineProperty(this, "
|
|
345
|
+
_defineProperty(this, "getOptionsOld", () => {
|
|
345
346
|
const options = getOptions(this.state.options) || [];
|
|
346
347
|
const {
|
|
347
348
|
maxOptions,
|
|
@@ -365,6 +366,34 @@ export class BaseUserPickerWithoutAnalytics extends React.Component {
|
|
|
365
366
|
}
|
|
366
367
|
return groupByTypeOrder ? groupOptionsByType(options, groupByTypeOrder) : options;
|
|
367
368
|
});
|
|
369
|
+
_defineProperty(this, "getOptionsNew", () => {
|
|
370
|
+
const options = getOptions(this.state.options) || [];
|
|
371
|
+
const {
|
|
372
|
+
maxOptions,
|
|
373
|
+
isMulti,
|
|
374
|
+
groupByTypeOrder,
|
|
375
|
+
customGroupLabels
|
|
376
|
+
} = this.props;
|
|
377
|
+
if (maxOptions === 0) {
|
|
378
|
+
return [];
|
|
379
|
+
}
|
|
380
|
+
if (maxOptions && maxOptions > 0 && maxOptions < options.length) {
|
|
381
|
+
const {
|
|
382
|
+
value
|
|
383
|
+
} = this.state;
|
|
384
|
+
let filteredOptions = options;
|
|
385
|
+
// Filter out previously selected options
|
|
386
|
+
if (isMulti && Array.isArray(value)) {
|
|
387
|
+
const valueIds = value.map(item => item.data.id);
|
|
388
|
+
filteredOptions = options.filter(option => valueIds.indexOf(option.data.id) === -1);
|
|
389
|
+
}
|
|
390
|
+
return groupByTypeOrder ? groupOptionsByType(filteredOptions.slice(0, maxOptions), groupByTypeOrder, customGroupLabels) : filteredOptions.slice(0, maxOptions);
|
|
391
|
+
}
|
|
392
|
+
return groupByTypeOrder ? groupOptionsByType(options, groupByTypeOrder, customGroupLabels) : options;
|
|
393
|
+
});
|
|
394
|
+
_defineProperty(this, "getOptions", () => {
|
|
395
|
+
return fg('jsm-wfo-assignee-recommendation-on-queues') ? this.getOptionsNew() : this.getOptionsOld();
|
|
396
|
+
});
|
|
368
397
|
_defineProperty(this, "getAppearance", () => this.props.appearance ? this.props.appearance : 'normal');
|
|
369
398
|
_defineProperty(this, "handleClickDraggableParentComponent", () => {
|
|
370
399
|
if (this.state.initialFocusHandled) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* ClearIndicator.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* ClearIndicator.tsx generated by @compiled/babel-plugin v0.39.1 */
|
|
2
2
|
import _extends from "@babel/runtime/helpers/extends";
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
4
|
import "./ClearIndicator.compiled.css";
|
|
@@ -4,7 +4,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
4
4
|
* @jsx jsx
|
|
5
5
|
*/
|
|
6
6
|
import { B400, N800, N200 } from '@atlaskit/theme/colors';
|
|
7
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
|
|
7
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports
|
|
8
8
|
import { jsx } from '@emotion/react';
|
|
9
9
|
import React from 'react';
|
|
10
10
|
import { AvatarItemOption, textWrapper } from '../AvatarItemOption';
|
|
@@ -6,7 +6,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
6
6
|
import React from 'react';
|
|
7
7
|
import { FormattedMessage } from 'react-intl-next';
|
|
8
8
|
import { B400, N200, N800 } from '@atlaskit/theme/colors';
|
|
9
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
|
|
9
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports
|
|
10
10
|
import { jsx } from '@emotion/react';
|
|
11
11
|
import { AddOptionAvatar } from '../AddOptionAvatar';
|
|
12
12
|
import { AvatarItemOption, textWrapper } from '../AvatarItemOption';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @jsx jsx
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
|
|
6
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports
|
|
7
7
|
import { css, jsx } from '@emotion/react';
|
|
8
8
|
import { B400 } from '@atlaskit/theme/colors';
|
|
9
9
|
const outerWrapper = isDisabled => css({
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @jsx jsx
|
|
4
4
|
*/
|
|
5
5
|
import { useCallback, useState } from 'react';
|
|
6
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
|
|
6
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports
|
|
7
7
|
import { css, jsx } from '@emotion/react';
|
|
8
8
|
import EditorPanelIcon from '@atlaskit/icon/core/status-information';
|
|
9
9
|
import { N50, N200 } from '@atlaskit/theme/colors';
|
|
@@ -6,7 +6,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import { FormattedMessage } from 'react-intl-next';
|
|
9
|
-
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled
|
|
9
|
+
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled, @typescript-eslint/consistent-type-imports
|
|
10
10
|
import { css, jsx } from '@emotion/react';
|
|
11
11
|
import { N20, B400, N800, N200 } from '@atlaskit/theme/colors';
|
|
12
12
|
import PeopleIcon from '@atlaskit/icon/core/people-group';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Input.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* Input.tsx generated by @compiled/babel-plugin v0.39.1 */
|
|
2
2
|
import _extends from "@babel/runtime/helpers/extends";
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
4
|
import "./Input.compiled.css";
|
|
@@ -10,12 +10,19 @@ import { Box, Inline, xcss } from '@atlaskit/primitives';
|
|
|
10
10
|
import { components } from '@atlaskit/select';
|
|
11
11
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
|
|
12
12
|
import { css, jsx } from '@emotion/react';
|
|
13
|
+
import Avatar from '@atlaskit/avatar';
|
|
14
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
15
|
+
import { AvatarTag, default as Tag } from '@atlaskit/tag';
|
|
16
|
+
import TeamAvatar from '@atlaskit/teams-avatar';
|
|
13
17
|
import { AddOptionAvatar } from './AddOptionAvatar';
|
|
14
18
|
import { AvatarOrIcon } from './AvatarOrIcon';
|
|
15
19
|
import { SizeableAvatar } from './SizeableAvatar';
|
|
16
20
|
import { getAvatarUrl, isEmail, isGroup, isTeam } from './utils';
|
|
21
|
+
import Lozenge from '@atlaskit/lozenge';
|
|
17
22
|
import PeopleIcon from '@atlaskit/icon/core/people-group';
|
|
18
23
|
import { VerifiedTeamIcon } from '@atlaskit/people-teams-ui-public/verified-team-icon';
|
|
24
|
+
import { FormattedMessage } from 'react-intl-next';
|
|
25
|
+
import { messages } from './i18n';
|
|
19
26
|
export const scrollToValue = (valueContainer, control) => {
|
|
20
27
|
const {
|
|
21
28
|
top,
|
|
@@ -31,14 +38,34 @@ export const scrollToValue = (valueContainer, control) => {
|
|
|
31
38
|
valueContainer.scrollIntoView(false);
|
|
32
39
|
}
|
|
33
40
|
};
|
|
34
|
-
const
|
|
41
|
+
const groupTagContainerOld = xcss({
|
|
35
42
|
paddingLeft: 'space.025',
|
|
36
43
|
marginTop: 'space.025'
|
|
37
44
|
});
|
|
45
|
+
const groupTagContainer = xcss({
|
|
46
|
+
paddingLeft: 'space.050'
|
|
47
|
+
});
|
|
48
|
+
const archivedLozengeWrapper = xcss({
|
|
49
|
+
display: 'flex',
|
|
50
|
+
paddingLeft: 'space.050'
|
|
51
|
+
});
|
|
52
|
+
const iconStyle = css({
|
|
53
|
+
display: 'flex',
|
|
54
|
+
alignItems: 'center',
|
|
55
|
+
justifyContent: 'center',
|
|
56
|
+
flexShrink: 0,
|
|
57
|
+
width: '20px',
|
|
58
|
+
height: '20px'
|
|
59
|
+
});
|
|
38
60
|
const nameWrapper = css({
|
|
39
61
|
font: "var(--ds-font-body, normal 400 14px/20px \"Atlassian Sans\", ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, \"Helvetica Neue\", sans-serif)",
|
|
40
62
|
paddingLeft: "var(--ds-space-050, 4px)"
|
|
41
63
|
});
|
|
64
|
+
const avatarTagWrapperStyle = css({
|
|
65
|
+
display: 'inline-flex',
|
|
66
|
+
// eslint-disable-next-line @atlaskit/design-system/use-tokens-space -- offsets AvatarTag's built-in space.050 margin down to space.025
|
|
67
|
+
margin: '-2px'
|
|
68
|
+
});
|
|
42
69
|
export class MultiValue extends React.Component {
|
|
43
70
|
constructor(props) {
|
|
44
71
|
super(props);
|
|
@@ -57,7 +84,7 @@ export class MultiValue extends React.Component {
|
|
|
57
84
|
}
|
|
58
85
|
if (isGroup(data)) {
|
|
59
86
|
return jsx(Box, {
|
|
60
|
-
xcss:
|
|
87
|
+
xcss: groupTagContainerOld
|
|
61
88
|
}, jsx(PeopleIcon, {
|
|
62
89
|
color: "currentColor",
|
|
63
90
|
label: "" // This element is a decorative icon and does not require a label
|
|
@@ -85,11 +112,19 @@ export class MultiValue extends React.Component {
|
|
|
85
112
|
data
|
|
86
113
|
}
|
|
87
114
|
} = this.props;
|
|
115
|
+
const canShowArchivedLozenge = isTeam(data) && (data === null || data === void 0 ? void 0 : data.state) === 'DISBANDED' && fg('enable-sup-archive-experience');
|
|
88
116
|
if (isGroup(data) && data.includeTeamsUpdates || isTeam(data) && data.verified) {
|
|
89
117
|
return jsx(VerifiedTeamIcon, {
|
|
90
118
|
size: data.includeTeamsUpdates ? 'small' : 'medium'
|
|
91
119
|
});
|
|
92
120
|
}
|
|
121
|
+
if (canShowArchivedLozenge) {
|
|
122
|
+
return jsx(Box, {
|
|
123
|
+
xcss: archivedLozengeWrapper
|
|
124
|
+
}, jsx(Lozenge, {
|
|
125
|
+
appearance: "default"
|
|
126
|
+
}, jsx(FormattedMessage, messages.archivedLozenge)));
|
|
127
|
+
}
|
|
93
128
|
return null;
|
|
94
129
|
});
|
|
95
130
|
this.containerRef = /*#__PURE__*/React.createRef();
|
|
@@ -104,21 +139,26 @@ export class MultiValue extends React.Component {
|
|
|
104
139
|
}
|
|
105
140
|
shouldComponentUpdate(nextProps) {
|
|
106
141
|
const {
|
|
107
|
-
data:
|
|
108
|
-
label,
|
|
109
|
-
data
|
|
110
|
-
},
|
|
142
|
+
data: option,
|
|
111
143
|
innerProps,
|
|
112
144
|
isFocused
|
|
113
145
|
} = this.props;
|
|
114
146
|
const {
|
|
115
|
-
data:
|
|
116
|
-
label: nextLabel,
|
|
117
|
-
data: nextData
|
|
118
|
-
},
|
|
147
|
+
data: nextOption,
|
|
119
148
|
innerProps: nextInnerProps,
|
|
120
149
|
isFocused: nextIsFocused
|
|
121
150
|
} = nextProps;
|
|
151
|
+
if (option == null || nextOption == null) {
|
|
152
|
+
return option !== nextOption || innerProps !== nextInnerProps || isFocused !== nextIsFocused;
|
|
153
|
+
}
|
|
154
|
+
const {
|
|
155
|
+
label,
|
|
156
|
+
data
|
|
157
|
+
} = option;
|
|
158
|
+
const {
|
|
159
|
+
label: nextLabel,
|
|
160
|
+
data: nextData
|
|
161
|
+
} = nextOption;
|
|
122
162
|
|
|
123
163
|
// We can ignore onRemove here because it is an anonymous function
|
|
124
164
|
// that will be recreated every time but with the same implementation.
|
|
@@ -127,10 +167,110 @@ export class MultiValue extends React.Component {
|
|
|
127
167
|
render() {
|
|
128
168
|
const {
|
|
129
169
|
children,
|
|
130
|
-
innerProps,
|
|
170
|
+
innerProps: _innerProps,
|
|
171
|
+
removeProps,
|
|
172
|
+
data: option,
|
|
131
173
|
...rest
|
|
132
174
|
} = this.props;
|
|
175
|
+
if (fg('platform-dst-lozenge-tag-badge-visual-uplifts')) {
|
|
176
|
+
var _this$props$selectPro;
|
|
177
|
+
const {
|
|
178
|
+
data,
|
|
179
|
+
label
|
|
180
|
+
} = option;
|
|
181
|
+
const isTeamOption = isTeam(data);
|
|
182
|
+
const isGroupOption = isGroup(data);
|
|
183
|
+
const isEmailOption = isEmail(data);
|
|
184
|
+
const avatarUrl = getAvatarUrl(data);
|
|
185
|
+
const isDisabled = Boolean((_this$props$selectPro = this.props.selectProps) === null || _this$props$selectPro === void 0 ? void 0 : _this$props$selectPro.isDisabled);
|
|
186
|
+
const canShowArchivedLozenge = isTeam(data) && (data === null || data === void 0 ? void 0 : data.state) === 'DISBANDED' && fg('enable-sup-archive-experience');
|
|
187
|
+
const avatarProps = avatarUrl ? {
|
|
188
|
+
name: data.name,
|
|
189
|
+
src: avatarUrl
|
|
190
|
+
} : {
|
|
191
|
+
name: data.name
|
|
192
|
+
};
|
|
193
|
+
const removeAction = () => {
|
|
194
|
+
removeProps.onClick({});
|
|
195
|
+
return true;
|
|
196
|
+
};
|
|
197
|
+
if (isEmailOption) {
|
|
198
|
+
return jsx("span", {
|
|
199
|
+
ref: this.containerRef,
|
|
200
|
+
css: avatarTagWrapperStyle,
|
|
201
|
+
"data-user-picker-multi-value": true
|
|
202
|
+
}, jsx(Tag, {
|
|
203
|
+
text: label,
|
|
204
|
+
elemBefore: jsx(AddOptionAvatar, {
|
|
205
|
+
isLozenge: true,
|
|
206
|
+
isPendingAction: data.isPendingAction
|
|
207
|
+
}),
|
|
208
|
+
isRemovable: !isDisabled,
|
|
209
|
+
onBeforeRemoveAction: removeAction
|
|
210
|
+
}));
|
|
211
|
+
}
|
|
212
|
+
if (isGroupOption) {
|
|
213
|
+
return jsx("span", {
|
|
214
|
+
ref: this.containerRef,
|
|
215
|
+
css: avatarTagWrapperStyle,
|
|
216
|
+
"data-user-picker-multi-value": true
|
|
217
|
+
}, jsx(Tag, {
|
|
218
|
+
text: label,
|
|
219
|
+
elemBefore: jsx(Box, {
|
|
220
|
+
xcss: groupTagContainer
|
|
221
|
+
}, jsx(PeopleIcon, {
|
|
222
|
+
color: "currentColor",
|
|
223
|
+
label: "" // This element is a decorative icon and does not require a label
|
|
224
|
+
,
|
|
225
|
+
size: "small"
|
|
226
|
+
})),
|
|
227
|
+
isRemovable: !isDisabled,
|
|
228
|
+
onBeforeRemoveAction: removeAction
|
|
229
|
+
}));
|
|
230
|
+
}
|
|
231
|
+
if (data.icon) {
|
|
232
|
+
return jsx("span", {
|
|
233
|
+
ref: this.containerRef,
|
|
234
|
+
css: avatarTagWrapperStyle,
|
|
235
|
+
"data-user-picker-multi-value": true
|
|
236
|
+
}, jsx(Tag, {
|
|
237
|
+
text: label,
|
|
238
|
+
elemBefore: jsx("div", {
|
|
239
|
+
css: iconStyle,
|
|
240
|
+
style: {
|
|
241
|
+
color: data.iconColor
|
|
242
|
+
}
|
|
243
|
+
}, data.icon),
|
|
244
|
+
isRemovable: !isDisabled,
|
|
245
|
+
onBeforeRemoveAction: removeAction
|
|
246
|
+
}));
|
|
247
|
+
}
|
|
248
|
+
return jsx("span", {
|
|
249
|
+
ref: this.containerRef,
|
|
250
|
+
css: avatarTagWrapperStyle,
|
|
251
|
+
"data-user-picker-multi-value": true
|
|
252
|
+
}, isTeamOption ? jsx(React.Fragment, null, jsx(AvatarTag, {
|
|
253
|
+
type: "other",
|
|
254
|
+
text: label,
|
|
255
|
+
isVerified: isTeamOption ? data.verified : undefined,
|
|
256
|
+
isRemovable: !isDisabled,
|
|
257
|
+
onBeforeRemoveAction: removeAction,
|
|
258
|
+
avatar: props => jsx(TeamAvatar, _extends({}, props, avatarProps))
|
|
259
|
+
}), canShowArchivedLozenge ? jsx(Box, {
|
|
260
|
+
xcss: archivedLozengeWrapper
|
|
261
|
+
}, jsx(Lozenge, {
|
|
262
|
+
appearance: "default"
|
|
263
|
+
}, jsx(FormattedMessage, messages.archivedLozenge))) : null) : jsx(AvatarTag, {
|
|
264
|
+
type: "user",
|
|
265
|
+
text: label,
|
|
266
|
+
isRemovable: !isDisabled,
|
|
267
|
+
onBeforeRemoveAction: removeAction,
|
|
268
|
+
avatar: props => jsx(Avatar, _extends({}, props, avatarProps))
|
|
269
|
+
}));
|
|
270
|
+
}
|
|
133
271
|
return jsx(components.MultiValue, _extends({}, rest, {
|
|
272
|
+
data: option,
|
|
273
|
+
removeProps: removeProps,
|
|
134
274
|
innerProps: {
|
|
135
275
|
ref: this.containerRef
|
|
136
276
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* MultiValueContainer.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* MultiValueContainer.tsx generated by @compiled/babel-plugin v0.39.1 */
|
|
2
2
|
import _extends from "@babel/runtime/helpers/extends";
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
4
|
import "./MultiValueContainer.compiled.css";
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
/* SingleValue.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* SingleValue.tsx generated by @compiled/babel-plugin v0.39.1 */
|
|
2
2
|
import "./SingleValue.compiled.css";
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { ax, ix } from "@compiled/react/runtime";
|
|
5
5
|
import { components } from '@atlaskit/select';
|
|
6
|
+
import Lozenge from '@atlaskit/lozenge';
|
|
6
7
|
import { AvatarOrIcon } from './AvatarOrIcon';
|
|
7
8
|
import { SizeableAvatar } from './SizeableAvatar';
|
|
8
9
|
import { getAvatarUrl, isTeam, isGroup } from './utils';
|
|
9
10
|
import { getAppearanceForAppType } from '@atlaskit/avatar';
|
|
10
11
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
11
12
|
import { VerifiedTeamIcon } from '@atlaskit/people-teams-ui-public/verified-team-icon';
|
|
13
|
+
import { FormattedMessage } from 'react-intl-next';
|
|
12
14
|
import { Box, Flex, Inline } from '@atlaskit/primitives/compiled';
|
|
15
|
+
import { messages } from './i18n';
|
|
13
16
|
const styles = {
|
|
14
17
|
avatarItem: "_1reo15vq _18m915vq _4cvr1h6o _1ul953f4",
|
|
15
18
|
avatarItemTextWrapper: "_16jlkb7n _1o9zkb7n _i0dl1osq _1ul9idpf _p12f1osq _bozgu2gc _vwz419ii",
|
|
16
|
-
avatarItemText: "_syazi7uo _1reo15vq _1bto1l2s _o5721q9c"
|
|
19
|
+
avatarItemText: "_syazi7uo _1reo15vq _1bto1l2s _o5721q9c",
|
|
20
|
+
archivedLozengeWrapper: "_1e0c1txw _19bv1b66"
|
|
17
21
|
};
|
|
18
22
|
const ElementAfter = props => {
|
|
19
23
|
const {
|
|
@@ -42,6 +46,7 @@ export const SingleValue = props => {
|
|
|
42
46
|
isFocused
|
|
43
47
|
}
|
|
44
48
|
} = props;
|
|
49
|
+
const canShowArchivedLozenge = isTeam(data) && (data === null || data === void 0 ? void 0 : data.state) === 'DISBANDED' && fg('enable-sup-archive-experience');
|
|
45
50
|
return !isFocused ? /*#__PURE__*/React.createElement(components.SingleValue, props, /*#__PURE__*/React.createElement(Flex, {
|
|
46
51
|
xcss: styles.avatarItem
|
|
47
52
|
}, data.icon ? /*#__PURE__*/React.createElement(AvatarOrIcon, {
|
|
@@ -64,5 +69,9 @@ export const SingleValue = props => {
|
|
|
64
69
|
xcss: styles.avatarItemText
|
|
65
70
|
}, /*#__PURE__*/React.createElement(Inline, {
|
|
66
71
|
alignBlock: "center"
|
|
67
|
-
}, label, /*#__PURE__*/React.createElement(
|
|
72
|
+
}, label, canShowArchivedLozenge ? /*#__PURE__*/React.createElement(Box, {
|
|
73
|
+
xcss: styles.archivedLozengeWrapper
|
|
74
|
+
}, /*#__PURE__*/React.createElement(Lozenge, {
|
|
75
|
+
appearance: "default"
|
|
76
|
+
}, /*#__PURE__*/React.createElement(FormattedMessage, messages.archivedLozenge))) : null, /*#__PURE__*/React.createElement(ElementAfter, props))))))) : null;
|
|
68
77
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* SingleValueContainer.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* SingleValueContainer.tsx generated by @compiled/babel-plugin v0.39.1 */
|
|
2
2
|
import _extends from "@babel/runtime/helpers/extends";
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
4
|
import "./SingleValueContainer.compiled.css";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* UserPicker.tsx generated by @compiled/babel-plugin v0.
|
|
1
|
+
/* UserPicker.tsx generated by @compiled/babel-plugin v0.39.1 */
|
|
2
2
|
import _extends from "@babel/runtime/helpers/extends";
|
|
3
3
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
4
4
|
import { ax, ix } from "@compiled/react/runtime";
|