@primer/components 0.0.0-202111845030 → 0.0.0-202111885047

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 (148) hide show
  1. package/dist/browser.esm.js +2 -2
  2. package/dist/browser.esm.js.map +1 -1
  3. package/dist/browser.umd.js +2 -2
  4. package/dist/browser.umd.js.map +1 -1
  5. package/lib/Autocomplete/AutocompleteMenu.js +17 -11
  6. package/lib/BranchName.js +1 -1
  7. package/lib/NewButton/button-base.d.ts +6 -0
  8. package/lib/NewButton/button-base.js +69 -0
  9. package/lib/NewButton/button-link.d.ts +27 -0
  10. package/lib/{ChoiceFieldset/ChoiceFieldLabel.js → NewButton/button-link.js} +14 -18
  11. package/lib/NewButton/button.d.ts +2 -11
  12. package/lib/NewButton/button.js +6 -283
  13. package/lib/NewButton/icon-button.d.ts +4 -0
  14. package/lib/NewButton/icon-button.js +57 -0
  15. package/lib/NewButton/index.d.ts +6 -11
  16. package/lib/NewButton/index.js +18 -0
  17. package/lib/NewButton/styles.d.ts +202 -0
  18. package/lib/NewButton/styles.js +248 -0
  19. package/lib/NewButton/types.d.ts +28 -8
  20. package/lib/NewButton/types.js +19 -1
  21. package/lib/index.d.ts +0 -4
  22. package/lib/index.js +0 -38
  23. package/lib-esm/Autocomplete/AutocompleteMenu.js +16 -7
  24. package/lib-esm/BranchName.js +1 -1
  25. package/lib-esm/NewButton/button-base.d.ts +6 -0
  26. package/lib-esm/NewButton/button-base.js +47 -0
  27. package/lib-esm/NewButton/button-link.d.ts +27 -0
  28. package/lib-esm/NewButton/button-link.js +15 -0
  29. package/lib-esm/NewButton/button.d.ts +2 -11
  30. package/lib-esm/NewButton/button.js +4 -275
  31. package/lib-esm/NewButton/icon-button.d.ts +4 -0
  32. package/lib-esm/NewButton/icon-button.js +35 -0
  33. package/lib-esm/NewButton/index.d.ts +6 -11
  34. package/lib-esm/NewButton/index.js +4 -1
  35. package/lib-esm/NewButton/styles.d.ts +202 -0
  36. package/lib-esm/NewButton/styles.js +229 -0
  37. package/lib-esm/NewButton/types.d.ts +28 -8
  38. package/lib-esm/NewButton/types.js +6 -1
  39. package/lib-esm/index.d.ts +0 -4
  40. package/lib-esm/index.js +0 -4
  41. package/package.json +2 -2
  42. package/lib/CheckboxInputField.d.ts +0 -11
  43. package/lib/CheckboxInputField.js +0 -73
  44. package/lib/ChoiceFieldset/ChoiceFieldCaption.d.ts +0 -3
  45. package/lib/ChoiceFieldset/ChoiceFieldCaption.js +0 -35
  46. package/lib/ChoiceFieldset/ChoiceFieldLabel.d.ts +0 -3
  47. package/lib/ChoiceFieldset/ChoiceFieldset.d.ts +0 -65
  48. package/lib/ChoiceFieldset/ChoiceFieldset.js +0 -93
  49. package/lib/ChoiceFieldset/ChoiceFieldsetDescription.d.ts +0 -3
  50. package/lib/ChoiceFieldset/ChoiceFieldsetDescription.js +0 -29
  51. package/lib/ChoiceFieldset/ChoiceFieldsetLegend.d.ts +0 -9
  52. package/lib/ChoiceFieldset/ChoiceFieldsetLegend.js +0 -44
  53. package/lib/ChoiceFieldset/ChoiceFieldsetList.d.ts +0 -9
  54. package/lib/ChoiceFieldset/ChoiceFieldsetList.js +0 -71
  55. package/lib/ChoiceFieldset/ChoiceFieldsetListContext.d.ts +0 -19
  56. package/lib/ChoiceFieldset/ChoiceFieldsetListContext.js +0 -15
  57. package/lib/ChoiceFieldset/ChoiceFieldsetListItem.d.ts +0 -25
  58. package/lib/ChoiceFieldset/ChoiceFieldsetListItem.js +0 -75
  59. package/lib/ChoiceFieldset/ChoiceFieldsetValidation.d.ts +0 -6
  60. package/lib/ChoiceFieldset/ChoiceFieldsetValidation.js +0 -17
  61. package/lib/ChoiceFieldset/index.d.ts +0 -3
  62. package/lib/ChoiceFieldset/index.js +0 -23
  63. package/lib/RadioInputField.d.ts +0 -10
  64. package/lib/RadioInputField.js +0 -74
  65. package/lib/TextInputField.d.ts +0 -583
  66. package/lib/TextInputField.js +0 -66
  67. package/lib/_InputCaption.d.ts +0 -13
  68. package/lib/_InputCaption.js +0 -27
  69. package/lib/_InputField/InputField.d.ts +0 -39
  70. package/lib/_InputField/InputField.js +0 -88
  71. package/lib/_InputField/InputFieldCaption.d.ts +0 -3
  72. package/lib/_InputField/InputFieldCaption.js +0 -30
  73. package/lib/_InputField/InputFieldLabel.d.ts +0 -9
  74. package/lib/_InputField/InputFieldLabel.js +0 -34
  75. package/lib/_InputField/InputFieldValidation.d.ts +0 -6
  76. package/lib/_InputField/InputFieldValidation.js +0 -17
  77. package/lib/_InputField/ToggleInputField.d.ts +0 -13
  78. package/lib/_InputField/ToggleInputField.js +0 -75
  79. package/lib/_InputField/ToggleInputLeadingVisual.d.ts +0 -3
  80. package/lib/_InputField/ToggleInputLeadingVisual.js +0 -22
  81. package/lib/_InputField/ValidationAnimationContainer.d.ts +0 -6
  82. package/lib/_InputField/ValidationAnimationContainer.js +0 -48
  83. package/lib/_InputField/index.d.ts +0 -1
  84. package/lib/_InputField/index.js +0 -15
  85. package/lib/_InputField/slots.d.ts +0 -13
  86. package/lib/_InputField/slots.js +0 -17
  87. package/lib/_InputLabel.d.ts +0 -8
  88. package/lib/_InputLabel.js +0 -45
  89. package/lib/_InputValidation.d.ts +0 -8
  90. package/lib/_InputValidation.js +0 -59
  91. package/lib/_VisuallyHidden.d.ts +0 -6
  92. package/lib/_VisuallyHidden.js +0 -39
  93. package/lib/utils/types/FormValidationStatus.d.ts +0 -1
  94. package/lib/utils/types/FormValidationStatus.js +0 -1
  95. package/lib-esm/CheckboxInputField.d.ts +0 -11
  96. package/lib-esm/CheckboxInputField.js +0 -56
  97. package/lib-esm/ChoiceFieldset/ChoiceFieldCaption.d.ts +0 -3
  98. package/lib-esm/ChoiceFieldset/ChoiceFieldCaption.js +0 -20
  99. package/lib-esm/ChoiceFieldset/ChoiceFieldLabel.d.ts +0 -3
  100. package/lib-esm/ChoiceFieldset/ChoiceFieldLabel.js +0 -20
  101. package/lib-esm/ChoiceFieldset/ChoiceFieldset.d.ts +0 -65
  102. package/lib-esm/ChoiceFieldset/ChoiceFieldset.js +0 -71
  103. package/lib-esm/ChoiceFieldset/ChoiceFieldsetDescription.d.ts +0 -3
  104. package/lib-esm/ChoiceFieldset/ChoiceFieldsetDescription.js +0 -17
  105. package/lib-esm/ChoiceFieldset/ChoiceFieldsetLegend.d.ts +0 -9
  106. package/lib-esm/ChoiceFieldset/ChoiceFieldsetLegend.js +0 -31
  107. package/lib-esm/ChoiceFieldset/ChoiceFieldsetList.d.ts +0 -9
  108. package/lib-esm/ChoiceFieldset/ChoiceFieldsetList.js +0 -55
  109. package/lib-esm/ChoiceFieldset/ChoiceFieldsetListContext.d.ts +0 -19
  110. package/lib-esm/ChoiceFieldset/ChoiceFieldsetListContext.js +0 -5
  111. package/lib-esm/ChoiceFieldset/ChoiceFieldsetListItem.d.ts +0 -25
  112. package/lib-esm/ChoiceFieldset/ChoiceFieldsetListItem.js +0 -51
  113. package/lib-esm/ChoiceFieldset/ChoiceFieldsetValidation.d.ts +0 -6
  114. package/lib-esm/ChoiceFieldset/ChoiceFieldsetValidation.js +0 -7
  115. package/lib-esm/ChoiceFieldset/index.d.ts +0 -3
  116. package/lib-esm/ChoiceFieldset/index.js +0 -2
  117. package/lib-esm/RadioInputField.d.ts +0 -10
  118. package/lib-esm/RadioInputField.js +0 -56
  119. package/lib-esm/TextInputField.d.ts +0 -583
  120. package/lib-esm/TextInputField.js +0 -50
  121. package/lib-esm/_InputCaption.d.ts +0 -13
  122. package/lib-esm/_InputCaption.js +0 -16
  123. package/lib-esm/_InputField/InputField.d.ts +0 -39
  124. package/lib-esm/_InputField/InputField.js +0 -69
  125. package/lib-esm/_InputField/InputFieldCaption.d.ts +0 -3
  126. package/lib-esm/_InputField/InputFieldCaption.js +0 -18
  127. package/lib-esm/_InputField/InputFieldLabel.d.ts +0 -9
  128. package/lib-esm/_InputField/InputFieldLabel.js +0 -22
  129. package/lib-esm/_InputField/InputFieldValidation.d.ts +0 -6
  130. package/lib-esm/_InputField/InputFieldValidation.js +0 -7
  131. package/lib-esm/_InputField/ToggleInputField.d.ts +0 -13
  132. package/lib-esm/_InputField/ToggleInputField.js +0 -58
  133. package/lib-esm/_InputField/ToggleInputLeadingVisual.d.ts +0 -3
  134. package/lib-esm/_InputField/ToggleInputLeadingVisual.js +0 -11
  135. package/lib-esm/_InputField/ValidationAnimationContainer.d.ts +0 -6
  136. package/lib-esm/_InputField/ValidationAnimationContainer.js +0 -33
  137. package/lib-esm/_InputField/index.d.ts +0 -1
  138. package/lib-esm/_InputField/index.js +0 -1
  139. package/lib-esm/_InputField/slots.d.ts +0 -13
  140. package/lib-esm/_InputField/slots.js +0 -5
  141. package/lib-esm/_InputLabel.d.ts +0 -8
  142. package/lib-esm/_InputLabel.js +0 -33
  143. package/lib-esm/_InputValidation.d.ts +0 -8
  144. package/lib-esm/_InputValidation.js +0 -46
  145. package/lib-esm/_VisuallyHidden.d.ts +0 -6
  146. package/lib-esm/_VisuallyHidden.js +0 -26
  147. package/lib-esm/utils/types/FormValidationStatus.d.ts +0 -1
  148. package/lib-esm/utils/types/FormValidationStatus.js +0 -1
