@atlaskit/button 17.17.3 → 17.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/cjs/containers/button-group.js +6 -1
  3. package/dist/cjs/new-button/containers/split-button/split-button.js +9 -2
  4. package/dist/cjs/new-button/variants/default/button.js +8 -1
  5. package/dist/cjs/new-button/variants/default/link.js +8 -1
  6. package/dist/cjs/new-button/variants/default/use-default-button.js +7 -1
  7. package/dist/cjs/new-button/variants/icon/button.js +6 -1
  8. package/dist/cjs/new-button/variants/icon/link.js +6 -1
  9. package/dist/cjs/new-button/variants/icon/use-icon-button.js +7 -1
  10. package/dist/cjs/new-button/variants/shared/constants.js +7 -0
  11. package/dist/cjs/new-button/variants/shared/loading-overlay.js +4 -3
  12. package/dist/cjs/new-button/variants/shared/use-button-base.js +54 -2
  13. package/dist/cjs/old-button/button.js +1 -1
  14. package/dist/cjs/old-button/custom-theme-button/custom-theme-button.js +1 -1
  15. package/dist/cjs/old-button/custom-theme-button/theme.js +1 -1
  16. package/dist/cjs/old-button/shared/button-base.js +12 -3
  17. package/dist/cjs/old-button/shared/css.js +4 -3
  18. package/dist/es2019/containers/button-group.js +6 -1
  19. package/dist/es2019/new-button/containers/split-button/split-button.js +8 -2
  20. package/dist/es2019/new-button/variants/default/button.js +7 -0
  21. package/dist/es2019/new-button/variants/default/link.js +7 -0
  22. package/dist/es2019/new-button/variants/default/use-default-button.js +7 -1
  23. package/dist/es2019/new-button/variants/icon/button.js +5 -0
  24. package/dist/es2019/new-button/variants/icon/link.js +5 -0
  25. package/dist/es2019/new-button/variants/icon/use-icon-button.js +7 -1
  26. package/dist/es2019/new-button/variants/shared/constants.js +1 -0
  27. package/dist/es2019/new-button/variants/shared/loading-overlay.js +4 -3
  28. package/dist/es2019/new-button/variants/shared/use-button-base.js +54 -2
  29. package/dist/es2019/old-button/button.js +3 -0
  30. package/dist/es2019/old-button/custom-theme-button/custom-theme-button.js +3 -0
  31. package/dist/es2019/old-button/custom-theme-button/theme.js +2 -0
  32. package/dist/es2019/old-button/shared/button-base.js +13 -3
  33. package/dist/es2019/old-button/shared/css.js +4 -2
  34. package/dist/esm/containers/button-group.js +6 -1
  35. package/dist/esm/new-button/containers/split-button/split-button.js +8 -2
  36. package/dist/esm/new-button/variants/default/button.js +8 -1
  37. package/dist/esm/new-button/variants/default/link.js +8 -1
  38. package/dist/esm/new-button/variants/default/use-default-button.js +7 -1
  39. package/dist/esm/new-button/variants/icon/button.js +6 -1
  40. package/dist/esm/new-button/variants/icon/link.js +6 -1
  41. package/dist/esm/new-button/variants/icon/use-icon-button.js +7 -1
  42. package/dist/esm/new-button/variants/shared/constants.js +1 -0
  43. package/dist/esm/new-button/variants/shared/loading-overlay.js +4 -3
  44. package/dist/esm/new-button/variants/shared/use-button-base.js +54 -2
  45. package/dist/esm/old-button/button.js +3 -0
  46. package/dist/esm/old-button/custom-theme-button/custom-theme-button.js +3 -0
  47. package/dist/esm/old-button/custom-theme-button/theme.js +2 -0
  48. package/dist/esm/old-button/shared/button-base.js +13 -3
  49. package/dist/esm/old-button/shared/css.js +4 -2
  50. package/dist/types/containers/button-group.d.ts +3 -0
  51. package/dist/types/new-button/containers/split-button/split-button.d.ts +3 -0
  52. package/dist/types/new-button/variants/default/link.d.ts +1 -1
  53. package/dist/types/new-button/variants/default/types.d.ts +1 -1
  54. package/dist/types/new-button/variants/default/use-default-button.d.ts +4 -3
  55. package/dist/types/new-button/variants/icon/link.d.ts +1 -1
  56. package/dist/types/new-button/variants/icon/use-icon-button.d.ts +4 -3
  57. package/dist/types/new-button/variants/shared/constants.d.ts +1 -0
  58. package/dist/types/new-button/variants/shared/loading-overlay.d.ts +2 -1
  59. package/dist/types/new-button/variants/shared/use-button-base.d.ts +5 -1
  60. package/dist/types/old-button/shared/button-base.d.ts +3 -0
  61. package/dist/types-ts4.5/containers/button-group.d.ts +3 -0
  62. package/dist/types-ts4.5/new-button/containers/split-button/split-button.d.ts +3 -0
  63. package/dist/types-ts4.5/new-button/variants/default/link.d.ts +1 -1
  64. package/dist/types-ts4.5/new-button/variants/default/types.d.ts +1 -1
  65. package/dist/types-ts4.5/new-button/variants/default/use-default-button.d.ts +4 -3
  66. package/dist/types-ts4.5/new-button/variants/icon/link.d.ts +1 -1
  67. package/dist/types-ts4.5/new-button/variants/icon/use-icon-button.d.ts +4 -3
  68. package/dist/types-ts4.5/new-button/variants/shared/constants.d.ts +1 -0
  69. package/dist/types-ts4.5/new-button/variants/shared/loading-overlay.d.ts +2 -1
  70. package/dist/types-ts4.5/new-button/variants/shared/use-button-base.d.ts +5 -1
  71. package/dist/types-ts4.5/old-button/shared/button-base.d.ts +3 -0
  72. package/package.json +202 -201
