@primer/components 0.0.0-2021111225614 → 0.0.0-202111136954

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 (174) hide show
  1. package/dist/browser.esm.js +2 -2209
  2. package/dist/browser.esm.js.map +1 -1
  3. package/dist/browser.umd.js +2 -2209
  4. package/dist/browser.umd.js.map +1 -1
  5. package/lib/ActionList/Header.js +1 -1
  6. package/lib/ActionList/Item.js +10 -10
  7. package/lib/ActionList/List.js +1 -1
  8. package/lib/ActionList2/{MenuContext.d.ts → ActionListContainerContext.d.ts} +3 -3
  9. package/lib/ActionList2/{MenuContext.js → ActionListContainerContext.js} +3 -3
  10. package/lib/ActionList2/Item.js +5 -7
  11. package/lib/ActionList2/List.js +3 -3
  12. package/lib/ActionList2/Selection.js +4 -4
  13. package/lib/ActionMenu2.d.ts +19 -12
  14. package/lib/ActionMenu2.js +63 -29
  15. package/lib/Autocomplete/Autocomplete.d.ts +2 -1
  16. package/lib/Autocomplete/AutocompleteInput.d.ts +2 -1
  17. package/lib/BaseStyles.js +2 -20
  18. package/lib/BorderBox.js +1 -1
  19. package/lib/Box.js +1 -1
  20. package/lib/BranchName.js +1 -1
  21. package/lib/Breadcrumbs.js +3 -3
  22. package/lib/Button/Button.d.ts +2 -2
  23. package/lib/Button/Button.js +1 -1
  24. package/lib/Button/ButtonClose.d.ts +2 -2
  25. package/lib/Button/ButtonDanger.d.ts +2 -2
  26. package/lib/Button/ButtonGroup.js +1 -1
  27. package/lib/Button/ButtonInvisible.d.ts +2 -2
  28. package/lib/Button/ButtonOutline.d.ts +2 -2
  29. package/lib/Button/ButtonPrimary.d.ts +2 -2
  30. package/lib/Checkbox.d.ts +1 -1
  31. package/lib/Checkbox.js +1 -1
  32. package/lib/CircleOcticon.d.ts +35 -35
  33. package/lib/Details.js +1 -1
  34. package/lib/Dialog.d.ts +37 -37
  35. package/lib/Dropdown.d.ts +6 -6
  36. package/lib/DropdownMenu/DropdownButton.d.ts +6 -3
  37. package/lib/FilterList.d.ts +1 -1
  38. package/lib/FilteredActionList/FilteredActionList.js +1 -1
  39. package/lib/Flex.js +1 -1
  40. package/lib/LabelGroup.js +1 -1
  41. package/lib/NewButton/button-base.d.ts +6 -0
  42. package/lib/NewButton/button-base.js +69 -0
  43. package/lib/NewButton/button-link.d.ts +27 -0
  44. package/lib/NewButton/button-link.js +31 -0
  45. package/lib/NewButton/button.d.ts +2 -11
  46. package/lib/NewButton/button.js +6 -283
  47. package/lib/NewButton/icon-button.d.ts +4 -0
  48. package/lib/NewButton/icon-button.js +62 -0
  49. package/lib/NewButton/index.d.ts +6 -11
  50. package/lib/NewButton/index.js +18 -0
  51. package/lib/NewButton/styles.d.ts +202 -0
  52. package/lib/NewButton/styles.js +248 -0
  53. package/lib/NewButton/types.d.ts +28 -8
  54. package/lib/NewButton/types.js +19 -1
  55. package/lib/Overlay.js +1 -1
  56. package/lib/Pagination/Pagination.js +2 -2
  57. package/lib/Position.d.ts +4 -4
  58. package/lib/Position.js +1 -1
  59. package/lib/Radio.d.ts +38 -0
  60. package/lib/Radio.js +55 -0
  61. package/lib/SelectMenu/SelectMenu.d.ts +11 -10
  62. package/lib/SelectMenu/SelectMenu.js +1 -1
  63. package/lib/SelectMenu/SelectMenuFilter.js +1 -1
  64. package/lib/SelectMenu/SelectMenuFooter.js +1 -1
  65. package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
  66. package/lib/SelectMenu/SelectMenuItem.js +1 -1
  67. package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
  68. package/lib/SelectMenu/SelectMenuTab.js +1 -1
  69. package/lib/SelectMenu/SelectMenuTabPanel.js +1 -1
  70. package/lib/SelectMenu/SelectMenuTabs.js +1 -1
  71. package/lib/StateLabel.js +1 -1
  72. package/lib/StyledOcticon.js +1 -1
  73. package/lib/SubNav.js +3 -3
  74. package/lib/TextInputWithTokens.d.ts +2 -1
  75. package/lib/ThemeProvider.d.ts +1 -0
  76. package/lib/ThemeProvider.js +17 -4
  77. package/lib/Timeline.js +4 -4
  78. package/lib/Token/AvatarToken.d.ts +1 -1
  79. package/lib/Token/AvatarToken.js +1 -1
  80. package/lib/Token/IssueLabelToken.d.ts +1 -1
  81. package/lib/Token/Token.d.ts +1 -1
  82. package/lib/Token/TokenBase.js +1 -1
  83. package/lib/Tooltip.js +1 -1
  84. package/lib/UnderlineNav.js +2 -2
  85. package/lib/hooks/index.d.ts +1 -0
  86. package/lib/hooks/index.js +9 -1
  87. package/lib/index.d.ts +2 -0
  88. package/lib/index.js +8 -0
  89. package/lib-esm/ActionList/Header.js +1 -1
  90. package/lib-esm/ActionList/Item.js +10 -10
  91. package/lib-esm/ActionList/List.js +1 -1
  92. package/lib-esm/ActionList2/{MenuContext.d.ts → ActionListContainerContext.d.ts} +3 -3
  93. package/lib-esm/ActionList2/{MenuContext.js → ActionListContainerContext.js} +1 -1
  94. package/lib-esm/ActionList2/Item.js +5 -7
  95. package/lib-esm/ActionList2/List.js +3 -3
  96. package/lib-esm/ActionList2/Selection.js +4 -4
  97. package/lib-esm/ActionMenu2.d.ts +19 -12
  98. package/lib-esm/ActionMenu2.js +60 -27
  99. package/lib-esm/Autocomplete/Autocomplete.d.ts +2 -1
  100. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +2 -1
  101. package/lib-esm/BaseStyles.js +2 -20
  102. package/lib-esm/BorderBox.js +1 -1
  103. package/lib-esm/Box.js +1 -1
  104. package/lib-esm/BranchName.js +1 -1
  105. package/lib-esm/Breadcrumbs.js +3 -3
  106. package/lib-esm/Button/Button.d.ts +2 -2
  107. package/lib-esm/Button/Button.js +1 -1
  108. package/lib-esm/Button/ButtonClose.d.ts +2 -2
  109. package/lib-esm/Button/ButtonDanger.d.ts +2 -2
  110. package/lib-esm/Button/ButtonGroup.js +1 -1
  111. package/lib-esm/Button/ButtonInvisible.d.ts +2 -2
  112. package/lib-esm/Button/ButtonOutline.d.ts +2 -2
  113. package/lib-esm/Button/ButtonPrimary.d.ts +2 -2
  114. package/lib-esm/Checkbox.d.ts +1 -1
  115. package/lib-esm/Checkbox.js +1 -1
  116. package/lib-esm/CircleOcticon.d.ts +35 -35
  117. package/lib-esm/Details.js +1 -1
  118. package/lib-esm/Dialog.d.ts +37 -37
  119. package/lib-esm/Dropdown.d.ts +6 -6
  120. package/lib-esm/DropdownMenu/DropdownButton.d.ts +6 -3
  121. package/lib-esm/FilterList.d.ts +1 -1
  122. package/lib-esm/FilteredActionList/FilteredActionList.js +1 -1
  123. package/lib-esm/Flex.js +1 -1
  124. package/lib-esm/LabelGroup.js +1 -1
  125. package/lib-esm/NewButton/button-base.d.ts +6 -0
  126. package/lib-esm/NewButton/button-base.js +47 -0
  127. package/lib-esm/NewButton/button-link.d.ts +27 -0
  128. package/lib-esm/NewButton/button-link.js +15 -0
  129. package/lib-esm/NewButton/button.d.ts +2 -11
  130. package/lib-esm/NewButton/button.js +4 -275
  131. package/lib-esm/NewButton/icon-button.d.ts +4 -0
  132. package/lib-esm/NewButton/icon-button.js +39 -0
  133. package/lib-esm/NewButton/index.d.ts +6 -11
  134. package/lib-esm/NewButton/index.js +4 -1
  135. package/lib-esm/NewButton/styles.d.ts +202 -0
  136. package/lib-esm/NewButton/styles.js +229 -0
  137. package/lib-esm/NewButton/types.d.ts +28 -8
  138. package/lib-esm/NewButton/types.js +6 -1
  139. package/lib-esm/Overlay.js +1 -1
  140. package/lib-esm/Pagination/Pagination.js +2 -2
  141. package/lib-esm/Position.d.ts +4 -4
  142. package/lib-esm/Position.js +1 -1
  143. package/lib-esm/Radio.d.ts +38 -0
  144. package/lib-esm/Radio.js +40 -0
  145. package/lib-esm/SelectMenu/SelectMenu.d.ts +11 -10
  146. package/lib-esm/SelectMenu/SelectMenu.js +1 -1
  147. package/lib-esm/SelectMenu/SelectMenuFilter.js +1 -1
  148. package/lib-esm/SelectMenu/SelectMenuFooter.js +1 -1
  149. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
  150. package/lib-esm/SelectMenu/SelectMenuItem.js +1 -1
  151. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
  152. package/lib-esm/SelectMenu/SelectMenuTab.js +1 -1
  153. package/lib-esm/SelectMenu/SelectMenuTabPanel.js +1 -1
  154. package/lib-esm/SelectMenu/SelectMenuTabs.js +1 -1
  155. package/lib-esm/StateLabel.js +1 -1
  156. package/lib-esm/StyledOcticon.js +1 -1
  157. package/lib-esm/SubNav.js +3 -3
  158. package/lib-esm/TextInputWithTokens.d.ts +2 -1
  159. package/lib-esm/ThemeProvider.d.ts +1 -0
  160. package/lib-esm/ThemeProvider.js +17 -4
  161. package/lib-esm/Timeline.js +4 -4
  162. package/lib-esm/Token/AvatarToken.d.ts +1 -1
  163. package/lib-esm/Token/AvatarToken.js +1 -1
  164. package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
  165. package/lib-esm/Token/Token.d.ts +1 -1
  166. package/lib-esm/Token/TokenBase.js +1 -1
  167. package/lib-esm/Tooltip.js +1 -1
  168. package/lib-esm/UnderlineNav.js +2 -2
  169. package/lib-esm/hooks/index.d.ts +1 -0
  170. package/lib-esm/hooks/index.js +2 -1
  171. package/lib-esm/index.d.ts +2 -0
  172. package/lib-esm/index.js +1 -0
  173. package/package.json +14 -8
  174. package/CHANGELOG.md +0 -996
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _sx = require("../sx");
11
+
12
+ var _ThemeProvider = require("../ThemeProvider");
13
+
14
+ var _Box = _interopRequireDefault(require("../Box"));
15
+
16
+ var _types = require("./types");
17
+
18
+ var _styles = require("./styles");
19
+
20
+ var _ssr = require("@react-aria/ssr");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
28
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
29
+
30
+ const IconButton = /*#__PURE__*/(0, _react.forwardRef)((props, forwardedRef) => {
31
+ const {
32
+ variant = 'default',
33
+ size = 'medium',
34
+ sx: sxProp = {},
35
+ icon: Icon,
36
+ iconLabel
37
+ } = props;
38
+ const iconLabelId = (0, _ssr.useSSRSafeId)();
39
+ const {
40
+ theme
41
+ } = (0, _ThemeProvider.useTheme)();
42
+ const styles = { ...(0, _styles.getBaseStyles)(theme)
43
+ };
44
+
45
+ const sxStyles = _sx.merge.all([styles, (0, _styles.getSizeStyles)(size, variant, true), (0, _styles.getVariantStyles)(variant, theme), sxProp]);
46
+
47
+ return /*#__PURE__*/_react.default.createElement(_types.StyledButton, _extends({
48
+ "aria-labelledBy": iconLabelId,
49
+ sx: sxStyles,
50
+ ref: forwardedRef
51
+ }, props), /*#__PURE__*/_react.default.createElement("span", {
52
+ id: iconLabelId,
53
+ hidden: true
54
+ }, iconLabel), /*#__PURE__*/_react.default.createElement(_Box.default, {
55
+ as: "span",
56
+ sx: {
57
+ display: 'inline-block'
58
+ }
59
+ }, /*#__PURE__*/_react.default.createElement(Icon, null)));
60
+ });
61
+ var _default = IconButton;
62
+ exports.default = _default;
@@ -1,14 +1,9 @@
1
1
  /// <reference types="react" />
