@pingux/astro 2.9.1 → 2.13.0-alpha.10
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/AccordionGridGroup/AccordionGridGroup.test.js +2 -2
- package/lib/cjs/components/AccordionGroup/Accordion.styles.js +1 -2
- package/lib/cjs/components/AccordionGroup/AccordionGroup.js +4 -5
- 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/Calendar/Calendar.test.js +2 -2
- package/lib/cjs/components/Calendar/CalendarCell.js +2 -3
- package/lib/cjs/components/Calendar/CalendarGrid.js +1 -3
- package/lib/cjs/components/Callout/Callout.mdx +28 -0
- package/lib/cjs/components/Card/Card.mdx +32 -0
- package/lib/cjs/components/Checkbox/Checkbox.js +1 -2
- package/lib/cjs/components/Checkbox/CheckboxBase.js +1 -2
- package/lib/cjs/components/CheckboxField/CheckboxField.mdx +42 -0
- package/lib/cjs/components/CodeView/CodeView.mdx +23 -0
- package/lib/cjs/components/CodeView/CodeView.test.js +1 -1
- package/lib/cjs/components/CollapsiblePanel/CollapsiblePanel.mdx +29 -0
- package/lib/cjs/components/CollapsiblePanelContainer/CollapsiblePanelBadge.js +0 -1
- package/lib/cjs/components/CollapsiblePanelContainer/CollapsiblePanelContainer.js +2 -3
- package/lib/cjs/components/ColorField/ColorField.mdx +38 -0
- package/lib/cjs/components/ComboBoxField/ComboBoxField.mdx +66 -0
- package/lib/cjs/components/ComboBoxField/ComboBoxField.stories.js +1 -1
- package/lib/cjs/components/ComboBoxField/ComboBoxField.test.js +2 -2
- package/lib/cjs/components/CopyText/CopyText.mdx +23 -0
- package/lib/cjs/components/CopyText/CopyText.test.js +1 -1
- package/lib/cjs/components/DataTable/DataTable.mdx +54 -0
- package/lib/cjs/components/DataTable/DataTable.stories.js +1 -1
- package/lib/cjs/components/DataTable/DataTable.test.js +2 -2
- package/lib/cjs/components/DataTable/DataTableVirtualizer.js +2 -3
- package/lib/cjs/components/DatePicker/DateField.js +4 -5
- package/lib/cjs/components/DatePicker/DatePicker.js +4 -6
- package/lib/cjs/components/DatePicker/DatePicker.mdx +49 -0
- package/lib/cjs/components/DatePicker/DatePicker.test.js +2 -2
- package/lib/cjs/components/DatePicker/DateSegment.js +1 -2
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +3 -3
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.mdx +36 -0
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.stories.js +29 -45
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.test.js +1 -1
- package/lib/cjs/components/FieldHelperText/FieldHelperText.js +4 -4
- package/lib/cjs/components/FileInputField/FileInputField.mdx +33 -0
- package/lib/cjs/components/HelpHint/HelpHint.js +145 -27
- package/lib/cjs/components/HelpHint/HelpHint.mdx +32 -0
- package/lib/cjs/components/HelpHint/HelpHint.stories.js +40 -7
- package/lib/cjs/components/HelpHint/HelpHint.styles.js +9 -1
- package/lib/cjs/components/HelpHint/HelpHint.test.js +213 -30
- 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/ImageUploadField/ImageUploadField.stories.js +1 -1
- package/lib/cjs/components/ImageUploadField/ImageUploadField.test.js +2 -2
- package/lib/cjs/components/Input/Input.js +2 -3
- package/lib/cjs/components/Label/Label.styles.js +1 -1
- package/lib/cjs/components/Link/Link.mdx +27 -0
- package/lib/cjs/components/Link/Link.styles.js +10 -0
- package/lib/cjs/components/LinkSelectField/LinkSelectField.mdx +47 -0
- package/lib/cjs/components/LinkSelectField/LinkSelectField.stories.js +1 -1
- package/lib/cjs/components/LinkSelectField/LinkSelectField.test.js +2 -2
- package/lib/cjs/components/ListBox/ListBox.test.js +2 -2
- 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 +95 -49
- package/lib/cjs/components/ListView/ListView.test.js +2 -2
- 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/MenuItem/MenuItem.js +2 -3
- package/lib/cjs/components/Messages/Messages.mdx +35 -0
- package/lib/cjs/components/Modal/Modal.mdx +59 -0
- package/lib/cjs/components/Modal/tests/Modal.integration.test.js +1 -2
- package/lib/cjs/components/MultivaluesField/MultivaluesField.js +43 -9
- package/lib/cjs/components/MultivaluesField/MultivaluesField.mdx +44 -0
- package/lib/cjs/components/MultivaluesField/MultivaluesField.test.js +3 -3
- package/lib/cjs/components/NavBar/NavBar.mdx +42 -0
- package/lib/cjs/components/NavBarSection/NavBarSection.js +2 -3
- 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/PasswordField/PasswordField.test.js +2 -3
- package/lib/cjs/components/PopoverContainer/PopoverContainer.d.ts +9 -0
- package/lib/cjs/components/PopoverContainer/PopoverContainer.js +10 -42
- package/lib/cjs/components/PopoverContainer/index.d.ts +2 -0
- package/lib/cjs/components/PopoverMenu/PopoverMenu.mdx +53 -0
- package/lib/cjs/components/Radio/Radio.js +1 -2
- package/lib/cjs/components/RadioGroupField/RadioGroupField.mdx +41 -0
- package/lib/cjs/components/RadioGroupField/RadioGroupField.test.js +2 -2
- 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/Select.styles.js +1 -1
- package/lib/cjs/components/SelectField/SelectField.mdx +46 -0
- package/lib/cjs/components/SelectField/SelectField.stories.js +1 -1
- package/lib/cjs/components/SelectFieldBase/SelectFieldBase.js +4 -4
- package/lib/cjs/components/SelectFieldBase/SelectFieldBase.test.js +2 -2
- package/lib/cjs/components/Separator/Separator.mdx +19 -0
- package/lib/cjs/components/Stepper/Stepper.mdx +41 -0
- package/lib/cjs/components/Stepper/Stepper.styles.js +1 -1
- package/lib/cjs/components/Stepper/Stepper.test.js +2 -3
- package/lib/cjs/components/Switch/Switch.js +1 -2
- package/lib/cjs/components/SwitchField/SwitchField.js +1 -0
- package/lib/cjs/components/SwitchField/SwitchField.mdx +36 -0
- package/lib/cjs/components/Tab/Tab.js +2 -3
- package/lib/cjs/components/TabPicker/TabPicker.js +1 -1
- package/lib/cjs/components/Table/Table.mdx +30 -0
- package/lib/cjs/components/TableBody/TableBody.js +0 -1
- package/lib/cjs/components/TableCaption/TableCaption.js +0 -1
- package/lib/cjs/components/TableCell/TableCell.d.ts +12 -0
- package/lib/cjs/components/TableCell/TableCell.js +0 -6
- 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/TableHead/TableHead.js +0 -1
- package/lib/cjs/components/TableRow/TableRow.js +0 -1
- package/lib/cjs/components/Tabs/Tabs.mdx +40 -0
- package/lib/cjs/components/Tabs/Tabs.test.js +3 -4
- 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/TextArea/TextArea.js +1 -3
- package/lib/cjs/components/TextAreaField/TextAreaField.mdx +34 -0
- package/lib/cjs/components/TextField/TextField.js +1 -1
- package/lib/cjs/components/TextField/TextField.mdx +34 -0
- package/lib/cjs/components/TimeZonePicker/TimeZonePicker.mdx +18 -0
- package/lib/cjs/components/TooltipTrigger/Tooltip.styles.js +2 -1
- package/lib/cjs/components/TooltipTrigger/TooltipTrigger.js +2 -0
- package/lib/cjs/components/TooltipTrigger/TooltipTrigger.mdx +23 -0
- package/lib/cjs/components/TooltipTrigger/TooltipTrigger.test.js +47 -1
- 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 +2 -7
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemEditButton.stories.js +4 -1
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemMenu.js +0 -1
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemMenu.test.js +2 -2
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemSwitchField.js +2 -3
- 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 +32 -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 +25 -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 +25 -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/useComponentToggle/useComponentToggle.test.js +2 -2
- package/lib/cjs/hooks/useCopyToClipboard/useCopyToClipboard.js +2 -2
- package/lib/cjs/hooks/useCopyToClipboard/useCopyToClipboard.test.js +1 -1
- package/lib/cjs/hooks/useOverlappingMenuHoverState/useOverlappingMenuHoverState.test.js +2 -2
- 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/ApplicationSearchDropdown.stories.hidden.js +1 -1
- package/lib/cjs/recipes/{AttributesAndPingOneMapping.stories.js → AttributeMapping.stories.js} +392 -132
- package/lib/cjs/recipes/Slider.stories.js +1 -1
- package/lib/cjs/styles/colors.js +1 -1
- package/lib/cjs/styles/forms/index.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/cjs/utils/designUtils/figmaLinks.js +2 -1
- package/lib/cjs/utils/devUtils/constants/variants.js +1 -2
- package/lib/cjs/utils/testUtils/testAxe.js +2 -2
- package/lib/cjs/utils/testUtils/testWrapper.js +2 -0
- package/lib/components/AccordionGridGroup/AccordionGridGroup.mdx +40 -0
- package/lib/components/AccordionGridGroup/AccordionGridGroup.test.js +2 -2
- 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/Calendar/Calendar.test.js +2 -2
- 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/CodeView/CodeView.test.js +1 -1
- 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/ComboBoxField/ComboBoxField.stories.js +1 -1
- package/lib/components/ComboBoxField/ComboBoxField.test.js +2 -2
- package/lib/components/CopyText/CopyText.mdx +23 -0
- package/lib/components/CopyText/CopyText.test.js +1 -1
- package/lib/components/DataTable/DataTable.mdx +54 -0
- package/lib/components/DataTable/DataTable.stories.js +1 -1
- package/lib/components/DataTable/DataTable.test.js +1 -1
- package/lib/components/DatePicker/DatePicker.mdx +49 -0
- package/lib/components/DatePicker/DatePicker.test.js +2 -2
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +3 -3
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.mdx +36 -0
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.stories.js +29 -45
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.test.js +1 -1
- package/lib/components/FileInputField/FileInputField.mdx +33 -0
- package/lib/components/HelpHint/HelpHint.js +148 -30
- package/lib/components/HelpHint/HelpHint.mdx +32 -0
- package/lib/components/HelpHint/HelpHint.stories.js +37 -6
- package/lib/components/HelpHint/HelpHint.styles.js +9 -1
- package/lib/components/HelpHint/HelpHint.test.js +213 -30
- 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/ImageUploadField/ImageUploadField.stories.js +1 -1
- package/lib/components/ImageUploadField/ImageUploadField.test.js +2 -2
- package/lib/components/Link/Link.mdx +27 -0
- package/lib/components/Link/Link.styles.js +10 -0
- package/lib/components/LinkSelectField/LinkSelectField.mdx +47 -0
- package/lib/components/LinkSelectField/LinkSelectField.stories.js +1 -1
- package/lib/components/LinkSelectField/LinkSelectField.test.js +2 -2
- package/lib/components/ListBox/ListBox.test.js +2 -2
- package/lib/components/ListItem/ListItem.mdx +21 -0
- package/lib/components/ListView/ListView.mdx +44 -0
- package/lib/components/ListView/ListView.stories.js +96 -50
- package/lib/components/ListView/ListView.test.js +2 -2
- 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.js +43 -9
- package/lib/components/MultivaluesField/MultivaluesField.mdx +44 -0
- package/lib/components/MultivaluesField/MultivaluesField.test.js +3 -3
- 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/PasswordField/PasswordField.test.js +2 -2
- 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/RadioGroupField/RadioGroupField.test.js +2 -2
- 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/SelectField/SelectField.stories.js +1 -1
- package/lib/components/SelectFieldBase/SelectFieldBase.test.js +2 -2
- package/lib/components/Separator/Separator.mdx +19 -0
- package/lib/components/Stepper/Stepper.mdx +41 -0
- package/lib/components/Stepper/Stepper.test.js +2 -2
- 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/Tabs/Tabs.test.js +2 -2
- 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.js +1 -1
- package/lib/components/TextField/TextField.mdx +34 -0
- package/lib/components/TimeZonePicker/TimeZonePicker.mdx +18 -0
- package/lib/components/TooltipTrigger/Tooltip.styles.js +1 -1
- package/lib/components/TooltipTrigger/TooltipTrigger.js +2 -0
- package/lib/components/TooltipTrigger/TooltipTrigger.mdx +23 -0
- package/lib/components/TooltipTrigger/TooltipTrigger.test.js +48 -2
- 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/ListViewItemMenu.test.js +2 -2
- 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/useComponentToggle/useComponentToggle.test.js +2 -2
- package/lib/hooks/useCopyToClipboard/useCopyToClipboard.js +2 -2
- package/lib/hooks/useCopyToClipboard/useCopyToClipboard.test.js +1 -1
- package/lib/hooks/useOverlappingMenuHoverState/useOverlappingMenuHoverState.test.js +2 -2
- 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/lib/utils/designUtils/figmaLinks.js +2 -1
- package/lib/utils/testUtils/testAxe.js +2 -2
- package/package.json +24 -10
- 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
@@ -0,0 +1,20 @@
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
2
|
+
import { JSONTree } from 'react-json-tree';
|
3
|
+
import ThemeView from './ThemeView';
|
4
|
+
|
5
|
+
<Meta title="Docs/Theme/Astro Theme" />
|
6
|
+
|
7
|
+
# Theme Overview
|
8
|
+
Astro utilizes [Theme UI](https://theme-ui.com/) to apply styles consistently using their
|
9
|
+
[theme specification](https://theme-ui.com/theme-spec). This allows us to specify reusable colors,
|
10
|
+
font sizes, component variants, and so much more. This document will focus on how we structure
|
11
|
+
our theme object to align with the Theme UI paradigm and is meant to serve as a reference for any
|
12
|
+
developers wishing to add or edit the theme.
|
13
|
+
|
14
|
+
# Theme Values
|
15
|
+
|
16
|
+
This is the raw theme object that is passed in the Astro wrapper. Its values can be referenced in `styled-system` properties. See [https://styled-system.com/table](https://styled-system.com/table) for details.
|
17
|
+
|
18
|
+
For example, to set a background color on a `Box` component, you can reference one of the keys under the `colors` section. Like: `bg="black"`, `bg="accent.20"`, `bg="decorative.4"`, or `bg="critical.bright"`.
|
19
|
+
|
20
|
+
<ThemeView />
|
@@ -0,0 +1,70 @@
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
2
|
+
|
3
|
+
<Meta title="Docs/Theme/Custom Themes" />
|
4
|
+
|
5
|
+
# Custom Themes
|
6
|
+
<br/>
|
7
|
+
|
8
|
+
## Creating Theme Overrides
|
9
|
+
|
10
|
+
The Astro component library ships with [a default theme](./?path=/docs/docs-theme-astro-theme--page) based on Ping's
|
11
|
+
Astro design system. To extend, modify, or replace the theme to change the visual look
|
12
|
+
of components then there are two options:
|
13
|
+
|
14
|
+
1. `themeOverrides` - this prop on the `AstroWrapper` component facilitates extending and modifying the base theme.
|
15
|
+
See AstroWrapper custom theme story for more information.
|
16
|
+
The `themeOverrides` prop uses [the merge function from ThemeUI](https://theme-ui.com/guides/merging-themes/).
|
17
|
+
With this approach, only variants that you specifically target within your new theme will be changed,
|
18
|
+
but those not targeted will still inherit styles from the default theme. If you are attempting to keep the majority of styling from the
|
19
|
+
Astro Design System (and therefore base astroTheme), but wish to override a few global styles, this is the favored approach.
|
20
|
+
|
21
|
+
2. `defaultTheme` - this is another prop on the `AstroWrapper` component,
|
22
|
+
but this _replaces_ the base theme with the object passed in. We discourage using this in most situations.
|
23
|
+
|
24
|
+
|
25
|
+
To assist in customizing the theme, Astro includes the following objects:
|
26
|
+
- astroTheme - The base Astro theme, includes all styles from the Astro design system: `@pingux/astro/lib/styles/theme`
|
27
|
+
- endUserTheme - An alternative theme which matches Ping's End User library styling: `@pingux/astro/lib/styles/themes/end-user`
|
28
|
+
- overrideUILib - An override object to address conflicting styles between Astro and Ping's UI Library CSS: `@pingux/astro/lib/styles/themeOverrides/uiLibraryOverride`
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
## How to Customize Astro Styles
|
34
|
+
|
35
|
+
Components typically use a custom variant to apply styles. See the [Astro Theme](./?path=/docs/docs-theme-astro-theme--page) documentation for more information on this. To override these styles,
|
36
|
+
the variant included within the component will need to be targeted. For example, to override the border color on all primary buttons,
|
37
|
+
search within the /theme file for the button structure. Within this file, `buttons` is not nested within another object so,
|
38
|
+
the theme structure is straight forward and would look like:
|
39
|
+
|
40
|
+
```
|
41
|
+
const myThemeOverride = {
|
42
|
+
buttons: {
|
43
|
+
primary: {
|
44
|
+
borderColor: 'red',
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
```
|
49
|
+
|
50
|
+
Some components and their variants are nested, for example components within /Forms. To change the hovered border color on a TextArea component, the following would be added to myThemeOverride.
|
51
|
+
|
52
|
+
|
53
|
+
```
|
54
|
+
const myThemeOverride = {
|
55
|
+
forms: {
|
56
|
+
textarea: {
|
57
|
+
'&:hover': {
|
58
|
+
borderColor: 'red',
|
59
|
+
}
|
60
|
+
}
|
61
|
+
},
|
62
|
+
buttons: {
|
63
|
+
primary: {
|
64
|
+
borderColor: 'red',
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
```
|
69
|
+
|
70
|
+
These overrides can then be passed to the `themeOverrides` prop on the `AstroWrapper` as mentioned above.
|
@@ -0,0 +1,116 @@
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
2
|
+
|
3
|
+
<Meta title="Docs/Theme/Styling Guideline" />
|
4
|
+
|
5
|
+
# Styling Guidelines
|
6
|
+
|
7
|
+
<br />
|
8
|
+
|
9
|
+
## Sx prop
|
10
|
+
|
11
|
+
The majority of Astro components are built using `<Box>` from Theme UI as their foundation. Therefore, the `sx` prop can be passed directly to these components. More information about how the sx prop works can be found on the [ThemeUI site](https://theme-ui.com/sx-prop/).
|
12
|
+
There are a few different approaches developers can take for adding custom styles utilizing the SX prop which are listed below. Each approach comes with different benefits and caveats.
|
13
|
+
|
14
|
+
It is always best practice to check if a styling variant exists before adding custom styling. It is rare that a style included within the Astro Design System does not have a matching style variant in the Astro Component Library.
|
15
|
+
If you often find yourself reusing the same custom styles often,
|
16
|
+
reach out to the UX Dev team (via slack channel : #ui-astro) to discuss having the styles added as a reusable component variant.
|
17
|
+
<br />
|
18
|
+
|
19
|
+
### Passing inline styles to the Sx prop
|
20
|
+
|
21
|
+
**Example:**
|
22
|
+
|
23
|
+
`<Box sx={{marginRight: ‘sm’}} />`
|
24
|
+
|
25
|
+
**This approach works best for**
|
26
|
+
|
27
|
+
- Small style adjustments
|
28
|
+
- Adding or overwriting less than 3 additional styles to a component
|
29
|
+
- Overwriting specific styles that have been passed in through a custom theme
|
30
|
+
|
31
|
+
**Considerations**
|
32
|
+
|
33
|
+
- Styles passed through the sx prop are not maintained by the library, so if a theme change occurs, these inline styles with not be adjusted accordingly.
|
34
|
+
- Styles passed through the sx prop are not reusable unless saved as an object.
|
35
|
+
|
36
|
+
<br />
|
37
|
+
|
38
|
+
### Passing a style object to the sx prop
|
39
|
+
|
40
|
+
**Example:**
|
41
|
+
```
|
42
|
+
const ExampleStoryComponent = () => {
|
43
|
+
const sx = {
|
44
|
+
boxOne: {
|
45
|
+
bg: 'blue',
|
46
|
+
height: '35px',
|
47
|
+
fontSize: 3,
|
48
|
+
p: 'md',
|
49
|
+
},
|
50
|
+
boxTwo: {
|
51
|
+
bg: 'red',
|
52
|
+
height: '10px',
|
53
|
+
fontSize: 2,
|
54
|
+
s: 'sm',
|
55
|
+
},
|
56
|
+
};
|
57
|
+
|
58
|
+
return (
|
59
|
+
<>
|
60
|
+
<BoxOne sx={sx.boxOne} />
|
61
|
+
<BoxTwo sx={sx.boxTwo} />
|
62
|
+
</>
|
63
|
+
);
|
64
|
+
};
|
65
|
+
```
|
66
|
+
|
67
|
+
**This approach works best for**
|
68
|
+
|
69
|
+
- Applying the same styles to multiple components
|
70
|
+
- Adding 3 or greater additional styles
|
71
|
+
- Cleaner code presentation; separating style from logic
|
72
|
+
- Overwriting multiple styles that have been passed in through a custom theme
|
73
|
+
- Added maintainability
|
74
|
+
|
75
|
+
**Considerations**
|
76
|
+
|
77
|
+
- Style objects passed through the sx prop are not maintained by the library, so if a theme change occurs, these inline styles with not be adjusted accordingly.
|
78
|
+
|
79
|
+
<br/>
|
80
|
+
|
81
|
+
### Dos & Don’ts for SX Prop
|
82
|
+
|
83
|
+
Astro components have been built using [Theme UI](https://theme-ui.com/guides/variants) which enables the use of variants.
|
84
|
+
Using pre-existing variants to match design mocks is considered the best pratice as these styles are maintained by the library and match the Astro Design System.
|
85
|
+
|
86
|
+
If a component has variants, they can be found in that individual component's documentation table within Storybook. You can also find the full list of Astro theme variants and pre-defined design tokens here:
|
87
|
+
|
88
|
+
- [Astro Base Theme](./?path=/docs/docs-theme-astro-theme--page)
|
89
|
+
- [Container Sizes](./?path=/story/docs-design-container-sizes--container-sizes)
|
90
|
+
- [Spacing Sizes](./?path=/story/docs-design-spacing--spacing)
|
91
|
+
- [Typography](./?path=/story/docs-design-typography--typography-tokens)
|
92
|
+
- [Colors](./?path=/story/docs-design-color-schema--colors)
|
93
|
+
|
94
|
+
If the pre-existing variants don’t meet your needs, and you wish to apply styling using [Theme UI](https://theme-ui.com/sx-prop)'s Sx prop, the following are best practices for applying CSS rules to children components and elements.
|
95
|
+
|
96
|
+
- When possible pass styles directly to a components sx prop either inline or via an object as mentioned in the above sections. In composed components, [controlProps or containerProps](./?path=/story/docs-props--page) may help you more
|
97
|
+
accurately target elements.
|
98
|
+
- If you can’t style a component directly through the sx prop, try to use [CSS selectors to style select elements](https://www.w3schools.com/cssref/css_selectors.php). Please avoid targeting aria attributes or other attributes that are likely to change or be translated.
|
99
|
+
- If you can’t target an element for styling with the above suggestions, do not hesitate to reach out to the UX development team and they will assess the best approach, be it adding a theme variant or adding a dedicated prop.
|
100
|
+
|
101
|
+
<br />
|
102
|
+
|
103
|
+
## Custom Themes
|
104
|
+
|
105
|
+
**When to create a custom theme?**<br />
|
106
|
+
Custom themes are ideal for adding styles to components consistently throughout your app. You can learn more about creating a custom theme and pre-existing themes available to you [here](./?path=/docs/docs-theme-custom-themes--page).
|
107
|
+
|
108
|
+
**This approach works best for**
|
109
|
+
- Applying styling changes to components consistently throughout an application
|
110
|
+
|
111
|
+
**Considerations**
|
112
|
+
- Unless you’re using a custom theme exported by the Astro library, your custom themes will not be maintained by the library.
|
113
|
+
- If you create a theme or theme adjustments that you believe could be beneficial to others, please let the UX Dev team know. Several developers have contributed to the UiLibraryOverride and EndUser themes.
|
114
|
+
This helps us keep styling consistent across products.
|
115
|
+
- Keep in mind, similar to inline hierarchical CSS, if styles are passed in through the SX prop,
|
116
|
+
they will overwrite your custom theme styling.
|
@@ -0,0 +1,64 @@
|
|
1
|
+
import { Meta, Title, ArgsTable, Canvas, Story } from '@storybook/addon-docs';
|
2
|
+
import LinkTo from '@storybook/addon-links/react';
|
3
|
+
|
4
|
+
<Meta title="Docs/Utils/MessagesReducer" />
|
5
|
+
|
6
|
+
# Messages Reducer
|
7
|
+
|
8
|
+
<br />
|
9
|
+
|
10
|
+
## Usage
|
11
|
+
|
12
|
+
To use Messages Reducer, import it from `@pingux/astro`.
|
13
|
+
|
14
|
+
`import { messagesReducer, multiMessagesReducer } from '@pingux/astro';`
|
15
|
+
|
16
|
+
<br />
|
17
|
+
|
18
|
+
## Overview
|
19
|
+
|
20
|
+
`messagesReducer` provides a reducer to store a list of messages.
|
21
|
+
|
22
|
+
`messagesReducer.actions` provides actions that can be dispatched to the reducer. By default the next actions are available:
|
23
|
+
|
24
|
+
* **addMessage**
|
25
|
+
|
26
|
+
Create an action to add a message
|
27
|
+
|
28
|
+
`addMessage(message: {key: string, text: string, status: string})`
|
29
|
+
|
30
|
+
* **removeMessage**
|
31
|
+
|
32
|
+
Create an action to remove a message by key
|
33
|
+
|
34
|
+
`removeMessage(key: string)`
|
35
|
+
|
36
|
+
* **showMessage**
|
37
|
+
|
38
|
+
Create an action to add a message and then remove it if there's a timeout
|
39
|
+
|
40
|
+
`showMessage(message: {key: string, text: string, status: string}, timeout: number)`
|
41
|
+
|
42
|
+
* **clearMessages**
|
43
|
+
|
44
|
+
Create an action to clear all messages
|
45
|
+
|
46
|
+
`clearMessages()`
|
47
|
+
|
48
|
+
<br />
|
49
|
+
|
50
|
+
## Example
|
51
|
+
|
52
|
+
See the [Messages with Reducer](./?path=/story/components-messages--use-reducer) for an example of implementation.
|
53
|
+
|
54
|
+
<br />
|
55
|
+
|
56
|
+
## Multiple messages reducer
|
57
|
+
|
58
|
+
`multiMessagesReducer` is used for storing messages in different containers.
|
59
|
+
|
60
|
+
`multiMessagesReducer.actions` utilizes the same actions as `messagesReducer`, only needs to provide container name, as a first argument, e.g.:
|
61
|
+
|
62
|
+
`addMessage(container: string, message: {key: string, text: string, status: string})`
|
63
|
+
|
64
|
+
See the [story](./?path=/story/components-messages--use-reducer-with-multiple-containers) for an example of implementation.
|
@@ -0,0 +1,63 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
4
|
+
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
5
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
6
|
+
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
7
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
8
|
+
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
|
9
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
10
|
+
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
|
11
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
12
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
13
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
14
|
+
_Object$defineProperty(exports, "__esModule", {
|
15
|
+
value: true
|
16
|
+
});
|
17
|
+
exports["default"] = exports.IconSize = void 0;
|
18
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
19
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
20
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
21
|
+
var _react = _interopRequireWildcard(require("react"));
|
22
|
+
var _PencilIcon = _interopRequireDefault(require("@pingux/mdi-react/PencilIcon"));
|
23
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
24
|
+
var _iconButtonAttributes = require("../../components/IconButton/iconButtonAttributes");
|
25
|
+
var _index = require("../../index");
|
26
|
+
var _react2 = require("@emotion/react");
|
27
|
+
var _excluded = ["size"];
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
29
|
+
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; }
|
30
|
+
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; }
|
31
|
+
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) { (0, _defineProperty2["default"])(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; }
|
32
|
+
var IconSize = {
|
33
|
+
sm: 10,
|
34
|
+
md: 15,
|
35
|
+
lg: 20
|
36
|
+
};
|
37
|
+
exports.IconSize = IconSize;
|
38
|
+
var EditButton = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
39
|
+
var size = props.size,
|
40
|
+
other = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
41
|
+
return (0, _react2.jsx)(_index.Box, {
|
42
|
+
ref: ref
|
43
|
+
}, (0, _react2.jsx)(_index.IconButton, (0, _extends2["default"])({
|
44
|
+
"aria-label": "Edit",
|
45
|
+
variant: "inverted"
|
46
|
+
}, other), (0, _react2.jsx)(_index.Icon, {
|
47
|
+
icon: _PencilIcon["default"],
|
48
|
+
size: IconSize[size] || size,
|
49
|
+
title: {
|
50
|
+
name: 'Pencil Icon'
|
51
|
+
}
|
52
|
+
})));
|
53
|
+
});
|
54
|
+
EditButton.propTypes = _objectSpread(_objectSpread({}, _iconButtonAttributes.iconButtonPropTypes), {}, {
|
55
|
+
/** Determines the icon size */
|
56
|
+
size: _propTypes["default"].string
|
57
|
+
});
|
58
|
+
EditButton.defaultProps = {
|
59
|
+
size: 'md'
|
60
|
+
};
|
61
|
+
EditButton.displayName = 'EditButton';
|
62
|
+
var _default = EditButton;
|
63
|
+
exports["default"] = _default;
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
2
|
+
|
3
|
+
<Meta title="Experimental/EditButton/EditButton" />
|
4
|
+
|
5
|
+
# EditButton
|
6
|
+
|
7
|
+
EditButton component is an IconButton used specifically for editing content.
|
8
|
+
|
9
|
+
It accepts all IconButton props. Additionally, the `size` prop adjusts the icon SGV size and responds to t-shirt sizes.
|
@@ -0,0 +1,91 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
4
|
+
var _Object$keys2 = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
5
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
6
|
+
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
7
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
8
|
+
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
|
9
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
10
|
+
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
|
11
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
12
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
13
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
14
|
+
_Object$defineProperty(exports, "__esModule", {
|
15
|
+
value: true
|
16
|
+
});
|
17
|
+
exports["default"] = exports.WithSizeProp = exports.WithButtonProp = exports.Default = void 0;
|
18
|
+
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
19
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
20
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
21
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
22
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
23
|
+
var _react = _interopRequireWildcard(require("react"));
|
24
|
+
var _storybookAddonDesigns = require("storybook-addon-designs");
|
25
|
+
var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
|
26
|
+
var _iconButtonAttributes = require("../../components/IconButton/iconButtonAttributes");
|
27
|
+
var _index = require("../../index");
|
28
|
+
var _EditButton = require("./EditButton");
|
29
|
+
var _EditButton2 = _interopRequireDefault(require("./EditButton.mdx"));
|
30
|
+
var _react2 = require("@emotion/react");
|
31
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
32
|
+
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; }
|
33
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(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; }
|
34
|
+
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) { (0, _defineProperty2["default"])(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; }
|
35
|
+
var variant = _iconButtonAttributes.iconButtonArgTypes.variant,
|
36
|
+
other = (0, _objectWithoutProperties2["default"])(_iconButtonAttributes.iconButtonArgTypes, ["variant"]);
|
37
|
+
var _default = {
|
38
|
+
title: 'experimental/EditButton',
|
39
|
+
component: _index.EditButton,
|
40
|
+
decorators: [_storybookAddonDesigns.withDesign],
|
41
|
+
parameters: {
|
42
|
+
docs: {
|
43
|
+
page: function page() {
|
44
|
+
return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_EditButton2["default"], null), (0, _react2.jsx)(_storybookDocsLayout["default"], null));
|
45
|
+
},
|
46
|
+
source: {
|
47
|
+
type: 'code'
|
48
|
+
}
|
49
|
+
}
|
50
|
+
},
|
51
|
+
argTypes: _objectSpread(_objectSpread({}, other), {}, {
|
52
|
+
size: {
|
53
|
+
control: {
|
54
|
+
type: 'select',
|
55
|
+
options: (0, _keys["default"])(_EditButton.IconSize)
|
56
|
+
},
|
57
|
+
description: "The size of the icon container.\n T-shirt sizing is recommended and can be passed to the size prop as \"sm\" , \"md\" and \"lg\"\n rendering 10, 15, and 20 pixel svg containers."
|
58
|
+
}
|
59
|
+
})
|
60
|
+
};
|
61
|
+
exports["default"] = _default;
|
62
|
+
var Default = function Default(args) {
|
63
|
+
return (0, _react2.jsx)(_index.EditButton, (0, _extends2["default"])({}, args, {
|
64
|
+
"aria-label": "edit"
|
65
|
+
}));
|
66
|
+
};
|
67
|
+
exports.Default = Default;
|
68
|
+
var WithSizeProp = function WithSizeProp(args) {
|
69
|
+
return (0, _react2.jsx)(_index.EditButton, (0, _extends2["default"])({}, args, {
|
70
|
+
size: "lg",
|
71
|
+
"aria-label": "edit"
|
72
|
+
}));
|
73
|
+
};
|
74
|
+
exports.WithSizeProp = WithSizeProp;
|
75
|
+
var WithButtonProp = function WithButtonProp(args) {
|
76
|
+
var _useState = (0, _react.useState)('I am a Text'),
|
77
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
78
|
+
text = _useState2[0],
|
79
|
+
setText = _useState2[1];
|
80
|
+
return (0, _react2.jsx)(_index.Box, {
|
81
|
+
isRow: true,
|
82
|
+
alignItems: "center"
|
83
|
+
}, (0, _react2.jsx)(_index.Text, null, text), (0, _react2.jsx)(_index.EditButton, (0, _extends2["default"])({}, args, {
|
84
|
+
mx: "sm",
|
85
|
+
"aria-label": "edit",
|
86
|
+
onPress: function onPress() {
|
87
|
+
return setText('I am a changed Text');
|
88
|
+
}
|
89
|
+
})));
|
90
|
+
};
|
91
|
+
exports.WithButtonProp = WithButtonProp;
|
@@ -0,0 +1,71 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
4
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
6
|
+
var _index = require("../../index");
|
7
|
+
var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
|
8
|
+
var _testWrapper = require("../../utils/testUtils/testWrapper");
|
9
|
+
var _react2 = require("@emotion/react");
|
10
|
+
var testId = 'test-edit-button';
|
11
|
+
var defaultProps = {
|
12
|
+
'data-testid': testId,
|
13
|
+
'aria-label': 'Test edit button'
|
14
|
+
};
|
15
|
+
var getComponent = function getComponent() {
|
16
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
17
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_index.EditButton, (0, _extends2["default"])({}, defaultProps, props)));
|
18
|
+
};
|
19
|
+
(0, _testAxe["default"])(getComponent);
|
20
|
+
test('renders edit button', function () {
|
21
|
+
getComponent();
|
22
|
+
var button = _testWrapper.screen.getByRole('button');
|
23
|
+
expect(button).toHaveAttribute('data-testid', testId);
|
24
|
+
expect(button).toBeInstanceOf(HTMLButtonElement);
|
25
|
+
expect(button).toBeInTheDocument();
|
26
|
+
});
|
27
|
+
test('the component displays the small icon size', function () {
|
28
|
+
getComponent({
|
29
|
+
size: 'sm'
|
30
|
+
});
|
31
|
+
var svg = _testWrapper.screen.getByRole('img');
|
32
|
+
expect(svg).toHaveAttribute('width', '10');
|
33
|
+
expect(svg).toHaveAttribute('height', '10');
|
34
|
+
});
|
35
|
+
test('the component displays the medium icon size', function () {
|
36
|
+
getComponent({
|
37
|
+
size: 'md'
|
38
|
+
});
|
39
|
+
var svg = _testWrapper.screen.getByRole('img');
|
40
|
+
expect(svg).toHaveAttribute('width', '15');
|
41
|
+
expect(svg).toHaveAttribute('height', '15');
|
42
|
+
});
|
43
|
+
test('the component displays the large icon size', function () {
|
44
|
+
getComponent({
|
45
|
+
size: 'lg'
|
46
|
+
});
|
47
|
+
var svg = _testWrapper.screen.getByRole('img');
|
48
|
+
expect(svg).toHaveAttribute('width', '20');
|
49
|
+
expect(svg).toHaveAttribute('height', '20');
|
50
|
+
});
|
51
|
+
test('the component displays the correct icon size', function () {
|
52
|
+
getComponent({
|
53
|
+
size: '22px'
|
54
|
+
});
|
55
|
+
var svg = _testWrapper.screen.getByRole('img');
|
56
|
+
expect(svg).toHaveAttribute('width', '22px');
|
57
|
+
expect(svg).toHaveAttribute('height', '22px');
|
58
|
+
});
|
59
|
+
test('the component accepts IconButton Props', function () {
|
60
|
+
var onPress = jest.fn();
|
61
|
+
getComponent({
|
62
|
+
onPress: onPress
|
63
|
+
});
|
64
|
+
var button = _testWrapper.screen.getByRole('button');
|
65
|
+
|
66
|
+
// Hold down the button to test is-pressed class
|
67
|
+
_testWrapper.fireEvent.mouseDown(button);
|
68
|
+
expect(button).toHaveClass('is-pressed');
|
69
|
+
_testWrapper.fireEvent.mouseUp(button);
|
70
|
+
expect(onPress).toHaveBeenCalledTimes(1);
|
71
|
+
});
|
@@ -0,0 +1,14 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
_Object$defineProperty(exports, "default", {
|
9
|
+
enumerable: true,
|
10
|
+
get: function get() {
|
11
|
+
return _EditButton["default"];
|
12
|
+
}
|
13
|
+
});
|
14
|
+
var _EditButton = _interopRequireDefault(require("./EditButton"));
|
@@ -0,0 +1,47 @@
|
|
1
|
+
import { Meta } from '@storybook/addon-docs';
|
2
|
+
|
3
|
+
<Meta title="Components/ListView/ListView" />
|
4
|
+
|
5
|
+
# ListView
|
6
|
+
|
7
|
+
ListViews are used to display a list of items. Users can select, view, or edit items in this list.
|
8
|
+
This virtualized component supports asynchronous data in infinitely scrollable lists.
|
9
|
+
|
10
|
+
This component should:
|
11
|
+
- Be used to list items that contain a significant amount of information within them.
|
12
|
+
- Be able to access ListItem information.
|
13
|
+
|
14
|
+
It shouldn’t be used to list items that only have a single piece of information.
|
15
|
+
|
16
|
+
### Required Components
|
17
|
+
|
18
|
+
This component requires [ListViewItem](./?path=/story/experimental-listviewitem--default).
|
19
|
+
|
20
|
+
### Accessibility
|
21
|
+
|
22
|
+
This component should adhere to the [WAI-ARIA ListBox](https://www.w3.org/WAI/ARIA/apg/patterns/listbox/) accessibility guidelines.
|
23
|
+
|
24
|
+
#### Keyboard Navigation
|
25
|
+
|
26
|
+
These keys provide additional functionality to the component.
|
27
|
+
|
28
|
+
| Key | Functions |
|
29
|
+
| ---- | ---- |
|
30
|
+
| Space or Enter | Selects the item. |
|
31
|
+
| Tab | Focuses item and follows the page tab sequence. |
|
32
|
+
| Shift + Tab | Moves focus to the previous focusable component. |
|
33
|
+
| Arrow keys | Can be used to move the selection in the menu. |
|
34
|
+
| Home(Fn + Right Arrow Key) Or Control/Command + Home | Shifts the focus to the first row. |
|
35
|
+
| End(Fn + Left Arrow Key) Or Control/Command + End | Shifts the focus to the last visible row. |
|
36
|
+
|
37
|
+
#### Screen Readers
|
38
|
+
|
39
|
+
This component uses the following attributes to assist screen readers:
|
40
|
+
- The **`aria-label`** attribute is used to provide an accessible name.
|
41
|
+
- The **`aria-rowcount`** and **`aria-columncount`** attributes are used to indicate the total number of rows and columns in the grid structure.
|
42
|
+
- The **`aria-multiselectable`** attribute is used to indicate that users can toggle between items in the grid.
|
43
|
+
- Each ListViewItem uses the **`aria-rowindex`** attribute, which defines a component's position in the total number of rows.
|
44
|
+
- Each item also uses the aria-label, **`aria-colindex`** attributes to indicate the component’s column position and aria-selected to indicate the currently selected state.
|
45
|
+
|
46
|
+
#### NOTES:
|
47
|
+
- See the [ListAndPanel](./?path=/story/experimental-recipes-listandpanel--list-and-panel) and [ScrollableListView](./?path=/story/experimental-recipes-scrollablelistview--scrollable-list-view) recipes for more detailed examples.
|