@pingux/astro 2.9.1 → 2.13.0-alpha.3
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/README.md +6 -2
- package/lib/README.md +6 -2
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.mdx +40 -0
- package/lib/cjs/components/AccordionGroup/Accordion.styles.js +1 -2
- package/lib/cjs/components/AccordionGroup/AccordionGroup.mdx +41 -0
- package/lib/cjs/components/ArrayField/ArrayField.mdx +34 -0
- package/lib/cjs/components/AstroWrapper/AstroWrapper.mdx +16 -0
- package/lib/cjs/components/Avatar/Avatar.mdx +14 -0
- package/lib/cjs/components/Badge/Badge.mdx +24 -0
- package/lib/cjs/components/Box/Box.d.ts +4 -0
- package/lib/cjs/components/Box/Box.js +4 -19
- package/lib/cjs/components/Box/Box.mdx +23 -0
- package/lib/cjs/components/Box/Box.styles.d.ts +6 -0
- package/lib/cjs/components/Box/Box.test.d.ts +1 -0
- package/lib/cjs/components/Box/Box.test.js +2 -6
- package/lib/cjs/components/Box/index.d.ts +1 -0
- package/lib/cjs/components/Bracket/Bracket.mdx +17 -0
- package/lib/cjs/components/Breadcrumbs/Breadcrumbs.mdx +40 -0
- package/lib/cjs/components/Button/Button.mdx +40 -0
- package/lib/cjs/components/Button/Button.stories.js +30 -5
- package/lib/cjs/components/Button/Buttons.styles.js +25 -7
- package/lib/cjs/components/Calendar/Calendar.mdx +39 -0
- package/lib/cjs/components/Callout/Callout.mdx +28 -0
- package/lib/cjs/components/Card/Card.mdx +32 -0
- package/lib/cjs/components/CheckboxField/CheckboxField.mdx +42 -0
- package/lib/cjs/components/CodeView/CodeView.mdx +23 -0
- package/lib/cjs/components/CollapsiblePanel/CollapsiblePanel.mdx +29 -0
- package/lib/cjs/components/ColorField/ColorField.mdx +38 -0
- package/lib/cjs/components/ComboBoxField/ComboBoxField.mdx +66 -0
- package/lib/cjs/components/CopyText/CopyText.mdx +23 -0
- package/lib/cjs/components/DataTable/DataTable.mdx +54 -0
- package/lib/cjs/components/DatePicker/DatePicker.mdx +49 -0
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +2 -1
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.mdx +36 -0
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.stories.js +29 -45
- package/lib/cjs/components/FileInputField/FileInputField.mdx +33 -0
- package/lib/cjs/components/HelpHint/HelpHint.mdx +32 -0
- package/lib/cjs/components/Icon/Icon.d.ts +4 -0
- package/lib/cjs/components/Icon/Icon.js +4 -27
- package/lib/cjs/components/Icon/Icon.mdx +49 -0
- package/lib/cjs/components/Icon/Icon.stories.d.ts +8 -0
- package/lib/cjs/components/Icon/Icon.test.d.ts +1 -0
- package/lib/cjs/components/Icon/index.d.ts +1 -0
- package/lib/cjs/components/IconBadge/IconBadge.mdx +14 -0
- package/lib/cjs/components/IconButton/IconButton.mdx +33 -0
- package/lib/cjs/components/IconButtonToggle/IconButtonToggle.mdx +31 -0
- package/lib/cjs/components/Image/Image.mdx +28 -0
- package/lib/cjs/components/ImageUploadField/ImageUploadField.mdx +38 -0
- package/lib/cjs/components/Link/Link.mdx +27 -0
- package/lib/cjs/components/LinkSelectField/LinkSelectField.mdx +47 -0
- package/lib/cjs/components/ListItem/ListItem.mdx +21 -0
- package/lib/cjs/components/ListView/ListView.mdx +44 -0
- package/lib/cjs/components/ListView/ListView.stories.js +93 -47
- package/lib/cjs/components/Loader/Loader.d.ts +4 -0
- package/lib/cjs/components/Loader/Loader.js +0 -14
- package/lib/cjs/components/Loader/Loader.mdx +29 -0
- package/lib/cjs/components/Loader/Loader.styles.d.ts +53 -0
- package/lib/cjs/components/Loader/Loader.test.d.ts +1 -0
- package/lib/cjs/components/Loader/index.d.ts +1 -0
- package/lib/cjs/components/Menu/Menu.mdx +43 -0
- package/lib/cjs/components/Messages/Messages.mdx +35 -0
- package/lib/cjs/components/Modal/Modal.mdx +59 -0
- package/lib/cjs/components/MultivaluesField/MultivaluesField.mdx +44 -0
- package/lib/cjs/components/NavBar/NavBar.mdx +42 -0
- package/lib/cjs/components/NumberField/NumberField.mdx +39 -0
- package/lib/cjs/components/OverlayPanel/OverlayPanel.mdx +39 -0
- package/lib/cjs/components/PasswordField/PasswordField.mdx +33 -0
- package/lib/cjs/components/PopoverContainer/PopoverContainer.d.ts +9 -0
- package/lib/cjs/components/PopoverContainer/PopoverContainer.js +7 -38
- package/lib/cjs/components/PopoverContainer/index.d.ts +2 -0
- package/lib/cjs/components/PopoverMenu/PopoverMenu.mdx +53 -0
- package/lib/cjs/components/RadioGroupField/RadioGroupField.mdx +41 -0
- package/lib/cjs/components/RequirementsList/RequirementsList.mdx +17 -0
- package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.mdx +36 -0
- package/lib/cjs/components/ScrollBox/ScrollBox.mdx +17 -0
- package/lib/cjs/components/SearchField/SearchField.mdx +33 -0
- package/lib/cjs/components/SelectField/SelectField.mdx +46 -0
- package/lib/cjs/components/Separator/Separator.mdx +19 -0
- package/lib/cjs/components/Stepper/Stepper.mdx +41 -0
- package/lib/cjs/components/SwitchField/SwitchField.mdx +36 -0
- package/lib/cjs/components/Table/Table.mdx +30 -0
- package/lib/cjs/components/TableCell/TableCell.d.ts +12 -0
- package/lib/cjs/components/TableCell/TableCell.js +0 -5
- package/lib/cjs/components/TableCell/TableCell.test.d.ts +1 -0
- package/lib/cjs/components/TableCell/index.d.ts +1 -0
- package/lib/cjs/components/Tabs/Tabs.mdx +40 -0
- package/lib/cjs/components/Text/Text.d.ts +4 -0
- package/lib/cjs/components/Text/Text.js +3 -7
- package/lib/cjs/components/Text/Text.mdx +13 -0
- package/lib/cjs/components/Text/Text.stories.d.ts +6 -0
- package/lib/cjs/components/Text/Text.styles.d.ts +286 -0
- package/lib/cjs/components/Text/Text.test.d.ts +1 -0
- package/lib/cjs/components/Text/index.d.ts +1 -0
- package/lib/cjs/components/TextAreaField/TextAreaField.mdx +34 -0
- package/lib/cjs/components/TextField/TextField.mdx +34 -0
- package/lib/cjs/components/TimeZonePicker/TimeZonePicker.mdx +18 -0
- package/lib/cjs/components/TooltipTrigger/TooltipTrigger.mdx +21 -0
- package/lib/cjs/docs/Props.stories.mdx +35 -0
- package/lib/cjs/docs/Welcome.stories.mdx +149 -0
- package/lib/cjs/docs/hooks/useDebounce.stories.mdx +59 -0
- package/lib/cjs/docs/hooks/useModalState.stories.mdx +83 -0
- package/lib/cjs/docs/hooks/useOverlayPanelState.stories.mdx +84 -0
- package/lib/cjs/docs/theme/AstroNanoTheme.stories.mdx +174 -0
- package/lib/cjs/docs/theme/AstroTheme.stories.mdx +20 -0
- package/lib/cjs/docs/theme/CustomThemes.stories.mdx +70 -0
- package/lib/cjs/docs/theme/StylingGuideline.stories.mdx +116 -0
- package/lib/cjs/docs/utils/messagesReducer.stories.mdx +64 -0
- package/lib/cjs/experimental/EditButton/EditButton.js +63 -0
- package/lib/cjs/experimental/EditButton/EditButton.mdx +9 -0
- package/lib/cjs/experimental/EditButton/EditButton.stories.js +91 -0
- package/lib/cjs/experimental/EditButton/EditButton.test.js +71 -0
- package/lib/cjs/experimental/EditButton/index.js +14 -0
- package/lib/cjs/experimental/ListView/ListView.mdx +47 -0
- package/lib/cjs/experimental/ListView/ListView.stories.js +742 -0
- package/lib/cjs/experimental/ListViewItem/ListViewItem.js +23 -5
- package/lib/cjs/experimental/ListViewItem/ListViewItem.mdx +36 -0
- package/lib/cjs/experimental/ListViewItem/ListViewItem.stories.js +31 -7
- package/lib/cjs/experimental/ListViewItem/ListViewItem.test.js +51 -7
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemEditButton.js +1 -4
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemEditButton.stories.js +4 -1
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemSwitchField.js +1 -0
- package/lib/cjs/experimental/ListViewItem/listViewItemAttributes.js +28 -13
- package/lib/cjs/experimental/PanelHeader/PanelHeader.js +88 -0
- package/lib/cjs/experimental/PanelHeader/PanelHeader.mdx +19 -0
- package/lib/cjs/experimental/PanelHeader/PanelHeader.stories.js +71 -0
- package/lib/cjs/experimental/PanelHeader/PanelHeader.styles.js +38 -0
- package/lib/cjs/experimental/PanelHeader/PanelHeader.test.js +46 -0
- package/lib/cjs/experimental/PanelHeader/controls/PanelHeaderCloseButton.js +34 -0
- package/lib/cjs/experimental/PanelHeader/controls/PanelHeaderCloseButton.stories.js +31 -0
- package/lib/cjs/experimental/PanelHeader/controls/PanelHeaderCloseButton.test.js +25 -0
- package/lib/cjs/experimental/PanelHeader/controls/PanelHeaderMenu.js +27 -0
- package/lib/cjs/experimental/PanelHeader/controls/PanelHeaderMenu.stories.js +36 -0
- package/lib/cjs/experimental/PanelHeader/controls/PanelHeaderMenu.test.js +58 -0
- package/lib/cjs/experimental/PanelHeader/controls/PanelHeaderSwitchField.js +27 -0
- package/lib/cjs/experimental/PanelHeader/controls/PanelHeaderSwitchField.stories.js +41 -0
- package/lib/cjs/experimental/PanelHeader/controls/PanelHeaderSwitchField.test.js +25 -0
- package/lib/cjs/experimental/PanelHeader/index.js +14 -0
- package/lib/cjs/experimental/README.stories.mdx +7 -0
- package/lib/cjs/experimental/SaveBar/SaveBar.mdx +13 -0
- package/lib/cjs/experimental/recipes/ListAndPanel.stories.js +1 -1
- package/lib/cjs/hooks/usePropWarning/usePropWarning.js +1 -1
- package/lib/cjs/hooks/useStatusClasses/useStatusClasses.js +2 -2
- package/lib/cjs/hooks/useTShirtSize/useTShirtSize.js +1 -1
- package/lib/cjs/index.d.ts +173 -0
- package/lib/cjs/index.js +53 -1
- package/lib/cjs/recipes/{AttributesAndPingOneMapping.stories.js → AttributeMapping.stories.js} +392 -132
- package/lib/cjs/styles/colors.js +1 -1
- package/lib/cjs/styles/variants/README.md +98 -0
- package/lib/cjs/styles/variants/variants.js +2 -0
- package/lib/cjs/types/box.d.ts +10 -0
- package/lib/cjs/types/box.js +6 -0
- package/lib/cjs/types/icon.d.ts +34 -0
- package/lib/cjs/types/icon.js +6 -0
- package/lib/cjs/types/index.d.ts +7 -0
- package/lib/cjs/types/index.js +86 -0
- package/lib/cjs/types/loader.d.ts +14 -0
- package/lib/cjs/types/loader.js +6 -0
- package/lib/cjs/types/mdx.d.js +1 -0
- package/lib/cjs/types/popoverContainer.d.ts +23 -0
- package/lib/cjs/types/popoverContainer.js +6 -0
- package/lib/cjs/types/shared/dom.d.ts +9 -0
- package/lib/cjs/types/shared/dom.js +6 -0
- package/lib/cjs/types/shared/index.d.ts +3 -0
- package/lib/cjs/types/shared/index.js +42 -0
- package/lib/cjs/types/shared/style.d.ts +11 -0
- package/lib/cjs/types/shared/style.js +6 -0
- package/lib/cjs/types/shared/test.d.ts +3 -0
- package/lib/cjs/types/shared/test.js +6 -0
- package/lib/cjs/types/shared/utils.d.ts +1 -0
- package/lib/cjs/types/shared/utils.js +6 -0
- package/lib/cjs/types/tableCell.d.ts +5 -0
- package/lib/cjs/types/tableCell.js +6 -0
- package/lib/cjs/types/text.d.ts +3 -0
- package/lib/cjs/types/text.js +6 -0
- package/lib/components/AccordionGridGroup/AccordionGridGroup.mdx +40 -0
- package/lib/components/AccordionGroup/Accordion.styles.js +1 -2
- package/lib/components/AccordionGroup/AccordionGroup.mdx +41 -0
- package/lib/components/ArrayField/ArrayField.mdx +34 -0
- package/lib/components/AstroWrapper/AstroWrapper.mdx +16 -0
- package/lib/components/Avatar/Avatar.mdx +14 -0
- package/lib/components/Badge/Badge.mdx +24 -0
- package/lib/components/Box/Box.js +4 -19
- package/lib/components/Box/Box.mdx +23 -0
- package/lib/components/Box/Box.test.js +2 -6
- package/lib/components/Bracket/Bracket.mdx +17 -0
- package/lib/components/Breadcrumbs/Breadcrumbs.mdx +40 -0
- package/lib/components/Button/Button.mdx +40 -0
- package/lib/components/Button/Button.stories.js +30 -5
- package/lib/components/Button/Buttons.styles.js +25 -7
- package/lib/components/Calendar/Calendar.mdx +39 -0
- package/lib/components/Callout/Callout.mdx +28 -0
- package/lib/components/Card/Card.mdx +32 -0
- package/lib/components/CheckboxField/CheckboxField.mdx +42 -0
- package/lib/components/CodeView/CodeView.mdx +23 -0
- package/lib/components/CollapsiblePanel/CollapsiblePanel.mdx +29 -0
- package/lib/components/ColorField/ColorField.mdx +38 -0
- package/lib/components/ComboBoxField/ComboBoxField.mdx +66 -0
- package/lib/components/CopyText/CopyText.mdx +23 -0
- package/lib/components/DataTable/DataTable.mdx +54 -0
- package/lib/components/DatePicker/DatePicker.mdx +49 -0
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +2 -1
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.mdx +36 -0
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.stories.js +29 -45
- package/lib/components/FileInputField/FileInputField.mdx +33 -0
- package/lib/components/HelpHint/HelpHint.mdx +32 -0
- package/lib/components/Icon/Icon.js +2 -25
- package/lib/components/Icon/Icon.mdx +49 -0
- package/lib/components/IconBadge/IconBadge.mdx +14 -0
- package/lib/components/IconButton/IconButton.mdx +33 -0
- package/lib/components/IconButtonToggle/IconButtonToggle.mdx +31 -0
- package/lib/components/Image/Image.mdx +28 -0
- package/lib/components/ImageUploadField/ImageUploadField.mdx +38 -0
- package/lib/components/Link/Link.mdx +27 -0
- package/lib/components/LinkSelectField/LinkSelectField.mdx +47 -0
- package/lib/components/ListItem/ListItem.mdx +21 -0
- package/lib/components/ListView/ListView.mdx +44 -0
- package/lib/components/ListView/ListView.stories.js +94 -48
- package/lib/components/Loader/Loader.js +0 -14
- package/lib/components/Loader/Loader.mdx +29 -0
- package/lib/components/Menu/Menu.mdx +43 -0
- package/lib/components/Messages/Messages.mdx +35 -0
- package/lib/components/Modal/Modal.mdx +59 -0
- package/lib/components/MultivaluesField/MultivaluesField.mdx +44 -0
- package/lib/components/NavBar/NavBar.mdx +42 -0
- package/lib/components/NumberField/NumberField.mdx +39 -0
- package/lib/components/OverlayPanel/OverlayPanel.mdx +39 -0
- package/lib/components/PasswordField/PasswordField.mdx +33 -0
- package/lib/components/PopoverContainer/PopoverContainer.js +7 -38
- package/lib/components/PopoverMenu/PopoverMenu.mdx +53 -0
- package/lib/components/RadioGroupField/RadioGroupField.mdx +41 -0
- package/lib/components/RequirementsList/RequirementsList.mdx +17 -0
- package/lib/components/RockerButtonGroup/RockerButtonGroup.mdx +36 -0
- package/lib/components/ScrollBox/ScrollBox.mdx +17 -0
- package/lib/components/SearchField/SearchField.mdx +33 -0
- package/lib/components/SelectField/SelectField.mdx +46 -0
- package/lib/components/Separator/Separator.mdx +19 -0
- package/lib/components/Stepper/Stepper.mdx +41 -0
- package/lib/components/SwitchField/SwitchField.mdx +36 -0
- package/lib/components/Table/Table.mdx +30 -0
- package/lib/components/TableCell/TableCell.js +0 -5
- package/lib/components/Tabs/Tabs.mdx +40 -0
- package/lib/components/Text/Text.js +3 -7
- package/lib/components/Text/Text.mdx +13 -0
- package/lib/components/TextAreaField/TextAreaField.mdx +34 -0
- package/lib/components/TextField/TextField.mdx +34 -0
- package/lib/components/TimeZonePicker/TimeZonePicker.mdx +18 -0
- package/lib/components/TooltipTrigger/TooltipTrigger.mdx +21 -0
- package/lib/docs/Props.stories.mdx +35 -0
- package/lib/docs/Welcome.stories.mdx +149 -0
- package/lib/docs/hooks/useDebounce.stories.mdx +59 -0
- package/lib/docs/hooks/useModalState.stories.mdx +83 -0
- package/lib/docs/hooks/useOverlayPanelState.stories.mdx +84 -0
- package/lib/docs/theme/AstroNanoTheme.stories.mdx +174 -0
- package/lib/docs/theme/AstroTheme.stories.mdx +20 -0
- package/lib/docs/theme/CustomThemes.stories.mdx +70 -0
- package/lib/docs/theme/StylingGuideline.stories.mdx +116 -0
- package/lib/docs/utils/messagesReducer.stories.mdx +64 -0
- package/lib/experimental/EditButton/EditButton.js +50 -0
- package/lib/experimental/EditButton/EditButton.mdx +9 -0
- package/lib/experimental/EditButton/EditButton.stories.js +75 -0
- package/lib/experimental/EditButton/EditButton.test.js +68 -0
- package/lib/experimental/EditButton/index.js +1 -0
- package/lib/experimental/ListView/ListView.mdx +47 -0
- package/lib/experimental/ListView/ListView.stories.js +729 -0
- package/lib/experimental/ListViewItem/ListViewItem.js +24 -6
- package/lib/experimental/ListViewItem/ListViewItem.mdx +36 -0
- package/lib/experimental/ListViewItem/ListViewItem.stories.js +28 -5
- package/lib/experimental/ListViewItem/ListViewItem.test.js +45 -1
- package/lib/experimental/ListViewItem/controls/ListViewItemEditButton.js +1 -4
- package/lib/experimental/ListViewItem/controls/ListViewItemEditButton.stories.js +4 -1
- package/lib/experimental/ListViewItem/controls/ListViewItemSwitchField.js +1 -0
- package/lib/experimental/ListViewItem/listViewItemAttributes.js +25 -12
- package/lib/experimental/PanelHeader/PanelHeader.js +75 -0
- package/lib/experimental/PanelHeader/PanelHeader.mdx +19 -0
- package/lib/experimental/PanelHeader/PanelHeader.stories.js +59 -0
- package/lib/experimental/PanelHeader/PanelHeader.styles.js +30 -0
- package/lib/experimental/PanelHeader/PanelHeader.test.js +43 -0
- package/lib/experimental/PanelHeader/controls/PanelHeaderCloseButton.js +25 -0
- package/lib/experimental/PanelHeader/controls/PanelHeaderCloseButton.stories.js +21 -0
- package/lib/experimental/PanelHeader/controls/PanelHeaderCloseButton.test.js +22 -0
- package/lib/experimental/PanelHeader/controls/PanelHeaderMenu.js +18 -0
- package/lib/experimental/PanelHeader/controls/PanelHeaderMenu.stories.js +26 -0
- package/lib/experimental/PanelHeader/controls/PanelHeaderMenu.test.js +55 -0
- package/lib/experimental/PanelHeader/controls/PanelHeaderSwitchField.js +18 -0
- package/lib/experimental/PanelHeader/controls/PanelHeaderSwitchField.stories.js +32 -0
- package/lib/experimental/PanelHeader/controls/PanelHeaderSwitchField.test.js +22 -0
- package/lib/experimental/PanelHeader/index.js +1 -0
- package/lib/experimental/README.stories.mdx +7 -0
- package/lib/experimental/SaveBar/SaveBar.mdx +13 -0
- package/lib/experimental/recipes/ListAndPanel.stories.js +1 -1
- package/lib/hooks/usePropWarning/usePropWarning.js +1 -1
- package/lib/hooks/useStatusClasses/useStatusClasses.js +2 -2
- package/lib/hooks/useTShirtSize/useTShirtSize.js +1 -1
- package/lib/index.js +6 -0
- package/lib/recipes/AttributeMapping.stories.js +540 -0
- package/lib/styles/colors.js +1 -1
- package/lib/styles/variants/README.md +98 -0
- package/lib/styles/variants/variants.js +2 -0
- package/lib/types/box.js +1 -0
- package/lib/types/icon.js +1 -0
- package/lib/types/index.js +7 -0
- package/lib/types/loader.js +1 -0
- package/lib/types/mdx.d.js +0 -0
- package/lib/types/popoverContainer.js +1 -0
- package/lib/types/shared/dom.js +1 -0
- package/lib/types/shared/index.js +3 -0
- package/lib/types/shared/style.js +1 -0
- package/lib/types/shared/test.js +1 -0
- package/lib/types/shared/utils.js +1 -0
- package/lib/types/tableCell.js +1 -0
- package/lib/types/text.js +1 -0
- package/package.json +20 -6
- package/CHANGELOG.md +0 -2554
- package/NOTICE +0 -2481
- package/NOTICE.html +0 -9174
- package/lib/cjs/recipes/AttributeMappingReadOnlyField.stories.js +0 -254
- package/lib/recipes/AttributeMappingReadOnlyField.stories.js +0 -243
- package/lib/recipes/AttributesAndPingOneMapping.stories.js +0 -282
@@ -16,7 +16,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
16
16
|
import React, { forwardRef } from 'react';
|
17
17
|
import { useHover } from '@react-aria/interactions';
|
18
18
|
import { useStatusClasses } from '../../hooks';
|
19
|
-
import { Box, Icon, Text } from '../../index';
|
19
|
+
import { Box, Icon, Image, Text } from '../../index';
|
20
20
|
import { listViewItemPropTypes } from './listViewItemAttributes';
|
21
21
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
22
22
|
var sx = {
|
@@ -40,6 +40,9 @@ var sx = {
|
|
40
40
|
width: 25,
|
41
41
|
color: 'accent.40'
|
42
42
|
},
|
43
|
+
image: {
|
44
|
+
width: 35
|
45
|
+
},
|
43
46
|
rightOfData: {
|
44
47
|
alignSelf: 'center',
|
45
48
|
ml: 'sm'
|
@@ -79,6 +82,7 @@ var ListViewItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
79
82
|
slots = _ref.slots,
|
80
83
|
others = _objectWithoutProperties(_ref, _excluded);
|
81
84
|
var icon = data.icon,
|
85
|
+
image = data.image,
|
82
86
|
subtext = data.subtext,
|
83
87
|
text = data.text;
|
84
88
|
var shouldUseDefaultHover = isHovered === undefined;
|
@@ -94,15 +98,22 @@ var ListViewItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
94
98
|
isSelected: isSelected
|
95
99
|
}),
|
96
100
|
classNames = _useStatusClasses.classNames;
|
101
|
+
var iff = function iff(condition, then, otherwise) {
|
102
|
+
return condition ? then : otherwise;
|
103
|
+
};
|
97
104
|
var wrapperStyles = slots !== null && slots !== void 0 && slots.leftOfData ? _objectSpread(_objectSpread({}, sx.wrapper), {}, {
|
98
105
|
ml: 0
|
99
|
-
}) : sx.wrapper
|
106
|
+
}) : iff(!icon && image, _objectSpread(_objectSpread({}, sx.wrapper), {}, {
|
107
|
+
ml: 10
|
108
|
+
}), sx.wrapper);
|
100
109
|
var textStyles = slots !== null && slots !== void 0 && slots.leftOfData ? _objectSpread(_objectSpread({}, sx.text), {}, {
|
101
110
|
ml: 0
|
102
|
-
}) : sx.
|
103
|
-
|
111
|
+
}) : iff(!icon && image, _objectSpread(_objectSpread({}, sx.wrapper), {}, {
|
112
|
+
ml: 10
|
113
|
+
}), sx.wrapper);
|
114
|
+
var renderIcon = icon && ___EmotionJSX(Box, {
|
104
115
|
sx: sx.icon
|
105
|
-
},
|
116
|
+
}, ___EmotionJSX(Icon, {
|
106
117
|
icon: icon,
|
107
118
|
size: "md",
|
108
119
|
title: {
|
@@ -110,10 +121,17 @@ var ListViewItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
110
121
|
name: _concatInstanceProperty(_context2 = "".concat(text)).call(_context2, LIST_ITEM_ICON)
|
111
122
|
}
|
112
123
|
}));
|
124
|
+
var renderImage = !icon && image && ___EmotionJSX(Box, {
|
125
|
+
sx: sx.image
|
126
|
+
}, ___EmotionJSX(Image, {
|
127
|
+
src: image.src,
|
128
|
+
alt: image.alt,
|
129
|
+
"aria-label": image['aria-label']
|
130
|
+
}));
|
113
131
|
var renderData = ___EmotionJSX(Box, {
|
114
132
|
isRow: true,
|
115
133
|
sx: sx.data
|
116
|
-
}, (slots === null || slots === void 0 ? void 0 : slots.leftOfData) || renderIcon, ___EmotionJSX(Box, {
|
134
|
+
}, (slots === null || slots === void 0 ? void 0 : slots.leftOfData) || renderIcon || renderImage, ___EmotionJSX(Box, {
|
117
135
|
sx: textStyles
|
118
136
|
}, text && ___EmotionJSX(Text, {
|
119
137
|
variant: "bodyStrong",
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
2
|
+
|
3
|
+
<Meta title="Experimental/ListViewItem" />
|
4
|
+
|
5
|
+
# ListViewItem
|
6
|
+
|
7
|
+
The ListViewItem allows easy creation of list items. Styles have been included to match Ping specs. Use the data prop to pass in text, subtext and an image, mdi or svg icon.
|
8
|
+
|
9
|
+
### Recommended Use
|
10
|
+
This component is intended to be used inside a ListView component. See the [ListAndPanel](./?path=/story/experimental-recipes-listandpanel--list-and-panel) and [ScrollableListView](./?path=/story/experimental-recipes-scrollablelistview--scrollable-list-view)
|
11
|
+
recipes for a more detailed examples.
|
12
|
+
|
13
|
+
#### Icons and Images
|
14
|
+
Add an icon by passing an mdi or svg icon to the `data.icon` prop. Default size is 25px.
|
15
|
+
|
16
|
+
Add an image by passing an object with a `src` key to the `data.image` prop. `alt` and `aria-label` keys are supported but not required. Default size is 35px.
|
17
|
+
|
18
|
+
If both an icon and an image are provided the icon will be rendered.
|
19
|
+
|
20
|
+
For other Icon or Image sizes use slots with `rightOfData`.
|
21
|
+
|
22
|
+
#### Slots
|
23
|
+
The slots prop has been provided for added flexibility. Use the `rightOfData` slot to add icons, badges or other elements to the right of the data
|
24
|
+
section. Use the `leftOfData` slot to add elements to the left of the data element. Note that when the
|
25
|
+
leftOfData slot is used, it will prevent an icon in the `data.icon` prop from rendering and remove all margins/padding on the left of the data.
|
26
|
+
|
27
|
+
#### Children
|
28
|
+
To add action controls, pass control elements as `{children}`. All elements passed in this way will be right justified and center aligned. Use one of the following
|
29
|
+
styled control components to easily match Ping specs.
|
30
|
+
- [ListViewItemEditButton](./?path=/story/experimental-styledlistitem-controls-listitemeditbutton--default)
|
31
|
+
- [ListViewItemMenu](./?path=/story/experimental-styledlistitem-controls-listitemmenu--default)
|
32
|
+
- [ListViewItemSwitchField](./?path=/story/experimental-styledlistitem-controls-listitemswitchfield--default)
|
33
|
+
|
34
|
+
### Note:
|
35
|
+
The nature of components that have been styled to match design specs is that as design specs are updated, so will the matching component. Be aware that styles
|
36
|
+
inside this component may be adjusted in small ways over time.
|
@@ -4,6 +4,7 @@ import AccountIcon from '@pingux/mdi-react/AccountIcon';
|
|
4
4
|
import FormSelectIcon from '@pingux/mdi-react/FormSelectIcon';
|
5
5
|
import DocsLayout from '../../../.storybook/storybookDocsLayout';
|
6
6
|
import { Badge, Box, ListViewItem, ListViewItemEditButton, ListViewItemMenu, ListViewItemSwitchField, Separator, Text } from '../../index';
|
7
|
+
import { pingImg } from '../../utils/devUtils/constants/images';
|
7
8
|
import ListViewItemReadMe from './ListViewItem.mdx';
|
8
9
|
import { listViewItemArgTypes } from './listViewItemAttributes';
|
9
10
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
@@ -39,7 +40,8 @@ export var Default = function Default() {
|
|
39
40
|
data: {
|
40
41
|
icon: AccountIcon,
|
41
42
|
text: 'Fons Vernall'
|
42
|
-
}
|
43
|
+
},
|
44
|
+
"aria-label": "Fons Vernall"
|
43
45
|
}));
|
44
46
|
};
|
45
47
|
export var WithSubtext = function WithSubtext() {
|
@@ -48,6 +50,20 @@ export var WithSubtext = function WithSubtext() {
|
|
48
50
|
icon: AccountIcon,
|
49
51
|
subtext: 'rad_developer@pingidentity.com',
|
50
52
|
text: 'Fons Vernall'
|
53
|
+
},
|
54
|
+
"aria-label": "Fons Vernall"
|
55
|
+
}));
|
56
|
+
};
|
57
|
+
export var WithImage = function WithImage() {
|
58
|
+
return ___EmotionJSX(Wrapper, null, ___EmotionJSX(ListViewItem, {
|
59
|
+
data: {
|
60
|
+
image: {
|
61
|
+
src: pingImg,
|
62
|
+
alt: 'avatar',
|
63
|
+
'aria-label': 'avatar'
|
64
|
+
},
|
65
|
+
subtext: 'rad_developer@pingidentity.com',
|
66
|
+
text: 'Fons Vernall'
|
51
67
|
}
|
52
68
|
}));
|
53
69
|
};
|
@@ -56,8 +72,13 @@ export var WithControls = function WithControls() {
|
|
56
72
|
data: {
|
57
73
|
icon: FormSelectIcon,
|
58
74
|
text: 'Fons Vernall'
|
59
|
-
}
|
60
|
-
|
75
|
+
},
|
76
|
+
"aria-label": "Fons Vernall"
|
77
|
+
}, ___EmotionJSX(ListViewItemEditButton, {
|
78
|
+
"aria-label": "edit-icon"
|
79
|
+
}), ___EmotionJSX(ListViewItemSwitchField, {
|
80
|
+
"aria-label": "active user"
|
81
|
+
}), ___EmotionJSX(ListViewItemMenu, null, ___EmotionJSX(Item, {
|
61
82
|
key: "enable"
|
62
83
|
}, "Enable user"), ___EmotionJSX(Item, {
|
63
84
|
key: "disable"
|
@@ -84,7 +105,8 @@ export var WithRightOfDataSlot = function WithRightOfDataSlot() {
|
|
84
105
|
},
|
85
106
|
slots: {
|
86
107
|
rightOfData: renderRightOfData
|
87
|
-
}
|
108
|
+
},
|
109
|
+
"aria-label": "Fons Vernall"
|
88
110
|
}, ___EmotionJSX(ListViewItemMenu, null, ___EmotionJSX(Item, {
|
89
111
|
key: "enable"
|
90
112
|
}, "Enable user"), ___EmotionJSX(Item, {
|
@@ -111,7 +133,8 @@ export var WithLeftOfDataSlot = function WithLeftOfDataSlot() {
|
|
111
133
|
,
|
112
134
|
slots: {
|
113
135
|
leftOfData: renderLeftOfData
|
114
|
-
}
|
136
|
+
},
|
137
|
+
"aria-label": "Fons Vernall"
|
115
138
|
}, ___EmotionJSX(ListViewItemMenu, null, ___EmotionJSX(Item, {
|
116
139
|
key: "enable"
|
117
140
|
}, "Enable user"), ___EmotionJSX(Item, {
|
@@ -1,8 +1,21 @@
|
|
1
|
+
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
2
|
+
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
3
|
+
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
4
|
+
import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
|
5
|
+
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
6
|
+
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
7
|
+
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
8
|
+
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
9
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
1
10
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
2
11
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
12
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
13
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
3
14
|
import React from 'react';
|
4
15
|
import AccountIcon from '@pingux/mdi-react/AccountIcon';
|
16
|
+
import { act } from '@testing-library/react';
|
5
17
|
import { ListViewItem, ListViewItemSwitchField } from '../../index';
|
18
|
+
import { pingImg } from '../../utils/devUtils/constants/images';
|
6
19
|
import axeTest from '../../utils/testUtils/testAxe';
|
7
20
|
import { render, screen } from '../../utils/testUtils/testWrapper';
|
8
21
|
import { LIST_ITEM_ICON } from './ListViewItem';
|
@@ -11,13 +24,25 @@ var defaultProps = {
|
|
11
24
|
data: {
|
12
25
|
text: 'testText',
|
13
26
|
subtext: 'testSubtext',
|
14
|
-
icon: AccountIcon
|
27
|
+
icon: AccountIcon,
|
28
|
+
image: {
|
29
|
+
src: pingImg,
|
30
|
+
alt: 'avatar',
|
31
|
+
'aria-label': 'avatar'
|
32
|
+
}
|
15
33
|
}
|
16
34
|
};
|
17
35
|
var getComponent = function getComponent() {
|
18
36
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
19
37
|
return render(___EmotionJSX(ListViewItem, _extends({}, defaultProps, props)));
|
20
38
|
};
|
39
|
+
var fallbackImageObj = null;
|
40
|
+
jest.mock('../../hooks/useFallbackImage', function () {
|
41
|
+
return function (props) {
|
42
|
+
fallbackImageObj = _objectSpread({}, props);
|
43
|
+
return [];
|
44
|
+
};
|
45
|
+
});
|
21
46
|
|
22
47
|
// Need to be added to each test file to test accessibility using axe.
|
23
48
|
axeTest(getComponent);
|
@@ -49,6 +74,25 @@ describe('ListViewItem', function () {
|
|
49
74
|
});
|
50
75
|
screen.getByText(TEST_TEXT);
|
51
76
|
});
|
77
|
+
test('renders icon if both icon and image are passed', function () {
|
78
|
+
getComponent();
|
79
|
+
var icon = screen.getByRole('img');
|
80
|
+
expect(icon).not.toHaveAttribute('src', pingImg);
|
81
|
+
expect(icon.tagName.toLowerCase()).toBe('svg');
|
82
|
+
expect(icon.tagName.toLowerCase()).not.toBe('img');
|
83
|
+
});
|
84
|
+
test('renders image', function () {
|
85
|
+
delete defaultProps.data.icon;
|
86
|
+
getComponent();
|
87
|
+
act(function () {
|
88
|
+
fallbackImageObj.onImageLoad();
|
89
|
+
});
|
90
|
+
var image = screen.getByRole('img');
|
91
|
+
expect(image.tagName.toLowerCase()).toBe('img');
|
92
|
+
expect(image).toHaveAttribute('src', pingImg);
|
93
|
+
expect(image).toHaveAttribute('alt', 'avatar');
|
94
|
+
expect(image).toHaveAttribute('aria-label', 'avatar');
|
95
|
+
});
|
52
96
|
describe('when there is a leftOfData slot', function () {
|
53
97
|
test('renders leftOfData slot', function () {
|
54
98
|
getComponent({
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
2
1
|
import React from 'react';
|
3
2
|
import CreateIcon from '@pingux/mdi-react/CreateIcon';
|
4
3
|
import { iconButtonPropTypes } from '../../../components/IconButton/iconButtonAttributes';
|
@@ -13,9 +12,7 @@ import { Box, Icon, IconButton } from '../../../index';
|
|
13
12
|
*/
|
14
13
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
15
14
|
var ListViewItemEditButton = function ListViewItemEditButton(props) {
|
16
|
-
return ___EmotionJSX(Box, null, ___EmotionJSX(IconButton,
|
17
|
-
"aria-label": "edit-icon"
|
18
|
-
}, props), ___EmotionJSX(Icon, {
|
15
|
+
return ___EmotionJSX(Box, null, ___EmotionJSX(IconButton, props, ___EmotionJSX(Icon, {
|
19
16
|
icon: CreateIcon,
|
20
17
|
size: "sm"
|
21
18
|
})));
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
1
2
|
import React from 'react';
|
2
3
|
import { iconButtonArgs, iconButtonArgTypes } from '../../../components/IconButton/iconButtonAttributes';
|
3
4
|
import { ListViewItemEditButton } from '../../../index';
|
@@ -18,5 +19,7 @@ export default {
|
|
18
19
|
args: iconButtonArgs
|
19
20
|
};
|
20
21
|
export var Default = function Default(args) {
|
21
|
-
return ___EmotionJSX(ListViewItemEditButton,
|
22
|
+
return ___EmotionJSX(ListViewItemEditButton, _extends({
|
23
|
+
"aria-label": "edit-icon"
|
24
|
+
}, args));
|
22
25
|
};
|
@@ -13,6 +13,7 @@ import { SwitchField } from '../../../index';
|
|
13
13
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
14
14
|
var ListViewItemSwitchField = function ListViewItemSwitchField(props) {
|
15
15
|
return ___EmotionJSX(SwitchField, _extends({
|
16
|
+
role: "group",
|
16
17
|
"aria-label": "active user",
|
17
18
|
isDefaultSelected: true,
|
18
19
|
mr: 0
|
@@ -10,6 +10,7 @@ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
|
10
10
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
11
11
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
12
12
|
import PropTypes from 'prop-types';
|
13
|
+
import { ariaAttributeBaseArgTypes, ariaAttributesBasePropTypes } from '../../utils/docUtils/ariaAttributes';
|
13
14
|
import { booleanArg, stringOrStringArray } from '../../utils/docUtils/docArgTypes';
|
14
15
|
import { onHoverArgTypes, onHoverPropTypes } from '../../utils/docUtils/hoverProps';
|
15
16
|
var descriptions = {
|
@@ -20,19 +21,24 @@ var descriptions = {
|
|
20
21
|
slots: 'Provides a way to insert markup in specified places.',
|
21
22
|
linkProps: 'When present, provides meta click functionality'
|
22
23
|
};
|
23
|
-
export var
|
24
|
-
className: {
|
25
|
-
description: descriptions.className,
|
26
|
-
type: {
|
27
|
-
summary: stringOrStringArray
|
28
|
-
}
|
29
|
-
},
|
24
|
+
export var SharedItemArgTypes = {
|
30
25
|
data: {
|
31
26
|
description: descriptions.data,
|
32
27
|
type: {
|
33
|
-
summary: '{ icon, text, subtext }'
|
28
|
+
summary: '{ icon, image, text, subtext }'
|
29
|
+
},
|
30
|
+
control: {
|
31
|
+
type: 'none'
|
34
32
|
}
|
35
33
|
},
|
34
|
+
className: {
|
35
|
+
description: descriptions.className,
|
36
|
+
type: {
|
37
|
+
summary: stringOrStringArray
|
38
|
+
}
|
39
|
+
}
|
40
|
+
};
|
41
|
+
export var listViewItemArgTypes = _objectSpread(_objectSpread(_objectSpread({
|
36
42
|
isSelected: _objectSpread(_objectSpread({}, booleanArg), {}, {
|
37
43
|
description: descriptions.isSelected,
|
38
44
|
control: {
|
@@ -54,14 +60,21 @@ export var listViewItemArgTypes = _objectSpread({
|
|
54
60
|
summary: '{ leftOfData, rightOfData }'
|
55
61
|
}
|
56
62
|
}
|
57
|
-
}, onHoverArgTypes);
|
58
|
-
export var
|
63
|
+
}, SharedItemArgTypes), onHoverArgTypes), ariaAttributeBaseArgTypes);
|
64
|
+
export var SharedItemPropTypes = {
|
59
65
|
className: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
|
60
66
|
data: PropTypes.shape({
|
61
67
|
icon: PropTypes.elementType,
|
68
|
+
image: PropTypes.shape({
|
69
|
+
src: PropTypes.string,
|
70
|
+
alt: PropTypes.string,
|
71
|
+
'aria-label': PropTypes.string
|
72
|
+
}),
|
62
73
|
subtext: PropTypes.string,
|
63
74
|
text: PropTypes.string
|
64
|
-
})
|
75
|
+
})
|
76
|
+
};
|
77
|
+
export var listViewItemPropTypes = _objectSpread(_objectSpread(_objectSpread({
|
65
78
|
isSelected: PropTypes.bool,
|
66
79
|
linkProps: PropTypes.object,
|
67
80
|
onMetaClick: PropTypes.func,
|
@@ -69,4 +82,4 @@ export var listViewItemPropTypes = _objectSpread({
|
|
69
82
|
leftOfData: PropTypes.node,
|
70
83
|
rightOfData: PropTypes.node
|
71
84
|
})
|
72
|
-
}, onHoverPropTypes);
|
85
|
+
}, SharedItemPropTypes), onHoverPropTypes), ariaAttributesBasePropTypes);
|
@@ -0,0 +1,75 @@
|
|
1
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
2
|
+
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
3
|
+
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
|
4
|
+
var _excluded = ["children", "className", "data"];
|
5
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
6
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
7
|
+
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
8
|
+
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
9
|
+
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
10
|
+
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
11
|
+
import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
|
12
|
+
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
13
|
+
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
14
|
+
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
15
|
+
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
16
|
+
import React, { forwardRef } from 'react';
|
17
|
+
import { Box, Icon, Text } from '../../index';
|
18
|
+
import { SharedItemPropTypes } from '../ListViewItem/listViewItemAttributes';
|
19
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
20
|
+
export var PANEL_HEADER_ICON = '-panel-header-icon';
|
21
|
+
var PanelHeader = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
22
|
+
var _context;
|
23
|
+
var children = _ref.children,
|
24
|
+
className = _ref.className,
|
25
|
+
data = _ref.data,
|
26
|
+
others = _objectWithoutProperties(_ref, _excluded);
|
27
|
+
var icon = data.icon,
|
28
|
+
subtext = data.subtext,
|
29
|
+
text = data.text;
|
30
|
+
var renderIcon = ___EmotionJSX(Box, {
|
31
|
+
sx: {
|
32
|
+
width: 25,
|
33
|
+
color: 'accent.40'
|
34
|
+
}
|
35
|
+
}, icon && ___EmotionJSX(Icon, {
|
36
|
+
icon: icon,
|
37
|
+
size: "md",
|
38
|
+
title: {
|
39
|
+
name: _concatInstanceProperty(_context = "".concat(text)).call(_context, PANEL_HEADER_ICON)
|
40
|
+
}
|
41
|
+
}));
|
42
|
+
var renderData = ___EmotionJSX(Box, {
|
43
|
+
isRow: true,
|
44
|
+
variant: "panelHeader.data"
|
45
|
+
}, renderIcon, ___EmotionJSX(Box, {
|
46
|
+
sx: {
|
47
|
+
ml: 'md'
|
48
|
+
}
|
49
|
+
}, text && ___EmotionJSX(Text, {
|
50
|
+
variant: "bodyStrong",
|
51
|
+
sx: {
|
52
|
+
alignSelf: 'start',
|
53
|
+
fontSize: 'md'
|
54
|
+
}
|
55
|
+
}, text), subtext && ___EmotionJSX(Text, {
|
56
|
+
variant: "subtitle",
|
57
|
+
sx: {
|
58
|
+
fontSize: 'sm',
|
59
|
+
lineHeight: '16px',
|
60
|
+
my: '1px'
|
61
|
+
}
|
62
|
+
}, subtext)));
|
63
|
+
return ___EmotionJSX(Box, _extends({
|
64
|
+
variant: "panelHeader.container",
|
65
|
+
className: className,
|
66
|
+
ref: ref
|
67
|
+
}, others), ___EmotionJSX(Box, {
|
68
|
+
variant: "panelHeader.wrapper"
|
69
|
+
}, renderData, ___EmotionJSX(Box, {
|
70
|
+
isRow: true,
|
71
|
+
variant: "panelHeader.controls"
|
72
|
+
}, children)));
|
73
|
+
});
|
74
|
+
PanelHeader.propTypes = _objectSpread({}, SharedItemPropTypes);
|
75
|
+
export default PanelHeader;
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
2
|
+
|
3
|
+
<Meta title="Experimental/PanelHeader" />
|
4
|
+
|
5
|
+
# PanelHeader
|
6
|
+
|
7
|
+
The PanelHeader component allows for easy creation of header items within a panel. It comes with pre-defined styles that match Ping specs. You can utilize the `data` prop to pass in text, subtext, and an mdi or svg icon.
|
8
|
+
|
9
|
+
### Recommended Use
|
10
|
+
This component is intended to be used as a header within a panel.
|
11
|
+
|
12
|
+
#### Children
|
13
|
+
To add action controls, include control elements as `{children}`. All elements passed in this way will be right-justified and center-aligned. You can use the following pre-styled control components to easily match Ping specs:
|
14
|
+
- [PanelHeaderEditButton](./?path=/story/experimental-panelheader-controls-panelheadereditbutton--default)
|
15
|
+
- [PanelHeaderMenu](./?path=/story/experimental-panelheader-controls-panelheadermenu--default)
|
16
|
+
- [PanelHeaderSwitchField](./?path=/story/experimental-panelheader-controls-panelheaderswitchfield--default)
|
17
|
+
|
18
|
+
### Note:
|
19
|
+
Components styled to match design specs may be updated over time as design specs change. Be aware that styles within this component may undergo minor adjustments over time to stay in sync with the latest design specifications.
|
@@ -0,0 +1,59 @@
|
|
1
|
+
import _objectDestructuringEmpty from "@babel/runtime-corejs3/helpers/esm/objectDestructuringEmpty";
|
2
|
+
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
3
|
+
import React from 'react';
|
4
|
+
import AccountIcon from '@pingux/mdi-react/AccountIcon';
|
5
|
+
import DocsLayout from '../../../.storybook/storybookDocsLayout';
|
6
|
+
import { Item, PanelHeader, PanelHeaderCloseButton, PanelHeaderMenu, PanelHeaderSwitchField } from '../../index';
|
7
|
+
import { SharedItemArgTypes } from '../ListViewItem/listViewItemAttributes';
|
8
|
+
import PanelHeaderReadMe from './PanelHeader.mdx';
|
9
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
10
|
+
export default {
|
11
|
+
title: 'Experimental/PanelHeader',
|
12
|
+
component: PanelHeader,
|
13
|
+
parameters: {
|
14
|
+
docs: {
|
15
|
+
page: function page() {
|
16
|
+
return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(PanelHeaderReadMe, null), ___EmotionJSX(DocsLayout, null));
|
17
|
+
},
|
18
|
+
source: {
|
19
|
+
type: 'code'
|
20
|
+
}
|
21
|
+
}
|
22
|
+
},
|
23
|
+
argTypes: SharedItemArgTypes
|
24
|
+
};
|
25
|
+
export var Default = function Default(_ref) {
|
26
|
+
var args = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
|
27
|
+
return ___EmotionJSX(PanelHeader, _extends({}, args, {
|
28
|
+
data: {
|
29
|
+
icon: AccountIcon,
|
30
|
+
text: 'Fons Vernall'
|
31
|
+
}
|
32
|
+
}));
|
33
|
+
};
|
34
|
+
export var WithSubtext = function WithSubtext(_ref2) {
|
35
|
+
var args = _extends({}, (_objectDestructuringEmpty(_ref2), _ref2));
|
36
|
+
return ___EmotionJSX(PanelHeader, _extends({}, args, {
|
37
|
+
data: {
|
38
|
+
icon: AccountIcon,
|
39
|
+
subtext: 'rad_developer@pingidentity.com',
|
40
|
+
text: 'Fons Vernall'
|
41
|
+
}
|
42
|
+
}));
|
43
|
+
};
|
44
|
+
export var WithControls = function WithControls(_ref3) {
|
45
|
+
var args = _extends({}, (_objectDestructuringEmpty(_ref3), _ref3));
|
46
|
+
return ___EmotionJSX(PanelHeader, _extends({}, args, {
|
47
|
+
data: {
|
48
|
+
icon: AccountIcon,
|
49
|
+
text: 'Fons Vernall',
|
50
|
+
subtext: 'rad_developer@pingidentity.com'
|
51
|
+
}
|
52
|
+
}), ___EmotionJSX(PanelHeaderSwitchField, null), ___EmotionJSX(PanelHeaderMenu, null, ___EmotionJSX(Item, {
|
53
|
+
key: "enable"
|
54
|
+
}, "Enable user"), ___EmotionJSX(Item, {
|
55
|
+
key: "disable"
|
56
|
+
}, "Disable user"), ___EmotionJSX(Item, {
|
57
|
+
key: "delete"
|
58
|
+
}, "Delete user")), ___EmotionJSX(PanelHeaderCloseButton, null));
|
59
|
+
};
|
@@ -0,0 +1,30 @@
|
|
1
|
+
var container = {
|
2
|
+
bg: 'accent.99',
|
3
|
+
justifyContent: 'center',
|
4
|
+
minHeight: 60,
|
5
|
+
borderBottom: '1px',
|
6
|
+
borderBottomStyle: 'solid',
|
7
|
+
borderBottomColor: 'accent.90'
|
8
|
+
};
|
9
|
+
var controls = {
|
10
|
+
alignSelf: 'center',
|
11
|
+
alignItems: 'center',
|
12
|
+
gap: 'sm',
|
13
|
+
ml: 'auto'
|
14
|
+
};
|
15
|
+
var data = {
|
16
|
+
alignItems: 'center',
|
17
|
+
display: 'grid !important',
|
18
|
+
gridTemplateColumns: 'max-content auto'
|
19
|
+
};
|
20
|
+
var wrapper = {
|
21
|
+
display: 'grid !important',
|
22
|
+
gridTemplateColumns: 'auto auto',
|
23
|
+
mx: 'md'
|
24
|
+
};
|
25
|
+
export default {
|
26
|
+
container: container,
|
27
|
+
controls: controls,
|
28
|
+
data: data,
|
29
|
+
wrapper: wrapper
|
30
|
+
};
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
2
|
+
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
3
|
+
import React from 'react';
|
4
|
+
import AccountIcon from '@pingux/mdi-react/AccountIcon';
|
5
|
+
import { PanelHeader, PanelHeaderSwitchField } from '../../index';
|
6
|
+
import axeTest from '../../utils/testUtils/testAxe';
|
7
|
+
import { render, screen } from '../../utils/testUtils/testWrapper';
|
8
|
+
import { PANEL_HEADER_ICON } from './PanelHeader';
|
9
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
10
|
+
var defaultProps = {
|
11
|
+
data: {
|
12
|
+
text: 'testText',
|
13
|
+
subtext: 'testSubtext',
|
14
|
+
icon: AccountIcon
|
15
|
+
}
|
16
|
+
};
|
17
|
+
var getComponent = function getComponent() {
|
18
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
19
|
+
return render(___EmotionJSX(PanelHeader, _extends({}, defaultProps, props)));
|
20
|
+
};
|
21
|
+
|
22
|
+
// Need to be added to each test file to test accessibility using axe.
|
23
|
+
axeTest(getComponent);
|
24
|
+
describe('PanelHeader', function () {
|
25
|
+
test('renders data', function () {
|
26
|
+
var _context;
|
27
|
+
getComponent();
|
28
|
+
var _defaultProps$data = defaultProps.data,
|
29
|
+
text = _defaultProps$data.text,
|
30
|
+
subtext = _defaultProps$data.subtext;
|
31
|
+
screen.getByText(text);
|
32
|
+
screen.getByText(subtext);
|
33
|
+
screen.getByRole('img', {
|
34
|
+
name: _concatInstanceProperty(_context = "".concat(text)).call(_context, PANEL_HEADER_ICON)
|
35
|
+
});
|
36
|
+
});
|
37
|
+
test('renders children', function () {
|
38
|
+
getComponent({
|
39
|
+
children: ___EmotionJSX(PanelHeaderSwitchField, null)
|
40
|
+
});
|
41
|
+
screen.getByRole('switch');
|
42
|
+
});
|
43
|
+
});
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
2
|
+
import React from 'react';
|
3
|
+
import CloseIcon from '@pingux/mdi-react/CloseIcon';
|
4
|
+
import { iconButtonPropTypes } from '../../../components/IconButton/iconButtonAttributes';
|
5
|
+
import { Box, Icon, IconButton } from '../../../index';
|
6
|
+
|
7
|
+
/**
|
8
|
+
* PanelHeaderCloseButton is one of several styled control components that can be used as a child
|
9
|
+
* nested inside of the [PanelHeader](./?path=/story/experimental-panelheader--default).
|
10
|
+
* Its a wrapper component around the [IconButton](./?path=/story/components-iconbutton--default),
|
11
|
+
* intended to make matching specs easy. Most props available to the IconButton are also available
|
12
|
+
* to PanelHeaderCloseButton.
|
13
|
+
*/
|
14
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
15
|
+
var PanelHeaderCloseButton = function PanelHeaderCloseButton(props) {
|
16
|
+
return ___EmotionJSX(Box, null, ___EmotionJSX(IconButton, _extends({
|
17
|
+
"aria-label": "close-icon"
|
18
|
+
}, props), ___EmotionJSX(Icon, {
|
19
|
+
icon: CloseIcon,
|
20
|
+
size: "md"
|
21
|
+
})));
|
22
|
+
};
|
23
|
+
PanelHeaderCloseButton.propTypes = iconButtonPropTypes;
|
24
|
+
PanelHeaderCloseButton.displayName = 'PanelHeaderCloseButton';
|
25
|
+
export default PanelHeaderCloseButton;
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { iconButtonArgTypes } from '../../../components/IconButton/iconButtonAttributes';
|
3
|
+
import { PanelHeaderCloseButton } from '../../../index';
|
4
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
5
|
+
delete iconButtonArgTypes.size;
|
6
|
+
delete iconButtonArgTypes.icon;
|
7
|
+
export default {
|
8
|
+
title: 'Experimental/PanelHeader/Controls/PanelHeaderCloseButton',
|
9
|
+
component: PanelHeaderCloseButton,
|
10
|
+
parameters: {
|
11
|
+
docs: {
|
12
|
+
source: {
|
13
|
+
type: 'code'
|
14
|
+
}
|
15
|
+
}
|
16
|
+
},
|
17
|
+
argTypes: iconButtonArgTypes
|
18
|
+
};
|
19
|
+
export var Default = function Default(args) {
|
20
|
+
return ___EmotionJSX(PanelHeaderCloseButton, args);
|
21
|
+
};
|