@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.
Files changed (119) hide show
  1. package/dist/components/account/AccountModals.mjs +18 -0
  2. package/dist/components/account/AccountModals.mjs.map +1 -0
  3. package/dist/components/account/ConfigurationsMyAccountModal.mjs +132 -0
  4. package/dist/components/account/ConfigurationsMyAccountModal.mjs.map +1 -0
  5. package/dist/components/account/ConfirmDeleteAccountModal.mjs +45 -0
  6. package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +1 -0
  7. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs +45 -0
  8. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs.map +1 -0
  9. package/dist/components/account/DeleteAccountModal.mjs +123 -0
  10. package/dist/components/account/DeleteAccountModal.mjs.map +1 -0
  11. package/dist/components/account/DisableTwoFactorAuthModal.mjs +67 -0
  12. package/dist/components/account/DisableTwoFactorAuthModal.mjs.map +1 -0
  13. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs +42 -0
  14. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +1 -0
  15. package/dist/components/account/TwoFactorAuthModal.mjs +190 -0
  16. package/dist/components/account/TwoFactorAuthModal.mjs.map +1 -0
  17. package/dist/components/account/constants.mjs +29 -0
  18. package/dist/components/account/constants.mjs.map +1 -0
  19. package/dist/components/handlers/SearchParamsHandler.mjs +24 -0
  20. package/dist/components/handlers/SearchParamsHandler.mjs.map +1 -0
  21. package/dist/components/layouts/AppMobileNavBar.mjs +53 -0
  22. package/dist/components/layouts/AppMobileNavBar.mjs.map +1 -0
  23. package/dist/components/layouts/AppNavBar.mjs +75 -0
  24. package/dist/components/layouts/AppNavBar.mjs.map +1 -0
  25. package/dist/components/layouts/MainLayout.mjs +60 -0
  26. package/dist/components/layouts/MainLayout.mjs.map +1 -0
  27. package/dist/components/layouts/MdSideBarNavigation.mjs +39 -0
  28. package/dist/components/layouts/MdSideBarNavigation.mjs.map +1 -0
  29. package/dist/components/layouts/NavBar.mjs +64 -0
  30. package/dist/components/layouts/NavBar.mjs.map +1 -0
  31. package/dist/components/layouts/NavBarItem.mjs +23 -0
  32. package/dist/components/layouts/NavBarItem.mjs.map +1 -0
  33. package/dist/components/layouts/NotificationItem.mjs +14 -0
  34. package/dist/components/layouts/NotificationItem.mjs.map +1 -0
  35. package/dist/components/layouts/NotificationsPopover.mjs +86 -0
  36. package/dist/components/layouts/NotificationsPopover.mjs.map +1 -0
  37. package/dist/components/layouts/ProfilePopover.mjs +150 -0
  38. package/dist/components/layouts/ProfilePopover.mjs.map +1 -0
  39. package/dist/components/layouts/SideBarNavigation.mjs +22 -0
  40. package/dist/components/layouts/SideBarNavigation.mjs.map +1 -0
  41. package/dist/components/layouts/UsersSelectorPopover.mjs +236 -0
  42. package/dist/components/layouts/UsersSelectorPopover.mjs.map +1 -0
  43. package/dist/components/modals/ModalManager.mjs +19 -0
  44. package/dist/components/modals/ModalManager.mjs.map +1 -0
  45. package/dist/components/modals/Modals.mjs +20 -0
  46. package/dist/components/modals/Modals.mjs.map +1 -0
  47. package/dist/enums/AccountSectionType.mjs +11 -0
  48. package/dist/enums/AccountSectionType.mjs.map +1 -0
  49. package/dist/hooks/copy-to-clipboard.hook.mjs +39 -0
  50. package/dist/hooks/copy-to-clipboard.hook.mjs.map +1 -0
  51. package/dist/hooks/useCountdownTimer.mjs +29 -0
  52. package/dist/hooks/useCountdownTimer.mjs.map +1 -0
  53. package/dist/hooks/useIsMobile.mjs +18 -0
  54. package/dist/hooks/useIsMobile.mjs.map +1 -0
  55. package/dist/hooks/usePasswordVisibility.mjs +13 -0
  56. package/dist/hooks/usePasswordVisibility.mjs.map +1 -0
  57. package/dist/index.mjs +304 -0
  58. package/dist/index.mjs.map +1 -0
  59. package/dist/infra/api/client.mjs +122 -0
  60. package/dist/infra/api/client.mjs.map +1 -0
  61. package/dist/infra/api/types.mjs +31 -0
  62. package/dist/infra/api/types.mjs.map +1 -0
  63. package/dist/infra/utils/client-info.mjs +27 -0
  64. package/dist/infra/utils/client-info.mjs.map +1 -0
  65. package/dist/infra/utils/clsx.mjs +9 -0
  66. package/dist/infra/utils/clsx.mjs.map +1 -0
  67. package/dist/infra/utils/params.mjs +21 -0
  68. package/dist/infra/utils/params.mjs.map +1 -0
  69. package/dist/infra/utils/parser.mjs +24 -0
  70. package/dist/infra/utils/parser.mjs.map +1 -0
  71. package/dist/infra/utils/percentage.mjs +20 -0
  72. package/dist/infra/utils/percentage.mjs.map +1 -0
  73. package/dist/middlewares/chain.mjs +37 -0
  74. package/dist/middlewares/chain.mjs.map +1 -0
  75. package/dist/middlewares/create-auth-middleware.mjs +28 -0
  76. package/dist/middlewares/create-auth-middleware.mjs.map +1 -0
  77. package/dist/middlewares/types.mjs +11 -0
  78. package/dist/middlewares/types.mjs.map +1 -0
  79. package/dist/modules/accounts/types.mjs +1 -0
  80. package/dist/modules/accounts/types.mjs.map +1 -0
  81. package/dist/modules/auth/schema.mjs +1 -0
  82. package/dist/modules/auth/schema.mjs.map +1 -0
  83. package/dist/modules/ia-credits/types.mjs +25 -0
  84. package/dist/modules/ia-credits/types.mjs.map +1 -0
  85. package/dist/modules/projects/types.mjs +22 -0
  86. package/dist/modules/projects/types.mjs.map +1 -0
  87. package/dist/modules/subscriptions/types.mjs +57 -0
  88. package/dist/modules/subscriptions/types.mjs.map +1 -0
  89. package/dist/modules/users/schema.mjs +11 -0
  90. package/dist/modules/users/schema.mjs.map +1 -0
  91. package/dist/modules/whitelabel/schema.mjs +1 -0
  92. package/dist/modules/whitelabel/schema.mjs.map +1 -0
  93. package/dist/providers/auth.provider.mjs +100 -0
  94. package/dist/providers/auth.provider.mjs.map +1 -0
  95. package/dist/providers/query.provider.mjs +41 -0
  96. package/dist/providers/query.provider.mjs.map +1 -0
  97. package/dist/providers/whitelabel.provider.mjs +34 -0
  98. package/dist/providers/whitelabel.provider.mjs.map +1 -0
  99. package/dist/server.mjs +74 -0
  100. package/dist/server.mjs.map +1 -0
  101. package/dist/store/useAccountModals.mjs +18 -0
  102. package/dist/store/useAccountModals.mjs.map +1 -0
  103. package/dist/store/useMdSidebarStore.mjs +11 -0
  104. package/dist/store/useMdSidebarStore.mjs.map +1 -0
  105. package/dist/store/useModalManager.mjs +75 -0
  106. package/dist/store/useModalManager.mjs.map +1 -0
  107. package/dist/utils/browser/clipboard.mjs +36 -0
  108. package/dist/utils/browser/clipboard.mjs.map +1 -0
  109. package/dist/utils/file/index.mjs +9 -0
  110. package/dist/utils/file/index.mjs.map +1 -0
  111. package/dist/utils/format/masks.mjs +56 -0
  112. package/dist/utils/format/masks.mjs.map +1 -0
  113. package/dist/utils/intl/locales.mjs +12 -0
  114. package/dist/utils/intl/locales.mjs.map +1 -0
  115. package/dist/utils/validators/account.mjs +26 -0
  116. package/dist/utils/validators/account.mjs.map +1 -0
  117. package/dist/utils/validators/common.mjs +47 -0
  118. package/dist/utils/validators/common.mjs.map +1 -0
  119. 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