@primer/components 0.0.0-202182720420 → 0.0.0-202182722258

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 (246) hide show
  1. package/CHANGELOG.md +2 -40
  2. package/dist/browser.esm.js +627 -670
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +389 -432
  5. package/dist/browser.umd.js.map +1 -1
  6. package/lib/ActionList/Divider.js +1 -1
  7. package/lib/ActionList/Header.js +2 -2
  8. package/lib/ActionList/Item.js +13 -13
  9. package/lib/ActionList/List.js +1 -1
  10. package/lib/AnchoredOverlay/AnchoredOverlay.js +2 -2
  11. package/lib/Autocomplete/Autocomplete.d.ts +26 -0
  12. package/lib/Autocomplete/Autocomplete.js +55 -0
  13. package/lib/Autocomplete/AutocompleteContext.d.ts +13 -0
  14. package/lib/Autocomplete/AutocompleteContext.js +15 -0
  15. package/lib/Autocomplete/AutocompleteInput.d.ts +9 -0
  16. package/lib/Autocomplete/AutocompleteInput.js +139 -0
  17. package/lib/Autocomplete/AutocompleteMenu.d.ts +67 -0
  18. package/lib/Autocomplete/AutocompleteMenu.js +284 -0
  19. package/lib/Autocomplete/index.d.ts +2 -0
  20. package/lib/Autocomplete/index.js +15 -0
  21. package/lib/Avatar.d.ts +0 -4
  22. package/lib/AvatarPair.js +1 -1
  23. package/lib/AvatarStack.d.ts +8 -4
  24. package/lib/AvatarStack.js +7 -6
  25. package/lib/Badge/Badge.d.ts +8 -0
  26. package/lib/Badge/Badge.js +59 -0
  27. package/lib/Badge/BadgeState.d.ts +13 -0
  28. package/lib/Badge/BadgeState.js +51 -0
  29. package/lib/Badge/_badgeStyleUtils.d.ts +3 -0
  30. package/lib/Badge/_badgeStyleUtils.js +39 -0
  31. package/lib/BranchName.js +1 -1
  32. package/lib/Breadcrumb.d.ts +23 -0
  33. package/lib/{Breadcrumbs.js → Breadcrumb.js} +23 -33
  34. package/lib/Button/Button.d.ts +1 -0
  35. package/lib/Button/Button.js +1 -1
  36. package/lib/Button/ButtonClose.d.ts +2 -1
  37. package/lib/Button/ButtonClose.js +1 -1
  38. package/lib/Button/ButtonDanger.d.ts +1 -0
  39. package/lib/Button/ButtonInvisible.d.ts +1 -0
  40. package/lib/Button/ButtonInvisible.js +1 -1
  41. package/lib/Button/ButtonOutline.d.ts +1 -0
  42. package/lib/Button/ButtonPrimary.d.ts +1 -0
  43. package/lib/Button/ButtonTableList.js +1 -1
  44. package/lib/CircleBadge.js +1 -1
  45. package/lib/CircleOcticon.d.ts +1 -0
  46. package/lib/CircleOcticon.js +1 -1
  47. package/lib/CounterLabel.js +2 -2
  48. package/lib/Dialog/ConfirmationDialog.js +1 -1
  49. package/lib/Dialog/Dialog.js +9 -9
  50. package/lib/Dialog.d.ts +3 -2
  51. package/lib/Dialog.js +4 -4
  52. package/lib/Dropdown.d.ts +4 -0
  53. package/lib/Dropdown.js +2 -2
  54. package/lib/DropdownMenu/DropdownButton.d.ts +2 -1
  55. package/lib/DropdownStyles.js +6 -6
  56. package/lib/FilterList.d.ts +1 -0
  57. package/lib/FilterList.js +1 -1
  58. package/lib/FilteredActionList/FilteredActionList.js +8 -34
  59. package/lib/Flash.js +1 -1
  60. package/lib/Label.js +2 -2
  61. package/lib/Link.js +1 -1
  62. package/lib/Overlay.d.ts +2 -1
  63. package/lib/Overlay.js +11 -6
  64. package/lib/Pagehead.js +1 -1
  65. package/lib/Pagination/Pagination.js +1 -1
  66. package/lib/Popover.js +1 -1
  67. package/lib/Position.d.ts +4 -4
  68. package/lib/ProgressBar.js +1 -1
  69. package/lib/SelectMenu/SelectMenu.d.ts +344 -15
  70. package/lib/SelectMenu/SelectMenuDivider.js +1 -1
  71. package/lib/SelectMenu/SelectMenuFilter.d.ts +1 -1
  72. package/lib/SelectMenu/SelectMenuFilter.js +1 -1
  73. package/lib/SelectMenu/SelectMenuFooter.js +1 -1
  74. package/lib/SelectMenu/SelectMenuHeader.js +2 -2
  75. package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
  76. package/lib/SelectMenu/SelectMenuItem.js +1 -1
  77. package/lib/SelectMenu/SelectMenuList.js +1 -1
  78. package/lib/SelectMenu/SelectMenuLoadingAnimation.js +1 -1
  79. package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
  80. package/lib/SelectMenu/SelectMenuModal.js +2 -2
  81. package/lib/SelectMenu/SelectMenuTab.js +1 -1
  82. package/lib/SelectMenu/SelectMenuTabPanel.js +1 -1
  83. package/lib/SelectPanel/SelectPanel.js +2 -3
  84. package/lib/SideNav.js +5 -5
  85. package/lib/StateLabel.js +1 -1
  86. package/lib/SubNav.js +1 -1
  87. package/lib/TabNav.js +2 -2
  88. package/lib/TextInput.d.ts +10 -7
  89. package/lib/TextInput.js +24 -29
  90. package/lib/TextInputTokens.d.ts +43 -0
  91. package/lib/TextInputTokens.js +227 -0
  92. package/lib/TextInputWithTokens.d.ts +41 -0
  93. package/lib/TextInputWithTokens.js +396 -0
  94. package/lib/Timeline.d.ts +1 -0
  95. package/lib/Timeline.js +19 -16
  96. package/lib/Token/Token.d.ts +7 -0
  97. package/lib/Token/Token.js +63 -0
  98. package/lib/Token/TokenBase.d.ts +16 -0
  99. package/lib/Token/TokenBase.js +76 -0
  100. package/lib/Token/TokenLabel.d.ts +10 -0
  101. package/lib/Token/TokenLabel.js +115 -0
  102. package/lib/Token/TokenProfile.d.ts +7 -0
  103. package/lib/Token/TokenProfile.js +45 -0
  104. package/lib/Token/_RemoveTokenButton.d.ts +3 -0
  105. package/lib/Token/_RemoveTokenButton.js +43 -0
  106. package/lib/Token/_tokenButtonUtils.d.ts +9 -0
  107. package/lib/Token/_tokenButtonUtils.js +42 -0
  108. package/lib/Tooltip.js +1 -1
  109. package/lib/UnderlineNav.js +2 -2
  110. package/lib/_UnstyledTextInput.d.ts +2 -0
  111. package/lib/_UnstyledTextInput.js +20 -0
  112. package/lib/hooks/useOverlay.d.ts +2 -1
  113. package/lib/hooks/useOverlay.js +11 -6
  114. package/lib/index.d.ts +2 -3
  115. package/lib/index.js +2 -22
  116. package/lib/theme-preval.d.ts +6 -12
  117. package/lib/theme-preval.js +0 -940
  118. package/lib/utils/scrollIntoViewingArea.d.ts +1 -0
  119. package/lib/utils/scrollIntoViewingArea.js +39 -0
  120. package/lib/utils/testing.d.ts +0 -1854
  121. package/lib/utils/types.d.ts +3 -0
  122. package/lib/utils/uniqueId.js +0 -1
  123. package/lib-esm/ActionList/Divider.js +1 -1
  124. package/lib-esm/ActionList/Header.js +2 -2
  125. package/lib-esm/ActionList/Item.js +14 -14
  126. package/lib-esm/ActionList/List.js +1 -1
  127. package/lib-esm/AnchoredOverlay/AnchoredOverlay.js +3 -3
  128. package/lib-esm/Autocomplete/Autocomplete.d.ts +26 -0
  129. package/lib-esm/Autocomplete/Autocomplete.js +36 -0
  130. package/lib-esm/Autocomplete/AutocompleteContext.d.ts +13 -0
  131. package/lib-esm/Autocomplete/AutocompleteContext.js +6 -0
  132. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +9 -0
  133. package/lib-esm/Autocomplete/AutocompleteInput.js +120 -0
  134. package/lib-esm/Autocomplete/AutocompleteMenu.d.ts +67 -0
  135. package/lib-esm/Autocomplete/AutocompleteMenu.js +258 -0
  136. package/lib-esm/Autocomplete/index.d.ts +2 -0
  137. package/lib-esm/Autocomplete/index.js +1 -0
  138. package/lib-esm/Avatar.d.ts +0 -4
  139. package/lib-esm/AvatarPair.js +1 -1
  140. package/lib-esm/AvatarStack.d.ts +8 -4
  141. package/lib-esm/AvatarStack.js +8 -7
  142. package/lib-esm/Badge/Badge.d.ts +8 -0
  143. package/lib-esm/Badge/Badge.js +44 -0
  144. package/lib-esm/Badge/BadgeState.d.ts +13 -0
  145. package/lib-esm/Badge/BadgeState.js +40 -0
  146. package/lib-esm/Badge/_badgeStyleUtils.d.ts +3 -0
  147. package/lib-esm/Badge/_badgeStyleUtils.js +29 -0
  148. package/lib-esm/BranchName.js +1 -1
  149. package/lib-esm/Breadcrumb.d.ts +23 -0
  150. package/lib-esm/{Breadcrumbs.js → Breadcrumb.js} +21 -30
  151. package/lib-esm/Button/Button.d.ts +1 -0
  152. package/lib-esm/Button/Button.js +1 -1
  153. package/lib-esm/Button/ButtonClose.d.ts +2 -1
  154. package/lib-esm/Button/ButtonClose.js +1 -1
  155. package/lib-esm/Button/ButtonDanger.d.ts +1 -0
  156. package/lib-esm/Button/ButtonInvisible.d.ts +1 -0
  157. package/lib-esm/Button/ButtonInvisible.js +1 -1
  158. package/lib-esm/Button/ButtonOutline.d.ts +1 -0
  159. package/lib-esm/Button/ButtonPrimary.d.ts +1 -0
  160. package/lib-esm/Button/ButtonTableList.js +1 -1
  161. package/lib-esm/CircleBadge.js +1 -1
  162. package/lib-esm/CircleOcticon.d.ts +1 -0
  163. package/lib-esm/CircleOcticon.js +1 -1
  164. package/lib-esm/CounterLabel.js +2 -2
  165. package/lib-esm/Dialog/ConfirmationDialog.js +1 -1
  166. package/lib-esm/Dialog/Dialog.js +8 -8
  167. package/lib-esm/Dialog.d.ts +3 -2
  168. package/lib-esm/Dialog.js +4 -4
  169. package/lib-esm/Dropdown.d.ts +4 -0
  170. package/lib-esm/Dropdown.js +2 -2
  171. package/lib-esm/DropdownMenu/DropdownButton.d.ts +2 -1
  172. package/lib-esm/DropdownStyles.js +6 -6
  173. package/lib-esm/FilterList.d.ts +1 -0
  174. package/lib-esm/FilterList.js +1 -1
  175. package/lib-esm/FilteredActionList/FilteredActionList.js +6 -34
  176. package/lib-esm/Flash.js +1 -1
  177. package/lib-esm/Label.js +2 -2
  178. package/lib-esm/Link.js +1 -1
  179. package/lib-esm/Overlay.d.ts +2 -1
  180. package/lib-esm/Overlay.js +9 -6
  181. package/lib-esm/Pagehead.js +1 -1
  182. package/lib-esm/Pagination/Pagination.js +1 -1
  183. package/lib-esm/Popover.js +1 -1
  184. package/lib-esm/Position.d.ts +4 -4
  185. package/lib-esm/ProgressBar.js +1 -1
  186. package/lib-esm/SelectMenu/SelectMenu.d.ts +344 -15
  187. package/lib-esm/SelectMenu/SelectMenuDivider.js +1 -1
  188. package/lib-esm/SelectMenu/SelectMenuFilter.d.ts +1 -1
  189. package/lib-esm/SelectMenu/SelectMenuFilter.js +1 -1
  190. package/lib-esm/SelectMenu/SelectMenuFooter.js +1 -1
  191. package/lib-esm/SelectMenu/SelectMenuHeader.js +2 -2
  192. package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
  193. package/lib-esm/SelectMenu/SelectMenuItem.js +1 -1
  194. package/lib-esm/SelectMenu/SelectMenuList.js +1 -1
  195. package/lib-esm/SelectMenu/SelectMenuLoadingAnimation.js +1 -1
  196. package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
  197. package/lib-esm/SelectMenu/SelectMenuModal.js +2 -2
  198. package/lib-esm/SelectMenu/SelectMenuTab.js +1 -1
  199. package/lib-esm/SelectMenu/SelectMenuTabPanel.js +1 -1
  200. package/lib-esm/SelectPanel/SelectPanel.js +2 -3
  201. package/lib-esm/SideNav.js +5 -5
  202. package/lib-esm/StateLabel.js +1 -1
  203. package/lib-esm/SubNav.js +1 -1
  204. package/lib-esm/TabNav.js +2 -2
  205. package/lib-esm/TextInput.d.ts +10 -7
  206. package/lib-esm/TextInput.js +23 -29
  207. package/lib-esm/TextInputTokens.d.ts +43 -0
  208. package/lib-esm/TextInputTokens.js +200 -0
  209. package/lib-esm/TextInputWithTokens.d.ts +41 -0
  210. package/lib-esm/TextInputWithTokens.js +361 -0
  211. package/lib-esm/Timeline.d.ts +1 -0
  212. package/lib-esm/Timeline.js +17 -12
  213. package/lib-esm/Token/Token.d.ts +7 -0
  214. package/lib-esm/Token/Token.js +44 -0
  215. package/lib-esm/Token/TokenBase.d.ts +16 -0
  216. package/lib-esm/Token/TokenBase.js +56 -0
  217. package/lib-esm/Token/TokenLabel.d.ts +10 -0
  218. package/lib-esm/Token/TokenLabel.js +99 -0
  219. package/lib-esm/Token/TokenProfile.d.ts +7 -0
  220. package/lib-esm/Token/TokenProfile.js +28 -0
  221. package/lib-esm/Token/_RemoveTokenButton.d.ts +3 -0
  222. package/lib-esm/Token/_RemoveTokenButton.js +28 -0
  223. package/lib-esm/Token/_tokenButtonUtils.d.ts +9 -0
  224. package/lib-esm/Token/_tokenButtonUtils.js +26 -0
  225. package/lib-esm/Tooltip.js +1 -1
  226. package/lib-esm/UnderlineNav.js +2 -2
  227. package/lib-esm/_UnstyledTextInput.d.ts +2 -0
  228. package/lib-esm/_UnstyledTextInput.js +7 -0
  229. package/lib-esm/hooks/useOverlay.d.ts +2 -1
  230. package/lib-esm/hooks/useOverlay.js +11 -6
  231. package/lib-esm/index.d.ts +2 -3
  232. package/lib-esm/index.js +2 -3
  233. package/lib-esm/theme-preval.d.ts +6 -12
  234. package/lib-esm/theme-preval.js +0 -940
  235. package/lib-esm/utils/scrollIntoViewingArea.d.ts +1 -0
  236. package/lib-esm/utils/scrollIntoViewingArea.js +30 -0
  237. package/lib-esm/utils/testing.d.ts +0 -1854
  238. package/lib-esm/utils/types.d.ts +3 -0
  239. package/lib-esm/utils/uniqueId.js +0 -1
  240. package/package.json +14 -14
  241. package/lib/Breadcrumbs.d.ts +0 -40
  242. package/lib/utils/ssr.d.ts +0 -1
  243. package/lib/utils/ssr.js +0 -19
  244. package/lib-esm/Breadcrumbs.d.ts +0 -40
  245. package/lib-esm/utils/ssr.d.ts +0 -1
  246. package/lib-esm/utils/ssr.js +0 -1
