@anas_hameed/edly-saas-widget 0.1.3 → 0.1.5

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.
@@ -39,14 +39,12 @@ const FooterWidget = () => {
39
39
  }, [footerData]);
40
40
  (0, _react.useEffect)(() => {
41
41
  const fetchData = async () => {
42
- // if (!config?.DISCOVERY_URL) {
43
- // console.error("No url found for discovery", config);
44
- // return;
45
- // }
42
+ if (!config?.DISCOVERY_URL) {
43
+ console.error("No url found for discovery", config);
44
+ return;
45
+ }
46
46
  try {
47
- const response = await fetch(
48
- // `https://venus.discover.multitenantsdev.edly.io/wp-json/edly-wp-routes/footer`,
49
- `${config.DISCOVERY_URL}/wp-json/edly-wp-routes/footer`, {
47
+ const response = await fetch(`${config.DISCOVERY_URL}/wp-json/edly-wp-routes/footer`, {
50
48
  credentials: "include"
51
49
  });
52
50
  if (!response.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_frontendPlatform","require","_react","_dompurify","_interopRequireDefault","_jsxRuntime","e","__esModule","default","FooterWidget","footerData","setFooterData","useState","config","getConfig","useEffect","scrollBtn","document","getElementById","scrollToTop","window","scrollTo","top","behavior","toggleVisibility","scrollY","classList","add","remove","addEventListener","removeEventListener","fetchData","response","fetch","DISCOVERY_URL","credentials","ok","Error","status","jsonData","json","cleanHtml","DOMPurify","sanitize","ADD_ATTR","error","console","jsx","className","dangerouslySetInnerHTML","__html","_default","exports"],"sources":["../../src/FooterWidget/index.jsx"],"sourcesContent":["import { getConfig } from \"@edx/frontend-platform\";\nimport { useEffect, useState } from \"react\";\nimport DOMPurify from \"dompurify\";\nimport \"./main.scss\";\n\nconst FooterWidget = () => {\n const [footerData, setFooterData] = useState(\"\");\n const config = getConfig();\n\n useEffect(() => {\n const scrollBtn = document.getElementById(\"scrollToTop\");\n if (scrollBtn) {\n const scrollToTop = () => {\n window.scrollTo({ top: 0, behavior: \"smooth\" });\n };\n\n const toggleVisibility = () => {\n if (window.scrollY > 300) {\n scrollBtn.classList.add(\"show-btn\"); // We will style this class in SCSS\n } else {\n scrollBtn.classList.remove(\"show-btn\");\n }\n };\n\n scrollBtn.addEventListener(\"click\", scrollToTop);\n window.addEventListener(\"scroll\", toggleVisibility);\n\n return () => {\n scrollBtn.removeEventListener(\"click\", scrollToTop);\n window.removeEventListener(\"scroll\", toggleVisibility);\n };\n }\n }, [footerData]);\n\n useEffect(() => {\n const fetchData = async () => {\n // if (!config?.DISCOVERY_URL) {\n // console.error(\"No url found for discovery\", config);\n // return;\n // }\n try {\n const response = await fetch(\n // `https://venus.discover.multitenantsdev.edly.io/wp-json/edly-wp-routes/footer`,\n `${config.DISCOVERY_URL}/wp-json/edly-wp-routes/footer`,\n { credentials: \"include\" }\n );\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const jsonData = await response.json();\n const cleanHtml = DOMPurify.sanitize(jsonData, {\n ADD_ATTR: [\"target\", \"class\"],\n });\n setFooterData(cleanHtml);\n } catch (error) {\n console.error(error);\n }\n };\n\n fetchData();\n }, []);\n\n return (\n <footer\n className=\"site-header\"\n dangerouslySetInnerHTML={{ __html: footerData }}\n />\n );\n};\n\nexport default FooterWidget;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AACAA,OAAA;AAAqB,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAG,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAErB,MAAMG,YAAY,GAAGA,CAAA,KAAM;EACzB,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;EAChD,MAAMC,MAAM,GAAG,IAAAC,2BAAS,EAAC,CAAC;EAE1B,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,SAAS,GAAGC,QAAQ,CAACC,cAAc,CAAC,aAAa,CAAC;IACxD,IAAIF,SAAS,EAAE;MACb,MAAMG,WAAW,GAAGA,CAAA,KAAM;QACxBC,MAAM,CAACC,QAAQ,CAAC;UAAEC,GAAG,EAAE,CAAC;UAAEC,QAAQ,EAAE;QAAS,CAAC,CAAC;MACjD,CAAC;MAED,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;QAC7B,IAAIJ,MAAM,CAACK,OAAO,GAAG,GAAG,EAAE;UACxBT,SAAS,CAACU,SAAS,CAACC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACvC,CAAC,MAAM;UACLX,SAAS,CAACU,SAAS,CAACE,MAAM,CAAC,UAAU,CAAC;QACxC;MACF,CAAC;MAEDZ,SAAS,CAACa,gBAAgB,CAAC,OAAO,EAAEV,WAAW,CAAC;MAChDC,MAAM,CAACS,gBAAgB,CAAC,QAAQ,EAAEL,gBAAgB,CAAC;MAEnD,OAAO,MAAM;QACXR,SAAS,CAACc,mBAAmB,CAAC,OAAO,EAAEX,WAAW,CAAC;QACnDC,MAAM,CAACU,mBAAmB,CAAC,QAAQ,EAAEN,gBAAgB,CAAC;MACxD,CAAC;IACH;EACF,CAAC,EAAE,CAACd,UAAU,CAAC,CAAC;EAEhB,IAAAK,gBAAS,EAAC,MAAM;IACd,MAAMgB,SAAS,GAAG,MAAAA,CAAA,KAAY;MAC5B;MACA;MACA;MACA;MACA,IAAI;QACF,MAAMC,QAAQ,GAAG,MAAMC,KAAK;QAC1B;QACA,GAAGpB,MAAM,CAACqB,aAAa,gCAAgC,EACvD;UAAEC,WAAW,EAAE;QAAU,CAC3B,CAAC;QACD,IAAI,CAACH,QAAQ,CAACI,EAAE,EAAE;UAChB,MAAM,IAAIC,KAAK,CAAC,uBAAuBL,QAAQ,CAACM,MAAM,EAAE,CAAC;QAC3D;QAEA,MAAMC,QAAQ,GAAG,MAAMP,QAAQ,CAACQ,IAAI,CAAC,CAAC;QACtC,MAAMC,SAAS,GAAGC,kBAAS,CAACC,QAAQ,CAACJ,QAAQ,EAAE;UAC7CK,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO;QAC9B,CAAC,CAAC;QACFjC,aAAa,CAAC8B,SAAS,CAAC;MAC1B,CAAC,CAAC,OAAOI,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;MACtB;IACF,CAAC;IAEDd,SAAS,CAAC,CAAC;EACb,CAAC,EAAE,EAAE,CAAC;EAEN,oBACE,IAAA1B,WAAA,CAAA0C,GAAA;IACEC,SAAS,EAAC,aAAa;IACvBC,uBAAuB,EAAE;MAAEC,MAAM,EAAExC;IAAW;EAAE,CACjD,CAAC;AAEN,CAAC;AAAC,IAAAyC,QAAA,GAAAC,OAAA,CAAA5C,OAAA,GAEaC,YAAY","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_frontendPlatform","require","_react","_dompurify","_interopRequireDefault","_jsxRuntime","e","__esModule","default","FooterWidget","footerData","setFooterData","useState","config","getConfig","useEffect","scrollBtn","document","getElementById","scrollToTop","window","scrollTo","top","behavior","toggleVisibility","scrollY","classList","add","remove","addEventListener","removeEventListener","fetchData","DISCOVERY_URL","console","error","response","fetch","credentials","ok","Error","status","jsonData","json","cleanHtml","DOMPurify","sanitize","ADD_ATTR","jsx","className","dangerouslySetInnerHTML","__html","_default","exports"],"sources":["../../src/FooterWidget/index.jsx"],"sourcesContent":["import { getConfig } from \"@edx/frontend-platform\";\nimport { useEffect, useState } from \"react\";\nimport DOMPurify from \"dompurify\";\nimport \"./main.scss\";\n\nconst FooterWidget = () => {\n const [footerData, setFooterData] = useState(\"\");\n const config = getConfig();\n\n useEffect(() => {\n const scrollBtn = document.getElementById(\"scrollToTop\");\n if (scrollBtn) {\n const scrollToTop = () => {\n window.scrollTo({ top: 0, behavior: \"smooth\" });\n };\n\n const toggleVisibility = () => {\n if (window.scrollY > 300) {\n scrollBtn.classList.add(\"show-btn\"); // We will style this class in SCSS\n } else {\n scrollBtn.classList.remove(\"show-btn\");\n }\n };\n\n scrollBtn.addEventListener(\"click\", scrollToTop);\n window.addEventListener(\"scroll\", toggleVisibility);\n\n return () => {\n scrollBtn.removeEventListener(\"click\", scrollToTop);\n window.removeEventListener(\"scroll\", toggleVisibility);\n };\n }\n }, [footerData]);\n\n useEffect(() => {\n const fetchData = async () => {\n if (!config?.DISCOVERY_URL) {\n console.error(\"No url found for discovery\", config);\n return;\n }\n try {\n const response = await fetch(\n `${config.DISCOVERY_URL}/wp-json/edly-wp-routes/footer`,\n { credentials: \"include\" }\n );\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const jsonData = await response.json();\n const cleanHtml = DOMPurify.sanitize(jsonData, {\n ADD_ATTR: [\"target\", \"class\"],\n });\n setFooterData(cleanHtml);\n } catch (error) {\n console.error(error);\n }\n };\n\n fetchData();\n }, []);\n\n return (\n <footer\n className=\"site-header\"\n dangerouslySetInnerHTML={{ __html: footerData }}\n />\n );\n};\n\nexport default FooterWidget;\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AACAA,OAAA;AAAqB,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAG,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAErB,MAAMG,YAAY,GAAGA,CAAA,KAAM;EACzB,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;EAChD,MAAMC,MAAM,GAAG,IAAAC,2BAAS,EAAC,CAAC;EAE1B,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,SAAS,GAAGC,QAAQ,CAACC,cAAc,CAAC,aAAa,CAAC;IACxD,IAAIF,SAAS,EAAE;MACb,MAAMG,WAAW,GAAGA,CAAA,KAAM;QACxBC,MAAM,CAACC,QAAQ,CAAC;UAAEC,GAAG,EAAE,CAAC;UAAEC,QAAQ,EAAE;QAAS,CAAC,CAAC;MACjD,CAAC;MAED,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;QAC7B,IAAIJ,MAAM,CAACK,OAAO,GAAG,GAAG,EAAE;UACxBT,SAAS,CAACU,SAAS,CAACC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACvC,CAAC,MAAM;UACLX,SAAS,CAACU,SAAS,CAACE,MAAM,CAAC,UAAU,CAAC;QACxC;MACF,CAAC;MAEDZ,SAAS,CAACa,gBAAgB,CAAC,OAAO,EAAEV,WAAW,CAAC;MAChDC,MAAM,CAACS,gBAAgB,CAAC,QAAQ,EAAEL,gBAAgB,CAAC;MAEnD,OAAO,MAAM;QACXR,SAAS,CAACc,mBAAmB,CAAC,OAAO,EAAEX,WAAW,CAAC;QACnDC,MAAM,CAACU,mBAAmB,CAAC,QAAQ,EAAEN,gBAAgB,CAAC;MACxD,CAAC;IACH;EACF,CAAC,EAAE,CAACd,UAAU,CAAC,CAAC;EAEhB,IAAAK,gBAAS,EAAC,MAAM;IACd,MAAMgB,SAAS,GAAG,MAAAA,CAAA,KAAY;MAC5B,IAAI,CAAClB,MAAM,EAAEmB,aAAa,EAAE;QAC1BC,OAAO,CAACC,KAAK,CAAC,4BAA4B,EAAErB,MAAM,CAAC;QACnD;MACF;MACA,IAAI;QACF,MAAMsB,QAAQ,GAAG,MAAMC,KAAK,CAC1B,GAAGvB,MAAM,CAACmB,aAAa,gCAAgC,EACvD;UAAEK,WAAW,EAAE;QAAU,CAC3B,CAAC;QACD,IAAI,CAACF,QAAQ,CAACG,EAAE,EAAE;UAChB,MAAM,IAAIC,KAAK,CAAC,uBAAuBJ,QAAQ,CAACK,MAAM,EAAE,CAAC;QAC3D;QAEA,MAAMC,QAAQ,GAAG,MAAMN,QAAQ,CAACO,IAAI,CAAC,CAAC;QACtC,MAAMC,SAAS,GAAGC,kBAAS,CAACC,QAAQ,CAACJ,QAAQ,EAAE;UAC7CK,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO;QAC9B,CAAC,CAAC;QACFnC,aAAa,CAACgC,SAAS,CAAC;MAC1B,CAAC,CAAC,OAAOT,KAAK,EAAE;QACdD,OAAO,CAACC,KAAK,CAACA,KAAK,CAAC;MACtB;IACF,CAAC;IAEDH,SAAS,CAAC,CAAC;EACb,CAAC,EAAE,EAAE,CAAC;EAEN,oBACE,IAAA1B,WAAA,CAAA0C,GAAA;IACEC,SAAS,EAAC,aAAa;IACvBC,uBAAuB,EAAE;MAAEC,MAAM,EAAExC;IAAW;EAAE,CACjD,CAAC;AAEN,CAAC;AAAC,IAAAyC,QAAA,GAAAC,OAAA,CAAA5C,OAAA,GAEaC,YAAY","ignoreList":[]}
@@ -0,0 +1,94 @@
1
+ $primary-color: black;
2
+ $text-color: #fff;
3
+ $background-color: #ffffff;
4
+ $submenu-bg: #ffffff;
5
+ $submenu-border: #d1d5db;
6
+ $submenu-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
7
+ $hover-bg: lighten($primary-color, 45%);
8
+ $transition-speed: 0.25s;
9
+ $font-family: 'Inter', sans-serif;
10
+ $mobile-breakpoint: 1230px;
11
+ $icon-size: 0.95em;
12
+ $font-size: 1em;
13
+
14
+ .site-footer {
15
+ background-color: $primary-color;
16
+ padding: 40px 15px;
17
+ color:$text-color ;
18
+ p {
19
+ font-size: $font-size;
20
+ }
21
+ h3, h3 {
22
+ margin-bottom: 20px;
23
+ }
24
+ }
25
+
26
+ .widget {
27
+ &.widget_block {
28
+ &.widget_text {
29
+ font-size:$font-size ;
30
+ }
31
+ }
32
+ }
33
+
34
+ .wp-block-image {
35
+ img {
36
+ max-width: 80px;
37
+ }
38
+ }
39
+
40
+ #menu-footer-menu {
41
+ padding: 0;
42
+ margin: 0;
43
+ list-style: none;
44
+ li {
45
+ margin-bottom: 5px;
46
+ list-style: none;
47
+ a {
48
+ text-decoration: none;
49
+ color: $text-color;
50
+ }
51
+ }
52
+ }
53
+
54
+ .social-link {
55
+ padding: 0;
56
+ margin: 0;
57
+ list-style: none;
58
+ display: flex;
59
+ li {
60
+ margin: 0 10px 10px 0;
61
+ }
62
+ }
63
+
64
+ #scrollToTop {
65
+ position: fixed;
66
+ bottom: 40px;
67
+ right: 20px;
68
+ background-color: $submenu-bg;
69
+ color: $primary-color;
70
+ border: 1px solid $primary-color;
71
+ border-radius: 6px;
72
+ svg {
73
+ width: 40px;
74
+ height: 40px;
75
+ }
76
+ }
77
+
78
+ .copyright-area {
79
+ padding-top: 20px;
80
+ p {
81
+ margin: 0;
82
+ font-size: 12px;
83
+ }
84
+ }
85
+
86
+ /* Mobile Menu */
87
+ @media (max-width: $mobile-breakpoint) {
88
+ #menu-footer-menu {
89
+ margin-bottom: 20px;
90
+ }
91
+ .site-footer {
92
+ padding: 30px 0;
93
+ }
94
+ }
@@ -34,9 +34,7 @@ const HeaderWidget = () => {
34
34
  return;
35
35
  }
36
36
  try {
37
- const response = await fetch(
38
- // "https://venus.discover.multitenantsdev.edly.io/wp-json/edly-wp-routes/nav-menu",
39
- `${config.DISCOVERY_URL}/wp-json/edly-wp-routes/nav-menu`, {
37
+ const response = await fetch(`${config.DISCOVERY_URL}/wp-json/edly-wp-routes/nav-menu`, {
40
38
  credentials: "include"
41
39
  });
42
40
  if (!response.ok) {
@@ -48,9 +46,6 @@ const HeaderWidget = () => {
48
46
  ADD_ATTR: ["target", "class"]
49
47
  });
50
48
  setHeaderData(cleanHtml);
51
- // setHeaderData(
52
- // `<div class="primary-menu-container"><ul id="menu-primary-menu" class="menu"><li id="menu-item-40" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-40"><a href="https://venus.discover.multitenantsdev.edly.io/">Home</a></li>\n<li id="menu-item-41" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-41"><a href="https://venus.discover.multitenantsdev.edly.io/courses/">Courses</a></li>\n<li id="menu-item-331" class="menu-item menu-item-type-custom menu-item-object-custom edx-link custom_link_filter menu-item-object-custom_link_filter menu-item-331"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/">Courses Filters</a>\n<ul class="sub-menu">\n\t<li id="menu-item-submenu-item-course_categories" class="submenu-item-class menu-item-submenu-item-course_categories"><a href="#">Course Category</a>\n\t<ul class="sub-menu">\n\t\t<li id="menu-item-submenu-item-course_categories-44" class="submenu-item-class menu-item-submenu-item-course_categories-44"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_categories=design">Design</a></li>\n\t\t<li id="menu-item-submenu-item-course_categories-27" class="submenu-item-class menu-item-submenu-item-course_categories-27"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_categories=edly">Edly</a></li>\n\t\t<li id="menu-item-submenu-item-course_categories-42" class="submenu-item-class menu-item-submenu-item-course_categories-42"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_categories=engineering">Engineering</a></li>\n\t\t<li id="menu-item-submenu-item-course_categories-41" class="submenu-item-class menu-item-submenu-item-course_categories-41"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_categories=marketing">Marketing</a></li>\n\t\t<li id="menu-item-submenu-item-course_categories-40" class="submenu-item-class menu-item-submenu-item-course_categories-40"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_categories=qa">QA</a></li>\n\t\t<li id="menu-item-submenu-item-course_categories-43" class="submenu-item-class menu-item-submenu-item-course_categories-43"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_categories=sales">Sales</a></li>\n\t\t<li id="menu-item-submenu-item-course_categories-26" class="submenu-item-class menu-item-submenu-item-course_categories-26"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_categories=teak">Teak</a></li>\n\t</ul>\n</li>\n\t<li id="menu-item-submenu-item-course_difficulty" class="submenu-item-class menu-item-submenu-item-course_difficulty"><a href="#">Difficulty</a>\n\t<ul class="sub-menu">\n\t\t<li id="menu-item-submenu-item-course_difficulty-32" class="submenu-item-class menu-item-submenu-item-course_difficulty-32"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_difficulty=easy">Easy</a></li>\n\t\t<li id="menu-item-submenu-item-course_difficulty-34" class="submenu-item-class menu-item-submenu-item-course_difficulty-34"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_difficulty=hard">Hard</a></li>\n\t\t<li id="menu-item-submenu-item-course_difficulty-33" class="submenu-item-class menu-item-submenu-item-course_difficulty-33"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_difficulty=medium">Medium</a></li>\n\t</ul>\n</li>\n\t<li id="menu-item-submenu-item-course_job_role" class="submenu-item-class menu-item-submenu-item-course_job_role"><a href="#">Job Role</a>\n\t<ul class="sub-menu">\n\t\t<li id="menu-item-submenu-item-course_job_role-31" class="submenu-item-class menu-item-submenu-item-course_job_role-31"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_job_role=dev">Dev</a></li>\n\t\t<li id="menu-item-submenu-item-course_job_role-30" class="submenu-item-class menu-item-submenu-item-course_job_role-30"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_job_role=qa">QA</a></li>\n\t</ul>\n</li>\n\t<li id="menu-item-submenu-item-course_industry_certification" class="submenu-item-class menu-item-submenu-item-course_industry_certification"><a href="#">Industry Certification</a>\n\t<ul class="sub-menu">\n\t\t<li id="menu-item-submenu-item-course_industry_certification-37" class="submenu-item-class menu-item-submenu-item-course_industry_certification-37"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_industry_certification=aws">AWS</a></li>\n\t\t<li id="menu-item-submenu-item-course_industry_certification-36" class="submenu-item-class menu-item-submenu-item-course_industry_certification-36"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_industry_certification=istqb">ISTQB</a></li>\n\t</ul>\n</li>\n\t<li id="menu-item-submenu-item-course_format" class="submenu-item-class menu-item-submenu-item-course_format"><a href="#">Format</a>\n\t<ul class="sub-menu">\n\t\t<li id="menu-item-submenu-item-course_format-35" class="submenu-item-class menu-item-submenu-item-course_format-35"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_format=test">Test</a></li>\n\t</ul>\n</li>\n\t<li id="menu-item-submenu-item-course_owner" class="submenu-item-class menu-item-submenu-item-course_owner"><a href="#">Owner</a>\n\t<ul class="sub-menu">\n\t\t<li id="menu-item-submenu-item-course_owner-38" class="submenu-item-class menu-item-submenu-item-course_owner-38"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_owner=abdullah">Abdullah</a></li>\n\t\t<li id="menu-item-submenu-item-course_owner-39" class="submenu-item-class menu-item-submenu-item-course_owner-39"><a href="https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_owner=waleed">Waleed</a></li>\n\t</ul>\n</li>\n</ul>\n</li>\n<li id="menu-item-241" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-241"><a href="https://venus.discover.multitenantsdev.edly.io/programs/">Program</a></li>\n<li id="menu-item-42" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-42"><a href="https://venus.discover.multitenantsdev.edly.io/contact/">Contact</a></li>\n<li id="menu-item-295" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-295"><a href="https://venus.discover.multitenantsdev.edly.io/instructors/">Instructors</a></li>\n<li id="menu-item-43" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-43"><a href="https://venus.discover.multitenantsdev.edly.io/blog/">Blog</a></li>\n<li id="menu-item-44" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-44"><a href="https://venus.discover.multitenantsdev.edly.io/activities/">Activities</a></li>\n<li id="menu-item-45" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-45"><a href="https://venus.discover.multitenantsdev.edly.io/academics/">Academics</a></li>\n<li id="menu-item-46" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-46"><a href="https://venus.discover.multitenantsdev.edly.io/about-us/">About US</a></li>\n<li id="menu-item-53" class="edx-link menu_openedx menu-item menu-item-type-custom menu-item-object-menu_openedx menu-item-has-children menu-item-53"><a class='user-profile-wrap' href='https://venus.multitenantsdev.edly.io#'><img src='https://venus.multitenantsdev.edly.io/media/profile-images/a67985db4fb19227764c2b560e28b0b9_50.jpg?v=1757068807' /><span class='user-title'>ans_hameed</span><span class='user-full-name'>Anas hameed</span></a>\n<ul class="sub-menu">\n\t<li id="menu-item-54" class="edx-link dashboard_openedx menu-item menu-item-type-custom menu-item-object-dashboard_openedx menu-item-54"><a href="https://venus.multitenantsdev.edly.io/dashboard">Dashboard</a></li>\n\t<li id="menu-item-55" class="edx-link profile_openedx menu-item menu-item-type-custom menu-item-object-profile_openedx menu-item-55"><a href="https://venus.multitenantsdev.edly.io/u/ans_hameed">Profile</a></li>\n\t<li id="menu-item-56" class="edx-link account_openedx menu-item menu-item-type-custom menu-item-object-account_openedx menu-item-56"><a href="https://venus.multitenantsdev.edly.io/account/settings">Account</a></li>\n\t<li id="menu-item-57" class="edx-link signout_openedx menu-item menu-item-type-custom menu-item-object-signout_openedx menu-item-57"><a href="https://venus.discover.multitenantsdev.edly.io/logout">Sign Out</a></li>\n</ul>\n</li>\n</ul></div>`
53
- // );
54
49
  } else {
55
50
  console.error("Data object is not json");
56
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_frontendPlatform","require","_react","_dompurify","_interopRequireDefault","_jsxRuntime","e","__esModule","default","HeaderWidget","headerData","setHeaderData","useState","isOpen","setIsOpen","WIDTH","isMobile","setIsMobile","window","innerWidth","isLoading","setIsLoading","config","getConfig","useEffect","handleResize","addEventListener","removeEventListener","fetchData","DISCOVERY_URL","console","error","response","fetch","credentials","ok","Error","status","jsonData","json","cleanHtml","DOMPurify","sanitize","primary","ADD_ATTR","toggleMenu","jsxs","className","children","jsx","type","onClick","style","background","border","cursor","fontSize","href","width","height","src","LOGO_URL","alt","decoding","dangerouslySetInnerHTML","__html","_default","exports"],"sources":["../../src/HeaderWidget/index.jsx"],"sourcesContent":["import { getConfig } from \"@edx/frontend-platform\";\nimport { useEffect, useState } from \"react\";\nimport DOMPurify from \"dompurify\";\nimport \"./main.scss\";\n\nconst HeaderWidget = () => {\n const [headerData, setHeaderData] = useState(\"\");\n const [isOpen, setIsOpen] = useState(false);\n const WIDTH = 1230;\n const [isMobile, setIsMobile] = useState(window.innerWidth < WIDTH);\n const [isLoading, setIsLoading] = useState(true);\n const config = getConfig();\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth < WIDTH);\n if (window.innerWidth >= WIDTH) {\n setIsOpen(false);\n }\n };\n\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n useEffect(() => {\n const fetchData = async () => {\n if (!config?.DISCOVERY_URL) {\n console.error(\"No url found for discovery\", config);\n return;\n }\n try {\n const response = await fetch(\n // \"https://venus.discover.multitenantsdev.edly.io/wp-json/edly-wp-routes/nav-menu\",\n `${config.DISCOVERY_URL}/wp-json/edly-wp-routes/nav-menu`,\n { credentials: \"include\" }\n );\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const jsonData = await response.json();\n\n if (typeof jsonData === \"object\") {\n const cleanHtml = DOMPurify.sanitize(jsonData.primary, {\n ADD_ATTR: [\"target\", \"class\"],\n });\n setHeaderData(cleanHtml);\n // setHeaderData(\n // `<div class=\"primary-menu-container\"><ul id=\"menu-primary-menu\" class=\"menu\"><li id=\"menu-item-40\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-40\"><a href=\"https://venus.discover.multitenantsdev.edly.io/\">Home</a></li>\\n<li id=\"menu-item-41\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-41\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses/\">Courses</a></li>\\n<li id=\"menu-item-331\" class=\"menu-item menu-item-type-custom menu-item-object-custom edx-link custom_link_filter menu-item-object-custom_link_filter menu-item-331\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/\">Courses Filters</a>\\n<ul class=\"sub-menu\">\\n\\t<li id=\"menu-item-submenu-item-course_categories\" class=\"submenu-item-class menu-item-submenu-item-course_categories\"><a href=\"#\">Course Category</a>\\n\\t<ul class=\"sub-menu\">\\n\\t\\t<li id=\"menu-item-submenu-item-course_categories-44\" class=\"submenu-item-class menu-item-submenu-item-course_categories-44\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_categories=design\">Design</a></li>\\n\\t\\t<li id=\"menu-item-submenu-item-course_categories-27\" class=\"submenu-item-class menu-item-submenu-item-course_categories-27\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_categories=edly\">Edly</a></li>\\n\\t\\t<li id=\"menu-item-submenu-item-course_categories-42\" class=\"submenu-item-class menu-item-submenu-item-course_categories-42\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_categories=engineering\">Engineering</a></li>\\n\\t\\t<li id=\"menu-item-submenu-item-course_categories-41\" class=\"submenu-item-class menu-item-submenu-item-course_categories-41\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_categories=marketing\">Marketing</a></li>\\n\\t\\t<li id=\"menu-item-submenu-item-course_categories-40\" class=\"submenu-item-class menu-item-submenu-item-course_categories-40\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_categories=qa\">QA</a></li>\\n\\t\\t<li id=\"menu-item-submenu-item-course_categories-43\" class=\"submenu-item-class menu-item-submenu-item-course_categories-43\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_categories=sales\">Sales</a></li>\\n\\t\\t<li id=\"menu-item-submenu-item-course_categories-26\" class=\"submenu-item-class menu-item-submenu-item-course_categories-26\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_categories=teak\">Teak</a></li>\\n\\t</ul>\\n</li>\\n\\t<li id=\"menu-item-submenu-item-course_difficulty\" class=\"submenu-item-class menu-item-submenu-item-course_difficulty\"><a href=\"#\">Difficulty</a>\\n\\t<ul class=\"sub-menu\">\\n\\t\\t<li id=\"menu-item-submenu-item-course_difficulty-32\" class=\"submenu-item-class menu-item-submenu-item-course_difficulty-32\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_difficulty=easy\">Easy</a></li>\\n\\t\\t<li id=\"menu-item-submenu-item-course_difficulty-34\" class=\"submenu-item-class menu-item-submenu-item-course_difficulty-34\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_difficulty=hard\">Hard</a></li>\\n\\t\\t<li id=\"menu-item-submenu-item-course_difficulty-33\" class=\"submenu-item-class menu-item-submenu-item-course_difficulty-33\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_difficulty=medium\">Medium</a></li>\\n\\t</ul>\\n</li>\\n\\t<li id=\"menu-item-submenu-item-course_job_role\" class=\"submenu-item-class menu-item-submenu-item-course_job_role\"><a href=\"#\">Job Role</a>\\n\\t<ul class=\"sub-menu\">\\n\\t\\t<li id=\"menu-item-submenu-item-course_job_role-31\" class=\"submenu-item-class menu-item-submenu-item-course_job_role-31\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_job_role=dev\">Dev</a></li>\\n\\t\\t<li id=\"menu-item-submenu-item-course_job_role-30\" class=\"submenu-item-class menu-item-submenu-item-course_job_role-30\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_job_role=qa\">QA</a></li>\\n\\t</ul>\\n</li>\\n\\t<li id=\"menu-item-submenu-item-course_industry_certification\" class=\"submenu-item-class menu-item-submenu-item-course_industry_certification\"><a href=\"#\">Industry Certification</a>\\n\\t<ul class=\"sub-menu\">\\n\\t\\t<li id=\"menu-item-submenu-item-course_industry_certification-37\" class=\"submenu-item-class menu-item-submenu-item-course_industry_certification-37\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_industry_certification=aws\">AWS</a></li>\\n\\t\\t<li id=\"menu-item-submenu-item-course_industry_certification-36\" class=\"submenu-item-class menu-item-submenu-item-course_industry_certification-36\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_industry_certification=istqb\">ISTQB</a></li>\\n\\t</ul>\\n</li>\\n\\t<li id=\"menu-item-submenu-item-course_format\" class=\"submenu-item-class menu-item-submenu-item-course_format\"><a href=\"#\">Format</a>\\n\\t<ul class=\"sub-menu\">\\n\\t\\t<li id=\"menu-item-submenu-item-course_format-35\" class=\"submenu-item-class menu-item-submenu-item-course_format-35\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_format=test\">Test</a></li>\\n\\t</ul>\\n</li>\\n\\t<li id=\"menu-item-submenu-item-course_owner\" class=\"submenu-item-class menu-item-submenu-item-course_owner\"><a href=\"#\">Owner</a>\\n\\t<ul class=\"sub-menu\">\\n\\t\\t<li id=\"menu-item-submenu-item-course_owner-38\" class=\"submenu-item-class menu-item-submenu-item-course_owner-38\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_owner=abdullah\">Abdullah</a></li>\\n\\t\\t<li id=\"menu-item-submenu-item-course_owner-39\" class=\"submenu-item-class menu-item-submenu-item-course_owner-39\"><a href=\"https://venus.discover.multitenantsdev.edly.io/courses-with-filter/?filter_course_owner=waleed\">Waleed</a></li>\\n\\t</ul>\\n</li>\\n</ul>\\n</li>\\n<li id=\"menu-item-241\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-241\"><a href=\"https://venus.discover.multitenantsdev.edly.io/programs/\">Program</a></li>\\n<li id=\"menu-item-42\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-42\"><a href=\"https://venus.discover.multitenantsdev.edly.io/contact/\">Contact</a></li>\\n<li id=\"menu-item-295\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-295\"><a href=\"https://venus.discover.multitenantsdev.edly.io/instructors/\">Instructors</a></li>\\n<li id=\"menu-item-43\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-43\"><a href=\"https://venus.discover.multitenantsdev.edly.io/blog/\">Blog</a></li>\\n<li id=\"menu-item-44\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-44\"><a href=\"https://venus.discover.multitenantsdev.edly.io/activities/\">Activities</a></li>\\n<li id=\"menu-item-45\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-45\"><a href=\"https://venus.discover.multitenantsdev.edly.io/academics/\">Academics</a></li>\\n<li id=\"menu-item-46\" class=\"menu-item menu-item-type-post_type menu-item-object-page menu-item-46\"><a href=\"https://venus.discover.multitenantsdev.edly.io/about-us/\">About US</a></li>\\n<li id=\"menu-item-53\" class=\"edx-link menu_openedx menu-item menu-item-type-custom menu-item-object-menu_openedx menu-item-has-children menu-item-53\"><a class='user-profile-wrap' href='https://venus.multitenantsdev.edly.io#'><img src='https://venus.multitenantsdev.edly.io/media/profile-images/a67985db4fb19227764c2b560e28b0b9_50.jpg?v=1757068807' /><span class='user-title'>ans_hameed</span><span class='user-full-name'>Anas hameed</span></a>\\n<ul class=\"sub-menu\">\\n\\t<li id=\"menu-item-54\" class=\"edx-link dashboard_openedx menu-item menu-item-type-custom menu-item-object-dashboard_openedx menu-item-54\"><a href=\"https://venus.multitenantsdev.edly.io/dashboard\">Dashboard</a></li>\\n\\t<li id=\"menu-item-55\" class=\"edx-link profile_openedx menu-item menu-item-type-custom menu-item-object-profile_openedx menu-item-55\"><a href=\"https://venus.multitenantsdev.edly.io/u/ans_hameed\">Profile</a></li>\\n\\t<li id=\"menu-item-56\" class=\"edx-link account_openedx menu-item menu-item-type-custom menu-item-object-account_openedx menu-item-56\"><a href=\"https://venus.multitenantsdev.edly.io/account/settings\">Account</a></li>\\n\\t<li id=\"menu-item-57\" class=\"edx-link signout_openedx menu-item menu-item-type-custom menu-item-object-signout_openedx menu-item-57\"><a href=\"https://venus.discover.multitenantsdev.edly.io/logout\">Sign Out</a></li>\\n</ul>\\n</li>\\n</ul></div>`\n // );\n } else {\n console.error(\"Data object is not json\");\n }\n } catch (error) {\n console.error(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n fetchData();\n }, []);\n\n const toggleMenu = () => {\n setIsOpen(!isOpen);\n };\n\n return (\n <div className={`shadow-lg ${isMobile ? \"header-frame\" : \"\"}`}>\n {isMobile && (\n <button\n className=\"menuOpner\"\n type=\"button\"\n onClick={toggleMenu}\n style={{\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n fontSize: \"24px\",\n }}\n >\n {isOpen ? \"✖\" : \"☰\"}\n </button>\n )}\n <div\n className={`header-holder ${isMobile ? \"mobile-menu\" : \"\"} ${\n isOpen ? \"\" : \"mobile-hide\"\n }`}\n >\n <a href=\"/\" className=\"custom-logo-link\">\n <img\n width=\"216\"\n height=\"140\"\n src={config.LOGO_URL}\n className=\"custom-logo\"\n alt=\"Venus\"\n decoding=\"async\"\n />\n </a>\n <header\n className=\"site-header\"\n dangerouslySetInnerHTML={{ __html: headerData }}\n />\n </div>\n </div>\n );\n};\n\nexport default HeaderWidget;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_frontendPlatform","require","_react","_dompurify","_interopRequireDefault","_jsxRuntime","e","__esModule","default","HeaderWidget","headerData","setHeaderData","useState","isOpen","setIsOpen","WIDTH","isMobile","setIsMobile","window","innerWidth","isLoading","setIsLoading","config","getConfig","useEffect","handleResize","addEventListener","removeEventListener","fetchData","DISCOVERY_URL","console","error","response","fetch","credentials","ok","Error","status","jsonData","json","cleanHtml","DOMPurify","sanitize","primary","ADD_ATTR","toggleMenu","jsxs","className","children","jsx","type","onClick","style","background","border","cursor","fontSize","href","width","height","src","LOGO_URL","alt","decoding","dangerouslySetInnerHTML","__html","_default","exports"],"sources":["../../src/HeaderWidget/index.jsx"],"sourcesContent":["import { getConfig } from \"@edx/frontend-platform\";\nimport { useEffect, useState } from \"react\";\nimport DOMPurify from \"dompurify\";\nimport \"./main.scss\";\n\nconst HeaderWidget = () => {\n const [headerData, setHeaderData] = useState(\"\");\n const [isOpen, setIsOpen] = useState(false);\n const WIDTH = 1230;\n const [isMobile, setIsMobile] = useState(window.innerWidth < WIDTH);\n const [isLoading, setIsLoading] = useState(true);\n const config = getConfig();\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth < WIDTH);\n if (window.innerWidth >= WIDTH) {\n setIsOpen(false);\n }\n };\n\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n useEffect(() => {\n const fetchData = async () => {\n if (!config?.DISCOVERY_URL) {\n console.error(\"No url found for discovery\", config);\n return;\n }\n try {\n const response = await fetch(\n `${config.DISCOVERY_URL}/wp-json/edly-wp-routes/nav-menu`,\n { credentials: \"include\" }\n );\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const jsonData = await response.json();\n\n if (typeof jsonData === \"object\") {\n const cleanHtml = DOMPurify.sanitize(jsonData.primary, {\n ADD_ATTR: [\"target\", \"class\"],\n });\n setHeaderData(cleanHtml);\n } else {\n console.error(\"Data object is not json\");\n }\n } catch (error) {\n console.error(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n fetchData();\n }, []);\n\n const toggleMenu = () => {\n setIsOpen(!isOpen);\n };\n\n return (\n <div className={`shadow-lg ${isMobile ? \"header-frame\" : \"\"}`}>\n {isMobile && (\n <button\n className=\"menuOpner\"\n type=\"button\"\n onClick={toggleMenu}\n style={{\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n fontSize: \"24px\",\n }}\n >\n {isOpen ? \"✖\" : \"☰\"}\n </button>\n )}\n <div\n className={`header-holder ${isMobile ? \"mobile-menu\" : \"\"} ${\n isOpen ? \"\" : \"mobile-hide\"\n }`}\n >\n <a href=\"/\" className=\"custom-logo-link\">\n <img\n width=\"216\"\n height=\"140\"\n src={config.LOGO_URL}\n className=\"custom-logo\"\n alt=\"Venus\"\n decoding=\"async\"\n />\n </a>\n <header\n className=\"site-header\"\n dangerouslySetInnerHTML={{ __html: headerData }}\n />\n </div>\n </div>\n );\n};\n\nexport default HeaderWidget;\n"],"mappings":"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","ignoreList":[]}
@@ -32,6 +32,15 @@ $icon-size: 0.95em;
32
32
  width: auto;
33
33
  }
34
34
 
35
+ li.menu-item-object-menu_openedx {
36
+ margin-left: auto;
37
+ }
38
+
39
+ #menu-primary-menu > li > .sub-menu {
40
+ left: auto !important;
41
+ right: 0 !important;
42
+ }
43
+
35
44
  /* Desktop Menu */
36
45
  #menu-primary-menu {
37
46
  display: flex;
@@ -44,13 +53,40 @@ $icon-size: 0.95em;
44
53
  position: relative;
45
54
  padding: 10px;
46
55
 
56
+ &.menu-item-has-children {
57
+ a {
58
+ &:after {
59
+ display: none !important;
60
+ }
61
+ }
62
+ }
63
+
64
+ .user-profile-wrap {
65
+ &:hover {
66
+ text-decoration: none;
67
+ }
68
+ &::before {
69
+ display: none;
70
+ }
71
+
72
+ img {
73
+ border-radius: 100%;
74
+ overflow: hidden;
75
+ }
76
+
77
+ span {
78
+ display: none;
79
+ }
80
+ }
81
+
47
82
  a {
48
83
  color: $text-color;
49
84
  text-decoration: none;
50
85
  font-weight: 600;
51
86
  display: block;
52
87
  border-bottom: 1px solid transparent;
53
- transition: color $transition-speed ease,
88
+ transition:
89
+ color $transition-speed ease,
54
90
  border-color $transition-speed ease;
55
91
  position: relative;
56
92
  display: block;
@@ -119,7 +155,8 @@ $icon-size: 0.95em;
119
155
  display: block;
120
156
  padding: 0.6rem 1rem;
121
157
  color: $text-color;
122
- transition: background $transition-speed ease,
158
+ transition:
159
+ background $transition-speed ease,
123
160
  color $transition-speed ease;
124
161
 
125
162
  &:hover {
@@ -330,7 +367,8 @@ $icon-size: 0.95em;
330
367
 
331
368
  li a {
332
369
  padding: 0.5rem 1rem;
333
- transition: background $transition-speed ease,
370
+ transition:
371
+ background $transition-speed ease,
334
372
  color $transition-speed ease;
335
373
 
336
374
  &:hover {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anas_hameed/edly-saas-widget",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Frontend application template",
5
5
  "main": "dist/index.js",
6
6
  "repository": {