@primer/components 0.0.0-20211030163410 → 0.0.0-20211030175556
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.
- package/CHANGELOG.md +2 -28
- package/dist/browser.esm.js +591 -602
- package/dist/browser.esm.js.map +1 -1
- package/dist/browser.umd.js +200 -211
- package/dist/browser.umd.js.map +1 -1
- package/lib/ActionList/Divider.jsx +29 -0
- package/lib/ActionList/Group.jsx +23 -0
- package/lib/ActionList/Header.jsx +66 -0
- package/lib/ActionList/Item.js +3 -3
- package/lib/ActionList/Item.jsx +288 -0
- package/lib/ActionList/List.jsx +138 -0
- package/lib/ActionList/index.js +12 -23
- package/lib/ActionList2/Description.jsx +29 -0
- package/lib/ActionList2/Divider.jsx +22 -0
- package/lib/ActionList2/Group.jsx +54 -0
- package/lib/ActionList2/Header.d.ts +26 -0
- package/lib/ActionList2/Header.js +55 -0
- package/lib/ActionList2/Header.jsx +36 -0
- package/lib/ActionList2/Item.js +1 -3
- package/lib/ActionList2/Item.jsx +174 -0
- package/lib/ActionList2/LinkItem.jsx +28 -0
- package/lib/ActionList2/List.js +2 -1
- package/lib/ActionList2/List.jsx +41 -0
- package/lib/ActionList2/Selection.js +1 -3
- package/lib/ActionList2/Selection.jsx +50 -0
- package/lib/ActionList2/Visuals.jsx +48 -0
- package/lib/ActionList2/index.js +23 -41
- package/lib/ActionMenu.jsx +73 -0
- package/lib/AnchoredOverlay/AnchoredOverlay.jsx +100 -0
- package/lib/AnchoredOverlay/index.js +4 -12
- package/lib/Autocomplete/Autocomplete.d.ts +0 -1
- package/lib/Autocomplete/Autocomplete.jsx +100 -0
- package/lib/Autocomplete/AutocompleteContext.jsx +5 -0
- package/lib/Autocomplete/AutocompleteInput.d.ts +0 -1
- package/lib/Autocomplete/AutocompleteInput.jsx +113 -0
- package/lib/Autocomplete/AutocompleteMenu.js +13 -6
- package/lib/Autocomplete/AutocompleteMenu.jsx +190 -0
- package/lib/Autocomplete/AutocompleteOverlay.jsx +55 -0
- package/lib/Autocomplete/index.js +7 -14
- package/lib/Avatar.jsx +34 -0
- package/lib/AvatarPair.jsx +29 -0
- package/lib/AvatarStack.jsx +151 -0
- package/lib/BaseStyles.jsx +65 -0
- package/lib/BorderBox.jsx +18 -0
- package/lib/Box.jsx +10 -0
- package/lib/BranchName.jsx +20 -0
- package/lib/Breadcrumbs.jsx +71 -0
- package/lib/Button/Button.d.ts +0 -1
- package/lib/Button/Button.jsx +40 -0
- package/lib/Button/ButtonBase.jsx +33 -0
- package/lib/Button/ButtonClose.d.ts +1 -2
- package/lib/Button/ButtonClose.jsx +53 -0
- package/lib/Button/ButtonDanger.d.ts +0 -1
- package/lib/Button/ButtonDanger.jsx +43 -0
- package/lib/Button/ButtonGroup.jsx +55 -0
- package/lib/Button/ButtonInvisible.d.ts +0 -1
- package/lib/Button/ButtonInvisible.jsx +32 -0
- package/lib/Button/ButtonOutline.d.ts +0 -1
- package/lib/Button/ButtonOutline.jsx +43 -0
- package/lib/Button/ButtonPrimary.d.ts +0 -1
- package/lib/Button/ButtonPrimary.jsx +42 -0
- package/lib/Button/ButtonStyles.jsx +37 -0
- package/lib/Button/ButtonTableList.jsx +46 -0
- package/lib/Button/index.js +21 -70
- package/lib/Caret.jsx +93 -0
- package/lib/CircleBadge.jsx +42 -0
- package/lib/CircleOcticon.d.ts +0 -1
- package/lib/CircleOcticon.jsx +21 -0
- package/lib/CounterLabel.jsx +43 -0
- package/lib/Details.jsx +21 -0
- package/lib/Dialog/ConfirmationDialog.jsx +146 -0
- package/lib/Dialog/Dialog.jsx +279 -0
- package/lib/Dialog.d.ts +2 -3
- package/lib/Dialog.jsx +129 -0
- package/lib/Dropdown.d.ts +0 -4
- package/lib/Dropdown.jsx +131 -0
- package/lib/DropdownMenu/DropdownButton.d.ts +1 -2
- package/lib/DropdownMenu/DropdownButton.jsx +14 -0
- package/lib/DropdownMenu/DropdownMenu.jsx +70 -0
- package/lib/DropdownMenu/index.js +6 -20
- package/lib/DropdownStyles.js +18 -26
- package/lib/FilterList.d.ts +0 -1
- package/lib/FilterList.jsx +59 -0
- package/lib/FilteredActionList/FilteredActionList.jsx +100 -0
- package/lib/FilteredActionList/index.js +4 -12
- package/lib/FilteredSearch.jsx +28 -0
- package/lib/Flash.jsx +69 -0
- package/lib/Flex.jsx +15 -0
- package/lib/FormGroup.jsx +22 -0
- package/lib/Grid.jsx +15 -0
- package/lib/Header.jsx +83 -0
- package/lib/Heading.jsx +21 -0
- package/lib/Label.jsx +82 -0
- package/lib/LabelGroup.jsx +18 -0
- package/lib/Link.jsx +36 -0
- package/lib/NewButton/button-counter.jsx +14 -0
- package/lib/NewButton/button.jsx +279 -0
- package/lib/NewButton/index.js +5 -12
- package/lib/NewButton/types.js +2 -1
- package/lib/Overlay.d.ts +3 -5
- package/lib/Overlay.jsx +154 -0
- package/lib/Pagehead.jsx +17 -0
- package/lib/Pagination/Pagination.jsx +161 -0
- package/lib/Pagination/index.js +6 -12
- package/lib/Pagination/model.jsx +174 -0
- package/lib/PointerBox.jsx +25 -0
- package/lib/Popover.jsx +202 -0
- package/lib/Portal/Portal.jsx +79 -0
- package/lib/Portal/index.js +5 -16
- package/lib/Position.d.ts +4 -4
- package/lib/Position.jsx +46 -0
- package/lib/ProgressBar.jsx +39 -0
- package/lib/SelectMenu/SelectMenu.d.ts +4 -10
- package/lib/SelectMenu/SelectMenu.jsx +112 -0
- package/lib/SelectMenu/SelectMenuContext.jsx +5 -0
- package/lib/SelectMenu/SelectMenuDivider.jsx +42 -0
- package/lib/SelectMenu/SelectMenuFilter.jsx +58 -0
- package/lib/SelectMenu/SelectMenuFooter.jsx +45 -0
- package/lib/SelectMenu/SelectMenuHeader.jsx +42 -0
- package/lib/SelectMenu/SelectMenuItem.d.ts +1 -1
- package/lib/SelectMenu/SelectMenuItem.jsx +142 -0
- package/lib/SelectMenu/SelectMenuList.jsx +59 -0
- package/lib/SelectMenu/SelectMenuLoadingAnimation.jsx +22 -0
- package/lib/SelectMenu/SelectMenuModal.d.ts +1 -1
- package/lib/SelectMenu/SelectMenuModal.jsx +118 -0
- package/lib/SelectMenu/SelectMenuTab.jsx +92 -0
- package/lib/SelectMenu/SelectMenuTabPanel.jsx +42 -0
- package/lib/SelectMenu/SelectMenuTabs.jsx +57 -0
- package/lib/SelectMenu/hooks/useKeyboardNav.js +80 -96
- package/lib/SelectMenu/index.js +7 -14
- package/lib/SelectPanel/SelectPanel.jsx +105 -0
- package/lib/SelectPanel/index.js +4 -12
- package/lib/SideNav.jsx +173 -0
- package/lib/Spinner.jsx +35 -0
- package/lib/StateLabel.jsx +93 -0
- package/lib/StyledOcticon.jsx +18 -0
- package/lib/SubNav.jsx +101 -0
- package/lib/TabNav.jsx +58 -0
- package/lib/Text.jsx +14 -0
- package/lib/TextInput.jsx +23 -0
- package/lib/TextInputWithTokens.d.ts +0 -1
- package/lib/TextInputWithTokens.jsx +218 -0
- package/lib/ThemeProvider.jsx +130 -0
- package/lib/Timeline.jsx +123 -0
- package/lib/Token/AvatarToken.d.ts +1 -1
- package/lib/Token/AvatarToken.jsx +54 -0
- package/lib/Token/IssueLabelToken.d.ts +1 -1
- package/lib/Token/IssueLabelToken.jsx +125 -0
- package/lib/Token/Token.d.ts +1 -1
- package/lib/Token/Token.jsx +103 -0
- package/lib/Token/TokenBase.jsx +88 -0
- package/lib/Token/_RemoveTokenButton.jsx +108 -0
- package/lib/Token/_TokenTextContainer.jsx +49 -0
- package/lib/Token/index.js +11 -30
- package/lib/Tooltip.jsx +246 -0
- package/lib/Truncate.jsx +24 -0
- package/lib/UnderlineNav.jsx +88 -0
- package/lib/_TextInputWrapper.jsx +120 -0
- package/lib/_UnstyledTextInput.jsx +22 -0
- package/lib/behaviors/anchoredPosition.js +205 -234
- package/lib/behaviors/focusTrap.js +121 -157
- package/lib/behaviors/focusZone.js +434 -509
- package/lib/behaviors/scrollIntoViewingArea.js +18 -35
- package/lib/constants.js +39 -43
- package/lib/drafts.js +20 -30
- package/lib/hooks/index.js +16 -60
- package/lib/hooks/useAnchoredPosition.js +32 -40
- package/lib/hooks/useCombinedRefs.js +32 -36
- package/lib/hooks/useDetails.jsx +39 -0
- package/lib/hooks/useDialog.js +72 -96
- package/lib/hooks/useFocusTrap.js +43 -60
- package/lib/hooks/useFocusZone.js +54 -50
- package/lib/hooks/useOnEscapePress.js +25 -36
- package/lib/hooks/useOnOutsideClick.jsx +61 -0
- package/lib/hooks/useOpenAndCloseFocus.js +22 -34
- package/lib/hooks/useOverlay.jsx +15 -0
- package/lib/hooks/useProvidedRefOrCreate.js +10 -14
- package/lib/hooks/useProvidedStateOrCreate.js +13 -16
- package/lib/hooks/useRenderForcingRef.js +13 -17
- package/lib/hooks/useResizeObserver.js +15 -18
- package/lib/hooks/useSafeTimeout.js +22 -30
- package/lib/hooks/useScrollFlash.js +16 -23
- package/lib/index.d.ts +0 -5
- package/lib/index.js +163 -676
- package/lib/polyfills/eventListenerSignal.js +37 -45
- package/lib/sx.js +10 -22
- package/lib/theme-preval.js +64 -3169
- package/lib/theme.js +3 -12
- package/lib/utils/create-slots.jsx +65 -0
- package/lib/utils/deprecate.jsx +59 -0
- package/lib/utils/isNumeric.jsx +7 -0
- package/lib/utils/iterateFocusableElements.js +63 -85
- package/lib/utils/ssr.jsx +6 -0
- package/lib/utils/test-deprecations.jsx +20 -0
- package/lib/utils/test-helpers.jsx +8 -0
- package/lib/utils/test-matchers.jsx +100 -0
- package/lib/utils/testing.d.ts +1 -2
- package/lib/utils/testing.js +0 -29
- package/lib/utils/testing.jsx +206 -0
- package/lib/utils/theme.js +33 -47
- package/lib/utils/types/AriaRole.js +2 -1
- package/lib/utils/types/ComponentProps.js +2 -1
- package/lib/utils/types/Flatten.js +2 -1
- package/lib/utils/types/KeyPaths.js +2 -1
- package/lib/utils/types/MandateProps.js +16 -1
- package/lib/utils/types/Merge.js +2 -1
- package/lib/utils/types/index.js +16 -69
- package/lib/utils/uniqueId.js +5 -8
- package/lib/utils/use-force-update.js +8 -14
- package/lib/utils/useIsomorphicLayoutEffect.js +8 -11
- package/lib/utils/userAgent.js +8 -12
- package/lib-esm/ActionList/Item.js +3 -3
- package/lib-esm/ActionList2/Header.d.ts +26 -0
- package/lib-esm/ActionList2/Header.js +44 -0
- package/lib-esm/ActionList2/Item.js +1 -3
- package/lib-esm/ActionList2/List.js +2 -1
- package/lib-esm/ActionList2/Selection.js +1 -3
- package/lib-esm/Autocomplete/Autocomplete.d.ts +0 -1
- package/lib-esm/Autocomplete/AutocompleteInput.d.ts +0 -1
- package/lib-esm/Autocomplete/AutocompleteMenu.js +13 -3
- package/lib-esm/Button/Button.d.ts +0 -1
- package/lib-esm/Button/ButtonClose.d.ts +1 -2
- package/lib-esm/Button/ButtonDanger.d.ts +0 -1
- package/lib-esm/Button/ButtonInvisible.d.ts +0 -1
- package/lib-esm/Button/ButtonOutline.d.ts +0 -1
- package/lib-esm/Button/ButtonPrimary.d.ts +0 -1
- package/lib-esm/CircleOcticon.d.ts +0 -1
- package/lib-esm/Dialog.d.ts +2 -3
- package/lib-esm/Dropdown.d.ts +0 -4
- package/lib-esm/DropdownMenu/DropdownButton.d.ts +1 -2
- package/lib-esm/FilterList.d.ts +0 -1
- package/lib-esm/Overlay.d.ts +3 -5
- package/lib-esm/Position.d.ts +4 -4
- package/lib-esm/SelectMenu/SelectMenu.d.ts +4 -10
- package/lib-esm/SelectMenu/SelectMenuItem.d.ts +1 -1
- package/lib-esm/SelectMenu/SelectMenuModal.d.ts +1 -1
- package/lib-esm/TextInputWithTokens.d.ts +0 -1
- package/lib-esm/Token/AvatarToken.d.ts +1 -1
- package/lib-esm/Token/IssueLabelToken.d.ts +1 -1
- package/lib-esm/Token/Token.d.ts +1 -1
- package/lib-esm/index.d.ts +0 -5
- package/lib-esm/index.js +0 -4
- package/lib-esm/theme-preval.js +0 -446
- package/lib-esm/utils/testing.d.ts +1 -2
- package/lib-esm/utils/testing.js +0 -24
- package/package.json +6 -5
- package/lib/Checkbox.d.ts +0 -29
- package/lib/Checkbox.js +0 -64
- package/lib/CheckboxInputField.d.ts +0 -11
- package/lib/CheckboxInputField.js +0 -74
- package/lib/RadioInputField.d.ts +0 -9
- package/lib/RadioInputField.js +0 -83
- package/lib/TextInputField.d.ts +0 -581
- package/lib/TextInputField.js +0 -66
- package/lib/_InputCaption.d.ts +0 -6
- package/lib/_InputCaption.js +0 -23
- package/lib/_InputField/InputField.d.ts +0 -39
- package/lib/_InputField/InputField.js +0 -90
- package/lib/_InputField/InputFieldCaption.d.ts +0 -3
- package/lib/_InputField/InputFieldCaption.js +0 -28
- package/lib/_InputField/InputFieldLabel.d.ts +0 -9
- package/lib/_InputField/InputFieldLabel.js +0 -34
- package/lib/_InputField/InputFieldValidation.d.ts +0 -6
- package/lib/_InputField/InputFieldValidation.js +0 -17
- package/lib/_InputField/ToggleInputField.d.ts +0 -13
- package/lib/_InputField/ToggleInputField.js +0 -71
- package/lib/_InputField/ToggleInputLeadingVisual.d.ts +0 -3
- package/lib/_InputField/ToggleInputLeadingVisual.js +0 -22
- package/lib/_InputField/ValidationAnimationContainer.d.ts +0 -6
- package/lib/_InputField/ValidationAnimationContainer.js +0 -48
- package/lib/_InputField/index.d.ts +0 -1
- package/lib/_InputField/index.js +0 -15
- package/lib/_InputField/slots.d.ts +0 -13
- package/lib/_InputField/slots.js +0 -17
- package/lib/_InputLabel.d.ts +0 -8
- package/lib/_InputLabel.js +0 -44
- package/lib/_InputValidation.d.ts +0 -8
- package/lib/_InputValidation.js +0 -56
- package/lib/_VisuallyHidden.d.ts +0 -6
- package/lib/_VisuallyHidden.js +0 -39
- package/lib/utils/types/FormValidationStatus.d.ts +0 -1
- package/lib/utils/types/FormValidationStatus.js +0 -1
- package/lib-esm/Checkbox.d.ts +0 -29
- package/lib-esm/Checkbox.js +0 -44
- package/lib-esm/CheckboxInputField.d.ts +0 -11
- package/lib-esm/CheckboxInputField.js +0 -57
- package/lib-esm/RadioInputField.d.ts +0 -9
- package/lib-esm/RadioInputField.js +0 -66
- package/lib-esm/TextInputField.d.ts +0 -581
- package/lib-esm/TextInputField.js +0 -50
- package/lib-esm/_InputCaption.d.ts +0 -6
- package/lib-esm/_InputCaption.js +0 -12
- package/lib-esm/_InputField/InputField.d.ts +0 -39
- package/lib-esm/_InputField/InputField.js +0 -70
- package/lib-esm/_InputField/InputFieldCaption.d.ts +0 -3
- package/lib-esm/_InputField/InputFieldCaption.js +0 -16
- package/lib-esm/_InputField/InputFieldLabel.d.ts +0 -9
- package/lib-esm/_InputField/InputFieldLabel.js +0 -22
- package/lib-esm/_InputField/InputFieldValidation.d.ts +0 -6
- package/lib-esm/_InputField/InputFieldValidation.js +0 -7
- package/lib-esm/_InputField/ToggleInputField.d.ts +0 -13
- package/lib-esm/_InputField/ToggleInputField.js +0 -54
- package/lib-esm/_InputField/ToggleInputLeadingVisual.d.ts +0 -3
- package/lib-esm/_InputField/ToggleInputLeadingVisual.js +0 -11
- package/lib-esm/_InputField/ValidationAnimationContainer.d.ts +0 -6
- package/lib-esm/_InputField/ValidationAnimationContainer.js +0 -33
- package/lib-esm/_InputField/index.d.ts +0 -1
- package/lib-esm/_InputField/index.js +0 -1
- package/lib-esm/_InputField/slots.d.ts +0 -13
- package/lib-esm/_InputField/slots.js +0 -5
- package/lib-esm/_InputLabel.d.ts +0 -8
- package/lib-esm/_InputLabel.js +0 -32
- package/lib-esm/_InputValidation.d.ts +0 -8
- package/lib-esm/_InputValidation.js +0 -43
- package/lib-esm/_VisuallyHidden.d.ts +0 -6
- package/lib-esm/_VisuallyHidden.js +0 -26
- package/lib-esm/utils/types/FormValidationStatus.d.ts +0 -1
- package/lib-esm/utils/types/FormValidationStatus.js +0 -1
package/lib-esm/_InputCaption.js
DELETED
@@ -1,12 +0,0 @@
|
|
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 { Text } from '.';
|
5
|
-
|
6
|
-
const InputCaption = props => /*#__PURE__*/React.createElement(Text, _extends({
|
7
|
-
color: "fg.muted",
|
8
|
-
fontSize: 0
|
9
|
-
}, props));
|
10
|
-
|
11
|
-
InputCaption.displayName = "InputCaption";
|
12
|
-
export default InputCaption;
|
@@ -1,39 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { ComponentProps } from '../utils/types';
|
3
|
-
import { FormValidationStatus } from '../utils/types/FormValidationStatus';
|
4
|
-
export interface Props<T = Record<string, FormValidationStatus>> {
|
5
|
-
children?: React.ReactNode;
|
6
|
-
/**
|
7
|
-
* Whether the field is ready for user input
|
8
|
-
*/
|
9
|
-
disabled?: boolean;
|
10
|
-
/**
|
11
|
-
* The unique identifier for this field. Used to associate the label, validation text, and caption text
|
12
|
-
*/
|
13
|
-
id?: string;
|
14
|
-
/**
|
15
|
-
* Whether this field must have a value for the user to complete their task
|
16
|
-
*/
|
17
|
-
required?: boolean;
|
18
|
-
/**
|
19
|
-
* A map of validation statuses and their associated validation keys. When one of the validation keys is passed to the `validationResult` prop,
|
20
|
-
* the associated validation message will be rendered in the correct style
|
21
|
-
*/
|
22
|
-
validationMap?: T;
|
23
|
-
/**
|
24
|
-
* The key of the validation message to show
|
25
|
-
*/
|
26
|
-
validationResult?: keyof T;
|
27
|
-
}
|
28
|
-
export interface InputFieldContext extends Pick<Props<Record<string, FormValidationStatus>>, 'disabled' | 'id' | 'required'> {
|
29
|
-
captionId: string;
|
30
|
-
validationMessageId: string;
|
31
|
-
}
|
32
|
-
declare const InputField: <T extends Record<string, FormValidationStatus>>({ children, disabled, id: idProp, required, validationMap, validationResult }: Props<T>) => JSX.Element;
|
33
|
-
export declare type InputFieldComponentProps = ComponentProps<typeof InputField>;
|
34
|
-
declare const _default: (<T extends Record<string, FormValidationStatus>>({ children, disabled, id: idProp, required, validationMap, validationResult }: Props<T>) => JSX.Element) & {
|
35
|
-
Caption: React.FC<{}>;
|
36
|
-
Label: React.FC<import("./InputFieldLabel").Props>;
|
37
|
-
Validation: React.FC<import("./InputFieldValidation").InputFieldValidationProps>;
|
38
|
-
};
|
39
|
-
export default _default;
|
@@ -1,70 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { Box } from '..';
|
3
|
-
import InputValidation from '../_InputValidation';
|
4
|
-
import { uniqueId } from '../utils/uniqueId';
|
5
|
-
import InputFieldCaption from './InputFieldCaption';
|
6
|
-
import InputFieldLabel from './InputFieldLabel';
|
7
|
-
import InputFieldValidation from './InputFieldValidation';
|
8
|
-
import { Slots } from './slots';
|
9
|
-
import ValidationAnimationContainer from './ValidationAnimationContainer';
|
10
|
-
|
11
|
-
const InputField = ({
|
12
|
-
children,
|
13
|
-
disabled,
|
14
|
-
id: idProp,
|
15
|
-
required,
|
16
|
-
validationMap,
|
17
|
-
validationResult
|
18
|
-
}) => {
|
19
|
-
var _React$Children$map, _React$Children$map2;
|
20
|
-
|
21
|
-
const id = idProp || uniqueId();
|
22
|
-
const validationChildren = (_React$Children$map = React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) && child.type === InputFieldValidation ? child : null)) === null || _React$Children$map === void 0 ? void 0 : _React$Children$map.filter(Boolean);
|
23
|
-
const captionChildren = (_React$Children$map2 = React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) && child.type === InputFieldCaption ? child : null)) === null || _React$Children$map2 === void 0 ? void 0 : _React$Children$map2.filter(Boolean);
|
24
|
-
const validationChildToRender = validationChildren === null || validationChildren === void 0 ? void 0 : validationChildren.find(child => child.props.validationKey === validationResult);
|
25
|
-
const validationMessageId = validationChildToRender ? `${id}-validationMsg` : undefined;
|
26
|
-
const captionId = captionChildren !== null && captionChildren !== void 0 && captionChildren.length ? `${id}-caption` : undefined;
|
27
|
-
return /*#__PURE__*/React.createElement(Slots, {
|
28
|
-
context: {
|
29
|
-
captionId,
|
30
|
-
disabled,
|
31
|
-
id,
|
32
|
-
required,
|
33
|
-
validationMessageId
|
34
|
-
}
|
35
|
-
}, slots => {
|
36
|
-
const isLabelHidden = /*#__PURE__*/React.isValidElement(slots.Label) && slots.Label.props.visuallyHidden;
|
37
|
-
|
38
|
-
if (slots.Input && !slots.Label) {
|
39
|
-
// eslint-disable-next-line no-console
|
40
|
-
console.error(`The input field with the id ${id} MUST have a Label child (e.g.: <TextInputField.Label>).\n\nIf you want to hide the label, pass the 'visuallyHidden' prop to the Label component.`);
|
41
|
-
}
|
42
|
-
|
43
|
-
return /*#__PURE__*/React.createElement(Box, {
|
44
|
-
display: "flex",
|
45
|
-
flexDirection: "column",
|
46
|
-
width: "100%",
|
47
|
-
sx: isLabelHidden ? {
|
48
|
-
'> *:not(label) + *': {
|
49
|
-
marginTop: 2
|
50
|
-
}
|
51
|
-
} : {
|
52
|
-
'> * + *': {
|
53
|
-
marginTop: 2
|
54
|
-
}
|
55
|
-
}
|
56
|
-
}, React.Children.toArray(children).filter(child => /*#__PURE__*/React.isValidElement(child) && child.type !== InputFieldValidation), slots.Label, slots.Input, validationChildToRender && validationMap && validationResult && validationMessageId && /*#__PURE__*/React.createElement(ValidationAnimationContainer, {
|
57
|
-
show: true
|
58
|
-
}, /*#__PURE__*/React.createElement(InputValidation, {
|
59
|
-
validationStatus: validationMap[validationResult],
|
60
|
-
id: validationMessageId
|
61
|
-
}, validationChildToRender)), slots.Caption);
|
62
|
-
});
|
63
|
-
};
|
64
|
-
|
65
|
-
InputField.displayName = "InputField";
|
66
|
-
export default Object.assign(InputField, {
|
67
|
-
Caption: InputFieldCaption,
|
68
|
-
Label: InputFieldLabel,
|
69
|
-
Validation: InputFieldValidation
|
70
|
-
});
|
@@ -1,16 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import InputCaption from '../_InputCaption';
|
3
|
-
import { Slot } from './slots';
|
4
|
-
|
5
|
-
const InputFieldCaption = ({
|
6
|
-
children
|
7
|
-
}) => /*#__PURE__*/React.createElement(Slot, {
|
8
|
-
name: "Caption"
|
9
|
-
}, ({
|
10
|
-
captionId
|
11
|
-
}) => /*#__PURE__*/React.createElement(InputCaption, {
|
12
|
-
id: captionId
|
13
|
-
}, children));
|
14
|
-
|
15
|
-
InputFieldCaption.displayName = "InputFieldCaption";
|
16
|
-
export default InputFieldCaption;
|
@@ -1,22 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import InputLabel from '../_InputLabel';
|
3
|
-
import { Slot } from './slots';
|
4
|
-
|
5
|
-
const InputFieldLabel = ({
|
6
|
-
children,
|
7
|
-
visuallyHidden
|
8
|
-
}) => /*#__PURE__*/React.createElement(Slot, {
|
9
|
-
name: "Label"
|
10
|
-
}, ({
|
11
|
-
disabled,
|
12
|
-
id,
|
13
|
-
required
|
14
|
-
}) => /*#__PURE__*/React.createElement(InputLabel, {
|
15
|
-
htmlFor: id,
|
16
|
-
visuallyHidden: visuallyHidden,
|
17
|
-
required: required,
|
18
|
-
disabled: disabled
|
19
|
-
}, children));
|
20
|
-
|
21
|
-
InputFieldLabel.displayName = "InputFieldLabel";
|
22
|
-
export default InputFieldLabel;
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { Props as InputFieldProps } from './InputField';
|
3
|
-
import { FormValidationStatus } from '../utils/types/FormValidationStatus';
|
4
|
-
export interface Props extends Pick<InputFieldProps, 'disabled' | 'id'> {
|
5
|
-
/**
|
6
|
-
* Styles the field to visually communicate the result of form validation
|
7
|
-
*/
|
8
|
-
validationStatus?: FormValidationStatus;
|
9
|
-
}
|
10
|
-
declare const _default: React.FC<Props> & {
|
11
|
-
LeadingVisual: React.FC<{}>;
|
12
|
-
};
|
13
|
-
export default _default;
|
@@ -1,54 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { Box } from '..';
|
3
|
-
import { get } from '../constants';
|
4
|
-
import { uniqueId } from '../utils/uniqueId';
|
5
|
-
import { Slots } from './slots';
|
6
|
-
import ToggleInputLeadingVisual from './ToggleInputLeadingVisual';
|
7
|
-
|
8
|
-
const ToggleInputField = ({
|
9
|
-
children,
|
10
|
-
disabled,
|
11
|
-
id,
|
12
|
-
validationStatus
|
13
|
-
}) => {
|
14
|
-
const fieldId = id || uniqueId();
|
15
|
-
return /*#__PURE__*/React.createElement(Slots, {
|
16
|
-
context: {
|
17
|
-
captionId: `${id}-caption`,
|
18
|
-
disabled,
|
19
|
-
id: fieldId,
|
20
|
-
validationStatus
|
21
|
-
}
|
22
|
-
}, slots => {
|
23
|
-
return /*#__PURE__*/React.createElement(Box, {
|
24
|
-
display: "flex",
|
25
|
-
alignItems: slots.LeadingVisual ? 'center' : undefined
|
26
|
-
}, children, /*#__PURE__*/React.createElement(Box, {
|
27
|
-
sx: {
|
28
|
-
'> input': {
|
29
|
-
marginLeft: 0,
|
30
|
-
marginRight: 0
|
31
|
-
}
|
32
|
-
}
|
33
|
-
}, slots.Input), slots.LeadingVisual && /*#__PURE__*/React.createElement(Box, {
|
34
|
-
color: disabled ? 'fg.muted' : 'fg.default',
|
35
|
-
sx: {
|
36
|
-
'> *': {
|
37
|
-
minWidth: slots.Caption ? get('fontSizes.4') : get('fontSizes.2'),
|
38
|
-
minHeight: slots.Caption ? get('fontSizes.4') : get('fontSizes.2'),
|
39
|
-
fill: 'currentColor'
|
40
|
-
}
|
41
|
-
},
|
42
|
-
ml: 2
|
43
|
-
}, slots.LeadingVisual), /*#__PURE__*/React.isValidElement(slots.Label) && !slots.Label.props.visuallyHidden || slots.Caption ? /*#__PURE__*/React.createElement(Box, {
|
44
|
-
display: "flex",
|
45
|
-
flexDirection: "column",
|
46
|
-
ml: 2
|
47
|
-
}, slots.Label, slots.Caption) : /*#__PURE__*/React.createElement(React.Fragment, null, slots.Label, slots.Caption));
|
48
|
-
});
|
49
|
-
};
|
50
|
-
|
51
|
-
ToggleInputField.displayName = "ToggleInputField";
|
52
|
-
export default Object.assign(ToggleInputField, {
|
53
|
-
LeadingVisual: ToggleInputLeadingVisual
|
54
|
-
});
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { Slot } from './slots';
|
3
|
-
|
4
|
-
const ToggleInputLeadingVisual = ({
|
5
|
-
children
|
6
|
-
}) => /*#__PURE__*/React.createElement(Slot, {
|
7
|
-
name: "LeadingVisual"
|
8
|
-
}, children);
|
9
|
-
|
10
|
-
ToggleInputLeadingVisual.displayName = "ToggleInputLeadingVisual";
|
11
|
-
export default ToggleInputLeadingVisual;
|
@@ -1,33 +0,0 @@
|
|
1
|
-
import React, { useEffect, useState } from 'react';
|
2
|
-
import styled, { keyframes, css } from 'styled-components';
|
3
|
-
import { Box } from '..';
|
4
|
-
const fadeIn = keyframes(["0%{opacity:0;transform:translateY(-100%);}100%{opacity:1;transform:translateY(0);}"]); // using easeOutQuint easing fn https://easings.net/#easeOutQuint
|
5
|
-
|
6
|
-
const AnimatedElement = styled.div.withConfig({
|
7
|
-
displayName: "ValidationAnimationContainer__AnimatedElement",
|
8
|
-
componentId: "sc-1grmoaz-0"
|
9
|
-
})(["animation:", ";"], props => props.show && css(["170ms ", " cubic-bezier(0.44,0.74,0.36,1);"], fadeIn));
|
10
|
-
|
11
|
-
const ValidationAnimationContainer = ({
|
12
|
-
show,
|
13
|
-
children
|
14
|
-
}) => {
|
15
|
-
const [shouldRender, setRender] = useState(show);
|
16
|
-
useEffect(() => {
|
17
|
-
if (show) setRender(true);
|
18
|
-
}, [show]);
|
19
|
-
|
20
|
-
const onAnimationEnd = () => {
|
21
|
-
if (!show) setRender(false);
|
22
|
-
};
|
23
|
-
|
24
|
-
return shouldRender ? /*#__PURE__*/React.createElement(Box, {
|
25
|
-
height: show ? 'auto' : 0,
|
26
|
-
overflow: "hidden"
|
27
|
-
}, /*#__PURE__*/React.createElement(AnimatedElement, {
|
28
|
-
show: show,
|
29
|
-
onAnimationEnd: onAnimationEnd
|
30
|
-
}, children)) : null;
|
31
|
-
};
|
32
|
-
|
33
|
-
export default ValidationAnimationContainer;
|
@@ -1 +0,0 @@
|
|
1
|
-
export { default } from './InputField';
|
@@ -1 +0,0 @@
|
|
1
|
-
export { default } from './InputField';
|
@@ -1,13 +0,0 @@
|
|
1
|
-
/// <reference types="react" />
|
2
|
-
export declare const Slots: import("react").FC<{
|
3
|
-
context?: Record<string, unknown> | undefined;
|
4
|
-
children: (slots: {
|
5
|
-
LeadingVisual?: import("react").ReactNode;
|
6
|
-
Caption?: import("react").ReactNode;
|
7
|
-
Input?: import("react").ReactNode;
|
8
|
-
Label?: import("react").ReactNode;
|
9
|
-
}) => import("react").ReactNode;
|
10
|
-
}>, Slot: import("react").FC<{
|
11
|
-
name: "LeadingVisual" | "Caption" | "Input" | "Label";
|
12
|
-
children: import("react").ReactNode;
|
13
|
-
}>;
|
package/lib-esm/_InputLabel.d.ts
DELETED
package/lib-esm/_InputLabel.js
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { Box } from '.';
|
3
|
-
import VisuallyHidden from './_VisuallyHidden';
|
4
|
-
|
5
|
-
const InputLabel = ({
|
6
|
-
children,
|
7
|
-
disabled,
|
8
|
-
required,
|
9
|
-
visuallyHidden,
|
10
|
-
htmlFor
|
11
|
-
}) => {
|
12
|
-
return /*#__PURE__*/React.createElement(VisuallyHidden, {
|
13
|
-
isVisible: !visuallyHidden,
|
14
|
-
as: "label",
|
15
|
-
htmlFor: htmlFor,
|
16
|
-
title: required ? 'required field' : undefined,
|
17
|
-
sx: {
|
18
|
-
fontWeight: 'bold',
|
19
|
-
fontSize: 1,
|
20
|
-
display: 'block',
|
21
|
-
color: disabled ? 'fg.muted' : 'fg.default'
|
22
|
-
}
|
23
|
-
}, required ? /*#__PURE__*/React.createElement(Box, {
|
24
|
-
display: "flex",
|
25
|
-
as: "span"
|
26
|
-
}, /*#__PURE__*/React.createElement(Box, {
|
27
|
-
mr: 1
|
28
|
-
}, children), /*#__PURE__*/React.createElement("span", null, "*")) : children);
|
29
|
-
};
|
30
|
-
|
31
|
-
InputLabel.displayName = "InputLabel";
|
32
|
-
export default InputLabel;
|
@@ -1,8 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { FormValidationStatus } from './utils/types/FormValidationStatus';
|
3
|
-
interface Props {
|
4
|
-
id: string;
|
5
|
-
validationStatus?: FormValidationStatus;
|
6
|
-
}
|
7
|
-
declare const InputValidation: React.FC<Props>;
|
8
|
-
export default InputValidation;
|
@@ -1,43 +0,0 @@
|
|
1
|
-
import { AlertFillIcon, CheckCircleFillIcon } from '@primer/octicons-react';
|
2
|
-
import React from 'react';
|
3
|
-
import { Box, Text } from '.';
|
4
|
-
const validationIconMap = {
|
5
|
-
success: CheckCircleFillIcon,
|
6
|
-
error: AlertFillIcon
|
7
|
-
};
|
8
|
-
const validationColorMap = {
|
9
|
-
success: 'success.fg',
|
10
|
-
error: 'danger.fg'
|
11
|
-
};
|
12
|
-
|
13
|
-
const InputValidation = ({
|
14
|
-
children,
|
15
|
-
id,
|
16
|
-
validationStatus
|
17
|
-
}) => {
|
18
|
-
const IconComponent = validationStatus ? validationIconMap[validationStatus] : undefined;
|
19
|
-
const fgColor = validationStatus ? validationColorMap[validationStatus] : undefined;
|
20
|
-
return /*#__PURE__*/React.createElement(Text, {
|
21
|
-
display: "flex",
|
22
|
-
color: fgColor,
|
23
|
-
fontSize: 0,
|
24
|
-
sx: {
|
25
|
-
alignItems: 'baseline',
|
26
|
-
a: {
|
27
|
-
color: 'currentColor',
|
28
|
-
textDecoration: 'underline'
|
29
|
-
}
|
30
|
-
}
|
31
|
-
}, IconComponent && /*#__PURE__*/React.createElement(Box, {
|
32
|
-
as: "span",
|
33
|
-
mr: 1
|
34
|
-
}, /*#__PURE__*/React.createElement(IconComponent, {
|
35
|
-
size: 12,
|
36
|
-
fill: "currentColor"
|
37
|
-
})), /*#__PURE__*/React.createElement("span", {
|
38
|
-
id: id
|
39
|
-
}, children));
|
40
|
-
};
|
41
|
-
|
42
|
-
InputValidation.displayName = "InputValidation";
|
43
|
-
export default InputValidation;
|
@@ -1,26 +0,0 @@
|
|
1
|
-
import styled from 'styled-components';
|
2
|
-
import sx from './sx';
|
3
|
-
const VisuallyHidden = styled.span.withConfig({
|
4
|
-
displayName: "_VisuallyHidden__VisuallyHidden",
|
5
|
-
componentId: "sc-1k15c4h-0"
|
6
|
-
})(["", ""], props => {
|
7
|
-
if (props.isVisible) {
|
8
|
-
return sx;
|
9
|
-
}
|
10
|
-
|
11
|
-
return `
|
12
|
-
position: absolute;
|
13
|
-
width: 1px;
|
14
|
-
height: 1px;
|
15
|
-
padding: 0;
|
16
|
-
margin: -1px;
|
17
|
-
overflow: hidden;
|
18
|
-
clip: rect(0, 0, 0, 0);
|
19
|
-
white-space: nowrap;
|
20
|
-
border-width: 0;
|
21
|
-
`;
|
22
|
-
});
|
23
|
-
VisuallyHidden.defaultProps = {
|
24
|
-
isVisible: true
|
25
|
-
};
|
26
|
-
export default VisuallyHidden;
|
@@ -1 +0,0 @@
|
|
1
|
-
export declare type FormValidationStatus = 'error' | 'success';
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|