@@ -1,3 +1,5 @@
1
+ import _styled from "styled-components";
2
+
1
3
  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); }
2
4
 
3
5
  import classnames from 'classnames';
@@ -15,22 +17,23 @@ const TimelineItem = styled(Box).attrs(props => ({
15
17
  })).withConfig({
16
18
  displayName: "Timeline__TimelineItem",
17
19
  componentId: "c4dq2e-1"
18
- })(["display:flex;position:relative;padding:", " 0;margin-left:", ";&::before{position:absolute;top:0;bottom:0;left:0;display:block;width:2px;content:'';background-color:", ";}", " ", ";", ";"], get('space.3'), get('space.3'), get('colors.border.muted'), props => props.condensed && css(["padding-top:", ";padding-bottom:0;&:last-child{padding-bottom:", ";}.TimelineItem-Badge{height:16px;margin-top:", ";margin-bottom:", ";color:", ";background-color:", ";border:0;}"], get('space.1'), get('space.3'), get('space.2'), get('space.2'), get('colors.fg.muted'), get('colors.canvas.default')), COMMON, sx);
20
+ })(["display:flex;position:relative;padding:", " 0;margin-left:", ";&::before{position:absolute;top:0;bottom:0;left:0;display:block;width:2px;content:'';background-color:", ";}", " ", ";", ";"], get('space.3'), get('space.3'), get('colors.border.secondary'), props => props.condensed && css(["padding-top:", ";padding-bottom:0;&:last-child{padding-bottom:", ";}.TimelineItem-Badge{height:16px;margin-top:", ";margin-bottom:", ";color:", ";background-color:", ";border:0;}"], get('space.1'), get('space.3'), get('space.2'), get('space.2'), get('colors.icon.tertiary'), get('colors.bg.canvas')), COMMON, sx);
21
+
22
+ var _StyledBox = styled(Box).withConfig({
23
+ displayName: "Timeline___StyledBox",
24
+ componentId: "c4dq2e-2"
25
+ })(["border-radius:50%;border:2px solid ", ";"], p => p._css);
19
26
 
