@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
@@ -17,10 +17,14 @@ var _AutocompleteContext = require("./AutocompleteContext");
17
17
 
18
18
  var _octiconsReact = require("@primer/octicons-react");
19
19
 
20
- var _uniqueId = require("../utils/uniqueId");
21
-
22
20
  var _scrollIntoViewingArea = require("../behaviors/scrollIntoViewingArea");
23
21
 
22
+ var _VisuallyHidden = _interopRequireDefault(require("../_VisuallyHidden"));
23
+
24
+ var _ssr = require("@react-aria/ssr");
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
24
28
  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); }
25
29
 
26
30
  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; }
@@ -90,6 +94,7 @@ function AutocompleteMenu(props) {
90
94
  const [sortedItemIds, setSortedItemIds] = (0, _react.useState)(items.map(({
91
95
  id: itemId
92
96
  }) => itemId));
97
+ const generatedUniqueId = (0, _ssr.useSSRSafeId)(id);
93
98
  const selectableItems = (0, _react.useMemo)(() => items.map(selectableItem => {
94
99
  return { ...selectableItem,
95
100
  role: 'option',
@@ -125,7 +130,7 @@ function AutocompleteMenu(props) {
125
130
  onAction: item => {
126
131
  // TODO: make it possible to pass a leadingVisual when using `addNewItem`
127
132
  addNewItem.handleAddItem({ ...item,
128
- id: item.id || (0, _uniqueId.uniqueId)(),
133
+ id: item.id || generatedUniqueId,
129
134
  leadingVisual: undefined
130
135
  });
131
136
 
@@ -134,7 +139,7 @@ function AutocompleteMenu(props) {
134
139
  setAutocompleteSuggestion('');
135
140
  }
136
141
  }
137
- }] : [])], [sortedAndFilteredItemsToRender, addNewItem, setAutocompleteSuggestion, selectionVariant, setInputValue]);
142
+ }] : [])], [sortedAndFilteredItemsToRender, addNewItem, setAutocompleteSuggestion, selectionVariant, setInputValue, generatedUniqueId]);
138
143
  (0, _useFocusZone.useFocusZone)({
139
144
  containerRef: listContainerRef,
140
145
  focusOutBehavior: 'wrap',
@@ -182,19 +187,8 @@ function AutocompleteMenu(props) {
182
187
  setSelectedItemLength(selectedItemIds.length);
183
188
  }
184
189
  }, [selectedItemIds, setSelectedItemLength]);
