@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
@@ -1,103 +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 react_1 = __importStar(require("react"));
26
- const styled_components_1 = __importStar(require("styled-components"));
27
- const constants_1 = require("../constants");
28
- const sx_1 = __importDefault(require("../sx"));
29
- const TokenBase_1 = __importStar(require("./TokenBase"));
30
- const _RemoveTokenButton_1 = __importDefault(require("./_RemoveTokenButton"));
31
- const _TokenTextContainer_1 = __importDefault(require("./_TokenTextContainer"));
32
- const tokenBorderWidthPx = 1;
33
- const DefaultTokenStyled = styled_components_1.default(TokenBase_1.default) `
34
- background-color: ${constants_1.get('colors.neutral.subtle')};
35
- border-color: ${props => (props.isSelected ? constants_1.get('colors.fg.default') : constants_1.get('colors.border.subtle'))};
36
- border-style: solid;
37
- border-width: ${tokenBorderWidthPx}px;
38
- color: ${props => (props.isSelected ? constants_1.get('colors.fg.default') : constants_1.get('colors.fg.muted'))};
39
- max-width: 100%;
40
- padding-right: ${props => (!props.hideRemoveButton ? 0 : undefined)};
41
- position: relative;
42
- ${sx_1.default}
43
-
44
- ${props => {
45
- if (props.isTokenInteractive) {
46
- return styled_components_1.css `
47
- &:hover {
48
- background-color: ${constants_1.get('colors.neutral.muted')};
49
- box-shadow: ${constants_1.get('colors.shadow.medium')};
50
- color: ${constants_1.get('colors.fg.default')};
51
- }
52
- `;
53
- }
54
- }}
55
- `;
56
- const LeadingVisualContainer = styled_components_1.default('span') `
57
- flex-shrink: 0;
58
- line-height: 0;
59
-
60
- ${props => {
61
- switch (props.size) {
62
- case 'large':
63
- case 'extralarge':
64
- return styled_components_1.css `
65
- margin-right: ${constants_1.get('space.2')};
66
- `;
67
- default:
68
- return styled_components_1.css `
69
- margin-right: ${constants_1.get('space.1')};
70
- `;
71
- }
72
- }}
73
- `;
74
- const Token = react_1.forwardRef((props, forwardedRef) => {
75
- const { as, onRemove, id, leadingVisual: LeadingVisual, text, size, hideRemoveButton, href, onClick, ...rest } = props;
76
- const hasMultipleActionTargets = TokenBase_1.isTokenInteractive(props) && Boolean(onRemove) && !hideRemoveButton;
77
- const onRemoveClick = e => {
78
- e.stopPropagation();
79
- onRemove && onRemove();
80
- };
81
- const interactiveTokenProps = {
82
- as,
83
- href,
84
- onClick
85
- };
86
- return (<DefaultTokenStyled onRemove={onRemove} hideRemoveButton={hideRemoveButton || !onRemove} id={id?.toString()} text={text} size={size} isTokenInteractive={TokenBase_1.isTokenInteractive(props)} {...(!hasMultipleActionTargets ? interactiveTokenProps : {})} {...rest} ref={forwardedRef}>
87
- {LeadingVisual ? (<LeadingVisualContainer size={size}>
88
- <LeadingVisual />
89
- </LeadingVisualContainer>) : null}
90
- <_TokenTextContainer_1.default {...(hasMultipleActionTargets ? interactiveTokenProps : {})}>{text}</_TokenTextContainer_1.default>
91
- {!hideRemoveButton && onRemove ? (<_RemoveTokenButton_1.default borderOffset={tokenBorderWidthPx} onClick={onRemoveClick} size={size} isParentInteractive={TokenBase_1.isTokenInteractive(props)} aria-hidden={hasMultipleActionTargets ? 'true' : 'false'} sx={hasMultipleActionTargets
92
- ? {
93
- position: 'relative',
94
- zIndex: '1'
95
- }
96
- : {}}/>) : null}
97
- </DefaultTokenStyled>);
98
- });
99
- Token.displayName = 'Token';
100
- Token.defaultProps = {
101
- size: TokenBase_1.defaultTokenSize
102
- };
103
- exports.default = Token;
@@ -1,88 +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
- exports.isTokenInteractive = exports.defaultTokenSize = exports.tokenSizes = void 0;
7
- const styled_components_1 = __importDefault(require("styled-components"));
8
- const styled_system_1 = require("styled-system");
9
- const constants_1 = require("../constants");
10
- const sx_1 = __importDefault(require("../sx"));
11
- exports.tokenSizes = {
12
- small: '16px',
13
- medium: '20px',
14
- large: '24px',
15
- extralarge: '32px'
16
- };
17
- exports.defaultTokenSize = 'medium';
18
- const isTokenInteractive = ({ as = 'span', onClick, onFocus, tabIndex = -1 }) => Boolean(onFocus || onClick || tabIndex > -1 || ['a', 'button'].includes(as));
19
- exports.isTokenInteractive = isTokenInteractive;
20
- const variants = styled_system_1.variant({
21
- prop: 'size',
22
- variants: {
23
- small: {
24
- fontSize: 0,
25
- height: exports.tokenSizes.small,
26
- // without setting lineHeight to match height, the "x" appears vertically mis-aligned
27
- lineHeight: exports.tokenSizes.small,
28
- paddingLeft: 1,
29
- paddingRight: 1,
30
- // need to explicitly set padding top and bottom to "0" to override default `<button>` element styles
31
- // without setting these, the "x" appears vertically mis-aligned
32
- paddingTop: 0,
33
- paddingBottom: 0
34
- },
35
- medium: {
36
- fontSize: 0,
37
- height: exports.tokenSizes.medium,
38
- lineHeight: exports.tokenSizes.medium,
39
- paddingLeft: 2,
40
- paddingRight: 2,
41
- paddingTop: 0,
42
- paddingBottom: 0
43
- },
44
- large: {
45
- fontSize: 0,
46
- height: exports.tokenSizes.large,
47
- lineHeight: exports.tokenSizes.large,
48
- paddingLeft: 2,
49
- paddingRight: 2,
50
- paddingTop: 0,
51
- paddingBottom: 0
52
- },
53
- extralarge: {
54
- fontSize: 1,
55
- height: exports.tokenSizes.extralarge,
56
- lineHeight: exports.tokenSizes.extralarge,
57
- paddingLeft: 3,
58
- paddingRight: 3,
59
- paddingTop: 0,
60
- paddingBottom: 0
61
- }
62
- }
63
- });
64
- const TokenBase = styled_components_1.default.span.attrs(({ text, onRemove, onKeyDown }) => ({
65
- onKeyDown: (event) => {
66
- onKeyDown && onKeyDown(event);
67
- if ((event.key === 'Backspace' || event.key === 'Delete') && onRemove) {
68
- onRemove();
69
- }
70
- },
71
- 'aria-label': onRemove ? `${text}, press backspace or delete to remove` : undefined
72
- })) `
73
- align-items: center;
74
- border-radius: 999px;
75
- cursor: ${props => (exports.isTokenInteractive(props) ? 'pointer' : 'auto')};
76
- display: inline-flex;
77
- font-weight: ${constants_1.get('fontWeights.bold')};
78
- font-family: inherit;
79
- text-decoration: none;
80
- white-space: nowrap;
81
- ${variants}
82
- ${sx_1.default}
83
- `;
84
- TokenBase.defaultProps = {
85
- as: 'span',
86
- size: exports.defaultTokenSize
87
- };
88
- exports.default = TokenBase;
@@ -1,108 +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 react_1 = __importDefault(require("react"));
26
- const octicons_react_1 = require("@primer/octicons-react");
27
- const styled_components_1 = __importStar(require("styled-components"));
28
- const styled_system_1 = require("styled-system");
29
- const constants_1 = require("../constants");
30
- const sx_1 = __importDefault(require("../sx"));
31
- const TokenBase_1 = require("./TokenBase");
32
- const variants = styled_system_1.variant({
33
- prop: 'size',
34
- variants: {
35
- small: {
36
- height: TokenBase_1.tokenSizes.small,
37
- width: TokenBase_1.tokenSizes.small
38
- },
39
- medium: {
40
- height: TokenBase_1.tokenSizes.medium,
41
- width: TokenBase_1.tokenSizes.medium
42
- },
43
- large: {
44
- height: TokenBase_1.tokenSizes.large,
45
- width: TokenBase_1.tokenSizes.large
46
- },
47
- extralarge: {
48
- height: TokenBase_1.tokenSizes.extralarge,
49
- width: TokenBase_1.tokenSizes.extralarge
50
- }
51
- }
52
- });
53
- const getTokenButtonIconSize = (size) => parseInt(TokenBase_1.tokenSizes[size || TokenBase_1.defaultTokenSize], 10) * 0.75;
54
- const StyledTokenButton = styled_components_1.default.span `
55
- background-color: transparent;
56
- font-family: inherit;
57
- color: currentColor;
58
- cursor: pointer;
59
- display: inline-flex;
60
- justify-content: center;
61
- align-items: center;
62
- user-select: none;
63
- appearance: none;
64
- text-decoration: none;
65
- padding: 0;
66
- transform: ${props => `translate(${props.borderOffset}px, -${props.borderOffset}px)`};
67
- align-self: baseline;
68
- border: 0;
69
- border-radius: 999px;
70
-
71
- ${props => {
72
- switch (props.size) {
73
- case 'large':
74
- case 'extralarge':
75
- return styled_components_1.css `
76
- margin-left: ${constants_1.get('space.2')};
77
- `;
78
- default:
79
- return styled_components_1.css `
80
- margin-left: ${constants_1.get('space.1')};
81
- `;
82
- }
83
- }}
84
-
85
- &:hover,
86
- &:focus {
87
- // TODO: choose a better functional color variable for this
88
- background-color: ${constants_1.get('colors.neutral.muted')};
89
- }
90
-
91
- &:active {
92
- // TODO: choose a better functional color variable for this
93
- background-color: ${constants_1.get('colors.neutral.subtle')};
94
- }
95
-
96
- ${variants}
97
- ${sx_1.default}
98
- `;
99
- const RemoveTokenButton = ({ 'aria-label': ariaLabel, isParentInteractive, size, ...rest }) => {
100
- delete rest.children;
101
- return (<StyledTokenButton as={isParentInteractive ? 'span' : 'button'} tabIndex={isParentInteractive ? -1 : undefined} aria-label={!isParentInteractive ? 'Remove token' : ariaLabel} size={size} {...rest}>
102
- <octicons_react_1.XIcon size={getTokenButtonIconSize(size)}/>
103
- </StyledTokenButton>);
104
- };
105
- RemoveTokenButton.defaultProps = {
106
- size: TokenBase_1.defaultTokenSize
107
- };
108
- exports.default = RemoveTokenButton;
@@ -1,49 +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 TokenTextContainer = styled_components_1.default('span') `
8
- flex-grow: 1;
9
- min-width: 0;
10
- overflow: hidden;
11
- text-overflow: ellipsis;
12
- white-space: nowrap;
13
-
14
- // reset button styles, make the cursor a pointer, and add line-height
15
- background: transparent;
16
- border: none;
17
- color: inherit;
18
- font: inherit;
19
- margin: 0;
20
- overflow: visible;
21
- padding: 0;
22
- width: auto;
23
- -webkit-font-smoothing: inherit;
24
- -moz-osx-font-smoothing: inherit;
25
- -webkit-appearance: none;
26
- line-height: 1;
27
-
28
- // reset anchor styles
29
- color: currentColor;
30
- text-decoration: none;
31
-
32
- // Position psuedo-element above text content, but below the
33
- // remove button.
34
- // This ensures the <a> or <button> receives the click no
35
- // matter where on the token the user clicks.
36
- &:is(a, button, [tabIndex='0']) {
37
- cursor: pointer;
38
-
39
- &:after {
40
- content: '';
41
- position: absolute;
42
- left: 0;
43
- top: 0;
44
- right: 0;
45
- bottom: 0;
46
- }
47
- }
48
- `;
49
- exports.default = TokenTextContainer;
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
-
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,24 +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 sx_1 = __importDefault(require("./sx"));
9
- const Truncate = styled_components_1.default.div `
10
- display: ${props => (props.inline ? 'inline-block' : 'inherit')};
11
- overflow: hidden;
12
- text-overflow: ellipsis;
13
- vertical-align: ${props => (props.inline ? 'top' : 'initial')};
14
- white-space: nowrap;
15
- ${styled_system_1.maxWidth}
16
- ${props => (props.expandable ? `&:hover { max-width: 10000px; }` : '')}
17
- ${sx_1.default};
18
- `;
19
- Truncate.defaultProps = {
20
- expandable: false,
21
- inline: false,
22
- maxWidth: 125
23
- };
24
- exports.default = Truncate;