@edx/frontend-app-subscription-learner-dashboard 1.36.0 → 1.37.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,3 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M44 24.0501C44 12.9825 35.04 4 24 4C12.96 4 4 12.9825 4 24.0501C4 33.7544 10.88 41.8346 20 43.6992V30.0652H16V24.0501H20V19.0376C20 15.1679 23.14 12.0201 27 12.0201H32V18.0351H28C26.9 18.0351 26 18.9373 26 20.0401V24.0501H32V30.0652H26V44C36.1 42.9975 44 34.4561 44 24.0501Z" fill="white"/>
3
+ </svg>
@@ -0,0 +1,18 @@
1
+ <svg width="160" height="84" viewBox="0 0 160 84" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_8902_672)">
3
+ <path d="M39.6004 31.9998C39.3004 30.8998 38.8004 30.0998 38.1004 29.2998C37.4004 28.4998 36.6004 27.8998 35.6004 27.4998C34.6004 26.9998 33.5004 26.7998 32.2004 26.7998C30.9004 26.7998 29.7004 26.9998 28.5004 27.4998C27.4004 27.9998 26.3004 28.5998 25.4004 29.4998C24.5004 30.3998 23.7004 31.3998 23.0004 32.5998C22.4004 33.7998 21.8004 35.0998 21.4004 36.5998H40.1004C40.2004 36.4998 40.2004 36.2998 40.2004 35.9998C40.2004 35.6998 40.2004 35.3998 40.1004 35.1998C40.1004 34.0998 39.9004 32.9998 39.6004 31.9998Z" fill="white"/>
4
+ <path d="M75.3004 32.5004C74.9004 31.3004 74.3004 30.3004 73.6004 29.5004C72.9004 28.7004 72.0004 28.0004 70.9004 27.6004C69.9004 27.1004 68.6004 26.9004 67.3004 26.9004C65.6004 26.9004 63.9004 27.3004 62.4004 28.1004C60.9004 28.9004 59.6004 30.0004 58.5004 31.4004C57.4004 32.8004 56.6004 34.4004 55.9004 36.4004C55.2004 38.4004 54.9004 40.5004 54.9004 42.8004C54.9004 44.3004 55.1004 45.6004 55.5004 46.8004C55.9004 48.0004 56.4004 49.0004 57.2004 49.9004C58.0004 50.8004 58.9004 51.4004 59.9004 51.9004C61.0004 52.4004 62.1004 52.6004 63.4004 52.6004C65.2004 52.6004 66.9004 52.1004 68.4004 51.3004C69.9004 50.5004 71.2004 49.3004 72.4004 47.9004C73.6004 46.5004 74.5004 44.8004 75.1004 42.8004C75.7004 40.8004 76.0004 38.7004 75.9004 36.4004C75.9004 35.0004 75.7004 33.7004 75.3004 32.5004Z" fill="white"/>
5
+ <path d="M98.7 0H13.9L0 65.9H70.9L67 83.6H134.8L149.8 13.7H95.8L98.7 0ZM45.9 36.9C45.9 37.4 45.8 37.8 45.8 38.3C45.8 38.8 45.7 39.2 45.7 39.7C45.6 40.2 45.6 40.6 45.5 40.9H20.6C20.5 41.2 20.5 41.5 20.5 41.8V42.7C20.5 44.5 20.8 46 21.3 47.2C21.8 48.4 22.4 49.4 23.3 50.2C24.2 51 25.1 51.5 26.1 51.9C27.1 52.2 28.2 52.4 29.2 52.4C31.5 52.4 33.3 52 34.7 51.2C36.1 50.4 37.2 49.3 37.9 48H43.8C43.4 49.3 42.8 50.6 42 51.7C41.1 52.9 40 53.8 38.8 54.7C37.6 55.6 36.1 56.2 34.4 56.7C32.8 57.2 30.8 57.4 28.9 57.4C27 57.4 25.2 57.1 23.5 56.5C21.8 55.8 20.3 54.9 19 53.7C17.7 52.5 16.7 51 16 49.2C15.3 47.5 14.9 45.4 14.9 43.1C14.9 40 15.3 37.1 16.2 34.5C17.1 31.9 18.3 29.7 19.9 27.8C21.5 26 23.4 24.5 25.6 23.5C27.9 22.5 30.3 22 32.9 22C34.6 22 36.3 22.3 37.9 22.9C39.5 23.5 40.9 24.4 42.1 25.6C43.2 26.8 44.2 28.2 44.8 29.8C45.5 31.5 45.9 33.5 45.9 35.7V36.9ZM72.2 56.9L73.2 52.2H72.7C71.5 53.9 69.9 55.2 68 56.1C66 57 64 57.5 61.8 57.5C60 57.5 58.4 57.2 56.9 56.5C55.4 55.8 54 54.9 52.9 53.7C51.8 52.5 50.9 51 50.2 49.3C49.5 47.5 49.2 45.6 49.2 43.5C49.2 41.4 49.4 39.5 49.8 37.6C50.2 35.7 50.8 34 51.6 32.4C52.4 30.8 53.3 29.4 54.4 28.1C55.5 26.8 56.7 25.7 58 24.8C59.4 23.9 60.8 23.2 62.3 22.7C63.8 22.2 65.4 22 67.1 22C68.3 22 69.5 22.2 70.6 22.5C71.7 22.8 72.7 23.3 73.6 23.9C74.5 24.5 75.3 25.2 75.9 26.1C76.5 26.9 77 27.9 77.3 28.9H77.8L82.1 9H87.7L77.5 56.9H72.2ZM103.9 22.7L111.1 39.5H111.8L125.4 22.7H137.9L115.6 48.3L127.6 74.6H115.2L107.1 56.9H106.1L91 74.6H78.7L102.1 47L91.3 22.7H103.9Z" fill="white"/>
6
+ <path d="M156.3 13.5996C154.2 13.5996 152.6 15.2996 152.6 17.2996C152.6 19.2996 154.2 20.9996 156.3 20.9996C158.4 20.9996 160 19.2996 160 17.2996C160 15.2996 158.4 13.5996 156.3 13.5996ZM156.3 20.5996C154.4 20.5996 153 19.0996 153 17.2996C153 15.4996 154.4 13.9996 156.3 13.9996C158.2 13.9996 159.6 15.4996 159.6 17.2996C159.6 19.0996 158.2 20.5996 156.3 20.5996Z" fill="white"/>
7
+ <path d="M158 16.4998C158 15.6998 157.4 15.2998 156.6 15.2998H154.9V18.9998H155.6V17.6998H156.4L157.3 18.9998H158.2L157.2 17.5998C157.7 17.4998 158 17.0998 158 16.4998ZM156.5 17.1998H155.6V15.9998H156.5C157 15.9998 157.3 16.1998 157.3 16.5998C157.3 16.8998 157 17.1998 156.5 17.1998Z" fill="white"/>
8
+ <path d="M29.1004 74.8002C28.4004 74.8002 27.8004 75.1002 27.3004 75.7002V72.7002H25.4004V81.0002H27.3004V80.3002C27.8004 80.9002 28.4004 81.2002 29.1004 81.2002C30.6004 81.2002 31.8004 80.0002 31.8004 78.0002C31.8004 76.0002 30.6004 74.8002 29.1004 74.8002ZM28.5004 79.5002C28.0004 79.5002 27.5004 79.3002 27.3004 79.0002V77.1002C27.6004 76.7002 28.1004 76.5002 28.5004 76.5002C29.2004 76.5002 29.8004 77.1002 29.8004 78.0002C29.8004 78.9002 29.3004 79.5002 28.5004 79.5002Z" fill="white"/>
9
+ <path d="M34.9996 79.0002L33.5996 75.2002H31.5996L33.9996 81.3002L33.8996 81.6002C33.7996 81.8002 33.4996 81.9002 33.0996 81.9002C32.8996 81.9002 32.6996 81.9002 32.5996 81.8002L32.2996 83.5002C32.4996 83.6002 32.8996 83.6002 33.0996 83.6002C34.2996 83.6002 35.1996 83.3002 35.6996 82.0002L38.4996 75.2002H36.3996L34.9996 79.0002Z" fill="white"/>
10
+ <path d="M51.4002 81.1C51.3002 80.9 51.2002 80.7 51.2002 80.5H46.6002C46.6002 80.5 48.0002 79.3 49.7002 77.6C50.6002 76.7 51.0002 75.6 51.0002 74.5C51.0002 73.4 50.6002 72.2 49.7002 71.4C48.0002 69.7 45.2002 69.7 43.5002 71.4C42.6002 72.3 42.2002 73.4 42.2002 74.5H45.4002C45.4002 74.2 45.5002 73.8 45.8002 73.6C46.3002 73.1 47.1002 73.1 47.6002 73.6C48.1002 74.1 48.1002 74.9 47.6002 75.4C47.6002 75.4 45.1002 77.8 42.9002 79.9C42.5002 80.3 42.3002 80.8 42.3002 81.4C42.3002 82.6 43.3002 83.6 44.5002 83.6H53.9002C53.4002 83.3 53.0002 83 52.6002 82.6C52.0002 82.2 51.6002 81.7 51.4002 81.1Z" fill="white"/>
11
+ <path d="M57.3 79.2C57.3 79.9 56.7 80.5 56 80.5C55.3 80.5 54.7 79.9 54.7 79.2V70H51.5V79.1C51.5 81.5 53.5 83.5 55.9 83.5C58.3 83.5 60.3 81.5 60.3 79.1H60.5V70H57.3V79.2Z" fill="white"/>
12
+ </g>
13
+ <defs>
14
+ <clipPath id="clip0_8902_672">
15
+ <rect width="160" height="83.6" fill="white"/>
16
+ </clipPath>
17
+ </defs>
18
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M35.2247 33.4247V25.6167C35.2247 21.4333 32.9913 19.4867 30.014 19.4867C27.6113 19.4867 26.5347 20.8087 25.9347 21.736V19.8067H21.408C21.468 21.0847 21.408 33.4247 21.408 33.4247H25.9347V25.8193C25.9347 25.4133 25.964 25.0067 26.084 24.716C26.4107 23.9027 27.1553 23.0607 28.4053 23.0607C30.044 23.0607 30.6987 24.3093 30.6987 26.1393V33.4253H35.2247V33.4247ZM16.6393 17.948C18.2173 17.948 19.2007 16.9013 19.2007 15.594C19.1713 14.2587 18.2173 13.242 16.6693 13.242C15.1213 13.242 14.1087 14.258 14.1087 15.594C14.1087 16.9013 15.0913 17.948 16.6107 17.948H16.6393ZM24 44C12.9547 44 4 35.0453 4 24C4 12.954 12.9547 4 24 4C35.0453 4 44 12.954 44 24C44 35.0453 35.0453 44 24 44ZM18.9027 33.4247V19.8067H14.3767V33.4247H18.9027Z" fill="white"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M27.2143 25.6071C27.2143 26.0334 27.3836 26.4422 27.685 26.7436C27.9864 27.045 28.3952 27.2143 28.8214 27.2143C29.2477 27.2143 29.6565 27.045 29.9579 26.7436C30.2593 26.4422 30.4286 26.0334 30.4286 25.6071C30.4286 25.1809 30.2593 24.7721 29.9579 24.4707C29.6565 24.1693 29.2477 24 28.8214 24C28.3952 24 27.9864 24.1693 27.685 24.4707C27.3836 24.7721 27.2143 25.1809 27.2143 25.6071ZM33.6429 20.7857C33.3387 20.7855 33.0407 20.8719 32.7838 21.0347C32.5269 21.1976 32.3216 21.4302 32.192 21.7054C33.0312 22.3438 33.7277 23.0759 34.2411 23.8839C34.5882 23.7455 34.8762 23.4903 35.0554 23.1624C35.2347 22.8345 35.294 22.4544 35.2232 22.0874C35.1523 21.7205 34.9557 21.3898 34.6673 21.1522C34.3788 20.9146 34.0166 20.785 33.6429 20.7857ZM24 4C12.9554 4 4 12.9554 4 24C4 35.0446 12.9554 44 24 44C35.0446 44 44 35.0446 44 24C44 12.9554 35.0446 4 24 4ZM34.9375 25.3348C35.1429 25.9375 35.25 26.567 35.25 27.2143C35.25 31.6518 30.2143 35.25 24 35.25C17.7857 35.25 12.75 31.6518 12.75 27.2143C12.75 26.567 12.8571 25.9375 13.0625 25.3348C12.3878 25.0374 11.8359 24.517 11.4993 23.861C11.1627 23.205 11.0617 22.4533 11.2135 21.7317C11.3652 21.0102 11.7604 20.3627 12.3327 19.8979C12.9051 19.4331 13.6198 19.1791 14.3571 19.1786C15.567 19.1786 16.6161 19.8438 17.1652 20.8304C18.7812 19.9464 20.7455 19.3661 22.8839 19.2188L25.4911 13.3661C25.683 12.9286 26.1696 12.7054 26.6295 12.8393L30.7188 14.0223C30.9734 13.5495 31.3785 13.1752 31.8699 12.9587C32.3614 12.7422 32.911 12.6959 33.4318 12.8271C33.9525 12.9583 34.4145 13.2595 34.7447 13.683C35.0749 14.1066 35.2543 14.6282 35.2545 15.1652C35.2545 16.4955 34.1741 17.5759 32.8438 17.5759C31.7946 17.5759 30.9018 16.9018 30.5714 15.9643L26.9018 14.9062L24.9821 19.2143C27.1741 19.3482 29.1875 19.933 30.8393 20.8348C31.3884 19.8482 32.4375 19.183 33.6473 19.183C35.4241 19.183 36.8616 20.6205 36.8616 22.3973C36.8571 23.7054 36.067 24.8348 34.9375 25.3348ZM27.2902 29.0402C26.625 29.5625 25.3125 30.125 24 30.125C22.6875 30.125 21.3705 29.5625 20.7098 29.0402C20.2946 28.7143 19.6964 28.7857 19.3705 29.2009C19.0446 29.6161 19.1161 30.2143 19.5312 30.5402C20.6786 31.4509 22.433 32.0357 24 32.0357C25.567 32.0357 27.3214 31.4509 28.4732 30.5402C28.8884 30.2143 28.9598 29.6116 28.6339 29.2009C28.4769 29.0016 28.2472 28.8728 27.9953 28.8427C27.7434 28.8126 27.4898 28.8836 27.2902 29.0402ZM14.3571 20.7857C13.9834 20.785 13.6212 20.9146 13.3327 21.1522C13.0443 21.3898 12.8477 21.7205 12.7768 22.0874C12.706 22.4544 12.7653 22.8345 12.9446 23.1624C13.1238 23.4903 13.4118 23.7455 13.7589 23.8839C14.2723 23.0759 14.9688 22.3438 15.808 21.7054C15.6784 21.4302 15.4731 21.1976 15.2162 21.0347C14.9593 20.8719 14.6613 20.7855 14.3571 20.7857ZM17.5714 25.6071C17.5714 26.0334 17.7408 26.4422 18.0422 26.7436C18.3435 27.045 18.7523 27.2143 19.1786 27.2143C19.6048 27.2143 20.0136 27.045 20.315 26.7436C20.6164 26.4422 20.7857 26.0334 20.7857 25.6071C20.7857 25.1809 20.6164 24.7721 20.315 24.4707C20.0136 24.1693 19.6048 24 19.1786 24C18.7523 24 18.3435 24.1693 18.0422 24.4707C17.7408 24.7721 17.5714 25.1809 17.5714 25.6071Z" fill="white"/>
3
+ </svg>
@@ -0,0 +1,11 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M24 4C35.0457 4 44 12.9543 44 24C44 35.0457 35.0457 44 24 44C12.9543 44 4 35.0457 4 24C4 12.9543 12.9543 4 24 4Z" fill="white"/>
3
+ <g clip-path="url(#clip0_8897_688)">
4
+ <path d="M25.7856 25.4039L34.7216 35.5674H32.6048L24.8424 26.7443L18.6472 35.5674H11.5L20.8704 22.2241L11.5 11.5674H13.6168L21.8088 20.8868L28.3528 11.5674H35.5M14.3808 34.0055H17.6328L32.6032 13.0525H29.3504" fill="#00262B"/>
5
+ </g>
6
+ <defs>
7
+ <clipPath id="clip0_8897_688">
8
+ <rect width="24" height="24" fill="white" transform="matrix(1 0 0 -1 11.5 35.5674)"/>
9
+ </clipPath>
10
+ </defs>
11
+ </svg>
package/dist/slots.js CHANGED
@@ -1,8 +1,10 @@
1
1
  import { learnerDashboardHeaderApp } from './widgets/LearnerDashboardHeader';
