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,20 @@
1
+ import { type IframeDialogProps } from './iframe-dialog';
2
+ export interface StimulsoftViewerProps extends Omit<IframeDialogProps, 'url' | 'minHeight'> {
3
+ /** Base URL of the report API (e.g. environment.reportApiUrl) */
4
+ reportApiUrl: string;
5
+ /**
6
+ * Parameters passed as query-string to the viewer.
7
+ * Common keys: Lang, Image, ImageFooter, plus report-specific ones.
8
+ */
9
+ parameters?: Record<string, string>;
10
+ /** Min height for the iframe area (default: 80vh) */
11
+ minHeight?: string;
12
+ }
13
+ /**
14
+ * Stimulsoft report viewer — wraps IframeDialog pointing to a
15
+ * Stimulsoft Viewer endpoint with the given parameters.
16
+ *
17
+ * Ported from legacy `qex-stimulsoft-viewer`.
18
+ */
19
+ export declare function StimulsoftViewer({ reportApiUrl, parameters, minHeight, ...dialogProps }: StimulsoftViewerProps): import("react/jsx-runtime").JSX.Element;
20
+ export default StimulsoftViewer;
@@ -0,0 +1,56 @@
1
+ export interface TermOfUse {
2
+ /** Unique identifier */
3
+ id: string;
4
+ /** Optional description/summary (may contain HTML) */
5
+ description?: string;
6
+ /** Base64-encoded file content */
7
+ file?: string;
8
+ /** MIME type of the file (e.g. 'application/pdf') */
9
+ type?: string;
10
+ /** Whether the current user has already signed this term */
11
+ hasUserSignature?: boolean;
12
+ }
13
+ export interface TermsOfUseDialogProps {
14
+ /** The term of use to display */
15
+ term: TermOfUse;
16
+ /** Whether the dialog is open */
17
+ open: boolean;
18
+ /** Called when the user clicks "See later" or closes */
19
+ onClose: () => void;
20
+ /** Called when the user agrees to the terms. Receives the term ID. */
21
+ onAgree: (termId: string) => void;
22
+ /** Override title */
23
+ title?: string;
24
+ /** Override "See later" button text */
25
+ seeLaterLabel?: string;
26
+ /** Override "I have read and agree" button text */
27
+ agreeLabel?: string;
28
+ /** Override "View term" button text */
29
+ viewTermLabel?: string;
30
+ }
31
+ export interface TermsOfUseViewerProps {
32
+ /** The term of use to display */
33
+ term: TermOfUse;
34
+ /** Whether the dialog is open */
35
+ open: boolean;
36
+ /** Called when closing the viewer */
37
+ onClose: () => void;
38
+ /** Called when the user signs the term from inside the viewer. Receives the term ID. */
39
+ onSign?: (termId: string) => void;
40
+ /** If true, hides the sign button (view-only mode) */
41
+ viewOnly?: boolean;
42
+ /** Override title */
43
+ title?: string;
44
+ /** Override sign button text */
45
+ signLabel?: string;
46
+ }
47
+ /**
48
+ * Dialog that notifies the user about updated terms of use.
49
+ * Shows a description and buttons to view the full term, dismiss, or agree.
50
+ */
51
+ export declare function TermsOfUseDialog({ term, open, onClose, onAgree, title, seeLaterLabel, agreeLabel, viewTermLabel, }: TermsOfUseDialogProps): import("react/jsx-runtime").JSX.Element;
52
+ /**
53
+ * Full-screen viewer for a term of use file (PDF, etc.) embedded in an iframe.
54
+ * Optionally shows a "sign" button for users who haven't signed yet.
55
+ */
56
+ export declare function TermsOfUseViewer({ term, open, onClose, onSign, viewOnly, title, signLabel, }: TermsOfUseViewerProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ export interface TimepickerProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange' | 'value'> {
3
+ value?: string;
4
+ onChange?: (value: string) => void;
5
+ onTimeChange?: (value: string) => void;
6
+ label?: string;
7
+ error?: string;
8
+ format?: '12h' | '24h';
9
+ }
10
+ declare const Timepicker: React.ForwardRefExoticComponent<TimepickerProps & React.RefAttributes<HTMLInputElement>>;
11
+ export { Timepicker };
@@ -0,0 +1,44 @@
1
+ export interface UsersGroupUser {
2
+ id: string;
3
+ name: string;
4
+ email?: string;
5
+ avatar?: string;
6
+ groupIds?: string[];
7
+ }
8
+ export interface UsersGroup {
9
+ id: string;
10
+ name: string;
11
+ }
12
+ export interface UsersGroupsSelectorProps {
13
+ /** Available users to select from */
14
+ users: UsersGroupUser[];
15
+ /** Available groups for filtering */
16
+ groups?: UsersGroup[];
17
+ /** Currently selected user IDs (controlled) */
18
+ value: string[];
19
+ /** Called when selection changes */
20
+ onChange: (selectedIds: string[]) => void;
21
+ /** Whether the component is editable */
22
+ disabled?: boolean;
23
+ /** Max height of the user list in px */
24
+ maxHeight?: number;
25
+ /** Hide the group filter dropdown */
26
+ hideGroupFilter?: boolean;
27
+ /** Placeholder for search input */
28
+ searchPlaceholder?: string;
29
+ /** Label for "Select" action */
30
+ selectLabel?: string;
31
+ /** Label for "Done" action */
32
+ doneLabel?: string;
33
+ /** Label for "All" checkbox */
34
+ allLabel?: string;
35
+ /** Label for empty state */
36
+ emptyLabel?: string;
37
+ /** Label for selected count (singular) */
38
+ selectedLabel?: string;
39
+ /** Label for selected count (plural) */
40
+ selectedPluralLabel?: string;
41
+ /** Additional className */
42
+ className?: string;
43
+ }
44
+ export declare function UsersGroupsSelector({ users, groups, value, onChange, disabled, maxHeight, hideGroupFilter, searchPlaceholder, selectLabel, doneLabel, allLabel, emptyLabel, selectedLabel, selectedPluralLabel, className, }: UsersGroupsSelectorProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,77 @@
1
+ export declare enum FileViewerType {
2
+ none = 0,
3
+ image = 1,
4
+ video = 2,
5
+ audio = 3,
6
+ wopi = 4,
7
+ onlineEditor = 5,
8
+ report = 6
9
+ }
10
+ export declare enum FilePrintType {
11
+ SimplePrint = 0,
12
+ ManagedCopy = 1,
13
+ NonManagedCopy = 2
14
+ }
15
+ export interface FileViewerTemplate {
16
+ code?: string;
17
+ name: string;
18
+ extension?: string;
19
+ url: string;
20
+ }
21
+ export interface ViewerDocumentControlConfig {
22
+ isControlledDocument?: boolean;
23
+ physicalCopyCode?: string | null;
24
+ physicalCopyId?: string | null;
25
+ watermarkedFileId?: string | null;
26
+ watermarkedFileRevisionId?: string | null;
27
+ handlePhysicalCopyCreationCallback?: (fileId: string) => Promise<Record<string, any> | null>;
28
+ handleAddNonManagedCopyWatermarkCallback?: (fileId: string, justification?: string | null, revisionId?: string) => Promise<Record<string, any> | null>;
29
+ askUserForPrintOrDownloadConfirmationCallback?: (params: {
30
+ contextId: string;
31
+ categoryId?: string;
32
+ isDownload?: boolean;
33
+ }) => Promise<any>;
34
+ }
35
+ export interface ViewerDialogProps {
36
+ open: boolean;
37
+ onOpenChange: (open: boolean) => void;
38
+ /** The file template to display (name, code, url, extension) */
39
+ template: FileViewerTemplate;
40
+ /** Which viewer type to use. If not provided, it's auto-detected from extension. */
41
+ viewerType?: FileViewerType;
42
+ /** Show loading state */
43
+ isLoading?: boolean;
44
+ /** Enable download button */
45
+ enableDownload?: boolean;
46
+ onDownload?: () => void | Promise<void>;
47
+ isDownloading?: boolean;
48
+ /** Enable favorite button */
49
+ enableFavorite?: boolean;
50
+ isFavorite?: boolean;
51
+ onFavorite?: (currentState: boolean) => void | Promise<void>;
52
+ isFavoriting?: boolean;
53
+ /** Reading confirmation */
54
+ enableConfirmReading?: boolean;
55
+ readingConfirmationDate?: Date;
56
+ onConfirmReading?: () => void | Promise<void>;
57
+ isConfirmingReading?: boolean;
58
+ /** Reading confirmation timer (seconds remaining) */
59
+ readingConfirmationTimeRemaining?: number;
60
+ /** Called when iframe loads (for report/wopi types) */
61
+ onIframeLoad?: (iframe: HTMLIFrameElement) => void;
62
+ /** Custom className for the dialog */
63
+ className?: string;
64
+ }
65
+ export declare function getViewerType(extension?: string): FileViewerType;
66
+ export declare function getOnlineViewerType(extension: string): 'document' | 'spreadsheets';
67
+ export declare function getWopiViewer(extension: string): string;
68
+ export declare function buildWopiUrl(params: {
69
+ viewerUrl: string;
70
+ wopiUrl: string;
71
+ fileId: string;
72
+ token: string;
73
+ extension: string;
74
+ language?: string;
75
+ }): string | null;
76
+ export declare function ViewerDialog({ open, onOpenChange, template, viewerType: viewerTypeProp, isLoading, enableDownload, onDownload, isDownloading, enableFavorite, isFavorite, onFavorite, isFavoriting, enableConfirmReading, readingConfirmationDate, onConfirmReading, isConfirmingReading, readingConfirmationTimeRemaining, onIframeLoad, className, }: ViewerDialogProps): import("react/jsx-runtime").JSX.Element;
77
+ export default ViewerDialog;
@@ -0,0 +1,8 @@
1
+ import type { CustomFormFieldsProps } from '../types';
2
+ /**
3
+ * CustomFormFields — Container que renderiza campos dinâmicos de formulário.
4
+ *
5
+ * Portado de FlcCustomFormFieldsComponent (flc-custom-form-fields).
6
+ * Renderiza campos baseados em FieldAssociation[] e gerencia o state via onChange.
7
+ */
8
+ export declare function CustomFormFields({ fields, readOnly, hideInactiveWithoutValue, onChange, onFieldChange, }: CustomFormFieldsProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { BaseFieldProps } from '../types';
2
+ /**
3
+ * Campo de data (date).
4
+ * Usa input type="date" nativo.
5
+ */
6
+ export declare function FormDateField({ field, readOnly, onChange }: BaseFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { BaseFieldProps } from '../types';
2
+ /**
3
+ * Campo de seleção múltipla (multiSelection).
4
+ * Suporta checkbox e chips (dropdown) via config.viewMode.
5
+ */
6
+ export declare function FormMultiSelectionField({ field, readOnly, onChange }: BaseFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { BaseFieldProps } from '../types';
2
+ /**
3
+ * Campo numérico (number).
4
+ * Suporta decimais, min e max via config.
5
+ */
6
+ export declare function FormNumericField({ field, readOnly, onChange }: BaseFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { BaseFieldProps } from '../types';
2
+ /**
3
+ * Campo de questões (questions).
4
+ * Grid de perguntas × opções (estilo questionário/matriz).
5
+ */
6
+ export declare function FormQuestionsField({ field, readOnly, onChange }: BaseFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { BaseFieldProps } from '../types';
2
+ /**
3
+ * Campo de seleção única (singleSelection).
4
+ * Suporta dropdown e radio via config.viewMode.
5
+ */
6
+ export declare function FormSingleSelectionField({ field, readOnly, onChange }: BaseFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { BaseFieldProps } from '../types';
2
+ /**
3
+ * Campo de texto (text).
4
+ * Suporta single-line e multiline via config.
5
+ */
6
+ export declare function FormTextField({ field, readOnly, onChange }: BaseFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { BaseFieldProps } from '../types';
2
+ /**
3
+ * Campo de hora (time).
4
+ * Usa input type="time" nativo. O valor é armazenado como minutos desde meia-noite.
5
+ */
6
+ export declare function FormTimeField({ field, readOnly, onChange }: BaseFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { BaseFieldProps } from '../types';
2
+ /**
3
+ * Campo de URL (url).
4
+ * Suporta múltiplas URLs quando config.multiple = true.
5
+ */
6
+ export declare function FormUrlField({ field, readOnly, onChange }: BaseFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { BaseFieldProps } from '../types';
2
+ /**
3
+ * Campo de texto somente leitura (readOnlyText).
4
+ * Exibe o texto configurado sem permitir edição.
5
+ */
6
+ export declare function ReadOnlyTextField({ field }: BaseFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ export { CustomFormFields } from './components/CustomFormFields';
2
+ export { ReadOnlyTextField } from './fields/ReadOnlyTextField';
3
+ export { FormTextField } from './fields/FormTextField';
4
+ export { FormDateField } from './fields/FormDateField';
5
+ export { FormTimeField } from './fields/FormTimeField';
6
+ export { FormUrlField } from './fields/FormUrlField';
7
+ export { FormNumericField } from './fields/FormNumericField';
8
+ export { FormSingleSelectionField } from './fields/FormSingleSelectionField';
9
+ export { FormMultiSelectionField } from './fields/FormMultiSelectionField';
10
+ export { FormQuestionsField } from './fields/FormQuestionsField';
11
+ export { ECustomFormFieldType, EFieldViewMode, ESelectionFieldDataSource, } from './types';
12
+ export type { FieldAssociation, FieldConfig, TextFieldConfig, NumberFieldConfig, UrlFieldConfig, SingleSelectionFieldConfig, MultiSelectionFieldConfig, QuestionsFieldConfig, RowItem, QuestionItem, FormFieldValue, BaseFieldProps, CustomFormFieldsProps, } from './types';
13
+ export { getFieldValue, shouldShowField, getFormFieldValues, setFormFieldValues, validateFields, } from './types';
@@ -0,0 +1,143 @@
1
+ /** Tipos de campo customizado do formulário */
2
+ export declare enum ECustomFormFieldType {
3
+ readOnlyText = 1,
4
+ text = 2,
5
+ date = 3,
6
+ time = 4,
7
+ url = 5,
8
+ number = 6,
9
+ singleSelection = 7,
10
+ multiSelection = 8,
11
+ questions = 9
12
+ }
13
+ /** Modo de visualização de campos de seleção */
14
+ export declare enum EFieldViewMode {
15
+ dropdown = 1,
16
+ buttons = 2,
17
+ radio = 3,
18
+ checkbox = 4
19
+ }
20
+ /** Origem dos dados de campos de seleção */
21
+ export declare enum ESelectionFieldDataSource {
22
+ custom = 1,
23
+ users = 2,
24
+ usersLists = 3
25
+ }
26
+ /** Item de uma lista de seleção (opção) */
27
+ export interface RowItem {
28
+ value: string;
29
+ text: string;
30
+ isActive?: boolean;
31
+ removed?: boolean;
32
+ email?: string;
33
+ /** Tipo do usuário (quando dataSource = users) */
34
+ userType?: number;
35
+ }
36
+ /** Item de resposta de um campo de questões */
37
+ export interface QuestionItem {
38
+ questionValue: string;
39
+ questionText: string;
40
+ optionValue: string;
41
+ optionText: string;
42
+ }
43
+ /** Configuração base de um campo */
44
+ export interface FieldConfig {
45
+ }
46
+ /** Configuração de campo de texto */
47
+ export interface TextFieldConfig extends FieldConfig {
48
+ multiline: boolean;
49
+ }
50
+ /** Configuração de campo numérico */
51
+ export interface NumberFieldConfig extends FieldConfig {
52
+ decimals: number;
53
+ min?: number;
54
+ max?: number;
55
+ }
56
+ /** Configuração de campo URL */
57
+ export interface UrlFieldConfig extends FieldConfig {
58
+ multiple: boolean;
59
+ }
60
+ /** Configuração de campo de seleção única */
61
+ export interface SingleSelectionFieldConfig extends FieldConfig {
62
+ viewMode: EFieldViewMode;
63
+ dataSource: ESelectionFieldDataSource;
64
+ data: RowItem[];
65
+ userListId?: string;
66
+ }
67
+ /** Configuração de campo de seleção múltipla */
68
+ export interface MultiSelectionFieldConfig extends FieldConfig {
69
+ viewMode: EFieldViewMode;
70
+ dataSource: ESelectionFieldDataSource;
71
+ data: RowItem[];
72
+ userListId?: string;
73
+ }
74
+ /** Configuração de campo de questões */
75
+ export interface QuestionsFieldConfig extends FieldConfig {
76
+ viewMode: EFieldViewMode;
77
+ questions: RowItem[];
78
+ options: RowItem[];
79
+ }
80
+ /** Valor de um campo de formulário */
81
+ export interface FormFieldValue {
82
+ formFieldAssociationId: string;
83
+ textValue?: string;
84
+ numberValue?: number;
85
+ dateValue?: string | Date;
86
+ timeValue?: number;
87
+ itemsValue?: RowItem[];
88
+ questionsValue?: QuestionItem[];
89
+ }
90
+ /** Associação de campo com formulário — modelo principal */
91
+ export interface FieldAssociation {
92
+ id: string;
93
+ type: ECustomFormFieldType;
94
+ name?: string;
95
+ required?: boolean;
96
+ placeholder?: string;
97
+ description?: string;
98
+ config?: FieldConfig;
99
+ fieldId?: string;
100
+ isActive?: boolean;
101
+ readOnly?: boolean;
102
+ textValue?: string;
103
+ numberValue?: number;
104
+ dateValue?: string | Date;
105
+ timeValue?: number;
106
+ itemsValue?: RowItem[];
107
+ questionsValue?: QuestionItem[];
108
+ }
109
+ /** Props compartilhadas por todos os campos individuais */
110
+ export interface BaseFieldProps {
111
+ field: FieldAssociation;
112
+ readOnly?: boolean;
113
+ onChange?: (field: FieldAssociation) => void;
114
+ }
115
+ /** Props do componente container CustomFormFields */
116
+ export interface CustomFormFieldsProps {
117
+ fields: FieldAssociation[];
118
+ readOnly?: boolean;
119
+ hideInactiveWithoutValue?: boolean;
120
+ onChange?: (fields: FieldAssociation[]) => void;
121
+ onFieldChange?: (field: FieldAssociation) => void;
122
+ /** Lista de usuários para campos com dataSource = users */
123
+ users?: Array<{
124
+ id: string;
125
+ name: string;
126
+ email?: string;
127
+ isActive?: boolean;
128
+ userType?: number;
129
+ }>;
130
+ }
131
+ /** Extrai o valor correto de um FieldAssociation baseado no tipo */
132
+ export declare function getFieldValue(field: FieldAssociation): any;
133
+ /** Verifica se um campo deve ser exibido (campo ativo ou com valor) */
134
+ export declare function shouldShowField(field: FieldAssociation, hideInactive: boolean): boolean;
135
+ /** Converte FieldAssociation[] para FormFieldValue[] para envio ao backend */
136
+ export declare function getFormFieldValues(fields: FieldAssociation[]): FormFieldValue[];
137
+ /** Aplica valores salvos a uma lista de FieldAssociation */
138
+ export declare function setFormFieldValues(fields: FieldAssociation[], values: FormFieldValue[]): FieldAssociation[];
139
+ /** Valida todos os campos obrigatórios */
140
+ export declare function validateFields(fields: FieldAssociation[]): {
141
+ valid: boolean;
142
+ invalidFields: string[];
143
+ };
@@ -0,0 +1,16 @@
1
+ export { ActionPlanPage } from '../action-plans/components/ActionPlanPage';
2
+ export { ActionPlanGeneralTab } from '../action-plans/components/ActionPlanGeneralTab';
3
+ export { ActionPlanProgressTab } from '../action-plans/components/ActionPlanProgressTab';
4
+ export { ActionPlanPredecessorsTab } from '../action-plans/components/ActionPlanPredecessorsTab';
5
+ export { ActionPlanCostTab } from '../action-plans/components/ActionPlanCostTab';
6
+ export { ActionPlanCommentsTab } from '../action-plans/components/ActionPlanCommentsTab';
7
+ export { ActionPlanHistoryTab } from '../action-plans/components/ActionPlanHistoryTab';
8
+ export { ActionPlanAttachmentsTab } from '../action-plans/components/ActionPlanAttachmentsTab';
9
+ export { ActionPlanStatusBadge } from '../action-plans/components/ActionPlanStatusBadge';
10
+ export { ActionPlanProgressDialog } from '../action-plans/components/ActionPlanProgressDialog';
11
+ export { useActionPlan } from '../action-plans/hooks/useActionPlan';
12
+ export { useActionPlanProgress } from '../action-plans/hooks/useActionPlanProgress';
13
+ export type { ActionPlan, ActionPlanProgress, ActionPlanReport, ActionPlanFormConfig, ActionPlanRequiredFields, ActionPlanPermissions, ActionPlanCost, ActionPlanPredecessor, ActionPlanOption, ActionPlanUser, ActionPlanPlace, ActionPlanPageProps, ActionPlanComment, ActionPlanHistoryItem, ActionPlanAttachment, } from '../action-plans/types';
14
+ export { ETaskPlanStatus, ETaskPlanPriority, ETaskPlanAssociationType, ETaskPlanTypeProgress, EAttachmentItemStatus, } from '../action-plans/types';
15
+ export { STATUS_COLORS, STATUS_TEXT_COLORS, STATUS_MAP, STATUS_LABELS, DEFAULT_ACTION_TYPES, PRIORITIES, CLOSED_STATUSES, PROGRESS_ALLOWED_STATUSES, } from '../action-plans/constants';
16
+ export { formatTime, formatTimeProgress, getProgressColor } from '../action-plans/utils/formatTime';
@@ -0,0 +1 @@
1
+ export * from '../audit-trail';
@@ -0,0 +1 @@
1
+ export { CustomFormFields, ReadOnlyTextField, FormTextField, FormDateField, FormTimeField, FormUrlField, FormNumericField, FormSingleSelectionField, FormMultiSelectionField, FormQuestionsField, ECustomFormFieldType, EFieldViewMode, ESelectionFieldDataSource, getFieldValue, shouldShowField, getFormFieldValues, setFormFieldValues, validateFields, type FieldAssociation, type FieldConfig, type TextFieldConfig, type NumberFieldConfig, type UrlFieldConfig, type SingleSelectionFieldConfig, type MultiSelectionFieldConfig, type QuestionsFieldConfig, type RowItem, type QuestionItem, type FormFieldValue, type BaseFieldProps, type CustomFormFieldsProps, } from '../custom-form-fields';
@@ -0,0 +1 @@
1
+ export { SingleFileUpload, type SingleFileUploadProps, type StoredFile, type FileUploadError, FORBIDDEN_FILE_TYPES, formatBytes, getFileExtension, } from '../file-upload';
@@ -70,7 +70,19 @@ export * from '../components/ui/chart';
70
70
  export * from '../components/ui/rich-text-editor';
71
71
  export * from '../components/ui/onboarding-dialog';
72
72
  export * from '../components/ui/split-button';
73
+ export * from '../components/ui/export-dialog';
74
+ export * from '../components/ui/timepicker';
75
+ export * from '../components/ui/electronic-signature-dialog';
73
76
  export * from '../components/ui/step-selector';
74
77
  export { ComboTree, type ComboTreeProps, type ComboTreeOption } from '../components/ui/combo-tree';
75
78
  export { UpdatesNotification, type UpdateNotification, type UpdateNotificationItem, type UpdatesNotificationProps } from '../components/ui/updates-notification';
76
79
  export { useUpdatesNotification } from '../hooks/useUpdatesNotification';
80
+ export * from '../components/ui/viewer-dialog';
81
+ export * from '../components/ui/online-editor-dialog';
82
+ export * from '../components/ui/iframe-dialog';
83
+ export * from '../components/ui/terms-of-use-dialog';
84
+ export * from '../components/ui/users-groups-selector';
85
+ export * from '../components/ui/multiselect-permissions';
86
+ export * from '../components/ui/report-request-list';
87
+ export * from '../components/ui/stimulsoft-viewer';
88
+ export * from '../components/dashboards';
@@ -0,0 +1,43 @@
1
+ import { StoredFile } from '../types';
2
+ export interface SingleFileUploadProps {
3
+ /** Pre-existing stored file (server-side) */
4
+ storedFile?: StoredFile | null;
5
+ /** Custom display name override */
6
+ customFileName?: string;
7
+ /** Allowed extensions (e.g. ['pdf', 'doc']). Empty = all allowed */
8
+ allowedExtensions?: string[];
9
+ /** Custom error message for extension validation */
10
+ customExtensionErrorMessage?: string;
11
+ /** Min file size in bytes (default: 1) */
12
+ minSizeInBytes?: number;
13
+ /** Max file size in bytes (default: 300MB) */
14
+ maxSizeInBytes?: number;
15
+ /** Show download button when file exists */
16
+ showDownloadButton?: boolean;
17
+ /** Show view button when file exists */
18
+ showViewButton?: boolean;
19
+ /** Show replace button when file exists */
20
+ showReplaceButton?: boolean;
21
+ /** Show remove/close button when file exists */
22
+ showCloseButton?: boolean;
23
+ /** Required field */
24
+ required?: boolean;
25
+ /** Touched state (for external form control) */
26
+ touched?: boolean;
27
+ /** Disabled state */
28
+ disabled?: boolean;
29
+ /** External error message */
30
+ error?: string;
31
+ /** Called when a valid file is selected */
32
+ onFileSelect?: (file: File) => void;
33
+ /** Called when file is removed */
34
+ onFileRemove?: () => void;
35
+ /** Called when file is replaced (before file dialog opens) */
36
+ onFileReplace?: () => void;
37
+ /** Called when download is requested */
38
+ onDownload?: (file: StoredFile) => Promise<void> | void;
39
+ /** Called when view is requested */
40
+ onView?: (file: StoredFile) => void;
41
+ className?: string;
42
+ }
43
+ export declare function SingleFileUpload({ storedFile, customFileName, allowedExtensions, customExtensionErrorMessage, minSizeInBytes, maxSizeInBytes, showDownloadButton, showViewButton, showReplaceButton, showCloseButton, required, touched, disabled, error: externalError, onFileSelect, onFileRemove, onFileReplace, onDownload, onView, className, }: SingleFileUploadProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export { SingleFileUpload } from './components/SingleFileUpload';
2
+ export type { SingleFileUploadProps } from './components/SingleFileUpload';
3
+ export type { StoredFile, FileUploadError } from './types';
4
+ export { FORBIDDEN_FILE_TYPES } from './types';
5
+ export { formatBytes } from './utils/formatBytes';
6
+ export { getFileExtension } from './utils/getFileExtension';
@@ -0,0 +1,11 @@
1
+ export interface StoredFile {
2
+ id: string;
3
+ name: string;
4
+ extension: string;
5
+ size: number;
6
+ }
7
+ export interface FileUploadError {
8
+ type: 'extension' | 'min-size' | 'max-size' | 'forbidden-type' | 'custom';
9
+ message?: string;
10
+ }
11
+ export declare const FORBIDDEN_FILE_TYPES: string[];
@@ -0,0 +1 @@
1
+ export declare function formatBytes(bytes: number): string;
@@ -0,0 +1 @@
1
+ export declare function getFileExtension(fileName: string): string;
@@ -9,7 +9,7 @@ interface UseSidebarResizeProps {
9
9
  }
10
10
  export declare function useSidebarResize({ direction, minWidth, // 14rem
11
11
  maxWidth, // 24rem
12
- defaultWidth, // ~17.5rem
12
+ defaultWidth, // ~18.125rem
13
13
  storageKey, onResize, isOpen }?: UseSidebarResizeProps): {
14
14
  width: number;
15
15
  isDragging: boolean;