20
27
  const TimelineBadge = props => {
21
28
  return /*#__PURE__*/React.createElement(Box, {
22
29
  position: "relative",
23
30
  zIndex: 1
24
- }, /*#__PURE__*/React.createElement(Box, _extends({
31
+ }, /*#__PURE__*/React.createElement(_StyledBox, _extends({
25
32
  display: "flex",
26
33
  className: classnames(props.className, 'TimelineItem-Badge'),
27
34
  flexShrink: 0,
28
- borderRadius: "50%",
29
- borderWidth: "2px",
30
- borderStyle: "solid",
31
- borderColor: "canvas.default",
32
35
  overflow: "hidden",
33
- color: "fg.muted",
36
+ color: "icon.secondary",
34
37
  bg: "timeline.badgeBg",
35
38
  width: "32px",
36
39
  height: "32px",
@@ -38,18 +41,20 @@ const TimelineBadge = props => {
38
41
  ml: "-15px",
39
42
  alignItems: "center",
40
43
  justifyContent: "center"
41
- }, props), props.children));
44
+ }, props, {
45
+ _css: get('colors.bg.canvas')
46
+ }), props.children));
42
47
  };
43
48
 
44
49
  TimelineBadge.displayName = "TimelineBadge";
45
50
  const TimelineBody = styled(Box).withConfig({
46
51
  displayName: "Timeline__TimelineBody",
47
- componentId: "c4dq2e-2"
48
- })(["min-width:0;max-width:100%;margin-top:", ";color:", ";flex:auto;font-size:", ";", ";"], get('space.1'), get('colors.fg.muted'), get('fontSizes.1'), sx);
52
+ componentId: "c4dq2e-3"
53
+ })(["min-width:0;max-width:100%;margin-top:", ";color:", ";flex:auto;font-size:", ";", ";"], get('space.1'), get('colors.timeline.text'), get('fontSizes.1'), sx);
49
54
  const TimelineBreak = styled(Box).withConfig({
50
55
  displayName: "Timeline__TimelineBreak",
51
- componentId: "c4dq2e-3"
52
- })(["position:relative z-index:1;height:24px;margin:0;margin-bottom:-", ";margin-left:0;background-color:", ";border:0;border-top:", " solid ", ";", ";"], get('space.3'), get('colors.canvas.default'), get('space.1'), get('colors.border.default'), sx);
56
+ componentId: "c4dq2e-4"
57
+ })(["position:relative z-index:1;height:24px;margin:0;margin-bottom:-", ";margin-left:0;background-color:", ";border:0;border-top:", " solid ", ";", ";"], get('space.3'), get('colors.bg.canvas'), get('space.1'), get('colors.border.primary'), sx);
53
58
  TimelineItem.displayName = 'Timeline.Item';