@@ -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': {
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': {
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': {
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': {
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);
@@ -48,8 +48,6 @@ export { default as CircleBadge } from './CircleBadge';
48
48
  export type { CircleBadgeProps, CircleBadgeIconProps } from './CircleBadge';
49
49
  export { default as CircleOcticon } from './CircleOcticon';
50
50
  export type { CircleOcticonProps } from './CircleOcticon';
51
- export { default as CheckboxInputField } from './CheckboxInputField';
52
- export { default as ChoiceFieldset, Item } from './ChoiceFieldset';
53
51
  export { default as CounterLabel } from './CounterLabel';
54
52
  export type { CounterLabelProps } from './CounterLabel';
55
53
  export { default as Details } from './Details';
@@ -90,7 +88,6 @@ export { default as Popover } from './Popover';
90
88
  export type { PopoverProps, PopoverContentProps } from './Popover';
91
89
  export { default as ProgressBar } from './ProgressBar';
92
90
  export type { ProgressBarProps } from './ProgressBar';
93
- export { default as RadioInputField } from './RadioInputField';
94
91
  export { default as SelectMenu } from './SelectMenu';
95
92
  export type { SelectMenuProps, SelectMenuDividerProps, SelectMenuFilterProps, SelectMenuFooterProps, SelectMenuItemProps, SelectMenuListProps, SelectMenuModalProps, SelectMenuTabsProps, SelectMenuHeaderProps, SelectMenuTabProps, SelectMenuTabPanelProps, SelectMenuLoadingAnimationProps } from './SelectMenu';
