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.
Files changed (309) hide show
  1. package/.note/memory/patterns/single-scroll-pattern.md +30 -12
  2. package/README.md +0 -46
  3. package/dist/action-plans/components/ActionPlanAttachmentsTab.d.ts +18 -0
  4. package/dist/action-plans/components/ActionPlanCommentsTab.d.ts +18 -0
  5. package/dist/action-plans/components/ActionPlanCostTab.d.ts +10 -0
  6. package/dist/action-plans/components/ActionPlanGeneralTab.d.ts +18 -0
  7. package/dist/action-plans/components/ActionPlanHistoryTab.d.ts +13 -0
  8. package/dist/action-plans/components/ActionPlanPage.d.ts +25 -0
  9. package/dist/action-plans/components/ActionPlanPredecessorsTab.d.ts +10 -0
  10. package/dist/action-plans/components/ActionPlanProgressDialog.d.ts +13 -0
  11. package/dist/action-plans/components/ActionPlanProgressTab.d.ts +5 -0
  12. package/dist/action-plans/components/ActionPlanStatusBadge.d.ts +11 -0
  13. package/dist/action-plans/constants.d.ts +42 -0
  14. package/dist/action-plans/hooks/useActionPlan.d.ts +14 -0
  15. package/dist/action-plans/hooks/useActionPlanProgress.d.ts +15 -0
  16. package/dist/action-plans/index.d.ts +15 -0
  17. package/dist/action-plans/types.d.ts +353 -0
  18. package/dist/action-plans/utils/formatTime.d.ts +15 -0
  19. package/dist/approval-flow/components/ApprovalSidenav.d.ts +16 -0
  20. package/dist/approval-flow/components/ApproveDialog.d.ts +13 -0
  21. package/dist/approval-flow/components/SelectApproverDialog.d.ts +11 -0
  22. package/dist/approval-flow/index.d.ts +4 -0
  23. package/dist/approval-flow/types.d.ts +76 -0
  24. package/dist/assets/AccordionDoc-CGNlubG3.js +31 -0
  25. package/dist/assets/{ActionButtonDoc-DLJ_K9ib.js → ActionButtonDoc-CYtkXR0k.js} +2 -2
  26. package/dist/assets/ActionPlanDoc-BSuPRftQ.js +65 -0
  27. package/dist/assets/{AlertDoc-CY1ybZeG.js → AlertDoc-Cpvxneqg.js} +7 -7
  28. package/dist/assets/AliasUrlDoc-DIpUWf4Y.js +189 -0
  29. package/dist/assets/AppHeaderDoc-DNQErj_t.js +74 -0
  30. package/dist/assets/AppSidebarDoc-DkeQarDu.js +221 -0
  31. package/dist/assets/ApprovalFlowDoc-8YgXbhKJ.js +31 -0
  32. package/dist/assets/AuditLogDoc-BBvNcHIo.js +67 -0
  33. package/dist/assets/AuditTrailDoc-DgFHO-uo.js +17 -0
  34. package/dist/assets/AuthDoc-WIA_Aetl.js +200 -0
  35. package/dist/assets/{AvatarDoc-BLdMoyJd.js → AvatarDoc-B6go1C1T.js} +2 -2
  36. package/dist/assets/{BadgeDoc-CSNM1b6b.js → BadgeDoc-BONhfqB_.js} +2 -2
  37. package/dist/assets/BaseFormDoc-CuyUArcj.js +169 -0
  38. package/dist/assets/{BodyContentDoc-Bp6YmUWX.js → BodyContentDoc-CterHC1E.js} +2 -2
  39. package/dist/assets/{BreadcrumbDoc-D7tqqTvo.js → BreadcrumbDoc-Dwn9nLeO.js} +2 -2
  40. package/dist/assets/{ButtonDoc-C4JwIvU3.js → ButtonDoc-BOjRseZT.js} +2 -2
  41. package/dist/assets/ButtonGroupDoc-8IS6PPh4.js +7 -0
  42. package/dist/assets/{CalendarDoc-COlEKqmv.js → CalendarDoc-CMwIEqgT.js} +3 -3
  43. package/dist/assets/{CardDoc-BVhMoC2w.js → CardDoc-BZz1CVg2.js} +2 -2
  44. package/dist/assets/ChartDoc-B5vZVtqD.js +76 -0
  45. package/dist/assets/{CheckboxDoc-Bcqpln9_.js → CheckboxDoc-lAbYO9I5.js} +2 -2
  46. package/dist/assets/ColorPickerDoc-Dpsprp4N.js +10 -0
  47. package/dist/assets/{ColorsFoundationDoc-uO6IiJbS.js → ColorsFoundationDoc-CCHeSL3p.js} +1 -1
  48. package/dist/assets/ComboTreeDoc-D4dTkIt-.js +46 -0
  49. package/dist/assets/ComboboxDoc-CqqZPvZq.js +134 -0
  50. package/dist/assets/ComponentDocTemplate-CQbBhfvZ.js +1 -0
  51. package/dist/assets/{ContextMenuDoc-C4-_0NLp.js → ContextMenuDoc-D3jC-MVA.js} +2 -2
  52. package/dist/assets/{ContextsDoc-Cj9Aaoyo.js → ContextsDoc-XFH0-JdS.js} +30 -3
  53. package/dist/assets/{CreateCrudPageDoc-D_SnMRJ2.js → CreateCrudPageDoc-CpuiWI-g.js} +2 -2
  54. package/dist/assets/{CrudActionBarDoc-BYqtIabp.js → CrudActionBarDoc-wuBGXD9Y.js} +4 -4
  55. package/dist/assets/CrudGridDoc-BYWqSXBH.js +85 -0
  56. package/dist/assets/CrudOverviewDoc-B_bk2a2t.js +14 -0
  57. package/dist/assets/{CrudPrimitivesDoc-BRS86nWg.js → CrudPrimitivesDoc-CxaTB94A.js} +4 -4
  58. package/dist/assets/{CrudTableDoc-Daw8u2G_.js → CrudTableDoc-Dga1VgCu.js} +5 -5
  59. package/dist/assets/CustomFormFieldsDoc-C1hwwSl3.js +33 -0
  60. package/dist/assets/DashboardFormDoc-BUDCmrMl.js +49 -0
  61. package/dist/assets/DashboardGeneralViewDoc-Cyg1SIiG.js +71 -0
  62. package/dist/assets/DashboardGridDoc-BavePiRF.js +49 -0
  63. package/dist/assets/DashboardListDoc-CLyMA6UK.js +37 -0
  64. package/dist/assets/DashboardOverviewDoc-DRVvNIF1.js +35 -0
  65. package/dist/assets/DashboardPanelRendererDoc--mfwb8Nc.js +60 -0
  66. package/dist/assets/DashboardPanelsBasicDoc-BQ2V_52D.js +62 -0
  67. package/dist/assets/DashboardPanelsCartesianDoc-sy-hcVQY.js +75 -0
  68. package/dist/assets/DashboardPanelsSpecialDoc-DsIUCRRP.js +83 -0
  69. package/dist/assets/DashboardViewDoc-CtlCNlEF.js +45 -0
  70. package/dist/assets/DataListDoc-DUy88lCQ.js +13 -0
  71. package/dist/assets/DesignSystemHome-DHl9YtbH.js +1 -0
  72. package/dist/assets/{DialogDoc-DCpRy4rg.js → DialogDoc-CMQqnTV-.js} +2 -2
  73. package/dist/assets/{DropdownMenuDoc-DT6LBa8Z.js → DropdownMenuDoc-S7X9csGt.js} +5 -5
  74. package/dist/assets/ElectronicSignatureDialogDoc-BfithaL_.js +57 -0
  75. package/dist/assets/{EmptyStateDoc-wydc09gG.js → EmptyStateDoc-CHGCiGIk.js} +2 -2
  76. package/dist/assets/{EnvironmentsDoc-amIriwDD.js → EnvironmentsDoc-DZHJZ2nm.js} +4 -4
  77. package/dist/assets/{ErrorBoundaryDoc-BEixy_Gl.js → ErrorBoundaryDoc-DoaAg68p.js} +2 -2
  78. package/dist/assets/ExampleActionPlanPage-C0fIMZCD.js +1 -0
  79. package/dist/assets/ExampleAppDoc-DzIU81Fn.js +1 -0
  80. package/dist/assets/ExampleCard-DuLrb3t-.js +1 -0
  81. package/dist/assets/ExampleCrudReportsPage-M0pz6tdM.js +1 -0
  82. package/dist/assets/ExampleDashboardPage-CRG5r3Vw.js +1 -0
  83. package/dist/assets/ExampleIdeasPage-I84ZMLY4.js +1 -0
  84. package/dist/assets/ExampleImportWizardPage-h4YqrrSe.js +1 -0
  85. package/dist/assets/ExampleSettingsPage-CwdWqoaP.js +1 -0
  86. package/dist/assets/FileUploadDoc-9-UujFNX.js +34 -0
  87. package/dist/assets/FilterBar-DDTqqUfZ.js +1 -0
  88. package/dist/assets/{FormDoc-DxoRt6p7.js → FormDoc-CVES6n3d.js} +2 -2
  89. package/dist/assets/{FoundationOverview-CxSbumIt.js → FoundationOverview-DT0u11Gz.js} +1 -1
  90. package/dist/assets/{GridDoc-BpQqCMUE.js → GridDoc-CbHFSILF.js} +2 -2
  91. package/dist/assets/{HooksDoc-JNODhbaF.js → HooksDoc-Ctxdk6Wq.js} +5 -5
  92. package/dist/assets/{HoverCardDoc-CdqiYrIb.js → HoverCardDoc-8Wkaafdj.js} +2 -2
  93. package/dist/assets/I18nDoc-D3Q2m7ik.js +167 -0
  94. package/dist/assets/IconPickerDoc-DZ26Gdpg.js +10 -0
  95. package/dist/assets/{IconsFoundationDoc-CrymfxTI.js → IconsFoundationDoc-xOxtC7CW.js} +5 -5
  96. package/dist/assets/{InputDoc-BK-SdpJ7.js → InputDoc-BhztAiuJ.js} +4 -4
  97. package/dist/assets/{LabelDoc-DHvgzhaJ.js → LabelDoc-A4hmTRRV.js} +2 -2
  98. package/dist/assets/LeadershipDoc-CqOSfWsP.js +452 -0
  99. package/dist/assets/{MediaDoc-B_vqnf72.js → MediaDoc-C78gvC8p.js} +2 -2
  100. package/dist/assets/MenubarDoc-DCnmd2tO.js +165 -0
  101. package/dist/assets/{ModuleAccessDoc-Nuxb4S27.js → ModuleAccessDoc-CmD5nHDp.js} +2 -2
  102. package/dist/assets/{ModulesDialogDoc-iJWLkOZo.js → ModulesDialogDoc-DVit1CA-.js} +2 -2
  103. package/dist/assets/MultiselectPermissionsDoc-tlJMs04L.js +34 -0
  104. package/dist/assets/NavigationMenuDoc-q1fbc89j.js +116 -0
  105. package/dist/assets/{OnboardingDialogDoc-xBL-rXeZ.js → OnboardingDialogDoc-3A3eBYrq.js} +2 -2
  106. package/dist/assets/{PaginationDoc-DqtRgXnF.js → PaginationDoc-B8-bMz5J.js} +2 -2
  107. package/dist/assets/{PaginationDoc-CfvwxCMe.js → PaginationDoc-BkGdxHL3.js} +5 -5
  108. package/dist/assets/{PlacesDoc-nckioEzg.js → PlacesDoc-CKPO6ATs.js} +2 -2
  109. package/dist/assets/{PopoverDoc-C3o2CZCT.js → PopoverDoc-CJPU4Ags.js} +3 -3
  110. package/dist/assets/{ProgressDoc-BmWBNMPA.js → ProgressDoc-CpjbTL4o.js} +2 -2
  111. package/dist/assets/{QualiexUserFieldDoc-CE1e4mx6.js → QualiexUserFieldDoc-DDwumlRw.js} +2 -2
  112. package/dist/assets/{RadioGroupDoc-DMZH6NmR.js → RadioGroupDoc-D6tSZz8G.js} +2 -2
  113. package/dist/assets/{RadiusDoc-BOZD3gPV.js → RadiusDoc-B4xSnajw.js} +1 -1
  114. package/dist/assets/ReportRequestListDoc-C0LIaU8P.js +15 -0
  115. package/dist/assets/{RequiredFieldsCounterDoc-CG-lmSSy.js → RequiredFieldsCounterDoc-COesoSdx.js} +2 -2
  116. package/dist/assets/ResizableDoc-CW0-XQuB.js +104 -0
  117. package/dist/assets/{RichTextEditorDoc-m50ll-Od.js → RichTextEditorDoc-C8c_XA9P.js} +2 -2
  118. package/dist/assets/{ScrollAreaDoc-BzJ-APXo.js → ScrollAreaDoc-BxtoAPaZ.js} +2 -2
  119. package/dist/assets/{SecurityDoc-B34gVeiV.js → SecurityDoc-wOVqpg2F.js} +2 -2
  120. package/dist/assets/{SelectDoc-DXRv7QHK.js → SelectDoc-C75gtY9D.js} +2 -2
  121. package/dist/assets/{SeparatorDoc-DcNh8k0P.js → SeparatorDoc-BjQBPB1P.js} +2 -2
  122. package/dist/assets/{ServicesDoc-8aXBd6yg.js → ServicesDoc-CXTctwBl.js} +3 -3
  123. package/dist/assets/ShadowsDoc-C6Lw8_x2.js +9 -0
  124. package/dist/assets/SignDoc-Bh5ZUg5x.js +66 -0
  125. package/dist/assets/{SkeletonDoc-BWgqgbDY.js → SkeletonDoc-rTLGK5VE.js} +8 -8
  126. package/dist/assets/SliderDoc-JMAMDub7.js +41 -0
  127. package/dist/assets/{SpacingDoc-BzburM-r.js → SpacingDoc-RljOrpwA.js} +1 -1
  128. package/dist/assets/{SplitButtonDoc-BYUysmJp.js → SplitButtonDoc-CvShUW3w.js} +3 -3
  129. package/dist/assets/{StepSelectorDoc-PB1k4v7F.js → StepSelectorDoc-C-nAap9H.js} +2 -2
  130. package/dist/assets/{SwitchDoc-BLOG6kfj.js → SwitchDoc-DLnqmkPr.js} +2 -2
  131. package/dist/assets/{TableDoc-Dwcs-lop.js → TableDoc-B8EpWLVg.js} +2 -2
  132. package/dist/assets/{TabsDoc-Ovkh8ArV.js → TabsDoc-DIBtl_uC.js} +2 -2
  133. package/dist/assets/TeamSelectorDoc-B7OnCbL7.js +10 -0
  134. package/dist/assets/TermsOfUseDoc-Bb-pw08s.js +16 -0
  135. package/dist/assets/{TextareaDoc-DsBYxmbr.js → TextareaDoc-DGnqMqEC.js} +4 -4
  136. package/dist/assets/{ToastDoc-BbZaFE_A.js → ToastDoc-DjYyc7ae.js} +4 -4
  137. package/dist/assets/{ToggleDoc-C28vbvhp.js → ToggleDoc-C9ZOVjkY.js} +2 -2
  138. package/dist/assets/{TooltipDoc-DL5cnLak.js → TooltipDoc-BEx4l9-i.js} +7 -7
  139. package/dist/assets/{TruncatedCellDoc-BuDA8QcY.js → TruncatedCellDoc-BbV1bRSY.js} +2 -2
  140. package/dist/assets/TypographyFoundationDoc-CUDYjRo9.js +7 -0
  141. package/dist/assets/UpdatesNotificationDoc-7nyjzLMJ.js +29 -0
  142. package/dist/assets/UsersGroupsSelectorDoc-C0KlTAL5.js +18 -0
  143. package/dist/assets/{UtilitiesDoc-CrQhyEfz.js → UtilitiesDoc-DGxaHVV1.js} +2 -2
  144. package/dist/assets/ViewerDialogsDoc-CnTPTEz0.js +1 -0
  145. package/dist/assets/{blocks-DO93nPjs.js → blocks-B6LrJeAM.js} +1 -1
  146. package/dist/assets/building-DeVappnD.js +1 -0
  147. package/dist/assets/{calendar-days-cMfwBSZx.js → calendar-days-BQ0na5kM.js} +1 -1
  148. package/dist/assets/check-check-C_-PJCJa.js +1 -0
  149. package/dist/assets/circle-plus-CpIcep-O.js +1 -0
  150. package/dist/assets/{circle-x-BVAVJ_oz.js → circle-x-jPpBPew0.js} +1 -1
  151. package/dist/assets/clipboard-list-CXNPdciZ.js +1 -0
  152. package/dist/assets/cloud-upload-BEjzumjl.js +1 -0
  153. package/dist/assets/{crown-B2MTZDnM.js → crown-CqNsQIsm.js} +1 -1
  154. package/dist/assets/date-picker-BW3eGOe_.js +1 -0
  155. package/dist/assets/disabled-menu-item-C2YaMvSt.js +1 -0
  156. package/dist/assets/{drawer-oTqCOtsC.js → drawer-D5rflIcD.js} +2 -2
  157. package/dist/assets/file-braces-DFb5X9so.js +1 -0
  158. package/dist/assets/{file-pen-line-CXv-Eye-.js → file-pen-line-CyUGKkEN.js} +1 -1
  159. package/dist/assets/{git-branch-V6-h6P9K.js → git-branch-BcXv9mpp.js} +1 -1
  160. package/dist/assets/{globe-CaUBIJU8.js → globe-CpMIWAcv.js} +1 -1
  161. package/dist/assets/{hash-B4MTXppl.js → hash-cQWdKjya.js} +1 -1
  162. package/dist/assets/hourglass-BahQ3eDv.js +1 -0
  163. package/dist/assets/hover-card-R66N85sZ.js +1 -0
  164. package/dist/assets/iframe-dialog-V0mW5aBb.js +1 -0
  165. package/dist/assets/index-DkiftrvI.js +352 -0
  166. package/dist/assets/index-nmBjO9Th.css +1 -0
  167. package/dist/assets/index.d.ts +1 -0
  168. package/dist/assets/{life-buoy-BRndExxh.js → life-buoy-ByXiPddz.js} +1 -1
  169. package/dist/assets/loading-state-Cb5_t5uE.js +1 -0
  170. package/dist/assets/lucide-react-Cp3Yw3Zm.js +1 -0
  171. package/dist/assets/{package-3G45ARQh.js → package-B3-pVvPM.js} +1 -1
  172. package/dist/assets/{pen-BYSSwjK4.js → pen-Bi_lmmKT.js} +1 -1
  173. package/dist/assets/pin-DVsSl8QA.js +1 -0
  174. package/dist/assets/printer-BnJ8B6m-.js +1 -0
  175. package/dist/assets/radio-group-BHAaNGsm.js +1 -0
  176. package/dist/assets/{server-p0Sb0mKI.js → server-CtzFTfKR.js} +1 -1
  177. package/dist/assets/{share-2-D-ZhCCq2.js → share-2-Dv8Do445.js} +1 -1
  178. package/dist/assets/shield-check-CFXjOV_w.js +1 -0
  179. package/dist/assets/{shield-x-Q7hAXWsG.js → shield-x-DJTRfVux.js} +1 -1
  180. package/dist/assets/slider-v9tXBSnB.js +1 -0
  181. package/dist/assets/smartphone-BSNR60L7.js +1 -0
  182. package/dist/assets/step-selector-ATTh_9Wa.js +1 -0
  183. package/dist/assets/{text-align-start-6aYQqbX4.js → text-align-start-qE-MbYYw.js} +1 -1
  184. package/dist/assets/thumbs-up-D_XIW_uX.js +1 -0
  185. package/dist/assets/{trash-DveAOiLF.js → trash-DTWQwpwA.js} +1 -1
  186. package/dist/assets/trending-up-jip5-leJ.js +1 -0
  187. package/dist/assets/{useMockCrud-GY0KxHXr.js → useMockCrud-CN4vjyOZ.js} +1 -1
  188. package/dist/assets/{user-check-CoGNBfIk.js → user-check-BlH3EDWK.js} +1 -1
  189. package/dist/assets/{user-plus-Bad2xWIT.js → user-plus-BqwXwD-c.js} +1 -1
  190. package/dist/audit-trail/components/AuditTrailDetails.d.ts +17 -0
  191. package/dist/audit-trail/components/AuditTrailFilter.d.ts +19 -0
  192. package/dist/audit-trail/components/AuditTrailPage.d.ts +30 -0
  193. package/dist/audit-trail/index.d.ts +9 -0
  194. package/dist/audit-trail/types.d.ts +151 -0
  195. package/dist/audit-trail/utils.d.ts +38 -0
  196. package/dist/components/dashboards/dashboard-form.d.ts +50 -0
  197. package/dist/components/dashboards/dashboard-general-view.d.ts +109 -0
  198. package/dist/components/dashboards/dashboard-grid.d.ts +41 -0
  199. package/dist/components/dashboards/dashboard-list.d.ts +31 -0
  200. package/dist/components/dashboards/dashboard-panel-renderer.d.ts +21 -0
  201. package/dist/components/dashboards/dashboard-view.d.ts +38 -0
  202. package/dist/components/dashboards/helpers.d.ts +47 -0
  203. package/dist/components/dashboards/index.d.ts +9 -0
  204. package/dist/components/dashboards/panels/burndown-panel.d.ts +26 -0
  205. package/dist/components/dashboards/panels/cartesian-panel.d.ts +46 -0
  206. package/dist/components/dashboards/panels/index.d.ts +14 -0
  207. package/dist/components/dashboards/panels/list-panel.d.ts +30 -0
  208. package/dist/components/dashboards/panels/matrix-risk-panel.d.ts +49 -0
  209. package/dist/components/dashboards/panels/numeric-panel.d.ts +22 -0
  210. package/dist/components/dashboards/panels/panel-error.d.ts +8 -0
  211. package/dist/components/dashboards/panels/panel-header.d.ts +17 -0
  212. package/dist/components/dashboards/panels/panel-loader.d.ts +7 -0
  213. package/dist/components/dashboards/panels/panel-no-data.d.ts +6 -0
  214. package/dist/components/dashboards/panels/panel-unavailable.d.ts +6 -0
  215. package/dist/components/dashboards/panels/pareto-panel.d.ts +20 -0
  216. package/dist/components/dashboards/panels/performance-panel.d.ts +24 -0
  217. package/dist/components/dashboards/panels/pie-panel.d.ts +19 -0
  218. package/dist/components/dashboards/panels/text-panel.d.ts +18 -0
  219. package/dist/components/dashboards/types.d.ts +525 -0
  220. package/dist/components/ui/button.d.ts +1 -1
  221. package/dist/components/ui/electronic-signature-dialog.d.ts +21 -0
  222. package/dist/components/ui/export-dialog.d.ts +28 -0
  223. package/dist/components/ui/iframe-dialog.d.ts +14 -0
  224. package/dist/components/ui/multiselect-permissions.d.ts +59 -0
  225. package/dist/components/ui/online-editor-dialog.d.ts +18 -0
  226. package/dist/components/ui/report-request-list.d.ts +44 -0
  227. package/dist/components/ui/resizable.d.ts +1 -1
  228. package/dist/components/ui/stimulsoft-viewer.d.ts +20 -0
  229. package/dist/components/ui/terms-of-use-dialog.d.ts +56 -0
  230. package/dist/components/ui/timepicker.d.ts +11 -0
  231. package/dist/components/ui/users-groups-selector.d.ts +44 -0
  232. package/dist/components/ui/viewer-dialog.d.ts +77 -0
  233. package/dist/custom-form-fields/components/CustomFormFields.d.ts +8 -0
  234. package/dist/custom-form-fields/fields/FormDateField.d.ts +6 -0
  235. package/dist/custom-form-fields/fields/FormMultiSelectionField.d.ts +6 -0
  236. package/dist/custom-form-fields/fields/FormNumericField.d.ts +6 -0
  237. package/dist/custom-form-fields/fields/FormQuestionsField.d.ts +6 -0
  238. package/dist/custom-form-fields/fields/FormSingleSelectionField.d.ts +6 -0
  239. package/dist/custom-form-fields/fields/FormTextField.d.ts +6 -0
  240. package/dist/custom-form-fields/fields/FormTimeField.d.ts +6 -0
  241. package/dist/custom-form-fields/fields/FormUrlField.d.ts +6 -0
  242. package/dist/custom-form-fields/fields/ReadOnlyTextField.d.ts +6 -0
  243. package/dist/custom-form-fields/index.d.ts +13 -0
  244. package/dist/custom-form-fields/types.d.ts +143 -0
  245. package/dist/exports/action-plans.d.ts +16 -0
  246. package/dist/exports/audit-trail.d.ts +1 -0
  247. package/dist/exports/custom-form-fields.d.ts +1 -0
  248. package/dist/exports/file-upload.d.ts +1 -0
  249. package/dist/exports/ui.d.ts +12 -0
  250. package/dist/file-upload/components/SingleFileUpload.d.ts +43 -0
  251. package/dist/file-upload/index.d.ts +6 -0
  252. package/dist/file-upload/types.d.ts +11 -0
  253. package/dist/file-upload/utils/formatBytes.d.ts +1 -0
  254. package/dist/file-upload/utils/getFileExtension.d.ts +1 -0
  255. package/dist/hooks/useSidebarResize.d.ts +1 -1
  256. package/dist/index.css +1 -1
  257. package/dist/index.css.map +1 -1
  258. package/dist/index.d.ts +7 -0
  259. package/dist/index.esm.js +1 -1
  260. package/dist/index.html +9 -11
  261. package/dist/index.js +1 -1
  262. package/dist/setup/favicon.d.ts +1 -0
  263. package/dist/team-selector/components/TeamSelector.d.ts +24 -0
  264. package/dist/team-selector/index.d.ts +2 -0
  265. package/dist/team-selector/types.d.ts +10 -0
  266. package/docs/ICON_MIGRATION_GUIDE.md +177 -0
  267. package/docs/PUBLISH.md +3 -3
  268. package/package.json +1 -5
  269. package/dist/README.md +0 -1079
  270. package/dist/assets/AccordionDoc-BVPUJk8G.js +0 -31
  271. package/dist/assets/AppHeaderDoc-Crkw4dA9.js +0 -67
  272. package/dist/assets/AppSidebarDoc-ET-4j6wV.js +0 -204
  273. package/dist/assets/AuthDoc-B4v4Nci5.js +0 -192
  274. package/dist/assets/BaseFormDoc-DXiYuN6-.js +0 -169
  275. package/dist/assets/ButtonGroupDoc-QFfjC7Pm.js +0 -7
  276. package/dist/assets/ChartDoc-BJ14EjI2.js +0 -111
  277. package/dist/assets/ColorPickerDoc-CcfmSwyC.js +0 -10
  278. package/dist/assets/ComboTreeDoc-R4qE6XwB.js +0 -46
  279. package/dist/assets/ComboboxDoc-JIo_-gSN.js +0 -134
  280. package/dist/assets/ComponentDocTemplate-CRbRY-v5.js +0 -1
  281. package/dist/assets/CrudGridDoc-DspxQrq5.js +0 -85
  282. package/dist/assets/CrudOverviewDoc-DLcOL_HZ.js +0 -14
  283. package/dist/assets/DataListDoc-BrgVNhhR.js +0 -13
  284. package/dist/assets/DesignSystemHome-BFBNqq1J.js +0 -1
  285. package/dist/assets/I18nDoc-B6LMXnE3.js +0 -232
  286. package/dist/assets/IconPickerDoc-BRdy58IC.js +0 -10
  287. package/dist/assets/LeadershipDoc-DRiB0spL.js +0 -416
  288. package/dist/assets/MenubarDoc-Zvgczxe2.js +0 -165
  289. package/dist/assets/NavigationMenuDoc-CeWun1VF.js +0 -116
  290. package/dist/assets/ResizableDoc-CqGkv6Cd.js +0 -104
  291. package/dist/assets/ShadowsDoc-Brl4hIDI.js +0 -9
  292. package/dist/assets/SignDoc-BdwerR-2.js +0 -66
  293. package/dist/assets/SliderDoc-E-NjbYVk.js +0 -41
  294. package/dist/assets/TypographyFoundationDoc-CPdH4PHa.js +0 -7
  295. package/dist/assets/circle-plus-D3NftMzS.js +0 -1
  296. package/dist/assets/date-picker-zhJU-_kM.js +0 -1
  297. package/dist/assets/disabled-menu-item-C16xsaVs.js +0 -1
  298. package/dist/assets/hover-card-DEuucfxP.js +0 -1
  299. package/dist/assets/index-CE0k7Rdh.js +0 -312
  300. package/dist/assets/index-Cx3adT_u.css +0 -1
  301. package/dist/assets/lucide-react-t7dCa4lv.js +0 -1
  302. package/dist/assets/monitor-Dg3HKTSE.js +0 -1
  303. package/dist/assets/pin-CMYagNhs.js +0 -1
  304. package/dist/assets/radio-group-BVun_Tmt.js +0 -1
  305. package/dist/assets/step-selector-DHxgT2FL.js +0 -1
  306. package/dist/bin/bootstrap.js +0 -40
  307. package/dist/bin/pull-docs.js +0 -186
  308. package/dist/docs/KNOWLEDGE.md +0 -109
  309. package/dist/leadership/components/LeaderRow.d.ts +0 -9
