titaned-frontend-library 1.0.5 → 1.0.6

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.
package/dist/index.cjs CHANGED
@@ -1,22 +1,22 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react"),v=require("@openedx/paragon");function _r(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const i in t)if(i!=="default"){const n=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(s,i,n.get?n:{enumerable:!0,get:()=>t[i]})}}return s.default=t,Object.freeze(s)}const q=_r(y);var we={exports:{}},pe={};/*
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react"),v=require("@openedx/paragon");function _r(t){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const n=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(i,s,n.get?n:{enumerable:!0,get:()=>t[s]})}}return i.default=t,Object.freeze(i)}const q=_r(y);var we={exports:{}},pe={};/*
2
2
  object-assign
3
3
  (c) Sindre Sorhus
4
4
  @license MIT
5
- */var Oe,qe;function rr(){if(qe)return Oe;qe=1;var t=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function n(p){if(p==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(p)}function x(){try{if(!Object.assign)return!1;var p=new String("abc");if(p[5]="de",Object.getOwnPropertyNames(p)[0]==="5")return!1;for(var j={},m=0;m<10;m++)j["_"+String.fromCharCode(m)]=m;var g=Object.getOwnPropertyNames(j).map(function(o){return j[o]});if(g.join("")!=="0123456789")return!1;var c={};return"abcdefghijklmnopqrst".split("").forEach(function(o){c[o]=o}),Object.keys(Object.assign({},c)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return Oe=x()?Object.assign:function(p,j){for(var m,g=n(p),c,o=1;o<arguments.length;o++){m=Object(arguments[o]);for(var d in m)s.call(m,d)&&(g[d]=m[d]);if(t){c=t(m);for(var f=0;f<c.length;f++)i.call(m,c[f])&&(g[c[f]]=m[c[f]])}}return g},Oe}/** @license React v17.0.2
5
+ */var Oe,qe;function rr(){if(qe)return Oe;qe=1;var t=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable;function n(p){if(p==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(p)}function x(){try{if(!Object.assign)return!1;var p=new String("abc");if(p[5]="de",Object.getOwnPropertyNames(p)[0]==="5")return!1;for(var j={},m=0;m<10;m++)j["_"+String.fromCharCode(m)]=m;var g=Object.getOwnPropertyNames(j).map(function(o){return j[o]});if(g.join("")!=="0123456789")return!1;var c={};return"abcdefghijklmnopqrst".split("").forEach(function(o){c[o]=o}),Object.keys(Object.assign({},c)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return Oe=x()?Object.assign:function(p,j){for(var m,g=n(p),c,o=1;o<arguments.length;o++){m=Object(arguments[o]);for(var d in m)i.call(m,d)&&(g[d]=m[d]);if(t){c=t(m);for(var f=0;f<c.length;f++)s.call(m,c[f])&&(g[c[f]]=m[c[f]])}}return g},Oe}/** @license React v17.0.2
6
6
  * react-jsx-runtime.production.min.js
7
7
  *
8
8
  * Copyright (c) Facebook, Inc. and its affiliates.
9
9
  *
10
10
  * This source code is licensed under the MIT license found in the
11
11
  * LICENSE file in the root directory of this source tree.
12
- */var Ve;function Er(){if(Ve)return pe;Ve=1,rr();var t=y,s=60103;if(pe.Fragment=60107,typeof Symbol=="function"&&Symbol.for){var i=Symbol.for;s=i("react.element"),pe.Fragment=i("react.fragment")}var n=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,x=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};function j(m,g,c){var o,d={},f=null,w=null;c!==void 0&&(f=""+c),g.key!==void 0&&(f=""+g.key),g.ref!==void 0&&(w=g.ref);for(o in g)x.call(g,o)&&!p.hasOwnProperty(o)&&(d[o]=g[o]);if(m&&m.defaultProps)for(o in g=m.defaultProps,g)d[o]===void 0&&(d[o]=g[o]);return{$$typeof:s,type:m,key:f,ref:w,props:d,_owner:n.current}}return pe.jsx=j,pe.jsxs=j,pe}var Re={};/** @license React v17.0.2
12
+ */var Ve;function Er(){if(Ve)return pe;Ve=1,rr();var t=y,i=60103;if(pe.Fragment=60107,typeof Symbol=="function"&&Symbol.for){var s=Symbol.for;i=s("react.element"),pe.Fragment=s("react.fragment")}var n=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,x=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};function j(m,g,c){var o,d={},f=null,w=null;c!==void 0&&(f=""+c),g.key!==void 0&&(f=""+g.key),g.ref!==void 0&&(w=g.ref);for(o in g)x.call(g,o)&&!p.hasOwnProperty(o)&&(d[o]=g[o]);if(m&&m.defaultProps)for(o in g=m.defaultProps,g)d[o]===void 0&&(d[o]=g[o]);return{$$typeof:i,type:m,key:f,ref:w,props:d,_owner:n.current}}return pe.jsx=j,pe.jsxs=j,pe}var Re={};/** @license React v17.0.2
13
13
  * react-jsx-runtime.development.js
14
14
  *
15
15
  * Copyright (c) Facebook, Inc. and its affiliates.
16
16
  *
17
17
  * This source code is licensed under the MIT license found in the
18
18
  * LICENSE file in the root directory of this source tree.
19
- */var We;function Sr(){return We||(We=1,(function(t){process.env.NODE_ENV!=="production"&&(function(){var s=y,i=rr(),n=60103,x=60106;t.Fragment=60107;var p=60108,j=60114,m=60109,g=60110,c=60112,o=60113,d=60120,f=60115,w=60116,u=60121,I=60122,U=60117,E=60129,D=60131;if(typeof Symbol=="function"&&Symbol.for){var O=Symbol.for;n=O("react.element"),x=O("react.portal"),t.Fragment=O("react.fragment"),p=O("react.strict_mode"),j=O("react.profiler"),m=O("react.provider"),g=O("react.context"),c=O("react.forward_ref"),o=O("react.suspense"),d=O("react.suspense_list"),f=O("react.memo"),w=O("react.lazy"),u=O("react.block"),I=O("react.server.block"),U=O("react.fundamental"),O("react.scope"),O("react.opaque.id"),E=O("react.debug_trace_mode"),O("react.offscreen"),D=O("react.legacy_hidden")}var G=typeof Symbol=="function"&&Symbol.iterator,$="@@iterator";function X(e){if(e===null||typeof e!="object")return null;var a=G&&e[G]||e[$];return typeof a=="function"?a:null}var H=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function R(e){{for(var a=arguments.length,l=new Array(a>1?a-1:0),b=1;b<a;b++)l[b-1]=arguments[b];Z("error",e,l)}}function Z(e,a,l){{var b=H.ReactDebugCurrentFrame,T=b.getStackAddendum();T!==""&&(a+="%s",l=l.concat([T]));var k=l.map(function(S){return""+S});k.unshift("Warning: "+a),Function.prototype.apply.call(console[e],console,k)}}var ee=!1;function F(e){return!!(typeof e=="string"||typeof e=="function"||e===t.Fragment||e===j||e===E||e===p||e===o||e===d||e===D||ee||typeof e=="object"&&e!==null&&(e.$$typeof===w||e.$$typeof===f||e.$$typeof===m||e.$$typeof===g||e.$$typeof===c||e.$$typeof===U||e.$$typeof===u||e[0]===I))}function L(e,a,l){var b=a.displayName||a.name||"";return e.displayName||(b!==""?l+"("+b+")":l)}function V(e){return e.displayName||"Context"}function M(e){if(e==null)return null;if(typeof e.tag=="number"&&R("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case t.Fragment:return"Fragment";case x:return"Portal";case j:return"Profiler";case p:return"StrictMode";case o:return"Suspense";case d:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case g:var a=e;return V(a)+".Consumer";case m:var l=e;return V(l._context)+".Provider";case c:return L(e,e.render,"ForwardRef");case f:return M(e.type);case u:return M(e._render);case w:{var b=e,T=b._payload,k=b._init;try{return M(k(T))}catch{return null}}}return null}var z=0,C,W,K,Q,oe,J,ne;function se(){}se.__reactDisabledLog=!0;function Ne(){{if(z===0){C=console.log,W=console.info,K=console.warn,Q=console.error,oe=console.group,J=console.groupCollapsed,ne=console.groupEnd;var e={configurable:!0,enumerable:!0,value:se,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}z++}}function je(){{if(z--,z===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:i({},e,{value:C}),info:i({},e,{value:W}),warn:i({},e,{value:K}),error:i({},e,{value:Q}),group:i({},e,{value:oe}),groupCollapsed:i({},e,{value:J}),groupEnd:i({},e,{value:ne})})}z<0&&R("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var ce=H.ReactCurrentDispatcher,le;function ie(e,a,l){{if(le===void 0)try{throw Error()}catch(T){var b=T.stack.trim().match(/\n( *(at )?)/);le=b&&b[1]||""}return`
19
+ */var We;function Sr(){return We||(We=1,(function(t){process.env.NODE_ENV!=="production"&&(function(){var i=y,s=rr(),n=60103,x=60106;t.Fragment=60107;var p=60108,j=60114,m=60109,g=60110,c=60112,o=60113,d=60120,f=60115,w=60116,u=60121,I=60122,U=60117,E=60129,D=60131;if(typeof Symbol=="function"&&Symbol.for){var O=Symbol.for;n=O("react.element"),x=O("react.portal"),t.Fragment=O("react.fragment"),p=O("react.strict_mode"),j=O("react.profiler"),m=O("react.provider"),g=O("react.context"),c=O("react.forward_ref"),o=O("react.suspense"),d=O("react.suspense_list"),f=O("react.memo"),w=O("react.lazy"),u=O("react.block"),I=O("react.server.block"),U=O("react.fundamental"),O("react.scope"),O("react.opaque.id"),E=O("react.debug_trace_mode"),O("react.offscreen"),D=O("react.legacy_hidden")}var G=typeof Symbol=="function"&&Symbol.iterator,$="@@iterator";function X(e){if(e===null||typeof e!="object")return null;var a=G&&e[G]||e[$];return typeof a=="function"?a:null}var H=i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function R(e){{for(var a=arguments.length,l=new Array(a>1?a-1:0),b=1;b<a;b++)l[b-1]=arguments[b];Z("error",e,l)}}function Z(e,a,l){{var b=H.ReactDebugCurrentFrame,T=b.getStackAddendum();T!==""&&(a+="%s",l=l.concat([T]));var k=l.map(function(S){return""+S});k.unshift("Warning: "+a),Function.prototype.apply.call(console[e],console,k)}}var ee=!1;function F(e){return!!(typeof e=="string"||typeof e=="function"||e===t.Fragment||e===j||e===E||e===p||e===o||e===d||e===D||ee||typeof e=="object"&&e!==null&&(e.$$typeof===w||e.$$typeof===f||e.$$typeof===m||e.$$typeof===g||e.$$typeof===c||e.$$typeof===U||e.$$typeof===u||e[0]===I))}function L(e,a,l){var b=a.displayName||a.name||"";return e.displayName||(b!==""?l+"("+b+")":l)}function V(e){return e.displayName||"Context"}function M(e){if(e==null)return null;if(typeof e.tag=="number"&&R("Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case t.Fragment:return"Fragment";case x:return"Portal";case j:return"Profiler";case p:return"StrictMode";case o:return"Suspense";case d:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case g:var a=e;return V(a)+".Consumer";case m:var l=e;return V(l._context)+".Provider";case c:return L(e,e.render,"ForwardRef");case f:return M(e.type);case u:return M(e._render);case w:{var b=e,T=b._payload,k=b._init;try{return M(k(T))}catch{return null}}}return null}var z=0,C,W,K,Q,oe,J,ne;function se(){}se.__reactDisabledLog=!0;function Ne(){{if(z===0){C=console.log,W=console.info,K=console.warn,Q=console.error,oe=console.group,J=console.groupCollapsed,ne=console.groupEnd;var e={configurable:!0,enumerable:!0,value:se,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}z++}}function je(){{if(z--,z===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:s({},e,{value:C}),info:s({},e,{value:W}),warn:s({},e,{value:K}),error:s({},e,{value:Q}),group:s({},e,{value:oe}),groupCollapsed:s({},e,{value:J}),groupEnd:s({},e,{value:ne})})}z<0&&R("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var ce=H.ReactCurrentDispatcher,le;function ie(e,a,l){{if(le===void 0)try{throw Error()}catch(T){var b=T.stack.trim().match(/\n( *(at )?)/);le=b&&b[1]||""}return`
20
20
  `+le+e}}var ue=!1,ae;{var xe=typeof WeakMap=="function"?WeakMap:Map;ae=new xe}function me(e,a){if(!e||ue)return"";{var l=ae.get(e);if(l!==void 0)return l}var b;ue=!0;var T=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var k;k=ce.current,ce.current=null,Ne();try{if(a){var S=function(){throw Error()};if(Object.defineProperty(S.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(S,[])}catch(te){b=te}Reflect.construct(e,[],S)}else{try{S.call()}catch(te){b=te}e.call(S.prototype)}}else{try{throw Error()}catch(te){b=te}e()}}catch(te){if(te&&b&&typeof te.stack=="string"){for(var _=te.stack.split(`
21
21
  `),Y=b.stack.split(`
22
22
  `),P=_.length-1,A=Y.length-1;P>=1&&A>=0&&_[P]!==Y[A];)A--;for(;P>=1&&A>=0;P--,A--)if(_[P]!==Y[A]){if(P!==1||A!==1)do if(P--,A--,A<0||_[P]!==Y[A]){var re=`
@@ -24,4 +24,4 @@ object-assign
24
24
 
25
25
  Check the render method of \``+e+"`."}return""}}function mr(e){return""}var $e={};function gr(e){{var a=De();if(!a){var l=typeof e=="string"?e:e.displayName||e.name;l&&(a=`
26
26
 
27
- Check the top-level render call using <`+l+">.")}return a}}function Le(e,a){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var l=gr(a);if($e[l])return;$e[l]=!0;var b="";e&&e._owner&&e._owner!==Ee.current&&(b=" It was passed a child from "+M(e._owner.type)+"."),fe(e),R('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',l,b),fe(null)}}function He(e,a){{if(typeof e!="object")return;if(Array.isArray(e))for(var l=0;l<e.length;l++){var b=e[l];Ce(b)&&Le(b,a)}else if(Ce(e))e._store&&(e._store.validated=!0);else if(e){var T=X(e);if(typeof T=="function"&&T!==e.entries)for(var k=T.call(e),S;!(S=k.next()).done;)Ce(S.value)&&Le(S.value,a)}}}function vr(e){{var a=e.type;if(a==null||typeof a=="string")return;var l;if(typeof a=="function")l=a.propTypes;else if(typeof a=="object"&&(a.$$typeof===c||a.$$typeof===f))l=a.propTypes;else return;if(l){var b=M(a);ar(l,e.props,"prop",b,e)}else if(a.PropTypes!==void 0&&!Se){Se=!0;var T=M(a);R("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",T||"Unknown")}typeof a.getDefaultProps=="function"&&!a.getDefaultProps.isReactClassApproved&&R("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function xr(e){{for(var a=Object.keys(e.props),l=0;l<a.length;l++){var b=a[l];if(b!=="children"&&b!=="key"){fe(e),R("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",b),fe(null);break}}e.ref!==null&&(fe(e),R("Invalid attribute `ref` supplied to `React.Fragment`."),fe(null))}}function Fe(e,a,l,b,T,k){{var S=F(e);if(!S){var _="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(_+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var Y=mr();Y?_+=Y:_+=De();var P;e===null?P="null":Array.isArray(e)?P="array":e!==void 0&&e.$$typeof===n?(P="<"+(M(e.type)||"Unknown")+" />",_=" Did you accidentally export a JSX literal instead of a component?"):P=typeof e,R("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",P,_)}var A=pr(e,a,l,T,k);if(A==null)return A;if(S){var re=a.children;if(re!==void 0)if(b)if(Array.isArray(re)){for(var he=0;he<re.length;he++)He(re[he],e);Object.freeze&&Object.freeze(re)}else R("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else He(re,e)}return e===t.Fragment?xr(A):vr(A),A}}function br(e,a,l){return Fe(e,a,l,!0)}function wr(e,a,l){return Fe(e,a,l,!1)}var yr=wr,jr=br;t.jsx=yr,t.jsxs=jr})()})(Re)),Re}var Ke;function Cr(){return Ke||(Ke=1,process.env.NODE_ENV==="production"?we.exports=Er():we.exports=Sr()),we.exports}var r=Cr();const Or=({contactInfo:t,quickLinks:s,exploreLinks:i,logoUrl:n,copyrights:x})=>{const p=j=>j??"left";return r.jsxs("footer",{className:"footer",children:[r.jsxs("div",{className:"container",children:[r.jsxs("div",{className:`section ${p(t.align)}`,children:[r.jsx("div",{className:"footer-brand-logo",children:r.jsx("img",{src:n,alt:"Logo"})}),r.jsx("p",{children:t.content.shortdesc}),r.jsxs("p",{children:[t.content.location.label,", ",t.content.location.value]}),r.jsxs("p",{children:["📞 ",t.content.phonenumber]})]}),r.jsx("div",{className:`section ${p(s.align)}`,children:r.jsxs("ul",{children:[r.jsx("h3",{children:"Quick Links"}),s.content.map((j,m)=>r.jsx("li",{children:r.jsx("a",{href:j.link,children:j.label})},m))]})}),r.jsx("div",{className:`section ${p(i.align)}`,children:r.jsxs("ul",{children:[r.jsx("h3",{children:"Explore"}),i.content.map((j,m)=>r.jsx("li",{children:r.jsx("a",{href:j.link,children:j.label})},m))]})})]}),r.jsx("div",{className:"copyright",children:r.jsx("p",{children:x})})]})},tr=y.createContext(void 0),Rr=({children:t})=>{const[s,i]=y.useState(!1),n=()=>{i(p=>!p)},x=p=>{i(p)};return r.jsx(tr.Provider,{value:{isCollapsed:s,toggleSidebar:n,setSidebarCollapsed:x},children:t})},Te=()=>{const t=y.useContext(tr);if(t===void 0)throw new Error("useSidebar must be used within a SidebarProvider");return t},kr=({buttons:t,onNavigate:s,presentPath:i})=>{const{isCollapsed:n,setSidebarCollapsed:x}=Te(),[p,j]=y.useState(!0),m=y.useRef(null),[g,c]=y.useState(()=>document.dir==="rtl"||document.documentElement.dir==="rtl");return y.useEffect(()=>{const o=()=>{c(document.dir==="rtl"||document.documentElement.dir==="rtl")},d=new MutationObserver(o);return d.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),()=>d.disconnect()},[]),y.useEffect(()=>{const o=t.some(d=>d.path===i);j(o),!o&&!n&&i.includes("/course/")&&x(!0)},[i]),y.useEffect(()=>{const o=d=>{!p&&m.current&&!m.current.contains(d.target)&&i.includes("/course/")&&(n||x(!0))};return document.addEventListener("mousedown",o),()=>{document.removeEventListener("mousedown",o)}},[p,n,x]),r.jsxs(r.Fragment,{children:[r.jsx("div",{className:`sidebar ${n?"collapsed":""}`,ref:m,children:r.jsx("div",{className:"sidebar-buttons",children:t.map(o=>{const d=o.path===i||(i.includes("/course/")||i.includes("/course_rerun/"))&&o.path==="/my-courses"||i.includes("/library/")&&o.path==="/libraries"||i.includes("/taxonomy/")&&o.path==="/taxonomies";return r.jsx(v.OverlayTrigger,{placement:g?"left":"right",overlay:r.jsx(v.Tooltip,{id:`tooltip-${o.path}`,children:o.label}),show:n?void 0:!1,popperConfig:{modifiers:[{name:"preventOverflow",options:{altAxis:!0,boundary:"viewport"}}]},children:r.jsx(v.Button,{variant:"tertiary",className:`sidebar-btn ${d?"pgn-btn-active":"pgn-btn-inactive"}`,onClick:()=>s(o.path),children:r.jsxs("div",{className:"btn-content",children:[r.jsx("span",{className:"icon-container",children:o.icon}),r.jsx("span",{className:"btn-label",children:o.label})]})})},o.path)})})}),!p&&!n&&r.jsx("div",{className:"sidebar-extra-space"})]})},Tr=(t=768)=>{const[s,i]=y.useState(!1);return y.useEffect(()=>{const n=()=>{i(window.innerWidth<=t)};return n(),window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[t]),s},Ye=t=>q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",...t},q.createElement("path",{d:"M10.09 15.59 11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM21 3H3v6h2V5h14v14H5v-4H3v6h18V3z",fill:"currentColor"})),Je=t=>q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",...t},q.createElement("path",{d:"M21 3H3v18h18V3zm-8.99 15c-.7 0-1.26-.56-1.26-1.26 0-.71.56-1.25 1.26-1.25.71 0 1.25.54 1.25 1.25-.01.69-.54 1.26-1.25 1.26zm3.01-7.4c-.76 1.11-1.48 1.46-1.87 2.17-.16.29-.22.48-.22 1.41h-1.82c0-.49-.08-1.29.31-1.98.49-.87 1.42-1.39 1.96-2.16.57-.81.25-2.33-1.37-2.33-1.06 0-1.58.8-1.8 1.48l-1.65-.7C9.01 7.15 10.22 6 11.99 6c1.48 0 2.49.67 3.01 1.52.44.72.7 2.07.02 3.08z",fill:"currentColor"})),Nr=t=>q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",...t},q.createElement("path",{d:"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z",fill:"currentColor"})),Pr=t=>q.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},q.createElement("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2Zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2Zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2Z",fill:"currentColor"})),Ue=t=>q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",...t},q.createElement("path",{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V2.5h-3v2.18C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z",fill:"currentColor"})),Ir=t=>q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",...t},q.createElement("path",{d:"M19 19H5V5h7V3H3v18h18v-9h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z",fill:"currentColor"})),Ar=t=>q.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},q.createElement("path",{d:"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5Zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14Z",fill:"currentColor"})),Ge=t=>q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",...t},q.createElement("path",{d:"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46A7.93 7.93 0 0 0 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74A7.93 7.93 0 0 0 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z",fill:"currentColor"})),Mr=({id:t,buttonTitle:s,items:i})=>(console.log("NavDropdownMenu Props:",i),r.jsx(v.DropdownButton,{id:t,title:s,variant:"tertiary",className:"mr-2",children:i.map(n=>r.jsx(v.Dropdown.Item,{href:n.href,as:"a",className:"small",children:n.title},`${n.title}-dropdown-item`))})),Xe=({username:t,authenticatedUserAvatar:s,isMobile:i,menuItems:n})=>{const x=s?r.jsx("img",{className:"d-block w-100 h-100",src:s,alt:t,"data-testid":"avatar-image"}):r.jsx(v.Avatar,{size:"sm",className:"mr-2",alt:"avatar","data-testid":"avatar-icon"}),p=i?x:r.jsxs(r.Fragment,{children:[t,"   ",x]});return r.jsx(Mr,{buttonTitle:p,id:"user-dropdown-menu",items:n})};var ve={},Ze;function Dr(){if(Ze)return ve;Ze=1,Object.defineProperty(ve,"__esModule",{value:!0}),ve.parse=j,ve.serialize=c;const t=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,s=/^[\u0021-\u003A\u003C-\u007E]*$/,i=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,n=/^[\u0020-\u003A\u003D-\u007E]*$/,x=Object.prototype.toString,p=(()=>{const f=function(){};return f.prototype=Object.create(null),f})();function j(f,w){const u=new p,I=f.length;if(I<2)return u;const U=(w==null?void 0:w.decode)||o;let E=0;do{const D=f.indexOf("=",E);if(D===-1)break;const O=f.indexOf(";",E),G=O===-1?I:O;if(D>G){E=f.lastIndexOf(";",D-1)+1;continue}const $=m(f,E,D),X=g(f,D,$),H=f.slice($,X);if(u[H]===void 0){let R=m(f,D+1,G),Z=g(f,G,R);const ee=U(f.slice(R,Z));u[H]=ee}E=G+1}while(E<I);return u}function m(f,w,u){do{const I=f.charCodeAt(w);if(I!==32&&I!==9)return w}while(++w<u);return u}function g(f,w,u){for(;w>u;){const I=f.charCodeAt(--w);if(I!==32&&I!==9)return w+1}return u}function c(f,w,u){const I=(u==null?void 0:u.encode)||encodeURIComponent;if(!t.test(f))throw new TypeError(`argument name is invalid: ${f}`);const U=I(w);if(!s.test(U))throw new TypeError(`argument val is invalid: ${w}`);let E=f+"="+U;if(!u)return E;if(u.maxAge!==void 0){if(!Number.isInteger(u.maxAge))throw new TypeError(`option maxAge is invalid: ${u.maxAge}`);E+="; Max-Age="+u.maxAge}if(u.domain){if(!i.test(u.domain))throw new TypeError(`option domain is invalid: ${u.domain}`);E+="; Domain="+u.domain}if(u.path){if(!n.test(u.path))throw new TypeError(`option path is invalid: ${u.path}`);E+="; Path="+u.path}if(u.expires){if(!d(u.expires)||!Number.isFinite(u.expires.valueOf()))throw new TypeError(`option expires is invalid: ${u.expires}`);E+="; Expires="+u.expires.toUTCString()}if(u.httpOnly&&(E+="; HttpOnly"),u.secure&&(E+="; Secure"),u.partitioned&&(E+="; Partitioned"),u.priority)switch(typeof u.priority=="string"?u.priority.toLowerCase():void 0){case"low":E+="; Priority=Low";break;case"medium":E+="; Priority=Medium";break;case"high":E+="; Priority=High";break;default:throw new TypeError(`option priority is invalid: ${u.priority}`)}if(u.sameSite)switch(typeof u.sameSite=="string"?u.sameSite.toLowerCase():u.sameSite){case!0:case"strict":E+="; SameSite=Strict";break;case"lax":E+="; SameSite=Lax";break;case"none":E+="; SameSite=None";break;default:throw new TypeError(`option sameSite is invalid: ${u.sameSite}`)}return E}function o(f){if(f.indexOf("%")===-1)return f;try{return decodeURIComponent(f)}catch{return f}}function d(f){return x.call(f)==="[object Date]"}return ve}var ye=Dr();function $r(){const t=typeof global>"u"?void 0:global.TEST_HAS_DOCUMENT_COOKIE;return typeof t=="boolean"?t:typeof document=="object"&&typeof document.cookie=="string"}function Lr(t){return typeof t=="string"?ye.parse(t):typeof t=="object"&&t!==null?t:{}}function ke(t,s={}){const i=Hr(t);if(!s.doNotParse)try{return JSON.parse(i)}catch{}return t}function Hr(t){return t&&t[0]==="j"&&t[1]===":"?t.substr(2):t}class Fr{constructor(s,i={}){this.changeListeners=[],this.HAS_DOCUMENT_COOKIE=!1,this.update=()=>{if(!this.HAS_DOCUMENT_COOKIE)return;const x=this.cookies;this.cookies=ye.parse(document.cookie),this._checkChanges(x)};const n=typeof document>"u"?"":document.cookie;this.cookies=Lr(s||n),this.defaultSetOptions=i,this.HAS_DOCUMENT_COOKIE=$r()}_emitChange(s){for(let i=0;i<this.changeListeners.length;++i)this.changeListeners[i](s)}_checkChanges(s){new Set(Object.keys(s).concat(Object.keys(this.cookies))).forEach(n=>{s[n]!==this.cookies[n]&&this._emitChange({name:n,value:ke(this.cookies[n])})})}_startPolling(){this.pollingInterval=setInterval(this.update,300)}_stopPolling(){this.pollingInterval&&clearInterval(this.pollingInterval)}get(s,i={}){return i.doNotUpdate||this.update(),ke(this.cookies[s],i)}getAll(s={}){s.doNotUpdate||this.update();const i={};for(let n in this.cookies)i[n]=ke(this.cookies[n],s);return i}set(s,i,n){n?n=Object.assign(Object.assign({},this.defaultSetOptions),n):n=this.defaultSetOptions;const x=typeof i=="string"?i:JSON.stringify(i);this.cookies=Object.assign(Object.assign({},this.cookies),{[s]:x}),this.HAS_DOCUMENT_COOKIE&&(document.cookie=ye.serialize(s,x,n)),this._emitChange({name:s,value:i,options:n})}remove(s,i){const n=i=Object.assign(Object.assign(Object.assign({},this.defaultSetOptions),i),{expires:new Date(1970,1,1,0,0,1),maxAge:0});this.cookies=Object.assign({},this.cookies),delete this.cookies[s],this.HAS_DOCUMENT_COOKIE&&(document.cookie=ye.serialize(s,"",n)),this._emitChange({name:s,value:void 0,options:i})}addChangeListener(s){this.changeListeners.push(s),this.HAS_DOCUMENT_COOKIE&&this.changeListeners.length===1&&(typeof window=="object"&&"cookieStore"in window?window.cookieStore.addEventListener("change",this.update):this._startPolling())}removeChangeListener(s){const i=this.changeListeners.indexOf(s);i>=0&&this.changeListeners.splice(i,1),this.HAS_DOCUMENT_COOKIE&&this.changeListeners.length===0&&(typeof window=="object"&&"cookieStore"in window?window.cookieStore.removeEventListener("change",this.update):this._stopPolling())}removeAllChangeListeners(){for(;this.changeListeners.length>0;)this.removeChangeListener(this.changeListeners[0])}}class zr{constructor(s){if(!s.host)throw new Error("MeiliSearch host is required");if(!s.apiKey)throw new Error("MeiliSearch apiKey is required");if(!s.indexName)throw new Error("MeiliSearch indexName is required");this.config=s,this.headers={"Content-Type":"application/json",Authorization:`Bearer ${s.apiKey}`,"X-Meilisearch-Client":"Meilisearch JavaScript (v0.41.0)"}}updateHeadersFromClient(s){s&&s.httpRequest&&s.httpRequest.headers&&(this.headers={"Content-Type":s.httpRequest.headers["Content-Type"]||"application/json",Authorization:s.httpRequest.headers.Authorization||`Bearer ${this.config.apiKey}`,"X-Meilisearch-Client":s.httpRequest.headers["X-Meilisearch-Client"]||"Meilisearch JavaScript (v0.41.0)"})}async search(s,i={}){const{limit:n=20,offset:x=0,filter:p=['type = "course_block"'],attributesToHighlight:j=["display_name","description","published"],attributesToCrop:m=["description","published"],sort:g=[]}=i;if(!this.config.indexName)throw new Error("MeiliSearch indexName is required");const c={queries:[{indexUid:this.config.indexName,q:s,filter:[[],...p],attributesToHighlight:j,highlightPreTag:"__meili-highlight__",highlightPostTag:"__/meili-highlight__",attributesToCrop:m,sort:g,offset:x,limit:n},{indexUid:this.config.indexName,facets:["block_type","content.problem_types"],filter:p,limit:0}]},o={...this.headers};try{const d=await fetch(`${this.config.host}/multi-search`,{method:"POST",headers:o,body:JSON.stringify(c)});if(!d.ok)throw new Error(`MeiliSearch API error: ${d.status} ${d.statusText}`);const f=await d.json(),w=f.results[0],u=f.results[1];return{hits:w.hits||[],totalHits:w.estimatedTotalHits||0,facets:u.facetDistribution,processingTimeMs:w.processingTimeMs}}catch(d){throw console.error("MeiliSearch service error:",d),new Error(`Search failed: ${d instanceof Error?d.message:"Unknown error"}`)}}async simpleSearch(s,i={}){const{limit:n=20,offset:x=0,filter:p=['type = "course_block"'],attributesToHighlight:j=["display_name","description","published"],attributesToCrop:m=["description","published"],sort:g=[]}=i,c={queries:[{indexUid:this.config.indexName,q:s,filter:[[],...p],attributesToHighlight:j,highlightPreTag:"__meili-highlight__",highlightPostTag:"__/meili-highlight__",attributesToCrop:m,sort:g,offset:x,limit:n}]},o={...this.headers};try{const d=await fetch(`${this.config.host}/multi-search`,{method:"POST",headers:o,body:JSON.stringify(c)});if(!d.ok)throw new Error(`MeiliSearch API error: ${d.status} ${d.statusText}`);const w=(await d.json()).results[0];return{hits:w.hits||[],totalHits:w.estimatedTotalHits||0,processingTimeMs:w.processingTimeMs}}catch(d){throw console.error("MeiliSearch service error:",d),new Error(`Search failed: ${d instanceof Error?d.message:"Unknown error"}`)}}async checkConnection(){try{return(await fetch(`${this.config.host}/health`,{method:"GET",headers:{Authorization:`Bearer ${this.config.apiKey}`,"X-Meilisearch-Client":"Meilisearch JavaScript (v0.41.0)"}})).ok}catch(s){return console.error("MeiliSearch connection check failed:",s),!1}}}const nr=t=>new zr(t);function sr(t,s){const{contextKey:i,usageKey:n}=t;return i?i.startsWith("course-v1:")?`${s||""}/course/${i}?show=${encodeURIComponent(n||"")}`:i.startsWith("library-v1:")?`${s||""}/library/${i}`:"#":"#"}function qr(t,s,i){const n=sr(t,s);return n==="#"?(console.warn("Could not generate URL for search hit:",t),"#"):(i?i(n):(n.startsWith("http"),window.location.href=n),n)}const Qe=({text:t,highlightTag:s="__meili-highlight__"})=>{if(!t)return null;const i="__/meili-highlight__",n=t.split(s),x=[];return n.forEach((p,j)=>{if(j===0)p&&x.push(p);else{const m=p.indexOf(i);if(m!==-1){const g=p.substring(0,m),c=p.substring(m+i.length);g&&x.push(r.jsx("mark",{className:"search-highlight",children:g},`highlight-${j}`)),c&&x.push(c)}else x.push(r.jsx("mark",{className:"search-highlight",children:p},`highlight-${j}`))}}),r.jsx(r.Fragment,{children:x})};function Vr(t){return{html:"text",video:"video",problem:"quiz",vertical:"folder",sequential:"folder",chapter:"folder",about:"info",static_tab:"text",openassessment:"quiz",lti_consumer:"link",pdf:"file",scorm:"file",itembank:"library",library_content:"library"}[t]||"text"}const Be=({result:t,onNavigate:s,baseUrl:i})=>{var g,c;const n=o=>{var w;o.preventDefault(),o.stopPropagation();const d={id:t.id,blockType:t.block_type||t.type,contextKey:t.context_key,usageKey:t.usage_key,breadcrumbs:((w=t.breadcrumbs)==null?void 0:w.map(u=>({displayName:u.display_name,usageKey:u.usage_key})))||[]};if(t.url){s?s(t.url):window.location.href=t.url;return}qr(d,i,s)==="#"&&(s?s(`/search-result/${t.id}`):window.location.href=`/search-result/${t.id}`)},x=o=>{var w;o.preventDefault(),o.stopPropagation();const d={id:t.id,blockType:t.block_type||t.type,contextKey:t.context_key,usageKey:t.usage_key,breadcrumbs:((w=t.breadcrumbs)==null?void 0:w.map(u=>({displayName:u.display_name,usageKey:u.usage_key})))||[]},f=sr(d,i);f&&f!=="#"&&window.open(f,"_blank")},p=((g=t._formatted)==null?void 0:g.display_name)||t.display_name,j=((c=t._formatted)==null?void 0:c.description)||t.description,m=t.block_type||t.type;return r.jsx("div",{className:"search-result-item",onClick:n,role:"button",tabIndex:0,onKeyDown:o=>{(o.key==="Enter"||o.key===" ")&&n(o)},children:r.jsxs("div",{className:"search-result-content",children:[r.jsx("div",{className:"search-result-icon",children:r.jsx(v.Icon,{src:Vr(m)})}),r.jsxs("div",{className:"search-result-text",children:[r.jsx("div",{className:"search-result-title",children:r.jsx(Qe,{text:p})}),j&&r.jsx("div",{className:"search-result-description",children:r.jsx(Qe,{text:j})}),t.breadcrumbs&&t.breadcrumbs.length>0&&r.jsx("div",{className:"search-result-breadcrumbs",children:t.breadcrumbs.map(o=>o.display_name).join(" / ")})]}),r.jsx("div",{className:"search-result-actions",children:r.jsx(v.IconButton,{src:Ir,iconAs:v.Icon,onClick:x,alt:"Open in new window",size:"sm"})})]})})},er=new Fr,Wr=({logoUrl:t,menuList:s,loginSignupButtons:i,authenticatedUser:n=null,userMenuItems:x,menuAlignment:p,onLanguageChange:j,getBaseUrl:m,meiliSearchConfig:g,headerButtons:c,languageSelectorList:o})=>{const d=Tr(),{toggleSidebar:f,setSidebarCollapsed:w}=Te(),[u,I]=y.useState(()=>er.get("openedx-language-preference")||"en"),[U,E]=y.useState(!1),[D,O]=y.useState(!1),[G,$]=y.useState(!1),[X,H]=y.useState(""),[R,Z]=y.useState([]),[ee,F]=y.useState(!1),[L,V]=y.useState(null),[M,z]=y.useState(0),[C,W]=y.useState(!1),[K,Q]=y.useState(5),oe=y.useRef(null),J=y.useRef(null),ne=y.useRef(g?nr(g):null);console.log("languageSelectorList",o),y.useEffect(()=>{g!=null&&g.client&&ne.current&&ne.current.updateHeadersFromClient(g.client)},[g==null?void 0:g.client]),y.useEffect(()=>()=>{J.current&&clearTimeout(J.current)},[]),y.useEffect(()=>{document.body.dir=u==="ar"?"rtl":"ltr"},[u]),y.useEffect(()=>{d&&w(!0)},[d,w]),y.useEffect(()=>{if(!D)return;function h(N){oe.current&&!oe.current.contains(N.target)&&O(!1)}return document.addEventListener("mousedown",h),()=>{document.removeEventListener("mousedown",h)}},[D]);const se=h=>{I(h),er.set("openedx-language-preference",h,{path:m?m():"/"}),j&&j()},je=p&&{left:"justify-content-start",center:"justify-content-center",right:"justify-content-end"}[p.toLowerCase()]||"justify-content-start",ce=async h=>{if(!h.trim()||!g||!ne.current){Z([]),z(0),$(!1),W(!1);return}F(!0),V(null),$(!1),Q(5);try{const N=await ne.current.simpleSearch(h,{limit:20,offset:0});Z(N.hits),z(N.totalHits),$(N.totalHits===0),W(!0)}catch(N){V(N instanceof Error?N.message:"Search failed"),$(!0),Z([]),z(0)}finally{F(!1)}},le=h=>{H(h),ce(h),d&&U&&E(!1)},ie=h=>{H(h),G&&h.trim()===""&&($(!1),W(!1)),J.current&&clearTimeout(J.current),h.trim().length>0?J.current=setTimeout(()=>{ce(h)},500):(Z([]),z(0),$(!1),W(!1))},ue=()=>{J.current&&(clearTimeout(J.current),J.current=null),H(""),Z([]),z(0),$(!1),W(!1),V(null),F(!1)},ae=()=>{H(""),Z([]),z(0),$(!1),W(!1),V(null),F(!1),Q(5),J.current&&(clearTimeout(J.current),J.current=null)},xe=()=>{Q(h=>Math.min(h+10,R.length))},me=h=>{if(o&&o.length>0){const B=o.find(de=>de[h]);if(B)return B[h]}return{en:"English",ar:"Arabic",hi:"Hindi"}[h]||h.toUpperCase()},ge=()=>(console.log("renderLanguageOptions - languageSelectorList:",o),console.log("renderLanguageOptions - length:",o==null?void 0:o.length),o&&o.length>0?(console.log("Using custom languageSelectorList"),o.map((h,N)=>{const[B,de]=Object.entries(h)[0];return r.jsx(v.Dropdown.Item,{onClick:()=>se(B),children:de},`lang-${B}-${N}`)})):(console.log("Using fallback languages"),r.jsxs(r.Fragment,{children:[r.jsx(v.Dropdown.Item,{onClick:()=>se("en"),children:"English"}),r.jsx(v.Dropdown.Item,{onClick:()=>se("ar"),children:"Arabic"}),r.jsx(v.Dropdown.Item,{onClick:()=>se("hi"),children:"Hindi"})]})));return r.jsxs(v.Navbar,{expand:"lg",className:"navbarContainer py-1",children:[r.jsxs("div",{className:"d-flex align-items-center",children:[r.jsx("div",{className:"toggle-sidebar-icon",children:r.jsx(v.IconButton,{src:Nr,iconAs:v.Icon,alt:"Toggle Sidebar",onClick:f,className:"ms-2 ml-2",onMouseDown:h=>h.stopPropagation()})}),r.jsx(v.Navbar.Brand,{href:"/",className:"navbar-brand",children:r.jsx("img",{src:t,alt:"Logo"})})]}),n!==null&&r.jsx(r.Fragment,{children:d?r.jsx("div",{className:"d-flex justify-content-between align-items-center ml-auto",children:r.jsxs("div",{className:"d-flex align-items-center navbar-buttons",children:[g&&r.jsx(v.IconButton,{src:Ar,iconAs:v.Icon,alt:"Search",onClick:()=>E(!0)}),r.jsx("div",{className:"ml-2 usermenu-dropdown-mobile",children:r.jsx(Xe,{username:n==null?void 0:n.username,authenticatedUserAvatar:n==null?void 0:n.avatar,isMobile:d,isAdmin:n==null?void 0:n.administrator,menuItems:x})}),r.jsx(v.IconButton,{src:Pr,iconAs:v.Icon,alt:"More",onMouseDown:h=>h.stopPropagation(),onClick:()=>O(h=>!h)}),D&&r.jsxs("div",{className:"more-menu-dropdown",ref:oe,children:[r.jsxs("div",{className:"more-menu-icons-row",children:[(c==null?void 0:c.reSync)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Ge,iconAs:v.Icon,alt:"Sync",tooltipPlacement:"bottom",tooltipContent:"Re-Sync"})}),(c==null?void 0:c.contextSwitcher)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Ye,iconAs:v.Icon,alt:"Sync",tooltipPlacement:"bottom",tooltipContent:"Switch to User Mode"})}),(c==null?void 0:c.help)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Je,iconAs:v.Icon,alt:"Help",tooltipPlacement:"bottom",tooltipContent:"Help"})}),(c==null?void 0:c.notification)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Ue,iconAs:v.Icon,alt:"Notifications",tooltipPlacement:"bottom",tooltipContent:"Notifications"})})]}),(c==null?void 0:c.translation)&&r.jsxs(v.Dropdown,{className:"language-dropdown",children:[r.jsx(v.Dropdown.Toggle,{variant:"tertiary",id:"language-dropdown",children:me(u)}),r.jsx(v.Dropdown.Menu,{children:ge()})]})]})]})}):r.jsxs(r.Fragment,{children:[g&&r.jsx("div",{className:"d-flex align-items-center justify-content-start flex-grow-1 ml-4",children:r.jsxs("div",{style:{width:"30rem",position:"relative"},children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",border:"2px solid #ccc",borderRadius:"25px",padding:"8px 16px",background:"#fff",position:"relative"},children:[r.jsx("input",{type:"text",value:X,onChange:h=>{ie(h.target.value)},onKeyDown:h=>{h.key==="Enter"&&le(X)},placeholder:"Search",style:{flex:1,border:"none",outline:"none",fontSize:"16px",background:"transparent",padding:"4px"},autoComplete:"off"}),X&&r.jsx("button",{type:"button",onClick:()=>{ue()},style:{background:"none",border:"none",cursor:"pointer",padding:"4px",marginRight:"8px"},children:"✕"})]}),ee&&r.jsxs("div",{className:"search-loading-spinner-container",children:[r.jsx("div",{className:"search-loading-spinner"}),r.jsx("span",{children:"Searching..."})]}),G&&!ee&&r.jsx("div",{className:"no-results-message-desktop",children:r.jsx("p",{children:"We didn't find anything matching your search"})}),L&&r.jsx("div",{className:"search-error-message-desktop",children:r.jsxs("p",{children:["Search error: ",L]})}),C&&R.length>0&&r.jsxs("div",{className:"search-results-dropdown",children:[r.jsx("div",{className:"search-results-header",children:r.jsxs("span",{children:[M," result",M!==1?"s":""," found"]})}),r.jsxs("div",{className:"search-results-list",children:[R.slice(0,K).map((h,N)=>r.jsx(Be,{result:h,onNavigate:B=>{ae(),window.location.href=B},baseUrl:m?m():void 0},h.id||N)),K<R.length&&r.jsx("div",{className:"search-results-more",children:r.jsxs("button",{onClick:xe,style:{background:"none",border:"none",color:"#007bff",cursor:"pointer",padding:"8px 16px",width:"100%",textAlign:"center",fontSize:"14px"},children:["Show ",Math.min(10,R.length-K)," more results"]})})]})]})]})}),r.jsxs("div",{className:"d-flex align-items-center gap-2 ms-auto order-lg-3",children:[(c==null?void 0:c.reSync)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Ge,iconAs:v.Icon,alt:"Sync",tooltipPlacement:"bottom",tooltipContent:"Re-Sync"})}),(c==null?void 0:c.contextSwitcher)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Ye,iconAs:v.Icon,alt:"Sync",tooltipPlacement:"bottom",tooltipContent:"Switch to User Mode"})}),(c==null?void 0:c.help)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Je,iconAs:v.Icon,alt:"Help",tooltipPlacement:"bottom",tooltipContent:"Help"})}),(c==null?void 0:c.notification)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Ue,iconAs:v.Icon,alt:"Notifications",tooltipPlacement:"bottom",tooltipContent:"Notifications"})}),(c==null?void 0:c.translation)&&r.jsxs(v.Dropdown,{className:"language-dropdown",children:[r.jsx(v.Dropdown.Toggle,{variant:"tertiary",id:"language-dropdown",children:me(u)}),r.jsx(v.Dropdown.Menu,{children:ge()})]}),r.jsx("div",{className:"usermenu-dropdown",children:r.jsx(Xe,{username:n==null?void 0:n.username,authenticatedUserAvatar:n==null?void 0:n.avatar,isMobile:d,isAdmin:n==null?void 0:n.administrator,menuItems:x})})]})]})}),n===null&&r.jsxs(r.Fragment,{children:[r.jsx(v.Navbar.Toggle,{"aria-controls":"main-navbar-nav"}),r.jsx("div",{className:"d-flex align-items-center gap-2 ms-auto order-lg-3",children:i&&r.jsxs(r.Fragment,{children:[r.jsx(v.Button,{variant:"primary",children:"Log In"}),r.jsx(v.Button,{variant:"outline-primary",children:"Sign Up"})]})})]}),r.jsx(v.Navbar.Collapse,{id:"main-navbar-nav",className:"justify-content-between",children:r.jsx(v.Nav,{className:`nav-gap gap-3 flex-grow-1 ${je}`,children:n===null&&s.map(h=>h.subMenu?r.jsx(v.NavDropdown,{title:h.label,id:`nav-dropdown-${h.label}`,children:h.subMenu.map(N=>r.jsx(v.NavDropdown.Item,{onClick:()=>console.log("Selected submenu:",N.label),children:N.label},`sub-${N.label}`))},`menu-${h.label}`):r.jsx(v.Nav.Link,{as:"span",className:"text-uppercase fw-semibold",children:h.label},`menu-${h.label}`))})}),g&&U&&r.jsxs("div",{className:"fixed-search-bar",children:[r.jsxs("div",{className:"fixed-search-bar-inner",children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",border:"2px solid #ccc",borderRadius:"25px",padding:"12px 16px",background:"#fff",position:"relative",width:"100%"},children:[r.jsx("input",{type:"text",value:X,onChange:h=>{ie(h.target.value)},onKeyDown:h=>{h.key==="Enter"&&le(X)},placeholder:"Search",style:{flex:1,border:"none",outline:"none",fontSize:"18px",background:"transparent",padding:"4px"},autoComplete:"off",autoFocus:!0}),X&&r.jsx("button",{type:"button",onClick:()=>{ue()},style:{background:"none",border:"none",cursor:"pointer",padding:"4px",marginRight:"8px",fontSize:"18px"},children:"✕"})]}),r.jsx("button",{className:"close-search-bar",type:"button",onClick:()=>E(!1),"aria-label":"Close Search",children:"×"})]}),ee&&r.jsxs("div",{className:"search-loading-spinner-container",children:[r.jsx("div",{className:"search-loading-spinner"}),r.jsx("span",{children:"Searching..."})]}),G&&!ee&&r.jsx("div",{className:"no-results-message",children:r.jsx("p",{children:"We didn't find anything matching your search"})}),L&&r.jsx("div",{className:"search-error-message",children:r.jsxs("p",{children:["Search error: ",L]})}),C&&R.length>0&&r.jsxs("div",{className:"search-results-mobile",children:[r.jsx("div",{className:"search-results-header",children:r.jsxs("span",{children:[M," result",M!==1?"s":""," found"]})}),r.jsxs("div",{className:"search-results-list",children:[R.slice(0,K).map((h,N)=>r.jsx(Be,{result:h,onNavigate:B=>{ae(),window.location.href=B},baseUrl:m?m():void 0},h.id||N)),K<R.length&&r.jsx("div",{className:"search-results-more",children:r.jsxs("button",{onClick:xe,style:{background:"none",border:"none",color:"#007bff",cursor:"pointer",padding:"12px 16px",width:"100%",textAlign:"center",fontSize:"16px"},children:["Show ",Math.min(10,R.length-K)," more results"]})})]})]})]})]})},ir=y.createContext(void 0),Kr=({children:t,meiliSearchConfig:s})=>{const[i,n]=y.useState(""),[x,p]=y.useState([]),[j,m]=y.useState(0),[g,c]=y.useState(!1),[o,d]=y.useState(!1),[f,w]=y.useState(null),[u,I]=y.useState(0),[U,E]=y.useState(!1),[D,O]=y.useState(!1),[G,$]=y.useState(null),X=nr(s),H=async F=>{if(!F.trim()){Z();return}c(!0),d(!1),w(null),I(0);try{const L=await X.search(F,{limit:20,offset:0}),V=L.hits.map(C=>{var W,K,Q;return{id:C.id,title:((W=C._formatted)==null?void 0:W.display_name)||C.display_name,type:C.type,url:C.url,description:((K=C._formatted)==null?void 0:K.description)||C.description,block_type:C.block_type,published:((Q=C._formatted)==null?void 0:Q.published)||C.published,_formatted:C._formatted}}),M=L.totalHits,z=V.length===20&&M>V.length;p(V),m(M),E(z),$(L.facets||null)}catch(L){console.error("Search error:",L),d(!0),w(L instanceof Error?L.message:"Search failed"),p([]),m(0),E(!1),$(null)}finally{c(!1)}},R=async()=>{if(!(!U||D)){O(!0);try{const F=u+20,L=await X.simpleSearch(i,{limit:20,offset:F}),V=L.hits.map(C=>{var W,K,Q;return{id:C.id,title:((W=C._formatted)==null?void 0:W.display_name)||C.display_name,type:C.type,url:C.url,description:((K=C._formatted)==null?void 0:K.description)||C.description,block_type:C.block_type,published:((Q=C._formatted)==null?void 0:Q.published)||C.published,_formatted:C._formatted}}),M=L.totalHits,z=V.length===20&&M>x.length+V.length;p(C=>[...C,...V]),m(M),E(z),I(F)}catch(F){console.error("Error fetching next page:",F),d(!0),w(F instanceof Error?F.message:"Failed to load more results")}finally{O(!1)}}},Z=()=>{n(""),p([]),m(0),d(!1),w(null),I(0),E(!1),$(null)},ee={searchKeywords:i,setSearchKeywords:n,searchResults:x,totalHits:j,isLoading:g,hasError:o,errorMessage:f,facets:G,performSearch:H,clearSearch:Z,hasNextPage:U,fetchNextPage:R,isFetchingNextPage:D};return r.jsx(ir.Provider,{value:ee,children:t})},Yr=()=>{const t=y.useContext(ir);if(t===void 0)throw new Error("useSimpleSearch must be used within a SimpleSearchProvider");return t},Jr=t=>{try{if(t.status!==200)throw new Error("Failed to fetch theme config");const s=t.data.theme_colors;if(!s||typeof s!="object")throw new Error("Invalid theme_colors in API response");const i=document.documentElement;for(const n in s)if(Object.prototype.hasOwnProperty.call(s,n)){const x=s[n];i.style.setProperty(`--${n.replace(/_/g,"-")}`,x)}console.log("Theme applied successfully from API:",s)}catch(s){console.error("Error applying theme from API:",s.message);const i={primary:"#2B2399",primary_alt:"#3C32B5",primary_hover:"#E2E1F9",primary_active:"#1F1A7D",primary_light:"#E2E1F9",secondary:"#7A8AFF",secondary_alt:"#5C6EF0",secondary_hover:"#ECEEFF",secondary_active:"#4A5BD1",secondary_light:"#ECEEFF"},n=document.documentElement;for(const x in i)if(Object.prototype.hasOwnProperty.call(i,x)){const p=i[x];n.style.setProperty(`--${x.replace(/_/g,"-")}`,p)}console.log("Fallback theme applied")}};exports.Footer=Or;exports.MainHeader=Wr;exports.Sidebar=kr;exports.SidebarProvider=Rr;exports.SimpleSearchProvider=Kr;exports.dynamicTheme=Jr;exports.useSidebar=Te;exports.useSimpleSearch=Yr;
27
+ Check the top-level render call using <`+l+">.")}return a}}function Le(e,a){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var l=gr(a);if($e[l])return;$e[l]=!0;var b="";e&&e._owner&&e._owner!==Ee.current&&(b=" It was passed a child from "+M(e._owner.type)+"."),fe(e),R('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',l,b),fe(null)}}function He(e,a){{if(typeof e!="object")return;if(Array.isArray(e))for(var l=0;l<e.length;l++){var b=e[l];Ce(b)&&Le(b,a)}else if(Ce(e))e._store&&(e._store.validated=!0);else if(e){var T=X(e);if(typeof T=="function"&&T!==e.entries)for(var k=T.call(e),S;!(S=k.next()).done;)Ce(S.value)&&Le(S.value,a)}}}function vr(e){{var a=e.type;if(a==null||typeof a=="string")return;var l;if(typeof a=="function")l=a.propTypes;else if(typeof a=="object"&&(a.$$typeof===c||a.$$typeof===f))l=a.propTypes;else return;if(l){var b=M(a);ar(l,e.props,"prop",b,e)}else if(a.PropTypes!==void 0&&!Se){Se=!0;var T=M(a);R("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",T||"Unknown")}typeof a.getDefaultProps=="function"&&!a.getDefaultProps.isReactClassApproved&&R("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function xr(e){{for(var a=Object.keys(e.props),l=0;l<a.length;l++){var b=a[l];if(b!=="children"&&b!=="key"){fe(e),R("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",b),fe(null);break}}e.ref!==null&&(fe(e),R("Invalid attribute `ref` supplied to `React.Fragment`."),fe(null))}}function Fe(e,a,l,b,T,k){{var S=F(e);if(!S){var _="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(_+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var Y=mr();Y?_+=Y:_+=De();var P;e===null?P="null":Array.isArray(e)?P="array":e!==void 0&&e.$$typeof===n?(P="<"+(M(e.type)||"Unknown")+" />",_=" Did you accidentally export a JSX literal instead of a component?"):P=typeof e,R("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",P,_)}var A=pr(e,a,l,T,k);if(A==null)return A;if(S){var re=a.children;if(re!==void 0)if(b)if(Array.isArray(re)){for(var he=0;he<re.length;he++)He(re[he],e);Object.freeze&&Object.freeze(re)}else R("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else He(re,e)}return e===t.Fragment?xr(A):vr(A),A}}function br(e,a,l){return Fe(e,a,l,!0)}function wr(e,a,l){return Fe(e,a,l,!1)}var yr=wr,jr=br;t.jsx=yr,t.jsxs=jr})()})(Re)),Re}var Ke;function Cr(){return Ke||(Ke=1,process.env.NODE_ENV==="production"?we.exports=Er():we.exports=Sr()),we.exports}var r=Cr();const Or=({contactInfo:t,quickLinks:i,exploreLinks:s,logoUrl:n,copyrights:x})=>{const p=j=>j??"left";return r.jsxs("footer",{className:"footer",children:[r.jsxs("div",{className:"container",children:[r.jsxs("div",{className:`section ${p(t.align)}`,children:[r.jsx("div",{className:"footer-brand-logo",children:r.jsx("img",{src:n,alt:"Logo"})}),r.jsx("p",{children:t.content.shortdesc}),r.jsxs("p",{children:[t.content.location.label,", ",t.content.location.value]}),r.jsxs("p",{children:["📞 ",t.content.phonenumber]})]}),r.jsx("div",{className:`section ${p(i.align)}`,children:r.jsxs("ul",{children:[r.jsx("h3",{children:"Quick Links"}),i.content.map((j,m)=>r.jsx("li",{children:r.jsx("a",{href:j.link,children:j.label})},m))]})}),r.jsx("div",{className:`section ${p(s.align)}`,children:r.jsxs("ul",{children:[r.jsx("h3",{children:"Explore"}),s.content.map((j,m)=>r.jsx("li",{children:r.jsx("a",{href:j.link,children:j.label})},m))]})})]}),r.jsx("div",{className:"copyright",children:r.jsx("p",{children:x})})]})},tr=y.createContext(void 0),Rr=({children:t})=>{const[i,s]=y.useState(!1),n=()=>{s(p=>!p)},x=p=>{s(p)};return r.jsx(tr.Provider,{value:{isCollapsed:i,toggleSidebar:n,setSidebarCollapsed:x},children:t})},Te=()=>{const t=y.useContext(tr);if(t===void 0)throw new Error("useSidebar must be used within a SidebarProvider");return t},kr=({buttons:t,onNavigate:i,presentPath:s})=>{const{isCollapsed:n,setSidebarCollapsed:x}=Te(),[p,j]=y.useState(!0),m=y.useRef(null),[g,c]=y.useState(()=>document.dir==="rtl"||document.documentElement.dir==="rtl");return y.useEffect(()=>{const o=()=>{c(document.dir==="rtl"||document.documentElement.dir==="rtl")},d=new MutationObserver(o);return d.observe(document.documentElement,{attributes:!0,attributeFilter:["dir"]}),()=>d.disconnect()},[]),y.useEffect(()=>{const o=t.some(d=>d.path===s);j(o),!o&&!n&&s.includes("/course/")&&!s.includes("/learning/course/")&&x(!0)},[s]),y.useEffect(()=>{const o=d=>{!p&&m.current&&!m.current.contains(d.target)&&s.includes("/course/")&&!s.includes("/learning/course/")&&(n||x(!0))};return document.addEventListener("mousedown",o),()=>{document.removeEventListener("mousedown",o)}},[p,n,x]),r.jsxs(r.Fragment,{children:[r.jsx("div",{className:`sidebar ${n?"collapsed":""}`,ref:m,children:r.jsx("div",{className:"sidebar-buttons",children:t.map(o=>{const d=o.path===s||(s.includes("/course/")||s.includes("/course_rerun/"))&&o.path==="/my-courses"||s.includes("/library/")&&o.path==="/libraries"||s.includes("/taxonomy/")&&o.path==="/taxonomies";return r.jsx(v.OverlayTrigger,{placement:g?"left":"right",overlay:r.jsx(v.Tooltip,{id:`tooltip-${o.path}`,children:o.label}),show:n?void 0:!1,popperConfig:{modifiers:[{name:"preventOverflow",options:{altAxis:!0,boundary:"viewport"}}]},children:r.jsx(v.Button,{variant:"tertiary",className:`sidebar-btn ${d?"pgn-btn-active":"pgn-btn-inactive"}`,onClick:()=>i(o.path),children:r.jsxs("div",{className:"btn-content",children:[r.jsx("span",{className:"icon-container",children:o.icon}),r.jsx("span",{className:"btn-label",children:o.label})]})})},o.path)})})}),!p&&!n&&r.jsx("div",{className:"sidebar-extra-space"})]})},Tr=(t=768)=>{const[i,s]=y.useState(!1);return y.useEffect(()=>{const n=()=>{s(window.innerWidth<=t)};return n(),window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[t]),i},Ye=t=>q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",...t},q.createElement("path",{d:"M10.09 15.59 11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM21 3H3v6h2V5h14v14H5v-4H3v6h18V3z",fill:"currentColor"})),Je=t=>q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",...t},q.createElement("path",{d:"M21 3H3v18h18V3zm-8.99 15c-.7 0-1.26-.56-1.26-1.26 0-.71.56-1.25 1.26-1.25.71 0 1.25.54 1.25 1.25-.01.69-.54 1.26-1.25 1.26zm3.01-7.4c-.76 1.11-1.48 1.46-1.87 2.17-.16.29-.22.48-.22 1.41h-1.82c0-.49-.08-1.29.31-1.98.49-.87 1.42-1.39 1.96-2.16.57-.81.25-2.33-1.37-2.33-1.06 0-1.58.8-1.8 1.48l-1.65-.7C9.01 7.15 10.22 6 11.99 6c1.48 0 2.49.67 3.01 1.52.44.72.7 2.07.02 3.08z",fill:"currentColor"})),Nr=t=>q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",...t},q.createElement("path",{d:"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z",fill:"currentColor"})),Pr=t=>q.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},q.createElement("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2Zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2Zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2Z",fill:"currentColor"})),Ue=t=>q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",...t},q.createElement("path",{d:"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V2.5h-3v2.18C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z",fill:"currentColor"})),Ir=t=>q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",...t},q.createElement("path",{d:"M19 19H5V5h7V3H3v18h18v-9h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z",fill:"currentColor"})),Ar=t=>q.createElement("svg",{width:24,height:24,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},q.createElement("path",{d:"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5Zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14Z",fill:"currentColor"})),Ge=t=>q.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",...t},q.createElement("path",{d:"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46A7.93 7.93 0 0 0 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74A7.93 7.93 0 0 0 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z",fill:"currentColor"})),Mr=({id:t,buttonTitle:i,items:s})=>(console.log("NavDropdownMenu Props:",s),r.jsx(v.DropdownButton,{id:t,title:i,variant:"tertiary",className:"mr-2",children:s.map(n=>r.jsx(v.Dropdown.Item,{href:n.href,as:"a",className:"small",children:n.title},`${n.title}-dropdown-item`))})),Xe=({username:t,authenticatedUserAvatar:i,isMobile:s,menuItems:n})=>{const x=i?r.jsx("img",{className:"d-block w-100 h-100",src:i,alt:t,"data-testid":"avatar-image"}):r.jsx(v.Avatar,{size:"sm",className:"mr-2",alt:"avatar","data-testid":"avatar-icon"}),p=s?x:r.jsxs(r.Fragment,{children:[t,"   ",x]});return r.jsx(Mr,{buttonTitle:p,id:"user-dropdown-menu",items:n})};var ve={},Ze;function Dr(){if(Ze)return ve;Ze=1,Object.defineProperty(ve,"__esModule",{value:!0}),ve.parse=j,ve.serialize=c;const t=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,i=/^[\u0021-\u003A\u003C-\u007E]*$/,s=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,n=/^[\u0020-\u003A\u003D-\u007E]*$/,x=Object.prototype.toString,p=(()=>{const f=function(){};return f.prototype=Object.create(null),f})();function j(f,w){const u=new p,I=f.length;if(I<2)return u;const U=(w==null?void 0:w.decode)||o;let E=0;do{const D=f.indexOf("=",E);if(D===-1)break;const O=f.indexOf(";",E),G=O===-1?I:O;if(D>G){E=f.lastIndexOf(";",D-1)+1;continue}const $=m(f,E,D),X=g(f,D,$),H=f.slice($,X);if(u[H]===void 0){let R=m(f,D+1,G),Z=g(f,G,R);const ee=U(f.slice(R,Z));u[H]=ee}E=G+1}while(E<I);return u}function m(f,w,u){do{const I=f.charCodeAt(w);if(I!==32&&I!==9)return w}while(++w<u);return u}function g(f,w,u){for(;w>u;){const I=f.charCodeAt(--w);if(I!==32&&I!==9)return w+1}return u}function c(f,w,u){const I=(u==null?void 0:u.encode)||encodeURIComponent;if(!t.test(f))throw new TypeError(`argument name is invalid: ${f}`);const U=I(w);if(!i.test(U))throw new TypeError(`argument val is invalid: ${w}`);let E=f+"="+U;if(!u)return E;if(u.maxAge!==void 0){if(!Number.isInteger(u.maxAge))throw new TypeError(`option maxAge is invalid: ${u.maxAge}`);E+="; Max-Age="+u.maxAge}if(u.domain){if(!s.test(u.domain))throw new TypeError(`option domain is invalid: ${u.domain}`);E+="; Domain="+u.domain}if(u.path){if(!n.test(u.path))throw new TypeError(`option path is invalid: ${u.path}`);E+="; Path="+u.path}if(u.expires){if(!d(u.expires)||!Number.isFinite(u.expires.valueOf()))throw new TypeError(`option expires is invalid: ${u.expires}`);E+="; Expires="+u.expires.toUTCString()}if(u.httpOnly&&(E+="; HttpOnly"),u.secure&&(E+="; Secure"),u.partitioned&&(E+="; Partitioned"),u.priority)switch(typeof u.priority=="string"?u.priority.toLowerCase():void 0){case"low":E+="; Priority=Low";break;case"medium":E+="; Priority=Medium";break;case"high":E+="; Priority=High";break;default:throw new TypeError(`option priority is invalid: ${u.priority}`)}if(u.sameSite)switch(typeof u.sameSite=="string"?u.sameSite.toLowerCase():u.sameSite){case!0:case"strict":E+="; SameSite=Strict";break;case"lax":E+="; SameSite=Lax";break;case"none":E+="; SameSite=None";break;default:throw new TypeError(`option sameSite is invalid: ${u.sameSite}`)}return E}function o(f){if(f.indexOf("%")===-1)return f;try{return decodeURIComponent(f)}catch{return f}}function d(f){return x.call(f)==="[object Date]"}return ve}var ye=Dr();function $r(){const t=typeof global>"u"?void 0:global.TEST_HAS_DOCUMENT_COOKIE;return typeof t=="boolean"?t:typeof document=="object"&&typeof document.cookie=="string"}function Lr(t){return typeof t=="string"?ye.parse(t):typeof t=="object"&&t!==null?t:{}}function ke(t,i={}){const s=Hr(t);if(!i.doNotParse)try{return JSON.parse(s)}catch{}return t}function Hr(t){return t&&t[0]==="j"&&t[1]===":"?t.substr(2):t}class Fr{constructor(i,s={}){this.changeListeners=[],this.HAS_DOCUMENT_COOKIE=!1,this.update=()=>{if(!this.HAS_DOCUMENT_COOKIE)return;const x=this.cookies;this.cookies=ye.parse(document.cookie),this._checkChanges(x)};const n=typeof document>"u"?"":document.cookie;this.cookies=Lr(i||n),this.defaultSetOptions=s,this.HAS_DOCUMENT_COOKIE=$r()}_emitChange(i){for(let s=0;s<this.changeListeners.length;++s)this.changeListeners[s](i)}_checkChanges(i){new Set(Object.keys(i).concat(Object.keys(this.cookies))).forEach(n=>{i[n]!==this.cookies[n]&&this._emitChange({name:n,value:ke(this.cookies[n])})})}_startPolling(){this.pollingInterval=setInterval(this.update,300)}_stopPolling(){this.pollingInterval&&clearInterval(this.pollingInterval)}get(i,s={}){return s.doNotUpdate||this.update(),ke(this.cookies[i],s)}getAll(i={}){i.doNotUpdate||this.update();const s={};for(let n in this.cookies)s[n]=ke(this.cookies[n],i);return s}set(i,s,n){n?n=Object.assign(Object.assign({},this.defaultSetOptions),n):n=this.defaultSetOptions;const x=typeof s=="string"?s:JSON.stringify(s);this.cookies=Object.assign(Object.assign({},this.cookies),{[i]:x}),this.HAS_DOCUMENT_COOKIE&&(document.cookie=ye.serialize(i,x,n)),this._emitChange({name:i,value:s,options:n})}remove(i,s){const n=s=Object.assign(Object.assign(Object.assign({},this.defaultSetOptions),s),{expires:new Date(1970,1,1,0,0,1),maxAge:0});this.cookies=Object.assign({},this.cookies),delete this.cookies[i],this.HAS_DOCUMENT_COOKIE&&(document.cookie=ye.serialize(i,"",n)),this._emitChange({name:i,value:void 0,options:s})}addChangeListener(i){this.changeListeners.push(i),this.HAS_DOCUMENT_COOKIE&&this.changeListeners.length===1&&(typeof window=="object"&&"cookieStore"in window?window.cookieStore.addEventListener("change",this.update):this._startPolling())}removeChangeListener(i){const s=this.changeListeners.indexOf(i);s>=0&&this.changeListeners.splice(s,1),this.HAS_DOCUMENT_COOKIE&&this.changeListeners.length===0&&(typeof window=="object"&&"cookieStore"in window?window.cookieStore.removeEventListener("change",this.update):this._stopPolling())}removeAllChangeListeners(){for(;this.changeListeners.length>0;)this.removeChangeListener(this.changeListeners[0])}}class zr{constructor(i){if(!i.host)throw new Error("MeiliSearch host is required");if(!i.apiKey)throw new Error("MeiliSearch apiKey is required");if(!i.indexName)throw new Error("MeiliSearch indexName is required");this.config=i,this.headers={"Content-Type":"application/json",Authorization:`Bearer ${i.apiKey}`,"X-Meilisearch-Client":"Meilisearch JavaScript (v0.41.0)"}}updateHeadersFromClient(i){i&&i.httpRequest&&i.httpRequest.headers&&(this.headers={"Content-Type":i.httpRequest.headers["Content-Type"]||"application/json",Authorization:i.httpRequest.headers.Authorization||`Bearer ${this.config.apiKey}`,"X-Meilisearch-Client":i.httpRequest.headers["X-Meilisearch-Client"]||"Meilisearch JavaScript (v0.41.0)"})}async search(i,s={}){const{limit:n=20,offset:x=0,filter:p=['type = "course_block"'],attributesToHighlight:j=["display_name","description","published"],attributesToCrop:m=["description","published"],sort:g=[]}=s;if(!this.config.indexName)throw new Error("MeiliSearch indexName is required");const c={queries:[{indexUid:this.config.indexName,q:i,filter:[[],...p],attributesToHighlight:j,highlightPreTag:"__meili-highlight__",highlightPostTag:"__/meili-highlight__",attributesToCrop:m,sort:g,offset:x,limit:n},{indexUid:this.config.indexName,facets:["block_type","content.problem_types"],filter:p,limit:0}]},o={...this.headers};try{const d=await fetch(`${this.config.host}/multi-search`,{method:"POST",headers:o,body:JSON.stringify(c)});if(!d.ok)throw new Error(`MeiliSearch API error: ${d.status} ${d.statusText}`);const f=await d.json(),w=f.results[0],u=f.results[1];return{hits:w.hits||[],totalHits:w.estimatedTotalHits||0,facets:u.facetDistribution,processingTimeMs:w.processingTimeMs}}catch(d){throw console.error("MeiliSearch service error:",d),new Error(`Search failed: ${d instanceof Error?d.message:"Unknown error"}`)}}async simpleSearch(i,s={}){const{limit:n=20,offset:x=0,filter:p=['type = "course_block"'],attributesToHighlight:j=["display_name","description","published"],attributesToCrop:m=["description","published"],sort:g=[]}=s,c={queries:[{indexUid:this.config.indexName,q:i,filter:[[],...p],attributesToHighlight:j,highlightPreTag:"__meili-highlight__",highlightPostTag:"__/meili-highlight__",attributesToCrop:m,sort:g,offset:x,limit:n}]},o={...this.headers};try{const d=await fetch(`${this.config.host}/multi-search`,{method:"POST",headers:o,body:JSON.stringify(c)});if(!d.ok)throw new Error(`MeiliSearch API error: ${d.status} ${d.statusText}`);const w=(await d.json()).results[0];return{hits:w.hits||[],totalHits:w.estimatedTotalHits||0,processingTimeMs:w.processingTimeMs}}catch(d){throw console.error("MeiliSearch service error:",d),new Error(`Search failed: ${d instanceof Error?d.message:"Unknown error"}`)}}async checkConnection(){try{return(await fetch(`${this.config.host}/health`,{method:"GET",headers:{Authorization:`Bearer ${this.config.apiKey}`,"X-Meilisearch-Client":"Meilisearch JavaScript (v0.41.0)"}})).ok}catch(i){return console.error("MeiliSearch connection check failed:",i),!1}}}const nr=t=>new zr(t);function sr(t,i){const{contextKey:s,usageKey:n}=t;return s?s.startsWith("course-v1:")?`${i||""}/course/${s}?show=${encodeURIComponent(n||"")}`:s.startsWith("library-v1:")?`${i||""}/library/${s}`:"#":"#"}function qr(t,i,s){const n=sr(t,i);return n==="#"?(console.warn("Could not generate URL for search hit:",t),"#"):(s?s(n):(n.startsWith("http"),window.location.href=n),n)}const Qe=({text:t,highlightTag:i="__meili-highlight__"})=>{if(!t)return null;const s="__/meili-highlight__",n=t.split(i),x=[];return n.forEach((p,j)=>{if(j===0)p&&x.push(p);else{const m=p.indexOf(s);if(m!==-1){const g=p.substring(0,m),c=p.substring(m+s.length);g&&x.push(r.jsx("mark",{className:"search-highlight",children:g},`highlight-${j}`)),c&&x.push(c)}else x.push(r.jsx("mark",{className:"search-highlight",children:p},`highlight-${j}`))}}),r.jsx(r.Fragment,{children:x})};function Vr(t){return{html:"text",video:"video",problem:"quiz",vertical:"folder",sequential:"folder",chapter:"folder",about:"info",static_tab:"text",openassessment:"quiz",lti_consumer:"link",pdf:"file",scorm:"file",itembank:"library",library_content:"library"}[t]||"text"}const Be=({result:t,onNavigate:i,baseUrl:s})=>{var g,c;const n=o=>{var w;o.preventDefault(),o.stopPropagation();const d={id:t.id,blockType:t.block_type||t.type,contextKey:t.context_key,usageKey:t.usage_key,breadcrumbs:((w=t.breadcrumbs)==null?void 0:w.map(u=>({displayName:u.display_name,usageKey:u.usage_key})))||[]};if(t.url){i?i(t.url):window.location.href=t.url;return}qr(d,s,i)==="#"&&(i?i(`/search-result/${t.id}`):window.location.href=`/search-result/${t.id}`)},x=o=>{var w;o.preventDefault(),o.stopPropagation();const d={id:t.id,blockType:t.block_type||t.type,contextKey:t.context_key,usageKey:t.usage_key,breadcrumbs:((w=t.breadcrumbs)==null?void 0:w.map(u=>({displayName:u.display_name,usageKey:u.usage_key})))||[]},f=sr(d,s);f&&f!=="#"&&window.open(f,"_blank")},p=((g=t._formatted)==null?void 0:g.display_name)||t.display_name,j=((c=t._formatted)==null?void 0:c.description)||t.description,m=t.block_type||t.type;return r.jsx("div",{className:"search-result-item",onClick:n,role:"button",tabIndex:0,onKeyDown:o=>{(o.key==="Enter"||o.key===" ")&&n(o)},children:r.jsxs("div",{className:"search-result-content",children:[r.jsx("div",{className:"search-result-icon",children:r.jsx(v.Icon,{src:Vr(m)})}),r.jsxs("div",{className:"search-result-text",children:[r.jsx("div",{className:"search-result-title",children:r.jsx(Qe,{text:p})}),j&&r.jsx("div",{className:"search-result-description",children:r.jsx(Qe,{text:j})}),t.breadcrumbs&&t.breadcrumbs.length>0&&r.jsx("div",{className:"search-result-breadcrumbs",children:t.breadcrumbs.map(o=>o.display_name).join(" / ")})]}),r.jsx("div",{className:"search-result-actions",children:r.jsx(v.IconButton,{src:Ir,iconAs:v.Icon,onClick:x,alt:"Open in new window",size:"sm"})})]})})},er=new Fr,Wr=({logoUrl:t,menuList:i,loginSignupButtons:s,authenticatedUser:n=null,userMenuItems:x,menuAlignment:p,onLanguageChange:j,getBaseUrl:m,meiliSearchConfig:g,headerButtons:c,languageSelectorList:o})=>{const d=Tr(),{toggleSidebar:f,setSidebarCollapsed:w}=Te(),[u,I]=y.useState(()=>er.get("openedx-language-preference")||"en"),[U,E]=y.useState(!1),[D,O]=y.useState(!1),[G,$]=y.useState(!1),[X,H]=y.useState(""),[R,Z]=y.useState([]),[ee,F]=y.useState(!1),[L,V]=y.useState(null),[M,z]=y.useState(0),[C,W]=y.useState(!1),[K,Q]=y.useState(5),oe=y.useRef(null),J=y.useRef(null),ne=y.useRef(g?nr(g):null);console.log("languageSelectorList",o),y.useEffect(()=>{g!=null&&g.client&&ne.current&&ne.current.updateHeadersFromClient(g.client)},[g==null?void 0:g.client]),y.useEffect(()=>()=>{J.current&&clearTimeout(J.current)},[]),y.useEffect(()=>{document.body.dir=u==="ar"?"rtl":"ltr"},[u]),y.useEffect(()=>{d&&w(!0)},[d,w]),y.useEffect(()=>{if(!D)return;function h(N){oe.current&&!oe.current.contains(N.target)&&O(!1)}return document.addEventListener("mousedown",h),()=>{document.removeEventListener("mousedown",h)}},[D]);const se=h=>{I(h),er.set("openedx-language-preference",h,{path:m?m():"/"}),j&&j()},je=p&&{left:"justify-content-start",center:"justify-content-center",right:"justify-content-end"}[p.toLowerCase()]||"justify-content-start",ce=async h=>{if(!h.trim()||!g||!ne.current){Z([]),z(0),$(!1),W(!1);return}F(!0),V(null),$(!1),Q(5);try{const N=await ne.current.simpleSearch(h,{limit:20,offset:0});Z(N.hits),z(N.totalHits),$(N.totalHits===0),W(!0)}catch(N){V(N instanceof Error?N.message:"Search failed"),$(!0),Z([]),z(0)}finally{F(!1)}},le=h=>{H(h),ce(h),d&&U&&E(!1)},ie=h=>{H(h),G&&h.trim()===""&&($(!1),W(!1)),J.current&&clearTimeout(J.current),h.trim().length>0?J.current=setTimeout(()=>{ce(h)},500):(Z([]),z(0),$(!1),W(!1))},ue=()=>{J.current&&(clearTimeout(J.current),J.current=null),H(""),Z([]),z(0),$(!1),W(!1),V(null),F(!1)},ae=()=>{H(""),Z([]),z(0),$(!1),W(!1),V(null),F(!1),Q(5),J.current&&(clearTimeout(J.current),J.current=null)},xe=()=>{Q(h=>Math.min(h+10,R.length))},me=h=>{if(o&&o.length>0){const B=o.find(de=>de[h]);if(B)return B[h]}return{en:"English",ar:"Arabic",hi:"Hindi"}[h]||h.toUpperCase()},ge=()=>(console.log("renderLanguageOptions - languageSelectorList:",o),console.log("renderLanguageOptions - length:",o==null?void 0:o.length),o&&o.length>0?(console.log("Using custom languageSelectorList"),o.map((h,N)=>{const[B,de]=Object.entries(h)[0];return r.jsx(v.Dropdown.Item,{onClick:()=>se(B),children:de},`lang-${B}-${N}`)})):(console.log("Using fallback languages"),r.jsxs(r.Fragment,{children:[r.jsx(v.Dropdown.Item,{onClick:()=>se("en"),children:"English"}),r.jsx(v.Dropdown.Item,{onClick:()=>se("ar"),children:"Arabic"}),r.jsx(v.Dropdown.Item,{onClick:()=>se("hi"),children:"Hindi"})]})));return r.jsxs(v.Navbar,{expand:"lg",className:"navbarContainer py-1",children:[r.jsxs("div",{className:"d-flex align-items-center",children:[r.jsx("div",{className:"toggle-sidebar-icon",children:r.jsx(v.IconButton,{src:Nr,iconAs:v.Icon,alt:"Toggle Sidebar",onClick:f,className:"ms-2 ml-2",onMouseDown:h=>h.stopPropagation()})}),r.jsx(v.Navbar.Brand,{href:"/",className:"navbar-brand",children:r.jsx("img",{src:t,alt:"Logo"})})]}),n!==null&&r.jsx(r.Fragment,{children:d?r.jsx("div",{className:"d-flex justify-content-between align-items-center ml-auto",children:r.jsxs("div",{className:"d-flex align-items-center navbar-buttons",children:[g&&r.jsx(v.IconButton,{src:Ar,iconAs:v.Icon,alt:"Search",onClick:()=>E(!0)}),r.jsx("div",{className:"ml-2 usermenu-dropdown-mobile",children:r.jsx(Xe,{username:n==null?void 0:n.username,authenticatedUserAvatar:n==null?void 0:n.avatar,isMobile:d,isAdmin:n==null?void 0:n.administrator,menuItems:x})}),r.jsx(v.IconButton,{src:Pr,iconAs:v.Icon,alt:"More",onMouseDown:h=>h.stopPropagation(),onClick:()=>O(h=>!h)}),D&&r.jsxs("div",{className:"more-menu-dropdown",ref:oe,children:[r.jsxs("div",{className:"more-menu-icons-row",children:[(c==null?void 0:c.reSync)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Ge,iconAs:v.Icon,alt:"Sync",tooltipPlacement:"bottom",tooltipContent:"Re-Sync"})}),(c==null?void 0:c.contextSwitcher)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Ye,iconAs:v.Icon,alt:"Sync",tooltipPlacement:"bottom",tooltipContent:"Switch to User Mode"})}),(c==null?void 0:c.help)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Je,iconAs:v.Icon,alt:"Help",tooltipPlacement:"bottom",tooltipContent:"Help"})}),(c==null?void 0:c.notification)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Ue,iconAs:v.Icon,alt:"Notifications",tooltipPlacement:"bottom",tooltipContent:"Notifications"})})]}),(c==null?void 0:c.translation)&&r.jsxs(v.Dropdown,{className:"language-dropdown",children:[r.jsx(v.Dropdown.Toggle,{variant:"tertiary",id:"language-dropdown",children:me(u)}),r.jsx(v.Dropdown.Menu,{children:ge()})]})]})]})}):r.jsxs(r.Fragment,{children:[g&&r.jsx("div",{className:"d-flex align-items-center justify-content-start flex-grow-1 ml-4",children:r.jsxs("div",{style:{width:"30rem",position:"relative"},children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",border:"2px solid #ccc",borderRadius:"25px",padding:"8px 16px",background:"#fff",position:"relative"},children:[r.jsx("input",{type:"text",value:X,onChange:h=>{ie(h.target.value)},onKeyDown:h=>{h.key==="Enter"&&le(X)},placeholder:"Search",style:{flex:1,border:"none",outline:"none",fontSize:"16px",background:"transparent",padding:"4px"},autoComplete:"off"}),X&&r.jsx("button",{type:"button",onClick:()=>{ue()},style:{background:"none",border:"none",cursor:"pointer",padding:"4px",marginRight:"8px"},children:"✕"})]}),ee&&r.jsxs("div",{className:"search-loading-spinner-container",children:[r.jsx("div",{className:"search-loading-spinner"}),r.jsx("span",{children:"Searching..."})]}),G&&!ee&&r.jsx("div",{className:"no-results-message-desktop",children:r.jsx("p",{children:"We didn't find anything matching your search"})}),L&&r.jsx("div",{className:"search-error-message-desktop",children:r.jsxs("p",{children:["Search error: ",L]})}),C&&R.length>0&&r.jsxs("div",{className:"search-results-dropdown",children:[r.jsx("div",{className:"search-results-header",children:r.jsxs("span",{children:[M," result",M!==1?"s":""," found"]})}),r.jsxs("div",{className:"search-results-list",children:[R.slice(0,K).map((h,N)=>r.jsx(Be,{result:h,onNavigate:B=>{ae(),window.location.href=B},baseUrl:m?m():void 0},h.id||N)),K<R.length&&r.jsx("div",{className:"search-results-more",children:r.jsxs("button",{onClick:xe,style:{background:"none",border:"none",color:"#007bff",cursor:"pointer",padding:"8px 16px",width:"100%",textAlign:"center",fontSize:"14px"},children:["Show ",Math.min(10,R.length-K)," more results"]})})]})]})]})}),r.jsxs("div",{className:"d-flex align-items-center gap-2 ms-auto order-lg-3",children:[(c==null?void 0:c.reSync)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Ge,iconAs:v.Icon,alt:"Sync",tooltipPlacement:"bottom",tooltipContent:"Re-Sync"})}),(c==null?void 0:c.contextSwitcher)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Ye,iconAs:v.Icon,alt:"Sync",tooltipPlacement:"bottom",tooltipContent:"Switch to User Mode"})}),(c==null?void 0:c.help)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Je,iconAs:v.Icon,alt:"Help",tooltipPlacement:"bottom",tooltipContent:"Help"})}),(c==null?void 0:c.notification)&&r.jsx("div",{className:"icon-curved-square",children:r.jsx(v.IconButtonWithTooltip,{src:Ue,iconAs:v.Icon,alt:"Notifications",tooltipPlacement:"bottom",tooltipContent:"Notifications"})}),(c==null?void 0:c.translation)&&r.jsxs(v.Dropdown,{className:"language-dropdown",children:[r.jsx(v.Dropdown.Toggle,{variant:"tertiary",id:"language-dropdown",children:me(u)}),r.jsx(v.Dropdown.Menu,{children:ge()})]}),r.jsx("div",{className:"usermenu-dropdown",children:r.jsx(Xe,{username:n==null?void 0:n.username,authenticatedUserAvatar:n==null?void 0:n.avatar,isMobile:d,isAdmin:n==null?void 0:n.administrator,menuItems:x})})]})]})}),n===null&&r.jsxs(r.Fragment,{children:[r.jsx(v.Navbar.Toggle,{"aria-controls":"main-navbar-nav"}),r.jsx("div",{className:"d-flex align-items-center gap-2 ms-auto order-lg-3",children:s&&r.jsxs(r.Fragment,{children:[r.jsx(v.Button,{variant:"primary",children:"Log In"}),r.jsx(v.Button,{variant:"outline-primary",children:"Sign Up"})]})})]}),r.jsx(v.Navbar.Collapse,{id:"main-navbar-nav",className:"justify-content-between",children:r.jsx(v.Nav,{className:`nav-gap gap-3 flex-grow-1 ${je}`,children:n===null&&i.map(h=>h.subMenu?r.jsx(v.NavDropdown,{title:h.label,id:`nav-dropdown-${h.label}`,children:h.subMenu.map(N=>r.jsx(v.NavDropdown.Item,{onClick:()=>console.log("Selected submenu:",N.label),children:N.label},`sub-${N.label}`))},`menu-${h.label}`):r.jsx(v.Nav.Link,{as:"span",className:"text-uppercase fw-semibold",children:h.label},`menu-${h.label}`))})}),g&&U&&r.jsxs("div",{className:"fixed-search-bar",children:[r.jsxs("div",{className:"fixed-search-bar-inner",children:[r.jsxs("div",{style:{display:"flex",alignItems:"center",border:"2px solid #ccc",borderRadius:"25px",padding:"12px 16px",background:"#fff",position:"relative",width:"100%"},children:[r.jsx("input",{type:"text",value:X,onChange:h=>{ie(h.target.value)},onKeyDown:h=>{h.key==="Enter"&&le(X)},placeholder:"Search",style:{flex:1,border:"none",outline:"none",fontSize:"18px",background:"transparent",padding:"4px"},autoComplete:"off",autoFocus:!0}),X&&r.jsx("button",{type:"button",onClick:()=>{ue()},style:{background:"none",border:"none",cursor:"pointer",padding:"4px",marginRight:"8px",fontSize:"18px"},children:"✕"})]}),r.jsx("button",{className:"close-search-bar",type:"button",onClick:()=>E(!1),"aria-label":"Close Search",children:"×"})]}),ee&&r.jsxs("div",{className:"search-loading-spinner-container",children:[r.jsx("div",{className:"search-loading-spinner"}),r.jsx("span",{children:"Searching..."})]}),G&&!ee&&r.jsx("div",{className:"no-results-message",children:r.jsx("p",{children:"We didn't find anything matching your search"})}),L&&r.jsx("div",{className:"search-error-message",children:r.jsxs("p",{children:["Search error: ",L]})}),C&&R.length>0&&r.jsxs("div",{className:"search-results-mobile",children:[r.jsx("div",{className:"search-results-header",children:r.jsxs("span",{children:[M," result",M!==1?"s":""," found"]})}),r.jsxs("div",{className:"search-results-list",children:[R.slice(0,K).map((h,N)=>r.jsx(Be,{result:h,onNavigate:B=>{ae(),window.location.href=B},baseUrl:m?m():void 0},h.id||N)),K<R.length&&r.jsx("div",{className:"search-results-more",children:r.jsxs("button",{onClick:xe,style:{background:"none",border:"none",color:"#007bff",cursor:"pointer",padding:"12px 16px",width:"100%",textAlign:"center",fontSize:"16px"},children:["Show ",Math.min(10,R.length-K)," more results"]})})]})]})]})]})},ir=y.createContext(void 0),Kr=({children:t,meiliSearchConfig:i})=>{const[s,n]=y.useState(""),[x,p]=y.useState([]),[j,m]=y.useState(0),[g,c]=y.useState(!1),[o,d]=y.useState(!1),[f,w]=y.useState(null),[u,I]=y.useState(0),[U,E]=y.useState(!1),[D,O]=y.useState(!1),[G,$]=y.useState(null),X=nr(i),H=async F=>{if(!F.trim()){Z();return}c(!0),d(!1),w(null),I(0);try{const L=await X.search(F,{limit:20,offset:0}),V=L.hits.map(C=>{var W,K,Q;return{id:C.id,title:((W=C._formatted)==null?void 0:W.display_name)||C.display_name,type:C.type,url:C.url,description:((K=C._formatted)==null?void 0:K.description)||C.description,block_type:C.block_type,published:((Q=C._formatted)==null?void 0:Q.published)||C.published,_formatted:C._formatted}}),M=L.totalHits,z=V.length===20&&M>V.length;p(V),m(M),E(z),$(L.facets||null)}catch(L){console.error("Search error:",L),d(!0),w(L instanceof Error?L.message:"Search failed"),p([]),m(0),E(!1),$(null)}finally{c(!1)}},R=async()=>{if(!(!U||D)){O(!0);try{const F=u+20,L=await X.simpleSearch(s,{limit:20,offset:F}),V=L.hits.map(C=>{var W,K,Q;return{id:C.id,title:((W=C._formatted)==null?void 0:W.display_name)||C.display_name,type:C.type,url:C.url,description:((K=C._formatted)==null?void 0:K.description)||C.description,block_type:C.block_type,published:((Q=C._formatted)==null?void 0:Q.published)||C.published,_formatted:C._formatted}}),M=L.totalHits,z=V.length===20&&M>x.length+V.length;p(C=>[...C,...V]),m(M),E(z),I(F)}catch(F){console.error("Error fetching next page:",F),d(!0),w(F instanceof Error?F.message:"Failed to load more results")}finally{O(!1)}}},Z=()=>{n(""),p([]),m(0),d(!1),w(null),I(0),E(!1),$(null)},ee={searchKeywords:s,setSearchKeywords:n,searchResults:x,totalHits:j,isLoading:g,hasError:o,errorMessage:f,facets:G,performSearch:H,clearSearch:Z,hasNextPage:U,fetchNextPage:R,isFetchingNextPage:D};return r.jsx(ir.Provider,{value:ee,children:t})},Yr=()=>{const t=y.useContext(ir);if(t===void 0)throw new Error("useSimpleSearch must be used within a SimpleSearchProvider");return t},Jr=t=>{try{if(t.status!==200)throw new Error("Failed to fetch theme config");const i=t.data.theme_colors;if(!i||typeof i!="object")throw new Error("Invalid theme_colors in API response");const s=document.documentElement;for(const n in i)if(Object.prototype.hasOwnProperty.call(i,n)){const x=i[n];s.style.setProperty(`--${n.replace(/_/g,"-")}`,x)}console.log("Theme applied successfully from API:",i)}catch(i){console.error("Error applying theme from API:",i.message);const s={primary:"#2B2399",primary_alt:"#3C32B5",primary_hover:"#E2E1F9",primary_active:"#1F1A7D",primary_light:"#E2E1F9",secondary:"#7A8AFF",secondary_alt:"#5C6EF0",secondary_hover:"#ECEEFF",secondary_active:"#4A5BD1",secondary_light:"#ECEEFF"},n=document.documentElement;for(const x in s)if(Object.prototype.hasOwnProperty.call(s,x)){const p=s[x];n.style.setProperty(`--${x.replace(/_/g,"-")}`,p)}console.log("Fallback theme applied")}};exports.Footer=Or;exports.MainHeader=Wr;exports.Sidebar=kr;exports.SidebarProvider=Rr;exports.SimpleSearchProvider=Kr;exports.dynamicTheme=Jr;exports.useSidebar=Te;exports.useSimpleSearch=Yr;
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- .footer{background-color:#000;padding:1rem 2rem;color:#fff}.container{display:flex;justify-content:space-between;flex-wrap:wrap;height:15rem}.section{flex:1;margin:1rem;min-width:12.5rem;display:flex;flex-direction:column;text-align:left}.section .footer-brand-logo{padding:0;display:flex;align-items:center;margin-bottom:.5rem}.section .footer-brand-logo img{max-width:100%;height:auto;object-fit:contain;max-height:5rem}.left{order:1;align-items:flex-start}.center{order:2;align-items:center}.right{order:3;align-items:flex-end}.section h3{color:#fff;margin-bottom:1rem}.section ul{list-style:none;padding:0}.section ul li{margin-bottom:.625rem}.section ul li a{color:#fff;text-decoration:none}.section ul li a:hover{text-decoration:underline}.copyright{text-align:center;margin-top:1.25rem;font-size:.875rem;color:#737477}.h3Adjust{margin-left:-1.5rem}.sidebar{width:200px;min-height:100vh;background-color:var(--bg-surface);border-right:1px solid var(--border-color);position:relative;transition:all .3s ease;display:flex;flex-direction:column;padding:0;z-index:101;transition:width .3s cubic-bezier(.4,0,.2,1);overflow:visible}.sidebar.collapsed{width:80px;min-width:50px;padding:0;transition:width .3s cubic-bezier(.4,0,.2,1)}.sidebar.collapsed .sidebar-btn{padding:14px 0 14px 10px;justify-content:center;position:relative;z-index:25}.sidebar.collapsed .sidebar-btn .btn-content{flex-direction:column;align-items:center;gap:0}.sidebar.collapsed .sidebar-btn .btn-content .btn-label{display:none;opacity:0;max-width:0;margin-left:0}.sidebar.non-standard-route:not(.collapsed){width:200px;position:fixed;top:6rem;left:0;z-index:1000;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s ease;transform:translate(0);margin-right:80px}.sidebar .sidebar-buttons{display:flex;flex-direction:column;gap:4px;margin-top:1.5rem;margin-right:1rem}.sidebar .sidebar-btn{display:flex;align-items:center;justify-content:flex-start;width:100%;padding:14px 10px;border-radius:0 32px 32px 0;background:transparent;color:var(--text-secondary);font-weight:500;font-size:16px;border:none;transition:background .2s,color .2s;margin:2px 0;text-align:left}.sidebar .sidebar-btn .btn-content{display:flex;flex-direction:row;align-items:center;width:100%}.sidebar .sidebar-btn .icon-container{font-size:22px;display:flex;align-items:center;justify-content:center;min-width:28px}.sidebar .sidebar-btn .btn-label{font-size:14px;font-weight:500;color:inherit;white-space:nowrap;transition:opacity .2s,max-width .2s,margin .2s;opacity:1;max-width:200px;margin-left:.5rem}.pgn-btn-active{background:var(--primary)!important;color:var(--text-white)!important}.pgn-btn-active:hover{background-color:var(--primary-light)!important;color:var(--primary)!important}.pgn-btn-active:hover .icon-container,.pgn-btn-active:hover .btn-label{color:var(--primary)!important}.pgn-btn-active .icon-container,.pgn-btn-active .btn-label{color:var(--text-white)!important}.sidebar-btn.pgn-btn-inactive{color:var(--text-secondary)!important}.sidebar-btn.pgn-btn-inactive:hover{color:var(--primary)!important}.sidebar-extra-space{width:80px}[dir=rtl] .sidebar .tooltip.bs-tooltip-left{margin-right:8px}[dir=rtl] .sidebar.collapsed .tooltip.bs-tooltip-left{transform:translate(-4px)}.mainHeaderContainer{display:flex}.navbarContainer{background-color:var(--bg-surface);box-shadow:0 2px 4px #0000001a;height:6rem;position:relative;display:flex;align-items:center;padding-right:3rem}.navbarContainer .navbar-brand{padding:0;display:flex;align-items:center;margin:0}.navbarContainer .navbar-brand img{max-width:100%;height:auto;object-fit:contain;max-height:5rem;padding-top:.5rem;padding-bottom:.5rem}.navbarContainer .navbar-collapse{background-color:var(--c8);border-radius:0 0 .5rem .5rem;padding:1rem}.navbarContainer .d-flex.align-items-center.justify-content-center{position:absolute;left:50%;transform:translate(-50%);width:auto;z-index:1}.navbarContainer .toggle-sidebar-icon{display:flex;align-items:center;margin:0;margin-right:1rem}.navbarContainer .search-field-custom{max-width:30rem}@media (max-width: 767px){.navbarContainer{padding-right:.25rem;display:flex;align-items:center;gap:.25rem;height:5rem;justify-content:flex-start}.navbarContainer .navbar-brand img{max-width:5rem;height:auto;object-fit:contain;max-height:5rem;padding-top:.2rem;padding-bottom:.2rem}.navbarContainer .toggle-sidebar-icon{margin:0;padding:0}.navbarContainer .more-menu-dropdown{position:absolute;top:100%;right:1rem;background-color:var(--bg-surface);border-radius:.5rem;box-shadow:0 2px 8px #00000026;padding:1rem;z-index:1000;display:flex;flex-direction:column;min-width:200px}.navbarContainer .more-menu-dropdown .more-menu-icons-row{display:flex;flex-direction:row;gap:.5rem;width:100%;margin-bottom:.5rem}.navbarContainer .more-menu-dropdown .more-menu-icons-row .icon-curved-square{flex:1;display:flex}.navbarContainer .more-menu-dropdown .more-menu-icons-row .icon-curved-square .btn-icon{width:100%;height:100%;padding:.5rem;display:flex;align-items:center;justify-content:center}.navbarContainer .more-menu-dropdown .language-dropdown{width:100%;margin-top:.5rem;margin-bottom:.5rem}.navbarContainer .toggle-sidebar-icon{margin-left:0;padding-left:0}}.buttonListContainer{display:grid;grid-template-columns:1fr auto;align-items:center;flex:1}.navbarList{display:flex;gap:2rem;padding:0;margin:0;list-style-type:none}.navbarList li{cursor:pointer;color:var(--c6)}.navbarList li:hover{color:var(--c2)}.navbarButtons{display:flex;gap:.5rem;margin-left:auto}.navbarListLeft{justify-self:start;margin-left:4rem}.navbarListCenter{justify-self:center}.navbarListRight{justify-self:end;margin-right:4rem}.menuButton{padding:.75rem 1.25rem;font-weight:600;text-transform:uppercase;color:var(--c6);background-color:var(--bg-surface);outline:none!important;border-color:var(--bg-surface)!important;width:8rem}.mainHeaderContainer{display:flex;position:relative}.nav-gap{gap:3rem}.dropdown-menu{min-width:15rem!important}.search-field-custom{background:var(--bg-surface);border:2px solid var(--primary-light)!important;border-radius:30px!important;padding:.3rem .6rem!important;display:flex;align-items:center;box-shadow:none!important;min-height:35px;position:relative;pointer-events:auto!important}.search-field-custom input{background:transparent!important;border:none!important;box-shadow:none!important;color:var(--text-light)!important;font-size:1.1rem;font-weight:500;pointer-events:auto!important;-webkit-user-select:text!important;user-select:text!important}.search-field-custom input::placeholder{color:var(--text-secondary, #697586)!important;opacity:1}.search-field-custom .pgn__searchfield-form{outline:none!important;border:none!important}.search-field-custom input:focus{outline:none!important;box-shadow:none!important}.pgn__searchfield.has-focus:not(.pgn__searchfield--external):after{border:none!important}.pgn__searchfield:hover,.pgn__searchfield:active{border:2px solid var(--primary)!important}.icon-curved-square .btn-icon.btn-icon-primary{background-color:var(--primary-light)!important;margin-right:1rem}.icon-curved-square .btn-icon.btn-icon-primary:hover,.icon-curved-square .btn-icon.btn-icon-primary:active{background-color:var(--primary)!important;color:var(--primary-light)!important}.icon-curved-square .btn-icon.btn-icon-primary:focus{background-color:var(--primary-light);color:var(--primary)}.icon-curved-square .btn-icon.btn-icon-primary:focus:hover{background-color:var(--primary)!important;color:var(--primary-light)!important}.language-dropdown .btn-tertiary{background-color:var(--primary-light);border-radius:25px}.language-dropdown .btn-tertiary:hover{background-color:var(--primary)!important;color:var(--primary-light)!important}.language-dropdown .btn-tertiary.dropdown-toggle{background-color:var(--primary-light)!important;color:var(--primary)!important}.language-dropdown .btn-tertiary.dropdown-toggle:hover{background-color:var(--primary)!important;color:var(--primary-light)!important}.usermenu-dropdown{margin-left:1rem}.usermenu-dropdown .btn-tertiary{border-radius:10px}.toggle-sidebar-icon .btn-icon.btn-icon-primary{background-color:var(--primary-light)}.toggle-sidebar-icon .btn-icon.btn-icon-primary:hover{background-color:var(--primary);color:var(--primary-light)!important}.toggle-sidebar-icon .btn-icon.btn-icon-primary:active{background-color:var(--primary)!important;color:var(--primary-light)!important}.toggle-sidebar-icon .btn-icon.btn-icon-primary:focus{background-color:var(--primary-light);color:var(--primary)}.toggle-sidebar-icon .btn-icon.btn-icon-primary:focus:hover{background-color:var(--primary)!important;color:var(--primary-light)!important}.search-modal .modal-content{border-radius:.5rem}.search-modal .modal-header{border-bottom:none;padding:1rem 1.5rem}.search-modal .modal-body{padding:0 1.5rem 1.5rem}.fixed-search-bar{position:fixed;top:0;left:0;width:100vw;z-index:2000;background:#fffffffa;box-shadow:0 2px 8px #0000001a;padding:1rem .5rem;display:flex;justify-content:center;align-items:center}.fixed-search-bar-inner{width:100%;max-width:600px;position:relative;display:flex;align-items:center}.fixed-search-bar .close-search-bar{background:none;border:none;font-size:2rem;color:var(--text-muted);margin-left:.5rem;cursor:pointer;line-height:1;transition:color .2s}.fixed-search-bar .close-search-bar:hover{color:var(--text-primary)}.no-results-message{text-align:center;padding:1rem;margin-top:1rem;color:var(--text-muted);font-size:1rem;background-color:var(--bg-surface);border-radius:.5rem;border:1px solid var(--border-color)}.no-results-message p{margin:0;font-weight:400}.no-results-message-desktop{position:absolute;top:100%;left:0;right:0;z-index:1000;background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 2px 8px #0000001a;padding:1rem;margin-top:.5rem;text-align:center;color:var(--text-muted);font-size:.9rem}.no-results-message-desktop p{margin:0;font-weight:400}.search-loading-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border-color);border-top:2px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin-right:8px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.search-loading-spinner-container{position:absolute;top:100%;left:0;right:0;z-index:1000;background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 2px 8px #0000001a;padding:1rem;margin-top:.5rem;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.9rem}.search-error-message-desktop{position:absolute;top:100%;left:0;right:0;z-index:1000;background-color:var(--bg-surface);border:1px solid var(--danger);border-radius:.5rem;box-shadow:0 2px 8px #0000001a;padding:1rem;margin-top:.5rem;text-align:center;color:var(--danger);font-size:.9rem}.search-error-message-desktop p{margin:0;font-weight:400}.search-results-dropdown{position:absolute;top:100%;left:0;right:0;z-index:1000;background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 4px 12px #00000026;margin-top:.5rem;max-height:400px;overflow-y:auto}.search-results-dropdown .search-results-header{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);background-color:var(--bg-body);font-size:.875rem;font-weight:600;color:var(--text-muted)}.search-results-dropdown .search-results-list{max-height:300px;overflow-y:auto}.search-results-dropdown .search-result-item{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color .2s}.search-results-dropdown .search-result-item:hover{background-color:var(--bg-hover)}.search-results-dropdown .search-result-item:last-child{border-bottom:none}.search-results-dropdown .search-result-item .search-result-content{display:flex;align-items:flex-start;gap:.75rem}.search-results-dropdown .search-result-item .search-result-icon{flex-shrink:0;margin-top:.125rem;color:var(--text-muted)}.search-results-dropdown .search-result-item .search-result-text{flex:1;min-width:0}.search-results-dropdown .search-result-item .search-result-title{font-weight:600;color:var(--text-primary);margin-bottom:.25rem;font-size:.9rem;line-height:1.3}.search-results-dropdown .search-result-item .search-result-description{color:var(--text-muted);font-size:.8rem;line-height:1.4;margin-bottom:.5rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-results-dropdown .search-result-item .search-result-breadcrumbs{color:var(--text-muted);font-size:.75rem;line-height:1.2;margin-top:.25rem}.search-results-dropdown .search-result-item .search-result-actions{flex-shrink:0;margin-top:.125rem}.search-results-dropdown .search-result-item .search-result-meta{display:flex;align-items:center;gap:.5rem}.search-results-dropdown .search-result-item .search-result-meta .search-result-type{background-color:var(--bg-surface);color:var(--text-muted);padding:.125rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500;text-transform:uppercase}.search-results-dropdown .search-highlight{background-color:var(--bg-hover);padding:.125rem .25rem;border-radius:.25rem;font-weight:600}.search-results-dropdown .search-results-more{padding:0;text-align:center;background-color:var(--bg-body);border-top:1px solid var(--border-color)}.search-results-dropdown .search-results-more button{background:none;border:none;color:var(--primary);cursor:pointer;padding:8px 16px;width:100%;text-align:center;font-size:14px;transition:background-color .2s}.search-results-dropdown .search-results-more button:hover{background-color:var(--bg-hover)}.search-results-mobile{margin-top:1rem;background-color:var(--bg-surface);border-radius:.5rem;box-shadow:0 2px 8px #0000001a;max-height:60vh;overflow-y:auto}.search-results-mobile .search-results-header{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);background-color:var(--bg-body);font-size:.875rem;font-weight:600;color:var(--text-muted)}.search-results-mobile .search-results-list{max-height:50vh;overflow-y:auto}.search-results-mobile .search-result-item{padding:1rem;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color .2s}.search-results-mobile .search-result-item:hover{background-color:var(--bg-hover)}.search-results-mobile .search-result-item:last-child{border-bottom:none}.search-results-mobile .search-result-item .search-result-content{display:flex;align-items:flex-start;gap:1rem}.search-results-mobile .search-result-item .search-result-icon{flex-shrink:0;margin-top:.25rem;color:var(--text-muted)}.search-results-mobile .search-result-item .search-result-text{flex:1;min-width:0}.search-results-mobile .search-result-item .search-result-title{font-weight:600;color:var(--text-primary);margin-bottom:.5rem;font-size:1rem;line-height:1.3}.search-results-mobile .search-result-item .search-result-description{color:var(--text-muted);font-size:.875rem;line-height:1.4;margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.search-results-mobile .search-result-item .search-result-breadcrumbs{color:var(--text-muted);font-size:.8rem;line-height:1.2;margin-top:.5rem}.search-results-mobile .search-result-item .search-result-actions{flex-shrink:0;margin-top:.25rem}.search-results-mobile .search-result-item .search-result-meta{display:flex;align-items:center;gap:.5rem}.search-results-mobile .search-result-item .search-result-meta .search-result-type{background-color:var(--bg-hover);color:var(--text-secondary);padding:.25rem .75rem;border-radius:.375rem;font-size:.75rem;font-weight:500;text-transform:uppercase}.search-error-message{margin-top:1rem;padding:1rem;background-color:var(--bg-disabled);border:1px solid var(--danger);border-radius:.5rem;color:var(--danger);text-align:center}.search-error-message p{margin:0;font-weight:400}.navbar-buttons .btn-icon.btn-icon-primary{background-color:var(--primary-light)}.navbar-buttons .btn-icon.btn-icon-primary:hover{background-color:var(--primary);color:var(--primary-light)!important}.navbar-buttons .btn-icon.btn-icon-primary:active{background-color:var(--primary)!important;color:var(--primary-light)!important}.navbar-buttons .btn-icon.btn-icon-primary:focus{background-color:var(--primary-light);color:var(--primary)}.navbar-buttons .btn-icon.btn-icon-primary:focus:hover{background-color:var(--primary)!important;color:var(--primary-light)!important}.usermenu-dropdown-mobile .btn-tertiary{background-color:var(--primary-light);border-radius:25px}.usermenu-dropdown-mobile .btn-tertiary:hover{background-color:var(--primary)!important;color:var(--primary-light)!important}.usermenu-dropdown-mobile .btn-tertiary.dropdown-toggle{background-color:var(--primary-light)!important;color:var(--primary)!important}.usermenu-dropdown-mobile .btn-tertiary.dropdown-toggle:hover{background-color:var(--primary)!important;color:var(--primary-light)!important}:root{--primary: #2B2399;--primary-alt: #3C32B5;--primary-hover: #E2E1F9;--primary-active: #1F1A7D;--primary-light: #E2E1F9;--secondary: #7A8AFF;--secondary-alt: #5C6EF0;--secondary-hover: #ECEEFF;--secondary-active: #4A5BD1;--secondary-light: #ECEEFF;--disabled: #bdbdbd;--success: #358F0A;--success-hover: #2d7908;--success-light: #eaf6e6;--warning: #FFCD29;--warning-hover: #e6b800;--warning-light: #fff8e6;--danger: #dc3545;--danger-hover: #c82333;--danger-light: #fbecec;--info: #0B8E77;--info-hover: #097a66;--info-light: #e6f5f2;--text-primary: #121926;--text-secondary: #9e9f9e;--text-muted: #6b7280;--text-light: #364152;--text-white: #ffffff;--bg-body: #f4f7ff;--bg-surface: #ffffff;--bg-hover: #f9fafb;--bg-disabled: #e5e7eb;--border-color: #e5e6e6;--border-color-hover: #d1d5db}.btn{border-radius:4px;font-weight:500;transition:all .2s ease-in-out}.btn-primary{color:var(--primary-light)!important;background-color:var(--primary)!important;border-color:var(--primary)!important;border-radius:8px!important}.btn-primary:hover{background-color:var(--primary-hover)!important;border-color:var(--primary-hover)!important;color:var(--primary-alt)!important}.btn-primary:active,.btn-primary.active{background-color:var(--primary-active)!important;border-color:var(--primary-active)!important;color:var(--primary-light)!important}.btn-primary:disabled{background-color:var(--disabled)!important;border-color:var(--disabled)!important;color:var(--primary-alt)!important}.btn-primary:focus:before{border:none!important}.btn-primary:focus-visible{outline:none!important}.btn-outline-primary{color:var(--primary)!important;border-color:var(--primary)!important;background-color:transparent!important;border-radius:8px!important}.btn-outline-primary:hover{color:var(--primary-light)!important;background-color:var(--primary)!important;border-color:var(--primary)!important}.btn-outline-primary:active,.btn-outline-primary.active{color:var(--primary-light)!important;background-color:var(--primary-active)!important;border-color:var(--primary-active)!important}.btn-outline-primary:disabled{color:var(--disabled)!important;border-color:var(--disabled)!important}.btn-outline-primary:focus:before{border:none!important}.btn-outline-primary:focus-visible{outline:none!important}.btn-secondary{color:var(--primary-light)!important;background-color:var(--secondary)!important;border-color:var(--secondary)!important;border-radius:8px!important}.btn-secondary:hover{background-color:var(--secondary-hover)!important;border-color:var(--secondary-hover)!important;color:var(--secondary-hover)!important}.btn-secondary:active,.btn-secondary.active{background-color:var(--secondary-active)!important;border-color:var(--secondary-active)!important}.btn-secondary:disabled{background-color:var(--disabled)!important;border-color:var(--disabled)!important;color:var(--primary-alt)!important}.btn-secondary:focus-visible{outline:none!important}.btn-outline-secondary{color:var(--secondary);border-color:var(--secondary);background-color:transparent;border-radius:8px}.btn-outline-secondary:hover{color:var(--primary-light);background-color:var(--secondary);border-color:var(--secondary)}.btn-outline-secondary:active,.btn-outline-secondary.active{color:var(--primary-light)!important;background-color:var(--secondary-active)!important;border-color:var(--secondary-active)!important}.btn-outline-secondary:disabled{color:var(--disabled)!important;border-color:var(--disabled)!important}.btn-outline-secondary:focus:before{border:none!important}.btn-outline-secondary:focus-visible{outline:none!important}.btn-tertiary{color:var(--primary)!important;background-color:transparent;border:none!important;border-radius:8px}.btn-tertiary:hover{color:var(--primary-light);background-color:var(--primary-light)!important}.btn-tertiary:active,.btn-tertiary.active{color:var(--primary-active)!important;background-color:var(--primary-light)!important}.btn-tertiary:disabled{color:var(--disabled)!important}.btn-tertiary:focus:before{border:none!important;border:solid 2px transparent}.btn-tertiary:focus-visible{outline:none!important}.btn-outline-tertiary{color:var(--primary)!important;background-color:transparent!important;border:none!important;border-radius:8px}.btn-outline-tertiary:hover{color:var(--primary-hover);background-color:var(--primary-light)}.btn-outline-tertiary:active,.btn-outline-tertiary.active{color:var(--primary-active)!important;background-color:var(--primary-light)!important}.btn-outline-tertiary:disabled{color:var(--disabled)!important}.btn-outline-tertiary:focus:before{border:none!important}.btn-outline-tertiary:focus-visible{outline:none!important}.dropdown-menu{border-radius:4px;border:1px solid rgba(0,0,0,.1);box-shadow:0 2px 4px #0000001a;padding:.5rem 0}.dropdown-item{color:#333;padding:.5rem 1rem}.dropdown-item:hover{background-color:var(--primary-light);color:var(--primary)}.dropdown-item:active,.dropdown-item.active{background-color:var(--primary);color:#fff}.dropdown-item:disabled{color:rgba(var(--secondary-rgb),.5)}.form-control{border-radius:8px;border:1px solid #ced4da}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(var(--primary-rgb),.25)}.form-control:disabled{background-color:#e9ecef}.badge{font-weight:500;padding:.35em .65em;border-radius:4px}.badge-primary{background-color:var(--primary)!important;color:#fff}.badge-secondary{background-color:var(--secondary);color:#fff}.alert{border-radius:4px;border:1px solid transparent}.alert-primary{background-color:var(--primary-light);border-color:var(--primary);color:var(--primary)}.pgn__bubble.pgn__bubble-primary{background-color:var(--primary);color:#fff}.pgn__data-table th{color:var(--secondary)}.pgn__data-table .pgn__data-table-cell-wrap{max-width:unset}.pgn__data-table .pgn__data-table-footer{border-top:none;justify-content:center}.card{border-radius:16px;box-shadow:none!important}.nav-link{color:var(--secondary)}.nav-link:hover{color:var(--primary)}.nav-link.active{color:var(--primary);font-weight:500}.nav-tabs .nav-link.active:focus:before,.nav-tabs .nav-link:focus:before,.nav-tabs .nav-link:focus-visible:before{border:none!important}.nav-tabs .nav-link{color:var(--text-primary)!important}.nav-tabs .nav-link.active{color:var(--primary)!important;border-bottom:2px solid var(--primary)!important}.pgn__modal .pgn__modal-header{padding:1.5rem;border-bottom:1px solid rgba(0,0,0,.1)}.pgn__modal .pgn__modal-header h2{color:var(--primary);font-size:1.375rem;line-height:1.75rem}.pgn__modal .pgn__modal-footer{padding:1rem 1.5rem;border-top:1px solid rgba(0,0,0,.1)}.pgn__form-group{margin-bottom:1rem}.pgn__form-group .pgn__form-label{font-weight:500;font-size:.875rem;color:var(--text-primary);margin-bottom:.5rem}.pgn__form-group .pgn__form-control-description{font-size:.75rem;color:var(--text-primary);margin-top:.25rem}.pgn__form-checkbox,.pgn__form-radio{margin:.5rem 0;display:flex;align-items:flex-start}.pgn__form-checkbox input,.pgn__form-radio input{margin-right:.5rem;margin-top:.25rem}.pgn__form-checkbox.pgn__form-control-disabled,.pgn__form-radio.pgn__form-control-disabled{opacity:.5;cursor:not-allowed}.pgn__form-checkbox-input,.pgn__form-radio-input{width:1rem;height:1rem}.pgn__form-checkbox-input:checked,.pgn__form-radio-input:checked{background-color:var(--primary);border-color:var(--primary)}.pgn__form-checkbox-input:focus,.pgn__form-radio-input:focus{box-shadow:0 0 0 .2rem rgba(var(--primary-rgb),.25);border-color:var(--primary)}.pgn__selectable_box{border:1px solid rgba(0,0,0,.1);border-radius:4px;padding:1rem;transition:all .2s ease-in-out;cursor:pointer}.pgn__selectable_box:hover,.pgn__selectable_box.pgn__selectable_box-active{border-color:var(--primary);background-color:var(--primary-light)}.pgn__selectable_box.pgn__selectable_box-invalid{border-color:var(--danger)}.pgn__selectable_box-set{display:grid;gap:1rem;margin:1rem 0}.btn-success{color:#fff;background-color:var(--success);border-color:var(--success)}.btn-success:hover{background-color:var(--success-hover);border-color:var(--success-hover)}.btn-success:active,.btn-success.active{background-color:var(--success-hover)!important;border-color:var(--success-hover)!important}.btn-success:disabled{opacity:.5}.btn-warning{color:#000;background-color:var(--warning);border-color:var(--warning)}.btn-warning:hover{background-color:var(--warning-hover);border-color:var(--warning-hover)}.btn-warning:active,.btn-warning.active{background-color:var(--warning-hover)!important;border-color:var(--warning-hover)!important}.btn-warning:disabled{opacity:.5}.btn-danger{color:#fff;background-color:var(--danger);border-color:var(--danger)}.btn-danger:hover{background-color:var(--danger-hover);border-color:var(--danger-hover)}.btn-danger:active,.btn-danger.active{background-color:var(--danger-hover)!important;border-color:var(--danger-hover)!important}.btn-danger:disabled{opacity:.5}.btn-info{color:#fff;background-color:var(--info);border-color:var(--info)}.btn-info:hover{background-color:var(--info-hover);border-color:var(--info-hover)}.btn-info:active,.btn-info.active{background-color:var(--info-hover)!important;border-color:var(--info-hover)!important}.btn-info:disabled{opacity:.5}.btn-icon:focus{color:var(--primary)!important}.btn-icon.btn-icon-primary{color:var(--primary)}.btn-icon.btn-icon-primary:hover{color:var(--primary-alt)!important;background-color:var(--primary-hover);border-color:var(--primary-hover)}.btn-icon.btn-icon-primary:active,.btn-icon.btn-icon-primary.active{color:var(--primary-light)!important;background-color:var(--primary-active)!important;border-color:var(--primary-active)!important}.btn-icon.btn-icon-primary:disabled{color:var(--disabled)!important}.btn-icon.btn-icon-primary:focus{box-shadow:none!important}.btn-icon.btn-icon-secondary{color:var(--secondary)}.btn-icon.btn-icon-secondary:hover{color:var(--secondary-alt)!important;background-color:var(--secondary-hover);border-color:var(--secondary-hover)}.btn-icon.btn-icon-secondary:active,.btn-icon.btn-icon-secondary.active{color:var(--secondary-light)!important;background-color:var(--secondary-active)!important;border-color:var(--secondary-active)!important}.btn-icon.btn-icon-secondary:disabled{color:var(--disabled)!important}.btn-icon.btn-icon-secondary:focus{box-shadow:none!important}.btn-icon.btn-outline-primary{color:var(--primary);border-color:var(--primary);background-color:transparent}.btn-icon.btn-outline-primary .pgn__icon{color:var(--primary)}.btn-icon.btn-outline-primary:hover{color:var(--primary-light);background-color:var(--primary);border-color:var(--primary)}.btn-icon.btn-outline-primary:hover .pgn__icon{color:var(--primary-light)}.btn-icon.btn-outline-primary:active,.btn-icon.btn-outline-primary.active{color:var(--primary-light)!important;background-color:var(--primary-active)!important;border-color:var(--primary-active)!important}.btn-icon.btn-outline-primary:active .pgn__icon,.btn-icon.btn-outline-primary.active .pgn__icon{color:var(--primary-light)!important}.btn-icon.btn-outline-primary:disabled{color:var(--disabled)!important;border-color:var(--disabled)!important}.btn-icon.btn-outline-primary:disabled .pgn__icon{color:var(--disabled)!important}.btn-icon.btn-outline-secondary{color:var(--secondary);border-color:var(--secondary);background-color:transparent}.btn-icon.btn-outline-secondary .pgn__icon{color:var(--secondary)}.btn-icon.btn-outline-secondary:hover{color:var(--primary-light);background-color:var(--secondary);border-color:var(--secondary)}.btn-icon.btn-outline-secondary:hover .pgn__icon{color:var(--primary-light)}.btn-icon.btn-outline-secondary:active,.btn-icon.btn-outline-secondary.active{color:var(--primary-light)!important;background-color:var(--secondary-active)!important;border-color:var(--secondary-active)!important}.btn-icon.btn-outline-secondary:active .pgn__icon,.btn-icon.btn-outline-secondary.active .pgn__icon{color:var(--primary-light)!important}.btn-icon.btn-outline-secondary:disabled{color:var(--disabled)!important;border-color:var(--disabled)!important}.btn-icon.btn-outline-secondary:disabled .pgn__icon{color:var(--disabled)!important}.btn-icon.btn-tertiary{color:var(--primary);background-color:transparent;border:none}.btn-icon.btn-tertiary .dropdown-toggle{background-color:var(--primary-light)!important}.btn-icon.btn-tertiary .pgn__icon{color:var(--primary)}.btn-icon.btn-tertiary:hover{color:var(--primary-hover);background-color:var(--primary-light)}.btn-icon.btn-tertiary:hover .pgn__icon{color:var(--primary-hover)}.btn-icon.btn-tertiary:active,.btn-icon.btn-tertiary.active{color:var(--primary-active)!important;background-color:var(--primary-light)!important}.btn-icon.btn-tertiary:active .pgn__icon,.btn-icon.btn-tertiary.active .pgn__icon{color:var(--primary-active)!important}.btn-icon.btn-tertiary:disabled{color:var(--disabled)!important}.btn-icon.btn-tertiary:disabled .pgn__icon{color:var(--disabled)!important}.text-primary{color:var(--text-primary)!important}.text-secondary{color:var(--text-secondary)!important}.text-success{color:var(--success)!important}.text-warning{color:var(--warning)!important}.text-danger{color:var(--danger)!important}.text-info{color:var(--info)!important}.pgn__icon.text-primary{color:var(--text-primary)!important}.pgn__icon.text-secondary{color:var(--text-secondary)!important}.pgn__icon.text-success{color:var(--success)!important}.pgn__icon.text-warning{color:var(--warning)!important}.pgn__icon.text-danger{color:var(--danger)!important}.pgn__icon.text-info{color:var(--info)!important}.cursor-pointer{cursor:pointer}.custom-outline-section .row{box-shadow:none!important;border:1px solid #e1e1e1}[data-tooltip]{position:relative;margin:0 5px;height:20px}[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;left:50%;transform:translate(-50%);top:calc(100% + 8px);padding:8px 12px;background:var(--text-primary);color:var(--text-white);border-radius:6px;box-shadow:0 4px 8px #0003;white-space:normal;z-index:10;font-size:12px;line-height:1.4;max-width:250px;width:max-content;text-align:center}[data-tooltip]:hover:before{content:"";position:absolute;left:50%;transform:translate(-50%);top:100%;border:6px solid transparent;border-bottom-color:var(--text-primary);z-index:11}.ca-breadcrumb-bg{width:100%;padding:.5rem 0 0}.ca-breadcrumb-container{margin:0 auto;padding:0 32px}.ca-breadcrumb{color:#b0b7c3;font-size:14px;margin-bottom:8px}.ca-breadcrumb .ca-breadcrumb-icon{opacity:.7}.ca-breadcrumb .ca-breadcrumb-icon .custom-icon{width:16px;height:16px;margin-right:4px}.ca-breadcrumb .ca-breadcrumb-divider{margin:0 8px}.ca-breadcrumb .ca-breadcrumb-current{color:#6b7280}.ca-title{font-weight:600;font-size:20px;color:#22223b}.ca-main-layout{display:flex;min-height:100vh;align-items:flex-start}.ca-sidebar{min-width:220px;max-width:260px;background:transparent;z-index:2;border-radius:0!important;padding-bottom:0!important;box-sizing:border-box;margin:16px 0 0 16px;border-radius:16px;position:sticky;top:32px;align-self:flex-start;overflow-y:auto;overflow-x:hidden;height:calc(100vh - 32px);max-height:calc(100vh - 32px)}.ca-main-content{flex:1;padding-top:1rem}.ca-mobile-nav{display:none;width:100%;padding:16px;padding-left:1.5rem;padding-right:1.5rem;border-bottom:1px solid #eee}.ca-mobile-nav-select{width:100%;padding:12px 30px 12px 12px;font-size:1rem;border:1px solid #ccc;border-radius:8px;background-color:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%236c757d%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E);background-repeat:no-repeat;background-position:right 10px center;background-size:10px 10px}@media (max-width: 768px){.ca-sidebar{display:none}.ca-mobile-nav{display:block}.ca-main-layout{flex-direction:column}}
1
+ .footer{background-color:#000;padding:1rem 2rem;color:#fff}.container{display:flex;justify-content:space-between;flex-wrap:wrap;height:15rem}.section{flex:1;margin:1rem;min-width:12.5rem;display:flex;flex-direction:column;text-align:left}.section .footer-brand-logo{padding:0;display:flex;align-items:center;margin-bottom:.5rem}.section .footer-brand-logo img{max-width:100%;height:auto;object-fit:contain;max-height:5rem}.left{order:1;align-items:flex-start}.center{order:2;align-items:center}.right{order:3;align-items:flex-end}.section h3{color:#fff;margin-bottom:1rem}.section ul{list-style:none;padding:0}.section ul li{margin-bottom:.625rem}.section ul li a{color:#fff;text-decoration:none}.section ul li a:hover{text-decoration:underline}.copyright{text-align:center;margin-top:1.25rem;font-size:.875rem;color:#737477}.h3Adjust{margin-left:-1.5rem}.sidebar{width:200px;min-height:100vh;background-color:var(--bg-surface);border-right:1px solid var(--border-color);position:relative;transition:all .3s ease;display:flex;flex-direction:column;padding:0;z-index:101;transition:width .3s cubic-bezier(.4,0,.2,1);overflow:visible}.sidebar.collapsed{width:80px;min-width:50px;padding:0;transition:width .3s cubic-bezier(.4,0,.2,1)}.sidebar.collapsed .sidebar-btn{padding:14px 0 14px 10px;justify-content:center;position:relative;z-index:25}.sidebar.collapsed .sidebar-btn .btn-content{flex-direction:column;align-items:center;gap:0}.sidebar.collapsed .sidebar-btn .btn-content .btn-label{display:none;opacity:0;max-width:0;margin-left:0}.sidebar.non-standard-route:not(.collapsed){width:200px;position:fixed;top:6rem;left:0;z-index:1000;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s ease;transform:translate(0);margin-right:80px}.sidebar .sidebar-buttons{display:flex;flex-direction:column;gap:4px;margin-top:1.5rem;margin-right:1rem}.sidebar .sidebar-btn{display:flex;align-items:center;justify-content:flex-start;width:100%;padding:14px 10px;border-radius:0 32px 32px 0;background:transparent;color:var(--text-secondary);font-weight:500;font-size:16px;border:none;transition:background .2s,color .2s;margin:2px 0;text-align:left}.sidebar .sidebar-btn .btn-content{display:flex;flex-direction:row;align-items:center;width:100%}.sidebar .sidebar-btn .icon-container{font-size:22px;display:flex;align-items:center;justify-content:center;min-width:28px}.sidebar .sidebar-btn .btn-label{font-size:14px;font-weight:500;color:inherit;white-space:nowrap;transition:opacity .2s,max-width .2s,margin .2s;opacity:1;max-width:200px;margin-left:.5rem}.pgn-btn-active{background:var(--primary)!important;color:var(--text-white)!important}.pgn-btn-active:hover{background-color:var(--primary-light)!important;color:var(--primary)!important}.pgn-btn-active:hover .icon-container,.pgn-btn-active:hover .btn-label{color:var(--primary)!important}.pgn-btn-active .icon-container,.pgn-btn-active .btn-label{color:var(--text-white)!important}.sidebar-btn.pgn-btn-inactive{color:var(--text-secondary)!important}.sidebar-btn.pgn-btn-inactive:hover{color:var(--primary)!important}.sidebar-extra-space{width:80px}[dir=rtl] .sidebar .tooltip.bs-tooltip-left{margin-right:8px}[dir=rtl] .sidebar.collapsed .tooltip.bs-tooltip-left{transform:translate(-4px)}.mainHeaderContainer{display:flex}.navbarContainer{background-color:var(--bg-surface);box-shadow:0 2px 4px #0000001a;height:6rem;position:relative;display:flex;align-items:center;padding-right:3rem}.navbarContainer .navbar-brand{padding:0;display:flex;align-items:center;margin:0}.navbarContainer .navbar-brand img{max-width:100%;height:auto;object-fit:contain;max-height:5rem;padding-top:.5rem;padding-bottom:.5rem}.navbarContainer .navbar-collapse{background-color:var(--c8);border-radius:0 0 .5rem .5rem;padding:1rem}.navbarContainer .d-flex.align-items-center.justify-content-center{position:absolute;left:50%;transform:translate(-50%);width:auto;z-index:1}.navbarContainer .toggle-sidebar-icon{display:flex;align-items:center;margin:0;margin-right:1rem}.navbarContainer .search-field-custom{max-width:30rem}@media (max-width: 767px){.navbarContainer{padding-right:.25rem;display:flex;align-items:center;gap:.25rem;height:5rem;justify-content:flex-start}.navbarContainer .navbar-brand img{max-width:5rem;height:auto;object-fit:contain;max-height:5rem;padding-top:.2rem;padding-bottom:.2rem}.navbarContainer .toggle-sidebar-icon{margin:0;padding:0}.navbarContainer .more-menu-dropdown{position:absolute;top:100%;right:1rem;background-color:var(--bg-surface);border-radius:.5rem;box-shadow:0 2px 8px #00000026;padding:1rem;z-index:1000;display:flex;flex-direction:column;min-width:200px}.navbarContainer .more-menu-dropdown .more-menu-icons-row{display:flex;flex-direction:row;gap:.5rem;width:100%;margin-bottom:.5rem}.navbarContainer .more-menu-dropdown .more-menu-icons-row .icon-curved-square{flex:1;display:flex}.navbarContainer .more-menu-dropdown .more-menu-icons-row .icon-curved-square .btn-icon{width:100%;height:100%;padding:.5rem;display:flex;align-items:center;justify-content:center}.navbarContainer .more-menu-dropdown .language-dropdown{width:100%;margin-top:.5rem;margin-bottom:.5rem}.navbarContainer .toggle-sidebar-icon{margin-left:0;padding-left:0}}.buttonListContainer{display:grid;grid-template-columns:1fr auto;align-items:center;flex:1}.navbarList{display:flex;gap:2rem;padding:0;margin:0;list-style-type:none}.navbarList li{cursor:pointer;color:var(--c6)}.navbarList li:hover{color:var(--c2)}.navbarButtons{display:flex;gap:.5rem;margin-left:auto}.navbarListLeft{justify-self:start;margin-left:4rem}.navbarListCenter{justify-self:center}.navbarListRight{justify-self:end;margin-right:4rem}.menuButton{padding:.75rem 1.25rem;font-weight:600;text-transform:uppercase;color:var(--c6);background-color:var(--bg-surface);outline:none!important;border-color:var(--bg-surface)!important;width:8rem}.mainHeaderContainer{display:flex;position:relative}.nav-gap{gap:3rem}.dropdown-menu{min-width:15rem!important}.search-field-custom{background:var(--bg-surface);border:2px solid var(--primary-light)!important;border-radius:30px!important;padding:.3rem .6rem!important;display:flex;align-items:center;box-shadow:none!important;min-height:35px;position:relative;pointer-events:auto!important}.search-field-custom input{background:transparent!important;border:none!important;box-shadow:none!important;color:var(--text-light)!important;font-size:1.1rem;font-weight:500;pointer-events:auto!important;-webkit-user-select:text!important;user-select:text!important}.search-field-custom input::placeholder{color:var(--text-secondary, #697586)!important;opacity:1}.search-field-custom .pgn__searchfield-form{outline:none!important;border:none!important}.search-field-custom input:focus{outline:none!important;box-shadow:none!important}.pgn__searchfield.has-focus:not(.pgn__searchfield--external):after{border:none!important}.pgn__searchfield:hover,.pgn__searchfield:active{border:2px solid var(--primary)!important}.icon-curved-square .btn-icon.btn-icon-primary{background-color:var(--primary-light)!important;margin-right:1rem}.icon-curved-square .btn-icon.btn-icon-primary:hover,.icon-curved-square .btn-icon.btn-icon-primary:active{background-color:var(--primary)!important;color:var(--primary-light)!important}.icon-curved-square .btn-icon.btn-icon-primary:focus{background-color:var(--primary-light);color:var(--primary)}.icon-curved-square .btn-icon.btn-icon-primary:focus:hover{background-color:var(--primary)!important;color:var(--primary-light)!important}.language-dropdown .btn-tertiary{background-color:var(--primary-light);border-radius:25px}.language-dropdown .btn-tertiary:hover{background-color:var(--primary)!important;color:var(--primary-light)!important}.language-dropdown .btn-tertiary.dropdown-toggle{background-color:var(--primary-light)!important;color:var(--primary)!important}.language-dropdown .btn-tertiary.dropdown-toggle:hover{background-color:var(--primary)!important;color:var(--primary-light)!important}.usermenu-dropdown{margin-left:1rem}.usermenu-dropdown .btn-tertiary{border-radius:10px}.toggle-sidebar-icon .btn-icon.btn-icon-primary{background-color:var(--primary-light)}.toggle-sidebar-icon .btn-icon.btn-icon-primary:hover{background-color:var(--primary);color:var(--primary-light)!important}.toggle-sidebar-icon .btn-icon.btn-icon-primary:active{background-color:var(--primary)!important;color:var(--primary-light)!important}.toggle-sidebar-icon .btn-icon.btn-icon-primary:focus{background-color:var(--primary-light);color:var(--primary)}.toggle-sidebar-icon .btn-icon.btn-icon-primary:focus:hover{background-color:var(--primary)!important;color:var(--primary-light)!important}.search-modal .modal-content{border-radius:.5rem}.search-modal .modal-header{border-bottom:none;padding:1rem 1.5rem}.search-modal .modal-body{padding:0 1.5rem 1.5rem}.fixed-search-bar{position:fixed;top:0;left:0;width:100vw;z-index:2000;background:#fffffffa;box-shadow:0 2px 8px #0000001a;padding:1rem .5rem;display:flex;justify-content:center;align-items:center}.fixed-search-bar-inner{width:100%;max-width:600px;position:relative;display:flex;align-items:center}.fixed-search-bar .close-search-bar{background:none;border:none;font-size:2rem;color:var(--text-muted);margin-left:.5rem;cursor:pointer;line-height:1;transition:color .2s}.fixed-search-bar .close-search-bar:hover{color:var(--text-primary)}.no-results-message{text-align:center;padding:1rem;margin-top:1rem;color:var(--text-muted);font-size:1rem;background-color:var(--bg-surface);border-radius:.5rem;border:1px solid var(--border-color)}.no-results-message p{margin:0;font-weight:400}.no-results-message-desktop{position:absolute;top:100%;left:0;right:0;z-index:1000;background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 2px 8px #0000001a;padding:1rem;margin-top:.5rem;text-align:center;color:var(--text-muted);font-size:.9rem}.no-results-message-desktop p{margin:0;font-weight:400}.search-loading-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border-color);border-top:2px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin-right:8px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.search-loading-spinner-container{position:absolute;top:100%;left:0;right:0;z-index:1000;background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 2px 8px #0000001a;padding:1rem;margin-top:.5rem;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.9rem}.search-error-message-desktop{position:absolute;top:100%;left:0;right:0;z-index:1000;background-color:var(--bg-surface);border:1px solid var(--danger);border-radius:.5rem;box-shadow:0 2px 8px #0000001a;padding:1rem;margin-top:.5rem;text-align:center;color:var(--danger);font-size:.9rem}.search-error-message-desktop p{margin:0;font-weight:400}.search-results-dropdown{position:absolute;top:100%;left:0;right:0;z-index:1000;background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 4px 12px #00000026;margin-top:.5rem;max-height:400px;overflow-y:auto}.search-results-dropdown .search-results-header{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);background-color:var(--bg-body);font-size:.875rem;font-weight:600;color:var(--text-muted)}.search-results-dropdown .search-results-list{max-height:300px;overflow-y:auto}.search-results-dropdown .search-result-item{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color .2s}.search-results-dropdown .search-result-item:hover{background-color:var(--bg-hover)}.search-results-dropdown .search-result-item:last-child{border-bottom:none}.search-results-dropdown .search-result-item .search-result-content{display:flex;align-items:flex-start;gap:.75rem}.search-results-dropdown .search-result-item .search-result-icon{flex-shrink:0;margin-top:.125rem;color:var(--text-muted)}.search-results-dropdown .search-result-item .search-result-text{flex:1;min-width:0}.search-results-dropdown .search-result-item .search-result-title{font-weight:600;color:var(--text-primary);margin-bottom:.25rem;font-size:.9rem;line-height:1.3}.search-results-dropdown .search-result-item .search-result-description{color:var(--text-muted);font-size:.8rem;line-height:1.4;margin-bottom:.5rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-results-dropdown .search-result-item .search-result-breadcrumbs{color:var(--text-muted);font-size:.75rem;line-height:1.2;margin-top:.25rem}.search-results-dropdown .search-result-item .search-result-actions{flex-shrink:0;margin-top:.125rem}.search-results-dropdown .search-result-item .search-result-meta{display:flex;align-items:center;gap:.5rem}.search-results-dropdown .search-result-item .search-result-meta .search-result-type{background-color:var(--bg-surface);color:var(--text-muted);padding:.125rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500;text-transform:uppercase}.search-results-dropdown .search-highlight{background-color:var(--bg-hover);padding:.125rem .25rem;border-radius:.25rem;font-weight:600}.search-results-dropdown .search-results-more{padding:0;text-align:center;background-color:var(--bg-body);border-top:1px solid var(--border-color)}.search-results-dropdown .search-results-more button{background:none;border:none;color:var(--primary);cursor:pointer;padding:8px 16px;width:100%;text-align:center;font-size:14px;transition:background-color .2s}.search-results-dropdown .search-results-more button:hover{background-color:var(--bg-hover)}.search-results-mobile{margin-top:1rem;background-color:var(--bg-surface);border-radius:.5rem;box-shadow:0 2px 8px #0000001a;max-height:60vh;overflow-y:auto}.search-results-mobile .search-results-header{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);background-color:var(--bg-body);font-size:.875rem;font-weight:600;color:var(--text-muted)}.search-results-mobile .search-results-list{max-height:50vh;overflow-y:auto}.search-results-mobile .search-result-item{padding:1rem;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color .2s}.search-results-mobile .search-result-item:hover{background-color:var(--bg-hover)}.search-results-mobile .search-result-item:last-child{border-bottom:none}.search-results-mobile .search-result-item .search-result-content{display:flex;align-items:flex-start;gap:1rem}.search-results-mobile .search-result-item .search-result-icon{flex-shrink:0;margin-top:.25rem;color:var(--text-muted)}.search-results-mobile .search-result-item .search-result-text{flex:1;min-width:0}.search-results-mobile .search-result-item .search-result-title{font-weight:600;color:var(--text-primary);margin-bottom:.5rem;font-size:1rem;line-height:1.3}.search-results-mobile .search-result-item .search-result-description{color:var(--text-muted);font-size:.875rem;line-height:1.4;margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.search-results-mobile .search-result-item .search-result-breadcrumbs{color:var(--text-muted);font-size:.8rem;line-height:1.2;margin-top:.5rem}.search-results-mobile .search-result-item .search-result-actions{flex-shrink:0;margin-top:.25rem}.search-results-mobile .search-result-item .search-result-meta{display:flex;align-items:center;gap:.5rem}.search-results-mobile .search-result-item .search-result-meta .search-result-type{background-color:var(--bg-hover);color:var(--text-secondary);padding:.25rem .75rem;border-radius:.375rem;font-size:.75rem;font-weight:500;text-transform:uppercase}.search-error-message{margin-top:1rem;padding:1rem;background-color:var(--bg-disabled);border:1px solid var(--danger);border-radius:.5rem;color:var(--danger);text-align:center}.search-error-message p{margin:0;font-weight:400}.navbar-buttons .btn-icon.btn-icon-primary{background-color:var(--primary-light)}.navbar-buttons .btn-icon.btn-icon-primary:hover{background-color:var(--primary);color:var(--primary-light)!important}.navbar-buttons .btn-icon.btn-icon-primary:active{background-color:var(--primary)!important;color:var(--primary-light)!important}.navbar-buttons .btn-icon.btn-icon-primary:focus{background-color:var(--primary-light);color:var(--primary)}.navbar-buttons .btn-icon.btn-icon-primary:focus:hover{background-color:var(--primary)!important;color:var(--primary-light)!important}.usermenu-dropdown-mobile .btn-tertiary{background-color:var(--primary-light);border-radius:25px}.usermenu-dropdown-mobile .btn-tertiary:hover{background-color:var(--primary)!important;color:var(--primary-light)!important}.usermenu-dropdown-mobile .btn-tertiary.dropdown-toggle{background-color:var(--primary-light)!important;color:var(--primary)!important}.usermenu-dropdown-mobile .btn-tertiary.dropdown-toggle:hover{background-color:var(--primary)!important;color:var(--primary-light)!important}:root{--primary: #2B2399;--primary-alt: #3C32B5;--primary-hover: #E2E1F9;--primary-active: #1F1A7D;--primary-light: #E2E1F9;--secondary: #7A8AFF;--secondary-alt: #5C6EF0;--secondary-hover: #ECEEFF;--secondary-active: #4A5BD1;--secondary-light: #ECEEFF;--disabled: #bdbdbd;--success: #358F0A;--success-hover: #2d7908;--success-light: #eaf6e6;--warning: #FFCD29;--warning-hover: #e6b800;--warning-light: #fff8e6;--danger: #dc3545;--danger-hover: #c82333;--danger-light: #fbecec;--info: #0B8E77;--info-hover: #097a66;--info-light: #e6f5f2;--text-primary: #121926;--text-secondary: #9e9f9e;--text-muted: #6b7280;--text-light: #364152;--text-white: #ffffff;--bg-body: #f4f7ff;--bg-surface: #ffffff;--bg-hover: #f9fafb;--bg-disabled: #e5e7eb;--border-color: #e5e6e6;--border-color-hover: #d1d5db}.btn{border-radius:4px;font-weight:500;transition:all .2s ease-in-out}.btn-primary{color:var(--primary-light)!important;background-color:var(--primary)!important;border-color:var(--primary)!important;border-radius:8px!important}.btn-primary:hover{background-color:var(--primary-hover)!important;border-color:var(--primary-hover)!important;color:var(--primary-alt)!important}.btn-primary:active,.btn-primary.active{background-color:var(--primary-active)!important;border-color:var(--primary-active)!important;color:var(--primary-light)!important}.btn-primary:disabled{background-color:var(--disabled)!important;border-color:var(--disabled)!important;color:var(--primary-alt)!important}.btn-primary:focus:before{border:none!important}.btn-primary:focus-visible{outline:none!important}.btn-outline-primary{color:var(--primary)!important;border-color:var(--primary)!important;background-color:transparent!important;border-radius:8px!important}.btn-outline-primary:hover{color:var(--primary-light)!important;background-color:var(--primary)!important;border-color:var(--primary)!important}.btn-outline-primary:active,.btn-outline-primary.active{color:var(--primary-light)!important;background-color:var(--primary-active)!important;border-color:var(--primary-active)!important}.btn-outline-primary:disabled{color:var(--disabled)!important;border-color:var(--disabled)!important}.btn-outline-primary:focus:before{border:none!important}.btn-outline-primary:focus-visible{outline:none!important}.btn-secondary{color:var(--primary-light)!important;background-color:var(--secondary)!important;border-color:var(--secondary)!important;border-radius:8px!important}.btn-secondary:hover{background-color:var(--secondary-hover)!important;border-color:var(--secondary-hover)!important;color:var(--secondary-hover)!important}.btn-secondary:active,.btn-secondary.active{background-color:var(--secondary-active)!important;border-color:var(--secondary-active)!important}.btn-secondary:disabled{background-color:var(--disabled)!important;border-color:var(--disabled)!important;color:var(--primary-alt)!important}.btn-secondary:focus-visible{outline:none!important}.btn-outline-secondary{color:var(--secondary);border-color:var(--secondary);background-color:transparent;border-radius:8px}.btn-outline-secondary:hover{color:var(--primary-light);background-color:var(--secondary);border-color:var(--secondary)}.btn-outline-secondary:active,.btn-outline-secondary.active{color:var(--primary-light)!important;background-color:var(--secondary-active)!important;border-color:var(--secondary-active)!important}.btn-outline-secondary:disabled{color:var(--disabled)!important;border-color:var(--disabled)!important}.btn-outline-secondary:focus:before{border:none!important}.btn-outline-secondary:focus-visible{outline:none!important}.btn-tertiary{color:var(--primary)!important;background-color:transparent;border:none!important;border-radius:8px}.btn-tertiary:hover{color:var(--primary-light);background-color:var(--primary-light)!important}.btn-tertiary:active,.btn-tertiary.active{color:var(--primary-active)!important;background-color:var(--primary-light)!important}.btn-tertiary:disabled{color:var(--disabled)!important}.btn-tertiary:focus:before{border:none!important;border:solid 2px transparent}.btn-tertiary:focus-visible{outline:none!important}.btn-outline-tertiary{color:var(--primary)!important;background-color:transparent!important;border:none!important;border-radius:8px}.btn-outline-tertiary:hover{color:var(--primary-hover);background-color:var(--primary-light)}.btn-outline-tertiary:active,.btn-outline-tertiary.active{color:var(--primary-active)!important;background-color:var(--primary-light)!important}.btn-outline-tertiary:disabled{color:var(--disabled)!important}.btn-outline-tertiary:focus:before{border:none!important}.btn-outline-tertiary:focus-visible{outline:none!important}.btn-brand{color:var(--primary-light)!important;background-color:var(--primary)!important;border-color:var(--primary)!important;border-radius:8px!important}.btn-brand:hover{background-color:var(--primary-hover)!important;border-color:var(--primary-hover)!important;color:var(--primary-alt)!important}.btn-brand:active,.btn-brand.active{background-color:var(--primary-active)!important;border-color:var(--primary-active)!important;color:var(--primary-light)!important}.btn-brand:disabled{background-color:var(--disabled)!important;border-color:var(--disabled)!important;color:var(--primary-alt)!important}.btn-brand:focus:before{border:none!important}.btn-brand:focus-visible{outline:none!important}.dropdown-menu{border-radius:4px;border:1px solid rgba(0,0,0,.1);box-shadow:0 2px 4px #0000001a;padding:.5rem 0}.dropdown-item{color:#333;padding:.5rem 1rem}.dropdown-item:hover{background-color:var(--primary-light);color:var(--primary)}.dropdown-item:active,.dropdown-item.active{background-color:var(--primary);color:#fff}.dropdown-item:disabled{color:rgba(var(--secondary-rgb),.5)}.form-control{border-radius:8px;border:1px solid #ced4da}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 .2rem rgba(var(--primary-rgb),.25)}.form-control:disabled{background-color:#e9ecef}.badge{font-weight:500;padding:.35em .65em;border-radius:4px}.badge-primary{background-color:var(--primary)!important;color:#fff}.badge-secondary{background-color:var(--secondary);color:#fff}.alert{border-radius:4px;border:1px solid transparent}.alert-primary{background-color:var(--primary-light);border-color:var(--primary);color:var(--primary)}.pgn__bubble.pgn__bubble-primary{background-color:var(--primary);color:#fff}.pgn__data-table th{color:var(--secondary)}.pgn__data-table .pgn__data-table-cell-wrap{max-width:unset}.pgn__data-table .pgn__data-table-footer{border-top:none;justify-content:center}.card{border-radius:16px;box-shadow:none!important}.nav-link{color:var(--secondary)}.nav-link:hover{color:var(--primary)}.nav-link.active{color:var(--primary);font-weight:500}.nav-tabs .nav-link.active:focus:before,.nav-tabs .nav-link:focus:before,.nav-tabs .nav-link:focus-visible:before{border:none!important}.nav-tabs .nav-link{color:var(--text-primary)!important}.nav-tabs .nav-link.active{color:var(--primary)!important;border-bottom:2px solid var(--primary)!important}.pgn__modal .pgn__modal-header{padding:1.5rem;border-bottom:1px solid rgba(0,0,0,.1)}.pgn__modal .pgn__modal-header h2{color:var(--primary);font-size:1.375rem;line-height:1.75rem}.pgn__modal .pgn__modal-footer{padding:1rem 1.5rem;border-top:1px solid rgba(0,0,0,.1)}.pgn__form-group{margin-bottom:1rem}.pgn__form-group .pgn__form-label{font-weight:500;font-size:.875rem;color:var(--text-primary);margin-bottom:.5rem}.pgn__form-group .pgn__form-control-description{font-size:.75rem;color:var(--text-primary);margin-top:.25rem}.pgn__form-checkbox,.pgn__form-radio{margin:.5rem 0;display:flex;align-items:flex-start}.pgn__form-checkbox input,.pgn__form-radio input{margin-right:.5rem;margin-top:.25rem}.pgn__form-checkbox.pgn__form-control-disabled,.pgn__form-radio.pgn__form-control-disabled{opacity:.5;cursor:not-allowed}.pgn__form-checkbox-input,.pgn__form-radio-input{width:1rem;height:1rem}.pgn__form-checkbox-input:checked,.pgn__form-radio-input:checked{background-color:var(--primary);border-color:var(--primary)}.pgn__form-checkbox-input:focus,.pgn__form-radio-input:focus{box-shadow:0 0 0 .2rem rgba(var(--primary-rgb),.25);border-color:var(--primary)}.pgn__selectable_box{border:1px solid rgba(0,0,0,.1);border-radius:4px;padding:1rem;transition:all .2s ease-in-out;cursor:pointer}.pgn__selectable_box:hover,.pgn__selectable_box.pgn__selectable_box-active{border-color:var(--primary);background-color:var(--primary-light)}.pgn__selectable_box.pgn__selectable_box-invalid{border-color:var(--danger)}.pgn__selectable_box-set{display:grid;gap:1rem;margin:1rem 0}.btn-success{color:#fff;background-color:var(--success);border-color:var(--success)}.btn-success:hover{background-color:var(--success-hover);border-color:var(--success-hover)}.btn-success:active,.btn-success.active{background-color:var(--success-hover)!important;border-color:var(--success-hover)!important}.btn-success:disabled{opacity:.5}.btn-warning{color:#000;background-color:var(--warning);border-color:var(--warning)}.btn-warning:hover{background-color:var(--warning-hover);border-color:var(--warning-hover)}.btn-warning:active,.btn-warning.active{background-color:var(--warning-hover)!important;border-color:var(--warning-hover)!important}.btn-warning:disabled{opacity:.5}.btn-danger{color:#fff;background-color:var(--danger);border-color:var(--danger)}.btn-danger:hover{background-color:var(--danger-hover);border-color:var(--danger-hover)}.btn-danger:active,.btn-danger.active{background-color:var(--danger-hover)!important;border-color:var(--danger-hover)!important}.btn-danger:disabled{opacity:.5}.btn-info{color:#fff;background-color:var(--info);border-color:var(--info)}.btn-info:hover{background-color:var(--info-hover);border-color:var(--info-hover)}.btn-info:active,.btn-info.active{background-color:var(--info-hover)!important;border-color:var(--info-hover)!important}.btn-info:disabled{opacity:.5}.btn-icon:focus{color:var(--primary)!important}.btn-icon.btn-icon-primary{color:var(--primary)}.btn-icon.btn-icon-primary:hover{color:var(--primary-alt)!important;background-color:var(--primary-hover);border-color:var(--primary-hover)}.btn-icon.btn-icon-primary:active,.btn-icon.btn-icon-primary.active{color:var(--primary-light)!important;background-color:var(--primary-active)!important;border-color:var(--primary-active)!important}.btn-icon.btn-icon-primary:disabled{color:var(--disabled)!important}.btn-icon.btn-icon-primary:focus{box-shadow:none!important}.btn-icon.btn-icon-secondary{color:var(--secondary)}.btn-icon.btn-icon-secondary:hover{color:var(--secondary-alt)!important;background-color:var(--secondary-hover);border-color:var(--secondary-hover)}.btn-icon.btn-icon-secondary:active,.btn-icon.btn-icon-secondary.active{color:var(--secondary-light)!important;background-color:var(--secondary-active)!important;border-color:var(--secondary-active)!important}.btn-icon.btn-icon-secondary:disabled{color:var(--disabled)!important}.btn-icon.btn-icon-secondary:focus{box-shadow:none!important}.btn-icon.btn-outline-primary{color:var(--primary);border-color:var(--primary);background-color:transparent}.btn-icon.btn-outline-primary .pgn__icon{color:var(--primary)}.btn-icon.btn-outline-primary:hover{color:var(--primary-light);background-color:var(--primary);border-color:var(--primary)}.btn-icon.btn-outline-primary:hover .pgn__icon{color:var(--primary-light)}.btn-icon.btn-outline-primary:active,.btn-icon.btn-outline-primary.active{color:var(--primary-light)!important;background-color:var(--primary-active)!important;border-color:var(--primary-active)!important}.btn-icon.btn-outline-primary:active .pgn__icon,.btn-icon.btn-outline-primary.active .pgn__icon{color:var(--primary-light)!important}.btn-icon.btn-outline-primary:disabled{color:var(--disabled)!important;border-color:var(--disabled)!important}.btn-icon.btn-outline-primary:disabled .pgn__icon{color:var(--disabled)!important}.btn-icon.btn-outline-secondary{color:var(--secondary);border-color:var(--secondary);background-color:transparent}.btn-icon.btn-outline-secondary .pgn__icon{color:var(--secondary)}.btn-icon.btn-outline-secondary:hover{color:var(--primary-light);background-color:var(--secondary);border-color:var(--secondary)}.btn-icon.btn-outline-secondary:hover .pgn__icon{color:var(--primary-light)}.btn-icon.btn-outline-secondary:active,.btn-icon.btn-outline-secondary.active{color:var(--primary-light)!important;background-color:var(--secondary-active)!important;border-color:var(--secondary-active)!important}.btn-icon.btn-outline-secondary:active .pgn__icon,.btn-icon.btn-outline-secondary.active .pgn__icon{color:var(--primary-light)!important}.btn-icon.btn-outline-secondary:disabled{color:var(--disabled)!important;border-color:var(--disabled)!important}.btn-icon.btn-outline-secondary:disabled .pgn__icon{color:var(--disabled)!important}.btn-icon.btn-tertiary{color:var(--primary);background-color:transparent;border:none}.btn-icon.btn-tertiary .dropdown-toggle{background-color:var(--primary-light)!important}.btn-icon.btn-tertiary .pgn__icon{color:var(--primary)}.btn-icon.btn-tertiary:hover{color:var(--primary-hover);background-color:var(--primary-light)}.btn-icon.btn-tertiary:hover .pgn__icon{color:var(--primary-hover)}.btn-icon.btn-tertiary:active,.btn-icon.btn-tertiary.active{color:var(--primary-active)!important;background-color:var(--primary-light)!important}.btn-icon.btn-tertiary:active .pgn__icon,.btn-icon.btn-tertiary.active .pgn__icon{color:var(--primary-active)!important}.btn-icon.btn-tertiary:disabled{color:var(--disabled)!important}.btn-icon.btn-tertiary:disabled .pgn__icon{color:var(--disabled)!important}.text-primary{color:var(--text-primary)!important}.text-secondary{color:var(--text-secondary)!important}.text-success{color:var(--success)!important}.text-warning{color:var(--warning)!important}.text-danger{color:var(--danger)!important}.text-info{color:var(--info)!important}.pgn__icon.text-primary{color:var(--text-primary)!important}.pgn__icon.text-secondary{color:var(--text-secondary)!important}.pgn__icon.text-success{color:var(--success)!important}.pgn__icon.text-warning{color:var(--warning)!important}.pgn__icon.text-danger{color:var(--danger)!important}.pgn__icon.text-info{color:var(--info)!important}.cursor-pointer{cursor:pointer}.custom-outline-section .row{box-shadow:none!important;border:1px solid #e1e1e1}[data-tooltip]{position:relative;margin:0 5px;height:20px}[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;left:50%;transform:translate(-50%);top:calc(100% + 8px);padding:8px 12px;background:var(--text-primary);color:var(--text-white);border-radius:6px;box-shadow:0 4px 8px #0003;white-space:normal;z-index:10;font-size:12px;line-height:1.4;max-width:250px;width:max-content;text-align:center}[data-tooltip]:hover:before{content:"";position:absolute;left:50%;transform:translate(-50%);top:100%;border:6px solid transparent;border-bottom-color:var(--text-primary);z-index:11}.ca-breadcrumb-bg{width:100%;padding:.5rem 0 0}.ca-breadcrumb-container{margin:0 auto;padding:0 32px}.ca-breadcrumb{color:#b0b7c3;font-size:14px;margin-bottom:8px}.ca-breadcrumb .ca-breadcrumb-icon{opacity:.7}.ca-breadcrumb .ca-breadcrumb-icon .custom-icon{width:16px;height:16px;margin-right:4px}.ca-breadcrumb .ca-breadcrumb-divider{margin:0 8px}.ca-breadcrumb .ca-breadcrumb-current{color:#6b7280}.ca-title{font-weight:600;font-size:20px;color:#22223b}.ca-main-layout{display:flex;min-height:100vh;align-items:flex-start}.ca-sidebar{min-width:220px;max-width:260px;background:transparent;z-index:2;border-radius:0!important;padding-bottom:0!important;box-sizing:border-box;margin:16px 0 0 16px;border-radius:16px;position:sticky;top:32px;align-self:flex-start;overflow-y:auto;overflow-x:hidden;height:calc(100vh - 32px);max-height:calc(100vh - 32px)}.ca-main-content{flex:1;padding-top:1rem}.ca-mobile-nav{display:none;width:100%;padding:16px;padding-left:1.5rem;padding-right:1.5rem;border-bottom:1px solid #eee}.ca-mobile-nav-select{width:100%;padding:12px 30px 12px 12px;font-size:1rem;border:1px solid #ccc;border-radius:8px;background-color:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%236c757d%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E);background-repeat:no-repeat;background-position:right 10px center;background-size:10px 10px}@media (max-width: 768px){.ca-sidebar{display:none}.ca-mobile-nav{display:block}.ca-main-layout{flex-direction:column}}
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ var Ae, Xe;
11
11
  function fr() {
12
12
  if (Xe) return Ae;
13
13
  Xe = 1;
14
- var t = Object.getOwnPropertySymbols, i = Object.prototype.hasOwnProperty, s = Object.prototype.propertyIsEnumerable;
14
+ var t = Object.getOwnPropertySymbols, s = Object.prototype.hasOwnProperty, i = Object.prototype.propertyIsEnumerable;
15
15
  function n(p) {
16
16
  if (p == null)
17
17
  throw new TypeError("Object.assign cannot be called with null or undefined");
@@ -43,11 +43,11 @@ function fr() {
43
43
  for (var m, g = n(p), c, o = 1; o < arguments.length; o++) {
44
44
  m = Object(arguments[o]);
45
45
  for (var d in m)
46
- i.call(m, d) && (g[d] = m[d]);
46
+ s.call(m, d) && (g[d] = m[d]);
47
47
  if (t) {
48
48
  c = t(m);
49
49
  for (var f = 0; f < c.length; f++)
50
- s.call(m, c[f]) && (g[c[f]] = m[c[f]]);
50
+ i.call(m, c[f]) && (g[c[f]] = m[c[f]]);
51
51
  }
52
52
  }
53
53
  return g;
@@ -65,10 +65,10 @@ var Ze;
65
65
  function Hr() {
66
66
  if (Ze) return ve;
67
67
  Ze = 1, fr();
68
- var t = lr, i = 60103;
68
+ var t = lr, s = 60103;
69
69
  if (ve.Fragment = 60107, typeof Symbol == "function" && Symbol.for) {
70
- var s = Symbol.for;
71
- i = s("react.element"), ve.Fragment = s("react.fragment");
70
+ var i = Symbol.for;
71
+ s = i("react.element"), ve.Fragment = i("react.fragment");
72
72
  }
73
73
  var n = t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, v = Object.prototype.hasOwnProperty, p = { key: !0, ref: !0, __self: !0, __source: !0 };
74
74
  function w(m, g, c) {
@@ -76,7 +76,7 @@ function Hr() {
76
76
  c !== void 0 && (f = "" + c), g.key !== void 0 && (f = "" + g.key), g.ref !== void 0 && (b = g.ref);
77
77
  for (o in g) v.call(g, o) && !p.hasOwnProperty(o) && (d[o] = g[o]);
78
78
  if (m && m.defaultProps) for (o in g = m.defaultProps, g) d[o] === void 0 && (d[o] = g[o]);
79
- return { $$typeof: i, type: m, key: f, ref: b, props: d, _owner: n.current };
79
+ return { $$typeof: s, type: m, key: f, ref: b, props: d, _owner: n.current };
80
80
  }
81
81
  return ve.jsx = w, ve.jsxs = w, ve;
82
82
  }
@@ -93,7 +93,7 @@ var Qe;
93
93
  function Fr() {
94
94
  return Qe || (Qe = 1, (function(t) {
95
95
  process.env.NODE_ENV !== "production" && (function() {
96
- var i = lr, s = fr(), n = 60103, v = 60106;
96
+ var s = lr, i = fr(), n = 60103, v = 60106;
97
97
  t.Fragment = 60107;
98
98
  var p = 60108, w = 60114, m = 60109, g = 60110, c = 60112, o = 60113, d = 60120, f = 60115, b = 60116, u = 60121, P = 60122, J = 60117, j = 60129, I = 60131;
99
99
  if (typeof Symbol == "function" && Symbol.for) {
@@ -107,7 +107,7 @@ function Fr() {
107
107
  var a = U && e[U] || e[$];
108
108
  return typeof a == "function" ? a : null;
109
109
  }
110
- var L = i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
110
+ var L = s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
111
111
  function C(e) {
112
112
  {
113
113
  for (var a = arguments.length, l = new Array(a > 1 ? a - 1 : 0), x = 1; x < a; x++)
@@ -218,25 +218,25 @@ function Fr() {
218
218
  writable: !0
219
219
  };
220
220
  Object.defineProperties(console, {
221
- log: s({}, e, {
221
+ log: i({}, e, {
222
222
  value: E
223
223
  }),
224
- info: s({}, e, {
224
+ info: i({}, e, {
225
225
  value: q
226
226
  }),
227
- warn: s({}, e, {
227
+ warn: i({}, e, {
228
228
  value: K
229
229
  }),
230
- error: s({}, e, {
230
+ error: i({}, e, {
231
231
  value: Q
232
232
  }),
233
- group: s({}, e, {
233
+ group: i({}, e, {
234
234
  value: ue
235
235
  }),
236
- groupCollapsed: s({}, e, {
236
+ groupCollapsed: i({}, e, {
237
237
  value: Y
238
238
  }),
239
- groupEnd: s({}, e, {
239
+ groupEnd: i({}, e, {
240
240
  value: ae
241
241
  })
242
242
  });
@@ -649,7 +649,7 @@ function zr() {
649
649
  return Be || (Be = 1, process.env.NODE_ENV === "production" ? Ee.exports = Hr() : Ee.exports = Fr()), Ee.exports;
650
650
  }
651
651
  var r = zr();
652
- const it = ({ contactInfo: t, quickLinks: i, exploreLinks: s, logoUrl: n, copyrights: v }) => {
652
+ const it = ({ contactInfo: t, quickLinks: s, exploreLinks: i, logoUrl: n, copyrights: v }) => {
653
653
  const p = (w) => w ?? "left";
654
654
  return /* @__PURE__ */ r.jsxs("footer", { className: "footer", children: [
655
655
  /* @__PURE__ */ r.jsxs("div", { className: "container", children: [
@@ -672,30 +672,30 @@ const it = ({ contactInfo: t, quickLinks: i, exploreLinks: s, logoUrl: n, copyri
672
672
  t.content.phonenumber
673
673
  ] })
674
674
  ] }),
675
- /* @__PURE__ */ r.jsx("div", { className: `section ${p(i.align)}`, children: /* @__PURE__ */ r.jsxs("ul", { children: [
675
+ /* @__PURE__ */ r.jsx("div", { className: `section ${p(s.align)}`, children: /* @__PURE__ */ r.jsxs("ul", { children: [
676
676
  /* @__PURE__ */ r.jsx("h3", { children: "Quick Links" }),
677
- i.content.map((w, m) => /* @__PURE__ */ r.jsx("li", { children: /* @__PURE__ */ r.jsx("a", { href: w.link, children: w.label }) }, m))
677
+ s.content.map((w, m) => /* @__PURE__ */ r.jsx("li", { children: /* @__PURE__ */ r.jsx("a", { href: w.link, children: w.label }) }, m))
678
678
  ] }) }),
679
- /* @__PURE__ */ r.jsx("div", { className: `section ${p(s.align)}`, children: /* @__PURE__ */ r.jsxs("ul", { children: [
679
+ /* @__PURE__ */ r.jsx("div", { className: `section ${p(i.align)}`, children: /* @__PURE__ */ r.jsxs("ul", { children: [
680
680
  /* @__PURE__ */ r.jsx("h3", { children: "Explore" }),
681
- s.content.map((w, m) => /* @__PURE__ */ r.jsx("li", { children: /* @__PURE__ */ r.jsx("a", { href: w.link, children: w.label }) }, m))
681
+ i.content.map((w, m) => /* @__PURE__ */ r.jsx("li", { children: /* @__PURE__ */ r.jsx("a", { href: w.link, children: w.label }) }, m))
682
682
  ] }) })
683
683
  ] }),
684
684
  /* @__PURE__ */ r.jsx("div", { className: "copyright", children: /* @__PURE__ */ r.jsx("p", { children: v }) })
685
685
  ] });
686
686
  }, hr = ur(void 0), st = ({ children: t }) => {
687
- const [i, s] = k(!1), n = () => {
688
- s((p) => !p);
687
+ const [s, i] = k(!1), n = () => {
688
+ i((p) => !p);
689
689
  }, v = (p) => {
690
- s(p);
690
+ i(p);
691
691
  };
692
- return /* @__PURE__ */ r.jsx(hr.Provider, { value: { isCollapsed: i, toggleSidebar: n, setSidebarCollapsed: v }, children: t });
692
+ return /* @__PURE__ */ r.jsx(hr.Provider, { value: { isCollapsed: s, toggleSidebar: n, setSidebarCollapsed: v }, children: t });
693
693
  }, pr = () => {
694
694
  const t = dr(hr);
695
695
  if (t === void 0)
696
696
  throw new Error("useSidebar must be used within a SidebarProvider");
697
697
  return t;
698
- }, at = ({ buttons: t, onNavigate: i, presentPath: s }) => {
698
+ }, at = ({ buttons: t, onNavigate: s, presentPath: i }) => {
699
699
  const { isCollapsed: n, setSidebarCollapsed: v } = pr(), [p, w] = k(!0), m = Se(null), [g, c] = k(
700
700
  () => document.dir === "rtl" || document.documentElement.dir === "rtl"
701
701
  );
@@ -708,11 +708,11 @@ const it = ({ contactInfo: t, quickLinks: i, exploreLinks: s, logoUrl: n, copyri
708
708
  attributeFilter: ["dir"]
709
709
  }), () => d.disconnect();
710
710
  }, []), ie(() => {
711
- const o = t.some((d) => d.path === s);
712
- w(o), !o && !n && s.includes("/course/") && v(!0);
713
- }, [s]), ie(() => {
711
+ const o = t.some((d) => d.path === i);
712
+ w(o), !o && !n && i.includes("/course/") && !i.includes("/learning/course/") && v(!0);
713
+ }, [i]), ie(() => {
714
714
  const o = (d) => {
715
- !p && m.current && !m.current.contains(d.target) && s.includes("/course/") && (n || v(!0));
715
+ !p && m.current && !m.current.contains(d.target) && i.includes("/course/") && !i.includes("/learning/course/") && (n || v(!0));
716
716
  };
717
717
  return document.addEventListener("mousedown", o), () => {
718
718
  document.removeEventListener("mousedown", o);
@@ -724,7 +724,7 @@ const it = ({ contactInfo: t, quickLinks: i, exploreLinks: s, logoUrl: n, copyri
724
724
  className: `sidebar ${n ? "collapsed" : ""}`,
725
725
  ref: m,
726
726
  children: /* @__PURE__ */ r.jsx("div", { className: "sidebar-buttons", children: t.map((o) => {
727
- const d = o.path === s || (s.includes("/course/") || s.includes("/course_rerun/")) && o.path === "/my-courses" || s.includes("/library/") && o.path === "/libraries" || s.includes("/taxonomy/") && o.path === "/taxonomies";
727
+ const d = o.path === i || (i.includes("/course/") || i.includes("/course_rerun/")) && o.path === "/my-courses" || i.includes("/library/") && o.path === "/libraries" || i.includes("/taxonomy/") && o.path === "/taxonomies";
728
728
  return /* @__PURE__ */ r.jsx(
729
729
  Ir,
730
730
  {
@@ -747,7 +747,7 @@ const it = ({ contactInfo: t, quickLinks: i, exploreLinks: s, logoUrl: n, copyri
747
747
  {
748
748
  variant: "tertiary",
749
749
  className: `sidebar-btn ${d ? "pgn-btn-active" : "pgn-btn-inactive"}`,
750
- onClick: () => i(o.path),
750
+ onClick: () => s(o.path),
751
751
  children: /* @__PURE__ */ r.jsxs("div", { className: "btn-content", children: [
752
752
  /* @__PURE__ */ r.jsx("span", { className: "icon-container", children: o.icon }),
753
753
  /* @__PURE__ */ r.jsx("span", { className: "btn-label", children: o.label })
@@ -763,13 +763,13 @@ const it = ({ contactInfo: t, quickLinks: i, exploreLinks: s, logoUrl: n, copyri
763
763
  !p && !n && /* @__PURE__ */ r.jsx("div", { className: "sidebar-extra-space" })
764
764
  ] });
765
765
  }, Vr = (t = 768) => {
766
- const [i, s] = k(!1);
766
+ const [s, i] = k(!1);
767
767
  return ie(() => {
768
768
  const n = () => {
769
- s(window.innerWidth <= t);
769
+ i(window.innerWidth <= t);
770
770
  };
771
771
  return n(), window.addEventListener("resize", n), () => window.removeEventListener("resize", n);
772
- }, [t]), i;
772
+ }, [t]), s;
773
773
  }, er = (t) => /* @__PURE__ */ z.createElement("svg", {
774
774
  xmlns: "http://www.w3.org/2000/svg",
775
775
  width: 24,
@@ -852,16 +852,16 @@ const it = ({ contactInfo: t, quickLinks: i, exploreLinks: s, logoUrl: n, copyri
852
852
  fill: "currentColor"
853
853
  })), Jr = ({
854
854
  id: t,
855
- buttonTitle: i,
856
- items: s
857
- }) => (console.log("NavDropdownMenu Props:", s), /* @__PURE__ */ r.jsx(
855
+ buttonTitle: s,
856
+ items: i
857
+ }) => (console.log("NavDropdownMenu Props:", i), /* @__PURE__ */ r.jsx(
858
858
  Dr,
859
859
  {
860
860
  id: t,
861
- title: i,
861
+ title: s,
862
862
  variant: "tertiary",
863
863
  className: "mr-2",
864
- children: s.map((n) => /* @__PURE__ */ r.jsx(
864
+ children: i.map((n) => /* @__PURE__ */ r.jsx(
865
865
  ee.Item,
866
866
  {
867
867
  href: n.href,
@@ -876,16 +876,16 @@ const it = ({ contactInfo: t, quickLinks: i, exploreLinks: s, logoUrl: n, copyri
876
876
  username: t,
877
877
  // studioBaseUrl,
878
878
  // logoutUrl,
879
- authenticatedUserAvatar: i,
880
- isMobile: s,
879
+ authenticatedUserAvatar: s,
880
+ isMobile: i,
881
881
  // isAdmin,
882
882
  menuItems: n
883
883
  }) => {
884
- const v = i ? /* @__PURE__ */ r.jsx(
884
+ const v = s ? /* @__PURE__ */ r.jsx(
885
885
  "img",
886
886
  {
887
887
  className: "d-block w-100 h-100",
888
- src: i,
888
+ src: s,
889
889
  alt: t,
890
890
  "data-testid": "avatar-image"
891
891
  }
@@ -897,7 +897,7 @@ const it = ({ contactInfo: t, quickLinks: i, exploreLinks: s, logoUrl: n, copyri
897
897
  alt: "avatar",
898
898
  "data-testid": "avatar-icon"
899
899
  }
900
- ), p = s ? v : /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
900
+ ), p = i ? v : /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
901
901
  t,
902
902
  "   ",
903
903
  v
@@ -915,7 +915,7 @@ var we = {}, sr;
915
915
  function Ur() {
916
916
  if (sr) return we;
917
917
  sr = 1, Object.defineProperty(we, "__esModule", { value: !0 }), we.parse = w, we.serialize = c;
918
- const t = /^[\u0021-\u003A\u003C\u003E-\u007E]+$/, i = /^[\u0021-\u003A\u003C-\u007E]*$/, s = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i, n = /^[\u0020-\u003A\u003D-\u007E]*$/, v = Object.prototype.toString, p = /* @__PURE__ */ (() => {
918
+ const t = /^[\u0021-\u003A\u003C\u003E-\u007E]+$/, s = /^[\u0021-\u003A\u003C-\u007E]*$/, i = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i, n = /^[\u0020-\u003A\u003D-\u007E]*$/, v = Object.prototype.toString, p = /* @__PURE__ */ (() => {
919
919
  const f = function() {
920
920
  };
921
921
  return f.prototype = /* @__PURE__ */ Object.create(null), f;
@@ -966,7 +966,7 @@ function Ur() {
966
966
  if (!t.test(f))
967
967
  throw new TypeError(`argument name is invalid: ${f}`);
968
968
  const J = P(b);
969
- if (!i.test(J))
969
+ if (!s.test(J))
970
970
  throw new TypeError(`argument val is invalid: ${b}`);
971
971
  let j = f + "=" + J;
972
972
  if (!u)
@@ -977,7 +977,7 @@ function Ur() {
977
977
  j += "; Max-Age=" + u.maxAge;
978
978
  }
979
979
  if (u.domain) {
980
- if (!s.test(u.domain))
980
+ if (!i.test(u.domain))
981
981
  throw new TypeError(`option domain is invalid: ${u.domain}`);
982
982
  j += "; Domain=" + u.domain;
983
983
  }
@@ -1044,11 +1044,11 @@ function Gr() {
1044
1044
  function Xr(t) {
1045
1045
  return typeof t == "string" ? Oe.parse(t) : typeof t == "object" && t !== null ? t : {};
1046
1046
  }
1047
- function Ie(t, i = {}) {
1048
- const s = Zr(t);
1049
- if (!i.doNotParse)
1047
+ function Ie(t, s = {}) {
1048
+ const i = Zr(t);
1049
+ if (!s.doNotParse)
1050
1050
  try {
1051
- return JSON.parse(s);
1051
+ return JSON.parse(i);
1052
1052
  } catch {
1053
1053
  }
1054
1054
  return t;
@@ -1057,7 +1057,7 @@ function Zr(t) {
1057
1057
  return t && t[0] === "j" && t[1] === ":" ? t.substr(2) : t;
1058
1058
  }
1059
1059
  class Qr {
1060
- constructor(i, s = {}) {
1060
+ constructor(s, i = {}) {
1061
1061
  this.changeListeners = [], this.HAS_DOCUMENT_COOKIE = !1, this.update = () => {
1062
1062
  if (!this.HAS_DOCUMENT_COOKIE)
1063
1063
  return;
@@ -1065,15 +1065,15 @@ class Qr {
1065
1065
  this.cookies = Oe.parse(document.cookie), this._checkChanges(v);
1066
1066
  };
1067
1067
  const n = typeof document > "u" ? "" : document.cookie;
1068
- this.cookies = Xr(i || n), this.defaultSetOptions = s, this.HAS_DOCUMENT_COOKIE = Gr();
1068
+ this.cookies = Xr(s || n), this.defaultSetOptions = i, this.HAS_DOCUMENT_COOKIE = Gr();
1069
1069
  }
1070
- _emitChange(i) {
1071
- for (let s = 0; s < this.changeListeners.length; ++s)
1072
- this.changeListeners[s](i);
1070
+ _emitChange(s) {
1071
+ for (let i = 0; i < this.changeListeners.length; ++i)
1072
+ this.changeListeners[i](s);
1073
1073
  }
1074
- _checkChanges(i) {
1075
- new Set(Object.keys(i).concat(Object.keys(this.cookies))).forEach((n) => {
1076
- i[n] !== this.cookies[n] && this._emitChange({
1074
+ _checkChanges(s) {
1075
+ new Set(Object.keys(s).concat(Object.keys(this.cookies))).forEach((n) => {
1076
+ s[n] !== this.cookies[n] && this._emitChange({
1077
1077
  name: n,
1078
1078
  value: Ie(this.cookies[n])
1079
1079
  });
@@ -1085,31 +1085,31 @@ class Qr {
1085
1085
  _stopPolling() {
1086
1086
  this.pollingInterval && clearInterval(this.pollingInterval);
1087
1087
  }
1088
- get(i, s = {}) {
1089
- return s.doNotUpdate || this.update(), Ie(this.cookies[i], s);
1088
+ get(s, i = {}) {
1089
+ return i.doNotUpdate || this.update(), Ie(this.cookies[s], i);
1090
1090
  }
1091
- getAll(i = {}) {
1092
- i.doNotUpdate || this.update();
1093
- const s = {};
1091
+ getAll(s = {}) {
1092
+ s.doNotUpdate || this.update();
1093
+ const i = {};
1094
1094
  for (let n in this.cookies)
1095
- s[n] = Ie(this.cookies[n], i);
1096
- return s;
1095
+ i[n] = Ie(this.cookies[n], s);
1096
+ return i;
1097
1097
  }
1098
- set(i, s, n) {
1098
+ set(s, i, n) {
1099
1099
  n ? n = Object.assign(Object.assign({}, this.defaultSetOptions), n) : n = this.defaultSetOptions;
1100
- const v = typeof s == "string" ? s : JSON.stringify(s);
1101
- this.cookies = Object.assign(Object.assign({}, this.cookies), { [i]: v }), this.HAS_DOCUMENT_COOKIE && (document.cookie = Oe.serialize(i, v, n)), this._emitChange({ name: i, value: s, options: n });
1100
+ const v = typeof i == "string" ? i : JSON.stringify(i);
1101
+ this.cookies = Object.assign(Object.assign({}, this.cookies), { [s]: v }), this.HAS_DOCUMENT_COOKIE && (document.cookie = Oe.serialize(s, v, n)), this._emitChange({ name: s, value: i, options: n });
1102
1102
  }
1103
- remove(i, s) {
1104
- const n = s = Object.assign(Object.assign(Object.assign({}, this.defaultSetOptions), s), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 });
1105
- this.cookies = Object.assign({}, this.cookies), delete this.cookies[i], this.HAS_DOCUMENT_COOKIE && (document.cookie = Oe.serialize(i, "", n)), this._emitChange({ name: i, value: void 0, options: s });
1103
+ remove(s, i) {
1104
+ const n = i = Object.assign(Object.assign(Object.assign({}, this.defaultSetOptions), i), { expires: new Date(1970, 1, 1, 0, 0, 1), maxAge: 0 });
1105
+ this.cookies = Object.assign({}, this.cookies), delete this.cookies[s], this.HAS_DOCUMENT_COOKIE && (document.cookie = Oe.serialize(s, "", n)), this._emitChange({ name: s, value: void 0, options: i });
1106
1106
  }
1107
- addChangeListener(i) {
1108
- this.changeListeners.push(i), this.HAS_DOCUMENT_COOKIE && this.changeListeners.length === 1 && (typeof window == "object" && "cookieStore" in window ? window.cookieStore.addEventListener("change", this.update) : this._startPolling());
1107
+ addChangeListener(s) {
1108
+ this.changeListeners.push(s), this.HAS_DOCUMENT_COOKIE && this.changeListeners.length === 1 && (typeof window == "object" && "cookieStore" in window ? window.cookieStore.addEventListener("change", this.update) : this._startPolling());
1109
1109
  }
1110
- removeChangeListener(i) {
1111
- const s = this.changeListeners.indexOf(i);
1112
- s >= 0 && this.changeListeners.splice(s, 1), this.HAS_DOCUMENT_COOKIE && this.changeListeners.length === 0 && (typeof window == "object" && "cookieStore" in window ? window.cookieStore.removeEventListener("change", this.update) : this._stopPolling());
1110
+ removeChangeListener(s) {
1111
+ const i = this.changeListeners.indexOf(s);
1112
+ i >= 0 && this.changeListeners.splice(i, 1), this.HAS_DOCUMENT_COOKIE && this.changeListeners.length === 0 && (typeof window == "object" && "cookieStore" in window ? window.cookieStore.removeEventListener("change", this.update) : this._stopPolling());
1113
1113
  }
1114
1114
  removeAllChangeListeners() {
1115
1115
  for (; this.changeListeners.length > 0; )
@@ -1117,16 +1117,16 @@ class Qr {
1117
1117
  }
1118
1118
  }
1119
1119
  class Br {
1120
- constructor(i) {
1121
- if (!i.host)
1120
+ constructor(s) {
1121
+ if (!s.host)
1122
1122
  throw new Error("MeiliSearch host is required");
1123
- if (!i.apiKey)
1123
+ if (!s.apiKey)
1124
1124
  throw new Error("MeiliSearch apiKey is required");
1125
- if (!i.indexName)
1125
+ if (!s.indexName)
1126
1126
  throw new Error("MeiliSearch indexName is required");
1127
- this.config = i, this.headers = {
1127
+ this.config = s, this.headers = {
1128
1128
  "Content-Type": "application/json",
1129
- Authorization: `Bearer ${i.apiKey}`,
1129
+ Authorization: `Bearer ${s.apiKey}`,
1130
1130
  "X-Meilisearch-Client": "Meilisearch JavaScript (v0.41.0)"
1131
1131
  };
1132
1132
  }
@@ -1134,18 +1134,18 @@ class Br {
1134
1134
  * Update headers from MeiliSearch client object
1135
1135
  * This allows you to use the exact headers from your console logs
1136
1136
  */
1137
- updateHeadersFromClient(i) {
1138
- i && i.httpRequest && i.httpRequest.headers && (this.headers = {
1139
- "Content-Type": i.httpRequest.headers["Content-Type"] || "application/json",
1140
- Authorization: i.httpRequest.headers.Authorization || `Bearer ${this.config.apiKey}`,
1141
- "X-Meilisearch-Client": i.httpRequest.headers["X-Meilisearch-Client"] || "Meilisearch JavaScript (v0.41.0)"
1137
+ updateHeadersFromClient(s) {
1138
+ s && s.httpRequest && s.httpRequest.headers && (this.headers = {
1139
+ "Content-Type": s.httpRequest.headers["Content-Type"] || "application/json",
1140
+ Authorization: s.httpRequest.headers.Authorization || `Bearer ${this.config.apiKey}`,
1141
+ "X-Meilisearch-Client": s.httpRequest.headers["X-Meilisearch-Client"] || "Meilisearch JavaScript (v0.41.0)"
1142
1142
  });
1143
1143
  }
1144
1144
  /**
1145
1145
  * Performs a search using MeiliSearch multi-search API
1146
1146
  * This matches the exact payload structure from your console logs
1147
1147
  */
1148
- async search(i, s = {}) {
1148
+ async search(s, i = {}) {
1149
1149
  const {
1150
1150
  limit: n = 20,
1151
1151
  offset: v = 0,
@@ -1153,14 +1153,14 @@ class Br {
1153
1153
  attributesToHighlight: w = ["display_name", "description", "published"],
1154
1154
  attributesToCrop: m = ["description", "published"],
1155
1155
  sort: g = []
1156
- } = s;
1156
+ } = i;
1157
1157
  if (!this.config.indexName)
1158
1158
  throw new Error("MeiliSearch indexName is required");
1159
1159
  const c = {
1160
1160
  queries: [
1161
1161
  {
1162
1162
  indexUid: this.config.indexName,
1163
- q: i,
1163
+ q: s,
1164
1164
  filter: [[], ...p],
1165
1165
  attributesToHighlight: w,
1166
1166
  highlightPreTag: "__meili-highlight__",
@@ -1200,7 +1200,7 @@ class Br {
1200
1200
  /**
1201
1201
  * Performs a simple search without facets (for basic search functionality)
1202
1202
  */
1203
- async simpleSearch(i, s = {}) {
1203
+ async simpleSearch(s, i = {}) {
1204
1204
  const {
1205
1205
  limit: n = 20,
1206
1206
  offset: v = 0,
@@ -1208,11 +1208,11 @@ class Br {
1208
1208
  attributesToHighlight: w = ["display_name", "description", "published"],
1209
1209
  attributesToCrop: m = ["description", "published"],
1210
1210
  sort: g = []
1211
- } = s, c = {
1211
+ } = i, c = {
1212
1212
  queries: [
1213
1213
  {
1214
1214
  indexUid: this.config.indexName,
1215
- q: i,
1215
+ q: s,
1216
1216
  filter: [[], ...p],
1217
1217
  attributesToHighlight: w,
1218
1218
  highlightPreTag: "__meili-highlight__",
@@ -1254,33 +1254,33 @@ class Br {
1254
1254
  "X-Meilisearch-Client": "Meilisearch JavaScript (v0.41.0)"
1255
1255
  }
1256
1256
  })).ok;
1257
- } catch (i) {
1258
- return console.error("MeiliSearch connection check failed:", i), !1;
1257
+ } catch (s) {
1258
+ return console.error("MeiliSearch connection check failed:", s), !1;
1259
1259
  }
1260
1260
  }
1261
1261
  }
1262
1262
  const mr = (t) => new Br(t);
1263
- function gr(t, i) {
1264
- const { contextKey: s, usageKey: n } = t;
1265
- return s ? s.startsWith("course-v1:") ? `${i || ""}/course/${s}?show=${encodeURIComponent(n || "")}` : s.startsWith("library-v1:") ? `${i || ""}/library/${s}` : "#" : "#";
1263
+ function gr(t, s) {
1264
+ const { contextKey: i, usageKey: n } = t;
1265
+ return i ? i.startsWith("course-v1:") ? `${s || ""}/course/${i}?show=${encodeURIComponent(n || "")}` : i.startsWith("library-v1:") ? `${s || ""}/library/${i}` : "#" : "#";
1266
1266
  }
1267
- function et(t, i, s) {
1268
- const n = gr(t, i);
1269
- return n === "#" ? (console.warn("Could not generate URL for search hit:", t), "#") : (s ? s(n) : (n.startsWith("http"), window.location.href = n), n);
1267
+ function et(t, s, i) {
1268
+ const n = gr(t, s);
1269
+ return n === "#" ? (console.warn("Could not generate URL for search hit:", t), "#") : (i ? i(n) : (n.startsWith("http"), window.location.href = n), n);
1270
1270
  }
1271
1271
  const ar = ({
1272
1272
  text: t,
1273
- highlightTag: i = "__meili-highlight__"
1273
+ highlightTag: s = "__meili-highlight__"
1274
1274
  }) => {
1275
1275
  if (!t) return null;
1276
- const s = "__/meili-highlight__", n = t.split(i), v = [];
1276
+ const i = "__/meili-highlight__", n = t.split(s), v = [];
1277
1277
  return n.forEach((p, w) => {
1278
1278
  if (w === 0)
1279
1279
  p && v.push(p);
1280
1280
  else {
1281
- const m = p.indexOf(s);
1281
+ const m = p.indexOf(i);
1282
1282
  if (m !== -1) {
1283
- const g = p.substring(0, m), c = p.substring(m + s.length);
1283
+ const g = p.substring(0, m), c = p.substring(m + i.length);
1284
1284
  g && v.push(
1285
1285
  /* @__PURE__ */ r.jsx("mark", { className: "search-highlight", children: g }, `highlight-${w}`)
1286
1286
  ), c && v.push(c);
@@ -1311,8 +1311,8 @@ function rt(t) {
1311
1311
  }
1312
1312
  const or = ({
1313
1313
  result: t,
1314
- onNavigate: i,
1315
- baseUrl: s
1314
+ onNavigate: s,
1315
+ baseUrl: i
1316
1316
  }) => {
1317
1317
  var g, c;
1318
1318
  const n = (o) => {
@@ -1331,10 +1331,10 @@ const or = ({
1331
1331
  }))) || []
1332
1332
  };
1333
1333
  if (t.url) {
1334
- i ? i(t.url) : window.location.href = t.url;
1334
+ s ? s(t.url) : window.location.href = t.url;
1335
1335
  return;
1336
1336
  }
1337
- et(d, s, i) === "#" && (i ? i(`/search-result/${t.id}`) : window.location.href = `/search-result/${t.id}`);
1337
+ et(d, i, s) === "#" && (s ? s(`/search-result/${t.id}`) : window.location.href = `/search-result/${t.id}`);
1338
1338
  }, v = (o) => {
1339
1339
  var b;
1340
1340
  o.preventDefault(), o.stopPropagation();
@@ -1347,7 +1347,7 @@ const or = ({
1347
1347
  displayName: u.display_name,
1348
1348
  usageKey: u.usage_key
1349
1349
  }))) || []
1350
- }, f = gr(d, s);
1350
+ }, f = gr(d, i);
1351
1351
  f && f !== "#" && window.open(f, "_blank");
1352
1352
  }, p = ((g = t._formatted) == null ? void 0 : g.display_name) || t.display_name, w = ((c = t._formatted) == null ? void 0 : c.description) || t.description, m = t.block_type || t.type;
1353
1353
  return /* @__PURE__ */ r.jsx(
@@ -1382,8 +1382,8 @@ const or = ({
1382
1382
  );
1383
1383
  }, cr = new Qr(), ot = ({
1384
1384
  logoUrl: t,
1385
- menuList: i,
1386
- loginSignupButtons: s,
1385
+ menuList: s,
1386
+ loginSignupButtons: i,
1387
1387
  authenticatedUser: n = null,
1388
1388
  userMenuItems: v,
1389
1389
  menuAlignment: p,
@@ -1659,12 +1659,12 @@ const or = ({
1659
1659
  ] }) }),
1660
1660
  n === null && /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
1661
1661
  /* @__PURE__ */ r.jsx(_e.Toggle, { "aria-controls": "main-navbar-nav" }),
1662
- /* @__PURE__ */ r.jsx("div", { className: "d-flex align-items-center gap-2 ms-auto order-lg-3", children: s && /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
1662
+ /* @__PURE__ */ r.jsx("div", { className: "d-flex align-items-center gap-2 ms-auto order-lg-3", children: i && /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
1663
1663
  /* @__PURE__ */ r.jsx($e, { variant: "primary", children: "Log In" }),
1664
1664
  /* @__PURE__ */ r.jsx($e, { variant: "outline-primary", children: "Sign Up" })
1665
1665
  ] }) })
1666
1666
  ] }),
1667
- /* @__PURE__ */ r.jsx(_e.Collapse, { id: "main-navbar-nav", className: "justify-content-between", children: /* @__PURE__ */ r.jsx(Ue, { className: `nav-gap gap-3 flex-grow-1 ${Re}`, children: n === null && i.map((h) => h.subMenu ? /* @__PURE__ */ r.jsx(Ge, { title: h.label, id: `nav-dropdown-${h.label}`, children: h.subMenu.map((T) => /* @__PURE__ */ r.jsx(Ge.Item, { onClick: () => console.log("Selected submenu:", T.label), children: T.label }, `sub-${T.label}`)) }, `menu-${h.label}`) : /* @__PURE__ */ r.jsx(Ue.Link, { as: "span", className: "text-uppercase fw-semibold", children: h.label }, `menu-${h.label}`)) }) }),
1667
+ /* @__PURE__ */ r.jsx(_e.Collapse, { id: "main-navbar-nav", className: "justify-content-between", children: /* @__PURE__ */ r.jsx(Ue, { className: `nav-gap gap-3 flex-grow-1 ${Re}`, children: n === null && s.map((h) => h.subMenu ? /* @__PURE__ */ r.jsx(Ge, { title: h.label, id: `nav-dropdown-${h.label}`, children: h.subMenu.map((T) => /* @__PURE__ */ r.jsx(Ge.Item, { onClick: () => console.log("Selected submenu:", T.label), children: T.label }, `sub-${T.label}`)) }, `menu-${h.label}`) : /* @__PURE__ */ r.jsx(Ue.Link, { as: "span", className: "text-uppercase fw-semibold", children: h.label }, `menu-${h.label}`)) }) }),
1668
1668
  g && J && /* @__PURE__ */ r.jsxs("div", { className: "fixed-search-bar", children: [
1669
1669
  /* @__PURE__ */ r.jsxs("div", { className: "fixed-search-bar-inner", children: [
1670
1670
  /* @__PURE__ */ r.jsxs("div", { style: {
@@ -1775,8 +1775,8 @@ const or = ({
1775
1775
  ] })
1776
1776
  ] })
1777
1777
  ] });
1778
- }, vr = ur(void 0), ct = ({ children: t, meiliSearchConfig: i }) => {
1779
- const [s, n] = k(""), [v, p] = k([]), [w, m] = k(0), [g, c] = k(!1), [o, d] = k(!1), [f, b] = k(null), [u, P] = k(0), [J, j] = k(!1), [I, S] = k(!1), [U, $] = k(null), G = mr(i), L = async (H) => {
1778
+ }, vr = ur(void 0), ct = ({ children: t, meiliSearchConfig: s }) => {
1779
+ const [i, n] = k(""), [v, p] = k([]), [w, m] = k(0), [g, c] = k(!1), [o, d] = k(!1), [f, b] = k(null), [u, P] = k(0), [J, j] = k(!1), [I, S] = k(!1), [U, $] = k(null), G = mr(s), L = async (H) => {
1780
1780
  if (!H.trim()) {
1781
1781
  X();
1782
1782
  return;
@@ -1809,7 +1809,7 @@ const or = ({
1809
1809
  if (!(!J || I)) {
1810
1810
  S(!0);
1811
1811
  try {
1812
- const H = u + 20, D = await G.simpleSearch(s, {
1812
+ const H = u + 20, D = await G.simpleSearch(i, {
1813
1813
  limit: 20,
1814
1814
  offset: H
1815
1815
  }), V = D.hits.map((E) => {
@@ -1835,7 +1835,7 @@ const or = ({
1835
1835
  }, X = () => {
1836
1836
  n(""), p([]), m(0), d(!1), b(null), P(0), j(!1), $(null);
1837
1837
  }, re = {
1838
- searchKeywords: s,
1838
+ searchKeywords: i,
1839
1839
  setSearchKeywords: n,
1840
1840
  searchResults: v,
1841
1841
  totalHits: w,
@@ -1859,19 +1859,19 @@ const or = ({
1859
1859
  try {
1860
1860
  if (t.status !== 200)
1861
1861
  throw new Error("Failed to fetch theme config");
1862
- const i = t.data.theme_colors;
1863
- if (!i || typeof i != "object")
1862
+ const s = t.data.theme_colors;
1863
+ if (!s || typeof s != "object")
1864
1864
  throw new Error("Invalid theme_colors in API response");
1865
- const s = document.documentElement;
1866
- for (const n in i)
1867
- if (Object.prototype.hasOwnProperty.call(i, n)) {
1868
- const v = i[n];
1869
- s.style.setProperty(`--${n.replace(/_/g, "-")}`, v);
1865
+ const i = document.documentElement;
1866
+ for (const n in s)
1867
+ if (Object.prototype.hasOwnProperty.call(s, n)) {
1868
+ const v = s[n];
1869
+ i.style.setProperty(`--${n.replace(/_/g, "-")}`, v);
1870
1870
  }
1871
- console.log("Theme applied successfully from API:", i);
1872
- } catch (i) {
1873
- console.error("Error applying theme from API:", i.message);
1874
- const s = {
1871
+ console.log("Theme applied successfully from API:", s);
1872
+ } catch (s) {
1873
+ console.error("Error applying theme from API:", s.message);
1874
+ const i = {
1875
1875
  primary: "#2B2399",
1876
1876
  primary_alt: "#3C32B5",
1877
1877
  primary_hover: "#E2E1F9",
@@ -1883,9 +1883,9 @@ const or = ({
1883
1883
  secondary_active: "#4A5BD1",
1884
1884
  secondary_light: "#ECEEFF"
1885
1885
  }, n = document.documentElement;
1886
- for (const v in s)
1887
- if (Object.prototype.hasOwnProperty.call(s, v)) {
1888
- const p = s[v];
1886
+ for (const v in i)
1887
+ if (Object.prototype.hasOwnProperty.call(i, v)) {
1888
+ const p = i[v];
1889
1889
  n.style.setProperty(`--${v.replace(/_/g, "-")}`, p);
1890
1890
  }
1891
1891
  console.log("Fallback theme applied");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "titaned-frontend-library",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "A comprehensive React TypeScript component library for TitanEd applications",
5
5
  "author": "TitanEd Team",
6
6
  "private": false,
@@ -46,7 +46,7 @@ const Sidebar: React.FC<SidebarProps> = ({ buttons, onNavigate, presentPath }) =
46
46
  setIsStandardRoute(isPathStandard);
47
47
  // If not standard route and sidebar is not collapsed, collapse it initially.
48
48
  // The slide-out panel will be shown/hidden via CSS based on isCollapsed and isStandardRoute.
49
- if (!isPathStandard && !isCollapsed && presentPath.includes('/course/')) {
49
+ if (!isPathStandard && !isCollapsed && (presentPath.includes('/course/') && !presentPath.includes('/learning/course/'))) {
50
50
  setSidebarCollapsed(true);
51
51
  }
52
52
  }, [presentPath]);
@@ -57,7 +57,7 @@ const Sidebar: React.FC<SidebarProps> = ({ buttons, onNavigate, presentPath }) =
57
57
  // Check if we are on a non-standard route and the sidebar is NOT collapsed (i.e., expanded overlay state)
58
58
  // Also check if the click is outside the sidebar element
59
59
  if (!isStandardRoute && sidebarRef.current
60
- && !sidebarRef.current.contains(event.target as Node) && presentPath.includes('/course/')) {
60
+ && !sidebarRef.current.contains(event.target as Node) && (presentPath.includes('/course/') && !presentPath.includes('/learning/course/'))) {
61
61
  if (!isCollapsed) {
62
62
  setSidebarCollapsed(true);
63
63
  }
@@ -321,6 +321,40 @@ body {
321
321
  }
322
322
  }
323
323
 
324
+ .btn-brand {
325
+ color: var(--primary-light) !important;
326
+ background-color: var(--primary) !important;
327
+ border-color: var(--primary) !important;
328
+ border-radius: 8px !important;
329
+
330
+ &:hover {
331
+ background-color: var(--primary-hover) !important;
332
+ border-color: var(--primary-hover) !important;
333
+ color: var(--primary-alt) !important;
334
+ }
335
+
336
+ &:active,
337
+ &.active {
338
+ background-color: var(--primary-active) !important;
339
+ border-color: var(--primary-active) !important;
340
+ color: var(--primary-light) !important;
341
+ }
342
+
343
+ &:disabled {
344
+ background-color: var(--disabled) !important;
345
+ border-color: var(--disabled) !important;
346
+ color: var(--primary-alt) !important;
347
+ }
348
+
349
+ &:focus::before {
350
+ border: none !important;
351
+ }
352
+
353
+ &:focus-visible {
354
+ outline: none !important;
355
+ }
356
+ }
357
+
324
358
  /* Dropdown Styles */
325
359
  .dropdown-menu {
326
360
  border-radius: 4px;