chordia-ui 3.3.8 → 3.3.9

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 (159) hide show
  1. package/dist/AgentLiftCard.cjs.js.map +1 -1
  2. package/dist/AgentLiftCard.es.js +5 -3
  3. package/dist/AgentLiftCard.es.js.map +1 -1
  4. package/dist/CustomFilterChips.cjs.js.map +1 -1
  5. package/dist/CustomFilterChips.es.js +2 -1
  6. package/dist/CustomFilterChips.es.js.map +1 -1
  7. package/dist/FileUploadingState.cjs.js.map +1 -1
  8. package/dist/FileUploadingState.es.js +16 -10
  9. package/dist/FileUploadingState.es.js.map +1 -1
  10. package/dist/IntegrationCard.cjs.js.map +1 -1
  11. package/dist/IntegrationCard.es.js +3 -3
  12. package/dist/IntegrationCard.es.js.map +1 -1
  13. package/dist/SectionLabel.cjs.js.map +1 -1
  14. package/dist/SectionLabel.es.js.map +1 -1
  15. package/dist/SmallButton.cjs.js.map +1 -1
  16. package/dist/SmallButton.es.js +16 -16
  17. package/dist/SmallButton.es.js.map +1 -1
  18. package/dist/SummarySection.cjs.js.map +1 -1
  19. package/dist/SummarySection.es.js +11 -9
  20. package/dist/SummarySection.es.js.map +1 -1
  21. package/dist/TextInput.cjs.js.map +1 -1
  22. package/dist/TextInput.es.js.map +1 -1
  23. package/dist/Timeline.cjs.js.map +1 -1
  24. package/dist/Timeline.es.js +14 -8
  25. package/dist/Timeline.es.js.map +1 -1
  26. package/dist/Tooltip.cjs.js +1 -1
  27. package/dist/Tooltip.cjs.js.map +1 -1
  28. package/dist/Tooltip.es.js +31 -20
  29. package/dist/Tooltip.es.js.map +1 -1
  30. package/dist/TourGuideTooltip.cjs.js.map +1 -1
  31. package/dist/TourGuideTooltip.es.js +2 -1
  32. package/dist/TourGuideTooltip.es.js.map +1 -1
  33. package/dist/UpdatedInteractionRecording.cjs.js +1 -1
  34. package/dist/UpdatedInteractionRecording.cjs.js.map +1 -1
  35. package/dist/UpdatedInteractionRecording.es.js +79 -97
  36. package/dist/UpdatedInteractionRecording.es.js.map +1 -1
  37. package/dist/UploadInteraction.cjs.js.map +1 -1
  38. package/dist/UploadInteraction.es.js.map +1 -1
  39. package/dist/colors.cjs.js +2 -0
  40. package/dist/colors.cjs.js.map +1 -0
  41. package/dist/colors.es.js +2 -0
  42. package/dist/colors.es.js.map +1 -0
  43. package/dist/components/UpdatedInteractionDetails.cjs.js +10 -1
  44. package/dist/components/UpdatedInteractionDetails.cjs.js.map +1 -1
  45. package/dist/components/UpdatedInteractionDetails.es.js +1531 -9
  46. package/dist/components/UpdatedInteractionDetails.es.js.map +1 -1
  47. package/dist/components/chat.cjs.js +30 -1
  48. package/dist/components/chat.cjs.js.map +1 -1
  49. package/dist/components/chat.es.js +2222 -7
  50. package/dist/components/chat.es.js.map +1 -1
  51. package/dist/components/common.cjs.js +1 -1
  52. package/dist/components/common.es.js +32 -25
  53. package/dist/components/common.es.js.map +1 -1
  54. package/dist/components/data.cjs.js +1 -1
  55. package/dist/components/data.cjs.js.map +1 -1
  56. package/dist/components/data.es.js +1033 -4
  57. package/dist/components/data.es.js.map +1 -1
  58. package/dist/components/layout.cjs.js +3 -1
  59. package/dist/components/layout.cjs.js.map +1 -1
  60. package/dist/components/layout.es.js +1533 -8
  61. package/dist/components/layout.es.js.map +1 -1
  62. package/dist/components/login.cjs.js +1 -1
  63. package/dist/components/login.es.js +6 -2
  64. package/dist/components/login.es.js.map +1 -1
  65. package/dist/components/media.cjs.js +1 -1
  66. package/dist/components/media.cjs.js.map +1 -1
  67. package/dist/components/media.es.js +220 -6
  68. package/dist/components/media.es.js.map +1 -1
  69. package/dist/components/models.cjs.js +1 -1
  70. package/dist/components/models.cjs.js.map +1 -1
  71. package/dist/components/models.es.js +91 -2
  72. package/dist/components/models.es.js.map +1 -1
  73. package/dist/components/navigation.cjs.js +1 -1
  74. package/dist/components/navigation.cjs.js.map +1 -1
  75. package/dist/components/navigation.es.js +766 -7
  76. package/dist/components/navigation.es.js.map +1 -1
  77. package/dist/components/notifications.cjs.js +1 -1
  78. package/dist/components/notifications.cjs.js.map +1 -1
  79. package/dist/components/notifications.es.js +368 -3
  80. package/dist/components/notifications.es.js.map +1 -1
  81. package/dist/components/onboarding.cjs.js +1 -1
  82. package/dist/components/onboarding.cjs.js.map +1 -1
  83. package/dist/components/onboarding.es.js +985 -7
  84. package/dist/components/onboarding.es.js.map +1 -1
  85. package/dist/components/primitives.cjs.js +1 -1
  86. package/dist/components/primitives.cjs.js.map +1 -1
  87. package/dist/components/primitives.es.js +635 -25
  88. package/dist/components/primitives.es.js.map +1 -1
  89. package/dist/debugger-wc.cjs.js +4 -4
  90. package/dist/debugger-wc.cjs.js.map +1 -1
  91. package/dist/debugger-wc.es.js +15 -11
  92. package/dist/debugger-wc.es.js.map +1 -1
  93. package/dist/index.cjs.js +1 -1
  94. package/dist/index.cjs2.js +2 -49
  95. package/dist/index.cjs2.js.map +1 -1
  96. package/dist/index.cjs3.js +50 -0
  97. package/dist/index.cjs3.js.map +1 -0
  98. package/dist/index.es.js +104 -99
  99. package/dist/index.es.js.map +1 -1
  100. package/dist/index.es2.js +2632 -1776
  101. package/dist/index.es2.js.map +1 -1
  102. package/dist/index.es3.js +1944 -0
  103. package/dist/index.es3.js.map +1 -0
  104. package/dist/pages/interactionDetails.cjs.js +1 -1
  105. package/dist/pages/interactionDetails.cjs.js.map +1 -1
  106. package/dist/pages/interactionDetails.es.js +70 -47
  107. package/dist/pages/interactionDetails.es.js.map +1 -1
  108. package/dist/sortable.esm.cjs.js +1 -1
  109. package/dist/sortable.esm.cjs.js.map +1 -1
  110. package/dist/sortable.esm.es.js +55 -53
  111. package/dist/sortable.esm.es.js.map +1 -1
  112. package/dist/{chordia-ui.css → style.css} +1 -1
  113. package/package.json +1 -1
  114. package/src/components/UpdatedInteractionDetails/UpdatedInteractionDetails.jsx +318 -77
  115. package/src/components/UpdatedInteractionDetails/UpdatedInteractionRecording.jsx +7 -17
  116. package/dist/ChartRenderer.cjs.js +0 -31
  117. package/dist/ChartRenderer.cjs.js.map +0 -1
  118. package/dist/ChartRenderer.es.js +0 -2210
  119. package/dist/ChartRenderer.es.js.map +0 -1
  120. package/dist/GettingStarted.cjs.js +0 -2
  121. package/dist/GettingStarted.cjs.js.map +0 -1
  122. package/dist/GettingStarted.es.js +0 -983
  123. package/dist/GettingStarted.es.js.map +0 -1
  124. package/dist/InlineConfirm.cjs.js +0 -2
  125. package/dist/InlineConfirm.cjs.js.map +0 -1
  126. package/dist/InlineConfirm.es.js +0 -618
  127. package/dist/InlineConfirm.es.js.map +0 -1
  128. package/dist/InteractionSummaryCard.cjs.js +0 -2
  129. package/dist/InteractionSummaryCard.cjs.js.map +0 -1
  130. package/dist/InteractionSummaryCard.es.js +0 -216
  131. package/dist/InteractionSummaryCard.es.js.map +0 -1
  132. package/dist/LoginPage.cjs.js +0 -3
  133. package/dist/LoginPage.cjs.js.map +0 -1
  134. package/dist/LoginPage.es.js +0 -2618
  135. package/dist/LoginPage.es.js.map +0 -1
  136. package/dist/NavigationBar.cjs.js +0 -2
  137. package/dist/NavigationBar.cjs.js.map +0 -1
  138. package/dist/NavigationBar.es.js +0 -762
  139. package/dist/NavigationBar.es.js.map +0 -1
  140. package/dist/NotificationPanel.cjs.js +0 -2
  141. package/dist/NotificationPanel.cjs.js.map +0 -1
  142. package/dist/NotificationPanel.es.js +0 -371
  143. package/dist/NotificationPanel.es.js.map +0 -1
  144. package/dist/OverlayPanel.cjs.js +0 -2
  145. package/dist/OverlayPanel.cjs.js.map +0 -1
  146. package/dist/OverlayPanel.es.js +0 -93
  147. package/dist/OverlayPanel.es.js.map +0 -1
  148. package/dist/SplitPane.cjs.js +0 -4
  149. package/dist/SplitPane.cjs.js.map +0 -1
  150. package/dist/SplitPane.es.js +0 -1531
  151. package/dist/SplitPane.es.js.map +0 -1
  152. package/dist/SummaryStatsPanel.cjs.js +0 -2
  153. package/dist/SummaryStatsPanel.cjs.js.map +0 -1
  154. package/dist/SummaryStatsPanel.es.js +0 -1027
  155. package/dist/SummaryStatsPanel.es.js.map +0 -1
  156. package/dist/UpdatedInteractionDetails.cjs.js +0 -11
  157. package/dist/UpdatedInteractionDetails.cjs.js.map +0 -1
  158. package/dist/UpdatedInteractionDetails.es.js +0 -1310
  159. package/dist/UpdatedInteractionDetails.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"models.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"models.cjs.js","sources":["../../src/components/models/OverlayPanel.jsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { X } from \"lucide-react\";\nimport { createPortal } from \"react-dom\";\n\n/**\n * OverlayPanel\n *\n * Generic overlay + panel shell that handles:\n * - Portal to document.body\n * - Backdrop\n * - Centered scrollable panel with max height\n *\n * Responsibility:\n * - Layout, scroll, close behaviors\n * - Does NOT own feature logic or data fetching\n */\nexport default function OverlayPanel({\n open,\n onClose,\n title = \"\",\n children,\n maxWidth = 700,\n showCloseButton = true,\n footer = null,\n className = \"\",\n bodyClassName = \"\",\n}) {\n if (!open) return null;\n if (typeof document === \"undefined\") return null;\n\n const content = (\n <div\n className=\"fixed inset-0 flex items-center justify-center bg-black/30 p-4\"\n style={{ zIndex: 1004 }}\n >\n <div\n className={`bg-white rounded-xl shadow-xl relative w-full ${className}`}\n style={{\n maxWidth,\n maxHeight: \"90vh\",\n display: \"flex\",\n flexDirection: \"column\",\n overflow: \"hidden\",\n }}\n >\n {/* Header: fixed at top, no scroll */}\n <div\n style={{\n position: \"relative\",\n flexShrink: 0,\n background: \"#fff\",\n borderBottom: \"1px solid rgba(0,0,0,0.08)\",\n padding: title || showCloseButton ? \"1rem 1.5rem 1rem\" : 0,\n borderRadius: \"12px 12px 0 0\",\n }}\n >\n {showCloseButton && (\n <button\n type=\"button\"\n className=\"absolute top-3 right-3 text-gray-400 hover:text-black\"\n onClick={onClose}\n >\n <X size={20} />\n </button>\n )}\n {title && (\n <div className=\"pr-8\">\n <h2 className=\"font-bold text-lg\" style={{ fontFamily: 'var(--font-sans)' }}>{title}</h2>\n </div>\n )}\n </div>\n\n {/* Body: only this section scrolls */}\n <div\n className={`custom-thin-scrollbar-library ${bodyClassName}`}\n style={{\n flex: 1,\n minHeight: 0,\n overflowY: \"auto\",\n padding: \"1rem 1.5rem\",\n }}\n >\n {children}\n </div>\n\n {footer && (\n <div\n style={{\n flexShrink: 0,\n padding: \"1rem 1.5rem\",\n borderTop: \"1px solid rgba(0,0,0,0.08)\",\n }}\n >\n {footer}\n </div>\n )}\n </div>\n </div>\n );\n\n return createPortal(content, document.body);\n}\n\n"],"names":["OverlayPanel","open","onClose","title","children","maxWidth","showCloseButton","footer","className","bodyClassName","content","jsx","jsxs","X","createPortal"],"mappings":"6LAkBA,SAAwBA,EAAa,CACnC,KAAAC,EACA,QAAAC,EACA,MAAAC,EAAQ,GACR,SAAAC,EACA,SAAAC,EAAW,IACX,gBAAAC,EAAkB,GAClB,OAAAC,EAAS,KACT,UAAAC,EAAY,GACZ,cAAAC,EAAgB,EAClB,EAAG,CAED,GADI,CAACR,GACD,OAAO,SAAa,IAAoB,OAAA,KAE5C,MAAMS,EACJC,EAAA,IAAC,MAAA,CACC,UAAU,iEACV,MAAO,CAAE,OAAQ,IAAK,EAEtB,SAAAC,EAAA,KAAC,MAAA,CACC,UAAW,iDAAiDJ,CAAS,GACrE,MAAO,CACL,SAAAH,EACA,UAAW,OACX,QAAS,OACT,cAAe,SACf,SAAU,QACZ,EAGA,SAAA,CAAAO,EAAA,KAAC,MAAA,CACC,MAAO,CACL,SAAU,WACV,WAAY,EACZ,WAAY,OACZ,aAAc,6BACd,QAAST,GAASG,EAAkB,mBAAqB,EACzD,aAAc,eAChB,EAEC,SAAA,CACCA,GAAAK,EAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAU,wDACV,QAAST,EAET,SAAAS,EAAAA,IAACE,EAAAA,EAAE,CAAA,KAAM,EAAI,CAAA,CAAA,CACf,EAEDV,GACCQ,EAAAA,IAAC,MAAI,CAAA,UAAU,OACb,SAACA,EAAA,IAAA,KAAA,CAAG,UAAU,oBAAoB,MAAO,CAAE,WAAY,kBAAmB,EAAI,UAAM,CAAA,EACtF,CAAA,CAAA,CAEJ,EAGAA,EAAA,IAAC,MAAA,CACC,UAAW,iCAAiCF,CAAa,GACzD,MAAO,CACL,KAAM,EACN,UAAW,EACX,UAAW,OACX,QAAS,aACX,EAEC,SAAAL,CAAA,CACH,EAECG,GACCI,EAAA,IAAC,MAAA,CACC,MAAO,CACL,WAAY,EACZ,QAAS,cACT,UAAW,4BACb,EAEC,SAAAJ,CAAA,CACH,CAAA,CAAA,CAEJ,CAAA,CAAA,EAIG,OAAAO,eAAaJ,EAAS,SAAS,IAAI,CAC5C"}
@@ -1,5 +1,94 @@
1
- import { O as r } from "../OverlayPanel.es.js";
1
+ import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
+ import "react";
3
+ import { X as f } from "lucide-react";
4
+ import { createPortal as u } from "react-dom";
5
+ function y({
6
+ open: n,
7
+ onClose: o,
8
+ title: r = "",
9
+ children: d,
10
+ maxWidth: a = 700,
11
+ showCloseButton: l = !0,
12
+ footer: t = null,
13
+ className: s = "",
14
+ bodyClassName: c = ""
15
+ }) {
16
+ if (!n || typeof document > "u")
17
+ return null;
18
+ const m = /* @__PURE__ */ e(
19
+ "div",
20
+ {
21
+ className: "fixed inset-0 flex items-center justify-center bg-black/30 p-4",
22
+ style: { zIndex: 1004 },
23
+ children: /* @__PURE__ */ i(
24
+ "div",
25
+ {
26
+ className: `bg-white rounded-xl shadow-xl relative w-full ${s}`,
27
+ style: {
28
+ maxWidth: a,
29
+ maxHeight: "90vh",
30
+ display: "flex",
31
+ flexDirection: "column",
32
+ overflow: "hidden"
33
+ },
34
+ children: [
35
+ /* @__PURE__ */ i(
36
+ "div",
37
+ {
38
+ style: {
39
+ position: "relative",
40
+ flexShrink: 0,
41
+ background: "#fff",
42
+ borderBottom: "1px solid rgba(0,0,0,0.08)",
43
+ padding: r || l ? "1rem 1.5rem 1rem" : 0,
44
+ borderRadius: "12px 12px 0 0"
45
+ },
46
+ children: [
47
+ l && /* @__PURE__ */ e(
48
+ "button",
49
+ {
50
+ type: "button",
51
+ className: "absolute top-3 right-3 text-gray-400 hover:text-black",
52
+ onClick: o,
53
+ children: /* @__PURE__ */ e(f, { size: 20 })
54
+ }
55
+ ),
56
+ r && /* @__PURE__ */ e("div", { className: "pr-8", children: /* @__PURE__ */ e("h2", { className: "font-bold text-lg", style: { fontFamily: "var(--font-sans)" }, children: r }) })
57
+ ]
58
+ }
59
+ ),
60
+ /* @__PURE__ */ e(
61
+ "div",
62
+ {
63
+ className: `custom-thin-scrollbar-library ${c}`,
64
+ style: {
65
+ flex: 1,
66
+ minHeight: 0,
67
+ overflowY: "auto",
68
+ padding: "1rem 1.5rem"
69
+ },
70
+ children: d
71
+ }
72
+ ),
73
+ t && /* @__PURE__ */ e(
74
+ "div",
75
+ {
76
+ style: {
77
+ flexShrink: 0,
78
+ padding: "1rem 1.5rem",
79
+ borderTop: "1px solid rgba(0,0,0,0.08)"
80
+ },
81
+ children: t
82
+ }
83
+ )
84
+ ]
85
+ }
86
+ )
87
+ }
88
+ );
89
+ return u(m, document.body);
90
+ }
2
91
  export {
3
- r as OverlayPanel
92
+ y as OverlayPanel
4
93
  };