@@ -1,6 +1,7 @@
1
1
  import { type UseButtonBaseArgs, type UseButtonBaseReturn } from '../shared/use-button-base';
2
- import { type CommonIconButtonProps } from './types';
3
- type UseIconButtonArgs<TagName extends HTMLElement> = Omit<UseButtonBaseArgs<TagName>, 'children'> & Omit<CommonIconButtonProps, 'isTooltipDisabled' | 'tooltip'>;
2
+ import type { CommonButtonProps } from '../types';
3
+ import type { CommonIconButtonProps } from './types';
4
+ type UseIconButtonArgs<TagName extends HTMLElement> = Omit<UseButtonBaseArgs<TagName>, 'children'> & Omit<CommonIconButtonProps, 'isTooltipDisabled' | 'tooltip'> & Pick<CommonButtonProps<TagName>, 'testId'>;
4
5
  type UseIconButtonReturn<TagName extends HTMLElement> = UseButtonBaseReturn<TagName>;
5
6
  /**
6
7
  * __Use icon button__
@@ -11,5 +12,5 @@ type UseIconButtonReturn<TagName extends HTMLElement> = UseButtonBaseReturn<TagN
11
12
  *
12
13
  * @private
13
14
  */
14
- declare const useIconButton: <TagName extends HTMLElement>({ analyticsContext, appearance, autoFocus, buttonType, icon: Icon, interactionName, isDisabled, isLoading, isSelected, label, onClick, onClickCapture, onKeyDownCapture, onKeyUpCapture, onMouseDownCapture, onMouseUpCapture, onPointerDownCapture, onPointerUpCapture, onTouchEndCapture, onTouchStartCapture, overlay, ref, shape, shouldFitContainer, spacing, UNSAFE_size, }: UseIconButtonArgs<TagName>) => UseIconButtonReturn<TagName>;
15
+ declare const useIconButton: <TagName extends HTMLElement>({ analyticsContext, appearance, ariaLabel, ariaLabelledBy, autoFocus, buttonType, icon: Icon, interactionName, isDisabled, isLoading, isSelected, label, onClick, onClickCapture, onKeyDownCapture, onKeyUpCapture, onMouseDownCapture, onMouseUpCapture, onPointerDownCapture, onPointerUpCapture, onTouchEndCapture, onTouchStartCapture, overlay, ref, shape, shouldFitContainer, spacing, testId, UNSAFE_size, }: UseIconButtonArgs<TagName>) => UseIconButtonReturn<TagName>;
15
16
  export default useIconButton;
