forlogic-core 1.20.0 → 2.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 (218) hide show
  1. package/.note/memory/patterns/alias-url-resolution.md +5 -2
  2. package/.note/memory/patterns/single-scroll-pattern.md +30 -12
  3. package/dist/action-plans/components/ActionPlanAttachmentsTab.d.ts +18 -0
  4. package/dist/action-plans/components/ActionPlanCommentsTab.d.ts +18 -0
  5. package/dist/action-plans/components/ActionPlanCostTab.d.ts +10 -0
  6. package/dist/action-plans/components/ActionPlanGeneralTab.d.ts +18 -0
  7. package/dist/action-plans/components/ActionPlanHistoryTab.d.ts +13 -0
  8. package/dist/action-plans/components/ActionPlanPage.d.ts +25 -0
  9. package/dist/action-plans/components/ActionPlanPredecessorsTab.d.ts +10 -0
  10. package/dist/action-plans/components/ActionPlanProgressDialog.d.ts +13 -0
  11. package/dist/action-plans/components/ActionPlanProgressTab.d.ts +5 -0
  12. package/dist/action-plans/components/ActionPlanStatusBadge.d.ts +11 -0
  13. package/dist/action-plans/constants.d.ts +42 -0
  14. package/dist/action-plans/hooks/useActionPlan.d.ts +14 -0
  15. package/dist/action-plans/hooks/useActionPlanProgress.d.ts +15 -0
  16. package/dist/action-plans/index.d.ts +15 -0
  17. package/dist/action-plans/types.d.ts +353 -0
  18. package/dist/action-plans/utils/formatTime.d.ts +15 -0
  19. package/dist/approval-flow/components/ApprovalSidenav.d.ts +16 -0
  20. package/dist/approval-flow/components/ApproveDialog.d.ts +13 -0
  21. package/dist/approval-flow/components/SelectApproverDialog.d.ts +11 -0
  22. package/dist/approval-flow/index.d.ts +4 -0
  23. package/dist/approval-flow/types.d.ts +76 -0
  24. package/dist/assets/index.d.ts +1 -0
  25. package/dist/audit-trail/components/AuditTrailDetails.d.ts +17 -0
  26. package/dist/audit-trail/components/AuditTrailFilter.d.ts +19 -0
  27. package/dist/audit-trail/components/AuditTrailPage.d.ts +30 -0
  28. package/dist/audit-trail/index.d.ts +9 -0
  29. package/dist/audit-trail/types.d.ts +151 -0
  30. package/dist/audit-trail/utils.d.ts +38 -0
  31. package/dist/components/dashboards/dashboard-form.d.ts +50 -0
  32. package/dist/components/dashboards/dashboard-general-view.d.ts +109 -0
  33. package/dist/components/dashboards/dashboard-grid.d.ts +41 -0
  34. package/dist/components/dashboards/dashboard-list.d.ts +31 -0
  35. package/dist/components/dashboards/dashboard-panel-renderer.d.ts +21 -0
  36. package/dist/components/dashboards/dashboard-view.d.ts +38 -0
  37. package/dist/components/dashboards/helpers.d.ts +47 -0
  38. package/dist/components/dashboards/index.d.ts +9 -0
  39. package/dist/components/dashboards/panels/burndown-panel.d.ts +26 -0
  40. package/dist/components/dashboards/panels/cartesian-panel.d.ts +46 -0
  41. package/dist/components/dashboards/panels/index.d.ts +14 -0
  42. package/dist/components/dashboards/panels/list-panel.d.ts +30 -0
  43. package/dist/components/dashboards/panels/matrix-risk-panel.d.ts +49 -0
  44. package/dist/components/dashboards/panels/numeric-panel.d.ts +22 -0
  45. package/dist/components/dashboards/panels/panel-error.d.ts +8 -0
  46. package/dist/components/dashboards/panels/panel-header.d.ts +17 -0
  47. package/dist/components/dashboards/panels/panel-loader.d.ts +7 -0
  48. package/dist/components/dashboards/panels/panel-no-data.d.ts +6 -0
  49. package/dist/components/dashboards/panels/panel-unavailable.d.ts +6 -0
  50. package/dist/components/dashboards/panels/pareto-panel.d.ts +20 -0
  51. package/dist/components/dashboards/panels/performance-panel.d.ts +24 -0
  52. package/dist/components/dashboards/panels/pie-panel.d.ts +19 -0
  53. package/dist/components/dashboards/panels/text-panel.d.ts +18 -0
  54. package/dist/components/dashboards/types.d.ts +525 -0
  55. package/dist/components/ui/electronic-signature-dialog.d.ts +21 -0
  56. package/dist/components/ui/export-dialog.d.ts +28 -0
  57. package/dist/components/ui/iframe-dialog.d.ts +14 -0
  58. package/dist/components/ui/multiselect-permissions.d.ts +59 -0
  59. package/dist/components/ui/online-editor-dialog.d.ts +18 -0
  60. package/dist/components/ui/report-request-list.d.ts +44 -0
  61. package/dist/components/ui/stimulsoft-viewer.d.ts +20 -0
  62. package/dist/components/ui/terms-of-use-dialog.d.ts +56 -0
  63. package/dist/components/ui/timepicker.d.ts +11 -0
  64. package/dist/components/ui/users-groups-selector.d.ts +44 -0
  65. package/dist/components/ui/viewer-dialog.d.ts +77 -0
  66. package/dist/custom-form-fields/components/CustomFormFields.d.ts +8 -0
  67. package/dist/custom-form-fields/fields/FormDateField.d.ts +6 -0
  68. package/dist/custom-form-fields/fields/FormMultiSelectionField.d.ts +6 -0
  69. package/dist/custom-form-fields/fields/FormNumericField.d.ts +6 -0
  70. package/dist/custom-form-fields/fields/FormQuestionsField.d.ts +6 -0
  71. package/dist/custom-form-fields/fields/FormSingleSelectionField.d.ts +6 -0
  72. package/dist/custom-form-fields/fields/FormTextField.d.ts +6 -0
  73. package/dist/custom-form-fields/fields/FormTimeField.d.ts +6 -0
  74. package/dist/custom-form-fields/fields/FormUrlField.d.ts +6 -0
  75. package/dist/custom-form-fields/fields/ReadOnlyTextField.d.ts +6 -0
  76. package/dist/custom-form-fields/index.d.ts +13 -0
  77. package/dist/custom-form-fields/types.d.ts +143 -0
  78. package/dist/exports/action-plans.d.ts +16 -0
  79. package/dist/exports/audit-trail.d.ts +1 -0
  80. package/dist/exports/custom-form-fields.d.ts +1 -0
  81. package/dist/exports/file-upload.d.ts +1 -0
  82. package/dist/exports/ui.d.ts +12 -0
  83. package/dist/file-upload/components/SingleFileUpload.d.ts +43 -0
  84. package/dist/file-upload/index.d.ts +6 -0
  85. package/dist/file-upload/types.d.ts +11 -0
  86. package/dist/file-upload/utils/formatBytes.d.ts +1 -0
  87. package/dist/file-upload/utils/getFileExtension.d.ts +1 -0
  88. package/dist/hooks/useSidebarResize.d.ts +1 -1
  89. package/dist/index.css +1 -1
  90. package/dist/index.css.map +1 -1
  91. package/dist/index.d.ts +6 -0
  92. package/dist/index.esm.js +1 -1
  93. package/dist/index.js +1 -1
  94. package/dist/team-selector/components/TeamSelector.d.ts +24 -0
  95. package/dist/team-selector/index.d.ts +2 -0
  96. package/dist/team-selector/types.d.ts +10 -0
  97. package/docs/ICON_MIGRATION_GUIDE.md +177 -0
  98. package/package.json +1 -1
  99. package/dist/assets/AccordionDoc-BVPUJk8G.js +0 -31
  100. package/dist/assets/ActionButtonDoc-DLJ_K9ib.js +0 -47
  101. package/dist/assets/AlertDoc-CY1ybZeG.js +0 -37
  102. package/dist/assets/AppHeaderDoc-Crkw4dA9.js +0 -67
  103. package/dist/assets/AppSidebarDoc-ET-4j6wV.js +0 -204
  104. package/dist/assets/AuthDoc-B4v4Nci5.js +0 -192
  105. package/dist/assets/AvatarDoc-BLdMoyJd.js +0 -11
  106. package/dist/assets/BadgeDoc-CSNM1b6b.js +0 -36
  107. package/dist/assets/BaseFormDoc-DXiYuN6-.js +0 -169
  108. package/dist/assets/BodyContentDoc-Bp6YmUWX.js +0 -83
  109. package/dist/assets/BreadcrumbDoc-D7tqqTvo.js +0 -75
  110. package/dist/assets/ButtonDoc-C4JwIvU3.js +0 -41
  111. package/dist/assets/ButtonGroupDoc-QFfjC7Pm.js +0 -7
  112. package/dist/assets/CalendarDoc-COlEKqmv.js +0 -81
  113. package/dist/assets/CardDoc-BVhMoC2w.js +0 -49
  114. package/dist/assets/ChartDoc-BJ14EjI2.js +0 -111
  115. package/dist/assets/CheckboxDoc-Bcqpln9_.js +0 -55
  116. package/dist/assets/ColorPickerDoc-CcfmSwyC.js +0 -10
  117. package/dist/assets/ColorsFoundationDoc-uO6IiJbS.js +0 -13
  118. package/dist/assets/ComboTreeDoc-R4qE6XwB.js +0 -46
  119. package/dist/assets/ComboboxDoc-JIo_-gSN.js +0 -134
  120. package/dist/assets/ComponentDocTemplate-CRbRY-v5.js +0 -1
  121. package/dist/assets/ContextMenuDoc-C4-_0NLp.js +0 -182
  122. package/dist/assets/ContextsDoc-Cj9Aaoyo.js +0 -184
  123. package/dist/assets/CreateCrudPageDoc-D_SnMRJ2.js +0 -106
  124. package/dist/assets/CrudActionBarDoc-BYqtIabp.js +0 -112
  125. package/dist/assets/CrudGridDoc-DspxQrq5.js +0 -85
  126. package/dist/assets/CrudOverviewDoc-DLcOL_HZ.js +0 -14
  127. package/dist/assets/CrudPrimitivesDoc-BRS86nWg.js +0 -164
  128. package/dist/assets/CrudTableDoc-Daw8u2G_.js +0 -113
  129. package/dist/assets/DataListDoc-BrgVNhhR.js +0 -13
  130. package/dist/assets/DesignSystemHome-BFBNqq1J.js +0 -1
  131. package/dist/assets/DialogDoc-DCpRy4rg.js +0 -981
  132. package/dist/assets/DropdownMenuDoc-DT6LBa8Z.js +0 -175
  133. package/dist/assets/EmptyStateDoc-wydc09gG.js +0 -35
  134. package/dist/assets/EnvironmentsDoc-amIriwDD.js +0 -96
  135. package/dist/assets/ErrorBoundaryDoc-BEixy_Gl.js +0 -111
  136. package/dist/assets/FormDoc-DxoRt6p7.js +0 -81
  137. package/dist/assets/FoundationOverview-CxSbumIt.js +0 -1
  138. package/dist/assets/GridDoc-BpQqCMUE.js +0 -28
  139. package/dist/assets/HooksDoc-JNODhbaF.js +0 -665
  140. package/dist/assets/HoverCardDoc-CdqiYrIb.js +0 -31
  141. package/dist/assets/I18nDoc-B6LMXnE3.js +0 -232
  142. package/dist/assets/IconPickerDoc-BRdy58IC.js +0 -10
  143. package/dist/assets/IconsFoundationDoc-CrymfxTI.js +0 -33
  144. package/dist/assets/InputDoc-BK-SdpJ7.js +0 -211
  145. package/dist/assets/LabelDoc-DHvgzhaJ.js +0 -42
  146. package/dist/assets/LeadershipDoc-DRiB0spL.js +0 -416
  147. package/dist/assets/MediaDoc-B_vqnf72.js +0 -459
  148. package/dist/assets/MenubarDoc-Zvgczxe2.js +0 -165
  149. package/dist/assets/ModuleAccessDoc-Nuxb4S27.js +0 -153
  150. package/dist/assets/ModulesDialogDoc-iJWLkOZo.js +0 -46
  151. package/dist/assets/NavigationMenuDoc-CeWun1VF.js +0 -116
  152. package/dist/assets/OnboardingDialogDoc-xBL-rXeZ.js +0 -55
  153. package/dist/assets/PaginationDoc-CfvwxCMe.js +0 -98
  154. package/dist/assets/PaginationDoc-DqtRgXnF.js +0 -27
  155. package/dist/assets/PlacesDoc-nckioEzg.js +0 -226
  156. package/dist/assets/PopoverDoc-C3o2CZCT.js +0 -64
  157. package/dist/assets/ProgressDoc-BmWBNMPA.js +0 -29
  158. package/dist/assets/QualiexUserFieldDoc-CE1e4mx6.js +0 -149
  159. package/dist/assets/RadioGroupDoc-DMZH6NmR.js +0 -57
  160. package/dist/assets/RadiusDoc-BOZD3gPV.js +0 -7
  161. package/dist/assets/RequiredFieldsCounterDoc-CG-lmSSy.js +0 -58
  162. package/dist/assets/ResizableDoc-CqGkv6Cd.js +0 -104
  163. package/dist/assets/RichTextEditorDoc-m50ll-Od.js +0 -24
  164. package/dist/assets/ScrollAreaDoc-BzJ-APXo.js +0 -28
  165. package/dist/assets/SecurityDoc-B34gVeiV.js +0 -204
  166. package/dist/assets/SelectDoc-DXRv7QHK.js +0 -80
  167. package/dist/assets/SeparatorDoc-DcNh8k0P.js +0 -4
  168. package/dist/assets/ServicesDoc-8aXBd6yg.js +0 -308
  169. package/dist/assets/ShadowsDoc-Brl4hIDI.js +0 -9
  170. package/dist/assets/SignDoc-BdwerR-2.js +0 -66
  171. package/dist/assets/SkeletonDoc-BWgqgbDY.js +0 -54
  172. package/dist/assets/SliderDoc-E-NjbYVk.js +0 -41
  173. package/dist/assets/SpacingDoc-BzburM-r.js +0 -12
  174. package/dist/assets/SplitButtonDoc-BYUysmJp.js +0 -53
  175. package/dist/assets/StepSelectorDoc-PB1k4v7F.js +0 -41
  176. package/dist/assets/SwitchDoc-BLOG6kfj.js +0 -56
  177. package/dist/assets/TableDoc-Dwcs-lop.js +0 -128
  178. package/dist/assets/TabsDoc-Ovkh8ArV.js +0 -42
  179. package/dist/assets/TextareaDoc-DsBYxmbr.js +0 -46
  180. package/dist/assets/ToastDoc-BbZaFE_A.js +0 -157
  181. package/dist/assets/ToggleDoc-C28vbvhp.js +0 -51
  182. package/dist/assets/TooltipDoc-DL5cnLak.js +0 -58
  183. package/dist/assets/TruncatedCellDoc-BuDA8QcY.js +0 -12
  184. package/dist/assets/TypographyFoundationDoc-CPdH4PHa.js +0 -7
  185. package/dist/assets/UtilitiesDoc-CrQhyEfz.js +0 -145
  186. package/dist/assets/blocks-DO93nPjs.js +0 -1
  187. package/dist/assets/calendar-days-cMfwBSZx.js +0 -1
  188. package/dist/assets/circle-plus-D3NftMzS.js +0 -1
  189. package/dist/assets/circle-x-BVAVJ_oz.js +0 -1
  190. package/dist/assets/crown-B2MTZDnM.js +0 -1
  191. package/dist/assets/date-picker-zhJU-_kM.js +0 -1
  192. package/dist/assets/disabled-menu-item-C16xsaVs.js +0 -1
  193. package/dist/assets/drawer-oTqCOtsC.js +0 -3
  194. package/dist/assets/file-pen-line-CXv-Eye-.js +0 -1
  195. package/dist/assets/git-branch-V6-h6P9K.js +0 -1
  196. package/dist/assets/globe-CaUBIJU8.js +0 -1
  197. package/dist/assets/hash-B4MTXppl.js +0 -1
  198. package/dist/assets/hover-card-DEuucfxP.js +0 -1
  199. package/dist/assets/index-CE0k7Rdh.js +0 -312
  200. package/dist/assets/index-Cx3adT_u.css +0 -1
  201. package/dist/assets/life-buoy-BRndExxh.js +0 -1
  202. package/dist/assets/lucide-react-t7dCa4lv.js +0 -1
  203. package/dist/assets/monitor-Dg3HKTSE.js +0 -1
  204. package/dist/assets/package-3G45ARQh.js +0 -1
  205. package/dist/assets/pen-BYSSwjK4.js +0 -1
  206. package/dist/assets/pin-CMYagNhs.js +0 -1
  207. package/dist/assets/radio-group-BVun_Tmt.js +0 -1
  208. package/dist/assets/server-p0Sb0mKI.js +0 -1
  209. package/dist/assets/share-2-D-ZhCCq2.js +0 -1
  210. package/dist/assets/shield-x-Q7hAXWsG.js +0 -1
  211. package/dist/assets/step-selector-DHxgT2FL.js +0 -1
  212. package/dist/assets/text-align-start-6aYQqbX4.js +0 -1
  213. package/dist/assets/trash-DveAOiLF.js +0 -1
  214. package/dist/assets/useMockCrud-GY0KxHXr.js +0 -1
  215. package/dist/assets/user-check-CoGNBfIk.js +0 -1
  216. package/dist/assets/user-plus-Bad2xWIT.js +0 -1
  217. package/dist/index.html +0 -35
  218. package/dist/leadership/components/LeaderRow.d.ts +0 -9