2
+ import appFooter from './widgets/LearnerDashboardFooter/app';
2
3
  import { progressiveProfilingApp } from './widgets/ProgressiveProfilingQuiz';
3
4
  const slots = [
4
5
  ...learnerDashboardHeaderApp.slots,
5
6
  ...progressiveProfilingApp.slots,
7
+ ...appFooter.slots,
6
8
  ];
7
9
  export default slots;
8
10
  //# sourceMappingURL=slots.js.map
package/dist/slots.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"slots.js","sourceRoot":"","sources":["../src/slots.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,MAAM,KAAK,GAAoB;IAC7B,GAAI,yBAAyB,CAAC,KAAY;IAC1C,GAAI,uBAAuB,CAAC,KAAY;CACzC,CAAC;AAEF,eAAe,KAAK,CAAC","sourcesContent":["import { SlotOperation } from '@openedx/frontend-base';\n\nimport { learnerDashboardHeaderApp } from './widgets/LearnerDashboardHeader';\nimport { progressiveProfilingApp } from './widgets/ProgressiveProfilingQuiz';\n\nconst slots: SlotOperation[] = [\n ...(learnerDashboardHeaderApp.slots as []),\n ...(progressiveProfilingApp.slots as []),\n];\n\nexport default slots;\n"]}
1
+ {"version":3,"file":"slots.js","sourceRoot":"","sources":["../src/slots.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,SAAS,MAAM,sCAAsC,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,MAAM,KAAK,GAAoB;IAC7B,GAAI,yBAAyB,CAAC,KAAY;IAC1C,GAAI,uBAAuB,CAAC,KAAY;IACxC,GAAI,SAAS,CAAC,KAAY;CAC3B,CAAC;AACF,eAAe,KAAK,CAAC","sourcesContent":["import { SlotOperation } from '@openedx/frontend-base';\n\nimport { learnerDashboardHeaderApp } from './widgets/LearnerDashboardHeader';\nimport appFooter from './widgets/LearnerDashboardFooter/app';\nimport { progressiveProfilingApp } from './widgets/ProgressiveProfilingQuiz';\n\nconst slots: SlotOperation[] = [\n ...(learnerDashboardHeaderApp.slots as []),\n ...(progressiveProfilingApp.slots as []),\n ...(appFooter.slots as []),\n];\nexport default slots;\n"]}
@@ -0,0 +1,2 @@
1
+ import './index.scss';
2
+ export default function Footer(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,104 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import './index.scss';
3
+ import footerLogo from '../../assets/footerLogo.svg';
4
+ import { useIntl } from '@openedx/frontend-base';
5
+ import SocialIconLinks from './SocialLinks';
6
+ import footerMessages from './messages';
7
+ import LinkList from './LinkList';
8
+ import { useEffect, useState } from 'react';
9
+ const MARKETING_BASE_URL = 'https://edx.org';
10
+ export default function Footer() {
11
+ const intl = useIntl();
12
+ const [utmSource, setUtmSource] = useState('edx.org');
13
+ useEffect(() => {
14
+ setUtmSource(window.location.hostname);
15
+ }, []);
16
+ return (_jsxs("div", { className: "footer py-5.5 bg-primary-500", children: [_jsxs("div", { className: "d-flex align-items-center justify-content-between mb-4.5", children: [_jsx("a", { href: "https://edx.org", "aria-label": intl.formatMessage(footerMessages['footer.logo.ariaLabel']), children: _jsx("img", { className: "footer__logo-main", src: footerLogo, alt: intl.formatMessage(footerMessages['footer.logo.altText']) }) }), _jsx(SocialIconLinks, {})] }), _jsxs("div", { className: "d-flex", children: [_jsx("div", { className: "d-flex flex-column flex-fill", children: _jsx(LinkList, { className: "area-2", title: "edX", links: [
17
+ {
18
+ href: `${MARKETING_BASE_URL}/about-us`,
19
+ title: intl.formatMessage(footerMessages['footer.edxLinks.about']),
20
+ },
21
+ {
22
+ href: `https://business.edx.org/?utm_campaign=edX.org+Referral&utm_medium=Footer&utm_source=${utmSource}`,
23
+ title: intl.formatMessage(footerMessages['footer.edxLinks.business']),
24
+ },
25
+ {
26
+ href: `${MARKETING_BASE_URL}/affiliate-program`,
27
+ title: intl.formatMessage(footerMessages['footer.edxLinks.affiliates']),
28
+ hidden: intl.locale === 'es',
29
+ },
30
+ {
31
+ href: 'http://open.edx.org',
32
+ title: intl.formatMessage(footerMessages['footer.edxLinks.openEdx']),
33
+ hidden: intl.locale === 'es',
34
+ },
35
+ {
36
+ href: 'https://www.edx.org/learn/devops',
37
+ title: intl.formatMessage(footerMessages['footer.legalLinks.advisory']),
38
+ hidden: intl.locale === 'es',
39
+ },
40
+ {
41
+ href: `${MARKETING_BASE_URL}/careers`,
42
+ title: intl.formatMessage(footerMessages['footer.edxLinks.careers']),
43
+ hidden: intl.locale === 'es',
44
+ },
45
+ {
46
+ href: `https://press.edx.org/`,
47
+ title: intl.formatMessage(footerMessages['footer.edxLinks.news']),
48
+ },
49
+ ] }) }), _jsx("div", { className: "d-flex flex-column flex-fill", children: _jsx(LinkList, { className: "area-4", title: intl.formatMessage(footerMessages['footer.connectLinks.heading']), links: [
50
+ {
51
+ href: 'https://www.edx.org/resources',
52
+ title: intl.formatMessage(footerMessages['footer.connectLinks.blog']),
53
+ },
54
+ {
55
+ href: 'https://courses.edx.org/support/contact_us',
56
+ title: intl.formatMessage(footerMessages['footer.connectLinks.contact']),
57
+ },
58
+ {
59
+ href: 'https://support.edx.org',
60
+ title: intl.formatMessage(footerMessages['footer.connectLinks.help']),
61
+ },
62
+ {
63
+ href: `${MARKETING_BASE_URL}/policy/security`,
64
+ title: intl.formatMessage(footerMessages['footer.connectLinks.security']),
65
+ },
66
+ {
67
+ href: `${MARKETING_BASE_URL}/media-kit`,
68
+ title: intl.formatMessage(footerMessages['footer.connectLinks.mediaKit']),
69
+ hidden: intl.locale === 'es',
70
+ },
71
+ ] }) }), _jsx("div", { className: "d-flex flex-column flex-fill", children: _jsx(LinkList, { className: "area-3", title: intl.formatMessage(footerMessages['footer.legalLinks.heading']), links: [
72
+ {
73
+ href: `${MARKETING_BASE_URL}/edx-terms-service`,
74
+ title: intl.formatMessage(footerMessages['footer.legalLinks.termsOfService']),
75
+ },
76
+ {
77
+ href: `${MARKETING_BASE_URL}/edx-privacy-policy`,
78
+ title: intl.formatMessage(footerMessages['footer.legalLinks.privacyPolicy']),
79
+ },
80
+ {
81
+ href: `${MARKETING_BASE_URL}/edx-privacy-policy/cookies`,
82
+ title: intl.formatMessage(footerMessages['footer.legalLinks.cookiePolicy']),
83
+ },
84
+ {
85
+ href: `${MARKETING_BASE_URL}/accessibility`,
86
+ title: intl.formatMessage(footerMessages['footer.legalLinks.a11yPolicy']),
87
+ },
88
+ {
89
+ href: `${MARKETING_BASE_URL}/trademarks`,
90
+ title: intl.formatMessage(footerMessages['footer.legalLinks.trademarkPolicy']),
91
+ hidden: intl.locale === 'es',
92
+ },
93
+ {
94
+ href: `${MARKETING_BASE_URL}/modern-slavery-statement`,
95
+ title: intl.formatMessage(footerMessages['footer.legalLinks.modernSlavery']),
96
+ },
97
+ {
98
+ href: `${MARKETING_BASE_URL}/sitemap`,
99
+ title: intl.formatMessage(footerMessages['footer.legalLinks.sitemap']),
100
+ hidden: intl.locale === 'es',
101
+ },
102
+ ] }) }), _jsx("div", { className: "d-flex flex-column flex-fill" })] }), _jsx("div", { className: "mt-4.5 d-flex align-items-start", children: _jsxs("div", { className: "d-flex flex-column align-items-start", children: [_jsx("p", { className: "x-small text-white", children: intl.formatMessage(footerMessages['footer.copyRight']) }), _jsx("p", { className: "x-small text-white", children: intl.formatMessage(footerMessages['footer.copyRightCn']) })] }) })] }));
103
+ }
104
+ //# sourceMappingURL=Footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardFooter/Footer.tsx"],"names":[],"mappings":"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","sourcesContent":["import './index.scss';\nimport footerLogo from '../../assets/footerLogo.svg';\n\nimport { useIntl } from '@openedx/frontend-base';\nimport SocialIconLinks from './SocialLinks';\nimport footerMessages from './messages';\nimport LinkList from './LinkList';\nimport { useEffect, useState } from 'react';\n\nconst MARKETING_BASE_URL = 'https://edx.org';\n\nexport default function Footer() {\n const intl = useIntl();\n const [utmSource, setUtmSource] = useState('edx.org');\n\n useEffect(() => {\n setUtmSource(window.location.hostname);\n }, []);\n\n return (\n <div className=\"footer py-5.5 bg-primary-500\">\n <div className=\"d-flex align-items-center justify-content-between mb-4.5\">\n <a\n href=\"https://edx.org\"\n aria-label={intl.formatMessage(\n footerMessages['footer.logo.ariaLabel'],\n )}\n >\n <img\n className=\"footer__logo-main\"\n src={footerLogo}\n alt={intl.formatMessage(footerMessages['footer.logo.altText'])}\n />\n </a>\n <SocialIconLinks />\n </div>\n <div className=\"d-flex\">\n <div className=\"d-flex flex-column flex-fill\">\n <LinkList\n className=\"area-2\"\n title=\"edX\"\n links={[\n {\n href: `${MARKETING_BASE_URL}/about-us`,\n title: intl.formatMessage(\n footerMessages['footer.edxLinks.about'],\n ),\n },\n {\n href: `https://business.edx.org/?utm_campaign=edX.org+Referral&utm_medium=Footer&utm_source=${utmSource}`,\n title: intl.formatMessage(\n footerMessages['footer.edxLinks.business'],\n ),\n },\n {\n href: `${MARKETING_BASE_URL}/affiliate-program`,\n title: intl.formatMessage(\n footerMessages['footer.edxLinks.affiliates'],\n ),\n hidden: intl.locale === 'es',\n },\n {\n href: 'http://open.edx.org',\n title: intl.formatMessage(\n footerMessages['footer.edxLinks.openEdx'],\n ),\n hidden: intl.locale === 'es',\n },\n {\n href: 'https://www.edx.org/learn/devops',\n title: intl.formatMessage(\n footerMessages['footer.legalLinks.advisory'],\n ),\n hidden: intl.locale === 'es',\n },\n {\n href: `${MARKETING_BASE_URL}/careers`,\n title: intl.formatMessage(\n footerMessages['footer.edxLinks.careers'],\n ),\n hidden: intl.locale === 'es',\n },\n {\n href: `https://press.edx.org/`,\n title: intl.formatMessage(\n footerMessages['footer.edxLinks.news'],\n ),\n },\n ]}\n />\n </div>\n <div className=\"d-flex flex-column flex-fill\">\n <LinkList\n className=\"area-4\"\n title={intl.formatMessage(\n footerMessages['footer.connectLinks.heading'],\n )}\n links={[\n {\n href: 'https://www.edx.org/resources',\n title: intl.formatMessage(\n footerMessages['footer.connectLinks.blog'],\n ),\n },\n {\n href: 'https://courses.edx.org/support/contact_us',\n title: intl.formatMessage(\n footerMessages['footer.connectLinks.contact'],\n ),\n },\n {\n href: 'https://support.edx.org',\n title: intl.formatMessage(\n footerMessages['footer.connectLinks.help'],\n ),\n },\n {\n href: `${MARKETING_BASE_URL}/policy/security`,\n title: intl.formatMessage(\n footerMessages['footer.connectLinks.security'],\n ),\n },\n {\n href: `${MARKETING_BASE_URL}/media-kit`,\n title: intl.formatMessage(\n footerMessages['footer.connectLinks.mediaKit'],\n ),\n hidden: intl.locale === 'es',\n },\n ]}\n />\n </div>\n <div className=\"d-flex flex-column flex-fill\">\n <LinkList\n className=\"area-3\"\n title={intl.formatMessage(\n footerMessages['footer.legalLinks.heading'],\n )}\n links={[\n {\n href: `${MARKETING_BASE_URL}/edx-terms-service`,\n title: intl.formatMessage(\n footerMessages['footer.legalLinks.termsOfService'],\n ),\n },\n {\n href: `${MARKETING_BASE_URL}/edx-privacy-policy`,\n title: intl.formatMessage(\n footerMessages['footer.legalLinks.privacyPolicy'],\n ),\n },\n {\n href: `${MARKETING_BASE_URL}/edx-privacy-policy/cookies`,\n title: intl.formatMessage(\n footerMessages['footer.legalLinks.cookiePolicy'],\n ),\n },\n {\n href: `${MARKETING_BASE_URL}/accessibility`,\n title: intl.formatMessage(\n footerMessages['footer.legalLinks.a11yPolicy'],\n ),\n },\n {\n href: `${MARKETING_BASE_URL}/trademarks`,\n title: intl.formatMessage(\n footerMessages['footer.legalLinks.trademarkPolicy'],\n ),\n hidden: intl.locale === 'es',\n },\n {\n href: `${MARKETING_BASE_URL}/modern-slavery-statement`,\n title: intl.formatMessage(\n footerMessages['footer.legalLinks.modernSlavery'],\n ),\n },\n {\n href: `${MARKETING_BASE_URL}/sitemap`,\n title: intl.formatMessage(\n footerMessages['footer.legalLinks.sitemap'],\n ),\n hidden: intl.locale === 'es',\n },\n ]}\n />\n </div>\n <div className=\"d-flex flex-column flex-fill\">\n {/* language selector not implemented */}\n </div>\n </div>\n\n <div className=\"mt-4.5 d-flex align-items-start\">\n <div className=\"d-flex flex-column align-items-start\">\n <p className=\"x-small text-white\">\n {intl.formatMessage(footerMessages['footer.copyRight'])}\n </p>\n <p className=\"x-small text-white\">\n {intl.formatMessage(footerMessages['footer.copyRightCn'])}\n </p>\n </div>\n </div>\n </div>\n );\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import React, { HTMLAttributes } from 'react';
2
+ import { Button } from '@openedx/paragon';
3
+ type ButtonComponentProps = React.ComponentProps<typeof Button>;
4
+ export interface LinkItem {
5
+ title: string;
6
+ href?: string;
7
+ hidden?: boolean;
8
+ onClick?: ButtonComponentProps['onClick'];
9
+ variant?: ButtonComponentProps['variant'];
10
+ size?: ButtonComponentProps['size'];
11
+ id?: ButtonComponentProps['id'];
12
+ className?: ButtonComponentProps['className'];
13
+ }
14
+ export interface LinkListProps extends HTMLAttributes<HTMLDivElement> {
15
+ title: string;
16
+ links?: LinkItem[];
17
+ }
18
+ declare const LinkList: React.FC<LinkListProps>;
19
+ export default LinkList;
@@ -0,0 +1,28 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { Button } from '@openedx/paragon';
14
+ const LinkList = (_a) => {
15
+ var { title: listTitle, links = [] } = _a, props = __rest(_a, ["title", "links"]);
16
+ return (_jsxs("div", Object.assign({ className: "d-flex flex-column flex-fill" }, props, { children: [_jsx("h2", { className: "footer__section-title text-white mb-3 small", children: listTitle }), _jsx("ul", { className: "list-unstyled p-0 m-0 footer__links", children: links.map((_a) => {
17
+ var { title, href, hidden } = _a, linkProps = __rest(_a, ["title", "href", "hidden"]);
18
+ if (hidden) {
19
+ return null;
20
+ }
21
+ if (!href) {
22
+ return (_jsx("li", { children: _jsx(Button, Object.assign({}, linkProps, { children: title })) }, title));
23
+ }
24
+ return (_jsx("li", { children: _jsx("a", { className: "text-white x-small", href: href, children: title }) }, `${href}${title}`));
25
+ }) })] })));
26
+ };
27
+ export default LinkList;
28
+ //# sourceMappingURL=LinkList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkList.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardFooter/LinkList.tsx"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAoB1C,MAAM,QAAQ,GAA4B,CAAC,EAI1C,EAAE,EAAE;QAJsC,EACzC,KAAK,EAAE,SAAS,EAChB,KAAK,GAAG,EAAE,OAEX,EADI,KAAK,cAHiC,kBAI1C,CADS;IACJ,OAAA,CACJ,6BAAK,SAAS,EAAC,8BAA8B,IAAK,KAAK,eACrD,aAAI,SAAS,EAAC,6CAA6C,YAAE,SAAS,GAAM,EAC5E,aAAI,SAAS,EAAC,qCAAqC,YAChD,KAAK,CAAC,GAAG,CAAC,CAAC,EAAqC,EAAE,EAAE;wBAAzC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,OAAgB,EAAX,SAAS,cAAnC,2BAAqC,CAAF;oBAC7C,IAAI,MAAM,EAAE,CAAC;wBACX,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,IAAI,CAAC,IAAI,EAAE,CAAC;wBACV,OAAO,CACL,uBACE,KAAC,MAAM,oBAAK,SAAS,cAAG,KAAK,IAAU,IADhC,KAAK,CAET,CACN,CAAC;oBACJ,CAAC;oBAED,OAAO,CACL,uBACE,YAAG,SAAS,EAAC,oBAAoB,EAAC,IAAI,EAAE,IAAI,YACzC,KAAK,GACJ,IAHG,GAAG,IAAI,GAAG,KAAK,EAAE,CAIrB,CACN,CAAC;gBACJ,CAAC,CAAC,GACC,KACD,CACP,CAAA;CAAA,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport { Button } from '@openedx/paragon';\n\ntype ButtonComponentProps = React.ComponentProps<typeof Button>;\n\nexport interface LinkItem {\n title: string,\n href?: string,\n hidden?: boolean,\n onClick?: ButtonComponentProps['onClick'],\n variant?: ButtonComponentProps['variant'],\n size?: ButtonComponentProps['size'],\n id?: ButtonComponentProps['id'],\n className?: ButtonComponentProps['className'],\n}\n\nexport interface LinkListProps extends HTMLAttributes<HTMLDivElement> {\n title: string,\n links?: LinkItem[],\n}\n\nconst LinkList: React.FC<LinkListProps> = ({\n title: listTitle,\n links = [],\n ...props\n}) => (\n <div className=\"d-flex flex-column flex-fill\" {...props}>\n <h2 className=\"footer__section-title text-white mb-3 small\">{listTitle}</h2>\n <ul className=\"list-unstyled p-0 m-0 footer__links\">\n {links.map(({ title, href, hidden, ...linkProps }) => {\n if (hidden) {\n return null;\n }\n\n if (!href) {\n return (\n <li key={title}>\n <Button {...linkProps}>{title}</Button>\n </li>\n );\n }\n\n return (\n <li key={`${href}${title}`}>\n <a className=\"text-white x-small\" href={href}>\n {title}\n </a>\n </li>\n );\n })}\n </ul>\n </div>\n);\n\nexport default LinkList;\n"]}
@@ -0,0 +1,2 @@
1
+ import './index.scss';
2
+ export default function SocialIconLinks(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import './index.scss';
3
+ import facebook from '../../assets/facebook.svg';
4
+ import twitter from '../../assets/twitter.svg';
5
+ import linkedin from '../../assets/linkedin.svg';
6
+ import reddit from '../../assets/reddit.svg';
7
+ import { sendTrackEvent } from '@openedx/frontend-base';
8
+ const EVENT_NAMES = {
9
+ FOOTER_LINK: 'edx.bi.footer.link',
10
+ };
11
+ const socialIconLinks = [
12
+ {
13
+ title: 'Facebook',
14
+ url: 'https://www.facebook.com/EdxOnline',
15
+ icon: facebook,
16
+ },
17
+ {
18
+ title: 'X (formerly Twitter)',
19
+ url: 'https://twitter.com/edXOnline',
20
+ icon: twitter,
21
+ },
22
+ {
23
+ title: 'LinkedIn',
24
+ url: 'https://www.linkedin.com/company/edx',
25
+ icon: linkedin,
26
+ },
27
+ {
28
+ title: 'Reddit',
29
+ url: 'https://www.reddit.com/r/edx',
30
+ icon: reddit,
31
+ },
32
+ ];
33
+ export default function SocialIconLinks() {
34
+ const externalLinkClickHandler = (event) => {
35
+ const label = event.currentTarget.getAttribute('href');
36
+ const eventName = EVENT_NAMES.FOOTER_LINK;
37
+ const properties = {
38
+ category: 'outbound_link',
39
+ label,
40
+ };
41
+ sendTrackEvent(eventName, properties);
42
+ };
43
+ return (_jsx("ul", { className: "footer__social-links d-flex list-unstyled", children: socialIconLinks.map(({ title, url, icon }) => (_jsx("li", { className: "mb-2", children: _jsx("a", { href: url, title: title, "aria-label": title, target: "_blank", rel: "noopener noreferrer", onClick: externalLinkClickHandler, className: "text-decoration-none text-white", children: _jsx("img", { src: icon, alt: title, "aria-hidden": "true" }) }) }, url))) }));
44
+ }
45
+ //# sourceMappingURL=SocialLinks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SocialLinks.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardFooter/SocialLinks.tsx"],"names":[],"mappings":";AACA,OAAO,cAAc,CAAC;AAEtB,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,OAAO,MAAM,0BAA0B,CAAC;AAC/C,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,WAAW,GAAG;IAClB,WAAW,EAAE,oBAAoB;CAClC,CAAC;AAQF,MAAM,eAAe,GAAqB;IACxC;QACE,KAAK,EAAE,UAAU;QACjB,GAAG,EAAE,oCAAoC;QACzC,IAAI,EAAE,QAAQ;KACf;IACD;QACE,KAAK,EAAE,sBAAsB;QAC7B,GAAG,EAAE,+BAA+B;QACpC,IAAI,EAAE,OAAO;KACd;IACD;QACE,KAAK,EAAE,UAAU;QACjB,GAAG,EAAE,sCAAsC;QAC3C,IAAI,EAAE,QAAQ;KACf;IACD;QACE,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,8BAA8B;QACnC,IAAI,EAAE,MAAM;KACb;CACF,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,eAAe;IACrC,MAAM,wBAAwB,GAAG,CAC/B,KAA0C,EAC1C,EAAE;QACF,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAEvD,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC;QAE1C,MAAM,UAAU,GAAG;YACjB,QAAQ,EAAE,eAAe;YACzB,KAAK;SACN,CAAC;QAEF,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,OAAO,CACL,aAAI,SAAS,EAAC,2CAA2C,YACtD,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAC7C,aAAI,SAAS,EAAC,MAAM,YAClB,YACE,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,KAAK,gBACA,KAAK,EACjB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,OAAO,EAAE,wBAAwB,EACjC,SAAS,EAAC,iCAAiC,YAE3C,cAAK,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,iBAAc,MAAM,GAAG,GAC/C,IAXoB,GAAG,CAYxB,CACN,CAAC,GACC,CACN,CAAC;AACJ,CAAC","sourcesContent":["import React from 'react';\nimport './index.scss';\n\nimport facebook from '../../assets/facebook.svg';\nimport twitter from '../../assets/twitter.svg';\nimport linkedin from '../../assets/linkedin.svg';\nimport reddit from '../../assets/reddit.svg';\nimport { sendTrackEvent } from '@openedx/frontend-base';\n\nconst EVENT_NAMES = {\n FOOTER_LINK: 'edx.bi.footer.link',\n};\n\ninterface SocialIconLink {\n title: string,\n url: string,\n icon: string,\n}\n\nconst socialIconLinks: SocialIconLink[] = [\n {\n title: 'Facebook',\n url: 'https://www.facebook.com/EdxOnline',\n icon: facebook,\n },\n {\n title: 'X (formerly Twitter)',\n url: 'https://twitter.com/edXOnline',\n icon: twitter,\n },\n {\n title: 'LinkedIn',\n url: 'https://www.linkedin.com/company/edx',\n icon: linkedin,\n },\n {\n title: 'Reddit',\n url: 'https://www.reddit.com/r/edx',\n icon: reddit,\n },\n];\n\nexport default function SocialIconLinks() {\n const externalLinkClickHandler = (\n event: React.MouseEvent<HTMLAnchorElement>,\n ) => {\n const label = event.currentTarget.getAttribute('href');\n\n const eventName = EVENT_NAMES.FOOTER_LINK;\n\n const properties = {\n category: 'outbound_link',\n label,\n };\n\n sendTrackEvent(eventName, properties);\n };\n\n return (\n <ul className=\"footer__social-links d-flex list-unstyled\">\n {socialIconLinks.map(({ title, url, icon }) => (\n <li className=\"mb-2\" key={url}>\n <a\n href={url}\n title={title}\n aria-label={title}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={externalLinkClickHandler}\n className=\"text-decoration-none text-white\"\n >\n <img src={icon} alt={title} aria-hidden=\"true\" />\n </a>\n </li>\n ))}\n </ul>\n );\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import { App } from '@openedx/frontend-base';
2
+ declare const appFooter: App;
3
+ export default appFooter;
@@ -0,0 +1,16 @@
1
+ import { WidgetOperationTypes } from '@openedx/frontend-base';
2
+ import Footer from './Footer';
3
+ const appFooter = {
4
+ appId: 'org.openedx.frontend.app.subscriptionDashboard.footer',
5
+ slots: [
6
+ {
7
+ slotId: 'org.openedx.frontend.slot.footer.main.v1',
8
+ relatedId: 'org.openedx.frontend.widget.footer.main.v1',
9
+ id: 'org.openedx.frontend.widget.footer.subscriptionDashboard.v1',
10
+ op: WidgetOperationTypes.REPLACE,
11
+ component: Footer,
12
+ },
13
+ ],
14
+ };
15
+ export default appFooter;
16
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardFooter/app.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,SAAS,GAAQ;IACrB,KAAK,EAAE,uDAAuD;IAC9D,KAAK,EAAE;QACL;YACE,MAAM,EAAE,0CAA0C;YAClD,SAAS,EAAE,4CAA4C;YACvD,EAAE,EAAE,6DAA6D;YACjE,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,MAAM;SAClB;KACF;CACF,CAAC;AAEF,eAAe,SAAS,CAAC","sourcesContent":["import { App, WidgetOperationTypes } from '@openedx/frontend-base';\nimport Footer from './Footer';\n\nconst appFooter: App = {\n appId: 'org.openedx.frontend.app.subscriptionDashboard.footer',\n slots: [\n {\n slotId: 'org.openedx.frontend.slot.footer.main.v1',\n relatedId: 'org.openedx.frontend.widget.footer.main.v1',\n id: 'org.openedx.frontend.widget.footer.subscriptionDashboard.v1',\n op: WidgetOperationTypes.REPLACE,\n component: Footer,\n },\n ],\n};\n\nexport default appFooter;\n"]}
@@ -0,0 +1,16 @@
1
+ .footer {
2
+ padding-inline: 10.25rem;
3
+
4
+ &__logo-main {
5
+ max-width: 8.125rem;
6
+ }
7
+
8
+ &__section-title {
9
+ font-weight: 700;
10
+ line-height: 1.75rem;
11
+ }
12
+
13
+ &__social-links {
14
+ gap: 1rem;
15
+ }
16
+ }
@@ -0,0 +1,188 @@
1
+ declare const footerMessages: {
2
+ 'footer.socialLinks.srText.facebook': {
3
+ id: string;
4
+ defaultMessage: string;
5
+ description: string;
6
+ };
7
+ 'footer.socialLinks.srText.twitter': {
8
+ id: string;
9
+ defaultMessage: string;
10
+ description: string;
11
+ };
12
+ 'footer.socialLinks.srText.youtube': {
13
+ id: string;
14
+ defaultMessage: string;
15
+ description: string;
16
+ };
17
+ 'footer.socialLinks.srText.linkedin': {
18
+ id: string;
19
+ defaultMessage: string;
20
+ description: string;
21
+ };
22
+ 'footer.socialLinks.srText.instagram': {
23
+ id: string;
24
+ defaultMessage: string;
25
+ description: string;
26
+ };
27
+ 'footer.socialLinks.srText.reddit': {
28
+ id: string;
29
+ defaultMessage: string;
30
+ description: string;
31
+ };
32
+ 'footer.languageForm.select.label': {
33
+ id: string;
34
+ defaultMessage: string;
35
+ description: string;
36
+ };
37
+ 'footer.languageForm.submit.label': {
38
+ id: string;
39
+ defaultMessage: string;
40
+ description: string;
41
+ };
42
+ 'footer.edxLinks.about': {
43
+ id: string;
44
+ defaultMessage: string;
45
+ description: string;
46
+ };
47
+ 'footer.edxLinks.business': {
48
+ id: string;
49
+ defaultMessage: string;
50
+ description: string;
51
+ };
52
+ 'footer.edxLinks.affiliates': {
53
+ id: string;
54
+ defaultMessage: string;
55
+ description: string;
56
+ };
57
+ 'footer.edxLinks.openEdx': {
58
+ id: string;
59
+ defaultMessage: string;
60
+ description: string;
61
+ };
62
+ 'footer.edxLinks.careers': {
63
+ id: string;
64
+ defaultMessage: string;
65
+ description: string;
66
+ };
67
+ 'footer.edxLinks.news': {
68
+ id: string;
69
+ defaultMessage: string;
70
+ description: string;
71
+ };
72
+ 'footer.legalLinks.heading': {
73
+ id: string;
74
+ defaultMessage: string;
75
+ description: string;
76
+ };
77
+ 'footer.legalLinks.termsOfService': {
78
+ id: string;
79
+ defaultMessage: string;
80
+ description: string;
81
+ };
82
+ 'footer.legalLinks.privacyPolicy': {
83
+ id: string;
84
+ defaultMessage: string;
85
+ description: string;
86
+ };
87
+ 'footer.legalLinks.a11yPolicy': {
88
+ id: string;
89
+ defaultMessage: string;
90
+ description: string;
91
+ };
92
+ 'footer.legalLinks.trademarkPolicy': {
93
+ id: string;
94
+ defaultMessage: string;
95
+ description: string;
96
+ };
97
+ 'footer.legalLinks.sitemap': {
98
+ id: string;
99
+ defaultMessage: string;
100
+ description: string;
101
+ };
102
+ 'footer.legalLinks.doNotSellData': {
103
+ id: string;
104
+ defaultMessage: string;
105
+ description: string;
106
+ };
107
+ 'footer.legalLinks.modernSlavery': {
108
+ id: string;
109
+ defaultMessage: string;
110
+ description: string;
111
+ };
112
+ 'footer.connectLinks.heading': {
113
+ id: string;
114
+ defaultMessage: string;
115
+ description: string;
116
+ };
117
+ 'footer.connectLinks.blog': {
118
+ id: string;
119
+ defaultMessage: string;
120
+ description: string;
121
+ };
122
+ 'footer.connectLinks.contact': {
123
+ id: string;
124
+ defaultMessage: string;
125
+ description: string;
126
+ };
127
+ 'footer.connectLinks.help': {
128
+ id: string;
129
+ defaultMessage: string;
130
+ description: string;
131
+ };
132
+ 'footer.connectLinks.security': {
133
+ id: string;
134
+ defaultMessage: string;
135
+ description: string;
136
+ };
137
+ 'footer.connectLinks.mediaKit': {
138
+ id: string;
139
+ defaultMessage: string;
140
+ description: string;
141
+ };
142
+ 'footer.mobileApp.apple': {
143
+ id: string;
144
+ defaultMessage: string;
145
+ description: string;
146
+ };
147
+ 'footer.mobileApp.google': {
148
+ id: string;
149
+ defaultMessage: string;
150
+ description: string;
151
+ };
152
+ 'footer.logo.altText': {
153
+ id: string;
154
+ defaultMessage: string;
155
+ description: string;
156
+ };
157
+ 'footer.logo.ariaLabel': {
158
+ id: string;
159
+ defaultMessage: string;
160
+ description: string;
161
+ };
162
+ 'footer.ariaLabel': {
163
+ id: string;
164
+ defaultMessage: string;
165
+ description: string;
166
+ };
167
+ 'footer.copyRight': {
168
+ id: string;
169
+ defaultMessage: string;
170
+ description: string;
171
+ };
172
+ 'footer.copyRightCn': {
173
+ id: string;
174
+ defaultMessage: string;
175
+ description: string;
176
+ };
177
+ 'footer.legalLinks.cookiePolicy': {
178
+ id: string;
179
+ defaultMessage: string;
180
+ description: string;
181
+ };
182
+ 'footer.legalLinks.advisory': {
183
+ id: string;
184
+ defaultMessage: string;
185
+ description: string;
186
+ };
187
+ };
188
+ export default footerMessages;
@@ -0,0 +1,190 @@
1
+ import { defineMessages } from '@openedx/frontend-base';
2
+ const footerMessages = defineMessages({
3
+ 'footer.socialLinks.srText.facebook': {
4
+ id: 'footer.socialLinks.srText.facebook',
5
+ defaultMessage: 'Like edX on Facebook',
6
+ description: 'This is screenreader text for the edX Facebook social media link in the footer.',
7
+ },
8
+ 'footer.socialLinks.srText.twitter': {
9
+ id: 'footer.socialLinks.srText.twitter',
10
+ defaultMessage: 'Follow edX on X (formerly Twitter)',
11
+ description: 'This is screenreader text for the edX X (formerly Twitter) media link in the footer.',
12
+ },
13
+ 'footer.socialLinks.srText.youtube': {
14
+ id: 'footer.socialLinks.srText.youtube',
15
+ defaultMessage: 'Subscribe to the edX YouTube channel',
16
+ description: 'This is screenreader text for the edX YouTube social media link in the footer.',
17
+ },
18
+ 'footer.socialLinks.srText.linkedin': {
19
+ id: 'footer.socialLinks.srText.linkedin',
20
+ defaultMessage: 'Follow edX on LinkedIn',
21
+ description: 'This is screenreader text for the edX LinkedIn social media link in the footer.',
22
+ },
23
+ 'footer.socialLinks.srText.instagram': {
24
+ id: 'footer.socialLinks.srText.instagram',
25
+ defaultMessage: 'Follow edX on Instagram',
26
+ description: 'This is screenreader text for the edX Instagram social media link in the footer.',
27
+ },
28
+ 'footer.socialLinks.srText.reddit': {
29
+ id: 'footer.socialLinks.srText.reddit',
30
+ defaultMessage: 'Subscribe to the edX subreddit',
31
+ description: 'This is screenreader text for the edX reddit social media link in the footer.',
32
+ },
33
+ 'footer.languageForm.select.label': {
34
+ id: 'footer.languageForm.select.label',
35
+ defaultMessage: 'Choose Language',
36
+ description: 'The label for the language select part of the language selection form.',
37
+ },
38
+ 'footer.languageForm.submit.label': {
39
+ id: 'footer.languageForm.submit.label',
40
+ defaultMessage: 'Apply',
41
+ description: 'The label for button to submit the language selection form.',
42
+ },
43
+ 'footer.edxLinks.about': {
44
+ id: 'footer.edxLinks.about',
45
+ defaultMessage: 'About',
46
+ description: 'The label for the link to the about edX page.',
47
+ },
48
+ 'footer.edxLinks.business': {
49
+ id: 'footer.edxLinks.business',
50
+ defaultMessage: 'edX for Business',
51
+ description: 'The label for the link to the edX for business page.',
52
+ },
53
+ 'footer.edxLinks.affiliates': {
54
+ id: 'footer.edxLinks.affiliates',
55
+ defaultMessage: 'Affiliates',
56
+ description: 'The label for the link to the edX affiliates page.',
57
+ },
58
+ 'footer.edxLinks.openEdx': {
59
+ id: 'footer.edxLinks.openEdx',
60
+ defaultMessage: 'Open edX',
61
+ description: 'The label for the link to the open edX site.',
62
+ },
63
+ 'footer.edxLinks.careers': {
64
+ id: 'footer.edxLinks.careers',
65
+ defaultMessage: 'Careers',
66
+ description: 'The label for the link to the edX Careers page.',
67
+ },
68
+ 'footer.edxLinks.news': {
69
+ id: 'footer.edxLinks.news',
70
+ defaultMessage: 'News',
71
+ description: 'The label for the link to the edX news page.',
72
+ },
73
+ 'footer.legalLinks.heading': {
74
+ id: 'footer.legalLinks.heading',
75
+ defaultMessage: 'Legal',
76
+ description: 'Heading for the legal links section of the footer.',
77
+ },
78
+ 'footer.legalLinks.termsOfService': {
79
+ id: 'footer.legalLinks.termsOfService',
80
+ defaultMessage: 'Terms of Service & Honor Code',
81
+ description: 'The label for the link to the edX terms of service page.',
82
+ },
83
+ 'footer.legalLinks.privacyPolicy': {
84
+ id: 'footer.legalLinks.privacyPolicy',
85
+ defaultMessage: 'Privacy Policy',
86
+ description: 'The label for the link to the edX privacy policy page.',
87
+ },
88
+ 'footer.legalLinks.a11yPolicy': {
89
+ id: 'footer.legalLinks.a11yPolicy',
90
+ defaultMessage: 'Accessibility Policy',
91
+ description: 'The label for the link to the edX accessibility policy page.',
92
+ },
93
+ 'footer.legalLinks.trademarkPolicy': {
94
+ id: 'footer.legalLinks.trademarkPolicy',
95
+ defaultMessage: 'Trademark Policy',
96
+ description: 'The label for the link to the edX trademark policy page.',
97
+ },
98
+ 'footer.legalLinks.sitemap': {
99
+ id: 'footer.legalLinks.sitemap',
100
+ defaultMessage: 'Sitemap',
101
+ description: 'The label for the link to the edX sitemap page.',
102
+ },
103
+ 'footer.legalLinks.doNotSellData': {
104
+ id: 'footer.legalLinks.doNotSellData',
105
+ defaultMessage: 'Your Privacy Choices',
106
+ description: 'link button that leads to the One Trust modal and sets the edx_do_not_sell cookie.',
107
+ },
108
+ 'footer.legalLinks.modernSlavery': {
109
+ id: 'footer.legalLinks.modernSlavery',
110
+ defaultMessage: 'Modern Slavery Statement',
111
+ description: 'link button that leads to the edX "Cookie Policy" page',
112
+ },
113
+ 'footer.connectLinks.heading': {
114
+ id: 'footer.connectLinks.heading',
115
+ defaultMessage: 'Connect',
116
+ description: 'Heading for the connect links section of the footer.',
117
+ },
118
+ 'footer.connectLinks.blog': {
119
+ id: 'footer.connectLinks.blog',
120
+ defaultMessage: 'Resources',
121
+ description: 'The label for the link to edX Idea Hub page.',
122
+ },
123
+ 'footer.connectLinks.contact': {
124
+ id: 'footer.connectLinks.contact',
125
+ defaultMessage: 'Contact Us',
126
+ description: 'The label for the link to the contact edX page.',
127
+ },
128
+ 'footer.connectLinks.help': {
129
+ id: 'footer.connectLinks.help',
130
+ defaultMessage: 'Help Center',
131
+ description: 'The label for the link to the edX help center.',
132
+ },
133
+ 'footer.connectLinks.security': {
134
+ id: 'footer.connectLinks.security',
135
+ defaultMessage: 'Security',
136
+ description: 'The label for the link to the security disclosures page.',
137
+ },
138
+ 'footer.connectLinks.mediaKit': {
139
+ id: 'footer.connectLinks.mediaKit',
140
+ defaultMessage: 'Media Kit',
141
+ description: 'The label for the link to the edX media kit page.',
142
+ },
143
+ 'footer.mobileApp.apple': {
144
+ id: 'footer.mobileApp.apple',
145
+ defaultMessage: 'Download the edX mobile app from the Apple App Store',
146
+ description: 'The label for the link to download the apple version of the edX app.',
147
+ },
148
+ 'footer.mobileApp.google': {
149
+ id: 'footer.mobileApp.google',
150
+ defaultMessage: 'Download the edX mobile app from Google Play',
151
+ description: 'The label for the link to download the google version of the edX app.',
152
+ },
153
+ 'footer.logo.altText': {
154
+ id: 'footer.logo.altText',
155
+ defaultMessage: 'edX Logo',
156
+ description: 'alt text for the footer logo.',
157
+ },
158
+ 'footer.logo.ariaLabel': {
159
+ id: 'footer.logo.ariaLabel',
160
+ defaultMessage: 'edX Home',
161
+ description: 'aria-label for the footer logo.',
162
+ },
163
+ 'footer.ariaLabel': {
164
+ id: 'footer.ariaLabel',
165
+ defaultMessage: 'Page Footer',
166
+ description: 'aria-label for the footer component',
167
+ },
168
+ 'footer.copyRight': {
169
+ id: 'footer.copyRight',
170
+ defaultMessage: '© 2026 edX LLC. All rights reserved.',
171
+ description: 'Footer copy right message',
172
+ },
173
+ 'footer.copyRightCn': {
174
+ id: 'footer.copyRightCn',
175
+ defaultMessage: '| 深圳市恒宇博科技有限公司',
176
+ description: 'Footer copy right message CN',
177
+ },
178
+ 'footer.legalLinks.cookiePolicy': {
179
+ id: 'footer.legalLinks.cookiePolicy',
180
+ defaultMessage: 'Cookie Policy',
181
+ description: 'link button that leads to the edX "Cookie Policy" page',
182
+ },
183
+ 'footer.legalLinks.advisory': {
184
+ id: 'footer.legalLinks.advisory',
185
+ defaultMessage: '2U Advisory Council',
186
+ description: 'link button that leads to the edX "2U Advisory Council" page',
187
+ },
188
+ });
189
+ export default footerMessages;
190
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardFooter/messages.ts"],"names":[],"mappings":"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","sourcesContent":["import { defineMessages } from '@openedx/frontend-base';\n\nconst footerMessages = defineMessages({\n 'footer.socialLinks.srText.facebook': {\n id: 'footer.socialLinks.srText.facebook',\n defaultMessage: 'Like edX on Facebook',\n description:\n 'This is screenreader text for the edX Facebook social media link in the footer.',\n },\n 'footer.socialLinks.srText.twitter': {\n id: 'footer.socialLinks.srText.twitter',\n defaultMessage: 'Follow edX on X (formerly Twitter)',\n description:\n 'This is screenreader text for the edX X (formerly Twitter) media link in the footer.',\n },\n 'footer.socialLinks.srText.youtube': {\n id: 'footer.socialLinks.srText.youtube',\n defaultMessage: 'Subscribe to the edX YouTube channel',\n description:\n 'This is screenreader text for the edX YouTube social media link in the footer.',\n },\n 'footer.socialLinks.srText.linkedin': {\n id: 'footer.socialLinks.srText.linkedin',\n defaultMessage: 'Follow edX on LinkedIn',\n description:\n 'This is screenreader text for the edX LinkedIn social media link in the footer.',\n },\n 'footer.socialLinks.srText.instagram': {\n id: 'footer.socialLinks.srText.instagram',\n defaultMessage: 'Follow edX on Instagram',\n description:\n 'This is screenreader text for the edX Instagram social media link in the footer.',\n },\n 'footer.socialLinks.srText.reddit': {\n id: 'footer.socialLinks.srText.reddit',\n defaultMessage: 'Subscribe to the edX subreddit',\n description:\n 'This is screenreader text for the edX reddit social media link in the footer.',\n },\n 'footer.languageForm.select.label': {\n id: 'footer.languageForm.select.label',\n defaultMessage: 'Choose Language',\n description:\n 'The label for the language select part of the language selection form.',\n },\n 'footer.languageForm.submit.label': {\n id: 'footer.languageForm.submit.label',\n defaultMessage: 'Apply',\n description: 'The label for button to submit the language selection form.',\n },\n 'footer.edxLinks.about': {\n id: 'footer.edxLinks.about',\n defaultMessage: 'About',\n description: 'The label for the link to the about edX page.',\n },\n 'footer.edxLinks.business': {\n id: 'footer.edxLinks.business',\n defaultMessage: 'edX for Business',\n description: 'The label for the link to the edX for business page.',\n },\n 'footer.edxLinks.affiliates': {\n id: 'footer.edxLinks.affiliates',\n defaultMessage: 'Affiliates',\n description: 'The label for the link to the edX affiliates page.',\n },\n 'footer.edxLinks.openEdx': {\n id: 'footer.edxLinks.openEdx',\n defaultMessage: 'Open edX',\n description: 'The label for the link to the open edX site.',\n },\n 'footer.edxLinks.careers': {\n id: 'footer.edxLinks.careers',\n defaultMessage: 'Careers',\n description: 'The label for the link to the edX Careers page.',\n },\n 'footer.edxLinks.news': {\n id: 'footer.edxLinks.news',\n defaultMessage: 'News',\n description: 'The label for the link to the edX news page.',\n },\n 'footer.legalLinks.heading': {\n id: 'footer.legalLinks.heading',\n defaultMessage: 'Legal',\n description: 'Heading for the legal links section of the footer.',\n },\n 'footer.legalLinks.termsOfService': {\n id: 'footer.legalLinks.termsOfService',\n defaultMessage: 'Terms of Service & Honor Code',\n description: 'The label for the link to the edX terms of service page.',\n },\n 'footer.legalLinks.privacyPolicy': {\n id: 'footer.legalLinks.privacyPolicy',\n defaultMessage: 'Privacy Policy',\n description: 'The label for the link to the edX privacy policy page.',\n },\n 'footer.legalLinks.a11yPolicy': {\n id: 'footer.legalLinks.a11yPolicy',\n defaultMessage: 'Accessibility Policy',\n description: 'The label for the link to the edX accessibility policy page.',\n },\n 'footer.legalLinks.trademarkPolicy': {\n id: 'footer.legalLinks.trademarkPolicy',\n defaultMessage: 'Trademark Policy',\n description: 'The label for the link to the edX trademark policy page.',\n },\n 'footer.legalLinks.sitemap': {\n id: 'footer.legalLinks.sitemap',\n defaultMessage: 'Sitemap',\n description: 'The label for the link to the edX sitemap page.',\n },\n 'footer.legalLinks.doNotSellData': {\n id: 'footer.legalLinks.doNotSellData',\n defaultMessage: 'Your Privacy Choices',\n description:\n 'link button that leads to the One Trust modal and sets the edx_do_not_sell cookie.',\n },\n 'footer.legalLinks.modernSlavery': {\n id: 'footer.legalLinks.modernSlavery',\n defaultMessage: 'Modern Slavery Statement',\n description: 'link button that leads to the edX \"Cookie Policy\" page',\n },\n 'footer.connectLinks.heading': {\n id: 'footer.connectLinks.heading',\n defaultMessage: 'Connect',\n description: 'Heading for the connect links section of the footer.',\n },\n 'footer.connectLinks.blog': {\n id: 'footer.connectLinks.blog',\n defaultMessage: 'Resources',\n description: 'The label for the link to edX Idea Hub page.',\n },\n 'footer.connectLinks.contact': {\n id: 'footer.connectLinks.contact',\n defaultMessage: 'Contact Us',\n description: 'The label for the link to the contact edX page.',\n },\n 'footer.connectLinks.help': {\n id: 'footer.connectLinks.help',\n defaultMessage: 'Help Center',\n description: 'The label for the link to the edX help center.',\n },\n 'footer.connectLinks.security': {\n id: 'footer.connectLinks.security',\n defaultMessage: 'Security',\n description: 'The label for the link to the security disclosures page.',\n },\n 'footer.connectLinks.mediaKit': {\n id: 'footer.connectLinks.mediaKit',\n defaultMessage: 'Media Kit',\n description: 'The label for the link to the edX media kit page.',\n },\n 'footer.mobileApp.apple': {\n id: 'footer.mobileApp.apple',\n defaultMessage: 'Download the edX mobile app from the Apple App Store',\n description:\n 'The label for the link to download the apple version of the edX app.',\n },\n 'footer.mobileApp.google': {\n id: 'footer.mobileApp.google',\n defaultMessage: 'Download the edX mobile app from Google Play',\n description:\n 'The label for the link to download the google version of the edX app.',\n },\n 'footer.logo.altText': {\n id: 'footer.logo.altText',\n defaultMessage: 'edX Logo',\n description: 'alt text for the footer logo.',\n },\n 'footer.logo.ariaLabel': {\n id: 'footer.logo.ariaLabel',\n defaultMessage: 'edX Home',\n description: 'aria-label for the footer logo.',\n },\n 'footer.ariaLabel': {\n id: 'footer.ariaLabel',\n defaultMessage: 'Page Footer',\n description: 'aria-label for the footer component',\n },\n 'footer.copyRight': {\n id: 'footer.copyRight',\n defaultMessage: '© 2026 edX LLC. All rights reserved.',\n description: 'Footer copy right message',\n },\n 'footer.copyRightCn': {\n id: 'footer.copyRightCn',\n defaultMessage: '| 深圳市恒宇博科技有限公司',\n description: 'Footer copy right message CN',\n },\n 'footer.legalLinks.cookiePolicy': {\n id: 'footer.legalLinks.cookiePolicy',\n defaultMessage: 'Cookie Policy',\n description: 'link button that leads to the edX \"Cookie Policy\" page',\n },\n 'footer.legalLinks.advisory': {\n id: 'footer.legalLinks.advisory',\n defaultMessage: '2U Advisory Council',\n description: 'link button that leads to the edX \"2U Advisory Council\" page',\n },\n});\n\nexport default footerMessages;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edx/frontend-app-subscription-learner-dashboard",
3
- "version": "1.36.0",
3
+ "version": "1.37.0",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",