@primer/components 0.0.0-20211030175556 → 0.0.0-20211030175634

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 (248) hide show
  1. package/CHANGELOG.md +24 -2
  2. package/dist/browser.esm.js +144 -137
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +128 -121
  5. package/dist/browser.umd.js.map +1 -1
  6. package/lib/ActionList/Item.js +3 -3
  7. package/lib/ActionList/index.js +23 -12
  8. package/lib/ActionList2/Item.js +3 -1
  9. package/lib/ActionList2/List.js +1 -2
  10. package/lib/ActionList2/Selection.js +3 -1
  11. package/lib/ActionList2/index.js +41 -23
  12. package/lib/AnchoredOverlay/index.js +12 -4
  13. package/lib/Autocomplete/Autocomplete.d.ts +1 -0
  14. package/lib/Autocomplete/AutocompleteInput.d.ts +1 -0
  15. package/lib/Autocomplete/index.js +14 -7
  16. package/lib/Button/Button.d.ts +1 -0
  17. package/lib/Button/ButtonClose.d.ts +2 -1
  18. package/lib/Button/ButtonDanger.d.ts +1 -0
  19. package/lib/Button/ButtonInvisible.d.ts +1 -0
  20. package/lib/Button/ButtonOutline.d.ts +1 -0
  21. package/lib/Button/ButtonPrimary.d.ts +1 -0
  22. package/lib/Button/index.js +70 -21
  23. package/lib/Checkbox.d.ts +29 -0
  24. package/lib/Checkbox.js +64 -0
  25. package/lib/CircleOcticon.d.ts +1 -0
  26. package/lib/Dialog.d.ts +3 -2
  27. package/lib/Dropdown.d.ts +4 -0
  28. package/lib/DropdownMenu/DropdownButton.d.ts +2 -1
  29. package/lib/DropdownMenu/index.js +20 -6
  30. package/lib/DropdownStyles.js +26 -18
  31. package/lib/FilterList.d.ts +1 -0
  32. package/lib/FilteredActionList/index.js +12 -4
  33. package/lib/NewButton/index.js +12 -5
  34. package/lib/NewButton/types.js +1 -2
  35. package/lib/Overlay.d.ts +5 -3
  36. package/lib/Pagination/index.js +12 -6
  37. package/lib/Portal/index.js +16 -5
  38. package/lib/Position.d.ts +4 -4
  39. package/lib/SelectMenu/SelectMenu.d.ts +10 -4
  40. package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
  41. package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
  42. package/lib/SelectMenu/hooks/useKeyboardNav.js +96 -80
  43. package/lib/SelectMenu/index.js +14 -7
  44. package/lib/SelectPanel/index.js +12 -4
  45. package/lib/TextInputWithTokens.d.ts +1 -0
  46. package/lib/Token/AvatarToken.d.ts +1 -1
  47. package/lib/Token/IssueLabelToken.d.ts +1 -1
  48. package/lib/Token/Token.d.ts +1 -1
  49. package/lib/Token/index.js +30 -11
  50. package/lib/behaviors/anchoredPosition.js +234 -205
  51. package/lib/behaviors/focusTrap.js +157 -121
  52. package/lib/behaviors/focusZone.js +509 -434
  53. package/lib/behaviors/scrollIntoViewingArea.js +35 -18
  54. package/lib/constants.js +43 -39
  55. package/lib/drafts.js +30 -20
  56. package/lib/hooks/index.js +60 -16
  57. package/lib/hooks/useAnchoredPosition.js +40 -32
  58. package/lib/hooks/useCombinedRefs.js +36 -32
  59. package/lib/hooks/useDialog.js +96 -72
  60. package/lib/hooks/useFocusTrap.js +60 -43
  61. package/lib/hooks/useFocusZone.js +50 -54
  62. package/lib/hooks/useOnEscapePress.js +36 -25
  63. package/lib/hooks/useOpenAndCloseFocus.js +34 -22
  64. package/lib/hooks/useProvidedRefOrCreate.js +14 -10
  65. package/lib/hooks/useProvidedStateOrCreate.js +16 -13
  66. package/lib/hooks/useRenderForcingRef.js +17 -13
  67. package/lib/hooks/useResizeObserver.js +18 -15
  68. package/lib/hooks/useSafeTimeout.js +30 -22
  69. package/lib/hooks/useScrollFlash.js +23 -16
  70. package/lib/index.d.ts +2 -0
  71. package/lib/index.js +652 -163
  72. package/lib/polyfills/eventListenerSignal.js +45 -37
  73. package/lib/sx.js +22 -10
  74. package/lib/theme-preval.js +3169 -64
  75. package/lib/theme.js +12 -3
  76. package/lib/utils/iterateFocusableElements.js +85 -63
  77. package/lib/utils/testing.d.ts +2 -1
  78. package/lib/utils/testing.js +29 -0
  79. package/lib/utils/theme.js +47 -33
  80. package/lib/utils/types/AriaRole.js +1 -2
  81. package/lib/utils/types/ComponentProps.js +1 -2
  82. package/lib/utils/types/Flatten.js +1 -2
  83. package/lib/utils/types/KeyPaths.js +1 -2
  84. package/lib/utils/types/MandateProps.js +1 -16
  85. package/lib/utils/types/Merge.js +1 -2
  86. package/lib/utils/types/index.js +69 -16
  87. package/lib/utils/uniqueId.js +8 -5
  88. package/lib/utils/use-force-update.js +14 -8
  89. package/lib/utils/useIsomorphicLayoutEffect.js +11 -8
  90. package/lib/utils/userAgent.js +12 -8
  91. package/lib-esm/ActionList/Item.js +3 -3
  92. package/lib-esm/ActionList2/Item.js +3 -1
  93. package/lib-esm/ActionList2/List.js +1 -2
  94. package/lib-esm/ActionList2/Selection.js +3 -1
  95. package/lib-esm/Autocomplete/Autocomplete.d.ts +1 -0
  96. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +1 -0
  97. package/lib-esm/Button/Button.d.ts +1 -0
  98. package/lib-esm/Button/ButtonClose.d.ts +2 -1
  99. package/lib-esm/Button/ButtonDanger.d.ts +1 -0
  100. package/lib-esm/Button/ButtonInvisible.d.ts +1 -0
  101. package/lib-esm/Button/ButtonOutline.d.ts +1 -0
  102. package/lib-esm/Button/ButtonPrimary.d.ts +1 -0
  103. package/lib-esm/Checkbox.d.ts +29 -0
  104. package/lib-esm/Checkbox.js +44 -0
  105. package/lib-esm/CircleOcticon.d.ts +1 -0
  106. package/lib-esm/Dialog.d.ts +3 -2
  107. package/lib-esm/Dropdown.d.ts +4 -0
  108. package/lib-esm/DropdownMenu/DropdownButton.d.ts +2 -1
  109. package/lib-esm/FilterList.d.ts +1 -0
  110. package/lib-esm/Overlay.d.ts +5 -3
  111. package/lib-esm/Position.d.ts +4 -4
  112. package/lib-esm/SelectMenu/SelectMenu.d.ts +10 -4
  113. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
  114. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
  115. package/lib-esm/TextInputWithTokens.d.ts +1 -0
  116. package/lib-esm/Token/AvatarToken.d.ts +1 -1
  117. package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
  118. package/lib-esm/Token/Token.d.ts +1 -1
  119. package/lib-esm/index.d.ts +2 -0
  120. package/lib-esm/index.js +1 -0
  121. package/lib-esm/theme-preval.js +446 -0
  122. package/lib-esm/utils/testing.d.ts +2 -1
  123. package/lib-esm/utils/testing.js +24 -0
  124. package/package.json +4 -5
  125. package/lib/ActionList/Divider.jsx +0 -29
  126. package/lib/ActionList/Group.jsx +0 -23
  127. package/lib/ActionList/Header.jsx +0 -66
  128. package/lib/ActionList/Item.jsx +0 -288
  129. package/lib/ActionList/List.jsx +0 -138
  130. package/lib/ActionList2/Description.jsx +0 -29
  131. package/lib/ActionList2/Divider.jsx +0 -22
  132. package/lib/ActionList2/Group.jsx +0 -54
  133. package/lib/ActionList2/Header.d.ts +0 -26
  134. package/lib/ActionList2/Header.js +0 -55
  135. package/lib/ActionList2/Header.jsx +0 -36
  136. package/lib/ActionList2/Item.jsx +0 -174
  137. package/lib/ActionList2/LinkItem.jsx +0 -28
  138. package/lib/ActionList2/List.jsx +0 -41
  139. package/lib/ActionList2/Selection.jsx +0 -50
  140. package/lib/ActionList2/Visuals.jsx +0 -48
  141. package/lib/ActionMenu.jsx +0 -73
  142. package/lib/AnchoredOverlay/AnchoredOverlay.jsx +0 -100
  143. package/lib/Autocomplete/Autocomplete.jsx +0 -100
  144. package/lib/Autocomplete/AutocompleteContext.jsx +0 -5
  145. package/lib/Autocomplete/AutocompleteInput.jsx +0 -113
  146. package/lib/Autocomplete/AutocompleteMenu.jsx +0 -190
  147. package/lib/Autocomplete/AutocompleteOverlay.jsx +0 -55
  148. package/lib/Avatar.jsx +0 -34
  149. package/lib/AvatarPair.jsx +0 -29
  150. package/lib/AvatarStack.jsx +0 -151
  151. package/lib/BaseStyles.jsx +0 -65
  152. package/lib/BorderBox.jsx +0 -18
  153. package/lib/Box.jsx +0 -10
  154. package/lib/BranchName.jsx +0 -20
  155. package/lib/Breadcrumbs.jsx +0 -71
  156. package/lib/Button/Button.jsx +0 -40
  157. package/lib/Button/ButtonBase.jsx +0 -33
  158. package/lib/Button/ButtonClose.jsx +0 -53
  159. package/lib/Button/ButtonDanger.jsx +0 -43
  160. package/lib/Button/ButtonGroup.jsx +0 -55
  161. package/lib/Button/ButtonInvisible.jsx +0 -32
  162. package/lib/Button/ButtonOutline.jsx +0 -43
  163. package/lib/Button/ButtonPrimary.jsx +0 -42
  164. package/lib/Button/ButtonStyles.jsx +0 -37
  165. package/lib/Button/ButtonTableList.jsx +0 -46
  166. package/lib/Caret.jsx +0 -93
  167. package/lib/CircleBadge.jsx +0 -42
  168. package/lib/CircleOcticon.jsx +0 -21
  169. package/lib/CounterLabel.jsx +0 -43
  170. package/lib/Details.jsx +0 -21
  171. package/lib/Dialog/ConfirmationDialog.jsx +0 -146
  172. package/lib/Dialog/Dialog.jsx +0 -279
  173. package/lib/Dialog.jsx +0 -129
  174. package/lib/Dropdown.jsx +0 -131
  175. package/lib/DropdownMenu/DropdownButton.jsx +0 -14
  176. package/lib/DropdownMenu/DropdownMenu.jsx +0 -70
  177. package/lib/FilterList.jsx +0 -59
  178. package/lib/FilteredActionList/FilteredActionList.jsx +0 -100
  179. package/lib/FilteredSearch.jsx +0 -28
  180. package/lib/Flash.jsx +0 -69
  181. package/lib/Flex.jsx +0 -15
  182. package/lib/FormGroup.jsx +0 -22
  183. package/lib/Grid.jsx +0 -15
  184. package/lib/Header.jsx +0 -83
  185. package/lib/Heading.jsx +0 -21
  186. package/lib/Label.jsx +0 -82
  187. package/lib/LabelGroup.jsx +0 -18
  188. package/lib/Link.jsx +0 -36
  189. package/lib/NewButton/button-counter.jsx +0 -14
  190. package/lib/NewButton/button.jsx +0 -279
  191. package/lib/Overlay.jsx +0 -154
  192. package/lib/Pagehead.jsx +0 -17
  193. package/lib/Pagination/Pagination.jsx +0 -161
  194. package/lib/Pagination/model.jsx +0 -174
  195. package/lib/PointerBox.jsx +0 -25
  196. package/lib/Popover.jsx +0 -202
  197. package/lib/Portal/Portal.jsx +0 -79
  198. package/lib/Position.jsx +0 -46
  199. package/lib/ProgressBar.jsx +0 -39
  200. package/lib/SelectMenu/SelectMenu.jsx +0 -112
  201. package/lib/SelectMenu/SelectMenuContext.jsx +0 -5
  202. package/lib/SelectMenu/SelectMenuDivider.jsx +0 -42
  203. package/lib/SelectMenu/SelectMenuFilter.jsx +0 -58
  204. package/lib/SelectMenu/SelectMenuFooter.jsx +0 -45
  205. package/lib/SelectMenu/SelectMenuHeader.jsx +0 -42
  206. package/lib/SelectMenu/SelectMenuItem.jsx +0 -142
  207. package/lib/SelectMenu/SelectMenuList.jsx +0 -59
  208. package/lib/SelectMenu/SelectMenuLoadingAnimation.jsx +0 -22
  209. package/lib/SelectMenu/SelectMenuModal.jsx +0 -118
  210. package/lib/SelectMenu/SelectMenuTab.jsx +0 -92
  211. package/lib/SelectMenu/SelectMenuTabPanel.jsx +0 -42
  212. package/lib/SelectMenu/SelectMenuTabs.jsx +0 -57
  213. package/lib/SelectPanel/SelectPanel.jsx +0 -105
  214. package/lib/SideNav.jsx +0 -173
  215. package/lib/Spinner.jsx +0 -35
  216. package/lib/StateLabel.jsx +0 -93
  217. package/lib/StyledOcticon.jsx +0 -18
  218. package/lib/SubNav.jsx +0 -101
  219. package/lib/TabNav.jsx +0 -58
  220. package/lib/Text.jsx +0 -14
  221. package/lib/TextInput.jsx +0 -23
  222. package/lib/TextInputWithTokens.jsx +0 -218
  223. package/lib/ThemeProvider.jsx +0 -130
  224. package/lib/Timeline.jsx +0 -123
  225. package/lib/Token/AvatarToken.jsx +0 -54
  226. package/lib/Token/IssueLabelToken.jsx +0 -125
  227. package/lib/Token/Token.jsx +0 -103
  228. package/lib/Token/TokenBase.jsx +0 -88
  229. package/lib/Token/_RemoveTokenButton.jsx +0 -108
  230. package/lib/Token/_TokenTextContainer.jsx +0 -49
  231. package/lib/Tooltip.jsx +0 -246
  232. package/lib/Truncate.jsx +0 -24
  233. package/lib/UnderlineNav.jsx +0 -88
  234. package/lib/_TextInputWrapper.jsx +0 -120
  235. package/lib/_UnstyledTextInput.jsx +0 -22
  236. package/lib/hooks/useDetails.jsx +0 -39
  237. package/lib/hooks/useOnOutsideClick.jsx +0 -61
  238. package/lib/hooks/useOverlay.jsx +0 -15
  239. package/lib/utils/create-slots.jsx +0 -65
  240. package/lib/utils/deprecate.jsx +0 -59
  241. package/lib/utils/isNumeric.jsx +0 -7
  242. package/lib/utils/ssr.jsx +0 -6
  243. package/lib/utils/test-deprecations.jsx +0 -20
  244. package/lib/utils/test-helpers.jsx +0 -8
  245. package/lib/utils/test-matchers.jsx +0 -100
  246. package/lib/utils/testing.jsx +0 -206
  247. package/lib-esm/ActionList2/Header.d.ts +0 -26
  248. package/lib-esm/ActionList2/Header.js +0 -44
