@primer/components 0.0.0-2021118165314 → 0.0.0-20211181903

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 (119) 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 +11 -17
  6. package/lib/CheckboxInputField.d.ts +11 -0
  7. package/lib/CheckboxInputField.js +73 -0
  8. package/lib/ChoiceFieldset/ChoiceFieldCaption.d.ts +3 -0
  9. package/lib/ChoiceFieldset/ChoiceFieldCaption.js +35 -0
  10. package/lib/ChoiceFieldset/ChoiceFieldLabel.d.ts +3 -0
  11. package/lib/ChoiceFieldset/ChoiceFieldLabel.js +35 -0
  12. package/lib/ChoiceFieldset/ChoiceFieldset.d.ts +65 -0
  13. package/lib/ChoiceFieldset/ChoiceFieldset.js +93 -0
  14. package/lib/ChoiceFieldset/ChoiceFieldsetDescription.d.ts +3 -0
  15. package/lib/ChoiceFieldset/ChoiceFieldsetDescription.js +29 -0
  16. package/lib/ChoiceFieldset/ChoiceFieldsetLegend.d.ts +9 -0
  17. package/lib/ChoiceFieldset/ChoiceFieldsetLegend.js +44 -0
  18. package/lib/ChoiceFieldset/ChoiceFieldsetList.d.ts +9 -0
  19. package/lib/ChoiceFieldset/ChoiceFieldsetList.js +71 -0
  20. package/lib/ChoiceFieldset/ChoiceFieldsetListContext.d.ts +19 -0
  21. package/lib/ChoiceFieldset/ChoiceFieldsetListContext.js +15 -0
  22. package/lib/ChoiceFieldset/ChoiceFieldsetListItem.d.ts +25 -0
  23. package/lib/ChoiceFieldset/ChoiceFieldsetListItem.js +75 -0
  24. package/lib/ChoiceFieldset/ChoiceFieldsetValidation.d.ts +6 -0
  25. package/lib/ChoiceFieldset/ChoiceFieldsetValidation.js +17 -0
  26. package/lib/ChoiceFieldset/index.d.ts +3 -0
  27. package/lib/ChoiceFieldset/index.js +23 -0
  28. package/lib/RadioInputField.d.ts +10 -0
  29. package/lib/RadioInputField.js +74 -0
  30. package/lib/TextInputField.d.ts +583 -0
  31. package/lib/TextInputField.js +66 -0
  32. package/lib/_InputCaption.d.ts +13 -0
  33. package/lib/_InputCaption.js +27 -0
  34. package/lib/_InputField/InputField.d.ts +39 -0
  35. package/lib/_InputField/InputField.js +88 -0
  36. package/lib/_InputField/InputFieldCaption.d.ts +3 -0
  37. package/lib/_InputField/InputFieldCaption.js +30 -0
  38. package/lib/_InputField/InputFieldLabel.d.ts +9 -0
  39. package/lib/_InputField/InputFieldLabel.js +34 -0
  40. package/lib/_InputField/InputFieldValidation.d.ts +6 -0
  41. package/lib/_InputField/InputFieldValidation.js +17 -0
  42. package/lib/_InputField/ToggleInputField.d.ts +13 -0
  43. package/lib/_InputField/ToggleInputField.js +75 -0
  44. package/lib/_InputField/ToggleInputLeadingVisual.d.ts +3 -0
  45. package/lib/_InputField/ToggleInputLeadingVisual.js +22 -0
  46. package/lib/_InputField/ValidationAnimationContainer.d.ts +6 -0
  47. package/lib/_InputField/ValidationAnimationContainer.js +48 -0
  48. package/lib/_InputField/index.d.ts +1 -0
  49. package/lib/_InputField/index.js +15 -0
  50. package/lib/_InputField/slots.d.ts +13 -0
  51. package/lib/_InputField/slots.js +17 -0
  52. package/lib/_InputLabel.d.ts +8 -0
  53. package/lib/_InputLabel.js +45 -0
  54. package/lib/_InputValidation.d.ts +8 -0
  55. package/lib/_InputValidation.js +59 -0
  56. package/lib/_VisuallyHidden.d.ts +6 -0
  57. package/lib/_VisuallyHidden.js +39 -0
  58. package/lib/index.d.ts +4 -0
  59. package/lib/index.js +38 -0
  60. package/lib/utils/types/FormValidationStatus.d.ts +1 -0
  61. package/lib/utils/types/FormValidationStatus.js +1 -0
  62. package/lib-esm/Autocomplete/AutocompleteMenu.js +7 -16
  63. package/lib-esm/CheckboxInputField.d.ts +11 -0
  64. package/lib-esm/CheckboxInputField.js +56 -0
  65. package/lib-esm/ChoiceFieldset/ChoiceFieldCaption.d.ts +3 -0
  66. package/lib-esm/ChoiceFieldset/ChoiceFieldCaption.js +20 -0
  67. package/lib-esm/ChoiceFieldset/ChoiceFieldLabel.d.ts +3 -0
  68. package/lib-esm/ChoiceFieldset/ChoiceFieldLabel.js +20 -0
  69. package/lib-esm/ChoiceFieldset/ChoiceFieldset.d.ts +65 -0
  70. package/lib-esm/ChoiceFieldset/ChoiceFieldset.js +71 -0
  71. package/lib-esm/ChoiceFieldset/ChoiceFieldsetDescription.d.ts +3 -0
  72. package/lib-esm/ChoiceFieldset/ChoiceFieldsetDescription.js +17 -0
  73. package/lib-esm/ChoiceFieldset/ChoiceFieldsetLegend.d.ts +9 -0
  74. package/lib-esm/ChoiceFieldset/ChoiceFieldsetLegend.js +31 -0
  75. package/lib-esm/ChoiceFieldset/ChoiceFieldsetList.d.ts +9 -0
  76. package/lib-esm/ChoiceFieldset/ChoiceFieldsetList.js +55 -0
  77. package/lib-esm/ChoiceFieldset/ChoiceFieldsetListContext.d.ts +19 -0
  78. package/lib-esm/ChoiceFieldset/ChoiceFieldsetListContext.js +5 -0
  79. package/lib-esm/ChoiceFieldset/ChoiceFieldsetListItem.d.ts +25 -0
  80. package/lib-esm/ChoiceFieldset/ChoiceFieldsetListItem.js +51 -0
  81. package/lib-esm/ChoiceFieldset/ChoiceFieldsetValidation.d.ts +6 -0
  82. package/lib-esm/ChoiceFieldset/ChoiceFieldsetValidation.js +7 -0
  83. package/lib-esm/ChoiceFieldset/index.d.ts +3 -0
  84. package/lib-esm/ChoiceFieldset/index.js +2 -0
  85. package/lib-esm/RadioInputField.d.ts +10 -0
  86. package/lib-esm/RadioInputField.js +56 -0
  87. package/lib-esm/TextInputField.d.ts +583 -0
  88. package/lib-esm/TextInputField.js +50 -0
  89. package/lib-esm/_InputCaption.d.ts +13 -0
  90. package/lib-esm/_InputCaption.js +16 -0
  91. package/lib-esm/_InputField/InputField.d.ts +39 -0
  92. package/lib-esm/_InputField/InputField.js +69 -0
  93. package/lib-esm/_InputField/InputFieldCaption.d.ts +3 -0
  94. package/lib-esm/_InputField/InputFieldCaption.js +18 -0
  95. package/lib-esm/_InputField/InputFieldLabel.d.ts +9 -0
  96. package/lib-esm/_InputField/InputFieldLabel.js +22 -0
  97. package/lib-esm/_InputField/InputFieldValidation.d.ts +6 -0
  98. package/lib-esm/_InputField/InputFieldValidation.js +7 -0
  99. package/lib-esm/_InputField/ToggleInputField.d.ts +13 -0
  100. package/lib-esm/_InputField/ToggleInputField.js +58 -0
  101. package/lib-esm/_InputField/ToggleInputLeadingVisual.d.ts +3 -0
  102. package/lib-esm/_InputField/ToggleInputLeadingVisual.js +11 -0
  103. package/lib-esm/_InputField/ValidationAnimationContainer.d.ts +6 -0
  104. package/lib-esm/_InputField/ValidationAnimationContainer.js +33 -0
  105. package/lib-esm/_InputField/index.d.ts +1 -0
  106. package/lib-esm/_InputField/index.js +1 -0
  107. package/lib-esm/_InputField/slots.d.ts +13 -0
  108. package/lib-esm/_InputField/slots.js +5 -0
  109. package/lib-esm/_InputLabel.d.ts +8 -0
  110. package/lib-esm/_InputLabel.js +33 -0
  111. package/lib-esm/_InputValidation.d.ts +8 -0
  112. package/lib-esm/_InputValidation.js +46 -0
  113. package/lib-esm/_VisuallyHidden.d.ts +6 -0
  114. package/lib-esm/_VisuallyHidden.js +26 -0
  115. package/lib-esm/index.d.ts +4 -0
  116. package/lib-esm/index.js +4 -0
  117. package/lib-esm/utils/types/FormValidationStatus.d.ts +1 -0
  118. package/lib-esm/utils/types/FormValidationStatus.js +1 -0
  119. package/package.json +2 -2
