@learningpool/ui 1.6.0 → 1.6.1
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/.eslintrc.js +40 -0
- package/.github/pull_request_template.md +23 -0
- package/.github/renovate.json +57 -0
- package/.github/workflows/integration.yml +53 -0
- package/.github/workflows/wss.yml +22 -0
- package/.jest-test-results.json +1 -0
- package/.releaserc +32 -0
- package/.storybook/learningpoolTheme.js +39 -0
- package/.storybook/main.js +21 -0
- package/.storybook/manager-head.html +175 -0
- package/.storybook/manager.js +34 -0
- package/.storybook/preview-head.html +212 -0
- package/.storybook/preview.js +120 -0
- package/.storybook/storybook-sort.js +54 -0
- package/CHANGELOG.md +6 -0
- package/amplify.yml +16 -0
- package/babel.config.json +14 -0
- package/{assets → dist/assets}/Images.d.ts +0 -0
- package/{assets → dist/assets}/Images.js +0 -0
- package/{components → dist/components}/atoms/Autocomplete/Autocomplete.d.ts +0 -0
- package/{components → dist/components}/atoms/Autocomplete/Autocomplete.js +0 -0
- package/{components → dist/components}/atoms/Button/Button.d.ts +0 -0
- package/{components → dist/components}/atoms/Button/Button.js +0 -0
- package/{components → dist/components}/atoms/Checkbox/Checkbox.d.ts +0 -0
- package/{components → dist/components}/atoms/Checkbox/Checkbox.js +0 -0
- package/{components → dist/components}/atoms/IconButton/IconButton.d.ts +0 -0
- package/{components → dist/components}/atoms/IconButton/IconButton.js +0 -0
- package/{components → dist/components}/atoms/Radio/Radio.d.ts +0 -0
- package/{components → dist/components}/atoms/Radio/Radio.js +0 -0
- package/{components → dist/components}/atoms/Select/Select.d.ts +0 -0
- package/{components → dist/components}/atoms/Select/Select.js +0 -0
- package/{components → dist/components}/atoms/Slider/Slider.d.ts +0 -0
- package/{components → dist/components}/atoms/Slider/Slider.js +0 -0
- package/{components → dist/components}/atoms/Switch/Switch.d.ts +0 -0
- package/{components → dist/components}/atoms/Switch/Switch.js +0 -0
- package/{components → dist/components}/atoms/TextField/TextField.d.ts +0 -0
- package/{components → dist/components}/atoms/TextField/TextField.js +0 -0
- package/{components → dist/components}/atoms/ToggleButton/ToggleButton.d.ts +0 -0
- package/{components → dist/components}/atoms/ToggleButton/ToggleButton.js +0 -0
- package/{components → dist/components}/datadisplay/Avatar/Avatar.d.ts +0 -0
- package/{components → dist/components}/datadisplay/Avatar/Avatar.js +0 -0
- package/{components → dist/components}/datadisplay/Chip/Chip.d.ts +0 -0
- package/{components → dist/components}/datadisplay/Chip/Chip.js +0 -0
- package/{components → dist/components}/datadisplay/List/List.d.ts +0 -0
- package/{components → dist/components}/datadisplay/List/List.js +0 -0
- package/{components → dist/components}/datadisplay/Tooltip/Tooltip.d.ts +0 -0
- package/{components → dist/components}/datadisplay/Tooltip/Tooltip.js +0 -0
- package/{components → dist/components}/feedback/Alert/Alert.d.ts +0 -0
- package/{components → dist/components}/feedback/Alert/Alert.js +0 -0
- package/{components → dist/components}/landmarks/Header/Header.d.ts +0 -0
- package/{components → dist/components}/landmarks/Header/Header.js +0 -0
- package/{components → dist/components}/landmarks/Header/HeaderActionButtons.d.ts +0 -0
- package/{components → dist/components}/landmarks/Header/HeaderActionButtons.js +0 -0
- package/{components → dist/components}/landmarks/Header/HeaderStyles.d.ts +0 -0
- package/{components → dist/components}/landmarks/Header/HeaderStyles.js +0 -0
- package/{components → dist/components}/navigation/Drawer/Drawer.d.ts +0 -0
- package/{components → dist/components}/navigation/Drawer/Drawer.js +0 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigation.d.ts +0 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigation.js +64 -41
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationAvatar.d.ts +0 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationAvatar.js +23 -19
- package/dist/components/navigation/MobileNavigation/MobileNavigationAvatarStyles.d.ts +3296 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationAvatarStyles.js +4 -4
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationDrawer.d.ts +0 -0
- package/dist/components/navigation/MobileNavigation/MobileNavigationDrawer.js +71 -0
- package/dist/components/navigation/MobileNavigation/MobileNavigationDrawerStyles.d.ts +1215 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationDrawerStyles.js +2 -2
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationItem/MobileNavigationItem.d.ts +0 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationItem/MobileNavigationItem.js +0 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationItem/MobileNavigationItemFlyoutMenu.d.ts +0 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationItem/MobileNavigationItemFlyoutMenu.js +0 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationItem/MobileNavigationItemFlyoutMenuStyles.d.ts +0 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationItem/MobileNavigationItemFlyoutMenuStyles.js +0 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationItem/MobileNavigationItemStyles.d.ts +0 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationItem/MobileNavigationItemStyles.js +0 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationMotion.d.ts +0 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationMotion.js +0 -0
- package/dist/components/navigation/MobileNavigation/MobileNavigationNotchIndicator.d.ts +3 -0
- package/dist/components/navigation/MobileNavigation/MobileNavigationNotchIndicator.js +19 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationSearch.d.ts +0 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationSearch.js +8 -6
- package/dist/components/navigation/MobileNavigation/MobileNavigationSearchStyles.d.ts +1080 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationSearchStyles.js +2 -2
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationStyles.d.ts +0 -0
- package/{components → dist/components}/navigation/MobileNavigation/MobileNavigationStyles.js +0 -0
- package/dist/components/navigation/MobileNavigation/MobileNavigationToggleSearchX.d.ts +3 -0
- package/dist/components/navigation/MobileNavigation/MobileNavigationToggleSearchX.js +28 -0
- package/dist/components/navigation/MobileNavigation/MobileNavigationToggleX.d.ts +3 -0
- package/dist/components/navigation/MobileNavigation/MobileNavigationToggleX.js +28 -0
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigation.d.ts +0 -0
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigation.js +18 -16
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigationAvatar.d.ts +0 -0
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigationAvatar.js +20 -25
- package/dist/components/navigation/VerticalNavigation/VerticalNavigationAvatarStyles.d.ts +3296 -0
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigationAvatarStyles.js +4 -4
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItem.d.ts +0 -0
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItem.js +5 -1
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItemFlyoutMenu.d.ts +0 -0
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItemFlyoutMenu.js +0 -0
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItemFlyoutMenuStyles.d.ts +0 -0
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItemFlyoutMenuStyles.js +0 -0
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItemStyles.d.ts +0 -0
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItemStyles.js +0 -0
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigationMotion.d.ts +0 -0
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigationMotion.js +0 -0
- package/dist/components/navigation/VerticalNavigation/VerticalNavigationStyles.d.ts +1163 -0
- package/{components → dist/components}/navigation/VerticalNavigation/VerticalNavigationStyles.js +3 -2
- package/{components → dist/components}/pages/ErrorPage/ErrorPage.d.ts +0 -0
- package/{components → dist/components}/pages/ErrorPage/ErrorPage.js +0 -0
- package/{components → dist/components}/pages/ErrorPage/ErrorPageStyles.d.ts +0 -0
- package/{components → dist/components}/pages/ErrorPage/ErrorPageStyles.js +0 -0
- package/{components → dist/components}/pages/SideInSide/SideInSide.d.ts +0 -0
- package/{components → dist/components}/pages/SideInSide/SideInSide.js +0 -0
- package/{components → dist/components}/pages/SideInSide/SideInSideStyles.d.ts +0 -0
- package/{components → dist/components}/pages/SideInSide/SideInSideStyles.js +0 -0
- package/{components → dist/components}/stream/AppSwitcher/AppSwitcher.d.ts +0 -0
- package/{components → dist/components}/stream/AppSwitcher/AppSwitcher.js +0 -0
- package/{components → dist/components}/stream/AppSwitcher/AppSwitcherItem.d.ts +0 -0
- package/{components → dist/components}/stream/AppSwitcher/AppSwitcherItem.js +0 -0
- package/{components → dist/components}/stream/AppSwitcher/AppSwitcherStyles.d.ts +0 -0
- package/{components → dist/components}/stream/AppSwitcher/AppSwitcherStyles.js +0 -0
- package/{components → dist/components}/stream/AppSwitcher/constants.d.ts +0 -0
- package/{components → dist/components}/stream/AppSwitcher/constants.js +0 -0
- package/{index.d.ts → dist/index.d.ts} +0 -0
- package/{index.js → dist/index.js} +0 -0
- package/{lang → dist/lang}/en-us.d.ts +0 -0
- package/{lang → dist/lang}/en-us.js +0 -0
- package/dist/package.json +41 -0
- package/{types → dist/types}/components/navigation/VerticalNavigation.d.ts +0 -0
- package/{types → dist/types}/components/navigation/VerticalNavigation.js +0 -0
- package/{types → dist/types}/components/navigation/VerticalNavigationAvatar.d.ts +1 -0
- package/{types → dist/types}/components/navigation/VerticalNavigationAvatar.js +0 -0
- package/{types → dist/types}/components/stream/AppSwitcher.d.ts +0 -0
- package/{types → dist/types}/components/stream/AppSwitcher.js +0 -0
- package/{types → dist/types}/index.d.ts +0 -0
- package/{types → dist/types}/index.js +0 -0
- package/{utils → dist/utils}/constants.d.ts +0 -0
- package/{utils → dist/utils}/constants.js +0 -0
- package/dist/utils/helpers.d.ts +21 -0
- package/dist/utils/helpers.js +64 -0
- package/{utils → dist/utils}/hooks.d.ts +0 -0
- package/{utils → dist/utils}/hooks.js +0 -0
- package/{utils → dist/utils}/index.d.ts +0 -0
- package/{utils → dist/utils}/index.js +0 -0
- package/{utils → dist/utils}/theme.d.ts +0 -0
- package/{utils → dist/utils}/theme.js +0 -0
- package/jest.config.ts +11 -0
- package/jest.setup.ts +5 -0
- package/{LICENSE → license} +0 -0
- package/merge.js +27 -0
- package/package.json +71 -4
- package/public/android-chrome-192x192.png +0 -0
- package/public/android-chrome-512x512.png +0 -0
- package/public/apple-touch-icon.png +0 -0
- package/public/assets/atoms.svg +5 -0
- package/public/assets/automation.svg +1 -0
- package/public/assets/avatar-1.jpg +0 -0
- package/public/assets/avatar-2.jpg +0 -0
- package/public/assets/avatar-3.jpg +0 -0
- package/public/assets/flux/icon-dark.svg +6 -0
- package/public/assets/flux/icon-light.svg +1 -0
- package/public/assets/flux/icon-white.svg +6 -0
- package/public/assets/flux/icon.svg +6 -0
- package/public/assets/flux/logo-dark.svg +22 -0
- package/public/assets/flux/logo-light.svg +1 -0
- package/public/assets/flux/logo-white.svg +22 -0
- package/public/assets/flux/logo.svg +22 -0
- package/public/assets/iPhone6.jpg +0 -0
- package/public/assets/iPhone6Plus.jpg +0 -0
- package/public/assets/lp-logo.png +0 -0
- package/public/assets/lplogo.svg +1 -0
- package/public/assets/molecules.svg +8 -0
- package/public/assets/organisms.svg +21 -0
- package/public/assets/pages.svg +4 -0
- package/public/assets/particles.svg +3 -0
- package/public/assets/stream-dark.png +0 -0
- package/public/assets/stream-suite-logo.svg +38 -0
- package/public/assets/stream-white.png +0 -0
- package/public/assets/stream.png +0 -0
- package/public/assets/templates.svg +3 -0
- package/public/favicon-16x16.png +0 -0
- package/public/favicon-32x32.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/index.html +43 -0
- package/public/logo192.png +0 -0
- package/public/logo512.png +0 -0
- package/public/manifest.json +25 -0
- package/public/robots.txt +3 -0
- package/public/site.webmanifest +1 -0
- package/{README.md → readme.md} +0 -0
- package/src/docs.tsx +167 -0
- package/src/lib/assets/Images.tsx +47 -0
- package/src/lib/assets/stream-suite-logo.svg +38 -0
- package/src/lib/components/atoms/Autocomplete/Autocomplete.test.tsx +179 -0
- package/src/lib/components/atoms/Autocomplete/Autocomplete.tsx +14 -0
- package/src/lib/components/atoms/Button/Button.test.tsx +166 -0
- package/src/lib/components/atoms/Button/Button.tsx +16 -0
- package/src/lib/components/atoms/Checkbox/Checkbox.test.tsx +85 -0
- package/src/lib/components/atoms/Checkbox/Checkbox.tsx +10 -0
- package/src/lib/components/atoms/IconButton/IconButton.test.tsx +60 -0
- package/src/lib/components/atoms/IconButton/IconButton.tsx +9 -0
- package/src/lib/components/atoms/Radio/Radio.test.tsx +136 -0
- package/src/lib/components/atoms/Radio/Radio.tsx +10 -0
- package/src/lib/components/atoms/Select/Select.test.tsx +158 -0
- package/src/lib/components/atoms/Select/Select.tsx +12 -0
- package/src/lib/components/atoms/Slider/Slider.test.tsx +103 -0
- package/src/lib/components/atoms/Slider/Slider.tsx +10 -0
- package/src/lib/components/atoms/Switch/Switch.test.tsx +96 -0
- package/src/lib/components/atoms/Switch/Switch.tsx +10 -0
- package/src/lib/components/atoms/TextField/TextField.test.tsx +131 -0
- package/src/lib/components/atoms/TextField/TextField.tsx +31 -0
- package/src/lib/components/atoms/ToggleButton/ToggleButton.test.tsx +122 -0
- package/src/lib/components/atoms/ToggleButton/ToggleButton.tsx +10 -0
- package/src/lib/components/datadisplay/Avatar/Avatar.test.tsx +187 -0
- package/src/lib/components/datadisplay/Avatar/Avatar.tsx +35 -0
- package/src/lib/components/datadisplay/Avatar/avatar-1.jpg +0 -0
- package/src/lib/components/datadisplay/Chip/Chip.test.tsx +82 -0
- package/src/lib/components/datadisplay/Chip/Chip.tsx +11 -0
- package/src/lib/components/datadisplay/List/List.test.tsx +168 -0
- package/src/lib/components/datadisplay/List/List.tsx +8 -0
- package/src/lib/components/datadisplay/Tooltip/Tooltip.test.tsx +98 -0
- package/src/lib/components/datadisplay/Tooltip/Tooltip.tsx +9 -0
- package/src/lib/components/feedback/Alert/Alert.test.tsx +139 -0
- package/src/lib/components/feedback/Alert/Alert.tsx +10 -0
- package/src/lib/components/landmarks/Header/Header.tsx +140 -0
- package/src/lib/components/landmarks/Header/HeaderActionButtons.tsx +117 -0
- package/src/lib/components/landmarks/Header/HeaderStyles.tsx +62 -0
- package/src/lib/components/navigation/Drawer/Drawer.test.tsx +95 -0
- package/src/lib/components/navigation/Drawer/Drawer.tsx +21 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigation.tsx +276 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationAvatar.tsx +334 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationAvatarStyles.tsx +77 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationDrawer.tsx +197 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationDrawerStyles.tsx +143 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationItem/MobileNavigationItem.tsx +192 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationItem/MobileNavigationItemFlyoutMenu.tsx +67 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationItem/MobileNavigationItemFlyoutMenuStyles.tsx +192 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationItem/MobileNavigationItemStyles.tsx +217 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationMotion.tsx +119 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationNotchIndicator.tsx +35 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationSearch.tsx +114 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationSearchStyles.tsx +47 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationStyles.tsx +320 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationToggleSearchX.tsx +59 -0
- package/src/lib/components/navigation/MobileNavigation/MobileNavigationToggleX.tsx +51 -0
- package/src/lib/components/navigation/VerticalNavigation/VerticalNavigation.tsx +467 -0
- package/src/lib/components/navigation/VerticalNavigation/VerticalNavigationAvatar.tsx +208 -0
- package/src/lib/components/navigation/VerticalNavigation/VerticalNavigationAvatarStyles.tsx +75 -0
- package/src/lib/components/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItem.tsx +196 -0
- package/src/lib/components/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItemFlyoutMenu.tsx +94 -0
- package/src/lib/components/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItemFlyoutMenuStyles.tsx +212 -0
- package/src/lib/components/navigation/VerticalNavigation/VerticalNavigationItem/VerticalNavigationItemStyles.tsx +240 -0
- package/src/lib/components/navigation/VerticalNavigation/VerticalNavigationMotion.tsx +119 -0
- package/src/lib/components/navigation/VerticalNavigation/VerticalNavigationStyles.tsx +303 -0
- package/src/lib/components/pages/ErrorPage/ErrorPage.test.tsx +78 -0
- package/src/lib/components/pages/ErrorPage/ErrorPage.tsx +50 -0
- package/src/lib/components/pages/ErrorPage/ErrorPageStyles.tsx +30 -0
- package/src/lib/components/pages/SideInSide/SideInSide.tsx +100 -0
- package/src/lib/components/pages/SideInSide/SideInSideStyles.tsx +62 -0
- package/src/lib/components/stream/AppSwitcher/AppSwitcher.tsx +392 -0
- package/src/lib/components/stream/AppSwitcher/AppSwitcherItem.tsx +83 -0
- package/src/lib/components/stream/AppSwitcher/AppSwitcherStyles.tsx +325 -0
- package/src/lib/components/stream/AppSwitcher/constants.tsx +28 -0
- package/src/lib/index.tsx +148 -0
- package/src/lib/lang/en-us.js +6 -0
- package/src/lib/types/components/navigation/VerticalNavigation.ts +52 -0
- package/src/lib/types/components/navigation/VerticalNavigationAvatar.ts +26 -0
- package/src/lib/types/components/stream/AppSwitcher.ts +10 -0
- package/src/lib/types/index.ts +9 -0
- package/src/lib/utils/constants.tsx +11 -0
- package/src/lib/utils/helpers.tsx +77 -0
- package/src/lib/utils/hooks.tsx +33 -0
- package/src/lib/utils/index.tsx +4 -0
- package/src/lib/utils/theme.tsx +79 -0
- package/src/react-app-env.d.ts +1 -0
- package/src/setupTests.ts +5 -0
- package/src/stories/Components/DataDisplay/Avatar/Accessibility.stories.mdx +34 -0
- package/src/stories/Components/DataDisplay/Avatar/AllCombinations.tsx +56 -0
- package/src/stories/Components/DataDisplay/Avatar/Avatar.stories.tsx +19 -0
- package/src/stories/Components/DataDisplay/Avatar/Examples.stories.tsx +278 -0
- package/src/stories/Components/DataDisplay/Avatar/Overview.stories.mdx +47 -0
- package/src/stories/Components/DataDisplay/Chip/Accessibility.stories.mdx +29 -0
- package/src/stories/Components/DataDisplay/Chip/AllCombinations.tsx +58 -0
- package/src/stories/Components/DataDisplay/Chip/Chip.stories.tsx +21 -0
- package/src/stories/Components/DataDisplay/Chip/Examples.stories.tsx +126 -0
- package/src/stories/Components/DataDisplay/Chip/Overview.stories.mdx +57 -0
- package/src/stories/Components/DataDisplay/List/Accessibility.stories.mdx +54 -0
- package/src/stories/Components/DataDisplay/List/AllCombinations.tsx +396 -0
- package/src/stories/Components/DataDisplay/List/Examples.stories.tsx +501 -0
- package/src/stories/Components/DataDisplay/List/List.stories.tsx +35 -0
- package/src/stories/Components/DataDisplay/List/Overview.stories.mdx +69 -0
- package/src/stories/Components/DataDisplay/Table/Overview.stories.mdx +70 -0
- package/src/stories/Components/DataDisplay/Tooltip/Accessibility.stories.mdx +39 -0
- package/src/stories/Components/DataDisplay/Tooltip/AllCombinations.tsx +134 -0
- package/src/stories/Components/DataDisplay/Tooltip/Examples.stories.tsx +237 -0
- package/src/stories/Components/DataDisplay/Tooltip/Overview.stories.mdx +58 -0
- package/src/stories/Components/DataDisplay/Tooltip/Tooltip.stories.tsx +22 -0
- package/src/stories/Components/Feedback/Alert/Accessibility.stories.mdx +25 -0
- package/src/stories/Components/Feedback/Alert/Alert.stories.tsx +22 -0
- package/src/stories/Components/Feedback/Alert/AllCombinations.tsx +37 -0
- package/src/stories/Components/Feedback/Alert/Examples.stories.tsx +137 -0
- package/src/stories/Components/Feedback/Alert/Overview.stories.mdx +62 -0
- package/src/stories/Components/Inputs/Autocomplete/Accessibility.stories.mdx +31 -0
- package/src/stories/Components/Inputs/Autocomplete/AllCombinations.tsx +182 -0
- package/src/stories/Components/Inputs/Autocomplete/Autocomplete.stories.tsx +31 -0
- package/src/stories/Components/Inputs/Autocomplete/Examples.stories.tsx +233 -0
- package/src/stories/Components/Inputs/Autocomplete/Overview.stories.mdx +52 -0
- package/src/stories/Components/Inputs/Button/Accessibility.stories.mdx +52 -0
- package/src/stories/Components/Inputs/Button/AllCombinations.tsx +53 -0
- package/src/stories/Components/Inputs/Button/Button.stories.tsx +23 -0
- package/src/stories/Components/Inputs/Button/Examples.stories.tsx +190 -0
- package/src/stories/Components/Inputs/Button/Overview.stories.mdx +52 -0
- package/src/stories/Components/Inputs/Checkbox/Accessibility.stories.mdx +38 -0
- package/src/stories/Components/Inputs/Checkbox/AllCombinations.tsx +55 -0
- package/src/stories/Components/Inputs/Checkbox/Checkbox.stories.tsx +22 -0
- package/src/stories/Components/Inputs/Checkbox/Examples.stories.tsx +363 -0
- package/src/stories/Components/Inputs/Checkbox/Overview.stories.mdx +63 -0
- package/src/stories/Components/Inputs/IconButton/Examples.stories.tsx +24 -0
- package/src/stories/Components/Inputs/IconButton/IconButton.stories.tsx +26 -0
- package/src/stories/Components/Inputs/Radio/Accessibility.stories.mdx +61 -0
- package/src/stories/Components/Inputs/Radio/AllCombinations.tsx +75 -0
- package/src/stories/Components/Inputs/Radio/Examples.stories.tsx +333 -0
- package/src/stories/Components/Inputs/Radio/Overview.stories.mdx +74 -0
- package/src/stories/Components/Inputs/Radio/Radio.stories.tsx +22 -0
- package/src/stories/Components/Inputs/Select/Accessibility.stories.mdx +51 -0
- package/src/stories/Components/Inputs/Select/AllCombinations.tsx +63 -0
- package/src/stories/Components/Inputs/Select/Examples.stories.tsx +803 -0
- package/src/stories/Components/Inputs/Select/Overview.stories.mdx +73 -0
- package/src/stories/Components/Inputs/Select/Select.stories.tsx +22 -0
- package/src/stories/Components/Inputs/Slider/Accessibility.stories.mdx +43 -0
- package/src/stories/Components/Inputs/Slider/AllCombinations.tsx +30 -0
- package/src/stories/Components/Inputs/Slider/Examples.stories.tsx +146 -0
- package/src/stories/Components/Inputs/Slider/Overview.stories.mdx +59 -0
- package/src/stories/Components/Inputs/Slider/Slider.stories.tsx +27 -0
- package/src/stories/Components/Inputs/Switch/Accessibility.stories.mdx +34 -0
- package/src/stories/Components/Inputs/Switch/AllCombinations.tsx +45 -0
- package/src/stories/Components/Inputs/Switch/Examples.stories.tsx +213 -0
- package/src/stories/Components/Inputs/Switch/Overview.stories.mdx +62 -0
- package/src/stories/Components/Inputs/Switch/Switch.stories.tsx +22 -0
- package/src/stories/Components/Inputs/TextField/Accessibility.stories.mdx +29 -0
- package/src/stories/Components/Inputs/TextField/AllCombinations.tsx +57 -0
- package/src/stories/Components/Inputs/TextField/Examples.stories.tsx +127 -0
- package/src/stories/Components/Inputs/TextField/Overview.stories.mdx +60 -0
- package/src/stories/Components/Inputs/TextField/TextField.stories.tsx +261 -0
- package/src/stories/Components/Inputs/ToggleButton/Accessibility.stories.mdx +32 -0
- package/src/stories/Components/Inputs/ToggleButton/AllCombinations.tsx +113 -0
- package/src/stories/Components/Inputs/ToggleButton/Examples.stories.tsx +339 -0
- package/src/stories/Components/Inputs/ToggleButton/Overview.stories.mdx +55 -0
- package/src/stories/Components/Inputs/ToggleButton/ToggleButton.stories.tsx +19 -0
- package/src/stories/Components/Landmarks/Header/Examples.stories.tsx +197 -0
- package/src/stories/Components/Landmarks/Header/Header.stories.tsx +34 -0
- package/src/stories/Components/Landmarks/Header/Overview.stories.mdx +44 -0
- package/src/stories/Components/Navigation/Drawer/Accessibility.stories.mdx +13 -0
- package/src/stories/Components/Navigation/Drawer/Drawer.stories.tsx +80 -0
- package/src/stories/Components/Navigation/Drawer/Examples.stories.tsx +440 -0
- package/src/stories/Components/Navigation/Drawer/Overview.stories.mdx +43 -0
- package/src/stories/Components/Navigation/MobileNavigation/Accessibility.stories.mdx +14 -0
- package/src/stories/Components/Navigation/MobileNavigation/Examples.stories.tsx +384 -0
- package/src/stories/Components/Navigation/MobileNavigation/MobileNavigation.stories.tsx +24 -0
- package/src/stories/Components/Navigation/MobileNavigation/Overview.stories.mdx +47 -0
- package/src/stories/Components/Navigation/VerticalNavigation/Accessibility.stories.mdx +14 -0
- package/src/stories/Components/Navigation/VerticalNavigation/Examples.stories.tsx +307 -0
- package/src/stories/Components/Navigation/VerticalNavigation/Overview.stories.mdx +47 -0
- package/src/stories/Components/Navigation/VerticalNavigation/VerticalNavigation.stories.tsx +24 -0
- package/src/stories/ContactUs.stories.mdx +21 -0
- package/src/stories/Experimental/Test.stories.mdx +46 -0
- package/src/stories/GettingStarted/Designer.stories.mdx +86 -0
- package/src/stories/GettingStarted/Developer.stories.mdx +134 -0
- package/src/stories/Guidelines/Accessibility/AssistiveTechnology.stories.mdx +70 -0
- package/src/stories/Guidelines/Accessibility/ColorAndContrast.stories.mdx +109 -0
- package/src/stories/Guidelines/Accessibility/Hierarchy.stories.mdx +119 -0
- package/src/stories/Guidelines/Accessibility/Imagery.stories.mdx +136 -0
- package/src/stories/Guidelines/Accessibility/Overview.stories.mdx +44 -0
- package/src/stories/Guidelines/Accessibility/Principles.stories.mdx +156 -0
- package/src/stories/Guidelines/Accessibility/SoundAndMotion.stories.mdx +59 -0
- package/src/stories/Guidelines/Accessibility/Typography.stories.mdx +69 -0
- package/src/stories/Guidelines/Accessibility/Writing.stories.mdx +188 -0
- package/src/stories/Guidelines/Styleguide/ColorSwatch.tsx +53 -0
- package/src/stories/Guidelines/Styleguide/Colors.stories.mdx +118 -0
- package/src/stories/Guidelines/Styleguide/Typography.stories.mdx +84 -0
- package/src/stories/Introduction.stories.mdx +65 -0
- package/src/stories/Pages/ErrorPage.stories.tsx +30 -0
- package/src/stories/Pages/SideInSide.stories.tsx +195 -0
- package/src/stories/Roadmap.stories.mdx +19 -0
- package/src/stories/Templates/Login.stories.mdx +46 -0
- package/src/stories/assets/Atomic_Design_Icons-Dark.svg +24 -0
- package/src/stories/assets/Atomic_Design_Icons-Light.svg +25 -0
- package/src/stories/assets/accessibility-1.png +0 -0
- package/src/stories/assets/accessibility-2.png +0 -0
- package/src/stories/assets/accessibility-3.png +0 -0
- package/src/stories/assets/accessibility-banner.png +0 -0
- package/src/stories/assets/atoms.svg +6 -0
- package/src/stories/assets/design_system_2022-02-11_12.22pm.png +0 -0
- package/src/stories/assets/figma-tokens.png +0 -0
- package/src/stories/assets/hierarchy-1.jpg +0 -0
- package/src/stories/assets/hierarchy-2.jpg +0 -0
- package/src/stories/assets/hierarchy-3.jpg +0 -0
- package/src/stories/assets/icon-contrast-1.jpg +0 -0
- package/src/stories/assets/icon-contrast-2.jpg +0 -0
- package/src/stories/assets/imagery-1.png +0 -0
- package/src/stories/assets/imagery-2.png +0 -0
- package/src/stories/assets/imagery-3.png +0 -0
- package/src/stories/assets/imagery-4.jpg +0 -0
- package/src/stories/assets/molecules.svg +9 -0
- package/src/stories/assets/organisms.svg +22 -0
- package/src/stories/assets/pages.svg +5 -0
- package/src/stories/assets/particles.svg +4 -0
- package/src/stories/assets/templates.svg +4 -0
- package/src/stories/assets/testData.tsx +102 -0
- package/src/stories/assets/text-contrast-1.jpg +0 -0
- package/src/stories/assets/text-contrast-2.jpg +0 -0
- package/src/stories/assets/typography-1.png +0 -0
- package/src/stories/assets/visual-clues-1.png +0 -0
- package/src/stories/assets/visual-clues-2.png +0 -0
- package/src/stories/assets/writing-1.jpg +0 -0
- package/src/stories/assets/writing-2.png +0 -0
- package/src/stories/assets/writing-3.png +0 -0
- package/src/stories/assets/writing-4.png +0 -0
- package/src/stories/utils/CustomIcons.tsx +44 -0
- package/tsconfig.eslint.json +16 -0
- package/tsconfig.json +50 -0
- package/components/navigation/MobileNavigation/MobileNavigationAvatarStyles.d.ts +0 -827
- package/components/navigation/MobileNavigation/MobileNavigationDrawer.js +0 -147
- package/components/navigation/MobileNavigation/MobileNavigationDrawerStyles.d.ts +0 -392
- package/components/navigation/MobileNavigation/MobileNavigationNotchIndicator.d.ts +0 -3
- package/components/navigation/MobileNavigation/MobileNavigationNotchIndicator.js +0 -31
- package/components/navigation/MobileNavigation/MobileNavigationSearchStyles.d.ts +0 -257
- package/components/navigation/MobileNavigation/MobileNavigationToggleSearchX.d.ts +0 -3
- package/components/navigation/MobileNavigation/MobileNavigationToggleSearchX.js +0 -33
- package/components/navigation/MobileNavigation/MobileNavigationToggleX.d.ts +0 -3
- package/components/navigation/MobileNavigation/MobileNavigationToggleX.js +0 -27
- package/components/navigation/MobileNavigation/MobileNavigationToggleXStyles.d.ts +0 -36
- package/components/navigation/MobileNavigation/MobileNavigationToggleXStyles.js +0 -10
- package/components/navigation/VerticalNavigation/VerticalNavigationAvatarStyles.d.ts +0 -827
- package/components/navigation/VerticalNavigation/VerticalNavigationStyles.d.ts +0 -88
- package/utils/helpers.d.ts +0 -6
- package/utils/helpers.js +0 -17
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
import { ComponentMeta, ComponentStory } from '@storybook/react'
|
|
2
|
+
import * as React from 'react'
|
|
3
|
+
import { DOCS } from '../../../../docs'
|
|
4
|
+
import ToggleButton from '../../../../lib/components/atoms/ToggleButton/ToggleButton'
|
|
5
|
+
import ToggleButtonGroup from '@mui/material/ToggleButtonGroup'
|
|
6
|
+
import { Stack } from '@mui/material'
|
|
7
|
+
import CheckIcon from '@mui/icons-material/Check'
|
|
8
|
+
import FormatAlignLeftIcon from '@mui/icons-material/FormatAlignLeft'
|
|
9
|
+
import FormatAlignCenterIcon from '@mui/icons-material/FormatAlignCenter'
|
|
10
|
+
import FormatAlignRightIcon from '@mui/icons-material/FormatAlignRight'
|
|
11
|
+
import FormatAlignJustifyIcon from '@mui/icons-material/FormatAlignJustify'
|
|
12
|
+
import FormatBoldIcon from '@mui/icons-material/FormatBold'
|
|
13
|
+
import FormatItalicIcon from '@mui/icons-material/FormatItalic'
|
|
14
|
+
import FormatUnderlinedIcon from '@mui/icons-material/FormatUnderlined'
|
|
15
|
+
import FormatColorFillIcon from '@mui/icons-material/FormatColorFill'
|
|
16
|
+
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'
|
|
17
|
+
import LaptopIcon from '@mui/icons-material/Laptop'
|
|
18
|
+
import TvIcon from '@mui/icons-material/Tv'
|
|
19
|
+
import PhoneAndroidIcon from '@mui/icons-material/PhoneAndroid'
|
|
20
|
+
import AllCombinations from './AllCombinations'
|
|
21
|
+
|
|
22
|
+
export default {
|
|
23
|
+
title: 'Components/Inputs/ToggleButton/Examples',
|
|
24
|
+
component: ToggleButton
|
|
25
|
+
} as ComponentMeta<typeof ToggleButton>
|
|
26
|
+
|
|
27
|
+
export const Default: ComponentStory<typeof ToggleButton> = (args): JSX.Element => {
|
|
28
|
+
const [selected, setSelected] = React.useState(false)
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<ToggleButton
|
|
32
|
+
aria-label="label"
|
|
33
|
+
value="check"
|
|
34
|
+
selected={selected}
|
|
35
|
+
onChange={(): void => {
|
|
36
|
+
setSelected(!selected)
|
|
37
|
+
}}
|
|
38
|
+
>
|
|
39
|
+
<CheckIcon />
|
|
40
|
+
</ToggleButton>
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
Default.parameters = {
|
|
44
|
+
docs: {
|
|
45
|
+
description: {
|
|
46
|
+
component: DOCS.ToggleButton.Default
|
|
47
|
+
},
|
|
48
|
+
source: {
|
|
49
|
+
type: 'code'
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export const ExclusiveSection: ComponentStory<typeof ToggleButton> = (args): JSX.Element => {
|
|
55
|
+
const [alignment, setAlignment] = React.useState<string | null>('left')
|
|
56
|
+
|
|
57
|
+
const handleAlignment = (
|
|
58
|
+
event: React.MouseEvent<HTMLElement>,
|
|
59
|
+
newAlignment: string | null
|
|
60
|
+
): void => {
|
|
61
|
+
setAlignment(newAlignment)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return (
|
|
65
|
+
<ToggleButtonGroup
|
|
66
|
+
value={alignment}
|
|
67
|
+
exclusive
|
|
68
|
+
onChange={handleAlignment}
|
|
69
|
+
aria-label="text alignment"
|
|
70
|
+
color="primary"
|
|
71
|
+
>
|
|
72
|
+
<ToggleButton value="left" aria-label="left aligned">
|
|
73
|
+
<FormatAlignLeftIcon />
|
|
74
|
+
</ToggleButton>
|
|
75
|
+
<ToggleButton value="center" aria-label="centered">
|
|
76
|
+
<FormatAlignCenterIcon />
|
|
77
|
+
</ToggleButton>
|
|
78
|
+
<ToggleButton value="right" aria-label="right aligned">
|
|
79
|
+
<FormatAlignRightIcon />
|
|
80
|
+
</ToggleButton>
|
|
81
|
+
<ToggleButton value="justify" aria-label="justified" disabled>
|
|
82
|
+
<FormatAlignJustifyIcon />
|
|
83
|
+
</ToggleButton>
|
|
84
|
+
</ToggleButtonGroup>
|
|
85
|
+
)
|
|
86
|
+
}
|
|
87
|
+
ExclusiveSection.parameters = {
|
|
88
|
+
docs: {
|
|
89
|
+
description: {
|
|
90
|
+
story: DOCS.ToggleButton.ExclusiveSection
|
|
91
|
+
},
|
|
92
|
+
source: {
|
|
93
|
+
type: 'code'
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export const MultipleSection: ComponentStory<typeof ToggleButton> = (args): JSX.Element => {
|
|
99
|
+
const [formats, setFormats] = React.useState(() => ['bold', 'italic'])
|
|
100
|
+
|
|
101
|
+
const handleFormat = (
|
|
102
|
+
event: React.MouseEvent<HTMLElement>,
|
|
103
|
+
newFormats: string[]
|
|
104
|
+
): void => {
|
|
105
|
+
setFormats(newFormats)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return (
|
|
109
|
+
<ToggleButtonGroup
|
|
110
|
+
value={formats}
|
|
111
|
+
onChange={handleFormat}
|
|
112
|
+
aria-label="text formatting"
|
|
113
|
+
color="primary"
|
|
114
|
+
>
|
|
115
|
+
<ToggleButton value="bold" aria-label="bold">
|
|
116
|
+
<FormatBoldIcon />
|
|
117
|
+
</ToggleButton>
|
|
118
|
+
<ToggleButton value="italic" aria-label="italic">
|
|
119
|
+
<FormatItalicIcon />
|
|
120
|
+
</ToggleButton>
|
|
121
|
+
<ToggleButton value="underlined" aria-label="underlined">
|
|
122
|
+
<FormatUnderlinedIcon />
|
|
123
|
+
</ToggleButton>
|
|
124
|
+
<ToggleButton value="color" aria-label="color" disabled>
|
|
125
|
+
<FormatColorFillIcon />
|
|
126
|
+
<ArrowDropDownIcon />
|
|
127
|
+
</ToggleButton>
|
|
128
|
+
</ToggleButtonGroup>
|
|
129
|
+
)
|
|
130
|
+
}
|
|
131
|
+
MultipleSection.parameters = {
|
|
132
|
+
docs: {
|
|
133
|
+
description: {
|
|
134
|
+
story: DOCS.ToggleButton.MultipleSection
|
|
135
|
+
},
|
|
136
|
+
source: {
|
|
137
|
+
type: 'code'
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export const Sizes: ComponentStory<typeof ToggleButton> = (args): JSX.Element => {
|
|
143
|
+
const [alignment, setAlignment] = React.useState('left')
|
|
144
|
+
|
|
145
|
+
const handleChange = (
|
|
146
|
+
event: React.MouseEvent<HTMLElement>,
|
|
147
|
+
newAlignment: string
|
|
148
|
+
): void => {
|
|
149
|
+
setAlignment(newAlignment)
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
const children = [
|
|
153
|
+
<ToggleButton value="left" key="left">
|
|
154
|
+
<FormatAlignLeftIcon />
|
|
155
|
+
</ToggleButton>,
|
|
156
|
+
<ToggleButton value="center" key="center">
|
|
157
|
+
<FormatAlignCenterIcon />
|
|
158
|
+
</ToggleButton>,
|
|
159
|
+
<ToggleButton value="right" key="right">
|
|
160
|
+
<FormatAlignRightIcon />
|
|
161
|
+
</ToggleButton>,
|
|
162
|
+
<ToggleButton value="justify" key="justify">
|
|
163
|
+
<FormatAlignJustifyIcon />
|
|
164
|
+
</ToggleButton>
|
|
165
|
+
]
|
|
166
|
+
|
|
167
|
+
const control = {
|
|
168
|
+
value: alignment,
|
|
169
|
+
onChange: handleChange,
|
|
170
|
+
exclusive: true
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
return (
|
|
174
|
+
<Stack direction="column" spacing={2}>
|
|
175
|
+
<ToggleButtonGroup size="small" {...control}>
|
|
176
|
+
{children}
|
|
177
|
+
</ToggleButtonGroup>
|
|
178
|
+
<ToggleButtonGroup {...control}>{children}</ToggleButtonGroup>
|
|
179
|
+
<ToggleButtonGroup size="large" {...control}>
|
|
180
|
+
{children}
|
|
181
|
+
</ToggleButtonGroup>
|
|
182
|
+
</Stack>
|
|
183
|
+
)
|
|
184
|
+
}
|
|
185
|
+
Sizes.parameters = {
|
|
186
|
+
docs: {
|
|
187
|
+
description: {
|
|
188
|
+
story: DOCS.ToggleButton.Sizes
|
|
189
|
+
},
|
|
190
|
+
source: {
|
|
191
|
+
type: 'code'
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export const Colors: ComponentStory<typeof ToggleButton> = (args): JSX.Element => {
|
|
197
|
+
const [alignment, setAlignment] = React.useState('left')
|
|
198
|
+
|
|
199
|
+
const handleAlignment = (
|
|
200
|
+
event: React.MouseEvent<HTMLElement>,
|
|
201
|
+
newAlignment: string | null
|
|
202
|
+
): void => {
|
|
203
|
+
if (newAlignment !== null) {
|
|
204
|
+
setAlignment(newAlignment)
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
const children = [
|
|
209
|
+
<ToggleButton value="left" key="left">
|
|
210
|
+
<FormatAlignLeftIcon />
|
|
211
|
+
</ToggleButton>,
|
|
212
|
+
<ToggleButton value="center" key="center">
|
|
213
|
+
<FormatAlignCenterIcon />
|
|
214
|
+
</ToggleButton>,
|
|
215
|
+
<ToggleButton value="right" key="right">
|
|
216
|
+
<FormatAlignRightIcon />
|
|
217
|
+
</ToggleButton>
|
|
218
|
+
]
|
|
219
|
+
|
|
220
|
+
const control = {
|
|
221
|
+
value: alignment,
|
|
222
|
+
onChange: handleAlignment,
|
|
223
|
+
exclusive: true
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
return (
|
|
227
|
+
<Stack direction="column" spacing={2}>
|
|
228
|
+
<ToggleButtonGroup {...control} color="primary">
|
|
229
|
+
{children}
|
|
230
|
+
</ToggleButtonGroup>
|
|
231
|
+
<ToggleButtonGroup {...control} color="secondary">
|
|
232
|
+
{children}
|
|
233
|
+
</ToggleButtonGroup>
|
|
234
|
+
<ToggleButtonGroup {...control} color="error">
|
|
235
|
+
{children}
|
|
236
|
+
</ToggleButtonGroup>
|
|
237
|
+
<ToggleButtonGroup {...control} color="info">
|
|
238
|
+
{children}
|
|
239
|
+
</ToggleButtonGroup>
|
|
240
|
+
<ToggleButtonGroup {...control} color="success">
|
|
241
|
+
{children}
|
|
242
|
+
</ToggleButtonGroup>
|
|
243
|
+
<ToggleButtonGroup {...control} color="warning">
|
|
244
|
+
{children}
|
|
245
|
+
</ToggleButtonGroup>
|
|
246
|
+
</Stack>
|
|
247
|
+
)
|
|
248
|
+
}
|
|
249
|
+
Colors.parameters = {
|
|
250
|
+
docs: {
|
|
251
|
+
description: {
|
|
252
|
+
story: DOCS.ToggleButton.Colors
|
|
253
|
+
},
|
|
254
|
+
source: {
|
|
255
|
+
type: 'code'
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
export const EnforceValues: ComponentStory<typeof ToggleButton> = (args): JSX.Element => {
|
|
261
|
+
const [alignment, setAlignment] = React.useState('left')
|
|
262
|
+
const [devices, setDevices] = React.useState(() => ['phone'])
|
|
263
|
+
|
|
264
|
+
const handleAlignment = (
|
|
265
|
+
event: React.MouseEvent<HTMLElement>,
|
|
266
|
+
newAlignment: string | null
|
|
267
|
+
): void => {
|
|
268
|
+
if (newAlignment !== null) {
|
|
269
|
+
setAlignment(newAlignment)
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
const handleDevices = (
|
|
274
|
+
event: React.MouseEvent<HTMLElement>,
|
|
275
|
+
newDevices: string[]
|
|
276
|
+
): void => {
|
|
277
|
+
if (newDevices.length) {
|
|
278
|
+
setDevices(newDevices)
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
return (
|
|
283
|
+
<Stack direction="row" spacing={4}>
|
|
284
|
+
<ToggleButtonGroup
|
|
285
|
+
value={alignment}
|
|
286
|
+
exclusive
|
|
287
|
+
onChange={handleAlignment}
|
|
288
|
+
aria-label="text alignment"
|
|
289
|
+
>
|
|
290
|
+
<ToggleButton value="left" aria-label="left aligned">
|
|
291
|
+
<FormatAlignLeftIcon />
|
|
292
|
+
</ToggleButton>
|
|
293
|
+
<ToggleButton value="center" aria-label="centered">
|
|
294
|
+
<FormatAlignCenterIcon />
|
|
295
|
+
</ToggleButton>
|
|
296
|
+
<ToggleButton value="right" aria-label="right aligned">
|
|
297
|
+
<FormatAlignRightIcon />
|
|
298
|
+
</ToggleButton>
|
|
299
|
+
</ToggleButtonGroup>
|
|
300
|
+
|
|
301
|
+
<ToggleButtonGroup
|
|
302
|
+
value={devices}
|
|
303
|
+
onChange={handleDevices}
|
|
304
|
+
aria-label="device"
|
|
305
|
+
>
|
|
306
|
+
<ToggleButton value="laptop" aria-label="laptop">
|
|
307
|
+
<LaptopIcon />
|
|
308
|
+
</ToggleButton>
|
|
309
|
+
<ToggleButton value="tv" aria-label="tv">
|
|
310
|
+
<TvIcon />
|
|
311
|
+
</ToggleButton>
|
|
312
|
+
<ToggleButton value="phone" aria-label="phone">
|
|
313
|
+
<PhoneAndroidIcon />
|
|
314
|
+
</ToggleButton>
|
|
315
|
+
</ToggleButtonGroup>
|
|
316
|
+
</Stack>
|
|
317
|
+
)
|
|
318
|
+
}
|
|
319
|
+
EnforceValues.parameters = {
|
|
320
|
+
docs: {
|
|
321
|
+
description: {
|
|
322
|
+
story: DOCS.ToggleButton.EnforceValues
|
|
323
|
+
},
|
|
324
|
+
source: {
|
|
325
|
+
type: 'code'
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
export const All: ComponentStory<typeof AllCombinations> = (args) => (
|
|
331
|
+
<AllCombinations />
|
|
332
|
+
)
|
|
333
|
+
All.parameters = {
|
|
334
|
+
docs: {
|
|
335
|
+
description: {
|
|
336
|
+
story: DOCS.ToggleButton.All
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Canvas, Meta, Story } from '@storybook/addon-docs';
|
|
2
|
+
import ToggleButton from '../../../../lib/components/atoms/ToggleButton/ToggleButton';
|
|
3
|
+
import ToggleButtonGroup from '@mui/material/ToggleButtonGroup'
|
|
4
|
+
import { MUIIcon, MaterialDesignIcon, W3CIcon, FigmaIcon, GithubIcon } from '../../../utils/CustomIcons';
|
|
5
|
+
import Chip from '@mui/material/Chip';
|
|
6
|
+
import Stack from '@mui/material/Stack';
|
|
7
|
+
import CheckIcon from '@mui/icons-material/Check';
|
|
8
|
+
|
|
9
|
+
<Meta title="Components/Inputs/ToggleButton/Overview" component={ToggleButton} />
|
|
10
|
+
|
|
11
|
+
[](#alert-overview)ToggleButton Overview <span class="sbdocs-edit-link"><Chip clickable component="a" href="https://github.com/ht2-labs/design-system/tree/main/src/stories/Components/Inputs/ToggleButton/Overview.stories.mdx" size="small" label="Edit" variant="outlined" /></span>
|
|
12
|
+
=================================================================================
|
|
13
|
+
|
|
14
|
+
### [](#what-does-it-do)What does it do?
|
|
15
|
+
|
|
16
|
+
Toggle buttons can be used to group related options.
|
|
17
|
+
|
|
18
|
+
<Stack direction="row" spacing={1}>
|
|
19
|
+
<Chip clickable component="a" href="https://mui.com/components/alertes/" size="small" icon={<MUIIcon viewBox="-5 0 40 30" />} label="Material UI" variant="outlined" />
|
|
20
|
+
<Chip clickable component="a" href="https://material.io/components/selection-controls#alertes" size="small" icon={<MaterialDesignIcon />} label="Material Design" variant="outlined" />
|
|
21
|
+
<Chip clickable component="a" href="https://www.figma.com/proto/mBDuFn79U8wQIIEoCGpMew/DS%3A-Component-Library?node-id=1152%3A18414&scaling=contain&page-id=1146%3A17946&starting-point-node-id=1152%3A18414" size="small" icon={<FigmaIcon />} label="Figma" variant="outlined" />
|
|
22
|
+
<Chip clickable component="a" href="https://github.com/HT2-Labs/design-system/tree/main/src/lib/components/atoms/ToggleButton" size="small" icon={<GithubIcon />} label="Github" variant="outlined" />
|
|
23
|
+
</Stack>
|
|
24
|
+
|
|
25
|
+
### [](#why-use-it)Why use it?
|
|
26
|
+
|
|
27
|
+
* Toggle buttons can be used to allow users to select between options in a group.
|
|
28
|
+
* To emphasize groups of related toggle buttons, a group should share a common container.
|
|
29
|
+
|
|
30
|
+
### [](#how-to-implement-it)How to implement it?
|
|
31
|
+
|
|
32
|
+
The `ToggleButtonGroup` controls the selected state of its child buttons when given its own `value` prop.
|
|
33
|
+
|
|
34
|
+
With exclusive selection, selecting one option deselects any other:
|
|
35
|
+
<Canvas isExpanded>
|
|
36
|
+
<Story id="components-inputs-togglebutton-examples--exclusive-section" />
|
|
37
|
+
</Canvas>
|
|
38
|
+
|
|
39
|
+
Multiple selection allows for logically-grouped options to have multiple options selected:
|
|
40
|
+
<Canvas isExpanded>
|
|
41
|
+
<Story id="components-inputs-togglebutton-examples--multiple-section" />
|
|
42
|
+
</Canvas>
|
|
43
|
+
|
|
44
|
+
### [](#when-to-avoid-it)When to avoid it?
|
|
45
|
+
|
|
46
|
+
* Do not use a toggle button when user consent is required (ex. accepting terms and conditions). Instead, use a Checkbox component.
|
|
47
|
+
|
|
48
|
+
### [](#best-practices)Best practices
|
|
49
|
+
|
|
50
|
+
* Use the `exclusive` prop to allow only one option to be selected at a time.
|
|
51
|
+
* Use the `multiple` prop to allow multiple options to be selected at a time.
|
|
52
|
+
* Be sure to give the toggle button a clear and concise label.
|
|
53
|
+
|
|
54
|
+
### [](#design-prototype)Design prototype
|
|
55
|
+
TODO: Add design prototype link
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ComponentMeta, ComponentStory } from '@storybook/react'
|
|
2
|
+
import * as React from 'react'
|
|
3
|
+
import ToggleButton from '../../../../lib/components/atoms/ToggleButton/ToggleButton'
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Components/Inputs/ToggleButton/Properties',
|
|
7
|
+
component: ToggleButton,
|
|
8
|
+
parameters: {
|
|
9
|
+
controls: {
|
|
10
|
+
sort: 'requiredFirst'
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
} as ComponentMeta<typeof ToggleButton>
|
|
14
|
+
|
|
15
|
+
// 👇 We create a “template” of how args map to rendering
|
|
16
|
+
const Template: ComponentStory<typeof ToggleButton> = (args) => <ToggleButton {...args} />
|
|
17
|
+
|
|
18
|
+
export const Properties = Template.bind({})
|
|
19
|
+
Properties.args = {}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { Check, MenuBook } from '@mui/icons-material'
|
|
2
|
+
import { createTheme, Direction, PaletteMode, ThemeProvider } from '@mui/material'
|
|
3
|
+
import { useEffect } from '@storybook/addons'
|
|
4
|
+
import { ComponentMeta, ComponentStory } from '@storybook/react'
|
|
5
|
+
import * as React from 'react'
|
|
6
|
+
import { DOCS } from '../../../../docs'
|
|
7
|
+
import { Header, Typography, Button } from '../../../../lib'
|
|
8
|
+
import { lightTheme, darkTheme } from '../../../../lib/utils'
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
title: 'Components/Landmarks/Header/Examples',
|
|
12
|
+
component: Header
|
|
13
|
+
} as ComponentMeta<typeof Header>
|
|
14
|
+
|
|
15
|
+
export const Default: ComponentStory<typeof Header> = (args) => {
|
|
16
|
+
const [themeMode, setThemeMode] = React.useState<PaletteMode>('light')
|
|
17
|
+
const [directionMode, setDirectionMode] = React.useState<Direction>('ltr')
|
|
18
|
+
|
|
19
|
+
const themeOptions = {
|
|
20
|
+
palette: {
|
|
21
|
+
// ...darkTheme
|
|
22
|
+
...(themeMode === 'light' && { ...lightTheme.palette }),
|
|
23
|
+
...(themeMode === 'dark' && { ...darkTheme.palette }),
|
|
24
|
+
mode: themeMode
|
|
25
|
+
},
|
|
26
|
+
direction: directionMode
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
let testTheme = createTheme(themeOptions)
|
|
30
|
+
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
testTheme = createTheme(themeOptions)
|
|
33
|
+
}, [themeMode])
|
|
34
|
+
|
|
35
|
+
const breadcrumbItems = [
|
|
36
|
+
{ label: 'Lorem ipsum', href: '#' },
|
|
37
|
+
{ label: 'Dolar sit amet', href: '#' },
|
|
38
|
+
{ label: 'Sed do eiusmod', href: '#' },
|
|
39
|
+
{ label: 'Consectetur', href: '#' }
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
const additionalButtons = [
|
|
43
|
+
{ label: 'Lorem ipsum', icon: <MenuBook />, onClick: () => console.log('Action: Avatar panel menu item') },
|
|
44
|
+
{ label: 'Dolar sit amet', icon: <MenuBook />, onClick: () => console.log('Action: Avatar panel menu item') },
|
|
45
|
+
{ label: 'Sed do eiusmodSed do eiusmodSed do eiusmodSed do eiusmod', icon: <MenuBook />, onClick: () => console.log('Action: Avatar panel menu item') },
|
|
46
|
+
{ label: 'Lorem ipsum', icon: <MenuBook />, onClick: () => console.log('Action: Avatar panel menu item') }
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
const callToAction = {
|
|
50
|
+
label: 'Just do it!',
|
|
51
|
+
icon: <Check />
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return (
|
|
55
|
+
<ThemeProvider theme={testTheme}>
|
|
56
|
+
<Header
|
|
57
|
+
// @ts-expect-error
|
|
58
|
+
title='I am one of the best titles you ever will see'
|
|
59
|
+
titleComponent='h4'
|
|
60
|
+
subtitle='Is awesome and you know it!'
|
|
61
|
+
breadcrumbItems={breadcrumbItems}
|
|
62
|
+
|
|
63
|
+
callToAction={callToAction}
|
|
64
|
+
callToActionComponent='button'
|
|
65
|
+
additionalButtons={additionalButtons}
|
|
66
|
+
|
|
67
|
+
{...args}
|
|
68
|
+
/>
|
|
69
|
+
<main style={{
|
|
70
|
+
backgroundAttachment: 'fixed',
|
|
71
|
+
backgroundColor: '#eee',
|
|
72
|
+
// backgroundImage: 'url(assets/iPhone6.jpg)',
|
|
73
|
+
backgroundPosition: 'bottom left',
|
|
74
|
+
backgroundRepeat: 'no-repeat',
|
|
75
|
+
backgroundSize: '100%',
|
|
76
|
+
margin: '-1rem',
|
|
77
|
+
padding: '3rem'
|
|
78
|
+
}}>
|
|
79
|
+
<Button onClick={(): void => setThemeMode(themeMode === 'light' ? 'dark' : 'light')}>Toggle theme mode</Button>
|
|
80
|
+
{/* <button onClick={(): void => setPersistentMode(!isPersistent)}>Toggle persistent</button> */}
|
|
81
|
+
<Button onClick={(): void => setDirectionMode(directionMode === 'ltr' ? 'rtl' : 'ltr')}>Toggle direction mode</Button>
|
|
82
|
+
<Typography
|
|
83
|
+
component='h1'
|
|
84
|
+
variant="h4"
|
|
85
|
+
style={{ margin: '1rem 0 .5rem' }}
|
|
86
|
+
>
|
|
87
|
+
Header Demo
|
|
88
|
+
</Typography>
|
|
89
|
+
<Typography paragraph={true}>
|
|
90
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
|
|
91
|
+
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
|
92
|
+
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
|
|
93
|
+
esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt
|
|
94
|
+
in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur
|
|
95
|
+
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
|
96
|
+
</Typography>
|
|
97
|
+
<Typography paragraph={true}>
|
|
98
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
|
|
99
|
+
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
|
100
|
+
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
|
|
101
|
+
esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt
|
|
102
|
+
in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur
|
|
103
|
+
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
|
104
|
+
</Typography>
|
|
105
|
+
<Typography paragraph={true}>
|
|
106
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
|
|
107
|
+
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
|
108
|
+
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
|
|
109
|
+
esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt
|
|
110
|
+
in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur
|
|
111
|
+
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
|
112
|
+
</Typography>
|
|
113
|
+
<Typography paragraph={true}>
|
|
114
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
|
|
115
|
+
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
|
116
|
+
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
|
|
117
|
+
esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt
|
|
118
|
+
in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur
|
|
119
|
+
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
|
120
|
+
</Typography>
|
|
121
|
+
<Typography paragraph={true}>
|
|
122
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
|
|
123
|
+
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
|
124
|
+
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
|
|
125
|
+
esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt
|
|
126
|
+
in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur
|
|
127
|
+
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
|
128
|
+
</Typography>
|
|
129
|
+
<Typography paragraph={true}>
|
|
130
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
|
|
131
|
+
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
|
|
132
|
+
nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
|
|
133
|
+
esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt
|
|
134
|
+
in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur
|
|
135
|
+
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
|
136
|
+
</Typography>
|
|
137
|
+
</main>
|
|
138
|
+
</ThemeProvider>
|
|
139
|
+
)
|
|
140
|
+
}
|
|
141
|
+
Default.parameters = {
|
|
142
|
+
docs: {
|
|
143
|
+
description: {
|
|
144
|
+
component: DOCS.Header.Default
|
|
145
|
+
},
|
|
146
|
+
source: {
|
|
147
|
+
type: 'code'
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export const Overview: ComponentStory<typeof Header> = (args) => {
|
|
153
|
+
const breadcrumbItems = [
|
|
154
|
+
{ label: 'Lorem ipsum', href: '#' },
|
|
155
|
+
{ label: 'Dolar sit amet', href: '#' },
|
|
156
|
+
{ label: 'Sed do eiusmod', href: '#' },
|
|
157
|
+
{ label: 'Consectetur', href: '#' }
|
|
158
|
+
]
|
|
159
|
+
|
|
160
|
+
const additionalButtons = [
|
|
161
|
+
{ label: 'Lorem ipsum', icon: <MenuBook />, onClick: () => console.log('Action: Avatar panel menu item') },
|
|
162
|
+
{ label: 'Dolar sit amet', icon: <MenuBook />, onClick: () => console.log('Action: Avatar panel menu item') },
|
|
163
|
+
{ label: 'Sed do eiusmodSed do eiusmodSed do eiusmodSed do eiusmod', icon: <MenuBook />, onClick: () => console.log('Action: Avatar panel menu item') },
|
|
164
|
+
{ label: 'Lorem ipsum', icon: <MenuBook />, onClick: () => console.log('Action: Avatar panel menu item') }
|
|
165
|
+
]
|
|
166
|
+
|
|
167
|
+
const callToAction = {
|
|
168
|
+
label: 'Just do it!',
|
|
169
|
+
icon: <Check />
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
return (
|
|
173
|
+
<Header
|
|
174
|
+
// @ts-expect-error
|
|
175
|
+
title='I am one of the best titles you ever will see'
|
|
176
|
+
titleComponent='h4'
|
|
177
|
+
subtitle='Is awesome and you know it!'
|
|
178
|
+
breadcrumbItems={breadcrumbItems}
|
|
179
|
+
|
|
180
|
+
callToAction={callToAction}
|
|
181
|
+
callToActionComponent='button'
|
|
182
|
+
additionalButtons={additionalButtons}
|
|
183
|
+
|
|
184
|
+
{...args}
|
|
185
|
+
/>
|
|
186
|
+
)
|
|
187
|
+
}
|
|
188
|
+
Overview.parameters = {
|
|
189
|
+
docs: {
|
|
190
|
+
description: {
|
|
191
|
+
component: DOCS.Header.Overview
|
|
192
|
+
},
|
|
193
|
+
source: {
|
|
194
|
+
type: 'code'
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ComponentMeta, ComponentStory } from '@storybook/react'
|
|
2
|
+
import * as React from 'react'
|
|
3
|
+
import { Header } from '../../../../lib'
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Components/Landmarks/Header/Properties',
|
|
7
|
+
component: Header,
|
|
8
|
+
parameters: {
|
|
9
|
+
controls: {
|
|
10
|
+
sort: 'requiredFirst'
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
addons: {
|
|
14
|
+
panelPosition: 'right'
|
|
15
|
+
}
|
|
16
|
+
} as ComponentMeta<typeof Header>
|
|
17
|
+
|
|
18
|
+
// 👇 We create a “template” of how args map to rendering
|
|
19
|
+
const defaultConfig = {
|
|
20
|
+
title: 'I am the Header title',
|
|
21
|
+
subtitle: 'I am the Header subtitle',
|
|
22
|
+
callToAction: {
|
|
23
|
+
label: 'Important button',
|
|
24
|
+
onClick: () => console.log('Hello there, you clicked the Important button')
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const Template: ComponentStory<typeof Header> = (args) => (
|
|
28
|
+
<Header {...defaultConfig} {...args} />
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
export const Properties = Template.bind({})
|
|
32
|
+
Properties.args = {
|
|
33
|
+
style: { minWidth: '90vw' }
|
|
34
|
+
}
|