package/lib/SideNav.jsx DELETED
@@ -1,173 +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 constants_1 = require("./constants");
26
- const styled_components_1 = __importStar(require("styled-components"));
27
- const Box_1 = __importDefault(require("./Box"));
28
- const Link_1 = __importDefault(require("./Link"));
29
- const react_1 = __importDefault(require("react"));
30
- const classnames_1 = __importDefault(require("classnames"));
31
- const sx_1 = __importDefault(require("./sx"));
32
- function SideNavBase({ variant, className, bordered, children, 'aria-label': ariaLabel }) {
33
- const variantClassName = variant === 'lightweight' ? 'lightweight' : 'normal';
34
- const newClassName = classnames_1.default(className, `variant-${variantClassName}`);
35
- return (<Box_1.default borderWidth={bordered ? '1px' : 0} borderStyle="solid" borderColor="border.default" borderRadius={2} as="nav" className={newClassName} aria-label={ariaLabel}>
36
- {children}
37
- </Box_1.default>);
38
- }
39
- const SideNav = styled_components_1.default(SideNavBase) `
40
- background-color: ${constants_1.get('colors.canvas.subtle')};
41
-
42
- ${props => props.bordered &&
43
- styled_components_1.css `
44
- // Remove duplicate borders from nested SideNavs
45
- & > & {
46
- border-left: 0;
47
- border-right: 0;
48
- border-bottom: 0;
49
- }
50
- `}
51
-
52
- ${sx_1.default};
53
- `;
54
- // used for variant normal hover, focus pseudo selectors
55
- const CommonAccessibilityVariantNormalStyles = styled_components_1.css `
56
- background-color: ${constants_1.get('colors.neutral.subtle')};
57
- outline: none;
58
- text-decoration: none;
59
- `;
60
- // used for light weight hover, focus pseudo selectors
61
- const CommonAccessibilityVariantLightWeightStyles = styled_components_1.css `
62
- color: ${constants_1.get('colors.fg.default')};
63
- text-decoration: none;
64
- outline: none;
65
- `;
66
- const SideNavLink = styled_components_1.default(Link_1.default).attrs(props => {
67
- const isReactRouter = typeof props.to === 'string';
68
- if (isReactRouter || props.selected) {
69
- // according to their docs, NavLink supports aria-current:
70
- // https://reacttraining.com/react-router/web/api/NavLink/aria-current-string
71
- return { 'aria-current': 'page' };
72
- }
73
- else {
74
- return {};
75
- }
76
- }) `
77
- position: relative;
78
- display: block;
79
- ${props => props.variant === 'full' &&
80
- styled_components_1.css `
81
- display: flex;
82
- align-items: center;
83
- justify-content: space-between;
84
- `}
85
- width: 100%;
86
- text-align: left;
87
- font-size: ${constants_1.get('fontSizes.1')};
88
-
89
- & > ${SideNav} {
90
- border-bottom: none;
91
- }
92
-
93
- ${SideNav}.variant-normal > & {
94
- color: ${constants_1.get('colors.fg.default')};
95
- padding: ${constants_1.get('space.3')};
96
- border: 0;
97
- border-top: ${constants_1.get('borderWidths.1')} solid ${constants_1.get('colors.border.muted')};
98
-
99
- &:first-child {
100
- border-top: 0;
101
- border-top-right-radius: ${constants_1.get('radii.2')};
102
- border-top-left-radius: ${constants_1.get('radii.2')};
103
- }
104
-
105
- &:last-child {
106
- border-bottom-right-radius: ${constants_1.get('radii.2')};
107
- border-bottom-left-radius: ${constants_1.get('radii.2')};
108
- }
109
-
110
- // Bar on the left
111
- &::before {
112
- position: absolute;
113
- top: 0;
114
- bottom: 0;
115
- left: 0;
116
- z-index: 1;
117
- width: 3px;
118
- pointer-events: none;
119
- content: '';
120
- }
121
-
122
- &:hover {
123
- ${CommonAccessibilityVariantNormalStyles}
124
- }
125
-
126
- &:focus {
127
- ${CommonAccessibilityVariantNormalStyles}
128
- box-shadow: ${constants_1.get('shadows.primer.shadow.focus')};
129
- z-index: 1;
130
- }
131
-
132
- &[aria-current='page'],
133
- &[aria-selected='true'] {
134
- background-color: ${constants_1.get('colors.sidenav.selectedBg')};
135
-
136
- // Bar on the left
137
- &::before {
138
- background-color: ${constants_1.get('colors.primer.border.active')};
139
- }
140
- }
141
- }
142
-
143
- ${SideNav}.variant-lightweight > & {
144
- padding: ${constants_1.get('space.1')} 0;
145
- color: ${constants_1.get('colors.accent.fg')};
146
-
147
- &:hover {
148
- ${CommonAccessibilityVariantLightWeightStyles}
149
- }
150
-
151
- &:focus {
152
- ${CommonAccessibilityVariantLightWeightStyles}
153
- box-shadow: ${constants_1.get('shadows.primer.shadow.focus')};
154
- z-index: 1;
155
- }
156
-
157
- &[aria-current='page'],
158
- &[aria-selected='true'] {
159
- color: ${constants_1.get('colors.fg.default')};
160
- font-weight: ${constants_1.get('fontWeights.semibold')};
161
- }
162
- }
163
-
164
- ${sx_1.default};
165
- `;
166
- SideNav.defaultProps = {
167
- variant: 'normal'
168
- };
169
- SideNavLink.defaultProps = {
170
- variant: 'normal'
171
- };
172
- SideNavLink.displayName = 'SideNav.Link';
173
- exports.default = Object.assign(SideNav, { Link: SideNavLink });
package/lib/Spinner.jsx DELETED
@@ -1,35 +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 react_1 = __importDefault(require("react"));
7
- const styled_components_1 = __importDefault(require("styled-components"));
8
- const constants_1 = require("./constants");
9
- const sx_1 = __importDefault(require("./sx"));
10
- const sizeMap = {
11
- small: '16px',
12
- medium: '32px',
13
- large: '64px'
14
- };
15
- function Spinner({ size: sizeKey = 'medium', ...props }) {
16
- const size = sizeMap[sizeKey];
17
- return (<svg height={size} width={size} viewBox="0 0 16 16" fill="none" {...props}>
18
- <circle cx="8" cy="8" r="7" stroke="currentColor" strokeOpacity="0.25" strokeWidth="2" vectorEffect="non-scaling-stroke"/>
19
- <path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" strokeWidth="2" strokeLinecap="round" vectorEffect="non-scaling-stroke"/>
20
- </svg>);
21
- }
22
- const StyledSpinner = styled_components_1.default(Spinner) `
23
- @keyframes rotate-keyframes {
24
- 100% {
25
- transform: rotate(360deg);
26
- }
27
- }
28
-
29
- animation: rotate-keyframes 1s linear infinite;
30
-
31
- ${constants_1.COMMON}
32
- ${sx_1.default}
33
- `;
34
- StyledSpinner.displayName = 'Spinner';
35
- exports.default = StyledSpinner;
@@ -1,93 +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 octicons_react_1 = require("@primer/octicons-react");
7
- const react_1 = __importDefault(require("react"));
8
- const styled_components_1 = __importDefault(require("styled-components"));
9
- const styled_system_1 = require("styled-system");
10
- const constants_1 = require("./constants");
11
- const StyledOcticon_1 = __importDefault(require("./StyledOcticon"));
12
- const sx_1 = __importDefault(require("./sx"));
13
- const octiconMap = {
14
- issueOpened: octicons_react_1.IssueOpenedIcon,
15
- pullOpened: octicons_react_1.GitPullRequestIcon,
16
- issueClosed: octicons_react_1.IssueClosedIcon,
17
- pullClosed: octicons_react_1.GitPullRequestIcon,
18
- pullMerged: octicons_react_1.GitMergeIcon,
19
- draft: octicons_react_1.GitPullRequestIcon,
20
- issueDraft: octicons_react_1.IssueDraftIcon
21
- };
22
- const colorVariants = styled_system_1.variant({
23
- prop: 'status',
24
- variants: {
25
- issueClosed: {
26
- backgroundColor: 'danger.emphasis',
27
- color: 'fg.onEmphasis'
28
- },
29
- pullClosed: {
30
- backgroundColor: 'danger.emphasis',
31
- color: 'fg.onEmphasis'
32
- },
33
- pullMerged: {
34
- backgroundColor: 'done.emphasis',
35
- color: 'fg.onEmphasis'
36
- },
37
- issueOpened: {
38
- backgroundColor: 'success.emphasis',
39
- color: 'fg.onEmphasis'
40
- },
41
- pullOpened: {
42
- backgroundColor: 'success.emphasis',
43
- color: 'fg.onEmphasis'
44
- },
45
- draft: {
46
- backgroundColor: 'neutral.emphasis',
47
- color: 'fg.onEmphasis'
48
- },
49
- issueDraft: {
50
- backgroundColor: 'neutral.emphasis',
51
- color: 'fg.onEmphasis'
52
- }
53
- }
54
- });
55
- const sizeVariants = styled_system_1.variant({
56
- prop: 'variant',
57
- variants: {
58
- small: {
59
- paddingX: 2,
60
- paddingY: 1,
61
- fontSize: 0
62
- },
63
- normal: {
64
- paddingX: '12px',
65
- paddingY: 2,
66
- fontSize: 1
67
- }
68
- }
69
- });
70
- const StateLabelBase = styled_components_1.default.span `
71
- display: inline-flex;
72
- align-items: center;
73
- font-weight: ${constants_1.get('fontWeights.bold')};
74
- line-height: 16px;
75
- color: ${constants_1.get('colors.canvas.default')};
76
- text-align: center;
77
- border-radius: ${constants_1.get('radii.3')};
78
- ${colorVariants};
79
- ${sizeVariants};
80
- ${sx_1.default};
81
- `;
82
- function StateLabel({ children, status, variant: variantProp, ...rest }) {
83
- const octiconProps = variantProp === 'small' ? { width: '1em' } : {};
84
- return (<StateLabelBase {...rest} variant={variantProp} status={status}>
85
- {/* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition */}
86
- {status && <StyledOcticon_1.default {...octiconProps} icon={octiconMap[status] || octicons_react_1.QuestionIcon} sx={{ mr: 1 }}/>}
87
- {children}
88
- </StateLabelBase>);
89
- }
90
- StateLabel.defaultProps = {
91
- variant: 'normal'
92
- };
93
- exports.default = StateLabel;
@@ -1,18 +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 react_1 = __importDefault(require("react"));
7
- const styled_components_1 = __importDefault(require("styled-components"));
8
- const sx_1 = __importDefault(require("./sx"));
9
- function Octicon({ icon: IconComponent, ...rest }) {
10
- return <IconComponent {...rest}/>;
11
- }
12
- const StyledOcticon = styled_components_1.default(Octicon) `
13
- ${sx_1.default}
14
- `;
15
- StyledOcticon.defaultProps = {
16
- size: 16
17
- };
18
- exports.default = StyledOcticon;
package/lib/SubNav.jsx DELETED
@@ -1,101 +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 = 'SubNav-item';
12
- const SELECTED_CLASS = 'selected';
13
- const SubNavBase = styled_components_1.default.nav `
14
- display: flex;
15
- justify-content: space-between;
16
-
17
- .SubNav-body {
18
- display: flex;
19
- margin-bottom: -1px;
20
-
21
- > * {
22
- margin-left: ${constants_1.get('space.2')};
23
- }
24
-
25
- > *:first-child {
26
- margin-left: 0;
27
- }
28
- }
29
-
30
- .SubNav-actions {
31
- align-self: center;
32
- }
33
-
34
- ${sx_1.default};
35
- `;
36
- function SubNav({ actions, className, children, label, ...rest }) {
37
- const classes = classnames_1.default(className, 'SubNav');
38
- return (<SubNavBase className={classes} aria-label={label} {...rest}>
39
- <div className="SubNav-body">{children}</div>
40
- {actions && <div className="SubNav-actions">{actions}</div>}
41
- </SubNavBase>);
42
- }
43
- const SubNavLinks = styled_components_1.default.div `
44
- display: flex;
45
- ${sx_1.default};
46
- `;
47
- const SubNavLink = styled_components_1.default.a.attrs(props => ({
48
- activeClassName: typeof props.to === 'string' ? 'selected' : '',
49
- className: classnames_1.default(ITEM_CLASS, props.selected && SELECTED_CLASS, props.className)
50
- })) `
51
- padding-left: ${constants_1.get('space.3')};
52
- padding-right: ${constants_1.get('space.3')};
53
- font-weight: ${constants_1.get('fontWeights.semibold')};
54
- font-size: ${constants_1.get('fontSizes.1')};
55
- line-height: 20px; //custom value for SubNav
56
- min-height: 34px; //custom value for SubNav
57
- color: ${constants_1.get('colors.fg.default')};
58
- text-align: center;
59
- text-decoration: none;
60
- border-top: 1px solid ${constants_1.get('colors.border.default')};
61
- border-bottom: 1px solid ${constants_1.get('colors.border.default')};
62
- border-right: 1px solid ${constants_1.get('colors.border.default')};
63
- display: flex;
64
- align-items: center;
65
-
66
- &:first-of-type {
67
- border-top-left-radius: ${constants_1.get('radii.2')};
68
- border-bottom-left-radius: ${constants_1.get('radii.2')};
69
- border-left: 1px solid ${constants_1.get('colors.border.default')};
70
- }
71
-
72
- &:last-of-type {
73
- border-top-right-radius: ${constants_1.get('radii.2')};
74
- border-bottom-right-radius: ${constants_1.get('radii.2')};
75
- }
76
-
77
- &:hover,
78
- &:focus {
79
- text-decoration: none;
80
- background-color: ${constants_1.get('colors.canvas.subtle')};
81
- transition: 0.2s ease;
82
-
83
- .SubNav-octicon {
84
- color: ${constants_1.get('colors.fg.muted')};
85
- }
86
- }
87
-
88
- &.selected {
89
- color: ${constants_1.get('colors.fg.onEmphasis')};
90
- background-color: ${constants_1.get('colors.accent.emphasis')};
91
- border-color: ${constants_1.get('colors.accent.emphasis')};
92
- .SubNav-octicon {
93
- color: ${constants_1.get('colors.fg.onEmphasis')};
94
- }
95
- }
96
-
97
- ${sx_1.default};
98
- `;
99
- SubNavLink.displayName = 'SubNav.Link';
100
- SubNavLinks.displayName = 'SubNav.Links';
101
- exports.default = Object.assign(SubNav, { Link: SubNavLink, Links: SubNavLinks });
package/lib/TabNav.jsx DELETED
@@ -1,58 +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 = 'TabNav-item';
12
- const SELECTED_CLASS = 'selected';
13
- const TabNavBase = styled_components_1.default.div `
14
- margin-top: 0;
15
- border-bottom: 1px solid ${constants_1.get('colors.border.default')};
16
- ${sx_1.default}
17
- `;
18
- const TabNavBody = styled_components_1.default.nav `
19
- display: flex;
20
- margin-bottom: -1px;
21
- overflow: auto;
22
- `;
23
- function TabNav({ children, 'aria-label': ariaLabel, ...rest }) {
24
- return (<TabNavBase {...rest}>
25
- <TabNavBody aria-label={ariaLabel}>{children}</TabNavBody>
26
- </TabNavBase>);
27
- }
28
- const TabNavLink = styled_components_1.default.a.attrs(props => ({
29
- activeClassName: typeof props.to === 'string' ? 'selected' : '',
30
- className: classnames_1.default(ITEM_CLASS, props.selected && SELECTED_CLASS, props.className)
31
- })) `
32
- padding: 8px 12px;
33
- font-size: ${constants_1.get('fontSizes.1')};
34
- line-height: 20px;
35
- color: ${constants_1.get('colors.fg.default')};
36
- text-decoration: none;
37
- background-color: transparent;
38
- border: 1px solid transparent;
39
- border-bottom: 0;
40
-
41
- &:hover,
42
- &:focus {
43
- color: ${constants_1.get('colors.fg.default')};
44
- text-decoration: none;
45
- }
46
-
47
- &.selected {
48
- color: ${constants_1.get('colors.fg.default')};
49
- border-color: ${constants_1.get('colors.border.default')};
50
- border-top-right-radius: ${constants_1.get('radii.2')};
51
- border-top-left-radius: ${constants_1.get('radii.2')};
52
- background-color: ${constants_1.get('colors.canvas.default')};
53
- }
54
-
55
- ${sx_1.default};
56
- `;
57
- TabNavLink.displayName = 'TabNav.Link';
58
- exports.default = Object.assign(TabNav, { Link: TabNavLink });
package/lib/Text.jsx DELETED
@@ -1,14 +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 constants_1 = require("./constants");
8
- const sx_1 = __importDefault(require("./sx"));
9
- const Text = styled_components_1.default.span `
10
- ${constants_1.TYPOGRAPHY};
11
- ${constants_1.COMMON};
12
- ${sx_1.default};
13
- `;
14
- exports.default = Text;
package/lib/TextInput.jsx DELETED
@@ -1,23 +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 _UnstyledTextInput_1 = __importDefault(require("./_UnstyledTextInput"));
9
- const _TextInputWrapper_1 = __importDefault(require("./_TextInputWrapper"));
10
- // using forwardRef is important so that other components (ex. SelectMenu) can autofocus the input
11
- const TextInput = react_1.default.forwardRef(({ icon: IconComponent, block, className, contrast, disabled, sx: sxProp, theme, width: widthProp, minWidth: minWidthProp, maxWidth: maxWidthProp, variant: variantProp, ...inputProps }, ref) => {
12
- // this class is necessary to style FilterSearch, plz no touchy!
13
- const wrapperClasses = classnames_1.default(className, 'TextInput-wrapper');
14
- return (<_TextInputWrapper_1.default block={block} className={wrapperClasses} contrast={contrast} disabled={disabled} hasIcon={!!IconComponent} sx={sxProp} theme={theme} width={widthProp} minWidth={minWidthProp} maxWidth={maxWidthProp} variant={variantProp}>
15
- {IconComponent && <IconComponent className="TextInput-icon"/>}
16
- <_UnstyledTextInput_1.default ref={ref} disabled={disabled} {...inputProps}/>
17
- </_TextInputWrapper_1.default>);
18
- });
19
- TextInput.defaultProps = {
20
- type: 'text'
21
- };
22
- TextInput.displayName = 'TextInput';
23
- exports.default = TextInput;