forlogic-core 2.1.5 → 2.2.1

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 (196) hide show
  1. package/README.md +53 -1
  2. package/dist/action-plans/components/ActionPlanAttachmentsTab.d.ts +3 -0
  3. package/dist/action-plans/components/ActionPlanCommentsTab.d.ts +3 -0
  4. package/dist/action-plans/components/ActionPlanCostTab.d.ts +5 -0
  5. package/dist/action-plans/components/ActionPlanGeneralTab.d.ts +3 -0
  6. package/dist/action-plans/components/ActionPlanHistoryTab.d.ts +3 -0
  7. package/dist/action-plans/components/ActionPlanPredecessorsTab.d.ts +5 -0
  8. package/dist/action-plans/components/ActionPlanProgressDialog.d.ts +3 -0
  9. package/dist/action-plans/components/ActionPlanProgressTab.d.ts +5 -0
  10. package/dist/action-plans/components/ActionPlanStatusBadge.d.ts +3 -0
  11. package/dist/action-plans/constants.d.ts +24 -0
  12. package/dist/action-plans/hooks/useActionPlan.d.ts +5 -0
  13. package/dist/action-plans/hooks/useActionPlanProgress.d.ts +5 -0
  14. package/dist/action-plans/types.d.ts +60 -0
  15. package/dist/action-plans/utils/formatTime.d.ts +9 -0
  16. package/dist/audit-trail/components/AuditTrailDetails.d.ts +10 -0
  17. package/dist/audit-trail/components/AuditTrailFilter.d.ts +10 -0
  18. package/dist/audit-trail/components/AuditTrailPage.d.ts +10 -0
  19. package/dist/audit-trail/types.d.ts +58 -0
  20. package/dist/audit-trail/utils.d.ts +18 -2
  21. package/dist/auth/components/EditProfileDialog.d.ts +1 -0
  22. package/dist/auth/components/ProtectedRoute.d.ts +5 -0
  23. package/dist/auth/contexts/AuthContext.d.ts +5 -0
  24. package/dist/auth/pages/CallbackPage.d.ts +5 -0
  25. package/dist/auth/services/AuthService.d.ts +5 -0
  26. package/dist/auth/services/TokenManager.d.ts +5 -0
  27. package/dist/auth/services/TokenService.d.ts +10 -0
  28. package/dist/auth/utils/ErrorInterceptor.d.ts +5 -0
  29. package/dist/components/dashboards/dashboard-form.d.ts +15 -0
  30. package/dist/components/dashboards/dashboard-general-view.d.ts +15 -0
  31. package/dist/components/dashboards/dashboard-grid.d.ts +25 -0
  32. package/dist/components/dashboards/dashboard-list.d.ts +10 -0
  33. package/dist/components/dashboards/dashboard-panel-renderer.d.ts +10 -0
  34. package/dist/components/dashboards/dashboard-view.d.ts +10 -0
  35. package/dist/components/dashboards/helpers.d.ts +44 -5
  36. package/dist/components/dashboards/panels/burndown-panel.d.ts +15 -0
  37. package/dist/components/dashboards/panels/cartesian-panel.d.ts +20 -0
  38. package/dist/components/dashboards/panels/list-panel.d.ts +15 -0
  39. package/dist/components/dashboards/panels/matrix-risk-panel.d.ts +25 -0
  40. package/dist/components/dashboards/panels/numeric-panel.d.ts +10 -0
  41. package/dist/components/dashboards/panels/panel-error.d.ts +10 -0
  42. package/dist/components/dashboards/panels/panel-header.d.ts +10 -0
  43. package/dist/components/dashboards/panels/panel-loader.d.ts +10 -0
  44. package/dist/components/dashboards/panels/panel-no-data.d.ts +10 -0
  45. package/dist/components/dashboards/panels/panel-unavailable.d.ts +10 -0
  46. package/dist/components/dashboards/panels/pareto-panel.d.ts +10 -0
  47. package/dist/components/dashboards/panels/performance-panel.d.ts +15 -0
  48. package/dist/components/dashboards/panels/pie-panel.d.ts +10 -0
  49. package/dist/components/dashboards/panels/text-panel.d.ts +10 -0
  50. package/dist/components/dashboards/types.d.ts +230 -0
  51. package/dist/components/modules/AccessDeniedDialog.d.ts +3 -1
  52. package/dist/components/modules/ModuleAccessGuard.d.ts +3 -1
  53. package/dist/components/modules/ModulesContent.d.ts +3 -1
  54. package/dist/components/modules/ModulesDialog.d.ts +1 -1
  55. package/dist/components/modules/ModulesFooterCards.d.ts +3 -1
  56. package/dist/components/modules/types.d.ts +2 -0
  57. package/dist/components/ui/accordion.d.ts +35 -0
  58. package/dist/components/ui/action-button.d.ts +5 -0
  59. package/dist/components/ui/alert-dialog.d.ts +82 -0
  60. package/dist/components/ui/alert.d.ts +32 -0
  61. package/dist/components/ui/avatar.d.ts +30 -0
  62. package/dist/components/ui/badge.d.ts +32 -0
  63. package/dist/components/ui/breadcrumb.d.ts +54 -0
  64. package/dist/components/ui/button-group.d.ts +15 -0
  65. package/dist/components/ui/button.d.ts +55 -0
  66. package/dist/components/ui/calendar.d.ts +16 -0
  67. package/dist/components/ui/card.d.ts +49 -0
  68. package/dist/components/ui/chart.d.ts +35 -0
  69. package/dist/components/ui/checkbox.d.ts +11 -0
  70. package/dist/components/ui/collapsible.d.ts +15 -0
  71. package/dist/components/ui/color-picker.d.ts +5 -0
  72. package/dist/components/ui/combo-tree.d.ts +23 -0
  73. package/dist/components/ui/combobox.d.ts +28 -0
  74. package/dist/components/ui/command.d.ts +66 -0
  75. package/dist/components/ui/context-menu.d.ts +95 -0
  76. package/dist/components/ui/date-picker.d.ts +10 -0
  77. package/dist/components/ui/dialog-wizard.d.ts +22 -4
  78. package/dist/components/ui/dialog.d.ts +181 -0
  79. package/dist/components/ui/drawer.d.ts +72 -0
  80. package/dist/components/ui/dropdown-menu.d.ts +153 -0
  81. package/dist/components/ui/electronic-signature-dialog.d.ts +10 -0
  82. package/dist/components/ui/export-dialog.d.ts +20 -0
  83. package/dist/components/ui/form.d.ts +96 -0
  84. package/dist/components/ui/hover-card.d.ts +15 -0
  85. package/dist/components/ui/icon-picker.d.ts +5 -0
  86. package/dist/components/ui/iframe-dialog.d.ts +10 -0
  87. package/dist/components/ui/input-group.d.ts +16 -0
  88. package/dist/components/ui/input.d.ts +5 -0
  89. package/dist/components/ui/menubar.d.ts +80 -0
  90. package/dist/components/ui/multiselect-permissions.d.ts +25 -0
  91. package/dist/components/ui/navigation-menu.d.ts +45 -0
  92. package/dist/components/ui/onboarding-dialog.d.ts +15 -0
  93. package/dist/components/ui/online-editor-dialog.d.ts +10 -0
  94. package/dist/components/ui/pagination.d.ts +53 -0
  95. package/dist/components/ui/popover.d.ts +8 -0
  96. package/dist/components/ui/radio-group.d.ts +3 -0
  97. package/dist/components/ui/report-request-list.d.ts +20 -0
  98. package/dist/components/ui/resizable.d.ts +15 -0
  99. package/dist/components/ui/rich-text-editor.d.ts +13 -0
  100. package/dist/components/ui/scroll-area.d.ts +3 -0
  101. package/dist/components/ui/select.d.ts +71 -0
  102. package/dist/components/ui/separator.d.ts +13 -0
  103. package/dist/components/ui/sheet.d.ts +76 -0
  104. package/dist/components/ui/sidebar.d.ts +203 -0
  105. package/dist/components/ui/skeleton-variants.d.ts +25 -0
  106. package/dist/components/ui/skeleton.d.ts +12 -0
  107. package/dist/components/ui/slider.d.ts +5 -0
  108. package/dist/components/ui/sonner.d.ts +5 -0
  109. package/dist/components/ui/spinner.d.ts +5 -0
  110. package/dist/components/ui/split-button.d.ts +6 -0
  111. package/dist/components/ui/stack.d.ts +5 -0
  112. package/dist/components/ui/status-badge.d.ts +3 -0
  113. package/dist/components/ui/step-selector.d.ts +5 -0
  114. package/dist/components/ui/stimulsoft-viewer.d.ts +8 -0
  115. package/dist/components/ui/switch.d.ts +21 -0
  116. package/dist/components/ui/tab-page-layout.d.ts +33 -0
  117. package/dist/components/ui/table-resize-handle.d.ts +10 -3
  118. package/dist/components/ui/table.d.ts +102 -0
  119. package/dist/components/ui/tabs.d.ts +59 -0
  120. package/dist/components/ui/terms-of-use-dialog.d.ts +50 -4
  121. package/dist/components/ui/textarea.d.ts +27 -0
  122. package/dist/components/ui/timepicker.d.ts +23 -0
  123. package/dist/components/ui/toggle-group.d.ts +25 -0
  124. package/dist/components/ui/toggle.d.ts +21 -0
  125. package/dist/components/ui/tooltip.d.ts +55 -1
  126. package/dist/components/ui/truncated-cell.d.ts +13 -0
  127. package/dist/components/ui/typography.d.ts +119 -0
  128. package/dist/components/ui/updates-notification.d.ts +33 -0
  129. package/dist/components/ui/users-groups-selector.d.ts +43 -0
  130. package/dist/components/ui/viewer-dialog.d.ts +107 -0
  131. package/dist/crud/components/ActionMenuItems.d.ts +5 -0
  132. package/dist/crud/components/BaseForm.d.ts +46 -0
  133. package/dist/crud/components/ColumnSettingsPopover.d.ts +10 -0
  134. package/dist/crud/components/CrudActionBar.d.ts +20 -0
  135. package/dist/crud/components/CrudGrid.d.ts +10 -0
  136. package/dist/crud/components/CrudPagination.d.ts +5 -0
  137. package/dist/crud/components/CrudTable.d.ts +5 -0
  138. package/dist/crud/components/TableRowActions.d.ts +5 -0
  139. package/dist/crud/createCrudPage.d.ts +41 -8
  140. package/dist/crud/generateCrudConfig.d.ts +13 -8
  141. package/dist/crud/hooks/useBaseForm.d.ts +39 -0
  142. package/dist/crud/hooks/useColumnManager.d.ts +25 -0
  143. package/dist/crud/hooks/useCrud.d.ts +35 -0
  144. package/dist/crud/primitives/ActionMenu.d.ts +41 -0
  145. package/dist/crud/primitives/FilterBar.d.ts +45 -0
  146. package/dist/crud/primitives/Pagination.d.ts +5 -0
  147. package/dist/crud/primitives/Table.d.ts +5 -0
  148. package/dist/crud/primitives/TreeTable.d.ts +5 -0
  149. package/dist/crud/primitives/types.d.ts +57 -0
  150. package/dist/crud/utils/routingHelpers.d.ts +11 -0
  151. package/dist/custom-form-fields/components/CustomFormFields.d.ts +3 -0
  152. package/dist/custom-form-fields/fields/FormDateField.d.ts +3 -0
  153. package/dist/custom-form-fields/fields/FormMultiSelectionField.d.ts +3 -0
  154. package/dist/custom-form-fields/fields/FormNumericField.d.ts +3 -0
  155. package/dist/custom-form-fields/fields/FormQuestionsField.d.ts +3 -0
  156. package/dist/custom-form-fields/fields/FormSingleSelectionField.d.ts +3 -0
  157. package/dist/custom-form-fields/fields/FormTextField.d.ts +3 -0
  158. package/dist/custom-form-fields/fields/FormTimeField.d.ts +3 -0
  159. package/dist/custom-form-fields/fields/FormUrlField.d.ts +3 -0
  160. package/dist/custom-form-fields/fields/ReadOnlyTextField.d.ts +3 -0
  161. package/dist/custom-form-fields/types.d.ts +84 -21
  162. package/dist/exports/integrations.d.ts +1 -0
  163. package/dist/file-upload/components/SingleFileUpload.d.ts +59 -0
  164. package/dist/file-upload/types.d.ts +15 -0
  165. package/dist/file-upload/utils/formatBytes.d.ts +5 -0
  166. package/dist/file-upload/utils/getFileExtension.d.ts +5 -0
  167. package/dist/hooks/useColumnResize.d.ts +24 -0
  168. package/dist/hooks/useRowResize.d.ts +18 -0
  169. package/dist/hooks/useSidebarResize.d.ts +18 -0
  170. package/dist/hooks/useUpdatesNotification.d.ts +16 -0
  171. package/dist/index.css +1 -1
  172. package/dist/index.css.map +1 -1
  173. package/dist/index.esm.js +1 -1
  174. package/dist/index.js +1 -1
  175. package/dist/integrations/clarity/clarityTracking.d.ts +31 -0
  176. package/dist/integrations/clarity/index.d.ts +3 -0
  177. package/dist/integrations/clarity/types.d.ts +46 -0
  178. package/dist/integrations/clarity/useClarity.d.ts +34 -0
  179. package/dist/integrations/index.d.ts +5 -0
  180. package/dist/providers/CoreProviders.d.ts +16 -1
  181. package/dist/qualiex/components/QualiexUserField.d.ts +8 -0
  182. package/dist/qualiex/hooks/useQualiexUsers.d.ts +16 -26
  183. package/dist/qualiex/services/qualiexApi.d.ts +38 -2
  184. package/dist/qualiex/utils/QualiexErrorInterceptor.d.ts +5 -0
  185. package/dist/supabase/SupabaseSingleton.d.ts +34 -0
  186. package/dist/types.d.ts +51 -2
  187. package/dist/vite/index.esm.js +4 -1
  188. package/dist/vite/index.js +4 -1
  189. package/docs/STORAGE_BUCKETS.md +384 -0
  190. package/docs/WORKSPACE_KNOWLEDGE.md +1 -0
  191. package/docs/design-system/README.md +1 -1
  192. package/docs/design-system/dialogs.md +2 -0
  193. package/docs/design-system/patterns/core-providers.md +2 -0
  194. package/docs/design-system/selectors.md +4 -0
  195. package/package.json +7 -1
  196. 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 that notifies the user about updated terms of use.
49
- * Shows a description and buttons to view the full term, dismiss, or agree.
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
- * Full-screen viewer for a term of use file (PDF, etc.) embedded in an iframe.
54
- * Optionally shows a "sign" button for users who haven't signed yet.
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,61 @@
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>>;
6
- declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
46
+ /**
47
+ * Conteúdo do tooltip. Aceita `side` (`top`/`right`/`bottom`/`left`) e `sideOffset` (padrão 4).
48
+ *
49
+ * Renderizado via `TooltipPrimitive.Portal` (default: `document.body`) para evitar clipping
50
+ * em containers com `overflow-auto`/`overflow-hidden` (sidebars, cards com scroll, dialogs).
51
+ * Use a prop opcional `container` para portar para um nó específico (casos avançados).
52
+ *
53
+ * @example
54
+ * ```tsx
55
+ * <TooltipContent side="right" sideOffset={8}>Texto explicativo</TooltipContent>
56
+ * ```
57
+ */
58
+ declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
59
+ container?: HTMLElement | null;
60
+ } & React.RefAttributes<HTMLDivElement>>;
7
61
  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;