@atlaskit/button 21.1.4 → 21.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/new-button/containers/split-button/split-button.compiled.css +34 -0
  3. package/dist/cjs/new-button/containers/split-button/split-button.js +58 -118
  4. package/dist/cjs/new-button/variants/default/button.js +36 -41
  5. package/dist/cjs/new-button/variants/default/link.compiled.css +119 -0
  6. package/dist/cjs/new-button/variants/default/link.js +111 -59
  7. package/dist/cjs/new-button/variants/icon/button.js +128 -143
  8. package/dist/cjs/new-button/variants/icon/link.compiled.css +104 -0
  9. package/dist/cjs/new-button/variants/icon/link.js +101 -75
  10. package/dist/cjs/new-button/variants/shared/button-base.compiled.css +137 -0
  11. package/dist/cjs/new-button/variants/shared/button-base.js +223 -0
  12. package/dist/cjs/new-button/variants/shared/content.compiled.css +19 -0
  13. package/dist/cjs/new-button/variants/shared/content.js +13 -53
  14. package/dist/cjs/old-button/shared/button-base.js +1 -1
  15. package/dist/es2019/new-button/containers/split-button/split-button.compiled.css +34 -0
  16. package/dist/es2019/new-button/containers/split-button/split-button.js +54 -117
  17. package/dist/es2019/new-button/variants/default/button.js +47 -56
  18. package/dist/es2019/new-button/variants/default/link.compiled.css +119 -0
  19. package/dist/es2019/new-button/variants/default/link.js +113 -63
  20. package/dist/es2019/new-button/variants/icon/button.js +117 -133
  21. package/dist/es2019/new-button/variants/icon/link.compiled.css +104 -0
  22. package/dist/es2019/new-button/variants/icon/link.js +94 -70
  23. package/dist/es2019/new-button/variants/shared/button-base.compiled.css +137 -0
  24. package/dist/es2019/new-button/variants/shared/button-base.js +203 -0
  25. package/dist/es2019/new-button/variants/shared/content.compiled.css +19 -0
  26. package/dist/es2019/new-button/variants/shared/content.js +13 -52
  27. package/dist/es2019/old-button/shared/button-base.js +1 -1
  28. package/dist/esm/new-button/containers/split-button/split-button.compiled.css +34 -0
  29. package/dist/esm/new-button/containers/split-button/split-button.js +55 -120
  30. package/dist/esm/new-button/variants/default/button.js +33 -41
  31. package/dist/esm/new-button/variants/default/link.compiled.css +119 -0
  32. package/dist/esm/new-button/variants/default/link.js +111 -59
  33. package/dist/esm/new-button/variants/icon/button.js +128 -143
  34. package/dist/esm/new-button/variants/icon/link.compiled.css +104 -0
  35. package/dist/esm/new-button/variants/icon/link.js +98 -72
  36. package/dist/esm/new-button/variants/shared/button-base.compiled.css +137 -0
  37. package/dist/esm/new-button/variants/shared/button-base.js +213 -0
  38. package/dist/esm/new-button/variants/shared/content.compiled.css +19 -0
  39. package/dist/esm/new-button/variants/shared/content.js +13 -53
  40. package/dist/esm/old-button/shared/button-base.js +1 -1
  41. package/dist/types/new-button/containers/split-button/split-button.d.ts +4 -5
  42. package/dist/types/new-button/variants/default/button.d.ts +5 -1
  43. package/dist/types/new-button/variants/default/link.d.ts +22 -8
  44. package/dist/types/new-button/variants/icon/button.d.ts +5 -1
  45. package/dist/types/new-button/variants/icon/link.d.ts +11 -4
  46. package/dist/types/new-button/variants/shared/block-events.d.ts +1 -1
  47. package/dist/types/new-button/variants/shared/button-base.d.ts +45 -0
  48. package/dist/types/new-button/variants/shared/content.d.ts +5 -1
  49. package/dist/types/new-button/variants/types.d.ts +26 -6
  50. package/dist/types-ts4.5/new-button/containers/split-button/split-button.d.ts +4 -5
  51. package/dist/types-ts4.5/new-button/variants/default/button.d.ts +5 -1
  52. package/dist/types-ts4.5/new-button/variants/default/link.d.ts +22 -8
  53. package/dist/types-ts4.5/new-button/variants/icon/button.d.ts +5 -1
  54. package/dist/types-ts4.5/new-button/variants/icon/link.d.ts +11 -4
  55. package/dist/types-ts4.5/new-button/variants/shared/block-events.d.ts +1 -1
  56. package/dist/types-ts4.5/new-button/variants/shared/button-base.d.ts +45 -0
  57. package/dist/types-ts4.5/new-button/variants/shared/content.d.ts +5 -1
  58. package/dist/types-ts4.5/new-button/variants/types.d.ts +26 -6
  59. package/package.json +17 -15
  60. package/dist/cjs/new-button/variants/default/use-default-button.js +0 -98
  61. package/dist/cjs/new-button/variants/icon/use-icon-button.js +0 -88
  62. package/dist/cjs/new-button/variants/shared/use-button-base.js +0 -639
  63. package/dist/es2019/new-button/variants/default/use-default-button.js +0 -88
  64. package/dist/es2019/new-button/variants/icon/use-icon-button.js +0 -81
  65. package/dist/es2019/new-button/variants/shared/use-button-base.js +0 -619
  66. package/dist/esm/new-button/variants/default/use-default-button.js +0 -88
  67. package/dist/esm/new-button/variants/icon/use-icon-button.js +0 -81
  68. package/dist/esm/new-button/variants/shared/use-button-base.js +0 -629
  69. package/dist/types/new-button/variants/default/use-default-button.d.ts +0 -16
  70. package/dist/types/new-button/variants/icon/use-icon-button.d.ts +0 -16
  71. package/dist/types/new-button/variants/shared/use-button-base.d.ts +0 -46
  72. package/dist/types-ts4.5/new-button/variants/default/use-default-button.d.ts +0 -16
  73. package/dist/types-ts4.5/new-button/variants/icon/use-icon-button.d.ts +0 -16
  74. package/dist/types-ts4.5/new-button/variants/shared/use-button-base.d.ts +0 -46
