@primer/components 0.0.0-202195193757 → 0.0.0-202195195659

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 (61) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/browser.esm.js +93 -74
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +85 -66
  5. package/dist/browser.umd.js.map +1 -1
  6. package/lib/Autocomplete/AutocompleteInput.d.ts +1 -1
  7. package/lib/Autocomplete/AutocompleteInput.js +12 -12
  8. package/lib/Autocomplete/AutocompleteMenu.js +4 -6
  9. package/lib/Autocomplete/AutocompleteOverlay.js +1 -1
  10. package/lib/Autocomplete/index.d.ts +1 -1
  11. package/lib/TextInput.d.ts +1 -1
  12. package/lib/TextInputWithTokens.d.ts +298 -16
  13. package/lib/TextInputWithTokens.js +34 -26
  14. package/lib/Token/IssueLabelToken.d.ts +14 -0
  15. package/lib/Token/{TokenLabel.js → IssueLabelToken.js} +35 -28
  16. package/lib/Token/{TokenProfile.d.ts → ProfileToken.d.ts} +3 -3
  17. package/lib/Token/{TokenProfile.js → ProfileToken.js} +7 -7
  18. package/lib/Token/Token.d.ts +2 -2
  19. package/lib/Token/Token.js +34 -22
  20. package/lib/Token/TokenBase.d.ts +5 -5
  21. package/lib/Token/TokenBase.js +41 -25
  22. package/lib/Token/_RemoveTokenButton.d.ts +11 -2
  23. package/lib/Token/_RemoveTokenButton.js +53 -22
  24. package/lib/Token/_TokenTextContainer.d.ts +3 -0
  25. package/lib/Token/_TokenTextContainer.js +34 -0
  26. package/lib/Token/index.d.ts +2 -2
  27. package/lib/Token/index.js +6 -6
  28. package/lib/index.d.ts +1 -1
  29. package/lib/index.js +4 -4
  30. package/lib-esm/Autocomplete/AutocompleteInput.d.ts +1 -1
  31. package/lib-esm/Autocomplete/AutocompleteInput.js +12 -12
  32. package/lib-esm/Autocomplete/AutocompleteMenu.js +4 -6
  33. package/lib-esm/Autocomplete/AutocompleteOverlay.js +1 -1
  34. package/lib-esm/Autocomplete/index.d.ts +1 -1
  35. package/lib-esm/TextInput.d.ts +1 -1
  36. package/lib-esm/TextInputWithTokens.d.ts +298 -16
  37. package/lib-esm/TextInputWithTokens.js +34 -26
  38. package/lib-esm/Token/IssueLabelToken.d.ts +14 -0
  39. package/lib-esm/Token/{TokenLabel.js → IssueLabelToken.js} +34 -28
  40. package/lib-esm/Token/{TokenProfile.d.ts → ProfileToken.d.ts} +3 -3
  41. package/lib-esm/Token/{TokenProfile.js → ProfileToken.js} +7 -7
  42. package/lib-esm/Token/Token.d.ts +2 -2
  43. package/lib-esm/Token/Token.js +33 -22
  44. package/lib-esm/Token/TokenBase.d.ts +5 -5
  45. package/lib-esm/Token/TokenBase.js +41 -25
  46. package/lib-esm/Token/_RemoveTokenButton.d.ts +11 -2
  47. package/lib-esm/Token/_RemoveTokenButton.js +52 -22
  48. package/lib-esm/Token/_TokenTextContainer.d.ts +3 -0
  49. package/lib-esm/Token/_TokenTextContainer.js +21 -0
  50. package/lib-esm/Token/index.d.ts +2 -2
  51. package/lib-esm/Token/index.js +2 -2
  52. package/lib-esm/_UnstyledTextInput.js +1 -1
  53. package/lib-esm/index.d.ts +1 -1
  54. package/lib-esm/index.js +1 -1
  55. package/package.json +1 -1
  56. package/lib/Token/TokenLabel.d.ts +0 -14
  57. package/lib/Token/_tokenButtonUtils.d.ts +0 -10
  58. package/lib/Token/_tokenButtonUtils.js +0 -42
  59. package/lib-esm/Token/TokenLabel.d.ts +0 -14
  60. package/lib-esm/Token/_tokenButtonUtils.d.ts +0 -10
  61. package/lib-esm/Token/_tokenButtonUtils.js +0 -26