@@ -0,0 +1,38 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type Dashboard, type DashboardPage, type DashboardPanel } from './types';
3
+ import { type GridPanelLayout } from './dashboard-grid';
4
+ import { type DashboardPanelRendererProps } from './dashboard-panel-renderer';
5
+ export interface DashboardViewProps {
6
+ /** Dashboard metadata */
7
+ dashboard: Dashboard;
8
+ /** Panels to render */
9
+ panels: DashboardPanel[];
10
+ /** Pages (for carousel mode) */
11
+ pages?: DashboardPage[];
12
+ /** Current active page ID (carousel mode) */
13
+ activePageId?: string;
14
+ /** Allow editing (drag, resize, add, remove) */
15
+ canEdit?: boolean;
16
+ /** Fullscreen mode */
17
+ isFullscreen?: boolean;
18
+ /** Loading state */
19
+ isLoading?: boolean;
20
+ /** Per-panel data provider: return panel-specific data for rendering */
21
+ getPanelData?: (panelId: string) => Omit<DashboardPanelRendererProps, 'config'>;
22
+ /** Callbacks */
23
+ onRefresh?: () => void;
24
+ onToggleFullscreen?: () => void;
25
+ onToggleFavorite?: () => void;
26
+ onEdit?: () => void;
27
+ onShare?: () => void;
28
+ onAddPanel?: () => void;
29
+ onEditPanel?: (panelId: string) => void;
30
+ onRemovePanel?: (panelId: string) => void;
31
+ onDuplicatePanel?: (panelId: string) => void;
32
+ onLayoutChange?: (panels: GridPanelLayout[]) => void;
33
+ onPageChange?: (pageId: string) => void;
34
+ /** Custom toolbar actions */
35
+ toolbarActions?: ReactNode;
36
+ className?: string;
37
+ }
38
+ 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;
@@ -0,0 +1,47 @@
1
+ import type { PanelResult, PlaceAnalysis } from './types';
2
+ /** Month abbreviation → number (pt-BR) */
3
+ export declare const MONTHS_MAP: Record<string, number>;
4
+ /** localStorage keys used by dashboard module */
5
+ export declare const DASHBOARD_STORAGE_KEYS: {
6
+ readonly advancedFilter: "analysisDashboardsListFilter";
7
+ };
8
+ /** Fields known to contain currency values */
9
+ export declare const CURRENCY_FIELDS: readonly ["total_calibration_cost", "total_verification_cost", "total_maintenance_cost", "last_calibration_cost", "last_verification_cost", "last_maintenance_cost", "total_cost", "total_reported_cost", "estimated_cost", "last_report_cost_reported_cost", "occurrence_reported_cost", "task_estimated_cost"];
10
+ /** Properties that may contain a navigable link in a row */
11
+ export declare const LINK_PROPERTIES: readonly ["link", "link_risk", "risk_link", "link_group", "group_link", "link_occurrence", "occurrence_link", "link_audit", "link_project", "link_program", "link_ideia", "flow_link", "decision_link", "link_supplier", "auditing_link", "fmea_link"];
12
+ /**
13
+ * Sort panel results by month/year date (pt-BR format: "jan/2024").
14
+ */
15
+ export declare function sortByMonthYear(dataSource: PanelResult[]): PanelResult[];
16
+ /**
17
+ * Check if a field value is null, undefined, or an empty string.
18
+ */
19
+ export declare function isNullOrEmptyField(field: {
20
+ value?: string | null;
21
+ } | null | undefined): boolean;
22
+ /**
23
+ * Sanitize the last segment of a URL (title) by removing special chars and encoding.
24
+ */
25
+ export declare function processUrl(url: string): string;
26
+ /**
27
+ * Get the first navigable link found in a row object.
28
+ */
29
+ export declare function getLinkFromRow(row: Record<string, unknown>): string | null;
30
+ /**
31
+ * Serialize an object to query-string format (key=value&key=value).
32
+ */
33
+ export declare function toQueryString(obj: Record<string, unknown> | null | undefined): string | null;
34
+ /**
35
+ * Check if a string looks like a currency value.
36
+ */
37
+ export declare function isCurrency(value: string): boolean;
38
+ /**
39
+ * Extract a numeric value from a formatted currency string (pt-BR format).
40
+ */
41
+ export declare function extractNumberFromCurrency(value: string): number;
42
+ /** Pre-built pt-BR currency formatter */
43
+ export declare const currencyFormatter: Intl.NumberFormat;
44
+ /**
45
+ * Build a hierarchical tree from a flat list of places.
46
+ */
47
+ export declare function buildPlacesTree(places: PlaceAnalysis[]): PlaceAnalysis[];
@@ -0,0 +1,9 @@
1
+ export * from './types';
2
+ export * from './helpers';
3
+ export * from './panels';
4
+ export { DashboardGrid, getDefaultPanelSize, getMinPanelSize, type GridPanelLayout, type DashboardGridProps } from './dashboard-grid';
5
+ export { DashboardPanelRenderer, type DashboardPanelRendererProps } from './dashboard-panel-renderer';
6
+ export { DashboardView, type DashboardViewProps } from './dashboard-view';
7
+ export { DashboardList, type DashboardListProps } from './dashboard-list';
8
+ export { DashboardForm, type DashboardFormProps, type DashboardFormValues } from './dashboard-form';
9
+ export { DashboardGeneralView, type DashboardGeneralViewProps, type DashboardViewState } from './dashboard-general-view';
@@ -0,0 +1,26 @@
1
+ import { type PanelHeaderProps } from './panel-header';
2
+ import { PanelState, type PanelConfig } from '../types';
3
+ export interface BurndownDataPoint {
4
+ date: string;
5
+ executedPercentage: number;
6
+ plannedPercentage: number;
7
+ tooltipExecuted?: string;
8
+ tooltipPlanned?: string;
9
+ }
10
+ export interface BurndownPanelProps {
11
+ config: PanelConfig;
12
+ state: PanelState;
13
+ data?: BurndownDataPoint[];
14
+ /** Labels for series */
15
+ executedLabel?: string;
16
+ plannedLabel?: string;
17
+ /** Colors */
18
+ executedColor?: string;
19
+ plannedColor?: string;
20
+ viewOnly?: boolean;
21
+ onRefresh?: () => void;
22
+ queryUrl?: string;
23
+ queryUrlBuilder?: PanelHeaderProps['queryUrlBuilder'];
24
+ className?: string;
25
+ }
26
+ export declare function BurndownPanel({ config, state, data, executedLabel, plannedLabel, executedColor, plannedColor, viewOnly, onRefresh, queryUrl, queryUrlBuilder, className, }: BurndownPanelProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,46 @@
1
+ import { type PanelHeaderProps } from './panel-header';
2
+ import { PanelState, type PanelConfig } from '../types';
3
+ export type CartesianVariant = 'bar' | 'column' | 'stacked-column' | 'area' | 'line' | 'evolution-line';
4
+ export interface CartesianSeries {
5
+ /** Data key in each data point */
6
+ dataKey: string;
7
+ /** Display name in legend/tooltip */
8
+ name?: string;
9
+ /** Color override */
10
+ color?: string;
11
+ /** Stack ID for stacked charts */
12
+ stackId?: string;
13
+ }
14
+ export interface CartesianPanelProps {
15
+ config: PanelConfig;
16
+ /** Chart variant to render */
17
+ variant: CartesianVariant;
18
+ /** Current state of the panel */
19
+ state: PanelState;
20
+ /**
21
+ * Transformed chart data — array of objects where each object is a data point.
22
+ * Must include a `name` or `key` field for the category axis.
23
+ */
24
+ data?: Record<string, unknown>[];
25
+ /**
26
+ * Series definitions. If omitted, a single series using `value` dataKey is assumed.
27
+ */
28
+ series?: CartesianSeries[];
29
+ /** Palette hex colors to use for series (from config or custom) */
30
+ colors?: string[];
31
+ /** Category axis data key (default: 'key') */
32
+ categoryKey?: string;
33
+ /** Y-axis label format (e.g. 'R$ {value}') */
34
+ yAxisFormat?: string;
35
+ /** View-only mode (hides header menu) */
36
+ viewOnly?: boolean;
37
+ /** Called when a data point is clicked */
38
+ onPointClick?: (data: Record<string, unknown>, index: number) => void;
39
+ onRefresh?: () => void;
40
+ onExport?: () => void;
41
+ /** URL to the query for error state */
42
+ queryUrl?: string;
43
+ queryUrlBuilder?: PanelHeaderProps['queryUrlBuilder'];
44
+ className?: string;
45
+ }
46
+ 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;
@@ -0,0 +1,14 @@
1
+ export { PanelHeader, type PanelHeaderProps } from './panel-header';
2
+ export { PanelError, type PanelErrorProps } from './panel-error';
3
+ export { PanelLoader, type PanelLoaderProps } from './panel-loader';
4
+ export { PanelNoData, type PanelNoDataProps } from './panel-no-data';
5
+ export { PanelUnavailable, type PanelUnavailableProps } from './panel-unavailable';
6
+ export { NumericPanel, type NumericPanelProps } from './numeric-panel';
7
+ export { TextPanel, type TextPanelProps } from './text-panel';
8
+ export { ListPanel, type ListPanelProps, type ListPanelColumn } from './list-panel';
9
+ export { CartesianPanel, type CartesianPanelProps, type CartesianVariant, type CartesianSeries } from './cartesian-panel';
10
+ export { PiePanel, type PiePanelProps } from './pie-panel';
11
+ export { ParetoPanel, type ParetoPanelProps } from './pareto-panel';
12
+ export { BurndownPanel, type BurndownPanelProps, type BurndownDataPoint } from './burndown-panel';
13
+ export { PerformancePanel, type PerformancePanelProps, type PerformanceDataPoint } from './performance-panel';
14
+ export { MatrixRiskPanel, type MatrixRiskPanelProps, type MatrixRule, type MatrixParameter, type MatrixRisk } from './matrix-risk-panel';
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { type PanelHeaderProps } from './panel-header';
3
+ import { PanelState, type PanelConfig, type SelectedColumn } from '../types';
4
+ export interface ListPanelColumn extends SelectedColumn {
5
+ /** Render function override for custom cell content */
6
+ render?: (value: unknown, row: Record<string, unknown>) => React.ReactNode;
7
+ }
8
+ export interface ListPanelProps {
9
+ config: PanelConfig;
10
+ /** Current state of the panel */
11
+ state: PanelState;
12
+ /** Row data */
13
+ data?: Record<string, unknown>[];
14
+ /** Column definitions */
15
+ columns?: ListPanelColumn[];
16
+ /** View-only mode (hides header menu) */
17
+ viewOnly?: boolean;
18
+ /** Called when a row is clicked */
19
+ onRowClick?: (row: Record<string, unknown>) => void;
20
+ onRefresh?: () => void;
21
+ onExport?: () => void;
22
+ /** URL to the query for error state */
23
+ queryUrl?: string;
24
+ /** Query URL builder for header */
25
+ queryUrlBuilder?: PanelHeaderProps['queryUrlBuilder'];
26
+ /** Whether to auto-navigate to row links on click */
27
+ enableRowLinks?: boolean;
28
+ className?: string;
29
+ }
30
+ export declare function ListPanel({ config, state, data, columns, viewOnly, onRowClick, onRefresh, onExport, queryUrl, queryUrlBuilder, enableRowLinks, className, }: ListPanelProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,49 @@
1
+ import { type PanelHeaderProps } from './panel-header';
2
+ import { PanelState, MatrixViewType, type PanelConfig } from '../types';
3
+ export interface MatrixParameter {
4
+ name: string;
5
+ position: number;
6
+ }
7
+ export interface MatrixRule {
8
+ name_x: string;
9
+ name_y: string;
10
+ parametersX: MatrixParameter[];
11
+ parametersY: MatrixParameter[];
12
+ threat_strategy_type_name?: string;
13
+ opportunity_strategy_type_name?: string;
14
+ disable_opportunities?: boolean;
15
+ /** Matrix of colors indexed [y][x] */
16
+ colorMatrix?: string[][];
17
+ }
18
+ export interface MatrixRisk {
19
+ code: string;
20
+ name: string;
21
+ parameterXPosition: number;
22
+ parameterYPosition: number;
23
+ analysisDate?: string;
24
+ parameterXName?: string;
25
+ parameterValueX?: string;
26
+ parameterYName?: string;
27
+ parameterValueY?: string;
28
+ strategy?: string;
29
+ resultName?: string;
30
+ link?: string;
31
+ }
32
+ export interface MatrixRiskPanelProps {
33
+ config: PanelConfig;
34
+ state: PanelState;
35
+ /** The analysis rule defining axes and colors */
36
+ rule?: MatrixRule;
37
+ /** List of risks to plot on the matrix */
38
+ risks?: MatrixRisk[];
39
+ /** View mode: quantity count or individual risk codes */
40
+ matrixViewType?: MatrixViewType;
41
+ viewOnly?: boolean;
42
+ onCellClick?: (x: MatrixParameter, y: MatrixParameter, risks: MatrixRisk[]) => void;
43
+ onRiskClick?: (risk: MatrixRisk) => void;
44
+ onRefresh?: () => void;
45
+ queryUrl?: string;
46
+ queryUrlBuilder?: PanelHeaderProps['queryUrlBuilder'];
47
+ className?: string;
48
+ }
49
+ export declare function MatrixRiskPanel({ config, state, rule, risks, matrixViewType, viewOnly, onCellClick, onRiskClick, onRefresh, queryUrl, queryUrlBuilder, className, }: MatrixRiskPanelProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,22 @@
1
+ import { type PanelHeaderProps } from './panel-header';
2
+ import { PanelState, type PanelConfig } from '../types';
3
+ export interface NumericPanelProps {
4
+ config: PanelConfig;
5
+ /** Current state of the panel */
6
+ state: PanelState;
7
+ /** The numeric value to display */
8
+ value?: number | string | null;
9
+ /** Optional: override the aggregation label */
10
+ label?: string;
11
+ /** View-only mode (hides header menu) */
12
+ viewOnly?: boolean;
13
+ /** Called when clicking the numeric value (e.g. to open popover) */
14
+ onClick?: () => void;
15
+ onRefresh?: () => void;
16
+ /** URL to the query for error state */
17
+ queryUrl?: string;
18
+ /** Query URL builder for header */
19
+ queryUrlBuilder?: PanelHeaderProps['queryUrlBuilder'];
20
+ className?: string;
21
+ }
22
+ export declare function NumericPanel({ config, state, value, label, viewOnly, onClick, onRefresh, queryUrl, queryUrlBuilder, className, }: NumericPanelProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import type { PanelConfig } from '../types';
2
+ export interface PanelErrorProps {
3
+ config: PanelConfig;
4
+ /** URL to the query for troubleshooting */
5
+ queryUrl?: string;
6
+ className?: string;
7
+ }
8
+ export declare function PanelError({ config, queryUrl, className }: PanelErrorProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type PanelConfig } from '../types';
3
+ export interface PanelHeaderProps {
4
+ config: PanelConfig;
5
+ /** Hide the options menu (e.g. in general-view mode) */
6
+ viewOnly?: boolean;
7
+ /** Extra content to render in a specific slot */
8
+ complement?: ReactNode;
9
+ complementPosition?: 'before-title' | 'after-title' | 'before-options' | 'after-options';
10
+ /** URL builder for the "Open query" link */
11
+ queryUrlBuilder?: (config: PanelConfig) => string;
12
+ onRefresh?: () => void;
13
+ onExport?: () => void;
14
+ onToggleOnlyMine?: (value: boolean) => void;
15
+ className?: string;
16
+ }
17
+ export declare function PanelHeader({ config, viewOnly, complement, complementPosition, queryUrlBuilder, onRefresh, onExport, onToggleOnlyMine, className, }: PanelHeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { DashboardPanelType } from '../types';
2
+ export interface PanelLoaderProps {
3
+ /** Show extra "please wait" message for long-running panel types */
4
+ panelType?: DashboardPanelType;
5
+ className?: string;
6
+ }
7
+ export declare function PanelLoader({ panelType, className }: PanelLoaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export interface PanelNoDataProps {
2
+ /** Whether the panel has a removed column (shows different message) */
3
+ hasRemovedColumn?: boolean;
4
+ className?: string;
5
+ }
6
+ export declare function PanelNoData({ hasRemovedColumn, className }: PanelNoDataProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export interface PanelUnavailableProps {
2
+ /** Callback to remove the panel */
3
+ onRemove?: () => void;
4
+ className?: string;
5
+ }
6
+ export declare function PanelUnavailable({ onRemove, className }: PanelUnavailableProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { type PanelHeaderProps } from './panel-header';
2
+ import { PanelState, type PanelConfig, type PanelResult } from '../types';
3
+ export interface ParetoPanelProps {
4
+ config: PanelConfig;
5
+ state: PanelState;
6
+ /** Bar data — each item needs `key` (label) and `value` (count) */
7
+ data?: PanelResult[];
8
+ /** Override bar color */
9
+ barColor?: string;
10
+ /** Override line color */
11
+ lineColor?: string;
12
+ viewOnly?: boolean;
13
+ onPointClick?: (entry: PanelResult, index: number) => void;
14
+ onRefresh?: () => void;
15
+ onExport?: () => void;
16
+ queryUrl?: string;
17
+ queryUrlBuilder?: PanelHeaderProps['queryUrlBuilder'];
18
+ className?: string;
19
+ }
20
+ export declare function ParetoPanel({ config, state, data, barColor, lineColor, viewOnly, onPointClick, onRefresh, onExport, queryUrl, queryUrlBuilder, className, }: ParetoPanelProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,24 @@
1
+ import { type PanelHeaderProps } from './panel-header';
2
+ import { PanelState, type PanelConfig } from '../types';
3
+ export interface PerformanceDataPoint {
4
+ name: string;
5
+ executedWork: number;
6
+ plannedWork: number;
7
+ [key: string]: unknown;
8
+ }
9
+ export interface PerformancePanelProps {
10
+ config: PanelConfig;
11
+ state: PanelState;
12
+ data?: PerformanceDataPoint[];
13
+ executedLabel?: string;
14
+ plannedLabel?: string;
15
+ executedColor?: string;
16
+ plannedColor?: string;
17
+ viewOnly?: boolean;
18
+ onPointClick?: (entry: PerformanceDataPoint, index: number) => void;
19
+ onRefresh?: () => void;
20
+ queryUrl?: string;
21
+ queryUrlBuilder?: PanelHeaderProps['queryUrlBuilder'];
22
+ className?: string;
23
+ }
24
+ export declare function PerformancePanel({ config, state, data, executedLabel, plannedLabel, executedColor, plannedColor, viewOnly, onPointClick, onRefresh, queryUrl, queryUrlBuilder, className, }: PerformancePanelProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { type PanelHeaderProps } from './panel-header';
2
+ import { PanelState, type PanelConfig, type PanelResult } from '../types';
3
+ export interface PiePanelProps {
4
+ config: PanelConfig;
5
+ state: PanelState;
6
+ /** Chart data — each item needs `key` (label) and `value` (number) */
7
+ data?: PanelResult[];
8
+ /** Override palette colors */
9
+ colors?: string[];
10
+ viewOnly?: boolean;
11
+ /** Called when a slice is clicked */
12
+ onSliceClick?: (entry: PanelResult, index: number) => void;
13
+ onRefresh?: () => void;
14
+ onExport?: () => void;
15
+ queryUrl?: string;
16
+ queryUrlBuilder?: PanelHeaderProps['queryUrlBuilder'];
17
+ className?: string;
18
+ }
19
+ export declare function PiePanel({ config, state, data, colors: colorsProp, viewOnly, onSliceClick, onRefresh, onExport, queryUrl, queryUrlBuilder, className, }: PiePanelProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import { type PanelHeaderProps } from './panel-header';
2
+ import { PanelState, type PanelConfig } from '../types';
3
+ export interface TextPanelProps {
4
+ config: PanelConfig;
5
+ /** Current state of the panel */
6
+ state: PanelState;
7
+ /** HTML content to render (from textTypeString) */
8
+ htmlContent?: string;
9
+ /** View-only mode (hides header menu) */
10
+ viewOnly?: boolean;
11
+ onRefresh?: () => void;
12
+ /** URL to the query for error state */
13
+ queryUrl?: string;
14
+ /** Query URL builder for header */
15
+ queryUrlBuilder?: PanelHeaderProps['queryUrlBuilder'];
16
+ className?: string;
17
+ }
18
+ export declare function TextPanel({ config, state, htmlContent, viewOnly, onRefresh, queryUrl, queryUrlBuilder, className, }: TextPanelProps): import("react/jsx-runtime").JSX.Element;