forlogic-core 1.16.7 → 1.16.8

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 (142) hide show
  1. package/dist/README.md +116 -116
  2. package/dist/assets/AccordionDoc-BVPUJk8G.js +31 -0
  3. package/dist/assets/ActionButtonDoc-DLJ_K9ib.js +47 -0
  4. package/dist/assets/AlertDoc-CY1ybZeG.js +37 -0
  5. package/dist/assets/AppHeaderDoc-Crkw4dA9.js +67 -0
  6. package/dist/assets/AppSidebarDoc-ET-4j6wV.js +204 -0
  7. package/dist/assets/AuthDoc-B4v4Nci5.js +192 -0
  8. package/dist/assets/AvatarDoc-BLdMoyJd.js +11 -0
  9. package/dist/assets/BadgeDoc-CSNM1b6b.js +36 -0
  10. package/dist/assets/BaseFormDoc-DXiYuN6-.js +169 -0
  11. package/dist/assets/BodyContentDoc-Bp6YmUWX.js +83 -0
  12. package/dist/assets/BreadcrumbDoc-D7tqqTvo.js +75 -0
  13. package/dist/assets/ButtonDoc-C4JwIvU3.js +41 -0
  14. package/dist/assets/ButtonGroupDoc-QFfjC7Pm.js +7 -0
  15. package/dist/assets/CalendarDoc-COlEKqmv.js +81 -0
  16. package/dist/assets/CardDoc-BVhMoC2w.js +49 -0
  17. package/dist/assets/ChartDoc-BJ14EjI2.js +111 -0
  18. package/dist/assets/CheckboxDoc-Bcqpln9_.js +55 -0
  19. package/dist/assets/ColorPickerDoc-CcfmSwyC.js +10 -0
  20. package/dist/assets/ColorsFoundationDoc-uO6IiJbS.js +13 -0
  21. package/dist/assets/ComboTreeDoc-R4qE6XwB.js +46 -0
  22. package/dist/assets/ComboboxDoc-JIo_-gSN.js +134 -0
  23. package/dist/assets/ComponentDocTemplate-CRbRY-v5.js +1 -0
  24. package/dist/assets/ContextMenuDoc-C4-_0NLp.js +182 -0
  25. package/dist/assets/ContextsDoc-Cj9Aaoyo.js +184 -0
  26. package/dist/assets/CreateCrudPageDoc-D_SnMRJ2.js +106 -0
  27. package/dist/assets/CrudActionBarDoc-BYqtIabp.js +112 -0
  28. package/dist/assets/CrudGridDoc-DspxQrq5.js +85 -0
  29. package/dist/assets/CrudOverviewDoc-DLcOL_HZ.js +14 -0
  30. package/dist/assets/CrudPrimitivesDoc-BRS86nWg.js +164 -0
  31. package/dist/assets/CrudTableDoc-Daw8u2G_.js +113 -0
  32. package/dist/assets/DataListDoc-BrgVNhhR.js +13 -0
  33. package/dist/assets/DesignSystemHome-BFBNqq1J.js +1 -0
  34. package/dist/assets/DialogDoc-DCpRy4rg.js +981 -0
  35. package/dist/assets/DropdownMenuDoc-DT6LBa8Z.js +175 -0
  36. package/dist/assets/EmptyStateDoc-wydc09gG.js +35 -0
  37. package/dist/assets/EnvironmentsDoc-amIriwDD.js +96 -0
  38. package/dist/assets/ErrorBoundaryDoc-BEixy_Gl.js +111 -0
  39. package/dist/assets/FormDoc-DxoRt6p7.js +81 -0
  40. package/dist/assets/FoundationOverview-CxSbumIt.js +1 -0
  41. package/dist/assets/GridDoc-BpQqCMUE.js +28 -0
  42. package/dist/assets/HooksDoc-JNODhbaF.js +665 -0
  43. package/dist/assets/HoverCardDoc-CdqiYrIb.js +31 -0
  44. package/dist/assets/I18nDoc-B6LMXnE3.js +232 -0
  45. package/dist/assets/IconPickerDoc-BRdy58IC.js +10 -0
  46. package/dist/assets/IconsFoundationDoc-CrymfxTI.js +33 -0
  47. package/dist/assets/InputDoc-BK-SdpJ7.js +211 -0
  48. package/dist/assets/LabelDoc-DHvgzhaJ.js +42 -0
  49. package/dist/assets/LeadershipDoc-DRiB0spL.js +416 -0
  50. package/dist/assets/MediaDoc-B_vqnf72.js +459 -0
  51. package/dist/assets/MenubarDoc-Zvgczxe2.js +165 -0
  52. package/dist/assets/ModuleAccessDoc-Nuxb4S27.js +153 -0
  53. package/dist/assets/ModulesDialogDoc-iJWLkOZo.js +46 -0
  54. package/dist/assets/NavigationMenuDoc-CeWun1VF.js +116 -0
  55. package/dist/assets/OnboardingDialogDoc-xBL-rXeZ.js +55 -0
  56. package/dist/assets/PaginationDoc-CfvwxCMe.js +98 -0
  57. package/dist/assets/PaginationDoc-DqtRgXnF.js +27 -0
  58. package/dist/assets/PlacesDoc-nckioEzg.js +226 -0
  59. package/dist/assets/PopoverDoc-C3o2CZCT.js +64 -0
  60. package/dist/assets/ProgressDoc-BmWBNMPA.js +29 -0
  61. package/dist/assets/QualiexUserFieldDoc-CE1e4mx6.js +149 -0
  62. package/dist/assets/RadioGroupDoc-DMZH6NmR.js +57 -0
  63. package/dist/assets/RadiusDoc-BOZD3gPV.js +7 -0
  64. package/dist/assets/RequiredFieldsCounterDoc-CG-lmSSy.js +58 -0
  65. package/dist/assets/ResizableDoc-CqGkv6Cd.js +104 -0
  66. package/dist/assets/RichTextEditorDoc-m50ll-Od.js +24 -0
  67. package/dist/assets/ScrollAreaDoc-BzJ-APXo.js +28 -0
  68. package/dist/assets/SecurityDoc-B34gVeiV.js +204 -0
  69. package/dist/assets/SelectDoc-DXRv7QHK.js +80 -0
  70. package/dist/assets/SeparatorDoc-DcNh8k0P.js +4 -0
  71. package/dist/assets/ServicesDoc-8aXBd6yg.js +308 -0
  72. package/dist/assets/ShadowsDoc-Brl4hIDI.js +9 -0
  73. package/dist/assets/SignDoc-BdwerR-2.js +66 -0
  74. package/dist/assets/SkeletonDoc-BWgqgbDY.js +54 -0
  75. package/dist/assets/SliderDoc-E-NjbYVk.js +41 -0
  76. package/dist/assets/SpacingDoc-BzburM-r.js +12 -0
  77. package/dist/assets/SplitButtonDoc-BYUysmJp.js +53 -0
  78. package/dist/assets/StepSelectorDoc-PB1k4v7F.js +41 -0
  79. package/dist/assets/SwitchDoc-BLOG6kfj.js +56 -0
  80. package/dist/assets/TableDoc-Dwcs-lop.js +128 -0
  81. package/dist/assets/TabsDoc-Ovkh8ArV.js +42 -0
  82. package/dist/assets/TextareaDoc-DsBYxmbr.js +46 -0
  83. package/dist/assets/ToastDoc-BbZaFE_A.js +157 -0
  84. package/dist/assets/ToggleDoc-C28vbvhp.js +51 -0
  85. package/dist/assets/TooltipDoc-DL5cnLak.js +58 -0
  86. package/dist/assets/TruncatedCellDoc-BuDA8QcY.js +12 -0
  87. package/dist/assets/TypographyFoundationDoc-CPdH4PHa.js +7 -0
  88. package/dist/assets/UtilitiesDoc-CrQhyEfz.js +145 -0
  89. package/dist/assets/blocks-DO93nPjs.js +1 -0
  90. package/dist/assets/calendar-days-cMfwBSZx.js +1 -0
  91. package/dist/assets/circle-plus-D3NftMzS.js +1 -0
  92. package/dist/assets/circle-x-BVAVJ_oz.js +1 -0
  93. package/dist/assets/crown-B2MTZDnM.js +1 -0
  94. package/dist/assets/date-picker-zhJU-_kM.js +1 -0
  95. package/dist/assets/disabled-menu-item-C16xsaVs.js +1 -0
  96. package/dist/assets/drawer-oTqCOtsC.js +3 -0
  97. package/dist/assets/file-pen-line-CXv-Eye-.js +1 -0
  98. package/dist/assets/git-branch-V6-h6P9K.js +1 -0
  99. package/dist/assets/globe-CaUBIJU8.js +1 -0
  100. package/dist/assets/hash-B4MTXppl.js +1 -0
  101. package/dist/assets/hover-card-DEuucfxP.js +1 -0
  102. package/dist/assets/index-CE0k7Rdh.js +312 -0
  103. package/dist/assets/index-Cx3adT_u.css +1 -0
  104. package/dist/assets/life-buoy-BRndExxh.js +1 -0
  105. package/dist/assets/lucide-react-t7dCa4lv.js +1 -0
  106. package/dist/assets/monitor-Dg3HKTSE.js +1 -0
  107. package/dist/assets/package-3G45ARQh.js +1 -0
  108. package/dist/assets/pen-BYSSwjK4.js +1 -0
  109. package/dist/assets/pin-CMYagNhs.js +1 -0
  110. package/dist/assets/radio-group-BVun_Tmt.js +1 -0
  111. package/dist/assets/server-p0Sb0mKI.js +1 -0
  112. package/dist/assets/share-2-D-ZhCCq2.js +1 -0
  113. package/dist/assets/shield-x-Q7hAXWsG.js +1 -0
  114. package/dist/assets/step-selector-DHxgT2FL.js +1 -0
  115. package/dist/assets/text-align-start-6aYQqbX4.js +1 -0
  116. package/dist/assets/trash-DveAOiLF.js +1 -0
  117. package/dist/assets/useMockCrud-GY0KxHXr.js +1 -0
  118. package/dist/assets/user-check-CoGNBfIk.js +1 -0
  119. package/dist/assets/user-plus-Bad2xWIT.js +1 -0
  120. package/dist/components/modules/ModuleAccessGuard.d.ts +24 -2
  121. package/dist/crud/components/ColumnSettingsPopover.d.ts +17 -0
  122. package/dist/crud/components/CrudActionBar.d.ts +2 -1
  123. package/dist/crud/components/CrudTable.d.ts +5 -1
  124. package/dist/crud/components/GroupDropZone.d.ts +16 -0
  125. package/dist/crud/components/InlineRowActions.d.ts +15 -0
  126. package/dist/crud/hooks/useColumnDragReorder.d.ts +19 -0
  127. package/dist/crud/hooks/useColumnManager.d.ts +56 -0
  128. package/dist/crud/primitives/Table.d.ts +1 -1
  129. package/dist/crud/primitives/TreeTable.d.ts +2 -0
  130. package/dist/crud/primitives/index.d.ts +2 -1
  131. package/dist/crud/primitives/types.d.ts +33 -0
  132. package/dist/exports/crud.d.ts +2 -1
  133. package/dist/hooks/useDerivedContractedModules.d.ts +8 -0
  134. package/dist/index.css +1 -1
  135. package/dist/index.css.map +1 -1
  136. package/dist/index.d.ts +1 -0
  137. package/dist/index.esm.js +1 -1
  138. package/dist/index.html +35 -0
  139. package/dist/index.js +1 -1
  140. package/dist/types.d.ts +4 -0
  141. package/docs/DESIGN_SYSTEM.md +12 -0
  142. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ import{aR as a}from"./index-CE0k7Rdh.js";const e=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]],i=a("file-braces",e);const o=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]],c=a("monitor",o);export{i as F,c as M};
