@flamingo-stack/openframe-frontend-core 0.0.838 → 0.0.840

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 (137) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{chunk-JFR3OFE6.cjs → chunk-275AQ6LC.cjs} +6 -6
  3. package/dist/{chunk-5BM7X4GA.cjs → chunk-5GBLXY5F.cjs} +2 -2
  4. package/dist/{chunk-5L3UKDC6.cjs → chunk-6LDL3UZE.cjs} +9 -9
  5. package/dist/{chunk-SWMUW3RR.cjs → chunk-744JXTDP.cjs} +19 -19
  6. package/dist/{chunk-46LATWQR.cjs → chunk-7WKRMJI6.cjs} +5 -5
  7. package/dist/{chunk-2X5LYDNA.cjs → chunk-AT6D7BAZ.cjs} +5 -5
  8. package/dist/{chunk-C4OQIYGW.cjs → chunk-CCRXBFNL.cjs} +8 -8
  9. package/dist/{chunk-LC65AC6M.cjs → chunk-COWMXUHN.cjs} +2 -0
  10. package/dist/{chunk-5E4YEHHO.cjs → chunk-DGY5KEPY.cjs} +55 -55
  11. package/dist/{chunk-B4THEQOW.cjs → chunk-DYDQLS2R.cjs} +744 -561
  12. package/dist/{chunk-LWMWY3JO.cjs → chunk-E7M54JWW.cjs} +14 -14
  13. package/dist/{chunk-Z7A7IZWL.cjs → chunk-EV6BPF47.cjs} +236 -210
  14. package/dist/{chunk-7XRFAHJF.cjs → chunk-FHI4I3TQ.cjs} +9 -9
  15. package/dist/{chunk-ZABZIM2Y.cjs → chunk-FRL2ZN4O.cjs} +3 -3
  16. package/dist/{chunk-7Z536SPR.cjs → chunk-FW7RKWPY.cjs} +15 -1
  17. package/dist/{chunk-U4MJ2Z4V.cjs → chunk-GMK4JGC2.cjs} +46 -46
  18. package/dist/{chunk-NV5AHL4G.cjs → chunk-GUKFMMDZ.cjs} +3 -3
  19. package/dist/{chunk-JI34QKPJ.cjs → chunk-HXTZZE3R.cjs} +253 -131
  20. package/dist/{chunk-MMPMQUQM.cjs → chunk-IELPVUPR.cjs} +18 -18
  21. package/dist/{chunk-64PF3UC7.cjs → chunk-INBFKUZA.cjs} +17 -17
  22. package/dist/{chunk-APOMNC7H.cjs → chunk-IUDBG3HJ.cjs} +3 -3
  23. package/dist/{chunk-4JHO2NVI.cjs → chunk-J2IXYCEH.cjs} +26 -10
  24. package/dist/{chunk-V322TUBY.cjs → chunk-JM2XA7VY.cjs} +28 -28
  25. package/dist/{chunk-GPXKG34G.cjs → chunk-JUEAZCD6.cjs} +46 -46
  26. package/dist/{chunk-2QAUQPGC.cjs → chunk-MYAPG3FQ.cjs} +21 -21
  27. package/dist/{chunk-GRHF5SWL.cjs → chunk-NFNSPLGC.cjs} +3 -3
  28. package/dist/{chunk-4TUHHKLR.cjs → chunk-Q6WUHYOG.cjs} +72 -72
  29. package/dist/{chunk-H3WTYAVR.cjs → chunk-RSJYTQEA.cjs} +30 -30
  30. package/dist/{chunk-MG3HJIGG.cjs → chunk-UAI4VMEF.cjs} +4 -4
  31. package/dist/{chunk-S5RMRQKT.cjs → chunk-UZPYYHF5.cjs} +18 -18
  32. package/dist/{chunk-TMD55O5U.cjs → chunk-VBH2RCFM.cjs} +73 -73
  33. package/dist/{chunk-FNNDGOR3.cjs → chunk-WCK5T3UD.cjs} +43 -43
  34. package/dist/{chunk-TRZEFT2N.cjs → chunk-WI7EXAZT.cjs} +9 -5
  35. package/dist/{chunk-7QNGILIY.cjs → chunk-Z35PL3UR.cjs} +32 -32
  36. package/dist/{chunk-ENK75WN4.cjs → chunk-ZAO5SYBJ.cjs} +4 -4
  37. package/dist/{cloud-tenants-GLPDB2F5.cjs → cloud-tenants-PV63RZ73.cjs} +19 -19
  38. package/dist/components/case-studies/index.cjs +33 -33
  39. package/dist/components/chat/chat-nav-sidebar.d.ts.map +1 -1
  40. package/dist/components/chat/chat-nav-sidebar.js +17 -3
  41. package/dist/components/chat/index.cjs +13 -13
  42. package/dist/components/contact/index.cjs +20 -20
  43. package/dist/components/docs/index.cjs +23 -23
  44. package/dist/components/embeds/index.cjs +20 -20
  45. package/dist/components/faq/index.cjs +21 -21
  46. package/dist/components/features/command-box.d.ts.map +1 -1
  47. package/dist/components/features/command-box.js +4 -23
  48. package/dist/components/features/index.cjs +29 -19
  49. package/dist/components/features/software/index.d.ts +1 -0
  50. package/dist/components/features/software/index.d.ts.map +1 -1
  51. package/dist/components/features/software/index.js +12 -0
  52. package/dist/components/features/software/software-action-form.d.ts +9 -1
  53. package/dist/components/features/software/software-action-form.d.ts.map +1 -1
  54. package/dist/components/features/software/software-action-form.js +18 -1
  55. package/dist/components/features/software/update-settings-fields.d.ts +43 -0
  56. package/dist/components/features/software/update-settings-fields.d.ts.map +1 -0
  57. package/dist/components/features/software/update-settings-fields.js +202 -0
  58. package/dist/components/help-center-pages/download-apps-page.d.ts +1 -1
  59. package/dist/components/help-center-pages/download-apps-page.d.ts.map +1 -1
  60. package/dist/components/help-center-pages/download-apps-page.js +2 -3
  61. package/dist/components/help-center-pages/index.cjs +122 -123
  62. package/dist/components/index.cjs +86 -76
  63. package/dist/components/meeting-scheduler/index.cjs +82 -82
  64. package/dist/components/navigation/account-popover.d.ts.map +1 -1
  65. package/dist/components/navigation/account-popover.js +26 -2
  66. package/dist/components/navigation/app-layout-side-panel.d.ts.map +1 -1
  67. package/dist/components/navigation/app-layout-side-panel.js +2 -9
  68. package/dist/components/navigation/index.cjs +22 -22
  69. package/dist/components/navigation/navigation-sidebar-grouped.d.ts.map +1 -1
  70. package/dist/components/navigation/navigation-sidebar-grouped.js +30 -6
  71. package/dist/components/navigation/navigation-sidebar-item.d.ts.map +1 -1
  72. package/dist/components/navigation/navigation-sidebar-item.js +14 -1
  73. package/dist/components/navigation/navigation-sidebar.d.ts.map +1 -1
  74. package/dist/components/navigation/navigation-sidebar.js +72 -3
  75. package/dist/components/onboarding-guides/index.cjs +22 -22
  76. package/dist/components/product-demo/fixtures/software-update.d.ts +2 -0
  77. package/dist/components/product-demo/fixtures/software-update.d.ts.map +1 -1
  78. package/dist/components/product-demo/fixtures/software-update.js +3 -2
  79. package/dist/components/product-demo/index.cjs +30 -30
  80. package/dist/components/related-content/index.cjs +8 -8
  81. package/dist/components/tickets/index.cjs +24 -24
  82. package/dist/components/ui/index.cjs +19 -19
  83. package/dist/components/ui/panel-resize-handle.d.ts +27 -6
  84. package/dist/components/ui/panel-resize-handle.d.ts.map +1 -1
  85. package/dist/components/ui/panel-resize-handle.js +27 -3
  86. package/dist/{devices-GHPW5WCO.cjs → devices-VECG5JNC.cjs} +20 -20
  87. package/dist/{embeddable-chat-RBC7F4TL.cjs → embeddable-chat-VRYAQQF6.cjs} +90 -90
  88. package/dist/hooks/index.cjs +11 -7
  89. package/dist/hooks/ui/index.d.ts +1 -0
  90. package/dist/hooks/ui/index.d.ts.map +1 -1
  91. package/dist/hooks/ui/index.js +1 -0
  92. package/dist/hooks/ui/use-clipped-label-tooltip.d.ts +14 -0
  93. package/dist/hooks/ui/use-clipped-label-tooltip.d.ts.map +1 -0
  94. package/dist/hooks/ui/use-clipped-label-tooltip.js +13 -0
  95. package/dist/hooks/ui/use-is-truncated.d.ts.map +1 -1
  96. package/dist/hooks/ui/use-is-truncated.js +1 -0
  97. package/dist/hooks/ui/use-media-query.d.ts.map +1 -1
  98. package/dist/hooks/ui/use-media-query.js +1 -0
  99. package/dist/hooks/ui/use-resizable-panel-size.d.ts +1 -0
  100. package/dist/hooks/ui/use-resizable-panel-size.d.ts.map +1 -1
  101. package/dist/hooks/ui/use-resizable-panel-size.js +5 -1
  102. package/dist/index.cjs +38 -24
  103. package/dist/{knowledge-4TOSY2S5.cjs → knowledge-YJSDJIXT.cjs} +20 -20
  104. package/dist/{logs-MUODFY6N.cjs → logs-42JG3NZ5.cjs} +26 -26
  105. package/dist/{policies-TJHO3VLE.cjs → policies-D4QNVJ26.cjs} +23 -23
  106. package/dist/{remote-session-CN3G7JNR.cjs → remote-session-EE6477O3.cjs} +10 -10
  107. package/dist/{scripts-X5CMYE2V.cjs → scripts-4VFYBXBE.cjs} +26 -26
  108. package/dist/{software-update-2UZKHTYM.cjs → software-update-OSDZQ5CP.cjs} +25 -25
  109. package/dist/{tickets-board-PLYD2NSY.cjs → tickets-board-44HO3LR4.cjs} +10 -10
  110. package/dist/types/navigation.d.ts +36 -0
  111. package/dist/types/navigation.d.ts.map +1 -1
  112. package/dist/utils/notifications.cjs +2 -0
  113. package/dist/utils/notifications.d.ts +1 -1
  114. package/dist/utils/notifications.d.ts.map +1 -1
  115. package/dist/utils/notifications.js +2 -0
  116. package/package.json +1 -1
  117. package/src/components/chat/chat-nav-sidebar.tsx +17 -4
  118. package/src/components/features/command-box.tsx +17 -19
  119. package/src/components/features/notifications/notification-category-icon.tsx +1 -1
  120. package/src/components/features/software/index.ts +11 -0
  121. package/src/components/features/software/software-action-form.tsx +28 -1
  122. package/src/components/features/software/update-settings-fields.tsx +265 -0
  123. package/src/components/help-center-pages/download-apps-page.tsx +4 -5
  124. package/src/components/navigation/account-popover.tsx +31 -2
  125. package/src/components/navigation/app-layout-side-panel.tsx +2 -7
  126. package/src/components/navigation/navigation-sidebar-grouped.tsx +37 -6
  127. package/src/components/navigation/navigation-sidebar-item.tsx +18 -1
  128. package/src/components/navigation/navigation-sidebar.tsx +116 -7
  129. package/src/components/product-demo/fixtures/software-update.ts +2 -2
  130. package/src/components/ui/panel-resize-handle.tsx +50 -8
  131. package/src/hooks/ui/index.ts +1 -0
  132. package/src/hooks/ui/use-clipped-label-tooltip.ts +20 -0
  133. package/src/hooks/ui/use-is-truncated.ts +2 -0
  134. package/src/hooks/ui/use-media-query.ts +2 -0
  135. package/src/hooks/ui/use-resizable-panel-size.ts +7 -1
  136. package/src/types/navigation.ts +37 -0
  137. package/src/utils/notifications.ts +2 -0