@@ -0,0 +1,19 @@
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
+ disabled?: boolean | undefined;
8
+ name: string;
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
+ selected?: string[] | undefined;
17
+ selectionVariant?: "single" | "multiple" | undefined;
18
+ } | null>;
19
+ export default ChoiceFieldsetListContext;
@@ -0,0 +1,5 @@
1
+ import { createContext } from 'react';
2
+ import { CheckboxInputField } from '..';
3
+ const ChoiceFieldsetListContext = /*#__PURE__*/createContext(null);
4
+ CheckboxInputField.Input;
5
+ export default ChoiceFieldsetListContext;
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { ComponentProps } from '../utils/types';
3
+ export interface ChoiceFieldProps {
4
+ /**
5
+ * Whether the field is ready for user input
6
+ */
7
+ disabled?: boolean;
8
+ /**
9
+ * The unique identifier for this field. Used to associate the label, validation text, and caption text.
10
+ * If an ID is not provided, one will be automatically generated.
11
+ */
12
+ id?: string;
13
+ /**
14
+ * The value that is being selected
15
+ */
16
+ value: string;
17
+ }
18
+ declare const ChoiceFieldsetListItem: React.FC<ChoiceFieldProps>;
19
+ export declare type ChoiceFieldComponentProps = ComponentProps<typeof ChoiceFieldsetListItem>;
20
+ declare const _default: React.FC<ChoiceFieldProps> & {
21
+ Caption: React.FC<{}>;
22
+ Label: React.FC<{}>;
23
+ LeadingVisual: React.FC<{}>;
24
+ };
25
+ export default _default;
@@ -0,0 +1,51 @@
1
+ import React, { useContext } from 'react';
2
+ import { useSSRSafeId } from '..';
3
+ import ToggleInputLeadingVisual from '../_InputField/ToggleInputLeadingVisual';
4
+ import ChoiceFieldCaption from './ChoiceFieldCaption';
5
+ import ChoiceFieldLabel from './ChoiceFieldLabel';
6
+ import ChoiceFieldsetListContext from './ChoiceFieldsetListContext';
7
+
8
+ const ChoiceFieldsetListItem = ({
9
+ children,
10
+ id,
11
+ disabled: disabledProp,
12
+ value
13
+ }) => {
14
+ const choiceFieldsetListContext = useContext(ChoiceFieldsetListContext);
15
+
16
+ if (choiceFieldsetListContext === null) {
17
+ throw new Error('ChoiceFieldsetListContext returned null');
18
+ }
19
+
20
+ const {
21
+ name,
22
+ onChange,
23
+ fieldComponent: FieldComponent,
24
+ selected,
25
+ disabled,
26
+ selectionVariant
27
+ } = choiceFieldsetListContext;
28
+ const fieldId = useSSRSafeId(id);
29
+ const labelChild = React.Children.toArray(children).find(child => /*#__PURE__*/React.isValidElement(child) && child.type === ChoiceFieldLabel);
30
+ const otherValidChildren = React.Children.toArray(children).filter(child => /*#__PURE__*/React.isValidElement(child) && (child.type === ChoiceFieldCaption || child.type === ToggleInputLeadingVisual));
31
+ return /*#__PURE__*/React.createElement(FieldComponent, {
32
+ id: fieldId,
33
+ disabled: disabledProp || disabled
34
+ }, /*#__PURE__*/React.createElement(FieldComponent.Input, {
35
+ checked: selected === null || selected === void 0 ? void 0 : selected.includes(value),
36
+ value: value,
37
+ name: selectionVariant === 'multiple' ? value : name,
38
+ onChange: onChange
39
+ }), labelChild ? // if <Item.Label> was passed, we can just render the children as-is
40
+ children :
41
+ /*#__PURE__*/
42
+ // if <Item.Label> was NOT passed, treat all the children except <Item.Caption> and <Item.LeadingVisual> as the label
43
+ React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FieldComponent.Label, null, children), otherValidChildren));
44
+ };
45
+
46
+ ChoiceFieldsetListItem.displayName = "ChoiceFieldsetListItem";
47
+ export default Object.assign(ChoiceFieldsetListItem, {
48
+ Caption: ChoiceFieldCaption,
49
+ Label: ChoiceFieldLabel,
50
+ LeadingVisual: ToggleInputLeadingVisual
51
+ });
@@ -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,7 @@
1
+ import React from 'react';
2
+
3
+ const ChoiceFieldsetValidation = ({
4
+ children
5
+ }) => /*#__PURE__*/React.createElement(React.Fragment, null, children);
6
+
7
+ export default ChoiceFieldsetValidation;
@@ -0,0 +1,3 @@
1
+ export { default } from './ChoiceFieldset';
2
+ export { default as Item } from './ChoiceFieldsetListItem';
3
+ export type { ChoiceFieldsetProps } from './ChoiceFieldset';
@@ -0,0 +1,2 @@
1
+ export { default } from './ChoiceFieldset';
2
+ export { default as Item } from './ChoiceFieldsetListItem';
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { RadioProps } from '.';
3
+ import { ToggleInputFieldProps } from './_InputField/ToggleInputField';
4
+ declare const _default: React.FC<ToggleInputFieldProps> & {
5
+ Input: React.FC<RadioProps>;
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 { 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
+ });