@greatapps/common 1.1.70 → 1.1.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/account/AccountModals.mjs +18 -0
- package/dist/components/account/AccountModals.mjs.map +1 -0
- package/dist/components/account/ConfigurationsMyAccountModal.mjs +132 -0
- package/dist/components/account/ConfigurationsMyAccountModal.mjs.map +1 -0
- package/dist/components/account/ConfirmDeleteAccountModal.mjs +45 -0
- package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +1 -0
- package/dist/components/account/ConfirmGlobalPreferencesModal.mjs +45 -0
- package/dist/components/account/ConfirmGlobalPreferencesModal.mjs.map +1 -0
- package/dist/components/account/DeleteAccountModal.mjs +123 -0
- package/dist/components/account/DeleteAccountModal.mjs.map +1 -0
- package/dist/components/account/DisableTwoFactorAuthModal.mjs +67 -0
- package/dist/components/account/DisableTwoFactorAuthModal.mjs.map +1 -0
- package/dist/components/account/IsntPossibleDeleteAccountModal.mjs +42 -0
- package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +1 -0
- package/dist/components/account/TwoFactorAuthModal.mjs +190 -0
- package/dist/components/account/TwoFactorAuthModal.mjs.map +1 -0
- package/dist/components/account/constants.mjs +29 -0
- package/dist/components/account/constants.mjs.map +1 -0
- package/dist/components/handlers/SearchParamsHandler.mjs +24 -0
- package/dist/components/handlers/SearchParamsHandler.mjs.map +1 -0
- package/dist/components/layouts/AppMobileNavBar.mjs +53 -0
- package/dist/components/layouts/AppMobileNavBar.mjs.map +1 -0
- package/dist/components/layouts/AppNavBar.mjs +75 -0
- package/dist/components/layouts/AppNavBar.mjs.map +1 -0
- package/dist/components/layouts/MainLayout.mjs +60 -0
- package/dist/components/layouts/MainLayout.mjs.map +1 -0
- package/dist/components/layouts/MdSideBarNavigation.mjs +39 -0
- package/dist/components/layouts/MdSideBarNavigation.mjs.map +1 -0
- package/dist/components/layouts/NavBar.mjs +64 -0
- package/dist/components/layouts/NavBar.mjs.map +1 -0
- package/dist/components/layouts/NavBarItem.mjs +23 -0
- package/dist/components/layouts/NavBarItem.mjs.map +1 -0
- package/dist/components/layouts/NotificationItem.mjs +14 -0
- package/dist/components/layouts/NotificationItem.mjs.map +1 -0
- package/dist/components/layouts/NotificationsPopover.mjs +86 -0
- package/dist/components/layouts/NotificationsPopover.mjs.map +1 -0
- package/dist/components/layouts/ProfilePopover.mjs +150 -0
- package/dist/components/layouts/ProfilePopover.mjs.map +1 -0
- package/dist/components/layouts/SideBarNavigation.mjs +22 -0
- package/dist/components/layouts/SideBarNavigation.mjs.map +1 -0
- package/dist/components/layouts/UsersSelectorPopover.mjs +236 -0
- package/dist/components/layouts/UsersSelectorPopover.mjs.map +1 -0
- package/dist/components/modals/ModalManager.mjs +19 -0
- package/dist/components/modals/ModalManager.mjs.map +1 -0
- package/dist/components/modals/Modals.mjs +20 -0
- package/dist/components/modals/Modals.mjs.map +1 -0
- package/dist/enums/AccountSectionType.mjs +11 -0
- package/dist/enums/AccountSectionType.mjs.map +1 -0
- package/dist/hooks/copy-to-clipboard.hook.mjs +39 -0
- package/dist/hooks/copy-to-clipboard.hook.mjs.map +1 -0
- package/dist/hooks/useCountdownTimer.mjs +29 -0
- package/dist/hooks/useCountdownTimer.mjs.map +1 -0
- package/dist/hooks/useIsMobile.mjs +18 -0
- package/dist/hooks/useIsMobile.mjs.map +1 -0
- package/dist/hooks/usePasswordVisibility.mjs +13 -0
- package/dist/hooks/usePasswordVisibility.mjs.map +1 -0
- package/dist/index.mjs +304 -0
- package/dist/index.mjs.map +1 -0
- package/dist/infra/api/client.mjs +122 -0
- package/dist/infra/api/client.mjs.map +1 -0
- package/dist/infra/api/types.mjs +31 -0
- package/dist/infra/api/types.mjs.map +1 -0
- package/dist/infra/utils/client-info.mjs +27 -0
- package/dist/infra/utils/client-info.mjs.map +1 -0
- package/dist/infra/utils/clsx.mjs +9 -0
- package/dist/infra/utils/clsx.mjs.map +1 -0
- package/dist/infra/utils/params.mjs +21 -0
- package/dist/infra/utils/params.mjs.map +1 -0
- package/dist/infra/utils/parser.mjs +24 -0
- package/dist/infra/utils/parser.mjs.map +1 -0
- package/dist/infra/utils/percentage.mjs +20 -0
- package/dist/infra/utils/percentage.mjs.map +1 -0
- package/dist/middlewares/chain.mjs +37 -0
- package/dist/middlewares/chain.mjs.map +1 -0
- package/dist/middlewares/create-auth-middleware.mjs +28 -0
- package/dist/middlewares/create-auth-middleware.mjs.map +1 -0
- package/dist/middlewares/types.mjs +11 -0
- package/dist/middlewares/types.mjs.map +1 -0
- package/dist/modules/accounts/types.mjs +1 -0
- package/dist/modules/accounts/types.mjs.map +1 -0
- package/dist/modules/auth/schema.mjs +1 -0
- package/dist/modules/auth/schema.mjs.map +1 -0
- package/dist/modules/ia-credits/types.mjs +25 -0
- package/dist/modules/ia-credits/types.mjs.map +1 -0
- package/dist/modules/projects/types.mjs +22 -0
- package/dist/modules/projects/types.mjs.map +1 -0
- package/dist/modules/subscriptions/types.mjs +57 -0
- package/dist/modules/subscriptions/types.mjs.map +1 -0
- package/dist/modules/users/schema.mjs +11 -0
- package/dist/modules/users/schema.mjs.map +1 -0
- package/dist/modules/whitelabel/schema.mjs +1 -0
- package/dist/modules/whitelabel/schema.mjs.map +1 -0
- package/dist/providers/auth.provider.mjs +100 -0
- package/dist/providers/auth.provider.mjs.map +1 -0
- package/dist/providers/query.provider.mjs +41 -0
- package/dist/providers/query.provider.mjs.map +1 -0
- package/dist/providers/whitelabel.provider.mjs +34 -0
- package/dist/providers/whitelabel.provider.mjs.map +1 -0
- package/dist/server.mjs +74 -0
- package/dist/server.mjs.map +1 -0
- package/dist/store/useAccountModals.mjs +18 -0
- package/dist/store/useAccountModals.mjs.map +1 -0
- package/dist/store/useMdSidebarStore.mjs +11 -0
- package/dist/store/useMdSidebarStore.mjs.map +1 -0
- package/dist/store/useModalManager.mjs +75 -0
- package/dist/store/useModalManager.mjs.map +1 -0
- package/dist/utils/browser/clipboard.mjs +36 -0
- package/dist/utils/browser/clipboard.mjs.map +1 -0
- package/dist/utils/file/index.mjs +9 -0
- package/dist/utils/file/index.mjs.map +1 -0
- package/dist/utils/format/masks.mjs +56 -0
- package/dist/utils/format/masks.mjs.map +1 -0
- package/dist/utils/intl/locales.mjs +12 -0
- package/dist/utils/intl/locales.mjs.map +1 -0
- package/dist/utils/validators/account.mjs +26 -0
- package/dist/utils/validators/account.mjs.map +1 -0
- package/dist/utils/validators/common.mjs +47 -0
- package/dist/utils/validators/common.mjs.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useModalManager } from "../../store/useModalManager";
|
|
4
|
+
function ModalManager({ registry }) {
|
|
5
|
+
const { modalStack } = useModalManager();
|
|
6
|
+
if (modalStack.length === 0) return null;
|
|
7
|
+
return /* @__PURE__ */ jsx(Fragment, { children: modalStack.map((modal) => {
|
|
8
|
+
const ModalComponent = registry[modal.key];
|
|
9
|
+
if (!ModalComponent) {
|
|
10
|
+
console.warn(`Modal "${modal.key}" not found in registry`);
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return /* @__PURE__ */ jsx(ModalComponent, {}, modal.key);
|
|
14
|
+
}) });
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
ModalManager
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=ModalManager.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/modals/ModalManager.tsx"],"sourcesContent":["'use client';\n\nimport { ComponentType } from 'react';\nimport { useModalManager } from '../../store/useModalManager';\n\ninterface ModalManagerProps {\n registry: Record<string, ComponentType>;\n}\n\nexport function ModalManager({ registry }: ModalManagerProps) {\n const { modalStack } = useModalManager();\n\n if (modalStack.length === 0) return null;\n\n return (\n <>\n {modalStack.map((modal) => {\n const ModalComponent = registry[modal.key];\n\n if (!ModalComponent) {\n console.warn(`Modal \"${modal.key}\" not found in registry`);\n return null;\n }\n\n return <ModalComponent key={modal.key} />;\n })}\n </>\n );\n}\n"],"mappings":";AAeI,mBASW,WATX;AAZJ,SAAS,uBAAuB;AAMzB,SAAS,aAAa,EAAE,SAAS,GAAsB;AAC5D,QAAM,EAAE,WAAW,IAAI,gBAAgB;AAEvC,MAAI,WAAW,WAAW,EAAG,QAAO;AAEpC,SACE,gCACG,qBAAW,IAAI,CAAC,UAAU;AACzB,UAAM,iBAAiB,SAAS,MAAM,GAAG;AAEzC,QAAI,CAAC,gBAAgB;AACnB,cAAQ,KAAK,UAAU,MAAM,GAAG,yBAAyB;AACzD,aAAO;AAAA,IACT;AAEA,WAAO,oBAAC,oBAAoB,MAAM,GAAK;AAAA,EACzC,CAAC,GACH;AAEJ;","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect } from "react";
|
|
4
|
+
import AccountModals from "../account/AccountModals";
|
|
5
|
+
import { ModalManager } from "./ModalManager";
|
|
6
|
+
import { useAccountModals } from "../../store/useAccountModals";
|
|
7
|
+
function Modals({ registry, hasActiveSubscription, onGoToSubscription }) {
|
|
8
|
+
const { updateConfig } = useAccountModals();
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
updateConfig({ hasActiveSubscription, onGoToSubscription });
|
|
11
|
+
}, [hasActiveSubscription, onGoToSubscription, updateConfig]);
|
|
12
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
13
|
+
/* @__PURE__ */ jsx(AccountModals, {}),
|
|
14
|
+
/* @__PURE__ */ jsx(ModalManager, { registry })
|
|
15
|
+
] });
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
Modals
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=Modals.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/modals/Modals.tsx"],"sourcesContent":["'use client';\n\nimport { ComponentType, useEffect } from 'react';\nimport AccountModals from '../account/AccountModals';\nimport { ModalManager } from './ModalManager';\nimport { useAccountModals } from '../../store/useAccountModals';\ninterface ModalsProps {\n registry: Record<string, ComponentType>;\n hasActiveSubscription?: boolean;\n onGoToSubscription?: () => void;\n}\n\nexport function Modals({ registry, hasActiveSubscription, onGoToSubscription }: ModalsProps) {\n const { updateConfig } = useAccountModals();\n\n useEffect(() => {\n updateConfig({ hasActiveSubscription, onGoToSubscription });\n }, [hasActiveSubscription, onGoToSubscription, updateConfig]);\n\n return (\n <>\n <AccountModals />\n <ModalManager registry={registry} />\n </>\n );\n}\n"],"mappings":";AAoBI,mBACE,KADF;AAlBJ,SAAwB,iBAAiB;AACzC,OAAO,mBAAmB;AAC1B,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AAO1B,SAAS,OAAO,EAAE,UAAU,uBAAuB,mBAAmB,GAAgB;AAC3F,QAAM,EAAE,aAAa,IAAI,iBAAiB;AAE1C,YAAU,MAAM;AACd,iBAAa,EAAE,uBAAuB,mBAAmB,CAAC;AAAA,EAC5D,GAAG,CAAC,uBAAuB,oBAAoB,YAAY,CAAC;AAE5D,SACE,iCACE;AAAA,wBAAC,iBAAc;AAAA,IACf,oBAAC,gBAAa,UAAoB;AAAA,KACpC;AAEJ;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
var AccountSectionType = /* @__PURE__ */ ((AccountSectionType2) => {
|
|
2
|
+
AccountSectionType2["MY_PROFILE"] = "my-profile";
|
|
3
|
+
AccountSectionType2["SECURITY"] = "security";
|
|
4
|
+
AccountSectionType2["PREFERENCES"] = "preferences";
|
|
5
|
+
AccountSectionType2["CHANGE_PASSWORD"] = "change-password";
|
|
6
|
+
return AccountSectionType2;
|
|
7
|
+
})(AccountSectionType || {});
|
|
8
|
+
export {
|
|
9
|
+
AccountSectionType
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=AccountSectionType.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/enums/AccountSectionType.ts"],"sourcesContent":["export enum AccountSectionType {\r\n MY_PROFILE = 'my-profile',\r\n SECURITY = 'security',\r\n PREFERENCES = 'preferences',\r\n CHANGE_PASSWORD = 'change-password',\r\n}\r\n"],"mappings":"AAAO,IAAK,qBAAL,kBAAKA,wBAAL;AACL,EAAAA,oBAAA,gBAAa;AACb,EAAAA,oBAAA,cAAW;AACX,EAAAA,oBAAA,iBAAc;AACd,EAAAA,oBAAA,qBAAkB;AAJR,SAAAA;AAAA,GAAA;","names":["AccountSectionType"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { useState, useCallback, useRef, useEffect } from "react";
|
|
2
|
+
function useCopyToClipboard({
|
|
3
|
+
feedbackDuration = 2e3,
|
|
4
|
+
onSuccess,
|
|
5
|
+
onError
|
|
6
|
+
} = {}) {
|
|
7
|
+
const [isCopied, setIsCopied] = useState(false);
|
|
8
|
+
const timeoutRef = useRef(null);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
return () => {
|
|
11
|
+
if (timeoutRef.current) {
|
|
12
|
+
clearTimeout(timeoutRef.current);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
}, []);
|
|
16
|
+
const copy = useCallback(
|
|
17
|
+
async (text) => {
|
|
18
|
+
if (timeoutRef.current) {
|
|
19
|
+
clearTimeout(timeoutRef.current);
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
await navigator.clipboard.writeText(text);
|
|
23
|
+
setIsCopied(true);
|
|
24
|
+
onSuccess?.();
|
|
25
|
+
timeoutRef.current = setTimeout(() => {
|
|
26
|
+
setIsCopied(false);
|
|
27
|
+
}, feedbackDuration);
|
|
28
|
+
} catch (error) {
|
|
29
|
+
onError?.(error instanceof Error ? error : new Error("Failed to copy"));
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
[feedbackDuration, onSuccess, onError]
|
|
33
|
+
);
|
|
34
|
+
return { isCopied, copy };
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
useCopyToClipboard as default
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=copy-to-clipboard.hook.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/copy-to-clipboard.hook.tsx"],"sourcesContent":["import { useState, useCallback, useRef, useEffect } from \"react\";\n\ninterface UseCopyToClipboardOptions {\n feedbackDuration?: number;\n onSuccess?: () => void;\n onError?: (error: Error) => void;\n}\n\ninterface UseCopyToClipboardReturn {\n isCopied: boolean;\n copy: (text: string) => Promise<void>;\n}\n\nexport default function useCopyToClipboard({\n feedbackDuration = 2000,\n onSuccess,\n onError,\n}: UseCopyToClipboardOptions = {}): UseCopyToClipboardReturn {\n const [isCopied, setIsCopied] = useState(false);\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n const copy = useCallback(\n async (text: string) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n try {\n await navigator.clipboard.writeText(text);\n setIsCopied(true);\n onSuccess?.();\n\n timeoutRef.current = setTimeout(() => {\n setIsCopied(false);\n }, feedbackDuration);\n } catch (error) {\n onError?.(error instanceof Error ? error : new Error(\"Failed to copy\"));\n }\n },\n [feedbackDuration, onSuccess, onError],\n );\n\n return { isCopied, copy };\n}\n"],"mappings":"AAAA,SAAS,UAAU,aAAa,QAAQ,iBAAiB;AAa1C,SAAR,mBAAoC;AAAA,EACzC,mBAAmB;AAAA,EACnB;AAAA,EACA;AACF,IAA+B,CAAC,GAA6B;AAC3D,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,QAAM,aAAa,OAA8B,IAAI;AAErD,YAAU,MAAM;AACd,WAAO,MAAM;AACX,UAAI,WAAW,SAAS;AACtB,qBAAa,WAAW,OAAO;AAAA,MACjC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,OAAO;AAAA,IACX,OAAO,SAAiB;AACtB,UAAI,WAAW,SAAS;AACtB,qBAAa,WAAW,OAAO;AAAA,MACjC;AAEA,UAAI;AACF,cAAM,UAAU,UAAU,UAAU,IAAI;AACxC,oBAAY,IAAI;AAChB,oBAAY;AAEZ,mBAAW,UAAU,WAAW,MAAM;AACpC,sBAAY,KAAK;AAAA,QACnB,GAAG,gBAAgB;AAAA,MACrB,SAAS,OAAO;AACd,kBAAU,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,gBAAgB,CAAC;AAAA,MACxE;AAAA,IACF;AAAA,IACA,CAAC,kBAAkB,WAAW,OAAO;AAAA,EACvC;AAEA,SAAO,EAAE,UAAU,KAAK;AAC1B;","names":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect, useState, useCallback } from "react";
|
|
3
|
+
function useCountdownTimer({
|
|
4
|
+
initialSeconds = 59,
|
|
5
|
+
onExpire
|
|
6
|
+
} = {}) {
|
|
7
|
+
const [seconds, setSeconds] = useState(initialSeconds);
|
|
8
|
+
const [isExpired, setIsExpired] = useState(false);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (seconds > 0) {
|
|
11
|
+
const interval = setInterval(() => {
|
|
12
|
+
setSeconds((prev) => prev - 1);
|
|
13
|
+
}, 1e3);
|
|
14
|
+
return () => clearInterval(interval);
|
|
15
|
+
} else {
|
|
16
|
+
setIsExpired(true);
|
|
17
|
+
onExpire?.();
|
|
18
|
+
}
|
|
19
|
+
}, [seconds, onExpire]);
|
|
20
|
+
const reset = useCallback(() => {
|
|
21
|
+
setSeconds(initialSeconds);
|
|
22
|
+
setIsExpired(false);
|
|
23
|
+
}, [initialSeconds]);
|
|
24
|
+
return { seconds, isExpired, reset };
|
|
25
|
+
}
|
|
26
|
+
export {
|
|
27
|
+
useCountdownTimer as default
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=useCountdownTimer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useCountdownTimer.ts"],"sourcesContent":["'use client';\r\n\r\nimport { useEffect, useState, useCallback } from 'react';\r\n\r\ninterface UseCountdownTimerOptions {\r\n initialSeconds?: number;\r\n onExpire?: () => void;\r\n}\r\n\r\ninterface UseCountdownTimerReturn {\r\n seconds: number;\r\n isExpired: boolean;\r\n reset: () => void;\r\n}\r\n\r\nexport default function useCountdownTimer({\r\n initialSeconds = 59,\r\n onExpire,\r\n}: UseCountdownTimerOptions = {}): UseCountdownTimerReturn {\r\n const [seconds, setSeconds] = useState(initialSeconds);\r\n const [isExpired, setIsExpired] = useState(false);\r\n\r\n useEffect(() => {\r\n if (seconds > 0) {\r\n const interval = setInterval(() => {\r\n setSeconds((prev) => prev - 1);\r\n }, 1000);\r\n return () => clearInterval(interval);\r\n } else {\r\n setIsExpired(true);\r\n onExpire?.();\r\n }\r\n }, [seconds, onExpire]);\r\n\r\n const reset = useCallback(() => {\r\n setSeconds(initialSeconds);\r\n setIsExpired(false);\r\n }, [initialSeconds]);\r\n\r\n return { seconds, isExpired, reset };\r\n}\r\n"],"mappings":";AAEA,SAAS,WAAW,UAAU,mBAAmB;AAalC,SAAR,kBAAmC;AAAA,EACxC,iBAAiB;AAAA,EACjB;AACF,IAA8B,CAAC,GAA4B;AACzD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,cAAc;AACrD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,YAAU,MAAM;AACd,QAAI,UAAU,GAAG;AACf,YAAM,WAAW,YAAY,MAAM;AACjC,mBAAW,CAAC,SAAS,OAAO,CAAC;AAAA,MAC/B,GAAG,GAAI;AACP,aAAO,MAAM,cAAc,QAAQ;AAAA,IACrC,OAAO;AACL,mBAAa,IAAI;AACjB,iBAAW;AAAA,IACb;AAAA,EACF,GAAG,CAAC,SAAS,QAAQ,CAAC;AAEtB,QAAM,QAAQ,YAAY,MAAM;AAC9B,eAAW,cAAc;AACzB,iBAAa,KAAK;AAAA,EACpB,GAAG,CAAC,cAAc,CAAC;AAEnB,SAAO,EAAE,SAAS,WAAW,MAAM;AACrC;","names":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
function useIsMobile() {
|
|
4
|
+
const [isMobile, setIsMobile] = useState(false);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
const checkMobile = () => {
|
|
7
|
+
setIsMobile(window.innerWidth < 1024);
|
|
8
|
+
};
|
|
9
|
+
checkMobile();
|
|
10
|
+
window.addEventListener("resize", checkMobile);
|
|
11
|
+
return () => window.removeEventListener("resize", checkMobile);
|
|
12
|
+
}, []);
|
|
13
|
+
return isMobile;
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
useIsMobile as default
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=useIsMobile.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useIsMobile.ts"],"sourcesContent":["'use client';\r\n\r\nimport { useEffect, useState } from 'react';\r\n\r\nexport default function useIsMobile() {\r\n const [isMobile, setIsMobile] = useState(false);\r\n\r\n useEffect(() => {\r\n const checkMobile = () => {\r\n setIsMobile(window.innerWidth < 1024);\r\n };\r\n\r\n checkMobile();\r\n window.addEventListener('resize', checkMobile);\r\n return () => window.removeEventListener('resize', checkMobile);\r\n }, []);\r\n\r\n return isMobile;\r\n}\r\n"],"mappings":";AAEA,SAAS,WAAW,gBAAgB;AAErB,SAAR,cAA+B;AACpC,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAE9C,YAAU,MAAM;AACd,UAAM,cAAc,MAAM;AACxB,kBAAY,OAAO,aAAa,IAAI;AAAA,IACtC;AAEA,gBAAY;AACZ,WAAO,iBAAiB,UAAU,WAAW;AAC7C,WAAO,MAAM,OAAO,oBAAoB,UAAU,WAAW;AAAA,EAC/D,GAAG,CAAC,CAAC;AAEL,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState, useCallback } from "react";
|
|
3
|
+
function usePasswordVisibility() {
|
|
4
|
+
const [showPassword, setShowPassword] = useState(false);
|
|
5
|
+
const togglePassword = useCallback(() => {
|
|
6
|
+
setShowPassword((prev) => !prev);
|
|
7
|
+
}, []);
|
|
8
|
+
return { showPassword, togglePassword };
|
|
9
|
+
}
|
|
10
|
+
export {
|
|
11
|
+
usePasswordVisibility as default
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=usePasswordVisibility.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/usePasswordVisibility.ts"],"sourcesContent":["'use client';\r\n\r\nimport { useState, useCallback } from 'react';\r\n\r\nexport default function usePasswordVisibility() {\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n const togglePassword = useCallback(() => {\r\n setShowPassword((prev) => !prev);\r\n }, []);\r\n\r\n return { showPassword, togglePassword };\r\n}\r\n"],"mappings":";AAEA,SAAS,UAAU,mBAAmB;AAEvB,SAAR,wBAAyC;AAC9C,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,KAAK;AAEtD,QAAM,iBAAiB,YAAY,MAAM;AACvC,oBAAgB,CAAC,SAAS,CAAC,IAAI;AAAA,EACjC,GAAG,CAAC,CAAC;AAEL,SAAO,EAAE,cAAc,eAAe;AACxC;","names":[]}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
export * from "./modules/auth/schema";
|
|
2
|
+
export * from "./modules/users/schema";
|
|
3
|
+
export * from "./modules/whitelabel/schema";
|
|
4
|
+
export * from "./infra/api/types";
|
|
5
|
+
export * from "./providers/query.provider";
|
|
6
|
+
export * from "./providers/auth.provider";
|
|
7
|
+
export * from "./providers/whitelabel.provider";
|
|
8
|
+
import { useListProjectUsers, LIST_PROJECT_USERS_QUERY_KEY, LIST_PROJECT_USERS_BASE_KEY } from "./modules/projects/hooks/list-project-users.hook";
|
|
9
|
+
import { useListAvailableUsers, LIST_AVAILABLE_USERS_QUERY_KEY, LIST_AVAILABLE_USERS_BASE_KEY } from "./modules/projects/hooks/list-available-users.hook";
|
|
10
|
+
import { useUserQuery, useUserValidateSession, useInvalidateUser, useSetUserData, useTwoFactorVerify, USER_QUERY_KEY } from "./modules/auth/hooks/useUserQuery";
|
|
11
|
+
import { useSubscriptions, SUBSCRIPTIONS_QUERY_KEY } from "./modules/subscriptions/hooks/list-subscriptions.hook";
|
|
12
|
+
import { useActiveSubscription } from "./modules/subscriptions/hooks/find-active-subscription.hook";
|
|
13
|
+
import { useIaCredits } from "./modules/ia-credits/hooks/ia-credits.hook";
|
|
14
|
+
import { SubscriptionSchema, SubscriptionItemSchema } from "./modules/subscriptions/types";
|
|
15
|
+
import { ADDON_IDS } from "./modules/subscriptions/constants/addons.constants";
|
|
16
|
+
import { QueryProvider } from "./providers/query.provider";
|
|
17
|
+
import { createAuthMiddleware } from "./middlewares/create-auth-middleware";
|
|
18
|
+
import { createMiddlewareChain } from "./middlewares/chain";
|
|
19
|
+
import { continueChain, stopChain } from "./middlewares/types";
|
|
20
|
+
import { cn } from "./infra/utils/clsx";
|
|
21
|
+
import { buildQueryParams } from "./infra/utils/params";
|
|
22
|
+
import { parseSchema, parseResult } from "./infra/utils/parser";
|
|
23
|
+
import { MainLayout, MainLayoutContent, MainLayoutSpacer, MainLayoutMain } from "./components/layouts/MainLayout";
|
|
24
|
+
import { NavBar } from "./components/layouts/NavBar";
|
|
25
|
+
import { AppNavBar } from "./components/layouts/AppNavBar";
|
|
26
|
+
import { AppMobileNavBar } from "./components/layouts/AppMobileNavBar";
|
|
27
|
+
import { SideBarNavigation } from "./components/layouts/SideBarNavigation";
|
|
28
|
+
import { MdSideBarNavigation } from "./components/layouts/MdSideBarNavigation";
|
|
29
|
+
import { NotificationItem } from "./components/layouts/NotificationItem";
|
|
30
|
+
import { NotificationsPopover } from "./components/layouts/NotificationsPopover";
|
|
31
|
+
import { UsersSelectorPopover } from "./components/layouts/UsersSelectorPopover";
|
|
32
|
+
import { ProfilePopover } from "./components/layouts/ProfilePopover";
|
|
33
|
+
import { NavBarItem } from "./components/layouts/NavBarItem";
|
|
34
|
+
import { Button, buttonVariants } from "./components/ui/buttons/Button";
|
|
35
|
+
import { CopyButton } from "./components/ui/buttons/CopyButton";
|
|
36
|
+
import { default as default2 } from "./components/ui/buttons/CancelButton";
|
|
37
|
+
import { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from "./components/ui/data-display/Accordion";
|
|
38
|
+
import { Badge, badgeVariants } from "./components/ui/data-display/Badge";
|
|
39
|
+
import { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent } from "./components/ui/data-display/Card";
|
|
40
|
+
import { Pagination, PaginationContent, PaginationLink, PaginationItem, PaginationPrevious, PaginationNext, PaginationEllipsis } from "./components/ui/data-display/Pagination";
|
|
41
|
+
import { ScrollArea, ScrollBar } from "./components/ui/data-display/ScrollArea";
|
|
42
|
+
import { Separator } from "./components/ui/data-display/Separator";
|
|
43
|
+
import { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption } from "./components/ui/data-display/Table";
|
|
44
|
+
import { Tabs, TabsList, TabsTrigger, TabsContent } from "./components/ui/data-display/Tabs";
|
|
45
|
+
import { UserAvatar } from "./components/ui/data-display/UserAvatar";
|
|
46
|
+
import { default as default3 } from "./components/ui/feedback/CircularProgress";
|
|
47
|
+
import { default as default4 } from "./components/ui/feedback/DefaultCircularProgress";
|
|
48
|
+
import { Progress } from "./components/ui/feedback/Progress";
|
|
49
|
+
import { LoadingOverlay } from "./components/ui/feedback/LoadingOverlay";
|
|
50
|
+
import { Toast, toastVariants, toastIconContainerVariants } from "./components/ui/feedback/Toast";
|
|
51
|
+
import { Calendar, CalendarDayButton } from "./components/ui/form/Calendar";
|
|
52
|
+
import { Checkbox } from "./components/ui/form/Checkbox";
|
|
53
|
+
import { DatePicker } from "./components/ui/form/DatePicker";
|
|
54
|
+
import { DateRangePicker } from "./components/ui/form/DateRangePicker";
|
|
55
|
+
import { Input } from "./components/ui/form/Input";
|
|
56
|
+
import { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from "./components/ui/form/InputOtp";
|
|
57
|
+
import { RadioGroup, RadioGroupItem } from "./components/ui/form/RadioGroup";
|
|
58
|
+
import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from "./components/ui/form/Select";
|
|
59
|
+
import { Switch } from "./components/ui/form/Switch";
|
|
60
|
+
import { Textarea } from "./components/ui/form/Textarea";
|
|
61
|
+
import { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator } from "./components/ui/overlay/Command";
|
|
62
|
+
import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "./components/ui/overlay/Dialog";
|
|
63
|
+
import { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } from "./components/ui/overlay/Popover";
|
|
64
|
+
import { Sheet, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription } from "./components/ui/overlay/Sheet";
|
|
65
|
+
import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from "./components/ui/overlay/Tooltip";
|
|
66
|
+
import { useMdSidebarStore } from "./store/useMdSidebarStore";
|
|
67
|
+
import { useModalManager } from "./store/useModalManager";
|
|
68
|
+
import { AccountSectionType } from "./enums/AccountSectionType";
|
|
69
|
+
import { default as default5 } from "./hooks/usePasswordVisibility";
|
|
70
|
+
import { default as default6 } from "./hooks/useCountdownTimer";
|
|
71
|
+
import { default as default7 } from "./hooks/useIsMobile";
|
|
72
|
+
import { formatPhone, formatTimer, formatFullName, formatCPF, formatCardNumber } from "./utils/format/masks";
|
|
73
|
+
import { timezoneService } from "./modules/accounts/services/timezone.service";
|
|
74
|
+
import { buildLocaleOptions, LANGUAGE_OPTIONS } from "./utils/intl/locales";
|
|
75
|
+
import { copyToClipboard, readFromClipboard } from "./utils/browser/clipboard";
|
|
76
|
+
import { FormField } from "./components/ui/form/FormField";
|
|
77
|
+
import { SelectField } from "./components/ui/form/SelectField";
|
|
78
|
+
import { ComboboxField } from "./components/ui/form/ComboboxField";
|
|
79
|
+
import { default as default8 } from "./components/ui/form/PhoneInput";
|
|
80
|
+
import { default as default9 } from "./components/ui/form/SwitchOptionFieldWithIcon";
|
|
81
|
+
import { TextAreaField } from "./components/ui/form/TextAreaField";
|
|
82
|
+
import {
|
|
83
|
+
useUpdateAccount,
|
|
84
|
+
useUpdateAccountUser,
|
|
85
|
+
useUpdateAccountUserById,
|
|
86
|
+
useDeleteAccountUser,
|
|
87
|
+
useDeleteAccount
|
|
88
|
+
} from "./modules/accounts/hooks/useAccountManagement";
|
|
89
|
+
import { default as default10 } from "./components/account/AccountModals";
|
|
90
|
+
import { useAccountModals } from "./store/useAccountModals";
|
|
91
|
+
import { ModalManager } from "./components/modals/ModalManager";
|
|
92
|
+
import { Modals } from "./components/modals/Modals";
|
|
93
|
+
import { default as default11 } from "./components/account/TwoFactorAuthModal";
|
|
94
|
+
import { default as default12 } from "./components/account/DisableTwoFactorAuthModal";
|
|
95
|
+
import { default as default13 } from "./components/account/ConfirmGlobalPreferencesModal";
|
|
96
|
+
import { MyProfileSection } from "./components/account/sections/MyProfileSection";
|
|
97
|
+
import { PreferencesSection } from "./components/account/sections/PreferencesSection";
|
|
98
|
+
import { SecuritySection } from "./components/account/sections/SecuritySection";
|
|
99
|
+
import { ChangePasswordSection } from "./components/account/sections/ChangePasswordSection";
|
|
100
|
+
import { ChangeEmailModal } from "./components/account/sections/ChangeEmailModal";
|
|
101
|
+
import { ChangePhoneModal } from "./components/account/sections/ChangePhoneModal";
|
|
102
|
+
import {
|
|
103
|
+
GENDER_OPTIONS,
|
|
104
|
+
CURRENCY_OPTIONS,
|
|
105
|
+
TIME_FORMAT_OPTIONS,
|
|
106
|
+
NOTIFICATION_TYPES,
|
|
107
|
+
LANGUAGE_OPTIONS as LANGUAGE_OPTIONS2
|
|
108
|
+
} from "./components/account/constants";
|
|
109
|
+
export {
|
|
110
|
+
ADDON_IDS,
|
|
111
|
+
Accordion,
|
|
112
|
+
AccordionContent,
|
|
113
|
+
AccordionItem,
|
|
114
|
+
AccordionTrigger,
|
|
115
|
+
default10 as AccountModals,
|
|
116
|
+
AccountSectionType,
|
|
117
|
+
AppMobileNavBar,
|
|
118
|
+
AppNavBar,
|
|
119
|
+
Badge,
|
|
120
|
+
Button,
|
|
121
|
+
CURRENCY_OPTIONS,
|
|
122
|
+
Calendar,
|
|
123
|
+
CalendarDayButton,
|
|
124
|
+
default2 as CancelButton,
|
|
125
|
+
Card,
|
|
126
|
+
CardAction,
|
|
127
|
+
CardContent,
|
|
128
|
+
CardDescription,
|
|
129
|
+
CardFooter,
|
|
130
|
+
CardHeader,
|
|
131
|
+
CardTitle,
|
|
132
|
+
ChangeEmailModal,
|
|
133
|
+
ChangePasswordSection,
|
|
134
|
+
ChangePhoneModal,
|
|
135
|
+
Checkbox,
|
|
136
|
+
default3 as CircularProgress,
|
|
137
|
+
ComboboxField,
|
|
138
|
+
Command,
|
|
139
|
+
CommandDialog,
|
|
140
|
+
CommandEmpty,
|
|
141
|
+
CommandGroup,
|
|
142
|
+
CommandInput,
|
|
143
|
+
CommandItem,
|
|
144
|
+
CommandList,
|
|
145
|
+
CommandSeparator,
|
|
146
|
+
CommandShortcut,
|
|
147
|
+
default13 as ConfirmGlobalPreferencesModal,
|
|
148
|
+
CopyButton,
|
|
149
|
+
DatePicker,
|
|
150
|
+
DateRangePicker,
|
|
151
|
+
default4 as DefaultCircularProgress,
|
|
152
|
+
Dialog,
|
|
153
|
+
DialogClose,
|
|
154
|
+
DialogContent,
|
|
155
|
+
DialogDescription,
|
|
156
|
+
DialogFooter,
|
|
157
|
+
DialogHeader,
|
|
158
|
+
DialogOverlay,
|
|
159
|
+
DialogPortal,
|
|
160
|
+
DialogTitle,
|
|
161
|
+
DialogTrigger,
|
|
162
|
+
default12 as DisableTwoFactorAuthModal,
|
|
163
|
+
FormField,
|
|
164
|
+
GENDER_OPTIONS,
|
|
165
|
+
Input,
|
|
166
|
+
InputOTP,
|
|
167
|
+
InputOTPGroup,
|
|
168
|
+
InputOTPSeparator,
|
|
169
|
+
InputOTPSlot,
|
|
170
|
+
LANGUAGE_OPTIONS2 as LANGUAGE_OPTIONS,
|
|
171
|
+
LIST_AVAILABLE_USERS_BASE_KEY,
|
|
172
|
+
LIST_AVAILABLE_USERS_QUERY_KEY,
|
|
173
|
+
LIST_PROJECT_USERS_BASE_KEY,
|
|
174
|
+
LIST_PROJECT_USERS_QUERY_KEY,
|
|
175
|
+
LANGUAGE_OPTIONS as LOCALE_LANGUAGE_OPTIONS,
|
|
176
|
+
LoadingOverlay,
|
|
177
|
+
MainLayout,
|
|
178
|
+
MainLayoutContent,
|
|
179
|
+
MainLayoutMain,
|
|
180
|
+
MainLayoutSpacer,
|
|
181
|
+
MdSideBarNavigation,
|
|
182
|
+
ModalManager,
|
|
183
|
+
Modals,
|
|
184
|
+
MyProfileSection,
|
|
185
|
+
NOTIFICATION_TYPES,
|
|
186
|
+
NavBar,
|
|
187
|
+
NavBarItem,
|
|
188
|
+
NotificationItem,
|
|
189
|
+
NotificationsPopover,
|
|
190
|
+
Pagination,
|
|
191
|
+
PaginationContent,
|
|
192
|
+
PaginationEllipsis,
|
|
193
|
+
PaginationItem,
|
|
194
|
+
PaginationLink,
|
|
195
|
+
PaginationNext,
|
|
196
|
+
PaginationPrevious,
|
|
197
|
+
default8 as PhoneInput,
|
|
198
|
+
Popover,
|
|
199
|
+
PopoverAnchor,
|
|
200
|
+
PopoverContent,
|
|
201
|
+
PopoverTrigger,
|
|
202
|
+
PreferencesSection,
|
|
203
|
+
ProfilePopover,
|
|
204
|
+
Progress,
|
|
205
|
+
QueryProvider,
|
|
206
|
+
RadioGroup,
|
|
207
|
+
RadioGroupItem,
|
|
208
|
+
SUBSCRIPTIONS_QUERY_KEY,
|
|
209
|
+
ScrollArea,
|
|
210
|
+
ScrollBar,
|
|
211
|
+
SecuritySection,
|
|
212
|
+
Select,
|
|
213
|
+
SelectContent,
|
|
214
|
+
SelectField,
|
|
215
|
+
SelectGroup,
|
|
216
|
+
SelectItem,
|
|
217
|
+
SelectLabel,
|
|
218
|
+
SelectScrollDownButton,
|
|
219
|
+
SelectScrollUpButton,
|
|
220
|
+
SelectSeparator,
|
|
221
|
+
SelectTrigger,
|
|
222
|
+
SelectValue,
|
|
223
|
+
Separator,
|
|
224
|
+
Sheet,
|
|
225
|
+
SheetClose,
|
|
226
|
+
SheetContent,
|
|
227
|
+
SheetDescription,
|
|
228
|
+
SheetFooter,
|
|
229
|
+
SheetHeader,
|
|
230
|
+
SheetTitle,
|
|
231
|
+
SheetTrigger,
|
|
232
|
+
SideBarNavigation,
|
|
233
|
+
SubscriptionItemSchema,
|
|
234
|
+
SubscriptionSchema,
|
|
235
|
+
Switch,
|
|
236
|
+
default9 as SwitchOptionFieldWithIcon,
|
|
237
|
+
TIME_FORMAT_OPTIONS,
|
|
238
|
+
Table,
|
|
239
|
+
TableBody,
|
|
240
|
+
TableCaption,
|
|
241
|
+
TableCell,
|
|
242
|
+
TableFooter,
|
|
243
|
+
TableHead,
|
|
244
|
+
TableHeader,
|
|
245
|
+
TableRow,
|
|
246
|
+
Tabs,
|
|
247
|
+
TabsContent,
|
|
248
|
+
TabsList,
|
|
249
|
+
TabsTrigger,
|
|
250
|
+
TextAreaField,
|
|
251
|
+
Textarea,
|
|
252
|
+
Toast,
|
|
253
|
+
Tooltip,
|
|
254
|
+
TooltipContent,
|
|
255
|
+
TooltipProvider,
|
|
256
|
+
TooltipTrigger,
|
|
257
|
+
default11 as TwoFactorAuthModal,
|
|
258
|
+
USER_QUERY_KEY,
|
|
259
|
+
UserAvatar,
|
|
260
|
+
UsersSelectorPopover,
|
|
261
|
+
badgeVariants,
|
|
262
|
+
buildLocaleOptions,
|
|
263
|
+
buildQueryParams,
|
|
264
|
+
buttonVariants,
|
|
265
|
+
cn,
|
|
266
|
+
continueChain,
|
|
267
|
+
copyToClipboard,
|
|
268
|
+
createAuthMiddleware,
|
|
269
|
+
createMiddlewareChain,
|
|
270
|
+
formatCPF,
|
|
271
|
+
formatCardNumber,
|
|
272
|
+
formatFullName,
|
|
273
|
+
formatPhone,
|
|
274
|
+
formatTimer,
|
|
275
|
+
parseResult,
|
|
276
|
+
parseSchema,
|
|
277
|
+
readFromClipboard,
|
|
278
|
+
stopChain,
|
|
279
|
+
timezoneService,
|
|
280
|
+
toastIconContainerVariants,
|
|
281
|
+
toastVariants,
|
|
282
|
+
useAccountModals,
|
|
283
|
+
useActiveSubscription,
|
|
284
|
+
default6 as useCountdownTimer,
|
|
285
|
+
useDeleteAccount,
|
|
286
|
+
useDeleteAccountUser,
|
|
287
|
+
useIaCredits,
|
|
288
|
+
useInvalidateUser,
|
|
289
|
+
default7 as useIsMobile,
|
|
290
|
+
useListAvailableUsers,
|
|
291
|
+
useListProjectUsers,
|
|
292
|
+
useMdSidebarStore,
|
|
293
|
+
useModalManager,
|
|
294
|
+
default5 as usePasswordVisibility,
|
|
295
|
+
useSetUserData,
|
|
296
|
+
useSubscriptions,
|
|
297
|
+
useTwoFactorVerify,
|
|
298
|
+
useUpdateAccount,
|
|
299
|
+
useUpdateAccountUser,
|
|
300
|
+
useUpdateAccountUserById,
|
|
301
|
+
useUserQuery,
|
|
302
|
+
useUserValidateSession
|
|
303
|
+
};
|
|
304
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Types\nexport * from './modules/auth/schema';\nexport * from './modules/users/schema';\nexport * from './modules/whitelabel/schema';\nexport * from './infra/api/types';\n\n// Contexts\nexport * from './providers/query.provider';\nexport * from './providers/auth.provider';\nexport * from './providers/whitelabel.provider';\n\n// Hooks\nexport { useListProjectUsers, LIST_PROJECT_USERS_QUERY_KEY, LIST_PROJECT_USERS_BASE_KEY } from './modules/projects/hooks/list-project-users.hook';\nexport { useListAvailableUsers, LIST_AVAILABLE_USERS_QUERY_KEY, LIST_AVAILABLE_USERS_BASE_KEY } from './modules/projects/hooks/list-available-users.hook';\nexport type { ProjectUser, AccountUser, AddRemoveProjectUsersParams, ListUsersParams, UsersPage } from './modules/projects/types';\nexport { useUserQuery, useUserValidateSession, useInvalidateUser, useSetUserData, useTwoFactorVerify, USER_QUERY_KEY } from './modules/auth/hooks/useUserQuery';\nexport { useSubscriptions, SUBSCRIPTIONS_QUERY_KEY } from './modules/subscriptions/hooks/list-subscriptions.hook';\nexport { useActiveSubscription } from './modules/subscriptions/hooks/find-active-subscription.hook';\nexport { useIaCredits } from './modules/ia-credits/hooks/ia-credits.hook';\nexport type { IaCreditsSummary, IaCreditOperation } from './modules/ia-credits/types';\nexport type { Subscription, SubscriptionItem, FindSubscriptionsParams } from './modules/subscriptions/types';\nexport { SubscriptionSchema, SubscriptionItemSchema } from './modules/subscriptions/types';\nexport { ADDON_IDS } from './modules/subscriptions/constants/addons.constants';\nexport type { AddonKindEnum } from './modules/subscriptions/constants/addons.constants';\n\n// Providers\nexport { QueryProvider } from './providers/query.provider';\n\n// Middleware\nexport { createAuthMiddleware } from './middlewares/create-auth-middleware';\nexport { createMiddlewareChain } from './middlewares/chain';\nexport { continueChain, stopChain } from './middlewares/types';\nexport type { MiddlewareFunction, MiddlewareConfig, MiddlewareResult } from './middlewares/types';\n\n// Utils\nexport { cn } from './infra/utils/clsx';\nexport { buildQueryParams } from './infra/utils/params';\nexport { parseSchema, parseResult } from './infra/utils/parser';\n\n// Layout\nexport { MainLayout, MainLayoutContent, MainLayoutSpacer, MainLayoutMain } from './components/layouts/MainLayout';\nexport { NavBar } from './components/layouts/NavBar';\nexport type { NavBarProps } from './components/layouts/NavBar';\nexport { AppNavBar } from './components/layouts/AppNavBar';\nexport type { AppNavBarProps } from './components/layouts/AppNavBar';\nexport { AppMobileNavBar } from './components/layouts/AppMobileNavBar';\nexport type { AppMobileNavBarProps } from './components/layouts/AppMobileNavBar';\nexport { SideBarNavigation } from './components/layouts/SideBarNavigation';\nexport { MdSideBarNavigation } from './components/layouts/MdSideBarNavigation';\nexport { NotificationItem } from './components/layouts/NotificationItem';\nexport type { NotificationItemProps } from './components/layouts/NotificationItem';\nexport { NotificationsPopover } from './components/layouts/NotificationsPopover';\nexport type { NotificationsPopoverProps, NotificationData } from './components/layouts/NotificationsPopover';\nexport { UsersSelectorPopover } from './components/layouts/UsersSelectorPopover';\nexport type { UsersSelectorPopoverProps } from './components/layouts/UsersSelectorPopover';\nexport { ProfilePopover } from './components/layouts/ProfilePopover';\nexport type { ProfilePopoverProps, ProfileMenuItem } from './components/layouts/ProfilePopover';\nexport { NavBarItem } from './components/layouts/NavBarItem';\nexport type { NavBarItemProps } from './components/layouts/NavBarItem';\n\n// UI - Buttons\nexport { Button, buttonVariants } from './components/ui/buttons/Button';\nexport { CopyButton } from './components/ui/buttons/CopyButton';\nexport { default as CancelButton } from './components/ui/buttons/CancelButton';\n\n// UI - Data Display\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from './components/ui/data-display/Accordion';\nexport { Badge, badgeVariants } from './components/ui/data-display/Badge';\nexport { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent } from './components/ui/data-display/Card';\nexport { Pagination, PaginationContent, PaginationLink, PaginationItem, PaginationPrevious, PaginationNext, PaginationEllipsis } from './components/ui/data-display/Pagination';\nexport { ScrollArea, ScrollBar } from './components/ui/data-display/ScrollArea';\nexport { Separator } from './components/ui/data-display/Separator';\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption } from './components/ui/data-display/Table';\nexport { Tabs, TabsList, TabsTrigger, TabsContent } from './components/ui/data-display/Tabs';\nexport { UserAvatar } from './components/ui/data-display/UserAvatar';\nexport type { UserAvatarProps } from './components/ui/data-display/UserAvatar';\n\n// UI - Feedback\nexport { default as CircularProgress } from './components/ui/feedback/CircularProgress';\nexport { default as DefaultCircularProgress } from './components/ui/feedback/DefaultCircularProgress';\nexport { Progress } from './components/ui/feedback/Progress';\nexport { LoadingOverlay } from './components/ui/feedback/LoadingOverlay';\nexport { Toast, toastVariants, toastIconContainerVariants } from './components/ui/feedback/Toast';\nexport type { ToastProps } from './components/ui/feedback/Toast';\n\n// UI - Form\nexport { Calendar, CalendarDayButton } from './components/ui/form/Calendar';\nexport { Checkbox } from './components/ui/form/Checkbox';\nexport { DatePicker } from './components/ui/form/DatePicker';\nexport { DateRangePicker } from './components/ui/form/DateRangePicker';\nexport { Input } from './components/ui/form/Input';\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from './components/ui/form/InputOtp';\nexport { RadioGroup, RadioGroupItem } from './components/ui/form/RadioGroup';\nexport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from './components/ui/form/Select';\nexport { Switch } from './components/ui/form/Switch';\nexport { Textarea } from './components/ui/form/Textarea';\n\n// UI - Overlay\nexport { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator } from './components/ui/overlay/Command';\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './components/ui/overlay/Dialog';\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } from './components/ui/overlay/Popover';\nexport { Sheet, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription } from './components/ui/overlay/Sheet';\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from './components/ui/overlay/Tooltip';\n\n// Store\nexport { useMdSidebarStore } from './store/useMdSidebarStore';\nexport { useModalManager } from './store/useModalManager';\nexport type { ModalData } from './store/useModalManager';\n\n// Enums\nexport { AccountSectionType } from './enums/AccountSectionType';\n\n// Hooks\nexport { default as usePasswordVisibility } from './hooks/usePasswordVisibility';\nexport { default as useCountdownTimer } from './hooks/useCountdownTimer';\nexport { default as useIsMobile } from './hooks/useIsMobile';\n\n// Utils\nexport { formatPhone, formatTimer, formatFullName, formatCPF, formatCardNumber } from './utils/format/masks';\nexport { timezoneService } from './modules/accounts/services/timezone.service';\nexport type { TimezoneOption } from './modules/accounts/services/timezone.service';\nexport { buildLocaleOptions, LANGUAGE_OPTIONS as LOCALE_LANGUAGE_OPTIONS } from './utils/intl/locales';\nexport type { LocaleOption } from './utils/intl/locales';\nexport { copyToClipboard, readFromClipboard } from './utils/browser/clipboard';\n\n// UI - Form (new widgets)\nexport { FormField } from './components/ui/form/FormField';\nexport { SelectField } from './components/ui/form/SelectField';\nexport { ComboboxField } from './components/ui/form/ComboboxField';\nexport type { ComboboxOption } from './components/ui/form/ComboboxField';\nexport { default as PhoneInput } from './components/ui/form/PhoneInput';\nexport { default as SwitchOptionFieldWithIcon } from './components/ui/form/SwitchOptionFieldWithIcon';\nexport { TextAreaField } from './components/ui/form/TextAreaField';\n\n// Account Module - Hooks\nexport {\n useUpdateAccount,\n useUpdateAccountUser,\n useUpdateAccountUserById,\n useDeleteAccountUser,\n useDeleteAccount,\n} from './modules/accounts/hooks/useAccountManagement';\n\n// Account Types\nexport type {\n UpdateAccountRequest,\n UpdateAccountUserRequest,\n ChangePasswordRequest,\n DeleteAccountActionResult,\n DeleteUserActionResult,\n UpdateAccountActionResult,\n UpdateUserActionResult,\n TwoFactorGenerateResult,\n TwoFactorActionResult,\n ContactResetResult,\n} from './modules/accounts/types';\n\nexport { default as AccountModals } from './components/account/AccountModals';\nexport { useAccountModals } from './store/useAccountModals';\nexport type { AccountModalsConfig } from './store/useAccountModals';\n\nexport { ModalManager } from './components/modals/ModalManager';\nexport { Modals } from './components/modals/Modals';\n\nexport { default as TwoFactorAuthModal } from './components/account/TwoFactorAuthModal';\nexport { default as DisableTwoFactorAuthModal } from './components/account/DisableTwoFactorAuthModal';\nexport { default as ConfirmGlobalPreferencesModal } from './components/account/ConfirmGlobalPreferencesModal';\nexport { MyProfileSection } from './components/account/sections/MyProfileSection';\nexport { PreferencesSection } from './components/account/sections/PreferencesSection';\nexport { SecuritySection } from './components/account/sections/SecuritySection';\nexport { ChangePasswordSection } from './components/account/sections/ChangePasswordSection';\nexport { ChangeEmailModal } from './components/account/sections/ChangeEmailModal';\nexport { ChangePhoneModal } from './components/account/sections/ChangePhoneModal';\n\n// Account Constants\nexport {\n GENDER_OPTIONS,\n CURRENCY_OPTIONS,\n TIME_FORMAT_OPTIONS,\n NOTIFICATION_TYPES,\n LANGUAGE_OPTIONS,\n} from './components/account/constants';\n"],"mappings":"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","names":["default","LANGUAGE_OPTIONS"]}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { ApiError } from "./types";
|
|
2
|
+
import { findWhitelabel } from "../../modules/whitelabel/actions/find-whitelabel.action";
|
|
3
|
+
class ApiClient {
|
|
4
|
+
baseUrl;
|
|
5
|
+
apiVersion = "v1";
|
|
6
|
+
apiLocale = "pt-br";
|
|
7
|
+
constructor(baseUrl) {
|
|
8
|
+
this.baseUrl = baseUrl;
|
|
9
|
+
}
|
|
10
|
+
async buildUrl(endpoint, whiteLabelId) {
|
|
11
|
+
const url = `${this.baseUrl}/${this.apiVersion}/${this.apiLocale}/${whiteLabelId}${endpoint}`;
|
|
12
|
+
console.log("[ApiClient] buildUrl", {
|
|
13
|
+
baseURL: this.baseUrl,
|
|
14
|
+
whiteLabelId,
|
|
15
|
+
endpoint,
|
|
16
|
+
fullUrl: url
|
|
17
|
+
});
|
|
18
|
+
return url;
|
|
19
|
+
}
|
|
20
|
+
async getDefaultHeaders(token) {
|
|
21
|
+
console.log("[ApiClient] getDefaultHeaders", {
|
|
22
|
+
token: token.substring(0, 20) + "..."
|
|
23
|
+
});
|
|
24
|
+
const headers = {
|
|
25
|
+
"Content-Type": "application/json",
|
|
26
|
+
authorization: token
|
|
27
|
+
};
|
|
28
|
+
return headers;
|
|
29
|
+
}
|
|
30
|
+
async request(endpoint, config = {}) {
|
|
31
|
+
console.log("[ApiClient] request called", { endpoint, method: config.method });
|
|
32
|
+
const { timeout = 3e4, ...fetchConfig } = config;
|
|
33
|
+
const controller = new AbortController();
|
|
34
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
35
|
+
try {
|
|
36
|
+
console.log("[ApiClient] Building URL and headers...");
|
|
37
|
+
const { id, token } = await findWhitelabel();
|
|
38
|
+
const [url, defaultHeaders] = await Promise.all([
|
|
39
|
+
this.buildUrl(endpoint, id),
|
|
40
|
+
this.getDefaultHeaders(token)
|
|
41
|
+
]);
|
|
42
|
+
console.log("[ApiClient] Fetching", {
|
|
43
|
+
url,
|
|
44
|
+
method: fetchConfig.method,
|
|
45
|
+
headers: defaultHeaders
|
|
46
|
+
});
|
|
47
|
+
const response = await fetch(url, {
|
|
48
|
+
...fetchConfig,
|
|
49
|
+
headers: {
|
|
50
|
+
...defaultHeaders,
|
|
51
|
+
...fetchConfig.headers
|
|
52
|
+
},
|
|
53
|
+
signal: controller.signal
|
|
54
|
+
});
|
|
55
|
+
console.log("[ApiClient] Response received", { status: response.status, ok: response.ok });
|
|
56
|
+
if (!response.ok) {
|
|
57
|
+
const errorData = await response.json().catch(() => ({}));
|
|
58
|
+
console.error("[ApiClient] Request failed", { status: response.status, errorData });
|
|
59
|
+
throw new ApiError(
|
|
60
|
+
errorData.message || `HTTP error ${response.status}`,
|
|
61
|
+
errorData.code || "HTTP_ERROR",
|
|
62
|
+
response.status
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
const data = await response.json();
|
|
66
|
+
console.log("[ApiClient] Request successful", { hasData: !!data });
|
|
67
|
+
return data;
|
|
68
|
+
} catch (error) {
|
|
69
|
+
console.error("[ApiClient] Request error", { error });
|
|
70
|
+
if (error instanceof ApiError) {
|
|
71
|
+
throw error;
|
|
72
|
+
}
|
|
73
|
+
if (error instanceof Error) {
|
|
74
|
+
if (error.name === "AbortError") {
|
|
75
|
+
throw new ApiError("Tempo de requisi\xE7\xE3o excedido", "TIMEOUT", 408);
|
|
76
|
+
}
|
|
77
|
+
throw new ApiError(error.message, "NETWORK_ERROR", 0);
|
|
78
|
+
}
|
|
79
|
+
throw new ApiError("Erro desconhecido", "UNKNOWN_ERROR", 500);
|
|
80
|
+
} finally {
|
|
81
|
+
clearTimeout(timeoutId);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async get(endpoint, config) {
|
|
85
|
+
return this.request(endpoint, { ...config, method: "GET" });
|
|
86
|
+
}
|
|
87
|
+
async post(endpoint, data, config) {
|
|
88
|
+
return this.request(endpoint, {
|
|
89
|
+
...config,
|
|
90
|
+
method: "POST",
|
|
91
|
+
body: data ? JSON.stringify(data) : void 0
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
async put(endpoint, data, config) {
|
|
95
|
+
return this.request(endpoint, {
|
|
96
|
+
...config,
|
|
97
|
+
method: "PUT",
|
|
98
|
+
body: data ? JSON.stringify(data) : void 0
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
async patch(endpoint, data, config) {
|
|
102
|
+
return this.request(endpoint, {
|
|
103
|
+
...config,
|
|
104
|
+
method: "PATCH",
|
|
105
|
+
body: data ? JSON.stringify(data) : void 0
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
async delete(endpoint, config) {
|
|
109
|
+
return this.request(endpoint, { ...config, method: "DELETE" });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
const api = {
|
|
113
|
+
apps: new ApiClient(process.env.GAPPS_R3_API_URL || "https://r3-api.greatapps.dev.br"),
|
|
114
|
+
pages: new ApiClient(process.env.GPAGES_R3_API_URL || "https://r3-api.greatpages.dev.br")
|
|
115
|
+
};
|
|
116
|
+
const apiClient = api.apps;
|
|
117
|
+
export {
|
|
118
|
+
ApiClient,
|
|
119
|
+
api,
|
|
120
|
+
apiClient
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=client.mjs.map
|