@atlaskit/lozenge 13.3.4 → 13.4.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/lozenge
2
2
 
3
+ ## 13.4.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`396504e5d05d4`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/396504e5d05d4) -
8
+ [ux] Changed to use pressed state colors on selected lozenge dropdown trigger to keep the semantic
9
+ colors.
10
+
11
+ ## 13.4.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [`2828d1ffb6a1e`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/2828d1ffb6a1e) -
16
+ Added a `spacing` prop which takes `default` and `spacious`. `spacious` increases padding and sets
17
+ the lozenge height to 32px.
18
+
3
19
  ## 13.3.4
4
20
 
5
21
  ### Patch Changes
@@ -7,13 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = exports.IconRenderer = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  // Map lozenge colors to appropriate icon colors
10
- var getIconColor = function getIconColor(color, isSelected) {
11
- // When lozenge is selected and interactive, use selected text color for consistency
12
- if (isSelected) {
13
- return "var(--ds-icon-selected, #1868DB)";
14
- }
15
-
16
- // For semantic colors, use corresponding semantic text colors
10
+ var getIconColor = function getIconColor(color) {
11
+ // For semantic colors, use corresponding semantic icon colors
17
12
  switch (color) {
18
13
  case 'success':
19
14
  return "var(--ds-icon-success, #6A9A23)";
@@ -60,13 +55,13 @@ var getIconColor = function getIconColor(color, isSelected) {
60
55
  var IconRenderer = exports.IconRenderer = function IconRenderer(_ref) {
61
56
  var Icon = _ref.icon,
62
57
  color = _ref.color,
63
- isSelected = _ref.isSelected,
64
- testId = _ref.testId;
65
- var iconColor = getIconColor(color, isSelected);
58
+ testId = _ref.testId,
59
+ size = _ref.size;
60
+ var iconColor = getIconColor(color);
66
61
  return /*#__PURE__*/_react.default.createElement(Icon, {
67
62
  color: iconColor,
68
63
  label: "",
69
- size: "small",
64
+ size: size,
70
65
  testId: testId
71
66
  });
72
67
  };
@@ -1,12 +1,17 @@
1
1
 
2
+ ._11c8fhey{font:var(--ds-font-body,normal 400 14px/20px "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
2
3
  ._11c8wadc{font:var(--ds-font-body-small,normal 400 9pt/1pc "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
3
4
  ._2rko12b0{border-radius:var(--ds-radius-small,4px)}
5
+ ._2rko1qi0{border-radius:var(--ds-radius-medium,6px)}
6
+ ._zulp12x7{gap:var(--ds-space-075,6px)}
4
7
  ._zulp1b66{gap:var(--ds-space-050,4px)}
5
8
  ._189ee4h9{border-width:var(--ds-border-width,1px)}
6
9
  ._18zr1b66{padding-inline:var(--ds-space-050,4px)}
10
+ ._18zrutpp{padding-inline:var(--ds-space-150,9pt)}
7
11
  ._1dqonqa1{border-style:solid}
8
12
  ._1h6d1j28{border-color:transparent}
9
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)}
10
15
  ._1rjcv77o{padding-block:var(--ds-space-025,2px)}._111i1h4e{--icon-pressed-l-factor:0.7}
11
16
  ._13muu67f{--cm-border-color:#fff}
12
17
  ._168qx19p{--cm-icon-value:20%}
@@ -35,6 +40,8 @@
35
40
  ._1iel6xdd{--icon-hovered-l-factor:0.8}
36
41
  ._1k671038{--border-l-factor:1.33}
37
42
  ._1reo15vq{overflow-x:hidden}
43
+ ._1tkeviql{min-height:2rem}
44
+ ._1xe213kw>span:first-of-type>svg{color:oklch(from var(--icon-color) calc(l * var(--icon-pressed-l-factor)) c h)!important}
38
45
  ._1xe213rw>span:first-of-type>svg{color:color-mix(in oklch,var(--icon-color) 100%,var(--cm-icon-color) var(--cm-icon-value))}
39
46
  ._3wu016y8{--border-color:var(--ds-border-accent-red,#e2483d)}
40
47
  ._3wu01b2s{--border-color:var(--ds-border-accent-orange,#e06c00)}
@@ -59,7 +66,6 @@
59
66
  ._80omtlke{cursor:pointer}
60
67
  ._bfhk10f4{background-color:var(--ds-background-warning-subtler,#fce4a6)}
61
68
  ._bfhk14j0{background-color:var(--ds-background-success-subtler,#d3f1a7)}
62
- ._bfhk15s3{background-color:var(--ds-background-selected,#e9f2fe)}
63
69
  ._bfhk165s{background-color:var(--ds-background-accent-orange-subtler,#fce4a6)}
64
70
  ._bfhk1773{background-color:var(--ds-background-accent-yellow-subtler,#f5e989)}
65
71
  ._bfhk18wg{background-color:var(--ds-background-danger-subtler,#ffd5d2)}
@@ -77,6 +83,7 @@
77
83
  ._bg3q9by0{--cm-border-pressed-value:10%}
78
84
  ._fdt01r5k{--cm-icon-hovered-value:30%}
79
85
  ._hyog26zw{--border-pressed-l-factor:1.08}
86
+ ._k48p1wq8{font-weight:var(--ds-font-weight-medium,500)}
80
87
  ._m71tr3uz{--cm-icon-color:#000}
81
88
  ._o5721q9c{white-space:nowrap}
82
89
  ._oe6mmko7{--cm-border-value:45%}
@@ -130,7 +137,6 @@
130
137
  ._irr3kwwr:hover{background-color:var(--ds-background-accent-teal-subtler-hovered,#b1e4f7)}
131
138
  ._irr3plhp:hover{background-color:var(--ds-background-neutral-hovered,#0b120e24)}
132
139
  ._irr3rumk:hover{background-color:var(--ds-background-discovery-subtler-hovered,#e3bdfa)}
133
- ._irr3ufnl:hover{background-color:var(--ds-background-selected-hovered,#cfe1fd)}
134
140
  ._irr3wejn:hover{background-color:var(--ds-background-accent-gray-subtlest-hovered,#dddee1)}
135
141
  ._q4zt1csi:active{border-color:color-mix(in oklch,var(--border-color) 100%,var(--cm-border-color) var(--cm-border-pressed-value))!important}
136
142
  ._1di618ut:active{background-color:var(--ds-background-accent-gray-subtlest-pressed,#b7b9be)}
@@ -147,7 +153,6 @@
147
153
  ._1di6d6jc:active{background-color:var(--ds-background-success-subtler-pressed,#b3df72)}
148
154
  ._1di6dpo3:active{background-color:var(--ds-background-accent-orange-subtler-pressed,#fbc828)}
149
155
  ._1di6jkmi:active{background-color:var(--ds-background-danger-subtler-pressed,#fd9891)}
150
- ._1di6nozp:active{background-color:var(--ds-background-selected-pressed,#8fb8f6)}
151
156
  ._1di6rwxf:active{background-color:var(--ds-background-accent-blue-subtler-pressed,#8fb8f6)}
152
157
  ._1di6ybhx:active{background-color:var(--ds-background-accent-green-subtler-pressed,#7ee2b8)}
153
158
  @supports (color:oklch(from white l c h)){._1easxmrh{border-color:oklch(from var(--border-color) calc(l * var(--border-l-factor)) c h)!important}._1r9r1ss3>span:first-of-type>svg{color:oklch(from var(--icon-color) calc(l * var(--icon-l-factor)) c h)}._1lh71sfd:hover>span:first-of-type>svg{color:oklch(from var(--icon-color) calc(l * var(--icon-hovered-l-factor)) c h)}._11o31cha:active>span:first-of-type>svg{color:oklch(from var(--icon-color) calc(l * var(--icon-pressed-l-factor)) c h)}._75gv2l9f:hover{border-color:oklch(from var(--border-color) calc(l * var(--border-hovered-l-factor)) c h)!important}._ui3h1ct7:active{border-color:oklch(from var(--border-color) calc(l * var(--border-pressed-l-factor)) c h)!important}}
@@ -20,11 +20,31 @@ var _utils = require("./utils");
20
20
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
21
21
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
22
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
+ // Get the pressed background color for the selected lozenge dropdown trigger
24
+ var pressedBackgroundMapping = {
25
+ success: "var(--ds-background-success-subtler-pressed, #B3DF72)",
26
+ warning: "var(--ds-background-warning-subtler-pressed, #FBC828)",
27
+ danger: "var(--ds-background-danger-subtler-pressed, #FD9891)",
28
+ information: "var(--ds-background-information-subtler-pressed, #8FB8F6)",
29
+ neutral: "var(--ds-background-neutral-pressed, #080F214A)",
30
+ discovery: "var(--ds-background-discovery-subtler-pressed, #D8A0F7)",
31
+ 'accent-red': "var(--ds-background-accent-red-subtler-pressed, #FD9891)",
32
+ 'accent-orange': "var(--ds-background-accent-orange-subtler-pressed, #FBC828)",
33
+ 'accent-yellow': "var(--ds-background-accent-yellow-subtler-pressed, #EED12B)",
34
+ 'accent-lime': "var(--ds-background-accent-lime-subtler-pressed, #B3DF72)",
35
+ 'accent-green': "var(--ds-background-accent-green-subtler-pressed, #7EE2B8)",
36
+ 'accent-teal': "var(--ds-background-accent-teal-subtler-pressed, #9DD9EE)",
37
+ 'accent-blue': "var(--ds-background-accent-blue-subtler-pressed, #8FB8F6)",
38
+ 'accent-purple': "var(--ds-background-accent-purple-subtler-pressed, #D8A0F7)",
39
+ 'accent-magenta': "var(--ds-background-accent-magenta-subtler-pressed, #F797D2)",
40
+ 'accent-gray': "var(--ds-background-accent-gray-subtlest-pressed, #B7B9BE)"
41
+ };
23
42
  var styles = {
24
43
  container: "_2rko12b0 _1reo15vq _18m915vq _zulp1b66 _1rjcv77o _18zr1b66 _189ee4h9 _1dqonqa1 _1h6d1j28 _1e0c116y _4cvr1h6o _vchhusvi _4t3i1k92",
44
+ containerSpacious: "_2rko1qi0 _zulp12x7 _1rjc1b66 _18zrutpp _1tkeviql",
25
45
  containerInteractive: "_80omtlke _mizu1v1w _1ah3v77o _ra3xnqa1 _128mdkaa",
26
- containerSelected: "_bfhk15s3 _syaz6x5g _irr3ufnl _1di6nozp",
27
46
  text: "_11c8wadc _1reo15vq _18m915vq _1bto1l2s _o5721q9c",
47
+ textSpacious: "_11c8fhey _k48p1wq8",
28
48
  textSelected: "_syaz6x5g",
29
49
  'semantic.success': "_1b3i4pcx _3wu01mps _bfhk14j0 _syaz1p1e",
30
50
  'semantic.warning': "_1b3iervl _3wu01xiv _bfhk10f4 _syazmgs1",
@@ -58,9 +78,9 @@ var styles = {
58
78
  'interactive.accent.purple': "_irr3attl _1di63nfk",
59
79
  'interactive.accent.magenta': "_irr31axx _1di642ri",
60
80
  'interactive.accent.gray': "_irr3wejn _1di618ut",
61
- selectedInteractive: "_irr3ufnl _1di6nozp",
62
81
  iconBorderFilter: "_1h6dzs9d _4uq11yqs _1k671038 _m71tr3uz _13muu67f _168qx19p _oe6mmko7 _189qkb7n _u8p61h4e _1t75u67f _hg5mr3uz _1f28f1ug _1xe213rw _1easxmrh _1r9r1ss3",
63
- iconBorderInteractiveFilter: "_1iel6xdd _111i1h4e _18dicjiy _hyog26zw _fdt01r5k _46v5hwvj _ylgq1r5k _bg3q9by0 _196p1btq _18mn783i _l0666xdd _pclnn8xv _ockq1r5k _aewt1n8h _4cvx7ddx _1cp21w66 _q4zt1csi _1gqs1mvc _75gv2l9f _1lh71sfd _ui3h1ct7 _11o31cha"
82
+ 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"
64
84
  };
65
85
 
66
86
  /**
@@ -76,6 +96,8 @@ var LozengeBase = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
76
96
  iconBefore = _ref.iconBefore,
77
97
  _ref$maxWidth = _ref.maxWidth,
78
98
  maxWidth = _ref$maxWidth === void 0 ? 200 : _ref$maxWidth,
99
+ _ref$spacing = _ref.spacing,
100
+ spacing = _ref$spacing === void 0 ? 'default' : _ref$spacing,
79
101
  isSelected = _ref.isSelected,
80
102
  onClick = _ref.onClick,
81
103
  style = _ref.style,
@@ -97,9 +119,9 @@ var LozengeBase = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
97
119
  maxWidth: maxWidthIsPc ? maxWidth : '100%'
98
120
  };
99
121
  var innerContent = /*#__PURE__*/React.createElement(_react.Fragment, null, iconBefore && /*#__PURE__*/React.createElement(_iconRenderer.default, {
122
+ size: spacing === 'spacious' ? 'medium' : 'small',
100
123
  icon: iconBefore,
101
124
  color: resolvedColor,
102
- isSelected: isInteractive ? isSelected : undefined,
103
125
  testId: testId && "".concat(testId, "--icon")
104
126
  }), /*#__PURE__*/React.createElement("span", {
105
127
  style: {
@@ -107,22 +129,23 @@ var LozengeBase = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
107
129
  color: style === null || style === void 0 ? void 0 : style.color
108
130
  },
109
131
  "data-testid": testId && "".concat(testId, "--text"),
110
- className: (0, _runtime.ax)([styles.text])
132
+ className: (0, _runtime.ax)([styles.text, spacing === 'spacious' && styles.textSpacious])
111
133
  }, children), isInteractive && /*#__PURE__*/React.createElement(_chevronDown.default, {
112
134
  label: "",
113
135
  size: "small",
114
- color: isSelected ? "var(--ds-icon-selected, #1868DB)" : 'currentColor',
136
+ color: 'currentColor',
115
137
  testId: testId && "".concat(testId, "--chevron")
116
138
  }));
117
139
  if (isInteractive) {
118
140
  return /*#__PURE__*/React.createElement(_pressable.default, {
119
141
  ref: ref,
120
- xcss: (0, _css.cx)(styles.container, !isSelected && styles.iconBorderFilter, !isSelected && styles.iconBorderInteractiveFilter, styles[colorStyleKey], styles[interactiveStyleKey], isSelected && styles.containerSelected),
142
+ xcss: (0, _css.cx)(styles.container, spacing === 'spacious' && styles.containerSpacious, !isSelected && styles.iconBorderFilter, styles.iconBorderInteractiveFilter, styles[colorStyleKey], styles[interactiveStyleKey], isSelected && styles.containerSelected),
121
143
  onClick: onClick,
122
144
  style: _objectSpread(_objectSpread({}, commonStyleOverrides), {}, {
123
145
  // Specified because Pressable has a default border:none which overrides the border specified on the container
124
146
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
125
- border: "solid ".concat("var(--ds-border-width, 1px)", " ", isSelected ? "var(--ds-border-selected, #1868DB)" : 'transparent')
147
+ 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
126
149
  }),
127
150
  testId: testId,
128
151
  analyticsContext: analyticsContext,
@@ -134,7 +157,7 @@ var LozengeBase = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forward
134
157
  ref: ref,
135
158
  style: commonStyleOverrides,
136
159
  "data-testid": testId,
137
- className: (0, _runtime.ax)([styles.container, styles[colorStyleKey], styles.iconBorderFilter])
160
+ className: (0, _runtime.ax)([styles.container, spacing === 'spacious' && styles.containerSpacious, styles[colorStyleKey], styles.iconBorderFilter])
138
161
  }, innerContent);
139
162
  }));
140
163
  var _default = exports.default = LozengeBase;
@@ -30,6 +30,8 @@ var LozengeDropdownTrigger = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _re
30
30
  testId = _ref.testId,
31
31
  _ref$appearance = _ref.appearance,
32
32
  appearance = _ref$appearance === void 0 ? 'neutral' : _ref$appearance,
33
+ _ref$spacing = _ref.spacing,
34
+ spacing = _ref$spacing === void 0 ? 'default' : _ref$spacing,
33
35
  iconBefore = _ref.iconBefore,
34
36
  _ref$isSelected = _ref.isSelected,
35
37
  isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
@@ -43,6 +45,7 @@ var LozengeDropdownTrigger = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _re
43
45
  return /*#__PURE__*/React.createElement(_lozengeBase.default, {
44
46
  ref: ref,
45
47
  appearance: appearance,
48
+ spacing: spacing,
46
49
  iconBefore: iconBefore,
47
50
  isSelected: isSelected,
48
51
  maxWidth: maxWidth
@@ -23,6 +23,8 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
23
23
  var Lozenge = function Lozenge(_ref) {
24
24
  var _ref$appearance = _ref.appearance,
25
25
  appearance = _ref$appearance === void 0 ? 'neutral' : _ref$appearance,
26
+ _ref$spacing = _ref.spacing,
27
+ spacing = _ref$spacing === void 0 ? 'default' : _ref$spacing,
26
28
  _ref$maxWidth = _ref.maxWidth,
27
29
  maxWidth = _ref$maxWidth === void 0 ? 200 : _ref$maxWidth,
28
30
  style = _ref.style,
@@ -31,6 +33,7 @@ var Lozenge = function Lozenge(_ref) {
31
33
  iconBefore = _ref.iconBefore;
32
34
  return /*#__PURE__*/React.createElement(_lozengeBase.default, {
33
35
  appearance: appearance,
36
+ spacing: spacing,
34
37
  iconBefore: iconBefore,
35
38
  maxWidth: maxWidth
36
39
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
@@ -1,12 +1,7 @@
1
1
  import React from 'react';
2
2
  // Map lozenge colors to appropriate icon colors
3
- const getIconColor = (color, isSelected) => {
4
- // When lozenge is selected and interactive, use selected text color for consistency
5
- if (isSelected) {
6
- return "var(--ds-icon-selected, #1868DB)";
7
- }
8
-
9
- // For semantic colors, use corresponding semantic text colors
3
+ const getIconColor = color => {
4
+ // For semantic colors, use corresponding semantic icon colors
10
5
  switch (color) {
11
6
  case 'success':
12
7
  return "var(--ds-icon-success, #6A9A23)";
@@ -53,14 +48,14 @@ const getIconColor = (color, isSelected) => {
53
48
  export const IconRenderer = ({
54
49
  icon: Icon,
55
50
  color,
56
- isSelected,
57
- testId
51
+ testId,
52
+ size
58
53
  }) => {
59
- const iconColor = getIconColor(color, isSelected);
54
+ const iconColor = getIconColor(color);
60
55
  return /*#__PURE__*/React.createElement(Icon, {
61
56
  color: iconColor,
62
57
  label: "",
63
- size: "small",
58
+ size: size,
64
59
  testId: testId
65
60
  });
66
61
  };
@@ -1,12 +1,17 @@
1
1
 
2
+ ._11c8fhey{font:var(--ds-font-body,normal 400 14px/20px "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
2
3
  ._11c8wadc{font:var(--ds-font-body-small,normal 400 9pt/1pc "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
3
4
  ._2rko12b0{border-radius:var(--ds-radius-small,4px)}
5
+ ._2rko1qi0{border-radius:var(--ds-radius-medium,6px)}
6
+ ._zulp12x7{gap:var(--ds-space-075,6px)}
4
7
  ._zulp1b66{gap:var(--ds-space-050,4px)}
5
8
  ._189ee4h9{border-width:var(--ds-border-width,1px)}
6
9
  ._18zr1b66{padding-inline:var(--ds-space-050,4px)}
10
+ ._18zrutpp{padding-inline:var(--ds-space-150,9pt)}
7
11
  ._1dqonqa1{border-style:solid}
8
12
  ._1h6d1j28{border-color:transparent}
9
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)}
10
15
  ._1rjcv77o{padding-block:var(--ds-space-025,2px)}._111i1h4e{--icon-pressed-l-factor:0.7}
11
16
  ._13muu67f{--cm-border-color:#fff}
12
17
  ._168qx19p{--cm-icon-value:20%}
@@ -35,6 +40,8 @@
35
40
  ._1iel6xdd{--icon-hovered-l-factor:0.8}
36
41
  ._1k671038{--border-l-factor:1.33}
37
42
  ._1reo15vq{overflow-x:hidden}
43
+ ._1tkeviql{min-height:2rem}
44
+ ._1xe213kw>span:first-of-type>svg{color:oklch(from var(--icon-color) calc(l * var(--icon-pressed-l-factor)) c h)!important}
38
45
  ._1xe213rw>span:first-of-type>svg{color:color-mix(in oklch,var(--icon-color) 100%,var(--cm-icon-color) var(--cm-icon-value))}
39
46
  ._3wu016y8{--border-color:var(--ds-border-accent-red,#e2483d)}
40
47
  ._3wu01b2s{--border-color:var(--ds-border-accent-orange,#e06c00)}
@@ -59,7 +66,6 @@
59
66
  ._80omtlke{cursor:pointer}
60
67
  ._bfhk10f4{background-color:var(--ds-background-warning-subtler,#fce4a6)}
61
68
  ._bfhk14j0{background-color:var(--ds-background-success-subtler,#d3f1a7)}
62
- ._bfhk15s3{background-color:var(--ds-background-selected,#e9f2fe)}
63
69
  ._bfhk165s{background-color:var(--ds-background-accent-orange-subtler,#fce4a6)}
64
70
  ._bfhk1773{background-color:var(--ds-background-accent-yellow-subtler,#f5e989)}
65
71
  ._bfhk18wg{background-color:var(--ds-background-danger-subtler,#ffd5d2)}
@@ -77,6 +83,7 @@
77
83
  ._bg3q9by0{--cm-border-pressed-value:10%}
78
84
  ._fdt01r5k{--cm-icon-hovered-value:30%}
79
85
  ._hyog26zw{--border-pressed-l-factor:1.08}
86
+ ._k48p1wq8{font-weight:var(--ds-font-weight-medium,500)}
80
87
  ._m71tr3uz{--cm-icon-color:#000}
81
88
  ._o5721q9c{white-space:nowrap}
82
89
  ._oe6mmko7{--cm-border-value:45%}
@@ -130,7 +137,6 @@
130
137
  ._irr3kwwr:hover{background-color:var(--ds-background-accent-teal-subtler-hovered,#b1e4f7)}
131
138
  ._irr3plhp:hover{background-color:var(--ds-background-neutral-hovered,#0b120e24)}
132
139
  ._irr3rumk:hover{background-color:var(--ds-background-discovery-subtler-hovered,#e3bdfa)}
133
- ._irr3ufnl:hover{background-color:var(--ds-background-selected-hovered,#cfe1fd)}
134
140
  ._irr3wejn:hover{background-color:var(--ds-background-accent-gray-subtlest-hovered,#dddee1)}
135
141
  ._q4zt1csi:active{border-color:color-mix(in oklch,var(--border-color) 100%,var(--cm-border-color) var(--cm-border-pressed-value))!important}
136
142
  ._1di618ut:active{background-color:var(--ds-background-accent-gray-subtlest-pressed,#b7b9be)}
@@ -147,7 +153,6 @@
147
153
  ._1di6d6jc:active{background-color:var(--ds-background-success-subtler-pressed,#b3df72)}
148
154
  ._1di6dpo3:active{background-color:var(--ds-background-accent-orange-subtler-pressed,#fbc828)}
149
155
  ._1di6jkmi:active{background-color:var(--ds-background-danger-subtler-pressed,#fd9891)}
150
- ._1di6nozp:active{background-color:var(--ds-background-selected-pressed,#8fb8f6)}
151
156
  ._1di6rwxf:active{background-color:var(--ds-background-accent-blue-subtler-pressed,#8fb8f6)}
152
157
  ._1di6ybhx:active{background-color:var(--ds-background-accent-green-subtler-pressed,#7ee2b8)}
153
158
  @supports (color:oklch(from white l c h)){._1easxmrh{border-color:oklch(from var(--border-color) calc(l * var(--border-l-factor)) c h)!important}._1r9r1ss3>span:first-of-type>svg{color:oklch(from var(--icon-color) calc(l * var(--icon-l-factor)) c h)}._1lh71sfd:hover>span:first-of-type>svg{color:oklch(from var(--icon-color) calc(l * var(--icon-hovered-l-factor)) c h)}._11o31cha:active>span:first-of-type>svg{color:oklch(from var(--icon-color) calc(l * var(--icon-pressed-l-factor)) c h)}._75gv2l9f:hover{border-color:oklch(from var(--border-color) calc(l * var(--border-hovered-l-factor)) c h)!important}._ui3h1ct7:active{border-color:oklch(from var(--border-color) calc(l * var(--border-pressed-l-factor)) c h)!important}}
@@ -8,11 +8,31 @@ import ChevronDownIcon from '@atlaskit/icon/core/chevron-down';
8
8
  import Pressable from '@atlaskit/primitives/pressable';
9
9
  import IconRenderer from './icon-renderer';
10
10
  import { getThemeStyles, resolveLozengeColor } from './utils';
11
+ // Get the pressed background color for the selected lozenge dropdown trigger
12
+ const pressedBackgroundMapping = {
13
+ success: "var(--ds-background-success-subtler-pressed, #B3DF72)",
14
+ warning: "var(--ds-background-warning-subtler-pressed, #FBC828)",
15
+ danger: "var(--ds-background-danger-subtler-pressed, #FD9891)",
16
+ information: "var(--ds-background-information-subtler-pressed, #8FB8F6)",
17
+ neutral: "var(--ds-background-neutral-pressed, #080F214A)",
18
+ discovery: "var(--ds-background-discovery-subtler-pressed, #D8A0F7)",
19
+ 'accent-red': "var(--ds-background-accent-red-subtler-pressed, #FD9891)",
20
+ 'accent-orange': "var(--ds-background-accent-orange-subtler-pressed, #FBC828)",
21
+ 'accent-yellow': "var(--ds-background-accent-yellow-subtler-pressed, #EED12B)",
22
+ 'accent-lime': "var(--ds-background-accent-lime-subtler-pressed, #B3DF72)",
23
+ 'accent-green': "var(--ds-background-accent-green-subtler-pressed, #7EE2B8)",
24
+ 'accent-teal': "var(--ds-background-accent-teal-subtler-pressed, #9DD9EE)",
25
+ 'accent-blue': "var(--ds-background-accent-blue-subtler-pressed, #8FB8F6)",
26
+ 'accent-purple': "var(--ds-background-accent-purple-subtler-pressed, #D8A0F7)",
27
+ 'accent-magenta': "var(--ds-background-accent-magenta-subtler-pressed, #F797D2)",
28
+ 'accent-gray': "var(--ds-background-accent-gray-subtlest-pressed, #B7B9BE)"
29
+ };
11
30
  const styles = {
12
31
  container: "_2rko12b0 _1reo15vq _18m915vq _zulp1b66 _1rjcv77o _18zr1b66 _189ee4h9 _1dqonqa1 _1h6d1j28 _1e0c116y _4cvr1h6o _vchhusvi _4t3i1k92",
32
+ containerSpacious: "_2rko1qi0 _zulp12x7 _1rjc1b66 _18zrutpp _1tkeviql",
13
33
  containerInteractive: "_80omtlke _mizu1v1w _1ah3v77o _ra3xnqa1 _128mdkaa",
14
- containerSelected: "_bfhk15s3 _syaz6x5g _irr3ufnl _1di6nozp",
15
34
  text: "_11c8wadc _1reo15vq _18m915vq _1bto1l2s _o5721q9c",
35
+ textSpacious: "_11c8fhey _k48p1wq8",
16
36
  textSelected: "_syaz6x5g",
17
37
  'semantic.success': "_1b3i4pcx _3wu01mps _bfhk14j0 _syaz1p1e",
18
38
  'semantic.warning': "_1b3iervl _3wu01xiv _bfhk10f4 _syazmgs1",
@@ -46,9 +66,9 @@ const styles = {
46
66
  'interactive.accent.purple': "_irr3attl _1di63nfk",
47
67
  'interactive.accent.magenta': "_irr31axx _1di642ri",
48
68
  'interactive.accent.gray': "_irr3wejn _1di618ut",
49
- selectedInteractive: "_irr3ufnl _1di6nozp",
50
69
  iconBorderFilter: "_1h6dzs9d _4uq11yqs _1k671038 _m71tr3uz _13muu67f _168qx19p _oe6mmko7 _189qkb7n _u8p61h4e _1t75u67f _hg5mr3uz _1f28f1ug _1xe213rw _1easxmrh _1r9r1ss3",
51
- iconBorderInteractiveFilter: "_1iel6xdd _111i1h4e _18dicjiy _hyog26zw _fdt01r5k _46v5hwvj _ylgq1r5k _bg3q9by0 _196p1btq _18mn783i _l0666xdd _pclnn8xv _ockq1r5k _aewt1n8h _4cvx7ddx _1cp21w66 _q4zt1csi _1gqs1mvc _75gv2l9f _1lh71sfd _ui3h1ct7 _11o31cha"
70
+ 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"
52
72
  };
53
73
 
54
74
  /**
@@ -63,6 +83,7 @@ const LozengeBase = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
63
83
  appearance,
64
84
  iconBefore,
65
85
  maxWidth = 200,
86
+ spacing = 'default',
66
87
  isSelected,
67
88
  // for dropdown trigger
68
89
  onClick,
@@ -88,9 +109,9 @@ const LozengeBase = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
88
109
  maxWidth: maxWidthIsPc ? maxWidth : '100%'
89
110
  };
90
111
  const innerContent = /*#__PURE__*/React.createElement(Fragment, null, iconBefore && /*#__PURE__*/React.createElement(IconRenderer, {
112
+ size: spacing === 'spacious' ? 'medium' : 'small',
91
113
  icon: iconBefore,
92
114
  color: resolvedColor,
93
- isSelected: isInteractive ? isSelected : undefined,
94
115
  testId: testId && `${testId}--icon`
95
116
  }), /*#__PURE__*/React.createElement("span", {
96
117
  style: {
@@ -98,24 +119,25 @@ const LozengeBase = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
98
119
  color: style === null || style === void 0 ? void 0 : style.color
99
120
  },
100
121
  "data-testid": testId && `${testId}--text`,
101
- className: ax([styles.text])
122
+ className: ax([styles.text, spacing === 'spacious' && styles.textSpacious])
102
123
  }, children), isInteractive && /*#__PURE__*/React.createElement(ChevronDownIcon, {
103
124
  label: "",
104
125
  size: "small",
105
- color: isSelected ? "var(--ds-icon-selected, #1868DB)" : 'currentColor',
126
+ color: 'currentColor',
106
127
  testId: testId && `${testId}--chevron`
107
128
  }));
108
129
  if (isInteractive) {
109
130
  return /*#__PURE__*/React.createElement(Pressable, {
110
131
  ref: ref,
111
- xcss: cx(styles.container, !isSelected && styles.iconBorderFilter, !isSelected && styles.iconBorderInteractiveFilter, styles[colorStyleKey], styles[interactiveStyleKey], isSelected && styles.containerSelected),
132
+ xcss: cx(styles.container, spacing === 'spacious' && styles.containerSpacious, !isSelected && styles.iconBorderFilter, styles.iconBorderInteractiveFilter, styles[colorStyleKey], styles[interactiveStyleKey], isSelected && styles.containerSelected),
112
133
  onClick: onClick,
113
134
  style: {
114
135
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
115
136
  ...commonStyleOverrides,
116
137
  // Specified because Pressable has a default border:none which overrides the border specified on the container
117
138
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
118
- border: `solid ${"var(--ds-border-width, 1px)"} ${isSelected ? "var(--ds-border-selected, #1868DB)" : 'transparent'}`
139
+ 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
119
141
  },
120
142
  testId: testId,
121
143
  analyticsContext: analyticsContext,
@@ -127,7 +149,7 @@ const LozengeBase = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
127
149
  ref: ref,
128
150
  style: commonStyleOverrides,
129
151
  "data-testid": testId,
130
- className: ax([styles.container, styles[colorStyleKey], styles.iconBorderFilter])
152
+ className: ax([styles.container, spacing === 'spacious' && styles.containerSpacious, styles[colorStyleKey], styles.iconBorderFilter])
131
153
  }, innerContent);
132
154
  }));
133
155
  export default LozengeBase;
@@ -20,6 +20,7 @@ const LozengeDropdownTrigger = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
20
20
  children,
21
21
  testId,
22
22
  appearance = 'neutral',
23
+ spacing = 'default',
23
24
  iconBefore,
24
25
  isSelected = false,
25
26
  maxWidth = 200,
@@ -31,6 +32,7 @@ const LozengeDropdownTrigger = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(({
31
32
  return /*#__PURE__*/React.createElement(LozengeBase, {
32
33
  ref: ref,
33
34
  appearance: appearance,
35
+ spacing: spacing,
34
36
  iconBefore: iconBefore,
35
37
  isSelected: isSelected,
36
38
  maxWidth: maxWidth
@@ -13,6 +13,7 @@ import LozengeBase from './lozenge-base';
13
13
  */
14
14
  const Lozenge = ({
15
15
  appearance = 'neutral',
16
+ spacing = 'default',
16
17
  maxWidth = 200,
17
18
  style,
18
19
  testId,
@@ -21,6 +22,7 @@ const Lozenge = ({
21
22
  }) => {
22
23
  return /*#__PURE__*/React.createElement(LozengeBase, {
23
24
  appearance: appearance,
25
+ spacing: spacing,
24
26
  iconBefore: iconBefore,
25
27
  maxWidth: maxWidth
26
28
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
@@ -1,12 +1,7 @@
1
1
  import React from 'react';
2
2
  // Map lozenge colors to appropriate icon colors
3
- var getIconColor = function getIconColor(color, isSelected) {
4
- // When lozenge is selected and interactive, use selected text color for consistency
5
- if (isSelected) {
6
- return "var(--ds-icon-selected, #1868DB)";
7
- }
8
-
9
- // For semantic colors, use corresponding semantic text colors
3
+ var getIconColor = function getIconColor(color) {
4
+ // For semantic colors, use corresponding semantic icon colors
10
5
  switch (color) {
11
6
  case 'success':
12
7
  return "var(--ds-icon-success, #6A9A23)";
@@ -53,13 +48,13 @@ var getIconColor = function getIconColor(color, isSelected) {
53
48
  export var IconRenderer = function IconRenderer(_ref) {
54
49
  var Icon = _ref.icon,
55
50
  color = _ref.color,
56
- isSelected = _ref.isSelected,
57
- testId = _ref.testId;
58
- var iconColor = getIconColor(color, isSelected);
51
+ testId = _ref.testId,
52
+ size = _ref.size;
53
+ var iconColor = getIconColor(color);
59
54
  return /*#__PURE__*/React.createElement(Icon, {
60
55
  color: iconColor,
61
56
  label: "",
62
- size: "small",
57
+ size: size,
63
58
  testId: testId
64
59
  });
65
60
  };
@@ -1,12 +1,17 @@
1
1
 
2
+ ._11c8fhey{font:var(--ds-font-body,normal 400 14px/20px "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
2
3
  ._11c8wadc{font:var(--ds-font-body-small,normal 400 9pt/1pc "Atlassian Sans",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
3
4
  ._2rko12b0{border-radius:var(--ds-radius-small,4px)}
5
+ ._2rko1qi0{border-radius:var(--ds-radius-medium,6px)}
6
+ ._zulp12x7{gap:var(--ds-space-075,6px)}
4
7
  ._zulp1b66{gap:var(--ds-space-050,4px)}
5
8
  ._189ee4h9{border-width:var(--ds-border-width,1px)}
6
9
  ._18zr1b66{padding-inline:var(--ds-space-050,4px)}
10
+ ._18zrutpp{padding-inline:var(--ds-space-150,9pt)}
7
11
  ._1dqonqa1{border-style:solid}
8
12
  ._1h6d1j28{border-color:transparent}
9
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)}
10
15
  ._1rjcv77o{padding-block:var(--ds-space-025,2px)}._111i1h4e{--icon-pressed-l-factor:0.7}
11
16
  ._13muu67f{--cm-border-color:#fff}
12
17
  ._168qx19p{--cm-icon-value:20%}
@@ -35,6 +40,8 @@
35
40
  ._1iel6xdd{--icon-hovered-l-factor:0.8}
36
41
  ._1k671038{--border-l-factor:1.33}
37
42
  ._1reo15vq{overflow-x:hidden}
43
+ ._1tkeviql{min-height:2rem}
44
+ ._1xe213kw>span:first-of-type>svg{color:oklch(from var(--icon-color) calc(l * var(--icon-pressed-l-factor)) c h)!important}
38
45
  ._1xe213rw>span:first-of-type>svg{color:color-mix(in oklch,var(--icon-color) 100%,var(--cm-icon-color) var(--cm-icon-value))}
39
46
  ._3wu016y8{--border-color:var(--ds-border-accent-red,#e2483d)}
40
47
  ._3wu01b2s{--border-color:var(--ds-border-accent-orange,#e06c00)}
@@ -59,7 +66,6 @@
59
66
  ._80omtlke{cursor:pointer}
60
67
  ._bfhk10f4{background-color:var(--ds-background-warning-subtler,#fce4a6)}
61
68
  ._bfhk14j0{background-color:var(--ds-background-success-subtler,#d3f1a7)}
62
- ._bfhk15s3{background-color:var(--ds-background-selected,#e9f2fe)}
63
69
  ._bfhk165s{background-color:var(--ds-background-accent-orange-subtler,#fce4a6)}
64
70
  ._bfhk1773{background-color:var(--ds-background-accent-yellow-subtler,#f5e989)}
65
71
  ._bfhk18wg{background-color:var(--ds-background-danger-subtler,#ffd5d2)}
@@ -77,6 +83,7 @@
77
83
  ._bg3q9by0{--cm-border-pressed-value:10%}
78
84
  ._fdt01r5k{--cm-icon-hovered-value:30%}
79
85
  ._hyog26zw{--border-pressed-l-factor:1.08}
86
+ ._k48p1wq8{font-weight:var(--ds-font-weight-medium,500)}
80
87
  ._m71tr3uz{--cm-icon-color:#000}
81
88
  ._o5721q9c{white-space:nowrap}
82
89
  ._oe6mmko7{--cm-border-value:45%}
@@ -130,7 +137,6 @@
130
137
  ._irr3kwwr:hover{background-color:var(--ds-background-accent-teal-subtler-hovered,#b1e4f7)}
131
138
  ._irr3plhp:hover{background-color:var(--ds-background-neutral-hovered,#0b120e24)}
132
139
  ._irr3rumk:hover{background-color:var(--ds-background-discovery-subtler-hovered,#e3bdfa)}
133
- ._irr3ufnl:hover{background-color:var(--ds-background-selected-hovered,#cfe1fd)}
134
140
  ._irr3wejn:hover{background-color:var(--ds-background-accent-gray-subtlest-hovered,#dddee1)}
135
141
  ._q4zt1csi:active{border-color:color-mix(in oklch,var(--border-color) 100%,var(--cm-border-color) var(--cm-border-pressed-value))!important}
136
142
  ._1di618ut:active{background-color:var(--ds-background-accent-gray-subtlest-pressed,#b7b9be)}
@@ -147,7 +153,6 @@
147
153
  ._1di6d6jc:active{background-color:var(--ds-background-success-subtler-pressed,#b3df72)}
148
154
  ._1di6dpo3:active{background-color:var(--ds-background-accent-orange-subtler-pressed,#fbc828)}
149
155
  ._1di6jkmi:active{background-color:var(--ds-background-danger-subtler-pressed,#fd9891)}
150
- ._1di6nozp:active{background-color:var(--ds-background-selected-pressed,#8fb8f6)}
151
156
  ._1di6rwxf:active{background-color:var(--ds-background-accent-blue-subtler-pressed,#8fb8f6)}
152
157
  ._1di6ybhx:active{background-color:var(--ds-background-accent-green-subtler-pressed,#7ee2b8)}
153
158
  @supports (color:oklch(from white l c h)){._1easxmrh{border-color:oklch(from var(--border-color) calc(l * var(--border-l-factor)) c h)!important}._1r9r1ss3>span:first-of-type>svg{color:oklch(from var(--icon-color) calc(l * var(--icon-l-factor)) c h)}._1lh71sfd:hover>span:first-of-type>svg{color:oklch(from var(--icon-color) calc(l * var(--icon-hovered-l-factor)) c h)}._11o31cha:active>span:first-of-type>svg{color:oklch(from var(--icon-color) calc(l * var(--icon-pressed-l-factor)) c h)}._75gv2l9f:hover{border-color:oklch(from var(--border-color) calc(l * var(--border-hovered-l-factor)) c h)!important}._ui3h1ct7:active{border-color:oklch(from var(--border-color) calc(l * var(--border-pressed-l-factor)) c h)!important}}
@@ -11,11 +11,31 @@ import ChevronDownIcon from '@atlaskit/icon/core/chevron-down';
11
11
  import Pressable from '@atlaskit/primitives/pressable';
12
12
  import IconRenderer from './icon-renderer';
13
13
  import { getThemeStyles, resolveLozengeColor } from './utils';
14
+ // Get the pressed background color for the selected lozenge dropdown trigger
15
+ var pressedBackgroundMapping = {
16
+ success: "var(--ds-background-success-subtler-pressed, #B3DF72)",
17
+ warning: "var(--ds-background-warning-subtler-pressed, #FBC828)",
18
+ danger: "var(--ds-background-danger-subtler-pressed, #FD9891)",
19
+ information: "var(--ds-background-information-subtler-pressed, #8FB8F6)",
20
+ neutral: "var(--ds-background-neutral-pressed, #080F214A)",
21
+ discovery: "var(--ds-background-discovery-subtler-pressed, #D8A0F7)",
22
+ 'accent-red': "var(--ds-background-accent-red-subtler-pressed, #FD9891)",
23
+ 'accent-orange': "var(--ds-background-accent-orange-subtler-pressed, #FBC828)",
24
+ 'accent-yellow': "var(--ds-background-accent-yellow-subtler-pressed, #EED12B)",
25
+ 'accent-lime': "var(--ds-background-accent-lime-subtler-pressed, #B3DF72)",
26
+ 'accent-green': "var(--ds-background-accent-green-subtler-pressed, #7EE2B8)",
27
+ 'accent-teal': "var(--ds-background-accent-teal-subtler-pressed, #9DD9EE)",
28
+ 'accent-blue': "var(--ds-background-accent-blue-subtler-pressed, #8FB8F6)",
29
+ 'accent-purple': "var(--ds-background-accent-purple-subtler-pressed, #D8A0F7)",
30
+ 'accent-magenta': "var(--ds-background-accent-magenta-subtler-pressed, #F797D2)",
31
+ 'accent-gray': "var(--ds-background-accent-gray-subtlest-pressed, #B7B9BE)"
32
+ };
14
33
  var styles = {
15
34
  container: "_2rko12b0 _1reo15vq _18m915vq _zulp1b66 _1rjcv77o _18zr1b66 _189ee4h9 _1dqonqa1 _1h6d1j28 _1e0c116y _4cvr1h6o _vchhusvi _4t3i1k92",
35
+ containerSpacious: "_2rko1qi0 _zulp12x7 _1rjc1b66 _18zrutpp _1tkeviql",
16
36
  containerInteractive: "_80omtlke _mizu1v1w _1ah3v77o _ra3xnqa1 _128mdkaa",
17
- containerSelected: "_bfhk15s3 _syaz6x5g _irr3ufnl _1di6nozp",
18
37
  text: "_11c8wadc _1reo15vq _18m915vq _1bto1l2s _o5721q9c",
38
+ textSpacious: "_11c8fhey _k48p1wq8",
19
39
  textSelected: "_syaz6x5g",
20
40
  'semantic.success': "_1b3i4pcx _3wu01mps _bfhk14j0 _syaz1p1e",
21
41
  'semantic.warning': "_1b3iervl _3wu01xiv _bfhk10f4 _syazmgs1",
@@ -49,9 +69,9 @@ var styles = {
49
69
  'interactive.accent.purple': "_irr3attl _1di63nfk",
50
70
  'interactive.accent.magenta': "_irr31axx _1di642ri",
51
71
  'interactive.accent.gray': "_irr3wejn _1di618ut",
52
- selectedInteractive: "_irr3ufnl _1di6nozp",
53
72
  iconBorderFilter: "_1h6dzs9d _4uq11yqs _1k671038 _m71tr3uz _13muu67f _168qx19p _oe6mmko7 _189qkb7n _u8p61h4e _1t75u67f _hg5mr3uz _1f28f1ug _1xe213rw _1easxmrh _1r9r1ss3",
54
- iconBorderInteractiveFilter: "_1iel6xdd _111i1h4e _18dicjiy _hyog26zw _fdt01r5k _46v5hwvj _ylgq1r5k _bg3q9by0 _196p1btq _18mn783i _l0666xdd _pclnn8xv _ockq1r5k _aewt1n8h _4cvx7ddx _1cp21w66 _q4zt1csi _1gqs1mvc _75gv2l9f _1lh71sfd _ui3h1ct7 _11o31cha"
73
+ iconBorderInteractiveFilter: "_1iel6xdd _111i1h4e _18dicjiy _hyog26zw _fdt01r5k _46v5hwvj _ylgq1r5k _bg3q9by0 _196p1btq _18mn783i _l0666xdd _pclnn8xv _ockq1r5k _aewt1n8h _4cvx7ddx _1cp21w66 _q4zt1csi _1gqs1mvc _75gv2l9f _1lh71sfd _ui3h1ct7 _11o31cha",
74
+ containerSelected: "_1xe213kw"
55
75
  };
56
76
 
57
77
  /**
@@ -67,6 +87,8 @@ var LozengeBase = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (_ref, ref
67
87
  iconBefore = _ref.iconBefore,
68
88
  _ref$maxWidth = _ref.maxWidth,
69
89
  maxWidth = _ref$maxWidth === void 0 ? 200 : _ref$maxWidth,
90
+ _ref$spacing = _ref.spacing,
91
+ spacing = _ref$spacing === void 0 ? 'default' : _ref$spacing,
70
92
  isSelected = _ref.isSelected,
71
93
  onClick = _ref.onClick,
72
94
  style = _ref.style,
@@ -88,9 +110,9 @@ var LozengeBase = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (_ref, ref
88
110
  maxWidth: maxWidthIsPc ? maxWidth : '100%'
89
111
  };
90
112
  var innerContent = /*#__PURE__*/React.createElement(Fragment, null, iconBefore && /*#__PURE__*/React.createElement(IconRenderer, {
113
+ size: spacing === 'spacious' ? 'medium' : 'small',
91
114
  icon: iconBefore,
92
115
  color: resolvedColor,
93
- isSelected: isInteractive ? isSelected : undefined,
94
116
  testId: testId && "".concat(testId, "--icon")
95
117
  }), /*#__PURE__*/React.createElement("span", {
96
118
  style: {
@@ -98,22 +120,23 @@ var LozengeBase = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (_ref, ref
98
120
  color: style === null || style === void 0 ? void 0 : style.color
99
121
  },
100
122
  "data-testid": testId && "".concat(testId, "--text"),
101
- className: ax([styles.text])
123
+ className: ax([styles.text, spacing === 'spacious' && styles.textSpacious])
102
124
  }, children), isInteractive && /*#__PURE__*/React.createElement(ChevronDownIcon, {
103
125
  label: "",
104
126
  size: "small",
105
- color: isSelected ? "var(--ds-icon-selected, #1868DB)" : 'currentColor',
127
+ color: 'currentColor',
106
128
  testId: testId && "".concat(testId, "--chevron")
107
129
  }));
108
130
  if (isInteractive) {
109
131
  return /*#__PURE__*/React.createElement(Pressable, {
110
132
  ref: ref,
111
- xcss: cx(styles.container, !isSelected && styles.iconBorderFilter, !isSelected && styles.iconBorderInteractiveFilter, styles[colorStyleKey], styles[interactiveStyleKey], isSelected && styles.containerSelected),
133
+ xcss: cx(styles.container, spacing === 'spacious' && styles.containerSpacious, !isSelected && styles.iconBorderFilter, styles.iconBorderInteractiveFilter, styles[colorStyleKey], styles[interactiveStyleKey], isSelected && styles.containerSelected),
112
134
  onClick: onClick,
113
135
  style: _objectSpread(_objectSpread({}, commonStyleOverrides), {}, {
114
136
  // Specified because Pressable has a default border:none which overrides the border specified on the container
115
137
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
116
- border: "solid ".concat("var(--ds-border-width, 1px)", " ", isSelected ? "var(--ds-border-selected, #1868DB)" : 'transparent')
138
+ 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'),
139
+ backgroundColor: isSelected ? pressedBackgroundMapping[resolvedColor] : undefined
117
140
  }),
118
141
  testId: testId,
119
142
  analyticsContext: analyticsContext,
@@ -125,7 +148,7 @@ var LozengeBase = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (_ref, ref
125
148
  ref: ref,
126
149
  style: commonStyleOverrides,
127
150
  "data-testid": testId,
128
- className: ax([styles.container, styles[colorStyleKey], styles.iconBorderFilter])
151
+ className: ax([styles.container, spacing === 'spacious' && styles.containerSpacious, styles[colorStyleKey], styles.iconBorderFilter])
129
152
  }, innerContent);
130
153
  }));
131
154
  export default LozengeBase;
@@ -21,6 +21,8 @@ var LozengeDropdownTrigger = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function
21
21
  testId = _ref.testId,
22
22
  _ref$appearance = _ref.appearance,
23
23
  appearance = _ref$appearance === void 0 ? 'neutral' : _ref$appearance,
24
+ _ref$spacing = _ref.spacing,
25
+ spacing = _ref$spacing === void 0 ? 'default' : _ref$spacing,
24
26
  iconBefore = _ref.iconBefore,
25
27
  _ref$isSelected = _ref.isSelected,
26
28
  isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
@@ -34,6 +36,7 @@ var LozengeDropdownTrigger = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function
34
36
  return /*#__PURE__*/React.createElement(LozengeBase, {
35
37
  ref: ref,
36
38
  appearance: appearance,
39
+ spacing: spacing,
37
40
  iconBefore: iconBefore,
38
41
  isSelected: isSelected,
39
42
  maxWidth: maxWidth
@@ -14,6 +14,8 @@ import LozengeBase from './lozenge-base';
14
14
  var Lozenge = function Lozenge(_ref) {
15
15
  var _ref$appearance = _ref.appearance,
16
16
  appearance = _ref$appearance === void 0 ? 'neutral' : _ref$appearance,
17
+ _ref$spacing = _ref.spacing,
18
+ spacing = _ref$spacing === void 0 ? 'default' : _ref$spacing,
17
19
  _ref$maxWidth = _ref.maxWidth,
18
20
  maxWidth = _ref$maxWidth === void 0 ? 200 : _ref$maxWidth,
19
21
  style = _ref.style,
@@ -22,6 +24,7 @@ var Lozenge = function Lozenge(_ref) {
22
24
  iconBefore = _ref.iconBefore;
23
25
  return /*#__PURE__*/React.createElement(LozengeBase, {
24
26
  appearance: appearance,
27
+ spacing: spacing,
25
28
  iconBefore: iconBefore,
26
29
  maxWidth: maxWidth
27
30
  // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
@@ -1,4 +1,4 @@
1
1
  export { default } from './lozenge';
2
2
  export type { ThemeAppearance, LozengeProps } from './lozenge';
3
3
  export { default as LozengeDropdownTrigger } from './new/lozenge-dropdown-trigger';
4
- export type { NewLozengeProps, LozengeColor as NewLozengeColor, LozengeDropdownTriggerProps, } from './new/types';
4
+ export type { NewLozengeProps, LozengeColor as NewLozengeColor, LozengeDropdownTriggerProps, LozengeSpacing, } from './new/types';
@@ -9,18 +9,18 @@ export interface IconRendererProps {
9
9
  * The lozenge color to determine icon color
10
10
  */
11
11
  color: LozengeColor;
12
- /**
13
- * Whether the lozenge is in a selected state
14
- */
15
- isSelected?: boolean;
16
12
  /**
17
13
  * Test ID for the icon
18
14
  */
19
15
  testId?: string;
16
+ /**
17
+ * Size of the icon
18
+ */
19
+ size?: 'small' | 'medium';
20
20
  }
21
21
  /**
22
22
  * Icon renderer for lozenge components
23
23
  * Handles proper sizing and color theming for icons
24
24
  */
25
- export declare const IconRenderer: ({ icon: Icon, color, isSelected, testId }: IconRendererProps) => React.JSX.Element;
25
+ export declare const IconRenderer: ({ icon: Icon, color, testId, size }: IconRendererProps) => React.JSX.Element;
26
26
  export default IconRenderer;
@@ -9,7 +9,7 @@ import { type NewLozengeProps } from './types';
9
9
  * - [Usage](https://atlassian.design/components/lozenge/usage)
10
10
  */
11
11
  declare const Lozenge: {
12
- ({ appearance, maxWidth, style, testId, children, iconBefore, }: NewLozengeProps): JSX.Element;
12
+ ({ appearance, spacing, maxWidth, style, testId, children, iconBefore, }: NewLozengeProps): JSX.Element;
13
13
  displayName: string;
14
14
  };
15
15
  export default Lozenge;
@@ -21,6 +21,7 @@ export type IconProp = ComponentType<Omit<NewIconProps, 'spacing'>>;
21
21
  /**
22
22
  * Props for the NewLozenge component
23
23
  */
24
+ export type LozengeSpacing = 'default' | 'spacious';
24
25
  export interface NewLozengeProps {
25
26
  /**
26
27
  * The appearance of the lozenge. Supports both legacy semantic appearances and new accent/semantic colors.
@@ -35,6 +36,13 @@ export interface NewLozengeProps {
35
36
  * Icon to display before the text content. Should be an ADS icon component.
36
37
  */
37
38
  iconBefore?: IconProp;
39
+ /**
40
+ * Controls the overall spacing (padding + height) of the lozenge.
41
+ *
42
+ * - `default` matches the current visual appearance.
43
+ * - `spacious` increases padding and sets the lozenge height to 32px.
44
+ */
45
+ spacing?: LozengeSpacing;
38
46
  /**
39
47
  * max-width of lozenge container. Default to 200px.
40
48
  */
@@ -1,4 +1,4 @@
1
1
  export { default } from './lozenge';
2
2
  export type { ThemeAppearance, LozengeProps } from './lozenge';
3
3
  export { default as LozengeDropdownTrigger } from './new/lozenge-dropdown-trigger';
4
- export type { NewLozengeProps, LozengeColor as NewLozengeColor, LozengeDropdownTriggerProps, } from './new/types';
4
+ export type { NewLozengeProps, LozengeColor as NewLozengeColor, LozengeDropdownTriggerProps, LozengeSpacing, } from './new/types';
@@ -9,18 +9,18 @@ export interface IconRendererProps {
9
9
  * The lozenge color to determine icon color
10
10
  */
11
11
  color: LozengeColor;
12
- /**
13
- * Whether the lozenge is in a selected state
14
- */
15
- isSelected?: boolean;
16
12
  /**
17
13
  * Test ID for the icon
18
14
  */
19
15
  testId?: string;
16
+ /**
17
+ * Size of the icon
18
+ */
19
+ size?: 'small' | 'medium';
20
20
  }
21
21
  /**
22
22
  * Icon renderer for lozenge components
23
23
  * Handles proper sizing and color theming for icons
24
24
  */
25
- export declare const IconRenderer: ({ icon: Icon, color, isSelected, testId }: IconRendererProps) => React.JSX.Element;
25
+ export declare const IconRenderer: ({ icon: Icon, color, testId, size }: IconRendererProps) => React.JSX.Element;
26
26
  export default IconRenderer;
@@ -9,7 +9,7 @@ import { type NewLozengeProps } from './types';
9
9
  * - [Usage](https://atlassian.design/components/lozenge/usage)
10
10
  */
11
11
  declare const Lozenge: {
12
- ({ appearance, maxWidth, style, testId, children, iconBefore, }: NewLozengeProps): JSX.Element;
12
+ ({ appearance, spacing, maxWidth, style, testId, children, iconBefore, }: NewLozengeProps): JSX.Element;
13
13
  displayName: string;
14
14
  };
15
15
  export default Lozenge;
@@ -21,6 +21,7 @@ export type IconProp = ComponentType<Omit<NewIconProps, 'spacing'>>;
21
21
  /**
22
22
  * Props for the NewLozenge component
23
23
  */
24
+ export type LozengeSpacing = 'default' | 'spacious';
24
25
  export interface NewLozengeProps {
25
26
  /**
26
27
  * The appearance of the lozenge. Supports both legacy semantic appearances and new accent/semantic colors.
@@ -35,6 +36,13 @@ export interface NewLozengeProps {
35
36
  * Icon to display before the text content. Should be an ADS icon component.
36
37
  */
37
38
  iconBefore?: IconProp;
39
+ /**
40
+ * Controls the overall spacing (padding + height) of the lozenge.
41
+ *
42
+ * - `default` matches the current visual appearance.
43
+ * - `spacious` increases padding and sets the lozenge height to 32px.
44
+ */
45
+ spacing?: LozengeSpacing;
38
46
  /**
39
47
  * max-width of lozenge container. Default to 200px.
40
48
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/lozenge",
3
- "version": "13.3.4",
3
+ "version": "13.4.1",
4
4
  "description": "A lozenge is a visual indicator used to highlight an item's status for quick recognition.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"