2
- import { ButtonProps } from './types';
3
- export type { ButtonProps as NewButtonProps };
4
- export declare const NewButton: import("react").ForwardRefExoticComponent<{
5
- variant?: import("./types").VariantType | undefined;
6
- size?: import("./types").Size | undefined;
7
- icon?: import("react").FunctionComponent<import("@primer/octicons-react/dist/icons").IconProps> | undefined;
8
- leadingIcon?: import("react").FunctionComponent<import("@primer/octicons-react/dist/icons").IconProps> | undefined;
9
- trailingIcon?: import("react").FunctionComponent<import("@primer/octicons-react/dist/icons").IconProps> | undefined;
10
- disabled?: boolean | undefined;
11
- children: import("react").ReactNode;
12
- } & import("../sx").SxProp & import("react").HTMLAttributes<HTMLButtonElement> & import("react").RefAttributes<HTMLButtonElement>> & {
2
+ import IconButton from './icon-button';
3
+ import ButtonLink from './button-link';
4
+ import { ButtonProps, IconButtonProps } from './types';
5
+ export type { ButtonProps as NewButtonProps, IconButtonProps };
6
+ export declare const NewButton: import("react").ForwardRefExoticComponent<Pick<ButtonProps, string | number | symbol> & import("react").RefAttributes<HTMLButtonElement>> & {
13
7
  Counter: ({ children, sx: sxProp, ...props }: import("./button-counter").CounterProps) => JSX.Element;
14
8
  };
9
+ export { IconButton, ButtonLink };
@@ -3,12 +3,30 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "IconButton", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _iconButton.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "ButtonLink", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _buttonLink.default;
16
+ }
17
+ });
6
18
  exports.NewButton = void 0;