54
59
  TimelineBadge.displayName = 'Timeline.Badge';
55
60
  TimelineBody.displayName = 'Timeline.Body';
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { TokenBaseProps } from './TokenBase';
3
+ export interface TokenProps extends TokenBaseProps {
4
+ leadingVisual?: React.FunctionComponent<any>;
5
+ }
6
+ declare const Token: React.FC<TokenProps>;
7
+ export default Token;
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { get } from '../constants';
4
+ import TokenBase, { isTokenHoverable } from './TokenBase';
5
+ import RemoveTokenButton from './_RemoveTokenButton';
6
+ const tokenBorderWidthPx = 1;
7
+ const DefaultToken = styled(TokenBase).withConfig({
8
+ displayName: "Token__DefaultToken",
9
+ componentId: "sc-1dg52pw-0"
10
+ })(["background-color:", ";border-color:", ";border-style:solid;border-width:1px;color:", ";padding-right:", ";&:hover{background-color:", ";box-shadow:", ";color:", ";}"], get('colors.neutral.subtle'), props => props.isSelected ? get('colors.fg.default') : get('colors.border.subtle'), props => props.isSelected ? get('colors.fg.default') : get('colors.fg.muted'), props => props.handleRemove || props.handleAdd ? 0 : undefined, props => isTokenHoverable(props) ? get('colors.neutral.muted') : undefined, props => isTokenHoverable(props) ? get('colors.shadow.medium') : undefined, props => isTokenHoverable(props) ? get('colors.fg.default') : undefined); // TODO: make this text truncate
11
+
12
+ const TokenTextContainer = styled('span').withConfig({
13
+ displayName: "Token__TokenTextContainer",
14
+ componentId: "sc-1dg52pw-1"
15
+ })(["flex-grow:1;white-space:nowrap;"]);
16
+ const LeadingVisualContainer = styled('span').withConfig({
17
+ displayName: "Token__LeadingVisualContainer",
18
+ componentId: "sc-1dg52pw-2"
19
+ })(["flex-shrink:0;line-height:0;"]);
20
+
21
+ const Token = ({
22
+ /**
23
+ * A function that renders a component before the token text
24
+ */
25
+ leadingVisual: LeadingVisual,
26
+ ...tokenBaseProps
27
+ }) => {
28
+ const {
29
+ handleRemove,
30
+ text,
31
+ as,
32
+ variant
33
+ } = tokenBaseProps;
34
+ return /*#__PURE__*/React.createElement(DefaultToken, tokenBaseProps, LeadingVisual ? /*#__PURE__*/React.createElement(LeadingVisualContainer, null, /*#__PURE__*/React.createElement(LeadingVisual, null)) : null, /*#__PURE__*/React.createElement(TokenTextContainer, null, text), handleRemove ? /*#__PURE__*/React.createElement(RemoveTokenButton, {
35
+ borderOffset: tokenBorderWidthPx,
36
+ parentTokenTag: as || 'span',
37
+ tabIndex: -1,
38
+ onClick: handleRemove,
39
+ variant: variant
40
+ }) : null);
41
+ };
42
+
43
+ Token.displayName = "Token";
44
+ export default Token;
@@ -0,0 +1,16 @@
1
+ /// <reference types="react" />
2
+ export declare type TokenSizeKeys = 'sm' | 'md' | 'lg' | 'xl';
3
+ export declare const tokenSizes: Record<TokenSizeKeys, number>;
4
+ export declare const defaultTokenSize = "md";
5
+ export interface TokenBaseProps extends Omit<React.HTMLProps<HTMLSpanElement | HTMLButtonElement | HTMLAnchorElement>, 'size' | 'id'> {
6
+ as?: 'button' | 'a' | 'span';
7
+ handleRemove?: () => void;
8
+ isSelected?: boolean;
9
+ tabIndex?: number;
10
+ text: string;
11
+ id?: number | string;
12
+ variant?: TokenSizeKeys;
13
+ }
14
+ export declare const isTokenHoverable: ({ as, onClick, onFocus }: TokenBaseProps) => boolean;
15
+ declare const TokenBase: import("styled-components").StyledComponent<"span", any, TokenBaseProps, never>;
16
+ export default TokenBase;
@@ -0,0 +1,56 @@
1
+ import styled from 'styled-components';
2
+ import { variant } from 'styled-system';
3
+ import { get } from '../constants';
4
+ export const tokenSizes = {
5
+ sm: 16,
6
+ md: 20,
7
+ lg: 24,
8
+ xl: 32
9
+ };
10
+ export const defaultTokenSize = 'md';
11
+ export const isTokenHoverable = ({
12
+ as = 'span',
13
+ onClick,
14
+ onFocus
15
+ }) => Boolean(onFocus || onClick || ['a', 'button'].includes(as));
16
+ const variants = variant({
17
+ variants: {
18
+ sm: {
19
+ fontSize: 0,
20
+ gap: 1,
21
+ height: `${tokenSizes.sm}px`,
22
+ paddingLeft: 1,
23
+ paddingRight: 1
24
+ },
25
+ md: {
26
+ fontSize: 0,
27
+ gap: 1,
28
+ height: `${tokenSizes.md}px`,
29
+ paddingLeft: 2,
30
+ paddingRight: 2
31
+ },
32
+ lg: {
33
+ fontSize: 0,
34
+ gap: 2,
35
+ height: `${tokenSizes.lg}px`,
36
+ paddingLeft: 2,
37
+ paddingRight: 2
38
+ },
39
+ xl: {
40
+ fontSize: 1,
41
+ gap: 2,
42
+ height: `${tokenSizes.xl}px`,
43
+ paddingLeft: 3,
44
+ paddingRight: 3
45
+ }
46
+ }
47
+ });
48
+ const TokenBase = styled.span.withConfig({
49
+ displayName: "TokenBase",
50
+ componentId: "opajvp-0"
51
+ })(["align-items:center;border-radius:999px;cursor:", ";display:inline-flex;font-weight:", ";text-decoration:none;white-space:nowrap;", ""], props => isTokenHoverable(props) ? 'pointer' : 'auto', get('fontWeights.bold'), variants);
52
+ TokenBase.defaultProps = {
53
+ as: 'span',
54
+ variant: defaultTokenSize
55
+ };
56
+ export default TokenBase;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { TokenBaseProps } from './TokenBase';
3
+ export interface TokenLabelProps extends TokenBaseProps {
4
+ /**
5
+ * The color that corresponds to the label
6
+ */
7
+ fillColor?: string;
8
+ }
9
+ declare const TokenLabel: React.FC<TokenLabelProps>;
10
+ export default TokenLabel;
@@ -0,0 +1,99 @@
1
+ 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); }
2
+
3
+ import React from 'react';
4
+ import styled from 'styled-components';
5
+ import TokenBase from './TokenBase';
6
+ import RemoveTokenButton from './_RemoveTokenButton';
7
+ import tinycolor from 'tinycolor2';
8
+ import { useTheme } from '../ThemeProvider';
9
+ const colorModeConfig = {
10
+ dark: {
11
+ bgOpacity: 0.18,
12
+ borderThreshold: 0,
13
+ borderOpacity: 0.3,
14
+ lightnessThreshold: 0.6
15
+ },
16
+ light: {
17
+ bgOpacity: 1,
18
+ borderThreshold: 0.96,
19
+ borderOpacity: 1,
20
+ lightnessThreshold: 0.453
21
+ }
22
+ };
23
+ const tokenBorderWidthPx = 1;
24
+ const StyledTokenLabel = styled(TokenBase).withConfig({
25
+ displayName: "TokenLabel__StyledTokenLabel",
26
+ componentId: "sc-1bdmgzv-0"
27
+ })(["background-color:", ";border-width:", "px;border-style:solid;border-color:", ";box-shadow:", ";color:", ";overflow:hidden;padding-right:", ";position:relative;"], props => props.bgColor, tokenBorderWidthPx, props => props.borderColor, props => props.isSelected ? `0 0 0 2px ${props.bgColor}` : undefined, props => props.textColor, props => props.handleRemove ? 0 : undefined); // TODO: make this text truncate
28
+
29
+ const TokenTextContainer = styled('span').withConfig({
30
+ displayName: "TokenLabel__TokenTextContainer",
31
+ componentId: "sc-1bdmgzv-1"
32
+ })(["white-space:nowrap;z-index:1;"]);
33
+
34
+ const TokenLabel = ({
35
+ fillColor,
36
+ isSelected,
37
+ ...tokenBaseProps
38
+ }) => {
39
+ const {
40
+ handleRemove,
41
+ text,
42
+ as,
43
+ variant
44
+ } = tokenBaseProps;
45
+ const {
46
+ colorScheme
47
+ } = useTheme(); // const colorScheme = 'dark';
48
+
49
+ const {
50
+ bgOpacity,
51
+ borderOpacity,
52
+ borderThreshold,
53
+ lightnessThreshold
54
+ } = colorModeConfig[colorScheme || 'light'];
55
+ let bgColor = fillColor;
56
+ let borderColor = fillColor;
57
+ let textColor = '#FFF';
58
+ const perceivedLightness = tinycolor(fillColor).getLuminance();
59
+ const isFillColorLight = perceivedLightness >= lightnessThreshold;
60
+
61
+ if (colorScheme === 'dark') {
62
+ const lightenBy = (perceivedLightness - lightnessThreshold) * 100 * (isFillColorLight ? 1 : 0);
63
+ bgColor = isSelected ? tinycolor(fillColor).setAlpha(bgOpacity * 1.2).toRgbString() : tinycolor(fillColor).setAlpha(bgOpacity).toRgbString();
64
+ textColor = isSelected ? tinycolor(fillColor).lighten(lightenBy + 8).toString() : tinycolor(fillColor).lighten(lightenBy).toString();
65
+ borderColor = isSelected ? tinycolor(fillColor).lighten(lightenBy).toRgbString() : tinycolor(fillColor).lighten(lightenBy).setAlpha(borderOpacity).toRgbString();
66
+ } else {
67
+ const isFillColorDark = perceivedLightness < 0.1;
68
+ borderColor = perceivedLightness >= borderThreshold ? tinycolor(fillColor).darken(25).toString() : 'transparent';
69
+
70
+ if (isFillColorLight) {
71
+ textColor = '#000';
72
+ }
73
+
74
+ if (isSelected) {
75
+ bgColor = isFillColorDark ? tinycolor(fillColor).lighten(10).toString() : tinycolor(fillColor).darken(10).toString();
76
+ }
77
+ }
78
+
79
+ return /*#__PURE__*/React.createElement(StyledTokenLabel, _extends({
80
+ fillColor: fillColor,
81
+ bgColor: bgColor,
82
+ borderColor: borderColor,
83
+ textColor: textColor,
84
+ isSelected: isSelected
85
+ }, tokenBaseProps), /*#__PURE__*/React.createElement(TokenTextContainer, null, text), handleRemove ? /*#__PURE__*/React.createElement(RemoveTokenButton, {
86
+ borderOffset: tokenBorderWidthPx,
87
+ parentTokenTag: as || 'span',
88
+ tabIndex: -1,
89
+ onClick: handleRemove,
90
+ variant: variant
91
+ }) : null);
92
+ };
93
+
94
+ TokenLabel.displayName = "TokenLabel";
95
+ TokenLabel.defaultProps = {
96
+ fillColor: '#999' // TODO: pick a real color
97
+
98
+ };
99
+ export default TokenLabel;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { TokenBaseProps } from './TokenBase';
3
+ export interface TokenProfileProps extends TokenBaseProps {
4
+ avatarSrc: string;
5
+ }
6
+ declare const TokenProfile: React.FC<TokenProfileProps>;
7
+ export default TokenProfile;
@@ -0,0 +1,28 @@
1
+ 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); }
2
+
3
+ import React from 'react';
4
+ import styled from 'styled-components';
5
+ import { get } from '../constants';
6
+ import primitives from '@primer/primitives';
7
+ import { defaultTokenSize, tokenSizes } from './TokenBase';
8
+ import Token from './Token';
9
+ import { Avatar } from '..';
10
+ const StyledToken = styled(Token).withConfig({
11
+ displayName: "TokenProfile__StyledToken",
12
+ componentId: "sc-1vf9jhf-0"
13
+ })(["padding-left:", ";"], get('space.1'));
14
+
15
+ const TokenProfile = ({
16
+ avatarSrc,
17
+ variant,
18
+ ...rest
19
+ }) => /*#__PURE__*/React.createElement(StyledToken, _extends({
20
+ leadingVisual: () => /*#__PURE__*/React.createElement(Avatar, {
21
+ src: avatarSrc,
22
+ size: tokenSizes[variant || defaultTokenSize] - parseInt(primitives.spacing.normal.spacer[1], 10) * 2
23
+ }),
24
+ variant: variant
25
+ }, rest));
26
+
27
+ TokenProfile.displayName = "TokenProfile";
28
+ export default TokenProfile;
@@ -0,0 +1,3 @@
1
+ import { TokenButtonProps } from './_tokenButtonUtils';
2
+ declare const RemoveTokenButton: import("styled-components").StyledComponent<"span", any, TokenButtonProps, never>;
3
+ export default RemoveTokenButton;
@@ -0,0 +1,28 @@
1
+ import { XIcon } from '@primer/octicons-react';
2
+ import styled from 'styled-components';
3
+ import { defaultTokenSize } from "./TokenBase";
4
+ import { tokenButtonStyles, variants, getTokenButtonIconSize } from './_tokenButtonUtils';
5
+ const RemoveTokenButton = styled.span.attrs(({
6
+ borderOffset,
7
+ parentTokenTag,
8
+ variant,
9
+ ...rest
10
+ }) => {
11
+ delete rest.children;
12
+ return {
13
+ borderOffset,
14
+ as: parentTokenTag === 'span' ? 'button' : 'span',
15
+ tabIndex: -1,
16
+ children: /*#__PURE__*/React.createElement(XIcon, {
17
+ size: getTokenButtonIconSize(variant)
18
+ }) // TODO: figure out how to set `size` using `fontSizes` from Primitives
19
+
20
+ };
21
+ }).withConfig({
22
+ displayName: "_RemoveTokenButton__RemoveTokenButton",
23
+ componentId: "sc-14lvcw1-0"
24
+ })(["", " ", " transform:", ";"], tokenButtonStyles, variants, props => `translate(${props.borderOffset}px, -${props.borderOffset}px)`);
25
+ RemoveTokenButton.defaultProps = {
26
+ variant: defaultTokenSize
27
+ };
28
+ export default RemoveTokenButton;
@@ -0,0 +1,9 @@
1
+ import { TokenSizeKeys } from "./TokenBase";
2
+ export interface TokenButtonProps {
3
+ borderOffset?: number;
4
+ parentTokenTag: 'span' | 'button' | 'a';
5
+ variant?: TokenSizeKeys;
6
+ }
7
+ export declare const variants: (...args: any[]) => any;
8
+ export declare const tokenButtonStyles: import("styled-components").FlattenInterpolation<import("styled-components").ThemeProps<any>>;
9
+ export declare const getTokenButtonIconSize: (variant?: TokenSizeKeys | undefined) => number;
@@ -0,0 +1,26 @@
1
+ import { css } from 'styled-components';
2
+ import { variant } from 'styled-system';
3
+ import { get } from '../constants';
4
+ import { tokenSizes, defaultTokenSize } from "./TokenBase";
5
+ export const variants = variant({
6
+ variants: {
7
+ sm: {
8
+ height: `${tokenSizes.sm}px`,
9
+ width: `${tokenSizes.sm}px`
10
+ },
11
+ md: {
12
+ height: `${tokenSizes.md}px`,
13
+ width: `${tokenSizes.md}px`
14
+ },
15
+ lg: {
16
+ height: `${tokenSizes.lg}px`,
17
+ width: `${tokenSizes.lg}px`
18
+ },
19
+ xl: {
20
+ height: `${tokenSizes.xl}px`,
21
+ width: `${tokenSizes.xl}px`
22
+ }
23
+ }
24
+ });
25
+ export const tokenButtonStyles = css(["background-color:transparent;font-family:inherit;color:currentColor;cursor:pointer;user-select:none;appearance:none;text-decoration:none;padding:0;align-self:baseline;border:0;border-radius:999px;&:hover,&:focus{background-color:", ";}&:active{background-color:", ";}"], get('colors.fade.fg10'), get('colors.fade.fg15'));
26
+ export const getTokenButtonIconSize = variant => tokenSizes[variant || defaultTokenSize] * 0.75;
@@ -8,7 +8,7 @@ import sx from './sx';
8
8
  const TooltipBase = styled.span.withConfig({
9
9
  displayName: "Tooltip__TooltipBase",
10
10
  componentId: "kp39nc-0"
11
- })(["position:relative;&::before{position:absolute;z-index:1000001;display:none;width:0px;height:0px;color:", ";pointer-events:none;content:'';border:6px solid transparent;opacity:0;}&::after{position:absolute;z-index:1000000;display:none;padding:0.5em 0.75em;font:normal normal 11px/1.5 ", ";-webkit-font-smoothing:subpixel-antialiased;color:", ";text-align:center;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:", ";border-radius:", ";opacity:0;}@keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}&:hover,&:active,&:focus{&::before,&::after{display:inline-block;text-decoration:none;animation-name:tooltip-appear;animation-duration:0.1s;animation-fill-mode:forwards;animation-timing-function:ease-in;animation-delay:0.4s;}}&.tooltipped-no-delay:hover,&.tooltipped-no-delay:active,&.tooltipped-no-delay:focus{&::before,&::after{animation-delay:0s;}}&.tooltipped-multiline:hover,&.tooltipped-multiline:active,&.tooltipped-multiline:focus{&::after{display:table-cell;}}&.tooltipped-s,&.tooltipped-se,&.tooltipped-sw{&::after{top:100%;right:50%;margin-top:6px;}&::before{top:auto;right:50%;bottom:-7px;margin-right:-6px;border-bottom-color:", ";}}&.tooltipped-se{&::after{right:auto;left:50%;margin-left:-", ";}}&.tooltipped-sw::after{margin-right:-", ";}&.tooltipped-n,&.tooltipped-ne,&.tooltipped-nw{&::after{right:50%;bottom:100%;margin-bottom:6px;}&::before{top:-7px;right:50%;bottom:auto;margin-right:-6px;border-top-color:", ";}}&.tooltipped-ne{&::after{right:auto;left:50%;margin-left:-", ";}}&.tooltipped-nw::after{margin-right:-", ";}&.tooltipped-s::after,&.tooltipped-n::after{transform:translateX(50%);}&.tooltipped-w{&::after{right:100%;bottom:50%;margin-right:6px;transform:translateY(50%);}&::before{top:50%;bottom:50%;left:-7px;margin-top:-6px;border-left-color:", ";}}&.tooltipped-e{&::after{bottom:50%;left:100%;margin-left:6px;transform:translateY(50%);}&::before{top:50%;right:-7px;bottom:50%;margin-top:-6px;border-right-color:", ";}}&.tooltipped-multiline{&::after{width:max-content;max-width:250px;word-wrap:break-word;white-space:pre-line;border-collapse:separate;}&.tooltipped-s::after,&.tooltipped-n::after{right:auto;left:50%;transform:translateX(-50%);}&.tooltipped-w::after,&.tooltipped-e::after{right:100%;}}&.tooltipped-align-right-2::after{right:0;margin-right:0;}&.tooltipped-align-right-2::before{right:15px;}&.tooltipped-align-left-2::after{left:0;margin-left:0;}&.tooltipped-align-left-2::before{left:10px;}", ";", ";"], get('colors.neutral.emphasisPlus'), get('fonts.normal'), get('colors.fg.onEmphasis'), get('colors.neutral.emphasisPlus'), get('radii.1'), get('colors.neutral.emphasisPlus'), get('space.3'), get('space.3'), get('colors.neutral.emphasisPlus'), get('space.3'), get('space.3'), get('colors.neutral.emphasisPlus'), get('colors.neutral.emphasisPlus'), COMMON, sx);
11
+ })(["position:relative;&::before{position:absolute;z-index:1000001;display:none;width:0px;height:0px;color:", ";pointer-events:none;content:'';border:6px solid transparent;opacity:0;}&::after{position:absolute;z-index:1000000;display:none;padding:0.5em 0.75em;font:normal normal 11px/1.5 ", ";-webkit-font-smoothing:subpixel-antialiased;color:", ";text-align:center;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:", ";border-radius:", ";opacity:0;}@keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}&:hover,&:active,&:focus{&::before,&::after{display:inline-block;text-decoration:none;animation-name:tooltip-appear;animation-duration:0.1s;animation-fill-mode:forwards;animation-timing-function:ease-in;animation-delay:0.4s;}}&.tooltipped-no-delay:hover,&.tooltipped-no-delay:active,&.tooltipped-no-delay:focus{&::before,&::after{animation-delay:0s;}}&.tooltipped-multiline:hover,&.tooltipped-multiline:active,&.tooltipped-multiline:focus{&::after{display:table-cell;}}&.tooltipped-s,&.tooltipped-se,&.tooltipped-sw{&::after{top:100%;right:50%;margin-top:6px;}&::before{top:auto;right:50%;bottom:-7px;margin-right:-6px;border-bottom-color:", ";}}&.tooltipped-se{&::after{right:auto;left:50%;margin-left:-", ";}}&.tooltipped-sw::after{margin-right:-", ";}&.tooltipped-n,&.tooltipped-ne,&.tooltipped-nw{&::after{right:50%;bottom:100%;margin-bottom:6px;}&::before{top:-7px;right:50%;bottom:auto;margin-right:-6px;border-top-color:", ";}}&.tooltipped-ne{&::after{right:auto;left:50%;margin-left:-", ";}}&.tooltipped-nw::after{margin-right:-", ";}&.tooltipped-s::after,&.tooltipped-n::after{transform:translateX(50%);}&.tooltipped-w{&::after{right:100%;bottom:50%;margin-right:6px;transform:translateY(50%);}&::before{top:50%;bottom:50%;left:-7px;margin-top:-6px;border-left-color:", ";}}&.tooltipped-e{&::after{bottom:50%;left:100%;margin-left:6px;transform:translateY(50%);}&::before{top:50%;right:-7px;bottom:50%;margin-top:-6px;border-right-color:", ";}}&.tooltipped-multiline{&::after{width:max-content;max-width:250px;word-wrap:break-word;white-space:pre-line;border-collapse:separate;}&.tooltipped-s::after,&.tooltipped-n::after{right:auto;left:50%;transform:translateX(-50%);}&.tooltipped-w::after,&.tooltipped-e::after{right:100%;}}&.tooltipped-align-right-2::after{right:0;margin-right:0;}&.tooltipped-align-right-2::before{right:15px;}&.tooltipped-align-left-2::after{left:0;margin-left:0;}&.tooltipped-align-left-2::before{left:10px;}", ";", ";"], get('colors.tooltip.bg'), get('fonts.normal'), get('colors.tooltip.text'), get('colors.tooltip.bg'), get('radii.1'), get('colors.tooltip.bg'), get('space.3'), get('space.3'), get('colors.tooltip.bg'), get('space.3'), get('space.3'), get('colors.tooltip.bg'), get('colors.tooltip.bg'), COMMON, sx);
12
12
 
