@sito/dashboard-app 0.0.26 → 0.0.28

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/README.md CHANGED
@@ -1,60 +1,170 @@
1
1
  # @sito/dashboard-app
2
2
 
3
- ## Features
3
+ ## Overview
4
+ `@sito/dashboard-app` is the npm package that bundles Sitō’s dashboard component library. It ships production-ready React components, opinionated hooks, data utilities (HTTP clients, DTOs, providers) and the required styles so you can build admin panels, CRUD views and internal tools on top of React 18. The package re-exports the primitives from `@sito/dashboard`, exposes TypeScript types, and keeps the UI and data layers aligned.
5
+
6
+ ## Key capabilities
7
+ - **Production-ready components**: Pages, navigation bars, tabbed layouts, dialogs, dropdowns and buttons that match the Sitō design system.
8
+ - **Built-in critical flows**: Confirmation modals, forms, import dialogs with preview, notifications and loading states ready to wire into your endpoints.
9
+ - **Opinionated hooks**: `useImportDialog`, `useDeleteDialog`, `usePostForm`, `useDeleteAction`, `useScrollTrigger` and more to remove boilerplate from common flows.
10
+ - **Typed API clients and DTOs**: `APIClient`, `BaseClient`, `AuthClient` plus base/user/import DTOs to keep backend contracts synchronized with the UI.
11
+ - **Internationalization and accessibility**: Every component leverages the contexts and helpers from `@sito/dashboard` to keep translations, shortcuts and accessibility consistent.
12
+
13
+ ## Core exports
14
+ - **Layout & navigation**: `Page`, `Navbar`, `Drawer`, `TabsLayout`, `PrettyGrid`.
15
+ - **Actions & menus**: `Actions`, `Action`, `Buttons`, `Dropdown`, `ToTop`.
16
+ - **Dialogs & forms**: `Dialog`, `DialogActions`, `FormDialog`, `ImportDialog`, `FormContainer`, `ParagraphInput`, `PasswordInput`.
17
+ - **Visual feedback**: `Notification`, `Loading` / `SplashScreen`, `Empty`, `Error`, `Onboarding`.
18
+ - **Business hooks**: `useImportDialog`, `useFormDialog`, `useDeleteDialog`, `useImportAction`, `useDeleteAction`, `useRestoreAction`, `usePostForm`, `useConfirmationForm`, `useTimeAge`.
19
+ - **Providers & utilities**: `ManagerProvider`, `NotificationProvider`, `AuthProvider`, `ConfigProvider`, `queryClient`, helpers for dates, navigation, local storage and enums.
20
+
21
+ ## Quick example: import action dialog
22
+ The snippet below shows how to combine `Page`, the import hooks and `ImportDialog` to enable a batch upload experience. It assumes your app is already wrapped with the providers described in the next section.
23
+
24
+ ```tsx
25
+ import type { BaseEntityDto, ImportPreviewDto } from "@sito/dashboard-app";
26
+ import {
27
+ APIClient,
28
+ ImportDialog,
29
+ Page,
30
+ useImportDialog,
31
+ useNotification,
32
+ } from "@sito/dashboard-app";
33
+
34
+ type CustomerDto = BaseEntityDto & {
35
+ name: string;
36
+ email: string;
37
+ };
38
+
39
+ type CustomerPreview = ImportPreviewDto & {
40
+ name: string;
41
+ email: string;
42
+ };
43
+
44
+ const api = new APIClient(import.meta.env.VITE_API_URL);
45
+
46
+ const parseCustomersCsv = async (
47
+ file: File
48
+ ): Promise<CustomerPreview[]> => {
49
+ // Use your preferred CSV parser and return typed items
50
+ return [];
51
+ };
52
+
53
+ export function CustomersPage() {
54
+ const { showErrorNotification } = useNotification();
55
+
56
+ const importDialog = useImportDialog<CustomerDto, CustomerPreview>({
57
+ entity: "customers",
58
+ queryKey: ["customers"],
59
+ mutationFn: (payload) => api.post("/customers/import", payload),
60
+ fileProcessor: parseCustomersCsv,
61
+ onError: () =>
62
+ showErrorNotification({
63
+ title: "The file could not be processed",
64
+ }),
65
+ });
66
+
67
+ return (
68
+ <>
69
+ <Page
70
+ title="Customers"
71
+ subtitle="Manage your audience"
72
+ queryKey={["customers"]}
73
+ actions={[importDialog.action()]}
74
+ >
75
+ {/* Mount your table or grid here */}
76
+ </Page>
77
+
78
+ <ImportDialog {...importDialog} />
79
+ </>
80
+ );
81
+ }
82
+ ```
4
83
 
5
84
  ## Installation
6
-
7
- To install the library, use npm or yarn:
85
+ Install the library with your preferred package manager:
8
86
 
9
87
  ```bash
10
- # Using npm
11
88
  npm install @sito/dashboard-app
12
-
13
- # Using yarn
89
+ # or
14
90
  yarn add @sito/dashboard-app
91
+ # or
92
+ pnpm add @sito/dashboard-app
15
93
  ```
16
94
 
17
- ## Development
18
-
19
- Running Locally
20
-
21
- To run the project locally:
22
-
23
- 1. Clone the repository:
24
-
25
- ```bash
26
- git clone https://github.com/your-repo/sito-dashboard-app.git
27
-
28
- cd sito-dashboard-app
95
+ ## Initial setup
96
+ Wrap your application with the provided providers to enable navigation, React Query, authentication and notifications. `ConfigProvider` needs the current `location`, a `navigate` function (for example from React Router) and a link component; `ManagerProvider` exposes the shared `queryClient` and requires an instance of `IManager` that encapsulates your HTTP services.
97
+
98
+ ```tsx
99
+ import type { ReactNode } from "react";
100
+ import { BrowserRouter, Link, useLocation, useNavigate } from "react-router-dom";
101
+ import {
102
+ AuthProvider,
103
+ ConfigProvider,
104
+ IManager,
105
+ ManagerProvider,
106
+ NotificationProvider,
107
+ } from "@sito/dashboard-app";
108
+
109
+ const manager = new IManager(import.meta.env.VITE_API_URL);
110
+
111
+ function AppProviders({ children }: { children: ReactNode }) {
112
+ const go = useNavigate();
113
+ const location = useLocation();
114
+
115
+ return (
116
+ <ConfigProvider
117
+ location={location}
118
+ navigate={(route) => go(route)}
119
+ linkComponent={Link}
120
+ >
121
+ <ManagerProvider manager={manager}>
122
+ <AuthProvider>
123
+ <NotificationProvider>{children}</NotificationProvider>
124
+ </AuthProvider>
125
+ </ManagerProvider>
126
+ </ConfigProvider>
127
+ );
128
+ }
129
+
130
+ export function App() {
131
+ return (
132
+ <BrowserRouter>
133
+ <AppProviders>
134
+ <CustomersPage />
135
+ </AppProviders>
136
+ </BrowserRouter>
137
+ );
138
+ }
29
139
  ```
30
140
 
141
+ ## Local development
142
+ 1. Clone the repository:
143
+ ```bash
144
+ git clone https://github.com/your-repo/sito-dashboard-app.git
145
+ cd sito-dashboard-app
146
+ ```
31
147
  2. Install dependencies:
148
+ ```bash
149
+ npm install
150
+ ```
151
+ 3. Start the Vite dev server:
152
+ ```bash
153
+ npm run dev
154
+ ```
32
155
 
33
- ```bash
34
- npm install
35
- ```
36
-
37
- 3. Start the development server
38
-
39
- ```bash
40
- npm start
41
- ```
42
-
43
- Building the Library
44
-
45
- To build the library for production
156
+ ## Build the library
157
+ Produce the distributable artifacts by running:
46
158
 
47
159
  ```bash
48
160
  npm run build
