@primer/components 0.0.0-2021109221452 → 0.0.0-2021109223232
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.
- package/CHANGELOG.md +5 -3
- package/dist/browser.esm.js +178 -178
- package/dist/browser.esm.js.map +1 -1
- package/dist/browser.umd.js +179 -179
- package/dist/browser.umd.js.map +1 -1
- package/lib/ActionList/index.js +23 -12
- package/lib/AnchoredOverlay/index.js +12 -4
- package/lib/Autocomplete/index.js +14 -7
- package/lib/Button/index.js +70 -21
- package/lib/DropdownMenu/index.js +20 -6
- package/lib/DropdownStyles.js +26 -18
- package/lib/FilteredActionList/index.js +12 -4
- package/lib/Overlay.js +3 -1
- package/lib/Pagination/index.js +12 -6
- package/lib/Portal/Portal.js +3 -2
- package/lib/Portal/index.js +16 -5
- package/lib/SelectMenu/hooks/useKeyboardNav.js +96 -80
- package/lib/SelectMenu/index.js +14 -7
- package/lib/SelectPanel/index.js +12 -4
- package/lib/Token/index.js +30 -11
- package/lib/behaviors/anchoredPosition.js +234 -205
- package/lib/behaviors/focusTrap.js +157 -121
- package/lib/behaviors/focusZone.js +509 -434
- package/lib/behaviors/scrollIntoViewingArea.js +35 -18
- package/lib/constants.js +43 -39
- package/lib/hooks/index.js +60 -16
- package/lib/hooks/useAnchoredPosition.js +40 -31
- package/lib/hooks/useCombinedRefs.d.ts +2 -2
- package/lib/hooks/useCombinedRefs.js +35 -46
- package/lib/hooks/useDialog.js +96 -72
- package/lib/hooks/useFocusTrap.js +60 -43
- package/lib/hooks/useFocusZone.js +50 -54
- package/lib/hooks/useOnEscapePress.js +36 -25
- package/lib/hooks/useOpenAndCloseFocus.js +34 -22
- package/lib/hooks/useProvidedRefOrCreate.js +14 -10
- package/lib/hooks/useProvidedStateOrCreate.js +16 -13
- package/lib/hooks/useRenderForcingRef.js +17 -13
- package/lib/hooks/useResizeObserver.js +18 -15
- package/lib/hooks/useSafeTimeout.js +30 -22
- package/lib/hooks/useScrollFlash.js +23 -16
- package/lib/index.js +636 -161
- package/lib/polyfills/eventListenerSignal.js +45 -37
- package/lib/sx.js +14 -7
- package/lib/theme-preval.js +2945 -64
- package/lib/theme.js +12 -3
- package/lib/utils/iterateFocusableElements.js +85 -63
- package/lib/utils/theme.js +47 -33
- package/lib/utils/types/AriaRole.js +1 -2
- package/lib/utils/types/ComponentProps.js +1 -2
- package/lib/utils/types/Flatten.js +1 -2
- package/lib/utils/types/KeyPaths.js +1 -2
- package/lib/utils/types/MandateProps.js +1 -16
- package/lib/utils/types/Merge.js +1 -2
- package/lib/utils/types/index.js +69 -16
- package/lib/utils/uniqueId.js +8 -5
- package/lib/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/lib/utils/useIsomorphicLayoutEffect.js +12 -0
- package/lib/utils/userAgent.js +12 -8
- package/lib-esm/Overlay.js +2 -1
- package/lib-esm/Portal/Portal.js +2 -1
- package/lib-esm/hooks/useAnchoredPosition.js +2 -1
- package/lib-esm/hooks/useCombinedRefs.d.ts +2 -2
- package/lib-esm/hooks/useCombinedRefs.js +3 -2
- package/lib-esm/hooks/useResizeObserver.js +2 -2
- package/lib-esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/lib-esm/utils/useIsomorphicLayoutEffect.js +3 -0
- package/package.json +2 -3
- package/lib/ActionList/Divider.jsx +0 -29
- package/lib/ActionList/Group.jsx +0 -23
- package/lib/ActionList/Header.jsx +0 -66
- package/lib/ActionList/Item.jsx +0 -301
- package/lib/ActionList/List.jsx +0 -138
- package/lib/ActionMenu.jsx +0 -73
- package/lib/AnchoredOverlay/AnchoredOverlay.jsx +0 -100
- package/lib/Autocomplete/Autocomplete.jsx +0 -100
- package/lib/Autocomplete/AutocompleteContext.jsx +0 -5
- package/lib/Autocomplete/AutocompleteInput.jsx +0 -113
- package/lib/Autocomplete/AutocompleteMenu.jsx +0 -190
- package/lib/Autocomplete/AutocompleteOverlay.jsx +0 -55
- package/lib/Avatar.jsx +0 -34
- package/lib/AvatarPair.jsx +0 -29
- package/lib/AvatarStack.jsx +0 -151
- package/lib/BaseStyles.jsx +0 -65
- package/lib/BorderBox.jsx +0 -18
- package/lib/Box.jsx +0 -10
- package/lib/BranchName.jsx +0 -20
- package/lib/Breadcrumbs.jsx +0 -74
- package/lib/Button/Button.jsx +0 -60
- package/lib/Button/ButtonBase.jsx +0 -36
- package/lib/Button/ButtonClose.jsx +0 -55
- package/lib/Button/ButtonDanger.jsx +0 -63
- package/lib/Button/ButtonGroup.jsx +0 -55
- package/lib/Button/ButtonInvisible.jsx +0 -52
- package/lib/Button/ButtonOutline.jsx +0 -63
- package/lib/Button/ButtonPrimary.jsx +0 -62
- package/lib/Button/ButtonStyles.jsx +0 -37
- package/lib/Button/ButtonTableList.jsx +0 -49
- package/lib/Caret.jsx +0 -93
- package/lib/CircleBadge.jsx +0 -43
- package/lib/CircleOcticon.jsx +0 -21
- package/lib/CounterLabel.jsx +0 -44
- package/lib/Details.jsx +0 -21
- package/lib/Dialog/ConfirmationDialog.jsx +0 -146
- package/lib/Dialog/Dialog.jsx +0 -273
- package/lib/Dialog.jsx +0 -131
- package/lib/Dropdown.jsx +0 -134
- package/lib/DropdownMenu/DropdownButton.jsx +0 -14
- package/lib/DropdownMenu/DropdownMenu.jsx +0 -70
- package/lib/FilterList.jsx +0 -63
- package/lib/FilteredActionList/FilteredActionList.jsx +0 -100
- package/lib/FilteredSearch.jsx +0 -29
- package/lib/Flash.jsx +0 -70
- package/lib/Flex.jsx +0 -15
- package/lib/FormGroup.jsx +0 -25
- package/lib/Grid.jsx +0 -15
- package/lib/Header.jsx +0 -90
- package/lib/Heading.jsx +0 -21
- package/lib/Label.jsx +0 -84
- package/lib/LabelGroup.jsx +0 -19
- package/lib/Link.jsx +0 -38
- package/lib/Overlay.jsx +0 -155
- package/lib/Pagehead.jsx +0 -18
- package/lib/Pagination/Pagination.jsx +0 -163
- package/lib/Pagination/model.jsx +0 -174
- package/lib/PointerBox.jsx +0 -25
- package/lib/Popover.jsx +0 -210
- package/lib/Portal/Portal.jsx +0 -78
- package/lib/Position.jsx +0 -46
- package/lib/ProgressBar.jsx +0 -39
- package/lib/SelectMenu/SelectMenu.jsx +0 -114
- package/lib/SelectMenu/SelectMenuContext.jsx +0 -5
- package/lib/SelectMenu/SelectMenuDivider.jsx +0 -43
- package/lib/SelectMenu/SelectMenuFilter.jsx +0 -59
- package/lib/SelectMenu/SelectMenuFooter.jsx +0 -46
- package/lib/SelectMenu/SelectMenuHeader.jsx +0 -44
- package/lib/SelectMenu/SelectMenuItem.jsx +0 -143
- package/lib/SelectMenu/SelectMenuList.jsx +0 -60
- package/lib/SelectMenu/SelectMenuLoadingAnimation.jsx +0 -21
- package/lib/SelectMenu/SelectMenuModal.jsx +0 -119
- package/lib/SelectMenu/SelectMenuTab.jsx +0 -93
- package/lib/SelectMenu/SelectMenuTabPanel.jsx +0 -43
- package/lib/SelectMenu/SelectMenuTabs.jsx +0 -58
- package/lib/SelectPanel/SelectPanel.jsx +0 -105
- package/lib/SideNav.jsx +0 -177
- package/lib/Spinner.jsx +0 -35
- package/lib/StateLabel.jsx +0 -89
- package/lib/StyledOcticon.jsx +0 -20
- package/lib/SubNav.jsx +0 -104
- package/lib/TabNav.jsx +0 -60
- package/lib/Text.jsx +0 -14
- package/lib/TextInput.jsx +0 -23
- package/lib/TextInputWithTokens.jsx +0 -218
- package/lib/ThemeProvider.jsx +0 -130
- package/lib/Timeline.jsx +0 -124
- package/lib/Token/AvatarToken.jsx +0 -54
- package/lib/Token/IssueLabelToken.jsx +0 -125
- package/lib/Token/Token.jsx +0 -103
- package/lib/Token/TokenBase.jsx +0 -88
- package/lib/Token/_RemoveTokenButton.jsx +0 -108
- package/lib/Token/_TokenTextContainer.jsx +0 -49
- package/lib/Tooltip.jsx +0 -246
- package/lib/Truncate.jsx +0 -27
- package/lib/UnderlineNav.jsx +0 -90
- package/lib/_TextInputWrapper.jsx +0 -114
- package/lib/_UnstyledTextInput.jsx +0 -22
- package/lib/hooks/useDetails.jsx +0 -39
- package/lib/hooks/useOnOutsideClick.jsx +0 -61
- package/lib/hooks/useOverlay.jsx +0 -15
- package/lib/utils/deprecate.jsx +0 -59
- package/lib/utils/isNumeric.jsx +0 -7
- package/lib/utils/ssr.jsx +0 -6
- package/lib/utils/test-deprecations.jsx +0 -20
- package/lib/utils/test-helpers.jsx +0 -8
- package/lib/utils/test-matchers.jsx +0 -100
- package/lib/utils/testing.jsx +0 -206
package/lib/Tooltip.jsx
DELETED
@@ -1,246 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
const classnames_1 = __importDefault(require("classnames"));
|
7
|
-
const react_1 = __importDefault(require("react"));
|
8
|
-
const styled_components_1 = __importDefault(require("styled-components"));
|
9
|
-
const constants_1 = require("./constants");
|
10
|
-
const sx_1 = __importDefault(require("./sx"));
|
11
|
-
const TooltipBase = styled_components_1.default.span `
|
12
|
-
position: relative;
|
13
|
-
|
14
|
-
&::before {
|
15
|
-
position: absolute;
|
16
|
-
z-index: 1000001;
|
17
|
-
display: none;
|
18
|
-
width: 0px;
|
19
|
-
height: 0px;
|
20
|
-
color: ${constants_1.get('colors.neutral.emphasisPlus')};
|
21
|
-
pointer-events: none;
|
22
|
-
content: '';
|
23
|
-
border: 6px solid transparent;
|
24
|
-
opacity: 0;
|
25
|
-
}
|
26
|
-
|
27
|
-
&::after {
|
28
|
-
position: absolute;
|
29
|
-
z-index: 1000000;
|
30
|
-
display: none;
|
31
|
-
padding: 0.5em 0.75em;
|
32
|
-
font: normal normal 11px/1.5 ${constants_1.get('fonts.normal')};
|
33
|
-
-webkit-font-smoothing: subpixel-antialiased;
|
34
|
-
color: ${constants_1.get('colors.fg.onEmphasis')};
|
35
|
-
text-align: center;
|
36
|
-
text-decoration: none;
|
37
|
-
text-shadow: none;
|
38
|
-
text-transform: none;
|
39
|
-
letter-spacing: normal;
|
40
|
-
word-wrap: break-word;
|
41
|
-
white-space: pre;
|
42
|
-
pointer-events: none;
|
43
|
-
content: attr(aria-label);
|
44
|
-
background: ${constants_1.get('colors.neutral.emphasisPlus')};
|
45
|
-
border-radius: ${constants_1.get('radii.1')};
|
46
|
-
opacity: 0;
|
47
|
-
}
|
48
|
-
|
49
|
-
// delay animation for tooltip
|
50
|
-
@keyframes tooltip-appear {
|
51
|
-
from {
|
52
|
-
opacity: 0;
|
53
|
-
}
|
54
|
-
|
55
|
-
to {
|
56
|
-
opacity: 1;
|
57
|
-
}
|
58
|
-
}
|
59
|
-
|
60
|
-
&:hover,
|
61
|
-
&:active,
|
62
|
-
&:focus {
|
63
|
-
&::before,
|
64
|
-
&::after {
|
65
|
-
display: inline-block;
|
66
|
-
text-decoration: none;
|
67
|
-
animation-name: tooltip-appear;
|
68
|
-
animation-duration: 0.1s;
|
69
|
-
animation-fill-mode: forwards;
|
70
|
-
animation-timing-function: ease-in;
|
71
|
-
animation-delay: 0.4s;
|
72
|
-
}
|
73
|
-
}
|
74
|
-
|
75
|
-
&.tooltipped-no-delay:hover,
|
76
|
-
&.tooltipped-no-delay:active,
|
77
|
-
&.tooltipped-no-delay:focus {
|
78
|
-
&::before,
|
79
|
-
&::after {
|
80
|
-
animation-delay: 0s;
|
81
|
-
}
|
82
|
-
}
|
83
|
-
|
84
|
-
&.tooltipped-multiline:hover,
|
85
|
-
&.tooltipped-multiline:active,
|
86
|
-
&.tooltipped-multiline:focus {
|
87
|
-
&::after {
|
88
|
-
display: table-cell;
|
89
|
-
}
|
90
|
-
}
|
91
|
-
|
92
|
-
// Tooltipped south
|
93
|
-
&.tooltipped-s,
|
94
|
-
&.tooltipped-se,
|
95
|
-
&.tooltipped-sw {
|
96
|
-
&::after {
|
97
|
-
top: 100%;
|
98
|
-
right: 50%;
|
99
|
-
margin-top: 6px;
|
100
|
-
}
|
101
|
-
|
102
|
-
&::before {
|
103
|
-
top: auto;
|
104
|
-
right: 50%;
|
105
|
-
bottom: -7px;
|
106
|
-
margin-right: -6px;
|
107
|
-
border-bottom-color: ${constants_1.get('colors.neutral.emphasisPlus')};
|
108
|
-
}
|
109
|
-
}
|
110
|
-
|
111
|
-
&.tooltipped-se {
|
112
|
-
&::after {
|
113
|
-
right: auto;
|
114
|
-
left: 50%;
|
115
|
-
margin-left: -${constants_1.get('space.3')};
|
116
|
-
}
|
117
|
-
}
|
118
|
-
|
119
|
-
&.tooltipped-sw::after {
|
120
|
-
margin-right: -${constants_1.get('space.3')};
|
121
|
-
}
|
122
|
-
|
123
|
-
// Tooltips above the object
|
124
|
-
&.tooltipped-n,
|
125
|
-
&.tooltipped-ne,
|
126
|
-
&.tooltipped-nw {
|
127
|
-
&::after {
|
128
|
-
right: 50%;
|
129
|
-
bottom: 100%;
|
130
|
-
margin-bottom: 6px;
|
131
|
-
}
|
132
|
-
|
133
|
-
&::before {
|
134
|
-
top: -7px;
|
135
|
-
right: 50%;
|
136
|
-
bottom: auto;
|
137
|
-
margin-right: -6px;
|
138
|
-
border-top-color: ${constants_1.get('colors.neutral.emphasisPlus')};
|
139
|
-
}
|
140
|
-
}
|
141
|
-
|
142
|
-
&.tooltipped-ne {
|
143
|
-
&::after {
|
144
|
-
right: auto;
|
145
|
-
left: 50%;
|
146
|
-
margin-left: -${constants_1.get('space.3')};
|
147
|
-
}
|
148
|
-
}
|
149
|
-
|
150
|
-
&.tooltipped-nw::after {
|
151
|
-
margin-right: -${constants_1.get('space.3')};
|
152
|
-
}
|
153
|
-
|
154
|
-
// Move the tooltip body to the center of the object.
|
155
|
-
&.tooltipped-s::after,
|
156
|
-
&.tooltipped-n::after {
|
157
|
-
transform: translateX(50%);
|
158
|
-
}
|
159
|
-
|
160
|
-
// Tooltipped to the left
|
161
|
-
&.tooltipped-w {
|
162
|
-
&::after {
|
163
|
-
right: 100%;
|
164
|
-
bottom: 50%;
|
165
|
-
margin-right: 6px;
|
166
|
-
transform: translateY(50%);
|
167
|
-
}
|
168
|
-
|
169
|
-
&::before {
|
170
|
-
top: 50%;
|
171
|
-
bottom: 50%;
|
172
|
-
left: -7px;
|
173
|
-
margin-top: -6px;
|
174
|
-
border-left-color: ${constants_1.get('colors.neutral.emphasisPlus')};
|
175
|
-
}
|
176
|
-
}
|
177
|
-
|
178
|
-
// tooltipped to the right
|
179
|
-
&.tooltipped-e {
|
180
|
-
&::after {
|
181
|
-
bottom: 50%;
|
182
|
-
left: 100%;
|
183
|
-
margin-left: 6px;
|
184
|
-
transform: translateY(50%);
|
185
|
-
}
|
186
|
-
|
187
|
-
&::before {
|
188
|
-
top: 50%;
|
189
|
-
right: -7px;
|
190
|
-
bottom: 50%;
|
191
|
-
margin-top: -6px;
|
192
|
-
border-right-color: ${constants_1.get('colors.neutral.emphasisPlus')};
|
193
|
-
}
|
194
|
-
}
|
195
|
-
|
196
|
-
&.tooltipped-multiline {
|
197
|
-
&::after {
|
198
|
-
width: max-content;
|
199
|
-
max-width: 250px;
|
200
|
-
word-wrap: break-word;
|
201
|
-
white-space: pre-line;
|
202
|
-
border-collapse: separate;
|
203
|
-
}
|
204
|
-
|
205
|
-
&.tooltipped-s::after,
|
206
|
-
&.tooltipped-n::after {
|
207
|
-
right: auto;
|
208
|
-
left: 50%;
|
209
|
-
transform: translateX(-50%);
|
210
|
-
}
|
211
|
-
|
212
|
-
&.tooltipped-w::after,
|
213
|
-
&.tooltipped-e::after {
|
214
|
-
right: 100%;
|
215
|
-
}
|
216
|
-
}
|
217
|
-
|
218
|
-
&.tooltipped-align-right-2::after {
|
219
|
-
right: 0;
|
220
|
-
margin-right: 0;
|
221
|
-
}
|
222
|
-
|
223
|
-
&.tooltipped-align-right-2::before {
|
224
|
-
right: 15px;
|
225
|
-
}
|
226
|
-
|
227
|
-
&.tooltipped-align-left-2::after {
|
228
|
-
left: 0;
|
229
|
-
margin-left: 0;
|
230
|
-
}
|
231
|
-
|
232
|
-
&.tooltipped-align-left-2::before {
|
233
|
-
left: 10px;
|
234
|
-
}
|
235
|
-
${constants_1.COMMON};
|
236
|
-
${sx_1.default};
|
237
|
-
`;
|
238
|
-
function Tooltip({ direction = 'n', children, className, text, noDelay, align, wrap, ...rest }) {
|
239
|
-
const classes = classnames_1.default(className, `tooltipped-${direction}`, align && `tooltipped-align-${align}-2`, noDelay && 'tooltipped-no-delay', wrap && 'tooltipped-multiline');
|
240
|
-
return (<TooltipBase role="tooltip" aria-label={text} {...rest} className={classes}>
|
241
|
-
{children}
|
242
|
-
</TooltipBase>);
|
243
|
-
}
|
244
|
-
Tooltip.alignments = ['left', 'right'];
|
245
|
-
Tooltip.directions = ['n', 'ne', 'e', 'se', 's', 'sw', 'w', 'nw'];
|
246
|
-
exports.default = Tooltip;
|
package/lib/Truncate.jsx
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
const styled_components_1 = __importDefault(require("styled-components"));
|
7
|
-
const styled_system_1 = require("styled-system");
|
8
|
-
const constants_1 = require("./constants");
|
9
|
-
const sx_1 = __importDefault(require("./sx"));
|
10
|
-
const Truncate = styled_components_1.default.div `
|
11
|
-
${constants_1.TYPOGRAPHY}
|
12
|
-
${constants_1.COMMON}
|
13
|
-
display: ${props => (props.inline ? 'inline-block' : 'inherit')};
|
14
|
-
overflow: hidden;
|
15
|
-
text-overflow: ellipsis;
|
16
|
-
vertical-align: ${props => (props.inline ? 'top' : 'initial')};
|
17
|
-
white-space: nowrap;
|
18
|
-
${styled_system_1.maxWidth}
|
19
|
-
${props => (props.expandable ? `&:hover { max-width: 10000px; }` : '')}
|
20
|
-
${sx_1.default};
|
21
|
-
`;
|
22
|
-
Truncate.defaultProps = {
|
23
|
-
expandable: false,
|
24
|
-
inline: false,
|
25
|
-
maxWidth: 125
|
26
|
-
};
|
27
|
-
exports.default = Truncate;
|
package/lib/UnderlineNav.jsx
DELETED
@@ -1,90 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
const classnames_1 = __importDefault(require("classnames"));
|
7
|
-
const react_1 = __importDefault(require("react"));
|
8
|
-
const styled_components_1 = __importDefault(require("styled-components"));
|
9
|
-
const constants_1 = require("./constants");
|
10
|
-
const sx_1 = __importDefault(require("./sx"));
|
11
|
-
const ITEM_CLASS = 'UnderlineNav-item';
|
12
|
-
const SELECTED_CLASS = 'selected';
|
13
|
-
const UnderlineNavBase = styled_components_1.default.nav `
|
14
|
-
display: flex;
|
15
|
-
justify-content: space-between;
|
16
|
-
border-bottom: 1px solid ${constants_1.get('colors.border.muted')};
|
17
|
-
&.UnderlineNav--right {
|
18
|
-
justify-content: flex-end;
|
19
|
-
|
20
|
-
.UnderlineNav-item {
|
21
|
-
margin-right: 0;
|
22
|
-
margin-left: ${constants_1.get('space.3')};
|
23
|
-
}
|
24
|
-
|
25
|
-
.UnderlineNav-actions {
|
26
|
-
flex: 1 1 auto;
|
27
|
-
}
|
28
|
-
}
|
29
|
-
&.UnderlineNav--full {
|
30
|
-
display: block;
|
31
|
-
}
|
32
|
-
|
33
|
-
.UnderlineNav-body {
|
34
|
-
display: flex;
|
35
|
-
margin-bottom: -1px;
|
36
|
-
}
|
37
|
-
|
38
|
-
.UnderlineNav-actions {
|
39
|
-
align-self: center;
|
40
|
-
}
|
41
|
-
|
42
|
-
${constants_1.COMMON};
|
43
|
-
${sx_1.default};
|
44
|
-
`;
|
45
|
-
function UnderlineNav({ actions, className, align, children, full, label, theme, ...rest }) {
|
46
|
-
const classes = classnames_1.default(className, 'UnderlineNav', align && `UnderlineNav--${align}`, full && 'UnderlineNav--full');
|
47
|
-
return (<UnderlineNavBase className={classes} aria-label={label} theme={theme} {...rest}>
|
48
|
-
<div className="UnderlineNav-body">{children}</div>
|
49
|
-
{actions && <div className="UnderlineNav-actions">{actions}</div>}
|
50
|
-
</UnderlineNavBase>);
|
51
|
-
}
|
52
|
-
const UnderlineNavLink = styled_components_1.default.a.attrs(props => ({
|
53
|
-
activeClassName: typeof props.to === 'string' ? 'selected' : '',
|
54
|
-
className: classnames_1.default(ITEM_CLASS, props.selected && SELECTED_CLASS, props.className)
|
55
|
-
})) `
|
56
|
-
padding: ${constants_1.get('space.3')} ${constants_1.get('space.2')};
|
57
|
-
margin-right: ${constants_1.get('space.3')};
|
58
|
-
font-size: ${constants_1.get('fontSizes.1')};
|
59
|
-
line-height: ${constants_1.get('lineHeights.default')};
|
60
|
-
color: ${constants_1.get('colors.fg.default')};
|
61
|
-
text-align: center;
|
62
|
-
border-bottom: 2px solid transparent;
|
63
|
-
text-decoration: none;
|
64
|
-
|
65
|
-
&:hover,
|
66
|
-
&:focus {
|
67
|
-
color: ${constants_1.get('colors.fg.default')};
|
68
|
-
text-decoration: none;
|
69
|
-
border-bottom-color: ${constants_1.get('colors.neutral.muted')};
|
70
|
-
transition: 0.2s ease;
|
71
|
-
|
72
|
-
.UnderlineNav-octicon {
|
73
|
-
color: ${constants_1.get('colors.fg.muted')};
|
74
|
-
}
|
75
|
-
}
|
76
|
-
|
77
|
-
&.selected {
|
78
|
-
color: ${constants_1.get('colors.fg.default')};
|
79
|
-
border-bottom-color: ${constants_1.get('colors.primer.border.active')};
|
80
|
-
|
81
|
-
.UnderlineNav-octicon {
|
82
|
-
color: ${constants_1.get('colors.fg.default')};
|
83
|
-
}
|
84
|
-
}
|
85
|
-
|
86
|
-
${constants_1.COMMON};
|
87
|
-
${sx_1.default};
|
88
|
-
`;
|
89
|
-
UnderlineNavLink.displayName = 'UnderlineNav.Link';
|
90
|
-
exports.default = Object.assign(UnderlineNav, { Link: UnderlineNavLink });
|
@@ -1,114 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
-
if (k2 === undefined) k2 = k;
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
5
|
-
}) : (function(o, m, k, k2) {
|
6
|
-
if (k2 === undefined) k2 = k;
|
7
|
-
o[k2] = m[k];
|
8
|
-
}));
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
11
|
-
}) : function(o, v) {
|
12
|
-
o["default"] = v;
|
13
|
-
});
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
15
|
-
if (mod && mod.__esModule) return mod;
|
16
|
-
var result = {};
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
18
|
-
__setModuleDefault(result, mod);
|
19
|
-
return result;
|
20
|
-
};
|
21
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
22
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
23
|
-
};
|
24
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
25
|
-
const styled_components_1 = __importStar(require("styled-components"));
|
26
|
-
const styled_system_1 = require("styled-system");
|
27
|
-
const constants_1 = require("./constants");
|
28
|
-
const sx_1 = __importDefault(require("./sx"));
|
29
|
-
const sizeVariants = styled_system_1.variant({
|
30
|
-
variants: {
|
31
|
-
small: {
|
32
|
-
minHeight: '28px',
|
33
|
-
px: 2,
|
34
|
-
py: '3px',
|
35
|
-
fontSize: 0,
|
36
|
-
lineHeight: '20px'
|
37
|
-
},
|
38
|
-
large: {
|
39
|
-
px: 2,
|
40
|
-
py: '10px',
|
41
|
-
fontSize: 3
|
42
|
-
}
|
43
|
-
}
|
44
|
-
});
|
45
|
-
const TextInputWrapper = styled_components_1.default.span `
|
46
|
-
display: inline-flex;
|
47
|
-
align-items: stretch;
|
48
|
-
min-height: 34px;
|
49
|
-
font-size: ${constants_1.get('fontSizes.1')};
|
50
|
-
line-height: 20px;
|
51
|
-
color: ${constants_1.get('colors.fg.default')};
|
52
|
-
vertical-align: middle;
|
53
|
-
background-repeat: no-repeat; // Repeat and position set for form states (success, error, etc)
|
54
|
-
background-position: right 8px center; // For form validation. This keeps images 8px from right and centered vertically.
|
55
|
-
border: 1px solid ${constants_1.get('colors.border.default')};
|
56
|
-
border-radius: ${constants_1.get('radii.2')};
|
57
|
-
outline: none;
|
58
|
-
box-shadow: ${constants_1.get('shadows.primer.shadow.inset')};
|
59
|
-
cursor: text;
|
60
|
-
|
61
|
-
${props => {
|
62
|
-
if (props.hasIcon) {
|
63
|
-
return styled_components_1.css `
|
64
|
-
padding: 0;
|
65
|
-
`;
|
66
|
-
}
|
67
|
-
else {
|
68
|
-
return styled_components_1.css `
|
69
|
-
padding: 6px 12px;
|
70
|
-
`;
|
71
|
-
}
|
72
|
-
}}
|
73
|
-
|
74
|
-
.TextInput-icon {
|
75
|
-
align-self: center;
|
76
|
-
color: ${constants_1.get('colors.fg.muted')};
|
77
|
-
margin: 0 ${constants_1.get('space.2')};
|
78
|
-
flex-shrink: 0;
|
79
|
-
}
|
80
|
-
|
81
|
-
&:focus-within {
|
82
|
-
border-color: ${constants_1.get('colors.accent.emphasis')};
|
83
|
-
box-shadow: ${constants_1.get('shadows.primer.shadow.focus')};
|
84
|
-
}
|
85
|
-
|
86
|
-
${props => props.contrast &&
|
87
|
-
styled_components_1.css `
|
88
|
-
background-color: ${constants_1.get('colors.canvas.inset')};
|
89
|
-
`}
|
90
|
-
|
91
|
-
${props => props.disabled &&
|
92
|
-
styled_components_1.css `
|
93
|
-
color: ${constants_1.get('colors.primer.fg.disabled')};
|
94
|
-
background-color: ${constants_1.get('colors.input.disabledBg')};
|
95
|
-
border-color: ${constants_1.get('colors.border.default')};
|
96
|
-
`}
|
97
|
-
|
98
|
-
${props => props.block &&
|
99
|
-
styled_components_1.css `
|
100
|
-
display: block;
|
101
|
-
width: 100%;
|
102
|
-
`}
|
103
|
-
|
104
|
-
// Ensures inputs don't zoom on mobile but are body-font size on desktop
|
105
|
-
@media (min-width: ${constants_1.get('breakpoints.1')}) {
|
106
|
-
font-size: ${constants_1.get('fontSizes.1')};
|
107
|
-
}
|
108
|
-
${styled_system_1.width}
|
109
|
-
${styled_system_1.minWidth}
|
110
|
-
${styled_system_1.maxWidth}
|
111
|
-
${sizeVariants}
|
112
|
-
${sx_1.default};
|
113
|
-
`;
|
114
|
-
exports.default = TextInputWrapper;
|
@@ -1,22 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
const styled_components_1 = __importDefault(require("styled-components"));
|
7
|
-
const sx_1 = __importDefault(require("./sx"));
|
8
|
-
const UnstyledTextInput = styled_components_1.default.input `
|
9
|
-
border: 0;
|
10
|
-
font-size: inherit;
|
11
|
-
font-family: inherit;
|
12
|
-
background-color: transparent;
|
13
|
-
-webkit-appearance: none;
|
14
|
-
color: inherit;
|
15
|
-
width: 100%;
|
16
|
-
&:focus {
|
17
|
-
outline: 0;
|
18
|
-
}
|
19
|
-
|
20
|
-
${sx_1.default};
|
21
|
-
`;
|
22
|
-
exports.default = UnstyledTextInput;
|
package/lib/hooks/useDetails.jsx
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const react_1 = require("react");
|
4
|
-
function useDetails({ ref, closeOnOutsideClick, defaultOpen, onClickOutside }) {
|
5
|
-
const [open, setOpen] = react_1.useState(defaultOpen);
|
6
|
-
const backupRef = react_1.useRef(null);
|
7
|
-
const customRef = ref ?? backupRef;
|
8
|
-
const onClickOutsideInternal = react_1.useCallback((event) => {
|
9
|
-
const { current } = customRef;
|
10
|
-
const eventTarget = event.target;
|
11
|
-
const closest = eventTarget.closest('details');
|
12
|
-
if (closest !== current) {
|
13
|
-
onClickOutside && onClickOutside(event);
|
14
|
-
if (!event.defaultPrevented) {
|
15
|
-
setOpen(false);
|
16
|
-
}
|
17
|
-
}
|
18
|
-
}, [customRef, setOpen, onClickOutside]);
|
19
|
-
// handles the overlay behavior - closing the menu when clicking outside of it
|
20
|
-
react_1.useEffect(() => {
|
21
|
-
if (open && closeOnOutsideClick) {
|
22
|
-
document.addEventListener('click', onClickOutsideInternal);
|
23
|
-
return () => {
|
24
|
-
document.removeEventListener('click', onClickOutsideInternal);
|
25
|
-
};
|
26
|
-
}
|
27
|
-
}, [open, closeOnOutsideClick, onClickOutsideInternal]);
|
28
|
-
const handleToggle = (e) => {
|
29
|
-
if (!e.defaultPrevented) {
|
30
|
-
const eventTarget = e.target;
|
31
|
-
setOpen(eventTarget.open);
|
32
|
-
}
|
33
|
-
};
|
34
|
-
const getDetailsProps = () => {
|
35
|
-
return { onToggle: handleToggle, open, ref: customRef };
|
36
|
-
};
|
37
|
-
return { open, setOpen, getDetailsProps };
|
38
|
-
}
|
39
|
-
exports.default = useDetails;
|
@@ -1,61 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.useOnOutsideClick = void 0;
|
4
|
-
const react_1 = require("react");
|
5
|
-
// Because events are handled at the document level, we provide a mechanism for early return.
|
6
|
-
const stopPropagation = true;
|
7
|
-
/**
|
8
|
-
* Calls all handlers in reverse order
|
9
|
-
* @param event The MouseEvent generated by the click event.
|
10
|
-
*/
|
11
|
-
function handleClick(event) {
|
12
|
-
if (!event.defaultPrevented) {
|
13
|
-
for (const handler of Object.values(registry).reverse()) {
|
14
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
15
|
-
if (handler(event) === stopPropagation || event.defaultPrevented) {
|
16
|
-
break;
|
17
|
-
}
|
18
|
-
}
|
19
|
-
}
|
20
|
-
}
|
21
|
-
const registry = {};
|
22
|
-
function register(id, handler) {
|
23
|
-
registry[id] = handler;
|
24
|
-
}
|
25
|
-
function deregister(id) {
|
26
|
-
delete registry[id];
|
27
|
-
}
|
28
|
-
// For auto-incrementing unique identifiers for registered handlers.
|
29
|
-
let handlerId = 0;
|
30
|
-
const useOnOutsideClick = ({ containerRef, ignoreClickRefs, onClickOutside }) => {
|
31
|
-
const id = react_1.useMemo(() => handlerId++, []);
|
32
|
-
const handler = react_1.useCallback(event => {
|
33
|
-
// don't call click handler if the mouse event was triggered by an auxiliary button (right click/wheel button/etc)
|
34
|
-
if (event instanceof MouseEvent && event.button > 0) {
|
35
|
-
return stopPropagation;
|
36
|
-
}
|
37
|
-
// don't call handler if the click happened inside of the container
|
38
|
-
if (containerRef.current?.contains(event.target)) {
|
39
|
-
return stopPropagation;
|
40
|
-
}
|
41
|
-
// don't call handler if click happened on an ignored ref
|
42
|
-
if (ignoreClickRefs && ignoreClickRefs.some(({ current }) => current?.contains(event.target))) {
|
43
|
-
return stopPropagation;
|
44
|
-
}
|
45
|
-
onClickOutside(event);
|
46
|
-
}, [containerRef, ignoreClickRefs, onClickOutside]);
|
47
|
-
react_1.useEffect(() => {
|
48
|
-
if (Object.keys(registry).length === 0) {
|
49
|
-
// use capture to ensure we get all events
|
50
|
-
document.addEventListener('mousedown', handleClick, { capture: true });
|
51
|
-
}
|
52
|
-
register(id, handler);
|
53
|
-
return () => {
|
54
|
-
deregister(id);
|
55
|
-
if (Object.keys(registry).length === 0) {
|
56
|
-
document.removeEventListener('mousedown', handleClick, { capture: true });
|
57
|
-
}
|
58
|
-
};
|
59
|
-
}, [id, handler]);
|
60
|
-
};
|
61
|
-
exports.useOnOutsideClick = useOnOutsideClick;
|
package/lib/hooks/useOverlay.jsx
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.useOverlay = void 0;
|
4
|
-
const useOnOutsideClick_1 = require("./useOnOutsideClick");
|
5
|
-
const useOpenAndCloseFocus_1 = require("./useOpenAndCloseFocus");
|
6
|
-
const useOnEscapePress_1 = require("./useOnEscapePress");
|
7
|
-
const useProvidedRefOrCreate_1 = require("./useProvidedRefOrCreate");
|
8
|
-
const useOverlay = ({ overlayRef: _overlayRef, returnFocusRef, initialFocusRef, onEscape, ignoreClickRefs, onClickOutside, preventFocusOnOpen }) => {
|
9
|
-
const overlayRef = useProvidedRefOrCreate_1.useProvidedRefOrCreate(_overlayRef);
|
10
|
-
useOpenAndCloseFocus_1.useOpenAndCloseFocus({ containerRef: overlayRef, returnFocusRef, initialFocusRef, preventFocusOnOpen });
|
11
|
-
useOnOutsideClick_1.useOnOutsideClick({ containerRef: overlayRef, ignoreClickRefs, onClickOutside });
|
12
|
-
useOnEscapePress_1.useOnEscapePress(onEscape);
|
13
|
-
return { ref: overlayRef };
|
14
|
-
};
|
15
|
-
exports.useOverlay = useOverlay;
|
package/lib/utils/deprecate.jsx
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.Deprecations = exports.useDeprecation = exports.deprecate = void 0;
|
4
|
-
const react_1 = require("react");
|
5
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
6
|
-
const noop = () => { };
|
7
|
-
// eslint-disable-next-line import/no-mutable-exports
|
8
|
-
let deprecate = noop;
|
9
|
-
exports.deprecate = deprecate;
|
10
|
-
if (__DEV__) {
|
11
|
-
exports.deprecate = deprecate = ({ name, message, version }) => {
|
12
|
-
Deprecations.deprecate({ name, message, version });
|
13
|
-
};
|
14
|
-
}
|
15
|
-
// eslint-disable-next-line import/no-mutable-exports
|
16
|
-
let useDeprecation = null;
|
17
|
-
exports.useDeprecation = useDeprecation;
|
18
|
-
if (__DEV__) {
|
19
|
-
exports.useDeprecation = useDeprecation = ({ name, message, version }) => {
|
20
|
-
const ref = react_1.useRef(false);
|
21
|
-
const logDeprecation = react_1.useCallback(() => {
|
22
|
-
if (!ref.current) {
|
23
|
-
ref.current = true;
|
24
|
-
deprecate({ name, message, version });
|
25
|
-
}
|
26
|
-
}, [name, message, version]);
|
27
|
-
return logDeprecation;
|
28
|
-
};
|
29
|
-
}
|
30
|
-
else {
|
31
|
-
exports.useDeprecation = useDeprecation = () => {
|
32
|
-
return noop;
|
33
|
-
};
|
34
|
-
}
|
35
|
-
class Deprecations {
|
36
|
-
constructor() {
|
37
|
-
this.deprecations = [];
|
38
|
-
}
|
39
|
-
static get() {
|
40
|
-
if (!Deprecations.instance) {
|
41
|
-
Deprecations.instance = new Deprecations();
|
42
|
-
}
|
43
|
-
return Deprecations.instance;
|
44
|
-
}
|
45
|
-
static deprecate({ name, message, version }) {
|
46
|
-
const msg = `WARNING! ${name} is deprecated and will be removed in version ${version}. ${message}`;
|
47
|
-
// eslint-disable-next-line no-console
|
48
|
-
console.warn(msg);
|
49
|
-
this.get().deprecations.push({ name, message, version });
|
50
|
-
}
|
51
|
-
static getDeprecations() {
|
52
|
-
return this.get().deprecations;
|
53
|
-
}
|
54
|
-
static clearDeprecations() {
|
55
|
-
this.get().deprecations.length = 0;
|
56
|
-
}
|
57
|
-
}
|
58
|
-
exports.Deprecations = Deprecations;
|
59
|
-
Deprecations.instance = null;
|
package/lib/utils/isNumeric.jsx
DELETED
package/lib/utils/ssr.jsx
DELETED
@@ -1,6 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.useSSRSafeId = exports.SSRProvider = void 0;
|
4
|
-
var ssr_1 = require("@react-aria/ssr");
|
5
|
-
Object.defineProperty(exports, "SSRProvider", { enumerable: true, get: function () { return ssr_1.SSRProvider; } });
|
6
|
-
Object.defineProperty(exports, "useSSRSafeId", { enumerable: true, get: function () { return ssr_1.useSSRSafeId; } });
|