@nice2dev/ui 1.0.12 → 1.0.15

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 (76) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +53 -36
  3. package/css/legacy-bg-text-aliases.css +83 -0
  4. package/dist/NiceErrorBoundary-BLTq8mPU.cjs +1 -0
  5. package/dist/NiceErrorBoundary-Bjw5U31n.js +762 -0
  6. package/dist/NiceErrorBoundary-CH8SBcSZ.js +762 -0
  7. package/dist/NiceErrorBoundary-CaVVPLh4.cjs +1 -0
  8. package/dist/NiceForm-CUlhtlHw.js +5357 -0
  9. package/dist/NiceForm-DTgIGX88.cjs +382 -0
  10. package/dist/NiceForm-Dbciuo4w.cjs +382 -0
  11. package/dist/NiceForm-Jf-ufPZz.js +5357 -0
  12. package/dist/NiceForm.css +1 -1
  13. package/dist/NiceModal-Bf1Q1VNL.cjs +1 -0
  14. package/dist/NiceModal-C_t2qqZd.js +95 -0
  15. package/dist/NiceModal-DrywdSv3.js +95 -0
  16. package/dist/NiceModal-FQqBxCij.cjs +1 -0
  17. package/dist/NiceModuleLifecyclePanel-CCFHxKIu.js +6343 -0
  18. package/dist/NiceModuleLifecyclePanel-CDX38sEx.js +6343 -0
  19. package/dist/NiceModuleLifecyclePanel-D8cIOI8I.cjs +1 -0
  20. package/dist/NiceModuleLifecyclePanel-xLrOv8nL.cjs +1 -0
  21. package/dist/NiceModuleLifecyclePanel.css +1 -1
  22. package/dist/NicePagination-Aj63sKV3.js +171 -0
  23. package/dist/NicePagination-BVkkePJU.js +171 -0
  24. package/dist/NicePagination-DGd3Hrh9.cjs +1 -0
  25. package/dist/NicePagination-DNjVutBJ.cjs +1 -0
  26. package/dist/NicePinCodeInput-B_0RCKQN.cjs +419 -0
  27. package/dist/NicePinCodeInput-CDtodnIM.js +11875 -0
  28. package/dist/NicePinCodeInput-Dffu701_.js +11875 -0
  29. package/dist/NicePinCodeInput-DytLfqZL.cjs +419 -0
  30. package/dist/NicePinCodeInput.css +1 -1
  31. package/dist/NiceSavedQueryPanel-4l-V9dGK.js +6446 -0
  32. package/dist/NiceSavedQueryPanel-B5TjD_Sb.cjs +596 -0
  33. package/dist/NiceSavedQueryPanel-CbR3EDQU.cjs +596 -0
  34. package/dist/NiceSavedQueryPanel-DJqCNWYZ.js +6446 -0
  35. package/dist/NiceTabs-B-9_mzpc.js +1624 -0
  36. package/dist/NiceTabs-CHg36waF.cjs +1 -0
  37. package/dist/NiceTabs-CbKhMxbC.cjs +1 -0
  38. package/dist/NiceTabs-HXphGn1B.js +1624 -0
  39. package/dist/NiceWindow-BxGVzUs2.js +1409 -0
  40. package/dist/NiceWindow-Ceb0mZ_0.js +1409 -0
  41. package/dist/NiceWindow-DXpnFZ0E.cjs +1 -0
  42. package/dist/NiceWindow-HhPIzPzs.cjs +1 -0
  43. package/dist/charts-BPJefcE8.js +4645 -0
  44. package/dist/charts-Dr6QyMiv.cjs +761 -0
  45. package/dist/charts-Us8Ep8MJ.cjs +761 -0
  46. package/dist/charts-fO6InNZd.js +4645 -0
  47. package/dist/charts.cjs +1 -1
  48. package/dist/charts.mjs +1 -1
  49. package/dist/core-B-tu8l9M.cjs +96 -0
  50. package/dist/core-BJ_UNMlX.js +22276 -0
  51. package/dist/core-DJ4NPp2B.js +22316 -0
  52. package/dist/core-DPY4m7vb.cjs +96 -0
  53. package/dist/data.cjs +1 -1
  54. package/dist/data.d.ts +7 -0
  55. package/dist/data.mjs +1 -1
  56. package/dist/editors.cjs +1 -1
  57. package/dist/editors.mjs +3 -3
  58. package/dist/feedback.cjs +1 -1
  59. package/dist/feedback.mjs +2 -2
  60. package/dist/index-B-9lbtwJ.cjs +5194 -0
  61. package/dist/index-BNy9Nn0X.js +61422 -0
  62. package/dist/index-DHc_KZkF.js +61311 -0
  63. package/dist/index-drIVMHeC.cjs +5194 -0
  64. package/dist/index.cjs +1 -1
  65. package/dist/index.css +1 -1
  66. package/dist/index.d.ts +1209 -67
  67. package/dist/index.mjs +887 -871
  68. package/dist/lazy.cjs +1 -1
  69. package/dist/lazy.mjs +3 -3
  70. package/dist/navigation.cjs +1 -1
  71. package/dist/navigation.d.ts +309 -70
  72. package/dist/navigation.mjs +92 -91
  73. package/dist/overlays.cjs +1 -1
  74. package/dist/overlays.mjs +36 -36
  75. package/dist/style.css +7 -0
  76. package/package.json +9 -5