@@ -3,10 +3,10 @@
3
3
 
4
4
 
5
5
 
6
- var _chunk64PF3UC7cjs = require('./chunk-64PF3UC7.cjs');
6
+ var _chunkINBFKUZAcjs = require('./chunk-INBFKUZA.cjs');
7
7
 
8
8
 
9
- var _chunkENK75WN4cjs = require('./chunk-ENK75WN4.cjs');
9
+ var _chunkZAO5SYBJcjs = require('./chunk-ZAO5SYBJ.cjs');
10
10
 
11
11
 
12
12
 
@@ -18,19 +18,20 @@ var _chunkENK75WN4cjs = require('./chunk-ENK75WN4.cjs');
18
18
 
19
19
 
20
20
 
21
- var _chunkB4THEQOWcjs = require('./chunk-B4THEQOW.cjs');
21
+ var _chunkDYDQLS2Rcjs = require('./chunk-DYDQLS2R.cjs');
22
22
 
23
23
 
24
- var _chunkTRZEFT2Ncjs = require('./chunk-TRZEFT2N.cjs');
25
24
 
25
+ var _chunkWI7EXAZTcjs = require('./chunk-WI7EXAZT.cjs');
26
26
 
27
27
 
28
28
 
29
29
 
30
- var _chunkLWMWY3JOcjs = require('./chunk-LWMWY3JO.cjs');
31
30
 
31
+ var _chunkE7M54JWWcjs = require('./chunk-E7M54JWW.cjs');
32
32
 
33
- var _chunkAPOMNC7Hcjs = require('./chunk-APOMNC7H.cjs');
33
+
34
+ var _chunkIUDBG3HJcjs = require('./chunk-IUDBG3HJ.cjs');
34
35
 
35
36
 
36
37
  var _chunk24I6RFVUcjs = require('./chunk-24I6RFVU.cjs');
@@ -39,7 +40,7 @@ var _chunk24I6RFVUcjs = require('./chunk-24I6RFVU.cjs');
39
40
 
40
41
 
41
42
 
42
- var _chunk5E4YEHHOcjs = require('./chunk-5E4YEHHO.cjs');
43
+ var _chunkDGY5KEPYcjs = require('./chunk-DGY5KEPY.cjs');
43
44
 
44
45
 
45
46
 
@@ -50,10 +51,12 @@ var _chunkOT6P57ZScjs = require('./chunk-OT6P57ZS.cjs');
50
51
 
51
52
 
52
53
 
53
- var _chunkZ7A7IZWLcjs = require('./chunk-Z7A7IZWL.cjs');
54
54
 
55
55
 
56
- var _chunk5L3UKDC6cjs = require('./chunk-5L3UKDC6.cjs');
56
+ var _chunkEV6BPF47cjs = require('./chunk-EV6BPF47.cjs');
57
+
58
+
59
+ var _chunk6LDL3UZEcjs = require('./chunk-6LDL3UZE.cjs');
57
60
 
58
61
 
59
62
  var _chunkYJZ7R3W5cjs = require('./chunk-YJZ7R3W5.cjs');
@@ -98,7 +101,10 @@ var _chunk4TUSPDNScjs = require('./chunk-4TUSPDNS.cjs');
98
101
  var _chunkCON36SEJcjs = require('./chunk-CON36SEJ.cjs');
99
102
 
100
103
 
101
- var _chunkZABZIM2Ycjs = require('./chunk-ZABZIM2Y.cjs');
104
+ var _chunkFRL2ZN4Ocjs = require('./chunk-FRL2ZN4O.cjs');
105
+
106
+
107
+ var _chunkFW7RKWPYcjs = require('./chunk-FW7RKWPY.cjs');
102
108
 
103
109
 
104
110
  var _chunkWWUSFOJ7cjs = require('./chunk-WWUSFOJ7.cjs');
@@ -108,20 +114,21 @@ var _chunkSKI6NKOEcjs = require('./chunk-SKI6NKOE.cjs');
108
114
 
109
115
 
110
116
 
111
- var _chunkGRHF5SWLcjs = require('./chunk-GRHF5SWL.cjs');
117
+
118
+ var _chunkNFNSPLGCcjs = require('./chunk-NFNSPLGC.cjs');
112
119
 
113
120
 
114
121
  var _chunkTD4CC4KVcjs = require('./chunk-TD4CC4KV.cjs');
115
122
 
116
123
 
117
124
 
118
- var _chunkMG3HJIGGcjs = require('./chunk-MG3HJIGG.cjs');
125
+ var _chunkUAI4VMEFcjs = require('./chunk-UAI4VMEF.cjs');
119
126
 
120
127
 
121
128
 
122
129
 
123
130
 
124
- var _chunkLC65AC6Mcjs = require('./chunk-LC65AC6M.cjs');
131
+ var _chunkCOWMXUHNcjs = require('./chunk-COWMXUHN.cjs');
125
132
 
126
133
 
127
134
  var _chunkYSDB6HGQcjs = require('./chunk-YSDB6HGQ.cjs');
@@ -211,7 +218,7 @@ function NavItemRow({
211
218
  className
212
219
  }) {
213
220
  const label = navLinkLabel(link);
214
- const counter = badge ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB4THEQOWcjs.UnreadCountBadge, { count: badge, className: "static shrink-0" }) : null;
221
+ const counter = badge ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.UnreadCountBadge, { count: badge, className: "static shrink-0" }) : null;
215
222
  const singleLine = !link.description && !link.builtOn;
