forlogic-core 2.5.3 → 3.0.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 (160) hide show
  1. package/.note/memory/security/react-router-dom-v7-migration.md +33 -29
  2. package/.note/memory/security/react19-migration-roadmap.md +66 -32
  3. package/dist/action-plans/components/ActionPlanAttachmentsTab.d.ts +2 -1
  4. package/dist/action-plans/components/ActionPlanCommentsTab.d.ts +2 -1
  5. package/dist/action-plans/components/ActionPlanCostTab.d.ts +2 -1
  6. package/dist/action-plans/components/ActionPlanGeneralTab.d.ts +2 -1
  7. package/dist/action-plans/components/ActionPlanHistoryTab.d.ts +2 -1
  8. package/dist/action-plans/components/ActionPlanPage.d.ts +2 -1
  9. package/dist/action-plans/components/ActionPlanPredecessorsTab.d.ts +2 -1
  10. package/dist/action-plans/components/ActionPlanProgressDialog.d.ts +2 -1
  11. package/dist/action-plans/components/ActionPlanProgressTab.d.ts +2 -1
  12. package/dist/action-plans/components/ActionPlanStatusBadge.d.ts +2 -1
  13. package/dist/approval-flow/components/ApprovalSidenav.d.ts +2 -1
  14. package/dist/approval-flow/components/ApproveDialog.d.ts +2 -1
  15. package/dist/approval-flow/components/SelectApproverDialog.d.ts +2 -1
  16. package/dist/audit-trail/components/AuditTrailDetails.d.ts +2 -1
  17. package/dist/audit-trail/components/AuditTrailFilter.d.ts +2 -1
  18. package/dist/audit-trail/components/AuditTrailPage.d.ts +2 -1
  19. package/dist/auth/components/AliasRedirect.d.ts +1 -1
  20. package/dist/auth/components/AliasRouteGuard.d.ts +1 -1
  21. package/dist/auth/contexts/AuthContext.d.ts +1 -0
  22. package/dist/auth/pages/CallbackPage.d.ts +1 -1
  23. package/dist/components/ErrorBoundary.d.ts +1 -1
  24. package/dist/components/dashboards/dashboard-form.d.ts +1 -1
  25. package/dist/components/dashboards/dashboard-general-view.d.ts +1 -1
  26. package/dist/components/dashboards/dashboard-grid.d.ts +1 -1
  27. package/dist/components/dashboards/dashboard-list.d.ts +1 -1
  28. package/dist/components/dashboards/dashboard-view.d.ts +1 -1
  29. package/dist/components/dashboards/panels/burndown-panel.d.ts +2 -1
  30. package/dist/components/dashboards/panels/cartesian-panel.d.ts +2 -1
  31. package/dist/components/dashboards/panels/list-panel.d.ts +1 -1
  32. package/dist/components/dashboards/panels/matrix-risk-panel.d.ts +2 -1
  33. package/dist/components/dashboards/panels/numeric-panel.d.ts +2 -1
  34. package/dist/components/dashboards/panels/panel-error.d.ts +2 -1
  35. package/dist/components/dashboards/panels/panel-header.d.ts +2 -2
  36. package/dist/components/dashboards/panels/panel-loader.d.ts +2 -1
  37. package/dist/components/dashboards/panels/panel-no-data.d.ts +2 -1
  38. package/dist/components/dashboards/panels/panel-unavailable.d.ts +2 -1
  39. package/dist/components/dashboards/panels/pareto-panel.d.ts +2 -1
  40. package/dist/components/dashboards/panels/performance-panel.d.ts +2 -1
  41. package/dist/components/dashboards/panels/pie-panel.d.ts +2 -1
  42. package/dist/components/dashboards/panels/text-panel.d.ts +2 -1
  43. package/dist/components/layout/AppSidebar.d.ts +1 -1
  44. package/dist/components/layout/BodyContent.d.ts +2 -2
  45. package/dist/components/layout/SidebarActionTrigger.d.ts +1 -1
  46. package/dist/components/layout/SidebarHeader.d.ts +1 -1
  47. package/dist/components/layout/SidebarLogo.d.ts +1 -1
  48. package/dist/components/modules/AccessDeniedDialog.d.ts +1 -1
  49. package/dist/components/modules/ModuleAccessGuard.d.ts +1 -1
  50. package/dist/components/modules/ModuleGrid.d.ts +1 -1
  51. package/dist/components/modules/ModuleOfferContent.d.ts +1 -1
  52. package/dist/components/modules/ModulesContent.d.ts +1 -1
  53. package/dist/components/modules/ModulesDialog.d.ts +1 -1
  54. package/dist/components/modules/ModulesFooterCards.d.ts +1 -1
  55. package/dist/components/modules/icons/ModulesCardIcons.d.ts +4 -3
  56. package/dist/components/ui/alert-dialog.d.ts +2 -2
  57. package/dist/components/ui/breadcrumb.d.ts +2 -2
  58. package/dist/components/ui/calendar.d.ts +1 -1
  59. package/dist/components/ui/chart.d.ts +1 -1
  60. package/dist/components/ui/combo-tree.d.ts +1 -1
  61. package/dist/components/ui/combobox.d.ts +1 -1
  62. package/dist/components/ui/command.d.ts +2 -2
  63. package/dist/components/ui/context-menu.d.ts +1 -1
  64. package/dist/components/ui/data-list.d.ts +3 -3
  65. package/dist/components/ui/date-picker.d.ts +2 -1
  66. package/dist/components/ui/dialog-wizard.d.ts +1 -1
  67. package/dist/components/ui/dialog.d.ts +3 -3
  68. package/dist/components/ui/drawer.d.ts +3 -3
  69. package/dist/components/ui/dropdown-menu.d.ts +1 -1
  70. package/dist/components/ui/electronic-signature-dialog.d.ts +2 -1
  71. package/dist/components/ui/empty-state.d.ts +1 -1
  72. package/dist/components/ui/export-dialog.d.ts +1 -1
  73. package/dist/components/ui/form.d.ts +1 -1
  74. package/dist/components/ui/grid.d.ts +1 -1
  75. package/dist/components/ui/iframe-dialog.d.ts +2 -1
  76. package/dist/components/ui/loading-state.d.ts +1 -1
  77. package/dist/components/ui/menubar.d.ts +2 -2
  78. package/dist/components/ui/multiselect-permissions.d.ts +1 -1
  79. package/dist/components/ui/online-editor-dialog.d.ts +2 -1
  80. package/dist/components/ui/page-breadcrumb.d.ts +1 -1
  81. package/dist/components/ui/pagination.d.ts +5 -5
  82. package/dist/components/ui/report-request-list.d.ts +2 -1
  83. package/dist/components/ui/resizable.d.ts +3 -3
  84. package/dist/components/ui/select.d.ts +1 -1
  85. package/dist/components/ui/sheet.d.ts +3 -3
  86. package/dist/components/ui/skeleton-variants.d.ts +5 -5
  87. package/dist/components/ui/skeleton.d.ts +1 -1
  88. package/dist/components/ui/sonner.d.ts +1 -1
  89. package/dist/components/ui/spinner.d.ts +1 -1
  90. package/dist/components/ui/split-button.d.ts +2 -1
  91. package/dist/components/ui/stack.d.ts +1 -1
  92. package/dist/components/ui/status-badge.d.ts +2 -1
  93. package/dist/components/ui/step-selector.d.ts +2 -1
  94. package/dist/components/ui/stimulsoft-viewer.d.ts +2 -1
  95. package/dist/components/ui/tab-page-layout.d.ts +3 -3
  96. package/dist/components/ui/terms-of-use-dialog.d.ts +3 -2
  97. package/dist/components/ui/tooltip.d.ts +1 -1
  98. package/dist/components/ui/truncated-cell.d.ts +1 -1
  99. package/dist/components/ui/users-groups-selector.d.ts +2 -1
  100. package/dist/components/ui/viewer-dialog.d.ts +2 -1
  101. package/dist/contexts/ModalStateContext.d.ts +1 -1
  102. package/dist/contexts/ModuleContext.d.ts +2 -2
  103. package/dist/contexts/NavigationContext.d.ts +2 -2
  104. package/dist/contexts/PageMetadataContext.d.ts +1 -1
  105. package/dist/crud/components/BaseForm.d.ts +2 -1
  106. package/dist/crud/components/ColumnSettingsPopover.d.ts +2 -1
  107. package/dist/crud/components/ContextMenu.d.ts +2 -1
  108. package/dist/crud/components/CrudActionBar.d.ts +1 -1
  109. package/dist/crud/components/CrudGrid.d.ts +1 -1
  110. package/dist/crud/components/CrudPagination.d.ts +2 -1
  111. package/dist/crud/components/CrudTable.d.ts +1 -1
  112. package/dist/crud/components/FilterBar.d.ts +1 -1
  113. package/dist/crud/components/GroupDropZone.d.ts +2 -1
  114. package/dist/crud/components/TableFooter.d.ts +2 -1
  115. package/dist/crud/createCrudPage.d.ts +1 -1
  116. package/dist/crud/primitives/ActionMenu.d.ts +2 -1
  117. package/dist/crud/primitives/FilterBar.d.ts +2 -1
  118. package/dist/crud/primitives/Pagination.d.ts +2 -1
  119. package/dist/crud/primitives/Table.d.ts +2 -1
  120. package/dist/crud/primitives/TreeTable.d.ts +2 -1
  121. package/dist/custom-form-fields/components/CustomFormFields.d.ts +2 -1
  122. package/dist/custom-form-fields/fields/FormDateField.d.ts +2 -1
  123. package/dist/custom-form-fields/fields/FormMultiSelectionField.d.ts +2 -1
  124. package/dist/custom-form-fields/fields/FormNumericField.d.ts +2 -1
  125. package/dist/custom-form-fields/fields/FormQuestionsField.d.ts +2 -1
  126. package/dist/custom-form-fields/fields/FormSingleSelectionField.d.ts +2 -1
  127. package/dist/custom-form-fields/fields/FormTextField.d.ts +2 -1
  128. package/dist/custom-form-fields/fields/FormTimeField.d.ts +2 -1
  129. package/dist/custom-form-fields/fields/FormUrlField.d.ts +2 -1
  130. package/dist/custom-form-fields/fields/ReadOnlyTextField.d.ts +2 -1
  131. package/dist/documents/components/DocumentFileUpload.d.ts +1 -1
  132. package/dist/file-upload/components/SingleFileUpload.d.ts +1 -1
  133. package/dist/hooks/useSidebarResize.d.ts +1 -1
  134. package/dist/index.esm.js +1 -1
  135. package/dist/index.js +1 -1
  136. package/dist/leadership/components/LeadershipDialog.d.ts +1 -1
  137. package/dist/leadership/components/LeadershipForm.d.ts +1 -1
  138. package/dist/leadership/components/LeadershipPage.d.ts +1 -1
  139. package/dist/media/components/ImageEditor.d.ts +1 -1
  140. package/dist/media/components/ImageRenderer.d.ts +1 -1
  141. package/dist/media/components/VideoEditor.d.ts +1 -1
  142. package/dist/media/components/VideoRenderer.d.ts +1 -1
  143. package/dist/places/components/ManageAccessModal.d.ts +1 -1
  144. package/dist/places/components/PlaceCard.d.ts +1 -1
  145. package/dist/places/components/PlacesList.d.ts +1 -1
  146. package/dist/providers/CoreProviders.d.ts +2 -2
  147. package/dist/sign/components/D4SignWebhookTester.d.ts +1 -1
  148. package/dist/sign/components/D4SignWidget.d.ts +1 -1
  149. package/dist/sign/components/DocumentSigner.d.ts +1 -1
  150. package/dist/sign/components/SignConfigForm.d.ts +1 -1
  151. package/dist/sign/components/SignWidget.d.ts +1 -1
  152. package/dist/team-selector/components/TeamSelector.d.ts +2 -1
  153. package/dist/updates/components/UpdatesBar.d.ts +1 -1
  154. package/dist/updates/components/UpdatesDialog.d.ts +1 -1
  155. package/dist/updates/components/UserUpdatesViewer.d.ts +1 -1
  156. package/docs/design-system/examples.md +275 -275
  157. package/docs/design-system/navigation.md +1 -1
  158. package/docs/design-system/patterns/core-providers.md +258 -258
  159. package/docs/sql/import/validate_occurrences_categories.sql +19 -20
  160. package/package.json +10 -8