@@ -9,36 +9,67 @@ var _octiconsReact = require("@primer/octicons-react");
9
9
 
10
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
11
 
12
- var _TokenBase = require("./TokenBase");
12
+ var _styledSystem = require("styled-system");
13
+
14
+ var _constants = require("../constants");
15
+
16
+ var _sx = _interopRequireDefault(require("../sx"));
13
17
 
14
- var _tokenButtonUtils = require("./_tokenButtonUtils");
18
+ var _TokenBase = require("./TokenBase");
15
19
 
16
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
21
 
18
- const RemoveTokenButton = _styledComponents.default.span.attrs(({
19
- borderOffset,
20
- parentTokenTag,
21
- variant,
22
- parentTokenIsInteractive,
22
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
23
+
24
+ const variants = (0, _styledSystem.variant)({
25
+ prop: 'size',
26
+ variants: {
27
+ small: {
28
+ height: _TokenBase.tokenSizes.small,
29
+ width: _TokenBase.tokenSizes.small
30
+ },
31
+ medium: {
32
+ height: _TokenBase.tokenSizes.medium,
33
+ width: _TokenBase.tokenSizes.medium
34
+ },
35
+ large: {
36
+ height: _TokenBase.tokenSizes.large,
37
+ width: _TokenBase.tokenSizes.large
38
+ },
39
+ xlarge: {
40
+ height: _TokenBase.tokenSizes.xlarge,
41
+ width: _TokenBase.tokenSizes.xlarge
42
+ }
43
+ }
44
+ });
45
+
46
+ const getTokenButtonIconSize = variant => parseInt(_TokenBase.tokenSizes[variant || _TokenBase.defaultTokenSize], 10) * 0.75;
47
+
48
+ const StyledTokenButton = _styledComponents.default.span.withConfig({
49
+ displayName: "_RemoveTokenButton__StyledTokenButton",
50
+ componentId: "sc-14lvcw1-0"
51
+ })(["background-color:transparent;font-family:inherit;color:currentColor;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;user-select:none;appearance:none;text-decoration:none;padding:0;transform:", ";align-self:baseline;border:0;border-radius:999px;&:hover,&:focus{background-color:", ";}&:active{background-color:", ";}", " ", ""], props => `translate(${props.borderOffset}px, -${props.borderOffset}px)`, (0, _constants.get)('colors.fade.fg10'), (0, _constants.get)('colors.fade.fg15'), variants, _sx.default);
52
+
53
+ const RemoveTokenButton = ({
54
+ 'aria-label': ariaLabel,
55
+ isParentInteractive,
56
+ size,
57
+ children,
23
58
  ...rest
24
59
  }) => {
25
- delete rest.children;
26
- return {
27
- borderOffset,
28
- as: parentTokenIsInteractive ? 'span' : 'button',
29
- tabIndex: parentTokenIsInteractive ? -1 : undefined,
30
- 'aria-label': !parentTokenIsInteractive ? 'Remove token' : undefined,
31
- children: /*#__PURE__*/React.createElement(_octiconsReact.XIcon, {
32
- size: (0, _tokenButtonUtils.getTokenButtonIconSize)(variant)
33
- })
34
- };
35
- }).withConfig({
36
- displayName: "_RemoveTokenButton__RemoveTokenButton",
37
- componentId: "sc-14lvcw1-0"
38
- })(["", " ", " transform:", ";"], _tokenButtonUtils.tokenButtonStyles, _tokenButtonUtils.variants, props => `translate(${props.borderOffset}px, -${props.borderOffset}px)`);
60
+ return /*#__PURE__*/React.createElement(StyledTokenButton, _extends({
61
+ as: isParentInteractive ? 'span' : 'button',
62
+ tabIndex: isParentInteractive ? -1 : undefined,
63
+ "aria-label": !isParentInteractive ? 'Remove token' : undefined,
64
+ size: size
65
+ }, rest), /*#__PURE__*/React.createElement(_octiconsReact.XIcon, {
66
+ size: getTokenButtonIconSize(size)
67
+ }));
68
+ };
39
69
 
70
+ RemoveTokenButton.displayName = "RemoveTokenButton";
40
71
  RemoveTokenButton.defaultProps = {
41
- variant: _TokenBase.defaultTokenSize
72
+ size: _TokenBase.defaultTokenSize
42
73
  };
43
74
  var _default = RemoveTokenButton;
44
75
  exports.default = _default;
@@ -0,0 +1,3 @@
1
+ import { TokenBaseProps } from './TokenBase';
2
+ declare const TokenTextContainer: import("styled-components").StyledComponent<"span", any, Partial<TokenBaseProps>, never>;
3
+ export default TokenTextContainer;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
+
10
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
+
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
+
14
+ const TokenTextContainer = (0, _styledComponents.default)('span').withConfig({
15
+ displayName: "_TokenTextContainer__TokenTextContainer",
16
+ componentId: "sc-4t2bev-0"
17
+ })(["flex-grow:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1;", ""], props => {
18
+ if (props.as === 'a') {
19
+ return (0, _styledComponents.css)(["color:currentColor;text-decoration:none;"]);
20
+ }
21
+
22
+ if (props.as === 'button') {
23
+ // reset button styles, make the cursor a pointer, and add line-height
24
+ return (0, _styledComponents.css)(["background:transparent;border:none;color:inherit;font:inherit;margin:0;overflow:visible;padding:0;width:auto;-webkit-font-smoothing:inherit;-moz-osx-font-smoothing:inherit;-webkit-appearance:none;cursor:pointer;line-height:1;"]);
25
+ } // position psuedo-element above text content
26
+ // so it gets the click
27
+
28
+
29
+ if (props.as !== 'span') {
30
+ return (0, _styledComponents.css)(["&:after{content:'';position:absolute;left:0;top:0;right:0;bottom:0;}"]);
31
+ }
32
+ });
33
+ var _default = TokenTextContainer;
34
+ exports.default = _default;
@@ -1,3 +1,3 @@
1
1
  export { default } from './Token';
2
- export { default as TokenLabel } from './TokenLabel';
3
- export { default as TokenProfile } from './TokenProfile';
2
+ export { default as IssueLabelToken } from './IssueLabelToken';
3
+ export { default as ProfileToken } from './ProfileToken';
@@ -9,23 +9,23 @@ Object.defineProperty(exports, "default", {
9
9
  return _Token.default;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "TokenLabel", {
12
+ Object.defineProperty(exports, "IssueLabelToken", {
13
13
  enumerable: true,
14
14
  get: function () {
15
- return _TokenLabel.default;
15
+ return _IssueLabelToken.default;
16
16
  }
17
17
  });
18
- Object.defineProperty(exports, "TokenProfile", {
18
+ Object.defineProperty(exports, "ProfileToken", {
19
19
  enumerable: true,
20
20
  get: function () {
21
- return _TokenProfile.default;
21
+ return _ProfileToken.default;
22
22
  }
23
23
  });
24
24
 
25
25
  var _Token = _interopRequireDefault(require("./Token"));
26
26
 
27
- var _TokenLabel = _interopRequireDefault(require("./TokenLabel"));
27
+ var _IssueLabelToken = _interopRequireDefault(require("./IssueLabelToken"));
28
28
 
29
- var _TokenProfile = _interopRequireDefault(require("./TokenProfile"));
29
+ var _ProfileToken = _interopRequireDefault(require("./ProfileToken"));
30
30
 
31
31
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
package/lib/index.d.ts CHANGED
@@ -104,7 +104,7 @@ export { default as Text } from './Text';
104
104
  export type { TextProps } from './Text';
105
105
  export { default as Timeline } from './Timeline';
106
106
  export type { TimelineProps, TimelineBadgeProps, TimelineBodyProps, TimelineBreakProps, TimelineItemsProps } from './Timeline';
107
- export { default as Token, TokenLabel, TokenProfile } from './Token';
107
+ export { default as Token, IssueLabelToken, ProfileToken } from './Token';
108
108
  export { default as Tooltip } from './Tooltip';
109
109
  export type { TooltipProps } from './Tooltip';
110
110
  export { default as Truncate } from './Truncate';
package/lib/index.js CHANGED
@@ -459,16 +459,16 @@ Object.defineProperty(exports, "Token", {
459
459
  return _Token.default;
460
460
  }
461
461
  });
462
- Object.defineProperty(exports, "TokenLabel", {
462
+ Object.defineProperty(exports, "IssueLabelToken", {
463
463
  enumerable: true,
464
464
  get: function () {
465
- return _Token.TokenLabel;
465
+ return _Token.IssueLabelToken;
466
466
  }
467
467
  });
468
- Object.defineProperty(exports, "TokenProfile", {
468
+ Object.defineProperty(exports, "ProfileToken", {
469
469
  enumerable: true,
470
470
  get: function () {
471
- return _Token.TokenProfile;
471
+ return _Token.ProfileToken;
472
472
  }
473
473
  });
474
474
  Object.defineProperty(exports, "Tooltip", {
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type * as Polymorphic from "@radix-ui/react-polymorphic";
2
+ import type * as Polymorphic from '@radix-ui/react-polymorphic';
3
3
  import { ComponentProps } from '../utils/types';
4
4
  declare type InternalAutocompleteInputProps = {
5
5
  as?: React.ComponentType<any>;
@@ -27,12 +27,12 @@ const AutocompleteInput = /*#__PURE__*/React.forwardRef(({
27
27
  } = useContext(AutocompleteContext);
28
28
  const combinedInputRef = useCombinedRefs(inputRef, forwardedRef);
29
29
  const [highlightRemainingText, setHighlightRemainingText] = useState(true);
30
- const handleInputFocus = useCallback(e => {
31
- onFocus && onFocus(e);
30
+ const handleInputFocus = useCallback(event => {
31
+ onFocus && onFocus(event);
32
32
  setShowMenu && setShowMenu(true);
33
33
  }, [onFocus, setShowMenu]);
34
- const handleInputBlur = useCallback(e => {
35
- onBlur && onBlur(e); // HACK: wait a tick and check the focused element before hiding the autocomplete menu
34
+ const handleInputBlur = useCallback(event => {
35
+ onBlur && onBlur(event); // HACK: wait a tick and check the focused element before hiding the autocomplete menu
36
36
  // this prevents the menu from hiding when the user is clicking an option in the Autoselect.Menu,
37
37
  // but still hides the menu when the user blurs the input by tabbing out or clicking somewhere else on the page
38
38
 
@@ -42,28 +42,28 @@ const AutocompleteInput = /*#__PURE__*/React.forwardRef(({
42
42
  }
43
43
  }, 0);
44
44
  }, [onBlur, setShowMenu]);
45
- const handleInputChange = useCallback(e => {
46
- onChange && onChange(e);
47
- setInputValue && setInputValue(e.currentTarget.value);
45
+ const handleInputChange = useCallback(event => {
46
+ onChange && onChange(event);
47
+ setInputValue && setInputValue(event.currentTarget.value);
48
48
 
49
49
  if (!showMenu) {
50
50
  setShowMenu && setShowMenu(true);
51
51
  }
52
52
  }, [onChange, setInputValue, setShowMenu, showMenu]);
53
- const handleInputKeyDown = useCallback(e => {
53
+ const handleInputKeyDown = useCallback(event => {
54
54
  var _inputRef$current;
55
55
 
56
- if (e.key === 'Backspace') {
56
+ if (event.key === 'Backspace') {
57
57
  setHighlightRemainingText(false);
58
58
  }
59
59
 
60
- if (e.key === 'Escape' && inputRef !== null && inputRef !== void 0 && (_inputRef$current = inputRef.current) !== null && _inputRef$current !== void 0 && _inputRef$current.value) {
60
+ if (event.key === 'Escape' && inputRef !== null && inputRef !== void 0 && (_inputRef$current = inputRef.current) !== null && _inputRef$current !== void 0 && _inputRef$current.value) {
61
61
  setInputValue && setInputValue('');
62
62
  inputRef.current.value = '';
63
63
  }
64
64
  }, [inputRef, setInputValue, setHighlightRemainingText]);
65
- const handleInputKeyUp = useCallback(e => {
66
- if (e.key === 'Backspace') {
65
+ const handleInputKeyUp = useCallback(event => {
66
+ if (event.key === 'Backspace') {
67
67
  setHighlightRemainingText(true);
68
68
  }
69
69
  }, [setHighlightRemainingText]);
@@ -32,8 +32,6 @@ function getItemById(itemId, items) {
32
32
  return items.find(item => item.id === itemId);
33
33
  }
34
34
 
35
- ;
36
-
37
35
  // TODO: consider making 'aria-labelledby' required
38
36
  function AutocompleteMenu(props) {
39
37
  const {
@@ -58,7 +56,7 @@ function AutocompleteMenu(props) {
58
56
  loading,
59
57
  selectionVariant,
60
58
  filterFn = getDefaultItemFilter(inputValue),
61
- "aria-labelledby": ariaLabelledBy,
59
+ 'aria-labelledby': ariaLabelledBy,
62
60
  onOpenChange,
63
61
  onSelectedChange = getDefaultOnSelectionChange(setInputValue),
64
62
  customScrollContainerRef
@@ -70,7 +68,7 @@ function AutocompleteMenu(props) {
70
68
  }) => id));
71
69
  const selectableItems = useMemo(() => items.map(selectableItem => {
72
70
  return { ...selectableItem,
73
- role: "option",
71
+ role: 'option',
74
72
  id: selectableItem.id,
75
73
  selected: selectionVariant === 'multiple' ? selectedItemIds.includes(selectableItem.id) : undefined,
76
74
  onAction: item => {
@@ -125,7 +123,7 @@ function AutocompleteMenu(props) {
125
123
  }
126
124
 
127
125
  if (current) {
128
- const selectedItem = selectableItems.find(item => item.id.toString() === (current === null || current === void 0 ? void 0 : current.dataset.id));
126
+ const selectedItem = selectableItems.find(item => item.id.toString() === current.dataset.id);
129
127
  setHighlightedItem(selectedItem);
130
128
  setIsMenuDirectlyActivated && setIsMenuDirectlyActivated(directlyActivated);
131
129
  }
@@ -182,7 +180,7 @@ function AutocompleteMenu(props) {
182
180
  }, /*#__PURE__*/React.createElement(Spinner, null)) : /*#__PURE__*/React.createElement("div", {
183
181
  ref: listContainerRef
184
182
  }, allItemsToRender.length ? /*#__PURE__*/React.createElement(ActionList, {
185
- selectionVariant: "multiple" // have to typecast to `ItemProps` because we have an extra property
183
+ selectionVariant: "multiple" // have to typecast to `ItemProps` because we have an extra property
186
184
  // on `items` for Autocomplete: `metadata`
187
185
  ,
188
186
  items: allItemsToRender,
@@ -41,7 +41,7 @@ const AutocompleteOverlay = ({
41
41
  left: position === null || position === void 0 ? void 0 : position.left,
42
42
  visibility: showMenu ? 'visible' : 'hidden',
43
43
  sx: {
44
- overflow: "auto"
44
+ overflow: 'auto'
45
45
  }
46
46
  }, overlayProps), children);
47
47
  };
@@ -1,2 +1,2 @@
1
1
  export { default } from './Autocomplete';
2
- export type { AutocompleteMenuProps, AutocompleteInputProps, AutocompleteOverlayProps, } from './Autocomplete';
2
+ export type { AutocompleteMenuProps, AutocompleteInputProps, AutocompleteOverlayProps } from './Autocomplete';
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { MaxWidthProps, MinWidthProps, WidthProps } from 'styled-system';
3
- import type * as Polymorphic from "@radix-ui/react-polymorphic";
3
+ import type * as Polymorphic from '@radix-ui/react-polymorphic';
4
4
  import { SxProp } from './sx';
5
5
  import { ComponentProps } from './utils/types';
6
6
  import UnstyledTextInput from './_UnstyledTextInput';