49
161
  ```
50
162
 
51
163
  ## Contributing
52
-
53
- Contributions are welcome! Please follow these steps:
164
+ Contributions are welcome! Please:
54
165
  1. Fork the repository.
55
- 2. Create a new branch for your feature or bugfix.
56
- 3. Submit a pull request with a detailed description of your changes.
166
+ 2. Create a descriptive branch for your feature or fix.
167
+ 3. Open a pull request explaining the change and how to test it.
57
168
 
58
169
  ## License
59
-
60
- This project is licensed under the MIT License.
170
+ This project is licensed under the MIT License.
@@ -1 +1 @@
1
- var ps=Object.defineProperty;var xs=(e,t,s)=>t in e?ps(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var ue=(e,t,s)=>xs(e,typeof t!="symbol"?t+"":t,s);var Fr=require("./main.css");Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("@sito/dashboard"),u=require("react/jsx-runtime"),h=require("react"),B=require("@fortawesome/free-solid-svg-icons"),ie=require("@fortawesome/react-fontawesome"),Vt=require("react-dom"),ws=require("@emotion/css"),we=require("@tanstack/react-query"),vs=require("@fortawesome/free-regular-svg-icons");function et(e){const{id:t,icon:s,tooltip:n,onClick:i,children:r,hidden:c=!1,disabled:a=!1,showText:f=!1,showTooltips:y=!0}=e;return c?null:u.jsxs("button",{id:t,className:`action ${f?"text-action":"icon-action"}`,disabled:a,onClick:()=>i(),"aria-disabled":a,"data-tooltip-id":"tooltip","data-tooltip-content":y?n:"",children:[s," ",f&&n,r]})}function tt(e){const{actions:t=[],className:s="",showTooltips:n=!0,showActionTexts:i=!1}=e;return u.jsx("ul",{className:`actions-container ${s}`,children:t==null?void 0:t.map(r=>u.jsx("li",{children:u.jsx(et,{showTooltips:n,showText:i,...r,children:r.children})},r.id))})}const Pt=e=>{const{children:t,open:s,onClose:n}=e,i=h.useRef(null),r=h.useCallback(a=>{const f=i.current;!s||!f||f.contains(a.target)||n()},[s,n]),c=h.useCallback(a=>{s&&a.key==="Escape"&&n()},[s,n]);return h.useEffect(()=>{if(s)return setTimeout(()=>{var a;return(a=i.current)==null?void 0:a.focus()},0),document.addEventListener("mousedown",r),document.addEventListener("keydown",c),()=>{document.removeEventListener("mousedown",r),document.removeEventListener("keydown",c)}},[s,r,c]),u.jsx("div",{ref:i,role:"menu","aria-hidden":!s,tabIndex:-1,className:`dropdown-main ${s?"opened":"closed"}`,onClick:a=>a.stopPropagation(),children:t})},me=e=>{const{children:t,icon:s,type:n="button",className:i="",variant:r="text",color:c="default",iconClassName:a="",...f}=e;return u.jsxs("button",{type:n,className:`icon-button ${i} ${r} ${c}`,...f,children:[u.jsx(ie.FontAwesomeIcon,{icon:s,className:`!w-auto ${a}`}),t]})},ge=e=>{const{children:t,type:s="button",variant:n="text",color:i="default",className:r="",...c}=e;return u.jsx("button",{type:s,className:`button ${n} ${i} ${r}`,...c,children:t})};var ze,Ct;function Cs(){if(Ct)return ze;Ct=1;const e=(a,f="local",y=void 0)=>{if(f==="local"){if(localStorage.getItem(a)!==void 0&&localStorage.getItem(a)!=="undefined"&&localStorage.getItem(a)!==null)return y===void 0||y!==void 0&&localStorage.getItem(a)===y}else if(f==="session"&&sessionStorage.getItem(a)!==void 0&&sessionStorage.getItem(a)!=="undefined"&&sessionStorage.getItem(a)!==null)return y===void 0||y!==void 0&&sessionStorage.getItem(a)===y;return!1},t=a=>{const f={};return a.substring(1).split("&").forEach(b=>{const[g,m]=b.split("=");f[g]=m}),f},s=(a="")=>{if(r(a)&&a.length)return r(a);{let f=navigator.language||navigator.userLanguage;if(f.indexOf("en")<0&&f.indexOf("es")<0&&(f="en-US"),f=f.split("-")[0],f)return a.length&&i(a,730,f),f}return"en"},n=(a=0,f=0,y=window,b="smooth")=>y.scroll({top:a,left:f,behavior:b}),i=(a,f,y,b="/",g="Lax")=>{var m=new Date;m.setTime(m.getTime()+f*24*60*60*1e3);const w="; expires="+m.toUTCString();document.cookie=`${a}=${y||""}${w};path=${b};SameSite=${g}`},r=a=>{const f=`${a}=`,b=decodeURIComponent(document.cookie).split(";");for(let g=0;g<b.length;g+=1){let m=b[g];for(;m.charAt(0)===" ";)m=m.substring(1);if(m.indexOf(f)===0)return m.substring(f.length,m.length)}return""};return ze={getCookie:r,createCookie:i,deleteCookie:a=>document.cookie=`${a}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,getUserLanguage:s,scrollTo:n,parseQueries:t,validation:e},ze}var Ss=Cs();function ks(){const{t:e,language:t}=_.useTranslation();return{timeAge:h.useCallback(n=>{const r=new Date-n,c=Math.floor(r/(1e3*60)),a=Math.floor(c/60),f=t==="es",y=e("_accessibility:labels.ago"),b=e("_accessibility:labels.minute"),g=e("_accessibility:labels.minutes"),m=e("_accessibility:labels.hour"),w=e("_accessibility:labels.hours"),k=e("_accessibility:labels.yesterday"),C=e("_accessibility:labels.justNow");return r<1e3*60?C:c<60?`${f?y:""} ${c} ${c===1?b:g} ${f?"":y}`:a<24?`${f?y:""} ${a} ${a===1?m:w} ${f?"":y}`:a<48?k:n.toLocaleDateString(navigator.language||"es-ES",{day:"2-digit",month:"2-digit",year:"numeric"})},[e,t])}}var U=(e=>(e[e.success=0]="success",e[e.error=1]="error",e[e.warning=2]="warning",e[e.info=3]="info",e))(U||{}),ee=(e=>(e.GET="GET",e.POST="POST",e.PUT="PUT",e.PATCH="PATCH",e.DELETE="DELETE",e))(ee||{});async function Ae(e,t="GET",s,n){const i={...s?{"Content-Type":"application/json"}:{},...n};try{const r=await fetch(e,{method:t,headers:i,...s?{body:JSON.stringify(s)}:{}}),c=await r.text();let a=null;try{a=c?JSON.parse(c):null}catch{a=null}if(!r.ok){const f=typeof a=="object"&&a!==null?a.message??a.error??c:c||r.statusText;return{data:null,status:r.status,error:{status:r.status,message:f||"Unknown error occurred"}}}return{data:r.status!==204&&a!==null?a:null,status:r.status,error:null}}catch(r){return{data:null,status:500,error:{status:500,message:r instanceof Error?r.message:"Unknown error occurred"}}}}function It(e,t){if(t){const s=Object.entries(t).filter(([,n])=>n!=null).map(([n,i])=>`${encodeURIComponent(n)}=${encodeURIComponent(String(i))}`).join("&");return s?`${e}?${s}`:e}return e}const st=(e,t,s)=>{const n=[];if(t){const{sortingBy:i,sortingOrder:r,currentPage:c,pageSize:a}=t;n.push(`sort=${String(i)}`,`order=${r}`,`page=${c}`,`pageSize=${a}`)}if(s){const i=Object.entries(s).filter(([,r])=>r!=null&&r!=="").flatMap(([r,c])=>{if(Array.isArray(c))return c.map(a=>`${r}==${encodeURIComponent((a==null?void 0:a.id)??a)}`);if(typeof c=="object"&&c!==null&&"start"in c&&"end"in c){const a=[];return c.start!=null&&c.start!==""&&a.push(`${r}>=${encodeURIComponent(c.start)}`),c.end!=null&&c.end!==""&&a.push(`${r}<=${encodeURIComponent(c.end)}`),a}return typeof c=="object"&&c!==null?`${r}==${encodeURIComponent(c.id??"")}`:`${r}==${encodeURIComponent(c)}`});i.length>0&&n.push(`filters=${i.join(",")}`)}return n.length?`${e}?${n.join("&")}`:e};class rt{constructor(t,s="user",n=!0,i=null){ue(this,"baseUrl");ue(this,"userKey");ue(this,"secured");ue(this,"tokenAcquirer");this.baseUrl=t,this.secured=n,this.userKey=s,i||(this.tokenAcquirer=this.defaultTokenAcquirer)}defaultTokenAcquirer(t){if(t)return{credentials:"include"};const s=nt(this.userKey);if(s&&s.length)return{Authorization:`Bearer ${s}`}}async doQuery(t,s=ee.GET,n,i){const r=this.secured?this.defaultTokenAcquirer():{},{data:c,status:a,error:f}=await Ae(`${this.baseUrl}${t}`,s,n,{...r,...i??{}});if(f||a<200||a>=300)throw f??{status:a,message:String(a)};return c}async get(t,s,n){const i=st(t,s,n),r=this.secured?this.defaultTokenAcquirer():void 0,{data:c,error:a}=await Ae(`${this.baseUrl}${i}`,ee.GET,null,r);if(a)throw a;return c}async patch(t,s){const n=this.secured?this.defaultTokenAcquirer():void 0,{error:i,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,ee.PATCH,s,n);if(i||!r)throw i??{status:c,message:"Unknown error"};return r}async delete(t,s){const n=this.secured?this.defaultTokenAcquirer():void 0,{error:i,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,ee.DELETE,s,n);if(i||!r)throw i??{status:c,message:"Unknown error"};return r}async post(t,s){const n=this.secured?this.defaultTokenAcquirer():void 0,{error:i,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,ee.POST,s,n);if(i||!r)throw i??{status:c,message:"Unknown error"};return r}}class Mt{constructor(t,s="user"){ue(this,"api");this.api=new rt(t,s,!1)}async login(t){const s="auth/sign-in",n=t;return await this.api.doQuery(s,ee.POST,n)}async logout(){return await this.api.doQuery("auth/sign-out",ee.POST)}async register(t){return await this.api.doQuery("auth/sign-up",ee.POST,t)}async getSession(){return await this.api.doQuery("auth/session",ee.GET,null,{...this.api.defaultTokenAcquirer()})}}class As{constructor(t,s){ue(this,"auth");this.auth=new Mt(t,s)}get Auth(){return this.auth}}class _s{constructor(t,s,n="user",i=!0){ue(this,"table");ue(this,"secured");ue(this,"api");this.table=t,this.secured=i,this.api=new rt(s,n,i)}async insert(t){return await this.api.post(`${this.table}`,t)}async insertMany(t){return await this.api.doQuery(`${this.table}/batch`,ee.POST,t)}async update(t){return await this.api.patch(`${this.table}/${t.id}`,t)}async get(t,s){return await this.api.get(`${this.table}`,t,s)}async export(t){const s=st(`${this.table}/export`,void 0,t);return await this.api.doQuery(s,ee.GET,void 0)}async import(t){return await this.api.doQuery(`${this.table}/import`,ee.POST,t)}async commonGet(t){return await this.api.doQuery(It(`${this.table}/common`,t),ee.GET)}async getById(t){return await this.api.doQuery(`${this.table}/${t}`)}async softDelete(t){return await this.api.delete(`${this.table}`,t)}async restore(t){return await this.api.patch(`${this.table}/restore`,t)}}function Ns(e){return Object.keys(e).filter(t=>isNaN(Number(t))).map(t=>({key:t,value:e[t]}))}const nt=(e,t="")=>{const s=localStorage.getItem(e)??void 0;if(s&&t.length)switch(t){case"object":return JSON.parse(s);case"number":return Number(s);case"boolean":return s==="true"||s==="1";default:return s}return s},Je=(e,t)=>localStorage.setItem(e,typeof t=="object"?JSON.stringify(t):t),Ye=e=>localStorage.removeItem(e);function Xe(e){const t=e?new Date(e):new Date,s={weekday:"long",day:"numeric",month:"long",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0};return t.toLocaleString(navigator.language||"es-ES",s)}function Es(e){const t=e?new Date(e):new Date,s=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),r=String(t.getHours()).padStart(2,"0"),c=String(t.getMinutes()).padStart(2,"0");return`${s}-${n}-${i}T${r}:${c}`}const Ot=()=>{var s;const e=navigator,t=((s=e==null?void 0:e.userAgentData)==null?void 0:s.platform)||(e==null?void 0:e.platform)||"";return/Mac|iPhone|iPod|iPad/i.test(t)};function je(e){if(!e||typeof e!="object")return!1;const t=e;return Array.isArray(t.errors)&&t.errors.every(s=>Array.isArray(s)&&s.length===2&&typeof s[0]=="string")}function Fe(e){if(!e||typeof e!="object")return!1;const t=e;return typeof(t==null?void 0:t.status)=="number"&&typeof(t==null?void 0:t.message)=="string"}function Ts(e,t){return e!=null&&e.errors?e.errors.map(([s,n])=>t(s,n)):[]}const Ut=h.createContext({});function js(e){const{children:t}=e,[s,n]=h.useReducer((y,b)=>{const{type:g,items:m,index:w}=b;switch(g){case"set":return(m==null?void 0:m.map((k,C)=>({...k,id:C})))??[];case"remove":return w!==void 0?y.filter((k,C)=>C!==w):[]}return y},[],()=>[]),i=y=>n({type:"set",items:[{...y,type:U.error}]}),r=y=>n({type:"set",items:[{...y}]}),c=y=>n({type:"set",items:y}),a=y=>n({type:"set",items:[{...y,type:U.success}]}),f=y=>n({type:"remove",index:y});return u.jsx(Ut.Provider,{value:{notification:s,removeNotification:f,showErrorNotification:i,showNotification:r,showSuccessNotification:a,showStackNotifications:c},children:t})}const ve=()=>{const e=h.useContext(Ut);if(e===void 0)throw new Error("NotificationContext must be used within a Provider");return e},he=new we.QueryClient({defaultOptions:{queries:{refetchInterval:!1,refetchOnMount:!0,refetchOnReconnect:!1,retry:!1,retryOnMount:!0,refetchOnWindowFocus:!1}}}),Rt=h.createContext({}),Fs=e=>{const{children:t,manager:s}=e;return u.jsx(Rt.Provider,{value:{client:s},children:u.jsx(we.QueryClientProvider,{client:he,children:t})})},qt=()=>{const e=h.useContext(Rt);if(e===void 0)throw new Error("managerContext must be used within a Provider");return e.client},Bt=h.createContext({}),$s=e=>{const{children:t,guestMode:s="guest_mode",user:n="user"}=e,i=qt(),[r,c]=h.useState({}),a=h.useCallback(()=>!!nt(s,"boolean")&&r.token===void 0,[r.token]),f=h.useCallback(w=>{Je(s,w)},[]),y=h.useCallback(w=>{w&&(c(w),Ye(s),Je(n,w.token))},[]),b=h.useCallback(async()=>{try{await i.Auth.logout()}catch(w){console.error(w)}c({}),Ye(n)},[i.Auth]),g=h.useCallback(async()=>{try{const w=await i.Auth.getSession();y(w)}catch(w){console.error(w),b()}},[y,b,i.Auth]),m={account:r,logUser:y,logoutUser:b,logUserFromLocal:g,isInGuestMode:a,setGuestMode:f};return u.jsx(Bt.Provider,{value:m,children:t})},it=()=>{const e=h.useContext(Bt);if(e===void 0)throw new Error("authContext must be used within a Provider");return e},Ht=h.createContext({}),Ls=e=>{const{children:t,location:s,navigate:n,linkComponent:i,searchComponent:r}=e;return u.jsx(Ht.Provider,{value:{location:s,navigate:n,linkComponent:i,searchComponent:r},children:t})},$e=()=>{const e=h.useContext(Ht);if(e===void 0||Object.keys(e).length===0)throw new Error("Config provider has not been set. This step is required and cannot be skipped.");return e},at=e=>{const{showSuccessNotification:t}=ve(),{mutationFn:s,onError:n,onSuccess:i,onSuccessMessage:r}=e,[c,a]=h.useState([]),{open:f,handleClose:y,handleOpen:b}=ft(),g=()=>{y(),a([])},m=async k=>{a(k),b()},w=we.useMutation({mutationFn:()=>s(Array.isArray(c)?c:[c]),onError:k=>{console.error(k),n&&n(k),g()},onSuccess:async k=>{i&&i(k),t({message:r}),g()}});return{open:f,onClick:m,close:g,dialogFn:w,isLoading:w.isPending}};var Le=e=>e.type==="checkbox",Se=e=>e instanceof Date,Z=e=>e==null;const Qt=e=>typeof e=="object";var H=e=>!Z(e)&&!Array.isArray(e)&&Qt(e)&&!Se(e),Ds=e=>H(e)&&e.target?Le(e.target)?e.target.checked:e.target.value:e,Vs=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,Ps=(e,t)=>e.has(Vs(t)),Is=e=>{const t=e.constructor&&e.constructor.prototype;return H(t)&&t.hasOwnProperty("isPrototypeOf")},ot=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function J(e){let t;const s=Array.isArray(e),n=typeof FileList<"u"?e instanceof FileList:!1;if(e instanceof Date)t=new Date(e);else if(!(ot&&(e instanceof Blob||n))&&(s||H(e)))if(t=s?[]:{},!s&&!Is(e))t=e;else for(const i in e)e.hasOwnProperty(i)&&(t[i]=J(e[i]));else return e;return t}var Ue=e=>/^\w*$/.test(e),K=e=>e===void 0,ct=e=>Array.isArray(e)?e.filter(Boolean):[],lt=e=>ct(e.replace(/["|']|\]/g,"").split(/\.|\[/)),S=(e,t,s)=>{if(!t||!H(e))return s;const n=(Ue(t)?[t]:lt(t)).reduce((i,r)=>Z(i)?i:i[r],e);return K(n)||n===e?K(e[t])?s:e[t]:n},de=e=>typeof e=="boolean",M=(e,t,s)=>{let n=-1;const i=Ue(t)?[t]:lt(t),r=i.length,c=r-1;for(;++n<r;){const a=i[n];let f=s;if(n!==c){const y=e[a];f=H(y)||Array.isArray(y)?y:isNaN(+i[n+1])?{}:[]}if(a==="__proto__"||a==="constructor"||a==="prototype")return;e[a]=f,e=e[a]}};const St={BLUR:"blur",FOCUS_OUT:"focusout"},ce={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},ye={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},Ms=h.createContext(null);Ms.displayName="HookFormContext";var Os=(e,t,s,n=!0)=>{const i={defaultValues:t._defaultValues};for(const r in e)Object.defineProperty(i,r,{get:()=>{const c=r;return t._proxyFormState[c]!==ce.all&&(t._proxyFormState[c]=!n||ce.all),e[c]}});return i};const Us=typeof window<"u"?h.useLayoutEffect:h.useEffect;var fe=e=>typeof e=="string",Rs=(e,t,s,n,i)=>fe(e)?(n&&t.watch.add(e),S(s,e,i)):Array.isArray(e)?e.map(r=>(n&&t.watch.add(r),S(s,r))):(n&&(t.watchAll=!0),s),Ze=e=>Z(e)||!Qt(e);function xe(e,t,s=new WeakSet){if(Ze(e)||Ze(t))return e===t;if(Se(e)&&Se(t))return e.getTime()===t.getTime();const n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;if(s.has(e)||s.has(t))return!0;s.add(e),s.add(t);for(const r of n){const c=e[r];if(!i.includes(r))return!1;if(r!=="ref"){const a=t[r];if(Se(c)&&Se(a)||H(c)&&H(a)||Array.isArray(c)&&Array.isArray(a)?!xe(c,a,s):c!==a)return!1}}return!0}var qs=(e,t,s,n,i)=>t?{...s[e],types:{...s[e]&&s[e].types?s[e].types:{},[n]:i||!0}}:{},Ee=e=>Array.isArray(e)?e:[e],kt=()=>{let e=[];return{get observers(){return e},next:i=>{for(const r of e)r.next&&r.next(i)},subscribe:i=>(e.push(i),{unsubscribe:()=>{e=e.filter(r=>r!==i)}}),unsubscribe:()=>{e=[]}}},te=e=>H(e)&&!Object.keys(e).length,ut=e=>e.type==="file",le=e=>typeof e=="function",Ie=e=>{if(!ot)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},Kt=e=>e.type==="select-multiple",dt=e=>e.type==="radio",Bs=e=>dt(e)||Le(e),Ge=e=>Ie(e)&&e.isConnected;function Hs(e,t){const s=t.slice(0,-1).length;let n=0;for(;n<s;)e=K(e)?n++:e[t[n++]];return e}function Qs(e){for(const t in e)if(e.hasOwnProperty(t)&&!K(e[t]))return!1;return!0}function Q(e,t){const s=Array.isArray(t)?t:Ue(t)?[t]:lt(t),n=s.length===1?e:Hs(e,s),i=s.length-1,r=s[i];return n&&delete n[r],i!==0&&(H(n)&&te(n)||Array.isArray(n)&&Qs(n))&&Q(e,s.slice(0,-1)),e}var Wt=e=>{for(const t in e)if(le(e[t]))return!0;return!1};function Me(e,t={}){const s=Array.isArray(e);if(H(e)||s)for(const n in e)Array.isArray(e[n])||H(e[n])&&!Wt(e[n])?(t[n]=Array.isArray(e[n])?[]:{},Me(e[n],t[n])):Z(e[n])||(t[n]=!0);return t}function zt(e,t,s){const n=Array.isArray(e);if(H(e)||n)for(const i in e)Array.isArray(e[i])||H(e[i])&&!Wt(e[i])?K(t)||Ze(s[i])?s[i]=Array.isArray(e[i])?Me(e[i],[]):{...Me(e[i])}:zt(e[i],Z(t)?{}:t[i],s[i]):s[i]=!xe(e[i],t[i]);return s}var _e=(e,t)=>zt(e,t,Me(t));const At={value:!1,isValid:!1},_t={value:!0,isValid:!0};var Gt=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(s=>s&&s.checked&&!s.disabled).map(s=>s.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!K(e[0].attributes.value)?K(e[0].value)||e[0].value===""?_t:{value:e[0].value,isValid:!0}:_t:At}return At},Jt=(e,{valueAsNumber:t,valueAsDate:s,setValueAs:n})=>K(e)?e:t?e===""?NaN:e&&+e:s&&fe(e)?new Date(e):n?n(e):e;const Nt={isValid:!1,value:null};var Yt=e=>Array.isArray(e)?e.reduce((t,s)=>s&&s.checked&&!s.disabled?{isValid:!0,value:s.value}:t,Nt):Nt;function Et(e){const t=e.ref;return ut(t)?t.files:dt(t)?Yt(e.refs).value:Kt(t)?[...t.selectedOptions].map(({value:s})=>s):Le(t)?Gt(e.refs).value:Jt(K(t.value)?e.ref.value:t.value,e)}var Ks=(e,t,s,n)=>{const i={};for(const r of e){const c=S(t,r);c&&M(i,r,c._f)}return{criteriaMode:s,names:[...e],fields:i,shouldUseNativeValidation:n}},Oe=e=>e instanceof RegExp,Ne=e=>K(e)?e:Oe(e)?e.source:H(e)?Oe(e.value)?e.value.source:e.value:e,Tt=e=>({isOnSubmit:!e||e===ce.onSubmit,isOnBlur:e===ce.onBlur,isOnChange:e===ce.onChange,isOnAll:e===ce.all,isOnTouch:e===ce.onTouched});const jt="AsyncFunction";var Ws=e=>!!e&&!!e.validate&&!!(le(e.validate)&&e.validate.constructor.name===jt||H(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===jt)),zs=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),Ft=(e,t,s)=>!s&&(t.watchAll||t.watch.has(e)||[...t.watch].some(n=>e.startsWith(n)&&/^\.\w+/.test(e.slice(n.length))));const Te=(e,t,s,n)=>{for(const i of s||Object.keys(e)){const r=S(e,i);if(r){const{_f:c,...a}=r;if(c){if(c.refs&&c.refs[0]&&t(c.refs[0],i)&&!n)return!0;if(c.ref&&t(c.ref,c.name)&&!n)return!0;if(Te(a,t))break}else if(H(a)&&Te(a,t))break}}};function $t(e,t,s){const n=S(e,s);if(n||Ue(s))return{error:n,name:s};const i=s.split(".");for(;i.length;){const r=i.join("."),c=S(t,r),a=S(e,r);if(c&&!Array.isArray(c)&&s!==r)return{name:s};if(a&&a.type)return{name:r,error:a};if(a&&a.root&&a.root.type)return{name:`${r}.root`,error:a.root};i.pop()}return{name:s}}var Gs=(e,t,s,n)=>{s(e);const{name:i,...r}=e;return te(r)||Object.keys(r).length>=Object.keys(t).length||Object.keys(r).find(c=>t[c]===(!n||ce.all))},Js=(e,t,s)=>!e||!t||e===t||Ee(e).some(n=>n&&(s?n===t:n.startsWith(t)||t.startsWith(n))),Ys=(e,t,s,n,i)=>i.isOnAll?!1:!s&&i.isOnTouch?!(t||e):(s?n.isOnBlur:i.isOnBlur)?!e:(s?n.isOnChange:i.isOnChange)?e:!0,Xs=(e,t)=>!ct(S(e,t)).length&&Q(e,t),Zs=(e,t,s)=>{const n=Ee(S(e,s));return M(n,"root",t[s]),M(e,s,n),e},Pe=e=>fe(e);function Lt(e,t,s="validate"){if(Pe(e)||Array.isArray(e)&&e.every(Pe)||de(e)&&!e)return{type:s,message:Pe(e)?e:"",ref:t}}var ke=e=>H(e)&&!Oe(e)?e:{value:e,message:""},Dt=async(e,t,s,n,i,r)=>{const{ref:c,refs:a,required:f,maxLength:y,minLength:b,min:g,max:m,pattern:w,validate:k,name:C,valueAsNumber:R,mount:re}=e._f,N=S(s,C);if(!re||t.has(C))return{};const W=a?a[0]:c,$=E=>{i&&W.reportValidity&&(W.setCustomValidity(de(E)?"":E||""),W.reportValidity())},j={},z=dt(c),L=Le(c),ae=z||L,q=(R||ut(c))&&K(c.value)&&K(N)||Ie(c)&&c.value===""||N===""||Array.isArray(N)&&!N.length,I=qs.bind(null,C,n,j),P=(E,T,O,G=ye.maxLength,Y=ye.minLength)=>{const D=E?T:O;j[C]={type:E?G:Y,message:D,ref:c,...I(E?G:Y,D)}};if(r?!Array.isArray(N)||!N.length:f&&(!ae&&(q||Z(N))||de(N)&&!N||L&&!Gt(a).isValid||z&&!Yt(a).isValid)){const{value:E,message:T}=Pe(f)?{value:!!f,message:f}:ke(f);if(E&&(j[C]={type:ye.required,message:T,ref:W,...I(ye.required,T)},!n))return $(T),j}if(!q&&(!Z(g)||!Z(m))){let E,T;const O=ke(m),G=ke(g);if(!Z(N)&&!isNaN(N)){const Y=c.valueAsNumber||N&&+N;Z(O.value)||(E=Y>O.value),Z(G.value)||(T=Y<G.value)}else{const Y=c.valueAsDate||new Date(N),D=oe=>new Date(new Date().toDateString()+" "+oe),X=c.type=="time",se=c.type=="week";fe(O.value)&&N&&(E=X?D(N)>D(O.value):se?N>O.value:Y>new Date(O.value)),fe(G.value)&&N&&(T=X?D(N)<D(G.value):se?N<G.value:Y<new Date(G.value))}if((E||T)&&(P(!!E,O.message,G.message,ye.max,ye.min),!n))return $(j[C].message),j}if((y||b)&&!q&&(fe(N)||r&&Array.isArray(N))){const E=ke(y),T=ke(b),O=!Z(E.value)&&N.length>+E.value,G=!Z(T.value)&&N.length<+T.value;if((O||G)&&(P(O,E.message,T.message),!n))return $(j[C].message),j}if(w&&!q&&fe(N)){const{value:E,message:T}=ke(w);if(Oe(E)&&!N.match(E)&&(j[C]={type:ye.pattern,message:T,ref:c,...I(ye.pattern,T)},!n))return $(T),j}if(k){if(le(k)){const E=await k(N,s),T=Lt(E,W);if(T&&(j[C]={...T,...I(ye.validate,T.message)},!n))return $(T.message),j}else if(H(k)){let E={};for(const T in k){if(!te(E)&&!n)break;const O=Lt(await k[T](N,s),W,T);O&&(E={...O,...I(T,O.message)},$(O.message),n&&(j[C]=E))}if(!te(E)&&(j[C]={ref:W,...E},!n))return j}}return $(!0),j};const er={mode:ce.onSubmit,reValidateMode:ce.onChange,shouldFocusError:!0};function tr(e={}){let t={...er,...e},s={submitCount:0,isDirty:!1,isReady:!1,isLoading:le(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},n={},i=H(t.defaultValues)||H(t.values)?J(t.defaultValues||t.values)||{}:{},r=t.shouldUnregister?{}:J(i),c={action:!1,mount:!1,watch:!1},a={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},f,y=0;const b={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let g={...b};const m={array:kt(),state:kt()},w=t.criteriaMode===ce.all,k=o=>l=>{clearTimeout(y),y=setTimeout(o,l)},C=async o=>{if(!t.disabled&&(b.isValid||g.isValid||o)){const l=t.resolver?te((await L()).errors):await q(n,!0);l!==s.isValid&&m.state.next({isValid:l})}},R=(o,l)=>{!t.disabled&&(b.isValidating||b.validatingFields||g.isValidating||g.validatingFields)&&((o||Array.from(a.mount)).forEach(d=>{d&&(l?M(s.validatingFields,d,l):Q(s.validatingFields,d))}),m.state.next({validatingFields:s.validatingFields,isValidating:!te(s.validatingFields)}))},re=(o,l=[],d,v,x=!0,p=!0)=>{if(v&&d&&!t.disabled){if(c.action=!0,p&&Array.isArray(S(n,o))){const A=d(S(n,o),v.argA,v.argB);x&&M(n,o,A)}if(p&&Array.isArray(S(s.errors,o))){const A=d(S(s.errors,o),v.argA,v.argB);x&&M(s.errors,o,A),Xs(s.errors,o)}if((b.touchedFields||g.touchedFields)&&p&&Array.isArray(S(s.touchedFields,o))){const A=d(S(s.touchedFields,o),v.argA,v.argB);x&&M(s.touchedFields,o,A)}(b.dirtyFields||g.dirtyFields)&&(s.dirtyFields=_e(i,r)),m.state.next({name:o,isDirty:P(o,l),dirtyFields:s.dirtyFields,errors:s.errors,isValid:s.isValid})}else M(r,o,l)},N=(o,l)=>{M(s.errors,o,l),m.state.next({errors:s.errors})},W=o=>{s.errors=o,m.state.next({errors:s.errors,isValid:!1})},$=(o,l,d,v)=>{const x=S(n,o);if(x){const p=S(r,o,K(d)?S(i,o):d);K(p)||v&&v.defaultChecked||l?M(r,o,l?p:Et(x._f)):O(o,p),c.mount&&C()}},j=(o,l,d,v,x)=>{let p=!1,A=!1;const F={name:o};if(!t.disabled){if(!d||v){(b.isDirty||g.isDirty)&&(A=s.isDirty,s.isDirty=F.isDirty=P(),p=A!==F.isDirty);const V=xe(S(i,o),l);A=!!S(s.dirtyFields,o),V?Q(s.dirtyFields,o):M(s.dirtyFields,o,!0),F.dirtyFields=s.dirtyFields,p=p||(b.dirtyFields||g.dirtyFields)&&A!==!V}if(d){const V=S(s.touchedFields,o);V||(M(s.touchedFields,o,d),F.touchedFields=s.touchedFields,p=p||(b.touchedFields||g.touchedFields)&&V!==d)}p&&x&&m.state.next(F)}return p?F:{}},z=(o,l,d,v)=>{const x=S(s.errors,o),p=(b.isValid||g.isValid)&&de(l)&&s.isValid!==l;if(t.delayError&&d?(f=k(()=>N(o,d)),f(t.delayError)):(clearTimeout(y),f=null,d?M(s.errors,o,d):Q(s.errors,o)),(d?!xe(x,d):x)||!te(v)||p){const A={...v,...p&&de(l)?{isValid:l}:{},errors:s.errors,name:o};s={...s,...A},m.state.next(A)}},L=async o=>{R(o,!0);const l=await t.resolver(r,t.context,Ks(o||a.mount,n,t.criteriaMode,t.shouldUseNativeValidation));return R(o),l},ae=async o=>{const{errors:l}=await L(o);if(o)for(const d of o){const v=S(l,d);v?M(s.errors,d,v):Q(s.errors,d)}else s.errors=l;return l},q=async(o,l,d={valid:!0})=>{for(const v in o){const x=o[v];if(x){const{_f:p,...A}=x;if(p){const F=a.array.has(p.name),V=x._f&&Ws(x._f);V&&b.validatingFields&&R([v],!0);const ne=await Dt(x,a.disabled,r,w,t.shouldUseNativeValidation&&!l,F);if(V&&b.validatingFields&&R([v]),ne[p.name]&&(d.valid=!1,l))break;!l&&(S(ne,p.name)?F?Zs(s.errors,ne,p.name):M(s.errors,p.name,ne[p.name]):Q(s.errors,p.name))}!te(A)&&await q(A,l,d)}}return d.valid},I=()=>{for(const o of a.unMount){const l=S(n,o);l&&(l._f.refs?l._f.refs.every(d=>!Ge(d)):!Ge(l._f.ref))&&Be(o)}a.unMount=new Set},P=(o,l)=>!t.disabled&&(o&&l&&M(r,o,l),!xe(oe(),i)),E=(o,l,d)=>Rs(o,a,{...c.mount?r:K(l)?i:fe(o)?{[o]:l}:l},d,l),T=o=>ct(S(c.mount?r:i,o,t.shouldUnregister?S(i,o,[]):[])),O=(o,l,d={})=>{const v=S(n,o);let x=l;if(v){const p=v._f;p&&(!p.disabled&&M(r,o,Jt(l,p)),x=Ie(p.ref)&&Z(l)?"":l,Kt(p.ref)?[...p.ref.options].forEach(A=>A.selected=x.includes(A.value)):p.refs?Le(p.ref)?p.refs.forEach(A=>{(!A.defaultChecked||!A.disabled)&&(Array.isArray(x)?A.checked=!!x.find(F=>F===A.value):A.checked=x===A.value||!!x)}):p.refs.forEach(A=>A.checked=A.value===x):ut(p.ref)?p.ref.value="":(p.ref.value=x,p.ref.type||m.state.next({name:o,values:J(r)})))}(d.shouldDirty||d.shouldTouch)&&j(o,x,d.shouldTouch,d.shouldDirty,!0),d.shouldValidate&&se(o)},G=(o,l,d)=>{for(const v in l){if(!l.hasOwnProperty(v))return;const x=l[v],p=o+"."+v,A=S(n,p);(a.array.has(o)||H(x)||A&&!A._f)&&!Se(x)?G(p,x,d):O(p,x,d)}},Y=(o,l,d={})=>{const v=S(n,o),x=a.array.has(o),p=J(l);M(r,o,p),x?(m.array.next({name:o,values:J(r)}),(b.isDirty||b.dirtyFields||g.isDirty||g.dirtyFields)&&d.shouldDirty&&m.state.next({name:o,dirtyFields:_e(i,r),isDirty:P(o,p)})):v&&!v._f&&!Z(p)?G(o,p,d):O(o,p,d),Ft(o,a)&&m.state.next({...s,name:o}),m.state.next({name:c.mount?o:void 0,values:J(r)})},D=async o=>{c.mount=!0;const l=o.target;let d=l.name,v=!0;const x=S(n,d),p=V=>{v=Number.isNaN(V)||Se(V)&&isNaN(V.getTime())||xe(V,S(r,d,V))},A=Tt(t.mode),F=Tt(t.reValidateMode);if(x){let V,ne;const Ve=l.type?Et(x._f):Ds(o),pe=o.type===St.BLUR||o.type===St.FOCUS_OUT,ys=!zs(x._f)&&!t.resolver&&!S(s.errors,d)&&!x._f.deps||Ys(pe,S(s.touchedFields,d),s.isSubmitted,F,A),Ke=Ft(d,a,pe);M(r,d,Ve),pe?(x._f.onBlur&&x._f.onBlur(o),f&&f(0)):x._f.onChange&&x._f.onChange(o);const We=j(d,Ve,pe),gs=!te(We)||Ke;if(!pe&&m.state.next({name:d,type:o.type,values:J(r)}),ys)return(b.isValid||g.isValid)&&(t.mode==="onBlur"?pe&&C():pe||C()),gs&&m.state.next({name:d,...Ke?{}:We});if(!pe&&Ke&&m.state.next({...s}),t.resolver){const{errors:wt}=await L([d]);if(p(Ve),v){const bs=$t(s.errors,n,d),vt=$t(wt,n,bs.name||d);V=vt.error,d=vt.name,ne=te(wt)}}else R([d],!0),V=(await Dt(x,a.disabled,r,w,t.shouldUseNativeValidation))[d],R([d]),p(Ve),v&&(V?ne=!1:(b.isValid||g.isValid)&&(ne=await q(n,!0)));v&&(x._f.deps&&se(x._f.deps),z(d,ne,V,We))}},X=(o,l)=>{if(S(s.errors,l)&&o.focus)return o.focus(),1},se=async(o,l={})=>{let d,v;const x=Ee(o);if(t.resolver){const p=await ae(K(o)?o:x);d=te(p),v=o?!x.some(A=>S(p,A)):d}else o?(v=(await Promise.all(x.map(async p=>{const A=S(n,p);return await q(A&&A._f?{[p]:A}:A)}))).every(Boolean),!(!v&&!s.isValid)&&C()):v=d=await q(n);return m.state.next({...!fe(o)||(b.isValid||g.isValid)&&d!==s.isValid?{}:{name:o},...t.resolver||!o?{isValid:d}:{},errors:s.errors}),l.shouldFocus&&!v&&Te(n,X,o?x:a.mount),v},oe=o=>{const l={...c.mount?r:i};return K(o)?l:fe(o)?S(l,o):o.map(d=>S(l,d))},De=(o,l)=>({invalid:!!S((l||s).errors,o),isDirty:!!S((l||s).dirtyFields,o),error:S((l||s).errors,o),isValidating:!!S(s.validatingFields,o),isTouched:!!S((l||s).touchedFields,o)}),Ce=o=>{o&&Ee(o).forEach(l=>Q(s.errors,l)),m.state.next({errors:o?s.errors:{}})},mt=(o,l,d)=>{const v=(S(n,o,{_f:{}})._f||{}).ref,x=S(s.errors,o)||{},{ref:p,message:A,type:F,...V}=x;M(s.errors,o,{...V,...l,ref:v}),m.state.next({name:o,errors:s.errors,isValid:!1}),d&&d.shouldFocus&&v&&v.focus&&v.focus()},ls=(o,l)=>le(o)?m.state.subscribe({next:d=>"values"in d&&o(E(void 0,l),d)}):E(o,l,!0),ht=o=>m.state.subscribe({next:l=>{Js(o.name,l.name,o.exact)&&Gs(l,o.formState||b,hs,o.reRenderRoot)&&o.callback({values:{...r},...s,...l,defaultValues:i})}}).unsubscribe,us=o=>(c.mount=!0,g={...g,...o.formState},ht({...o,formState:g})),Be=(o,l={})=>{for(const d of o?Ee(o):a.mount)a.mount.delete(d),a.array.delete(d),l.keepValue||(Q(n,d),Q(r,d)),!l.keepError&&Q(s.errors,d),!l.keepDirty&&Q(s.dirtyFields,d),!l.keepTouched&&Q(s.touchedFields,d),!l.keepIsValidating&&Q(s.validatingFields,d),!t.shouldUnregister&&!l.keepDefaultValue&&Q(i,d);m.state.next({values:J(r)}),m.state.next({...s,...l.keepDirty?{isDirty:P()}:{}}),!l.keepIsValid&&C()},yt=({disabled:o,name:l})=>{(de(o)&&c.mount||o||a.disabled.has(l))&&(o?a.disabled.add(l):a.disabled.delete(l))},He=(o,l={})=>{let d=S(n,o);const v=de(l.disabled)||de(t.disabled);return M(n,o,{...d||{},_f:{...d&&d._f?d._f:{ref:{name:o}},name:o,mount:!0,...l}}),a.mount.add(o),d?yt({disabled:de(l.disabled)?l.disabled:t.disabled,name:o}):$(o,!0,l.value),{...v?{disabled:l.disabled||t.disabled}:{},...t.progressive?{required:!!l.required,min:Ne(l.min),max:Ne(l.max),minLength:Ne(l.minLength),maxLength:Ne(l.maxLength),pattern:Ne(l.pattern)}:{},name:o,onChange:D,onBlur:D,ref:x=>{if(x){He(o,l),d=S(n,o);const p=K(x.value)&&x.querySelectorAll&&x.querySelectorAll("input,select,textarea")[0]||x,A=Bs(p),F=d._f.refs||[];if(A?F.find(V=>V===p):p===d._f.ref)return;M(n,o,{_f:{...d._f,...A?{refs:[...F.filter(Ge),p,...Array.isArray(S(i,o))?[{}]:[]],ref:{type:p.type,name:o}}:{ref:p}}}),$(o,!1,void 0,p)}else d=S(n,o,{}),d._f&&(d._f.mount=!1),(t.shouldUnregister||l.shouldUnregister)&&!(Ps(a.array,o)&&c.action)&&a.unMount.add(o)}}},Qe=()=>t.shouldFocusError&&Te(n,X,a.mount),ds=o=>{de(o)&&(m.state.next({disabled:o}),Te(n,(l,d)=>{const v=S(n,d);v&&(l.disabled=v._f.disabled||o,Array.isArray(v._f.refs)&&v._f.refs.forEach(x=>{x.disabled=v._f.disabled||o}))},0,!1))},gt=(o,l)=>async d=>{let v;d&&(d.preventDefault&&d.preventDefault(),d.persist&&d.persist());let x=J(r);if(m.state.next({isSubmitting:!0}),t.resolver){const{errors:p,values:A}=await L();s.errors=p,x=J(A)}else await q(n);if(a.disabled.size)for(const p of a.disabled)Q(x,p);if(Q(s.errors,"root"),te(s.errors)){m.state.next({errors:{}});try{await o(x,d)}catch(p){v=p}}else l&&await l({...s.errors},d),Qe(),setTimeout(Qe);if(m.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:te(s.errors)&&!v,submitCount:s.submitCount+1,errors:s.errors}),v)throw v},fs=(o,l={})=>{S(n,o)&&(K(l.defaultValue)?Y(o,J(S(i,o))):(Y(o,l.defaultValue),M(i,o,J(l.defaultValue))),l.keepTouched||Q(s.touchedFields,o),l.keepDirty||(Q(s.dirtyFields,o),s.isDirty=l.defaultValue?P(o,J(S(i,o))):P()),l.keepError||(Q(s.errors,o),b.isValid&&C()),m.state.next({...s}))},bt=(o,l={})=>{const d=o?J(o):i,v=J(d),x=te(o),p=x?i:v;if(l.keepDefaultValues||(i=d),!l.keepValues){if(l.keepDirtyValues){const A=new Set([...a.mount,...Object.keys(_e(i,r))]);for(const F of Array.from(A))S(s.dirtyFields,F)?M(p,F,S(r,F)):Y(F,S(p,F))}else{if(ot&&K(o))for(const A of a.mount){const F=S(n,A);if(F&&F._f){const V=Array.isArray(F._f.refs)?F._f.refs[0]:F._f.ref;if(Ie(V)){const ne=V.closest("form");if(ne){ne.reset();break}}}}if(l.keepFieldsRef)for(const A of a.mount)Y(A,S(p,A));else n={}}r=t.shouldUnregister?l.keepDefaultValues?J(i):{}:J(p),m.array.next({values:{...p}}),m.state.next({values:{...p}})}a={mount:l.keepDirtyValues?a.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},c.mount=!b.isValid||!!l.keepIsValid||!!l.keepDirtyValues,c.watch=!!t.shouldUnregister,m.state.next({submitCount:l.keepSubmitCount?s.submitCount:0,isDirty:x?!1:l.keepDirty?s.isDirty:!!(l.keepDefaultValues&&!xe(o,i)),isSubmitted:l.keepIsSubmitted?s.isSubmitted:!1,dirtyFields:x?{}:l.keepDirtyValues?l.keepDefaultValues&&r?_e(i,r):s.dirtyFields:l.keepDefaultValues&&o?_e(i,o):l.keepDirty?s.dirtyFields:{},touchedFields:l.keepTouched?s.touchedFields:{},errors:l.keepErrors?s.errors:{},isSubmitSuccessful:l.keepIsSubmitSuccessful?s.isSubmitSuccessful:!1,isSubmitting:!1})},pt=(o,l)=>bt(le(o)?o(r):o,l),ms=(o,l={})=>{const d=S(n,o),v=d&&d._f;if(v){const x=v.refs?v.refs[0]:v.ref;x.focus&&(x.focus(),l.shouldSelect&&le(x.select)&&x.select())}},hs=o=>{s={...s,...o}},xt={control:{register:He,unregister:Be,getFieldState:De,handleSubmit:gt,setError:mt,_subscribe:ht,_runSchema:L,_focusError:Qe,_getWatch:E,_getDirty:P,_setValid:C,_setFieldArray:re,_setDisabledField:yt,_setErrors:W,_getFieldArray:T,_reset:bt,_resetDefaultValues:()=>le(t.defaultValues)&&t.defaultValues().then(o=>{pt(o,t.resetOptions),m.state.next({isLoading:!1})}),_removeUnmounted:I,_disableForm:ds,_subjects:m,_proxyFormState:b,get _fields(){return n},get _formValues(){return r},get _state(){return c},set _state(o){c=o},get _defaultValues(){return i},get _names(){return a},set _names(o){a=o},get _formState(){return s},get _options(){return t},set _options(o){t={...t,...o}}},subscribe:us,trigger:se,register:He,handleSubmit:gt,watch:ls,setValue:Y,getValues:oe,reset:pt,resetField:fs,clearErrors:Ce,unregister:Be,setError:mt,setFocus:ms,getFieldState:De};return{...xt,formControl:xt}}function Xt(e={}){const t=h.useRef(void 0),s=h.useRef(void 0),[n,i]=h.useState({isDirty:!1,isValidating:!1,isLoading:le(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:le(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:n},e.defaultValues&&!le(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:c,...a}=tr(e);t.current={...a,formState:n}}const r=t.current.control;return r._options=e,Us(()=>{const c=r._subscribe({formState:r._proxyFormState,callback:()=>i({...r._formState}),reRenderRoot:!0});return i(a=>({...a,isReady:!0})),r._formState.isReady=!0,c},[r]),h.useEffect(()=>r._disableForm(e.disabled),[r,e.disabled]),h.useEffect(()=>{e.mode&&(r._options.mode=e.mode),e.reValidateMode&&(r._options.reValidateMode=e.reValidateMode)},[r,e.mode,e.reValidateMode]),h.useEffect(()=>{e.errors&&(r._setErrors(e.errors),r._focusError())},[r,e.errors]),h.useEffect(()=>{e.shouldUnregister&&r._subjects.state.next({values:r._getWatch()})},[r,e.shouldUnregister]),h.useEffect(()=>{if(r._proxyFormState.isDirty){const c=r._getDirty();c!==n.isDirty&&r._subjects.state.next({isDirty:c})}},[r,n.isDirty]),h.useEffect(()=>{e.values&&!xe(e.values,s.current)?(r._reset(e.values,{keepFieldsRef:!0,...r._options.resetOptions}),s.current=e.values,i(c=>({...c}))):r._resetDefaultValues()},[r,e.values]),h.useEffect(()=>{r._state.mount||(r._setValid(),r._state.mount=!0),r._state.watch&&(r._state.watch=!1,r._subjects.state.next({...r._formState})),r._removeUnmounted()}),t.current.formState=Os(n,r),t.current}const sr=e=>{const{t}=_.useTranslation(),{showStackNotifications:s,showSuccessNotification:n}=ve(),{defaultValues:i,mutationFn:r,formToDto:c,onError:a,onSuccess:f,queryKey:y,onSuccessMessage:b}=e,{control:g,handleSubmit:m,reset:w,setError:k,getValues:C,setValue:R}=Xt({defaultValues:i}),re=h.useCallback($=>{const j=$==null?void 0:$.errors,z=[];return j&&j.forEach(([L,ae])=>{const q=document.querySelector(`[name="${L}"]`);(q instanceof HTMLInputElement||q instanceof HTMLTextAreaElement||q instanceof HTMLSelectElement)&&(q.focus(),q.classList.add("error"),z.push(t(`_entities:${y}.${L}.${ae}`)))}),z},[t,y]),N=h.useCallback(()=>{document.querySelectorAll("input, textarea, select").forEach(j=>{j.classList.remove("error")})},[]),W=we.useMutation({mutationFn:r,onError:$=>{console.error($);const j=$;if(a)a($);else if(je(j)){const z=re(j);s(z.map(L=>({message:L,type:U.error})))}else if(Fe(j)){const z=j.message||t("_accessibility:errors.500"),L=t(`_accessibility:errors.${j.status}`);s([{message:L||z,type:U.error}])}},onSuccess:async $=>{he&&await he.invalidateQueries({queryKey:y}),f&&f($),b&&n({message:b})}});return{control:g,getValues:C,setValue:R,handleSubmit:m,onSubmit:$=>W.mutate(c?c($):$),reset:w,setError:k,parseFormError:re,releaseFormError:N,isLoading:W.isPending}},Zt=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:i=!1}=e;return{action:h.useCallback(c=>({id:be.Delete,hidden:!!c.deletedAt||n,disabled:!!c.deletedAt||i,icon:u.jsx(ie.FontAwesomeIcon,{className:"text-red-500",icon:B.faTrash}),tooltip:t("_pages:common.actions.delete.text"),onClick:()=>s([c==null?void 0:c.id]),onMultipleClick:a=>s(a.map(f=>f.id)),multiple:!0}),[i,n,s,t])}},es=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1}=e;return{action:h.useCallback(r=>({id:be.Restore,hidden:!r.deletedAt||n,disabled:!r.deletedAt,icon:u.jsx(ie.FontAwesomeIcon,{className:"text-red-500",icon:B.faRotateLeft}),tooltip:t("_pages:common.actions.restore.text"),onClick:()=>s([r==null?void 0:r.id]),onMultipleClick:c=>s(c.map(a=>a.id)),multiple:!0}),[n,s,t])}},rr=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1}=e;return{action:h.useCallback(r=>({id:be.Edit,hidden:!!r.deletedAt||n,disabled:!!r.deletedAt,icon:u.jsx(ie.FontAwesomeIcon,{className:"primary",icon:B.faPencil}),tooltip:t("_pages:common.actions.edit.text"),onClick:()=>s(r==null?void 0:r.id)}),[n,s,t])}};var be=(e=>(e.Add="add",e.Edit="edit",e.Delete="delete",e.Restore="restore",e.Refresh="refresh",e.Export="export",e.Import="import",e))(be||{});const ts=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:i=!1,isLoading:r=!1}=e;return{action:h.useCallback(()=>({id:be.Export,hidden:n,disabled:i,icon:u.jsx(ie.FontAwesomeIcon,{className:`${r?"rotate":""}`,icon:r?B.faCircleNotch:B.faCloudArrowDown}),tooltip:t("_pages:common.actions.export.text"),onClick:s}),[i,n,r,s,t])}},ss=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:i=!1,isLoading:r=!1}=e;return{action:h.useCallback(()=>({id:be.Import,hidden:n,disabled:i,icon:u.jsx(ie.FontAwesomeIcon,{className:`${r?"rotate":""}`,icon:r?B.faCircleNotch:B.faCloudUpload}),tooltip:t("_pages:common.actions.import.text"),onClick:s}),[i,n,r,s,t])}},nr=e=>{const{queryKey:t,onSuccess:s,...n}=e,{showStackNotifications:i}=ve(),{t:r}=_.useTranslation(),{open:c,onClick:a,close:f,dialogFn:y,isLoading:b}=at({onSuccessMessage:r("_pages:common.actions.delete.successMessage"),onError:m=>{const w=m;if(je(w))i(w.errors.map(([k,C])=>({message:r(`_pages:${k}.errors.${C}`),type:U.error})));else if(Fe(w)){const k=w.message||r("_accessibility:errors.500"),C=r(`_accessibility:errors.${w.status}`);i([{message:C||k,type:U.error}])}},onSuccess:async m=>{await he.invalidateQueries({queryKey:t}),s&&s(m)},...n}),{action:g}=Zt({onClick:a});return{onClick:a,title:r("_pages:common.actions.delete.dialog.title"),open:c,isLoading:b,handleSubmit:()=>y.mutate(),handleClose:f,action:g}},ft=()=>{const[e,t]=h.useState(!1);return{open:e,setOpen:t,handleClose:()=>t(!1),handleOpen:()=>t(!0)}},ir=e=>{const{t}=_.useTranslation(),{showErrorNotification:s,showStackNotifications:n,showSuccessNotification:i}=ve(),{defaultValues:r,getFunction:c,mutationFn:a,formToDto:f,dtoToForm:y,onError:b,onSuccess:g,queryKey:m,onSuccessMessage:w,title:k}=e,[C,R]=h.useState(0),{open:re,handleClose:N,handleOpen:W}=ft(),{control:$,handleSubmit:j,reset:z,setError:L,getValues:ae,setValue:q}=Xt({defaultValues:r}),{data:I,isLoading:P}=we.useQuery({queryFn:()=>c==null?void 0:c(C),queryKey:[...m,C],enabled:!!c&&!!m&&!!C});h.useEffect(()=>{I&&y&&z({...y(I)})},[I]);const E=h.useCallback(D=>{const X=D==null?void 0:D.errors,se=[];return X&&X.forEach(([oe,De])=>{const Ce=document.querySelector(`[name="${oe}"]`);(Ce instanceof HTMLInputElement||Ce instanceof HTMLTextAreaElement||Ce instanceof HTMLSelectElement)&&(Ce.focus(),Ce.classList.add("error"),se.push(t(`_entities:${m}.${oe}.${De}`)))}),se},[t,m]),T=h.useCallback(()=>{document.querySelectorAll("input, textarea, select").forEach(X=>{X.classList.remove("error")})},[]),O=h.useCallback(D=>{R(D??0),W()},[W]),G=h.useCallback(()=>{T(),N(),z()},[z,T,N]),Y=we.useMutation({mutationFn:a,onError:D=>{if(console.error(D),b)b(D);else{const X=D;if(je(X)){const se=E(X);n(se.map(oe=>({message:oe,type:U.error})))}else if(Fe(X)){const se=X.message||t("_accessibility:errors.500"),oe=t(`_accessibility:errors.${X.status}`);s({message:oe||se})}else s({message:t("_accessibility:errors.500")})}},onSuccess:async D=>{await he.invalidateQueries({queryKey:m}),g&&g(D),i({message:w}),G()}});return{open:re,openDialog:O,handleClose:G,control:$,getValues:ae,setValue:q,handleSubmit:j,onSubmit:D=>Y.mutate(f?f(D):D),reset:z,setError:L,parseFormError:E,releaseFormError:T,title:k,isLoading:P||Y.isPending}},ar=e=>{const{queryKey:t,onSuccess:s,...n}=e,{showStackNotifications:i}=ve(),{t:r}=_.useTranslation(),{open:c,onClick:a,close:f,dialogFn:y,isLoading:b}=at({onSuccessMessage:r("_pages:common.actions.restore.successMessage"),onError:m=>{const w=m;if(je(w))i(w.errors.map(([k,C])=>({message:r(`_pages:${k}.errors.${C}`),type:U.error})));else if(Fe(w)){const k=w.message||r("_accessibility:errors.500"),C=r(`_accessibility:errors.${w.status}`);i([{message:C||k,type:U.error}])}},onSuccess:async m=>{await he.invalidateQueries({queryKey:t}),s&&s(m)},...n}),{action:g}=es({onClick:a});return{onClick:a,title:r("_pages:common.actions.restore.dialog.title"),open:c,isLoading:b,handleSubmit:()=>y.mutate(),handleClose:f,action:g}};function or(e){const{t}=_.useTranslation(),{queryKey:s,mutationFn:n,entity:i,fileProcessor:r,onError:c}=e,[a,f]=h.useState(!1),[y,b]=h.useState(null),[g,m]=h.useState(!1),w=we.useMutation({mutationFn:n,onError:C=>{console.error(C),c==null||c(C)},onSuccess:async()=>{he&&await he.invalidateQueries({queryKey:s})}}),{action:k}=ss({onClick:()=>f(!0)});return{handleSubmit:async()=>{if(!(!y||y.length===0))try{await w.mutateAsync({items:y,override:g}),f(!1),b(null),m(!1)}catch(C){console.error(C)}},isLoading:w.isPending,fileProcessor:r,onFileProcessed:C=>b(C),onOverrideChange:C=>m(C),open:a,title:t("_pages:common.actions.import.dialog.title",{entity:t(`_pages:${i}.title`)}),handleClose:()=>{f(!1),b(null)},action:k}}const cr=e=>{const{showSuccessNotification:t}=ve(),{t:s}=_.useTranslation(),{entity:n,mutationFn:i,onError:r,onSuccess:c,onSuccessMessage:a=s("_pages:common.actions.export.successMessage")}=e,f=we.useMutation({mutationFn:()=>i(),onError:g=>{console.error(g),r&&r(g)},onSuccess:async g=>{const m=JSON.stringify(g,null,2),w=new Blob([m],{type:"application/json"}),k=URL.createObjectURL(w),C=document.createElement("a");C.href=k,C.download=`${n}.json`,C.click(),URL.revokeObjectURL(k),c&&c(g),t({message:a})}}),y=h.useCallback(()=>{f.mutate()},[f]),{action:b}=ts({onClick:y,isLoading:f.isPending});return{action:b}};function rs(e){const[t,s]=h.useState(!1),n=h.useCallback(()=>{const i=window.scrollY>e;s(i)},[e]);return h.useEffect(()=>(window.addEventListener("scroll",n),()=>{window.removeEventListener("scroll",n)}),[n]),t}const lr=()=>{const{t:e}=_.useTranslation(),t=rs(200);return u.jsx(me,{icon:B.faArrowUp,onClick:()=>Ss.scrollTo(0,0),"data-tooltip-id":"tooltip","data-tooltip-content":e("_accessibility:buttons.toTop"),className:`submit primary to-top ${t?"show":"hide"}`})},ns=e=>{const{actions:t=[],className:s=""}=e,{t:n}=_.useTranslation(),[i,r]=h.useState(!1);return u.jsxs("div",{className:`actions-dropdown ${s}`,children:[u.jsx(me,{icon:B.faEllipsisV,onClick:()=>r(!0),"data-tooltip-id":"tooltip","data-tooltip-content":n("_accessibility:buttons.openActions")}),u.jsx(Pt,{open:i,onClose:()=>r(!1),children:u.jsx(tt,{showActionTexts:!0,actions:t,className:"flex-col",showTooltips:!1})})]})},ur=h.forwardRef(function(e,t){const{value:s,onChange:n,state:i=_.State.default,name:r="",id:c="",label:a="",disabled:f=!1,required:y=!1,containerClassName:b="",inputClassName:g="",labelClassName:m="",helperText:w="",helperTextClassName:k="",...C}=e;return u.jsxs("div",{className:`relative z-0 w-full mb-5 group ${b}`,children:[u.jsx("textarea",{ref:t,name:r,id:c,className:`text-input text-area ${_.inputStateClassName(i)} ${g} peer`,required:y,value:s,onChange:n,disabled:f,...C}),u.jsxs("label",{htmlFor:r,className:`text-input-label ${_.labelStateClassName(i)} ${m}`,children:[a,y?" *":""]}),!!w&&u.jsx("p",{className:`text-input-helper-text ${_.helperTextStateClassName(i)} ${k}`,children:w})]})}),dr=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,onSubmit:i,isLoading:r=!1,buttonEnd:c=!0,reset:a}=e;return u.jsxs("form",{className:"form-container",onSubmit:n(i),children:[s,u.jsxs("div",{className:`flex gap-2 mt-5 ${c?"justify-end":""}`,children:[u.jsxs(ge,{type:"submit",color:"primary",variant:"submit",disabled:r,name:t("_accessibility:buttons.submit"),"aria-label":t("_accessibility:ariaLabels.submit"),children:[r?u.jsx(_.Loading,{color:"stroke-base",loaderClass:"!w-6 mt-1",strokeWidth:"6"}):null,t("_accessibility:buttons.submit")]}),u.jsx(ge,{type:"button",variant:"outlined",onClick:()=>a==null?void 0:a(),name:t("_accessibility:buttons.cancel"),"aria-label":t("_accessibility:ariaLabels.cancel"),children:t("_accessibility:buttons.cancel")})]})]})},fr=h.forwardRef(function(e,t){const[s,n]=h.useState(!1);return u.jsx(_.TextInput,{...e,type:s?"text":"password",ref:t,children:u.jsx(me,{type:"button",tabIndex:-1,className:"absolute right-2 password-icon",onClick:()=>n(!s),icon:s?B.faEyeSlash:B.faEye})})}),Re=e=>{const{t}=_.useTranslation(),{title:s,children:n,handleClose:i,open:r=!1,containerClassName:c="",className:a="",animationClass:f="appear"}=e,[y,b]=h.useState(window.innerWidth),g=h.useCallback(C=>{C.key==="Escape"&&r&&i()},[r,i]);h.useEffect(()=>(window.addEventListener("keydown",g),()=>{window.removeEventListener("keydown",g)}),[g]);const m=h.useCallback(()=>{b(window.innerWidth)},[]);h.useEffect(()=>(window.addEventListener("resize",m),()=>{window.removeEventListener("resize",m)}),[m]);const w=h.useMemo(()=>ws.css({width:`${y}px`}),[y]),k=h.useCallback(C=>{var R;((R=C==null?void 0:C.currentTarget)==null?void 0:R.getAttribute("name"))===t("_accessibility:buttons.closeDialog")&&i()},[t,i]);return h.useEffect(()=>{const C=R=>{R?document.body.style.overflow="hidden":document.body.style.overflow="auto"};return C(r),()=>{C(r)}},[r]),Vt.createPortal(u.jsx("div",{"aria-label":t("_accessibility:ariaLabels.closeDialog"),"aria-disabled":!r,onClick:k,className:`dialog-backdrop animated ${r?`opened ${f}`:"closed"} ${w} h-screen ${r?"bg-base/20 backdrop-blur-xl":"pointer-events-none"} ${c}`,children:u.jsxs("div",{className:`dialog elevated animated ${r?`opened ${f}`:"closed"} ${a}`,children:[u.jsxs("div",{className:"dialog-header",children:[u.jsx("h3",{className:"text-text text-xl",children:s}),u.jsx(me,{icon:B.faClose,disabled:!r,"aria-disabled":!r,onClick:i,className:"icon-button text-red-400",name:t("_accessibility:buttons.closeDialog"),"aria-label":t("_accessibility:ariaLabels.closeDialog")})]}),n]})}),document.body)},qe=e=>{const{primaryText:t,cancelText:s,onPrimaryClick:n,onCancel:i,isLoading:r=!1,disabled:c=!1,primaryType:a="submit",containerClassName:f="",primaryClassName:y="",alignEnd:b=!1,primaryName:g,primaryAriaLabel:m,cancelName:w,cancelAriaLabel:k}=e;return u.jsxs("div",{className:`flex gap-2 mt-2 ${b?"justify-end":""} ${f}`,children:[u.jsxs(ge,{type:a,color:"primary",variant:"submit",className:y,disabled:c,onClick:a==="button"?n:void 0,name:g,"aria-label":m,children:[r?u.jsx(_.Loading,{color:"stroke-base",loaderClass:"!w-6 mt-1",strokeWidth:"6"}):null,t]}),u.jsx(ge,{type:"button",variant:"outlined",disabled:c,onClick:i,name:w,"aria-label":k,children:s})]})},mr=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,onSubmit:i,handleClose:r,isLoading:c=!1,buttonEnd:a=!0,...f}=e;return u.jsx(Re,{...f,handleClose:r,children:u.jsxs("form",{onSubmit:n(i),children:[u.jsx("div",{className:"form-container",children:s}),u.jsx(qe,{primaryType:"submit",primaryText:t("_accessibility:buttons.submit"),cancelText:t("_accessibility:buttons.cancel"),onCancel:r,isLoading:c,disabled:c,primaryClassName:"!px-6",alignEnd:a,primaryName:t("_accessibility:buttons.submit"),primaryAriaLabel:t("_accessibility:ariaLabels.submit"),cancelName:t("_accessibility:buttons.cancel"),cancelAriaLabel:t("_accessibility:ariaLabels.cancel")})]})})},hr=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,handleClose:i,isLoading:r=!1,...c}=e;return u.jsxs(Re,{...c,handleClose:i,children:[s,u.jsx(qe,{primaryText:t("_accessibility:buttons.ok"),cancelText:t("_accessibility:buttons.cancel"),onPrimaryClick:n,onCancel:i,isLoading:r,disabled:r,primaryType:"button",containerClassName:"mt-5",primaryName:t("_accessibility:buttons.ok"),primaryAriaLabel:t("_accessibility:ariaLabels.ok"),cancelName:t("_accessibility:buttons.cancel"),cancelAriaLabel:t("_accessibility:ariaLabels.cancel")})]})};function yr(e){const{message:t,className:s=""}=e,{t:n}=_.useTranslation();return t?u.jsx("p",{className:`text-red-600 text-sm mt-2 ${s}`,children:t||n("_messages:errors.parseFile",{defaultValue:"Failed to process file"})}):null}function gr(e){const{message:t,className:s=""}=e,{t:n}=_.useTranslation();return u.jsxs("div",{className:`my-4 mx-auto flex items-center gap-3 text-sm text-gray-600 ${s}`,children:[u.jsx(_.Loading,{loaderClass:"w-5 h-5",className:"!w-auto"}),u.jsx("span",{children:t??n("_messages:loading.processingFile",{defaultValue:"Processing file..."})})]})}function br(e){const{items:t,max:s=5,className:n=""}=e,{t:i}=_.useTranslation();if(!t||t.length===0)return null;const r=t.slice(0,s);return u.jsxs("div",{className:`mt-4 ${n}`,children:[u.jsx("p",{className:"text-sm text-gray-600",children:i("_pages:common.actions.import.previewCount",{count:t.length,defaultValue:`Preview: ${t.length} items`})}),u.jsx("pre",{className:"mt-2 max-h-56 overflow-auto rounded bg-gray-100 p-3 text-xs",children:JSON.stringify(r,null,2)})]})}const pr=e=>{const{t}=_.useTranslation(),[s,n]=h.useState(null),[i,r]=h.useState(null),[c,a]=h.useState(null),[f,y]=h.useState(!1),[b,g]=h.useState(!1),{children:m,handleSubmit:w,handleClose:k,isLoading:C=!1,fileProcessor:R,onFileProcessed:re,onOverrideChange:N,open:W,...$}=e,[j,z]=h.useState(0),L=h.useRef(re),ae=h.useRef(R);h.useEffect(()=>{L.current=re},[re]),h.useEffect(()=>{ae.current=R},[R]),h.useEffect(()=>{W||(n(null),r(null),a(null),y(!1),g(!1),z(I=>I+1))},[W]);const q=h.useCallback(async()=>{var I;if(ae.current&&s){y(!0);try{const P=await ae.current(s,{override:b});r(P??[]),a(null),(I=L.current)==null||I.call(L,P??[])}catch(P){console.error(P),r(null);const E=P instanceof Error?P.message:"Failed to parse file";a(E)}y(!1)}},[s,b]);return h.useEffect(()=>{q()},[q]),u.jsxs(Re,{...$,open:W,handleClose:k,children:[u.jsx(_.FileInput,{onClear:()=>{var I;n(null),r(null),a(null),y(!1),(I=L.current)==null||I.call(L,[])},onChange:I=>{var E,T;const P=(E=I.target.files)==null?void 0:E[0];if(!P){n(null),r(null),a(null),y(!1),(T=L.current)==null||T.call(L,[]);return}n(P)},label:t("_accessibility:labels.file")},j),u.jsxs("label",{className:"mt-3 flex items-center gap-2 text-sm",children:[u.jsx("input",{type:"checkbox",checked:b,onChange:I=>{const P=I.target.checked;g(P),N==null||N(P)}}),u.jsx("span",{children:t("_pages:common.actions.import.override",{defaultValue:"Override existing items"})})]}),u.jsx(yr,{message:c??void 0}),f&&u.jsx(gr,{}),!!i&&i.length>0&&u.jsx(br,{items:i}),m,u.jsx(qe,{primaryText:t("_accessibility:buttons.ok"),cancelText:t("_accessibility:buttons.cancel"),onPrimaryClick:()=>{(!R||!!i&&i.length>0)&&w()},onCancel:k,isLoading:C,primaryType:"button",containerClassName:"mt-5",primaryName:t("_accessibility:buttons.ok"),primaryAriaLabel:t("_accessibility:ariaLabels.ok"),cancelName:t("_accessibility:buttons.cancel"),cancelAriaLabel:t("_accessibility:ariaLabels.cancel")})]})};function xr(e){const{t}=_.useTranslation(),{open:s,onClose:n,menuMap:i,logo:r}=e,{account:c}=it(),{linkComponent:a}=$e(),f=a,y=h.useMemo(()=>i.filter(g=>{const m=g.auth,w=!!(c!=null&&c.email);return m==null||m&&w||!m&&!w}),[c]),b=h.useCallback(g=>{g.key==="Escape"&&s&&n()},[n,s]);return h.useEffect(()=>(document.addEventListener("keydown",b),()=>{document.removeEventListener("keydown",b)}),[b]),u.jsx("div",{"aria-label":t("_accessibility:ariaLabels.closeMenu"),"aria-disabled":!s,className:`${s?"opened":"closed"} drawer-backdrop`,onClick:()=>n(),children:u.jsxs("aside",{className:`${s?"opened":"closed"} drawer animated`,children:[u.jsxs("div",{className:"drawer-header-container",children:[r,u.jsx("h2",{className:"drawer-header poppins",children:t("_pages:home.appName")})]}),u.jsx("ul",{className:"flex flex-col",children:y.map((g,m)=>u.jsx("li",{className:`drawer-list-item ${g.path===location.pathname?"active":""} animated`,children:g.type!=="divider"&&f?u.jsxs(f,{"aria-disabled":!s,to:g.path??`/${g.path}`,"aria-label":t(`_accessibility:ariaLabels.${g.path}`),className:"drawer-link",children:[g.icon,t(`_pages:${g.page}.title`)]}):u.jsx("hr",{className:"drawer-divider"})},`${g.page??m}`))})]})})}function wr(e){const{error:t}=e,{t:s}=_.useTranslation();return u.jsxs("div",{className:"flex flex-col items-center justify-center pt-10 gap-5",children:[u.jsx(ie.FontAwesomeIcon,{icon:vs.faSadTear,className:"text-red-300 text-4xl"}),u.jsx("p",{className:"text-text text-center",children:(t==null?void 0:t.message)??s("_accessibility:errors.unknownError")})]})}const vr=e=>{const{showBackButton:t,title:s,actions:n}=e,{t:i}=_.useTranslation(),{navigate:r}=$e();return u.jsxs("div",{className:"page-header",children:[u.jsxs("div",{className:"flex gap-2 items-center justify-start",children:[t&&u.jsx(me,{icon:B.faArrowLeft,onClick:()=>r(-1),name:i("_accessibility:buttons.back"),"data-tooltip-id":"tooltip","data-tooltip-content":i("_accessibility:buttons.back")}),u.jsx("h2",{className:"text-3xl font-bold",children:s})]}),u.jsxs("div",{children:[u.jsx(tt,{className:"max-xs:!hidden",actions:n??[]}),u.jsx(ns,{className:"min-xs:hidden",actions:n??[]})]})]})},Cr=e=>{const{title:t,children:s,addOptions:n,filterOptions:i,actions:r,queryKey:c,isLoading:a=!1,isAnimated:f=!0,showBackButton:y=!1}=e,{t:b}=_.useTranslation(),{countOfFilters:g}=_.useTableOptions(),m=h.useMemo(()=>{const w=Array.isArray(r)?[...r]:[];if(c){const k={id:be.Refresh,onClick:()=>he.invalidateQueries({queryKey:c}),icon:u.jsx(ie.FontAwesomeIcon,{icon:B.faRotateLeft}),tooltip:b("_pages:common.actions.refresh.text")};w.unshift(k)}if(n){const k={...n,id:be.Add,icon:u.jsx(ie.FontAwesomeIcon,{icon:B.faAdd})};w.unshift(k)}if(i){const k={...i,id:"filter",icon:u.jsx(ie.FontAwesomeIcon,{icon:B.faFilter}),children:u.jsx(_.Badge,{className:`${g>0?"show":"hide"} `,count:g})};w.push(k)}return w},[r,n,g,i,c,b]);return u.jsxs("main",{className:"",children:[u.jsxs("div",{className:"flex flex-col",children:[u.jsx(vr,{showBackButton:y,actions:m,title:t}),u.jsx("div",{className:`px-5 py-3 h-useConfigfull ${f?"appear":""}`,children:a?u.jsx(_.Loading,{className:"flex justify-center items-center h-50"}):s})]}),u.jsx(me,{icon:B.faAdd,color:"primary",variant:"submit",onClick:()=>{var w;return(w=n==null?void 0:n.onClick)==null?void 0:w.call(n)},className:"button fab min-xs:!hidden"})]})},Sr=e=>{const{t}=_.useTranslation(),{loading:s=!1,emptyComponent:n=null,emptyMessage:i=t("_accessibility:messages.empty"),renderComponent:r,data:c=[]}=e;return u.jsx(u.Fragment,{children:c!=null&&c.length?u.jsx("ul",{className:"pretty-grid-main",children:c==null?void 0:c.map(a=>u.jsx("li",{className:"pretty-grid-item",children:r(a)},a.id))}):u.jsx(u.Fragment,{children:n||u.jsx(cs,{message:i})})})},kr=()=>{const[e,t]=h.useState(Xe());return h.useEffect(()=>{const s=setInterval(()=>{t(Xe())},1e3);return()=>clearInterval(s)},[]),u.jsx("p",{className:"capitalize max-xs:hidden",children:e})};function Ar(e){const{t}=_.useTranslation(),{openDrawer:s}=e,{searchComponent:n}=$e(),[i,r]=h.useState(!1),c=h.useCallback(f=>{(Ot()?f.metaKey:f.ctrlKey)&&f.shiftKey&&f.key.toLowerCase()==="f"&&(r(!0),f.preventDefault())},[]);h.useEffect(()=>(window.addEventListener("keydown",c),()=>{window.removeEventListener("keydown",c)}),[c]);const a=n;return u.jsxs(u.Fragment,{children:[location.pathname!=="/"&&!!a&&u.jsx(a,{open:i,onClose:()=>r(!1)}),u.jsxs("header",{id:"header",className:"header",children:[u.jsxs("div",{className:"flex gap-2 items-center",children:[u.jsx(me,{type:"button",icon:B.faBars,onClick:s,name:t("_accessibility:buttons.openMenu"),"aria-label":t("_accessibility:ariaLabels.openMenu"),className:"menu animated"}),u.jsx("h1",{className:"text-lg text-text pointer-events-none poppins font-bold",children:t("_pages:home.appName")})]}),u.jsxs("div",{className:"flex items-center justify-end gap-2",children:[u.jsx(me,{icon:B.faSearch,className:"min-xs:!hidden",onClick:()=>r(!0)}),u.jsx(kr,{})]})]})]})}function _r(){const{t:e}=_.useTranslation(),{notification:t,removeNotification:s}=ve(),[n,i]=h.useState(new Set),r=h.useCallback(b=>{if(b===void 0){const g=new Set(t.map((m,w)=>w));i(g),window.setTimeout(()=>s(),300)}else i(g=>new Set(g).add(b)),window.setTimeout(()=>s(b),300)},[t,s]),c=h.useCallback(b=>{switch(b){case U.error:return B.faWarning;default:return B.faCircleCheck}},[]),a=h.useCallback(b=>{switch(b){case U.success:return"!text-success";case U.error:return"!text-error";case U.warning:return"!text-warning";default:return"!text-info"}},[]),f=h.useCallback(b=>{switch(b){case U.success:return"bg-bg-success";case U.error:return"bg-bg-error";case U.warning:return"bg-bg-warning";default:return"bg-bg-info"}},[]),y=h.useRef();return h.useEffect(()=>{y.current=()=>r()},[r]),h.useEffect(()=>{if(!(t!=null&&t.length))return;const b=g=>{var m;return(m=y.current)==null?void 0:m.call(y,g)};return window.addEventListener("click",b),()=>{window.removeEventListener("click",b)}},[t==null?void 0:t.length]),h.useEffect(()=>{i(new Set)},[t]),Vt.createPortal(u.jsx("div",{className:`notification-portal ${t!=null&&t.length?"w-screen h-screen":""}`,children:t!=null&&t.length?t==null?void 0:t.map(({id:b,type:g,message:m},w)=>u.jsxs("div",{className:`notification ${n.has(w)?"closing":""} ${f(g??U.error)}`,onClick:k=>k.stopPropagation(),children:[u.jsxs("div",{className:"flex gap-3 items-center",children:[u.jsx(ie.FontAwesomeIcon,{icon:c(g??U.error),className:`${a(g??U.error)}`}),u.jsx("p",{className:`whitespace-nowrap ${a(g??U.error)}`,children:m})]}),u.jsx(me,{type:"button",icon:B.faClose,color:"error",className:"group",onClick:k=>{k.stopPropagation(),r(w)},iconClassName:`${a(g??U.error)} group-hover:!text-red-400 cursor-pointer`,name:e("_accessibility:buttons.closeNotification"),"aria-label":e("_accessibility:ariaLabels.closeNotification")})]},b)):null}),document.body)}function Nr(){return u.jsx("div",{className:"w-screen h-screen flex items-center justify-center overflow-hidden",children:u.jsx(_.Loading,{className:"blur-appear"})})}const is=e=>{const{id:t,active:s,onClick:n,children:i,to:r}=e,{linkComponent:c}=$e(),a=c;return u.jsx(a,{to:r??`#${t}`,onClick:()=>n(),className:`button submit tab ${s?"primary":"outlined"}`,children:i})},as=e=>{var f;const{tabs:t=[],defaultTab:s,className:n="",tabsContainerClassName:i=""}=e,[r,c]=h.useState((f=t[0])==null?void 0:f.id),a=h.useMemo(()=>t.find(y=>y.id===r),[t,r]);return h.useEffect(()=>{s&&c(s)},[s]),u.jsxs("div",{className:`tabs-layout-main ${n}`,children:[u.jsx("ul",{className:`horizontal tabs tabs-container ${i}`,children:t.map(({id:y,to:b,label:g})=>u.jsx("li",{children:u.jsx(is,{onClick:()=>c(y),id:y,to:b??"",siblings:t.length>1,active:r===y,children:g})},y))}),a==null?void 0:a.content]})},os=e=>{const{translation:t,onClickNext:s,image:n="",alt:i="",final:r=!1}=e,{setGuestMode:c}=it(),{t:a}=_.useTranslation();return u.jsxs("div",{className:"big-appear w-md flex flex-col gap-20",children:[u.jsx("img",{src:n,alt:i}),u.jsx("h2",{className:"text-5xl text-center leading-16",children:a(`_pages:onboarding.${t}.title`)}),u.jsx("p",{className:"text-center !text-lg",children:a(`_pages:onboarding.${t}.body`)}),u.jsx("div",{className:"flex gap-5 items-center justify-center",children:r?u.jsxs(u.Fragment,{children:[u.jsx(ge,{color:"primary",className:"!px-8",variant:"outlined",onClick:()=>{c(!0),window.location.href="/"},"aria-label":a("_accessibility:ariaLabels.start"),children:a("_accessibility:buttons.startAsGuest")}),u.jsx(ge,{color:"primary",variant:"submit",className:"!px-8","aria-label":a("_accessibility:ariaLabels.start"),onClick:()=>window.location.href="/auth/sign-in",children:a("_accessibility:buttons.signIn")})]}):u.jsxs(u.Fragment,{children:[u.jsx(ge,{color:"primary",className:"!px-8",variant:"outlined",onClick:()=>window.location.href="/auth/sign-in","aria-label":a("_accessibility:ariaLabels.skip"),children:a("_accessibility:buttons.skip")}),u.jsx(ge,{color:"primary",className:"!px-8",variant:"outlined",onClick:()=>s(),"aria-label":a("_accessibility:ariaLabels.next"),children:a("_accessibility:buttons.next")})]})})]})},Er=e=>{const{steps:t}=e,[s,n]=h.useState(1),i=h.useMemo(()=>t.map((r,c)=>({id:c+1,label:"",content:u.jsx(os,{translation:r,final:c===t.length-1,onClickNext:()=>n(s+1)})})),[s]);return u.jsx("div",{className:"onboarding-main",children:u.jsx(as,{defaultTab:s,tabs:i})})},cs=e=>{const{message:t,messageProps:s={className:"text-gray-400 text-balance text-center"},action:n,iconProps:i}=e;return u.jsxs("div",{className:"flex flex-col items-center justify-center gap-5 pt-5",children:[i&&u.jsx(ie.FontAwesomeIcon,{...i??{}}),u.jsx("p",{...s??{},children:t}),n&&u.jsx(et,{showTooltips:!1,showText:!0,...n})]})};exports.APIClient=rt;exports.Action=et;exports.Actions=tt;exports.ActionsDropdown=ns;exports.AuthClient=Mt;exports.AuthProvider=$s;exports.BaseClient=_s;exports.Button=ge;exports.ConfigProvider=Ls;exports.ConfirmationDialog=hr;exports.Dialog=Re;exports.DialogActions=qe;exports.Drawer=xr;exports.Dropdown=Pt;exports.Empty=cs;exports.Error=wr;exports.FormContainer=dr;exports.FormDialog=mr;exports.GlobalActions=be;exports.IManager=As;exports.IconButton=me;exports.ImportDialog=pr;exports.ManagerProvider=Fs;exports.Methods=ee;exports.Navbar=Ar;exports.Notification=_r;exports.NotificationEnumType=U;exports.NotificationProvider=js;exports.Onboarding=Er;exports.Page=Cr;exports.ParagraphInput=ur;exports.PasswordInput=fr;exports.PrettyGrid=Sr;exports.SplashScreen=Nr;exports.Step=os;exports.Tab=is;exports.TabsLayout=as;exports.ToTop=lr;exports.buildQueryUrl=It;exports.enumToKeyValueArray=Ns;exports.formatForDatetimeLocal=Es;exports.fromLocal=nt;exports.getFormattedDateTime=Xe;exports.isHttpError=Fe;exports.isMac=Ot;exports.isValidationError=je;exports.makeRequest=Ae;exports.mapValidationErrors=Ts;exports.parseQueries=st;exports.queryClient=he;exports.removeFromLocal=Ye;exports.toLocal=Je;exports.useAuth=it;exports.useConfig=$e;exports.useConfirmationForm=at;exports.useDeleteAction=Zt;exports.useDeleteDialog=nr;exports.useDialog=ft;exports.useEditAction=rr;exports.useExportAction=ts;exports.useExportActionMutate=cr;exports.useFormDialog=ir;exports.useImportAction=ss;exports.useImportDialog=or;exports.useManager=qt;exports.useNotification=ve;exports.usePostForm=sr;exports.useRestoreAction=es;exports.useRestoreDialog=ar;exports.useScrollTrigger=rs;exports.useTimeAge=ks;Object.keys(_).forEach(e=>{e!=="default"&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:()=>_[e]})});
1
+ var ps=Object.defineProperty;var xs=(e,t,s)=>t in e?ps(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var ue=(e,t,s)=>xs(e,typeof t!="symbol"?t+"":t,s);var Fr=require("./main.css");Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("@sito/dashboard"),u=require("react/jsx-runtime"),h=require("react"),B=require("@fortawesome/free-solid-svg-icons"),ie=require("@fortawesome/react-fontawesome"),Vt=require("react-dom"),ws=require("@emotion/css"),we=require("@tanstack/react-query"),vs=require("@fortawesome/free-regular-svg-icons");function et(e){const{id:t,icon:s,tooltip:n,onClick:i,children:r,hidden:c=!1,disabled:a=!1,showText:m=!1,showTooltips:g=!0}=e;return c?null:u.jsxs("button",{id:t,className:`action ${m?"text-action":"icon-action"}`,disabled:a,onClick:()=>i(),"aria-disabled":a,"data-tooltip-id":"tooltip","data-tooltip-content":g?n:"",children:[s," ",m&&n,r]})}function tt(e){const{actions:t=[],className:s="",showTooltips:n=!0,showActionTexts:i=!1}=e;return u.jsx("ul",{className:`actions-container ${s}`,children:t==null?void 0:t.map(r=>u.jsx("li",{children:u.jsx(et,{showTooltips:n,showText:i,...r,children:r.children})},r.id))})}const Pt=e=>{const{children:t,open:s,onClose:n}=e,i=h.useRef(null),r=h.useCallback(a=>{const m=i.current;!s||!m||m.contains(a.target)||n()},[s,n]),c=h.useCallback(a=>{s&&a.key==="Escape"&&n()},[s,n]);return h.useEffect(()=>{if(s)return setTimeout(()=>{var a;return(a=i.current)==null?void 0:a.focus()},0),document.addEventListener("mousedown",r),document.addEventListener("keydown",c),()=>{document.removeEventListener("mousedown",r),document.removeEventListener("keydown",c)}},[s,r,c]),u.jsx("div",{ref:i,role:"menu","aria-hidden":!s,tabIndex:-1,className:`dropdown-main ${s?"opened":"closed"}`,onClick:a=>a.stopPropagation(),children:t})},me=e=>{const{children:t,icon:s,type:n="button",className:i="",variant:r="text",color:c="default",iconClassName:a="",...m}=e;return u.jsxs("button",{type:n,className:`icon-button ${i} ${r} ${c}`,...m,children:[u.jsx(ie.FontAwesomeIcon,{icon:s,className:`!w-auto ${a}`}),t]})},ge=e=>{const{children:t,type:s="button",variant:n="text",color:i="default",className:r="",...c}=e;return u.jsx("button",{type:s,className:`button ${n} ${i} ${r}`,...c,children:t})};var ze,Ct;function Cs(){if(Ct)return ze;Ct=1;const e=(a,m="local",g=void 0)=>{if(m==="local"){if(localStorage.getItem(a)!==void 0&&localStorage.getItem(a)!=="undefined"&&localStorage.getItem(a)!==null)return g===void 0||g!==void 0&&localStorage.getItem(a)===g}else if(m==="session"&&sessionStorage.getItem(a)!==void 0&&sessionStorage.getItem(a)!=="undefined"&&sessionStorage.getItem(a)!==null)return g===void 0||g!==void 0&&sessionStorage.getItem(a)===g;return!1},t=a=>{const m={};return a.substring(1).split("&").forEach(p=>{const[y,f]=p.split("=");m[y]=f}),m},s=(a="")=>{if(r(a)&&a.length)return r(a);{let m=navigator.language||navigator.userLanguage;if(m.indexOf("en")<0&&m.indexOf("es")<0&&(m="en-US"),m=m.split("-")[0],m)return a.length&&i(a,730,m),m}return"en"},n=(a=0,m=0,g=window,p="smooth")=>g.scroll({top:a,left:m,behavior:p}),i=(a,m,g,p="/",y="Lax")=>{var f=new Date;f.setTime(f.getTime()+m*24*60*60*1e3);const w="; expires="+f.toUTCString();document.cookie=`${a}=${g||""}${w};path=${p};SameSite=${y}`},r=a=>{const m=`${a}=`,p=decodeURIComponent(document.cookie).split(";");for(let y=0;y<p.length;y+=1){let f=p[y];for(;f.charAt(0)===" ";)f=f.substring(1);if(f.indexOf(m)===0)return f.substring(m.length,f.length)}return""};return ze={getCookie:r,createCookie:i,deleteCookie:a=>document.cookie=`${a}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,getUserLanguage:s,scrollTo:n,parseQueries:t,validation:e},ze}var ks=Cs();function Ss(){const{t:e,language:t}=_.useTranslation();return{timeAge:h.useCallback(n=>{const r=new Date-n,c=Math.floor(r/(1e3*60)),a=Math.floor(c/60),m=t==="es",g=e("_accessibility:labels.ago"),p=e("_accessibility:labels.minute"),y=e("_accessibility:labels.minutes"),f=e("_accessibility:labels.hour"),w=e("_accessibility:labels.hours"),S=e("_accessibility:labels.yesterday"),v=e("_accessibility:labels.justNow");return r<1e3*60?v:c<60?`${m?g:""} ${c} ${c===1?p:y} ${m?"":g}`:a<24?`${m?g:""} ${a} ${a===1?f:w} ${m?"":g}`:a<48?S:n.toLocaleDateString(navigator.language||"es-ES",{day:"2-digit",month:"2-digit",year:"numeric"})},[e,t])}}var U=(e=>(e[e.success=0]="success",e[e.error=1]="error",e[e.warning=2]="warning",e[e.info=3]="info",e))(U||{}),ee=(e=>(e.GET="GET",e.POST="POST",e.PUT="PUT",e.PATCH="PATCH",e.DELETE="DELETE",e))(ee||{});async function Ae(e,t="GET",s,n){const i={...s?{"Content-Type":"application/json"}:{},...n};try{const r=await fetch(e,{method:t,headers:i,...s?{body:JSON.stringify(s)}:{}}),c=await r.text();let a=null;try{a=c?JSON.parse(c):null}catch{a=null}if(!r.ok){const m=typeof a=="object"&&a!==null?a.message??a.error??c:c||r.statusText;return{data:null,status:r.status,error:{status:r.status,message:m||"Unknown error occurred"}}}return{data:r.status!==204&&a!==null?a:null,status:r.status,error:null}}catch(r){return{data:null,status:500,error:{status:500,message:r instanceof Error?r.message:"Unknown error occurred"}}}}function It(e,t){if(t){const s=Object.entries(t).filter(([,n])=>n!=null).map(([n,i])=>`${encodeURIComponent(n)}=${encodeURIComponent(String(i))}`).join("&");return s?`${e}?${s}`:e}return e}const st=(e,t,s)=>{const n=[];if(t){const{sortingBy:i,sortingOrder:r,currentPage:c,pageSize:a}=t;n.push(`sort=${String(i)}`,`order=${r}`,`page=${c}`,`pageSize=${a}`)}if(s){const i=Object.entries(s).filter(([,r])=>r!=null&&r!=="").flatMap(([r,c])=>{if(Array.isArray(c))return c.map(a=>`${r}==${encodeURIComponent((a==null?void 0:a.id)??a)}`);if(typeof c=="object"&&c!==null&&"start"in c&&"end"in c){const a=[];return c.start!=null&&c.start!==""&&a.push(`${r}>=${encodeURIComponent(c.start)}`),c.end!=null&&c.end!==""&&a.push(`${r}<=${encodeURIComponent(c.end)}`),a}return typeof c=="object"&&c!==null?`${r}==${encodeURIComponent(c.id??"")}`:`${r}==${encodeURIComponent(c)}`});i.length>0&&n.push(`filters=${i.join(",")}`)}return n.length?`${e}?${n.join("&")}`:e};class rt{constructor(t,s="user",n=!0,i=null){ue(this,"baseUrl");ue(this,"userKey");ue(this,"secured");ue(this,"tokenAcquirer");this.baseUrl=t,this.secured=n,this.userKey=s,i||(this.tokenAcquirer=this.defaultTokenAcquirer)}defaultTokenAcquirer(t){if(t)return{credentials:"include"};const s=nt(this.userKey);if(s&&s.length)return{Authorization:`Bearer ${s}`}}async doQuery(t,s=ee.GET,n,i){const r=this.secured?this.defaultTokenAcquirer():{},{data:c,status:a,error:m}=await Ae(`${this.baseUrl}${t}`,s,n,{...r,...i??{}});if(m||a<200||a>=300)throw m??{status:a,message:String(a)};return c}async get(t,s,n){const i=st(t,s,n),r=this.secured?this.defaultTokenAcquirer():void 0,{data:c,error:a}=await Ae(`${this.baseUrl}${i}`,ee.GET,null,r);if(a)throw a;return c}async patch(t,s){const n=this.secured?this.defaultTokenAcquirer():void 0,{error:i,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,ee.PATCH,s,n);if(i||!r)throw i??{status:c,message:"Unknown error"};return r}async delete(t,s){const n=this.secured?this.defaultTokenAcquirer():void 0,{error:i,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,ee.DELETE,s,n);if(i||!r)throw i??{status:c,message:"Unknown error"};return r}async post(t,s){const n=this.secured?this.defaultTokenAcquirer():void 0,{error:i,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,ee.POST,s,n);if(i||!r)throw i??{status:c,message:"Unknown error"};return r}}class Mt{constructor(t,s="user"){ue(this,"api");this.api=new rt(t,s,!1)}async login(t){const s="auth/sign-in",n=t;return await this.api.doQuery(s,ee.POST,n)}async logout(){return await this.api.doQuery("auth/sign-out",ee.POST)}async register(t){return await this.api.doQuery("auth/sign-up",ee.POST,t)}async getSession(){return await this.api.doQuery("auth/session",ee.GET,null,{...this.api.defaultTokenAcquirer()})}}class As{constructor(t,s){ue(this,"auth");this.auth=new Mt(t,s)}get Auth(){return this.auth}}class _s{constructor(t,s,n="user",i=!0){ue(this,"table");ue(this,"secured");ue(this,"api");this.table=t,this.secured=i,this.api=new rt(s,n,i)}async insert(t){return await this.api.post(`${this.table}`,t)}async insertMany(t){return await this.api.doQuery(`${this.table}/batch`,ee.POST,t)}async update(t){return await this.api.patch(`${this.table}/${t.id}`,t)}async get(t,s){return await this.api.get(`${this.table}`,t,s)}async export(t){const s=st(`${this.table}/export`,void 0,t);return await this.api.doQuery(s,ee.GET,void 0)}async import(t){return await this.api.doQuery(`${this.table}/import`,ee.POST,t)}async commonGet(t){return await this.api.doQuery(It(`${this.table}/common`,t),ee.GET)}async getById(t){return await this.api.doQuery(`${this.table}/${t}`)}async softDelete(t){return await this.api.delete(`${this.table}`,t)}async restore(t){return await this.api.patch(`${this.table}/restore`,t)}}function Es(e){return Object.keys(e).filter(t=>isNaN(Number(t))).map(t=>({key:t,value:e[t]}))}const nt=(e,t="")=>{const s=localStorage.getItem(e)??void 0;if(s&&t.length)switch(t){case"object":return JSON.parse(s);case"number":return Number(s);case"boolean":return s==="true"||s==="1";default:return s}return s},Je=(e,t)=>localStorage.setItem(e,typeof t=="object"?JSON.stringify(t):t),Ye=e=>localStorage.removeItem(e);function Xe(e){const t=e?new Date(e):new Date,s={weekday:"long",day:"numeric",month:"long",year:"numeric",hour:"numeric",minute:"2-digit",hour12:!0};return t.toLocaleString(navigator.language||"es-ES",s)}function Ns(e){const t=e?new Date(e):new Date,s=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0"),r=String(t.getHours()).padStart(2,"0"),c=String(t.getMinutes()).padStart(2,"0");return`${s}-${n}-${i}T${r}:${c}`}const Ot=()=>{var s;const e=navigator,t=((s=e==null?void 0:e.userAgentData)==null?void 0:s.platform)||(e==null?void 0:e.platform)||"";return/Mac|iPhone|iPod|iPad/i.test(t)};function je(e){if(!e||typeof e!="object")return!1;const t=e;return Array.isArray(t.errors)&&t.errors.every(s=>Array.isArray(s)&&s.length===2&&typeof s[0]=="string")}function Fe(e){if(!e||typeof e!="object")return!1;const t=e;return typeof(t==null?void 0:t.status)=="number"&&typeof(t==null?void 0:t.message)=="string"}function Ts(e,t){return e!=null&&e.errors?e.errors.map(([s,n])=>t(s,n)):[]}const Ut=h.createContext({});function js(e){const{children:t}=e,[s,n]=h.useReducer((g,p)=>{const{type:y,items:f,index:w}=p;switch(y){case"set":return(f==null?void 0:f.map((S,v)=>({...S,id:v})))??[];case"remove":return w!==void 0?g.filter((S,v)=>v!==w):[]}return g},[],()=>[]),i=g=>n({type:"set",items:[{...g,type:U.error}]}),r=g=>n({type:"set",items:[{...g}]}),c=g=>n({type:"set",items:g}),a=g=>n({type:"set",items:[{...g,type:U.success}]}),m=g=>n({type:"remove",index:g});return u.jsx(Ut.Provider,{value:{notification:s,removeNotification:m,showErrorNotification:i,showNotification:r,showSuccessNotification:a,showStackNotifications:c},children:t})}const ve=()=>{const e=h.useContext(Ut);if(e===void 0)throw new Error("NotificationContext must be used within a Provider");return e},he=new we.QueryClient({defaultOptions:{queries:{refetchInterval:!1,refetchOnMount:!0,refetchOnReconnect:!1,retry:!1,retryOnMount:!0,refetchOnWindowFocus:!1}}}),Rt=h.createContext({}),Fs=e=>{const{children:t,manager:s}=e;return u.jsx(Rt.Provider,{value:{client:s},children:u.jsx(we.QueryClientProvider,{client:he,children:t})})},qt=()=>{const e=h.useContext(Rt);if(e===void 0)throw new Error("managerContext must be used within a Provider");return e.client},Bt=h.createContext({}),$s=e=>{const{children:t,guestMode:s="guest_mode",user:n="user"}=e,i=qt(),[r,c]=h.useState({}),a=h.useCallback(()=>!!nt(s,"boolean")&&r.token===void 0,[r.token]),m=h.useCallback(w=>{Je(s,w)},[]),g=h.useCallback(w=>{w&&(c(w),Ye(s),Je(n,w.token))},[]),p=h.useCallback(async()=>{try{await i.Auth.logout()}catch(w){console.error(w)}c({}),Ye(n)},[i.Auth]),y=h.useCallback(async()=>{try{const w=await i.Auth.getSession();g(w)}catch(w){console.error(w),p()}},[g,p,i.Auth]),f={account:r,logUser:g,logoutUser:p,logUserFromLocal:y,isInGuestMode:a,setGuestMode:m};return u.jsx(Bt.Provider,{value:f,children:t})},it=()=>{const e=h.useContext(Bt);if(e===void 0)throw new Error("authContext must be used within a Provider");return e},Ht=h.createContext({}),Ls=e=>{const{children:t,location:s,navigate:n,linkComponent:i,searchComponent:r}=e;return u.jsx(Ht.Provider,{value:{location:s,navigate:n,linkComponent:i,searchComponent:r},children:t})},$e=()=>{const e=h.useContext(Ht);if(e===void 0||Object.keys(e).length===0)throw new Error("Config provider has not been set. This step is required and cannot be skipped.");return e},at=e=>{const{showSuccessNotification:t}=ve(),{mutationFn:s,onError:n,onSuccess:i,onSuccessMessage:r}=e,[c,a]=h.useState([]),{open:m,handleClose:g,handleOpen:p}=ft(),y=()=>{g(),a([])},f=async S=>{a(S),p()},w=we.useMutation({mutationFn:()=>s(Array.isArray(c)?c:[c]),onError:S=>{console.error(S),n&&n(S),y()},onSuccess:async S=>{i&&i(S),t({message:r}),y()}});return{open:m,onClick:f,close:y,dialogFn:w,isLoading:w.isPending}};var Le=e=>e.type==="checkbox",ke=e=>e instanceof Date,Z=e=>e==null;const Qt=e=>typeof e=="object";var H=e=>!Z(e)&&!Array.isArray(e)&&Qt(e)&&!ke(e),Ds=e=>H(e)&&e.target?Le(e.target)?e.target.checked:e.target.value:e,Vs=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,Ps=(e,t)=>e.has(Vs(t)),Is=e=>{const t=e.constructor&&e.constructor.prototype;return H(t)&&t.hasOwnProperty("isPrototypeOf")},ot=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function J(e){let t;const s=Array.isArray(e),n=typeof FileList<"u"?e instanceof FileList:!1;if(e instanceof Date)t=new Date(e);else if(!(ot&&(e instanceof Blob||n))&&(s||H(e)))if(t=s?[]:{},!s&&!Is(e))t=e;else for(const i in e)e.hasOwnProperty(i)&&(t[i]=J(e[i]));else return e;return t}var Ue=e=>/^\w*$/.test(e),K=e=>e===void 0,ct=e=>Array.isArray(e)?e.filter(Boolean):[],lt=e=>ct(e.replace(/["|']|\]/g,"").split(/\.|\[/)),k=(e,t,s)=>{if(!t||!H(e))return s;const n=(Ue(t)?[t]:lt(t)).reduce((i,r)=>Z(i)?i:i[r],e);return K(n)||n===e?K(e[t])?s:e[t]:n},de=e=>typeof e=="boolean",M=(e,t,s)=>{let n=-1;const i=Ue(t)?[t]:lt(t),r=i.length,c=r-1;for(;++n<r;){const a=i[n];let m=s;if(n!==c){const g=e[a];m=H(g)||Array.isArray(g)?g:isNaN(+i[n+1])?{}:[]}if(a==="__proto__"||a==="constructor"||a==="prototype")return;e[a]=m,e=e[a]}};const kt={BLUR:"blur",FOCUS_OUT:"focusout"},ce={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},ye={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},Ms=h.createContext(null);Ms.displayName="HookFormContext";var Os=(e,t,s,n=!0)=>{const i={defaultValues:t._defaultValues};for(const r in e)Object.defineProperty(i,r,{get:()=>{const c=r;return t._proxyFormState[c]!==ce.all&&(t._proxyFormState[c]=!n||ce.all),e[c]}});return i};const Us=typeof window<"u"?h.useLayoutEffect:h.useEffect;var fe=e=>typeof e=="string",Rs=(e,t,s,n,i)=>fe(e)?(n&&t.watch.add(e),k(s,e,i)):Array.isArray(e)?e.map(r=>(n&&t.watch.add(r),k(s,r))):(n&&(t.watchAll=!0),s),Ze=e=>Z(e)||!Qt(e);function xe(e,t,s=new WeakSet){if(Ze(e)||Ze(t))return e===t;if(ke(e)&&ke(t))return e.getTime()===t.getTime();const n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;if(s.has(e)||s.has(t))return!0;s.add(e),s.add(t);for(const r of n){const c=e[r];if(!i.includes(r))return!1;if(r!=="ref"){const a=t[r];if(ke(c)&&ke(a)||H(c)&&H(a)||Array.isArray(c)&&Array.isArray(a)?!xe(c,a,s):c!==a)return!1}}return!0}var qs=(e,t,s,n,i)=>t?{...s[e],types:{...s[e]&&s[e].types?s[e].types:{},[n]:i||!0}}:{},Ne=e=>Array.isArray(e)?e:[e],St=()=>{let e=[];return{get observers(){return e},next:i=>{for(const r of e)r.next&&r.next(i)},subscribe:i=>(e.push(i),{unsubscribe:()=>{e=e.filter(r=>r!==i)}}),unsubscribe:()=>{e=[]}}},te=e=>H(e)&&!Object.keys(e).length,ut=e=>e.type==="file",le=e=>typeof e=="function",Ie=e=>{if(!ot)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},Kt=e=>e.type==="select-multiple",dt=e=>e.type==="radio",Bs=e=>dt(e)||Le(e),Ge=e=>Ie(e)&&e.isConnected;function Hs(e,t){const s=t.slice(0,-1).length;let n=0;for(;n<s;)e=K(e)?n++:e[t[n++]];return e}function Qs(e){for(const t in e)if(e.hasOwnProperty(t)&&!K(e[t]))return!1;return!0}function Q(e,t){const s=Array.isArray(t)?t:Ue(t)?[t]:lt(t),n=s.length===1?e:Hs(e,s),i=s.length-1,r=s[i];return n&&delete n[r],i!==0&&(H(n)&&te(n)||Array.isArray(n)&&Qs(n))&&Q(e,s.slice(0,-1)),e}var Wt=e=>{for(const t in e)if(le(e[t]))return!0;return!1};function Me(e,t={}){const s=Array.isArray(e);if(H(e)||s)for(const n in e)Array.isArray(e[n])||H(e[n])&&!Wt(e[n])?(t[n]=Array.isArray(e[n])?[]:{},Me(e[n],t[n])):Z(e[n])||(t[n]=!0);return t}function zt(e,t,s){const n=Array.isArray(e);if(H(e)||n)for(const i in e)Array.isArray(e[i])||H(e[i])&&!Wt(e[i])?K(t)||Ze(s[i])?s[i]=Array.isArray(e[i])?Me(e[i],[]):{...Me(e[i])}:zt(e[i],Z(t)?{}:t[i],s[i]):s[i]=!xe(e[i],t[i]);return s}var _e=(e,t)=>zt(e,t,Me(t));const At={value:!1,isValid:!1},_t={value:!0,isValid:!0};var Gt=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(s=>s&&s.checked&&!s.disabled).map(s=>s.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!K(e[0].attributes.value)?K(e[0].value)||e[0].value===""?_t:{value:e[0].value,isValid:!0}:_t:At}return At},Jt=(e,{valueAsNumber:t,valueAsDate:s,setValueAs:n})=>K(e)?e:t?e===""?NaN:e&&+e:s&&fe(e)?new Date(e):n?n(e):e;const Et={isValid:!1,value:null};var Yt=e=>Array.isArray(e)?e.reduce((t,s)=>s&&s.checked&&!s.disabled?{isValid:!0,value:s.value}:t,Et):Et;function Nt(e){const t=e.ref;return ut(t)?t.files:dt(t)?Yt(e.refs).value:Kt(t)?[...t.selectedOptions].map(({value:s})=>s):Le(t)?Gt(e.refs).value:Jt(K(t.value)?e.ref.value:t.value,e)}var Ks=(e,t,s,n)=>{const i={};for(const r of e){const c=k(t,r);c&&M(i,r,c._f)}return{criteriaMode:s,names:[...e],fields:i,shouldUseNativeValidation:n}},Oe=e=>e instanceof RegExp,Ee=e=>K(e)?e:Oe(e)?e.source:H(e)?Oe(e.value)?e.value.source:e.value:e,Tt=e=>({isOnSubmit:!e||e===ce.onSubmit,isOnBlur:e===ce.onBlur,isOnChange:e===ce.onChange,isOnAll:e===ce.all,isOnTouch:e===ce.onTouched});const jt="AsyncFunction";var Ws=e=>!!e&&!!e.validate&&!!(le(e.validate)&&e.validate.constructor.name===jt||H(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===jt)),zs=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),Ft=(e,t,s)=>!s&&(t.watchAll||t.watch.has(e)||[...t.watch].some(n=>e.startsWith(n)&&/^\.\w+/.test(e.slice(n.length))));const Te=(e,t,s,n)=>{for(const i of s||Object.keys(e)){const r=k(e,i);if(r){const{_f:c,...a}=r;if(c){if(c.refs&&c.refs[0]&&t(c.refs[0],i)&&!n)return!0;if(c.ref&&t(c.ref,c.name)&&!n)return!0;if(Te(a,t))break}else if(H(a)&&Te(a,t))break}}};function $t(e,t,s){const n=k(e,s);if(n||Ue(s))return{error:n,name:s};const i=s.split(".");for(;i.length;){const r=i.join("."),c=k(t,r),a=k(e,r);if(c&&!Array.isArray(c)&&s!==r)return{name:s};if(a&&a.type)return{name:r,error:a};if(a&&a.root&&a.root.type)return{name:`${r}.root`,error:a.root};i.pop()}return{name:s}}var Gs=(e,t,s,n)=>{s(e);const{name:i,...r}=e;return te(r)||Object.keys(r).length>=Object.keys(t).length||Object.keys(r).find(c=>t[c]===(!n||ce.all))},Js=(e,t,s)=>!e||!t||e===t||Ne(e).some(n=>n&&(s?n===t:n.startsWith(t)||t.startsWith(n))),Ys=(e,t,s,n,i)=>i.isOnAll?!1:!s&&i.isOnTouch?!(t||e):(s?n.isOnBlur:i.isOnBlur)?!e:(s?n.isOnChange:i.isOnChange)?e:!0,Xs=(e,t)=>!ct(k(e,t)).length&&Q(e,t),Zs=(e,t,s)=>{const n=Ne(k(e,s));return M(n,"root",t[s]),M(e,s,n),e},Pe=e=>fe(e);function Lt(e,t,s="validate"){if(Pe(e)||Array.isArray(e)&&e.every(Pe)||de(e)&&!e)return{type:s,message:Pe(e)?e:"",ref:t}}var Se=e=>H(e)&&!Oe(e)?e:{value:e,message:""},Dt=async(e,t,s,n,i,r)=>{const{ref:c,refs:a,required:m,maxLength:g,minLength:p,min:y,max:f,pattern:w,validate:S,name:v,valueAsNumber:R,mount:re}=e._f,E=k(s,v);if(!re||t.has(v))return{};const W=a?a[0]:c,$=N=>{i&&W.reportValidity&&(W.setCustomValidity(de(N)?"":N||""),W.reportValidity())},j={},z=dt(c),L=Le(c),ae=z||L,q=(R||ut(c))&&K(c.value)&&K(E)||Ie(c)&&c.value===""||E===""||Array.isArray(E)&&!E.length,I=qs.bind(null,v,n,j),P=(N,T,O,G=ye.maxLength,Y=ye.minLength)=>{const D=N?T:O;j[v]={type:N?G:Y,message:D,ref:c,...I(N?G:Y,D)}};if(r?!Array.isArray(E)||!E.length:m&&(!ae&&(q||Z(E))||de(E)&&!E||L&&!Gt(a).isValid||z&&!Yt(a).isValid)){const{value:N,message:T}=Pe(m)?{value:!!m,message:m}:Se(m);if(N&&(j[v]={type:ye.required,message:T,ref:W,...I(ye.required,T)},!n))return $(T),j}if(!q&&(!Z(y)||!Z(f))){let N,T;const O=Se(f),G=Se(y);if(!Z(E)&&!isNaN(E)){const Y=c.valueAsNumber||E&&+E;Z(O.value)||(N=Y>O.value),Z(G.value)||(T=Y<G.value)}else{const Y=c.valueAsDate||new Date(E),D=oe=>new Date(new Date().toDateString()+" "+oe),X=c.type=="time",se=c.type=="week";fe(O.value)&&E&&(N=X?D(E)>D(O.value):se?E>O.value:Y>new Date(O.value)),fe(G.value)&&E&&(T=X?D(E)<D(G.value):se?E<G.value:Y<new Date(G.value))}if((N||T)&&(P(!!N,O.message,G.message,ye.max,ye.min),!n))return $(j[v].message),j}if((g||p)&&!q&&(fe(E)||r&&Array.isArray(E))){const N=Se(g),T=Se(p),O=!Z(N.value)&&E.length>+N.value,G=!Z(T.value)&&E.length<+T.value;if((O||G)&&(P(O,N.message,T.message),!n))return $(j[v].message),j}if(w&&!q&&fe(E)){const{value:N,message:T}=Se(w);if(Oe(N)&&!E.match(N)&&(j[v]={type:ye.pattern,message:T,ref:c,...I(ye.pattern,T)},!n))return $(T),j}if(S){if(le(S)){const N=await S(E,s),T=Lt(N,W);if(T&&(j[v]={...T,...I(ye.validate,T.message)},!n))return $(T.message),j}else if(H(S)){let N={};for(const T in S){if(!te(N)&&!n)break;const O=Lt(await S[T](E,s),W,T);O&&(N={...O,...I(T,O.message)},$(O.message),n&&(j[v]=N))}if(!te(N)&&(j[v]={ref:W,...N},!n))return j}}return $(!0),j};const er={mode:ce.onSubmit,reValidateMode:ce.onChange,shouldFocusError:!0};function tr(e={}){let t={...er,...e},s={submitCount:0,isDirty:!1,isReady:!1,isLoading:le(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},n={},i=H(t.defaultValues)||H(t.values)?J(t.defaultValues||t.values)||{}:{},r=t.shouldUnregister?{}:J(i),c={action:!1,mount:!1,watch:!1},a={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},m,g=0;const p={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let y={...p};const f={array:St(),state:St()},w=t.criteriaMode===ce.all,S=o=>l=>{clearTimeout(g),g=setTimeout(o,l)},v=async o=>{if(!t.disabled&&(p.isValid||y.isValid||o)){const l=t.resolver?te((await L()).errors):await q(n,!0);l!==s.isValid&&f.state.next({isValid:l})}},R=(o,l)=>{!t.disabled&&(p.isValidating||p.validatingFields||y.isValidating||y.validatingFields)&&((o||Array.from(a.mount)).forEach(d=>{d&&(l?M(s.validatingFields,d,l):Q(s.validatingFields,d))}),f.state.next({validatingFields:s.validatingFields,isValidating:!te(s.validatingFields)}))},re=(o,l=[],d,C,x=!0,b=!0)=>{if(C&&d&&!t.disabled){if(c.action=!0,b&&Array.isArray(k(n,o))){const A=d(k(n,o),C.argA,C.argB);x&&M(n,o,A)}if(b&&Array.isArray(k(s.errors,o))){const A=d(k(s.errors,o),C.argA,C.argB);x&&M(s.errors,o,A),Xs(s.errors,o)}if((p.touchedFields||y.touchedFields)&&b&&Array.isArray(k(s.touchedFields,o))){const A=d(k(s.touchedFields,o),C.argA,C.argB);x&&M(s.touchedFields,o,A)}(p.dirtyFields||y.dirtyFields)&&(s.dirtyFields=_e(i,r)),f.state.next({name:o,isDirty:P(o,l),dirtyFields:s.dirtyFields,errors:s.errors,isValid:s.isValid})}else M(r,o,l)},E=(o,l)=>{M(s.errors,o,l),f.state.next({errors:s.errors})},W=o=>{s.errors=o,f.state.next({errors:s.errors,isValid:!1})},$=(o,l,d,C)=>{const x=k(n,o);if(x){const b=k(r,o,K(d)?k(i,o):d);K(b)||C&&C.defaultChecked||l?M(r,o,l?b:Nt(x._f)):O(o,b),c.mount&&v()}},j=(o,l,d,C,x)=>{let b=!1,A=!1;const F={name:o};if(!t.disabled){if(!d||C){(p.isDirty||y.isDirty)&&(A=s.isDirty,s.isDirty=F.isDirty=P(),b=A!==F.isDirty);const V=xe(k(i,o),l);A=!!k(s.dirtyFields,o),V?Q(s.dirtyFields,o):M(s.dirtyFields,o,!0),F.dirtyFields=s.dirtyFields,b=b||(p.dirtyFields||y.dirtyFields)&&A!==!V}if(d){const V=k(s.touchedFields,o);V||(M(s.touchedFields,o,d),F.touchedFields=s.touchedFields,b=b||(p.touchedFields||y.touchedFields)&&V!==d)}b&&x&&f.state.next(F)}return b?F:{}},z=(o,l,d,C)=>{const x=k(s.errors,o),b=(p.isValid||y.isValid)&&de(l)&&s.isValid!==l;if(t.delayError&&d?(m=S(()=>E(o,d)),m(t.delayError)):(clearTimeout(g),m=null,d?M(s.errors,o,d):Q(s.errors,o)),(d?!xe(x,d):x)||!te(C)||b){const A={...C,...b&&de(l)?{isValid:l}:{},errors:s.errors,name:o};s={...s,...A},f.state.next(A)}},L=async o=>{R(o,!0);const l=await t.resolver(r,t.context,Ks(o||a.mount,n,t.criteriaMode,t.shouldUseNativeValidation));return R(o),l},ae=async o=>{const{errors:l}=await L(o);if(o)for(const d of o){const C=k(l,d);C?M(s.errors,d,C):Q(s.errors,d)}else s.errors=l;return l},q=async(o,l,d={valid:!0})=>{for(const C in o){const x=o[C];if(x){const{_f:b,...A}=x;if(b){const F=a.array.has(b.name),V=x._f&&Ws(x._f);V&&p.validatingFields&&R([C],!0);const ne=await Dt(x,a.disabled,r,w,t.shouldUseNativeValidation&&!l,F);if(V&&p.validatingFields&&R([C]),ne[b.name]&&(d.valid=!1,l))break;!l&&(k(ne,b.name)?F?Zs(s.errors,ne,b.name):M(s.errors,b.name,ne[b.name]):Q(s.errors,b.name))}!te(A)&&await q(A,l,d)}}return d.valid},I=()=>{for(const o of a.unMount){const l=k(n,o);l&&(l._f.refs?l._f.refs.every(d=>!Ge(d)):!Ge(l._f.ref))&&Be(o)}a.unMount=new Set},P=(o,l)=>!t.disabled&&(o&&l&&M(r,o,l),!xe(oe(),i)),N=(o,l,d)=>Rs(o,a,{...c.mount?r:K(l)?i:fe(o)?{[o]:l}:l},d,l),T=o=>ct(k(c.mount?r:i,o,t.shouldUnregister?k(i,o,[]):[])),O=(o,l,d={})=>{const C=k(n,o);let x=l;if(C){const b=C._f;b&&(!b.disabled&&M(r,o,Jt(l,b)),x=Ie(b.ref)&&Z(l)?"":l,Kt(b.ref)?[...b.ref.options].forEach(A=>A.selected=x.includes(A.value)):b.refs?Le(b.ref)?b.refs.forEach(A=>{(!A.defaultChecked||!A.disabled)&&(Array.isArray(x)?A.checked=!!x.find(F=>F===A.value):A.checked=x===A.value||!!x)}):b.refs.forEach(A=>A.checked=A.value===x):ut(b.ref)?b.ref.value="":(b.ref.value=x,b.ref.type||f.state.next({name:o,values:J(r)})))}(d.shouldDirty||d.shouldTouch)&&j(o,x,d.shouldTouch,d.shouldDirty,!0),d.shouldValidate&&se(o)},G=(o,l,d)=>{for(const C in l){if(!l.hasOwnProperty(C))return;const x=l[C],b=o+"."+C,A=k(n,b);(a.array.has(o)||H(x)||A&&!A._f)&&!ke(x)?G(b,x,d):O(b,x,d)}},Y=(o,l,d={})=>{const C=k(n,o),x=a.array.has(o),b=J(l);M(r,o,b),x?(f.array.next({name:o,values:J(r)}),(p.isDirty||p.dirtyFields||y.isDirty||y.dirtyFields)&&d.shouldDirty&&f.state.next({name:o,dirtyFields:_e(i,r),isDirty:P(o,b)})):C&&!C._f&&!Z(b)?G(o,b,d):O(o,b,d),Ft(o,a)&&f.state.next({...s,name:o}),f.state.next({name:c.mount?o:void 0,values:J(r)})},D=async o=>{c.mount=!0;const l=o.target;let d=l.name,C=!0;const x=k(n,d),b=V=>{C=Number.isNaN(V)||ke(V)&&isNaN(V.getTime())||xe(V,k(r,d,V))},A=Tt(t.mode),F=Tt(t.reValidateMode);if(x){let V,ne;const Ve=l.type?Nt(x._f):Ds(o),pe=o.type===kt.BLUR||o.type===kt.FOCUS_OUT,ys=!zs(x._f)&&!t.resolver&&!k(s.errors,d)&&!x._f.deps||Ys(pe,k(s.touchedFields,d),s.isSubmitted,F,A),Ke=Ft(d,a,pe);M(r,d,Ve),pe?(x._f.onBlur&&x._f.onBlur(o),m&&m(0)):x._f.onChange&&x._f.onChange(o);const We=j(d,Ve,pe),gs=!te(We)||Ke;if(!pe&&f.state.next({name:d,type:o.type,values:J(r)}),ys)return(p.isValid||y.isValid)&&(t.mode==="onBlur"?pe&&v():pe||v()),gs&&f.state.next({name:d,...Ke?{}:We});if(!pe&&Ke&&f.state.next({...s}),t.resolver){const{errors:wt}=await L([d]);if(b(Ve),C){const bs=$t(s.errors,n,d),vt=$t(wt,n,bs.name||d);V=vt.error,d=vt.name,ne=te(wt)}}else R([d],!0),V=(await Dt(x,a.disabled,r,w,t.shouldUseNativeValidation))[d],R([d]),b(Ve),C&&(V?ne=!1:(p.isValid||y.isValid)&&(ne=await q(n,!0)));C&&(x._f.deps&&se(x._f.deps),z(d,ne,V,We))}},X=(o,l)=>{if(k(s.errors,l)&&o.focus)return o.focus(),1},se=async(o,l={})=>{let d,C;const x=Ne(o);if(t.resolver){const b=await ae(K(o)?o:x);d=te(b),C=o?!x.some(A=>k(b,A)):d}else o?(C=(await Promise.all(x.map(async b=>{const A=k(n,b);return await q(A&&A._f?{[b]:A}:A)}))).every(Boolean),!(!C&&!s.isValid)&&v()):C=d=await q(n);return f.state.next({...!fe(o)||(p.isValid||y.isValid)&&d!==s.isValid?{}:{name:o},...t.resolver||!o?{isValid:d}:{},errors:s.errors}),l.shouldFocus&&!C&&Te(n,X,o?x:a.mount),C},oe=o=>{const l={...c.mount?r:i};return K(o)?l:fe(o)?k(l,o):o.map(d=>k(l,d))},De=(o,l)=>({invalid:!!k((l||s).errors,o),isDirty:!!k((l||s).dirtyFields,o),error:k((l||s).errors,o),isValidating:!!k(s.validatingFields,o),isTouched:!!k((l||s).touchedFields,o)}),Ce=o=>{o&&Ne(o).forEach(l=>Q(s.errors,l)),f.state.next({errors:o?s.errors:{}})},mt=(o,l,d)=>{const C=(k(n,o,{_f:{}})._f||{}).ref,x=k(s.errors,o)||{},{ref:b,message:A,type:F,...V}=x;M(s.errors,o,{...V,...l,ref:C}),f.state.next({name:o,errors:s.errors,isValid:!1}),d&&d.shouldFocus&&C&&C.focus&&C.focus()},ls=(o,l)=>le(o)?f.state.subscribe({next:d=>"values"in d&&o(N(void 0,l),d)}):N(o,l,!0),ht=o=>f.state.subscribe({next:l=>{Js(o.name,l.name,o.exact)&&Gs(l,o.formState||p,hs,o.reRenderRoot)&&o.callback({values:{...r},...s,...l,defaultValues:i})}}).unsubscribe,us=o=>(c.mount=!0,y={...y,...o.formState},ht({...o,formState:y})),Be=(o,l={})=>{for(const d of o?Ne(o):a.mount)a.mount.delete(d),a.array.delete(d),l.keepValue||(Q(n,d),Q(r,d)),!l.keepError&&Q(s.errors,d),!l.keepDirty&&Q(s.dirtyFields,d),!l.keepTouched&&Q(s.touchedFields,d),!l.keepIsValidating&&Q(s.validatingFields,d),!t.shouldUnregister&&!l.keepDefaultValue&&Q(i,d);f.state.next({values:J(r)}),f.state.next({...s,...l.keepDirty?{isDirty:P()}:{}}),!l.keepIsValid&&v()},yt=({disabled:o,name:l})=>{(de(o)&&c.mount||o||a.disabled.has(l))&&(o?a.disabled.add(l):a.disabled.delete(l))},He=(o,l={})=>{let d=k(n,o);const C=de(l.disabled)||de(t.disabled);return M(n,o,{...d||{},_f:{...d&&d._f?d._f:{ref:{name:o}},name:o,mount:!0,...l}}),a.mount.add(o),d?yt({disabled:de(l.disabled)?l.disabled:t.disabled,name:o}):$(o,!0,l.value),{...C?{disabled:l.disabled||t.disabled}:{},...t.progressive?{required:!!l.required,min:Ee(l.min),max:Ee(l.max),minLength:Ee(l.minLength),maxLength:Ee(l.maxLength),pattern:Ee(l.pattern)}:{},name:o,onChange:D,onBlur:D,ref:x=>{if(x){He(o,l),d=k(n,o);const b=K(x.value)&&x.querySelectorAll&&x.querySelectorAll("input,select,textarea")[0]||x,A=Bs(b),F=d._f.refs||[];if(A?F.find(V=>V===b):b===d._f.ref)return;M(n,o,{_f:{...d._f,...A?{refs:[...F.filter(Ge),b,...Array.isArray(k(i,o))?[{}]:[]],ref:{type:b.type,name:o}}:{ref:b}}}),$(o,!1,void 0,b)}else d=k(n,o,{}),d._f&&(d._f.mount=!1),(t.shouldUnregister||l.shouldUnregister)&&!(Ps(a.array,o)&&c.action)&&a.unMount.add(o)}}},Qe=()=>t.shouldFocusError&&Te(n,X,a.mount),ds=o=>{de(o)&&(f.state.next({disabled:o}),Te(n,(l,d)=>{const C=k(n,d);C&&(l.disabled=C._f.disabled||o,Array.isArray(C._f.refs)&&C._f.refs.forEach(x=>{x.disabled=C._f.disabled||o}))},0,!1))},gt=(o,l)=>async d=>{let C;d&&(d.preventDefault&&d.preventDefault(),d.persist&&d.persist());let x=J(r);if(f.state.next({isSubmitting:!0}),t.resolver){const{errors:b,values:A}=await L();s.errors=b,x=J(A)}else await q(n);if(a.disabled.size)for(const b of a.disabled)Q(x,b);if(Q(s.errors,"root"),te(s.errors)){f.state.next({errors:{}});try{await o(x,d)}catch(b){C=b}}else l&&await l({...s.errors},d),Qe(),setTimeout(Qe);if(f.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:te(s.errors)&&!C,submitCount:s.submitCount+1,errors:s.errors}),C)throw C},fs=(o,l={})=>{k(n,o)&&(K(l.defaultValue)?Y(o,J(k(i,o))):(Y(o,l.defaultValue),M(i,o,J(l.defaultValue))),l.keepTouched||Q(s.touchedFields,o),l.keepDirty||(Q(s.dirtyFields,o),s.isDirty=l.defaultValue?P(o,J(k(i,o))):P()),l.keepError||(Q(s.errors,o),p.isValid&&v()),f.state.next({...s}))},bt=(o,l={})=>{const d=o?J(o):i,C=J(d),x=te(o),b=x?i:C;if(l.keepDefaultValues||(i=d),!l.keepValues){if(l.keepDirtyValues){const A=new Set([...a.mount,...Object.keys(_e(i,r))]);for(const F of Array.from(A))k(s.dirtyFields,F)?M(b,F,k(r,F)):Y(F,k(b,F))}else{if(ot&&K(o))for(const A of a.mount){const F=k(n,A);if(F&&F._f){const V=Array.isArray(F._f.refs)?F._f.refs[0]:F._f.ref;if(Ie(V)){const ne=V.closest("form");if(ne){ne.reset();break}}}}if(l.keepFieldsRef)for(const A of a.mount)Y(A,k(b,A));else n={}}r=t.shouldUnregister?l.keepDefaultValues?J(i):{}:J(b),f.array.next({values:{...b}}),f.state.next({values:{...b}})}a={mount:l.keepDirtyValues?a.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},c.mount=!p.isValid||!!l.keepIsValid||!!l.keepDirtyValues,c.watch=!!t.shouldUnregister,f.state.next({submitCount:l.keepSubmitCount?s.submitCount:0,isDirty:x?!1:l.keepDirty?s.isDirty:!!(l.keepDefaultValues&&!xe(o,i)),isSubmitted:l.keepIsSubmitted?s.isSubmitted:!1,dirtyFields:x?{}:l.keepDirtyValues?l.keepDefaultValues&&r?_e(i,r):s.dirtyFields:l.keepDefaultValues&&o?_e(i,o):l.keepDirty?s.dirtyFields:{},touchedFields:l.keepTouched?s.touchedFields:{},errors:l.keepErrors?s.errors:{},isSubmitSuccessful:l.keepIsSubmitSuccessful?s.isSubmitSuccessful:!1,isSubmitting:!1})},pt=(o,l)=>bt(le(o)?o(r):o,l),ms=(o,l={})=>{const d=k(n,o),C=d&&d._f;if(C){const x=C.refs?C.refs[0]:C.ref;x.focus&&(x.focus(),l.shouldSelect&&le(x.select)&&x.select())}},hs=o=>{s={...s,...o}},xt={control:{register:He,unregister:Be,getFieldState:De,handleSubmit:gt,setError:mt,_subscribe:ht,_runSchema:L,_focusError:Qe,_getWatch:N,_getDirty:P,_setValid:v,_setFieldArray:re,_setDisabledField:yt,_setErrors:W,_getFieldArray:T,_reset:bt,_resetDefaultValues:()=>le(t.defaultValues)&&t.defaultValues().then(o=>{pt(o,t.resetOptions),f.state.next({isLoading:!1})}),_removeUnmounted:I,_disableForm:ds,_subjects:f,_proxyFormState:p,get _fields(){return n},get _formValues(){return r},get _state(){return c},set _state(o){c=o},get _defaultValues(){return i},get _names(){return a},set _names(o){a=o},get _formState(){return s},get _options(){return t},set _options(o){t={...t,...o}}},subscribe:us,trigger:se,register:He,handleSubmit:gt,watch:ls,setValue:Y,getValues:oe,reset:pt,resetField:fs,clearErrors:Ce,unregister:Be,setError:mt,setFocus:ms,getFieldState:De};return{...xt,formControl:xt}}function Xt(e={}){const t=h.useRef(void 0),s=h.useRef(void 0),[n,i]=h.useState({isDirty:!1,isValidating:!1,isLoading:le(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:le(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:n},e.defaultValues&&!le(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:c,...a}=tr(e);t.current={...a,formState:n}}const r=t.current.control;return r._options=e,Us(()=>{const c=r._subscribe({formState:r._proxyFormState,callback:()=>i({...r._formState}),reRenderRoot:!0});return i(a=>({...a,isReady:!0})),r._formState.isReady=!0,c},[r]),h.useEffect(()=>r._disableForm(e.disabled),[r,e.disabled]),h.useEffect(()=>{e.mode&&(r._options.mode=e.mode),e.reValidateMode&&(r._options.reValidateMode=e.reValidateMode)},[r,e.mode,e.reValidateMode]),h.useEffect(()=>{e.errors&&(r._setErrors(e.errors),r._focusError())},[r,e.errors]),h.useEffect(()=>{e.shouldUnregister&&r._subjects.state.next({values:r._getWatch()})},[r,e.shouldUnregister]),h.useEffect(()=>{if(r._proxyFormState.isDirty){const c=r._getDirty();c!==n.isDirty&&r._subjects.state.next({isDirty:c})}},[r,n.isDirty]),h.useEffect(()=>{e.values&&!xe(e.values,s.current)?(r._reset(e.values,{keepFieldsRef:!0,...r._options.resetOptions}),s.current=e.values,i(c=>({...c}))):r._resetDefaultValues()},[r,e.values]),h.useEffect(()=>{r._state.mount||(r._setValid(),r._state.mount=!0),r._state.watch&&(r._state.watch=!1,r._subjects.state.next({...r._formState})),r._removeUnmounted()}),t.current.formState=Os(n,r),t.current}const sr=e=>{const{t}=_.useTranslation(),{showStackNotifications:s,showSuccessNotification:n}=ve(),{defaultValues:i,mutationFn:r,formToDto:c,onError:a,onSuccess:m,queryKey:g,onSuccessMessage:p}=e,{control:y,handleSubmit:f,reset:w,setError:S,getValues:v,setValue:R}=Xt({defaultValues:i}),re=h.useCallback($=>{const j=$==null?void 0:$.errors,z=[];return j&&j.forEach(([L,ae])=>{const q=document.querySelector(`[name="${L}"]`);(q instanceof HTMLInputElement||q instanceof HTMLTextAreaElement||q instanceof HTMLSelectElement)&&(q.focus(),q.classList.add("error"),z.push(t(`_entities:${g}.${L}.${ae}`)))}),z},[t,g]),E=h.useCallback(()=>{document.querySelectorAll("input, textarea, select").forEach(j=>{j.classList.remove("error")})},[]),W=we.useMutation({mutationFn:r,onError:$=>{console.error($);const j=$;if(a)a($);else if(je(j)){const z=re(j);s(z.map(L=>({message:L,type:U.error})))}else if(Fe(j)){const z=j.message||t("_accessibility:errors.500"),L=t(`_accessibility:errors.${j.status}`);s([{message:L||z,type:U.error}])}},onSuccess:async $=>{he&&await he.invalidateQueries({queryKey:g}),m&&m($),p&&n({message:p})}});return{control:y,getValues:v,setValue:R,handleSubmit:f,onSubmit:$=>W.mutate(c?c($):$),reset:w,setError:S,parseFormError:re,releaseFormError:E,isLoading:W.isPending}},Zt=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:i=!1}=e;return{action:h.useCallback(c=>({id:be.Delete,hidden:!!c.deletedAt||n,disabled:!!c.deletedAt||i,icon:u.jsx(ie.FontAwesomeIcon,{className:"text-red-500",icon:B.faTrash}),tooltip:t("_pages:common.actions.delete.text"),onClick:()=>s([c==null?void 0:c.id]),onMultipleClick:a=>s(a.map(m=>m.id)),multiple:!0}),[i,n,s,t])}},es=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1}=e;return{action:h.useCallback(r=>({id:be.Restore,hidden:!r.deletedAt||n,disabled:!r.deletedAt,icon:u.jsx(ie.FontAwesomeIcon,{className:"text-red-500",icon:B.faRotateLeft}),tooltip:t("_pages:common.actions.restore.text"),onClick:()=>s([r==null?void 0:r.id]),onMultipleClick:c=>s(c.map(a=>a.id)),multiple:!0}),[n,s,t])}},rr=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1}=e;return{action:h.useCallback(r=>({id:be.Edit,hidden:!!r.deletedAt||n,disabled:!!r.deletedAt,icon:u.jsx(ie.FontAwesomeIcon,{className:"primary",icon:B.faPencil}),tooltip:t("_pages:common.actions.edit.text"),onClick:()=>s(r==null?void 0:r.id)}),[n,s,t])}};var be=(e=>(e.Add="add",e.Edit="edit",e.Delete="delete",e.Restore="restore",e.Refresh="refresh",e.Export="export",e.Import="import",e))(be||{});const ts=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:i=!1,isLoading:r=!1}=e;return{action:h.useCallback(()=>({id:be.Export,hidden:n,disabled:i,icon:u.jsx(ie.FontAwesomeIcon,{className:`${r?"rotate":""}`,icon:r?B.faCircleNotch:B.faCloudArrowDown}),tooltip:t("_pages:common.actions.export.text"),onClick:s}),[i,n,r,s,t])}},ss=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:i=!1,isLoading:r=!1}=e;return{action:h.useCallback(()=>({id:be.Import,hidden:n,disabled:i,icon:u.jsx(ie.FontAwesomeIcon,{className:`${r?"rotate":""}`,icon:r?B.faCircleNotch:B.faCloudUpload}),tooltip:t("_pages:common.actions.import.text"),onClick:s}),[i,n,r,s,t])}},nr=e=>{const{queryKey:t,onSuccess:s,...n}=e,{showStackNotifications:i}=ve(),{t:r}=_.useTranslation(),{open:c,onClick:a,close:m,dialogFn:g,isLoading:p}=at({onSuccessMessage:r("_pages:common.actions.delete.successMessage"),onError:f=>{const w=f;if(je(w))i(w.errors.map(([S,v])=>({message:r(`_pages:${S}.errors.${v}`),type:U.error})));else if(Fe(w)){const S=w.message||r("_accessibility:errors.500"),v=r(`_accessibility:errors.${w.status}`);i([{message:v||S,type:U.error}])}},onSuccess:async f=>{await he.invalidateQueries({queryKey:t}),s&&s(f)},...n}),{action:y}=Zt({onClick:a});return{onClick:a,title:r("_pages:common.actions.delete.dialog.title"),open:c,isLoading:p,handleSubmit:()=>g.mutate(),handleClose:m,action:y}},ft=()=>{const[e,t]=h.useState(!1);return{open:e,setOpen:t,handleClose:()=>t(!1),handleOpen:()=>t(!0)}},ir=e=>{const{t}=_.useTranslation(),{showErrorNotification:s,showStackNotifications:n,showSuccessNotification:i}=ve(),{defaultValues:r,getFunction:c,mutationFn:a,formToDto:m,dtoToForm:g,onError:p,onSuccess:y,queryKey:f,onSuccessMessage:w,title:S}=e,[v,R]=h.useState(0),{open:re,handleClose:E,handleOpen:W}=ft(),{control:$,handleSubmit:j,reset:z,setError:L,getValues:ae,setValue:q}=Xt({defaultValues:r}),{data:I,isLoading:P}=we.useQuery({queryFn:()=>c==null?void 0:c(v),queryKey:[...f,v],enabled:!!c&&!!f&&!!v});h.useEffect(()=>{I&&g&&z({...g(I)})},[I]);const N=h.useCallback(D=>{const X=D==null?void 0:D.errors,se=[];return X&&X.forEach(([oe,De])=>{const Ce=document.querySelector(`[name="${oe}"]`);(Ce instanceof HTMLInputElement||Ce instanceof HTMLTextAreaElement||Ce instanceof HTMLSelectElement)&&(Ce.focus(),Ce.classList.add("error"),se.push(t(`_entities:${f}.${oe}.${De}`)))}),se},[t,f]),T=h.useCallback(()=>{document.querySelectorAll("input, textarea, select").forEach(X=>{X.classList.remove("error")})},[]),O=h.useCallback(D=>{R(D??0),W()},[W]),G=h.useCallback(()=>{T(),E(),z()},[z,T,E]),Y=we.useMutation({mutationFn:a,onError:D=>{if(console.error(D),p)p(D);else{const X=D;if(je(X)){const se=N(X);n(se.map(oe=>({message:oe,type:U.error})))}else if(Fe(X)){const se=X.message||t("_accessibility:errors.500"),oe=t(`_accessibility:errors.${X.status}`);s({message:oe||se})}else s({message:t("_accessibility:errors.500")})}},onSuccess:async D=>{await he.invalidateQueries({queryKey:f}),y&&y(D),i({message:w}),G()}});return{open:re,openDialog:O,handleClose:G,control:$,getValues:ae,setValue:q,handleSubmit:j,onSubmit:D=>Y.mutate(m?m(D):D),reset:z,setError:L,parseFormError:N,releaseFormError:T,title:S,isLoading:P||Y.isPending}},ar=e=>{const{queryKey:t,onSuccess:s,...n}=e,{showStackNotifications:i}=ve(),{t:r}=_.useTranslation(),{open:c,onClick:a,close:m,dialogFn:g,isLoading:p}=at({onSuccessMessage:r("_pages:common.actions.restore.successMessage"),onError:f=>{const w=f;if(je(w))i(w.errors.map(([S,v])=>({message:r(`_pages:${S}.errors.${v}`),type:U.error})));else if(Fe(w)){const S=w.message||r("_accessibility:errors.500"),v=r(`_accessibility:errors.${w.status}`);i([{message:v||S,type:U.error}])}},onSuccess:async f=>{await he.invalidateQueries({queryKey:t}),s&&s(f)},...n}),{action:y}=es({onClick:a});return{onClick:a,title:r("_pages:common.actions.restore.dialog.title"),open:c,isLoading:p,handleSubmit:()=>g.mutate(),handleClose:m,action:y}};function or(e){const{t}=_.useTranslation(),{queryKey:s,mutationFn:n,entity:i,fileProcessor:r,onError:c}=e,[a,m]=h.useState(!1),[g,p]=h.useState(null),[y,f]=h.useState(!1),w=we.useMutation({mutationFn:n,onError:v=>{console.error(v),c==null||c(v)},onSuccess:async()=>{he&&await he.invalidateQueries({queryKey:s})}}),{action:S}=ss({onClick:()=>m(!0)});return{handleSubmit:async()=>{if(!(!g||g.length===0))try{await w.mutateAsync({items:g,override:y}),m(!1),p(null),f(!1)}catch(v){console.error(v)}},isLoading:w.isPending,fileProcessor:r,onFileProcessed:v=>p(v),onOverrideChange:v=>f(v),open:a,title:t("_pages:common.actions.import.dialog.title",{entity:t(`_pages:${i}.title`)}),handleClose:()=>{m(!1),p(null)},action:S}}const cr=e=>{const{showSuccessNotification:t}=ve(),{t:s}=_.useTranslation(),{entity:n,mutationFn:i,onError:r,onSuccess:c,onSuccessMessage:a=s("_pages:common.actions.export.successMessage")}=e,m=we.useMutation({mutationFn:()=>i(),onError:y=>{console.error(y),r&&r(y)},onSuccess:async y=>{const f=JSON.stringify(y,null,2),w=new Blob([f],{type:"application/json"}),S=URL.createObjectURL(w),v=document.createElement("a");v.href=S,v.download=`${n}.json`,v.click(),URL.revokeObjectURL(S),c&&c(y),t({message:a})}}),g=h.useCallback(()=>{m.mutate()},[m]),{action:p}=ts({onClick:g,isLoading:m.isPending});return{action:p}};function rs(e){const[t,s]=h.useState(!1),n=h.useCallback(()=>{const i=window.scrollY>e;s(i)},[e]);return h.useEffect(()=>(window.addEventListener("scroll",n),()=>{window.removeEventListener("scroll",n)}),[n]),t}const lr=()=>{const{t:e}=_.useTranslation(),t=rs(200);return u.jsx(me,{icon:B.faArrowUp,onClick:()=>ks.scrollTo(0,0),"data-tooltip-id":"tooltip","data-tooltip-content":e("_accessibility:buttons.toTop"),className:`submit primary to-top ${t?"show":"hide"}`})},ns=e=>{const{actions:t=[],className:s=""}=e,{t:n}=_.useTranslation(),[i,r]=h.useState(!1);return u.jsxs("div",{className:`actions-dropdown ${s}`,children:[u.jsx(me,{icon:B.faEllipsisV,onClick:()=>r(!0),"data-tooltip-id":"tooltip","data-tooltip-content":n("_accessibility:buttons.openActions")}),u.jsx(Pt,{open:i,onClose:()=>r(!1),children:u.jsx(tt,{showActionTexts:!0,actions:t,className:"flex-col",showTooltips:!1})})]})},ur=h.forwardRef(function(e,t){const{value:s,onChange:n,state:i=_.State.default,name:r="",id:c="",label:a="",disabled:m=!1,required:g=!1,containerClassName:p="",inputClassName:y="",labelClassName:f="",helperText:w="",helperTextClassName:S="",...v}=e;return u.jsxs("div",{className:`relative z-0 w-full mb-5 group ${p}`,children:[u.jsx("textarea",{ref:t,name:r,id:c,className:`text-input text-area ${_.inputStateClassName(i)} ${y} peer`,required:g,value:s,onChange:n,disabled:m,...v}),u.jsxs("label",{htmlFor:r,className:`text-input-label ${_.labelStateClassName(i)} ${f}`,children:[a,g?" *":""]}),!!w&&u.jsx("p",{className:`text-input-helper-text ${_.helperTextStateClassName(i)} ${S}`,children:w})]})}),dr=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,onSubmit:i,isLoading:r=!1,buttonEnd:c=!0,reset:a}=e;return u.jsxs("form",{className:"form-container",onSubmit:n(i),children:[s,u.jsxs("div",{className:`flex gap-2 mt-5 ${c?"justify-end":""}`,children:[u.jsxs(ge,{type:"submit",color:"primary",variant:"submit",disabled:r,name:t("_accessibility:buttons.submit"),"aria-label":t("_accessibility:ariaLabels.submit"),children:[r?u.jsx(_.Loading,{color:"stroke-base",loaderClass:"!w-6 mt-1",strokeWidth:"6"}):null,t("_accessibility:buttons.submit")]}),u.jsx(ge,{type:"button",variant:"outlined",onClick:()=>a==null?void 0:a(),name:t("_accessibility:buttons.cancel"),"aria-label":t("_accessibility:ariaLabels.cancel"),children:t("_accessibility:buttons.cancel")})]})]})},fr=h.forwardRef(function(e,t){const[s,n]=h.useState(!1);return u.jsx(_.TextInput,{...e,type:s?"text":"password",ref:t,children:u.jsx(me,{type:"button",tabIndex:-1,className:"absolute right-2 password-icon",onClick:()=>n(!s),icon:s?B.faEyeSlash:B.faEye})})}),Re=e=>{const{t}=_.useTranslation(),{title:s,children:n,handleClose:i,open:r=!1,containerClassName:c="",className:a="",animationClass:m="appear"}=e,[g,p]=h.useState(window.innerWidth),y=h.useCallback(v=>{v.key==="Escape"&&r&&i()},[r,i]);h.useEffect(()=>(window.addEventListener("keydown",y),()=>{window.removeEventListener("keydown",y)}),[y]);const f=h.useCallback(()=>{p(window.innerWidth)},[]);h.useEffect(()=>(window.addEventListener("resize",f),()=>{window.removeEventListener("resize",f)}),[f]);const w=h.useMemo(()=>ws.css({width:`${g}px`}),[g]),S=h.useCallback(v=>{var R;((R=v==null?void 0:v.currentTarget)==null?void 0:R.getAttribute("name"))===t("_accessibility:buttons.closeDialog")&&i()},[t,i]);return h.useEffect(()=>{const v=R=>{R?document.body.style.overflow="hidden":document.body.style.overflow="auto"};return v(r),()=>{v(r)}},[r]),Vt.createPortal(u.jsx("div",{"aria-label":t("_accessibility:ariaLabels.closeDialog"),"aria-disabled":!r,onClick:S,className:`dialog-backdrop animated ${r?`opened ${m}`:"closed"} ${w} h-screen ${r?"bg-base/20 backdrop-blur-xl":"pointer-events-none"} ${c}`,children:u.jsxs("div",{className:`dialog elevated animated ${r?`opened ${m}`:"closed"} ${a}`,children:[u.jsxs("div",{className:"dialog-header",children:[u.jsx("h3",{className:"text-text text-xl",children:s}),u.jsx(me,{icon:B.faClose,disabled:!r,"aria-disabled":!r,onClick:i,className:"icon-button text-red-400",name:t("_accessibility:buttons.closeDialog"),"aria-label":t("_accessibility:ariaLabels.closeDialog")})]}),n]})}),document.body)},qe=e=>{const{primaryText:t,cancelText:s,onPrimaryClick:n,onCancel:i,isLoading:r=!1,disabled:c=!1,primaryType:a="submit",containerClassName:m="",primaryClassName:g="",alignEnd:p=!1,primaryName:y,primaryAriaLabel:f,cancelName:w,cancelAriaLabel:S}=e;return u.jsxs("div",{className:`flex gap-2 mt-2 ${p?"justify-end":""} ${m}`,children:[u.jsxs(ge,{type:a,color:"primary",variant:"submit",className:g,disabled:c,onClick:a==="button"?n:void 0,name:y,"aria-label":f,children:[r?u.jsx(_.Loading,{color:"stroke-base",loaderClass:"!w-6 mt-1",strokeWidth:"6"}):null,t]}),u.jsx(ge,{type:"button",variant:"outlined",disabled:c,onClick:i,name:w,"aria-label":S,children:s})]})},mr=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,onSubmit:i,handleClose:r,isLoading:c=!1,buttonEnd:a=!0,...m}=e;return u.jsx(Re,{...m,handleClose:r,children:u.jsxs("form",{onSubmit:n(i),children:[u.jsx("div",{className:"form-container",children:s}),u.jsx(qe,{primaryType:"submit",primaryText:t("_accessibility:buttons.submit"),cancelText:t("_accessibility:buttons.cancel"),onCancel:r,isLoading:c,disabled:c,primaryClassName:"!px-6",alignEnd:a,primaryName:t("_accessibility:buttons.submit"),primaryAriaLabel:t("_accessibility:ariaLabels.submit"),cancelName:t("_accessibility:buttons.cancel"),cancelAriaLabel:t("_accessibility:ariaLabels.cancel")})]})})},hr=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,handleClose:i,isLoading:r=!1,...c}=e;return u.jsxs(Re,{...c,handleClose:i,children:[s,u.jsx(qe,{primaryText:t("_accessibility:buttons.ok"),cancelText:t("_accessibility:buttons.cancel"),onPrimaryClick:n,onCancel:i,isLoading:r,disabled:r,primaryType:"button",containerClassName:"mt-5",primaryName:t("_accessibility:buttons.ok"),primaryAriaLabel:t("_accessibility:ariaLabels.ok"),cancelName:t("_accessibility:buttons.cancel"),cancelAriaLabel:t("_accessibility:ariaLabels.cancel")})]})};function yr(e){const{message:t,className:s=""}=e,{t:n}=_.useTranslation();return t?u.jsx("p",{className:`text-red-600 text-sm mt-2 ${s}`,children:t||n("_messages:errors.parseFile",{defaultValue:"Failed to process file"})}):null}function gr(e){const{message:t,className:s=""}=e,{t:n}=_.useTranslation();return u.jsxs("div",{className:`my-4 mx-auto flex items-center gap-3 text-sm text-gray-600 ${s}`,children:[u.jsx(_.Loading,{loaderClass:"w-5 h-5",className:"!w-auto"}),u.jsx("span",{children:t??n("_messages:loading.processingFile",{defaultValue:"Processing file..."})})]})}function br(e){const{items:t,max:s=5,className:n=""}=e,{t:i}=_.useTranslation();if(!t||t.length===0)return null;const r=t.slice(0,s);return u.jsxs("div",{className:`mt-4 ${n}`,children:[u.jsx("p",{className:"text-sm text-gray-600",children:i("_pages:common.actions.import.previewCount",{count:t.length,defaultValue:`Preview: ${t.length} items`})}),u.jsx("pre",{className:"mt-2 max-h-56 overflow-auto rounded bg-gray-100 p-3 text-xs",children:JSON.stringify(r,null,2)})]})}const pr=e=>{const{t}=_.useTranslation(),[s,n]=h.useState(null),[i,r]=h.useState(null),[c,a]=h.useState(null),[m,g]=h.useState(!1),[p,y]=h.useState(!1),{children:f,handleSubmit:w,handleClose:S,isLoading:v=!1,fileProcessor:R,onFileProcessed:re,onOverrideChange:E,open:W,...$}=e,[j,z]=h.useState(0),L=h.useRef(re),ae=h.useRef(R);h.useEffect(()=>{L.current=re},[re]),h.useEffect(()=>{ae.current=R},[R]),h.useEffect(()=>{W||(n(null),r(null),a(null),g(!1),y(!1),z(I=>I+1))},[W]);const q=h.useCallback(async()=>{var I;if(ae.current&&s){g(!0);try{const P=await ae.current(s,{override:p});r(P??[]),a(null),(I=L.current)==null||I.call(L,P??[])}catch(P){console.error(P),r(null);const N=P instanceof Error?P.message:"Failed to parse file";a(N)}g(!1)}},[s,p]);return h.useEffect(()=>{q()},[q]),u.jsxs(Re,{...$,open:W,handleClose:S,children:[u.jsx(_.FileInput,{onClear:()=>{var I;n(null),r(null),a(null),g(!1),(I=L.current)==null||I.call(L,[])},onChange:I=>{var N,T;const P=(N=I.target.files)==null?void 0:N[0];if(!P){n(null),r(null),a(null),g(!1),(T=L.current)==null||T.call(L,[]);return}n(P)},label:t("_accessibility:labels.file")},j),u.jsxs("label",{className:"mt-3 flex items-center gap-2 text-sm",children:[u.jsx("input",{type:"checkbox",checked:p,onChange:I=>{const P=I.target.checked;y(P),E==null||E(P)}}),u.jsx("span",{children:t("_pages:common.actions.import.override",{defaultValue:"Override existing items"})})]}),u.jsx(yr,{message:c??void 0}),m&&u.jsx(gr,{}),!!i&&i.length>0&&u.jsx(br,{items:i}),f,u.jsx(qe,{primaryText:t("_accessibility:buttons.ok"),cancelText:t("_accessibility:buttons.cancel"),onPrimaryClick:()=>{(!R||!!i&&i.length>0)&&w()},onCancel:S,isLoading:v,primaryType:"button",containerClassName:"mt-5",primaryName:t("_accessibility:buttons.ok"),primaryAriaLabel:t("_accessibility:ariaLabels.ok"),cancelName:t("_accessibility:buttons.cancel"),cancelAriaLabel:t("_accessibility:ariaLabels.cancel")})]})};function xr(e){const{t}=_.useTranslation(),{open:s,onClose:n,menuMap:i,logo:r}=e,{account:c}=it(),{linkComponent:a}=$e(),m=a,g=h.useMemo(()=>i.filter(y=>{const f=y.auth,w=!!(c!=null&&c.email);return f==null||f&&w||!f&&!w}),[c]),p=h.useCallback(y=>{y.key==="Escape"&&s&&n()},[n,s]);return h.useEffect(()=>(document.addEventListener("keydown",p),()=>{document.removeEventListener("keydown",p)}),[p]),u.jsx("div",{"aria-label":t("_accessibility:ariaLabels.closeMenu"),"aria-disabled":!s,className:`${s?"opened":"closed"} drawer-backdrop`,onClick:()=>n(),children:u.jsxs("aside",{className:`${s?"opened":"closed"} drawer animated`,children:[u.jsxs("div",{className:"drawer-header-container",children:[r,u.jsx("h2",{className:"drawer-header poppins",children:t("_pages:home.appName")})]}),u.jsx("ul",{className:"flex flex-col",children:g.map((y,f)=>u.jsx("li",{className:`drawer-list-item ${y.path===location.pathname?"active":""} animated`,children:y.type!=="divider"&&m?u.jsxs(m,{"aria-disabled":!s,to:y.path??`/${y.path}`,"aria-label":t(`_accessibility:ariaLabels.${y.path}`),className:"drawer-link",children:[y.icon,t(`_pages:${y.page}.title`)]}):u.jsx("hr",{className:"drawer-divider"})},`${y.page??f}`))})]})})}function wr(e){const{error:t}=e,{t:s}=_.useTranslation();return u.jsxs("div",{className:"flex flex-col items-center justify-center pt-10 gap-5",children:[u.jsx(ie.FontAwesomeIcon,{icon:vs.faSadTear,className:"text-red-300 text-4xl"}),u.jsx("p",{className:"text-text text-center",children:(t==null?void 0:t.message)??s("_accessibility:errors.unknownError")})]})}const vr=e=>{const{showBackButton:t,title:s,actions:n}=e,{t:i}=_.useTranslation(),{navigate:r}=$e();return u.jsxs("div",{className:"page-header",children:[u.jsxs("div",{className:"flex gap-2 items-center justify-start",children:[t&&u.jsx(me,{icon:B.faArrowLeft,onClick:()=>r(-1),name:i("_accessibility:buttons.back"),"data-tooltip-id":"tooltip","data-tooltip-content":i("_accessibility:buttons.back")}),u.jsx("h2",{className:"text-3xl font-bold",children:s})]}),u.jsxs("div",{children:[u.jsx(tt,{className:"max-xs:!hidden",actions:n??[]}),u.jsx(ns,{className:"min-xs:hidden",actions:n??[]})]})]})},Cr=e=>{const{title:t,children:s,addOptions:n,filterOptions:i,actions:r,queryKey:c,isLoading:a=!1,isAnimated:m=!0,showBackButton:g=!1}=e,{t:p}=_.useTranslation(),{countOfFilters:y}=_.useTableOptions(),f=h.useMemo(()=>{const w=Array.isArray(r)?[...r]:[];if(c){const S={id:be.Refresh,onClick:()=>he.invalidateQueries({queryKey:c}),icon:u.jsx(ie.FontAwesomeIcon,{icon:B.faRotateLeft}),tooltip:p("_pages:common.actions.refresh.text")};w.unshift(S)}if(n){const S={...n,id:be.Add,icon:u.jsx(ie.FontAwesomeIcon,{icon:B.faAdd})};w.unshift(S)}if(i){const S={...i,id:"filter",icon:u.jsx(ie.FontAwesomeIcon,{icon:B.faFilter}),children:u.jsx(_.Badge,{className:`${y>0?"show":"hide"} `,count:y})};w.push(S)}return w},[r,n,y,i,c,p]);return u.jsxs("main",{className:"",children:[u.jsxs("div",{className:"flex flex-col",children:[u.jsx(vr,{showBackButton:g,actions:f,title:t}),u.jsx("div",{className:`px-5 py-3 h-useConfigfull ${m?"appear":""}`,children:a?u.jsx(_.Loading,{className:"flex justify-center items-center h-50"}):s})]}),u.jsx(me,{icon:B.faAdd,color:"primary",variant:"submit",onClick:()=>{var w;return(w=n==null?void 0:n.onClick)==null?void 0:w.call(n)},className:"button fab min-xs:!hidden"})]})},kr=e=>{const{t}=_.useTranslation(),{loading:s=!1,emptyComponent:n=null,emptyMessage:i=t("_accessibility:messages.empty"),renderComponent:r,data:c=[]}=e;return u.jsx(u.Fragment,{children:c!=null&&c.length?u.jsx("ul",{className:"pretty-grid-main",children:c==null?void 0:c.map(a=>u.jsx("li",{className:"pretty-grid-item",children:r(a)},a.id))}):u.jsx(u.Fragment,{children:n||u.jsx(cs,{message:i})})})},Sr=()=>{const[e,t]=h.useState(Xe());return h.useEffect(()=>{const s=setInterval(()=>{t(Xe())},1e3);return()=>clearInterval(s)},[]),u.jsx("p",{className:"capitalize max-xs:hidden",children:e})};function Ar(e){const{t}=_.useTranslation(),{openDrawer:s}=e,{searchComponent:n}=$e(),[i,r]=h.useState(!1),c=h.useCallback(m=>{(Ot()?m.metaKey:m.ctrlKey)&&m.shiftKey&&m.key.toLowerCase()==="f"&&(r(!0),m.preventDefault())},[]);h.useEffect(()=>(window.addEventListener("keydown",c),()=>{window.removeEventListener("keydown",c)}),[c]);const a=n;return u.jsxs(u.Fragment,{children:[location.pathname!=="/"&&!!a&&u.jsx(a,{open:i,onClose:()=>r(!1)}),u.jsxs("header",{id:"header",className:"header",children:[u.jsxs("div",{className:"flex gap-2 items-center",children:[u.jsx(me,{type:"button",icon:B.faBars,onClick:s,name:t("_accessibility:buttons.openMenu"),"aria-label":t("_accessibility:ariaLabels.openMenu"),className:"menu animated"}),u.jsx("h1",{className:"text-lg text-text pointer-events-none poppins font-bold",children:t("_pages:home.appName")})]}),u.jsxs("div",{className:"flex items-center justify-end gap-2",children:[u.jsx(me,{icon:B.faSearch,className:"min-xs:!hidden",onClick:()=>r(!0)}),u.jsx(Sr,{})]})]})]})}function _r(){const{t:e}=_.useTranslation(),{notification:t,removeNotification:s}=ve(),[n,i]=h.useState(new Set),r=h.useCallback(y=>{if(y===void 0){const f=new Set(t.map((w,S)=>S));i(f),window.setTimeout(()=>s(),300)}else i(f=>new Set(f).add(y)),window.setTimeout(()=>s(y),300)},[t,s]),c=h.useCallback(y=>{switch(y){case U.error:return B.faWarning;default:return B.faCircleCheck}},[]),a=h.useCallback(y=>{switch(y){case U.success:return"!text-success";case U.error:return"!text-error";case U.warning:return"!text-warning";default:return"!text-info"}},[]),m=h.useCallback(y=>{switch(y){case U.success:return"bg-bg-success";case U.error:return"bg-bg-error";case U.warning:return"bg-bg-warning";default:return"bg-bg-info"}},[]),g=h.useRef();h.useEffect(()=>{g.current=()=>r()},[r]),h.useEffect(()=>{if(!(t!=null&&t.length))return;const y=f=>{var w;return(w=g.current)==null?void 0:w.call(g,f)};return window.addEventListener("click",y),()=>{window.removeEventListener("click",y)}},[t==null?void 0:t.length]);const p=h.useCallback(y=>{y.key==="Escape"&&t.length&&r()},[t,r]);return h.useEffect(()=>(window.addEventListener("keydown",p),()=>{window.removeEventListener("keydown",p)}),[p]),h.useEffect(()=>{i(new Set)},[t]),Vt.createPortal(u.jsx("div",{className:`notification-portal ${t!=null&&t.length?"w-screen h-screen":""}`,children:t!=null&&t.length?t==null?void 0:t.map(({id:y,type:f,message:w},S)=>u.jsxs("div",{className:`notification ${n.has(S)?"closing":""} ${m(f??U.error)}`,onClick:v=>v.stopPropagation(),children:[u.jsxs("div",{className:"flex gap-3 items-center",children:[u.jsx(ie.FontAwesomeIcon,{icon:c(f??U.error),className:`${a(f??U.error)}`}),u.jsx("p",{className:`whitespace-nowrap ${a(f??U.error)}`,children:w})]}),u.jsx(me,{type:"button",icon:B.faClose,color:"error",className:"group",onClick:v=>{v.stopPropagation(),r(S)},iconClassName:`${a(f??U.error)} group-hover:!text-red-400 cursor-pointer`,name:e("_accessibility:buttons.closeNotification"),"aria-label":e("_accessibility:ariaLabels.closeNotification")})]},y)):null}),document.body)}function Er(){return u.jsx("div",{className:"w-screen h-screen flex items-center justify-center overflow-hidden",children:u.jsx(_.Loading,{className:"blur-appear"})})}const is=e=>{const{id:t,active:s,onClick:n,children:i,to:r}=e,{linkComponent:c}=$e(),a=c;return u.jsx(a,{to:r??`#${t}`,onClick:()=>n(),className:`button submit tab ${s?"primary":"outlined"}`,children:i})},as=e=>{var m;const{tabs:t=[],defaultTab:s,className:n="",tabsContainerClassName:i=""}=e,[r,c]=h.useState((m=t[0])==null?void 0:m.id),a=h.useMemo(()=>t.find(g=>g.id===r),[t,r]);return h.useEffect(()=>{s&&c(s)},[s]),u.jsxs("div",{className:`tabs-layout-main ${n}`,children:[u.jsx("ul",{className:`horizontal tabs tabs-container ${i}`,children:t.map(({id:g,to:p,label:y})=>u.jsx("li",{children:u.jsx(is,{onClick:()=>c(g),id:g,to:p??"",siblings:t.length>1,active:r===g,children:y})},g))}),a==null?void 0:a.content]})},os=e=>{const{translation:t,onClickNext:s,image:n="",alt:i="",final:r=!1}=e,{setGuestMode:c}=it(),{t:a}=_.useTranslation();return u.jsxs("div",{className:"big-appear w-md flex flex-col gap-20",children:[u.jsx("img",{src:n,alt:i}),u.jsx("h2",{className:"text-5xl text-center leading-16",children:a(`_pages:onboarding.${t}.title`)}),u.jsx("p",{className:"text-center !text-lg",children:a(`_pages:onboarding.${t}.body`)}),u.jsx("div",{className:"flex gap-5 items-center justify-center",children:r?u.jsxs(u.Fragment,{children:[u.jsx(ge,{color:"primary",className:"!px-8",variant:"outlined",onClick:()=>{c(!0),window.location.href="/"},"aria-label":a("_accessibility:ariaLabels.start"),children:a("_accessibility:buttons.startAsGuest")}),u.jsx(ge,{color:"primary",variant:"submit",className:"!px-8","aria-label":a("_accessibility:ariaLabels.start"),onClick:()=>window.location.href="/auth/sign-in",children:a("_accessibility:buttons.signIn")})]}):u.jsxs(u.Fragment,{children:[u.jsx(ge,{color:"primary",className:"!px-8",variant:"outlined",onClick:()=>window.location.href="/auth/sign-in","aria-label":a("_accessibility:ariaLabels.skip"),children:a("_accessibility:buttons.skip")}),u.jsx(ge,{color:"primary",className:"!px-8",variant:"outlined",onClick:()=>s(),"aria-label":a("_accessibility:ariaLabels.next"),children:a("_accessibility:buttons.next")})]})})]})},Nr=e=>{const{steps:t}=e,[s,n]=h.useState(1),i=h.useMemo(()=>t.map((r,c)=>({id:c+1,label:"",content:u.jsx(os,{translation:r,final:c===t.length-1,onClickNext:()=>n(s+1)})})),[s]);return u.jsx("div",{className:"onboarding-main",children:u.jsx(as,{defaultTab:s,tabs:i})})},cs=e=>{const{message:t,messageProps:s={className:"text-gray-400 text-balance text-center"},action:n,iconProps:i}=e;return u.jsxs("div",{className:"flex flex-col items-center justify-center gap-5 pt-5",children:[i&&u.jsx(ie.FontAwesomeIcon,{...i??{}}),u.jsx("p",{...s??{},children:t}),n&&u.jsx(et,{showTooltips:!1,showText:!0,...n})]})};exports.APIClient=rt;exports.Action=et;exports.Actions=tt;exports.ActionsDropdown=ns;exports.AuthClient=Mt;exports.AuthProvider=$s;exports.BaseClient=_s;exports.Button=ge;exports.ConfigProvider=Ls;exports.ConfirmationDialog=hr;exports.Dialog=Re;exports.DialogActions=qe;exports.Drawer=xr;exports.Dropdown=Pt;exports.Empty=cs;exports.Error=wr;exports.FormContainer=dr;exports.FormDialog=mr;exports.GlobalActions=be;exports.IManager=As;exports.IconButton=me;exports.ImportDialog=pr;exports.ManagerProvider=Fs;exports.Methods=ee;exports.Navbar=Ar;exports.Notification=_r;exports.NotificationEnumType=U;exports.NotificationProvider=js;exports.Onboarding=Nr;exports.Page=Cr;exports.ParagraphInput=ur;exports.PasswordInput=fr;exports.PrettyGrid=kr;exports.SplashScreen=Er;exports.Step=os;exports.Tab=is;exports.TabsLayout=as;exports.ToTop=lr;exports.buildQueryUrl=It;exports.enumToKeyValueArray=Es;exports.formatForDatetimeLocal=Ns;exports.fromLocal=nt;exports.getFormattedDateTime=Xe;exports.isHttpError=Fe;exports.isMac=Ot;exports.isValidationError=je;exports.makeRequest=Ae;exports.mapValidationErrors=Ts;exports.parseQueries=st;exports.queryClient=he;exports.removeFromLocal=Ye;exports.toLocal=Je;exports.useAuth=it;exports.useConfig=$e;exports.useConfirmationForm=at;exports.useDeleteAction=Zt;exports.useDeleteDialog=nr;exports.useDialog=ft;exports.useEditAction=rr;exports.useExportAction=ts;exports.useExportActionMutate=cr;exports.useFormDialog=ir;exports.useImportAction=ss;exports.useImportDialog=or;exports.useManager=qt;exports.useNotification=ve;exports.usePostForm=sr;exports.useRestoreAction=es;exports.useRestoreDialog=ar;exports.useScrollTrigger=rs;exports.useTimeAge=Ss;Object.keys(_).forEach(e=>{e!=="default"&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:()=>_[e]})});