forlogic-core 1.15.2 → 1.15.4

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 (198) hide show
  1. package/dist/assets/index.d.ts +6 -0
  2. package/dist/auth/components/ProtectedRoute.d.ts +6 -0
  3. package/dist/auth/components/UserInfo.d.ts +10 -0
  4. package/dist/auth/contexts/AuthContext.d.ts +84 -0
  5. package/dist/auth/pages/CallbackPage.d.ts +1 -0
  6. package/dist/auth/pages/LoginPage.d.ts +2 -0
  7. package/dist/auth/services/AuthService.d.ts +40 -0
  8. package/dist/auth/services/SupabaseTokenService.d.ts +3 -0
  9. package/dist/auth/services/TokenManager.d.ts +51 -0
  10. package/dist/auth/services/TokenRegenerationService.d.ts +12 -0
  11. package/dist/auth/services/TokenService.d.ts +42 -0
  12. package/dist/auth/utils/AuthUtils.d.ts +4 -0
  13. package/dist/auth/utils/ErrorInterceptor.d.ts +15 -0
  14. package/dist/components/ErrorBoundary.d.ts +19 -0
  15. package/dist/components/layout/AppHeader.d.ts +63 -0
  16. package/dist/components/layout/AppLayout.d.ts +10 -0
  17. package/dist/components/layout/AppSidebar.d.ts +10 -0
  18. package/dist/components/layout/BodyContent.d.ts +60 -0
  19. package/dist/components/layout/SidebarActionTrigger.d.ts +34 -0
  20. package/dist/components/layout/SidebarHeader.d.ts +5 -0
  21. package/dist/components/layout/sidebar-utils.d.ts +12 -0
  22. package/dist/components/modules/ModuleGrid.d.ts +9 -0
  23. package/dist/components/modules/ModulesDialog.d.ts +3 -0
  24. package/dist/components/modules/icons/ModulesCardIcons.d.ts +19 -0
  25. package/dist/components/modules/index.d.ts +4 -0
  26. package/dist/components/modules/modulesData.d.ts +6 -0
  27. package/dist/components/modules/types.d.ts +35 -0
  28. package/dist/components/ui/accordion.d.ts +7 -0
  29. package/dist/components/ui/action-button.d.ts +43 -0
  30. package/dist/components/ui/alert-dialog.d.ts +20 -0
  31. package/dist/components/ui/alert.d.ts +12 -0
  32. package/dist/components/ui/avatar.d.ts +6 -0
  33. package/dist/components/ui/badge.d.ts +9 -0
  34. package/dist/components/ui/breadcrumb.d.ts +19 -0
  35. package/dist/components/ui/button-group.d.ts +9 -0
  36. package/dist/components/ui/button.d.ts +11 -0
  37. package/dist/components/ui/calendar.d.ts +8 -0
  38. package/dist/components/ui/card.d.ts +8 -0
  39. package/dist/components/ui/chart.d.ts +62 -0
  40. package/dist/components/ui/checkbox.d.ts +4 -0
  41. package/dist/components/ui/collapsible.d.ts +5 -0
  42. package/dist/components/ui/color-picker.d.ts +8 -0
  43. package/dist/components/ui/combobox.d.ts +33 -0
  44. package/dist/components/ui/command.d.ts +23 -0
  45. package/dist/components/ui/context-menu.d.ts +27 -0
  46. package/dist/components/ui/data-list.d.ts +86 -0
  47. package/dist/components/ui/date-picker.d.ts +9 -0
  48. package/dist/components/ui/dialog.d.ts +36 -0
  49. package/dist/components/ui/disabled-menu-item.d.ts +25 -0
  50. package/dist/components/ui/drawer.d.ts +22 -0
  51. package/dist/components/ui/dropdown-menu.d.ts +27 -0
  52. package/dist/components/ui/empty-state.d.ts +79 -0
  53. package/dist/components/ui/form.d.ts +23 -0
  54. package/dist/components/ui/grid.d.ts +53 -0
  55. package/dist/components/ui/hover-card.d.ts +6 -0
  56. package/dist/components/ui/icon-picker.d.ts +8 -0
  57. package/dist/components/ui/input-group.d.ts +97 -0
  58. package/dist/components/ui/input.d.ts +37 -0
  59. package/dist/components/ui/label.d.ts +23 -0
  60. package/dist/components/ui/loading-state.d.ts +52 -0
  61. package/dist/components/ui/menubar.d.ts +33 -0
  62. package/dist/components/ui/navigation-menu.d.ts +12 -0
  63. package/dist/components/ui/onboarding-dialog.d.ts +43 -0
  64. package/dist/components/ui/page-breadcrumb.d.ts +77 -0
  65. package/dist/components/ui/pagination.d.ts +28 -0
  66. package/dist/components/ui/popover.d.ts +49 -0
  67. package/dist/components/ui/progress.d.ts +22 -0
  68. package/dist/components/ui/radio-group.d.ts +63 -0
  69. package/dist/components/ui/resizable.d.ts +23 -0
  70. package/dist/components/ui/rich-text-editor.d.ts +45 -0
  71. package/dist/components/ui/scroll-area.d.ts +37 -0
  72. package/dist/components/ui/select.d.ts +16 -0
  73. package/dist/components/ui/separator.d.ts +4 -0
  74. package/dist/components/ui/sheet.d.ts +32 -0
  75. package/dist/components/ui/sidebar.d.ts +66 -0
  76. package/dist/components/ui/skeleton-variants.d.ts +16 -0
  77. package/dist/components/ui/skeleton.d.ts +2 -0
  78. package/dist/components/ui/slider.d.ts +4 -0
  79. package/dist/components/ui/sonner.d.ts +3 -0
  80. package/dist/components/ui/spinner.d.ts +6 -0
  81. package/dist/components/ui/split-button.d.ts +70 -0
  82. package/dist/components/ui/stack.d.ts +12 -0
  83. package/dist/components/ui/step-selector.d.ts +39 -0
  84. package/dist/components/ui/switch.d.ts +4 -0
  85. package/dist/components/ui/tab-page-layout.d.ts +19 -0
  86. package/dist/components/ui/table-resize-handle.d.ts +15 -0
  87. package/dist/components/ui/table.d.ts +10 -0
  88. package/dist/components/ui/tabs.d.ts +7 -0
  89. package/dist/components/ui/textarea.d.ts +5 -0
  90. package/dist/components/ui/toggle-group.d.ts +12 -0
  91. package/dist/components/ui/toggle.d.ts +12 -0
  92. package/dist/components/ui/tooltip.d.ts +7 -0
  93. package/dist/components/ui/truncated-cell.d.ts +7 -0
  94. package/dist/components/ui/typography.d.ts +16 -0
  95. package/dist/config/index.d.ts +53 -0
  96. package/dist/contexts/LocaleContext.d.ts +15 -0
  97. package/dist/contexts/ModalStateContext.d.ts +57 -0
  98. package/dist/contexts/NavigationContext.d.ts +13 -0
  99. package/dist/contexts/PageMetadataContext.d.ts +43 -0
  100. package/dist/crud/components/ActionMenuItems.d.ts +17 -0
  101. package/dist/crud/components/BaseForm.d.ts +6 -0
  102. package/dist/crud/components/ContextMenu.d.ts +21 -0
  103. package/dist/crud/components/CrudActionBar.d.ts +38 -0
  104. package/dist/crud/components/CrudGrid.d.ts +43 -0
  105. package/dist/crud/components/CrudPagination.d.ts +12 -0
  106. package/dist/crud/components/CrudTable.d.ts +41 -0
  107. package/dist/crud/components/FilterBar.d.ts +136 -0
  108. package/dist/crud/components/TableFooter.d.ts +14 -0
  109. package/dist/crud/components/TableRowActions.d.ts +14 -0
  110. package/dist/crud/createCrudPage.d.ts +99 -0
  111. package/dist/crud/createSimpleService.d.ts +85 -0
  112. package/dist/crud/generateCrudConfig.d.ts +73 -0
  113. package/dist/crud/hooks/useBaseForm.d.ts +8 -0
  114. package/dist/crud/hooks/useCrud.d.ts +117 -0
  115. package/dist/crud/primitives/ActionMenu.d.ts +28 -0
  116. package/dist/crud/primitives/FilterBar.d.ts +24 -0
  117. package/dist/crud/primitives/Pagination.d.ts +24 -0
  118. package/dist/crud/primitives/Table.d.ts +26 -0
  119. package/dist/crud/primitives/index.d.ts +11 -0
  120. package/dist/crud/primitives/types.d.ts +76 -0
  121. package/dist/crud/utils/routingHelpers.d.ts +30 -0
  122. package/dist/exports/crud.d.ts +21 -0
  123. package/dist/exports/integrations.d.ts +13 -0
  124. package/dist/exports/ui.d.ts +73 -0
  125. package/dist/hooks/useActiveModules.d.ts +45 -0
  126. package/dist/hooks/useColumnResize.d.ts +21 -0
  127. package/dist/hooks/useDebounce.d.ts +56 -0
  128. package/dist/hooks/useI18nFormatters.d.ts +40 -0
  129. package/dist/hooks/usePageTitle.d.ts +4 -0
  130. package/dist/hooks/usePermissionQuery.d.ts +49 -0
  131. package/dist/hooks/useRowResize.d.ts +19 -0
  132. package/dist/hooks/useSidebarResize.d.ts +19 -0
  133. package/dist/hooks/useWizard.d.ts +40 -0
  134. package/dist/i18n/DatabaseBackend.d.ts +9 -0
  135. package/dist/i18n/components/TranslationLoader.d.ts +10 -0
  136. package/dist/i18n/config.d.ts +2 -0
  137. package/dist/i18n/constants.d.ts +126 -0
  138. package/dist/i18n/index.d.ts +21 -0
  139. package/dist/index.d.ts +83 -0
  140. package/dist/index.esm.js +1 -1
  141. package/dist/index.js +1 -1
  142. package/dist/leadership/components/LeaderRow.d.ts +9 -0
  143. package/dist/leadership/components/LeadershipDialog.d.ts +10 -0
  144. package/dist/leadership/components/LeadershipForm.d.ts +8 -0
  145. package/dist/leadership/components/LeadershipPage.d.ts +1 -0
  146. package/dist/leadership/hooks/useLeadershipApi.d.ts +2 -0
  147. package/dist/leadership/hooks/useLeadershipMutations.d.ts +30 -0
  148. package/dist/leadership/index.d.ts +14 -0
  149. package/dist/leadership/types.d.ts +17 -0
  150. package/dist/leadership/utils/leadershipUtils.d.ts +8 -0
  151. package/dist/media/components/ImageEditor.d.ts +22 -0
  152. package/dist/media/components/ImageRenderer.d.ts +23 -0
  153. package/dist/media/components/VideoEditor.d.ts +22 -0
  154. package/dist/media/components/VideoRenderer.d.ts +8 -0
  155. package/dist/media/hooks/useMediaUpload.d.ts +20 -0
  156. package/dist/media/index.d.ts +49 -0
  157. package/dist/media/types.d.ts +66 -0
  158. package/dist/media/utils/imageHelpers.d.ts +28 -0
  159. package/dist/media/utils/videoHelpers.d.ts +35 -0
  160. package/dist/places/components/ManageAccessModal.d.ts +11 -0
  161. package/dist/places/components/PlaceCard.d.ts +12 -0
  162. package/dist/places/components/PlacesList.d.ts +12 -0
  163. package/dist/places/index.d.ts +8 -0
  164. package/dist/places/services/PlaceService.d.ts +9 -0
  165. package/dist/places/types.d.ts +10 -0
  166. package/dist/providers/CoreProviders.d.ts +66 -0
  167. package/dist/providers/index.d.ts +2 -0
  168. package/dist/qualiex/components/QualiexUserField.d.ts +125 -0
  169. package/dist/qualiex/hooks/useQualiexUsers.d.ts +51 -0
  170. package/dist/qualiex/services/qualiexApi.d.ts +21 -0
  171. package/dist/qualiex/utils/QualiexErrorInterceptor.d.ts +15 -0
  172. package/dist/qualiex/utils/userPlaceUtils.d.ts +16 -0
  173. package/dist/services/BaseService.d.ts +51 -0
  174. package/dist/services/EmailService.d.ts +110 -0
  175. package/dist/services/ErrorService.d.ts +19 -0
  176. package/dist/services/QualiexEnrichmentService.d.ts +65 -0
  177. package/dist/services/QualiexFieldHelpers.d.ts +17 -0
  178. package/dist/services/TranslationService.d.ts +20 -0
  179. package/dist/setup.d.ts +14 -0
  180. package/dist/sign/components/D4SignWidget.d.ts +2 -0
  181. package/dist/sign/components/DocumentSigner.d.ts +2 -0
  182. package/dist/sign/components/SignConfigForm.d.ts +2 -0
  183. package/dist/sign/components/SignWidget.d.ts +21 -0
  184. package/dist/sign/hooks/useSignConfig.d.ts +6 -0
  185. package/dist/sign/index.d.ts +7 -0
  186. package/dist/sign/services/signService.d.ts +23 -0
  187. package/dist/sign/types.d.ts +53 -0
  188. package/dist/supabase/SupabaseSingleton.d.ts +3 -0
  189. package/dist/supabase/client.d.ts +2 -0
  190. package/dist/supabase/publicClient.d.ts +2 -0
  191. package/dist/supabase/types.d.ts +377 -0
  192. package/dist/types/sidebar.d.ts +49 -0
  193. package/dist/types.d.ts +499 -0
  194. package/dist/utils/formatters/currencyFormatters.d.ts +1 -0
  195. package/dist/utils/formatters/dateFormatters.d.ts +52 -0
  196. package/dist/utils/index.d.ts +8 -0
  197. package/dist/utils/linkHelpers.d.ts +4 -0
  198. package/package.json +1 -1
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Hook para formatação de datas respeitando as preferências do usuário
3
+ *
4
+ * Este é o hook RECOMENDADO para formatação de datas na aplicação.
5
+ * Ele automaticamente usa as configurações de locale e timezone
6
+ * definidas pelo usuário.
7
+ *
8
+ * NOTA: O formato de data/hora está temporariamente fixo em "dd/MM/yyyy HH:mm"
9
+ * até que a funcionalidade de preferências de formato seja implementada.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * import { useI18nFormatters } from 'forlogic-core';
14
+ *
15
+ * function ActivityLog({ createdAt }: { createdAt: string }) {
16
+ * const { formatDatetime, formatDate } = useI18nFormatters();
17
+ *
18
+ * return (
19
+ * <div>
20
+ * <p>Criado em: {formatDatetime(createdAt)}</p>
21
+ * <p>Data: {formatDate(createdAt)}</p>
22
+ * </div>
23
+ * );
24
+ * }
25
+ * ```
26
+ *
27
+ * @returns Objeto com funções de formatação e valores de configuração
28
+ */
29
+ export declare const useI18nFormatters: () => {
30
+ /** Formata data/hora completa */
31
+ formatDatetime: (dateString: string) => string;
32
+ /** Formata apenas data (sem hora) */
33
+ formatDate: (dateString: string) => string;
34
+ /** Locale atual do usuário */
35
+ locale: string;
36
+ /** Timezone atual do usuário */
37
+ timezone: string;
38
+ /** Formato de data/hora atual (fixo por enquanto) */
39
+ datetimeFormat: string;
40
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Hook para obter o título da página atual baseado na rota
3
+ */
4
+ export declare function usePageTitle(): string;
@@ -0,0 +1,49 @@
1
+ interface UsePermissionQueryOptions {
2
+ key: string;
3
+ enabled: boolean;
4
+ checkFn: () => Promise<boolean>;
5
+ staleTime?: number;
6
+ gcTime?: number;
7
+ }
8
+ /**
9
+ * Hook para verificar permissões com cache otimizado
10
+ *
11
+ * Usa React Query para cachear verificações de permissão, evitando
12
+ * chamadas repetidas ao servidor. Ideal para controle de acesso em páginas.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { usePermissionQuery } from 'forlogic-core/modular';
17
+ * import { useAuth } from 'forlogic-core';
18
+ *
19
+ * function ProtectedPage() {
20
+ * const { isAuthenticated } = useAuth();
21
+ *
22
+ * const { data: hasAccess, isLoading } = usePermissionQuery({
23
+ * key: 'can-manage-users',
24
+ * enabled: isAuthenticated,
25
+ * checkFn: async () => {
26
+ * const response = await fetch('/api/permissions/manage-users');
27
+ * return response.ok;
28
+ * },
29
+ * staleTime: 5 * 60 * 1000 // Cache por 5 minutos
30
+ * });
31
+ *
32
+ * if (isLoading) return <div>Verificando permissões...</div>;
33
+ * if (!hasAccess) return <div>Acesso negado</div>;
34
+ *
35
+ * return <div>Conteúdo protegido</div>;
36
+ * }
37
+ * ```
38
+ *
39
+ * @param options Configuração da verificação
40
+ * @param options.key Identificador único da permissão (usado como cache key)
41
+ * @param options.enabled Se false, não executa a verificação
42
+ * @param options.checkFn Função async que retorna true/false
43
+ * @param options.staleTime Tempo de cache em ms (default: 5min)
44
+ * @param options.gcTime Tempo de garbage collection em ms (default: 10min)
45
+ *
46
+ * @returns Query result com { data: boolean, isLoading, error }
47
+ */
48
+ export declare const usePermissionQuery: ({ key, enabled, checkFn, staleTime, gcTime }: UsePermissionQueryOptions) => import("@tanstack/react-query").UseQueryResult<boolean, Error>;
49
+ export {};
@@ -0,0 +1,19 @@
1
+ interface UseRowResizeProps {
2
+ rowIds: string[];
3
+ defaultHeight?: number;
4
+ minHeight?: number;
5
+ maxHeight?: number;
6
+ storageKey?: string;
7
+ onResize?: (heights: Record<string, number>) => void;
8
+ enabled?: boolean;
9
+ }
10
+ interface UseRowResizeReturn {
11
+ rowHeights: Record<string, number>;
12
+ isDragging: boolean;
13
+ activeRow: string | null;
14
+ handleMouseDown: (rowId: string, e: React.MouseEvent) => void;
15
+ resetHeights: () => void;
16
+ getRowHeight: (rowId: string) => number;
17
+ }
18
+ export declare function useRowResize({ rowIds, defaultHeight, minHeight, maxHeight, storageKey, onResize, enabled }: UseRowResizeProps): UseRowResizeReturn;
19
+ export {};
@@ -0,0 +1,19 @@
1
+ interface UseSidebarResizeProps {
2
+ direction?: 'left' | 'right';
3
+ minWidth?: number;
4
+ maxWidth?: number;
5
+ defaultWidth?: number;
6
+ storageKey?: string;
7
+ onResize?: (width: number) => void;
8
+ isOpen?: boolean;
9
+ }
10
+ export declare function useSidebarResize({ direction, minWidth, // 14rem
11
+ maxWidth, // 24rem
12
+ defaultWidth, // 15rem
13
+ storageKey, onResize, isOpen }?: UseSidebarResizeProps): {
14
+ width: number;
15
+ isDragging: boolean;
16
+ dragRef: import("react").MutableRefObject<HTMLDivElement>;
17
+ handleMouseDown: (e: React.MouseEvent) => void;
18
+ };
19
+ export {};
@@ -0,0 +1,40 @@
1
+ export interface WizardStep {
2
+ id: string;
3
+ label: string;
4
+ /** Função que valida se pode avançar deste step */
5
+ canProceed?: () => boolean;
6
+ /** Se true, este step não pode voltar */
7
+ disableBack?: boolean;
8
+ }
9
+ export interface UseWizardOptions<TData = Record<string, unknown>> {
10
+ steps: WizardStep[];
11
+ initialStep?: number;
12
+ initialData?: TData;
13
+ /** Callback quando wizard é concluído */
14
+ onComplete?: (data: TData) => void | Promise<void>;
15
+ /** Callback quando wizard é cancelado */
16
+ onCancel?: () => void;
17
+ }
18
+ export interface UseWizardReturn<TData = Record<string, unknown>> {
19
+ currentStep: number;
20
+ currentStepConfig: WizardStep;
21
+ data: TData;
22
+ isFirstStep: boolean;
23
+ isLastStep: boolean;
24
+ isLoading: boolean;
25
+ isCompleting: boolean;
26
+ next: () => Promise<void>;
27
+ back: () => void;
28
+ goTo: (step: number) => void;
29
+ canProceed: boolean;
30
+ canGoBack: boolean;
31
+ setData: (data: Partial<TData>) => void;
32
+ updateField: <K extends keyof TData>(field: K, value: TData[K]) => void;
33
+ reset: () => void;
34
+ complete: () => Promise<void>;
35
+ setLoading: (loading: boolean) => void;
36
+ progress: number;
37
+ stepIndex: number;
38
+ totalSteps: number;
39
+ }
40
+ export declare function useWizard<TData = Record<string, unknown>>(options: UseWizardOptions<TData>): UseWizardReturn<TData>;
@@ -0,0 +1,9 @@
1
+ export declare class DatabaseBackend {
2
+ type: "backend";
3
+ private isDebugMode;
4
+ private cache;
5
+ private loadingPromises;
6
+ constructor(isDebugMode?: boolean);
7
+ read(language: string, namespace: string, callback: (err: Error | null, data: any) => void): void;
8
+ create(languages: string[], namespace: string, key: string, fallbackValue: string): void;
9
+ }
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface TranslationLoaderProps {
3
+ children: React.ReactNode;
4
+ }
5
+ /**
6
+ * Passthrough component - traduções agora são carregadas de arquivo local (síncrono).
7
+ * Mantido para compatibilidade de API.
8
+ */
9
+ export declare function TranslationLoader({ children }: TranslationLoaderProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,2 @@
1
+ import i18n from 'i18next';
2
+ export default i18n;
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Constantes de Internacionalização (i18n)
3
+ *
4
+ * Este arquivo centraliza todas as constantes relacionadas a localização,
5
+ * formatos de data/hora e fusos horários suportados pelo sistema.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * import { SUPPORTED_LOCALES, DATETIME_FORMATS, TIMEZONES } from 'forlogic-core';
10
+ *
11
+ * // Usar em selects de configuração
12
+ * {SUPPORTED_LOCALES.map(locale => (
13
+ * <SelectItem key={locale.value} value={locale.value}>
14
+ * {locale.flag} {locale.label}
15
+ * </SelectItem>
16
+ * ))}
17
+ * ```
18
+ */
19
+ export interface SupportedLocale {
20
+ /** Código do locale (ex: 'pt-BR') */
21
+ value: string;
22
+ /** Nome legível (ex: 'Português (BR)') */
23
+ label: string;
24
+ /** Emoji da bandeira */
25
+ flag: string;
26
+ }
27
+ export interface DatetimeFormat {
28
+ /** Máscara de formato date-fns (ex: 'dd/MM/yyyy HH:mm') */
29
+ value: string;
30
+ /** Rótulo para exibição */
31
+ label: string;
32
+ /** Exemplo formatado (ex: '28/11/2024 14:30') */
33
+ example: string;
34
+ /** Descrição do padrão (ex: 'Padrão Brasileiro') */
35
+ description: string;
36
+ }
37
+ export interface Timezone {
38
+ /** Identificador IANA (ex: 'America/Sao_Paulo') */
39
+ value: string;
40
+ /** Rótulo legível (ex: 'Brasília (UTC-3)') */
41
+ label: string;
42
+ /** Offset UTC (ex: '-03:00') */
43
+ offset: string;
44
+ }
45
+ /**
46
+ * Locales/idiomas suportados pelo sistema
47
+ *
48
+ * @default pt-BR (Português do Brasil)
49
+ */
50
+ export declare const SUPPORTED_LOCALES: SupportedLocale[];
51
+ /**
52
+ * Formatos de data/hora disponíveis para o usuário configurar
53
+ *
54
+ * Os formatos seguem a sintaxe do date-fns:
55
+ * - dd: dia com 2 dígitos
56
+ * - MM: mês com 2 dígitos
57
+ * - yyyy: ano com 4 dígitos
58
+ * - HH: hora 24h com 2 dígitos
59
+ * - hh: hora 12h com 2 dígitos
60
+ * - mm: minutos com 2 dígitos
61
+ * - a: AM/PM
62
+ * - MMM: mês abreviado (Jan, Feb, Mar)
63
+ *
64
+ * @default 'dd/MM/yyyy HH:mm' (Padrão Brasileiro)
65
+ */
66
+ export declare const DATETIME_FORMATS: DatetimeFormat[];
67
+ /**
68
+ * Fusos horários disponíveis para o usuário configurar
69
+ *
70
+ * Inclui os principais fusos horários brasileiros e internacionais.
71
+ * Os valores seguem o padrão IANA Time Zone Database.
72
+ *
73
+ * @default 'America/Sao_Paulo' (Brasília UTC-3)
74
+ */
75
+ export declare const TIMEZONES: Timezone[];
76
+ /** Locale padrão do sistema */
77
+ export declare const DEFAULT_LOCALE = "pt-BR";
78
+ /** Formato de data/hora padrão */
79
+ export declare const DEFAULT_DATETIME_FORMAT = "dd/MM/yyyy HH:mm";
80
+ /** Fuso horário padrão */
81
+ export declare const DEFAULT_TIMEZONE = "America/Sao_Paulo";
82
+ /**
83
+ * Encontra um locale pelo valor
84
+ */
85
+ export declare const findLocale: (value: string) => SupportedLocale | undefined;
86
+ /**
87
+ * Encontra um formato de data pelo valor
88
+ */
89
+ export declare const findDatetimeFormat: (value: string) => DatetimeFormat | undefined;
90
+ /**
91
+ * Encontra um timezone pelo valor
92
+ */
93
+ export declare const findTimezone: (value: string) => Timezone | undefined;
94
+ /**
95
+ * Verifica se um valor é um locale válido
96
+ */
97
+ export declare const isValidLocale: (value: string) => boolean;
98
+ /**
99
+ * Verifica se um valor é um formato de data válido
100
+ */
101
+ export declare const isValidDatetimeFormat: (value: string) => boolean;
102
+ /**
103
+ * Verifica se um valor é um timezone válido
104
+ */
105
+ export declare const isValidTimezone: (value: string) => boolean;
106
+ /**
107
+ * Detecta o locale do navegador e retorna um valor suportado
108
+ */
109
+ export declare const detectBrowserLocale: () => string;
110
+ /**
111
+ * Detecta o timezone do navegador usando Intl API
112
+ */
113
+ export declare const detectBrowserTimezone: () => string;
114
+ /**
115
+ * Infere o formato de data/hora baseado no locale detectado
116
+ */
117
+ export declare const inferDatetimeFormat: (locale: string) => string;
118
+ /**
119
+ * Detecta todas as preferências do navegador/SO
120
+ * Usado como estado inicial antes da autenticação e para novos usuários
121
+ */
122
+ export declare const detectBrowserPreferences: () => {
123
+ locale: string;
124
+ timezone: string;
125
+ datetimeFormat: string;
126
+ };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Internationalization (i18n) Exports
3
+ *
4
+ * Centralized exports for i18n configuration and hooks.
5
+ * Import this instead of importing directly from react-i18next.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * import { useTranslation } from 'forlogic-core/i18n';
10
+ *
11
+ * function MyComponent() {
12
+ * const { t } = useTranslation();
13
+ * return <Button>{t('save')}</Button>;
14
+ * }
15
+ * ```
16
+ */
17
+ export { default as i18n } from './config';
18
+ export { useTranslation } from 'react-i18next';
19
+ export { I18nextProvider } from 'react-i18next';
20
+ export { TranslationLoader } from './components/TranslationLoader';
21
+ export * from './constants';
@@ -0,0 +1,83 @@
1
+ import './index.css';
2
+ export { Button } from './components/ui/button';
3
+ export { ActionButton } from './components/ui/action-button';
4
+ export { Input } from './components/ui/input';
5
+ export { Label } from './components/ui/label';
6
+ export { Card, CardContent, CardHeader, CardTitle, CardDescription } from './components/ui/card';
7
+ export { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger, DialogFooter } from './components/ui/dialog';
8
+ export { Form, FormField, FormItem, FormLabel, FormControl, FormMessage } from './components/ui/form';
9
+ export { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './components/ui/select';
10
+ export { Checkbox } from './components/ui/checkbox';
11
+ export { Textarea } from './components/ui/textarea';
12
+ export { Badge } from './components/ui/badge';
13
+ export { LoadingState } from './components/ui/loading-state';
14
+ export { Toaster, toast } from './components/ui/sonner';
15
+ export { DisabledMenuItem } from './components/ui/disabled-menu-item';
16
+ export { Combobox } from './components/ui/combobox';
17
+ export type { ComboboxProps } from './components/ui/combobox';
18
+ export { Combobox as SelectSearch } from './components/ui/combobox';
19
+ export type { ComboboxProps as SelectSearchProps } from './components/ui/combobox';
20
+ export { Combobox as MultiSelect } from './components/ui/combobox';
21
+ export type { ComboboxProps as MultiSelectProps } from './components/ui/combobox';
22
+ export { createSimpleService } from './crud/createSimpleService';
23
+ export { createCrudPage, createSimpleSaveHandler, CrudPageInternal } from './crud/createCrudPage';
24
+ export { generateCrudConfig } from './crud/generateCrudConfig';
25
+ export { default as BaseForm } from './crud/components/BaseForm';
26
+ export { useAuth } from './auth/contexts/AuthContext';
27
+ export { ProtectedRoute } from './auth/components/ProtectedRoute';
28
+ export { CallbackPage } from './auth/pages/CallbackPage';
29
+ export { LoginPage } from './auth/pages/LoginPage';
30
+ export { cn } from './utils';
31
+ export { formatDatetime, formatCurrency } from './utils';
32
+ export { usePageMetadata, PageMetadataProvider, usePageMetadataContext } from './contexts/PageMetadataContext';
33
+ export type { CrudEntity, FormSection, BulkAction, CrudFilter, QualiexUserFieldMapping, QualiexEnrichmentConfig } from './types';
34
+ export { setupQualiexCore } from './setup';
35
+ export { CoreProviders } from './providers/CoreProviders';
36
+ export type { CoreProvidersProps } from './providers/CoreProviders';
37
+ export * from './exports/ui';
38
+ export * from './exports/crud';
39
+ export * from './exports/integrations';
40
+ export { default as AppHeader } from './components/layout/AppHeader';
41
+ export * from './components/layout/AppSidebar';
42
+ export * from './components/layout/AppLayout';
43
+ export { SidebarHeader } from './components/layout/SidebarHeader';
44
+ export type { SidebarHeaderProps } from './components/layout/SidebarHeader';
45
+ export { SidebarActionTrigger } from './components/layout/SidebarActionTrigger';
46
+ export type { SidebarActionTriggerProps } from './components/layout/SidebarActionTrigger';
47
+ export { BodyContent, ContentContainer } from './components/layout/BodyContent';
48
+ export type { BodyContentProps, ContentContainerProps, BreadcrumbItemConfig } from './components/layout/BodyContent';
49
+ export * from './components/ErrorBoundary';
50
+ export * from './hooks/useActiveModules';
51
+ export * from './hooks/useDebounce';
52
+ export * from './hooks/usePageTitle';
53
+ export * from './hooks/usePermissionQuery';
54
+ export { useSidebarResize } from './hooks/useSidebarResize';
55
+ export { useColumnResize } from './hooks/useColumnResize';
56
+ export { useRowResize } from './hooks/useRowResize';
57
+ export { useWizard } from './hooks/useWizard';
58
+ export type { WizardStep, UseWizardOptions, UseWizardReturn } from './hooks/useWizard';
59
+ export * from './i18n';
60
+ export * from './contexts/LocaleContext';
61
+ export * from './hooks/useI18nFormatters';
62
+ export * from './utils/formatters/dateFormatters';
63
+ export * from './utils/formatters/currencyFormatters';
64
+ export * from './contexts/NavigationContext';
65
+ export { ModalStateProvider, useModalState, useHasOpenModal } from './contexts/ModalStateContext';
66
+ export type { ModalStateProviderProps } from './contexts/ModalStateContext';
67
+ export * from './services/BaseService';
68
+ export { errorService } from './services/ErrorService';
69
+ export { emailService, EmailService } from './services/EmailService';
70
+ export type { SendEmailParams } from './services/EmailService';
71
+ export * from './services/QualiexEnrichmentService';
72
+ export { resolveFieldMappings, deriveNameField, deriveEmailField, deriveUsernameField } from './services/QualiexFieldHelpers';
73
+ export { translationService } from './services/TranslationService';
74
+ export * from './utils';
75
+ export * from './types';
76
+ export * from './types/sidebar';
77
+ export * from './config';
78
+ export * from './assets';
79
+ export * from './places';
80
+ export * from './leadership';
81
+ export * from './media';
82
+ export * from './components/modules';
83
+ export * from './sign';