proctoring-ui-3 1.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/ui-3.es.js +3460 -0
- package/dist/ui-3.umd.js +493 -0
- package/package.json +33 -0
- package/tailwind.config.js +13 -0
package/dist/ui-3.umd.js
ADDED
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
(function(V,j){typeof exports=="object"&&typeof module<"u"?j(exports,require("react"),require("react-i18next"),require("lucide-react"),require("react-router-dom"),require("react-dom")):typeof define=="function"&&define.amd?define(["exports","react","react-i18next","lucide-react","react-router-dom","react-dom"],j):(V=typeof globalThis<"u"?globalThis:V||self,j(V.UI3={},V.React,V.ReactI18Next,V.LucideReact,V.ReactRouterDOM,V.ReactDOM))})(this,function(V,j,Me,y,me,je){"use strict";var ye={exports:{}},fe={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react-jsx-runtime.production.min.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var Oe;function Qe(){if(Oe)return fe;Oe=1;var a=j,s=Symbol.for("react.element"),o=Symbol.for("react.fragment"),n=Object.prototype.hasOwnProperty,h=a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,b={key:!0,ref:!0,__self:!0,__source:!0};function c(x,k,N){var T,S={},E=null,$=null;N!==void 0&&(E=""+N),k.key!==void 0&&(E=""+k.key),k.ref!==void 0&&($=k.ref);for(T in k)n.call(k,T)&&!b.hasOwnProperty(T)&&(S[T]=k[T]);if(x&&x.defaultProps)for(T in k=x.defaultProps,k)S[T]===void 0&&(S[T]=k[T]);return{$$typeof:s,type:x,key:E,ref:$,props:S,_owner:h.current}}return fe.Fragment=o,fe.jsx=c,fe.jsxs=c,fe}var ve={};/**
|
|
10
|
+
* @license React
|
|
11
|
+
* react-jsx-runtime.development.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var Te;function Ze(){return Te||(Te=1,process.env.NODE_ENV!=="production"&&function(){var a=j,s=Symbol.for("react.element"),o=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),h=Symbol.for("react.strict_mode"),b=Symbol.for("react.profiler"),c=Symbol.for("react.provider"),x=Symbol.for("react.context"),k=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),T=Symbol.for("react.suspense_list"),S=Symbol.for("react.memo"),E=Symbol.for("react.lazy"),$=Symbol.for("react.offscreen"),P=Symbol.iterator,p="@@iterator";function F(t){if(t===null||typeof t!="object")return null;var r=P&&t[P]||t[p];return typeof r=="function"?r:null}var i=a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function L(t){{for(var r=arguments.length,u=new Array(r>1?r-1:0),C=1;C<r;C++)u[C-1]=arguments[C];G("error",t,u)}}function G(t,r,u){{var C=i.ReactDebugCurrentFrame,U=C.getStackAddendum();U!==""&&(r+="%s",u=u.concat([U]));var K=u.map(function(I){return String(I)});K.unshift("Warning: "+r),Function.prototype.apply.call(console[t],console,K)}}var J=!1,W=!1,se=!1,re=!1,ee=!1,M;M=Symbol.for("react.module.reference");function Q(t){return!!(typeof t=="string"||typeof t=="function"||t===n||t===b||ee||t===h||t===N||t===T||re||t===$||J||W||se||typeof t=="object"&&t!==null&&(t.$$typeof===E||t.$$typeof===S||t.$$typeof===c||t.$$typeof===x||t.$$typeof===k||t.$$typeof===M||t.getModuleId!==void 0))}function d(t,r,u){var C=t.displayName;if(C)return C;var U=r.displayName||r.name||"";return U!==""?u+"("+U+")":u}function w(t){return t.displayName||"Context"}function _(t){if(t==null)return null;if(typeof t.tag=="number"&&L("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case n:return"Fragment";case o:return"Portal";case b:return"Profiler";case h:return"StrictMode";case N:return"Suspense";case T:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case x:var r=t;return w(r)+".Consumer";case c:var u=t;return w(u._context)+".Provider";case k:return d(t,t.render,"ForwardRef");case S:var C=t.displayName||null;return C!==null?C:_(t.type)||"Memo";case E:{var U=t,K=U._payload,I=U._init;try{return _(I(K))}catch{return null}}}return null}var A=Object.assign,H=0,m,D,X,ae,oe,l,f;function g(){}g.__reactDisabledLog=!0;function R(){{if(H===0){m=console.log,D=console.info,X=console.warn,ae=console.error,oe=console.group,l=console.groupCollapsed,f=console.groupEnd;var t={configurable:!0,enumerable:!0,value:g,writable:!0};Object.defineProperties(console,{info:t,log:t,warn:t,error:t,group:t,groupCollapsed:t,groupEnd:t})}H++}}function O(){{if(H--,H===0){var t={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:A({},t,{value:m}),info:A({},t,{value:D}),warn:A({},t,{value:X}),error:A({},t,{value:ae}),group:A({},t,{value:oe}),groupCollapsed:A({},t,{value:l}),groupEnd:A({},t,{value:f})})}H<0&&L("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Y=i.ReactCurrentDispatcher,te;function ie(t,r,u){{if(te===void 0)try{throw Error()}catch(U){var C=U.stack.trim().match(/\n( *(at )?)/);te=C&&C[1]||""}return`
|
|
18
|
+
`+te+t}}var v=!1,de;{var xe=typeof WeakMap=="function"?WeakMap:Map;de=new xe}function ge(t,r){if(!t||v)return"";{var u=de.get(t);if(u!==void 0)return u}var C;v=!0;var U=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var K;K=Y.current,Y.current=null,R();try{if(r){var I=function(){throw Error()};if(Object.defineProperty(I.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(I,[])}catch(ne){C=ne}Reflect.construct(t,[],I)}else{try{I.call()}catch(ne){C=ne}t.call(I.prototype)}}else{try{throw Error()}catch(ne){C=ne}t()}}catch(ne){if(ne&&C&&typeof ne.stack=="string"){for(var z=ne.stack.split(`
|
|
19
|
+
`),le=C.stack.split(`
|
|
20
|
+
`),Z=z.length-1,q=le.length-1;Z>=1&&q>=0&&z[Z]!==le[q];)q--;for(;Z>=1&&q>=0;Z--,q--)if(z[Z]!==le[q]){if(Z!==1||q!==1)do if(Z--,q--,q<0||z[Z]!==le[q]){var ce=`
|
|
21
|
+
`+z[Z].replace(" at new "," at ");return t.displayName&&ce.includes("<anonymous>")&&(ce=ce.replace("<anonymous>",t.displayName)),typeof t=="function"&&de.set(t,ce),ce}while(Z>=1&&q>=0);break}}}finally{v=!1,Y.current=K,O(),Error.prepareStackTrace=U}var be=t?t.displayName||t.name:"",he=be?ie(be):"";return typeof t=="function"&&de.set(t,he),he}function vt(t,r,u){return ge(t,!1)}function gt(t){var r=t.prototype;return!!(r&&r.isReactComponent)}function ke(t,r,u){if(t==null)return"";if(typeof t=="function")return ge(t,gt(t));if(typeof t=="string")return ie(t);switch(t){case N:return ie("Suspense");case T:return ie("SuspenseList")}if(typeof t=="object")switch(t.$$typeof){case k:return vt(t.render);case S:return ke(t.type,r,u);case E:{var C=t,U=C._payload,K=C._init;try{return ke(K(U),r,u)}catch{}}}return""}var pe=Object.prototype.hasOwnProperty,ze={},Ae=i.ReactDebugCurrentFrame;function we(t){if(t){var r=t._owner,u=ke(t.type,t._source,r?r.type:null);Ae.setExtraStackFrame(u)}else Ae.setExtraStackFrame(null)}function pt(t,r,u,C,U){{var K=Function.call.bind(pe);for(var I in t)if(K(t,I)){var z=void 0;try{if(typeof t[I]!="function"){var le=Error((C||"React class")+": "+u+" type `"+I+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof t[I]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw le.name="Invariant Violation",le}z=t[I](r,I,C,u,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(Z){z=Z}z&&!(z instanceof Error)&&(we(U),L("%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).",C||"React class",u,I,typeof z),we(null)),z instanceof Error&&!(z.message in ze)&&(ze[z.message]=!0,we(U),L("Failed %s type: %s",u,z.message),we(null))}}}var kt=Array.isArray;function Se(t){return kt(t)}function wt(t){{var r=typeof Symbol=="function"&&Symbol.toStringTag,u=r&&t[Symbol.toStringTag]||t.constructor.name||"Object";return u}}function jt(t){try{return Ie(t),!1}catch{return!0}}function Ie(t){return""+t}function $e(t){if(jt(t))return L("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",wt(t)),Ie(t)}var Ve=i.ReactCurrentOwner,yt={key:!0,ref:!0,__self:!0,__source:!0},We,Be;function Nt(t){if(pe.call(t,"ref")){var r=Object.getOwnPropertyDescriptor(t,"ref").get;if(r&&r.isReactWarning)return!1}return t.ref!==void 0}function St(t){if(pe.call(t,"key")){var r=Object.getOwnPropertyDescriptor(t,"key").get;if(r&&r.isReactWarning)return!1}return t.key!==void 0}function Ct(t,r){typeof t.ref=="string"&&Ve.current}function Et(t,r){{var u=function(){We||(We=!0,L("%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))};u.isReactWarning=!0,Object.defineProperty(t,"key",{get:u,configurable:!0})}}function Lt(t,r){{var u=function(){Be||(Be=!0,L("%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))};u.isReactWarning=!0,Object.defineProperty(t,"ref",{get:u,configurable:!0})}}var _t=function(t,r,u,C,U,K,I){var z={$$typeof:s,type:t,key:r,ref:u,props:I,_owner:K};return z._store={},Object.defineProperty(z._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(z,"_self",{configurable:!1,enumerable:!1,writable:!1,value:C}),Object.defineProperty(z,"_source",{configurable:!1,enumerable:!1,writable:!1,value:U}),Object.freeze&&(Object.freeze(z.props),Object.freeze(z)),z};function Mt(t,r,u,C,U){{var K,I={},z=null,le=null;u!==void 0&&($e(u),z=""+u),St(r)&&($e(r.key),z=""+r.key),Nt(r)&&(le=r.ref,Ct(r,U));for(K in r)pe.call(r,K)&&!yt.hasOwnProperty(K)&&(I[K]=r[K]);if(t&&t.defaultProps){var Z=t.defaultProps;for(K in Z)I[K]===void 0&&(I[K]=Z[K])}if(z||le){var q=typeof t=="function"?t.displayName||t.name||"Unknown":t;z&&Et(I,q),le&&Lt(I,q)}return _t(t,z,le,U,C,Ve.current,I)}}var Ce=i.ReactCurrentOwner,He=i.ReactDebugCurrentFrame;function ue(t){if(t){var r=t._owner,u=ke(t.type,t._source,r?r.type:null);He.setExtraStackFrame(u)}else He.setExtraStackFrame(null)}var Ee;Ee=!1;function Le(t){return typeof t=="object"&&t!==null&&t.$$typeof===s}function Ue(){{if(Ce.current){var t=_(Ce.current.type);if(t)return`
|
|
22
|
+
|
|
23
|
+
Check the render method of \``+t+"`."}return""}}function Ot(t){return""}var Ye={};function Tt(t){{var r=Ue();if(!r){var u=typeof t=="string"?t:t.displayName||t.name;u&&(r=`
|
|
24
|
+
|
|
25
|
+
Check the top-level render call using <`+u+">.")}return r}}function Xe(t,r){{if(!t._store||t._store.validated||t.key!=null)return;t._store.validated=!0;var u=Tt(r);if(Ye[u])return;Ye[u]=!0;var C="";t&&t._owner&&t._owner!==Ce.current&&(C=" It was passed a child from "+_(t._owner.type)+"."),ue(t),L('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',u,C),ue(null)}}function Ke(t,r){{if(typeof t!="object")return;if(Se(t))for(var u=0;u<t.length;u++){var C=t[u];Le(C)&&Xe(C,r)}else if(Le(t))t._store&&(t._store.validated=!0);else if(t){var U=F(t);if(typeof U=="function"&&U!==t.entries)for(var K=U.call(t),I;!(I=K.next()).done;)Le(I.value)&&Xe(I.value,r)}}}function Pt(t){{var r=t.type;if(r==null||typeof r=="string")return;var u;if(typeof r=="function")u=r.propTypes;else if(typeof r=="object"&&(r.$$typeof===k||r.$$typeof===S))u=r.propTypes;else return;if(u){var C=_(r);pt(u,t.props,"prop",C,t)}else if(r.PropTypes!==void 0&&!Ee){Ee=!0;var U=_(r);L("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",U||"Unknown")}typeof r.getDefaultProps=="function"&&!r.getDefaultProps.isReactClassApproved&&L("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Ft(t){{for(var r=Object.keys(t.props),u=0;u<r.length;u++){var C=r[u];if(C!=="children"&&C!=="key"){ue(t),L("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",C),ue(null);break}}t.ref!==null&&(ue(t),L("Invalid attribute `ref` supplied to `React.Fragment`."),ue(null))}}var Ge={};function Je(t,r,u,C,U,K){{var I=Q(t);if(!I){var z="";(t===void 0||typeof t=="object"&&t!==null&&Object.keys(t).length===0)&&(z+=" 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 le=Ot();le?z+=le:z+=Ue();var Z;t===null?Z="null":Se(t)?Z="array":t!==void 0&&t.$$typeof===s?(Z="<"+(_(t.type)||"Unknown")+" />",z=" Did you accidentally export a JSX literal instead of a component?"):Z=typeof t,L("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",Z,z)}var q=Mt(t,r,u,U,K);if(q==null)return q;if(I){var ce=r.children;if(ce!==void 0)if(C)if(Se(ce)){for(var be=0;be<ce.length;be++)Ke(ce[be],t);Object.freeze&&Object.freeze(ce)}else L("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 Ke(ce,t)}if(pe.call(r,"key")){var he=_(t),ne=Object.keys(r).filter(function($t){return $t!=="key"}),_e=ne.length>0?"{key: someKey, "+ne.join(": ..., ")+": ...}":"{key: someKey}";if(!Ge[he+_e]){var It=ne.length>0?"{"+ne.join(": ..., ")+": ...}":"{}";L(`A props object containing a "key" prop is being spread into JSX:
|
|
26
|
+
let props = %s;
|
|
27
|
+
<%s {...props} />
|
|
28
|
+
React keys must be passed directly to JSX without using spread:
|
|
29
|
+
let props = %s;
|
|
30
|
+
<%s key={someKey} {...props} />`,_e,he,It,he),Ge[he+_e]=!0}}return t===n?Ft(q):Pt(q),q}}function Dt(t,r,u){return Je(t,r,u,!0)}function Rt(t,r,u){return Je(t,r,u,!1)}var zt=Rt,At=Dt;ve.Fragment=n,ve.jsx=zt,ve.jsxs=At}()),ve}process.env.NODE_ENV==="production"?ye.exports=Qe():ye.exports=Ze();var e=ye.exports;function qe({text:a,link:s,linkText:o,year:n,navigationItems:h=[]}){const{t:b}=Me.useTranslation("pages-product-page"),c=me.useNavigate(),x=me.useLocation(),k=[{icon:y.Home,label:"Dashboard",path:"/dashboard",key:"dashboard"},{icon:y.Calendar,label:"Calendar",path:"/calendar",key:"calendar"},{icon:y.Users,label:"Admins",path:"/admins",key:"admins"},{icon:y.Settings,label:"Settings",path:"/settings",key:"settings"}],N=h.length>0?h:k,T=S=>x.pathname===S;return e.jsxs(e.Fragment,{children:[e.jsxs("footer",{className:"hidden md:block relative overflow-hidden border-t transition-all duration-300 bg-gradient-to-r from-white via-violet-50/30 to-white border-slate-200/50 dark:bg-gradient-to-r dark:from-slate-800 dark:via-slate-900 dark:to-slate-800 dark:border-slate-700/50 shadow-sm",children:[e.jsx("div",{className:"absolute inset-0 w-full h-full opacity-5 bg-gradient-to-r from-violet-300 to-indigo-300 dark:bg-gradient-to-r dark:from-violet-500 dark:to-indigo-500"}),e.jsx("div",{className:"relative z-10 px-6 py-4",children:e.jsxs("div",{className:"max-w-7xl mx-auto flex flex-wrap items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center space-x-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-lg bg-gradient-to-br from-violet-600 to-indigo-600 flex items-center justify-center shadow-md shadow-violet-200 dark:shadow-violet-900/50",children:e.jsx("svg",{className:"w-4 h-4 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"})})}),e.jsxs("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:["© ",n||new Date().getFullYear()]}),e.jsx("a",{href:s||"#",target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium transition-all duration-200 hover:scale-105 inline-block text-violet-600 hover:text-violet-700 dark:text-violet-400 dark:hover:text-violet-300",children:b("footer.text")})]}),e.jsxs("div",{className:"flex items-center gap-6",children:[e.jsx("a",{href:"#",className:"text-sm font-medium transition-all duration-200 hover:scale-105 text-slate-600 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-300",children:"Privacy"}),e.jsx("a",{href:"#",className:"text-sm font-medium transition-all duration-200 hover:scale-105 text-slate-600 hover:text-slate-700 dark:text-slate-400 dark:hover:text-slate-300",children:"Terms"}),e.jsxs("span",{className:"text-xs text-slate-500 dark:text-slate-500",children:["Made with ",e.jsx(y.Heart,{className:"w-3 h-3 inline text-red-500 fill-red-500"})]})]})]})})]}),e.jsx("nav",{className:"md:hidden fixed bottom-0 left-0 right-0 z-50 safe-area-bottom",children:e.jsxs("div",{className:"relative backdrop-blur-2xl bg-white/90 dark:bg-slate-900/95 border-t border-slate-200/50 dark:border-slate-700/50 shadow-2xl",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-violet-50/30 to-transparent dark:from-violet-950/20 dark:to-transparent pointer-events-none"}),e.jsx("div",{className:"absolute top-0 left-0 right-0 h-0.5 bg-gradient-to-r from-transparent via-violet-500 to-transparent opacity-50"}),e.jsx("div",{className:"relative grid grid-cols-4 gap-1 px-2 py-2 pb-safe",children:N.map((S,E)=>{const $=S.icon,P=T(S.path);return e.jsxs("button",{onClick:()=>c(S.path),className:`relative flex flex-col items-center justify-center py-2 px-1 rounded-2xl transition-all duration-300 group ${P?"bg-gradient-to-br from-violet-500 to-indigo-600 shadow-lg shadow-violet-500/30":"hover:bg-slate-100 dark:hover:bg-slate-800/50 active:scale-95"}`,children:[P&&e.jsx("div",{className:"absolute -top-1 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full bg-white shadow-lg shadow-white/50 animate-pulse"}),e.jsxs("div",{className:`relative mb-1 transition-transform duration-300 ${P?"scale-110":"group-hover:scale-110"}`,children:[e.jsx($,{className:`w-6 h-6 transition-colors duration-300 ${P?"text-white":"text-slate-600 dark:text-slate-400 group-hover:text-violet-600 dark:group-hover:text-violet-400"}`,strokeWidth:P?2.5:2}),P&&e.jsx("div",{className:"absolute inset-0 rounded-full bg-white/20 animate-ping"})]}),e.jsx("span",{className:`text-xs font-semibold transition-all duration-300 ${P?"text-white scale-105":"text-slate-600 dark:text-slate-400 group-hover:text-violet-600 dark:group-hover:text-violet-400"}`,children:S.label}),S.badge&&e.jsx("div",{className:"absolute top-1 right-2 w-2 h-2 rounded-full bg-red-500 border-2 border-white dark:border-slate-900 animate-pulse"})]},S.key||E)})}),e.jsx("div",{className:"h-safe-area-inset-bottom bg-white/50 dark:bg-slate-900/50"})]})}),e.jsx("style",{jsx:!0,children:`
|
|
31
|
+
.safe-area-bottom {
|
|
32
|
+
padding-bottom: env(safe-area-inset-bottom);
|
|
33
|
+
}
|
|
34
|
+
.pb-safe {
|
|
35
|
+
padding-bottom: max(0.5rem, env(safe-area-inset-bottom));
|
|
36
|
+
}
|
|
37
|
+
.h-safe-area-inset-bottom {
|
|
38
|
+
height: env(safe-area-inset-bottom);
|
|
39
|
+
}
|
|
40
|
+
`})]})}const Pe=({user:a,onLogout:s,showEmail:o=!0})=>{const[n,h]=j.useState(!1),[b,c]=j.useState({top:0,right:0}),x=j.useRef(null),k=j.useRef(null);return j.useEffect(()=>{const N=T=>{x.current&&!x.current.contains(T.target)&&k.current&&!k.current.contains(T.target)&&h(!1)};return n&&document.addEventListener("mousedown",N),()=>document.removeEventListener("mousedown",N)},[n]),e.jsxs(e.Fragment,{children:[e.jsxs("button",{ref:x,onClick:()=>{if(!n&&x.current){const N=x.current.getBoundingClientRect();c({top:N.bottom+6,right:window.innerWidth-N.right})}h(!n)},title:"Account",className:`p-2 sm:p-2.5 rounded-xl transition-all duration-200
|
|
41
|
+
bg-white hover:bg-slate-50 text-slate-700
|
|
42
|
+
border border-slate-200 shadow-sm
|
|
43
|
+
dark:bg-slate-700/50 dark:hover:bg-slate-700 dark:text-slate-300 dark:border-slate-600/50
|
|
44
|
+
hover:scale-105 active:scale-95
|
|
45
|
+
flex items-center gap-1`,children:[e.jsx(y.User,{className:"w-[18px] h-[18px]"}),e.jsx(y.ChevronDown,{className:`w-3 h-3 text-slate-400 transition-transform duration-200 ${n?"rotate-180":""}`})]}),n&&je.createPortal(e.jsxs("div",{ref:k,style:{top:b.top,right:b.right},className:`fixed w-48 rounded-xl border shadow-lg overflow-hidden z-[9999]
|
|
46
|
+
bg-white border-slate-200/60
|
|
47
|
+
dark:bg-slate-800 dark:border-slate-700/60
|
|
48
|
+
animate-in fade-in zoom-in-95 duration-150`,children:[((a==null?void 0:a.name)||(a==null?void 0:a.email))&&e.jsxs("div",{className:"px-3.5 py-3 border-b border-slate-100 dark:border-slate-700",children:[(a==null?void 0:a.name)&&e.jsx("p",{className:"text-sm font-semibold text-slate-800 dark:text-slate-200 truncate",children:a.name}),o&&(a==null?void 0:a.email)&&e.jsx("p",{className:"text-xs font-medium text-slate-500 dark:text-slate-400 truncate mt-0.5",children:a.email})]}),e.jsxs("button",{onClick:()=>{h(!1),s()},className:`w-full flex items-center gap-2 px-3.5 py-2.5
|
|
49
|
+
text-sm font-medium text-red-600 dark:text-red-400
|
|
50
|
+
hover:bg-red-50 dark:hover:bg-red-900/20
|
|
51
|
+
transition-colors duration-150`,children:[e.jsx(y.LogOut,{className:"w-4 h-4 flex-shrink-0"}),"Logout"]})]}),document.body)]})},et=({appIcon:a,appName:s,appShortName:o,appTagline:n,userName:h,userEmail:b,userRole:c,onLogout:x,navLinks:k=[],showAccessibility:N=!0,showUserInfo:T=!0,showLanguageSelector:S=!0,showThemeToggle:E=!0,showAppIcon:$=!0,showAppFullName:P=!0,showAppTagline:p=!1,showNavLinks:F=!1,rightContent:i})=>{var ie;const L=me.useLocation(),[G,J]=j.useState(localStorage.getItem("language")||"eng"),[W,se]=j.useState(!1),[re,ee]=j.useState(!1),[M,Q]=j.useState(16),[d,w]=j.useState(!1),[_,A]=j.useState(!1),[H,m]=j.useState(!1),[D,X]=j.useState(!1),[ae,oe]=j.useState(!1);j.useEffect(()=>{const v=localStorage.getItem("theme")||"light";m(v==="dark"),document.documentElement.classList.toggle("dark",v==="dark")},[]),j.useEffect(()=>{const v=()=>oe(window.scrollY>8);return window.addEventListener("scroll",v,{passive:!0}),()=>window.removeEventListener("scroll",v)},[]),j.useEffect(()=>{X(!1)},[L.pathname]);const l=()=>{m(v=>{const de=!v;return de?(document.documentElement.classList.add("dark"),localStorage.setItem("theme","dark")):(document.documentElement.classList.remove("dark"),localStorage.setItem("theme","light")),de})},f=v=>{J(v),localStorage.setItem("language",v),ee(!1)};j.useEffect(()=>{document.documentElement.style.fontSize=`${M}px`,document.body.style.filter=d?"grayscale(100%)":"none",document.body.style.fontFamily=_?"OpenDyslexic, Arial, sans-serif":"inherit"},[M,d,_]);const g={eng:{label:"English",disabled:!1},hin:{label:"Hindi",disabled:!1}},R=()=>{M<24&&Q(M+2)},O=()=>{M>12&&Q(M-2)},Y=()=>Q(16),te=v=>v==="/"?L.pathname==="/":L.pathname.startsWith(v);return e.jsxs(e.Fragment,{children:[e.jsxs("nav",{className:`
|
|
52
|
+
w-full sticky top-0 z-50 overflow-hidden
|
|
53
|
+
bg-white/95 dark:bg-slate-900/95 backdrop-blur-md
|
|
54
|
+
border-b border-slate-200/60 dark:border-slate-700/60
|
|
55
|
+
transition-all duration-300
|
|
56
|
+
${ae?"shadow-xl shadow-slate-200/50 dark:shadow-slate-950/50":"shadow-sm shadow-slate-100/50 dark:shadow-slate-900/30"}
|
|
57
|
+
`,children:[e.jsx("div",{className:"absolute top-0 right-0 w-96 h-96 rounded-full blur-3xl opacity-20 bg-violet-300 dark:bg-violet-500 -translate-y-1/2 translate-x-1/2 pointer-events-none"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 rounded-full blur-3xl opacity-20 bg-indigo-300 dark:bg-indigo-500 translate-y-1/2 -translate-x-1/2 pointer-events-none"}),e.jsxs("div",{className:"relative z-10 mx-auto px-3 sm:px-5 lg:px-6 py-2 sm:py-0",children:[e.jsxs("div",{className:"flex items-center justify-between h-14 sm:h-20",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 group flex-shrink-0",children:[$&&a&&e.jsx("div",{className:"w-8 h-8 sm:w-16 sm:h-16 flex items-center justify-center group-hover:scale-105 transition-transform duration-200",children:e.jsx("img",{src:a,alt:"Institution Logo",className:"h-8 sm:h-14 w-auto object-contain"})}),e.jsxs("div",{className:"flex flex-col leading-tight",children:[e.jsx("span",{className:"font-extrabold text-base sm:text-xl text-slate-900 dark:text-white sm:hidden tracking-tight",children:o||s}),e.jsxs("div",{className:"hidden sm:flex flex-col",children:[e.jsx("span",{className:"font-extrabold text-slate-900 dark:text-white tracking-tight text-lg lg:hidden",children:o||s}),P&&e.jsx("span",{className:"font-extrabold text-slate-900 dark:text-white tracking-tight hidden lg:block text-[17px] xl:text-lg leading-tight max-w-md",children:s}),p&&n&&e.jsx("span",{className:"mt-0.5 text-[10px] font-semibold tracking-[0.2em] text-violet-600 dark:text-violet-400 uppercase",children:n})]})]})]}),F&&k.length>0&&e.jsx("div",{className:"hidden md:flex items-center gap-2",children:k.map(v=>{var xe;return v!=null&&v.to?((xe=v==null?void 0:v.to)==null?void 0:xe.startsWith("http"))?e.jsx("a",{href:v.to,target:v.target||"_self",rel:"noopener noreferrer",className:"relative px-4 lg:px-5 py-2.5 rounded-xl text-sm font-semibold tracking-wide transition-all duration-200 text-slate-600 dark:text-slate-300 hover:text-violet-700 dark:hover:text-violet-400 hover:bg-violet-50/80 dark:hover:bg-slate-700/50",children:v.label},v.to):e.jsxs(me.Link,{to:v.to,target:v.target||"_self",rel:v.target==="_blank"?"noopener noreferrer":void 0,className:`relative px-4 lg:px-5 py-2.5 rounded-xl text-sm font-semibold tracking-wide transition-all duration-200 ${te(v.to)?"text-violet-700 dark:text-violet-400 bg-violet-50 dark:bg-violet-600/10 shadow-sm":"text-slate-600 dark:text-slate-300 hover:text-violet-700 dark:hover:text-violet-400 hover:bg-violet-50/80 dark:hover:bg-slate-700/50"}`,children:[v.label,te(v.to)&&e.jsx("span",{className:"absolute bottom-1 left-1/2 -translate-x-1/2 w-4 h-0.5 rounded-full bg-gradient-to-r from-violet-600 to-indigo-600"})]},v.to):null})}),e.jsxs("div",{className:"flex items-center gap-1.5 sm:gap-2",children:[i&&e.jsx("div",{className:"flex items-center",children:i}),N&&e.jsx("button",{onClick:()=>se(!0),className:"p-2 sm:p-2.5 rounded-xl transition-all duration-200 bg-white hover:bg-slate-50 text-slate-700 border border-slate-200 shadow-sm dark:bg-slate-700/50 dark:hover:bg-slate-700 dark:text-slate-300 dark:border-slate-600/50 hover:scale-105 active:scale-95",title:"Accessibility Settings",children:e.jsx("svg",{className:"w-4 h-4 sm:w-[18px] sm:h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"})})}),E&&e.jsx("button",{onClick:l,"aria-label":"Toggle theme",title:H?"Switch to Light Mode":"Switch to Dark Mode",className:"p-2 sm:p-2.5 rounded-xl transition-all duration-200 bg-white hover:bg-slate-50 text-slate-700 border border-slate-200 shadow-sm dark:bg-slate-700/50 dark:hover:bg-slate-700 dark:text-yellow-400 dark:border-slate-600/50 hover:scale-105 active:scale-95",children:H?e.jsx("svg",{className:"w-4 h-4 sm:w-[18px] sm:h-[18px]",fill:"currentColor",viewBox:"0 0 20 20",children:e.jsx("path",{fillRule:"evenodd",d:"M10 2a1 1 0 011 1v1a1 1 0 11-2 0V3a1 1 0 011-1zm4 8a4 4 0 11-8 0 4 4 0 018 0zm-.464 4.95l.707.707a1 1 0 001.414-1.414l-.707-.707a1 1 0 00-1.414 1.414zm2.12-10.607a1 1 0 010 1.414l-.706.707a1 1 0 11-1.414-1.414l.707-.707a1 1 0 011.414 0zM17 11a1 1 0 100-2h-1a1 1 0 100 2h1zm-7 4a1 1 0 011 1v1a1 1 0 11-2 0v-1a1 1 0 011-1zM5.05 6.464A1 1 0 106.465 5.05l-.708-.707a1 1 0 00-1.414 1.414l.707.707zm1.414 8.486l-.707.707a1 1 0 01-1.414-1.414l.707-.707a1 1 0 011.414 1.414zM4 11a1 1 0 100-2H3a1 1 0 000 2h1z",clipRule:"evenodd"})}):e.jsx("svg",{className:"w-4 h-4 sm:w-[18px] sm:h-[18px]",fill:"currentColor",viewBox:"0 0 20 20",children:e.jsx("path",{d:"M17.293 13.293A8 8 0 016.707 2.707a8.001 8.001 0 1010.586 10.586z"})})}),S&&e.jsxs("button",{onClick:()=>ee(!0),className:"hidden sm:flex items-center gap-2 px-4 py-2.5 rounded-xl bg-white hover:bg-slate-50 text-slate-700 border border-slate-200 shadow-sm dark:bg-slate-700/50 dark:hover:bg-slate-700 dark:text-slate-300 dark:border-slate-600/50 hover:scale-105 active:scale-95 transition-all duration-200",children:[e.jsx("svg",{className:"w-[18px] h-[18px]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 2a10 10 0 100 20 10 10 0 000-20zm0 0c2.5 2.5 4 6 4 10s-1.5 7.5-4 10m0-20C9.5 4.5 8 8 8 12s1.5 7.5 4 10m-9-10h18"})}),e.jsx("span",{className:"text-sm font-medium",children:(ie=g[G])==null?void 0:ie.label})]}),S&&e.jsx("button",{onClick:()=>ee(!0),className:"sm:hidden p-2 rounded-xl bg-white hover:bg-slate-50 text-slate-700 border border-slate-200 shadow-sm dark:bg-slate-700/50 dark:hover:bg-slate-700 dark:text-slate-300 dark:border-slate-600/50 hover:scale-105 active:scale-95 transition-all duration-200",children:e.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 2a10 10 0 100 20 10 10 0 000-20zm0 0c2.5 2.5 4 6 4 10s-1.5 7.5-4 10m0-20C9.5 4.5 8 8 8 12s1.5 7.5 4 10m-9-10h18"})})}),T&&e.jsx(Pe,{user:{name:h,email:b},onLogout:x,showEmail:!0}),F&&k.length>0&&e.jsx("button",{onClick:()=>X(v=>!v),"aria-label":D?"Close menu":"Open menu",className:"md:hidden p-2 rounded-xl transition-all duration-200 bg-white dark:bg-slate-700/50 border border-slate-200 dark:border-slate-600/50 text-slate-700 dark:text-slate-300 shadow-sm hover:scale-105 active:scale-95",children:D?e.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})}):e.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 6h16M4 12h16M4 18h16"})})})]})]}),F&&D&&k.length>0&&e.jsx("div",{className:"md:hidden border-t border-slate-200 dark:border-slate-700 pb-3 animate-in slide-in-from-top-2 duration-200",children:e.jsx("div",{className:"flex flex-col gap-0.5 pt-2",children:k.map(v=>{var xe;return v!=null&&v.to?((xe=v==null?void 0:v.to)==null?void 0:xe.startsWith("http"))?e.jsx("a",{href:v.to,target:v.target||"_self",rel:"noopener noreferrer",className:"flex items-center justify-between px-3 py-2.5 rounded-xl text-sm font-semibold transition-all duration-200 text-slate-700 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-700/50",children:v.label},v.to):e.jsxs(me.Link,{to:v.to,target:v.target||"_self",rel:v.target==="_blank"?"noopener noreferrer":void 0,className:`flex items-center justify-between px-3 py-2.5 rounded-xl text-sm font-semibold transition-all duration-200 ${te(v.to)?"bg-violet-50 dark:bg-violet-600/10 text-violet-700 dark:text-violet-400":"text-slate-700 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-700/50"}`,children:[v.label,te(v.to)&&e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-gradient-to-r from-violet-600 to-indigo-600"})]},v.to):null})})})]})]}),W&&e.jsx("div",{className:"overflow-hidden overflow-x-hidden fixed top-0 right-0 left-0 z-50 flex justify-center items-center w-full h-full bg-gray-800 bg-opacity-50",children:e.jsx("div",{className:"relative p-4 w-full max-w-md",children:e.jsxs("div",{className:"relative rounded-2xl shadow-2xl bg-white border border-slate-200 dark:bg-gradient-to-br dark:from-slate-800 dark:to-slate-900 dark:border dark:border-slate-700",children:[e.jsxs("div",{className:"flex items-center justify-between p-5 border-b rounded-t-2xl border-slate-200 dark:border-slate-700 bg-gradient-to-r from-slate-50 to-violet-50/30 dark:bg-gradient-to-r dark:from-slate-800 dark:to-slate-900",children:[e.jsxs("div",{className:"flex items-center space-x-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-lg bg-gradient-to-br from-violet-600 to-indigo-600 flex items-center justify-center",children:e.jsx("svg",{className:"w-5 h-5 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4"})})}),e.jsx("h3",{className:"text-lg font-bold text-slate-900 dark:text-white",children:"Accessibility Settings"})]}),e.jsx("button",{onClick:()=>se(!1),className:"p-2 rounded-lg transition-colors text-slate-400 hover:bg-slate-100 hover:text-slate-900 dark:hover:bg-slate-700 dark:hover:text-white",children:e.jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),e.jsxs("div",{className:"p-6 space-y-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-sm font-semibold text-slate-700 dark:text-slate-300",children:"Font Size"}),e.jsxs("span",{className:"text-sm font-medium px-3 py-1 rounded-lg bg-violet-100 text-violet-700 border border-violet-200 dark:bg-violet-600/20 dark:text-violet-400 dark:border dark:border-violet-500/30",children:[M,"px"]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("button",{onClick:O,className:"flex-1 py-3 px-4 rounded-xl font-semibold transition-all duration-200 bg-slate-100 hover:bg-slate-200 text-slate-700 border border-slate-200 dark:bg-slate-700 dark:hover:bg-slate-600 dark:text-slate-300 dark:border dark:border-slate-600",children:"A-"}),e.jsx("button",{onClick:Y,className:"flex-1 py-3 px-4 rounded-xl font-semibold transition-all duration-200 bg-slate-100 hover:bg-slate-200 text-slate-700 border border-slate-200 dark:bg-slate-700 dark:hover:bg-slate-600 dark:text-slate-300 dark:border dark:border-slate-600",children:"A"}),e.jsx("button",{onClick:R,className:"flex-1 py-3 px-4 rounded-xl font-semibold transition-all duration-200 bg-slate-100 hover:bg-slate-200 text-slate-700 border border-slate-200 dark:bg-slate-700 dark:hover:bg-slate-600 dark:text-slate-300 dark:border dark:border-slate-600",children:"A+"})]})]}),e.jsx("div",{className:"border-t border-slate-200 dark:border-slate-700"}),e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("label",{className:"text-sm font-semibold text-slate-700 dark:text-slate-300",children:"Grayscale Mode"}),e.jsx("button",{onClick:()=>w(!d),className:`relative inline-flex h-7 w-12 items-center rounded-full transition-colors ${d?"bg-gradient-to-r from-violet-600 to-indigo-600":"bg-slate-300 dark:bg-slate-700"}`,children:e.jsx("span",{className:`inline-block h-5 w-5 transform rounded-full bg-white shadow-lg transition-transform ${d?"translate-x-6":"translate-x-1"}`})})]}),e.jsx("div",{className:"border-t border-slate-200 dark:border-slate-700"}),e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("label",{className:"text-sm font-semibold text-slate-700 dark:text-slate-300",children:"Dyslexia-Friendly Font"}),e.jsx("button",{onClick:()=>A(!_),className:`relative inline-flex h-7 w-12 items-center rounded-full transition-colors ${_?"bg-gradient-to-r from-violet-600 to-indigo-600":"bg-slate-300 dark:bg-slate-700"}`,children:e.jsx("span",{className:`inline-block h-5 w-5 transform rounded-full bg-white shadow-lg transition-transform ${_?"translate-x-6":"translate-x-1"}`})})]})]}),e.jsx("div",{className:"flex p-5 border-t rounded-b border-slate-200 dark:border-slate-700",children:e.jsx("button",{onClick:()=>se(!1),className:"w-full py-3 px-5 text-sm font-semibold text-white bg-gradient-to-r from-violet-600 to-indigo-600 hover:from-violet-700 hover:to-indigo-700 rounded-xl shadow-lg transition-all duration-200",children:"Close"})})]})})}),re&&e.jsx("div",{className:"overflow-hidden overflow-x-hidden fixed top-0 right-0 left-0 z-50 flex justify-center items-center w-full h-full bg-gray-800 bg-opacity-50",children:e.jsx("div",{className:"relative p-4 w-full max-w-md",children:e.jsxs("div",{className:"relative rounded-2xl shadow-2xl bg-white border border-slate-200 dark:bg-gradient-to-br dark:from-slate-800 dark:to-slate-900 dark:border dark:border-slate-700",children:[e.jsxs("div",{className:"flex items-center justify-between p-5 border-b rounded-t-2xl border-slate-200 dark:border-slate-700 bg-gradient-to-r from-slate-50 to-violet-50/30 dark:bg-gradient-to-r dark:from-slate-800 dark:to-slate-900",children:[e.jsxs("div",{className:"flex items-center space-x-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-lg bg-gradient-to-br from-violet-600 to-indigo-600 flex items-center justify-center",children:e.jsx("svg",{className:"w-[18px] h-[18px] text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 2a10 10 0 100 20 10 10 0 000-20zm0 0c2.5 2.5 4 6 4 10s-1.5 7.5-4 10m0-20C9.5 4.5 8 8 8 12s1.5 7.5 4 10m-9-10h18"})})}),e.jsx("h3",{className:"text-lg font-bold text-slate-900 dark:text-white",children:"Select Language"})]}),e.jsx("button",{onClick:()=>ee(!1),className:"p-2 rounded-lg transition-colors text-slate-400 hover:bg-slate-100 hover:text-slate-900 dark:hover:bg-slate-700 dark:hover:text-white",children:e.jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),e.jsx("div",{className:"p-5",children:e.jsx("ul",{className:"space-y-3",children:Object.keys(g).map(v=>e.jsx("li",{children:e.jsx("button",{onClick:()=>f(v),disabled:g[v].disabled,className:`w-full px-5 py-4 rounded-xl text-left font-semibold transition-all duration-200 ${v===G?"bg-gradient-to-r from-violet-600 to-indigo-600 text-white shadow-lg":"bg-slate-50 hover:bg-slate-100 text-slate-700 border border-slate-200 dark:bg-slate-700/50 dark:hover:bg-slate-700 dark:text-slate-300 dark:border dark:border-slate-600"} ${g[v].disabled?"opacity-50 cursor-not-allowed":"hover:scale-[1.02]"}`,children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{children:g[v].label}),v===G&&e.jsx("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",children:e.jsx("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})})]})})},v))})}),e.jsx("div",{className:"flex p-5 border-t rounded-b border-slate-200 dark:border-slate-700",children:e.jsx("button",{onClick:()=>ee(!1),className:"w-full py-3 px-5 text-sm font-semibold text-white bg-gradient-to-r from-violet-600 to-indigo-600 hover:from-violet-700 hover:to-indigo-700 rounded-xl shadow-lg transition-all duration-200",children:"Close"})})]})})})]})},Fe=(a,s)=>{const o={},n=h=>{for(const b of h)if(b.subItems){const c=b.subItems.some(x=>x.path&&s.startsWith(x.path));n(b.subItems),c&&(o[b.name]=!0)}};return n(a),o},tt=({menuItems:a,user:s,onLogout:o,onNavigate:n})=>{const{t:h}=Me.useTranslation("pages-product-page"),[b,c]=j.useState(!1),x=j.useRef(null),k=me.useLocation(),[N,T]=j.useState(()=>Fe(a,k.pathname)),S=i=>T(L=>({...L,[i]:!L[i]})),E=i=>k.pathname===i;j.useEffect(()=>{T(i=>({...i,...Fe(a,k.pathname)}))},[k.pathname,a]),j.useEffect(()=>{const i=L=>{x.current&&!x.current.contains(L.target)&&c(!1)};return b&&document.addEventListener("mousedown",i),()=>document.removeEventListener("mousedown",i)},[b]);const $="bg-violet-100 text-violet-700 dark:bg-violet-600/20 dark:text-violet-400",P="bg-violet-600 dark:bg-violet-400",p="bg-slate-300 group-hover:bg-violet-400 dark:bg-slate-600 dark:group-hover:bg-slate-500",F=({item:i,depth:L=0})=>{const G=!!i.path,J=E(i.path);return L===0?e.jsx("div",{children:G?e.jsx(me.Link,{to:i.path,onClick:()=>n==null?void 0:n(),children:e.jsxs("div",{className:`
|
|
58
|
+
flex items-center gap-2.5
|
|
59
|
+
px-3 py-2 rounded-xl cursor-pointer
|
|
60
|
+
transition-all duration-150 group
|
|
61
|
+
${J?"bg-gradient-to-r from-violet-600 to-indigo-600 text-white shadow-sm shadow-violet-500/20":"text-slate-600 hover:bg-slate-100/80 hover:text-slate-900 dark:text-slate-400 dark:hover:bg-slate-700/50 dark:hover:text-white"}
|
|
62
|
+
`,children:[e.jsx("div",{className:`
|
|
63
|
+
w-6 h-6 rounded-lg flex items-center justify-center flex-shrink-0
|
|
64
|
+
${J?"bg-white/20":"bg-slate-100 group-hover:bg-slate-200 dark:bg-slate-700/60 dark:group-hover:bg-slate-700"}
|
|
65
|
+
`,children:e.jsx(i.icon,{className:`w-3.5 h-3.5 ${J?"text-white":"text-slate-500 dark:text-slate-400"}`})}),e.jsx("span",{className:"text-sm font-medium leading-none",children:h(i.name)})]})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{onClick:()=>S(i.name),className:`
|
|
66
|
+
flex items-center justify-between
|
|
67
|
+
px-3 py-2 rounded-xl cursor-pointer
|
|
68
|
+
transition-all duration-150 group
|
|
69
|
+
${N[i.name]?"bg-slate-100/80 text-slate-900 dark:bg-slate-700/40 dark:text-white":"text-slate-600 hover:bg-slate-100/80 hover:text-slate-900 dark:text-slate-400 dark:hover:bg-slate-700/50 dark:hover:text-white"}
|
|
70
|
+
`,children:[e.jsxs("div",{className:"flex items-center gap-2.5",children:[e.jsx("div",{className:`
|
|
71
|
+
w-6 h-6 rounded-lg flex items-center justify-center flex-shrink-0
|
|
72
|
+
${N[i.name]?"bg-violet-100 dark:bg-violet-600/20":"bg-slate-100 group-hover:bg-slate-200 dark:bg-slate-700/60 dark:group-hover:bg-slate-700"}
|
|
73
|
+
`,children:e.jsx(i.icon,{className:`w-3.5 h-3.5 ${N[i.name]?"text-violet-600 dark:text-violet-400":"text-slate-500 dark:text-slate-400"}`})}),e.jsx("span",{className:"text-sm font-semibold leading-none",children:h(i.name)})]}),e.jsx("svg",{className:`w-3 h-3 flex-shrink-0 transition-transform duration-200
|
|
74
|
+
text-slate-400 dark:text-slate-500
|
|
75
|
+
${N[i.name]?"rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]}),i.subItems&&N[i.name]&&e.jsx("div",{className:"mt-0.5 ml-3.5 pl-3 space-y-0.5 border-l border-slate-200/70 dark:border-slate-700/70",children:i.subItems.map(W=>e.jsx(F,{item:W,depth:1},W.name))})]})}):e.jsx("div",{children:G?e.jsx(me.Link,{to:i.path,onClick:()=>n==null?void 0:n(),children:e.jsxs("div",{className:`
|
|
76
|
+
flex items-center gap-2
|
|
77
|
+
px-2.5 py-1.5 rounded-lg cursor-pointer
|
|
78
|
+
transition-all duration-150 group
|
|
79
|
+
${J?$:"text-slate-500 hover:bg-slate-100/70 hover:text-slate-700 dark:text-slate-400 dark:hover:bg-slate-700/30 dark:hover:text-slate-300"}
|
|
80
|
+
`,children:[e.jsx("div",{className:`w-1.5 h-1.5 rounded-full flex-shrink-0 transition-all duration-200
|
|
81
|
+
${J?P:p}`}),e.jsx("span",{className:"text-[13px] font-medium",children:h(i.name)})]})}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{onClick:()=>S(i.name),className:`
|
|
82
|
+
flex items-center justify-between
|
|
83
|
+
px-2.5 py-1.5 rounded-lg cursor-pointer
|
|
84
|
+
transition-all duration-150 group
|
|
85
|
+
${N[i.name]?"bg-slate-100/70 text-slate-700 dark:bg-slate-700/30 dark:text-slate-300":"text-slate-500 hover:bg-slate-100/70 hover:text-slate-700 dark:text-slate-400 dark:hover:bg-slate-700/30 dark:hover:text-slate-300"}
|
|
86
|
+
`,children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:`w-1.5 h-1.5 rounded-full flex-shrink-0 transition-all duration-200
|
|
87
|
+
${N[i.name]?P:p}`}),e.jsx("span",{className:"text-[13px] font-medium",children:h(i.name)})]}),e.jsx("svg",{className:`w-3 h-3 flex-shrink-0 transition-transform duration-200
|
|
88
|
+
text-slate-400 dark:text-slate-500
|
|
89
|
+
${N[i.name]?"rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]}),i.subItems&&N[i.name]&&e.jsx("div",{className:"mt-0.5 ml-3 pl-2.5 space-y-0.5 border-l border-slate-200/70 dark:border-slate-700/70",children:i.subItems.map(W=>e.jsx(F,{item:W,depth:L+1},W.name))})]})})};return e.jsxs("div",{className:"h-full w-full flex pl-2.5 sm:pl-3.5 max-sm:pr-2.5 sm:max-sm:pr-3.5",children:[e.jsxs("div",{className:`
|
|
90
|
+
rounded-2xl overflow-hidden border w-full
|
|
91
|
+
transition-all duration-300 relative
|
|
92
|
+
bg-gradient-to-br from-white via-violet-50/20 to-white
|
|
93
|
+
border-slate-200/50 dark:border-slate-700/50
|
|
94
|
+
dark:from-slate-800 dark:to-slate-900
|
|
95
|
+
flex flex-col
|
|
96
|
+
`,children:[e.jsx("div",{className:`absolute top-0 right-0 w-48 h-48 rounded-full blur-3xl opacity-10
|
|
97
|
+
bg-violet-300 dark:bg-violet-500
|
|
98
|
+
-translate-y-1/2 translate-x-1/2 pointer-events-none`}),e.jsxs("div",{className:"relative z-10 flex flex-col h-full p-2.5 sm:p-3.5",children:[e.jsx("div",{className:"flex-shrink-0 mb-2.5 sm:mb-3.5",children:e.jsxs("div",{className:`flex items-center gap-2.5 px-3 py-2 rounded-xl sm:rounded-2xl border
|
|
99
|
+
bg-gradient-to-r from-violet-50 to-indigo-50 border-slate-200/50
|
|
100
|
+
dark:from-slate-700/50 dark:to-slate-800/60 dark:border-slate-600/50`,children:[e.jsx("div",{className:`w-7 h-7 rounded-lg flex-shrink-0
|
|
101
|
+
bg-gradient-to-br from-violet-600 to-indigo-600
|
|
102
|
+
flex items-center justify-center
|
|
103
|
+
shadow-sm shadow-violet-500/20`,children:e.jsx("svg",{className:"w-3.5 h-3.5 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 6h16M4 12h16M4 18h16"})})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-bold text-slate-900 dark:text-white leading-tight",children:"Navigation"}),e.jsxs("p",{className:"text-[11px] text-slate-500 dark:text-slate-400 leading-none mt-0.5",children:[a.length," items"]})]})]})}),e.jsx("nav",{className:"flex-1 overflow-y-auto space-y-0.5 custom-scrollbar","aria-label":"Main navigation",children:a.map(i=>e.jsx(F,{item:i,depth:0},i.name))}),s&&e.jsxs("div",{ref:x,className:"flex-shrink-0 mt-2.5 sm:mt-3.5 pt-2.5 sm:pt-3.5 border-t border-slate-200/80 dark:border-slate-700/80",children:[b&&o&&e.jsx("div",{className:`
|
|
104
|
+
mb-1.5 rounded-xl overflow-hidden
|
|
105
|
+
bg-white dark:bg-slate-800
|
|
106
|
+
border border-red-100 dark:border-red-500/20
|
|
107
|
+
shadow-sm
|
|
108
|
+
animate-in slide-in-from-bottom-1 duration-150
|
|
109
|
+
`,children:e.jsxs("button",{onClick:()=>{o(),c(!1)},className:`
|
|
110
|
+
w-full flex items-center gap-2.5 px-3 py-2.5
|
|
111
|
+
text-[13px] font-medium text-red-500
|
|
112
|
+
hover:bg-red-50 dark:hover:bg-red-500/10
|
|
113
|
+
transition-colors duration-150
|
|
114
|
+
`,children:[e.jsx(y.LogOut,{className:"w-3.5 h-3.5 flex-shrink-0"}),"Sign out"]})}),e.jsxs("button",{onClick:()=>c(i=>!i),className:`
|
|
115
|
+
w-full flex items-center gap-2.5
|
|
116
|
+
px-2.5 py-2 rounded-xl border
|
|
117
|
+
transition-all duration-150
|
|
118
|
+
${b?"bg-violet-50 border-violet-200/60 dark:bg-violet-900/20 dark:border-violet-700/40":"bg-slate-50/60 border-slate-200/50 hover:bg-violet-50 hover:border-violet-200/60 dark:bg-slate-800/40 dark:border-slate-700/50 dark:hover:bg-violet-900/20 dark:hover:border-violet-700/40"}
|
|
119
|
+
`,children:[e.jsx("div",{className:`
|
|
120
|
+
w-7 h-7 rounded-lg flex-shrink-0
|
|
121
|
+
bg-gradient-to-br from-violet-600 to-indigo-600
|
|
122
|
+
flex items-center justify-center shadow-sm shadow-violet-500/20
|
|
123
|
+
`,children:e.jsx(y.User,{className:"w-3.5 h-3.5 text-white"})}),e.jsxs("div",{className:"flex-1 text-left min-w-0",children:[e.jsx("p",{className:"text-[13px] font-semibold text-slate-900 dark:text-white truncate leading-none",children:s.username}),e.jsx("p",{className:"text-[11px] text-slate-400 dark:text-slate-500 truncate mt-0.5 leading-none",children:s.email})]}),e.jsx(y.ChevronDown,{className:`
|
|
124
|
+
w-3 h-3 flex-shrink-0 text-slate-400 dark:text-slate-500
|
|
125
|
+
transition-transform duration-200
|
|
126
|
+
${b?"rotate-180":""}
|
|
127
|
+
`})]})]})]})]}),e.jsx("style",{children:`
|
|
128
|
+
.custom-scrollbar::-webkit-scrollbar { width: 3px; }
|
|
129
|
+
.custom-scrollbar::-webkit-scrollbar-track { background: transparent; }
|
|
130
|
+
.custom-scrollbar::-webkit-scrollbar-thumb { background: rgb(203 213 225 / 0.6); border-radius: 999px; }
|
|
131
|
+
.custom-scrollbar::-webkit-scrollbar-thumb:hover { background: rgb(148 163 184); }
|
|
132
|
+
`})]})},at=({icon:a,title:s,subtitle:o,badge:n,actions:h,searchBar:b,onIconClick:c,iconTitle:x})=>e.jsxs("div",{className:`
|
|
133
|
+
flex-shrink-0 relative overflow-hidden
|
|
134
|
+
rounded-xl sm:rounded-2xl border
|
|
135
|
+
transition-all duration-300
|
|
136
|
+
bg-gradient-to-br from-violet-50 via-indigo-50 to-blue-50
|
|
137
|
+
border-slate-200/50
|
|
138
|
+
dark:bg-gradient-to-br dark:from-slate-800 dark:to-slate-900
|
|
139
|
+
dark:border-slate-700/50
|
|
140
|
+
`,children:[e.jsx("div",{className:`absolute top-0 right-0 w-64 h-64 rounded-full blur-3xl opacity-20
|
|
141
|
+
bg-violet-300 dark:bg-violet-500
|
|
142
|
+
-translate-y-1/2 translate-x-1/2 pointer-events-none`}),e.jsx("div",{className:`absolute bottom-0 left-0 w-48 h-48 rounded-full blur-3xl opacity-20
|
|
143
|
+
bg-indigo-300 dark:bg-indigo-500
|
|
144
|
+
translate-y-1/2 -translate-x-1/2 pointer-events-none`}),e.jsxs("div",{className:"relative z-10 px-4 py-3 sm:px-5 sm:py-3.5",children:[e.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[a&&e.jsx("div",{className:`
|
|
145
|
+
flex-shrink-0 w-9 h-9 sm:w-10 sm:h-10
|
|
146
|
+
rounded-xl bg-gradient-to-br from-violet-600 to-indigo-600
|
|
147
|
+
flex items-center justify-center
|
|
148
|
+
shadow-md shadow-violet-200/40 dark:shadow-violet-900/30
|
|
149
|
+
transition-all duration-200
|
|
150
|
+
${c?"cursor-pointer hover:scale-110 hover:shadow-lg active:scale-95":"hover:scale-105"}
|
|
151
|
+
`,onClick:c,title:x,role:c?"button":void 0,tabIndex:c?0:void 0,onKeyDown:c?k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),c())}:void 0,children:e.jsx(a,{className:"w-[18px] h-[18px] sm:w-5 sm:h-5 text-white"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("h2",{className:`text-base sm:text-lg font-bold tracking-tight
|
|
152
|
+
text-slate-900 dark:text-white leading-tight truncate`,children:s}),n&&e.jsx("span",{className:`
|
|
153
|
+
inline-flex items-center px-2 py-0.5 rounded-full
|
|
154
|
+
text-[11px] font-semibold tracking-wide
|
|
155
|
+
bg-violet-100 text-violet-700
|
|
156
|
+
border border-violet-200/50
|
|
157
|
+
dark:bg-violet-600/50 dark:text-violet-400 dark:border-violet-500/30
|
|
158
|
+
`,children:n})]}),o&&e.jsx("p",{className:"mt-0.5 text-xs text-slate-500 dark:text-slate-400 leading-snug truncate",children:o})]}),h&&e.jsx("div",{className:`
|
|
159
|
+
flex-shrink-0
|
|
160
|
+
flex items-center gap-1.5
|
|
161
|
+
overflow-x-auto sm:overflow-x-visible
|
|
162
|
+
scroll-smooth
|
|
163
|
+
pb-0.5 sm:pb-0
|
|
164
|
+
max-w-[calc(100vw-14rem)]
|
|
165
|
+
sm:max-w-none
|
|
166
|
+
sm:flex-wrap
|
|
167
|
+
[&::-webkit-scrollbar]:hidden
|
|
168
|
+
`,children:h})]}),b&&e.jsx("div",{className:"mt-3 pt-3 border-t border-slate-200/40 dark:border-slate-700/50",children:b})]})]}),st=({icon:a,onClick:s,title:o,variant:n="secondary",size:h="md"})=>{const b={secondary:`bg-white hover:bg-slate-50 text-slate-700 border border-slate-200 shadow-sm
|
|
169
|
+
dark:bg-slate-700/50 dark:hover:bg-slate-700 dark:text-slate-300 dark:border-slate-600/50`,danger:`bg-white hover:bg-red-50 text-slate-500 hover:text-red-600 border border-slate-200 shadow-sm
|
|
170
|
+
dark:bg-slate-700/50 dark:hover:bg-red-900/20 dark:text-slate-400 dark:hover:text-red-400 dark:border-slate-600/50`,primary:`bg-violet-100 hover:bg-violet-200 text-violet-700 border border-violet-200 shadow-sm
|
|
171
|
+
dark:bg-violet-600/20 dark:hover:bg-violet-600/30 dark:text-violet-400 dark:border-violet-500/30`},c={sm:"p-1.5",md:"p-2 sm:p-2.5"},x={sm:"w-3.5 h-3.5",md:"w-4 h-4 sm:w-[18px] sm:h-[18px]"};return e.jsx("button",{onClick:s,title:o,"aria-label":o,className:`
|
|
172
|
+
rounded-xl transition-all duration-200
|
|
173
|
+
${c[h]}
|
|
174
|
+
${b[n]??b.secondary}
|
|
175
|
+
hover:scale-105 active:scale-95
|
|
176
|
+
`,children:e.jsx(a,{className:x[h]})})},rt=({children:a,icon:s,iconPosition:o="left",disabled:n=!1,onClick:h,variant:b="primary",loading:c=!1,size:x="md",className:k="",...N})=>{const T={sm:"px-3 py-1.5 text-xs rounded-lg gap-1.5",md:"px-4 py-2 sm:px-5 sm:py-2.5 text-sm rounded-xl gap-2",lg:"px-5 py-2.5 sm:px-6 sm:py-3 text-sm sm:text-base rounded-xl gap-2"},S={sm:"w-3.5 h-3.5",md:"w-4 h-4",lg:"w-4 h-4 sm:w-5 sm:h-5"},E={primary:n||c?"bg-violet-300 text-white cursor-not-allowed opacity-60 dark:bg-violet-800/50":"bg-gradient-to-r from-violet-600 to-indigo-600 text-white hover:from-violet-700 hover:to-indigo-700 shadow-md hover:shadow-lg hover:scale-105 active:scale-95",secondary:n||c?"bg-gray-200 text-gray-400 cursor-not-allowed opacity-60 dark:bg-gray-700 dark:text-gray-500":"bg-white text-slate-700 border border-slate-200 hover:bg-slate-50 dark:bg-slate-700/50 dark:text-slate-300 dark:border-slate-600 dark:hover:bg-slate-700 shadow-sm hover:shadow-md hover:scale-105 active:scale-95",danger:n||c?"bg-red-300 text-white cursor-not-allowed opacity-60 dark:bg-red-800/50":"bg-red-600 text-white hover:bg-red-700 shadow-md hover:shadow-lg hover:scale-105 active:scale-95"};return e.jsxs("button",{disabled:n||c,onClick:n||c?void 0:h,className:`
|
|
177
|
+
inline-flex items-center justify-center font-semibold whitespace-nowrap
|
|
178
|
+
transition-all duration-200
|
|
179
|
+
${T[x]}
|
|
180
|
+
${E[b]}
|
|
181
|
+
${k}
|
|
182
|
+
`,...N,children:[s&&o==="left"&&!c&&e.jsx(s,{className:`${S[x]} flex-shrink-0`}),c&&e.jsx("span",{className:`${S[x]} flex-shrink-0 animate-spin rounded-full
|
|
183
|
+
border-2 border-white/30 border-t-white`}),e.jsx("span",{children:c?"Loading...":a}),s&&o==="right"&&!c&&e.jsx(s,{className:`${S[x]} flex-shrink-0`})]})},lt=({value:a,onChange:s,placeholder:o="Search...",onClear:n})=>e.jsxs("div",{className:"relative",children:[e.jsx("svg",{className:"absolute left-4 top-1/2 -translate-y-1/2 w-5 h-5 text-slate-400 dark:text-slate-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})}),e.jsx("input",{type:"text",placeholder:o,value:a,onChange:s,className:"w-full pl-12 pr-4 py-3 rounded-xl border transition-all duration-200 bg-white border-slate-200 text-slate-900 placeholder-slate-400 focus:border-violet-400 focus:bg-slate-50 dark:bg-slate-800/50 dark:border-slate-700 dark:text-white dark:placeholder-slate-500 dark:focus:border-violet-500 dark:focus:bg-slate-800 focus:outline-none focus:ring-2 focus:ring-violet-500/20"}),a&&n&&e.jsx("button",{onClick:n,className:"absolute right-4 top-1/2 -translate-y-1/2 p-1 rounded-lg transition-colors text-slate-400 hover:text-slate-600 hover:bg-slate-100 dark:text-slate-500 dark:hover:text-slate-300 dark:hover:bg-slate-700",children:e.jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),nt=({columns:a,data:s,onSort:o,sortConfig:n,emptyMessage:h="No data found",emptyDescription:b="Try adjusting your filters or add new data",emptyIcon:c})=>s.length===0?e.jsx("div",{className:"h-full rounded-2xl border bg-white border-slate-200/50 dark:bg-slate-800/50 dark:border-slate-700/50 flex items-center justify-center",children:e.jsxs("div",{className:"text-center py-12 px-6",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-slate-100 dark:bg-slate-700 flex items-center justify-center mx-auto mb-4",children:c?e.jsx(c,{className:"w-8 h-8 text-slate-400 dark:text-slate-500"}):e.jsx("svg",{className:"w-8 h-8 text-slate-400 dark:text-slate-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4"})})}),e.jsx("h3",{className:"text-lg font-semibold text-slate-900 dark:text-slate-300 mb-2",children:h}),e.jsx("p",{className:"text-sm text-slate-600 dark:text-slate-400",children:b})]})}):e.jsx("div",{className:"h-full rounded-2xl border bg-white border-slate-200/50 dark:bg-slate-800/50 dark:border-slate-700/50 flex flex-col overflow-hidden",children:e.jsx("div",{className:"flex-1 overflow-auto",children:e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{className:"bg-slate-50 dark:bg-slate-800/50 sticky top-0 ",children:e.jsx("tr",{children:a.map(x=>e.jsx("th",{onClick:()=>x.sortable&&o&&o(x.key),className:`
|
|
184
|
+
px-6 py-4 text-left text-xs font-semibold text-slate-700 dark:text-slate-300 uppercase tracking-wider
|
|
185
|
+
${x.sortable?"cursor-pointer select-none hover:bg-slate-100 dark:hover:bg-slate-700/50":""}
|
|
186
|
+
`,children:e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("span",{children:x.label}),x.sortable&&(n==null?void 0:n.key)===x.key&&e.jsx("span",{className:"text-violet-600 dark:text-violet-400",children:n.direction==="asc"?"↑":"↓"})]})},x.key))})}),e.jsx("tbody",{className:"divide-y divide-slate-200 dark:divide-slate-700",children:s.map((x,k)=>e.jsx("tr",{className:"hover:bg-slate-50 dark:hover:bg-slate-800/30 transition-colors",children:a.map(N=>e.jsx("td",{className:"px-6 py-4 whitespace-nowrap text-sm",children:N.render?N.render(x):x[N.key]},N.key))},x.id||k))})]})})}),ot=({icon:a,onClick:s,children:o,variant:n="primary",disabled:h=!1,title:b="",size:c="md"})=>{const x={primary:"bg-violet-100 text-violet-700 hover:bg-violet-200 border border-violet-200 dark:bg-violet-600/20 dark:text-violet-400 dark:hover:bg-violet-600/30 dark:border dark:border-violet-500/30",amber:"bg-amber-50 text-amber-700 border border-amber-200 hover:bg-amber-100 dark:bg-amber-900/20 dark:text-amber-300 dark:border-amber-700/40",emerald:"bg-emerald-50 text-emerald-700 border border-emerald-200 hover:bg-emerald-100 dark:bg-emerald-900/20 dark:text-emerald-300 dark:border-emerald-700/40",red:"bg-red-50 text-red-700 border border-red-200 hover:bg-red-100 dark:bg-red-900/20 dark:text-red-300 dark:border-red-700/40",teal:"bg-teal-50 text-teal-700 border border-teal-200 hover:bg-teal-100 dark:bg-teal-900/20 dark:text-teal-300 dark:border-teal-700/40",blue:"bg-blue-50 text-blue-700 border border-blue-200 hover:bg-blue-100 dark:bg-blue-900/20 dark:text-blue-300 dark:border-blue-700/40",indigo:"bg-indigo-50 text-indigo-700 border border-indigo-200 hover:bg-indigo-100 dark:bg-indigo-900/20 dark:text-indigo-300 dark:border-indigo-700/40",pink:"bg-pink-50 text-pink-700 border border-pink-200 hover:bg-pink-100 dark:bg-pink-900/20 dark:text-pink-300 dark:border-pink-700/40",cyan:"bg-cyan-50 text-cyan-700 border border-cyan-200 hover:bg-cyan-100 dark:bg-cyan-900/20 dark:text-cyan-300 dark:border-cyan-700/40",orange:"bg-orange-50 text-orange-700 border border-orange-200 hover:bg-orange-100 dark:bg-orange-900/20 dark:text-orange-300 dark:border-orange-700/40",dark:"bg-slate-800 text-slate-100 border border-slate-700 hover:bg-slate-700 dark:bg-slate-700 dark:text-slate-100 dark:hover:bg-slate-600 dark:border-slate-600",ghost:"bg-transparent text-slate-600 border border-dashed border-slate-300 hover:bg-slate-50 dark:text-slate-400 dark:border-slate-600 dark:hover:bg-slate-800/50",rainbow:"action-btn-rainbow",disabled:"bg-slate-100/50 text-slate-400 border border-slate-200/50 cursor-not-allowed dark:bg-slate-800/30 dark:text-slate-500 dark:border-slate-700/50"},k={sm:"px-2.5 py-1.5 text-xs gap-1",md:"px-3 py-1.5 sm:px-3.5 sm:py-2 text-sm gap-1.5"},N=h?x.disabled:x[n]??x.primary;return e.jsxs(e.Fragment,{children:[e.jsx("style",{children:`
|
|
187
|
+
@property --beam-angle {
|
|
188
|
+
syntax: '<angle>';
|
|
189
|
+
initial-value: 0deg;
|
|
190
|
+
inherits: false;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
@keyframes beam-travel {
|
|
194
|
+
to { --beam-angle: 360deg; }
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.action-btn-rainbow {
|
|
198
|
+
position: relative;
|
|
199
|
+
background: white;
|
|
200
|
+
color: #1e293b;
|
|
201
|
+
border: 2px solid #e2e8f0;
|
|
202
|
+
overflow: hidden;
|
|
203
|
+
z-index: 0;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/* blocks glow from bleeding into button interior */
|
|
207
|
+
.action-btn-rainbow::before {
|
|
208
|
+
content: '';
|
|
209
|
+
position: absolute;
|
|
210
|
+
inset: 0;
|
|
211
|
+
background: white;
|
|
212
|
+
border-radius: inherit;
|
|
213
|
+
z-index: 0;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/* moving beam on border */
|
|
217
|
+
.action-btn-rainbow::after {
|
|
218
|
+
content: '';
|
|
219
|
+
position: absolute;
|
|
220
|
+
inset: -1px;
|
|
221
|
+
border-radius: inherit;
|
|
222
|
+
background: conic-gradient(
|
|
223
|
+
from var(--beam-angle),
|
|
224
|
+
transparent 75%,
|
|
225
|
+
#a78bfa 82%,
|
|
226
|
+
#f472b6 88%,
|
|
227
|
+
#fbbf24 92%,
|
|
228
|
+
#34d399 96%,
|
|
229
|
+
transparent 100%
|
|
230
|
+
);
|
|
231
|
+
animation: beam-travel 2s linear infinite;
|
|
232
|
+
z-index: 1;
|
|
233
|
+
mask: linear-gradient(#fff 0 0) content-box,
|
|
234
|
+
linear-gradient(#fff 0 0);
|
|
235
|
+
mask-composite: exclude;
|
|
236
|
+
-webkit-mask: linear-gradient(#fff 0 0) content-box,
|
|
237
|
+
linear-gradient(#fff 0 0);
|
|
238
|
+
-webkit-mask-composite: destination-out;
|
|
239
|
+
padding: 3px;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/* text/icon above blocking layer */
|
|
243
|
+
.action-btn-rainbow > * {
|
|
244
|
+
position: relative;
|
|
245
|
+
z-index: 2;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.action-btn-rainbow:hover {
|
|
249
|
+
color: #000;
|
|
250
|
+
transform: scale(1.05);
|
|
251
|
+
border-color: #c4b5fd;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.dark .action-btn-rainbow {
|
|
255
|
+
background: #0f172a;
|
|
256
|
+
color: #e2e8f0;
|
|
257
|
+
border-color: #334155;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.dark .action-btn-rainbow::before {
|
|
261
|
+
background: #0f172a;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.dark .action-btn-rainbow:hover {
|
|
265
|
+
color: #fff;
|
|
266
|
+
border-color: #7c3aed;
|
|
267
|
+
}
|
|
268
|
+
`}),e.jsxs("button",{onClick:h?void 0:s,type:"button",title:b,disabled:h,className:`
|
|
269
|
+
inline-flex items-center justify-center relative
|
|
270
|
+
${k[c]}
|
|
271
|
+
rounded-xl font-semibold whitespace-nowrap
|
|
272
|
+
transition-all duration-200
|
|
273
|
+
${N}
|
|
274
|
+
${h?"opacity-60":"active:scale-95"}
|
|
275
|
+
`,children:[a&&e.jsx(a,{className:"w-3.5 h-3.5 flex-shrink-0"}),o&&e.jsx("span",{children:o})]})]})},it=({isOpen:a,onClose:s,title:o,subtitle:n,icon:h,children:b,size:c="md",fullscreen:x=!1,hideHeader:k=!1})=>{if(j.useEffect(()=>{const S=E=>{E.key==="Escape"&&s()};return a&&(document.addEventListener("keydown",S),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",S),document.body.style.overflow="unset"}},[a,s]),!a)return null;const N={sm:"max-w-md",md:"max-w-2xl",lg:"max-w-4xl",xl:"max-w-6xl"},T=e.jsx("div",{className:`flex-shrink-0 px-4 py-3 sm:px-5 sm:py-4
|
|
276
|
+
bg-gradient-to-r from-violet-50 via-indigo-50 to-violet-50
|
|
277
|
+
dark:from-slate-700/50 dark:via-slate-800/50 dark:to-slate-700/50
|
|
278
|
+
border-b border-slate-200 dark:border-slate-700`,children:e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2.5 sm:gap-3 min-w-0",children:[h&&e.jsx("div",{className:`flex-shrink-0 w-9 h-9 sm:w-10 sm:h-10 rounded-xl
|
|
279
|
+
flex items-center justify-center
|
|
280
|
+
bg-gradient-to-br from-violet-600 to-indigo-600 shadow-lg`,children:e.jsx(h,{className:"w-[18px] h-[18px] sm:w-5 sm:h-5 text-white"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("h3",{className:"text-sm sm:text-base font-bold text-slate-900 dark:text-white truncate",children:o}),n&&e.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400 mt-0.5 truncate",children:n})]})]}),e.jsx("button",{onClick:s,className:`flex-shrink-0 p-1.5 rounded-lg border transition-all duration-200
|
|
281
|
+
text-slate-400
|
|
282
|
+
hover:bg-slate-100 hover:text-slate-900
|
|
283
|
+
border-slate-200 hover:border-slate-300
|
|
284
|
+
dark:border-slate-600 dark:hover:bg-slate-700
|
|
285
|
+
dark:hover:text-white dark:hover:border-slate-500
|
|
286
|
+
hover:scale-105 active:scale-95`,"aria-label":"Close modal",children:e.jsx(y.X,{className:"w-4 h-4"})})]})});return x?je.createPortal(e.jsxs("div",{className:"fixed inset-0 z-[11000] flex flex-col animate-in fade-in duration-200 bg-white dark:bg-slate-800",children:[!k&&T,e.jsx("div",{className:"flex-1 min-h-0 overflow-hidden",children:b})]}),document.body):je.createPortal(e.jsxs("div",{className:"fixed inset-0 z-[11000] overflow-y-auto flex min-h-full items-center justify-center animate-in fade-in duration-200",children:[e.jsx("div",{className:"fixed inset-0 bg-slate-900/50 backdrop-blur-sm",onClick:s}),e.jsx("div",{className:`relative z-[11001] w-full ${N[c]} animate-in zoom-in-95 duration-200 my-auto`,children:e.jsxs("div",{className:`
|
|
287
|
+
rounded-xl sm:rounded-2xl border overflow-hidden
|
|
288
|
+
bg-white border-slate-200/50 shadow-2xl ml-2 mr-2
|
|
289
|
+
dark:bg-slate-800 dark:border-slate-700/50
|
|
290
|
+
flex flex-col max-h-[70dvh] sm:max-h-[80dvh]
|
|
291
|
+
`,children:[!k&&T,e.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto",children:b})]})})]}),document.body)},De=({checked:a=!1,onChange:s,disabled:o=!1,label:n,name:h,helpText:b})=>{const c=()=>{o||s(h,!a)};return e.jsxs("div",{className:"space-y-1.5",children:[n&&e.jsx("span",{className:"block text-sm font-semibold text-slate-700 dark:text-slate-300",children:n}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("button",{type:"button",role:"switch","aria-checked":a,onClick:c,disabled:o,className:`
|
|
292
|
+
relative inline-flex h-6 w-11 flex-shrink-0 items-center rounded-full
|
|
293
|
+
transition-all duration-200
|
|
294
|
+
${a?"bg-gradient-to-r from-violet-600 to-indigo-600 shadow-md shadow-violet-200 dark:shadow-violet-900/30":"bg-slate-300 dark:bg-slate-600"}
|
|
295
|
+
${o?"opacity-50 cursor-not-allowed":"cursor-pointer hover:scale-105 active:scale-95"}
|
|
296
|
+
focus:outline-none focus-visible:ring-2 focus-visible:ring-violet-500/30 focus-visible:ring-offset-2 dark:focus-visible:ring-offset-slate-800
|
|
297
|
+
`,children:e.jsx("span",{className:`
|
|
298
|
+
inline-block h-4 w-4 transform rounded-full bg-white shadow-md
|
|
299
|
+
transition-transform duration-200
|
|
300
|
+
${a?"translate-x-6":"translate-x-1"}
|
|
301
|
+
`})}),e.jsx("span",{className:`text-sm font-medium ${a?"text-violet-700 dark:text-violet-400":"text-slate-500 dark:text-slate-400"}`,children:a?"Yes":"No"})]}),b&&e.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400 leading-snug",children:b})]})},Ne=({field:a,value:s,onChange:o,error:n,index:h,mode:b="create"})=>{var H;const[c,x]=j.useState(""),[k,N]=j.useState(!1),[T,S]=j.useState(!1),[E,$]=j.useState(null),[P,p]=j.useState(""),[F,i]=j.useState(!1),L=m=>{const D=m.target.value;o(a.name,D)},G=m=>{o(a.name,m),N(!1),x("")},J=()=>{N(!1),x(""),i(!1),$(null)},W=()=>{c.trim()&&(o(a.name,c.trim()),S(!0),N(!1),x(""))},se=(m,D)=>{D.preventDefault(),D.stopPropagation(),$(m),p(m.label),i(!0)},re=async m=>{m.preventDefault(),m.stopPropagation(),P.trim()&&E&&a.onEditRank&&await a.onEditRank(E.value,P.trim())&&(s===E.value&&o(a.name,E.value),i(!1),$(null),p(""))},ee=m=>{m.preventDefault(),m.stopPropagation(),i(!1),$(null),p("")},M=(()=>{if(!c)return a.options||[];const m=Array.isArray(a.options)?a.options:[];if(a.fuzzySearch&&typeof a.findFuzzyMatches=="function")try{return a.findFuzzyMatches(c,m,a.fuzzyThreshold||.5)}catch(D){return console.error("Fuzzy search error:",D),m.filter(X=>{var ae;return(ae=X.label)==null?void 0:ae.toLowerCase().includes(c.toLowerCase())})}return m.filter(D=>{var X;return(X=D.label)==null?void 0:X.toLowerCase().includes(c.toLowerCase())})||[]})(),Q=c.trim()&&a.fuzzySearch&&a.options&&typeof a.checkForDuplicateDesignation=="function"?a.checkForDuplicateDesignation(c,a.options,.8):null,d=Q&&Q.similarityScore===1,w=a.type==="select-or-custom"&&s&&!((H=a.options)!=null&&H.some(m=>m.value===s)),_=()=>{var D;if(!s)return a.placeholder;if(a.type==="select-or-custom"&&w)return s;const m=(D=a.options)==null?void 0:D.find(X=>X.value===s);return m?m.label:a.placeholder},A=()=>{var ae,oe;const m=a.icon,D=`
|
|
302
|
+
w-full px-3.5 py-2.5 rounded-xl border transition-all duration-200
|
|
303
|
+
bg-white dark:bg-slate-800 text-sm text-slate-900 dark:text-white
|
|
304
|
+
focus:outline-none focus:ring-2 focus:ring-violet-500/20 placeholder-slate-400
|
|
305
|
+
`,X=n?"border-red-300 dark:border-red-700 focus:border-red-500 focus:ring-red-500":"border-slate-300 dark:border-slate-600 focus:border-violet-500 focus:ring-violet-500";switch(a.type){case"select-or-custom":return T||w?e.jsxs("div",{className:"relative",children:[m&&e.jsx("div",{className:"absolute left-3 sm:left-4 top-1/2 -translate-y-1/2 pointer-events-none",children:e.jsx(m,{className:"w-4 h-4 sm:w-5 sm:h-5 text-slate-400"})}),e.jsx("input",{type:"text",value:s,onChange:l=>o(a.name,l.target.value),placeholder:a.customPlaceholder||"Enter custom value",disabled:a.disabled,className:`${D} ${X} ${m?"pl-9 sm:pl-12":""} pr-32 disabled:opacity-50 disabled:cursor-not-allowed`}),e.jsx("button",{type:"button",onClick:l=>{l.preventDefault(),l.stopPropagation(),S(!1),o(a.name,"")},className:"absolute right-3 top-1/2 -translate-y-1/2 px-3 py-1.5 text-xs font-semibold text-slate-600 hover:text-slate-900 dark:text-slate-400 dark:hover:text-white transition-colors rounded-lg hover:bg-slate-100 dark:hover:bg-slate-700",children:"Select Existing"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("button",{type:"button",onClick:l=>{l.preventDefault(),l.stopPropagation(),a.disabled||N(!0)},disabled:a.disabled,className:` relative ${D} ${X} ${m?"pl-12":""} pr-4 text-left flex items-center justify-between disabled:opacity-50 disabled:cursor-not-allowed hover:border-violet-400 dark:hover:border-violet-500`,children:[m&&e.jsx("div",{className:"absolute left-3 sm:left-4 top-1/2 -translate-y-1/2 pointer-events-none",children:e.jsx(m,{className:"w-4 h-4 sm:w-5 sm:h-5 text-slate-400"})}),e.jsx("span",{className:`${s?"":"text-slate-400"} truncate pr-2`,title:_(),children:_()}),e.jsx(y.ChevronDown,{className:"w-5 h-5 text-slate-400 "})]}),k&&e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-4 bg-slate-900/50 backdrop-blur-sm animate-in fade-in duration-200",onMouseDown:l=>{l.target===l.currentTarget&&(l.preventDefault(),l.stopPropagation(),J())},children:e.jsx("div",{className:"relative w-full max-w-md animate-in zoom-in-95 duration-200",onMouseDown:l=>l.stopPropagation(),children:e.jsxs("div",{className:"rounded-2xl border overflow-hidden bg-white border-slate-200/50 shadow-2xl max-h-[70vh] sm:max-h-[80vh] dark:bg-slate-800 dark:border-slate-700/50 flex flex-col",children:[e.jsx("div",{className:`flex-shrink-0 px-4 py-3 sm:px-5 sm:py-4
|
|
306
|
+
bg-gradient-to-r from-violet-50 via-indigo-50 to-violet-50
|
|
307
|
+
dark:from-slate-700/50 dark:via-slate-800/50 dark:to-slate-700/50
|
|
308
|
+
border-b border-slate-200 dark:border-slate-700 rounded-t-2xl`,children:e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("h3",{className:"text-sm sm:text-base font-bold text-slate-900 dark:text-white truncate",children:F?"Edit Rank Designation":a.modalTitle||a.label}),e.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400 mt-0.5 truncate",children:F?`Editing: ${E==null?void 0:E.label}`:a.modalSubtitle||"Search existing or create new"})]}),e.jsx("button",{type:"button",onClick:l=>{l.preventDefault(),l.stopPropagation(),J()},className:`flex-shrink-0 p-1.5 rounded-lg border transition-all duration-200
|
|
309
|
+
text-slate-400 hover:bg-slate-100 hover:text-slate-900
|
|
310
|
+
border-slate-200/50 hover:border-slate-300
|
|
311
|
+
dark:border-slate-700/50 dark:hover:bg-slate-700
|
|
312
|
+
dark:hover:text-white dark:hover:border-slate-500
|
|
313
|
+
hover:scale-105 active:scale-95`,children:e.jsx(y.X,{className:"w-4 h-4"})})]})}),F?e.jsxs("div",{className:"p-4 sm:p-5 space-y-3 sm:space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:`block text-xs font-semibold uppercase tracking-wide
|
|
314
|
+
text-slate-700 dark:text-slate-300 mb-1.5`,children:"Edit Rank Designation"}),e.jsx("input",{type:"text",value:P,onChange:l=>p(l.target.value),className:`w-full px-3 py-2.5 sm:px-4 sm:py-3 rounded-xl border
|
|
315
|
+
border-slate-200/50 dark:border-slate-700/50
|
|
316
|
+
bg-white dark:bg-slate-800
|
|
317
|
+
text-sm text-slate-900 dark:text-white
|
|
318
|
+
focus:border-violet-500 focus:ring-2 focus:ring-violet-500/20 transition-all`,placeholder:"Enter new rank name",autoFocus:!0})]}),e.jsxs("div",{className:"flex gap-2 sm:gap-3",children:[e.jsxs("button",{type:"button",onClick:ee,className:`flex-1 inline-flex items-center justify-center gap-2
|
|
319
|
+
px-3 py-2.5 sm:px-4 sm:py-3 rounded-xl
|
|
320
|
+
bg-white dark:bg-slate-700 hover:bg-slate-50 dark:hover:bg-slate-600
|
|
321
|
+
text-sm font-semibold text-slate-700 dark:text-slate-300
|
|
322
|
+
border border-slate-200/50 dark:border-slate-700/50
|
|
323
|
+
transition-all duration-200 hover:scale-105 active:scale-95 shadow-sm`,children:[e.jsx(y.X,{className:"w-4 h-4"})," Cancel"]}),e.jsxs("button",{type:"button",onClick:re,className:`flex-1 inline-flex items-center justify-center gap-2
|
|
324
|
+
px-3 py-2.5 sm:px-4 sm:py-3 rounded-xl
|
|
325
|
+
bg-gradient-to-r from-violet-600 to-indigo-600
|
|
326
|
+
hover:from-violet-700 hover:to-indigo-700
|
|
327
|
+
text-sm font-semibold text-white
|
|
328
|
+
shadow-md hover:shadow-lg
|
|
329
|
+
transition-all duration-200 hover:scale-105 active:scale-95`,children:[e.jsx(y.Save,{className:"w-4 h-4"})," Save Changes"]})]})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"p-4 border-b border-slate-200 dark:border-slate-700",children:e.jsxs("div",{className:"relative",children:[e.jsx(y.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-slate-400"}),e.jsx("input",{type:"text",value:c,onChange:l=>x(l.target.value),placeholder:a.fuzzySearch?"Search or type to create new...":"Search...",className:"w-full pl-10 pr-4 py-2.5 rounded-lg border border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 text-slate-900 dark:text-white placeholder-slate-400 focus:border-violet-500 focus:ring-2 focus:ring-violet-500/20 transition-all",autoFocus:!0})]})}),Q&&Q.similarityScore<1&&e.jsx("div",{className:"mx-4 mt-4 p-3 rounded-lg bg-amber-50 dark:bg-amber-900/20 border border-amber-200 dark:border-amber-800/50",children:e.jsxs("div",{className:"flex items-start space-x-2",children:[e.jsx(y.AlertCircle,{className:"w-4 h-4 text-amber-600 dark:text-amber-400 flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"flex-1 text-xs",children:[e.jsx("p",{className:"font-semibold text-amber-900 dark:text-amber-300",children:"Similar designation found!"}),e.jsxs("p",{className:"text-amber-700 dark:text-amber-400 mt-1",children:["Similar rank found (",Q.scorePercentage,"% match). You can still create this if it's different."]})]})]})}),e.jsx("div",{className:"flex-1 overflow-y-auto p-2",children:c.trim()?e.jsxs(e.Fragment,{children:[M.length>0&&e.jsxs("div",{className:"space-y-1 mb-3",children:[e.jsx("p",{className:"px-4 py-2 text-xs font-semibold text-slate-500 dark:text-slate-400 uppercase tracking-wider",children:"Existing Options"}),M.map(l=>e.jsx("div",{className:"group relative",children:e.jsxs("button",{type:"button",onClick:f=>{f.preventDefault(),f.stopPropagation(),G(l.value)},className:`w-full text-left px-4 py-3 rounded-lg transition-all duration-200 flex items-center justify-between ${s===l.value?"bg-violet-100 dark:bg-violet-600/20 text-violet-900 dark:text-violet-300 font-semibold":"hover:bg-slate-100 dark:hover:bg-slate-700 text-slate-700 dark:text-slate-300"}`,children:[e.jsx("span",{children:l.label}),e.jsxs("div",{className:"flex items-center gap-2",children:[a.fuzzySearch&&l.scorePercentage&&e.jsxs("span",{className:"inline-flex items-center px-2 py-0.5 rounded-md text-xs font-semibold bg-green-100 text-green-800 dark:bg-green-600/20 dark:text-green-400",children:[l.scorePercentage,"% match"]}),a.onEditRank&&!a.disabled&&e.jsx("button",{type:"button",onClick:f=>se(l,f),className:"opacity-0 group-hover:opacity-100 transition-opacity p-1.5 rounded-md hover:bg-white dark:hover:bg-slate-600 text-slate-500 hover:text-violet-600 dark:text-slate-400 dark:hover:text-violet-400",title:"Edit this rank",children:e.jsx(y.Edit,{className:"w-3.5 h-3.5"})})]})]})},l.value))]}),(!d||(Q==null?void 0:Q.similarityScore)<1)&&e.jsxs("div",{className:M.length>0?"border-t border-slate-200 dark:border-slate-700 pt-3":"",children:[e.jsx("p",{className:"px-4 py-2 text-xs font-semibold text-slate-500 dark:text-slate-400 uppercase tracking-wider",children:M.length>0?b==="edit"?"Or Update To":"Or Create New":"No matches found"}),e.jsx("div",{className:"px-2",children:e.jsx("button",{type:"button",onClick:l=>{l.preventDefault(),l.stopPropagation(),W()},className:"w-full px-4 py-3 rounded-lg transition-all duration-200 bg-gradient-to-r from-violet-600 to-indigo-600 hover:from-violet-700 hover:to-indigo-700 text-white font-semibold shadow-lg hover:shadow-xl transform hover:-translate-y-0.5 min-w-0",children:e.jsxs("div",{className:"flex items-center justify-center space-x-2 min-w-0",children:[e.jsx(y.Sparkles,{className:"w-5 h-5 flex-shrink-0"}),e.jsxs("span",{className:"truncate",children:[b==="edit"?"Update to":"Create New",": ",c.trim()]})]})})})]})]}):e.jsx("div",{className:"space-y-1",children:a.options&&a.options.length>0?a.options.map(l=>e.jsx("div",{className:"group relative",children:e.jsx("button",{type:"button",onClick:f=>{f.preventDefault(),f.stopPropagation(),G(l.value)},className:`w-full text-left px-4 py-3 rounded-lg transition-all duration-200 break-words whitespace-normal ${s===l.value?"bg-violet-100 dark:bg-violet-600/20 text-violet-900 dark:text-violet-300 font-semibold":"hover:bg-slate-100 dark:hover:bg-slate-700 text-slate-700 dark:text-slate-300"}`,children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"flex-1",children:l.label}),a.onEditRank&&!a.disabled&&e.jsx("button",{type:"button",onClick:f=>se(l,f),className:"opacity-0 group-hover:opacity-100 transition-opacity ml-2 p-1.5 rounded-md hover:bg-white dark:hover:bg-slate-600 text-slate-500 hover:text-violet-600 dark:text-slate-400 dark:hover:text-violet-400",title:"Edit this rank",children:e.jsx(y.Edit,{className:"w-3.5 h-3.5"})})]})})},l.value)):e.jsx("div",{className:"text-center py-8",children:e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"No options available"})})})})]}),e.jsx("div",{className:"flex-shrink-0 px-6 py-3 border-t border-slate-200 dark:border-slate-700 bg-slate-50 dark:bg-slate-800/50",children:e.jsxs("p",{className:"text-xs text-slate-500 dark:text-slate-400 text-center",children:[!F&&(M?`${M.length} option${M.length!==1?"s":""} available`:""),F&&"Edit the rank designation and save changes"]})})]})})})]});case"select":return a.searchable?e.jsxs(e.Fragment,{children:[e.jsxs("button",{type:"button",onClick:l=>{l.preventDefault(),l.stopPropagation(),a.disabled||N(!0)},disabled:a.disabled,className:`relative ${D} ${X} flex items-center justify-between ${m?"pl-12":""} pr-4 text-left disabled:opacity-50 disabled:cursor-not-allowed hover:border-violet-400 dark:hover:border-violet-500`,children:[m&&e.jsx("div",{className:"absolute left-3 sm:left-4 top-1/2 -translate-y-1/2 pointer-events-none",children:e.jsx(m,{className:"w-4 h-4 sm:w-5 sm:h-5 text-slate-400"})}),e.jsx("span",{className:s?"text-slate-900 dark:text-white truncate":"text-slate-400",children:_()}),e.jsx(y.ChevronDown,{className:"w-5 h-5 text-slate-400"})]}),k&&e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-4 bg-black/50 backdrop-blur-sm animate-in fade-in duration-200",onMouseDown:l=>{l.target===l.currentTarget&&(l.preventDefault(),l.stopPropagation(),J())},children:e.jsxs("div",{className:"bg-white dark:bg-slate-800 rounded-2xl shadow-2xl w-full max-w-md max-h-[70vh] sm:max-h-[80vh] flex flex-col border border-slate-200 dark:border-slate-700 animate-in zoom-in-95 duration-200",onMouseDown:l=>l.stopPropagation(),children:[e.jsxs("div",{className:`flex items-center justify-between gap-3
|
|
330
|
+
px-4 py-3 sm:px-5 sm:py-4
|
|
331
|
+
bg-gradient-to-r from-violet-50 via-indigo-50 to-violet-50
|
|
332
|
+
dark:from-slate-700/50 dark:via-slate-800/50 dark:to-slate-700/50
|
|
333
|
+
border-b border-slate-200 dark:border-slate-700 rounded-t-2xl`,children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("h3",{className:"text-sm sm:text-base font-bold text-slate-900 dark:text-white",children:a.modalTitle||"Select Option"}),a.modalSubtitle&&e.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400 mt-0.5",children:a.modalSubtitle})]}),e.jsx("button",{type:"button",onClick:l=>{l.preventDefault(),l.stopPropagation(),J()},className:`flex-shrink-0 p-1.5 rounded-lg border transition-all duration-200
|
|
334
|
+
text-slate-400 hover:bg-slate-100 hover:text-slate-900
|
|
335
|
+
border-slate-200/50 dark:border-slate-700/50
|
|
336
|
+
dark:hover:bg-slate-700 dark:hover:text-white`,children:e.jsx(y.X,{className:"w-4 h-4"})})]}),e.jsx("div",{className:"p-4 border-b border-slate-200 dark:border-slate-700",children:e.jsxs("div",{className:"relative",children:[e.jsx(y.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-slate-400"}),e.jsx("input",{type:"text",value:c,onChange:l=>x(l.target.value),placeholder:"Search...",className:"w-full pl-10 pr-4 py-2.5 rounded-lg border border-slate-300 dark:border-slate-600 bg-white dark:bg-slate-700 text-slate-900 dark:text-white placeholder-slate-400 focus:border-violet-500 focus:ring-2 focus:ring-violet-500/20 transition-all",autoFocus:!0})]})}),e.jsx("div",{className:"flex-1 overflow-y-auto p-2",children:M.length>0?e.jsx("div",{className:"space-y-1",children:M.map(l=>e.jsx("button",{type:"button",onClick:f=>{f.preventDefault(),f.stopPropagation(),G(l.value)},className:`w-full text-left px-4 py-3 rounded-lg transition-all duration-200 break-all whitespace-normal ${s===l.value?"bg-violet-100 dark:bg-violet-600/20 text-violet-900 dark:text-violet-300 font-semibold":"hover:bg-slate-100 dark:hover:bg-slate-700 text-slate-700 dark:text-slate-300"}`,children:l.label},l.value))}):e.jsx("div",{className:"text-center py-8",children:e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:"No options found"})})})]})})]}):e.jsxs("div",{className:"relative",children:[m&&e.jsx("div",{className:"absolute left-3 sm:left-4 top-1/2 -translate-y-1/2 pointer-events-none",children:e.jsx(m,{className:"w-4 h-4 sm:w-5 sm:h-5 text-slate-400"})}),e.jsxs("select",{value:s,onChange:L,disabled:a.disabled,className:`${D} ${X} ${m?"pl-12":""} pr-10 appearance-none cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-violet-500/20`,children:[e.jsx("option",{value:"",children:a.placeholder||"Select an option"}),(ae=a.options)==null?void 0:ae.map(l=>e.jsx("option",{value:l.value,children:l.label},l.value))]}),e.jsx(y.ChevronDown,{className:"absolute right-4 top-1/2 -translate-y-1/2 w-5 h-5 text-slate-400 pointer-events-none"})]});case"date":case"number":return e.jsxs("div",{className:"relative",children:[m&&e.jsx("div",{className:"absolute left-3 sm:left-4 top-1/2 -translate-y-1/2 pointer-events-none",children:e.jsx(m,{className:"w-4 h-4 sm:w-5 sm:h-5 text-slate-400"})}),e.jsx("input",{type:a.type,value:s,onChange:l=>o(a.name,l.target.value),disabled:a.disabled,min:a.min,max:a.max,step:a.step,className:`${D} ${X} ${m?"pl-12":""} disabled:opacity-50 disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-violet-500/20`})]});case"textarea":return a.isHtml?a.disabled?e.jsxs("div",{className:"relative",children:[m&&e.jsx("div",{className:"absolute left-3 sm:left-4 top-3 pointer-events-none",children:e.jsx(m,{className:"w-4 h-4 sm:w-5 sm:h-5 text-slate-400"})}),e.jsx("div",{className:`${D} ${X} ${m?"pl-12":""} opacity-50 cursor-not-allowed prose prose-sm max-w-none [&>*]:my-0.5 [&>ul]:list-disc [&>ul]:pl-4 [&>ol]:list-decimal [&>ol]:pl-4`,style:{minHeight:`${(a.rows||4)*1.75+1.5}rem`},dangerouslySetInnerHTML:{__html:s||""}})]}):a.renderHtmlEditor?a.renderHtmlEditor({content:s||"",onChange:l=>o(a.name,l),height:a.height||200,rows:a.rows||4}):e.jsxs("div",{className:"p-3 bg-amber-50 text-amber-800 rounded-xl border border-amber-200 text-sm",children:["HTML Editor component not provided. Please pass ",e.jsx("code",{children:"renderHtmlEditor"})," to this field configuration."]}):e.jsxs("div",{className:"relative",children:[m&&e.jsx("div",{className:"absolute left-3 sm:left-4 top-3 pointer-events-none",children:e.jsx(m,{className:"w-4 h-4 sm:w-5 sm:h-5 text-slate-400"})}),e.jsx("textarea",{value:s,onChange:l=>o(a.name,l.target.value),placeholder:a.placeholder,disabled:a.disabled,rows:a.rows||4,className:`${D} ${X} ${m?"pl-12":""} placeholder-slate-400 resize-none disabled:opacity-50 disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-violet-500/20`})]});case"checkbox":return e.jsxs("div",{className:"flex items-center space-x-3",children:[e.jsx("input",{type:"checkbox",checked:s||!1,onChange:l=>o(a.name,l.target.checked),disabled:a.disabled,className:"h-5 w-5 rounded border-slate-300 text-violet-600 focus:ring-violet-500 dark:border-slate-600 dark:bg-slate-700 disabled:opacity-50 disabled:cursor-not-allowed"}),e.jsx("span",{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:a.checkboxLabel||a.label})]});case"toggle":return e.jsx(De,{checked:s||!1,onChange:o,disabled:a.disabled,label:a.toggleLabel,name:a.name,helpText:a.helpText});case"radio":return e.jsx("div",{className:"flex flex-wrap items-center gap-3 sm:gap-6",children:(oe=a.options)==null?void 0:oe.map(l=>e.jsxs("label",{className:`flex items-center cursor-pointer ${a.disabled?"opacity-50 cursor-not-allowed":""}`,children:[e.jsx("input",{type:"radio",name:a.name,value:l.value,checked:s===l.value,onChange:f=>o(a.name,f.target.value),disabled:a.disabled,className:"h-4 w-4 text-violet-600 border-slate-300 focus:ring-2 focus:ring-violet-500 cursor-pointer disabled:cursor-not-allowed dark:border-slate-600 dark:bg-slate-700"}),e.jsx("span",{className:`ml-2 text-sm ${s===l.value?"font-medium text-violet-900 dark:text-violet-300":"text-slate-700 dark:text-slate-300"}`,children:l.label})]},l.value))});case"file":{const l=j.useRef(null),f=Array.isArray(s)?s:[];return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"relative flex items-center",children:[m&&e.jsx("div",{className:"absolute left-3 sm:left-4 top-1/2 -translate-y-1/2 pointer-events-none",children:e.jsx(m,{className:"w-4 h-4 sm:w-5 sm:h-5 text-slate-400"})}),e.jsx("div",{onClick:()=>{var g;return!a.disabled&&((g=l.current)==null?void 0:g.click())},className:`w-full px-4 py-3 rounded-xl border transition-all duration-200 bg-white dark:bg-slate-800 text-slate-900 dark:text-white ${m?"pl-12":"pl-4"} pr-14 cursor-pointer select-none ${a.disabled?"opacity-50 cursor-not-allowed border-slate-300 dark:border-slate-600":"border-slate-300 dark:border-slate-600 hover:border-violet-400 dark:hover:border-violet-500"} ${n?"border-red-300 dark:border-red-700":""}`,children:e.jsx("span",{className:"text-slate-400 dark:text-slate-500 text-sm",children:f.length>0?`${f.length} file${f.length!==1?"s":""} selected`:a.placeholder||"Select files to upload..."})}),e.jsx("button",{type:"button",disabled:a.disabled,onClick:()=>{var g;return(g=l.current)==null?void 0:g.click()},className:"absolute right-2 top-1/2 -translate-y-1/2 p-2 rounded-lg bg-violet-600 hover:bg-violet-700 active:bg-violet-800 disabled:opacity-50 disabled:cursor-not-allowed text-white transition-colors",title:"Browse files",children:e.jsx(y.Upload,{className:"w-4 h-4"})}),e.jsx("input",{ref:l,type:"file",accept:a.accept,multiple:a.multiple??!1,className:"hidden",onChange:g=>{a.onFilesSelected&&a.onFilesSelected(g.target.files),g.target.value=""}})]}),f.map(({tempId:g,file:R,documentName:O})=>e.jsxs("div",{className:"group flex items-center gap-3 px-4 py-3 rounded-xl border border-violet-200 dark:border-violet-700/40 bg-violet-50/50 dark:bg-violet-900/10 transition-colors",children:[e.jsx("div",{className:"w-8 h-8 rounded-lg bg-violet-100 dark:bg-violet-900/30 flex items-center justify-center flex-shrink-0",children:e.jsx(y.File,{className:"w-4 h-4 text-violet-600 dark:text-violet-400"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-semibold text-slate-800 dark:text-slate-200 truncate",children:O||(R==null?void 0:R.name)}),(R==null?void 0:R.size)!==void 0&&e.jsx("p",{className:"text-xs text-violet-600 dark:text-violet-400 mt-0.5",children:R.size<1024*1024?`${(R.size/1024).toFixed(1)} KB`:`${(R.size/(1024*1024)).toFixed(2)} MB`})]}),a.onRemove&&e.jsx("button",{type:"button",onClick:()=>a.onRemove(g),className:"w-7 h-7 rounded-lg flex items-center justify-center text-red-500 hover:bg-red-50 dark:hover:bg-red-900/20 transition-all flex-shrink-0 opacity-60 sm:opacity-0 sm:group-hover:opacity-100",title:"Remove",children:e.jsx(y.Trash2,{className:"w-3.5 h-3.5"})})]},g))]})}case"text":case"email":case"password":default:return e.jsxs("div",{className:"relative",children:[m&&e.jsx("div",{className:"absolute left-3 sm:left-4 top-1/2 -translate-y-1/2 pointer-events-none",children:e.jsx(m,{className:"w-4 h-4 sm:w-5 sm:h-5 text-slate-400"})}),e.jsx("input",{type:a.type,value:a.displayValue??s??"",onChange:l=>o(a.name,l.target.value),placeholder:a.placeholder,disabled:a.disabled,className:`${D} ${X} ${m?"pl-12":""} placeholder-slate-400 disabled:opacity-50 disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-violet-500/20`})]})}};return e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block",children:e.jsxs("span",{className:"text-sm font-semibold text-slate-700 dark:text-slate-300 flex items-center space-x-1",children:[e.jsx("span",{children:a.label}),a.required&&e.jsx("span",{className:"text-red-500 dark:text-red-400",children:"*"})]})}),e.jsx("div",{className:"mt-2",children:A()}),n&&e.jsxs("p",{className:"text-xs sm:text-sm text-red-600 dark:text-red-400 flex items-center gap-1.5 animate-in slide-in-from-top-1 duration-200",children:[e.jsx(y.AlertCircle,{className:"w-3.5 h-3.5 flex-shrink-0"}),e.jsx("span",{children:n})]}),a.helpText&&!n&&e.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:a.helpText})]})},dt=({fields:a=[],initialData:s={},onSubmit:o,onCancel:n,onEdit:h,onFieldChange:b,submitButtonText:c="Submit",cancelButtonText:x="Cancel",editButtonText:k="Edit",showEditingBadge:N=!1,editingEntity:T="",helpText:S="All fields marked with * are required",isModal:E=!0,mode:$="edit",disabled:P=!1,renderCustomField:p})=>{const F=j.useRef(!0),[i,L]=j.useState(()=>{const d={};return(typeof a=="function"?a(s):a).forEach(_=>{d[_.name]=s[_.name]||""}),d}),[G,J]=j.useState({}),W=$==="view",se=W?!0:!E;j.useEffect(()=>{if(F.current){F.current=!1;return}if(s&&Object.keys(s).length>0&&s.id){const w={};(typeof a=="function"?a(i):a).forEach(A=>{w[A.name]=s[A.name]||""}),L(w)}},[s.id]);const re=typeof a=="function"?a(i):a,ee=(d,w)=>{if(W)return;const _={...i,[d]:w};L(_);const A={...G};delete A[d],re.forEach(H=>{var m;if((m=H.validation)!=null&&m.custom&&A[H.name]){const D=H.name===d?w:i[H.name];H.validation.custom(D,_)===!0&&delete A[H.name]}}),J(A),b&&b(d,w,_)},M=()=>{if(W)return!0;const d={};return re.forEach(w=>{const _=i[w.name],A=w.isHtml?!(_||"").replace(/<[^>]*>/g,"").trim():!_;if(w.required&&A){d[w.name]=`${w.label} is required`;return}if(w.validation&&_){const{minLength:H,maxLength:m,pattern:D,custom:X}=w.validation,ae=w.isHtml?(_||"").replace(/<[^>]*>/g,"").trim():_;if(H&&ae.length<H){d[w.name]=`Minimum ${H} characters required`;return}if(m&&ae.length>m){d[w.name]=`Maximum ${m} characters allowed`;return}if(D&&!D.test(_)){d[w.name]=w.validation.patternMessage||w.validation.message||"Invalid format";return}if(X){const oe=X(_,i);if(oe!==!0){d[w.name]=typeof oe=="string"?oe:w.validation.message||"Validation failed";return}}}}),J(d),Object.keys(d).length===0},Q=d=>{d.preventDefault(),!W&&M()&&o(i)};return e.jsxs("form",{onSubmit:Q,className:"flex flex-col h-full max-h-[75vh] sm:max-h-[70vh]",children:[e.jsxs("div",{className:"flex-1 overflow-y-auto px-4 pt-4 sm:px-5 sm:pt-5",children:[W&&e.jsxs("div",{className:`mb-4 flex items-center gap-3 p-3 sm:p-3.5 rounded-xl
|
|
337
|
+
bg-blue-50 border border-blue-200
|
|
338
|
+
dark:bg-blue-600/10 dark:border-blue-500/30`,children:[e.jsx("div",{className:"flex-shrink-0 p-1.5 rounded-lg bg-blue-600 dark:bg-blue-500",children:e.jsx(y.Check,{className:"w-3.5 h-3.5 text-white"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-sm font-semibold text-slate-900 dark:text-white leading-tight",children:"View Mode"}),e.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400 leading-snug",children:"Read-only — no changes will be saved"})]})]}),!W&&N&&T&&e.jsxs("div",{className:`mb-4 flex items-center gap-3 p-3 sm:p-3.5 rounded-xl
|
|
339
|
+
bg-violet-50 border border-violet-200
|
|
340
|
+
dark:bg-violet-600/10 dark:border-violet-500/30`,children:[e.jsx("span",{className:"flex-shrink-0 w-2 h-2 rounded-full bg-violet-500 animate-pulse"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-sm font-semibold text-slate-900 dark:text-white leading-tight",children:"Editing Mode"}),e.jsxs("p",{className:"text-xs text-slate-500 dark:text-slate-400 truncate",children:["Modifying:"," ",e.jsx("span",{className:"font-semibold text-violet-600 dark:text-violet-400",children:T})]})]})]}),e.jsx("div",{className:"space-y-4 pb-4",children:re.map((d,w)=>{const _=i[d.name],A=G[d.name];if(p){const H=p({field:d,value:_,error:A,index:w,mode:$,disabled:W||d.disabled||P,onChange:ee});if(H)return e.jsx("div",{children:H},d.name||w)}return e.jsx(Ne,{field:{...d,disabled:W||d.disabled||P},value:_,onChange:ee,error:A,mode:$},d.name||w)})})]}),e.jsxs("div",{className:`flex-shrink-0 bg-white dark:bg-slate-800
|
|
341
|
+
border-t border-slate-200 dark:border-slate-700
|
|
342
|
+
px-4 py-3 sm:px-5 sm:py-4`,children:[W?e.jsxs("div",{className:`flex ${E?"flex-col-reverse sm:flex-row":"flex-row"} gap-2.5`,children:[se&&n&&e.jsxs("button",{type:"button",onClick:n,className:`${E?"flex-1 sm:flex-none":"w-auto"}
|
|
343
|
+
flex items-center justify-center gap-2
|
|
344
|
+
px-4 py-2.5 rounded-xl text-sm font-semibold transition-all duration-200
|
|
345
|
+
bg-slate-100 hover:bg-slate-200 text-slate-700 border border-slate-200
|
|
346
|
+
dark:bg-slate-700 dark:hover:bg-slate-600 dark:text-slate-300 dark:border-slate-600
|
|
347
|
+
hover:scale-[1.02] active:scale-[0.98]`,children:[e.jsx(y.X,{className:"w-4 h-4"}),e.jsx("span",{children:"Close"})]}),h&&e.jsxs("button",{type:"button",onClick:h,className:`${E?"flex-1":"w-auto"}
|
|
348
|
+
flex items-center justify-center gap-2
|
|
349
|
+
px-4 py-2.5 rounded-xl text-sm font-semibold transition-all duration-200
|
|
350
|
+
bg-gradient-to-r from-violet-600 to-indigo-600
|
|
351
|
+
hover:from-violet-700 hover:to-indigo-700
|
|
352
|
+
text-white shadow-md hover:shadow-lg
|
|
353
|
+
hover:scale-[1.02] active:scale-[0.98]`,children:[e.jsx(y.Edit,{className:"w-4 h-4"}),e.jsx("span",{children:k})]})]}):e.jsxs("div",{className:`flex ${E?"flex-col-reverse sm:flex-row":"flex-row justify-start"} gap-2.5`,children:[n&&e.jsxs("button",{type:"button",onClick:n,disabled:P,className:`${E?"flex-1 sm:flex-none":"w-auto"}
|
|
354
|
+
flex items-center justify-center gap-2
|
|
355
|
+
px-4 py-2.5 rounded-xl text-sm font-semibold transition-all duration-200
|
|
356
|
+
bg-slate-100 hover:bg-slate-200 text-slate-700 border border-slate-200
|
|
357
|
+
dark:bg-slate-700 dark:hover:bg-slate-600 dark:text-slate-300 dark:border-slate-600
|
|
358
|
+
disabled:opacity-50 disabled:cursor-not-allowed
|
|
359
|
+
hover:scale-[1.02] active:scale-[0.98]`,children:[e.jsx(y.X,{className:"w-4 h-4"}),e.jsx("span",{children:x})]}),e.jsxs("button",{type:"submit",disabled:P,className:`${E?"flex-1":"w-auto"}
|
|
360
|
+
flex items-center justify-center gap-2
|
|
361
|
+
px-4 py-2.5 rounded-xl text-sm font-semibold transition-all duration-200
|
|
362
|
+
bg-gradient-to-r from-violet-600 to-indigo-600
|
|
363
|
+
hover:from-violet-700 hover:to-indigo-700
|
|
364
|
+
text-white shadow-md hover:shadow-lg
|
|
365
|
+
disabled:opacity-50 disabled:cursor-not-allowed
|
|
366
|
+
hover:scale-[1.02] active:scale-[0.98] disabled:hover:scale-100`,children:[P?e.jsx("span",{className:"w-4 h-4 rounded-full border-2 border-white/30 border-t-white animate-spin flex-shrink-0"}):e.jsx(y.Check,{className:"w-4 h-4 flex-shrink-0"}),e.jsx("span",{children:P?"Saving...":c})]})]}),!W&&S&&e.jsx("p",{className:"mt-2.5 text-xs text-slate-400 dark:text-slate-500 text-center",children:S})]})]})},Re=({isOpen:a,onClose:s,onSelect:o,options:n=[],selectedValue:h,title:b="Select Option",subtitle:c="Choose from the list below",icon:x,searchable:k=!0,searchPlaceholder:N="Search options..."})=>{const[T,S]=j.useState(""),E=j.useRef(null);j.useEffect(()=>{const p=F=>{F.key==="Escape"&&s()};return a&&(document.addEventListener("keydown",p),k&&E.current&&setTimeout(()=>{var F;return(F=E.current)==null?void 0:F.focus()},100)),()=>document.removeEventListener("keydown",p)},[a,s,k]);const $=T?n.filter(p=>p.label.toLowerCase().includes(T.toLowerCase())):n,P=p=>{o(p),s(),S("")};return a?e.jsxs("div",{className:"fixed inset-0 z-[60] flex items-center justify-center p-4 animate-in fade-in duration-200",children:[e.jsx("div",{className:"absolute inset-0 bg-slate-900/60 backdrop-blur-sm",onClick:s}),e.jsx("div",{className:"relative w-full max-w-md animate-in zoom-in-95 duration-200",children:e.jsxs("div",{className:"rounded-2xl border overflow-hidden bg-white border-slate-200/50 shadow-2xl dark:bg-slate-800 dark:border-slate-700/50 max-h-[80vh] flex flex-col",children:[e.jsxs("div",{className:"flex-shrink-0 px-6 py-5 bg-gradient-to-r from-violet-50 via-indigo-50 to-violet-50 border-b border-slate-200 dark:bg-gradient-to-r dark:from-slate-700/50 dark:via-slate-800/50 dark:to-slate-700/50 dark:border-slate-700",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center space-x-3",children:[x&&e.jsx("div",{className:"w-12 h-12 rounded-xl flex items-center justify-center bg-gradient-to-br from-violet-600 to-indigo-600 shadow-lg",children:e.jsx(x,{className:"w-6 h-6 text-white"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-bold text-slate-900 dark:text-white",children:b}),c&&e.jsx("p",{className:"text-sm text-slate-600 dark:text-slate-400 mt-0.5",children:c})]})]}),e.jsx("button",{onClick:s,className:"p-2 rounded-lg border transition-all duration-200 text-slate-400 hover:bg-slate-100 hover:text-slate-900 border-slate-300 hover:border-slate-400 dark:border-slate-600 dark:hover:bg-slate-700 dark:hover:text-white dark:hover:border-slate-500",children:e.jsx(y.X,{className:"w-5 h-5"})})]}),k&&e.jsxs("div",{className:"mt-4 relative",children:[e.jsx(y.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-slate-400 dark:text-slate-500"}),e.jsx("input",{ref:E,type:"text",value:T,onChange:p=>S(p.target.value),placeholder:N,className:`w-full pl-11 pr-4 py-3 rounded-xl border transition-all duration-200
|
|
367
|
+
bg-white border-slate-200 text-slate-900 placeholder-slate-400
|
|
368
|
+
focus:border-violet-400 focus:bg-slate-50
|
|
369
|
+
dark:bg-slate-700/50 dark:border-slate-600 dark:text-white dark:placeholder-slate-500
|
|
370
|
+
dark:focus:border-violet-500 dark:focus:bg-slate-700
|
|
371
|
+
focus:outline-none focus:ring-2 focus:ring-violet-500/20`})]})]}),e.jsx("div",{className:"flex-grow overflow-y-auto custom-scrollbar",children:$.length>0?e.jsx("div",{className:"p-3 space-y-1",children:$.map(p=>{const F=p.value===h;return e.jsxs("button",{type:"button",onClick:()=>P(p.value),className:`w-full px-4 py-3.5 rounded-xl text-left flex items-center justify-between transition-all duration-200 group
|
|
372
|
+
${F?"bg-gradient-to-r from-violet-600 to-indigo-600 text-white shadow-lg shadow-violet-500/30 dark:shadow-violet-900/30":"text-slate-700 hover:bg-slate-100 dark:text-slate-300 dark:hover:bg-slate-700/50"}`,children:[e.jsx("span",{className:"font-medium",children:p.label}),F&&e.jsx("div",{className:"w-6 h-6 rounded-full bg-white/20 flex items-center justify-center",children:e.jsx(y.Check,{className:"w-4 h-4 text-white"})})]},p.value)})}):e.jsxs("div",{className:"px-4 py-12 text-center",children:[e.jsx("div",{className:"w-16 h-16 mx-auto mb-4 rounded-full bg-slate-100 dark:bg-slate-700/50 flex items-center justify-center",children:e.jsx(y.Search,{className:"w-8 h-8 text-slate-400 dark:text-slate-500"})}),e.jsx("p",{className:"text-sm font-semibold text-slate-600 dark:text-slate-400",children:"No options found"}),e.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-500 mt-1",children:"Try adjusting your search terms"})]})}),e.jsx("div",{className:"flex-shrink-0 px-6 py-3 border-t border-slate-200 dark:border-slate-700 bg-slate-50 dark:bg-slate-800/50",children:e.jsxs("p",{className:"text-xs text-slate-500 dark:text-slate-400 text-center",children:[$.length," option",$.length!==1?"s":""," available"]})})]})})]}):null},ct=({value:a,onChange:s,options:o=[],placeholder:n="Select an option",label:h,icon:b,required:c=!1,disabled:x=!1,error:k,searchable:N=!0,name:T,modalTitle:S,modalSubtitle:E})=>{const[$,P]=j.useState(!1),p=o.find(L=>L.value===a),F=(p==null?void 0:p.label)||n,i=L=>{s(T,L)};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-2",children:[h&&e.jsxs("label",{className:"flex items-center text-sm font-semibold text-slate-700 dark:text-slate-300",children:[b&&e.jsx(b,{className:"w-4 h-4 mr-2 text-violet-600 dark:text-violet-400"}),h,c&&e.jsx("span",{className:"text-red-500 ml-1",children:"*"})]}),e.jsxs("button",{type:"button",onClick:()=>!x&&P(!0),disabled:x,className:`w-full px-4 py-3 rounded-xl border transition-all duration-200 flex items-center justify-between text-left
|
|
373
|
+
${k?"border-red-500 focus:border-red-500 focus:ring-red-500/20":"border-slate-200 focus:border-violet-400 dark:border-slate-600 dark:focus:border-violet-500"}
|
|
374
|
+
${x?"opacity-50 cursor-not-allowed bg-slate-100 dark:bg-slate-800":"bg-slate-50 hover:bg-white dark:bg-slate-700/50 dark:hover:bg-slate-700 cursor-pointer"}
|
|
375
|
+
text-slate-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-violet-500/20`,children:[e.jsx("span",{className:`text-sm ${a?"":"text-slate-400 dark:text-slate-500"}`,children:F}),e.jsx(y.ChevronRight,{className:"w-5 h-5 text-slate-400 dark:text-slate-500"})]}),!k&&a&&e.jsxs("div",{className:"flex items-center space-x-2 mt-2",children:[e.jsx("div",{className:"w-5 h-5 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:e.jsx(y.Check,{className:"w-3 h-3 text-green-600 dark:text-green-400"})}),e.jsx("span",{className:"text-xs text-green-600 dark:text-green-400 font-medium",children:"Selected"})]}),k&&e.jsx("p",{className:"text-xs text-red-500 flex items-center space-x-1 mt-1",children:e.jsx("span",{children:k})})]}),e.jsx(Re,{isOpen:$,onClose:()=>P(!1),onSelect:i,options:o,selectedValue:a,title:S||h||"Select Option",subtitle:E||`Choose from ${o.length} options`,icon:b,searchable:N})]})},xt=({steps:a=[],initialData:s={},onSubmit:o,onCancel:n,onEdit:h,onStepChange:b,submitButtonText:c="Submit",cancelButtonText:x="Cancel",editButtonText:k="Edit Record",showEditingBadge:N=!1,editingEntity:T="",helpText:S="All fields marked with * are required",isModal:E=!0,mode:$="create"})=>{var l;const P=j.useRef(null),[p,F]=j.useState(0),[i,L]=j.useState(()=>typeof window<"u"?window.innerWidth>=1024:!0),[G,J]=j.useState(()=>{const f=typeof a=="function"?a(s):a,g={};return f.forEach(R=>{R.fields&&R.fields.forEach(O=>{g[O.name]=s[O.name]||""})}),g}),[W,se]=j.useState({}),[re,ee]=j.useState(new Set([0])),M=$==="view",Q=$==="edit",d=typeof a=="function"?a(G):a;j.useEffect(()=>{b&&b(p,G)},[p,G,b]);const w=()=>{var f;(f=P.current)==null||f.scrollTo({top:0,behavior:"smooth"})},_=(f,g)=>{if(M)return;const O=d.flatMap(Y=>Y.fields||[]).find(Y=>Y.name===f);J(Y=>{const te={...Y,[f]:g};return O!=null&&O.resetFieldsOnChange&&O.resetFieldsOnChange.forEach(ie=>{te[ie]=""}),te}),W[f]&&se(Y=>({...Y,[f]:""})),O!=null&&O.onChange&&O.onChange(f,g)},A=f=>{if(M)return!0;const g={},R=d[f];if(R.customValidator){const O=R.customValidator(f,G);Object.assign(g,O)}return R.fields&&R.fields.length>0&&R.fields.forEach(O=>{const Y=G[O.name];if(O.required&&!Y){g[O.name]=`${O.label} is required`;return}if(Y&&O.validation){const{minLength:te,maxLength:ie,pattern:v,min:de,max:xe,custom:ge}=O.validation;te&&Y.length<te&&(g[O.name]=`Minimum ${te} characters required`),ie&&Y.length>ie&&(g[O.name]=`Maximum ${ie} characters allowed`),v&&!v.test(Y)&&(g[O.name]=O.validation.message||"Invalid format"),de!==void 0&&parseFloat(Y)<de&&(g[O.name]=O.validation.message||`Minimum value is ${de}`),xe!==void 0&&parseFloat(Y)>xe&&(g[O.name]=O.validation.message||`Maximum value is ${xe}`),ge&&!ge(Y)&&(g[O.name]=O.validation.message||"Validation failed")}}),se(g),Object.keys(g).length===0},H=f=>{if(f.preventDefault(),f.stopPropagation(),A(p)){const g=p+1;F(g),ee(R=>new Set([...R,g])),w()}},m=f=>{f.preventDefault(),f.stopPropagation(),F(g=>g-1),w()},D=f=>{if(typeof window<"u"&&window.innerWidth<1024&&L(!1),M){F(f),ee(g=>new Set([...g,f])),w();return}(re.has(f)||f===p+1)&&(f>p?A(p)&&(F(f),ee(g=>new Set([...g,f])),w()):(F(f),w()))},X=f=>{f.preventDefault(),!M&&A(p)&&o(G)},ae=p===d.length-1,oe=p===0;return e.jsxs("form",{onSubmit:X,className:"flex h-full overflow-hidden relative",children:[i&&e.jsx("div",{className:"lg:hidden absolute inset-0 z-20 bg-black/40 backdrop-blur-[1px]",onClick:()=>L(!1)}),e.jsxs("div",{className:`
|
|
376
|
+
overflow-hidden transition-all duration-300 ease-in-out
|
|
377
|
+
border-r border-slate-200 dark:border-slate-700
|
|
378
|
+
absolute z-30 h-full bg-white dark:bg-slate-800
|
|
379
|
+
lg:relative lg:flex-shrink-0 lg:z-auto lg:h-auto lg:bg-transparent dark:lg:bg-transparent
|
|
380
|
+
${i?"w-52 lg:w-56":"w-0 lg:w-10"}
|
|
381
|
+
`,children:[!i&&e.jsxs("div",{className:"flex flex-col h-full items-center justify-between py-4 px-2 gap-3",children:[e.jsx("div",{className:"flex flex-col items-center gap-2 flex-1 justify-center",children:d.map((f,g)=>{const R=g===p,O=g<p;return e.jsx("button",{type:"button",onClick:()=>D(g),title:d[g].title,className:`
|
|
382
|
+
rounded-full transition-all duration-300 flex-shrink-0
|
|
383
|
+
${O?"w-2 h-2 bg-emerald-500 shadow-sm":R?M?"w-2.5 h-2.5 bg-blue-500 shadow-md ring-2 ring-blue-300/40 dark:ring-blue-600/40":"w-2.5 h-2.5 bg-violet-500 shadow-md ring-2 ring-violet-300/40 dark:ring-violet-600/40":"w-2 h-2 bg-slate-300 dark:bg-slate-600 hover:bg-slate-400"}
|
|
384
|
+
`},g)})}),e.jsx("div",{className:"w-1 h-16 bg-slate-200/60 dark:bg-slate-700/60 rounded-full overflow-hidden",children:e.jsx("div",{className:`w-full rounded-full transition-all duration-500 ${M?"bg-blue-500":"bg-gradient-to-b from-violet-500 to-indigo-500"}`,style:{height:`${(p+1)/d.length*100}%`}})})]}),i&&e.jsxs("div",{className:"h-full flex flex-col px-3 sm:px-4 pt-4 pb-4 overflow-y-auto",children:[e.jsx("div",{className:"flex-1 space-y-1.5 mb-4",children:d.map((f,g)=>{const R=g===p,O=(M||re.has(g))&&g<p,Y=M?!0:re.has(g)||g===p+1,te=f.icon;return e.jsx("button",{type:"button",onClick:()=>Y&&D(g),disabled:!Y,className:`
|
|
385
|
+
w-full p-3 rounded-xl transition-all duration-200 text-left
|
|
386
|
+
${R?M?"bg-gradient-to-r from-blue-600 to-cyan-600 text-white shadow-md scale-[1.01]":"bg-gradient-to-r from-violet-600 to-indigo-600 text-white shadow-md scale-[1.01]":O?"bg-white dark:bg-slate-800/50 border border-emerald-200 dark:border-emerald-500/30 hover:shadow-sm":Y?"bg-white dark:bg-slate-800/50 border border-slate-200 dark:border-slate-700 hover:shadow-sm":"bg-slate-100 dark:bg-slate-800/30 border border-slate-200 dark:border-slate-700 opacity-50 cursor-not-allowed"}
|
|
387
|
+
`,children:e.jsxs("div",{className:"flex items-center gap-2.5",children:[e.jsx("div",{className:`
|
|
388
|
+
w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0 transition-all
|
|
389
|
+
${R?"bg-white/20":O?"bg-emerald-100 dark:bg-emerald-500/20":"bg-slate-100 dark:bg-slate-700"}
|
|
390
|
+
`,children:O&&!R?e.jsx(y.CheckCircle,{className:"w-4 h-4 text-emerald-600 dark:text-emerald-400"}):e.jsx(te,{className:`w-4 h-4 ${R?"text-white":Y?M?"text-blue-600 dark:text-blue-400":"text-violet-600 dark:text-violet-400":"text-slate-400 dark:text-slate-500"}`})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5 mb-0.5",children:[e.jsxs("span",{className:`text-[10px] font-semibold uppercase tracking-wider ${R?"text-white/70":"text-slate-400 dark:text-slate-500"}`,children:[M?"§":"#",g+1]}),O&&!R&&!M&&e.jsx("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded-full text-[10px] font-semibold bg-emerald-100 text-emerald-700 dark:bg-emerald-500/20 dark:text-emerald-400",children:"✓"})]}),e.jsx("p",{className:`text-xs font-semibold truncate leading-tight ${R?"text-white":O?"text-slate-900 dark:text-white":Y?"text-slate-700 dark:text-slate-300":"text-slate-400 dark:text-slate-500"}`,children:f.title}),f.subtitle&&e.jsx("p",{className:`text-[10px] mt-0.5 line-clamp-1 leading-snug ${R?"text-white/75":"text-slate-400 dark:text-slate-500"}`,children:f.subtitle})]})]})},g)})}),!M&&S&&e.jsx("div",{className:"p-3 rounded-xl bg-blue-50 border border-blue-200 dark:bg-blue-900/20 dark:border-blue-800/30 flex-shrink-0",children:e.jsxs("p",{className:"text-[11px] text-slate-600 dark:text-slate-400 leading-relaxed",children:[e.jsx("span",{className:"font-semibold text-blue-600 dark:text-blue-400",children:"Tip: "}),S]})})]})]}),e.jsxs("div",{className:"flex-1 flex flex-col min-h-0 relative",children:[e.jsxs("div",{className:`lg:hidden flex-shrink-0 flex items-center gap-2.5 px-3.5 py-2
|
|
391
|
+
border-b border-slate-200 dark:border-slate-700
|
|
392
|
+
bg-white dark:bg-slate-800`,children:[e.jsx("button",{type:"button",onClick:()=>L(!i),className:`p-2.5 rounded-lg border border-slate-200 dark:border-slate-600
|
|
393
|
+
bg-white dark:bg-slate-700 text-slate-500 dark:text-slate-400
|
|
394
|
+
hover:bg-violet-50 hover:border-violet-300 hover:text-violet-600
|
|
395
|
+
dark:hover:bg-violet-900/30 dark:hover:border-violet-600 dark:hover:text-violet-400
|
|
396
|
+
transition-all duration-200 active:scale-95`,"aria-label":"Toggle steps",children:i?e.jsx(y.ChevronLeft,{className:"w-4 h-4"}):e.jsx(y.ChevronRight,{className:"w-4 h-4"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-xs font-semibold text-slate-700 dark:text-slate-300 truncate",children:d[p].title}),e.jsxs("p",{className:`text-[10px] font-medium ${M?"text-blue-500":"text-violet-500"}`,children:[M?"Section":"Step"," ",p+1,"/",d.length]})]}),e.jsx("div",{className:"w-16 h-1.5 bg-slate-200 dark:bg-slate-700 rounded-full overflow-hidden flex-shrink-0",children:e.jsx("div",{className:`h-1.5 rounded-full transition-all duration-300 ${M?"bg-blue-500":"bg-gradient-to-r from-violet-500 to-indigo-500"}`,style:{width:`${(p+1)/d.length*100}%`}})})]}),e.jsx("button",{type:"button",onClick:()=>L(!i),className:`hidden lg:flex absolute left-0 top-5 -translate-x-[1.625rem] z-20
|
|
397
|
+
w-6 h-6 lg:w-7 lg:h-7 rounded-full
|
|
398
|
+
bg-white dark:bg-slate-800
|
|
399
|
+
border border-slate-200 dark:border-slate-600
|
|
400
|
+
shadow-md hover:shadow-lg
|
|
401
|
+
items-center justify-center
|
|
402
|
+
hover:bg-violet-50 dark:hover:bg-violet-900/30
|
|
403
|
+
hover:border-violet-300 dark:hover:border-violet-600
|
|
404
|
+
hover:scale-110 active:scale-95
|
|
405
|
+
transition-all duration-200 group`,"aria-label":i?"Collapse steps":"Expand steps",children:i?e.jsx(y.ChevronLeft,{className:"w-3 h-3 lg:w-3.5 lg:h-3.5 text-slate-400 group-hover:text-violet-500 transition-colors"}):e.jsx(y.ChevronRight,{className:"w-3 h-3 lg:w-3.5 lg:h-3.5 text-slate-400 group-hover:text-violet-500 transition-colors"})}),e.jsx("div",{ref:P,className:"flex-1 min-h-0 overflow-y-auto px-3.5 sm:px-5 lg:px-6 py-4 sm:py-5",children:e.jsx("div",{className:"space-y-4 sm:space-y-5 w-full",children:d[p].customRender?M&&d[p].customViewRender?e.jsx("div",{className:"w-full",children:typeof d[p].customViewRender=="function"?d[p].customViewRender():d[p].customViewRender}):e.jsx("div",{className:"w-full",children:typeof d[p].customRender=="function"?d[p].customRender({formData:G,errors:W,handleChange:_,mode:$}):d[p].customRender}):(l=d[p].fields)==null?void 0:l.map((f,g)=>e.jsx(Ne,{index:g,field:{...f,disabled:M||f.disabled},value:G[f.name],onChange:_,error:W[f.name],mode:$},f.name||g))})}),e.jsx("div",{className:`flex-shrink-0 px-4 py-3 sm:px-5 sm:py-3.5
|
|
406
|
+
border-t border-slate-200 dark:border-slate-700
|
|
407
|
+
bg-white dark:bg-slate-800`,children:e.jsxs("div",{className:"flex items-center justify-between gap-2.5",children:[oe?e.jsx("div",{}):e.jsxs("button",{type:"button",onClick:m,className:`inline-flex items-center gap-2 px-3.5 py-2.5 sm:px-4 sm:py-2.5
|
|
408
|
+
rounded-xl text-sm font-semibold transition-all duration-200
|
|
409
|
+
bg-white hover:bg-slate-50 text-slate-700
|
|
410
|
+
border border-slate-200 dark:border-slate-600
|
|
411
|
+
dark:bg-slate-700 dark:hover:bg-slate-600 dark:text-slate-300
|
|
412
|
+
shadow-sm hover:shadow-md hover:scale-105 active:scale-95`,children:[e.jsx(y.ChevronLeft,{className:"w-4 h-4 flex-shrink-0"}),e.jsx("span",{className:Q?void 0:"hidden sm:inline",children:"Previous"})]}),e.jsx("div",{className:"flex-1"}),e.jsx("div",{className:"flex items-center gap-2",children:M?e.jsxs(e.Fragment,{children:[e.jsxs("button",{type:"button",onClick:n,className:`hidden sm:inline-flex items-center gap-1.5 px-3.5 py-2.5 sm:px-4 sm:py-2.5
|
|
413
|
+
rounded-xl text-sm font-semibold transition-all duration-200
|
|
414
|
+
bg-white hover:bg-slate-50 text-slate-700
|
|
415
|
+
border border-slate-200 dark:border-slate-600
|
|
416
|
+
dark:bg-slate-700 dark:hover:bg-slate-600 dark:text-slate-300
|
|
417
|
+
shadow-sm hover:shadow-md hover:scale-105 active:scale-95`,children:[e.jsx(y.X,{className:"w-4 h-4 flex-shrink-0"}),e.jsx("span",{className:"hidden sm:inline",children:"Close"})]}),!ae&&e.jsxs("button",{type:"button",onClick:H,className:`inline-flex items-center gap-1.5 px-3.5 py-2.5 sm:px-4 sm:py-2.5
|
|
418
|
+
rounded-xl text-sm font-semibold transition-all duration-200
|
|
419
|
+
bg-white hover:bg-slate-50 text-slate-700
|
|
420
|
+
border border-slate-200 dark:border-slate-600
|
|
421
|
+
dark:bg-slate-700 dark:hover:bg-slate-600 dark:text-slate-300
|
|
422
|
+
shadow-sm hover:shadow-md hover:scale-105 active:scale-95`,children:[e.jsx("span",{className:"hidden sm:inline",children:"Next"}),e.jsx(y.ChevronRight,{className:"w-4 h-4 flex-shrink-0"})]}),h&&e.jsxs("button",{type:"button",onClick:h,className:`inline-flex items-center gap-1.5 px-3.5 py-2.5 sm:px-4 sm:py-2.5
|
|
423
|
+
rounded-xl text-sm font-semibold transition-all duration-200
|
|
424
|
+
bg-gradient-to-r from-violet-600 to-indigo-600
|
|
425
|
+
hover:from-violet-700 hover:to-indigo-700
|
|
426
|
+
text-white shadow-md hover:shadow-lg
|
|
427
|
+
hover:scale-105 active:scale-95`,children:[e.jsx(y.Edit,{className:"w-4 h-4 flex-shrink-0"}),e.jsx("span",{className:"hidden sm:inline",children:k}),e.jsx("span",{className:"sm:hidden",children:"Edit"})]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("button",{type:"button",onClick:n,className:`
|
|
428
|
+
items-center gap-1.5 px-3.5 py-2.5 sm:px-4 sm:py-2.5
|
|
429
|
+
rounded-xl text-sm font-semibold transition-all duration-200
|
|
430
|
+
bg-white hover:bg-slate-50 text-slate-700
|
|
431
|
+
border border-slate-200 dark:border-slate-600
|
|
432
|
+
dark:bg-slate-700 dark:hover:bg-slate-600 dark:text-slate-300
|
|
433
|
+
shadow-sm hover:shadow-md hover:scale-105 active:scale-95
|
|
434
|
+
${Q?"hidden sm:inline-flex":"inline-flex"}
|
|
435
|
+
`,children:[e.jsx(y.X,{className:"w-4 h-4 flex-shrink-0"}),e.jsx("span",{className:"hidden sm:inline",children:x})]}),ae?e.jsxs("button",{type:"submit",className:`inline-flex items-center gap-1.5 px-3.5 py-2.5 sm:px-4 sm:py-2.5
|
|
436
|
+
rounded-xl text-sm font-semibold transition-all duration-200
|
|
437
|
+
bg-gradient-to-r from-violet-600 to-indigo-600
|
|
438
|
+
hover:from-violet-700 hover:to-indigo-700
|
|
439
|
+
text-white shadow-md hover:shadow-lg
|
|
440
|
+
hover:scale-105 active:scale-95`,children:[e.jsx(y.Check,{className:"w-4 h-4 flex-shrink-0"}),e.jsx("span",{children:c})]}):e.jsxs("button",{type:"button",onClick:H,className:`inline-flex items-center gap-1.5 px-3.5 py-2.5 sm:px-4 sm:py-2.5
|
|
441
|
+
rounded-xl text-sm font-semibold transition-all duration-200
|
|
442
|
+
bg-white hover:bg-slate-50 text-slate-700
|
|
443
|
+
border border-slate-200 dark:border-slate-600
|
|
444
|
+
dark:bg-slate-700 dark:hover:bg-slate-600 dark:text-slate-300
|
|
445
|
+
shadow-sm hover:shadow-md hover:scale-105 active:scale-95`,children:[e.jsx("span",{children:"Next"}),e.jsx(y.ChevronRight,{className:"w-4 h-4 flex-shrink-0"})]})]})})]})})]})]})},mt=({header:a,error:s=null,errorDescription:o=null,onErrorClose:n,children:h,loading:b=!1,loadingMessage:c="Loading data..."})=>e.jsx("div",{className:"h-full w-full flex flex-col overflow-hidden p-2.5 sm:p-3.5",children:e.jsxs("div",{className:"flex flex-col gap-2.5 sm:gap-3 h-full overflow-hidden",children:[a&&e.jsx("div",{className:"flex-shrink-0",children:a}),s&&e.jsx("div",{className:`
|
|
446
|
+
flex-shrink-0 rounded-xl border overflow-hidden
|
|
447
|
+
bg-red-50 border-red-200/70 shadow-sm
|
|
448
|
+
dark:bg-red-900/20 dark:border-red-800/40
|
|
449
|
+
animate-in slide-in-from-top-2 duration-200
|
|
450
|
+
`,children:e.jsx("div",{className:"px-3.5 py-2.5 sm:px-4 sm:py-3",children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("div",{className:`
|
|
451
|
+
flex-shrink-0 w-7 h-7 sm:w-8 sm:h-8 rounded-lg mt-0.5
|
|
452
|
+
bg-red-100 dark:bg-red-800/30
|
|
453
|
+
flex items-center justify-center
|
|
454
|
+
`,children:e.jsx(y.AlertTriangle,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 text-red-600 dark:text-red-400"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-semibold text-red-800 dark:text-red-300 leading-snug",children:s}),o&&e.jsx("p",{className:"mt-0.5 text-xs text-red-700/80 dark:text-red-400 leading-relaxed",children:o})]}),n&&e.jsx("button",{onClick:n,className:`flex-shrink-0 p-2 rounded-lg mt-0.5
|
|
455
|
+
text-red-400 transition-all duration-200
|
|
456
|
+
hover:bg-red-100 hover:text-red-600
|
|
457
|
+
dark:hover:bg-red-800/50 dark:hover:text-red-300
|
|
458
|
+
hover:scale-105 active:scale-95`,"aria-label":"Dismiss error",children:e.jsx(y.X,{className:"w-3.5 h-3.5"})})]})})}),e.jsx("div",{className:"flex-grow min-h-0 overflow-y-auto",children:b?e.jsx("div",{className:`
|
|
459
|
+
h-full flex items-center justify-center
|
|
460
|
+
rounded-xl sm:rounded-2xl border
|
|
461
|
+
bg-white border-slate-200/60 shadow-sm
|
|
462
|
+
dark:bg-slate-800/50 dark:border-slate-700/50
|
|
463
|
+
`,children:e.jsxs("div",{className:"flex flex-col items-center gap-3 px-6 py-10",children:[e.jsxs("div",{className:"relative w-9 h-9",children:[e.jsx("div",{className:"absolute inset-0 rounded-full border-[2.5px] border-slate-200 dark:border-slate-700"}),e.jsx("div",{className:`absolute inset-0 rounded-full border-[2.5px] border-transparent
|
|
464
|
+
border-t-violet-600 dark:border-t-violet-400 animate-spin`})]}),e.jsx("div",{className:"flex items-center gap-1",children:[0,120,240].map(x=>e.jsx("span",{className:`w-1 h-1 rounded-full bg-gradient-to-r from-violet-500 to-indigo-500
|
|
465
|
+
animate-bounce`,style:{animationDelay:`${x}ms`}},x))}),e.jsx("p",{className:"text-xs font-medium text-slate-500 dark:text-slate-400",children:c})]})}):h})]})}),ht=({message:a="Loading...",supportingMessage:s=!1,title:o="Loading Data",className:n="",size:h="lg"})=>{const b={sm:"h-7 w-7 border-2",md:"h-9 w-9 border-[3px]",lg:"h-10 w-10 sm:h-12 sm:w-12 border-[3px] sm:border-[4px]",xl:"h-12 w-12 sm:h-16 sm:w-16 border-[4px]"};return e.jsxs("div",{className:`flex flex-col items-center justify-center h-full w-full text-center px-4 ${n}`,children:[e.jsx("div",{className:`animate-spin rounded-full ${b[h]}
|
|
466
|
+
border-slate-200 border-t-violet-500 border-r-violet-500 mb-4`}),e.jsx("div",{className:"flex items-center gap-1 mb-3",children:[0,120,240].map(c=>e.jsx("span",{className:"w-1 h-1 rounded-full bg-gradient-to-r from-violet-500 to-indigo-500 animate-bounce",style:{animationDelay:`${c}ms`}},c))}),e.jsx("h3",{className:"text-sm sm:text-base font-semibold text-slate-900 dark:text-slate-200 mb-1",children:o}),e.jsx("p",{className:"text-xs sm:text-sm text-slate-500 dark:text-slate-400 max-w-xs",children:s||a})]})},ut=({error:a,errorDescription:s,onClose:o})=>a?e.jsx("div",{className:`mx-4 mt-3 sm:mx-5 sm:mt-4 rounded-xl border
|
|
467
|
+
border-red-200 bg-red-50
|
|
468
|
+
dark:bg-red-900/20 dark:border-red-800/50
|
|
469
|
+
animate-in slide-in-from-top-1 duration-200`,children:e.jsx("div",{className:"px-3.5 py-3 sm:px-4",children:e.jsxs("div",{className:"flex items-start gap-2.5",children:[e.jsx("div",{className:`flex-shrink-0 w-7 h-7 rounded-lg mt-0.5
|
|
470
|
+
bg-red-100 dark:bg-red-800/30
|
|
471
|
+
flex items-center justify-center`,children:e.jsx(y.AlertTriangle,{className:"w-3.5 h-3.5 text-red-600 dark:text-red-400"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-semibold text-red-800 dark:text-red-300 leading-snug",children:a}),s&&e.jsx("p",{className:"mt-0.5 text-xs text-red-700/80 dark:text-red-400 leading-relaxed",children:s})]}),o&&e.jsx("button",{type:"button",onClick:o,"aria-label":"Close error",className:`flex-shrink-0 p-1 rounded-lg mt-0.5 transition-all duration-200
|
|
472
|
+
text-red-400
|
|
473
|
+
hover:bg-red-100 hover:text-red-600
|
|
474
|
+
dark:hover:bg-red-800/50 dark:hover:text-red-300
|
|
475
|
+
hover:scale-105 active:scale-95`,children:e.jsx(y.X,{className:"w-3.5 h-3.5"})})]})})}):null,bt=({content:a,className:s="",emptyText:o=null,size:n="md"})=>{if(!a||!a.replace(/<[^>]*>/g,"").trim())return o?e.jsx("span",{className:"text-slate-400 dark:text-slate-500 text-sm italic",children:o}):null;const h={xs:"prose-xs text-xs",sm:"prose-sm text-sm",md:"prose-base text-base"}[n]||"prose-sm text-sm";return e.jsx("div",{className:`
|
|
476
|
+
prose ${h} max-w-none
|
|
477
|
+
text-slate-700 dark:text-slate-300
|
|
478
|
+
|
|
479
|
+
[&>*]:my-0.5
|
|
480
|
+
[&>p]:m-0
|
|
481
|
+
|
|
482
|
+
[&>h1]:text-2xl [&>h1]:font-bold [&>h1]:mt-2
|
|
483
|
+
[&>h2]:text-xl [&>h2]:font-semibold [&>h2]:mt-2
|
|
484
|
+
[&>h3]:text-lg [&>h3]:font-semibold
|
|
485
|
+
[&>h4]:text-base [&>h4]:font-semibold
|
|
486
|
+
|
|
487
|
+
[&>ul]:list-disc [&>ul]:pl-4
|
|
488
|
+
[&>ol]:list-decimal [&>ol]:pl-4
|
|
489
|
+
|
|
490
|
+
[&>strong]:font-semibold
|
|
491
|
+
|
|
492
|
+
${s}
|
|
493
|
+
`,dangerouslySetInnerHTML:{__html:a}})};let B=null;const ft=({items:a=[],onReorder:s,onDropFrom:o,onDropTo:n,listId:h="default",disabled:b=!1,renderItem:c,className:x="",dropZoneClassName:k="",activeDropZoneClassName:N="",children:T,footer:S=null})=>{const E=j.useRef(null),[$,P]=j.useState(null),[p,F]=j.useState(!1),[i,L]=j.useState(null);j.useEffect(()=>{const d=()=>{B&&(B=null,L(null),P(null),F(!1),E.current=null)};return document.addEventListener("dragend",d),()=>document.removeEventListener("dragend",d)},[]);const G=(d,w)=>{E.current=w,L(a[w].id),B={listId:h,index:w,item:a[w]},d.dataTransfer.effectAllowed="move"},J=(d,w)=>{d.preventDefault(),(B==null?void 0:B.listId)===h&&P(w)},W=()=>{E.current=null,L(null),P(null),F(!1),B=null},se=d=>{d.preventDefault(),!b&&(B==null?void 0:B.listId)!==h&&F(!0)},re=d=>{d.currentTarget.contains(d.relatedTarget)||(F(!1),(B==null?void 0:B.listId)===h&&P(null))},ee=(d,w)=>{if(d.preventDefault(),d.stopPropagation(),!!B){if(B.listId===h){const _=E.current;if(_===w){W();return}const A=[...a],[H]=A.splice(_,1);A.splice(w,0,H),s==null||s(A)}else o==null||o({item:B.item,fromListId:B.listId,toIndex:w}),n==null||n({item:B.item,fromIndex:B.index});W()}},M=d=>{if(d.preventDefault(),!!B){if(B.listId===h){W();return}o==null||o({item:B.item,fromListId:B.listId,toIndex:a.length}),n==null||n({item:B.item,fromIndex:B.index}),W()}},Q=p&&!b&&(B==null?void 0:B.listId)!==h;return e.jsxs("div",{className:`${k} ${Q?N:""} ${x}`,onDragOver:b?void 0:se,onDragLeave:b?void 0:re,onDrop:b?void 0:M,children:[a.length===0?T:a.map((d,w)=>{const _=i===d.id,A=(B==null?void 0:B.listId)===h&&$===w&&i!==d.id;return c(d,w,b?{}:{draggable:!0,onDragStart:m=>G(m,w),onDragEnter:m=>J(m,w),onDragEnd:W,onDrop:m=>ee(m,w)},_,A)}),S]})};V.ActionButton=ot,V.DataTable=nt,V.DragDropList=ft,V.DynamicForm=dt,V.DynamicFormMultiStep=xt,V.Footer=qe,V.FormField=Ne,V.HtmlContent=bt,V.IconButton=st,V.Loader=ht,V.ManagerLayout=mt,V.Modal=it,V.ModalErrorAlert=ut,V.Navbar=et,V.PageHeader=at,V.PrimaryButton=rt,V.SearchInput=lt,V.SelectModal=Re,V.SelectModalField=ct,V.Sidebar=tt,V.Toggle=De,V.UserMenu=Pe,Object.defineProperty(V,Symbol.toStringTag,{value:"Module"})});
|