@codecademy/brand 3.2.0 → 3.3.0-alpha.8d677d6ea7.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.
@@ -0,0 +1,17 @@
1
+ import React, { ReactNode } from 'react';
2
+ interface OnSearchAsYouTypeParamsType {
3
+ query: string;
4
+ searchId: string;
5
+ resultsCount: number;
6
+ queryLoadTime: number;
7
+ }
8
+ interface SearchTrackingContextType {
9
+ onSearchAsYouTypeParams: OnSearchAsYouTypeParamsType | null;
10
+ setOnSearchAsYouTypeParams: (params: OnSearchAsYouTypeParamsType | null) => void;
11
+ }
12
+ export declare const SearchTrackingContext: React.Context<SearchTrackingContextType>;
13
+ export declare const SearchTrackingProvider: React.FC<{
14
+ children: ReactNode;
15
+ }>;
16
+ export declare const useSearchTrackingContext: () => SearchTrackingContextType;
17
+ export {};
@@ -0,0 +1,25 @@
1
+ import noop from 'lodash/noop';
2
+ import React, { createContext, useContext, useState } from 'react';
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ export const SearchTrackingContext = /*#__PURE__*/createContext({
5
+ onSearchAsYouTypeParams: null,
6
+ setOnSearchAsYouTypeParams: noop
7
+ });
8
+ export const SearchTrackingProvider = ({
9
+ children
10
+ }) => {
11
+ const [onSearchAsYouTypeParams, setOnSearchAsYouTypeParams] = useState({
12
+ query: '',
13
+ searchId: '',
14
+ resultsCount: 0,
15
+ queryLoadTime: 0
16
+ });
17
+ return /*#__PURE__*/_jsx(SearchTrackingContext.Provider, {
18
+ value: {
19
+ onSearchAsYouTypeParams,
20
+ setOnSearchAsYouTypeParams
21
+ },
22
+ children: children
23
+ });
24
+ };
25
+ export const useSearchTrackingContext = () => useContext(SearchTrackingContext);
@@ -17,6 +17,7 @@ export interface AppHeaderSearch extends OnSearch, onTrackingClick {
17
17
  export interface SearchButtonProps extends ToggleSearch {
18
18
  isSearchVisible: boolean;
19
19
  setIsSearchVisible: Dispatch<SetStateAction<boolean>>;
20
+ onSearchAsYouType?: OnSearch['onSearchAsYouType'];
20
21
  }
21
22
  export interface SearchPaneProps extends OnSearch, ToggleSearch, onTrackingClick {
22
23
  }
@@ -24,7 +24,8 @@ export const useHeaderSearch = ({
24
24
  isSearchVisible: isSearchVisible,
25
25
  setIsSearchVisible: setIsSearchVisible,
26
26
  toggleSearch: toggleSearch,
27
- searchButtonRef: searchButtonRef
27
+ searchButtonRef: searchButtonRef,
28
+ onSearchAsYouType: onSearchAsYouType
28
29
  })
29
30
  }, /*#__PURE__*/_jsx(AnimatedHeaderZone, {
30
31
  visible: isSearchVisible,
@@ -5,6 +5,7 @@ import { NotificationsDropdown } from '../Notifications/NotificationsDropdown';
5
5
  import { useHeaderNotifications } from '../Notifications/useHeaderNotifications';
6
6
  import { AppHeaderListItem } from './AppHeaderElements/AppHeaderListItem';
7
7
  import { AppHeaderProvider } from './AppHeaderElements/AppHeaderProvider';
8
+ import { SearchTrackingProvider } from './Search/SearchTrackingProvider';
8
9
  import { useHeaderSearch } from './Search/useHeaderSearch';
9
10
  import { appHeaderMobileBreakpoint, appHeaderSpacing, StyledAppBar, StyledNavBar } from './shared';
10
11
  import { mapAppHeaderItemToElement } from './shared/utils';
@@ -63,15 +64,17 @@ export const AppHeader = ({
63
64
  _: 'none',
64
65
  [appHeaderMobileBreakpoint]: 'block'
65
66
  },
66
- children: /*#__PURE__*/_jsxs(AppHeaderProvider, {
67
- children: [/*#__PURE__*/_jsx(StyledAppBar, {
68
- "aria-label": "Main",
69
- as: "nav",
70
- children: /*#__PURE__*/_jsxs(StyledNavBar, {
71
- ref: menuContainerRef,
72
- children: [mapItemsToElement(items.left, 'left'), mapItemsToElement(right, 'right')]
73
- })
74
- }), notificationsView, searchPane]
67
+ children: /*#__PURE__*/_jsx(AppHeaderProvider, {
68
+ children: /*#__PURE__*/_jsxs(SearchTrackingProvider, {
69
+ children: [/*#__PURE__*/_jsx(StyledAppBar, {
70
+ "aria-label": "Main",
71
+ as: "nav",
72
+ children: /*#__PURE__*/_jsxs(StyledNavBar, {
73
+ ref: menuContainerRef,
74
+ children: [mapItemsToElement(items.left, 'left'), mapItemsToElement(right, 'right')]
75
+ })
76
+ }), notificationsView, searchPane]
77
+ })
75
78
  })
76
79
  });
77
80
  };
@@ -29,7 +29,7 @@ const ProgressText = /*#__PURE__*/_styled(Text, {
29
29
  [Progress.completed]: {}
30
30
  }
31
31
  })(props)
32
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MZWFybmluZ091dGNvbWVUaWxlL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQnFCIiwiZmlsZSI6Ii4uLy4uL3NyYy9MZWFybmluZ091dGNvbWVUaWxlL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuY2hvciwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IFNtYWxsQ2hlY2tJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgdmFyaWFudCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7XG4gIGxlYXJuaW5nT3V0Y29tZUxhYmVscyxcbiAgTGVhcm5pbmdPdXRjb21lTG93QXNzZXNzbWVudERvdCxcbn0gZnJvbSAnLi4vTGVhcm5pbmdPdXRjb21lQmFkZ2VzJztcbmltcG9ydCB7IExlYXJuaW5nT3V0Y29tZVBvcG92ZXIgfSBmcm9tICcuLi9MZWFybmluZ091dGNvbWVQb3BvdmVyJztcbmltcG9ydCB7IFRpbGUgfSBmcm9tICcuL1RpbGUnO1xuaW1wb3J0IHtcbiAgTGVhcm5pbmdPdXRjb21lUG9wb3ZlckRldGFpbHNQcm9wcyxcbiAgTGVhcm5pbmdPdXRjb21lVGlsZVByb3BzLFxuICBQcm9ncmVzcyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IFByb2dyZXNzVGV4dCA9IHN0eWxlZChUZXh0KTx7IHByb2dyZXNzOiBQcm9ncmVzczsgaXNTbWFsbDogYm9vbGVhbiB9PihcbiAgKHByb3BzKSA9PiAoe1xuICAgIC4uLnZhcmlhbnQoe1xuICAgICAgcHJvcDogJ3Byb2dyZXNzJyxcbiAgICAgIGJhc2U6IHtcbiAgICAgICAgZm9udFNpemU6IDE0LFxuICAgICAgfSxcbiAgICAgIHZhcmlhbnRzOiB7XG4gICAgICAgIFtQcm9ncmVzcy5ub3RTdGFydGVkXToge1xuICAgICAgICAgIGNvbG9yOiAndGV4dC1zZWNvbmRhcnknLFxuICAgICAgICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICAgICAgfSxcbiAgICAgICAgW1Byb2dyZXNzLmluUHJvZ3Jlc3NdOiB7XG4gICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICBmb250V2VpZ2h0OiBwcm9wcy5pc1NtYWxsID8gNDAwIDogNzAwLFxuICAgICAgICB9LFxuICAgICAgICBbUHJvZ3Jlc3MuY29tcGxldGVkXToge30sXG4gICAgICB9LFxuICAgIH0pKHByb3BzKSxcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBwcm9ncmVzc1N0YXRlID0gKHBlcmNlbnRDb21wbGV0ZTogbnVtYmVyKTogUHJvZ3Jlc3MgPT4ge1xuICBpZiAocGVyY2VudENvbXBsZXRlID09PSAwKSB7XG4gICAgcmV0dXJuIFByb2dyZXNzLm5vdFN0YXJ0ZWQ7XG4gIH1cbiAgaWYgKHBlcmNlbnRDb21wbGV0ZSA+IDAgJiYgcGVyY2VudENvbXBsZXRlIDwgMTAwKSB7XG4gICAgcmV0dXJuIFByb2dyZXNzLmluUHJvZ3Jlc3M7XG4gIH1cbiAgcmV0dXJuIFByb2dyZXNzLmNvbXBsZXRlZDtcbn07XG5cbmV4cG9ydCBjb25zdCBMZWFybmluZ091dGNvbWVUaWxlOiBSZWFjdC5GQzxMZWFybmluZ091dGNvbWVUaWxlUHJvcHM+ID0gKHtcbiAgbGVhcm5pbmdPdXRjb21lRGV0YWlscyxcbiAgb25DbGljayxcbiAgaG92ZXIgPSBmYWxzZSxcbiAgcG9wb3ZlciA9IGZhbHNlLFxuICBzaXplID0gJ25vcm1hbCcsXG59KSA9PiB7XG4gIGNvbnN0IHsgaWQsIGxldmVsLCBvdXRjb21lLCBsYXRlc3RTY29yZSwgcGVyY2VudENvbXBsZXRlIH0gPVxuICAgIGxlYXJuaW5nT3V0Y29tZURldGFpbHM7XG5cbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgYWN0aXZlRWxSZWYgPSB1c2VSZWY8SFRNTEFuY2hvckVsZW1lbnQ+KG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzT3Blbikge1xuICAgICAgLy8gSWYgdGhlIHBvcG92ZXIgaXMgb3Blbiwgd2Ugd2FudCB0byBmb2N1cyB0aGUgYWN0aXZlIGVsZW1lbnRcbiAgICAgIGFjdGl2ZUVsUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgfVxuICB9LCBbaXNPcGVuXSk7XG5cbiAgY29uc3QgcG9wb3ZlclByb3BzID1cbiAgICBwb3BvdmVyICYmIGhvdmVyXG4gICAgICA/IHtcbiAgICAgICAgICByZWY6IGFjdGl2ZUVsUmVmLFxuICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gc2V0SXNPcGVuKHRydWUpLFxuICAgICAgICAgIG9uTW91c2VMZWF2ZTogKCkgPT4gc2V0SXNPcGVuKGZhbHNlKSxcbiAgICAgICAgICBvbkZvY3VzOiAoKSA9PiBzZXRJc09wZW4odHJ1ZSksIC8vIEZvciBrZXlib2FyZCB1c2Vyc1xuICAgICAgICAgIG9uQmx1cjogKCkgPT4gc2V0SXNPcGVuKGZhbHNlKSwgLy8gQ2xvc2Ugb24gYmx1clxuICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogYCR7aWR9LXBvcG92ZXJgLFxuICAgICAgICB9XG4gICAgICA6IHt9O1xuXG4gIGNvbnN0IGhpZ2hlc3RTY29yZSA9IHBvcG92ZXJcbiAgICA/IChsZWFybmluZ091dGNvbWVEZXRhaWxzIGFzIExlYXJuaW5nT3V0Y29tZVBvcG92ZXJEZXRhaWxzUHJvcHMpXG4gICAgICAgID8uaGlnaGVzdFNjb3JlXG4gICAgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgcGVyY2VudENvbXBsZXRlVmFsdWUgPSBwZXJjZW50Q29tcGxldGUgPz8gMDtcbiAgY29uc3QgcHJvZ3Jlc3MgPSBwcm9ncmVzc1N0YXRlKHBlcmNlbnRDb21wbGV0ZVZhbHVlKTtcblxuICBjb25zdCBpc0NvbXBsZXRlZCA9IHByb2dyZXNzID09PSBQcm9ncmVzcy5jb21wbGV0ZWQ7XG4gIGNvbnN0IGlzU21hbGwgPSBzaXplID09PSAnc21hbGwnO1xuICBjb25zdCBoYXNMb3dMYXRlc3RBc3Nlc3NtZW50ID0gQm9vbGVhbihcbiAgICBsYXRlc3RTY29yZSAhPSBudWxsICYmIGxhdGVzdFNjb3JlIDwgNzBcbiAgKTtcbiAgY29uc3Qgc2hvd0xvd0Fzc2Vzc21lbnREb3QgPSBoYXNMb3dMYXRlc3RBc3Nlc3NtZW50ICYmICFpc1NtYWxsO1xuXG4gIGNvbnN0IGxvd0Fzc2Vzc21lbnRMYWJlbCA9IGhhc0xvd0xhdGVzdEFzc2Vzc21lbnRcbiAgICA/ICdNb3N0IHJlY2VudCBhc3Nlc3NtZW50IHNjb3JlIGlzIGJlbG93IDcwJSwgbmVlZHMgcmV2aWV3LiAnXG4gICAgOiAnJztcbiAgY29uc3QgZGVmYXVsdEFyaWFMYWJlbCA9IGAke2xlYXJuaW5nT3V0Y29tZUxhYmVsc1tsZXZlbF19OiAke291dGNvbWV9ICR7bG93QXNzZXNzbWVudExhYmVsfVByb2dyZXNzICR7cGVyY2VudENvbXBsZXRlVmFsdWV9JSBjb21wbGV0ZWQuYDtcbiAgY29uc3QgZXZhbHVhdGlvblZhbHVlc0xhYmVsID1cbiAgICBpc09wZW4gJiYgKGhpZ2hlc3RTY29yZSB8fCBsYXRlc3RTY29yZSlcbiAgICAgID8gYEV2YWx1YXRpb24gVmFsdWVzIC0gJHtcbiAgICAgICAgICBoaWdoZXN0U2NvcmUgPyBgSGlnaGVzdCBhc3Nlc3NtZW50IHNjb3JlICR7aGlnaGVzdFNjb3JlfS4gYCA6ICcnXG4gICAgICAgIH0ke2xhdGVzdFNjb3JlID8gYFJlY2VudCBhc3Nlc3NtZW50IHNjb3JlICR7bGF0ZXN0U2NvcmV9LmAgOiAnJ31gXG4gICAgICA6ICcnO1xuXG4gIHJldHVybiAoXG4gICAgPEFuY2hvclxuICAgICAgYXJpYS1sYWJlbD17YCR7ZGVmYXVsdEFyaWFMYWJlbH0gJHtldmFsdWF0aW9uVmFsdWVzTGFiZWx9YH1cbiAgICAgIHZhcmlhbnQ9XCJpbnRlcmZhY2VcIlxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIHsuLi5wb3BvdmVyUHJvcHN9XG4gICAgPlxuICAgICAgPFRpbGUgaG92ZXI9e2hvdmVyfSBwcm9ncmVzcz17cHJvZ3Jlc3N9IHNpemU9e3NpemV9PlxuICAgICAgICB7aXNDb21wbGV0ZWQgPyAoXG4gICAgICAgICAgPFNtYWxsQ2hlY2tJY29uXG4gICAgICAgICAgICBzaXplPXtpc1NtYWxsID8gMTIgOiAxNn1cbiAgICAgICAgICAgIHRleHRDb2xvcj1cImJhY2tncm91bmQtY29udHJhc3RcIlxuICAgICAgICAgIC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFByb2dyZXNzVGV4dCBwcm9ncmVzcz17cHJvZ3Jlc3N9IGlzU21hbGw9e2lzU21hbGx9PlxuICAgICAgICAgICAge2Ake3BlcmNlbnRDb21wbGV0ZVZhbHVlfSVgfVxuICAgICAgICAgIDwvUHJvZ3Jlc3NUZXh0PlxuICAgICAgICApfVxuICAgICAgICB7c2hvd0xvd0Fzc2Vzc21lbnREb3QgJiYgKFxuICAgICAgICAgIDxMZWFybmluZ091dGNvbWVMb3dBc3Nlc3NtZW50RG90XG4gICAgICAgICAgICBwb3NpdGlvbj1cImFic29sdXRlXCJcbiAgICAgICAgICAgIHRvcD1cIi0yMCVcIlxuICAgICAgICAgICAgcmlnaHQ9XCItMjAlXCJcbiAgICAgICAgICAgIGhhc0JvcmRlclxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1RpbGU+XG4gICAgICB7aXNPcGVuICYmIChcbiAgICAgICAgPExlYXJuaW5nT3V0Y29tZVBvcG92ZXJcbiAgICAgICAgICBhY3RpdmVFbFJlZj17YWN0aXZlRWxSZWZ9XG4gICAgICAgICAgaG9yaXpvbnRhbE9mZnNldD17aXNTbWFsbCAmJiBpc0NvbXBsZXRlZCA/IDE1OSA6IGlzU21hbGwgPyAxNTMgOiAxNTB9XG4gICAgICAgICAgaWQ9e2Ake2lkfS1wb3BvdmVyYH1cbiAgICAgICAgICBpc09wZW49e2lzT3Blbn1cbiAgICAgICAgICBsZWFybmluZ091dGNvbWVEZXRhaWxzPXtcbiAgICAgICAgICAgIGxlYXJuaW5nT3V0Y29tZURldGFpbHMgYXMgTGVhcm5pbmdPdXRjb21lUG9wb3ZlckRldGFpbHNQcm9wc1xuICAgICAgICAgIH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9BbmNob3I+XG4gICk7XG59O1xuIl19 */");
32
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MZWFybmluZ091dGNvbWVUaWxlL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQnFCIiwiZmlsZSI6Ii4uLy4uL3NyYy9MZWFybmluZ091dGNvbWVUaWxlL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuY2hvciwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IFNtYWxsQ2hlY2tJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgdmFyaWFudCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7XG4gIGxlYXJuaW5nT3V0Y29tZUxhYmVscyxcbiAgTGVhcm5pbmdPdXRjb21lTG93QXNzZXNzbWVudERvdCxcbn0gZnJvbSAnLi4vTGVhcm5pbmdPdXRjb21lQmFkZ2VzJztcbmltcG9ydCB7IExlYXJuaW5nT3V0Y29tZVBvcG92ZXIgfSBmcm9tICcuLi9MZWFybmluZ091dGNvbWVQb3BvdmVyJztcbmltcG9ydCB7IFRpbGUgfSBmcm9tICcuL1RpbGUnO1xuaW1wb3J0IHtcbiAgTGVhcm5pbmdPdXRjb21lUG9wb3ZlckRldGFpbHNQcm9wcyxcbiAgTGVhcm5pbmdPdXRjb21lVGlsZVByb3BzLFxuICBQcm9ncmVzcyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IFByb2dyZXNzVGV4dCA9IHN0eWxlZChUZXh0KTx7IHByb2dyZXNzOiBQcm9ncmVzczsgaXNTbWFsbDogYm9vbGVhbiB9PihcbiAgKHByb3BzKSA9PiAoe1xuICAgIC4uLnZhcmlhbnQoe1xuICAgICAgcHJvcDogJ3Byb2dyZXNzJyxcbiAgICAgIGJhc2U6IHtcbiAgICAgICAgZm9udFNpemU6IDE0LFxuICAgICAgfSxcbiAgICAgIHZhcmlhbnRzOiB7XG4gICAgICAgIFtQcm9ncmVzcy5ub3RTdGFydGVkXToge1xuICAgICAgICAgIGNvbG9yOiAndGV4dC1zZWNvbmRhcnknLFxuICAgICAgICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICAgICAgfSxcbiAgICAgICAgW1Byb2dyZXNzLmluUHJvZ3Jlc3NdOiB7XG4gICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICBmb250V2VpZ2h0OiBwcm9wcy5pc1NtYWxsID8gNDAwIDogNzAwLFxuICAgICAgICB9LFxuICAgICAgICBbUHJvZ3Jlc3MuY29tcGxldGVkXToge30sXG4gICAgICB9LFxuICAgIH0pKHByb3BzKSxcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBwcm9ncmVzc1N0YXRlID0gKHBlcmNlbnRDb21wbGV0ZTogbnVtYmVyKTogUHJvZ3Jlc3MgPT4ge1xuICBpZiAocGVyY2VudENvbXBsZXRlID09PSAwKSB7XG4gICAgcmV0dXJuIFByb2dyZXNzLm5vdFN0YXJ0ZWQ7XG4gIH1cbiAgaWYgKHBlcmNlbnRDb21wbGV0ZSA+IDAgJiYgcGVyY2VudENvbXBsZXRlIDwgMTAwKSB7XG4gICAgcmV0dXJuIFByb2dyZXNzLmluUHJvZ3Jlc3M7XG4gIH1cbiAgcmV0dXJuIFByb2dyZXNzLmNvbXBsZXRlZDtcbn07XG5cbmV4cG9ydCBjb25zdCBMZWFybmluZ091dGNvbWVUaWxlOiBSZWFjdC5GQzxMZWFybmluZ091dGNvbWVUaWxlUHJvcHM+ID0gKHtcbiAgbGVhcm5pbmdPdXRjb21lRGV0YWlscyxcbiAgb25DbGljayxcbiAgaG92ZXIgPSBmYWxzZSxcbiAgcG9wb3ZlciA9IGZhbHNlLFxuICBzaXplID0gJ25vcm1hbCcsXG59KSA9PiB7XG4gIGNvbnN0IHsgaWQsIGxldmVsLCBvdXRjb21lLCBsYXRlc3RTY29yZSwgcGVyY2VudENvbXBsZXRlIH0gPVxuICAgIGxlYXJuaW5nT3V0Y29tZURldGFpbHM7XG5cbiAgY29uc3QgW2lzT3Blbiwgc2V0SXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgYWN0aXZlRWxSZWYgPSB1c2VSZWY8SFRNTEFuY2hvckVsZW1lbnQ+KG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzT3Blbikge1xuICAgICAgLy8gSWYgdGhlIHBvcG92ZXIgaXMgb3Blbiwgd2Ugd2FudCB0byBmb2N1cyB0aGUgYWN0aXZlIGVsZW1lbnRcbiAgICAgIGFjdGl2ZUVsUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgfVxuICB9LCBbaXNPcGVuXSk7XG5cbiAgY29uc3QgcG9wb3ZlclByb3BzID1cbiAgICBwb3BvdmVyICYmIGhvdmVyXG4gICAgICA/IHtcbiAgICAgICAgICByZWY6IGFjdGl2ZUVsUmVmLFxuICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gc2V0SXNPcGVuKHRydWUpLFxuICAgICAgICAgIG9uTW91c2VMZWF2ZTogKCkgPT4gc2V0SXNPcGVuKGZhbHNlKSxcbiAgICAgICAgICBvbkZvY3VzOiAoKSA9PiBzZXRJc09wZW4odHJ1ZSksIC8vIEZvciBrZXlib2FyZCB1c2Vyc1xuICAgICAgICAgIG9uQmx1cjogKCkgPT4gc2V0SXNPcGVuKGZhbHNlKSwgLy8gQ2xvc2Ugb24gYmx1clxuICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogYCR7aWR9LXBvcG92ZXJgLFxuICAgICAgICB9XG4gICAgICA6IHt9O1xuXG4gIGNvbnN0IGhpZ2hlc3RTY29yZSA9IHBvcG92ZXJcbiAgICA/IChsZWFybmluZ091dGNvbWVEZXRhaWxzIGFzIExlYXJuaW5nT3V0Y29tZVBvcG92ZXJEZXRhaWxzUHJvcHMpXG4gICAgICAgID8uaGlnaGVzdFNjb3JlXG4gICAgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgcGVyY2VudENvbXBsZXRlVmFsdWUgPSBwZXJjZW50Q29tcGxldGUgPz8gMDtcbiAgY29uc3QgcHJvZ3Jlc3MgPSBwcm9ncmVzc1N0YXRlKHBlcmNlbnRDb21wbGV0ZVZhbHVlKTtcblxuICBjb25zdCBpc0NvbXBsZXRlZCA9IHByb2dyZXNzID09PSBQcm9ncmVzcy5jb21wbGV0ZWQ7XG4gIGNvbnN0IGlzU21hbGwgPSBzaXplID09PSAnc21hbGwnO1xuICBjb25zdCBoYXNMb3dMYXRlc3RBc3Nlc3NtZW50ID0gQm9vbGVhbihcbiAgICBsYXRlc3RTY29yZSAhPSBudWxsICYmIGxhdGVzdFNjb3JlIDwgNzBcbiAgKTtcbiAgY29uc3Qgc2hvd0xvd0Fzc2Vzc21lbnREb3QgPSBoYXNMb3dMYXRlc3RBc3Nlc3NtZW50ICYmICFpc1NtYWxsO1xuXG4gIGNvbnN0IGxvd0Fzc2Vzc21lbnRMYWJlbCA9IGhhc0xvd0xhdGVzdEFzc2Vzc21lbnRcbiAgICA/ICdNb3N0IHJlY2VudCBhc3Nlc3NtZW50IHNjb3JlIGlzIGJlbG93IDcwJSwgbmVlZHMgcmV2aWV3LiAnXG4gICAgOiAnJztcbiAgY29uc3QgZGVmYXVsdEFyaWFMYWJlbCA9IGAke2xlYXJuaW5nT3V0Y29tZUxhYmVsc1tsZXZlbF19OiAke291dGNvbWV9ICR7bG93QXNzZXNzbWVudExhYmVsfVByb2dyZXNzICR7cGVyY2VudENvbXBsZXRlVmFsdWV9JSBjb21wbGV0ZWQuYDtcbiAgY29uc3QgZXZhbHVhdGlvblZhbHVlc0xhYmVsID1cbiAgICBpc09wZW4gJiYgKGhpZ2hlc3RTY29yZSB8fCBsYXRlc3RTY29yZSlcbiAgICAgID8gYEV2YWx1YXRpb24gVmFsdWVzIC0gJHtcbiAgICAgICAgICBoaWdoZXN0U2NvcmUgPyBgSGlnaGVzdCBhc3Nlc3NtZW50IHNjb3JlICR7aGlnaGVzdFNjb3JlfS4gYCA6ICcnXG4gICAgICAgIH0ke2xhdGVzdFNjb3JlID8gYFJlY2VudCBhc3Nlc3NtZW50IHNjb3JlICR7bGF0ZXN0U2NvcmV9LmAgOiAnJ31gXG4gICAgICA6ICcnO1xuXG4gIHJldHVybiAoXG4gICAgPEFuY2hvclxuICAgICAgYXJpYS1sYWJlbD17YCR7ZGVmYXVsdEFyaWFMYWJlbH0gJHtldmFsdWF0aW9uVmFsdWVzTGFiZWx9YH1cbiAgICAgIHZhcmlhbnQ9XCJpbnRlcmZhY2VcIlxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIGRhdGEtdGVzdGlkPXtgbGVhcm5pbmctb3V0Y29tZS10aWxlLSR7aWR9YH1cbiAgICAgIHsuLi5wb3BvdmVyUHJvcHN9XG4gICAgPlxuICAgICAgPFRpbGUgaG92ZXI9e2hvdmVyfSBwcm9ncmVzcz17cHJvZ3Jlc3N9IHNpemU9e3NpemV9PlxuICAgICAgICB7aXNDb21wbGV0ZWQgPyAoXG4gICAgICAgICAgPFNtYWxsQ2hlY2tJY29uXG4gICAgICAgICAgICBzaXplPXtpc1NtYWxsID8gMTIgOiAxNn1cbiAgICAgICAgICAgIHRleHRDb2xvcj1cImJhY2tncm91bmQtY29udHJhc3RcIlxuICAgICAgICAgIC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFByb2dyZXNzVGV4dCBwcm9ncmVzcz17cHJvZ3Jlc3N9IGlzU21hbGw9e2lzU21hbGx9PlxuICAgICAgICAgICAge2Ake3BlcmNlbnRDb21wbGV0ZVZhbHVlfSVgfVxuICAgICAgICAgIDwvUHJvZ3Jlc3NUZXh0PlxuICAgICAgICApfVxuICAgICAgICB7c2hvd0xvd0Fzc2Vzc21lbnREb3QgJiYgKFxuICAgICAgICAgIDxMZWFybmluZ091dGNvbWVMb3dBc3Nlc3NtZW50RG90XG4gICAgICAgICAgICBwb3NpdGlvbj1cImFic29sdXRlXCJcbiAgICAgICAgICAgIHRvcD1cIi0yMCVcIlxuICAgICAgICAgICAgcmlnaHQ9XCItMjAlXCJcbiAgICAgICAgICAgIGhhc0JvcmRlclxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1RpbGU+XG4gICAgICB7aXNPcGVuICYmIChcbiAgICAgICAgPExlYXJuaW5nT3V0Y29tZVBvcG92ZXJcbiAgICAgICAgICBhY3RpdmVFbFJlZj17YWN0aXZlRWxSZWZ9XG4gICAgICAgICAgaG9yaXpvbnRhbE9mZnNldD17aXNTbWFsbCAmJiBpc0NvbXBsZXRlZCA/IDE1OSA6IGlzU21hbGwgPyAxNTMgOiAxNTB9XG4gICAgICAgICAgaWQ9e2Ake2lkfS1wb3BvdmVyYH1cbiAgICAgICAgICBpc09wZW49e2lzT3Blbn1cbiAgICAgICAgICBsZWFybmluZ091dGNvbWVEZXRhaWxzPXtcbiAgICAgICAgICAgIGxlYXJuaW5nT3V0Y29tZURldGFpbHMgYXMgTGVhcm5pbmdPdXRjb21lUG9wb3ZlckRldGFpbHNQcm9wc1xuICAgICAgICAgIH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC9BbmNob3I+XG4gICk7XG59O1xuIl19 */");
33
33
  export const progressState = percentComplete => {
34
34
  if (percentComplete === 0) {
35
35
  return Progress.notStarted;
@@ -85,6 +85,7 @@ export const LearningOutcomeTile = ({
85
85
  "aria-label": `${defaultAriaLabel} ${evaluationValuesLabel}`,
86
86
  variant: "interface",
87
87
  onClick: onClick,
88
+ "data-testid": `learning-outcome-tile-${id}`,
88
89
  ...popoverProps,
89
90
  children: [/*#__PURE__*/_jsxs(Tile, {
90
91
  hover: hover,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@codecademy/brand",
3
3
  "description": "Brand component library for Codecademy",
4
- "version": "3.2.0",
4
+ "version": "3.3.0-alpha.8d677d6ea7.0",
5
5
  "author": "Codecademy Engineering <dev@codecademy.com>",
6
6
  "dependencies": {
7
7
  "@emotion/is-prop-valid": "^1.2.1",