From 00aca9af8bff4bb1a9f1f2b3cb91199d45e3828f Mon Sep 17 00:00:00 2001 From: Andrew Holloway Date: Wed, 12 Jun 2024 19:02:06 -0500 Subject: [PATCH] feat!: pre-cleanup changes to prepare for v15 - remove lingering TODO items - clean up background color tokens from 1.0 - mark tokens as deprecated - clean up type extension doc.s for Link/Button - add in usages of size tokens in components - update token documentation pages - remove v1 components and link remaining components to new versions - update remaining v1 components to work with v2 components - HorizontalStepper - Table - SearchBar - clean up stories in documentation - adjustments to table using sortable icon --- .../components/DesignTokens/Tier1/Borders.jsx | 1 + .../components/DesignTokens/Tier1/Colors.tsx | 60 +- .../components/DesignTokens/Tier1/Layout.jsx | 33 - .../components/DesignTokens/Tier1/Sizes.jsx | 72 +- .../Tier1/Tier1Tokens.stories.jsx | 7 +- .../DesignTokens/Tier2/Borders.stories.tsx | 9 +- .../DesignTokens/Tier2/Colors.stories.tsx | 76 +- .../DesignTokens/Tier3/Colors.stories.tsx | 203 -- .../Tier3/TypographyComponents.stories.tsx | 69 - .storybook/data/tokens.json | 5 +- .../WireframeDemo/GlobalStyles.module.css | 277 -- .../WireframeDemo/WireframeDemo.module.css | 187 -- .../WireframeDemo/WireframeDemo.stories.ts | 25 - .../pages/WireframeDemo/WireframeDemo.tsx | 410 --- .../fonts/BalsamiqSans-Regular.woff2 | Bin 186272 -> 0 bytes .../fonts/RedactedScript-Regular.woff2 | Bin 6096 -> 0 bytes .storybook/pages/WireframeDemo/index.ts | 1 - .storybook/preview.tsx | 18 +- .../Accordion/Accordion-v2.module.css | 137 - .../Accordion/Accordion-v2.stories.tsx | 412 --- .../Accordion/Accordion-v2.test.tsx | 115 - src/components/Accordion/Accordion-v2.tsx | 305 -- src/components/Accordion/Accordion.module.css | 158 +- .../Accordion/Accordion.stories.tsx | 264 +- src/components/Accordion/Accordion.tsx | 146 +- .../__snapshots__/Accordion-v2.test.tsx.snap | 1437 ---------- .../__snapshots__/Accordion.test.tsx.snap | 1659 ++++------- src/components/Accordion/index.ts | 1 - .../AppNotification.module.css | 2 +- .../AppNotification.stories.tsx | 14 +- .../AppNotification/AppNotification.tsx | 2 +- src/components/Avatar/Avatar.stories.ts | 2 +- src/components/Badge/Badge.stories.tsx | 2 +- .../Badge/__snapshots__/Badge.test.tsx.snap | 4 +- .../Breadcrumbs/Breadcrumbs.stories.tsx | 2 +- src/components/Button/Button-v2.module.css | 422 --- src/components/Button/Button-v2.stories.tsx | 276 -- src/components/Button/Button-v2.test.tsx | 50 - src/components/Button/Button-v2.tsx | 169 -- src/components/Button/Button.module.css | 874 +++--- src/components/Button/Button.stories.tsx | 509 ++-- src/components/Button/Button.tsx | 161 +- .../__snapshots__/Button-v2.test.tsx.snap | 687 ----- .../Button/__snapshots__/Button.test.tsx.snap | 1152 ++++---- src/components/Button/index.ts | 2 - .../ButtonGroup/ButtonGroup-v2.module.css | 32 - .../ButtonGroup/ButtonGroup-v2.stories.tsx | 73 - .../ButtonGroup/ButtonGroup-v2.test.ts | 7 - src/components/ButtonGroup/ButtonGroup-v2.tsx | 49 - .../ButtonGroup/ButtonGroup.module.css | 35 +- .../ButtonGroup/ButtonGroup.stories.tsx | 52 +- src/components/ButtonGroup/ButtonGroup.tsx | 53 +- .../__snapshots__/ButtonGroup-v2.test.ts.snap | 125 - .../__snapshots__/ButtonGroup.test.ts.snap | 185 +- src/components/ButtonGroup/index.ts | 1 - src/components/Card/Card-v2.module.css | 142 - src/components/Card/Card-v2.stories.tsx | 410 --- src/components/Card/Card-v2.test.ts | 8 - src/components/Card/Card-v2.tsx | 273 -- src/components/Card/Card.module.css | 139 +- src/components/Card/Card.stories.tsx | 455 ++- src/components/Card/Card.test.ts | 1 + src/components/Card/Card.tsx | 188 +- .../Card/__snapshots__/Card-v2.test.ts.snap | 1010 ------- .../Card/__snapshots__/Card.test.ts.snap | 897 +++++- src/components/Card/index.ts | 1 - .../Checkbox/Checkbox-v2.module.css | 154 - .../Checkbox/Checkbox-v2.stories.tsx | 81 - src/components/Checkbox/Checkbox-v2.tsx | 158 -- src/components/Checkbox/Checkbox.module.css | 138 +- src/components/Checkbox/Checkbox.stories.tsx | 36 +- ...Checkbox-v2.test.tsx => Checkbox.test.tsx} | 4 +- src/components/Checkbox/Checkbox.tsx | 66 +- ...2.test.tsx.snap => Checkbox.test.tsx.snap} | 0 src/components/Checkbox/index.ts | 1 - .../ClickableStyle/ClickableStyle.module.css | 530 ---- .../ClickableStyle/ClickableStyle.stories.tsx | 186 -- .../ClickableStyle/ClickableStyle.test.ts | 8 - .../ClickableStyle/ClickableStyle.tsx | 139 - .../__snapshots__/ClickableStyle.test.ts.snap | 177 -- src/components/ClickableStyle/index.ts | 3 - .../FieldLabel/FieldLabel.stories.ts | 2 +- .../FieldNote/FieldNote-v2.module.css | 55 - .../FieldNote/FieldNote-v2.stories.tsx | 60 - src/components/FieldNote/FieldNote-v2.tsx | 94 - src/components/FieldNote/FieldNote.module.css | 32 +- .../FieldNote/FieldNote.stories.tsx | 17 +- src/components/FieldNote/FieldNote.test.ts | 6 - src/components/FieldNote/FieldNote.tsx | 58 +- .../__snapshots__/FieldNote.test.ts.snap | 72 - src/components/FieldNote/index.ts | 1 - src/components/Fieldset/Fieldset.stories.tsx | 2 +- .../__snapshots__/Fieldset.test.ts.snap | 70 +- src/components/Heading/Heading.stories.tsx | 2 +- .../HorizontalStepper.stories.tsx | 20 +- .../HorizontalStepper/HorizontalStepper.tsx | 12 +- .../HorizontalStepper.test.tsx.snap | 363 +-- src/components/Hr/Hr.stories.ts | 2 +- src/components/Icon/Icon-v2.module.css | 20 - src/components/Icon/Icon-v2.stories.tsx | 147 - src/components/Icon/Icon-v2.test.ts | 7 - src/components/Icon/Icon-v2.tsx | 141 - src/components/Icon/Icon.module.css | 7 - src/components/Icon/Icon.stories.tsx | 74 +- src/components/Icon/Icon.tsx | 17 +- .../Icon/__snapshots__/Icon-v2.test.ts.snap | 2476 ----------------- .../Icon/__snapshots__/Icon.test.ts.snap | 1048 ++----- src/components/Icon/index.ts | 5 - .../InlineNotification-v2.module.css | 50 - .../InlineNotification-v2.stories.tsx | 67 - .../InlineNotification-v2.test.ts | 7 - .../InlineNotification-v2.tsx | 77 - .../InlineNotification.module.css | 79 +- .../InlineNotification.stories.tsx | 116 +- .../InlineNotification/InlineNotification.tsx | 103 +- .../InlineNotification-v2.test.ts.snap | 241 -- .../InlineNotification.test.ts.snap | 514 +--- src/components/InlineNotification/index.ts | 1 - src/components/Input/Input-v2.module.css | 12 - src/components/Input/Input-v2.tsx | 113 - src/components/Input/Input.module.css | 3 +- src/components/Input/Input.tsx | 17 +- src/components/Input/index.ts | 1 - .../InputField/InputField-v2.module.css | 105 - .../InputField/InputField-v2.stories.tsx | 282 -- .../InputField/InputField-v2.test.tsx | 78 - src/components/InputField/InputField-v2.tsx | 342 --- .../InputField/InputField.module.css | 103 +- .../InputField/InputField.stories.tsx | 115 +- src/components/InputField/InputField.tsx | 138 +- .../__snapshots__/InputField-v2.test.tsx.snap | 812 ------ .../__snapshots__/InputField.test.tsx.snap | 504 +++- src/components/InputField/index.ts | 1 - .../InputLabel/InputLabel.module.css | 29 - .../InputLabel/InputLabel.stories.ts | 56 - src/components/InputLabel/InputLabel.test.ts | 7 - src/components/InputLabel/InputLabel.tsx | 60 - .../__snapshots__/InputLabel.test.ts.snap | 41 - src/components/InputLabel/index.ts | 1 - src/components/Label/Label.stories.tsx | 2 +- src/components/Link/Link-v2.module.css | 114 - src/components/Link/Link-v2.stories.tsx | 212 -- src/components/Link/Link-v2.test.tsx | 66 - src/components/Link/Link-v2.tsx | 105 - src/components/Link/Link.module.css | 527 +--- src/components/Link/Link.stories.tsx | 220 +- src/components/Link/Link.tsx | 120 +- .../Link/__snapshots__/Link-v2.test.tsx.snap | 257 -- .../Link/__snapshots__/Link.test.tsx.snap | 273 +- src/components/Link/index.ts | 2 - .../LoadingIndicator-v2.module.css | 34 - .../LoadingIndicator-v2.stories.ts | 53 - .../LoadingIndicator-v2.test.ts | 6 - .../LoadingIndicator/LoadingIndicator-v2.tsx | 124 - .../LoadingIndicator.module.css | 4 +- .../LoadingIndicator.stories.ts | 10 +- .../LoadingIndicator/LoadingIndicator.tsx | 38 +- .../LoadingIndicator-v2.test.ts.snap | 358 --- .../LoadingIndicator.test.ts.snap | 83 +- src/components/LoadingIndicator/index.ts | 1 - src/components/Menu/Menu-v2.module.css | 36 - src/components/Menu/Menu-v2.stories.tsx | 261 -- src/components/Menu/Menu-v2.test.tsx | 96 - src/components/Menu/Menu-v2.tsx | 233 -- src/components/Menu/Menu.module.css | 24 +- src/components/Menu/Menu.stories.tsx | 24 +- src/components/Menu/Menu.tsx | 41 +- .../Menu/__snapshots__/Menu-v2.test.tsx.snap | 195 -- .../Menu/__snapshots__/Menu.test.tsx.snap | 108 +- src/components/Menu/index.ts | 1 - src/components/Modal/Modal-v2.module.css | 230 -- src/components/Modal/Modal-v2.stories.tsx | 477 ---- src/components/Modal/Modal-v2.test.tsx | 134 - src/components/Modal/Modal-v2.tsx | 446 --- src/components/Modal/Modal.module.css | 236 +- src/components/Modal/Modal.stories.tsx | 501 ++-- src/components/Modal/Modal.test.tsx | 2 +- src/components/Modal/Modal.tsx | 201 +- .../__snapshots__/Modal-v2.test.tsx.snap | 1090 -------- .../Modal/__snapshots__/Modal.test.tsx.snap | 1361 ++++----- src/components/Modal/index.ts | 1 - .../NumberIcon/NumberIcon-v2.module.css | 90 - .../NumberIcon/NumberIcon-v2.stories.tsx | 126 - src/components/NumberIcon/NumberIcon-v2.tsx | 76 - .../NumberIcon/NumberIcon.module.css | 74 +- .../NumberIcon/NumberIcon.stories.tsx | 86 +- src/components/NumberIcon/NumberIcon.test.ts | 7 - src/components/NumberIcon/NumberIcon.tsx | 66 +- .../__snapshots__/NumberIcon.test.ts.snap | 346 --- src/components/NumberIcon/index.ts | 1 - .../PageLevelBanner.module.css | 90 - .../PageLevelBanner.stories.tsx | 103 - .../PageLevelBanner/PageLevelBanner.test.ts | 6 - .../PageLevelBanner/PageLevelBanner.tsx | 156 -- .../PageLevelBanner.test.ts.snap | 460 --- src/components/PageLevelBanner/index.ts | 2 - .../PageNotification.stories.tsx | 4 +- .../PageNotification/PageNotification.test.ts | 2 +- .../PageNotification/PageNotification.tsx | 4 +- .../PageNotification.test.ts.snap | 16 +- src/components/Popover/Popover.stories.tsx | 2 +- .../__snapshots__/Popover.test.tsx.snap | 112 +- .../PopoverContainer-v2.module.css | 27 - .../PopoverContainer-v2.stories.tsx | 43 - .../PopoverContainer/PopoverContainer-v2.tsx | 114 - .../PopoverContainer.module.css | 15 +- .../PopoverContainer.stories.tsx | 35 +- .../PopoverContainer/PopoverContainer.test.ts | 7 - .../PopoverContainer/PopoverContainer.tsx | 3 +- .../PopoverContainer.test.ts.snap | 116 - src/components/PopoverContainer/index.ts | 4 +- .../PopoverListItem-v2.module.css | 66 - .../PopoverListItem/PopoverListItem-v2.tsx | 115 - .../PopoverListItem.module.css | 55 +- ....stories.ts => PopoverListItem.stories.ts} | 4 +- .../PopoverListItem.stories.tsx | 39 - .../PopoverListItem/PopoverListItem.test.ts | 7 - .../PopoverListItem/PopoverListItem.tsx | 78 +- .../PopoverListItem.test.ts.snap | 76 - src/components/PopoverListItem/index.ts | 1 - .../ProgressBar/ProgressBar.stories.tsx | 2 +- src/components/Radio/Radio-v2.module.css | 220 -- src/components/Radio/Radio-v2.stories.tsx | 102 - src/components/Radio/Radio-v2.test.tsx | 41 - src/components/Radio/Radio-v2.tsx | 162 -- src/components/Radio/Radio.module.css | 211 +- src/components/Radio/Radio.stories.tsx | 117 +- src/components/Radio/Radio.tsx | 151 +- .../__snapshots__/Radio-v2.test.tsx.snap | 359 --- .../Radio/__snapshots__/Radio.test.tsx.snap | 586 ++-- src/components/Radio/index.ts | 1 - .../SearchBar/SearchBar.stories.tsx | 2 +- src/components/SearchBar/SearchBar.tsx | 9 +- .../__snapshots__/SearchBar.test.ts.snap | 41 +- src/components/Section/Section.stories.tsx | 89 - src/components/Section/Section.test.ts | 6 - .../__snapshots__/Section.test.ts.snap | 320 --- src/components/Select/Select-v2.module.css | 172 -- src/components/Select/Select-v2.stories.tsx | 905 ------ src/components/Select/Select-v2.test.tsx | 286 -- src/components/Select/Select-v2.tsx | 537 ---- src/components/Select/Select.module.css | 150 +- src/components/Select/Select.stories.tsx | 205 +- src/components/Select/Select.test.tsx | 1 + src/components/Select/Select.tsx | 206 +- .../__snapshots__/Select-v2.test.tsx.snap | 766 ----- .../Select/__snapshots__/Select.test.tsx.snap | 393 ++- src/components/Select/index.ts | 1 - src/components/Skeleton/Skeleton.stories.tsx | 2 +- src/components/Slider/Slider.stories.tsx | 56 +- .../Slider/__snapshots__/Slider.test.tsx.snap | 19 +- src/components/TabGroup/TabGroup.stories.tsx | 2 +- src/components/TabGroup/TabGroup.tsx | 2 +- src/components/Table/Table.module.css | 7 + src/components/Table/Table.stories.tsx | 3 +- src/components/Table/Table.tsx | 46 +- .../Table/__snapshots__/Table.test.ts.snap | 136 +- src/components/Tabs/Tabs.module.css | 137 - src/components/Tabs/Tabs.stories.tsx | 521 ---- src/components/Tabs/Tabs.test.tsx | 64 - src/components/Tabs/Tabs.tsx | 363 --- .../Tabs/__snapshots__/Tabs.test.tsx.snap | 665 ----- src/components/Tabs/index.ts | 1 - src/components/Tag/Tag.stories.tsx | 4 +- .../Tag/__snapshots__/Tag.test.ts.snap | 20 +- src/components/Text/Text.stories.tsx | 2 +- .../TextareaField/TextareaField-v2.module.css | 62 - .../TextareaField-v2.stories.tsx | 186 -- .../TextareaField/TextareaField-v2.test.tsx | 103 - .../TextareaField/TextareaField-v2.tsx | 298 -- .../TextareaField/TextareaField.module.css | 32 +- .../TextareaField/TextareaField.stories.tsx | 57 +- .../TextareaField/TextareaField.tsx | 96 +- .../TextareaField-v2.test.tsx.snap | 730 ----- .../__snapshots__/TextareaField.test.tsx.snap | 921 +++--- src/components/TextareaField/index.ts | 1 - src/components/Toast/Toast.module.css | 71 - src/components/Toast/Toast.stories.ts | 40 - src/components/Toast/Toast.test.ts | 7 - src/components/Toast/Toast.tsx | 70 - .../Toast/__snapshots__/Toast.test.ts.snap | 100 - src/components/Toast/index.ts | 1 - .../ToastNotification.stories.ts | 2 +- .../ToastNotification.test.tsx | 2 +- .../ToastNotification/ToastNotification.tsx | 4 +- .../ToastNotification.test.tsx.snap | 8 +- src/components/Toggle/Toggle.stories.tsx | 3 +- src/components/Tooltip/Tooltip-v2.module.css | 117 - src/components/Tooltip/Tooltip-v2.stories.tsx | 148 - src/components/Tooltip/Tooltip-v2.test.tsx | 42 - src/components/Tooltip/Tooltip-v2.tsx | 185 -- src/components/Tooltip/Tooltip.module.css | 28 +- src/components/Tooltip/Tooltip.stories.tsx | 65 +- src/components/Tooltip/Tooltip.test.tsx | 1 + src/components/Tooltip/Tooltip.tsx | 61 +- .../__snapshots__/Tooltip-v2.test.tsx.snap | 356 --- .../__snapshots__/Tooltip.test.tsx.snap | 154 +- src/components/Tooltip/index.ts | 1 - src/design-tokens/mixins.css | 1 - src/design-tokens/primitives.json | 113 +- src/design-tokens/themes.json | 292 +- src/icons/spritemap-v2.tsx | 15 - src/icons/spritemap.tsx | 1 - src/index.ts | 81 +- src/tokens-dist/css/variables.css | 255 +- src/tokens-dist/json/variables-nested.json | 5 +- src/tokens-dist/ts/colors.ts | 196 +- tailwind.config.ts | 2 +- 308 files changed, 10404 insertions(+), 38660 deletions(-) delete mode 100755 .storybook/components/DesignTokens/Tier1/Layout.jsx delete mode 100755 .storybook/components/DesignTokens/Tier3/Colors.stories.tsx delete mode 100755 .storybook/components/DesignTokens/Tier3/TypographyComponents.stories.tsx delete mode 100644 .storybook/pages/WireframeDemo/GlobalStyles.module.css delete mode 100644 .storybook/pages/WireframeDemo/WireframeDemo.module.css delete mode 100644 .storybook/pages/WireframeDemo/WireframeDemo.stories.ts delete mode 100644 .storybook/pages/WireframeDemo/WireframeDemo.tsx delete mode 100644 .storybook/pages/WireframeDemo/fonts/BalsamiqSans-Regular.woff2 delete mode 100644 .storybook/pages/WireframeDemo/fonts/RedactedScript-Regular.woff2 delete mode 100644 .storybook/pages/WireframeDemo/index.ts delete mode 100644 src/components/Accordion/Accordion-v2.module.css delete mode 100644 src/components/Accordion/Accordion-v2.stories.tsx delete mode 100644 src/components/Accordion/Accordion-v2.test.tsx delete mode 100644 src/components/Accordion/Accordion-v2.tsx delete mode 100644 src/components/Accordion/__snapshots__/Accordion-v2.test.tsx.snap delete mode 100644 src/components/Button/Button-v2.module.css delete mode 100644 src/components/Button/Button-v2.stories.tsx delete mode 100644 src/components/Button/Button-v2.test.tsx delete mode 100644 src/components/Button/Button-v2.tsx delete mode 100644 src/components/Button/__snapshots__/Button-v2.test.tsx.snap delete mode 100644 src/components/ButtonGroup/ButtonGroup-v2.module.css delete mode 100644 src/components/ButtonGroup/ButtonGroup-v2.stories.tsx delete mode 100644 src/components/ButtonGroup/ButtonGroup-v2.test.ts delete mode 100644 src/components/ButtonGroup/ButtonGroup-v2.tsx delete mode 100644 src/components/ButtonGroup/__snapshots__/ButtonGroup-v2.test.ts.snap delete mode 100755 src/components/Card/Card-v2.module.css delete mode 100644 src/components/Card/Card-v2.stories.tsx delete mode 100644 src/components/Card/Card-v2.test.ts delete mode 100644 src/components/Card/Card-v2.tsx delete mode 100644 src/components/Card/__snapshots__/Card-v2.test.ts.snap delete mode 100644 src/components/Checkbox/Checkbox-v2.module.css delete mode 100644 src/components/Checkbox/Checkbox-v2.stories.tsx delete mode 100644 src/components/Checkbox/Checkbox-v2.tsx rename src/components/Checkbox/{Checkbox-v2.test.tsx => Checkbox.test.tsx} (91%) rename src/components/Checkbox/__snapshots__/{Checkbox-v2.test.tsx.snap => Checkbox.test.tsx.snap} (100%) delete mode 100644 src/components/ClickableStyle/ClickableStyle.module.css delete mode 100644 src/components/ClickableStyle/ClickableStyle.stories.tsx delete mode 100644 src/components/ClickableStyle/ClickableStyle.test.ts delete mode 100644 src/components/ClickableStyle/ClickableStyle.tsx delete mode 100644 src/components/ClickableStyle/__snapshots__/ClickableStyle.test.ts.snap delete mode 100644 src/components/ClickableStyle/index.ts delete mode 100755 src/components/FieldNote/FieldNote-v2.module.css delete mode 100644 src/components/FieldNote/FieldNote-v2.stories.tsx delete mode 100644 src/components/FieldNote/FieldNote-v2.tsx delete mode 100644 src/components/FieldNote/FieldNote.test.ts delete mode 100644 src/components/FieldNote/__snapshots__/FieldNote.test.ts.snap delete mode 100755 src/components/Icon/Icon-v2.module.css delete mode 100644 src/components/Icon/Icon-v2.stories.tsx delete mode 100644 src/components/Icon/Icon-v2.test.ts delete mode 100644 src/components/Icon/Icon-v2.tsx delete mode 100644 src/components/Icon/__snapshots__/Icon-v2.test.ts.snap delete mode 100644 src/components/InlineNotification/InlineNotification-v2.module.css delete mode 100644 src/components/InlineNotification/InlineNotification-v2.stories.tsx delete mode 100644 src/components/InlineNotification/InlineNotification-v2.test.ts delete mode 100644 src/components/InlineNotification/InlineNotification-v2.tsx delete mode 100644 src/components/InlineNotification/__snapshots__/InlineNotification-v2.test.ts.snap delete mode 100644 src/components/Input/Input-v2.module.css delete mode 100644 src/components/Input/Input-v2.tsx delete mode 100644 src/components/InputField/InputField-v2.module.css delete mode 100644 src/components/InputField/InputField-v2.stories.tsx delete mode 100644 src/components/InputField/InputField-v2.test.tsx delete mode 100644 src/components/InputField/InputField-v2.tsx delete mode 100644 src/components/InputField/__snapshots__/InputField-v2.test.tsx.snap delete mode 100644 src/components/InputLabel/InputLabel.module.css delete mode 100644 src/components/InputLabel/InputLabel.stories.ts delete mode 100644 src/components/InputLabel/InputLabel.test.ts delete mode 100644 src/components/InputLabel/InputLabel.tsx delete mode 100644 src/components/InputLabel/__snapshots__/InputLabel.test.ts.snap delete mode 100644 src/components/InputLabel/index.ts delete mode 100644 src/components/Link/Link-v2.module.css delete mode 100644 src/components/Link/Link-v2.stories.tsx delete mode 100644 src/components/Link/Link-v2.test.tsx delete mode 100644 src/components/Link/Link-v2.tsx delete mode 100644 src/components/Link/__snapshots__/Link-v2.test.tsx.snap delete mode 100644 src/components/LoadingIndicator/LoadingIndicator-v2.module.css delete mode 100644 src/components/LoadingIndicator/LoadingIndicator-v2.stories.ts delete mode 100644 src/components/LoadingIndicator/LoadingIndicator-v2.test.ts delete mode 100644 src/components/LoadingIndicator/LoadingIndicator-v2.tsx delete mode 100644 src/components/LoadingIndicator/__snapshots__/LoadingIndicator-v2.test.ts.snap delete mode 100644 src/components/Menu/Menu-v2.module.css delete mode 100644 src/components/Menu/Menu-v2.stories.tsx delete mode 100644 src/components/Menu/Menu-v2.test.tsx delete mode 100644 src/components/Menu/Menu-v2.tsx delete mode 100644 src/components/Menu/__snapshots__/Menu-v2.test.tsx.snap delete mode 100755 src/components/Modal/Modal-v2.module.css delete mode 100644 src/components/Modal/Modal-v2.stories.tsx delete mode 100644 src/components/Modal/Modal-v2.test.tsx delete mode 100644 src/components/Modal/Modal-v2.tsx delete mode 100644 src/components/Modal/__snapshots__/Modal-v2.test.tsx.snap delete mode 100644 src/components/NumberIcon/NumberIcon-v2.module.css delete mode 100644 src/components/NumberIcon/NumberIcon-v2.stories.tsx delete mode 100644 src/components/NumberIcon/NumberIcon-v2.tsx delete mode 100644 src/components/NumberIcon/NumberIcon.test.ts delete mode 100644 src/components/NumberIcon/__snapshots__/NumberIcon.test.ts.snap delete mode 100644 src/components/PageLevelBanner/PageLevelBanner.module.css delete mode 100644 src/components/PageLevelBanner/PageLevelBanner.stories.tsx delete mode 100644 src/components/PageLevelBanner/PageLevelBanner.test.ts delete mode 100644 src/components/PageLevelBanner/PageLevelBanner.tsx delete mode 100644 src/components/PageLevelBanner/__snapshots__/PageLevelBanner.test.ts.snap delete mode 100644 src/components/PageLevelBanner/index.ts delete mode 100644 src/components/PopoverContainer/PopoverContainer-v2.module.css delete mode 100644 src/components/PopoverContainer/PopoverContainer-v2.stories.tsx delete mode 100644 src/components/PopoverContainer/PopoverContainer-v2.tsx delete mode 100644 src/components/PopoverContainer/PopoverContainer.test.ts delete mode 100644 src/components/PopoverContainer/__snapshots__/PopoverContainer.test.ts.snap delete mode 100644 src/components/PopoverListItem/PopoverListItem-v2.module.css delete mode 100644 src/components/PopoverListItem/PopoverListItem-v2.tsx rename src/components/PopoverListItem/{PopoverListItem-v2.stories.ts => PopoverListItem.stories.ts} (91%) delete mode 100644 src/components/PopoverListItem/PopoverListItem.stories.tsx delete mode 100644 src/components/PopoverListItem/PopoverListItem.test.ts delete mode 100644 src/components/PopoverListItem/__snapshots__/PopoverListItem.test.ts.snap delete mode 100755 src/components/Radio/Radio-v2.module.css delete mode 100644 src/components/Radio/Radio-v2.stories.tsx delete mode 100644 src/components/Radio/Radio-v2.test.tsx delete mode 100644 src/components/Radio/Radio-v2.tsx delete mode 100644 src/components/Radio/__snapshots__/Radio-v2.test.tsx.snap delete mode 100644 src/components/Section/Section.stories.tsx delete mode 100644 src/components/Section/Section.test.ts delete mode 100644 src/components/Section/__snapshots__/Section.test.ts.snap delete mode 100644 src/components/Select/Select-v2.module.css delete mode 100644 src/components/Select/Select-v2.stories.tsx delete mode 100644 src/components/Select/Select-v2.test.tsx delete mode 100644 src/components/Select/Select-v2.tsx delete mode 100644 src/components/Select/__snapshots__/Select-v2.test.tsx.snap delete mode 100644 src/components/Tabs/Tabs.module.css delete mode 100644 src/components/Tabs/Tabs.stories.tsx delete mode 100644 src/components/Tabs/Tabs.test.tsx delete mode 100644 src/components/Tabs/Tabs.tsx delete mode 100644 src/components/Tabs/__snapshots__/Tabs.test.tsx.snap delete mode 100644 src/components/Tabs/index.ts delete mode 100644 src/components/TextareaField/TextareaField-v2.module.css delete mode 100644 src/components/TextareaField/TextareaField-v2.stories.tsx delete mode 100644 src/components/TextareaField/TextareaField-v2.test.tsx delete mode 100644 src/components/TextareaField/TextareaField-v2.tsx delete mode 100644 src/components/TextareaField/__snapshots__/TextareaField-v2.test.tsx.snap delete mode 100644 src/components/Toast/Toast.module.css delete mode 100644 src/components/Toast/Toast.stories.ts delete mode 100644 src/components/Toast/Toast.test.ts delete mode 100644 src/components/Toast/Toast.tsx delete mode 100644 src/components/Toast/__snapshots__/Toast.test.ts.snap delete mode 100644 src/components/Toast/index.ts delete mode 100644 src/components/Tooltip/Tooltip-v2.module.css delete mode 100644 src/components/Tooltip/Tooltip-v2.stories.tsx delete mode 100644 src/components/Tooltip/Tooltip-v2.test.tsx delete mode 100644 src/components/Tooltip/Tooltip-v2.tsx delete mode 100644 src/components/Tooltip/__snapshots__/Tooltip-v2.test.tsx.snap diff --git a/.storybook/components/DesignTokens/Tier1/Borders.jsx b/.storybook/components/DesignTokens/Tier1/Borders.jsx index a3f17f8cc..dd283e373 100755 --- a/.storybook/components/DesignTokens/Tier1/Borders.jsx +++ b/.storybook/components/DesignTokens/Tier1/Borders.jsx @@ -6,6 +6,7 @@ import { TokenSpecimen } from '../../TokenSpecimen/TokenSpecimen'; export class Tier1Borders extends Component { render() { + // TODO: what are the width tokens to document? return (
diff --git a/.storybook/components/DesignTokens/Tier1/Colors.tsx b/.storybook/components/DesignTokens/Tier1/Colors.tsx index 551e4f0b9..eaed870e2 100755 --- a/.storybook/components/DesignTokens/Tier1/Colors.tsx +++ b/.storybook/components/DesignTokens/Tier1/Colors.tsx @@ -12,31 +12,59 @@ export const Tier1Colors = () => { figmaToken: figmaTokenHeader + '/' + name.slice(name.lastIndexOf('-') + 1), })); + + // filter down to the neutral tokens which were introduced or redefined in the new brand + const nonLegacyNeutralItems = getListItems( + 'eds-color-neutral', + 'neutral', + ).filter((item) => { + // TODO: remove this filter once the deprecated neutral tokens are deleted + return [ + '025', + '050', + '100', + '150', + '200', + '250', + '350', + '450', + '550', + '650', + '750', + '800', + '850', + '900', + '950', + ].includes(item.figmaToken.split('/')[1]); + }); return (
-
+
+
+
+
+
+
+
+
+
+
+
+ +
+
-
- -
-
- -
-
- - - - +
+
); diff --git a/.storybook/components/DesignTokens/Tier1/Layout.jsx b/.storybook/components/DesignTokens/Tier1/Layout.jsx deleted file mode 100755 index f9aeb8377..000000000 --- a/.storybook/components/DesignTokens/Tier1/Layout.jsx +++ /dev/null @@ -1,33 +0,0 @@ -import React, { Component } from 'react'; -import Grid from '../../../../src/components/Grid'; -import Section from '../../../../src/components/Section'; -import filterTokens from '../../../util/filterTokens'; -import { TokenSpecimen } from '../../TokenSpecimen/TokenSpecimen'; - -export class Tier1Layout extends Component { - render() { - return ( -
-
- - {filterTokens(`eds-l-`).map(function (listItem) { - return ( - - - - ); - })} - -
-
- ); - } -} diff --git a/.storybook/components/DesignTokens/Tier1/Sizes.jsx b/.storybook/components/DesignTokens/Tier1/Sizes.jsx index 00779da65..e4a2c58f7 100755 --- a/.storybook/components/DesignTokens/Tier1/Sizes.jsx +++ b/.storybook/components/DesignTokens/Tier1/Sizes.jsx @@ -7,49 +7,35 @@ import { TokenSpecimen } from '../../TokenSpecimen/TokenSpecimen'; export class Tier1Sizes extends Component { render() { return ( -
-
- - {filterTokens('eds-size-base').map((listItem) => ( - - - - ))} - -
-
- - {filterTokens(`eds-size`) - .filter((listItem) => !listItem.name.endsWith('base-unit')) - .map(function (listItem) { - return ( - - - - ); - })} - -
-
+
+ + {filterTokens(`eds-size`) + .filter((listItem) => !listItem.name.endsWith('base-unit')) + .map(function (listItem) { + return ( + + + + ); + })} + +
); } } diff --git a/.storybook/components/DesignTokens/Tier1/Tier1Tokens.stories.jsx b/.storybook/components/DesignTokens/Tier1/Tier1Tokens.stories.jsx index b62c75efe..c61ee8454 100755 --- a/.storybook/components/DesignTokens/Tier1/Tier1Tokens.stories.jsx +++ b/.storybook/components/DesignTokens/Tier1/Tier1Tokens.stories.jsx @@ -2,7 +2,6 @@ import React from 'react'; import { Tier1Animation } from './Animation'; import { Tier1Borders } from './Borders'; import { Tier1Colors } from './Colors'; -import { Tier1Layout } from './Layout'; import { Tier1Shadows } from './Shadows'; import { Tier1Sizes } from './Sizes'; @@ -22,6 +21,8 @@ export default { }, }; +// TODO: Tokens to document: eds-color-opacity + export const Colors = { render: () => , }; @@ -38,10 +39,6 @@ export const Sizes = { render: () => , }; -export const Layout = { - render: () => , -}; - export const Shadows = { render: () => , }; diff --git a/.storybook/components/DesignTokens/Tier2/Borders.stories.tsx b/.storybook/components/DesignTokens/Tier2/Borders.stories.tsx index 4d888b0e4..4a1e0fb3a 100755 --- a/.storybook/components/DesignTokens/Tier2/Borders.stories.tsx +++ b/.storybook/components/DesignTokens/Tier2/Borders.stories.tsx @@ -15,20 +15,21 @@ export default { }, }; -export const Borders: StoryObj = { +export const BorderRadii: StoryObj = { render: () => (
-
+
- {filterTokens(`eds-theme-border-width`).map(function (listItem) { + {filterTokens(`eds-theme-border-radius`).map(function (listItem) { return ( (
-
+
@@ -51,15 +54,34 @@ export const Text: StoryObj = { ), }; -export const Icon: StoryObj = { +export const IconUtility: StoryObj = { render: () => (
-
+
+
+
+ ), +}; + +export const BackgroundUtility: StoryObj = { + render: () => ( +
+
+
@@ -67,15 +89,34 @@ export const Icon: StoryObj = { ), }; -export const Background: StoryObj = { +export const BackgroundBrand: StoryObj = { render: () => (
-
+
{ + // remove legacy primary tokens + return item.name.indexOf('primary') === -1; + })} + /> +
+
+ ), +}; + +export const BorderUtility: StoryObj = { + render: () => ( +
+
+
@@ -83,15 +124,18 @@ export const Background: StoryObj = { ), }; -export const Border: StoryObj = { +export const BorderBrand: StoryObj = { render: () => (
-
+
{ + // remove legacy primary tokens + return item.name.indexOf('primary') === -1; })} />
diff --git a/.storybook/components/DesignTokens/Tier3/Colors.stories.tsx b/.storybook/components/DesignTokens/Tier3/Colors.stories.tsx deleted file mode 100755 index 186ef24fa..000000000 --- a/.storybook/components/DesignTokens/Tier3/Colors.stories.tsx +++ /dev/null @@ -1,203 +0,0 @@ -import type { StoryObj } from '@storybook/react'; -import React from 'react'; -import Section from '../../../../src/components/Section'; -import filterTokens from '../../../util/filterTokens'; -import { ColorList } from '../../ColorList/ColorList'; - -export default { - title: 'Design Tokens/Tier 3: Component/Colors', - parameters: { - axe: { - // For documentation purposes only - skip: true, - }, - }, -}; - -const getListItems = ({ - filterTerm, - figmaTokenHeader, - tailwindClassHeader, - getTailwindClassPrefix = (stringMatch: string) => { - if (stringMatch.includes('background')) { - return 'bg'; - } else if (stringMatch.includes('border')) { - return 'border'; - } else { - return 'text'; - } - }, -}: { - filterTerm: string; - figmaTokenHeader: string; - tailwindClassHeader: string; - getTailwindClassPrefix?: (stringMatch: string) => string; -}) => - filterTokens(filterTerm).map(({ name, value }) => { - const specifier = name.slice( - name.indexOf(filterTerm) + filterTerm.length + 1, - ); - return { - name, - value, - figmaToken: figmaTokenHeader + '/' + specifier, - tailwindClass: - getTailwindClassPrefix(specifier) + - '-' + - tailwindClassHeader + - '-' + - specifier, - }; - }); - -export const Button: StoryObj = { - // story is too large to be snapped - // TODO: when button colors are more in sync with mocks, should be less colors so might fit then - parameters: { - chromatic: { - disableSnapshot: true, - }, - }, - render: () => ( -
-
- -
-
- ), -}; - -export const Checkbox: StoryObj = { - render: () => ( -
-
- -
-
- ), -}; - -export const DataBar: StoryObj = { - render: () => ( -
-
- -
-
- ), -}; - -export const Form: StoryObj = { - render: () => ( -
-
- -
-
- ), -}; - -export const Link: StoryObj = { - render: () => ( -
-
- -
-
- ), -}; - -export const Modal: StoryObj = { - render: () => ( -
-
- -
-
- ), -}; - -export const ProgressBar: StoryObj = { - render: () => ( -
-
- -
-
- ), -}; - -export const Toggle: StoryObj = { - render: () => ( -
-
- -
-
- ), -}; - -export const FocusRing: StoryObj = { - render: () => ( -
-
- '(outline/border)', - })} - /> -
-
- ), -}; diff --git a/.storybook/components/DesignTokens/Tier3/TypographyComponents.stories.tsx b/.storybook/components/DesignTokens/Tier3/TypographyComponents.stories.tsx deleted file mode 100755 index 42daeee6d..000000000 --- a/.storybook/components/DesignTokens/Tier3/TypographyComponents.stories.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import type { StoryObj } from '@storybook/react'; -import { at, capitalize, forEach, merge } from 'lodash'; - -import React from 'react'; -import Grid from '../../../../src/components/Grid'; -import Section from '../../../../src/components/Section'; -import breadcrumb from '../../../../src/design-tokens/tier-3-component/breadcrumb-typography.json'; -import button from '../../../../src/design-tokens/tier-3-component/buttons-typography.json'; -import form from '../../../../src/design-tokens/tier-3-component/forms-typography.json'; -import link from '../../../../src/design-tokens/tier-3-component/link-typography.json'; -import tab from '../../../../src/design-tokens/tier-3-component/tab-typography.json'; -import tag from '../../../../src/design-tokens/tier-3-component/tag-typography.json'; - -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-ignore importing of a legacy utility file results in some 'any's, which is acceptable for this docs page -import flatten from '../../../util/flattenToken'; -import { TokenSpecimen } from '../../TokenSpecimen/TokenSpecimen'; - -export default { - title: 'Design Tokens/Tier 3: Component', - parameters: { - axe: { - // For documentation purposes only - skip: true, - }, - }, -}; - -export const Typography: StoryObj = { - render: () => { - const values: { - [key: string]: { - [key: string]: string; - }; - } = {}; - const componentTypography = merge(breadcrumb, button, form, link, tab, tag); - forEach(at(componentTypography, 'eds.theme.typography')[0], (_, key) => { - values[key] = flatten( - at(componentTypography, `eds.theme.typography.${key}`)[0], - `eds-theme-typography-${key}-`, - ); - }); - - // Flatten all the tier 3 tokens, group them by component, and print specimens for the results - return ( -
- {Object.keys(values).map((section) => { - return ( -
- - {Object.keys(values[section]).map((usage) => { - return ( - - ); - })} - -
- ); - })} -
- ); - }, -}; diff --git a/.storybook/data/tokens.json b/.storybook/data/tokens.json index b17c491aa..0d9e84a52 100644 --- a/.storybook/data/tokens.json +++ b/.storybook/data/tokens.json @@ -799,7 +799,10 @@ "eds-size-10": "80", "eds-size-11": "88", "eds-size-12": "96", - "eds-size-20": "320", + "eds-size-20": "160", + "eds-size-24": "192", + "eds-size-32": "256", + "eds-size-40": "320", "eds-size-base-unit": "8", "eds-size-half": "4", "eds-size-quarter": "2", diff --git a/.storybook/pages/WireframeDemo/GlobalStyles.module.css b/.storybook/pages/WireframeDemo/GlobalStyles.module.css deleted file mode 100644 index 6ce617358..000000000 --- a/.storybook/pages/WireframeDemo/GlobalStyles.module.css +++ /dev/null @@ -1,277 +0,0 @@ -@import '../../../src/design-tokens/mixins.css'; - -/*------------------------------------*\ - # GLOBAL STYLES FOR WIREFRAME DEMO -\*------------------------------------*/ - -@font-face { - font-family: 'Balsamiq Sans'; - font-weight: 400; - font-style: normal; - src: url('./fonts/BalsamiqSans-Regular.woff2') format('woff2'); -} - -@font-face { - font-family: 'Redacted Script'; - font-weight: 400; - font-style: normal; - src: url('./fonts/RedactedScript-Regular.woff2') format('woff2'); -} - -/** - * Global styles for WireframeDemo - * - * This just contains the variable overrides to demonstrate the current implementation method. - */ -.root { - /* Level 1 wireframe theme tokens */ - --wireframe-anim-duration: 0; - --wireframe-font-family-primary: 'Balsamiq Sans', sans-serif; - --wireframe-font-family-secondary: 'Redacted Script', sans-serif; - --wireframe-white: #ffffff; - --wireframe-black: #000000; - --wireframe-gray-a: #f4f6f8; - --wireframe-gray-b: #c0c4c8; - --wireframe-gray-c: #5d6369; - --wireframe-gray-d: #383c43; - --wireframe-gray-e: #161b1f; - - /* Override EDS tokens to apply wireframe theme */ - --eds-anim-fade-long: var(--wireframe-anim-duration); - --eds-anim-fade-quick: var(--wireframe-anim-duration); - --eds-anim-move-long: var(--wireframe-anim-duration); - --eds-anim-move-medium: var(--wireframe-anim-duration); - --eds-anim-move-quick: var(--wireframe-anim-duration); - --eds-font-family-primary: var(--wireframe-font-family-primary); - --eds-font-family-secondary: var(--wireframe-font-family-secondary); - --eds-theme-color-background-brand-primary-default: var(--wireframe-white); - --eds-theme-color-background-brand-primary-strong-hover: var(--wireframe-gray-e); - --eds-theme-color-background-brand-primary-strong: var(--wireframe-gray-b); - --eds-theme-color-background-disabled: var(--wireframe-gray-b); - --eds-theme-color-background-grade-complete-default: var(--wireframe-gray-c); - --eds-theme-color-background-grade-complete-subtle: var(--wireframe-gray-a); - --eds-theme-color-background-grade-revise-default: var(--wireframe-gray-b); - --eds-theme-color-background-grade-revise-subtle: var(--wireframe-gray-a); - --eds-theme-color-background-grade-stop-default: var(--wireframe-gray-c); - --eds-theme-color-background-grade-stop-subtle: var(--wireframe-gray-a); - --eds-theme-color-background-neutral-default-hover: var(--wireframe-gray-a); - --eds-theme-color-background-neutral-default: var(--wireframe-white); - --eds-theme-color-background-neutral-medium-hover: var(--wireframe-gray-b); - --eds-theme-color-background-neutral-medium: var(--wireframe-gray-a); - --eds-theme-color-background-neutral-subtle-hover: var(--wireframe-gray-a); - --eds-theme-color-background-neutral-subtle: var(--wireframe-gray-a); - --eds-theme-color-background-utility-error: var(--wireframe-gray-a); - --eds-theme-color-background-utility-success: var(--wireframe-gray-a); - --eds-theme-color-background-utility-warning: var(--wireframe-gray-a); - --eds-theme-color-body-background-inverted: var(--wireframe-gray-d); - --eds-theme-color-body-background: var(--wireframe-gray-a); - --eds-theme-color-border-brand-primary-strong: var(--wireframe-gray-c); - --eds-theme-color-border-brand-primary-subtle: var(--wireframe-gray-a); - --eds-theme-color-border-brand-primary-default: var(--wireframe-gray-b); - --eds-theme-color-border-disabled: var(--wireframe-gray-b); - --eds-theme-color-border-grade-complete: var(--wireframe-gray-b); - --eds-theme-color-border-grade-revise-default: var(--wireframe-gray-b); - --eds-theme-color-border-grade-revise-strong: var(--wireframe-gray-b); - --eds-theme-color-border-grade-revise-subtle: var(--wireframe-gray-a); - --eds-theme-color-border-grade-stop: var(--wireframe-gray-b); - --eds-theme-color-border-neutral-default-hover: var(--wireframe-gray-b); - --eds-theme-color-border-neutral-default: var(--wireframe-gray-b); - --eds-theme-color-border-neutral-strong-hover: var(--wireframe-gray-c); - --eds-theme-color-border-neutral-strong: var(--wireframe-gray-b); - --eds-theme-color-border-neutral-subtle-hover: var(--wireframe-gray-b); - --eds-theme-color-border-neutral-subtle: var(--wireframe-gray-a); - --eds-theme-color-border-utility-error-default: var(--wireframe-gray-b); - --eds-theme-color-border-utility-error-strong: var(--wireframe-gray-b); - --eds-theme-color-border-utility-error-subtle: var(--wireframe-gray-a); - --eds-theme-color-border-utility-success-default: var(--wireframe-gray-b); - --eds-theme-color-border-utility-success-strong: var(--wireframe-gray-b); - --eds-theme-color-border-utility-success-subtle: var(--wireframe-gray-a); - --eds-theme-color-border-utility-warning-default: var(--wireframe-gray-b); - --eds-theme-color-border-utility-warning-strong: var(--wireframe-gray-b); - --eds-theme-color-border-utility-warning-subtle: var(--wireframe-gray-a); - --eds-theme-color-button-icon-brand-active: var(--wireframe-white); - --eds-theme-color-button-icon-brand-background-active: var(--wireframe-gray-d); - --eds-theme-color-button-icon-brand-background-hover: var(--wireframe-gray-a); - --eds-theme-color-button-icon-brand-background: transparent; - --eds-theme-color-button-icon-brand-border-active: var(--wireframe-gray-d); - --eds-theme-color-button-icon-brand-border-hover: var(--wireframe-gray-a); - --eds-theme-color-button-icon-brand-border: transparent; - --eds-theme-color-button-icon-brand-hover: var(--wireframe-gray-c); - --eds-theme-color-button-icon-brand-text-active: var(--wireframe-white); - --eds-theme-color-button-icon-brand-text-hover: var(--wireframe-gray-d); - --eds-theme-color-button-icon-brand-text: var(--wireframe-gray-d); - --eds-theme-color-button-icon-brand: var(--wireframe-gray-c); - --eds-theme-color-button-icon-error-active: var(--wireframe-white); - --eds-theme-color-button-icon-error-background-active: var(--wireframe-gray-d); - --eds-theme-color-button-icon-error-background-hover: var(--wireframe-gray-a); - --eds-theme-color-button-icon-error-background: transparent; - --eds-theme-color-button-icon-error-border-active: var(--wireframe-gray-d); - --eds-theme-color-button-icon-error-border-hover: var(--wireframe-gray-a); - --eds-theme-color-button-icon-error-border: transparent; - --eds-theme-color-button-icon-error-hover: var(--wireframe-gray-c); - --eds-theme-color-button-icon-error-text-active: var(--wireframe-white); - --eds-theme-color-button-icon-error-text-hover: var(--wireframe-gray-d); - --eds-theme-color-button-icon-error-text: var(--wireframe-gray-d); - --eds-theme-color-button-icon-error: var(--wireframe-gray-c); - --eds-theme-color-button-icon-neutral-active: var(--wireframe-white); - --eds-theme-color-button-icon-neutral-background-active: var(--wireframe-gray-d); - --eds-theme-color-button-icon-neutral-background-hover: var(--wireframe-gray-a); - --eds-theme-color-button-icon-neutral-background: transparent; - --eds-theme-color-button-icon-neutral-border-active: var(--wireframe-gray-d); - --eds-theme-color-button-icon-neutral-border-hover: var(--wireframe-gray-a); - --eds-theme-color-button-icon-neutral-border: transparent; - --eds-theme-color-button-icon-neutral-hover: var(--wireframe-gray-c); - --eds-theme-color-button-icon-neutral-text-active: var(--wireframe-white); - --eds-theme-color-button-icon-neutral-text-hover: var(--wireframe-gray-d); - --eds-theme-color-button-icon-neutral-text: var(--wireframe-gray-d); - --eds-theme-color-button-icon-neutral: var(--wireframe-gray-c); - --eds-theme-color-button-icon-success-active: var(--wireframe-white); - --eds-theme-color-button-icon-success-background-active: var(--wireframe-gray-d); - --eds-theme-color-button-icon-success-background-hover: var(--wireframe-gray-a); - --eds-theme-color-button-icon-success-background: transparent; - --eds-theme-color-button-icon-success-border-active: var(--wireframe-gray-d); - --eds-theme-color-button-icon-success-border-hover: var(--wireframe-gray-a); - --eds-theme-color-button-icon-success-border: transparent; - --eds-theme-color-button-icon-success-hover: var(--wireframe-gray-c); - --eds-theme-color-button-icon-success-text-active: var(--wireframe-white); - --eds-theme-color-button-icon-success-text-hover: var(--wireframe-gray-d); - --eds-theme-color-button-icon-success-text: var(--wireframe-gray-d); - --eds-theme-color-button-icon-success: var(--wireframe-gray-c); - --eds-theme-color-button-icon-warning-active: var(--wireframe-white); - --eds-theme-color-button-icon-warning-background-active: var(--wireframe-gray-d); - --eds-theme-color-button-icon-warning-background-hover: var(--wireframe-gray-a); - --eds-theme-color-button-icon-warning-background: transparent; - --eds-theme-color-button-icon-warning-border-active: var(--wireframe-gray-d); - --eds-theme-color-button-icon-warning-border-hover: var(--wireframe-gray-a); - --eds-theme-color-button-icon-warning-border: transparent; - --eds-theme-color-button-icon-warning-hover: var(--wireframe-gray-c); - --eds-theme-color-button-icon-warning-text-active: var(--wireframe-white); - --eds-theme-color-button-icon-warning-text-hover: var(--wireframe-gray-d); - --eds-theme-color-button-icon-warning-text: var(--wireframe-gray-d); - --eds-theme-color-button-icon-warning: var(--wireframe-gray-c); - --eds-theme-color-button-primary-brand-background-active: var(--wireframe-gray-e); - --eds-theme-color-button-primary-brand-background-hover: var(--wireframe-gray-d); - --eds-theme-color-button-primary-brand-background: var(--wireframe-gray-c); - --eds-theme-color-button-primary-brand-border-active: var(--wireframe-gray-e); - --eds-theme-color-button-primary-brand-border-hover: var(--wireframe-gray-d); - --eds-theme-color-button-primary-brand-border: var(--wireframe-gray-c); - --eds-theme-color-button-primary-brand-text-active: var(--wireframe-white); - --eds-theme-color-button-primary-brand-text-hover: var(--wireframe-white); - --eds-theme-color-button-primary-brand-text: var(--wireframe-white); - --eds-theme-color-button-primary-error-background-active: var(--wireframe-gray-e); - --eds-theme-color-button-primary-error-background-hover: var(--wireframe-gray-d); - --eds-theme-color-button-primary-error-background: var(--wireframe-gray-c); - --eds-theme-color-button-primary-error-border-active: var(--wireframe-gray-e); - --eds-theme-color-button-primary-error-border-hover: var(--wireframe-gray-d); - --eds-theme-color-button-primary-error-border: var(--wireframe-gray-c); - --eds-theme-color-button-primary-error-text-active: var(--wireframe-white); - --eds-theme-color-button-primary-error-text-hover: var(--wireframe-white); - --eds-theme-color-button-primary-error-text: var(--wireframe-white); - --eds-theme-color-button-secondary-brand-background-active: var(--wireframe-gray-e); - --eds-theme-color-button-secondary-brand-background-hover: var(--wireframe-gray-d); - --eds-theme-color-button-secondary-brand-background: transparent; - --eds-theme-color-button-secondary-brand-border-active: var(--wireframe-gray-e); - --eds-theme-color-button-secondary-brand-border-hover: var(--wireframe-gray-d); - --eds-theme-color-button-secondary-brand-border: var(--wireframe-gray-c); - --eds-theme-color-button-secondary-brand-icon-active: var(--wireframe-white); - --eds-theme-color-button-secondary-brand-icon-hover: var(--wireframe-white); - --eds-theme-color-button-secondary-brand-icon: var(--wireframe-gray-c); - --eds-theme-color-button-secondary-brand-text-active: var(--wireframe-white); - --eds-theme-color-button-secondary-brand-text-hover: var(--wireframe-white); - --eds-theme-color-button-secondary-brand-text: var(--wireframe-gray-c); - --eds-theme-color-button-secondary-error-background-active: var(--wireframe-gray-e); - --eds-theme-color-button-secondary-error-background-hover: var(--wireframe-gray-d); - --eds-theme-color-button-secondary-error-background: transparent; - --eds-theme-color-button-secondary-error-border-active: var(--wireframe-gray-e); - --eds-theme-color-button-secondary-error-border-hover: var(--wireframe-gray-d); - --eds-theme-color-button-secondary-error-border: var(--wireframe-gray-c); - --eds-theme-color-button-secondary-error-icon-active: var(--wireframe-white); - --eds-theme-color-button-secondary-error-icon-hover: var(--wireframe-white); - --eds-theme-color-button-secondary-error-icon: var(--wireframe-gray-c); - --eds-theme-color-button-secondary-error-text-active: var(--wireframe-white); - --eds-theme-color-button-secondary-error-text-hover: var(--wireframe-white); - --eds-theme-color-button-secondary-error-text: var(--wireframe-gray-c); - --eds-theme-color-button-secondary-neutral-background-active: var(--wireframe-gray-e); - --eds-theme-color-button-secondary-neutral-background-hover: var(--wireframe-gray-d); - --eds-theme-color-button-secondary-neutral-background: transparent; - --eds-theme-color-button-secondary-neutral-border-active: var(--wireframe-gray-e); - --eds-theme-color-button-secondary-neutral-border-hover: var(--wireframe-gray-d); - --eds-theme-color-button-secondary-neutral-border: var(--wireframe-gray-c); - --eds-theme-color-button-secondary-neutral-icon-active: var(--wireframe-white); - --eds-theme-color-button-secondary-neutral-icon-hover: var(--wireframe-white); - --eds-theme-color-button-secondary-neutral-icon: var(--wireframe-gray-c); - --eds-theme-color-button-secondary-neutral-text-active: var(--wireframe-white); - --eds-theme-color-button-secondary-neutral-text-hover: var(--wireframe-white); - --eds-theme-color-button-secondary-neutral-text: var(--wireframe-gray-c); - --eds-theme-color-button-secondary-success-background-active: var(--wireframe-gray-e); - --eds-theme-color-button-secondary-success-background-hover: var(--wireframe-gray-d); - --eds-theme-color-button-secondary-success-background: transparent; - --eds-theme-color-button-secondary-success-border-active: var(--wireframe-gray-e); - --eds-theme-color-button-secondary-success-border-hover: var(--wireframe-gray-d); - --eds-theme-color-button-secondary-success-border: var(--wireframe-gray-c); - --eds-theme-color-button-secondary-success-icon-active: var(--wireframe-white); - --eds-theme-color-button-secondary-success-icon-hover: var(--wireframe-white); - --eds-theme-color-button-secondary-success-icon: var(--wireframe-gray-c); - --eds-theme-color-button-secondary-success-text-active: var(--wireframe-white); - --eds-theme-color-button-secondary-success-text-hover: var(--wireframe-white); - --eds-theme-color-button-secondary-success-text: var(--wireframe-gray-c); - --eds-theme-color-button-secondary-warning-background-active: var(--wireframe-gray-e); - --eds-theme-color-button-secondary-warning-background-hover: var(--wireframe-gray-d); - --eds-theme-color-button-secondary-warning-background: transparent; - --eds-theme-color-button-secondary-warning-border-active: var(--wireframe-gray-e); - --eds-theme-color-button-secondary-warning-border-hover: var(--wireframe-gray-d); - --eds-theme-color-button-secondary-warning-border: var(--wireframe-gray-c); - --eds-theme-color-button-secondary-warning-icon-active: var(--wireframe-white); - --eds-theme-color-button-secondary-warning-icon-hover: var(--wireframe-white); - --eds-theme-color-button-secondary-warning-icon: var(--wireframe-gray-c); - --eds-theme-color-button-secondary-warning-text-active: var(--wireframe-white); - --eds-theme-color-button-secondary-warning-text-hover: var(--wireframe-white); - --eds-theme-color-button-secondary-warning-text: var(--wireframe-gray-c); - --eds-theme-color-focus-ring-inverted: var(--wireframe-white); - --eds-theme-color-focus-ring: var(--wireframe-gray-c); - --eds-theme-color-form-background-hover: var(--wireframe-gray-a); - --eds-theme-color-form-background: var(--wireframe-white); - --eds-theme-color-form-border-hover: var(--wireframe-gray-e); - --eds-theme-color-form-border: var(--wireframe-gray-c); - --eds-theme-color-form-label: var(--wireframe-gray-d); - --eds-theme-color-icon-brand-primary-hover: var(--wireframe-gray-c); - --eds-theme-color-icon-brand-primary: var(--wireframe-gray-c); - --eds-theme-color-icon-disabled: var(--wireframe-gray-b); - --eds-theme-color-icon-grade-complete-hover: var(--wireframe-gray-c); - --eds-theme-color-icon-grade-complete: var(--wireframe-gray-c); - --eds-theme-color-icon-grade-revise-hover: var(--wireframe-gray-e); - --eds-theme-color-icon-grade-revise: var(--wireframe-gray-e); - --eds-theme-color-icon-grade-stop-hover: var(--wireframe-gray-c); - --eds-theme-color-icon-grade-stop: var(--wireframe-gray-c); - --eds-theme-color-icon-neutral-default-hover: var(--wireframe-gray-d); - --eds-theme-color-icon-neutral-default-inverse: var(--wireframe-white); - --eds-theme-color-icon-neutral-default: var(--wireframe-gray-c); - --eds-theme-color-icon-neutral-strong-hover: var(--wireframe-gray-e); - --eds-theme-color-icon-neutral-strong: var(--wireframe-gray-d); - --eds-theme-color-icon-neutral-subtle-hover: var(--wireframe-gray-c); - --eds-theme-color-icon-neutral-subtle: var(--wireframe-gray-c); - --eds-theme-color-icon-utility-error-hover: var(--wireframe-gray-c); - --eds-theme-color-icon-utility-error: var(--wireframe-gray-c); - --eds-theme-color-icon-utility-success-hover: var(--wireframe-gray-c); - --eds-theme-color-icon-utility-success: var(--wireframe-gray-c); - --eds-theme-color-icon-utility-warning-hover: var(--wireframe-gray-c); - --eds-theme-color-icon-utility-warning: var(--wireframe-gray-c); - --eds-theme-color-modal-brand-header-background: var(--wireframe-gray-c); - --eds-theme-color-text-brand-default: var(--wireframe-gray-d); - --eds-theme-color-text-disabled: var(--wireframe-gray-b); - --eds-theme-color-text-grade-complete: var(--wireframe-gray-d); - --eds-theme-color-text-grade-revise: var(--wireframe-gray-e); - --eds-theme-color-text-grade-stop: var(--wireframe-gray-d); - --eds-theme-color-text-highlight-background: var(--wireframe-gray-a); - --eds-theme-color-text-highlight-foreground: var(--wireframe-gray-e); - --eds-theme-color-text-neutral-default-inverse: var(--wireframe-white); - --eds-theme-color-text-neutral-default: var(--wireframe-gray-d); - --eds-theme-color-text-neutral-strong: var(--wireframe-gray-e); - --eds-theme-color-text-neutral-subtle: var(--wireframe-gray-c); - --eds-theme-color-text-utility-error: var(--wireframe-gray-d); - --eds-theme-color-text-utility-success: var(--wireframe-gray-d); - --eds-theme-color-text-utility-warning: var(--wireframe-gray-d); - - /* Set default font family for text in the demo */ - font-family: var(--eds-font-family-primary); -} diff --git a/.storybook/pages/WireframeDemo/WireframeDemo.module.css b/.storybook/pages/WireframeDemo/WireframeDemo.module.css deleted file mode 100644 index dac4cf200..000000000 --- a/.storybook/pages/WireframeDemo/WireframeDemo.module.css +++ /dev/null @@ -1,187 +0,0 @@ -@import '../../../src/design-tokens/mixins.css'; - -/*------------------------------------*\ - # WIREFRAME DEMO -\*------------------------------------*/ - -/** - * Global footer - */ -.wireframe-demo__footer { - padding: 7.5rem 0 2rem; - display: flex; - gap: 3rem; - flex-wrap: wrap; - justify-content: center; - list-style-type: none; - /* Pushes footer to bottom of the page if there's more vertical space than content */ - flex-grow: 1; - align-items: flex-end; -} - -/** - * LoggedOutPage - */ -.logged-out-page { - background-color: var(--eds-theme-color-background-brand-primary-default); - min-height: 100vh; - padding: calc(var(--eds-size-4) / 16 * 1rem); - display: flex; - flex-direction: column; - align-items: center; -} - -.logged-out-page__header-img { - display: none; - width: 8rem; - - @media screen and (min-width: $eds-bp-md) { - display: block; - } -} - -.logged-out-page__button-group { - gap: calc(var(--eds-size-2) / 16 * 1rem); - margin: calc(var(--eds-size-2) / 16 * 1rem) 0 calc(var(--eds-size-4) / 16 * 1rem) 0; -} - -/** - * Student tab - */ -.student-tab { - align-items: center; - border-radius: 0.25rem 0.25rem 0 0; - display: flex; - flex-direction: column; - flex: 0 1 0%; - padding: 0.5rem 0.5rem 1rem; - min-width: 4.5rem; - cursor: pointer; - border-bottom: 0.5rem solid transparent; -} - -.student-tab--active { - cursor: default; - border-bottom: 0.5rem solid var(--eds-theme-color-border-brand-primary-strong); - background-color: var(--eds-theme-color-background-brand-primary-default); -} - -/** - * WatchPage - */ -.watch-page { - min-height: 100vh; - background-color: var(--eds-theme-color-background-neutral-default); -} - -.watch-page__avatar { - background-color: var(--eds-theme-color-background-brand-primary-strong); - color: var(--eds-theme-color-text-neutral-default-inverse); - border-radius: calc(var(--eds-border-radius-full) * 1px); - display: flex; - justify-content: center; - align-items: center; -} - -.watch-page__textarea { - @mixin inputStyles; -} - -.watch-page__main-section { - width: 100%; - padding-top: 2rem; - - @media screen and (min-width: $eds-bp-md) { - /* Make space for the sidebar */ - padding-right: 15rem; - } -} - -.watch-page__carousel { - background-color: var(--eds-theme-color-background-neutral-subtle); - margin-top: 2rem; - padding-top: 1rem; - padding-left: 5.5rem; -} - -.watch-page__reflection { - margin-top: 2.5rem; - margin-left: 5.5rem; - margin-right: 2rem; - display: flex; - flex-wrap: wrap; -} - -.watch-page__text-reflection-text { - font-family: var(--eds-font-family-secondary); -} - -.watch-page__response { - margin-top: 4rem; - margin-left: 1.5rem; - display: flex; - flex-direction: column; -} - -.watch-page__sidebar { - display: none; - position: fixed; - top: 0; - right: 0; - bottom: 0; - border-left: var(--eds-theme-form-border-width) solid - var(--eds-theme-color-form-border); - background-color: var(--eds-theme-color-background-neutral-default); - flex-direction: column; - align-items: center; - width: 15rem; - padding: 1rem; - - @media screen and (min-width: $eds-bp-md) { - display: flex; - } -} - -.watch-page__student-summary-container { - background-color: var(--eds-theme-color-background-neutral-subtle); - padding: 1rem; - border-radius: var(--eds-theme-form-border-radius); -} - -.watch-page__teacher-notes-heading { - display: flex; - justify-content: center; - align-items: center; - gap: 0.25rem; - margin-top: 2.5rem; -} - -.watch-page__teacher-notes-tooltip { - /** - * NOTE: We would normally use a token here, but we're using the raw value - * for this demo because the tooltip is being rendered outside of this storybook - * page and is therefore also outside of the context in which our themed variables - * are defined. In the context of a different app where the themed variables are - * set on the actual root, this shouldn't be necessary. - */ - font-family: 'Balsamiq Sans', sans-serif; -} - -.watch-page__teacher-notes-info-icon { - /** - * Stops the icon from taking up a lot of vertical space and being misaligned with - * the text next to it. - */ - display: flex; -} - -.watch-page__teacher-notes-textarea { - width: 100%; - display: flex; - flex-grow: 1; - margin-top: 0.5rem; - border: var(--eds-theme-form-border-width) solid - var(--eds-theme-color-form-border); - border-radius: var(--eds-theme-form-border-radius); - resize: none; -} diff --git a/.storybook/pages/WireframeDemo/WireframeDemo.stories.ts b/.storybook/pages/WireframeDemo/WireframeDemo.stories.ts deleted file mode 100644 index b5532065a..000000000 --- a/.storybook/pages/WireframeDemo/WireframeDemo.stories.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { StoryObj, Meta } from '@storybook/react'; -import { userEvent, within } from '@storybook/testing-library'; -import type React from 'react'; - -import { WireframeDemo } from './WireframeDemo'; - -export default { - title: 'Pages/Theming/WireframeDemo', - component: WireframeDemo, - parameters: { - chromatic: { disableSnapshot: true }, - }, -} as Meta; - -type Args = React.ComponentProps; - -export const Default: StoryObj = {}; - -export const WatchPage: StoryObj = { - play: async ({ canvasElement }) => { - const canvas = within(canvasElement); - const nextPageButton = await canvas.findByText('Hogwarts'); - await userEvent.click(nextPageButton); - }, -}; diff --git a/.storybook/pages/WireframeDemo/WireframeDemo.tsx b/.storybook/pages/WireframeDemo/WireframeDemo.tsx deleted file mode 100644 index 89e8e09c2..000000000 --- a/.storybook/pages/WireframeDemo/WireframeDemo.tsx +++ /dev/null @@ -1,410 +0,0 @@ -import clsx from 'clsx'; -import React, { useState } from 'react'; - -import { - Button, - ButtonGroup, - Heading, - Icon, - Label, - Link, - Select, - Tabs, - Text, - Tooltip, -} from '../../../src'; -import { useId } from '../../../src/util/useId'; - -import PlaceholderImage from '../../static/placeholder-image.svg'; -import PlaceholderVideo from '../../static/placeholder-video.svg'; -import globalStyles from './GlobalStyles.module.css'; -import styles from './WireframeDemo.module.css'; - -const GlobalFooter = () => ( -
    -
  • - - Privacy Policy{' '} - - -
  • -
  • - Cookie Settings -
  • -
  • - - User Agreement{' '} - - -
  • -
  • - - Code of Conduct{' '} - - -
  • -
  • - - Help Center{' '} - - -
  • -
-); - -const LoggedOutPage = ({ onLogin }: { onLogin: () => void }) => ( -
-
-
- placeholder for decorative illustration -
- Application - Sign in - Remember to use your school email to sign in: -
- placeholder for decorative illustration -
- - {['Sign in with Google', 'Sign in with Microsoft'].map((buttonText) => ( - - ))} - - - Sign in as one of the test users: - - {['Hogwarts', 'Cohorts', 'Demos', 'Admins'].map((buttonText) => ( - - ))} - -
- -
- placeholder for decorative illustration - Don't have an account? - -
- - -
-); - -const StudentTab = ({ - studentName, - active = false, -}: { - studentName: string; - active?: boolean; -}) => ( -
-
- {studentName.slice(0, 1)} -
- - {studentName} - -
-); - -const WatchPage = ({ onLogout }: { onLogout: () => void }) => { - const responseTextareaId = useId(); - - const studentGroupOptions = [ - { - key: '1', - label: 'All students', - }, - { - key: '2', - label: 'Not grouped', - }, - ]; - - const [selectedOption, setSelectedOption] = useState(studentGroupOptions[0]); - const [canSubmitResponse, setCanSubmitResponse] = useState(false); - - const handleTextareaChange = (event: any) => { - if (event.target.value?.length >= 3 && !canSubmitResponse) { - setCanSubmitResponse(true); - } else if (event.target.value?.length < 3 && canSubmitResponse) { - setCanSubmitResponse(false); - } - }; - - return ( -
-
-
- -
- Playing reflections in response to: - - What's something in your life, big or small, that you're proud of? - Why are you proud of it? - -
-
- -
-
- -
- - - -
- - - -
-
- - -
- -
-
- - -
- - -
-
-
-
- -
-
-
-
- M -
- -
- Mikaela - 3d -
-
- placeholder for video player - -
- - - My greatest accomplishment this year was in math, because I - wasn't that good at math in the first place and now I am good at - math. It is because my teacher, Mr. S. taught me how to do math. - -
- -
-
-
-
- - -
- - -
- ); -}; - -/** - * A page demoing what a wireframe demo could look like in a pilot prototype. Best viewed on the "canvas" tab in storybook. - * - * See the [theming documentation](./?path=/docs/documentation-theming--theming) for more information on the purpose of this demo. - * - * Just for the purpose of demonstration, we're using the logged out homepage and - * the teacher watch page in an example app. - */ -export const WireframeDemo = () => { - const [currentPage, setCurrentPage] = useState<'loggedOut' | 'watch'>( - 'loggedOut', - ); - - return ( -
- {currentPage === 'loggedOut' ? ( - setCurrentPage('watch')} /> - ) : ( - setCurrentPage('loggedOut')} /> - )} -
- ); -}; diff --git a/.storybook/pages/WireframeDemo/fonts/BalsamiqSans-Regular.woff2 b/.storybook/pages/WireframeDemo/fonts/BalsamiqSans-Regular.woff2 deleted file mode 100644 index dfac2c3285a377310842d13eac80fc5f21fb7960..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186272 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
  • XlDnMRk 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
    $bCxs#(j+?yGsz-z-a#mlyPPHvf0E_nT>6?KHg3 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 ( + (Story: StoryFn) => (
    @@ -68,19 +68,6 @@ export const parameters: Preview['parameters'] = { }, backgrounds: { values: [ - // TODO: remove the following three when the last 1.0 components have been migrated - { - name: 'eds-color-neutral-white', - value: '#ffffff', - }, - { - name: 'eds-color-neutral-100', - value: '#f4f6f8', - }, - { - name: 'eds-color-neutral-700', - value: '#21272D', - }, { name: 'background-utility-default-high-emphasis', value: '#0F2163', @@ -97,6 +84,7 @@ export const parameters: Preview['parameters'] = { ...createInitialReleaseConfig('1.2'), ...createInitialReleaseConfig('1.1'), ...createInitialReleaseConfig('1.0'), + ...createCurrentReleaseConfig('1.3'), ...createCurrentReleaseConfig('2.0'), implementationExample: { styles: { diff --git a/src/components/Accordion/Accordion-v2.module.css b/src/components/Accordion/Accordion-v2.module.css deleted file mode 100644 index 09d38152e..000000000 --- a/src/components/Accordion/Accordion-v2.module.css +++ /dev/null @@ -1,137 +0,0 @@ -@import '../../design-tokens/mixins.css'; - -/*------------------------------------*\ - # ACCORDION -\*------------------------------------*/ -/** - * TODO: Icon inherits color from the surrounding text, but should use the matching -icon- tokens from below - */ - -/** - * Accordion Panel that expands and collapses. - * Reveals itself below the associated Accordion Button. - */ - .accordion-panel { - padding: 0 3.5rem 1rem 1rem; - - font: var(--eds-theme-typography-body-sm); - - &.accordion-panel--leading-icon { - padding-left: 3.5rem; - } - - color: var(--eds-theme-color-text-utility-default-primary); -} - -/** - * Accordion Button, wraps the heading and open indicator icon. - */ -.accordion-button { - display: flex; - justify-content: flex-start; - gap: 1rem; - width: 100%; - - border: 0; - text-align: left; - - border-radius: calc(var(--eds-theme-border-radius-objects-sm) * 1px); - - &:hover { - background-color: var(--eds-theme-color-background-utility-default-no-emphasis-hover); - } - - &:active { - background-color: var(--eds-theme-color-background-utility-default-no-emphasis-active); - } -} - -.accordion-button--empty { - pointer-events: none; -} - -/** - * Size variants - */ -.accordion-button--sm, -.accordion-button--md { - padding: 0.5rem 1rem; -} - -/** - * Expand more (chevron) icon indicates open or closed status. - * - * This non-rotated icon points down and represents closed status. - */ - .accordion-button__trailing-icon { - flex: 0 0 content; - transform: rotate(0); -} - -/** - * This rotated icon points up and represents open status. - */ - .accordion-button__trailing-icon--open { - transform: rotate(-180deg); -} - -/** - * Animates the icon rotation when opening and closing. - */ - .accordion-button > .accordion-button__trailing-icon { - transition: transform calc(var(--eds-anim-move-medium) * 1s) var(--eds-anim-ease); - - @media screen and (prefers-reduced-motion) { - transition: none; - } -} - -.accordion-panel--hidden { - padding: 0; -} - -.accordion-button__heading { - flex-grow: 2; - - & > * + * { - display: block; - } -} - -.accordion-button:focus-visible { - outline: 0.125rem solid var(--eds-theme-color-border-utility-focus) -} - -.accordion-button__leading-icon { - color: var(--eds-theme-color-icon-utility-default-secondary); - - /* Targeting NumberIcons and other images used in this specific context */ - & [role='img'] { - display: inline-flex; - } -} - -.accordion-button__title { - color: var(--eds-theme-color-text-utility-default-primary); -} - -.accordion-button__subtitle { - color: var(--eds-theme-color-text-utility-default-secondary); -} - - -.accordion-panel--md { - font: var(--eds-theme-typography-body-md); -} - -.accordion-panel--sm { - font: var(--eds-theme-typography-body-sm); -} - -/** - * Accordion Row houses one Accordion Button subcomponent and its relevant Accordion Panel subcomponent. - */ -.accordion-row { - border-bottom: calc(var(--eds-border-width-sm) * 1px) solid - var(--eds-theme-color-border-utility-default-low-emphasis); -} diff --git a/src/components/Accordion/Accordion-v2.stories.tsx b/src/components/Accordion/Accordion-v2.stories.tsx deleted file mode 100644 index e43e0ca5d..000000000 --- a/src/components/Accordion/Accordion-v2.stories.tsx +++ /dev/null @@ -1,412 +0,0 @@ -import type { StoryObj, Meta } from '@storybook/react'; -import React from 'react'; - -import { Accordion } from './Accordion-v2'; -import { chromaticViewports } from '../../util/viewports'; -import Icon from '../Icon'; -import { NumberIconV2 as NumberIcon } from '../NumberIcon'; -import Text from '../Text'; - -type Args = React.ComponentProps; - -export default { - title: 'Components/V2/Accordion', - component: Accordion, - parameters: { - layout: 'centered', - badges: ['intro-1.2', 'current-2.0'], - }, - args: { - headingAs: 'h2', - className: 'w-96', - children: ( - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - ), - }, - argTypes: { - children: { - control: { - type: null, - }, - }, - }, - decorators: [(Story) =>
    {Story()}
    ], -} as Meta; - -type Story = StoryObj; - -export const Default: Story = {}; - -export const TitleAndSubtitle: Story = { - args: { - ...Default.args, - children: ( - - "Quam lacus maecenas nibh malesuada."} - title="Massa quam egestas massa." - > - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - ), - }, -}; - -export const HasLeadingIcon: Story = { - args: { - ...Default.args, - children: ( - - - } - subtitle="Quam lacus maecenas nibh malesuada." - title="Massa quam egestas massa." - > - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - ), - }, -}; - -/** - * You can add in `NumberIcon` or any other icon in the button for the accordion row. - */ -export const HasLeadingNumberIcon: Story = { - args: { - ...Default.args, - children: ( - - - } - subtitle="Quam lacus maecenas nibh malesuada." - title="Massa quam egestas massa." - > - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - ), - }, -}; - -/** - * Default `Accordion` using the `small` size. - */ -export const Small: Story = { - args: { - size: 'sm', - }, -}; - -/** - * This demonstrates how one can combine multiple `Accordion` rows, where any of the rows can - * be defaulted to open (using `defaultOpen`). - */ -export const Stacked: Story = { - args: { - children: ( - <> - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - ), - }, -}; - -export const StackedSmall: Story = { - args: { - ...Stacked.args, - size: 'sm', - }, -}; - -/** - * This demonstrates how to specify that a section is not currently expandable using `isExpandable`. - */ -export const EmptyStackedOpen: Story = { - args: { - children: ( - <> - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - ), - }, -}; - -export const StackedOpen: Story = { - args: { - children: ( - <> - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - ), - }, -}; - -export const StackedSmallOpen: Story = { - args: { - ...StackedOpen.args, - size: 'sm', - }, -}; - -/** - * - * This shows how to use a render prop for the row, to allow controlling render based on component state. - * - * **NOTE**: Visual regression testing unhelpful since story value is in interaction and as a code example. - */ -export const UsingRenderProp: Story = { - render: () => ( - - - {({ open }) => ( - <> - - Accordion Button {(open && 'open') || 'closed'} - - Accordion Panel - - )} - - - ), - parameters: { - chromatic: { disableSnapshot: true }, - }, -}; - -/** - * Although headings should provide limited text, we allow for text to span multiple lines, preserving - * the size of the state caret. - */ -export const WithLargeHeader: Story = { - parameters: { - chromatic: { - viewports: [chromaticViewports.ipadMini], - }, - }, - args: { - children: ( - - - Massa quam egestas massa. Massa quam egestas massa. Massa quam egestas - massa. Massa quam egestas massa. Massa quam egestas massa. - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - ), - }, -}; - -/** - * You can use other EDS components within the `Accordion.Button` to allow for custom, non-text headers. - * - * **Example**: using `Text` and `Icon` in the `Accordion.Button`. - */ -export const UsingComplexHeaders: Story = { - parameters: { - badges: ['intro-1.2', 'implementationExample', 'current-2.0'], - }, - args: { - children: ( - <> - - - - - Step 1 - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - - - - Step 2 - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - ), - }, -}; diff --git a/src/components/Accordion/Accordion-v2.test.tsx b/src/components/Accordion/Accordion-v2.test.tsx deleted file mode 100644 index 4bc9444a2..000000000 --- a/src/components/Accordion/Accordion-v2.test.tsx +++ /dev/null @@ -1,115 +0,0 @@ -import { generateSnapshots } from '@chanzuckerberg/story-utils'; -import type { StoryFile } from '@storybook/testing-react'; -import { composeStories } from '@storybook/testing-react'; -import { render, screen } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; -import React from 'react'; -import { Accordion } from './Accordion-v2'; -import * as stories from './Accordion-v2.stories'; - -const { Default } = composeStories(stories); - -describe('', () => { - generateSnapshots(stories as StoryFile); - - it('should open and close Accordion panel clicking Accordion button', async () => { - const user = userEvent.setup(); - render(); - expect(screen.queryByTestId('accordion-panel')).not.toBeInTheDocument(); - const accordionButton = screen.getByTestId('accordion-button'); - - await user.click(accordionButton); - expect(screen.getByTestId('accordion-panel')).toBeInTheDocument(); - - await user.click(accordionButton); - expect(screen.queryByTestId('accordion-panel')).not.toBeInTheDocument(); - }); - - it('should open and close Accordion panel with space and enter keys on the Accordion button', async () => { - const user = userEvent.setup(); - render(); - const accordionButton = screen.getByTestId('accordion-button'); - accordionButton.focus(); - - await user.keyboard(' '); - expect(screen.getByTestId('accordion-panel')).toBeInTheDocument(); - - await user.keyboard(' '); - expect(screen.queryByTestId('accordion-panel')).not.toBeInTheDocument(); - - await user.keyboard('{enter}'); - expect(screen.getByTestId('accordion-panel')).toBeInTheDocument(); - - await user.keyboard('{enter}'); - expect(screen.queryByTestId('accordion-panel')).not.toBeInTheDocument(); - }); - - it('should call onClose callback when accordion closes', async () => { - const user = userEvent.setup(); - const onClose = jest.fn(); - render( - - - - Accordion Button - - Accordion Panel - - , - ); - const accordionButton = screen.getByTestId('accordion-button'); - - await user.click(accordionButton); - expect(onClose).toHaveBeenCalledTimes(1); - }); - - it('should call onOpen callback when accordion opens', async () => { - const user = userEvent.setup(); - const onClose = jest.fn(); - const onOpen = jest.fn(); - render( - - - - Accordion Button - - Accordion Panel - - , - ); - const accordionButton = screen.getByRole('button'); - - await user.click(accordionButton); - expect(onOpen).toHaveBeenCalledTimes(1); - expect(onClose).not.toHaveBeenCalled(); - }); - - it('should not call onOpen callback when accordion opens on an empty row', async () => { - const user = userEvent.setup(); - const onClose = jest.fn(); - const onOpen = jest.fn(); - render( - - - - Accordion Button - - Accordion Panel - - , - ); - const accordionButton = screen.getByRole('button'); - - await user.click(accordionButton); - expect(onOpen).not.toHaveBeenCalled(); - expect(onClose).not.toHaveBeenCalled(); - }); -}); diff --git a/src/components/Accordion/Accordion-v2.tsx b/src/components/Accordion/Accordion-v2.tsx deleted file mode 100644 index 54e82dde0..000000000 --- a/src/components/Accordion/Accordion-v2.tsx +++ /dev/null @@ -1,305 +0,0 @@ -import { Disclosure } from '@headlessui/react'; -import clsx from 'clsx'; -import React, { createContext, useContext } from 'react'; -import type { ReactNode } from 'react'; -import { ENTER_KEYCODE, SPACEBAR_KEYCODE } from '../../util/keycodes'; -import type { Size } from '../../util/variant-types'; - -import Heading, { type HeadingElement } from '../Heading'; -import { type IconNameV2 as IconName, IconV2 as Icon } from '../Icon'; -import Text from '../Text'; - -import styles from './Accordion-v2.module.css'; - -type AccordionProps = { - // Component API - /** - * Child node(s) that can be nested inside component. - */ - children: ReactNode; - /** - * Additional classnames passed in for styling. - */ - className?: string; - // Design API - /** - * Used to specify which heading element should be rendered for each `Accordion.Title` child. - * - * **Default is `"h2"`**. - */ - headingAs: HeadingElement; - /** - * Various sizes supported by the `Accordion`. - * - * **Default is `"md"`**. - */ - size?: Extract; -}; - -type AccordionButtonProps = { - // Component API - /** - * Child node(s) that can be nested inside component. - */ - children?: ReactNode; - /** - * Additional classnames passed in for styling - */ - className?: string; - /** - * Callback for when accordion is closed. - */ - onClose?: () => void; - /** - * Callback for when according is opened. - */ - onOpen?: () => void; - // Design API - /** - * Used to specify which heading element should be rendered for the title. - * If provided, overrides parent headingAs prop. - */ - headingAs?: HeadingElement; - /** - * Icon to preceed the text in an accordion header - */ - leadingIcon?: ReactNode; - /** - * Secondary text used to describe the content in more detail - */ - subtitle?: ReactNode; - /** - * The title/heading of the component - */ - title?: string; - /** - * Icon override for component's expand/collapse indicator. - * - * **Default is `"expand-more"`**. - */ - trailingIcon?: Extract; -}; - -type AccordionPanelProps = { - /** - * Child node(s) that can be nested inside component. - */ - children: ReactNode; - /** - * Additional class names passed in for styling - */ - className?: string; -}; - -type AccordionRowProps = { - /** - * Child node(s) that can be nested inside component. - */ - children: ReactNode | (({ open }: { open: boolean }) => ReactNode); - /** - * Additional class names passed in for styling. - */ - className?: string; - /** - * Whether panel is expanded by default. - */ - defaultOpen?: boolean; - /** - * Whether the row can show expandable content - */ - isExpandable?: boolean; - /** - * Whether the row has a leading icon on the row's trigger - */ - hasLeadingIcon?: boolean; -}; - -const AccordionContext = createContext<{ - headingAs: HeadingElement; - size?: AccordionProps['size']; -}>({ - headingAs: 'h2', -}); - -const AccordionRowContext = createContext< - Pick ->({ - isExpandable: true, - hasLeadingIcon: false, -}); - -/** - * `import {Accordion} from "@chanzuckerberg/eds;` - * - * Displays one or more headers stacked on top of one another that can reveal or hide associated content. - * This component is based on the [Disclosure](https://headlessui.com/react/disclosure) component, provided by HeadlessUI. - * - * @see https://headlessui.com/react/disclosure - * - */ -export const Accordion = ({ - children, - className, - headingAs, - size = 'md', - ...other -}: AccordionProps) => { - return ( - -
    - {children} -
    -
    - ); -}; - -const AccordionButton = ({ - children, - className, - headingAs, - leadingIcon, - title, - trailingIcon = 'chevron-down', - subtitle, - onClose, - onOpen, - ...other -}: AccordionButtonProps) => { - const { headingAs: contextHeadingAs, size } = useContext(AccordionContext); - - const { isExpandable } = useContext(AccordionRowContext); - - const componentClassName = clsx( - styles['accordion-button'], - size && styles[`accordion-button--${size}`], - !isExpandable && styles['accordion-button--empty'], - className, - ); - - return ( - - {({ open }) => ( - - )} - - ); -}; - -const AccordionPanel = ({ - className, - children, - ...other -}: AccordionPanelProps) => { - const { size } = useContext(AccordionContext); - const { isExpandable, hasLeadingIcon } = useContext(AccordionRowContext); - - const componentClassName = clsx( - styles['accordion-panel'], - size === 'sm' && styles['accordion-panel--sm'], - !isExpandable && styles['accordion-panel--hidden'], - hasLeadingIcon && styles['accordion-panel--leading-icon'], - className, - ); - - return ( - - {isExpandable && children} - - ); -}; - -const AccordionRow = ({ - className, - defaultOpen, - children, - isExpandable = true, - hasLeadingIcon, - ...other -}: AccordionRowProps) => { - const componentClassName = clsx(styles['accordion-row'], className); - return ( - - - {({ open }) => ( -
    - {typeof children === 'function' ? children({ open }) : children} -
    - )} -
    -
    - ); -}; - -Accordion.displayName = 'Accordion'; -AccordionButton.displayName = 'Accordion.Button'; -AccordionPanel.displayName = 'Accordion.Panel'; -AccordionRow.displayName = 'Accordion.Row'; - -Accordion.Button = AccordionButton; -Accordion.Panel = AccordionPanel; -Accordion.Row = AccordionRow; diff --git a/src/components/Accordion/Accordion.module.css b/src/components/Accordion/Accordion.module.css index a4a532e2e..571720ea1 100644 --- a/src/components/Accordion/Accordion.module.css +++ b/src/components/Accordion/Accordion.module.css @@ -3,16 +3,24 @@ /*------------------------------------*\ # ACCORDION \*------------------------------------*/ - /** - * Accordion is one or multiple interactive headings that reveal or hide associated content. - * - * Outline variant. + * TODO: Icon inherits color from the surrounding text, but should use the matching -icon- tokens from below */ -.accordion--outline { - border: var(--eds-theme-color-border-neutral-subtle) solid - calc(var(--eds-border-width-sm) * 1px); - border-radius: calc(var(--eds-border-radius-md) * 1px); + +/** + * Accordion Panel that expands and collapses. + * Reveals itself below the associated Accordion Button. + */ + .accordion-panel { + padding: 0 calc(var(--eds-size-7) / 16 * 1rem) calc(var(--eds-size-2) / 16 * 1rem) calc(var(--eds-size-2) / 16 * 1rem); + + font: var(--eds-theme-typography-body-sm); + + &.accordion-panel--leading-icon { + padding-left: calc(var(--eds-size-7) / 16 * 1rem); + } + + color: var(--eds-theme-color-text-utility-default-primary); } /** @@ -20,57 +28,34 @@ */ .accordion-button { display: flex; - justify-content: space-between; + justify-content: flex-start; + gap: calc(var(--eds-size-2) / 16 * 1rem); + width: 100%; border: 0; - border-radius: 0; - - padding: calc(var(--eds-size-1-and-half) / 16 * 1rem) calc(var(--eds-size-1) / 16 * 1rem); - height: unset; - min-height: 3.375rem; - text-align: left; -} - -.accordion-button--empty { - pointer-events: none; -} -/** - * Small variant. - */ -.accordion-button--sm { - padding: calc(var(--eds-size-half) / 16 * 1rem) calc(var(--eds-size-1) / 16 * 1rem); - min-height: 2.25rem; -} + border-radius: calc(var(--eds-theme-border-radius-objects-sm) * 1px); -/** - * Outline variant. - */ -.accordion-button--outline { - padding: calc(var(--eds-size-1-and-half) / 16 * 1rem) calc(var(--eds-size-3) / 16 * 1rem); -} + &:hover { + background-color: var(--eds-theme-color-background-utility-default-no-emphasis-hover); + } -/** - * Small outline variant. - */ -.accordion-button--sm.accordion-button--outline { - padding: calc(var(--eds-size-half) / 16 * 1rem) calc(var(--eds-size-2) / 16 * 1rem); + &:active { + background-color: var(--eds-theme-color-background-utility-default-no-emphasis-active); + } } -/** - * The heading text. - */ -.accordion-button__heading { - font: var(--eds-theme-typography-body-sm); - color: var(--eds-theme-color-text-neutral-strong); +.accordion-button--empty { + pointer-events: none; } /** - * Small variant of the heading text. + * Size variants */ -.accordion-button__heading--sm { - font: var(--eds-theme-typography-body-xs); +.accordion-button--sm, +.accordion-button--md { + padding: calc(var(--eds-size-1) / 16 * 1rem) calc(var(--eds-size-2) / 16 * 1rem); } /** @@ -78,21 +63,22 @@ * * This non-rotated icon points down and represents closed status. */ -.accordion-button__icon { + .accordion-button__trailing-icon { flex: 0 0 content; transform: rotate(0); } + /** * This rotated icon points up and represents open status. */ -.accordion-button__icon--open { - transform: rotate(180deg); + .accordion-button__trailing-icon--open { + transform: rotate(-180deg); } /** * Animates the icon rotation when opening and closing. */ -.accordion-button > .accordion-button__icon { + .accordion-button > .accordion-button__trailing-icon { transition: transform calc(var(--eds-anim-move-medium) * 1s) var(--eds-anim-ease); @media screen and (prefers-reduced-motion) { @@ -100,44 +86,46 @@ } } -/** - * Accordion Panel that expands and collapses. - * Reveals itself below the associated Accordion Button. - */ -.accordion-panel { - padding-left: calc(var(--eds-size-1) / 16 * 1rem); - padding-right: calc(var(--eds-size-3) / 16 * 1rem); - padding-bottom: 1.625rem; +.accordion-panel--hidden { + padding: 0; +} - font: var(--eds-theme-typography-body-sm); - color: var(--eds-theme-color-text-neutral-strong); +.accordion-button__heading { + flex-grow: 2; + + & > * + * { + display: block; + } } -.accordion-panel--hidden { - padding: 0; +.accordion-button:focus-visible { + outline: calc(var(--eds-size-quarter) / 16 * 1rem)) solid var(--eds-theme-color-border-utility-focus); } -/** - * Small variant. - */ -.accordion-panel--sm { - font: var(--eds-theme-typography-body-xs); +.accordion-button__leading-icon { + color: var(--eds-theme-color-icon-utility-default-secondary); + + /* Targeting NumberIcons and other images used in this specific context */ + & [role='img'] { + display: inline-flex; + } } -/** - * Outline variant. - */ -.accordion-panel--outline { - padding-left: calc(var(--eds-size-3) / 16 * 1rem); - padding-right: calc(var(--eds-size-5) / 16 * 1rem); +.accordion-button__title { + color: var(--eds-theme-color-text-utility-default-primary); } -/** - * Small outline variant. - */ -.accordion-panel--sm.accordion-panel--outline { - padding-left: calc(var(--eds-size-2) / 16 * 1rem); - padding-right: calc(var(--eds-size-4) / 16 * 1rem); +.accordion-button__subtitle { + color: var(--eds-theme-color-text-utility-default-secondary); +} + + +.accordion-panel--md { + font: var(--eds-theme-typography-body-md); +} + +.accordion-panel--sm { + font: var(--eds-theme-typography-body-sm); } /** @@ -145,13 +133,5 @@ */ .accordion-row { border-bottom: calc(var(--eds-border-width-sm) * 1px) solid - var(--eds-theme-color-border-neutral-subtle); -} - -/** - * Variant with outline. - * Removes bottom border on the last Accordion Row so there aren't two borders at the bottom of the Accordion. - */ -.accordion-row--outline:last-of-type { - border-bottom: 0; + var(--eds-theme-color-border-utility-default-low-emphasis); } diff --git a/src/components/Accordion/Accordion.stories.tsx b/src/components/Accordion/Accordion.stories.tsx index 9aa97c1c1..af7ac613e 100644 --- a/src/components/Accordion/Accordion.stories.tsx +++ b/src/components/Accordion/Accordion.stories.tsx @@ -5,7 +5,6 @@ import { Accordion } from './Accordion'; import { chromaticViewports } from '../../util/viewports'; import Icon from '../Icon'; import NumberIcon from '../NumberIcon'; -import Text from '../Text'; type Args = React.ComponentProps; @@ -14,15 +13,17 @@ export default { component: Accordion, parameters: { layout: 'centered', - badges: ['intro-1.2'], + badges: ['intro-1.2', 'current-2.0'], }, args: { headingAs: 'h2', + className: 'w-96', children: ( - - Massa quam egestas massa. - + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At @@ -39,13 +40,90 @@ export default { }, }, }, - decorators: [(Story) =>
    {Story()}
    ], + decorators: [(Story) =>
    {Story()}
    ], } as Meta; type Story = StoryObj; export const Default: Story = {}; +export const TitleAndSubtitle: Story = { + args: { + ...Default.args, + children: ( + + "Quam lacus maecenas nibh malesuada."} + title="Massa quam egestas massa." + > + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, + massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At + tristique et ullamcorper rhoncus amet pharetra aliquet tortor. + Suscipit dui, nunc sit dui tellus massa laoreet tellus. + + + ), + }, +}; + +export const HasLeadingIcon: Story = { + args: { + ...Default.args, + children: ( + + + } + subtitle="Quam lacus maecenas nibh malesuada." + title="Massa quam egestas massa." + > + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, + massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At + tristique et ullamcorper rhoncus amet pharetra aliquet tortor. + Suscipit dui, nunc sit dui tellus massa laoreet tellus. + + + ), + }, +}; + +/** + * You can add in `NumberIcon` or any other icon in the button for the accordion row. + */ +export const HasLeadingNumberIcon: Story = { + args: { + ...Default.args, + children: ( + + + } + subtitle="Quam lacus maecenas nibh malesuada." + title="Massa quam egestas massa." + > + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, + massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At + tristique et ullamcorper rhoncus amet pharetra aliquet tortor. + Suscipit dui, nunc sit dui tellus massa laoreet tellus. + + + ), + }, +}; + /** * Default `Accordion` using the `small` size. */ @@ -64,9 +142,10 @@ export const Stacked: Story = { children: ( <> - - Massa quam egestas massa. - + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At @@ -75,9 +154,10 @@ export const Stacked: Story = { - - Massa quam egestas massa. - + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At @@ -86,9 +166,10 @@ export const Stacked: Story = { - - Massa quam egestas massa. - + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At @@ -97,9 +178,10 @@ export const Stacked: Story = { - - Massa quam egestas massa. - + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At @@ -119,21 +201,6 @@ export const StackedSmall: Story = { }, }; -export const StackedOutline: Story = { - args: { - ...Stacked.args, - hasOutline: true, - }, -}; - -export const StackedSmallOutline: Story = { - args: { - ...Stacked.args, - size: 'sm', - hasOutline: true, - }, -}; - /** * This demonstrates how to specify that a section is not currently expandable using `isExpandable`. */ @@ -142,7 +209,7 @@ export const EmptyStackedOpen: Story = { children: ( <> - Massa quam egestas massa. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At @@ -151,7 +218,7 @@ export const EmptyStackedOpen: Story = { - Massa quam egestas massa. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At @@ -160,7 +227,7 @@ export const EmptyStackedOpen: Story = { - Massa quam egestas massa. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At @@ -169,7 +236,7 @@ export const EmptyStackedOpen: Story = { - Massa quam egestas massa. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At @@ -187,7 +254,7 @@ export const StackedOpen: Story = { children: ( <> - Massa quam egestas massa. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At @@ -196,7 +263,7 @@ export const StackedOpen: Story = { - Massa quam egestas massa. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At @@ -205,7 +272,7 @@ export const StackedOpen: Story = { - Massa quam egestas massa. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At @@ -214,7 +281,7 @@ export const StackedOpen: Story = { - Massa quam egestas massa. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At @@ -234,21 +301,6 @@ export const StackedSmallOpen: Story = { }, }; -export const StackedOutlineOpen: Story = { - args: { - ...StackedOpen.args, - hasOutline: true, - }, -}; - -export const StackedSmallOutlineOpen: Story = { - args: { - ...StackedOpen.args, - size: 'sm', - hasOutline: true, - }, -}; - /** * * This shows how to use a render prop for the row, to allow controlling render based on component state. @@ -302,103 +354,3 @@ export const WithLargeHeader: Story = { ), }, }; - -/** - * You can use other EDS components within the `Accordion.Button` to allow for custom, non-text headers. - * - * **Example**: using `Text` and `Icon` in the `Accordion.Button`. - */ -export const UsingComplexHeaders: Story = { - parameters: { - badges: ['intro-1.2', 'implementationExample'], - }, - args: { - children: ( - <> - - - - - Step 1 - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - - - - Step 2 - - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - - - - ), - }, -}; - -/** - * You can use other EDS components within the `Accordion.Button` to allow for custom, non-text headers. - * - * **Example**: using `Text` and `NumberIcon` in the `Accordion.Button`. - */ -export const UsingNumberIconInHeaders: Story = { - parameters: { - badges: ['intro-1.2', 'implementationExample'], - }, - args: { - children: ( - <> - - -
    - - Step 1 -
    -
    - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - -
    - - -
    - - Step 2 -
    -
    - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, - massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At - tristique et ullamcorper rhoncus amet pharetra aliquet tortor. - Suscipit dui, nunc sit dui tellus massa laoreet tellus. - -
    - - ), - }, -}; diff --git a/src/components/Accordion/Accordion.tsx b/src/components/Accordion/Accordion.tsx index c2f5d0900..9c7f10f57 100644 --- a/src/components/Accordion/Accordion.tsx +++ b/src/components/Accordion/Accordion.tsx @@ -4,12 +4,15 @@ import React, { createContext, useContext } from 'react'; import type { ReactNode } from 'react'; import { ENTER_KEYCODE, SPACEBAR_KEYCODE } from '../../util/keycodes'; import type { Size } from '../../util/variant-types'; -import Button from '../Button'; + import Heading, { type HeadingElement } from '../Heading'; import Icon, { type IconName } from '../Icon'; +import Text from '../Text'; + import styles from './Accordion.module.css'; type AccordionProps = { + // Component API /** * Child node(s) that can be nested inside component. */ @@ -18,12 +21,7 @@ type AccordionProps = { * Additional classnames passed in for styling. */ className?: string; - /** - * Outline variant adds adjusts the `Accordion` style by defining a containing border and other layout adjustments. - * - * **Default is `false`**. - */ - hasOutline?: boolean; + // Design API /** * Used to specify which heading element should be rendered for each `Accordion.Title` child. * @@ -39,33 +37,47 @@ type AccordionProps = { }; type AccordionButtonProps = { + // Component API /** * Child node(s) that can be nested inside component. */ - children: ReactNode; + children?: ReactNode; /** * Additional classnames passed in for styling */ className?: string; /** - * Icon override for component. - * - * **Default is `"expand-more"`**. + * Callback for when accordion is closed. */ - icon?: Extract; + onClose?: () => void; + /** + * Callback for when according is opened. + */ + onOpen?: () => void; + // Design API /** * Used to specify which heading element should be rendered for the title. * If provided, overrides parent headingAs prop. */ headingAs?: HeadingElement; /** - * Callback for when accordion is closed. + * Icon to preceed the text in an accordion header */ - onClose?: () => void; + leadingIcon?: ReactNode; /** - * Callback for when according is opened. + * Secondary text used to describe the content in more detail */ - onOpen?: () => void; + subtitle?: ReactNode; + /** + * The title/heading of the component + */ + title?: string; + /** + * Icon override for component's expand/collapse indicator. + * + * **Default is `"expand-more"`**. + */ + trailingIcon?: Extract; }; type AccordionPanelProps = { @@ -74,7 +86,7 @@ type AccordionPanelProps = { */ children: ReactNode; /** - * Additional classnames passed in for styling + * Additional class names passed in for styling */ className?: string; }; @@ -85,7 +97,7 @@ type AccordionRowProps = { */ children: ReactNode | (({ open }: { open: boolean }) => ReactNode); /** - * Additional classnames passed in for styling. + * Additional class names passed in for styling. */ className?: string; /** @@ -96,18 +108,24 @@ type AccordionRowProps = { * Whether the row can show expandable content */ isExpandable?: boolean; + /** + * Whether the row has a leading icon on the row's trigger + */ + hasLeadingIcon?: boolean; }; const AccordionContext = createContext<{ headingAs: HeadingElement; - hasOutline?: AccordionProps['hasOutline']; size?: AccordionProps['size']; }>({ headingAs: 'h2', }); -const AccordionRowContext = createContext<{ isExpandable?: boolean }>({ +const AccordionRowContext = createContext< + Pick +>({ isExpandable: true, + hasLeadingIcon: false, }); /** @@ -122,18 +140,13 @@ const AccordionRowContext = createContext<{ isExpandable?: boolean }>({ export const Accordion = ({ children, className, - hasOutline, headingAs, size = 'md', ...other }: AccordionProps) => { - const componentClassName = clsx( - hasOutline && styles['accordion--outline'], - className, - ); return ( - -
    + +
    {children}
    @@ -144,38 +157,30 @@ const AccordionButton = ({ children, className, headingAs, - icon = 'expand-more', + leadingIcon, + title, + trailingIcon = 'chevron-down', + subtitle, onClose, onOpen, ...other }: AccordionButtonProps) => { - const { - hasOutline, - headingAs: contextHeadingAs, - size, - } = useContext(AccordionContext); + const { headingAs: contextHeadingAs, size } = useContext(AccordionContext); const { isExpandable } = useContext(AccordionRowContext); const componentClassName = clsx( styles['accordion-button'], - size === 'sm' && styles['accordion-button--sm'], - hasOutline && styles['accordion-button--outline'], + size && styles[`accordion-button--${size}`], !isExpandable && styles['accordion-button--empty'], className, ); - const headingClassName = clsx( - styles['accordion-button__heading'], - size === 'sm' && styles['accordion-button__heading--sm'], - ); - return ( {({ open }) => ( - + )} ); @@ -227,14 +255,14 @@ const AccordionPanel = ({ children, ...other }: AccordionPanelProps) => { - const { hasOutline, size } = useContext(AccordionContext); - const { isExpandable } = useContext(AccordionRowContext); + const { size } = useContext(AccordionContext); + const { isExpandable, hasLeadingIcon } = useContext(AccordionRowContext); const componentClassName = clsx( styles['accordion-panel'], size === 'sm' && styles['accordion-panel--sm'], - hasOutline && styles['accordion-panel--outline'], !isExpandable && styles['accordion-panel--hidden'], + hasLeadingIcon && styles['accordion-panel--leading-icon'], className, ); @@ -250,16 +278,12 @@ const AccordionRow = ({ defaultOpen, children, isExpandable = true, + hasLeadingIcon, ...other }: AccordionRowProps) => { - const { hasOutline } = useContext(AccordionContext); - const componentClassName = clsx( - styles['accordion-row'], - hasOutline && styles['accordion-row--outline'], - className, - ); + const componentClassName = clsx(styles['accordion-row'], className); return ( - + {({ open }) => (
    diff --git a/src/components/Accordion/__snapshots__/Accordion-v2.test.tsx.snap b/src/components/Accordion/__snapshots__/Accordion-v2.test.tsx.snap deleted file mode 100644 index fe16b5aa8..000000000 --- a/src/components/Accordion/__snapshots__/Accordion-v2.test.tsx.snap +++ /dev/null @@ -1,1437 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[` Default story renders snapshot 1`] = ` -
    -
    -
    - -
    -
    -
    -`; - -exports[` EmptyStackedOpen story renders snapshot 1`] = ` -
    -
    -
    - -
    -
    -
    - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At tristique et ullamcorper rhoncus amet pharetra aliquet tortor. Suscipit dui, nunc sit dui tellus massa laoreet tellus. -
    -
    -
    - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At tristique et ullamcorper rhoncus amet pharetra aliquet tortor. Suscipit dui, nunc sit dui tellus massa laoreet tellus. -
    -
    -
    - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At tristique et ullamcorper rhoncus amet pharetra aliquet tortor. Suscipit dui, nunc sit dui tellus massa laoreet tellus. -
    -
    -
    -
    -`; - -exports[` HasLeadingIcon story renders snapshot 1`] = ` -
    -
    -
    - -
    -
    -
    -`; - -exports[` HasLeadingNumberIcon story renders snapshot 1`] = ` -
    -
    -
    - -
    -
    -
    -`; - -exports[` Small story renders snapshot 1`] = ` -
    -
    -
    - -
    -
    -
    -`; - -exports[` Stacked story renders snapshot 1`] = ` -
    -
    -
    - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At tristique et ullamcorper rhoncus amet pharetra aliquet tortor. Suscipit dui, nunc sit dui tellus massa laoreet tellus. -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -`; - -exports[` StackedOpen story renders snapshot 1`] = ` -
    -
    -
    - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At tristique et ullamcorper rhoncus amet pharetra aliquet tortor. Suscipit dui, nunc sit dui tellus massa laoreet tellus. -
    -
    -
    - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At tristique et ullamcorper rhoncus amet pharetra aliquet tortor. Suscipit dui, nunc sit dui tellus massa laoreet tellus. -
    -
    -
    - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At tristique et ullamcorper rhoncus amet pharetra aliquet tortor. Suscipit dui, nunc sit dui tellus massa laoreet tellus. -
    -
    -
    - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At tristique et ullamcorper rhoncus amet pharetra aliquet tortor. Suscipit dui, nunc sit dui tellus massa laoreet tellus. -
    -
    -
    -
    -`; - -exports[` StackedSmall story renders snapshot 1`] = ` -
    -
    -
    - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At tristique et ullamcorper rhoncus amet pharetra aliquet tortor. Suscipit dui, nunc sit dui tellus massa laoreet tellus. -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    -`; - -exports[` StackedSmallOpen story renders snapshot 1`] = ` -
    -
    -
    - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At tristique et ullamcorper rhoncus amet pharetra aliquet tortor. Suscipit dui, nunc sit dui tellus massa laoreet tellus. -
    -
    -
    - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At tristique et ullamcorper rhoncus amet pharetra aliquet tortor. Suscipit dui, nunc sit dui tellus massa laoreet tellus. -
    -
    -
    - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At tristique et ullamcorper rhoncus amet pharetra aliquet tortor. Suscipit dui, nunc sit dui tellus massa laoreet tellus. -
    -
    -
    - -
    - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla amet, massa ultricies iaculis. Quam lacus maecenas nibh malesuada. At tristique et ullamcorper rhoncus amet pharetra aliquet tortor. Suscipit dui, nunc sit dui tellus massa laoreet tellus. -
    -
    -
    -
    -`; - -exports[` TitleAndSubtitle story renders snapshot 1`] = ` -
    -
    -
    - -
    -
    -
    -`; - -exports[` UsingComplexHeaders story renders snapshot 1`] = ` -
    -
    -
    - -
    -
    - -
    -
    -
    -`; - -exports[` UsingRenderProp story renders snapshot 1`] = ` -
    -
    -
    - -
    -
    -
    -`; - -exports[` WithLargeHeader story renders snapshot 1`] = ` -
    -
    -
    - -
    -
    -
    -`; diff --git a/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap b/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap index 8fd60bd3c..60cb5fae4 100644 --- a/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +++ b/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap @@ -2,35 +2,39 @@ exports[` Default story renders snapshot 1`] = `