@humain/ui 2.2.3 → 2.2.5
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.
- package/dist/components/templates/AppShell/AppShell.d.ts +1 -1
- package/dist/components/templates/AppSidebar/AppSidebar.constants.d.ts +1 -1
- package/dist/index11.js +4 -4
- package/dist/index11.js.map +1 -1
- package/dist/index110.js +4 -4
- package/dist/index110.js.map +1 -1
- package/dist/index134.js +4 -4
- package/dist/index134.js.map +1 -1
- package/dist/index135.js +2 -2
- package/dist/index135.js.map +1 -1
- package/dist/index151.js +3 -3
- package/dist/index151.js.map +1 -1
- package/dist/index152.js +2 -2
- package/dist/index152.js.map +1 -1
- package/dist/index155.js +1 -1
- package/dist/index155.js.map +1 -1
- package/dist/index173.js +1 -1
- package/dist/index173.js.map +1 -1
- package/dist/index184.js +1 -1
- package/dist/index184.js.map +1 -1
- package/dist/index188.js +4 -4
- package/dist/index188.js.map +1 -1
- package/dist/index201.js +1 -1
- package/dist/index201.js.map +1 -1
- package/dist/index217.js +1 -1
- package/dist/index217.js.map +1 -1
- package/dist/index223.js.map +1 -1
- package/dist/index225.js +3 -3
- package/dist/index225.js.map +1 -1
- package/dist/index228.js +1 -1
- package/dist/index228.js.map +1 -1
- package/dist/index24.js +1 -1
- package/dist/index24.js.map +1 -1
- package/dist/index25.js +4 -4
- package/dist/index25.js.map +1 -1
- package/dist/index39.js +2 -2
- package/dist/index39.js.map +1 -1
- package/dist/index5.js +8 -8
- package/dist/index5.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/wc/AIScrollButton.js +8 -8
- package/dist/wc/AIScrollButton.js.map +1 -1
- package/dist/wc/AISource.js +46 -46
- package/dist/wc/AISource.js.map +1 -1
- package/dist/wc/AIToolCall.js +9 -9
- package/dist/wc/AIToolCall.js.map +1 -1
- package/dist/wc/AppSidebar.constants.js +1 -1
- package/dist/wc/AppSidebar.constants.js.map +1 -1
- package/dist/wc/Badge.js +9 -9
- package/dist/wc/Badge.js.map +1 -1
- package/dist/wc/Checkbox.js +22 -22
- package/dist/wc/Checkbox.js.map +1 -1
- package/dist/wc/Pagination.js +4 -4
- package/dist/wc/Pagination.js.map +1 -1
- package/dist/wc/Switch.js +23 -23
- package/dist/wc/Switch.js.map +1 -1
- package/dist/wc/Tabs.js +110 -110
- package/dist/wc/Tabs.js.map +1 -1
- package/dist/wc/Tooltip.js +28 -28
- package/dist/wc/Tooltip.js.map +1 -1
- package/dist/wc/button.js +33 -33
- package/dist/wc/button.js.map +1 -1
- package/dist/wc/hf-alert.js +10 -10
- package/dist/wc/hf-alert.js.map +1 -1
- package/dist/wc/hf-app-shell.js.map +1 -1
- package/dist/wc/hf-app-sidebar.js +3 -3
- package/dist/wc/hf-app-sidebar.js.map +1 -1
- package/dist/wc/hf-nav-account-menu.js +8 -8
- package/dist/wc/hf-nav-account-menu.js.map +1 -1
- package/dist/wc/hf-steps.js +8 -8
- package/dist/wc/hf-steps.js.map +1 -1
- package/dist/wc/markdown-renderer.js +5 -5
- package/dist/wc/markdown-renderer.js.map +1 -1
- package/dist/wc/selection-group.js +6 -6
- package/dist/wc/selection-group.js.map +1 -1
- package/dist/wc-react/AIScrollButton.js +18 -18
- package/dist/wc-react/AIScrollButton.js.map +1 -1
- package/dist/wc-react/AISource.js +8 -8
- package/dist/wc-react/AISource.js.map +1 -1
- package/dist/wc-react/AIToolCall.js +42 -42
- package/dist/wc-react/AIToolCall.js.map +1 -1
- package/dist/wc-react/AppSidebar.constants.js +1 -1
- package/dist/wc-react/AppSidebar.constants.js.map +1 -1
- package/dist/wc-react/Badge.js +16 -16
- package/dist/wc-react/Badge.js.map +1 -1
- package/dist/wc-react/Checkbox.js +14 -14
- package/dist/wc-react/Checkbox.js.map +1 -1
- package/dist/wc-react/Pagination.js +130 -130
- package/dist/wc-react/Pagination.js.map +1 -1
- package/dist/wc-react/Switch.js +2 -2
- package/dist/wc-react/Switch.js.map +1 -1
- package/dist/wc-react/Tabs.js +38 -38
- package/dist/wc-react/Tabs.js.map +1 -1
- package/dist/wc-react/Tooltip.js +22 -22
- package/dist/wc-react/Tooltip.js.map +1 -1
- package/dist/wc-react/button.js +8 -8
- package/dist/wc-react/button.js.map +1 -1
- package/dist/wc-react/hf-alert.js +28 -28
- package/dist/wc-react/hf-alert.js.map +1 -1
- package/dist/wc-react/hf-app-shell.js.map +1 -1
- package/dist/wc-react/hf-app-sidebar.js +3 -3
- package/dist/wc-react/hf-app-sidebar.js.map +1 -1
- package/dist/wc-react/hf-nav-account-menu.js +7 -7
- package/dist/wc-react/hf-nav-account-menu.js.map +1 -1
- package/dist/wc-react/hf-steps.js +16 -16
- package/dist/wc-react/hf-steps.js.map +1 -1
- package/dist/wc-react/markdown-renderer.js +5 -5
- package/dist/wc-react/markdown-renderer.js.map +1 -1
- package/dist/wc-react/selection-group.js +1 -1
- package/dist/wc-react/selection-group.js.map +1 -1
- package/package.json +1 -1
- package/skills/humain-ui/SKILL.md +1 -1
- package/skills/humain-ui-wc/SKILL.md +1 -1
- package/skills/humain-ui-wc.skill +0 -0
- package/skills/humain-ui.skill +0 -0
- package/src/tokens.css +10 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hf-app-shell.js","names":["__iconNode","#e","Q","re","mt","Ke","me","O","gt","Se","yt","qe"],"sources":["../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/lucide-react@1.27.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/chevrons-left-right.mjs","../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/lucide-react@1.27.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/menu.mjs","../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/react-resizable-panels@4.12.2+005eabf3d8b6ef06/node_modules/react-resizable-panels/dist/react-resizable-panels.js","../../src/components/ui/resizable.tsx","../../src/components/ui/app-shell.tsx","../../src/components/templates/AppShell/AppShellMobileTabBar.tsx","../../src/components/templates/AppShell/AppShellPanel.tsx","../../src/components/templates/AppShell/AppShellResize.ts","../../src/components/templates/AppShell/AppShell.tsx","../../src/wc/hf-app-shell.ts"],"sourcesContent":["/**\n * @license lucide-react v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m9 7-5 5 5 5\", key: \"j5w590\" }],\n [\"path\", { d: \"m15 7 5 5-5 5\", key: \"1bl6da\" }]\n];\nconst ChevronsLeftRight = createLucideIcon(\"chevrons-left-right\", __iconNode);\n\nexport { __iconNode, ChevronsLeftRight as default };\n//# sourceMappingURL=chevrons-left-right.mjs.map\n","/**\n * @license lucide-react v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M4 5h16\", key: \"1tepv9\" }],\n [\"path\", { d: \"M4 12h16\", key: \"1lakjw\" }],\n [\"path\", { d: \"M4 19h16\", key: \"1djgab\" }]\n];\nconst Menu = createLucideIcon(\"menu\", __iconNode);\n\nexport { __iconNode, Menu as default };\n//# sourceMappingURL=menu.mjs.map\n","\"use client\";\nimport { jsx as ae } from \"react/jsx-runtime\";\nimport { useState as Q, useCallback as re, useId as mt, useLayoutEffect as Ke, useEffect as me, useRef as O, createContext as gt, useImperativeHandle as Xe, useMemo as Se, useSyncExternalStore as qe, useContext as yt } from \"react\";\nfunction St(e, t) {\n const n = getComputedStyle(e), o = parseFloat(n.fontSize);\n return t * o;\n}\nfunction vt(e, t) {\n const n = getComputedStyle(e.ownerDocument.documentElement), o = parseFloat(n.fontSize);\n return t * o;\n}\nfunction bt(e) {\n return e / 100 * window.innerHeight;\n}\nfunction zt(e) {\n return e / 100 * window.innerWidth;\n}\nfunction xt(e) {\n switch (typeof e) {\n case \"number\":\n return [e, \"px\"];\n case \"string\": {\n const t = parseFloat(e);\n return e.endsWith(\"%\") ? [t, \"%\"] : e.endsWith(\"px\") ? [t, \"px\"] : e.endsWith(\"rem\") ? [t, \"rem\"] : e.endsWith(\"em\") ? [t, \"em\"] : e.endsWith(\"vh\") ? [t, \"vh\"] : e.endsWith(\"vw\") ? [t, \"vw\"] : [t, \"%\"];\n }\n }\n}\nfunction ie({\n groupSize: e,\n panelElement: t,\n styleProp: n\n}) {\n let o;\n const [i, s] = xt(n);\n switch (s) {\n case \"%\": {\n o = i / 100 * e;\n break;\n }\n case \"px\": {\n o = i;\n break;\n }\n case \"rem\": {\n o = vt(t, i);\n break;\n }\n case \"em\": {\n o = St(t, i);\n break;\n }\n case \"vh\": {\n o = bt(i);\n break;\n }\n case \"vw\": {\n o = zt(i);\n break;\n }\n }\n return o;\n}\nfunction T(e) {\n return parseFloat(e.toFixed(3));\n}\nfunction ne({\n group: e\n}) {\n const { orientation: t, panels: n } = e;\n return n.reduce((o, i) => (o += t === \"horizontal\" ? i.element.offsetWidth : i.element.offsetHeight, o), 0);\n}\nfunction ve(e) {\n const { panels: t } = e, n = ne({ group: e });\n return n === 0 ? t.map((o) => ({\n groupResizeBehavior: o.panelConstraints.groupResizeBehavior,\n collapsedSize: 0,\n collapsible: o.panelConstraints.collapsible === !0,\n defaultSize: void 0,\n disabled: o.panelConstraints.disabled,\n minSize: 0,\n maxSize: 100,\n panelId: o.id\n })) : t.map((o) => {\n const { element: i, panelConstraints: s } = o;\n let u = 0;\n if (s.collapsedSize !== void 0) {\n const c = ie({\n groupSize: n,\n panelElement: i,\n styleProp: s.collapsedSize\n });\n u = T(c / n * 100);\n }\n let a;\n if (s.defaultSize !== void 0) {\n const c = ie({\n groupSize: n,\n panelElement: i,\n styleProp: s.defaultSize\n });\n a = T(c / n * 100);\n }\n let r = 0;\n if (s.minSize !== void 0) {\n const c = ie({\n groupSize: n,\n panelElement: i,\n styleProp: s.minSize\n });\n r = T(c / n * 100);\n }\n let l = 100;\n if (s.maxSize !== void 0) {\n const c = ie({\n groupSize: n,\n panelElement: i,\n styleProp: s.maxSize\n });\n l = T(c / n * 100);\n }\n return {\n groupResizeBehavior: s.groupResizeBehavior,\n collapsedSize: u,\n collapsible: s.collapsible === !0,\n defaultSize: a,\n disabled: s.disabled,\n minSize: r,\n maxSize: l,\n panelId: o.id\n };\n });\n}\nfunction C(e, t = \"Assertion error\") {\n if (!e)\n throw Error(t);\n}\nfunction be(e, t) {\n return Array.from(t).sort(\n e === \"horizontal\" ? Pt : wt\n );\n}\nfunction Pt(e, t) {\n const n = e.element.offsetLeft - t.element.offsetLeft;\n return n !== 0 ? n : e.element.offsetWidth - t.element.offsetWidth;\n}\nfunction wt(e, t) {\n const n = e.element.offsetTop - t.element.offsetTop;\n return n !== 0 ? n : e.element.offsetHeight - t.element.offsetHeight;\n}\nfunction Ye(e) {\n return e !== null && typeof e == \"object\" && \"nodeType\" in e && e.nodeType === Node.ELEMENT_NODE;\n}\nfunction Je(e, t) {\n return {\n x: e.x >= t.left && e.x <= t.right ? 0 : Math.min(\n Math.abs(e.x - t.left),\n Math.abs(e.x - t.right)\n ),\n y: e.y >= t.top && e.y <= t.bottom ? 0 : Math.min(\n Math.abs(e.y - t.top),\n Math.abs(e.y - t.bottom)\n )\n };\n}\nfunction Lt({\n orientation: e,\n rects: t,\n targetRect: n\n}) {\n const o = {\n x: n.x + n.width / 2,\n y: n.y + n.height / 2\n };\n let i, s = Number.MAX_VALUE;\n for (const u of t) {\n const { x: a, y: r } = Je(o, u), l = e === \"horizontal\" ? a : r;\n l < s && (s = l, i = u);\n }\n return C(i, \"No rect found\"), i;\n}\nlet fe;\nfunction Ct() {\n return fe === void 0 && (typeof matchMedia == \"function\" ? fe = !!matchMedia(\"(pointer:coarse)\").matches : fe = !1), fe;\n}\nfunction Ze(e) {\n const { element: t, orientation: n, panels: o, separators: i } = e, s = be(\n n,\n Array.from(t.children).filter(Ye).map((z) => ({ element: z }))\n ).map(({ element: z }) => z), u = [];\n let a = !1, r = !1, l = -1, c = -1, m = 0, p, S = [];\n {\n let z = -1;\n for (const f of s)\n f.hasAttribute(\"data-panel\") && (z++, f.hasAttribute(\"data-disabled\") || (m++, l === -1 && (l = z), c = z));\n }\n if (m > 1) {\n let z = -1;\n for (const f of s)\n if (f.hasAttribute(\"data-panel\")) {\n z++;\n const d = o.find(\n (h) => h.element === f\n );\n if (d) {\n if (p) {\n const h = p.element.getBoundingClientRect(), y = f.getBoundingClientRect();\n let b;\n if (r) {\n const v = n === \"horizontal\" ? new DOMRect(\n h.right,\n h.top,\n 0,\n h.height\n ) : new DOMRect(\n h.left,\n h.bottom,\n h.width,\n 0\n ), g = n === \"horizontal\" ? new DOMRect(y.left, y.top, 0, y.height) : new DOMRect(y.left, y.top, y.width, 0);\n switch (S.length) {\n case 0: {\n b = [\n v,\n g\n ];\n break;\n }\n case 1: {\n const w = S[0], M = Lt({\n orientation: n,\n rects: [h, y],\n targetRect: w.element.getBoundingClientRect()\n });\n b = [\n w,\n M === h ? g : v\n ];\n break;\n }\n default: {\n b = S;\n break;\n }\n }\n } else\n S.length ? b = S : b = [\n n === \"horizontal\" ? new DOMRect(\n h.right,\n y.top,\n y.left - h.right,\n y.height\n ) : new DOMRect(\n y.left,\n h.bottom,\n y.width,\n y.top - h.bottom\n )\n ];\n for (const v of b) {\n let g = \"width\" in v ? v : v.element.getBoundingClientRect();\n const w = Ct() ? e.resizeTargetMinimumSize.coarse : e.resizeTargetMinimumSize.fine;\n if (g.width < w) {\n const L = w - g.width;\n g = new DOMRect(\n g.x - L / 2,\n g.y,\n g.width + L,\n g.height\n );\n }\n if (g.height < w) {\n const L = w - g.height;\n g = new DOMRect(\n g.x,\n g.y - L / 2,\n g.width,\n g.height + L\n );\n }\n const M = z <= l || z > c;\n !a && !M && u.push({\n group: e,\n groupSize: ne({ group: e }),\n panels: [p, d],\n separator: \"width\" in v ? void 0 : v,\n rect: g\n }), a = !1;\n }\n }\n r = !1, p = d, S = [];\n }\n } else if (f.hasAttribute(\"data-separator\")) {\n f.ariaDisabled !== null && (a = !0);\n const d = i.find(\n (h) => h.element === f\n );\n d ? S.push(d) : (p = void 0, S = []);\n } else\n r = !0;\n }\n return u;\n}\nclass Qe {\n #e = {};\n addListener(t, n) {\n const o = this.#e[t];\n return o === void 0 ? this.#e[t] = [n] : o.includes(n) || o.push(n), () => {\n this.removeListener(t, n);\n };\n }\n emit(t, n) {\n const o = this.#e[t];\n if (o !== void 0)\n if (o.length === 1)\n o[0].call(null, n);\n else {\n let i = !1, s = null;\n const u = Array.from(o);\n for (let a = 0; a < u.length; a++) {\n const r = u[a];\n try {\n r.call(null, n);\n } catch (l) {\n s === null && (i = !0, s = l);\n }\n }\n if (i)\n throw s;\n }\n }\n removeAllListeners() {\n this.#e = {};\n }\n removeListener(t, n) {\n const o = this.#e[t];\n if (o !== void 0) {\n const i = o.indexOf(n);\n i >= 0 && o.splice(i, 1);\n }\n }\n}\nlet ee = {\n cursorFlags: 0,\n state: \"inactive\"\n};\nconst ze = new Qe();\nfunction B() {\n return ee;\n}\nfunction Rt(e) {\n return ze.addListener(\"change\", e);\n}\nfunction Mt(e) {\n const t = ee, n = { ...ee };\n n.cursorFlags = e, ee = n, ze.emit(\"change\", {\n prev: t,\n next: n\n });\n}\nfunction te(e) {\n const t = ee;\n ee = e, ze.emit(\"change\", {\n prev: t,\n next: e\n });\n}\nconst Et = (e) => e, ye = () => {\n}, et = 1, tt = 2, nt = 4, ot = 8, Ie = 3, ke = 12;\nlet de;\nfunction De() {\n return de === void 0 && (de = !1, typeof window < \"u\" && (window.navigator.userAgent.includes(\"Chrome\") || window.navigator.userAgent.includes(\"Firefox\")) && (de = !0)), de;\n}\nfunction It({\n cursorFlags: e,\n groups: t,\n state: n\n}) {\n let o = 0, i = 0;\n switch (n) {\n case \"active\":\n case \"hover\":\n t.forEach((s) => {\n if (!s.mutableState.disableCursor)\n switch (s.orientation) {\n case \"horizontal\": {\n o++;\n break;\n }\n case \"vertical\": {\n i++;\n break;\n }\n }\n });\n }\n if (!(o === 0 && i === 0)) {\n switch (n) {\n case \"active\": {\n if (e && De()) {\n const s = (e & et) !== 0, u = (e & tt) !== 0, a = (e & nt) !== 0, r = (e & ot) !== 0;\n if (s)\n return a ? \"se-resize\" : r ? \"ne-resize\" : \"e-resize\";\n if (u)\n return a ? \"sw-resize\" : r ? \"nw-resize\" : \"w-resize\";\n if (a)\n return \"s-resize\";\n if (r)\n return \"n-resize\";\n }\n break;\n }\n }\n return De() ? o > 0 && i > 0 ? \"move\" : o > 0 ? \"ew-resize\" : \"ns-resize\" : o > 0 && i > 0 ? \"grab\" : o > 0 ? \"col-resize\" : \"row-resize\";\n }\n}\nconst Te = /* @__PURE__ */ new WeakMap();\nfunction xe(e) {\n if (e.defaultView === null || e.defaultView === void 0)\n return;\n let { prevStyle: t, styleSheet: n } = Te.get(e) ?? {};\n n === void 0 && (n = new e.defaultView.CSSStyleSheet(), e.adoptedStyleSheets && (Object.isExtensible(e.adoptedStyleSheets) ? e.adoptedStyleSheets.push(n) : e.adoptedStyleSheets = [\n ...e.adoptedStyleSheets,\n n\n ]));\n const o = B();\n switch (o.state) {\n case \"active\":\n case \"hover\": {\n const i = It({\n cursorFlags: o.cursorFlags,\n groups: o.hitRegions.map((u) => u.group),\n state: o.state\n }), s = `*, *:hover {cursor: ${i} !important; }`;\n if (t === s)\n return;\n t = s, i ? n.cssRules.length === 0 ? n.insertRule(s) : n.replaceSync(s) : n.cssRules.length === 1 && n.deleteRule(0);\n break;\n }\n case \"inactive\": {\n t = void 0, n.cssRules.length === 1 && n.deleteRule(0);\n break;\n }\n }\n Te.set(e, {\n prevStyle: t,\n styleSheet: n\n });\n}\nlet F = /* @__PURE__ */ new Map();\nconst it = new Qe();\nfunction kt(e) {\n F = new Map(F), F.delete(e);\n}\nfunction Oe(e, t) {\n for (const [n] of F)\n if (n.id === e)\n return n;\n}\nfunction H(e, t) {\n for (const [n, o] of F)\n if (n.id === e)\n return o;\n if (t)\n throw Error(`Could not find data for Group with id ${e}`);\n}\nfunction X() {\n return F;\n}\nfunction Pe(e, t) {\n return it.addListener(\"groupChange\", (n) => {\n n.group.id === e && t(n);\n });\n}\nfunction j(e, t, n) {\n const o = F.get(e);\n F = new Map(F), F.set(e, t), it.emit(\"groupChange\", {\n group: e,\n isUserInteraction: n?.isUserInteraction === !0,\n prev: o,\n next: t\n });\n}\nfunction rt(e) {\n const t = B();\n let n = !1;\n switch (t.state) {\n case \"active\":\n te({\n cursorFlags: 0,\n state: \"inactive\"\n }), t.hitRegions.length > 0 && (xe(e), n = !0, t.hitRegions.forEach((o) => {\n const i = H(o.group.id, !0);\n j(o.group, i, {\n isUserInteraction: !0\n });\n }));\n }\n return n;\n}\nfunction Ge(e) {\n e.defaultPrevented || rt(e.currentTarget);\n}\nfunction Dt(e, t, n) {\n let o, i = {\n x: 1 / 0,\n y: 1 / 0\n };\n for (const s of t) {\n const u = Je(n, s.rect);\n switch (e) {\n case \"horizontal\": {\n u.x <= i.x && (o = s, i = u);\n break;\n }\n case \"vertical\": {\n u.y <= i.y && (o = s, i = u);\n break;\n }\n }\n }\n return o ? {\n distance: i,\n hitRegion: o\n } : void 0;\n}\nfunction Tt(e) {\n return e !== null && typeof e == \"object\" && \"nodeType\" in e && e.nodeType === Node.DOCUMENT_FRAGMENT_NODE;\n}\nfunction Ot(e, t) {\n if (e === t) throw new Error(\"Cannot compare node with itself\");\n const n = {\n a: Ne(e),\n b: Ne(t)\n };\n let o;\n for (; n.a.at(-1) === n.b.at(-1); )\n o = n.a.pop(), n.b.pop();\n C(\n o,\n \"Stacking order can only be calculated for elements with a common ancestor\"\n );\n const i = {\n a: Fe(Ae(n.a)),\n b: Fe(Ae(n.b))\n };\n if (i.a === i.b) {\n const s = o.childNodes, u = {\n a: n.a.at(-1),\n b: n.b.at(-1)\n };\n let a = s.length;\n for (; a--; ) {\n const r = s[a];\n if (r === u.a) return 1;\n if (r === u.b) return -1;\n }\n }\n return Math.sign(i.a - i.b);\n}\nconst Gt = /\\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\\b/;\nfunction At(e) {\n const t = getComputedStyle(st(e) ?? e).display;\n return t === \"flex\" || t === \"inline-flex\";\n}\nfunction Ft(e) {\n const t = getComputedStyle(e);\n return !!(t.position === \"fixed\" || t.zIndex !== \"auto\" && (t.position !== \"static\" || At(e)) || +t.opacity < 1 || \"transform\" in t && t.transform !== \"none\" || \"webkitTransform\" in t && t.webkitTransform !== \"none\" || \"mixBlendMode\" in t && t.mixBlendMode !== \"normal\" || \"filter\" in t && t.filter !== \"none\" || \"webkitFilter\" in t && t.webkitFilter !== \"none\" || \"isolation\" in t && t.isolation === \"isolate\" || Gt.test(t.willChange) || t.webkitOverflowScrolling === \"touch\");\n}\nfunction Ae(e) {\n let t = e.length;\n for (; t--; ) {\n const n = e[t];\n if (C(n, \"Missing node\"), Ft(n)) return n;\n }\n return null;\n}\nfunction Fe(e) {\n return e && Number(getComputedStyle(e).zIndex) || 0;\n}\nfunction Ne(e) {\n const t = [];\n for (; e; )\n t.push(e), e = st(e);\n return t;\n}\nfunction st(e) {\n const { parentNode: t } = e;\n return Tt(t) ? t.host : t;\n}\nfunction Nt(e, t) {\n return e.x < t.x + t.width && e.x + e.width > t.x && e.y < t.y + t.height && e.y + e.height > t.y;\n}\nfunction _t({\n groupElement: e,\n hitRegion: t,\n pointerEventTarget: n\n}) {\n if (!Ye(n) || n.contains(e) || e.contains(n))\n return !0;\n if (Ot(n, e) > 0) {\n let o = n;\n for (; o; ) {\n if (o.contains(e))\n return !0;\n if (Nt(o.getBoundingClientRect(), t))\n return !1;\n o = o.parentElement;\n }\n }\n return !0;\n}\nfunction we(e, t) {\n const n = [];\n return t.forEach((o, i) => {\n if (i.disabled)\n return;\n const s = Ze(i), u = Dt(i.orientation, s, {\n x: e.clientX,\n y: e.clientY\n });\n u && u.distance.x <= 0 && u.distance.y <= 0 && _t({\n groupElement: i.element,\n hitRegion: u.hitRegion.rect,\n pointerEventTarget: e.target\n }) && n.push(u.hitRegion);\n }), n;\n}\nfunction $t(e, t) {\n if (e.length !== t.length)\n return !1;\n for (let n = 0; n < e.length; n++)\n if (e[n] != t[n])\n return !1;\n return !0;\n}\nfunction k(e, t, n = 0) {\n return Math.abs(T(e) - T(t)) <= n;\n}\nfunction A(e, t) {\n return k(e, t) ? 0 : e > t ? 1 : -1;\n}\nfunction Z({\n overrideDisabledPanels: e,\n panelConstraints: t,\n prevSize: n,\n size: o\n}) {\n const {\n collapsedSize: i = 0,\n collapsible: s,\n disabled: u,\n maxSize: a = 100,\n minSize: r = 0\n } = t;\n if (u && !e)\n return n;\n if (A(o, r) < 0)\n if (s) {\n const l = (i + r) / 2;\n A(o, l) < 0 ? o = i : o = r;\n } else\n o = r;\n return o = Math.min(a, o), o = T(o), o;\n}\nfunction le({\n delta: e,\n initialLayout: t,\n panelConstraints: n,\n pivotIndices: o,\n prevLayout: i,\n trigger: s\n}) {\n if (k(e, 0))\n return t;\n const u = s === \"imperative-api\", a = Object.values(t), r = Object.values(i), l = [...a], [c, m] = o;\n C(c != null, \"Invalid first pivot index\"), C(m != null, \"Invalid second pivot index\");\n let p = 0;\n switch (s) {\n case \"keyboard\": {\n {\n const f = e < 0 ? m : c, d = n[f];\n C(\n d,\n `Panel constraints not found for index ${f}`\n );\n const {\n collapsedSize: h = 0,\n collapsible: y,\n minSize: b = 0\n } = d;\n if (y) {\n const v = a[f];\n if (C(\n v != null,\n `Previous layout not found for panel index ${f}`\n ), k(v, h)) {\n const g = b - v;\n A(g, Math.abs(e)) > 0 && (e = e < 0 ? 0 - g : g);\n }\n }\n }\n {\n const f = e < 0 ? c : m, d = n[f];\n C(\n d,\n `No panel constraints found for index ${f}`\n );\n const {\n collapsedSize: h = 0,\n collapsible: y,\n minSize: b = 0\n } = d;\n if (y) {\n const v = a[f];\n if (C(\n v != null,\n `Previous layout not found for panel index ${f}`\n ), k(v, b)) {\n const g = v - h;\n A(g, Math.abs(e)) > 0 && (e = e < 0 ? 0 - g : g);\n }\n }\n }\n break;\n }\n default: {\n const f = e < 0 ? m : c, d = n[f];\n C(\n d,\n `Panel constraints not found for index ${f}`\n );\n const h = a[f], { collapsible: y, collapsedSize: b, minSize: v } = d;\n if (y && A(h, v) < 0)\n if (e > 0) {\n const g = v - b, w = g / 2, M = h + e;\n A(M, v) < 0 && (e = A(e, w) <= 0 ? 0 : g);\n } else {\n const g = v - b, w = 100 - g / 2, M = h - e;\n A(M, v) < 0 && (e = A(100 + e, w) > 0 ? 0 : -g);\n }\n break;\n }\n }\n {\n const f = e < 0 ? 1 : -1;\n let d = e < 0 ? m : c, h = 0;\n for (; ; ) {\n const b = a[d];\n C(\n b != null,\n `Previous layout not found for panel index ${d}`\n );\n const g = Z({\n overrideDisabledPanels: u,\n panelConstraints: n[d],\n prevSize: b,\n size: 100\n }) - b;\n if (h += g, d += f, d < 0 || d >= n.length)\n break;\n }\n const y = Math.min(Math.abs(e), Math.abs(h));\n e = e < 0 ? 0 - y : y;\n }\n {\n let d = e < 0 ? c : m;\n for (; d >= 0 && d < n.length; ) {\n const h = Math.abs(e) - Math.abs(p), y = a[d];\n C(\n y != null,\n `Previous layout not found for panel index ${d}`\n );\n const b = y - h, v = Z({\n overrideDisabledPanels: u,\n panelConstraints: n[d],\n prevSize: y,\n size: b\n });\n if (!k(y, v) && (p += y - v, l[d] = v, p.toFixed(3).localeCompare(Math.abs(e).toFixed(3), void 0, {\n numeric: !0\n }) >= 0))\n break;\n e < 0 ? d-- : d++;\n }\n }\n if ($t(r, l))\n return i;\n {\n const f = e < 0 ? m : c, d = a[f];\n C(\n d != null,\n `Previous layout not found for panel index ${f}`\n );\n const h = d + p, y = Z({\n overrideDisabledPanels: u,\n panelConstraints: n[f],\n prevSize: d,\n size: h\n });\n if (l[f] = y, !k(y, h)) {\n let b = h - y, g = e < 0 ? m : c;\n for (; g >= 0 && g < n.length; ) {\n const w = l[g];\n C(\n w != null,\n `Previous layout not found for panel index ${g}`\n );\n const M = w + b, L = Z({\n overrideDisabledPanels: u,\n panelConstraints: n[g],\n prevSize: w,\n size: M\n });\n if (k(w, L) || (b -= L - w, l[g] = L), k(b, 0))\n break;\n e > 0 ? g-- : g++;\n }\n }\n }\n const S = Object.values(l).reduce(\n (f, d) => d + f,\n 0\n );\n if (!k(S, 100, 0.1))\n return i;\n const z = Object.keys(i);\n return l.reduce((f, d, h) => (f[z[h]] = d, f), {});\n}\nfunction W(e, t) {\n if (Object.keys(e).length !== Object.keys(t).length)\n return !1;\n for (const n in e)\n if (t[n] === void 0 || A(e[n], t[n]) !== 0)\n return !1;\n return !0;\n}\nfunction K({\n layout: e,\n panelConstraints: t\n}) {\n const n = Object.values(e), o = [...n], i = o.reduce(\n (a, r) => a + r,\n 0\n );\n if (o.length !== t.length)\n throw Error(\n `Invalid ${t.length} panel layout: ${o.map((a) => `${a}%`).join(\", \")}`\n );\n if (!k(i, 100) && o.length > 0)\n for (let a = 0; a < t.length; a++) {\n const r = o[a];\n C(r != null, `No layout data found for index ${a}`);\n const l = 100 / i * r;\n o[a] = l;\n }\n let s = 0;\n for (let a = 0; a < t.length; a++) {\n const r = n[a];\n C(r != null, `No layout data found for index ${a}`);\n const l = o[a];\n C(l != null, `No layout data found for index ${a}`);\n const c = Z({\n overrideDisabledPanels: !0,\n panelConstraints: t[a],\n prevSize: r,\n size: l\n });\n l != c && (s += l - c, o[a] = c);\n }\n if (!k(s, 0))\n for (let a = 0; a < t.length; a++) {\n const r = o[a];\n C(r != null, `No layout data found for index ${a}`);\n const l = r + s, c = Z({\n overrideDisabledPanels: !0,\n panelConstraints: t[a],\n prevSize: r,\n size: l\n });\n if (r !== c && (s -= c - r, o[a] = c, k(s, 0)))\n break;\n }\n const u = Object.keys(e);\n return o.reduce((a, r, l) => (a[u[l]] = r, a), {});\n}\nfunction at({\n groupId: e,\n panelId: t\n}) {\n const n = () => {\n const r = X();\n for (const [\n l,\n {\n defaultLayoutDeferred: c,\n derivedPanelConstraints: m,\n layout: p,\n groupSize: S,\n separatorToPanels: z\n }\n ] of r)\n if (l.id === e)\n return {\n defaultLayoutDeferred: c,\n derivedPanelConstraints: m,\n group: l,\n groupSize: S,\n layout: p,\n separatorToPanels: z\n };\n throw Error(`Group ${e} not found`);\n }, o = () => {\n const r = n().derivedPanelConstraints.find(\n (l) => l.panelId === t\n );\n if (r !== void 0)\n return r;\n throw Error(`Panel constraints not found for Panel ${t}`);\n }, i = () => {\n const r = n().group.panels.find((l) => l.id === t);\n if (r !== void 0)\n return r;\n throw Error(`Layout not found for Panel ${t}`);\n }, s = () => {\n const r = n().layout[t];\n if (r !== void 0)\n return r;\n throw Error(`Layout not found for Panel ${t}`);\n }, u = ({\n nextSize: r,\n panels: l,\n prevLayout: c,\n derivedPanelConstraints: m\n }) => {\n const p = s(), S = l.findIndex((h) => h.id === t), z = S === 0, f = S === l.length - 1;\n if (f && r < p && (z || l.slice(0, S).every((h, y) => {\n const b = m[y];\n return b?.collapsible && k(b.collapsedSize, c[b.panelId]);\n }))) {\n const h = l.slice(0, S).reduce((y, b) => y + c[b.id], 0);\n return {\n ...c,\n [t]: T(100 - h)\n };\n }\n return le({\n delta: f ? p - r : r - p,\n initialLayout: c,\n panelConstraints: m,\n pivotIndices: f ? [S - 1, S] : [S, S + 1],\n prevLayout: c,\n trigger: \"imperative-api\"\n });\n }, a = (r) => {\n const l = s();\n if (r === l)\n return;\n const {\n defaultLayoutDeferred: c,\n derivedPanelConstraints: m,\n group: p,\n groupSize: S,\n layout: z,\n separatorToPanels: f\n } = n(), d = u({\n nextSize: r,\n panels: p.panels,\n prevLayout: z,\n derivedPanelConstraints: m\n }), h = K({\n layout: d,\n panelConstraints: m\n });\n W(z, h) || j(p, {\n defaultLayoutDeferred: c,\n derivedPanelConstraints: m,\n groupSize: S,\n layout: h,\n separatorToPanels: f\n });\n };\n return {\n collapse: () => {\n const { collapsible: r, collapsedSize: l } = o(), { mutableValues: c } = i(), m = s();\n r && m !== l && (c.expandToSize = m, a(l));\n },\n expand: () => {\n const { collapsible: r, collapsedSize: l, minSize: c } = o(), { mutableValues: m } = i(), p = s();\n if (r && p === l) {\n let S = m.expandToSize ?? c;\n S === 0 && (S = 1), a(S);\n }\n },\n getSize: () => {\n const { group: r } = n(), l = s(), { element: c } = i(), m = r.orientation === \"horizontal\" ? c.offsetWidth : c.offsetHeight;\n return {\n asPercentage: l,\n inPixels: m\n };\n },\n isCollapsed: () => {\n const { collapsible: r, collapsedSize: l } = o(), c = s();\n return r && k(l, c);\n },\n resize: (r) => {\n const { group: l } = n(), { element: c } = i(), m = ne({ group: l }), p = ie({\n groupSize: m,\n panelElement: c,\n styleProp: r\n }), S = T(p / m * 100);\n a(S);\n }\n };\n}\nfunction _e(e) {\n if (e.defaultPrevented)\n return;\n const t = X();\n we(e, t).forEach((o) => {\n if (o.separator && !o.separator.disableDoubleClick) {\n const i = o.panels.find(\n (s) => s.panelConstraints.defaultSize !== void 0\n );\n if (i) {\n const s = i.panelConstraints.defaultSize, u = at({\n groupId: o.group.id,\n panelId: i.id\n });\n u && s !== void 0 && (u.resize(s), e.preventDefault());\n }\n }\n });\n}\nfunction pe(e) {\n const t = X();\n for (const [n] of t)\n if (n.separators.some(\n (o) => o.element === e\n ))\n return n;\n throw Error(\"Could not find parent Group for separator element\");\n}\nfunction lt({\n groupId: e\n}) {\n const t = () => {\n const n = X();\n for (const [o, i] of n)\n if (o.id === e)\n return { group: o, ...i };\n throw Error(`Could not find Group with id \"${e}\"`);\n };\n return {\n getLayout() {\n const { defaultLayoutDeferred: n, layout: o } = t();\n return n ? {} : o;\n },\n setLayout(n) {\n const {\n defaultLayoutDeferred: o,\n derivedPanelConstraints: i,\n group: s,\n groupSize: u,\n layout: a,\n separatorToPanels: r\n } = t(), l = K({\n layout: n,\n panelConstraints: i\n });\n return o ? a : (W(a, l) || j(s, {\n defaultLayoutDeferred: o,\n derivedPanelConstraints: i,\n groupSize: u,\n layout: l,\n separatorToPanels: r\n }), l);\n }\n };\n}\nfunction U(e, t) {\n const n = pe(e), o = H(n.id, !0), i = n.separators.find(\n (m) => m.element === e\n );\n C(i, \"Matching separator not found\");\n const s = o.separatorToPanels.get(i);\n C(s, \"Matching panels not found\");\n const u = s.map((m) => n.panels.indexOf(m)), r = lt({ groupId: n.id }).getLayout(), l = le({\n delta: t,\n initialLayout: r,\n panelConstraints: o.derivedPanelConstraints,\n pivotIndices: u,\n prevLayout: r,\n trigger: \"keyboard\"\n }), c = K({\n layout: l,\n panelConstraints: o.derivedPanelConstraints\n });\n W(r, c) || j(\n n,\n {\n defaultLayoutDeferred: o.defaultLayoutDeferred,\n derivedPanelConstraints: o.derivedPanelConstraints,\n groupSize: o.groupSize,\n layout: c,\n separatorToPanels: o.separatorToPanels\n },\n // Keyboard resizes (arrow keys, Home/End, Enter collapse/expand) originate\n // from a real DOM event on the separator, so they are user interactions\n // just like pointer drags. This function is only reached from\n // onDocumentKeyDown. See #716.\n { isUserInteraction: !0 }\n );\n}\nfunction $e(e) {\n if (e.defaultPrevented)\n return;\n const t = e.currentTarget, n = pe(t);\n if (!n.disabled)\n switch (e.key) {\n case \"ArrowDown\": {\n e.preventDefault(), n.orientation === \"vertical\" && U(t, 5);\n break;\n }\n case \"ArrowLeft\": {\n e.preventDefault(), n.orientation === \"horizontal\" && U(t, -5);\n break;\n }\n case \"ArrowRight\": {\n e.preventDefault(), n.orientation === \"horizontal\" && U(t, 5);\n break;\n }\n case \"ArrowUp\": {\n e.preventDefault(), n.orientation === \"vertical\" && U(t, -5);\n break;\n }\n case \"End\": {\n e.preventDefault(), U(t, 100);\n break;\n }\n case \"Enter\": {\n e.preventDefault();\n const o = pe(t), i = H(o.id, !0), { derivedPanelConstraints: s, layout: u, separatorToPanels: a } = i, r = o.separators.find(\n (p) => p.element === t\n );\n C(r, \"Matching separator not found\");\n const l = a.get(r);\n C(l, \"Matching panels not found\");\n const c = l[0], m = s.find(\n (p) => p.panelId === c.id\n );\n if (C(m, \"Panel metadata not found\"), m.collapsible) {\n const p = u[c.id], S = m.collapsedSize === p ? o.mutableState.expandedPanelSizes[c.id] ?? m.minSize : m.collapsedSize;\n U(t, S - p);\n }\n break;\n }\n case \"F6\": {\n e.preventDefault();\n const i = pe(t).separators.map(\n (r) => r.element\n ), s = Array.from(i).findIndex(\n (r) => r === e.currentTarget\n );\n C(s !== null, \"Index not found\");\n const u = e.shiftKey ? s > 0 ? s - 1 : i.length - 1 : s + 1 < i.length ? s + 1 : 0;\n i[u].focus({\n preventScroll: !0\n });\n break;\n }\n case \"Home\": {\n e.preventDefault(), U(t, -100);\n break;\n }\n }\n}\nfunction je(e) {\n if (e.defaultPrevented)\n return;\n if (e.pointerType === \"mouse\" && e.button > 0)\n return;\n const t = X(), n = we(e, t), o = /* @__PURE__ */ new Map();\n let i = !1;\n n.forEach((s) => {\n s.separator && (i || (i = !0, s.separator.element.focus({\n // @ts-expect-error https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#browser_compatibility\n focusVisible: !1,\n preventScroll: !0\n })));\n const u = t.get(s.group);\n u && o.set(s.group, u.layout);\n }), te({\n cursorFlags: 0,\n hitRegions: n,\n initialLayoutMap: o,\n pointerDownAtPoint: { x: e.clientX, y: e.clientY },\n state: \"active\"\n }), n.length && e.preventDefault();\n}\nfunction ut({\n document: e,\n event: t,\n hitRegions: n,\n initialLayoutMap: o,\n mountedGroups: i,\n pointerDownAtPoint: s,\n prevCursorFlags: u\n}) {\n let a = 0;\n n.forEach((l) => {\n const { group: c, groupSize: m } = l, { orientation: p, panels: S } = c, { disableCursor: z } = c.mutableState;\n let f = 0;\n s ? p === \"horizontal\" ? f = (t.clientX - s.x) / m * 100 : f = (t.clientY - s.y) / m * 100 : p === \"horizontal\" ? f = t.clientX < 0 ? -100 : 100 : f = t.clientY < 0 ? -100 : 100;\n const d = o.get(c), h = i.get(c);\n if (!d || !h)\n return;\n const {\n defaultLayoutDeferred: y,\n derivedPanelConstraints: b,\n groupSize: v,\n layout: g,\n separatorToPanels: w\n } = h;\n if (b && g && w) {\n const M = le({\n delta: f,\n initialLayout: d,\n panelConstraints: b,\n pivotIndices: l.panels.map((L) => S.indexOf(L)),\n prevLayout: g,\n trigger: \"mouse-or-touch\"\n });\n if (W(M, g)) {\n if (f !== 0 && !z)\n switch (p) {\n case \"horizontal\": {\n a |= f < 0 ? et : tt;\n break;\n }\n case \"vertical\": {\n a |= f < 0 ? nt : ot;\n break;\n }\n }\n } else\n j(l.group, {\n defaultLayoutDeferred: y,\n derivedPanelConstraints: b,\n groupSize: v,\n layout: M,\n separatorToPanels: w\n });\n }\n });\n let r = 0;\n t.movementX === 0 ? r |= u & Ie : r |= a & Ie, t.movementY === 0 ? r |= u & ke : r |= a & ke, Mt(r), xe(e);\n}\nfunction He(e) {\n const t = X(), n = B();\n switch (n.state) {\n case \"active\":\n ut({\n document: e.currentTarget,\n event: e,\n hitRegions: n.hitRegions,\n initialLayoutMap: n.initialLayoutMap,\n mountedGroups: t,\n prevCursorFlags: n.cursorFlags\n });\n }\n}\nfunction Ve(e) {\n if (e.defaultPrevented)\n return;\n const t = B(), n = X();\n switch (t.state) {\n case \"active\": {\n if (\n // Skip this check for \"pointerleave\" events, else Firefox triggers a false positive (see #514)\n e.buttons === 0\n ) {\n te({\n cursorFlags: 0,\n state: \"inactive\"\n }), t.hitRegions.forEach((o) => {\n const i = H(o.group.id, !0);\n j(o.group, i, {\n isUserInteraction: !0\n });\n });\n return;\n }\n for (const o of t.hitRegions)\n if (o.separator) {\n const { element: i } = o.separator;\n i.hasPointerCapture?.(e.pointerId) || i.setPointerCapture?.(e.pointerId);\n }\n ut({\n document: e.currentTarget,\n event: e,\n hitRegions: t.hitRegions,\n initialLayoutMap: t.initialLayoutMap,\n mountedGroups: n,\n pointerDownAtPoint: t.pointerDownAtPoint,\n prevCursorFlags: t.cursorFlags\n });\n break;\n }\n default: {\n const o = we(e, n);\n o.length === 0 ? t.state !== \"inactive\" && te({\n cursorFlags: 0,\n state: \"inactive\"\n }) : te({\n cursorFlags: 0,\n hitRegions: o,\n state: \"hover\"\n }), xe(e.currentTarget);\n break;\n }\n }\n}\nfunction Ue(e) {\n if (e.relatedTarget instanceof HTMLIFrameElement)\n switch (B().state) {\n case \"hover\":\n te({\n cursorFlags: 0,\n state: \"inactive\"\n });\n }\n}\nfunction Be(e) {\n if (e.defaultPrevented)\n return;\n if (e.pointerType === \"mouse\" && e.button > 0)\n return;\n rt(e.currentTarget) && e.preventDefault();\n}\nfunction We(e) {\n let t = 0, n = 0;\n const o = {};\n for (const s of e)\n if (s.defaultSize !== void 0) {\n t++;\n const u = T(s.defaultSize);\n n += u, o[s.panelId] = u;\n } else\n o[s.panelId] = void 0;\n const i = e.length - t;\n if (i !== 0) {\n const s = T((100 - n) / i);\n for (const u of e)\n u.defaultSize === void 0 && (o[u.panelId] = s);\n }\n return o;\n}\nfunction jt(e, t, n) {\n if (!n[0])\n return;\n const i = e.panels.find((l) => l.element === t);\n if (!i || !i.onResize)\n return;\n const s = ne({ group: e }), u = e.orientation === \"horizontal\" ? i.element.offsetWidth : i.element.offsetHeight, a = i.mutableValues.prevSize, r = {\n asPercentage: T(u / s * 100),\n inPixels: u\n };\n i.mutableValues.prevSize = r, i.onResize(r, i.id, a);\n}\nfunction Ht(e, t) {\n if (Object.keys(e).length !== Object.keys(t).length)\n return !1;\n for (const o in e)\n if (e[o] !== t[o])\n return !1;\n return !0;\n}\nfunction Vt({\n group: e,\n nextGroupSize: t,\n prevGroupSize: n,\n prevLayout: o\n}) {\n if (n <= 0 || t <= 0 || n === t)\n return o;\n let i = 0, s = 0, u = !1;\n const a = /* @__PURE__ */ new Map(), r = [];\n for (const m of e.panels) {\n const p = o[m.id] ?? 0;\n switch (m.panelConstraints.groupResizeBehavior) {\n case \"preserve-pixel-size\": {\n u = !0;\n const S = p / 100 * n, z = T(\n S / t * 100\n );\n a.set(m.id, z), i += z;\n break;\n }\n case \"preserve-relative-size\":\n default: {\n r.push(m.id), s += p;\n break;\n }\n }\n }\n if (!u || r.length === 0)\n return o;\n const l = 100 - i, c = { ...o };\n if (a.forEach((m, p) => {\n c[p] = m;\n }), s > 0)\n for (const m of r) {\n const p = o[m] ?? 0;\n c[m] = T(\n p / s * l\n );\n }\n else {\n const m = T(\n l / r.length\n );\n for (const p of r)\n c[p] = m;\n }\n return c;\n}\nfunction Ut(e, t) {\n const n = e.map((i) => i.id), o = Object.keys(t);\n if (n.length !== o.length)\n return !1;\n for (const i of n)\n if (!o.includes(i))\n return !1;\n return !0;\n}\nconst J = /* @__PURE__ */ new Map();\nfunction Bt(e) {\n let t = !0;\n C(\n e.element.ownerDocument.defaultView,\n \"Cannot register an unmounted Group\"\n );\n const n = e.element.ownerDocument.defaultView.ResizeObserver, o = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), s = new n((f) => {\n for (const d of f) {\n const { borderBoxSize: h, target: y } = d;\n if (y === e.element) {\n if (t) {\n const b = ne({ group: e });\n if (b === 0)\n return;\n const v = H(e.id);\n if (!v)\n return;\n const g = ve(e), w = v.defaultLayoutDeferred ? We(g) : v.layout, M = Vt({\n group: e,\n nextGroupSize: b,\n prevGroupSize: v.groupSize,\n prevLayout: w\n }), L = K({\n layout: M,\n panelConstraints: g\n });\n if (!v.defaultLayoutDeferred && W(v.layout, L) && Ht(\n v.derivedPanelConstraints,\n g\n ) && v.groupSize === b)\n return;\n j(e, {\n defaultLayoutDeferred: !1,\n derivedPanelConstraints: g,\n groupSize: b,\n layout: L,\n separatorToPanels: v.separatorToPanels\n });\n }\n } else\n jt(e, y, h);\n }\n });\n s.observe(e.element), e.panels.forEach((f) => {\n C(\n !o.has(f.id),\n `Panel ids must be unique; id \"${f.id}\" was used more than once`\n ), o.add(f.id), f.onResize && s.observe(f.element);\n });\n const u = ne({ group: e }), a = ve(e), r = e.panels.map(({ id: f }) => f).join(\",\");\n let l = e.mutableState.defaultLayout;\n l && (Ut(e.panels, l) || (l = void 0));\n const c = e.mutableState.layouts[r] ?? l ?? We(a), m = K({\n layout: c,\n panelConstraints: a\n }), p = e.element.ownerDocument;\n J.set(\n p,\n (J.get(p) ?? 0) + 1\n );\n const S = /* @__PURE__ */ new Map();\n return Ze(e).forEach((f) => {\n f.separator && S.set(f.separator, f.panels);\n }), j(e, {\n defaultLayoutDeferred: u === 0,\n derivedPanelConstraints: a,\n groupSize: u,\n layout: m,\n separatorToPanels: S\n }), e.separators.forEach((f) => {\n C(\n !i.has(f.id),\n `Separator ids must be unique; id \"${f.id}\" was used more than once`\n ), i.add(f.id), f.element.addEventListener(\"keydown\", $e);\n }), J.get(p) === 1 && (p.addEventListener(\"contextmenu\", Ge, !0), p.addEventListener(\"dblclick\", _e, !0), p.addEventListener(\"pointerdown\", je, !0), p.addEventListener(\"pointerleave\", He), p.addEventListener(\"pointermove\", Ve), p.addEventListener(\"pointerout\", Ue), p.addEventListener(\"pointerup\", Be, !0)), function() {\n t = !1, J.set(\n p,\n Math.max(0, (J.get(p) ?? 0) - 1)\n ), kt(e), e.separators.forEach((d) => {\n d.element.removeEventListener(\"keydown\", $e);\n }), J.get(p) || (p.removeEventListener(\n \"contextmenu\",\n Ge,\n !0\n ), p.removeEventListener(\n \"dblclick\",\n _e,\n !0\n ), p.removeEventListener(\n \"pointerdown\",\n je,\n !0\n ), p.removeEventListener(\"pointerleave\", He), p.removeEventListener(\"pointermove\", Ve), p.removeEventListener(\"pointerout\", Ue), p.removeEventListener(\"pointerup\", Be, !0)), s.disconnect();\n };\n}\nfunction Wt() {\n const [e, t] = Q({}), n = re(() => t({}), []);\n return [e, n];\n}\nfunction Le(e) {\n const t = mt();\n return `${e ?? t}`;\n}\nconst q = typeof window < \"u\" ? Ke : me;\nfunction se(e) {\n const t = O(e);\n return q(() => {\n t.current = e;\n }, [e]), re(\n (...n) => t.current?.(...n),\n [t]\n );\n}\nfunction Ce(...e) {\n return se((t) => {\n e.forEach((n) => {\n if (n)\n switch (typeof n) {\n case \"function\": {\n n(t);\n break;\n }\n case \"object\": {\n n.current = t;\n break;\n }\n }\n });\n });\n}\nfunction Re(e) {\n const t = O({ ...e });\n return q(() => {\n for (const n in e)\n t.current[n] = e[n];\n }, [e]), t.current;\n}\nconst ct = gt(null);\nfunction Kt(e, t) {\n const n = O({\n getLayout: () => ({}),\n setLayout: Et\n });\n Xe(t, () => n.current, []), q(() => {\n Object.assign(\n n.current,\n lt({ groupId: e })\n );\n });\n}\nfunction Xt({\n children: e,\n className: t,\n defaultLayout: n,\n disableCursor: o,\n disabled: i,\n elementRef: s,\n groupRef: u,\n id: a,\n onLayoutChange: r,\n onLayoutChanged: l,\n orientation: c = \"horizontal\",\n resizeTargetMinimumSize: m = {\n coarse: 20,\n fine: 10\n },\n style: p,\n ...S\n}) {\n const z = O({\n onLayoutChange: {},\n onLayoutChanged: {}\n }), f = se((x) => {\n W(z.current.onLayoutChange, x) || (z.current.onLayoutChange = x, r?.(x));\n }), d = se(\n (x, P) => {\n W(z.current.onLayoutChanged, x) || (z.current.onLayoutChanged = x, l?.(x, { isUserInteraction: P }));\n }\n ), h = Le(a), y = O(null), [b, v] = Wt(), g = O({\n lastExpandedPanelSizes: {},\n layouts: {},\n panels: [],\n resizeTargetMinimumSize: m,\n separators: []\n }), w = Ce(y, s);\n Kt(h, u);\n const M = se(\n (x, P) => {\n const I = B(), R = Oe(x), E = H(x);\n if (E) {\n let D = !1;\n switch (I.state) {\n case \"active\": {\n D = I.hitRegions.some(\n (V) => V.group === R\n );\n break;\n }\n }\n return {\n flexGrow: E.layout[P] ?? 1,\n pointerEvents: D ? \"none\" : void 0\n };\n }\n if (n?.[P])\n return {\n flexGrow: n?.[P]\n };\n }\n ), L = Re({\n defaultLayout: n,\n disableCursor: o\n }), G = Se(\n () => ({\n get disableCursor() {\n return !!L.disableCursor;\n },\n getPanelStyles: M,\n id: h,\n orientation: c,\n registerPanel: (x) => {\n const P = g.current;\n return P.panels = be(c, [\n ...P.panels,\n x\n ]), v(), () => {\n P.panels = P.panels.filter(\n (I) => I !== x\n ), v();\n };\n },\n registerSeparator: (x) => {\n const P = g.current;\n return P.separators = be(c, [\n ...P.separators,\n x\n ]), v(), () => {\n P.separators = P.separators.filter(\n (I) => I !== x\n ), v();\n };\n },\n updatePanelProps: (x, { disabled: P }) => {\n const R = g.current.panels.find(\n (V) => V.id === x\n );\n R && (R.panelConstraints.disabled = P);\n const E = Oe(h), D = H(h);\n E && D && j(E, {\n ...D,\n derivedPanelConstraints: ve(E)\n });\n },\n updateSeparatorProps: (x, {\n disabled: P,\n disableDoubleClick: I\n }) => {\n const E = g.current.separators.find(\n (D) => D.id === x\n );\n E && (E.disabled = P, E.disableDoubleClick = I);\n }\n }),\n [M, h, v, c, L]\n ), N = O(null);\n return q(() => {\n const x = y.current;\n if (x === null)\n return;\n const P = g.current;\n let I;\n if (L.defaultLayout !== void 0 && Object.keys(L.defaultLayout).length === P.panels.length) {\n I = {};\n for (const _ of P.panels) {\n const Y = L.defaultLayout[_.id];\n Y !== void 0 && (I[_.id] = Y);\n }\n }\n const R = {\n disabled: !!i,\n element: x,\n id: h,\n mutableState: {\n defaultLayout: I,\n disableCursor: !!L.disableCursor,\n expandedPanelSizes: g.current.lastExpandedPanelSizes,\n layouts: g.current.layouts\n },\n orientation: c,\n panels: P.panels,\n resizeTargetMinimumSize: P.resizeTargetMinimumSize,\n separators: P.separators\n };\n N.current = R;\n const E = Bt(R), { defaultLayoutDeferred: D, derivedPanelConstraints: V, layout: ue } = H(R.id, !0);\n !D && V.length > 0 && (f(ue), d(ue, !1));\n const oe = Pe(h, (_) => {\n const { defaultLayoutDeferred: Y, derivedPanelConstraints: Ee, layout: ce } = _.next;\n if (Y || Ee.length === 0)\n return;\n const ft = R.panels.map(({ id: $ }) => $).join(\",\");\n R.mutableState.layouts[ft] = ce, Ee.forEach(($) => {\n if ($.collapsible) {\n const { layout: ge } = _.prev ?? {};\n if (ge) {\n const pt = k(\n $.collapsedSize,\n ce[$.panelId]\n ), ht = k(\n $.collapsedSize,\n ge[$.panelId]\n );\n pt && !ht && (R.mutableState.expandedPanelSizes[$.panelId] = ge[$.panelId]);\n }\n }\n });\n const dt = B().state !== \"active\";\n f(ce), dt && d(ce, _.isUserInteraction);\n });\n return () => {\n N.current = null, E(), oe();\n };\n }, [\n i,\n h,\n d,\n f,\n c,\n b,\n L\n ]), me(() => {\n const x = N.current;\n x && (x.mutableState.defaultLayout = n, x.mutableState.disableCursor = !!o);\n }), /* @__PURE__ */ ae(ct.Provider, { value: G, children: /* @__PURE__ */ ae(\n \"div\",\n {\n ...S,\n className: t,\n \"data-group\": !0,\n \"data-testid\": h,\n id: h,\n ref: w,\n style: {\n height: \"100%\",\n width: \"100%\",\n overflow: \"hidden\",\n ...p,\n display: \"flex\",\n flexDirection: c === \"horizontal\" ? \"row\" : \"column\",\n flexWrap: \"nowrap\",\n // Inform the browser that the library is handling touch events for this element\n // but still allow users to scroll content within panels in the non-resizing direction\n // NOTE This is not an inherited style\n // See github.com/bvaughn/react-resizable-panels/issues/662\n touchAction: c === \"horizontal\" ? \"pan-y\" : \"pan-x\"\n },\n children: e\n }\n ) });\n}\nXt.displayName = \"Group\";\nfunction he(e, t) {\n return `react-resizable-panels:${[e, ...t].join(\":\")}`;\n}\nfunction qt({\n id: e,\n panelIds: t,\n storage: n\n}) {\n const o = he(e, []), i = n.getItem(o);\n if (i)\n try {\n const s = JSON.parse(i);\n if (t) {\n const u = t.join(\",\"), a = s[u];\n if (a && Array.isArray(a.layout) && t.length === a.layout.length) {\n const r = {};\n for (let l = 0; l < t.length; l++)\n r[t[l]] = a.layout[l];\n return r;\n }\n } else {\n const u = Object.keys(s);\n if (u.length === 1) {\n const a = s[u[0]];\n if (a && Array.isArray(a.layout)) {\n const r = u[0].split(\",\");\n if (r.length === a.layout.length) {\n const l = {};\n for (let c = 0; c < r.length; c++)\n l[r[c]] = a.layout[c];\n return l;\n }\n }\n }\n }\n } catch {\n }\n}\nfunction sn({\n debounceSaveMs: e = 100,\n onlySaveAfterUserInteractions: t,\n panelIds: n,\n storage: o = localStorage,\n ...i\n}) {\n const s = n !== void 0, u = \"id\" in i ? i.id : i.groupId, a = he(u, n ?? []), r = qe(\n Yt,\n () => o.getItem(a),\n () => o.getItem(a)\n ), l = Se(() => {\n if (r) {\n const d = JSON.parse(r), h = Object.values(d);\n if (Array.from(h).every((y) => typeof y == \"number\"))\n return d;\n }\n }, [r]), c = Se(() => {\n if (!l)\n return qt({\n id: u,\n panelIds: n,\n storage: o\n });\n }, [l, u, n, o]), m = l ?? c, p = O(null), S = re(() => {\n const d = p.current;\n d && (p.current = null, clearTimeout(d));\n }, []);\n Ke(() => () => {\n S();\n }, [S]);\n const z = re(\n // The hook persists every layout commit -- including library-driven ones --\n // because it owns its own storage and the goal is to remember whatever\n // layout the user is currently looking at. Consumers that only want to\n // persist on user interaction should branch on `isUserInteraction` in\n // their own callback (see #716) rather than via this hook.\n (d, h) => {\n if (t && !h.isUserInteraction)\n return;\n S();\n let y;\n s ? y = he(u, Object.keys(d)) : y = he(u, []);\n try {\n o.setItem(y, JSON.stringify(d));\n } catch (b) {\n console.error(b);\n }\n },\n [\n S,\n s,\n u,\n t,\n o\n ]\n ), f = re(\n (d) => {\n S(), e === 0 ? z(d, { isUserInteraction: !1 }) : p.current = setTimeout(() => {\n z(d, { isUserInteraction: !1 });\n }, e);\n },\n [S, e, z]\n );\n return {\n /**\n * Pass this value to `Group` as the `defaultLayout` prop.\n */\n defaultLayout: m,\n /**\n * Attach this callback on the `Group` as the `onLayoutChange` prop.\n *\n * @deprecated Use the {@link onLayoutChanged} prop instead.\n */\n onLayoutChange: f,\n /**\n * Attach this callback on the `Group` as the `onLayoutChanged` prop.\n */\n onLayoutChanged: z\n };\n}\nfunction Yt() {\n return function() {\n };\n}\nfunction an() {\n return Q(null);\n}\nfunction ln() {\n return O(null);\n}\nfunction Me() {\n const e = yt(ct);\n return C(\n e,\n \"Group Context not found; did you render a Panel or Separator outside of a Group?\"\n ), e;\n}\nfunction Jt(e, t) {\n const { id: n } = Me(), o = O({\n collapse: ye,\n expand: ye,\n getSize: () => ({\n asPercentage: 0,\n inPixels: 0\n }),\n isCollapsed: () => !1,\n resize: ye\n });\n Xe(t, () => o.current, []), q(() => {\n Object.assign(\n o.current,\n at({ groupId: n, panelId: e })\n );\n });\n}\nfunction Zt({\n children: e,\n className: t,\n collapsedSize: n = \"0%\",\n collapsible: o = !1,\n defaultSize: i,\n disabled: s,\n elementRef: u,\n groupResizeBehavior: a = \"preserve-relative-size\",\n id: r,\n maxSize: l = \"100%\",\n minSize: c = \"0%\",\n onResize: m,\n panelRef: p,\n style: S,\n ...z\n}) {\n const f = !!r, d = Le(r), h = Re({\n disabled: s\n }), y = O(null), b = Ce(y, u), {\n getPanelStyles: v,\n id: g,\n orientation: w,\n registerPanel: M,\n updatePanelProps: L\n } = Me(), G = m !== null, N = se(\n (R, E, D) => {\n m?.(R, r, D);\n }\n );\n q(() => {\n const R = y.current;\n if (R !== null) {\n const E = {\n element: R,\n id: d,\n idIsStable: f,\n mutableValues: {\n expandToSize: void 0,\n prevSize: void 0\n },\n onResize: G ? N : void 0,\n panelConstraints: {\n groupResizeBehavior: a,\n collapsedSize: n,\n collapsible: o,\n defaultSize: i,\n disabled: h.disabled,\n maxSize: l,\n minSize: c\n }\n };\n return M(E);\n }\n }, [\n a,\n n,\n o,\n i,\n G,\n d,\n f,\n l,\n c,\n N,\n M,\n h\n ]), me(() => {\n L(d, { disabled: s });\n }, [s, d, L]), Jt(d, p);\n const x = () => {\n const R = v(g, d);\n if (R)\n return JSON.stringify(R);\n }, P = qe(\n (R) => Pe(g, R),\n x,\n x\n );\n let I;\n return P ? I = JSON.parse(P) : i !== void 0 ? I = {\n flexGrow: void 0,\n flexShrink: void 0,\n flexBasis: i\n } : I = { flexGrow: 1 }, /* @__PURE__ */ ae(\n \"div\",\n {\n ...z,\n \"data-disabled\": s || void 0,\n \"data-panel\": !0,\n \"data-testid\": d,\n id: d,\n ref: b,\n style: {\n ...Qt,\n display: \"flex\",\n flexBasis: 0,\n flexShrink: 1,\n overflow: \"visible\",\n ...I\n },\n children: /* @__PURE__ */ ae(\n \"div\",\n {\n className: t,\n style: {\n maxHeight: \"100%\",\n maxWidth: \"100%\",\n flexGrow: 1,\n overflow: \"auto\",\n ...S,\n // Inform the browser that the library is handling touch events for this element\n // but still allow users to scroll content within panels in the non-resizing direction\n // NOTE This is not an inherited style\n // See github.com/bvaughn/react-resizable-panels/issues/662\n touchAction: w === \"horizontal\" ? \"pan-y\" : \"pan-x\"\n },\n children: e\n }\n )\n }\n );\n}\nZt.displayName = \"Panel\";\nconst Qt = {\n minHeight: 0,\n maxHeight: \"100%\",\n height: \"auto\",\n minWidth: 0,\n maxWidth: \"100%\",\n width: \"auto\",\n border: \"none\",\n borderWidth: 0,\n padding: 0,\n margin: 0\n};\nfunction un() {\n return Q(null);\n}\nfunction cn() {\n return O(null);\n}\nfunction en({\n layout: e,\n panelConstraints: t,\n panelId: n,\n panelIndex: o\n}) {\n let i, s;\n const u = e[n], a = t.find(\n (r) => r.panelId === n\n );\n if (a) {\n const r = a.maxSize, l = a.collapsible ? a.collapsedSize : a.minSize, c = [o, o + 1];\n s = K({\n layout: le({\n delta: l - u,\n initialLayout: e,\n panelConstraints: t,\n pivotIndices: c,\n prevLayout: e\n }),\n panelConstraints: t\n })[n], i = K({\n layout: le({\n delta: r - u,\n initialLayout: e,\n panelConstraints: t,\n pivotIndices: c,\n prevLayout: e\n }),\n panelConstraints: t\n })[n];\n }\n return {\n valueControls: n,\n valueMax: i,\n valueMin: s,\n valueNow: u\n };\n}\nfunction tn({\n children: e,\n className: t,\n disabled: n,\n disableDoubleClick: o,\n elementRef: i,\n id: s,\n style: u,\n ...a\n}) {\n const r = Le(s), l = Re({\n disabled: n,\n disableDoubleClick: o\n }), [c, m] = Q({}), [p, S] = Q(\"inactive\"), [z, f] = Q(!1), d = O(null), h = Ce(d, i), {\n disableCursor: y,\n id: b,\n orientation: v,\n registerSeparator: g,\n updateSeparatorProps: w\n } = Me(), M = v === \"horizontal\" ? \"vertical\" : \"horizontal\";\n q(() => {\n const N = d.current;\n if (N !== null) {\n const x = {\n disabled: l.disabled,\n disableDoubleClick: l.disableDoubleClick,\n element: N,\n id: r\n }, P = g(x), I = Rt(\n (E) => {\n S(\n E.next.state !== \"inactive\" && E.next.hitRegions.some(\n (D) => D.separator === x\n ) ? E.next.state : \"inactive\"\n );\n }\n ), R = Pe(\n b,\n (E) => {\n const { derivedPanelConstraints: D, layout: V, separatorToPanels: ue } = E.next, oe = ue.get(x);\n if (oe) {\n const _ = oe[0], Y = oe.indexOf(_);\n m(\n en({\n layout: V,\n panelConstraints: D,\n panelId: _.id,\n panelIndex: Y\n })\n );\n }\n }\n );\n return () => {\n I(), R(), P();\n };\n }\n }, [b, r, g, l]), me(() => {\n w(r, { disabled: n, disableDoubleClick: o });\n }, [n, o, r, w]);\n let L;\n n && !y && (L = \"not-allowed\");\n let G;\n if (n)\n G = \"disabled\";\n else\n switch (p) {\n case \"active\": {\n G = \"active\";\n break;\n }\n default:\n z ? G = \"focus\" : G = p;\n }\n return /* @__PURE__ */ ae(\n \"div\",\n {\n ...a,\n \"aria-controls\": c.valueControls,\n \"aria-disabled\": n || void 0,\n \"aria-orientation\": M,\n \"aria-valuemax\": c.valueMax,\n \"aria-valuemin\": c.valueMin,\n \"aria-valuenow\": c.valueNow,\n children: e,\n className: t,\n \"data-separator\": G,\n \"data-testid\": r,\n id: r,\n onBlur: () => f(!1),\n onFocus: () => f(!0),\n ref: h,\n role: \"separator\",\n style: {\n flexBasis: \"auto\",\n cursor: L,\n ...u,\n flexGrow: 0,\n flexShrink: 0,\n // Inform the browser that the library is handling touch events for this element\n // See github.com/bvaughn/react-resizable-panels/issues/662\n touchAction: \"none\"\n },\n tabIndex: n ? void 0 : 0\n }\n );\n}\ntn.displayName = \"Separator\";\nexport {\n Xt as Group,\n Zt as Panel,\n tn as Separator,\n Ct as isCoarsePointer,\n sn as useDefaultLayout,\n an as useGroupCallbackRef,\n ln as useGroupRef,\n un as usePanelCallbackRef,\n cn as usePanelRef\n};\n//# sourceMappingURL=react-resizable-panels.js.map\n","'use client';\n\nimport { ChevronsLeftRight } from 'lucide-react';\nimport type * as React from 'react';\nimport * as ResizablePrimitive from 'react-resizable-panels';\n\nimport { cn } from '@/lib/utils';\n\nfunction ResizablePanelGroup({\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.Group>) {\n return (\n <ResizablePrimitive.Group\n data-slot=\"resizable-panel-group\"\n className={cn(\n 'flex h-full w-full data-[panel-group-direction=vertical]:flex-col',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ResizablePanel({\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.Panel>) {\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />;\n}\n\nfunction ResizableHandle({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.Separator> & {\n withHandle?: boolean;\n}) {\n return (\n <ResizablePrimitive.Separator\n data-slot=\"resizable-handle\"\n aria-label=\"Resize panels\"\n className={cn(\n 'bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden motion-reduce:after:transition-none data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90 hover:bg-border/80 transition-colors motion-reduce:transition-none',\n className,\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex shrink-0 items-center justify-center rounded-3xl border border-border bg-muted px-0.5 py-5 transition-all motion-reduce:transition-none hover:bg-accent hover:border-accent-foreground/20\">\n <ChevronsLeftRight\n size={20}\n className=\"text-secondary-foreground transition-colors motion-reduce:transition-none hover:text-accent-foreground\"\n />\n </div>\n )}\n </ResizablePrimitive.Separator>\n );\n}\n\nResizablePanelGroup.displayName = 'ResizablePanelGroup';\nResizablePanel.displayName = 'ResizablePanel';\nResizableHandle.displayName = 'ResizableHandle';\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup };\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * AppShell provides a customizable background wrapper for connected sidebar layouts.\n * It sets a fixed height and allows any CSS background value (gradient, solid color, image).\n *\n * Responsive padding is handled via CSS media queries (no JS hydration flash).\n * Mobile padding applies below 768px, desktop padding at 768px and above.\n */\nconst AppShell = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n /** Any CSS background value (color, gradient, image). Defaults to var(--app-background). */\n background?: string;\n /** Fixed height, supports CSS calc(). Defaults to '100vh'. */\n height?: string;\n /** Spacing around the inner content in pixels or CSS value. Defaults to token --app-shell-padding (16px). Applied at md breakpoint and above. */\n padding?: number | string;\n /** Padding on mobile viewports (<768px). Defaults to 8px. */\n mobilePadding?: number | string;\n /** Gap between panels in pixels or CSS value. Sets --app-shell-gap CSS variable. */\n gap?: number | string;\n /** When true, panels are visually connected (joined edges, no border-radius between them). */\n connected?: boolean;\n }\n>(\n (\n {\n background,\n height,\n padding,\n mobilePadding,\n gap,\n connected,\n className,\n style,\n children,\n ...props\n },\n ref,\n ) => {\n // Build style object, only setting vars when props are explicitly provided\n const cssVars: Record<string, string | undefined> = {};\n if (background !== undefined) {\n cssVars['--app-shell-background'] = background;\n }\n if (height !== undefined) {\n cssVars['--app-shell-height'] = height;\n }\n if (padding !== undefined) {\n cssVars['--app-shell-padding'] =\n typeof padding === 'number' ? `${padding}px` : padding;\n }\n if (mobilePadding !== undefined) {\n cssVars['--app-shell-mobile-padding'] =\n typeof mobilePadding === 'number'\n ? `${mobilePadding}px`\n : mobilePadding;\n }\n if (gap !== undefined) {\n cssVars['--app-shell-gap'] = typeof gap === 'number' ? `${gap}px` : gap;\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"app-shell\"\n data-connected={connected ? 'true' : undefined}\n style={{ ...cssVars, ...style } as React.CSSProperties}\n className={cn(\n 'flex h-[var(--app-shell-height,100dvh)] w-full',\n 'gap-[var(--app-shell-gap,0px)]',\n // Responsive padding via CSS: mobile-first, then desktop override at md breakpoint\n 'p-[var(--app-shell-mobile-padding,0.5rem)] md:p-[var(--app-shell-padding,1rem)]',\n 'bg-app-shell',\n 'transition-[gap] duration-300 ease-[cubic-bezier(0.16,1,0.3,1)] motion-reduce:transition-none',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nAppShell.displayName = 'AppShell';\n\nexport { AppShell };\n","'use client';\n\nimport { Menu } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface MobileTabBarPanel {\n key?: React.Key;\n label?: string;\n}\n\nexport interface AppShellMobileTabBarProps {\n panels: MobileTabBarPanel[];\n activeIndex: number;\n onActiveChange: (index: number) => void;\n onSidebarOpen?: () => void;\n /** Base ID for generating ARIA tab/panel IDs */\n baseId?: string;\n}\n\nfunction getMobileTabKey(\n panel: MobileTabBarPanel,\n fallbackLabel: string,\n): React.Key {\n return panel.key ?? panel.label ?? fallbackLabel;\n}\n\n/**\n * Internal mobile tab bar for switching between panels on small viewports.\n * Implements the ARIA Tabs pattern with roving tabIndex and arrow key navigation.\n * Renders only when there are 2+ panels.\n */\nfunction AppShellMobileTabBar({\n panels,\n activeIndex,\n onActiveChange,\n onSidebarOpen,\n baseId,\n}: AppShellMobileTabBarProps) {\n const tabListRef = React.useRef<HTMLDivElement>(null);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n let nextIndex: number | null = null;\n\n switch (e.key) {\n case 'ArrowRight':\n nextIndex = (activeIndex + 1) % panels.length;\n break;\n case 'ArrowLeft':\n nextIndex = (activeIndex - 1 + panels.length) % panels.length;\n break;\n case 'Home':\n nextIndex = 0;\n break;\n case 'End':\n nextIndex = panels.length - 1;\n break;\n default:\n return;\n }\n\n e.preventDefault();\n onActiveChange(nextIndex);\n\n // Move focus to the newly active tab\n const tabList = tabListRef.current;\n if (tabList) {\n const buttons =\n tabList.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]');\n buttons[nextIndex]?.focus();\n }\n },\n [activeIndex, panels.length, onActiveChange],\n );\n\n // Sliding pill indicator — measure active tab position\n const [indicator, setIndicator] = React.useState<{\n left: number;\n width: number;\n } | null>(null);\n\n React.useEffect(() => {\n const tabList = tabListRef.current;\n if (!tabList || panels.length <= 1) return;\n const buttons = tabList.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]');\n const activeBtn = buttons[activeIndex];\n if (!activeBtn) return;\n const left = activeBtn.offsetLeft;\n const width = activeBtn.offsetWidth;\n setIndicator((prev) =>\n prev && prev.left === left && prev.width === width\n ? prev\n : { left, width },\n );\n }, [activeIndex, panels.length]);\n\n const sidebarTrigger = onSidebarOpen ? (\n <button\n type=\"button\"\n onClick={onSidebarOpen}\n className={cn(\n 'flex min-h-11 min-w-11 items-center justify-center rounded-lg',\n 'text-secondary-foreground hover:bg-accent',\n 'active:scale-[0.95]',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n 'transition-colors motion-reduce:transition-none',\n )}\n aria-label=\"Open sidebar\"\n >\n <Menu className=\"size-5\" />\n </button>\n ) : null;\n\n if (panels.length <= 1) {\n return sidebarTrigger ? (\n <div\n data-slot=\"app-shell-mobile-tab-bar\"\n className=\"flex h-12 shrink-0 items-center px-3\"\n >\n {sidebarTrigger}\n </div>\n ) : null;\n }\n\n return (\n <div\n data-slot=\"app-shell-mobile-tab-bar\"\n className=\"flex h-12 shrink-0 items-center gap-1 px-3\"\n >\n {sidebarTrigger}\n <div\n ref={tabListRef}\n role=\"tablist\"\n className=\"relative flex gap-1\"\n onKeyDown={handleKeyDown}\n >\n {/* Sliding pill indicator */}\n {indicator && (\n <div\n className={cn(\n 'absolute top-1/2 -translate-y-1/2 h-9 rounded-lg bg-accent',\n 'transition-[left,width] duration-200 ease-[cubic-bezier(0.16,1,0.3,1)]',\n 'motion-reduce:transition-none',\n )}\n style={{ left: indicator.left, width: indicator.width }}\n aria-hidden=\"true\"\n />\n )}\n {panels.map((panel, panelPosition) => {\n const label = panel.label || `Panel ${panelPosition + 1}`;\n const isActive = panelPosition === activeIndex;\n const tabId = baseId ? `${baseId}-tab-${panelPosition}` : undefined;\n const panelId = baseId\n ? `${baseId}-tabpanel-${panelPosition}`\n : undefined;\n return (\n <button\n key={getMobileTabKey(panel, label)}\n id={tabId}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={panelId}\n tabIndex={isActive ? 0 : -1}\n onClick={() => onActiveChange(panelPosition)}\n className={cn(\n 'relative z-10 rounded-lg px-3 min-h-9 text-sm font-medium',\n 'transition-colors duration-150 motion-reduce:transition-none',\n 'active:scale-[0.97]',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n isActive\n ? 'text-foreground'\n : 'text-secondary-foreground hover:text-foreground',\n )}\n >\n {label}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n\nAppShellMobileTabBar.displayName = 'AppShellMobileTabBar';\n\nexport { AppShellMobileTabBar };\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { PanelExpansionContext, PanelLayoutContext } from './AppShellContext';\n\nexport const APPSHELL_PANEL_TYPE = 'AppShell.Panel' as const;\n\nexport interface AppShellPanelProps extends React.ComponentProps<'div'> {\n /** Fixed width in pixels (number) or CSS string */\n width?: number | string;\n /** Flex grow value */\n flex?: number | string;\n /** Minimum width in pixels (number) or CSS string */\n minWidth?: number | string;\n /** When true, panel takes all content space (flex: 1), sibling panels hidden */\n expanded?: boolean;\n /** Callback when expanded state should change */\n onExpandedChange?: (expanded: boolean) => void;\n /** Label shown in mobile tab bar */\n label?: string;\n}\n\nexport interface AppShellPanelComponent {\n (props: AppShellPanelProps): React.ReactElement;\n displayName?: string;\n __appShellType: typeof APPSHELL_PANEL_TYPE;\n}\n\n/**\n * Generic content slot for AppShell. Max 2 panels visible at a time.\n *\n * Sizing priority: expanded > width/flex > default (flex: 1)\n *\n * Reads PanelLayoutContext to self-manage visibility and mobile sizing,\n * eliminating the need for cloneElement style injection from Root.\n */\nfunction AppShellPanelRoot({\n width,\n flex,\n minWidth,\n expanded = false,\n onExpandedChange,\n label,\n className,\n style,\n children,\n ...props\n}: AppShellPanelProps): React.ReactElement {\n const layout = React.useContext(PanelLayoutContext);\n const resolvedExpanded = layout.expanded ?? expanded;\n const resolvedOnExpandedChange = layout.onExpandedChange ?? onExpandedChange;\n\n const expansionValue = React.useMemo(\n () => ({\n expanded: resolvedExpanded,\n onExpandedChange: resolvedOnExpandedChange,\n }),\n [resolvedExpanded, resolvedOnExpandedChange],\n );\n\n // Compute inline styles based on layout context + sizing rules\n const computedStyle = React.useMemo((): React.CSSProperties => {\n // Hidden panel (desktop: non-visible overflow or non-expanded sibling)\n if (!layout.visible && !layout.isMobile) {\n if (layout.collapseMode === 'animated') {\n return {\n ...style,\n opacity: 0,\n width: '0px',\n maxWidth: '0px',\n minWidth: '0px',\n flex: '0 1 0px',\n overflow: 'hidden',\n pointerEvents: 'none',\n };\n }\n\n return {\n ...style,\n display: 'none',\n opacity: 0,\n width: '0px',\n flex: '0',\n overflow: 'hidden',\n pointerEvents: 'none',\n };\n }\n\n // Mobile active panel: fill available space\n if (layout.isMobile) {\n return { ...style, flex: '1' };\n }\n\n if (layout.sizeManagedByRoot) {\n return { ...style };\n }\n\n // Desktop visible panel: apply sizing rules\n const sizeStyles: React.CSSProperties = {};\n if (resolvedExpanded) {\n sizeStyles.flex = '1';\n } else if (width !== undefined) {\n sizeStyles.width = typeof width === 'number' ? `${width}px` : width;\n sizeStyles.maxWidth = '100%';\n } else if (flex !== undefined) {\n sizeStyles.flex = String(flex);\n } else {\n sizeStyles.flex = '1';\n }\n\n if (minWidth !== undefined) {\n sizeStyles.minWidth =\n typeof minWidth === 'number' ? `${minWidth}px` : minWidth;\n }\n\n return { ...sizeStyles, ...style };\n }, [\n layout.visible,\n layout.isMobile,\n layout.collapseMode,\n layout.sizeManagedByRoot,\n resolvedExpanded,\n width,\n flex,\n minWidth,\n style,\n ]);\n\n const isHidden = !layout.visible && !layout.isMobile;\n\n return (\n <PanelExpansionContext.Provider value={expansionValue}>\n <div\n data-slot=\"app-shell-panel\"\n data-expanded={resolvedExpanded || undefined}\n aria-hidden={isHidden || undefined}\n inert={isHidden || undefined}\n {...(layout.panelId\n ? {\n role: 'tabpanel' as const,\n id: layout.panelId,\n 'aria-labelledby': layout.tabId,\n }\n : {})}\n className={cn(\n 'flex h-full min-w-0 flex-col',\n isHidden && 'overflow-clip',\n width !== undefined &&\n !resolvedExpanded &&\n !isHidden &&\n !layout.isMobile &&\n !layout.sizeManagedByRoot &&\n 'shrink-0',\n // Mobile panel entrance — subtle fade on tab switch\n layout.isMobile && 'animate-[delight-fade-in_150ms_ease-out_both]',\n layout.isMobile && 'motion-reduce:animate-none',\n // Transitions for show/hide (desktop)\n 'transition-[flex,width,opacity] duration-300 ease-[cubic-bezier(0.16,1,0.3,1)]',\n 'motion-reduce:transition-none',\n className,\n )}\n style={computedStyle}\n {...props}\n >\n {children}\n </div>\n </PanelExpansionContext.Provider>\n );\n}\n\nconst AppShellPanel = Object.assign(AppShellPanelRoot, {\n displayName: 'AppShell.Panel',\n __appShellType: APPSHELL_PANEL_TYPE,\n}) satisfies AppShellPanelComponent;\n\nexport { AppShellPanel };\n","export type PanelSizeTuple = [number, number];\nexport type PanelLayoutMap = Record<string, number>;\n\nexport const DEFAULT_PANEL_SIZES: PanelSizeTuple = [35, 65];\nexport const DEFAULT_EXPAND_THRESHOLD = 85;\n\nfunction isFinitePositive(value: number): boolean {\n return Number.isFinite(value) && value > 0;\n}\n\nexport function normalizePanelSizes(\n sizes: readonly [number, number] | undefined,\n): PanelSizeTuple {\n if (!sizes) return DEFAULT_PANEL_SIZES;\n const [first, second] = sizes;\n if (!isFinitePositive(first) || !isFinitePositive(second)) {\n return DEFAULT_PANEL_SIZES;\n }\n\n const total = first + second;\n return [\n Number(((first / total) * 100).toFixed(4)),\n Number(((second / total) * 100).toFixed(4)),\n ];\n}\n\nexport function toResizablePercentageSize(size: number): string {\n return String(size);\n}\n\nexport function toResizableMinSize(\n minWidth: number | string | undefined,\n): string | undefined {\n if (minWidth === undefined) return undefined;\n return typeof minWidth === 'number' ? `${minWidth}px` : minWidth;\n}\n\nexport function layoutMapToTuple(layout: PanelLayoutMap): PanelSizeTuple {\n return normalizePanelSizes([layout.panel0, layout.panel1]);\n}\n\nexport function getExpandedPanelFromLayout(\n layout: PanelLayoutMap,\n threshold = DEFAULT_EXPAND_THRESHOLD,\n): number | null {\n const first = layout.panel0;\n const second = layout.panel1;\n if (first >= threshold) return 0;\n if (second >= threshold) return 1;\n return null;\n}\n","'use client';\n\nimport * as React from 'react';\nimport type { GroupImperativeHandle } from 'react-resizable-panels';\nimport {\n ResizableHandle,\n ResizablePanel,\n ResizablePanelGroup,\n} from '@/components/atoms/layout/Resizable';\nimport { AppShell as AppShellPrimitive } from '@/components/ui/app-shell';\n\nimport { Sheet, SheetContent } from '@/components/ui/sheet';\nimport { SidebarContext } from '@/components/ui/sidebar';\nimport { useIsMobile } from '@/hooks/use-mobile';\nimport { cn } from '@/lib/utils';\nimport {\n APP_SIDEBAR_COLLAPSED_WIDTH,\n APP_SIDEBAR_EXPANDED_WIDTH,\n} from '../AppSidebar/AppSidebar.constants';\nimport { AppShellContent } from './AppShellContent';\nimport {\n type AppShellContextValue,\n AppShellProvider,\n PanelIndexContext,\n PanelLayoutContext,\n type PanelLayoutInfo,\n type PanelPosition,\n} from './AppShellContext';\nimport { AppShellMobileTabBar } from './AppShellMobileTabBar';\nimport {\n APPSHELL_PANEL_TYPE,\n AppShellPanel,\n type AppShellPanelComponent,\n type AppShellPanelProps,\n} from './AppShellPanel';\nimport {\n DEFAULT_EXPAND_THRESHOLD,\n getExpandedPanelFromLayout,\n layoutMapToTuple,\n normalizePanelSizes,\n toResizableMinSize,\n toResizablePercentageSize,\n} from './AppShellResize';\n\nconst DEFAULT_APP_SHELL_BACKGROUND = 'var(--app-background)';\n\ninterface AppShellPanelMarker {\n __appShellType?: unknown;\n}\n\nfunction isAppShellPanelComponent(\n type: unknown,\n): type is AppShellPanelComponent {\n return (\n typeof type === 'function' &&\n (type as AppShellPanelMarker).__appShellType === APPSHELL_PANEL_TYPE\n );\n}\n\nfunction isAppShellPanelElement(\n child: React.ReactNode,\n): child is React.ReactElement<AppShellPanelProps, AppShellPanelComponent> {\n return React.isValidElement(child) && isAppShellPanelComponent(child.type);\n}\n\nfunction getAppShellPanelIdentity(\n panel: React.ReactElement<AppShellPanelProps>,\n ariaBaseId: string,\n index: number,\n): React.Key {\n return panel.key ?? panel.props.label ?? `${ariaBaseId}-panel-${index}`;\n}\n\ninterface AppShellPanelWithLayoutProps {\n panel: React.ReactElement<AppShellPanelProps>;\n visible: boolean;\n index: number;\n overrides?: Partial<PanelLayoutInfo>;\n isMobile: boolean;\n activePanel: number;\n hasExpanded: boolean;\n hasTabBar: boolean;\n ariaBaseId: string;\n rootExpansionActive: boolean;\n firstExpandedIndex: number | null;\n onExpandedPanelChange: (panelIndex: number | null) => void;\n}\n\nfunction AppShellPanelWithLayout({\n panel,\n visible,\n index,\n overrides = {},\n isMobile,\n activePanel,\n hasExpanded,\n hasTabBar,\n ariaBaseId,\n rootExpansionActive,\n firstExpandedIndex,\n onExpandedPanelChange,\n}: AppShellPanelWithLayoutProps) {\n if (isMobile && index !== activePanel) return null;\n\n const layoutInfo: PanelLayoutInfo = {\n visible: isMobile ? true : visible,\n collapseMode: hasExpanded ? 'animated' : 'removed',\n isMobile,\n tabId: hasTabBar ? `${ariaBaseId}-tab-${index}` : undefined,\n panelId: hasTabBar ? `${ariaBaseId}-tabpanel-${index}` : undefined,\n expanded: rootExpansionActive\n ? hasExpanded && index === firstExpandedIndex\n : undefined,\n onExpandedChange: rootExpansionActive\n ? (nextExpanded) => onExpandedPanelChange(nextExpanded ? index : null)\n : undefined,\n ...overrides,\n };\n\n return (\n <PanelIndexContext.Provider value={index}>\n <PanelLayoutContext.Provider value={layoutInfo}>\n {panel}\n </PanelLayoutContext.Provider>\n </PanelIndexContext.Provider>\n );\n}\n\n// ============================================\n// AppShell Root\n// ============================================\n\nexport interface AppShellProps extends React.ComponentProps<'div'> {\n /** Any CSS background value (color, gradient, image). Defaults to var(--app-background). */\n background?: string;\n /** Fixed height, supports CSS calc() */\n height?: string;\n /** Spacing around the inner content in pixels or CSS value */\n padding?: number | string;\n /** Padding on mobile viewports. Defaults to 8px. */\n mobilePadding?: number | string;\n /** Gap between panels in pixels or CSS value. Defaults to 12. */\n gap?: number | string;\n /** Joined-edge mode where panels share borders. Defaults to false. */\n connected?: boolean;\n /** ID of the main content element for skip navigation. */\n skipToId?: string;\n /** Controlled active panel index for mobile tab switching. */\n activePanel?: number;\n /** Callback when active panel changes on mobile. */\n onActivePanelChange?: (index: number) => void;\n /** Default active panel on mobile (default: 0). */\n defaultActivePanel?: number;\n /** Controlled expanded panel index. Use null for no expanded panel. */\n expandedPanel?: number | null;\n /** Initial expanded panel index for uncontrolled root-owned expansion. */\n defaultExpandedPanel?: number | null;\n /** Callback when root-owned expansion changes. */\n onExpandedPanelChange?: (panelIndex: number | null) => void;\n /** Enables root-owned two-panel resizing on desktop. Defaults to true for eligible two-panel layouts. */\n resizablePanels?: boolean;\n /** Initial panel size split in percentages. Defaults to [35, 65]. */\n defaultPanelSizes?: [number, number];\n /** Controlled panel size split in percentages. */\n panelSizes?: [number, number];\n /** Called after the user releases the resize handle. */\n onPanelSizesChange?: (sizes: [number, number]) => void;\n /** Percentage threshold that expands the dominant panel on release. */\n expandThreshold?: number;\n}\n\nfunction AppShellRoot({\n background = DEFAULT_APP_SHELL_BACKGROUND,\n height = '100dvh',\n padding = 16,\n mobilePadding,\n gap = 12,\n connected = false,\n skipToId,\n activePanel: activePanelProp,\n onActivePanelChange,\n defaultActivePanel = 0,\n expandedPanel: expandedPanelProp,\n defaultExpandedPanel,\n onExpandedPanelChange,\n resizablePanels,\n defaultPanelSizes,\n panelSizes,\n onPanelSizesChange,\n expandThreshold = DEFAULT_EXPAND_THRESHOLD,\n className,\n children,\n ...props\n}: AppShellProps): React.ReactElement {\n const isMobile = useIsMobile();\n const ariaBaseId = React.useId();\n const [internalActivePanel, setInternalActivePanel] =\n React.useState(defaultActivePanel);\n const [internalExpandedPanel, setInternalExpandedPanel] = React.useState<\n number | null\n >(defaultExpandedPanel ?? null);\n const [internalPanelSizes, setInternalPanelSizes] = React.useState(() =>\n normalizePanelSizes(defaultPanelSizes),\n );\n const [isResizingPanels, setIsResizingPanels] = React.useState(false);\n const [isRestoringResizablePanels, setIsRestoringResizablePanels] =\n React.useState(false);\n const [internalMobileSidebarOpen, setInternalMobileSidebarOpen] =\n React.useState(false);\n const resizableGroupRef = React.useRef<GroupImperativeHandle | null>(null);\n const rootRef = React.useRef<HTMLDivElement>(null);\n const allowResizeReleaseExpansionRef = React.useRef(false);\n const suppressControlledLayoutChangeRef = React.useRef(false);\n const previousResizableExpandedRef = React.useRef(false);\n\n const activePanel = activePanelProp ?? internalActivePanel;\n const handleActivePanelChange = React.useCallback(\n (index: number) => {\n if (activePanelProp === undefined) {\n setInternalActivePanel((prev) => (prev === index ? prev : index));\n }\n onActivePanelChange?.(index);\n },\n [activePanelProp, onActivePanelChange],\n );\n\n const rootExpansionRequested =\n expandedPanelProp !== undefined ||\n defaultExpandedPanel !== undefined ||\n onExpandedPanelChange !== undefined;\n const resolvedExpandedPanel =\n expandedPanelProp !== undefined ? expandedPanelProp : internalExpandedPanel;\n const handleExpandedPanelChange = React.useCallback(\n (panelIndex: number | null) => {\n if (expandedPanelProp === undefined) {\n setInternalExpandedPanel(panelIndex);\n }\n onExpandedPanelChange?.(panelIndex);\n },\n [expandedPanelProp, onExpandedPanelChange],\n );\n\n // Classify children (memoized to stabilize downstream references)\n const { panels, panelInfos, sidebarChild, otherChildren } =\n React.useMemo(() => {\n const p: React.ReactElement<AppShellPanelProps>[] = [];\n const infos: { key?: React.Key; label?: string }[] = [];\n let sidebar: React.ReactNode = null;\n const other: React.ReactNode[] = [];\n\n React.Children.forEach(children, (child) => {\n if (isAppShellPanelElement(child)) {\n infos.push({\n key: child.key ?? child.props.label,\n label: child.props.label,\n });\n p.push(child);\n return;\n }\n\n if (!React.isValidElement(child)) {\n return;\n }\n\n if (child.type === AppShellSidebar) {\n sidebar = child;\n } else {\n other.push(child);\n }\n });\n\n return {\n panels: p,\n panelInfos: infos,\n sidebarChild: sidebar,\n otherChildren: other,\n };\n }, [children]);\n\n const shouldUseResizablePanels = resizablePanels ?? true;\n\n // Determine which panels are visible\n const firstPanelExpandedIndex = panels.findIndex((p) => p.props.expanded);\n const hasPanelExpansionProps = panels.some(\n (panel) =>\n panel.props.expanded !== undefined ||\n panel.props.onExpandedChange !== undefined,\n );\n const canUseResizablePanelPair =\n shouldUseResizablePanels &&\n !connected &&\n !isMobile &&\n panels.length === 2 &&\n (resizablePanels !== undefined || !hasPanelExpansionProps);\n const rootExpansionActive =\n rootExpansionRequested || canUseResizablePanelPair;\n const validRootExpandedPanel =\n typeof resolvedExpandedPanel === 'number' &&\n Number.isInteger(resolvedExpandedPanel) &&\n resolvedExpandedPanel >= 0 &&\n resolvedExpandedPanel < panels.length\n ? resolvedExpandedPanel\n : null;\n let firstExpandedIndex: number | null = firstPanelExpandedIndex;\n if (rootExpansionActive) {\n firstExpandedIndex = validRootExpandedPanel;\n }\n const hasExpanded = firstExpandedIndex !== -1 && firstExpandedIndex !== null;\n const visibleCount = hasExpanded ? 1 : Math.min(panels.length, 2);\n const canRenderResizablePanels = canUseResizablePanelPair;\n const resolvedPanelSizes = React.useMemo(\n () => normalizePanelSizes(panelSizes ?? internalPanelSizes),\n [panelSizes, internalPanelSizes],\n );\n const resizablePanelSizes = React.useMemo<[number, number]>(() => {\n if (hasExpanded && firstExpandedIndex === 0) return [100, 0];\n if (hasExpanded && firstExpandedIndex === 1) return [0, 100];\n return resolvedPanelSizes;\n }, [firstExpandedIndex, hasExpanded, resolvedPanelSizes]);\n const shouldBypassResizableMinSize =\n hasExpanded ||\n isRestoringResizablePanels ||\n (!hasExpanded && previousResizableExpandedRef.current);\n\n // Dev warnings\n if (process.env.NODE_ENV !== 'production') {\n const expandedPanelPropCount = panels.filter(\n (p) => p.props.expanded,\n ).length;\n if (rootExpansionActive && expandedPanelPropCount > 0) {\n console.warn(\n 'AppShell.Root: root-owned expansion props should not be mixed with AppShell.Panel expanded. Root expansion will be used.',\n );\n }\n if (!rootExpansionActive && expandedPanelPropCount > 1) {\n console.warn(\n 'AppShell.Root: multiple panels have expanded={true}. Only the first expanded panel will be shown.',\n );\n }\n if (\n rootExpansionActive &&\n resolvedExpandedPanel !== null &&\n resolvedExpandedPanel !== undefined &&\n validRootExpandedPanel === null\n ) {\n console.warn(\n `AppShell.Root: expandedPanel index ${resolvedExpandedPanel} is out of range. No panel will be expanded.`,\n );\n }\n if (resizablePanels === true && connected) {\n console.warn(\n 'AppShell.Root: resizablePanels is not supported with connected. Rendering non-resizable panels.',\n );\n }\n if (resizablePanels === true && !connected && panels.length !== 2) {\n console.warn(\n `AppShell.Root: resizablePanels requires exactly 2 Panel children, got ${panels.length}. Rendering non-resizable panels.`,\n );\n }\n if (panels.length > 2 && !hasExpanded) {\n console.warn(\n `AppShell.Root: max 2 Panel children allowed, got ${panels.length}. Only the first 2 will be visible.`,\n );\n }\n }\n\n const handleLayoutChange = React.useCallback(\n (layout: Record<string, number>) => {\n if (hasExpanded || suppressControlledLayoutChangeRef.current) {\n return;\n }\n if (panelSizes === undefined) {\n setInternalPanelSizes(layoutMapToTuple(layout));\n }\n },\n [hasExpanded, panelSizes],\n );\n\n const handleLayoutChanged = React.useCallback(\n (layout: Record<string, number>) => {\n if (\n hasExpanded ||\n !allowResizeReleaseExpansionRef.current ||\n suppressControlledLayoutChangeRef.current\n ) {\n return;\n }\n\n const nextSizes = layoutMapToTuple(layout);\n if (panelSizes === undefined) {\n setInternalPanelSizes(nextSizes);\n }\n onPanelSizesChange?.(nextSizes);\n\n const expandedIndex = getExpandedPanelFromLayout(layout, expandThreshold);\n if (expandedIndex !== null) {\n handleExpandedPanelChange(expandedIndex);\n }\n },\n [\n expandThreshold,\n handleExpandedPanelChange,\n hasExpanded,\n onPanelSizesChange,\n panelSizes,\n ],\n );\n\n React.useEffect(() => {\n if (!canRenderResizablePanels) {\n suppressControlledLayoutChangeRef.current = false;\n previousResizableExpandedRef.current = false;\n return;\n }\n\n const ownerWindow = rootRef.current?.ownerDocument.defaultView;\n if (!ownerWindow) return;\n\n const wasExpanded = previousResizableExpandedRef.current;\n previousResizableExpandedRef.current = hasExpanded;\n const shouldApplyLayout =\n hasExpanded || wasExpanded || panelSizes !== undefined;\n if (!shouldApplyLayout) {\n suppressControlledLayoutChangeRef.current = false;\n return;\n }\n\n let restoreFrame: number | undefined;\n const [first, second] = resizablePanelSizes;\n if (wasExpanded && !hasExpanded) {\n restoreFrame = ownerWindow.requestAnimationFrame(() => {\n setIsRestoringResizablePanels(true);\n });\n }\n suppressControlledLayoutChangeRef.current = true;\n const nextLayout = { panel0: first, panel1: second };\n resizableGroupRef.current?.setLayout(nextLayout);\n const frame = ownerWindow.requestAnimationFrame(() => {\n resizableGroupRef.current?.setLayout(nextLayout);\n });\n const timeout = ownerWindow.setTimeout(() => {\n suppressControlledLayoutChangeRef.current = false;\n }, 350);\n return () => {\n if (restoreFrame !== undefined) {\n ownerWindow.cancelAnimationFrame(restoreFrame);\n }\n ownerWindow.cancelAnimationFrame(frame);\n ownerWindow.clearTimeout(timeout);\n suppressControlledLayoutChangeRef.current = false;\n };\n }, [canRenderResizablePanels, hasExpanded, panelSizes, resizablePanelSizes]);\n\n React.useEffect(() => {\n if (!isRestoringResizablePanels) return;\n\n const ownerWindow = rootRef.current?.ownerDocument.defaultView;\n if (!ownerWindow) return;\n\n const timeout = ownerWindow.setTimeout(() => {\n setIsRestoringResizablePanels(false);\n }, 350);\n return () => ownerWindow.clearTimeout(timeout);\n }, [isRestoringResizablePanels]);\n\n React.useEffect(() => {\n if (!canRenderResizablePanels) {\n allowResizeReleaseExpansionRef.current = false;\n suppressControlledLayoutChangeRef.current = false;\n return;\n }\n\n const ownerWindow = rootRef.current?.ownerDocument.defaultView;\n if (!ownerWindow) return;\n\n const frame = ownerWindow.requestAnimationFrame(() => {\n allowResizeReleaseExpansionRef.current = true;\n });\n return () => {\n ownerWindow.cancelAnimationFrame(frame);\n allowResizeReleaseExpansionRef.current = false;\n };\n }, [canRenderResizablePanels]);\n\n React.useEffect(() => {\n if (!isResizingPanels) return;\n const ownerWindow = rootRef.current?.ownerDocument.defaultView;\n if (!ownerWindow) return;\n\n const stopResizing = () => setIsResizingPanels(false);\n ownerWindow.addEventListener('pointerup', stopResizing);\n ownerWindow.addEventListener('pointercancel', stopResizing);\n return () => {\n ownerWindow.removeEventListener('pointerup', stopResizing);\n ownerWindow.removeEventListener('pointercancel', stopResizing);\n };\n }, [isResizingPanels]);\n\n const handleResizablePointerDownCapture = React.useCallback(\n (event: React.PointerEvent<HTMLDivElement>) => {\n const target = event.target;\n if (!(target instanceof Element)) return;\n if (target.closest('[data-slot=\"resizable-handle\"]')) {\n setIsResizingPanels(true);\n }\n },\n [],\n );\n\n // Memoize the visibility map to stabilize downstream context values\n const visiblePanels = React.useMemo(\n () =>\n hasExpanded\n ? panels.map((panel, i) => ({\n panel,\n visible: i === firstExpandedIndex,\n index: i,\n }))\n : panels.map((panel, i) => ({\n panel,\n visible: i < 2,\n index: i,\n })),\n [panels, hasExpanded, firstExpandedIndex],\n );\n\n // Whether the tab bar is active (mobile with 2+ panels)\n const hasTabBar = isMobile && panels.length > 1;\n\n // Build context (derive position from stable scalars, not array reference)\n const getPanelPosition = React.useCallback(\n (index: number): PanelPosition => {\n if (visibleCount === 1) return 'only';\n if (hasExpanded) return index === firstExpandedIndex ? 'only' : 'last';\n return index === 0 ? 'first' : 'last';\n },\n [visibleCount, hasExpanded, firstExpandedIndex],\n );\n\n const contextValue: AppShellContextValue = React.useMemo(\n () => ({\n connected,\n panelCount: visibleCount,\n getPanelPosition,\n }),\n [connected, visibleCount, getPanelPosition],\n );\n\n // Sidebar context for mobile drawer integration\n const sidebarContext = React.useContext(SidebarContext);\n const mobileSidebarOpen =\n sidebarContext?.openMobile ?? internalMobileSidebarOpen;\n const setMobileSidebarOpen =\n sidebarContext?.setOpenMobile ?? setInternalMobileSidebarOpen;\n const handleSidebarOpen = React.useCallback(() => {\n setMobileSidebarOpen(true);\n }, [setMobileSidebarOpen]);\n\n const handleSheetOpenChange = React.useCallback(\n (open: boolean) => {\n setMobileSidebarOpen(open);\n },\n [setMobileSidebarOpen],\n );\n\n // Skip navigation link\n const skipLink = skipToId ? (\n <a\n href={`#${skipToId}`}\n className=\"sr-only focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-50 focus:rounded-md focus:bg-background focus:px-4 focus:py-2 focus:text-sm focus:font-medium focus:text-foreground focus:shadow-sm focus:ring-2 focus:ring-ring\"\n >\n Skip to content\n </a>\n ) : null;\n\n // Render panels with context providers (no cloneElement — panels self-style)\n const renderedPanels = React.useMemo(\n () =>\n visiblePanels.map(({ panel, visible, index }) => (\n <AppShellPanelWithLayout\n key={getAppShellPanelIdentity(panel, ariaBaseId, index)}\n panel={panel}\n visible={visible}\n index={index}\n isMobile={isMobile}\n activePanel={activePanel}\n hasExpanded={hasExpanded}\n hasTabBar={hasTabBar}\n ariaBaseId={ariaBaseId}\n rootExpansionActive={rootExpansionActive}\n firstExpandedIndex={firstExpandedIndex}\n onExpandedPanelChange={handleExpandedPanelChange}\n />\n )),\n [\n visiblePanels,\n ariaBaseId,\n isMobile,\n activePanel,\n hasExpanded,\n hasTabBar,\n rootExpansionActive,\n firstExpandedIndex,\n handleExpandedPanelChange,\n ],\n );\n\n const renderedResizablePanels = canRenderResizablePanels ? (\n <ResizablePanelGroup\n orientation=\"horizontal\"\n disabled={hasExpanded}\n groupRef={resizableGroupRef}\n onLayoutChange={handleLayoutChange}\n onLayoutChanged={handleLayoutChanged}\n onPointerDownCapture={handleResizablePointerDownCapture}\n className={cn(\n 'min-h-0 min-w-0 flex-1',\n !isResizingPanels &&\n '[&>[data-slot=resizable-panel]]:transition-[flex-grow] [&>[data-slot=resizable-panel]]:duration-300 [&>[data-slot=resizable-panel]]:ease-[cubic-bezier(0.16,1,0.3,1)] motion-reduce:[&>[data-slot=resizable-panel]]:transition-none',\n )}\n >\n <ResizablePanel\n id=\"panel0\"\n defaultSize={toResizablePercentageSize(resizablePanelSizes[0])}\n minSize={\n shouldBypassResizableMinSize\n ? 0\n : toResizableMinSize(panels[0].props.minWidth)\n }\n >\n <AppShellPanelWithLayout\n panel={panels[0]}\n visible={!hasExpanded || firstExpandedIndex === 0}\n index={0}\n overrides={{ sizeManagedByRoot: true }}\n isMobile={isMobile}\n activePanel={activePanel}\n hasExpanded={hasExpanded}\n hasTabBar={hasTabBar}\n ariaBaseId={ariaBaseId}\n rootExpansionActive={rootExpansionActive}\n firstExpandedIndex={firstExpandedIndex}\n onExpandedPanelChange={handleExpandedPanelChange}\n />\n </ResizablePanel>\n <ResizableHandle\n disabled={hasExpanded}\n className={cn(\n 'z-10 min-w-2 shrink-0 cursor-col-resize w-[var(--app-shell-gap,0px)] bg-transparent after:w-2 hover:bg-transparent',\n 'transition-[width,min-width,opacity,background-color] duration-300 ease-[cubic-bezier(0.16,1,0.3,1)] motion-reduce:transition-none',\n hasExpanded && 'min-w-0 w-0 opacity-0 after:w-0 pointer-events-none',\n )}\n />\n <ResizablePanel\n id=\"panel1\"\n defaultSize={toResizablePercentageSize(resizablePanelSizes[1])}\n minSize={\n shouldBypassResizableMinSize\n ? 0\n : toResizableMinSize(panels[1].props.minWidth)\n }\n >\n <AppShellPanelWithLayout\n panel={panels[1]}\n visible={!hasExpanded || firstExpandedIndex === 1}\n index={1}\n overrides={{ sizeManagedByRoot: true }}\n isMobile={isMobile}\n activePanel={activePanel}\n hasExpanded={hasExpanded}\n hasTabBar={hasTabBar}\n ariaBaseId={ariaBaseId}\n rootExpansionActive={rootExpansionActive}\n firstExpandedIndex={firstExpandedIndex}\n onExpandedPanelChange={handleExpandedPanelChange}\n />\n </ResizablePanel>\n </ResizablePanelGroup>\n ) : null;\n\n // Live region for announcing panel changes to screen readers\n const activeLabel =\n hasTabBar && panelInfos[activePanel]\n ? panelInfos[activePanel].label || `Panel ${activePanel + 1}`\n : null;\n\n // Mobile layout\n if (isMobile) {\n return (\n <AppShellProvider value={contextValue}>\n <AppShellPrimitive\n ref={rootRef}\n background={background}\n height={height}\n padding={padding}\n mobilePadding={mobilePadding}\n gap={0}\n connected={connected}\n className={className}\n {...props}\n >\n {skipLink}\n {sidebarChild && (\n <Sheet\n open={mobileSidebarOpen}\n onOpenChange={handleSheetOpenChange}\n >\n <SheetContent\n side=\"left\"\n showCloseButton={false}\n className=\"w-[280px] p-0\"\n aria-label=\"Sidebar navigation\"\n >\n {sidebarChild}\n </SheetContent>\n </Sheet>\n )}\n <div className=\"flex h-full min-w-0 flex-1 flex-col overflow-clip\">\n <AppShellMobileTabBar\n panels={panelInfos}\n activeIndex={activePanel}\n onActiveChange={handleActivePanelChange}\n onSidebarOpen={sidebarChild ? handleSidebarOpen : undefined}\n baseId={ariaBaseId}\n />\n <div className=\"flex min-h-0 flex-1\">{renderedPanels}</div>\n </div>\n {/* Live region for panel switch announcements */}\n {activeLabel && (\n <div className=\"sr-only\" role=\"status\" aria-live=\"polite\">\n {activeLabel} panel active\n </div>\n )}\n {otherChildren}\n </AppShellPrimitive>\n </AppShellProvider>\n );\n }\n\n // Desktop layout\n const effectiveGap = connected || hasExpanded ? 0 : gap;\n\n return (\n <AppShellProvider value={contextValue}>\n <AppShellPrimitive\n ref={rootRef}\n background={background}\n height={height}\n padding={padding}\n mobilePadding={mobilePadding}\n gap={effectiveGap}\n connected={connected}\n className={className}\n {...props}\n >\n {skipLink}\n {sidebarChild}\n {renderedResizablePanels ?? renderedPanels}\n {otherChildren}\n </AppShellPrimitive>\n </AppShellProvider>\n );\n}\n\nAppShellRoot.displayName = 'AppShell';\n\n// ============================================\n// AppShell Sidebar\n// ============================================\n\nexport interface AppShellSidebarProps extends React.ComponentProps<'div'> {\n /**\n * Explicit width override — bypasses auto-detection. Manual widths are\n * protected by AppSidebar's canonical collapsed width to prevent clipping.\n * When omitted, the sidebar auto-sizes based on the child\n * SidebarProvider's expanded/collapsed state.\n */\n width?: string;\n /** Width when sidebar is expanded (auto mode only). @default '280px' */\n expandedWidth?: string;\n /** Width when sidebar is collapsed (auto mode only). @default '116px' */\n collapsedWidth?: string;\n}\n\n/**\n * Layout slot for the sidebar region. Renders a div — the actual aside\n * landmark is provided by AppSidebar/Sidebar primitive inside it.\n *\n * **Auto-detection (default):** When no `width` prop is provided, the sidebar\n * observes the child SidebarProvider's `data-state` attribute via CSS `:has()`\n * and transitions between `collapsedWidth` and `expandedWidth` automatically.\n *\n * **Manual mode:** Pass an explicit `width` to control sizing yourself.\n */\nfunction AppShellSidebar({\n width,\n expandedWidth = APP_SIDEBAR_EXPANDED_WIDTH,\n collapsedWidth = APP_SIDEBAR_COLLAPSED_WIDTH,\n className,\n style,\n children,\n ...props\n}: AppShellSidebarProps) {\n const autoMode = width === undefined;\n\n return (\n <div\n data-slot=\"app-shell-sidebar\"\n style={\n {\n ...(autoMode\n ? {\n '--app-shell-sidebar-collapsed': collapsedWidth,\n '--app-shell-sidebar-expanded': expandedWidth,\n }\n : {\n '--app-shell-sidebar-width': width,\n minWidth: APP_SIDEBAR_COLLAPSED_WIDTH,\n }),\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'flex h-full shrink-0 flex-col overflow-clip',\n 'transition-[width] duration-300 ease-[cubic-bezier(0.16,1,0.3,1)]',\n 'motion-reduce:transition-none',\n autoMode\n ? [\n 'w-[var(--app-shell-sidebar-collapsed)]',\n '[&:has([data-state=expanded])]:w-[var(--app-shell-sidebar-expanded)]',\n ]\n : 'w-[var(--app-shell-sidebar-width)]',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nAppShellSidebar.displayName = 'AppShell.Sidebar';\n\n// ============================================\n// AppShell Header\n// ============================================\n\nexport interface AppShellHeaderProps extends React.ComponentProps<'div'> {}\n\nfunction AppShellHeader({\n className,\n children,\n ...props\n}: AppShellHeaderProps) {\n return (\n <div\n data-slot=\"app-shell-header\"\n className={cn('shrink-0', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nAppShellHeader.displayName = 'AppShell.Header';\n\n// ============================================\n// Preset Background Variants\n// ============================================\n\nconst appShellBackgrounds = {\n transparent: 'transparent',\n appBg: DEFAULT_APP_SHELL_BACKGROUND,\n neutral: 'var(--muted)',\n brandSubtle: 'linear-gradient(135deg, var(--air-50) 0%, var(--air-100) 100%)',\n brand: 'linear-gradient(135deg, var(--air-400) 0%, var(--primary) 100%)',\n brandDeep: 'linear-gradient(135deg, var(--primary) 0%, var(--air-900) 100%)',\n desertMidnight:\n 'linear-gradient(135deg, var(--slate-500) 0%, var(--slate-700) 100%)',\n aqua: 'linear-gradient(135deg, var(--air-400) 0%, var(--air-600) 100%)',\n} as const;\n\n// ============================================\n// Compound Component (Dot Notation)\n// ============================================\n\nconst AppShell = Object.assign(AppShellRoot, {\n Root: AppShellRoot,\n Sidebar: AppShellSidebar,\n Header: AppShellHeader,\n Panel: AppShellPanel,\n Content: AppShellContent,\n});\n\n// ============================================\n// Exports\n// ============================================\n\nexport type { AppShellContentProps } from './AppShellContent';\nexport type { AppShellPanelProps } from './AppShellPanel';\n\nexport {\n APP_SIDEBAR_COLLAPSED_WIDTH,\n APP_SIDEBAR_EXPANDED_WIDTH,\n AppShell,\n AppShellContent,\n AppShellHeader,\n AppShellPanel,\n AppShellRoot,\n AppShellSidebar,\n appShellBackgrounds,\n};\n","/**\n * Web Component wrapper for AppShell (hand-crafted WC adapter).\n * Custom element: <hf-app-shell>\n *\n * @generated by scripts/generate-wc-components.ts\n * DO NOT EDIT MANUALLY\n */\n\nimport React from 'react';\nimport { AppShell, appShellBackgrounds } from '../components';\nimport {\n BaseCompoundWC,\n camelToKebab,\n installPropAccessors,\n type PropDefs,\n portalNode,\n registerWC,\n} from './_shared';\n\nconst PROP_DEFS: PropDefs = {\n background: 'string',\n height: 'string',\n padding: 'string',\n mobilePadding: 'string',\n gap: 'string',\n connected: 'boolean',\n};\n\nclass AppShellWC extends BaseCompoundWC {\n get propDefs() {\n return PROP_DEFS;\n }\n\n static get observedAttributes() {\n return Object.keys(PROP_DEFS).map(camelToKebab);\n }\n\n protected _renderReact(): React.ReactElement {\n const props = this._readAllProps();\n const sidebarSlot = this._getSlot('sidebar');\n const contentSlot = this._getSlot('content') || this._getDefaultSlot();\n\n const children: React.ReactNode[] = [];\n if (sidebarSlot) {\n children.push(portalNode(sidebarSlot));\n }\n if (contentSlot) {\n children.push(portalNode(contentSlot));\n }\n\n const parsePadding = (value: unknown): number | string | undefined => {\n if (value === undefined || value === null) return undefined;\n if (typeof value === 'number') return value;\n if (typeof value === 'string') {\n const parsed = Number(value);\n return Number.isNaN(parsed) ? value : parsed;\n }\n return undefined;\n };\n\n return React.createElement(\n AppShell,\n {\n background: (props.background as string) || appShellBackgrounds.appBg,\n height: (props.height as string) || '100vh',\n padding: parsePadding(props.padding) ?? 16,\n mobilePadding: parsePadding(props.mobilePadding),\n gap: parsePadding(props.gap) ?? 12,\n connected: props.connected === true || props.connected === 'true',\n },\n ...children,\n );\n }\n}\n\ninstallPropAccessors(AppShellWC, PROP_DEFS);\nregisterWC('hf-app-shell', AppShellWC);\n\nexport { AppShellWC };\nexport default AppShellWC;\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hf-app-shell.js","names":["__iconNode","#e","Q","re","mt","Ke","me","O","gt","Se","yt","qe"],"sources":["../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/lucide-react@1.27.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/chevrons-left-right.mjs","../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/lucide-react@1.27.0+0f58469d5b3bd39f/node_modules/lucide-react/dist/esm/icons/menu.mjs","../../../../../../../../../../../Users/akarim/Documents/test/humain_foundation_ui/node_modules/.bun/react-resizable-panels@4.12.2+005eabf3d8b6ef06/node_modules/react-resizable-panels/dist/react-resizable-panels.js","../../src/components/ui/resizable.tsx","../../src/components/ui/app-shell.tsx","../../src/components/templates/AppShell/AppShellMobileTabBar.tsx","../../src/components/templates/AppShell/AppShellPanel.tsx","../../src/components/templates/AppShell/AppShellResize.ts","../../src/components/templates/AppShell/AppShell.tsx","../../src/wc/hf-app-shell.ts"],"sourcesContent":["/**\n * @license lucide-react v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m9 7-5 5 5 5\", key: \"j5w590\" }],\n [\"path\", { d: \"m15 7 5 5-5 5\", key: \"1bl6da\" }]\n];\nconst ChevronsLeftRight = createLucideIcon(\"chevrons-left-right\", __iconNode);\n\nexport { __iconNode, ChevronsLeftRight as default };\n//# sourceMappingURL=chevrons-left-right.mjs.map\n","/**\n * @license lucide-react v1.27.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"M4 5h16\", key: \"1tepv9\" }],\n [\"path\", { d: \"M4 12h16\", key: \"1lakjw\" }],\n [\"path\", { d: \"M4 19h16\", key: \"1djgab\" }]\n];\nconst Menu = createLucideIcon(\"menu\", __iconNode);\n\nexport { __iconNode, Menu as default };\n//# sourceMappingURL=menu.mjs.map\n","\"use client\";\nimport { jsx as ae } from \"react/jsx-runtime\";\nimport { useState as Q, useCallback as re, useId as mt, useLayoutEffect as Ke, useEffect as me, useRef as O, createContext as gt, useImperativeHandle as Xe, useMemo as Se, useSyncExternalStore as qe, useContext as yt } from \"react\";\nfunction St(e, t) {\n const n = getComputedStyle(e), o = parseFloat(n.fontSize);\n return t * o;\n}\nfunction vt(e, t) {\n const n = getComputedStyle(e.ownerDocument.documentElement), o = parseFloat(n.fontSize);\n return t * o;\n}\nfunction bt(e) {\n return e / 100 * window.innerHeight;\n}\nfunction zt(e) {\n return e / 100 * window.innerWidth;\n}\nfunction xt(e) {\n switch (typeof e) {\n case \"number\":\n return [e, \"px\"];\n case \"string\": {\n const t = parseFloat(e);\n return e.endsWith(\"%\") ? [t, \"%\"] : e.endsWith(\"px\") ? [t, \"px\"] : e.endsWith(\"rem\") ? [t, \"rem\"] : e.endsWith(\"em\") ? [t, \"em\"] : e.endsWith(\"vh\") ? [t, \"vh\"] : e.endsWith(\"vw\") ? [t, \"vw\"] : [t, \"%\"];\n }\n }\n}\nfunction ie({\n groupSize: e,\n panelElement: t,\n styleProp: n\n}) {\n let o;\n const [i, s] = xt(n);\n switch (s) {\n case \"%\": {\n o = i / 100 * e;\n break;\n }\n case \"px\": {\n o = i;\n break;\n }\n case \"rem\": {\n o = vt(t, i);\n break;\n }\n case \"em\": {\n o = St(t, i);\n break;\n }\n case \"vh\": {\n o = bt(i);\n break;\n }\n case \"vw\": {\n o = zt(i);\n break;\n }\n }\n return o;\n}\nfunction T(e) {\n return parseFloat(e.toFixed(3));\n}\nfunction ne({\n group: e\n}) {\n const { orientation: t, panels: n } = e;\n return n.reduce((o, i) => (o += t === \"horizontal\" ? i.element.offsetWidth : i.element.offsetHeight, o), 0);\n}\nfunction ve(e) {\n const { panels: t } = e, n = ne({ group: e });\n return n === 0 ? t.map((o) => ({\n groupResizeBehavior: o.panelConstraints.groupResizeBehavior,\n collapsedSize: 0,\n collapsible: o.panelConstraints.collapsible === !0,\n defaultSize: void 0,\n disabled: o.panelConstraints.disabled,\n minSize: 0,\n maxSize: 100,\n panelId: o.id\n })) : t.map((o) => {\n const { element: i, panelConstraints: s } = o;\n let u = 0;\n if (s.collapsedSize !== void 0) {\n const c = ie({\n groupSize: n,\n panelElement: i,\n styleProp: s.collapsedSize\n });\n u = T(c / n * 100);\n }\n let a;\n if (s.defaultSize !== void 0) {\n const c = ie({\n groupSize: n,\n panelElement: i,\n styleProp: s.defaultSize\n });\n a = T(c / n * 100);\n }\n let r = 0;\n if (s.minSize !== void 0) {\n const c = ie({\n groupSize: n,\n panelElement: i,\n styleProp: s.minSize\n });\n r = T(c / n * 100);\n }\n let l = 100;\n if (s.maxSize !== void 0) {\n const c = ie({\n groupSize: n,\n panelElement: i,\n styleProp: s.maxSize\n });\n l = T(c / n * 100);\n }\n return {\n groupResizeBehavior: s.groupResizeBehavior,\n collapsedSize: u,\n collapsible: s.collapsible === !0,\n defaultSize: a,\n disabled: s.disabled,\n minSize: r,\n maxSize: l,\n panelId: o.id\n };\n });\n}\nfunction C(e, t = \"Assertion error\") {\n if (!e)\n throw Error(t);\n}\nfunction be(e, t) {\n return Array.from(t).sort(\n e === \"horizontal\" ? Pt : wt\n );\n}\nfunction Pt(e, t) {\n const n = e.element.offsetLeft - t.element.offsetLeft;\n return n !== 0 ? n : e.element.offsetWidth - t.element.offsetWidth;\n}\nfunction wt(e, t) {\n const n = e.element.offsetTop - t.element.offsetTop;\n return n !== 0 ? n : e.element.offsetHeight - t.element.offsetHeight;\n}\nfunction Ye(e) {\n return e !== null && typeof e == \"object\" && \"nodeType\" in e && e.nodeType === Node.ELEMENT_NODE;\n}\nfunction Je(e, t) {\n return {\n x: e.x >= t.left && e.x <= t.right ? 0 : Math.min(\n Math.abs(e.x - t.left),\n Math.abs(e.x - t.right)\n ),\n y: e.y >= t.top && e.y <= t.bottom ? 0 : Math.min(\n Math.abs(e.y - t.top),\n Math.abs(e.y - t.bottom)\n )\n };\n}\nfunction Lt({\n orientation: e,\n rects: t,\n targetRect: n\n}) {\n const o = {\n x: n.x + n.width / 2,\n y: n.y + n.height / 2\n };\n let i, s = Number.MAX_VALUE;\n for (const u of t) {\n const { x: a, y: r } = Je(o, u), l = e === \"horizontal\" ? a : r;\n l < s && (s = l, i = u);\n }\n return C(i, \"No rect found\"), i;\n}\nlet fe;\nfunction Ct() {\n return fe === void 0 && (typeof matchMedia == \"function\" ? fe = !!matchMedia(\"(pointer:coarse)\").matches : fe = !1), fe;\n}\nfunction Ze(e) {\n const { element: t, orientation: n, panels: o, separators: i } = e, s = be(\n n,\n Array.from(t.children).filter(Ye).map((z) => ({ element: z }))\n ).map(({ element: z }) => z), u = [];\n let a = !1, r = !1, l = -1, c = -1, m = 0, p, S = [];\n {\n let z = -1;\n for (const f of s)\n f.hasAttribute(\"data-panel\") && (z++, f.hasAttribute(\"data-disabled\") || (m++, l === -1 && (l = z), c = z));\n }\n if (m > 1) {\n let z = -1;\n for (const f of s)\n if (f.hasAttribute(\"data-panel\")) {\n z++;\n const d = o.find(\n (h) => h.element === f\n );\n if (d) {\n if (p) {\n const h = p.element.getBoundingClientRect(), y = f.getBoundingClientRect();\n let b;\n if (r) {\n const v = n === \"horizontal\" ? new DOMRect(\n h.right,\n h.top,\n 0,\n h.height\n ) : new DOMRect(\n h.left,\n h.bottom,\n h.width,\n 0\n ), g = n === \"horizontal\" ? new DOMRect(y.left, y.top, 0, y.height) : new DOMRect(y.left, y.top, y.width, 0);\n switch (S.length) {\n case 0: {\n b = [\n v,\n g\n ];\n break;\n }\n case 1: {\n const w = S[0], M = Lt({\n orientation: n,\n rects: [h, y],\n targetRect: w.element.getBoundingClientRect()\n });\n b = [\n w,\n M === h ? g : v\n ];\n break;\n }\n default: {\n b = S;\n break;\n }\n }\n } else\n S.length ? b = S : b = [\n n === \"horizontal\" ? new DOMRect(\n h.right,\n y.top,\n y.left - h.right,\n y.height\n ) : new DOMRect(\n y.left,\n h.bottom,\n y.width,\n y.top - h.bottom\n )\n ];\n for (const v of b) {\n let g = \"width\" in v ? v : v.element.getBoundingClientRect();\n const w = Ct() ? e.resizeTargetMinimumSize.coarse : e.resizeTargetMinimumSize.fine;\n if (g.width < w) {\n const L = w - g.width;\n g = new DOMRect(\n g.x - L / 2,\n g.y,\n g.width + L,\n g.height\n );\n }\n if (g.height < w) {\n const L = w - g.height;\n g = new DOMRect(\n g.x,\n g.y - L / 2,\n g.width,\n g.height + L\n );\n }\n const M = z <= l || z > c;\n !a && !M && u.push({\n group: e,\n groupSize: ne({ group: e }),\n panels: [p, d],\n separator: \"width\" in v ? void 0 : v,\n rect: g\n }), a = !1;\n }\n }\n r = !1, p = d, S = [];\n }\n } else if (f.hasAttribute(\"data-separator\")) {\n f.ariaDisabled !== null && (a = !0);\n const d = i.find(\n (h) => h.element === f\n );\n d ? S.push(d) : (p = void 0, S = []);\n } else\n r = !0;\n }\n return u;\n}\nclass Qe {\n #e = {};\n addListener(t, n) {\n const o = this.#e[t];\n return o === void 0 ? this.#e[t] = [n] : o.includes(n) || o.push(n), () => {\n this.removeListener(t, n);\n };\n }\n emit(t, n) {\n const o = this.#e[t];\n if (o !== void 0)\n if (o.length === 1)\n o[0].call(null, n);\n else {\n let i = !1, s = null;\n const u = Array.from(o);\n for (let a = 0; a < u.length; a++) {\n const r = u[a];\n try {\n r.call(null, n);\n } catch (l) {\n s === null && (i = !0, s = l);\n }\n }\n if (i)\n throw s;\n }\n }\n removeAllListeners() {\n this.#e = {};\n }\n removeListener(t, n) {\n const o = this.#e[t];\n if (o !== void 0) {\n const i = o.indexOf(n);\n i >= 0 && o.splice(i, 1);\n }\n }\n}\nlet ee = {\n cursorFlags: 0,\n state: \"inactive\"\n};\nconst ze = new Qe();\nfunction B() {\n return ee;\n}\nfunction Rt(e) {\n return ze.addListener(\"change\", e);\n}\nfunction Mt(e) {\n const t = ee, n = { ...ee };\n n.cursorFlags = e, ee = n, ze.emit(\"change\", {\n prev: t,\n next: n\n });\n}\nfunction te(e) {\n const t = ee;\n ee = e, ze.emit(\"change\", {\n prev: t,\n next: e\n });\n}\nconst Et = (e) => e, ye = () => {\n}, et = 1, tt = 2, nt = 4, ot = 8, Ie = 3, ke = 12;\nlet de;\nfunction De() {\n return de === void 0 && (de = !1, typeof window < \"u\" && (window.navigator.userAgent.includes(\"Chrome\") || window.navigator.userAgent.includes(\"Firefox\")) && (de = !0)), de;\n}\nfunction It({\n cursorFlags: e,\n groups: t,\n state: n\n}) {\n let o = 0, i = 0;\n switch (n) {\n case \"active\":\n case \"hover\":\n t.forEach((s) => {\n if (!s.mutableState.disableCursor)\n switch (s.orientation) {\n case \"horizontal\": {\n o++;\n break;\n }\n case \"vertical\": {\n i++;\n break;\n }\n }\n });\n }\n if (!(o === 0 && i === 0)) {\n switch (n) {\n case \"active\": {\n if (e && De()) {\n const s = (e & et) !== 0, u = (e & tt) !== 0, a = (e & nt) !== 0, r = (e & ot) !== 0;\n if (s)\n return a ? \"se-resize\" : r ? \"ne-resize\" : \"e-resize\";\n if (u)\n return a ? \"sw-resize\" : r ? \"nw-resize\" : \"w-resize\";\n if (a)\n return \"s-resize\";\n if (r)\n return \"n-resize\";\n }\n break;\n }\n }\n return De() ? o > 0 && i > 0 ? \"move\" : o > 0 ? \"ew-resize\" : \"ns-resize\" : o > 0 && i > 0 ? \"grab\" : o > 0 ? \"col-resize\" : \"row-resize\";\n }\n}\nconst Te = /* @__PURE__ */ new WeakMap();\nfunction xe(e) {\n if (e.defaultView === null || e.defaultView === void 0)\n return;\n let { prevStyle: t, styleSheet: n } = Te.get(e) ?? {};\n n === void 0 && (n = new e.defaultView.CSSStyleSheet(), e.adoptedStyleSheets && (Object.isExtensible(e.adoptedStyleSheets) ? e.adoptedStyleSheets.push(n) : e.adoptedStyleSheets = [\n ...e.adoptedStyleSheets,\n n\n ]));\n const o = B();\n switch (o.state) {\n case \"active\":\n case \"hover\": {\n const i = It({\n cursorFlags: o.cursorFlags,\n groups: o.hitRegions.map((u) => u.group),\n state: o.state\n }), s = `*, *:hover {cursor: ${i} !important; }`;\n if (t === s)\n return;\n t = s, i ? n.cssRules.length === 0 ? n.insertRule(s) : n.replaceSync(s) : n.cssRules.length === 1 && n.deleteRule(0);\n break;\n }\n case \"inactive\": {\n t = void 0, n.cssRules.length === 1 && n.deleteRule(0);\n break;\n }\n }\n Te.set(e, {\n prevStyle: t,\n styleSheet: n\n });\n}\nlet F = /* @__PURE__ */ new Map();\nconst it = new Qe();\nfunction kt(e) {\n F = new Map(F), F.delete(e);\n}\nfunction Oe(e, t) {\n for (const [n] of F)\n if (n.id === e)\n return n;\n}\nfunction H(e, t) {\n for (const [n, o] of F)\n if (n.id === e)\n return o;\n if (t)\n throw Error(`Could not find data for Group with id ${e}`);\n}\nfunction X() {\n return F;\n}\nfunction Pe(e, t) {\n return it.addListener(\"groupChange\", (n) => {\n n.group.id === e && t(n);\n });\n}\nfunction j(e, t, n) {\n const o = F.get(e);\n F = new Map(F), F.set(e, t), it.emit(\"groupChange\", {\n group: e,\n isUserInteraction: n?.isUserInteraction === !0,\n prev: o,\n next: t\n });\n}\nfunction rt(e) {\n const t = B();\n let n = !1;\n switch (t.state) {\n case \"active\":\n te({\n cursorFlags: 0,\n state: \"inactive\"\n }), t.hitRegions.length > 0 && (xe(e), n = !0, t.hitRegions.forEach((o) => {\n const i = H(o.group.id, !0);\n j(o.group, i, {\n isUserInteraction: !0\n });\n }));\n }\n return n;\n}\nfunction Ge(e) {\n e.defaultPrevented || rt(e.currentTarget);\n}\nfunction Dt(e, t, n) {\n let o, i = {\n x: 1 / 0,\n y: 1 / 0\n };\n for (const s of t) {\n const u = Je(n, s.rect);\n switch (e) {\n case \"horizontal\": {\n u.x <= i.x && (o = s, i = u);\n break;\n }\n case \"vertical\": {\n u.y <= i.y && (o = s, i = u);\n break;\n }\n }\n }\n return o ? {\n distance: i,\n hitRegion: o\n } : void 0;\n}\nfunction Tt(e) {\n return e !== null && typeof e == \"object\" && \"nodeType\" in e && e.nodeType === Node.DOCUMENT_FRAGMENT_NODE;\n}\nfunction Ot(e, t) {\n if (e === t) throw new Error(\"Cannot compare node with itself\");\n const n = {\n a: Ne(e),\n b: Ne(t)\n };\n let o;\n for (; n.a.at(-1) === n.b.at(-1); )\n o = n.a.pop(), n.b.pop();\n C(\n o,\n \"Stacking order can only be calculated for elements with a common ancestor\"\n );\n const i = {\n a: Fe(Ae(n.a)),\n b: Fe(Ae(n.b))\n };\n if (i.a === i.b) {\n const s = o.childNodes, u = {\n a: n.a.at(-1),\n b: n.b.at(-1)\n };\n let a = s.length;\n for (; a--; ) {\n const r = s[a];\n if (r === u.a) return 1;\n if (r === u.b) return -1;\n }\n }\n return Math.sign(i.a - i.b);\n}\nconst Gt = /\\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\\b/;\nfunction At(e) {\n const t = getComputedStyle(st(e) ?? e).display;\n return t === \"flex\" || t === \"inline-flex\";\n}\nfunction Ft(e) {\n const t = getComputedStyle(e);\n return !!(t.position === \"fixed\" || t.zIndex !== \"auto\" && (t.position !== \"static\" || At(e)) || +t.opacity < 1 || \"transform\" in t && t.transform !== \"none\" || \"webkitTransform\" in t && t.webkitTransform !== \"none\" || \"mixBlendMode\" in t && t.mixBlendMode !== \"normal\" || \"filter\" in t && t.filter !== \"none\" || \"webkitFilter\" in t && t.webkitFilter !== \"none\" || \"isolation\" in t && t.isolation === \"isolate\" || Gt.test(t.willChange) || t.webkitOverflowScrolling === \"touch\");\n}\nfunction Ae(e) {\n let t = e.length;\n for (; t--; ) {\n const n = e[t];\n if (C(n, \"Missing node\"), Ft(n)) return n;\n }\n return null;\n}\nfunction Fe(e) {\n return e && Number(getComputedStyle(e).zIndex) || 0;\n}\nfunction Ne(e) {\n const t = [];\n for (; e; )\n t.push(e), e = st(e);\n return t;\n}\nfunction st(e) {\n const { parentNode: t } = e;\n return Tt(t) ? t.host : t;\n}\nfunction Nt(e, t) {\n return e.x < t.x + t.width && e.x + e.width > t.x && e.y < t.y + t.height && e.y + e.height > t.y;\n}\nfunction _t({\n groupElement: e,\n hitRegion: t,\n pointerEventTarget: n\n}) {\n if (!Ye(n) || n.contains(e) || e.contains(n))\n return !0;\n if (Ot(n, e) > 0) {\n let o = n;\n for (; o; ) {\n if (o.contains(e))\n return !0;\n if (Nt(o.getBoundingClientRect(), t))\n return !1;\n o = o.parentElement;\n }\n }\n return !0;\n}\nfunction we(e, t) {\n const n = [];\n return t.forEach((o, i) => {\n if (i.disabled)\n return;\n const s = Ze(i), u = Dt(i.orientation, s, {\n x: e.clientX,\n y: e.clientY\n });\n u && u.distance.x <= 0 && u.distance.y <= 0 && _t({\n groupElement: i.element,\n hitRegion: u.hitRegion.rect,\n pointerEventTarget: e.target\n }) && n.push(u.hitRegion);\n }), n;\n}\nfunction $t(e, t) {\n if (e.length !== t.length)\n return !1;\n for (let n = 0; n < e.length; n++)\n if (e[n] != t[n])\n return !1;\n return !0;\n}\nfunction k(e, t, n = 0) {\n return Math.abs(T(e) - T(t)) <= n;\n}\nfunction A(e, t) {\n return k(e, t) ? 0 : e > t ? 1 : -1;\n}\nfunction Z({\n overrideDisabledPanels: e,\n panelConstraints: t,\n prevSize: n,\n size: o\n}) {\n const {\n collapsedSize: i = 0,\n collapsible: s,\n disabled: u,\n maxSize: a = 100,\n minSize: r = 0\n } = t;\n if (u && !e)\n return n;\n if (A(o, r) < 0)\n if (s) {\n const l = (i + r) / 2;\n A(o, l) < 0 ? o = i : o = r;\n } else\n o = r;\n return o = Math.min(a, o), o = T(o), o;\n}\nfunction le({\n delta: e,\n initialLayout: t,\n panelConstraints: n,\n pivotIndices: o,\n prevLayout: i,\n trigger: s\n}) {\n if (k(e, 0))\n return t;\n const u = s === \"imperative-api\", a = Object.values(t), r = Object.values(i), l = [...a], [c, m] = o;\n C(c != null, \"Invalid first pivot index\"), C(m != null, \"Invalid second pivot index\");\n let p = 0;\n switch (s) {\n case \"keyboard\": {\n {\n const f = e < 0 ? m : c, d = n[f];\n C(\n d,\n `Panel constraints not found for index ${f}`\n );\n const {\n collapsedSize: h = 0,\n collapsible: y,\n minSize: b = 0\n } = d;\n if (y) {\n const v = a[f];\n if (C(\n v != null,\n `Previous layout not found for panel index ${f}`\n ), k(v, h)) {\n const g = b - v;\n A(g, Math.abs(e)) > 0 && (e = e < 0 ? 0 - g : g);\n }\n }\n }\n {\n const f = e < 0 ? c : m, d = n[f];\n C(\n d,\n `No panel constraints found for index ${f}`\n );\n const {\n collapsedSize: h = 0,\n collapsible: y,\n minSize: b = 0\n } = d;\n if (y) {\n const v = a[f];\n if (C(\n v != null,\n `Previous layout not found for panel index ${f}`\n ), k(v, b)) {\n const g = v - h;\n A(g, Math.abs(e)) > 0 && (e = e < 0 ? 0 - g : g);\n }\n }\n }\n break;\n }\n default: {\n const f = e < 0 ? m : c, d = n[f];\n C(\n d,\n `Panel constraints not found for index ${f}`\n );\n const h = a[f], { collapsible: y, collapsedSize: b, minSize: v } = d;\n if (y && A(h, v) < 0)\n if (e > 0) {\n const g = v - b, w = g / 2, M = h + e;\n A(M, v) < 0 && (e = A(e, w) <= 0 ? 0 : g);\n } else {\n const g = v - b, w = 100 - g / 2, M = h - e;\n A(M, v) < 0 && (e = A(100 + e, w) > 0 ? 0 : -g);\n }\n break;\n }\n }\n {\n const f = e < 0 ? 1 : -1;\n let d = e < 0 ? m : c, h = 0;\n for (; ; ) {\n const b = a[d];\n C(\n b != null,\n `Previous layout not found for panel index ${d}`\n );\n const g = Z({\n overrideDisabledPanels: u,\n panelConstraints: n[d],\n prevSize: b,\n size: 100\n }) - b;\n if (h += g, d += f, d < 0 || d >= n.length)\n break;\n }\n const y = Math.min(Math.abs(e), Math.abs(h));\n e = e < 0 ? 0 - y : y;\n }\n {\n let d = e < 0 ? c : m;\n for (; d >= 0 && d < n.length; ) {\n const h = Math.abs(e) - Math.abs(p), y = a[d];\n C(\n y != null,\n `Previous layout not found for panel index ${d}`\n );\n const b = y - h, v = Z({\n overrideDisabledPanels: u,\n panelConstraints: n[d],\n prevSize: y,\n size: b\n });\n if (!k(y, v) && (p += y - v, l[d] = v, p.toFixed(3).localeCompare(Math.abs(e).toFixed(3), void 0, {\n numeric: !0\n }) >= 0))\n break;\n e < 0 ? d-- : d++;\n }\n }\n if ($t(r, l))\n return i;\n {\n const f = e < 0 ? m : c, d = a[f];\n C(\n d != null,\n `Previous layout not found for panel index ${f}`\n );\n const h = d + p, y = Z({\n overrideDisabledPanels: u,\n panelConstraints: n[f],\n prevSize: d,\n size: h\n });\n if (l[f] = y, !k(y, h)) {\n let b = h - y, g = e < 0 ? m : c;\n for (; g >= 0 && g < n.length; ) {\n const w = l[g];\n C(\n w != null,\n `Previous layout not found for panel index ${g}`\n );\n const M = w + b, L = Z({\n overrideDisabledPanels: u,\n panelConstraints: n[g],\n prevSize: w,\n size: M\n });\n if (k(w, L) || (b -= L - w, l[g] = L), k(b, 0))\n break;\n e > 0 ? g-- : g++;\n }\n }\n }\n const S = Object.values(l).reduce(\n (f, d) => d + f,\n 0\n );\n if (!k(S, 100, 0.1))\n return i;\n const z = Object.keys(i);\n return l.reduce((f, d, h) => (f[z[h]] = d, f), {});\n}\nfunction W(e, t) {\n if (Object.keys(e).length !== Object.keys(t).length)\n return !1;\n for (const n in e)\n if (t[n] === void 0 || A(e[n], t[n]) !== 0)\n return !1;\n return !0;\n}\nfunction K({\n layout: e,\n panelConstraints: t\n}) {\n const n = Object.values(e), o = [...n], i = o.reduce(\n (a, r) => a + r,\n 0\n );\n if (o.length !== t.length)\n throw Error(\n `Invalid ${t.length} panel layout: ${o.map((a) => `${a}%`).join(\", \")}`\n );\n if (!k(i, 100) && o.length > 0)\n for (let a = 0; a < t.length; a++) {\n const r = o[a];\n C(r != null, `No layout data found for index ${a}`);\n const l = 100 / i * r;\n o[a] = l;\n }\n let s = 0;\n for (let a = 0; a < t.length; a++) {\n const r = n[a];\n C(r != null, `No layout data found for index ${a}`);\n const l = o[a];\n C(l != null, `No layout data found for index ${a}`);\n const c = Z({\n overrideDisabledPanels: !0,\n panelConstraints: t[a],\n prevSize: r,\n size: l\n });\n l != c && (s += l - c, o[a] = c);\n }\n if (!k(s, 0))\n for (let a = 0; a < t.length; a++) {\n const r = o[a];\n C(r != null, `No layout data found for index ${a}`);\n const l = r + s, c = Z({\n overrideDisabledPanels: !0,\n panelConstraints: t[a],\n prevSize: r,\n size: l\n });\n if (r !== c && (s -= c - r, o[a] = c, k(s, 0)))\n break;\n }\n const u = Object.keys(e);\n return o.reduce((a, r, l) => (a[u[l]] = r, a), {});\n}\nfunction at({\n groupId: e,\n panelId: t\n}) {\n const n = () => {\n const r = X();\n for (const [\n l,\n {\n defaultLayoutDeferred: c,\n derivedPanelConstraints: m,\n layout: p,\n groupSize: S,\n separatorToPanels: z\n }\n ] of r)\n if (l.id === e)\n return {\n defaultLayoutDeferred: c,\n derivedPanelConstraints: m,\n group: l,\n groupSize: S,\n layout: p,\n separatorToPanels: z\n };\n throw Error(`Group ${e} not found`);\n }, o = () => {\n const r = n().derivedPanelConstraints.find(\n (l) => l.panelId === t\n );\n if (r !== void 0)\n return r;\n throw Error(`Panel constraints not found for Panel ${t}`);\n }, i = () => {\n const r = n().group.panels.find((l) => l.id === t);\n if (r !== void 0)\n return r;\n throw Error(`Layout not found for Panel ${t}`);\n }, s = () => {\n const r = n().layout[t];\n if (r !== void 0)\n return r;\n throw Error(`Layout not found for Panel ${t}`);\n }, u = ({\n nextSize: r,\n panels: l,\n prevLayout: c,\n derivedPanelConstraints: m\n }) => {\n const p = s(), S = l.findIndex((h) => h.id === t), z = S === 0, f = S === l.length - 1;\n if (f && r < p && (z || l.slice(0, S).every((h, y) => {\n const b = m[y];\n return b?.collapsible && k(b.collapsedSize, c[b.panelId]);\n }))) {\n const h = l.slice(0, S).reduce((y, b) => y + c[b.id], 0);\n return {\n ...c,\n [t]: T(100 - h)\n };\n }\n return le({\n delta: f ? p - r : r - p,\n initialLayout: c,\n panelConstraints: m,\n pivotIndices: f ? [S - 1, S] : [S, S + 1],\n prevLayout: c,\n trigger: \"imperative-api\"\n });\n }, a = (r) => {\n const l = s();\n if (r === l)\n return;\n const {\n defaultLayoutDeferred: c,\n derivedPanelConstraints: m,\n group: p,\n groupSize: S,\n layout: z,\n separatorToPanels: f\n } = n(), d = u({\n nextSize: r,\n panels: p.panels,\n prevLayout: z,\n derivedPanelConstraints: m\n }), h = K({\n layout: d,\n panelConstraints: m\n });\n W(z, h) || j(p, {\n defaultLayoutDeferred: c,\n derivedPanelConstraints: m,\n groupSize: S,\n layout: h,\n separatorToPanels: f\n });\n };\n return {\n collapse: () => {\n const { collapsible: r, collapsedSize: l } = o(), { mutableValues: c } = i(), m = s();\n r && m !== l && (c.expandToSize = m, a(l));\n },\n expand: () => {\n const { collapsible: r, collapsedSize: l, minSize: c } = o(), { mutableValues: m } = i(), p = s();\n if (r && p === l) {\n let S = m.expandToSize ?? c;\n S === 0 && (S = 1), a(S);\n }\n },\n getSize: () => {\n const { group: r } = n(), l = s(), { element: c } = i(), m = r.orientation === \"horizontal\" ? c.offsetWidth : c.offsetHeight;\n return {\n asPercentage: l,\n inPixels: m\n };\n },\n isCollapsed: () => {\n const { collapsible: r, collapsedSize: l } = o(), c = s();\n return r && k(l, c);\n },\n resize: (r) => {\n const { group: l } = n(), { element: c } = i(), m = ne({ group: l }), p = ie({\n groupSize: m,\n panelElement: c,\n styleProp: r\n }), S = T(p / m * 100);\n a(S);\n }\n };\n}\nfunction _e(e) {\n if (e.defaultPrevented)\n return;\n const t = X();\n we(e, t).forEach((o) => {\n if (o.separator && !o.separator.disableDoubleClick) {\n const i = o.panels.find(\n (s) => s.panelConstraints.defaultSize !== void 0\n );\n if (i) {\n const s = i.panelConstraints.defaultSize, u = at({\n groupId: o.group.id,\n panelId: i.id\n });\n u && s !== void 0 && (u.resize(s), e.preventDefault());\n }\n }\n });\n}\nfunction pe(e) {\n const t = X();\n for (const [n] of t)\n if (n.separators.some(\n (o) => o.element === e\n ))\n return n;\n throw Error(\"Could not find parent Group for separator element\");\n}\nfunction lt({\n groupId: e\n}) {\n const t = () => {\n const n = X();\n for (const [o, i] of n)\n if (o.id === e)\n return { group: o, ...i };\n throw Error(`Could not find Group with id \"${e}\"`);\n };\n return {\n getLayout() {\n const { defaultLayoutDeferred: n, layout: o } = t();\n return n ? {} : o;\n },\n setLayout(n) {\n const {\n defaultLayoutDeferred: o,\n derivedPanelConstraints: i,\n group: s,\n groupSize: u,\n layout: a,\n separatorToPanels: r\n } = t(), l = K({\n layout: n,\n panelConstraints: i\n });\n return o ? a : (W(a, l) || j(s, {\n defaultLayoutDeferred: o,\n derivedPanelConstraints: i,\n groupSize: u,\n layout: l,\n separatorToPanels: r\n }), l);\n }\n };\n}\nfunction U(e, t) {\n const n = pe(e), o = H(n.id, !0), i = n.separators.find(\n (m) => m.element === e\n );\n C(i, \"Matching separator not found\");\n const s = o.separatorToPanels.get(i);\n C(s, \"Matching panels not found\");\n const u = s.map((m) => n.panels.indexOf(m)), r = lt({ groupId: n.id }).getLayout(), l = le({\n delta: t,\n initialLayout: r,\n panelConstraints: o.derivedPanelConstraints,\n pivotIndices: u,\n prevLayout: r,\n trigger: \"keyboard\"\n }), c = K({\n layout: l,\n panelConstraints: o.derivedPanelConstraints\n });\n W(r, c) || j(\n n,\n {\n defaultLayoutDeferred: o.defaultLayoutDeferred,\n derivedPanelConstraints: o.derivedPanelConstraints,\n groupSize: o.groupSize,\n layout: c,\n separatorToPanels: o.separatorToPanels\n },\n // Keyboard resizes (arrow keys, Home/End, Enter collapse/expand) originate\n // from a real DOM event on the separator, so they are user interactions\n // just like pointer drags. This function is only reached from\n // onDocumentKeyDown. See #716.\n { isUserInteraction: !0 }\n );\n}\nfunction $e(e) {\n if (e.defaultPrevented)\n return;\n const t = e.currentTarget, n = pe(t);\n if (!n.disabled)\n switch (e.key) {\n case \"ArrowDown\": {\n e.preventDefault(), n.orientation === \"vertical\" && U(t, 5);\n break;\n }\n case \"ArrowLeft\": {\n e.preventDefault(), n.orientation === \"horizontal\" && U(t, -5);\n break;\n }\n case \"ArrowRight\": {\n e.preventDefault(), n.orientation === \"horizontal\" && U(t, 5);\n break;\n }\n case \"ArrowUp\": {\n e.preventDefault(), n.orientation === \"vertical\" && U(t, -5);\n break;\n }\n case \"End\": {\n e.preventDefault(), U(t, 100);\n break;\n }\n case \"Enter\": {\n e.preventDefault();\n const o = pe(t), i = H(o.id, !0), { derivedPanelConstraints: s, layout: u, separatorToPanels: a } = i, r = o.separators.find(\n (p) => p.element === t\n );\n C(r, \"Matching separator not found\");\n const l = a.get(r);\n C(l, \"Matching panels not found\");\n const c = l[0], m = s.find(\n (p) => p.panelId === c.id\n );\n if (C(m, \"Panel metadata not found\"), m.collapsible) {\n const p = u[c.id], S = m.collapsedSize === p ? o.mutableState.expandedPanelSizes[c.id] ?? m.minSize : m.collapsedSize;\n U(t, S - p);\n }\n break;\n }\n case \"F6\": {\n e.preventDefault();\n const i = pe(t).separators.map(\n (r) => r.element\n ), s = Array.from(i).findIndex(\n (r) => r === e.currentTarget\n );\n C(s !== null, \"Index not found\");\n const u = e.shiftKey ? s > 0 ? s - 1 : i.length - 1 : s + 1 < i.length ? s + 1 : 0;\n i[u].focus({\n preventScroll: !0\n });\n break;\n }\n case \"Home\": {\n e.preventDefault(), U(t, -100);\n break;\n }\n }\n}\nfunction je(e) {\n if (e.defaultPrevented)\n return;\n if (e.pointerType === \"mouse\" && e.button > 0)\n return;\n const t = X(), n = we(e, t), o = /* @__PURE__ */ new Map();\n let i = !1;\n n.forEach((s) => {\n s.separator && (i || (i = !0, s.separator.element.focus({\n // @ts-expect-error https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#browser_compatibility\n focusVisible: !1,\n preventScroll: !0\n })));\n const u = t.get(s.group);\n u && o.set(s.group, u.layout);\n }), te({\n cursorFlags: 0,\n hitRegions: n,\n initialLayoutMap: o,\n pointerDownAtPoint: { x: e.clientX, y: e.clientY },\n state: \"active\"\n }), n.length && e.preventDefault();\n}\nfunction ut({\n document: e,\n event: t,\n hitRegions: n,\n initialLayoutMap: o,\n mountedGroups: i,\n pointerDownAtPoint: s,\n prevCursorFlags: u\n}) {\n let a = 0;\n n.forEach((l) => {\n const { group: c, groupSize: m } = l, { orientation: p, panels: S } = c, { disableCursor: z } = c.mutableState;\n let f = 0;\n s ? p === \"horizontal\" ? f = (t.clientX - s.x) / m * 100 : f = (t.clientY - s.y) / m * 100 : p === \"horizontal\" ? f = t.clientX < 0 ? -100 : 100 : f = t.clientY < 0 ? -100 : 100;\n const d = o.get(c), h = i.get(c);\n if (!d || !h)\n return;\n const {\n defaultLayoutDeferred: y,\n derivedPanelConstraints: b,\n groupSize: v,\n layout: g,\n separatorToPanels: w\n } = h;\n if (b && g && w) {\n const M = le({\n delta: f,\n initialLayout: d,\n panelConstraints: b,\n pivotIndices: l.panels.map((L) => S.indexOf(L)),\n prevLayout: g,\n trigger: \"mouse-or-touch\"\n });\n if (W(M, g)) {\n if (f !== 0 && !z)\n switch (p) {\n case \"horizontal\": {\n a |= f < 0 ? et : tt;\n break;\n }\n case \"vertical\": {\n a |= f < 0 ? nt : ot;\n break;\n }\n }\n } else\n j(l.group, {\n defaultLayoutDeferred: y,\n derivedPanelConstraints: b,\n groupSize: v,\n layout: M,\n separatorToPanels: w\n });\n }\n });\n let r = 0;\n t.movementX === 0 ? r |= u & Ie : r |= a & Ie, t.movementY === 0 ? r |= u & ke : r |= a & ke, Mt(r), xe(e);\n}\nfunction He(e) {\n const t = X(), n = B();\n switch (n.state) {\n case \"active\":\n ut({\n document: e.currentTarget,\n event: e,\n hitRegions: n.hitRegions,\n initialLayoutMap: n.initialLayoutMap,\n mountedGroups: t,\n prevCursorFlags: n.cursorFlags\n });\n }\n}\nfunction Ve(e) {\n if (e.defaultPrevented)\n return;\n const t = B(), n = X();\n switch (t.state) {\n case \"active\": {\n if (\n // Skip this check for \"pointerleave\" events, else Firefox triggers a false positive (see #514)\n e.buttons === 0\n ) {\n te({\n cursorFlags: 0,\n state: \"inactive\"\n }), t.hitRegions.forEach((o) => {\n const i = H(o.group.id, !0);\n j(o.group, i, {\n isUserInteraction: !0\n });\n });\n return;\n }\n for (const o of t.hitRegions)\n if (o.separator) {\n const { element: i } = o.separator;\n i.hasPointerCapture?.(e.pointerId) || i.setPointerCapture?.(e.pointerId);\n }\n ut({\n document: e.currentTarget,\n event: e,\n hitRegions: t.hitRegions,\n initialLayoutMap: t.initialLayoutMap,\n mountedGroups: n,\n pointerDownAtPoint: t.pointerDownAtPoint,\n prevCursorFlags: t.cursorFlags\n });\n break;\n }\n default: {\n const o = we(e, n);\n o.length === 0 ? t.state !== \"inactive\" && te({\n cursorFlags: 0,\n state: \"inactive\"\n }) : te({\n cursorFlags: 0,\n hitRegions: o,\n state: \"hover\"\n }), xe(e.currentTarget);\n break;\n }\n }\n}\nfunction Ue(e) {\n if (e.relatedTarget instanceof HTMLIFrameElement)\n switch (B().state) {\n case \"hover\":\n te({\n cursorFlags: 0,\n state: \"inactive\"\n });\n }\n}\nfunction Be(e) {\n if (e.defaultPrevented)\n return;\n if (e.pointerType === \"mouse\" && e.button > 0)\n return;\n rt(e.currentTarget) && e.preventDefault();\n}\nfunction We(e) {\n let t = 0, n = 0;\n const o = {};\n for (const s of e)\n if (s.defaultSize !== void 0) {\n t++;\n const u = T(s.defaultSize);\n n += u, o[s.panelId] = u;\n } else\n o[s.panelId] = void 0;\n const i = e.length - t;\n if (i !== 0) {\n const s = T((100 - n) / i);\n for (const u of e)\n u.defaultSize === void 0 && (o[u.panelId] = s);\n }\n return o;\n}\nfunction jt(e, t, n) {\n if (!n[0])\n return;\n const i = e.panels.find((l) => l.element === t);\n if (!i || !i.onResize)\n return;\n const s = ne({ group: e }), u = e.orientation === \"horizontal\" ? i.element.offsetWidth : i.element.offsetHeight, a = i.mutableValues.prevSize, r = {\n asPercentage: T(u / s * 100),\n inPixels: u\n };\n i.mutableValues.prevSize = r, i.onResize(r, i.id, a);\n}\nfunction Ht(e, t) {\n if (Object.keys(e).length !== Object.keys(t).length)\n return !1;\n for (const o in e)\n if (e[o] !== t[o])\n return !1;\n return !0;\n}\nfunction Vt({\n group: e,\n nextGroupSize: t,\n prevGroupSize: n,\n prevLayout: o\n}) {\n if (n <= 0 || t <= 0 || n === t)\n return o;\n let i = 0, s = 0, u = !1;\n const a = /* @__PURE__ */ new Map(), r = [];\n for (const m of e.panels) {\n const p = o[m.id] ?? 0;\n switch (m.panelConstraints.groupResizeBehavior) {\n case \"preserve-pixel-size\": {\n u = !0;\n const S = p / 100 * n, z = T(\n S / t * 100\n );\n a.set(m.id, z), i += z;\n break;\n }\n case \"preserve-relative-size\":\n default: {\n r.push(m.id), s += p;\n break;\n }\n }\n }\n if (!u || r.length === 0)\n return o;\n const l = 100 - i, c = { ...o };\n if (a.forEach((m, p) => {\n c[p] = m;\n }), s > 0)\n for (const m of r) {\n const p = o[m] ?? 0;\n c[m] = T(\n p / s * l\n );\n }\n else {\n const m = T(\n l / r.length\n );\n for (const p of r)\n c[p] = m;\n }\n return c;\n}\nfunction Ut(e, t) {\n const n = e.map((i) => i.id), o = Object.keys(t);\n if (n.length !== o.length)\n return !1;\n for (const i of n)\n if (!o.includes(i))\n return !1;\n return !0;\n}\nconst J = /* @__PURE__ */ new Map();\nfunction Bt(e) {\n let t = !0;\n C(\n e.element.ownerDocument.defaultView,\n \"Cannot register an unmounted Group\"\n );\n const n = e.element.ownerDocument.defaultView.ResizeObserver, o = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), s = new n((f) => {\n for (const d of f) {\n const { borderBoxSize: h, target: y } = d;\n if (y === e.element) {\n if (t) {\n const b = ne({ group: e });\n if (b === 0)\n return;\n const v = H(e.id);\n if (!v)\n return;\n const g = ve(e), w = v.defaultLayoutDeferred ? We(g) : v.layout, M = Vt({\n group: e,\n nextGroupSize: b,\n prevGroupSize: v.groupSize,\n prevLayout: w\n }), L = K({\n layout: M,\n panelConstraints: g\n });\n if (!v.defaultLayoutDeferred && W(v.layout, L) && Ht(\n v.derivedPanelConstraints,\n g\n ) && v.groupSize === b)\n return;\n j(e, {\n defaultLayoutDeferred: !1,\n derivedPanelConstraints: g,\n groupSize: b,\n layout: L,\n separatorToPanels: v.separatorToPanels\n });\n }\n } else\n jt(e, y, h);\n }\n });\n s.observe(e.element), e.panels.forEach((f) => {\n C(\n !o.has(f.id),\n `Panel ids must be unique; id \"${f.id}\" was used more than once`\n ), o.add(f.id), f.onResize && s.observe(f.element);\n });\n const u = ne({ group: e }), a = ve(e), r = e.panels.map(({ id: f }) => f).join(\",\");\n let l = e.mutableState.defaultLayout;\n l && (Ut(e.panels, l) || (l = void 0));\n const c = e.mutableState.layouts[r] ?? l ?? We(a), m = K({\n layout: c,\n panelConstraints: a\n }), p = e.element.ownerDocument;\n J.set(\n p,\n (J.get(p) ?? 0) + 1\n );\n const S = /* @__PURE__ */ new Map();\n return Ze(e).forEach((f) => {\n f.separator && S.set(f.separator, f.panels);\n }), j(e, {\n defaultLayoutDeferred: u === 0,\n derivedPanelConstraints: a,\n groupSize: u,\n layout: m,\n separatorToPanels: S\n }), e.separators.forEach((f) => {\n C(\n !i.has(f.id),\n `Separator ids must be unique; id \"${f.id}\" was used more than once`\n ), i.add(f.id), f.element.addEventListener(\"keydown\", $e);\n }), J.get(p) === 1 && (p.addEventListener(\"contextmenu\", Ge, !0), p.addEventListener(\"dblclick\", _e, !0), p.addEventListener(\"pointerdown\", je, !0), p.addEventListener(\"pointerleave\", He), p.addEventListener(\"pointermove\", Ve), p.addEventListener(\"pointerout\", Ue), p.addEventListener(\"pointerup\", Be, !0)), function() {\n t = !1, J.set(\n p,\n Math.max(0, (J.get(p) ?? 0) - 1)\n ), kt(e), e.separators.forEach((d) => {\n d.element.removeEventListener(\"keydown\", $e);\n }), J.get(p) || (p.removeEventListener(\n \"contextmenu\",\n Ge,\n !0\n ), p.removeEventListener(\n \"dblclick\",\n _e,\n !0\n ), p.removeEventListener(\n \"pointerdown\",\n je,\n !0\n ), p.removeEventListener(\"pointerleave\", He), p.removeEventListener(\"pointermove\", Ve), p.removeEventListener(\"pointerout\", Ue), p.removeEventListener(\"pointerup\", Be, !0)), s.disconnect();\n };\n}\nfunction Wt() {\n const [e, t] = Q({}), n = re(() => t({}), []);\n return [e, n];\n}\nfunction Le(e) {\n const t = mt();\n return `${e ?? t}`;\n}\nconst q = typeof window < \"u\" ? Ke : me;\nfunction se(e) {\n const t = O(e);\n return q(() => {\n t.current = e;\n }, [e]), re(\n (...n) => t.current?.(...n),\n [t]\n );\n}\nfunction Ce(...e) {\n return se((t) => {\n e.forEach((n) => {\n if (n)\n switch (typeof n) {\n case \"function\": {\n n(t);\n break;\n }\n case \"object\": {\n n.current = t;\n break;\n }\n }\n });\n });\n}\nfunction Re(e) {\n const t = O({ ...e });\n return q(() => {\n for (const n in e)\n t.current[n] = e[n];\n }, [e]), t.current;\n}\nconst ct = gt(null);\nfunction Kt(e, t) {\n const n = O({\n getLayout: () => ({}),\n setLayout: Et\n });\n Xe(t, () => n.current, []), q(() => {\n Object.assign(\n n.current,\n lt({ groupId: e })\n );\n });\n}\nfunction Xt({\n children: e,\n className: t,\n defaultLayout: n,\n disableCursor: o,\n disabled: i,\n elementRef: s,\n groupRef: u,\n id: a,\n onLayoutChange: r,\n onLayoutChanged: l,\n orientation: c = \"horizontal\",\n resizeTargetMinimumSize: m = {\n coarse: 20,\n fine: 10\n },\n style: p,\n ...S\n}) {\n const z = O({\n onLayoutChange: {},\n onLayoutChanged: {}\n }), f = se((x) => {\n W(z.current.onLayoutChange, x) || (z.current.onLayoutChange = x, r?.(x));\n }), d = se(\n (x, P) => {\n W(z.current.onLayoutChanged, x) || (z.current.onLayoutChanged = x, l?.(x, { isUserInteraction: P }));\n }\n ), h = Le(a), y = O(null), [b, v] = Wt(), g = O({\n lastExpandedPanelSizes: {},\n layouts: {},\n panels: [],\n resizeTargetMinimumSize: m,\n separators: []\n }), w = Ce(y, s);\n Kt(h, u);\n const M = se(\n (x, P) => {\n const I = B(), R = Oe(x), E = H(x);\n if (E) {\n let D = !1;\n switch (I.state) {\n case \"active\": {\n D = I.hitRegions.some(\n (V) => V.group === R\n );\n break;\n }\n }\n return {\n flexGrow: E.layout[P] ?? 1,\n pointerEvents: D ? \"none\" : void 0\n };\n }\n if (n?.[P])\n return {\n flexGrow: n?.[P]\n };\n }\n ), L = Re({\n defaultLayout: n,\n disableCursor: o\n }), G = Se(\n () => ({\n get disableCursor() {\n return !!L.disableCursor;\n },\n getPanelStyles: M,\n id: h,\n orientation: c,\n registerPanel: (x) => {\n const P = g.current;\n return P.panels = be(c, [\n ...P.panels,\n x\n ]), v(), () => {\n P.panels = P.panels.filter(\n (I) => I !== x\n ), v();\n };\n },\n registerSeparator: (x) => {\n const P = g.current;\n return P.separators = be(c, [\n ...P.separators,\n x\n ]), v(), () => {\n P.separators = P.separators.filter(\n (I) => I !== x\n ), v();\n };\n },\n updatePanelProps: (x, { disabled: P }) => {\n const R = g.current.panels.find(\n (V) => V.id === x\n );\n R && (R.panelConstraints.disabled = P);\n const E = Oe(h), D = H(h);\n E && D && j(E, {\n ...D,\n derivedPanelConstraints: ve(E)\n });\n },\n updateSeparatorProps: (x, {\n disabled: P,\n disableDoubleClick: I\n }) => {\n const E = g.current.separators.find(\n (D) => D.id === x\n );\n E && (E.disabled = P, E.disableDoubleClick = I);\n }\n }),\n [M, h, v, c, L]\n ), N = O(null);\n return q(() => {\n const x = y.current;\n if (x === null)\n return;\n const P = g.current;\n let I;\n if (L.defaultLayout !== void 0 && Object.keys(L.defaultLayout).length === P.panels.length) {\n I = {};\n for (const _ of P.panels) {\n const Y = L.defaultLayout[_.id];\n Y !== void 0 && (I[_.id] = Y);\n }\n }\n const R = {\n disabled: !!i,\n element: x,\n id: h,\n mutableState: {\n defaultLayout: I,\n disableCursor: !!L.disableCursor,\n expandedPanelSizes: g.current.lastExpandedPanelSizes,\n layouts: g.current.layouts\n },\n orientation: c,\n panels: P.panels,\n resizeTargetMinimumSize: P.resizeTargetMinimumSize,\n separators: P.separators\n };\n N.current = R;\n const E = Bt(R), { defaultLayoutDeferred: D, derivedPanelConstraints: V, layout: ue } = H(R.id, !0);\n !D && V.length > 0 && (f(ue), d(ue, !1));\n const oe = Pe(h, (_) => {\n const { defaultLayoutDeferred: Y, derivedPanelConstraints: Ee, layout: ce } = _.next;\n if (Y || Ee.length === 0)\n return;\n const ft = R.panels.map(({ id: $ }) => $).join(\",\");\n R.mutableState.layouts[ft] = ce, Ee.forEach(($) => {\n if ($.collapsible) {\n const { layout: ge } = _.prev ?? {};\n if (ge) {\n const pt = k(\n $.collapsedSize,\n ce[$.panelId]\n ), ht = k(\n $.collapsedSize,\n ge[$.panelId]\n );\n pt && !ht && (R.mutableState.expandedPanelSizes[$.panelId] = ge[$.panelId]);\n }\n }\n });\n const dt = B().state !== \"active\";\n f(ce), dt && d(ce, _.isUserInteraction);\n });\n return () => {\n N.current = null, E(), oe();\n };\n }, [\n i,\n h,\n d,\n f,\n c,\n b,\n L\n ]), me(() => {\n const x = N.current;\n x && (x.mutableState.defaultLayout = n, x.mutableState.disableCursor = !!o);\n }), /* @__PURE__ */ ae(ct.Provider, { value: G, children: /* @__PURE__ */ ae(\n \"div\",\n {\n ...S,\n className: t,\n \"data-group\": !0,\n \"data-testid\": h,\n id: h,\n ref: w,\n style: {\n height: \"100%\",\n width: \"100%\",\n overflow: \"hidden\",\n ...p,\n display: \"flex\",\n flexDirection: c === \"horizontal\" ? \"row\" : \"column\",\n flexWrap: \"nowrap\",\n // Inform the browser that the library is handling touch events for this element\n // but still allow users to scroll content within panels in the non-resizing direction\n // NOTE This is not an inherited style\n // See github.com/bvaughn/react-resizable-panels/issues/662\n touchAction: c === \"horizontal\" ? \"pan-y\" : \"pan-x\"\n },\n children: e\n }\n ) });\n}\nXt.displayName = \"Group\";\nfunction he(e, t) {\n return `react-resizable-panels:${[e, ...t].join(\":\")}`;\n}\nfunction qt({\n id: e,\n panelIds: t,\n storage: n\n}) {\n const o = he(e, []), i = n.getItem(o);\n if (i)\n try {\n const s = JSON.parse(i);\n if (t) {\n const u = t.join(\",\"), a = s[u];\n if (a && Array.isArray(a.layout) && t.length === a.layout.length) {\n const r = {};\n for (let l = 0; l < t.length; l++)\n r[t[l]] = a.layout[l];\n return r;\n }\n } else {\n const u = Object.keys(s);\n if (u.length === 1) {\n const a = s[u[0]];\n if (a && Array.isArray(a.layout)) {\n const r = u[0].split(\",\");\n if (r.length === a.layout.length) {\n const l = {};\n for (let c = 0; c < r.length; c++)\n l[r[c]] = a.layout[c];\n return l;\n }\n }\n }\n }\n } catch {\n }\n}\nfunction sn({\n debounceSaveMs: e = 100,\n onlySaveAfterUserInteractions: t,\n panelIds: n,\n storage: o = localStorage,\n ...i\n}) {\n const s = n !== void 0, u = \"id\" in i ? i.id : i.groupId, a = he(u, n ?? []), r = qe(\n Yt,\n () => o.getItem(a),\n () => o.getItem(a)\n ), l = Se(() => {\n if (r) {\n const d = JSON.parse(r), h = Object.values(d);\n if (Array.from(h).every((y) => typeof y == \"number\"))\n return d;\n }\n }, [r]), c = Se(() => {\n if (!l)\n return qt({\n id: u,\n panelIds: n,\n storage: o\n });\n }, [l, u, n, o]), m = l ?? c, p = O(null), S = re(() => {\n const d = p.current;\n d && (p.current = null, clearTimeout(d));\n }, []);\n Ke(() => () => {\n S();\n }, [S]);\n const z = re(\n // The hook persists every layout commit -- including library-driven ones --\n // because it owns its own storage and the goal is to remember whatever\n // layout the user is currently looking at. Consumers that only want to\n // persist on user interaction should branch on `isUserInteraction` in\n // their own callback (see #716) rather than via this hook.\n (d, h) => {\n if (t && !h.isUserInteraction)\n return;\n S();\n let y;\n s ? y = he(u, Object.keys(d)) : y = he(u, []);\n try {\n o.setItem(y, JSON.stringify(d));\n } catch (b) {\n console.error(b);\n }\n },\n [\n S,\n s,\n u,\n t,\n o\n ]\n ), f = re(\n (d) => {\n S(), e === 0 ? z(d, { isUserInteraction: !1 }) : p.current = setTimeout(() => {\n z(d, { isUserInteraction: !1 });\n }, e);\n },\n [S, e, z]\n );\n return {\n /**\n * Pass this value to `Group` as the `defaultLayout` prop.\n */\n defaultLayout: m,\n /**\n * Attach this callback on the `Group` as the `onLayoutChange` prop.\n *\n * @deprecated Use the {@link onLayoutChanged} prop instead.\n */\n onLayoutChange: f,\n /**\n * Attach this callback on the `Group` as the `onLayoutChanged` prop.\n */\n onLayoutChanged: z\n };\n}\nfunction Yt() {\n return function() {\n };\n}\nfunction an() {\n return Q(null);\n}\nfunction ln() {\n return O(null);\n}\nfunction Me() {\n const e = yt(ct);\n return C(\n e,\n \"Group Context not found; did you render a Panel or Separator outside of a Group?\"\n ), e;\n}\nfunction Jt(e, t) {\n const { id: n } = Me(), o = O({\n collapse: ye,\n expand: ye,\n getSize: () => ({\n asPercentage: 0,\n inPixels: 0\n }),\n isCollapsed: () => !1,\n resize: ye\n });\n Xe(t, () => o.current, []), q(() => {\n Object.assign(\n o.current,\n at({ groupId: n, panelId: e })\n );\n });\n}\nfunction Zt({\n children: e,\n className: t,\n collapsedSize: n = \"0%\",\n collapsible: o = !1,\n defaultSize: i,\n disabled: s,\n elementRef: u,\n groupResizeBehavior: a = \"preserve-relative-size\",\n id: r,\n maxSize: l = \"100%\",\n minSize: c = \"0%\",\n onResize: m,\n panelRef: p,\n style: S,\n ...z\n}) {\n const f = !!r, d = Le(r), h = Re({\n disabled: s\n }), y = O(null), b = Ce(y, u), {\n getPanelStyles: v,\n id: g,\n orientation: w,\n registerPanel: M,\n updatePanelProps: L\n } = Me(), G = m !== null, N = se(\n (R, E, D) => {\n m?.(R, r, D);\n }\n );\n q(() => {\n const R = y.current;\n if (R !== null) {\n const E = {\n element: R,\n id: d,\n idIsStable: f,\n mutableValues: {\n expandToSize: void 0,\n prevSize: void 0\n },\n onResize: G ? N : void 0,\n panelConstraints: {\n groupResizeBehavior: a,\n collapsedSize: n,\n collapsible: o,\n defaultSize: i,\n disabled: h.disabled,\n maxSize: l,\n minSize: c\n }\n };\n return M(E);\n }\n }, [\n a,\n n,\n o,\n i,\n G,\n d,\n f,\n l,\n c,\n N,\n M,\n h\n ]), me(() => {\n L(d, { disabled: s });\n }, [s, d, L]), Jt(d, p);\n const x = () => {\n const R = v(g, d);\n if (R)\n return JSON.stringify(R);\n }, P = qe(\n (R) => Pe(g, R),\n x,\n x\n );\n let I;\n return P ? I = JSON.parse(P) : i !== void 0 ? I = {\n flexGrow: void 0,\n flexShrink: void 0,\n flexBasis: i\n } : I = { flexGrow: 1 }, /* @__PURE__ */ ae(\n \"div\",\n {\n ...z,\n \"data-disabled\": s || void 0,\n \"data-panel\": !0,\n \"data-testid\": d,\n id: d,\n ref: b,\n style: {\n ...Qt,\n display: \"flex\",\n flexBasis: 0,\n flexShrink: 1,\n overflow: \"visible\",\n ...I\n },\n children: /* @__PURE__ */ ae(\n \"div\",\n {\n className: t,\n style: {\n maxHeight: \"100%\",\n maxWidth: \"100%\",\n flexGrow: 1,\n overflow: \"auto\",\n ...S,\n // Inform the browser that the library is handling touch events for this element\n // but still allow users to scroll content within panels in the non-resizing direction\n // NOTE This is not an inherited style\n // See github.com/bvaughn/react-resizable-panels/issues/662\n touchAction: w === \"horizontal\" ? \"pan-y\" : \"pan-x\"\n },\n children: e\n }\n )\n }\n );\n}\nZt.displayName = \"Panel\";\nconst Qt = {\n minHeight: 0,\n maxHeight: \"100%\",\n height: \"auto\",\n minWidth: 0,\n maxWidth: \"100%\",\n width: \"auto\",\n border: \"none\",\n borderWidth: 0,\n padding: 0,\n margin: 0\n};\nfunction un() {\n return Q(null);\n}\nfunction cn() {\n return O(null);\n}\nfunction en({\n layout: e,\n panelConstraints: t,\n panelId: n,\n panelIndex: o\n}) {\n let i, s;\n const u = e[n], a = t.find(\n (r) => r.panelId === n\n );\n if (a) {\n const r = a.maxSize, l = a.collapsible ? a.collapsedSize : a.minSize, c = [o, o + 1];\n s = K({\n layout: le({\n delta: l - u,\n initialLayout: e,\n panelConstraints: t,\n pivotIndices: c,\n prevLayout: e\n }),\n panelConstraints: t\n })[n], i = K({\n layout: le({\n delta: r - u,\n initialLayout: e,\n panelConstraints: t,\n pivotIndices: c,\n prevLayout: e\n }),\n panelConstraints: t\n })[n];\n }\n return {\n valueControls: n,\n valueMax: i,\n valueMin: s,\n valueNow: u\n };\n}\nfunction tn({\n children: e,\n className: t,\n disabled: n,\n disableDoubleClick: o,\n elementRef: i,\n id: s,\n style: u,\n ...a\n}) {\n const r = Le(s), l = Re({\n disabled: n,\n disableDoubleClick: o\n }), [c, m] = Q({}), [p, S] = Q(\"inactive\"), [z, f] = Q(!1), d = O(null), h = Ce(d, i), {\n disableCursor: y,\n id: b,\n orientation: v,\n registerSeparator: g,\n updateSeparatorProps: w\n } = Me(), M = v === \"horizontal\" ? \"vertical\" : \"horizontal\";\n q(() => {\n const N = d.current;\n if (N !== null) {\n const x = {\n disabled: l.disabled,\n disableDoubleClick: l.disableDoubleClick,\n element: N,\n id: r\n }, P = g(x), I = Rt(\n (E) => {\n S(\n E.next.state !== \"inactive\" && E.next.hitRegions.some(\n (D) => D.separator === x\n ) ? E.next.state : \"inactive\"\n );\n }\n ), R = Pe(\n b,\n (E) => {\n const { derivedPanelConstraints: D, layout: V, separatorToPanels: ue } = E.next, oe = ue.get(x);\n if (oe) {\n const _ = oe[0], Y = oe.indexOf(_);\n m(\n en({\n layout: V,\n panelConstraints: D,\n panelId: _.id,\n panelIndex: Y\n })\n );\n }\n }\n );\n return () => {\n I(), R(), P();\n };\n }\n }, [b, r, g, l]), me(() => {\n w(r, { disabled: n, disableDoubleClick: o });\n }, [n, o, r, w]);\n let L;\n n && !y && (L = \"not-allowed\");\n let G;\n if (n)\n G = \"disabled\";\n else\n switch (p) {\n case \"active\": {\n G = \"active\";\n break;\n }\n default:\n z ? G = \"focus\" : G = p;\n }\n return /* @__PURE__ */ ae(\n \"div\",\n {\n ...a,\n \"aria-controls\": c.valueControls,\n \"aria-disabled\": n || void 0,\n \"aria-orientation\": M,\n \"aria-valuemax\": c.valueMax,\n \"aria-valuemin\": c.valueMin,\n \"aria-valuenow\": c.valueNow,\n children: e,\n className: t,\n \"data-separator\": G,\n \"data-testid\": r,\n id: r,\n onBlur: () => f(!1),\n onFocus: () => f(!0),\n ref: h,\n role: \"separator\",\n style: {\n flexBasis: \"auto\",\n cursor: L,\n ...u,\n flexGrow: 0,\n flexShrink: 0,\n // Inform the browser that the library is handling touch events for this element\n // See github.com/bvaughn/react-resizable-panels/issues/662\n touchAction: \"none\"\n },\n tabIndex: n ? void 0 : 0\n }\n );\n}\ntn.displayName = \"Separator\";\nexport {\n Xt as Group,\n Zt as Panel,\n tn as Separator,\n Ct as isCoarsePointer,\n sn as useDefaultLayout,\n an as useGroupCallbackRef,\n ln as useGroupRef,\n un as usePanelCallbackRef,\n cn as usePanelRef\n};\n//# sourceMappingURL=react-resizable-panels.js.map\n","'use client';\n\nimport { ChevronsLeftRight } from 'lucide-react';\nimport type * as React from 'react';\nimport * as ResizablePrimitive from 'react-resizable-panels';\n\nimport { cn } from '@/lib/utils';\n\nfunction ResizablePanelGroup({\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.Group>) {\n return (\n <ResizablePrimitive.Group\n data-slot=\"resizable-panel-group\"\n className={cn(\n 'flex h-full w-full data-[panel-group-direction=vertical]:flex-col',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ResizablePanel({\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.Panel>) {\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />;\n}\n\nfunction ResizableHandle({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.Separator> & {\n withHandle?: boolean;\n}) {\n return (\n <ResizablePrimitive.Separator\n data-slot=\"resizable-handle\"\n aria-label=\"Resize panels\"\n className={cn(\n 'bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden motion-reduce:after:transition-none data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90 hover:bg-border/80 transition-colors motion-reduce:transition-none',\n className,\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex shrink-0 items-center justify-center rounded-3xl border border-border bg-muted px-0.5 py-5 transition-all motion-reduce:transition-none hover:bg-accent hover:border-accent-foreground/20\">\n <ChevronsLeftRight\n size={20}\n className=\"text-secondary-foreground transition-colors motion-reduce:transition-none hover:text-accent-foreground\"\n />\n </div>\n )}\n </ResizablePrimitive.Separator>\n );\n}\n\nResizablePanelGroup.displayName = 'ResizablePanelGroup';\nResizablePanel.displayName = 'ResizablePanel';\nResizableHandle.displayName = 'ResizableHandle';\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup };\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * AppShell provides a customizable background wrapper for connected sidebar layouts.\n * It sets a fixed height and allows any CSS background value (gradient, solid color, image).\n *\n * Responsive padding is handled via CSS media queries (no JS hydration flash).\n * Mobile padding applies below 768px, desktop padding at 768px and above.\n */\nconst AppShell = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n /** Any CSS background value (color, gradient, image). Defaults to var(--app-background). */\n background?: string;\n /** Fixed height, supports CSS calc(). Defaults to '100vh'. */\n height?: string;\n /** Spacing around the inner content in pixels or CSS value. Defaults to token --app-shell-padding (16px). Applied at md breakpoint and above. */\n padding?: number | string;\n /** Padding on mobile viewports (<768px). Defaults to 8px. */\n mobilePadding?: number | string;\n /** Gap between panels in pixels or CSS value. Sets --app-shell-gap CSS variable. */\n gap?: number | string;\n /** When true, panels are visually connected (joined edges, no border-radius between them). */\n connected?: boolean;\n }\n>(\n (\n {\n background,\n height,\n padding,\n mobilePadding,\n gap,\n connected,\n className,\n style,\n children,\n ...props\n },\n ref,\n ) => {\n // Build style object, only setting vars when props are explicitly provided\n const cssVars: Record<string, string | undefined> = {};\n if (background !== undefined) {\n cssVars['--app-shell-background'] = background;\n }\n if (height !== undefined) {\n cssVars['--app-shell-height'] = height;\n }\n if (padding !== undefined) {\n cssVars['--app-shell-padding'] =\n typeof padding === 'number' ? `${padding}px` : padding;\n }\n if (mobilePadding !== undefined) {\n cssVars['--app-shell-mobile-padding'] =\n typeof mobilePadding === 'number'\n ? `${mobilePadding}px`\n : mobilePadding;\n }\n if (gap !== undefined) {\n cssVars['--app-shell-gap'] = typeof gap === 'number' ? `${gap}px` : gap;\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"app-shell\"\n data-connected={connected ? 'true' : undefined}\n style={{ ...cssVars, ...style } as React.CSSProperties}\n className={cn(\n 'flex h-[var(--app-shell-height,100dvh)] w-full',\n 'gap-[var(--app-shell-gap,0px)]',\n // Responsive padding via CSS: mobile-first, then desktop override at md breakpoint\n 'p-[var(--app-shell-mobile-padding,0.5rem)] md:p-[var(--app-shell-padding,1rem)]',\n 'bg-app-shell',\n 'transition-[gap] duration-300 ease-[cubic-bezier(0.16,1,0.3,1)] motion-reduce:transition-none',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nAppShell.displayName = 'AppShell';\n\nexport { AppShell };\n","'use client';\n\nimport { Menu } from 'lucide-react';\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface MobileTabBarPanel {\n key?: React.Key;\n label?: string;\n}\n\nexport interface AppShellMobileTabBarProps {\n panels: MobileTabBarPanel[];\n activeIndex: number;\n onActiveChange: (index: number) => void;\n onSidebarOpen?: () => void;\n /** Base ID for generating ARIA tab/panel IDs */\n baseId?: string;\n}\n\nfunction getMobileTabKey(\n panel: MobileTabBarPanel,\n fallbackLabel: string,\n): React.Key {\n return panel.key ?? panel.label ?? fallbackLabel;\n}\n\n/**\n * Internal mobile tab bar for switching between panels on small viewports.\n * Implements the ARIA Tabs pattern with roving tabIndex and arrow key navigation.\n * Renders only when there are 2+ panels.\n */\nfunction AppShellMobileTabBar({\n panels,\n activeIndex,\n onActiveChange,\n onSidebarOpen,\n baseId,\n}: AppShellMobileTabBarProps) {\n const tabListRef = React.useRef<HTMLDivElement>(null);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n let nextIndex: number | null = null;\n\n switch (e.key) {\n case 'ArrowRight':\n nextIndex = (activeIndex + 1) % panels.length;\n break;\n case 'ArrowLeft':\n nextIndex = (activeIndex - 1 + panels.length) % panels.length;\n break;\n case 'Home':\n nextIndex = 0;\n break;\n case 'End':\n nextIndex = panels.length - 1;\n break;\n default:\n return;\n }\n\n e.preventDefault();\n onActiveChange(nextIndex);\n\n // Move focus to the newly active tab\n const tabList = tabListRef.current;\n if (tabList) {\n const buttons =\n tabList.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]');\n buttons[nextIndex]?.focus();\n }\n },\n [activeIndex, panels.length, onActiveChange],\n );\n\n // Sliding pill indicator — measure active tab position\n const [indicator, setIndicator] = React.useState<{\n left: number;\n width: number;\n } | null>(null);\n\n React.useEffect(() => {\n const tabList = tabListRef.current;\n if (!tabList || panels.length <= 1) return;\n const buttons = tabList.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]');\n const activeBtn = buttons[activeIndex];\n if (!activeBtn) return;\n const left = activeBtn.offsetLeft;\n const width = activeBtn.offsetWidth;\n setIndicator((prev) =>\n prev && prev.left === left && prev.width === width\n ? prev\n : { left, width },\n );\n }, [activeIndex, panels.length]);\n\n const sidebarTrigger = onSidebarOpen ? (\n <button\n type=\"button\"\n onClick={onSidebarOpen}\n className={cn(\n 'flex min-h-11 min-w-11 items-center justify-center rounded-lg',\n 'text-secondary-foreground hover:bg-accent',\n 'active:scale-[0.95]',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n 'transition-colors motion-reduce:transition-none',\n )}\n aria-label=\"Open sidebar\"\n >\n <Menu className=\"size-5\" />\n </button>\n ) : null;\n\n if (panels.length <= 1) {\n return sidebarTrigger ? (\n <div\n data-slot=\"app-shell-mobile-tab-bar\"\n className=\"flex h-12 shrink-0 items-center px-3\"\n >\n {sidebarTrigger}\n </div>\n ) : null;\n }\n\n return (\n <div\n data-slot=\"app-shell-mobile-tab-bar\"\n className=\"flex h-12 shrink-0 items-center gap-1 px-3\"\n >\n {sidebarTrigger}\n <div\n ref={tabListRef}\n role=\"tablist\"\n className=\"relative flex gap-1\"\n onKeyDown={handleKeyDown}\n >\n {/* Sliding pill indicator */}\n {indicator && (\n <div\n className={cn(\n 'absolute top-1/2 -translate-y-1/2 h-9 rounded-lg bg-accent',\n 'transition-[left,width] duration-200 ease-[cubic-bezier(0.16,1,0.3,1)]',\n 'motion-reduce:transition-none',\n )}\n style={{ left: indicator.left, width: indicator.width }}\n aria-hidden=\"true\"\n />\n )}\n {panels.map((panel, panelPosition) => {\n const label = panel.label || `Panel ${panelPosition + 1}`;\n const isActive = panelPosition === activeIndex;\n const tabId = baseId ? `${baseId}-tab-${panelPosition}` : undefined;\n const panelId = baseId\n ? `${baseId}-tabpanel-${panelPosition}`\n : undefined;\n return (\n <button\n key={getMobileTabKey(panel, label)}\n id={tabId}\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={panelId}\n tabIndex={isActive ? 0 : -1}\n onClick={() => onActiveChange(panelPosition)}\n className={cn(\n 'relative z-10 rounded-lg px-3 min-h-9 text-sm font-medium',\n 'transition-colors duration-150 motion-reduce:transition-none',\n 'active:scale-[0.97]',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n isActive\n ? 'text-foreground'\n : 'text-secondary-foreground hover:text-foreground',\n )}\n >\n {label}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n\nAppShellMobileTabBar.displayName = 'AppShellMobileTabBar';\n\nexport { AppShellMobileTabBar };\n","'use client';\n\nimport * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { PanelExpansionContext, PanelLayoutContext } from './AppShellContext';\n\nexport const APPSHELL_PANEL_TYPE = 'AppShell.Panel' as const;\n\nexport interface AppShellPanelProps extends React.ComponentProps<'div'> {\n /** Fixed width in pixels (number) or CSS string */\n width?: number | string;\n /** Flex grow value */\n flex?: number | string;\n /** Minimum width in pixels (number) or CSS string */\n minWidth?: number | string;\n /** When true, panel takes all content space (flex: 1), sibling panels hidden */\n expanded?: boolean;\n /** Callback when expanded state should change */\n onExpandedChange?: (expanded: boolean) => void;\n /** Label shown in mobile tab bar */\n label?: string;\n}\n\nexport interface AppShellPanelComponent {\n (props: AppShellPanelProps): React.ReactElement;\n displayName?: string;\n __appShellType: typeof APPSHELL_PANEL_TYPE;\n}\n\n/**\n * Generic content slot for AppShell. Max 2 panels visible at a time.\n *\n * Sizing priority: expanded > width/flex > default (flex: 1)\n *\n * Reads PanelLayoutContext to self-manage visibility and mobile sizing,\n * eliminating the need for cloneElement style injection from Root.\n */\nfunction AppShellPanelRoot({\n width,\n flex,\n minWidth,\n expanded = false,\n onExpandedChange,\n label,\n className,\n style,\n children,\n ...props\n}: AppShellPanelProps): React.ReactElement {\n const layout = React.useContext(PanelLayoutContext);\n const resolvedExpanded = layout.expanded ?? expanded;\n const resolvedOnExpandedChange = layout.onExpandedChange ?? onExpandedChange;\n\n const expansionValue = React.useMemo(\n () => ({\n expanded: resolvedExpanded,\n onExpandedChange: resolvedOnExpandedChange,\n }),\n [resolvedExpanded, resolvedOnExpandedChange],\n );\n\n // Compute inline styles based on layout context + sizing rules\n const computedStyle = React.useMemo((): React.CSSProperties => {\n // Hidden panel (desktop: non-visible overflow or non-expanded sibling)\n if (!layout.visible && !layout.isMobile) {\n if (layout.collapseMode === 'animated') {\n return {\n ...style,\n opacity: 0,\n width: '0px',\n maxWidth: '0px',\n minWidth: '0px',\n flex: '0 1 0px',\n overflow: 'hidden',\n pointerEvents: 'none',\n };\n }\n\n return {\n ...style,\n display: 'none',\n opacity: 0,\n width: '0px',\n flex: '0',\n overflow: 'hidden',\n pointerEvents: 'none',\n };\n }\n\n // Mobile active panel: fill available space\n if (layout.isMobile) {\n return { ...style, flex: '1' };\n }\n\n if (layout.sizeManagedByRoot) {\n return { ...style };\n }\n\n // Desktop visible panel: apply sizing rules\n const sizeStyles: React.CSSProperties = {};\n if (resolvedExpanded) {\n sizeStyles.flex = '1';\n } else if (width !== undefined) {\n sizeStyles.width = typeof width === 'number' ? `${width}px` : width;\n sizeStyles.maxWidth = '100%';\n } else if (flex !== undefined) {\n sizeStyles.flex = String(flex);\n } else {\n sizeStyles.flex = '1';\n }\n\n if (minWidth !== undefined) {\n sizeStyles.minWidth =\n typeof minWidth === 'number' ? `${minWidth}px` : minWidth;\n }\n\n return { ...sizeStyles, ...style };\n }, [\n layout.visible,\n layout.isMobile,\n layout.collapseMode,\n layout.sizeManagedByRoot,\n resolvedExpanded,\n width,\n flex,\n minWidth,\n style,\n ]);\n\n const isHidden = !layout.visible && !layout.isMobile;\n\n return (\n <PanelExpansionContext.Provider value={expansionValue}>\n <div\n data-slot=\"app-shell-panel\"\n data-expanded={resolvedExpanded || undefined}\n aria-hidden={isHidden || undefined}\n inert={isHidden || undefined}\n {...(layout.panelId\n ? {\n role: 'tabpanel' as const,\n id: layout.panelId,\n 'aria-labelledby': layout.tabId,\n }\n : {})}\n className={cn(\n 'flex h-full min-w-0 flex-col',\n isHidden && 'overflow-clip',\n width !== undefined &&\n !resolvedExpanded &&\n !isHidden &&\n !layout.isMobile &&\n !layout.sizeManagedByRoot &&\n 'shrink-0',\n // Mobile panel entrance — subtle fade on tab switch\n layout.isMobile && 'animate-[delight-fade-in_150ms_ease-out_both]',\n layout.isMobile && 'motion-reduce:animate-none',\n // Transitions for show/hide (desktop)\n 'transition-[flex,width,opacity] duration-300 ease-[cubic-bezier(0.16,1,0.3,1)]',\n 'motion-reduce:transition-none',\n className,\n )}\n style={computedStyle}\n {...props}\n >\n {children}\n </div>\n </PanelExpansionContext.Provider>\n );\n}\n\nconst AppShellPanel = Object.assign(AppShellPanelRoot, {\n displayName: 'AppShell.Panel',\n __appShellType: APPSHELL_PANEL_TYPE,\n}) satisfies AppShellPanelComponent;\n\nexport { AppShellPanel };\n","export type PanelSizeTuple = [number, number];\nexport type PanelLayoutMap = Record<string, number>;\n\nexport const DEFAULT_PANEL_SIZES: PanelSizeTuple = [35, 65];\nexport const DEFAULT_EXPAND_THRESHOLD = 85;\n\nfunction isFinitePositive(value: number): boolean {\n return Number.isFinite(value) && value > 0;\n}\n\nexport function normalizePanelSizes(\n sizes: readonly [number, number] | undefined,\n): PanelSizeTuple {\n if (!sizes) return DEFAULT_PANEL_SIZES;\n const [first, second] = sizes;\n if (!isFinitePositive(first) || !isFinitePositive(second)) {\n return DEFAULT_PANEL_SIZES;\n }\n\n const total = first + second;\n return [\n Number(((first / total) * 100).toFixed(4)),\n Number(((second / total) * 100).toFixed(4)),\n ];\n}\n\nexport function toResizablePercentageSize(size: number): string {\n return String(size);\n}\n\nexport function toResizableMinSize(\n minWidth: number | string | undefined,\n): string | undefined {\n if (minWidth === undefined) return undefined;\n return typeof minWidth === 'number' ? `${minWidth}px` : minWidth;\n}\n\nexport function layoutMapToTuple(layout: PanelLayoutMap): PanelSizeTuple {\n return normalizePanelSizes([layout.panel0, layout.panel1]);\n}\n\nexport function getExpandedPanelFromLayout(\n layout: PanelLayoutMap,\n threshold = DEFAULT_EXPAND_THRESHOLD,\n): number | null {\n const first = layout.panel0;\n const second = layout.panel1;\n if (first >= threshold) return 0;\n if (second >= threshold) return 1;\n return null;\n}\n","'use client';\n\nimport * as React from 'react';\nimport type { GroupImperativeHandle } from 'react-resizable-panels';\nimport {\n ResizableHandle,\n ResizablePanel,\n ResizablePanelGroup,\n} from '@/components/atoms/layout/Resizable';\nimport { AppShell as AppShellPrimitive } from '@/components/ui/app-shell';\n\nimport { Sheet, SheetContent } from '@/components/ui/sheet';\nimport { SidebarContext } from '@/components/ui/sidebar';\nimport { useIsMobile } from '@/hooks/use-mobile';\nimport { cn } from '@/lib/utils';\nimport {\n APP_SIDEBAR_COLLAPSED_WIDTH,\n APP_SIDEBAR_EXPANDED_WIDTH,\n} from '../AppSidebar/AppSidebar.constants';\nimport { AppShellContent } from './AppShellContent';\nimport {\n type AppShellContextValue,\n AppShellProvider,\n PanelIndexContext,\n PanelLayoutContext,\n type PanelLayoutInfo,\n type PanelPosition,\n} from './AppShellContext';\nimport { AppShellMobileTabBar } from './AppShellMobileTabBar';\nimport {\n APPSHELL_PANEL_TYPE,\n AppShellPanel,\n type AppShellPanelComponent,\n type AppShellPanelProps,\n} from './AppShellPanel';\nimport {\n DEFAULT_EXPAND_THRESHOLD,\n getExpandedPanelFromLayout,\n layoutMapToTuple,\n normalizePanelSizes,\n toResizableMinSize,\n toResizablePercentageSize,\n} from './AppShellResize';\n\nconst DEFAULT_APP_SHELL_BACKGROUND = 'var(--app-background)';\n\ninterface AppShellPanelMarker {\n __appShellType?: unknown;\n}\n\nfunction isAppShellPanelComponent(\n type: unknown,\n): type is AppShellPanelComponent {\n return (\n typeof type === 'function' &&\n (type as AppShellPanelMarker).__appShellType === APPSHELL_PANEL_TYPE\n );\n}\n\nfunction isAppShellPanelElement(\n child: React.ReactNode,\n): child is React.ReactElement<AppShellPanelProps, AppShellPanelComponent> {\n return React.isValidElement(child) && isAppShellPanelComponent(child.type);\n}\n\nfunction getAppShellPanelIdentity(\n panel: React.ReactElement<AppShellPanelProps>,\n ariaBaseId: string,\n index: number,\n): React.Key {\n return panel.key ?? panel.props.label ?? `${ariaBaseId}-panel-${index}`;\n}\n\ninterface AppShellPanelWithLayoutProps {\n panel: React.ReactElement<AppShellPanelProps>;\n visible: boolean;\n index: number;\n overrides?: Partial<PanelLayoutInfo>;\n isMobile: boolean;\n activePanel: number;\n hasExpanded: boolean;\n hasTabBar: boolean;\n ariaBaseId: string;\n rootExpansionActive: boolean;\n firstExpandedIndex: number | null;\n onExpandedPanelChange: (panelIndex: number | null) => void;\n}\n\nfunction AppShellPanelWithLayout({\n panel,\n visible,\n index,\n overrides = {},\n isMobile,\n activePanel,\n hasExpanded,\n hasTabBar,\n ariaBaseId,\n rootExpansionActive,\n firstExpandedIndex,\n onExpandedPanelChange,\n}: AppShellPanelWithLayoutProps) {\n if (isMobile && index !== activePanel) return null;\n\n const layoutInfo: PanelLayoutInfo = {\n visible: isMobile ? true : visible,\n collapseMode: hasExpanded ? 'animated' : 'removed',\n isMobile,\n tabId: hasTabBar ? `${ariaBaseId}-tab-${index}` : undefined,\n panelId: hasTabBar ? `${ariaBaseId}-tabpanel-${index}` : undefined,\n expanded: rootExpansionActive\n ? hasExpanded && index === firstExpandedIndex\n : undefined,\n onExpandedChange: rootExpansionActive\n ? (nextExpanded) => onExpandedPanelChange(nextExpanded ? index : null)\n : undefined,\n ...overrides,\n };\n\n return (\n <PanelIndexContext.Provider value={index}>\n <PanelLayoutContext.Provider value={layoutInfo}>\n {panel}\n </PanelLayoutContext.Provider>\n </PanelIndexContext.Provider>\n );\n}\n\n// ============================================\n// AppShell Root\n// ============================================\n\nexport interface AppShellProps extends React.ComponentProps<'div'> {\n /** Any CSS background value (color, gradient, image). Defaults to var(--app-background). */\n background?: string;\n /** Fixed height, supports CSS calc() */\n height?: string;\n /** Spacing around the inner content in pixels or CSS value */\n padding?: number | string;\n /** Padding on mobile viewports. Defaults to 8px. */\n mobilePadding?: number | string;\n /** Gap between panels in pixels or CSS value. Defaults to 12. */\n gap?: number | string;\n /** Joined-edge mode where panels share borders. Defaults to false. */\n connected?: boolean;\n /** ID of the main content element for skip navigation. */\n skipToId?: string;\n /** Controlled active panel index for mobile tab switching. */\n activePanel?: number;\n /** Callback when active panel changes on mobile. */\n onActivePanelChange?: (index: number) => void;\n /** Default active panel on mobile (default: 0). */\n defaultActivePanel?: number;\n /** Controlled expanded panel index. Use null for no expanded panel. */\n expandedPanel?: number | null;\n /** Initial expanded panel index for uncontrolled root-owned expansion. */\n defaultExpandedPanel?: number | null;\n /** Callback when root-owned expansion changes. */\n onExpandedPanelChange?: (panelIndex: number | null) => void;\n /** Enables root-owned two-panel resizing on desktop. Defaults to true for eligible two-panel layouts. */\n resizablePanels?: boolean;\n /** Initial panel size split in percentages. Defaults to [35, 65]. */\n defaultPanelSizes?: [number, number];\n /** Controlled panel size split in percentages. */\n panelSizes?: [number, number];\n /** Called after the user releases the resize handle. */\n onPanelSizesChange?: (sizes: [number, number]) => void;\n /** Percentage threshold that expands the dominant panel on release. */\n expandThreshold?: number;\n}\n\nfunction AppShellRoot({\n background = DEFAULT_APP_SHELL_BACKGROUND,\n height = '100dvh',\n padding = 16,\n mobilePadding,\n gap = 12,\n connected = false,\n skipToId,\n activePanel: activePanelProp,\n onActivePanelChange,\n defaultActivePanel = 0,\n expandedPanel: expandedPanelProp,\n defaultExpandedPanel,\n onExpandedPanelChange,\n resizablePanels,\n defaultPanelSizes,\n panelSizes,\n onPanelSizesChange,\n expandThreshold = DEFAULT_EXPAND_THRESHOLD,\n className,\n children,\n ...props\n}: AppShellProps): React.ReactElement {\n const isMobile = useIsMobile();\n const ariaBaseId = React.useId();\n const [internalActivePanel, setInternalActivePanel] =\n React.useState(defaultActivePanel);\n const [internalExpandedPanel, setInternalExpandedPanel] = React.useState<\n number | null\n >(defaultExpandedPanel ?? null);\n const [internalPanelSizes, setInternalPanelSizes] = React.useState(() =>\n normalizePanelSizes(defaultPanelSizes),\n );\n const [isResizingPanels, setIsResizingPanels] = React.useState(false);\n const [isRestoringResizablePanels, setIsRestoringResizablePanels] =\n React.useState(false);\n const [internalMobileSidebarOpen, setInternalMobileSidebarOpen] =\n React.useState(false);\n const resizableGroupRef = React.useRef<GroupImperativeHandle | null>(null);\n const rootRef = React.useRef<HTMLDivElement>(null);\n const allowResizeReleaseExpansionRef = React.useRef(false);\n const suppressControlledLayoutChangeRef = React.useRef(false);\n const previousResizableExpandedRef = React.useRef(false);\n\n const activePanel = activePanelProp ?? internalActivePanel;\n const handleActivePanelChange = React.useCallback(\n (index: number) => {\n if (activePanelProp === undefined) {\n setInternalActivePanel((prev) => (prev === index ? prev : index));\n }\n onActivePanelChange?.(index);\n },\n [activePanelProp, onActivePanelChange],\n );\n\n const rootExpansionRequested =\n expandedPanelProp !== undefined ||\n defaultExpandedPanel !== undefined ||\n onExpandedPanelChange !== undefined;\n const resolvedExpandedPanel =\n expandedPanelProp !== undefined ? expandedPanelProp : internalExpandedPanel;\n const handleExpandedPanelChange = React.useCallback(\n (panelIndex: number | null) => {\n if (expandedPanelProp === undefined) {\n setInternalExpandedPanel(panelIndex);\n }\n onExpandedPanelChange?.(panelIndex);\n },\n [expandedPanelProp, onExpandedPanelChange],\n );\n\n // Classify children (memoized to stabilize downstream references)\n const { panels, panelInfos, sidebarChild, otherChildren } =\n React.useMemo(() => {\n const p: React.ReactElement<AppShellPanelProps>[] = [];\n const infos: { key?: React.Key; label?: string }[] = [];\n let sidebar: React.ReactNode = null;\n const other: React.ReactNode[] = [];\n\n React.Children.forEach(children, (child) => {\n if (isAppShellPanelElement(child)) {\n infos.push({\n key: child.key ?? child.props.label,\n label: child.props.label,\n });\n p.push(child);\n return;\n }\n\n if (!React.isValidElement(child)) {\n return;\n }\n\n if (child.type === AppShellSidebar) {\n sidebar = child;\n } else {\n other.push(child);\n }\n });\n\n return {\n panels: p,\n panelInfos: infos,\n sidebarChild: sidebar,\n otherChildren: other,\n };\n }, [children]);\n\n const shouldUseResizablePanels = resizablePanels ?? true;\n\n // Determine which panels are visible\n const firstPanelExpandedIndex = panels.findIndex((p) => p.props.expanded);\n const hasPanelExpansionProps = panels.some(\n (panel) =>\n panel.props.expanded !== undefined ||\n panel.props.onExpandedChange !== undefined,\n );\n const canUseResizablePanelPair =\n shouldUseResizablePanels &&\n !connected &&\n !isMobile &&\n panels.length === 2 &&\n (resizablePanels !== undefined || !hasPanelExpansionProps);\n const rootExpansionActive =\n rootExpansionRequested || canUseResizablePanelPair;\n const validRootExpandedPanel =\n typeof resolvedExpandedPanel === 'number' &&\n Number.isInteger(resolvedExpandedPanel) &&\n resolvedExpandedPanel >= 0 &&\n resolvedExpandedPanel < panels.length\n ? resolvedExpandedPanel\n : null;\n let firstExpandedIndex: number | null = firstPanelExpandedIndex;\n if (rootExpansionActive) {\n firstExpandedIndex = validRootExpandedPanel;\n }\n const hasExpanded = firstExpandedIndex !== -1 && firstExpandedIndex !== null;\n const visibleCount = hasExpanded ? 1 : Math.min(panels.length, 2);\n const canRenderResizablePanels = canUseResizablePanelPair;\n const resolvedPanelSizes = React.useMemo(\n () => normalizePanelSizes(panelSizes ?? internalPanelSizes),\n [panelSizes, internalPanelSizes],\n );\n const resizablePanelSizes = React.useMemo<[number, number]>(() => {\n if (hasExpanded && firstExpandedIndex === 0) return [100, 0];\n if (hasExpanded && firstExpandedIndex === 1) return [0, 100];\n return resolvedPanelSizes;\n }, [firstExpandedIndex, hasExpanded, resolvedPanelSizes]);\n const shouldBypassResizableMinSize =\n hasExpanded ||\n isRestoringResizablePanels ||\n (!hasExpanded && previousResizableExpandedRef.current);\n\n // Dev warnings\n if (process.env.NODE_ENV !== 'production') {\n const expandedPanelPropCount = panels.filter(\n (p) => p.props.expanded,\n ).length;\n if (rootExpansionActive && expandedPanelPropCount > 0) {\n console.warn(\n 'AppShell.Root: root-owned expansion props should not be mixed with AppShell.Panel expanded. Root expansion will be used.',\n );\n }\n if (!rootExpansionActive && expandedPanelPropCount > 1) {\n console.warn(\n 'AppShell.Root: multiple panels have expanded={true}. Only the first expanded panel will be shown.',\n );\n }\n if (\n rootExpansionActive &&\n resolvedExpandedPanel !== null &&\n resolvedExpandedPanel !== undefined &&\n validRootExpandedPanel === null\n ) {\n console.warn(\n `AppShell.Root: expandedPanel index ${resolvedExpandedPanel} is out of range. No panel will be expanded.`,\n );\n }\n if (resizablePanels === true && connected) {\n console.warn(\n 'AppShell.Root: resizablePanels is not supported with connected. Rendering non-resizable panels.',\n );\n }\n if (resizablePanels === true && !connected && panels.length !== 2) {\n console.warn(\n `AppShell.Root: resizablePanels requires exactly 2 Panel children, got ${panels.length}. Rendering non-resizable panels.`,\n );\n }\n if (panels.length > 2 && !hasExpanded) {\n console.warn(\n `AppShell.Root: max 2 Panel children allowed, got ${panels.length}. Only the first 2 will be visible.`,\n );\n }\n }\n\n const handleLayoutChange = React.useCallback(\n (layout: Record<string, number>) => {\n if (hasExpanded || suppressControlledLayoutChangeRef.current) {\n return;\n }\n if (panelSizes === undefined) {\n setInternalPanelSizes(layoutMapToTuple(layout));\n }\n },\n [hasExpanded, panelSizes],\n );\n\n const handleLayoutChanged = React.useCallback(\n (layout: Record<string, number>) => {\n if (\n hasExpanded ||\n !allowResizeReleaseExpansionRef.current ||\n suppressControlledLayoutChangeRef.current\n ) {\n return;\n }\n\n const nextSizes = layoutMapToTuple(layout);\n if (panelSizes === undefined) {\n setInternalPanelSizes(nextSizes);\n }\n onPanelSizesChange?.(nextSizes);\n\n const expandedIndex = getExpandedPanelFromLayout(layout, expandThreshold);\n if (expandedIndex !== null) {\n handleExpandedPanelChange(expandedIndex);\n }\n },\n [\n expandThreshold,\n handleExpandedPanelChange,\n hasExpanded,\n onPanelSizesChange,\n panelSizes,\n ],\n );\n\n React.useEffect(() => {\n if (!canRenderResizablePanels) {\n suppressControlledLayoutChangeRef.current = false;\n previousResizableExpandedRef.current = false;\n return;\n }\n\n const ownerWindow = rootRef.current?.ownerDocument.defaultView;\n if (!ownerWindow) return;\n\n const wasExpanded = previousResizableExpandedRef.current;\n previousResizableExpandedRef.current = hasExpanded;\n const shouldApplyLayout =\n hasExpanded || wasExpanded || panelSizes !== undefined;\n if (!shouldApplyLayout) {\n suppressControlledLayoutChangeRef.current = false;\n return;\n }\n\n let restoreFrame: number | undefined;\n const [first, second] = resizablePanelSizes;\n if (wasExpanded && !hasExpanded) {\n restoreFrame = ownerWindow.requestAnimationFrame(() => {\n setIsRestoringResizablePanels(true);\n });\n }\n suppressControlledLayoutChangeRef.current = true;\n const nextLayout = { panel0: first, panel1: second };\n resizableGroupRef.current?.setLayout(nextLayout);\n const frame = ownerWindow.requestAnimationFrame(() => {\n resizableGroupRef.current?.setLayout(nextLayout);\n });\n const timeout = ownerWindow.setTimeout(() => {\n suppressControlledLayoutChangeRef.current = false;\n }, 350);\n return () => {\n if (restoreFrame !== undefined) {\n ownerWindow.cancelAnimationFrame(restoreFrame);\n }\n ownerWindow.cancelAnimationFrame(frame);\n ownerWindow.clearTimeout(timeout);\n suppressControlledLayoutChangeRef.current = false;\n };\n }, [canRenderResizablePanels, hasExpanded, panelSizes, resizablePanelSizes]);\n\n React.useEffect(() => {\n if (!isRestoringResizablePanels) return;\n\n const ownerWindow = rootRef.current?.ownerDocument.defaultView;\n if (!ownerWindow) return;\n\n const timeout = ownerWindow.setTimeout(() => {\n setIsRestoringResizablePanels(false);\n }, 350);\n return () => ownerWindow.clearTimeout(timeout);\n }, [isRestoringResizablePanels]);\n\n React.useEffect(() => {\n if (!canRenderResizablePanels) {\n allowResizeReleaseExpansionRef.current = false;\n suppressControlledLayoutChangeRef.current = false;\n return;\n }\n\n const ownerWindow = rootRef.current?.ownerDocument.defaultView;\n if (!ownerWindow) return;\n\n const frame = ownerWindow.requestAnimationFrame(() => {\n allowResizeReleaseExpansionRef.current = true;\n });\n return () => {\n ownerWindow.cancelAnimationFrame(frame);\n allowResizeReleaseExpansionRef.current = false;\n };\n }, [canRenderResizablePanels]);\n\n React.useEffect(() => {\n if (!isResizingPanels) return;\n const ownerWindow = rootRef.current?.ownerDocument.defaultView;\n if (!ownerWindow) return;\n\n const stopResizing = () => setIsResizingPanels(false);\n ownerWindow.addEventListener('pointerup', stopResizing);\n ownerWindow.addEventListener('pointercancel', stopResizing);\n return () => {\n ownerWindow.removeEventListener('pointerup', stopResizing);\n ownerWindow.removeEventListener('pointercancel', stopResizing);\n };\n }, [isResizingPanels]);\n\n const handleResizablePointerDownCapture = React.useCallback(\n (event: React.PointerEvent<HTMLDivElement>) => {\n const target = event.target;\n if (!(target instanceof Element)) return;\n if (target.closest('[data-slot=\"resizable-handle\"]')) {\n setIsResizingPanels(true);\n }\n },\n [],\n );\n\n // Memoize the visibility map to stabilize downstream context values\n const visiblePanels = React.useMemo(\n () =>\n hasExpanded\n ? panels.map((panel, i) => ({\n panel,\n visible: i === firstExpandedIndex,\n index: i,\n }))\n : panels.map((panel, i) => ({\n panel,\n visible: i < 2,\n index: i,\n })),\n [panels, hasExpanded, firstExpandedIndex],\n );\n\n // Whether the tab bar is active (mobile with 2+ panels)\n const hasTabBar = isMobile && panels.length > 1;\n\n // Build context (derive position from stable scalars, not array reference)\n const getPanelPosition = React.useCallback(\n (index: number): PanelPosition => {\n if (visibleCount === 1) return 'only';\n if (hasExpanded) return index === firstExpandedIndex ? 'only' : 'last';\n return index === 0 ? 'first' : 'last';\n },\n [visibleCount, hasExpanded, firstExpandedIndex],\n );\n\n const contextValue: AppShellContextValue = React.useMemo(\n () => ({\n connected,\n panelCount: visibleCount,\n getPanelPosition,\n }),\n [connected, visibleCount, getPanelPosition],\n );\n\n // Sidebar context for mobile drawer integration\n const sidebarContext = React.useContext(SidebarContext);\n const mobileSidebarOpen =\n sidebarContext?.openMobile ?? internalMobileSidebarOpen;\n const setMobileSidebarOpen =\n sidebarContext?.setOpenMobile ?? setInternalMobileSidebarOpen;\n const handleSidebarOpen = React.useCallback(() => {\n setMobileSidebarOpen(true);\n }, [setMobileSidebarOpen]);\n\n const handleSheetOpenChange = React.useCallback(\n (open: boolean) => {\n setMobileSidebarOpen(open);\n },\n [setMobileSidebarOpen],\n );\n\n // Skip navigation link\n const skipLink = skipToId ? (\n <a\n href={`#${skipToId}`}\n className=\"sr-only focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-50 focus:rounded-md focus:bg-background focus:px-4 focus:py-2 focus:text-sm focus:font-medium focus:text-foreground focus:shadow-sm focus:ring-2 focus:ring-ring\"\n >\n Skip to content\n </a>\n ) : null;\n\n // Render panels with context providers (no cloneElement — panels self-style)\n const renderedPanels = React.useMemo(\n () =>\n visiblePanels.map(({ panel, visible, index }) => (\n <AppShellPanelWithLayout\n key={getAppShellPanelIdentity(panel, ariaBaseId, index)}\n panel={panel}\n visible={visible}\n index={index}\n isMobile={isMobile}\n activePanel={activePanel}\n hasExpanded={hasExpanded}\n hasTabBar={hasTabBar}\n ariaBaseId={ariaBaseId}\n rootExpansionActive={rootExpansionActive}\n firstExpandedIndex={firstExpandedIndex}\n onExpandedPanelChange={handleExpandedPanelChange}\n />\n )),\n [\n visiblePanels,\n ariaBaseId,\n isMobile,\n activePanel,\n hasExpanded,\n hasTabBar,\n rootExpansionActive,\n firstExpandedIndex,\n handleExpandedPanelChange,\n ],\n );\n\n const renderedResizablePanels = canRenderResizablePanels ? (\n <ResizablePanelGroup\n orientation=\"horizontal\"\n disabled={hasExpanded}\n groupRef={resizableGroupRef}\n onLayoutChange={handleLayoutChange}\n onLayoutChanged={handleLayoutChanged}\n onPointerDownCapture={handleResizablePointerDownCapture}\n className={cn(\n 'min-h-0 min-w-0 flex-1',\n !isResizingPanels &&\n '[&>[data-slot=resizable-panel]]:transition-[flex-grow] [&>[data-slot=resizable-panel]]:duration-300 [&>[data-slot=resizable-panel]]:ease-[cubic-bezier(0.16,1,0.3,1)] motion-reduce:[&>[data-slot=resizable-panel]]:transition-none',\n )}\n >\n <ResizablePanel\n id=\"panel0\"\n defaultSize={toResizablePercentageSize(resizablePanelSizes[0])}\n minSize={\n shouldBypassResizableMinSize\n ? 0\n : toResizableMinSize(panels[0].props.minWidth)\n }\n >\n <AppShellPanelWithLayout\n panel={panels[0]}\n visible={!hasExpanded || firstExpandedIndex === 0}\n index={0}\n overrides={{ sizeManagedByRoot: true }}\n isMobile={isMobile}\n activePanel={activePanel}\n hasExpanded={hasExpanded}\n hasTabBar={hasTabBar}\n ariaBaseId={ariaBaseId}\n rootExpansionActive={rootExpansionActive}\n firstExpandedIndex={firstExpandedIndex}\n onExpandedPanelChange={handleExpandedPanelChange}\n />\n </ResizablePanel>\n <ResizableHandle\n disabled={hasExpanded}\n className={cn(\n 'z-10 min-w-2 shrink-0 cursor-col-resize w-[var(--app-shell-gap,0px)] bg-transparent after:w-2 hover:bg-transparent',\n 'transition-[width,min-width,opacity,background-color] duration-300 ease-[cubic-bezier(0.16,1,0.3,1)] motion-reduce:transition-none',\n hasExpanded && 'min-w-0 w-0 opacity-0 after:w-0 pointer-events-none',\n )}\n />\n <ResizablePanel\n id=\"panel1\"\n defaultSize={toResizablePercentageSize(resizablePanelSizes[1])}\n minSize={\n shouldBypassResizableMinSize\n ? 0\n : toResizableMinSize(panels[1].props.minWidth)\n }\n >\n <AppShellPanelWithLayout\n panel={panels[1]}\n visible={!hasExpanded || firstExpandedIndex === 1}\n index={1}\n overrides={{ sizeManagedByRoot: true }}\n isMobile={isMobile}\n activePanel={activePanel}\n hasExpanded={hasExpanded}\n hasTabBar={hasTabBar}\n ariaBaseId={ariaBaseId}\n rootExpansionActive={rootExpansionActive}\n firstExpandedIndex={firstExpandedIndex}\n onExpandedPanelChange={handleExpandedPanelChange}\n />\n </ResizablePanel>\n </ResizablePanelGroup>\n ) : null;\n\n // Live region for announcing panel changes to screen readers\n const activeLabel =\n hasTabBar && panelInfos[activePanel]\n ? panelInfos[activePanel].label || `Panel ${activePanel + 1}`\n : null;\n\n // Mobile layout\n if (isMobile) {\n return (\n <AppShellProvider value={contextValue}>\n <AppShellPrimitive\n ref={rootRef}\n background={background}\n height={height}\n padding={padding}\n mobilePadding={mobilePadding}\n gap={0}\n connected={connected}\n className={className}\n {...props}\n >\n {skipLink}\n {sidebarChild && (\n <Sheet\n open={mobileSidebarOpen}\n onOpenChange={handleSheetOpenChange}\n >\n <SheetContent\n side=\"left\"\n showCloseButton={false}\n className=\"w-[280px] p-0\"\n aria-label=\"Sidebar navigation\"\n >\n {sidebarChild}\n </SheetContent>\n </Sheet>\n )}\n <div className=\"flex h-full min-w-0 flex-1 flex-col overflow-clip\">\n <AppShellMobileTabBar\n panels={panelInfos}\n activeIndex={activePanel}\n onActiveChange={handleActivePanelChange}\n onSidebarOpen={sidebarChild ? handleSidebarOpen : undefined}\n baseId={ariaBaseId}\n />\n <div className=\"flex min-h-0 flex-1\">{renderedPanels}</div>\n </div>\n {/* Live region for panel switch announcements */}\n {activeLabel && (\n <div className=\"sr-only\" role=\"status\" aria-live=\"polite\">\n {activeLabel} panel active\n </div>\n )}\n {otherChildren}\n </AppShellPrimitive>\n </AppShellProvider>\n );\n }\n\n // Desktop layout\n const effectiveGap = connected || hasExpanded ? 0 : gap;\n\n return (\n <AppShellProvider value={contextValue}>\n <AppShellPrimitive\n ref={rootRef}\n background={background}\n height={height}\n padding={padding}\n mobilePadding={mobilePadding}\n gap={effectiveGap}\n connected={connected}\n className={className}\n {...props}\n >\n {skipLink}\n {sidebarChild}\n {renderedResizablePanels ?? renderedPanels}\n {otherChildren}\n </AppShellPrimitive>\n </AppShellProvider>\n );\n}\n\nAppShellRoot.displayName = 'AppShell';\n\n// ============================================\n// AppShell Sidebar\n// ============================================\n\nexport interface AppShellSidebarProps extends React.ComponentProps<'div'> {\n /**\n * Explicit width override — bypasses auto-detection. Manual widths are\n * protected by AppSidebar's canonical collapsed width to prevent clipping.\n * When omitted, the sidebar auto-sizes based on the child\n * SidebarProvider's expanded/collapsed state.\n */\n width?: string;\n /** Width when sidebar is expanded (auto mode only). @default '280px' */\n expandedWidth?: string;\n /** Width when sidebar is collapsed (auto mode only). @default '68px' */\n collapsedWidth?: string;\n}\n\n/**\n * Layout slot for the sidebar region. Renders a div — the actual aside\n * landmark is provided by AppSidebar/Sidebar primitive inside it.\n *\n * **Auto-detection (default):** When no `width` prop is provided, the sidebar\n * observes the child SidebarProvider's `data-state` attribute via CSS `:has()`\n * and transitions between `collapsedWidth` and `expandedWidth` automatically.\n *\n * **Manual mode:** Pass an explicit `width` to control sizing yourself.\n */\nfunction AppShellSidebar({\n width,\n expandedWidth = APP_SIDEBAR_EXPANDED_WIDTH,\n collapsedWidth = APP_SIDEBAR_COLLAPSED_WIDTH,\n className,\n style,\n children,\n ...props\n}: AppShellSidebarProps) {\n const autoMode = width === undefined;\n\n return (\n <div\n data-slot=\"app-shell-sidebar\"\n style={\n {\n ...(autoMode\n ? {\n '--app-shell-sidebar-collapsed': collapsedWidth,\n '--app-shell-sidebar-expanded': expandedWidth,\n }\n : {\n '--app-shell-sidebar-width': width,\n minWidth: APP_SIDEBAR_COLLAPSED_WIDTH,\n }),\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'flex h-full shrink-0 flex-col overflow-clip',\n 'transition-[width] duration-300 ease-[cubic-bezier(0.16,1,0.3,1)]',\n 'motion-reduce:transition-none',\n autoMode\n ? [\n 'w-[var(--app-shell-sidebar-collapsed)]',\n '[&:has([data-state=expanded])]:w-[var(--app-shell-sidebar-expanded)]',\n ]\n : 'w-[var(--app-shell-sidebar-width)]',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nAppShellSidebar.displayName = 'AppShell.Sidebar';\n\n// ============================================\n// AppShell Header\n// ============================================\n\nexport interface AppShellHeaderProps extends React.ComponentProps<'div'> {}\n\nfunction AppShellHeader({\n className,\n children,\n ...props\n}: AppShellHeaderProps) {\n return (\n <div\n data-slot=\"app-shell-header\"\n className={cn('shrink-0', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nAppShellHeader.displayName = 'AppShell.Header';\n\n// ============================================\n// Preset Background Variants\n// ============================================\n\nconst appShellBackgrounds = {\n transparent: 'transparent',\n appBg: DEFAULT_APP_SHELL_BACKGROUND,\n neutral: 'var(--muted)',\n brandSubtle: 'linear-gradient(135deg, var(--air-50) 0%, var(--air-100) 100%)',\n brand: 'linear-gradient(135deg, var(--air-400) 0%, var(--primary) 100%)',\n brandDeep: 'linear-gradient(135deg, var(--primary) 0%, var(--air-900) 100%)',\n desertMidnight:\n 'linear-gradient(135deg, var(--slate-500) 0%, var(--slate-700) 100%)',\n aqua: 'linear-gradient(135deg, var(--air-400) 0%, var(--air-600) 100%)',\n} as const;\n\n// ============================================\n// Compound Component (Dot Notation)\n// ============================================\n\nconst AppShell = Object.assign(AppShellRoot, {\n Root: AppShellRoot,\n Sidebar: AppShellSidebar,\n Header: AppShellHeader,\n Panel: AppShellPanel,\n Content: AppShellContent,\n});\n\n// ============================================\n// Exports\n// ============================================\n\nexport type { AppShellContentProps } from './AppShellContent';\nexport type { AppShellPanelProps } from './AppShellPanel';\n\nexport {\n APP_SIDEBAR_COLLAPSED_WIDTH,\n APP_SIDEBAR_EXPANDED_WIDTH,\n AppShell,\n AppShellContent,\n AppShellHeader,\n AppShellPanel,\n AppShellRoot,\n AppShellSidebar,\n appShellBackgrounds,\n};\n","/**\n * Web Component wrapper for AppShell (hand-crafted WC adapter).\n * Custom element: <hf-app-shell>\n *\n * @generated by scripts/generate-wc-components.ts\n * DO NOT EDIT MANUALLY\n */\n\nimport React from 'react';\nimport { AppShell, appShellBackgrounds } from '../components';\nimport {\n BaseCompoundWC,\n camelToKebab,\n installPropAccessors,\n type PropDefs,\n portalNode,\n registerWC,\n} from './_shared';\n\nconst PROP_DEFS: PropDefs = {\n background: 'string',\n height: 'string',\n padding: 'string',\n mobilePadding: 'string',\n gap: 'string',\n connected: 'boolean',\n};\n\nclass AppShellWC extends BaseCompoundWC {\n get propDefs() {\n return PROP_DEFS;\n }\n\n static get observedAttributes() {\n return Object.keys(PROP_DEFS).map(camelToKebab);\n }\n\n protected _renderReact(): React.ReactElement {\n const props = this._readAllProps();\n const sidebarSlot = this._getSlot('sidebar');\n const contentSlot = this._getSlot('content') || this._getDefaultSlot();\n\n const children: React.ReactNode[] = [];\n if (sidebarSlot) {\n children.push(portalNode(sidebarSlot));\n }\n if (contentSlot) {\n children.push(portalNode(contentSlot));\n }\n\n const parsePadding = (value: unknown): number | string | undefined => {\n if (value === undefined || value === null) return undefined;\n if (typeof value === 'number') return value;\n if (typeof value === 'string') {\n const parsed = Number(value);\n return Number.isNaN(parsed) ? value : parsed;\n }\n return undefined;\n };\n\n return React.createElement(\n AppShell,\n {\n background: (props.background as string) || appShellBackgrounds.appBg,\n height: (props.height as string) || '100vh',\n padding: parsePadding(props.padding) ?? 16,\n mobilePadding: parsePadding(props.mobilePadding),\n gap: parsePadding(props.gap) ?? 12,\n connected: props.connected === true || props.connected === 'true',\n },\n ...children,\n );\n }\n}\n\ninstallPropAccessors(AppShellWC, PROP_DEFS);\nregisterWC('hf-app-shell', AppShellWC);\n\nexport { AppShellWC };\nexport default AppShellWC;\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
|