13
13
  function Tooltip({
14
14
  direction = 'n',
@@ -11,7 +11,7 @@ const SELECTED_CLASS = 'selected';
11
11
  const UnderlineNavBase = styled.nav.withConfig({
12
12
  displayName: "UnderlineNav__UnderlineNavBase",
13
13
  componentId: "zrnxqt-0"
14
- })(["display:flex;justify-content:space-between;border-bottom:1px solid ", ";&.UnderlineNav--right{justify-content:flex-end;.UnderlineNav-item{margin-right:0;margin-left:", ";}.UnderlineNav-actions{flex:1 1 auto;}}&.UnderlineNav--full{display:block;}.UnderlineNav-body{display:flex;margin-bottom:-1px;}.UnderlineNav-actions{align-self:center;}", ";", ";"], get('colors.border.muted'), get('space.3'), COMMON, sx);
14
+ })(["display:flex;justify-content:space-between;border-bottom:1px solid ", ";&.UnderlineNav--right{justify-content:flex-end;.UnderlineNav-item{margin-right:0;margin-left:", ";}.UnderlineNav-actions{flex:1 1 auto;}}&.UnderlineNav--full{display:block;}.UnderlineNav-body{display:flex;margin-bottom:-1px;}.UnderlineNav-actions{align-self:center;}", ";", ";"], get('colors.border.secondary'), get('space.3'), COMMON, sx);
15
15
 