@@ -1,29 +1,33 @@
1
- ---
2
- name: react-router-dom v7 migration + peer dependency
3
- description: forlogic-core 2.5.0 bumpou react-router-dom 6→7 e moveu pra peerDependencies — consumidores precisam alinhar a própria versão antes de atualizar
4
- type: feature
5
- ---
6
-
7
- ## O que mudou (forlogic-core 2.5.0)
8
-
9
- - `react-router-dom`: `6.30.1` → `7.18.1`.
10
- - Saiu de `dependencies` e virou `peerDependencies` — o app consumidor agora é responsável por instalar a versão compatível.
11
-
12
- ## Por que isso quebra apps que não atualizarem
13
-
14
- `react-router-dom` era dependência normal mas já tratada como externa no build (`rollup.config.js#externalDeps`) — ou seja, o app sempre precisou fornecer a própria instância em runtime. O problema: sem ser peer, o npm não avisava sobre incompatibilidade de versão, só instalava as duas cópias silenciosamente. Um app ainda em v6 + lib pedindo v7 = duas instâncias de React Router no bundle = contexto de `<Router>` não bate entre os hooks da lib (`useNavigate`, `useLocation`, etc. usados em `lib/components/layout/*`, `lib/crud/*`, `lib/auth/*`) e o `<BrowserRouter>` do app.
15
-
16
- ## Checklist pra IA/dev atualizando um app consumidor
17
-
18
- 1. Checar `package.json` do app: `react-router-dom` precisa ser `^7.18.1` (ou compatível) **antes** de subir `forlogic-core` pra `>=2.5.0`.
19
- 2. Se o app usa só API declarativa (`Routes`, `Route`, `Link`, `Navigate`, `Outlet`, `useNavigate`, `useLocation`, `useParams`, `useSearchParams`, `BrowserRouter`) — migração 6→7 tende a ser troca de versão sem mudança de código.
20
- 3. Se o app usa **data router** (`createBrowserRouter`, loaders, actions, `<Form>`) — revisar changelog oficial do react-router v7, há mudanças de API nesse modo que a lib não usa e portanto não foi validado aqui.
21
- 4. Rodar `npm ls react-router-dom` no app depois do install — se aparecer mais de uma versão resolvida (não deduped), o conflito não foi resolvido.
22
-
23
- ## Risco aceito relacionado: GHSA-qwww-vcr4-c8h2 (high)
24
-
25
- react-router (core, 7.12.0–8.2.0) tem CVE alto de CSRF bypass em "RSC Mode". Fix é `react-router@8.3.0`, mas:
26
- - `react-router-dom` (pacote usado aqui) não tem release 8.x.
27
- - `react-router@8.3.0` exige React `>=19.2.7` — ver [[react19-migration-roadmap]].
28
-
29
- Não corrigido porque não exploitável no padrão de uso desta lib (sem RSC, sem actions/loaders, sem SSR — só roteamento client-side declarativo). `npm audit` vai continuar acusando "2 high" nesse pacote; é esperado até a migração pra React 19 + react-router v8 acontecer.
1
+ ---
2
+ name: react-router-dom v7 migration + peer dependency
3
+ description: forlogic-core 2.5.0 bumpou react-router-dom 6→7 e moveu pra peerDependencies — consumidores precisam alinhar a própria versão antes de atualizar
4
+ type: feature
5
+ ---
6
+
7
+ ## O que mudou (forlogic-core 2.5.0)
8
+
9
+ - `react-router-dom`: `6.30.1` → `7.18.1`.
10
+ - Saiu de `dependencies` e virou `peerDependencies` — o app consumidor agora é responsável por instalar a versão compatível.
11
+
12
+ ## Por que isso quebra apps que não atualizarem
13
+
14
+ `react-router-dom` era dependência normal mas já tratada como externa no build (`rollup.config.js#externalDeps`) — ou seja, o app sempre precisou fornecer a própria instância em runtime. O problema: sem ser peer, o npm não avisava sobre incompatibilidade de versão, só instalava as duas cópias silenciosamente. Um app ainda em v6 + lib pedindo v7 = duas instâncias de React Router no bundle = contexto de `<Router>` não bate entre os hooks da lib (`useNavigate`, `useLocation`, etc. usados em `lib/components/layout/*`, `lib/crud/*`, `lib/auth/*`) e o `<BrowserRouter>` do app.
15
+
16
+ ## Checklist pra IA/dev atualizando um app consumidor
17
+
18
+ 1. Checar `package.json` do app: `react-router-dom` precisa ser `^7.18.1` (ou compatível) **antes** de subir `forlogic-core` pra `>=2.5.0`.
19
+ 2. Se o app usa só API declarativa (`Routes`, `Route`, `Link`, `Navigate`, `Outlet`, `useNavigate`, `useLocation`, `useParams`, `useSearchParams`, `BrowserRouter`) — migração 6→7 tende a ser troca de versão sem mudança de código.
20
+ 3. Se o app usa **data router** (`createBrowserRouter`, loaders, actions, `<Form>`) — revisar changelog oficial do react-router v7, há mudanças de API nesse modo que a lib não usa e portanto não foi validado aqui.
21
+ 4. Rodar `npm ls react-router-dom` no app depois do install — se aparecer mais de uma versão resolvida (não deduped), o conflito não foi resolvido.
22
+
23
+ ## Risco aceito relacionado: GHSA-qwww-vcr4-c8h2 (high) — RESOLVIDO na 3.0.0
24
+
25
+ react-router (core, 7.12.0–8.2.0) tem CVE alto de CSRF bypass em "RSC Mode". Fix é `react-router@8.3.0`, mas na época:
26
+ - `react-router-dom` (pacote usado aqui) não tem release 8.x.
27
+ - `react-router@8.3.0` exige React `>=19.2.7` — ver [[react19-migration-roadmap]].
28
+
29
+ Foi aceito como risco porque não exploitável no padrão de uso desta lib (sem RSC, sem actions/loaders, sem SSR — só roteamento client-side declarativo).
30
+
31
+ **Corrigido em 2026-08-01 (`forlogic-core@3.0.0`):** migração pra React 19 + `react-router@8.3.0` executada. `npm audit` = 0 vulnerabilidades. Detalhes e checklist pro app consumidor em [[react19-migration-roadmap]].
32
+
33
+ > **Este documento descreve a 2.5.0 e está superado a partir da 3.0.0.** O pacote `react-router-dom` não existe mais no v8 — quem for atualizar direto de `<2.5.0` pra `^3.0.0` deve seguir o checklist do [[react19-migration-roadmap]], não o daqui.
@@ -1,32 +1,66 @@
1
- ---
2
- name: React 19 migration roadmap
3
- description: Levantamento do que falta pra migrar forlogic-core (e consumidores) pra React 19 hoje não priorizado, só documentado
4
- type: feature
5
- ---
6
-
7
- Disparado pela investigação de [[react-router-dom-v7-migration]]: `react-router@8.3.0` (fix do CVE GHSA-qwww-vcr4-c8h2) exige peer `react >=19.2.7`. Não implementado ainda — decisão foi manter React 18 + aceitar o risco documentado do CVE.
8
-
9
- ## Levantamento (2026-07-24)
10
-
11
- **Código da lib (`lib/`, `src/`) já está limpo pra React 19:**
12
- - Sem `ReactDOM.render`/`hydrate` (já usa `createRoot` desde `src/main.tsx`).
13
- - Sem `defaultProps`, sem `propTypes`, sem string refs, sem `findDOMNode`, sem legacy context (`contextTypes`/`getChildContext`).
14
- - Único class component é `lib/components/ErrorBoundary.tsx` (error boundary padrão, continua suportado no 19).
15
-
16
- **Dependências diretas suportam React 19 na versão atualmente instalada** (não precisam de bump de major):
17
- `@radix-ui/*`, `@tiptap/react@3.20.1`, `@dnd-kit/core@6.3.1`, `vaul@1.1.2`, `sonner@1.7.4`, `cmdk@1.1.1`, `react-hook-form@7.71.2`, `react-resizable-panels@3.0.6`, `recharts@3.8.0`, `react-day-picker@9.14.0`.
18
-
19
- **Bloqueio conhecido:** `next-themes@0.3.0` peer trava em `react ^16.8||^17||^18`, precisa bump (checar versão que adiciona suporte a 19 antes de migrar).
20
-
21
- **Bloqueio estrutural (fora do código):** `react` e `react-dom` estão em `dependencies` desta lib, não `peerDependencies` — mesmo problema de duplicação silenciosa que motivou mover `react-router-dom` pra peer (ver [[react-router-dom-v7-migration]]). Bump pra 19 sem resolver isso quebra qualquer app consumidor ainda em React 18, sem aviso de instalação.
22
-
23
- **Router:** migrar de `react-router-dom` (sem release 8.x) pra `react-router@8.3.0` + subpath `react-router/dom` — não é só bump de versão, é troca de pacote/imports em ~34 arquivos.
24
-
25
- ## Escopo de uma migração real (não iniciada)
26
-
27
- 1. Mover `react`/`react-dom` pra `peerDependencies` (independente do React 19, já deveria ser assim).
28
- 2. Bump `next-themes` pra versão com suporte a 19.
29
- 3. Trocar `react-router-dom` → `react-router` + `react-router/dom` em todos os imports (`lib/` e `src/`).
30
- 4. Bump `react`/`react-dom`/`@types/react`/`@types/react-dom` pra `^19`.
31
- 5. Validar visualmente todos os componentes do `/ds` (design system doc site) — mudanças de comportamento de render mesmo sem erro de compilação.
32
- 6. Coordenar com os apps consumidores (Forlogic/Qualiex) eles precisam estar prontos pra React 19 antes desse release, senão quebram no update.
1
+ ---
2
+ name: React 19 migration roadmap
3
+ description: Migração do forlogic-core para React 19 + react-router v8 — CONCLUÍDA na 3.0.0 (2026-08-01); consumidores precisam estar em React 19 antes de atualizar
4
+ type: feature
5
+ ---
6
+
7
+ **Status: concluída na `forlogic-core@3.0.0` (2026-08-01).** Levantada em 2026-07-24 a partir de
8
+ [[react-router-dom-v7-migration]], quando a decisão foi manter React 18 e aceitar o risco do
9
+ CVE GHSA-qwww-vcr4-c8h2. Executada agora porque `react-router@8.3.0` (fix do CVE) exige
10
+ peer `react >=19.2.7`.
11
+
12
+ ## O que foi feito
13
+
14
+ Os 6 passos do escopo original, todos aplicados:
15
+
16
+ 1. **`react`/`react-dom` movidos de `dependencies` `peerDependencies` (`^19.2.7`)** mesmo
17
+ problema de duplicação silenciosa que motivou mover `react-router-dom` na 2.5.0. Ficaram
18
+ também em `devDependencies` (`^19.2.8`) para o build e o vite dev do próprio app.
19
+ 2. **`next-themes` `^0.3.0` `^0.4.6`** era o bloqueio conhecido; a 0.4.6 aceita
20
+ `react ^19`.
21
+ 3. **`react-router-dom` `react-router`** em 33 imports / 31 arquivos (`lib/` + `src/`),
22
+ mais o externo em `rollup.config.js#externalDeps` e os snippets em
23
+ `docs/design-system/examples.md` e `docs/design-system/patterns/core-providers.md`.
24
+ 4. **`react`/`react-dom` `^19.2.8`, `@types/react` `^19.2.18`, `@types/react-dom` `^19.2.4`.**
25
+ 5. Build e typecheck validados (ver abaixo). **Validação visual do `/ds` continua pendente
26
+ para quem for publicar** — mudanças de comportamento de render do React 19 não aparecem
27
+ em erro de compilação.
28
+ 6. Coordenação com Forlogic/Qualiex **pendente do lado dos apps**, ver checklist abaixo.
29
+
30
+ ## Achados da execução
31
+
32
+ - **O levantamento de 2026-07-24 estava certo:** o código estava limpo pra React 19.
33
+ Único ajuste necessário no repo inteiro foi `lib/hooks/useDebounce.ts:60` —
34
+ `useRef<NodeJS.Timeout>()` → `useRef<NodeJS.Timeout | undefined>(undefined)`, porque os
35
+ types do React 19 passaram a exigir argumento inicial em `useRef`.
36
+ - **`react-router/dom` não foi necessário.** O guia de upgrade do v8 destaca o subpath, mas
37
+ ele só serve pra `RouterProvider` (framework mode). Todas as APIs usadas aqui
38
+ (`BrowserRouter`, `Routes`, `Route`, `Link`, `Navigate`, `Outlet`, `useNavigate`,
39
+ `useLocation`, `useParams`, `useSearchParams`) continuam no entry point raiz. Verificado
40
+ direto nos `.d.ts` do pacote, não no guia.
41
+ - **As outras breaking changes do v8 não se aplicam:** `data` → `loaderData` só afeta
42
+ `meta()`/`useMatches()`, e `cloudflareDevProxy` só framework mode — nada disso é usado.
43
+ - **Requisitos de ambiente do v8:** `node@22.22+` e `vite@7+`. O repo já atendia (node
44
+ v24.16.0, vite 7.3.0).
45
+ - **`npm audit` = 0 vulnerabilidades** (antes: 2 high). Lint segue em 556 problems /
46
+ 492 errors, idêntico ao baseline pré-migração — ruído pré-existente de
47
+ `no-explicit-any`, nada relacionado.
48
+
49
+ ## Armadilha do build (não relacionada ao React 19, mas morde aqui)
50
+
51
+ `npm run build` (vite, `outDir` default = `dist`) e `npm run build:lib` (rollup) escrevem no
52
+ **mesmo `dist/`**, e o vite limpa o diretório antes de escrever. Rodar `npm run build`
53
+ depois de `npm run build:lib` **sobrescreve o artefato publicável com o bundle do app**.
54
+ Sempre rodar `build:lib` por último antes de publicar (idealmente `rm -rf dist` antes).
55
+
56
+ ## Checklist pro app consumidor (Forlogic/Qualiex)
57
+
58
+ 1. Subir o app pra `react`/`react-dom` `>=19.2.7` **antes** de subir `forlogic-core` pra `^3.0.0`.
59
+ 2. Trocar `react-router-dom` por `react-router@^8.3.0` no `package.json` do app e reescrever
60
+ os imports (`from 'react-router-dom'` → `from 'react-router'`).
61
+ 3. Se o app usa `RouterProvider`/`createBrowserRouter`, importar de `react-router/dom` — a lib
62
+ não exercita esse caminho, então não foi validado aqui.
63
+ 4. Se o app usa `meta()` ou `useMatches()`, aplicar `data` → `loaderData`.
64
+ 5. `node@22.22+` e `vite@7+` no ambiente de build do app.
65
+ 6. Rodar `npm ls react react-dom react-router` depois do install — mais de uma versão
66
+ resolvida (não deduped) significa que o conflito não foi resolvido.
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { ActionPlanAttachment } from '../types';
2
3
  interface ActionPlanAttachmentsTabProps {
3
4
  attachments?: ActionPlanAttachment[];
@@ -17,5 +18,5 @@ interface ActionPlanAttachmentsTabProps {
17
18
  * @example
18
19
  * ActionPlanAttachmentsTab();
19
20
  */
20
- export declare function ActionPlanAttachmentsTab({ attachments, onUpload, onDelete, onRename, onDownload, onView, disabled, }: ActionPlanAttachmentsTabProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function ActionPlanAttachmentsTab({ attachments, onUpload, onDelete, onRename, onDownload, onView, disabled, }: ActionPlanAttachmentsTabProps): React.JSX.Element;
21
22
  export {};
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { ActionPlanComment } from '../types';
2
3
  interface ActionPlanCommentsTabProps {
3
4
  comments?: ActionPlanComment[];
@@ -17,5 +18,5 @@ interface ActionPlanCommentsTabProps {
17
18
  * @example
18
19
  * ActionPlanCommentsTab();
19
20
  */
20
- export declare function ActionPlanCommentsTab({ comments, currentUserId, onAdd, onEdit, onDelete, disabled, maxLength, }: ActionPlanCommentsTabProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function ActionPlanCommentsTab({ comments, currentUserId, onAdd, onEdit, onDelete, disabled, maxLength, }: ActionPlanCommentsTabProps): React.JSX.Element;
21
22
  export {};
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { ActionPlanCost } from '../types';
2
3
  interface ActionPlanCostTabProps {
3
4
  costs?: ActionPlanCost[];
@@ -11,5 +12,5 @@ interface ActionPlanCostTabProps {
11
12
  * @example
12
13
  * ActionPlanCostTab();
13
14
  */
14
- export declare function ActionPlanCostTab({ costs, onAdd, onEdit, onDelete, disabled, }: ActionPlanCostTabProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function ActionPlanCostTab({ costs, onAdd, onEdit, onDelete, disabled, }: ActionPlanCostTabProps): React.JSX.Element;
15
16
  export {};
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { ActionPlan, ActionPlanPageProps } from '../types';
2
3
  interface ActionPlanGeneralTabProps {
3
4
  formData: Partial<ActionPlan>;
@@ -17,5 +18,5 @@ interface ActionPlanGeneralTabProps {
17
18
  * @example
18
19
  * ActionPlanGeneralTab();
19
20
  */
20
- export declare function ActionPlanGeneralTab({ formData, updateField, disabled, users, places, actionTypes, causes, parentActions, config, }: ActionPlanGeneralTabProps): import("react/jsx-runtime").JSX.Element;
21
+ export declare function ActionPlanGeneralTab({ formData, updateField, disabled, users, places, actionTypes, causes, parentActions, config, }: ActionPlanGeneralTabProps): React.JSX.Element;
21
22
  export {};
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { ActionPlanHistoryItem } from '../types';
2
3
  interface ActionPlanHistoryTabProps {
3
4
  history?: ActionPlanHistoryItem[];
@@ -12,5 +13,5 @@ interface ActionPlanHistoryTabProps {
12
13
  * @example
13
14
  * ActionPlanHistoryTab();
14
15
  */
15
- export declare function ActionPlanHistoryTab({ history, isLoading, }: ActionPlanHistoryTabProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function ActionPlanHistoryTab({ history, isLoading, }: ActionPlanHistoryTabProps): React.JSX.Element;
16
17
  export {};
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { ActionPlanPageProps } from '../types';
2
3
  /**
3
4
  * ActionPlanPage — Componente orquestrador de página full para planos de ação
@@ -22,4 +23,4 @@ import type { ActionPlanPageProps } from '../types';
22
23
  * />
23
24
  * ```
24
25
  */
25
- export declare function ActionPlanPage(props: ActionPlanPageProps): import("react/jsx-runtime").JSX.Element;
26
+ export declare function ActionPlanPage(props: ActionPlanPageProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { ActionPlanPredecessor, ActionPlanOption } from '../types';
2
3
  interface ActionPlanPredecessorsTabProps {
3
4
  predecessors?: ActionPlanPredecessor[];
@@ -11,5 +12,5 @@ interface ActionPlanPredecessorsTabProps {
11
12
  * @example
12
13
  * ActionPlanPredecessorsTab();
13
14
  */
14
- export declare function ActionPlanPredecessorsTab({ predecessors, availablePredecessors, onAdd, onRemove, disabled, }: ActionPlanPredecessorsTabProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function ActionPlanPredecessorsTab({ predecessors, availablePredecessors, onAdd, onRemove, disabled, }: ActionPlanPredecessorsTabProps): React.JSX.Element;
15
16
  export {};
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { ActionPlanReport } from '../types';
2
3
  interface ActionPlanProgressDialogProps {
3
4
  open: boolean;
@@ -12,5 +13,5 @@ interface ActionPlanProgressDialogProps {
12
13
  * @example
13
14
  * ActionPlanProgressDialog();
14
15
  */
15
- export declare function ActionPlanProgressDialog({ open, onOpenChange, report, onSave, isSubmitting, }: ActionPlanProgressDialogProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function ActionPlanProgressDialog({ open, onOpenChange, report, onSave, isSubmitting, }: ActionPlanProgressDialogProps): React.JSX.Element;
16
17
  export {};
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { ActionPlanPageProps } from '../types';
2
3
  interface ActionPlanProgressTabProps extends ActionPlanPageProps {
3
4
  }
@@ -6,5 +7,5 @@ interface ActionPlanProgressTabProps extends ActionPlanPageProps {
6
7
  * @example
7
8
  * ActionPlanProgressTab();
8
9
  */
9
- export declare function ActionPlanProgressTab(props: ActionPlanProgressTabProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function ActionPlanProgressTab(props: ActionPlanProgressTabProps): React.JSX.Element;
10
11
  export {};
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { ETaskPlanStatus } from '../types';
2
3
  interface ActionPlanStatusBadgeProps {
3
4
  status: ETaskPlanStatus;
@@ -14,5 +15,5 @@ interface ActionPlanStatusBadgeProps {
14
15
  * @example
15
16
  * ActionPlanStatusBadge();
16
17
  */
17
- export declare function ActionPlanStatusBadge({ status, labels, className, size, showIcon, variant, }: ActionPlanStatusBadgeProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare function ActionPlanStatusBadge({ status, labels, className, size, showIcon, variant, }: ActionPlanStatusBadgeProps): React.JSX.Element;
18
19
  export {};
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { ApprovalSidenavConfig, ApproveDialogResult, ApproverOption } from '../types';
2
3
  interface ApprovalSidenavProps {
3
4
  config: ApprovalSidenavConfig;
@@ -12,5 +13,5 @@ interface ApprovalSidenavProps {
12
13
  availableApprovers?: ApproverOption[];
13
14
  isLoadingApprovers?: boolean;
14
15
  }
15
- export declare function ApprovalSidenav({ config, isLoading, onClose, onApprove, onDefineApprover, onRefreshSteps, availableApprovers, isLoadingApprovers, }: ApprovalSidenavProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function ApprovalSidenav({ config, isLoading, onClose, onApprove, onDefineApprover, onRefreshSteps, availableApprovers, isLoadingApprovers, }: ApprovalSidenavProps): React.JSX.Element;
16
17
  export {};
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { ApprovalReturnStepOption, ApproveDialogResult } from '../types';
2
3
  interface ApproveDialogProps {
3
4
  open: boolean;
@@ -9,5 +10,5 @@ interface ApproveDialogProps {
9
10
  setDefaultApproverOnInit?: boolean;
10
11
  onSubmit: (result: ApproveDialogResult) => void;
11
12
  }
12
- export declare function ApproveDialog({ open, onOpenChange, returnSteps, initialObservation, title, descriptions, setDefaultApproverOnInit, onSubmit, }: ApproveDialogProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function ApproveDialog({ open, onOpenChange, returnSteps, initialObservation, title, descriptions, setDefaultApproverOnInit, onSubmit, }: ApproveDialogProps): React.JSX.Element;
13
14
  export {};
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { ApproverOption } from '../types';
2
3
  interface SelectApproverDialogProps {
3
4
  open: boolean;
@@ -7,5 +8,5 @@ interface SelectApproverDialogProps {
7
8
  ignoreUserIds?: string[];
8
9
  onSubmit: (approver: ApproverOption) => void;
9
10
  }
10
- export declare function SelectApproverDialog({ open, onOpenChange, approvers, isLoading, ignoreUserIds, onSubmit, }: SelectApproverDialogProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function SelectApproverDialog({ open, onOpenChange, approvers, isLoading, ignoreUserIds, onSubmit, }: SelectApproverDialogProps): React.JSX.Element;
11
12
  export {};
@@ -3,6 +3,7 @@
3
3
  * Drawer/panel showing detail rows for a selected audit trail entry
4
4
  * Ported from flc-audit-trail-details (v2) and qex-audit-trail-readable-details (v1)
5
5
  */
6
+ import React from 'react';
6
7
  import type { AuditTrailDetails as AuditTrailDetailsType } from '../types';
7
8
  import type { AuditTrailLabels } from '../utils';
8
9
  /**
@@ -24,4 +25,4 @@ export interface AuditTrailDetailsProps {
24
25
  * @example
25
26
  * AuditTrailDetails();
26
27
  */
27
- export declare function AuditTrailDetails({ documentId, onFetchDetails, onClose, labels, translateProperty, translatePropertyValue, formatDate, }: AuditTrailDetailsProps): import("react/jsx-runtime").JSX.Element;
28
+ export declare function AuditTrailDetails({ documentId, onFetchDetails, onClose, labels, translateProperty, translatePropertyValue, formatDate, }: AuditTrailDetailsProps): React.JSX.Element;
@@ -3,6 +3,7 @@
3
3
  * Horizontal filter bar for the audit trail page
4
4
  * Ported from flc-audit-trail-filter (v2) and qex-audit-trail-readable-filter (v1)
5
5
  */
6
+ import React from 'react';
6
7
  import type { AuditTrailEvent, AuditTrailQueryParams, AuditTrailSoftware, AuditTrailUserOption, AuditTrailPermissions } from '../types';
7
8
  /**
8
9
  * Tipo `AuditTrailFilterProps` exportado pela lib.
@@ -26,4 +27,4 @@ export interface AuditTrailFilterProps {
26
27
  * @example
27
28
  * AuditTrailFilter();
28
29
  */
29
- export declare function AuditTrailFilter({ queryParams, events, softwares, users, permissions, isLoading, onFilter, onReset, onExport, onSoftwareChange, }: AuditTrailFilterProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare function AuditTrailFilter({ queryParams, events, softwares, users, permissions, isLoading, onFilter, onReset, onExport, onSoftwareChange, }: AuditTrailFilterProps): React.JSX.Element;
@@ -3,6 +3,7 @@
3
3
  * Full audit trail page with grid, filters, and details drawer
4
4
  * Ported from flc-audit-trail-list (v2) and qex-audit-trail-readable-list (v1)
5
5
  */
6
+ import React from 'react';
6
7
  import type { AuditTrailCallbacks, AuditTrailPermissions, AuditTrailSoftware } from '../types';
7
8
  import type { AuditTrailLabels } from '../utils';
8
9
  /**
@@ -37,4 +38,4 @@ export interface AuditTrailPageProps {
37
38
  * @example
38
39
  * AuditTrailPage();
39
40
  */
40
- export declare function AuditTrailPage({ title, softwares, softwareId: initialSoftwareId, permissions, callbacks, limit, currentUserId, labels, formatDate, anonymousLabel, }: AuditTrailPageProps): import("react/jsx-runtime").JSX.Element;
41
+ export declare function AuditTrailPage({ title, softwares, softwareId: initialSoftwareId, permissions, callbacks, limit, currentUserId, labels, formatDate, anonymousLabel, }: AuditTrailPageProps): React.JSX.Element;
@@ -10,4 +10,4 @@
10
10
  * <Route path="/*" element={<AliasRedirect />} />
11
11
  * ```
12
12
  */
13
- export declare function AliasRedirect(): import("react/jsx-runtime").JSX.Element;
13
+ export declare function AliasRedirect(): import("react").JSX.Element;
@@ -17,4 +17,4 @@ export interface AliasRouteGuardProps {
17
17
  * - Alias válido e diferente do ativo → switchUnit(matchedCompany)
18
18
  * - Alias correto → renderiza children
19
19
  */
20
- export declare function AliasRouteGuard({ children, paramName }: AliasRouteGuardProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare function AliasRouteGuard({ children, paramName }: AliasRouteGuardProps): React.JSX.Element;
@@ -17,6 +17,7 @@ interface AuthContextType extends AuthState {
17
17
  */
18
18
  export declare const AuthProvider: React.FC<{
19
19
  children: React.ReactNode;
20
+ moduleAlias?: string;
20
21
  }>;
21
22
  /**
22
23
  * Hook para acessar informações de autenticação e gerenciar sessão
@@ -3,4 +3,4 @@
3
3
  * @example
4
4
  * <CallbackPage />
5
5
  */
6
- export declare const CallbackPage: () => import("react/jsx-runtime").JSX.Element;
6
+ export declare const CallbackPage: () => import("react").JSX.Element;
@@ -14,6 +14,6 @@ export declare class ErrorBoundary extends Component<Props, State> {
14
14
  static getDerivedStateFromError(error: Error): Partial<State>;
15
15
  componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
16
16
  copyErrorDetails: () => void;
17
- render(): string | number | boolean | Iterable<React.ReactNode> | import("react/jsx-runtime").JSX.Element;
17
+ render(): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode>> | React.JSX.Element;
18
18
  }
19
19
  export default ErrorBoundary;
@@ -62,4 +62,4 @@ export interface DashboardFormProps {
62
62
  * @example
63
63
  * DashboardForm();
64
64
  */
65
- export declare function DashboardForm({ dashboard, initialTab, isSaving, isQualitfy, users, groups, places, collaborators, onSave, onCancel, className, }: DashboardFormProps): import("react/jsx-runtime").JSX.Element;
65
+ export declare function DashboardForm({ dashboard, initialTab, isSaving, isQualitfy, users, groups, places, collaborators, onSave, onCancel, className, }: DashboardFormProps): import("react").JSX.Element;
@@ -121,4 +121,4 @@ export interface DashboardGeneralViewProps {
121
121
  * @example
122
122
  * DashboardGeneralView();
123
123
  */
124
- export declare function DashboardGeneralView({ dashboards, limit, generalView, language, isLoading, canAdd, canEdit, canRemove, canEditStandard, activePanels, activePages, getPanelData, users, groups, places, collaborators, isSaving, onOpen, onBackToList, onRefresh, onRefreshList, onToggleFavorite, onSave, onUpdate, onRemove, onDuplicate, onShare, onAddPanel, onEditPanel, onRemovePanel, onDuplicatePanel, onLayoutChange, onSearch, onQuickFilterChange, onSetGeneralView, viewState: controlledViewState, onViewStateChange, listToolbarExtra, viewToolbarActions, className, }: DashboardGeneralViewProps): import("react/jsx-runtime").JSX.Element;
124
+ export declare function DashboardGeneralView({ dashboards, limit, generalView, language, isLoading, canAdd, canEdit, canRemove, canEditStandard, activePanels, activePages, getPanelData, users, groups, places, collaborators, isSaving, onOpen, onBackToList, onRefresh, onRefreshList, onToggleFavorite, onSave, onUpdate, onRemove, onDuplicate, onShare, onAddPanel, onEditPanel, onRemovePanel, onDuplicatePanel, onLayoutChange, onSearch, onQuickFilterChange, onSetGeneralView, viewState: controlledViewState, onViewStateChange, listToolbarExtra, viewToolbarActions, className, }: DashboardGeneralViewProps): import("react").JSX.Element;
@@ -63,4 +63,4 @@ export declare function getMinPanelSize(panelType: DashboardPanelType): {
63
63
  * @example
64
64
  * DashboardGrid();
65
65
  */
66
- export declare function DashboardGrid({ panels, columns, cellHeight, cellGap, allowDragging, showGridLines, renderPanel, onLayoutChange, className, }: DashboardGridProps): import("react/jsx-runtime").JSX.Element;
66
+ export declare function DashboardGrid({ panels, columns, cellHeight, cellGap, allowDragging, showGridLines, renderPanel, onLayoutChange, className, }: DashboardGridProps): import("react").JSX.Element;
@@ -38,4 +38,4 @@ export interface DashboardListProps {
38
38
  * @example
39
39
  * DashboardList();
40
40
  */
41
- export declare function DashboardList({ dashboards, limit, isLoading, language, canAdd, canEdit, canRemove, onOpen, onEdit, onShare, onDuplicate, onRemove, onAdd, onToggleFavorite, onRefresh, onSearch, onQuickFilterChange, toolbarExtra, className, }: DashboardListProps): import("react/jsx-runtime").JSX.Element;
41
+ export declare function DashboardList({ dashboards, limit, isLoading, language, canAdd, canEdit, canRemove, onOpen, onEdit, onShare, onDuplicate, onRemove, onAdd, onToggleFavorite, onRefresh, onSearch, onQuickFilterChange, toolbarExtra, className, }: DashboardListProps): import("react").JSX.Element;
@@ -45,4 +45,4 @@ export interface DashboardViewProps {
45
45
  * @example
46
46
  * DashboardView();
47
47
  */
48
- export declare function DashboardView({ dashboard, panels, pages, activePageId, canEdit, isFullscreen, isLoading, getPanelData, onRefresh, onToggleFullscreen, onToggleFavorite, onEdit, onShare, onAddPanel, onEditPanel, onRemovePanel, onDuplicatePanel, onLayoutChange, onPageChange, toolbarActions, className, }: DashboardViewProps): import("react/jsx-runtime").JSX.Element;
48
+ export declare function DashboardView({ dashboard, panels, pages, activePageId, canEdit, isFullscreen, isLoading, getPanelData, onRefresh, onToggleFullscreen, onToggleFavorite, onEdit, onShare, onAddPanel, onEditPanel, onRemovePanel, onDuplicatePanel, onLayoutChange, onPageChange, toolbarActions, className, }: DashboardViewProps): import("react").JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { type PanelHeaderProps } from './panel-header';
2
3
  import { PanelState, type PanelConfig } from '../types';
3
4
  /**
@@ -38,4 +39,4 @@ export interface BurndownPanelProps {
38
39
  * @example
39
40
  * BurndownPanel();
40
41
  */
41
- export declare function BurndownPanel({ config, state, data, executedLabel, plannedLabel, executedColor, plannedColor, viewOnly, onRefresh, queryUrl, queryUrlBuilder, className, }: BurndownPanelProps): import("react/jsx-runtime").JSX.Element;
42
+ export declare function BurndownPanel({ config, state, data, executedLabel, plannedLabel, executedColor, plannedColor, viewOnly, onRefresh, queryUrl, queryUrlBuilder, className, }: BurndownPanelProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { type PanelHeaderProps } from './panel-header';
2
3
  import { PanelState, type PanelConfig } from '../types';
3
4
  /**
@@ -63,4 +64,4 @@ export interface CartesianPanelProps {
63
64
  * @example
64
65
  * CartesianPanel();
65
66
  */
66
- export declare function CartesianPanel({ config, variant, state, data, series: seriesProp, colors: colorsProp, categoryKey, yAxisFormat, viewOnly, onPointClick, onRefresh, onExport, queryUrl, queryUrlBuilder, className, }: CartesianPanelProps): import("react/jsx-runtime").JSX.Element;
67
+ export declare function CartesianPanel({ config, variant, state, data, series: seriesProp, colors: colorsProp, categoryKey, yAxisFormat, viewOnly, onPointClick, onRefresh, onExport, queryUrl, queryUrlBuilder, className, }: CartesianPanelProps): React.JSX.Element;
@@ -42,4 +42,4 @@ export interface ListPanelProps {
42
42
  * @example
43
43
  * ListPanel();
44
44
  */
45
- export declare function ListPanel({ config, state, data, columns, viewOnly, onRowClick, onRefresh, onExport, queryUrl, queryUrlBuilder, enableRowLinks, className, }: ListPanelProps): import("react/jsx-runtime").JSX.Element;
45
+ export declare function ListPanel({ config, state, data, columns, viewOnly, onRowClick, onRefresh, onExport, queryUrl, queryUrlBuilder, enableRowLinks, className, }: ListPanelProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { type PanelHeaderProps } from './panel-header';
2
3
  import { PanelState, MatrixViewType, type PanelConfig } from '../types';
3
4
  /**
@@ -71,4 +72,4 @@ export interface MatrixRiskPanelProps {
71
72
  * @example
72
73
  * MatrixRiskPanel();
73
74
  */
74
- export declare function MatrixRiskPanel({ config, state, rule, risks, matrixViewType, viewOnly, onCellClick, onRiskClick, onRefresh, queryUrl, queryUrlBuilder, className, }: MatrixRiskPanelProps): import("react/jsx-runtime").JSX.Element;
75
+ export declare function MatrixRiskPanel({ config, state, rule, risks, matrixViewType, viewOnly, onCellClick, onRiskClick, onRefresh, queryUrl, queryUrlBuilder, className, }: MatrixRiskPanelProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { type PanelHeaderProps } from './panel-header';
2
3
  import { PanelState, type PanelConfig } from '../types';
3
4
  /**
@@ -29,4 +30,4 @@ export interface NumericPanelProps {
29
30
  * @example
30
31
  * NumericPanel();
31
32
  */
32
- export declare function NumericPanel({ config, state, value, label, viewOnly, onClick, onRefresh, queryUrl, queryUrlBuilder, className, }: NumericPanelProps): import("react/jsx-runtime").JSX.Element;
33
+ export declare function NumericPanel({ config, state, value, label, viewOnly, onClick, onRefresh, queryUrl, queryUrlBuilder, className, }: NumericPanelProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import type { PanelConfig } from '../types';
2
3
  /**
3
4
  * Tipo `PanelErrorProps` exportado pela lib.
@@ -15,4 +16,4 @@ export interface PanelErrorProps {
15
16
  * @example
16
17
  * PanelError();
17
18
  */
18
- export declare function PanelError({ config, queryUrl, className }: PanelErrorProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function PanelError({ config, queryUrl, className }: PanelErrorProps): React.JSX.Element;
@@ -1,4 +1,4 @@
1
- import { type ReactNode } from 'react';
1
+ import React, { type ReactNode } from 'react';
2
2
  import { type PanelConfig } from '../types';
3
3
  /**
4
4
  * Tipo `PanelHeaderProps` exportado pela lib.
@@ -24,4 +24,4 @@ export interface PanelHeaderProps {
24
24
  * @example
25
25
  * PanelHeader();
26
26
  */
27
- export declare function PanelHeader({ config, viewOnly, complement, complementPosition, queryUrlBuilder, onRefresh, onExport, onToggleOnlyMine, className, }: PanelHeaderProps): import("react/jsx-runtime").JSX.Element;
27
+ export declare function PanelHeader({ config, viewOnly, complement, complementPosition, queryUrlBuilder, onRefresh, onExport, onToggleOnlyMine, className, }: PanelHeaderProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { DashboardPanelType } from '../types';
2
3
  /**
3
4
  * Tipo `PanelLoaderProps` exportado pela lib.
@@ -14,4 +15,4 @@ export interface PanelLoaderProps {
14
15
  * @example
15
16
  * PanelLoader();
16
17
  */
17
- export declare function PanelLoader({ panelType, className }: PanelLoaderProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare function PanelLoader({ panelType, className }: PanelLoaderProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  /**
2
3
  * Tipo `PanelNoDataProps` exportado pela lib.
3
4
  * @example
@@ -13,4 +14,4 @@ export interface PanelNoDataProps {
13
14
  * @example
14
15
  * PanelNoData();
15
16
  */
16
- export declare function PanelNoData({ hasRemovedColumn, className }: PanelNoDataProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function PanelNoData({ hasRemovedColumn, className }: PanelNoDataProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  /**
2
3
  * Tipo `PanelUnavailableProps` exportado pela lib.
3
4
  * @example
@@ -13,4 +14,4 @@ export interface PanelUnavailableProps {
13
14
  * @example
14
15
  * PanelUnavailable();
15
16
  */
16
- export declare function PanelUnavailable({ onRemove, className }: PanelUnavailableProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function PanelUnavailable({ onRemove, className }: PanelUnavailableProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { type PanelHeaderProps } from './panel-header';
2
3
  import { PanelState, type PanelConfig, type PanelResult } from '../types';
3
4
  /**
@@ -27,4 +28,4 @@ export interface ParetoPanelProps {
27
28
  * @example
28
29
  * ParetoPanel();
29
30
  */
30
- export declare function ParetoPanel({ config, state, data, barColor, lineColor, viewOnly, onPointClick, onRefresh, onExport, queryUrl, queryUrlBuilder, className, }: ParetoPanelProps): import("react/jsx-runtime").JSX.Element;
31
+ export declare function ParetoPanel({ config, state, data, barColor, lineColor, viewOnly, onPointClick, onRefresh, onExport, queryUrl, queryUrlBuilder, className, }: ParetoPanelProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { type PanelHeaderProps } from './panel-header';
2
3
  import { PanelState, type PanelConfig } from '../types';
3
4
  /**
@@ -36,4 +37,4 @@ export interface PerformancePanelProps {
36
37
  * @example
37
38
  * PerformancePanel();
38
39
  */
39
- export declare function PerformancePanel({ config, state, data, executedLabel, plannedLabel, executedColor, plannedColor, viewOnly, onPointClick, onRefresh, queryUrl, queryUrlBuilder, className, }: PerformancePanelProps): import("react/jsx-runtime").JSX.Element;
40
+ export declare function PerformancePanel({ config, state, data, executedLabel, plannedLabel, executedColor, plannedColor, viewOnly, onPointClick, onRefresh, queryUrl, queryUrlBuilder, className, }: PerformancePanelProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { type PanelHeaderProps } from './panel-header';
2
3
  import { PanelState, type PanelConfig, type PanelResult } from '../types';
3
4
  /**
@@ -26,4 +27,4 @@ export interface PiePanelProps {
26
27
  * @example
27
28
  * PiePanel();
28
29
  */
29
- export declare function PiePanel({ config, state, data, colors: colorsProp, viewOnly, onSliceClick, onRefresh, onExport, queryUrl, queryUrlBuilder, className, }: PiePanelProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare function PiePanel({ config, state, data, colors: colorsProp, viewOnly, onSliceClick, onRefresh, onExport, queryUrl, queryUrlBuilder, className, }: PiePanelProps): React.JSX.Element;