216
223
  const rowClassName = _chunk63A4GZMBcjs.cn.call(void 0,
217
224
  ROW_CLASSES[variant],
@@ -268,7 +275,7 @@ function loadFeatureCard() {
268
275
  }
269
276
  function subscribeToFeatureCard(listener) {
270
277
  featureCardListeners.add(listener);
271
- const cancel = _chunk5E4YEHHOcjs.afterPageLoad.call(void 0, loadFeatureCard);
278
+ const cancel = _chunkDGY5KEPYcjs.afterPageLoad.call(void 0, loadFeatureCard);
272
279
  return () => {
273
280
  featureCardListeners.delete(listener);
274
281
  cancel();
@@ -506,8 +513,8 @@ function SiteHeader({
506
513
  }) {
507
514
  const [show, setShow] = _react.useState.call(void 0, true);
508
515
  const lastScrollY = _react.useRef.call(void 0, 0);
509
- const activeId = _chunkLWMWY3JOcjs.useActiveSection.call(void 0, nav.menus, pathname);
510
- const { openId, close, getTriggerProps, getPanelProps } = _chunkLWMWY3JOcjs.useNavMenus.call(void 0, { pathname });
516
+ const activeId = _chunkE7M54JWWcjs.useActiveSection.call(void 0, nav.menus, pathname);
517
+ const { openId, close, getTriggerProps, getPanelProps } = _chunkE7M54JWWcjs.useNavMenus.call(void 0, { pathname });
511
518
  const [trail, setTrail] = _react.useState.call(void 0, { id: null, from: null });
512
519
  if (trail.id !== openId) setTrail({ id: openId, from: trail.id });
513
520
  const previousId = trail.id === openId ? trail.from : trail.id;
@@ -633,7 +640,7 @@ function SiteHeader({
633
640
  leading: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
634
641
  leading,
635
642
  mobile && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
636
- _chunkB4THEQOWcjs.HeaderButton,
643
+ _chunkDYDQLS2Rcjs.HeaderButton,
637
644
  {
638
645
  className: "border-r border-ods-border lg:hidden",
639
646
  onClick: mobile.onToggle,
@@ -659,7 +666,7 @@ function SiteHeader({
659
666
  centerClassName: "justify-start pl-[var(--spacing-system-xlf)]",
660
667
  cta: hasRight ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
661
668
  mingo && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
662
- _chunk5E4YEHHOcjs.MingoAiButton,
669
+ _chunkDGY5KEPYcjs.MingoAiButton,
663
670
  {
664
671
  source: mingo.source,
665
672
  icon: mingo.icon,
@@ -725,9 +732,9 @@ function MobileNavSheetBody({
725
732
  const sheetRef = _react.useRef.call(void 0, null);
726
733
  const menus = [..._nullishCoalesce(nav.mobileMenus, () => ( nav.menus)), ..._nullishCoalesce(extraMenus, () => ( []))];
727
734
  _overlays.usePreventScroll.call(void 0, );
728
- _chunkLWMWY3JOcjs.useFocusTrap.call(void 0, sheetRef, true, { onEscape: onClose });
735
+ _chunkE7M54JWWcjs.useFocusTrap.call(void 0, sheetRef, true, { onEscape: onClose });
729
736
  const [openGroups, setOpenGroups] = _react.useState.call(void 0, () => {
730
- const active = _chunkLWMWY3JOcjs.resolveActiveSection.call(void 0, menus, pathname);
737
+ const active = _chunkE7M54JWWcjs.resolveActiveSection.call(void 0, menus, pathname);
731
738
  return active ? { [active]: true } : {};
732
739
  });
733
740
  const primaryCta = typeof nav.primaryCta === "object" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "accent", href: nav.primaryCta.href, onClick: onClose, className: "w-full", children: nav.primaryCta.label }) : nav.primaryCta === "none" ? null : _nullishCoalesce(cta, () => ( null));
@@ -763,7 +770,7 @@ function MobileNavSheetBody({
763
770
  ] }),
764
771
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "min-h-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain px-5", children: [
765
772
  askAI && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
766
- _chunk5E4YEHHOcjs.MingoAiButton,
773
+ _chunkDGY5KEPYcjs.MingoAiButton,
767
774
  {
768
775
  variant: "field",
769
776
  source: askAI.source,
@@ -940,7 +947,7 @@ function SiteFooter({
940
947
  const bandPrimary = typeof nav.primaryCta === "object" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "accent", href: nav.primaryCta.href, children: nav.primaryCta.label }) : nav.primaryCta === "none" ? null : _nullishCoalesce(cta, () => ( null));
941
948
  const columns = nav.footerColumns;
942
949
  const accordion = columns.length > ACCORDION_OVER;
943
- const socialRow = _nullishCoalesce(social, () => ( (nav.brand.social.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB4THEQOWcjs.SocialIconRow, { compact: true, links: _chunkB4THEQOWcjs.siteNavSocialLinks.call(void 0, nav.brand.social) }) : null)));
950
+ const socialRow = _nullishCoalesce(social, () => ( (nav.brand.social.length > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.SocialIconRow, { compact: true, links: _chunkDYDQLS2Rcjs.siteNavSocialLinks.call(void 0, nav.brand.social) }) : null)));
944
951
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
945
952
  "footer",
946
953
  {
@@ -1034,12 +1041,12 @@ var _framermotion = require('framer-motion');
1034
1041
 
1035
1042
  function SlidingSidebar({ config }) {
1036
1043
  const [expandedItems, setExpandedItems] = _react.useState.call(void 0, /* @__PURE__ */ new Set());
1037
- const mounted = _chunkZ7A7IZWLcjs.useIsHydrated.call(void 0, );
1044
+ const mounted = _chunkEV6BPF47cjs.useIsHydrated.call(void 0, );
1038
1045
  const headerHeight = _chunk24I6RFVUcjs.useHeaderHeight.call(void 0, );
1039
1046
  const asideRef = _react.useRef.call(void 0, null);
1040
1047
  const prefersReducedMotion = _framermotion.useReducedMotion.call(void 0, );
1041
1048
  _overlays.usePreventScroll.call(void 0, { isDisabled: !config.isOpen });
1042
- _chunkLWMWY3JOcjs.useFocusTrap.call(void 0, asideRef, config.isOpen, { onEscape: config.onClose, contain: false });
1049
+ _chunkE7M54JWWcjs.useFocusTrap.call(void 0, asideRef, config.isOpen, { onEscape: config.onClose, contain: false });
1043
1050
  const toggleExpanded = (itemId) => {
1044
1051
  const newExpanded = new Set(expandedItems);
1045
1052
  if (newExpanded.has(itemId)) {
@@ -1166,7 +1173,7 @@ function SlidingSidebar({ config }) {
1166
1173
  duration: 0.3,
1167
1174
  ease: [0.4, 0, 0.2, 1]
1168
1175
  },
1169
- className: _chunk63A4GZMBcjs.cn.call(void 0, "fixed inset-0 z-[45]", _chunkTRZEFT2Ncjs.OVERLAY_BACKDROP_CLASS),
1176
+ className: _chunk63A4GZMBcjs.cn.call(void 0, "fixed inset-0 z-[45]", _chunkWI7EXAZTcjs.OVERLAY_BACKDROP_CLASS),
1170
1177
  onClick: () => config.onClose()
1171
1178
  }
1172
1179
  ) }),
@@ -1209,7 +1216,7 @@ function SlidingSidebar({ config }) {
1209
1216
  // src/components/navigation/page-section-bar.tsx
1210
1217
 
1211
1218
 
1212
- var SECTION_BAR_HEIGHT_PX = _chunk64PF3UC7cjs.STICKY_SECTION_NAV_HEIGHT_PX;
1219
+ var SECTION_BAR_HEIGHT_PX = _chunkINBFKUZAcjs.STICKY_SECTION_NAV_HEIGHT_PX;
1213
1220
  var PAGE_ANCHOR_SCROLL_MARGIN_CLASS = "scroll-mt-36";
1214
1221
  var PAGE_ANCHOR_SCOPE_CLASS = "[&_[id]]:scroll-mt-36";
1215
1222
  var PAGE_ANCHOR_GAP_PX = 16;
@@ -1237,21 +1244,21 @@ function PageSectionBar({ sections: listed, label, brand, action }) {
1237
1244
  const sections = useRenderedSections(listed);
1238
1245
  const inScope = _chunk63A4GZMBcjs.useLoadingScope.call(void 0, );
1239
1246
  const headerBottom = _chunk24I6RFVUcjs.useHeaderHeight.call(void 0, void 0, { stuckOnly: true });
1240
- const { activeSection, handleSectionClick } = _chunk64PF3UC7cjs.useScrollSpy.call(void 0, sections, {
1247
+ const { activeSection, handleSectionClick } = _chunkINBFKUZAcjs.useScrollSpy.call(void 0, sections, {
1241
1248
  syncHash: true,
1242
1249
  aboveFirst: "none",
1243
1250
  headerOffset: headerBottom + SECTION_BAR_HEIGHT_PX + PAGE_ANCHOR_GAP_PX
1244
1251
  });
1245
1252
  if (sections.length === 0 && !inScope) return null;
1246
1253
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1247
- _chunkB4THEQOWcjs.PageContainer,
1254
+ _chunkDYDQLS2Rcjs.PageContainer,
1248
1255
  {
1249
1256
  as: "div",
1250
1257
  backgroundClassName: "sticky z-30 border-b border-ods-border bg-ods-bg transition-[top] duration-300 ease-in-out motion-reduce:transition-none",
1251
1258
  backgroundStyle: { top: headerBottom },
1252
1259
  contentPadding: SECTION_BAR_INSET_CLASS,
1253
1260
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1254
- _chunk64PF3UC7cjs.StickySectionNav,
1261
+ _chunkINBFKUZAcjs.StickySectionNav,
1255
1262
  {
1256
1263
  orientation: "horizontal",
1257
1264
  label,
@@ -1260,7 +1267,7 @@ function PageSectionBar({ sections: listed, label, brand, action }) {
1260
1267
  onSectionClick: handleSectionClick,
1261
1268
  brand,
1262
1269
  action: action && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1263
- _chunkZ7A7IZWLcjs.NavLinkAnchorViaRuntime,
1270
+ _chunkEV6BPF47cjs.NavLinkAnchorViaRuntime,
1264
1271
  {
1265
1272
  href: action.href,
1266
1273
  onClick: (event) => {
@@ -1288,7 +1295,7 @@ function PageSectionBar({ sections: listed, label, brand, action }) {
1288
1295
 
1289
1296
  function NavigationItemBadge({ label, compact = false, className, ...rest }) {
1290
1297
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1291
- _chunkGRHF5SWLcjs.Tag,
1298
+ _chunkNFNSPLGCcjs.Tag,
1292
1299
  {
1293
1300
  as: "span",
1294
1301
  label,
@@ -1355,8 +1362,9 @@ function CountPill({ count, className }) {
1355
1362
  function RowEnd({ count }) {
1356
1363
  return count > 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CountPill, { count, className: "ml-auto" }) : null;
1357
1364
  }
1358
- function RowLabel({ item }) {
1365
+ function RowLabel({ item, showLabel = true }) {
1359
1366
  const unreadCount = _nullishCoalesce(item.unreadCount, () => ( 0));
1367
+ const { ref: labelRef, enabled: labelTooltip } = _chunkFW7RKWPYcjs.useClippedLabelTooltip.call(void 0, item.label);
1360
1368
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1361
1369
  "span",
1362
1370
  {
@@ -1365,7 +1373,17 @@ function RowLabel({ item }) {
1365
1373
  EXPANDED_ONLY
1366
1374
  ),
1367
1375
  children: [
1368
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate text-h4", children: item.label }),
1376
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1377
+ _chunkNFNSPLGCcjs.FloatingTooltip,
1378
+ {
1379
+ content: item.label,
1380
+ side: "top",
1381
+ as: "span",
1382
+ disabled: !showLabel || !labelTooltip,
1383
+ triggerClassName: "min-w-0",
1384
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref: labelRef, className: "block min-w-0 truncate text-h4", children: item.label })
1385
+ }
1386
+ ),
1369
1387
  item.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NavigationItemBadge, { label: item.badge, compact: true }),
1370
1388
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RowEnd, { count: unreadCount })
1371
1389
  ]
@@ -1379,7 +1397,7 @@ function RowIcon({ item, size, className }) {
1379
1397
  className: _chunk63A4GZMBcjs.cn.call(void 0, "relative flex shrink-0 items-center justify-center", size === 20 ? "size-5" : "size-4", className),
1380
1398
  children: [
1381
1399
  sizedIcon(item.icon, size),
1382
- (_nullishCoalesce(item.unreadCount, () => ( 0))) > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB4THEQOWcjs.UnreadDot, { size: "fixed", className: "@[140px]/of-nav-sidebar:hidden" })
1400
+ (_nullishCoalesce(item.unreadCount, () => ( 0))) > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.UnreadDot, { size: "fixed", className: "@[140px]/of-nav-sidebar:hidden" })
1383
1401
  ]
1384
1402
  }
1385
1403
  );
@@ -1404,7 +1422,7 @@ function GroupedLeafRow({
1404
1422
  );
1405
1423
  const content = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1406
1424
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RowIcon, { item, size: 20, className: lit ? "text-ods-accent" : idleIcon("row") }),
1407
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RowLabel, { item })
1425
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RowLabel, { item, showLabel })
1408
1426
  ] });
1409
1427
  const shared = {
1410
1428
  className,
@@ -1427,6 +1445,7 @@ function GroupedChildRow({
1427
1445
  }) {
1428
1446
  const name = accessibleName(item);
1429
1447
  const lit = isActive && !disabled;
1448
+ const { ref: labelRef, enabled: labelTooltip } = _chunkFW7RKWPYcjs.useClippedLabelTooltip.call(void 0, item.label);
1430
1449
  const className = _chunk63A4GZMBcjs.cn.call(void 0,
1431
1450
  // The icon column flush, under the parent's icon at both widths.
1432
1451
  "group/nav-child relative flex h-11 w-full items-stretch gap-[var(--spacing-system-xxs)] rounded-md text-left",
@@ -1458,7 +1477,17 @@ function GroupedChildRow({
1458
1477
  !lit && !disabled && isPending && "after:opacity-100"
1459
1478
  ),
1460
1479
  children: [
1461
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate text-h4", children: item.label }),
1480
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1481
+ _chunkNFNSPLGCcjs.FloatingTooltip,
1482
+ {
1483
+ content: item.label,
1484
+ side: "top",
1485
+ as: "span",
1486
+ disabled: !showLabel || !labelTooltip,
1487
+ triggerClassName: "min-w-0",
1488
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref: labelRef, className: "block min-w-0 truncate text-h4", children: item.label })
1489
+ }
1490
+ ),
1462
1491
  item.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NavigationItemBadge, { label: item.badge, compact: true }),
1463
1492
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RowEnd, { count: _nullishCoalesce(item.unreadCount, () => ( 0)) })
1464
1493
  ]
@@ -1521,7 +1550,7 @@ function GroupedGroup({
1521
1550
  ),
1522
1551
  children: [
1523
1552
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RowIcon, { item, size: 20, className: lit ? "text-ods-accent" : idleIcon("row") }),
1524
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RowLabel, { item })
1553
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RowLabel, { item, showLabel })
1525
1554
  ]
1526
1555
  }
1527
1556
  ),
@@ -1632,7 +1661,7 @@ function NavigationSidebarActionRow({
1632
1661
  );
1633
1662
  const content = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1634
1663
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RowIcon, { item: entry, size: 20, className: lit || outline && !disabled ? "text-ods-accent" : idleIcon("row") }),
1635
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RowLabel, { item: entry })
1664
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, RowLabel, { item: entry, showLabel: !minimized })
1636
1665
  ] });
1637
1666
  const shared = { className: classes, title: minimized ? name : void 0, "aria-label": name };
1638
1667
  if (href && !disabled) {
@@ -1699,10 +1728,11 @@ function LoadedNavigationSidebarItemButton({
1699
1728
  const unreadCount = _nullishCoalesce(item.unreadCount, () => ( 0));
1700
1729
  const hasUnread = unreadCount > 0;
1701
1730
  const name = item.badge ? `${item.label} (${item.badge})` : item.label;
1731
+ const { ref: labelRef, enabled: labelTooltip } = _chunkFW7RKWPYcjs.useClippedLabelTooltip.call(void 0, item.label);
1702
1732
  const content = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
1703
1733
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex flex-shrink-0 items-center justify-center", children: [
1704
1734
  _react.cloneElement.call(void 0, item.icon, { color: "inherit" }),
1705
- hasUnread && !showLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB4THEQOWcjs.UnreadDot, { size: "fixed" })
1735
+ hasUnread && !showLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.UnreadDot, { size: "fixed" })
1706
1736
  ] }),
