@codecademy/brand 5.8.1 → 5.9.0-alpha.10aaf123e.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/Accordion/index.d.ts +271 -0
  2. package/dist/Accordion/index.js +130 -0
  3. package/dist/AccordionAreaDeprecated/index.d.ts +20 -0
  4. package/dist/AccordionAreaDeprecated/index.js +60 -0
  5. package/dist/AccordionButtonDeprecated/ButtonDeprecated/index.d.ts +93 -0
  6. package/dist/AccordionButtonDeprecated/ButtonDeprecated/index.js +65 -0
  7. package/dist/AccordionButtonDeprecated/ButtonDeprecated/styles/index.module.scss +104 -0
  8. package/dist/AccordionButtonDeprecated/ButtonDeprecated/styles/mixins.scss +109 -0
  9. package/dist/AccordionButtonDeprecated/ButtonDeprecated/styles/variables.scss +54 -0
  10. package/dist/AccordionButtonDeprecated/ButtonDeprecatedBase/index.d.ts +43 -0
  11. package/dist/AccordionButtonDeprecated/ButtonDeprecatedBase/index.js +71 -0
  12. package/dist/AccordionButtonDeprecated/ButtonDeprecatedBase/styles.module.scss +74 -0
  13. package/dist/AccordionButtonDeprecated/index.d.ts +25 -0
  14. package/dist/AccordionButtonDeprecated/index.js +65 -0
  15. package/dist/AccordionButtonDeprecated/styles.module.scss +62 -0
  16. package/dist/AccordionDeprecated/index.d.ts +39 -0
  17. package/dist/AccordionDeprecated/index.js +39 -0
  18. package/dist/LayoutMenu/AccordionMenu.js +23 -49
  19. package/dist/LayoutMenuVariant/AccordionMenu.js +20 -60
  20. package/dist/index.d.ts +4 -0
  21. package/dist/index.js +4 -0
  22. package/dist/stories/Molecules/Accordion.stories.js +122 -0
  23. package/dist/stories/Molecules/AccordionDeprecated.stories.js +19 -0
  24. package/dist/typings/react.d.ts +7 -0
  25. package/dist/utils/index.d.ts +1 -0
  26. package/dist/utils/index.js +1 -0
  27. package/dist/utils/omitProps.d.ts +10 -0
  28. package/dist/utils/omitProps.js +18 -0
  29. package/package.json +5 -1
@@ -0,0 +1,39 @@
1
+ import * as React from 'react';
2
+ import { AccordionButtonSize, AccordionButtonTheme } from '../AccordionButtonDeprecated';
3
+ export type ChildrenOrExpandedRender = React.ReactNode | ((expanded: boolean) => React.ReactNode);
4
+ export type AccordionDeprecatedProps = {
5
+ children: ChildrenOrExpandedRender;
6
+ /**
7
+ * CSS class name added to the root area container.
8
+ */
9
+ className?: string;
10
+ /**
11
+ * Whether the accordion should start off with expanded state.
12
+ */
13
+ initiallyExpanded?: boolean;
14
+ /**
15
+ * Called when the top button is clicked.
16
+ *
17
+ * @param expanding - New expanded state the accordion will transition to.
18
+ */
19
+ onClick?: (expanding: boolean) => void;
20
+ /**
21
+ * Visual size of the top button.
22
+ */
23
+ size?: AccordionButtonSize;
24
+ /**
25
+ * Visual theme of the top button.
26
+ */
27
+ theme?: AccordionButtonTheme;
28
+ /**
29
+ * Contents to place within the top button.
30
+ */
31
+ top: ChildrenOrExpandedRender;
32
+ };
33
+ /**
34
+ * @deprecated
35
+ * This component is in the old visual identity and will be updated soon.
36
+ *
37
+ * Check the [Gamut Board](https://www.notion.so/codecademy/Gamut-Status-Timeline-dd3c135d3848464ea6eb1b48e68fbb1d) for component status
38
+ */
39
+ export declare const AccordionDeprecated: React.FC<AccordionDeprecatedProps>;
@@ -0,0 +1,39 @@
1
+ import { useState } from 'react';
2
+ import * as React from 'react';
3
+ import { AccordionAreaDeprecated } from '../AccordionAreaDeprecated';
4
+ import { AccordionButtonDeprecated } from '../AccordionButtonDeprecated';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ /**
7
+ * @deprecated
8
+ * This component is in the old visual identity and will be updated soon.
9
+ *
10
+ * Check the [Gamut Board](https://www.notion.so/codecademy/Gamut-Status-Timeline-dd3c135d3848464ea6eb1b48e68fbb1d) for component status
11
+ */
12
+
13
+ export const AccordionDeprecated = ({
14
+ children,
15
+ className,
16
+ initiallyExpanded,
17
+ onClick,
18
+ size,
19
+ theme,
20
+ top
21
+ }) => {
22
+ const [expanded, setExpanded] = useState(!!initiallyExpanded);
23
+ const expandRenderer = renderer => renderer instanceof Function ? renderer(expanded) : renderer;
24
+ return /*#__PURE__*/_jsx(AccordionAreaDeprecated, {
25
+ className: className,
26
+ expanded: expanded,
27
+ top: /*#__PURE__*/_jsx(AccordionButtonDeprecated, {
28
+ expanded: expanded,
29
+ size: size,
30
+ theme: theme,
31
+ onClick: () => {
32
+ setExpanded(!expanded);
33
+ onClick?.(!expanded);
34
+ },
35
+ children: expandRenderer(top)
36
+ }),
37
+ children: expandRenderer(children)
38
+ });
39
+ };
@@ -1,28 +1,15 @@
1
1
  import _styled from "@emotion/styled/base";
2
- import { AccordionAreaDeprecated, Anchor, Text } from '@codecademy/gamut';
3
- import { MiniChevronDownIcon } from '@codecademy/gamut-icons';
4
- import { css, states, transitionConcat } from '@codecademy/gamut-styles';
2
+ import { Box, Text } from '@codecademy/gamut';
5
3
  import * as React from 'react';
4
+ import { Accordion, AccordionBody, AccordionTrigger } from '../Accordion';
6
5
  import { LayoutMenuSection } from './LayoutMenuSection';