7
19
 
8
20
  var _button = require("./button");
9
21
 
10
22
  var _buttonCounter = require("./button-counter");
11
23
 
24
+ var _iconButton = _interopRequireDefault(require("./icon-button"));
25
+
26
+ var _buttonLink = _interopRequireDefault(require("./button-link"));
27
+
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
+
12
30
  const NewButton = Object.assign(_button.Button, {
13
31
  Counter: _buttonCounter.Counter
14
32
  });
@@ -0,0 +1,202 @@
1
+ import { VariantType } from './types';
2
+ import { Theme } from '../ThemeProvider';
3
+ export declare const TEXT_ROW_HEIGHT = "20px";
4
+ export declare const getVariantStyles: (variant?: VariantType, theme?: Theme | undefined) => {
5
+ color: string;
6
+ backgroundColor: string;
7
+ boxShadow: string;
8
+ '&:hover:not([disabled])': {
9
+ backgroundColor: string;
10
+ };
11
+ '&:focus:not([disabled])': {
12
+ boxShadow: string;
13
+ };
14
+ '&:active:not([disabled])': {
15
+ backgroundColor: string;
16
+ boxShadow: string;
17
+ };
18
+ '&:disabled': {
19
+ color: string;
20
+ backgroundColor: string;
21
+ };
22
+ } | {
23
+ color: string;
24
+ backgroundColor: string;
25
+ borderColor: string;
26
+ boxShadow: string;
27
+ '&:hover:not([disabled])': {
28
+ color: string;
29
+ backgroundColor: string;
30
+ };
31
+ '&:focus:not([disabled])': {
32
+ boxShadow: string;
33
+ };
34
+ '&:active:not([disabled])': {
35
+ backgroundColor: string;
36
+ boxShadow: string;
37
+ };
38
+ '&:disabled': {
39
+ color: string;
40
+ backgroundColor: string;
41
+ };
42
+ '[data-component="ButtonCounter"]': {
43
+ backgroundColor: string;
44
+ color: string;
45
+ };
46
+ } | {
47
+ color: string;
48
+ backgroundColor: string;
49
+ boxShadow: string;
50
+ '&:hover:not([disabled])': {
51
+ color: string;
52
+ backgroundColor: string;
53
+ borderColor: string;
54
+ boxShadow: string;
55
+ '[data-component="ButtonCounter"]': {
56
+ backgroundColor: string;
57
+ color: string;
58
+ };
59
+ };
60
+ '&:focus:not([disabled])': {
61
+ borderColor: string;
62
+ boxShadow: string;
63
+ };
64
+ '&:active:not([disabled])': {
65
+ color: string;
66
+ backgroundColor: string;
67
+ boxShadow: string;
68
+ borderColor: string;
69
+ };
70
+ '&:disabled': {
71
+ color: string;
72
+ backgroundColor: string;
73
+ borderColor: string;
74
+ '[data-component="ButtonCounter"]': {
75
+ backgroundColor: string;
76
+ };
77
+ };
78
+ '[data-component="ButtonCounter"]': {
79
+ color: string;
80
+ backgroundColor: string;
81
+ };
82
+ } | {
83
+ color: string;
84
+ backgroundColor: string;
85
+ border: string;
86
+ boxShadow: string;
87
+ '&:hover:not([disabled])': {
88
+ backgroundColor: string;
89
+ };
90
+ '&:focus:not([disabled])': {
91
+ boxShadow: string;
92
+ };
93
+ '&:active:not([disabled])': {
94
+ backgroundColor: string;
95
+ };
96
+ '&:disabled': {
97
+ color: string;
98
+ };
99
+ } | {
100
+ color: string;
101
+ boxShadow: string;
102
+ '&:hover:not([disabled])': {
103
+ color: string;
104
+ backgroundColor: string;
105
+ borderColor: string;
106
+ boxShadow: string;
107
+ '[data-component="ButtonCounter"]': {
108
+ backgroundColor: string;
109
+ color: string;
110
+ };
111
+ };
112
+ '&:focus:not([disabled])': {
113
+ borderColor: string;
114
+ boxShadow: string;
115
+ };
116
+ '&:active:not([disabled])': {
117
+ color: string;
118
+ backgroundColor: string;
119
+ boxShadow: string;
120
+ borderColor: string;
121
+ };
122
+ '&:disabled': {
123
+ color: string;
124
+ backgroundColor: string;
125
+ borderColor: string;
126
+ '[data-component="ButtonCounter"]': {
127
+ backgroundColor: string;
128
+ };
129
+ };
130
+ '[data-component="ButtonCounter"]': {
131
+ backgroundColor: string;
132
+ color: string;
133
+ };
134
+ };
135
+ export declare const getSizeStyles: (size: string | undefined, variant: VariantType | undefined, iconOnly: boolean) => {
136
+ paddingY: string;
137
+ paddingX: string;
138
+ fontSize: number;
139
+ '[data-component="ButtonCounter"]': {
140
+ fontSize: number;
141
+ };
142
+ };
143
+ export declare const getBaseStyles: (theme?: Theme | undefined) => {
144
+ borderRadius: string;
145
+ border: string;
146
+ borderColor: any;
147
+ fontWeight: string;
148
+ lineHeight: string;
149
+ whiteSpace: string;
150
+ verticalAlign: string;
151
+ cursor: string;
152
+ appearance: string;
153
+ userSelect: string;
154
+ textDecoration: string;
155
+ textAlign: string;
156
+ '&:focus': {
157
+ outline: string;
158
+ };
159
+ '&:disabled': {
160
+ cursor: string;
161
+ };
162
+ '&:disabled svg': {
163
+ opacity: string;
164
+ };
165
+ };
166
+ export declare const getButtonStyles: (theme?: Theme | undefined) => {
167
+ display: string;
168
+ gridTemplateAreas: string;
169
+ '& > :not(:last-child)': {
170
+ mr: string;
171
+ };
172
+ '[data-component="leadingIcon"]': {
173
+ gridArea: string;
174
+ };
175
+ '[data-component="text"]': {
176
+ gridArea: string;
177
+ };
178
+ '[data-component="trailingIcon"]': {
179
+ gridArea: string;
180
+ };
181
+ borderRadius: string;
182
+ border: string;
183
+ borderColor: any;
184
+ fontWeight: string;
185
+ lineHeight: string;
186
+ whiteSpace: string;
187
+ verticalAlign: string;
188
+ cursor: string;
189
+ appearance: string;
190
+ userSelect: string;
191
+ textDecoration: string;
192
+ textAlign: string;
193
+ '&:focus': {
194
+ outline: string;
195
+ };
196
+ '&:disabled': {
197
+ cursor: string;
198
+ };
199
+ '&:disabled svg': {
200
+ opacity: string;
201
+ };
202
+ };
@@ -0,0 +1,248 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getButtonStyles = exports.getBaseStyles = exports.getSizeStyles = exports.getVariantStyles = exports.TEXT_ROW_HEIGHT = void 0;
7
+ const TEXT_ROW_HEIGHT = '20px'; // custom value off the scale
8
+
9
+ exports.TEXT_ROW_HEIGHT = TEXT_ROW_HEIGHT;
10
+
11
+ const getVariantStyles = (variant = 'default', theme) => {
12
+ const style = {
13
+ default: {
14
+ color: 'btn.text',
15
+ backgroundColor: 'btn.bg',
16
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.shadow}, ${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.insetShadow}`,
17
+ '&:hover:not([disabled])': {
18
+ backgroundColor: 'btn.hoverBg'
19
+ },
20
+ // focus must come before :active so that the active box shadow overrides
21
+ '&:focus:not([disabled])': {
22
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.focusShadow}`
23
+ },
24
+ '&:active:not([disabled])': {
25
+ backgroundColor: 'btn.selectedBg',
26
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.shadowActive}`
27
+ },
28
+ '&:disabled': {
29
+ color: 'primer.fg.disabled',
30
+ backgroundColor: 'btn.disabledBg'
31
+ }
32
+ },
33
+ primary: {
34
+ color: 'btn.primary.text',
35
+ backgroundColor: 'btn.primary.bg',
36
+ borderColor: 'border.subtle',
37
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.primary.shadow}`,
38
+ '&:hover:not([disabled])': {
39
+ color: 'btn.primary.hoverText',
40
+ backgroundColor: 'btn.primary.hoverBg'
41
+ },
42
+ // focus must come before :active so that the active box shadow overrides
43
+ '&:focus:not([disabled])': {
44
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.primary.focusShadow}`
45
+ },
46
+ '&:active:not([disabled])': {
47
+ backgroundColor: 'btn.primary.selectedBg',
48
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.primary.selectedShadow}`
49
+ },
50
+ '&:disabled': {
51
+ color: 'btn.primary.disabledText',
52
+ backgroundColor: 'btn.primary.disabledBg'
53
+ },
54
+ '[data-component="ButtonCounter"]': {
55
+ backgroundColor: 'btn.primary.counterBg',
56
+ color: 'btn.primary.text'
57
+ }
58
+ },
59
+ danger: {
60
+ color: 'btn.danger.text',
61
+ backgroundColor: 'btn.bg',
62
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.shadow}`,
63
+ '&:hover:not([disabled])': {
64
+ color: 'btn.danger.hoverText',
65
+ backgroundColor: 'btn.danger.hoverBg',
66
+ borderColor: 'btn.danger.hoverBorder',
67
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.danger.hoverShadow}`,
68
+ '[data-component="ButtonCounter"]': {
69
+ backgroundColor: 'btn.danger.hoverCounterBg',
70
+ color: 'btn.danger.hoverText'
71
+ }
72
+ },
73
+ // focus must come before :active so that the active box shadow overrides
74
+ '&:focus:not([disabled])': {
75
+ borderColor: 'btn.danger.focusBorder',
76
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.danger.focusShadow}`
77
+ },
78
+ '&:active:not([disabled])': {
79
+ color: 'btn.danger.selectedText',
80
+ backgroundColor: 'btn.danger.selectedBg',
81
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.danger.selectedShadow}`,
82
+ borderColor: 'btn.danger.selectedBorder'
83
+ },
84
+ '&:disabled': {
85
+ color: 'btn.danger.disabledText',
86
+ backgroundColor: 'btn.danger.disabledBg',
87
+ borderColor: 'btn.danger.disabledBorder',
88
+ '[data-component="ButtonCounter"]': {
89
+ backgroundColor: 'btn.danger.disabledCounterBg'
90
+ }
91
+ },
92
+ '[data-component="ButtonCounter"]': {
93
+ color: 'btn.danger.text',
94
+ backgroundColor: 'btn.danger.counterBg'
95
+ }
96
+ },
97
+ invisible: {
98
+ color: 'accent.fg',
99
+ backgroundColor: 'transparent',
100
+ border: '0',
101
+ boxShadow: 'none',
102
+ '&:hover:not([disabled])': {
103
+ backgroundColor: 'btn.hoverBg'
104
+ },
105
+ // focus must come before :active so that the active box shadow overrides
106
+ '&:focus:not([disabled])': {
107
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.focusShadow}`
108
+ },
109
+ '&:active:not([disabled])': {
110
+ backgroundColor: 'btn.selectedBg'
111
+ },
112
+ '&:disabled': {
113
+ color: 'primer.fg.disabled'
114
+ }
115
+ },
116
+ outline: {
117
+ color: 'btn.outline.text',
118
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.shadow}`,
119
+ '&:hover:not([disabled])': {
120
+ color: 'btn.outline.hoverText',
121
+ backgroundColor: 'btn.outline.hoverBg',
122
+ borderColor: 'outline.hoverBorder',
123
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.outline.hoverShadow}`,
124
+ '[data-component="ButtonCounter"]': {
125
+ backgroundColor: 'btn.outline.hoverCounterBg',
126
+ color: 'btn.outline.hoverText'
127
+ }
128
+ },
129
+ // focus must come before :active so that the active box shadow overrides
130
+ '&:focus:not([disabled])': {
131
+ borderColor: 'btn.outline.focusBorder',
132
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.outline.focusShadow}`
133
+ },
134
+ '&:active:not([disabled])': {
135
+ color: 'btn.outline.selectedText',
136
+ backgroundColor: 'btn.outline.selectedBg',
137
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.outline.selectedShadow}`,
138
+ borderColor: 'btn.outline.selectedBorder'
139
+ },
140
+ '&:disabled': {
141
+ color: 'btn.outline.disabledText',
142
+ backgroundColor: 'btn.outline.disabledBg',
143
+ borderColor: 'btn.border',
144
+ '[data-component="ButtonCounter"]': {
145
+ backgroundColor: 'btn.outline.disabledCounterBg'
146
+ }
147
+ },
148
+ '[data-component="ButtonCounter"]': {
149
+ backgroundColor: 'btn.outline.counterBg',
150
+ color: 'btn.outline.text'
151
+ }
152
+ }
153
+ };
154
+ return style[variant];
155
+ };
156
+
157
+ exports.getVariantStyles = getVariantStyles;
158
+
159
+ const getSizeStyles = (size = 'medium', variant = 'default', iconOnly) => {
160
+ let paddingY, paddingX, fontSize;
161
+
162
+ switch (size) {
163
+ case 'small':
164
+ paddingY = 3;
165
+ paddingX = 12;
166
+ fontSize = 0;
167
+ break;
168
+
169
+ case 'large':
170
+ paddingY = 9;
171
+ paddingX = 20;
172
+ fontSize = 2;
173
+ break;
174
+
175
+ case 'medium':
176
+ default:
177
+ paddingY = 5;
178
+ paddingX = 16;
179
+ fontSize = 1;
180
+ }
181
+
182
+ if (iconOnly) {
183
+ paddingX = paddingY + 2;
184
+ }
185
+
186
+ if (variant === 'invisible') {
187
+ paddingY = paddingY + 1;
188
+ }
189
+
190
+ return {
191
+ paddingY: `${paddingY}px`,
192
+ paddingX: `${paddingX}px`,
193
+ fontSize,
194
+ '[data-component="ButtonCounter"]': {
195
+ fontSize
196
+ }
197
+ };
198
+ };
199
+
200
+ exports.getSizeStyles = getSizeStyles;
201
+
202
+ const getBaseStyles = theme => ({
203
+ borderRadius: '2',
204
+ border: '1px solid',
205
+ borderColor: theme === null || theme === void 0 ? void 0 : theme.colors.btn.border,
206
+ fontWeight: 'bold',
207
+ lineHeight: TEXT_ROW_HEIGHT,
208
+ whiteSpace: 'nowrap',
209
+ verticalAlign: 'middle',
210
+ cursor: 'pointer',
211
+ appearance: 'none',
212
+ userSelect: 'none',
213
+ textDecoration: 'none',
214
+ textAlign: 'center',
215
+ '&:focus': {
216
+ outline: 'none'
217
+ },
218
+ '&:disabled': {
219
+ cursor: 'default'
220
+ },
221
+ '&:disabled svg': {
222
+ opacity: '0.6'
223
+ }
224
+ });
225
+
226
+ exports.getBaseStyles = getBaseStyles;
227
+
228
+ const getButtonStyles = theme => {
229
+ const styles = { ...getBaseStyles(theme),
230
+ display: 'grid',
231
+ gridTemplateAreas: '"leadingIcon text trailingIcon"',
232
+ '& > :not(:last-child)': {
233
+ mr: '2'
234
+ },
235
+ '[data-component="leadingIcon"]': {
236
+ gridArea: 'leadingIcon'
237
+ },
238
+ '[data-component="text"]': {
239
+ gridArea: 'text'
240
+ },
241
+ '[data-component="trailingIcon"]': {
242
+ gridArea: 'trailingIcon'
243
+ }
244
+ };
245
+ return styles;
246
+ };
247
+
248
+ exports.getButtonStyles = getButtonStyles;
@@ -1,9 +1,11 @@
1
- import React, { HTMLAttributes } from 'react';
1
+ import React, { HTMLAttributes, ComponentPropsWithRef } from 'react';
2
2
  import { IconProps } from '@primer/octicons-react';
3
3
  import { SxProp } from '../sx';
4
+ export declare const StyledButton: import("styled-components").StyledComponent<"button", any, SxProp, never>;
4
5
  export declare type VariantType = 'default' | 'primary' | 'invisible' | 'danger' | 'outline';
5
6
  export declare type Size = 'small' | 'medium' | 'large';
6
- export declare type ButtonProps = {
7
+ declare type StyledButtonProps = ComponentPropsWithRef<typeof StyledButton>;
8
+ export declare type ButtonBaseProps = {
7
9
  /**
8
10
  * Determine's the styles on a button one of 'default' | 'primary' | 'invisible' | 'danger'
9
11
  */
@@ -13,9 +15,11 @@ export declare type ButtonProps = {
13
15
  */
14
16
  size?: Size;
15
17
  /**
16
- * This is to be used if it is an icon-only button. Will make text visually hidden
18
+ * Items that are disabled can not be clicked, selected, or navigated through.
17
19
  */
18
- icon?: React.FunctionComponent<IconProps>;
20
+ disabled?: boolean;
21
+ } & SxProp & HTMLAttributes<HTMLButtonElement> & StyledButtonProps;
22
+ export declare type ButtonProps = {
19
23
  /**
20
24
  * The leading icon comes before button content
21
25
  */
@@ -24,9 +28,25 @@ export declare type ButtonProps = {
24
28
  * The trailing icon comes after button content
25
29
  */
26
30
  trailingIcon?: React.FunctionComponent<IconProps>;
31
+ children: React.ReactNode;
32
+ } & ButtonBaseProps;
33
+ export declare type IconButtonProps = {
27
34
  /**
28
- * Items that are disabled can not be clicked, selected, or navigated through.
35
+ * This is to be used if it is an icon-only button. Will make text visually hidden
29
36
  */
30
- disabled?: boolean;
31
- children: React.ReactNode;
32
- } & SxProp & HTMLAttributes<HTMLButtonElement>;
37
+ icon: React.FunctionComponent<IconProps>;
38
+ iconLabel: string;
39
+ } & ButtonBaseProps;
40
+ export declare type LinkButtonProps = {
41
+ underline?: boolean;
42
+ download?: string;
43
+ href?: string;
44
+ hrefLang?: string;
45
+ media?: string;
46
+ ping?: string;
47
+ rel?: string;
48
+ target?: string;
49
+ type?: string;
50
+ referrerPolicy?: React.AnchorHTMLAttributes<HTMLAnchorElement>['referrerPolicy'];
51
+ };
52
+ export {};
@@ -1 +1,19 @@
1
- "use strict";
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledButton = void 0;
7
+
8
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
9
+
10
+ var _sx = _interopRequireDefault(require("../sx"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ const StyledButton = _styledComponents.default.button.withConfig({
15
+ displayName: "types__StyledButton",
16
+ componentId: "sc-1sm8kx1-0"
17
+ })(_sx.default);
18
+
19
+ exports.StyledButton = StyledButton;
package/lib/Overlay.js CHANGED
@@ -82,7 +82,7 @@ function getSlideAnimationStartingVector(anchorSide) {
82
82
 
83
83
  const StyledOverlay = _styledComponents.default.div.withConfig({
84
84
  displayName: "Overlay__StyledOverlay",
85
- componentId: "jhwkzw-0"
85
+ componentId: "sc-jhwkzw-0"
86
86
  })(["background-color:", ";box-shadow:", ";position:absolute;min-width:192px;max-width:640px;height:", ";max-height:", ";width:", ";border-radius:12px;overflow:hidden;animation:overlay-appear ", "ms ", ";@keyframes overlay-appear{0%{opacity:0;}100%{opacity:1;}}visibility:var(--styled-overlay-visibility);:focus{outline:none;}", ";"], (0, _constants.get)('colors.canvas.overlay'), (0, _constants.get)('shadows.overlay.shadow'), props => heightMap[props.height || 'auto'], props => props.maxHeight && heightMap[props.maxHeight], props => widthMap[props.width || 'auto'], animationDuration, (0, _constants.get)('animation.easeOutCubic'), _sx.default);
87
87
 
88
88
  /**
@@ -23,7 +23,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
23
23
 
24
24
  const Page = _styledComponents.default.a.withConfig({
25
25
  displayName: "Pagination__Page",
26
- componentId: "b80nss-0"
26
+ componentId: "sc-b80nss-0"
27
27
  })(["display:inline-block;min-width:32px;padding:5px 10px;font-style:normal;line-height:20px;color:", ";text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;text-decoration:none;margin-right:", ";&:last-child{margin-right:0;}border:", " solid transparent;border-radius:", ";transition:border-color 0.2s cubic-bezier(0.3,0,0.5,1);&:hover,&:focus{text-decoration:none;border-color:", ";outline:0;transition-duration:0.1s;}&:active{border-color:", ";}&[rel='prev'],&[rel='next']{color:", ";}&[aria-current],&[aria-current]:hover{color:", ";background-color:", ";border-color:transparent;}&[aria-disabled],&[aria-disabled]:hover{color:", ";cursor:default;border-color:transparent;}@supports (clip-path:polygon(50% 0,100% 50%,50% 100%)){&[rel='prev']::before,&[rel='next']::after{display:inline-block;width:16px;height:16px;vertical-align:text-bottom;content:'';background-color:currentColor;}&[rel='prev']::before{margin-right:", ";clip-path:polygon( 9.8px 12.8px,8.7px 12.8px,4.5px 8.5px,4.5px 7.5px,8.7px 3.2px,9.8px 4.3px,6.1px 8px,9.8px 11.7px,9.8px 12.8px );}&[rel='next']::after{margin-left:", ";clip-path:polygon( 6.2px 3.2px,7.3px 3.2px,11.5px 7.5px,11.5px 8.5px,7.3px 12.8px,6.2px 11.7px,9.9px 8px,6.2px 4.3px,6.2px 3.2px );}}"], (0, _constants.get)('colors.fg.default'), (0, _constants.get)('space.1'), (0, _constants.get)('borderWidths.1'), (0, _constants.get)('radii.2'), (0, _constants.get)('colors.border.default'), (0, _constants.get)('colors.border.muted'), (0, _constants.get)('colors.accent.fg'), (0, _constants.get)('colors.fg.onEmphasis'), (0, _constants.get)('colors.accent.emphasis'), (0, _constants.get)('colors.primer.fg.disabled'), (0, _constants.get)('space.1'), (0, _constants.get)('space.1'));
28
28
 
29
29
  function usePaginationPages({
@@ -61,7 +61,7 @@ function usePaginationPages({
61
61
 
62
62
  const PaginationContainer = _styledComponents.default.nav.withConfig({
63
63
  displayName: "Pagination__PaginationContainer",
64
- componentId: "b80nss-1"
64
+ componentId: "sc-b80nss-1"
65
65
  })(["margin-top:20px;margin-bottom:15px;text-align:center;", ";"], _sx.default);
66
66
 
67
67
  function Pagination({