@@ -1,4 +1,4 @@
1
- import{j as e}from"./index-CE0k7Rdh.js";import{C as n}from"./ComponentDocTemplate-CRbRY-v5.js";const r=`import {
1
+ import{j as e}from"./index-DkiftrvI.js";import{C as n}from"./ComponentDocTemplate-CQbBhfvZ.js";import"./ExampleCard-DuLrb3t-.js";const r=`import {
2
2
  // Contexts e Hooks
3
3
  useLocale,
4
4
  useNavigation,
@@ -114,6 +114,30 @@ function UsersPage() {
114
114
  return <UserList />;
115
115
  }
116
116
 
117
+ // Subtitle com ReactNode (links, ícones, etc.)
118
+ function DetailPage() {
119
+ usePageMetadata({
120
+ title: 'Detalhes do Item',
121
+ subtitle: <span>Veja o <a href="/docs">guia</a></span>
122
+ });
123
+
124
+ return <Detail />;
125
+ }
126
+
127
+ // Breadcrumbs no header
128
+ function EditUserPage() {
129
+ usePageMetadata({
130
+ title: 'Editar Usuário',
131
+ subtitle: 'Atualize os dados do usuário',
132
+ breadcrumbs: [
133
+ { label: 'Usuários', href: '/users' },
134
+ { label: 'João Silva' }
135
+ ]
136
+ });
137
+
138
+ return <UserForm />;
139
+ }
140
+
117
141
  // Consumindo metadados no header
118
142
  function AppHeader() {
119
143
  const { metadata, headerActions } = usePageMetadataContext();
@@ -121,9 +145,12 @@ function AppHeader() {
121
145
  return (
122
146
  <header className="flex justify-between">
123
147
  <div>
148
+ {metadata?.breadcrumbs && (
149
+ <nav className="text-xs text-muted-foreground">...</nav>
150
+ )}
124
151
  <h1>{metadata?.title}</h1>
125
152
  {metadata?.subtitle && (
126
- <p className="text-muted-foreground">{metadata.subtitle}</p>
153
+ <div className="text-muted-foreground">{metadata.subtitle}</div>
127
154
  )}
128
155
  </div>
129
156
  <div>{headerActions}</div>
@@ -181,4 +208,4 @@ function SimpleModal() {
181
208
  const handleClose = () => setHasOpenModal(false);
182
209
 
183
210
  return <Dialog onOpenChange={(open) => setHasOpenModal(open)}>...</Dialog>;
184
- }`,m=[{name:"useLocale()",type:"LocaleContextType",default:"-",description:"Retorna locale, timezone, datetimeFormat, funções setters e isLoading."},{name:"LocaleProvider",type:"React.FC<{ children }>",default:"-",description:"Provider que gerencia preferências de locale do usuário com persistência no banco."},{name:"useNavigation()",type:"{ navigation, appName }",default:"-",description:"Retorna configuração de navegação e nome da aplicação."},{name:"NavigationProvider",type:"React.FC<{ config, children }>",default:"-",description:"Provider que fornece configuração de sidebar/navegação para toda a aplicação."},{name:"usePageMetadata(options)",type:"void",default:"-",description:"Define title e subtitle da página atual. Limpa automaticamente no unmount."},{name:"usePageMetadataContext()",type:"{ metadata, headerActions, setMetadata, clearMetadata }",default:"-",description:"Acessa metadados da página atual para uso em headers."},{name:"PageMetadataProvider",type:"React.FC<{ defaultHeaderActions, children }>",default:"-",description:"Provider que gerencia metadados de página e ações do header."},{name:"useModalState()",type:"ModalStateContextValue",default:"-",description:"Retorna openModals, hasOpenModal, registerModal, unregisterModal, setHasOpenModal."},{name:"useHasOpenModal()",type:"boolean",default:"-",description:"Hook simplificado que retorna apenas se há modal aberto."},{name:"ModalStateProvider",type:"React.FC<{ children }>",default:"-",description:"Provider que rastreia modais abertos globalmente."}];function a({title:t,description:o,code:i}){return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold",children:t}),e.jsx("p",{className:"text-sm text-muted-foreground",children:o})]}),e.jsx("pre",{className:"rounded-lg border bg-muted/50 p-4 overflow-x-auto",children:e.jsx("code",{className:"text-sm font-mono",children:i})})]})}function g(){const t=[{id:"exemplos",label:"Exemplos"},{id:"localecontext",label:"LocaleContext"},{id:"navigationcontext",label:"NavigationContext"},{id:"pagemetadatacontext",label:"PageMetadataContext"},{id:"modalstatecontext",label:"ModalStateContext"}];return e.jsx(n,{title:"Contexts",description:"Contexts globais da biblioteca forlogic-core para gerenciamento de estado da aplicação. Incluem LocaleContext para i18n, NavigationContext para navegação, PageMetadataContext para metadados de página e ModalStateContext para rastreamento de modais.",usage:r,props:m,tocItems:t,notes:["LocaleContext fornece locale fixo em pt-BR (preferências do usuário serão implementadas futuramente via API externa).","NavigationContext é memoizado para evitar re-renders durante navegação.","PageMetadataContext limpa automaticamente os metadados quando a página é desmontada.","ModalStateContext permite uso opcional - retorna fallback silencioso se não houver provider.","useHasOpenModal é útil para desabilitar ações de sidebar quando há modais abertos.","Todos os contexts devem ser configurados via CoreProviders no root da aplicação."],children:e.jsxs("div",{id:"exemplos",className:"space-y-8 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold tracking-tight border-b pb-2",children:"Exemplos"}),e.jsx("div",{id:"localecontext",className:"scroll-mt-4",children:e.jsx(a,{title:"LocaleContext",description:"Gerencia preferências de locale, timezone e formato de data/hora do usuário. Persiste automaticamente no banco de dados.",code:s})}),e.jsx("div",{id:"navigationcontext",className:"scroll-mt-4",children:e.jsx(a,{title:"NavigationContext",description:"Fornece configuração de navegação e nome da aplicação. Usado pelo AppSidebar e hooks como usePageTitle.",code:d})}),e.jsx("div",{id:"pagemetadatacontext",className:"scroll-mt-4",children:e.jsx(a,{title:"PageMetadataContext",description:"Permite que páginas definam título e subtítulo que serão exibidos no AppHeader. Suporta ações customizadas no header.",code:l})}),e.jsx("div",{id:"modalstatecontext",className:"scroll-mt-4",children:e.jsx(a,{title:"ModalStateContext",description:"Rastreia modais abertos globalmente. Permite que componentes como SidebarActionTrigger se desabilitem quando há modais abertos.",code:c})})]})})}export{g as ContextsDoc};
211
+ }`,m=[{name:"useLocale()",type:"LocaleContextType",default:"-",description:"Retorna locale, timezone, datetimeFormat, funções setters e isLoading."},{name:"LocaleProvider",type:"React.FC<{ children }>",default:"-",description:"Provider que gerencia preferências de locale do usuário com persistência no banco."},{name:"useNavigation()",type:"{ navigation, appName }",default:"-",description:"Retorna configuração de navegação e nome da aplicação."},{name:"NavigationProvider",type:"React.FC<{ config, children }>",default:"-",description:"Provider que fornece configuração de sidebar/navegação para toda a aplicação."},{name:"usePageMetadata(options)",type:"void",default:"-",description:"Define title (string), subtitle (ReactNode) e breadcrumbs (PageBreadcrumbItem[]) da página atual. Limpa automaticamente no unmount."},{name:"usePageMetadataContext()",type:"{ metadata, headerActions, setMetadata, clearMetadata }",default:"-",description:"Acessa metadados da página atual para uso em headers."},{name:"PageMetadataProvider",type:"React.FC<{ defaultHeaderActions, children }>",default:"-",description:"Provider que gerencia metadados de página e ações do header."},{name:"useModalState()",type:"ModalStateContextValue",default:"-",description:"Retorna openModals, hasOpenModal, registerModal, unregisterModal, setHasOpenModal."},{name:"useHasOpenModal()",type:"boolean",default:"-",description:"Hook simplificado que retorna apenas se há modal aberto."},{name:"ModalStateProvider",type:"React.FC<{ children }>",default:"-",description:"Provider que rastreia modais abertos globalmente."}];function a({title:t,description:o,code:i}){return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold",children:t}),e.jsx("p",{className:"text-sm text-muted-foreground",children:o})]}),e.jsx("pre",{className:"rounded-lg border bg-muted/50 p-4 overflow-x-auto",children:e.jsx("code",{className:"text-sm font-mono",children:i})})]})}function v(){const t=[{id:"exemplos",label:"Exemplos"},{id:"localecontext",label:"LocaleContext"},{id:"navigationcontext",label:"NavigationContext"},{id:"pagemetadatacontext",label:"PageMetadataContext"},{id:"modalstatecontext",label:"ModalStateContext"}];return e.jsx(n,{title:"Contexts",description:"Contexts globais da biblioteca forlogic-core para gerenciamento de estado da aplicação. Incluem LocaleContext para i18n, NavigationContext para navegação, PageMetadataContext para metadados de página e ModalStateContext para rastreamento de modais.",usage:r,props:m,tocItems:t,notes:["LocaleContext fornece locale fixo em pt-BR (preferências do usuário serão implementadas futuramente via API externa).","NavigationContext é memoizado para evitar re-renders durante navegação.","PageMetadataContext limpa automaticamente os metadados quando a página é desmontada.","ModalStateContext permite uso opcional - retorna fallback silencioso se não houver provider.","useHasOpenModal é útil para desabilitar ações de sidebar quando há modais abertos.","Todos os contexts devem ser configurados via CoreProviders no root da aplicação."],children:e.jsxs("div",{id:"exemplos",className:"space-y-8 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold tracking-tight border-b pb-2",children:"Exemplos"}),e.jsx("div",{id:"localecontext",className:"scroll-mt-4",children:e.jsx(a,{title:"LocaleContext",description:"Gerencia preferências de locale, timezone e formato de data/hora do usuário. Persiste automaticamente no banco de dados.",code:s})}),e.jsx("div",{id:"navigationcontext",className:"scroll-mt-4",children:e.jsx(a,{title:"NavigationContext",description:"Fornece configuração de navegação e nome da aplicação. Usado pelo AppSidebar e hooks como usePageTitle.",code:d})}),e.jsx("div",{id:"pagemetadatacontext",className:"scroll-mt-4",children:e.jsx(a,{title:"PageMetadataContext",description:"Permite que páginas definam título e subtítulo que serão exibidos no AppHeader. Suporta ações customizadas no header.",code:l})}),e.jsx("div",{id:"modalstatecontext",className:"scroll-mt-4",children:e.jsx(a,{title:"ModalStateContext",description:"Rastreia modais abertos globalmente. Permite que componentes como SidebarActionTrigger se desabilitem quando há modais abertos.",code:c})})]})})}export{v as ContextsDoc};
@@ -1,4 +1,4 @@
1
- import{j as e,C as m,a as x,b as h,d as u,b9 as a,aq as l,cl as i,cm as d,cn as r,t as T,bc as o,co as c,h as t,aD as z,dg as j,E as p,r as f,f as v,P as k,c0 as R,I as B,ar as E,at as F,au as y,av as g,aw as q,ax as N,B as I,n as _,o as H,A as U,p as L,q as b,s as V,bW as O,T as M,d_ as W,d$ as G,e1 as Q,e2 as $,e3 as J,e5 as K}from"./index-CE0k7Rdh.js";import{C as X}from"./ComponentDocTemplate-CRbRY-v5.js";const Y=[{id:"1",title:"Reunião de planejamento",category:"Trabalho",is_actived:!0},{id:"2",title:"Lista de compras",category:"Pessoal",is_actived:!0},{id:"3",title:"Ideias para o projeto",category:"Trabalho",is_actived:!1},{id:"4",title:"Anotações da aula",category:"Estudos",is_actived:!0},{id:"5",title:"Receita de bolo",category:"Pessoal",is_actived:!0}];function Z(){const[C,P]=f.useState(""),[A,n]=f.useState(!1),[D,S]=f.useState(1),w=Y.filter(s=>s.title.toLowerCase().includes(C.toLowerCase()));return e.jsxs("div",{className:"border rounded-lg overflow-hidden bg-background",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4 p-4 border-b",children:[e.jsxs(v,{size:"sm",onClick:()=>n(!0),children:[e.jsx(k,{className:"h-4 w-4 mr-2"}),"Nova Nota"]}),e.jsx("div",{className:"flex-1 max-w-xs",children:e.jsxs("div",{className:"relative",children:[e.jsx(R,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(B,{placeholder:"Buscar notas...",value:C,onChange:s=>P(s.target.value),className:"pl-9 h-9"})]})})]}),e.jsxs(E,{children:[e.jsx(F,{children:e.jsxs(y,{children:[e.jsx(g,{children:"Título"}),e.jsx(g,{children:"Categoria"}),e.jsx(g,{children:"Status"}),e.jsx(g,{className:"w-16",children:"Ações"})]})}),e.jsx(q,{children:w.map(s=>e.jsxs(y,{children:[e.jsx(N,{className:"font-medium",children:s.title}),e.jsx(N,{children:s.category}),e.jsx(N,{children:e.jsx(I,{variant:s.is_actived?"default":"secondary",children:s.is_actived?"Ativo":"Inativo"})}),e.jsx(N,{children:e.jsxs(_,{children:[e.jsx(H,{asChild:!0,children:e.jsx(U,{})}),e.jsxs(L,{align:"end",children:[e.jsxs(b,{children:[e.jsx(V,{className:"h-4 w-4 mr-2"}),"Editar"]}),e.jsxs(b,{children:[e.jsx(O,{className:"h-4 w-4 mr-2"}),"Desativar"]}),e.jsxs(b,{className:"text-destructive",children:[e.jsx(M,{className:"h-4 w-4 mr-2"}),"Excluir"]})]})]})})]},s.id))})]}),e.jsx("div",{className:"border-t",children:e.jsx(W,{currentPage:D,totalPages:1,totalItems:w.length,itemsPerPage:10,onPageChange:S,onItemsPerPageChange:()=>{},variant:"full"})}),e.jsx(G,{open:A,onOpenChange:n,children:e.jsxs(Q,{children:[e.jsx($,{children:e.jsx(J,{children:"Nova Nota"})}),e.jsx("div",{className:"py-4 text-center text-muted-foreground",children:"Formulário gerado automaticamente pelo BaseForm"}),e.jsxs(K,{children:[e.jsx(v,{variant:"outline",onClick:()=>n(!1),children:"Cancelar"}),e.jsx(v,{onClick:()=>n(!1),children:"Salvar"})]})]})})]})}const ee=`// 1. Defina o serviço
1
+ import{j as e,a as m,b as x,c as h,d as u,dw as a,w as l,a5 as i,a6 as d,a7 as r,aX as S,dy as o,aa as c,aQ as t,a4 as T,ff as j,aU as p,r as f,x as v,P as k,d7 as R,K as B,T as E,i as F,k as y,l as N,p as I,q as g,B as q,ak as H,al as U,aV as _,an as L,ao as b,aW as V,ef as O,y as M,z as G,E as Q,G as W,H as X,I as K,X as $}from"./index-DkiftrvI.js";import{C as J}from"./ComponentDocTemplate-CQbBhfvZ.js";import"./ExampleCard-DuLrb3t-.js";const Y=[{id:"1",title:"Reunião de planejamento",category:"Trabalho",is_actived:!0},{id:"2",title:"Lista de compras",category:"Pessoal",is_actived:!0},{id:"3",title:"Ideias para o projeto",category:"Trabalho",is_actived:!1},{id:"4",title:"Anotações da aula",category:"Estudos",is_actived:!0},{id:"5",title:"Receita de bolo",category:"Pessoal",is_actived:!0}];function Z(){const[C,P]=f.useState(""),[A,n]=f.useState(!1),[D,z]=f.useState(1),w=Y.filter(s=>s.title.toLowerCase().includes(C.toLowerCase()));return e.jsxs("div",{className:"border rounded-lg overflow-hidden bg-background",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4 p-4 border-b",children:[e.jsxs(v,{size:"sm",onClick:()=>n(!0),children:[e.jsx(k,{className:"h-4 w-4 mr-2"}),"Nova Nota"]}),e.jsx("div",{className:"flex-1 max-w-xs",children:e.jsxs("div",{className:"relative",children:[e.jsx(R,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(B,{placeholder:"Buscar notas...",value:C,onChange:s=>P(s.target.value),className:"pl-9 h-9"})]})})]}),e.jsxs(E,{children:[e.jsx(F,{children:e.jsxs(y,{children:[e.jsx(N,{children:"Título"}),e.jsx(N,{children:"Categoria"}),e.jsx(N,{children:"Status"}),e.jsx(N,{className:"w-16",children:"Ações"})]})}),e.jsx(I,{children:w.map(s=>e.jsxs(y,{children:[e.jsx(g,{className:"font-medium",children:s.title}),e.jsx(g,{children:s.category}),e.jsx(g,{children:e.jsx(q,{variant:s.is_actived?"default":"secondary",children:s.is_actived?"Ativo":"Inativo"})}),e.jsx(g,{children:e.jsxs(H,{children:[e.jsx(U,{asChild:!0,children:e.jsx(_,{})}),e.jsxs(L,{align:"end",children:[e.jsxs(b,{children:[e.jsx(V,{className:"h-4 w-4 mr-2"}),"Editar"]}),e.jsxs(b,{children:[e.jsx(O,{className:"h-4 w-4 mr-2"}),"Desativar"]}),e.jsxs(b,{className:"text-destructive",children:[e.jsx(M,{className:"h-4 w-4 mr-2"}),"Excluir"]})]})]})})]},s.id))})]}),e.jsx("div",{className:"border-t",children:e.jsx(G,{currentPage:D,totalPages:1,totalItems:w.length,itemsPerPage:10,onPageChange:z,onItemsPerPageChange:()=>{},variant:"full"})}),e.jsx(Q,{open:A,onOpenChange:n,children:e.jsxs(W,{children:[e.jsx(X,{children:e.jsx(K,{children:"Nova Nota"})}),e.jsx("div",{className:"py-4 text-center text-muted-foreground",children:"Formulário gerado automaticamente pelo BaseForm"}),e.jsxs($,{children:[e.jsx(v,{variant:"outline",onClick:()=>n(!1),children:"Cancelar"}),e.jsx(v,{onClick:()=>n(!1),children:"Salvar"})]})]})})]})}const ee=`// 1. Defina o serviço
2
2
  const notesService = createSimpleService<Note>({
3
3
  tableName: 'notes',
4
4
  schema: 'common',
@@ -103,4 +103,4 @@ columns: [
103
103
  </div>
104
104
  )
105
105
  },
106
- ]`;function ie(){return e.jsxs(X,{title:"createCrudPage",description:"Factory de alto nível que gera uma página CRUD completa com ~15 linhas de configuração declarativa.",tocItems:[{id:"geracao-automatica",label:"Geração Automática"},{id:"uso-basico",label:"Uso Básico"},{id:"com-filtros",label:"Com Filtros"},{id:"com-acoes",label:"Com Ações Customizadas"},{id:"com-wizard",label:"Com Wizard"},{id:"render-customizado",label:"Render Customizado"},{id:"referencia-props",label:"Referência de Props"},{id:"quando-usar",label:"Quando Usar"},{id:"docs-detalhadas",label:"Documentação Detalhada"}],children:[e.jsxs(m,{id:"geracao-automatica",className:"scroll-mt-4",children:[e.jsx(x,{children:e.jsx(h,{children:"O que o createCrudPage gera automaticamente?"})}),e.jsx(u,{children:e.jsxs("ul",{className:"grid grid-cols-1 md:grid-cols-2 gap-2 text-sm",children:[e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Tabela com paginação e ordenação"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Formulário modal para criar/editar"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Barra de busca integrada"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Filtros customizáveis"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Ações de editar/excluir/toggle"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Dropdown de ações em lote"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Estados de loading/empty"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Integração automática com service"]})]})})]}),e.jsx(l,{}),e.jsxs("section",{id:"uso-basico",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Uso Básico"}),e.jsxs(i,{defaultValue:"preview",className:"w-full",children:[e.jsxs(d,{className:"mb-4",children:[e.jsxs(r,{value:"preview",className:"gap-2",children:[e.jsx(T,{size:16}),"Preview"]}),e.jsxs(r,{value:"code",className:"gap-2",children:[e.jsx(o,{size:16}),"Código"]})]}),e.jsxs(c,{value:"preview",className:"mt-0",children:[e.jsx(Z,{}),e.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"Este é um preview interativo do que o createCrudPage gera automaticamente."})]}),e.jsx(c,{value:"code",className:"mt-0",children:e.jsx("pre",{className:"bg-muted p-4 rounded-lg overflow-x-auto text-xs",children:e.jsx("code",{children:ee})})})]})]}),e.jsx(l,{}),e.jsxs("section",{id:"com-filtros",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Com Filtros"}),e.jsxs(i,{defaultValue:"code",className:"w-full",children:[e.jsx(d,{className:"mb-4",children:e.jsxs(r,{value:"code",className:"gap-2",children:[e.jsx(o,{size:16}),"Código"]})}),e.jsx(c,{value:"code",className:"mt-0",children:e.jsx("pre",{className:"bg-muted p-4 rounded-lg overflow-x-auto text-xs",children:e.jsx("code",{children:se})})})]})]}),e.jsx(l,{}),e.jsxs("section",{id:"com-acoes",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Com Ações Customizadas"}),e.jsxs(i,{defaultValue:"code",className:"w-full",children:[e.jsx(d,{className:"mb-4",children:e.jsxs(r,{value:"code",className:"gap-2",children:[e.jsx(o,{size:16}),"Código"]})}),e.jsx(c,{value:"code",className:"mt-0",children:e.jsx("pre",{className:"bg-muted p-4 rounded-lg overflow-x-auto text-xs",children:e.jsx("code",{children:ae})})})]})]}),e.jsx(l,{}),e.jsxs("section",{id:"com-wizard",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Com Wizard ou Roteamento Customizado"}),e.jsxs(i,{defaultValue:"code",className:"w-full",children:[e.jsx(d,{className:"mb-4",children:e.jsxs(r,{value:"code",className:"gap-2",children:[e.jsx(o,{size:16}),"Código"]})}),e.jsx(c,{value:"code",className:"mt-0",children:e.jsx("pre",{className:"bg-muted p-4 rounded-lg overflow-x-auto text-xs",children:e.jsx("code",{children:le})})})]})]}),e.jsx(l,{}),e.jsxs("section",{id:"render-customizado",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Render Customizado de Colunas"}),e.jsxs(i,{defaultValue:"code",className:"w-full",children:[e.jsx(d,{className:"mb-4",children:e.jsxs(r,{value:"code",className:"gap-2",children:[e.jsx(o,{size:16}),"Código"]})}),e.jsx(c,{value:"code",className:"mt-0",children:e.jsx("pre",{className:"bg-muted p-4 rounded-lg overflow-x-auto text-xs",children:e.jsx("code",{children:te})})})]})]}),e.jsx(l,{}),e.jsxs("section",{id:"referencia-props",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Referência de Props"}),e.jsxs(m,{children:[e.jsx(x,{children:e.jsx(h,{children:"SimpleCrudPageConfig"})}),e.jsx(u,{children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b",children:[e.jsx("th",{className:"text-left p-2 font-medium",children:"Prop"}),e.jsx("th",{className:"text-left p-2 font-medium",children:"Tipo"}),e.jsx("th",{className:"text-left p-2 font-medium",children:"Descrição"})]})}),e.jsxs("tbody",{className:"divide-y",children:[e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"entityName"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"string"}),e.jsx("td",{className:"p-2",children:'Nome singular (ex: "Nota")'})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"entityNamePlural"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"string"}),e.jsx("td",{className:"p-2",children:'Nome plural (ex: "Notas")'})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"service"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"SimpleService"}),e.jsx("td",{className:"p-2",children:"Serviço criado com createSimpleService"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"columns"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"CrudColumn[]"}),e.jsx("td",{className:"p-2",children:"Definição das colunas da tabela"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"formSections"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"FormSection[]"}),e.jsx("td",{className:"p-2",children:"Seções do formulário"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"filters"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"CrudFilter[]"}),e.jsx("td",{className:"p-2",children:"Filtros customizados"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"defaultSort"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"{column, direction}"}),e.jsx("td",{className:"p-2",children:"Ordenação inicial"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"enableBulkActions"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"p-2",children:"Habilita seleção múltipla e dropdown de ações"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"bulkActions"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"BulkAction[]"}),e.jsx("td",{className:"p-2",children:"Ações em massa no dropdown"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"customActions"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"Action[]"}),e.jsx("td",{className:"p-2",children:"Ações na toolbar"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"customRowActions"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"(item) => Action[]"}),e.jsx("td",{className:"p-2",children:"Ações por linha"})]}),e.jsxs("tr",{className:"bg-muted/50",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"onNew"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"() => void"}),e.jsx("td",{className:"p-2",children:'Handler customizado para "Novo"'})]}),e.jsxs("tr",{className:"bg-muted/50",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"hideNewButton"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"p-2",children:'Esconde o botão "Novo"'})]}),e.jsxs("tr",{className:"bg-muted/50",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"useCustomRouting"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"p-2",children:"Desabilita BaseForm padrão"})]})]})]})})})]})]}),e.jsx(l,{}),e.jsxs("section",{id:"quando-usar",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Quando usar?"}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs(m,{className:"border-green-500/20 bg-green-500/5",children:[e.jsx(x,{children:e.jsxs(h,{className:"text-green-600 flex items-center gap-2",children:[e.jsx(a,{className:"h-5 w-5"}),"Use createCrudPage quando:"]})}),e.jsx(u,{children:e.jsxs("ul",{className:"space-y-2 text-sm",children:[e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Precisa de um CRUD padrão rapidamente"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Layout tabela + formulário atende"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Quer consistência com outros CRUDs"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Produtividade é prioridade"]})]})})]}),e.jsxs(m,{className:"border-orange-500/20 bg-orange-500/5",children:[e.jsx(x,{children:e.jsxs(h,{className:"text-orange-600 flex items-center gap-2",children:[e.jsx(z,{className:"h-5 w-5"}),"Use CrudTable/CrudGrid quando:"]})}),e.jsx(u,{children:e.jsxs("ul",{className:"space-y-2 text-sm",children:[e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Precisa de layout muito customizado"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Múltiplas tabelas na mesma página"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Lógica de negócio complexa"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Controle total sobre a UI"]})]})})]})]})]}),e.jsx(l,{}),e.jsxs("section",{id:"docs-detalhadas",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Documentação Detalhada"}),e.jsx("p",{className:"text-muted-foreground",children:"Para customizações avançadas e composição manual, consulte:"}),e.jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[e.jsxs(j,{to:"/ds/crud-table",className:"flex items-center gap-2 p-4 border rounded-lg hover:bg-muted transition-colors",children:[e.jsx(p,{className:"h-4 w-4"}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:"CrudTable"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"Composição manual com controle total"})]})]}),e.jsxs(j,{to:"/ds/crud-baseform",className:"flex items-center gap-2 p-4 border rounded-lg hover:bg-muted transition-colors",children:[e.jsx(p,{className:"h-4 w-4"}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:"BaseForm"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"Tipos de campo e grupos"})]})]}),e.jsxs(j,{to:"/ds/crud-pagination",className:"flex items-center gap-2 p-4 border rounded-lg hover:bg-muted transition-colors",children:[e.jsx(p,{className:"h-4 w-4"}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:"CrudPagination"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"Controles de paginação"})]})]}),e.jsxs(j,{to:"/ds/crud",className:"flex items-center gap-2 p-4 border rounded-lg hover:bg-muted transition-colors",children:[e.jsx(p,{className:"h-4 w-4"}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:"Visão Geral do CRUD"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"Arquitetura e níveis de abstração"})]})]})]})]})]})}export{ie as CreateCrudPageDoc};
106
+ ]`;function de(){return e.jsxs(J,{title:"createCrudPage",description:"Factory de alto nível que gera uma página CRUD completa com ~15 linhas de configuração declarativa.",tocItems:[{id:"geracao-automatica",label:"Geração Automática"},{id:"uso-basico",label:"Uso Básico"},{id:"com-filtros",label:"Com Filtros"},{id:"com-acoes",label:"Com Ações Customizadas"},{id:"com-wizard",label:"Com Wizard"},{id:"render-customizado",label:"Render Customizado"},{id:"referencia-props",label:"Referência de Props"},{id:"quando-usar",label:"Quando Usar"},{id:"docs-detalhadas",label:"Documentação Detalhada"}],children:[e.jsxs(m,{id:"geracao-automatica",className:"scroll-mt-4",children:[e.jsx(x,{children:e.jsx(h,{children:"O que o createCrudPage gera automaticamente?"})}),e.jsx(u,{children:e.jsxs("ul",{className:"grid grid-cols-1 md:grid-cols-2 gap-2 text-sm",children:[e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Tabela com paginação e ordenação"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Formulário modal para criar/editar"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Barra de busca integrada"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Filtros customizáveis"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Ações de editar/excluir/toggle"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Dropdown de ações em lote"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Estados de loading/empty"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(a,{className:"h-4 w-4 text-green-500"}),"Integração automática com service"]})]})})]}),e.jsx(l,{}),e.jsxs("section",{id:"uso-basico",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Uso Básico"}),e.jsxs(i,{defaultValue:"preview",className:"w-full",children:[e.jsxs(d,{className:"mb-4",children:[e.jsxs(r,{value:"preview",className:"gap-2",children:[e.jsx(S,{size:16}),"Preview"]}),e.jsxs(r,{value:"code",className:"gap-2",children:[e.jsx(o,{size:16}),"Código"]})]}),e.jsxs(c,{value:"preview",className:"mt-0",children:[e.jsx(Z,{}),e.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"Este é um preview interativo do que o createCrudPage gera automaticamente."})]}),e.jsx(c,{value:"code",className:"mt-0",children:e.jsx("pre",{className:"bg-muted p-4 rounded-lg overflow-x-auto text-xs",children:e.jsx("code",{children:ee})})})]})]}),e.jsx(l,{}),e.jsxs("section",{id:"com-filtros",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Com Filtros"}),e.jsxs(i,{defaultValue:"code",className:"w-full",children:[e.jsx(d,{className:"mb-4",children:e.jsxs(r,{value:"code",className:"gap-2",children:[e.jsx(o,{size:16}),"Código"]})}),e.jsx(c,{value:"code",className:"mt-0",children:e.jsx("pre",{className:"bg-muted p-4 rounded-lg overflow-x-auto text-xs",children:e.jsx("code",{children:se})})})]})]}),e.jsx(l,{}),e.jsxs("section",{id:"com-acoes",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Com Ações Customizadas"}),e.jsxs(i,{defaultValue:"code",className:"w-full",children:[e.jsx(d,{className:"mb-4",children:e.jsxs(r,{value:"code",className:"gap-2",children:[e.jsx(o,{size:16}),"Código"]})}),e.jsx(c,{value:"code",className:"mt-0",children:e.jsx("pre",{className:"bg-muted p-4 rounded-lg overflow-x-auto text-xs",children:e.jsx("code",{children:ae})})})]})]}),e.jsx(l,{}),e.jsxs("section",{id:"com-wizard",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Com Wizard ou Roteamento Customizado"}),e.jsxs(i,{defaultValue:"code",className:"w-full",children:[e.jsx(d,{className:"mb-4",children:e.jsxs(r,{value:"code",className:"gap-2",children:[e.jsx(o,{size:16}),"Código"]})}),e.jsx(c,{value:"code",className:"mt-0",children:e.jsx("pre",{className:"bg-muted p-4 rounded-lg overflow-x-auto text-xs",children:e.jsx("code",{children:le})})})]})]}),e.jsx(l,{}),e.jsxs("section",{id:"render-customizado",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Render Customizado de Colunas"}),e.jsxs(i,{defaultValue:"code",className:"w-full",children:[e.jsx(d,{className:"mb-4",children:e.jsxs(r,{value:"code",className:"gap-2",children:[e.jsx(o,{size:16}),"Código"]})}),e.jsx(c,{value:"code",className:"mt-0",children:e.jsx("pre",{className:"bg-muted p-4 rounded-lg overflow-x-auto text-xs",children:e.jsx("code",{children:te})})})]})]}),e.jsx(l,{}),e.jsxs("section",{id:"referencia-props",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Referência de Props"}),e.jsxs(m,{children:[e.jsx(x,{children:e.jsx(h,{children:"SimpleCrudPageConfig"})}),e.jsx(u,{children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b",children:[e.jsx("th",{className:"text-left p-2 font-medium",children:"Prop"}),e.jsx("th",{className:"text-left p-2 font-medium",children:"Tipo"}),e.jsx("th",{className:"text-left p-2 font-medium",children:"Descrição"})]})}),e.jsxs("tbody",{className:"divide-y",children:[e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"entityName"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"string"}),e.jsx("td",{className:"p-2",children:'Nome singular (ex: "Nota")'})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"entityNamePlural"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"string"}),e.jsx("td",{className:"p-2",children:'Nome plural (ex: "Notas")'})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"service"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"SimpleService"}),e.jsx("td",{className:"p-2",children:"Serviço criado com createSimpleService"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"columns"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"CrudColumn[]"}),e.jsx("td",{className:"p-2",children:"Definição das colunas da tabela"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"formSections"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"FormSection[]"}),e.jsx("td",{className:"p-2",children:"Seções do formulário"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"filters"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"CrudFilter[]"}),e.jsx("td",{className:"p-2",children:"Filtros customizados"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"defaultSort"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"{column, direction}"}),e.jsx("td",{className:"p-2",children:"Ordenação inicial"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"enableBulkActions"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"p-2",children:"Habilita seleção múltipla e dropdown de ações"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"bulkActions"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"BulkAction[]"}),e.jsx("td",{className:"p-2",children:"Ações em massa no dropdown"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"customActions"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"Action[]"}),e.jsx("td",{className:"p-2",children:"Ações na toolbar"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"customRowActions"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"(item) => Action[]"}),e.jsx("td",{className:"p-2",children:"Ações por linha"})]}),e.jsxs("tr",{className:"bg-muted/50",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"onNew"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"() => void"}),e.jsx("td",{className:"p-2",children:'Handler customizado para "Novo"'})]}),e.jsxs("tr",{className:"bg-muted/50",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"hideNewButton"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"p-2",children:'Esconde o botão "Novo"'})]}),e.jsxs("tr",{className:"bg-muted/50",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"useCustomRouting"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"p-2",children:"Desabilita BaseForm padrão"})]})]})]})})})]})]}),e.jsx(l,{}),e.jsxs("section",{id:"quando-usar",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Quando usar?"}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs(m,{className:"border-green-500/20 bg-green-500/5",children:[e.jsx(x,{children:e.jsxs(h,{className:"text-green-600 flex items-center gap-2",children:[e.jsx(a,{className:"h-5 w-5"}),"Use createCrudPage quando:"]})}),e.jsx(u,{children:e.jsxs("ul",{className:"space-y-2 text-sm",children:[e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Precisa de um CRUD padrão rapidamente"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Layout tabela + formulário atende"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Quer consistência com outros CRUDs"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Produtividade é prioridade"]})]})})]}),e.jsxs(m,{className:"border-orange-500/20 bg-orange-500/5",children:[e.jsx(x,{children:e.jsxs(h,{className:"text-orange-600 flex items-center gap-2",children:[e.jsx(T,{className:"h-5 w-5"}),"Use CrudTable/CrudGrid quando:"]})}),e.jsx(u,{children:e.jsxs("ul",{className:"space-y-2 text-sm",children:[e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Precisa de layout muito customizado"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Múltiplas tabelas na mesma página"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Lógica de negócio complexa"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-4 w-4"}),"Controle total sobre a UI"]})]})})]})]})]}),e.jsx(l,{}),e.jsxs("section",{id:"docs-detalhadas",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Documentação Detalhada"}),e.jsx("p",{className:"text-muted-foreground",children:"Para customizações avançadas e composição manual, consulte:"}),e.jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[e.jsxs(j,{to:"/ds/crud-table",className:"flex items-center gap-2 p-4 border rounded-lg hover:bg-muted transition-colors",children:[e.jsx(p,{className:"h-4 w-4"}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:"CrudTable"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"Composição manual com controle total"})]})]}),e.jsxs(j,{to:"/ds/crud-baseform",className:"flex items-center gap-2 p-4 border rounded-lg hover:bg-muted transition-colors",children:[e.jsx(p,{className:"h-4 w-4"}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:"BaseForm"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"Tipos de campo e grupos"})]})]}),e.jsxs(j,{to:"/ds/crud-pagination",className:"flex items-center gap-2 p-4 border rounded-lg hover:bg-muted transition-colors",children:[e.jsx(p,{className:"h-4 w-4"}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:"CrudPagination"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"Controles de paginação"})]})]}),e.jsxs(j,{to:"/ds/crud",className:"flex items-center gap-2 p-4 border rounded-lg hover:bg-muted transition-colors",children:[e.jsx(p,{className:"h-4 w-4"}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:"Visão Geral do CRUD"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"Arquitetura e níveis de abstração"})]})]})]})]})]})}export{de as CreateCrudPageDoc};
@@ -1,4 +1,4 @@
1
- import{r as s,j as e,B as o,C as r,a as l,b as n,d,ey as a,d4 as c,d5 as i,d6 as x,d7 as u,d8 as t,cl as E,cm as V,cn as m,co as h}from"./index-CE0k7Rdh.js";import{C as k,E as p}from"./ComponentDocTemplate-CRbRY-v5.js";const I=[{id:"visao-geral",label:"Visão Geral"},{id:"layout-3-zonas",label:"Layout de 3 Zonas"},{id:"exemplos",label:"Exemplos"},{id:"propriedades",label:"Propriedades"}],P=`import { CrudActionBar } from 'forlogic-core';
1
+ import{r as s,j as e,B as o,a as r,b as l,c as n,d,gq as a,N as c,O as i,Q as x,R as u,V as t,a5 as V,a6 as E,a7 as m,aa as h}from"./index-DkiftrvI.js";import{E as p}from"./ExampleCard-DuLrb3t-.js";import{C as k}from"./ComponentDocTemplate-CQbBhfvZ.js";const I=[{id:"visao-geral",label:"Visão Geral"},{id:"layout-3-zonas",label:"Layout de 3 Zonas"},{id:"exemplos",label:"Exemplos"},{id:"propriedades",label:"Propriedades"}],P=`import { CrudActionBar } from 'forlogic-core';
2
2
 