96
93
  export { default as SideNav } from './SideNav';
@@ -107,7 +104,6 @@ export { default as TabNav } from './TabNav';
107
104
  export type { TabNavProps, TabNavLinkProps } from './TabNav';
108
105
  export { default as TextInput } from './TextInput';
109
106
  export type { TextInputProps } from './TextInput';
110
- export { default as TextInputField } from './TextInputField';
111
107
  export { default as TextInputWithTokens } from './TextInputWithTokens';
112
108
  export type { TextInputWithTokensProps } from './TextInputWithTokens';
113
109
  export { default as Text } from './Text';
package/lib-esm/index.js CHANGED
@@ -31,8 +31,6 @@ export { NewButton } from './NewButton';
31
31
  export { default as Caret } from './Caret';
32
32
  export { default as CircleBadge } from './CircleBadge';
33
33
  export { default as CircleOcticon } from './CircleOcticon';
34
- export { default as CheckboxInputField } from './CheckboxInputField';
35
- export { default as ChoiceFieldset, Item } from './ChoiceFieldset';
36
34
  export { default as CounterLabel } from './CounterLabel';
37
35
  export { default as Details } from './Details';
38
36
  export { default as Dialog } from './Dialog';
@@ -58,7 +56,6 @@ export { default as Popover } from './Popover';
58
56
  // export {default as Portal, registerPortalRoot} from './Portal'