5
94
  //# sourceMappingURL=models.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"models.es.js","sources":["../../src/components/models/OverlayPanel.jsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { X } from \"lucide-react\";\nimport { createPortal } from \"react-dom\";\n\n/**\n * OverlayPanel\n *\n * Generic overlay + panel shell that handles:\n * - Portal to document.body\n * - Backdrop\n * - Centered scrollable panel with max height\n *\n * Responsibility:\n * - Layout, scroll, close behaviors\n * - Does NOT own feature logic or data fetching\n */\nexport default function OverlayPanel({\n open,\n onClose,\n title = \"\",\n children,\n maxWidth = 700,\n showCloseButton = true,\n footer = null,\n className = \"\",\n bodyClassName = \"\",\n}) {\n if (!open) return null;\n if (typeof document === \"undefined\") return null;\n\n const content = (\n <div\n className=\"fixed inset-0 flex items-center justify-center bg-black/30 p-4\"\n style={{ zIndex: 1004 }}\n >\n <div\n className={`bg-white rounded-xl shadow-xl relative w-full ${className}`}\n style={{\n maxWidth,\n maxHeight: \"90vh\",\n display: \"flex\",\n flexDirection: \"column\",\n overflow: \"hidden\",\n }}\n >\n {/* Header: fixed at top, no scroll */}\n <div\n style={{\n position: \"relative\",\n flexShrink: 0,\n background: \"#fff\",\n borderBottom: \"1px solid rgba(0,0,0,0.08)\",\n padding: title || showCloseButton ? \"1rem 1.5rem 1rem\" : 0,\n borderRadius: \"12px 12px 0 0\",\n }}\n >\n {showCloseButton && (\n <button\n type=\"button\"\n className=\"absolute top-3 right-3 text-gray-400 hover:text-black\"\n onClick={onClose}\n >\n <X size={20} />\n </button>\n )}\n {title && (\n <div className=\"pr-8\">\n <h2 className=\"font-bold text-lg\" style={{ fontFamily: 'var(--font-sans)' }}>{title}</h2>\n </div>\n )}\n </div>\n\n {/* Body: only this section scrolls */}\n <div\n className={`custom-thin-scrollbar-library ${bodyClassName}`}\n style={{\n flex: 1,\n minHeight: 0,\n overflowY: \"auto\",\n padding: \"1rem 1.5rem\",\n }}\n >\n {children}\n </div>\n\n {footer && (\n <div\n style={{\n flexShrink: 0,\n padding: \"1rem 1.5rem\",\n borderTop: \"1px solid rgba(0,0,0,0.08)\",\n }}\n >\n {footer}\n </div>\n )}\n </div>\n </div>\n );\n\n return createPortal(content, document.body);\n}\n\n"],"names":["OverlayPanel","open","onClose","title","children","maxWidth","showCloseButton","footer","className","bodyClassName","content","jsx","jsxs","X","createPortal"],"mappings":";;;;AAkBA,SAAwBA,EAAa;AAAA,EACnC,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,iBAAAC,IAAkB;AAAA,EAClB,QAAAC,IAAS;AAAA,EACT,WAAAC,IAAY;AAAA,EACZ,eAAAC,IAAgB;AAClB,GAAG;AAED,MADI,CAACR,KACD,OAAO,WAAa;AAAoB,WAAA;AAE5C,QAAMS,IACJ,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAO,EAAE,QAAQ,KAAK;AAAA,MAEtB,UAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,iDAAiDJ,CAAS;AAAA,UACrE,OAAO;AAAA,YACL,UAAAH;AAAA,YACA,WAAW;AAAA,YACX,SAAS;AAAA,YACT,eAAe;AAAA,YACf,UAAU;AAAA,UACZ;AAAA,UAGA,UAAA;AAAA,YAAA,gBAAAO;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,UAAU;AAAA,kBACV,YAAY;AAAA,kBACZ,YAAY;AAAA,kBACZ,cAAc;AAAA,kBACd,SAAST,KAASG,IAAkB,qBAAqB;AAAA,kBACzD,cAAc;AAAA,gBAChB;AAAA,gBAEC,UAAA;AAAA,kBACCA,KAAA,gBAAAK;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,MAAK;AAAA,sBACL,WAAU;AAAA,sBACV,SAAST;AAAA,sBAET,UAAA,gBAAAS,EAACE,GAAE,EAAA,MAAM,GAAI,CAAA;AAAA,oBAAA;AAAA,kBACf;AAAA,kBAEDV,KACC,gBAAAQ,EAAC,OAAI,EAAA,WAAU,QACb,UAAC,gBAAAA,EAAA,MAAA,EAAG,WAAU,qBAAoB,OAAO,EAAE,YAAY,mBAAmB,GAAI,YAAM,CAAA,GACtF;AAAA,gBAAA;AAAA,cAAA;AAAA,YAEJ;AAAA,YAGA,gBAAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAW,iCAAiCF,CAAa;AAAA,gBACzD,OAAO;AAAA,kBACL,MAAM;AAAA,kBACN,WAAW;AAAA,kBACX,WAAW;AAAA,kBACX,SAAS;AAAA,gBACX;AAAA,gBAEC,UAAAL;AAAA,cAAA;AAAA,YACH;AAAA,YAECG,KACC,gBAAAI;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,OAAO;AAAA,kBACL,YAAY;AAAA,kBACZ,SAAS;AAAA,kBACT,WAAW;AAAA,gBACb;AAAA,gBAEC,UAAAJ;AAAA,cAAA;AAAA,YACH;AAAA,UAAA;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EAAA;AAIG,SAAAO,EAAaJ,GAAS,SAAS,IAAI;AAC5C;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../NavigationBar.cjs.js");exports.NavDropdown=a.NavDropdown;exports.NavDropdownItem=a.NavDropdownItem;exports.NavPill=a.NavPill;exports.NavigationBar=a.NavigationBar;exports.Sidebar=a.Sidebar;exports.StatusIndicator=a.StatusIndicator;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react/jsx-runtime"),T=require("react"),I=require("lucide-react"),U=require("../Tooltip.cjs.js");require("react-dom");const P="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ2IiBoZWlnaHQ9IjQ3IiB2aWV3Qm94PSIwIDAgMTQ2IDQ3IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMzkuNzM0NSAyMy4wODc5QzM5LjczNDUgMTguMzI2NCAzNy45NTYyIDEzLjk4MDYgMzUuMDI2NSAxMC42Nzc4QzMxLjU5ODQgNi44MTMwMyAyNi41OTYxIDQuMzc5OTUgMjEuMDI1NSA0LjM3OTkxQzE1LjU1IDQuMzc5OTEgMTAuNjI2IDYuNzMxNTUgNy4yMDMyNSAxMC40ODE1QzQuMTY3MzIgMTMuODA4NiAyLjMxNzUyIDE4LjIzMTIgMi4zMTc1IDIzLjA4ODlDMi4zMTc1IDI4LjQ3MDQgNC41ODkzNiAzMy4zMjE1IDguMjI4NjQgMzYuNzM1NEw4LjU0NjAyIDM3LjAyNjRDMTEuODY0MyAzOS45OTE5IDE2LjM3NzQgNDEuNzk2OSAyMS4wMjY1IDQxLjc5NjlDMjUuODI4NSA0MS43OTY5IDMwLjIwNjkgMzkuOTg5MiAzMy41MTk3IDM3LjAxNDdDMzcuMzM2MyAzMy41ODc1IDM5LjczNDUgMjguNjE4MSAzOS43MzQ1IDIzLjA4NzlaTTQxLjA5NzggMjMuMDg3OUM0MS4wOTc4IDI5LjAyMSAzOC41MjIgMzQuMzUzNyAzNC40Mjk4IDM4LjAyODRDMzAuODc2NyA0MS4yMTg3IDI2LjE3NzMgNDMuMTYwMiAyMS4wMjY1IDQzLjE2MDJDMTUuODczMiA0My4xNjAyIDEwLjg4NzUgNDEuMDk4OSA3LjI5NjAyIDM3LjcyOTVDMy4zOTM2IDM0LjA2ODggMC45NTQyMjQgMjguODYyMyAwLjk1NDIyNCAyMy4wODg5QzAuOTU0MjM1IDE3Ljg3ODIgMi45NDA0MiAxMy4xMzA4IDYuMTk2NDEgOS41NjI1M0M5Ljg2NjMxIDUuNTQxOCAxNS4xNTExIDMuMDE2NjMgMjEuMDI1NSAzLjAxNjYzQzI3LjAwMjEgMy4wMTY2NiAzMi4zNzAyIDUuNjMwMzIgMzYuMDQ2IDkuNzc0NDRDMzkuMTg4MSAxMy4zMTY4IDQxLjA5NzggMTcuOTgwNiA0MS4wOTc4IDIzLjA4NzlaIiBmaWxsPSIjRThENEEzIi8+CjxwYXRoIGQ9Ik0zNy4yODcyIDIzLjA4OTFDMzcuMjg3MiAxOC44Njk4IDM1LjY3NjkgMTUuMDI2OCAzMy4wMzcyIDEyLjE0MThMMzMuMDM1MiAxMi4xMzk5QzMwLjA2NjcgOC44NzUwMSAyNS43ODYxIDYuODI2NDQgMjEuMDI1NSA2LjgyNjRDMTYuMjU0NiA2LjgyNjQgMTEuOTY0NyA4Ljg4MDYxIDguOTg5MzIgMTIuMTUzNUM2LjM2MzM4IDE1LjA0MjEgNC43NjI3NiAxOC44NzggNC43NjI3NiAyMy4wODkxQzQuNzYyOCAyNy43MTc0IDcuMDIyNTMgMzEuNDcyIDEwLjIxNTkgMzQuNDczOUMxMy4xNzA0IDM3LjI1MTggMTYuODYwNyAzOS4zNTA4IDIxLjAyNTUgMzkuMzUwOEMyNS4yNDI5IDM5LjM1MDggMjkuMDg1MiAzNy43NDQyIDMxLjk3MzcgMzUuMTA5NkwzMi4yNzY0IDM0LjgyNzRDMzUuMzY1MiAzMS44Njg2IDM3LjI4NzEgMjcuNzAzNCAzNy4yODcyIDIzLjA4OTFaTTM4LjQ3OTYgMjMuMDg5MUMzOC40Nzk1IDI4LjIwMTUgMzYuMjc5NCAzMi44MDE5IDMyLjc3NjQgMzUuOTkxNEMyOS42NzcgMzguODE4MiAyNS41NTEzIDQwLjU0MzIgMjEuMDI1NSA0MC41NDMyQzE2LjQ0NjQgNDAuNTQzMiAxMi40Nzg0IDM4LjIzNzkgOS4zOTk0OCAzNS4zNDNDNi4wNTE2OCAzMi4xOTYgMy41NzE0IDI4LjE0NzkgMy41NzEzNSAyMy4wODkxQzMuNTcxMzUgMTguNTcwMSA1LjI4OTA5IDE0LjQ1MTIgOC4xMDY1MSAxMS4zNTE4QzExLjI5ODMgNy44NDA3NCAxNS45MDQ3IDUuNjM0OTkgMjEuMDI1NSA1LjYzNDk5QzI2LjEzNSA1LjYzNTAzIDMwLjczMTEgNy44MzQgMzMuOTE2MSAxMS4zMzYyQzM2Ljc0OTMgMTQuNDMyNCAzOC40Nzk2IDE4LjU2MDIgMzguNDc5NiAyMy4wODkxWiIgZmlsbD0iI0MxRDg5RiIvPgo8cGF0aCBkPSJNMzQuODQxMSAyMy4wODkxQzM0Ljg0MTEgMTkuNDEwMyAzMy4zOTEzIDE2LjA3NjMgMzEuMDQ2MSAxMy42MDA4QzI4LjUyODEgMTAuOTQyNyAyNC45NzQzIDkuMjcyNzYgMjEuMDI1NiA5LjI3MjcyQzE2Ljk1OTQgOS4yNzI3MiAxMy4zMDM2IDExLjAyODUgMTAuNzc1NiAxMy44MjQ1QzguNTU4NSAxNi4yNzU3IDcuMjA5MjMgMTkuNTI0NiA3LjIwOTIzIDIzLjA4OTFDNy4yMDkzIDI2Ljk2ODQgOS40NDY5IDI5LjYxMTYgMTIuMjA1MyAzMi4yMTMyQzE0Ljc4MTUgMzQuNjQyNCAxNy40ODI2IDM2LjkwNDYgMjEuMDI1NiAzNi45MDQ2QzI0LjY1OTcgMzYuOTA0NSAyNy45NjU3IDM1LjQ5OTMgMzAuNDI5OSAzMy4yMDM0QzMzLjE0MzcgMzAuNjgzMiAzNC44NDEgMjcuMDg1IDM0Ljg0MTEgMjMuMDg5MVpNMzUuODYzNSAyMy4wODkxQzM1Ljg2MzUgMjcuMzgwNyAzNC4wMzgzIDMxLjI0NiAzMS4xMjUyIDMzLjk1MTRDMjguNDc5NCAzNi40MTY1IDI0LjkyODQgMzcuOTI3IDIxLjAyNTYgMzcuOTI3QzE3LjAzMTUgMzcuOTI3IDE0LjA1OTUgMzUuMzY1IDExLjUwNTEgMzIuOTU2M0gxMS41MDQyQzguNzIxNjcgMzAuMzMyMSA2LjE4NzgyIDI3LjQyNyA2LjE4Nzc0IDIzLjA4OTFDNi4xODc3NCAxOS4yNjE2IDcuNjM3MzUgMTUuNzcwNyAxMC4wMTc4IDEzLjEzODlMMTAuMjc1NiAxMi44NjE2QzEyLjk3NzIgMTAuMDIyMSAxNi43OTUgOC4yNTEyNCAyMS4wMjU2IDguMjUxMjRDMjUuMjY5NCA4LjI1MTI4IDI5LjA4NzQgMTAuMDQ2NiAzMS43ODgzIDEyLjg5NzdDMzQuMzA0IDE1LjU1MzEgMzUuODYzNSAxOS4xMzU2IDM1Ljg2MzUgMjMuMDg5MVoiIGZpbGw9IiM5QkRCOUMiLz4KPHBhdGggZD0iTTMyLjM5MzggMjMuMDg4QzMyLjM5MzggMTkuOTUwOCAzMS4xMTM0IDE3LjExODQgMjkuMDU2OSAxNS4wNjA3QzI3LjAwMDQgMTMuMDAzMiAyNC4xNjQ5IDExLjcxOSAyMS4wMjU2IDExLjcxODlIMjAuOTQ2NUMxNy42MTc0IDExLjc0MTIgMTQuNjI3NiAxMy4xOTM5IDEyLjU2MTcgMTUuNDk1M0MxMC43NTQ2IDE3LjUwOTIgOS42NTU0OSAyMC4xNjkzIDkuNjU1NDkgMjMuMDg4QzkuNjU1NTMgMjQuNjU3MSAxMC4yMDgzIDI1LjgyMTQgMTEuMDQ2MSAyNi44NjY0QzExLjkwNTYgMjcuOTM4NCAxMy4wMjQ5IDI4Ljg0NDEgMTQuMTkzNiAyOS45NTAzQzE0LjcyODggMzAuNDU3NCAxNS4yNTIxIDMxLjAwODEgMTUuNzYzOSAzMS41Mjc1QzE2LjI4MTEgMzIuMDUyNCAxNi43OTQzIDMyLjU1NDMgMTcuMzM1MiAzMi45OTE0QzE4LjQxMjMgMzMuODYxNiAxOS41NzM3IDM0LjQ1ODIgMjEuMDI0NiAzNC40NTgyQzI0LjA3NTQgMzQuNDU4MSAyNi44NDM5IDMzLjI1NSAyOC44ODQgMzEuMjk4VjMxLjI5N0MzMS4wNDY0IDI5LjIzMDggMzIuMzkzNyAyNi4yMjQ4IDMyLjM5MzggMjMuMDg4Wk0zMy4yNDUzIDIzLjA4OEMzMy4yNDUzIDI2LjM1NzcgMzEuODg3NiAyOS40ODc5IDI5LjY4NzcgMzEuNzAxM0wyOS40NzI5IDMxLjkxMjNDMjcuMjgwNyAzNC4wMTUgMjQuMzAzOSAzNS4zMDk2IDIxLjAyNDYgMzUuMzA5N0MxOS4zMTAzIDM1LjMwOTcgMTcuOTY0OSAzNC41OTQ2IDE2LjggMzMuNjUzNUMxNi4yMiAzMy4xODQ4IDE1LjY3OTIgMzIuNjU0NyAxNS4xNTc0IDMyLjEyNTFDMTQuNjMwMiAzMS41OSAxNC4xMjk3IDMxLjA2MjIgMTMuNjA4NiAzMC41Njg1VjMwLjU2OTVDMTIuNTA1OCAyOS41MjU2IDExLjI4OTMgMjguNTMxNCAxMC4zODExIDI3LjM5ODZDOS40NTEzMyAyNi4yMzg4IDguODAzOTcgMjQuODkyNCA4LjgwMzkyIDIzLjA4OEM4LjgwMzkyIDE5Ljk1MSA5Ljk4NiAxNy4wODk5IDExLjkyNzkgMTQuOTI1OUgxMS45Mjg5QzE0LjE2NTYgMTIuNDM0NSAxNy40MTI2IDEwLjg2NjQgMjEuMDI0NiAxMC44NjY0SDIxLjIwMDRMMjEuMjAzMyAxMC44NzAzQzI0LjUwOTUgMTAuOTE3OSAyNy40ODk2IDEyLjI4OTMgMjkuNjU4NCAxNC40NTkxTDMwLjA2MjcgMTQuODgzQzMyLjAzMzQgMTcuMDQ5OSAzMy4yNDUzIDE5LjkyNDIgMzMuMjQ1MyAyMy4wODhaIiBmaWxsPSIjNzRERjk4Ii8+CjxwYXRoIGQ9Ik0yOS45NDg1IDIzLjA4OTJDMjkuOTQ4NSAyMC40OTE2IDI4LjgzODggMTguMTU0MiAyNy4wNjc3IDE2LjUyMjhDMjUuNDg4IDE1LjA2OCAyMy4zODM2IDE0LjE3NzYgMjEuMDY5NiAxNC4xNjYzSDIxLjAyNDdDMTguMzY4IDE0LjE2NjMgMTUuOTgzNiAxNS4zMjYxIDE0LjM0ODkgMTcuMTY4M0MxMi45NTA0IDE4Ljc0MzcgMTIuMTAxOCAyMC44MTY4IDEyLjEwMTggMjMuMDg5MkMxMi4xMDE5IDI0LjI3MjUgMTIuNjI5IDI0Ljk3NDMgMTMuNDA1NSAyNS42MDU4QzEzLjgwNDIgMjUuOTMgMTQuMjU0MSAyNi4yMjM4IDE0LjczOTUgMjYuNTU3OUMxNS4yMTggMjYuODg3MyAxNS43MTk2IDI3LjI0OTQgMTYuMTgyOSAyNy42OTA4QzE2LjYyMiAyOC4xMDg5IDE3LjAwMjIgMjguNjAzNSAxNy4zNTc3IDI5LjA5NDFDMTcuNzE5MyAyOS41OTMgMTguMDUwMyAzMC4wNzkyIDE4LjQxMjQgMzAuNTIxOEMxOS4xMjk3IDMxLjM5ODYgMTkuODk2OSAzMi4wMTIgMjEuMDI0NyAzMi4wMTJDMjMuNDkxMiAzMi4wMTE5IDI1LjcyMzIgMzEuMDExIDI3LjMzOTEgMjkuMzkyOUMyOC45NTE4IDI3Ljc3ODEgMjkuOTQ4NSAyNS41NTAzIDI5Ljk0ODUgMjMuMDg5MlpNMzAuNjI5MiAyMy4wODkyQzMwLjYyOTEgMjUuNzM4IDI5LjU1NjYgMjguMTM3IDI3LjgyMTYgMjkuODc0M0MyNi4wODMxIDMxLjYxNTIgMjMuNjc5NCAzMi42OTI2IDIxLjAyNDcgMzIuNjkyN0MxOS41OTE2IDMyLjY5MjcgMTguNjUwMiAzMS44ODg3IDE3Ljg4NSAzMC45NTM0QzE3LjUwNjEgMzAuNDkwMiAxNy4xNTE2IDI5Ljk3MTQgMTYuODA1OSAyOS40OTQ1QzE2LjU0MjEgMjkuMTMwNCAxNi4yNzkzIDI4Ljc4NTEgMTUuOTk5MyAyOC40Nzc5TDE1LjcxMzIgMjguMTgzOUMxNS4yOTA4IDI3Ljc4MTYgMTQuODI2NCAyNy40NDQ4IDE0LjM1MzggMjcuMTE5NUMxMy44ODg0IDI2Ljc5OTEgMTMuNDAyMyAyNi40ODE3IDEyLjk3NTkgMjYuMTM1MUMxMi4xMDE5IDI1LjQyNDQgMTEuNDIwMyAyNC41NDU3IDExLjQyMDIgMjMuMDg5MkMxMS40MjAyIDIwLjY0MzkgMTIuMzM0MyAxOC40MTE1IDEzLjgzOTEgMTYuNzE2MUwxNC4xNzggMTYuMzUyOUMxNS44ODYxIDE0LjYxNjcgMTguMjUwOSAxMy41MzA3IDIwLjg3MDQgMTMuNDg5NkwyMC44NzUzIDEzLjQ4MzdIMjEuMDI1N0MyMy41MzQ2IDEzLjQ4MzggMjUuODE4MSAxNC40NDY1IDI3LjUyODYgMTYuMDIxOEMyOS40MzQgMTcuNzc2OCAzMC42MjkyIDIwLjI5MzEgMzAuNjI5MiAyMy4wODkyWiIgZmlsbD0iIzRERTI5NCIvPgo8cGF0aCBkPSJNMTM2LjIwOSAzMi41OTcxQzEzNC45NDIgMzIuNTk3MSAxMzMuOTE3IDMyLjI4ODcgMTMzLjEzNCAzMS42NzIxQzEzMi4zNTEgMzEuMDU1NCAxMzEuOTU5IDMwLjE3MjEgMTMxLjk1OSAyOS4wMjIxQzEzMS45NTkgMjcuODcyMSAxMzIuMzU5IDI2Ljk2MzcgMTMzLjE1OSAyNi4yOTcxQzEzMy45NzYgMjUuNjMwNCAxMzUuMTU5IDI1LjI5NzEgMTM2LjcwOSAyNS4yOTcxSDEzOC4zMzRDMTM5LjQ2NyAyNS4yOTcxIDE0MC4yNjcgMjUuMTQ3MSAxNDAuNzM0IDI0Ljg0NzFDMTQxLjIxNyAyNC41NDcxIDE0MS40NTkgMjQuMDk3MSAxNDEuNDU5IDIzLjQ5NzFDMTQxLjQ1OSAyMi45ODA0IDE0MS4yNDIgMjIuNTMwNCAxNDAuODA5IDIyLjE0NzFDMTQwLjM3NiAyMS43NjM3IDEzOS42OTIgMjEuNTcyMSAxMzguNzU5IDIxLjU3MjFDMTM3Ljg5MiAyMS41NzIxIDEzNy4xODQgMjEuNzg4NyAxMzYuNjM0IDIyLjIyMjFDMTM2LjEwMSAyMi42NTU0IDEzNS43NzYgMjMuMjgwNCAxMzUuNjU5IDI0LjA5NzFIMTMyLjEwOUMxMzIuMjc2IDIyLjQ2MzcgMTMyLjk0MiAyMS4xODg3IDEzNC4xMDkgMjAuMjcyMUMxMzUuMjc2IDE5LjM1NTQgMTM2LjgzNCAxOC44OTcxIDEzOC43ODQgMTguODk3MUMxNDAuNzM0IDE4Ljg5NzEgMTQyLjI1MSAxOS4zMTM3IDE0My4zMzQgMjAuMTQ3MUMxNDQuNDE3IDIwLjk2MzcgMTQ0Ljk1OSAyMi4xMTM3IDE0NC45NTkgMjMuNTk3MVYzMi4xOTcxSDE0MS41MDlMMTQxLjQ1OSAyOS4wNzIxSDE0MS4zMzRDMTQxLjA1MSAzMC4xMDU0IDE0MC40MzQgMzAuOTU1NCAxMzkuNDg0IDMxLjYyMjFDMTM4LjU1MSAzMi4yNzIxIDEzNy40NTkgMzIuNTk3MSAxMzYuMjA5IDMyLjU5NzFaTTEzNS41NTkgMjguNzIyMUMxMzUuNTU5IDI5LjIyMjEgMTM1LjczNCAyOS42MDU0IDEzNi4wODQgMjkuODcyMUMxMzYuNDUxIDMwLjEzODcgMTM2Ljk2NyAzMC4yNzIxIDEzNy42MzQgMzAuMjcyMUMxMzguMzY3IDMwLjI3MjEgMTM5LjAyNiAzMC4wOTcxIDEzOS42MDkgMjkuNzQ3MUMxNDAuMTkyIDI5LjM5NzEgMTQwLjY0MiAyOC45Mzg3IDE0MC45NTkgMjguMzcyMUMxNDEuMjkyIDI3LjgwNTQgMTQxLjQ1OSAyNy4xOTcxIDE0MS40NTkgMjYuNTQ3MVYyNS4zNzIxSDE0MS4zMzRDMTQxLjE4NCAyNS45ODg3IDE0MC44NTkgMjYuNDQ3MSAxNDAuMzU5IDI2Ljc0NzFDMTM5Ljg1OSAyNy4wMzA0IDEzOS4xNTEgMjcuMTcyMSAxMzguMjM0IDI3LjE3MjFIMTM3LjM1OUMxMzYuNzc2IDI3LjE3MjEgMTM2LjMyNiAyNy4zMTM3IDEzNi4wMDkgMjcuNTk3MUMxMzUuNzA5IDI3Ljg2MzcgMTM1LjU1OSAyOC4yMzg3IDEzNS41NTkgMjguNzIyMVoiIGZpbGw9IiNGQUY1RTkiLz4KPHBhdGggZD0iTTEyOS42ODUgMTkuMjk3MVYzMi4xOTcxSDEyNi4xMVYxOS4yOTcxSDEyOS42ODVaTTEyNS43ODUgMTUuNTIyMUMxMjUuNzg1IDE0Ljk1NTQgMTI1Ljk5MyAxNC40NzIxIDEyNi40MSAxNC4wNzIxQzEyNi44MjcgMTMuNjU1NCAxMjcuMzE4IDEzLjQ0NzEgMTI3Ljg4NSAxMy40NDcxQzEyOC40NjggMTMuNDQ3MSAxMjguOTYgMTMuNjQ3MSAxMjkuMzYgMTQuMDQ3MUMxMjkuNzYgMTQuNDQ3MSAxMjkuOTYgMTQuOTM4NyAxMjkuOTYgMTUuNTIyMUMxMjkuOTYgMTYuMDg4NyAxMjkuNzYgMTYuNTcyMSAxMjkuMzYgMTYuOTcyMUMxMjguOTYgMTcuMzcyMSAxMjguNDY4IDE3LjU3MjEgMTI3Ljg4NSAxNy41NzIxQzEyNy4zMDIgMTcuNTcyMSAxMjYuODAyIDE3LjM3MjEgMTI2LjM4NSAxNi45NzIxQzEyNS45ODUgMTYuNTcyMSAxMjUuNzg1IDE2LjA4ODcgMTI1Ljc4NSAxNS41MjIxWiIgZmlsbD0iI0ZBRjVFOSIvPgo8cGF0aCBkPSJNMTA5LjIzMiAyNS43NDcxQzEwOS4yMzIgMjQuMzgwNCAxMDkuNDU3IDIzLjE4MDQgMTA5LjkwNyAyMi4xNDcxQzExMC4zNzMgMjEuMTEzNyAxMTEuMDMyIDIwLjMxMzcgMTExLjg4MiAxOS43NDcxQzExMi43MzIgMTkuMTgwNCAxMTMuNzIzIDE4Ljg5NzEgMTE0Ljg1NyAxOC44OTcxQzExNS45MDcgMTguODk3MSAxMTYuODQgMTkuMTk3MSAxMTcuNjU3IDE5Ljc5NzFDMTE4LjQ3MyAyMC4zOTcxIDExOS4wNzMgMjEuMjIyMSAxMTkuNDU3IDIyLjI3MjFIMTE5LjYwN1YxNC42OTcxSDEyMy4xNTdWMzIuMTk3MUgxMTkuNzA3TDExOS42MDcgMjkuMjQ3MUgxMTkuNDU3QzExOS4wNTcgMzAuMjk3MSAxMTguNDQ4IDMxLjEyMjEgMTE3LjYzMiAzMS43MjIxQzExNi44MTUgMzIuMzA1NCAxMTUuODkgMzIuNTk3MSAxMTQuODU3IDMyLjU5NzFDMTEzLjcyMyAzMi41OTcxIDExMi43MzIgMzIuMzIyMSAxMTEuODgyIDMxLjc3MjFDMTExLjAzMiAzMS4yMDU0IDExMC4zNzMgMzAuNDA1NCAxMDkuOTA3IDI5LjM3MjFDMTA5LjQ1NyAyOC4zMzg3IDEwOS4yMzIgMjcuMTMwNCAxMDkuMjMyIDI1Ljc0NzFaTTExMi44MDcgMjUuNzQ3MUMxMTIuODA3IDI3LjA4MDQgMTEzLjExNSAyOC4xNDcxIDExMy43MzIgMjguOTQ3MUMxMTQuMzQ4IDI5LjczMDQgMTE1LjE3MyAzMC4xMjIxIDExNi4yMDcgMzAuMTIyMUMxMTcuMjIzIDMwLjEyMjEgMTE4LjA0IDI5Ljc4ODcgMTE4LjY1NyAyOS4xMjIxQzExOS4yOSAyOC40Mzg3IDExOS42MDcgMjcuNTcyMSAxMTkuNjA3IDI2LjUyMjFWMjQuOTk3MUMxMTkuNjA3IDIzLjkzMDQgMTE5LjI5OCAyMy4wNjM3IDExOC42ODIgMjIuMzk3MUMxMTguMDY1IDIxLjcxMzcgMTE3LjI0IDIxLjM3MjEgMTE2LjIwNyAyMS4zNzIxQzExNS4xNzMgMjEuMzcyMSAxMTQuMzQ4IDIxLjc3MjEgMTEzLjczMiAyMi41NzIxQzExMy4xMTUgMjMuMzU1NCAxMTIuODA3IDI0LjQxMzcgMTEyLjgwNyAyNS43NDcxWiIgZmlsbD0iI0ZBRjVFOSIvPgo8cGF0aCBkPSJNOTkuNTg4MiAxOS4yOTcxSDEwMy4wMzhMMTAzLjEzOCAyMy4zNDcxSDEwMy4yNjNDMTAzLjQ2MyAyMi4zMzA0IDEwMy43NTUgMjEuNTIyMSAxMDQuMTM4IDIwLjkyMjFDMTA0LjUyMiAyMC4zMDU0IDEwNS4wNjMgMTkuODQ3MSAxMDUuNzYzIDE5LjU0NzFDMTA2LjQ4IDE5LjIzMDQgMTA3LjQyMiAxOS4wNzIxIDEwOC41ODggMTkuMDcyMVYyMi4wNzIxQzEwNi43NTUgMjIuMTM4NyAxMDUuNDMgMjIuNDg4NyAxMDQuNjEzIDIzLjEyMjFDMTA0LjA5NyAyMy41MDU0IDEwMy43MjIgMjQuMDMwNCAxMDMuNDg4IDI0LjY5NzFDMTAzLjI1NSAyNS4zNjM3IDEwMy4xMzggMjYuMjEzNyAxMDMuMTM4IDI3LjI0NzFWMzIuMTk3MUg5OS41ODgyVjE5LjI5NzFaIiBmaWxsPSIjRkFGNUU5Ii8+CjxwYXRoIGQ9Ik05MC40NzQzIDMyLjU5NzFDODkuMTc0MyAzMi41OTcxIDg3Ljk4MjcgMzIuMzIyMSA4Ni44OTkzIDMxLjc3MjFDODUuODMyNyAzMS4yMDU0IDg0Ljk5MSAzMC4zOTcxIDg0LjM3NDMgMjkuMzQ3MUM4My43NTc3IDI4LjI5NzEgODMuNDQ5MyAyNy4wODA0IDgzLjQ0OTMgMjUuNjk3MUM4My40NDkzIDI0LjM0NzEgODMuNzU3NyAyMy4xNTU0IDg0LjM3NDMgMjIuMTIyMUM4NS4wMDc3IDIxLjA4ODcgODUuODU3NyAyMC4yOTcxIDg2LjkyNDMgMTkuNzQ3MUM4Ny45OTEgMTkuMTgwNCA4OS4xNzQzIDE4Ljg5NzEgOTAuNDc0MyAxOC44OTcxQzkxLjc3NDMgMTguODk3MSA5Mi45NTc3IDE5LjE4MDQgOTQuMDI0MyAxOS43NDcxQzk1LjEwNzcgMjAuMjk3MSA5NS45NTc3IDIxLjA4ODcgOTYuNTc0MyAyMi4xMjIxQzk3LjIwNzcgMjMuMTU1NCA5Ny41MjQzIDI0LjM0NzEgOTcuNTI0MyAyNS42OTcxQzk3LjUyNDMgMjcuMDgwNCA5Ny4yMDc3IDI4LjI5NzEgOTYuNTc0MyAyOS4zNDcxQzk1Ljk1NzcgMzAuMzk3MSA5NS4xMDc3IDMxLjIwNTQgOTQuMDI0MyAzMS43NzIxQzkyLjk1NzcgMzIuMzIyMSA5MS43NzQzIDMyLjU5NzEgOTAuNDc0MyAzMi41OTcxWk04Ny4wMjQzIDI1LjY5NzFDODcuMDI0MyAyNy4wNjM3IDg3LjMyNDMgMjguMTA1NCA4Ny45MjQzIDI4LjgyMjFDODguNTQxIDI5LjUzODcgODkuMzkxIDI5Ljg5NzEgOTAuNDc0MyAyOS44OTcxQzkxLjU1NzcgMjkuODk3MSA5Mi4zOTkzIDI5LjUzODcgOTIuOTk5MyAyOC44MjIxQzkzLjYxNiAyOC4xMDU0IDkzLjkyNDMgMjcuMDYzNyA5My45MjQzIDI1LjY5NzFDOTMuOTI0MyAyNC4zNjM3IDkzLjYxNiAyMy4zNDcxIDkyLjk5OTMgMjIuNjQ3MUM5Mi4zOTkzIDIxLjk0NzEgOTEuNTU3NyAyMS41OTcxIDkwLjQ3NDMgMjEuNTk3MUM4OS4zOTEgMjEuNTk3MSA4OC41NDEgMjEuOTQ3MSA4Ny45MjQzIDIyLjY0NzFDODcuMzI0MyAyMy4zNDcxIDg3LjAyNDMgMjQuMzYzNyA4Ny4wMjQzIDI1LjY5NzFaIiBmaWxsPSIjRkFGNUU5Ii8+CjxwYXRoIGQ9Ik02OC4xNDE5IDE0LjY5NzFINzEuNjkxOVYyMi4zNzIxSDcxLjg0MTlDNzIuMTkxOSAyMS4yNTU0IDcyLjc3NTIgMjAuMzk3MSA3My41OTE5IDE5Ljc5NzFDNzQuNDI1MiAxOS4xOTcxIDc1LjQyNTIgMTguODk3MSA3Ni41OTE5IDE4Ljg5NzFDNzcuNDU4NiAxOC44OTcxIDc4LjI1MDIgMTkuMDk3MSA3OC45NjY5IDE5LjQ5NzFDNzkuNzAwMiAxOS44ODA0IDgwLjI3NTIgMjAuNDQ3MSA4MC42OTE5IDIxLjE5NzFDODEuMTI1MiAyMS45NDcxIDgxLjM0MTkgMjIuODM4NyA4MS4zNDE5IDIzLjg3MjFWMzIuMTk3MUg3Ny43OTE5VjI0Ljg3MjFDNzcuNzkxOSAyMy44MjIxIDc3LjU0MTkgMjMuMDMwNCA3Ny4wNDE5IDIyLjQ5NzFDNzYuNTU4NiAyMS45NjM3IDc1LjgzMzYgMjEuNjk3MSA3NC44NjY5IDIxLjY5NzFDNzMuODgzNiAyMS42OTcxIDczLjEwODYgMjIuMDMwNCA3Mi41NDE5IDIyLjY5NzFDNzEuOTc1MiAyMy4zNjM3IDcxLjY5MTkgMjQuMjgwNCA3MS42OTE5IDI1LjQ0NzFWMzIuMTk3MUg2OC4xNDE5VjE0LjY5NzFaIiBmaWxsPSIjRkFGNUU5Ii8+CjxwYXRoIGQ9Ik01Ny43OTc4IDMyLjU5N0M1Ni4wMzExIDMyLjU5NyA1NC40ODk0IDMyLjIzMDQgNTMuMTcyOCAzMS40OTdDNTEuODcyOCAzMC43NjM3IDUwLjg2NDQgMjkuNzA1NCA1MC4xNDc4IDI4LjMyMjFDNDkuNDQ3OCAyNi45Mzg3IDQ5LjA5NzggMjUuMzA1NCA0OS4wOTc4IDIzLjQyMjFDNDkuMDk3OCAyMS41Mzg3IDQ5LjQ0NzggMTkuOTEzNyA1MC4xNDc4IDE4LjU0NzFDNTAuODY0NCAxNy4xNjM3IDUxLjg3MjggMTYuMTEzNyA1My4xNzI4IDE1LjM5N0M1NC40NzI4IDE0LjY2MzcgNTYuMDE0NCAxNC4yOTcxIDU3Ljc5NzggMTQuMjk3MUM2MC4wNjQ0IDE0LjI5NzEgNjEuOTE0NCAxNC44NzIxIDYzLjM0NzggMTYuMDIyMUM2NC43OTc4IDE3LjE1NTQgNjUuNjgxMSAxOC43MDU0IDY1Ljk5NzggMjAuNjcyMUg2Mi4wNDc4QzYxLjc4MTEgMTkuNjM4NyA2MS4yODExIDE4LjgyMjEgNjAuNTQ3OCAxOC4yMjIxQzU5LjgxNDQgMTcuNjIyMSA1OC44OTc4IDE3LjMyMjEgNTcuNzk3OCAxNy4zMjIxQzU2LjMzMTEgMTcuMzIyMSA1NS4xNzI4IDE3Ljg2MzcgNTQuMzIyOCAxOC45NDcxQzUzLjQ4OTQgMjAuMDEzNyA1My4wNzI4IDIxLjUwNTQgNTMuMDcyOCAyMy40MjIxQzUzLjA3MjggMjUuMzM4NyA1My41MDYxIDI2Ljg0NzEgNTQuMzcyOCAyNy45NDcxQzU1LjIzOTQgMjkuMDMwNCA1Ni40MjI4IDI5LjU3MjEgNTcuOTIyOCAyOS41NzIxQzU5LjEwNjEgMjkuNTcyMSA2MC4wNzI4IDI5LjE5NzEgNjAuODIyOCAyOC40NDcxQzYxLjU4OTQgMjcuNjk3MSA2Mi4wNDc4IDI2LjY5NzEgNjIuMTk3OCAyNS40NDcxSDY2LjA5NzhDNjUuOTY0NCAyNi44OTcxIDY1LjU0NzggMjguMTYzNyA2NC44NDc4IDI5LjI0NzFDNjQuMTY0NCAzMC4zMTM3IDYzLjIyMjggMzEuMTM4NyA2Mi4wMjI4IDMxLjcyMkM2MC44MjI4IDMyLjMwNTQgNTkuNDE0NCAzMi41OTcgNTcuNzk3OCAzMi41OTdaIiBmaWxsPSIjRkFGNUU5Ii8+Cjwvc3ZnPgo=",G={home:I.Home,projects:I.FolderClosed,folder:I.FolderClosed,organization:I.Users,users:I.Users,dashboard:I.LayoutDashboard,history:I.Clock3,sessions:I.Clock3,monitoring:I.Activity,activity:I.Activity,insights:I.Lightbulb,notifications:I.Bell,integrations:I.Plug,settings:I.Settings,usage:I.BarChart3,docs:I.FileText,documentation:I.FileText,agents:I.Headphones,security:I.Shield,configuration:I.Sliders,workflow:I.Workflow};function w(M){if(M)return`sidebar-nav-${String(M)}`}function b(M){return M?typeof M=="string"?G[M.toLowerCase()]||I.SquareDot:M:I.SquareDot}function V({menuItems:M=[],activeId:j,onNavigate:e,collapsed:r,onToggleCollapse:x,header:o,footer:y,width:A=244,collapsedWidth:a=56,expandedParentId:g=void 0,defaultExpandedParentId:c=null,onExpandedParentChange:O,singleExpand:n=!1}){const[L,z]=T.useState(!1),i=r!==void 0?r:L,F=x||(()=>z(!L)),[B,m]=T.useState(()=>{const D={};return M.forEach(u=>{var t;if((t=u.children)!=null&&t.length){const s=u.children.some(l=>l.id===j||l.active);D[u.id]=s}}),D}),d=T.useMemo(()=>new Set(M.filter(D=>{var u;return(u=D.children)==null?void 0:u.length}).map(D=>D.id)),[M]),k=T.useMemo(()=>{const D=M.find(u=>{var t;return((t=u.children)==null?void 0:t.length)&&(u.id===j||!!u.active||u.children.some(s=>s.id===j||s.active))});return(D==null?void 0:D.id)??null},[M,j]),[E,p]=T.useState(()=>{const D=new Set(M.filter(t=>{var s;return(s=t.children)==null?void 0:s.length}).map(t=>t.id));if(c!=null&&D.has(c))return c;const u=M.find(t=>{var s;return((s=t.children)==null?void 0:s.length)&&(t.id===j||!!t.active||t.children.some(l=>l.id===j||l.active))});return(u==null?void 0:u.id)??null}),S=g!==void 0,Q=S?g??null:d.has(E)?E:k??null;T.useEffect(()=>{if(S||!n)return;(E==null||!d.has(E))&&p(k??null)},[k,S,n,E,d]);const f=D=>{S||p(D),O==null||O(D)},h=D=>{if(n){f(Q===D?null:D);return}m(u=>({...u,[D]:!u[D]}))},R=D=>n?Q===D:!!B[D],W=D=>{if(n){Q!==D.id&&f(D.id),e==null||e(D.href||D.id);return}h(D.id)},Y=i?a:A;return N.jsxs("nav",{style:{width:Y,minWidth:Y,height:"100%",display:"flex",flexDirection:"column",alignItems:"flex-start",padding:i?"0":"0 0 24px 24px",gap:24,background:"var(--Background-Inverse, #0B0B0B)",fontFamily:"var(--font-sans)",transition:"width 0.2s ease, min-width 0.2s ease",overflow:"hidden",flexShrink:0},children:[N.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:i?"center":"space-between",padding:i?"12px 0":"12px 0 0",flexShrink:0,width:"100%"},children:[!i&&N.jsx("div",{style:{flexShrink:0},children:o!==void 0?o:N.jsx("img",{src:P,alt:"Chordia",style:{height:28,objectFit:"contain"}})}),N.jsx("button",{onClick:F,title:i?"Expand sidebar":"Collapse sidebar",style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,borderRadius:"var(--radius-sm)",border:"none",background:"transparent",color:"rgba(255, 255, 255, 0.5)",cursor:"pointer",transition:"background 0.15s ease, color 0.15s ease",flexShrink:0},onMouseEnter:D=>{D.currentTarget.style.background="rgba(255, 255, 255, 0.08)",D.currentTarget.style.color="rgba(255, 255, 255, 0.8)"},onMouseLeave:D=>{D.currentTarget.style.background="transparent",D.currentTarget.style.color="rgba(255, 255, 255, 0.5)"},children:i?N.jsx(I.PanelLeft,{size:16}):N.jsx(I.PanelLeftClose,{size:16})})]}),N.jsx("div",{className:"custom-thin-scrollbar",style:{flex:1,overflowY:"auto",overflowX:"hidden",padding:i?"0 8px":"0",width:"100%"},children:M.map((D,u)=>{var t;return N.jsxs(T.Fragment,{children:[D.section&&!i&&N.jsx("div",{style:{fontSize:"var(--text-xs)",fontWeight:650,letterSpacing:"0.08em",textTransform:"uppercase",color:"rgba(255, 255, 255, 0.35)",padding:"16px 8px 6px",lineHeight:1},children:D.section}),(t=D.children)!=null&&t.length?N.jsx(H,{item:D,activeId:j,expanded:R(D.id),onPrimaryClick:()=>W(D),onToggleOnly:()=>h(D.id),onNavigate:e,collapsed:i,singleExpand:n}):N.jsx(v,{item:D,active:D.id===j||D.active,onNavigate:e,collapsed:i})]},D.id||u)})}),y&&!i&&N.jsx("div",{style:{padding:"12px 16px",borderTop:"1px solid rgba(255, 255, 255, 0.08)",flexShrink:0,width:"100%"},children:y})]})}function v({item:M,active:j,onNavigate:e,collapsed:r}){const x=b(M.icon),o=typeof M.icon!="string"&&typeof M.icon<"u",y=T.useRef(null),[A,a]=T.useState(!1);return T.useEffect(()=>{if(r)return;const g=()=>{y.current&&a(y.current.scrollWidth>y.current.clientWidth)};return g(),window.addEventListener("resize",g),()=>window.removeEventListener("resize",g)},[M.label,r]),N.jsxs("button",{id:w(M.id),onClick:()=>e==null?void 0:e(M.href||M.id),title:r||A?M.label:void 0,style:{display:"flex",alignItems:"center",gap:r?0:12,justifyContent:r?"center":"flex-start",width:"100%",padding:r?"10px 0":"12px 24px 12px 12px",borderRadius:j?"4px 0 0 4px":"4px",borderRight:j?"2px solid #00A66E":"2px solid transparent",borderTop:"none",borderBottom:"none",borderLeft:"none",background:j?"var(--Background-MonoPressed, #323232)":"transparent",color:j?"var(--Brand-400, #33B88B)":"var(--Content-TertiaryInverse, #B2AEA8)",fontWeight:500,fontSize:"12px",fontStyle:"normal",lineHeight:"120%",textTransform:"uppercase",fontFamily:"var(--font-sans)",cursor:"pointer",textAlign:"left",transition:"background 0.15s ease, color 0.1s ease, border-color 0.15s ease",marginBottom:2},onMouseEnter:g=>{j||(g.currentTarget.style.background="var(--Background-MonoPressed, #323232)",g.currentTarget.style.color="var(--Brand-400, #33B88B)")},onMouseLeave:g=>{j||(g.currentTarget.style.background="transparent",g.currentTarget.style.color="var(--Content-TertiaryInverse, #B2AEA8)")},children:[o?N.jsx("span",{style:{flexShrink:0,display:"flex"},children:M.icon}):N.jsx(x,{size:18,style:{flexShrink:0,color:"inherit",cursor:"pointer"},onClick:g=>{g.stopPropagation(),onToggleOnly()}}),!r&&N.jsx("span",{ref:y,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:M.label})]})}function H({item:M,activeId:j,expanded:e,onPrimaryClick:r,onToggleOnly:x,onNavigate:o,collapsed:y,singleExpand:A}){var L;const a=b(M.icon),g=M.id===j||!!M.active||((L=M.children)==null?void 0:L.some(z=>z.id===j||z.active)),c=T.useRef(null),[O,n]=T.useState(!1);return T.useEffect(()=>{if(y)return;const z=()=>{c.current&&n(c.current.scrollWidth>c.current.clientWidth)};return z(),window.addEventListener("resize",z),()=>window.removeEventListener("resize",z)},[M.label,y]),y?N.jsx("button",{id:w(M.id),onClick:r,style:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",padding:"10px 0",borderRadius:"4px",border:"none",background:g?"var(--Background-MonoPressed, #323232)":"transparent",color:g?"var(--Brand-400, #33B88B)":"var(--Content-TertiaryInverse, #B2AEA8)",cursor:"pointer",marginBottom:2,transition:"background 0.15s ease"},onMouseEnter:z=>{g||(z.currentTarget.style.background="var(--Background-MonoPressed, #323232)",z.currentTarget.style.color="var(--Brand-400, #33B88B)")},onMouseLeave:z=>{g||(z.currentTarget.style.background="transparent",z.currentTarget.style.color="var(--Content-TertiaryInverse, #B2AEA8)")},children:N.jsx(a,{size:18,style:{color:"inherit"}})}):N.jsxs("div",{style:{marginBottom:2},children:[N.jsxs("button",{id:w(M.id),onClick:r,style:{display:"flex",alignItems:"center",gap:12,width:"100%",padding:"12px 24px 12px 12px",borderRadius:"4px",border:"none",background:"transparent",color:g?"var(--Brand-400, #33B88B)":"var(--Content-TertiaryInverse, #B2AEA8)",fontWeight:700,fontSize:"12px",fontStyle:"normal",lineHeight:"120%",textTransform:"uppercase",fontFamily:"var(--font-sans)",cursor:"pointer",textAlign:"left",transition:"background 0.15s ease, color 0.15s ease"},onMouseEnter:z=>{z.currentTarget.style.background="var(--Background-MonoPressed, #323232)",z.currentTarget.style.color="var(--Brand-400, #33B88B)"},onMouseLeave:z=>{z.currentTarget.style.background="transparent",g?z.currentTarget.style.color="var(--Brand-400, #33B88B)":z.currentTarget.style.color="var(--Content-TertiaryInverse, #B2AEA8)"},children:[N.jsx(a,{size:18,style:{flexShrink:0,color:"inherit"}}),O?N.jsxs(U.Tooltip,{children:[N.jsx(U.TooltipTrigger,{asChild:!0,children:N.jsx("span",{ref:c,style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:M.label})}),N.jsx(U.TooltipContent,{side:"top",className:"max-w-[28ch] whitespace-normal break-words",children:M.label})]}):N.jsx("span",{ref:c,style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:M.label}),N.jsx(I.ChevronDown,{size:14,onClick:z=>{z.stopPropagation(),x()},style:{flexShrink:0,color:"inherit",opacity:.7,transform:e?"rotate(0deg)":"rotate(-90deg)",transition:"transform 0.2s ease",cursor:A?"pointer":"inherit"}})]}),e&&N.jsx("div",{style:{paddingLeft:18,marginTop:2},children:M.children.map((z,i)=>N.jsx(v,{item:z,active:z.id===j||z.active,onNavigate:o,collapsed:!1},z.id||i))})]})}const C=["#5a8a6e","#b07d4f","#7a8fa6","#c47a5a","#6a9a8a","#a0785a","#5a7a9a","#9a7a5a"];function Z(M){if(!M)return C[0];let j=0;for(let e=0;e<M.length;e++)j=(j<<5)-j+M.charCodeAt(e)|0;return C[Math.abs(j)%C.length]}function J({logo:M,title:j,userName:e,userEmail:r,userInitials:x,userRole:o,onSignOut:y,children:A,trailing:a,userMenu:g,height:c=48,style:O}){const n=e||r||"",L=x||_(n);return N.jsxs("header",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0 20px",height:c,borderBottom:"1px solid var(--border)",background:"var(--primary-foreground)",flexShrink:0,fontFamily:"var(--font-sans)",position:"sticky",top:0,zIndex:1e3,...O},children:[N.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,flexShrink:0},children:[M!==void 0?M:N.jsx("span",{style:{fontSize:"var(--text-lg)",fontWeight:700,fontFamily:"var(--font-display)",color:"var(--text-ink)",letterSpacing:"-0.01em"},children:"Chordia"}),j&&N.jsxs(N.Fragment,{children:[N.jsx("span",{style:{width:1,height:18,background:"var(--border)",flexShrink:0}}),N.jsx("span",{style:{fontSize:"var(--text-md)",fontWeight:500,color:"var(--text-muted)"},children:j})]})]}),A&&N.jsx("div",{style:{display:"flex",alignItems:"center",gap:8,flex:1,justifyContent:"center",minWidth:0},children:A}),N.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,flexShrink:0},children:[a,g||n&&N.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[N.jsx("div",{style:{width:30,height:30,borderRadius:"50%",background:Z(n),display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:N.jsx("span",{style:{fontSize:11,fontWeight:600,color:"#fff",letterSpacing:"0.02em",lineHeight:1},children:L})}),N.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:1},children:[N.jsx("span",{style:{fontSize:"var(--text-sm)",fontWeight:550,color:"var(--text-strong)",lineHeight:1.2},children:n}),o&&N.jsx("span",{style:{fontSize:"var(--text-xs)",color:"var(--text-muted)",lineHeight:1.2},children:o})]}),y&&N.jsx("button",{onClick:y,title:"Sign out",style:{display:"flex",alignItems:"center",justifyContent:"center",width:28,height:28,borderRadius:"var(--radius-sm)",border:"none",background:"transparent",color:"var(--text-faint)",cursor:"pointer",transition:"background 0.15s ease, color 0.15s ease"},onMouseEnter:z=>{z.currentTarget.style.background="var(--hover-warm)",z.currentTarget.style.color="var(--text-muted)"},onMouseLeave:z=>{z.currentTarget.style.background="transparent",z.currentTarget.style.color="var(--text-faint)"},children:N.jsx(I.LogOut,{size:14})})]})]})]})}function q({label:M,color:j="var(--text-muted)",active:e,onClick:r}){return N.jsxs("button",{onClick:r,style:{display:"flex",alignItems:"center",gap:4,fontSize:"var(--text-sm)",fontWeight:500,fontFamily:"var(--font-sans)",padding:"4px 10px",borderRadius:"var(--radius-sm)",border:`1px solid color-mix(in srgb, ${j} 30%, transparent)`,background:`color-mix(in srgb, ${j} 10%, transparent)`,color:j,cursor:"pointer",transition:"background 0.15s ease, border-color 0.15s ease"},onMouseEnter:x=>{x.currentTarget.style.background=`color-mix(in srgb, ${j} 18%, transparent)`},onMouseLeave:x=>{x.currentTarget.style.background=`color-mix(in srgb, ${j} 10%, transparent)`},children:[M,N.jsx(I.ChevronDown,{size:12,style:{transform:e?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s ease",opacity:.7}})]})}function X({open:M,onClose:j,children:e,align:r="left"}){return M?N.jsxs(N.Fragment,{children:[N.jsx("div",{onClick:j,style:{position:"fixed",inset:0,zIndex:99,background:"rgba(0,0,0,0.03)"}}),N.jsx("div",{style:{position:"absolute",top:"100%",[r==="right"?"right":"left"]:0,marginTop:4,zIndex:100,background:"#fff",border:"1px solid var(--border)",borderRadius:"var(--radius)",padding:4,minWidth:200,maxHeight:280,overflowY:"auto",boxShadow:"0 8px 24px rgba(0,0,0,0.12)"},children:e})]}):null}function $({label:M,active:j,onClick:e}){return N.jsx("div",{onClick:e,style:{padding:"8px 10px",borderRadius:"var(--radius-sm)",cursor:"pointer",fontSize:"var(--text-sm)",color:j?"var(--text-ink)":"var(--text-base)",fontWeight:j?600:400,fontFamily:"var(--font-sans)",background:j?"var(--hover-warm)":"transparent",transition:"background 0.1s ease"},onMouseEnter:r=>{j||(r.currentTarget.style.background="var(--hover-warm-subtle)")},onMouseLeave:r=>{j||(r.currentTarget.style.background="transparent")},children:M})}function K({connected:M,label:j}){const e=j||(M?"Connected":"Disconnected");return N.jsx("span",{style:{fontSize:"var(--text-xs)",fontFamily:"var(--font-sans)",padding:"3px 10px",borderRadius:12,border:`1px solid ${M?"var(--state-present)":"var(--border)"}`,color:M?"var(--state-present)":"var(--text-faint)",background:M?"rgba(37,163,114,0.08)":"transparent",transition:"all 0.2s ease"},children:e})}function _(M){if(!M)return"?";const j=M.trim().split(/\s+/);return j.length>=2?(j[0][0]+j[j.length-1][0]).toUpperCase():M.slice(0,2).toUpperCase()}exports.NavDropdown=X;exports.NavDropdownItem=$;exports.NavPill=q;exports.NavigationBar=J;exports.Sidebar=V;exports.StatusIndicator=K;
