forlogic-core 2.1.4 → 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.
Files changed (248) hide show
  1. package/.note/memory/features/import/attachment-idempotency-registry.md +8 -8
  2. package/.note/memory/features/import/attachment-strategy.md +30 -30
  3. package/.note/memory/patterns/admin-i18n-policy.md +20 -20
  4. package/.note/memory/patterns/alias-url-resolution.md +69 -69
  5. package/.note/memory/patterns/doc-sync-rule.md +35 -35
  6. package/.note/memory/patterns/documentation-standard.md +17 -17
  7. package/.note/memory/patterns/dynamic-supabase-config.md +4 -4
  8. package/.note/memory/patterns/environment-detection-logic.md +35 -35
  9. package/.note/memory/patterns/i18n-architecture.md +3 -3
  10. package/README.md +120 -68
  11. package/dist/action-plans/components/ActionPlanAttachmentsTab.d.ts +3 -0
  12. package/dist/action-plans/components/ActionPlanCommentsTab.d.ts +3 -0
  13. package/dist/action-plans/components/ActionPlanCostTab.d.ts +5 -0
  14. package/dist/action-plans/components/ActionPlanGeneralTab.d.ts +3 -0
  15. package/dist/action-plans/components/ActionPlanHistoryTab.d.ts +3 -0
  16. package/dist/action-plans/components/ActionPlanPredecessorsTab.d.ts +5 -0
  17. package/dist/action-plans/components/ActionPlanProgressDialog.d.ts +3 -0
  18. package/dist/action-plans/components/ActionPlanProgressTab.d.ts +5 -0
  19. package/dist/action-plans/components/ActionPlanStatusBadge.d.ts +9 -2
  20. package/dist/action-plans/constants.d.ts +24 -0
  21. package/dist/action-plans/hooks/useActionPlan.d.ts +5 -0
  22. package/dist/action-plans/hooks/useActionPlanProgress.d.ts +5 -0
  23. package/dist/action-plans/types.d.ts +60 -0
  24. package/dist/action-plans/utils/formatTime.d.ts +9 -0
  25. package/dist/audit-trail/components/AuditTrailDetails.d.ts +10 -0
  26. package/dist/audit-trail/components/AuditTrailFilter.d.ts +10 -0
  27. package/dist/audit-trail/components/AuditTrailPage.d.ts +10 -0
  28. package/dist/audit-trail/types.d.ts +58 -0
  29. package/dist/audit-trail/utils.d.ts +18 -2
  30. package/dist/auth/components/EditProfileDialog.d.ts +1 -0
  31. package/dist/auth/components/ProtectedRoute.d.ts +5 -0
  32. package/dist/auth/contexts/AuthContext.d.ts +5 -0
  33. package/dist/auth/pages/CallbackPage.d.ts +5 -0
  34. package/dist/auth/services/AuthService.d.ts +5 -0
  35. package/dist/auth/services/TokenManager.d.ts +5 -0
  36. package/dist/auth/services/TokenService.d.ts +10 -0
  37. package/dist/auth/utils/ErrorInterceptor.d.ts +5 -0
  38. package/dist/components/dashboards/dashboard-form.d.ts +15 -0
  39. package/dist/components/dashboards/dashboard-general-view.d.ts +15 -0
  40. package/dist/components/dashboards/dashboard-grid.d.ts +25 -0
  41. package/dist/components/dashboards/dashboard-list.d.ts +10 -0
  42. package/dist/components/dashboards/dashboard-panel-renderer.d.ts +10 -0
  43. package/dist/components/dashboards/dashboard-view.d.ts +10 -0
  44. package/dist/components/dashboards/helpers.d.ts +44 -5
  45. package/dist/components/dashboards/panels/burndown-panel.d.ts +15 -0
  46. package/dist/components/dashboards/panels/cartesian-panel.d.ts +20 -0
  47. package/dist/components/dashboards/panels/list-panel.d.ts +15 -0
  48. package/dist/components/dashboards/panels/matrix-risk-panel.d.ts +25 -0
  49. package/dist/components/dashboards/panels/numeric-panel.d.ts +10 -0
  50. package/dist/components/dashboards/panels/panel-error.d.ts +10 -0
  51. package/dist/components/dashboards/panels/panel-header.d.ts +10 -0
  52. package/dist/components/dashboards/panels/panel-loader.d.ts +10 -0
  53. package/dist/components/dashboards/panels/panel-no-data.d.ts +10 -0
  54. package/dist/components/dashboards/panels/panel-unavailable.d.ts +10 -0
  55. package/dist/components/dashboards/panels/pareto-panel.d.ts +10 -0
  56. package/dist/components/dashboards/panels/performance-panel.d.ts +15 -0
  57. package/dist/components/dashboards/panels/pie-panel.d.ts +10 -0
  58. package/dist/components/dashboards/panels/text-panel.d.ts +10 -0
  59. package/dist/components/dashboards/types.d.ts +230 -0
  60. package/dist/components/modules/AccessDeniedDialog.d.ts +3 -1
  61. package/dist/components/modules/ModuleAccessGuard.d.ts +3 -1
  62. package/dist/components/modules/ModulesContent.d.ts +3 -1
  63. package/dist/components/modules/ModulesDialog.d.ts +1 -1
  64. package/dist/components/modules/ModulesFooterCards.d.ts +3 -1
  65. package/dist/components/modules/types.d.ts +2 -0
  66. package/dist/components/ui/accordion.d.ts +35 -0
  67. package/dist/components/ui/action-button.d.ts +5 -0
  68. package/dist/components/ui/alert-dialog.d.ts +82 -0
  69. package/dist/components/ui/alert.d.ts +32 -0
  70. package/dist/components/ui/avatar.d.ts +30 -0
  71. package/dist/components/ui/badge.d.ts +32 -0
  72. package/dist/components/ui/breadcrumb.d.ts +54 -0
  73. package/dist/components/ui/button-group.d.ts +15 -0
  74. package/dist/components/ui/button.d.ts +55 -0
  75. package/dist/components/ui/calendar.d.ts +16 -0
  76. package/dist/components/ui/card.d.ts +49 -0
  77. package/dist/components/ui/chart.d.ts +35 -0
  78. package/dist/components/ui/checkbox.d.ts +11 -0
  79. package/dist/components/ui/collapsible.d.ts +15 -0
  80. package/dist/components/ui/color-picker.d.ts +5 -0
  81. package/dist/components/ui/combo-tree.d.ts +23 -0
  82. package/dist/components/ui/combobox.d.ts +28 -0
  83. package/dist/components/ui/command.d.ts +66 -0
  84. package/dist/components/ui/context-menu.d.ts +95 -0
  85. package/dist/components/ui/date-picker.d.ts +10 -0
  86. package/dist/components/ui/dialog-wizard.d.ts +22 -4
  87. package/dist/components/ui/dialog.d.ts +181 -0
  88. package/dist/components/ui/drawer.d.ts +72 -0
  89. package/dist/components/ui/dropdown-menu.d.ts +153 -0
  90. package/dist/components/ui/electronic-signature-dialog.d.ts +10 -0
  91. package/dist/components/ui/export-dialog.d.ts +20 -0
  92. package/dist/components/ui/form.d.ts +96 -0
  93. package/dist/components/ui/hover-card.d.ts +15 -0
  94. package/dist/components/ui/icon-picker.d.ts +5 -0
  95. package/dist/components/ui/iframe-dialog.d.ts +10 -0
  96. package/dist/components/ui/input-group.d.ts +16 -0
  97. package/dist/components/ui/input.d.ts +5 -0
  98. package/dist/components/ui/menubar.d.ts +80 -0
  99. package/dist/components/ui/multiselect-permissions.d.ts +25 -0
  100. package/dist/components/ui/navigation-menu.d.ts +45 -0
  101. package/dist/components/ui/onboarding-dialog.d.ts +15 -0
  102. package/dist/components/ui/online-editor-dialog.d.ts +10 -0
  103. package/dist/components/ui/pagination.d.ts +53 -0
  104. package/dist/components/ui/popover.d.ts +8 -0
  105. package/dist/components/ui/radio-group.d.ts +3 -0
  106. package/dist/components/ui/report-request-list.d.ts +20 -0
  107. package/dist/components/ui/resizable.d.ts +15 -0
  108. package/dist/components/ui/rich-text-editor.d.ts +13 -0
  109. package/dist/components/ui/scroll-area.d.ts +3 -0
  110. package/dist/components/ui/select.d.ts +71 -0
  111. package/dist/components/ui/separator.d.ts +13 -0
  112. package/dist/components/ui/sheet.d.ts +76 -0
  113. package/dist/components/ui/sidebar.d.ts +203 -0
  114. package/dist/components/ui/skeleton-variants.d.ts +25 -0
  115. package/dist/components/ui/skeleton.d.ts +12 -0
  116. package/dist/components/ui/slider.d.ts +5 -0
  117. package/dist/components/ui/sonner.d.ts +5 -0
  118. package/dist/components/ui/spinner.d.ts +5 -0
  119. package/dist/components/ui/split-button.d.ts +6 -0
  120. package/dist/components/ui/stack.d.ts +5 -0
  121. package/dist/components/ui/status-badge.d.ts +52 -0
  122. package/dist/components/ui/step-selector.d.ts +5 -0
  123. package/dist/components/ui/stimulsoft-viewer.d.ts +8 -0
  124. package/dist/components/ui/switch.d.ts +21 -0
  125. package/dist/components/ui/tab-page-layout.d.ts +33 -0
  126. package/dist/components/ui/table-resize-handle.d.ts +10 -3
  127. package/dist/components/ui/table.d.ts +102 -0
  128. package/dist/components/ui/tabs.d.ts +59 -0
  129. package/dist/components/ui/terms-of-use-dialog.d.ts +50 -4
  130. package/dist/components/ui/textarea.d.ts +27 -0
  131. package/dist/components/ui/timepicker.d.ts +23 -0
  132. package/dist/components/ui/toggle-group.d.ts +25 -0
  133. package/dist/components/ui/toggle.d.ts +21 -0
  134. package/dist/components/ui/tooltip.d.ts +48 -0
  135. package/dist/components/ui/truncated-cell.d.ts +13 -0
  136. package/dist/components/ui/typography.d.ts +119 -0
  137. package/dist/components/ui/updates-notification.d.ts +33 -0
  138. package/dist/components/ui/users-groups-selector.d.ts +43 -0
  139. package/dist/components/ui/viewer-dialog.d.ts +107 -0
  140. package/dist/crud/components/ActionMenuItems.d.ts +5 -0
  141. package/dist/crud/components/BaseForm.d.ts +46 -0
  142. package/dist/crud/components/ColumnSettingsPopover.d.ts +10 -0
  143. package/dist/crud/components/CrudActionBar.d.ts +20 -0
  144. package/dist/crud/components/CrudGrid.d.ts +10 -0
  145. package/dist/crud/components/CrudPagination.d.ts +5 -0
  146. package/dist/crud/components/CrudTable.d.ts +5 -0
  147. package/dist/crud/components/TableRowActions.d.ts +5 -0
  148. package/dist/crud/createCrudPage.d.ts +41 -8
  149. package/dist/crud/generateCrudConfig.d.ts +13 -8
  150. package/dist/crud/hooks/useBaseForm.d.ts +39 -0
  151. package/dist/crud/hooks/useColumnManager.d.ts +25 -0
  152. package/dist/crud/hooks/useCrud.d.ts +35 -0
  153. package/dist/crud/primitives/ActionMenu.d.ts +41 -0
  154. package/dist/crud/primitives/FilterBar.d.ts +45 -0
  155. package/dist/crud/primitives/Pagination.d.ts +5 -0
  156. package/dist/crud/primitives/Table.d.ts +6 -1
  157. package/dist/crud/primitives/TreeTable.d.ts +5 -0
  158. package/dist/crud/primitives/types.d.ts +63 -0
  159. package/dist/crud/utils/routingHelpers.d.ts +11 -0
  160. package/dist/custom-form-fields/components/CustomFormFields.d.ts +3 -0
  161. package/dist/custom-form-fields/fields/FormDateField.d.ts +3 -0
  162. package/dist/custom-form-fields/fields/FormMultiSelectionField.d.ts +3 -0
  163. package/dist/custom-form-fields/fields/FormNumericField.d.ts +3 -0
  164. package/dist/custom-form-fields/fields/FormQuestionsField.d.ts +3 -0
  165. package/dist/custom-form-fields/fields/FormSingleSelectionField.d.ts +3 -0
  166. package/dist/custom-form-fields/fields/FormTextField.d.ts +3 -0
  167. package/dist/custom-form-fields/fields/FormTimeField.d.ts +3 -0
  168. package/dist/custom-form-fields/fields/FormUrlField.d.ts +3 -0
  169. package/dist/custom-form-fields/fields/ReadOnlyTextField.d.ts +3 -0
  170. package/dist/custom-form-fields/types.d.ts +84 -21
  171. package/dist/exports/crud.d.ts +5 -0
  172. package/dist/exports/integrations.d.ts +1 -0
  173. package/dist/exports/ui.d.ts +1 -0
  174. package/dist/file-upload/components/SingleFileUpload.d.ts +59 -0
  175. package/dist/file-upload/types.d.ts +15 -0
  176. package/dist/file-upload/utils/formatBytes.d.ts +5 -0
  177. package/dist/file-upload/utils/getFileExtension.d.ts +5 -0
  178. package/dist/hooks/useColumnResize.d.ts +24 -0
  179. package/dist/hooks/useRowResize.d.ts +18 -0
  180. package/dist/hooks/useSidebarResize.d.ts +18 -0
  181. package/dist/hooks/useUpdatesNotification.d.ts +16 -0
  182. package/dist/index.css +1 -1
  183. package/dist/index.css.map +1 -1
  184. package/dist/index.esm.js +1 -1
  185. package/dist/index.js +1 -1
  186. package/dist/integrations/clarity/clarityTracking.d.ts +31 -0
  187. package/dist/integrations/clarity/index.d.ts +3 -0
  188. package/dist/integrations/clarity/types.d.ts +46 -0
  189. package/dist/integrations/clarity/useClarity.d.ts +34 -0
  190. package/dist/integrations/index.d.ts +5 -0
  191. package/dist/providers/CoreProviders.d.ts +16 -1
  192. package/dist/qualiex/components/QualiexUserField.d.ts +8 -0
  193. package/dist/qualiex/hooks/useQualiexUsers.d.ts +16 -26
  194. package/dist/qualiex/services/qualiexApi.d.ts +38 -2
  195. package/dist/qualiex/utils/QualiexErrorInterceptor.d.ts +5 -0
  196. package/dist/supabase/SupabaseSingleton.d.ts +34 -0
  197. package/dist/types.d.ts +51 -2
  198. package/dist/utils/color.d.ts +26 -0
  199. package/dist/utils/index.d.ts +1 -0
  200. package/dist/vite/index.esm.js +4 -1
  201. package/dist/vite/index.js +4 -1
  202. package/docs/PUBLISH.md +168 -0
  203. package/docs/STORAGE_BUCKETS.md +384 -0
  204. package/docs/WORKSPACE_KNOWLEDGE.md +120 -119
  205. package/docs/design-system/README.md +1 -1
  206. package/docs/design-system/buttons-actions.md +130 -130
  207. package/docs/design-system/charts-dashboards.md +340 -301
  208. package/docs/design-system/crud.md +174 -114
  209. package/docs/design-system/data-display.md +108 -103
  210. package/docs/design-system/dialogs.md +212 -212
  211. package/docs/design-system/domain.md +317 -317
  212. package/docs/design-system/examples.md +275 -275
  213. package/docs/design-system/foundation.md +1 -1
  214. package/docs/design-system/inputs.md +131 -131
  215. package/docs/design-system/layout.md +202 -154
  216. package/docs/design-system/navigation.md +271 -325
  217. package/docs/design-system/notifications-feedback.md +34 -34
  218. package/docs/design-system/patterns/README.md +53 -53
  219. package/docs/design-system/patterns/action-button.md +22 -22
  220. package/docs/design-system/patterns/alertdialog-deletion.md +46 -46
  221. package/docs/design-system/patterns/baseform-custom-fields.md +59 -59
  222. package/docs/design-system/patterns/baseform-usage.md +42 -42
  223. package/docs/design-system/patterns/body-content-scroll.md +56 -56
  224. package/docs/design-system/patterns/combo-tree.md +23 -23
  225. package/docs/design-system/patterns/components-registry.md +17 -17
  226. package/docs/design-system/patterns/core-providers.md +41 -39
  227. package/docs/design-system/patterns/crud-bulk-actions.md +12 -12
  228. package/docs/design-system/patterns/crud-config-props.md +16 -16
  229. package/docs/design-system/patterns/crud-defaults.md +17 -17
  230. package/docs/design-system/patterns/crud-toolbar.md +28 -28
  231. package/docs/design-system/patterns/delete-confirmation.md +40 -40
  232. package/docs/design-system/patterns/dialog-body-scroll.md +26 -26
  233. package/docs/design-system/patterns/dialog-structure.md +32 -32
  234. package/docs/design-system/patterns/dialog-variants.md +41 -41
  235. package/docs/design-system/patterns/feature-flags.md +24 -20
  236. package/docs/design-system/patterns/header-metadata.md +57 -57
  237. package/docs/design-system/patterns/i18n-setup.md +117 -117
  238. package/docs/design-system/patterns/pagination.md +27 -27
  239. package/docs/design-system/patterns/single-scroll.md +39 -39
  240. package/docs/design-system/patterns/vite-tailwind-setup.md +48 -48
  241. package/docs/design-system/platform.md +18 -18
  242. package/docs/design-system/selectors.md +240 -236
  243. package/docs/design-system/tables-grids.md +95 -38
  244. package/package.json +150 -144
  245. package/dist/README.md +0 -1079
  246. package/dist/bin/bootstrap.js +0 -40
  247. package/dist/bin/pull-docs.js +0 -186
  248. package/dist/docs/KNOWLEDGE.md +0 -109
