@primer/components 0.0.0-20211030161952 → 0.0.0-20211030173748

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 (126) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/dist/browser.esm.js +605 -591
  3. package/dist/browser.esm.js.map +1 -1
  4. package/dist/browser.umd.js +212 -198
  5. package/dist/browser.umd.js.map +1 -1
  6. package/lib/Autocomplete/AutocompleteMenu.js +6 -13
  7. package/lib/Checkbox.d.ts +1 -1
  8. package/lib/CheckboxInputField.d.ts +11 -0
  9. package/lib/CheckboxInputField.js +73 -0
  10. package/lib/ChoiceFieldset/ChoiceField.d.ts +22 -0
  11. package/lib/ChoiceFieldset/ChoiceField.js +58 -0
  12. package/lib/ChoiceFieldset/ChoiceFieldCaption.d.ts +3 -0
  13. package/lib/ChoiceFieldset/ChoiceFieldCaption.js +35 -0
  14. package/lib/ChoiceFieldset/ChoiceFieldInput.d.ts +13 -0
  15. package/lib/ChoiceFieldset/ChoiceFieldInput.js +43 -0
  16. package/lib/ChoiceFieldset/ChoiceFieldLabel.d.ts +3 -0
  17. package/lib/ChoiceFieldset/ChoiceFieldLabel.js +35 -0
  18. package/lib/ChoiceFieldset/ChoiceFieldset.d.ts +57 -0
  19. package/lib/ChoiceFieldset/ChoiceFieldset.js +95 -0
  20. package/lib/ChoiceFieldset/ChoiceFieldsetCaption.d.ts +3 -0
  21. package/lib/ChoiceFieldset/ChoiceFieldsetCaption.js +28 -0
  22. package/lib/ChoiceFieldset/ChoiceFieldsetLegend.d.ts +6 -0
  23. package/lib/ChoiceFieldset/ChoiceFieldsetLegend.js +41 -0
  24. package/lib/ChoiceFieldset/ChoiceFieldsetList.d.ts +6 -0
  25. package/lib/ChoiceFieldset/ChoiceFieldsetList.js +85 -0
  26. package/lib/ChoiceFieldset/ChoiceFieldsetListContext.d.ts +17 -0
  27. package/lib/ChoiceFieldset/ChoiceFieldsetListContext.js +15 -0
  28. package/lib/ChoiceFieldset/ChoiceFieldsetValidation.d.ts +6 -0
  29. package/lib/ChoiceFieldset/ChoiceFieldsetValidation.js +17 -0
  30. package/lib/ChoiceFieldset/index.d.ts +3 -0
  31. package/lib/ChoiceFieldset/index.js +23 -0
  32. package/lib/RadioInputField.d.ts +9 -0
  33. package/lib/RadioInputField.js +82 -0
  34. package/lib/TextInputField.d.ts +581 -0
  35. package/lib/TextInputField.js +66 -0
  36. package/lib/_InputCaption.d.ts +13 -0
  37. package/lib/_InputCaption.js +27 -0
  38. package/lib/_InputField/InputField.d.ts +39 -0
  39. package/lib/_InputField/InputField.js +90 -0
  40. package/lib/_InputField/InputFieldCaption.d.ts +3 -0
  41. package/lib/_InputField/InputFieldCaption.js +30 -0
  42. package/lib/_InputField/InputFieldLabel.d.ts +9 -0
  43. package/lib/_InputField/InputFieldLabel.js +34 -0
  44. package/lib/_InputField/InputFieldValidation.d.ts +6 -0
  45. package/lib/_InputField/InputFieldValidation.js +17 -0
  46. package/lib/_InputField/ToggleInputField.d.ts +13 -0
  47. package/lib/_InputField/ToggleInputField.js +71 -0
  48. package/lib/_InputField/ToggleInputLeadingVisual.d.ts +3 -0
  49. package/lib/_InputField/ToggleInputLeadingVisual.js +22 -0
  50. package/lib/_InputField/ValidationAnimationContainer.d.ts +6 -0
  51. package/lib/_InputField/ValidationAnimationContainer.js +48 -0
  52. package/lib/_InputField/index.d.ts +1 -0
  53. package/lib/_InputField/index.js +15 -0
  54. package/lib/_InputField/slots.d.ts +13 -0
  55. package/lib/_InputField/slots.js +17 -0
  56. package/lib/_InputLabel.d.ts +8 -0
  57. package/lib/_InputLabel.js +44 -0
  58. package/lib/_InputValidation.d.ts +8 -0
  59. package/lib/_InputValidation.js +56 -0
  60. package/lib/_VisuallyHidden.d.ts +6 -0
  61. package/lib/_VisuallyHidden.js +39 -0
  62. package/lib/index.d.ts +4 -0
  63. package/lib/index.js +38 -0
  64. package/lib/utils/types/FormValidationStatus.d.ts +1 -0
  65. package/lib/utils/types/FormValidationStatus.js +1 -0
  66. package/lib-esm/Autocomplete/AutocompleteMenu.js +3 -13
  67. package/lib-esm/Checkbox.d.ts +1 -1
  68. package/lib-esm/CheckboxInputField.d.ts +11 -0
  69. package/lib-esm/CheckboxInputField.js +56 -0
  70. package/lib-esm/ChoiceFieldset/ChoiceField.d.ts +22 -0
  71. package/lib-esm/ChoiceFieldset/ChoiceField.js +36 -0
  72. package/lib-esm/ChoiceFieldset/ChoiceFieldCaption.d.ts +3 -0
  73. package/lib-esm/ChoiceFieldset/ChoiceFieldCaption.js +20 -0
  74. package/lib-esm/ChoiceFieldset/ChoiceFieldInput.d.ts +13 -0
  75. package/lib-esm/ChoiceFieldset/ChoiceFieldInput.js +28 -0
  76. package/lib-esm/ChoiceFieldset/ChoiceFieldLabel.d.ts +3 -0
  77. package/lib-esm/ChoiceFieldset/ChoiceFieldLabel.js +20 -0
  78. package/lib-esm/ChoiceFieldset/ChoiceFieldset.d.ts +57 -0
  79. package/lib-esm/ChoiceFieldset/ChoiceFieldset.js +72 -0
  80. package/lib-esm/ChoiceFieldset/ChoiceFieldsetCaption.d.ts +3 -0
  81. package/lib-esm/ChoiceFieldset/ChoiceFieldsetCaption.js +16 -0
  82. package/lib-esm/ChoiceFieldset/ChoiceFieldsetLegend.d.ts +6 -0
  83. package/lib-esm/ChoiceFieldset/ChoiceFieldsetLegend.js +28 -0
  84. package/lib-esm/ChoiceFieldset/ChoiceFieldsetList.d.ts +6 -0
  85. package/lib-esm/ChoiceFieldset/ChoiceFieldsetList.js +68 -0
  86. package/lib-esm/ChoiceFieldset/ChoiceFieldsetListContext.d.ts +17 -0
  87. package/lib-esm/ChoiceFieldset/ChoiceFieldsetListContext.js +5 -0
  88. package/lib-esm/ChoiceFieldset/ChoiceFieldsetValidation.d.ts +6 -0
  89. package/lib-esm/ChoiceFieldset/ChoiceFieldsetValidation.js +7 -0
  90. package/lib-esm/ChoiceFieldset/index.d.ts +3 -0
  91. package/lib-esm/ChoiceFieldset/index.js +2 -0
  92. package/lib-esm/RadioInputField.d.ts +9 -0
  93. package/lib-esm/RadioInputField.js +65 -0
  94. package/lib-esm/TextInputField.d.ts +581 -0
  95. package/lib-esm/TextInputField.js +50 -0
  96. package/lib-esm/_InputCaption.d.ts +13 -0
  97. package/lib-esm/_InputCaption.js +16 -0
  98. package/lib-esm/_InputField/InputField.d.ts +39 -0
  99. package/lib-esm/_InputField/InputField.js +70 -0
  100. package/lib-esm/_InputField/InputFieldCaption.d.ts +3 -0
  101. package/lib-esm/_InputField/InputFieldCaption.js +18 -0
  102. package/lib-esm/_InputField/InputFieldLabel.d.ts +9 -0
  103. package/lib-esm/_InputField/InputFieldLabel.js +22 -0
  104. package/lib-esm/_InputField/InputFieldValidation.d.ts +6 -0
  105. package/lib-esm/_InputField/InputFieldValidation.js +7 -0
  106. package/lib-esm/_InputField/ToggleInputField.d.ts +13 -0
  107. package/lib-esm/_InputField/ToggleInputField.js +54 -0
  108. package/lib-esm/_InputField/ToggleInputLeadingVisual.d.ts +3 -0
  109. package/lib-esm/_InputField/ToggleInputLeadingVisual.js +11 -0
  110. package/lib-esm/_InputField/ValidationAnimationContainer.d.ts +6 -0
  111. package/lib-esm/_InputField/ValidationAnimationContainer.js +33 -0
  112. package/lib-esm/_InputField/index.d.ts +1 -0
  113. package/lib-esm/_InputField/index.js +1 -0
  114. package/lib-esm/_InputField/slots.d.ts +13 -0
  115. package/lib-esm/_InputField/slots.js +5 -0
  116. package/lib-esm/_InputLabel.d.ts +8 -0
  117. package/lib-esm/_InputLabel.js +32 -0
  118. package/lib-esm/_InputValidation.d.ts +8 -0
  119. package/lib-esm/_InputValidation.js +43 -0
  120. package/lib-esm/_VisuallyHidden.d.ts +6 -0
  121. package/lib-esm/_VisuallyHidden.js +26 -0
  122. package/lib-esm/index.d.ts +4 -0
  123. package/lib-esm/index.js +4 -0
  124. package/lib-esm/utils/types/FormValidationStatus.d.ts +1 -0
  125. package/lib-esm/utils/types/FormValidationStatus.js +1 -0
  126. package/package.json +2 -2
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
12
+ var _ = require("..");
13
+
14
+ var _constants = require("../constants");
15
+
16
+ var _uniqueId = require("../utils/uniqueId");
17
+
18
+ var _ChoiceFieldset = require("./ChoiceFieldset");
19
+
20
+ var _ChoiceFieldsetListContext = _interopRequireDefault(require("./ChoiceFieldsetListContext"));
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ const List = _styledComponents.default.ul.withConfig({
25
+ displayName: "ChoiceFieldsetList__List",
26
+ componentId: "sc-16da7ba-0"
27
+ })(["display:flex;flex-direction:column;list-style:none;margin:0;padding:0;> li + li{margin-top:", ";}"], (0, _constants.get)('space.2'));
28
+
29
+ const ChoiceFieldsetList = ({
30
+ selectionVariant,
31
+ children
32
+ }) => {
33
+ var _React$Children$map;
34
+
35
+ const initialSelectedChoices = ((_React$Children$map = _react.default.Children.map(children, child => {
36
+ if ( /*#__PURE__*/_react.default.isValidElement(child) && child.props.checked) {
37
+ return child.props.value;
38
+ }
39
+
40
+ return '';
41
+ })) === null || _React$Children$map === void 0 ? void 0 : _React$Children$map.filter(Boolean)) || [];
42
+
43
+ const getSelectedCheckboxes = (value, checked) => {
44
+ if (checked) {
45
+ return selectionVariant === 'multiple' ? [...initialSelectedChoices, value] : [value];
46
+ }
47
+
48
+ return initialSelectedChoices.filter(selectedValue => selectedValue !== value);
49
+ }; // generates a name to pass to radio inputs if one was not passed in ChoiceFieldset props
50
+
51
+
52
+ const getRadioGroupName = nameFromContext => {
53
+ if (nameFromContext || selectionVariant !== 'multiple') {
54
+ return nameFromContext;
55
+ }
56
+
57
+ const generatedName = (0, _uniqueId.uniqueId)();
58
+ return generatedName;
59
+ };
60
+
61
+ return /*#__PURE__*/_react.default.createElement(_ChoiceFieldset.Slot, {
62
+ name: "ChoiceList"
63
+ }, ({
64
+ name,
65
+ onSelect
66
+ }) => /*#__PURE__*/_react.default.createElement(_ChoiceFieldsetListContext.default.Provider, {
67
+ value: {
68
+ initialSelectedChoices,
69
+ name: getRadioGroupName(name),
70
+ fieldComponent: selectionVariant === 'multiple' ? _.CheckboxInputField : _.RadioInputField,
71
+ onChange: e => {
72
+ onSelect && onSelect(getSelectedCheckboxes(e.currentTarget.value, e.currentTarget.checked));
73
+ }
74
+ }
75
+ }, /*#__PURE__*/_react.default.createElement(List, null, _react.default.Children.map(children, (child, i) => /*#__PURE__*/_react.default.createElement("li", {
76
+ key: i
77
+ }, child)))));
78
+ };
79
+
80
+ ChoiceFieldsetList.displayName = "ChoiceFieldsetList";
81
+ ChoiceFieldsetList.defaultProps = {
82
+ selectionVariant: 'single'
83
+ };
84
+ var _default = ChoiceFieldsetList;
85
+ exports.default = _default;
@@ -0,0 +1,17 @@
1
+ import { ChangeEventHandler } from 'react';
2
+ import { CheckboxInputField, RadioInputField } from '..';
3
+ import { ComponentProps } from '../utils/types';
4
+ import InputField from '../_InputField';
5
+ import ToggleInputField, { ToggleInputFieldProps } from '../_InputField/ToggleInputField';
6
+ declare const ChoiceFieldsetListContext: import("react").Context<{
7
+ initialSelectedChoices?: string[] | undefined;
8
+ name?: string | undefined;
9
+ onChange: ChangeEventHandler<HTMLInputElement>;
10
+ fieldComponent: React.FC<ToggleInputFieldProps> & {
11
+ Input: React.FC<ComponentProps<typeof RadioInputField.Input>> | React.FC<ComponentProps<typeof CheckboxInputField.Input>>;
12
+ Caption: React.FC<ComponentProps<typeof InputField.Caption>>;
13
+ Label: React.FC<ComponentProps<typeof InputField.Label>>;
14
+ LeadingVisual: React.FC<ComponentProps<typeof ToggleInputField.LeadingVisual>>;
15
+ };
16
+ } | null>;
17
+ export default ChoiceFieldsetListContext;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var _ = require("..");
11
+
12
+ const ChoiceFieldsetListContext = /*#__PURE__*/(0, _react.createContext)(null);
13
+ _.CheckboxInputField.Input;
14
+ var _default = ChoiceFieldsetListContext;
15
+ exports.default = _default;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface ChoiceFieldsetValidationProps {
3
+ validationKey: string;
4
+ }
5
+ declare const ChoiceFieldsetValidation: React.FC<ChoiceFieldsetValidationProps>;
6
+ export default ChoiceFieldsetValidation;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ const ChoiceFieldsetValidation = ({
13
+ children
14
+ }) => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
15
+
16
+ var _default = ChoiceFieldsetValidation;
17
+ exports.default = _default;
@@ -0,0 +1,3 @@
1
+ export { default } from './ChoiceFieldset';
2
+ export { default as ChoiceField } from './ChoiceField';
3
+ export type { ChoiceFieldsetProps } from './ChoiceFieldset';
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _ChoiceFieldset.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "ChoiceField", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _ChoiceField.default;
16
+ }
17
+ });
18
+
19
+ var _ChoiceFieldset = _interopRequireDefault(require("./ChoiceFieldset"));
20
+
21
+ var _ChoiceField = _interopRequireDefault(require("./ChoiceField"));
22
+
23
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { ToggleInputFieldProps } from './_InputField/ToggleInputField';
3
+ declare const _default: React.FC<ToggleInputFieldProps> & {
4
+ Input: React.FC<React.HTMLProps<HTMLInputElement>>;
5
+ Caption: React.FC<{}>;
6
+ Label: React.FC<import("./_InputField/InputFieldLabel").Props>;
7
+ LeadingVisual: React.FC<{}>;
8
+ };
9
+ export default _default;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _InputField = _interopRequireDefault(require("./_InputField/InputField"));
11
+
12
+ var _slots = require("./_InputField/slots");
13
+
14
+ var _ToggleInputField = _interopRequireDefault(require("./_InputField/ToggleInputField"));
15
+
16
+ var _ToggleInputLeadingVisual = _interopRequireDefault(require("./_InputField/ToggleInputLeadingVisual"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ 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); }
21
+
22
+ // TODO: use Primer's checkbox input once it's available
23
+ // https://github.com/github/primer/issues/489
24
+ const RadioInput = props => {
25
+ return /*#__PURE__*/_react.default.createElement("input", _extends({
26
+ type: "radio"
27
+ }, props));
28
+ };
29
+
30
+ RadioInput.displayName = "RadioInput";
31
+
32
+ // pulling out `id`, `disabled`, and `required` because those should come from the parent TextInputField component
33
+ const Input = ({
34
+ id: idProp,
35
+ required: requiredProp,
36
+ disabled: disabledProp,
37
+ ...rest
38
+ }) => {
39
+ if (idProp) {
40
+ // eslint-disable-next-line no-console
41
+ console.warn("instead of passing the 'id' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
42
+ }
43
+
44
+ if (disabledProp) {
45
+ // eslint-disable-next-line no-console
46
+ console.warn("instead of passing the 'disabled' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
47
+ }
48
+
49
+ if (requiredProp) {
50
+ // eslint-disable-next-line no-console
51
+ console.warn("instead of passing the 'required' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
52
+ }
53
+
54
+ return /*#__PURE__*/_react.default.createElement(_slots.Slot, {
55
+ name: "Input"
56
+ }, ({
57
+ disabled,
58
+ id,
59
+ required,
60
+ captionId
61
+ }) => /*#__PURE__*/_react.default.createElement(RadioInput, _extends({
62
+ "aria-describedby": captionId,
63
+ id: id,
64
+ required: required,
65
+ disabled: disabled
66
+ }, rest)));
67
+ };
68
+
69
+ Input.displayName = "Input";
70
+
71
+ const RadioInputField = props => /*#__PURE__*/_react.default.createElement(_ToggleInputField.default, props);
72
+
73
+ RadioInputField.displayName = "RadioInputField";
74
+
75
+ var _default = Object.assign(RadioInputField, {
76
+ Input,
77
+ Caption: _InputField.default.Caption,
78
+ Label: _InputField.default.Label,
79
+ LeadingVisual: _ToggleInputLeadingVisual.default
80
+ });
81
+
82
+ exports.default = _default;