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
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import{j as e,o as s,a as d,d as r,B as l}from"./index-DkiftrvI.js";import{C as n}from"./ComponentDocTemplate-CQbBhfvZ.js";import"./ExampleCard-DuLrb3t-.js";function m({children:i,className:t}){return e.jsx("div",{className:s("space-y-4",t),children:i})}function c({children:i,onClick:t,className:o}){return e.jsx(d,{className:s("transition-colors",t&&"cursor-pointer hover:bg-muted/50",o),onClick:t,children:e.jsx(r,{className:"p-4",children:i})})}function u({label:i,value:t,className:o}){return e.jsxs("div",{className:s("flex justify-between items-center text-sm",o),children:[e.jsxs("span",{className:"text-muted-foreground font-medium",children:[i,":"]}),e.jsx("span",{className:"text-foreground",children:t})]})}const a={Root:m,Item:c,Field:u};function D(){return e.jsx(n,{title:"DataList",description:"Sistema de lista de dados com composição de componentes. Ideal para exibir informações estruturadas em formato de cards.",component:e.jsx("div",{className:"w-full max-w-md",children:e.jsxs(a.Root,{children:[e.jsxs(a.Item,{onClick:()=>alert("Clicou!"),children:[e.jsx(a.Field,{label:"Nome",value:"João Silva"}),e.jsx(a.Field,{label:"Email",value:"joao@exemplo.com"}),e.jsx(a.Field,{label:"Status",value:e.jsx(l,{variant:"success",children:"Ativo"})})]}),e.jsxs(a.Item,{children:[e.jsx(a.Field,{label:"Nome",value:"Maria Santos"}),e.jsx(a.Field,{label:"Email",value:"maria@exemplo.com"}),e.jsx(a.Field,{label:"Status",value:e.jsx(l,{variant:"secondary",children:"Pendente"})})]})]})}),usage:`import { DataList, Badge } from "forlogic-core"
|
|
2
|
+
|
|
3
|
+
<DataList.Root>
|
|
4
|
+
<DataList.Item onClick={() => console.log('clicked')}>
|
|
5
|
+
<DataList.Field label="Nome" value="João Silva" />
|
|
6
|
+
<DataList.Field label="Email" value="joao@exemplo.com" />
|
|
7
|
+
<DataList.Field label="Status" value={<Badge>Ativo</Badge>} />
|
|
8
|
+
</DataList.Item>
|
|
9
|
+
<DataList.Item>
|
|
10
|
+
<DataList.Field label="Nome" value="Maria Santos" />
|
|
11
|
+
<DataList.Field label="Email" value="maria@exemplo.com" />
|
|
12
|
+
</DataList.Item>
|
|
13
|
+
</DataList.Root>`,props:[{name:"DataList.Root",type:"ReactNode",default:"-",description:"Container principal com espaçamento vertical."},{name:"DataList.Item",type:"ReactNode",default:"-",description:"Item individual renderizado como Card."},{name:"DataList.Item.onClick",type:"() => void",default:"-",description:"Handler de clique (adiciona hover state)."},{name:"DataList.Field",type:"{ label, value }",default:"-",description:"Par label/value formatado horizontalmente."},{name:"DataList.Field.value",type:"ReactNode",default:"-",description:"Valor pode ser texto ou componentes (Badge, etc.)."}],accessibility:["Items clicáveis tem cursor pointer","Hover state visual para feedback","Estrutura semântica com Cards"],notes:["💡 Use para listas de dados estruturados","💡 Field.value aceita ReactNode - use Badge, Button, etc.","💡 onClick em Item adiciona hover state automaticamente"]})}export{D as DataListDoc};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as a,j as e,B as r}from"./index-DkiftrvI.js";function d({onNavigate:i}){const l=a.reduce((s,t)=>s+t.items.length,0);return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-4xl font-bold tracking-tight",children:"Design System"}),e.jsxs("p",{className:"text-xl text-muted-foreground mt-2",children:["Explore todos os ",l," componentes organizados em ",a.length," categorias"]})]}),e.jsx("div",{className:"grid gap-6 sm:grid-cols-2 lg:grid-cols-3",children:a.map(s=>{const t=s.icon;return e.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2 text-foreground",children:[e.jsx(t,{className:"h-5 w-5 text-primary"}),e.jsx("h2",{className:"font-semibold text-base",children:s.title})]}),e.jsx(r,{variant:"secondary",className:"text-xs",children:s.items.length})]}),e.jsx("div",{className:"space-y-0.5",children:s.items.map(n=>e.jsx("button",{onClick:()=>i(n.id),className:"block w-full text-left px-2 py-1.5 text-sm text-primary hover:text-primary/80 hover:bg-accent rounded-md transition-colors",children:n.label},n.id))})]},s.id)})})]})}export{d as DesignSystemHome};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as e,d$ as x,e0 as h,f as a,e1 as g,e2 as v,e3 as f,e4 as M,e5 as j,L as d,I as u,J as Se,e6 as E,e7 as z,e8 as q,e9 as R,ea as V,eb as we,ec as ye,r as i,G as Te,bb as W,y as U,ar as Be,at as ke,au as te,av as D,be as F,aw as Fe,a8 as Pe,ax as C,a9 as Le,a7 as Oe,l as y,ac as He,ad as Ae,ae as Ie,B as P,ab as Ee,cU as le,ah as ne,b0 as oe,cf as ie,aq as ze,b8 as G,aU as qe,aD as Re,t as de,ed as ce,ee as me,ef as pe,eg as ue,eh as xe,ei as he,ej as ge,bf as Ve}from"./index-CE0k7Rdh.js";import{C as We}from"./ComponentDocTemplate-CRbRY-v5.js";import{D as Me,a as Ue,b as Ge,c as Xe,d as Qe,e as Je,f as $e,g as Ke}from"./drawer-oTqCOtsC.js";import{C as Ye}from"./circle-plus-D3NftMzS.js";import{G as Ze}from"./git-branch-V6-h6P9K.js";import{S as X}from"./step-selector-DHxgT2FL.js";import{D as re}from"./date-picker-zhJU-_kM.js";function T({icon:l,title:o,description:s,selected:r,onClick:t}){return e.jsxs("div",{onClick:t,className:y("flex items-center gap-4 p-4 border rounded-lg cursor-pointer transition-all","hover:border-primary/50 hover:bg-muted/30",r&&"border-primary bg-primary/5"),children:[e.jsx("div",{className:"flex-shrink-0 w-12 h-12 rounded-lg bg-muted flex items-center justify-center text-primary",children:l}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h4",{className:"font-semibold text-foreground text-sm",children:o}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s})]})]})}function _e(){const[l,o]=i.useState(!1),[s,r]=i.useState(null),[t,m]=i.useState(1),p=3,N=["Seleção","Configuração","Confirmação"];return e.jsxs(x,{open:l,onOpenChange:o,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",children:"Dialog com Seleção"})}),e.jsxs(g,{size:"md",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Título"})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto py-4 px-1 -mx-1",children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Subtítulo"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Texto descritivo"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(T,{icon:e.jsx(Te,{className:"h-5 w-5"}),title:"Card 1",description:"Texto descritivo",selected:s===1,onClick:()=>r(1)}),e.jsx(T,{icon:e.jsx(Ye,{className:"h-5 w-5"}),title:"Card 2",description:"Texto descritivo",selected:s===2,onClick:()=>r(2)}),e.jsx(T,{icon:e.jsx(W,{className:"h-5 w-5"}),title:"Card 3",description:"Texto descritivo",selected:s===3,onClick:()=>r(3)})]})]}),e.jsxs(j,{className:"flex-row items-center justify-between sm:justify-between",children:[e.jsx(X,{currentStep:t,totalSteps:p,onStepChange:m,stepLabels:N}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(a,{variant:"outline",onClick:()=>o(!1),children:"Cancelar"}),e.jsxs(a,{disabled:!s,children:["Avançar",e.jsx(U,{className:"h-4 w-4 ml-2"})]})]})]})]})]})}function ea({icon:l,title:o,description:s,type:r,onView:t}){return e.jsxs("div",{className:"flex items-start gap-3 p-3 border rounded-lg bg-background",children:[e.jsx("div",{className:"flex-shrink-0 w-8 h-8 rounded-full bg-success/10 flex items-center justify-center text-success",children:l}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h5",{className:"font-medium text-sm text-foreground",children:o}),e.jsx("p",{className:"text-xs text-muted-foreground line-clamp-1",children:s})]}),e.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[e.jsx(P,{className:"bg-success hover:bg-success/90 text-success-foreground",children:r}),e.jsx(a,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:t,children:e.jsx(de,{className:"h-4 w-4"})})]})]})}const aa=[{id:1,name:"Título",code:"9876543210",responsible:"Leonardo Paes Horácio",email:"leonardo@forlogic.net",date:"01/01/2026",linksCount:6,description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua",linkedItems:[{id:1,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"},{id:2,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"},{id:3,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"},{id:4,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"},{id:5,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"},{id:6,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"}]},{id:2,name:"Título",code:"9081726354",responsible:"Leonardo Paes Horácio",email:"leonardo@forlogic.net",date:"01/01/2026",linksCount:6,description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua",linkedItems:[{id:1,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"},{id:2,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"}]},{id:3,name:"Título",code:"2468135790",responsible:"Leonardo Paes Horácio",email:"leonardo@forlogic.net",date:"01/01/2026",linksCount:6,description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit",linkedItems:[{id:1,title:"Título",description:"Lorem ipsum dolor sit amet",type:"Fluxos"}]},{id:4,name:"Título",code:"1357924680",responsible:"Leonardo Paes Horácio",email:"leonardo@forlogic.net",date:"01/01/2026",linksCount:6,description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit",linkedItems:[]}];function sa(){const[l,o]=i.useState(!1),[s,r]=i.useState(1),[t,m]=i.useState(1),p=3,N=["Seleção de Dados","Revisão","Conclusão"];return e.jsxs(x,{open:l,onOpenChange:o,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",children:"Dialog com Tabela"})}),e.jsxs(g,{size:"lg",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Título"})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto py-4 space-y-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Subtítulo"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Texto descritivo"})]}),e.jsx("div",{className:"border rounded-lg overflow-hidden",children:e.jsxs(Be,{children:[e.jsx(ke,{children:e.jsxs(te,{className:"bg-muted/50",children:[e.jsx(D,{className:"w-[40px]"}),e.jsx(D,{children:e.jsxs("div",{className:"flex items-center gap-1",children:["Nome",e.jsx(F,{className:"h-4 w-4 text-muted-foreground"})]})}),e.jsx(D,{children:e.jsxs("div",{className:"flex items-center gap-1",children:["Código/ID",e.jsx(F,{className:"h-4 w-4 text-muted-foreground"})]})}),e.jsx(D,{children:e.jsxs("div",{className:"flex items-center gap-1",children:["Responsável",e.jsx(F,{className:"h-4 w-4 text-muted-foreground"})]})}),e.jsx(D,{children:e.jsxs("div",{className:"flex items-center gap-1",children:["Criado em",e.jsx(F,{className:"h-4 w-4 text-muted-foreground"})]})}),e.jsx(D,{children:e.jsxs("div",{className:"flex items-center gap-1",children:["Vínculos",e.jsx(F,{className:"h-4 w-4 text-muted-foreground"})]})}),e.jsx(D,{className:"w-[120px]"})]})}),e.jsx(Fe,{children:aa.map(n=>e.jsx(Pe,{open:s===n.id,onOpenChange:b=>r(b?n.id:null),asChild:!0,children:e.jsxs(e.Fragment,{children:[e.jsxs(te,{className:"border-b",children:[e.jsx(C,{children:e.jsx(Le,{asChild:!0,children:e.jsx(a,{variant:"ghost",size:"icon",className:"h-8 w-8",children:e.jsx(Oe,{className:y("h-4 w-4 transition-transform duration-200",s===n.id&&"rotate-180")})})})}),e.jsx(C,{className:"font-medium",children:n.name}),e.jsx(C,{children:n.code}),e.jsx(C,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(He,{className:"h-8 w-8",children:[e.jsx(Ae,{src:""}),e.jsx(Ie,{className:"text-xs bg-primary/10 text-primary",children:"LP"})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:n.responsible}),e.jsx("p",{className:"text-xs text-muted-foreground",children:n.email})]})]})}),e.jsx(C,{children:n.date}),e.jsx(C,{children:e.jsxs(P,{variant:"outline",children:[n.linksCount," Vínculos"]})}),e.jsx(C,{children:e.jsx(a,{size:"sm",children:"Selecionar"})})]}),e.jsx(Ee,{asChild:!0,children:e.jsx("tr",{children:e.jsx("td",{colSpan:7,className:"p-4 bg-muted/30 border-b",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Título"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:n.description})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Título"}),e.jsxs(P,{variant:"outline",children:[n.linkedItems.length," vínculos"]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-3",children:n.linkedItems.map(b=>e.jsx(ea,{icon:e.jsx(Ze,{className:"h-4 w-4"}),title:b.title,description:b.description,type:b.type},b.id))})]})]})})})})]})},n.id))})]})})]}),e.jsxs(j,{className:"flex-row items-center justify-between sm:justify-between",children:[e.jsx(X,{currentStep:t,totalSteps:p,onStepChange:m,stepLabels:N}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(a,{variant:"outline",onClick:()=>o(!1),children:"Cancelar"}),e.jsxs(a,{children:["Avançar",e.jsx(U,{className:"h-4 w-4 ml-2"})]})]})]})]})]})}function ta(){const[l,o]=i.useState(!1);return e.jsxs(x,{open:l,onOpenChange:o,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",children:"Dialog com Formulário"})}),e.jsxs(g,{size:"lg",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Novo Plano de Controle"})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto py-4 px-1 -mx-1 space-y-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"font-semibold text-foreground",children:"Identificação"}),e.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{htmlFor:"planNumber",children:["Número do Plano ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(u,{id:"planNumber",defaultValue:"9876543210"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(d,{htmlFor:"emissionDate",children:"Data de emissão"}),e.jsx(u,{id:"emissionDate",type:"date",defaultValue:"2025-09-17"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(d,{htmlFor:"revisionDate",children:"Data de revisão"}),e.jsx(u,{id:"revisionDate",type:"date",defaultValue:"2025-10-17"})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"font-semibold text-foreground",children:"Cliente e Organização"}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{htmlFor:"clientName",children:["Nome do cliente ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(u,{id:"clientName",placeholder:"Insira o nome do cliente"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{htmlFor:"orgName",children:["Nome da organização ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(u,{id:"orgName",placeholder:"Insira o nome da organização"})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"font-semibold text-foreground",children:"Produto/Peça"}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{htmlFor:"partNumber",children:["Número da peça ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(u,{id:"partNumber",placeholder:"Insira o número da peça"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{htmlFor:"engLevel",children:["Nível de engenharia ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(u,{id:"engLevel",placeholder:"Insira o nível"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{htmlFor:"partDescription",children:["Descrição da peça ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(le,{id:"partDescription",placeholder:"Descreva detalhes sobre a peça...",rows:3})]})]})]}),e.jsxs(j,{children:[e.jsx(a,{variant:"outline",onClick:()=>o(!1),children:"Cancelar"}),e.jsxs(a,{children:[e.jsx(ne,{className:"h-4 w-4 mr-2"}),"Salvar"]})]})]})]})}function oa(){const[l,o]=i.useState(!1),[s,r]=i.useState(1),[t,m]=i.useState(null),[p,N]=i.useState(""),[n,b]=i.useState(""),[L,Q]=i.useState(""),[O,J]=i.useState(""),[S,$]=i.useState(void 0),[H,K]=i.useState(void 0),[B,Y]=i.useState(null),[k,Z]=i.useState(!0),A=4,ve=["Tipo do Projeto","Informações Básicas","Configurações","Confirmação"],_=["Projeto Interno","Projeto Cliente","Projeto Temporário"],ee=["Para uso da equipe interna","Para entrega a clientes externos","Com data de expiração definida"],ae=["Baixa","Média","Alta","Crítica"],fe=["bg-muted","bg-primary/20","bg-warning/20","bg-destructive/20"],I=c=>{switch(c){case 1:return t!==null;case 2:return p.trim().length>0&&L.trim().length>0;case 3:return!!S&&B!==null;case 4:return!0;default:return!1}},je=c=>{for(let w=1;w<c;w++)if(!I(w))return!1;return!0},Ne=()=>{s<A&&I(s)&&r(s+1)},be=()=>{s>1&&r(s-1)},De=()=>{o(!1),se()},se=()=>{r(1),m(null),N(""),b(""),Q(""),J(""),$(void 0),K(void 0),Y(null),Z(!0)},Ce=c=>{o(c),c||se()};return e.jsxs(x,{open:l,onOpenChange:Ce,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",children:"Dialog com Wizard"})}),e.jsxs(g,{size:"lg",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Novo Projeto"})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto py-4 px-1 -mx-1",children:[s===1&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Selecione o tipo de projeto"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Escolha uma opção para continuar"})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3",children:[e.jsx(T,{icon:e.jsx(oe,{className:"h-5 w-5"}),title:"Projeto Interno",description:"Para uso da equipe interna",selected:t===1,onClick:()=>m(1)}),e.jsx(T,{icon:e.jsx(ie,{className:"h-5 w-5"}),title:"Projeto Cliente",description:"Para entrega a clientes externos",selected:t===2,onClick:()=>m(2)}),e.jsx(T,{icon:e.jsx(W,{className:"h-5 w-5"}),title:"Projeto Temporário",description:"Com data de expiração definida",selected:t===3,onClick:()=>m(3)})]}),t&&e.jsx("div",{className:"p-3 bg-primary/5 border border-primary/20 rounded-lg",children:e.jsxs("p",{className:"text-sm text-primary",children:[e.jsxs("strong",{children:[_[t-1],":"]})," ",ee[t-1]]})})]}),s===2&&e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Informações básicas"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Preencha os dados do projeto"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"col-span-2 space-y-2",children:[e.jsxs(d,{htmlFor:"projectName",children:["Nome do projeto ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(u,{id:"projectName",placeholder:"Ex: Sistema de Gestão de Qualidade",value:p,onChange:c=>N(c.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{htmlFor:"responsible",children:["Responsável ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(u,{id:"responsible",placeholder:"Nome do responsável",value:L,onChange:c=>Q(c.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(d,{htmlFor:"department",children:"Departamento"}),e.jsx(u,{id:"department",placeholder:"Ex: Tecnologia",value:O,onChange:c=>J(c.target.value)})]}),e.jsxs("div",{className:"col-span-2 space-y-2",children:[e.jsx(d,{htmlFor:"projectDesc",children:"Descrição"}),e.jsx(le,{id:"projectDesc",placeholder:"Descreva o objetivo e escopo do projeto...",rows:3,value:n,onChange:c=>b(c.target.value)})]})]})]}),s===3&&e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Configurações do projeto"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Defina prazos e prioridade"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{children:["Data de início ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(re,{date:S,onDateChange:$,placeholder:"Selecione a data de início",className:"w-full"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(d,{children:"Data prevista de conclusão"}),e.jsx(re,{date:H,onDateChange:K,placeholder:"Selecione a data de término",disabledDates:c=>S?c<S:!1,className:"w-full"})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs(d,{children:["Prioridade ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx("div",{className:"grid grid-cols-4 gap-2",children:ae.map((c,w)=>e.jsx("button",{type:"button",onClick:()=>Y(w),className:y("p-3 rounded-lg border text-center transition-all text-sm font-medium",B===w?"border-primary bg-primary/10 text-primary":"border-border hover:border-primary/50 hover:bg-muted/50"),children:c},c))})]}),e.jsx(ze,{}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(d,{className:"text-base",children:"Notificar equipe"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Enviar e-mail para os membros quando o projeto for criado"})]}),e.jsx("button",{type:"button",onClick:()=>Z(!k),className:y("relative inline-flex h-6 w-11 items-center rounded-full transition-colors",k?"bg-primary":"bg-muted"),children:e.jsx("span",{className:y("inline-block h-4 w-4 transform rounded-full bg-white transition-transform",k?"translate-x-6":"translate-x-1")})})]})]}),s===4&&e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Confirmar criação"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Revise as informações antes de concluir"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-3 p-3 border rounded-lg bg-muted/30",children:[e.jsxs("div",{className:"w-10 h-10 rounded-lg bg-primary/10 flex items-center justify-center text-primary",children:[t===1&&e.jsx(oe,{className:"h-5 w-5"}),t===2&&e.jsx(ie,{className:"h-5 w-5"}),t===3&&e.jsx(W,{className:"h-5 w-5"})]}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:t?_[t-1]:"-"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:t?ee[t-1]:""})]})]}),e.jsxs("div",{className:"border rounded-lg divide-y",children:[e.jsxs("div",{className:"p-3 flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Nome do projeto"}),e.jsx("span",{className:"text-sm font-medium",children:p})]}),e.jsxs("div",{className:"p-3 flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Responsável"}),e.jsx("span",{className:"text-sm font-medium",children:L})]}),O&&e.jsxs("div",{className:"p-3 flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Departamento"}),e.jsx("span",{className:"text-sm font-medium",children:O})]}),e.jsxs("div",{className:"p-3 flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Período"}),e.jsxs("span",{className:"text-sm font-medium",children:[S?S.toLocaleDateString("pt-BR"):"-",H&&" até "+H.toLocaleDateString("pt-BR")]})]}),e.jsxs("div",{className:"p-3 flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Prioridade"}),e.jsx(P,{className:y(fe[B||0],"text-foreground"),children:B!==null?ae[B]:"-"})]}),e.jsxs("div",{className:"p-3 flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Notificar equipe"}),e.jsx(P,{variant:k?"default":"outline",children:k?"Sim":"Não"})]})]}),n&&e.jsxs("div",{className:"p-3 border rounded-lg",children:[e.jsx("p",{className:"text-sm text-muted-foreground mb-1",children:"Descrição"}),e.jsx("p",{className:"text-sm",children:n})]}),e.jsxs("div",{className:"flex items-start gap-2 p-3 bg-primary/5 border border-primary/20 rounded-lg",children:[e.jsx(G,{className:"h-4 w-4 text-primary mt-0.5 shrink-0"}),e.jsx("p",{className:"text-sm text-primary",children:"Ao concluir, o projeto será criado e você poderá adicionar tarefas, membros e documentos."})]})]})]})]}),e.jsxs(j,{className:"flex-row items-center justify-between sm:justify-between",children:[e.jsx(X,{currentStep:s,totalSteps:A,onStepChange:r,stepLabels:ve,canGoToStep:je}),e.jsxs("div",{className:"flex gap-2",children:[s>1&&e.jsxs(a,{variant:"outline",onClick:be,children:[e.jsx(qe,{className:"h-4 w-4 mr-2"}),"Voltar"]}),s<A?e.jsxs(a,{onClick:Ne,disabled:!I(s),children:["Avançar",e.jsx(U,{className:"h-4 w-4 ml-2"})]}):e.jsxs(a,{onClick:De,children:[e.jsx(ne,{className:"h-4 w-4 mr-2"}),"Criar Projeto"]})]})]})]})]})}function ia(){return e.jsxs(x,{children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",children:"Dialog Simples"})}),e.jsxs(g,{size:"md",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Título"})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto py-4 px-1 -mx-1",children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Subtítulo"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Texto descritivo com informações adicionais sobre o conteúdo do dialog."})]})]})]})}function ra(){const[l,o]=i.useState(!1),[s,r]=i.useState(""),t="EXCLUIR",m=p=>{o(p),p||r("")};return e.jsxs(ce,{open:l,onOpenChange:m,children:[e.jsx(me,{asChild:!0,children:e.jsx(a,{variant:"destructive",children:"Excluir Permanentemente"})}),e.jsxs(pe,{children:[e.jsx(ue,{className:"border-b pb-4",children:e.jsx(xe,{children:"Exclusão com Confirmação"})}),e.jsxs("div",{className:"py-4 space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-destructive/10 shrink-0",children:e.jsx(G,{className:"h-5 w-5 text-destructive"})}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Excluir permanentemente?"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Esta ação não pode ser desfeita. Isso excluirá permanentemente o registro e removerá todos os dados associados de nossos servidores."})]})]}),e.jsxs("div",{children:[e.jsxs(d,{htmlFor:"confirm-text",className:"text-sm",children:["Digite ",e.jsx("span",{className:"font-semibold text-destructive",children:t})," para confirmar:"]}),e.jsx(u,{id:"confirm-text",className:"mt-2",placeholder:t,value:s,onChange:p=>r(p.target.value)})]})]}),e.jsxs(he,{children:[e.jsx(ge,{children:"Cancelar"}),e.jsx(a,{variant:"destructive",disabled:s!==t,onClick:()=>o(!1),children:"Excluir Permanentemente"})]})]})]})}function la(){const[l,o]=i.useState(!1),[s,r]=i.useState(""),[t,m]=i.useState(!1),p=n=>{o(n),n||(r(""),m(!1))},N=s.length>=6;return e.jsxs(ce,{open:l,onOpenChange:p,children:[e.jsx(me,{asChild:!0,children:e.jsx(a,{variant:"destructive",children:"Excluir com Senha"})}),e.jsxs(pe,{children:[e.jsx(ue,{className:"border-b pb-4",children:e.jsx(xe,{children:"Confirmação de Segurança"})}),e.jsxs("div",{className:"py-4 space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-destructive/10 shrink-0",children:e.jsx(G,{className:"h-5 w-5 text-destructive"})}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Confirmar exclusão"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Para confirmar esta ação, digite sua senha de acesso."})]})]}),e.jsxs("div",{children:[e.jsx(d,{htmlFor:"password-confirm",className:"text-sm",children:"Digite sua senha para confirmar:"}),e.jsxs("div",{className:"relative mt-2",children:[e.jsx(u,{id:"password-confirm",type:t?"text":"password",placeholder:"••••••••",value:s,onChange:n=>r(n.target.value)}),e.jsx(a,{type:"button",variant:"ghost",size:"icon",className:"absolute right-0 top-0 h-full px-3 hover:bg-transparent",onClick:()=>m(!t),children:t?e.jsx(Ve,{className:"h-4 w-4"}):e.jsx(de,{className:"h-4 w-4"})})]})]})]}),e.jsxs(he,{children:[e.jsx(ge,{children:"Cancelar"}),e.jsx(a,{variant:"destructive",disabled:!N,onClick:()=>o(!1),children:"Confirmar Exclusão"})]})]})]})}function na(){return e.jsxs("div",{className:"flex gap-2",children:[e.jsx(ra,{}),e.jsx(la,{})]})}function da(){const[l,o]=i.useState(!1),[s,r]=i.useState(!1),[t,m]=i.useState(!1),[p,N]=i.useState(!1);return e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsxs(x,{open:l,onOpenChange:o,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",size:"sm",children:"Pequeno (sm)"})}),e.jsxs(g,{size:"sm",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Dialog Pequeno"})}),e.jsx("div",{className:"py-4",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:"Ideal para confirmações rápidas e alertas simples."})}),e.jsx(j,{children:e.jsx(a,{variant:"outline",onClick:()=>o(!1),children:"Fechar"})})]})]}),e.jsxs(x,{open:s,onOpenChange:r,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",size:"sm",children:"Médio (md)"})}),e.jsxs(g,{size:"md",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Dialog Médio"})}),e.jsx("div",{className:"py-4",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:"Tamanho padrão para formulários e conteúdo moderado."})}),e.jsxs(j,{children:[e.jsx(a,{variant:"outline",onClick:()=>r(!1),children:"Cancelar"}),e.jsx(a,{onClick:()=>r(!1),children:"Confirmar"})]})]})]}),e.jsxs(x,{open:t,onOpenChange:m,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",size:"sm",children:"Grande (lg)"})}),e.jsxs(g,{size:"lg",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Dialog Grande"})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto py-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"Ideal para tabelas, formulários complexos e conteúdo extenso."}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"p-4 border rounded-lg",children:[e.jsx("h4",{className:"font-medium mb-2",children:"Seção 1"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Conteúdo da primeira seção."})]}),e.jsxs("div",{className:"p-4 border rounded-lg",children:[e.jsx("h4",{className:"font-medium mb-2",children:"Seção 2"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Conteúdo da segunda seção."})]})]})]}),e.jsx(j,{children:e.jsx(a,{variant:"outline",onClick:()=>m(!1),children:"Fechar"})})]})]}),e.jsxs(x,{open:p,onOpenChange:N,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",size:"sm",children:"Customizado"})}),e.jsxs(g,{size:"md",customMaxWidth:"600px",customMaxHeight:"400px",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Dimensões Customizadas"})}),e.jsx("div",{className:"py-4",children:e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Usa ",e.jsx("code",{className:"bg-muted px-1 rounded",children:'size="md"'})," como base, com ",e.jsx("code",{className:"bg-muted px-1 rounded",children:'customMaxWidth="600px"'}),"."]})}),e.jsx(j,{children:e.jsx(a,{variant:"outline",onClick:()=>N(!1),children:"Fechar"})})]})]})]})}function ca(){const[l,o]=i.useState(!1);return e.jsxs(x,{open:l,onOpenChange:o,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",children:"Informative"})}),e.jsxs(g,{variant:"informative",size:"md",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Informações do Sistema"})}),e.jsx(M,{children:e.jsx("p",{className:"text-sm text-muted-foreground",children:"Este dialog pode ser fechado clicando fora, pressionando ESC ou no botão X. Ideal para exibir informações, instruções ou avisos."})})]})]})}function ma(){const[l,o]=i.useState(!1),[s,r]=i.useState(""),t=s.length>0;return e.jsxs(x,{open:l,onOpenChange:o,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",children:"Form (com isDirty)"})}),e.jsxs(g,{variant:"form",isDirty:t,size:"md",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Novo Registro"})}),e.jsx(M,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium",children:"Nome *"}),e.jsx("input",{className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",placeholder:"Digite algo para ativar isDirty...",value:s,onChange:m=>r(m.target.value)})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:t?"⚠️ isDirty=true — ESC e X pedirão confirmação. Clique fora está bloqueado.":"isDirty=false — ESC e X fecham normalmente. Clique fora está bloqueado."})]})}),e.jsxs(j,{children:[e.jsx(a,{variant:"outline",onClick:()=>o(!1),children:"Cancelar"}),e.jsx(a,{onClick:()=>{r(""),o(!1)},children:"Salvar"})]})]})]})}function pa(){const[l,o]=i.useState(!1);return e.jsxs(x,{open:l,onOpenChange:o,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"destructive",children:"Destructive"})}),e.jsxs(g,{variant:"destructive",size:"sm",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{className:"sr-only",children:"Confirmação"})}),e.jsxs("div",{className:"flex flex-col items-center text-center space-y-3 py-4",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-destructive/10 flex items-center justify-center",children:e.jsx(Re,{className:"h-6 w-6 text-destructive"})}),e.jsx("h3",{className:"text-lg font-semibold",children:"Tem certeza?"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Esta ação não pode ser desfeita. Não há botão X, ESC ou clique fora."})]}),e.jsxs(j,{className:"justify-center gap-2",children:[e.jsx(a,{variant:"outline",onClick:()=>o(!1),children:"Cancelar"}),e.jsx(a,{variant:"destructive",onClick:()=>o(!1),children:"Sim, excluir"})]})]})]})}function ua(){return e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(ca,{}),e.jsx(ma,{}),e.jsx(pa,{})]})}function ba(){return e.jsx(We,{title:"Dialog",description:"Uma janela sobreposta à janela principal ou a outra janela de diálogo, tornando o conteúdo abaixo inerte. Inclui variações para seleção, tabelas e formulários.",component:e.jsx(ia,{}),usage:`import {
|
|
1
|
+
import{j as e,E as x,fW as h,x as a,G as g,H as v,I as f,fX as M,X as j,J as d,K as u,a$ as Se,fY as E,fZ as z,f_ as q,f$ as R,g0 as V,g1 as we,g2 as ye,r as i,F as Te,as as W,A as U,T as Be,i as ke,k as te,l as D,dC as F,p as Fe,bl as Pe,q as C,bm as Le,bk as Oe,o as y,aH as He,bp as Ae,aI as Ie,B as P,bo as Ee,M as le,bs as ne,dn as oe,ab as ie,w as ze,dv as G,dh as qe,a4 as Re,aX as de,g3 as ce,g4 as me,g5 as pe,g6 as ue,g7 as xe,g8 as he,g9 as ge,dD as Ve}from"./index-DkiftrvI.js";import{C as We}from"./ComponentDocTemplate-CQbBhfvZ.js";import{D as Me,a as Ue,b as Ge,c as Xe,d as Qe,e as Je,f as $e,g as Ke}from"./drawer-D5rflIcD.js";import{C as Ye}from"./circle-plus-CpIcep-O.js";import{G as Ze}from"./git-branch-BcXv9mpp.js";import{S as X}from"./step-selector-ATTh_9Wa.js";import{D as re}from"./date-picker-BW3eGOe_.js";import"./ExampleCard-DuLrb3t-.js";function T({icon:l,title:o,description:s,selected:r,onClick:t}){return e.jsxs("div",{onClick:t,className:y("flex items-center gap-4 p-4 border rounded-lg cursor-pointer transition-all","hover:border-primary/50 hover:bg-muted/30",r&&"border-primary bg-primary/5"),children:[e.jsx("div",{className:"flex-shrink-0 w-12 h-12 rounded-lg bg-muted flex items-center justify-center text-primary",children:l}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h4",{className:"font-semibold text-foreground text-sm",children:o}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s})]})]})}function _e(){const[l,o]=i.useState(!1),[s,r]=i.useState(null),[t,m]=i.useState(1),p=3,N=["Seleção","Configuração","Confirmação"];return e.jsxs(x,{open:l,onOpenChange:o,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",children:"Dialog com Seleção"})}),e.jsxs(g,{size:"md",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Título"})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto py-4 px-1 -mx-1",children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Subtítulo"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Texto descritivo"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(T,{icon:e.jsx(Te,{className:"h-5 w-5"}),title:"Card 1",description:"Texto descritivo",selected:s===1,onClick:()=>r(1)}),e.jsx(T,{icon:e.jsx(Ye,{className:"h-5 w-5"}),title:"Card 2",description:"Texto descritivo",selected:s===2,onClick:()=>r(2)}),e.jsx(T,{icon:e.jsx(W,{className:"h-5 w-5"}),title:"Card 3",description:"Texto descritivo",selected:s===3,onClick:()=>r(3)})]})]}),e.jsxs(j,{className:"flex-row items-center justify-between sm:justify-between",children:[e.jsx(X,{currentStep:t,totalSteps:p,onStepChange:m,stepLabels:N}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(a,{variant:"outline",onClick:()=>o(!1),children:"Cancelar"}),e.jsxs(a,{disabled:!s,children:["Avançar",e.jsx(U,{className:"h-4 w-4 ml-2"})]})]})]})]})]})}function ea({icon:l,title:o,description:s,type:r,onView:t}){return e.jsxs("div",{className:"flex items-start gap-3 p-3 border rounded-lg bg-background",children:[e.jsx("div",{className:"flex-shrink-0 w-8 h-8 rounded-full bg-success/10 flex items-center justify-center text-success",children:l}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h5",{className:"font-medium text-sm text-foreground",children:o}),e.jsx("p",{className:"text-xs text-muted-foreground line-clamp-1",children:s})]}),e.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[e.jsx(P,{className:"bg-success hover:bg-success/90 text-success-foreground",children:r}),e.jsx(a,{variant:"ghost",size:"icon",className:"h-8 w-8",onClick:t,children:e.jsx(de,{className:"h-4 w-4"})})]})]})}const aa=[{id:1,name:"Título",code:"9876543210",responsible:"Leonardo Paes Horácio",email:"leonardo@forlogic.net",date:"01/01/2026",linksCount:6,description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua",linkedItems:[{id:1,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"},{id:2,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"},{id:3,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"},{id:4,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"},{id:5,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"},{id:6,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"}]},{id:2,name:"Título",code:"9081726354",responsible:"Leonardo Paes Horácio",email:"leonardo@forlogic.net",date:"01/01/2026",linksCount:6,description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua",linkedItems:[{id:1,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"},{id:2,title:"Título",description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod",type:"Fluxos"}]},{id:3,name:"Título",code:"2468135790",responsible:"Leonardo Paes Horácio",email:"leonardo@forlogic.net",date:"01/01/2026",linksCount:6,description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit",linkedItems:[{id:1,title:"Título",description:"Lorem ipsum dolor sit amet",type:"Fluxos"}]},{id:4,name:"Título",code:"1357924680",responsible:"Leonardo Paes Horácio",email:"leonardo@forlogic.net",date:"01/01/2026",linksCount:6,description:"Lorem ipsum dolor sit amet, consectetur adipiscing elit",linkedItems:[]}];function sa(){const[l,o]=i.useState(!1),[s,r]=i.useState(1),[t,m]=i.useState(1),p=3,N=["Seleção de Dados","Revisão","Conclusão"];return e.jsxs(x,{open:l,onOpenChange:o,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",children:"Dialog com Tabela"})}),e.jsxs(g,{size:"lg",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Título"})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto py-4 space-y-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Subtítulo"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Texto descritivo"})]}),e.jsx("div",{className:"border rounded-lg overflow-hidden",children:e.jsxs(Be,{children:[e.jsx(ke,{children:e.jsxs(te,{className:"bg-muted/50",children:[e.jsx(D,{className:"w-[40px]"}),e.jsx(D,{children:e.jsxs("div",{className:"flex items-center gap-1",children:["Nome",e.jsx(F,{className:"h-4 w-4 text-muted-foreground"})]})}),e.jsx(D,{children:e.jsxs("div",{className:"flex items-center gap-1",children:["Código/ID",e.jsx(F,{className:"h-4 w-4 text-muted-foreground"})]})}),e.jsx(D,{children:e.jsxs("div",{className:"flex items-center gap-1",children:["Responsável",e.jsx(F,{className:"h-4 w-4 text-muted-foreground"})]})}),e.jsx(D,{children:e.jsxs("div",{className:"flex items-center gap-1",children:["Criado em",e.jsx(F,{className:"h-4 w-4 text-muted-foreground"})]})}),e.jsx(D,{children:e.jsxs("div",{className:"flex items-center gap-1",children:["Vínculos",e.jsx(F,{className:"h-4 w-4 text-muted-foreground"})]})}),e.jsx(D,{className:"w-[120px]"})]})}),e.jsx(Fe,{children:aa.map(n=>e.jsx(Pe,{open:s===n.id,onOpenChange:b=>r(b?n.id:null),asChild:!0,children:e.jsxs(e.Fragment,{children:[e.jsxs(te,{className:"border-b",children:[e.jsx(C,{children:e.jsx(Le,{asChild:!0,children:e.jsx(a,{variant:"ghost",size:"icon",className:"h-8 w-8",children:e.jsx(Oe,{className:y("h-4 w-4 transition-transform duration-200",s===n.id&&"rotate-180")})})})}),e.jsx(C,{className:"font-medium",children:n.name}),e.jsx(C,{children:n.code}),e.jsx(C,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(He,{className:"h-8 w-8",children:[e.jsx(Ae,{src:""}),e.jsx(Ie,{className:"text-xs bg-primary/10 text-primary",children:"LP"})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:n.responsible}),e.jsx("p",{className:"text-xs text-muted-foreground",children:n.email})]})]})}),e.jsx(C,{children:n.date}),e.jsx(C,{children:e.jsxs(P,{variant:"outline",children:[n.linksCount," Vínculos"]})}),e.jsx(C,{children:e.jsx(a,{size:"sm",children:"Selecionar"})})]}),e.jsx(Ee,{asChild:!0,children:e.jsx("tr",{children:e.jsx("td",{colSpan:7,className:"p-4 bg-muted/30 border-b",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Título"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:n.description})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Título"}),e.jsxs(P,{variant:"outline",children:[n.linkedItems.length," vínculos"]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-3",children:n.linkedItems.map(b=>e.jsx(ea,{icon:e.jsx(Ze,{className:"h-4 w-4"}),title:b.title,description:b.description,type:b.type},b.id))})]})]})})})})]})},n.id))})]})})]}),e.jsxs(j,{className:"flex-row items-center justify-between sm:justify-between",children:[e.jsx(X,{currentStep:t,totalSteps:p,onStepChange:m,stepLabels:N}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(a,{variant:"outline",onClick:()=>o(!1),children:"Cancelar"}),e.jsxs(a,{children:["Avançar",e.jsx(U,{className:"h-4 w-4 ml-2"})]})]})]})]})]})}function ta(){const[l,o]=i.useState(!1);return e.jsxs(x,{open:l,onOpenChange:o,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",children:"Dialog com Formulário"})}),e.jsxs(g,{size:"lg",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Novo Plano de Controle"})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto py-4 px-1 -mx-1 space-y-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"font-semibold text-foreground",children:"Identificação"}),e.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{htmlFor:"planNumber",children:["Número do Plano ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(u,{id:"planNumber",defaultValue:"9876543210"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(d,{htmlFor:"emissionDate",children:"Data de emissão"}),e.jsx(u,{id:"emissionDate",type:"date",defaultValue:"2025-09-17"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(d,{htmlFor:"revisionDate",children:"Data de revisão"}),e.jsx(u,{id:"revisionDate",type:"date",defaultValue:"2025-10-17"})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"font-semibold text-foreground",children:"Cliente e Organização"}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{htmlFor:"clientName",children:["Nome do cliente ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(u,{id:"clientName",placeholder:"Insira o nome do cliente"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{htmlFor:"orgName",children:["Nome da organização ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(u,{id:"orgName",placeholder:"Insira o nome da organização"})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"font-semibold text-foreground",children:"Produto/Peça"}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{htmlFor:"partNumber",children:["Número da peça ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(u,{id:"partNumber",placeholder:"Insira o número da peça"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{htmlFor:"engLevel",children:["Nível de engenharia ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(u,{id:"engLevel",placeholder:"Insira o nível"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{htmlFor:"partDescription",children:["Descrição da peça ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(le,{id:"partDescription",placeholder:"Descreva detalhes sobre a peça...",rows:3})]})]})]}),e.jsxs(j,{children:[e.jsx(a,{variant:"outline",onClick:()=>o(!1),children:"Cancelar"}),e.jsxs(a,{children:[e.jsx(ne,{className:"h-4 w-4 mr-2"}),"Salvar"]})]})]})]})}function oa(){const[l,o]=i.useState(!1),[s,r]=i.useState(1),[t,m]=i.useState(null),[p,N]=i.useState(""),[n,b]=i.useState(""),[L,Q]=i.useState(""),[O,J]=i.useState(""),[S,$]=i.useState(void 0),[H,K]=i.useState(void 0),[B,Y]=i.useState(null),[k,Z]=i.useState(!0),A=4,ve=["Tipo do Projeto","Informações Básicas","Configurações","Confirmação"],_=["Projeto Interno","Projeto Cliente","Projeto Temporário"],ee=["Para uso da equipe interna","Para entrega a clientes externos","Com data de expiração definida"],ae=["Baixa","Média","Alta","Crítica"],fe=["bg-muted","bg-primary/20","bg-warning/20","bg-destructive/20"],I=c=>{switch(c){case 1:return t!==null;case 2:return p.trim().length>0&&L.trim().length>0;case 3:return!!S&&B!==null;case 4:return!0;default:return!1}},je=c=>{for(let w=1;w<c;w++)if(!I(w))return!1;return!0},Ne=()=>{s<A&&I(s)&&r(s+1)},be=()=>{s>1&&r(s-1)},De=()=>{o(!1),se()},se=()=>{r(1),m(null),N(""),b(""),Q(""),J(""),$(void 0),K(void 0),Y(null),Z(!0)},Ce=c=>{o(c),c||se()};return e.jsxs(x,{open:l,onOpenChange:Ce,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",children:"Dialog com Wizard"})}),e.jsxs(g,{size:"lg",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Novo Projeto"})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto py-4 px-1 -mx-1",children:[s===1&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Selecione o tipo de projeto"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Escolha uma opção para continuar"})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3",children:[e.jsx(T,{icon:e.jsx(oe,{className:"h-5 w-5"}),title:"Projeto Interno",description:"Para uso da equipe interna",selected:t===1,onClick:()=>m(1)}),e.jsx(T,{icon:e.jsx(ie,{className:"h-5 w-5"}),title:"Projeto Cliente",description:"Para entrega a clientes externos",selected:t===2,onClick:()=>m(2)}),e.jsx(T,{icon:e.jsx(W,{className:"h-5 w-5"}),title:"Projeto Temporário",description:"Com data de expiração definida",selected:t===3,onClick:()=>m(3)})]}),t&&e.jsx("div",{className:"p-3 bg-primary/5 border border-primary/20 rounded-lg",children:e.jsxs("p",{className:"text-sm text-primary",children:[e.jsxs("strong",{children:[_[t-1],":"]})," ",ee[t-1]]})})]}),s===2&&e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Informações básicas"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Preencha os dados do projeto"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"col-span-2 space-y-2",children:[e.jsxs(d,{htmlFor:"projectName",children:["Nome do projeto ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(u,{id:"projectName",placeholder:"Ex: Sistema de Gestão de Qualidade",value:p,onChange:c=>N(c.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{htmlFor:"responsible",children:["Responsável ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(u,{id:"responsible",placeholder:"Nome do responsável",value:L,onChange:c=>Q(c.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(d,{htmlFor:"department",children:"Departamento"}),e.jsx(u,{id:"department",placeholder:"Ex: Tecnologia",value:O,onChange:c=>J(c.target.value)})]}),e.jsxs("div",{className:"col-span-2 space-y-2",children:[e.jsx(d,{htmlFor:"projectDesc",children:"Descrição"}),e.jsx(le,{id:"projectDesc",placeholder:"Descreva o objetivo e escopo do projeto...",rows:3,value:n,onChange:c=>b(c.target.value)})]})]})]}),s===3&&e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Configurações do projeto"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Defina prazos e prioridade"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(d,{children:["Data de início ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(re,{date:S,onDateChange:$,placeholder:"Selecione a data de início",className:"w-full"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(d,{children:"Data prevista de conclusão"}),e.jsx(re,{date:H,onDateChange:K,placeholder:"Selecione a data de término",disabledDates:c=>S?c<S:!1,className:"w-full"})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs(d,{children:["Prioridade ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx("div",{className:"grid grid-cols-4 gap-2",children:ae.map((c,w)=>e.jsx("button",{type:"button",onClick:()=>Y(w),className:y("p-3 rounded-lg border text-center transition-all text-sm font-medium",B===w?"border-primary bg-primary/10 text-primary":"border-border hover:border-primary/50 hover:bg-muted/50"),children:c},c))})]}),e.jsx(ze,{}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(d,{className:"text-base",children:"Notificar equipe"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Enviar e-mail para os membros quando o projeto for criado"})]}),e.jsx("button",{type:"button",onClick:()=>Z(!k),className:y("relative inline-flex h-6 w-11 items-center rounded-full transition-colors",k?"bg-primary":"bg-muted"),children:e.jsx("span",{className:y("inline-block h-4 w-4 transform rounded-full bg-white transition-transform",k?"translate-x-6":"translate-x-1")})})]})]}),s===4&&e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Confirmar criação"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Revise as informações antes de concluir"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-3 p-3 border rounded-lg bg-muted/30",children:[e.jsxs("div",{className:"w-10 h-10 rounded-lg bg-primary/10 flex items-center justify-center text-primary",children:[t===1&&e.jsx(oe,{className:"h-5 w-5"}),t===2&&e.jsx(ie,{className:"h-5 w-5"}),t===3&&e.jsx(W,{className:"h-5 w-5"})]}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:t?_[t-1]:"-"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:t?ee[t-1]:""})]})]}),e.jsxs("div",{className:"border rounded-lg divide-y",children:[e.jsxs("div",{className:"p-3 flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Nome do projeto"}),e.jsx("span",{className:"text-sm font-medium",children:p})]}),e.jsxs("div",{className:"p-3 flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Responsável"}),e.jsx("span",{className:"text-sm font-medium",children:L})]}),O&&e.jsxs("div",{className:"p-3 flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Departamento"}),e.jsx("span",{className:"text-sm font-medium",children:O})]}),e.jsxs("div",{className:"p-3 flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Período"}),e.jsxs("span",{className:"text-sm font-medium",children:[S?S.toLocaleDateString("pt-BR"):"-",H&&" até "+H.toLocaleDateString("pt-BR")]})]}),e.jsxs("div",{className:"p-3 flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Prioridade"}),e.jsx(P,{className:y(fe[B||0],"text-foreground"),children:B!==null?ae[B]:"-"})]}),e.jsxs("div",{className:"p-3 flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Notificar equipe"}),e.jsx(P,{variant:k?"default":"outline",children:k?"Sim":"Não"})]})]}),n&&e.jsxs("div",{className:"p-3 border rounded-lg",children:[e.jsx("p",{className:"text-sm text-muted-foreground mb-1",children:"Descrição"}),e.jsx("p",{className:"text-sm",children:n})]}),e.jsxs("div",{className:"flex items-start gap-2 p-3 bg-primary/5 border border-primary/20 rounded-lg",children:[e.jsx(G,{className:"h-4 w-4 text-primary mt-0.5 shrink-0"}),e.jsx("p",{className:"text-sm text-primary",children:"Ao concluir, o projeto será criado e você poderá adicionar tarefas, membros e documentos."})]})]})]})]}),e.jsxs(j,{className:"flex-row items-center justify-between sm:justify-between",children:[e.jsx(X,{currentStep:s,totalSteps:A,onStepChange:r,stepLabels:ve,canGoToStep:je}),e.jsxs("div",{className:"flex gap-2",children:[s>1&&e.jsxs(a,{variant:"outline",onClick:be,children:[e.jsx(qe,{className:"h-4 w-4 mr-2"}),"Voltar"]}),s<A?e.jsxs(a,{onClick:Ne,disabled:!I(s),children:["Avançar",e.jsx(U,{className:"h-4 w-4 ml-2"})]}):e.jsxs(a,{onClick:De,children:[e.jsx(ne,{className:"h-4 w-4 mr-2"}),"Criar Projeto"]})]})]})]})]})}function ia(){return e.jsxs(x,{children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",children:"Dialog Simples"})}),e.jsxs(g,{size:"md",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Título"})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto py-4 px-1 -mx-1",children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Subtítulo"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Texto descritivo com informações adicionais sobre o conteúdo do dialog."})]})]})]})}function ra(){const[l,o]=i.useState(!1),[s,r]=i.useState(""),t="EXCLUIR",m=p=>{o(p),p||r("")};return e.jsxs(ce,{open:l,onOpenChange:m,children:[e.jsx(me,{asChild:!0,children:e.jsx(a,{variant:"destructive",children:"Excluir Permanentemente"})}),e.jsxs(pe,{children:[e.jsx(ue,{className:"border-b pb-4",children:e.jsx(xe,{children:"Exclusão com Confirmação"})}),e.jsxs("div",{className:"py-4 space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-destructive/10 shrink-0",children:e.jsx(G,{className:"h-5 w-5 text-destructive"})}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Excluir permanentemente?"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Esta ação não pode ser desfeita. Isso excluirá permanentemente o registro e removerá todos os dados associados de nossos servidores."})]})]}),e.jsxs("div",{children:[e.jsxs(d,{htmlFor:"confirm-text",className:"text-sm",children:["Digite ",e.jsx("span",{className:"font-semibold text-destructive",children:t})," para confirmar:"]}),e.jsx(u,{id:"confirm-text",className:"mt-2",placeholder:t,value:s,onChange:p=>r(p.target.value)})]})]}),e.jsxs(he,{children:[e.jsx(ge,{children:"Cancelar"}),e.jsx(a,{variant:"destructive",disabled:s!==t,onClick:()=>o(!1),children:"Excluir Permanentemente"})]})]})]})}function la(){const[l,o]=i.useState(!1),[s,r]=i.useState(""),[t,m]=i.useState(!1),p=n=>{o(n),n||(r(""),m(!1))},N=s.length>=6;return e.jsxs(ce,{open:l,onOpenChange:p,children:[e.jsx(me,{asChild:!0,children:e.jsx(a,{variant:"destructive",children:"Excluir com Senha"})}),e.jsxs(pe,{children:[e.jsx(ue,{className:"border-b pb-4",children:e.jsx(xe,{children:"Confirmação de Segurança"})}),e.jsxs("div",{className:"py-4 space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-full bg-destructive/10 shrink-0",children:e.jsx(G,{className:"h-5 w-5 text-destructive"})}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-foreground",children:"Confirmar exclusão"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Para confirmar esta ação, digite sua senha de acesso."})]})]}),e.jsxs("div",{children:[e.jsx(d,{htmlFor:"password-confirm",className:"text-sm",children:"Digite sua senha para confirmar:"}),e.jsxs("div",{className:"relative mt-2",children:[e.jsx(u,{id:"password-confirm",type:t?"text":"password",placeholder:"••••••••",value:s,onChange:n=>r(n.target.value)}),e.jsx(a,{type:"button",variant:"ghost",size:"icon",className:"absolute right-0 top-0 h-full px-3 hover:bg-transparent",onClick:()=>m(!t),children:t?e.jsx(Ve,{className:"h-4 w-4"}):e.jsx(de,{className:"h-4 w-4"})})]})]})]}),e.jsxs(he,{children:[e.jsx(ge,{children:"Cancelar"}),e.jsx(a,{variant:"destructive",disabled:!N,onClick:()=>o(!1),children:"Confirmar Exclusão"})]})]})]})}function na(){return e.jsxs("div",{className:"flex gap-2",children:[e.jsx(ra,{}),e.jsx(la,{})]})}function da(){const[l,o]=i.useState(!1),[s,r]=i.useState(!1),[t,m]=i.useState(!1),[p,N]=i.useState(!1);return e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsxs(x,{open:l,onOpenChange:o,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",size:"sm",children:"Pequeno (sm)"})}),e.jsxs(g,{size:"sm",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Dialog Pequeno"})}),e.jsx("div",{className:"py-4",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:"Ideal para confirmações rápidas e alertas simples."})}),e.jsx(j,{children:e.jsx(a,{variant:"outline",onClick:()=>o(!1),children:"Fechar"})})]})]}),e.jsxs(x,{open:s,onOpenChange:r,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",size:"sm",children:"Médio (md)"})}),e.jsxs(g,{size:"md",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Dialog Médio"})}),e.jsx("div",{className:"py-4",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:"Tamanho padrão para formulários e conteúdo moderado."})}),e.jsxs(j,{children:[e.jsx(a,{variant:"outline",onClick:()=>r(!1),children:"Cancelar"}),e.jsx(a,{onClick:()=>r(!1),children:"Confirmar"})]})]})]}),e.jsxs(x,{open:t,onOpenChange:m,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",size:"sm",children:"Grande (lg)"})}),e.jsxs(g,{size:"lg",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Dialog Grande"})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-auto py-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"Ideal para tabelas, formulários complexos e conteúdo extenso."}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"p-4 border rounded-lg",children:[e.jsx("h4",{className:"font-medium mb-2",children:"Seção 1"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Conteúdo da primeira seção."})]}),e.jsxs("div",{className:"p-4 border rounded-lg",children:[e.jsx("h4",{className:"font-medium mb-2",children:"Seção 2"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Conteúdo da segunda seção."})]})]})]}),e.jsx(j,{children:e.jsx(a,{variant:"outline",onClick:()=>m(!1),children:"Fechar"})})]})]}),e.jsxs(x,{open:p,onOpenChange:N,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",size:"sm",children:"Customizado"})}),e.jsxs(g,{size:"md",customMaxWidth:"600px",customMaxHeight:"400px",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Dimensões Customizadas"})}),e.jsx("div",{className:"py-4",children:e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Usa ",e.jsx("code",{className:"bg-muted px-1 rounded",children:'size="md"'})," como base, com ",e.jsx("code",{className:"bg-muted px-1 rounded",children:'customMaxWidth="600px"'}),"."]})}),e.jsx(j,{children:e.jsx(a,{variant:"outline",onClick:()=>N(!1),children:"Fechar"})})]})]})]})}function ca(){const[l,o]=i.useState(!1);return e.jsxs(x,{open:l,onOpenChange:o,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",children:"Informative"})}),e.jsxs(g,{variant:"informative",size:"md",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Informações do Sistema"})}),e.jsx(M,{children:e.jsx("p",{className:"text-sm text-muted-foreground",children:"Este dialog pode ser fechado clicando fora, pressionando ESC ou no botão X. Ideal para exibir informações, instruções ou avisos."})})]})]})}function ma(){const[l,o]=i.useState(!1),[s,r]=i.useState(""),t=s.length>0;return e.jsxs(x,{open:l,onOpenChange:o,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"outline",children:"Form (com isDirty)"})}),e.jsxs(g,{variant:"form",isDirty:t,size:"md",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{children:"Novo Registro"})}),e.jsx(M,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium",children:"Nome *"}),e.jsx("input",{className:"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm",placeholder:"Digite algo para ativar isDirty...",value:s,onChange:m=>r(m.target.value)})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:t?"⚠️ isDirty=true — ESC e X pedirão confirmação. Clique fora está bloqueado.":"isDirty=false — ESC e X fecham normalmente. Clique fora está bloqueado."})]})}),e.jsxs(j,{children:[e.jsx(a,{variant:"outline",onClick:()=>o(!1),children:"Cancelar"}),e.jsx(a,{onClick:()=>{r(""),o(!1)},children:"Salvar"})]})]})]})}function pa(){const[l,o]=i.useState(!1);return e.jsxs(x,{open:l,onOpenChange:o,children:[e.jsx(h,{asChild:!0,children:e.jsx(a,{variant:"destructive",children:"Destructive"})}),e.jsxs(g,{variant:"destructive",size:"sm",children:[e.jsx(v,{showSeparator:!0,children:e.jsx(f,{className:"sr-only",children:"Confirmação"})}),e.jsxs("div",{className:"flex flex-col items-center text-center space-y-3 py-4",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-destructive/10 flex items-center justify-center",children:e.jsx(Re,{className:"h-6 w-6 text-destructive"})}),e.jsx("h3",{className:"text-lg font-semibold",children:"Tem certeza?"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Esta ação não pode ser desfeita. Não há botão X, ESC ou clique fora."})]}),e.jsxs(j,{className:"justify-center gap-2",children:[e.jsx(a,{variant:"outline",onClick:()=>o(!1),children:"Cancelar"}),e.jsx(a,{variant:"destructive",onClick:()=>o(!1),children:"Sim, excluir"})]})]})]})}function ua(){return e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(ca,{}),e.jsx(ma,{}),e.jsx(pa,{})]})}function Da(){return e.jsx(We,{title:"Dialog",description:"Uma janela sobreposta à janela principal ou a outra janela de diálogo, tornando o conteúdo abaixo inerte. Inclui variações para seleção, tabelas e formulários.",component:e.jsx(ia,{}),usage:`import {
|
|
2
2
|
Dialog,
|
|
3
3
|
DialogContent,
|
|
4
4
|
DialogHeader,
|
|
@@ -978,4 +978,4 @@ import {
|
|
|
978
978
|
</DrawerClose>
|
|
979
979
|
</DrawerFooter>
|
|
980
980
|
</DrawerContent>
|
|
981
|
-
</Drawer>`}],props:[{name:"variant",type:'"informative" | "form" | "destructive"',default:'"informative"',description:"Variante semântica que controla o comportamento de fechamento. informative: fecha livremente. form: bloqueia clique externo, confirma se isDirty. destructive: exige ação explícita nos botões."},{name:"isDirty",type:"boolean",default:"false",description:'Quando variant="form", exibe window.confirm antes de fechar via ESC ou botão X se houver alterações não salvas.'},{name:"size",type:'"sm" | "md" | "lg"',default:'"md"',description:"Tamanho responsivo do dialog. sm: confirmações rápidas, md: formulários padrão, lg: tabelas e conteúdo extenso."},{name:"customWidth",type:"string",default:"-",description:'Sobrescreve a largura do tamanho selecionado (ex: "600px", "50vw").'},{name:"customMinWidth",type:"string",default:"-",description:"Sobrescreve a largura mínima do tamanho selecionado."},{name:"customMaxWidth",type:"string",default:"-",description:"Sobrescreve a largura máxima do tamanho selecionado."},{name:"customHeight",type:"string",default:"-",description:"Sobrescreve a altura do tamanho selecionado."},{name:"customMinHeight",type:"string",default:"-",description:"Sobrescreve a altura mínima do tamanho selecionado."},{name:"customMaxHeight",type:"string",default:"-",description:"Sobrescreve a altura máxima do tamanho selecionado."},{name:"open",type:"boolean",default:"-",description:"O estado controlado de abertura do dialog."},{name:"onOpenChange",type:"(open: boolean) => void",default:"-",description:"Callback quando o estado de abertura muda."},{name:"modal",type:"boolean",default:"true",description:"Se o dialog deve bloquear interação com elementos fora."},{name:"showSeparator",type:"boolean",default:"false",description:"Exibe um separador abaixo do Header (Dialog/Sheet)."},{name:"DialogBody",type:"component",default:"-",description:"OBRIGATÓRIO para envolver conteúdo entre Header e Footer. Aplica flex-1 min-h-0 overflow-auto py-4 px-1 -mx-1 automaticamente."},{name:"className",type:"string",default:"-",description:"Classes CSS adicionais para Content."},{name:"Sheet.side",type:'"top" | "right" | "bottom" | "left"',default:'"right"',description:"Lado da tela onde o Sheet abre (exceto inferior que usa Drawer)."},{name:"Drawer (Sheet Inferior)",type:"component",default:"-",description:"Painel inferior baseado em vaul. Suporta gestos de swipe."},{name:"shouldScaleBackground",type:"boolean",default:"true",description:"Escala o background ao abrir (Sheet Inferior/Drawer)."}],notes:["⚠️ OBRIGATÓRIO: Use DialogBody para envolver conteúdo entre Header e Footer. Evita problemas de overflow!","🔒 Variantes semânticas: informative (fecha livremente), form (bloqueia clique externo, confirma isDirty), destructive (exige ação explícita).","Tamanhos responsivos: sm (30vw, 320-480px), md (50vw, 480-720px), lg (85vw, 720-1440px).","Use props custom* para sobrescrever dimensões específicas quando necessário.",'variant="form" com isDirty=true exibe window.confirm ao tentar fechar via ESC ou botão X.','variant="destructive" oculta o botão X e bloqueia ESC — fechamento apenas por botões no Footer.',"AlertDialog: requer ação explícita (não fecha com clique fora). Use para ações destrutivas com confirmação por texto/senha.","Sheet: painel que desliza da borda da tela (left, right, top). Ideal para formulários e detalhes.","Sheet Inferior (Drawer): usa biblioteca vaul, suporta gestos de swipe. Prefira para mobile.","Use DialogHeader/SheetHeader, DialogBody e DialogFooter/SheetFooter para estruturar.","showSeparator adiciona linha visual abaixo do Header."],accessibility:["Foco capturado automaticamente (focus trap)","Esc fecha dialog/sheet (comportamento depende da variant)","Clique fora fecha dialog/sheet (bloqueado em variant form/destructive)","Tab navega entre elementos focáveis",'aria-modal="true" aplicado automaticamente','role="dialog" ou "alertdialog" apropriado',"aria-labelledby vinculado ao Title","Compatível com leitores de tela (NVDA, VoiceOver, JAWS)"]})}export{
|
|
981
|
+
</Drawer>`}],props:[{name:"variant",type:'"informative" | "form" | "destructive"',default:'"informative"',description:"Variante semântica que controla o comportamento de fechamento. informative: fecha livremente. form: bloqueia clique externo, confirma se isDirty. destructive: exige ação explícita nos botões."},{name:"isDirty",type:"boolean",default:"false",description:'Quando variant="form", exibe window.confirm antes de fechar via ESC ou botão X se houver alterações não salvas.'},{name:"size",type:'"sm" | "md" | "lg"',default:'"md"',description:"Tamanho responsivo do dialog. sm: confirmações rápidas, md: formulários padrão, lg: tabelas e conteúdo extenso."},{name:"customWidth",type:"string",default:"-",description:'Sobrescreve a largura do tamanho selecionado (ex: "600px", "50vw").'},{name:"customMinWidth",type:"string",default:"-",description:"Sobrescreve a largura mínima do tamanho selecionado."},{name:"customMaxWidth",type:"string",default:"-",description:"Sobrescreve a largura máxima do tamanho selecionado."},{name:"customHeight",type:"string",default:"-",description:"Sobrescreve a altura do tamanho selecionado."},{name:"customMinHeight",type:"string",default:"-",description:"Sobrescreve a altura mínima do tamanho selecionado."},{name:"customMaxHeight",type:"string",default:"-",description:"Sobrescreve a altura máxima do tamanho selecionado."},{name:"open",type:"boolean",default:"-",description:"O estado controlado de abertura do dialog."},{name:"onOpenChange",type:"(open: boolean) => void",default:"-",description:"Callback quando o estado de abertura muda."},{name:"modal",type:"boolean",default:"true",description:"Se o dialog deve bloquear interação com elementos fora."},{name:"showSeparator",type:"boolean",default:"false",description:"Exibe um separador abaixo do Header (Dialog/Sheet)."},{name:"DialogBody",type:"component",default:"-",description:"OBRIGATÓRIO para envolver conteúdo entre Header e Footer. Aplica flex-1 min-h-0 overflow-auto py-4 px-1 -mx-1 automaticamente."},{name:"className",type:"string",default:"-",description:"Classes CSS adicionais para Content."},{name:"Sheet.side",type:'"top" | "right" | "bottom" | "left"',default:'"right"',description:"Lado da tela onde o Sheet abre (exceto inferior que usa Drawer)."},{name:"Drawer (Sheet Inferior)",type:"component",default:"-",description:"Painel inferior baseado em vaul. Suporta gestos de swipe."},{name:"shouldScaleBackground",type:"boolean",default:"true",description:"Escala o background ao abrir (Sheet Inferior/Drawer)."}],notes:["⚠️ OBRIGATÓRIO: Use DialogBody para envolver conteúdo entre Header e Footer. Evita problemas de overflow!","🔒 Variantes semânticas: informative (fecha livremente), form (bloqueia clique externo, confirma isDirty), destructive (exige ação explícita).","Tamanhos responsivos: sm (30vw, 320-480px), md (50vw, 480-720px), lg (85vw, 720-1440px).","Use props custom* para sobrescrever dimensões específicas quando necessário.",'variant="form" com isDirty=true exibe window.confirm ao tentar fechar via ESC ou botão X.','variant="destructive" oculta o botão X e bloqueia ESC — fechamento apenas por botões no Footer.',"AlertDialog: requer ação explícita (não fecha com clique fora). Use para ações destrutivas com confirmação por texto/senha.","Sheet: painel que desliza da borda da tela (left, right, top). Ideal para formulários e detalhes.","Sheet Inferior (Drawer): usa biblioteca vaul, suporta gestos de swipe. Prefira para mobile.","Use DialogHeader/SheetHeader, DialogBody e DialogFooter/SheetFooter para estruturar.","showSeparator adiciona linha visual abaixo do Header."],accessibility:["Foco capturado automaticamente (focus trap)","Esc fecha dialog/sheet (comportamento depende da variant)","Clique fora fecha dialog/sheet (bloqueado em variant form/destructive)","Tab navega entre elementos focáveis",'aria-modal="true" aplicado automaticamente','role="dialog" ou "alertdialog" apropriado',"aria-labelledby vinculado ao Title","Compatível com leitores de tela (NVDA, VoiceOver, JAWS)"]})}export{Da as DialogDoc};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as e,r as a,
|
|
1
|
+
import{j as e,r as a,ak as s,al as t,x as i,an as d,eW as u,aq as n,fu as l,e_ as r,fv as S,fw as m,f8 as g,bk as M,ao as o,aJ as h,U as v,y as I,fx as w,ew as f,S as N,ab as k,eX as B,eY as T,eZ as A,b0 as P,a3 as y,P as R,e2 as L}from"./index-DkiftrvI.js";import{C as E}from"./ComponentDocTemplate-CQbBhfvZ.js";import{D}from"./disabled-menu-item-C2YaMvSt.js";import{a as G,K as q,G as U,L as W,C as O}from"./life-buoy-ByXiPddz.js";import{U as V}from"./user-plus-BqwXwD-c.js";import{C as z}from"./circle-plus-CpIcep-O.js";import"./ExampleCard-DuLrb3t-.js";function J(){return e.jsxs(s,{children:[e.jsx(t,{asChild:!0,children:e.jsxs(i,{variant:"outline",children:["Abrir Menu",e.jsx(M,{className:"ml-2 h-4 w-4"})]})}),e.jsxs(d,{className:"w-56",children:[e.jsx(u,{children:"Minha Conta"}),e.jsx(n,{}),e.jsxs(w,{children:[e.jsxs(o,{children:[e.jsx(f,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Perfil"}),e.jsx(r,{children:"⇧⌘P"})]}),e.jsxs(o,{children:[e.jsx(G,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Cobrança"}),e.jsx(r,{children:"⌘B"})]}),e.jsxs(o,{children:[e.jsx(N,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Configurações"}),e.jsx(r,{children:"⌘S"})]}),e.jsxs(o,{children:[e.jsx(q,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Atalhos de Teclado"}),e.jsx(r,{children:"⌘K"})]})]}),e.jsx(n,{}),e.jsxs(w,{children:[e.jsxs(o,{children:[e.jsx(k,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Equipe"})]}),e.jsxs(B,{children:[e.jsxs(T,{children:[e.jsx(V,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Convidar Usuários"})]}),e.jsxs(A,{className:"w-48",children:[e.jsxs(o,{children:[e.jsx(P,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Email"})]}),e.jsxs(o,{children:[e.jsx(y,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Mensagem"})]}),e.jsx(n,{}),e.jsxs(o,{children:[e.jsx(z,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Mais..."})]})]})]}),e.jsxs(o,{children:[e.jsx(R,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Nova Equipe"}),e.jsx(r,{children:"⌘+T"})]})]}),e.jsx(n,{}),e.jsxs(o,{children:[e.jsx(U,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"GitHub"})]}),e.jsxs(o,{children:[e.jsx(W,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Suporte"})]}),e.jsxs(o,{disabled:!0,children:[e.jsx(O,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"API"})]}),e.jsx(n,{}),e.jsxs(o,{children:[e.jsx(L,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Sair"}),e.jsx(r,{children:"⇧⌘Q"})]})]})]})}function K(){const[p,c]=a.useState(!0),[x,j]=a.useState(!1),[C,b]=a.useState(!1);return e.jsxs(s,{children:[e.jsx(t,{asChild:!0,children:e.jsx(i,{variant:"outline",children:"Opções de Visualização"})}),e.jsxs(d,{className:"w-56",children:[e.jsx(u,{children:"Aparência"}),e.jsx(n,{}),e.jsxs(l,{checked:p,onCheckedChange:c,children:["Barra de Status",e.jsx(r,{children:"⌘⇧S"})]}),e.jsx(l,{checked:x,onCheckedChange:j,children:"Barra de Atividades"}),e.jsxs(l,{checked:C,onCheckedChange:b,children:["Painel",e.jsx(r,{children:"⌘J"})]})]})]})}function H(){const[p,c]=a.useState("bottom");return e.jsxs(s,{children:[e.jsx(t,{asChild:!0,children:e.jsx(i,{variant:"outline",children:"Posição do Painel"})}),e.jsxs(d,{className:"w-48",children:[e.jsx(u,{children:"Posição"}),e.jsx(n,{}),e.jsxs(S,{value:p,onValueChange:c,children:[e.jsx(m,{value:"top",children:"Superior"}),e.jsx(m,{value:"bottom",children:"Inferior"}),e.jsx(m,{value:"right",children:"Direita"})]})]})]})}function Q(){return e.jsx(g,{delayDuration:200,children:e.jsxs(s,{children:[e.jsx(t,{asChild:!0,children:e.jsxs(i,{variant:"outline",children:["Ações",e.jsx(M,{className:"ml-2 h-4 w-4"})]})}),e.jsxs(d,{className:"w-56",children:[e.jsx(u,{children:"Ações em Massa"}),e.jsx(n,{}),e.jsxs(o,{children:[e.jsx(h,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Exportar Todos"})]}),e.jsxs(D,{disabledReason:"Selecione ao menos um item para exportar",children:[e.jsx(h,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Exportar Selecionados"})]}),e.jsxs(o,{children:[e.jsx(v,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Importar"})]}),e.jsx(n,{}),e.jsxs(D,{disabledReason:"Você não possui permissão para exclusão em massa",children:[e.jsx(I,{className:"mr-2 h-4 w-4"}),e.jsx("span",{children:"Excluir em Massa"})]})]})]})})}const X=`import {
|
|
2
2
|
DropdownMenu,
|
|
3
3
|
DropdownMenuContent,
|
|
4
4
|
DropdownMenuItem,
|
|
@@ -41,7 +41,7 @@ import { User, Settings, LogOut, ChevronDown } from "lucide-react"
|
|
|
41
41
|
<span>Sair</span>
|
|
42
42
|
</DropdownMenuItem>
|
|
43
43
|
</DropdownMenuContent>
|
|
44
|
-
</DropdownMenu
|
|
44
|
+
</DropdownMenu>`,Y=`import { useState } from "react"
|
|
45
45
|
import {
|
|
46
46
|
DropdownMenu,
|
|
47
47
|
DropdownMenuCheckboxItem,
|
|
@@ -89,7 +89,7 @@ function DropdownMenuWithCheckbox() {
|
|
|
89
89
|
</DropdownMenuContent>
|
|
90
90
|
</DropdownMenu>
|
|
91
91
|
)
|
|
92
|
-
}`,
|
|
92
|
+
}`,Z=`import { useState } from "react"
|
|
93
93
|
import {
|
|
94
94
|
DropdownMenu,
|
|
95
95
|
DropdownMenuContent,
|
|
@@ -120,7 +120,7 @@ function DropdownMenuWithRadio() {
|
|
|
120
120
|
</DropdownMenuContent>
|
|
121
121
|
</DropdownMenu>
|
|
122
122
|
)
|
|
123
|
-
}`,
|
|
123
|
+
}`,_=`import {
|
|
124
124
|
DropdownMenu,
|
|
125
125
|
DropdownMenuContent,
|
|
126
126
|
DropdownMenuItem,
|
|
@@ -172,4 +172,4 @@ function DropdownMenuWithDisabled() {
|
|
|
172
172
|
</DropdownMenu>
|
|
173
173
|
</TooltipProvider>
|
|
174
174
|
)
|
|
175
|
-
}`;function
|
|
175
|
+
}`;function se(){return e.jsx(E,{title:"Dropdown Menu",description:"Exibe um menu ao usuário — como um conjunto de ações ou funções — acionado por um botão ou elemento interativo.",component:e.jsx(J,{}),usage:X,examples:[{title:"Com Checkbox Items",description:"Menu dropdown com itens de seleção múltipla usando checkbox.",preview:e.jsx(K,{}),code:Y},{title:"Com Radio Items",description:"Menu dropdown com seleção única usando radio buttons.",preview:e.jsx(H,{}),code:Z},{title:"Com Itens Desabilitados",description:"Itens desabilitados exibem tooltip explicando o motivo do bloqueio. O cursor muda para not-allowed e cliques são ignorados.",preview:e.jsx(Q,{}),code:_}],props:[{name:"DropdownMenu",type:"Component",description:"Componente raiz que envolve o trigger e o conteúdo do menu."},{name:"DropdownMenuTrigger",type:"Component",description:"Elemento que dispara a abertura do menu. Use asChild para renderizar um elemento personalizado."},{name:"DropdownMenuContent",type:"Component",description:"Container para os itens do menu. Aceita align, sideOffset e className."},{name:"DropdownMenuItem",type:"Component",description:"Item básico do menu. Aceita inset, disabled e onSelect."},{name:"DropdownMenuCheckboxItem",type:"Component",description:"Item com checkbox. Aceita checked e onCheckedChange."},{name:"DropdownMenuRadioGroup",type:"Component",description:"Agrupa radio items. Aceita value e onValueChange."},{name:"DropdownMenuRadioItem",type:"Component",description:"Item de seleção única dentro de um RadioGroup. Requer value."},{name:"DropdownMenuLabel",type:"Component",description:"Rótulo não interativo para agrupar itens. Aceita inset."},{name:"DropdownMenuSeparator",type:"Component",description:"Linha divisória visual entre grupos de itens."},{name:"DropdownMenuShortcut",type:"Component",description:"Exibe atalho de teclado alinhado à direita do item."},{name:"DropdownMenuGroup",type:"Component",description:"Agrupa itens relacionados para organização semântica."},{name:"DropdownMenuSub",type:"Component",description:"Container para submenu aninhado."},{name:"DropdownMenuSubTrigger",type:"Component",description:"Item que abre um submenu ao hover ou foco."},{name:"DropdownMenuSubContent",type:"Component",description:"Conteúdo do submenu aninhado."},{name:"DisabledMenuItem",type:"Component",description:"Item desabilitado com tooltip explicativo. Aceita disabledReason para exibir motivo do bloqueio."}],accessibility:["Abre com clique, Enter ou Espaço no trigger","Navegação completa por teclado usando setas direcionais","Enter ou Espaço para selecionar item focado","Escape fecha o menu e retorna foco ao trigger","Tab navega para fora do menu (fechando-o)","Suporte completo a WAI-ARIA com roles menu, menuitem, menuitemcheckbox e menuitemradio","Submenus acessíveis via seta direita (abrir) e seta esquerda (fechar)","Type-ahead: digitar caracteres foca no item correspondente","Itens desabilitados exibem tooltip explicativo no hover"]})}export{se as DropdownMenuDoc};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import{r as n,j as e,E as V,G as q,H as G,I as K,e0 as U,b0 as H,J as B,K as J,o as j,x as l,ei as X,X as Y,Y as m}from"./index-DkiftrvI.js";import{C as Q}from"./ComponentDocTemplate-CQbBhfvZ.js";import{S as W}from"./shield-check-CFXjOV_w.js";import"./ExampleCard-DuLrb3t-.js";function v({open:s,onOpenChange:a,onConfirm:i,onGenerateCode:t,mode:S="code",email:h,maxLength:O=8,title:L="Assinatura Eletrônica",description:N,confirmLabel:k="Confirmar",cancelLabel:P="Cancelar",resendLabel:T="Reenviar código",errorMessage:p}){const o=S==="password",M=N??(o?"Digite sua senha para confirmar a operação.":"Um código de verificação foi enviado para o seu e-mail. Insira o código abaixo para confirmar a operação."),[d,u]=n.useState(""),[g,x]=n.useState(!1),[C,b]=n.useState(!1),[f,c]=n.useState(null),w=n.useCallback(async()=>{if(d.trim()){x(!0),c(null);try{await i(d)?(u(""),a(!1)):c(p??(o?"Senha incorreta. Tente novamente.":"Código inválido. Tente novamente."))}catch{c(p??(o?"Erro ao validar a senha. Tente novamente.":"Erro ao validar o código. Tente novamente."))}finally{x(!1)}}},[d,i,a,p,o]),z=n.useCallback(async()=>{if(t){b(!0),c(null);try{await t()}catch{c("Erro ao reenviar o código.")}finally{b(!1)}}},[t]),y=r=>{r||(u(""),c(null)),a(r)},A=r=>{r.key==="Enter"&&d.trim()&&(r.preventDefault(),w())},R=o?U:W,F=o?"Senha":"Código de verificação",I=o?"Digite sua senha":"Digite o código";return e.jsx(V,{open:s,onOpenChange:y,children:e.jsxs(q,{className:"sm:max-w-md",children:[e.jsx(G,{children:e.jsxs(K,{className:"flex items-center gap-2",children:[e.jsx(R,{className:"h-5 w-5 text-primary"}),L]})}),e.jsxs("div",{className:"py-4 space-y-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:M}),!o&&h&&e.jsxs("div",{className:"flex items-center gap-2 text-sm bg-muted/50 rounded-md px-3 py-2",children:[e.jsx(H,{className:"h-4 w-4 text-muted-foreground"}),e.jsx("span",{className:"text-muted-foreground",children:"Enviado para:"}),e.jsx("span",{className:"font-medium",children:h})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(B,{htmlFor:"signature-input",children:F}),e.jsx(J,{id:"signature-input",type:o?"password":"text",value:d,onChange:r=>u(r.target.value),onKeyDown:A,maxLength:o?void 0:O,placeholder:I,autoFocus:!0,className:j(f&&"border-destructive focus-visible:ring-destructive")}),f&&e.jsx("p",{className:"text-sm text-destructive",children:f})]}),!o&&e.jsxs(l,{variant:"ghost",size:"sm",onClick:z,disabled:C,className:"text-primary",children:[e.jsx(X,{className:j("h-4 w-4 mr-1",C&&"animate-spin")}),T]})]}),e.jsxs(Y,{children:[e.jsx(l,{variant:"outline",onClick:()=>y(!1),disabled:g,children:P}),e.jsx(l,{onClick:w,disabled:!d.trim()||g,children:g?"Validando...":k})]})]})})}function D(){const[s,a]=n.useState(!1);return e.jsxs(e.Fragment,{children:[e.jsx(l,{onClick:()=>a(!0),children:"Abrir (Modo Código)"}),e.jsx(v,{open:s,onOpenChange:a,mode:"code",email:"usuario@empresa.com",onConfirm:async i=>(await new Promise(t=>setTimeout(t,1e3)),i==="123456"?(m.success("Código validado com sucesso!"),!0):!1),onGenerateCode:async()=>{await new Promise(i=>setTimeout(i,500)),m.info("Código reenviado para o e-mail.")}})]})}function E(){const[s,a]=n.useState(!1);return e.jsxs(e.Fragment,{children:[e.jsx(l,{variant:"destructive",onClick:()=>a(!0),children:"Excluir registro (Modo Senha)"}),e.jsx(v,{open:s,onOpenChange:a,mode:"password",title:"Confirmar exclusão",description:"Esta ação é irreversível. Digite sua senha para confirmar.",onConfirm:async i=>(await new Promise(t=>setTimeout(t,1e3)),i==="senha123"?(m.success("Operação confirmada!"),!0):!1)})]})}function Z(){const[s,a]=n.useState(!1);return e.jsxs(e.Fragment,{children:[e.jsx(l,{variant:"outline",onClick:()=>a(!0),children:"Custom Labels"}),e.jsx(v,{open:s,onOpenChange:a,mode:"password",title:"Autorização Necessária",description:"Para aprovar este documento, confirme sua identidade.",confirmLabel:"Autorizar",cancelLabel:"Voltar",errorMessage:"Credenciais inválidas.",onConfirm:async()=>(await new Promise(i=>setTimeout(i,800)),m.success("Documento autorizado!"),!0)})]})}function ie(){return e.jsx(Q,{title:"ElectronicSignatureDialog",description:"Dialog de assinatura eletrônica para operações críticas. Suporta dois modos: verificação por código enviado ao e-mail ou confirmação por senha.",installation:'import { ElectronicSignatureDialog } from "forlogic-core"',component:e.jsxs("div",{className:"flex flex-wrap gap-3",children:[e.jsx(D,{}),e.jsx(E,{})]}),usage:`// Modo código (verificação por e-mail)
|
|
2
|
+
<ElectronicSignatureDialog
|
|
3
|
+
open={open}
|
|
4
|
+
onOpenChange={setOpen}
|
|
5
|
+
mode="code"
|
|
6
|
+
email="usuario@empresa.com"
|
|
7
|
+
onConfirm={async (code) => {
|
|
8
|
+
const valid = await validateCode(code);
|
|
9
|
+
return valid;
|
|
10
|
+
}}
|
|
11
|
+
onGenerateCode={async () => {
|
|
12
|
+
await sendVerificationCode();
|
|
13
|
+
}}
|
|
14
|
+
/>
|
|
15
|
+
|
|
16
|
+
// Modo senha (confirmação por senha)
|
|
17
|
+
<ElectronicSignatureDialog
|
|
18
|
+
open={open}
|
|
19
|
+
onOpenChange={setOpen}
|
|
20
|
+
mode="password"
|
|
21
|
+
onConfirm={async (password) => {
|
|
22
|
+
const valid = await validatePassword(password);
|
|
23
|
+
return valid;
|
|
24
|
+
}}
|
|
25
|
+
/>`,examples:[{title:"Modo Código (e-mail)",description:'Envia um código de verificação para o e-mail do usuário. Inclui banner com o e-mail e botão para reenviar. Use "123456" para testar sucesso.',preview:e.jsx(D,{}),code:`<ElectronicSignatureDialog
|
|
26
|
+
open={open}
|
|
27
|
+
onOpenChange={setOpen}
|
|
28
|
+
mode="code"
|
|
29
|
+
email="usuario@empresa.com"
|
|
30
|
+
onConfirm={async (code) => {
|
|
31
|
+
const valid = await api.validateCode(code);
|
|
32
|
+
return valid;
|
|
33
|
+
}}
|
|
34
|
+
onGenerateCode={async () => {
|
|
35
|
+
await api.sendCode();
|
|
36
|
+
}}
|
|
37
|
+
/>`},{title:"Modo Senha",description:'Pede a senha do usuário para confirmar a operação. Ideal para ações destrutivas ou críticas. Use "senha123" para testar sucesso.',preview:e.jsx(E,{}),code:`<ElectronicSignatureDialog
|
|
38
|
+
open={open}
|
|
39
|
+
onOpenChange={setOpen}
|
|
40
|
+
mode="password"
|
|
41
|
+
title="Confirmar exclusão"
|
|
42
|
+
description="Esta ação é irreversível. Digite sua senha para confirmar."
|
|
43
|
+
onConfirm={async (password) => {
|
|
44
|
+
const valid = await api.validatePassword(password);
|
|
45
|
+
return valid;
|
|
46
|
+
}}
|
|
47
|
+
/>`},{title:"Labels Customizados",description:"Todos os textos do dialog podem ser personalizados via props.",preview:e.jsx(Z,{}),code:`<ElectronicSignatureDialog
|
|
48
|
+
open={open}
|
|
49
|
+
onOpenChange={setOpen}
|
|
50
|
+
mode="password"
|
|
51
|
+
title="Autorização Necessária"
|
|
52
|
+
description="Para aprovar este documento, confirme sua identidade."
|
|
53
|
+
confirmLabel="Autorizar"
|
|
54
|
+
cancelLabel="Voltar"
|
|
55
|
+
errorMessage="Credenciais inválidas."
|
|
56
|
+
onConfirm={async (password) => { ... }}
|
|
57
|
+
/>`}],props:[{name:"open",type:"boolean",description:"Controla a visibilidade do dialog."},{name:"onOpenChange",type:"(open: boolean) => void",description:"Callback quando o estado de abertura muda."},{name:"onConfirm",type:"(value: string) => Promise<boolean> | boolean",description:"Chamado com código ou senha. Retorne true para fechar o dialog."},{name:"mode",type:"'code' | 'password'",default:"'code'",description:"Modo de verificação: código por e-mail ou senha."},{name:"onGenerateCode",type:"() => Promise<void> | void",description:'Callback para gerar/reenviar código. Obrigatório quando mode="code".'},{name:"email",type:"string",description:'E-mail exibido no banner (apenas mode="code").'},{name:"maxLength",type:"number",default:"8",description:'Tamanho máximo do input (apenas mode="code").'},{name:"title",type:"string",default:"'Assinatura Eletrônica'",description:"Título do dialog."},{name:"description",type:"string",description:"Descrição customizada. Default varia conforme o mode."},{name:"confirmLabel",type:"string",default:"'Confirmar'",description:"Label do botão de confirmação."},{name:"cancelLabel",type:"string",default:"'Cancelar'",description:"Label do botão de cancelamento."},{name:"resendLabel",type:"string",default:"'Reenviar código'",description:'Label do botão de reenvio (apenas mode="code").'},{name:"errorMessage",type:"string",description:"Mensagem de erro customizada quando onConfirm retorna false."}],notes:['O modo "code" requer onGenerateCode para enviar/reenviar o código de verificação.','O modo "password" oculta automaticamente o banner de e-mail e o botão de reenvio.',"onConfirm deve retornar true para fechar o dialog automaticamente, ou false para exibir erro.","O dialog limpa o input e erros automaticamente ao fechar.","Pressionar Enter no input dispara a confirmação.","O ícone do título muda: ShieldCheck para modo código, Lock para modo senha."]})}export{ie as ElectronicSignatureDialogDoc};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as e,
|
|
1
|
+
import{j as e,a2 as a}from"./index-DkiftrvI.js";import{C as o}from"./ComponentDocTemplate-CQbBhfvZ.js";import{P as t}from"./package-B3-pVvPM.js";import"./ExampleCard-DuLrb3t-.js";function c(){return e.jsx(o,{title:"Empty State",description:"Componente para exibir estados vazios com ícone, mensagem e ação opcional.",component:e.jsxs("div",{className:"w-full space-y-8 border rounded-lg p-4",children:[e.jsx(a,{title:"Nenhum item encontrado",description:"Adicione seu primeiro item para começar",action:{label:"Adicionar Item",onClick:()=>alert("Adicionar item!")}}),e.jsx("div",{className:"border-t pt-4",children:e.jsx(a,{variant:"search",title:"Nenhum resultado encontrado",description:"Tente ajustar sua busca"})}),e.jsx("div",{className:"border-t pt-4",children:e.jsx(a,{variant:"error",title:"Erro ao carregar dados",description:"Não foi possível carregar as informações",action:{label:"Tentar Novamente",onClick:()=>alert("Tentando novamente...")}})}),e.jsx("div",{className:"border-t pt-4",children:e.jsx(a,{icon:e.jsx(t,{className:"h-8 w-8"}),title:"Sem produtos",description:"Nenhum produto cadastrado no sistema"})})]}),usage:`import { EmptyState } from "forlogic-core"
|
|
2
2
|
|
|
3
3
|
// Estado vazio padrão
|
|
4
4
|
<EmptyState
|
|
@@ -32,4 +32,4 @@ import{j as e,ao as a}from"./index-CE0k7Rdh.js";import{C as o}from"./ComponentDo
|
|
|
32
32
|
<EmptyState
|
|
33
33
|
icon={<Package className="h-8 w-8" />}
|
|
34
34
|
title="Sem produtos"
|
|
35
|
-
/>`,props:[{name:"icon",type:"ReactNode",default:"-",description:"Ícone customizado (sobrescreve o variant)."},{name:"title",type:"string",default:"-",description:"Título principal."},{name:"description",type:"string",default:"-",description:"Descrição opcional."},{name:"action",type:"{ label: string, onClick: () => void }",default:"-",description:"Botão de ação opcional."},{name:"variant",type:'"default" | "search" | "error"',default:"default",description:"Tipo de estado vazio."},{name:"className",type:"string",default:"-",description:"Classes CSS adicionais."}],accessibility:["Ícones pré-configurados por variant","Botão de ação opcional","Centralizado e responsivo","Suporte a ícone customizado"]})}export{
|
|
35
|
+
/>`,props:[{name:"icon",type:"ReactNode",default:"-",description:"Ícone customizado (sobrescreve o variant)."},{name:"title",type:"string",default:"-",description:"Título principal."},{name:"description",type:"string",default:"-",description:"Descrição opcional."},{name:"action",type:"{ label: string, onClick: () => void }",default:"-",description:"Botão de ação opcional."},{name:"variant",type:'"default" | "search" | "error"',default:"default",description:"Tipo de estado vazio."},{name:"className",type:"string",default:"-",description:"Classes CSS adicionais."}],accessibility:["Ícones pré-configurados por variant","Botão de ação opcional","Centralizado e responsivo","Suporte a ícone customizado"]})}export{c as EmptyStateDoc};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as e}from"./index-
|
|
1
|
+
import{j as e}from"./index-DkiftrvI.js";import{C as t}from"./ComponentDocTemplate-CQbBhfvZ.js";import{C as o}from"./ExampleCard-DuLrb3t-.js";const a=`import { getEnvironmentConfig } from 'forlogic-core';
|
|
2
2
|
import type { EnvironmentConfig } from 'forlogic-core';
|
|
3
3
|
|
|
4
4
|
// Retorna configuração baseada no VITE_SUPABASE_PROJECT_ID
|
|
@@ -47,7 +47,7 @@ VITE_SHOW_ADMIN_REPORTS=false
|
|
|
47
47
|
# VITE_SUPABASE_PROJECT_ID_STORAGE
|
|
48
48
|
# VITE_SUPABASE_URL ← extraído do client.ts
|
|
49
49
|
# VITE_SUPABASE_PUBLISHABLE_KEY ← extraído do client.ts
|
|
50
|
-
# VITE_SUPABASE_PROJECT_ID ← derivado da URL no client.ts`,
|
|
50
|
+
# VITE_SUPABASE_PROJECT_ID ← derivado da URL no client.ts`,r=`// vite.config.ts — extrai URL e key do arquivo auto-gerado
|
|
51
51
|
|
|
52
52
|
function extractSupabaseConfig() {
|
|
53
53
|
const clientPath = path.resolve(__dirname, "src/integrations/supabase/client.ts");
|
|
@@ -65,7 +65,7 @@ define: {
|
|
|
65
65
|
'import.meta.env.VITE_SUPABASE_URL': JSON.stringify(supabaseUrl),
|
|
66
66
|
'import.meta.env.VITE_SUPABASE_PUBLISHABLE_KEY': JSON.stringify(supabaseKey),
|
|
67
67
|
'import.meta.env.VITE_SUPABASE_PROJECT_ID': JSON.stringify(supabaseProjectId),
|
|
68
|
-
}`,
|
|
68
|
+
}`,s=`// eslint.config.js — bloqueia import direto do client auto-gerado
|
|
69
69
|
|
|
70
70
|
"no-restricted-imports": ["error", {
|
|
71
71
|
patterns: [{
|
|
@@ -93,4 +93,4 @@ const isDev = isDevSupabaseProject();
|
|
|
93
93
|
// Uso manual (ex: mostrar badge, desabilitar feature):
|
|
94
94
|
if (isDevSupabaseProject()) {
|
|
95
95
|
console.warn('Ambiente de desenvolvimento detectado');
|
|
96
|
-
}`;function
|
|
96
|
+
}`;function m(){return e.jsx(t,{title:"Environments (Configuração por Project ID)",description:"Configurações de ambiente são extraídas automaticamente do arquivo auto-gerado pelo Lovable (src/integrations/supabase/client.ts) e injetadas pelo vite.config.ts. Não é necessário configurar variáveis Supabase no .env.",installation:a,usage:i,notes:["As variáveis Supabase (URL, Key, Project ID) NÃO ficam no .env — são extraídas do client.ts auto-gerado.",'O vite.config.ts lê o arquivo como texto (regex) e injeta via "define" no build.',"O import direto de @/integrations/supabase/client é bloqueado por ESLint (no-restricted-imports).","Use getSupabaseClient() de forlogic-core para obter o client Supabase correto.",'Produção é detectada pelo ID "ccjfvpnndclajkleyqkc". Qualquer outro ID usa configurações de dev.',"OAuth URL, Client ID, API URL e Storage Project ID são derivados automaticamente do Project ID.","VITE_IS_QUALIEX, VITE_WIKI_URL e VITE_SHOW_ADMIN_REPORTS continuam no .env manual.","Para trocar de ambiente, basta reconectar a outro projeto Supabase — tudo se ajusta."],children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h2",{id:"variaveis-env",className:"text-xl font-semibold mb-3",children:"Variáveis .env"}),e.jsx(o,{code:n,language:"bash"})]}),e.jsxs("div",{children:[e.jsx("h2",{id:"arquitetura",className:"text-xl font-semibold mb-3",children:"Arquitetura: Extração automática do client.ts"}),e.jsxs("p",{className:"text-sm text-muted-foreground mb-3",children:["O ",e.jsx("code",{children:"vite.config.ts"})," lê o arquivo ",e.jsx("code",{children:"src/integrations/supabase/client.ts"})," (auto-gerado pelo Lovable) via regex para extrair URL e Key. Esses valores são injetados em ",e.jsx("code",{children:"import.meta.env"})," via a propriedade ",e.jsx("code",{children:"define"})," do Vite."]}),e.jsx(o,{code:r,language:"typescript"})]}),e.jsxs("div",{children:[e.jsx("h2",{id:"is-dev-project",className:"text-xl font-semibold mb-3",children:"isDevSupabaseProject()"}),e.jsxs("p",{className:"text-sm text-muted-foreground mb-3",children:["Função utilitária que retorna ",e.jsx("code",{children:"true"})," quando o Supabase conectado ",e.jsx("strong",{children:"não"})," é o de produção. Usada internamente pelo ",e.jsx("code",{children:"NavigationProvider"})," para concatenar automaticamente ",e.jsx("code",{children:'" (Dev)"'})," ao ",e.jsx("code",{children:"appName"})," da sidebar."]}),e.jsx(o,{code:c,language:"typescript"})]}),e.jsxs("div",{children:[e.jsx("h2",{id:"eslint-protection",className:"text-xl font-semibold mb-3",children:"Proteção ESLint: Bloqueio de import direto"}),e.jsxs("p",{className:"text-sm text-muted-foreground mb-3",children:["O arquivo ",e.jsx("code",{children:"client.ts"})," auto-gerado exporta um Supabase client com ",e.jsx("code",{children:"persistSession: true"})," e ",e.jsx("code",{children:"localStorage"}),", incompatível com a arquitetura do projeto (que usa token externo via ",e.jsx("code",{children:"SupabaseSingleton"}),"). Uma regra ESLint impede o import acidental desse client:"]}),e.jsx(o,{code:s,language:"typescript"})]})]})})}export{m as EnvironmentsDoc};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as r,
|
|
1
|
+
import{j as r,a as e,a4 as a}from"./index-DkiftrvI.js";import{C as t}from"./ComponentDocTemplate-CQbBhfvZ.js";import"./ExampleCard-DuLrb3t-.js";const s=`import { ErrorBoundary } from 'forlogic-core';
|
|
2
2
|
|
|
3
3
|
// Envolver componentes que podem falhar
|
|
4
4
|
function App() {
|
|
@@ -108,4 +108,4 @@ function FeaturePage() {
|
|
|
108
108
|
</ErrorBoundary>
|
|
109
109
|
</div>
|
|
110
110
|
);
|
|
111
|
-
}`,l=[{name:"children",type:"ReactNode",default:"-",description:"Componentes filhos a serem protegidos pelo boundary."},{name:"fallback",type:"ReactNode",default:"UI padrão",description:"UI customizada a exibir quando ocorrer erro. Se não fornecido, usa a UI padrão com detalhes do erro."}];function o(){return r.jsx(e,{className:"w-full max-w-md mx-auto",children:r.jsxs("div",{className:"p-6 text-center space-y-4",children:[r.jsx("div",{className:"flex justify-center",children:r.jsx(a,{className:"h-12 w-12 text-destructive"})}),r.jsx("h3",{className:"text-lg font-semibold",children:"Algo deu errado"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"Ocorreu um erro inesperado. Tente recarregar a página."}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("button",{className:"w-full px-4 py-2 text-sm border rounded-md hover:bg-muted",children:"Ver Detalhes Técnicos"}),r.jsx("button",{className:"w-full px-4 py-2 text-sm bg-primary text-primary-foreground rounded-md",children:"Recarregar Página"})]})]})})}function
|
|
111
|
+
}`,l=[{name:"children",type:"ReactNode",default:"-",description:"Componentes filhos a serem protegidos pelo boundary."},{name:"fallback",type:"ReactNode",default:"UI padrão",description:"UI customizada a exibir quando ocorrer erro. Se não fornecido, usa a UI padrão com detalhes do erro."}];function o(){return r.jsx(e,{className:"w-full max-w-md mx-auto",children:r.jsxs("div",{className:"p-6 text-center space-y-4",children:[r.jsx("div",{className:"flex justify-center",children:r.jsx(a,{className:"h-12 w-12 text-destructive"})}),r.jsx("h3",{className:"text-lg font-semibold",children:"Algo deu errado"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"Ocorreu um erro inesperado. Tente recarregar a página."}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("button",{className:"w-full px-4 py-2 text-sm border rounded-md hover:bg-muted",children:"Ver Detalhes Técnicos"}),r.jsx("button",{className:"w-full px-4 py-2 text-sm bg-primary text-primary-foreground rounded-md",children:"Recarregar Página"})]})]})})}function x(){return r.jsx(t,{title:"ErrorBoundary",description:"Componente de classe React que captura erros de renderização em componentes filhos, evitando que a aplicação inteira quebre.",usage:s,component:r.jsx(o,{}),examples:[{title:"Uso Básico",description:"Envolve componentes para capturar erros e exibir UI amigável.",preview:r.jsx(o,{}),code:n},{title:"Fallback Customizado",description:"Forneça sua própria UI de erro para casos específicos.",preview:r.jsxs("div",{className:"flex flex-col items-center justify-center p-8 bg-muted/50 rounded-lg",children:[r.jsx("h3",{className:"text-lg font-bold text-destructive",children:"Ops! Algo deu errado"}),r.jsx("p",{className:"text-muted-foreground mt-2 text-sm",children:"Por favor, tente novamente."})]}),code:d},{title:"Boundaries Granulares",description:"Isole falhas em componentes específicos para que o resto da UI continue funcionando.",preview:r.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[r.jsx(e,{className:"p-4 text-center text-xs",children:"Widget OK"}),r.jsx(e,{className:"p-4 text-center text-xs text-muted-foreground bg-muted/50",children:"Falha ao carregar"}),r.jsx(e,{className:"p-4 text-center text-xs",children:"Widget OK"})]}),code:i},{title:"Com CoreProviders",description:"CoreProviders já inclui ErrorBoundary na raiz. Use boundaries adicionais para isolamento.",preview:r.jsxs("div",{className:"p-4 border rounded-lg text-sm space-y-2",children:[r.jsxs("div",{className:"font-mono text-xs bg-muted p-2 rounded",children:["<CoreProviders>"," ← ErrorBoundary incluído"]}),r.jsxs("div",{className:"pl-4 font-mono text-xs bg-muted/50 p-2 rounded",children:["<ErrorBoundary>"," ← Adicional para isolamento"]})]}),code:c}],props:l,notes:["Em modo DEV (import.meta.env.DEV), erros são re-lançados para facilitar debugging.","Apenas erros de renderização são capturados. Erros em event handlers precisam de try/catch.","O ErrorBoundary integra com errorService para logging automático de erros.","A UI padrão inclui histórico dos últimos erros via errorService.getErrors().","CoreProviders já inclui ErrorBoundary - use boundaries adicionais apenas para isolamento granular.","Erros assíncronos (async/await, promises) não são capturados - use try/catch."]})}export{x as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as s,j as e,B as c,w as Z,ae as $,af as ee,ag as h,ah as B,ai as E,aj as ae,x as m,ad as se,Y as i,ak as ne,al as te,am as le,an as re,ao as u,ap as ie,aq as de,a as I,d as k,a5 as ce,a6 as oe,a7 as j,aa as v,J as n,K as d,M as L,N as p,O as g,Q as N,R as b,V as l,b as xe,c as he}from"./index-DkiftrvI.js";import{P as me}from"./printer-BnJ8B6m-.js";import{S as ue}from"./slider-v9tXBSnB.js";function r({name:o}){return e.jsx(c,{variant:"outline",className:"text-[10px] font-mono bg-muted/50 absolute -top-2.5 right-2 z-10",children:o})}const je=["Maria Silva","João Santos","Ana Costa","Carlos Lima","Fernanda Oliveira"],f=[{value:"pendente",label:"Pendente",variant:"secondary"},{value:"em_andamento",label:"Em Andamento",variant:"default"},{value:"concluida",label:"Concluída",variant:"success"},{value:"atrasada",label:"Atrasada",variant:"danger"}];function Ne(){const[o,V]=s.useState("dados"),[w,R]=s.useState("Implementar controle de documentos digitais"),[F,O]=s.useState("Migrar o processo de controle de documentos para formato digital, eliminando papéis e melhorando a rastreabilidade."),[S,q]=s.useState("Maria Silva"),[C,z]=s.useState("em_andamento"),[A,J]=s.useState([3]),[Q,_]=s.useState("2026-03-01"),[y,G]=s.useState("2026-06-30"),[H,K]=s.useState("Processo manual de controle de documentos gera atrasos e erros na rastreabilidade das revisões."),[t,U]=s.useState([{id:"1",what:"Mapear todos os documentos existentes",who:"Ana Costa",when:"2026-03-15",status:"concluida"},{id:"2",what:"Configurar sistema de controle digital",who:"João Santos",when:"2026-04-01",status:"em_andamento"},{id:"3",what:"Treinar colaboradores no novo sistema",who:"Maria Silva",when:"2026-05-15",status:"pendente"},{id:"4",what:"Migrar documentos para formato digital",who:"Carlos Lima",when:"2026-06-01",status:"pendente"}]),[x,P]=s.useState(""),D=f.find(a=>a.value===C),T=t.filter(a=>a.status==="concluida").length,Y=Math.round(T/t.length*100);return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"Plano de Ação"}),e.jsx("p",{className:"text-muted-foreground mt-1",children:"Formulário complexo multi-tab com campos variados, breadcrumb e ações contextuais — inspirado no módulo de Plano de Ação."}),e.jsx("div",{className:"flex flex-wrap gap-1 mt-3",children:["Breadcrumb","Tabs","Input","Textarea","Select","Label","Slider","DropdownMenu","Badge","Card","Separator"].map(a=>e.jsx(c,{variant:"outline",className:"text-xs font-mono",children:a},a))})]}),e.jsx(Z,{}),e.jsxs("div",{className:"relative",children:[e.jsx(r,{name:"Breadcrumb"}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx($,{children:e.jsxs(ee,{children:[e.jsx(h,{children:e.jsx(B,{href:"#",children:"Planos de Ação"})}),e.jsx(E,{}),e.jsx(h,{children:e.jsx(B,{href:"#",children:"2026"})}),e.jsx(E,{}),e.jsx(h,{children:e.jsx(ae,{children:"PA-2026-003"})})]})}),e.jsxs("div",{className:"relative",children:[e.jsx(r,{name:"DropdownMenu"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(m,{onClick:()=>i.success("Plano salvo"),children:[e.jsx(se,{className:"h-4 w-4 mr-2"})," Salvar"]}),e.jsxs(ne,{children:[e.jsx(te,{asChild:!0,children:e.jsx(m,{variant:"outline",size:"icon",children:e.jsx(le,{className:"h-4 w-4"})})}),e.jsxs(re,{align:"end",children:[e.jsxs(u,{onClick:()=>i.info("Enviando para aprovação..."),children:[e.jsx(ie,{className:"h-4 w-4 mr-2"})," Enviar para Aprovação"]}),e.jsxs(u,{onClick:()=>i.info("Gerando PDF..."),children:[e.jsx(me,{className:"h-4 w-4 mr-2"})," Imprimir"]}),e.jsx(de,{}),e.jsx(u,{className:"text-destructive",children:"Cancelar Plano"})]})]})]})]})]})]}),e.jsx(I,{children:e.jsx(k,{className:"pt-6",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("span",{className:"text-sm font-mono text-muted-foreground",children:"PA-2026-003"}),e.jsx(c,{variant:D?.variant,children:D?.label})]}),e.jsx("h2",{className:"text-xl font-semibold",children:w})]}),e.jsxs("div",{className:"text-right text-sm text-muted-foreground",children:[e.jsxs("div",{children:["Progresso: ",e.jsxs("strong",{children:[Y,"%"]})]}),e.jsxs("div",{children:[T,"/",t.length," ações concluídas"]})]})]})})}),e.jsxs("div",{className:"relative",children:[e.jsx(r,{name:"Tabs"}),e.jsxs(ce,{value:o,onValueChange:V,children:[e.jsxs(oe,{children:[e.jsx(j,{value:"dados",children:"Dados Gerais"}),e.jsx(j,{value:"causa",children:"Análise de Causa"}),e.jsxs(j,{value:"acoes",children:["Ações (",t.length,")"]})]}),e.jsx(v,{value:"dados",className:"space-y-4 mt-4",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{children:"Título do Plano *"}),e.jsx(d,{value:w,onChange:a=>R(a.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{children:"Descrição"}),e.jsx(L,{value:F,onChange:a=>O(a.target.value),rows:4})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(r,{name:"Select"}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{children:"Responsável"}),e.jsxs(p,{value:S,onValueChange:q,children:[e.jsx(g,{children:e.jsx(N,{})}),e.jsx(b,{children:je.map(a=>e.jsx(l,{value:a,children:a},a))})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{children:"Status"}),e.jsxs(p,{value:C,onValueChange:z,children:[e.jsx(g,{children:e.jsx(N,{})}),e.jsx(b,{children:f.map(a=>e.jsx(l,{value:a.value,children:a.label},a.value))})]})]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{children:"Data Início"}),e.jsx(d,{type:"date",value:Q,onChange:a=>_(a.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{children:"Data Fim"}),e.jsx(d,{type:"date",value:y,onChange:a=>G(a.target.value)})]})]}),e.jsxs("div",{className:"relative",children:[e.jsx(r,{name:"Slider"}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(n,{children:["Prioridade: ",A[0],"/5"]}),e.jsx(ue,{value:A,onValueChange:J,min:1,max:5,step:1})]})]})]})]})}),e.jsx(v,{value:"causa",className:"mt-4",children:e.jsxs(I,{children:[e.jsx(xe,{children:e.jsx(he,{children:"Análise de Causa Raiz"})}),e.jsxs(k,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{children:"Descrição da Causa"}),e.jsx(L,{value:H,onChange:a=>K(a.target.value),rows:5})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(n,{children:"Método de Análise"}),e.jsxs(p,{defaultValue:"5w",children:[e.jsx(g,{className:"w-64",children:e.jsx(N,{})}),e.jsxs(b,{children:[e.jsx(l,{value:"5w",children:"5 Porquês"}),e.jsx(l,{value:"ishikawa",children:"Diagrama de Ishikawa"}),e.jsx(l,{value:"pareto",children:"Análise de Pareto"})]})]})]})]})]})}),e.jsxs(v,{value:"acoes",className:"mt-4 space-y-4",children:[e.jsx("div",{className:"border rounded-md",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b bg-muted/50",children:[e.jsx("th",{className:"text-left p-3 font-medium w-8",children:"#"}),e.jsx("th",{className:"text-left p-3 font-medium",children:"O quê"}),e.jsx("th",{className:"text-left p-3 font-medium",children:"Quem"}),e.jsx("th",{className:"text-left p-3 font-medium",children:"Quando"}),e.jsx("th",{className:"text-left p-3 font-medium",children:"Status"})]})}),e.jsx("tbody",{children:t.map((a,W)=>{const M=f.find(X=>X.value===a.status);return e.jsxs("tr",{className:"border-b last:border-0 hover:bg-muted/30",children:[e.jsx("td",{className:"p-3 text-muted-foreground",children:W+1}),e.jsx("td",{className:"p-3",children:a.what}),e.jsx("td",{className:"p-3",children:a.who}),e.jsx("td",{className:"p-3 whitespace-nowrap",children:a.when}),e.jsx("td",{className:"p-3",children:e.jsx(c,{variant:M?.variant,children:M?.label})})]},a.id)})})]})}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(d,{placeholder:"Adicionar nova ação...",value:x,onChange:a=>P(a.target.value),className:"flex-1"}),e.jsx(m,{onClick:()=>{x&&(U(a=>[...a,{id:String(Date.now()),what:x,who:S,when:y,status:"pendente"}]),P(""),i.success("Ação adicionada"))},children:"Adicionar"})]})]})]})]})]})}export{Ne as ExampleActionPlanPage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e,F as l,L as n,S as d,C as c,U as p,a as m,b as x,c as u,B as t,d as g,e as h,A as b}from"./index-DkiftrvI.js";import{C}from"./clipboard-list-CXNPdciZ.js";const s=[{id:"example-app-reports",title:"Gestão de Relatórios",icon:l,description:"CRUD completo com createCrudPage, tabela com ações customizadas, formulário com validação e upload de arquivo.",components:["createCrudPage","CrudTable","CrudActionBar","BaseForm","ActionButton","Badge","Dialog","Combobox","Switch","Input","Textarea","Checkbox","Pagination","Toast"]},{id:"example-app-ideas",title:"Gestão de Ideias",icon:n,description:"Lista com filtros por tags, dialogs de criação/edição, formulário com RichTextEditor e confirmação de exclusão.",components:["BodyContent","Button","Badge","Popover","Dialog","Table","EmptyState","RichTextEditor","Input","Checkbox"]},{id:"example-app-settings",title:"Configurações com Tabs",icon:d,description:"Página com Tabs para gerenciar permissões, cards de formulário e tabela de registros existentes.",components:["Tabs","Card","Select","RadioGroup","Label","Input","Button","Separator","Progress","Table"]},{id:"example-app-action-plan",title:"Plano de Ação",icon:C,description:"Formulário complexo multi-tab com campos variados, breadcrumb de navegação e ações contextuais.",components:["Tabs","Input","Textarea","Select","Calendar","Label","Slider","DropdownMenu","Breadcrumb","Badge"]},{id:"example-app-dashboard",title:"Dashboard & Visão Geral",icon:c,description:"Dashboard com painéis numéricos, gráficos de coluna/pizza/linha e lista de itens recentes.",components:["Card","Chart","Progress","Badge","Separator","ScrollArea","Avatar"]},{id:"example-app-import",title:"Wizard de Importação",icon:p,description:"Fluxo step-by-step com upload de arquivo, validação em tabela, progresso e resultado final.",components:["StepSelector","FileUpload","Table","Progress","Loading","Alert","ScrollArea","Button"]}],j=new Set(s.flatMap(o=>o.components)).size;function N({onNavigate:o}){return e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-4xl font-bold tracking-tight",children:"Aplicação Exemplo"}),e.jsxs("p",{className:"text-xl text-muted-foreground mt-2",children:[e.jsxs("strong",{children:[j," componentes"]})," demonstrados em ",s.length," cenários reais de gestão da qualidade"]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"Cada página simula uma aplicação completa com dados mockados e interatividade real."})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:s.map(a=>{const r=a.icon;return e.jsxs(m,{className:"group cursor-pointer hover:border-primary/50 hover:shadow-md transition-all",onClick:()=>o?.(a.id),children:[e.jsx(x,{className:"pb-3",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-2 rounded-md bg-primary/10 text-primary",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsx(u,{className:"text-lg",children:a.title})]}),e.jsx(t,{variant:"secondary",children:a.components.length})]})}),e.jsxs(g,{children:[e.jsx(h,{className:"text-sm mb-3",children:a.description}),e.jsxs("div",{className:"flex flex-wrap gap-1 mb-3",children:[a.components.slice(0,6).map(i=>e.jsx(t,{variant:"outline",className:"text-xs",children:i},i)),a.components.length>6&&e.jsxs(t,{variant:"outline",className:"text-xs",children:["+",a.components.length-6]})]}),e.jsxs("div",{className:"flex items-center gap-1 text-sm text-primary opacity-0 group-hover:opacity-100 transition-opacity",children:["Ver cenário ",e.jsx(b,{className:"h-3.5 w-3.5"})]})]})]},a.id)})})]})}export{N as ExampleAppDoc};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as p,j as e,x as b,bs as h,a$ as j,b7 as u,a5 as v,a6 as N,a7 as l,aX as g,dy as f,aa as c}from"./index-DkiftrvI.js";function w({code:a,language:s="tsx",className:t=""}){const[d,r]=p.useState(!1),n=async()=>{await navigator.clipboard.writeText(a),r(!0),setTimeout(()=>r(!1),2e3)};return e.jsxs("div",{className:`relative rounded-lg border bg-muted/50 ${t}`,children:[e.jsxs("div",{className:"flex items-center justify-between border-b bg-muted/50 px-4 py-2",children:[e.jsx("span",{className:"text-xs font-mono text-muted-foreground",children:s}),e.jsx(b,{variant:"ghost",size:"sm",onClick:n,className:"h-7 px-2",children:d?e.jsxs(e.Fragment,{children:[e.jsx(h,{className:"h-3 w-3 mr-1"}),e.jsx("span",{className:"text-xs",children:"Copied"})]}):e.jsxs(e.Fragment,{children:[e.jsx(j,{className:"h-3 w-3 mr-1"}),e.jsx("span",{className:"text-xs",children:"Copy"})]})})]}),e.jsx("pre",{className:"overflow-x-auto p-4",children:e.jsx("code",{className:"text-sm font-mono",children:a})})]})}const C=u.forwardRef(({title:a,description:s,preview:t,code:d,id:r,language:n="tsx",defaultTab:o="preview",className:i="",previewClassName:x=""},m)=>e.jsxs("div",{ref:m,id:r,className:`rounded-lg border bg-card scroll-mt-4 ${i}`,children:[(a||s)&&e.jsxs("div",{className:"border-b px-4 py-3",children:[a&&e.jsx("h3",{className:"font-semibold text-base",children:a}),s&&e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:s})]}),e.jsxs(v,{defaultValue:o,className:"w-full",children:[e.jsx("div",{className:"border-b px-4",children:e.jsxs(N,{className:"h-10 bg-transparent p-0 gap-4",children:[e.jsxs(l,{value:"preview",className:"gap-2 px-0 pb-3 pt-2 rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent data-[state=active]:shadow-none",children:[e.jsx(g,{size:16}),"Preview"]}),e.jsxs(l,{value:"code",className:"gap-2 px-0 pb-3 pt-2 rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent data-[state=active]:shadow-none",children:[e.jsx(f,{size:16}),"Código"]})]})}),e.jsx(c,{value:"preview",className:"mt-0 p-0",children:e.jsx("div",{className:`p-6 ${x}`,children:t})}),e.jsx(c,{value:"code",className:"mt-0 p-0",children:e.jsx("div",{className:"p-4",children:e.jsx(w,{code:d,language:n})})})]})]}));C.displayName="ExampleCard";export{w as C,C as E};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as ae,f as ie,g as te,r,j as e,h as re,T as ne,i as oe,k as K,l as H,m as q,n as le,o as de,p as ce,q as V,s as me,t as he,v as ue,B as G,w as xe,x as T,P as ge,y as pe,z as je,E as U,G as J,H as Q,I as X,J as z,K as Y,M as fe,N as ve,O as Se,Q as Ce,R as Ne,V as Re,W as be,X as Z,Y as I}from"./index-DkiftrvI.js";import{F as we}from"./FilterBar-DDTqqUfZ.js";function ke({data:c,columns:n,sortField:f,sortDirection:B,onSort:v,onRowClick:W,renderActions:o,isLoading:S=!1,emptyMessage:E,className:h,enableSelection:u=!1,selectedIds:F=[],onSelectItem:C,onSelectAll:y,isAllSelected:N=!1,enableColumnResize:d=!0,onColumnResize:D,enableColumnReorder:x=!1,onReorderColumns:g,storageKey:R}){const{t:m}=ae(),P=E||m("no_items_found","Nenhum item encontrado"),{columnWidths:b,isDragging:w,activeColumn:A,handleMouseDown:M}=ie({columns:n.map(i=>({key:String(i.key),minWidth:i.minWidth??60,maxWidth:i.maxWidth??500,defaultWidth:i.width??i.minWidth??150})),storageKey:R?`${R}-columns`:void 0,onResize:D,enabled:d}),l=te({enabled:x&&!!g,onReorder:g??(()=>{})}),O=r.useMemo(()=>{if(d)return n.map(a=>`${b[String(a.key)]??a.width??a.minWidth??150}px`);const i=n.reduce((a,p)=>p.width?a:a+(p.weight??1),0);return n.map(a=>{if(a.width)return`${a.width}px`;if(a.minWidth&&!a.weight)return`${a.minWidth}px`;const k=(a.weight??1)/i*100;return a.minWidth?`minmax(${a.minWidth}px, ${k}%)`:`${k}%`})},[n,d,b]),L=i=>f!==i?null:B==="asc"?e.jsx(he,{size:14,className:"ml-1"}):e.jsx(ue,{size:14,className:"ml-1"});return S?e.jsx("div",{className:"flex-1 overflow-auto",children:e.jsx("div",{className:"p-4 space-y-3",children:[...Array(5)].map((i,a)=>e.jsx(re,{className:"h-12 w-full"},a))})}):c.length===0?e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx("div",{className:"text-center text-muted-foreground",children:e.jsx("p",{children:P})})}):e.jsx("div",{className:`flex-1 overflow-auto ${w?"select-none":""}`,children:e.jsxs(ne,{className:h,children:[e.jsx(oe,{className:"sticky top-0 bg-background z-10",children:e.jsxs(K,{children:[u&&e.jsx(H,{className:"w-[40px]",children:e.jsx(q,{checked:N,onCheckedChange:y,"aria-label":m("select_all","Selecionar todos")})}),n.map((i,a)=>{const p=d&&i.resizable!==!1,k=A===String(i.key),$=x&&!!g,s=$?l.getDragProps(a):{},t=l.dragFromIndex===a,_=l.dragOverIndex===a&&l.dragFromIndex!==a;return e.jsxs(H,{className:de(i.className,"relative transition-opacity",i.sortable&&"cursor-pointer",$&&l.isDragging&&"cursor-grabbing",t&&"opacity-50",_&&"border-l-2 border-primary"),style:{width:O[a]},...s,children:[i.sortable&&v?e.jsxs("button",{onClick:()=>v(String(i.key)),className:"flex items-center hover:text-foreground transition-colors font-medium",children:[i.header,L(String(i.key))]}):e.jsx("span",{className:"font-medium",children:i.header}),p&&e.jsx(le,{direction:"horizontal",onMouseDown:se=>M(String(i.key),se),isDragging:k})]},String(i.key))}),o&&e.jsx(H,{className:"w-[80px] text-right",children:m("actions","Ações")})]})}),e.jsx(ce,{children:c.map(i=>e.jsxs(K,{onClick:()=>W?.(i),className:`${W?"cursor-pointer":""} relative`,children:[u&&e.jsx(V,{children:e.jsx(q,{checked:F.includes(i.id),onCheckedChange:()=>C?.(i.id),onClick:a=>a.stopPropagation(),"aria-label":`${m("select_all","Selecionar todos")} ${i.id}`})}),n.map(a=>e.jsx(V,{className:a.className,children:e.jsx(me,{children:a.render?a.render(i):String(i[a.key]??"-")})},String(a.key))),o&&e.jsx(V,{className:"text-right",onClick:a=>a.stopPropagation(),children:o(i)})]},i.id))})]})})}const ee=[{id:"docs",label:"Documentos"},{id:"nc",label:"Não Conformidades"},{id:"audit",label:"Auditorias"},{id:"training",label:"Treinamentos"},{id:"risk",label:"Gestão de Riscos"}],Te=[{id:"1",code:"RPT-001",name:"Relatório de Auditorias Pendentes",description:"Lista todas as auditorias com status pendente no período",isAdminReport:!1,module:"audit",fileSize:245760,lastModified:"2026-03-28T14:30:00"},{id:"2",code:"RPT-002",name:"Indicadores de NC por Setor",description:"Gráfico de não conformidades agrupadas por setor",isAdminReport:!0,module:"nc",fileSize:512e3,lastModified:"2026-03-25T09:15:00"},{id:"3",code:"RPT-003",name:"Controle de Documentos Vencidos",description:"Documentos com prazo de revisão expirado",isAdminReport:!1,module:"docs",fileSize:128e3,lastModified:"2026-03-20T16:45:00"},{id:"4",code:"RPT-004",name:"Matriz de Treinamentos",description:"Acompanhamento de treinamentos por colaborador",isAdminReport:!1,module:"training",fileSize:384e3,lastModified:"2026-03-15T11:00:00"},{id:"5",code:"RPT-005",name:"Análise de Riscos Críticos",description:"Riscos classificados como críticos e seus planos de ação",isAdminReport:!0,module:"risk",fileSize:64e4,lastModified:"2026-03-10T08:30:00"},{id:"6",code:"RPT-006",name:"Resumo Mensal de Ocorrências",description:"Consolidado mensal de todas as ocorrências registradas",isAdminReport:!1,module:"nc",fileSize:192e3,lastModified:"2026-03-05T13:20:00"}];function j({name:c}){return e.jsx(G,{variant:"outline",className:"text-[10px] font-mono bg-muted/50 absolute -top-2.5 right-2 z-10",children:c})}function Pe(){const[c,n]=r.useState(Te),[f,B]=r.useState(""),[v,W]=r.useState(1),[o,S]=r.useState([]),[E,h]=r.useState(!1),[u,F]=r.useState(null),[C,y]=r.useState(null),N=5,[d,D]=r.useState(""),[x,g]=r.useState(""),[R,m]=r.useState(""),[P,b]=r.useState(!1),[w,A]=r.useState(""),M=r.useMemo(()=>{if(!f)return c;const s=f.toLowerCase();return c.filter(t=>t.code.toLowerCase().includes(s)||t.name.toLowerCase().includes(s))},[c,f]),l=M.slice((v-1)*N,v*N),O=()=>{F(null),D(""),g(""),m(""),b(!1),A(""),h(!0)},L=s=>{F(s),D(s.code),g(s.name),m(s.description),b(s.isAdminReport),A(s.module),h(!0)},i=()=>{if(!d||!x||!w){I.error("Preencha os campos obrigatórios");return}if(u)n(s=>s.map(t=>t.id===u.id?{...t,code:d,name:x,description:R,isAdminReport:P,module:w,lastModified:new Date().toISOString()}:t)),I.success("Relatório atualizado");else{const s={id:String(Date.now()),code:d,name:x,description:R,isAdminReport:P,module:w,fileSize:0,lastModified:new Date().toISOString()};n(t=>[...t,s]),I.success("Relatório criado")}h(!1)},a=()=>{C&&(n(s=>s.filter(t=>t.id!==C.id)),I.success("Relatório excluído"),y(null))},p=()=>{n(s=>s.filter(t=>!o.includes(t.id))),I.success(`${o.length} relatórios excluídos`),S([])},k=[{key:"code",header:"Código",sortable:!0,width:120},{key:"name",header:"Nome",sortable:!0,minWidth:200},{key:"isAdminReport",header:"Admin",sortable:!0,width:80,render:s=>e.jsx(G,{variant:s.isAdminReport?"success":"secondary",children:s.isAdminReport?"Sim":"Não"})},{key:"module",header:"Módulo",sortable:!0,width:150,render:s=>ee.find(t=>t.id===s.module)?.label??s.module},{key:"fileSize",header:"Tamanho",width:100,render:s=>`${(s.fileSize/1024).toFixed(0)} KB`},{key:"lastModified",header:"Modificado",sortable:!0,width:160,render:s=>new Date(s.lastModified).toLocaleDateString("pt-BR",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"})}],$=()=>{o.length===l.length?S([]):S(l.map(s=>s.id))};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"Gestão de Relatórios"}),e.jsx("p",{className:"text-muted-foreground mt-1",children:"Cenário CRUD completo inspirado em páginas reais do sistema — demonstra como os componentes se integram."}),e.jsx("div",{className:"flex flex-wrap gap-1 mt-3",children:["CrudPrimitiveTable","CrudPrimitivePagination","FilterBar","ActionButton","Badge","Dialog","Select","Switch","Input","Textarea","Label","Checkbox","Toast","Button","Separator"].map(s=>e.jsx(G,{variant:"outline",className:"text-xs font-mono",children:s},s))})]}),e.jsx(xe,{}),e.jsxs("div",{className:"relative",children:[e.jsx(j,{name:"CrudActionBar pattern"}),e.jsxs("div",{className:"flex items-center gap-4 bg-muted/50 p-3 rounded-lg",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(T,{onClick:O,children:[e.jsx(ge,{className:"h-4 w-4 mr-2"})," Novo Relatório"]}),o.length>0&&e.jsxs(T,{variant:"destructive",size:"sm",onClick:p,children:[e.jsx(pe,{className:"h-4 w-4 mr-2"})," Excluir (",o.length,")"]})]}),e.jsx("div",{className:"flex-1 max-w-md",children:e.jsx(we,{searchValue:f,onSearchChange:B})}),e.jsx("div",{})]})]}),e.jsxs("div",{className:"relative",children:[e.jsx(j,{name:"CrudPrimitiveTable"}),e.jsx(ke,{data:l,columns:k,enableSelection:!0,selectedIds:o,onSelectItem:s=>S(t=>t.includes(s)?t.filter(_=>_!==s):[...t,s]),onSelectAll:$,isAllSelected:o.length===l.length&&l.length>0,onRowClick:L})]}),e.jsxs("div",{className:"relative",children:[e.jsx(j,{name:"CrudPrimitivePagination"}),e.jsx(je,{variant:"full",currentPage:v,totalPages:Math.ceil(M.length/N),totalItems:M.length,itemsPerPage:N,onPageChange:W,onItemsPerPageChange:()=>{}})]}),e.jsx(U,{open:E,onOpenChange:h,children:e.jsxs(J,{children:[e.jsx(Q,{children:e.jsx(X,{children:u?"Editar Relatório":"Novo Relatório"})}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(j,{name:"Input + Label"}),e.jsxs("div",{className:"grid grid-cols-4 gap-4",children:[e.jsxs("div",{className:"col-span-1 space-y-2",children:[e.jsx(z,{htmlFor:"rpt-code",children:"Código *"}),e.jsx(Y,{id:"rpt-code",value:d,onChange:s=>D(s.target.value),maxLength:40,placeholder:"RPT-000"})]}),e.jsxs("div",{className:"col-span-3 space-y-2",children:[e.jsx(z,{htmlFor:"rpt-name",children:"Nome *"}),e.jsx(Y,{id:"rpt-name",value:x,onChange:s=>g(s.target.value),maxLength:150})]})]})]}),e.jsxs("div",{className:"relative",children:[e.jsx(j,{name:"Textarea"}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(z,{htmlFor:"rpt-desc",children:"Descrição"}),e.jsx(fe,{id:"rpt-desc",value:R,onChange:s=>m(s.target.value),maxLength:300,rows:3})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(j,{name:"Select"}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(z,{children:"Módulo *"}),e.jsxs(ve,{value:w,onValueChange:A,children:[e.jsx(Se,{children:e.jsx(Ce,{placeholder:"Selecione..."})}),e.jsx(Ne,{children:ee.map(s=>e.jsx(Re,{value:s.id,children:s.label},s.id))})]})]})]}),e.jsxs("div",{className:"relative",children:[e.jsx(j,{name:"Switch"}),e.jsx("div",{className:"space-y-2 pt-6",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(be,{checked:P,onCheckedChange:b}),e.jsx(z,{children:"Relatório Admin?"})]})})]})]})]}),e.jsxs(Z,{children:[e.jsx(T,{variant:"outline",onClick:()=>h(!1),children:"Cancelar"}),e.jsx(T,{onClick:i,children:u?"Salvar":"Criar"})]})]})}),e.jsx(U,{open:!!C,onOpenChange:s=>{s||y(null)},children:e.jsxs(J,{size:"sm",variant:"destructive",children:[e.jsx(Q,{children:e.jsx(X,{children:"Confirmar Exclusão"})}),e.jsxs("p",{className:"text-sm text-muted-foreground py-4",children:["Tem certeza que deseja excluir o relatório ",e.jsx("strong",{children:C?.name}),"?"]}),e.jsxs(Z,{children:[e.jsx(T,{variant:"outline",onClick:()=>y(null),children:"Cancelar"}),e.jsx(T,{variant:"destructive",onClick:a,children:"Excluir"})]})]})})]})}export{Pe as ExampleCrudReportsPage};
|