3
3
  function MyPage() {
4
4
  const [search, setSearch] = useState('');
@@ -72,10 +72,10 @@ function MyPage() {
72
72
  <CrudTable
73
73
  showActionBar={false}
74
74
  // ... outras props
75
- />`;function R(){const[C,w]=s.useState(""),[j,b]=s.useState(""),[g,y]=s.useState("all"),[f,S]=s.useState("all"),[N,B]=s.useState(3),[v,A]=s.useState("list");return e.jsxs(k,{title:"CrudActionBar",description:"Barra de ações unificada usada por todos os componentes CRUD (CrudTable, CrudGrid, createCrudPage) para garantir UX consistente.",tocItems:I,children:[e.jsxs("div",{className:"flex items-center gap-2 -mt-6",children:[e.jsx(o,{variant:"secondary",children:"CRUD"}),e.jsx(o,{variant:"outline",children:"Componente Compartilhado"})]}),e.jsxs(r,{id:"layout-3-zonas",className:"scroll-mt-4",children:[e.jsx(l,{children:e.jsx(n,{children:"Layout de 3 Zonas"})}),e.jsxs(d,{className:"space-y-4",children:[e.jsx("p",{className:"text-muted-foreground",children:"O CrudActionBar implementa um layout rígido de 3 zonas para garantir consistência visual em todos os CRUDs:"}),e.jsx("div",{className:"border rounded-lg p-4 bg-muted/30 font-mono text-sm",children:e.jsx("pre",{className:"overflow-x-auto",children:`┌─────────────────────────────────────────────────────────────────┐
75
+ />`;function F(){const[C,w]=s.useState(""),[j,b]=s.useState(""),[g,y]=s.useState("all"),[f,S]=s.useState("all"),[N,B]=s.useState(3),[v,A]=s.useState("list");return e.jsxs(k,{title:"CrudActionBar",description:"Barra de ações unificada usada por todos os componentes CRUD (CrudTable, CrudGrid, createCrudPage) para garantir UX consistente.",tocItems:I,children:[e.jsxs("div",{className:"flex items-center gap-2 -mt-6",children:[e.jsx(o,{variant:"secondary",children:"CRUD"}),e.jsx(o,{variant:"outline",children:"Componente Compartilhado"})]}),e.jsxs(r,{id:"layout-3-zonas",className:"scroll-mt-4",children:[e.jsx(l,{children:e.jsx(n,{children:"Layout de 3 Zonas"})}),e.jsxs(d,{className:"space-y-4",children:[e.jsx("p",{className:"text-muted-foreground",children:"O CrudActionBar implementa um layout rígido de 3 zonas para garantir consistência visual em todos os CRUDs:"}),e.jsx("div",{className:"border rounded-lg p-4 bg-muted/30 font-mono text-sm",children:e.jsx("pre",{className:"overflow-x-auto",children:`┌─────────────────────────────────────────────────────────────────┐
76
76
  │ [+ Novo] [Ações em lote ▼] │ 🔍 Buscar... │ [Filtros] [👁] │
77
77
  │ ESQUERDA │ CENTRO │ DIREITA │
78
- └─────────────────────────────────────────────────────────────────┘`})}),e.jsxs("div",{className:"grid gap-3 text-sm",children:[e.jsxs("div",{className:"flex gap-3",children:[e.jsx(o,{variant:"outline",className:"shrink-0",children:"Esquerda"}),e.jsx("span",{className:"text-muted-foreground",children:'Botão "Novo" + Dropdown de Ações em Lote (com badge de contagem)'})]}),e.jsxs("div",{className:"flex gap-3",children:[e.jsx(o,{variant:"outline",className:"shrink-0",children:"Centro"}),e.jsx("span",{className:"text-muted-foreground",children:"Campo de busca centralizado com placeholder customizável"})]}),e.jsxs("div",{className:"flex gap-3",children:[e.jsx(o,{variant:"outline",className:"shrink-0",children:"Direita"}),e.jsx("span",{className:"text-muted-foreground",children:"Filtros customizados + Toggle de visualização (list/grid/table)"})]})]})]})]}),e.jsxs("div",{id:"exemplos",className:"space-y-6 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-bold",children:"Exemplos"}),e.jsx(p,{title:"Uso Básico",code:P,preview:e.jsx(a,{onNew:()=>console.log("Novo"),showSearch:!0,searchValue:C,onSearchChange:w,searchPlaceholder:"Buscar..."})}),e.jsx(p,{title:"Exemplo Completo",code:D,preview:e.jsxs(e.Fragment,{children:[e.jsx(a,{onNew:()=>console.log("Novo"),newButtonLabel:"Novo Treinamento",showNewButton:!0,showSearch:!0,searchValue:j,onSearchChange:b,searchPlaceholder:"Buscar treinamentos...",showBulkActions:!0,selectedCount:N,bulkActions:[{label:"Exportar",action:()=>console.log("Exportar")},{label:"Arquivar",action:()=>console.log("Arquivar")},{label:"Enviar E-mail",action:()=>console.log("E-mail")}],onClearSelection:()=>B(0),filters:e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(c,{value:g,onValueChange:y,children:[e.jsx(i,{className:"w-[120px] h-9",children:e.jsx(x,{placeholder:"Status"})}),e.jsxs(u,{children:[e.jsx(t,{value:"all",children:"Todos"}),e.jsx(t,{value:"active",children:"Ativo"}),e.jsx(t,{value:"inactive",children:"Inativo"})]})]}),e.jsxs(c,{value:f,onValueChange:S,children:[e.jsx(i,{className:"w-[130px] h-9",children:e.jsx(x,{placeholder:"Categoria"})}),e.jsxs(u,{children:[e.jsx(t,{value:"all",children:"Todas"}),e.jsx(t,{value:"a",children:"Categoria A"}),e.jsx(t,{value:"b",children:"Categoria B"})]})]})]}),viewMode:v,onViewModeChange:T=>A(T),showViewToggle:!0}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-3 pt-3 border-t",children:["Selecionados: ",N,' | Busca: "',j,'" | Status: ',g," | Categoria: ",f," | View: ",v]})]})}),e.jsx(p,{title:"Ocultando Elementos",code:z,preview:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:"Sem botão Novo:"}),e.jsx(a,{showNewButton:!1,showSearch:!0,searchValue:"",onSearchChange:()=>{}})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:"Sem busca:"}),e.jsx(a,{onNew:()=>{},showSearch:!1})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:"Apenas filtros:"}),e.jsx(a,{showNewButton:!1,showSearch:!1,filters:e.jsxs(c,{value:"all",onValueChange:()=>{},children:[e.jsx(i,{className:"w-[140px] h-9",children:e.jsx(x,{placeholder:"Status"})}),e.jsx(u,{children:e.jsx(t,{value:"all",children:"Todos"})})]})})]})]})})]}),e.jsxs(r,{id:"propriedades",className:"scroll-mt-4",children:[e.jsx(l,{children:e.jsx(n,{children:"Propriedades"})}),e.jsx(d,{children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b",children:[e.jsx("th",{className:"text-left py-2 pr-4 font-medium",children:"Prop"}),e.jsx("th",{className:"text-left py-2 pr-4 font-medium",children:"Tipo"}),e.jsx("th",{className:"text-left py-2 pr-4 font-medium",children:"Default"}),e.jsx("th",{className:"text-left py-2 font-medium",children:"Descrição"})]})}),e.jsxs("tbody",{className:"divide-y",children:[e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"onNew"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"() => void"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"-"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Callback ao clicar no botão Novo"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"newButtonLabel"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"string"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:'"Novo"'}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Texto do botão de criação"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"showNewButton"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"true"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Exibir botão Novo"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"showSearch"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"true"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Exibir campo de busca"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"searchValue"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"string"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:'""'}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Valor do campo de busca"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"onSearchChange"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"(value: string) => void"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"-"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Callback ao alterar busca"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"searchPlaceholder"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"string"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:'"Buscar..."'}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Placeholder do campo de busca"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"enableBulkActions"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"false"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Habilitar dropdown de ações em lote"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"selectedCount"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"number"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"0"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Quantidade de itens selecionados"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"bulkActions"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"BulkAction[]"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"[]"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Lista de ações em lote"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"onClearSelection"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"() => void"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"-"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Limpar seleção"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"filters"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"React.ReactNode"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"-"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Filtros customizados (zona direita)"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"viewMode"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"'list' | 'grid' | 'table'"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"-"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Modo de visualização atual"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"onViewModeChange"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"(mode) => void"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"-"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Callback ao trocar modo de visualização"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"showViewToggle"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"false"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Exibir toggle de visualização"})]})]})]})})})]}),e.jsxs(r,{children:[e.jsx(l,{children:e.jsx(n,{children:"Uso nos Componentes CRUD"})}),e.jsxs(d,{className:"space-y-4",children:[e.jsx("p",{className:"text-muted-foreground",children:"O CrudActionBar é usado internamente por todos os componentes CRUD de alto nível. Você pode configurá-lo através das props padrão:"}),e.jsxs(E,{defaultValue:"createCrudPage",className:"w-full",children:[e.jsxs(V,{children:[e.jsx(m,{value:"createCrudPage",children:"createCrudPage"}),e.jsx(m,{value:"CrudTable",children:"CrudTable"}),e.jsx(m,{value:"CrudGrid",children:"CrudGrid"})]}),e.jsx(h,{value:"createCrudPage",className:"mt-4",children:e.jsx("pre",{className:"bg-muted p-4 rounded-lg text-sm overflow-x-auto",children:`createCrudPage({
78
+ └─────────────────────────────────────────────────────────────────┘`})}),e.jsxs("div",{className:"grid gap-3 text-sm",children:[e.jsxs("div",{className:"flex gap-3",children:[e.jsx(o,{variant:"outline",className:"shrink-0",children:"Esquerda"}),e.jsx("span",{className:"text-muted-foreground",children:'Botão "Novo" + Dropdown de Ações em Lote (com badge de contagem)'})]}),e.jsxs("div",{className:"flex gap-3",children:[e.jsx(o,{variant:"outline",className:"shrink-0",children:"Centro"}),e.jsx("span",{className:"text-muted-foreground",children:"Campo de busca centralizado com placeholder customizável"})]}),e.jsxs("div",{className:"flex gap-3",children:[e.jsx(o,{variant:"outline",className:"shrink-0",children:"Direita"}),e.jsx("span",{className:"text-muted-foreground",children:"Filtros customizados + Toggle de visualização (list/grid/table)"})]})]})]})]}),e.jsxs("div",{id:"exemplos",className:"space-y-6 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-bold",children:"Exemplos"}),e.jsx(p,{title:"Uso Básico",code:P,preview:e.jsx(a,{onNew:()=>console.log("Novo"),showSearch:!0,searchValue:C,onSearchChange:w,searchPlaceholder:"Buscar..."})}),e.jsx(p,{title:"Exemplo Completo",code:D,preview:e.jsxs(e.Fragment,{children:[e.jsx(a,{onNew:()=>console.log("Novo"),newButtonLabel:"Novo Treinamento",showNewButton:!0,showSearch:!0,searchValue:j,onSearchChange:b,searchPlaceholder:"Buscar treinamentos...",showBulkActions:!0,selectedCount:N,bulkActions:[{label:"Exportar",action:()=>console.log("Exportar")},{label:"Arquivar",action:()=>console.log("Arquivar")},{label:"Enviar E-mail",action:()=>console.log("E-mail")}],onClearSelection:()=>B(0),filters:e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(c,{value:g,onValueChange:y,children:[e.jsx(i,{className:"w-[120px] h-9",children:e.jsx(x,{placeholder:"Status"})}),e.jsxs(u,{children:[e.jsx(t,{value:"all",children:"Todos"}),e.jsx(t,{value:"active",children:"Ativo"}),e.jsx(t,{value:"inactive",children:"Inativo"})]})]}),e.jsxs(c,{value:f,onValueChange:S,children:[e.jsx(i,{className:"w-[130px] h-9",children:e.jsx(x,{placeholder:"Categoria"})}),e.jsxs(u,{children:[e.jsx(t,{value:"all",children:"Todas"}),e.jsx(t,{value:"a",children:"Categoria A"}),e.jsx(t,{value:"b",children:"Categoria B"})]})]})]}),viewMode:v,onViewModeChange:T=>A(T),showViewToggle:!0}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-3 pt-3 border-t",children:["Selecionados: ",N,' | Busca: "',j,'" | Status: ',g," | Categoria: ",f," | View: ",v]})]})}),e.jsx(p,{title:"Ocultando Elementos",code:z,preview:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:"Sem botão Novo:"}),e.jsx(a,{showNewButton:!1,showSearch:!0,searchValue:"",onSearchChange:()=>{}})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:"Sem busca:"}),e.jsx(a,{onNew:()=>{},showSearch:!1})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-2",children:"Apenas filtros:"}),e.jsx(a,{showNewButton:!1,showSearch:!1,filters:e.jsxs(c,{value:"all",onValueChange:()=>{},children:[e.jsx(i,{className:"w-[140px] h-9",children:e.jsx(x,{placeholder:"Status"})}),e.jsx(u,{children:e.jsx(t,{value:"all",children:"Todos"})})]})})]})]})})]}),e.jsxs(r,{id:"propriedades",className:"scroll-mt-4",children:[e.jsx(l,{children:e.jsx(n,{children:"Propriedades"})}),e.jsx(d,{children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b",children:[e.jsx("th",{className:"text-left py-2 pr-4 font-medium",children:"Prop"}),e.jsx("th",{className:"text-left py-2 pr-4 font-medium",children:"Tipo"}),e.jsx("th",{className:"text-left py-2 pr-4 font-medium",children:"Default"}),e.jsx("th",{className:"text-left py-2 font-medium",children:"Descrição"})]})}),e.jsxs("tbody",{className:"divide-y",children:[e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"onNew"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"() => void"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"-"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Callback ao clicar no botão Novo"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"newButtonLabel"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"string"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:'"Novo"'}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Texto do botão de criação"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"showNewButton"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"true"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Exibir botão Novo"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"showSearch"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"true"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Exibir campo de busca"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"searchValue"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"string"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:'""'}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Valor do campo de busca"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"onSearchChange"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"(value: string) => void"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"-"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Callback ao alterar busca"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"searchPlaceholder"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"string"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:'"Buscar..."'}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Placeholder do campo de busca"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"enableBulkActions"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"false"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Habilitar dropdown de ações em lote"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"selectedCount"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"number"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"0"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Quantidade de itens selecionados"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"bulkActions"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"BulkAction[]"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"[]"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Lista de ações em lote"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"onClearSelection"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"() => void"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"-"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Limpar seleção"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"filters"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"React.ReactNode"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"-"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Filtros customizados (zona direita)"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"viewMode"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"'list' | 'grid' | 'table'"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"-"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Modo de visualização atual"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"onViewModeChange"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"(mode) => void"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"-"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Callback ao trocar modo de visualização"})]}),e.jsxs("tr",{children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:"showViewToggle"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"py-2 pr-4 font-mono text-xs text-muted-foreground",children:"false"}),e.jsx("td",{className:"py-2 text-muted-foreground",children:"Exibir toggle de visualização"})]})]})]})})})]}),e.jsxs(r,{children:[e.jsx(l,{children:e.jsx(n,{children:"Uso nos Componentes CRUD"})}),e.jsxs(d,{className:"space-y-4",children:[e.jsx("p",{className:"text-muted-foreground",children:"O CrudActionBar é usado internamente por todos os componentes CRUD de alto nível. Você pode configurá-lo através das props padrão:"}),e.jsxs(V,{defaultValue:"createCrudPage",className:"w-full",children:[e.jsxs(E,{children:[e.jsx(m,{value:"createCrudPage",children:"createCrudPage"}),e.jsx(m,{value:"CrudTable",children:"CrudTable"}),e.jsx(m,{value:"CrudGrid",children:"CrudGrid"})]}),e.jsx(h,{value:"createCrudPage",className:"mt-4",children:e.jsx("pre",{className:"bg-muted p-4 rounded-lg text-sm overflow-x-auto",children:`createCrudPage({
79
79
  // ... outras configs
80
80
  showNewButton: true,
81
81
  newButtonLabel: 'Novo Treinamento',
@@ -109,4 +109,4 @@ function MyPage() {
109
109
  showViewToggle={true}
110
110
  viewMode="grid"
111
111
  onViewModeChange={setViewMode}
112
- />`})})]})]})]})]})}export{R as CrudActionBarDoc};
112
+ />`})})]})]})]})]})}export{F as CrudActionBarDoc};
@@ -0,0 +1,85 @@
1
+ import{gf as Ce,r as o,j as e,gq as be,eD as ye,a2 as we,fh as ke,fi as Se,a as g,d as v,gt as le,o as T,gu as te,fj as Me,gv as Ie,a5 as Pe,a6 as Ee,a7 as de,aa as ie,b as se,c as ae,x as b,P as Te,d7 as De,K as O,b3 as Re,b4 as ne,a9 as ze,dY as ce,N as D,O as R,Q as z,R as A,V as d,ak as Ae,al as Fe,an as Ve,ao as H,aJ as Be,Y as j,U as Ge,y as oe,Z as Le,_ as $e,$ as Ue,B as W,a0 as qe,a1 as Oe,gs as He,E as me,G as xe,H as ue,I as he,J as F,X as je}from"./index-DkiftrvI.js";import{D as pe}from"./disabled-menu-item-C2YaMvSt.js";import{u as We,c as _e}from"./useMockCrud-CN4vjyOZ.js";import{C as Qe}from"./ComponentDocTemplate-CQbBhfvZ.js";import{P as ge}from"./pen-Bi_lmmKT.js";import"./ExampleCard-DuLrb3t-.js";const Je=({manager:r,columns:N,onEdit:t,onView:f,onToggleStatus:c,onDelete:m,renderActions:p,customRowActions:C,enableBulkActions:x=!1,onNew:V,newButtonLabel:_,showNewButton:i=!0,customActions:w=[],hideActionBar:B,showActionBar:Q=!0,showSearch:u=!1,searchValue:S,onSearchChange:G,searchPlaceholder:J,bulkActions:k=[],onBulkDelete:M,filters:I,gridColumns:n=3,renderCard:h,viewMode:X,onViewModeChange:Y,listCardRenderer:L,gridCardRenderer:$,showViewToggle:U=!1})=>{const{setSearchVisible:P}=Ce(),K=B!==void 0?!B:Q;o.useEffect(()=>{if(!u)return P(!0),()=>P(!1)},[P,u]);const Z=V||w.length>0||u||x||I||U,q=K&&Z,s=M||(()=>{r.bulkDelete?.(r.selectedIds)}),E=X||"grid",y=E==="list",ve={1:"grid-cols-1",2:"grid-cols-1 md:grid-cols-2",3:"grid-cols-1 md:grid-cols-2 lg:grid-cols-3",4:"grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"}[y?1:n],Ne=a=>y&&L?L(a):!y&&$?$(a):h?h(a):null,ee=q?e.jsx(be,{onNew:V,newButtonLabel:_,showNewButton:i,showSearch:u,searchValue:S,onSearchChange:G,searchPlaceholder:J,showBulkActions:x,selectedCount:r.selectedIds.length,bulkActions:k,onBulkDelete:s,onClearSelection:r.clearSelection,customActions:w,filters:I,viewMode:E,onViewModeChange:Y,showViewToggle:U,availableViewModes:["list","grid"]}):null;return r.isLoading?e.jsxs("div",{className:"flex flex-col h-full",children:[ee,e.jsx("div",{className:"flex-1 overflow-auto p-4",children:e.jsx(ye,{count:6})})]}):r.entities.length===0?e.jsxs("div",{className:"flex flex-col h-full",children:[ee,e.jsx("div",{className:"flex-1 flex items-center justify-center",children:e.jsx(we,{title:"Nenhum item encontrado",description:"Não há dados para exibir no momento.",variant:"search"})})]}):e.jsxs("div",{className:"flex flex-col h-full",children:[ee,e.jsx("div",{className:"flex-1 overflow-auto p-4",children:e.jsx("div",{className:T("grid gap-4",ve),children:r.entities.map(a=>{const re=Ne(a);return e.jsxs(ke,{children:[e.jsx(Se,{asChild:!0,children:re?e.jsx("div",{className:"cursor-pointer",onClick:l=>{l.stopPropagation(),x?r.selectItem(a.id):t?.(a)},children:re}):e.jsx(g,{className:T("overflow-hidden cursor-pointer hover:bg-muted/50 transition-colors",x&&r.selectedIds.includes(a.id)&&"bg-muted ring-2 ring-primary",y&&"flex-row"),onClick:l=>{l.stopPropagation(),x?r.selectItem(a.id):t?.(a)},children:e.jsxs(v,{className:T("p-4",y&&"flex items-center gap-4 w-full"),children:[x&&e.jsx("div",{className:T(y?"":"pt-0.5"),onClick:l=>l.stopPropagation(),children:e.jsx(le,{checked:r.selectedIds.includes(a.id),onCheckedChange:()=>r.selectItem(a.id)})}),y?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex-1 flex items-center gap-6 min-w-0",children:N.map(l=>e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsxs("span",{className:"text-sm font-medium text-muted-foreground shrink-0",children:[l.header,":"]}),e.jsx("div",{className:"text-sm text-foreground truncate",children:l.render?l.render(a):String(a[l.key]??"")})]},String(l.key)))}),(t||f||p)&&e.jsx("div",{onClick:l=>l.stopPropagation(),children:p?p(a):e.jsx(te,{onEdit:t?()=>t(a):void 0,onDelete:m?()=>m(a):void 0,onToggleStatus:c?()=>c(a):void 0,isActive:a.is_actived,customActions:C?C(a):[]})})]}):e.jsxs("div",{className:"flex items-start gap-3",children:[x&&e.jsx("div",{className:"pt-0.5",onClick:l=>l.stopPropagation(),children:e.jsx(le,{checked:r.selectedIds.includes(a.id),onCheckedChange:()=>r.selectItem(a.id)})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[N.map((l,fe)=>e.jsxs("div",{className:T("flex justify-between items-start gap-2",fe!==N.length-1&&"mb-2"),children:[e.jsxs("span",{className:"text-sm font-medium text-muted-foreground shrink-0",children:[l.header,":"]}),e.jsx("div",{className:"text-sm text-foreground text-right truncate",children:l.render?l.render(a):String(a[l.key]??"")})]},String(l.key))),(t||f||p)&&e.jsx("div",{className:"mt-3 pt-3 border-t flex justify-end",onClick:l=>l.stopPropagation(),children:p?p(a):e.jsx(te,{onEdit:t?()=>t(a):void 0,onDelete:m?()=>m(a):void 0,onToggleStatus:c?()=>c(a):void 0,isActive:a.is_actived,customActions:C?C(a):[]})})]})]})]})})}),e.jsx(Me,{className:"w-[160px]",children:e.jsx(Ie,{onEdit:t?()=>t(a):void 0,onDelete:m?()=>m(a):void 0,onToggleStatus:c?()=>c(a):void 0,isActive:a.is_actived,canDelete:!!m,customActions:C?C(a):[],renderAs:"context"})})]},a.id)})})})]})},Xe=Array.from({length:50},(r,N)=>{const t=N+1,f=["Eletrônicos","Móveis","Vestuário","Alimentos"],c=f[t%f.length],m=t%5===0?"Inativo":"Ativo";return _e({id:String(t),name:`Produto ${String(t).padStart(3,"0")}`,category:c,price:Math.floor(Math.random()*1e3)+50,stock:Math.floor(Math.random()*100),status:m})}),Ye=[{key:"name",header:"Nome",sortable:!0,minWidth:150},{key:"category",header:"Categoria",sortable:!0,minWidth:120},{key:"price",header:"Preço",sortable:!0,minWidth:100,render:r=>`R$ ${r.price.toFixed(2)}`},{key:"stock",header:"Estoque",sortable:!0,minWidth:80},{key:"status",header:"Status",sortable:!0,minWidth:80,render:r=>e.jsx(W,{variant:r.status==="Ativo"?"default":"secondary",children:r.status})}];function Ke(){const[r,N]=o.useState(""),[t,f]=o.useState(""),[c,m]=o.useState(""),[p,C]=o.useState(3),[x,V]=o.useState("grid"),_=o.useCallback(s=>{if(r&&s.category!==r||t&&s.status!==t)return!1;if(c){const E=c.toLowerCase();return s.name.toLowerCase().includes(E)||s.category.toLowerCase().includes(E)}return!0},[r,t,c]),i=We(Xe,{searchFields:["name","category"],pageSize:9,filterFn:_}),w=[r,t].filter(Boolean).length,B=()=>{N(""),f("")},[Q,u]=o.useState(!1),[S,G]=o.useState(null),[J,k]=o.useState(!1),[M,I]=o.useState(null),[n,h]=o.useState({name:"",category:"",price:0,stock:0,status:"Ativo"}),X=()=>{G(null),h({name:"",category:"",price:0,stock:0,status:"Ativo"}),u(!0)},Y=s=>{G(s),h({name:s.name,category:s.category,price:s.price,stock:s.stock,status:s.status}),u(!0)},L=s=>e.jsx(g,{className:"hover:bg-muted/50 transition-colors",children:e.jsx(v,{className:"p-4 flex items-center justify-between gap-4",children:e.jsxs("div",{className:"flex items-center gap-6 flex-1 min-w-0",children:[e.jsx("div",{className:"font-medium truncate min-w-[120px]",children:s.name}),e.jsx("div",{className:"text-sm text-muted-foreground",children:s.category}),e.jsxs("div",{className:"text-sm font-medium",children:["R$ ",s.price.toFixed(2)]}),e.jsxs("div",{className:"text-sm text-muted-foreground",children:["Estoque: ",s.stock]}),e.jsx(W,{variant:s.status==="Ativo"?"default":"secondary",children:s.status})]})})}),$=s=>e.jsx(g,{className:"hover:bg-muted/50 transition-colors h-full",children:e.jsxs(v,{className:"p-4 space-y-3",children:[e.jsxs("div",{className:"flex justify-between items-start",children:[e.jsx("h3",{className:"font-semibold truncate",children:s.name}),e.jsx(W,{variant:s.status==="Ativo"?"default":"secondary",className:"shrink-0 ml-2",children:s.status})]}),e.jsx("div",{className:"text-sm text-muted-foreground",children:s.category}),e.jsxs("div",{className:"flex justify-between items-center pt-2 border-t",children:[e.jsxs("span",{className:"text-lg font-bold",children:["R$ ",s.price.toFixed(2)]}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["Estoque: ",s.stock]})]})]})}),U=async()=>{if(!n.name){j.error("Nome é obrigatório");return}S?(await i.updateEntity(S.id,n),j.success("Produto atualizado!")):(await i.createEntity(n),j.success("Produto criado!")),u(!1)},P=async s=>{await i.updateEntity(s.id,{status:s.status==="Ativo"?"Inativo":"Ativo"}),j.success("Status alterado!")},K=s=>{I(s),k(!0)},Z=()=>{M&&(i.deleteEntity(M.id),j.success("Produto excluído!")),k(!1),I(null)},q=s=>{if(i.selectedIds.length<2){j.info("Selecione dois ou mais itens");return}s==="edit"?j.info(`Editando ${i.selectedIds.length} itens em massa...`):(i.bulkDelete(i.selectedIds),j.success(`${i.selectedIds.length} itens excluídos!`))};return e.jsxs("div",{className:"border rounded-lg overflow-hidden bg-background",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4 p-4 border-b",children:[e.jsxs(b,{className:"shrink-0",onClick:X,children:[e.jsx(Te,{className:"h-4 w-4 mr-2"}),"Adicionar produto"]}),e.jsx("div",{className:"flex-1 max-w-md",children:e.jsxs("div",{className:"relative",children:[e.jsx(De,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(O,{placeholder:"Buscar produtos...",value:c,onChange:s=>m(s.target.value),className:"pl-9"})]})}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs(Re,{type:"single",value:x,onValueChange:s=>s&&V(s),size:"sm",children:[e.jsx(ne,{value:"list","aria-label":"Visualização em lista",children:e.jsx(ze,{className:"h-4 w-4"})}),e.jsx(ne,{value:"grid","aria-label":"Visualização em grade",children:e.jsx(ce,{className:"h-4 w-4"})})]}),x==="grid"&&e.jsxs(D,{value:String(p),onValueChange:s=>C(Number(s)),children:[e.jsxs(R,{className:"w-[100px]",children:[e.jsx(ce,{className:"h-4 w-4 mr-2"}),e.jsx(z,{})]}),e.jsxs(A,{children:[e.jsx(d,{value:"1",children:"1 col"}),e.jsx(d,{value:"2",children:"2 cols"}),e.jsx(d,{value:"3",children:"3 cols"}),e.jsx(d,{value:"4",children:"4 cols"})]})]}),e.jsxs(Ae,{children:[e.jsx(Fe,{asChild:!0,children:e.jsx(b,{variant:"outline",className:"shrink-0",children:"Ações"})}),e.jsxs(Ve,{children:[e.jsxs(H,{onClick:()=>j.info("Exportando..."),children:[e.jsx(Be,{className:"h-4 w-4 mr-2"}),"Exportar"]}),e.jsxs(H,{onClick:()=>j.info("Importando..."),children:[e.jsx(Ge,{className:"h-4 w-4 mr-2"}),"Importar"]}),i.selectedIds.length<2?e.jsxs(pe,{disabledReason:"Selecione ao menos 2 itens",children:[e.jsx(ge,{className:"h-4 w-4 mr-2"}),"Edição em massa"]}):e.jsxs(H,{onClick:()=>q("edit"),children:[e.jsx(ge,{className:"h-4 w-4 mr-2"}),"Edição em massa"]}),i.selectedIds.length<2?e.jsxs(pe,{disabledReason:"Selecione ao menos 2 itens",className:"text-destructive",children:[e.jsx(oe,{className:"h-4 w-4 mr-2"}),"Exclusão em massa"]}):e.jsxs(H,{onClick:()=>q("delete"),className:"text-destructive",children:[e.jsx(oe,{className:"h-4 w-4 mr-2"}),"Exclusão em massa"]})]})]}),e.jsxs(Le,{children:[e.jsx($e,{asChild:!0,children:e.jsxs(b,{variant:"outline",className:"shrink-0",children:[e.jsx(Ue,{className:"h-4 w-4 mr-2"}),"Filtrar",w>0&&e.jsx(W,{variant:"secondary",className:"ml-2 h-5 w-5 p-0 flex items-center justify-center",children:w})]})}),e.jsx(qe,{className:"w-80",align:"end",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h4",{className:"font-medium",children:"Filtros"}),w>0&&e.jsxs(b,{variant:"ghost",size:"sm",onClick:B,className:"h-8 px-2 text-muted-foreground",children:[e.jsx(Oe,{className:"h-4 w-4 mr-1"}),"Limpar"]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium",children:"Categoria"}),e.jsxs(D,{value:r||"all",onValueChange:s=>N(s==="all"?"":s),children:[e.jsx(R,{children:e.jsx(z,{placeholder:"Todas"})}),e.jsxs(A,{children:[e.jsx(d,{value:"all",children:"Todas"}),e.jsx(d,{value:"Eletrônicos",children:"Eletrônicos"}),e.jsx(d,{value:"Móveis",children:"Móveis"}),e.jsx(d,{value:"Vestuário",children:"Vestuário"}),e.jsx(d,{value:"Alimentos",children:"Alimentos"})]})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"text-sm font-medium",children:"Status"}),e.jsxs(D,{value:t||"all",onValueChange:s=>f(s==="all"?"":s),children:[e.jsx(R,{children:e.jsx(z,{placeholder:"Todos"})}),e.jsxs(A,{children:[e.jsx(d,{value:"all",children:"Todos"}),e.jsx(d,{value:"Ativo",children:"Ativo"}),e.jsx(d,{value:"Inativo",children:"Inativo"})]})]})]})]})]})})]})]})]}),e.jsx(Je,{manager:i,columns:Ye,onEdit:Y,onToggleStatus:P,onDelete:K,enableBulkActions:!0,hideActionBar:!0,gridColumns:p,viewMode:x,listCardRenderer:L,gridCardRenderer:$}),e.jsx("div",{className:"border-t p-2",children:e.jsx(He,{manager:i})}),e.jsx(me,{open:Q,onOpenChange:u,children:e.jsxs(xe,{children:[e.jsx(ue,{children:e.jsx(he,{children:S?"Editar Produto":"Novo Produto"})}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(F,{htmlFor:"name",children:"Nome"}),e.jsx(O,{id:"name",value:n.name,onChange:s=>h({...n,name:s.target.value}),placeholder:"Nome do produto"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(F,{htmlFor:"category",children:"Categoria"}),e.jsxs(D,{value:n.category,onValueChange:s=>h({...n,category:s}),children:[e.jsx(R,{children:e.jsx(z,{placeholder:"Selecione"})}),e.jsxs(A,{children:[e.jsx(d,{value:"Eletrônicos",children:"Eletrônicos"}),e.jsx(d,{value:"Móveis",children:"Móveis"}),e.jsx(d,{value:"Vestuário",children:"Vestuário"}),e.jsx(d,{value:"Alimentos",children:"Alimentos"})]})]})]})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(F,{htmlFor:"price",children:"Preço"}),e.jsx(O,{id:"price",type:"number",value:n.price,onChange:s=>h({...n,price:Number(s.target.value)})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(F,{htmlFor:"stock",children:"Estoque"}),e.jsx(O,{id:"stock",type:"number",value:n.stock,onChange:s=>h({...n,stock:Number(s.target.value)})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(F,{htmlFor:"status",children:"Status"}),e.jsxs(D,{value:n.status,onValueChange:s=>h({...n,status:s}),children:[e.jsx(R,{children:e.jsx(z,{})}),e.jsxs(A,{children:[e.jsx(d,{value:"Ativo",children:"Ativo"}),e.jsx(d,{value:"Inativo",children:"Inativo"})]})]})]})]})]}),e.jsxs(je,{children:[e.jsx(b,{variant:"outline",onClick:()=>u(!1),children:"Cancelar"}),e.jsx(b,{onClick:U,children:"Salvar"})]})]})}),e.jsx(me,{open:J,onOpenChange:k,children:e.jsxs(xe,{size:"sm",children:[e.jsx(ue,{children:e.jsx(he,{children:"Confirmar Exclusão"})}),e.jsxs("p",{className:"py-4",children:["Deseja realmente excluir o produto ",e.jsx("strong",{children:M?.name}),"?"]}),e.jsxs(je,{children:[e.jsx(b,{variant:"outline",onClick:()=>k(!1),children:"Cancelar"}),e.jsx(b,{variant:"destructive",onClick:Z,children:"Excluir"})]})]})})]})}const Ze=`import { CrudGrid, CrudPagination, useCrud } from 'forlogic-core';
2
+
3
+ const columns = [
4
+ { key: 'name', header: 'Nome', sortable: true },
5
+ { key: 'category', header: 'Categoria', sortable: true },
6
+ { key: 'price', header: 'Preço', render: (item) => \`R$ \${item.price.toFixed(2)}\` },
7
+ { key: 'status', header: 'Status', render: (item) => <Badge>{item.status}</Badge> },
8
+ ];
9
+
10
+ function ProductsGrid() {
11
+ const manager = useCrud(productService);
12
+ const [viewMode, setViewMode] = useState<'list' | 'grid'>('grid');
13
+
14
+ return (
15
+ <>
16
+ <CrudGrid
17
+ manager={manager}
18
+ columns={columns}
19
+ onNew={handleNew}
20
+ onEdit={handleEdit}
21
+ onDelete={handleDelete}
22
+ gridColumns={3}
23
+ enableBulkActions
24
+ viewMode={viewMode}
25
+ onViewModeChange={setViewMode}
26
+ showViewToggle
27
+ />
28
+ <CrudPagination manager={manager} />
29
+ </>
30
+ );
31
+ }`,es=`// Exemplo com toggle List/Grid e renderizadores distintos
32
+ const [viewMode, setViewMode] = useState<'list' | 'grid'>('grid');
33
+
34
+ // Renderizador para modo lista (horizontal)
35
+ const listCardRenderer = (item) => (
36
+ <Card className="hover:bg-muted/50">
37
+ <CardContent className="p-4 flex items-center justify-between gap-4">
38
+ <div className="font-medium">{item.name}</div>
39
+ <div className="text-muted-foreground">{item.category}</div>
40
+ <span className="font-bold">R$ {item.price}</span>
41
+ <Badge>{item.status}</Badge>
42
+ </CardContent>
43
+ </Card>
44
+ );
45
+
46
+ // Renderizador para modo grade (vertical)
47
+ const gridCardRenderer = (item) => (
48
+ <Card className="hover:bg-muted/50 h-full">
49
+ <CardContent className="p-4 space-y-3">
50
+ <h3 className="font-semibold">{item.name}</h3>
51
+ <div className="text-muted-foreground">{item.category}</div>
52
+ <div className="flex justify-between items-center pt-2 border-t">
53
+ <span className="font-bold">R$ {item.price}</span>
54
+ <Badge>{item.status}</Badge>
55
+ </div>
56
+ </CardContent>
57
+ </Card>
58
+ );
59
+
60
+ <CrudGrid
61
+ manager={manager}
62
+ columns={columns}
63
+ viewMode={viewMode}
64
+ onViewModeChange={setViewMode}
65
+ listCardRenderer={listCardRenderer}
66
+ gridCardRenderer={gridCardRenderer}
67
+ gridColumns={3}
68
+ />`,ss=`<CrudGrid
69
+ manager={manager}
70
+ columns={columns}
71
+ gridColumns={4}
72
+ renderCard={(item) => (
73
+ <Card className="hover:shadow-lg transition-shadow">
74
+ <CardContent className="p-4">
75
+ <img src={item.image} className="w-full h-32 object-cover rounded" />
76
+ <h3 className="font-semibold mt-2">{item.name}</h3>
77
+ <p className="text-muted-foreground">{item.category}</p>
78
+ <div className="flex justify-between items-center mt-2">
79
+ <span className="font-bold">R$ {item.price}</span>
80
+ <Badge>{item.status}</Badge>
81
+ </div>
82
+ </CardContent>
83
+ </Card>
84
+ )}
85
+ />`;function cs(){return e.jsxs(Qe,{title:"CrudGrid",description:"Componente para exibir dados em formato de grade (cards) com todas as funcionalidades CRUD. Alternativa visual ao CrudTable para listagens com layout mais visual.",tocItems:[{id:"exemplo-interativo",label:"Exemplo Interativo"},{id:"alternancia-list-grid",label:"Alternância List/Grid"},{id:"card-customizado",label:"Card Customizado"},{id:"funcionalidades",label:"Funcionalidades"},{id:"props-principais",label:"Props Principais"},{id:"quando-usar",label:"Quando Usar"}],children:[e.jsxs("section",{id:"exemplo-interativo",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Exemplo Interativo"}),e.jsxs(Pe,{defaultValue:"preview",className:"w-full",children:[e.jsxs(Ee,{children:[e.jsx(de,{value:"preview",children:"Preview"}),e.jsx(de,{value:"code",children:"Código"})]}),e.jsx(ie,{value:"preview",children:e.jsx(Ke,{})}),e.jsx(ie,{value:"code",children:e.jsx(g,{children:e.jsx(v,{className:"p-4",children:e.jsx("pre",{className:"text-sm overflow-auto max-h-96",children:e.jsx("code",{children:Ze})})})})})]})]}),e.jsxs("section",{id:"alternancia-list-grid",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Alternância List/Grid"}),e.jsxs("p",{className:"text-muted-foreground",children:["Use as props ",e.jsx("code",{children:"viewMode"}),", ",e.jsx("code",{children:"listCardRenderer"})," e ",e.jsx("code",{children:"gridCardRenderer"})," para criar dois layouts visuais distintos que o usuário pode alternar."]}),e.jsx(g,{children:e.jsx(v,{className:"p-4",children:e.jsx("pre",{className:"text-sm overflow-auto max-h-96",children:e.jsx("code",{children:es})})})})]}),e.jsxs("section",{id:"card-customizado",className:"space-y-4 scroll-mt-4",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Card Customizado (Simples)"}),e.jsxs("p",{className:"text-muted-foreground",children:["Para um único layout customizado, use ",e.jsx("code",{children:"renderCard"})," como fallback."]}),e.jsx(g,{children:e.jsx(v,{className:"p-4",children:e.jsx("pre",{className:"text-sm overflow-auto",children:e.jsx("code",{children:ss})})})})]}),e.jsxs(g,{id:"funcionalidades",className:"scroll-mt-4",children:[e.jsx(se,{children:e.jsx(ae,{children:"Funcionalidades"})}),e.jsx(v,{children:e.jsxs("ul",{className:"list-disc list-inside space-y-2 text-sm text-muted-foreground",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Toggle List/Grid:"})," Alterne entre visualização em lista e grade com ",e.jsx("code",{children:"viewMode"})]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Renderizadores distintos:"})," Use ",e.jsx("code",{children:"listCardRenderer"})," e ",e.jsx("code",{children:"gridCardRenderer"})," para layouts específicos"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Grid Responsivo:"})," 1 a 4 colunas configuráveis via prop ",e.jsx("code",{children:"gridColumns"})]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Cards Customizados:"})," Use ",e.jsx("code",{children:"renderCard"})," para layout personalizado único"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Seleção em massa:"})," Checkbox para selecionar múltiplos itens"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"CRUD completo:"})," Criar, editar, visualizar e excluir"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Context Menu:"})," Clique direito para ações rápidas"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Action Bar:"})," Barra de ações integrada (botão novo, toggle de visualização)"]})]})})]}),e.jsxs(g,{id:"props-principais",className:"scroll-mt-4",children:[e.jsx(se,{children:e.jsx(ae,{children:"Props Principais"})}),e.jsx(v,{children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b",children:[e.jsx("th",{className:"text-left p-2 font-medium",children:"Prop"}),e.jsx("th",{className:"text-left p-2 font-medium",children:"Tipo"}),e.jsx("th",{className:"text-left p-2 font-medium",children:"Descrição"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"manager"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"CrudManager<T>"}),e.jsx("td",{className:"p-2",children:"Hook useCrud com estado e operações"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"columns"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"CrudColumn<T>[]"}),e.jsx("td",{className:"p-2",children:"Definição das colunas/campos do card padrão"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"gridColumns"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"1 | 2 | 3 | 4"}),e.jsx("td",{className:"p-2",children:"Número de colunas do grid (padrão: 3)"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"viewMode"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"'list' | 'grid'"}),e.jsx("td",{className:"p-2",children:"Modo de visualização atual"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"onViewModeChange"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"(mode) => void"}),e.jsx("td",{className:"p-2",children:"Callback ao mudar visualização"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"listCardRenderer"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"(item: T) => ReactNode"}),e.jsx("td",{className:"p-2",children:"Renderiza card em modo lista (horizontal)"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"gridCardRenderer"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"(item: T) => ReactNode"}),e.jsx("td",{className:"p-2",children:"Renderiza card em modo grade (vertical)"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"showViewToggle"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"p-2",children:"Exibe botões de alternância List/Grid na toolbar"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"renderCard"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"(item: T) => ReactNode"}),e.jsx("td",{className:"p-2",children:"Fallback para card customizado único"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"onEdit"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"(item: T) => void"}),e.jsx("td",{className:"p-2",children:"Callback ao clicar em editar"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"onDelete"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"(item: T) => void"}),e.jsx("td",{className:"p-2",children:"Callback ao clicar em excluir"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"enableBulkActions"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"p-2",children:"Habilita seleção e ações em massa"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-2",children:e.jsx("code",{children:"hideActionBar"})}),e.jsx("td",{className:"p-2 text-muted-foreground",children:"boolean"}),e.jsx("td",{className:"p-2",children:"Oculta a barra de ações interna"})]})]})]})})})]}),e.jsxs(g,{id:"quando-usar",className:"scroll-mt-4",children:[e.jsx(se,{children:e.jsx(ae,{children:"Quando Usar"})}),e.jsxs(v,{children:[e.jsxs("p",{className:"text-sm text-muted-foreground mb-4",children:["Use o ",e.jsx("code",{children:"CrudGrid"})," quando precisar de uma visualização mais visual dos dados, como catálogos de produtos, galerias ou listagens onde o layout de card é mais apropriado."]}),e.jsxs("ul",{className:"list-disc list-inside space-y-1 text-sm text-muted-foreground",children:[e.jsxs("li",{children:[e.jsx("code",{children:"CrudTable"})," - Para dados tabulares com muitas colunas"]}),e.jsxs("li",{children:[e.jsx("code",{children:"CrudGrid"})," - Para visualização em cards/galeria"]}),e.jsxs("li",{children:[e.jsx("code",{children:"createCrudPage"})," - Para gerar página completa automaticamente"]})]})]})]})]})}export{cs as CrudGridDoc};
@@ -0,0 +1,14 @@
1
+ import{j as e,a as s,b as a,dW as m,B as n,c as r,e as i,d,dw as t,eo as x,A as l,dK as u,F as p}from"./index-DkiftrvI.js";import{B as h}from"./blocks-B6LrJeAM.js";function b({onNavigate:o}){const c=j=>{o&&o(j)};return e.jsxs("div",{className:"space-y-12",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold",children:"Sistema CRUD"}),e.jsx("p",{className:"text-lg text-muted-foreground mt-2",children:"Componentes padronizados para operações Create, Read, Update e Delete com arquitetura em 3 níveis de abstração."})]}),e.jsxs("section",{className:"space-y-6",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Arquitetura em 3 Níveis"}),e.jsxs("p",{className:"text-muted-foreground",children:["O sistema CRUD da ",e.jsx("code",{children:"forlogic-core"})," é organizado em 3 níveis de abstração, permitindo desde implementações rápidas até personalizações completas."]}),e.jsxs("div",{className:"grid gap-6 md:grid-cols-3",children:[e.jsxs(s,{className:"border-primary/50 cursor-pointer hover:bg-accent/50 transition-colors",onClick:()=>c("crud-create-page"),children:[e.jsxs(a,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"p-2 rounded-lg bg-primary/10",children:e.jsx(m,{className:"h-5 w-5 text-primary"})}),e.jsx(n,{variant:"default",children:"Alto Nível"})]}),e.jsx(r,{className:"mt-4",children:"createCrudPage"}),e.jsx(i,{children:"Página CRUD completa gerada automaticamente"})]}),e.jsxs(d,{className:"space-y-4",children:[e.jsxs("div",{className:"text-sm text-muted-foreground",children:[e.jsx("p",{className:"font-medium text-foreground mb-2",children:"Inclui automaticamente:"}),e.jsxs("ul",{className:"space-y-1",children:[e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-3.5 w-3.5 text-green-500"}),"Tabela com ordenação"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-3.5 w-3.5 text-green-500"}),"Formulário em dialog"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-3.5 w-3.5 text-green-500"}),"Filtros e busca"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-3.5 w-3.5 text-green-500"}),"Paginação"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(t,{className:"h-3.5 w-3.5 text-green-500"}),"Ações em massa"]})]})]}),e.jsx("div",{className:"pt-2 border-t",children:e.jsxs("p",{className:"text-xs text-muted-foreground",children:[e.jsx("span",{className:"font-medium",children:"Esforço:"})," ~10 linhas de configuração"]})})]})]}),e.jsxs(s,{className:"border-blue-500/50 cursor-pointer hover:bg-accent/50 transition-colors",onClick:()=>c("crud-table"),children:[e.jsxs(a,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"p-2 rounded-lg bg-blue-500/10",children:e.jsx(x,{className:"h-5 w-5 text-blue-500"})}),e.jsx(n,{variant:"secondary",className:"bg-blue-500/10 text-blue-500",children:"Médio Nível"})]}),e.jsx(r,{className:"mt-4",children:"Componentes CRUD"}),e.jsx(i,{children:"Componentes individuais para composição"})]}),e.jsxs(d,{className:"space-y-4",children:[e.jsxs("div",{className:"text-sm text-muted-foreground",children:[e.jsx("p",{className:"font-medium text-foreground mb-2",children:"Componentes disponíveis:"}),e.jsxs("ul",{className:"space-y-1",children:[e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(l,{className:"h-3.5 w-3.5"}),"CrudTable"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(l,{className:"h-3.5 w-3.5"}),"CrudGrid"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(l,{className:"h-3.5 w-3.5"}),"BaseForm"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(l,{className:"h-3.5 w-3.5"}),"CrudPagination"]})]})]}),e.jsx("div",{className:"pt-2 border-t",children:e.jsxs("p",{className:"text-xs text-muted-foreground",children:[e.jsx("span",{className:"font-medium",children:"Esforço:"})," ~50-100 linhas de código"]})})]})]}),e.jsxs(s,{className:"border-orange-500/50 cursor-pointer hover:bg-accent/50 transition-colors",onClick:()=>c("crud-primitives"),children:[e.jsxs(a,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"p-2 rounded-lg bg-orange-500/10",children:e.jsx(h,{className:"h-5 w-5 text-orange-500"})}),e.jsx(n,{variant:"outline",className:"border-orange-500/50 text-orange-500",children:"Baixo Nível"})]}),e.jsx(r,{className:"mt-4",children:"Primitives"}),e.jsx(i,{children:"Blocos básicos para UIs totalmente customizadas"})]}),e.jsxs(d,{className:"space-y-4",children:[e.jsxs("div",{className:"text-sm text-muted-foreground",children:[e.jsx("p",{className:"font-medium text-foreground mb-2",children:"Primitives disponíveis:"}),e.jsxs("ul",{className:"space-y-1",children:[e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(l,{className:"h-3.5 w-3.5"}),"Table + ActionButton"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(l,{className:"h-3.5 w-3.5"}),"CrudPrimitivePagination"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(l,{className:"h-3.5 w-3.5"}),"CrudPrimitiveFilterBar"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(l,{className:"h-3.5 w-3.5"}),"CrudPrimitiveFilterPopover"]}),e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(l,{className:"h-3.5 w-3.5"}),"TableResizeHandle + useColumnResize"]})]})]}),e.jsx("div",{className:"pt-2 border-t",children:e.jsxs("p",{className:"text-xs text-muted-foreground",children:[e.jsx("span",{className:"font-medium",children:"Esforço:"})," 200+ linhas de código"]})})]})]})]})]}),e.jsxs("section",{className:"space-y-6",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Quando Usar Qual Componente?"}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b bg-muted/50",children:[e.jsx("th",{className:"text-left p-4 font-medium",children:"Cenário"}),e.jsx("th",{className:"text-left p-4 font-medium",children:"Componente"}),e.jsx("th",{className:"text-left p-4 font-medium",children:"Esforço"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-4",children:"CRUD padrão (lista + formulário + filtros)"}),e.jsx("td",{className:"p-4",children:e.jsx("code",{className:"text-sm bg-primary/10 text-primary px-2 py-1 rounded",children:"createCrudPage"})}),e.jsx("td",{className:"p-4 text-muted-foreground",children:"~10 linhas"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-4",children:"Tabela com layout customizado"}),e.jsx("td",{className:"p-4",children:e.jsx("code",{className:"text-sm bg-blue-500/10 text-blue-500 px-2 py-1 rounded",children:"CrudTable + useCrud"})}),e.jsx("td",{className:"p-4 text-muted-foreground",children:"~50 linhas"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-4",children:"Visualização em grid/cards"}),e.jsx("td",{className:"p-4",children:e.jsx("code",{className:"text-sm bg-blue-500/10 text-blue-500 px-2 py-1 rounded",children:"CrudGrid"})}),e.jsx("td",{className:"p-4 text-muted-foreground",children:"~50 linhas"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-4",children:"Formulário multi-step"}),e.jsx("td",{className:"p-4",children:e.jsx("code",{className:"text-sm bg-blue-500/10 text-blue-500 px-2 py-1 rounded",children:"WizardForm"})}),e.jsx("td",{className:"p-4 text-muted-foreground",children:"~30 linhas"})]}),e.jsxs("tr",{className:"border-b",children:[e.jsx("td",{className:"p-4",children:"UI totalmente customizada"}),e.jsx("td",{className:"p-4",children:e.jsx("code",{className:"text-sm bg-orange-500/10 text-orange-500 px-2 py-1 rounded",children:"Primitives"})}),e.jsx("td",{className:"p-4 text-muted-foreground",children:"200+ linhas"})]})]})]})})]}),e.jsxs("section",{className:"space-y-6",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Boas Práticas"}),e.jsxs("div",{className:"grid gap-6 md:grid-cols-2",children:[e.jsxs(s,{className:"border-green-500/20 bg-green-500/5",children:[e.jsx(a,{children:e.jsxs(r,{className:"text-green-600 flex items-center gap-2",children:[e.jsx(t,{className:"h-5 w-5"}),"Faça"]})}),e.jsx(d,{children:e.jsxs("ul",{className:"space-y-2 text-sm",children:[e.jsxs("li",{children:["✅ Use ",e.jsx("code",{children:"createCrudPage"})," para CRUDs padrão"]}),e.jsxs("li",{children:["✅ Use ",e.jsx("code",{children:"CrudTable"})," para customizações de layout"]}),e.jsxs("li",{children:["✅ Use ",e.jsx("code",{children:"CrudGrid"})," para visualização em cards"]}),e.jsxs("li",{children:["✅ Use ",e.jsx("code",{children:"BaseForm"})," para formulários com validação Zod"]}),e.jsxs("li",{children:["✅ Use ",e.jsx("code",{children:"useCrud"})," para gerenciamento de estado"]}),e.jsx("li",{children:"✅ Reutilize os hooks existentes"})]})})]}),e.jsxs(s,{className:"border-red-500/20 bg-red-500/5",children:[e.jsx(a,{children:e.jsxs(r,{className:"text-red-600 flex items-center gap-2",children:[e.jsx("span",{className:"h-5 w-5 flex items-center justify-center",children:"✕"}),"Evite"]})}),e.jsx(d,{children:e.jsxs("ul",{className:"space-y-2 text-sm",children:[e.jsxs("li",{children:["❌ Recriar tabelas do zero com ",e.jsx("code",{children:"<Table>"})," base"]}),e.jsx("li",{children:"❌ Implementar paginação manual"}),e.jsxs("li",{children:["❌ Criar formulários sem ",e.jsx("code",{children:"BaseForm"})]}),e.jsx("li",{children:"❌ Duplicar lógica CRUD em cada página"}),e.jsx("li",{children:"❌ Usar Primitives quando componentes de alto nível servem"})]})})]})]})]}),e.jsxs("section",{className:"space-y-6",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Integração com useCrud"}),e.jsxs("p",{className:"text-muted-foreground",children:["O hook ",e.jsx("code",{children:"useCrud"})," gerencia todo o estado do CRUD: busca, ordenação, paginação, seleção e operações de create/update/delete. Ele é usado internamente pelo ",e.jsx("code",{children:"createCrudPage"}),"e pode ser usado diretamente com os componentes de nível médio."]}),e.jsxs(s,{children:[e.jsx(a,{children:e.jsx(r,{children:"Exemplo de uso com createSimpleService"})}),e.jsx(d,{children:e.jsx("pre",{className:"bg-muted p-4 rounded-lg overflow-x-auto text-sm",children:`// 1. Criar o serviço
2
+ const notesService = createSimpleService<Note>({
3
+ tableName: 'notes',
4
+ entityName: 'nota',
5
+ searchFields: ['title', 'content'],
6
+ });
7
+
8
+ // 2. Usar o hook em um componente
9
+ function NotesPage() {
10
+ const manager = notesService.useCrudHook();
11
+
12
+ // 3. Usar createCrudPage ou componentes individuais
13
+ return <CrudTable manager={manager} columns={columns} />;
14
+ }`})})]})]}),e.jsxs("section",{className:"space-y-6",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Documentação Detalhada"}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:[e.jsx(s,{className:"hover:border-primary/50 transition-colors cursor-pointer",onClick:()=>c("crud-create-page"),children:e.jsxs(a,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(m,{className:"h-5 w-5 text-primary"}),e.jsx(r,{className:"text-base",children:"createCrudPage"})]}),e.jsx(i,{children:"Gerador de página CRUD completa"})]})}),e.jsx(s,{className:"hover:border-primary/50 transition-colors cursor-pointer",onClick:()=>c("crud-table"),children:e.jsxs(a,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(x,{className:"h-5 w-5 text-blue-500"}),e.jsx(r,{className:"text-base",children:"CrudTable"})]}),e.jsx(i,{children:"Tabela CRUD com ordenação, seleção e ações"})]})}),e.jsx(s,{className:"hover:border-primary/50 transition-colors cursor-pointer",onClick:()=>c("crud-grid"),children:e.jsxs(a,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(u,{className:"h-5 w-5 text-blue-500"}),e.jsx(r,{className:"text-base",children:"CrudGrid"})]}),e.jsx(i,{children:"Visualização em cards com lista/grid toggle"})]})}),e.jsx(s,{className:"hover:border-primary/50 transition-colors cursor-pointer",onClick:()=>c("crud-primitives"),children:e.jsxs(a,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(h,{className:"h-5 w-5 text-orange-500"}),e.jsx(r,{className:"text-base",children:"Primitives"})]}),e.jsx(i,{children:"Blocos de baixo nível para UIs customizadas"})]})}),e.jsx(s,{className:"hover:border-primary/50 transition-colors cursor-pointer",onClick:()=>c("crud-baseform"),children:e.jsxs(a,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(p,{className:"h-5 w-5 text-blue-500"}),e.jsx(r,{className:"text-base",children:"BaseForm"})]}),e.jsx(i,{children:"Formulário com validação Zod e tipos de campo"})]})})]})]})]})}export{b as CrudOverviewDoc};