1707
1737
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
1708
1738
  "span",
@@ -1713,7 +1743,17 @@ function LoadedNavigationSidebarItemButton({
1713
1743
  ),
1714
1744
  "aria-hidden": !showLabel,
1715
1745
  children: [
1716
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "min-w-0 truncate text-h4", children: item.label }),
1746
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1747
+ _chunkNFNSPLGCcjs.FloatingTooltip,
1748
+ {
1749
+ content: item.label,
1750
+ side: "top",
1751
+ as: "span",
1752
+ disabled: !showLabel || !labelTooltip,
1753
+ triggerClassName: "min-w-0",
1754
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref: labelRef, className: "block min-w-0 truncate text-h4", children: item.label })
1755
+ }
1756
+ ),
1717
1757
  item.badge && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NavigationItemBadge, { label: item.badge, className: "ml-[var(--spacing-system-xs)] shrink-0" })
1718
1758
  ]
1719
1759
  }
@@ -1904,6 +1944,7 @@ function NavigationSidebarToggle({
1904
1944
  var MINIMIZED_WIDTH = 56;
1905
1945
  var EXPANDED_WIDTH = 224;
1906
1946
  var MIN_CUSTOM_EXPANDED_WIDTH = 141;
1947
+ var DEFAULT_MIN_CONTENT_WIDTH = 720;
1907
1948
  var STORAGE_KEY = "of.navigationSidebar.minimized";
1908
1949
  var NAVIGATION_SIDEBAR_WIDTH_VAR = "--of-navigation-sidebar-width";
1909
1950
  var EXPANDED_WIDTH_VAR = "--of-navigation-sidebar-expanded-width";
@@ -1933,6 +1974,20 @@ var SIDEBAR_TABLET_WIDTH = {
1933
1974
  overlay: "md:w-56",
1934
1975
  customOverlay: "md:w-[var(--of-navigation-sidebar-expanded-width)]"
1935
1976
  };
1977
+ function useRowWidth(asideRef, enabled) {
1978
+ const [width, setWidth] = _react.useState.call(void 0, 0);
1979
+ _react.useEffect.call(void 0, () => {
1980
+ const row = enabled ? _optionalChain([asideRef, 'access', _35 => _35.current, 'optionalAccess', _36 => _36.parentElement]) : null;
1981
+ if (!row) return void 0;
1982
+ const update = () => setWidth(row.clientWidth);
1983
+ update();
1984
+ if (typeof ResizeObserver === "undefined") return void 0;
1985
+ const observer = new ResizeObserver(update);
1986
+ observer.observe(row);
1987
+ return () => observer.disconnect();
1988
+ }, [asideRef, enabled]);
1989
+ return width;
1990
+ }
1936
1991
  var isModifiedClick = (event) => !!event && (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.button !== 0);
1937
1992
  function NavigationSidebar({
1938
1993
  config,
@@ -1940,10 +1995,10 @@ function NavigationSidebar({
1940
1995
  pushOnTablet = false,
1941
1996
  animateWidth = true
1942
1997
  }) {
1943
- const isMdUp = _nullishCoalesce(_chunkLC65AC6Mcjs.useMdUp.call(void 0, ), () => ( false));
1944
- const isLgUp = _nullishCoalesce(_chunkLC65AC6Mcjs.useLgUp.call(void 0, ), () => ( false));
1998
+ const isMdUp = _nullishCoalesce(_chunkCOWMXUHNcjs.useMdUp.call(void 0, ), () => ( false));
1999
+ const isLgUp = _nullishCoalesce(_chunkCOWMXUHNcjs.useLgUp.call(void 0, ), () => ( false));
1945
2000
  const isTablet = isMdUp && !isLgUp;
1946
- const [storedMinimized, setStoredMinimized] = _chunkAPOMNC7Hcjs.useLocalStorage.call(void 0, STORAGE_KEY, _nullishCoalesce(config.minimized, () => ( false)));
2001
+ const [storedMinimized, setStoredMinimized] = _chunkIUDBG3HJcjs.useLocalStorage.call(void 0, STORAGE_KEY, _nullishCoalesce(config.minimized, () => ( false)));
1947
2002
  const [tabletMinimized, setTabletMinimized] = _react.useState.call(void 0, true);
1948
2003
  const isControlled = config.collapsed !== void 0;
1949
2004
  const desktopMinimized = isControlled ? _nullishCoalesce(config.collapsed, () => ( false)) : storedMinimized;
@@ -1962,13 +2017,46 @@ function NavigationSidebar({
1962
2017
  setTabletFor(isTablet);
1963
2018
  if (isTablet) setTabletMinimized(true);
1964
2019
  }
1965
- const hydrated = _chunkZ7A7IZWLcjs.useIsHydrated.call(void 0, );
2020
+ const hydrated = _chunkEV6BPF47cjs.useIsHydrated.call(void 0, );
1966
2021
  const serverMinimized = isControlled ? desktopMinimized : _nullishCoalesce(config.minimized, () => ( false));
1967
2022
  const minimized = hydrated ? isTablet ? tabletMinimized : desktopMinimized : serverMinimized;
1968
2023
  const [transitionsEnabled, setTransitionsEnabled] = _react.useState.call(void 0, false);
1969
- const customExpandedWidth = config.variant === "grouped" && config.expandedWidth !== void 0 ? Math.max(config.expandedWidth, MIN_CUSTOM_EXPANDED_WIDTH) : null;
1970
- const expandedWidth = _nullishCoalesce(customExpandedWidth, () => ( EXPANDED_WIDTH));
2024
+ const configExpandedWidth = config.variant === "grouped" && config.expandedWidth !== void 0 ? Math.max(config.expandedWidth, MIN_CUSTOM_EXPANDED_WIDTH) : null;
2025
+ const resize = config.resizable;
2026
+ const asideRef = _react.useRef.call(void 0, null);
2027
+ const rowWidth = useRowWidth(asideRef, resize !== void 0);
2028
+ const resizeMinWidth = Math.max(_nullishCoalesce(_optionalChain([resize, 'optionalAccess', _37 => _37.minWidth]), () => ( MIN_CUSTOM_EXPANDED_WIDTH)), MIN_CUSTOM_EXPANDED_WIDTH);
2029
+ const {
2030
+ size: chosenExpandedWidth,
2031
+ setSize: setChosenExpandedWidth,
2032
+ resetSize: resetChosenExpandedWidth,
2033
+ clampSize: clampExpandedWidth
2034
+ } = _chunkWI7EXAZTcjs.useResizablePanelSize.call(void 0, {
2035
+ enabled: resize !== void 0,
2036
+ minSize: resizeMinWidth,
2037
+ maxSize: _nullishCoalesce(_optionalChain([resize, 'optionalAccess', _38 => _38.maxWidth]), () => ( Number.POSITIVE_INFINITY)),
2038
+ defaultSize: _nullishCoalesce(configExpandedWidth, () => ( EXPANDED_WIDTH)),
2039
+ available: rowWidth,
2040
+ reserve: _nullishCoalesce(_optionalChain([resize, 'optionalAccess', _39 => _39.minContentWidth]), () => ( DEFAULT_MIN_CONTENT_WIDTH)),
2041
+ storageKey: _optionalChain([resize, 'optionalAccess', _40 => _40.storageKey])
2042
+ });
2043
+ const expandedWidth = resize !== void 0 ? chosenExpandedWidth : _nullishCoalesce(configExpandedWidth, () => ( EXPANDED_WIDTH));
2044
+ const markupExpandedWidth = hydrated ? chosenExpandedWidth : _nullishCoalesce(configExpandedWidth, () => ( EXPANDED_WIDTH));
2045
+ const customExpandedWidth = resize !== void 0 ? markupExpandedWidth : configExpandedWidth;
1971
2046
  const expandedWidthStyle = customExpandedWidth === null ? void 0 : { [EXPANDED_WIDTH_VAR]: `${customExpandedWidth}px` };
2047
+ const dragExpandedWidth = _react.useCallback.call(void 0, (next) => {
2048
+ const aside = asideRef.current;
2049
+ if (!aside) return;
2050
+ aside.setAttribute("data-resizing", "");
2051
+ aside.style.setProperty(NAVIGATION_SIDEBAR_WIDTH_VAR, `${Math.round(next)}px`);
2052
+ }, []);
2053
+ const commitExpandedWidth = _react.useCallback.call(void 0,
2054
+ (next) => {
2055
+ _optionalChain([asideRef, 'access', _41 => _41.current, 'optionalAccess', _42 => _42.removeAttribute, 'call', _43 => _43("data-resizing")]);
2056
+ setChosenExpandedWidth(next);
2057
+ },
2058
+ [setChosenExpandedWidth]
2059
+ );
1972
2060
  const [widthFor, setWidthFor] = _react.useState.call(void 0, expandedWidth);
1973
2061
  if (widthFor !== expandedWidth) {
1974
2062
  setWidthFor(expandedWidth);
@@ -1981,9 +2069,9 @@ function NavigationSidebar({
1981
2069
  setTabletMinimized((prev) => !prev);
1982
2070
  } else {
1983
2071
  if (!isControlled) setStoredMinimized((prev) => !prev);
1984
- _optionalChain([config, 'access', _35 => _35.onCollapsedChange, 'optionalCall', _36 => _36(!desktopMinimized)]);
2072
+ _optionalChain([config, 'access', _44 => _44.onCollapsedChange, 'optionalCall', _45 => _45(!desktopMinimized)]);
1985
2073
  }
1986
- _optionalChain([config, 'access', _37 => _37.onToggleMinimized, 'optionalCall', _38 => _38()]);
2074
+ _optionalChain([config, 'access', _46 => _46.onToggleMinimized, 'optionalCall', _47 => _47()]);
1987
2075
  }, [isTablet, isControlled, setStoredMinimized, desktopMinimized, config]);
1988
2076
  const closeOverlay = _react.useCallback.call(void 0, () => {
1989
2077
  setTabletMinimized(true);
@@ -1995,7 +2083,7 @@ function NavigationSidebar({
1995
2083
  revealHandledRef.current = revealSignal;
1996
2084
  if (revealSignal === void 0 || !isLgUp || !desktopMinimized) return;
1997
2085
  if (!isControlled) setStoredMinimized(false);
1998
- _optionalChain([onCollapsedChange, 'optionalCall', _39 => _39(false)]);
2086
+ _optionalChain([onCollapsedChange, 'optionalCall', _48 => _48(false)]);
1999
2087
  }, [revealSignal, isLgUp, desktopMinimized, isControlled, setStoredMinimized, onCollapsedChange]);
2000
2088
  _react.useEffect.call(void 0, () => {
2001
2089
  if (!isOverlayOpen) return void 0;
@@ -2019,7 +2107,7 @@ function NavigationSidebar({
2019
2107
  }
2020
2108
  const handleItemClick = _react.useCallback.call(void 0,
2021
2109
  (item, event) => {
2022
- _optionalChain([event, 'optionalAccess', _40 => _40.stopPropagation, 'call', _41 => _41()]);
2110
+ _optionalChain([event, 'optionalAccess', _49 => _49.stopPropagation, 'call', _50 => _50()]);
2023
2111
  if (item.onClick) {
2024
2112
  item.onClick();
2025
2113
  if (isTablet) setTabletMinimized(true);
@@ -2028,7 +2116,7 @@ function NavigationSidebar({
2028
2116
  if (!item.path) return;
2029
2117
  if (isModifiedClick(event)) return;
2030
2118
  if (config.onNavigate) {
2031
- _optionalChain([event, 'optionalAccess', _42 => _42.preventDefault, 'call', _43 => _43()]);
2119
+ _optionalChain([event, 'optionalAccess', _51 => _51.preventDefault, 'call', _52 => _52()]);
2032
2120
  if (item.id !== committedActiveId) setPendingItemId(item.id);
2033
2121
  config.onNavigate(item.path);
2034
2122
  }
@@ -2049,13 +2137,13 @@ function NavigationSidebar({
2049
2137
  );
2050
2138
  const loadingRows = _react.useMemo.call(void 0, () => {
2051
2139
  if (!config.loading) return null;
2052
- const primary = _nullishCoalesce(_optionalChain([config, 'access', _44 => _44.loadingRows, 'optionalAccess', _45 => _45.primary]), () => ( 7));
2053
- const secondary = _nullishCoalesce(_optionalChain([config, 'access', _46 => _46.loadingRows, 'optionalAccess', _47 => _47.secondary]), () => ( 2));
2140
+ const primary = _nullishCoalesce(_optionalChain([config, 'access', _53 => _53.loadingRows, 'optionalAccess', _54 => _54.primary]), () => ( 7));
2141
+ const secondary = _nullishCoalesce(_optionalChain([config, 'access', _55 => _55.loadingRows, 'optionalAccess', _56 => _56.secondary]), () => ( 2));
2054
2142
  return {
2055
2143
  primary: Array.from({ length: Math.max(0, primary) }, (_, i) => `primary-${i}`),
2056
2144
  secondary: Array.from({ length: Math.max(0, secondary) }, (_, i) => `secondary-${i}`)
2057
2145
  };
2058
- }, [config.loading, _optionalChain([config, 'access', _48 => _48.loadingRows, 'optionalAccess', _49 => _49.primary]), _optionalChain([config, 'access', _50 => _50.loadingRows, 'optionalAccess', _51 => _51.secondary])]);
2146
+ }, [config.loading, _optionalChain([config, 'access', _57 => _57.loadingRows, 'optionalAccess', _58 => _58.primary]), _optionalChain([config, 'access', _59 => _59.loadingRows, 'optionalAccess', _60 => _60.secondary])]);
2059
2147
  const widthTransition = _chunk63A4GZMBcjs.cn.call(void 0,
2060
2148
  "transition-[width] duration-300",
2061
2149
  grouped && "[transition-timing-function:cubic-bezier(0.2,0,0,1)] motion-reduce:transition-none"
@@ -2065,9 +2153,8 @@ function NavigationSidebar({
2065
2153
  [minimized, expandedWidth]
2066
2154
  );
2067
2155
  const sectionRailHidden = typeof config.sectionSlot !== "function" && "hidden @[140px]/of-nav-sidebar:flex animate-in fade-in duration-300 motion-reduce:animate-none";
2068
- const asideRef = _react.useRef.call(void 0, null);
2069
2156
  _chunkYSDB6HGQcjs.useIsomorphicLayoutEffect.call(void 0, () => {
2070
- _optionalChain([asideRef, 'access', _52 => _52.current, 'optionalAccess', _53 => _53.style, 'access', _54 => _54.setProperty, 'call', _55 => _55(NAVIGATION_SIDEBAR_WIDTH_VAR, sidebarWidth)]);
2157
+ _optionalChain([asideRef, 'access', _61 => _61.current, 'optionalAccess', _62 => _62.style, 'access', _63 => _63.setProperty, 'call', _64 => _64(NAVIGATION_SIDEBAR_WIDTH_VAR, sidebarWidth)]);
2071
2158
  }, [sidebarWidth]);
2072
2159
  _chunkYSDB6HGQcjs.useIsomorphicLayoutEffect.call(void 0, () => {
2073
2160
  if (transitionsEnabled) return void 0;
@@ -2149,6 +2236,9 @@ function NavigationSidebar({
2149
2236
  // the rail.
2150
2237
  !isOverlayOpen ? SIDEBAR_TABLET_WIDTH.rail : customExpandedWidth === null ? SIDEBAR_TABLET_WIDTH.overlay : SIDEBAR_TABLET_WIDTH.customOverlay,
2151
2238
  transitionsEnabled && widthTransition,
2239
+ // A drag on the resize handle in progress: the width follows the
2240
+ // pointer, with no transition trailing it (`dragExpandedWidth`).
2241
+ "data-[resizing]:transition-none",
2152
2242
  // Snaps where its width moves the content: the desktop rail, and the
2153
2243
  // tablet overlay too when it pushes (its slot above snaps with it).
2154
2244
  !animateWidth && (pushOnTablet ? "transition-none" : "lg:transition-none"),
@@ -2171,14 +2261,14 @@ function NavigationSidebar({
2171
2261
  ),
2172
2262
  children: [
2173
2263
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
2174
- _optionalChain([config, 'access', _56 => _56.topSlot, 'optionalCall', _57 => _57({ minimized })]),
2264
+ _optionalChain([config, 'access', _65 => _65.topSlot, 'optionalCall', _66 => _66({ minimized })]),
2175
2265
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2176
2266
  "nav",
2177
2267
  {
2178
2268
  className: _chunk63A4GZMBcjs.cn.call(void 0, "flex flex-col", grouped && "gap-[var(--spacing-system-xxs)]"),
2179
2269
  "aria-label": "Primary navigation",
2180
2270
  "aria-busy": !!loadingRows,
2181
- children: renderEntries(_nullishCoalesce(_optionalChain([loadingRows, 'optionalAccess', _58 => _58.primary]), () => ( null)), primaryItems)
2271
+ children: renderEntries(_nullishCoalesce(_optionalChain([loadingRows, 'optionalAccess', _67 => _67.primary]), () => ( null)), primaryItems)
2182
2272
  }
2183
2273
  ),
2184
2274
  hasNavigationSidebarSlot(config.sectionSlot) && // A divider between the tree and the section, as under the top slot's rows.
@@ -2193,7 +2283,7 @@ function NavigationSidebar({
2193
2283
  }
2194
2284
  )
2195
2285
  ] }),
2196
- (loadingRows ? loadingRows.secondary.length > 0 : secondaryItems.length > 0) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { className: "flex flex-col", "aria-label": "Secondary navigation", "aria-busy": !!loadingRows, children: renderEntries(_nullishCoalesce(_optionalChain([loadingRows, 'optionalAccess', _59 => _59.secondary]), () => ( null)), secondaryItems) })
2286
+ (loadingRows ? loadingRows.secondary.length > 0 : secondaryItems.length > 0) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { className: "flex flex-col", "aria-label": "Secondary navigation", "aria-busy": !!loadingRows, children: renderEntries(_nullishCoalesce(_optionalChain([loadingRows, 'optionalAccess', _68 => _68.secondary]), () => ( null)), secondaryItems) })
2197
2287
  ]
2198
2288
  }
2199
2289
  ),
@@ -2206,6 +2296,23 @@ function NavigationSidebar({
2206
2296
  onToggle: handleToggle,
2207
2297
  compact: grouped
2208
2298
  }
2299
+ ),
2300
+ resize !== void 0 && !minimized && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2301
+ _chunkEV6BPF47cjs.PanelResizeHandle,
2302
+ {
2303
+ side: "left",
2304
+ variant: "inLayout",
2305
+ size: markupExpandedWidth,
2306
+ minSize: resizeMinWidth,
2307
+ maxSize: clampExpandedWidth(Number.POSITIVE_INFINITY),
2308
+ clampSize: clampExpandedWidth,
2309
+ onSize: commitExpandedWidth,
2310
+ onDrag: dragExpandedWidth,
2311
+ onReset: resetChosenExpandedWidth,
2312
+ ariaLabel: "Resize navigation sidebar",
2313
+ className: "inset-y-0 hidden w-6 -translate-x-1/2 justify-center pl-0 lg:flex",
2314
+ grip: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEV6BPF47cjs.PanelResizeGrip, {})
2315
+ }
2209
2316
  )
2210
2317
  ]
2211
2318
  }
@@ -2243,7 +2350,7 @@ function toMenuGroups(entries) {
2243
2350
  ),
2244
2351
  children: [
2245
2352
  entry.icon,
2246
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB4THEQOWcjs.UnreadCountBadge, { count: _nullishCoalesce(entry.count, () => ( 0)) })
2353
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.UnreadCountBadge, { count: _nullishCoalesce(entry.count, () => ( 0)) })
2247
2354
  ]
2248
2355
  }
2249
2356
  ) : void 0,
@@ -2269,6 +2376,8 @@ function AccountPopover({
2269
2376
  className
2270
2377
  }) {
2271
2378
  const unread = items.some((entry) => entry.type !== "divider" && (_nullishCoalesce(entry.count, () => ( 0))) > 0);
2379
+ const { ref: nameRef, enabled: nameTooltip } = _chunkFW7RKWPYcjs.useClippedLabelTooltip.call(void 0, name);
2380
+ const { ref: subtitleRef, enabled: subtitleTooltip } = _chunkFW7RKWPYcjs.useClippedLabelTooltip.call(void 0, subtitle);
2272
2381
  const [open = false, setOpen] = _reactusecontrollablestate.useControllableState.call(void 0, {
2273
2382
  prop: openProp,
2274
2383
  defaultProp: false,
@@ -2304,7 +2413,7 @@ function AccountPopover({
2304
2413
  children: [
2305
2414
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "relative inline-flex shrink-0", children: [
2306
2415
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2307
- _chunkGRHF5SWLcjs.SquareAvatar,
2416
+ _chunkNFNSPLGCcjs.SquareAvatar,
2308
2417
  {
2309
2418
  src: _nullishCoalesce(avatarUrl, () => ( void 0)),
2310
2419
  alt: name,
@@ -2314,7 +2423,7 @@ function AccountPopover({
2314
2423
  "aria-hidden": "true"
2315
2424
  }
2316
2425
  ),
2317
- unread && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB4THEQOWcjs.UnreadDot, { size: "fixed" })
2426
+ unread && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.UnreadDot, { size: "fixed" })
2318
2427
  ] }),
2319
2428
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2320
2429
  "span",
@@ -2323,7 +2432,17 @@ function AccountPopover({
2323
2432
  "aria-hidden": collapsed || void 0,
2324
2433
  children: [
2325
2434
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex min-w-0 items-center gap-[var(--spacing-system-xxs)]", children: [
2326
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-primary text-h4", children: name }),
2435
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2436
+ _chunkNFNSPLGCcjs.FloatingTooltip,
2437
+ {
2438
+ content: name,
2439
+ side: "top",
2440
+ as: "span",
2441
+ disabled: collapsed || !nameTooltip,
2442
+ triggerClassName: "min-w-0",
2443
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref: nameRef, className: "block truncate text-ods-text-primary text-h4", children: name })
2444
+ }
2445
+ ),
2327
2446
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2328
2447
  _chunkSKI6NKOEcjs.Chevron02DownIcon,
2329
2448
  {
@@ -2333,7 +2452,17 @@ function AccountPopover({
2333
2452
  }
2334
2453
  )
2335
2454
  ] }),
2336
- subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "truncate text-ods-text-secondary text-code", children: subtitle })
2455
+ subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2456
+ _chunkNFNSPLGCcjs.FloatingTooltip,
2457
+ {
2458
+ content: subtitle,
2459
+ side: "top",
2460
+ as: "span",
2461
+ disabled: collapsed || !subtitleTooltip,
2462
+ triggerClassName: "min-w-0",
2463
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref: subtitleRef, className: "block truncate text-ods-text-secondary text-code", children: subtitle })
2464
+ }
2465
+ )
2337
2466
  ]
2338
2467
  }
