forlogic-core 1.20.1 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.note/memory/patterns/single-scroll-pattern.md +30 -12
- package/README.md +0 -46
- package/dist/action-plans/components/ActionPlanAttachmentsTab.d.ts +18 -0
- package/dist/action-plans/components/ActionPlanCommentsTab.d.ts +18 -0
- package/dist/action-plans/components/ActionPlanCostTab.d.ts +10 -0
- package/dist/action-plans/components/ActionPlanGeneralTab.d.ts +18 -0
- package/dist/action-plans/components/ActionPlanHistoryTab.d.ts +13 -0
- package/dist/action-plans/components/ActionPlanPage.d.ts +25 -0
- package/dist/action-plans/components/ActionPlanPredecessorsTab.d.ts +10 -0
- package/dist/action-plans/components/ActionPlanProgressDialog.d.ts +13 -0
- package/dist/action-plans/components/ActionPlanProgressTab.d.ts +5 -0
- package/dist/action-plans/components/ActionPlanStatusBadge.d.ts +11 -0
- package/dist/action-plans/constants.d.ts +42 -0
- package/dist/action-plans/hooks/useActionPlan.d.ts +14 -0
- package/dist/action-plans/hooks/useActionPlanProgress.d.ts +15 -0
- package/dist/action-plans/index.d.ts +15 -0
- package/dist/action-plans/types.d.ts +353 -0
- package/dist/action-plans/utils/formatTime.d.ts +15 -0
- package/dist/approval-flow/components/ApprovalSidenav.d.ts +16 -0
- package/dist/approval-flow/components/ApproveDialog.d.ts +13 -0
- package/dist/approval-flow/components/SelectApproverDialog.d.ts +11 -0
- package/dist/approval-flow/index.d.ts +4 -0
- package/dist/approval-flow/types.d.ts +76 -0
- package/dist/assets/AccordionDoc-CGNlubG3.js +31 -0
- package/dist/assets/{ActionButtonDoc-DLJ_K9ib.js → ActionButtonDoc-CYtkXR0k.js} +2 -2
- package/dist/assets/ActionPlanDoc-BSuPRftQ.js +65 -0
- package/dist/assets/{AlertDoc-CY1ybZeG.js → AlertDoc-Cpvxneqg.js} +7 -7
- package/dist/assets/AliasUrlDoc-DIpUWf4Y.js +189 -0
- package/dist/assets/AppHeaderDoc-DNQErj_t.js +74 -0
- package/dist/assets/AppSidebarDoc-DkeQarDu.js +221 -0
- package/dist/assets/ApprovalFlowDoc-8YgXbhKJ.js +31 -0
- package/dist/assets/AuditLogDoc-BBvNcHIo.js +67 -0
- package/dist/assets/AuditTrailDoc-DgFHO-uo.js +17 -0
- package/dist/assets/AuthDoc-WIA_Aetl.js +200 -0
- package/dist/assets/{AvatarDoc-BLdMoyJd.js → AvatarDoc-B6go1C1T.js} +2 -2
- package/dist/assets/{BadgeDoc-CSNM1b6b.js → BadgeDoc-BONhfqB_.js} +2 -2
- package/dist/assets/BaseFormDoc-CuyUArcj.js +169 -0
- package/dist/assets/{BodyContentDoc-Bp6YmUWX.js → BodyContentDoc-CterHC1E.js} +2 -2
- package/dist/assets/{BreadcrumbDoc-D7tqqTvo.js → BreadcrumbDoc-Dwn9nLeO.js} +2 -2
- package/dist/assets/{ButtonDoc-C4JwIvU3.js → ButtonDoc-BOjRseZT.js} +2 -2
- package/dist/assets/ButtonGroupDoc-8IS6PPh4.js +7 -0
- package/dist/assets/{CalendarDoc-COlEKqmv.js → CalendarDoc-CMwIEqgT.js} +3 -3
- package/dist/assets/{CardDoc-BVhMoC2w.js → CardDoc-BZz1CVg2.js} +2 -2
- package/dist/assets/ChartDoc-B5vZVtqD.js +76 -0
- package/dist/assets/{CheckboxDoc-Bcqpln9_.js → CheckboxDoc-lAbYO9I5.js} +2 -2
- package/dist/assets/ColorPickerDoc-Dpsprp4N.js +10 -0
- package/dist/assets/{ColorsFoundationDoc-uO6IiJbS.js → ColorsFoundationDoc-CCHeSL3p.js} +1 -1
- package/dist/assets/ComboTreeDoc-D4dTkIt-.js +46 -0
- package/dist/assets/ComboboxDoc-CqqZPvZq.js +134 -0
- package/dist/assets/ComponentDocTemplate-CQbBhfvZ.js +1 -0
- package/dist/assets/{ContextMenuDoc-C4-_0NLp.js → ContextMenuDoc-D3jC-MVA.js} +2 -2
- package/dist/assets/{ContextsDoc-Cj9Aaoyo.js → ContextsDoc-XFH0-JdS.js} +30 -3
- package/dist/assets/{CreateCrudPageDoc-D_SnMRJ2.js → CreateCrudPageDoc-CpuiWI-g.js} +2 -2
- package/dist/assets/{CrudActionBarDoc-BYqtIabp.js → CrudActionBarDoc-wuBGXD9Y.js} +4 -4
- package/dist/assets/CrudGridDoc-BYWqSXBH.js +85 -0
- package/dist/assets/CrudOverviewDoc-B_bk2a2t.js +14 -0
- package/dist/assets/{CrudPrimitivesDoc-BRS86nWg.js → CrudPrimitivesDoc-CxaTB94A.js} +4 -4
- package/dist/assets/{CrudTableDoc-Daw8u2G_.js → CrudTableDoc-Dga1VgCu.js} +5 -5
- package/dist/assets/CustomFormFieldsDoc-C1hwwSl3.js +33 -0
- package/dist/assets/DashboardFormDoc-BUDCmrMl.js +49 -0
- package/dist/assets/DashboardGeneralViewDoc-Cyg1SIiG.js +71 -0
- package/dist/assets/DashboardGridDoc-BavePiRF.js +49 -0
- package/dist/assets/DashboardListDoc-CLyMA6UK.js +37 -0
- package/dist/assets/DashboardOverviewDoc-DRVvNIF1.js +35 -0
- package/dist/assets/DashboardPanelRendererDoc--mfwb8Nc.js +60 -0
- package/dist/assets/DashboardPanelsBasicDoc-BQ2V_52D.js +62 -0
- package/dist/assets/DashboardPanelsCartesianDoc-sy-hcVQY.js +75 -0
- package/dist/assets/DashboardPanelsSpecialDoc-DsIUCRRP.js +83 -0
- package/dist/assets/DashboardViewDoc-CtlCNlEF.js +45 -0
- package/dist/assets/DataListDoc-DUy88lCQ.js +13 -0
- package/dist/assets/DesignSystemHome-DHl9YtbH.js +1 -0
- package/dist/assets/{DialogDoc-DCpRy4rg.js → DialogDoc-CMQqnTV-.js} +2 -2
- package/dist/assets/{DropdownMenuDoc-DT6LBa8Z.js → DropdownMenuDoc-S7X9csGt.js} +5 -5
- package/dist/assets/ElectronicSignatureDialogDoc-BfithaL_.js +57 -0
- package/dist/assets/{EmptyStateDoc-wydc09gG.js → EmptyStateDoc-CHGCiGIk.js} +2 -2
- package/dist/assets/{EnvironmentsDoc-amIriwDD.js → EnvironmentsDoc-DZHJZ2nm.js} +4 -4
- package/dist/assets/{ErrorBoundaryDoc-BEixy_Gl.js → ErrorBoundaryDoc-DoaAg68p.js} +2 -2
- package/dist/assets/ExampleActionPlanPage-C0fIMZCD.js +1 -0
- package/dist/assets/ExampleAppDoc-DzIU81Fn.js +1 -0
- package/dist/assets/ExampleCard-DuLrb3t-.js +1 -0
- package/dist/assets/ExampleCrudReportsPage-M0pz6tdM.js +1 -0
- package/dist/assets/ExampleDashboardPage-CRG5r3Vw.js +1 -0
- package/dist/assets/ExampleIdeasPage-I84ZMLY4.js +1 -0
- package/dist/assets/ExampleImportWizardPage-h4YqrrSe.js +1 -0
- package/dist/assets/ExampleSettingsPage-CwdWqoaP.js +1 -0
- package/dist/assets/FileUploadDoc-9-UujFNX.js +34 -0
- package/dist/assets/FilterBar-DDTqqUfZ.js +1 -0
- package/dist/assets/{FormDoc-DxoRt6p7.js → FormDoc-CVES6n3d.js} +2 -2
- package/dist/assets/{FoundationOverview-CxSbumIt.js → FoundationOverview-DT0u11Gz.js} +1 -1
- package/dist/assets/{GridDoc-BpQqCMUE.js → GridDoc-CbHFSILF.js} +2 -2
- package/dist/assets/{HooksDoc-JNODhbaF.js → HooksDoc-Ctxdk6Wq.js} +5 -5
- package/dist/assets/{HoverCardDoc-CdqiYrIb.js → HoverCardDoc-8Wkaafdj.js} +2 -2
- package/dist/assets/I18nDoc-D3Q2m7ik.js +167 -0
- package/dist/assets/IconPickerDoc-DZ26Gdpg.js +10 -0
- package/dist/assets/{IconsFoundationDoc-CrymfxTI.js → IconsFoundationDoc-xOxtC7CW.js} +5 -5
- package/dist/assets/{InputDoc-BK-SdpJ7.js → InputDoc-BhztAiuJ.js} +4 -4
- package/dist/assets/{LabelDoc-DHvgzhaJ.js → LabelDoc-A4hmTRRV.js} +2 -2
- package/dist/assets/LeadershipDoc-CqOSfWsP.js +452 -0
- package/dist/assets/{MediaDoc-B_vqnf72.js → MediaDoc-C78gvC8p.js} +2 -2
- package/dist/assets/MenubarDoc-DCnmd2tO.js +165 -0
- package/dist/assets/{ModuleAccessDoc-Nuxb4S27.js → ModuleAccessDoc-CmD5nHDp.js} +2 -2
- package/dist/assets/{ModulesDialogDoc-iJWLkOZo.js → ModulesDialogDoc-DVit1CA-.js} +2 -2
- package/dist/assets/MultiselectPermissionsDoc-tlJMs04L.js +34 -0
- package/dist/assets/NavigationMenuDoc-q1fbc89j.js +116 -0
- package/dist/assets/{OnboardingDialogDoc-xBL-rXeZ.js → OnboardingDialogDoc-3A3eBYrq.js} +2 -2
- package/dist/assets/{PaginationDoc-DqtRgXnF.js → PaginationDoc-B8-bMz5J.js} +2 -2
- package/dist/assets/{PaginationDoc-CfvwxCMe.js → PaginationDoc-BkGdxHL3.js} +5 -5
- package/dist/assets/{PlacesDoc-nckioEzg.js → PlacesDoc-CKPO6ATs.js} +2 -2
- package/dist/assets/{PopoverDoc-C3o2CZCT.js → PopoverDoc-CJPU4Ags.js} +3 -3
- package/dist/assets/{ProgressDoc-BmWBNMPA.js → ProgressDoc-CpjbTL4o.js} +2 -2
- package/dist/assets/{QualiexUserFieldDoc-CE1e4mx6.js → QualiexUserFieldDoc-DDwumlRw.js} +2 -2
- package/dist/assets/{RadioGroupDoc-DMZH6NmR.js → RadioGroupDoc-D6tSZz8G.js} +2 -2
- package/dist/assets/{RadiusDoc-BOZD3gPV.js → RadiusDoc-B4xSnajw.js} +1 -1
- package/dist/assets/ReportRequestListDoc-C0LIaU8P.js +15 -0
- package/dist/assets/{RequiredFieldsCounterDoc-CG-lmSSy.js → RequiredFieldsCounterDoc-COesoSdx.js} +2 -2
- package/dist/assets/ResizableDoc-CW0-XQuB.js +104 -0
- package/dist/assets/{RichTextEditorDoc-m50ll-Od.js → RichTextEditorDoc-C8c_XA9P.js} +2 -2
- package/dist/assets/{ScrollAreaDoc-BzJ-APXo.js → ScrollAreaDoc-BxtoAPaZ.js} +2 -2
- package/dist/assets/{SecurityDoc-B34gVeiV.js → SecurityDoc-wOVqpg2F.js} +2 -2
- package/dist/assets/{SelectDoc-DXRv7QHK.js → SelectDoc-C75gtY9D.js} +2 -2
- package/dist/assets/{SeparatorDoc-DcNh8k0P.js → SeparatorDoc-BjQBPB1P.js} +2 -2
- package/dist/assets/{ServicesDoc-8aXBd6yg.js → ServicesDoc-CXTctwBl.js} +3 -3
- package/dist/assets/ShadowsDoc-C6Lw8_x2.js +9 -0
- package/dist/assets/SignDoc-Bh5ZUg5x.js +66 -0
- package/dist/assets/{SkeletonDoc-BWgqgbDY.js → SkeletonDoc-rTLGK5VE.js} +8 -8
- package/dist/assets/SliderDoc-JMAMDub7.js +41 -0
- package/dist/assets/{SpacingDoc-BzburM-r.js → SpacingDoc-RljOrpwA.js} +1 -1
- package/dist/assets/{SplitButtonDoc-BYUysmJp.js → SplitButtonDoc-CvShUW3w.js} +3 -3
- package/dist/assets/{StepSelectorDoc-PB1k4v7F.js → StepSelectorDoc-C-nAap9H.js} +2 -2
- package/dist/assets/{SwitchDoc-BLOG6kfj.js → SwitchDoc-DLnqmkPr.js} +2 -2
- package/dist/assets/{TableDoc-Dwcs-lop.js → TableDoc-B8EpWLVg.js} +2 -2
- package/dist/assets/{TabsDoc-Ovkh8ArV.js → TabsDoc-DIBtl_uC.js} +2 -2
- package/dist/assets/TeamSelectorDoc-B7OnCbL7.js +10 -0
- package/dist/assets/TermsOfUseDoc-Bb-pw08s.js +16 -0
- package/dist/assets/{TextareaDoc-DsBYxmbr.js → TextareaDoc-DGnqMqEC.js} +4 -4
- package/dist/assets/{ToastDoc-BbZaFE_A.js → ToastDoc-DjYyc7ae.js} +4 -4
- package/dist/assets/{ToggleDoc-C28vbvhp.js → ToggleDoc-C9ZOVjkY.js} +2 -2
- package/dist/assets/{TooltipDoc-DL5cnLak.js → TooltipDoc-BEx4l9-i.js} +7 -7
- package/dist/assets/{TruncatedCellDoc-BuDA8QcY.js → TruncatedCellDoc-BbV1bRSY.js} +2 -2
- package/dist/assets/TypographyFoundationDoc-CUDYjRo9.js +7 -0
- package/dist/assets/UpdatesNotificationDoc-7nyjzLMJ.js +29 -0
- package/dist/assets/UsersGroupsSelectorDoc-C0KlTAL5.js +18 -0
- package/dist/assets/{UtilitiesDoc-CrQhyEfz.js → UtilitiesDoc-DGxaHVV1.js} +2 -2
- package/dist/assets/ViewerDialogsDoc-CnTPTEz0.js +1 -0
- package/dist/assets/{blocks-DO93nPjs.js → blocks-B6LrJeAM.js} +1 -1
- package/dist/assets/building-DeVappnD.js +1 -0
- package/dist/assets/{calendar-days-cMfwBSZx.js → calendar-days-BQ0na5kM.js} +1 -1
- package/dist/assets/check-check-C_-PJCJa.js +1 -0
- package/dist/assets/circle-plus-CpIcep-O.js +1 -0
- package/dist/assets/{circle-x-BVAVJ_oz.js → circle-x-jPpBPew0.js} +1 -1
- package/dist/assets/clipboard-list-CXNPdciZ.js +1 -0
- package/dist/assets/cloud-upload-BEjzumjl.js +1 -0
- package/dist/assets/{crown-B2MTZDnM.js → crown-CqNsQIsm.js} +1 -1
- package/dist/assets/date-picker-BW3eGOe_.js +1 -0
- package/dist/assets/disabled-menu-item-C2YaMvSt.js +1 -0
- package/dist/assets/{drawer-oTqCOtsC.js → drawer-D5rflIcD.js} +2 -2
- package/dist/assets/file-braces-DFb5X9so.js +1 -0
- package/dist/assets/{file-pen-line-CXv-Eye-.js → file-pen-line-CyUGKkEN.js} +1 -1
- package/dist/assets/{git-branch-V6-h6P9K.js → git-branch-BcXv9mpp.js} +1 -1
- package/dist/assets/{globe-CaUBIJU8.js → globe-CpMIWAcv.js} +1 -1
- package/dist/assets/{hash-B4MTXppl.js → hash-cQWdKjya.js} +1 -1
- package/dist/assets/hourglass-BahQ3eDv.js +1 -0
- package/dist/assets/hover-card-R66N85sZ.js +1 -0
- package/dist/assets/iframe-dialog-V0mW5aBb.js +1 -0
- package/dist/assets/index-DkiftrvI.js +352 -0
- package/dist/assets/index-nmBjO9Th.css +1 -0
- package/dist/assets/index.d.ts +1 -0
- package/dist/assets/{life-buoy-BRndExxh.js → life-buoy-ByXiPddz.js} +1 -1
- package/dist/assets/loading-state-Cb5_t5uE.js +1 -0
- package/dist/assets/lucide-react-Cp3Yw3Zm.js +1 -0
- package/dist/assets/{package-3G45ARQh.js → package-B3-pVvPM.js} +1 -1
- package/dist/assets/{pen-BYSSwjK4.js → pen-Bi_lmmKT.js} +1 -1
- package/dist/assets/pin-DVsSl8QA.js +1 -0
- package/dist/assets/printer-BnJ8B6m-.js +1 -0
- package/dist/assets/radio-group-BHAaNGsm.js +1 -0
- package/dist/assets/{server-p0Sb0mKI.js → server-CtzFTfKR.js} +1 -1
- package/dist/assets/{share-2-D-ZhCCq2.js → share-2-Dv8Do445.js} +1 -1
- package/dist/assets/shield-check-CFXjOV_w.js +1 -0
- package/dist/assets/{shield-x-Q7hAXWsG.js → shield-x-DJTRfVux.js} +1 -1
- package/dist/assets/slider-v9tXBSnB.js +1 -0
- package/dist/assets/smartphone-BSNR60L7.js +1 -0
- package/dist/assets/step-selector-ATTh_9Wa.js +1 -0
- package/dist/assets/{text-align-start-6aYQqbX4.js → text-align-start-qE-MbYYw.js} +1 -1
- package/dist/assets/thumbs-up-D_XIW_uX.js +1 -0
- package/dist/assets/{trash-DveAOiLF.js → trash-DTWQwpwA.js} +1 -1
- package/dist/assets/trending-up-jip5-leJ.js +1 -0
- package/dist/assets/{useMockCrud-GY0KxHXr.js → useMockCrud-CN4vjyOZ.js} +1 -1
- package/dist/assets/{user-check-CoGNBfIk.js → user-check-BlH3EDWK.js} +1 -1
- package/dist/assets/{user-plus-Bad2xWIT.js → user-plus-BqwXwD-c.js} +1 -1
- package/dist/audit-trail/components/AuditTrailDetails.d.ts +17 -0
- package/dist/audit-trail/components/AuditTrailFilter.d.ts +19 -0
- package/dist/audit-trail/components/AuditTrailPage.d.ts +30 -0
- package/dist/audit-trail/index.d.ts +9 -0
- package/dist/audit-trail/types.d.ts +151 -0
- package/dist/audit-trail/utils.d.ts +38 -0
- package/dist/components/dashboards/dashboard-form.d.ts +50 -0
- package/dist/components/dashboards/dashboard-general-view.d.ts +109 -0
- package/dist/components/dashboards/dashboard-grid.d.ts +41 -0
- package/dist/components/dashboards/dashboard-list.d.ts +31 -0
- package/dist/components/dashboards/dashboard-panel-renderer.d.ts +21 -0
- package/dist/components/dashboards/dashboard-view.d.ts +38 -0
- package/dist/components/dashboards/helpers.d.ts +47 -0
- package/dist/components/dashboards/index.d.ts +9 -0
- package/dist/components/dashboards/panels/burndown-panel.d.ts +26 -0
- package/dist/components/dashboards/panels/cartesian-panel.d.ts +46 -0
- package/dist/components/dashboards/panels/index.d.ts +14 -0
- package/dist/components/dashboards/panels/list-panel.d.ts +30 -0
- package/dist/components/dashboards/panels/matrix-risk-panel.d.ts +49 -0
- package/dist/components/dashboards/panels/numeric-panel.d.ts +22 -0
- package/dist/components/dashboards/panels/panel-error.d.ts +8 -0
- package/dist/components/dashboards/panels/panel-header.d.ts +17 -0
- package/dist/components/dashboards/panels/panel-loader.d.ts +7 -0
- package/dist/components/dashboards/panels/panel-no-data.d.ts +6 -0
- package/dist/components/dashboards/panels/panel-unavailable.d.ts +6 -0
- package/dist/components/dashboards/panels/pareto-panel.d.ts +20 -0
- package/dist/components/dashboards/panels/performance-panel.d.ts +24 -0
- package/dist/components/dashboards/panels/pie-panel.d.ts +19 -0
- package/dist/components/dashboards/panels/text-panel.d.ts +18 -0
- package/dist/components/dashboards/types.d.ts +525 -0
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/electronic-signature-dialog.d.ts +21 -0
- package/dist/components/ui/export-dialog.d.ts +28 -0
- package/dist/components/ui/iframe-dialog.d.ts +14 -0
- package/dist/components/ui/multiselect-permissions.d.ts +59 -0
- package/dist/components/ui/online-editor-dialog.d.ts +18 -0
- package/dist/components/ui/report-request-list.d.ts +44 -0
- package/dist/components/ui/resizable.d.ts +1 -1
- package/dist/components/ui/stimulsoft-viewer.d.ts +20 -0
- package/dist/components/ui/terms-of-use-dialog.d.ts +56 -0
- package/dist/components/ui/timepicker.d.ts +11 -0
- package/dist/components/ui/users-groups-selector.d.ts +44 -0
- package/dist/components/ui/viewer-dialog.d.ts +77 -0
- package/dist/custom-form-fields/components/CustomFormFields.d.ts +8 -0
- package/dist/custom-form-fields/fields/FormDateField.d.ts +6 -0
- package/dist/custom-form-fields/fields/FormMultiSelectionField.d.ts +6 -0
- package/dist/custom-form-fields/fields/FormNumericField.d.ts +6 -0
- package/dist/custom-form-fields/fields/FormQuestionsField.d.ts +6 -0
- package/dist/custom-form-fields/fields/FormSingleSelectionField.d.ts +6 -0
- package/dist/custom-form-fields/fields/FormTextField.d.ts +6 -0
- package/dist/custom-form-fields/fields/FormTimeField.d.ts +6 -0
- package/dist/custom-form-fields/fields/FormUrlField.d.ts +6 -0
- package/dist/custom-form-fields/fields/ReadOnlyTextField.d.ts +6 -0
- package/dist/custom-form-fields/index.d.ts +13 -0
- package/dist/custom-form-fields/types.d.ts +143 -0
- package/dist/exports/action-plans.d.ts +16 -0
- package/dist/exports/audit-trail.d.ts +1 -0
- package/dist/exports/custom-form-fields.d.ts +1 -0
- package/dist/exports/file-upload.d.ts +1 -0
- package/dist/exports/ui.d.ts +12 -0
- package/dist/file-upload/components/SingleFileUpload.d.ts +43 -0
- package/dist/file-upload/index.d.ts +6 -0
- package/dist/file-upload/types.d.ts +11 -0
- package/dist/file-upload/utils/formatBytes.d.ts +1 -0
- package/dist/file-upload/utils/getFileExtension.d.ts +1 -0
- package/dist/hooks/useSidebarResize.d.ts +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.esm.js +1 -1
- package/dist/index.html +9 -11
- package/dist/index.js +1 -1
- package/dist/setup/favicon.d.ts +1 -0
- package/dist/team-selector/components/TeamSelector.d.ts +24 -0
- package/dist/team-selector/index.d.ts +2 -0
- package/dist/team-selector/types.d.ts +10 -0
- package/docs/ICON_MIGRATION_GUIDE.md +177 -0
- package/docs/PUBLISH.md +3 -3
- package/package.json +1 -5
- package/dist/README.md +0 -1079
- package/dist/assets/AccordionDoc-BVPUJk8G.js +0 -31
- package/dist/assets/AppHeaderDoc-Crkw4dA9.js +0 -67
- package/dist/assets/AppSidebarDoc-ET-4j6wV.js +0 -204
- package/dist/assets/AuthDoc-B4v4Nci5.js +0 -192
- package/dist/assets/BaseFormDoc-DXiYuN6-.js +0 -169
- package/dist/assets/ButtonGroupDoc-QFfjC7Pm.js +0 -7
- package/dist/assets/ChartDoc-BJ14EjI2.js +0 -111
- package/dist/assets/ColorPickerDoc-CcfmSwyC.js +0 -10
- package/dist/assets/ComboTreeDoc-R4qE6XwB.js +0 -46
- package/dist/assets/ComboboxDoc-JIo_-gSN.js +0 -134
- package/dist/assets/ComponentDocTemplate-CRbRY-v5.js +0 -1
- package/dist/assets/CrudGridDoc-DspxQrq5.js +0 -85
- package/dist/assets/CrudOverviewDoc-DLcOL_HZ.js +0 -14
- package/dist/assets/DataListDoc-BrgVNhhR.js +0 -13
- package/dist/assets/DesignSystemHome-BFBNqq1J.js +0 -1
- package/dist/assets/I18nDoc-B6LMXnE3.js +0 -232
- package/dist/assets/IconPickerDoc-BRdy58IC.js +0 -10
- package/dist/assets/LeadershipDoc-DRiB0spL.js +0 -416
- package/dist/assets/MenubarDoc-Zvgczxe2.js +0 -165
- package/dist/assets/NavigationMenuDoc-CeWun1VF.js +0 -116
- package/dist/assets/ResizableDoc-CqGkv6Cd.js +0 -104
- package/dist/assets/ShadowsDoc-Brl4hIDI.js +0 -9
- package/dist/assets/SignDoc-BdwerR-2.js +0 -66
- package/dist/assets/SliderDoc-E-NjbYVk.js +0 -41
- package/dist/assets/TypographyFoundationDoc-CPdH4PHa.js +0 -7
- package/dist/assets/circle-plus-D3NftMzS.js +0 -1
- package/dist/assets/date-picker-zhJU-_kM.js +0 -1
- package/dist/assets/disabled-menu-item-C16xsaVs.js +0 -1
- package/dist/assets/hover-card-DEuucfxP.js +0 -1
- package/dist/assets/index-CE0k7Rdh.js +0 -312
- package/dist/assets/index-Cx3adT_u.css +0 -1
- package/dist/assets/lucide-react-t7dCa4lv.js +0 -1
- package/dist/assets/monitor-Dg3HKTSE.js +0 -1
- package/dist/assets/pin-CMYagNhs.js +0 -1
- package/dist/assets/radio-group-BVun_Tmt.js +0 -1
- package/dist/assets/step-selector-DHxgT2FL.js +0 -1
- package/dist/bin/bootstrap.js +0 -40
- package/dist/bin/pull-docs.js +0 -186
- package/dist/docs/KNOWLEDGE.md +0 -109
- package/dist/leadership/components/LeaderRow.d.ts +0 -9
|
@@ -3,20 +3,38 @@ Updated: now
|
|
|
3
3
|
|
|
4
4
|
O padrão de Scroll Único evita barras de rolagem duplicadas na aplicação.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|------------|------------------|
|
|
8
|
-
| `AppLayout` | `overflow-hidden` - delega scroll para filhos |
|
|
9
|
-
| `BodyContent` | `h-full overflow-y-auto` - gerencia scroll da página |
|
|
10
|
-
| Custom | `h-full` + `ScrollArea` interno quando necessário |
|
|
6
|
+
## Cadeia de layout do AppLayout
|
|
11
7
|
|
|
12
|
-
|
|
8
|
+
```text
|
|
9
|
+
div.h-screen.overflow-hidden ← preso ao viewport, sem scroll
|
|
10
|
+
├─ header (sticky top-0) ← cabeçalho fixo
|
|
11
|
+
└─ div.sidebar-container.flex-1.overflow-hidden
|
|
12
|
+
├─ AppSidebar ← sidebar com scroll próprio
|
|
13
|
+
└─ main.flex-1.overflow-hidden
|
|
14
|
+
└─ div.flex-1.min-h-0.overflow-y-auto ← SCROLL ATIVO aqui
|
|
15
|
+
└─ BodyContent (h-full)
|
|
16
|
+
└─ ContentContainer (overflow-visible) ← delega scroll para cima
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
| Componente | Classes | Responsabilidade |
|
|
20
|
+
|------------|---------|------------------|
|
|
21
|
+
| `AppLayout` raiz | `h-screen overflow-hidden` | Prende layout ao viewport |
|
|
22
|
+
| Container de conteúdo | `flex-1 min-h-0 overflow-y-auto` | Gerencia scroll da página |
|
|
23
|
+
| `BodyContent` | `h-full` | Container flexível |
|
|
24
|
+
| `ContentContainer` | `overflow-visible` | Delega scroll para o pai |
|
|
25
|
+
|
|
26
|
+
**Regra**: Apenas UM nível da hierarquia deve ter scroll ativo — o `div.overflow-y-auto` dentro do `<main>`.
|
|
13
27
|
|
|
14
28
|
```tsx
|
|
15
|
-
// ❌ ERRADO - h-screen
|
|
16
|
-
<div className="h-screen overflow-auto">
|
|
29
|
+
// ❌ ERRADO - min-h-screen permite crescer além do viewport
|
|
30
|
+
<div className="min-h-screen overflow-auto">
|
|
17
31
|
|
|
18
|
-
// ✅ CORRETO - h-
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
32
|
+
// ✅ CORRETO - h-screen trava no viewport
|
|
33
|
+
<div className="h-screen overflow-hidden">
|
|
34
|
+
...
|
|
35
|
+
<div className="flex-1 min-h-0 overflow-y-auto">
|
|
36
|
+
<BodyContent>...</BodyContent>
|
|
37
|
+
</div>
|
|
22
38
|
```
|
|
39
|
+
|
|
40
|
+
**`min-h-0`** é essencial no container com `overflow-y-auto` — sem ele, flex items não encolhem abaixo do tamanho do conteúdo.
|
package/README.md
CHANGED
|
@@ -27,15 +27,6 @@ npm install forlogic-core
|
|
|
27
27
|
|
|
28
28
|
**Nota**: O npm/yarn irá alertar automaticamente se alguma peer dependency estiver faltando ou com versão incompatível.
|
|
29
29
|
|
|
30
|
-
### Sincronizar regras e convenções
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
npx lib-update
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
> Copia apenas `docs/KNOWLEDGE.md` (regras + mapa de módulos) e `.note/memory/rules/`.
|
|
37
|
-
> Documentação de componentes é acessada via rota `/ds` ou cross-project.
|
|
38
|
-
|
|
39
30
|
### ⚠️ IMPORTANTE: Imports de i18n
|
|
40
31
|
|
|
41
32
|
**Sempre** importe hooks de internacionalização do `forlogic-core`, nunca diretamente de `react-i18next`:
|
|
@@ -117,7 +108,6 @@ src/components/SplitButton.tsx // Existe na lib (a partir de v1.12.2)
|
|
|
117
108
|
| `/design_system` | Design System com todos os componentes documentados |
|
|
118
109
|
| `forlogic-core/lib/exports/ui.ts` | Lista de exports de UI |
|
|
119
110
|
| `forlogic-core/lib/index.ts` | Index principal com todos os exports |
|
|
120
|
-
| `npx lib-update` | Sincroniza regras e KNOWLEDGE.md |
|
|
121
111
|
|
|
122
112
|
### ⚠️ Exceções (quando PODE criar localmente)
|
|
123
113
|
|
|
@@ -1040,40 +1030,4 @@ function MeuDialog({ open, onOpenChange }) {
|
|
|
1040
1030
|
- "Adicione navegação para criar" (ação ≠ navegação)
|
|
1041
1031
|
- "Crie um link para nova entidade" (link = navegação, não ação)
|
|
1042
1032
|
|
|
1043
|
-
## 🛠️ CLI: Sincronizar Regras e Convenções
|
|
1044
|
-
|
|
1045
|
-
O `forlogic-core` disponibiliza um comando CLI para sincronizar regras e convenções arquiteturais para projetos consumidores.
|
|
1046
|
-
|
|
1047
|
-
### Uso
|
|
1048
|
-
|
|
1049
|
-
```bash
|
|
1050
|
-
# Via npx (recomendado)
|
|
1051
|
-
npx lib-update
|
|
1052
|
-
|
|
1053
|
-
# Ou adicione ao package.json do seu projeto:
|
|
1054
|
-
{
|
|
1055
|
-
"scripts": {
|
|
1056
|
-
"lib-update": "lib-update"
|
|
1057
|
-
}
|
|
1058
|
-
}
|
|
1059
|
-
|
|
1060
|
-
# E execute:
|
|
1061
|
-
npm run lib-update
|
|
1062
|
-
```
|
|
1063
|
-
|
|
1064
|
-
### O que é sincronizado
|
|
1065
|
-
|
|
1066
|
-
| Arquivo/Diretório | Descrição |
|
|
1067
|
-
| ----------------------- | ------------------------------------------------ |
|
|
1068
|
-
| `docs/KNOWLEDGE.md` | Regras críticas + mapa de módulos para IA/Lovable |
|
|
1069
|
-
| `.note/memory/rules/` | Regras de schema, RLS, índices, .env |
|
|
1070
|
-
|
|
1071
|
-
### O que NÃO é sincronizado (leitura via cross-project → projeto **Admin**)
|
|
1072
|
-
|
|
1073
|
-
| Recurso | Como acessar |
|
|
1074
|
-
| --------------------------- | --------------------------------------------------------- |
|
|
1075
|
-
| Documentação de componentes | Rota `/ds` no projeto **Admin** ou cross-project |
|
|
1076
|
-
| Props, exemplos, tipos | Ler dos `*Doc.tsx` via cross-project → projeto **Admin** |
|
|
1077
|
-
| Padrões de layout/CRUD | `.note/memory/patterns/` via cross-project → **Admin** |
|
|
1078
|
-
|
|
1079
1033
|
> 💡 A IA consegue ler o código-fonte do forlogic-core no projeto **Admin** via cross-project visibility.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ActionPlanAttachment } from '../types';
|
|
2
|
+
interface ActionPlanAttachmentsTabProps {
|
|
3
|
+
attachments?: ActionPlanAttachment[];
|
|
4
|
+
onUpload?: (file: File) => Promise<any> | void;
|
|
5
|
+
onDelete?: (attachmentId: string) => Promise<any> | void;
|
|
6
|
+
onRename?: (attachmentId: string, newName: string) => Promise<any> | void;
|
|
7
|
+
onDownload?: (attachmentId: string) => Promise<any> | void;
|
|
8
|
+
onView?: (attachmentId: string) => Promise<any> | void;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Aba de Anexos do Plano de Ação
|
|
13
|
+
*
|
|
14
|
+
* Portado de FlcAttachmentsComponent (flc-attachments).
|
|
15
|
+
* Suporta upload, visualização, download, renomear e exclusão de arquivos.
|
|
16
|
+
*/
|
|
17
|
+
export declare function ActionPlanAttachmentsTab({ attachments, onUpload, onDelete, onRename, onDownload, onView, disabled, }: ActionPlanAttachmentsTabProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ActionPlanComment } from '../types';
|
|
2
|
+
interface ActionPlanCommentsTabProps {
|
|
3
|
+
comments?: ActionPlanComment[];
|
|
4
|
+
currentUserId?: string;
|
|
5
|
+
onAdd?: (text: string) => Promise<any> | void;
|
|
6
|
+
onEdit?: (comment: ActionPlanComment) => Promise<any> | void;
|
|
7
|
+
onDelete?: (commentId: string) => Promise<any> | void;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
maxLength?: number;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Aba de Comentários do Plano de Ação
|
|
13
|
+
*
|
|
14
|
+
* Portado de FlcCommentsComponent (flc-comments).
|
|
15
|
+
* Suporta criação, edição e exclusão de comentários com avatar e timestamp.
|
|
16
|
+
*/
|
|
17
|
+
export declare function ActionPlanCommentsTab({ comments, currentUserId, onAdd, onEdit, onDelete, disabled, maxLength, }: ActionPlanCommentsTabProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ActionPlanCost } from '../types';
|
|
2
|
+
interface ActionPlanCostTabProps {
|
|
3
|
+
costs?: ActionPlanCost[];
|
|
4
|
+
onAdd?: (cost: Omit<ActionPlanCost, 'id'>) => void;
|
|
5
|
+
onEdit?: (cost: ActionPlanCost) => void;
|
|
6
|
+
onDelete?: (costId: string) => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function ActionPlanCostTab({ costs, onAdd, onEdit, onDelete, disabled, }: ActionPlanCostTabProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ActionPlan, ActionPlanPageProps } from '../types';
|
|
2
|
+
interface ActionPlanGeneralTabProps {
|
|
3
|
+
formData: Partial<ActionPlan>;
|
|
4
|
+
updateField: (field: keyof ActionPlan, value: any) => void;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
users?: ActionPlanPageProps['users'];
|
|
7
|
+
places?: ActionPlanPageProps['places'];
|
|
8
|
+
actionTypes?: ActionPlanPageProps['actionTypes'];
|
|
9
|
+
causes?: ActionPlanPageProps['causes'];
|
|
10
|
+
parentActions?: ActionPlanPageProps['parentActions'];
|
|
11
|
+
config?: ActionPlanPageProps['config'];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Aba Geral do formulário de Plano de Ação
|
|
15
|
+
* Contém todos os campos principais configuráveis
|
|
16
|
+
*/
|
|
17
|
+
export declare function ActionPlanGeneralTab({ formData, updateField, disabled, users, places, actionTypes, causes, parentActions, config, }: ActionPlanGeneralTabProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ActionPlanHistoryItem } from '../types';
|
|
2
|
+
interface ActionPlanHistoryTabProps {
|
|
3
|
+
history?: ActionPlanHistoryItem[];
|
|
4
|
+
isLoading?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Aba de Histórico do Plano de Ação
|
|
8
|
+
*
|
|
9
|
+
* Portado de FlcHistoryComponent (flc-history).
|
|
10
|
+
* Exibe uma timeline de eventos do plano de ação.
|
|
11
|
+
*/
|
|
12
|
+
export declare function ActionPlanHistoryTab({ history, isLoading, }: ActionPlanHistoryTabProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { ActionPlanPageProps } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* ActionPlanPage — Componente orquestrador de página full para planos de ação
|
|
4
|
+
*
|
|
5
|
+
* Renderiza o formulário completo com tabs: Geral, Progresso, Predecessores, Custos,
|
|
6
|
+
* Anexos, Comentários e Histórico.
|
|
7
|
+
*
|
|
8
|
+
* O componente é agnóstico de backend — recebe todos os dados e callbacks via props.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* <ActionPlanPage
|
|
13
|
+
* actionPlan={actionPlan}
|
|
14
|
+
* config={{ enablePredecessors: true, enableCosts: true }}
|
|
15
|
+
* users={users}
|
|
16
|
+
* places={places}
|
|
17
|
+
* progress={progress}
|
|
18
|
+
* onSave={handleSave}
|
|
19
|
+
* onCancel={() => navigate(-1)}
|
|
20
|
+
* onChangeStatus={handleChangeStatus}
|
|
21
|
+
* onReportProgress={handleReportProgress}
|
|
22
|
+
* />
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function ActionPlanPage(props: ActionPlanPageProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ActionPlanPredecessor, ActionPlanOption } from '../types';
|
|
2
|
+
interface ActionPlanPredecessorsTabProps {
|
|
3
|
+
predecessors?: ActionPlanPredecessor[];
|
|
4
|
+
availablePredecessors?: ActionPlanOption[];
|
|
5
|
+
onAdd?: (predecessorId: string) => void;
|
|
6
|
+
onRemove?: (predecessorId: string) => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function ActionPlanPredecessorsTab({ predecessors, availablePredecessors, onAdd, onRemove, disabled, }: ActionPlanPredecessorsTabProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ActionPlanReport } from '../types';
|
|
2
|
+
interface ActionPlanProgressDialogProps {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onOpenChange: (open: boolean) => void;
|
|
5
|
+
report: ActionPlanReport | null;
|
|
6
|
+
onSave: (report: ActionPlanReport) => void;
|
|
7
|
+
isSubmitting?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Dialog para editar um relatório de progresso existente
|
|
11
|
+
*/
|
|
12
|
+
export declare function ActionPlanProgressDialog({ open, onOpenChange, report, onSave, isSubmitting, }: ActionPlanProgressDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ETaskPlanStatus } from '../types';
|
|
2
|
+
interface ActionPlanStatusBadgeProps {
|
|
3
|
+
status: ETaskPlanStatus;
|
|
4
|
+
labels?: Record<ETaskPlanStatus, string>;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Badge de status do plano de ação com cores dinâmicas
|
|
9
|
+
*/
|
|
10
|
+
export declare function ActionPlanStatusBadge({ status, labels, className }: ActionPlanStatusBadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ETaskPlanStatus, ETaskPlanPriority } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Cores de background por status
|
|
4
|
+
* Portado de FlcActionPlansService.getStatusColorById
|
|
5
|
+
*/
|
|
6
|
+
export declare const STATUS_COLORS: Record<ETaskPlanStatus, string>;
|
|
7
|
+
/**
|
|
8
|
+
* Cores de texto por status
|
|
9
|
+
*/
|
|
10
|
+
export declare const STATUS_TEXT_COLORS: Record<ETaskPlanStatus, string>;
|
|
11
|
+
/**
|
|
12
|
+
* Mapa de status para chave i18n / identificador
|
|
13
|
+
* Portado de FlcActionPlansService.getTaskPlanStatusMap
|
|
14
|
+
*/
|
|
15
|
+
export declare const STATUS_MAP: Record<ETaskPlanStatus, string>;
|
|
16
|
+
/**
|
|
17
|
+
* Labels padrão para status (pt-BR)
|
|
18
|
+
*/
|
|
19
|
+
export declare const STATUS_LABELS: Record<ETaskPlanStatus, string>;
|
|
20
|
+
/**
|
|
21
|
+
* Tipos de ação padrão
|
|
22
|
+
*/
|
|
23
|
+
export declare const DEFAULT_ACTION_TYPES: {
|
|
24
|
+
id: string;
|
|
25
|
+
label: string;
|
|
26
|
+
}[];
|
|
27
|
+
/**
|
|
28
|
+
* Prioridades padrão
|
|
29
|
+
*/
|
|
30
|
+
export declare const PRIORITIES: {
|
|
31
|
+
id: ETaskPlanPriority;
|
|
32
|
+
label: string;
|
|
33
|
+
color: string;
|
|
34
|
+
}[];
|
|
35
|
+
/**
|
|
36
|
+
* Status considerados "fechados" (não editáveis)
|
|
37
|
+
*/
|
|
38
|
+
export declare const CLOSED_STATUSES: ETaskPlanStatus[];
|
|
39
|
+
/**
|
|
40
|
+
* Status que permitem reporte de progresso
|
|
41
|
+
*/
|
|
42
|
+
export declare const PROGRESS_ALLOWED_STATUSES: ETaskPlanStatus[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ActionPlan, ActionPlanPageProps, ETaskPlanStatus } from '../types';
|
|
2
|
+
export declare function useActionPlan(props: ActionPlanPageProps): {
|
|
3
|
+
formData: Partial<ActionPlan>;
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
isSaving: boolean;
|
|
6
|
+
activeTab: string;
|
|
7
|
+
isFormDisabled: boolean;
|
|
8
|
+
updateField: (field: keyof ActionPlan, value: any) => void;
|
|
9
|
+
setActiveTab: (tab: string) => void;
|
|
10
|
+
save: () => Promise<void>;
|
|
11
|
+
changeStatus: (newStatus: ETaskPlanStatus) => Promise<void>;
|
|
12
|
+
remove: () => Promise<void>;
|
|
13
|
+
cancel: () => void;
|
|
14
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ActionPlanReport, ActionPlanPageProps } from '../types';
|
|
2
|
+
export declare function useActionPlanProgress(props: ActionPlanPageProps): {
|
|
3
|
+
progress: import("..").ActionPlanProgress;
|
|
4
|
+
canReportProgress: boolean;
|
|
5
|
+
isSubmitting: boolean;
|
|
6
|
+
editingReport: ActionPlanReport;
|
|
7
|
+
setEditingReport: import("react").Dispatch<import("react").SetStateAction<ActionPlanReport>>;
|
|
8
|
+
reportProgress: (data: {
|
|
9
|
+
percentProgress: number;
|
|
10
|
+
timeProgress: string;
|
|
11
|
+
comments?: string;
|
|
12
|
+
}) => Promise<void>;
|
|
13
|
+
editProgress: (report: ActionPlanReport) => Promise<void>;
|
|
14
|
+
deleteProgress: (reportId: string) => Promise<void>;
|
|
15
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { ActionPlanPage } from './components/ActionPlanPage';
|
|
2
|
+
export { ActionPlanGeneralTab } from './components/ActionPlanGeneralTab';
|
|
3
|
+
export { ActionPlanProgressTab } from './components/ActionPlanProgressTab';
|
|
4
|
+
export { ActionPlanPredecessorsTab } from './components/ActionPlanPredecessorsTab';
|
|
5
|
+
export { ActionPlanCostTab } from './components/ActionPlanCostTab';
|
|
6
|
+
export { ActionPlanCommentsTab } from './components/ActionPlanCommentsTab';
|
|
7
|
+
export { ActionPlanHistoryTab } from './components/ActionPlanHistoryTab';
|
|
8
|
+
export { ActionPlanAttachmentsTab } from './components/ActionPlanAttachmentsTab';
|
|
9
|
+
export { ActionPlanStatusBadge } from './components/ActionPlanStatusBadge';
|
|
10
|
+
export { ActionPlanProgressDialog } from './components/ActionPlanProgressDialog';
|
|
11
|
+
export { useActionPlan } from './hooks/useActionPlan';
|
|
12
|
+
export { useActionPlanProgress } from './hooks/useActionPlanProgress';
|
|
13
|
+
export * from './types';
|
|
14
|
+
export * from './constants';
|
|
15
|
+
export { formatTime, formatTimeProgress, getProgressColor } from './utils/formatTime';
|