package/dist/lazy.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),n=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NiceGitGraph$1).then(e=>({default:e.NiceGitGraph}))),o=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NiceBranchManager$1).then(e=>({default:e.NiceBranchManager}))),l=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NiceGitDiffViewer$1).then(e=>({default:e.NiceGitDiffViewer}))),s=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NiceGitBlame$1).then(e=>({default:e.NiceGitBlame}))),h=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NiceGitConflictResolver$1).then(e=>({default:e.NiceGitConflictResolver}))),c=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NicePipelineEditor$1).then(e=>({default:e.NicePipelineEditor}))),y=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NicePipelineMonitor$1).then(e=>({default:e.NicePipelineMonitor}))),u=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NiceGitHooks$1).then(e=>({default:e.NiceGitHooks}))),z=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NiceMergeRequestBuilder$1).then(e=>({default:e.NiceMergeRequestBuilder}))),d=a.lazy(()=>Promise.resolve().then(()=>require("./no-code-Bb3QFKdm.cjs")).then(e=>e.NiceAPIFlow$1).then(e=>({default:e.NiceAPIFlow}))),f=a.lazy(()=>Promise.resolve().then(()=>require("./no-code-Bb3QFKdm.cjs")).then(e=>e.NiceCodeTemplate$1).then(e=>({default:e.NiceCodeTemplate}))),N=a.lazy(()=>Promise.resolve().then(()=>require("./no-code-Bb3QFKdm.cjs")).then(e=>e.NiceDataMapper$1).then(e=>({default:e.NiceDataMapper}))),L=a.lazy(()=>Promise.resolve().then(()=>require("./no-code-Bb3QFKdm.cjs")).then(e=>e.NiceEventOrchestrator$1).then(e=>({default:e.NiceEventOrchestrator}))),p=a.lazy(()=>Promise.resolve().then(()=>require("./no-code-Bb3QFKdm.cjs")).then(e=>e.NiceStateDesigner$1).then(e=>({default:e.NiceStateDesigner}))),v=a.lazy(()=>Promise.resolve().then(()=>require("./no-code-Bb3QFKdm.cjs")).then(e=>e.NiceTestBuilder$1).then(e=>({default:e.NiceTestBuilder}))),D=a.lazy(()=>Promise.resolve().then(()=>require("./data-branching-B_9C6-hE.cjs")).then(e=>e.NiceDataBranchManager$1).then(e=>({default:e.NiceDataBranchManager}))),P=a.lazy(()=>Promise.resolve().then(()=>require("./data-branching-B_9C6-hE.cjs")).then(e=>e.NiceDataDiffViewer$1).then(e=>({default:e.NiceDataDiffViewer}))),m=a.lazy(()=>Promise.resolve().then(()=>require("./data-branching-B_9C6-hE.cjs")).then(e=>e.NiceDataBranchGraph$1).then(e=>({default:e.NiceDataBranchGraph}))),q=a.lazy(()=>Promise.resolve().then(()=>require("./data-branching-B_9C6-hE.cjs")).then(e=>e.NiceDataMergeBuilder$1).then(e=>({default:e.NiceDataMergeBuilder}))),B=a.lazy(()=>Promise.resolve().then(()=>require("./data-branching-B_9C6-hE.cjs")).then(e=>e.NiceDataConflictResolver$1).then(e=>({default:e.NiceDataConflictResolver}))),M=a.lazy(()=>Promise.resolve().then(()=>require("./data-branching-B_9C6-hE.cjs")).then(e=>e.NiceDataSnapshot$1).then(e=>({default:e.NiceDataSnapshot}))),G=a.lazy(()=>Promise.resolve().then(()=>require("./charts-e10jGjuF.cjs")).then(e=>e.NiceChart$1).then(e=>({default:e.NiceChart}))),g=a.lazy(()=>Promise.resolve().then(()=>require("./charts-e10jGjuF.cjs")).then(e=>e.NiceTreeMap$1).then(e=>({default:e.NiceTreeMap}))),$=a.lazy(()=>Promise.resolve().then(()=>require("./charts-e10jGjuF.cjs")).then(e=>e.NiceSankey$1).then(e=>({default:e.NiceSankey}))),t=()=>{Promise.resolve().then(()=>require("./devops.cjs"))},r=()=>{Promise.resolve().then(()=>require("./no-code.cjs"))},i=()=>{Promise.resolve().then(()=>require("./data-branching.cjs"))},C=()=>{"requestIdleCallback"in window?requestIdleCallback(()=>{t(),r(),i()}):setTimeout(()=>{t(),r(),i()},2e3)};exports.LazyAPIFlow=d;exports.LazyBranchManager=o;exports.LazyChart=G;exports.LazyCodeTemplate=f;exports.LazyDataBranchGraph=m;exports.LazyDataBranchManager=D;exports.LazyDataConflictResolver=B;exports.LazyDataDiffViewer=P;exports.LazyDataMapper=N;exports.LazyDataMergeBuilder=q;exports.LazyDataSnapshot=M;exports.LazyEventOrchestrator=L;exports.LazyGitBlame=s;exports.LazyGitConflictResolver=h;exports.LazyGitDiffViewer=l;exports.LazyGitGraph=n;exports.LazyGitHooks=u;exports.LazyMergeRequestBuilder=z;exports.LazyPipelineEditor=c;exports.LazyPipelineMonitor=y;exports.LazySankey=$;exports.LazyStateDesigner=p;exports.LazyTestBuilder=v;exports.LazyTreemap=g;exports.preloadDataBranching=i;exports.preloadDevOps=t;exports.preloadHeavyModules=C;exports.preloadNoCode=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react"),n=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NiceGitGraph$1).then(e=>({default:e.NiceGitGraph}))),o=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NiceBranchManager$1).then(e=>({default:e.NiceBranchManager}))),l=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NiceGitDiffViewer$1).then(e=>({default:e.NiceGitDiffViewer}))),s=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NiceGitBlame$1).then(e=>({default:e.NiceGitBlame}))),h=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NiceGitConflictResolver$1).then(e=>({default:e.NiceGitConflictResolver}))),c=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NicePipelineEditor$1).then(e=>({default:e.NicePipelineEditor}))),y=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NicePipelineMonitor$1).then(e=>({default:e.NicePipelineMonitor}))),u=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NiceGitHooks$1).then(e=>({default:e.NiceGitHooks}))),z=a.lazy(()=>Promise.resolve().then(()=>require("./devops-CkuTC7RJ.cjs")).then(e=>e.NiceMergeRequestBuilder$1).then(e=>({default:e.NiceMergeRequestBuilder}))),d=a.lazy(()=>Promise.resolve().then(()=>require("./no-code-Bb3QFKdm.cjs")).then(e=>e.NiceAPIFlow$1).then(e=>({default:e.NiceAPIFlow}))),f=a.lazy(()=>Promise.resolve().then(()=>require("./no-code-Bb3QFKdm.cjs")).then(e=>e.NiceCodeTemplate$1).then(e=>({default:e.NiceCodeTemplate}))),N=a.lazy(()=>Promise.resolve().then(()=>require("./no-code-Bb3QFKdm.cjs")).then(e=>e.NiceDataMapper$1).then(e=>({default:e.NiceDataMapper}))),L=a.lazy(()=>Promise.resolve().then(()=>require("./no-code-Bb3QFKdm.cjs")).then(e=>e.NiceEventOrchestrator$1).then(e=>({default:e.NiceEventOrchestrator}))),p=a.lazy(()=>Promise.resolve().then(()=>require("./no-code-Bb3QFKdm.cjs")).then(e=>e.NiceStateDesigner$1).then(e=>({default:e.NiceStateDesigner}))),v=a.lazy(()=>Promise.resolve().then(()=>require("./no-code-Bb3QFKdm.cjs")).then(e=>e.NiceTestBuilder$1).then(e=>({default:e.NiceTestBuilder}))),D=a.lazy(()=>Promise.resolve().then(()=>require("./data-branching-B_9C6-hE.cjs")).then(e=>e.NiceDataBranchManager$1).then(e=>({default:e.NiceDataBranchManager}))),P=a.lazy(()=>Promise.resolve().then(()=>require("./data-branching-B_9C6-hE.cjs")).then(e=>e.NiceDataDiffViewer$1).then(e=>({default:e.NiceDataDiffViewer}))),m=a.lazy(()=>Promise.resolve().then(()=>require("./data-branching-B_9C6-hE.cjs")).then(e=>e.NiceDataBranchGraph$1).then(e=>({default:e.NiceDataBranchGraph}))),q=a.lazy(()=>Promise.resolve().then(()=>require("./data-branching-B_9C6-hE.cjs")).then(e=>e.NiceDataMergeBuilder$1).then(e=>({default:e.NiceDataMergeBuilder}))),B=a.lazy(()=>Promise.resolve().then(()=>require("./data-branching-B_9C6-hE.cjs")).then(e=>e.NiceDataConflictResolver$1).then(e=>({default:e.NiceDataConflictResolver}))),M=a.lazy(()=>Promise.resolve().then(()=>require("./data-branching-B_9C6-hE.cjs")).then(e=>e.NiceDataSnapshot$1).then(e=>({default:e.NiceDataSnapshot}))),G=a.lazy(()=>Promise.resolve().then(()=>require("./charts-Dr6QyMiv.cjs")).then(e=>e.NiceChart$1).then(e=>({default:e.NiceChart}))),g=a.lazy(()=>Promise.resolve().then(()=>require("./charts-Dr6QyMiv.cjs")).then(e=>e.NiceTreeMap$1).then(e=>({default:e.NiceTreeMap}))),$=a.lazy(()=>Promise.resolve().then(()=>require("./charts-Dr6QyMiv.cjs")).then(e=>e.NiceSankey$1).then(e=>({default:e.NiceSankey}))),t=()=>{Promise.resolve().then(()=>require("./devops.cjs"))},r=()=>{Promise.resolve().then(()=>require("./no-code.cjs"))},i=()=>{Promise.resolve().then(()=>require("./data-branching.cjs"))},C=()=>{"requestIdleCallback"in window?requestIdleCallback(()=>{t(),r(),i()}):setTimeout(()=>{t(),r(),i()},2e3)};exports.LazyAPIFlow=d;exports.LazyBranchManager=o;exports.LazyChart=G;exports.LazyCodeTemplate=f;exports.LazyDataBranchGraph=m;exports.LazyDataBranchManager=D;exports.LazyDataConflictResolver=B;exports.LazyDataDiffViewer=P;exports.LazyDataMapper=N;exports.LazyDataMergeBuilder=q;exports.LazyDataSnapshot=M;exports.LazyEventOrchestrator=L;exports.LazyGitBlame=s;exports.LazyGitConflictResolver=h;exports.LazyGitDiffViewer=l;exports.LazyGitGraph=n;exports.LazyGitHooks=u;exports.LazyMergeRequestBuilder=z;exports.LazyPipelineEditor=c;exports.LazyPipelineMonitor=y;exports.LazySankey=$;exports.LazyStateDesigner=p;exports.LazyTestBuilder=v;exports.LazyTreemap=g;exports.preloadDataBranching=i;exports.preloadDevOps=t;exports.preloadHeavyModules=C;exports.preloadNoCode=r;
package/dist/lazy.mjs CHANGED
@@ -48,11 +48,11 @@ const r = t(
48
48
  ), k = t(
49
49
  () => import("./data-branching-BmCKIXgr.js").then((e) => e.k).then((e) => ({ default: e.NiceDataSnapshot }))
50
50
  ), v = t(
51
- () => import("./charts-F_b5-OR8.js").then((e) => e.A).then((e) => ({ default: e.NiceChart }))
51
+ () => import("./charts-BPJefcE8.js").then((e) => e.A).then((e) => ({ default: e.NiceChart }))
52
52
  ), w = t(
53
- () => import("./charts-F_b5-OR8.js").then((e) => e.E).then((e) => ({ default: e.NiceTreeMap }))
53
+ () => import("./charts-BPJefcE8.js").then((e) => e.E).then((e) => ({ default: e.NiceTreeMap }))
54
54
  ), T = t(
55
- () => import("./charts-F_b5-OR8.js").then((e) => e.B).then((e) => ({ default: e.NiceSankey }))
55
+ () => import("./charts-BPJefcE8.js").then((e) => e.B).then((e) => ({ default: e.NiceSankey }))
56
56
  ), a = () => {
57
57
  import("./devops.mjs");
58
58
  }, n = () => {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./NiceModuleLifecyclePanel-Cj4x54sw.cjs"),e=require("react/jsx-runtime"),v=require("./core-CSfXTICE.cjs"),h=require("react"),U=require("./NiceTabs-C4H5un8J.cjs"),V=require("./NicePagination-DGHtXqy1.cjs"),P=h.forwardRef(({items:b,activeKey:N,collapsed:a=!1,width:p=240,collapsedWidth:r=52,onItemClick:k,onCollapseChange:D,header:y,footer:d,size:m="md",className:g,style:M,id:j,accessMode:S,...w},x)=>{const c=v.Ss(j),o=v.Bs(S,j),[l,u]=h.useState(new Set),t=h.useCallback(i=>{u($=>{const s=new Set($);return s.has(i)?s.delete(i):s.add(i),s})},[]);if(o==="hidden")return null;const _=(i,$=0)=>{const s=i.children&&i.children.length>0,E=l.has(i.key),C=i.key===N;return e.jsxs("li",{className:"nice-sidebar-menu__item",children:[e.jsxs("button",{className:`nice-sidebar-menu__btn ${C?"nice-sidebar-menu__btn--active":""} ${i.disabled?"nice-sidebar-menu__btn--disabled":""}`,style:{paddingLeft:a?void 0:12+$*16},onClick:()=>s?t(i.key):k?.(i),disabled:i.disabled,title:a?i.text:void 0,type:"button",children:[i.icon&&e.jsx("span",{className:"nice-sidebar-menu__icon",children:i.icon}),!a&&e.jsx("span",{className:"nice-sidebar-menu__label",children:i.text}),!a&&i.badge!==void 0&&e.jsx("span",{className:"nice-sidebar-menu__badge",children:i.badge}),!a&&s&&e.jsx("span",{className:"nice-sidebar-menu__chevron",children:E?"▾":"▸"})]}),s&&E&&!a&&e.jsx("ul",{className:"nice-sidebar-menu__children",children:i.children.map(T=>_(T,$+1))})]},i.key)};return e.jsxs("nav",{ref:x,id:c,className:`nice-sidebar-menu nice-sidebar-menu--${m} ${a?"nice-sidebar-menu--collapsed":""} ${g??""}`,style:{...M,width:a?r:p},...w,children:[y&&e.jsx("div",{className:"nice-sidebar-menu__header",children:y}),e.jsx("ul",{className:"nice-sidebar-menu__list",role:"list",children:b.map(i=>_(i))}),d&&e.jsx("div",{className:"nice-sidebar-menu__footer",children:d})]})});P.displayName="NiceSidebarMenu";const B=h.forwardRef(({items:b,activeKey:N,onItemClick:a,brand:p,actions:r,size:k="md",className:D,style:y,id:d,accessMode:m,...g},M)=>{const j=v.Ss(d),S=v.Bs(m,d),[w,x]=h.useState(null);return S==="hidden"?null:e.jsxs("nav",{ref:M,id:j,className:`nice-top-menu nice-top-menu--${k} ${D??""}`,style:y,...g,children:[p&&e.jsx("div",{className:"nice-top-menu__brand",children:p}),e.jsx("ul",{className:"nice-top-menu__items",role:"menubar",children:b.map(c=>{const o=c.children&&c.children.length>0,l=w===c.key;return e.jsxs("li",{className:"nice-top-menu__item",onMouseEnter:()=>o&&x(c.key),onMouseLeave:()=>o&&x(null),children:[e.jsxs("button",{className:`nice-top-menu__btn ${c.key===N?"nice-top-menu__btn--active":""}`,onClick:()=>o?x(l?null:c.key):a?.(c),role:"menuitem","aria-haspopup":o,"aria-expanded":l,disabled:c.disabled,type:"button",children:[c.icon&&e.jsx("span",{children:c.icon}),e.jsx("span",{children:c.text}),o&&e.jsx("span",{className:"nice-top-menu__chevron",children:"▾"})]}),o&&l&&e.jsx("ul",{className:"nice-top-menu__dropdown",role:"menu",children:c.children.map(u=>e.jsx("li",{children:e.jsxs("button",{className:`nice-top-menu__dropdown-btn ${u.key===N?"nice-top-menu__dropdown-btn--active":""}`,onClick:()=>{a?.(u),x(null)},disabled:u.disabled,role:"menuitem",type:"button",children:[u.icon&&e.jsx("span",{children:u.icon}),e.jsx("span",{children:u.text}),u.badge!==void 0&&e.jsx("span",{className:"nice-top-menu__badge",children:u.badge})]})},u.key))})]},c.key)})}),r&&e.jsx("div",{className:"nice-top-menu__actions",children:r})]})});B.displayName="NiceTopMenu";const I=h.forwardRef(({tabs:b,activeTab:N,onTabChange:a,onItemClick:p,minimized:r=!1,onMinimizeToggle:k,size:D="md",className:y,style:d,id:m,accessMode:g,...M},j)=>{const S=v.Ss(m),w=v.Bs(g,m),[x,c]=h.useState(N??b[0]?.key),o=N??x,l=b.find(t=>t.key===o),u=h.useCallback(t=>{c(t),a?.(t)},[a]);return w==="hidden"?null:e.jsxs("div",{ref:j,id:S,className:`nice-ribbon-menu nice-ribbon-menu--${D} ${r?"nice-ribbon-menu--minimized":""} ${y??""}`,style:d,...M,children:[e.jsxs("div",{className:"nice-ribbon-menu__tabs",role:"tablist",children:[b.map(t=>e.jsx("button",{className:`nice-ribbon-menu__tab ${t.key===o?"nice-ribbon-menu__tab--active":""}`,onClick:()=>u(t.key),role:"tab","aria-selected":t.key===o,type:"button",children:t.label},t.key)),e.jsx("button",{className:"nice-ribbon-menu__minimize",onClick:()=>k?.(!r),type:"button","aria-label":r?"Expand":"Minimize",children:r?"▼":"▲"})]}),!r&&l&&e.jsx("div",{className:"nice-ribbon-menu__panel",role:"tabpanel",children:l.groups.map((t,_)=>e.jsxs("div",{className:"nice-ribbon-menu__group",children:[e.jsx("div",{className:"nice-ribbon-menu__group-items",children:t.items.map(i=>e.jsxs("button",{className:"nice-ribbon-menu__item",onClick:()=>p?.(i),disabled:i.disabled,type:"button",children:[i.icon&&e.jsx("span",{className:"nice-ribbon-menu__item-icon",children:i.icon}),e.jsx("span",{className:"nice-ribbon-menu__item-label",children:i.text})]},i.key))}),e.jsx("div",{className:"nice-ribbon-menu__group-label",children:t.label})]},_))})]})});I.displayName="NiceRibbonMenu";const L=h.forwardRef(({items:b,activeKey:N,onItemClick:a,position:p="bottom",autoHide:r=!1,iconSize:k=40,size:D="md",className:y,style:d,id:m,accessMode:g,...M},j)=>{const S=v.Ss(m),w=v.Bs(g,m),[x,c]=h.useState(!1),o=!r||x;return w==="hidden"?null:e.jsx("div",{ref:j,id:S,className:`nice-dock-menu nice-dock-menu--${p} nice-dock-menu--${D} ${r&&!o?"nice-dock-menu--hidden":""} ${y??""}`,style:d,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),...M,children:e.jsx("div",{className:"nice-dock-menu__items",children:b.map(l=>e.jsxs("button",{className:`nice-dock-menu__item ${l.key===N?"nice-dock-menu__item--active":""}`,onClick:()=>a?.(l),disabled:l.disabled,title:l.text,type:"button",style:{width:k,height:k},children:[l.icon?e.jsx("span",{className:"nice-dock-menu__icon",children:l.icon}):e.jsx("span",{children:l.text[0]}),l.badge!==void 0&&e.jsx("span",{className:"nice-dock-menu__badge",children:l.badge})]},l.key))})})});L.displayName="NiceDockMenu";const W=h.forwardRef(({items:b,activeKey:N,onItemClick:a,open:p,onOpenChange:r,position:k="left",panelWidth:D=280,header:y,footer:d,size:m="md",className:g,style:M,id:j,accessMode:S,...w},x)=>{const c=v.Ss(j),o=v.Bs(S,j),{t:l}=v.$o(),[u,t]=h.useState(!1),_=p??u,i=h.useCallback(()=>{const s=!_;t(s),r?.(s)},[_,r]),$=h.useCallback(s=>{a?.(s),t(!1),r?.(!1)},[a,r]);return o==="hidden"?null:e.jsxs("div",{ref:x,id:c,className:`nice-hamburger-menu nice-hamburger-menu--${m} ${g??""}`,style:M,...w,children:[e.jsx("button",{className:"nice-hamburger-menu__trigger",onClick:i,"aria-label":l("nav.menu","Menu"),"aria-expanded":_,type:"button",children:e.jsxs("span",{className:`nice-hamburger-menu__icon ${_?"nice-hamburger-menu__icon--open":""}`,children:[e.jsx("span",{}),e.jsx("span",{}),e.jsx("span",{})]})}),_&&e.jsx("div",{className:"nice-hamburger-menu__backdrop",onClick:i,"aria-hidden":!0}),e.jsxs("div",{className:`nice-hamburger-menu__panel nice-hamburger-menu__panel--${k} ${_?"nice-hamburger-menu__panel--open":""}`,style:{width:D},children:[y&&e.jsx("div",{className:"nice-hamburger-menu__header",children:y}),e.jsx("ul",{className:"nice-hamburger-menu__list",role:"menu",children:b.map(s=>e.jsx("li",{children:e.jsxs("button",{className:`nice-hamburger-menu__item ${s.key===N?"nice-hamburger-menu__item--active":""}`,onClick:()=>$(s),disabled:s.disabled,role:"menuitem",type:"button",children:[s.icon&&e.jsx("span",{className:"nice-hamburger-menu__item-icon",children:s.icon}),e.jsx("span",{children:s.text}),s.badge!==void 0&&e.jsx("span",{className:"nice-hamburger-menu__item-badge",children:s.badge})]})},s.key))}),d&&e.jsx("div",{className:"nice-hamburger-menu__footer",children:d})]})]})});W.displayName="NiceHamburgerMenu";const O=h.forwardRef(({canGoBack:b=!1,canGoForward:N=!1,onBack:a,onForward:p,onRefresh:r,enableShortcuts:k=!0,showRefresh:D=!0,showStop:y=!0,isLoading:d=!1,onStop:m,size:g="md",variant:M="default",tooltipPosition:j="bottom",backIcon:S,forwardIcon:w,refreshIcon:x,stopIcon:c,className:o,style:l,id:u,accessMode:t,disabled:_,...i},$)=>{const s=v.Ss(u),E=v.Bs(t,u),{t:C}=v.$o();if(h.useEffect(()=>{if(!k||_)return;const R=f=>{const A=f.altKey,H=f.ctrlKey||f.metaKey;A&&f.key==="ArrowLeft"?(f.preventDefault(),b&&a?.()):A&&f.key==="ArrowRight"?(f.preventDefault(),N&&p?.()):f.key==="F5"||H&&f.key==="r"?(f.preventDefault(),d?m?.():r?.()):f.key==="Escape"&&d&&(f.preventDefault(),m?.())};return window.addEventListener("keydown",R),()=>window.removeEventListener("keydown",R)},[k,_,b,N,d,a,p,r,m]),E==="hidden")return null;const T=E==="disabled"||_,q=S??e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("polyline",{points:"15 18 9 12 15 6"})}),z=w??e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("polyline",{points:"9 18 15 12 9 6"})}),F=x??e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("polyline",{points:"23 4 23 10 17 10"}),e.jsx("path",{d:"M20.49 15a9 9 0 1 1-2.12-9.36L23 10"})]}),K=c??e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]});return e.jsxs("div",{ref:$,id:s,className:`nice-nav-controls nice-nav-controls--${g} nice-nav-controls--${M}${T?" nice-nav-controls--disabled":""}${o?` ${o}`:""}`,style:l,role:"navigation","aria-label":C("nav.controls","Navigation controls"),...i,children:[e.jsx("button",{type:"button",className:`nice-nav-controls__btn nice-nav-controls__btn--back${b?"":" nice-nav-controls__btn--disabled"}`,onClick:a,disabled:T||!b,"aria-label":C("nav.back","Back"),title:`${C("nav.back","Back")} (Alt+←)`,children:q}),e.jsx("button",{type:"button",className:`nice-nav-controls__btn nice-nav-controls__btn--forward${N?"":" nice-nav-controls__btn--disabled"}`,onClick:p,disabled:T||!N,"aria-label":C("nav.forward","Forward"),title:`${C("nav.forward","Forward")} (Alt+→)`,children:z}),(D||y&&d)&&(d?e.jsx("button",{type:"button",className:"nice-nav-controls__btn nice-nav-controls__btn--stop nice-nav-controls__btn--loading",onClick:m,disabled:T,"aria-label":C("nav.stop","Stop"),title:`${C("nav.stop","Stop")} (Esc)`,children:K}):e.jsx("button",{type:"button",className:"nice-nav-controls__btn nice-nav-controls__btn--refresh",onClick:r,disabled:T,"aria-label":C("nav.refresh","Refresh"),title:`${C("nav.refresh","Refresh")} (F5)`,children:F}))]})});O.displayName="NiceNavigationControls";exports.DEFAULT_SIDEBAR_PREFS=n.DEFAULT_SIDEBAR_PREFS;exports.DesktopContextMenu=n.DesktopContextMenu;exports.DesktopGrid=n.DesktopGrid;exports.DesktopStartMenu=n.DesktopStartMenu;exports.DesktopSystemTray=n.DesktopSystemTray;exports.DesktopTaskbar=n.DesktopTaskbar;exports.NiceAccordion=n.NiceAccordion;exports.NiceAppLayout=n.NiceAppLayout;exports.NiceBottomNavigation=n.NiceBottomNavigation;exports.NiceBreadcrumb=n.NiceBreadcrumb;exports.NiceCard=n.NiceCard;exports.NiceClassicShell=n.NiceClassicShell;exports.NiceCompactShell=n.NiceCompactShell;exports.NiceConsole=n.NiceConsole;exports.NiceContextMenu=n.NiceContextMenu;exports.NiceDashboardLayout=n.NiceDashboardLayout;exports.NiceDashboardShell=n.NiceDashboardShell;exports.NiceDesktop=n.NiceDesktop;exports.NiceDock=n.NiceDock;exports.NiceDynamicSidebar=n.NiceDynamicSidebar;exports.NiceHybridShell=n.NiceHybridShell;exports.NiceKioskShell=n.NiceKioskShell;exports.NiceMdiWorkspace=n.NiceMdiWorkspace;exports.NiceMegaMenu=n.NiceMegaMenu;exports.NiceMenu=n.NiceMenu;exports.NiceMinimalShell=n.NiceMinimalShell;exports.NiceModeSelector=n.NiceModeSelector;exports.NiceModernShell=n.NiceModernShell;exports.NiceModuleLifecyclePanel=n.NiceModuleLifecyclePanel;exports.NiceMultiView=n.NiceMultiView;exports.NiceNavbar=n.NiceNavbar;exports.NiceOnboardingWizard=n.NiceOnboardingWizard;exports.NiceOrganizationProfileForm=n.NiceOrganizationProfileForm;exports.NicePwaShell=n.NicePwaShell;exports.NiceSetupWizard=n.NiceSetupWizard;exports.NiceSidebarNav=n.NiceSidebarNav;exports.NiceSplitter=n.NiceSplitter;exports.NiceTabPanel=n.NiceTabPanel;exports.NiceTenantSwitcher=n.NiceTenantSwitcher;exports.NiceToolbar=n.NiceToolbar;exports.NiceUserMenu=n.NiceUserMenu;exports.NiceWizard=n.NiceWizard;exports.SIDEBAR_MODE_META=n.SIDEBAR_MODE_META;exports.NiceTabs=U.NiceTabs;exports.NicePagination=V.NicePagination;exports.NiceDockMenu=L;exports.NiceHamburgerMenu=W;exports.NiceNavigationControls=O;exports.NiceRibbonMenu=I;exports.NiceSidebarMenu=P;exports.NiceTopMenu=B;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./NiceModuleLifecyclePanel-xLrOv8nL.cjs"),e=require("react/jsx-runtime"),v=require("./core-DPY4m7vb.cjs"),_=require("react"),U=require("./NiceTabs-CbKhMxbC.cjs"),V=require("./NicePagination-DNjVutBJ.cjs"),P=_.forwardRef(({items:b,activeKey:N,collapsed:a=!1,width:p=240,collapsedWidth:t=52,onItemClick:k,onCollapseChange:D,header:y,footer:d,size:m="md",className:g,style:M,id:j,accessMode:S,...w},x)=>{const c=v.ks(j),o=v._s(S,j),[l,u]=_.useState(new Set),r=_.useCallback(i=>{u($=>{const s=new Set($);return s.has(i)?s.delete(i):s.add(i),s})},[]);if(o==="hidden")return null;const h=(i,$=0)=>{const s=i.children&&i.children.length>0,E=l.has(i.key),C=i.key===N;return e.jsxs("li",{className:"nice-sidebar-menu__item",children:[e.jsxs("button",{className:`nice-sidebar-menu__btn ${C?"nice-sidebar-menu__btn--active":""} ${i.disabled?"nice-sidebar-menu__btn--disabled":""}`,style:{paddingLeft:a?void 0:12+$*16},onClick:()=>s?r(i.key):k?.(i),disabled:i.disabled,title:a?i.text:void 0,type:"button",children:[i.icon&&e.jsx("span",{className:"nice-sidebar-menu__icon",children:i.icon}),!a&&e.jsx("span",{className:"nice-sidebar-menu__label",children:i.text}),!a&&i.badge!==void 0&&e.jsx("span",{className:"nice-sidebar-menu__badge",children:i.badge}),!a&&s&&e.jsx("span",{className:"nice-sidebar-menu__chevron",children:E?"▾":"▸"})]}),s&&E&&!a&&e.jsx("ul",{className:"nice-sidebar-menu__children",children:i.children.map(T=>h(T,$+1))})]},i.key)};return e.jsxs("nav",{ref:x,id:c,className:`nice-sidebar-menu nice-sidebar-menu--${m} ${a?"nice-sidebar-menu--collapsed":""} ${g??""}`,style:{...M,width:a?t:p},...w,children:[y&&e.jsx("div",{className:"nice-sidebar-menu__header",children:y}),e.jsx("ul",{className:"nice-sidebar-menu__list",role:"list",children:b.map(i=>h(i))}),d&&e.jsx("div",{className:"nice-sidebar-menu__footer",children:d})]})});P.displayName="NiceSidebarMenu";const I=_.forwardRef(({items:b,activeKey:N,onItemClick:a,brand:p,actions:t,size:k="md",className:D,style:y,id:d,accessMode:m,...g},M)=>{const j=v.ks(d),S=v._s(m,d),[w,x]=_.useState(null);return S==="hidden"?null:e.jsxs("nav",{ref:M,id:j,className:`nice-top-menu nice-top-menu--${k} ${D??""}`,style:y,...g,children:[p&&e.jsx("div",{className:"nice-top-menu__brand",children:p}),e.jsx("ul",{className:"nice-top-menu__items",role:"menubar",children:b.map(c=>{const o=c.children&&c.children.length>0,l=w===c.key;return e.jsxs("li",{className:"nice-top-menu__item",onMouseEnter:()=>o&&x(c.key),onMouseLeave:()=>o&&x(null),children:[e.jsxs("button",{className:`nice-top-menu__btn ${c.key===N?"nice-top-menu__btn--active":""}`,onClick:()=>o?x(l?null:c.key):a?.(c),role:"menuitem","aria-haspopup":o,"aria-expanded":l,disabled:c.disabled,type:"button",children:[c.icon&&e.jsx("span",{children:c.icon}),e.jsx("span",{children:c.text}),o&&e.jsx("span",{className:"nice-top-menu__chevron",children:"▾"})]}),o&&l&&e.jsx("ul",{className:"nice-top-menu__dropdown",role:"menu",children:c.children.map(u=>e.jsx("li",{children:e.jsxs("button",{className:`nice-top-menu__dropdown-btn ${u.key===N?"nice-top-menu__dropdown-btn--active":""}`,onClick:()=>{a?.(u),x(null)},disabled:u.disabled,role:"menuitem",type:"button",children:[u.icon&&e.jsx("span",{children:u.icon}),e.jsx("span",{children:u.text}),u.badge!==void 0&&e.jsx("span",{className:"nice-top-menu__badge",children:u.badge})]})},u.key))})]},c.key)})}),t&&e.jsx("div",{className:"nice-top-menu__actions",children:t})]})});I.displayName="NiceTopMenu";const B=_.forwardRef(({tabs:b,activeTab:N,onTabChange:a,onItemClick:p,minimized:t=!1,onMinimizeToggle:k,size:D="md",className:y,style:d,id:m,accessMode:g,...M},j)=>{const S=v.ks(m),w=v._s(g,m),[x,c]=_.useState(N??b[0]?.key),o=N??x,l=b.find(r=>r.key===o),u=_.useCallback(r=>{c(r),a?.(r)},[a]);return w==="hidden"?null:e.jsxs("div",{ref:j,id:S,className:`nice-ribbon-menu nice-ribbon-menu--${D} ${t?"nice-ribbon-menu--minimized":""} ${y??""}`,style:d,...M,children:[e.jsxs("div",{className:"nice-ribbon-menu__tabs",role:"tablist",children:[b.map(r=>e.jsx("button",{className:`nice-ribbon-menu__tab ${r.key===o?"nice-ribbon-menu__tab--active":""}`,onClick:()=>u(r.key),role:"tab","aria-selected":r.key===o,type:"button",children:r.label},r.key)),e.jsx("button",{className:"nice-ribbon-menu__minimize",onClick:()=>k?.(!t),type:"button","aria-label":t?"Expand":"Minimize",children:t?"▼":"▲"})]}),!t&&l&&e.jsx("div",{className:"nice-ribbon-menu__panel",role:"tabpanel",children:l.groups.map((r,h)=>e.jsxs("div",{className:"nice-ribbon-menu__group",children:[e.jsx("div",{className:"nice-ribbon-menu__group-items",children:r.items.map(i=>e.jsxs("button",{className:"nice-ribbon-menu__item",onClick:()=>p?.(i),disabled:i.disabled,type:"button",children:[i.icon&&e.jsx("span",{className:"nice-ribbon-menu__item-icon",children:i.icon}),e.jsx("span",{className:"nice-ribbon-menu__item-label",children:i.text})]},i.key))}),e.jsx("div",{className:"nice-ribbon-menu__group-label",children:r.label})]},h))})]})});B.displayName="NiceRibbonMenu";const L=_.forwardRef(({items:b,activeKey:N,onItemClick:a,position:p="bottom",autoHide:t=!1,iconSize:k=40,size:D="md",className:y,style:d,id:m,accessMode:g,...M},j)=>{const S=v.ks(m),w=v._s(g,m),[x,c]=_.useState(!1),o=!t||x;return w==="hidden"?null:e.jsx("div",{ref:j,id:S,className:`nice-dock-menu nice-dock-menu--${p} nice-dock-menu--${D} ${t&&!o?"nice-dock-menu--hidden":""} ${y??""}`,style:d,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),...M,children:e.jsx("div",{className:"nice-dock-menu__items",children:b.map(l=>e.jsxs("button",{className:`nice-dock-menu__item ${l.key===N?"nice-dock-menu__item--active":""}`,onClick:()=>a?.(l),disabled:l.disabled,title:l.text,type:"button",style:{width:k,height:k},children:[l.icon?e.jsx("span",{className:"nice-dock-menu__icon",children:l.icon}):e.jsx("span",{children:l.text[0]}),l.badge!==void 0&&e.jsx("span",{className:"nice-dock-menu__badge",children:l.badge})]},l.key))})})});L.displayName="NiceDockMenu";const W=_.forwardRef(({items:b,activeKey:N,onItemClick:a,open:p,onOpenChange:t,position:k="left",panelWidth:D=280,header:y,footer:d,size:m="md",className:g,style:M,id:j,accessMode:S,...w},x)=>{const c=v.ks(j),o=v._s(S,j),{t:l}=v.$o(),[u,r]=_.useState(!1),h=p??u,i=_.useCallback(()=>{const s=!h;r(s),t?.(s)},[h,t]),$=_.useCallback(s=>{a?.(s),r(!1),t?.(!1)},[a,t]);return o==="hidden"?null:e.jsxs("div",{ref:x,id:c,className:`nice-hamburger-menu nice-hamburger-menu--${m} ${g??""}`,style:M,...w,children:[e.jsx("button",{className:"nice-hamburger-menu__trigger",onClick:i,"aria-label":l("nav.menu","Menu"),"aria-expanded":h,type:"button",children:e.jsxs("span",{className:`nice-hamburger-menu__icon ${h?"nice-hamburger-menu__icon--open":""}`,children:[e.jsx("span",{}),e.jsx("span",{}),e.jsx("span",{})]})}),h&&e.jsx("div",{className:"nice-hamburger-menu__backdrop",onClick:i,"aria-hidden":!0}),e.jsxs("div",{className:`nice-hamburger-menu__panel nice-hamburger-menu__panel--${k} ${h?"nice-hamburger-menu__panel--open":""}`,style:{width:D},children:[y&&e.jsx("div",{className:"nice-hamburger-menu__header",children:y}),e.jsx("ul",{className:"nice-hamburger-menu__list",role:"menu",children:b.map(s=>e.jsx("li",{children:e.jsxs("button",{className:`nice-hamburger-menu__item ${s.key===N?"nice-hamburger-menu__item--active":""}`,onClick:()=>$(s),disabled:s.disabled,role:"menuitem",type:"button",children:[s.icon&&e.jsx("span",{className:"nice-hamburger-menu__item-icon",children:s.icon}),e.jsx("span",{children:s.text}),s.badge!==void 0&&e.jsx("span",{className:"nice-hamburger-menu__item-badge",children:s.badge})]})},s.key))}),d&&e.jsx("div",{className:"nice-hamburger-menu__footer",children:d})]})]})});W.displayName="NiceHamburgerMenu";const O=_.forwardRef(({canGoBack:b=!1,canGoForward:N=!1,onBack:a,onForward:p,onRefresh:t,enableShortcuts:k=!0,showRefresh:D=!0,showStop:y=!0,isLoading:d=!1,onStop:m,size:g="md",variant:M="default",tooltipPosition:j="bottom",backIcon:S,forwardIcon:w,refreshIcon:x,stopIcon:c,className:o,style:l,id:u,accessMode:r,disabled:h,...i},$)=>{const s=v.ks(u),E=v._s(r,u),{t:C}=v.$o();if(_.useEffect(()=>{if(!k||h)return;const A=f=>{const R=f.altKey,H=f.ctrlKey||f.metaKey;R&&f.key==="ArrowLeft"?(f.preventDefault(),b&&a?.()):R&&f.key==="ArrowRight"?(f.preventDefault(),N&&p?.()):f.key==="F5"||H&&f.key==="r"?(f.preventDefault(),d?m?.():t?.()):f.key==="Escape"&&d&&(f.preventDefault(),m?.())};return window.addEventListener("keydown",A),()=>window.removeEventListener("keydown",A)},[k,h,b,N,d,a,p,t,m]),E==="hidden")return null;const T=E==="disabled"||h,q=S??e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("polyline",{points:"15 18 9 12 15 6"})}),z=w??e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("polyline",{points:"9 18 15 12 9 6"})}),F=x??e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("polyline",{points:"23 4 23 10 17 10"}),e.jsx("path",{d:"M20.49 15a9 9 0 1 1-2.12-9.36L23 10"})]}),K=c??e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]});return e.jsxs("div",{ref:$,id:s,className:`nice-nav-controls nice-nav-controls--${g} nice-nav-controls--${M}${T?" nice-nav-controls--disabled":""}${o?` ${o}`:""}`,style:l,role:"navigation","aria-label":C("nav.controls","Navigation controls"),...i,children:[e.jsx("button",{type:"button",className:`nice-nav-controls__btn nice-nav-controls__btn--back${b?"":" nice-nav-controls__btn--disabled"}`,onClick:a,disabled:T||!b,"aria-label":C("nav.back","Back"),title:`${C("nav.back","Back")} (Alt+←)`,children:q}),e.jsx("button",{type:"button",className:`nice-nav-controls__btn nice-nav-controls__btn--forward${N?"":" nice-nav-controls__btn--disabled"}`,onClick:p,disabled:T||!N,"aria-label":C("nav.forward","Forward"),title:`${C("nav.forward","Forward")} (Alt+→)`,children:z}),(D||y&&d)&&(d?e.jsx("button",{type:"button",className:"nice-nav-controls__btn nice-nav-controls__btn--stop nice-nav-controls__btn--loading",onClick:m,disabled:T,"aria-label":C("nav.stop","Stop"),title:`${C("nav.stop","Stop")} (Esc)`,children:K}):e.jsx("button",{type:"button",className:"nice-nav-controls__btn nice-nav-controls__btn--refresh",onClick:t,disabled:T,"aria-label":C("nav.refresh","Refresh"),title:`${C("nav.refresh","Refresh")} (F5)`,children:F}))]})});O.displayName="NiceNavigationControls";exports.DEFAULT_SIDEBAR_PREFS=n.DEFAULT_SIDEBAR_PREFS;exports.DesktopContextMenu=n.DesktopContextMenu;exports.DesktopGrid=n.DesktopGrid;exports.DesktopStartMenu=n.DesktopStartMenu;exports.DesktopSystemTray=n.DesktopSystemTray;exports.DesktopTaskbar=n.DesktopTaskbar;exports.NiceAccordion=n.NiceAccordion;exports.NiceAppLayout=n.NiceAppLayout;exports.NiceAuthButtons=n.NiceAuthButtons;exports.NiceBottomNavigation=n.NiceBottomNavigation;exports.NiceBreadcrumb=n.NiceBreadcrumb;exports.NiceCard=n.NiceCard;exports.NiceClassicShell=n.NiceClassicShell;exports.NiceCompactShell=n.NiceCompactShell;exports.NiceConsole=n.NiceConsole;exports.NiceContextMenu=n.NiceContextMenu;exports.NiceDashboardLayout=n.NiceDashboardLayout;exports.NiceDashboardShell=n.NiceDashboardShell;exports.NiceDesktop=n.NiceDesktop;exports.NiceDock=n.NiceDock;exports.NiceDynamicSidebar=n.NiceDynamicSidebar;exports.NiceHybridShell=n.NiceHybridShell;exports.NiceKioskShell=n.NiceKioskShell;exports.NiceMdiWorkspace=n.NiceMdiWorkspace;exports.NiceMenu=n.NiceMenu;exports.NiceMinimalShell=n.NiceMinimalShell;exports.NiceModeSelector=n.NiceModeSelector;exports.NiceModernShell=n.NiceModernShell;exports.NiceModuleLifecyclePanel=n.NiceModuleLifecyclePanel;exports.NiceMultiView=n.NiceMultiView;exports.NiceNavMenu=n.NiceNavMenu;exports.NiceNavbar=n.NiceNavbar;exports.NiceOnboardingWizard=n.NiceOnboardingWizard;exports.NiceOrganizationProfileForm=n.NiceOrganizationProfileForm;exports.NicePwaShell=n.NicePwaShell;exports.NiceSetupWizard=n.NiceSetupWizard;exports.NiceSidebarNav=n.NiceSidebarNav;exports.NiceSplitter=n.NiceSplitter;exports.NiceTabPanel=n.NiceTabPanel;exports.NiceTenantSwitcher=n.NiceTenantSwitcher;exports.NiceToolbar=n.NiceToolbar;exports.NiceUserMenu=n.NiceUserMenu;exports.NiceWizard=n.NiceWizard;exports.SIDEBAR_MODE_META=n.SIDEBAR_MODE_META;exports.NiceTabs=U.NiceTabs;exports.NicePagination=V.NicePagination;exports.NiceDockMenu=L;exports.NiceHamburgerMenu=W;exports.NiceNavigationControls=O;exports.NiceRibbonMenu=B;exports.NiceSidebarMenu=P;exports.NiceTopMenu=I;