2339
2468
  )
@@ -2369,18 +2498,18 @@ function HeaderGlobalSearch({
2369
2498
  };
2370
2499
  const handleSubmit = (e) => {
2371
2500
  e.preventDefault();
2372
- _optionalChain([onSubmit, 'optionalCall', _60 => _60(currentValue)]);
2501
+ _optionalChain([onSubmit, 'optionalCall', _69 => _69(currentValue)]);
2373
2502
  };
2374
2503
  const handleKeyDown = (e) => {
2375
2504
  if (e.key === "Enter") {
2376
- _optionalChain([onSubmit, 'optionalCall', _61 => _61(currentValue)]);
2505
+ _optionalChain([onSubmit, 'optionalCall', _70 => _70(currentValue)]);
2377
2506
  }
2378
2507
  };
2379
2508
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2380
2509
  "form",
2381
2510
  {
2382
2511
  onSubmit: handleSubmit,
2383
- ..._chunk5E4YEHHOcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
2512
+ ..._chunkDGY5KEPYcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
2384
2513
  className: _chunk63A4GZMBcjs.cn.call(void 0,
2385
2514
  "flex h-full flex-1 items-center gap-2 px-3",
2386
2515
  // Transparent so the cell inherits the bar's background
@@ -2447,7 +2576,7 @@ function HeaderMingoButton({
2447
2576
  ) : (
2448
2577
  // Outer frame follows the button's text color (currentColor); the eyes
2449
2578
  // and corner block are ODS cyan.
2450
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5L3UKDC6cjs.AgentMark, { agent: "mingo", className: "h-6 w-6 shrink-0" })
2579
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk6LDL3UZEcjs.AgentMark, { agent: "mingo", className: "h-6 w-6 shrink-0" })
2451
2580
  ),
2452
2581
  !iconOnly && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap font-bold tracking-[-0.36px] text-h3", children: "Mingo AI" })
2453
2582
  ]
@@ -2465,8 +2594,8 @@ function HeaderOrganizationFilter({
2465
2594
  className
2466
2595
  }) {
2467
2596
  const selectedOrg = organizations.find((o) => o.id === selectedOrgId);
2468
- const displayName = _optionalChain([selectedOrg, 'optionalAccess', _62 => _62.name]) || "All Organizations";
2469
- const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _63 => _63.deviceCount]), () => ( totalDeviceCount));
2597
+ const displayName = _optionalChain([selectedOrg, 'optionalAccess', _71 => _71.name]) || "All Organizations";
2598
+ const deviceCount = _nullishCoalesce(_optionalChain([selectedOrg, 'optionalAccess', _72 => _72.deviceCount]), () => ( totalDeviceCount));
2470
2599
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkS3QXLD4Xcjs.DropdownMenu, { children: [
2471
2600
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkS3QXLD4Xcjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkFCZAUK4Dcjs.Button, { variant: "cell", className: _chunk63A4GZMBcjs.cn.call(void 0, "w-[240px] justify-start", className), children: [
2472
2601
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7NU6TOK3cjs.Filter02Icon, { className: "h-4 w-4 shrink-0 text-ods-text-secondary" }),
@@ -2479,8 +2608,8 @@ function HeaderOrganizationFilter({
2479
2608
  ] })
2480
2609
  ] }) }),
