@hari_digitus/sms-ui-library 6.0.8 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SideNavBar.cjs.js +8 -8
- package/dist/SideNavBar.es.js +26 -25
- package/dist/sms-ui-library.css +1 -1
- package/package.json +1 -1
package/dist/SideNavBar.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("react");var oe={exports:{}},H={};/**
|
|
2
2
|
* @license React
|
|
3
3
|
* react-jsx-runtime.production.min.js
|
|
4
4
|
*
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* This source code is licensed under the MIT license found in the
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var Fe;function
|
|
9
|
+
*/var Fe;function pr(){if(Fe)return H;Fe=1;var w=O,P=Symbol.for("react.element"),m=Symbol.for("react.fragment"),C=Object.prototype.hasOwnProperty,k=w.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,N={key:!0,ref:!0,__self:!0,__source:!0};function I(x,p,D){var g,R={},S=null,$=null;D!==void 0&&(S=""+D),p.key!==void 0&&(S=""+p.key),p.ref!==void 0&&($=p.ref);for(g in p)C.call(p,g)&&!N.hasOwnProperty(g)&&(R[g]=p[g]);if(x&&x.defaultProps)for(g in p=x.defaultProps,p)R[g]===void 0&&(R[g]=p[g]);return{$$typeof:P,type:x,key:S,ref:$,props:R,_owner:k.current}}return H.Fragment=m,H.jsx=I,H.jsxs=I,H}var K={};/**
|
|
10
10
|
* @license React
|
|
11
11
|
* react-jsx-runtime.development.js
|
|
12
12
|
*
|
|
@@ -14,17 +14,17 @@
|
|
|
14
14
|
*
|
|
15
15
|
* This source code is licensed under the MIT license found in the
|
|
16
16
|
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/var Le;function
|
|
18
|
-
`+
|
|
17
|
+
*/var Le;function vr(){return Le||(Le=1,process.env.NODE_ENV!=="production"&&(function(){var w=O,P=Symbol.for("react.element"),m=Symbol.for("react.portal"),C=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),N=Symbol.for("react.profiler"),I=Symbol.for("react.provider"),x=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),D=Symbol.for("react.suspense"),g=Symbol.for("react.suspense_list"),R=Symbol.for("react.memo"),S=Symbol.for("react.lazy"),$=Symbol.for("react.offscreen"),E=Symbol.iterator,G="@@iterator";function Y(e){if(e===null||typeof e!="object")return null;var r=E&&e[E]||e[G];return typeof r=="function"?r:null}var F=w.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function v(e){{for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a<r;a++)n[a-1]=arguments[a];le("error",e,n)}}function le(e,r,n){{var a=F.ReactDebugCurrentFrame,o=a.getStackAddendum();o!==""&&(r+="%s",n=n.concat([o]));var l=n.map(function(s){return String(s)});l.unshift("Warning: "+r),Function.prototype.apply.call(console[e],console,l)}}var ue=!1,z=!1,ce=!1,X=!1,U=!1,B;B=Symbol.for("react.module.reference");function Z(e){return!!(typeof e=="string"||typeof e=="function"||e===C||e===N||U||e===k||e===D||e===g||X||e===$||ue||z||ce||typeof e=="object"&&e!==null&&(e.$$typeof===S||e.$$typeof===R||e.$$typeof===I||e.$$typeof===x||e.$$typeof===p||e.$$typeof===B||e.getModuleId!==void 0))}function fe(e,r,n){var a=e.displayName;if(a)return a;var o=r.displayName||r.name||"";return o!==""?n+"("+o+")":n}function Q(e){return e.displayName||"Context"}function T(e){if(e==null)return null;if(typeof e.tag=="number"&&v("Received an unexpected object in getComponentNameFromType(). 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 C:return"Fragment";case m:return"Portal";case N:return"Profiler";case k:return"StrictMode";case D:return"Suspense";case g:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case x:var r=e;return Q(r)+".Consumer";case I:var n=e;return Q(n._context)+".Provider";case p:return fe(e,e.render,"ForwardRef");case R:var a=e.displayName||null;return a!==null?a:T(e.type)||"Memo";case S:{var o=e,l=o._payload,s=o._init;try{return T(s(l))}catch{return null}}}return null}var u=Object.assign,j=0,A,c,ee,re,V,q,h;function te(){}te.__reactDisabledLog=!0;function de(){{if(j===0){A=console.log,c=console.info,ee=console.warn,re=console.error,V=console.group,q=console.groupCollapsed,h=console.groupEnd;var e={configurable:!0,enumerable:!0,value:te,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}j++}}function Ye(){{if(j--,j===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:u({},e,{value:A}),info:u({},e,{value:c}),warn:u({},e,{value:ee}),error:u({},e,{value:re}),group:u({},e,{value:V}),groupCollapsed:u({},e,{value:q}),groupEnd:u({},e,{value:h})})}j<0&&v("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var pe=F.ReactCurrentDispatcher,ve;function ne(e,r,n){{if(ve===void 0)try{throw Error()}catch(o){var a=o.stack.trim().match(/\n( *(at )?)/);ve=a&&a[1]||""}return`
|
|
18
|
+
`+ve+e}}var he=!1,ae;{var Ue=typeof WeakMap=="function"?WeakMap:Map;ae=new Ue}function ye(e,r){if(!e||he)return"";{var n=ae.get(e);if(n!==void 0)return n}var a;he=!0;var o=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var l;l=pe.current,pe.current=null,de();try{if(r){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(y){a=y}Reflect.construct(e,[],s)}else{try{s.call()}catch(y){a=y}e.call(s.prototype)}}else{try{throw Error()}catch(y){a=y}e()}}catch(y){if(y&&a&&typeof y.stack=="string"){for(var i=y.stack.split(`
|
|
19
19
|
`),b=a.stack.split(`
|
|
20
20
|
`),f=i.length-1,d=b.length-1;f>=1&&d>=0&&i[f]!==b[d];)d--;for(;f>=1&&d>=0;f--,d--)if(i[f]!==b[d]){if(f!==1||d!==1)do if(f--,d--,d<0||i[f]!==b[d]){var _=`
|
|
21
|
-
`+i[f].replace(" at new "," at ");return e.displayName&&_.includes("<anonymous>")&&(_=_.replace("<anonymous>",e.displayName)),typeof e=="function"&&ae.set(e,_),_}while(f>=1&&d>=0);break}}}finally{he=!1,
|
|
21
|
+
`+i[f].replace(" at new "," at ");return e.displayName&&_.includes("<anonymous>")&&(_=_.replace("<anonymous>",e.displayName)),typeof e=="function"&&ae.set(e,_),_}while(f>=1&&d>=0);break}}}finally{he=!1,pe.current=l,Ye(),Error.prepareStackTrace=o}var M=e?e.displayName||e.name:"",L=M?ne(M):"";return typeof e=="function"&&ae.set(e,L),L}function Be(e,r,n){return ye(e,!1)}function Ve(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function ie(e,r,n){if(e==null)return"";if(typeof e=="function")return ye(e,Ve(e));if(typeof e=="string")return ne(e);switch(e){case D:return ne("Suspense");case g:return ne("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case p:return Be(e.render);case R:return ie(e.type,r,n);case S:{var a=e,o=a._payload,l=a._init;try{return ie(l(o),r,n)}catch{}}}return""}var J=Object.prototype.hasOwnProperty,Ee={},Re=F.ReactDebugCurrentFrame;function se(e){if(e){var r=e._owner,n=ie(e.type,e._source,r?r.type:null);Re.setExtraStackFrame(n)}else Re.setExtraStackFrame(null)}function qe(e,r,n,a,o){{var l=Function.call.bind(J);for(var s in e)if(l(e,s)){var i=void 0;try{if(typeof e[s]!="function"){var b=Error((a||"React class")+": "+n+" type `"+s+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[s]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw b.name="Invariant Violation",b}i=e[s](r,s,a,n,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(f){i=f}i&&!(i instanceof Error)&&(se(o),v("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",a||"React class",n,s,typeof i),se(null)),i instanceof Error&&!(i.message in Ee)&&(Ee[i.message]=!0,se(o),v("Failed %s type: %s",n,i.message),se(null))}}}var Je=Array.isArray;function me(e){return Je(e)}function He(e){{var r=typeof Symbol=="function"&&Symbol.toStringTag,n=r&&e[Symbol.toStringTag]||e.constructor.name||"Object";return n}}function Ke(e){try{return _e(e),!1}catch{return!0}}function _e(e){return""+e}function Ce(e){if(Ke(e))return v("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",He(e)),_e(e)}var we=F.ReactCurrentOwner,Ge={key:!0,ref:!0,__self:!0,__source:!0},Se,Te;function ze(e){if(J.call(e,"ref")){var r=Object.getOwnPropertyDescriptor(e,"ref").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function Xe(e){if(J.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Ze(e,r){typeof e.ref=="string"&&we.current}function Qe(e,r){{var n=function(){Se||(Se=!0,v("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}}function er(e,r){{var n=function(){Te||(Te=!0,v("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};n.isReactWarning=!0,Object.defineProperty(e,"ref",{get:n,configurable:!0})}}var rr=function(e,r,n,a,o,l,s){var i={$$typeof:P,type:e,key:r,ref:n,props:s,_owner:l};return i._store={},Object.defineProperty(i._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(i,"_self",{configurable:!1,enumerable:!1,writable:!1,value:a}),Object.defineProperty(i,"_source",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.freeze&&(Object.freeze(i.props),Object.freeze(i)),i};function tr(e,r,n,a,o){{var l,s={},i=null,b=null;n!==void 0&&(Ce(n),i=""+n),Xe(r)&&(Ce(r.key),i=""+r.key),ze(r)&&(b=r.ref,Ze(r,o));for(l in r)J.call(r,l)&&!Ge.hasOwnProperty(l)&&(s[l]=r[l]);if(e&&e.defaultProps){var f=e.defaultProps;for(l in f)s[l]===void 0&&(s[l]=f[l])}if(i||b){var d=typeof e=="function"?e.displayName||e.name||"Unknown":e;i&&Qe(s,d),b&&er(s,d)}return rr(e,i,b,o,a,we.current,s)}}var xe=F.ReactCurrentOwner,Oe=F.ReactDebugCurrentFrame;function W(e){if(e){var r=e._owner,n=ie(e.type,e._source,r?r.type:null);Oe.setExtraStackFrame(n)}else Oe.setExtraStackFrame(null)}var ge;ge=!1;function be(e){return typeof e=="object"&&e!==null&&e.$$typeof===P}function Pe(){{if(xe.current){var e=T(xe.current.type);if(e)return`
|
|
22
22
|
|
|
23
|
-
Check the render method of \``+e+"`."}return""}}function nr(e){return""}var ke={};function ar(e){{var r=
|
|
23
|
+
Check the render method of \``+e+"`."}return""}}function nr(e){return""}var ke={};function ar(e){{var r=Pe();if(!r){var n=typeof e=="string"?e:e.displayName||e.name;n&&(r=`
|
|
24
24
|
|
|
25
|
-
Check the top-level render call using <`+n+">.")}return r}}function Ne(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var n=ar(r);if(ke[n])return;ke[n]=!0;var a="";e&&e._owner&&e._owner!==xe.current&&(a=" It was passed a child from "+
|
|
25
|
+
Check the top-level render call using <`+n+">.")}return r}}function Ne(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var n=ar(r);if(ke[n])return;ke[n]=!0;var a="";e&&e._owner&&e._owner!==xe.current&&(a=" It was passed a child from "+T(e._owner.type)+"."),W(e),v('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',n,a),W(null)}}function Ie(e,r){{if(typeof e!="object")return;if(me(e))for(var n=0;n<e.length;n++){var a=e[n];be(a)&&Ne(a,r)}else if(be(e))e._store&&(e._store.validated=!0);else if(e){var o=Y(e);if(typeof o=="function"&&o!==e.entries)for(var l=o.call(e),s;!(s=l.next()).done;)be(s.value)&&Ne(s.value,r)}}}function ir(e){{var r=e.type;if(r==null||typeof r=="string")return;var n;if(typeof r=="function")n=r.propTypes;else if(typeof r=="object"&&(r.$$typeof===p||r.$$typeof===R))n=r.propTypes;else return;if(n){var a=T(r);qe(n,e.props,"prop",a,e)}else if(r.PropTypes!==void 0&&!ge){ge=!0;var o=T(r);v("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",o||"Unknown")}typeof r.getDefaultProps=="function"&&!r.getDefaultProps.isReactClassApproved&&v("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function sr(e){{for(var r=Object.keys(e.props),n=0;n<r.length;n++){var a=r[n];if(a!=="children"&&a!=="key"){W(e),v("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",a),W(null);break}}e.ref!==null&&(W(e),v("Invalid attribute `ref` supplied to `React.Fragment`."),W(null))}}var De={};function Ae(e,r,n,a,o,l){{var s=Z(e);if(!s){var i="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(i+=" 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 b=nr();b?i+=b:i+=Pe();var f;e===null?f="null":me(e)?f="array":e!==void 0&&e.$$typeof===P?(f="<"+(T(e.type)||"Unknown")+" />",i=" Did you accidentally export a JSX literal instead of a component?"):f=typeof e,v("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",f,i)}var d=tr(e,r,n,o,l);if(d==null)return d;if(s){var _=r.children;if(_!==void 0)if(a)if(me(_)){for(var M=0;M<_.length;M++)Ie(_[M],e);Object.freeze&&Object.freeze(_)}else v("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 Ie(_,e)}if(J.call(r,"key")){var L=T(e),y=Object.keys(r).filter(function(dr){return dr!=="key"}),je=y.length>0?"{key: someKey, "+y.join(": ..., ")+": ...}":"{key: someKey}";if(!De[L+je]){var fr=y.length>0?"{"+y.join(": ..., ")+": ...}":"{}";v(`A props object containing a "key" prop is being spread into JSX:
|
|
26
26
|
let props = %s;
|
|
27
27
|
<%s {...props} />
|
|
28
28
|
React keys must be passed directly to JSX without using spread:
|
|
29
29
|
let props = %s;
|
|
30
|
-
<%s key={someKey} {...props} />`,je,L,fr,L),De[L+je]=!0}}return e===C?sr(d):ir(d),d}}function or(e,r,n){return Ae(e,r,n,!0)}function lr(e,r,n){return Ae(e,r,n,!1)}var ur=lr,cr=or;K.Fragment=C,K.jsx=ur,K.jsxs=cr})()),K}var $e;function hr(){return $e||($e=1,process.env.NODE_ENV==="production"?oe.exports=
|
|
30
|
+
<%s key={someKey} {...props} />`,je,L,fr,L),De[L+je]=!0}}return e===C?sr(d):ir(d),d}}function or(e,r,n){return Ae(e,r,n,!0)}function lr(e,r,n){return Ae(e,r,n,!1)}var ur=lr,cr=or;K.Fragment=C,K.jsx=ur,K.jsxs=cr})()),K}var $e;function hr(){return $e||($e=1,process.env.NODE_ENV==="production"?oe.exports=pr():oe.exports=vr()),oe.exports}var t=hr();const We=O.createContext(null),mr=({children:w})=>{const[P,m]=O.useState(!0),[C,k]=O.useState(null),N=()=>{m(x=>!x),k(null)},I=x=>{k(p=>p===x?null:x)};return t.jsx(We.Provider,{value:{isExpanded:P,toggleSidebar:N,openSubmenu:C,toggleSubmenu:I},children:w})},Me=()=>{const w=O.useContext(We);if(!w)throw new Error("useSidebar must be used inside <SidebarProvider>");return w},xr=()=>t.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",children:[t.jsx("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M20.3334 7C20.3334 7.55228 20.0072 8 19.6048 8L4.06194 8C3.65957 8 3.33337 7.55228 3.33337 7C3.33337 6.44772 3.65957 6 4.06194 6L19.6048 6C20.0072 6 20.3334 6.44772 20.3334 7Z",fill:"white"}),t.jsx("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M20.3334 12C20.3334 12.5523 20.0072 13 19.6048 13L4.06194 13C3.65957 13 3.33337 12.5523 3.33337 12C3.33337 11.4477 3.65957 11 4.06194 11L19.6048 11C20.0072 11 20.3334 11.4477 20.3334 12Z",fill:"white"}),t.jsx("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M20.3334 17C20.3334 17.5523 20.0072 18 19.6048 18L4.06194 18C3.65957 18 3.33337 17.5523 3.33337 17C3.33337 16.4477 3.65957 16 4.06194 16L19.6048 16C20.0072 16 20.3334 16.4477 20.3334 17Z",fill:"white"})]}),gr=()=>t.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[t.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),t.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),br=()=>t.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[t.jsx("circle",{cx:"12",cy:"12",r:"10"}),t.jsx("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"}),t.jsx("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]}),jr=()=>t.jsxs("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",children:[t.jsx("rect",{width:"32",height:"32",rx:"8",fill:"currentColor",opacity:"0.15"}),t.jsx("circle",{cx:"16",cy:"16",r:"6",fill:"currentColor"})]}),yr=()=>t.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[t.jsx("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),t.jsx("polyline",{points:"16 17 21 12 16 7"}),t.jsx("line",{x1:"21",y1:"12",x2:"9",y2:"12"})]}),Er=({config:w})=>{const{navItems:P,user:m,createButtonRoles:C,createButtonLabel:k="Create",createButtonPath:N,brandName:I="Amphenol",brandSubtitle:x="COMMUNICATION SOLUTIONS",logo:p,helpLabel:D="Help Center",helpIcon:g,onSignOut:R,onNavigate:S,className:$=""}=w,{isExpanded:E,toggleSidebar:G,openSubmenu:Y,toggleSubmenu:F}=Me(),[v,le]=O.useState(window.location.pathname),[ue,z]=O.useState(!1),[ce,X]=O.useState(!1);O.useEffect(()=>{const u=()=>le(window.location.pathname);return window.addEventListener("popstate",u),()=>window.removeEventListener("popstate",u)},[]);const U=(u,j)=>{u.preventDefault(),j&&(S?S(j):(window.history.pushState({},"",j),window.dispatchEvent(new PopStateEvent("popstate"))))},B=()=>m.email?m.email.split("@")[0]:"User",Z=()=>m.email?m.email.charAt(0).toUpperCase():"U",fe=()=>{R?R():window.location.href="/c/portal/logout"},Q=!C||C.includes(m.role),T=P.reduce((u,j)=>{const A=j.section||"GENERAL";return u[A]||(u[A]=[]),u[A].push(j),u},{});return t.jsxs("aside",{style:{backgroundColor:"#0f172a"},className:`rdr-sidebar ${E?"expanded":"collapsed"} ${$}`,children:[t.jsxs("div",{className:"sidebar-header",children:[t.jsxs("div",{className:"logo-section",onClick:G,children:[t.jsx("span",{className:"logo-icon ",style:{color:"var(--sidebar-accent)",marginTop:"15px"},children:p??t.jsx(jr,{})}),E&&t.jsxs("div",{className:"brand-text",children:[t.jsx("h2",{children:I}),x&&t.jsx("span",{children:x})]})]}),E&&t.jsx("button",{className:"menu-toggle",onClick:G,"aria-label":"Collapse sidebar",children:t.jsx(xr,{})})]}),Q&&N&&t.jsx("div",{className:"sidebar-actions",children:t.jsxs("button",{className:"sidebar-create-btn",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:"8px",width:"100%",height:"44px",padding:"0 16px",borderRadius:"10px",border:"none",outline:"none",boxShadow:"none",cursor:"pointer",fontSize:"14px",fontWeight:600,color:"#fff",background:ce?"#149B6E":"#18B885",transition:"background-color 0.2s ease"},onMouseEnter:()=>X(!0),onMouseLeave:()=>X(!1),onClick:u=>U(u,N),children:[t.jsx(gr,{}),E&&t.jsx("span",{children:k})]})}),t.jsx("div",{className:"sidebar-nav",children:Object.entries(T).map(([u,j])=>{const A=j.filter(c=>!c.roles||c.roles.includes(m.role));return A.length?t.jsxs("div",{className:"nav-section",style:{listStyleType:"none"},children:[E&&t.jsx("h4",{className:"section-title",children:u}),t.jsx("ul",{className:"nav-items",children:A.map(c=>{var V,q;const ee=(V=c.subItems)==null?void 0:V.some(h=>h.path&&v.includes(h.path)),re=c.path?v===c.path:!1;return t.jsx("li",{children:(q=c.subItems)!=null&&q.length?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:`nav-item ${Y===c.name||ee?"active":""}`,"data-label":c.name,onClick:()=>F(c.name),children:[t.jsx("span",{className:"nav-icon",children:c.icon}),E&&t.jsxs(t.Fragment,{children:[t.jsx("span",{className:"nav-text",children:c.name}),t.jsx("span",{className:"submenu-arrow",children:Y===c.name?"−":"+"})]})]}),E&&Y===c.name&&t.jsx("ul",{className:"submenu",children:c.subItems.map(h=>{const te=h.path?v===h.path:!1;return t.jsx("li",{children:t.jsxs("a",{href:h.path||"/",onClick:de=>U(de,h.path),className:`submenu-item ${te?"active-sub":""}`,children:[h.icon&&t.jsx("span",{className:"submenu-icon",children:h.icon}),t.jsx("span",{children:h.name})]})},h.name)})})]}):t.jsxs("a",{href:c.path||"/","data-label":c.name,onClick:h=>U(h,c.path),className:`nav-item ${re?"active":""}`,children:[t.jsx("span",{className:"nav-icon",children:c.icon}),E&&t.jsx("span",{className:"nav-text",children:c.name})]})},c.name)})})]},u):null})}),t.jsxs("div",{className:"sidebar-footer",children:[t.jsxs("div",{className:"footer-link","data-label":D,children:[t.jsx("span",{children:g??t.jsx(br,{})}),E&&t.jsx("span",{children:D})]}),t.jsxs("div",{className:"user-profile-wrapper",children:[t.jsxs("div",{className:"user-profile",onClick:()=>z(u=>!u),children:[t.jsx("div",{className:"avatar",children:Z()}),E&&t.jsxs("div",{className:"user-info",children:[t.jsx("div",{className:"user-name",children:B()}),t.jsx("div",{className:"user-role",children:m.roleName})]})]}),ue&&t.jsxs("div",{className:"profile-popup",children:[t.jsx("button",{className:"popup-close",onClick:()=>z(!1),"aria-label":"Close",children:"✕"}),t.jsxs("div",{className:"popup-header",children:[t.jsx("div",{className:"popup-avatar",children:Z()}),t.jsxs("div",{className:"popup-user-details",children:[t.jsx("div",{className:"popup-name",children:B()}),t.jsx("div",{className:"popup-role",children:m.roleName}),t.jsx("div",{className:"popup-email",children:m.email})]})]}),t.jsx("div",{className:"popup-divider"}),t.jsxs("button",{className:"signout-btn",onClick:fe,children:[t.jsx(yr,{}),t.jsx("span",{children:"Sign Out"})]})]})]})]})]})};exports.SideNavbar=Er;exports.SidebarProvider=mr;exports.useSidebar=Me;
|
package/dist/SideNavBar.es.js
CHANGED
|
@@ -13,13 +13,13 @@ var Fe;
|
|
|
13
13
|
function mr() {
|
|
14
14
|
if (Fe) return q;
|
|
15
15
|
Fe = 1;
|
|
16
|
-
var w = We,
|
|
16
|
+
var w = We, O = Symbol.for("react.element"), m = Symbol.for("react.fragment"), C = Object.prototype.hasOwnProperty, P = w.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, k = { key: !0, ref: !0, __self: !0, __source: !0 };
|
|
17
17
|
function N(x, p, I) {
|
|
18
18
|
var g, R = {}, S = null, L = null;
|
|
19
19
|
I !== void 0 && (S = "" + I), p.key !== void 0 && (S = "" + p.key), p.ref !== void 0 && (L = p.ref);
|
|
20
20
|
for (g in p) C.call(p, g) && !k.hasOwnProperty(g) && (R[g] = p[g]);
|
|
21
21
|
if (x && x.defaultProps) for (g in p = x.defaultProps, p) R[g] === void 0 && (R[g] = p[g]);
|
|
22
|
-
return { $$typeof:
|
|
22
|
+
return { $$typeof: O, type: x, key: S, ref: L, props: R, _owner: P.current };
|
|
23
23
|
}
|
|
24
24
|
return q.Fragment = m, q.jsx = N, q.jsxs = N, q;
|
|
25
25
|
}
|
|
@@ -36,7 +36,7 @@ var H = {};
|
|
|
36
36
|
var Le;
|
|
37
37
|
function xr() {
|
|
38
38
|
return Le || (Le = 1, process.env.NODE_ENV !== "production" && (function() {
|
|
39
|
-
var w = We,
|
|
39
|
+
var w = We, O = Symbol.for("react.element"), m = Symbol.for("react.portal"), C = Symbol.for("react.fragment"), P = Symbol.for("react.strict_mode"), k = Symbol.for("react.profiler"), N = Symbol.for("react.provider"), x = Symbol.for("react.context"), p = Symbol.for("react.forward_ref"), I = Symbol.for("react.suspense"), g = Symbol.for("react.suspense_list"), R = Symbol.for("react.memo"), S = Symbol.for("react.lazy"), L = Symbol.for("react.offscreen"), E = Symbol.iterator, G = "@@iterator";
|
|
40
40
|
function M(e) {
|
|
41
41
|
if (e === null || typeof e != "object")
|
|
42
42
|
return null;
|
|
@@ -80,7 +80,7 @@ function xr() {
|
|
|
80
80
|
function Q(e) {
|
|
81
81
|
return e.displayName || "Context";
|
|
82
82
|
}
|
|
83
|
-
function
|
|
83
|
+
function T(e) {
|
|
84
84
|
if (e == null)
|
|
85
85
|
return null;
|
|
86
86
|
if (typeof e.tag == "number" && v("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), typeof e == "function")
|
|
@@ -113,11 +113,11 @@ function xr() {
|
|
|
113
113
|
return fe(e, e.render, "ForwardRef");
|
|
114
114
|
case R:
|
|
115
115
|
var a = e.displayName || null;
|
|
116
|
-
return a !== null ? a :
|
|
116
|
+
return a !== null ? a : T(e.type) || "Memo";
|
|
117
117
|
case S: {
|
|
118
118
|
var o = e, l = o._payload, s = o._init;
|
|
119
119
|
try {
|
|
120
|
-
return
|
|
120
|
+
return T(s(l));
|
|
121
121
|
} catch {
|
|
122
122
|
return null;
|
|
123
123
|
}
|
|
@@ -369,7 +369,7 @@ function xr() {
|
|
|
369
369
|
ref: !0,
|
|
370
370
|
__self: !0,
|
|
371
371
|
__source: !0
|
|
372
|
-
}, Se,
|
|
372
|
+
}, Se, Te;
|
|
373
373
|
function ze(e) {
|
|
374
374
|
if (J.call(e, "ref")) {
|
|
375
375
|
var r = Object.getOwnPropertyDescriptor(e, "ref").get;
|
|
@@ -403,7 +403,7 @@ function xr() {
|
|
|
403
403
|
function er(e, r) {
|
|
404
404
|
{
|
|
405
405
|
var t = function() {
|
|
406
|
-
|
|
406
|
+
Te || (Te = !0, v("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)", r));
|
|
407
407
|
};
|
|
408
408
|
t.isReactWarning = !0, Object.defineProperty(e, "ref", {
|
|
409
409
|
get: t,
|
|
@@ -414,7 +414,7 @@ function xr() {
|
|
|
414
414
|
var rr = function(e, r, t, a, o, l, s) {
|
|
415
415
|
var i = {
|
|
416
416
|
// This tag allows us to uniquely identify this as a React Element
|
|
417
|
-
$$typeof:
|
|
417
|
+
$$typeof: O,
|
|
418
418
|
// Built-in properties that belong on the element
|
|
419
419
|
type: e,
|
|
420
420
|
key: r,
|
|
@@ -458,23 +458,23 @@ function xr() {
|
|
|
458
458
|
return rr(e, i, b, o, a, we.current, s);
|
|
459
459
|
}
|
|
460
460
|
}
|
|
461
|
-
var xe = A.ReactCurrentOwner,
|
|
461
|
+
var xe = A.ReactCurrentOwner, Oe = A.ReactDebugCurrentFrame;
|
|
462
462
|
function $(e) {
|
|
463
463
|
if (e) {
|
|
464
464
|
var r = e._owner, t = ie(e.type, e._source, r ? r.type : null);
|
|
465
|
-
|
|
465
|
+
Oe.setExtraStackFrame(t);
|
|
466
466
|
} else
|
|
467
|
-
|
|
467
|
+
Oe.setExtraStackFrame(null);
|
|
468
468
|
}
|
|
469
469
|
var ge;
|
|
470
470
|
ge = !1;
|
|
471
471
|
function be(e) {
|
|
472
|
-
return typeof e == "object" && e !== null && e.$$typeof ===
|
|
472
|
+
return typeof e == "object" && e !== null && e.$$typeof === O;
|
|
473
473
|
}
|
|
474
474
|
function Pe() {
|
|
475
475
|
{
|
|
476
476
|
if (xe.current) {
|
|
477
|
-
var e =
|
|
477
|
+
var e = T(xe.current.type);
|
|
478
478
|
if (e)
|
|
479
479
|
return `
|
|
480
480
|
|
|
@@ -509,7 +509,7 @@ Check the top-level render call using <` + t + ">.");
|
|
|
509
509
|
return;
|
|
510
510
|
ke[t] = !0;
|
|
511
511
|
var a = "";
|
|
512
|
-
e && e._owner && e._owner !== xe.current && (a = " It was passed a child from " +
|
|
512
|
+
e && e._owner && e._owner !== xe.current && (a = " It was passed a child from " + T(e._owner.type) + "."), $(e), v('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.', t, a), $(null);
|
|
513
513
|
}
|
|
514
514
|
}
|
|
515
515
|
function Ie(e, r) {
|
|
@@ -546,11 +546,11 @@ Check the top-level render call using <` + t + ">.");
|
|
|
546
546
|
else
|
|
547
547
|
return;
|
|
548
548
|
if (t) {
|
|
549
|
-
var a =
|
|
549
|
+
var a = T(r);
|
|
550
550
|
Je(t, e.props, "prop", a, e);
|
|
551
551
|
} else if (r.PropTypes !== void 0 && !ge) {
|
|
552
552
|
ge = !0;
|
|
553
|
-
var o =
|
|
553
|
+
var o = T(r);
|
|
554
554
|
v("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?", o || "Unknown");
|
|
555
555
|
}
|
|
556
556
|
typeof r.getDefaultProps == "function" && !r.getDefaultProps.isReactClassApproved && v("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.");
|
|
@@ -578,7 +578,7 @@ Check the top-level render call using <` + t + ">.");
|
|
|
578
578
|
var b = tr();
|
|
579
579
|
b ? i += b : i += Pe();
|
|
580
580
|
var f;
|
|
581
|
-
e === null ? f = "null" : me(e) ? f = "array" : e !== void 0 && e.$$typeof ===
|
|
581
|
+
e === null ? f = "null" : me(e) ? f = "array" : e !== void 0 && e.$$typeof === O ? (f = "<" + (T(e.type) || "Unknown") + " />", i = " Did you accidentally export a JSX literal instead of a component?") : f = typeof e, v("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s", f, i);
|
|
582
582
|
}
|
|
583
583
|
var d = nr(e, r, t, o, l);
|
|
584
584
|
if (d == null)
|
|
@@ -597,7 +597,7 @@ Check the top-level render call using <` + t + ">.");
|
|
|
597
597
|
Ie(_, e);
|
|
598
598
|
}
|
|
599
599
|
if (J.call(r, "key")) {
|
|
600
|
-
var F =
|
|
600
|
+
var F = T(e), y = Object.keys(r).filter(function(dr) {
|
|
601
601
|
return dr !== "key";
|
|
602
602
|
}), je = y.length > 0 ? "{key: someKey, " + y.join(": ..., ") + ": ...}" : "{key: someKey}";
|
|
603
603
|
if (!De[F + je]) {
|
|
@@ -629,7 +629,7 @@ function gr() {
|
|
|
629
629
|
}
|
|
630
630
|
var n = gr();
|
|
631
631
|
const Me = pr(null), wr = ({ children: w }) => {
|
|
632
|
-
const [
|
|
632
|
+
const [O, m] = K(!0), [C, P] = K(null), k = () => {
|
|
633
633
|
m((x) => !x), P(null);
|
|
634
634
|
}, N = (x) => {
|
|
635
635
|
P((p) => p === x ? null : x);
|
|
@@ -637,7 +637,7 @@ const Me = pr(null), wr = ({ children: w }) => {
|
|
|
637
637
|
return /* @__PURE__ */ n.jsx(
|
|
638
638
|
Me.Provider,
|
|
639
639
|
{
|
|
640
|
-
value: { isExpanded:
|
|
640
|
+
value: { isExpanded: O, toggleSidebar: k, openSubmenu: C, toggleSubmenu: N },
|
|
641
641
|
children: w
|
|
642
642
|
}
|
|
643
643
|
);
|
|
@@ -665,7 +665,7 @@ const Me = pr(null), wr = ({ children: w }) => {
|
|
|
665
665
|
/* @__PURE__ */ n.jsx("line", { x1: "21", y1: "12", x2: "9", y2: "12" })
|
|
666
666
|
] }), Sr = ({ config: w }) => {
|
|
667
667
|
const {
|
|
668
|
-
navItems:
|
|
668
|
+
navItems: O,
|
|
669
669
|
user: m,
|
|
670
670
|
createButtonRoles: C,
|
|
671
671
|
createButtonLabel: P = "Create",
|
|
@@ -687,7 +687,7 @@ const Me = pr(null), wr = ({ children: w }) => {
|
|
|
687
687
|
c.preventDefault(), j && (S ? S(j) : (window.history.pushState({}, "", j), window.dispatchEvent(new PopStateEvent("popstate"))));
|
|
688
688
|
}, U = () => m.email ? m.email.split("@")[0] : "User", Z = () => m.email ? m.email.charAt(0).toUpperCase() : "U", fe = () => {
|
|
689
689
|
R ? R() : window.location.href = "/c/portal/logout";
|
|
690
|
-
}, Q = !C || C.includes(m.role),
|
|
690
|
+
}, Q = !C || C.includes(m.role), T = O.reduce(
|
|
691
691
|
(c, j) => {
|
|
692
692
|
const D = j.section || "GENERAL";
|
|
693
693
|
return c[D] || (c[D] = []), c[D].push(j), c;
|
|
@@ -697,11 +697,12 @@ const Me = pr(null), wr = ({ children: w }) => {
|
|
|
697
697
|
return /* @__PURE__ */ n.jsxs(
|
|
698
698
|
"aside",
|
|
699
699
|
{
|
|
700
|
+
style: { backgroundColor: "#0f172a" },
|
|
700
701
|
className: `rdr-sidebar ${E ? "expanded" : "collapsed"} ${L}`,
|
|
701
702
|
children: [
|
|
702
703
|
/* @__PURE__ */ n.jsxs("div", { className: "sidebar-header", children: [
|
|
703
704
|
/* @__PURE__ */ n.jsxs("div", { className: "logo-section", onClick: G, children: [
|
|
704
|
-
/* @__PURE__ */ n.jsx("span", { className: "logo-icon", style: { color: "var(--sidebar-accent)" }, children: p ?? /* @__PURE__ */ n.jsx(Rr, {}) }),
|
|
705
|
+
/* @__PURE__ */ n.jsx("span", { className: "logo-icon ", style: { color: "var(--sidebar-accent)", marginTop: "15px" }, children: p ?? /* @__PURE__ */ n.jsx(Rr, {}) }),
|
|
705
706
|
E && /* @__PURE__ */ n.jsxs("div", { className: "brand-text", children: [
|
|
706
707
|
/* @__PURE__ */ n.jsx("h2", { children: N }),
|
|
707
708
|
x && /* @__PURE__ */ n.jsx("span", { children: x })
|
|
@@ -749,7 +750,7 @@ const Me = pr(null), wr = ({ children: w }) => {
|
|
|
749
750
|
]
|
|
750
751
|
}
|
|
751
752
|
) }),
|
|
752
|
-
/* @__PURE__ */ n.jsx("div", { className: "sidebar-nav", children: Object.entries(
|
|
753
|
+
/* @__PURE__ */ n.jsx("div", { className: "sidebar-nav", children: Object.entries(T).map(([c, j]) => {
|
|
753
754
|
const D = j.filter(
|
|
754
755
|
(u) => !u.roles || u.roles.includes(m.role)
|
|
755
756
|
);
|
package/dist/sms-ui-library.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
body{overflow-y:hidden!important}:root{--sidebar-width-expanded: 260px;--sidebar-width-collapsed: 64px;--sidebar-transition: .22s cubic-bezier(.4, 0, .2, 1);--sidebar-bg: #0f172a;--sidebar-border: #1e293b !important;--sidebar-text-primary: #ffffff;--sidebar-text-secondary: #cbd5e1;--sidebar-text-muted: #94a3b8;--sidebar-section-label: #64748b;--sidebar-accent: #059669;--sidebar-accent-hover: #047857;--sidebar-accent-dim: rgba(5, 150, 105, .12);--sidebar-accent-bright: #10b981;--sidebar-item-hover: rgba(255, 255, 255, .05);--sidebar-danger: #ef4444;--sidebar-avatar-bg: #059669;--sidebar-avatar-text: #ffffff;--sidebar-popup-bg: #ffffff;--sidebar-popup-border: #e5e7eb;--sidebar-popup-shadow: 0 4px 16px rgba(0, 0, 0, .15);--sidebar-popup-text: #222222;--sidebar-popup-text-secondary: #666666;--sidebar-popup-text-muted: #888888;--sidebar-popup-close-color: #374151}.rdr-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:100;display:flex;flex-direction:column;width:var(--sidebar-width-expanded);height:100vh;background-color:var(--sidebar-bg);color:#e2e8f0;border-right:1px solid var(--sidebar-border);box-sizing:border-box;overflow:hidden;transition:width var(--sidebar-transition);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.rdr-sidebar.expanded{width:var(--sidebar-width-expanded)}.rdr-sidebar.collapsed{width:var(--sidebar-width-collapsed)}.sidebar-header{display:flex;align-items:center;padding:24px 20px;gap:12px;flex-shrink:0}.logo-section{display:flex;align-items:center;gap:12px;cursor:pointer;min-width:0;flex:1;-webkit-user-select:none;user-select:none}.brand-logo{background:linear-gradient(135deg,#60a5fa,#3b82f6);width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:#fff;flex-shrink:0}.logo-icon{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.brand-text{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.brand-text h2{margin:0;font-size:23px;font-weight:600;color:var(--sidebar-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-text span{font-size:9px;color:var(--sidebar-text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:
|
|
1
|
+
body{overflow-y:hidden!important}:root{--sidebar-width-expanded: 260px;--sidebar-width-collapsed: 64px;--sidebar-transition: .22s cubic-bezier(.4, 0, .2, 1);--sidebar-bg: #0f172a;--sidebar-border: #1e293b !important;--sidebar-text-primary: #ffffff;--sidebar-text-secondary: #cbd5e1;--sidebar-text-muted: #94a3b8;--sidebar-section-label: #64748b;--sidebar-accent: #059669;--sidebar-accent-hover: #047857;--sidebar-accent-dim: rgba(5, 150, 105, .12);--sidebar-accent-bright: #10b981;--sidebar-item-hover: rgba(255, 255, 255, .05);--sidebar-danger: #ef4444;--sidebar-avatar-bg: #059669;--sidebar-avatar-text: #ffffff;--sidebar-popup-bg: #ffffff;--sidebar-popup-border: #e5e7eb;--sidebar-popup-shadow: 0 4px 16px rgba(0, 0, 0, .15);--sidebar-popup-text: #222222;--sidebar-popup-text-secondary: #666666;--sidebar-popup-text-muted: #888888;--sidebar-popup-close-color: #374151}.rdr-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:100;display:flex;flex-direction:column;width:var(--sidebar-width-expanded);height:100vh;background-color:var(--sidebar-bg);color:#e2e8f0;border-right:1px solid var(--sidebar-border);box-sizing:border-box;overflow:hidden;transition:width var(--sidebar-transition);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.rdr-sidebar.expanded{width:var(--sidebar-width-expanded)}.rdr-sidebar.collapsed{width:var(--sidebar-width-collapsed)}.sidebar-header{display:flex;align-items:center;padding:24px 20px;gap:12px;flex-shrink:0}.logo-section{display:flex;align-items:center;gap:12px;cursor:pointer;min-width:0;flex:1;-webkit-user-select:none;user-select:none}.brand-logo{background:linear-gradient(135deg,#60a5fa,#3b82f6);width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px;color:#fff;flex-shrink:0}.logo-icon{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.brand-text{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.brand-text h2{margin:0;font-size:23px;font-weight:600;color:var(--sidebar-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-text span{font-size:9px;color:var(--sidebar-text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:20px!important}.menu-toggle{background:none!important;border:none!important;box-shadow:none!important;color:#cbd5e1;cursor:pointer;padding:0!important;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:6px;width:32px;height:32px;transition:background .15s,color .15s}.menu-toggle:hover{background:var(--sidebar-item-hover)!important;color:var(--sidebar-text-primary)}.sidebar-actions{padding:0 20px 24px;flex-shrink:0}.sidebar-create-btn{width:100%;background-color:var(--sidebar-accent);color:#fff;border:none;border-radius:8px;padding:10px;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:background-color .2s;height:44px;outline:none;box-shadow:none}.sidebar-create-btn:hover{background-color:var(--sidebar-accent-hover)}.sidebar-nav{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:2px}.nav-section{margin-bottom:24px;list-style-type:none!important;padding:0}.section-title{font-size:11px;font-weight:600;color:var(--sidebar-section-label);padding:0 20px;margin:0 0 12px;letter-spacing:.5px;text-transform:uppercase;-webkit-user-select:none;user-select:none;white-space:nowrap;overflow:hidden}.nav-items{list-style:none;padding:0;margin:0}.nav-items li{margin:0}.nav-item{display:flex;align-items:center;padding:12px 20px;gap:16px;cursor:pointer;color:#cbd5e1;transition:all .2s;position:relative;text-decoration:none;font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden}.nav-item.active{background-color:transparent;color:var(--sidebar-text-primary)}.nav-item.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background-color:var(--sidebar-accent)}.nav-item:hover{background-color:#ffffff0d;color:var(--sidebar-text-primary);border:1px solid rgba(255,255,255,.1);border-radius:6px;text-decoration:none}.nav-icon{display:flex;align-items:center;justify-content:center;color:#94a3b8;flex-shrink:0;width:20px;height:20px;transition:color .15s}.nav-icon svg{width:18px;height:18px}.nav-item.active .nav-icon{color:var(--sidebar-accent-bright)}.nav-text{font-size:14px;font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.submenu-arrow{flex-shrink:0;font-size:16px;font-weight:400;color:#94a3b8;line-height:1}.submenu{list-style:none;margin:0;padding:0 0 0 56px;background-color:#00000026}.submenu li{margin:0}.submenu-item{display:flex;align-items:center;gap:8px;padding:10px 20px 10px 0;cursor:pointer;text-decoration:none;color:#94a3b8;font-size:13px;font-weight:400;transition:color .15s,background .15s;white-space:nowrap;overflow:hidden}.submenu-item:hover{color:var(--sidebar-text-primary);text-decoration:none}.submenu-item.active-sub{color:var(--sidebar-accent-bright);font-weight:600}.submenu-icon{flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center}.submenu-icon svg{width:14px;height:14px}.sidebar-footer{padding:20px;border-top:1px solid rgba(255,255,255,.05);flex-shrink:0;display:flex;flex-direction:column;gap:0}.footer-link{display:flex;align-items:center;gap:16px;color:#cbd5e1;cursor:pointer;margin-bottom:24px;transition:color .15s;-webkit-user-select:none;user-select:none;white-space:nowrap;overflow:hidden}.footer-link:hover{color:var(--sidebar-text-primary)}.footer-link span:first-child{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.footer-link span:first-child svg{width:18px;height:18px}.user-profile-wrapper{position:relative}.user-profile{display:flex;align-items:center;gap:12px;cursor:pointer;transition:background .15s;border-radius:8px;padding:4px;margin:-4px}.user-profile:hover{background:var(--sidebar-item-hover)}.avatar{width:36px;height:36px;border-radius:8px;background-color:var(--sidebar-avatar-bg);color:var(--sidebar-avatar-text);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;text-transform:uppercase}.user-info{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden}.user-name{font-size:14px;font-weight:600;color:var(--sidebar-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:11px;color:var(--sidebar-text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-popup{position:absolute;bottom:60px;left:0;width:320px;min-height:95px;background:var(--sidebar-popup-bg);border-radius:10px;padding:12px 14px;box-shadow:var(--sidebar-popup-shadow);z-index:9999;animation:popupIn .15s cubic-bezier(.4,0,.2,1)}@keyframes popupIn{0%{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.popup-close{position:absolute;top:10px;right:12px;border:none!important;background:transparent!important;cursor:pointer;color:var(--sidebar-popup-close-color);font-size:18px;font-weight:500;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;padding:0!important;transition:background .12s;box-shadow:none!important}.popup-close:hover{background:#0000000f!important}.popup-header{display:flex;align-items:center;gap:12px;padding-right:28px}.popup-avatar{width:42px;height:42px;border-radius:8px;background:var(--sidebar-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;flex-shrink:0;text-transform:uppercase}.popup-user-details{flex:1;min-width:0}.popup-name{font-size:14px;font-weight:600;color:var(--sidebar-popup-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.popup-role{font-size:12px;color:var(--sidebar-popup-text-secondary)}.popup-email{font-size:12px;color:var(--sidebar-popup-text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.popup-divider{height:1px;background:var(--sidebar-popup-border);margin:10px 0}.signout-btn{width:100%;border:none!important;background:transparent!important;color:var(--sidebar-danger);cursor:pointer;padding:4px 0;font-size:14px;font-weight:500;display:flex;justify-content:flex-end;align-items:center;gap:6px;outline:none;border-radius:6px;transition:background .15s}.signout-btn:hover{background:#ef444414!important}.signout-btn svg{width:15px;height:15px;color:var(--sidebar-danger);flex-shrink:0}.rdr-sidebar.collapsed .sidebar-header{padding:24px 0;justify-content:center}.rdr-sidebar.collapsed .sidebar-actions{padding:0 8px 16px}.rdr-sidebar.collapsed .nav-item{justify-content:center;padding:12px 0;gap:0}.rdr-sidebar.collapsed .nav-item.active:before{width:3px}.rdr-sidebar.collapsed .section-title{padding:0;text-align:center;font-size:0;margin:0 0 8px}.rdr-sidebar.collapsed .sidebar-footer{padding:16px 0;align-items:center}.rdr-sidebar.collapsed .footer-link{justify-content:center;gap:0;padding:0;margin-bottom:16px}.rdr-sidebar.collapsed .user-profile{justify-content:center;padding:4px 0}.rdr-sidebar.collapsed .nav-item[data-label]:hover:after,.rdr-sidebar.collapsed .footer-link[data-label]:hover:after{content:attr(data-label);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:#1e293b;color:#e2e8f0;font-size:12px;font-weight:500;padding:5px 10px;border-radius:6px;white-space:nowrap;box-shadow:0 4px 12px #0006;border:1px solid rgba(255,255,255,.08);pointer-events:none;z-index:300}.rdr-sidebar.collapsed .nav-item,.rdr-sidebar.collapsed .footer-link{position:relative}
|