185
- return /*#__PURE__*/_react.default.createElement(_.Box, {
186
- sx: !showMenu ? {
187
- // visually hides this label for sighted users
188
- position: 'absolute',
189
- width: '1px',
190
- height: '1px',
191
- padding: '0',
192
- margin: '-1px',
193
- overflow: 'hidden',
194
- clip: 'rect(0, 0, 0, 0)',
195
- whiteSpace: 'nowrap',
196
- borderWidth: '0'
197
- } : {}
190
+ return /*#__PURE__*/_react.default.createElement(_VisuallyHidden.default, {
191
+ isVisible: showMenu
198
192
  }, loading ? /*#__PURE__*/_react.default.createElement(_.Box, {
199
193
  p: 3,
200
194
  display: "flex",
@@ -0,0 +1,11 @@
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
+ ref?: React.Ref<HTMLInputElement> | undefined;
6
+ }>;
7
+ Caption: React.FC<{}>;
8
+ Label: React.FC<import("./_InputField/InputFieldLabel").Props>;
9
+ LeadingVisual: React.FC<{}>;
10
+ };
11
+ export default _default;
@@ -0,0 +1,73 @@
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 _ = require(".");
11
+
12
+ var _InputField = _interopRequireDefault(require("./_InputField/InputField"));
13
+
14
+ var _slots = require("./_InputField/slots");
15
+
16
+ var _ToggleInputField = _interopRequireDefault(require("./_InputField/ToggleInputField"));
17
+
18
+ var _ToggleInputLeadingVisual = _interopRequireDefault(require("./_InputField/ToggleInputLeadingVisual"));
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
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 Input = ({
25
+ id: idProp,
26
+ required: requiredProp,
27
+ disabled: disabledProp,
28
+ ...rest
29
+ }) => {
30
+ if (idProp) {
31
+ // eslint-disable-next-line no-console
32
+ console.warn("instead of passing the 'id' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
33
+ }
34
+
35
+ if (disabledProp) {
36
+ // eslint-disable-next-line no-console
37
+ console.warn("instead of passing the 'disabled' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
38
+ }
39
+
40
+ if (requiredProp) {
41
+ // eslint-disable-next-line no-console
42
+ console.warn("instead of passing the 'required' prop directly to <TextInputField.Input>, it should be passed to the parent component, <TextInputField>");
43
+ }
44
+
45
+ return /*#__PURE__*/_react.default.createElement(_slots.Slot, {
46
+ name: "Input"
47
+ }, ({
48
+ disabled,
49
+ id,
50
+ required,
51
+ captionId
52
+ }) => /*#__PURE__*/_react.default.createElement(_.Checkbox, _extends({
53
+ "aria-describedby": captionId,
54
+ id: id,
55
+ required: required,
56
+ disabled: disabled
57
+ }, rest)));
58
+ };
59
+
60
+ Input.displayName = "Input";
61
+
62
+ const CheckboxInputField = props => /*#__PURE__*/_react.default.createElement(_ToggleInputField.default, props);
63
+
64
+ CheckboxInputField.displayName = "CheckboxInputField";
65
+
66
+ var _default = Object.assign(CheckboxInputField, {
67
+ Input,
68
+ Caption: _InputField.default.Caption,
69
+ Label: _InputField.default.Label,
70
+ LeadingVisual: _ToggleInputLeadingVisual.default
71
+ });
72
+
73
+ exports.default = _default;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ChoiceFieldCaption: React.FC;
3
+ export default ChoiceFieldCaption;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _ChoiceFieldsetListContext = _interopRequireDefault(require("./ChoiceFieldsetListContext"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ 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); }
15
+
16
+ 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; }
17
+
18
+ const ChoiceFieldCaption = ({
19
+ children
20
+ }) => {
21
+ const choiceFieldsetListContext = (0, _react.useContext)(_ChoiceFieldsetListContext.default);
22
+
23
+ if (choiceFieldsetListContext === null) {
24
+ throw new Error('ChoiceFieldsetListContext returned null');
25
+ }
26
+
27
+ const {
28
+ fieldComponent: FieldComponent
29
+ } = choiceFieldsetListContext;
30
+ return /*#__PURE__*/_react.default.createElement(FieldComponent.Caption, null, children);
31
+ };
32
+
33
+ ChoiceFieldCaption.displayName = "ChoiceFieldCaption";
34
+ var _default = ChoiceFieldCaption;
35
+ exports.default = _default;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ChoiceFieldLabel: React.FC;
3
+ export default ChoiceFieldLabel;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _ChoiceFieldsetListContext = _interopRequireDefault(require("./ChoiceFieldsetListContext"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ 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); }
15
+
16
+ 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; }
17
+
18
+ const ChoiceFieldLabel = ({
19
+ children
20
+ }) => {
21
+ const choiceFieldsetListContext = (0, _react.useContext)(_ChoiceFieldsetListContext.default);
22
+
23
+ if (choiceFieldsetListContext === null) {
24
+ throw new Error('ChoiceFieldsetListContext returned null');
25
+ }
26
+
27
+ const {
28
+ fieldComponent: FieldComponent
29
+ } = choiceFieldsetListContext;
30
+ return /*#__PURE__*/_react.default.createElement(FieldComponent.Label, null, children);
31
+ };
32
+
33
+ ChoiceFieldLabel.displayName = "ChoiceFieldLabel";
34
+ var _default = ChoiceFieldLabel;
35
+ exports.default = _default;
@@ -0,0 +1,65 @@
1
+ import React, { ComponentProps } from 'react';
2
+ import { FormValidationStatus } from '../utils/types/FormValidationStatus';
3
+ export interface ChoiceFieldsetProps<T = Record<string, FormValidationStatus>> {
4
+ children?: React.ReactNode;
5
+ /**
6
+ * Whether the fieldset is NOT ready for user input
7
+ */
8
+ disabled?: boolean;
9
+ /**
10
+ * The unique identifier for this fieldset. Used to associate the validation text with the fieldset
11
+ * If an ID is not passed, one will be automatically generated
12
+ */
13
+ id?: string;
14
+ /**
15
+ * The unique identifier used to associate radio inputs with eachother
16
+ * If a name is not passed and the fieldset renders radio inputs, a name will be automatically generated
17
+ */
18
+ name?: string;
19
+ /**
20
+ * The callback that is called when a user toggles a choice on or off
21
+ */
22
+ onSelect?: (selectedValues: string[]) => void;
23
+ /**
24
+ * Whether this field must have a value for the user to complete their task
25
+ */
26
+ required?: boolean;
27
+ /**
28
+ * The selected values
29
+ */
30
+ selected?: string[];
31
+ /**
32
+ * A map of validation statuses and their associated validation keys. When one of the validation keys is passed to the `validationResult` prop,
33
+ * the associated validation message will be rendered in the correct style
34
+ */
35
+ validationMap?: T;
36
+ /**
37
+ * The key of the validation message to show
38
+ */
39
+ validationResult?: keyof T;
40
+ }
41
+ export interface ChoiceFieldsetContext extends ChoiceFieldsetProps {
42
+ validationMessageId: string;
43
+ }
44
+ declare const Slot: React.FC<{
45
+ name: "Description" | "ChoiceList" | "Legend" | "Validation";
46
+ children: React.ReactNode;
47
+ }>;
48
+ export { Slot };
49
+ declare const ChoiceFieldset: <T extends Record<string, FormValidationStatus>>({ children, disabled, id, name, onSelect, required, selected, validationMap, validationResult }: ChoiceFieldsetProps<T>) => JSX.Element;
50
+ export declare type InputFieldComponentProps = ComponentProps<typeof ChoiceFieldset>;
51
+ export type { ChoiceFieldsetListProps } from './ChoiceFieldsetList';
52
+ export type { ChoiceFieldsetLegendProps } from './ChoiceFieldsetLegend';
53
+ export type { ChoiceFieldProps } from './ChoiceFieldsetListItem';
54
+ declare const _default: (<T extends Record<string, FormValidationStatus>>({ children, disabled, id, name, onSelect, required, selected, validationMap, validationResult }: ChoiceFieldsetProps<T>) => JSX.Element) & {
55
+ Description: React.FC<{}>;
56
+ Item: React.FC<import("./ChoiceFieldsetListItem").ChoiceFieldProps> & {
57
+ Caption: React.FC<{}>;
58
+ Label: React.FC<{}>;
59
+ LeadingVisual: React.FC<{}>;
60
+ };
61
+ Legend: React.FC<import("./ChoiceFieldsetLegend").ChoiceFieldsetLegendProps>;
62
+ List: React.FC<import("./ChoiceFieldsetList").ChoiceFieldsetListProps>;
63
+ Validation: React.FC<import("./ChoiceFieldsetValidation").ChoiceFieldsetValidationProps>;
64
+ };
65
+ export default _default;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.Slot = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _ = require("..");
11
+
12
+ var _createSlots = _interopRequireDefault(require("../utils/create-slots"));
13
+
14
+ var _ValidationAnimationContainer = _interopRequireDefault(require("../_InputField/ValidationAnimationContainer"));
15
+
16
+ var _InputValidation = _interopRequireDefault(require("../_InputValidation"));
17
+
18
+ var _ChoiceFieldsetListItem = _interopRequireDefault(require("./ChoiceFieldsetListItem"));
19
+
20
+ var _ChoiceFieldsetDescription = _interopRequireDefault(require("./ChoiceFieldsetDescription"));
21
+
22
+ var _ChoiceFieldsetLegend = _interopRequireDefault(require("./ChoiceFieldsetLegend"));
23
+
24
+ var _ChoiceFieldsetList = _interopRequireDefault(require("./ChoiceFieldsetList"));
25
+
26
+ var _ChoiceFieldsetValidation = _interopRequireDefault(require("./ChoiceFieldsetValidation"));
27
+
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
+
30
+ const {
31
+ Slots,
32
+ Slot
33
+ } = (0, _createSlots.default)(['Description', 'ChoiceList', 'Legend', 'Validation']);
34
+ exports.Slot = Slot;
35
+
36
+ const ChoiceFieldset = ({
37
+ children,
38
+ disabled,
39
+ id,
40
+ name,
41
+ onSelect,
42
+ required,
43
+ selected,
44
+ validationMap,
45
+ validationResult
46
+ }) => {
47
+ var _React$Children$map;
48
+
49
+ const fieldsetId = (0, _.useSSRSafeId)(id);
50
+ const validationChildren = (_React$Children$map = _react.default.Children.map(children, child => /*#__PURE__*/_react.default.isValidElement(child) && child.type === _ChoiceFieldsetValidation.default ? child : null)) === null || _React$Children$map === void 0 ? void 0 : _React$Children$map.filter(Boolean);
51
+ const validationChildToRender = validationChildren === null || validationChildren === void 0 ? void 0 : validationChildren.find(child => child.props.validationKey === validationResult);
52
+ const validationMessageId = validationChildToRender ? `${fieldsetId}-validationMsg` : undefined;
53
+ return /*#__PURE__*/_react.default.createElement(Slots, {
54
+ context: {
55
+ disabled,
56
+ name,
57
+ onSelect,
58
+ required,
59
+ selected,
60
+ validationMessageId
61
+ }
62
+ }, slots => {
63
+ const isLegendVisible = /*#__PURE__*/_react.default.isValidElement(slots.Legend) && slots.Legend.props.isVisible;
64
+ return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_.Box, {
65
+ as: "fieldset",
66
+ border: "none",
67
+ margin: 0,
68
+ padding: 0,
69
+ "aria-describedby": [validationMessageId].filter(Boolean).join(' ')
70
+ }, _react.default.Children.toArray(children).filter(child => /*#__PURE__*/_react.default.isValidElement(child) && child.type !== _ChoiceFieldsetValidation.default), /*#__PURE__*/_react.default.createElement(_.Box, {
71
+ mb: isLegendVisible ? 3 : undefined
72
+ }, slots.Legend, slots.Description), slots.ChoiceList), validationChildToRender && /*#__PURE__*/_react.default.createElement(_.Box, {
73
+ mt: 3
74
+ }, validationMap && validationResult && validationMessageId && /*#__PURE__*/_react.default.createElement(_ValidationAnimationContainer.default, {
75
+ show: true
76
+ }, /*#__PURE__*/_react.default.createElement(_InputValidation.default, {
77
+ validationStatus: validationMap[validationResult],
78
+ id: validationMessageId
79
+ }, validationChildToRender))));
80
+ });
81
+ };
82
+
83
+ ChoiceFieldset.displayName = "ChoiceFieldset";
84
+
85
+ var _default = Object.assign(ChoiceFieldset, {
86
+ Description: _ChoiceFieldsetDescription.default,
87
+ Item: _ChoiceFieldsetListItem.default,
88
+ Legend: _ChoiceFieldsetLegend.default,
89
+ List: _ChoiceFieldsetList.default,
90
+ Validation: _ChoiceFieldsetValidation.default
91
+ });
92
+
93
+ exports.default = _default;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ChoiceFieldsetDescription: React.FC;
3
+ export default ChoiceFieldsetDescription;
@@ -0,0 +1,29 @@
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 _ = require("..");
11
+
12
+ var _ChoiceFieldset = require("./ChoiceFieldset");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ const ChoiceFieldsetDescription = ({
17
+ children
18
+ }) => /*#__PURE__*/_react.default.createElement(_ChoiceFieldset.Slot, {
19
+ name: "Description"
20
+ }, ({
21
+ disabled
22
+ }) => /*#__PURE__*/_react.default.createElement(_.Text, {
23
+ color: disabled ? 'fg.muted' : 'fg.default',
24
+ fontSize: 1
25
+ }, children));
26
+
27
+ ChoiceFieldsetDescription.displayName = "ChoiceFieldsetDescription";
28
+ var _default = ChoiceFieldsetDescription;
29
+ exports.default = _default;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ export interface ChoiceFieldsetLegendProps {
3
+ /**
4
+ * Whether to visually hide the fieldset legend
5
+ */
6
+ visuallyHidden?: boolean;
7
+ }
8
+ declare const ChoiceFieldsetLegend: React.FC<ChoiceFieldsetLegendProps>;
9
+ export default ChoiceFieldsetLegend;
@@ -0,0 +1,44 @@
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 _ = require("..");
11
+
12
+ var _VisuallyHidden = _interopRequireDefault(require("../_VisuallyHidden"));
13
+
14
+ var _ChoiceFieldset = require("./ChoiceFieldset");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ const ChoiceFieldsetLegend = ({
19
+ children,
20
+ visuallyHidden
21
+ }) => /*#__PURE__*/_react.default.createElement(_ChoiceFieldset.Slot, {
22
+ name: "Legend"
23
+ }, ({
24
+ required,
25
+ disabled
26
+ }) => /*#__PURE__*/_react.default.createElement(_VisuallyHidden.default, {
27
+ as: "legend",
28
+ isVisible: !visuallyHidden,
29
+ title: required ? 'required field' : undefined,
30
+ sx: {
31
+ color: disabled ? 'fg.muted' : undefined,
32
+ fontSize: 2,
33
+ padding: 0
34
+ }
35
+ }, required ? /*#__PURE__*/_react.default.createElement(_.Box, {
36
+ display: "flex",
37
+ as: "span"
38
+ }, /*#__PURE__*/_react.default.createElement(_.Box, {
39
+ mr: 1
40
+ }, children), /*#__PURE__*/_react.default.createElement("span", null, "*")) : children));
41
+
42
+ ChoiceFieldsetLegend.displayName = "ChoiceFieldsetLegend";
43
+ var _default = ChoiceFieldsetLegend;
44
+ exports.default = _default;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ export interface ChoiceFieldsetListProps {
3
+ /**
4
+ * Whether multiple items or a single item can be selected
5
+ */
6
+ selectionVariant?: 'single' | 'multiple';
7
+ }
8
+ declare const ChoiceFieldsetList: React.FC<ChoiceFieldsetListProps>;
9
+ export default ChoiceFieldsetList;
@@ -0,0 +1,71 @@
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 _ChoiceFieldset = require("./ChoiceFieldset");
17
+
18
+ var _ChoiceFieldsetListContext = _interopRequireDefault(require("./ChoiceFieldsetListContext"));
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ const List = _styledComponents.default.ul.withConfig({
23
+ displayName: "ChoiceFieldsetList__List",
24
+ componentId: "sc-16da7ba-0"
25
+ })(["display:flex;flex-direction:column;list-style:none;margin:0;padding:0;> li + li{margin-top:", ";}"], (0, _constants.get)('space.2'));
26
+
27
+ const getSelectedCheckboxes = (value, checked, selectedValues, selectionVariant) => {
28
+ if (checked) {
29
+ return selectionVariant === 'multiple' ? [...selectedValues, value] : [value];
30
+ }
31
+
32
+ return selectedValues.filter(selectedValue => selectedValue !== value);
33
+ };
34
+
35
+ const ChoiceFieldsetList = ({
36
+ selectionVariant,
37
+ children
38
+ }) => {
39
+ const ssrSafeUniqueName = (0, _.useSSRSafeId)();
40
+ return /*#__PURE__*/_react.default.createElement(_ChoiceFieldset.Slot, {
41
+ name: "ChoiceList"
42
+ }, ({
43
+ name,
44
+ onSelect,
45
+ disabled,
46
+ selected = []
47
+ }) => {
48
+ return /*#__PURE__*/_react.default.createElement(_ChoiceFieldsetListContext.default.Provider, {
49
+ value: {
50
+ disabled,
51
+ selected,
52
+ name: name || ssrSafeUniqueName,
53
+ fieldComponent: selectionVariant === 'multiple' ? _.CheckboxInputField : _.RadioInputField,
54
+ onChange: e => {
55
+ const updatedSelections = getSelectedCheckboxes(e.currentTarget.value, e.currentTarget.checked, selected, selectionVariant);
56
+ onSelect && onSelect(updatedSelections);
57
+ },
58
+ selectionVariant
59
+ }
60
+ }, /*#__PURE__*/_react.default.createElement(List, null, _react.default.Children.map(children, (child, i) => /*#__PURE__*/_react.default.createElement("li", {
61
+ key: i
62
+ }, child))));
63
+ });
64
+ };
65
+
66
+ ChoiceFieldsetList.displayName = "ChoiceFieldsetList";
67
+ ChoiceFieldsetList.defaultProps = {
68
+ selectionVariant: 'single'
69
+ };
70
+ var _default = ChoiceFieldsetList;
71
+ exports.default = _default;
@@ -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,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,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;