2481
2610
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkS3QXLD4Xcjs.DropdownMenuContent, { align: "end", className: "min-w-[240px]", children: [
2482
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkS3QXLD4Xcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _64 => _64("")]), children: "All Organizations" }),
2483
- organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkS3QXLD4Xcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _65 => _65(org.id)]), children: org.name }, org.id))
2611
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkS3QXLD4Xcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _73 => _73("")]), children: "All Organizations" }),
2612
+ organizations.map((org) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkS3QXLD4Xcjs.DropdownMenuItem, { onClick: () => _optionalChain([onOrgChange, 'optionalCall', _74 => _74(org.id)]), children: org.name }, org.id))
2484
2613
  ] })
2485
2614
  ] });
2486
2615
  }
@@ -2493,14 +2622,14 @@ function NotificationsBellButton({
2493
2622
  variant = "cell",
2494
2623
  className
2495
2624
  }) {
2496
- const ctx = _chunkB4THEQOWcjs.useOptionalNotifications.call(void 0, );
2497
- const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _66 => _66.unreadCount]), () => ( fallbackUnreadCount))) > 0;
2498
- const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _67 => _67.isOpen]), () => ( false));
2499
- const onClick = _optionalChain([ctx, 'optionalAccess', _68 => _68.toggle]);
2625
+ const ctx = _chunkDYDQLS2Rcjs.useOptionalNotifications.call(void 0, );
2626
+ const hasUnread = (_nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _75 => _75.unreadCount]), () => ( fallbackUnreadCount))) > 0;
2627
+ const isActive = _nullishCoalesce(_optionalChain([ctx, 'optionalAccess', _76 => _76.isOpen]), () => ( false));
2628
+ const onClick = _optionalChain([ctx, 'optionalAccess', _77 => _77.toggle]);
2500
2629
  const floating = variant === "floating";
2501
2630
  const iconClassName = variant === "cell" ? "h-6 w-6" : "h-5 w-5";
2502
2631
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2503
- _chunkB4THEQOWcjs.HeaderButton,
2632
+ _chunkDYDQLS2Rcjs.HeaderButton,
2504
2633
  {
2505
2634
  icon: isActive ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWWUSFOJ7cjs.XmarkIcon, { className: iconClassName }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCON36SEJcjs.BellIcon, { className: iconClassName }),
2506
2635
  showUnreadDot: !isActive && hasUnread,
@@ -2523,14 +2652,14 @@ function NotificationsBellButton({
2523
2652
  // src/components/navigation/ticket-alerts-button.tsx
2524
2653
 
2525
2654
  function TicketAlertsButton({ href, disabled, variant = "cell", className }) {
2526
- const live = _chunkENK75WN4cjs.useOptionalTicketLive.call(void 0, );
2655
+ const live = _chunkZAO5SYBJcjs.useOptionalTicketLive.call(void 0, );
2527
2656
  const runtime = _chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, );
2528
2657
  if (!live || !live.authed || live.unreadTotal === 0) return null;
2529
2658
  const targetId = live.nextUnreadTicketId;
2530
- const target = targetId ? _chunk5E4YEHHOcjs.buildTicketOpenHref.call(void 0, href, targetId) : href;
2531
- const handleClick = () => _chunkZABZIM2Ycjs.executeNavigationImperative.call(void 0, { runtime, href: target });
2659
+ const target = targetId ? _chunkDGY5KEPYcjs.buildTicketOpenHref.call(void 0, href, targetId) : href;
2660
+ const handleClick = () => _chunkFRL2ZN4Ocjs.executeNavigationImperative.call(void 0, { runtime, href: target });
2532
2661
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2533
- _chunkB4THEQOWcjs.HeaderButton,
2662
+ _chunkDYDQLS2Rcjs.HeaderButton,
2534
2663
  {
2535
2664
  icon: (
2536
2665
  // Glyph inherits HeaderButton's standard cell coloring (secondary at
@@ -2540,7 +2669,7 @@ function TicketAlertsButton({ href, disabled, variant = "cell", className }) {
2540
2669
  // existing while updates are unread — never by tinting the glyph.
2541
2670
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "relative inline-flex", children: [
2542
2671
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk365ZKGGOcjs.LifeBuoyIcon, { className: variant === "compact" ? "h-5 w-5" : "h-6 w-6" }),
2543
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB4THEQOWcjs.UnreadCountBadge, { count: live.unreadTotal })
2672
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.UnreadCountBadge, { count: live.unreadTotal })
2544
2673
  ] })
2545
2674
  ),
2546
2675
  "aria-label": `Support tickets \u2014 ${live.unreadTotal} unread ${live.unreadTotal === 1 ? "update" : "updates"}`,
@@ -2584,7 +2713,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
2584
2713
  loadingActionCells,
2585
2714
  customCells