7
6
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
- const StyledAccordionArea = /*#__PURE__*/_styled(AccordionAreaDeprecated, {
9
- target: "e1erzfk91",
7
+ const StyledAccordionArea = /*#__PURE__*/_styled(Box, {
8
+ target: "e1erzfk90",
10
9
  label: "StyledAccordionArea"
11
10
  })("padding-bottom:", ({
12
11
  theme
13
- }) => theme.spacing[32], ";position:relative;left:-4px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51L0FjY29yZGlvbk1lbnUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVUyRCIsImZpbGUiOiIuLi8uLi9zcmMvTGF5b3V0TWVudS9BY2NvcmRpb25NZW51LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY29yZGlvbkFyZWFEZXByZWNhdGVkLCBBbmNob3IsIFRleHQgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBNaW5pQ2hldnJvbkRvd25JY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCBzdGF0ZXMsIHRyYW5zaXRpb25Db25jYXQgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgU3R5bGVQcm9wcyB9IGZyb20gJ0Bjb2RlY2FkZW15L3ZhcmlhbmNlJztcbmltcG9ydCB7IFNjYWxlIH0gZnJvbSAnQGNvZGVjYWRlbXkvdmFyaWFuY2UvZGlzdC90eXBlcy9jb25maWcnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBMYXlvdXRNZW51U2VjdGlvbiB9IGZyb20gJy4vTGF5b3V0TWVudVNlY3Rpb24nO1xuXG5jb25zdCBTdHlsZWRBY2NvcmRpb25BcmVhID0gc3R5bGVkKEFjY29yZGlvbkFyZWFEZXByZWNhdGVkKWBcbiAgcGFkZGluZy1ib3R0b206ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2luZ1szMl19O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC00cHg7XG5gO1xuXG5jb25zdCBjaGV2cm9uU3RhdGVzID0gc3RhdGVzKHtcbiAgZXhwYW5kZWQ6IHsgdHJhbnNmb3JtOiAncm90YXRlKDE4MGRlZyknIH0sXG59KTtcblxuY29uc3QgRXhwYW5kQ2hldnJvbiA9IHN0eWxlZChNaW5pQ2hldnJvbkRvd25JY29uKTxcbiAgU3R5bGVQcm9wczx0eXBlb2YgY2hldnJvblN0YXRlcz5cbj4oXG4gIGNzcyh7XG4gICAgdHJhbnNmb3JtOiAncm90YXRlKDBkZWcpJyxcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2l0aW9uQ29uY2F0KFsndHJhbnNmb3JtJ10sICdzbG93JywgJ2Vhc2Utb3V0JyksXG4gIH0pLFxuICBjaGV2cm9uU3RhdGVzXG4pO1xuXG5leHBvcnQgdHlwZSBTZWN0aW9uSXRlbSA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgc2x1Zzogc3RyaW5nO1xuICBocmVmOiBzdHJpbmc7XG4gIG9uQ2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgYmFkZ2U/OiBSZWFjdC5KU1guRWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlY3Rpb24gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgaXRlbXM6IFNlY3Rpb25JdGVtW107XG59O1xuXG5leHBvcnQgY29uc3QgaXNTZWN0aW9uID0gKGl0ZW06IFNlY3Rpb24gfCBSZWFjdC5SZWFjdE5vZGUpOiBpdGVtIGlzIFNlY3Rpb24gPT4ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJlxuICAgIGl0ZW0gIT09IG51bGwgJiZcbiAgICAndGl0bGUnIGluIGl0ZW0gJiZcbiAgICAnc2x1ZycgaW4gaXRlbSAmJlxuICAgICdpdGVtcycgaW4gaXRlbVxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgQWNjb3JkaW9uTWVudVByb3BzID0ge1xuICBzZWN0aW9uOiBTZWN0aW9uO1xuICBvblNlY3Rpb25Ub2dnbGU6IChzZWN0aW9uU2x1Zzogc3RyaW5nKSA9PiB2b2lkO1xuICBvbkl0ZW1DbGljazogKCkgPT4gdm9pZDtcbiAgc2VsZWN0ZWRJdGVtPzogc3RyaW5nO1xuICB2ZXJ0aWNhbFNwYWNpbmc/OiBTY2FsZTx7XG4gICAgcmVhZG9ubHkgcHJvcGVydHk6ICdwYWRkaW5nJztcbiAgICByZWFkb25seSBzY2FsZTogJ3NwYWNpbmcnO1xuICB9Pjtcbn07XG5cbmV4cG9ydCBjb25zdCBBY2NvcmRpb25NZW51OiBSZWFjdC5GQzxBY2NvcmRpb25NZW51UHJvcHM+ID0gKHtcbiAgc2VjdGlvbixcbiAgb25TZWN0aW9uVG9nZ2xlLFxuICBvbkl0ZW1DbGljayxcbiAgc2VsZWN0ZWRJdGVtLFxuICB2ZXJ0aWNhbFNwYWNpbmcsXG59KSA9PiB7XG4gIGNvbnN0IFtleHBhbmRlZCwgc2V0RXhwYW5kZWRdID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQWNjb3JkaW9uQXJlYVxuICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgdG9wPXtcbiAgICAgICAgPEFuY2hvclxuICAgICAgICAgIHZhcmlhbnQ9XCJpbnRlcmZhY2VcIlxuICAgICAgICAgIHB5PXsxMn1cbiAgICAgICAgICBweD17NH1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBvblNlY3Rpb25Ub2dnbGUoc2VjdGlvbi5zbHVnKTtcbiAgICAgICAgICAgIHNldEV4cGFuZGVkKChwcmV2KSA9PiAhcHJldik7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICAgID5cbiAgICAgICAgICB7LyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGdhbXV0L25vLWlubGluZS1zdHlsZSAqL31cbiAgICAgICAgICA8VGV4dCB2YXJpYW50PVwidGl0bGUteHNcIiBzdHlsZT17eyBmbGV4OiAxIH19IHRleHRBbGlnbj1cImxlZnRcIj5cbiAgICAgICAgICAgIHtzZWN0aW9uLnRpdGxlfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICA8RXhwYW5kQ2hldnJvblxuICAgICAgICAgICAgbWw9ezEyfVxuICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICBleHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICAgICAgICBwb3NpdGlvbj1cInJlbGF0aXZlXCJcbiAgICAgICAgICAgIHRvcD17NH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0FuY2hvcj5cbiAgICAgIH1cbiAgICA+XG4gICAgICA8TGF5b3V0TWVudVNlY3Rpb25cbiAgICAgICAgaXRlbXM9e3NlY3Rpb24uaXRlbXN9XG4gICAgICAgIHNlbGVjdGVkSXRlbT17c2VsZWN0ZWRJdGVtfVxuICAgICAgICBvbkl0ZW1DbGljaz17b25JdGVtQ2xpY2t9XG4gICAgICAgIHZlcnRpY2FsU3BhY2luZz17dmVydGljYWxTcGFjaW5nfVxuICAgICAgLz5cbiAgICA8L1N0eWxlZEFjY29yZGlvbkFyZWE+XG4gICk7XG59O1xuIl19 */"));
14
- const chevronStates = states({
15
- expanded: {
16
- transform: 'rotate(180deg)'
17
- }
18
- });
19
- const ExpandChevron = /*#__PURE__*/_styled(MiniChevronDownIcon, {
20
- target: "e1erzfk90",
21
- label: "ExpandChevron"
22
- })(css({
23
- transform: 'rotate(0deg)',
24
- transition: transitionConcat(['transform'], 'slow', 'ease-out')
25
- }), chevronStates, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51L0FjY29yZGlvbk1lbnUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9Cc0IiLCJmaWxlIjoiLi4vLi4vc3JjL0xheW91dE1lbnUvQWNjb3JkaW9uTWVudS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvcmRpb25BcmVhRGVwcmVjYXRlZCwgQW5jaG9yLCBUZXh0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaUNoZXZyb25Eb3duSWNvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCB7IGNzcywgc3RhdGVzLCB0cmFuc2l0aW9uQ29uY2F0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCB7IFN0eWxlUHJvcHMgfSBmcm9tICdAY29kZWNhZGVteS92YXJpYW5jZSc7XG5pbXBvcnQgeyBTY2FsZSB9IGZyb20gJ0Bjb2RlY2FkZW15L3ZhcmlhbmNlL2Rpc3QvdHlwZXMvY29uZmlnJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgTGF5b3V0TWVudVNlY3Rpb24gfSBmcm9tICcuL0xheW91dE1lbnVTZWN0aW9uJztcblxuY29uc3QgU3R5bGVkQWNjb3JkaW9uQXJlYSA9IHN0eWxlZChBY2NvcmRpb25BcmVhRGVwcmVjYXRlZClgXG4gIHBhZGRpbmctYm90dG9tOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNpbmdbMzJdfTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNHB4O1xuYDtcblxuY29uc3QgY2hldnJvblN0YXRlcyA9IHN0YXRlcyh7XG4gIGV4cGFuZGVkOiB7IHRyYW5zZm9ybTogJ3JvdGF0ZSgxODBkZWcpJyB9LFxufSk7XG5cbmNvbnN0IEV4cGFuZENoZXZyb24gPSBzdHlsZWQoTWluaUNoZXZyb25Eb3duSWNvbik8XG4gIFN0eWxlUHJvcHM8dHlwZW9mIGNoZXZyb25TdGF0ZXM+XG4+KFxuICBjc3Moe1xuICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgwZGVnKScsXG4gICAgdHJhbnNpdGlvbjogdHJhbnNpdGlvbkNvbmNhdChbJ3RyYW5zZm9ybSddLCAnc2xvdycsICdlYXNlLW91dCcpLFxuICB9KSxcbiAgY2hldnJvblN0YXRlc1xuKTtcblxuZXhwb3J0IHR5cGUgU2VjdGlvbkl0ZW0gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgaHJlZjogc3RyaW5nO1xuICBvbkNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gIGJhZGdlPzogUmVhY3QuSlNYLkVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBTZWN0aW9uID0ge1xuICB0aXRsZTogc3RyaW5nO1xuICBzbHVnOiBzdHJpbmc7XG4gIGl0ZW1zOiBTZWN0aW9uSXRlbVtdO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU2VjdGlvbiA9IChpdGVtOiBTZWN0aW9uIHwgUmVhY3QuUmVhY3ROb2RlKTogaXRlbSBpcyBTZWN0aW9uID0+IHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiZcbiAgICBpdGVtICE9PSBudWxsICYmXG4gICAgJ3RpdGxlJyBpbiBpdGVtICYmXG4gICAgJ3NsdWcnIGluIGl0ZW0gJiZcbiAgICAnaXRlbXMnIGluIGl0ZW1cbiAgKTtcbn07XG5cbmV4cG9ydCB0eXBlIEFjY29yZGlvbk1lbnVQcm9wcyA9IHtcbiAgc2VjdGlvbjogU2VjdGlvbjtcbiAgb25TZWN0aW9uVG9nZ2xlOiAoc2VjdGlvblNsdWc6IHN0cmluZykgPT4gdm9pZDtcbiAgb25JdGVtQ2xpY2s6ICgpID0+IHZvaWQ7XG4gIHNlbGVjdGVkSXRlbT86IHN0cmluZztcbiAgdmVydGljYWxTcGFjaW5nPzogU2NhbGU8e1xuICAgIHJlYWRvbmx5IHByb3BlcnR5OiAncGFkZGluZyc7XG4gICAgcmVhZG9ubHkgc2NhbGU6ICdzcGFjaW5nJztcbiAgfT47XG59O1xuXG5leHBvcnQgY29uc3QgQWNjb3JkaW9uTWVudTogUmVhY3QuRkM8QWNjb3JkaW9uTWVudVByb3BzPiA9ICh7XG4gIHNlY3Rpb24sXG4gIG9uU2VjdGlvblRvZ2dsZSxcbiAgb25JdGVtQ2xpY2ssXG4gIHNlbGVjdGVkSXRlbSxcbiAgdmVydGljYWxTcGFjaW5nLFxufSkgPT4ge1xuICBjb25zdCBbZXhwYW5kZWQsIHNldEV4cGFuZGVkXSA9IFJlYWN0LnVzZVN0YXRlKHRydWUpO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZEFjY29yZGlvbkFyZWFcbiAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgIHRvcD17XG4gICAgICAgIDxBbmNob3JcbiAgICAgICAgICB2YXJpYW50PVwiaW50ZXJmYWNlXCJcbiAgICAgICAgICBweT17MTJ9XG4gICAgICAgICAgcHg9ezR9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgb25TZWN0aW9uVG9nZ2xlKHNlY3Rpb24uc2x1Zyk7XG4gICAgICAgICAgICBzZXRFeHBhbmRlZCgocHJldikgPT4gIXByZXYpO1xuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICAgICAgZGlzcGxheT1cImZsZXhcIlxuICAgICAgICA+XG4gICAgICAgICAgey8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBnYW11dC9uby1pbmxpbmUtc3R5bGUgKi99XG4gICAgICAgICAgPFRleHQgdmFyaWFudD1cInRpdGxlLXhzXCIgc3R5bGU9e3sgZmxleDogMSB9fSB0ZXh0QWxpZ249XCJsZWZ0XCI+XG4gICAgICAgICAgICB7c2VjdGlvbi50aXRsZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPEV4cGFuZENoZXZyb25cbiAgICAgICAgICAgIG1sPXsxMn1cbiAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAgICAgcG9zaXRpb249XCJyZWxhdGl2ZVwiXG4gICAgICAgICAgICB0b3A9ezR9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9BbmNob3I+XG4gICAgICB9XG4gICAgPlxuICAgICAgPExheW91dE1lbnVTZWN0aW9uXG4gICAgICAgIGl0ZW1zPXtzZWN0aW9uLml0ZW1zfVxuICAgICAgICBzZWxlY3RlZEl0ZW09e3NlbGVjdGVkSXRlbX1cbiAgICAgICAgb25JdGVtQ2xpY2s9e29uSXRlbUNsaWNrfVxuICAgICAgICB2ZXJ0aWNhbFNwYWNpbmc9e3ZlcnRpY2FsU3BhY2luZ31cbiAgICAgIC8+XG4gICAgPC9TdHlsZWRBY2NvcmRpb25BcmVhPlxuICApO1xufTtcbiJdfQ== */");
12
+ }) => theme.spacing[32], ";position:relative;left:-4px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51L0FjY29yZGlvbk1lbnUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVF1QyIsImZpbGUiOiIuLi8uLi9zcmMvTGF5b3V0TWVudS9BY2NvcmRpb25NZW51LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IFNjYWxlIH0gZnJvbSAnQGNvZGVjYWRlbXkvdmFyaWFuY2UvZGlzdC90eXBlcy9jb25maWcnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBBY2NvcmRpb24sIEFjY29yZGlvbkJvZHksIEFjY29yZGlvblRyaWdnZXIgfSBmcm9tICcuLi9BY2NvcmRpb24nO1xuaW1wb3J0IHsgTGF5b3V0TWVudVNlY3Rpb24gfSBmcm9tICcuL0xheW91dE1lbnVTZWN0aW9uJztcblxuY29uc3QgU3R5bGVkQWNjb3JkaW9uQXJlYSA9IHN0eWxlZChCb3gpYFxuICBwYWRkaW5nLWJvdHRvbTogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjaW5nWzMyXX07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTRweDtcbmA7XG5cbmV4cG9ydCB0eXBlIFNlY3Rpb25JdGVtID0ge1xuICB0aXRsZTogc3RyaW5nO1xuICBzbHVnOiBzdHJpbmc7XG4gIGhyZWY6IHN0cmluZztcbiAgb25DbGljazogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBiYWRnZT86IFJlYWN0LkpTWC5FbGVtZW50O1xufTtcblxuZXhwb3J0IHR5cGUgU2VjdGlvbiA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgc2x1Zzogc3RyaW5nO1xuICBpdGVtczogU2VjdGlvbkl0ZW1bXTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NlY3Rpb24gPSAoaXRlbTogU2VjdGlvbiB8IFJlYWN0LlJlYWN0Tm9kZSk6IGl0ZW0gaXMgU2VjdGlvbiA9PiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmXG4gICAgaXRlbSAhPT0gbnVsbCAmJlxuICAgICd0aXRsZScgaW4gaXRlbSAmJlxuICAgICdzbHVnJyBpbiBpdGVtICYmXG4gICAgJ2l0ZW1zJyBpbiBpdGVtXG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBBY2NvcmRpb25NZW51UHJvcHMgPSB7XG4gIHNlY3Rpb246IFNlY3Rpb247XG4gIG9uU2VjdGlvblRvZ2dsZTogKHNlY3Rpb25TbHVnOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uSXRlbUNsaWNrOiAoKSA9PiB2b2lkO1xuICBzZWxlY3RlZEl0ZW0/OiBzdHJpbmc7XG4gIHZlcnRpY2FsU3BhY2luZz86IFNjYWxlPHtcbiAgICByZWFkb25seSBwcm9wZXJ0eTogJ3BhZGRpbmcnO1xuICAgIHJlYWRvbmx5IHNjYWxlOiAnc3BhY2luZyc7XG4gIH0+O1xufTtcblxuZXhwb3J0IGNvbnN0IEFjY29yZGlvbk1lbnU6IFJlYWN0LkZDPEFjY29yZGlvbk1lbnVQcm9wcz4gPSAoe1xuICBzZWN0aW9uLFxuICBvblNlY3Rpb25Ub2dnbGUsXG4gIG9uSXRlbUNsaWNrLFxuICBzZWxlY3RlZEl0ZW0sXG4gIHZlcnRpY2FsU3BhY2luZyxcbn0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQWNjb3JkaW9uQXJlYT5cbiAgICAgIDxBY2NvcmRpb25cbiAgICAgICAgaW5pdGlhbGx5RXhwYW5kZWRcbiAgICAgICAgb25DbGljaz17KCkgPT4gb25TZWN0aW9uVG9nZ2xlKHNlY3Rpb24uc2x1Zyl9XG4gICAgICA+XG4gICAgICAgIDxBY2NvcmRpb25UcmlnZ2VyIHB5PXsxMn0gcHg9ezR9PlxuICAgICAgICAgIDxUZXh0IHZhcmlhbnQ9XCJ0aXRsZS14c1wiIHRleHRBbGlnbj1cImxlZnRcIj5cbiAgICAgICAgICAgIHtzZWN0aW9uLnRpdGxlfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9BY2NvcmRpb25UcmlnZ2VyPlxuICAgICAgICA8QWNjb3JkaW9uQm9keT5cbiAgICAgICAgICA8TGF5b3V0TWVudVNlY3Rpb25cbiAgICAgICAgICAgIGl0ZW1zPXtzZWN0aW9uLml0ZW1zfVxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtPXtzZWxlY3RlZEl0ZW19XG4gICAgICAgICAgICBvbkl0ZW1DbGljaz17b25JdGVtQ2xpY2t9XG4gICAgICAgICAgICB2ZXJ0aWNhbFNwYWNpbmc9e3ZlcnRpY2FsU3BhY2luZ31cbiAgICAgICAgICAvPlxuICAgICAgICA8L0FjY29yZGlvbkJvZHk+XG4gICAgICA8L0FjY29yZGlvbj5cbiAgICA8L1N0eWxlZEFjY29yZGlvbkFyZWE+XG4gICk7XG59O1xuIl19 */"));
26
13
  export const isSection = item => {
27
14
  return typeof item === 'object' && item !== null && 'title' in item && 'slug' in item && 'items' in item;
28
15
  };