@@ -1,13 +1,67 @@
1
+ /* link.tsx generated by @compiled/babel-plugin v0.36.1 */
1
2
  import _extends from "@babel/runtime/helpers/extends";
2
- import React, { forwardRef, memo } from 'react';
3
- import Anchor from '@atlaskit/primitives/anchor';
4
- import useDefaultButton from './use-default-button';
3
+ import "./link.compiled.css";
4
+ import * as React from 'react';
5
+ import { ax, ix } from "@compiled/react/runtime";
6
+ import { forwardRef, useRef } from 'react';
7
+ import { cx } from '@atlaskit/css';
8
+ import mergeRefs from '@atlaskit/ds-lib/merge-refs';
9
+ import useAutoFocus from '@atlaskit/ds-lib/use-auto-focus';
10
+ import { fg } from '@atlaskit/platform-feature-flags';
11
+ import { Anchor } from '@atlaskit/primitives/compiled';
12
+ import Content from '../shared/content';
13
+ import IconRenderer from '../shared/icon-renderer';
14
+ const styles = {
15
+ base: "_2rkosqtm _11c82smr _v5649dqc _189eidpf _1rjc12x7 _1e0c116y _vchhusvi _1bsb1wug _p12f1osq _kqswh2mm _4cvr1q9y _1bah1h6o _gy1p1b66 _1o9zidpf _4t3iviql _k48p1wq8 _y4tiutpp _bozgutpp _y3gn1h6o _s7n4nkob _14mj1kw7 _9v7aze3t _1tv3nqa1 _39yqe4h9 _11fnglyw _18postnw",
16
+ linkDecorationUnset: "_4bfu1snc _1hmsagmp _ajmmvv82 _1a3b1r31 _4fprglyw _5goinqa1 _9oik1r31 _1bnxglyw _jf4cnqa1 _1nrm1r31 _c2waglyw _1iohnqa1",
17
+ disabled: "_80om13gf _bfhksyzs _syaz1lh4 _aetrglyw _irr3syzs _30l31lh4 _1di6syzs _9h8h1lh4",
18
+ spacingCompact: "_1rjcv77o _gy1p1b66 _4t3i1k8s _y4tiutpp _bozgutpp _s7n4nkob",
19
+ buttonIconBefore: "_bozgu2gc",
20
+ buttonIconAfter: "_y4tiu2gc"
21
+ };
22
+ const defaultStyles = {
23
+ root: "_bfhk1j54 _syaz10s3 _105310s3 _f8pj10s3 _irr3yw9d _30l310s3 _1di6ip91 _9h8h10s3",
24
+ rootRefreshed: "_bfhksm61 _syaz1gjq _8l3mmuej _aetrb3bt _10531gjq _f8pj1gjq _irr3166n _30l31gjq _1di61dty _9h8h1gjq"
25
+ };
26
+ const primaryStyles = {
27
+ root: "_bfhkomb0 _syaz15cr _105315cr _f8pj15cr _30l315cr _irr31wqm _9h8h15cr _1di617hq"
28
+ };
29
+ const warningStyles = {
30
+ root: "_bfhk1ikc _syazal3n _1053al3n _f8pjal3n _30l3al3n _irr31j43 _9h8hal3n _1di6h4op"
31
+ };
32
+ const dangerStyles = {
33
+ root: "_bfhk1v7l _syaz15cr _105315cr _f8pj15cr _30l315cr _irr31rwk _9h8h15cr _1di6yycf"
34
+ };
35
+ const discoveryStyles = {
36
+ root: "_bfhk1vbi _syaz15cr _105315cr _f8pj15cr _30l315cr _irr37gr8 _9h8h15cr _1di61wu2"
37
+ };
38
+ const subtleStyles = {
39
+ root: "_bfhkqtfy _syaz10s3 _105310s3 _f8pj10s3 _irr34mfv _30l310s3 _1di619qy _9h8h10s3",
40
+ rootRefreshed: "_bfhkqtfy _syaz1gjq _10531gjq _f8pj1mjl _irr34mfv _30l31gjq _1di619qy _9h8h1gjq"
41
+ };
42
+ const selectedStyles = {
43
+ root: "_bfhk7btw _syaz1pke _10531pke _f8pj1pke _irr3i1yw _30l31pke _1di619ru _9h8h1pke",
44
+ rootRefreshed: "_bfhkfg4m _syaz1ldt _8l3mcoux _aetrb3bt _10531ldt _f8pj1ldt _30l31ldt _9h8h1ldt",
45
+ warning: "_bfhkvdtc _syaz16q2 _30l31pke _irr3vdtc _9h8h1pke _1di6vdtc",
46
+ danger: "_bfhkbeib _syaz1pke _30l31pke _irr3beib _9h8h1pke _1di6beib",
47
+ discovery: "_bfhk1g49 _syaz1pke _30l31pke _irr31g49 _9h8h1pke _1di61g49"
48
+ };
49
+
50
+ /**
51
+ * __Link Button__
52
+ *
53
+ * Renders a link in the style of a button.
54
+ *
55
+ * - [Examples](https://atlassian.design/components/link-button/examples)
56
+ * - [Code](https://atlassian.design/components/link-button/code)
57
+ * - [Usage](https://atlassian.design/components/link-button/usage)
58
+ */
5
59
  const LinkButtonBase = ({
6
60
  analyticsContext,
7
- appearance,
61
+ appearance = 'default',
8
62
  'aria-label': ariaLabel,
9
63
  'aria-labelledby': ariaLabelledBy,
10
- autoFocus,
64
+ autoFocus = false,
11
65
  children,
12
66
  href,
13
67
  iconAfter,
@@ -25,9 +79,9 @@ const LinkButtonBase = ({
25
79
  onPointerUpCapture,
26
80
  onTouchEndCapture,
27
81
  onTouchStartCapture,
28
- shouldFitContainer,
29
82
  spacing,
30
83
  testId,
84
+ xcss,
31
85
  ...unsafeRest
32
86
  }, ref) => {
33
87
  // @ts-expect-error
@@ -38,70 +92,65 @@ const LinkButtonBase = ({
38
92
  style: _style,
39
93
  ...saferRest
40
94
  } = unsafeRest;
41
- const baseProps = useDefaultButton({
42
- analyticsContext,
43
- appearance,
44
- ariaLabel,
45
- ariaLabelledBy,
46
- autoFocus,
47
- buttonType: 'link',
48
- children,
49
- iconAfter,
50
- iconBefore,
51
- interactionName,
52
- isDisabled,
53
- isSelected,
54
- onClick,
55
- onClickCapture,
56
- onKeyDownCapture,
57
- onKeyUpCapture,
58
- onMouseDownCapture,
59
- onMouseUpCapture,
60
- onPointerDownCapture,
61
- onPointerUpCapture,
62
- onTouchEndCapture,
63
- onTouchStartCapture,
64
- ref,
65
- shouldFitContainer,
66
- spacing,
67
- testId
68
- });
69
- return /*#__PURE__*/React.createElement(Anchor
70
- // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
71
- , _extends({}, saferRest, {
72
- "aria-label": baseProps['aria-label'],
73
- "aria-labelledby": baseProps['aria-labelledby'],
74
- ref: baseProps.ref,
75
- xcss: baseProps.xcss,
76
- onClick: baseProps.onClick,
77
- onMouseDownCapture: baseProps.onMouseDownCapture,
78
- onMouseUpCapture: baseProps.onMouseUpCapture,
79
- onKeyDownCapture: baseProps.onKeyDownCapture,
80
- onKeyUpCapture: baseProps.onKeyUpCapture,
81
- onTouchStartCapture: baseProps.onTouchStartCapture,
82
- onTouchEndCapture: baseProps.onTouchEndCapture,
83
- onPointerDownCapture: baseProps.onPointerDownCapture,
84
- onPointerUpCapture: baseProps.onPointerUpCapture,
85
- onClickCapture: baseProps.onClickCapture,
86
- testId: testId
95
+ const hasIconAfter = Boolean(iconAfter);
96
+ const hasIconBefore = Boolean(iconBefore);
97
+ const localRef = useRef(null);
98
+ useAutoFocus(localRef, autoFocus);
99
+ const combinedRef = mergeRefs([localRef, ref]);
100
+ return /*#__PURE__*/React.createElement(Anchor, _extends({
101
+ analyticsContext: analyticsContext,
102
+ ref: combinedRef
87
103
  /**
88
104
  * Disable link in an accessible way using `href`, `role`, and `aria-disabled`.
89
105
  * @see https://a11y-guidelines.orange.com/en/articles/disable-elements/#disable-a-link
90
106
  */
91
107
  // @ts-expect-error (`href` is required, we could make it optional but don't want to encourage this pattern elsewhere)
92
108
  ,
93
- href: baseProps.isDisabled ? undefined : href,
94
- role: baseProps.isDisabled ? 'link' : undefined,
95
- "aria-disabled": baseProps.isDisabled === true ? true : undefined,
96
- analyticsContext: analyticsContext,
97
- interactionName: interactionName,
98
- componentName: "LinkButton"
99
- }), baseProps.children);
109
+ href: isDisabled ? undefined : href,
110
+ role: isDisabled ? 'link' : undefined,
111
+ "aria-disabled": isDisabled === true ? true : undefined,
112
+ "aria-label": ariaLabel,
113
+ "aria-labelledby": ariaLabelledBy,
114
+ onClick: onClick,
115
+ onClickCapture: onClickCapture,
116
+ onKeyDownCapture: onKeyDownCapture,
117
+ onKeyUpCapture: onKeyUpCapture,
118
+ onMouseDownCapture: onMouseDownCapture,
119
+ onMouseUpCapture: onMouseUpCapture,
120
+ onPointerDownCapture: onPointerDownCapture,
121
+ onPointerUpCapture: onPointerUpCapture,
122
+ onTouchEndCapture: onTouchEndCapture,
123
+ onTouchStartCapture: onTouchStartCapture,
124
+ testId: testId,
125
+ componentName: "LinkButton",
126
+ interactionName: interactionName
127
+ // eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
128
+ }, saferRest, {
129
+ xcss: cx(styles.base, appearance === 'default' && (fg('platform-component-visual-refresh') ? defaultStyles.rootRefreshed : defaultStyles.root), appearance === 'primary' && primaryStyles.root, appearance === 'warning' && warningStyles.root, appearance === 'danger' && dangerStyles.root, appearance === 'discovery' && discoveryStyles.root, appearance === 'subtle' && (fg('platform-component-visual-refresh') ? subtleStyles.rootRefreshed : subtleStyles.root), styles.linkDecorationUnset, isSelected && (fg('platform-component-visual-refresh') ? selectedStyles.rootRefreshed : selectedStyles.root),
130
+ // TODO: remove me once we kill color fallbacks
131
+ isSelected && appearance === 'danger' && selectedStyles.danger,
132
+ // TODO: remove me once we kill color fallbacks
133
+ isSelected && appearance === 'warning' && selectedStyles.warning,
134
+ // TODO: remove me once we kill color fallbacks
135
+ isSelected && appearance === 'discovery' && selectedStyles.discovery, isDisabled && styles.disabled, spacing === 'compact' && styles.spacingCompact, hasIconBefore && styles.buttonIconBefore, hasIconAfter && styles.buttonIconAfter)
136
+ }), iconBefore && /*#__PURE__*/React.createElement(Content, {
137
+ type: "icon",
138
+ position: "before",
139
+ isLoading: false
140
+ }, /*#__PURE__*/React.createElement(IconRenderer, {
141
+ icon: iconBefore
142
+ })), children && /*#__PURE__*/React.createElement(Content, {
143
+ isLoading: false
144
+ }, children), iconAfter && /*#__PURE__*/React.createElement(Content, {
145
+ type: "icon",
146
+ position: "after",
147
+ isLoading: false
148
+ }, /*#__PURE__*/React.createElement(IconRenderer, {
149
+ icon: iconAfter
150
+ })));
100
151
  };
101
152
 
102
- // Workarounds to support generic types with forwardRef + memo
103
- const WithRef = /*#__PURE__*/forwardRef(LinkButtonBase);
104
-
153
+ // Workarounds to support generic types with forwardRef
105
154
  /**
106
155
  * __Link Button__
107
156
  *
@@ -111,5 +160,6 @@ const WithRef = /*#__PURE__*/forwardRef(LinkButtonBase);
111
160
  * - [Code](https://atlassian.design/components/link-button/code)
112
161
  * - [Usage](https://atlassian.design/components/link-button/usage)
113
162
  */
114
- const LinkButton = /*#__PURE__*/memo(WithRef);
163
+ const LinkButton = /*#__PURE__*/forwardRef(LinkButtonBase);
164
+ LinkButton.displayName = 'LinkButton';
115
165
  export default LinkButton;
@@ -1,8 +1,11 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
- import Pressable from '@atlaskit/primitives/pressable';
3
+ import mergeRefs from '@atlaskit/ds-lib/merge-refs';
4
4
  import Tooltip from '@atlaskit/tooltip';
5
- import useIconButton from './use-icon-button';
5
+ import VisuallyHidden from '@atlaskit/visually-hidden';
6
+ import ButtonBase from '../shared/button-base';
7
+ import Content from '../shared/content';
8
+ import IconRenderer from '../shared/icon-renderer';
6
9
  /**
7
10
  * __Icon Button__
8
11
  *
@@ -22,7 +25,7 @@ const IconButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functi
22
25
  icon,
23
26
  interactionName,
24
27
  isDisabled,
25
- isLoading,
28
+ isLoading = false,
26
29
  isSelected,
27
30
  isTooltipDisabled = true,
28
31
  label,
@@ -43,6 +46,7 @@ const IconButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functi
43
46
  type = 'button',
44
47
  ...unsafeRest
45
48
  }, ref) {
49
+ var _tooltip$content;
46
50
  // @ts-expect-error
47
51
  const {
48
52
  className: _className,
@@ -51,144 +55,124 @@ const IconButton = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(functi
51
55
  style: _style,
52
56
  ...saferRest
53
57
  } = unsafeRest;
54
-
55
- /**
56
- * TODO: At some stage I'll look into re-using more logic across 'default' and 'icon'
57
- * buttons. It's currently duplicated and mostly the same.
58
- */
59
- const baseProps = useIconButton({
60
- analyticsContext,
61
- appearance,
62
- ariaLabelledBy,
63
- autoFocus,
64
- buttonType: 'button',
65
- icon,
66
- interactionName,
67
- isDisabled,
68
- isLoading,
69
- isSelected,
70
- label,
71
- onClick,
72
- onClickCapture,
73
- onKeyDownCapture,
74
- onKeyUpCapture,
75
- onMouseDownCapture,
76
- onMouseUpCapture,
77
- onPointerDownCapture,
78
- onPointerUpCapture,
79
- onTouchEndCapture,
80
- onTouchStartCapture,
81
- ref,
82
- shape,
83
- spacing,
84
- testId
85
- });
86
- if (!isTooltipDisabled) {
87
- var _tooltip$content;
88
- return /*#__PURE__*/React.createElement(Tooltip, {
89
- content: (_tooltip$content = tooltip === null || tooltip === void 0 ? void 0 : tooltip.content) !== null && _tooltip$content !== void 0 ? _tooltip$content : label,
90
- testId: tooltip === null || tooltip === void 0 ? void 0 : tooltip.testId,
91
- position: tooltip === null || tooltip === void 0 ? void 0 : tooltip.position,
92
- delay: tooltip === null || tooltip === void 0 ? void 0 : tooltip.delay,
93
- onShow: tooltip === null || tooltip === void 0 ? void 0 : tooltip.onShow,
94
- onHide: tooltip === null || tooltip === void 0 ? void 0 : tooltip.onHide,
95
- mousePosition: tooltip === null || tooltip === void 0 ? void 0 : tooltip.mousePosition,
96
- analyticsContext: tooltip === null || tooltip === void 0 ? void 0 : tooltip.analyticsContext,
97
- strategy: tooltip === null || tooltip === void 0 ? void 0 : tooltip.strategy,
98
- tag: tooltip === null || tooltip === void 0 ? void 0 : tooltip.tag,
99
- truncate: tooltip === null || tooltip === void 0 ? void 0 : tooltip.truncate,
100
- component: tooltip === null || tooltip === void 0 ? void 0 : tooltip.component,
101
- hideTooltipOnClick: tooltip === null || tooltip === void 0 ? void 0 : tooltip.hideTooltipOnClick,
102
- hideTooltipOnMouseDown: tooltip === null || tooltip === void 0 ? void 0 : tooltip.hideTooltipOnMouseDown,
103
- ignoreTooltipPointerEvents: tooltip === null || tooltip === void 0 ? void 0 : tooltip.ignoreTooltipPointerEvents
104
- }, triggerProps => /*#__PURE__*/React.createElement(Pressable, _extends({}, saferRest, {
105
- // Top level props
106
- "aria-labelledby": baseProps['aria-labelledby'],
107
- type: type,
58
+ if (isTooltipDisabled) {
59
+ return /*#__PURE__*/React.createElement(ButtonBase, _extends({}, saferRest, {
60
+ ref: ref,
61
+ appearance: appearance,
62
+ autoFocus: autoFocus,
63
+ isDisabled: isDisabled,
64
+ isLoading: isLoading,
65
+ isSelected: isSelected,
66
+ isIconButton: true,
67
+ isCircle: shape === 'circle',
68
+ hasIconBefore: !!icon,
69
+ spacing: spacing,
70
+ ariaLabelledBy: ariaLabelledBy,
71
+ onClick: onClick,
72
+ onClickCapture: onClickCapture,
73
+ onKeyDownCapture: onKeyDownCapture,
74
+ onKeyUpCapture: onKeyUpCapture,
75
+ onMouseDownCapture: onMouseDownCapture,
76
+ onMouseUpCapture: onMouseUpCapture,
77
+ onPointerDownCapture: onPointerDownCapture,
78
+ onPointerUpCapture: onPointerUpCapture,
79
+ onTouchStartCapture: onTouchStartCapture,
80
+ onTouchEndCapture: onTouchEndCapture,
108
81
  testId: testId,
109
82
  componentName: "IconButton",
110
83
  analyticsContext: analyticsContext,
84
+ type: type,
111
85
  interactionName: interactionName
112
- // Shared between tooltip and native props
113
- ,
114
- onMouseOver: e => {
115
- var _triggerProps$onMouse, _saferRest$onMouseOve;
116
- (_triggerProps$onMouse = triggerProps.onMouseOver) === null || _triggerProps$onMouse === void 0 ? void 0 : _triggerProps$onMouse.call(triggerProps, e);
117
- (_saferRest$onMouseOve = saferRest.onMouseOver) === null || _saferRest$onMouseOve === void 0 ? void 0 : _saferRest$onMouseOve.call(saferRest, e);
118
- },
119
- onMouseOut: e => {
120
- var _triggerProps$onMouse2, _saferRest$onMouseOut;
121
- (_triggerProps$onMouse2 = triggerProps.onMouseOut) === null || _triggerProps$onMouse2 === void 0 ? void 0 : _triggerProps$onMouse2.call(triggerProps, e);
122
- (_saferRest$onMouseOut = saferRest.onMouseOut) === null || _saferRest$onMouseOut === void 0 ? void 0 : _saferRest$onMouseOut.call(saferRest, e);
123
- },
124
- onMouseMove: e => {
125
- var _triggerProps$onMouse3, _saferRest$onMouseMov;
126
- (_triggerProps$onMouse3 = triggerProps.onMouseMove) === null || _triggerProps$onMouse3 === void 0 ? void 0 : _triggerProps$onMouse3.call(triggerProps, e);
127
- (_saferRest$onMouseMov = saferRest.onMouseMove) === null || _saferRest$onMouseMov === void 0 ? void 0 : _saferRest$onMouseMov.call(saferRest, e);
128
- },
129
- onMouseDown: e => {
130
- var _triggerProps$onMouse4, _saferRest$onMouseDow;
131
- (_triggerProps$onMouse4 = triggerProps.onMouseDown) === null || _triggerProps$onMouse4 === void 0 ? void 0 : _triggerProps$onMouse4.call(triggerProps, e);
132
- (_saferRest$onMouseDow = saferRest.onMouseDown) === null || _saferRest$onMouseDow === void 0 ? void 0 : _saferRest$onMouseDow.call(saferRest, e);
133
- },
134
- onFocus: e => {
135
- var _triggerProps$onFocus, _saferRest$onFocus;
136
- (_triggerProps$onFocus = triggerProps.onFocus) === null || _triggerProps$onFocus === void 0 ? void 0 : _triggerProps$onFocus.call(triggerProps, e);
137
- (_saferRest$onFocus = saferRest.onFocus) === null || _saferRest$onFocus === void 0 ? void 0 : _saferRest$onFocus.call(saferRest, e);
138
- },
139
- onBlur: e => {
140
- var _triggerProps$onBlur, _saferRest$onBlur;
141
- (_triggerProps$onBlur = triggerProps.onBlur) === null || _triggerProps$onBlur === void 0 ? void 0 : _triggerProps$onBlur.call(triggerProps, e);
142
- (_saferRest$onBlur = saferRest.onBlur) === null || _saferRest$onBlur === void 0 ? void 0 : _saferRest$onBlur.call(saferRest, e);
143
- }
144
- // Shared between tooltip and base props
145
- ,
146
- onClick: (event, analyticsEvent) => {
147
- var _baseProps$onClick, _triggerProps$onClick;
148
- baseProps === null || baseProps === void 0 ? void 0 : (_baseProps$onClick = baseProps.onClick) === null || _baseProps$onClick === void 0 ? void 0 : _baseProps$onClick.call(baseProps, event, analyticsEvent);
149
- triggerProps === null || triggerProps === void 0 ? void 0 : (_triggerProps$onClick = triggerProps.onClick) === null || _triggerProps$onClick === void 0 ? void 0 : _triggerProps$onClick.call(triggerProps, event);
150
- },
151
- ref: ref => {
152
- var _triggerProps$ref;
153
- baseProps.ref(ref);
154
- triggerProps === null || triggerProps === void 0 ? void 0 : (_triggerProps$ref = triggerProps.ref) === null || _triggerProps$ref === void 0 ? void 0 : _triggerProps$ref.call(triggerProps, ref);
155
- }
156
- // Base props only
157
- ,
158
- xcss: baseProps.xcss,
159
- isDisabled: baseProps.isDisabled,
160
- onMouseDownCapture: baseProps.onMouseDownCapture,
161
- onMouseUpCapture: baseProps.onMouseUpCapture,
162
- onKeyDownCapture: baseProps.onKeyDownCapture,
163
- onKeyUpCapture: baseProps.onKeyUpCapture,
164
- onTouchStartCapture: baseProps.onTouchStartCapture,
165
- onTouchEndCapture: baseProps.onTouchEndCapture,
166
- onPointerDownCapture: baseProps.onPointerDownCapture,
167
- onPointerUpCapture: baseProps.onPointerUpCapture,
168
- onClickCapture: baseProps.onClickCapture
169
- }), baseProps.children));
86
+ }), /*#__PURE__*/React.createElement(Content, {
87
+ type: "icon",
88
+ isLoading: isLoading
89
+ }, /*#__PURE__*/React.createElement(IconRenderer, {
90
+ icon: icon
91
+ }), /*#__PURE__*/React.createElement(VisuallyHidden, null, label)));
170
92
  }
171
- return /*#__PURE__*/React.createElement(Pressable, _extends({}, saferRest, {
172
- "aria-labelledby": baseProps['aria-labelledby'],
173
- ref: baseProps.ref,
174
- xcss: baseProps.xcss,
175
- isDisabled: baseProps.isDisabled,
176
- onClick: baseProps.onClick,
177
- onMouseDownCapture: baseProps.onMouseDownCapture,
178
- onMouseUpCapture: baseProps.onMouseUpCapture,
179
- onKeyDownCapture: baseProps.onKeyDownCapture,
180
- onKeyUpCapture: baseProps.onKeyUpCapture,
181
- onTouchStartCapture: baseProps.onTouchStartCapture,
182
- onTouchEndCapture: baseProps.onTouchEndCapture,
183
- onPointerDownCapture: baseProps.onPointerDownCapture,
184
- onPointerUpCapture: baseProps.onPointerUpCapture,
185
- onClickCapture: baseProps.onClickCapture,
93
+ return /*#__PURE__*/React.createElement(Tooltip, {
94
+ content: (_tooltip$content = tooltip === null || tooltip === void 0 ? void 0 : tooltip.content) !== null && _tooltip$content !== void 0 ? _tooltip$content : label,
95
+ testId: tooltip === null || tooltip === void 0 ? void 0 : tooltip.testId,
96
+ position: tooltip === null || tooltip === void 0 ? void 0 : tooltip.position,
97
+ delay: tooltip === null || tooltip === void 0 ? void 0 : tooltip.delay,
98
+ onShow: tooltip === null || tooltip === void 0 ? void 0 : tooltip.onShow,
99
+ onHide: tooltip === null || tooltip === void 0 ? void 0 : tooltip.onHide,
100
+ mousePosition: tooltip === null || tooltip === void 0 ? void 0 : tooltip.mousePosition,
101
+ analyticsContext: tooltip === null || tooltip === void 0 ? void 0 : tooltip.analyticsContext,
102
+ strategy: tooltip === null || tooltip === void 0 ? void 0 : tooltip.strategy,
103
+ tag: tooltip === null || tooltip === void 0 ? void 0 : tooltip.tag,
104
+ truncate: tooltip === null || tooltip === void 0 ? void 0 : tooltip.truncate,
105
+ component: tooltip === null || tooltip === void 0 ? void 0 : tooltip.component,
106
+ hideTooltipOnClick: tooltip === null || tooltip === void 0 ? void 0 : tooltip.hideTooltipOnClick,
107
+ hideTooltipOnMouseDown: tooltip === null || tooltip === void 0 ? void 0 : tooltip.hideTooltipOnMouseDown,
108
+ ignoreTooltipPointerEvents: tooltip === null || tooltip === void 0 ? void 0 : tooltip.ignoreTooltipPointerEvents
109
+ }, triggerProps => /*#__PURE__*/React.createElement(ButtonBase, _extends({}, saferRest, {
110
+ appearance: appearance,
111
+ autoFocus: autoFocus,
112
+ isDisabled: isDisabled,
113
+ isLoading: isLoading,
114
+ isSelected: isSelected,
115
+ isIconButton: true,
116
+ isCircle: shape === 'circle',
117
+ hasIconBefore: false,
118
+ spacing: spacing,
119
+ ariaLabelledBy: ariaLabelledBy,
120
+ onClick: (e, analyticsEvent) => {
121
+ var _triggerProps$onClick;
122
+ onClick === null || onClick === void 0 ? void 0 : onClick(e, analyticsEvent);
123
+ (_triggerProps$onClick = triggerProps.onClick) === null || _triggerProps$onClick === void 0 ? void 0 : _triggerProps$onClick.call(triggerProps, e);
124
+ },
125
+ onMouseOver: e => {
126
+ var _triggerProps$onMouse, _saferRest$onMouseOve;
127
+ (_triggerProps$onMouse = triggerProps.onMouseOver) === null || _triggerProps$onMouse === void 0 ? void 0 : _triggerProps$onMouse.call(triggerProps, e);
128
+ (_saferRest$onMouseOve = saferRest.onMouseOver) === null || _saferRest$onMouseOve === void 0 ? void 0 : _saferRest$onMouseOve.call(saferRest, e);
129
+ },
130
+ onMouseOut: e => {
131
+ var _triggerProps$onMouse2, _saferRest$onMouseOut;
132
+ (_triggerProps$onMouse2 = triggerProps.onMouseOut) === null || _triggerProps$onMouse2 === void 0 ? void 0 : _triggerProps$onMouse2.call(triggerProps, e);
133
+ (_saferRest$onMouseOut = saferRest.onMouseOut) === null || _saferRest$onMouseOut === void 0 ? void 0 : _saferRest$onMouseOut.call(saferRest, e);
134
+ },
135
+ onMouseMove: e => {
136
+ var _triggerProps$onMouse3, _saferRest$onMouseMov;
137
+ (_triggerProps$onMouse3 = triggerProps.onMouseMove) === null || _triggerProps$onMouse3 === void 0 ? void 0 : _triggerProps$onMouse3.call(triggerProps, e);
138
+ (_saferRest$onMouseMov = saferRest.onMouseMove) === null || _saferRest$onMouseMov === void 0 ? void 0 : _saferRest$onMouseMov.call(saferRest, e);
139
+ },
140
+ onMouseDown: e => {
141
+ var _triggerProps$onMouse4, _saferRest$onMouseDow;
142
+ (_triggerProps$onMouse4 = triggerProps.onMouseDown) === null || _triggerProps$onMouse4 === void 0 ? void 0 : _triggerProps$onMouse4.call(triggerProps, e);
143
+ (_saferRest$onMouseDow = saferRest.onMouseDown) === null || _saferRest$onMouseDow === void 0 ? void 0 : _saferRest$onMouseDow.call(saferRest, e);
144
+ },
145
+ onFocus: e => {
146
+ var _triggerProps$onFocus, _saferRest$onFocus;
147
+ (_triggerProps$onFocus = triggerProps.onFocus) === null || _triggerProps$onFocus === void 0 ? void 0 : _triggerProps$onFocus.call(triggerProps, e);
148
+ (_saferRest$onFocus = saferRest.onFocus) === null || _saferRest$onFocus === void 0 ? void 0 : _saferRest$onFocus.call(saferRest, e);
149
+ },
150
+ onBlur: e => {
151
+ var _triggerProps$onBlur, _saferRest$onBlur;
152
+ (_triggerProps$onBlur = triggerProps.onBlur) === null || _triggerProps$onBlur === void 0 ? void 0 : _triggerProps$onBlur.call(triggerProps, e);
153
+ (_saferRest$onBlur = saferRest.onBlur) === null || _saferRest$onBlur === void 0 ? void 0 : _saferRest$onBlur.call(saferRest, e);
154
+ },
155
+ ref: mergeRefs([ref, triggerProps === null || triggerProps === void 0 ? void 0 : triggerProps.ref].filter(Boolean)),
156
+ onMouseDownCapture: onMouseDownCapture,
157
+ onMouseUpCapture: onMouseUpCapture,
158
+ onKeyDownCapture: onKeyDownCapture,
159
+ onKeyUpCapture: onKeyUpCapture,
160
+ onTouchStartCapture: onTouchStartCapture,
161
+ onTouchEndCapture: onTouchEndCapture,
162
+ onPointerDownCapture: onPointerDownCapture,
163
+ onPointerUpCapture: onPointerUpCapture,
164
+ onClickCapture: onClickCapture,
186
165
  type: type,
187
166
  testId: testId,
188
- componentName: "IconButton",
189
167
  analyticsContext: analyticsContext,
190
- interactionName: interactionName
191
- }), baseProps.children);
168
+ interactionName: interactionName,
169
+ componentName: "IconButton"
170
+ }), /*#__PURE__*/React.createElement(Content, {
171
+ type: "icon",
172
+ isLoading: isLoading
173
+ }, /*#__PURE__*/React.createElement(IconRenderer, {
174
+ icon: icon
175
+ }), /*#__PURE__*/React.createElement(VisuallyHidden, null, label))));
192
176
  }));
193
177
  IconButton.displayName = 'IconButton';
194
178
  export default IconButton;
@@ -0,0 +1,104 @@
1
+
2
+ ._11c82smr{font:var(--ds-font-body,normal 400 14px/20px ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
3
+ ._14mj1kw7:after{border-radius:inherit}
4
+ ._2rkosqtm{border-radius:var(--ds-border-radius-100,3px)}
5
+ ._9v7aze3t:after{inset:var(--ds-space-0,0)}
6
+ ._v5649dqc{transition:background .1s ease-out}
7
+ ._189eidpf{border-width:0}
8
+ ._1rjc12x7{padding-block:var(--ds-space-075,6px)}
9
+ ._1rjcv77o{padding-block:var(--ds-space-025,2px)}
10
+ ._1tv3nqa1:after{border-style:solid}
11
+ ._39yqe4h9:after{border-width:var(--ds-border-width,1px)}
12
+ ._8l3mcoux:after{border-color:var(--ds-border-selected,#0052cc)}
13
+ ._8l3mmuej:after{border-color:var(--ds-border,#091e4224)}
14
+ ._11fnglyw:after{pointer-events:none}
15
+ ._18postnw:after{position:absolute}
16
+ ._1bah1h6o{justify-content:center}
17
+ ._1bsb1k8s{width:1.5rem}
18
+ ._1bsb1wug{width:auto}
19
+ ._1bsbviql{width:2rem}
20
+ ._1e0c116y{display:inline-flex}
21
+ ._1hmsagmp{text-decoration-line:none!important}
22
+ ._1o9zidpf{flex-shrink:0}
23
+ ._4bfu1snc{text-decoration-color:currentColor!important}
24
+ ._4cvr1q9y{align-items:baseline}
25
+ ._4t3i1k8s{height:1.5rem}
26
+ ._4t3iviql{height:2rem}
27
+ ._80om13gf{cursor:not-allowed}
28
+ ._aetrb3bt:after{content:""}
29
+ ._aetrglyw:after{content:none}
30
+ ._ajmmvv82{text-decoration-style:solid!important}
31
+ ._bfhk1g49{background-color:var(--ds-background-selected,#403294)}
32
+ ._bfhk1j54{background-color:var(--ds-background-neutral,rgba(9,30,66,.04))}
33
+ ._bfhk1vbi{background-color:var(--ds-background-discovery-bold,#5243aa)}
34
+ ._bfhk7btw{background-color:var(--ds-background-selected,#253858)}
35
+ ._bfhkfg4m{background-color:var(--ds-background-selected,#e9f2ff)}
36
+ ._bfhkomb0{background-color:var(--ds-background-brand-bold,#0052cc)}
37
+ ._bfhkqtfy{background-color:var(--ds-background-neutral-subtle,transparent)}
38
+ ._bfhksm61{background-color:var(--ds-background-neutral-subtle,#00000000)}
39
+ ._bfhksyzs{background-color:var(--ds-background-disabled,#091e4208)}
40
+ ._bozgutpp{padding-inline-start:var(--ds-space-150,9pt)}
41
+ ._bozgze3t{padding-inline-start:var(--ds-space-0,0)}
42
+ ._gy1p1b66{column-gap:var(--ds-space-050,4px)}
43
+ ._k48p1wq8{font-weight:var(--ds-font-weight-medium,500)}
44
+ ._kqswh2mm{position:relative}
45
+ ._p12f1osq{max-width:100%}
46
+ ._s7n4nkob{vertical-align:middle}
47
+ ._syaz10s3{color:var(--ds-text,#42526e)}
48
+ ._syaz15cr{color:var(--ds-text-inverse,#fff)}
49
+ ._syaz1gjq{color:var(--ds-text-subtle,#44546f)}
50
+ ._syaz1ldt{color:var(--ds-text-selected,#0052cc)}
51
+ ._syaz1lh4{color:var(--ds-text-disabled,#091e424f)}
52
+ ._syaz1pke{color:var(--ds-text-selected,#f4f5f7)}
53
+ ._vchhusvi{box-sizing:border-box}
54
+ ._y3gn1h6o{text-align:center}
55
+ ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}
56
+ ._y4tize3t{padding-inline-end:var(--ds-space-0,0)}._105310s3:visited{color:var(--ds-text,#42526e)}
57
+ ._105315cr:visited{color:var(--ds-text-inverse,#fff)}
58
+ ._10531gjq:visited{color:var(--ds-text-subtle,#44546f)}
59
+ ._10531ldt:visited{color:var(--ds-text-selected,#0052cc)}
60
+ ._10531pke:visited{color:var(--ds-text-selected,#f4f5f7)}
61
+ ._1a3b1r31:focus{text-decoration-color:currentColor}
62
+ ._4fprglyw:focus{text-decoration-line:none}
63
+ ._5goinqa1:focus{text-decoration-style:solid}
64
+ ._f8pj10s3:focus{color:var(--ds-text,#42526e)}
65
+ ._f8pj1gjq:focus{color:var(--ds-text-subtle,#44546f)}
66
+ ._f8pj1ldt:focus{color:var(--ds-text-selected,#0052cc)}
67
+ ._f8pj1mjl:focus{color:color.text.subtle}
68
+ ._f8pj1pke:focus{color:var(--ds-text-selected,#f4f5f7)}
69
+ ._1bnxglyw:hover{text-decoration-line:none}
70
+ ._30l310s3:hover{color:var(--ds-text,#42526e)}
71
+ ._30l315cr:hover{color:var(--ds-text-inverse,#fff)}
72
+ ._30l31gjq:hover{color:var(--ds-text-subtle,#44546f)}
73
+ ._30l31ldt:hover{color:var(--ds-text-selected,#0052cc)}
74
+ ._30l31lh4:hover{color:var(--ds-text-disabled,#091e424f)}
75
+ ._30l31pke:hover{color:var(--ds-text-selected,#f4f5f7)}
76
+ ._30l3aqb7:hover{color:var(--ds-text-selected,#0c66e4)}
77
+ ._9oik1r31:hover{text-decoration-color:currentColor}
78
+ ._irr3166n:hover{background-color:var(--ds-background-neutral-subtle-hovered,#091e420f)}
79
+ ._irr31g49:hover{background-color:var(--ds-background-selected,#403294)}
80
+ ._irr31wqm:hover{background-color:var(--ds-background-brand-bold-hovered,#0065ff)}
81
+ ._irr34mfv:hover{background-color:var(--ds-background-neutral-subtle-hovered,#091e4214)}
82
+ ._irr37gr8:hover{background-color:var(--ds-background-discovery-bold-hovered,#8777d9)}
83
+ ._irr3i1yw:hover{background-color:var(--ds-background-selected-hovered,#cce0ff)}
84
+ ._irr3syzs:hover{background-color:var(--ds-background-disabled,#091e4208)}
85
+ ._irr3yw9d:hover{background-color:var(--ds-background-neutral-hovered,#091e4214)}
86
+ ._jf4cnqa1:hover{text-decoration-style:solid}
87
+ ._1di617hq:active{background-color:var(--ds-background-brand-bold-pressed,#0747a6)}
88
+ ._1di619qy:active{background-color:var(--ds-background-neutral-subtle-pressed,#b3d4ff)}
89
+ ._1di619ru:active{background-color:var(--ds-background-selected-pressed,#85b8ff)}
90
+ ._1di61dty:active{background-color:var(--ds-background-neutral-subtle-pressed,#091e4224)}
91
+ ._1di61g49:active{background-color:var(--ds-background-selected,#403294)}
92
+ ._1di61wu2:active{background-color:var(--ds-background-discovery-bold-pressed,#5243aa)}
93
+ ._1di6ip91:active{background-color:var(--ds-background-neutral-pressed,#091e424f)}
94
+ ._1di6syzs:active{background-color:var(--ds-background-disabled,#091e4208)}
95
+ ._1iohnqa1:active{text-decoration-style:solid}
96
+ ._1nrm1r31:active{text-decoration-color:currentColor}
97
+ ._9h8h10s3:active{color:var(--ds-text,#42526e)}
98
+ ._9h8h15cr:active{color:var(--ds-text-inverse,#fff)}
99
+ ._9h8h1gjq:active{color:var(--ds-text-subtle,#44546f)}
100
+ ._9h8h1ldt:active{color:var(--ds-text-selected,#0052cc)}
101
+ ._9h8h1lh4:active{color:var(--ds-text-disabled,#091e424f)}
102
+ ._9h8h1pke:active{color:var(--ds-text-selected,#f4f5f7)}
103
+ ._9h8haqb7:active{color:var(--ds-text-selected,#0c66e4)}
104
+ ._c2waglyw:active{text-decoration-line:none}