@primer/components 0.0.0-202111795553 → 0.0.0-2021118142135

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 (81) hide show
  1. package/dist/browser.esm.js +2 -2
  2. package/dist/browser.esm.js.map +1 -1
  3. package/dist/browser.umd.js +2 -2
  4. package/dist/browser.umd.js.map +1 -1
  5. package/lib/Autocomplete/AutocompleteMenu.js +6 -13
  6. package/lib/BranchName.js +1 -1
  7. package/lib/CheckboxInputField.d.ts +10 -0
  8. package/lib/CheckboxInputField.js +73 -0
  9. package/lib/RadioInputField.d.ts +9 -0
  10. package/lib/RadioInputField.js +74 -0
  11. package/lib/TextInputField.d.ts +583 -0
  12. package/lib/TextInputField.js +66 -0
  13. package/lib/_InputCaption.d.ts +13 -0
  14. package/lib/_InputCaption.js +26 -0
  15. package/lib/_InputField/InputField.d.ts +39 -0
  16. package/lib/_InputField/InputField.js +90 -0
  17. package/lib/_InputField/InputFieldCaption.d.ts +3 -0
  18. package/lib/_InputField/InputFieldCaption.js +30 -0
  19. package/lib/_InputField/InputFieldLabel.d.ts +9 -0
  20. package/lib/_InputField/InputFieldLabel.js +34 -0
  21. package/lib/_InputField/InputFieldValidation.d.ts +6 -0
  22. package/lib/_InputField/InputFieldValidation.js +17 -0
  23. package/lib/_InputField/ToggleInputField.d.ts +13 -0
  24. package/lib/_InputField/ToggleInputField.js +71 -0
  25. package/lib/_InputField/ToggleInputLeadingVisual.d.ts +3 -0
  26. package/lib/_InputField/ToggleInputLeadingVisual.js +22 -0
  27. package/lib/_InputField/ValidationAnimationContainer.d.ts +6 -0
  28. package/lib/_InputField/ValidationAnimationContainer.js +48 -0
  29. package/lib/_InputField/index.d.ts +1 -0
  30. package/lib/_InputField/index.js +15 -0
  31. package/lib/_InputField/slots.d.ts +13 -0
  32. package/lib/_InputField/slots.js +17 -0
  33. package/lib/_InputLabel.d.ts +8 -0
  34. package/lib/_InputLabel.js +44 -0
  35. package/lib/_InputValidation.d.ts +8 -0
  36. package/lib/_InputValidation.js +56 -0
  37. package/lib/_VisuallyHidden.d.ts +6 -0
  38. package/lib/_VisuallyHidden.js +39 -0
  39. package/lib/index.d.ts +3 -0
  40. package/lib/index.js +24 -0
  41. package/lib/utils/types/FormValidationStatus.d.ts +1 -0
  42. package/lib/utils/types/FormValidationStatus.js +1 -0
  43. package/lib-esm/Autocomplete/AutocompleteMenu.js +3 -13
  44. package/lib-esm/BranchName.js +1 -1
  45. package/lib-esm/CheckboxInputField.d.ts +10 -0
  46. package/lib-esm/CheckboxInputField.js +56 -0
  47. package/lib-esm/RadioInputField.d.ts +9 -0
  48. package/lib-esm/RadioInputField.js +56 -0
  49. package/lib-esm/TextInputField.d.ts +583 -0
  50. package/lib-esm/TextInputField.js +50 -0
  51. package/lib-esm/_InputCaption.d.ts +13 -0
  52. package/lib-esm/_InputCaption.js +15 -0
  53. package/lib-esm/_InputField/InputField.d.ts +39 -0
  54. package/lib-esm/_InputField/InputField.js +70 -0
  55. package/lib-esm/_InputField/InputFieldCaption.d.ts +3 -0
  56. package/lib-esm/_InputField/InputFieldCaption.js +18 -0
  57. package/lib-esm/_InputField/InputFieldLabel.d.ts +9 -0
  58. package/lib-esm/_InputField/InputFieldLabel.js +22 -0
  59. package/lib-esm/_InputField/InputFieldValidation.d.ts +6 -0
  60. package/lib-esm/_InputField/InputFieldValidation.js +7 -0
  61. package/lib-esm/_InputField/ToggleInputField.d.ts +13 -0
  62. package/lib-esm/_InputField/ToggleInputField.js +54 -0
  63. package/lib-esm/_InputField/ToggleInputLeadingVisual.d.ts +3 -0
  64. package/lib-esm/_InputField/ToggleInputLeadingVisual.js +11 -0
  65. package/lib-esm/_InputField/ValidationAnimationContainer.d.ts +6 -0
  66. package/lib-esm/_InputField/ValidationAnimationContainer.js +33 -0
  67. package/lib-esm/_InputField/index.d.ts +1 -0
  68. package/lib-esm/_InputField/index.js +1 -0
  69. package/lib-esm/_InputField/slots.d.ts +13 -0
  70. package/lib-esm/_InputField/slots.js +5 -0
  71. package/lib-esm/_InputLabel.d.ts +8 -0
  72. package/lib-esm/_InputLabel.js +32 -0
  73. package/lib-esm/_InputValidation.d.ts +8 -0
  74. package/lib-esm/_InputValidation.js +43 -0
  75. package/lib-esm/_VisuallyHidden.d.ts +6 -0
  76. package/lib-esm/_VisuallyHidden.js +26 -0
  77. package/lib-esm/index.d.ts +3 -0
  78. package/lib-esm/index.js +3 -0
  79. package/lib-esm/utils/types/FormValidationStatus.d.ts +1 -0
  80. package/lib-esm/utils/types/FormValidationStatus.js +1 -0
  81. package/package.json +2 -2
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _octiconsReact = require("@primer/octicons-react");
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _ = require(".");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ const validationIconMap = {
17
+ success: _octiconsReact.CheckCircleFillIcon,
18
+ error: _octiconsReact.AlertFillIcon
19
+ };
20
+ const validationColorMap = {
21
+ success: 'success.fg',
22
+ error: 'danger.fg'
23
+ };
24
+
25
+ const InputValidation = ({
26
+ children,
27
+ id,
28
+ validationStatus
29
+ }) => {
30
+ const IconComponent = validationStatus ? validationIconMap[validationStatus] : undefined;
31
+ const fgColor = validationStatus ? validationColorMap[validationStatus] : undefined;
32
+ return /*#__PURE__*/_react.default.createElement(_.Text, {
33
+ display: "flex",
34
+ color: fgColor,
35
+ fontSize: 0,
36
+ sx: {
37
+ alignItems: 'baseline',
38
+ a: {
39
+ color: 'currentColor',
40
+ textDecoration: 'underline'
41
+ }
42
+ }
43
+ }, IconComponent && /*#__PURE__*/_react.default.createElement(_.Box, {
44
+ as: "span",
45
+ mr: 1
46
+ }, /*#__PURE__*/_react.default.createElement(IconComponent, {
47
+ size: 12,
48
+ fill: "currentColor"
49
+ })), /*#__PURE__*/_react.default.createElement("span", {
50
+ id: id
51
+ }, children));
52
+ };
53
+
54
+ InputValidation.displayName = "InputValidation";
55
+ var _default = InputValidation;
56
+ exports.default = _default;
@@ -0,0 +1,6 @@
1
+ import { SxProp } from './sx';
2
+ interface Props {
3
+ isVisible?: boolean;
4
+ }
5
+ declare const VisuallyHidden: import("styled-components").StyledComponent<"span", any, Props & SxProp, never>;
6
+ export default VisuallyHidden;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
9
+
10
+ var _sx = _interopRequireDefault(require("./sx"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ const VisuallyHidden = _styledComponents.default.span.withConfig({
15
+ displayName: "_VisuallyHidden__VisuallyHidden",
16
+ componentId: "sc-1k15c4h-0"
17
+ })(["", ""], props => {
18
+ if (props.isVisible) {
19
+ return _sx.default;
20
+ }
21
+
22
+ return `
23
+ position: absolute;
24
+ width: 1px;
25
+ height: 1px;
26
+ padding: 0;
27
+ margin: -1px;
28
+ overflow: hidden;
29
+ clip: rect(0, 0, 0, 0);
30
+ white-space: nowrap;
31
+ border-width: 0;
32
+ `;
33
+ });
34
+
35
+ VisuallyHidden.defaultProps = {
36
+ isVisible: true
37
+ };
38
+ var _default = VisuallyHidden;
39
+ exports.default = _default;
package/lib/index.d.ts CHANGED
@@ -48,6 +48,7 @@ export { default as CircleBadge } from './CircleBadge';
48
48
  export type { CircleBadgeProps, CircleBadgeIconProps } from './CircleBadge';
49
49
  export { default as CircleOcticon } from './CircleOcticon';
50
50
  export type { CircleOcticonProps } from './CircleOcticon';
51
+ export { default as CheckboxInputField } from './CheckboxInputField';
51
52
  export { default as CounterLabel } from './CounterLabel';
52
53
  export type { CounterLabelProps } from './CounterLabel';
53
54
  export { default as Details } from './Details';
@@ -88,6 +89,7 @@ export { default as Popover } from './Popover';
88
89
  export type { PopoverProps, PopoverContentProps } from './Popover';
89
90
  export { default as ProgressBar } from './ProgressBar';
90
91
  export type { ProgressBarProps } from './ProgressBar';
92
+ export { default as RadioInputField } from './RadioInputField';
91
93
  export { default as SelectMenu } from './SelectMenu';
92
94
  export type { SelectMenuProps, SelectMenuDividerProps, SelectMenuFilterProps, SelectMenuFooterProps, SelectMenuItemProps, SelectMenuListProps, SelectMenuModalProps, SelectMenuTabsProps, SelectMenuHeaderProps, SelectMenuTabProps, SelectMenuTabPanelProps, SelectMenuLoadingAnimationProps } from './SelectMenu';
93
95
  export { default as SideNav } from './SideNav';
@@ -104,6 +106,7 @@ export { default as TabNav } from './TabNav';
104
106
  export type { TabNavProps, TabNavLinkProps } from './TabNav';
105
107
  export { default as TextInput } from './TextInput';
106
108
  export type { TextInputProps } from './TextInput';
109
+ export { default as TextInputField } from './TextInputField';
107
110
  export { default as TextInputWithTokens } from './TextInputWithTokens';
108
111
  export type { TextInputWithTokensProps } from './TextInputWithTokens';
109
112
  export { default as Text } from './Text';
package/lib/index.js CHANGED
@@ -273,6 +273,12 @@ Object.defineProperty(exports, "CircleOcticon", {
273
273
  return _CircleOcticon.default;
274
274
  }
275
275
  });
276
+ Object.defineProperty(exports, "CheckboxInputField", {
277
+ enumerable: true,
278
+ get: function () {
279
+ return _CheckboxInputField.default;
280
+ }
281
+ });
276
282
  Object.defineProperty(exports, "CounterLabel", {
277
283
  enumerable: true,
278
284
  get: function () {
@@ -399,6 +405,12 @@ Object.defineProperty(exports, "ProgressBar", {
399
405
  return _ProgressBar.default;
400
406
  }
401
407
  });
408
+ Object.defineProperty(exports, "RadioInputField", {
409
+ enumerable: true,
410
+ get: function () {
411
+ return _RadioInputField.default;
412
+ }
413
+ });
402
414
  Object.defineProperty(exports, "SelectMenu", {
403
415
  enumerable: true,
404
416
  get: function () {
@@ -447,6 +459,12 @@ Object.defineProperty(exports, "TextInput", {
447
459
  return _TextInput.default;
448
460
  }
449
461
  });
462
+ Object.defineProperty(exports, "TextInputField", {
463
+ enumerable: true,
464
+ get: function () {
465
+ return _TextInputField.default;
466
+ }
467
+ });
450
468
  Object.defineProperty(exports, "TextInputWithTokens", {
451
469
  enumerable: true,
452
470
  get: function () {
@@ -580,6 +598,8 @@ var _CircleBadge = _interopRequireDefault(require("./CircleBadge"));
580
598
 
581
599
  var _CircleOcticon = _interopRequireDefault(require("./CircleOcticon"));
582
600
 
601
+ var _CheckboxInputField = _interopRequireDefault(require("./CheckboxInputField"));
602
+
583
603
  var _CounterLabel = _interopRequireDefault(require("./CounterLabel"));
584
604
 
585
605
  var _Details = _interopRequireDefault(require("./Details"));
@@ -620,6 +640,8 @@ var _Popover = _interopRequireDefault(require("./Popover"));
620
640
 
621
641
  var _ProgressBar = _interopRequireDefault(require("./ProgressBar"));
622
642
 
643
+ var _RadioInputField = _interopRequireDefault(require("./RadioInputField"));
644
+
623
645
  var _SelectMenu = _interopRequireDefault(require("./SelectMenu"));
624
646
 
625
647
  var _SideNav = _interopRequireDefault(require("./SideNav"));
@@ -636,6 +658,8 @@ var _TabNav = _interopRequireDefault(require("./TabNav"));
636
658
 
637
659
  var _TextInput = _interopRequireDefault(require("./TextInput"));
638
660
 
661
+ var _TextInputField = _interopRequireDefault(require("./TextInputField"));
662
+
639
663
  var _TextInputWithTokens = _interopRequireDefault(require("./TextInputWithTokens"));
640
664
 
641
665
  var _Text = _interopRequireDefault(require("./Text"));
@@ -0,0 +1 @@
1
+ export declare type FormValidationStatus = 'error' | 'success';
@@ -0,0 +1 @@
1
+ "use strict";
@@ -6,6 +6,7 @@ import { AutocompleteContext } from './AutocompleteContext';
6
6
  import { PlusIcon } from '@primer/octicons-react';
7
7
  import { uniqueId } from '../utils/uniqueId';
8
8
  import { scrollIntoViewingArea } from '../behaviors/scrollIntoViewingArea';
9
+ import VisuallyHidden from '../_VisuallyHidden';
9
10
 
10
11
  const getDefaultSortFn = isItemSelectedFn => (itemIdA, itemIdB) => isItemSelectedFn(itemIdA) === isItemSelectedFn(itemIdB) ? 0 : isItemSelectedFn(itemIdA) ? -1 : 1;
11
12
 
@@ -164,19 +165,8 @@ function AutocompleteMenu(props) {
164
165
  setSelectedItemLength(selectedItemIds.length);
165
166
  }
166
167
  }, [selectedItemIds, setSelectedItemLength]);
167
- return /*#__PURE__*/React.createElement(Box, {
168
- sx: !showMenu ? {
169
- // visually hides this label for sighted users
170
- position: 'absolute',
171
- width: '1px',
172
- height: '1px',
173
- padding: '0',
174
- margin: '-1px',
175
- overflow: 'hidden',
176
- clip: 'rect(0, 0, 0, 0)',
177
- whiteSpace: 'nowrap',
178
- borderWidth: '0'
179
- } : {}
168
+ return /*#__PURE__*/React.createElement(VisuallyHidden, {
169
+ isVisible: showMenu
180
170
  }, loading ? /*#__PURE__*/React.createElement(Box, {
181
171
  p: 3,
182
172
  display: "flex",
@@ -4,5 +4,5 @@ import sx from './sx';
4
4
  const BranchName = styled.a.withConfig({
5
5
  displayName: "BranchName",
6
6
  componentId: "sc-167ouzm-0"
7
- })(["display:inline-block;padding:2px 6px;font-size:", ";font-family:", ";color:", ";background-color:", ";border-radius:", ";", ";"], get('fontSizes.0'), get('fonts.mono'), get('colors.fg.muted'), get('colors.accent.subtle'), get('radii.2'), sx);
7
+ })(["display:inline-block;padding:2px 6px;font-size:", ";font-family:", ";color:", ";background-color:", ";border-radius:", ";text-decoration:none;", ";"], get('fontSizes.0'), get('fonts.mono'), get('colors.accent.fg'), get('colors.accent.subtle'), get('radii.2'), sx);
8
8
  export default BranchName;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ declare const _default: React.FC<import("./_InputField/ToggleInputField").Props> & {
3
+ Input: React.FC<Omit<React.HTMLProps<HTMLInputElement>, "ref"> & {
4
+ ref?: React.Ref<HTMLInputElement> | undefined;
5
+ }>;
6
+ Caption: React.FC<{}>;
7
+ Label: React.FC<import("./_InputField/InputFieldLabel").Props>;
8
+ LeadingVisual: React.FC<{}>;
9
+ };
10
+ export default _default;
@@ -0,0 +1,56 @@
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 { Checkbox } from '.';
5
+ import InputField from './_InputField/InputField';
6
+ import { Slot } from './_InputField/slots';
7
+ import ToggleInputField from './_InputField/ToggleInputField';
8
+ import ToggleInputLeadingVisual from './_InputField/ToggleInputLeadingVisual';
9
+
10
+ const Input = ({
11
+ id: idProp,
12
+ required: requiredProp,
13
+ disabled: disabledProp,
14
+ ...rest
15
+ }) => {
16
+ if (idProp) {
17
+ // eslint-disable-next-line no-console
18
+ console.warn("instead of passing the 'id' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
19
+ }
20
+
21
+ if (disabledProp) {
22
+ // eslint-disable-next-line no-console
23
+ console.warn("instead of passing the 'disabled' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
24
+ }
25
+
26
+ if (requiredProp) {
27
+ // eslint-disable-next-line no-console
28
+ console.warn("instead of passing the 'required' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
29
+ }
30
+
31
+ return /*#__PURE__*/React.createElement(Slot, {
32
+ name: "Input"
33
+ }, ({
34
+ disabled,
35
+ id,
36
+ required,
37
+ captionId
38
+ }) => /*#__PURE__*/React.createElement(Checkbox, _extends({
39
+ "aria-describedby": captionId,
40
+ id: id,
41
+ required: required,
42
+ disabled: disabled
43
+ }, rest)));
44
+ };
45
+
46
+ Input.displayName = "Input";
47
+
48
+ const CheckboxInputField = props => /*#__PURE__*/React.createElement(ToggleInputField, props);
49
+
50
+ CheckboxInputField.displayName = "CheckboxInputField";
51
+ export default Object.assign(CheckboxInputField, {
52
+ Input,
53
+ Caption: InputField.Caption,
54
+ Label: InputField.Label,
55
+ LeadingVisual: ToggleInputLeadingVisual
56
+ });
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { RadioProps } from '.';
3
+ declare const _default: React.FC<import("./_InputField/ToggleInputField").Props> & {
4
+ Input: React.FC<RadioProps>;
5
+ Caption: React.FC<{}>;
6
+ Label: React.FC<import("./_InputField/InputFieldLabel").Props>;
7
+ LeadingVisual: React.FC<{}>;
8
+ };
9
+ export default _default;
@@ -0,0 +1,56 @@
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 { Radio } from '.';
5
+ import InputField from './_InputField/InputField';
6
+ import { Slot } from './_InputField/slots';
7
+ import ToggleInputField from './_InputField/ToggleInputField';
8
+ import ToggleInputLeadingVisual from './_InputField/ToggleInputLeadingVisual'; // pulling out `id`, `disabled`, and `required` because those should come from the parent TextInputField component
9
+
10
+ const Input = ({
11
+ id: idProp,
12
+ required: requiredProp,
13
+ disabled: disabledProp,
14
+ ...rest
15
+ }) => {
16
+ if (idProp) {
17
+ // eslint-disable-next-line no-console
18
+ console.warn("instead of passing the 'id' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
19
+ }
20
+
21
+ if (disabledProp) {
22
+ // eslint-disable-next-line no-console
23
+ console.warn("instead of passing the 'disabled' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
24
+ }
25
+
26
+ if (requiredProp) {
27
+ // eslint-disable-next-line no-console
28
+ console.warn("instead of passing the 'required' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
29
+ }
30
+
31
+ return /*#__PURE__*/React.createElement(Slot, {
32
+ name: "Input"
33
+ }, ({
34
+ disabled,
35
+ id,
36
+ required,
37
+ captionId
38
+ }) => /*#__PURE__*/React.createElement(Radio, _extends({
39
+ "aria-describedby": captionId,
40
+ id: id,
41
+ required: required,
42
+ disabled: disabled
43
+ }, rest)));
44
+ };
45
+
46
+ Input.displayName = "Input";
47
+
48
+ const RadioInputField = props => /*#__PURE__*/React.createElement(ToggleInputField, props);
49
+
50
+ RadioInputField.displayName = "RadioInputField";
51
+ export default Object.assign(RadioInputField, {
52
+ Input,
53
+ Caption: InputField.Caption,
54
+ Label: InputField.Label,
55
+ LeadingVisual: ToggleInputLeadingVisual
56
+ });