@@ -0,0 +1 @@
1
+ import{aR as a}from"./index-CE0k7Rdh.js";const e=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],t=a("package",e);export{t as P};
@@ -0,0 +1 @@
1
+ import{aR as a}from"./index-CE0k7Rdh.js";const e=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],c=a("pen",e);export{c as P};
@@ -0,0 +1 @@
1
+ import{aR as a}from"./index-CE0k7Rdh.js";const o=[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]],t=a("pin-off",o);const n=[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]],d=a("pin",n);export{d as P,t as a};
@@ -0,0 +1 @@
1
+ import{r as n,a3 as V,Y as K,j as a,cV as T,$ as b,a2 as w,cW as U,a4 as g,cX as E,cY as Y,a6 as N,cZ as $,c_ as z,l as I,k as H}from"./index-CE0k7Rdh.js";var C="Radio",[W,_]=N(C),[X,Z]=W(C),k=n.forwardRef((r,t)=>{const{__scopeRadio:e,name:c,checked:o=!1,required:s,disabled:i,value:p="on",onCheck:f,form:R,...v}=r,[l,m]=n.useState(null),d=w(t,x=>m(x)),u=n.useRef(!1),y=l?R||!!l.closest("form"):!0;return a.jsxs(X,{scope:e,checked:o,disabled:i,children:[a.jsx(b.button,{type:"button",role:"radio","aria-checked":o,"data-state":S(o),"data-disabled":i?"":void 0,disabled:i,value:p,...v,ref:d,onClick:g(r.onClick,x=>{o||f?.(),y&&(u.current=x.isPropagationStopped(),u.current||x.stopPropagation())})}),y&&a.jsx(G,{control:l,bubbles:!u.current,name:c,value:p,checked:o,required:s,disabled:i,form:R,style:{transform:"translateX(-100%)"}})]})});k.displayName=C;var j="RadioIndicator",P=n.forwardRef((r,t)=>{const{__scopeRadio:e,forceMount:c,...o}=r,s=Z(j,e);return a.jsx(Y,{present:c||s.checked,children:a.jsx(b.span,{"data-state":S(s.checked),"data-disabled":s.disabled?"":void 0,...o,ref:t})})});P.displayName=j;var J="RadioBubbleInput",G=n.forwardRef(({__scopeRadio:r,control:t,checked:e,bubbles:c=!0,...o},s)=>{const i=n.useRef(null),p=w(i,s),f=$(e),R=z(t);return n.useEffect(()=>{const v=i.current;if(!v)return;const l=window.HTMLInputElement.prototype,d=Object.getOwnPropertyDescriptor(l,"checked").set;if(f!==e&&d){const u=new Event("click",{bubbles:c});d.call(v,e),v.dispatchEvent(u)}},[f,e,c]),a.jsx(b.input,{type:"radio","aria-hidden":!0,defaultChecked:e,...o,tabIndex:-1,ref:p,style:{...o.style,...R,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});G.displayName=J;function S(r){return r?"checked":"unchecked"}var Q=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],h="RadioGroup",[ee]=N(h,[E,_]),A=E(),D=_(),[oe,re]=ee(h),M=n.forwardRef((r,t)=>{const{__scopeRadioGroup:e,name:c,defaultValue:o,value:s,required:i=!1,disabled:p=!1,orientation:f,dir:R,loop:v=!0,onValueChange:l,...m}=r,d=A(e),u=V(R),[y,x]=K({prop:s,defaultProp:o??null,onChange:l,caller:h});return a.jsx(oe,{scope:e,name:c,required:i,disabled:p,value:y,onValueChange:x,children:a.jsx(T,{asChild:!0,...d,orientation:f,dir:u,loop:v,children:a.jsx(b.div,{role:"radiogroup","aria-required":i,"aria-orientation":f,"data-disabled":p?"":void 0,dir:u,...m,ref:t})})})});M.displayName=h;var O="RadioGroupItem",F=n.forwardRef((r,t)=>{const{__scopeRadioGroup:e,disabled:c,...o}=r,s=re(O,e),i=s.disabled||c,p=A(e),f=D(e),R=n.useRef(null),v=w(t,R),l=s.value===o.value,m=n.useRef(!1);return n.useEffect(()=>{const d=y=>{Q.includes(y.key)&&(m.current=!0)},u=()=>m.current=!1;return document.addEventListener("keydown",d),document.addEventListener("keyup",u),()=>{document.removeEventListener("keydown",d),document.removeEventListener("keyup",u)}},[]),a.jsx(U,{asChild:!0,...p,focusable:!i,active:l,children:a.jsx(k,{disabled:i,required:s.required,checked:l,...f,...o,name:s.name,ref:v,onCheck:()=>s.onValueChange(o.value),onKeyDown:g(d=>{d.key==="Enter"&&d.preventDefault()}),onFocus:g(o.onFocus,()=>{m.current&&R.current?.click()})})})});F.displayName=O;var ae="RadioGroupIndicator",L=n.forwardRef((r,t)=>{const{__scopeRadioGroup:e,...c}=r,o=D(e);return a.jsx(P,{...o,...c,ref:t})});L.displayName=ae;var q=M,B=F,te=L;const se=n.forwardRef(({className:r,...t},e)=>a.jsx(q,{className:I("grid gap-2",r),...t,ref:e}));se.displayName=q.displayName;const ne=n.forwardRef(({className:r,...t},e)=>a.jsx(B,{ref:e,className:I("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",r),...t,children:a.jsx(te,{className:"flex items-center justify-center",children:a.jsx(H,{className:"h-2.5 w-2.5 fill-current text-current"})})}));ne.displayName=B.displayName;export{se as R,ne as a};
@@ -0,0 +1 @@
1
+ import{aR as e}from"./index-CE0k7Rdh.js";const r=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],i=e("server",r);export{i as S};
@@ -0,0 +1 @@
1
+ import{aR as c}from"./index-CE0k7Rdh.js";const e=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]],o=c("columns-2",e);const y=[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]],r=c("share-2",y);export{o as C,r as S};
@@ -0,0 +1 @@
1
+ import{aR as a}from"./index-CE0k7Rdh.js";const e=[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]],d=a("graduation-cap",e);const t=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]],c=a("shield-x",t);export{d as G,c as S};
@@ -0,0 +1 @@
1
+ import{j as a,n as f,o as j,f as t,a7 as w,p as N,q as g,ah as D,l as e,ap as v}from"./index-CE0k7Rdh.js";function M({currentStep:r,totalSteps:o,onStepChange:l,stepLabels:d,canGoToStep:n,className:m,progressWidth:u="w-32"}){const c=Array.from({length:o},(s,h)=>h+1),x=s=>{if(s<r){l(s);return}(!n||n(s))&&l(s)},i=s=>s<=r?!1:n?!n(s):!1;return a.jsxs("div",{className:e("flex items-center gap-3",m),children:[a.jsxs(f,{children:[a.jsx(j,{asChild:!0,children:a.jsxs(t,{variant:"ghost",size:"sm",className:"h-auto py-1 px-2 text-sm text-muted-foreground hover:text-foreground",children:["Etapa ",r,"/",o,a.jsx(w,{className:"h-3 w-3 ml-1"})]})}),a.jsx(N,{align:"start",children:c.map(s=>a.jsxs(g,{onClick:()=>x(s),disabled:i(s),className:e("cursor-pointer",s===r&&"bg-muted font-medium",i(s)&&"opacity-50 cursor-not-allowed"),children:[a.jsxs("span",{className:"mr-2 text-muted-foreground",children:[s,"."]}),d?.[s-1]||`Etapa ${s}`,s===r&&a.jsx(D,{className:"h-4 w-4 ml-auto"})]},s))})]}),a.jsx(v,{value:r/o*100,className:e("h-2",u)})]})}export{M as S};
@@ -0,0 +1 @@
1
+ import{aR as t}from"./index-CE0k7Rdh.js";const e=[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M17 12H7",key:"16if0g"}],["path",{d:"M19 19H5",key:"vjpgq2"}]],o=t("text-align-center",e);const a=[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M21 19H7",key:"4cu937"}]],i=t("text-align-end",a);const n=[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M17 19H3",key:"z6ezky"}]],c=t("text-align-start",n);export{c as T,o as a,i as b};
@@ -0,0 +1 @@
1
+ import{aR as a}from"./index-CE0k7Rdh.js";const t=[["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],o=a("trash",t);export{o as T};
@@ -0,0 +1 @@
1
+ import{r as a}from"./index-CE0k7Rdh.js";function X(i){return{...i,alias:"mock-alias",created_at:i.created_at||new Date().toISOString(),updated_at:i.updated_at||new Date().toISOString(),is_removed:!1,is_actived:i.is_actived??!0}}function Y(i,T={}){const{searchFields:w=[],defaultSort:y,pageSize:F=10,filterFn:b}=T,[g,d]=a.useState(i),[m,v]=a.useState(""),[c,M]=a.useState(y?.field||""),[D,I]=a.useState(y?.direction||"asc"),[l,C]=a.useState(1),[r,O]=a.useState(F),[S,u]=a.useState([]),[L,h]=a.useState(!1),[x,k]=a.useState(!1),p=a.useMemo(()=>{let e=g;if(m&&w.length>0){const s=m.toLowerCase();e=e.filter(t=>w.some(n=>{const f=t[n];return f&&String(f).toLowerCase().includes(s)}))}return b&&(e=e.filter(b)),e},[g,m,w,b]),P=a.useMemo(()=>c?[...p].sort((e,s)=>{const t=e[c],n=s[c];if(t===n)return 0;if(t==null)return 1;if(n==null)return-1;const f=t<n?-1:1;return D==="asc"?f:-f}):p,[p,c,D]),o=a.useMemo(()=>{const e=(l-1)*r;return P.slice(e,e+r)},[P,l,r]),_=Math.ceil(P.length/r),E=P.length,A=a.useMemo(()=>({data:o,currentPage:l,totalPages:_,totalItems:E,itemsPerPage:r,hasNextPage:l<_,hasPreviousPage:l>1}),[o,l,_,E,r]),V=a.useCallback(e=>{v(e),C(1)},[]),q=a.useCallback(e=>{c===e?I(s=>s==="asc"?"desc":"asc"):(M(e),I("asc"))},[c]),z=a.useCallback(e=>{C(e)},[]),N=a.useCallback(e=>{O(e),C(1)},[]),$=a.useCallback(e=>{u(s=>s.includes(e)?s.filter(t=>t!==e):[...s,e])},[]),j=a.useCallback(()=>{const e=o.map(t=>t.id),s=e.every(t=>S.includes(t));u(s?t=>t.filter(n=>!e.includes(n)):t=>[...new Set([...t,...e])])},[o,S]),B=a.useCallback(()=>{u([])},[]),G=a.useCallback(()=>{v(""),M(""),I("asc"),C(1)},[]),H=a.useMemo(()=>{const e=o.map(s=>s.id);return e.length>0&&e.every(s=>S.includes(s))},[o,S]),J=a.useCallback(async e=>{h(!0),await new Promise(t=>setTimeout(t,300));const s={...e,id:`${Date.now()}`,alias:"mock-alias",created_at:new Date().toISOString(),updated_at:new Date().toISOString(),is_removed:!1,is_actived:!0};d(t=>[s,...t]),h(!1)},[]),K=a.useCallback(async(e,s)=>{h(!0),await new Promise(t=>setTimeout(t,300)),d(t=>t.map(n=>n.id===e?{...n,...s,updated_at:new Date().toISOString()}:n)),h(!1)},[]),Q=a.useCallback(e=>{k(!0),setTimeout(()=>{d(s=>s.filter(t=>t.id!==e)),u(s=>s.filter(t=>t!==e)),k(!1)},300)},[]),R=a.useCallback(async e=>{k(!0),await new Promise(s=>setTimeout(s,300)),d(s=>s.filter(t=>!e.includes(t.id))),u([]),k(!1)},[]),U=a.useCallback(()=>{d([...g])},[g]);return{entities:o,pagination:A,isLoading:L,isDeleting:x,searchTerm:m,handleSearch:V,sortField:c,sortDirection:D,handleSort:q,currentPage:l,itemsPerPage:r,handlePageChange:z,handleItemsPerPageChange:N,selectedIds:S,selectItem:$,selectAll:j,clearSelection:B,isAllSelected:H,clearFilters:G,deleteEntity:Q,bulkDelete:R,refetch:U,createEntity:J,updateEntity:K}}export{X as c,Y as u};
@@ -0,0 +1 @@
1
+ import{aR as c}from"./index-CE0k7Rdh.js";const e=[["path",{d:"m16 11 2 2 4-4",key:"9rsbq5"}],["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],a=c("user-check",e);export{a as U};
@@ -0,0 +1 @@
1
+ import{aR as e}from"./index-CE0k7Rdh.js";const y=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],s=e("user-plus",y);export{s as U};
@@ -1,4 +1,4 @@
1
- import { ReactNode } from "react";
1
+ import { type ReactNode } from "react";
2
2
  import { Module } from "./types";
3
3
  export interface ModuleAccessGuardProps {
4
4
  children: ReactNode;
@@ -14,5 +14,27 @@ export interface ModuleAccessGuardProps {
14
14
  saberGestaoUrl?: string;
15
15
  /** URL da Wiki */
16
16
  wikiUrl?: string;
17
+ /**
18
+ * Rotas que ignoram o guard (bypass).
19
+ * Suporta glob simples com `*` no final: `/public/*` faz match com `/public/qualquer-coisa`.
20
+ * Sem `bypassPaths` → comportamento padrão (todas as rotas protegidas).
21
+ */
22
+ bypassPaths?: string[];
23
+ /**
24
+ * Mapa declarativo de rotas → conteúdo customizado no dialog de acesso negado.
25
+ * As chaves são paths (suportam glob com `*` no final).
26
+ * Se a rota atual faz match, o conteúdo substitui o grid de módulos.
27
+ * Se nenhuma rota faz match → grid padrão.
28
+ *
29
+ * Defina em arquivo separado para manter o App.tsx limpo:
30
+ * ```tsx
31
+ * // src/config/accessDeniedRoutes.tsx
32
+ * export const accessDeniedRoutes = {
33
+ * '/docs/matrix-link': <ModuleOfferContent title="Conheça Staff" ... />,
34
+ * '/reports/*': <ModuleOfferContent title="Relatórios" ... />,
35
+ * };
36
+ * ```
37
+ */
38
+ accessDeniedRoutes?: Record<string, ReactNode>;
17
39
  }
18
- export declare function ModuleAccessGuard({ children, contractedModules, onModuleClick, onModuleInterest, educaUrl, saberGestaoUrl, wikiUrl, }: ModuleAccessGuardProps): import("react/jsx-runtime").JSX.Element;
40
+ export declare function ModuleAccessGuard({ children, contractedModules, onModuleClick, onModuleInterest, educaUrl, saberGestaoUrl, wikiUrl, bypassPaths, accessDeniedRoutes, }: ModuleAccessGuardProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import type { CrudColumn, BaseEntity } from '../../types';
2
+ export interface ColumnSettingsPopoverProps<T> {
3
+ columns: CrudColumn<T>[];
4
+ columnOrder: string[];
5
+ isColumnHidden: (key: string) => boolean;
6
+ toggleColumn: (key: string) => void;
7
+ showAllColumns: () => void;
8
+ reorderColumns: (fromIndex: number, toIndex: number) => void;
9
+ /** @deprecated Use groupByColumns + addGroupByColumn + removeGroupByColumn */
10
+ groupByColumn?: string | null;
11
+ /** @deprecated Use addGroupByColumn/removeGroupByColumn */
12
+ setGroupByColumn?: (key: string | null) => void;
13
+ groupByColumns?: string[];
14
+ addGroupByColumn?: (key: string) => void;
15
+ removeGroupByColumn?: (key: string) => void;
16
+ }
17
+ export declare function ColumnSettingsPopover<T extends BaseEntity>({ columns, columnOrder, isColumnHidden, toggleColumn, showAllColumns, reorderColumns, groupByColumn, setGroupByColumn, groupByColumns, addGroupByColumn, removeGroupByColumn, }: ColumnSettingsPopoverProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -31,8 +31,9 @@ export interface CrudActionBarProps<T extends BaseEntity = BaseEntity> {
31
31
  onViewModeChange?: (mode: ViewMode) => void;
32
32
  showViewToggle?: boolean;
33
33
  availableViewModes?: ViewMode[];
34
+ rightSlot?: React.ReactNode;
34
35
  className?: string;
35
36
  }
36
- declare function CrudActionBarComponent<T extends BaseEntity = BaseEntity>({ onNew, newButtonLabel, showNewButton, showSearch, searchValue, onSearchChange, searchPlaceholder, showBulkActions, selectedCount, bulkActions, onBulkDelete, onClearSelection, customActions, filters, viewMode, onViewModeChange, showViewToggle, availableViewModes, className, }: CrudActionBarProps<T>): import("react/jsx-runtime").JSX.Element;
37
+ declare function CrudActionBarComponent<T extends BaseEntity = BaseEntity>({ onNew, newButtonLabel, showNewButton, showSearch, searchValue, onSearchChange, searchPlaceholder, showBulkActions, selectedCount, bulkActions, onBulkDelete, onClearSelection, customActions, filters, viewMode, onViewModeChange, showViewToggle, availableViewModes, rightSlot, className, }: CrudActionBarProps<T>): import("react/jsx-runtime").JSX.Element;
37
38
  export declare const CrudActionBar: typeof CrudActionBarComponent;
38
39
  export default CrudActionBar;
@@ -17,6 +17,8 @@ export interface CrudTableProps<T extends BaseEntity & {
17
17
  onClick: () => void;
18
18
  }>;
19
19
  enableBulkActions?: boolean;
20
+ /** Variante de ações por linha: 'dropdown' (padrão) ou 'inline' (hover estilo Google Drive) */
21
+ rowActionsVariant?: 'dropdown' | 'inline';
20
22
  onNew?: () => void;
21
23
  newButtonLabel?: string;
22
24
  showNewButton?: boolean;
@@ -36,6 +38,8 @@ export interface CrudTableProps<T extends BaseEntity & {
36
38
  showViewToggle?: boolean;
37
39
  enableColumnResize?: boolean;
38
40
  resizeStorageKey?: string;
41
+ enableColumnManager?: boolean;
42
+ columnManagerStorageKey?: string;
39
43
  }
40
- export declare const CrudTable: <T extends BaseEntity>({ manager, columns, onEdit, onView, onToggleStatus, onDelete, renderActions, customRowActions, enableBulkActions, onNew, newButtonLabel, showNewButton, customActions, hideActionBar, showActionBar, showSearch, searchValue, onSearchChange, searchPlaceholder, bulkActions, onBulkDelete, filters, viewMode, onViewModeChange, showViewToggle, enableColumnResize, resizeStorageKey }: CrudTableProps<T>) => import("react/jsx-runtime").JSX.Element;
44
+ export declare const CrudTable: <T extends BaseEntity>({ manager, columns, onEdit, onView, onToggleStatus, onDelete, renderActions, customRowActions, enableBulkActions, rowActionsVariant, onNew, newButtonLabel, showNewButton, customActions, hideActionBar, showActionBar, showSearch, searchValue, onSearchChange, searchPlaceholder, bulkActions, onBulkDelete, filters, viewMode, onViewModeChange, showViewToggle, enableColumnResize, resizeStorageKey, enableColumnManager, columnManagerStorageKey, }: CrudTableProps<T>) => import("react/jsx-runtime").JSX.Element;
41
45
  export default CrudTable;
@@ -0,0 +1,16 @@
1
+ import type { CrudColumn, BaseEntity } from '../../types';
2
+ export interface GroupDropZoneProps<T> {
3
+ columns: CrudColumn<T>[];
4
+ groupByColumns: string[];
5
+ addGroupByColumn: (key: string) => void;
6
+ removeGroupByColumn: (key: string) => void;
7
+ reorderGroupByColumns: (fromIndex: number, toIndex: number) => void;
8
+ }
9
+ /**
10
+ * GroupDropZone
11
+ *
12
+ * Zona de drop acima da tabela onde headers de colunas podem ser arrastados
13
+ * para agrupar os dados. Mostra chips com os agrupamentos ativos.
14
+ * Suporta reordenação dos chips por drag-and-drop.
15
+ */
16
+ export declare function GroupDropZone<T extends BaseEntity>({ columns, groupByColumns, addGroupByColumn, removeGroupByColumn, reorderGroupByColumns, }: GroupDropZoneProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ interface InlineRowActionsProps {
3
+ onEdit?: () => void;
4
+ onDelete?: () => void;
5
+ canDelete?: boolean;
6
+ onToggleStatus?: () => void;
7
+ isActive?: boolean;
8
+ customActions?: Array<{
9
+ icon: any;
10
+ label: string;
11
+ onClick: () => void;
12
+ }>;
13
+ }
14
+ export declare const InlineRowActions: React.FC<InlineRowActionsProps>;
15
+ export {};
@@ -0,0 +1,19 @@
1
+ import type React from 'react';
2
+ export interface UseColumnDragReorderOptions {
3
+ enabled?: boolean;
4
+ onReorder: (fromIndex: number, toIndex: number) => void;
5
+ }
6
+ export interface UseColumnDragReorderReturn {
7
+ dragFromIndex: number | null;
8
+ dragOverIndex: number | null;
9
+ isDragging: boolean;
10
+ getDragProps: (index: number, columnKey?: string) => {
11
+ draggable: boolean;
12
+ onDragStart: (e: React.DragEvent) => void;
13
+ onDragOver: (e: React.DragEvent) => void;
14
+ onDragEnter: (e: React.DragEvent) => void;
15
+ onDrop: (e: React.DragEvent) => void;
16
+ onDragEnd: () => void;
17
+ };
18
+ }
19
+ export declare function useColumnDragReorder({ enabled, onReorder, }: UseColumnDragReorderOptions): UseColumnDragReorderReturn;
@@ -0,0 +1,56 @@
1
+ import type { CrudColumn, BaseEntity } from '../../types';
2
+ export interface ColumnManagerState {
3
+ hiddenColumns: Set<string>;
4
+ columnOrder: string[];
5
+ groupByColumns: string[];
6
+ }
7
+ export interface UseColumnManagerOptions<T> {
8
+ columns: CrudColumn<T>[];
9
+ storageKey?: string;
10
+ enabled?: boolean;
11
+ }
12
+ export interface UseColumnManagerReturn<T> {
13
+ /** Columns filtered by visibility and reordered */
14
+ visibleColumns: CrudColumn<T>[];
15
+ /** All original columns (for the settings popover) */
16
+ allColumns: CrudColumn<T>[];
17
+ /** Whether a column is hidden */
18
+ isColumnHidden: (key: string) => boolean;
19
+ /** Toggle column visibility */
20
+ toggleColumn: (key: string) => void;
21
+ /** Show all columns */
22
+ showAllColumns: () => void;
23
+ /** Current column order (keys) */
24
+ columnOrder: string[];
25
+ /** Reorder columns */
26
+ reorderColumns: (fromIndex: number, toIndex: number) => void;
27
+ /** @deprecated Use groupByColumns instead */
28
+ groupByColumn: string | null;
29
+ /** @deprecated Use setGroupByColumns / addGroupByColumn instead */
30
+ setGroupByColumn: (key: string | null) => void;
31
+ /** Current group-by columns (ordered, multi-level) */
32
+ groupByColumns: string[];
33
+ /** Set all group-by columns at once */
34
+ setGroupByColumns: (keys: string[]) => void;
35
+ /** Add a column to grouping (appends at end) */
36
+ addGroupByColumn: (key: string) => void;
37
+ /** Remove a column from grouping */
38
+ removeGroupByColumn: (key: string) => void;
39
+ /** Reorder group-by columns */
40
+ reorderGroupByColumns: (fromIndex: number, toIndex: number) => void;
41
+ /** Groups computed from data (supports multi-level) */
42
+ getGroupedData: (data: T[]) => GroupedData<T>[];
43
+ /** Collapsed group keys */
44
+ collapsedGroups: Set<string>;
45
+ /** Toggle group collapse */
46
+ toggleGroupCollapse: (groupKey: string) => void;
47
+ }
48
+ export interface GroupedData<T> {
49
+ groupKey: string;
50
+ groupValue: string;
51
+ items: T[];
52
+ count: number;
53
+ level: number;
54
+ children?: GroupedData<T>[];
55
+ }
56
+ export declare function useColumnManager<T extends BaseEntity>({ columns, storageKey, enabled, }: UseColumnManagerOptions<T>): UseColumnManagerReturn<T>;
@@ -23,4 +23,4 @@
23
23
  import type { TableProps } from './types';
24
24
  export declare function Table<T extends {
25
25
  id: string;
26
- }>({ data, columns, sortField, sortDirection, onSort, onRowClick, renderActions, isLoading, emptyMessage, className, enableSelection, selectedIds, onSelectItem, onSelectAll, isAllSelected, enableColumnResize, onColumnResize, storageKey }: TableProps<T>): import("react/jsx-runtime").JSX.Element;
26
+ }>({ data, columns, sortField, sortDirection, onSort, onRowClick, renderActions, isLoading, emptyMessage, className, enableSelection, selectedIds, onSelectItem, onSelectAll, isAllSelected, enableColumnResize, onColumnResize, enableColumnReorder, onReorderColumns, storageKey }: TableProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import type { TreeNode, TreeTableProps } from './types';
2
+ export declare function TreeTable<T extends TreeNode>({ data, columns, nameKey, nameHeader, iconComponent, expandedIds, onToggleExpand, onRowClick, renderActions, actionsHeader, rowActionsVariant, isLoading, emptyMessage, className, }: TreeTableProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -8,4 +8,5 @@ export { Table } from './Table';
8
8
  export { ActionMenu } from './ActionMenu';
9
9
  export { Pagination } from './Pagination';
10
10
  export { FilterBar } from './FilterBar';
11
- export type { TableProps, TableColumn, ActionMenuProps, ActionItem, PaginationProps, FilterBarProps, } from './types';
11
+ export { TreeTable } from './TreeTable';
12
+ export type { TableProps, TableColumn, ActionMenuProps, ActionItem, PaginationProps, FilterBarProps, TreeNode, TreeTableColumn, TreeTableProps, } from './types';
@@ -30,6 +30,8 @@ export interface TableProps<T> {
30
30
  enableColumnResize?: boolean;
31
31
  columnWidths?: Record<string, number>;
32
32
  onColumnResize?: (widths: Record<string, number>) => void;
33
+ enableColumnReorder?: boolean;
34
+ onReorderColumns?: (fromIndex: number, toIndex: number) => void;
33
35
  storageKey?: string;
34
36
  }
35
37
  export interface ActionItem {
@@ -66,6 +68,37 @@ export interface PaginationProps {
66
68
  onItemsPerPageChange: (limit: number) => void;
67
69
  variant?: 'full' | 'compact';
68
70
  }
71
+ export interface TreeNode {
72
+ id: string;
73
+ children?: TreeNode[];
74
+ [key: string]: any;
75
+ }
76
+ export interface TreeTableColumn<T = any> {
77
+ key: keyof T;
78
+ header: string;
79
+ render?: (item: T, level: number) => React.ReactNode;
80
+ className?: string;
81
+ width?: number;
82
+ /** Conteúdo exibido no HoverCard ao passar o mouse sobre o valor */
83
+ hoverContent?: (item: T) => React.ReactNode;
84
+ }
85
+ export interface TreeTableProps<T extends TreeNode = TreeNode> {
86
+ data: T[];
87
+ columns: TreeTableColumn<T>[];
88
+ nameKey: keyof T;
89
+ nameHeader?: string;
90
+ iconComponent?: React.ReactNode;
91
+ expandedIds: Set<string>;
92
+ onToggleExpand: (id: string) => void;
93
+ onRowClick?: (item: T) => void;
94
+ renderActions?: (item: T) => React.ReactNode;
95
+ actionsHeader?: string;
96
+ /** 'default' mostra sempre; 'inline' mostra apenas no hover (estilo Google Drive) */
97
+ rowActionsVariant?: 'default' | 'inline';
98
+ isLoading?: boolean;
99
+ emptyMessage?: string;
100
+ className?: string;
101
+ }
69
102
  export interface FilterBarProps {
70
103
  searchValue?: string;
71
104
  onSearchChange?: (value: string) => void;
@@ -17,5 +17,6 @@ export { Table as CrudPrimitiveTable } from '../crud/primitives/Table';
17
17
  export { ActionMenu } from '../crud/primitives/ActionMenu';
18
18
  export { Pagination as CrudPrimitivePagination } from '../crud/primitives/Pagination';
19
19
  export { FilterBar as CrudPrimitiveFilterBar } from '../crud/primitives/FilterBar';
20
- export type { TableProps as CrudPrimitiveTableProps, TableColumn, ActionMenuProps, ActionItem, PaginationProps as CrudPrimitivePaginationProps, FilterBarProps as CrudPrimitiveFilterBarProps, } from '../crud/primitives/types';
20
+ export { TreeTable } from '../crud/primitives/TreeTable';
21
+ export type { TableProps as CrudPrimitiveTableProps, TableColumn, ActionMenuProps, ActionItem, PaginationProps as CrudPrimitivePaginationProps, FilterBarProps as CrudPrimitiveFilterBarProps, TreeNode, TreeTableColumn, TreeTableProps, } from '../crud/primitives/types';
21
22
  export * from '../crud/utils/routingHelpers';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Hook que deriva a lista de módulos contratados a partir das associações do usuário.
3
+ * Cruza `association.softwares` com `SOFTWARES_MAP` e `MODULES_DATA`.
4
+ *
5
+ * @param override - Se fornecido, retorna diretamente (bypass da derivação)
6
+ * @returns Lista de nomes de módulos contratados, ou `undefined` se dados indisponíveis
7
+ */
8
+ export declare function useDerivedContractedModules(override?: string[]): string[] | undefined;