16
16
  function UnderlineNav({
17
17
  actions,
@@ -42,7 +42,7 @@ const UnderlineNavLink = styled.a.attrs(props => ({
42
42
  })).withConfig({
43
43
  displayName: "UnderlineNav__UnderlineNavLink",
44
44
  componentId: "zrnxqt-1"
45
- })(["padding:", " ", ";margin-right:", ";font-size:", ";line-height:", ";color:", ";text-align:center;border-bottom:2px solid transparent;text-decoration:none;&:hover,&:focus{color:", ";text-decoration:none;border-bottom-color:", ";transition:0.2s ease;.UnderlineNav-octicon{color:", ";}}&.selected{color:", ";border-bottom-color:", ";.UnderlineNav-octicon{color:", ";}}", ";", ";"], get('space.3'), get('space.2'), get('space.3'), get('fontSizes.1'), get('lineHeights.default'), get('colors.fg.default'), get('colors.fg.default'), get('colors.neutral.muted'), get('colors.fg.muted'), get('colors.fg.default'), get('colors.primer.border.active'), get('colors.fg.default'), COMMON, sx);
45
+ })(["padding:", " ", ";margin-right:", ";font-size:", ";line-height:", ";color:", ";text-align:center;border-bottom:2px solid transparent;text-decoration:none;&:hover,&:focus{color:", ";text-decoration:none;border-bottom-color:", ";transition:0.2s ease;.UnderlineNav-octicon{color:", ";}}&.selected{color:", ";border-bottom-color:", ";.UnderlineNav-octicon{color:", ";}}", ";", ";"], get('space.3'), get('space.2'), get('space.3'), get('fontSizes.1'), get('lineHeights.default'), get('colors.underlinenav.text'), get('colors.underlinenav.textHover'), get('colors.border.tertiary'), get('colors.text.tertiary'), get('colors.underlinenav.textActive'), get('colors.underlinenav.borderActive'), get('colors.underlinenav.iconActive'), COMMON, sx);
46
46
  UnderlineNavLink.displayName = 'UnderlineNav.Link';