@@ -16,6 +16,7 @@ import { NiceTabDescriptor } from '@nice2dev/ui-core';
16
16
  import { NiceTenantInfo } from '@nice2dev/ui-core';
17
17
  import { NiceUserMenuResponse } from '@nice2dev/ui-core';
18
18
  import { NiceWorkspaceState } from '@nice2dev/ui-core';
19
+ import { ReactNode } from 'react';
19
20
  import { RefAttributes } from 'react';
20
21
 
21
22
  declare interface ClosedTabEntry {
@@ -116,6 +117,57 @@ export declare interface NiceAppLayoutProps extends NiceBaseProps {
116
117
  footer?: default_2.ReactNode;
117
118
  }
118
119
 
120
+ export declare const NiceAuthButtons: default_2.ForwardRefExoticComponent<NiceAuthButtonsProps & default_2.RefAttributes<HTMLDivElement>>;
121
+
122
+ export declare interface NiceAuthButtonsProps {
123
+ /**
124
+ * Authenticated user — when set, renders the user-menu instead of
125
+ * login/register buttons.
126
+ */
127
+ user?: NiceAuthUser;
128
+ /** Items shown in the user-menu dropdown (only when `user` is set). */
129
+ userMenuItems?: UserMenuItem[];
130
+ /** Convenience handler appended as a "Profile" item if no items are given. */
131
+ onProfile?: () => void;
132
+ /** Convenience handler appended as a "Logout" item if no items are given. */
133
+ onLogout?: () => void;
134
+ /** Show the "Sign in" button when no `user`. Default: `true`. */
135
+ showLogin?: boolean;
136
+ /** Login button label. */
137
+ loginLabel?: string;
138
+ /** Login click handler. */
139
+ onLoginClick?: () => void;
140
+ /** Show the "Register" button when no `user`. Default: auto-true if `onRegisterClick` provided. */
141
+ showRegister?: boolean;
142
+ /** Register button label. */
143
+ registerLabel?: string;
144
+ /** Register click handler. */
145
+ onRegisterClick?: () => void;
146
+ /** Button size. */
147
+ size?: NiceSize;
148
+ /** Compact mode — hides login button text on narrow viewports (CSS-driven). */
149
+ compact?: boolean;
150
+ className?: string;
151
+ style?: default_2.CSSProperties;
152
+ id?: string;
153
+ 'data-testid'?: string;
154
+ }
155
+
156
+ export declare interface NiceAuthUser {
157
+ /** Display name. */
158
+ name: string;
159
+ /** Avatar image URL. */
160
+ avatarUrl?: string;
161
+ /** Initials fallback (auto-derived from `name` when omitted). */
162
+ initials?: string;
163
+ /** Optional email address shown in the user-menu header. */
164
+ email?: string;
165
+ /** Optional role/title shown in the user-menu header. */
166
+ role?: string;
167
+ /** Online status indicator. */
168
+ status?: 'online' | 'away' | 'busy' | 'offline';
169
+ }
170
+
119
171
  export declare const NiceBottomNavigation: default_2.ForwardRefExoticComponent<NiceBottomNavigationProps & default_2.RefAttributes<HTMLDivElement>>;
120
172
 
121
173
  /** A navigation item in the {@link NiceBottomNavigation} bar. */
@@ -605,88 +657,158 @@ export declare interface NiceMdiWorkspaceProps extends NiceBaseProps {
605
657
  unsavedWarningMessage?: string;
606
658
  }
607
659
 
608
- export declare const NiceMegaMenu: default_2.ForwardRefExoticComponent<NiceMegaMenuProps & default_2.RefAttributes<HTMLDivElement>>;
660
+ export declare const NiceMenu: default_2.FC<NiceMenuProps>;
609
661
 
610
- /** A column within a {@link NiceMegaMenuPanel}. */
611
- declare interface NiceMegaMenuColumn {
612
- /** Optional column header text. */
613
- header?: string;
614
- /** Menu items in this column. */
615
- items: NiceMegaMenuItem[];
616
- }
662
+ export declare type NiceMenuAlign = 'start' | 'center' | 'end';
617
663
 
618
- /** A clickable item inside a {@link NiceMegaMenuColumn}. */
619
- declare interface NiceMegaMenuItem {
620
- /** Unique key. */
621
- key: string;
622
- /** Display label. */
623
- label: string;
624
- /** Optional icon. */
625
- icon?: default_2.ReactNode;
626
- /** If set, renders the item as a link. */
627
- href?: string;
628
- /** Click handler. */
629
- onClick?: () => void;
630
- /** Disable the item. */
631
- disabled?: boolean;
632
- }
664
+ export declare type NiceMenuDensity = 'compact' | 'normal' | 'comfortable';
633
665
 
634
- /** A top-level panel (mega dropdown) in the {@link NiceMegaMenu}. */
635
- declare interface NiceMegaMenuPanel {
636
- /** Unique key. */
666
+ export declare interface NiceMenuGroupItem extends Omit<NiceMenuItem, 'children' | 'key' | 'text'> {
667
+ /** Required identifier (these legacy menu variants assume a stable key per item). */
637
668
  key: string;
638
- /** Panel trigger label. */
639
- label: string;
640
- /** Multi-column layout. */
641
- columns: NiceMegaMenuColumn[];
642
- /** Fully custom panel renderer (overrides columns). */
643
- renderPanel?: () => default_2.ReactNode;
644
- }
645
-
646
- /** Props for the {@link NiceMegaMenu} component — a desktop mega-dropdown navigation bar. */
647
- export declare interface NiceMegaMenuProps extends NiceBaseProps {
648
- /** Panel definitions. */
649
- items: NiceMegaMenuPanel[];
650
- /** Size preset. */
651
- size?: NiceSize;
652
- }
653
-
654
- export declare const NiceMenu: default_2.FC<NiceMenuProps>;
655
-
656
- export declare interface NiceMenuGroupItem extends NiceMenuItem {
669
+ /** Required label text (these legacy menu variants assume a string label per item). */
670
+ text: string;
657
671
  children?: NiceMenuGroupItem[];
658
672
  badge?: string | number;
659
673
  section?: string;
660
674
  }
661
675
 
662
- /** A single item (or sub-menu) in the {@link NiceMenu}. */
663
- declare interface NiceMenuItem {
664
- /** Unique key. */
665
- key: string;
666
- /** Display text. */
667
- text: string;
668
- /** Icon element. */
676
+ /**
677
+ * A single entry in {@link NiceMenu}. Both legacy (`key` + `text` + `items`)
678
+ * and new (`id` + `label` + `children`) shapes are accepted; new fields
679
+ * take precedence when both are supplied.
680
+ */
681
+ export declare interface NiceMenuItem {
682
+ /** New canonical identifier. */
683
+ id?: string;
684
+ /** Legacy alias for `id`. */
685
+ key?: string;
686
+ /** New canonical label (string or arbitrary node). */
687
+ label?: default_2.ReactNode;
688
+ /** Legacy alias for `label`. */
689
+ text?: string;
690
+ /** Optional small description shown under the label inside dropdown panels. */
691
+ description?: default_2.ReactNode;
692
+ /** Leading icon. */
669
693
  icon?: default_2.ReactNode;
670
- /** Disable this item. */
694
+ /** Optional badge (string / number) shown to the right of the label. */
695
+ badge?: default_2.ReactNode;
696
+ /** When set, renders the entry as an `<a>`. */
697
+ href?: string;
698
+ /** Anchor target. */
699
+ target?: string;
700
+ /** Anchor rel. */
701
+ rel?: string;
702
+ /** Click handler. */
703
+ onClick?: (event: default_2.MouseEvent) => void;
704
+ /** Disable the entry. */
671
705
  disabled?: boolean;
672
- /** Nested sub-menu items. */
706
+ /** Render the entry as a danger / destructive action. */
707
+ danger?: boolean;
708
+ /** When `true`, render a horizontal divider instead of an entry (panel-only). */
709
+ divider?: boolean;
710
+ /** New canonical children list (only the first level of nesting opens a flyout). */
711
+ children?: NiceMenuItem[];
712
+ /** Legacy alias for `children`. */
673
713
  items?: NiceMenuItem[];
674
- /** Click handler. */
675
- onClick?: () => void;
714
+ /** Tooltip / `aria-label` override. */
715
+ ariaLabel?: string;
676
716
  }
677
717
 
678
- /** Props for the {@link NiceMenu} component — a horizontal or vertical navigation menu with nested sub-menus. */
718
+ export declare type NiceMenuOrientation = 'horizontal' | 'vertical';
719
+
679
720
  export declare interface NiceMenuProps extends NiceBaseProps {
680
- /** Size variant. */
681
- size?: NiceSize;
682
721
  /** Menu items. */
683
722
  items: NiceMenuItem[];
684
723
  /** Layout direction. */
685
- orientation?: 'horizontal' | 'vertical';
686
- /** Called when any item is clicked. */
687
- onItemClick?: (item: NiceMenuItem) => void;
724
+ orientation?: NiceMenuOrientation;
725
+ /** Visual style. */
726
+ variant?: NiceMenuVariant;
727
+ /** Density preset (paddings + font size). */
728
+ density?: NiceMenuDensity;
729
+ /** Size preset. */
730
+ size?: NiceSize;
731
+ /** Stretch top-level items to fill the container. */
732
+ fullWidth?: boolean;
733
+ /** Show vertical separators between top items. */
734
+ showDividers?: boolean;
735
+ /** Top-item alignment for dropdown panels. */
736
+ panelAlign?: NiceMenuAlign;
737
+ /** Min width for dropdown / sub-panel (px). */
738
+ panelMinWidth?: number;
739
+ /** Max width for dropdown / sub-panel (px). */
740
+ panelMaxWidth?: number;
741
+ /**
742
+ * Gap (in px or any CSS length) between top-level items. Use `0` for
743
+ * a fully flush bar (e.g. tab-bar look). Default: density-driven (`4px`).
744
+ */
745
+ itemGap?: number | string;
746
+ /**
747
+ * Horizontal padding inside each top-level button. Overrides density.
748
+ * Accepts a number (treated as `px`) or any CSS length.
749
+ */
750
+ paddingX?: number | string;
751
+ /**
752
+ * Vertical padding inside each top-level button. Overrides density.
753
+ * Accepts a number (treated as `px`) or any CSS length.
754
+ */
755
+ paddingY?: number | string;
756
+ /**
757
+ * Render dropdown / sub-panels in a `document.body` portal so the menu
758
+ * never gets clipped by `overflow: hidden` ancestors. Default: `true`.
759
+ * Set `false` to fall back to the legacy absolute-positioned panel.
760
+ */
761
+ portal?: boolean;
762
+ /**
763
+ * z-index applied to the portalled dropdown panel. Default: `1100`.
764
+ */
765
+ panelZIndex?: number;
766
+ /** Custom arrow node for items with children. Default: `▾`. */
767
+ arrowIcon?: default_2.ReactNode;
768
+ /** Custom flyout arrow shown next to nested items. Default: `▸`. */
769
+ flyoutArrowIcon?: default_2.ReactNode;
770
+ /** Close the panel after selecting any leaf entry. Default: `true`. */
771
+ closeOnSelect?: boolean;
772
+ /**
773
+ * How to open dropdown panels:
774
+ * - `click` (default) — toggle on trigger click only.
775
+ * - `hover` — open on pointer-enter, close on pointer-leave (after `closeDelay`).
776
+ * - `both` — opens on hover *and* click (best-of-both for mega-menus).
777
+ */
778
+ openTrigger?: 'click' | 'hover' | 'both';
779
+ /** Delay (ms) before opening on hover. Default: `120`. */
780
+ openDelay?: number;
781
+ /** Delay (ms) before closing after pointer leaves the menu+panel. Default: `180`. */
782
+ closeDelay?: number;
783
+ /** Notified whenever the open trigger id changes (null = closed). */
784
+ onOpenChange?: (id: string | null) => void;
785
+ /** Highlight the matching id (or any of its ancestors). */
786
+ activeId?: string;
787
+ /** Legacy alias for `activeId`. */
788
+ activeKey?: string;
789
+ /** Called when any leaf is clicked. */
790
+ onItemClick?: (item: NiceMenuItem, event: default_2.MouseEvent) => void;
791
+ /** Accessible name for the wrapper `<nav>`. */
792
+ ariaLabel?: string;
793
+ /** Optional renderer for top-level trigger label (allows wrapping with i18n components). */
794
+ renderTriggerLabel?: (item: NiceMenuItem) => default_2.ReactNode;
795
+ /** Optional renderer for panel-entry label. */
796
+ renderEntryLabel?: (item: NiceMenuItem) => default_2.ReactNode;
688
797
  }
689
798
 
799
+ /**
800
+ * Visual style for top-level triggers.
801
+ * - `separated` — soft buttons with gap (default-ish)
802
+ * - `group` — flush button-group with shared border
803
+ * - `pills` — rounded pills, primary fill on active
804
+ * - `ghost` — chrome-less, hover only (used by NiceTopNav)
805
+ * - `solid` — opaque buttons on `--bg-elevated`
806
+ * - `underline` — flat with animated underline on hover/active
807
+ * - `tabs` — tab-bar look (top-rounded, bottom border)
808
+ * - `glass` — translucent blurred background
809
+ */
810
+ export declare type NiceMenuVariant = 'separated' | 'group' | 'pills' | 'ghost' | 'solid' | 'underline' | 'tabs' | 'glass' | 'bordered' | 'borderless';
811
+
690
812
  export declare const NiceMinimalShell: ForwardRefExoticComponent<NiceMinimalShellProps & RefAttributes<HTMLDivElement>>;
691
813
 
692
814
  export declare interface NiceMinimalShellProps extends NiceBaseProps {
@@ -883,6 +1005,97 @@ export declare interface NiceNavigationControlsProps extends NiceBaseProps {
883
1005
  stopIcon?: React.ReactNode;
884
1006
  }
885
1007
 
1008
+ export declare const NiceNavMenu: default_2.ForwardRefExoticComponent<NiceNavMenuProps & default_2.RefAttributes<HTMLElement>>;
1009
+
1010
+ export declare type NiceNavMenuAlign = 'start' | 'end' | 'auto';
1011
+
1012
+ export declare interface NiceNavMenuItem {
1013
+ /** Stable id used for active-marking and keyboard focus. */
1014
+ id: string;
1015
+ /** Displayed label. */
1016
+ label: default_2.ReactNode;
1017
+ /** Optional icon (emoji, SVG node, NiceIcon). */
1018
+ icon?: default_2.ReactNode;
1019
+ /** Navigation href (rendered as `<a>` when no children). */
1020
+ href?: string;
1021
+ /** Anchor `target` attribute (only when `href` is set). */
1022
+ target?: '_self' | '_blank' | '_parent' | '_top';
1023
+ /** Anchor `rel` attribute (only when `href` is set). */
1024
+ rel?: string;
1025
+ /** Click handler (rendered as `<button>` when no `href`). */
1026
+ onClick?: (e: default_2.MouseEvent) => void;
1027
+ /** Disable the item. */
1028
+ disabled?: boolean;
1029
+ /** Render as a danger action (red text). */
1030
+ danger?: boolean;
1031
+ /** Render as a divider (label/icon ignored). */
1032
+ divider?: boolean;
1033
+ /** Optional badge node rendered to the right of the label. */
1034
+ badge?: default_2.ReactNode;
1035
+ /** Optional secondary text shown under the label inside dropdowns. */
1036
+ description?: string;
1037
+ /** Sub-items (only honored at level-1 to produce a level-2 flyout). */
1038
+ children?: NiceNavMenuItem[];
1039
+ /**
1040
+ * **Mega menu** — when set on a top-level item, opens a FULL-WIDTH panel
1041
+ * anchored to the bar's bottom edge instead of a floating dropdown. Use for
1042
+ * marketing/SaaS navs where you want rich multi-column content.
1043
+ *
1044
+ * Either pass a ready `megaPanel` JSX node, or use the structured
1045
+ * `megaColumns` shorthand which renders a clean column-based layout for you.
1046
+ * Both can be set; `megaPanel` wins.
1047
+ */
1048
+ megaPanel?: default_2.ReactNode | (() => default_2.ReactNode);
1049
+ /** Structured mega-menu data — rendered as columns of items. */
1050
+ megaColumns?: NiceNavMenuMegaColumn[];
1051
+ /** Optional footer node rendered at the bottom of the mega panel (CTA strip). */
1052
+ megaFooter?: default_2.ReactNode;
1053
+ }
1054
+
1055
+ /** A single column of items inside a mega-menu panel. */
1056
+ declare interface NiceNavMenuMegaColumn {
1057
+ /** Optional column heading. */
1058
+ title?: default_2.ReactNode;
1059
+ /** Items rendered in the column (no nested mega; each is a simple item). */
1060
+ items: NiceNavMenuItem[];
1061
+ /** Optional footer node under this column (e.g. "View all" link). */
1062
+ footer?: default_2.ReactNode;
1063
+ }
1064
+
1065
+ export declare interface NiceNavMenuProps {
1066
+ /** Top-level items. */
1067
+ items: NiceNavMenuItem[];
1068
+ /** Currently active item id (matched against any nested item id). */
1069
+ activeId?: string;
1070
+ /** Size scale. Default `'md'`. */
1071
+ size?: NiceNavMenuSize;
1072
+ /** Dropdown panel alignment. Default `'start'`. */
1073
+ align?: NiceNavMenuAlign;
1074
+ /** Accessible label for the surrounding `<nav>`. */
1075
+ ariaLabel?: string;
1076
+ /** Render full-width (top-level items stretch to fill). Default `false`. */
1077
+ stretch?: boolean;
1078
+ /**
1079
+ * How top-level dropdowns / mega-panels open. Default `'click'` for backward
1080
+ * compatibility. Set to `'hover'` to get the classical desktop mega-menu
1081
+ * pattern (Apple / Microsoft / Stripe) — opens on mouse-enter, closes after
1082
+ * a short grace delay so the cursor can travel into the panel.
1083
+ */
1084
+ trigger?: 'click' | 'hover';
1085
+ /** Hover-close grace delay in ms. Default 150. Only used when `trigger='hover'`. */
1086
+ hoverCloseDelay?: number;
1087
+ /** Pass-through className. */
1088
+ className?: string;
1089
+ /** Pass-through style. */
1090
+ style?: default_2.CSSProperties;
1091
+ /** Pass-through id. */
1092
+ id?: string;
1093
+ /** Test id. */
1094
+ 'data-testid'?: string;
1095
+ }
1096
+
1097
+ export declare type NiceNavMenuSize = 'sm' | 'md' | 'lg';
1098
+
886
1099
  export declare const NiceOnboardingWizard: ForwardRefExoticComponent<NiceOnboardingWizardProps & RefAttributes<HTMLDivElement>>;
887
1100
 
888
1101
  export declare interface NiceOnboardingWizardProps extends NiceBaseProps {
@@ -1181,10 +1394,36 @@ export declare interface NiceSidebarNavProps {
1181
1394
  onPreferencesChange?: (prefs: SidebarNavUserPrefs) => void;
1182
1395
  /** Sidebar width in px (default: 264) */
1183
1396
  width?: number;
1397
+ /** Sidebar width in px when collapsed/icon-only (default: 56). */
1398
+ collapsedWidth?: number;
1399
+ /**
1400
+ * Which side of the screen the sidebar is anchored to. Default `'left'`.
1401
+ * `'right'` flips the chevron direction and pushes the footer-toggle to the
1402
+ * left edge — useful for RTL or right-side admin shells.
1403
+ */
1404
+ position?: 'left' | 'right';
1405
+ /**
1406
+ * **Minimal mode** — hides the mode strip, sources, favorites and footer
1407
+ * preferences, leaving only the navigation tree. Use for stripped-down
1408
+ * shells (auth flows, embedded views) where the full taxonomy is overkill.
1409
+ * Default `false`.
1410
+ */
1411
+ minimal?: boolean;
1412
+ /** Optional header slot rendered above the mode strip / tree (e.g. workspace switcher). */
1413
+ header?: ReactNode;
1414
+ /** Optional footer slot rendered below the standard footer-toggle row. */
1415
+ footerExtra?: ReactNode;
1184
1416
  /** Collapsed (icon-only) mode */
1185
1417
  collapsed?: boolean;
1186
1418
  /** Called when collapsed state changes (for toggle button) */
1187
1419
  onCollapsedChange?: (collapsed: boolean) => void;
1420
+ /**
1421
+ * When `true` (default), users can still expand/collapse module branches
1422
+ * even while the sidebar itself is in icon-only collapsed mode (chevrons
1423
+ * stay visible). When `false`, all branches are forced flat / always-open
1424
+ * in collapsed mode (legacy behaviour).
1425
+ */
1426
+ expandableWhenCollapsed?: boolean;
1188
1427
  /** Extra CSS class on the root element */
1189
1428
  className?: string;
1190
1429
  /** Size variant */
@@ -1591,9 +1830,9 @@ declare interface SetupWizardStep {
1591
1830
  estimatedTime?: string;
1592
1831
  }
1593
1832
 
1594
- /** Icon/label for each mode */
1833
+ /** Icon (ReactNode) + label for each mode. Icons are theme-reactive (use currentColor). */
1595
1834
  export declare const SIDEBAR_MODE_META: Record<SidebarNavMode, {
1596
- icon: string;
1835
+ icon: ReactNode;
1597
1836
  label: string;
1598
1837
  }>;
1599
1838
 
@@ -1617,7 +1856,7 @@ export declare interface SidebarNavDataNode {
1617
1856
  export declare interface SidebarNavDataSource {
1618
1857
  id: string;
1619
1858
  label: string;
1620
- icon?: string;
1859
+ icon?: ReactNode;
1621
1860
  color?: string;
1622
1861
  /** Server URL or connection string hint */
1623
1862
  url?: string;
@@ -1628,7 +1867,7 @@ export declare interface SidebarNavDataSource {
1628
1867
  export declare interface SidebarNavFavorite {
1629
1868
  id: string;
1630
1869
  label: string;
1631
- icon?: string;
1870
+ icon?: ReactNode;
1632
1871
  route?: string;
1633
1872
  sourceId?: string;
1634
1873
  moduleId?: string;
@@ -1651,7 +1890,7 @@ export declare type SidebarNavMode = 'all' | 'by-role' | 'by-unit' | 'favorites'
1651
1890
  export declare interface SidebarNavModule {
1652
1891
  id: string;
1653
1892
  label: string;
1654
- icon?: string;
1893
+ icon?: ReactNode;
1655
1894
  views: SidebarNavView[];
1656
1895
  /** Source this module belongs to */
1657
1896
  sourceId?: string;
@@ -1661,7 +1900,7 @@ export declare interface SidebarNavModule {
1661
1900
  export declare interface SidebarNavRole {
1662
1901
  id: string;
1663
1902
  label: string;
1664
- icon?: string;
1903
+ icon?: ReactNode;
1665
1904
  modules: SidebarNavModule[];
1666
1905
  /** Source this role belongs to */
1667
1906
  sourceId?: string;
@@ -1671,7 +1910,7 @@ export declare interface SidebarNavRole {
1671
1910
  export declare interface SidebarNavUnit {
1672
1911
  id: string;
1673
1912
  label: string;
1674
- icon?: string;
1913
+ icon?: ReactNode;
1675
1914
  modules: SidebarNavModule[];
1676
1915
  /** Source this unit belongs to */
1677
1916
  sourceId?: string;
@@ -1708,7 +1947,7 @@ export declare interface SidebarNavUserPrefs {
1708
1947
  export declare interface SidebarNavView {
1709
1948
  id: string;
1710
1949
  label: string;
1711
- icon?: string;
1950
+ icon?: ReactNode;
1712
1951
  /** Route path for navigation */
1713
1952
  route?: string;
1714
1953
  /** Badge counter (unread notifications, pending tasks, …) */