59
57
  // export type {PortalProps} from './Portal'
60
58
  export { default as ProgressBar } from './ProgressBar';
61
- export { default as RadioInputField } from './RadioInputField';
62
59
  export { default as SelectMenu } from './SelectMenu';
63
60
  export { default as SideNav } from './SideNav';
64
61
  export { default as Spinner } from './Spinner';
@@ -67,7 +64,6 @@ export { default as StyledOcticon } from './StyledOcticon';
67
64
  export { default as SubNav } from './SubNav';
68
65
  export { default as TabNav } from './TabNav';
69
66
  export { default as TextInput } from './TextInput';
70
- export { default as TextInputField } from './TextInputField';
71
67
  export { default as TextInputWithTokens } from './TextInputWithTokens';
72
68
  export { default as Text } from './Text';
73
69
  export { default as Timeline } from './Timeline';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@primer/components",
3
- "version": "0.0.0-202111845030",
3
+ "version": "0.0.0-202111885047",
4
4
  "description": "Primer react components",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-esm/index.js",
@@ -43,7 +43,7 @@
43
43
  "author": "GitHub, Inc.",
44
44
  "license": "MIT",
45
45
  "dependencies": {
46
- "@primer/octicons-react": "16.1.1",
46
+ "@primer/octicons-react": "^16.1.0",
47
47
  "@primer/primitives": "7.1.1",
48
48
  "@radix-ui/react-polymorphic": "0.0.14",
49
49
  "@react-aria/ssr": "3.1.0",
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import { ToggleInputFieldProps } from './_InputField/ToggleInputField';
3
- declare const _default: React.FC<ToggleInputFieldProps> & {
4
- Input: React.FC<React.HTMLProps<HTMLInputElement> & {
5
- ref?: React.Ref<HTMLInputElement> | undefined;
6
- }>;
7
- Caption: React.FC<{}>;
8
- Label: React.FC<import("./_InputField/InputFieldLabel").Props>;
9
- LeadingVisual: React.FC<{}>;
10
- };
11
- export default _default;
@@ -1,73 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _ = require(".");
11
-
12
- var _InputField = _interopRequireDefault(require("./_InputField/InputField"));
13
-
14
- var _slots = require("./_InputField/slots");
15
-
16
- var _ToggleInputField = _interopRequireDefault(require("./_InputField/ToggleInputField"));
17
-
18
- var _ToggleInputLeadingVisual = _interopRequireDefault(require("./_InputField/ToggleInputLeadingVisual"));
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
- 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); }
23
-
24
- const Input = ({
25
- id: idProp,
26
- required: requiredProp,
27
- disabled: disabledProp,
28
- ...rest
29
- }) => {
30
- if (idProp) {
31
- // eslint-disable-next-line no-console
32
- console.warn("instead of passing the 'id' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
33
- }
34
-
35
- if (disabledProp) {
36
- // eslint-disable-next-line no-console
37
- console.warn("instead of passing the 'disabled' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
38
- }
39
-
40
- if (requiredProp) {
41
- // eslint-disable-next-line no-console
42
- console.warn("instead of passing the 'required' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
43
- }
44
-
45
- return /*#__PURE__*/_react.default.createElement(_slots.Slot, {
46
- name: "Input"
47
- }, ({
48
- disabled,
49
- id,
50
- required,
51
- captionId
52
- }) => /*#__PURE__*/_react.default.createElement(_.Checkbox, _extends({
53
- "aria-describedby": captionId,
54
- id: id,
55
- required: required,
56
- disabled: disabled
57
- }, rest)));
58
- };
59
-
60
- Input.displayName = "Input";
61
-
62
- const CheckboxInputField = props => /*#__PURE__*/_react.default.createElement(_ToggleInputField.default, props);
63
-
64
- CheckboxInputField.displayName = "CheckboxInputField";
65
-
66
- var _default = Object.assign(CheckboxInputField, {
67
- Input,
68
- Caption: _InputField.default.Caption,
69
- Label: _InputField.default.Label,
70
- LeadingVisual: _ToggleInputLeadingVisual.default
71
- });
72
-
73
- exports.default = _default;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- declare const ChoiceFieldCaption: React.FC;
3
- export default ChoiceFieldCaption;