@atlaskit/lozenge 13.4.1 → 13.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @atlaskit/lozenge
2
2
 
3
+ ## 13.4.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`6d33a20db82a1`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/6d33a20db82a1) -
8
+ [ux] Added support for trailing metrics on semantic lozenges via the `trailingMetric` prop, with
9
+ optional `trailingMetricAppearance` override (including `inverse`). Not supported for accent
10
+ lozenges.
11
+ - Updated dependencies
12
+
3
13
  ## 13.4.1
4
14
 
5
15
  ### Patch Changes
@@ -6,17 +6,15 @@
6
6
  ._zulp12x7{gap:var(--ds-space-075,6px)}
7
7
  ._zulp1b66{gap:var(--ds-space-050,4px)}
8
8
  ._189ee4h9{border-width:var(--ds-border-width,1px)}
9
- ._18zr1b66{padding-inline:var(--ds-space-050,4px)}
10
- ._18zrutpp{padding-inline:var(--ds-space-150,9pt)}
11
9
  ._1dqonqa1{border-style:solid}
12
10
  ._1h6d1j28{border-color:transparent}
13
- ._1h6dzs9d{border-color:color-mix(in oklch,var(--border-color) 100%,var(--cm-border-color) var(--cm-border-value))!important}
14
- ._1rjc1b66{padding-block:var(--ds-space-050,4px)}
15
- ._1rjcv77o{padding-block:var(--ds-space-025,2px)}._111i1h4e{--icon-pressed-l-factor:0.7}
11
+ ._1h6dzs9d{border-color:color-mix(in oklch,var(--border-color) 100%,var(--cm-border-color) var(--cm-border-value))!important}._111i1h4e{--icon-pressed-l-factor:0.7}
16
12
  ._13muu67f{--cm-border-color:#fff}
13
+ ._152tze3t{inset-block-start:var(--ds-space-0,0)}
17
14
  ._168qx19p{--cm-icon-value:20%}
18
15
  ._18dicjiy{--border-hovered-l-factor:1.2}
19
16
  ._18m915vq{overflow-y:hidden}
17
+ ._1axm1bqy:active [data-lozenge-metric-wrapper]>span:first-of-type{background-color:var(--badge-background-color-pressed)}
20
18
  ._1b3i17hp{--icon-color:var(--ds-icon-accent-green,#22a06b)}
21
19
  ._1b3i1cv2{--icon-color:var(--ds-icon-subtlest,#6b6e76)}
22
20
  ._1b3i1diz{--icon-color:var(--ds-icon-accent-gray,#7d818a)}
@@ -33,12 +31,25 @@
33
31
  ._1b3iuq3u{--icon-color:var(--ds-icon-accent-purple,#af59e1)}
34
32
  ._1b3iv8hk{--icon-color:var(--ds-icon-accent-magenta,#cd519d)}
35
33
  ._1b3iyhbg{--icon-color:var(--ds-icon-information,#357de8)}
34
+ ._1bah1h6o{justify-content:center}
35
+ ._1bn814je{--badge-background-color:#b7b9be}
36
+ ._1bn85usi{--badge-background-color:var(--ds-background-discovery-subtler-pressed,#d8a0f7)}
37
+ ._1bn8ar1y{--badge-background-color:var(--ds-background-information-subtler-pressed,#8fb8f6)}
38
+ ._1bn8bkku{--badge-background-color:var(--ds-background-warning-subtler-pressed,#fbc828)}
39
+ ._1bn8d6jc{--badge-background-color:var(--ds-background-success-subtler-pressed,#b3df72)}
40
+ ._1bn8jkmi{--badge-background-color:var(--ds-background-danger-subtler-pressed,#fd9891)}
41
+ ._1bn8vuon{--badge-background-color:var(--ds-surface,#fff)}
36
42
  ._1bto1l2s{text-overflow:ellipsis}
37
43
  ._1cp21w66:hover>span:first-of-type>svg{color:color-mix(in oklch,var(--icon-color) 100%,var(--cm-icon-color) var(--cm-icon-hovered-value))}
44
+ ._1e02ze3t{inset-inline-start:var(--ds-space-0,0)}
38
45
  ._1e0c116y{display:inline-flex}
46
+ ._1e0c1txw{display:flex}
47
+ ._1ftrbpke [data-lozenge-metric-wrapper]>span:first-of-type{background-color:var(--badge-background-color)}
39
48
  ._1gqs1mvc:active>span:first-of-type>svg{color:color-mix(in oklch,var(--icon-color) 100%,var(--cm-icon-color) var(--cm-icon-pressed-value))}
40
49
  ._1iel6xdd{--icon-hovered-l-factor:0.8}
41
50
  ._1k671038{--border-l-factor:1.33}
51
+ ._1q511b66{padding-block-start:var(--ds-space-050,4px)}
52
+ ._1q51v77o{padding-block-start:var(--ds-space-025,2px)}
42
53
  ._1reo15vq{overflow-x:hidden}
43
54
  ._1tkeviql{min-height:2rem}
44
55
  ._1xe213kw>span:first-of-type>svg{color:oklch(from var(--icon-color) calc(l * var(--icon-pressed-l-factor)) c h)!important}
@@ -60,10 +71,18 @@
60
71
  ._3wu0v30g{--border-color:var(--ds-border-discovery,#af59e1)}
61
72
  ._3wu0vbh5{--border-color:var(--ds-border-information,#357de8)}
62
73
  ._46v5hwvj{--cm-icon-pressed-value:40%}
74
+ ._4ayg18vq{--badge-background-color-pressed:var(--ds-background-discovery-pressed,#e3bdfa)}
75
+ ._4ayg1c1j{--badge-background-color-pressed:var(--ds-background-information-pressed,#adcbfb)}
76
+ ._4ayg1fkg{--badge-background-color-pressed:#dddee1}
77
+ ._4ayg1r4b{--badge-background-color-pressed:var(--ds-background-danger-pressed,#ffb8b2)}
78
+ ._4ayg1wl5{--badge-background-color-pressed:var(--ds-background-success-pressed,#bde97c)}
79
+ ._4aygvuon{--badge-background-color-pressed:var(--ds-surface,#fff)}
80
+ ._4aygzr32{--badge-background-color-pressed:var(--ds-background-warning-pressed,#fbd779)}
63
81
  ._4cvr1h6o{align-items:center}
64
82
  ._4t3i1k92{height:1.25rem}
65
83
  ._4uq11yqs{--icon-l-factor:0.88}
66
- ._80omtlke{cursor:pointer}
84
+ ._85i51b66{padding-block-end:var(--ds-space-050,4px)}
85
+ ._85i5v77o{padding-block-end:var(--ds-space-025,2px)}
67
86
  ._bfhk10f4{background-color:var(--ds-background-warning-subtler,#fce4a6)}
68
87
  ._bfhk14j0{background-color:var(--ds-background-success-subtler,#d3f1a7)}
69
88
  ._bfhk165s{background-color:var(--ds-background-accent-orange-subtler,#fce4a6)}
@@ -81,12 +100,18 @@
81
100
  ._bfhkysee{background-color:var(--ds-background-accent-gray-subtlest,#f0f1f2)}
82
101
  ._bfhkz2ec{background-color:var(--ds-background-accent-lime-subtler,#d3f1a7)}
83
102
  ._bg3q9by0{--cm-border-pressed-value:10%}
103
+ ._bozg1b66{padding-inline-start:var(--ds-space-050,4px)}
104
+ ._bozgutpp{padding-inline-start:var(--ds-space-150,9pt)}
84
105
  ._fdt01r5k{--cm-icon-hovered-value:30%}
85
106
  ._hyog26zw{--border-pressed-l-factor:1.08}
86
107
  ._k48p1wq8{font-weight:var(--ds-font-weight-medium,500)}
108
+ ._kqswh2mm{position:relative}
109
+ ._kqswstnw{position:absolute}
110
+ ._lcxvglyw{pointer-events:none}
87
111
  ._m71tr3uz{--cm-icon-color:#000}
88
112
  ._o5721q9c{white-space:nowrap}
89
113
  ._oe6mmko7{--cm-border-value:45%}
114
+ ._rjxpze3t{inset-inline-end:var(--ds-space-0,0)}
90
115
  ._syaz12v7{color:var(--ds-text-accent-teal-bolder,#164555)}
91
116
  ._syaz1blx{color:var(--ds-text-danger-bolder,#5d1f1a)}
92
117
  ._syaz1g72{color:var(--ds-text-discovery-bolder,#48245d)}
@@ -104,8 +129,14 @@
104
129
  ._syazhwvp{color:var(--ds-text-accent-red-bolder,#5d1f1a)}
105
130
  ._syazi7uo{color:var(--ds-text,#292a2e)}
106
131
  ._syazmgs1{color:var(--ds-text-warning-bolder,#693200)}
132
+ ._tzy4idpf{opacity:0}
133
+ ._u7coze3t{inset-block-end:var(--ds-space-0,0)}
107
134
  ._vchhusvi{box-sizing:border-box}
135
+ ._y4ti1b66{padding-inline-end:var(--ds-space-050,4px)}
136
+ ._y4ti303w{padding-inline-end:.0625rem}
137
+ ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}
108
138
  ._ylgq1r5k{--cm-border-hovered-value:30%}
139
+ [data-color-mode=dark] ._16burnys{--badge-background-color-pressed:#3d3f43}
109
140
  [data-color-mode=dark] ._189qkb7n{--icon-l-factor:1}
110
141
  [data-color-mode=dark] ._18mn783i{--icon-pressed-l-factor:1.37}
111
142
  [data-color-mode=dark] ._196p1btq{--icon-hovered-l-factor:1.15}
@@ -113,14 +144,11 @@
113
144
  [data-color-mode=dark] ._1t75u67f{--cm-icon-color:#fff}
114
145
  [data-color-mode=dark] ._aewt1n8h{--cm-icon-pressed-value:70%}
115
146
  [data-color-mode=dark] ._hg5mr3uz{--cm-border-color:#000}
147
+ [data-color-mode=dark] ._iymy8hz0{--badge-background-color:#4b4d51}
116
148
  [data-color-mode=dark] ._l0666xdd{--border-hovered-l-factor:0.8}
117
149
  [data-color-mode=dark] ._ockq1r5k{--cm-icon-hovered-value:30%}
118
150
  [data-color-mode=dark] ._pclnn8xv{--border-pressed-l-factor:0.9}
119
151
  [data-color-mode=dark] ._u8p61h4e{--border-l-factor:0.7}
120
- ._128mdkaa:focus-visible{outline-width:var(--ds-border-width-focused,2px)}
121
- ._1ah3v77o:focus-visible{outline-offset:var(--ds-space-025,2px)}
122
- ._mizu1v1w:focus-visible{outline-color:var(--ds-border-focused,#4688ec)}
123
- ._ra3xnqa1:focus-visible{outline-style:solid}
124
152
  ._4cvx7ddx:hover{border-color:color-mix(in oklch,var(--border-color) 100%,var(--cm-border-color) var(--cm-border-hovered-value))!important}
125
153
  ._irr315aw:hover{background-color:var(--ds-background-information-subtler-hovered,#adcbfb)}
126
154
  ._irr31axx:hover{background-color:var(--ds-background-accent-magenta-subtler-hovered,#fcb6e1)}
@@ -11,10 +11,13 @@ require("./lozenge-base.compiled.css");
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var React = _react;
13
13
  var _runtime = require("@compiled/react/runtime");
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
14
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _badge = _interopRequireDefault(require("@atlaskit/badge"));
15
17
  var _css = require("@atlaskit/css");
16
18
  var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/core/chevron-down"));
17
19
  var _pressable = _interopRequireDefault(require("@atlaskit/primitives/pressable"));
20
+ var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
18
21
  var _iconRenderer = _interopRequireDefault(require("./icon-renderer"));
19
22
  var _utils = require("./utils");
20
23
  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); }
@@ -40,12 +43,21 @@ var pressedBackgroundMapping = {
40
43
  'accent-gray': "var(--ds-background-accent-gray-subtlest-pressed, #B7B9BE)"
41
44
  };
42
45
  var styles = {
43
- container: "_2rko12b0 _1reo15vq _18m915vq _zulp1b66 _1rjcv77o _18zr1b66 _189ee4h9 _1dqonqa1 _1h6d1j28 _1e0c116y _4cvr1h6o _vchhusvi _4t3i1k92",
44
- containerSpacious: "_2rko1qi0 _zulp12x7 _1rjc1b66 _18zrutpp _1tkeviql",
45
- containerInteractive: "_80omtlke _mizu1v1w _1ah3v77o _ra3xnqa1 _128mdkaa",
46
+ container: "_2rko12b0 _1reo15vq _18m915vq _189ee4h9 _1dqonqa1 _1h6d1j28 _kqswh2mm _1e0c116y _4cvr1h6o _vchhusvi _4t3i1k92 _1q51v77o _85i5v77o _bozg1b66 _y4ti1b66",
47
+ containerSpacious: "_2rko1qi0 _1tkeviql _1q511b66 _85i51b66 _bozgutpp _y4tiutpp",
48
+ containerBadgePadding: "_y4ti303w",
46
49
  text: "_11c8wadc _1reo15vq _18m915vq _1bto1l2s _o5721q9c",
47
50
  textSpacious: "_11c8fhey _k48p1wq8",
48
51
  textSelected: "_syaz6x5g",
52
+ loadingOverlay: "_1reo15vq _18m915vq _1e0c1txw _kqswstnw _4cvr1h6o _1bah1h6o _u7coze3t _152tze3t _rjxpze3t _1e02ze3t _lcxvglyw",
53
+ metricBadgeWrapper: "_1e0c1txw",
54
+ 'metric.semantic.success': "_1bn8d6jc _4ayg1wl5",
55
+ 'metric.semantic.warning': "_1bn8bkku _4aygzr32",
56
+ 'metric.semantic.danger': "_1bn8jkmi _4ayg1r4b",
57
+ 'metric.semantic.information': "_1bn8ar1y _4ayg1c1j",
58
+ 'metric.semantic.neutral': "_1bn814je _4ayg1fkg _iymy8hz0 _16burnys",
59
+ 'metric.semantic.discovery': "_1bn85usi _4ayg18vq",
60
+ 'metric.inverse': "_1bn8vuon _4aygvuon",
49
61
  'semantic.success': "_1b3i4pcx _3wu01mps _bfhk14j0 _syaz1p1e",
50
62
  'semantic.warning': "_1b3iervl _3wu01xiv _bfhk10f4 _syazmgs1",
51
63
  'semantic.danger': "_1b3is4qr _3wu01bqt _bfhk18wg _syaz1blx",
@@ -80,7 +92,12 @@ var styles = {
80
92
  'interactive.accent.gray': "_irr3wejn _1di618ut",
81
93
  iconBorderFilter: "_1h6dzs9d _4uq11yqs _1k671038 _m71tr3uz _13muu67f _168qx19p _oe6mmko7 _189qkb7n _u8p61h4e _1t75u67f _hg5mr3uz _1f28f1ug _1xe213rw _1easxmrh _1r9r1ss3",
82
94
  iconBorderInteractiveFilter: "_1iel6xdd _111i1h4e _18dicjiy _hyog26zw _fdt01r5k _46v5hwvj _ylgq1r5k _bg3q9by0 _196p1btq _18mn783i _l0666xdd _pclnn8xv _ockq1r5k _aewt1n8h _4cvx7ddx _1cp21w66 _q4zt1csi _1gqs1mvc _75gv2l9f _1lh71sfd _ui3h1ct7 _11o31cha",
83
- containerSelected: "_1xe213kw"
95
+ containerSelected: "_1xe213kw",
96
+ content: "_zulp1b66 _1e0c116y _4cvr1h6o",
97
+ contentSpacious: "_zulp12x7",
98
+ loadingContent: "_tzy4idpf",
99
+ containerBadge: "_1ftrbpke",
100
+ containerBadgeInteractive: "_1axm1bqy"
84
101
  };
85
102
 
86
103
  /**
@@ -94,11 +111,15 @@ var LozengeBase = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
94
111
  testId = _ref.testId,
95
112
  appearance = _ref.appearance,
96
113
  iconBefore = _ref.iconBefore,
114
+ trailingMetric = _ref.trailingMetric,
115
+ trailingMetricAppearance = _ref.trailingMetricAppearance,
97
116
  _ref$maxWidth = _ref.maxWidth,
98
117
  maxWidth = _ref$maxWidth === void 0 ? 200 : _ref$maxWidth,
99
118
  _ref$spacing = _ref.spacing,
100
119
  spacing = _ref$spacing === void 0 ? 'default' : _ref$spacing,
101
120
  isSelected = _ref.isSelected,
121
+ _ref$isLoading = _ref.isLoading,
122
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
102
123
  onClick = _ref.onClick,
103
124
  style = _ref.style,
104
125
  analyticsContext = _ref.analyticsContext,
@@ -114,11 +135,17 @@ var LozengeBase = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
114
135
  var interactiveStyleKey = "interactive.".concat(category, ".").concat(key);
115
136
  var maxWidthValue = typeof maxWidth === 'string' ? maxWidth : "".concat(maxWidth, "px");
116
137
  var maxWidthIsPc = typeof maxWidth === 'string' && /%$/.test(maxWidth);
138
+ var resolvedTrailingMetricAppearance = trailingMetricAppearance ? trailingMetricAppearance === 'inverse' ? 'inverse' : (0, _utils.resolveLozengeColor)(trailingMetricAppearance) : resolvedColor;
139
+ var metricBadgeAppearance = resolvedTrailingMetricAppearance === 'inverse' ? 'inverse' : resolvedTrailingMetricAppearance != null && resolvedTrailingMetricAppearance.startsWith('accent-') ? 'neutral' : resolvedTrailingMetricAppearance !== null && resolvedTrailingMetricAppearance !== void 0 ? resolvedTrailingMetricAppearance : 'neutral';
140
+ var metricStyleKey = resolvedTrailingMetricAppearance === 'inverse' ? 'metric.inverse' : resolvedTrailingMetricAppearance != null && !resolvedTrailingMetricAppearance.startsWith('accent-') ? "metric.semantic.".concat((0, _utils.getThemeStyles)(resolvedTrailingMetricAppearance).key) : 'metric.semantic.neutral';
117
141
  var commonStyleOverrides = {
118
142
  backgroundColor: style === null || style === void 0 ? void 0 : style.backgroundColor,
119
143
  maxWidth: maxWidthIsPc ? maxWidth : '100%'
120
144
  };
121
- var innerContent = /*#__PURE__*/React.createElement(_react.Fragment, null, iconBefore && /*#__PURE__*/React.createElement(_iconRenderer.default, {
145
+ var hasTrailingMetric = trailingMetric != null && trailingMetric !== '';
146
+ var innerContent = /*#__PURE__*/React.createElement("span", {
147
+ className: (0, _runtime.ax)([styles.content, spacing === 'spacious' && styles.contentSpacious, isLoading && styles.loadingContent])
148
+ }, iconBefore && /*#__PURE__*/React.createElement(_iconRenderer.default, {
122
149
  size: spacing === 'spacious' ? 'medium' : 'small',
123
150
  icon: iconBefore,
124
151
  color: resolvedColor,
@@ -130,34 +157,53 @@ var LozengeBase = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
130
157
  },
131
158
  "data-testid": testId && "".concat(testId, "--text"),
132
159
  className: (0, _runtime.ax)([styles.text, spacing === 'spacious' && styles.textSpacious])
133
- }, children), isInteractive && /*#__PURE__*/React.createElement(_chevronDown.default, {
160
+ }, children), hasTrailingMetric && !resolvedColor.startsWith('accent-') && /*#__PURE__*/React.createElement("span", {
161
+ "data-lozenge-metric-wrapper": true,
162
+ "data-testid": testId && "".concat(testId, "--metric"),
163
+ className: (0, _runtime.ax)([styles.metricBadgeWrapper])
164
+ }, /*#__PURE__*/React.createElement(_badge.default, {
165
+ appearance: metricBadgeAppearance
166
+ }, trailingMetric)), isInteractive && /*#__PURE__*/React.createElement(_chevronDown.default, {
134
167
  label: "",
135
168
  size: "small",
136
169
  color: 'currentColor',
137
170
  testId: testId && "".concat(testId, "--chevron")
138
171
  }));
139
172
  if (isInteractive) {
140
- return /*#__PURE__*/React.createElement(_pressable.default, {
173
+ return /*#__PURE__*/React.createElement(_pressable.default, (0, _extends2.default)({
141
174
  ref: ref,
142
- xcss: (0, _css.cx)(styles.container, spacing === 'spacious' && styles.containerSpacious, !isSelected && styles.iconBorderFilter, styles.iconBorderInteractiveFilter, styles[colorStyleKey], styles[interactiveStyleKey], isSelected && styles.containerSelected),
143
- onClick: onClick,
175
+ xcss: (0, _css.cx)(styles.container, spacing === 'spacious' && styles.containerSpacious, !isSelected && styles.iconBorderFilter, !isLoading && styles.iconBorderInteractiveFilter, styles[colorStyleKey], !isLoading && styles[interactiveStyleKey], isSelected && styles.containerSelected, hasTrailingMetric && styles.containerBadge, hasTrailingMetric && styles.containerBadgeInteractive, hasTrailingMetric && styles[metricStyleKey])
176
+ }, isLoading && {
177
+ 'aria-busy': true,
178
+ 'aria-disabled': true,
179
+ isDisabled: true
180
+ }, {
181
+ "aria-label": isLoading ? 'Loading' : undefined,
182
+ onClick: isLoading ? undefined : onClick,
144
183
  style: _objectSpread(_objectSpread({}, commonStyleOverrides), {}, {
145
184
  // Specified because Pressable has a default border:none which overrides the border specified on the container
146
185
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
147
186
  border: "solid ".concat("var(--ds-border-width, 1px)", " ", isSelected ? 'oklch(from var(--border-color) calc(l * var(--border-pressed-l-factor)) c h) !important' : 'transparent'),
148
- backgroundColor: isSelected ? pressedBackgroundMapping[resolvedColor] : undefined
187
+ backgroundColor: isSelected ? pressedBackgroundMapping[resolvedColor] : undefined,
188
+ cursor: isLoading ? 'progress' : 'pointer'
149
189
  }),
150
190
  testId: testId,
151
191
  analyticsContext: analyticsContext,
152
192
  interactionName: interactionName,
153
193
  componentName: "LozengeDropdownTrigger"
154
- }, innerContent);
194
+ }), innerContent, isLoading && /*#__PURE__*/React.createElement("span", {
195
+ className: (0, _runtime.ax)([styles.loadingOverlay])
196
+ }, /*#__PURE__*/React.createElement(_spinner.default, {
197
+ size: spacing === 'spacious' ? 'small' : 'xsmall',
198
+ label: ", Loading",
199
+ testId: testId ? "".concat(testId, "--loading-spinner") : undefined
200
+ })));
155
201
  }
156
202
  return /*#__PURE__*/React.createElement("span", {
157
203
  ref: ref,
158
204
  style: commonStyleOverrides,
159
205
  "data-testid": testId,
160
- className: (0, _runtime.ax)([styles.container, spacing === 'spacious' && styles.containerSpacious, styles[colorStyleKey], styles.iconBorderFilter])
206
+ className: (0, _runtime.ax)([styles.container, spacing === 'spacious' && styles.containerSpacious, spacing !== 'spacious' && hasTrailingMetric && styles.containerBadgePadding, styles[colorStyleKey], hasTrailingMetric && styles[metricStyleKey], styles.iconBorderFilter, styles.containerBadge])
161
207
  }, innerContent);
162
208
  }));
163
209
  var _default = exports.default = LozengeBase;
@@ -10,6 +10,7 @@ exports.default = void 0;
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var React = _react;
12
12
  var _runtime = require("@compiled/react/runtime");
13
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14
  var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
14
15
  var _lozengeBase = _interopRequireDefault(require("./lozenge-base"));
15
16
  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); }
@@ -33,8 +34,12 @@ var LozengeDropdownTrigger = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _re
33
34
  _ref$spacing = _ref.spacing,
34
35
  spacing = _ref$spacing === void 0 ? 'default' : _ref$spacing,
35
36
  iconBefore = _ref.iconBefore,
37
+ trailingMetric = _ref.trailingMetric,
38
+ trailingMetricAppearance = _ref.trailingMetricAppearance,
36
39
  _ref$isSelected = _ref.isSelected,
37
40
  isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
41
+ _ref$isLoading = _ref.isLoading,
42
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
38
43
  _ref$maxWidth = _ref.maxWidth,
39
44
  maxWidth = _ref$maxWidth === void 0 ? 200 : _ref$maxWidth,
40
45
  _ref$onClick = _ref.onClick,
@@ -42,21 +47,25 @@ var LozengeDropdownTrigger = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _re
42
47
  style = _ref.style,
43
48
  analyticsContext = _ref.analyticsContext,
44
49
  interactionName = _ref.interactionName;
45
- return /*#__PURE__*/React.createElement(_lozengeBase.default, {
46
- ref: ref,
50
+ var baseProps = {
47
51
  appearance: appearance,
48
52
  spacing: spacing,
49
53
  iconBefore: iconBefore,
54
+ trailingMetric: trailingMetric,
55
+ trailingMetricAppearance: trailingMetricAppearance,
50
56
  isSelected: isSelected,
51
- maxWidth: maxWidth
52
- // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
53
- ,
57
+ isLoading: isLoading,
58
+ maxWidth: maxWidth,
54
59
  style: style,
55
60
  testId: testId,
56
61
  onClick: onClick,
57
62
  analyticsContext: analyticsContext,
58
- interactionName: interactionName
59
- }, children);
63
+ interactionName: interactionName,
64
+ children: children
65
+ };
66
+ return /*#__PURE__*/React.createElement(_lozengeBase.default, (0, _extends2.default)({
67
+ ref: ref
68
+ }, baseProps), children);
60
69
  }));
61
70
  LozengeDropdownTrigger.displayName = 'LozengeDropdownTrigger';
62
71
  var _default = exports.default = LozengeDropdownTrigger;
@@ -30,17 +30,21 @@ var Lozenge = function Lozenge(_ref) {
30
30
  style = _ref.style,
31
31
  testId = _ref.testId,
32
32
  children = _ref.children,
33
- iconBefore = _ref.iconBefore;
34
- return /*#__PURE__*/React.createElement(_lozengeBase.default, {
33
+ iconBefore = _ref.iconBefore,
34
+ trailingMetric = _ref.trailingMetric,
35
+ trailingMetricAppearance = _ref.trailingMetricAppearance;
36
+ var baseProps = {
35
37
  appearance: appearance,
36
38
  spacing: spacing,
37
39
  iconBefore: iconBefore,
38
- maxWidth: maxWidth
39
- // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
40
- ,
40
+ trailingMetric: trailingMetric,
41
+ trailingMetricAppearance: trailingMetricAppearance,
42
+ maxWidth: maxWidth,
41
43
  style: style,
42
- testId: testId
43
- }, children);
44
+ testId: testId,
45
+ children: children
46
+ };
47
+ return /*#__PURE__*/React.createElement(_lozengeBase.default, baseProps, children);
44
48
  };
45
49
  Lozenge.displayName = 'Lozenge';
46
50
  var _default = exports.default = Lozenge;
@@ -6,17 +6,15 @@
6
6
  ._zulp12x7{gap:var(--ds-space-075,6px)}
7
7
  ._zulp1b66{gap:var(--ds-space-050,4px)}
8
8
  ._189ee4h9{border-width:var(--ds-border-width,1px)}
9
- ._18zr1b66{padding-inline:var(--ds-space-050,4px)}
10
- ._18zrutpp{padding-inline:var(--ds-space-150,9pt)}
11
9
  ._1dqonqa1{border-style:solid}
12
10
  ._1h6d1j28{border-color:transparent}
13
- ._1h6dzs9d{border-color:color-mix(in oklch,var(--border-color) 100%,var(--cm-border-color) var(--cm-border-value))!important}
14
- ._1rjc1b66{padding-block:var(--ds-space-050,4px)}
15
- ._1rjcv77o{padding-block:var(--ds-space-025,2px)}._111i1h4e{--icon-pressed-l-factor:0.7}
11
+ ._1h6dzs9d{border-color:color-mix(in oklch,var(--border-color) 100%,var(--cm-border-color) var(--cm-border-value))!important}._111i1h4e{--icon-pressed-l-factor:0.7}
16
12
  ._13muu67f{--cm-border-color:#fff}
13
+ ._152tze3t{inset-block-start:var(--ds-space-0,0)}
17
14
  ._168qx19p{--cm-icon-value:20%}
18
15
  ._18dicjiy{--border-hovered-l-factor:1.2}
19
16
  ._18m915vq{overflow-y:hidden}
17
+ ._1axm1bqy:active [data-lozenge-metric-wrapper]>span:first-of-type{background-color:var(--badge-background-color-pressed)}
20
18
  ._1b3i17hp{--icon-color:var(--ds-icon-accent-green,#22a06b)}
21
19
  ._1b3i1cv2{--icon-color:var(--ds-icon-subtlest,#6b6e76)}
22
20
  ._1b3i1diz{--icon-color:var(--ds-icon-accent-gray,#7d818a)}
@@ -33,12 +31,25 @@
33
31
  ._1b3iuq3u{--icon-color:var(--ds-icon-accent-purple,#af59e1)}
34
32
  ._1b3iv8hk{--icon-color:var(--ds-icon-accent-magenta,#cd519d)}
35
33
  ._1b3iyhbg{--icon-color:var(--ds-icon-information,#357de8)}
34
+ ._1bah1h6o{justify-content:center}
35
+ ._1bn814je{--badge-background-color:#b7b9be}
36
+ ._1bn85usi{--badge-background-color:var(--ds-background-discovery-subtler-pressed,#d8a0f7)}
37
+ ._1bn8ar1y{--badge-background-color:var(--ds-background-information-subtler-pressed,#8fb8f6)}
38
+ ._1bn8bkku{--badge-background-color:var(--ds-background-warning-subtler-pressed,#fbc828)}
39
+ ._1bn8d6jc{--badge-background-color:var(--ds-background-success-subtler-pressed,#b3df72)}
40
+ ._1bn8jkmi{--badge-background-color:var(--ds-background-danger-subtler-pressed,#fd9891)}
41
+ ._1bn8vuon{--badge-background-color:var(--ds-surface,#fff)}
36
42
  ._1bto1l2s{text-overflow:ellipsis}
37
43
  ._1cp21w66:hover>span:first-of-type>svg{color:color-mix(in oklch,var(--icon-color) 100%,var(--cm-icon-color) var(--cm-icon-hovered-value))}
44
+ ._1e02ze3t{inset-inline-start:var(--ds-space-0,0)}
38
45
  ._1e0c116y{display:inline-flex}
46
+ ._1e0c1txw{display:flex}
47
+ ._1ftrbpke [data-lozenge-metric-wrapper]>span:first-of-type{background-color:var(--badge-background-color)}
39
48
  ._1gqs1mvc:active>span:first-of-type>svg{color:color-mix(in oklch,var(--icon-color) 100%,var(--cm-icon-color) var(--cm-icon-pressed-value))}
40
49
  ._1iel6xdd{--icon-hovered-l-factor:0.8}
41
50
  ._1k671038{--border-l-factor:1.33}
51
+ ._1q511b66{padding-block-start:var(--ds-space-050,4px)}
52
+ ._1q51v77o{padding-block-start:var(--ds-space-025,2px)}
42
53
  ._1reo15vq{overflow-x:hidden}
43
54
  ._1tkeviql{min-height:2rem}
44
55
  ._1xe213kw>span:first-of-type>svg{color:oklch(from var(--icon-color) calc(l * var(--icon-pressed-l-factor)) c h)!important}
@@ -60,10 +71,18 @@
60
71
  ._3wu0v30g{--border-color:var(--ds-border-discovery,#af59e1)}
61
72
  ._3wu0vbh5{--border-color:var(--ds-border-information,#357de8)}
62
73
  ._46v5hwvj{--cm-icon-pressed-value:40%}
74
+ ._4ayg18vq{--badge-background-color-pressed:var(--ds-background-discovery-pressed,#e3bdfa)}
75
+ ._4ayg1c1j{--badge-background-color-pressed:var(--ds-background-information-pressed,#adcbfb)}
76
+ ._4ayg1fkg{--badge-background-color-pressed:#dddee1}
77
+ ._4ayg1r4b{--badge-background-color-pressed:var(--ds-background-danger-pressed,#ffb8b2)}
78
+ ._4ayg1wl5{--badge-background-color-pressed:var(--ds-background-success-pressed,#bde97c)}
79
+ ._4aygvuon{--badge-background-color-pressed:var(--ds-surface,#fff)}
80
+ ._4aygzr32{--badge-background-color-pressed:var(--ds-background-warning-pressed,#fbd779)}
63
81
  ._4cvr1h6o{align-items:center}
64
82
  ._4t3i1k92{height:1.25rem}
65
83
  ._4uq11yqs{--icon-l-factor:0.88}
66
- ._80omtlke{cursor:pointer}
84
+ ._85i51b66{padding-block-end:var(--ds-space-050,4px)}
85
+ ._85i5v77o{padding-block-end:var(--ds-space-025,2px)}
67
86
  ._bfhk10f4{background-color:var(--ds-background-warning-subtler,#fce4a6)}
68
87
  ._bfhk14j0{background-color:var(--ds-background-success-subtler,#d3f1a7)}
69
88
  ._bfhk165s{background-color:var(--ds-background-accent-orange-subtler,#fce4a6)}
@@ -81,12 +100,18 @@
81
100
  ._bfhkysee{background-color:var(--ds-background-accent-gray-subtlest,#f0f1f2)}
82
101
  ._bfhkz2ec{background-color:var(--ds-background-accent-lime-subtler,#d3f1a7)}
83
102
  ._bg3q9by0{--cm-border-pressed-value:10%}
103
+ ._bozg1b66{padding-inline-start:var(--ds-space-050,4px)}
104
+ ._bozgutpp{padding-inline-start:var(--ds-space-150,9pt)}
84
105
  ._fdt01r5k{--cm-icon-hovered-value:30%}
85
106
  ._hyog26zw{--border-pressed-l-factor:1.08}
86
107
  ._k48p1wq8{font-weight:var(--ds-font-weight-medium,500)}
108
+ ._kqswh2mm{position:relative}
109
+ ._kqswstnw{position:absolute}
110
+ ._lcxvglyw{pointer-events:none}
87
111
  ._m71tr3uz{--cm-icon-color:#000}
88
112
  ._o5721q9c{white-space:nowrap}
89
113
  ._oe6mmko7{--cm-border-value:45%}
114
+ ._rjxpze3t{inset-inline-end:var(--ds-space-0,0)}
90
115
  ._syaz12v7{color:var(--ds-text-accent-teal-bolder,#164555)}
91
116
  ._syaz1blx{color:var(--ds-text-danger-bolder,#5d1f1a)}
92
117
  ._syaz1g72{color:var(--ds-text-discovery-bolder,#48245d)}
@@ -104,8 +129,14 @@
104
129
  ._syazhwvp{color:var(--ds-text-accent-red-bolder,#5d1f1a)}
105
130
  ._syazi7uo{color:var(--ds-text,#292a2e)}
106
131
  ._syazmgs1{color:var(--ds-text-warning-bolder,#693200)}
132
+ ._tzy4idpf{opacity:0}
133
+ ._u7coze3t{inset-block-end:var(--ds-space-0,0)}
107
134
  ._vchhusvi{box-sizing:border-box}
135
+ ._y4ti1b66{padding-inline-end:var(--ds-space-050,4px)}
136
+ ._y4ti303w{padding-inline-end:.0625rem}
137
+ ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}
108
138
  ._ylgq1r5k{--cm-border-hovered-value:30%}
139
+ [data-color-mode=dark] ._16burnys{--badge-background-color-pressed:#3d3f43}
109
140
  [data-color-mode=dark] ._189qkb7n{--icon-l-factor:1}
110
141
  [data-color-mode=dark] ._18mn783i{--icon-pressed-l-factor:1.37}
111
142
  [data-color-mode=dark] ._196p1btq{--icon-hovered-l-factor:1.15}
@@ -113,14 +144,11 @@
113
144
  [data-color-mode=dark] ._1t75u67f{--cm-icon-color:#fff}
114
145
  [data-color-mode=dark] ._aewt1n8h{--cm-icon-pressed-value:70%}
115
146
  [data-color-mode=dark] ._hg5mr3uz{--cm-border-color:#000}
147
+ [data-color-mode=dark] ._iymy8hz0{--badge-background-color:#4b4d51}
116
148
  [data-color-mode=dark] ._l0666xdd{--border-hovered-l-factor:0.8}
117
149
  [data-color-mode=dark] ._ockq1r5k{--cm-icon-hovered-value:30%}
118
150
  [data-color-mode=dark] ._pclnn8xv{--border-pressed-l-factor:0.9}
119
151
  [data-color-mode=dark] ._u8p61h4e{--border-l-factor:0.7}
120
- ._128mdkaa:focus-visible{outline-width:var(--ds-border-width-focused,2px)}
121
- ._1ah3v77o:focus-visible{outline-offset:var(--ds-space-025,2px)}
122
- ._mizu1v1w:focus-visible{outline-color:var(--ds-border-focused,#4688ec)}
123
- ._ra3xnqa1:focus-visible{outline-style:solid}
124
152
  ._4cvx7ddx:hover{border-color:color-mix(in oklch,var(--border-color) 100%,var(--cm-border-color) var(--cm-border-hovered-value))!important}
125
153
  ._irr315aw:hover{background-color:var(--ds-background-information-subtler-hovered,#adcbfb)}
126
154
  ._irr31axx:hover{background-color:var(--ds-background-accent-magenta-subtler-hovered,#fcb6e1)}
@@ -1,11 +1,14 @@
1
1
  /* lozenge-base.tsx generated by @compiled/babel-plugin v0.38.1 */
2
+ import _extends from "@babel/runtime/helpers/extends";
2
3
  import "./lozenge-base.compiled.css";
3
4
  import * as React from 'react';
4
5
  import { ax, ix } from "@compiled/react/runtime";
5
- import { forwardRef, Fragment, memo } from 'react';
6
+ import { forwardRef, memo } from 'react';
7
+ import Badge from '@atlaskit/badge';
6
8
  import { cx } from '@atlaskit/css';
7
9
  import ChevronDownIcon from '@atlaskit/icon/core/chevron-down';
8
10
  import Pressable from '@atlaskit/primitives/pressable';
11
+ import Spinner from '@atlaskit/spinner';
9
12
  import IconRenderer from './icon-renderer';
10
13
  import { getThemeStyles, resolveLozengeColor } from './utils';
11
14
  // Get the pressed background color for the selected lozenge dropdown trigger
@@ -28,12 +31,21 @@ const pressedBackgroundMapping = {
28
31
  'accent-gray': "var(--ds-background-accent-gray-subtlest-pressed, #B7B9BE)"
29
32
  };
30
33
  const styles = {
31
- container: "_2rko12b0 _1reo15vq _18m915vq _zulp1b66 _1rjcv77o _18zr1b66 _189ee4h9 _1dqonqa1 _1h6d1j28 _1e0c116y _4cvr1h6o _vchhusvi _4t3i1k92",
32
- containerSpacious: "_2rko1qi0 _zulp12x7 _1rjc1b66 _18zrutpp _1tkeviql",
33
- containerInteractive: "_80omtlke _mizu1v1w _1ah3v77o _ra3xnqa1 _128mdkaa",
34
+ container: "_2rko12b0 _1reo15vq _18m915vq _189ee4h9 _1dqonqa1 _1h6d1j28 _kqswh2mm _1e0c116y _4cvr1h6o _vchhusvi _4t3i1k92 _1q51v77o _85i5v77o _bozg1b66 _y4ti1b66",
35
+ containerSpacious: "_2rko1qi0 _1tkeviql _1q511b66 _85i51b66 _bozgutpp _y4tiutpp",
36
+ containerBadgePadding: "_y4ti303w",
34
37
  text: "_11c8wadc _1reo15vq _18m915vq _1bto1l2s _o5721q9c",
35
38
  textSpacious: "_11c8fhey _k48p1wq8",
36
39
  textSelected: "_syaz6x5g",
40
+ loadingOverlay: "_1reo15vq _18m915vq _1e0c1txw _kqswstnw _4cvr1h6o _1bah1h6o _u7coze3t _152tze3t _rjxpze3t _1e02ze3t _lcxvglyw",
41
+ metricBadgeWrapper: "_1e0c1txw",
42
+ 'metric.semantic.success': "_1bn8d6jc _4ayg1wl5",
43
+ 'metric.semantic.warning': "_1bn8bkku _4aygzr32",
44
+ 'metric.semantic.danger': "_1bn8jkmi _4ayg1r4b",
45
+ 'metric.semantic.information': "_1bn8ar1y _4ayg1c1j",
46
+ 'metric.semantic.neutral': "_1bn814je _4ayg1fkg _iymy8hz0 _16burnys",
47
+ 'metric.semantic.discovery': "_1bn85usi _4ayg18vq",
48
+ 'metric.inverse': "_1bn8vuon _4aygvuon",
37
49
  'semantic.success': "_1b3i4pcx _3wu01mps _bfhk14j0 _syaz1p1e",
38
50
  'semantic.warning': "_1b3iervl _3wu01xiv _bfhk10f4 _syazmgs1",
39
51
  'semantic.danger': "_1b3is4qr _3wu01bqt _bfhk18wg _syaz1blx",
@@ -68,7 +80,12 @@ const styles = {
68
80
  'interactive.accent.gray': "_irr3wejn _1di618ut",
69
81
  iconBorderFilter: "_1h6dzs9d _4uq11yqs _1k671038 _m71tr3uz _13muu67f _168qx19p _oe6mmko7 _189qkb7n _u8p61h4e _1t75u67f _hg5mr3uz _1f28f1ug _1xe213rw _1easxmrh _1r9r1ss3",
70
82
  iconBorderInteractiveFilter: "_1iel6xdd _111i1h4e _18dicjiy _hyog26zw _fdt01r5k _46v5hwvj _ylgq1r5k _bg3q9by0 _196p1btq _18mn783i _l0666xdd _pclnn8xv _ockq1r5k _aewt1n8h _4cvx7ddx _1cp21w66 _q4zt1csi _1gqs1mvc _75gv2l9f _1lh71sfd _ui3h1ct7 _11o31cha",
71
- containerSelected: "_1xe213kw"
83
+ containerSelected: "_1xe213kw",
84
+ content: "_zulp1b66 _1e0c116y _4cvr1h6o",
85
+ contentSpacious: "_zulp12x7",
86
+ loadingContent: "_tzy4idpf",
87
+ containerBadge: "_1ftrbpke",
88
+ containerBadgeInteractive: "_1axm1bqy"
72
89
  };
73
90
 
74
91
  /**
@@ -82,10 +99,14 @@ const LozengeBase = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
82
99
  testId,
83
100
  appearance,
84
101
  iconBefore,
102
+ trailingMetric,
103
+ trailingMetricAppearance,
85
104
  maxWidth = 200,
86
105
  spacing = 'default',
87
106
  isSelected,
88
107
  // for dropdown trigger
108
+ isLoading = false,
109
+ // for dropdown trigger
89
110
  onClick,
90
111
  // for dropdown trigger
91
112
  style,
@@ -104,11 +125,17 @@ const LozengeBase = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
104
125
  const interactiveStyleKey = `interactive.${category}.${key}`;
105
126
  const maxWidthValue = typeof maxWidth === 'string' ? maxWidth : `${maxWidth}px`;
106
127
  const maxWidthIsPc = typeof maxWidth === 'string' && /%$/.test(maxWidth);
128
+ const resolvedTrailingMetricAppearance = trailingMetricAppearance ? trailingMetricAppearance === 'inverse' ? 'inverse' : resolveLozengeColor(trailingMetricAppearance) : resolvedColor;
129
+ const metricBadgeAppearance = resolvedTrailingMetricAppearance === 'inverse' ? 'inverse' : resolvedTrailingMetricAppearance != null && resolvedTrailingMetricAppearance.startsWith('accent-') ? 'neutral' : resolvedTrailingMetricAppearance !== null && resolvedTrailingMetricAppearance !== void 0 ? resolvedTrailingMetricAppearance : 'neutral';
130
+ const metricStyleKey = resolvedTrailingMetricAppearance === 'inverse' ? 'metric.inverse' : resolvedTrailingMetricAppearance != null && !resolvedTrailingMetricAppearance.startsWith('accent-') ? `metric.semantic.${getThemeStyles(resolvedTrailingMetricAppearance).key}` : 'metric.semantic.neutral';
107
131
  const commonStyleOverrides = {
108
132
  backgroundColor: style === null || style === void 0 ? void 0 : style.backgroundColor,
109
133
  maxWidth: maxWidthIsPc ? maxWidth : '100%'
110
134
  };
111
- const innerContent = /*#__PURE__*/React.createElement(Fragment, null, iconBefore && /*#__PURE__*/React.createElement(IconRenderer, {
135
+ const hasTrailingMetric = trailingMetric != null && trailingMetric !== '';
136
+ const innerContent = /*#__PURE__*/React.createElement("span", {
137
+ className: ax([styles.content, spacing === 'spacious' && styles.contentSpacious, isLoading && styles.loadingContent])
138
+ }, iconBefore && /*#__PURE__*/React.createElement(IconRenderer, {
112
139
  size: spacing === 'spacious' ? 'medium' : 'small',
113
140
  icon: iconBefore,
114
141
  color: resolvedColor,
@@ -120,36 +147,55 @@ const LozengeBase = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
120
147
  },
121
148
  "data-testid": testId && `${testId}--text`,
122
149
  className: ax([styles.text, spacing === 'spacious' && styles.textSpacious])
123
- }, children), isInteractive && /*#__PURE__*/React.createElement(ChevronDownIcon, {
150
+ }, children), hasTrailingMetric && !resolvedColor.startsWith('accent-') && /*#__PURE__*/React.createElement("span", {
151
+ "data-lozenge-metric-wrapper": true,
152
+ "data-testid": testId && `${testId}--metric`,
153
+ className: ax([styles.metricBadgeWrapper])
154
+ }, /*#__PURE__*/React.createElement(Badge, {
155
+ appearance: metricBadgeAppearance
156
+ }, trailingMetric)), isInteractive && /*#__PURE__*/React.createElement(ChevronDownIcon, {
124
157
  label: "",
125
158
  size: "small",
126
159
  color: 'currentColor',
127
160
  testId: testId && `${testId}--chevron`
128
161
  }));
129
162
  if (isInteractive) {
130
- return /*#__PURE__*/React.createElement(Pressable, {
163
+ return /*#__PURE__*/React.createElement(Pressable, _extends({
131
164
  ref: ref,
132
- xcss: cx(styles.container, spacing === 'spacious' && styles.containerSpacious, !isSelected && styles.iconBorderFilter, styles.iconBorderInteractiveFilter, styles[colorStyleKey], styles[interactiveStyleKey], isSelected && styles.containerSelected),
133
- onClick: onClick,
165
+ xcss: cx(styles.container, spacing === 'spacious' && styles.containerSpacious, !isSelected && styles.iconBorderFilter, !isLoading && styles.iconBorderInteractiveFilter, styles[colorStyleKey], !isLoading && styles[interactiveStyleKey], isSelected && styles.containerSelected, hasTrailingMetric && styles.containerBadge, hasTrailingMetric && styles.containerBadgeInteractive, hasTrailingMetric && styles[metricStyleKey])
166
+ }, isLoading && {
167
+ 'aria-busy': true,
168
+ 'aria-disabled': true,
169
+ isDisabled: true
170
+ }, {
171
+ "aria-label": isLoading ? 'Loading' : undefined,
172
+ onClick: isLoading ? undefined : onClick,
134
173
  style: {
135
174
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
136
175
  ...commonStyleOverrides,
137
176
  // Specified because Pressable has a default border:none which overrides the border specified on the container
138
177
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
139
178
  border: `solid ${"var(--ds-border-width, 1px)"} ${isSelected ? 'oklch(from var(--border-color) calc(l * var(--border-pressed-l-factor)) c h) !important' : 'transparent'}`,
140
- backgroundColor: isSelected ? pressedBackgroundMapping[resolvedColor] : undefined
179
+ backgroundColor: isSelected ? pressedBackgroundMapping[resolvedColor] : undefined,
180
+ cursor: isLoading ? 'progress' : 'pointer'
141
181
  },
142
182
  testId: testId,
143
183
  analyticsContext: analyticsContext,
144
184
  interactionName: interactionName,
145
185
  componentName: "LozengeDropdownTrigger"
146
- }, innerContent);
186
+ }), innerContent, isLoading && /*#__PURE__*/React.createElement("span", {
187
+ className: ax([styles.loadingOverlay])
188
+ }, /*#__PURE__*/React.createElement(Spinner, {
189
+ size: spacing === 'spacious' ? 'small' : 'xsmall',
190
+ label: ", Loading",
191
+ testId: testId ? `${testId}--loading-spinner` : undefined
192
+ })));
147
193
  }
148
194
  return /*#__PURE__*/React.createElement("span", {
149
195
  ref: ref,
150
196
  style: commonStyleOverrides,
151
197
  "data-testid": testId,
152
- className: ax([styles.container, spacing === 'spacious' && styles.containerSpacious, styles[colorStyleKey], styles.iconBorderFilter])
198
+ className: ax([styles.container, spacing === 'spacious' && styles.containerSpacious, spacing !== 'spacious' && hasTrailingMetric && styles.containerBadgePadding, styles[colorStyleKey], hasTrailingMetric && styles[metricStyleKey], styles.iconBorderFilter, styles.containerBadge])
153
199
  }, innerContent);
154
200
  }));
155
201
  export default LozengeBase;