@sito/dashboard-app 0.0.35 → 0.0.37
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 +120 -98
- package/dist/dashboard-app.cjs +1 -1
- package/dist/dashboard-app.js +21 -17
- package/dist/lib/api/APIClient.d.ts +1 -1
- package/dist/lib/api/APIClient.test.d.ts +1 -0
- package/dist/lib/api/BaseClient.test.d.ts +1 -0
- package/dist/lib/api/utils/services.test.d.ts +1 -0
- package/dist/lib/utils/date.test.d.ts +1 -0
- package/dist/lib/utils/local.test.d.ts +1 -0
- package/dist/lib/utils/os.test.d.ts +1 -0
- package/dist/main.css +1 -1
- package/dist/providers/AuthProvider.test.d.ts +1 -0
- package/dist/providers/ConfigProvider.test.d.ts +1 -0
- package/dist/providers/ManagerProvider.test.d.ts +1 -0
- package/dist/test/setup.d.ts +0 -0
- package/package.json +14 -11
package/README.md
CHANGED
|
@@ -1,88 +1,8 @@
|
|
|
1
1
|
# @sito/dashboard-app
|
|
2
2
|
|
|
3
|
-
|
|
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
|
-
```
|
|
3
|
+
`@sito/dashboard-app` is a React 18 component and utilities library for building Sito-style admin dashboards, CRUD screens, and internal tools. It packages UI components, hooks, providers, typed API helpers, and styles in a single npm package.
|
|
83
4
|
|
|
84
5
|
## Installation
|
|
85
|
-
Install the library with your preferred package manager:
|
|
86
6
|
|
|
87
7
|
```bash
|
|
88
8
|
npm install @sito/dashboard-app
|
|
@@ -92,8 +12,28 @@ yarn add @sito/dashboard-app
|
|
|
92
12
|
pnpm add @sito/dashboard-app
|
|
93
13
|
```
|
|
94
14
|
|
|
95
|
-
##
|
|
96
|
-
|
|
15
|
+
## Requirements
|
|
16
|
+
|
|
17
|
+
- Node.js `18.18.0` (see `.nvmrc`)
|
|
18
|
+
- React `18.3.1`
|
|
19
|
+
- React DOM `18.3.1`
|
|
20
|
+
- `@tanstack/react-query` `5.83.0`
|
|
21
|
+
- `react-hook-form` `7.61.1`
|
|
22
|
+
- `@sito/dashboard` `^0.0.61`
|
|
23
|
+
- Font Awesome + Emotion peers defined in `package.json`
|
|
24
|
+
|
|
25
|
+
## Core exports
|
|
26
|
+
|
|
27
|
+
- Layout and navigation: `Page`, `Navbar`, `Drawer`, `TabsLayout`, `PrettyGrid`
|
|
28
|
+
- Actions and menus: `Actions`, `Action`, `Dropdown`, button components
|
|
29
|
+
- Dialogs and forms: `Dialog`, `FormDialog`, `ImportDialog`, form inputs
|
|
30
|
+
- Feedback: `Notification`, `Loading`, `Empty`, `Error`, `Onboarding`
|
|
31
|
+
- Hooks: `useImportDialog`, `useDeleteDialog`, `usePostForm`, `useDeleteAction`, and more
|
|
32
|
+
- Providers and utilities: `ConfigProvider`, `ManagerProvider`, `AuthProvider`, `NotificationProvider`, DTOs, API clients
|
|
33
|
+
|
|
34
|
+
## Initial setup example
|
|
35
|
+
|
|
36
|
+
Wrap your app with the providers to enable navigation, React Query integration, auth context, and notifications.
|
|
97
37
|
|
|
98
38
|
```tsx
|
|
99
39
|
import type { ReactNode } from "react";
|
|
@@ -130,41 +70,123 @@ function AppProviders({ children }: { children: ReactNode }) {
|
|
|
130
70
|
export function App() {
|
|
131
71
|
return (
|
|
132
72
|
<BrowserRouter>
|
|
133
|
-
<AppProviders>
|
|
134
|
-
<CustomersPage />
|
|
135
|
-
</AppProviders>
|
|
73
|
+
<AppProviders>{/* Your app routes/pages */}</AppProviders>
|
|
136
74
|
</BrowserRouter>
|
|
137
75
|
);
|
|
138
76
|
}
|
|
139
77
|
```
|
|
140
78
|
|
|
141
|
-
## Local development
|
|
79
|
+
## Local development (step-by-step)
|
|
80
|
+
|
|
142
81
|
1. Clone the repository:
|
|
143
82
|
```bash
|
|
144
|
-
git clone https://github.com/
|
|
145
|
-
cd sito-dashboard-app
|
|
83
|
+
git clone https://github.com/sito8943/-sito-dashboard-app.git
|
|
84
|
+
cd ./-sito-dashboard-app
|
|
85
|
+
```
|
|
86
|
+
2. Use the project Node version:
|
|
87
|
+
```bash
|
|
88
|
+
nvm use
|
|
146
89
|
```
|
|
147
|
-
|
|
90
|
+
3. Install dependencies:
|
|
148
91
|
```bash
|
|
149
92
|
npm install
|
|
150
93
|
```
|
|
151
|
-
|
|
94
|
+
4. Start the dev server:
|
|
152
95
|
```bash
|
|
153
96
|
npm run dev
|
|
154
97
|
```
|
|
98
|
+
5. (Optional) Run Storybook:
|
|
99
|
+
```bash
|
|
100
|
+
npm run storybook
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Scripts
|
|
104
|
+
|
|
105
|
+
- `npm run dev`: start Vite dev server
|
|
106
|
+
- `npm run build`: compile TypeScript and build the library
|
|
107
|
+
- `npm run preview`: preview the Vite build locally
|
|
108
|
+
- `npm run lint`: run ESLint
|
|
109
|
+
- `npm run test`: run unit/component tests once (Vitest)
|
|
110
|
+
- `npm run test:watch`: run tests in watch mode
|
|
111
|
+
- `npm run format`: run Prettier write mode
|
|
112
|
+
- `npm run storybook`: run Storybook locally
|
|
113
|
+
- `npm run build-storybook`: generate static Storybook build
|
|
114
|
+
|
|
115
|
+
## Tests
|
|
116
|
+
|
|
117
|
+
Automated tests are configured with `Vitest` + `@testing-library/react`.
|
|
118
|
+
|
|
119
|
+
Run all tests once:
|
|
155
120
|
|
|
156
|
-
|
|
157
|
-
|
|
121
|
+
```bash
|
|
122
|
+
npm run test
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Run tests in watch mode:
|
|
158
126
|
|
|
159
127
|
```bash
|
|
160
|
-
npm run
|
|
128
|
+
npm run test:watch
|
|
161
129
|
```
|
|
162
130
|
|
|
131
|
+
Current validation stack:
|
|
132
|
+
|
|
133
|
+
- `npm run lint`
|
|
134
|
+
- `npm run test`
|
|
135
|
+
- `npm run build`
|
|
136
|
+
- Storybook/manual behavior checks (optional visual validation)
|
|
137
|
+
|
|
138
|
+
## Linting and formatting
|
|
139
|
+
|
|
140
|
+
Run linters:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
npm run lint
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Run formatting:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
npm run format
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Deployment / release
|
|
153
|
+
|
|
154
|
+
CI is available through GitHub Actions:
|
|
155
|
+
|
|
156
|
+
- `.github/workflows/ci.yml`: runs `lint + test + build` on `push` and `pull_request`
|
|
157
|
+
- `.github/workflows/lint.yml`: runs lint checks on `push` and `pull_request`
|
|
158
|
+
|
|
159
|
+
Package release/publish is still handled manually.
|
|
160
|
+
|
|
161
|
+
Recommended release flow:
|
|
162
|
+
|
|
163
|
+
1. Ensure your branch is up to date and the working tree is clean.
|
|
164
|
+
2. Update version:
|
|
165
|
+
```bash
|
|
166
|
+
npm version patch
|
|
167
|
+
# or: npm version minor / npm version major
|
|
168
|
+
```
|
|
169
|
+
3. Validate package:
|
|
170
|
+
```bash
|
|
171
|
+
npm run lint
|
|
172
|
+
npm run test
|
|
173
|
+
npm run build
|
|
174
|
+
```
|
|
175
|
+
4. Publish to npm:
|
|
176
|
+
```bash
|
|
177
|
+
npm publish --access public
|
|
178
|
+
```
|
|
179
|
+
5. Push commit and tag:
|
|
180
|
+
```bash
|
|
181
|
+
git push --follow-tags
|
|
182
|
+
```
|
|
183
|
+
|
|
163
184
|
## Contributing
|
|
164
|
-
|
|
185
|
+
|
|
165
186
|
1. Fork the repository.
|
|
166
|
-
2. Create a
|
|
167
|
-
3. Open a
|
|
187
|
+
2. Create a branch for your feature/fix.
|
|
188
|
+
3. Open a PR with a clear change summary and validation notes.
|
|
168
189
|
|
|
169
190
|
## License
|
|
170
|
-
|
|
191
|
+
|
|
192
|
+
MIT (see `LICENSE`).
|
package/dist/dashboard-app.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var vs=Object.defineProperty;var Cs=(e,t,s)=>t in e?vs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var ue=(e,t,s)=>Cs(e,typeof t!="symbol"?t+"":t,s);var Vr=require("./main.css");Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("@sito/dashboard"),u=require("react/jsx-runtime"),h=require("react"),H=require("@fortawesome/free-solid-svg-icons"),ae=require("@fortawesome/react-fontawesome"),Pt=require("react-dom"),Ss=require("@emotion/css"),we=require("@tanstack/react-query"),ks=require("@fortawesome/free-regular-svg-icons");function et(e){const{id:t,icon:s,tooltip:n,onClick:a,children:r,hidden:c=!1,disabled:i=!1,showText:f=!1,showTooltips:y=!0}=e;return c?null:u.jsxs("button",{id:t,className:`action ${f?"text-action":"icon-action"}`,disabled:i,onClick:()=>a(),"aria-disabled":i,"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:a=!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:a,...r,children:r.children})},r.id))})}const Mt=e=>{const{children:t,open:s,onClose:n}=e,a=h.useRef(null),r=h.useCallback(i=>{const f=a.current;!s||!f||f.contains(i.target)||n()},[s,n]),c=h.useCallback(i=>{s&&i.key==="Escape"&&n()},[s,n]);return h.useEffect(()=>{if(s)return setTimeout(()=>{var i;return(i=a.current)==null?void 0:i.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:a,role:"menu","aria-hidden":!s,tabIndex:-1,className:`dropdown-main ${s?"opened":"closed"}`,onClick:i=>i.stopPropagation(),children:t})},me=e=>{const{children:t,icon:s,type:n="button",className:a="",variant:r="text",color:c="default",iconClassName:i="",...f}=e;return u.jsxs("button",{type:n,className:`icon-button ${a} ${r} ${c}`,...f,children:[u.jsx(ae.FontAwesomeIcon,{icon:s,className:`!w-auto ${i}`}),t]})},ge=e=>{const{children:t,type:s="button",variant:n="text",color:a="default",className:r="",...c}=e;return u.jsx("button",{type:s,className:`button ${n} ${a} ${r}`,...c,children:t})};var ze,St;function As(){if(St)return ze;St=1;const e=(i,f="local",y=void 0)=>{if(f==="local"){if(localStorage.getItem(i)!==void 0&&localStorage.getItem(i)!=="undefined"&&localStorage.getItem(i)!==null)return y===void 0||y!==void 0&&localStorage.getItem(i)===y}else if(f==="session"&&sessionStorage.getItem(i)!==void 0&&sessionStorage.getItem(i)!=="undefined"&&sessionStorage.getItem(i)!==null)return y===void 0||y!==void 0&&sessionStorage.getItem(i)===y;return!1},t=i=>{const f={};return i.substring(1).split("&").forEach(p=>{const[g,m]=p.split("=");f[g]=m}),f},s=(i="")=>{if(r(i)&&i.length)return r(i);{let f=navigator.language||navigator.userLanguage;if(f.indexOf("en")<0&&f.indexOf("es")<0&&(f="en-US"),f=f.split("-")[0],f)return i.length&&a(i,730,f),f}return"en"},n=(i=0,f=0,y=window,p="smooth")=>y.scroll({top:i,left:f,behavior:p}),a=(i,f,y,p="/",g="Lax")=>{var m=new Date;m.setTime(m.getTime()+f*24*60*60*1e3);const w="; expires="+m.toUTCString();document.cookie=`${i}=${y||""}${w};path=${p};SameSite=${g}`},r=i=>{const f=`${i}=`,p=decodeURIComponent(document.cookie).split(";");for(let g=0;g<p.length;g+=1){let m=p[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:a,deleteCookie:i=>document.cookie=`${i}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,getUserLanguage:s,scrollTo:n,parseQueries:t,validation:e},ze}var _s=As();function Ns(){const{t:e,language:t}=_.useTranslation();return{timeAge:h.useCallback(n=>{const r=new Date-n,c=Math.floor(r/(1e3*60)),i=Math.floor(c/60),f=t==="es",y=e("_accessibility:labels.ago"),p=e("_accessibility:labels.minute"),g=e("_accessibility:labels.minutes"),m=e("_accessibility:labels.hour"),w=e("_accessibility:labels.hours"),k=e("_accessibility:labels.yesterday"),b=e("_accessibility:labels.justNow");return r<1e3*60?b:c<60?`${f?y:""} ${c} ${c===1?p:g} ${f?"":y}`:i<24?`${f?y:""} ${i} ${i===1?m:w} ${f?"":y}`:i<48?k:n.toLocaleDateString(navigator.language||"es-ES",{day:"2-digit",month:"2-digit",year:"numeric"})},[e,t])}}var R=(e=>(e[e.success=0]="success",e[e.error=1]="error",e[e.warning=2]="warning",e[e.info=3]="info",e))(R||{}),te=(e=>(e.GET="GET",e.POST="POST",e.PUT="PUT",e.PATCH="PATCH",e.DELETE="DELETE",e))(te||{});async function Ae(e,t="GET",s,n){const a={...s?{"Content-Type":"application/json"}:{},...n};try{const r=await fetch(e,{method:t,headers:a,...s?{body:JSON.stringify(s)}:{}}),c=await r.text();let i=null;try{i=c?JSON.parse(c):null}catch{i=null}if(!r.ok){const f=typeof i=="object"&&i!==null?i.message??i.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&&i!==null?i: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,a])=>`${encodeURIComponent(n)}=${encodeURIComponent(String(a))}`).join("&");return s?`${e}?${s}`:e}return e}const st=(e,t,s)=>{const n=[];if(t){const{sortingBy:a,sortingOrder:r,currentPage:c,pageSize:i}=t;n.push(`sort=${String(a)}`,`order=${r}`,`page=${c}`,`pageSize=${i}`)}if(s){const a=Object.entries(s).filter(([,r])=>r!=null&&r!=="").flatMap(([r,c])=>{if(Array.isArray(c))return c.map(i=>`${r}==${encodeURIComponent((i==null?void 0:i.id)??i)}`);if(typeof c=="object"&&c!==null&&"start"in c&&"end"in c){const i=[];return c.start!=null&&c.start!==""&&i.push(`${r}>=${encodeURIComponent(c.start)}`),c.end!=null&&c.end!==""&&i.push(`${r}<=${encodeURIComponent(c.end)}`),i}return typeof c=="object"&&c!==null?`${r}==${encodeURIComponent(c.id??"")}`:`${r}==${encodeURIComponent(c)}`});a.length>0&&n.push(`filters=${a.join(",")}`)}return n.length?`${e}?${n.join("&")}`:e};class rt{constructor(t,s="user",n=!0,a=null){ue(this,"baseUrl");ue(this,"userKey");ue(this,"secured");ue(this,"tokenAcquirer");this.baseUrl=t,this.secured=n,this.userKey=s,a||(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=te.GET,n,a){const r=this.secured?this.defaultTokenAcquirer():{},{data:c,status:i,error:f}=await Ae(`${this.baseUrl}${t}`,s,n,{...r,...a??{}});if(f||i<200||i>=300)throw f??{status:i,message:String(i)};return c}async get(t,s,n){const a=st(t,s,n),r=this.secured?this.defaultTokenAcquirer():void 0,{data:c,error:i}=await Ae(`${this.baseUrl}${a}`,te.GET,null,r);if(i)throw i;return c}async patch(t,s){const n=this.secured?this.defaultTokenAcquirer():void 0,{error:a,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,te.PATCH,s,n);if(a||!r)throw a??{status:c,message:"Unknown error"};return r}async delete(t,s){const n=this.secured?this.defaultTokenAcquirer():void 0,{error:a,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,te.DELETE,s,n);if(a||!r)throw a??{status:c,message:"Unknown error"};return r}async post(t,s){const n=this.secured?this.defaultTokenAcquirer():void 0,{error:a,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,te.POST,s,n);if(a||!r)throw a??{status:c,message:"Unknown error"};return r}}class Ot{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,te.POST,n)}async logout(){return await this.api.doQuery("auth/sign-out",te.POST)}async register(t){return await this.api.doQuery("auth/sign-up",te.POST,t)}async getSession(){return await this.api.doQuery("auth/session",te.GET,null,{...this.api.defaultTokenAcquirer()})}}class Es{constructor(t,s){ue(this,"auth");this.auth=new Ot(t,s)}get Auth(){return this.auth}}class Ts{constructor(t,s,n="user",a=!0){ue(this,"table");ue(this,"secured");ue(this,"api");this.table=t,this.secured=a,this.api=new rt(s,n,a)}async insert(t){return await this.api.post(`${this.table}`,t)}async insertMany(t){return await this.api.doQuery(`${this.table}/batch`,te.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,te.GET,void 0)}async import(t){return await this.api.doQuery(`${this.table}/import`,te.POST,t)}async commonGet(t){return await this.api.doQuery(It(`${this.table}/common`,t),te.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 Fs(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 Ut(e){const t=e?new Date(e):new Date,s=String(t.getDate()).padStart(2,"0"),n=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getFullYear()).slice(-2),r=String(t.getHours()).padStart(2,"0"),c=String(t.getMinutes()).padStart(2,"0");return`${s}/${n}/${a} ${r}:${c}`}function js(e){const t=e?new Date(e):new Date,s=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0"),r=String(t.getHours()).padStart(2,"0"),c=String(t.getMinutes()).padStart(2,"0");return`${s}-${n}-${a}T${r}:${c}`}const Rt=()=>{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 Fe(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 je(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 $s(e,t){return e!=null&&e.errors?e.errors.map(([s,n])=>t(s,n)):[]}const qt=h.createContext({});function Ds(e){const{children:t}=e,[s,n]=h.useReducer((y,p)=>{const{type:g,items:m,index:w}=p;switch(g){case"set":return(m==null?void 0:m.map((k,b)=>({...k,id:b})))??[];case"remove":return w!==void 0?y.filter((k,b)=>b!==w):[]}return y},[],()=>[]),a=y=>n({type:"set",items:[{...y,type:R.error}]}),r=y=>n({type:"set",items:[{...y}]}),c=y=>n({type:"set",items:y}),i=y=>n({type:"set",items:[{...y,type:R.success}]}),f=y=>n({type:"remove",index:y});return u.jsx(qt.Provider,{value:{notification:s,removeNotification:f,showErrorNotification:a,showNotification:r,showSuccessNotification:i,showStackNotifications:c},children:t})}const ve=()=>{const e=h.useContext(qt);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}}}),Bt=h.createContext({}),Ls=e=>{const{children:t,manager:s}=e;return u.jsx(Bt.Provider,{value:{client:s},children:u.jsx(we.QueryClientProvider,{client:he,children:t})})},Ht=()=>{const e=h.useContext(Bt);if(e===void 0)throw new Error("managerContext must be used within a Provider");return e.client},Qt=h.createContext({}),Vs=e=>{const{children:t,guestMode:s="guest_mode",user:n="user"}=e,a=Ht(),[r,c]=h.useState({}),i=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))},[]),p=h.useCallback(async()=>{try{await a.Auth.logout()}catch(w){console.error(w)}c({}),Ye(n)},[a.Auth]),g=h.useCallback(async()=>{try{const w=await a.Auth.getSession();y(w)}catch(w){console.error(w),p()}},[y,p,a.Auth]),m={account:r,logUser:y,logoutUser:p,logUserFromLocal:g,isInGuestMode:i,setGuestMode:f};return u.jsx(Qt.Provider,{value:m,children:t})},at=()=>{const e=h.useContext(Qt);if(e===void 0)throw new Error("authContext must be used within a Provider");return e},Kt=h.createContext({}),Ps=e=>{const{children:t,location:s,navigate:n,linkComponent:a,searchComponent:r}=e;return u.jsx(Kt.Provider,{value:{location:s,navigate:n,linkComponent:a,searchComponent:r},children:t})},$e=()=>{const e=h.useContext(Kt);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},it=h.createContext({}),Ms=e=>{const{children:t}=e,[s,n]=h.useState({}),a=h.useCallback((f,y)=>n(p=>({...p,[f]:[...p[f]??[],y]})),[]),r=h.useCallback((f,y)=>n(p=>({...p,[f]:(p[f]??[]).filter((g,m)=>m!==y)})),[]),c=h.useCallback(f=>{n(f?y=>({...y,[f]:[]}):{})},[]),i=h.useMemo(()=>({dynamicItems:s,addChildItem:a,removeChildItem:r,clearDynamicItems:c}),[s,c,r,a]);return u.jsx(it.Provider,{value:i,children:t})},Wt=()=>h.useContext(it),ot=e=>{const{showSuccessNotification:t}=ve(),{mutationFn:s,onError:n,onSuccess:a,onSuccessMessage:r}=e,[c,i]=h.useState([]),{open:f,handleClose:y,handleOpen:p}=mt(),g=()=>{y(),i([])},m=async k=>{i(k),p()},w=we.useMutation({mutationFn:()=>s(Array.isArray(c)?c:[c]),onError:k=>{console.error(k),n&&n(k),g()},onSuccess:async k=>{a&&a(k),t({message:r}),g()}});return{open:f,onClick:m,close:g,dialogFn:w,isLoading:w.isPending}};var De=e=>e.type==="checkbox",Se=e=>e instanceof Date,ee=e=>e==null;const zt=e=>typeof e=="object";var Q=e=>!ee(e)&&!Array.isArray(e)&&zt(e)&&!Se(e),Is=e=>Q(e)&&e.target?De(e.target)?e.target.checked:e.target.value:e,Os=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,Us=(e,t)=>e.has(Os(t)),Rs=e=>{const t=e.constructor&&e.constructor.prototype;return Q(t)&&t.hasOwnProperty("isPrototypeOf")},ct=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function Y(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(!(ct&&(e instanceof Blob||n))&&(s||Q(e)))if(t=s?[]:{},!s&&!Rs(e))t=e;else for(const a in e)e.hasOwnProperty(a)&&(t[a]=Y(e[a]));else return e;return t}var Ue=e=>/^\w*$/.test(e),W=e=>e===void 0,lt=e=>Array.isArray(e)?e.filter(Boolean):[],ut=e=>lt(e.replace(/["|']|\]/g,"").split(/\.|\[/)),S=(e,t,s)=>{if(!t||!Q(e))return s;const n=(Ue(t)?[t]:ut(t)).reduce((a,r)=>ee(a)?a:a[r],e);return W(n)||n===e?W(e[t])?s:e[t]:n},de=e=>typeof e=="boolean",O=(e,t,s)=>{let n=-1;const a=Ue(t)?[t]:ut(t),r=a.length,c=r-1;for(;++n<r;){const i=a[n];let f=s;if(n!==c){const y=e[i];f=Q(y)||Array.isArray(y)?y:isNaN(+a[n+1])?{}:[]}if(i==="__proto__"||i==="constructor"||i==="prototype")return;e[i]=f,e=e[i]}};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"},qs=h.createContext(null);qs.displayName="HookFormContext";var Bs=(e,t,s,n=!0)=>{const a={defaultValues:t._defaultValues};for(const r in e)Object.defineProperty(a,r,{get:()=>{const c=r;return t._proxyFormState[c]!==ce.all&&(t._proxyFormState[c]=!n||ce.all),e[c]}});return a};const Hs=typeof window<"u"?h.useLayoutEffect:h.useEffect;var fe=e=>typeof e=="string",Qs=(e,t,s,n,a)=>fe(e)?(n&&t.watch.add(e),S(s,e,a)):Array.isArray(e)?e.map(r=>(n&&t.watch.add(r),S(s,r))):(n&&(t.watchAll=!0),s),Ze=e=>ee(e)||!zt(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),a=Object.keys(t);if(n.length!==a.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(!a.includes(r))return!1;if(r!=="ref"){const i=t[r];if(Se(c)&&Se(i)||Q(c)&&Q(i)||Array.isArray(c)&&Array.isArray(i)?!xe(c,i,s):c!==i)return!1}}return!0}var Ks=(e,t,s,n,a)=>t?{...s[e],types:{...s[e]&&s[e].types?s[e].types:{},[n]:a||!0}}:{},Ee=e=>Array.isArray(e)?e:[e],At=()=>{let e=[];return{get observers(){return e},next:a=>{for(const r of e)r.next&&r.next(a)},subscribe:a=>(e.push(a),{unsubscribe:()=>{e=e.filter(r=>r!==a)}}),unsubscribe:()=>{e=[]}}},se=e=>Q(e)&&!Object.keys(e).length,dt=e=>e.type==="file",le=e=>typeof e=="function",Me=e=>{if(!ct)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},Gt=e=>e.type==="select-multiple",ft=e=>e.type==="radio",Ws=e=>ft(e)||De(e),Ge=e=>Me(e)&&e.isConnected;function zs(e,t){const s=t.slice(0,-1).length;let n=0;for(;n<s;)e=W(e)?n++:e[t[n++]];return e}function Gs(e){for(const t in e)if(e.hasOwnProperty(t)&&!W(e[t]))return!1;return!0}function K(e,t){const s=Array.isArray(t)?t:Ue(t)?[t]:ut(t),n=s.length===1?e:zs(e,s),a=s.length-1,r=s[a];return n&&delete n[r],a!==0&&(Q(n)&&se(n)||Array.isArray(n)&&Gs(n))&&K(e,s.slice(0,-1)),e}var Jt=e=>{for(const t in e)if(le(e[t]))return!0;return!1};function Ie(e,t={}){const s=Array.isArray(e);if(Q(e)||s)for(const n in e)Array.isArray(e[n])||Q(e[n])&&!Jt(e[n])?(t[n]=Array.isArray(e[n])?[]:{},Ie(e[n],t[n])):ee(e[n])||(t[n]=!0);return t}function Yt(e,t,s){const n=Array.isArray(e);if(Q(e)||n)for(const a in e)Array.isArray(e[a])||Q(e[a])&&!Jt(e[a])?W(t)||Ze(s[a])?s[a]=Array.isArray(e[a])?Ie(e[a],[]):{...Ie(e[a])}:Yt(e[a],ee(t)?{}:t[a],s[a]):s[a]=!xe(e[a],t[a]);return s}var _e=(e,t)=>Yt(e,t,Ie(t));const _t={value:!1,isValid:!1},Nt={value:!0,isValid:!0};var Xt=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&&!W(e[0].attributes.value)?W(e[0].value)||e[0].value===""?Nt:{value:e[0].value,isValid:!0}:Nt:_t}return _t},Zt=(e,{valueAsNumber:t,valueAsDate:s,setValueAs:n})=>W(e)?e:t?e===""?NaN:e&&+e:s&&fe(e)?new Date(e):n?n(e):e;const Et={isValid:!1,value:null};var es=e=>Array.isArray(e)?e.reduce((t,s)=>s&&s.checked&&!s.disabled?{isValid:!0,value:s.value}:t,Et):Et;function Tt(e){const t=e.ref;return dt(t)?t.files:ft(t)?es(e.refs).value:Gt(t)?[...t.selectedOptions].map(({value:s})=>s):De(t)?Xt(e.refs).value:Zt(W(t.value)?e.ref.value:t.value,e)}var Js=(e,t,s,n)=>{const a={};for(const r of e){const c=S(t,r);c&&O(a,r,c._f)}return{criteriaMode:s,names:[...e],fields:a,shouldUseNativeValidation:n}},Oe=e=>e instanceof RegExp,Ne=e=>W(e)?e:Oe(e)?e.source:Q(e)?Oe(e.value)?e.value.source:e.value:e,Ft=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 Ys=e=>!!e&&!!e.validate&&!!(le(e.validate)&&e.validate.constructor.name===jt||Q(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===jt)),Xs=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),$t=(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 a of s||Object.keys(e)){const r=S(e,a);if(r){const{_f:c,...i}=r;if(c){if(c.refs&&c.refs[0]&&t(c.refs[0],a)&&!n)return!0;if(c.ref&&t(c.ref,c.name)&&!n)return!0;if(Te(i,t))break}else if(Q(i)&&Te(i,t))break}}};function Dt(e,t,s){const n=S(e,s);if(n||Ue(s))return{error:n,name:s};const a=s.split(".");for(;a.length;){const r=a.join("."),c=S(t,r),i=S(e,r);if(c&&!Array.isArray(c)&&s!==r)return{name:s};if(i&&i.type)return{name:r,error:i};if(i&&i.root&&i.root.type)return{name:`${r}.root`,error:i.root};a.pop()}return{name:s}}var Zs=(e,t,s,n)=>{s(e);const{name:a,...r}=e;return se(r)||Object.keys(r).length>=Object.keys(t).length||Object.keys(r).find(c=>t[c]===(!n||ce.all))},er=(e,t,s)=>!e||!t||e===t||Ee(e).some(n=>n&&(s?n===t:n.startsWith(t)||t.startsWith(n))),tr=(e,t,s,n,a)=>a.isOnAll?!1:!s&&a.isOnTouch?!(t||e):(s?n.isOnBlur:a.isOnBlur)?!e:(s?n.isOnChange:a.isOnChange)?e:!0,sr=(e,t)=>!lt(S(e,t)).length&&K(e,t),rr=(e,t,s)=>{const n=Ee(S(e,s));return O(n,"root",t[s]),O(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=>Q(e)&&!Oe(e)?e:{value:e,message:""},Vt=async(e,t,s,n,a,r)=>{const{ref:c,refs:i,required:f,maxLength:y,minLength:p,min:g,max:m,pattern:w,validate:k,name:b,valueAsNumber:j,mount:z}=e._f,N=S(s,b);if(!z||t.has(b))return{};const q=i?i[0]:c,D=E=>{a&&q.reportValidity&&(q.setCustomValidity(de(E)?"":E||""),q.reportValidity())},F={},G=ft(c),L=De(c),ie=G||L,B=(j||dt(c))&&W(c.value)&&W(N)||Me(c)&&c.value===""||N===""||Array.isArray(N)&&!N.length,I=Ks.bind(null,b,n,F),M=(E,T,U,J=ye.maxLength,X=ye.minLength)=>{const V=E?T:U;F[b]={type:E?J:X,message:V,ref:c,...I(E?J:X,V)}};if(r?!Array.isArray(N)||!N.length:f&&(!ie&&(B||ee(N))||de(N)&&!N||L&&!Xt(i).isValid||G&&!es(i).isValid)){const{value:E,message:T}=Pe(f)?{value:!!f,message:f}:ke(f);if(E&&(F[b]={type:ye.required,message:T,ref:q,...I(ye.required,T)},!n))return D(T),F}if(!B&&(!ee(g)||!ee(m))){let E,T;const U=ke(m),J=ke(g);if(!ee(N)&&!isNaN(N)){const X=c.valueAsNumber||N&&+N;ee(U.value)||(E=X>U.value),ee(J.value)||(T=X<J.value)}else{const X=c.valueAsDate||new Date(N),V=oe=>new Date(new Date().toDateString()+" "+oe),Z=c.type=="time",re=c.type=="week";fe(U.value)&&N&&(E=Z?V(N)>V(U.value):re?N>U.value:X>new Date(U.value)),fe(J.value)&&N&&(T=Z?V(N)<V(J.value):re?N<J.value:X<new Date(J.value))}if((E||T)&&(M(!!E,U.message,J.message,ye.max,ye.min),!n))return D(F[b].message),F}if((y||p)&&!B&&(fe(N)||r&&Array.isArray(N))){const E=ke(y),T=ke(p),U=!ee(E.value)&&N.length>+E.value,J=!ee(T.value)&&N.length<+T.value;if((U||J)&&(M(U,E.message,T.message),!n))return D(F[b].message),F}if(w&&!B&&fe(N)){const{value:E,message:T}=ke(w);if(Oe(E)&&!N.match(E)&&(F[b]={type:ye.pattern,message:T,ref:c,...I(ye.pattern,T)},!n))return D(T),F}if(k){if(le(k)){const E=await k(N,s),T=Lt(E,q);if(T&&(F[b]={...T,...I(ye.validate,T.message)},!n))return D(T.message),F}else if(Q(k)){let E={};for(const T in k){if(!se(E)&&!n)break;const U=Lt(await k[T](N,s),q,T);U&&(E={...U,...I(T,U.message)},D(U.message),n&&(F[b]=E))}if(!se(E)&&(F[b]={ref:q,...E},!n))return F}}return D(!0),F};const nr={mode:ce.onSubmit,reValidateMode:ce.onChange,shouldFocusError:!0};function ar(e={}){let t={...nr,...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={},a=Q(t.defaultValues)||Q(t.values)?Y(t.defaultValues||t.values)||{}:{},r=t.shouldUnregister?{}:Y(a),c={action:!1,mount:!1,watch:!1},i={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},f,y=0;const p={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let g={...p};const m={array:At(),state:At()},w=t.criteriaMode===ce.all,k=o=>l=>{clearTimeout(y),y=setTimeout(o,l)},b=async o=>{if(!t.disabled&&(p.isValid||g.isValid||o)){const l=t.resolver?se((await L()).errors):await B(n,!0);l!==s.isValid&&m.state.next({isValid:l})}},j=(o,l)=>{!t.disabled&&(p.isValidating||p.validatingFields||g.isValidating||g.validatingFields)&&((o||Array.from(i.mount)).forEach(d=>{d&&(l?O(s.validatingFields,d,l):K(s.validatingFields,d))}),m.state.next({validatingFields:s.validatingFields,isValidating:!se(s.validatingFields)}))},z=(o,l=[],d,C,v=!0,x=!0)=>{if(C&&d&&!t.disabled){if(c.action=!0,x&&Array.isArray(S(n,o))){const A=d(S(n,o),C.argA,C.argB);v&&O(n,o,A)}if(x&&Array.isArray(S(s.errors,o))){const A=d(S(s.errors,o),C.argA,C.argB);v&&O(s.errors,o,A),sr(s.errors,o)}if((p.touchedFields||g.touchedFields)&&x&&Array.isArray(S(s.touchedFields,o))){const A=d(S(s.touchedFields,o),C.argA,C.argB);v&&O(s.touchedFields,o,A)}(p.dirtyFields||g.dirtyFields)&&(s.dirtyFields=_e(a,r)),m.state.next({name:o,isDirty:M(o,l),dirtyFields:s.dirtyFields,errors:s.errors,isValid:s.isValid})}else O(r,o,l)},N=(o,l)=>{O(s.errors,o,l),m.state.next({errors:s.errors})},q=o=>{s.errors=o,m.state.next({errors:s.errors,isValid:!1})},D=(o,l,d,C)=>{const v=S(n,o);if(v){const x=S(r,o,W(d)?S(a,o):d);W(x)||C&&C.defaultChecked||l?O(r,o,l?x:Tt(v._f)):U(o,x),c.mount&&b()}},F=(o,l,d,C,v)=>{let x=!1,A=!1;const $={name:o};if(!t.disabled){if(!d||C){(p.isDirty||g.isDirty)&&(A=s.isDirty,s.isDirty=$.isDirty=M(),x=A!==$.isDirty);const P=xe(S(a,o),l);A=!!S(s.dirtyFields,o),P?K(s.dirtyFields,o):O(s.dirtyFields,o,!0),$.dirtyFields=s.dirtyFields,x=x||(p.dirtyFields||g.dirtyFields)&&A!==!P}if(d){const P=S(s.touchedFields,o);P||(O(s.touchedFields,o,d),$.touchedFields=s.touchedFields,x=x||(p.touchedFields||g.touchedFields)&&P!==d)}x&&v&&m.state.next($)}return x?$:{}},G=(o,l,d,C)=>{const v=S(s.errors,o),x=(p.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?O(s.errors,o,d):K(s.errors,o)),(d?!xe(v,d):v)||!se(C)||x){const A={...C,...x&&de(l)?{isValid:l}:{},errors:s.errors,name:o};s={...s,...A},m.state.next(A)}},L=async o=>{j(o,!0);const l=await t.resolver(r,t.context,Js(o||i.mount,n,t.criteriaMode,t.shouldUseNativeValidation));return j(o),l},ie=async o=>{const{errors:l}=await L(o);if(o)for(const d of o){const C=S(l,d);C?O(s.errors,d,C):K(s.errors,d)}else s.errors=l;return l},B=async(o,l,d={valid:!0})=>{for(const C in o){const v=o[C];if(v){const{_f:x,...A}=v;if(x){const $=i.array.has(x.name),P=v._f&&Ys(v._f);P&&p.validatingFields&&j([C],!0);const ne=await Vt(v,i.disabled,r,w,t.shouldUseNativeValidation&&!l,$);if(P&&p.validatingFields&&j([C]),ne[x.name]&&(d.valid=!1,l))break;!l&&(S(ne,x.name)?$?rr(s.errors,ne,x.name):O(s.errors,x.name,ne[x.name]):K(s.errors,x.name))}!se(A)&&await B(A,l,d)}}return d.valid},I=()=>{for(const o of i.unMount){const l=S(n,o);l&&(l._f.refs?l._f.refs.every(d=>!Ge(d)):!Ge(l._f.ref))&&Be(o)}i.unMount=new Set},M=(o,l)=>!t.disabled&&(o&&l&&O(r,o,l),!xe(oe(),a)),E=(o,l,d)=>Qs(o,i,{...c.mount?r:W(l)?a:fe(o)?{[o]:l}:l},d,l),T=o=>lt(S(c.mount?r:a,o,t.shouldUnregister?S(a,o,[]):[])),U=(o,l,d={})=>{const C=S(n,o);let v=l;if(C){const x=C._f;x&&(!x.disabled&&O(r,o,Zt(l,x)),v=Me(x.ref)&&ee(l)?"":l,Gt(x.ref)?[...x.ref.options].forEach(A=>A.selected=v.includes(A.value)):x.refs?De(x.ref)?x.refs.forEach(A=>{(!A.defaultChecked||!A.disabled)&&(Array.isArray(v)?A.checked=!!v.find($=>$===A.value):A.checked=v===A.value||!!v)}):x.refs.forEach(A=>A.checked=A.value===v):dt(x.ref)?x.ref.value="":(x.ref.value=v,x.ref.type||m.state.next({name:o,values:Y(r)})))}(d.shouldDirty||d.shouldTouch)&&F(o,v,d.shouldTouch,d.shouldDirty,!0),d.shouldValidate&&re(o)},J=(o,l,d)=>{for(const C in l){if(!l.hasOwnProperty(C))return;const v=l[C],x=o+"."+C,A=S(n,x);(i.array.has(o)||Q(v)||A&&!A._f)&&!Se(v)?J(x,v,d):U(x,v,d)}},X=(o,l,d={})=>{const C=S(n,o),v=i.array.has(o),x=Y(l);O(r,o,x),v?(m.array.next({name:o,values:Y(r)}),(p.isDirty||p.dirtyFields||g.isDirty||g.dirtyFields)&&d.shouldDirty&&m.state.next({name:o,dirtyFields:_e(a,r),isDirty:M(o,x)})):C&&!C._f&&!ee(x)?J(o,x,d):U(o,x,d),$t(o,i)&&m.state.next({...s,name:o}),m.state.next({name:c.mount?o:void 0,values:Y(r)})},V=async o=>{c.mount=!0;const l=o.target;let d=l.name,C=!0;const v=S(n,d),x=P=>{C=Number.isNaN(P)||Se(P)&&isNaN(P.getTime())||xe(P,S(r,d,P))},A=Ft(t.mode),$=Ft(t.reValidateMode);if(v){let P,ne;const Ve=l.type?Tt(v._f):Is(o),pe=o.type===kt.BLUR||o.type===kt.FOCUS_OUT,ps=!Xs(v._f)&&!t.resolver&&!S(s.errors,d)&&!v._f.deps||tr(pe,S(s.touchedFields,d),s.isSubmitted,$,A),Ke=$t(d,i,pe);O(r,d,Ve),pe?(v._f.onBlur&&v._f.onBlur(o),f&&f(0)):v._f.onChange&&v._f.onChange(o);const We=F(d,Ve,pe),xs=!se(We)||Ke;if(!pe&&m.state.next({name:d,type:o.type,values:Y(r)}),ps)return(p.isValid||g.isValid)&&(t.mode==="onBlur"?pe&&b():pe||b()),xs&&m.state.next({name:d,...Ke?{}:We});if(!pe&&Ke&&m.state.next({...s}),t.resolver){const{errors:vt}=await L([d]);if(x(Ve),C){const ws=Dt(s.errors,n,d),Ct=Dt(vt,n,ws.name||d);P=Ct.error,d=Ct.name,ne=se(vt)}}else j([d],!0),P=(await Vt(v,i.disabled,r,w,t.shouldUseNativeValidation))[d],j([d]),x(Ve),C&&(P?ne=!1:(p.isValid||g.isValid)&&(ne=await B(n,!0)));C&&(v._f.deps&&re(v._f.deps),G(d,ne,P,We))}},Z=(o,l)=>{if(S(s.errors,l)&&o.focus)return o.focus(),1},re=async(o,l={})=>{let d,C;const v=Ee(o);if(t.resolver){const x=await ie(W(o)?o:v);d=se(x),C=o?!v.some(A=>S(x,A)):d}else o?(C=(await Promise.all(v.map(async x=>{const A=S(n,x);return await B(A&&A._f?{[x]:A}:A)}))).every(Boolean),!(!C&&!s.isValid)&&b()):C=d=await B(n);return m.state.next({...!fe(o)||(p.isValid||g.isValid)&&d!==s.isValid?{}:{name:o},...t.resolver||!o?{isValid:d}:{},errors:s.errors}),l.shouldFocus&&!C&&Te(n,Z,o?v:i.mount),C},oe=o=>{const l={...c.mount?r:a};return W(o)?l:fe(o)?S(l,o):o.map(d=>S(l,d))},Le=(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=>K(s.errors,l)),m.state.next({errors:o?s.errors:{}})},ht=(o,l,d)=>{const C=(S(n,o,{_f:{}})._f||{}).ref,v=S(s.errors,o)||{},{ref:x,message:A,type:$,...P}=v;O(s.errors,o,{...P,...l,ref:C}),m.state.next({name:o,errors:s.errors,isValid:!1}),d&&d.shouldFocus&&C&&C.focus&&C.focus()},fs=(o,l)=>le(o)?m.state.subscribe({next:d=>"values"in d&&o(E(void 0,l),d)}):E(o,l,!0),yt=o=>m.state.subscribe({next:l=>{er(o.name,l.name,o.exact)&&Zs(l,o.formState||p,bs,o.reRenderRoot)&&o.callback({values:{...r},...s,...l,defaultValues:a})}}).unsubscribe,ms=o=>(c.mount=!0,g={...g,...o.formState},yt({...o,formState:g})),Be=(o,l={})=>{for(const d of o?Ee(o):i.mount)i.mount.delete(d),i.array.delete(d),l.keepValue||(K(n,d),K(r,d)),!l.keepError&&K(s.errors,d),!l.keepDirty&&K(s.dirtyFields,d),!l.keepTouched&&K(s.touchedFields,d),!l.keepIsValidating&&K(s.validatingFields,d),!t.shouldUnregister&&!l.keepDefaultValue&&K(a,d);m.state.next({values:Y(r)}),m.state.next({...s,...l.keepDirty?{isDirty:M()}:{}}),!l.keepIsValid&&b()},gt=({disabled:o,name:l})=>{(de(o)&&c.mount||o||i.disabled.has(l))&&(o?i.disabled.add(l):i.disabled.delete(l))},He=(o,l={})=>{let d=S(n,o);const C=de(l.disabled)||de(t.disabled);return O(n,o,{...d||{},_f:{...d&&d._f?d._f:{ref:{name:o}},name:o,mount:!0,...l}}),i.mount.add(o),d?gt({disabled:de(l.disabled)?l.disabled:t.disabled,name:o}):D(o,!0,l.value),{...C?{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:V,onBlur:V,ref:v=>{if(v){He(o,l),d=S(n,o);const x=W(v.value)&&v.querySelectorAll&&v.querySelectorAll("input,select,textarea")[0]||v,A=Ws(x),$=d._f.refs||[];if(A?$.find(P=>P===x):x===d._f.ref)return;O(n,o,{_f:{...d._f,...A?{refs:[...$.filter(Ge),x,...Array.isArray(S(a,o))?[{}]:[]],ref:{type:x.type,name:o}}:{ref:x}}}),D(o,!1,void 0,x)}else d=S(n,o,{}),d._f&&(d._f.mount=!1),(t.shouldUnregister||l.shouldUnregister)&&!(Us(i.array,o)&&c.action)&&i.unMount.add(o)}}},Qe=()=>t.shouldFocusError&&Te(n,Z,i.mount),hs=o=>{de(o)&&(m.state.next({disabled:o}),Te(n,(l,d)=>{const C=S(n,d);C&&(l.disabled=C._f.disabled||o,Array.isArray(C._f.refs)&&C._f.refs.forEach(v=>{v.disabled=C._f.disabled||o}))},0,!1))},bt=(o,l)=>async d=>{let C;d&&(d.preventDefault&&d.preventDefault(),d.persist&&d.persist());let v=Y(r);if(m.state.next({isSubmitting:!0}),t.resolver){const{errors:x,values:A}=await L();s.errors=x,v=Y(A)}else await B(n);if(i.disabled.size)for(const x of i.disabled)K(v,x);if(K(s.errors,"root"),se(s.errors)){m.state.next({errors:{}});try{await o(v,d)}catch(x){C=x}}else l&&await l({...s.errors},d),Qe(),setTimeout(Qe);if(m.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:se(s.errors)&&!C,submitCount:s.submitCount+1,errors:s.errors}),C)throw C},ys=(o,l={})=>{S(n,o)&&(W(l.defaultValue)?X(o,Y(S(a,o))):(X(o,l.defaultValue),O(a,o,Y(l.defaultValue))),l.keepTouched||K(s.touchedFields,o),l.keepDirty||(K(s.dirtyFields,o),s.isDirty=l.defaultValue?M(o,Y(S(a,o))):M()),l.keepError||(K(s.errors,o),p.isValid&&b()),m.state.next({...s}))},pt=(o,l={})=>{const d=o?Y(o):a,C=Y(d),v=se(o),x=v?a:C;if(l.keepDefaultValues||(a=d),!l.keepValues){if(l.keepDirtyValues){const A=new Set([...i.mount,...Object.keys(_e(a,r))]);for(const $ of Array.from(A))S(s.dirtyFields,$)?O(x,$,S(r,$)):X($,S(x,$))}else{if(ct&&W(o))for(const A of i.mount){const $=S(n,A);if($&&$._f){const P=Array.isArray($._f.refs)?$._f.refs[0]:$._f.ref;if(Me(P)){const ne=P.closest("form");if(ne){ne.reset();break}}}}if(l.keepFieldsRef)for(const A of i.mount)X(A,S(x,A));else n={}}r=t.shouldUnregister?l.keepDefaultValues?Y(a):{}:Y(x),m.array.next({values:{...x}}),m.state.next({values:{...x}})}i={mount:l.keepDirtyValues?i.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,m.state.next({submitCount:l.keepSubmitCount?s.submitCount:0,isDirty:v?!1:l.keepDirty?s.isDirty:!!(l.keepDefaultValues&&!xe(o,a)),isSubmitted:l.keepIsSubmitted?s.isSubmitted:!1,dirtyFields:v?{}:l.keepDirtyValues?l.keepDefaultValues&&r?_e(a,r):s.dirtyFields:l.keepDefaultValues&&o?_e(a,o):l.keepDirty?s.dirtyFields:{},touchedFields:l.keepTouched?s.touchedFields:{},errors:l.keepErrors?s.errors:{},isSubmitSuccessful:l.keepIsSubmitSuccessful?s.isSubmitSuccessful:!1,isSubmitting:!1})},xt=(o,l)=>pt(le(o)?o(r):o,l),gs=(o,l={})=>{const d=S(n,o),C=d&&d._f;if(C){const v=C.refs?C.refs[0]:C.ref;v.focus&&(v.focus(),l.shouldSelect&&le(v.select)&&v.select())}},bs=o=>{s={...s,...o}},wt={control:{register:He,unregister:Be,getFieldState:Le,handleSubmit:bt,setError:ht,_subscribe:yt,_runSchema:L,_focusError:Qe,_getWatch:E,_getDirty:M,_setValid:b,_setFieldArray:z,_setDisabledField:gt,_setErrors:q,_getFieldArray:T,_reset:pt,_resetDefaultValues:()=>le(t.defaultValues)&&t.defaultValues().then(o=>{xt(o,t.resetOptions),m.state.next({isLoading:!1})}),_removeUnmounted:I,_disableForm:hs,_subjects:m,_proxyFormState:p,get _fields(){return n},get _formValues(){return r},get _state(){return c},set _state(o){c=o},get _defaultValues(){return a},get _names(){return i},set _names(o){i=o},get _formState(){return s},get _options(){return t},set _options(o){t={...t,...o}}},subscribe:ms,trigger:re,register:He,handleSubmit:bt,watch:fs,setValue:X,getValues:oe,reset:xt,resetField:ys,clearErrors:Ce,unregister:Be,setError:ht,setFocus:gs,getFieldState:Le};return{...wt,formControl:wt}}function ts(e={}){const t=h.useRef(void 0),s=h.useRef(void 0),[n,a]=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,...i}=ar(e);t.current={...i,formState:n}}const r=t.current.control;return r._options=e,Hs(()=>{const c=r._subscribe({formState:r._proxyFormState,callback:()=>a({...r._formState}),reRenderRoot:!0});return a(i=>({...i,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,a(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=Bs(n,r),t.current}const ir=e=>{const{t}=_.useTranslation(),{showStackNotifications:s,showSuccessNotification:n}=ve(),{defaultValues:a,mutationFn:r,formToDto:c,onError:i,onSuccess:f,queryKey:y,onSuccessMessage:p}=e,{control:g,handleSubmit:m,reset:w,setError:k,getValues:b,setValue:j}=ts({defaultValues:a}),z=h.useCallback(D=>{const F=D==null?void 0:D.errors,G=[];return F&&F.forEach(([L,ie])=>{const B=document.querySelector(`[name="${L}"]`);(B instanceof HTMLInputElement||B instanceof HTMLTextAreaElement||B instanceof HTMLSelectElement)&&(B.focus(),B.classList.add("error"),G.push(t(`_entities:${y}.${L}.${ie}`)))}),G},[t,y]),N=h.useCallback(()=>{document.querySelectorAll("input, textarea, select").forEach(F=>{F.classList.remove("error")})},[]),q=we.useMutation({mutationFn:r,onError:D=>{console.error(D);const F=D;if(i)i(D);else if(Fe(F)){const G=z(F);s(G.map(L=>({message:L,type:R.error})))}else if(je(F)){const G=F.message||t("_accessibility:errors.500"),L=t(`_accessibility:errors.${F.status}`);s([{message:L||G,type:R.error}])}},onSuccess:async D=>{he&&await he.invalidateQueries({queryKey:y}),f&&f(D),p&&n({message:p})}});return{control:g,getValues:b,setValue:j,handleSubmit:m,onSubmit:D=>q.mutate(c?c(D):D),reset:w,setError:k,parseFormError:z,releaseFormError:N,isLoading:q.isPending}},ss=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:a=!1}=e;return{action:h.useCallback(c=>({id:be.Delete,hidden:!!c.deletedAt||n,disabled:!!c.deletedAt||a,icon:u.jsx(ae.FontAwesomeIcon,{className:"text-red-500",icon:H.faTrash}),tooltip:t("_pages:common.actions.delete.text"),onClick:()=>s([c==null?void 0:c.id]),onMultipleClick:i=>s(i.map(f=>f.id)),multiple:!0}),[a,n,s,t])}},rs=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(ae.FontAwesomeIcon,{className:"text-red-500",icon:H.faRotateLeft}),tooltip:t("_pages:common.actions.restore.text"),onClick:()=>s([r==null?void 0:r.id]),onMultipleClick:c=>s(c.map(i=>i.id)),multiple:!0}),[n,s,t])}},or=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(ae.FontAwesomeIcon,{className:"primary",icon:H.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 ns=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:a=!1,isLoading:r=!1}=e;return{action:h.useCallback(()=>({id:be.Export,hidden:n,disabled:a,icon:u.jsx(ae.FontAwesomeIcon,{className:`${r?"rotate":""}`,icon:r?H.faCircleNotch:H.faCloudArrowDown}),tooltip:t("_pages:common.actions.export.text"),onClick:s}),[a,n,r,s,t])}},as=e=>{const{t}=_.useTranslation(),{onClick:s,hidden:n=!1,disabled:a=!1,isLoading:r=!1}=e;return{action:h.useCallback(()=>({id:be.Import,hidden:n,disabled:a,icon:u.jsx(ae.FontAwesomeIcon,{className:`${r?"rotate":""}`,icon:r?H.faCircleNotch:H.faCloudUpload}),tooltip:t("_pages:common.actions.import.text"),onClick:s}),[a,n,r,s,t])}},cr=e=>{const{queryKey:t,onSuccess:s,...n}=e,{showStackNotifications:a}=ve(),{t:r}=_.useTranslation(),{open:c,onClick:i,close:f,dialogFn:y,isLoading:p}=ot({onSuccessMessage:r("_pages:common.actions.delete.successMessage"),onError:m=>{const w=m;if(Fe(w))a(w.errors.map(([k,b])=>({message:r(`_pages:${k}.errors.${b}`),type:R.error})));else if(je(w)){const k=w.message||r("_accessibility:errors.500"),b=r(`_accessibility:errors.${w.status}`);a([{message:b||k,type:R.error}])}},onSuccess:async m=>{await he.invalidateQueries({queryKey:t}),s&&s(m)},...n}),{action:g}=ss({onClick:i});return{onClick:i,title:r("_pages:common.actions.delete.dialog.title"),open:c,isLoading:p,handleSubmit:()=>y.mutate(),handleClose:f,action:g}},mt=()=>{const[e,t]=h.useState(!1);return{open:e,setOpen:t,handleClose:()=>t(!1),handleOpen:()=>t(!0)}},lr=e=>{const{t}=_.useTranslation(),{showErrorNotification:s,showStackNotifications:n,showSuccessNotification:a}=ve(),{defaultValues:r,getFunction:c,mutationFn:i,formToDto:f,dtoToForm:y,onError:p,onSuccess:g,queryKey:m,onSuccessMessage:w,title:k}=e,[b,j]=h.useState(0),{open:z,handleClose:N,handleOpen:q}=mt(),{control:D,handleSubmit:F,reset:G,setError:L,getValues:ie,setValue:B}=ts({defaultValues:r}),{data:I,isLoading:M}=we.useQuery({queryFn:()=>c==null?void 0:c(b),queryKey:[...m,b],enabled:!!c&&!!m&&!!b});h.useEffect(()=>{I&&y&&G({...y(I)})},[I]);const E=h.useCallback(V=>{const Z=V==null?void 0:V.errors,re=[];return Z&&Z.forEach(([oe,Le])=>{const Ce=document.querySelector(`[name="${oe}"]`);(Ce instanceof HTMLInputElement||Ce instanceof HTMLTextAreaElement||Ce instanceof HTMLSelectElement)&&(Ce.focus(),Ce.classList.add("error"),re.push(t(`_entities:${m}.${oe}.${Le}`)))}),re},[t,m]),T=h.useCallback(()=>{document.querySelectorAll("input, textarea, select").forEach(Z=>{Z.classList.remove("error")})},[]),U=h.useCallback(V=>{j(V??0),q()},[q]),J=h.useCallback(()=>{T(),N(),G()},[G,T,N]),X=we.useMutation({mutationFn:i,onError:V=>{if(console.error(V),p)p(V);else{const Z=V;if(Fe(Z)){const re=E(Z);n(re.map(oe=>({message:oe,type:R.error})))}else if(je(Z)){const re=Z.message||t("_accessibility:errors.500"),oe=t(`_accessibility:errors.${Z.status}`);s({message:oe||re})}else s({message:t("_accessibility:errors.500")})}},onSuccess:async V=>{await he.invalidateQueries({queryKey:m}),g&&g(V),a({message:w}),J()}});return{open:z,openDialog:U,handleClose:J,control:D,getValues:ie,setValue:B,handleSubmit:F,onSubmit:V=>X.mutate(f?f(V):V),reset:G,setError:L,parseFormError:E,releaseFormError:T,title:k,isLoading:M||X.isPending}},ur=e=>{const{queryKey:t,onSuccess:s,...n}=e,{showStackNotifications:a}=ve(),{t:r}=_.useTranslation(),{open:c,onClick:i,close:f,dialogFn:y,isLoading:p}=ot({onSuccessMessage:r("_pages:common.actions.restore.successMessage"),onError:m=>{const w=m;if(Fe(w))a(w.errors.map(([k,b])=>({message:r(`_pages:${k}.errors.${b}`),type:R.error})));else if(je(w)){const k=w.message||r("_accessibility:errors.500"),b=r(`_accessibility:errors.${w.status}`);a([{message:b||k,type:R.error}])}},onSuccess:async m=>{await he.invalidateQueries({queryKey:t}),s&&s(m)},...n}),{action:g}=rs({onClick:i});return{onClick:i,title:r("_pages:common.actions.restore.dialog.title"),open:c,isLoading:p,handleSubmit:()=>y.mutate(),handleClose:f,action:g}};function dr(e){const{t}=_.useTranslation(),{queryKey:s,mutationFn:n,entity:a,fileProcessor:r,onError:c}=e,[i,f]=h.useState(!1),[y,p]=h.useState(null),[g,m]=h.useState(!1),w=we.useMutation({mutationFn:n,onError:b=>{console.error(b),c==null||c(b)},onSuccess:async()=>{he&&await he.invalidateQueries({queryKey:s})}}),{action:k}=as({onClick:()=>f(!0)});return{handleSubmit:async()=>{if(!(!y||y.length===0))try{await w.mutateAsync({items:y,override:g}),f(!1),p(null),m(!1)}catch(b){console.error(b)}},isLoading:w.isPending,fileProcessor:r,onFileProcessed:b=>p(b),onOverrideChange:b=>m(b),open:i,title:t("_pages:common.actions.import.dialog.title",{entity:t(`_pages:${a}.title`)}),handleClose:()=>{f(!1),p(null)},action:k}}const fr=e=>{const{showSuccessNotification:t}=ve(),{t:s}=_.useTranslation(),{entity:n,mutationFn:a,onError:r,onSuccess:c,onSuccessMessage:i=s("_pages:common.actions.export.successMessage")}=e,f=we.useMutation({mutationFn:()=>a(),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),b=document.createElement("a");b.href=k,b.download=`${n}.json`,b.click(),URL.revokeObjectURL(k),c&&c(g),t({message:i})}}),y=h.useCallback(()=>{f.mutate()},[f]),{action:p}=ns({onClick:y,isLoading:f.isPending});return{action:p}};function is(e){const[t,s]=h.useState(!1),n=h.useCallback(()=>{const a=window.scrollY>e;s(a)},[e]);return h.useEffect(()=>(window.addEventListener("scroll",n),()=>{window.removeEventListener("scroll",n)}),[n]),t}const mr=()=>{const{t:e}=_.useTranslation(),t=is(200);return u.jsx(me,{icon:H.faArrowUp,onClick:()=>_s.scrollTo(0,0),"data-tooltip-id":"tooltip","data-tooltip-content":e("_accessibility:buttons.toTop"),className:`submit primary to-top ${t?"show":"hide"}`})},os=e=>{const{actions:t=[],className:s=""}=e,{t:n}=_.useTranslation(),[a,r]=h.useState(!1);return u.jsxs("div",{className:`actions-dropdown ${s}`,children:[u.jsx(me,{icon:H.faEllipsisV,onClick:()=>r(!0),"data-tooltip-id":"tooltip","data-tooltip-content":n("_accessibility:buttons.openActions")}),u.jsx(Mt,{open:a,onClose:()=>r(!1),children:u.jsx(tt,{showActionTexts:!0,actions:t,className:"flex-col",showTooltips:!1})})]})},hr=h.forwardRef(function(e,t){const{value:s,onChange:n,state:a=_.State.default,name:r="",id:c="",label:i="",disabled:f=!1,required:y=!1,containerClassName:p="",inputClassName:g="",labelClassName:m="",helperText:w="",helperTextClassName:k="",...b}=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(a)} ${g} peer`,required:y,value:s,onChange:n,disabled:f,...b}),u.jsxs("label",{htmlFor:r,className:`text-input-label ${_.labelStateClassName(a)} ${m}`,children:[i,y?" *":""]}),!!w&&u.jsx("p",{className:`text-input-helper-text ${_.helperTextStateClassName(a)} ${k}`,children:w})]})}),yr=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,onSubmit:a,isLoading:r=!1,buttonEnd:c=!0,reset:i}=e;return u.jsxs("form",{className:"form-container",onSubmit:n(a),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:()=>i==null?void 0:i(),name:t("_accessibility:buttons.cancel"),"aria-label":t("_accessibility:ariaLabels.cancel"),children:t("_accessibility:buttons.cancel")})]})]})},gr=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?H.faEyeSlash:H.faEye})})}),Re=e=>{const{t}=_.useTranslation(),{title:s,children:n,handleClose:a,open:r=!1,containerClassName:c="",className:i="",animationClass:f="appear"}=e,[y,p]=h.useState(window.innerWidth),g=h.useCallback(b=>{b.key==="Escape"&&r&&a()},[r,a]);h.useEffect(()=>(window.addEventListener("keydown",g),()=>{window.removeEventListener("keydown",g)}),[g]);const m=h.useCallback(()=>{p(window.innerWidth)},[]);h.useEffect(()=>(window.addEventListener("resize",m),()=>{window.removeEventListener("resize",m)}),[m]);const w=h.useMemo(()=>Ss.css({width:`${y}px`}),[y]),k=h.useCallback(b=>{var j;((j=b==null?void 0:b.currentTarget)==null?void 0:j.getAttribute("name"))===t("_accessibility:buttons.closeDialog")&&a()},[t,a]);return h.useEffect(()=>{const b=j=>{j?document.body.style.overflow="hidden":document.body.style.overflow="auto"};return b(r),()=>{b(r)}},[r]),Pt.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"} ${i}`,children:[u.jsxs("div",{className:"dialog-header",children:[u.jsx("h3",{className:"text-text text-xl",children:s}),u.jsx(me,{icon:H.faClose,disabled:!r,"aria-disabled":!r,onClick:a,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:a,isLoading:r=!1,disabled:c=!1,primaryType:i="submit",containerClassName:f="",primaryClassName:y="",alignEnd:p=!1,primaryName:g,primaryAriaLabel:m,cancelName:w,cancelAriaLabel:k}=e;return u.jsxs("div",{className:`flex gap-2 mt-2 ${p?"justify-end":""} ${f}`,children:[u.jsxs(ge,{type:i,color:"primary",variant:"submit",className:y,disabled:c,onClick:i==="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:a,name:w,"aria-label":k,children:s})]})},br=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,onSubmit:a,handleClose:r,isLoading:c=!1,buttonEnd:i=!0,...f}=e;return u.jsx(Re,{...f,handleClose:r,children:u.jsxs("form",{onSubmit:n(a),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:i,primaryName:t("_accessibility:buttons.submit"),primaryAriaLabel:t("_accessibility:ariaLabels.submit"),cancelName:t("_accessibility:buttons.cancel"),cancelAriaLabel:t("_accessibility:ariaLabels.cancel")})]})})},pr=e=>{const{t}=_.useTranslation(),{children:s,handleSubmit:n,handleClose:a,isLoading:r=!1,...c}=e;return u.jsxs(Re,{...c,handleClose:a,children:[s,u.jsx(qe,{primaryText:t("_accessibility:buttons.ok"),cancelText:t("_accessibility:buttons.cancel"),onPrimaryClick:n,onCancel:a,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 xr(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 wr(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 vr(e){const{items:t,max:s=5,className:n=""}=e,{t:a}=_.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:a("_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 Cr=e=>{const{t}=_.useTranslation(),[s,n]=h.useState(null),[a,r]=h.useState(null),[c,i]=h.useState(null),[f,y]=h.useState(!1),[p,g]=h.useState(!1),{children:m,handleSubmit:w,handleClose:k,isLoading:b=!1,fileProcessor:j,onFileProcessed:z,onOverrideChange:N,open:q,...D}=e,[F,G]=h.useState(0),L=h.useRef(z),ie=h.useRef(j);h.useEffect(()=>{L.current=z},[z]),h.useEffect(()=>{ie.current=j},[j]),h.useEffect(()=>{q||(n(null),r(null),i(null),y(!1),g(!1),G(I=>I+1))},[q]);const B=h.useCallback(async()=>{var I;if(ie.current&&s){y(!0);try{const M=await ie.current(s,{override:p});r(M??[]),i(null),(I=L.current)==null||I.call(L,M??[])}catch(M){console.error(M),r(null);const E=M instanceof Error?M.message:"Failed to parse file";i(E)}y(!1)}},[s,p]);return h.useEffect(()=>{B()},[B]),u.jsxs(Re,{...D,open:q,handleClose:k,children:[u.jsx(_.FileInput,{onClear:()=>{var I;n(null),r(null),i(null),y(!1),(I=L.current)==null||I.call(L,[])},onChange:I=>{var E,T;const M=(E=I.target.files)==null?void 0:E[0];if(!M){n(null),r(null),i(null),y(!1),(T=L.current)==null||T.call(L,[]);return}n(M)},label:t("_accessibility:labels.file")},F),u.jsxs("label",{className:"mt-3 flex items-center gap-2 text-sm",children:[u.jsx("input",{type:"checkbox",checked:p,onChange:I=>{const M=I.target.checked;g(M),N==null||N(M)}}),u.jsx("span",{children:t("_pages:common.actions.import.override",{defaultValue:"Override existing items"})})]}),u.jsx(xr,{message:c??void 0}),f&&u.jsx(wr,{}),!!a&&a.length>0&&u.jsx(vr,{items:a}),m,u.jsx(qe,{primaryText:t("_accessibility:buttons.ok"),cancelText:t("_accessibility:buttons.cancel"),onPrimaryClick:()=>{(!j||!!a&&a.length>0)&&w()},onCancel:k,isLoading:b,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 Sr(e){const{t}=_.useTranslation(),{open:s,onClose:n,menuMap:a,logo:r}=e,{account:c}=at(),{dynamicItems:i}=Wt(),{linkComponent:f}=$e(),y=f,p=h.useMemo(()=>a.filter(b=>{const j=b.auth,z=!!(c!=null&&c.email);return j==null||j&&z||!j&&!z}),[c==null?void 0:c.email,a]),g=h.useCallback(b=>{b.key==="Escape"&&s&&n()},[n,s]);h.useEffect(()=>(document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g)}),[g]);const m=h.useCallback((b,j)=>j?b===`${location.pathname}${location.search}`:b===location.pathname,[]),w=h.useCallback(b=>u.jsx("li",{className:`drawer-list-item-child ${m(b.path,!0)?"active":""} animated`,children:b.path?u.jsx(y,{"aria-disabled":!s,to:b.path??"/","aria-label":t(`_accessibility:ariaLabels.${b.path}`),className:"drawer-link",children:b.label}):b.label},b.id),[y,s,t,m]),k=h.useMemo(()=>p.map((b,j)=>{const z=b.page??String(j),N=`drawer-list-item ${m(b.path)?"active":""} animated`;if(b.type==="divider")return u.jsx("li",{className:N,children:u.jsx("hr",{className:"drawer-divider"})},z);const q=b.children??(b.page&&i?i[b.page]:null);return u.jsxs("li",{className:N,children:[u.jsxs(y,{"aria-disabled":!s,to:b.path??"/","aria-label":t(`_accessibility:ariaLabels.${b.path}`),className:"drawer-link",children:[b.icon,t(`_pages:${b.page}.title`)]}),q&&u.jsx("ul",{className:"drawer-children-list",children:q.map(w)})]},z)}),[y,i,m,s,p,w,t]);return 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:k})]})})}function kr(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(ae.FontAwesomeIcon,{icon:ks.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 Ar=e=>{const{showBackButton:t,title:s,actions:n}=e,{t:a}=_.useTranslation(),{navigate:r}=$e();return u.jsxs("div",{className:"page-header",children:[u.jsxs("div",{className:"page-header-left",children:[t&&u.jsx(me,{icon:H.faArrowLeft,onClick:()=>r(-1),name:a("_accessibility:buttons.back"),"data-tooltip-id":"tooltip","data-tooltip-content":a("_accessibility:buttons.back")}),u.jsx("h2",{className:"page-header-title",children:s})]}),u.jsxs("div",{children:[u.jsx(tt,{className:"max-xs:!hidden",actions:n??[]}),u.jsx(os,{className:"min-xs:hidden",actions:n??[]})]})]})},_r=e=>{const{title:t,children:s,addOptions:n,filterOptions:a,actions:r,queryKey:c,isLoading:i=!1,isAnimated:f=!0,showBackButton:y=!1}=e,{t:p}=_.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(ae.FontAwesomeIcon,{icon:H.faRotateLeft}),tooltip:p("_pages:common.actions.refresh.text")};w.unshift(k)}if(n){const k={...n,id:be.Add,icon:u.jsx(ae.FontAwesomeIcon,{icon:H.faAdd})};w.unshift(k)}if(a){const k={...a,id:"filter",icon:u.jsx(ae.FontAwesomeIcon,{icon:H.faFilter}),children:u.jsx(_.Badge,{className:`${g>0?"show":"hide"} `,count:g})};w.push(k)}return w},[r,n,g,a,c,p]);return u.jsxs("main",{className:"page-main",children:[u.jsx(Ar,{showBackButton:y,actions:m,title:t}),u.jsx("div",{className:`page-main-content ${f?"appear":""}`,children:i?u.jsx(_.Loading,{className:"page-loading"}):s}),n&&u.jsx(me,{icon:n.icon??H.faAdd,color:n.color??"primary",variant:n.variant??"submit",onClick:()=>{var w;return(w=n.onClick)==null?void 0:w.call(n)},className:`button fab min-xs:!hidden ${n.className??""}`})]})},Nr=e=>{const{t}=_.useTranslation(),{className:s="",itemClassName:n="",loading:a=!1,emptyComponent:r=null,emptyMessage:c=t("_accessibility:messages.empty"),renderComponent:i,data:f=[]}=e;return u.jsx(u.Fragment,{children:f!=null&&f.length?u.jsx("ul",{className:`pretty-grid-main ${s}`,children:f==null?void 0:f.map(y=>u.jsx("li",{className:`pretty-grid-item ${n}`,children:i(y)},y.id))}):u.jsx(u.Fragment,{children:r||u.jsx(ds,{message:c})})})},Er=()=>{const[e,t]=h.useState(Xe());return h.useEffect(()=>{const s=window.matchMedia("(min-width: 768px)"),n=()=>{t(s.matches?Xe():Ut())},a=setInterval(n,1e3);return s.addEventListener("change",n),()=>{clearInterval(a),s.removeEventListener("change",n)}},[]),u.jsx("p",{className:"capitalize max-xs:hidden",children:e})};function Tr(e){const{t}=_.useTranslation(),{openDrawer:s,showClock:n=!0,showSearch:a=!0,menuButtonProps:r}=e,c={...r,type:(r==null?void 0:r.type)??"button",icon:(r==null?void 0:r.icon)??H.faBars,onClick:m=>{var w;(w=r==null?void 0:r.onClick)==null||w.call(r,m),s()},name:(r==null?void 0:r.name)??t("_accessibility:buttons.openMenu"),ariaLabel:(r==null?void 0:r["aria-label"])??t("_accessibility:ariaLabels.openMenu"),className:`navbar-menu animated ${(r==null?void 0:r.className)??""}`},{searchComponent:i}=$e(),[f,y]=h.useState(!1),p=h.useCallback(m=>{(Rt()?m.metaKey:m.ctrlKey)&&m.shiftKey&&m.key.toLowerCase()==="f"&&(y(!0),m.preventDefault())},[]);h.useEffect(()=>(window.addEventListener("keydown",p),()=>{window.removeEventListener("keydown",p)}),[p]);const g=i;return u.jsxs(u.Fragment,{children:[location.pathname!=="/"&&!!g&&u.jsx(g,{open:f,onClose:()=>y(!1)}),u.jsxs("header",{id:"header",className:"header",children:[u.jsxs("div",{className:"navbar-left",children:[u.jsx(me,{...c}),u.jsx("h1",{className:"poppins navbar-title",children:t("_pages:home.appName")})]}),u.jsxs("div",{className:"navbar-right",children:[a&&u.jsx(me,{icon:H.faSearch,className:"min-md:!hidden",onClick:()=>y(!0)}),n&&u.jsx(Er,{})]})]})]})}function Fr(){const{t:e}=_.useTranslation(),{notification:t,removeNotification:s}=ve(),[n,a]=h.useState(new Set),r=h.useCallback(g=>{if(g===void 0){const m=new Set(t.map((w,k)=>k));a(m),window.setTimeout(()=>s(),300)}else a(m=>new Set(m).add(g)),window.setTimeout(()=>s(g),300)},[t,s]),c=h.useCallback(g=>{switch(g){case R.error:return H.faWarning;default:return H.faCircleCheck}},[]),i=h.useCallback(g=>{switch(g){case R.success:return"!text-success";case R.error:return"!text-error";case R.warning:return"!text-warning";default:return"!text-info"}},[]),f=h.useCallback(g=>{switch(g){case R.success:return"bg-bg-success";case R.error:return"bg-bg-error";case R.warning:return"bg-bg-warning";default:return"bg-bg-info"}},[]),y=h.useRef();h.useEffect(()=>{y.current=()=>r()},[r]),h.useEffect(()=>{if(!(t!=null&&t.length))return;const g=m=>{var w;return(w=y.current)==null?void 0:w.call(y,m)};return window.addEventListener("click",g),()=>{window.removeEventListener("click",g)}},[t==null?void 0:t.length]);const p=h.useCallback(g=>{g.key==="Escape"&&t.length&&r()},[t,r]);return h.useEffect(()=>(window.addEventListener("keydown",p),()=>{window.removeEventListener("keydown",p)}),[p]),h.useEffect(()=>{a(new Set)},[t]),Pt.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:g,type:m,message:w},k)=>u.jsxs("div",{className:`notification ${n.has(k)?"closing":""} ${f(m??R.error)}`,onClick:b=>b.stopPropagation(),children:[u.jsxs("div",{className:"flex gap-3 items-center",children:[u.jsx(ae.FontAwesomeIcon,{icon:c(m??R.error),className:`${i(m??R.error)}`}),u.jsx("p",{className:`whitespace-nowrap ${i(m??R.error)}`,children:w})]}),u.jsx(me,{type:"button",icon:H.faClose,color:"error",className:"group",onClick:b=>{b.stopPropagation(),r(k)},iconClassName:`${i(m??R.error)} group-hover:!text-red-400 cursor-pointer`,name:e("_accessibility:buttons.closeNotification"),"aria-label":e("_accessibility:ariaLabels.closeNotification")})]},g)):null}),document.body)}function jr(){return u.jsx("div",{className:"w-screen h-screen flex items-center justify-center overflow-hidden",children:u.jsx(_.Loading,{className:"blur-appear"})})}const cs=e=>{const{id:t,active:s,onClick:n,children:a,to:r}=e,{linkComponent:c}=$e(),i=c;return u.jsx(i,{to:r??`#${t}`,onClick:()=>n(),className:`button submit tab ${s?"primary":"outlined"}`,children:a})},ls=e=>{var f;const{tabs:t=[],defaultTab:s,className:n="",tabsContainerClassName:a=""}=e,[r,c]=h.useState((f=t[0])==null?void 0:f.id),i=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 ${a}`,children:t.map(({id:y,to:p,label:g})=>u.jsx("li",{children:u.jsx(cs,{onClick:()=>c(y),id:y,to:p??"",siblings:t.length>1,active:r===y,children:g})},y))}),i==null?void 0:i.content]})},us=e=>{const{translation:t,onClickNext:s,image:n="",alt:a="",final:r=!1}=e,{setGuestMode:c}=at(),{t:i}=_.useTranslation();return u.jsxs("div",{className:"big-appear w-md flex flex-col gap-20",children:[u.jsx("img",{src:n,alt:a}),u.jsx("h2",{className:"text-5xl text-center leading-16",children:i(`_pages:onboarding.${t}.title`)}),u.jsx("p",{className:"text-center !text-lg",children:i(`_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":i("_accessibility:ariaLabels.start"),children:i("_accessibility:buttons.startAsGuest")}),u.jsx(ge,{color:"primary",variant:"submit",className:"!px-8","aria-label":i("_accessibility:ariaLabels.start"),onClick:()=>window.location.href="/auth/sign-in",children:i("_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":i("_accessibility:ariaLabels.skip"),children:i("_accessibility:buttons.skip")}),u.jsx(ge,{color:"primary",className:"!px-8",variant:"outlined",onClick:()=>s(),"aria-label":i("_accessibility:ariaLabels.next"),children:i("_accessibility:buttons.next")})]})})]})},$r=e=>{const{steps:t}=e,[s,n]=h.useState(1),a=h.useMemo(()=>t.map((r,c)=>({id:c+1,label:"",content:u.jsx(us,{translation:r,final:c===t.length-1,onClickNext:()=>n(s+1)})})),[s]);return u.jsx("div",{className:"onboarding-main",children:u.jsx(ls,{defaultTab:s,tabs:a})})},ds=e=>{const{message:t,messageProps:s={className:"text-gray-400 text-balance text-center"},action:n,iconProps:a}=e;return u.jsxs("div",{className:"flex flex-col items-center justify-center gap-5 pt-5",children:[a&&u.jsx(ae.FontAwesomeIcon,{...a??{}}),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=os;exports.AuthClient=Ot;exports.AuthProvider=Vs;exports.BaseClient=Ts;exports.Button=ge;exports.ConfigProvider=Ps;exports.ConfirmationDialog=pr;exports.Dialog=Re;exports.DialogActions=qe;exports.Drawer=Sr;exports.DrawerMenuContext=it;exports.DrawerMenuProvider=Ms;exports.Dropdown=Mt;exports.Empty=ds;exports.Error=kr;exports.FormContainer=yr;exports.FormDialog=br;exports.GlobalActions=be;exports.IManager=Es;exports.IconButton=me;exports.ImportDialog=Cr;exports.ManagerProvider=Ls;exports.Methods=te;exports.Navbar=Tr;exports.Notification=Fr;exports.NotificationEnumType=R;exports.NotificationProvider=Ds;exports.Onboarding=$r;exports.Page=_r;exports.ParagraphInput=hr;exports.PasswordInput=gr;exports.PrettyGrid=Nr;exports.SplashScreen=jr;exports.Step=us;exports.Tab=cs;exports.TabsLayout=ls;exports.ToTop=mr;exports.buildQueryUrl=It;exports.enumToKeyValueArray=Fs;exports.formatForDatetimeLocal=js;exports.fromLocal=nt;exports.getFormattedDateTime=Xe;exports.getShortFormattedDateTime=Ut;exports.isHttpError=je;exports.isMac=Rt;exports.isValidationError=Fe;exports.makeRequest=Ae;exports.mapValidationErrors=$s;exports.parseQueries=st;exports.queryClient=he;exports.removeFromLocal=Ye;exports.toLocal=Je;exports.useAuth=at;exports.useConfig=$e;exports.useConfirmationForm=ot;exports.useDeleteAction=ss;exports.useDeleteDialog=cr;exports.useDialog=mt;exports.useDrawerMenu=Wt;exports.useEditAction=or;exports.useExportAction=ns;exports.useExportActionMutate=fr;exports.useFormDialog=lr;exports.useImportAction=as;exports.useImportDialog=dr;exports.useManager=Ht;exports.useNotification=ve;exports.usePostForm=ir;exports.useRestoreAction=rs;exports.useRestoreDialog=ur;exports.useScrollTrigger=is;exports.useTimeAge=Ns;Object.keys(_).forEach(e=>{e!=="default"&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:()=>_[e]})});
|
|
1
|
+
var vs=Object.defineProperty;var Cs=(e,t,s)=>t in e?vs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var ue=(e,t,s)=>Cs(e,typeof t!="symbol"?t+"":t,s);var Vr=require("./main.css");Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("@sito/dashboard"),u=require("react/jsx-runtime"),h=require("react"),H=require("@fortawesome/free-solid-svg-icons"),ie=require("@fortawesome/react-fontawesome"),Pt=require("react-dom"),Ss=require("@emotion/css"),we=require("@tanstack/react-query"),ks=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 Mt=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,St;function As(){if(St)return ze;St=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(p=>{const[g,m]=p.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,p="smooth")=>y.scroll({top:a,left:f,behavior:p}),i=(a,f,y,p="/",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=${p};SameSite=${g}`},r=a=>{const f=`${a}=`,p=decodeURIComponent(document.cookie).split(";");for(let g=0;g<p.length;g+=1){let m=p[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 _s=As();function Ns(){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"),p=e("_accessibility:labels.minute"),g=e("_accessibility:labels.minutes"),m=e("_accessibility:labels.hour"),w=e("_accessibility:labels.hours"),k=e("_accessibility:labels.yesterday"),b=e("_accessibility:labels.justNow");return r<1e3*60?b:c<60?`${f?y:""} ${c} ${c===1?p: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 R=(e=>(e[e.success=0]="success",e[e.error=1]="error",e[e.warning=2]="warning",e[e.info=3]="info",e))(R||{}),te=(e=>(e.GET="GET",e.POST="POST",e.PUT="PUT",e.PATCH="PATCH",e.DELETE="DELETE",e))(te||{});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){ue(this,"baseUrl");ue(this,"userKey");ue(this,"secured");ue(this,"tokenAcquirer");this.baseUrl=t,this.secured=n,this.userKey=s,this.tokenAcquirer=i??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=te.GET,n,i){const r=this.secured?this.tokenAcquirer():{},{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.tokenAcquirer():void 0,{data:c,error:a}=await Ae(`${this.baseUrl}${i}`,te.GET,null,r);if(a)throw a;return c}async patch(t,s){const n=this.secured?this.tokenAcquirer():void 0,{error:i,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,te.PATCH,s,n);if(i||!r)throw i??{status:c,message:"Unknown error"};return r}async delete(t,s){const n=this.secured?this.tokenAcquirer():void 0,{error:i,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,te.DELETE,s,n);if(i||!r)throw i??{status:c,message:"Unknown error"};return r}async post(t,s){const n=this.secured?this.tokenAcquirer():void 0,{error:i,data:r,status:c}=await Ae(`${this.baseUrl}${t}`,te.POST,s,n);if(i||!r)throw i??{status:c,message:"Unknown error"};return r}}class Ot{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,te.POST,n)}async logout(){return await this.api.doQuery("auth/sign-out",te.POST)}async register(t){return await this.api.doQuery("auth/sign-up",te.POST,t)}async getSession(){return await this.api.doQuery("auth/session",te.GET,null,{...this.api.defaultTokenAcquirer()})}}class Es{constructor(t,s){ue(this,"auth");this.auth=new Ot(t,s)}get Auth(){return this.auth}}class Fs{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`,te.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,te.GET,void 0)}async import(t){return await this.api.doQuery(`${this.table}/import`,te.POST,t)}async commonGet(t){return await this.api.doQuery(It(`${this.table}/common`,t),te.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 js(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 Ut(e){const t=e?new Date(e):new Date,s=String(t.getDate()).padStart(2,"0"),n=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getFullYear()).slice(-2),r=String(t.getHours()).padStart(2,"0"),c=String(t.getMinutes()).padStart(2,"0");return`${s}/${n}/${i} ${r}:${c}`}function Ts(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 Rt=()=>{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 Te(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 $s(e,t){return e!=null&&e.errors?e.errors.map(([s,n])=>t(s,n)):[]}const qt=h.createContext({});function Ds(e){const{children:t}=e,[s,n]=h.useReducer((y,p)=>{const{type:g,items:m,index:w}=p;switch(g){case"set":return(m==null?void 0:m.map((k,b)=>({...k,id:b})))??[];case"remove":return w!==void 0?y.filter((k,b)=>b!==w):[]}return y},[],()=>[]),i=y=>n({type:"set",items:[{...y,type:R.error}]}),r=y=>n({type:"set",items:[{...y}]}),c=y=>n({type:"set",items:y}),a=y=>n({type:"set",items:[{...y,type:R.success}]}),f=y=>n({type:"remove",index:y});return u.jsx(qt.Provider,{value:{notification:s,removeNotification:f,showErrorNotification:i,showNotification:r,showSuccessNotification:a,showStackNotifications:c},children:t})}const ve=()=>{const e=h.useContext(qt);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}}}),Bt=h.createContext(void 0),Ls=e=>{const{children:t,manager:s}=e;return u.jsx(Bt.Provider,{value:{client:s},children:u.jsx(we.QueryClientProvider,{client:he,children:t})})},Ht=()=>{const e=h.useContext(Bt);if(!e)throw new Error("managerContext must be used within a Provider");return e.client},Qt=h.createContext(void 0),Vs=e=>{const{children:t,guestMode:s="guest_mode",user:n="user"}=e,i=Ht(),[r,c]=h.useState({}),a=h.useCallback(()=>!!nt(s,"boolean")&&r.token===void 0,[r.token,s]),f=h.useCallback(w=>{Je(s,w)},[s]),y=h.useCallback(w=>{w&&(c(w),Ye(s),Je(n,w.token))},[s,n]),p=h.useCallback(async()=>{try{await i.Auth.logout()}catch(w){console.error(w)}c({}),Ye(n)},[i.Auth,n]),g=h.useCallback(async()=>{try{const w=await i.Auth.getSession();y(w)}catch(w){console.error(w),p()}},[y,p,i.Auth]),m={account:r,logUser:y,logoutUser:p,logUserFromLocal:g,isInGuestMode:a,setGuestMode:f};return u.jsx(Qt.Provider,{value:m,children:t})},it=()=>{const e=h.useContext(Qt);if(!e)throw new Error("authContext must be used within a Provider");return e},Kt=h.createContext({}),Ps=e=>{const{children:t,location:s,navigate:n,linkComponent:i,searchComponent:r}=e;return u.jsx(Kt.Provider,{value:{location:s,navigate:n,linkComponent:i,searchComponent:r},children:t})},$e=()=>{const e=h.useContext(Kt);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=h.createContext({}),Ms=e=>{const{children:t}=e,[s,n]=h.useState({}),i=h.useCallback((f,y)=>n(p=>({...p,[f]:[...p[f]??[],y]})),[]),r=h.useCallback((f,y)=>n(p=>({...p,[f]:(p[f]??[]).filter((g,m)=>m!==y)})),[]),c=h.useCallback(f=>{n(f?y=>({...y,[f]:[]}):{})},[]),a=h.useMemo(()=>({dynamicItems:s,addChildItem:i,removeChildItem:r,clearDynamicItems:c}),[s,c,r,i]);return u.jsx(at.Provider,{value:a,children:t})},Wt=()=>h.useContext(at),ot=e=>{const{showSuccessNotification:t}=ve(),{mutationFn:s,onError:n,onSuccess:i,onSuccessMessage:r}=e,[c,a]=h.useState([]),{open:f,handleClose:y,handleOpen:p}=mt(),g=()=>{y(),a([])},m=async k=>{a(k),p()},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 De=e=>e.type==="checkbox",Se=e=>e instanceof Date,ee=e=>e==null;const zt=e=>typeof e=="object";var Q=e=>!ee(e)&&!Array.isArray(e)&&zt(e)&&!Se(e),Is=e=>Q(e)&&e.target?De(e.target)?e.target.checked:e.target.value:e,Os=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,Us=(e,t)=>e.has(Os(t)),Rs=e=>{const t=e.constructor&&e.constructor.prototype;return Q(t)&&t.hasOwnProperty("isPrototypeOf")},ct=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function Y(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(!(ct&&(e instanceof Blob||n))&&(s||Q(e)))if(t=s?[]:{},!s&&!Rs(e))t=e;else for(const i in e)e.hasOwnProperty(i)&&(t[i]=Y(e[i]));else return e;return t}var Ue=e=>/^\w*$/.test(e),W=e=>e===void 0,lt=e=>Array.isArray(e)?e.filter(Boolean):[],ut=e=>lt(e.replace(/["|']|\]/g,"").split(/\.|\[/)),S=(e,t,s)=>{if(!t||!Q(e))return s;const n=(Ue(t)?[t]:ut(t)).reduce((i,r)=>ee(i)?i:i[r],e);return W(n)||n===e?W(e[t])?s:e[t]:n},de=e=>typeof e=="boolean",O=(e,t,s)=>{let n=-1;const i=Ue(t)?[t]:ut(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=Q(y)||Array.isArray(y)?y:isNaN(+i[n+1])?{}:[]}if(a==="__proto__"||a==="constructor"||a==="prototype")return;e[a]=f,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"},qs=h.createContext(null);qs.displayName="HookFormContext";var Bs=(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 Hs=typeof window<"u"?h.useLayoutEffect:h.useEffect;var fe=e=>typeof e=="string",Qs=(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=>ee(e)||!zt(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)||Q(c)&&Q(a)||Array.isArray(c)&&Array.isArray(a)?!xe(c,a,s):c!==a)return!1}}return!0}var Ks=(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],At=()=>{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=[]}}},se=e=>Q(e)&&!Object.keys(e).length,dt=e=>e.type==="file",le=e=>typeof e=="function",Me=e=>{if(!ct)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},Gt=e=>e.type==="select-multiple",ft=e=>e.type==="radio",Ws=e=>ft(e)||De(e),Ge=e=>Me(e)&&e.isConnected;function zs(e,t){const s=t.slice(0,-1).length;let n=0;for(;n<s;)e=W(e)?n++:e[t[n++]];return e}function Gs(e){for(const t in e)if(e.hasOwnProperty(t)&&!W(e[t]))return!1;return!0}function K(e,t){const s=Array.isArray(t)?t:Ue(t)?[t]:ut(t),n=s.length===1?e:zs(e,s),i=s.length-1,r=s[i];return n&&delete n[r],i!==0&&(Q(n)&&se(n)||Array.isArray(n)&&Gs(n))&&K(e,s.slice(0,-1)),e}var Jt=e=>{for(const t in e)if(le(e[t]))return!0;return!1};function Ie(e,t={}){const s=Array.isArray(e);if(Q(e)||s)for(const n in e)Array.isArray(e[n])||Q(e[n])&&!Jt(e[n])?(t[n]=Array.isArray(e[n])?[]:{},Ie(e[n],t[n])):ee(e[n])||(t[n]=!0);return t}function Yt(e,t,s){const n=Array.isArray(e);if(Q(e)||n)for(const i in e)Array.isArray(e[i])||Q(e[i])&&!Jt(e[i])?W(t)||Ze(s[i])?s[i]=Array.isArray(e[i])?Ie(e[i],[]):{...Ie(e[i])}:Yt(e[i],ee(t)?{}:t[i],s[i]):s[i]=!xe(e[i],t[i]);return s}var _e=(e,t)=>Yt(e,t,Ie(t));const _t={value:!1,isValid:!1},Nt={value:!0,isValid:!0};var Xt=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&&!W(e[0].attributes.value)?W(e[0].value)||e[0].value===""?Nt:{value:e[0].value,isValid:!0}:Nt:_t}return _t},Zt=(e,{valueAsNumber:t,valueAsDate:s,setValueAs:n})=>W(e)?e:t?e===""?NaN:e&&+e:s&&fe(e)?new Date(e):n?n(e):e;const Et={isValid:!1,value:null};var es=e=>Array.isArray(e)?e.reduce((t,s)=>s&&s.checked&&!s.disabled?{isValid:!0,value:s.value}:t,Et):Et;function Ft(e){const t=e.ref;return dt(t)?t.files:ft(t)?es(e.refs).value:Gt(t)?[...t.selectedOptions].map(({value:s})=>s):De(t)?Xt(e.refs).value:Zt(W(t.value)?e.ref.value:t.value,e)}var Js=(e,t,s,n)=>{const i={};for(const r of e){const c=S(t,r);c&&O(i,r,c._f)}return{criteriaMode:s,names:[...e],fields:i,shouldUseNativeValidation:n}},Oe=e=>e instanceof RegExp,Ne=e=>W(e)?e:Oe(e)?e.source:Q(e)?Oe(e.value)?e.value.source:e.value:e,jt=e=>({isOnSubmit:!e||e===ce.onSubmit,isOnBlur:e===ce.onBlur,isOnChange:e===ce.onChange,isOnAll:e===ce.all,isOnTouch:e===ce.onTouched});const Tt="AsyncFunction";var Ys=e=>!!e&&!!e.validate&&!!(le(e.validate)&&e.validate.constructor.name===Tt||Q(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===Tt)),Xs=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),$t=(e,t,s)=>!s&&(t.watchAll||t.watch.has(e)||[...t.watch].some(n=>e.startsWith(n)&&/^\.\w+/.test(e.slice(n.length))));const Fe=(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(Fe(a,t))break}else if(Q(a)&&Fe(a,t))break}}};function Dt(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 Zs=(e,t,s,n)=>{s(e);const{name:i,...r}=e;return se(r)||Object.keys(r).length>=Object.keys(t).length||Object.keys(r).find(c=>t[c]===(!n||ce.all))},er=(e,t,s)=>!e||!t||e===t||Ee(e).some(n=>n&&(s?n===t:n.startsWith(t)||t.startsWith(n))),tr=(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,sr=(e,t)=>!lt(S(e,t)).length&&K(e,t),rr=(e,t,s)=>{const n=Ee(S(e,s));return O(n,"root",t[s]),O(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=>Q(e)&&!Oe(e)?e:{value:e,message:""},Vt=async(e,t,s,n,i,r)=>{const{ref:c,refs:a,required:f,maxLength:y,minLength:p,min:g,max:m,pattern:w,validate:k,name:b,valueAsNumber:T,mount:z}=e._f,N=S(s,b);if(!z||t.has(b))return{};const q=a?a[0]:c,D=E=>{i&&q.reportValidity&&(q.setCustomValidity(de(E)?"":E||""),q.reportValidity())},j={},G=ft(c),L=De(c),ae=G||L,B=(T||dt(c))&&W(c.value)&&W(N)||Me(c)&&c.value===""||N===""||Array.isArray(N)&&!N.length,I=Ks.bind(null,b,n,j),M=(E,F,U,J=ye.maxLength,X=ye.minLength)=>{const V=E?F:U;j[b]={type:E?J:X,message:V,ref:c,...I(E?J:X,V)}};if(r?!Array.isArray(N)||!N.length:f&&(!ae&&(B||ee(N))||de(N)&&!N||L&&!Xt(a).isValid||G&&!es(a).isValid)){const{value:E,message:F}=Pe(f)?{value:!!f,message:f}:ke(f);if(E&&(j[b]={type:ye.required,message:F,ref:q,...I(ye.required,F)},!n))return D(F),j}if(!B&&(!ee(g)||!ee(m))){let E,F;const U=ke(m),J=ke(g);if(!ee(N)&&!isNaN(N)){const X=c.valueAsNumber||N&&+N;ee(U.value)||(E=X>U.value),ee(J.value)||(F=X<J.value)}else{const X=c.valueAsDate||new Date(N),V=oe=>new Date(new Date().toDateString()+" "+oe),Z=c.type=="time",re=c.type=="week";fe(U.value)&&N&&(E=Z?V(N)>V(U.value):re?N>U.value:X>new Date(U.value)),fe(J.value)&&N&&(F=Z?V(N)<V(J.value):re?N<J.value:X<new Date(J.value))}if((E||F)&&(M(!!E,U.message,J.message,ye.max,ye.min),!n))return D(j[b].message),j}if((y||p)&&!B&&(fe(N)||r&&Array.isArray(N))){const E=ke(y),F=ke(p),U=!ee(E.value)&&N.length>+E.value,J=!ee(F.value)&&N.length<+F.value;if((U||J)&&(M(U,E.message,F.message),!n))return D(j[b].message),j}if(w&&!B&&fe(N)){const{value:E,message:F}=ke(w);if(Oe(E)&&!N.match(E)&&(j[b]={type:ye.pattern,message:F,ref:c,...I(ye.pattern,F)},!n))return D(F),j}if(k){if(le(k)){const E=await k(N,s),F=Lt(E,q);if(F&&(j[b]={...F,...I(ye.validate,F.message)},!n))return D(F.message),j}else if(Q(k)){let E={};for(const F in k){if(!se(E)&&!n)break;const U=Lt(await k[F](N,s),q,F);U&&(E={...U,...I(F,U.message)},D(U.message),n&&(j[b]=E))}if(!se(E)&&(j[b]={ref:q,...E},!n))return j}}return D(!0),j};const nr={mode:ce.onSubmit,reValidateMode:ce.onChange,shouldFocusError:!0};function ir(e={}){let t={...nr,...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=Q(t.defaultValues)||Q(t.values)?Y(t.defaultValues||t.values)||{}:{},r=t.shouldUnregister?{}:Y(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 p={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let g={...p};const m={array:At(),state:At()},w=t.criteriaMode===ce.all,k=o=>l=>{clearTimeout(y),y=setTimeout(o,l)},b=async o=>{if(!t.disabled&&(p.isValid||g.isValid||o)){const l=t.resolver?se((await L()).errors):await B(n,!0);l!==s.isValid&&m.state.next({isValid:l})}},T=(o,l)=>{!t.disabled&&(p.isValidating||p.validatingFields||g.isValidating||g.validatingFields)&&((o||Array.from(a.mount)).forEach(d=>{d&&(l?O(s.validatingFields,d,l):K(s.validatingFields,d))}),m.state.next({validatingFields:s.validatingFields,isValidating:!se(s.validatingFields)}))},z=(o,l=[],d,C,v=!0,x=!0)=>{if(C&&d&&!t.disabled){if(c.action=!0,x&&Array.isArray(S(n,o))){const A=d(S(n,o),C.argA,C.argB);v&&O(n,o,A)}if(x&&Array.isArray(S(s.errors,o))){const A=d(S(s.errors,o),C.argA,C.argB);v&&O(s.errors,o,A),sr(s.errors,o)}if((p.touchedFields||g.touchedFields)&&x&&Array.isArray(S(s.touchedFields,o))){const A=d(S(s.touchedFields,o),C.argA,C.argB);v&&O(s.touchedFields,o,A)}(p.dirtyFields||g.dirtyFields)&&(s.dirtyFields=_e(i,r)),m.state.next({name:o,isDirty:M(o,l),dirtyFields:s.dirtyFields,errors:s.errors,isValid:s.isValid})}else O(r,o,l)},N=(o,l)=>{O(s.errors,o,l),m.state.next({errors:s.errors})},q=o=>{s.errors=o,m.state.next({errors:s.errors,isValid:!1})},D=(o,l,d,C)=>{const v=S(n,o);if(v){const x=S(r,o,W(d)?S(i,o):d);W(x)||C&&C.defaultChecked||l?O(r,o,l?x:Ft(v._f)):U(o,x),c.mount&&b()}},j=(o,l,d,C,v)=>{let x=!1,A=!1;const $={name:o};if(!t.disabled){if(!d||C){(p.isDirty||g.isDirty)&&(A=s.isDirty,s.isDirty=$.isDirty=M(),x=A!==$.isDirty);const P=xe(S(i,o),l);A=!!S(s.dirtyFields,o),P?K(s.dirtyFields,o):O(s.dirtyFields,o,!0),$.dirtyFields=s.dirtyFields,x=x||(p.dirtyFields||g.dirtyFields)&&A!==!P}if(d){const P=S(s.touchedFields,o);P||(O(s.touchedFields,o,d),$.touchedFields=s.touchedFields,x=x||(p.touchedFields||g.touchedFields)&&P!==d)}x&&v&&m.state.next($)}return x?$:{}},G=(o,l,d,C)=>{const v=S(s.errors,o),x=(p.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?O(s.errors,o,d):K(s.errors,o)),(d?!xe(v,d):v)||!se(C)||x){const A={...C,...x&&de(l)?{isValid:l}:{},errors:s.errors,name:o};s={...s,...A},m.state.next(A)}},L=async o=>{T(o,!0);const l=await t.resolver(r,t.context,Js(o||a.mount,n,t.criteriaMode,t.shouldUseNativeValidation));return T(o),l},ae=async o=>{const{errors:l}=await L(o);if(o)for(const d of o){const C=S(l,d);C?O(s.errors,d,C):K(s.errors,d)}else s.errors=l;return l},B=async(o,l,d={valid:!0})=>{for(const C in o){const v=o[C];if(v){const{_f:x,...A}=v;if(x){const $=a.array.has(x.name),P=v._f&&Ys(v._f);P&&p.validatingFields&&T([C],!0);const ne=await Vt(v,a.disabled,r,w,t.shouldUseNativeValidation&&!l,$);if(P&&p.validatingFields&&T([C]),ne[x.name]&&(d.valid=!1,l))break;!l&&(S(ne,x.name)?$?rr(s.errors,ne,x.name):O(s.errors,x.name,ne[x.name]):K(s.errors,x.name))}!se(A)&&await B(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},M=(o,l)=>!t.disabled&&(o&&l&&O(r,o,l),!xe(oe(),i)),E=(o,l,d)=>Qs(o,a,{...c.mount?r:W(l)?i:fe(o)?{[o]:l}:l},d,l),F=o=>lt(S(c.mount?r:i,o,t.shouldUnregister?S(i,o,[]):[])),U=(o,l,d={})=>{const C=S(n,o);let v=l;if(C){const x=C._f;x&&(!x.disabled&&O(r,o,Zt(l,x)),v=Me(x.ref)&&ee(l)?"":l,Gt(x.ref)?[...x.ref.options].forEach(A=>A.selected=v.includes(A.value)):x.refs?De(x.ref)?x.refs.forEach(A=>{(!A.defaultChecked||!A.disabled)&&(Array.isArray(v)?A.checked=!!v.find($=>$===A.value):A.checked=v===A.value||!!v)}):x.refs.forEach(A=>A.checked=A.value===v):dt(x.ref)?x.ref.value="":(x.ref.value=v,x.ref.type||m.state.next({name:o,values:Y(r)})))}(d.shouldDirty||d.shouldTouch)&&j(o,v,d.shouldTouch,d.shouldDirty,!0),d.shouldValidate&&re(o)},J=(o,l,d)=>{for(const C in l){if(!l.hasOwnProperty(C))return;const v=l[C],x=o+"."+C,A=S(n,x);(a.array.has(o)||Q(v)||A&&!A._f)&&!Se(v)?J(x,v,d):U(x,v,d)}},X=(o,l,d={})=>{const C=S(n,o),v=a.array.has(o),x=Y(l);O(r,o,x),v?(m.array.next({name:o,values:Y(r)}),(p.isDirty||p.dirtyFields||g.isDirty||g.dirtyFields)&&d.shouldDirty&&m.state.next({name:o,dirtyFields:_e(i,r),isDirty:M(o,x)})):C&&!C._f&&!ee(x)?J(o,x,d):U(o,x,d),$t(o,a)&&m.state.next({...s,name:o}),m.state.next({name:c.mount?o:void 0,values:Y(r)})},V=async o=>{c.mount=!0;const l=o.target;let d=l.name,C=!0;const v=S(n,d),x=P=>{C=Number.isNaN(P)||Se(P)&&isNaN(P.getTime())||xe(P,S(r,d,P))},A=jt(t.mode),$=jt(t.reValidateMode);if(v){let P,ne;const Ve=l.type?Ft(v._f):Is(o),pe=o.type===kt.BLUR||o.type===kt.FOCUS_OUT,ps=!Xs(v._f)&&!t.resolver&&!S(s.errors,d)&&!v._f.deps||tr(pe,S(s.touchedFields,d),s.isSubmitted,$,A),Ke=$t(d,a,pe);O(r,d,Ve),pe?(v._f.onBlur&&v._f.onBlur(o),f&&f(0)):v._f.onChange&&v._f.onChange(o);const We=j(d,Ve,pe),xs=!se(We)||Ke;if(!pe&&m.state.next({name:d,type:o.type,values:Y(r)}),ps)return(p.isValid||g.isValid)&&(t.mode==="onBlur"?pe&&b():pe||b()),xs&&m.state.next({name:d,...Ke?{}:We});if(!pe&&Ke&&m.state.next({...s}),t.resolver){const{errors:vt}=await L([d]);if(x(Ve),C){const ws=Dt(s.errors,n,d),Ct=Dt(vt,n,ws.name||d);P=Ct.error,d=Ct.name,ne=se(vt)}}else T([d],!0),P=(await Vt(v,a.disabled,r,w,t.shouldUseNativeValidation))[d],T([d]),x(Ve),C&&(P?ne=!1:(p.isValid||g.isValid)&&(ne=await B(n,!0)));C&&(v._f.deps&&re(v._f.deps),G(d,ne,P,We))}},Z=(o,l)=>{if(S(s.errors,l)&&o.focus)return o.focus(),1},re=async(o,l={})=>{let d,C;const v=Ee(o);if(t.resolver){const x=await ae(W(o)?o:v);d=se(x),C=o?!v.some(A=>S(x,A)):d}else o?(C=(await Promise.all(v.map(async x=>{const A=S(n,x);return await B(A&&A._f?{[x]:A}:A)}))).every(Boolean),!(!C&&!s.isValid)&&b()):C=d=await B(n);return m.state.next({...!fe(o)||(p.isValid||g.isValid)&&d!==s.isValid?{}:{name:o},...t.resolver||!o?{isValid:d}:{},errors:s.errors}),l.shouldFocus&&!C&&Fe(n,Z,o?v:a.mount),C},oe=o=>{const l={...c.mount?r:i};return W(o)?l:fe(o)?S(l,o):o.map(d=>S(l,d))},Le=(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=>K(s.errors,l)),m.state.next({errors:o?s.errors:{}})},ht=(o,l,d)=>{const C=(S(n,o,{_f:{}})._f||{}).ref,v=S(s.errors,o)||{},{ref:x,message:A,type:$,...P}=v;O(s.errors,o,{...P,...l,ref:C}),m.state.next({name:o,errors:s.errors,isValid:!1}),d&&d.shouldFocus&&C&&C.focus&&C.focus()},fs=(o,l)=>le(o)?m.state.subscribe({next:d=>"values"in d&&o(E(void 0,l),d)}):E(o,l,!0),yt=o=>m.state.subscribe({next:l=>{er(o.name,l.name,o.exact)&&Zs(l,o.formState||p,bs,o.reRenderRoot)&&o.callback({values:{...r},...s,...l,defaultValues:i})}}).unsubscribe,ms=o=>(c.mount=!0,g={...g,...o.formState},yt({...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||(K(n,d),K(r,d)),!l.keepError&&K(s.errors,d),!l.keepDirty&&K(s.dirtyFields,d),!l.keepTouched&&K(s.touchedFields,d),!l.keepIsValidating&&K(s.validatingFields,d),!t.shouldUnregister&&!l.keepDefaultValue&&K(i,d);m.state.next({values:Y(r)}),m.state.next({...s,...l.keepDirty?{isDirty:M()}:{}}),!l.keepIsValid&&b()},gt=({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 C=de(l.disabled)||de(t.disabled);return O(n,o,{...d||{},_f:{...d&&d._f?d._f:{ref:{name:o}},name:o,mount:!0,...l}}),a.mount.add(o),d?gt({disabled:de(l.disabled)?l.disabled:t.disabled,name:o}):D(o,!0,l.value),{...C?{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:V,onBlur:V,ref:v=>{if(v){He(o,l),d=S(n,o);const x=W(v.value)&&v.querySelectorAll&&v.querySelectorAll("input,select,textarea")[0]||v,A=Ws(x),$=d._f.refs||[];if(A?$.find(P=>P===x):x===d._f.ref)return;O(n,o,{_f:{...d._f,...A?{refs:[...$.filter(Ge),x,...Array.isArray(S(i,o))?[{}]:[]],ref:{type:x.type,name:o}}:{ref:x}}}),D(o,!1,void 0,x)}else d=S(n,o,{}),d._f&&(d._f.mount=!1),(t.shouldUnregister||l.shouldUnregister)&&!(Us(a.array,o)&&c.action)&&a.unMount.add(o)}}},Qe=()=>t.shouldFocusError&&Fe(n,Z,a.mount),hs=o=>{de(o)&&(m.state.next({disabled:o}),Fe(n,(l,d)=>{const C=S(n,d);C&&(l.disabled=C._f.disabled||o,Array.isArray(C._f.refs)&&C._f.refs.forEach(v=>{v.disabled=C._f.disabled||o}))},0,!1))},bt=(o,l)=>async d=>{let C;d&&(d.preventDefault&&d.preventDefault(),d.persist&&d.persist());let v=Y(r);if(m.state.next({isSubmitting:!0}),t.resolver){const{errors:x,values:A}=await L();s.errors=x,v=Y(A)}else await B(n);if(a.disabled.size)for(const x of a.disabled)K(v,x);if(K(s.errors,"root"),se(s.errors)){m.state.next({errors:{}});try{await o(v,d)}catch(x){C=x}}else l&&await l({...s.errors},d),Qe(),setTimeout(Qe);if(m.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:se(s.errors)&&!C,submitCount:s.submitCount+1,errors:s.errors}),C)throw C},ys=(o,l={})=>{S(n,o)&&(W(l.defaultValue)?X(o,Y(S(i,o))):(X(o,l.defaultValue),O(i,o,Y(l.defaultValue))),l.keepTouched||K(s.touchedFields,o),l.keepDirty||(K(s.dirtyFields,o),s.isDirty=l.defaultValue?M(o,Y(S(i,o))):M()),l.keepError||(K(s.errors,o),p.isValid&&b()),m.state.next({...s}))},pt=(o,l={})=>{const d=o?Y(o):i,C=Y(d),v=se(o),x=v?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 $ of Array.from(A))S(s.dirtyFields,$)?O(x,$,S(r,$)):X($,S(x,$))}else{if(ct&&W(o))for(const A of a.mount){const $=S(n,A);if($&&$._f){const P=Array.isArray($._f.refs)?$._f.refs[0]:$._f.ref;if(Me(P)){const ne=P.closest("form");if(ne){ne.reset();break}}}}if(l.keepFieldsRef)for(const A of a.mount)X(A,S(x,A));else n={}}r=t.shouldUnregister?l.keepDefaultValues?Y(i):{}:Y(x),m.array.next({values:{...x}}),m.state.next({values:{...x}})}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,m.state.next({submitCount:l.keepSubmitCount?s.submitCount:0,isDirty:v?!1:l.keepDirty?s.isDirty:!!(l.keepDefaultValues&&!xe(o,i)),isSubmitted:l.keepIsSubmitted?s.isSubmitted:!1,dirtyFields:v?{}: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})},xt=(o,l)=>pt(le(o)?o(r):o,l),gs=(o,l={})=>{const d=S(n,o),C=d&&d._f;if(C){const v=C.refs?C.refs[0]:C.ref;v.focus&&(v.focus(),l.shouldSelect&&le(v.select)&&v.select())}},bs=o=>{s={...s,...o}},wt={control:{register:He,unregister:Be,getFieldState:Le,handleSubmit:bt,setError:ht,_subscribe:yt,_runSchema:L,_focusError:Qe,_getWatch:E,_getDirty:M,_setValid:b,_setFieldArray:z,_setDisabledField:gt,_setErrors:q,_getFieldArray:F,_reset:pt,_resetDefaultValues:()=>le(t.defaultValues)&&t.defaultValues().then(o=>{xt(o,t.resetOptions),m.state.next({isLoading:!1})}),_removeUnmounted:I,_disableForm:hs,_subjects:m,_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:ms,trigger:re,register:He,handleSubmit:bt,watch:fs,setValue:X,getValues:oe,reset:xt,resetField:ys,clearErrors:Ce,unregister:Be,setError:ht,setFocus:gs,getFieldState:Le};return{...wt,formControl:wt}}function ts(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}=ir(e);t.current={...a,formState:n}}const r=t.current.control;return r._options=e,Hs(()=>{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=Bs(n,r),t.current}const ar=e=>{const{t}=_.useTranslation(),{showStackNotifications:s,showSuccessNotification:n}=ve(),{defaultValues:i,mutationFn:r,formToDto:c,onError:a,onSuccess:f,queryKey:y,onSuccessMessage:p}=e,{control:g,handleSubmit:m,reset:w,setError:k,getValues:b,setValue:T}=ts({defaultValues:i}),z=h.useCallback(D=>{const j=D==null?void 0:D.errors,G=[];return j&&j.forEach(([L,ae])=>{const B=document.querySelector(`[name="${L}"]`);(B instanceof HTMLInputElement||B instanceof HTMLTextAreaElement||B instanceof HTMLSelectElement)&&(B.focus(),B.classList.add("error"),G.push(t(`_entities:${y}.${L}.${ae}`)))}),G},[t,y]),N=h.useCallback(()=>{document.querySelectorAll("input, textarea, select").forEach(j=>{j.classList.remove("error")})},[]),q=we.useMutation({mutationFn:r,onError:D=>{console.error(D);const j=D;if(a)a(D);else if(je(j)){const G=z(j);s(G.map(L=>({message:L,type:R.error})))}else if(Te(j)){const G=j.message||t("_accessibility:errors.500"),L=t(`_accessibility:errors.${j.status}`);s([{message:L||G,type:R.error}])}},onSuccess:async D=>{he&&await he.invalidateQueries({queryKey:y}),f&&f(D),p&&n({message:p})}});return{control:g,getValues:b,setValue:T,handleSubmit:m,onSubmit:D=>q.mutate(c?c(D):D),reset:w,setError:k,parseFormError:z,releaseFormError:N,isLoading:q.isPending}},ss=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:H.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])}},rs=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:H.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])}},or=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:H.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 ns=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?H.faCircleNotch:H.faCloudArrowDown}),tooltip:t("_pages:common.actions.export.text"),onClick:s}),[i,n,r,s,t])}},is=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?H.faCircleNotch:H.faCloudUpload}),tooltip:t("_pages:common.actions.import.text"),onClick:s}),[i,n,r,s,t])}},cr=e=>{const{queryKey:t,onSuccess:s,...n}=e,{showStackNotifications:i}=ve(),{t:r}=_.useTranslation(),{open:c,onClick:a,close:f,dialogFn:y,isLoading:p}=ot({onSuccessMessage:r("_pages:common.actions.delete.successMessage"),onError:m=>{const w=m;if(je(w))i(w.errors.map(([k,b])=>({message:r(`_pages:${k}.errors.${b}`),type:R.error})));else if(Te(w)){const k=w.message||r("_accessibility:errors.500"),b=r(`_accessibility:errors.${w.status}`);i([{message:b||k,type:R.error}])}},onSuccess:async m=>{await he.invalidateQueries({queryKey:t}),s&&s(m)},...n}),{action:g}=ss({onClick:a});return{onClick:a,title:r("_pages:common.actions.delete.dialog.title"),open:c,isLoading:p,handleSubmit:()=>y.mutate(),handleClose:f,action:g}},mt=()=>{const[e,t]=h.useState(!1);return{open:e,setOpen:t,handleClose:()=>t(!1),handleOpen:()=>t(!0)}},lr=e=>{const{t}=_.useTranslation(),{showErrorNotification:s,showStackNotifications:n,showSuccessNotification:i}=ve(),{defaultValues:r,getFunction:c,mutationFn:a,formToDto:f,dtoToForm:y,onError:p,onSuccess:g,queryKey:m,onSuccessMessage:w,title:k}=e,[b,T]=h.useState(0),{open:z,handleClose:N,handleOpen:q}=mt(),{control:D,handleSubmit:j,reset:G,setError:L,getValues:ae,setValue:B}=ts({defaultValues:r}),{data:I,isLoading:M}=we.useQuery({queryFn:()=>c==null?void 0:c(b),queryKey:[...m,b],enabled:!!c&&!!m&&!!b});h.useEffect(()=>{I&&y&&G({...y(I)})},[I]);const E=h.useCallback(V=>{const Z=V==null?void 0:V.errors,re=[];return Z&&Z.forEach(([oe,Le])=>{const Ce=document.querySelector(`[name="${oe}"]`);(Ce instanceof HTMLInputElement||Ce instanceof HTMLTextAreaElement||Ce instanceof HTMLSelectElement)&&(Ce.focus(),Ce.classList.add("error"),re.push(t(`_entities:${m}.${oe}.${Le}`)))}),re},[t,m]),F=h.useCallback(()=>{document.querySelectorAll("input, textarea, select").forEach(Z=>{Z.classList.remove("error")})},[]),U=h.useCallback(V=>{T(V??0),q()},[q]),J=h.useCallback(()=>{F(),N(),G()},[G,F,N]),X=we.useMutation({mutationFn:a,onError:V=>{if(console.error(V),p)p(V);else{const Z=V;if(je(Z)){const re=E(Z);n(re.map(oe=>({message:oe,type:R.error})))}else if(Te(Z)){const re=Z.message||t("_accessibility:errors.500"),oe=t(`_accessibility:errors.${Z.status}`);s({message:oe||re})}else s({message:t("_accessibility:errors.500")})}},onSuccess:async V=>{await he.invalidateQueries({queryKey:m}),g&&g(V),i({message:w}),J()}});return{open:z,openDialog:U,handleClose:J,control:D,getValues:ae,setValue:B,handleSubmit:j,onSubmit:V=>X.mutate(f?f(V):V),reset:G,setError:L,parseFormError:E,releaseFormError:F,title:k,isLoading:M||X.isPending}},ur=e=>{const{queryKey:t,onSuccess:s,...n}=e,{showStackNotifications:i}=ve(),{t:r}=_.useTranslation(),{open:c,onClick:a,close:f,dialogFn:y,isLoading:p}=ot({onSuccessMessage:r("_pages:common.actions.restore.successMessage"),onError:m=>{const w=m;if(je(w))i(w.errors.map(([k,b])=>({message:r(`_pages:${k}.errors.${b}`),type:R.error})));else if(Te(w)){const k=w.message||r("_accessibility:errors.500"),b=r(`_accessibility:errors.${w.status}`);i([{message:b||k,type:R.error}])}},onSuccess:async m=>{await he.invalidateQueries({queryKey:t}),s&&s(m)},...n}),{action:g}=rs({onClick:a});return{onClick:a,title:r("_pages:common.actions.restore.dialog.title"),open:c,isLoading:p,handleSubmit:()=>y.mutate(),handleClose:f,action:g}};function dr(e){const{t}=_.useTranslation(),{queryKey:s,mutationFn:n,entity:i,fileProcessor:r,onError:c}=e,[a,f]=h.useState(!1),[y,p]=h.useState(null),[g,m]=h.useState(!1),w=we.useMutation({mutationFn:n,onError:b=>{console.error(b),c==null||c(b)},onSuccess:async()=>{he&&await he.invalidateQueries({queryKey:s})}}),{action:k}=is({onClick:()=>f(!0)});return{handleSubmit:async()=>{if(!(!y||y.length===0))try{await w.mutateAsync({items:y,override:g}),f(!1),p(null),m(!1)}catch(b){console.error(b)}},isLoading:w.isPending,fileProcessor:r,onFileProcessed:b=>p(b),onOverrideChange:b=>m(b),open:a,title:t("_pages:common.actions.import.dialog.title",{entity:t(`_pages:${i}.title`)}),handleClose:()=>{f(!1),p(null)},action:k}}const fr=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),b=document.createElement("a");b.href=k,b.download=`${n}.json`,b.click(),URL.revokeObjectURL(k),c&&c(g),t({message:a})}}),y=h.useCallback(()=>{f.mutate()},[f]),{action:p}=ns({onClick:y,isLoading:f.isPending});return{action:p}};function as(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 mr=()=>{const{t:e}=_.useTranslation(),t=as(200);return u.jsx(me,{icon:H.faArrowUp,onClick:()=>_s.scrollTo(0,0),"data-tooltip-id":"tooltip","data-tooltip-content":e("_accessibility:buttons.toTop"),className:`submit primary to-top ${t?"show":"hide"}`})},os=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:H.faEllipsisV,onClick:()=>r(!0),"data-tooltip-id":"tooltip","data-tooltip-content":n("_accessibility:buttons.openActions")}),u.jsx(Mt,{open:i,onClose:()=>r(!1),children:u.jsx(tt,{showActionTexts:!0,actions:t,className:"flex-col",showTooltips:!1})})]})},hr=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:p="",inputClassName:g="",labelClassName:m="",helperText:w="",helperTextClassName:k="",...b}=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)} ${g} peer`,required:y,value:s,onChange:n,disabled:f,...b}),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})]})}),yr=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")})]})]})},gr=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?H.faEyeSlash:H.faEye})})}),Re=e=>{const{t}=_.useTranslation(),{title:s,children:n,handleClose:i,open:r=!1,containerClassName:c="",className:a="",animationClass:f="appear"}=e,[y,p]=h.useState(window.innerWidth),g=h.useCallback(b=>{b.key==="Escape"&&r&&i()},[r,i]);h.useEffect(()=>(window.addEventListener("keydown",g),()=>{window.removeEventListener("keydown",g)}),[g]);const m=h.useCallback(()=>{p(window.innerWidth)},[]);h.useEffect(()=>(window.addEventListener("resize",m),()=>{window.removeEventListener("resize",m)}),[m]);const w=h.useMemo(()=>Ss.css({width:`${y}px`}),[y]),k=h.useCallback(b=>{var T;((T=b==null?void 0:b.currentTarget)==null?void 0:T.getAttribute("name"))===t("_accessibility:buttons.closeDialog")&&i()},[t,i]);return h.useEffect(()=>{const b=T=>{T?document.body.style.overflow="hidden":document.body.style.overflow="auto"};return b(r),()=>{b(r)}},[r]),Pt.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:H.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:p=!1,primaryName:g,primaryAriaLabel:m,cancelName:w,cancelAriaLabel:k}=e;return u.jsxs("div",{className:`flex gap-2 mt-2 ${p?"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})]})},br=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")})]})})},pr=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 xr(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 wr(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 vr(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 Cr=e=>{const{t}=_.useTranslation(),[s,n]=h.useState(null),[i,r]=h.useState(null),[c,a]=h.useState(null),[f,y]=h.useState(!1),[p,g]=h.useState(!1),{children:m,handleSubmit:w,handleClose:k,isLoading:b=!1,fileProcessor:T,onFileProcessed:z,onOverrideChange:N,open:q,...D}=e,[j,G]=h.useState(0),L=h.useRef(z),ae=h.useRef(T);h.useEffect(()=>{L.current=z},[z]),h.useEffect(()=>{ae.current=T},[T]),h.useEffect(()=>{q||(n(null),r(null),a(null),y(!1),g(!1),G(I=>I+1))},[q]);const B=h.useCallback(async()=>{var I;if(ae.current&&s){y(!0);try{const M=await ae.current(s,{override:p});r(M??[]),a(null),(I=L.current)==null||I.call(L,M??[])}catch(M){console.error(M),r(null);const E=M instanceof Error?M.message:"Failed to parse file";a(E)}y(!1)}},[s,p]);return h.useEffect(()=>{B()},[B]),u.jsxs(Re,{...D,open:q,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,F;const M=(E=I.target.files)==null?void 0:E[0];if(!M){n(null),r(null),a(null),y(!1),(F=L.current)==null||F.call(L,[]);return}n(M)},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 M=I.target.checked;g(M),N==null||N(M)}}),u.jsx("span",{children:t("_pages:common.actions.import.override",{defaultValue:"Override existing items"})})]}),u.jsx(xr,{message:c??void 0}),f&&u.jsx(wr,{}),!!i&&i.length>0&&u.jsx(vr,{items:i}),m,u.jsx(qe,{primaryText:t("_accessibility:buttons.ok"),cancelText:t("_accessibility:buttons.cancel"),onPrimaryClick:()=>{(!T||!!i&&i.length>0)&&w()},onCancel:k,isLoading:b,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 Sr(e){const{t}=_.useTranslation(),{open:s,onClose:n,menuMap:i,logo:r}=e,{account:c}=it(),{dynamicItems:a}=Wt(),{linkComponent:f}=$e(),y=f,p=h.useMemo(()=>i.filter(b=>{const T=b.auth,z=!!(c!=null&&c.email);return T==null||T&&z||!T&&!z}),[c==null?void 0:c.email,i]),g=h.useCallback(b=>{b.key==="Escape"&&s&&n()},[n,s]);h.useEffect(()=>(document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g)}),[g]);const m=h.useCallback((b,T)=>T?b===`${location.pathname}${location.search}`:b===location.pathname,[]),w=h.useCallback(b=>u.jsx("li",{className:`drawer-list-item-child ${m(b.path,!0)?"active":""} animated`,children:b.path?u.jsx(y,{"aria-disabled":!s,to:b.path??"/","aria-label":t(`_accessibility:ariaLabels.${b.path}`),className:"drawer-link",children:b.label}):b.label},b.id),[y,s,t,m]),k=h.useMemo(()=>p.map((b,T)=>{const z=b.page??String(T),N=`drawer-list-item ${m(b.path)?"active":""} animated`;if(b.type==="divider")return u.jsx("li",{className:N,children:u.jsx("hr",{className:"drawer-divider"})},z);const q=b.children??(b.page&&a?a[b.page]:null);return u.jsxs("li",{className:N,children:[u.jsxs(y,{"aria-disabled":!s,to:b.path??"/","aria-label":t(`_accessibility:ariaLabels.${b.path}`),className:"drawer-link",children:[b.icon,t(`_pages:${b.page}.title`)]}),q&&u.jsx("ul",{className:"drawer-children-list",children:q.map(w)})]},z)}),[y,a,m,s,p,w,t]);return 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:k})]})})}function kr(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:ks.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 Ar=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:"page-header-left",children:[t&&u.jsx(me,{icon:H.faArrowLeft,onClick:()=>r(-1),name:i("_accessibility:buttons.back"),"data-tooltip-id":"tooltip","data-tooltip-content":i("_accessibility:buttons.back")}),u.jsx("h2",{className:"page-header-title",children:s})]}),u.jsxs("div",{children:[u.jsx(tt,{className:"max-xs:!hidden",actions:n??[]}),u.jsx(os,{className:"min-xs:hidden",actions:n??[]})]})]})},_r=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:p}=_.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:H.faRotateLeft}),tooltip:p("_pages:common.actions.refresh.text")};w.unshift(k)}if(n){const k={...n,id:be.Add,icon:u.jsx(ie.FontAwesomeIcon,{icon:H.faAdd})};w.unshift(k)}if(i){const k={...i,id:"filter",icon:u.jsx(ie.FontAwesomeIcon,{icon:H.faFilter}),children:u.jsx(_.Badge,{className:`${g>0?"show":"hide"} `,count:g})};w.push(k)}return w},[r,n,g,i,c,p]);return u.jsxs("main",{className:"page-main",children:[u.jsx(Ar,{showBackButton:y,actions:m,title:t}),u.jsx("div",{className:`page-main-content ${f?"appear":""}`,children:a?u.jsx(_.Loading,{className:"page-loading"}):s}),n&&u.jsx(me,{icon:n.icon??H.faAdd,color:n.color??"primary",variant:n.variant??"submit",onClick:()=>{var w;return(w=n.onClick)==null?void 0:w.call(n)},className:`button fab min-xs:!hidden ${n.className??""}`})]})},Nr=e=>{const{t}=_.useTranslation(),{className:s="",itemClassName:n="",loading:i=!1,emptyComponent:r=null,emptyMessage:c=t("_accessibility:messages.empty"),renderComponent:a,data:f=[]}=e;return u.jsx(u.Fragment,{children:f!=null&&f.length?u.jsx("ul",{className:`pretty-grid-main ${s}`,children:f==null?void 0:f.map(y=>u.jsx("li",{className:`pretty-grid-item ${n}`,children:a(y)},y.id))}):u.jsx(u.Fragment,{children:r||u.jsx(ds,{message:c})})})},Er=()=>{const[e,t]=h.useState(Xe());return h.useEffect(()=>{const s=window.matchMedia("(min-width: 768px)"),n=()=>{t(s.matches?Xe():Ut())},i=setInterval(n,1e3);return s.addEventListener("change",n),()=>{clearInterval(i),s.removeEventListener("change",n)}},[]),u.jsx("p",{className:"capitalize max-xs:hidden",children:e})};function Fr(e){const{t}=_.useTranslation(),{openDrawer:s,showClock:n=!0,showSearch:i=!0,menuButtonProps:r}=e,c={...r,type:(r==null?void 0:r.type)??"button",icon:(r==null?void 0:r.icon)??H.faBars,onClick:m=>{var w;(w=r==null?void 0:r.onClick)==null||w.call(r,m),s()},name:(r==null?void 0:r.name)??t("_accessibility:buttons.openMenu"),ariaLabel:(r==null?void 0:r["aria-label"])??t("_accessibility:ariaLabels.openMenu"),className:`navbar-menu animated ${(r==null?void 0:r.className)??""}`},{searchComponent:a}=$e(),[f,y]=h.useState(!1),p=h.useCallback(m=>{(Rt()?m.metaKey:m.ctrlKey)&&m.shiftKey&&m.key.toLowerCase()==="f"&&(y(!0),m.preventDefault())},[]);h.useEffect(()=>(window.addEventListener("keydown",p),()=>{window.removeEventListener("keydown",p)}),[p]);const g=a;return u.jsxs(u.Fragment,{children:[location.pathname!=="/"&&!!g&&u.jsx(g,{open:f,onClose:()=>y(!1)}),u.jsxs("header",{id:"header",className:"header",children:[u.jsxs("div",{className:"navbar-left",children:[u.jsx(me,{...c}),u.jsx("h1",{className:"poppins navbar-title",children:t("_pages:home.appName")})]}),u.jsxs("div",{className:"navbar-right",children:[i&&u.jsx(me,{icon:H.faSearch,className:"min-md:!hidden",onClick:()=>y(!0)}),n&&u.jsx(Er,{})]})]})]})}function jr(){const{t:e}=_.useTranslation(),{notification:t,removeNotification:s}=ve(),[n,i]=h.useState(new Set),r=h.useCallback(g=>{if(g===void 0){const m=new Set(t.map((w,k)=>k));i(m),window.setTimeout(()=>s(),300)}else i(m=>new Set(m).add(g)),window.setTimeout(()=>s(g),300)},[t,s]),c=h.useCallback(g=>{switch(g){case R.error:return H.faWarning;default:return H.faCircleCheck}},[]),a=h.useCallback(g=>{switch(g){case R.success:return"!text-success";case R.error:return"!text-error";case R.warning:return"!text-warning";default:return"!text-info"}},[]),f=h.useCallback(g=>{switch(g){case R.success:return"bg-bg-success";case R.error:return"bg-bg-error";case R.warning:return"bg-bg-warning";default:return"bg-bg-info"}},[]),y=h.useRef();h.useEffect(()=>{y.current=()=>r()},[r]),h.useEffect(()=>{if(!(t!=null&&t.length))return;const g=m=>{var w;return(w=y.current)==null?void 0:w.call(y,m)};return window.addEventListener("click",g),()=>{window.removeEventListener("click",g)}},[t==null?void 0:t.length]);const p=h.useCallback(g=>{g.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]),Pt.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:g,type:m,message:w},k)=>u.jsxs("div",{className:`notification ${n.has(k)?"closing":""} ${f(m??R.error)}`,onClick:b=>b.stopPropagation(),children:[u.jsxs("div",{className:"flex gap-3 items-center",children:[u.jsx(ie.FontAwesomeIcon,{icon:c(m??R.error),className:`${a(m??R.error)}`}),u.jsx("p",{className:`whitespace-nowrap ${a(m??R.error)}`,children:w})]}),u.jsx(me,{type:"button",icon:H.faClose,color:"error",className:"group",onClick:b=>{b.stopPropagation(),r(k)},iconClassName:`${a(m??R.error)} group-hover:!text-red-400 cursor-pointer`,name:e("_accessibility:buttons.closeNotification"),"aria-label":e("_accessibility:ariaLabels.closeNotification")})]},g)):null}),document.body)}function Tr(){return u.jsx("div",{className:"w-screen h-screen flex items-center justify-center overflow-hidden",children:u.jsx(_.Loading,{className:"blur-appear"})})}const cs=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})},ls=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:p,label:g})=>u.jsx("li",{children:u.jsx(cs,{onClick:()=>c(y),id:y,to:p??"",siblings:t.length>1,active:r===y,children:g})},y))}),a==null?void 0:a.content]})},us=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")})]})})]})},$r=e=>{const{steps:t}=e,[s,n]=h.useState(1),i=h.useMemo(()=>t.map((r,c)=>({id:c+1,label:"",content:u.jsx(us,{translation:r,final:c===t.length-1,onClickNext:()=>n(a=>a+1)})})),[t]);return u.jsx("div",{className:"onboarding-main",children:u.jsx(ls,{defaultTab:s,tabs:i})})},ds=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=os;exports.AuthClient=Ot;exports.AuthProvider=Vs;exports.BaseClient=Fs;exports.Button=ge;exports.ConfigProvider=Ps;exports.ConfirmationDialog=pr;exports.Dialog=Re;exports.DialogActions=qe;exports.Drawer=Sr;exports.DrawerMenuContext=at;exports.DrawerMenuProvider=Ms;exports.Dropdown=Mt;exports.Empty=ds;exports.Error=kr;exports.FormContainer=yr;exports.FormDialog=br;exports.GlobalActions=be;exports.IManager=Es;exports.IconButton=me;exports.ImportDialog=Cr;exports.ManagerProvider=Ls;exports.Methods=te;exports.Navbar=Fr;exports.Notification=jr;exports.NotificationEnumType=R;exports.NotificationProvider=Ds;exports.Onboarding=$r;exports.Page=_r;exports.ParagraphInput=hr;exports.PasswordInput=gr;exports.PrettyGrid=Nr;exports.SplashScreen=Tr;exports.Step=us;exports.Tab=cs;exports.TabsLayout=ls;exports.ToTop=mr;exports.buildQueryUrl=It;exports.enumToKeyValueArray=js;exports.formatForDatetimeLocal=Ts;exports.fromLocal=nt;exports.getFormattedDateTime=Xe;exports.getShortFormattedDateTime=Ut;exports.isHttpError=Te;exports.isMac=Rt;exports.isValidationError=je;exports.makeRequest=Ae;exports.mapValidationErrors=$s;exports.parseQueries=st;exports.queryClient=he;exports.removeFromLocal=Ye;exports.toLocal=Je;exports.useAuth=it;exports.useConfig=$e;exports.useConfirmationForm=ot;exports.useDeleteAction=ss;exports.useDeleteDialog=cr;exports.useDialog=mt;exports.useDrawerMenu=Wt;exports.useEditAction=or;exports.useExportAction=ns;exports.useExportActionMutate=fr;exports.useFormDialog=lr;exports.useImportAction=is;exports.useImportDialog=dr;exports.useManager=Ht;exports.useNotification=ve;exports.usePostForm=ar;exports.useRestoreAction=rs;exports.useRestoreDialog=ur;exports.useScrollTrigger=as;exports.useTimeAge=Ns;Object.keys(_).forEach(e=>{e!=="default"&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:()=>_[e]})});
|
package/dist/dashboard-app.js
CHANGED
|
@@ -285,12 +285,12 @@ class Qt {
|
|
|
285
285
|
* @param secured if the api client requires token
|
|
286
286
|
* @param tokenAcquirer custom token acquirer
|
|
287
287
|
*/
|
|
288
|
-
constructor(t, s = "user", n = !0, i
|
|
288
|
+
constructor(t, s = "user", n = !0, i) {
|
|
289
289
|
me(this, "baseUrl");
|
|
290
290
|
me(this, "userKey");
|
|
291
291
|
me(this, "secured");
|
|
292
292
|
me(this, "tokenAcquirer");
|
|
293
|
-
this.baseUrl = t, this.secured = n, this.userKey = s,
|
|
293
|
+
this.baseUrl = t, this.secured = n, this.userKey = s, this.tokenAcquirer = i ?? this.defaultTokenAcquirer;
|
|
294
294
|
}
|
|
295
295
|
defaultTokenAcquirer(t) {
|
|
296
296
|
if (t) return { credentials: "include" };
|
|
@@ -299,7 +299,7 @@ class Qt {
|
|
|
299
299
|
return { Authorization: `Bearer ${s}` };
|
|
300
300
|
}
|
|
301
301
|
async doQuery(t, s = ne.GET, n, i) {
|
|
302
|
-
const r = this.secured ? this.
|
|
302
|
+
const r = this.secured ? this.tokenAcquirer() : {}, { data: c, status: a, error: d } = await Ee(
|
|
303
303
|
`${this.baseUrl}${t}`,
|
|
304
304
|
s,
|
|
305
305
|
n,
|
|
@@ -322,7 +322,7 @@ class Qt {
|
|
|
322
322
|
* @returns Result list
|
|
323
323
|
*/
|
|
324
324
|
async get(t, s, n) {
|
|
325
|
-
const i = jt(t, s, n), r = this.secured ? this.
|
|
325
|
+
const i = jt(t, s, n), r = this.secured ? this.tokenAcquirer() : void 0, { data: c, error: a } = await Ee(
|
|
326
326
|
`${this.baseUrl}${i}`,
|
|
327
327
|
ne.GET,
|
|
328
328
|
null,
|
|
@@ -338,7 +338,7 @@ class Qt {
|
|
|
338
338
|
* @returns updated entity
|
|
339
339
|
*/
|
|
340
340
|
async patch(t, s) {
|
|
341
|
-
const n = this.secured ? this.
|
|
341
|
+
const n = this.secured ? this.tokenAcquirer() : void 0, { error: i, data: r, status: c } = await Ee(
|
|
342
342
|
`${this.baseUrl}${t}`,
|
|
343
343
|
ne.PATCH,
|
|
344
344
|
s,
|
|
@@ -357,7 +357,7 @@ class Qt {
|
|
|
357
357
|
* @returns delete result
|
|
358
358
|
*/
|
|
359
359
|
async delete(t, s) {
|
|
360
|
-
const n = this.secured ? this.
|
|
360
|
+
const n = this.secured ? this.tokenAcquirer() : void 0, { error: i, data: r, status: c } = await Ee(
|
|
361
361
|
`${this.baseUrl}${t}`,
|
|
362
362
|
ne.DELETE,
|
|
363
363
|
s,
|
|
@@ -377,7 +377,7 @@ class Qt {
|
|
|
377
377
|
* @returns inserted item
|
|
378
378
|
*/
|
|
379
379
|
async post(t, s) {
|
|
380
|
-
const n = this.secured ? this.
|
|
380
|
+
const n = this.secured ? this.tokenAcquirer() : void 0, { error: i, data: r, status: c } = await Ee(
|
|
381
381
|
`${this.baseUrl}${t}`,
|
|
382
382
|
ne.POST,
|
|
383
383
|
s,
|
|
@@ -669,27 +669,31 @@ const Ne = () => {
|
|
|
669
669
|
// default: true
|
|
670
670
|
}
|
|
671
671
|
}
|
|
672
|
-
}), zt = Pe(
|
|
672
|
+
}), zt = Pe(
|
|
673
|
+
void 0
|
|
674
|
+
), an = (e) => {
|
|
673
675
|
const { children: t, manager: s } = e;
|
|
674
676
|
return /* @__PURE__ */ h(zt.Provider, { value: { client: s }, children: /* @__PURE__ */ h(Qs, { client: pe, children: t }) });
|
|
675
677
|
}, tr = () => {
|
|
676
678
|
const e = Me(zt);
|
|
677
|
-
if (e
|
|
679
|
+
if (!e)
|
|
678
680
|
throw new Error("managerContext must be used within a Provider");
|
|
679
681
|
return e.client;
|
|
680
|
-
}, Gt = Pe(
|
|
681
|
-
|
|
682
|
+
}, Gt = Pe(
|
|
683
|
+
void 0
|
|
684
|
+
), on = (e) => {
|
|
685
|
+
const { children: t, guestMode: s = "guest_mode", user: n = "user" } = e, i = tr(), [r, c] = B({}), a = E(() => !!Kt(s, "boolean") && r.token === void 0, [r.token, s]), d = E((w) => {
|
|
682
686
|
_t(s, w);
|
|
683
|
-
}, []), m = E((w) => {
|
|
687
|
+
}, [s]), m = E((w) => {
|
|
684
688
|
w && (c(w), Ct(s), _t(n, w.token));
|
|
685
|
-
}, []), b = E(async () => {
|
|
689
|
+
}, [s, n]), b = E(async () => {
|
|
686
690
|
try {
|
|
687
691
|
await i.Auth.logout();
|
|
688
692
|
} catch (w) {
|
|
689
693
|
console.error(w);
|
|
690
694
|
}
|
|
691
695
|
c({}), Ct(n);
|
|
692
|
-
}, [i.Auth]), y = E(async () => {
|
|
696
|
+
}, [i.Auth, n]), y = E(async () => {
|
|
693
697
|
try {
|
|
694
698
|
const w = await i.Auth.getSession();
|
|
695
699
|
m(w);
|
|
@@ -707,7 +711,7 @@ const Ne = () => {
|
|
|
707
711
|
return /* @__PURE__ */ h(Gt.Provider, { value: f, children: t });
|
|
708
712
|
}, Jt = () => {
|
|
709
713
|
const e = Me(Gt);
|
|
710
|
-
if (e
|
|
714
|
+
if (!e)
|
|
711
715
|
throw new Error("authContext must be used within a Provider");
|
|
712
716
|
return e;
|
|
713
717
|
}, Yt = Pe({}), cn = (e) => {
|
|
@@ -3106,10 +3110,10 @@ const Mr = (e) => {
|
|
|
3106
3110
|
{
|
|
3107
3111
|
translation: r,
|
|
3108
3112
|
final: c === t.length - 1,
|
|
3109
|
-
onClickNext: () => n(
|
|
3113
|
+
onClickNext: () => n((a) => a + 1)
|
|
3110
3114
|
}
|
|
3111
3115
|
)
|
|
3112
|
-
})), [
|
|
3116
|
+
})), [t]);
|
|
3113
3117
|
return /* @__PURE__ */ h("div", { className: "onboarding-main", children: /* @__PURE__ */ h(Ir, { defaultTab: s, tabs: i }) });
|
|
3114
3118
|
}, Ur = (e) => {
|
|
3115
3119
|
const {
|
|
@@ -15,7 +15,7 @@ export declare class APIClient {
|
|
|
15
15
|
* @param secured if the api client requires token
|
|
16
16
|
* @param tokenAcquirer custom token acquirer
|
|
17
17
|
*/
|
|
18
|
-
constructor(baseUrl: string, userKey?: string, secured?: boolean, tokenAcquirer?:
|
|
18
|
+
constructor(baseUrl: string, userKey?: string, secured?: boolean, tokenAcquirer?: (useCookie?: boolean) => HeadersInit | undefined);
|
|
19
19
|
defaultTokenAcquirer(useCookie?: boolean): HeadersInit | undefined;
|
|
20
20
|
doQuery<TResponse, TBody = unknown>(endpoint: string, method?: Methods, body?: TBody, header?: HeadersInit): Promise<TResponse>;
|
|
21
21
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/main.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--spacing:.25rem;--container-md:28rem;--container-xl:36rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-semibold:600;--radius-lg:.5rem;--blur-xl:24px;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-base:#f2f2f2;--color-text:#0d0d0d;--color-bg-info:#0070ba;--color-info:#fbfbfb;--color-bg-success:#1d9a5b;--color-success:#fbfbfb;--color-bg-warning:orange;--color-warning:#000;--color-bg-error:#c14444;--color-error:#fbfbfb}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.right-2{right:calc(var(--spacing)*2)}.z-0{z-index:0}.container{width:100%}@media(min-width:28rem){.container{max-width:28rem}}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.my-4{margin-block:calc(var(--spacing)*4)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.\!hidden{display:none!important}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.h-5{height:calc(var(--spacing)*5)}.h-screen{height:100vh}.max-h-56{max-height:calc(var(--spacing)*56)}.\!w-6{width:calc(var(--spacing)*6)!important}.\!w-auto{width:auto!important}.w-5{width:calc(var(--spacing)*5)}.w-full{width:100%}.w-md{width:var(--container-md)}.w-screen{width:100vw}.max-w-xl{max-width:var(--container-xl)}.flex-grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-5{gap:calc(var(--spacing)*5)}.gap-20{gap:calc(var(--spacing)*20)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-base\/20{border-color:#f2f2f233}@supports (color:color-mix(in lab,red,red)){.border-base\/20{border-color:color-mix(in oklab,var(--color-base)20%,transparent)}}.bg-base\/20{background-color:#f2f2f233}@supports (color:color-mix(in lab,red,red)){.bg-base\/20{background-color:color-mix(in oklab,var(--color-base)20%,transparent)}}.bg-bg-error{background-color:var(--color-bg-error)}.bg-bg-info{background-color:var(--color-bg-info)}.bg-bg-success{background-color:var(--color-bg-success)}.bg-bg-warning{background-color:var(--color-bg-warning)}.bg-gray-100{background-color:var(--color-gray-100)}.stroke-base{stroke:var(--color-base)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-10{padding:calc(var(--spacing)*10)}.\!px-6{padding-inline:calc(var(--spacing)*6)!important}.\!px-8{padding-inline:calc(var(--spacing)*8)!important}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-10{padding-top:calc(var(--spacing)*10)}.text-center{text-align:center}.\!text-lg{font-size:var(--text-lg)!important;line-height:var(--tw-leading,var(--text-lg--line-height))!important}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-16{--tw-leading:calc(var(--spacing)*16);line-height:calc(var(--spacing)*16)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.\!text-error{color:var(--color-error)!important}.\!text-info{color:var(--color-info)!important}.\!text-success{color:var(--color-success)!important}.\!text-warning{color:var(--color-warning)!important}.text-gray-400{color:var(--color-gray-400)}.text-gray-600{color:var(--color-gray-600)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-text{color:var(--color-text)}.capitalize{text-transform:capitalize}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}@media(hover:hover){.group-hover\:\!text-red-400:is(:where(.group):hover *){color:var(--color-red-400)!important}}@media not all and (min-width:28rem){.max-xs\:\!hidden{display:none!important}.max-xs\:hidden{display:none}}@media(min-width:28rem){.min-xs\:\!hidden{display:none!important}.min-xs\:hidden{display:none}}@media(min-width:48rem){.min-md\:\!hidden{display:none!important}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.actions-container{justify-content:flex-end;align-items:center;gap:calc(var(--spacing,.25rem)*1);width:100%;display:flex}.actions-dropdown .action{width:100%;padding-inline:calc(var(--spacing,.25rem)*2);justify-content:flex-start}.actions-dropdown .actions-container li{width:100%}.action{justify-content:center;align-items:center;gap:calc(var(--spacing,.25rem)*2);background-color:var(--color-base,#f2f2f2);color:var(--color-text,#0d0d0d);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:flex}@media(hover:hover){.action:hover{background-color:var(--color-base-light,#fff)}}.icon-action{height:calc(var(--spacing,.25rem)*9);width:calc(var(--spacing,.25rem)*9);border-radius:3.40282e38px}.text-action{border-radius:var(--radius-4xl,2rem);padding-inline:calc(var(--spacing,.25rem)*4);padding-block:calc(var(--spacing,.25rem)*2)}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}.dropdown-main{right:calc(var(--spacing,.25rem)*5);background-color:var(--color-base,#f2f2f2);padding:calc(var(--spacing,.25rem)*2);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-shadow-color:#00000080;position:absolute}@supports (color:color-mix(in lab,red,red)){.dropdown-main{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black,#000)50%,transparent)var(--tw-shadow-alpha),transparent)}}.dropdown-main{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.3s;--tw-ease:var(--ease-in-out,cubic-bezier(.4,0,.2,1));transition-duration:.3s;transition-timing-function:var(--ease-in-out,cubic-bezier(.4,0,.2,1))}.dropdown-main.opened{z-index:10;opacity:1}.dropdown-main.closed{pointer-events:none;z-index:-10;opacity:0}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-duration:initial;--tw-ease:initial;--tw-font-weight:initial;--tw-border-style:solid}}}.icon-button{height:calc(var(--spacing,.25rem)*7);width:calc(var(--spacing,.25rem)*7);min-width:calc(var(--spacing,.25rem)*7);background-color:#f2f2f24d;border-radius:3.40282e38px;justify-content:center;align-items:center;display:flex}@supports (color:color-mix(in lab,red,red)){.icon-button{background-color:color-mix(in oklab,var(--color-base,#f2f2f2)30%,transparent)}}.icon-button{color:var(--color-text,#0d0d0d);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.3s;--tw-ease:var(--ease-in-out,cubic-bezier(.4,0,.2,1));transition-duration:.3s;transition-timing-function:var(--ease-in-out,cubic-bezier(.4,0,.2,1))}@media(hover:hover){.icon-button:hover{background-color:var(--color-base-light,#fff)}}.icon-button.error:hover{background-color:var(--color-error,#fbfbfb);color:var(--color-bg-error,#c14444)}.to-top{right:calc(var(--spacing,.25rem)*4);bottom:calc(var(--spacing,.25rem)*4);z-index:50;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.5s;--tw-ease:var(--ease-in-out,cubic-bezier(.4,0,.2,1));transition-duration:.5s;transition-timing-function:var(--ease-in-out,cubic-bezier(.4,0,.2,1));position:fixed}.to-top.show{transform:scale(1)}.to-top.hide{transform:scale(0)}.button{cursor:pointer;justify-content:center;align-items:center;gap:calc(var(--spacing,.25rem)*2);border-radius:var(--radius-4xl,2rem);padding-inline:calc(var(--spacing,.25rem)*4);padding-block:calc(var(--spacing,.25rem)*2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-text,#0d0d0d);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:flex}@media(hover:hover){.button.close:hover{background-color:var(--color-red-500,oklch(63.7% .237 25.331))}}.fab{right:calc(var(--spacing,.25rem)*4);bottom:calc(var(--spacing,.25rem)*4);height:calc(var(--spacing,.25rem)*12);width:calc(var(--spacing,.25rem)*12);font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75/1.125)));position:fixed}.contained{background-color:var(--color-base,#f2f2f2)}@media(hover:hover){.contained:hover{background-color:var(--color-base-light,#fff)}.text:hover{background-color:var(--color-base,#f2f2f2)}}.outlined{border-style:var(--tw-border-style);border-width:2px;border-color:var(--color-border,#ccc);background-color:var(--color-base,#f2f2f2);color:var(--color-text,#0d0d0d)}@media(hover:hover){.outlined:hover{background-color:var(--color-border,#ccc)}}.outlined.primary{border-color:var(--color-bg-primary,#013a55)}@media(hover:hover){.outlined.primary:hover{border-color:var(--color-primary,#4cc2ff);background-color:var(--color-primary,#4cc2ff);color:var(--color-base,#f2f2f2)}}.submit.primary{background-color:var(--color-bg-primary,#013a55);color:var(--color-base,#f2f2f2)}@media(hover:hover){.submit.primary:hover{background-color:var(--color-primary,#4cc2ff);color:var(--color-text,#0d0d0d)}}.primary{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.3s;transition-duration:.3s}.password-icon{top:50%;transform:translateY(-50%)}.form-container{gap:calc(var(--spacing,.25rem)*7);padding-top:calc(var(--spacing,.25rem)*1);flex-direction:column;display:flex}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-border-style:solid;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}.dialog .button{border-radius:var(--radius-4xl,2rem);padding-inline:calc(var(--spacing,.25rem)*4);padding-block:calc(var(--spacing,.25rem)*1)}.dialog-backdrop{top:calc(var(--spacing,.25rem)*0);left:calc(var(--spacing,.25rem)*0);z-index:50;justify-content:center;align-items:center;display:flex;position:fixed}@media not all and (min-width:28rem){.dialog-backdrop{z-index:36}}.dialog-backdrop.opened{--tw-backdrop-blur:blur(var(--blur-xs,4px));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.dialog{border-style:var(--tw-border-style);background-color:var(--color-base,#f2f2f2);padding:calc(var(--spacing,.25rem)*5);border-width:2px;flex-direction:column;display:flex;position:relative}@media not all and (min-width:28rem){.dialog{width:100vw;height:100vh}}@media(min-width:28rem){.dialog{min-width:calc(var(--spacing,.25rem)*90);border-radius:var(--radius-2xl,1rem);border-color:var(--color-border,#ccc)}}.dialog.opened{--tw-translate-y:calc(var(--spacing,.25rem)*0);translate:var(--tw-translate-x)var(--tw-translate-y);opacity:1}.dialog.closed{--tw-translate-y:calc(var(--spacing,.25rem)*2);translate:var(--tw-translate-x)var(--tw-translate-y);opacity:0}.dialog-header{margin-bottom:calc(var(--spacing,.25rem)*6);justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem)*2);display:flex}@media not all and (min-width:28rem){.dialog-header{margin-bottom:calc(var(--spacing,.25rem)*10)}}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-font-weight:initial}}}.drawer-backdrop{z-index:36;position:fixed}.drawer-backdrop.opened{width:100vw;height:100vh}.drawer-backdrop.closed{pointer-events:none}.drawer{top:calc(var(--spacing,.25rem)*0);left:calc(var(--spacing,.25rem)*0);z-index:1;height:100vh;width:calc(var(--spacing,.25rem)*64);border-top-right-radius:var(--radius-lg,.5rem);border-bottom-right-radius:var(--radius-lg,.5rem);border-right-style:var(--tw-border-style);border-right-width:2px;border-color:var(--color-border,#ccc);background-color:var(--color-base,#f2f2f2);padding-top:calc(var(--spacing,.25rem)*5);position:fixed}.drawer.opened{--tw-translate-x:calc(var(--spacing,.25rem)*0);translate:var(--tw-translate-x)var(--tw-translate-y);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-shadow-color:#00000080}@supports (color:color-mix(in lab,red,red)){.drawer.opened{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black,#000)50%,transparent)var(--tw-shadow-alpha),transparent)}}.drawer.closed{--tw-translate-x:calc(var(--spacing,.25rem)*-64);translate:var(--tw-translate-x)var(--tw-translate-y)}.drawer-list-item{flex-direction:column;width:100%;display:flex}@media(hover:hover){.drawer-list-item:hover{background-color:var(--color-base-light,#fff)}}.drawer-list-item.active{background-color:var(--color-base-light,#fff)}.drawer-children-list{flex-direction:column;width:100%;display:flex}.drawer-list-item-child{padding-left:calc(var(--spacing,.25rem)*7)}@media(hover:hover){.drawer-list-item-child:hover{background-color:var(--color-base,#f2f2f2)}}.drawer-list-item-child.active{background-color:var(--color-base-dark,#e6e6e6)}.drawer-link{justify-content:flex-start;align-items:center;gap:calc(var(--spacing,.25rem)*2);width:100%;padding-inline:calc(var(--spacing,.25rem)*5);padding-block:calc(var(--spacing,.25rem)*2);color:var(--color-text-muted,#4d4d4d);display:flex}.drawer-divider{--tw-border-spacing-x:calc(var(--spacing,.25rem)*.5);width:100%;border-spacing:var(--tw-border-spacing-x)var(--tw-border-spacing-y);border-color:var(--color-border,#ccc)}.drawer-header-container{justify-content:flex-start;align-items:center;gap:calc(var(--spacing,.25rem)*2);padding-inline:calc(var(--spacing,.25rem)*5);padding-bottom:calc(var(--spacing,.25rem)*5);display:flex}.drawer-header{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75/1.25)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:var(--color-text,#0d0d0d)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-border-spacing-x{syntax:"<length>";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"<length>";inherits:false;initial-value:0}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial}}}.page-header{background-color:var(--color-base,#f2f2f2);width:100%;padding-block:calc(var(--spacing,.25rem)*2);padding-right:calc(var(--spacing,.25rem)*3);padding-left:calc(var(--spacing,.25rem)*4);justify-content:space-between;align-items:center;transition:all .3s ease-in-out;display:flex}.page-header-left{justify-content:flex-start;align-items:center;gap:calc(var(--spacing,.25rem)*2);display:flex}.page-header-title{font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2/1.5)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}.page-main{flex-direction:column;display:flex}.page-main-content{height:100%;padding-inline:calc(var(--spacing,.25rem)*5);padding-block:calc(var(--spacing,.25rem)*3)}.page-loading{height:calc(var(--spacing,.25rem)*50);justify-content:center;align-items:center;display:flex}.pretty-grid-main{gap:calc(var(--spacing,.25rem)*3);flex-wrap:wrap;display:flex}@media not all and (min-width:28rem){.pretty-grid-main{flex-direction:column}}.pretty-grid-item{min-height:calc(var(--spacing,.25rem)*50);display:flex}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial}}}.header{top:calc(var(--spacing,.25rem)*0);z-index:20;height:calc(var(--spacing,.25rem)*12);background-color:var(--color-base-dark,#e6e6e6);width:100%;padding-inline:calc(var(--spacing,.25rem)*3);justify-content:space-between;align-items:center;transition:all .3s ease-in-out;display:flex;position:sticky}.navbar-title{pointer-events:none;font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75/1.125)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:var(--color-text,#0d0d0d)}.navbar-left{align-items:center;gap:calc(var(--spacing,.25rem)*2);display:flex}.navbar-right{justify-content:flex-end;align-items:center;gap:calc(var(--spacing,.25rem)*2);display:flex}@property --tw-font-weight{syntax:"*";inherits:false}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-duration:initial;--tw-ease:initial}}}.notification-portal{z-index:51;pointer-events:none;bottom:calc(var(--spacing,.25rem)*0);left:calc(var(--spacing,.25rem)*0);justify-content:flex-end;align-items:flex-start;gap:calc(var(--spacing,.25rem)*2);padding:calc(var(--spacing,.25rem)*2);flex-direction:column;display:flex;position:fixed}.notification{pointer-events:auto;z-index:10;min-width:calc(var(--spacing,.25rem)*40);--tw-translate-y:calc(var(--spacing,.25rem)*0);translate:var(--tw-translate-x)var(--tw-translate-y);justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem)*2);border-radius:var(--radius-3xl,1.5rem);padding:calc(var(--spacing,.25rem)*2);padding-inline:calc(var(--spacing,.25rem)*2.5);opacity:1;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.3s;--tw-ease:var(--ease-in-out,cubic-bezier(.4,0,.2,1));transition-duration:.3s;transition-timing-function:var(--ease-in-out,cubic-bezier(.4,0,.2,1));display:flex;position:relative}@media not all and (min-width:28rem){.notification{width:100%}}.notification.closing{--tw-translate-y:calc(var(--spacing,.25rem)*2);translate:var(--tw-translate-x)var(--tw-translate-y);opacity:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}.tabs-layout-main{border-top-right-radius:var(--radius-xl,.75rem);border-bottom-right-radius:var(--radius-xl,.75rem);border-bottom-left-radius:var(--radius-xl,.75rem)}.tabs-container{margin-bottom:calc(var(--spacing,.25rem)*5);justify-content:flex-start;align-items:center;width:100%;display:flex}.tab{padding-inline:calc(var(--spacing,.25rem)*3);white-space:nowrap;--tw-border-style:none!important;padding-top:calc(var(--spacing,.25rem)*2)!important;border-style:none!important;border-radius:0!important}/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */.onboarding-main{top:calc(var(--spacing,.25rem)*0);left:calc(var(--spacing,.25rem)*0);z-index:50;background-color:var(--color-base,#f2f2f2);justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed}.onboarding-main .tabs-layout-main{gap:calc(var(--spacing,.25rem)*40);flex-direction:column-reverse;display:flex}.onboarding-main .tabs-container{justify-content:center;gap:calc(var(--spacing,.25rem)*5)}.onboarding-main .tab{height:calc(var(--spacing,.25rem)*2);width:calc(var(--spacing,.25rem)*2);padding:calc(var(--spacing,.25rem)*0);border-radius:3.40282e38px!important}.onboarding-main .tab.outlined{background-color:var(--color-primary,#4cc2ff)!important}
|
|
1
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--spacing:.25rem;--container-md:28rem;--container-xl:36rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-semibold:600;--radius-lg:.5rem;--blur-xl:24px;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-base:#f2f2f2;--color-text:#0d0d0d;--color-bg-info:#0070ba;--color-info:#fbfbfb;--color-bg-success:#1d9a5b;--color-success:#fbfbfb;--color-bg-warning:orange;--color-warning:#000;--color-bg-error:#c14444;--color-error:#fbfbfb}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.right-2{right:calc(var(--spacing)*2)}.z-0{z-index:0}.container{width:100%}@media(min-width:28rem){.container{max-width:28rem}}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.my-4{margin-block:calc(var(--spacing)*4)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.\!hidden{display:none!important}.contents{display:contents}.flex{display:flex}.hidden{display:none}.table{display:table}.h-5{height:calc(var(--spacing)*5)}.h-screen{height:100vh}.max-h-56{max-height:calc(var(--spacing)*56)}.\!w-6{width:calc(var(--spacing)*6)!important}.\!w-auto{width:auto!important}.w-5{width:calc(var(--spacing)*5)}.w-full{width:100%}.w-md{width:var(--container-md)}.w-screen{width:100vw}.max-w-xl{max-width:var(--container-xl)}.flex-grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-5{gap:calc(var(--spacing)*5)}.gap-20{gap:calc(var(--spacing)*20)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-base\/20{border-color:#f2f2f233}@supports (color:color-mix(in lab,red,red)){.border-base\/20{border-color:color-mix(in oklab,var(--color-base)20%,transparent)}}.bg-base\/20{background-color:#f2f2f233}@supports (color:color-mix(in lab,red,red)){.bg-base\/20{background-color:color-mix(in oklab,var(--color-base)20%,transparent)}}.bg-bg-error{background-color:var(--color-bg-error)}.bg-bg-info{background-color:var(--color-bg-info)}.bg-bg-success{background-color:var(--color-bg-success)}.bg-bg-warning{background-color:var(--color-bg-warning)}.bg-gray-100{background-color:var(--color-gray-100)}.stroke-base{stroke:var(--color-base)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-10{padding:calc(var(--spacing)*10)}.\!px-6{padding-inline:calc(var(--spacing)*6)!important}.\!px-8{padding-inline:calc(var(--spacing)*8)!important}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-10{padding-top:calc(var(--spacing)*10)}.text-center{text-align:center}.\!text-lg{font-size:var(--text-lg)!important;line-height:var(--tw-leading,var(--text-lg--line-height))!important}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-16{--tw-leading:calc(var(--spacing)*16);line-height:calc(var(--spacing)*16)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.\!text-error{color:var(--color-error)!important}.\!text-info{color:var(--color-info)!important}.\!text-success{color:var(--color-success)!important}.\!text-warning{color:var(--color-warning)!important}.text-gray-400{color:var(--color-gray-400)}.text-gray-600{color:var(--color-gray-600)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-text{color:var(--color-text)}.capitalize{text-transform:capitalize}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}@media(hover:hover){.group-hover\:\!text-red-400:is(:where(.group):hover *){color:var(--color-red-400)!important}}@media not all and (min-width:28rem){.max-xs\:\!hidden{display:none!important}.max-xs\:hidden{display:none}}@media(min-width:28rem){.min-xs\:\!hidden{display:none!important}.min-xs\:hidden{display:none}}@media(min-width:48rem){.min-md\:\!hidden{display:none!important}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-leading{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.actions-container{justify-content:flex-end;align-items:center;gap:calc(var(--spacing,.25rem)*1);width:100%;display:flex}.actions-dropdown .action{width:100%;padding-inline:calc(var(--spacing,.25rem)*2);justify-content:flex-start}.actions-dropdown .actions-container li{width:100%}.action{justify-content:center;align-items:center;gap:calc(var(--spacing,.25rem)*2);background-color:var(--color-base,#f2f2f2);color:var(--color-text,#0d0d0d);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:flex}@media(hover:hover){.action:hover{background-color:var(--color-base-light,#fff)}}.icon-action{height:calc(var(--spacing,.25rem)*9);width:calc(var(--spacing,.25rem)*9);border-radius:3.40282e38px}.text-action{border-radius:var(--radius-4xl,2rem);padding-inline:calc(var(--spacing,.25rem)*4);padding-block:calc(var(--spacing,.25rem)*2)}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}.dropdown-main{right:calc(var(--spacing,.25rem)*5);background-color:var(--color-base,#f2f2f2);padding:calc(var(--spacing,.25rem)*2);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-shadow-color:#00000080;position:absolute}@supports (color:color-mix(in lab,red,red)){.dropdown-main{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black,#000)50%,transparent)var(--tw-shadow-alpha),transparent)}}.dropdown-main{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.3s;--tw-ease:var(--ease-in-out,cubic-bezier(.4,0,.2,1));transition-duration:.3s;transition-timing-function:var(--ease-in-out,cubic-bezier(.4,0,.2,1))}.dropdown-main.opened{z-index:10;opacity:1}.dropdown-main.closed{pointer-events:none;z-index:-10;opacity:0}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-duration:initial;--tw-ease:initial;--tw-font-weight:initial;--tw-border-style:solid}}}.icon-button{height:calc(var(--spacing,.25rem)*7);width:calc(var(--spacing,.25rem)*7);min-width:calc(var(--spacing,.25rem)*7);background-color:#f2f2f24d;border-radius:3.40282e38px;justify-content:center;align-items:center;display:flex}@supports (color:color-mix(in lab,red,red)){.icon-button{background-color:color-mix(in oklab,var(--color-base,#f2f2f2)30%,transparent)}}.icon-button{color:var(--color-text,#0d0d0d);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.3s;--tw-ease:var(--ease-in-out,cubic-bezier(.4,0,.2,1));transition-duration:.3s;transition-timing-function:var(--ease-in-out,cubic-bezier(.4,0,.2,1))}@media(hover:hover){.icon-button:hover{background-color:var(--color-base-light,#fff)}}.icon-button.error:hover{background-color:var(--color-error,#fbfbfb);color:var(--color-bg-error,#c14444)}.to-top{right:calc(var(--spacing,.25rem)*4);bottom:calc(var(--spacing,.25rem)*4);z-index:50;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.5s;--tw-ease:var(--ease-in-out,cubic-bezier(.4,0,.2,1));transition-duration:.5s;transition-timing-function:var(--ease-in-out,cubic-bezier(.4,0,.2,1));position:fixed}.to-top.show{transform:scale(1)}.to-top.hide{transform:scale(0)}.button{cursor:pointer;justify-content:center;align-items:center;gap:calc(var(--spacing,.25rem)*2);border-radius:var(--radius-4xl,2rem);padding-inline:calc(var(--spacing,.25rem)*4);padding-block:calc(var(--spacing,.25rem)*2);font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25/.875)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);color:var(--color-text,#0d0d0d);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:flex}@media(hover:hover){.button.close:hover{background-color:var(--color-red-500,oklch(63.7% .237 25.331))}}.fab{right:calc(var(--spacing,.25rem)*4);bottom:calc(var(--spacing,.25rem)*4);height:calc(var(--spacing,.25rem)*12);width:calc(var(--spacing,.25rem)*12);font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75/1.125)));position:fixed}.contained{background-color:var(--color-base,#f2f2f2)}@media(hover:hover){.contained:hover{background-color:var(--color-base-light,#fff)}.text:hover{background-color:var(--color-base,#f2f2f2)}}.outlined{border-style:var(--tw-border-style);border-width:2px;border-color:var(--color-border,#ccc);background-color:var(--color-base,#f2f2f2);color:var(--color-text,#0d0d0d)}@media(hover:hover){.outlined:hover{background-color:var(--color-border,#ccc)}}.outlined.primary{border-color:var(--color-bg-primary,#013a55)}@media(hover:hover){.outlined.primary:hover{border-color:var(--color-primary,#4cc2ff);background-color:var(--color-primary,#4cc2ff);color:var(--color-base,#f2f2f2)}}.submit.primary{background-color:var(--color-bg-primary,#013a55);color:var(--color-base,#f2f2f2)}@media(hover:hover){.submit.primary:hover{background-color:var(--color-primary,#4cc2ff);color:var(--color-text,#0d0d0d)}}.primary{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.3s;transition-duration:.3s}.password-icon{top:50%;transform:translateY(-50%)}.form-container{gap:calc(var(--spacing,.25rem)*7);padding-top:calc(var(--spacing,.25rem)*1);flex-direction:column;display:flex}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-border-style:solid;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}.dialog .button{border-radius:var(--radius-4xl,2rem);padding-inline:calc(var(--spacing,.25rem)*4);padding-block:calc(var(--spacing,.25rem)*1)}.dialog-backdrop{top:calc(var(--spacing,.25rem)*0);left:calc(var(--spacing,.25rem)*0);z-index:50;justify-content:center;align-items:center;display:flex;position:fixed}@media not all and (min-width:28rem){.dialog-backdrop{z-index:36}}.dialog-backdrop.opened{--tw-backdrop-blur:blur(var(--blur-xs,4px));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.dialog{border-style:var(--tw-border-style);background-color:var(--color-base,#f2f2f2);padding:calc(var(--spacing,.25rem)*5);border-width:2px;flex-direction:column;display:flex;position:relative}@media not all and (min-width:28rem){.dialog{width:100vw;height:100vh}}@media(min-width:28rem){.dialog{min-width:calc(var(--spacing,.25rem)*90);border-radius:var(--radius-2xl,1rem);border-color:var(--color-border,#ccc)}}.dialog.opened{--tw-translate-y:calc(var(--spacing,.25rem)*0);translate:var(--tw-translate-x)var(--tw-translate-y);opacity:1}.dialog.closed{--tw-translate-y:calc(var(--spacing,.25rem)*2);translate:var(--tw-translate-x)var(--tw-translate-y);opacity:0}.dialog-header{margin-bottom:calc(var(--spacing,.25rem)*6);justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem)*2);display:flex}@media not all and (min-width:28rem){.dialog-header{margin-bottom:calc(var(--spacing,.25rem)*10)}}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-font-weight:initial}}}.drawer-backdrop{z-index:36;position:fixed}.drawer-backdrop.opened{width:100vw;height:100vh}.drawer-backdrop.closed{pointer-events:none}.drawer{top:calc(var(--spacing,.25rem)*0);left:calc(var(--spacing,.25rem)*0);z-index:1;height:100vh;width:calc(var(--spacing,.25rem)*64);border-top-right-radius:var(--radius-lg,.5rem);border-bottom-right-radius:var(--radius-lg,.5rem);border-right-style:var(--tw-border-style);border-right-width:2px;border-color:var(--color-border,#ccc);background-color:var(--color-base,#f2f2f2);padding-top:calc(var(--spacing,.25rem)*5);position:fixed}.drawer.opened{--tw-translate-x:calc(var(--spacing,.25rem)*0);translate:var(--tw-translate-x)var(--tw-translate-y);--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-shadow-color:#00000080}@supports (color:color-mix(in lab,red,red)){.drawer.opened{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black,#000)50%,transparent)var(--tw-shadow-alpha),transparent)}}.drawer.closed{--tw-translate-x:calc(var(--spacing,.25rem)*-64);translate:var(--tw-translate-x)var(--tw-translate-y)}.drawer-list-item{flex-direction:column;width:100%;display:flex}@media(hover:hover){.drawer-list-item:hover{background-color:var(--color-base-light,#fff)}}.drawer-list-item.active{background-color:var(--color-base-light,#fff)}.drawer-children-list{flex-direction:column;width:100%;display:flex}.drawer-list-item-child{padding-left:calc(var(--spacing,.25rem)*7)}@media(hover:hover){.drawer-list-item-child:hover{background-color:var(--color-base,#f2f2f2)}}.drawer-list-item-child.active{background-color:var(--color-base-dark,#e6e6e6)}.drawer-link{justify-content:flex-start;align-items:center;gap:calc(var(--spacing,.25rem)*2);width:100%;padding-inline:calc(var(--spacing,.25rem)*5);padding-block:calc(var(--spacing,.25rem)*2);color:var(--color-text-muted,#4d4d4d);display:flex}.drawer-divider{--tw-border-spacing-x:calc(var(--spacing,.25rem)*.5);width:100%;border-spacing:var(--tw-border-spacing-x)var(--tw-border-spacing-y);border-color:var(--color-border,#ccc)}.drawer-header-container{justify-content:flex-start;align-items:center;gap:calc(var(--spacing,.25rem)*2);padding-inline:calc(var(--spacing,.25rem)*5);padding-bottom:calc(var(--spacing,.25rem)*5);display:flex}.drawer-header{font-size:var(--text-xl,1.25rem);line-height:var(--tw-leading,var(--text-xl--line-height,calc(1.75/1.25)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:var(--color-text,#0d0d0d)}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-border-spacing-x{syntax:"<length>";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"<length>";inherits:false;initial-value:0}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial}}}.page-header{background-color:var(--color-base,#f2f2f2);width:100%;padding-block:calc(var(--spacing,.25rem)*2);padding-right:calc(var(--spacing,.25rem)*3);padding-left:calc(var(--spacing,.25rem)*4);justify-content:space-between;align-items:center;transition:all .3s ease-in-out;display:flex}.page-header-left{justify-content:flex-start;align-items:center;gap:calc(var(--spacing,.25rem)*2);display:flex}.page-header-title{font-size:var(--text-2xl,1.5rem);line-height:var(--tw-leading,var(--text-2xl--line-height,calc(2/1.5)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700)}.page-main{flex-direction:column;display:flex}.page-main-content{height:100%;padding-inline:calc(var(--spacing,.25rem)*5);padding-block:calc(var(--spacing,.25rem)*3)}.page-loading{height:calc(var(--spacing,.25rem)*50);justify-content:center;align-items:center;display:flex}.pretty-grid-main{gap:calc(var(--spacing,.25rem)*3);flex-wrap:wrap;display:flex}@media not all and (min-width:28rem){.pretty-grid-main{flex-direction:column}}.pretty-grid-item{min-height:calc(var(--spacing,.25rem)*50);display:flex}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial}}}.header{top:calc(var(--spacing,.25rem)*0);z-index:20;height:calc(var(--spacing,.25rem)*12);background-color:var(--color-base-dark,#e6e6e6);width:100%;padding-inline:calc(var(--spacing,.25rem)*3);justify-content:space-between;align-items:center;transition:all .3s ease-in-out;display:flex;position:sticky}.navbar-title{pointer-events:none;font-size:var(--text-lg,1.125rem);line-height:var(--tw-leading,var(--text-lg--line-height,calc(1.75/1.125)));--tw-font-weight:var(--font-weight-bold,700);font-weight:var(--font-weight-bold,700);color:var(--color-text,#0d0d0d)}.navbar-left{align-items:center;gap:calc(var(--spacing,.25rem)*2);display:flex}.navbar-right{justify-content:flex-end;align-items:center;gap:calc(var(--spacing,.25rem)*2);display:flex}@property --tw-font-weight{syntax:"*";inherits:false}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-duration:initial;--tw-ease:initial}}}.notification-portal{z-index:51;pointer-events:none;bottom:calc(var(--spacing,.25rem)*0);left:calc(var(--spacing,.25rem)*0);justify-content:flex-end;align-items:flex-start;gap:calc(var(--spacing,.25rem)*2);padding:calc(var(--spacing,.25rem)*2);flex-direction:column;display:flex;position:fixed}.notification{pointer-events:auto;z-index:10;min-width:calc(var(--spacing,.25rem)*40);--tw-translate-y:calc(var(--spacing,.25rem)*0);translate:var(--tw-translate-x)var(--tw-translate-y);justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem)*2);border-radius:var(--radius-3xl,1.5rem);padding:calc(var(--spacing,.25rem)*2);padding-inline:calc(var(--spacing,.25rem)*2.5);opacity:1;transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4,0,.2,1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-duration:.3s;--tw-ease:var(--ease-in-out,cubic-bezier(.4,0,.2,1));transition-duration:.3s;transition-timing-function:var(--ease-in-out,cubic-bezier(.4,0,.2,1));display:flex;position:relative}@media not all and (min-width:28rem){.notification{width:100%}}.notification.closing{--tw-translate-y:calc(var(--spacing,.25rem)*2);translate:var(--tw-translate-x)var(--tw-translate-y);opacity:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}.tabs-layout-main{border-top-right-radius:var(--radius-xl,.75rem);border-bottom-right-radius:var(--radius-xl,.75rem);border-bottom-left-radius:var(--radius-xl,.75rem)}.tabs-container{margin-bottom:calc(var(--spacing,.25rem)*5);justify-content:flex-start;align-items:center;width:100%;display:flex}.tab{padding-inline:calc(var(--spacing,.25rem)*3);white-space:nowrap;--tw-border-style:none!important;padding-top:calc(var(--spacing,.25rem)*2)!important;border-style:none!important;border-radius:0!important}/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */.onboarding-main{top:calc(var(--spacing,.25rem)*0);left:calc(var(--spacing,.25rem)*0);z-index:50;background-color:var(--color-base,#f2f2f2);justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed}.onboarding-main .tabs-layout-main{gap:calc(var(--spacing,.25rem)*40);flex-direction:column-reverse;display:flex}.onboarding-main .tabs-container{justify-content:center;gap:calc(var(--spacing,.25rem)*5)}.onboarding-main .tab{height:calc(var(--spacing,.25rem)*2);width:calc(var(--spacing,.25rem)*2);padding:calc(var(--spacing,.25rem)*0);border-radius:3.40282e38px!important}.onboarding-main .tab.outlined{background-color:var(--color-primary,#4cc2ff)!important}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sito/dashboard-app",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.37",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "UI Library with prefab components",
|
|
7
7
|
"main": "dist/dashboard-app.cjs",
|
|
@@ -32,10 +32,13 @@
|
|
|
32
32
|
"dev": "vite",
|
|
33
33
|
"build": "tsc && vite build",
|
|
34
34
|
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
|
35
|
+
"test": "vitest run",
|
|
36
|
+
"test:watch": "vitest",
|
|
35
37
|
"preview": "vite preview",
|
|
36
38
|
"storybook": "storybook dev -p 6006",
|
|
37
39
|
"build-storybook": "storybook build",
|
|
38
|
-
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,json,css,scss,md}\""
|
|
40
|
+
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,json,css,scss,md}\"",
|
|
41
|
+
"prepare": "husky"
|
|
39
42
|
},
|
|
40
43
|
"keywords": [
|
|
41
44
|
"sito",
|
|
@@ -43,7 +46,7 @@
|
|
|
43
46
|
"components"
|
|
44
47
|
],
|
|
45
48
|
"author": "sito8943",
|
|
46
|
-
"license": "
|
|
49
|
+
"license": "MIT",
|
|
47
50
|
"peerDependencies": {
|
|
48
51
|
"@emotion/css": "11.13.5",
|
|
49
52
|
"@fortawesome/fontawesome-svg-core": "7.0.0",
|
|
@@ -51,7 +54,7 @@
|
|
|
51
54
|
"@fortawesome/free-regular-svg-icons": "7.0.0",
|
|
52
55
|
"@fortawesome/free-solid-svg-icons": "7.0.0",
|
|
53
56
|
"@fortawesome/react-fontawesome": "0.2.3",
|
|
54
|
-
"@sito/dashboard": "^0.0.
|
|
57
|
+
"@sito/dashboard": "^0.0.62",
|
|
55
58
|
"@tanstack/react-query": "5.83.0",
|
|
56
59
|
"react": "18.3.1",
|
|
57
60
|
"react-dom": "18.3.1",
|
|
@@ -64,13 +67,15 @@
|
|
|
64
67
|
"@fortawesome/free-regular-svg-icons": "7.0.0",
|
|
65
68
|
"@fortawesome/free-solid-svg-icons": "7.0.0",
|
|
66
69
|
"@fortawesome/react-fontawesome": "0.2.3",
|
|
67
|
-
"@sito/dashboard": "^0.0.
|
|
70
|
+
"@sito/dashboard": "^0.0.62",
|
|
68
71
|
"@storybook/addon-a11y": "8.4.7",
|
|
69
72
|
"@storybook/addon-essentials": "8.4.7",
|
|
70
73
|
"@storybook/addon-interactions": "8.4.7",
|
|
71
74
|
"@storybook/react-vite": "8.4.7",
|
|
72
75
|
"@tailwindcss/vite": "4.1.11",
|
|
73
76
|
"@tanstack/react-query": "5.83.0",
|
|
77
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
78
|
+
"@testing-library/react": "^16.3.0",
|
|
74
79
|
"@types/node": "20.8.10",
|
|
75
80
|
"@types/react": "18.3.3",
|
|
76
81
|
"@types/react-dom": "18.2.14",
|
|
@@ -79,6 +84,8 @@
|
|
|
79
84
|
"eslint": "9.39.2",
|
|
80
85
|
"eslint-plugin-react-hooks": "5.0.0",
|
|
81
86
|
"eslint-plugin-react-refresh": "0.4.18",
|
|
87
|
+
"husky": "9.1.7",
|
|
88
|
+
"jsdom": "^26.1.0",
|
|
82
89
|
"prettier": "3.3.3",
|
|
83
90
|
"react": "18.3.1",
|
|
84
91
|
"react-dom": "18.3.1",
|
|
@@ -90,14 +97,10 @@
|
|
|
90
97
|
"typescript-eslint": "8.22.0",
|
|
91
98
|
"vite": "6.4.1",
|
|
92
99
|
"vite-plugin-dts": "4.0.2",
|
|
93
|
-
"vite-plugin-lib-inject-css": "1.3.0"
|
|
100
|
+
"vite-plugin-lib-inject-css": "1.3.0",
|
|
101
|
+
"vitest": "^3.2.1"
|
|
94
102
|
},
|
|
95
103
|
"dependencies": {
|
|
96
104
|
"some-javascript-utils": "0.10.10"
|
|
97
|
-
},
|
|
98
|
-
"eslintConfig": {
|
|
99
|
-
"extends": [
|
|
100
|
-
"plugin:storybook/recommended"
|
|
101
|
-
]
|
|
102
105
|
}
|
|
103
106
|
}
|