@@ -0,0 +1 @@
1
+ export declare const LOADING_LABEL = ", Loading";
@@ -1,8 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import { type Appearance, type ButtonSpacing } from '../types';
3
- export default function renderLoadingOverlay({ appearance, spacing, isDisabled, isSelected, }: {
3
+ export default function renderLoadingOverlay({ appearance, spacing, isDisabled, isSelected, testId, }: {
4
4
  spacing?: ButtonSpacing;
5
5
  appearance?: Appearance;
6
6
  isDisabled?: boolean;
7
7
  isSelected?: boolean;
8
+ testId?: string;
8
9
  }): JSX.Element;
@@ -17,6 +17,8 @@ export type UseButtonBaseArgs<TagName extends HTMLElement> = {
17
17
  children: React.ReactNode;
18
18
  spacing?: Spacing;
19
19
  isLoading?: boolean;
20
+ ariaLabel?: string;
21
+ ariaLabelledBy?: string;
20
22
  } & Pick<CommonButtonProps<TagName>, 'analyticsContext' | 'autoFocus' | 'interactionName' | 'isDisabled' | 'isSelected' | 'overlay'> & ControlledEvents<TagName>;
21
23
  type XCSS = ReturnType<typeof xcss>;
22
24
  export type UseButtonBaseReturn<TagName extends HTMLElement> = {
@@ -24,6 +26,8 @@ export type UseButtonBaseReturn<TagName extends HTMLElement> = {
24
26
  ref(node: TagName | null): void;
25
27
  children: React.ReactNode;
26
28
  isDisabled: boolean;
29
+ 'aria-label'?: string;
30
+ 'aria-labelledby'?: string;
27
31
  } & ControlledEvents<TagName>;
28
32
  /**
29
33
  * __Use button base__
@@ -38,5 +42,5 @@ export type UseButtonBaseReturn<TagName extends HTMLElement> = {
38
42
  *
39
43
  * @private
40
44
  */
41
- declare const useButtonBase: <TagName extends HTMLElement>({ appearance: propAppearance, autoFocus, isDisabled: propIsDisabled, isLoading, isSelected, isIconButton, isCircle, hasIconBefore, hasIconAfter, children, onClick, onMouseDownCapture, onMouseUpCapture, onKeyDownCapture, onKeyUpCapture, onTouchStartCapture, onTouchEndCapture, onPointerDownCapture, onPointerUpCapture, onClickCapture, overlay, ref, shouldFitContainer, spacing: propSpacing, }: UseButtonBaseArgs<TagName>) => UseButtonBaseReturn<TagName>;
45
+ declare const useButtonBase: <TagName extends HTMLElement>({ appearance: propAppearance, autoFocus, isDisabled: propIsDisabled, isLoading, isSelected, isIconButton, isCircle, hasIconBefore, hasIconAfter, children, onClick, onMouseDownCapture, onMouseUpCapture, onKeyDownCapture, onKeyUpCapture, onTouchStartCapture, onTouchEndCapture, onPointerDownCapture, onPointerUpCapture, onClickCapture, overlay, ref, shouldFitContainer, spacing: propSpacing, ariaLabel, ariaLabelledBy, }: UseButtonBaseArgs<TagName>) => UseButtonBaseReturn<TagName>;
42
46
  export default useButtonBase;
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @jsxRuntime classic
3
+ */
1
4
  /** @jsx jsx */
2
5
  import React from 'react';
3
6
  import { type CSSObject } from '@emotion/react';
package/package.json CHANGED
@@ -1,202 +1,203 @@
1
1
  {
2
- "name": "@atlaskit/button",
3
- "version": "17.17.3",
4
- "description": "A button triggers an event or action. They let users know what will happen next.",
5
- "publishConfig": {
6
- "registry": "https://registry.npmjs.org/"
7
- },
8
- "repository": "https://bitbucket.org/atlassian/atlassian-frontend-mirror",
9
- "author": "Atlassian Pty Ltd",
10
- "license": "Apache-2.0",
11
- "main": "dist/cjs/index.js",
12
- "module": "dist/esm/index.js",
13
- "module:es2019": "dist/es2019/index.js",
14
- "types": "dist/types/index.d.ts",
15
- "typesVersions": {
16
- ">=4.5 <4.9": {
17
- "*": [
18
- "dist/types-ts4.5/*",
19
- "dist/types-ts4.5/index.d.ts"
20
- ]
21
- }
22
- },
23
- "sideEffects": false,
24
- "atlaskit:src": "src/index.tsx",
25
- "atlassian": {
26
- "team": "Design System Team",
27
- "releaseModel": "continuous",
28
- "productPushConsumption": [
29
- "jira"
30
- ],
31
- "website": {
32
- "name": "Button",
33
- "category": "Components",
34
- "status": {
35
- "type": "beta",
36
- "description": "New and ready to use. We'll provide comms and support for any major changes. Migrate from legacy buttons using our codemod.",
37
- "actions": [
38
- {
39
- "text": "View the migration guide",
40
- "href": "/components/button/button-legacy/migration-guide"
41
- }
42
- ]
43
- },
44
- "subPages": [
45
- {
46
- "title": "Icon button",
47
- "id": "icon-button",
48
- "status": {
49
- "type": "beta",
50
- "description": "New and ready to use. We'll provide comms and support for any major changes. Migrate from legacy buttons using our codemod.",
51
- "actions": [
52
- {
53
- "text": "View the migration guide",
54
- "href": "/components/button/button-legacy/migration-guide"
55
- }
56
- ]
57
- },
58
- "sortKey": 1
59
- },
60
- {
61
- "title": "Link button",
62
- "id": "link-button",
63
- "status": {
64
- "type": "beta",
65
- "description": "New and ready to use. We'll provide comms and support for any major changes. Migrate from legacy buttons using our codemod.",
66
- "actions": [
67
- {
68
- "text": "View the migration guide",
69
- "href": "/components/button/button-legacy/migration-guide"
70
- }
71
- ]
72
- },
73
- "sortKey": 2
74
- },
75
- {
76
- "title": "Link icon button",
77
- "id": "link-icon-button",
78
- "status": {
79
- "type": "beta",
80
- "description": "New and ready to use. We'll provide comms and support for any major changes. Migrate from legacy buttons using our codemod.",
81
- "actions": [
82
- {
83
- "text": "View the migration guide",
84
- "href": "/components/button/button-legacy/migration-guide"
85
- }
86
- ]
87
- },
88
- "sortKey": 3
89
- },
90
- {
91
- "title": "Split button",
92
- "id": "split-button",
93
- "status": {
94
- "type": "beta"
95
- },
96
- "sortKey": 4
97
- },
98
- {
99
- "title": "Button group",
100
- "id": "button-group",
101
- "sortKey": 5
102
- },
103
- {
104
- "title": "Button (legacy)",
105
- "id": "button-legacy",
106
- "status": {
107
- "type": "intent-to-deprecate",
108
- "description": "Legacy buttons will soon be deprecated. Please use the new [button](/components/button), [icon button](/components/button/icon-button), [link button](/components/button/link-button), or [link icon button](/components/button/link-icon-button). Migrate from legacy buttons using our codemod.",
109
- "actions": [
110
- {
111
- "text": "View the migration guide",
112
- "href": "/components/button/button-legacy/migration-guide"
113
- }
114
- ]
115
- },
116
- "sortKey": 6
117
- }
118
- ]
119
- },
120
- "runReact18": true
121
- },
122
- "af:exports": {
123
- "./button-group": "./src/entry-points/button-group.tsx",
124
- "./custom-theme-button": "./src/entry-points/custom-theme-button.tsx",
125
- "./loading-button": "./src/entry-points/loading-button.tsx",
126
- "./standard-button": "./src/entry-points/standard-button.tsx",
127
- "./new": "./src/entry-points/new.tsx",
128
- "./types": "./src/entry-points/types.tsx",
129
- ".": "./src/index.tsx"
130
- },
131
- "dependencies": {
132
- "@atlaskit/analytics-next": "^9.3.0",
133
- "@atlaskit/ds-lib": "^2.3.0",
134
- "@atlaskit/focus-ring": "^1.4.0",
135
- "@atlaskit/icon": "^22.3.0",
136
- "@atlaskit/interaction-context": "^2.1.0",
137
- "@atlaskit/platform-feature-flags": "^0.2.5",
138
- "@atlaskit/primitives": "^7.0.0",
139
- "@atlaskit/spinner": "^16.1.0",
140
- "@atlaskit/theme": "^12.9.0",
141
- "@atlaskit/tokens": "^1.50.0",
142
- "@atlaskit/tooltip": "^18.4.0",
143
- "@atlaskit/visually-hidden": "^1.3.0",
144
- "@babel/runtime": "^7.0.0",
145
- "@emotion/react": "^11.7.1"
146
- },
147
- "peerDependencies": {
148
- "react": "^16.8.0 || ^17.0.0 || ~18.2.0"
149
- },
150
- "devDependencies": {
151
- "@af/accessibility-testing": "*",
152
- "@af/integration-testing": "*",
153
- "@af/visual-regression": "*",
154
- "@atlaskit/app-provider": "^1.3.0",
155
- "@atlaskit/calendar": "^14.2.0",
156
- "@atlaskit/checkbox": "^13.4.0",
157
- "@atlaskit/ssr": "*",
158
- "@atlaskit/toggle": "^13.1.0",
159
- "@atlaskit/visual-regression": "*",
160
- "@testing-library/react": "^12.1.5",
161
- "@testing-library/user-event": "^14.4.3",
162
- "@types/react-router-dom": "^4.3.1",
163
- "ast-types": "^0.13.3",
164
- "bind-event-listener": "^3.0.0",
165
- "jest-emotion": "^10.0.32",
166
- "jest-in-case": "^1.0.2",
167
- "jscodeshift": "^0.13.0",
168
- "lodash": "^4.17.21",
169
- "react-dom": "^16.8.0",
170
- "react-router-dom": "^4.2.2",
171
- "react-test-renderer": "^16.8.0",
172
- "storybook-addon-performance": "^0.16.0",
173
- "typescript": "~5.4.2",
174
- "wait-for-expect": "^1.2.0"
175
- },
176
- "techstack": {
177
- "@atlassian/frontend": {
178
- "import-structure": "atlassian-conventions"
179
- },
180
- "@repo/internal": {
181
- "dom-events": "use-bind-event-listener",
182
- "design-system": "v1",
183
- "ui-components": "lite-mode",
184
- "analytics": "analytics-next",
185
- "design-tokens": [
186
- "color",
187
- "spacing"
188
- ],
189
- "deprecation": "no-deprecated-imports",
190
- "styling": [
191
- "emotion",
192
- "static"
193
- ]
194
- }
195
- },
196
- "homepage": "https://atlassian.design/components/button/",
197
- "platform-feature-flags": {
198
- "platform.design-system-team.button-tokenised-typography-styles": {
199
- "type": "boolean"
200
- }
201
- }
202
- }
2
+ "name": "@atlaskit/button",
3
+ "version": "17.19.0",
4
+ "description": "A button triggers an event or action. They let users know what will happen next.",
5
+ "publishConfig": {
6
+ "registry": "https://registry.npmjs.org/"
7
+ },
8
+ "repository": "https://bitbucket.org/atlassian/atlassian-frontend-mirror",
9
+ "author": "Atlassian Pty Ltd",
10
+ "license": "Apache-2.0",
11
+ "main": "dist/cjs/index.js",
12
+ "module": "dist/esm/index.js",
13
+ "module:es2019": "dist/es2019/index.js",
14
+ "types": "dist/types/index.d.ts",
15
+ "typesVersions": {
16
+ ">=4.5 <4.9": {
17
+ "*": [
18
+ "dist/types-ts4.5/*",
19
+ "dist/types-ts4.5/index.d.ts"
20
+ ]
21
+ }
22
+ },
23
+ "sideEffects": false,
24
+ "atlaskit:src": "src/index.tsx",
25
+ "atlassian": {
26
+ "team": "Design System Team",
27
+ "releaseModel": "continuous",
28
+ "productPushConsumption": [
29
+ "jira"
30
+ ],
31
+ "website": {
32
+ "name": "Button",
33
+ "category": "Components",
34
+ "status": {
35
+ "type": "beta",
36
+ "description": "New and ready to use. We'll provide comms and support for any major changes. Migrate from legacy buttons using our codemod.",
37
+ "actions": [
38
+ {
39
+ "text": "View the migration guide",
40
+ "href": "/components/button/button-legacy/migration-guide"
41
+ }
42
+ ]
43
+ },
44
+ "subPages": [
45
+ {
46
+ "title": "Icon button",
47
+ "id": "icon-button",
48
+ "status": {
49
+ "type": "beta",
50
+ "description": "New and ready to use. We'll provide comms and support for any major changes. Migrate from legacy buttons using our codemod.",
51
+ "actions": [
52
+ {
53
+ "text": "View the migration guide",
54
+ "href": "/components/button/button-legacy/migration-guide"
55
+ }
56
+ ]
57
+ },
58
+ "sortKey": 1
59
+ },
60
+ {
61
+ "title": "Link button",
62
+ "id": "link-button",
63
+ "status": {
64
+ "type": "beta",
65
+ "description": "New and ready to use. We'll provide comms and support for any major changes. Migrate from legacy buttons using our codemod.",
66
+ "actions": [
67
+ {
68
+ "text": "View the migration guide",
69
+ "href": "/components/button/button-legacy/migration-guide"
70
+ }
71
+ ]
72
+ },
73
+ "sortKey": 2
74
+ },
75
+ {
76
+ "title": "Link icon button",
77
+ "id": "link-icon-button",
78
+ "status": {
79
+ "type": "beta",
80
+ "description": "New and ready to use. We'll provide comms and support for any major changes. Migrate from legacy buttons using our codemod.",
81
+ "actions": [
82
+ {
83
+ "text": "View the migration guide",
84
+ "href": "/components/button/button-legacy/migration-guide"
85
+ }
86
+ ]
87
+ },
88
+ "sortKey": 3
89
+ },
90
+ {
91
+ "title": "Split button",
92
+ "id": "split-button",
93
+ "status": {
94
+ "type": "beta"
95
+ },
96
+ "sortKey": 4
97
+ },
98
+ {
99
+ "title": "Button group",
100
+ "id": "button-group",
101
+ "sortKey": 5
102
+ },
103
+ {
104
+ "title": "Button (legacy)",
105
+ "id": "button-legacy",
106
+ "status": {
107
+ "type": "intent-to-deprecate",
108
+ "description": "Legacy buttons will soon be deprecated. Please use the new [button](/components/button), [icon button](/components/button/icon-button), [link button](/components/button/link-button), or [link icon button](/components/button/link-icon-button). Migrate from legacy buttons using our codemod.",
109
+ "actions": [
110
+ {
111
+ "text": "View the migration guide",
112
+ "href": "/components/button/button-legacy/migration-guide"
113
+ }
114
+ ]
115
+ },
116
+ "sortKey": 6
117
+ }
118
+ ]
119
+ },
120
+ "runReact18": true
121
+ },
122
+ "af:exports": {
123
+ "./button-group": "./src/entry-points/button-group.tsx",
124
+ "./custom-theme-button": "./src/entry-points/custom-theme-button.tsx",
125
+ "./loading-button": "./src/entry-points/loading-button.tsx",
126
+ "./standard-button": "./src/entry-points/standard-button.tsx",
127
+ "./new": "./src/entry-points/new.tsx",
128
+ "./types": "./src/entry-points/types.tsx",
129
+ ".": "./src/index.tsx"
130
+ },
131
+ "dependencies": {
132
+ "@atlaskit/analytics-next": "^9.3.0",
133
+ "@atlaskit/ds-lib": "^2.3.0",
134
+ "@atlaskit/focus-ring": "^1.5.0",
135
+ "@atlaskit/icon": "^22.4.0",
136
+ "@atlaskit/interaction-context": "^2.1.0",
137
+ "@atlaskit/platform-feature-flags": "^0.2.5",
138
+ "@atlaskit/primitives": "^7.4.0",
139
+ "@atlaskit/spinner": "^16.2.0",
140
+ "@atlaskit/theme": "^12.10.0",
141
+ "@atlaskit/tokens": "^1.51.0",
142
+ "@atlaskit/tooltip": "^18.5.0",
143
+ "@atlaskit/visually-hidden": "^1.4.0",
144
+ "@babel/runtime": "^7.0.0",
145
+ "@emotion/react": "^11.7.1",
146
+ "react-uid": "^2.2.0"
147
+ },
148
+ "peerDependencies": {
149
+ "react": "^16.8.0 || ^17.0.0 || ~18.2.0"
150
+ },
151
+ "devDependencies": {
152
+ "@af/accessibility-testing": "*",
153
+ "@af/integration-testing": "*",
154
+ "@af/visual-regression": "*",
155
+ "@atlaskit/app-provider": "^1.3.0",
156
+ "@atlaskit/calendar": "^14.3.0",
157
+ "@atlaskit/checkbox": "^13.5.0",
158
+ "@atlaskit/ssr": "*",
159
+ "@atlaskit/toggle": "^13.2.0",
160
+ "@atlaskit/visual-regression": "*",
161
+ "@testing-library/react": "^12.1.5",
162
+ "@testing-library/user-event": "^14.4.3",
163
+ "@types/react-router-dom": "^4.3.1",
164
+ "ast-types": "^0.13.3",
165
+ "bind-event-listener": "^3.0.0",
166
+ "jest-emotion": "^10.0.32",
167
+ "jest-in-case": "^1.0.2",
168
+ "jscodeshift": "^0.13.0",
169
+ "lodash": "^4.17.21",
170
+ "react-dom": "^16.8.0",
171
+ "react-router-dom": "^4.2.2",
172
+ "react-test-renderer": "^16.8.0",
173
+ "storybook-addon-performance": "^0.16.0",
174
+ "typescript": "~5.4.2",
175
+ "wait-for-expect": "^1.2.0"
176
+ },
177
+ "techstack": {
178
+ "@atlassian/frontend": {
179
+ "import-structure": "atlassian-conventions"
180
+ },
181
+ "@repo/internal": {
182
+ "dom-events": "use-bind-event-listener",
183
+ "design-system": "v1",
184
+ "ui-components": "lite-mode",
185
+ "analytics": "analytics-next",
186
+ "design-tokens": [
187
+ "color",
188
+ "spacing"
189
+ ],
190
+ "deprecation": "no-deprecated-imports",
191
+ "styling": [
192
+ "emotion",
193
+ "static"
194
+ ]
195
+ }
196
+ },
197
+ "homepage": "https://atlassian.design/components/button/",
198
+ "platform-feature-flags": {
199
+ "platform.design-system-team.button-tokenised-typography-styles": {
200
+ "type": "boolean"
201
+ }
202
+ }
203
+ }