@@ -33,39 +20,26 @@ export const AccordionMenu = ({
33
20
  selectedItem,
34
21
  verticalSpacing
35
22
  }) => {
36
- const [expanded, setExpanded] = React.useState(true);
37
23
  return /*#__PURE__*/_jsx(StyledAccordionArea, {
38
- expanded: expanded,
39
- top: /*#__PURE__*/_jsxs(Anchor, {
40
- variant: "interface",
41
- py: 12,
42
- px: 4,
43
- onClick: () => {
44
- onSectionToggle(section.slug);
45
- setExpanded(prev => !prev);
46
- },
47
- "aria-expanded": expanded,
48
- display: "flex",
49
- children: [/*#__PURE__*/_jsx(Text, {
50
- variant: "title-xs",
51
- style: {
52
- flex: 1
53
- },
54
- textAlign: "left",
55
- children: section.title
56
- }), /*#__PURE__*/_jsx(ExpandChevron, {
57
- ml: 12,
58
- size: 14,
59
- expanded: expanded,
60
- position: "relative",
61
- top: 4
24
+ children: /*#__PURE__*/_jsxs(Accordion, {
25
+ initiallyExpanded: true,
26
+ onClick: () => onSectionToggle(section.slug),
27
+ children: [/*#__PURE__*/_jsx(AccordionTrigger, {
28
+ py: 12,
29
+ px: 4,
30
+ children: /*#__PURE__*/_jsx(Text, {
31
+ variant: "title-xs",
32
+ textAlign: "left",
33
+ children: section.title
34
+ })
35
+ }), /*#__PURE__*/_jsx(AccordionBody, {
36
+ children: /*#__PURE__*/_jsx(LayoutMenuSection, {
37
+ items: section.items,
38
+ selectedItem: selectedItem,
39
+ onItemClick: onItemClick,
40
+ verticalSpacing: verticalSpacing
41
+ })
62
42
  })]
63
- }),
64
- children: /*#__PURE__*/_jsx(LayoutMenuSection, {
65
- items: section.items,
66
- selectedItem: selectedItem,
67
- onItemClick: onItemClick,
68
- verticalSpacing: verticalSpacing
69
43
  })
70
44
  });
71
45
  };
@@ -1,66 +1,31 @@
1
1
  import _styled from "@emotion/styled/base";
2
- function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
3
- import { AccordionAreaDeprecated, Anchor, Box, Text } from '@codecademy/gamut';
4
- import { MiniChevronDownIcon } from '@codecademy/gamut-icons';
5
- import { css, states, transitionConcat } from '@codecademy/gamut-styles';
6
- import React, { useState } from 'react';
2
+ import { Box, Text } from '@codecademy/gamut';
3
+ import React from 'react';
4
+ import { Accordion, AccordionBody, AccordionTrigger } from '../Accordion';
7
5
  import { LayoutMenuSection } from './LayoutMenuSection';
8
6
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
- const StyledAccordionArea = /*#__PURE__*/_styled(AccordionAreaDeprecated, {
10
- target: "e12elcd22",
7
+ const StyledAccordionArea = /*#__PURE__*/_styled(Box, {
8
+ target: "e12elcd20",
11
9
  label: "StyledAccordionArea"
12
10
  })("padding-block:", ({
13
11
  theme
14
12
  }) => theme.spacing[16], ";position:relative;left:-4px;&:not(:first-child){border-top:1px solid ", ({
15
13
  theme
16
- }) => theme.colors['navy-300'], ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51VmFyaWFudC9BY2NvcmRpb25NZW51LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTMkQiLCJmaWxlIjoiLi4vLi4vc3JjL0xheW91dE1lbnVWYXJpYW50L0FjY29yZGlvbk1lbnUudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjb3JkaW9uQXJlYURlcHJlY2F0ZWQsIEFuY2hvciwgQm94LCBUZXh0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaUNoZXZyb25Eb3duSWNvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCB7IGNzcywgc3RhdGVzLCB0cmFuc2l0aW9uQ29uY2F0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCB7IFN0eWxlUHJvcHMgfSBmcm9tICdAY29kZWNhZGVteS92YXJpYW5jZSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IExheW91dE1lbnVTZWN0aW9uIH0gZnJvbSAnLi9MYXlvdXRNZW51U2VjdGlvbic7XG5cbmNvbnN0IFN0eWxlZEFjY29yZGlvbkFyZWEgPSBzdHlsZWQoQWNjb3JkaW9uQXJlYURlcHJlY2F0ZWQpYFxuICBwYWRkaW5nLWJsb2NrOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNpbmdbMTZdfTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNHB4O1xuXG4gICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yc1snbmF2eS0zMDAnXX07XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZEFuY2hvciA9IHN0eWxlZChBbmNob3IpYFxuICA6aG92ZXIge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG5gO1xuXG5jb25zdCBjaGV2cm9uU3RhdGVzID0gc3RhdGVzKHtcbiAgZXhwYW5kZWQ6IHsgdHJhbnNmb3JtOiAncm90YXRlKDE4MGRlZyknIH0sXG59KTtcblxuY29uc3QgRXhwYW5kQ2hldnJvbiA9IHN0eWxlZChNaW5pQ2hldnJvbkRvd25JY29uKTxcbiAgU3R5bGVQcm9wczx0eXBlb2YgY2hldnJvblN0YXRlcz5cbj4oXG4gIGNzcyh7XG4gICAgdHJhbnNmb3JtOiAncm90YXRlKDBkZWcpJyxcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2l0aW9uQ29uY2F0KFsndHJhbnNmb3JtJ10sICdzbG93JywgJ2Vhc2Utb3V0JyksXG4gIH0pLFxuICBjaGV2cm9uU3RhdGVzXG4pO1xuXG5leHBvcnQgdHlwZSBTZWN0aW9uSXRlbSA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgc2x1Zzogc3RyaW5nO1xuICBocmVmOiBzdHJpbmc7XG4gIG9uQ2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgYmFkZ2U/OiBSZWFjdC5KU1guRWxlbWVudDtcbiAgdmFyaWFudD86IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBBbmNob3I+Wyd2YXJpYW50J107XG59O1xuXG5leHBvcnQgdHlwZSBTZWN0aW9uID0ge1xuICB0aXRsZTogc3RyaW5nO1xuICBzbHVnOiBzdHJpbmc7XG4gIGl0ZW1zOiBTZWN0aW9uSXRlbVtdO1xufTtcblxuZXhwb3J0IHR5cGUgQWNjb3JkaW9uTWVudVByb3BzID0ge1xuICBzZWN0aW9uOiBTZWN0aW9uO1xuICBvblNlY3Rpb25Ub2dnbGU6IChzZWN0aW9uU2x1Zzogc3RyaW5nKSA9PiB2b2lkO1xuICBvbkl0ZW1DbGljazogKCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCBjb25zdCBBY2NvcmRpb25NZW51OiBSZWFjdC5GQzxBY2NvcmRpb25NZW51UHJvcHM+ID0gKHtcbiAgc2VjdGlvbixcbiAgb25TZWN0aW9uVG9nZ2xlLFxuICBvbkl0ZW1DbGljayxcbn0pID0+IHtcbiAgY29uc3QgW2V4cGFuZGVkLCBzZXRFeHBhbmRlZF0gPSB1c2VTdGF0ZSh0cnVlKTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRBY2NvcmRpb25BcmVhXG4gICAgICBleHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICB0b3A9e1xuICAgICAgICA8U3R5bGVkQW5jaG9yXG4gICAgICAgICAgdmFyaWFudD1cImludGVyZmFjZVwiXG4gICAgICAgICAgcGI9ezEyfVxuICAgICAgICAgIHB4PXs0fVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIG9uU2VjdGlvblRvZ2dsZShzZWN0aW9uLnNsdWcpO1xuICAgICAgICAgICAgc2V0RXhwYW5kZWQoKHByZXYpID0+ICFwcmV2KTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAgIGRpc3BsYXk9XCJmbGV4XCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBkaXNwbGF5PVwiZmxleFwiIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiIHdpZHRoPVwiMTAwJVwiPlxuICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgdmFyaWFudD1cInAtc21hbGxcIlxuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZ2FtdXQvbm8taW5saW5lLXN0eWxlXG4gICAgICAgICAgICAgIHN0eWxlPXt7IGZsZXg6IDEsIGZvbnRXZWlnaHQ6ICdib2xkJyB9fVxuICAgICAgICAgICAgICB0ZXh0QWxpZ249XCJsZWZ0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3NlY3Rpb24udGl0bGV9XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICA8RXhwYW5kQ2hldnJvblxuICAgICAgICAgICAgICBtbD17MTJ9XG4gICAgICAgICAgICAgIHNpemU9ezE2fVxuICAgICAgICAgICAgICBleHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICAgICAgICAgIHBvc2l0aW9uPVwicmVsYXRpdmVcIlxuICAgICAgICAgICAgICB0b3A9ezR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICA8L1N0eWxlZEFuY2hvcj5cbiAgICAgIH1cbiAgICA+XG4gICAgICA8TGF5b3V0TWVudVNlY3Rpb24gaXRlbXM9e3NlY3Rpb24uaXRlbXN9IG9uSXRlbUNsaWNrPXtvbkl0ZW1DbGlja30gLz5cbiAgICA8L1N0eWxlZEFjY29yZGlvbkFyZWE+XG4gICk7XG59O1xuIl19 */"));
17
- const StyledAnchor = /*#__PURE__*/_styled(Anchor, {
18
- target: "e12elcd21",
19
- label: "StyledAnchor"
20
- })(process.env.NODE_ENV === "production" ? {
21
- name: "8a4698",
22
- styles: ":hover{color:inherit;}"
23
- } : {
24
- name: "8a4698",
25
- styles: ":hover{color:inherit;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51VmFyaWFudC9BY2NvcmRpb25NZW51LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQm1DIiwiZmlsZSI6Ii4uLy4uL3NyYy9MYXlvdXRNZW51VmFyaWFudC9BY2NvcmRpb25NZW51LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY29yZGlvbkFyZWFEZXByZWNhdGVkLCBBbmNob3IsIEJveCwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlDaGV2cm9uRG93bkljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHN0YXRlcywgdHJhbnNpdGlvbkNvbmNhdCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyBTdHlsZVByb3BzIH0gZnJvbSAnQGNvZGVjYWRlbXkvdmFyaWFuY2UnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBMYXlvdXRNZW51U2VjdGlvbiB9IGZyb20gJy4vTGF5b3V0TWVudVNlY3Rpb24nO1xuXG5jb25zdCBTdHlsZWRBY2NvcmRpb25BcmVhID0gc3R5bGVkKEFjY29yZGlvbkFyZWFEZXByZWNhdGVkKWBcbiAgcGFkZGluZy1ibG9jazogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjaW5nWzE2XX07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTRweDtcblxuICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnNbJ25hdnktMzAwJ119O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRBbmNob3IgPSBzdHlsZWQoQW5jaG9yKWBcbiAgOmhvdmVyIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuYDtcblxuY29uc3QgY2hldnJvblN0YXRlcyA9IHN0YXRlcyh7XG4gIGV4cGFuZGVkOiB7IHRyYW5zZm9ybTogJ3JvdGF0ZSgxODBkZWcpJyB9LFxufSk7XG5cbmNvbnN0IEV4cGFuZENoZXZyb24gPSBzdHlsZWQoTWluaUNoZXZyb25Eb3duSWNvbik8XG4gIFN0eWxlUHJvcHM8dHlwZW9mIGNoZXZyb25TdGF0ZXM+XG4+KFxuICBjc3Moe1xuICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgwZGVnKScsXG4gICAgdHJhbnNpdGlvbjogdHJhbnNpdGlvbkNvbmNhdChbJ3RyYW5zZm9ybSddLCAnc2xvdycsICdlYXNlLW91dCcpLFxuICB9KSxcbiAgY2hldnJvblN0YXRlc1xuKTtcblxuZXhwb3J0IHR5cGUgU2VjdGlvbkl0ZW0gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgaHJlZjogc3RyaW5nO1xuICBvbkNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gIGJhZGdlPzogUmVhY3QuSlNYLkVsZW1lbnQ7XG4gIHZhcmlhbnQ/OiBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQW5jaG9yPlsndmFyaWFudCddO1xufTtcblxuZXhwb3J0IHR5cGUgU2VjdGlvbiA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgc2x1Zzogc3RyaW5nO1xuICBpdGVtczogU2VjdGlvbkl0ZW1bXTtcbn07XG5cbmV4cG9ydCB0eXBlIEFjY29yZGlvbk1lbnVQcm9wcyA9IHtcbiAgc2VjdGlvbjogU2VjdGlvbjtcbiAgb25TZWN0aW9uVG9nZ2xlOiAoc2VjdGlvblNsdWc6IHN0cmluZykgPT4gdm9pZDtcbiAgb25JdGVtQ2xpY2s6ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgY29uc3QgQWNjb3JkaW9uTWVudTogUmVhY3QuRkM8QWNjb3JkaW9uTWVudVByb3BzPiA9ICh7XG4gIHNlY3Rpb24sXG4gIG9uU2VjdGlvblRvZ2dsZSxcbiAgb25JdGVtQ2xpY2ssXG59KSA9PiB7XG4gIGNvbnN0IFtleHBhbmRlZCwgc2V0RXhwYW5kZWRdID0gdXNlU3RhdGUodHJ1ZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQWNjb3JkaW9uQXJlYVxuICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgdG9wPXtcbiAgICAgICAgPFN0eWxlZEFuY2hvclxuICAgICAgICAgIHZhcmlhbnQ9XCJpbnRlcmZhY2VcIlxuICAgICAgICAgIHBiPXsxMn1cbiAgICAgICAgICBweD17NH1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBvblNlY3Rpb25Ub2dnbGUoc2VjdGlvbi5zbHVnKTtcbiAgICAgICAgICAgIHNldEV4cGFuZGVkKChwcmV2KSA9PiAhcHJldik7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggZGlzcGxheT1cImZsZXhcIiBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIiB3aWR0aD1cIjEwMCVcIj5cbiAgICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJwLXNtYWxsXCJcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGdhbXV0L25vLWlubGluZS1zdHlsZVxuICAgICAgICAgICAgICBzdHlsZT17eyBmbGV4OiAxLCBmb250V2VpZ2h0OiAnYm9sZCcgfX1cbiAgICAgICAgICAgICAgdGV4dEFsaWduPVwibGVmdFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtzZWN0aW9uLnRpdGxlfVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgPEV4cGFuZENoZXZyb25cbiAgICAgICAgICAgICAgbWw9ezEyfVxuICAgICAgICAgICAgICBzaXplPXsxNn1cbiAgICAgICAgICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAgICAgICBwb3NpdGlvbj1cInJlbGF0aXZlXCJcbiAgICAgICAgICAgICAgdG9wPXs0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgPC9TdHlsZWRBbmNob3I+XG4gICAgICB9XG4gICAgPlxuICAgICAgPExheW91dE1lbnVTZWN0aW9uIGl0ZW1zPXtzZWN0aW9uLml0ZW1zfSBvbkl0ZW1DbGljaz17b25JdGVtQ2xpY2t9IC8+XG4gICAgPC9TdHlsZWRBY2NvcmRpb25BcmVhPlxuICApO1xufTtcbiJdfQ== */",
26
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
27
- });
28
- const chevronStates = states({
29
- expanded: {
30
- transform: 'rotate(180deg)'
31
- }
32
- });
33
- const ExpandChevron = /*#__PURE__*/_styled(MiniChevronDownIcon, {
34
- target: "e12elcd20",
35
- label: "ExpandChevron"
36
- })(css({
37
- transform: 'rotate(0deg)',
38
- transition: transitionConcat(['transform'], 'slow', 'ease-out')
39
- }), chevronStates, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51VmFyaWFudC9BY2NvcmRpb25NZW51LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2QnNCIiwiZmlsZSI6Ii4uLy4uL3NyYy9MYXlvdXRNZW51VmFyaWFudC9BY2NvcmRpb25NZW51LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY29yZGlvbkFyZWFEZXByZWNhdGVkLCBBbmNob3IsIEJveCwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlDaGV2cm9uRG93bkljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHN0YXRlcywgdHJhbnNpdGlvbkNvbmNhdCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyBTdHlsZVByb3BzIH0gZnJvbSAnQGNvZGVjYWRlbXkvdmFyaWFuY2UnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBMYXlvdXRNZW51U2VjdGlvbiB9IGZyb20gJy4vTGF5b3V0TWVudVNlY3Rpb24nO1xuXG5jb25zdCBTdHlsZWRBY2NvcmRpb25BcmVhID0gc3R5bGVkKEFjY29yZGlvbkFyZWFEZXByZWNhdGVkKWBcbiAgcGFkZGluZy1ibG9jazogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjaW5nWzE2XX07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTRweDtcblxuICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnNbJ25hdnktMzAwJ119O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRBbmNob3IgPSBzdHlsZWQoQW5jaG9yKWBcbiAgOmhvdmVyIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuYDtcblxuY29uc3QgY2hldnJvblN0YXRlcyA9IHN0YXRlcyh7XG4gIGV4cGFuZGVkOiB7IHRyYW5zZm9ybTogJ3JvdGF0ZSgxODBkZWcpJyB9LFxufSk7XG5cbmNvbnN0IEV4cGFuZENoZXZyb24gPSBzdHlsZWQoTWluaUNoZXZyb25Eb3duSWNvbik8XG4gIFN0eWxlUHJvcHM8dHlwZW9mIGNoZXZyb25TdGF0ZXM+XG4+KFxuICBjc3Moe1xuICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgwZGVnKScsXG4gICAgdHJhbnNpdGlvbjogdHJhbnNpdGlvbkNvbmNhdChbJ3RyYW5zZm9ybSddLCAnc2xvdycsICdlYXNlLW91dCcpLFxuICB9KSxcbiAgY2hldnJvblN0YXRlc1xuKTtcblxuZXhwb3J0IHR5cGUgU2VjdGlvbkl0ZW0gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgaHJlZjogc3RyaW5nO1xuICBvbkNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gIGJhZGdlPzogUmVhY3QuSlNYLkVsZW1lbnQ7XG4gIHZhcmlhbnQ/OiBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQW5jaG9yPlsndmFyaWFudCddO1xufTtcblxuZXhwb3J0IHR5cGUgU2VjdGlvbiA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgc2x1Zzogc3RyaW5nO1xuICBpdGVtczogU2VjdGlvbkl0ZW1bXTtcbn07XG5cbmV4cG9ydCB0eXBlIEFjY29yZGlvbk1lbnVQcm9wcyA9IHtcbiAgc2VjdGlvbjogU2VjdGlvbjtcbiAgb25TZWN0aW9uVG9nZ2xlOiAoc2VjdGlvblNsdWc6IHN0cmluZykgPT4gdm9pZDtcbiAgb25JdGVtQ2xpY2s6ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgY29uc3QgQWNjb3JkaW9uTWVudTogUmVhY3QuRkM8QWNjb3JkaW9uTWVudVByb3BzPiA9ICh7XG4gIHNlY3Rpb24sXG4gIG9uU2VjdGlvblRvZ2dsZSxcbiAgb25JdGVtQ2xpY2ssXG59KSA9PiB7XG4gIGNvbnN0IFtleHBhbmRlZCwgc2V0RXhwYW5kZWRdID0gdXNlU3RhdGUodHJ1ZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQWNjb3JkaW9uQXJlYVxuICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgdG9wPXtcbiAgICAgICAgPFN0eWxlZEFuY2hvclxuICAgICAgICAgIHZhcmlhbnQ9XCJpbnRlcmZhY2VcIlxuICAgICAgICAgIHBiPXsxMn1cbiAgICAgICAgICBweD17NH1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBvblNlY3Rpb25Ub2dnbGUoc2VjdGlvbi5zbHVnKTtcbiAgICAgICAgICAgIHNldEV4cGFuZGVkKChwcmV2KSA9PiAhcHJldik7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggZGlzcGxheT1cImZsZXhcIiBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIiB3aWR0aD1cIjEwMCVcIj5cbiAgICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJwLXNtYWxsXCJcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGdhbXV0L25vLWlubGluZS1zdHlsZVxuICAgICAgICAgICAgICBzdHlsZT17eyBmbGV4OiAxLCBmb250V2VpZ2h0OiAnYm9sZCcgfX1cbiAgICAgICAgICAgICAgdGV4dEFsaWduPVwibGVmdFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtzZWN0aW9uLnRpdGxlfVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgPEV4cGFuZENoZXZyb25cbiAgICAgICAgICAgICAgbWw9ezEyfVxuICAgICAgICAgICAgICBzaXplPXsxNn1cbiAgICAgICAgICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAgICAgICBwb3NpdGlvbj1cInJlbGF0aXZlXCJcbiAgICAgICAgICAgICAgdG9wPXs0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgPC9TdHlsZWRBbmNob3I+XG4gICAgICB9XG4gICAgPlxuICAgICAgPExheW91dE1lbnVTZWN0aW9uIGl0ZW1zPXtzZWN0aW9uLml0ZW1zfSBvbkl0ZW1DbGljaz17b25JdGVtQ2xpY2t9IC8+XG4gICAgPC9TdHlsZWRBY2NvcmRpb25BcmVhPlxuICApO1xufTtcbiJdfQ== */");
14
+ }) => theme.colors['navy-300'], ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51VmFyaWFudC9BY2NvcmRpb25NZW51LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPdUMiLCJmaWxlIjoiLi4vLi4vc3JjL0xheW91dE1lbnVWYXJpYW50L0FjY29yZGlvbk1lbnUudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5jaG9yLCBCb3gsIFRleHQgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBBY2NvcmRpb24sIEFjY29yZGlvbkJvZHksIEFjY29yZGlvblRyaWdnZXIgfSBmcm9tICcuLi9BY2NvcmRpb24nO1xuaW1wb3J0IHsgTGF5b3V0TWVudVNlY3Rpb24gfSBmcm9tICcuL0xheW91dE1lbnVTZWN0aW9uJztcblxuY29uc3QgU3R5bGVkQWNjb3JkaW9uQXJlYSA9IHN0eWxlZChCb3gpYFxuICBwYWRkaW5nLWJsb2NrOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNpbmdbMTZdfTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNHB4O1xuXG4gICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yc1snbmF2eS0zMDAnXX07XG4gIH1cbmA7XG5cbmV4cG9ydCB0eXBlIFNlY3Rpb25JdGVtID0ge1xuICB0aXRsZTogc3RyaW5nO1xuICBzbHVnOiBzdHJpbmc7XG4gIGhyZWY6IHN0cmluZztcbiAgb25DbGljazogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBiYWRnZT86IFJlYWN0LkpTWC5FbGVtZW50O1xuICB2YXJpYW50PzogUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEFuY2hvcj5bJ3ZhcmlhbnQnXTtcbn07XG5cbmV4cG9ydCB0eXBlIFNlY3Rpb24gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgaXRlbXM6IFNlY3Rpb25JdGVtW107XG59O1xuXG5leHBvcnQgdHlwZSBBY2NvcmRpb25NZW51UHJvcHMgPSB7XG4gIHNlY3Rpb246IFNlY3Rpb247XG4gIG9uU2VjdGlvblRvZ2dsZTogKHNlY3Rpb25TbHVnOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG9uSXRlbUNsaWNrOiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IGNvbnN0IEFjY29yZGlvbk1lbnU6IFJlYWN0LkZDPEFjY29yZGlvbk1lbnVQcm9wcz4gPSAoe1xuICBzZWN0aW9uLFxuICBvblNlY3Rpb25Ub2dnbGUsXG4gIG9uSXRlbUNsaWNrLFxufSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxTdHlsZWRBY2NvcmRpb25BcmVhPlxuICAgICAgPEFjY29yZGlvblxuICAgICAgICBpbml0aWFsbHlFeHBhbmRlZFxuICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblNlY3Rpb25Ub2dnbGUoc2VjdGlvbi5zbHVnKX1cbiAgICAgID5cbiAgICAgICAgPEFjY29yZGlvblRyaWdnZXIgcGI9ezEyfSBweD17NH0gd2lkdGg9XCIxMDAlXCI+XG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJwLXNtYWxsXCJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBnYW11dC9uby1pbmxpbmUtc3R5bGVcbiAgICAgICAgICAgIHN0eWxlPXt7IGZsZXg6IDEsIGZvbnRXZWlnaHQ6ICdib2xkJyB9fVxuICAgICAgICAgICAgdGV4dEFsaWduPVwibGVmdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlY3Rpb24udGl0bGV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L0FjY29yZGlvblRyaWdnZXI+XG4gICAgICAgIDxBY2NvcmRpb25Cb2R5PlxuICAgICAgICAgIDxMYXlvdXRNZW51U2VjdGlvbiBpdGVtcz17c2VjdGlvbi5pdGVtc30gb25JdGVtQ2xpY2s9e29uSXRlbUNsaWNrfSAvPlxuICAgICAgICA8L0FjY29yZGlvbkJvZHk+XG4gICAgICA8L0FjY29yZGlvbj5cbiAgICA8L1N0eWxlZEFjY29yZGlvbkFyZWE+XG4gICk7XG59O1xuIl19 */"));
40
15
  export const AccordionMenu = ({
41
16
  section,
42
17
  onSectionToggle,
43
18
  onItemClick
44
19
  }) => {
45
- const [expanded, setExpanded] = useState(true);
46
20
  return /*#__PURE__*/_jsx(StyledAccordionArea, {
47
- expanded: expanded,
48
- top: /*#__PURE__*/_jsx(StyledAnchor, {
49
- variant: "interface",
50
- pb: 12,
51
- px: 4,
52
- onClick: () => {
53
- onSectionToggle(section.slug);
54
- setExpanded(prev => !prev);
55
- },
56
- "aria-expanded": expanded,
57
- display: "flex",
58
- width: "100%",
59
- children: /*#__PURE__*/_jsxs(Box, {
60
- display: "flex",
61
- justifyContent: "space-between",
21
+ children: /*#__PURE__*/_jsxs(Accordion, {
22
+ initiallyExpanded: true,
23
+ onClick: () => onSectionToggle(section.slug),
24
+ children: [/*#__PURE__*/_jsx(AccordionTrigger, {
25
+ pb: 12,
26
+ px: 4,
62
27
  width: "100%",
63
- children: [/*#__PURE__*/_jsx(Text, {
28
+ children: /*#__PURE__*/_jsx(Text, {
64
29
  variant: "p-small"
65
30
  // eslint-disable-next-line gamut/no-inline-style
66
31
  ,
@@ -70,18 +35,13 @@ export const AccordionMenu = ({
70
35
  },
71
36
  textAlign: "left",
72
37
  children: section.title
73
- }), /*#__PURE__*/_jsx(ExpandChevron, {
74
- ml: 12,
75
- size: 16,
76
- expanded: expanded,
77
- position: "relative",
78
- top: 4
79
- })]
80
- })
81
- }),
82
- children: /*#__PURE__*/_jsx(LayoutMenuSection, {
83
- items: section.items,
84
- onItemClick: onItemClick
38
+ })
39
+ }), /*#__PURE__*/_jsx(AccordionBody, {
40
+ children: /*#__PURE__*/_jsx(LayoutMenuSection, {
41
+ items: section.items,
42
+ onItemClick: onItemClick
43
+ })
44
+ })]
85
45
  })
86
46
  });
87
47
  };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,8 @@
1
1
  export * as LayoutMenuVariant from './LayoutMenuVariant';
2
+ export * from './Accordion';
3
+ export * from './AccordionDeprecated';
4
+ export * from './AccordionAreaDeprecated';
5
+ export * from './AccordionButtonDeprecated';
2
6
  export * from './AbbreviatedCommunityEventCard';
3
7
  export * from './AppBar';
4
8
  export * from './AppBar/AppBarSection';
package/dist/index.js CHANGED
@@ -1,4 +1,8 @@
1
1
  export * as LayoutMenuVariant from './LayoutMenuVariant';
2
+ export * from './Accordion';
3
+ export * from './AccordionDeprecated';
4
+ export * from './AccordionAreaDeprecated';
5
+ export * from './AccordionButtonDeprecated';
2
6
  export * from './AbbreviatedCommunityEventCard';
3
7
  export * from './AppBar';
4
8
  export * from './AppBar/AppBarSection';
@@ -0,0 +1,122 @@
1
+ import { Box, Text } from '@codecademy/gamut';
2
+ import { useState } from 'react';
3
+ import { Accordion, AccordionBody, AccordionTrigger } from '../../index';
4
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ const meta = {
6
+ component: Accordion,
7
+ title: 'Molecules/Accordion'
8
+ };
9
+ export default meta;
10
+ export const Default = {
11
+ render: () => /*#__PURE__*/_jsxs(Accordion, {
12
+ children: [/*#__PURE__*/_jsx(AccordionTrigger, {
13
+ children: "Click to expand"
14
+ }), /*#__PURE__*/_jsx(AccordionBody, {
15
+ children: /*#__PURE__*/_jsx(Box, {
16
+ children: /*#__PURE__*/_jsx(Text, {
17
+ children: "Accordion panel content."
18
+ })
19
+ })
20
+ })]
21
+ }),
22
+ name: 'Default (uncontrolled)'
23
+ };
24
+ export const InitiallyExpanded = {
25
+ render: () => /*#__PURE__*/_jsxs(Accordion, {
26
+ initiallyExpanded: true,
27
+ children: [/*#__PURE__*/_jsx(AccordionTrigger, {
28
+ children: "Expanded by default"
29
+ }), /*#__PURE__*/_jsx(AccordionBody, {
30
+ children: /*#__PURE__*/_jsx(Box, {
31
+ children: /*#__PURE__*/_jsx(Text, {
32
+ children: "This panel starts open."
33
+ })
34
+ })
35
+ })]
36
+ }),
37
+ name: 'Initially expanded'
38
+ };
39
+ export const Controlled = {
40
+ render: () => {
41
+ const [isOpen, setIsOpen] = useState(false);
42
+ return /*#__PURE__*/_jsxs(Box, {
43
+ children: [/*#__PURE__*/_jsxs(Text, {
44
+ mb: 8,
45
+ variant: "p-small",
46
+ children: ["Controlled externally \u2014 expanded: ", String(isOpen)]
47
+ }), /*#__PURE__*/_jsxs(Accordion, {
48
+ expanded: isOpen,
49
+ onClick: setIsOpen,
50
+ children: [/*#__PURE__*/_jsx(AccordionTrigger, {
51
+ children: "Controlled accordion"
52
+ }), /*#__PURE__*/_jsx(AccordionBody, {
53
+ children: /*#__PURE__*/_jsx(Box, {
54
+ children: /*#__PURE__*/_jsx(Text, {
55
+ children: "Caller manages expanded state via onToggle."
56
+ })
57
+ })
58
+ })]
59
+ })]
60
+ });
61
+ },
62
+ name: 'Controlled'
63
+ };
64
+ export const WithOnClickCallback = {
65
+ render: () => /*#__PURE__*/_jsxs(Accordion, {
66
+ onClick: next => {
67
+ // eslint-disable-next-line no-console
68
+ console.log('toggled:', next);
69
+ },
70
+ children: [/*#__PURE__*/_jsx(AccordionTrigger, {
71
+ children: "Section with callbacks"
72
+ }), /*#__PURE__*/_jsx(AccordionBody, {
73
+ children: /*#__PURE__*/_jsx(Box, {
74
+ children: /*#__PURE__*/_jsx(Text, {
75
+ children: "Check the console \u2014 onToggle and onClick fire on each toggle."
76
+ })
77
+ })
78
+ })]
79
+ }),
80
+ name: 'With callbacks'
81
+ };
82
+ export const MultipleAccordions = {
83
+ render: () => /*#__PURE__*/_jsx(Box, {
84
+ display: "flex",
85
+ flexDirection: "column",
86
+ gap: 8,
87
+ children: ['Section A', 'Section B', 'Section C'].map(label => /*#__PURE__*/_jsxs(Accordion, {
88
+ children: [/*#__PURE__*/_jsx(AccordionTrigger, {
89
+ children: label
90
+ }), /*#__PURE__*/_jsx(AccordionBody, {
91
+ children: /*#__PURE__*/_jsx(Box, {
92
+ children: /*#__PURE__*/_jsxs(Text, {
93
+ children: ["Content for ", label, ". Each accordion is independent."]
94
+ })
95
+ })
96
+ })]
97
+ }, label))
98
+ }),
99
+ name: 'Multiple independent accordions'
100
+ };
101
+ export const RichContent = {
102
+ render: () => /*#__PURE__*/_jsxs(Accordion, {
103
+ initiallyExpanded: true,
104
+ children: [/*#__PURE__*/_jsx(AccordionTrigger, {
105
+ children: "Frequently asked question"
106
+ }), /*#__PURE__*/_jsx(AccordionBody, {
107
+ children: /*#__PURE__*/_jsxs(Box, {
108
+ children: [/*#__PURE__*/_jsx(Text, {
109
+ variant: "title-xs",
110
+ children: "Answer heading"
111
+ }), /*#__PURE__*/_jsxs(Text, {
112
+ children: ["This body can hold any React content \u2014 text, links, forms, lists, or nested components. The height animates in and out using Gamut's", ' ', "ExpandInCollapseOut primitive."]
113
+ }), /*#__PURE__*/_jsx(Text, {
114
+ variant: "p-small",
115
+ color: "text-secondary",
116
+ children: "Supporting detail with secondary text color."
117
+ })]
118
+ })
119
+ })]
120
+ }),
121
+ name: 'Rich body content'
122
+ };
@@ -0,0 +1,19 @@
1
+ import { AccordionDeprecated } from '../../index';
2
+ const meta = {
3
+ component: AccordionDeprecated
4
+ };
5
+ export default meta;
6
+ export const Default = {
7
+ args: {
8
+ top: 'Click to expand',
9
+ children: 'Accordion panel content.'
10
+ },
11
+ name: 'AccordionDeprecated'
12
+ };
13
+ export const InitiallyExpanded = {
14
+ args: {
15
+ top: 'Expanded by default',
16
+ children: 'This panel starts open.',
17
+ initiallyExpanded: true
18
+ }
19
+ };
@@ -0,0 +1,7 @@
1
+ import { Attributes, ReactHTML } from 'react';
2
+ import * as React from 'react';
3
+
4
+ /**
5
+ * Simple tag string, component class, or functional component for a render prop.
6
+ */
7
+ export type ChildComponentDescriptor = string | React.ComponentClass | React.FC;
@@ -0,0 +1 @@
1
+ export * from './omitProps';
@@ -0,0 +1 @@
1
+ export * from './omitProps';
@@ -0,0 +1,10 @@
1
+ export type RemoveFrom<TContainer, TRemoved> = {
2
+ [P in keyof TContainer]: P extends keyof TRemoved ? never : TContainer[P];
3
+ };
4
+ /**
5
+ * omitProps
6
+ *
7
+ * removes a provided array of props from a props object,
8
+ * leaving necessary props like children intact
9
+ */
10
+ export declare function omitProps<TOmittedProps extends {}, TProps extends {}>(initialPropsToOmit: TOmittedProps | (keyof TOmittedProps)[], props: TProps): RemoveFrom<TOmittedProps, TProps>;
@@ -0,0 +1,18 @@
1
+ import invariant from 'invariant';
2
+ import isPlainObject from 'lodash/isPlainObject';
3
+ import omit from 'lodash/omit';
4
+ import without from 'lodash/without';
5
+ /**
6
+ * omitProps
7
+ *
8
+ * removes a provided array of props from a props object,
9
+ * leaving necessary props like children intact
10
+ */
11
+ export function omitProps(initialPropsToOmit, props) {
12
+ const propsToOmit = isPlainObject(initialPropsToOmit) ? Object.keys(initialPropsToOmit) : initialPropsToOmit;
13
+ invariant(Array.isArray(propsToOmit), 'omitProps first argument should be an Array');
14
+
15
+ // allow all data-* props, mainly used for testing libraries
16
+ const dataProps = propsToOmit.filter(p => /^data-.*/.exec(p));
17
+ return omit(props, without(propsToOmit, 'children', 'className', ...dataProps));
18
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codecademy/brand",
3
- "version": "5.8.1",
3
+ "version": "5.9.0-alpha.10aaf123e.0",
4
4
  "description": "Brand component library for Codecademy",
5
5
  "license": "MIT",
6
6
  "repository": "git@github.com:codecademy-engineering/mono.git",
@@ -21,6 +21,7 @@
21
21
  "framer-motion": "^11.18.0",
22
22
  "freezeframe": "^5.0.2",
23
23
  "intersection-observer": "^0.12.0",
24
+ "invariant": "^2.2.4",
24
25
  "ismobilejs": "^1.1.1",
25
26
  "lodash": "^4.18.1",
26
27
  "pluralize": "^8.0.0",
@@ -28,6 +29,9 @@
28
29
  "react-use": "15.3.8",
29
30
  "universal-cookie": "^8.0.1"
30
31
  },
32
+ "devDependencies": {
33
+ "@types/invariant": "^2.2.37"
34
+ },
31
35
  "peerDependencies": {
32
36
  "@codecademy/gamut": "*",
33
37
  "@codecademy/gamut-icons": "*",