47
47
  export default Object.assign(UnderlineNav, {
48
48
  Link: UnderlineNavLink
@@ -0,0 +1,2 @@
1
+ declare const UnstyledTextInput: import("styled-components").StyledComponent<"input", any, import("./sx").SxProp, never>;
2
+ export default UnstyledTextInput;
@@ -0,0 +1,7 @@
1
+ import styled from "styled-components";
2
+ import sx from './sx';
3
+ const UnstyledTextInput = styled.input.withConfig({
4
+ displayName: "_UnstyledTextInput__UnstyledTextInput",
5
+ componentId: "sc-1jgl33s-0"
6
+ })(["border:0;font-size:inherit;font-family:inherit;background-color:transparent;-webkit-appearance:none;color:inherit;width:100%;&:focus{outline:0;}", ";"], sx);
7
+ export default UnstyledTextInput;
@@ -7,8 +7,9 @@ export declare type UseOverlaySettings = {
7
7
  onEscape: (e: KeyboardEvent) => void;
8
8
  onClickOutside: (e: TouchOrMouseEvent) => void;
9
9
  overlayRef?: React.RefObject<HTMLDivElement>;
10
+ preventFocusOnOpen?: boolean;
10
11
  };
11
12
  export declare type OverlayReturnProps = {
12
13
  ref: React.RefObject<HTMLDivElement>;
13
14
  };
14
- export declare const useOverlay: ({ overlayRef: _overlayRef, returnFocusRef, initialFocusRef, onEscape, ignoreClickRefs, onClickOutside }: UseOverlaySettings) => OverlayReturnProps;
15
+ export declare const useOverlay: ({ overlayRef: _overlayRef, returnFocusRef, initialFocusRef, onEscape, ignoreClickRefs, onClickOutside, preventFocusOnOpen }: UseOverlaySettings) => OverlayReturnProps;
@@ -8,14 +8,19 @@ export const useOverlay = ({
8
8
  initialFocusRef,
9
9
  onEscape,
10
10
  ignoreClickRefs,
11
- onClickOutside
11
+ onClickOutside,
12
+ preventFocusOnOpen
12
13
  }) => {
13
14
  const overlayRef = useProvidedRefOrCreate(_overlayRef);
14
- useOpenAndCloseFocus({
15
- containerRef: overlayRef,
16
- returnFocusRef,
17
- initialFocusRef
18
- });
15
+
16
+ if (!preventFocusOnOpen) {
17
+ useOpenAndCloseFocus({
18
+ containerRef: overlayRef,
19
+ returnFocusRef,
20
+ initialFocusRef
21
+ });
22
+ }
23
+
19
24
  useOnOutsideClick({
20
25
  containerRef: overlayRef,
21
26
  ignoreClickRefs,
@@ -32,8 +32,8 @@ export { default as AvatarStack } from './AvatarStack';
32
32
  export type { AvatarStackProps } from './AvatarStack';
33
33
  export { default as BranchName } from './BranchName';
34
34
  export type { BranchNameProps } from './BranchName';
35
- export { default as Breadcrumbs, Breadcrumb } from './Breadcrumbs';
36
- export type { BreadcrumbsProps, BreadcrumbsItemProps, BreadcrumbProps, BreadcrumbItemProps } from './Breadcrumbs';
35
+ export { default as Breadcrumb } from './Breadcrumb';
36
+ export type { BreadcrumbProps, BreadcrumbItemProps } from './Breadcrumb';
37
37
  export { default as Button, ButtonDanger, ButtonOutline, ButtonPrimary, ButtonInvisible, ButtonTableList, ButtonClose, ButtonGroup } from './Button';
38
38
  export type { ButtonProps, ButtonDangerProps, ButtonOutlineProps, ButtonPrimaryProps, ButtonInvisibleProps, ButtonTableListProps, ButtonCloseProps, ButtonGroupProps } from './Button';
39
39
  export { default as Caret } from './Caret';
@@ -108,4 +108,3 @@ export { default as Truncate } from './Truncate';
108
108
  export type { TruncateProps } from './Truncate';
109
109
  export { default as UnderlineNav } from './UnderlineNav';
110
110
  export type { UnderlineNavProps, UnderlineNavLinkProps } from './UnderlineNav';
111
- export { SSRProvider, useSSRSafeId } from './utils/ssr';
package/lib-esm/index.js CHANGED
@@ -23,7 +23,7 @@ export { default as Avatar } from './Avatar';
23
23
  export { default as AvatarPair } from './AvatarPair';
24
24
  export { default as AvatarStack } from './AvatarStack';
25
25
  export { default as BranchName } from './BranchName';
26
- export { default as Breadcrumbs, Breadcrumb } from './Breadcrumbs';
26
+ export { default as Breadcrumb } from './Breadcrumb';
27
27
  export { default as Button, ButtonDanger, ButtonOutline, ButtonPrimary, ButtonInvisible, ButtonTableList, ButtonClose, ButtonGroup } from './Button';
28
28
  export { default as Caret } from './Caret';
29
29
  export { default as CircleBadge } from './CircleBadge';
@@ -65,5 +65,4 @@ export { default as Text } from './Text';
65
65
  export { default as Timeline } from './Timeline';
66
66
  export { default as Tooltip } from './Tooltip';
67
67
  export { default as Truncate } from './Truncate';
68
- export { default as UnderlineNav } from './UnderlineNav';
69
- export { SSRProvider, useSSRSafeId } from './utils/ssr';
68
+ export { default as UnderlineNav } from './UnderlineNav';
@@ -22,10 +22,6 @@ export namespace theme {
22
22
  export { darkDimmedColors as colors };
23
23
  export { darkDimmedShadows as shadows };
24
24
  }
25
- namespace dark_high_contrast {
26
- export { darkHighContrastColors as colors };
27
- export { darkHighContrastShadows as shadows };
28
- }
29
25
  }
30
26
  }
31
27
  declare namespace animation {
@@ -83,21 +79,19 @@ declare const darkDimmedColors: Partial<typeof primitives.colors.dark_dimmed>;
83
79
  * @type Partial<typeof primitives.colors.dark_dimmed>
84
80
  */
85
81
  declare const darkDimmedShadows: Partial<typeof primitives.colors.dark_dimmed>;
86
- /**
87
- * @type Partial<typeof primitives.colors.dark_dimmed>
88
- */
89
- declare const darkHighContrastColors: Partial<typeof primitives.colors.dark_dimmed>;
90
- /**
91
- * @type Partial<typeof primitives.colors.dark_high_contrast>
92
- */
93
- declare const darkHighContrastShadows: Partial<typeof primitives.colors.dark_high_contrast>;
94
82
  import { default as primitives } from "@primer/primitives";
95
83
  declare const light_2: {
96
84
  colors: {};
85
+ /**
86
+ * @type Partial<typeof primitives.colors.light>
87
+ */
97
88
  shadows: {};
98
89
  };
99
90
  declare const dark_1: {
100
91
  colors: {};
92
+ /**
93
+ * @type Partial<typeof primitives.colors.light>
94
+ */
101
95
  shadows: {};
102
96
  };
103
97
  export {};