@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,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,229 @@
1
+ export const TEXT_ROW_HEIGHT = '20px'; // custom value off the scale
2
+
3
+ export const getVariantStyles = (variant = 'default', theme) => {
4
+ const style = {
5
+ default: {
6
+ color: 'btn.text',
7
+ backgroundColor: 'btn.bg',
8
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.shadow}, ${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.insetShadow}`,
9
+ '&:hover:not([disabled])': {
10
+ backgroundColor: 'btn.hoverBg'
11
+ },
12
+ // focus must come before :active so that the active box shadow overrides
13
+ '&:focus:not([disabled])': {
14
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.focusShadow}`
15
+ },
16
+ '&:active:not([disabled])': {
17
+ backgroundColor: 'btn.selectedBg',
18
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.shadowActive}`
19
+ },
20
+ '&:disabled': {
21
+ color: 'primer.fg.disabled',
22
+ backgroundColor: 'btn.disabledBg'
23
+ }
24
+ },
25
+ primary: {
26
+ color: 'btn.primary.text',
27
+ backgroundColor: 'btn.primary.bg',
28
+ borderColor: 'border.subtle',
29
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.primary.shadow}`,
30
+ '&:hover:not([disabled])': {
31
+ color: 'btn.primary.hoverText',
32
+ backgroundColor: 'btn.primary.hoverBg'
33
+ },
34
+ // focus must come before :active so that the active box shadow overrides
35
+ '&:focus:not([disabled])': {
36
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.primary.focusShadow}`
37
+ },
38
+ '&:active:not([disabled])': {
39
+ backgroundColor: 'btn.primary.selectedBg',
40
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.primary.selectedShadow}`
41
+ },
42
+ '&:disabled': {
43
+ color: 'btn.primary.disabledText',
44
+ backgroundColor: 'btn.primary.disabledBg'
45
+ },
46
+ '[data-component="ButtonCounter"]': {
47
+ backgroundColor: 'btn.primary.counterBg',
48
+ color: 'btn.primary.text'
49
+ }
50
+ },
51
+ danger: {
52
+ color: 'btn.danger.text',
53
+ backgroundColor: 'btn.bg',
54
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.shadow}`,
55
+ '&:hover:not([disabled])': {
56
+ color: 'btn.danger.hoverText',
57
+ backgroundColor: 'btn.danger.hoverBg',
58
+ borderColor: 'btn.danger.hoverBorder',
59
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.danger.hoverShadow}`,
60
+ '[data-component="ButtonCounter"]': {
61
+ backgroundColor: 'btn.danger.hoverCounterBg',
62
+ color: 'btn.danger.hoverText'
63
+ }
64
+ },
65
+ // focus must come before :active so that the active box shadow overrides
66
+ '&:focus:not([disabled])': {
67
+ borderColor: 'btn.danger.focusBorder',
68
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.danger.focusShadow}`
69
+ },
70
+ '&:active:not([disabled])': {
71
+ color: 'btn.danger.selectedText',
72
+ backgroundColor: 'btn.danger.selectedBg',
73
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.danger.selectedShadow}`,
74
+ borderColor: 'btn.danger.selectedBorder'
75
+ },
76
+ '&:disabled': {
77
+ color: 'btn.danger.disabledText',
78
+ backgroundColor: 'btn.danger.disabledBg',
79
+ borderColor: 'btn.danger.disabledBorder',
80
+ '[data-component="ButtonCounter"]': {
81
+ backgroundColor: 'btn.danger.disabledCounterBg'
82
+ }
83
+ },
84
+ '[data-component="ButtonCounter"]': {
85
+ color: 'btn.danger.text',
86
+ backgroundColor: 'btn.danger.counterBg'
87
+ }
88
+ },
89
+ invisible: {
90
+ color: 'accent.fg',
91
+ backgroundColor: 'transparent',
92
+ border: '0',
93
+ boxShadow: 'none',
94
+ '&:hover:not([disabled])': {
95
+ backgroundColor: 'btn.hoverBg'
96
+ },
97
+ // focus must come before :active so that the active box shadow overrides
98
+ '&:focus:not([disabled])': {
99
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.focusShadow}`
100
+ },
101
+ '&:active:not([disabled])': {
102
+ backgroundColor: 'btn.selectedBg'
103
+ },
104
+ '&:disabled': {
105
+ color: 'primer.fg.disabled'
106
+ }
107
+ },
108
+ outline: {
109
+ color: 'btn.outline.text',
110
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.shadow}`,
111
+ '&:hover:not([disabled])': {
112
+ color: 'btn.outline.hoverText',
113
+ backgroundColor: 'btn.outline.hoverBg',
114
+ borderColor: 'outline.hoverBorder',
115
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.outline.hoverShadow}`,
116
+ '[data-component="ButtonCounter"]': {
117
+ backgroundColor: 'btn.outline.hoverCounterBg',
118
+ color: 'btn.outline.hoverText'
119
+ }
120
+ },
121
+ // focus must come before :active so that the active box shadow overrides
122
+ '&:focus:not([disabled])': {
123
+ borderColor: 'btn.outline.focusBorder',
124
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.outline.focusShadow}`
125
+ },
126
+ '&:active:not([disabled])': {
127
+ color: 'btn.outline.selectedText',
128
+ backgroundColor: 'btn.outline.selectedBg',
129
+ boxShadow: `${theme === null || theme === void 0 ? void 0 : theme.shadows.btn.outline.selectedShadow}`,
130
+ borderColor: 'btn.outline.selectedBorder'
131
+ },
132
+ '&:disabled': {
133
+ color: 'btn.outline.disabledText',
134
+ backgroundColor: 'btn.outline.disabledBg',
135
+ borderColor: 'btn.border',
136
+ '[data-component="ButtonCounter"]': {
137
+ backgroundColor: 'btn.outline.disabledCounterBg'
138
+ }
139
+ },
140
+ '[data-component="ButtonCounter"]': {
141
+ backgroundColor: 'btn.outline.counterBg',
142
+ color: 'btn.outline.text'
143
+ }
144
+ }
145
+ };
146
+ return style[variant];
147
+ };
148
+ export const getSizeStyles = (size = 'medium', variant = 'default', iconOnly) => {
149
+ let paddingY, paddingX, fontSize;
150
+
151
+ switch (size) {
152
+ case 'small':
153
+ paddingY = 3;
154
+ paddingX = 12;
155
+ fontSize = 0;
156
+ break;
157
+
158
+ case 'large':
159
+ paddingY = 9;
160
+ paddingX = 20;
161
+ fontSize = 2;
162
+ break;
163
+
164
+ case 'medium':
165
+ default:
166
+ paddingY = 5;
167
+ paddingX = 16;
168
+ fontSize = 1;
169
+ }
170
+
171
+ if (iconOnly) {
172
+ paddingX = paddingY + 2;
173
+ }
174
+
175
+ if (variant === 'invisible') {
176
+ paddingY = paddingY + 1;
177
+ }
178
+
179
+ return {
180
+ paddingY: `${paddingY}px`,
181
+ paddingX: `${paddingX}px`,
182
+ fontSize,
183
+ '[data-component="ButtonCounter"]': {
184
+ fontSize
185
+ }
186
+ };
187
+ };
188
+ export const getBaseStyles = theme => ({
189
+ borderRadius: '2',
190
+ border: '1px solid',
191
+ borderColor: theme === null || theme === void 0 ? void 0 : theme.colors.btn.border,
192
+ fontWeight: 'bold',
193
+ lineHeight: TEXT_ROW_HEIGHT,
194
+ whiteSpace: 'nowrap',
195
+ verticalAlign: 'middle',
196
+ cursor: 'pointer',
197
+ appearance: 'none',
198
+ userSelect: 'none',
199
+ textDecoration: 'none',
200
+ textAlign: 'center',
201
+ '&:focus': {
202
+ outline: 'none'
203
+ },
204
+ '&:disabled': {
205
+ cursor: 'default'
206
+ },
207
+ '&:disabled svg': {
208
+ opacity: '0.6'
209
+ }
210
+ });
211
+ export const getButtonStyles = theme => {
212
+ const styles = { ...getBaseStyles(theme),
213
+ display: 'grid',
214
+ gridTemplateAreas: '"leadingIcon text trailingIcon"',
215
+ '& > :not(:last-child)': {
216
+ mr: '2'
217
+ },
218
+ '[data-component="leadingIcon"]': {
219
+ gridArea: 'leadingIcon'
220
+ },
221
+ '[data-component="text"]': {
222
+ gridArea: 'text'
223
+ },
224
+ '[data-component="trailingIcon"]': {
225
+ gridArea: 'trailingIcon'
226
+ }
227
+ };
228
+ return styles;
229
+ };
@@ -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,6 @@
1
- export {};
1
+ import styled from 'styled-components';
2
+ import sx from '../sx';
3
+ export const StyledButton = styled.button.withConfig({
4
+ displayName: "types__StyledButton",
5
+ componentId: "sc-1sm8kx1-0"
6
+ })(sx);
@@ -60,7 +60,7 @@ function getSlideAnimationStartingVector(anchorSide) {
60
60
 
61
61
  const StyledOverlay = styled.div.withConfig({
62
62
  displayName: "Overlay__StyledOverlay",
63
- componentId: "jhwkzw-0"
63
+ componentId: "sc-jhwkzw-0"
64
64
  })(["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;}", ";"], get('colors.canvas.overlay'), get('shadows.overlay.shadow'), props => heightMap[props.height || 'auto'], props => props.maxHeight && heightMap[props.maxHeight], props => widthMap[props.width || 'auto'], animationDuration, get('animation.easeOutCubic'), sx);
65
65
 
66
66
  /**
@@ -8,7 +8,7 @@ import sx from '../sx';
8
8
  import { buildComponentData, buildPaginationModel } from './model';
9
9
  const Page = styled.a.withConfig({
10
10
  displayName: "Pagination__Page",
11
- componentId: "b80nss-0"
11
+ componentId: "sc-b80nss-0"
12
12
  })(["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 );}}"], get('colors.fg.default'), get('space.1'), get('borderWidths.1'), get('radii.2'), get('colors.border.default'), get('colors.border.muted'), get('colors.accent.fg'), get('colors.fg.onEmphasis'), get('colors.accent.emphasis'), get('colors.primer.fg.disabled'), get('space.1'), get('space.1'));
13
13
 
14
14
  function usePaginationPages({
@@ -43,7 +43,7 @@ function usePaginationPages({
43
43
 
44
44
  const PaginationContainer = styled.nav.withConfig({
45
45
  displayName: "Pagination__PaginationContainer",
46
- componentId: "b80nss-1"
46
+ componentId: "sc-b80nss-1"
47
47
  })(["margin-top:20px;margin-bottom:15px;text-align:center;", ";"], sx);
48
48
 
49
49
  function Pagination({