forlogic-core 2.1.5 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -1
- package/dist/action-plans/components/ActionPlanAttachmentsTab.d.ts +3 -0
- package/dist/action-plans/components/ActionPlanCommentsTab.d.ts +3 -0
- package/dist/action-plans/components/ActionPlanCostTab.d.ts +5 -0
- package/dist/action-plans/components/ActionPlanGeneralTab.d.ts +3 -0
- package/dist/action-plans/components/ActionPlanHistoryTab.d.ts +3 -0
- package/dist/action-plans/components/ActionPlanPredecessorsTab.d.ts +5 -0
- package/dist/action-plans/components/ActionPlanProgressDialog.d.ts +3 -0
- package/dist/action-plans/components/ActionPlanProgressTab.d.ts +5 -0
- package/dist/action-plans/components/ActionPlanStatusBadge.d.ts +3 -0
- package/dist/action-plans/constants.d.ts +24 -0
- package/dist/action-plans/hooks/useActionPlan.d.ts +5 -0
- package/dist/action-plans/hooks/useActionPlanProgress.d.ts +5 -0
- package/dist/action-plans/types.d.ts +60 -0
- package/dist/action-plans/utils/formatTime.d.ts +9 -0
- package/dist/audit-trail/components/AuditTrailDetails.d.ts +10 -0
- package/dist/audit-trail/components/AuditTrailFilter.d.ts +10 -0
- package/dist/audit-trail/components/AuditTrailPage.d.ts +10 -0
- package/dist/audit-trail/types.d.ts +58 -0
- package/dist/audit-trail/utils.d.ts +18 -2
- package/dist/auth/components/EditProfileDialog.d.ts +1 -0
- package/dist/auth/components/ProtectedRoute.d.ts +5 -0
- package/dist/auth/contexts/AuthContext.d.ts +5 -0
- package/dist/auth/pages/CallbackPage.d.ts +5 -0
- package/dist/auth/services/AuthService.d.ts +5 -0
- package/dist/auth/services/TokenManager.d.ts +5 -0
- package/dist/auth/services/TokenService.d.ts +10 -0
- package/dist/auth/utils/ErrorInterceptor.d.ts +5 -0
- package/dist/components/dashboards/dashboard-form.d.ts +15 -0
- package/dist/components/dashboards/dashboard-general-view.d.ts +15 -0
- package/dist/components/dashboards/dashboard-grid.d.ts +25 -0
- package/dist/components/dashboards/dashboard-list.d.ts +10 -0
- package/dist/components/dashboards/dashboard-panel-renderer.d.ts +10 -0
- package/dist/components/dashboards/dashboard-view.d.ts +10 -0
- package/dist/components/dashboards/helpers.d.ts +44 -5
- package/dist/components/dashboards/panels/burndown-panel.d.ts +15 -0
- package/dist/components/dashboards/panels/cartesian-panel.d.ts +20 -0
- package/dist/components/dashboards/panels/list-panel.d.ts +15 -0
- package/dist/components/dashboards/panels/matrix-risk-panel.d.ts +25 -0
- package/dist/components/dashboards/panels/numeric-panel.d.ts +10 -0
- package/dist/components/dashboards/panels/panel-error.d.ts +10 -0
- package/dist/components/dashboards/panels/panel-header.d.ts +10 -0
- package/dist/components/dashboards/panels/panel-loader.d.ts +10 -0
- package/dist/components/dashboards/panels/panel-no-data.d.ts +10 -0
- package/dist/components/dashboards/panels/panel-unavailable.d.ts +10 -0
- package/dist/components/dashboards/panels/pareto-panel.d.ts +10 -0
- package/dist/components/dashboards/panels/performance-panel.d.ts +15 -0
- package/dist/components/dashboards/panels/pie-panel.d.ts +10 -0
- package/dist/components/dashboards/panels/text-panel.d.ts +10 -0
- package/dist/components/dashboards/types.d.ts +230 -0
- package/dist/components/modules/AccessDeniedDialog.d.ts +3 -1
- package/dist/components/modules/ModuleAccessGuard.d.ts +3 -1
- package/dist/components/modules/ModulesContent.d.ts +3 -1
- package/dist/components/modules/ModulesDialog.d.ts +1 -1
- package/dist/components/modules/ModulesFooterCards.d.ts +3 -1
- package/dist/components/modules/types.d.ts +2 -0
- package/dist/components/ui/accordion.d.ts +35 -0
- package/dist/components/ui/action-button.d.ts +5 -0
- package/dist/components/ui/alert-dialog.d.ts +82 -0
- package/dist/components/ui/alert.d.ts +32 -0
- package/dist/components/ui/avatar.d.ts +30 -0
- package/dist/components/ui/badge.d.ts +32 -0
- package/dist/components/ui/breadcrumb.d.ts +54 -0
- package/dist/components/ui/button-group.d.ts +15 -0
- package/dist/components/ui/button.d.ts +55 -0
- package/dist/components/ui/calendar.d.ts +16 -0
- package/dist/components/ui/card.d.ts +49 -0
- package/dist/components/ui/chart.d.ts +35 -0
- package/dist/components/ui/checkbox.d.ts +11 -0
- package/dist/components/ui/collapsible.d.ts +15 -0
- package/dist/components/ui/color-picker.d.ts +5 -0
- package/dist/components/ui/combo-tree.d.ts +23 -0
- package/dist/components/ui/combobox.d.ts +28 -0
- package/dist/components/ui/command.d.ts +66 -0
- package/dist/components/ui/context-menu.d.ts +95 -0
- package/dist/components/ui/date-picker.d.ts +10 -0
- package/dist/components/ui/dialog-wizard.d.ts +22 -4
- package/dist/components/ui/dialog.d.ts +181 -0
- package/dist/components/ui/drawer.d.ts +72 -0
- package/dist/components/ui/dropdown-menu.d.ts +153 -0
- package/dist/components/ui/electronic-signature-dialog.d.ts +10 -0
- package/dist/components/ui/export-dialog.d.ts +20 -0
- package/dist/components/ui/form.d.ts +96 -0
- package/dist/components/ui/hover-card.d.ts +15 -0
- package/dist/components/ui/icon-picker.d.ts +5 -0
- package/dist/components/ui/iframe-dialog.d.ts +10 -0
- package/dist/components/ui/input-group.d.ts +16 -0
- package/dist/components/ui/input.d.ts +5 -0
- package/dist/components/ui/menubar.d.ts +80 -0
- package/dist/components/ui/multiselect-permissions.d.ts +25 -0
- package/dist/components/ui/navigation-menu.d.ts +45 -0
- package/dist/components/ui/onboarding-dialog.d.ts +15 -0
- package/dist/components/ui/online-editor-dialog.d.ts +10 -0
- package/dist/components/ui/pagination.d.ts +53 -0
- package/dist/components/ui/popover.d.ts +8 -0
- package/dist/components/ui/radio-group.d.ts +3 -0
- package/dist/components/ui/report-request-list.d.ts +20 -0
- package/dist/components/ui/resizable.d.ts +15 -0
- package/dist/components/ui/rich-text-editor.d.ts +13 -0
- package/dist/components/ui/scroll-area.d.ts +3 -0
- package/dist/components/ui/select.d.ts +71 -0
- package/dist/components/ui/separator.d.ts +13 -0
- package/dist/components/ui/sheet.d.ts +76 -0
- package/dist/components/ui/sidebar.d.ts +203 -0
- package/dist/components/ui/skeleton-variants.d.ts +25 -0
- package/dist/components/ui/skeleton.d.ts +12 -0
- package/dist/components/ui/slider.d.ts +5 -0
- package/dist/components/ui/sonner.d.ts +5 -0
- package/dist/components/ui/spinner.d.ts +5 -0
- package/dist/components/ui/split-button.d.ts +6 -0
- package/dist/components/ui/stack.d.ts +5 -0
- package/dist/components/ui/status-badge.d.ts +3 -0
- package/dist/components/ui/step-selector.d.ts +5 -0
- package/dist/components/ui/stimulsoft-viewer.d.ts +8 -0
- package/dist/components/ui/switch.d.ts +21 -0
- package/dist/components/ui/tab-page-layout.d.ts +33 -0
- package/dist/components/ui/table-resize-handle.d.ts +10 -3
- package/dist/components/ui/table.d.ts +102 -0
- package/dist/components/ui/tabs.d.ts +59 -0
- package/dist/components/ui/terms-of-use-dialog.d.ts +50 -4
- package/dist/components/ui/textarea.d.ts +27 -0
- package/dist/components/ui/timepicker.d.ts +23 -0
- package/dist/components/ui/toggle-group.d.ts +25 -0
- package/dist/components/ui/toggle.d.ts +21 -0
- package/dist/components/ui/tooltip.d.ts +48 -0
- package/dist/components/ui/truncated-cell.d.ts +13 -0
- package/dist/components/ui/typography.d.ts +119 -0
- package/dist/components/ui/updates-notification.d.ts +33 -0
- package/dist/components/ui/users-groups-selector.d.ts +43 -0
- package/dist/components/ui/viewer-dialog.d.ts +107 -0
- package/dist/crud/components/ActionMenuItems.d.ts +5 -0
- package/dist/crud/components/BaseForm.d.ts +46 -0
- package/dist/crud/components/ColumnSettingsPopover.d.ts +10 -0
- package/dist/crud/components/CrudActionBar.d.ts +20 -0
- package/dist/crud/components/CrudGrid.d.ts +10 -0
- package/dist/crud/components/CrudPagination.d.ts +5 -0
- package/dist/crud/components/CrudTable.d.ts +5 -0
- package/dist/crud/components/TableRowActions.d.ts +5 -0
- package/dist/crud/createCrudPage.d.ts +41 -8
- package/dist/crud/generateCrudConfig.d.ts +13 -8
- package/dist/crud/hooks/useBaseForm.d.ts +39 -0
- package/dist/crud/hooks/useColumnManager.d.ts +25 -0
- package/dist/crud/hooks/useCrud.d.ts +35 -0
- package/dist/crud/primitives/ActionMenu.d.ts +41 -0
- package/dist/crud/primitives/FilterBar.d.ts +45 -0
- package/dist/crud/primitives/Pagination.d.ts +5 -0
- package/dist/crud/primitives/Table.d.ts +5 -0
- package/dist/crud/primitives/TreeTable.d.ts +5 -0
- package/dist/crud/primitives/types.d.ts +57 -0
- package/dist/crud/utils/routingHelpers.d.ts +11 -0
- package/dist/custom-form-fields/components/CustomFormFields.d.ts +3 -0
- package/dist/custom-form-fields/fields/FormDateField.d.ts +3 -0
- package/dist/custom-form-fields/fields/FormMultiSelectionField.d.ts +3 -0
- package/dist/custom-form-fields/fields/FormNumericField.d.ts +3 -0
- package/dist/custom-form-fields/fields/FormQuestionsField.d.ts +3 -0
- package/dist/custom-form-fields/fields/FormSingleSelectionField.d.ts +3 -0
- package/dist/custom-form-fields/fields/FormTextField.d.ts +3 -0
- package/dist/custom-form-fields/fields/FormTimeField.d.ts +3 -0
- package/dist/custom-form-fields/fields/FormUrlField.d.ts +3 -0
- package/dist/custom-form-fields/fields/ReadOnlyTextField.d.ts +3 -0
- package/dist/custom-form-fields/types.d.ts +84 -21
- package/dist/exports/integrations.d.ts +1 -0
- package/dist/file-upload/components/SingleFileUpload.d.ts +59 -0
- package/dist/file-upload/types.d.ts +15 -0
- package/dist/file-upload/utils/formatBytes.d.ts +5 -0
- package/dist/file-upload/utils/getFileExtension.d.ts +5 -0
- package/dist/hooks/useColumnResize.d.ts +24 -0
- package/dist/hooks/useRowResize.d.ts +18 -0
- package/dist/hooks/useSidebarResize.d.ts +18 -0
- package/dist/hooks/useUpdatesNotification.d.ts +16 -0
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/integrations/clarity/clarityTracking.d.ts +31 -0
- package/dist/integrations/clarity/index.d.ts +3 -0
- package/dist/integrations/clarity/types.d.ts +46 -0
- package/dist/integrations/clarity/useClarity.d.ts +34 -0
- package/dist/integrations/index.d.ts +5 -0
- package/dist/providers/CoreProviders.d.ts +16 -1
- package/dist/qualiex/components/QualiexUserField.d.ts +8 -0
- package/dist/qualiex/hooks/useQualiexUsers.d.ts +16 -26
- package/dist/qualiex/services/qualiexApi.d.ts +38 -2
- package/dist/qualiex/utils/QualiexErrorInterceptor.d.ts +5 -0
- package/dist/supabase/SupabaseSingleton.d.ts +34 -0
- package/dist/types.d.ts +51 -2
- package/dist/vite/index.esm.js +4 -1
- package/dist/vite/index.js +4 -1
- package/docs/STORAGE_BUCKETS.md +384 -0
- package/docs/WORKSPACE_KNOWLEDGE.md +1 -0
- package/docs/design-system/README.md +1 -1
- package/docs/design-system/patterns/core-providers.md +2 -0
- package/docs/design-system/selectors.md +4 -0
- package/package.json +7 -1
- package/dist/components/ui/__tests__/status-badge.test.d.ts +0 -1
|
@@ -1,7 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Tabs
|
|
3
|
+
* Sistema de abas para alternar entre visões. Use `defaultValue` para modo não controlado
|
|
4
|
+
* ou `value` + `onValueChange` para controle externo (sincronizar com URL, por exemplo).
|
|
5
|
+
*
|
|
6
|
+
* Composição: `Tabs` (raiz) + `TabsList` + `TabsTrigger` (um por aba) + `TabsContent` (conteúdo).
|
|
7
|
+
*
|
|
8
|
+
* @see `docs/design-system/navigation.md`
|
|
9
|
+
*/
|
|
1
10
|
import * as React from "react";
|
|
2
11
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
12
|
+
/**
|
|
13
|
+
* Raiz do sistema de abas. Re-exporta `TabsPrimitive.Root` do Radix.
|
|
14
|
+
*
|
|
15
|
+
* @example Não controlado
|
|
16
|
+
* ```tsx
|
|
17
|
+
* <Tabs defaultValue="geral">
|
|
18
|
+
* <TabsList>
|
|
19
|
+
* <TabsTrigger value="geral">Geral</TabsTrigger>
|
|
20
|
+
* <TabsTrigger value="avancado">Avançado</TabsTrigger>
|
|
21
|
+
* </TabsList>
|
|
22
|
+
* <TabsContent value="geral">...</TabsContent>
|
|
23
|
+
* <TabsContent value="avancado">...</TabsContent>
|
|
24
|
+
* </Tabs>
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @example Controlado (sincronizado com URL)
|
|
28
|
+
* ```tsx
|
|
29
|
+
* <Tabs value={tab} onValueChange={setTab}>...</Tabs>
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
3
32
|
declare const Tabs: React.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React.RefAttributes<HTMLDivElement>>;
|
|
33
|
+
/**
|
|
34
|
+
* Container horizontal dos triggers de aba. Aparência de "pill group" com fundo `muted`.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```tsx
|
|
38
|
+
* <TabsList>
|
|
39
|
+
* <TabsTrigger value="a">A</TabsTrigger>
|
|
40
|
+
* <TabsTrigger value="b">B</TabsTrigger>
|
|
41
|
+
* </TabsList>
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
4
44
|
declare const TabsList: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
45
|
+
/**
|
|
46
|
+
* Botão de uma aba. O `value` deve corresponder a um `TabsContent` irmão.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```tsx
|
|
50
|
+
* <TabsTrigger value="settings">Configurações</TabsTrigger>
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
5
53
|
declare const TabsTrigger: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
54
|
+
/**
|
|
55
|
+
* Conteúdo associado a um `TabsTrigger`. O `value` deve casar com o trigger.
|
|
56
|
+
* Renderizado apenas quando a aba está ativa (forceMount=false por padrão).
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```tsx
|
|
60
|
+
* <TabsContent value="settings">
|
|
61
|
+
* <SettingsForm />
|
|
62
|
+
* </TabsContent>
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
6
65
|
declare const TabsContent: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
7
66
|
export { Tabs, TabsList, TabsTrigger, TabsContent };
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Termo de uso a ser exibido. `file` é base64 (PDF/imagem); `description` aceita HTML.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```tsx
|
|
6
|
+
* const term: TermOfUse = { id: 'v3', description: '<p>Atualizamos...</p>', hasUserSignature: false };
|
|
7
|
+
* ```
|
|
8
|
+
*/
|
|
1
9
|
export interface TermOfUse {
|
|
2
10
|
/** Unique identifier */
|
|
3
11
|
id: string;
|
|
@@ -10,6 +18,15 @@ export interface TermOfUse {
|
|
|
10
18
|
/** Whether the current user has already signed this term */
|
|
11
19
|
hasUserSignature?: boolean;
|
|
12
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Props do `TermsOfUseDialog`. `onAgree` recebe o `term.id` para
|
|
23
|
+
* registrar a assinatura no backend.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* const props: TermsOfUseDialogProps = { term, open, onClose, onAgree: signTerm };
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
13
30
|
export interface TermsOfUseDialogProps {
|
|
14
31
|
/** The term of use to display */
|
|
15
32
|
term: TermOfUse;
|
|
@@ -28,6 +45,14 @@ export interface TermsOfUseDialogProps {
|
|
|
28
45
|
/** Override t('terms_view_short') button text */
|
|
29
46
|
viewTermLabel?: string;
|
|
30
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Props do `TermsOfUseViewer`. Use `viewOnly` para esconder o botão de assinar.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* const props: TermsOfUseViewerProps = { term, open, onClose, viewOnly: true };
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
31
56
|
export interface TermsOfUseViewerProps {
|
|
32
57
|
/** The term of use to display */
|
|
33
58
|
term: TermOfUse;
|
|
@@ -45,12 +70,33 @@ export interface TermsOfUseViewerProps {
|
|
|
45
70
|
signLabel?: string;
|
|
46
71
|
}
|
|
47
72
|
/**
|
|
48
|
-
* Dialog
|
|
49
|
-
*
|
|
73
|
+
* Dialog que notifica o usuário sobre uma versão atualizada dos termos de uso.
|
|
74
|
+
* Mostra a descrição (HTML) e botões para visualizar o arquivo completo,
|
|
75
|
+
* adiar ("ver depois") ou concordar.
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```tsx
|
|
79
|
+
* <TermsOfUseDialog
|
|
80
|
+
* term={currentTerm}
|
|
81
|
+
* open={hasNewTerm}
|
|
82
|
+
* onClose={() => setHasNewTerm(false)}
|
|
83
|
+
* onAgree={(id) => api.signTerm(id)}
|
|
84
|
+
* />
|
|
85
|
+
* ```
|
|
50
86
|
*/
|
|
51
87
|
export declare function TermsOfUseDialog({ term, open, onClose, onAgree, title, seeLaterLabel, agreeLabel, viewTermLabel, }: TermsOfUseDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
52
88
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
89
|
+
* Visualizador full-screen do arquivo do termo de uso (PDF etc.) em iframe.
|
|
90
|
+
* Mostra opcionalmente um botão de assinar (oculto se `viewOnly` ou se já assinado).
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```tsx
|
|
94
|
+
* <TermsOfUseViewer
|
|
95
|
+
* term={term}
|
|
96
|
+
* open={open}
|
|
97
|
+
* onClose={() => setOpen(false)}
|
|
98
|
+
* onSign={(id) => api.signTerm(id)}
|
|
99
|
+
* />
|
|
100
|
+
* ```
|
|
55
101
|
*/
|
|
56
102
|
export declare function TermsOfUseViewer({ term, open, onClose, onSign, viewOnly, title, signLabel, }: TermsOfUseViewerProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,6 +1,33 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Props do `Textarea`. Estende todos os atributos HTML padrão.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* const props: TextareaProps = { showCharCount: true, maxLength: 200 };
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
2
10
|
export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
11
|
+
/**
|
|
12
|
+
* Quando `true` e `maxLength` for definido, exibe contador `N / max`
|
|
13
|
+
* abaixo do textarea (alinhado à direita).
|
|
14
|
+
*/
|
|
3
15
|
showCharCount?: boolean;
|
|
4
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Textarea padrão da lib com hover/focus refinados (border-primary no hover).
|
|
19
|
+
* Aceita `showCharCount` + `maxLength` para exibir contador automaticamente.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* <Textarea
|
|
24
|
+
* placeholder="Descreva o ocorrido..."
|
|
25
|
+
* maxLength={500}
|
|
26
|
+
* showCharCount
|
|
27
|
+
* />
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @see `docs/design-system/inputs.md`
|
|
31
|
+
*/
|
|
5
32
|
declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
6
33
|
export { Textarea };
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props do `Timepicker`. Estende `<input>` (exceto `type`/`onChange`/`value`,
|
|
4
|
+
* que são gerenciados internamente).
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* const props: TimepickerProps = { value: '14:30', onChange: setHora, label: 'Horário' };
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
2
11
|
export interface TimepickerProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange' | 'value'> {
|
|
3
12
|
value?: string;
|
|
4
13
|
onChange?: (value: string) => void;
|
|
@@ -7,5 +16,19 @@ export interface TimepickerProps extends Omit<React.InputHTMLAttributes<HTMLInpu
|
|
|
7
16
|
error?: string;
|
|
8
17
|
format?: '12h' | '24h';
|
|
9
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Campo de seleção de horário (`<input type="time">`) com label, ícone de relógio
|
|
21
|
+
* e mensagem de erro integrados. Usa formato 24h por padrão.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* <Timepicker
|
|
26
|
+
* label="Início do expediente"
|
|
27
|
+
* value={hora}
|
|
28
|
+
* onChange={setHora}
|
|
29
|
+
* error={errors.hora?.message}
|
|
30
|
+
* />
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
10
33
|
declare const Timepicker: React.ForwardRefExoticComponent<TimepickerProps & React.RefAttributes<HTMLInputElement>>;
|
|
11
34
|
export { Timepicker };
|
|
@@ -1,10 +1,35 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
3
3
|
import { type VariantProps } from "class-variance-authority";
|
|
4
|
+
/**
|
|
5
|
+
* Grupo de toggles (single ou multiple). Compartilha `variant`/`size` com seus
|
|
6
|
+
* `ToggleGroupItem` filhos via Context. Use `type="single"` para seleção única
|
|
7
|
+
* (rádio-like) ou `type="multiple"` para múltipla.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* <ToggleGroup type="single" value={align} onValueChange={setAlign} variant="outline">
|
|
12
|
+
* <ToggleGroupItem value="left"><AlignLeft /></ToggleGroupItem>
|
|
13
|
+
* <ToggleGroupItem value="center"><AlignCenter /></ToggleGroupItem>
|
|
14
|
+
* <ToggleGroupItem value="right"><AlignRight /></ToggleGroupItem>
|
|
15
|
+
* </ToggleGroup>
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
4
18
|
declare const ToggleGroup: React.ForwardRefExoticComponent<((Omit<ToggleGroupPrimitive.ToggleGroupSingleProps & React.RefAttributes<HTMLDivElement>, "ref"> | Omit<ToggleGroupPrimitive.ToggleGroupMultipleProps & React.RefAttributes<HTMLDivElement>, "ref">) & VariantProps<(props?: {
|
|
5
19
|
variant?: "outline" | "default";
|
|
6
20
|
size?: "default" | "sm" | "lg";
|
|
7
21
|
} & import("class-variance-authority/types").ClassProp) => string>) & React.RefAttributes<HTMLDivElement>>;
|
|
22
|
+
/**
|
|
23
|
+
* Item individual de um `ToggleGroup`. Herda `variant`/`size` do grupo, mas
|
|
24
|
+
* pode sobrescrever localmente.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* <ToggleGroupItem value="bold" aria-label="Negrito">
|
|
29
|
+
* <Bold className="h-4 w-4" />
|
|
30
|
+
* </ToggleGroupItem>
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
8
33
|
declare const ToggleGroupItem: React.ForwardRefExoticComponent<Omit<ToggleGroupPrimitive.ToggleGroupItemProps & React.RefAttributes<HTMLButtonElement>, "ref"> & VariantProps<(props?: {
|
|
9
34
|
variant?: "outline" | "default";
|
|
10
35
|
size?: "default" | "sm" | "lg";
|
|
@@ -1,10 +1,31 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
3
3
|
import { type VariantProps } from "class-variance-authority";
|
|
4
|
+
/**
|
|
5
|
+
* Variantes do `Toggle` (cva). Combina `variant` (`default` | `outline`) e
|
|
6
|
+
* `size` (`default` | `sm` | `lg`). Reutilizado por `ToggleGroupItem`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <button className={toggleVariants({ variant: 'outline', size: 'sm' })}>B</button>
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
4
13
|
declare const toggleVariants: (props?: {
|
|
5
14
|
variant?: "outline" | "default";
|
|
6
15
|
size?: "default" | "sm" | "lg";
|
|
7
16
|
} & import("class-variance-authority/types").ClassProp) => string;
|
|
17
|
+
/**
|
|
18
|
+
* Botão alternável (on/off). Use para ações binárias como "Negrito", "Itálico"
|
|
19
|
+
* em editores ou "Modo escuro" em preferências. Estado controlado via `pressed` +
|
|
20
|
+
* `onPressedChange` (Radix Toggle).
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* <Toggle variant="outline" pressed={bold} onPressedChange={setBold}>
|
|
25
|
+
* <Bold className="h-4 w-4" />
|
|
26
|
+
* </Toggle>
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
8
29
|
declare const Toggle: React.ForwardRefExoticComponent<Omit<TogglePrimitive.ToggleProps & React.RefAttributes<HTMLButtonElement>, "ref"> & VariantProps<(props?: {
|
|
9
30
|
variant?: "outline" | "default";
|
|
10
31
|
size?: "default" | "sm" | "lg";
|
|
@@ -1,7 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Tooltip
|
|
3
|
+
* Tooltip por hover/focus. Composição: `TooltipProvider` (envolve a árvore — pode ser global)
|
|
4
|
+
* + `Tooltip` (raiz por instância) + `TooltipTrigger` (use `asChild` para reaproveitar elemento)
|
|
5
|
+
* + `TooltipContent` (texto, com `side`, `sideOffset`, etc).
|
|
6
|
+
*
|
|
7
|
+
* `delayDuration` padrão de **300ms** (override do shadcn). Reduz flicker em listas densas.
|
|
8
|
+
*/
|
|
1
9
|
import * as React from "react";
|
|
2
10
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
11
|
+
/**
|
|
12
|
+
* Provider global de tooltips. Envolva a árvore uma única vez (já incluso em `CoreProviders`).
|
|
13
|
+
* `delayDuration` padrão: **300ms**.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* <TooltipProvider delayDuration={300}>
|
|
18
|
+
* <App />
|
|
19
|
+
* </TooltipProvider>
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
3
22
|
declare const TooltipProvider: ({ delayDuration, ...props }: React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Provider>) => import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
/**
|
|
24
|
+
* Raiz de uma instância de tooltip. Re-exporta `TooltipPrimitive.Root` do Radix.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* <Tooltip>
|
|
29
|
+
* <TooltipTrigger asChild><Button>?</Button></TooltipTrigger>
|
|
30
|
+
* <TooltipContent>Ajuda</TooltipContent>
|
|
31
|
+
* </Tooltip>
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
4
34
|
declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps>;
|
|
35
|
+
/**
|
|
36
|
+
* Trigger do tooltip. Use `asChild` para herdar o elemento filho (recomendado para botões/ícones).
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```tsx
|
|
40
|
+
* <TooltipTrigger asChild>
|
|
41
|
+
* <Button variant="icon"><Info /></Button>
|
|
42
|
+
* </TooltipTrigger>
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
5
45
|
declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
46
|
+
/**
|
|
47
|
+
* Conteúdo do tooltip. Aceita `side` (`top`/`right`/`bottom`/`left`) e `sideOffset` (padrão 4).
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```tsx
|
|
51
|
+
* <TooltipContent side="right" sideOffset={8}>Texto explicativo</TooltipContent>
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
6
54
|
declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
7
55
|
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
|
|
@@ -3,5 +3,18 @@ interface TruncatedCellProps {
|
|
|
3
3
|
children: React.ReactNode;
|
|
4
4
|
className?: string;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Célula com `text-overflow: ellipsis` que detecta truncamento via `ResizeObserver`
|
|
8
|
+
* e exibe automaticamente um `Tooltip` com o conteúdo completo apenas quando há overflow.
|
|
9
|
+
*
|
|
10
|
+
* Disponível também como **alias `EllipsisText`** (padrão de mercado, exportado em `forlogic-core`).
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* <TruncatedCell>{textoLongo}</TruncatedCell>
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @see `docs/design-system/data-display.md`
|
|
18
|
+
*/
|
|
6
19
|
export declare function TruncatedCell({ children, className }: TruncatedCellProps): import("react/jsx-runtime").JSX.Element;
|
|
7
20
|
export {};
|
|
@@ -1,16 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Typography
|
|
3
|
+
* Conjunto de 11 componentes tipográficos prontos seguindo a escala da lib:
|
|
4
|
+
* `H1`, `H2`, `H3`, `H4`, `P`, `Lead`, `Large`, `Small`, `Muted`, `InlineCode`, `Blockquote`, `List`.
|
|
5
|
+
*
|
|
6
|
+
* Use sempre que possível ao invés de aplicar classes Tailwind soltas em `<h1>`, `<p>`, etc.
|
|
7
|
+
* Garante consistência com a fonte base Inter (13px) e a escala definida em `index.css`.
|
|
8
|
+
*
|
|
9
|
+
* @see `docs/design-system/foundation.md`
|
|
10
|
+
*/
|
|
1
11
|
import * as React from "react";
|
|
12
|
+
/**
|
|
13
|
+
* Props compartilhadas por todos os componentes tipográficos.
|
|
14
|
+
* Estende os atributos HTML padrão do elemento (heading, paragraph, etc.).
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* const Custom: React.FC<TypographyProps> = (props) => <H2 {...props} />;
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
2
21
|
export interface TypographyProps extends React.HTMLAttributes<HTMLElement> {
|
|
3
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Título principal da página (`<h1>`). Use **uma única vez** por página (regra SEO).
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* <H1>Painel de Controle</H1>
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
4
31
|
declare const H1: React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLHeadingElement>>;
|
|
32
|
+
/**
|
|
33
|
+
* Título de seção (`<h2>`). Inclui borda inferior automática para dividir blocos.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```tsx
|
|
37
|
+
* <H2>Configurações gerais</H2>
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
5
40
|
declare const H2: React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLHeadingElement>>;
|
|
41
|
+
/**
|
|
42
|
+
* Subtítulo (`<h3>`). Use dentro de seções marcadas por `H2`.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```tsx
|
|
46
|
+
* <H3>Notificações por email</H3>
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
6
49
|
declare const H3: React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLHeadingElement>>;
|
|
50
|
+
/**
|
|
51
|
+
* Título menor (`<h4>`). Útil para subdivisões de cards/painéis.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```tsx
|
|
55
|
+
* <H4>Detalhes do item</H4>
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
7
58
|
declare const H4: React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLHeadingElement>>;
|
|
59
|
+
/**
|
|
60
|
+
* Parágrafo padrão (`<p>`). Aplica `mt-6` quando não é o primeiro filho.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```tsx
|
|
64
|
+
* <P>Texto descritivo regular.</P>
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
8
67
|
declare const P: React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLParagraphElement>>;
|
|
68
|
+
/**
|
|
69
|
+
* Subtítulo grande/lead (`text-xl`, cor `muted-foreground`). Use logo abaixo de `H1`/`H2`.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```tsx
|
|
73
|
+
* <H1>Bem-vindo</H1>
|
|
74
|
+
* <Lead>Comece configurando sua primeira unidade.</Lead>
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
9
77
|
declare const Lead: React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLParagraphElement>>;
|
|
78
|
+
/**
|
|
79
|
+
* Texto destacado em tamanho `text-lg` semi-bold. Renderiza um `<div>`.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```tsx
|
|
83
|
+
* <Large>R$ 1.250,00</Large>
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
10
86
|
declare const Large: React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLDivElement>>;
|
|
87
|
+
/**
|
|
88
|
+
* Texto secundário em `<small>` (`text-sm font-medium`). Útil para legendas.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```tsx
|
|
92
|
+
* <Small>Atualizado há 5 minutos</Small>
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
11
95
|
declare const Small: React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLElement>>;
|
|
96
|
+
/**
|
|
97
|
+
* Texto auxiliar atenuado (`text-sm text-muted-foreground`). Use para hints e helper text.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```tsx
|
|
101
|
+
* <Muted>Este campo é opcional.</Muted>
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
12
104
|
declare const Muted: React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLParagraphElement>>;
|
|
105
|
+
/**
|
|
106
|
+
* Código inline (`<code>`) com fundo `muted` e fonte mono.
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```tsx
|
|
110
|
+
* <P>Use o comando <InlineCode>npm install</InlineCode> para começar.</P>
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
13
113
|
declare const InlineCode: React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLElement>>;
|
|
114
|
+
/**
|
|
115
|
+
* Citação em bloco (`<blockquote>`) com borda lateral esquerda.
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```tsx
|
|
119
|
+
* <Blockquote>"O design é como funciona, não como parece."</Blockquote>
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
14
122
|
declare const Blockquote: React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLQuoteElement>>;
|
|
123
|
+
/**
|
|
124
|
+
* Lista não-ordenada (`<ul>`) com `list-disc` e espaçamento padrão entre itens.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```tsx
|
|
128
|
+
* <List>
|
|
129
|
+
* <li>Item um</li>
|
|
130
|
+
* <li>Item dois</li>
|
|
131
|
+
* </List>
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
15
134
|
declare const List: React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLUListElement>>;
|
|
16
135
|
export { H1, H2, H3, H4, P, Lead, Large, Small, Muted, InlineCode, Blockquote, List, };
|
|
@@ -3,6 +3,17 @@ import { type UpdateNotificationItem } from '../../hooks/useUpdatesNotification'
|
|
|
3
3
|
/** @deprecated Use `UpdateNotificationItem` instead */
|
|
4
4
|
export type UpdateNotification = UpdateNotificationItem;
|
|
5
5
|
export type { UpdateNotificationItem };
|
|
6
|
+
/**
|
|
7
|
+
* Props do `UpdatesNotification`. Quando `updates` é `undefined`, ativa o modo
|
|
8
|
+
* automático (busca da API via `useUpdatesNotification`); quando é um array,
|
|
9
|
+
* o componente fica controlado.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* // Modo controlado:
|
|
14
|
+
* const props: UpdatesNotificationProps = { updates: [], badgeCount: 0 };
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
6
17
|
export interface UpdatesNotificationProps {
|
|
7
18
|
/** Lista de atualizações (undefined = modo automático, [] = vazio controlado) */
|
|
8
19
|
updates?: UpdateNotificationItem[];
|
|
@@ -11,4 +22,26 @@ export interface UpdatesNotificationProps {
|
|
|
11
22
|
onOpen?: () => void;
|
|
12
23
|
onViewAll?: () => void;
|
|
13
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Botão de notificações do header (ícone de café ☕). Possui dois modos:
|
|
27
|
+
*
|
|
28
|
+
* - **Automático** (sem props): busca atualizações via `useUpdatesNotification`,
|
|
29
|
+
* marca como visualizado ao abrir e abre o portal Qualiex no "Ver todas".
|
|
30
|
+
* - **Controlado**: passe `updates` + `badgeCount` + `onOpen` + `onViewAll`.
|
|
31
|
+
*
|
|
32
|
+
* @example Automático (recomendado dentro do AppHeader)
|
|
33
|
+
* ```tsx
|
|
34
|
+
* <UpdatesNotification />
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example Controlado
|
|
38
|
+
* ```tsx
|
|
39
|
+
* <UpdatesNotification
|
|
40
|
+
* updates={updates}
|
|
41
|
+
* badgeCount={updates.length}
|
|
42
|
+
* onOpen={markAllRead}
|
|
43
|
+
* onViewAll={() => navigate('/updates')}
|
|
44
|
+
* />
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
14
47
|
export declare const UpdatesNotification: React.ForwardRefExoticComponent<UpdatesNotificationProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Usuário disponível para seleção. `groupIds` permite o filtro por grupo no header.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```tsx
|
|
6
|
+
* const u: UsersGroupUser = { id: '42', name: 'Ana', email: 'ana@x.com', groupIds: ['g1'] };
|
|
7
|
+
* ```
|
|
8
|
+
*/
|
|
1
9
|
export interface UsersGroupUser {
|
|
2
10
|
id: string;
|
|
3
11
|
name: string;
|
|
@@ -5,10 +13,29 @@ export interface UsersGroupUser {
|
|
|
5
13
|
avatar?: string;
|
|
6
14
|
groupIds?: string[];
|
|
7
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Grupo usado para filtrar a lista de usuários.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* const g: UsersGroup = { id: 'g1', name: 'Liderança' };
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
8
24
|
export interface UsersGroup {
|
|
9
25
|
id: string;
|
|
10
26
|
name: string;
|
|
11
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Props do `UsersGroupsSelector`. Componente controlado: passe `value` (IDs
|
|
30
|
+
* selecionados) + `onChange`. Quando `disabled`, esconde o header de edição.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```tsx
|
|
34
|
+
* const props: UsersGroupsSelectorProps = {
|
|
35
|
+
* users, groups, value, onChange: setSelected
|
|
36
|
+
* };
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
12
39
|
export interface UsersGroupsSelectorProps {
|
|
13
40
|
/** Available users to select from */
|
|
14
41
|
users: UsersGroupUser[];
|
|
@@ -41,4 +68,20 @@ export interface UsersGroupsSelectorProps {
|
|
|
41
68
|
/** Additional className */
|
|
42
69
|
className?: string;
|
|
43
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Seletor de usuários com avatar, busca por nome/email, filtro por grupo e
|
|
73
|
+
* "selecionar todos". Possui dois modos visuais alternados pelo header:
|
|
74
|
+
* **leitura** (mostra apenas selecionados) e **edição** (lista completa filtrável).
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```tsx
|
|
78
|
+
* const [selected, setSelected] = useState<string[]>([]);
|
|
79
|
+
* <UsersGroupsSelector
|
|
80
|
+
* users={users}
|
|
81
|
+
* groups={groups}
|
|
82
|
+
* value={selected}
|
|
83
|
+
* onChange={setSelected}
|
|
84
|
+
* />
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
44
87
|
export declare function UsersGroupsSelector({ users, groups, value, onChange, disabled, maxHeight, hideGroupFilter, searchPlaceholder, selectLabel, doneLabel, allLabel, emptyLabel, selectedLabel, selectedPluralLabel, className, }: UsersGroupsSelectorProps): import("react/jsx-runtime").JSX.Element;
|