2
2
  //# sourceMappingURL=navigation.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"navigation.cjs.js","sources":["../../src/assets/LogoChordia.svg","../../src/components/navigation/Sidebar.jsx","../../src/components/navigation/NavigationBar.jsx"],"sourcesContent":["export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ2IiBoZWlnaHQ9IjQ3IiB2aWV3Qm94PSIwIDAgMTQ2IDQ3IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMzkuNzM0NSAyMy4wODc5QzM5LjczNDUgMTguMzI2NCAzNy45NTYyIDEzLjk4MDYgMzUuMDI2NSAxMC42Nzc4QzMxLjU5ODQgNi44MTMwMyAyNi41OTYxIDQuMzc5OTUgMjEuMDI1NSA0LjM3OTkxQzE1LjU1IDQuMzc5OTEgMTAuNjI2IDYuNzMxNTUgNy4yMDMyNSAxMC40ODE1QzQuMTY3MzIgMTMuODA4NiAyLjMxNzUyIDE4LjIzMTIgMi4zMTc1IDIzLjA4ODlDMi4zMTc1IDI4LjQ3MDQgNC41ODkzNiAzMy4zMjE1IDguMjI4NjQgMzYuNzM1NEw4LjU0NjAyIDM3LjAyNjRDMTEuODY0MyAzOS45OTE5IDE2LjM3NzQgNDEuNzk2OSAyMS4wMjY1IDQxLjc5NjlDMjUuODI4NSA0MS43OTY5IDMwLjIwNjkgMzkuOTg5MiAzMy41MTk3IDM3LjAxNDdDMzcuMzM2MyAzMy41ODc1IDM5LjczNDUgMjguNjE4MSAzOS43MzQ1IDIzLjA4NzlaTTQxLjA5NzggMjMuMDg3OUM0MS4wOTc4IDI5LjAyMSAzOC41MjIgMzQuMzUzNyAzNC40Mjk4IDM4LjAyODRDMzAuODc2NyA0MS4yMTg3IDI2LjE3NzMgNDMuMTYwMiAyMS4wMjY1IDQzLjE2MDJDMTUuODczMiA0My4xNjAyIDEwLjg4NzUgNDEuMDk4OSA3LjI5NjAyIDM3LjcyOTVDMy4zOTM2IDM0LjA2ODggMC45NTQyMjQgMjguODYyMyAwLjk1NDIyNCAyMy4wODg5QzAuOTU0MjM1IDE3Ljg3ODIgMi45NDA0MiAxMy4xMzA4IDYuMTk2NDEgOS41NjI1M0M5Ljg2NjMxIDUuNTQxOCAxNS4xNTExIDMuMDE2NjMgMjEuMDI1NSAzLjAxNjYzQzI3LjAwMjEgMy4wMTY2NiAzMi4zNzAyIDUuNjMwMzIgMzYuMDQ2IDkuNzc0NDRDMzkuMTg4MSAxMy4zMTY4IDQxLjA5NzggMTcuOTgwNiA0MS4wOTc4IDIzLjA4NzlaIiBmaWxsPSIjRThENEEzIi8+CjxwYXRoIGQ9Ik0zNy4yODcyIDIzLjA4OTFDMzcuMjg3MiAxOC44Njk4IDM1LjY3NjkgMTUuMDI2OCAzMy4wMzcyIDEyLjE0MThMMzMuMDM1MiAxMi4xMzk5QzMwLjA2NjcgOC44NzUwMSAyNS43ODYxIDYuODI2NDQgMjEuMDI1NSA2LjgyNjRDMTYuMjU0NiA2LjgyNjQgMTEuOTY0NyA4Ljg4MDYxIDguOTg5MzIgMTIuMTUzNUM2LjM2MzM4IDE1LjA0MjEgNC43NjI3NiAxOC44NzggNC43NjI3NiAyMy4wODkxQzQuNzYyOCAyNy43MTc0IDcuMDIyNTMgMzEuNDcyIDEwLjIxNTkgMzQuNDczOUMxMy4xNzA0IDM3LjI1MTggMTYuODYwNyAzOS4zNTA4IDIxLjAyNTUgMzkuMzUwOEMyNS4yNDI5IDM5LjM1MDggMjkuMDg1MiAzNy43NDQyIDMxLjk3MzcgMzUuMTA5NkwzMi4yNzY0IDM0LjgyNzRDMzUuMzY1MiAzMS44Njg2IDM3LjI4NzEgMjcuNzAzNCAzNy4yODcyIDIzLjA4OTFaTTM4LjQ3OTYgMjMuMDg5MUMzOC40Nzk1IDI4LjIwMTUgMzYuMjc5NCAzMi44MDE5IDMyLjc3NjQgMzUuOTkxNEMyOS42NzcgMzguODE4MiAyNS41NTEzIDQwLjU0MzIgMjEuMDI1NSA0MC41NDMyQzE2LjQ0NjQgNDAuNTQzMiAxMi40Nzg0IDM4LjIzNzkgOS4zOTk0OCAzNS4zNDNDNi4wNTE2OCAzMi4xOTYgMy41NzE0IDI4LjE0NzkgMy41NzEzNSAyMy4wODkxQzMuNTcxMzUgMTguNTcwMSA1LjI4OTA5IDE0LjQ1MTIgOC4xMDY1MSAxMS4zNTE4QzExLjI5ODMgNy44NDA3NCAxNS45MDQ3IDUuNjM0OTkgMjEuMDI1NSA1LjYzNDk5QzI2LjEzNSA1LjYzNTAzIDMwLjczMTEgNy44MzQgMzMuOTE2MSAxMS4zMzYyQzM2Ljc0OTMgMTQuNDMyNCAzOC40Nzk2IDE4LjU2MDIgMzguNDc5NiAyMy4wODkxWiIgZmlsbD0iI0MxRDg5RiIvPgo8cGF0aCBkPSJNMzQuODQxMSAyMy4wODkxQzM0Ljg0MTEgMTkuNDEwMyAzMy4zOTEzIDE2LjA3NjMgMzEuMDQ2MSAxMy42MDA4QzI4LjUyODEgMTAuOTQyNyAyNC45NzQzIDkuMjcyNzYgMjEuMDI1NiA5LjI3MjcyQzE2Ljk1OTQgOS4yNzI3MiAxMy4zMDM2IDExLjAyODUgMTAuNzc1NiAxMy44MjQ1QzguNTU4NSAxNi4yNzU3IDcuMjA5MjMgMTkuNTI0NiA3LjIwOTIzIDIzLjA4OTFDNy4yMDkzIDI2Ljk2ODQgOS40NDY5IDI5LjYxMTYgMTIuMjA1MyAzMi4yMTMyQzE0Ljc4MTUgMzQuNjQyNCAxNy40ODI2IDM2LjkwNDYgMjEuMDI1NiAzNi45MDQ2QzI0LjY1OTcgMzYuOTA0NSAyNy45NjU3IDM1LjQ5OTMgMzAuNDI5OSAzMy4yMDM0QzMzLjE0MzcgMzAuNjgzMiAzNC44NDEgMjcuMDg1IDM0Ljg0MTEgMjMuMDg5MVpNMzUuODYzNSAyMy4wODkxQzM1Ljg2MzUgMjcuMzgwNyAzNC4wMzgzIDMxLjI0NiAzMS4xMjUyIDMzLjk1MTRDMjguNDc5NCAzNi40MTY1IDI0LjkyODQgMzcuOTI3IDIxLjAyNTYgMzcuOTI3QzE3LjAzMTUgMzcuOTI3IDE0LjA1OTUgMzUuMzY1IDExLjUwNTEgMzIuOTU2M0gxMS41MDQyQzguNzIxNjcgMzAuMzMyMSA2LjE4NzgyIDI3LjQyNyA2LjE4Nzc0IDIzLjA4OTFDNi4xODc3NCAxOS4yNjE2IDcuNjM3MzUgMTUuNzcwNyAxMC4wMTc4IDEzLjEzODlMMTAuMjc1NiAxMi44NjE2QzEyLjk3NzIgMTAuMDIyMSAxNi43OTUgOC4yNTEyNCAyMS4wMjU2IDguMjUxMjRDMjUuMjY5NCA4LjI1MTI4IDI5LjA4NzQgMTAuMDQ2NiAzMS43ODgzIDEyLjg5NzdDMzQuMzA0IDE1LjU1MzEgMzUuODYzNSAxOS4xMzU2IDM1Ljg2MzUgMjMuMDg5MVoiIGZpbGw9IiM5QkRCOUMiLz4KPHBhdGggZD0iTTMyLjM5MzggMjMuMDg4QzMyLjM5MzggMTkuOTUwOCAzMS4xMTM0IDE3LjExODQgMjkuMDU2OSAxNS4wNjA3QzI3LjAwMDQgMTMuMDAzMiAyNC4xNjQ5IDExLjcxOSAyMS4wMjU2IDExLjcxODlIMjAuOTQ2NUMxNy42MTc0IDExLjc0MTIgMTQuNjI3NiAxMy4xOTM5IDEyLjU2MTcgMTUuNDk1M0MxMC43NTQ2IDE3LjUwOTIgOS42NTU0OSAyMC4xNjkzIDkuNjU1NDkgMjMuMDg4QzkuNjU1NTMgMjQuNjU3MSAxMC4yMDgzIDI1LjgyMTQgMTEuMDQ2MSAyNi44NjY0QzExLjkwNTYgMjcuOTM4NCAxMy4wMjQ5IDI4Ljg0NDEgMTQuMTkzNiAyOS45NTAzQzE0LjcyODggMzAuNDU3NCAxNS4yNTIxIDMxLjAwODEgMTUuNzYzOSAzMS41Mjc1QzE2LjI4MTEgMzIuMDUyNCAxNi43OTQzIDMyLjU1NDMgMTcuMzM1MiAzMi45OTE0QzE4LjQxMjMgMzMuODYxNiAxOS41NzM3IDM0LjQ1ODIgMjEuMDI0NiAzNC40NTgyQzI0LjA3NTQgMzQuNDU4MSAyNi44NDM5IDMzLjI1NSAyOC44ODQgMzEuMjk4VjMxLjI5N0MzMS4wNDY0IDI5LjIzMDggMzIuMzkzNyAyNi4yMjQ4IDMyLjM5MzggMjMuMDg4Wk0zMy4yNDUzIDIzLjA4OEMzMy4yNDUzIDI2LjM1NzcgMzEuODg3NiAyOS40ODc5IDI5LjY4NzcgMzEuNzAxM0wyOS40NzI5IDMxLjkxMjNDMjcuMjgwNyAzNC4wMTUgMjQuMzAzOSAzNS4zMDk2IDIxLjAyNDYgMzUuMzA5N0MxOS4zMTAzIDM1LjMwOTcgMTcuOTY0OSAzNC41OTQ2IDE2LjggMzMuNjUzNUMxNi4yMiAzMy4xODQ4IDE1LjY3OTIgMzIuNjU0NyAxNS4xNTc0IDMyLjEyNTFDMTQuNjMwMiAzMS41OSAxNC4xMjk3IDMxLjA2MjIgMTMuNjA4NiAzMC41Njg1VjMwLjU2OTVDMTIuNTA1OCAyOS41MjU2IDExLjI4OTMgMjguNTMxNCAxMC4zODExIDI3LjM5ODZDOS40NTEzMyAyNi4yMzg4IDguODAzOTcgMjQuODkyNCA4LjgwMzkyIDIzLjA4OEM4LjgwMzkyIDE5Ljk1MSA5Ljk4NiAxNy4wODk5IDExLjkyNzkgMTQuOTI1OUgxMS45Mjg5QzE0LjE2NTYgMTIuNDM0NSAxNy40MTI2IDEwLjg2NjQgMjEuMDI0NiAxMC44NjY0SDIxLjIwMDRMMjEuMjAzMyAxMC44NzAzQzI0LjUwOTUgMTAuOTE3OSAyNy40ODk2IDEyLjI4OTMgMjkuNjU4NCAxNC40NTkxTDMwLjA2MjcgMTQuODgzQzMyLjAzMzQgMTcuMDQ5OSAzMy4yNDUzIDE5LjkyNDIgMzMuMjQ1MyAyMy4wODhaIiBmaWxsPSIjNzRERjk4Ii8+CjxwYXRoIGQ9Ik0yOS45NDg1IDIzLjA4OTJDMjkuOTQ4NSAyMC40OTE2IDI4LjgzODggMTguMTU0MiAyNy4wNjc3IDE2LjUyMjhDMjUuNDg4IDE1LjA2OCAyMy4zODM2IDE0LjE3NzYgMjEuMDY5NiAxNC4xNjYzSDIxLjAyNDdDMTguMzY4IDE0LjE2NjMgMTUuOTgzNiAxNS4zMjYxIDE0LjM0ODkgMTcuMTY4M0MxMi45NTA0IDE4Ljc0MzcgMTIuMTAxOCAyMC44MTY4IDEyLjEwMTggMjMuMDg5MkMxMi4xMDE5IDI0LjI3MjUgMTIuNjI5IDI0Ljk3NDMgMTMuNDA1NSAyNS42MDU4QzEzLjgwNDIgMjUuOTMgMTQuMjU0MSAyNi4yMjM4IDE0LjczOTUgMjYuNTU3OUMxNS4yMTggMjYuODg3MyAxNS43MTk2IDI3LjI0OTQgMTYuMTgyOSAyNy42OTA4QzE2LjYyMiAyOC4xMDg5IDE3LjAwMjIgMjguNjAzNSAxNy4zNTc3IDI5LjA5NDFDMTcuNzE5MyAyOS41OTMgMTguMDUwMyAzMC4wNzkyIDE4LjQxMjQgMzAuNTIxOEMxOS4xMjk3IDMxLjM5ODYgMTkuODk2OSAzMi4wMTIgMjEuMDI0NyAzMi4wMTJDMjMuNDkxMiAzMi4wMTE5IDI1LjcyMzIgMzEuMDExIDI3LjMzOTEgMjkuMzkyOUMyOC45NTE4IDI3Ljc3ODEgMjkuOTQ4NSAyNS41NTAzIDI5Ljk0ODUgMjMuMDg5MlpNMzAuNjI5MiAyMy4wODkyQzMwLjYyOTEgMjUuNzM4IDI5LjU1NjYgMjguMTM3IDI3LjgyMTYgMjkuODc0M0MyNi4wODMxIDMxLjYxNTIgMjMuNjc5NCAzMi42OTI2IDIxLjAyNDcgMzIuNjkyN0MxOS41OTE2IDMyLjY5MjcgMTguNjUwMiAzMS44ODg3IDE3Ljg4NSAzMC45NTM0QzE3LjUwNjEgMzAuNDkwMiAxNy4xNTE2IDI5Ljk3MTQgMTYuODA1OSAyOS40OTQ1QzE2LjU0MjEgMjkuMTMwNCAxNi4yNzkzIDI4Ljc4NTEgMTUuOTk5MyAyOC40Nzc5TDE1LjcxMzIgMjguMTgzOUMxNS4yOTA4IDI3Ljc4MTYgMTQuODI2NCAyNy40NDQ4IDE0LjM1MzggMjcuMTE5NUMxMy44ODg0IDI2Ljc5OTEgMTMuNDAyMyAyNi40ODE3IDEyLjk3NTkgMjYuMTM1MUMxMi4xMDE5IDI1LjQyNDQgMTEuNDIwMyAyNC41NDU3IDExLjQyMDIgMjMuMDg5MkMxMS40MjAyIDIwLjY0MzkgMTIuMzM0MyAxOC40MTE1IDEzLjgzOTEgMTYuNzE2MUwxNC4xNzggMTYuMzUyOUMxNS44ODYxIDE0LjYxNjcgMTguMjUwOSAxMy41MzA3IDIwLjg3MDQgMTMuNDg5NkwyMC44NzUzIDEzLjQ4MzdIMjEuMDI1N0MyMy41MzQ2IDEzLjQ4MzggMjUuODE4MSAxNC40NDY1IDI3LjUyODYgMTYuMDIxOEMyOS40MzQgMTcuNzc2OCAzMC42MjkyIDIwLjI5MzEgMzAuNjI5MiAyMy4wODkyWiIgZmlsbD0iIzRERTI5NCIvPgo8cGF0aCBkPSJNMTM2LjIwOSAzMi41OTcxQzEzNC45NDIgMzIuNTk3MSAxMzMuOTE3IDMyLjI4ODcgMTMzLjEzNCAzMS42NzIxQzEzMi4zNTEgMzEuMDU1NCAxMzEuOTU5IDMwLjE3MjEgMTMxLjk1OSAyOS4wMjIxQzEzMS45NTkgMjcuODcyMSAxMzIuMzU5IDI2Ljk2MzcgMTMzLjE1OSAyNi4yOTcxQzEzMy45NzYgMjUuNjMwNCAxMzUuMTU5IDI1LjI5NzEgMTM2LjcwOSAyNS4yOTcxSDEzOC4zMzRDMTM5LjQ2NyAyNS4yOTcxIDE0MC4yNjcgMjUuMTQ3MSAxNDAuNzM0IDI0Ljg0NzFDMTQxLjIxNyAyNC41NDcxIDE0MS40NTkgMjQuMDk3MSAxNDEuNDU5IDIzLjQ5NzFDMTQxLjQ1OSAyMi45ODA0IDE0MS4yNDIgMjIuNTMwNCAxNDAuODA5IDIyLjE0NzFDMTQwLjM3NiAyMS43NjM3IDEzOS42OTIgMjEuNTcyMSAxMzguNzU5IDIxLjU3MjFDMTM3Ljg5MiAyMS41NzIxIDEzNy4xODQgMjEuNzg4NyAxMzYuNjM0IDIyLjIyMjFDMTM2LjEwMSAyMi42NTU0IDEzNS43NzYgMjMuMjgwNCAxMzUuNjU5IDI0LjA5NzFIMTMyLjEwOUMxMzIuMjc2IDIyLjQ2MzcgMTMyLjk0MiAyMS4xODg3IDEzNC4xMDkgMjAuMjcyMUMxMzUuMjc2IDE5LjM1NTQgMTM2LjgzNCAxOC44OTcxIDEzOC43ODQgMTguODk3MUMxNDAuNzM0IDE4Ljg5NzEgMTQyLjI1MSAxOS4zMTM3IDE0My4zMzQgMjAuMTQ3MUMxNDQuNDE3IDIwLjk2MzcgMTQ0Ljk1OSAyMi4xMTM3IDE0NC45NTkgMjMuNTk3MVYzMi4xOTcxSDE0MS41MDlMMTQxLjQ1OSAyOS4wNzIxSDE0MS4zMzRDMTQxLjA1MSAzMC4xMDU0IDE0MC40MzQgMzAuOTU1NCAxMzkuNDg0IDMxLjYyMjFDMTM4LjU1MSAzMi4yNzIxIDEzNy40NTkgMzIuNTk3MSAxMzYuMjA5IDMyLjU5NzFaTTEzNS41NTkgMjguNzIyMUMxMzUuNTU5IDI5LjIyMjEgMTM1LjczNCAyOS42MDU0IDEzNi4wODQgMjkuODcyMUMxMzYuNDUxIDMwLjEzODcgMTM2Ljk2NyAzMC4yNzIxIDEzNy42MzQgMzAuMjcyMUMxMzguMzY3IDMwLjI3MjEgMTM5LjAyNiAzMC4wOTcxIDEzOS42MDkgMjkuNzQ3MUMxNDAuMTkyIDI5LjM5NzEgMTQwLjY0MiAyOC45Mzg3IDE0MC45NTkgMjguMzcyMUMxNDEuMjkyIDI3LjgwNTQgMTQxLjQ1OSAyNy4xOTcxIDE0MS40NTkgMjYuNTQ3MVYyNS4zNzIxSDE0MS4zMzRDMTQxLjE4NCAyNS45ODg3IDE0MC44NTkgMjYuNDQ3MSAxNDAuMzU5IDI2Ljc0NzFDMTM5Ljg1OSAyNy4wMzA0IDEzOS4xNTEgMjcuMTcyMSAxMzguMjM0IDI3LjE3MjFIMTM3LjM1OUMxMzYuNzc2IDI3LjE3MjEgMTM2LjMyNiAyNy4zMTM3IDEzNi4wMDkgMjcuNTk3MUMxMzUuNzA5IDI3Ljg2MzcgMTM1LjU1OSAyOC4yMzg3IDEzNS41NTkgMjguNzIyMVoiIGZpbGw9IiNGQUY1RTkiLz4KPHBhdGggZD0iTTEyOS42ODUgMTkuMjk3MVYzMi4xOTcxSDEyNi4xMVYxOS4yOTcxSDEyOS42ODVaTTEyNS43ODUgMTUuNTIyMUMxMjUuNzg1IDE0Ljk1NTQgMTI1Ljk5MyAxNC40NzIxIDEyNi40MSAxNC4wNzIxQzEyNi44MjcgMTMuNjU1NCAxMjcuMzE4IDEzLjQ0NzEgMTI3Ljg4NSAxMy40NDcxQzEyOC40NjggMTMuNDQ3MSAxMjguOTYgMTMuNjQ3MSAxMjkuMzYgMTQuMDQ3MUMxMjkuNzYgMTQuNDQ3MSAxMjkuOTYgMTQuOTM4NyAxMjkuOTYgMTUuNTIyMUMxMjkuOTYgMTYuMDg4NyAxMjkuNzYgMTYuNTcyMSAxMjkuMzYgMTYuOTcyMUMxMjguOTYgMTcuMzcyMSAxMjguNDY4IDE3LjU3MjEgMTI3Ljg4NSAxNy41NzIxQzEyNy4zMDIgMTcuNTcyMSAxMjYuODAyIDE3LjM3MjEgMTI2LjM4NSAxNi45NzIxQzEyNS45ODUgMTYuNTcyMSAxMjUuNzg1IDE2LjA4ODcgMTI1Ljc4NSAxNS41MjIxWiIgZmlsbD0iI0ZBRjVFOSIvPgo8cGF0aCBkPSJNMTA5LjIzMiAyNS43NDcxQzEwOS4yMzIgMjQuMzgwNCAxMDkuNDU3IDIzLjE4MDQgMTA5LjkwNyAyMi4xNDcxQzExMC4zNzMgMjEuMTEzNyAxMTEuMDMyIDIwLjMxMzcgMTExLjg4MiAxOS43NDcxQzExMi43MzIgMTkuMTgwNCAxMTMuNzIzIDE4Ljg5NzEgMTE0Ljg1NyAxOC44OTcxQzExNS45MDcgMTguODk3MSAxMTYuODQgMTkuMTk3MSAxMTcuNjU3IDE5Ljc5NzFDMTE4LjQ3MyAyMC4zOTcxIDExOS4wNzMgMjEuMjIyMSAxMTkuNDU3IDIyLjI3MjFIMTE5LjYwN1YxNC42OTcxSDEyMy4xNTdWMzIuMTk3MUgxMTkuNzA3TDExOS42MDcgMjkuMjQ3MUgxMTkuNDU3QzExOS4wNTcgMzAuMjk3MSAxMTguNDQ4IDMxLjEyMjEgMTE3LjYzMiAzMS43MjIxQzExNi44MTUgMzIuMzA1NCAxMTUuODkgMzIuNTk3MSAxMTQuODU3IDMyLjU5NzFDMTEzLjcyMyAzMi41OTcxIDExMi43MzIgMzIuMzIyMSAxMTEuODgyIDMxLjc3MjFDMTExLjAzMiAzMS4yMDU0IDExMC4zNzMgMzAuNDA1NCAxMDkuOTA3IDI5LjM3MjFDMTA5LjQ1NyAyOC4zMzg3IDEwOS4yMzIgMjcuMTMwNCAxMDkuMjMyIDI1Ljc0NzFaTTExMi44MDcgMjUuNzQ3MUMxMTIuODA3IDI3LjA4MDQgMTEzLjExNSAyOC4xNDcxIDExMy43MzIgMjguOTQ3MUMxMTQuMzQ4IDI5LjczMDQgMTE1LjE3MyAzMC4xMjIxIDExNi4yMDcgMzAuMTIyMUMxMTcuMjIzIDMwLjEyMjEgMTE4LjA0IDI5Ljc4ODcgMTE4LjY1NyAyOS4xMjIxQzExOS4yOSAyOC40Mzg3IDExOS42MDcgMjcuNTcyMSAxMTkuNjA3IDI2LjUyMjFWMjQuOTk3MUMxMTkuNjA3IDIzLjkzMDQgMTE5LjI5OCAyMy4wNjM3IDExOC42ODIgMjIuMzk3MUMxMTguMDY1IDIxLjcxMzcgMTE3LjI0IDIxLjM3MjEgMTE2LjIwNyAyMS4zNzIxQzExNS4xNzMgMjEuMzcyMSAxMTQuMzQ4IDIxLjc3MjEgMTEzLjczMiAyMi41NzIxQzExMy4xMTUgMjMuMzU1NCAxMTIuODA3IDI0LjQxMzcgMTEyLjgwNyAyNS43NDcxWiIgZmlsbD0iI0ZBRjVFOSIvPgo8cGF0aCBkPSJNOTkuNTg4MiAxOS4yOTcxSDEwMy4wMzhMMTAzLjEzOCAyMy4zNDcxSDEwMy4yNjNDMTAzLjQ2MyAyMi4zMzA0IDEwMy43NTUgMjEuNTIyMSAxMDQuMTM4IDIwLjkyMjFDMTA0LjUyMiAyMC4zMDU0IDEwNS4wNjMgMTkuODQ3MSAxMDUuNzYzIDE5LjU0NzFDMTA2LjQ4IDE5LjIzMDQgMTA3LjQyMiAxOS4wNzIxIDEwOC41ODggMTkuMDcyMVYyMi4wNzIxQzEwNi43NTUgMjIuMTM4NyAxMDUuNDMgMjIuNDg4NyAxMDQuNjEzIDIzLjEyMjFDMTA0LjA5NyAyMy41MDU0IDEwMy43MjIgMjQuMDMwNCAxMDMuNDg4IDI0LjY5NzFDMTAzLjI1NSAyNS4zNjM3IDEwMy4xMzggMjYuMjEzNyAxMDMuMTM4IDI3LjI0NzFWMzIuMTk3MUg5OS41ODgyVjE5LjI5NzFaIiBmaWxsPSIjRkFGNUU5Ii8+CjxwYXRoIGQ9Ik05MC40NzQzIDMyLjU5NzFDODkuMTc0MyAzMi41OTcxIDg3Ljk4MjcgMzIuMzIyMSA4Ni44OTkzIDMxLjc3MjFDODUuODMyNyAzMS4yMDU0IDg0Ljk5MSAzMC4zOTcxIDg0LjM3NDMgMjkuMzQ3MUM4My43NTc3IDI4LjI5NzEgODMuNDQ5MyAyNy4wODA0IDgzLjQ0OTMgMjUuNjk3MUM4My40NDkzIDI0LjM0NzEgODMuNzU3NyAyMy4xNTU0IDg0LjM3NDMgMjIuMTIyMUM4NS4wMDc3IDIxLjA4ODcgODUuODU3NyAyMC4yOTcxIDg2LjkyNDMgMTkuNzQ3MUM4Ny45OTEgMTkuMTgwNCA4OS4xNzQzIDE4Ljg5NzEgOTAuNDc0MyAxOC44OTcxQzkxLjc3NDMgMTguODk3MSA5Mi45NTc3IDE5LjE4MDQgOTQuMDI0MyAxOS43NDcxQzk1LjEwNzcgMjAuMjk3MSA5NS45NTc3IDIxLjA4ODcgOTYuNTc0MyAyMi4xMjIxQzk3LjIwNzcgMjMuMTU1NCA5Ny41MjQzIDI0LjM0NzEgOTcuNTI0MyAyNS42OTcxQzk3LjUyNDMgMjcuMDgwNCA5Ny4yMDc3IDI4LjI5NzEgOTYuNTc0MyAyOS4zNDcxQzk1Ljk1NzcgMzAuMzk3MSA5NS4xMDc3IDMxLjIwNTQgOTQuMDI0MyAzMS43NzIxQzkyLjk1NzcgMzIuMzIyMSA5MS43NzQzIDMyLjU5NzEgOTAuNDc0MyAzMi41OTcxWk04Ny4wMjQzIDI1LjY5NzFDODcuMDI0MyAyNy4wNjM3IDg3LjMyNDMgMjguMTA1NCA4Ny45MjQzIDI4LjgyMjFDODguNTQxIDI5LjUzODcgODkuMzkxIDI5Ljg5NzEgOTAuNDc0MyAyOS44OTcxQzkxLjU1NzcgMjkuODk3MSA5Mi4zOTkzIDI5LjUzODcgOTIuOTk5MyAyOC44MjIxQzkzLjYxNiAyOC4xMDU0IDkzLjkyNDMgMjcuMDYzNyA5My45MjQzIDI1LjY5NzFDOTMuOTI0MyAyNC4zNjM3IDkzLjYxNiAyMy4zNDcxIDkyLjk5OTMgMjIuNjQ3MUM5Mi4zOTkzIDIxLjk0NzEgOTEuNTU3NyAyMS41OTcxIDkwLjQ3NDMgMjEuNTk3MUM4OS4zOTEgMjEuNTk3MSA4OC41NDEgMjEuOTQ3MSA4Ny45MjQzIDIyLjY0NzFDODcuMzI0MyAyMy4zNDcxIDg3LjAyNDMgMjQuMzYzNyA4Ny4wMjQzIDI1LjY5NzFaIiBmaWxsPSIjRkFGNUU5Ii8+CjxwYXRoIGQ9Ik02OC4xNDE5IDE0LjY5NzFINzEuNjkxOVYyMi4zNzIxSDcxLjg0MTlDNzIuMTkxOSAyMS4yNTU0IDcyLjc3NTIgMjAuMzk3MSA3My41OTE5IDE5Ljc5NzFDNzQuNDI1MiAxOS4xOTcxIDc1LjQyNTIgMTguODk3MSA3Ni41OTE5IDE4Ljg5NzFDNzcuNDU4NiAxOC44OTcxIDc4LjI1MDIgMTkuMDk3MSA3OC45NjY5IDE5LjQ5NzFDNzkuNzAwMiAxOS44ODA0IDgwLjI3NTIgMjAuNDQ3MSA4MC42OTE5IDIxLjE5NzFDODEuMTI1MiAyMS45NDcxIDgxLjM0MTkgMjIuODM4NyA4MS4zNDE5IDIzLjg3MjFWMzIuMTk3MUg3Ny43OTE5VjI0Ljg3MjFDNzcuNzkxOSAyMy44MjIxIDc3LjU0MTkgMjMuMDMwNCA3Ny4wNDE5IDIyLjQ5NzFDNzYuNTU4NiAyMS45NjM3IDc1LjgzMzYgMjEuNjk3MSA3NC44NjY5IDIxLjY5NzFDNzMuODgzNiAyMS42OTcxIDczLjEwODYgMjIuMDMwNCA3Mi41NDE5IDIyLjY5NzFDNzEuOTc1MiAyMy4zNjM3IDcxLjY5MTkgMjQuMjgwNCA3MS42OTE5IDI1LjQ0NzFWMzIuMTk3MUg2OC4xNDE5VjE0LjY5NzFaIiBmaWxsPSIjRkFGNUU5Ii8+CjxwYXRoIGQ9Ik01Ny43OTc4IDMyLjU5N0M1Ni4wMzExIDMyLjU5NyA1NC40ODk0IDMyLjIzMDQgNTMuMTcyOCAzMS40OTdDNTEuODcyOCAzMC43NjM3IDUwLjg2NDQgMjkuNzA1NCA1MC4xNDc4IDI4LjMyMjFDNDkuNDQ3OCAyNi45Mzg3IDQ5LjA5NzggMjUuMzA1NCA0OS4wOTc4IDIzLjQyMjFDNDkuMDk3OCAyMS41Mzg3IDQ5LjQ0NzggMTkuOTEzNyA1MC4xNDc4IDE4LjU0NzFDNTAuODY0NCAxNy4xNjM3IDUxLjg3MjggMTYuMTEzNyA1My4xNzI4IDE1LjM5N0M1NC40NzI4IDE0LjY2MzcgNTYuMDE0NCAxNC4yOTcxIDU3Ljc5NzggMTQuMjk3MUM2MC4wNjQ0IDE0LjI5NzEgNjEuOTE0NCAxNC44NzIxIDYzLjM0NzggMTYuMDIyMUM2NC43OTc4IDE3LjE1NTQgNjUuNjgxMSAxOC43MDU0IDY1Ljk5NzggMjAuNjcyMUg2Mi4wNDc4QzYxLjc4MTEgMTkuNjM4NyA2MS4yODExIDE4LjgyMjEgNjAuNTQ3OCAxOC4yMjIxQzU5LjgxNDQgMTcuNjIyMSA1OC44OTc4IDE3LjMyMjEgNTcuNzk3OCAxNy4zMjIxQzU2LjMzMTEgMTcuMzIyMSA1NS4xNzI4IDE3Ljg2MzcgNTQuMzIyOCAxOC45NDcxQzUzLjQ4OTQgMjAuMDEzNyA1My4wNzI4IDIxLjUwNTQgNTMuMDcyOCAyMy40MjIxQzUzLjA3MjggMjUuMzM4NyA1My41MDYxIDI2Ljg0NzEgNTQuMzcyOCAyNy45NDcxQzU1LjIzOTQgMjkuMDMwNCA1Ni40MjI4IDI5LjU3MjEgNTcuOTIyOCAyOS41NzIxQzU5LjEwNjEgMjkuNTcyMSA2MC4wNzI4IDI5LjE5NzEgNjAuODIyOCAyOC40NDcxQzYxLjU4OTQgMjcuNjk3MSA2Mi4wNDc4IDI2LjY5NzEgNjIuMTk3OCAyNS40NDcxSDY2LjA5NzhDNjUuOTY0NCAyNi44OTcxIDY1LjU0NzggMjguMTYzNyA2NC44NDc4IDI5LjI0NzFDNjQuMTY0NCAzMC4zMTM3IDYzLjIyMjggMzEuMTM4NyA2Mi4wMjI4IDMxLjcyMkM2MC44MjI4IDMyLjMwNTQgNTkuNDE0NCAzMi41OTcgNTcuNzk3OCAzMi41OTdaIiBmaWxsPSIjRkFGNUU5Ii8+Cjwvc3ZnPgo=\"","\"use client\";\n\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n Home, FolderClosed, Users, Settings, ChevronDown,\n LayoutDashboard, Clock3, Activity, Lightbulb, Bell, Plug, BarChart3,\n FileText, Headphones, Shield, Sliders, Workflow, SquareDot,\n PanelLeftClose, PanelLeft,\n} from \"lucide-react\";\nimport { Tooltip, TooltipTrigger, TooltipContent } from \"../primitives/Tooltip\";\n\nimport chordiaLogoSvg from \"../../assets/LogoChordia.svg\";\n\n/**\n * Sidebar — collapsible navigation sidebar.\n *\n * Slot-based: pass menuItems as data, component handles rendering + expand/collapse.\n * No framework dependencies (no router, no auth, no API calls).\n *\n * Props:\n * - menuItems Array<MenuItem> Navigation items (see shape below)\n * - activeId string Currently active item id\n * - onNavigate function(href) Navigation callback\n * - collapsed boolean External collapsed state (controlled)\n * - onToggleCollapse function Toggle callback\n * - header ReactNode Optional header slot (logo, brand)\n * - footer ReactNode Optional footer slot (user, settings)\n * - width number Expanded width (default 240)\n * - collapsedWidth number Collapsed width (default 56)\n *\n * MenuItem shape:\n * - id string\n * - label string\n * - icon string (key from ICON_MAP) or ReactNode\n * - href string\n * - active boolean (override)\n * - children Array<MenuItem> (nested group)\n * - section string (section label above this item)\n */\n\nconst ICON_MAP = {\n home: Home,\n projects: FolderClosed,\n folder: FolderClosed,\n organization: Users,\n users: Users,\n dashboard: LayoutDashboard,\n history: Clock3,\n sessions: Clock3,\n monitoring: Activity,\n activity: Activity,\n insights: Lightbulb,\n notifications: Bell,\n integrations: Plug,\n settings: Settings,\n usage: BarChart3,\n docs: FileText,\n documentation: FileText,\n agents: Headphones,\n security: Shield,\n configuration: Sliders,\n workflow: Workflow,\n};\n\nfunction sidebarNavId(id) {\n if (!id) return undefined;\n return `sidebar-nav-${String(id)}`;\n}\n\nfunction resolveIcon(icon) {\n if (!icon) return SquareDot;\n if (typeof icon === \"string\") return ICON_MAP[icon.toLowerCase()] || SquareDot;\n return icon;\n}\n\nexport default function Sidebar({\n menuItems = [],\n activeId,\n onNavigate,\n collapsed: controlledCollapsed,\n onToggleCollapse,\n header,\n footer,\n width = 244,\n collapsedWidth = 56,\n expandedParentId = undefined,\n defaultExpandedParentId = null,\n onExpandedParentChange,\n singleExpand = false,\n}) {\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const collapsed = controlledCollapsed !== undefined ? controlledCollapsed : internalCollapsed;\n const toggleCollapse = onToggleCollapse || (() => setInternalCollapsed(!internalCollapsed));\n\n const [expandedGroups, setExpandedGroups] = useState(() => {\n const initial = {};\n menuItems.forEach((item) => {\n if (item.children?.length) {\n // Auto-expand groups that contain the active item\n const hasActive = item.children.some((c) => c.id === activeId || c.active);\n initial[item.id] = hasActive;\n }\n });\n return initial;\n });\n\n const parentItemIds = useMemo(\n () => new Set(menuItems.filter((item) => item.children?.length).map((item) => item.id)),\n [menuItems]\n );\n\n const autoExpandedParentId = useMemo(() => {\n const activeParent = menuItems.find(\n (item) =>\n item.children?.length &&\n (item.id === activeId ||\n !!item.active ||\n item.children.some((c) => c.id === activeId || c.active))\n );\n return activeParent?.id ?? null;\n }, [menuItems, activeId]);\n\n const [internalExpandedParentId, setInternalExpandedParentId] = useState(() => {\n const initialParentIds = new Set(\n menuItems.filter((item) => item.children?.length).map((item) => item.id)\n );\n if (defaultExpandedParentId != null && initialParentIds.has(defaultExpandedParentId)) {\n return defaultExpandedParentId;\n }\n const initialActiveParent = menuItems.find(\n (item) =>\n item.children?.length &&\n (item.id === activeId ||\n !!item.active ||\n item.children.some((c) => c.id === activeId || c.active))\n );\n return initialActiveParent?.id ?? null;\n });\n\n const isExpandedParentControlled = expandedParentId !== undefined;\n const currentExpandedParentId = isExpandedParentControlled\n ? (expandedParentId ?? null)\n : (parentItemIds.has(internalExpandedParentId) ? internalExpandedParentId : (autoExpandedParentId ?? null));\n\n useEffect(() => {\n if (isExpandedParentControlled || !singleExpand) return;\n const isMissingOrInvalid =\n internalExpandedParentId == null || !parentItemIds.has(internalExpandedParentId);\n if (isMissingOrInvalid) {\n setInternalExpandedParentId(autoExpandedParentId ?? null);\n }\n }, [\n autoExpandedParentId,\n isExpandedParentControlled,\n singleExpand,\n internalExpandedParentId,\n parentItemIds,\n ]);\n\n const setExpandedParent = (nextId) => {\n if (!isExpandedParentControlled) setInternalExpandedParentId(nextId);\n onExpandedParentChange?.(nextId);\n };\n\n const toggleGroup = (id) => {\n if (singleExpand) {\n const isExpanded = currentExpandedParentId === id;\n setExpandedParent(isExpanded ? null : id);\n return;\n }\n setExpandedGroups((prev) => ({ ...prev, [id]: !prev[id] }));\n };\n\n const isGroupExpanded = (id) => {\n if (singleExpand) return currentExpandedParentId === id;\n return !!expandedGroups[id];\n };\n\n const handleGroupPrimaryClick = (item) => {\n if (singleExpand) {\n if (currentExpandedParentId !== item.id) setExpandedParent(item.id);\n onNavigate?.(item.href || item.id);\n return;\n }\n toggleGroup(item.id);\n };\n\n const currentWidth = collapsed ? collapsedWidth : width;\n\n return (\n <nav\n style={{\n width: currentWidth,\n minWidth: currentWidth,\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n padding: collapsed ? \"0\" : \"0 0 24px 24px\",\n gap: 24,\n background: \"var(--Background-Inverse, #0B0B0B)\",\n fontFamily: \"var(--font-sans)\",\n transition: \"width 0.2s ease, min-width 0.2s ease\",\n overflow: \"hidden\",\n flexShrink: 0,\n }}\n >\n {/* Header + Collapse toggle in one row */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: collapsed ? \"center\" : \"space-between\",\n padding: collapsed ? \"12px 0\" : \"12px 0 0\",\n flexShrink: 0,\n width: \"100%\",\n }}\n >\n {!collapsed && (\n <div style={{ flexShrink: 0 }}>\n {header !== undefined ? header : <img src={chordiaLogoSvg} alt=\"Chordia\" style={{ height: 28, objectFit: \"contain\" }} />}\n </div>\n )}\n <button\n onClick={toggleCollapse}\n title={collapsed ? \"Expand sidebar\" : \"Collapse sidebar\"}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 28,\n height: 28,\n borderRadius: \"var(--radius-sm)\",\n border: \"none\",\n background: \"transparent\",\n color: \"rgba(255, 255, 255, 0.5)\",\n cursor: \"pointer\",\n transition: \"background 0.15s ease, color 0.15s ease\",\n flexShrink: 0,\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"rgba(255, 255, 255, 0.08)\";\n e.currentTarget.style.color = \"rgba(255, 255, 255, 0.8)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"transparent\";\n e.currentTarget.style.color = \"rgba(255, 255, 255, 0.5)\";\n }}\n >\n {collapsed ? <PanelLeft size={16} /> : <PanelLeftClose size={16} />}\n </button>\n </div>\n\n {/* Menu items */}\n <div\n className=\"custom-thin-scrollbar\"\n style={{\n flex: 1,\n overflowY: \"auto\",\n overflowX: \"hidden\",\n padding: collapsed ? \"0 8px\" : \"0\",\n width: \"100%\",\n }}\n >\n {menuItems.map((item, idx) => (\n <React.Fragment key={item.id || idx}>\n {/* Section label */}\n {item.section && !collapsed && (\n <div\n style={{\n fontSize: \"var(--text-xs)\",\n fontWeight: 650,\n letterSpacing: \"0.08em\",\n textTransform: \"uppercase\",\n color: \"rgba(255, 255, 255, 0.35)\",\n padding: \"16px 8px 6px\",\n lineHeight: 1,\n }}\n >\n {item.section}\n </div>\n )}\n\n {item.children?.length ? (\n <SidebarGroup\n item={item}\n activeId={activeId}\n expanded={isGroupExpanded(item.id)}\n onPrimaryClick={() => handleGroupPrimaryClick(item)}\n onToggleOnly={() => toggleGroup(item.id)}\n onNavigate={onNavigate}\n collapsed={collapsed}\n singleExpand={singleExpand}\n />\n ) : (\n <SidebarItem\n item={item}\n active={item.id === activeId || item.active}\n onNavigate={onNavigate}\n collapsed={collapsed}\n />\n )}\n </React.Fragment>\n ))}\n </div>\n\n {/* Footer slot */}\n {footer && !collapsed && (\n <div\n style={{\n padding: \"12px 16px\",\n borderTop: \"1px solid rgba(255, 255, 255, 0.08)\",\n flexShrink: 0,\n width: \"100%\",\n }}\n >\n {footer}\n </div>\n )}\n </nav>\n );\n}\n\nfunction SidebarItem({ item, active, onNavigate, collapsed }) {\n const Icon = resolveIcon(item.icon);\n const isReactIcon = typeof item.icon !== \"string\" && typeof item.icon !== \"undefined\";\n const labelRef = useRef(null);\n const [isLabelTruncated, setIsLabelTruncated] = useState(false);\n\n useEffect(() => {\n if (collapsed) return;\n\n const checkTruncation = () => {\n if (!labelRef.current) return;\n setIsLabelTruncated(labelRef.current.scrollWidth > labelRef.current.clientWidth);\n };\n\n checkTruncation();\n window.addEventListener(\"resize\", checkTruncation);\n return () => window.removeEventListener(\"resize\", checkTruncation);\n }, [item.label, collapsed]);\n\n return (\n <button\n id={sidebarNavId(item.id)}\n onClick={() => onNavigate?.(item.href || item.id)}\n title={collapsed || isLabelTruncated ? item.label : undefined}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: collapsed ? 0 : 12,\n justifyContent: collapsed ? \"center\" : \"flex-start\",\n width: \"100%\",\n padding: collapsed ? \"10px 0\" : \"12px 24px 12px 12px\",\n borderRadius: active ? \"4px 0 0 4px\" : \"4px\",\n borderRight: active ? \"2px solid #00A66E\" : \"2px solid transparent\",\n borderTop: \"none\",\n borderBottom: \"none\",\n borderLeft: \"none\",\n background: active ? \"var(--Background-MonoPressed, #323232)\" : \"transparent\",\n color: active ? \"var(--Brand-400, #33B88B)\" : \"var(--Content-TertiaryInverse, #B2AEA8)\",\n fontWeight: 500,\n fontSize: \"12px\",\n fontStyle: \"normal\",\n lineHeight: \"120%\",\n textTransform: \"uppercase\",\n fontFamily: \"var(--font-sans)\",\n cursor: \"pointer\",\n textAlign: \"left\",\n transition: \"background 0.15s ease, color 0.1s ease, border-color 0.15s ease\",\n marginBottom: 2,\n }}\n onMouseEnter={(e) => {\n if (!active) {\n e.currentTarget.style.background = \"var(--Background-MonoPressed, #323232)\";\n e.currentTarget.style.color = \"var(--Brand-400, #33B88B)\";\n }\n }}\n onMouseLeave={(e) => {\n if (!active) {\n e.currentTarget.style.background = \"transparent\";\n e.currentTarget.style.color = \"var(--Content-TertiaryInverse, #B2AEA8)\";\n }\n }}\n >\n {isReactIcon ? (\n <span style={{ flexShrink: 0, display: \"flex\" }}>{item.icon}</span>\n ) : (\n <Icon\n size={18}\n style={{\n flexShrink: 0,\n color: \"inherit\",\n cursor: \"pointer\",\n }}\n onClick={(e) => {\n e.stopPropagation();\n onToggleOnly();\n }}\n />\n )}\n {!collapsed && (\n <span\n ref={labelRef}\n style={{\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }}\n >\n {item.label}\n </span>\n )}\n </button>\n );\n}\n\nfunction SidebarGroup({\n item,\n activeId,\n expanded,\n onPrimaryClick,\n onToggleOnly,\n onNavigate,\n collapsed,\n singleExpand,\n}) {\n const Icon = resolveIcon(item.icon);\n const hasActiveGroupItem =\n item.id === activeId || !!item.active || item.children?.some((c) => c.id === activeId || c.active);\n const groupLabelRef = useRef(null);\n const [isGroupLabelTruncated, setIsGroupLabelTruncated] = useState(false);\n\n useEffect(() => {\n if (collapsed) return;\n\n const checkTruncation = () => {\n if (!groupLabelRef.current) return;\n setIsGroupLabelTruncated(groupLabelRef.current.scrollWidth > groupLabelRef.current.clientWidth);\n };\n\n checkTruncation();\n window.addEventListener(\"resize\", checkTruncation);\n return () => window.removeEventListener(\"resize\", checkTruncation);\n }, [item.label, collapsed]);\n\n if (collapsed) {\n // In collapsed mode, show just the group icon\n return (\n <button\n id={sidebarNavId(item.id)}\n onClick={onPrimaryClick}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n padding: \"10px 0\",\n borderRadius: \"4px\",\n border: \"none\",\n background: hasActiveGroupItem ? \"var(--Background-MonoPressed, #323232)\" : \"transparent\",\n color: hasActiveGroupItem ? \"var(--Brand-400, #33B88B)\" : \"var(--Content-TertiaryInverse, #B2AEA8)\",\n cursor: \"pointer\",\n marginBottom: 2,\n transition: \"background 0.15s ease\",\n }}\n onMouseEnter={(e) => {\n if (!hasActiveGroupItem) {\n e.currentTarget.style.background = \"var(--Background-MonoPressed, #323232)\";\n e.currentTarget.style.color = \"var(--Brand-400, #33B88B)\";\n }\n }}\n onMouseLeave={(e) => {\n if (!hasActiveGroupItem) {\n e.currentTarget.style.background = \"transparent\";\n e.currentTarget.style.color = \"var(--Content-TertiaryInverse, #B2AEA8)\";\n }\n }}\n >\n <Icon\n size={18}\n style={{ color: \"inherit\" }}\n />\n </button>\n );\n }\n\n return (\n <div style={{ marginBottom: 2 }}>\n {/* Group header */}\n <button\n id={sidebarNavId(item.id)}\n onClick={onPrimaryClick}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 12,\n width: \"100%\",\n padding: \"12px 24px 12px 12px\",\n borderRadius: \"4px\",\n border: \"none\",\n background: \"transparent\",\n color: hasActiveGroupItem ? \"var(--Brand-400, #33B88B)\" : \"var(--Content-TertiaryInverse, #B2AEA8)\",\n fontWeight: 700,\n fontSize: \"12px\",\n fontStyle: \"normal\",\n lineHeight: \"120%\",\n textTransform: \"uppercase\",\n fontFamily: \"var(--font-sans)\",\n cursor: \"pointer\",\n textAlign: \"left\",\n transition: \"background 0.15s ease, color 0.15s ease\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = \"var(--Background-MonoPressed, #323232)\";\n e.currentTarget.style.color = \"var(--Brand-400, #33B88B)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = \"transparent\";\n if (!hasActiveGroupItem) e.currentTarget.style.color = \"var(--Content-TertiaryInverse, #B2AEA8)\";\n else e.currentTarget.style.color = \"var(--Brand-400, #33B88B)\";\n }}\n >\n <Icon\n size={18}\n style={{\n flexShrink: 0,\n color: \"inherit\",\n }}\n />\n {isGroupLabelTruncated ? (\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n ref={groupLabelRef}\n style={{\n flex: 1,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }}\n >\n {item.label}\n </span>\n </TooltipTrigger>\n <TooltipContent side=\"top\" className=\"max-w-[28ch] whitespace-normal break-words\">\n {item.label}\n </TooltipContent>\n </Tooltip>\n ) : (\n <span\n ref={groupLabelRef}\n style={{\n flex: 1,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }}\n >\n {item.label}\n </span>\n )}\n <ChevronDown\n size={14}\n onClick={(e) => {\n e.stopPropagation();\n onToggleOnly();\n }}\n style={{\n flexShrink: 0,\n color: \"inherit\",\n opacity: 0.7,\n transform: expanded ? \"rotate(0deg)\" : \"rotate(-90deg)\",\n transition: \"transform 0.2s ease\",\n cursor: singleExpand ? \"pointer\" : \"inherit\",\n }}\n />\n </button>\n\n {/* Children */}\n {expanded && (\n <div style={{ paddingLeft: 18, marginTop: 2 }}>\n {item.children.map((child, idx) => (\n <SidebarItem\n key={child.id || idx}\n item={child}\n active={child.id === activeId || child.active}\n onNavigate={onNavigate}\n collapsed={false}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { LogOut, ChevronDown } from 'lucide-react';\n\n// Stable avatar colors — warm/neutral palette, no purple\nconst AVATAR_COLORS = [\n '#5a8a6e', // sage green\n '#b07d4f', // warm amber\n '#7a8fa6', // slate blue\n '#c47a5a', // terracotta\n '#6a9a8a', // teal\n '#a0785a', // clay\n '#5a7a9a', // steel blue\n '#9a7a5a', // caramel\n];\n\nfunction avatarColor(name) {\n if (!name) return AVATAR_COLORS[0];\n let hash = 0;\n for (let i = 0; i < name.length; i++) hash = ((hash << 5) - hash + name.charCodeAt(i)) | 0;\n return AVATAR_COLORS[Math.abs(hash) % AVATAR_COLORS.length];\n}\n\n/**\n * NavigationBar — top-level app header bar.\n *\n * Slot-based composition: pass children for center content, trailing for right content,\n * or use the built-in user/switcher/actions props for the standard Chordia layout.\n *\n * Props:\n * - logo ReactNode Left-side branding (defaults to \"Chordia\" wordmark)\n * - title string App title shown after logo\n * - userName string User's display name\n * - userEmail string Fallback if no userName\n * - userRole string Role badge (e.g. \"Admin\")\n * - onSignOut function Sign out callback (renders sign out button)\n * - children ReactNode Center slot — switchers, breadcrumbs, tabs, anything\n * - trailing ReactNode Right slot — status indicators, extra actions\n * - userMenu ReactNode Optional custom user menu (replaces built-in user block)\n * - height number Bar height in px (default 48)\n * - style object Style overrides on the root element\n */\nexport default function NavigationBar({\n logo,\n title,\n userName,\n userEmail,\n userInitials,\n userRole,\n onSignOut,\n children,\n trailing,\n userMenu,\n height = 48,\n style,\n}) {\n const displayName = userName || userEmail || '';\n const initials = userInitials || getInitials(displayName);\n\n return (\n <header\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '0 20px',\n height,\n borderBottom: '1px solid var(--border)',\n background: 'var(--primary-foreground)',\n flexShrink: 0,\n fontFamily: 'var(--font-sans)',\n position: 'sticky',\n top: 0,\n zIndex: 1000,\n ...style,\n }}\n >\n {/* ─── Left: Logo + Title ─── */}\n <div style={{ display: 'flex', alignItems: 'center', gap: 10, flexShrink: 0 }}>\n {logo !== undefined ? logo : (\n <span style={{\n fontSize: 'var(--text-lg)',\n fontWeight: 700,\n fontFamily: 'var(--font-display)',\n color: 'var(--text-ink)',\n letterSpacing: '-0.01em',\n }}>\n Chordia\n </span>\n )}\n {title && (\n <>\n <span style={{\n width: 1,\n height: 18,\n background: 'var(--border)',\n flexShrink: 0,\n }} />\n <span style={{\n fontSize: 'var(--text-md)',\n fontWeight: 500,\n color: 'var(--text-muted)',\n }}>\n {title}\n </span>\n </>\n )}\n </div>\n\n {/* ─── Center: Slot for switchers, breadcrumbs, tabs ─── */}\n {children && (\n <div style={{\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n flex: 1,\n justifyContent: 'center',\n minWidth: 0,\n }}>\n {children}\n </div>\n )}\n\n {/* ─── Right: User + trailing ─── */}\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 10,\n flexShrink: 0,\n }}\n >\n {trailing}\n\n {userMenu\n ? userMenu\n : displayName && (\n <div style={{ display: 'flex', alignItems: 'center', gap: 8 }}>\n {/* Initials avatar */}\n <div style={{\n width: 30,\n height: 30,\n borderRadius: '50%',\n background: avatarColor(displayName),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n }}>\n <span style={{\n fontSize: 11,\n fontWeight: 600,\n color: '#fff',\n letterSpacing: '0.02em',\n lineHeight: 1,\n }}>\n {initials}\n </span>\n </div>\n\n {/* Name + role */}\n <div style={{ display: 'flex', flexDirection: 'column', gap: 1 }}>\n <span style={{\n fontSize: 'var(--text-sm)',\n fontWeight: 550,\n color: 'var(--text-strong)',\n lineHeight: 1.2,\n }}>\n {displayName}\n </span>\n {userRole && (\n <span style={{\n fontSize: 'var(--text-xs)',\n color: 'var(--text-muted)',\n lineHeight: 1.2,\n }}>\n {userRole}\n </span>\n )}\n </div>\n\n {/* Sign out */}\n {onSignOut && (\n <button\n onClick={onSignOut}\n title=\"Sign out\"\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 28,\n height: 28,\n borderRadius: 'var(--radius-sm)',\n border: 'none',\n background: 'transparent',\n color: 'var(--text-faint)',\n cursor: 'pointer',\n transition: 'background 0.15s ease, color 0.15s ease',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = 'var(--hover-warm)';\n e.currentTarget.style.color = 'var(--text-muted)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = 'transparent';\n e.currentTarget.style.color = 'var(--text-faint)';\n }}\n >\n <LogOut size={14} />\n </button>\n )}\n </div>\n )}\n </div>\n </header>\n );\n}\n\n/**\n * NavPill — compact switcher button for use inside NavigationBar.\n *\n * Props:\n * - label string Display text\n * - color string Rail color token (e.g. \"var(--rail-discovery)\")\n * - active boolean Whether dropdown is open\n * - onClick function Toggle callback\n */\nexport function NavPill({ label, color = 'var(--text-muted)', active, onClick }) {\n return (\n <button\n onClick={onClick}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: 4,\n fontSize: 'var(--text-sm)',\n fontWeight: 500,\n fontFamily: 'var(--font-sans)',\n padding: '4px 10px',\n borderRadius: 'var(--radius-sm)',\n border: `1px solid color-mix(in srgb, ${color} 30%, transparent)`,\n background: `color-mix(in srgb, ${color} 10%, transparent)`,\n color: color,\n cursor: 'pointer',\n transition: 'background 0.15s ease, border-color 0.15s ease',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.background = `color-mix(in srgb, ${color} 18%, transparent)`;\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.background = `color-mix(in srgb, ${color} 10%, transparent)`;\n }}\n >\n {label}\n <ChevronDown\n size={12}\n style={{\n transform: active ? 'rotate(180deg)' : 'rotate(0deg)',\n transition: 'transform 0.2s ease',\n opacity: 0.7,\n }}\n />\n </button>\n );\n}\n\n/**\n * NavDropdown — dropdown panel that attaches to a NavPill.\n * Wrap around NavPill and the dropdown content.\n *\n * Props:\n * - open boolean Whether dropdown is visible\n * - onClose function Close callback\n * - children ReactNode Dropdown items\n * - align string \"left\" | \"right\" (default \"left\")\n */\nexport function NavDropdown({ open, onClose, children, align = 'left' }) {\n if (!open) return null;\n return (\n <>\n <div\n onClick={onClose}\n style={{ position: 'fixed', inset: 0, zIndex: 99, background: 'rgba(0,0,0,0.03)' }}\n />\n <div style={{\n position: 'absolute',\n top: '100%',\n [align === 'right' ? 'right' : 'left']: 0,\n marginTop: 4,\n zIndex: 100,\n background: '#fff',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n padding: 4,\n minWidth: 200,\n maxHeight: 280,\n overflowY: 'auto',\n boxShadow: '0 8px 24px rgba(0,0,0,0.12)',\n }}>\n {children}\n </div>\n </>\n );\n}\n\n/**\n * NavDropdownItem — single item inside NavDropdown.\n *\n * Props:\n * - label string\n * - active boolean\n * - onClick function\n */\nexport function NavDropdownItem({ label, active, onClick }) {\n return (\n <div\n onClick={onClick}\n style={{\n padding: '8px 10px',\n borderRadius: 'var(--radius-sm)',\n cursor: 'pointer',\n fontSize: 'var(--text-sm)',\n color: active ? 'var(--text-ink)' : 'var(--text-base)',\n fontWeight: active ? 600 : 400,\n fontFamily: 'var(--font-sans)',\n background: active ? 'var(--hover-warm)' : 'transparent',\n transition: 'background 0.1s ease',\n }}\n onMouseEnter={(e) => {\n if (!active) e.currentTarget.style.background = 'var(--hover-warm-subtle)';\n }}\n onMouseLeave={(e) => {\n if (!active) e.currentTarget.style.background = 'transparent';\n }}\n >\n {label}\n </div>\n );\n}\n\n/**\n * StatusIndicator — connection/status pill for trailing slot.\n *\n * Props:\n * - connected boolean\n * - label string (optional, defaults to Connected/Disconnected)\n */\nexport function StatusIndicator({ connected, label }) {\n const text = label || (connected ? 'Connected' : 'Disconnected');\n return (\n <span style={{\n fontSize: 'var(--text-xs)',\n fontFamily: 'var(--font-sans)',\n padding: '3px 10px',\n borderRadius: 12,\n border: `1px solid ${connected ? 'var(--state-present)' : 'var(--border)'}`,\n color: connected ? 'var(--state-present)' : 'var(--text-faint)',\n background: connected ? 'rgba(37,163,114,0.08)' : 'transparent',\n transition: 'all 0.2s ease',\n }}>\n {text}\n </span>\n );\n}\n\nfunction getInitials(name) {\n if (!name) return '?';\n const parts = name.trim().split(/\\s+/);\n if (parts.length >= 2) {\n return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();\n }\n return name.slice(0, 2).toUpperCase();\n}\n"],"names":["chordiaLogoSvg","ICON_MAP","Home","FolderClosed","Users","LayoutDashboard","Clock3","Activity","Lightbulb","Bell","Plug","Settings","BarChart3","FileText","Headphones","Shield","Sliders","Workflow","sidebarNavId","id","resolveIcon","icon","SquareDot","Sidebar","menuItems","activeId","onNavigate","controlledCollapsed","onToggleCollapse","header","footer","width","collapsedWidth","expandedParentId","defaultExpandedParentId","onExpandedParentChange","singleExpand","internalCollapsed","setInternalCollapsed","useState","collapsed","toggleCollapse","expandedGroups","setExpandedGroups","initial","item","_a","hasActive","c","parentItemIds","useMemo","autoExpandedParentId","activeParent","internalExpandedParentId","setInternalExpandedParentId","initialParentIds","initialActiveParent","isExpandedParentControlled","currentExpandedParentId","useEffect","setExpandedParent","nextId","toggleGroup","prev","isGroupExpanded","handleGroupPrimaryClick","currentWidth","jsxs","jsx","e","PanelLeft","PanelLeftClose","idx","React","SidebarGroup","SidebarItem","active","Icon","isReactIcon","labelRef","useRef","isLabelTruncated","setIsLabelTruncated","checkTruncation","expanded","onPrimaryClick","onToggleOnly","hasActiveGroupItem","groupLabelRef","isGroupLabelTruncated","setIsGroupLabelTruncated","Tooltip","TooltipTrigger","TooltipContent","ChevronDown","child","AVATAR_COLORS","avatarColor","name","hash","i","NavigationBar","logo","title","userName","userEmail","userInitials","userRole","onSignOut","children","trailing","userMenu","height","style","displayName","initials","getInitials","Fragment","LogOut","NavPill","label","color","onClick","NavDropdown","open","onClose","align","NavDropdownItem","StatusIndicator","connected","text","parts"],"mappings":"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"}