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.
- package/dist/assets/index.d.ts +6 -0
- package/dist/auth/components/ProtectedRoute.d.ts +6 -0
- package/dist/auth/components/UserInfo.d.ts +10 -0
- package/dist/auth/contexts/AuthContext.d.ts +84 -0
- package/dist/auth/pages/CallbackPage.d.ts +1 -0
- package/dist/auth/pages/LoginPage.d.ts +2 -0
- package/dist/auth/services/AuthService.d.ts +40 -0
- package/dist/auth/services/SupabaseTokenService.d.ts +3 -0
- package/dist/auth/services/TokenManager.d.ts +51 -0
- package/dist/auth/services/TokenRegenerationService.d.ts +12 -0
- package/dist/auth/services/TokenService.d.ts +42 -0
- package/dist/auth/utils/AuthUtils.d.ts +4 -0
- package/dist/auth/utils/ErrorInterceptor.d.ts +15 -0
- package/dist/components/ErrorBoundary.d.ts +19 -0
- package/dist/components/layout/AppHeader.d.ts +63 -0
- package/dist/components/layout/AppLayout.d.ts +10 -0
- package/dist/components/layout/AppSidebar.d.ts +10 -0
- package/dist/components/layout/BodyContent.d.ts +60 -0
- package/dist/components/layout/SidebarActionTrigger.d.ts +34 -0
- package/dist/components/layout/SidebarHeader.d.ts +5 -0
- package/dist/components/layout/sidebar-utils.d.ts +12 -0
- package/dist/components/modules/ModuleGrid.d.ts +9 -0
- package/dist/components/modules/ModulesDialog.d.ts +3 -0
- package/dist/components/modules/icons/ModulesCardIcons.d.ts +19 -0
- package/dist/components/modules/index.d.ts +4 -0
- package/dist/components/modules/modulesData.d.ts +6 -0
- package/dist/components/modules/types.d.ts +35 -0
- package/dist/components/ui/accordion.d.ts +7 -0
- package/dist/components/ui/action-button.d.ts +43 -0
- package/dist/components/ui/alert-dialog.d.ts +20 -0
- package/dist/components/ui/alert.d.ts +12 -0
- package/dist/components/ui/avatar.d.ts +6 -0
- package/dist/components/ui/badge.d.ts +9 -0
- package/dist/components/ui/breadcrumb.d.ts +19 -0
- package/dist/components/ui/button-group.d.ts +9 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/calendar.d.ts +8 -0
- package/dist/components/ui/card.d.ts +8 -0
- package/dist/components/ui/chart.d.ts +62 -0
- package/dist/components/ui/checkbox.d.ts +4 -0
- package/dist/components/ui/collapsible.d.ts +5 -0
- package/dist/components/ui/color-picker.d.ts +8 -0
- package/dist/components/ui/combobox.d.ts +33 -0
- package/dist/components/ui/command.d.ts +23 -0
- package/dist/components/ui/context-menu.d.ts +27 -0
- package/dist/components/ui/data-list.d.ts +86 -0
- package/dist/components/ui/date-picker.d.ts +9 -0
- package/dist/components/ui/dialog.d.ts +36 -0
- package/dist/components/ui/disabled-menu-item.d.ts +25 -0
- package/dist/components/ui/drawer.d.ts +22 -0
- package/dist/components/ui/dropdown-menu.d.ts +27 -0
- package/dist/components/ui/empty-state.d.ts +79 -0
- package/dist/components/ui/form.d.ts +23 -0
- package/dist/components/ui/grid.d.ts +53 -0
- package/dist/components/ui/hover-card.d.ts +6 -0
- package/dist/components/ui/icon-picker.d.ts +8 -0
- package/dist/components/ui/input-group.d.ts +97 -0
- package/dist/components/ui/input.d.ts +37 -0
- package/dist/components/ui/label.d.ts +23 -0
- package/dist/components/ui/loading-state.d.ts +52 -0
- package/dist/components/ui/menubar.d.ts +33 -0
- package/dist/components/ui/navigation-menu.d.ts +12 -0
- package/dist/components/ui/onboarding-dialog.d.ts +43 -0
- package/dist/components/ui/page-breadcrumb.d.ts +77 -0
- package/dist/components/ui/pagination.d.ts +28 -0
- package/dist/components/ui/popover.d.ts +49 -0
- package/dist/components/ui/progress.d.ts +22 -0
- package/dist/components/ui/radio-group.d.ts +63 -0
- package/dist/components/ui/resizable.d.ts +23 -0
- package/dist/components/ui/rich-text-editor.d.ts +45 -0
- package/dist/components/ui/scroll-area.d.ts +37 -0
- package/dist/components/ui/select.d.ts +16 -0
- package/dist/components/ui/separator.d.ts +4 -0
- package/dist/components/ui/sheet.d.ts +32 -0
- package/dist/components/ui/sidebar.d.ts +66 -0
- package/dist/components/ui/skeleton-variants.d.ts +16 -0
- package/dist/components/ui/skeleton.d.ts +2 -0
- package/dist/components/ui/slider.d.ts +4 -0
- package/dist/components/ui/sonner.d.ts +3 -0
- package/dist/components/ui/spinner.d.ts +6 -0
- package/dist/components/ui/split-button.d.ts +70 -0
- package/dist/components/ui/stack.d.ts +12 -0
- package/dist/components/ui/step-selector.d.ts +39 -0
- package/dist/components/ui/switch.d.ts +4 -0
- package/dist/components/ui/tab-page-layout.d.ts +19 -0
- package/dist/components/ui/table-resize-handle.d.ts +15 -0
- package/dist/components/ui/table.d.ts +10 -0
- package/dist/components/ui/tabs.d.ts +7 -0
- package/dist/components/ui/textarea.d.ts +5 -0
- package/dist/components/ui/toggle-group.d.ts +12 -0
- package/dist/components/ui/toggle.d.ts +12 -0
- package/dist/components/ui/tooltip.d.ts +7 -0
- package/dist/components/ui/truncated-cell.d.ts +7 -0
- package/dist/components/ui/typography.d.ts +16 -0
- package/dist/config/index.d.ts +53 -0
- package/dist/contexts/LocaleContext.d.ts +15 -0
- package/dist/contexts/ModalStateContext.d.ts +57 -0
- package/dist/contexts/NavigationContext.d.ts +13 -0
- package/dist/contexts/PageMetadataContext.d.ts +43 -0
- package/dist/crud/components/ActionMenuItems.d.ts +17 -0
- package/dist/crud/components/BaseForm.d.ts +6 -0
- package/dist/crud/components/ContextMenu.d.ts +21 -0
- package/dist/crud/components/CrudActionBar.d.ts +38 -0
- package/dist/crud/components/CrudGrid.d.ts +43 -0
- package/dist/crud/components/CrudPagination.d.ts +12 -0
- package/dist/crud/components/CrudTable.d.ts +41 -0
- package/dist/crud/components/FilterBar.d.ts +136 -0
- package/dist/crud/components/TableFooter.d.ts +14 -0
- package/dist/crud/components/TableRowActions.d.ts +14 -0
- package/dist/crud/createCrudPage.d.ts +99 -0
- package/dist/crud/createSimpleService.d.ts +85 -0
- package/dist/crud/generateCrudConfig.d.ts +73 -0
- package/dist/crud/hooks/useBaseForm.d.ts +8 -0
- package/dist/crud/hooks/useCrud.d.ts +117 -0
- package/dist/crud/primitives/ActionMenu.d.ts +28 -0
- package/dist/crud/primitives/FilterBar.d.ts +24 -0
- package/dist/crud/primitives/Pagination.d.ts +24 -0
- package/dist/crud/primitives/Table.d.ts +26 -0
- package/dist/crud/primitives/index.d.ts +11 -0
- package/dist/crud/primitives/types.d.ts +76 -0
- package/dist/crud/utils/routingHelpers.d.ts +30 -0
- package/dist/exports/crud.d.ts +21 -0
- package/dist/exports/integrations.d.ts +13 -0
- package/dist/exports/ui.d.ts +73 -0
- package/dist/hooks/useActiveModules.d.ts +45 -0
- package/dist/hooks/useColumnResize.d.ts +21 -0
- package/dist/hooks/useDebounce.d.ts +56 -0
- package/dist/hooks/useI18nFormatters.d.ts +40 -0
- package/dist/hooks/usePageTitle.d.ts +4 -0
- package/dist/hooks/usePermissionQuery.d.ts +49 -0
- package/dist/hooks/useRowResize.d.ts +19 -0
- package/dist/hooks/useSidebarResize.d.ts +19 -0
- package/dist/hooks/useWizard.d.ts +40 -0
- package/dist/i18n/DatabaseBackend.d.ts +9 -0
- package/dist/i18n/components/TranslationLoader.d.ts +10 -0
- package/dist/i18n/config.d.ts +2 -0
- package/dist/i18n/constants.d.ts +126 -0
- package/dist/i18n/index.d.ts +21 -0
- package/dist/index.d.ts +83 -0
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/leadership/components/LeaderRow.d.ts +9 -0
- package/dist/leadership/components/LeadershipDialog.d.ts +10 -0
- package/dist/leadership/components/LeadershipForm.d.ts +8 -0
- package/dist/leadership/components/LeadershipPage.d.ts +1 -0
- package/dist/leadership/hooks/useLeadershipApi.d.ts +2 -0
- package/dist/leadership/hooks/useLeadershipMutations.d.ts +30 -0
- package/dist/leadership/index.d.ts +14 -0
- package/dist/leadership/types.d.ts +17 -0
- package/dist/leadership/utils/leadershipUtils.d.ts +8 -0
- package/dist/media/components/ImageEditor.d.ts +22 -0
- package/dist/media/components/ImageRenderer.d.ts +23 -0
- package/dist/media/components/VideoEditor.d.ts +22 -0
- package/dist/media/components/VideoRenderer.d.ts +8 -0
- package/dist/media/hooks/useMediaUpload.d.ts +20 -0
- package/dist/media/index.d.ts +49 -0
- package/dist/media/types.d.ts +66 -0
- package/dist/media/utils/imageHelpers.d.ts +28 -0
- package/dist/media/utils/videoHelpers.d.ts +35 -0
- package/dist/places/components/ManageAccessModal.d.ts +11 -0
- package/dist/places/components/PlaceCard.d.ts +12 -0
- package/dist/places/components/PlacesList.d.ts +12 -0
- package/dist/places/index.d.ts +8 -0
- package/dist/places/services/PlaceService.d.ts +9 -0
- package/dist/places/types.d.ts +10 -0
- package/dist/providers/CoreProviders.d.ts +66 -0
- package/dist/providers/index.d.ts +2 -0
- package/dist/qualiex/components/QualiexUserField.d.ts +125 -0
- package/dist/qualiex/hooks/useQualiexUsers.d.ts +51 -0
- package/dist/qualiex/services/qualiexApi.d.ts +21 -0
- package/dist/qualiex/utils/QualiexErrorInterceptor.d.ts +15 -0
- package/dist/qualiex/utils/userPlaceUtils.d.ts +16 -0
- package/dist/services/BaseService.d.ts +51 -0
- package/dist/services/EmailService.d.ts +110 -0
- package/dist/services/ErrorService.d.ts +19 -0
- package/dist/services/QualiexEnrichmentService.d.ts +65 -0
- package/dist/services/QualiexFieldHelpers.d.ts +17 -0
- package/dist/services/TranslationService.d.ts +20 -0
- package/dist/setup.d.ts +14 -0
- package/dist/sign/components/D4SignWidget.d.ts +2 -0
- package/dist/sign/components/DocumentSigner.d.ts +2 -0
- package/dist/sign/components/SignConfigForm.d.ts +2 -0
- package/dist/sign/components/SignWidget.d.ts +21 -0
- package/dist/sign/hooks/useSignConfig.d.ts +6 -0
- package/dist/sign/index.d.ts +7 -0
- package/dist/sign/services/signService.d.ts +23 -0
- package/dist/sign/types.d.ts +53 -0
- package/dist/supabase/SupabaseSingleton.d.ts +3 -0
- package/dist/supabase/client.d.ts +2 -0
- package/dist/supabase/publicClient.d.ts +2 -0
- package/dist/supabase/types.d.ts +377 -0
- package/dist/types/sidebar.d.ts +49 -0
- package/dist/types.d.ts +499 -0
- package/dist/utils/formatters/currencyFormatters.d.ts +1 -0
- package/dist/utils/formatters/dateFormatters.d.ts +52 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/linkHelpers.d.ts +4 -0
- 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,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,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';
|
package/dist/index.d.ts
ADDED
|
@@ -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';
|