2586
2715
  }) {
2587
- const isMdUp = _nullishCoalesce(_chunkLC65AC6Mcjs.useMdUp.call(void 0, ), () => ( false));
2716
+ const isMdUp = _nullishCoalesce(_chunkCOWMXUHNcjs.useMdUp.call(void 0, ), () => ( false));
2588
2717
  const loading = _chunk63A4GZMBcjs.useLoadingScope.call(void 0, ) || loadingProp;
2589
2718
  if (loading) {
2590
2719
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -2612,8 +2741,8 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
2612
2741
  }
2613
2742
  const dimmedClass = disabled ? "pointer-events-none opacity-50" : "";
2614
2743
  const cellDivider = "border-l border-ods-border";
2615
- const renderCustomCells = (placement) => _optionalChain([customCells, 'optionalAccess', _69 => _69.filter, 'call', _70 => _70((cell) => (_nullishCoalesce(cell.placement, () => ( "start"))) === placement), 'access', _71 => _71.map, 'call', _72 => _72((cell) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2616
- _chunkB4THEQOWcjs.HeaderButton,
2744
+ const renderCustomCells = (placement) => _optionalChain([customCells, 'optionalAccess', _78 => _78.filter, 'call', _79 => _79((cell) => (_nullishCoalesce(cell.placement, () => ( "start"))) === placement), 'access', _80 => _80.map, 'call', _81 => _81((cell) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2745
+ _chunkDYDQLS2Rcjs.HeaderButton,
2617
2746
  {
2618
2747
  type: "button",
2619
2748
  icon: cell.icon,
@@ -2634,7 +2763,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
2634
2763
  leading: (
2635
2764
  // Mobile: Burger Menu Button
2636
2765
  !isMdUp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2637
- _chunkB4THEQOWcjs.HeaderButton,
2766
+ _chunkDYDQLS2Rcjs.HeaderButton,
2638
2767
  {
2639
2768
  onClick: onToggleMobileMenu,
2640
2769
  isActive: isMobileMenuOpen,
@@ -2660,7 +2789,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
2660
2789
  center: showSearch ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HeaderGlobalSearch, { onSubmit: onSearch, className: _chunk63A4GZMBcjs.cn.call(void 0, "w-full", dimmedClass) }) : void 0,
2661
2790
  sideActions: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
2662
2791
  showSearch && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2663
- _chunkB4THEQOWcjs.HeaderButton,
2792
+ _chunkDYDQLS2Rcjs.HeaderButton,
2664
2793
  {
2665
2794
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkZ74QE57Tcjs.SearchIcon, { className: "h-6 w-6" }),
2666
2795
  "aria-label": "Search",
@@ -2678,7 +2807,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
2678
2807
  }
2679
2808
  ),
2680
2809
  renderCustomCells("start"),
2681
- showTimeTracker && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB4THEQOWcjs.TimeTrackerHeaderButton, { disabled, className: _chunk63A4GZMBcjs.cn.call(void 0, cellDivider, dimmedClass) }),
2810
+ showTimeTracker && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.TimeTrackerHeaderButton, { disabled, className: _chunk63A4GZMBcjs.cn.call(void 0, cellDivider, dimmedClass) }),
2682
2811
  showNotifications && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2683
2812
  NotificationsBellButton,
2684
2813
  {
@@ -2697,10 +2826,10 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
2697
2826
  ),
2698
2827
  isMdUp && showUser && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkS3QXLD4Xcjs.DropdownMenu, { children: [
2699
2828
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkS3QXLD4Xcjs.DropdownMenuTrigger, { asChild: true, disabled, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2700
- _chunkB4THEQOWcjs.HeaderButton,
2829
+ _chunkDYDQLS2Rcjs.HeaderButton,
2701
2830
  {
2702
2831
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2703
- _chunkGRHF5SWLcjs.SquareAvatar,
2832
+ _chunkNFNSPLGCcjs.SquareAvatar,
2704
2833
  {
2705
2834
  src: userAvatarUrl || void 0,
2706
2835
  alt: userName || "User",
@@ -2726,7 +2855,7 @@ var AppHeader = _react2.default.memo(function AppHeaderImpl({
2726
2855
  children: [
2727
2856
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 border-b border-ods-border bg-ods-card p-3", children: [
2728
2857
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2729
- _chunkGRHF5SWLcjs.SquareAvatar,
2858
+ _chunkNFNSPLGCcjs.SquareAvatar,
2730
2859
  {
2731
2860
  src: userAvatarUrl || void 0,
2732
2861
  alt: userName || "User",
@@ -2846,7 +2975,7 @@ function AppHeaderSkeleton({
2846
2975
 
2847
2976
  var SIDE_PANEL_INSET = 16;
2848
2977
  var SIDE_PANEL_FRAME_WIDTH = 2;
2849
- var MOBILE_QUERY = `not all and ${_chunkLC65AC6Mcjs.breakpoints.md}`;
2978
+ var MOBILE_QUERY = `not all and ${_chunkCOWMXUHNcjs.breakpoints.md}`;
2850
2979
  var REDUCED_MOTION_QUERY = "(prefers-reduced-motion: reduce)";
2851
2980
  var MORPH_MS = 300;
2852
2981
  var STORAGE_EVENT = "of:side-panel-size";
@@ -2922,11 +3051,11 @@ function useStoredSize(storageKey, fallback) {
2922
3051
  }
2923
3052
  function useAppLayoutSidePanel(config, row) {
2924
3053
  const enabled = config !== void 0;
2925
- const minWidth = _nullishCoalesce(_optionalChain([config, 'optionalAccess', _73 => _73.minWidth]), () => ( 0));
2926
- const minContentWidth = _nullishCoalesce(_optionalChain([config, 'optionalAccess', _74 => _74.minContentWidth]), () => ( 400));
2927
- const collapsed = _nullishCoalesce(_optionalChain([config, 'optionalAccess', _75 => _75.collapsed]), () => ( false));
3054
+ const minWidth = _nullishCoalesce(_optionalChain([config, 'optionalAccess', _82 => _82.minWidth]), () => ( 0));
3055
+ const minContentWidth = _nullishCoalesce(_optionalChain([config, 'optionalAccess', _83 => _83.minContentWidth]), () => ( 400));
3056
+ const collapsed = _nullishCoalesce(_optionalChain([config, 'optionalAccess', _84 => _84.collapsed]), () => ( false));
2928
3057
  const minimum = { width: minWidth, expanded: false };
2929
- const defaultWidth = Math.max(minWidth, _nullishCoalesce(_optionalChain([config, 'optionalAccess', _76 => _76.defaultWidth]), () => ( minWidth)));
3058
+ const defaultWidth = Math.max(minWidth, _nullishCoalesce(_optionalChain([config, 'optionalAccess', _85 => _85.defaultWidth]), () => ( minWidth)));
2930
3059
  const [rowWidth, setRowWidth] = _react.useState.call(void 0, 0);
2931
3060
  _chunkYSDB6HGQcjs.useIsomorphicLayoutEffect.call(void 0, () => {
2932
3061
  if (!enabled || !row) return void 0;
@@ -2936,17 +3065,17 @@ function useAppLayoutSidePanel(config, row) {
2936
3065
  observer.observe(row);
2937
3066
  return () => observer.disconnect();
2938
3067
  }, [enabled, row]);
2939
- const isMobile = _chunkLC65AC6Mcjs.useMediaQuery.call(void 0, MOBILE_QUERY) === true;
2940
- const reduceMotion = _chunkLC65AC6Mcjs.useMediaQuery.call(void 0, REDUCED_MOTION_QUERY) === true;
3068
+ const isMobile = _chunkCOWMXUHNcjs.useMediaQuery.call(void 0, MOBILE_QUERY) === true;
3069
+ const reduceMotion = _chunkCOWMXUHNcjs.useMediaQuery.call(void 0, REDUCED_MOTION_QUERY) === true;
2941
3070
  const [morph, setMorph] = _react.useState.call(void 0, null);
2942
3071
  const [liveWidth, setLiveWidth] = _react.useState.call(void 0, null);
2943
- const [storedSize, setStoredSize] = useStoredSize(_optionalChain([config, 'optionalAccess', _77 => _77.storageKey]), { width: defaultWidth, expanded: false });
3072
+ const [storedSize, setStoredSize] = useStoredSize(_optionalChain([config, 'optionalAccess', _86 => _86.storageKey]), { width: defaultWidth, expanded: false });
2944
3073
  const [ownIsOpen, setOwnIsOpen] = _react.useState.call(void 0, false);
2945
- const isOpen = _nullishCoalesce(_optionalChain([config, 'optionalAccess', _78 => _78.open]), () => ( ownIsOpen));
2946
- const onOpenChange = _optionalChain([config, 'optionalAccess', _79 => _79.onOpenChange]);
3074
+ const isOpen = _nullishCoalesce(_optionalChain([config, 'optionalAccess', _87 => _87.open]), () => ( ownIsOpen));
3075
+ const onOpenChange = _optionalChain([config, 'optionalAccess', _88 => _88.onOpenChange]);
2947
3076
  const setIsOpen = (next) => {
2948
- if (_optionalChain([config, 'optionalAccess', _80 => _80.open]) === void 0) setOwnIsOpen(next);
2949
- _optionalChain([onOpenChange, 'optionalCall', _81 => _81(next)]);
3077
+ if (_optionalChain([config, 'optionalAccess', _89 => _89.open]) === void 0) setOwnIsOpen(next);
3078
+ _optionalChain([onOpenChange, 'optionalCall', _90 => _90(next)]);
2950
3079
  };
2951
3080
  const [collapsedSize, setCollapsedSize] = _react.useState.call(void 0, null);
2952
3081
  const [prevCollapsed, setPrevCollapsed] = _react.useState.call(void 0, collapsed);
@@ -2966,8 +3095,8 @@ function useAppLayoutSidePanel(config, row) {
2966
3095
  _react.useEffect.call(void 0, () => {
2967
3096
  const couldDock = prevCanDockRef.current;
2968
3097
  prevCanDockRef.current = layout.canDock;
2969
- if (!couldDock && layout.canDock && _optionalChain([config, 'optionalAccess', _82 => _82.open])) _optionalChain([onOpenChange, 'optionalCall', _83 => _83(false)]);
2970
- }, [layout.canDock, _optionalChain([config, 'optionalAccess', _84 => _84.open]), onOpenChange]);
3098
+ if (!couldDock && layout.canDock && _optionalChain([config, 'optionalAccess', _91 => _91.open])) _optionalChain([onOpenChange, 'optionalCall', _92 => _92(false)]);
3099
+ }, [layout.canDock, _optionalChain([config, 'optionalAccess', _93 => _93.open]), onOpenChange]);
2971
3100
  if (!enabled) return null;
2972
3101
  const animate = (next) => {
2973
3102
  if (!reduceMotion) setMorph(next);
@@ -3121,14 +3250,7 @@ function SidePanelResizeHandle({ state, label, controls }) {
3121
3250
  onPointerCancel: endDrag,
3122
3251
  onKeyDown: handleKeyDown,
3123
3252
  className: "group absolute inset-y-0 left-0 z-10 flex w-4 -translate-x-1/2 cursor-col-resize touch-none select-none items-center justify-center outline-none",
3124
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3125
- "span",
3126
- {
3127
- "aria-hidden": true,
3128
- className: "flex h-8 w-4 items-center justify-center rounded-sm border border-ods-border bg-ods-card text-ods-text-secondary transition-colors group-hover:border-ods-border-hover group-focus-visible:border-ods-accent group-focus-visible:text-ods-accent",
3129
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkIWCYHXS3cjs.Menu01Icon, { size: 12 })
3130
- }
3131
- )
3253
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEV6BPF47cjs.PanelResizeGrip, {})
3132
3254
  }
3133
3255
  );
3134
3256
  }
@@ -3228,13 +3350,13 @@ var MobileBurgerMenu = _react2.default.memo(function MobileBurgerMenuImpl({
3228
3350
  }) {
3229
3351
  const panelRef = _react.useRef.call(void 0, null);
3230
3352
  _overlays.usePreventScroll.call(void 0, { isDisabled: !isOpen });
3231
- _chunkLWMWY3JOcjs.useFocusTrap.call(void 0, panelRef, isOpen, { onEscape: onClose });
3353
+ _chunkE7M54JWWcjs.useFocusTrap.call(void 0, panelRef, isOpen, { onEscape: onClose });
3232
3354
  const handleItemClick = _react.useCallback.call(void 0,
3233
3355
  (item) => {
3234
3356
  if (item.onClick) {
3235
3357
  item.onClick();
3236
3358
  } else if (item.path) {
3237
- _optionalChain([config, 'access', _85 => _85.onNavigate, 'optionalCall', _86 => _86(item.path)]);
3359
+ _optionalChain([config, 'access', _94 => _94.onNavigate, 'optionalCall', _95 => _95(item.path)]);
3238
3360
  }
3239
3361
  onClose();
3240
3362
  },
@@ -3260,7 +3382,7 @@ var MobileBurgerMenu = _react2.default.memo(function MobileBurgerMenuImpl({
3260
3382
  (item, event) => {
3261
3383
  if (item.path && !item.onClick) {
3262
3384
  if (isModifiedClick(event)) return;
3263
- if (config.onNavigate) _optionalChain([event, 'optionalAccess', _87 => _87.preventDefault, 'call', _88 => _88()]);
3385
+ if (config.onNavigate) _optionalChain([event, 'optionalAccess', _96 => _96.preventDefault, 'call', _97 => _97()]);
3264
3386
  }
3265
3387
  handleItemClick(item);
3266
3388
  },
@@ -3317,7 +3439,7 @@ var MobileBurgerMenu = _react2.default.memo(function MobileBurgerMenuImpl({
3317
3439
  "aria-disabled": disabled || void 0,
3318
3440
  children: [
3319
3441
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3320
- _chunkGRHF5SWLcjs.SquareAvatar,
3442
+ _chunkNFNSPLGCcjs.SquareAvatar,
3321
3443
  {
3322
3444
  src: user.userAvatarUrl || void 0,
3323
3445
  alt: user.userName || "User",
@@ -3358,7 +3480,7 @@ var MobileBurgerMenu = _react2.default.memo(function MobileBurgerMenuImpl({
3358
3480
  {
3359
3481
  className: _chunk63A4GZMBcjs.cn.call(void 0,
3360
3482
  "absolute inset-0",
3361
- _chunkTRZEFT2Ncjs.OVERLAY_BACKDROP_CLASS,
3483
+ _chunkWI7EXAZTcjs.OVERLAY_BACKDROP_CLASS,
3362
3484
  "transition-all duration-300 motion-reduce:transition-none",
3363
3485
  isOpen ? "pointer-events-auto opacity-100" : "opacity-0"
3364
3486
  ),
@@ -3385,7 +3507,7 @@ var MobileBurgerMenu = _react2.default.memo(function MobileBurgerMenuImpl({
3385
3507
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex min-h-0 flex-1 flex-col gap-[var(--spacing-system-mf)] overflow-y-auto overflow-x-hidden overscroll-contain p-[var(--spacing-system-xsf)]", children: [
3386
3508
  userCard,
3387
3509
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
3388
- _optionalChain([config, 'access', _89 => _89.topSlot, 'optionalCall', _90 => _90({ minimized: false })]),
3510
+ _optionalChain([config, 'access', _98 => _98.topSlot, 'optionalCall', _99 => _99({ minimized: false })]),
3389
3511
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { "aria-label": "Primary navigation", className: "flex flex-col gap-[var(--spacing-system-xxs)]", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
3390
3512
  NavigationSidebarGroupedEntries,
3391
3513
  {
@@ -3430,7 +3552,7 @@ var MobileBurgerMenu = _react2.default.memo(function MobileBurgerMenuImpl({
3430
3552
  {
3431
3553
  className: _chunk63A4GZMBcjs.cn.call(void 0,
3432
3554
  "absolute inset-0 z-[100] md:hidden",
3433
- _chunkTRZEFT2Ncjs.OVERLAY_BACKDROP_CLASS,
3555
+ _chunkWI7EXAZTcjs.OVERLAY_BACKDROP_CLASS,
3434
3556
  "transition-all duration-300 motion-reduce:transition-none",
3435
3557
  isOpen ? "opacity-100" : "pointer-events-none opacity-0"
3436
3558
  ),
@@ -3462,7 +3584,7 @@ var MobileBurgerMenu = _react2.default.memo(function MobileBurgerMenuImpl({
3462
3584
  inert: !isOpen || void 0,
3463
3585
  children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-1 flex-col gap-4 overflow-y-auto overflow-x-hidden overscroll-contain p-4", children: [
3464
3586
  userCard,
3465
- _optionalChain([config, 'access', _91 => _91.topSlot, 'optionalCall', _92 => _92({ minimized: false })]),
3587
+ _optionalChain([config, 'access', _100 => _100.topSlot, 'optionalCall', _101 => _101({ minimized: false })]),
3466
3588
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { "aria-label": "Primary navigation", children: renderNavigationGrid(primaryItems) }),
3467
3589
  secondaryItems.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "nav", { "aria-label": "Secondary navigation", className: "flex flex-col gap-3", children: secondaryItems.map((item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react2.default.Fragment, { children: renderNavigationItem(item, false) }, item.id)) }),
3468
3590
  logoutButton
@@ -3517,7 +3639,7 @@ function AppLayout({
3517
3639
  const update = () => {
3518
3640
  const width = mainElement.clientWidth;
3519
3641
  setContentWidth(
3520
- (previous) => previous !== null && _chunkMG3HJIGGcjs.contentBreakpointFor.call(void 0, previous) === _chunkMG3HJIGGcjs.contentBreakpointFor.call(void 0, width) ? previous : width
3642
+ (previous) => previous !== null && _chunkUAI4VMEFcjs.contentBreakpointFor.call(void 0, previous) === _chunkUAI4VMEFcjs.contentBreakpointFor.call(void 0, width) ? previous : width
3521
3643
  );
3522
3644
  };
3523
3645
  update();
@@ -3542,8 +3664,8 @@ function AppLayout({
3542
3664
  isMingoAIActive: sidePanelState.isOpen,
3543
3665
  mingoAICloseWhenActive: true
3544
3666
  };
3545
- const contentCovered = _optionalChain([sidePanelState, 'optionalAccess', _93 => _93.coversContent]) === true;
3546
- const contentOverlapped = _optionalChain([sidePanelState, 'optionalAccess', _94 => _94.overlapsContent]) === true;
3667
+ const contentCovered = _optionalChain([sidePanelState, 'optionalAccess', _102 => _102.coversContent]) === true;
3668
+ const contentOverlapped = _optionalChain([sidePanelState, 'optionalAccess', _103 => _103.overlapsContent]) === true;
3547
3669
  const mobileMenuOpenRef = _react.useRef.call(void 0, mobileMenuOpen);
3548
3670
  const menuControlledRef = _react.useRef.call(void 0, menuControlled);
3549
3671
  const onMobileMenuOpenChangeRef = _react.useRef.call(void 0, onMobileMenuOpenChange);
@@ -3554,7 +3676,7 @@ function AppLayout({
3554
3676
  });
3555
3677
  const setMobileMenuOpen = _react.useCallback.call(void 0, (next) => {
3556
3678
  if (!menuControlledRef.current) setUncontrolledMenuOpen(next);
3557
- if (next !== mobileMenuOpenRef.current) _optionalChain([onMobileMenuOpenChangeRef, 'access', _95 => _95.current, 'optionalCall', _96 => _96(next)]);
3679
+ if (next !== mobileMenuOpenRef.current) _optionalChain([onMobileMenuOpenChangeRef, 'access', _104 => _104.current, 'optionalCall', _105 => _105(next)]);
3558
3680
  }, []);
3559
3681
  const drawerHandlesRef = _react.useRef.call(void 0, /* @__PURE__ */ new Set());
3560
3682
  const handleToggleMobileMenu = _react.useCallback.call(void 0, () => {
@@ -3630,7 +3752,7 @@ function AppLayout({
3630
3752
  disabled
3631
3753
  }
3632
3754
  ),
3633
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkB4THEQOWcjs.NotificationDrawer, { showClose: !desktopHeader }),
3755
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkDYDQLS2Rcjs.NotificationDrawer, { showClose: !desktopHeader }),
3634
3756
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
3635
3757
  "div",
3636
3758
  {
@@ -3667,9 +3789,9 @@ function AppLayout({
3667
3789
  style: bottomInset > 0 || dockFloats ? {
3668
3790
  paddingBottom: bottomInset,
3669
3791
  [COMPOSER_DOCK_INSET_VAR]: `${dockFloats ? dockHeight : 0}px`,
3670
- ...dockFloats && dockHeight > 0 ? _chunkB4THEQOWcjs.previewFadeMask.call(void 0, `calc(100% - ${dockHeight}px)`) : {}
3792
+ ...dockFloats && dockHeight > 0 ? _chunkDYDQLS2Rcjs.previewFadeMask.call(void 0, `calc(100% - ${dockHeight}px)`) : {}
3671
3793
  } : void 0,
3672
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMG3HJIGGcjs.ContentAreaWidthContext.Provider, { value: contentAreaWidth, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOT6P57ZScjs.ComposerDockHeightContext.Provider, { value: hasDock ? dockHeight : 0, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: adaptive ? "ods-content-scope" : "contents", children }) }) })
3794
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUAI4VMEFcjs.ContentAreaWidthContext.Provider, { value: contentAreaWidth, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOT6P57ZScjs.ComposerDockHeightContext.Provider, { value: hasDock ? dockHeight : 0, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: adaptive ? "ods-content-scope" : "contents", children }) }) })
3673
3795
  }
3674
3796
  ),
3675
3797
  hasSheet && // Over the page down to the dock's top edge. z-40: the
@@ -3681,7 +3803,7 @@ function AppLayout({
3681
3803
  "data-composer-sheet-layer": "",
3682
3804
  className: "ods-content-area pointer-events-none absolute inset-x-0 top-0 z-40",
3683
3805
  style: { bottom: dockHeight },
3684
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMG3HJIGGcjs.ContentAreaWidthContext.Provider, { value: contentAreaWidth, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOT6P57ZScjs.ComposerDockHeightContext.Provider, { value: dockHeight, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "ods-content-scope", children: composerSheet }) }) })
3806
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUAI4VMEFcjs.ContentAreaWidthContext.Provider, { value: contentAreaWidth, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOT6P57ZScjs.ComposerDockHeightContext.Provider, { value: dockHeight, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "ods-content-scope", children: composerSheet }) }) })
3685
3807
  }
3686
3808
  ),
3687
3809
  hasDock && // Its own container + token scope: a container query cannot
@@ -3698,7 +3820,7 @@ function AppLayout({
3698
3820
  // is transparent.
3699
3821
  dockFloats && "pointer-events-none absolute inset-x-0 bottom-0 z-40"
3700
3822
  ),
3701
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMG3HJIGGcjs.ContentAreaWidthContext.Provider, { value: contentAreaWidth, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "ods-content-scope", children: composerDock }) })
3823
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUAI4VMEFcjs.ContentAreaWidthContext.Provider, { value: contentAreaWidth, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "ods-content-scope", children: composerDock }) })
3702
3824
  }
3703
3825
  )
3704
3826
  ]