@@ -41,7 +41,7 @@ const NotesPage = createCrudPage({
41
41
  - Nível Médio: CrudTable/CrudGrid — componentes compostos para layouts customizados
42
42
  - Nível Baixo: Primitives (DataTable, DataPagination, DataFilterBar) — controle total
43
43
 
44
- > Fonte: `src\design-system\docs\components\crud\CrudOverviewDoc.tsx`
44
+ > Fonte: `src/design-system/docs/components/crud/CrudOverviewDoc.tsx`
45
45
 
46
46
  ---
47
47
 
@@ -49,7 +49,7 @@ const NotesPage = createCrudPage({
49
49
 
50
50
  Factory de alto nível que gera uma página CRUD completa com ~15 linhas de configuração declarativa.
51
51
 
52
- > Fonte: `src\design-system\docs\components\crud\CreateCrudPageDoc.tsx`
52
+ > Fonte: `src/design-system/docs/components/crud/CreateCrudPageDoc.tsx`
53
53
 
54
54
  ---
55
55
 
@@ -57,93 +57,153 @@ Factory de alto nível que gera uma página CRUD completa com ~15 linhas de conf
57
57
 
58
58
  Barra de ações unificada usada por todos os componentes CRUD (CrudTable, CrudGrid, createCrudPage) para garantir UX consistente.
59
59
 
60
- > Fonte: `src\design-system\docs\components\crud\CrudActionBarDoc.tsx`
60
+ > Fonte: `src/design-system/docs/components/crud/CrudActionBarDoc.tsx`
61
61
 
62
62
  ---
63
63
 
64
- ### CrudTable
64
+ ### Table
65
65
 
66
- Componente de tabela CRUD completo com ordenação, seleção, resize de colunas, ações em massa e paginação integrada com useCrud.
66
+ Uma tabela semântica para exibir dados tabulares. Inclui TableResizeHandle para redimensionamento de colunas e TruncatedCell para texto truncado com tooltip automático.
67
67
 
68
- > Fonte: `src\design-system\docs\components\crud\CrudTableDoc.tsx`
68
+ **Uso:**
69
+ ```tsx
70
+ import {
71
+ Table,
72
+ TableBody,
73
+ TableCaption,
74
+ TableCell,
75
+ TableHead,
76
+ TableHeader,
77
+ TableRow,
78
+ TableResizeHandle,
79
+ TruncatedCell,
80
+ } from "forlogic-core"
81
+
82
+ <Table>
83
+ <TableCaption>Lista de usuários</TableCaption>
84
+ <TableHeader>
85
+ <TableRow>
86
+ <TableHead>Nome</TableHead>
87
+ <TableHead>Email</TableHead>
88
+ <TableHead>Status</TableHead>
89
+ </TableRow>
90
+ </TableHeader>
91
+ <TableBody>
92
+ <TableRow>
93
+ <TableCell>João Silva</TableCell>
94
+ <TableCell>joao@example.com</TableCell>
95
+ <TableCell>Ativo</TableCell>
96
+ </TableRow>
97
+ </TableBody>
98
+ </Table>
99
+ ```
69
100
 
70
- ---
101
+ **Props:**
102
+ | Prop | Tipo | Padrão | Descrição |
103
+ |------|------|--------|-----------|
104
+ | `className` | `string` | - | Classes CSS adicionais para a tabela. |
105
+ | `TableResizeHandle.onMouseDown` | `(e: MouseEvent) => void` | - | Handler para iniciar o redimensionamento. |
106
+ | `TableResizeHandle.isDragging` | `boolean` | false | Se o handle está sendo arrastado (altera visual). |
107
+ | `TruncatedCell.children` | `ReactNode` | - | Conteúdo a ser truncado. |
108
+ | `TruncatedCell.className` | `string` | - | Classes CSS adicionais. |
71
109
 
72
- ### CrudGrid
110
+ **Acessibilidade:**
111
+ - Usa elementos HTML semânticos de tabela
112
+ - Suporta navegação por teclado
113
+ - TableCaption fornece contexto para leitores de tela
114
+ - TableHeader define cabeçalhos de coluna apropriados
115
+ - TruncatedCell mostra tooltip acessível com conteúdo completo
116
+ - TableResizeHandle suporta interação via teclado
117
+ - Funciona com leitores de tela
73
118
 
74
- Componente para exibir dados em formato de grade (cards) com todas as funcionalidades CRUD. Alternativa visual ao CrudTable para listagens com layout mais visual.
119
+ **Notas:**
120
+ - TableResizeHandle deve ser posicionado dentro de um TableHead com position: relative.
121
+ - TruncatedCell detecta automaticamente se o texto está truncado e exibe tooltip apenas quando necessário.
122
+ - Use larguras fixas (w-[Xpx]) nos TableHead para melhor controle do layout.
123
+ - TruncatedCell usa CSS text-overflow: ellipsis internamente.
75
124
 
76
- > Fonte: `src\design-system\docs\components\crud\CrudGridDoc.tsx`
125
+ > Fonte: `src/design-system/docs/components/TableDoc.tsx`
77
126
 
78
127
  ---
79
128
 
80
- ### CRUD Primitives
129
+ ### CrudGrid
81
130
 
82
- Componentes de baixo nível para interfaces CRUD totalmente customizadas com controle total sobre layout e comportamento. Aliases disponíveis: DataTable, DataFilterBar, DataPagination.
131
+ Componente para exibir dados em formato de grade (cards) com todas as funcionalidades CRUD. Alternativa visual ao CrudTable para listagens com layout mais visual.
83
132
 
84
- > Fonte: `src\design-system\docs\components\crud\CrudPrimitivesDoc.tsx`
133
+ > Fonte: `src/design-system/docs/components/crud/CrudGridDoc.tsx`
85
134
 
86
135
  ---
87
136
 
88
- ### Pagination
137
+ ### Table
89
138
 
90
- Barra de paginação completa com seletor de itens por página e controles de navegação.
139
+ Uma tabela semântica para exibir dados tabulares. Inclui TableResizeHandle para redimensionamento de colunas e TruncatedCell para texto truncado com tooltip automático.
91
140
 
92
141
  **Uso:**
93
142
  ```tsx
94
- import { Pagination } from "forlogic-core/crud"
95
-
96
- <Pagination
97
- currentPage={1}
98
- totalPages={10}
99
- totalItems={100}
100
- itemsPerPage={10}
101
- onPageChange={(page) => setPage(page)}
102
- onItemsPerPageChange={(limit) => setLimit(limit)}
103
- variant="full"
104
- />
143
+ import {
144
+ Table,
145
+ TableBody,
146
+ TableCaption,
147
+ TableCell,
148
+ TableHead,
149
+ TableHeader,
150
+ TableRow,
151
+ TableResizeHandle,
152
+ TruncatedCell,
153
+ } from "forlogic-core"
154
+
155
+ <Table>
156
+ <TableCaption>Lista de usuários</TableCaption>
157
+ <TableHeader>
158
+ <TableRow>
159
+ <TableHead>Nome</TableHead>
160
+ <TableHead>Email</TableHead>
161
+ <TableHead>Status</TableHead>
162
+ </TableRow>
163
+ </TableHeader>
164
+ <TableBody>
165
+ <TableRow>
166
+ <TableCell>João Silva</TableCell>
167
+ <TableCell>joao@example.com</TableCell>
168
+ <TableCell>Ativo</TableCell>
169
+ </TableRow>
170
+ </TableBody>
171
+ </Table>
105
172
  ```
106
173
 
107
174
  **Props:**
108
175
  | Prop | Tipo | Padrão | Descrição |
109
176
  |------|------|--------|-----------|
110
- | `currentPage` | `number` | - | Página atual (1-indexed) |
111
- | `totalPages` | `number` | - | Número total de páginas |
112
- | `totalItems` | `number` | - | Número total de itens |
113
- | `itemsPerPage` | `number` | - | Quantidade de itens por página |
114
- | `onPageChange` | `(page: number) => void` | - | Callback ao mudar de página |
115
- | `onItemsPerPageChange` | `(limit: number) => void` | - | Callback ao mudar itens por página |
116
-
117
- **Exemplos:**
118
- ```tsx
119
- <Pagination
120
- currentPage={1}
121
- totalPages={2}
122
- totalItems={15}
123
- itemsPerPage={10}
124
- onPageChange={setPage}
125
- onItemsPerPageChange={setItemsPerPage}
126
- variant=
127
- ```
128
- ```tsx
129
- <Pagination
130
- currentPage={3}
131
- totalPages={25}
132
- totalItems={250}
133
- itemsPerPage={10}
134
- onPageChange={setPage}
135
- onItemsPerPageChange={setItemsPerPage}
136
- variant=
137
- ```
177
+ | `className` | `string` | - | Classes CSS adicionais para a tabela. |
178
+ | `TableResizeHandle.onMouseDown` | `(e: MouseEvent) => void` | - | Handler para iniciar o redimensionamento. |
179
+ | `TableResizeHandle.isDragging` | `boolean` | false | Se o handle está sendo arrastado (altera visual). |
180
+ | `TruncatedCell.children` | `ReactNode` | - | Conteúdo a ser truncado. |
181
+ | `TruncatedCell.className` | `string` | - | Classes CSS adicionais. |
138
182
 
139
183
  **Acessibilidade:**
140
- - Navegável por teclado
141
- - Labels ARIA apropriados
142
- - Indicação visual da página atual
143
- - Botões desabilitados quando não aplicável
144
- - Amigável para leitores de tela
184
+ - Usa elementos HTML semânticos de tabela
185
+ - Suporta navegação por teclado
186
+ - TableCaption fornece contexto para leitores de tela
187
+ - TableHeader define cabeçalhos de coluna apropriados
188
+ - TruncatedCell mostra tooltip acessível com conteúdo completo
189
+ - TableResizeHandle suporta interação via teclado
190
+ - Funciona com leitores de tela
191
+
192
+ **Notas:**
193
+ - TableResizeHandle deve ser posicionado dentro de um TableHead com position: relative.
194
+ - TruncatedCell detecta automaticamente se o texto está truncado e exibe tooltip apenas quando necessário.
195
+ - Use larguras fixas (w-[Xpx]) nos TableHead para melhor controle do layout.
196
+ - TruncatedCell usa CSS text-overflow: ellipsis internamente.
197
+
198
+ > Fonte: `src/design-system/docs/components/TableDoc.tsx`
199
+
200
+ ---
201
+
202
+ ### Pagination
203
+
204
+ Componente de paginação padronizado com layout de 3 colunas, seletor de itens por página e navegação completa.
145
205
 
146
- > Fonte: `src\design-system\docs\components\PaginationDoc.tsx`
206
+ > Fonte: `src/design-system/docs/components/crud/PaginationDoc.tsx`
147
207
 
148
208
  ---
149
209
 
@@ -153,55 +213,55 @@ Construindo formulários com React Hook Form e Zod.
153
213
 
154
214
  **Uso:**
155
215
  ```tsx
156
- import { zodResolver } from "@hookform/resolvers/zod"
157
- import { useForm } from "react-hook-form"
158
- import * as z from "zod"
159
- import {
160
- Form,
161
- FormControl,
162
- FormDescription,
163
- FormField,
164
- FormItem,
165
- FormLabel,
166
- FormMessage,
167
- } from "forlogic-core"
168
-
169
- const formSchema = z.object({
170
- username: z.string().min(2).max(50),
171
- })
172
-
173
- function MyForm() {
174
- const form = useForm<z.infer<typeof formSchema>>({
175
- resolver: zodResolver(formSchema),
176
- })
177
-
178
- function onSubmit(values: z.infer<typeof formSchema>) {
179
- console.log(values)
180
- }
181
-
182
- return (
183
- <Form {...form}>
184
- <form onSubmit={form.handleSubmit(onSubmit)}>
185
- <FormField
186
- control={form.control}
187
- name="username"
188
- render={({ field }) => (
189
- <FormItem>
190
- <FormLabel>Username</FormLabel>
191
- <FormControl>
192
- <Input placeholder="shadcn" {...field} />
193
- </FormControl>
194
- <FormDescription>
195
- This is your public display name.
196
- </FormDescription>
197
- <FormMessage />
198
- </FormItem>
199
- )}
200
- />
201
- <Button type="submit">Submit</Button>
202
- </form>
203
- </Form>
204
- )
216
+ import { zodResolver } from "@hookform/resolvers/zod"
217
+ import { useForm } from "react-hook-form"
218
+ import * as z from "zod"
219
+ import {
220
+ Form,
221
+ FormControl,
222
+ FormDescription,
223
+ FormField,
224
+ FormItem,
225
+ FormLabel,
226
+ FormMessage,
227
+ } from "forlogic-core"
228
+
229
+ const formSchema = z.object({
230
+ username: z.string().min(2).max(50),
231
+ })
232
+
233
+ function MyForm() {
234
+ const form = useForm<z.infer<typeof formSchema>>({
235
+ resolver: zodResolver(formSchema),
236
+ })
237
+
238
+ function onSubmit(values: z.infer<typeof formSchema>) {
239
+ console.log(values)
240
+ }
241
+
242
+ return (
243
+ <Form {...form}>
244
+ <form onSubmit={form.handleSubmit(onSubmit)}>
245
+ <FormField
246
+ control={form.control}
247
+ name="username"
248
+ render={({ field }) => (
249
+ <FormItem>
250
+ <FormLabel>Username</FormLabel>
251
+ <FormControl>
252
+ <Input placeholder="shadcn" {...field} />
253
+ </FormControl>
254
+ <FormDescription>
255
+ This is your public display name.
256
+ </FormDescription>
257
+ <FormMessage />
258
+ </FormItem>
259
+ )}
260
+ />
261
+ <Button type="submit">Submit</Button>
262
+ </form>
263
+ </Form>
264
+ )
205
265
  }
206
266
  ```
207
267
 
@@ -220,13 +280,13 @@ function MyForm() {
220
280
 
221
281
  **Exemplos:**
222
282
  ```tsx
223
- <FormField
224
- control={form.control}
283
+ <FormField
284
+ control={form.control}
225
285
  name=
226
286
  ```
227
287
  ```tsx
228
- const formSchema = z.object({
229
- username: z.string().min(3, {
288
+ const formSchema = z.object({
289
+ username: z.string().min(3, {
230
290
  message:
231
291
  ```
232
292
 
@@ -238,6 +298,6 @@ const formSchema = z.object({
238
298
  - Usa React Hook Form para gerenciamento de estado de formulário
239
299
  - Integra com Zod para validação de schema
240
300
 
241
- > Fonte: `src\design-system\docs\components\FormDoc.tsx`
301
+ > Fonte: `src/design-system/docs/components/FormDoc.tsx`
242
302
 
243
303
  ---