@exulu/frontend 1.9.0 → 1.10.0
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/.next/BUILD_ID +1 -1
- package/dist/.next/app-build-manifest.json +140 -140
- package/dist/.next/app-path-routes-manifest.json +1 -1
- package/dist/.next/build-manifest.json +2 -2
- package/dist/.next/prerender-manifest.json +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/agents/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js +7 -7
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/configuration/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/dashboard/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/data/[[...query]]/page.js +3 -3
- package/dist/.next/server/app/(application)/data/[[...query]]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/explorer/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/keys/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/projects/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/prompts/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/roles/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/token/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/users/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/create/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/workflows/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(authentication)/login/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found.html +1 -1
- package/dist/.next/server/app/_not-found.rsc +1 -1
- package/dist/.next/server/app-paths-manifest.json +6 -6
- package/dist/.next/server/chunks/2270.js +17 -6
- package/dist/.next/server/chunks/5485.js +1 -1
- package/dist/.next/server/chunks/5974.js +1 -1
- package/dist/.next/server/middleware-manifest.json +5 -5
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/static/chunks/3750-e3d1b2cccd265190.js +2 -0
- package/dist/.next/static/chunks/3750-e3d1b2cccd265190.js.map +1 -0
- package/dist/.next/static/chunks/{3832-417a5eeee712a793.js → 3832-d7782d6a2771ae6c.js} +1 -1
- package/dist/.next/static/chunks/{3832-417a5eeee712a793.js.map → 3832-d7782d6a2771ae6c.js.map} +1 -1
- package/dist/.next/static/chunks/6280-50b751f993f2fe4f.js +2 -0
- package/dist/.next/static/chunks/6280-50b751f993f2fe4f.js.map +1 -0
- package/dist/.next/static/chunks/{6373-601400fab8a3bb55.js → 6373-aef582adc575d3ca.js} +2 -2
- package/dist/.next/static/chunks/6373-aef582adc575d3ca.js.map +1 -0
- package/dist/.next/static/chunks/{8293-0e69d89d2dac7111.js → 8293-ba5cd36594e6fde1.js} +3 -3
- package/dist/.next/static/chunks/8293-ba5cd36594e6fde1.js.map +1 -0
- package/dist/.next/static/chunks/9105-d8ff41060f7ffc85.js +2 -0
- package/dist/.next/static/chunks/9105-d8ff41060f7ffc85.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/{page-7edb1c7c850f982c.js → page-d59534ca19eee51f.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/{page-7edb1c7c850f982c.js.map → page-d59534ca19eee51f.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-0c7c1b0e1713bf60.js +2 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-0c7c1b0e1713bf60.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-7db6bfbf02606136.js +2 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-7db6bfbf02606136.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/explorer/{page-1d676c9dfe3ed58b.js → page-e6b1c034c07776e2.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/explorer/{page-1d676c9dfe3ed58b.js.map → page-e6b1c034c07776e2.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/token/{page-3f74f711f3d04fce.js → page-3acc39cb8a718331.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/token/{page-3f74f711f3d04fce.js.map → page-3acc39cb8a718331.js.map} +1 -1
- package/dist/.next/static/chunks/ba12c10f-85ed008ce7746dbe.js +2 -0
- package/dist/.next/static/chunks/ba12c10f-85ed008ce7746dbe.js.map +1 -0
- package/dist/.next/static/css/9c08ae5d990a6b14.css +4 -0
- package/dist/.next/static/css/9c08ae5d990a6b14.css.map +1 -0
- package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
- package/dist/package.json +1 -1
- package/package.json +1 -1
- package/dist/.next/static/chunks/3750-f45c59ef1cc79417.js +0 -2
- package/dist/.next/static/chunks/3750-f45c59ef1cc79417.js.map +0 -1
- package/dist/.next/static/chunks/572-2940a399da1e3a3b.js +0 -2
- package/dist/.next/static/chunks/572-2940a399da1e3a3b.js.map +0 -1
- package/dist/.next/static/chunks/6373-601400fab8a3bb55.js.map +0 -1
- package/dist/.next/static/chunks/8293-0e69d89d2dac7111.js.map +0 -1
- package/dist/.next/static/chunks/9105-dfbce1bad8e3e8dd.js +0 -2
- package/dist/.next/static/chunks/9105-dfbce1bad8e3e8dd.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-2d47be0ee80dd89d.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-2d47be0ee80dd89d.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-8d2b3995cacfd832.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-8d2b3995cacfd832.js.map +0 -1
- package/dist/.next/static/chunks/ba12c10f-aaafcb074f608624.js +0 -2
- package/dist/.next/static/chunks/ba12c10f-aaafcb074f608624.js.map +0 -1
- package/dist/.next/static/css/6f8c5212af8ef284.css +0 -4
- package/dist/.next/static/css/6f8c5212af8ef284.css.map +0 -1
- /package/dist/.next/static/{ls-syPkq9-MWp-VWWDEZJ → 3j63p6b3zZZB_v1Hn8Mxp}/_buildManifest.js +0 -0
- /package/dist/.next/static/{ls-syPkq9-MWp-VWWDEZJ → 3j63p6b3zZZB_v1Hn8Mxp}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/572-2940a399da1e3a3b.js","mappings":"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","sources":["webpack://_N_E/../../../src/icons/archive-x.ts","webpack://_N_E/../../../src/icons/archive.ts","webpack://_N_E/../../../src/icons/arrow-left.ts","webpack://_N_E/../../../src/icons/file-stack.ts","webpack://_N_E/../../../src/icons/folder.ts","webpack://_N_E/../../../src/icons/grip-vertical.ts","webpack://_N_E/../../../src/icons/list-checks.ts","webpack://_N_E/../../../src/icons/loader.ts","webpack://_N_E/../../../src/icons/package-open.ts","webpack://_N_E/../../../src/icons/pencil.ts","webpack://_N_E/../../../src/icons/plus.ts","webpack://_N_E/../../../src/icons/search.ts","webpack://_N_E/./node_modules/react-resizable-panels/dist/react-resizable-panels.browser.esm.js","webpack://_N_E/./node_modules/@radix-ui/number/dist/index.mjs","webpack://_N_E/../src/checkbox.tsx","webpack://_N_E/../src/tabs.tsx","webpack://_N_E/./node_modules/@radix-ui/react-use-previous/dist/index.mjs"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArchiveX\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/archive-x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArchiveX = createLucideIcon('ArchiveX', [\n ['rect', { width: '20', height: '5', x: '2', y: '3', rx: '1', key: '1wp1u1' }],\n ['path', { d: 'M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8', key: '1s80jp' }],\n ['path', { d: 'm9.5 17 5-5', key: 'nakeu6' }],\n ['path', { d: 'm9.5 12 5 5', key: '1hccrj' }],\n]);\n\nexport default ArchiveX;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Archive\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/archive\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Archive = createLucideIcon('Archive', [\n ['rect', { width: '20', height: '5', x: '2', y: '3', rx: '1', key: '1wp1u1' }],\n ['path', { d: 'M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8', key: '1s80jp' }],\n ['path', { d: 'M10 12h4', key: 'a56b0p' }],\n]);\n\nexport default Archive;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowLeft = createLucideIcon('ArrowLeft', [\n ['path', { d: 'm12 19-7-7 7-7', key: '1l729n' }],\n ['path', { d: 'M19 12H5', key: 'x3x0zl' }],\n]);\n\nexport default ArrowLeft;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name FileStack\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/file-stack\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FileStack = createLucideIcon('FileStack', [\n ['path', { d: 'M16 2v5h5', key: 'kt2in0' }],\n [\n 'path',\n {\n d: 'M21 6v6.5c0 .8-.7 1.5-1.5 1.5h-7c-.8 0-1.5-.7-1.5-1.5v-9c0-.8.7-1.5 1.5-1.5H17l4 4z',\n key: '1km23n',\n },\n ],\n ['path', { d: 'M7 8v8.8c0 .3.2.6.4.8.2.2.5.4.8.4H15', key: '16874u' }],\n ['path', { d: 'M3 12v8.8c0 .3.2.6.4.8.2.2.5.4.8.4H11', key: 'k2ox98' }],\n]);\n\nexport default FileStack;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Folder\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/folder\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Folder = createLucideIcon('Folder', [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n key: '1kt360',\n },\n ],\n]);\n\nexport default Folder;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name GripVertical\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/grip-vertical\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst GripVertical = createLucideIcon('GripVertical', [\n ['circle', { cx: '9', cy: '12', r: '1', key: '1vctgf' }],\n ['circle', { cx: '9', cy: '5', r: '1', key: 'hp0tcf' }],\n ['circle', { cx: '9', cy: '19', r: '1', key: 'fkjjf6' }],\n ['circle', { cx: '15', cy: '12', r: '1', key: '1tmaij' }],\n ['circle', { cx: '15', cy: '5', r: '1', key: '19l28e' }],\n ['circle', { cx: '15', cy: '19', r: '1', key: 'f4zoj3' }],\n]);\n\nexport default GripVertical;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ListChecks\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/list-checks\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ListChecks = createLucideIcon('ListChecks', [\n ['path', { d: 'm3 17 2 2 4-4', key: '1jhpwq' }],\n ['path', { d: 'm3 7 2 2 4-4', key: '1obspn' }],\n ['path', { d: 'M13 6h8', key: '15sg57' }],\n ['path', { d: 'M13 12h8', key: 'h98zly' }],\n ['path', { d: 'M13 18h8', key: 'oe0vm4' }],\n]);\n\nexport default ListChecks;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Loader\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/loader\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Loader = createLucideIcon('Loader', [\n ['line', { x1: '12', x2: '12', y1: '2', y2: '6', key: 'gza1u7' }],\n ['line', { x1: '12', x2: '12', y1: '18', y2: '22', key: '1qhbu9' }],\n ['line', { x1: '4.93', x2: '7.76', y1: '4.93', y2: '7.76', key: 'xae44r' }],\n ['line', { x1: '16.24', x2: '19.07', y1: '16.24', y2: '19.07', key: 'bxnmvf' }],\n ['line', { x1: '2', x2: '6', y1: '12', y2: '12', key: '89khin' }],\n ['line', { x1: '18', x2: '22', y1: '12', y2: '12', key: 'pb8tfm' }],\n ['line', { x1: '4.93', x2: '7.76', y1: '19.07', y2: '16.24', key: '1uxjnu' }],\n ['line', { x1: '16.24', x2: '19.07', y1: '7.76', y2: '4.93', key: '6duxfx' }],\n]);\n\nexport default Loader;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PackageOpen\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/package-open\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PackageOpen = createLucideIcon('PackageOpen', [\n [\n 'path',\n {\n d: 'M20.91 8.84 8.56 2.23a1.93 1.93 0 0 0-1.81 0L3.1 4.13a2.12 2.12 0 0 0-.05 3.69l12.22 6.93a2 2 0 0 0 1.94 0L21 12.51a2.12 2.12 0 0 0-.09-3.67Z',\n key: '1vy178',\n },\n ],\n [\n 'path',\n {\n d: 'm3.09 8.84 12.35-6.61a1.93 1.93 0 0 1 1.81 0l3.65 1.9a2.12 2.12 0 0 1 .1 3.69L8.73 14.75a2 2 0 0 1-1.94 0L3 12.51a2.12 2.12 0 0 1 .09-3.67Z',\n key: 's3bv25',\n },\n ],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '13', key: '1o4xyi' }],\n [\n 'path',\n {\n d: 'M20 13.5v3.37a2.06 2.06 0 0 1-1.11 1.83l-6 3.08a1.93 1.93 0 0 1-1.78 0l-6-3.08A2.06 2.06 0 0 1 4 16.87V13.5',\n key: '1na2nq',\n },\n ],\n]);\n\nexport default PackageOpen;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pencil\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/pencil\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pencil = createLucideIcon('Pencil', [\n ['path', { d: 'M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z', key: '5qss01' }],\n ['path', { d: 'm15 5 4 4', key: '1mk7zo' }],\n]);\n\nexport default Pencil;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('Plus', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n]);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('Search', [\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n ['path', { d: 'm21 21-4.3-4.3', key: '1qie3q' }],\n]);\n\nexport default Search;\n","import * as React from 'react';\n\n// This module exists to work around Webpack issue https://github.com/webpack/webpack/issues/14814\n\n// eslint-disable-next-line no-restricted-imports\n\nconst {\n createElement,\n createContext,\n createRef,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState\n} = React;\n\n// `toString()` prevents bundlers from trying to `import { useId } from 'react'`\nconst useId = React[\"useId\".toString()];\n\nconst PanelGroupContext = createContext(null);\nPanelGroupContext.displayName = \"PanelGroupContext\";\n\nconst useIsomorphicLayoutEffect = useLayoutEffect ;\n\nconst wrappedUseId = typeof useId === \"function\" ? useId : () => null;\nlet counter = 0;\nfunction useUniqueId(idFromParams = null) {\n const idFromUseId = wrappedUseId();\n const idRef = useRef(idFromParams || idFromUseId || null);\n if (idRef.current === null) {\n idRef.current = \"\" + counter++;\n }\n return idFromParams !== null && idFromParams !== void 0 ? idFromParams : idRef.current;\n}\n\nfunction PanelWithForwardedRef({\n children,\n className: classNameFromProps = \"\",\n collapsedSize,\n collapsible,\n defaultSize,\n forwardedRef,\n id: idFromProps,\n maxSize,\n minSize,\n onCollapse,\n onExpand,\n onResize,\n order,\n style: styleFromProps,\n tagName: Type = \"div\",\n ...rest\n}) {\n const context = useContext(PanelGroupContext);\n if (context === null) {\n throw Error(`Panel components must be rendered within a PanelGroup container`);\n }\n const {\n collapsePanel,\n expandPanel,\n getPanelSize,\n getPanelStyle,\n groupId,\n isPanelCollapsed,\n reevaluatePanelConstraints,\n registerPanel,\n resizePanel,\n unregisterPanel\n } = context;\n const panelId = useUniqueId(idFromProps);\n const panelDataRef = useRef({\n callbacks: {\n onCollapse,\n onExpand,\n onResize\n },\n constraints: {\n collapsedSize,\n collapsible,\n defaultSize,\n maxSize,\n minSize\n },\n id: panelId,\n idIsFromProps: idFromProps !== undefined,\n order\n });\n useRef({\n didLogMissingDefaultSizeWarning: false\n });\n useIsomorphicLayoutEffect(() => {\n const {\n callbacks,\n constraints\n } = panelDataRef.current;\n const prevConstraints = {\n ...constraints\n };\n panelDataRef.current.id = panelId;\n panelDataRef.current.idIsFromProps = idFromProps !== undefined;\n panelDataRef.current.order = order;\n callbacks.onCollapse = onCollapse;\n callbacks.onExpand = onExpand;\n callbacks.onResize = onResize;\n constraints.collapsedSize = collapsedSize;\n constraints.collapsible = collapsible;\n constraints.defaultSize = defaultSize;\n constraints.maxSize = maxSize;\n constraints.minSize = minSize;\n\n // If constraints have changed, we should revisit panel sizes.\n // This is uncommon but may happen if people are trying to implement pixel based constraints.\n if (prevConstraints.collapsedSize !== constraints.collapsedSize || prevConstraints.collapsible !== constraints.collapsible || prevConstraints.maxSize !== constraints.maxSize || prevConstraints.minSize !== constraints.minSize) {\n reevaluatePanelConstraints(panelDataRef.current, prevConstraints);\n }\n });\n useIsomorphicLayoutEffect(() => {\n const panelData = panelDataRef.current;\n registerPanel(panelData);\n return () => {\n unregisterPanel(panelData);\n };\n }, [order, panelId, registerPanel, unregisterPanel]);\n useImperativeHandle(forwardedRef, () => ({\n collapse: () => {\n collapsePanel(panelDataRef.current);\n },\n expand: () => {\n expandPanel(panelDataRef.current);\n },\n getId() {\n return panelId;\n },\n getSize() {\n return getPanelSize(panelDataRef.current);\n },\n isCollapsed() {\n return isPanelCollapsed(panelDataRef.current);\n },\n isExpanded() {\n return !isPanelCollapsed(panelDataRef.current);\n },\n resize: size => {\n resizePanel(panelDataRef.current, size);\n }\n }), [collapsePanel, expandPanel, getPanelSize, isPanelCollapsed, panelId, resizePanel]);\n const style = getPanelStyle(panelDataRef.current, defaultSize);\n return createElement(Type, {\n ...rest,\n children,\n className: classNameFromProps,\n style: {\n ...style,\n ...styleFromProps\n },\n // CSS selectors\n \"data-panel\": \"\",\n \"data-panel-id\": panelId,\n \"data-panel-group-id\": groupId,\n // e2e test attributes\n \"data-panel-collapsible\": undefined,\n \"data-panel-size\": undefined\n });\n}\nconst Panel = forwardRef((props, ref) => createElement(PanelWithForwardedRef, {\n ...props,\n forwardedRef: ref\n}));\nPanelWithForwardedRef.displayName = \"Panel\";\nPanel.displayName = \"forwardRef(Panel)\";\n\nfunction assert(expectedCondition, message = \"Assertion failed!\") {\n if (!expectedCondition) {\n console.error(message);\n throw Error(message);\n }\n}\n\nconst PRECISION = 10;\n\nfunction fuzzyCompareNumbers(actual, expected, fractionDigits = PRECISION) {\n actual = parseFloat(actual.toFixed(fractionDigits));\n expected = parseFloat(expected.toFixed(fractionDigits));\n const delta = actual - expected;\n if (delta === 0) {\n return 0;\n } else {\n return delta > 0 ? 1 : -1;\n }\n}\n\nfunction fuzzyNumbersEqual(actual, expected, fractionDigits) {\n return fuzzyCompareNumbers(actual, expected, fractionDigits) === 0;\n}\n\n// Panel size must be in percentages; pixel values should be pre-converted\nfunction resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex,\n size\n}) {\n const panelConstraints = panelConstraintsArray[panelIndex];\n assert(panelConstraints != null);\n let {\n collapsedSize = 0,\n collapsible,\n maxSize = 100,\n minSize = 0\n } = panelConstraints;\n if (fuzzyCompareNumbers(size, minSize) < 0) {\n if (collapsible) {\n // Collapsible panels should snap closed or open only once they cross the halfway point between collapsed and min size.\n const halfwayPoint = (collapsedSize + minSize) / 2;\n if (fuzzyCompareNumbers(size, halfwayPoint) < 0) {\n size = collapsedSize;\n } else {\n size = minSize;\n }\n } else {\n size = minSize;\n }\n }\n size = Math.min(maxSize, size);\n size = parseFloat(size.toFixed(PRECISION));\n return size;\n}\n\n// All units must be in percentages; pixel values should be pre-converted\nfunction adjustLayoutByDelta({\n delta,\n layout: prevLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n trigger\n}) {\n if (fuzzyNumbersEqual(delta, 0)) {\n return prevLayout;\n }\n const nextLayout = [...prevLayout];\n const [firstPivotIndex, secondPivotIndex] = pivotIndices;\n assert(firstPivotIndex != null);\n assert(secondPivotIndex != null);\n let deltaApplied = 0;\n\n //const DEBUG = [];\n //DEBUG.push(`adjustLayoutByDelta() ${prevLayout.join(\", \")}`);\n //DEBUG.push(` delta: ${delta}`);\n //DEBUG.push(` pivotIndices: ${pivotIndices.join(\", \")}`);\n //DEBUG.push(` trigger: ${trigger}`);\n //DEBUG.push(\"\");\n\n // A resizing panel affects the panels before or after it.\n //\n // A negative delta means the panel(s) immediately after the resize handle should grow/expand by decreasing its offset.\n // Other panels may also need to shrink/contract (and shift) to make room, depending on the min weights.\n //\n // A positive delta means the panel(s) immediately before the resize handle should \"expand\".\n // This is accomplished by shrinking/contracting (and shifting) one or more of the panels after the resize handle.\n\n {\n // If this is a resize triggered by a keyboard event, our logic for expanding/collapsing is different.\n // We no longer check the halfway threshold because this may prevent the panel from expanding at all.\n if (trigger === \"keyboard\") {\n {\n // Check if we should expand a collapsed panel\n const index = delta < 0 ? secondPivotIndex : firstPivotIndex;\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints);\n\n //DEBUG.push(`edge case check 1: ${index}`);\n //DEBUG.push(` -> collapsible? ${constraints.collapsible}`);\n if (panelConstraints.collapsible) {\n const prevSize = prevLayout[index];\n assert(prevSize != null);\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints);\n const {\n collapsedSize = 0,\n minSize = 0\n } = panelConstraints;\n if (fuzzyNumbersEqual(prevSize, collapsedSize)) {\n const localDelta = minSize - prevSize;\n //DEBUG.push(` -> expand delta: ${localDelta}`);\n\n if (fuzzyCompareNumbers(localDelta, Math.abs(delta)) > 0) {\n delta = delta < 0 ? 0 - localDelta : localDelta;\n //DEBUG.push(` -> delta: ${delta}`);\n }\n }\n }\n }\n\n {\n // Check if we should collapse a panel at its minimum size\n const index = delta < 0 ? firstPivotIndex : secondPivotIndex;\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints);\n const {\n collapsible\n } = panelConstraints;\n\n //DEBUG.push(`edge case check 2: ${index}`);\n //DEBUG.push(` -> collapsible? ${collapsible}`);\n if (collapsible) {\n const prevSize = prevLayout[index];\n assert(prevSize != null);\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints);\n const {\n collapsedSize = 0,\n minSize = 0\n } = panelConstraints;\n if (fuzzyNumbersEqual(prevSize, minSize)) {\n const localDelta = prevSize - collapsedSize;\n //DEBUG.push(` -> expand delta: ${localDelta}`);\n\n if (fuzzyCompareNumbers(localDelta, Math.abs(delta)) > 0) {\n delta = delta < 0 ? 0 - localDelta : localDelta;\n //DEBUG.push(` -> delta: ${delta}`);\n }\n }\n }\n }\n }\n //DEBUG.push(\"\");\n }\n\n {\n // Pre-calculate max available delta in the opposite direction of our pivot.\n // This will be the maximum amount we're allowed to expand/contract the panels in the primary direction.\n // If this amount is less than the requested delta, adjust the requested delta.\n // If this amount is greater than the requested delta, that's useful information too–\n // as an expanding panel might change from collapsed to min size.\n\n const increment = delta < 0 ? 1 : -1;\n let index = delta < 0 ? secondPivotIndex : firstPivotIndex;\n let maxAvailableDelta = 0;\n\n //DEBUG.push(\"pre calc...\");\n while (true) {\n const prevSize = prevLayout[index];\n assert(prevSize != null);\n const maxSafeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: index,\n size: 100\n });\n const delta = maxSafeSize - prevSize;\n //DEBUG.push(` ${index}: ${prevSize} -> ${maxSafeSize}`);\n\n maxAvailableDelta += delta;\n index += increment;\n if (index < 0 || index >= panelConstraintsArray.length) {\n break;\n }\n }\n\n //DEBUG.push(` -> max available delta: ${maxAvailableDelta}`);\n const minAbsDelta = Math.min(Math.abs(delta), Math.abs(maxAvailableDelta));\n delta = delta < 0 ? 0 - minAbsDelta : minAbsDelta;\n //DEBUG.push(` -> adjusted delta: ${delta}`);\n //DEBUG.push(\"\");\n }\n\n {\n // Delta added to a panel needs to be subtracted from other panels (within the constraints that those panels allow).\n\n const pivotIndex = delta < 0 ? firstPivotIndex : secondPivotIndex;\n let index = pivotIndex;\n while (index >= 0 && index < panelConstraintsArray.length) {\n const deltaRemaining = Math.abs(delta) - Math.abs(deltaApplied);\n const prevSize = prevLayout[index];\n assert(prevSize != null);\n const unsafeSize = prevSize - deltaRemaining;\n const safeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: index,\n size: unsafeSize\n });\n if (!fuzzyNumbersEqual(prevSize, safeSize)) {\n deltaApplied += prevSize - safeSize;\n nextLayout[index] = safeSize;\n if (deltaApplied.toPrecision(3).localeCompare(Math.abs(delta).toPrecision(3), undefined, {\n numeric: true\n }) >= 0) {\n break;\n }\n }\n if (delta < 0) {\n index--;\n } else {\n index++;\n }\n }\n }\n //DEBUG.push(`after 1: ${nextLayout.join(\", \")}`);\n //DEBUG.push(` deltaApplied: ${deltaApplied}`);\n //DEBUG.push(\"\");\n\n // If we were unable to resize any of the panels panels, return the previous state.\n // This will essentially bailout and ignore e.g. drags past a panel's boundaries\n if (fuzzyNumbersEqual(deltaApplied, 0)) {\n //console.log(DEBUG.join(\"\\n\"));\n return prevLayout;\n }\n {\n // Now distribute the applied delta to the panels in the other direction\n const pivotIndex = delta < 0 ? secondPivotIndex : firstPivotIndex;\n const prevSize = prevLayout[pivotIndex];\n assert(prevSize != null);\n const unsafeSize = prevSize + deltaApplied;\n const safeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: pivotIndex,\n size: unsafeSize\n });\n\n // Adjust the pivot panel before, but only by the amount that surrounding panels were able to shrink/contract.\n nextLayout[pivotIndex] = safeSize;\n\n // Edge case where expanding or contracting one panel caused another one to change collapsed state\n if (!fuzzyNumbersEqual(safeSize, unsafeSize)) {\n let deltaRemaining = unsafeSize - safeSize;\n const pivotIndex = delta < 0 ? secondPivotIndex : firstPivotIndex;\n let index = pivotIndex;\n while (index >= 0 && index < panelConstraintsArray.length) {\n const prevSize = nextLayout[index];\n assert(prevSize != null);\n const unsafeSize = prevSize + deltaRemaining;\n const safeSize = resizePanel({\n panelConstraints: panelConstraintsArray,\n panelIndex: index,\n size: unsafeSize\n });\n if (!fuzzyNumbersEqual(prevSize, safeSize)) {\n deltaRemaining -= safeSize - prevSize;\n nextLayout[index] = safeSize;\n }\n if (fuzzyNumbersEqual(deltaRemaining, 0)) {\n break;\n }\n if (delta > 0) {\n index--;\n } else {\n index++;\n }\n }\n }\n }\n //DEBUG.push(`after 2: ${nextLayout.join(\", \")}`);\n //DEBUG.push(` deltaApplied: ${deltaApplied}`);\n //DEBUG.push(\"\");\n\n const totalSize = nextLayout.reduce((total, size) => size + total, 0);\n //DEBUG.push(`total size: ${totalSize}`);\n //console.log(DEBUG.join(\"\\n\"));\n\n if (!fuzzyNumbersEqual(totalSize, 100)) {\n return prevLayout;\n }\n return nextLayout;\n}\n\nfunction calculateAriaValues({\n layout,\n panelsArray,\n pivotIndices\n}) {\n let currentMinSize = 0;\n let currentMaxSize = 100;\n let totalMinSize = 0;\n let totalMaxSize = 0;\n const firstIndex = pivotIndices[0];\n assert(firstIndex != null);\n\n // A panel's effective min/max sizes also need to account for other panel's sizes.\n panelsArray.forEach((panelData, index) => {\n const {\n constraints\n } = panelData;\n const {\n maxSize = 100,\n minSize = 0\n } = constraints;\n if (index === firstIndex) {\n currentMinSize = minSize;\n currentMaxSize = maxSize;\n } else {\n totalMinSize += minSize;\n totalMaxSize += maxSize;\n }\n });\n const valueMax = Math.min(currentMaxSize, 100 - totalMinSize);\n const valueMin = Math.max(currentMinSize, 100 - totalMaxSize);\n const valueNow = layout[firstIndex];\n return {\n valueMax,\n valueMin,\n valueNow\n };\n}\n\nfunction getResizeHandleElementsForGroup(groupId, scope = document) {\n return Array.from(scope.querySelectorAll(`[data-panel-resize-handle-id][data-panel-group-id=\"${groupId}\"]`));\n}\n\nfunction getResizeHandleElementIndex(groupId, id, scope = document) {\n const handles = getResizeHandleElementsForGroup(groupId, scope);\n const index = handles.findIndex(handle => handle.getAttribute(\"data-panel-resize-handle-id\") === id);\n return index !== null && index !== void 0 ? index : null;\n}\n\nfunction determinePivotIndices(groupId, dragHandleId, panelGroupElement) {\n const index = getResizeHandleElementIndex(groupId, dragHandleId, panelGroupElement);\n return index != null ? [index, index + 1] : [-1, -1];\n}\n\nfunction getPanelGroupElement(id, rootElement = document) {\n var _dataset;\n //If the root element is the PanelGroup\n if (rootElement instanceof HTMLElement && (rootElement === null || rootElement === void 0 ? void 0 : (_dataset = rootElement.dataset) === null || _dataset === void 0 ? void 0 : _dataset.panelGroupId) == id) {\n return rootElement;\n }\n\n //Else query children\n const element = rootElement.querySelector(`[data-panel-group][data-panel-group-id=\"${id}\"]`);\n if (element) {\n return element;\n }\n return null;\n}\n\nfunction getResizeHandleElement(id, scope = document) {\n const element = scope.querySelector(`[data-panel-resize-handle-id=\"${id}\"]`);\n if (element) {\n return element;\n }\n return null;\n}\n\nfunction getResizeHandlePanelIds(groupId, handleId, panelsArray, scope = document) {\n var _panelsArray$index$id, _panelsArray$index, _panelsArray$id, _panelsArray;\n const handle = getResizeHandleElement(handleId, scope);\n const handles = getResizeHandleElementsForGroup(groupId, scope);\n const index = handle ? handles.indexOf(handle) : -1;\n const idBefore = (_panelsArray$index$id = (_panelsArray$index = panelsArray[index]) === null || _panelsArray$index === void 0 ? void 0 : _panelsArray$index.id) !== null && _panelsArray$index$id !== void 0 ? _panelsArray$index$id : null;\n const idAfter = (_panelsArray$id = (_panelsArray = panelsArray[index + 1]) === null || _panelsArray === void 0 ? void 0 : _panelsArray.id) !== null && _panelsArray$id !== void 0 ? _panelsArray$id : null;\n return [idBefore, idAfter];\n}\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nfunction useWindowSplitterPanelGroupBehavior({\n committedValuesRef,\n eagerValuesRef,\n groupId,\n layout,\n panelDataArray,\n panelGroupElement,\n setLayout\n}) {\n useRef({\n didWarnAboutMissingResizeHandle: false\n });\n useIsomorphicLayoutEffect(() => {\n if (!panelGroupElement) {\n return;\n }\n const resizeHandleElements = getResizeHandleElementsForGroup(groupId, panelGroupElement);\n for (let index = 0; index < panelDataArray.length - 1; index++) {\n const {\n valueMax,\n valueMin,\n valueNow\n } = calculateAriaValues({\n layout,\n panelsArray: panelDataArray,\n pivotIndices: [index, index + 1]\n });\n const resizeHandleElement = resizeHandleElements[index];\n if (resizeHandleElement == null) ; else {\n const panelData = panelDataArray[index];\n assert(panelData);\n resizeHandleElement.setAttribute(\"aria-controls\", panelData.id);\n resizeHandleElement.setAttribute(\"aria-valuemax\", \"\" + Math.round(valueMax));\n resizeHandleElement.setAttribute(\"aria-valuemin\", \"\" + Math.round(valueMin));\n resizeHandleElement.setAttribute(\"aria-valuenow\", valueNow != null ? \"\" + Math.round(valueNow) : \"\");\n }\n }\n return () => {\n resizeHandleElements.forEach((resizeHandleElement, index) => {\n resizeHandleElement.removeAttribute(\"aria-controls\");\n resizeHandleElement.removeAttribute(\"aria-valuemax\");\n resizeHandleElement.removeAttribute(\"aria-valuemin\");\n resizeHandleElement.removeAttribute(\"aria-valuenow\");\n });\n };\n }, [groupId, layout, panelDataArray, panelGroupElement]);\n useEffect(() => {\n if (!panelGroupElement) {\n return;\n }\n const eagerValues = eagerValuesRef.current;\n assert(eagerValues);\n const {\n panelDataArray\n } = eagerValues;\n const groupElement = getPanelGroupElement(groupId, panelGroupElement);\n assert(groupElement != null, `No group found for id \"${groupId}\"`);\n const handles = getResizeHandleElementsForGroup(groupId, panelGroupElement);\n assert(handles);\n const cleanupFunctions = handles.map(handle => {\n const handleId = handle.getAttribute(\"data-panel-resize-handle-id\");\n assert(handleId);\n const [idBefore, idAfter] = getResizeHandlePanelIds(groupId, handleId, panelDataArray, panelGroupElement);\n if (idBefore == null || idAfter == null) {\n return () => {};\n }\n const onKeyDown = event => {\n if (event.defaultPrevented) {\n return;\n }\n switch (event.key) {\n case \"Enter\":\n {\n event.preventDefault();\n const index = panelDataArray.findIndex(panelData => panelData.id === idBefore);\n if (index >= 0) {\n const panelData = panelDataArray[index];\n assert(panelData);\n const size = layout[index];\n const {\n collapsedSize = 0,\n collapsible,\n minSize = 0\n } = panelData.constraints;\n if (size != null && collapsible) {\n const nextLayout = adjustLayoutByDelta({\n delta: fuzzyNumbersEqual(size, collapsedSize) ? minSize - collapsedSize : collapsedSize - size,\n layout,\n panelConstraints: panelDataArray.map(panelData => panelData.constraints),\n pivotIndices: determinePivotIndices(groupId, handleId, panelGroupElement),\n trigger: \"keyboard\"\n });\n if (layout !== nextLayout) {\n setLayout(nextLayout);\n }\n }\n }\n break;\n }\n }\n };\n handle.addEventListener(\"keydown\", onKeyDown);\n return () => {\n handle.removeEventListener(\"keydown\", onKeyDown);\n };\n });\n return () => {\n cleanupFunctions.forEach(cleanupFunction => cleanupFunction());\n };\n }, [panelGroupElement, committedValuesRef, eagerValuesRef, groupId, layout, panelDataArray, setLayout]);\n}\n\nfunction areEqual(arrayA, arrayB) {\n if (arrayA.length !== arrayB.length) {\n return false;\n }\n for (let index = 0; index < arrayA.length; index++) {\n if (arrayA[index] !== arrayB[index]) {\n return false;\n }\n }\n return true;\n}\n\nfunction isKeyDown(event) {\n return event.type === \"keydown\";\n}\nfunction isMouseEvent(event) {\n return event.type.startsWith(\"mouse\");\n}\nfunction isTouchEvent(event) {\n return event.type.startsWith(\"touch\");\n}\n\nfunction getResizeEventCursorPosition(direction, event) {\n const isHorizontal = direction === \"horizontal\";\n if (isMouseEvent(event)) {\n return isHorizontal ? event.clientX : event.clientY;\n } else if (isTouchEvent(event)) {\n const firstTouch = event.touches[0];\n assert(firstTouch);\n return isHorizontal ? firstTouch.screenX : firstTouch.screenY;\n } else {\n throw Error(`Unsupported event type \"${event.type}\"`);\n }\n}\n\nfunction calculateDragOffsetPercentage(event, dragHandleId, direction, initialDragState, panelGroupElement) {\n const isHorizontal = direction === \"horizontal\";\n const handleElement = getResizeHandleElement(dragHandleId, panelGroupElement);\n assert(handleElement);\n const groupId = handleElement.getAttribute(\"data-panel-group-id\");\n assert(groupId);\n let {\n initialCursorPosition\n } = initialDragState;\n const cursorPosition = getResizeEventCursorPosition(direction, event);\n const groupElement = getPanelGroupElement(groupId, panelGroupElement);\n assert(groupElement);\n const groupRect = groupElement.getBoundingClientRect();\n const groupSizeInPixels = isHorizontal ? groupRect.width : groupRect.height;\n const offsetPixels = cursorPosition - initialCursorPosition;\n const offsetPercentage = offsetPixels / groupSizeInPixels * 100;\n return offsetPercentage;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/movementX\nfunction calculateDeltaPercentage(event, dragHandleId, direction, initialDragState, keyboardResizeBy, panelGroupElement) {\n if (isKeyDown(event)) {\n const isHorizontal = direction === \"horizontal\";\n let delta = 0;\n if (event.shiftKey) {\n delta = 100;\n } else if (keyboardResizeBy != null) {\n delta = keyboardResizeBy;\n } else {\n delta = 10;\n }\n let movement = 0;\n switch (event.key) {\n case \"ArrowDown\":\n movement = isHorizontal ? 0 : delta;\n break;\n case \"ArrowLeft\":\n movement = isHorizontal ? -delta : 0;\n break;\n case \"ArrowRight\":\n movement = isHorizontal ? delta : 0;\n break;\n case \"ArrowUp\":\n movement = isHorizontal ? 0 : -delta;\n break;\n case \"End\":\n movement = 100;\n break;\n case \"Home\":\n movement = -100;\n break;\n }\n return movement;\n } else {\n if (initialDragState == null) {\n return 0;\n }\n return calculateDragOffsetPercentage(event, dragHandleId, direction, initialDragState, panelGroupElement);\n }\n}\n\nfunction calculateUnsafeDefaultLayout({\n panelDataArray\n}) {\n const layout = Array(panelDataArray.length);\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n let numPanelsWithSizes = 0;\n let remainingSize = 100;\n\n // Distribute default sizes first\n for (let index = 0; index < panelDataArray.length; index++) {\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints);\n const {\n defaultSize\n } = panelConstraints;\n if (defaultSize != null) {\n numPanelsWithSizes++;\n layout[index] = defaultSize;\n remainingSize -= defaultSize;\n }\n }\n\n // Remaining size should be distributed evenly between panels without default sizes\n for (let index = 0; index < panelDataArray.length; index++) {\n const panelConstraints = panelConstraintsArray[index];\n assert(panelConstraints);\n const {\n defaultSize\n } = panelConstraints;\n if (defaultSize != null) {\n continue;\n }\n const numRemainingPanels = panelDataArray.length - numPanelsWithSizes;\n const size = remainingSize / numRemainingPanels;\n numPanelsWithSizes++;\n layout[index] = size;\n remainingSize -= size;\n }\n return layout;\n}\n\n// Layout should be pre-converted into percentages\nfunction callPanelCallbacks(panelsArray, layout, panelIdToLastNotifiedSizeMap) {\n layout.forEach((size, index) => {\n const panelData = panelsArray[index];\n assert(panelData);\n const {\n callbacks,\n constraints,\n id: panelId\n } = panelData;\n const {\n collapsedSize = 0,\n collapsible\n } = constraints;\n const lastNotifiedSize = panelIdToLastNotifiedSizeMap[panelId];\n if (lastNotifiedSize == null || size !== lastNotifiedSize) {\n panelIdToLastNotifiedSizeMap[panelId] = size;\n const {\n onCollapse,\n onExpand,\n onResize\n } = callbacks;\n if (onResize) {\n onResize(size, lastNotifiedSize);\n }\n if (collapsible && (onCollapse || onExpand)) {\n if (onExpand && (lastNotifiedSize == null || lastNotifiedSize === collapsedSize) && size !== collapsedSize) {\n onExpand();\n }\n if (onCollapse && (lastNotifiedSize == null || lastNotifiedSize !== collapsedSize) && size === collapsedSize) {\n onCollapse();\n }\n }\n }\n });\n}\n\nfunction compareLayouts(a, b) {\n if (a.length !== b.length) {\n return false;\n } else {\n for (let index = 0; index < a.length; index++) {\n if (a[index] != b[index]) {\n return false;\n }\n }\n }\n return true;\n}\n\n// This method returns a number between 1 and 100 representing\n\n// the % of the group's overall space this panel should occupy.\nfunction computePanelFlexBoxStyle({\n defaultSize,\n dragState,\n layout,\n panelData,\n panelIndex,\n precision = 3\n}) {\n const size = layout[panelIndex];\n let flexGrow;\n if (size == null) {\n // Initial render (before panels have registered themselves)\n // In order to support server rendering, fall back to default size if provided\n flexGrow = defaultSize !== null && defaultSize !== void 0 ? defaultSize : \"1\";\n } else if (panelData.length === 1) {\n // Special case: Single panel group should always fill full width/height\n flexGrow = \"1\";\n } else {\n flexGrow = size.toPrecision(precision);\n }\n return {\n flexBasis: 0,\n flexGrow,\n flexShrink: 1,\n // Without this, Panel sizes may be unintentionally overridden by their content\n overflow: \"hidden\",\n // Disable pointer events inside of a panel during resize\n // This avoid edge cases like nested iframes\n pointerEvents: dragState !== null ? \"none\" : undefined\n };\n}\n\nlet currentState = null;\nlet element = null;\nfunction getCursorStyle(state) {\n switch (state) {\n case \"horizontal\":\n return \"ew-resize\";\n case \"horizontal-max\":\n return \"w-resize\";\n case \"horizontal-min\":\n return \"e-resize\";\n case \"vertical\":\n return \"ns-resize\";\n case \"vertical-max\":\n return \"n-resize\";\n case \"vertical-min\":\n return \"s-resize\";\n }\n}\nfunction resetGlobalCursorStyle() {\n if (element !== null) {\n document.head.removeChild(element);\n currentState = null;\n element = null;\n }\n}\nfunction setGlobalCursorStyle(state) {\n if (currentState === state) {\n return;\n }\n currentState = state;\n const style = getCursorStyle(state);\n if (element === null) {\n element = document.createElement(\"style\");\n document.head.appendChild(element);\n }\n element.innerHTML = `*{cursor: ${style}!important;}`;\n}\n\nfunction debounce(callback, durationMs = 10) {\n let timeoutId = null;\n let callable = (...args) => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n callback(...args);\n }, durationMs);\n };\n return callable;\n}\n\n// PanelGroup might be rendering in a server-side environment where localStorage is not available\n// or on a browser with cookies/storage disabled.\n// In either case, this function avoids accessing localStorage until needed,\n// and avoids throwing user-visible errors.\nfunction initializeDefaultStorage(storageObject) {\n try {\n if (typeof localStorage !== \"undefined\") {\n // Bypass this check for future calls\n storageObject.getItem = name => {\n return localStorage.getItem(name);\n };\n storageObject.setItem = (name, value) => {\n localStorage.setItem(name, value);\n };\n } else {\n throw new Error(\"localStorage not supported in this environment\");\n }\n } catch (error) {\n console.error(error);\n storageObject.getItem = () => null;\n storageObject.setItem = () => {};\n }\n}\n\nfunction getPanelGroupKey(autoSaveId) {\n return `react-resizable-panels:${autoSaveId}`;\n}\n\n// Note that Panel ids might be user-provided (stable) or useId generated (non-deterministic)\n// so they should not be used as part of the serialization key.\n// Using the min/max size attributes should work well enough as a backup.\n// Pre-sorting by minSize allows remembering layouts even if panels are re-ordered/dragged.\nfunction getPanelKey(panels) {\n return panels.map(panel => {\n const {\n constraints,\n id,\n idIsFromProps,\n order\n } = panel;\n if (idIsFromProps) {\n return id;\n } else {\n return order ? `${order}:${JSON.stringify(constraints)}` : JSON.stringify(constraints);\n }\n }).sort((a, b) => a.localeCompare(b)).join(\",\");\n}\nfunction loadSerializedPanelGroupState(autoSaveId, storage) {\n try {\n const panelGroupKey = getPanelGroupKey(autoSaveId);\n const serialized = storage.getItem(panelGroupKey);\n if (serialized) {\n const parsed = JSON.parse(serialized);\n if (typeof parsed === \"object\" && parsed != null) {\n return parsed;\n }\n }\n } catch (error) {}\n return null;\n}\nfunction loadPanelGroupState(autoSaveId, panels, storage) {\n var _loadSerializedPanelG, _state$panelKey;\n const state = (_loadSerializedPanelG = loadSerializedPanelGroupState(autoSaveId, storage)) !== null && _loadSerializedPanelG !== void 0 ? _loadSerializedPanelG : {};\n const panelKey = getPanelKey(panels);\n return (_state$panelKey = state[panelKey]) !== null && _state$panelKey !== void 0 ? _state$panelKey : null;\n}\nfunction savePanelGroupState(autoSaveId, panels, panelSizesBeforeCollapse, sizes, storage) {\n var _loadSerializedPanelG2;\n const panelGroupKey = getPanelGroupKey(autoSaveId);\n const panelKey = getPanelKey(panels);\n const state = (_loadSerializedPanelG2 = loadSerializedPanelGroupState(autoSaveId, storage)) !== null && _loadSerializedPanelG2 !== void 0 ? _loadSerializedPanelG2 : {};\n state[panelKey] = {\n expandToSizes: Object.fromEntries(panelSizesBeforeCollapse.entries()),\n layout: sizes\n };\n try {\n storage.setItem(panelGroupKey, JSON.stringify(state));\n } catch (error) {\n console.error(error);\n }\n}\n\n// All units must be in percentages; pixel values should be pre-converted\nfunction validatePanelGroupLayout({\n layout: prevLayout,\n panelConstraints\n}) {\n const nextLayout = [...prevLayout];\n const nextLayoutTotalSize = nextLayout.reduce((accumulated, current) => accumulated + current, 0);\n\n // Validate layout expectations\n if (nextLayout.length !== panelConstraints.length) {\n throw Error(`Invalid ${panelConstraints.length} panel layout: ${nextLayout.map(size => `${size}%`).join(\", \")}`);\n } else if (!fuzzyNumbersEqual(nextLayoutTotalSize, 100)) {\n for (let index = 0; index < panelConstraints.length; index++) {\n const unsafeSize = nextLayout[index];\n assert(unsafeSize != null);\n const safeSize = 100 / nextLayoutTotalSize * unsafeSize;\n nextLayout[index] = safeSize;\n }\n }\n let remainingSize = 0;\n\n // First pass: Validate the proposed layout given each panel's constraints\n for (let index = 0; index < panelConstraints.length; index++) {\n const unsafeSize = nextLayout[index];\n assert(unsafeSize != null);\n const safeSize = resizePanel({\n panelConstraints,\n panelIndex: index,\n size: unsafeSize\n });\n if (unsafeSize != safeSize) {\n remainingSize += unsafeSize - safeSize;\n nextLayout[index] = safeSize;\n }\n }\n\n // If there is additional, left over space, assign it to any panel(s) that permits it\n // (It's not worth taking multiple additional passes to evenly distribute)\n if (!fuzzyNumbersEqual(remainingSize, 0)) {\n for (let index = 0; index < panelConstraints.length; index++) {\n const prevSize = nextLayout[index];\n assert(prevSize != null);\n const unsafeSize = prevSize + remainingSize;\n const safeSize = resizePanel({\n panelConstraints,\n panelIndex: index,\n size: unsafeSize\n });\n if (prevSize !== safeSize) {\n remainingSize -= safeSize - prevSize;\n nextLayout[index] = safeSize;\n\n // Once we've used up the remainder, bail\n if (fuzzyNumbersEqual(remainingSize, 0)) {\n break;\n }\n }\n }\n }\n return nextLayout;\n}\n\nconst LOCAL_STORAGE_DEBOUNCE_INTERVAL = 100;\nconst defaultStorage = {\n getItem: name => {\n initializeDefaultStorage(defaultStorage);\n return defaultStorage.getItem(name);\n },\n setItem: (name, value) => {\n initializeDefaultStorage(defaultStorage);\n defaultStorage.setItem(name, value);\n }\n};\nconst debounceMap = {};\nfunction PanelGroupWithForwardedRef({\n autoSaveId = null,\n children,\n className: classNameFromProps = \"\",\n direction,\n forwardedRef,\n id: idFromProps = null,\n onLayout = null,\n keyboardResizeBy = null,\n storage = defaultStorage,\n style: styleFromProps,\n tagName: Type = \"div\",\n ...rest\n}) {\n const groupId = useUniqueId(idFromProps);\n const panelGroupElementRef = useRef(null);\n const [dragState, setDragState] = useState(null);\n const [layout, setLayout] = useState([]);\n const panelIdToLastNotifiedSizeMapRef = useRef({});\n const panelSizeBeforeCollapseRef = useRef(new Map());\n const prevDeltaRef = useRef(0);\n const committedValuesRef = useRef({\n autoSaveId,\n direction,\n dragState,\n id: groupId,\n keyboardResizeBy,\n onLayout,\n storage\n });\n const eagerValuesRef = useRef({\n layout,\n panelDataArray: [],\n panelDataArrayChanged: false\n });\n useRef({\n didLogIdAndOrderWarning: false,\n didLogPanelConstraintsWarning: false,\n prevPanelIds: []\n });\n useImperativeHandle(forwardedRef, () => ({\n getId: () => committedValuesRef.current.id,\n getLayout: () => {\n const {\n layout\n } = eagerValuesRef.current;\n return layout;\n },\n setLayout: unsafeLayout => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n const safeLayout = validatePanelGroupLayout({\n layout: unsafeLayout,\n panelConstraints: panelDataArray.map(panelData => panelData.constraints)\n });\n if (!areEqual(prevLayout, safeLayout)) {\n setLayout(safeLayout);\n eagerValuesRef.current.layout = safeLayout;\n if (onLayout) {\n onLayout(safeLayout);\n }\n callPanelCallbacks(panelDataArray, safeLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n }), []);\n useIsomorphicLayoutEffect(() => {\n committedValuesRef.current.autoSaveId = autoSaveId;\n committedValuesRef.current.direction = direction;\n committedValuesRef.current.dragState = dragState;\n committedValuesRef.current.id = groupId;\n committedValuesRef.current.onLayout = onLayout;\n committedValuesRef.current.storage = storage;\n });\n useWindowSplitterPanelGroupBehavior({\n committedValuesRef,\n eagerValuesRef,\n groupId,\n layout,\n panelDataArray: eagerValuesRef.current.panelDataArray,\n setLayout,\n panelGroupElement: panelGroupElementRef.current\n });\n useEffect(() => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n\n // If this panel has been configured to persist sizing information, save sizes to local storage.\n if (autoSaveId) {\n if (layout.length === 0 || layout.length !== panelDataArray.length) {\n return;\n }\n let debouncedSave = debounceMap[autoSaveId];\n\n // Limit the frequency of localStorage updates.\n if (debouncedSave == null) {\n debouncedSave = debounce(savePanelGroupState, LOCAL_STORAGE_DEBOUNCE_INTERVAL);\n debounceMap[autoSaveId] = debouncedSave;\n }\n\n // Clone mutable data before passing to the debounced function,\n // else we run the risk of saving an incorrect combination of mutable and immutable values to state.\n const clonedPanelDataArray = [...panelDataArray];\n const clonedPanelSizesBeforeCollapse = new Map(panelSizeBeforeCollapseRef.current);\n debouncedSave(autoSaveId, clonedPanelDataArray, clonedPanelSizesBeforeCollapse, layout, storage);\n }\n }, [autoSaveId, layout, storage]);\n\n // DEV warnings\n useEffect(() => {\n });\n\n // External APIs are safe to memoize via committed values ref\n const collapsePanel = useCallback(panelData => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n if (panelData.constraints.collapsible) {\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n const {\n collapsedSize = 0,\n panelSize,\n pivotIndices\n } = panelDataHelper(panelDataArray, panelData, prevLayout);\n assert(panelSize != null);\n if (panelSize !== collapsedSize) {\n // Store size before collapse;\n // This is the size that gets restored if the expand() API is used.\n panelSizeBeforeCollapseRef.current.set(panelData.id, panelSize);\n const isLastPanel = findPanelDataIndex(panelDataArray, panelData) === panelDataArray.length - 1;\n const delta = isLastPanel ? panelSize - collapsedSize : collapsedSize - panelSize;\n const nextLayout = adjustLayoutByDelta({\n delta,\n layout: prevLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n trigger: \"imperative-api\"\n });\n if (!compareLayouts(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n }\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const expandPanel = useCallback(panelData => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n if (panelData.constraints.collapsible) {\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n const {\n collapsedSize = 0,\n panelSize,\n minSize = 0,\n pivotIndices\n } = panelDataHelper(panelDataArray, panelData, prevLayout);\n if (panelSize === collapsedSize) {\n // Restore this panel to the size it was before it was collapsed, if possible.\n const prevPanelSize = panelSizeBeforeCollapseRef.current.get(panelData.id);\n const baseSize = prevPanelSize != null && prevPanelSize >= minSize ? prevPanelSize : minSize;\n const isLastPanel = findPanelDataIndex(panelDataArray, panelData) === panelDataArray.length - 1;\n const delta = isLastPanel ? panelSize - baseSize : baseSize - panelSize;\n const nextLayout = adjustLayoutByDelta({\n delta,\n layout: prevLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n trigger: \"imperative-api\"\n });\n if (!compareLayouts(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n }\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const getPanelSize = useCallback(panelData => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n panelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n assert(panelSize != null);\n return panelSize;\n }, []);\n\n // This API should never read from committedValuesRef\n const getPanelStyle = useCallback((panelData, defaultSize) => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n const panelIndex = findPanelDataIndex(panelDataArray, panelData);\n return computePanelFlexBoxStyle({\n defaultSize,\n dragState,\n layout,\n panelData: panelDataArray,\n panelIndex\n });\n }, [dragState, layout]);\n\n // External APIs are safe to memoize via committed values ref\n const isPanelCollapsed = useCallback(panelData => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n collapsedSize = 0,\n collapsible,\n panelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n return collapsible === true && panelSize === collapsedSize;\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const isPanelExpanded = useCallback(panelData => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n collapsedSize = 0,\n collapsible,\n panelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n assert(panelSize != null);\n return !collapsible || panelSize > collapsedSize;\n }, []);\n const registerPanel = useCallback(panelData => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n panelDataArray.push(panelData);\n panelDataArray.sort((panelA, panelB) => {\n const orderA = panelA.order;\n const orderB = panelB.order;\n if (orderA == null && orderB == null) {\n return 0;\n } else if (orderA == null) {\n return -1;\n } else if (orderB == null) {\n return 1;\n } else {\n return orderA - orderB;\n }\n });\n eagerValuesRef.current.panelDataArrayChanged = true;\n }, []);\n\n // (Re)calculate group layout whenever panels are registered or unregistered.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useIsomorphicLayoutEffect(() => {\n if (eagerValuesRef.current.panelDataArrayChanged) {\n eagerValuesRef.current.panelDataArrayChanged = false;\n const {\n autoSaveId,\n onLayout,\n storage\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n\n // If this panel has been configured to persist sizing information,\n // default size should be restored from local storage if possible.\n let unsafeLayout = null;\n if (autoSaveId) {\n const state = loadPanelGroupState(autoSaveId, panelDataArray, storage);\n if (state) {\n panelSizeBeforeCollapseRef.current = new Map(Object.entries(state.expandToSizes));\n unsafeLayout = state.layout;\n }\n }\n if (unsafeLayout == null) {\n unsafeLayout = calculateUnsafeDefaultLayout({\n panelDataArray\n });\n }\n\n // Validate even saved layouts in case something has changed since last render\n // e.g. for pixel groups, this could be the size of the window\n const nextLayout = validatePanelGroupLayout({\n layout: unsafeLayout,\n panelConstraints: panelDataArray.map(panelData => panelData.constraints)\n });\n if (!areEqual(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }\n });\n const registerResizeHandle = useCallback(dragHandleId => {\n return function resizeHandler(event) {\n event.preventDefault();\n const panelGroupElement = panelGroupElementRef.current;\n if (!panelGroupElement) {\n return () => null;\n }\n const {\n direction,\n dragState,\n id: groupId,\n keyboardResizeBy,\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n initialLayout\n } = dragState !== null && dragState !== void 0 ? dragState : {};\n const pivotIndices = determinePivotIndices(groupId, dragHandleId, panelGroupElement);\n let delta = calculateDeltaPercentage(event, dragHandleId, direction, dragState, keyboardResizeBy, panelGroupElement);\n if (delta === 0) {\n return;\n }\n\n // Support RTL layouts\n const isHorizontal = direction === \"horizontal\";\n if (document.dir === \"rtl\" && isHorizontal) {\n delta = -delta;\n }\n const panelConstraints = panelDataArray.map(panelData => panelData.constraints);\n const nextLayout = adjustLayoutByDelta({\n delta,\n layout: initialLayout !== null && initialLayout !== void 0 ? initialLayout : prevLayout,\n panelConstraints,\n pivotIndices,\n trigger: isKeyDown(event) ? \"keyboard\" : \"mouse-or-touch\"\n });\n const layoutChanged = !compareLayouts(prevLayout, nextLayout);\n\n // Only update the cursor for layout changes triggered by touch/mouse events (not keyboard)\n // Update the cursor even if the layout hasn't changed (we may need to show an invalid cursor state)\n if (isMouseEvent(event) || isTouchEvent(event)) {\n // Watch for multiple subsequent deltas; this might occur for tiny cursor movements.\n // In this case, Panel sizes might not change–\n // but updating cursor in this scenario would cause a flicker.\n if (prevDeltaRef.current != delta) {\n prevDeltaRef.current = delta;\n if (!layoutChanged) {\n // If the pointer has moved too far to resize the panel any further,\n // update the cursor style for a visual clue.\n // This mimics VS Code behavior.\n\n if (isHorizontal) {\n setGlobalCursorStyle(delta < 0 ? \"horizontal-min\" : \"horizontal-max\");\n } else {\n setGlobalCursorStyle(delta < 0 ? \"vertical-min\" : \"vertical-max\");\n }\n } else {\n // Reset the cursor style to the the normal resize cursor.\n setGlobalCursorStyle(isHorizontal ? \"horizontal\" : \"vertical\");\n }\n }\n }\n if (layoutChanged) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n };\n }, []);\n\n // External APIs are safe to memoize via committed values ref\n const resizePanel = useCallback((panelData, unsafePanelSize) => {\n const {\n onLayout\n } = committedValuesRef.current;\n const {\n layout: prevLayout,\n panelDataArray\n } = eagerValuesRef.current;\n const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints);\n const {\n panelSize,\n pivotIndices\n } = panelDataHelper(panelDataArray, panelData, prevLayout);\n assert(panelSize != null);\n const isLastPanel = findPanelDataIndex(panelDataArray, panelData) === panelDataArray.length - 1;\n const delta = isLastPanel ? panelSize - unsafePanelSize : unsafePanelSize - panelSize;\n const nextLayout = adjustLayoutByDelta({\n delta,\n layout: prevLayout,\n panelConstraints: panelConstraintsArray,\n pivotIndices,\n trigger: \"imperative-api\"\n });\n if (!compareLayouts(prevLayout, nextLayout)) {\n setLayout(nextLayout);\n eagerValuesRef.current.layout = nextLayout;\n if (onLayout) {\n onLayout(nextLayout);\n }\n callPanelCallbacks(panelDataArray, nextLayout, panelIdToLastNotifiedSizeMapRef.current);\n }\n }, []);\n const reevaluatePanelConstraints = useCallback((panelData, prevConstraints) => {\n const {\n layout,\n panelDataArray\n } = eagerValuesRef.current;\n const {\n collapsedSize: prevCollapsedSize = 0,\n collapsible: prevCollapsible\n } = prevConstraints;\n const {\n collapsedSize: nextCollapsedSize = 0,\n collapsible: nextCollapsible,\n maxSize: nextMaxSize = 100,\n minSize: nextMinSize = 0\n } = panelData.constraints;\n const {\n panelSize: prevPanelSize\n } = panelDataHelper(panelDataArray, panelData, layout);\n assert(prevPanelSize != null);\n if (prevCollapsible && nextCollapsible && prevPanelSize === prevCollapsedSize) {\n if (prevCollapsedSize !== nextCollapsedSize) {\n resizePanel(panelData, nextCollapsedSize);\n }\n } else if (prevPanelSize < nextMinSize) {\n resizePanel(panelData, nextMinSize);\n } else if (prevPanelSize > nextMaxSize) {\n resizePanel(panelData, nextMaxSize);\n }\n }, [resizePanel]);\n const startDragging = useCallback((dragHandleId, event) => {\n const {\n direction\n } = committedValuesRef.current;\n const {\n layout\n } = eagerValuesRef.current;\n if (!panelGroupElementRef.current) {\n return;\n }\n const handleElement = getResizeHandleElement(dragHandleId, panelGroupElementRef.current);\n assert(handleElement);\n const initialCursorPosition = getResizeEventCursorPosition(direction, event);\n setDragState({\n dragHandleId,\n dragHandleRect: handleElement.getBoundingClientRect(),\n initialCursorPosition,\n initialLayout: layout\n });\n }, []);\n const stopDragging = useCallback(() => {\n resetGlobalCursorStyle();\n setDragState(null);\n }, []);\n const unregisterPanel = useCallback(panelData => {\n const {\n panelDataArray\n } = eagerValuesRef.current;\n const index = findPanelDataIndex(panelDataArray, panelData);\n if (index >= 0) {\n panelDataArray.splice(index, 1);\n\n // TRICKY\n // When a panel is removed from the group, we should delete the most recent prev-size entry for it.\n // If we don't do this, then a conditionally rendered panel might not call onResize when it's re-mounted.\n // Strict effects mode makes this tricky though because all panels will be registered, unregistered, then re-registered on mount.\n delete panelIdToLastNotifiedSizeMapRef.current[panelData.id];\n eagerValuesRef.current.panelDataArrayChanged = true;\n }\n }, []);\n const context = useMemo(() => ({\n collapsePanel,\n direction,\n dragState,\n expandPanel,\n getPanelSize,\n getPanelStyle,\n groupId,\n isPanelCollapsed,\n isPanelExpanded,\n reevaluatePanelConstraints,\n registerPanel,\n registerResizeHandle,\n resizePanel,\n startDragging,\n stopDragging,\n unregisterPanel,\n panelGroupElement: panelGroupElementRef.current\n }), [collapsePanel, dragState, direction, expandPanel, getPanelSize, getPanelStyle, groupId, isPanelCollapsed, isPanelExpanded, reevaluatePanelConstraints, registerPanel, registerResizeHandle, resizePanel, startDragging, stopDragging, unregisterPanel]);\n const style = {\n display: \"flex\",\n flexDirection: direction === \"horizontal\" ? \"row\" : \"column\",\n height: \"100%\",\n overflow: \"hidden\",\n width: \"100%\"\n };\n return createElement(PanelGroupContext.Provider, {\n value: context\n }, createElement(Type, {\n ...rest,\n children,\n className: classNameFromProps,\n style: {\n ...style,\n ...styleFromProps\n },\n ref: panelGroupElementRef,\n // CSS selectors\n \"data-panel-group\": \"\",\n \"data-panel-group-direction\": direction,\n \"data-panel-group-id\": groupId\n }));\n}\nconst PanelGroup = forwardRef((props, ref) => createElement(PanelGroupWithForwardedRef, {\n ...props,\n forwardedRef: ref\n}));\nPanelGroupWithForwardedRef.displayName = \"PanelGroup\";\nPanelGroup.displayName = \"forwardRef(PanelGroup)\";\nfunction findPanelDataIndex(panelDataArray, panelData) {\n return panelDataArray.findIndex(prevPanelData => prevPanelData === panelData || prevPanelData.id === panelData.id);\n}\nfunction panelDataHelper(panelDataArray, panelData, layout) {\n const panelIndex = findPanelDataIndex(panelDataArray, panelData);\n const isLastPanel = panelIndex === panelDataArray.length - 1;\n const pivotIndices = isLastPanel ? [panelIndex - 1, panelIndex] : [panelIndex, panelIndex + 1];\n const panelSize = layout[panelIndex];\n return {\n ...panelData.constraints,\n panelSize,\n pivotIndices\n };\n}\n\n// https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/\n\nfunction useWindowSplitterResizeHandlerBehavior({\n disabled,\n handleId,\n resizeHandler,\n panelGroupElement\n}) {\n useEffect(() => {\n if (disabled || resizeHandler == null || panelGroupElement == null) {\n return;\n }\n const handleElement = getResizeHandleElement(handleId, panelGroupElement);\n if (handleElement == null) {\n return;\n }\n const onKeyDown = event => {\n if (event.defaultPrevented) {\n return;\n }\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowLeft\":\n case \"ArrowRight\":\n case \"ArrowUp\":\n case \"End\":\n case \"Home\":\n {\n event.preventDefault();\n resizeHandler(event);\n break;\n }\n case \"F6\":\n {\n event.preventDefault();\n const groupId = handleElement.getAttribute(\"data-panel-group-id\");\n assert(groupId);\n const handles = getResizeHandleElementsForGroup(groupId, panelGroupElement);\n const index = getResizeHandleElementIndex(groupId, handleId, panelGroupElement);\n assert(index !== null);\n const nextIndex = event.shiftKey ? index > 0 ? index - 1 : handles.length - 1 : index + 1 < handles.length ? index + 1 : 0;\n const nextHandle = handles[nextIndex];\n nextHandle.focus();\n break;\n }\n }\n };\n handleElement.addEventListener(\"keydown\", onKeyDown);\n return () => {\n handleElement.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [panelGroupElement, disabled, handleId, resizeHandler]);\n}\n\nfunction PanelResizeHandle({\n children = null,\n className: classNameFromProps = \"\",\n disabled = false,\n id: idFromProps,\n onDragging,\n style: styleFromProps = {},\n tabIndex = 0,\n tagName: Type = \"div\",\n ...rest\n}) {\n const elementRef = useRef(null);\n\n // Use a ref to guard against users passing inline props\n const callbacksRef = useRef({\n onDragging\n });\n useEffect(() => {\n callbacksRef.current.onDragging = onDragging;\n });\n const panelGroupContext = useContext(PanelGroupContext);\n if (panelGroupContext === null) {\n throw Error(`PanelResizeHandle components must be rendered within a PanelGroup container`);\n }\n const {\n direction,\n dragState,\n groupId,\n registerResizeHandle,\n startDragging,\n stopDragging,\n panelGroupElement\n } = panelGroupContext;\n const resizeHandleId = useUniqueId(idFromProps);\n const isDragging = (dragState === null || dragState === void 0 ? void 0 : dragState.dragHandleId) === resizeHandleId;\n const [isFocused, setIsFocused] = useState(false);\n const [resizeHandler, setResizeHandler] = useState(null);\n const stopDraggingAndBlur = useCallback(() => {\n // Clicking on the drag handle shouldn't leave it focused;\n // That would cause the PanelGroup to think it was still active.\n const element = elementRef.current;\n assert(element);\n element.blur();\n stopDragging();\n const {\n onDragging\n } = callbacksRef.current;\n if (onDragging) {\n onDragging(false);\n }\n }, [stopDragging]);\n useEffect(() => {\n if (disabled) {\n setResizeHandler(null);\n } else {\n const resizeHandler = registerResizeHandle(resizeHandleId);\n setResizeHandler(() => resizeHandler);\n }\n }, [disabled, resizeHandleId, registerResizeHandle]);\n useEffect(() => {\n if (disabled || resizeHandler == null || !isDragging) {\n return;\n }\n const onMove = event => {\n resizeHandler(event);\n };\n const onMouseLeave = event => {\n resizeHandler(event);\n };\n const element = elementRef.current;\n assert(element);\n const targetDocument = element.ownerDocument;\n targetDocument.body.addEventListener(\"contextmenu\", stopDraggingAndBlur);\n targetDocument.body.addEventListener(\"mousemove\", onMove);\n targetDocument.body.addEventListener(\"touchmove\", onMove);\n targetDocument.body.addEventListener(\"mouseleave\", onMouseLeave);\n window.addEventListener(\"mouseup\", stopDraggingAndBlur);\n window.addEventListener(\"touchend\", stopDraggingAndBlur);\n return () => {\n targetDocument.body.removeEventListener(\"contextmenu\", stopDraggingAndBlur);\n targetDocument.body.removeEventListener(\"mousemove\", onMove);\n targetDocument.body.removeEventListener(\"touchmove\", onMove);\n targetDocument.body.removeEventListener(\"mouseleave\", onMouseLeave);\n window.removeEventListener(\"mouseup\", stopDraggingAndBlur);\n window.removeEventListener(\"touchend\", stopDraggingAndBlur);\n };\n }, [direction, disabled, isDragging, resizeHandler, stopDraggingAndBlur]);\n useWindowSplitterResizeHandlerBehavior({\n disabled,\n handleId: resizeHandleId,\n resizeHandler,\n panelGroupElement\n });\n const style = {\n cursor: getCursorStyle(direction),\n touchAction: \"none\",\n userSelect: \"none\"\n };\n return createElement(Type, {\n ...rest,\n children,\n className: classNameFromProps,\n onBlur: () => setIsFocused(false),\n onFocus: () => setIsFocused(true),\n onMouseDown: event => {\n startDragging(resizeHandleId, event.nativeEvent);\n const callbacks = callbacksRef.current;\n assert(callbacks);\n const {\n onDragging\n } = callbacks;\n if (onDragging) {\n onDragging(true);\n }\n },\n onMouseUp: stopDraggingAndBlur,\n onTouchCancel: stopDraggingAndBlur,\n onTouchEnd: stopDraggingAndBlur,\n onTouchStart: event => {\n startDragging(resizeHandleId, event.nativeEvent);\n const callbacks = callbacksRef.current;\n assert(callbacks);\n const {\n onDragging\n } = callbacks;\n if (onDragging) {\n onDragging(true);\n }\n },\n ref: elementRef,\n role: \"separator\",\n style: {\n ...style,\n ...styleFromProps\n },\n tabIndex,\n // CSS selectors\n \"data-panel-group-direction\": direction,\n \"data-panel-group-id\": groupId,\n \"data-resize-handle\": \"\",\n \"data-resize-handle-active\": isDragging ? \"pointer\" : isFocused ? \"keyboard\" : undefined,\n \"data-panel-resize-handle-enabled\": !disabled,\n \"data-panel-resize-handle-id\": resizeHandleId\n });\n}\nPanelResizeHandle.displayName = \"PanelResizeHandle\";\n\nfunction getPanelElement(id, scope = document) {\n const element = scope.querySelector(`[data-panel-id=\"${id}\"]`);\n if (element) {\n return element;\n }\n return null;\n}\n\nfunction getPanelElementsForGroup(groupId, scope = document) {\n return Array.from(scope.querySelectorAll(`[data-panel][data-panel-group-id=\"${groupId}\"]`));\n}\n\nexport { Panel, PanelGroup, PanelResizeHandle, assert, getPanelElement, getPanelElementsForGroup, getPanelGroupElement, getResizeHandleElement, getResizeHandleElementIndex, getResizeHandleElementsForGroup, getResizeHandlePanelIds };\n","// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type { Scope } from '@radix-ui/react-context';\n\nconst CHECKBOX_NAME = 'Checkbox';\n\ntype ScopedProps<P> = P & { __scopeCheckbox?: Scope };\nconst [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\n\ntype CheckedState = boolean | 'indeterminate';\n\ntype CheckboxContextValue<State extends CheckedState | boolean = CheckedState> = {\n checked: State | boolean;\n setChecked: React.Dispatch<React.SetStateAction<State | boolean>>;\n disabled: boolean | undefined;\n control: HTMLButtonElement | null;\n setControl: React.Dispatch<React.SetStateAction<HTMLButtonElement | null>>;\n name: string | undefined;\n form: string | undefined;\n value: string | number | readonly string[];\n hasConsumerStoppedPropagationRef: React.RefObject<boolean>;\n required: boolean | undefined;\n defaultChecked: boolean | undefined;\n isFormControl: boolean;\n bubbleInput: HTMLInputElement | null;\n setBubbleInput: React.Dispatch<React.SetStateAction<HTMLInputElement | null>>;\n};\n\nconst [CheckboxProviderImpl, useCheckboxContext] =\n createCheckboxContext<CheckboxContextValue>(CHECKBOX_NAME);\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CheckboxProviderProps<State extends CheckedState = CheckedState> {\n checked?: State | boolean;\n defaultChecked?: State | boolean;\n required?: boolean;\n onCheckedChange?(checked: State | boolean): void;\n name?: string;\n form?: string;\n disabled?: boolean;\n value?: string | number | readonly string[];\n children?: React.ReactNode;\n}\n\nfunction CheckboxProvider<State extends CheckedState = CheckedState>(\n props: ScopedProps<CheckboxProviderProps<State>>\n) {\n const {\n __scopeCheckbox,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = 'on',\n // @ts-expect-error\n internal_do_not_use_render,\n } = props;\n\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: CHECKBOX_NAME,\n });\n const [control, setControl] = React.useState<HTMLButtonElement | null>(null);\n const [bubbleInput, setBubbleInput] = React.useState<HTMLInputElement | null>(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control\n ? !!form || !!control.closest('form')\n : // We set this to true by default so that events bubble to forms without JS (SSR)\n true;\n\n const context: CheckboxContextValue<State> = {\n checked: checked,\n disabled: disabled,\n setChecked: setChecked,\n control: control,\n setControl: setControl,\n name: name,\n form: form,\n value: value,\n hasConsumerStoppedPropagationRef: hasConsumerStoppedPropagationRef,\n required: required,\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,\n isFormControl: isFormControl,\n bubbleInput,\n setBubbleInput,\n };\n\n return (\n <CheckboxProviderImpl\n scope={__scopeCheckbox}\n {...(context as unknown as CheckboxContextValue<CheckedState>)}\n >\n {isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children}\n </CheckboxProviderImpl>\n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'CheckboxTrigger';\n\ninterface CheckboxTriggerProps\n extends Omit<\n React.ComponentPropsWithoutRef<typeof Primitive.button>,\n keyof CheckboxProviderProps\n > {\n children?: React.ReactNode;\n}\n\nconst CheckboxTrigger = React.forwardRef<HTMLButtonElement, CheckboxTriggerProps>(\n (\n { __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }: ScopedProps<CheckboxTriggerProps>,\n forwardedRef\n ) => {\n const {\n control,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput,\n } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = control?.form;\n if (form) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form.addEventListener('reset', reset);\n return () => form.removeEventListener('reset', reset);\n }\n }, [control, setChecked]);\n\n return (\n <Primitive.button\n type=\"button\"\n role=\"checkbox\"\n aria-checked={isIndeterminate(checked) ? 'mixed' : checked}\n aria-required={required}\n data-state={getState(checked)}\n data-disabled={disabled ? '' : undefined}\n disabled={disabled}\n value={value}\n {...checkboxProps}\n ref={composedRefs}\n onKeyDown={composeEventHandlers(onKeyDown, (event) => {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n if (event.key === 'Enter') event.preventDefault();\n })}\n onClick={composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => (isIndeterminate(prevChecked) ? true : !prevChecked));\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n // if checkbox has a bubble input and is a form control, stop\n // propagation from the button so that we only propagate one click\n // event (from the input). We propagate changes from an input so\n // that native form validation works and form events reflect\n // checkbox updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })}\n />\n );\n }\n);\n\nCheckboxTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Checkbox\n * -----------------------------------------------------------------------------------------------*/\n\ntype CheckboxElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface CheckboxProps extends Omit<PrimitiveButtonProps, 'checked' | 'defaultChecked'> {\n checked?: CheckedState;\n defaultChecked?: CheckedState;\n required?: boolean;\n onCheckedChange?(checked: CheckedState): void;\n}\n\nconst Checkbox = React.forwardRef<CheckboxElement, CheckboxProps>(\n (props: ScopedProps<CheckboxProps>, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n\n return (\n <CheckboxProvider\n __scopeCheckbox={__scopeCheckbox}\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n required={required}\n onCheckedChange={onCheckedChange}\n name={name}\n form={form}\n value={value}\n // @ts-expect-error\n internal_do_not_use_render={({ isFormControl }: CheckboxContextValue) => (\n <>\n <CheckboxTrigger\n {...checkboxProps}\n ref={forwardedRef}\n // @ts-expect-error\n __scopeCheckbox={__scopeCheckbox}\n />\n {isFormControl && (\n <CheckboxBubbleInput\n // @ts-expect-error\n __scopeCheckbox={__scopeCheckbox}\n />\n )}\n </>\n )}\n />\n );\n }\n);\n\nCheckbox.displayName = CHECKBOX_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'CheckboxIndicator';\n\ntype CheckboxIndicatorElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface CheckboxIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst CheckboxIndicator = React.forwardRef<CheckboxIndicatorElement, CheckboxIndicatorProps>(\n (props: ScopedProps<CheckboxIndicatorProps>, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return (\n <Presence\n present={forceMount || isIndeterminate(context.checked) || context.checked === true}\n >\n <Primitive.span\n data-state={getState(context.checked)}\n data-disabled={context.disabled ? '' : undefined}\n {...indicatorProps}\n ref={forwardedRef}\n style={{ pointerEvents: 'none', ...props.style }}\n />\n </Presence>\n );\n }\n);\n\nCheckboxIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxBubbleInput\n * -----------------------------------------------------------------------------------------------*/\n\nconst BUBBLE_INPUT_NAME = 'CheckboxBubbleInput';\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Primitive.input>;\ninterface CheckboxBubbleInputProps extends Omit<InputProps, 'checked'> {}\n\nconst CheckboxBubbleInput = React.forwardRef<HTMLInputElement, CheckboxBubbleInputProps>(\n ({ __scopeCheckbox, ...props }: ScopedProps<CheckboxBubbleInputProps>, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput,\n } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);\n\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n\n // Bubble checked change to parents (e.g form change event)\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n 'checked'\n ) as PropertyDescriptor;\n const setChecked = descriptor.set;\n\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return (\n <Primitive.input\n type=\"checkbox\"\n aria-hidden\n defaultChecked={defaultChecked ?? defaultCheckedRef.current}\n required={required}\n disabled={disabled}\n name={name}\n value={value}\n form={form}\n {...props}\n tabIndex={-1}\n ref={composedRefs}\n style={{\n ...props.style,\n ...controlSize,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: 'translateX(-100%)',\n }}\n />\n );\n }\n);\n\nCheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction isFunction(value: unknown): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n\nfunction isIndeterminate(checked?: CheckedState): checked is 'indeterminate' {\n return checked === 'indeterminate';\n}\n\nfunction getState(checked: CheckedState) {\n return isIndeterminate(checked) ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n}\n\nexport {\n createCheckboxScope,\n //\n Checkbox,\n CheckboxProvider,\n CheckboxTrigger,\n CheckboxIndicator,\n CheckboxBubbleInput,\n //\n Checkbox as Root,\n CheckboxProvider as Provider,\n CheckboxTrigger as Trigger,\n CheckboxIndicator as Indicator,\n CheckboxBubbleInput as BubbleInput,\n};\nexport type {\n CheckboxProps,\n CheckboxProviderProps,\n CheckboxTriggerProps,\n CheckboxIndicatorProps,\n CheckboxBubbleInputProps,\n CheckedState,\n};\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { createRovingFocusGroupScope } from '@radix-ui/react-roving-focus';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as RovingFocusGroup from '@radix-ui/react-roving-focus';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useId } from '@radix-ui/react-id';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Tabs\n * -----------------------------------------------------------------------------------------------*/\n\nconst TABS_NAME = 'Tabs';\n\ntype ScopedProps<P> = P & { __scopeTabs?: Scope };\nconst [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope,\n]);\nconst useRovingFocusGroupScope = createRovingFocusGroupScope();\n\ntype TabsContextValue = {\n baseId: string;\n value: string;\n onValueChange: (value: string) => void;\n orientation?: TabsProps['orientation'];\n dir?: TabsProps['dir'];\n activationMode?: TabsProps['activationMode'];\n};\n\nconst [TabsProvider, useTabsContext] = createTabsContext<TabsContextValue>(TABS_NAME);\n\ntype TabsElement = React.ComponentRef<typeof Primitive.div>;\ntype RovingFocusGroupProps = React.ComponentPropsWithoutRef<typeof RovingFocusGroup.Root>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface TabsProps extends PrimitiveDivProps {\n /** The value for the selected tab, if controlled */\n value?: string;\n /** The value of the tab to select by default, if uncontrolled */\n defaultValue?: string;\n /** A function called when a new tab is selected */\n onValueChange?: (value: string) => void;\n /**\n * The orientation the tabs are layed out.\n * Mainly so arrow navigation is done accordingly (left & right vs. up & down)\n * @defaultValue horizontal\n */\n orientation?: RovingFocusGroupProps['orientation'];\n /**\n * The direction of navigation between toolbar items.\n */\n dir?: RovingFocusGroupProps['dir'];\n /**\n * Whether a tab is activated automatically or manually.\n * @defaultValue automatic\n * */\n activationMode?: 'automatic' | 'manual';\n}\n\nconst Tabs = React.forwardRef<TabsElement, TabsProps>(\n (props: ScopedProps<TabsProps>, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n dir,\n activationMode = 'automatic',\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? '',\n caller: TABS_NAME,\n });\n\n return (\n <TabsProvider\n scope={__scopeTabs}\n baseId={useId()}\n value={value}\n onValueChange={setValue}\n orientation={orientation}\n dir={direction}\n activationMode={activationMode}\n >\n <Primitive.div\n dir={direction}\n data-orientation={orientation}\n {...tabsProps}\n ref={forwardedRef}\n />\n </TabsProvider>\n );\n }\n);\n\nTabs.displayName = TABS_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TabsList\n * -----------------------------------------------------------------------------------------------*/\n\nconst TAB_LIST_NAME = 'TabsList';\n\ntype TabsListElement = React.ComponentRef<typeof Primitive.div>;\ninterface TabsListProps extends PrimitiveDivProps {\n loop?: RovingFocusGroupProps['loop'];\n}\n\nconst TabsList = React.forwardRef<TabsListElement, TabsListProps>(\n (props: ScopedProps<TabsListProps>, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return (\n <RovingFocusGroup.Root\n asChild\n {...rovingFocusGroupScope}\n orientation={context.orientation}\n dir={context.dir}\n loop={loop}\n >\n <Primitive.div\n role=\"tablist\"\n aria-orientation={context.orientation}\n {...listProps}\n ref={forwardedRef}\n />\n </RovingFocusGroup.Root>\n );\n }\n);\n\nTabsList.displayName = TAB_LIST_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TabsTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'TabsTrigger';\n\ntype TabsTriggerElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface TabsTriggerProps extends PrimitiveButtonProps {\n value: string;\n}\n\nconst TabsTrigger = React.forwardRef<TabsTriggerElement, TabsTriggerProps>(\n (props: ScopedProps<TabsTriggerProps>, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return (\n <RovingFocusGroup.Item\n asChild\n {...rovingFocusGroupScope}\n focusable={!disabled}\n active={isSelected}\n >\n <Primitive.button\n type=\"button\"\n role=\"tab\"\n aria-selected={isSelected}\n aria-controls={contentId}\n data-state={isSelected ? 'active' : 'inactive'}\n data-disabled={disabled ? '' : undefined}\n disabled={disabled}\n id={triggerId}\n {...triggerProps}\n ref={forwardedRef}\n onMouseDown={composeEventHandlers(props.onMouseDown, (event) => {\n // only call handler if it's the left button (mousedown gets triggered by all mouse buttons)\n // but not when the control key is pressed (avoiding MacOS right click)\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n // prevent focus to avoid accidental activation\n event.preventDefault();\n }\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if ([' ', 'Enter'].includes(event.key)) context.onValueChange(value);\n })}\n onFocus={composeEventHandlers(props.onFocus, () => {\n // handle \"automatic\" activation if necessary\n // ie. activate tab following focus\n const isAutomaticActivation = context.activationMode !== 'manual';\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })}\n />\n </RovingFocusGroup.Item>\n );\n }\n);\n\nTabsTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * TabsContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'TabsContent';\n\ntype TabsContentElement = React.ComponentRef<typeof Primitive.div>;\ninterface TabsContentProps extends PrimitiveDivProps {\n value: string;\n\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst TabsContent = React.forwardRef<TabsContentElement, TabsContentProps>(\n (props: ScopedProps<TabsContentProps>, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => (isMountAnimationPreventedRef.current = false));\n return () => cancelAnimationFrame(rAF);\n }, []);\n\n return (\n <Presence present={forceMount || isSelected}>\n {({ present }) => (\n <Primitive.div\n data-state={isSelected ? 'active' : 'inactive'}\n data-orientation={context.orientation}\n role=\"tabpanel\"\n aria-labelledby={triggerId}\n hidden={!present}\n id={contentId}\n tabIndex={0}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? '0s' : undefined,\n }}\n >\n {present && children}\n </Primitive.div>\n )}\n </Presence>\n );\n }\n);\n\nTabsContent.displayName = CONTENT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction makeTriggerId(baseId: string, value: string) {\n return `${baseId}-trigger-${value}`;\n}\n\nfunction makeContentId(baseId: string, value: string) {\n return `${baseId}-content-${value}`;\n}\n\nconst Root = Tabs;\nconst List = TabsList;\nconst Trigger = TabsTrigger;\nconst Content = TabsContent;\n\nexport {\n createTabsScope,\n //\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n //\n Root,\n List,\n Trigger,\n Content,\n};\nexport type { TabsProps, TabsListProps, TabsTriggerProps, TabsContentProps };\n","// packages/react/use-previous/src/use-previous.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["ArchiveX","createLucideIcon","width","height","x","y","rx","key","d","Archive","ArrowLeft","FileStack","Folder","GripVertical","cx","cy","r","ListChecks","Loader","x1","x2","y1","y2","PackageOpen","Pencil","Plus","Search","createElement","createContext","createRef","forwardRef","useCallback","useContext","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","react__WEBPACK_IMPORTED_MODULE_0___namespace_cache","__webpack_require__","t","react__WEBPACK_IMPORTED_MODULE_0__","useId","toString","PanelGroupContext","displayName","wrappedUseId","counter","useUniqueId","idFromParams","idFromUseId","idRef","current","PanelWithForwardedRef","children","className","classNameFromProps","collapsedSize","collapsible","defaultSize","forwardedRef","id","idFromProps","maxSize","minSize","onCollapse","onExpand","onResize","order","style","styleFromProps","tagName","Type","rest","context","Error","collapsePanel","expandPanel","getPanelSize","getPanelStyle","groupId","isPanelCollapsed","reevaluatePanelConstraints","registerPanel","resizePanel","unregisterPanel","panelId","panelDataRef","callbacks","constraints","idIsFromProps","undefined","didLogMissingDefaultSizeWarning","useIsomorphicLayoutEffect","prevConstraints","panelData","collapse","expand","getId","getSize","isCollapsed","isExpanded","resize","size","Panel","props","ref","assert","expectedCondition","message","console","error","fuzzyCompareNumbers","actual","expected","fractionDigits","delta","parseFloat","toFixed","fuzzyNumbersEqual","panelConstraints","panelConstraintsArray","panelIndex","Math","min","adjustLayoutByDelta","layout","prevLayout","pivotIndices","trigger","nextLayout","firstPivotIndex","secondPivotIndex","deltaApplied","index","prevSize","localDelta","abs","increment","maxAvailableDelta","maxSafeSize","length","minAbsDelta","deltaRemaining","safeSize","toPrecision","localeCompare","numeric","pivotIndex","unsafeSize","reduce","total","getResizeHandleElementsForGroup","scope","document","Array","from","querySelectorAll","getResizeHandleElementIndex","handles","findIndex","handle","getAttribute","determinePivotIndices","dragHandleId","panelGroupElement","getPanelGroupElement","rootElement","_dataset","HTMLElement","dataset","panelGroupId","querySelector","getResizeHandleElement","areEqual","arrayA","arrayB","isKeyDown","event","type","isMouseEvent","startsWith","isTouchEvent","getResizeEventCursorPosition","direction","isHorizontal","clientX","clientY","firstTouch","touches","screenX","screenY","callPanelCallbacks","panelsArray","panelIdToLastNotifiedSizeMap","forEach","lastNotifiedSize","compareLayouts","a","b","currentState","element","getCursorStyle","state","setGlobalCursorStyle","head","appendChild","innerHTML","initializeDefaultStorage","storageObject","localStorage","getItem","name","setItem","value","getPanelGroupKey","autoSaveId","getPanelKey","panels","map","panel","JSON","stringify","sort","join","loadSerializedPanelGroupState","storage","panelGroupKey","serialized","parsed","parse","savePanelGroupState","panelSizesBeforeCollapse","sizes","_loadSerializedPanelG2","panelKey","expandToSizes","Object","fromEntries","entries","validatePanelGroupLayout","nextLayoutTotalSize","accumulated","remainingSize","defaultStorage","debounceMap","PanelGroupWithForwardedRef","onLayout","keyboardResizeBy","panelGroupElementRef","dragState","setDragState","setLayout","panelIdToLastNotifiedSizeMapRef","panelSizeBeforeCollapseRef","Map","prevDeltaRef","committedValuesRef","eagerValuesRef","panelDataArray","panelDataArrayChanged","didLogIdAndOrderWarning","didLogPanelConstraintsWarning","prevPanelIds","getLayout","unsafeLayout","safeLayout","useWindowSplitterPanelGroupBehavior","didWarnAboutMissingResizeHandle","resizeHandleElements","valueMax","valueMin","valueNow","calculateAriaValues","currentMinSize","currentMaxSize","totalMinSize","totalMaxSize","firstIndex","max","resizeHandleElement","setAttribute","round","removeAttribute","eagerValues","groupElement","cleanupFunctions","handleId","idBefore","idAfter","getResizeHandlePanelIds","_panelsArray$index$id","_panelsArray$index","_panelsArray$id","_panelsArray","indexOf","onKeyDown","defaultPrevented","preventDefault","addEventListener","removeEventListener","cleanupFunction","debouncedSave","debounce","callback","durationMs","timeoutId","args","clearTimeout","setTimeout","panelSize","panelDataHelper","set","isLastPanel","prevPanelSize","get","baseSize","findPanelDataIndex","computePanelFlexBoxStyle","precision","flexBasis","flexGrow","flexShrink","overflow","pointerEvents","isPanelExpanded","push","panelA","panelB","orderA","orderB","_loadSerializedPanelG","_state$panelKey","calculateUnsafeDefaultLayout","numPanelsWithSizes","registerResizeHandle","initialLayout","calculateDeltaPercentage","initialDragState","shiftKey","movement","calculateDragOffsetPercentage","handleElement","initialCursorPosition","cursorPosition","groupRect","getBoundingClientRect","offsetPixels","dir","layoutChanged","unsafePanelSize","prevCollapsedSize","prevCollapsible","nextCollapsedSize","nextCollapsible","nextMaxSize","nextMinSize","startDragging","dragHandleRect","stopDragging","removeChild","splice","Provider","display","flexDirection","PanelGroup","prevPanelData","PanelResizeHandle","disabled","onDragging","tabIndex","elementRef","callbacksRef","panelGroupContext","resizeHandleId","isDragging","isFocused","setIsFocused","resizeHandler","setResizeHandler","stopDraggingAndBlur","blur","onMove","onMouseLeave","targetDocument","ownerDocument","body","window","useWindowSplitterResizeHandlerBehavior","nextIndex","nextHandle","focus","cursor","touchAction","userSelect","onBlur","onFocus","onMouseDown","nativeEvent","onMouseUp","onTouchCancel","onTouchEnd","onTouchStart","role","clamp","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScope","CheckboxProviderImpl","useCheckboxContext","CheckboxProvider","__scopeCheckbox","checked","checkedProp","defaultChecked","form","onCheckedChange","required","internal_do_not_use_render","setChecked","useControllableState","prop","defaultProp","onChange","caller","control","setControl","React","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","isFormControl","closest","isIndeterminate","jsx","isFunction","TRIGGER_NAME","CheckboxTrigger","param","onClick","checkboxProps","composedRefs","useComposedRefs","initialCheckedStateRef","reset","Primitive","button","getState","composeEventHandlers","prevChecked","isPropagationStopped","stopPropagation","Checkbox","jsxs","Fragment","CheckboxBubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","Presence","present","span","BUBBLE_INPUT_NAME","usePrevious","controlSize","useSize","descriptor","getOwnPropertyDescriptor","HTMLInputElement","prototype","bubbles","Event","input","indeterminate","call","dispatchEvent","defaultCheckedRef","position","opacity","margin","transform","TABS_NAME","createTabsContext","createTabsScope","createRovingFocusGroupScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","__scopeTabs","valueProp","onValueChange","defaultValue","orientation","activationMode","tabsProps","useDirection","setValue","baseId","div","TAB_LIST_NAME","TabsList","loop","listProps","rovingFocusGroupScope","RovingFocusGroup","asChild","TabsTrigger","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","focusable","active","ctrlKey","includes","isAutomaticActivation","CONTENT_NAME","TabsContent","contentProps","isMountAnimationPreventedRef","rAF","requestAnimationFrame","cancelAnimationFrame","hidden","animationDuration","concat","Root","List","Trigger","Content","previous"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/6373-601400fab8a3bb55.js","mappings":"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","sources":["webpack://_N_E/./components/ui/button.tsx","webpack://_N_E/./lib/utils.ts","webpack://_N_E/./queries/queries.ts"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport function formatDuration(seconds: number): string {\n if (!seconds) return '0s';\n \n const hours = Math.floor(seconds / 3600);\n const minutes = Math.floor((seconds % 3600) / 60);\n const remainingSeconds = Math.round(seconds % 60);\n\n if (hours > 0) {\n return `${hours}h ${minutes}m`;\n } else if (minutes > 0) {\n return `${minutes}m ${remainingSeconds}s`;\n } else {\n return `${remainingSeconds}s`;\n }\n}","import { gql } from \"@apollo/client\";\n\nexport const PAGINATION_POSTFIX = \"_itemsPagination\";\nexport const CREATE_ONE_POSTFIX = \"_itemsCreateOne\";\n\nconst CONTEXT_FIELDS = `\n id\n name\n description\n embedder {\n name\n id\n queue\n config {\n name\n description\n default\n }\n }\n slug\n active\n fields\n configuration\n sources {\n id\n name\n description\n config {\n params {\n name\n description\n default\n }\n schedule\n queue\n retries\n backoff {\n type\n delay\n }\n }\n }\n`;\n\n\n/* \nRemoved\n projects {\n id\n rights\n }\n From RBAC below\n*/\nconst ITEM_FIELDS = (fields: string[]) => `\nid\nname\ndescription\ntags\nexternal_id\ncreatedAt\nembeddings_updated_at\nupdatedAt\nrights_mode\nRBAC {\n type\n users {\n id\n rights\n }\n roles {\n id\n rights\n }\n}\n${fields.join(\"\\n\")}\n`;\n\nconst USER_FIELDS = `\nid\nfirstname\nlastname\nemail\nsuper_admin\napikey\nanthropic_token\ntype\nrole\nfavourite_agents\n`;\n\nconst AGENT_FIELDS = `\nid\nname\nproviderapikey\ninstructions\ndescription\nactive\nimage\nanimation_idle\nanimation_responding\ntools\nproviderName\nmodelName\nmaxContextLength\nprovider\nauthenticationInformation\nslug\ncategory\nrateLimit {\n name\n rate_limit {\n time\n limit\n }\n}\nstreaming\ncapabilities {\n text\n images\n files\n audio\n video\n}\nbackend\nrights_mode\nRBAC {\n type\n users {\n id\n rights\n }\n roles {\n id\n rights\n }\n}\ncreatedAt\nupdatedAt\n`;\n\nexport const GET_AGENTS = gql`\n query GetAgents(\n $page: Int!\n $limit: Int!\n $filters: [FilterAgent]\n $sort: SortBy = { field: \"updatedAt\", direction: DESC }\n ) {\n agentsPagination(\n page: $page\n limit: $limit\n sort: $sort\n filters: $filters\n ) {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n ${AGENT_FIELDS}\n }\n }\n }\n`;\n\nexport const GET_AGENT_SESSIONS = gql`\n query GetAgentSessions(\n $page: Int!\n $limit: Int!\n $filters: [FilterAgent_session]\n $sort: SortBy = { field: \"updatedAt\", direction: DESC }\n ) {\n agent_sessionsPagination(\n page: $page\n limit: $limit\n sort: $sort\n filters: $filters\n ) {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n createdAt\n updatedAt\n user\n title\n agent\n project\n rights_mode\n RBAC {\n type\n users {\n id\n rights\n }\n roles {\n id\n rights\n }\n }\n id\n }\n }\n }\n`;\n\nexport const GET_CONTEXTS = gql`\n query GetContexts {\n contexts {\n items {\n ${CONTEXT_FIELDS}\n }\n }\n }\n`;\n\nexport const GET_CONTEXT_BY_ID = gql`\n query GetContextById($id: ID!) {\n contextById(id: $id) {\n ${CONTEXT_FIELDS}\n }\n }\n`;\n\nexport const GET_ITEMS = (context: string, fields: string[]) => {\n const upperCaseContext = context.charAt(0).toUpperCase() + context.slice(1)\n return gql`\n query ${context}Pagination($page: Int!, $limit: Int!, $filters: [Filter${upperCaseContext}_items], $sort: SortBy = { field: \"updatedAt\", direction: DESC }) {\n ${context}${PAGINATION_POSTFIX}(page: $page, limit: $limit, filters: $filters, sort: $sort) {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n ${ITEM_FIELDS(fields)}\n }\n }\n }\n `;\n};\n\nexport const PROCESS_ITEM_FIELD = (context: string) => {\n return gql`\n mutation ProcessItemField${context}($item: ID!, $field: ${context}_itemsProcessorFieldEnum!) {\n ${context}_itemsProcessItemField(item: $item, field: $field) {\n message\n result\n job\n }\n }\n `;\n};\n\nexport const GET_ITEM_BY_ID = (context: string, fields: string[], chunks: boolean = false) => {\n return gql`\n query ${context}ById($id: ID!) {\n ${context}_itemsById(id: $id) {\n ${ITEM_FIELDS(fields)}\n ${chunks ? \"chunks { fts_rank hybrid_score content source chunk_index chunk_id chunk_created_at chunk_updated_at embedding_size }\" : \"\"}\n }\n }\n `;\n};\n\nexport const CREATE_ITEM = (context: string) => {\n return gql`\n mutation CreateOne${context}($input: ${context}_itemsInput!) {\n ${context}_itemsCreateOne(input: $input) {\n item {\n id\n }\n job\n }\n }\n `;\n};\n\nexport const DELETE_CHUNKS = (context: string) => {\n const upperCaseContext = context.charAt(0).toUpperCase() + context.slice(1)\n return gql`\n mutation DeleteChunks${context}($where: [Filter${upperCaseContext}_items]) {\n ${context}_itemsDeleteChunks(where: $where) {\n items\n jobs\n }\n }\n `;\n};\n\n\nexport const GENERATE_CHUNKS = (context: string) => {\n const upperCaseContext = context.charAt(0).toUpperCase() + context.slice(1)\n return gql`\n mutation GenerateChunks${context}($where: [Filter${upperCaseContext}_items]) {\n ${context}_itemsGenerateChunks(where: $where) {\n items\n jobs\n }\n }\n `;\n};\n\nexport const EXECUTE_SOURCE = (context: string) => {\n return gql`\n mutation ExecuteSource${context}($source: ID!, $inputs: JSON!) {\n ${context}_itemsExecuteSource(source: $source, inputs: $inputs) {\n message\n jobs\n items\n }\n }\n `;\n};\n\nexport const UPDATE_ITEM = (context: string) => {\n return gql`\n mutation UpdateOneById${context}($id: ID!, $input: ${context}_itemsInput!) {\n ${context}_itemsUpdateOneById(id: $id, input: $input) {\n item {\n id\n }\n job\n }\n }\n `;\n};\n\nexport const DELETE_ITEM = (context: string, fields: string[]) => {\n return gql`\n mutation DeleteOneById${context}($id: ID!) {\n ${context}_itemsRemoveOneById(id: $id) {\n id\n ${fields.join(\"\\n\")}\n }\n }\n `;\n};\n\nexport const UPDATE_AGENT_SESSION_RBAC = gql`\n mutation UpdateAgentSessionRbac(\n $id: ID!\n $RBAC: RBACInput\n $rights_mode: String\n ) {\n agent_sessionsUpdateOneById(id: $id, input: { rights_mode: $rights_mode, RBAC: $RBAC }) {\n item {\n id\n }\n }\n }\n`;\n\nexport const UPDATE_AGENT_SESSION_PROJECT = gql`\n mutation UpdateAgentSessionProject(\n $id: ID!\n $project: String\n ) {\n agent_sessionsUpdateOneById(id: $id, input: {project: $project}) {\n item {\n id\n }\n }\n }\n`;\n\nexport const UPDATE_AGENT_SESSION_TITLE = gql`\n mutation UpdateAgentSessionTitle(\n $id: ID!\n $title: String\n ) {\n agent_sessionsUpdateOneById(id: $id, input: {title: $title}) {\n item {\n id\n title\n }\n }\n }\n`;\n\nexport const GET_AGENT_MESSAGES = gql`\n query GetAgentSessionMessages(\n $page: Int!\n $limit: Int!\n $filters: [FilterAgent_message]\n $sort: SortBy = { field: \"createdAt\", direction: ASC }\n ) {\n agent_messagesPagination(\n page: $page\n limit: $limit\n sort: $sort\n filters: $filters\n ) {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n id\n session\n content\n createdAt\n }\n }\n }\n`;\n\nexport const GET_JOB_RESULTS = gql`\n query GetJobResults(\n $page: Int!\n $limit: Int!\n $filters: [FilterJob_result]\n $sort: SortBy = {\n field: \"createdAt\",\n direction: DESC\n }\n ) {\n job_resultsPagination(\n page: $page\n limit: $limit\n sort: $sort\n filters: $filters\n ) {\n items {\n job_id\n state\n error\n label\n result\n metadata\n createdAt\n updatedAt\n id\n }\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n }\n }\n`;\nexport const GET_USER_ROLES = gql`\n query GetUserRoles($page: Int!, $limit: Int!) {\n rolesPagination(page: $page, limit: $limit) {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n id\n createdAt\n updatedAt\n agents\n workflows\n api\n variables\n users\n name\n }\n }\n }\n`;\nexport const GET_USERS = gql`\n query GetUsers(\n $page: Int!\n $limit: Int!\n $filters: [FilterUser]\n $sort: SortBy\n ) {\n usersPagination(page: $page, limit: $limit, filters: $filters, sort: $sort) {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n id\n name\n firstname\n lastname\n email\n last_used\n createdAt\n type\n apikey\n emailVerified\n anthropic_token\n super_admin\n role\n }\n }\n }\n`;\nexport const GET_USER_ROLE_BY_ID = gql`\n query GetUserRoleById($id: ID!) {\n roleById(id: $id) {\n id\n name\n agents\n workflows\n api\n variables\n users\n createdAt\n updatedAt\n }\n }\n`;\nexport const GET_JOB_RESULT_BY_ID = gql`\n query GetJobResultById($id: ID!) {\n job_resultById(id: $id) {\n id\n job_id\n state\n error\n label\n result\n metadata\n createdAt\n updatedAt\n }\n }\n`;\nexport const GET_AGENT_BY_ID = gql`\n query GetAgentById($id: ID!, $project: ID) {\n agentById(id: $id, project: $project) {\n ${AGENT_FIELDS}\n }\n }\n`;\nexport const GET_AGENTS_BY_IDS = gql`\n query GetAgentsByIds($ids: [ID!]!) {\n agentByIds(ids: $ids) {\n ${AGENT_FIELDS}\n }\n }\n`;\nexport const GET_AGENT_SESSION_BY_ID = gql`\n query GetAgentSessionById($id: ID!) {\n agent_sessionById(id: $id) {\n createdAt\n updatedAt\n user\n title\n agent\n created_by\n rights_mode\n project\n RBAC {\n type\n users {\n id\n rights\n }\n roles {\n id\n rights\n }\n }\n id\n }\n }\n`;\nexport const GET_AGENT_SESSION = gql`\n query GetAgentSession($filters: [FilterAgent_session]) {\n agent_sessionOne(filters: $filters) {\n createdAt\n project\n updatedAt\n user\n title\n agent\n id\n }\n }\n`;\n\nexport const UPDATE_USER_BY_ID = gql`\n mutation UpdateUser(\n $email: String,\n $firstname: String,\n $anthropic_token: String,\n $super_admin: Boolean,\n $lastname: String,\n $role: String,\n $favourite_agents: JSON,\n $id: ID!\n ) {\n usersUpdateOneById(id: $id, input: {\n email: $email,\n firstname: $firstname,\n anthropic_token: $anthropic_token,\n super_admin: $super_admin,\n lastname: $lastname,\n role: $role,\n favourite_agents: $favourite_agents\n }) {\n item {\n ${USER_FIELDS}\n }\n }\n }\n`;\nexport const CREATE_API_USER = gql`\n mutation CreateUser(\n $firstname: String,\n $type: String,\n $apikey: String,\n $email: String,\n $role: String\n ) {\n usersCreateOne(input: {\n firstname: $firstname,\n type: $type,\n apikey: $apikey,\n email: $email,\n role: $role\n }) {\n item {\n id\n }\n }\n }\n`;\nexport const UPDATE_USER_ROLE_BY_ID = gql`\n mutation UpdateUserRole(\n $id: ID!\n $name: String\n $agents: String\n $workflows: String\n $api: String\n $variables: String\n $users: String\n ) {\n rolesUpdateOneById(\n id: $id\n input: {\n name: $name\n agents: $agents\n workflows: $workflows\n api: $api\n variables: $variables\n users: $users\n }\n ) {\n item {\n id\n createdAt\n agents\n api\n workflows\n variables\n users\n }\n }\n }\n`;\nexport const GET_USER_BY_EMAIL = gql`\n query GetUserByEmail($email: String!) {\n userOne(filters: {email: $email}) {\n ${USER_FIELDS}\n }\n }\n`;\n\nexport const CREATE_AGENT_SESSION = gql`\n mutation createAgentSession(\n $title: String,\n $user: Float\n $agent: String\n $project: String\n $rights_mode: String\n $RBAC: RBACInput\n ) {\n agent_sessionsCreateOne(\n input: { agent: $agent, user: $user, project: $project, title: $title, rights_mode: $rights_mode, RBAC: $RBAC }\n ) {\n item {\n id\n }\n }\n }\n`;\nexport const CREATE_AGENT = gql`\n mutation createAgent(\n $name: String!\n $description: String!\n $rights_mode: String!\n $backend: String!\n $image: String\n $RBAC: RBACInput\n ) {\n agentsCreateOne(\n input: {\n name: $name\n description: $description\n rights_mode: $rights_mode\n backend: $backend\n image: $image\n RBAC: $RBAC\n }\n ) {\n item {\n id\n name\n description\n rights_mode\n RBAC {\n type\n users {\n id\n rights\n }\n roles {\n id\n rights\n }\n }\n createdAt\n }\n }\n }\n`;\n\nexport const GET_TOOLS = gql`\n query GetTools($search: String, $category: String, $limit: Int, $page: Int) {\n tools(search: $search, category: $category, limit: $limit, page: $page) {\n items {\n id\n name\n category\n description\n config\n type\n }\n total\n page\n limit\n }\n }\n`;\n\nexport const GET_TOOL_CATEGORIES = gql`\n query GetToolCategories {\n toolCategories\n }\n`;\n\nexport const UPDATE_AGENT_BY_ID = gql`\n mutation UpdateAgent(\n $id: ID!\n $name: String\n $backend: String\n $description: String\n $instructions: String\n $rights_mode: String\n $animation_idle: String\n $animation_responding: String\n $category: String\n $tools: JSON\n $active: Boolean\n $providerapikey: String\n $RBAC: RBACInput\n ) {\n agentsUpdateOneById(\n input: { \n name: $name\n backend: $backend\n description: $description\n category: $category\n instructions: $instructions\n animation_idle: $animation_idle\n animation_responding: $animation_responding\n rights_mode: $rights_mode\n active: $active\n tools: $tools\n providerapikey: $providerapikey\n RBAC: $RBAC\n }\n id: $id\n ) {\n item {\n id\n name\n description\n instructions\n category\n animation_idle\n animation_responding\n rights_mode\n RBAC {\n type\n users {\n id\n rights\n }\n roles {\n id\n rights\n }\n }\n }\n }\n }\n`;\nexport const CREATE_USER_ROLE = gql`\n mutation CreateUserRole($name: String!, $agents: String, $workflows: String, $variables: String, $users: String, $api: String) {\n rolesCreateOne(input: { name: $name, agents: $agents, workflows: $workflows, variables: $variables, users: $users, api: $api}) {\n item {\n id\n createdAt\n agents\n api\n workflows\n variables\n users\n name\n }\n }\n }\n`;\n\nexport const CREATE_USER = gql`\n mutation CreateUser($email: String!, $password: String, $type: String, $emailVerified: String) {\n usersCreateOne(input: { email: $email, password: $password, type: $type, emailVerified: $emailVerified }) {\n item {\n id\n createdAt\n emailVerified\n type\n name\n }\n }\n }\n`;\n\nexport const RESET_USER_PASSWORD = gql`\n mutation ResetUserPassword($id: ID!, $password: String!) {\n usersUpdateOneById(id: $id, input: { password: $password }) {\n item {\n id\n }\n }\n }\n`;\n\nexport const GET_PROVIDERS = gql`\n query GetProviders {\n providers {\n items {\n id\n name\n description\n provider\n modelName\n providerName\n }\n }\n }\n`;\n\nexport const REMOVE_USER_BY_ID = gql`\n mutation RemoveUserById($id: ID!) {\n usersRemoveOneById(id: $id) {\n id\n }\n }\n`;\nexport const REMOVE_JOB_RESULT_BY_ID = gql`\n mutation RemoveJobResultById($id: ID!) {\n job_resultsRemoveOneById(id: $id) {\n id\n }\n }\n`;\nexport const REMOVE_USER_ROLE_BY_ID = gql`\n mutation RemoveUserRoleById($id: ID!) {\n rolesRemoveOneById(id: $id) {\n id\n }\n }\n`;\nexport const REMOVE_AGENT_BY_ID = gql`\n mutation RemoveAgentById($id: ID!) {\n agentsRemoveOneById(id: $id) {\n id\n }\n }\n`;\nexport const REMOVE_AGENT_SESSION_BY_ID = gql`\n mutation RemoveAgentSessionById($id: ID!) {\n agent_sessionsRemoveOneById(id: $id) {\n id\n }\n }\n`;\n\nexport const GET_JOB_STATISTICS = gql`\n query GetJobStatistics($user: Float, $agent: String, $from: String, $to: String) {\n jobStatistics(user: $user, agent: $agent, from: $from, to: $to) {\n completedCount\n failedCount\n averageDuration\n }\n }\n`;\n\nexport const GET_VARIABLES = gql`\n query GetVariables(\n $page: Int!\n $limit: Int!\n $filters: [FilterVariable]\n $sort: SortBy = { field: \"updatedAt\", direction: DESC }\n ) {\n variablesPagination(\n page: $page\n limit: $limit\n sort: $sort\n filters: $filters\n ) {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n id\n name\n value\n encrypted\n createdAt\n updatedAt\n }\n }\n }\n`;\n\nexport const GET_VARIABLE_BY_ID = gql`\n query GetVariableById($id: ID!) {\n variableById(id: $id) {\n id\n name\n value\n encrypted\n createdAt\n updatedAt\n }\n }\n`;\n\nexport const CREATE_VARIABLE = gql`\n mutation CreateVariable(\n $name: String!\n $value: String!\n $encrypted: Boolean\n ) {\n variablesCreateOne(\n input: {\n name: $name\n value: $value\n encrypted: $encrypted\n }\n ) {\n item {\n id\n name\n value\n encrypted\n createdAt\n updatedAt\n }\n }\n }\n`;\n\nexport const CREATE_EMBEDDER_CONFIG = gql`\n mutation CreateEmbedderConfig($name: String!, $value: String, $context: String!, $embedder: String!) {\n embedder_settingsCreateOne(input: { name: $name, value: $value, context: $context, embedder: $embedder }) {\n item {\n id\n name\n value\n context\n embedder\n }\n }\n }\n`;\n\nexport const GET_EMBEDDER_CONFIGS = gql`\n query GetEmbedderConfigs($context: String, $embedder: String) {\n embedder_settingsPagination(page: 1, limit: 100, filters: {\n context: {\n eq: $context\n },\n embedder: {\n eq: $embedder\n }\n }) {\n items {\n id\n name\n value\n createdAt\n updatedAt\n }\n }\n }\n`;\n\nexport const UPDATE_EMBEDDER_CONFIG = gql`\n mutation UpdateEmbedderConfig($id: ID!, $name: String, $value: String) {\n embedder_settingsUpdateOneById(id: $id, input: { name: $name, value: $value }) {\n item {\n id\n }\n }\n }\n`;\n\nexport const UPDATE_VARIABLE = gql`\n mutation UpdateVariable(\n $id: ID!\n $name: String\n $value: String\n $encrypted: Boolean\n ) {\n variablesUpdateOneById(\n id: $id\n input: {\n name: $name\n value: $value\n encrypted: $encrypted\n }\n ) {\n item {\n id\n name\n value\n encrypted\n createdAt\n updatedAt\n }\n }\n }\n`;\n\nexport const REMOVE_VARIABLE_BY_ID = gql`\n mutation RemoveVariableById($id: ID!) {\n variablesRemoveOneById(id: $id) {\n id\n }\n }\n`;\n\nexport const GET_USER_BY_ID = gql`\n query GetUserById($id: ID!) {\n userById(id: $id) {\n id\n name\n firstname\n lastname\n email\n }\n }\n`;\n\nexport const GET_USERS_BY_IDS = gql`\n query GetUsersByIds($ids: [ID!]!) {\n userByIds(ids: $ids) {\n id\n name\n firstname\n lastname\n email\n }\n }\n`;\n\nexport const GET_WORKFLOW_TEMPLATES = gql`\n query GetWorkflowTemplates(\n $page: Int!\n $limit: Int!\n $filters: [FilterWorkflow_template]\n $sort: SortBy = { field: \"updatedAt\", direction: DESC }\n ) {\n workflow_templatesPagination(\n page: $page\n limit: $limit\n sort: $sort\n filters: $filters\n ) {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n id\n name\n description\n owner\n rights_mode\n variables\n steps_json\n example_metadata_json\n createdAt\n updatedAt\n RBAC {\n type\n users {\n id\n rights\n }\n roles {\n id\n rights\n }\n }\n }\n }\n }\n`;\n\nexport const GET_WORKFLOW_TEMPLATE_BY_ID = gql`\n query GetWorkflowTemplateById($id: ID!) {\n workflow_templateById(id: $id) {\n id\n name\n description\n owner\n rights_mode\n variables\n steps_json\n example_metadata_json\n createdAt\n updatedAt\n }\n }\n`;\n\nexport const CREATE_WORKFLOW_TEMPLATE = gql`\n mutation CreateWorkflowTemplate(\n $name: String!\n $description: String\n $owner: Float!\n $rights_mode: String!\n $RBAC: RBACInput\n $variables: JSON\n $steps_json: JSON!\n $example_metadata_json: JSON\n ) {\n workflow_templatesCreateOne(\n input: {\n name: $name\n description: $description\n owner: $owner\n rights_mode: $rights_mode\n RBAC: $RBAC\n variables: $variables\n steps_json: $steps_json\n example_metadata_json: $example_metadata_json\n }\n ) {\n id\n name\n description\n owner\n rights_mode\n rights_mode\n RBAC {\n type\n users {\n id\n rights\n }\n roles {\n id\n rights\n }\n projects {\n id\n rights\n }\n }\n variables\n steps_json\n example_metadata_json\n createdAt\n updatedAt\n }\n }\n`;\n\nexport const UPDATE_WORKFLOW_TEMPLATE = gql`\n mutation UpdateWorkflowTemplate(\n $id: ID!\n $name: String\n $description: String\n $rights_mode: String\n $RBAC: RBACInput\n $variables: JSON\n $steps_json: JSON\n $example_metadata_json: JSON\n ) {\n workflow_templatesUpdateOneById(\n id: $id\n input: {\n name: $name\n description: $description\n rights_mode: $rights_mode\n RBAC: $RBAC\n variables: $variables\n steps_json: $steps_json\n example_metadata_json: $example_metadata_json\n }\n ) {\n id\n name\n description\n owner\n rights_mode\n RBAC {\n type\n users {\n id\n rights\n }\n roles {\n id\n rights\n }\n }\n variables\n steps_json\n example_metadata_json\n createdAt\n updatedAt\n }\n }\n`;\n\nexport const REMOVE_WORKFLOW_TEMPLATE_BY_ID = gql`\n mutation RemoveWorkflowTemplateById($id: ID!) {\n workflow_templatesRemoveOneById(id: $id) {\n id\n }\n }\n`;\n\nexport const GET_JOB_STATISTICS_ENHANCED = gql`\n query GetJobStatisticsEnhanced($user: Float, $agent: String, $from: String, $to: String) {\n jobStatistics(user: $user, agent: $agent, from: $from, to: $to) {\n runningCount\n erroredCount\n completedCount\n failedCount\n averageDuration\n }\n }\n`;\n\n// Analytics Dashboard Queries\n\n// Summary Cards Queries (24h vs 7-day average)\nexport const GET_AGENT_SESSIONS_STATISTICS = gql`\n query AgentSessionsStatistics($from: Date!, $to: Date!) {\n agent_sessionsStatistics(filters: {\n createdAt: { and: [{ gte: $from }, { lte: $to }] }\n }) {\n group\n count\n }\n }\n`;\n\nexport const GET_WORKFLOW_RUNS_STATISTICS = gql`\n query WorkflowRunsStatistics($from: Date!, $to: Date!) {\n jobsStatistics(filters: {\n type: { eq: \"workflow\" }\n createdAt: { and: [{ gte: $from }, { lte: $to }] }\n }) {\n group\n count\n }\n }\n`;\n\nexport const GET_EMBEDDING_JOBS_STATISTICS = gql`\n query EmbeddingJobsStatistics($from: Date!, $to: Date!) {\n jobsStatistics(filters: {\n type: { eq: \"embedder\" }\n createdAt: { and: [{ gte: $from }, { lte: $to }] }\n }) {\n group\n count\n }\n }\n`;\n\nexport const GET_FUNCTION_CALLS_STATISTICS = gql`\n query FunctionCallsStatistics($from: Date!, $to: Date!) {\n trackingStatistics(filters: {\n type: { eq: TOOL_CALL }\n createdAt: { and: [{ gte: $from }, { lte: $to }] }\n }) {\n group\n count\n }\n }\n`;\n\nexport const GET_AGENT_RUN_STATISTICS = gql` \n query AgentCallsStatistics($from: Date!, $to: Date!) {\n trackingStatistics(filters: {\n type: { eq: AGENT_RUN }\n name: { eq: \"count\" }\n createdAt: { and: [{ gte: $from }, { lte: $to }] }\n }) {\n group\n count\n }\n }\n`;\n\nexport const GET_TOKEN_USAGE_STATISTICS = gql` \n query AgentCallsStatistics($from: Date!, $to: Date!) {\n trackingStatistics(filters: {\n name: { in: [\"inputTokens\", \"outputTokens\"] }\n createdAt: { and: [{ gte: $from }, { lte: $to }] }\n }) {\n group\n count\n }\n }\n`;\n\n\n// Time Series Chart Query\nexport const GET_TIME_SERIES_STATISTICS = gql`\n query TimeSeriesStatistics($type: typeEnum!, $from: Date!, $to: Date!, $names: [String!]) {\n trackingStatistics(\n groupBy: \"createdAt\"\n filters: {\n type: { eq: $type }\n createdAt: { and: [{ gte: $from }, { lte: $to }] }\n name: { in: $names }\n }\n ) {\n group\n count\n }\n }\n`;\n\nexport const GET_USER_STATISTICS = gql`\nquery UserStatistics($from: Date!, $to: Date!, $names: [String!]) {\n trackingStatistics(\n groupBy: \"user\"\n filters: {\n type: { eq: AGENT_RUN }\n createdAt: { and: [{ gte: $from }, { lte: $to }] }\n name: { in: $names }\n }\n ) {\n group\n count\n }\n}\n`;\n\nexport const GET_PROJECT_STATISTICS = gql`\nquery ProjectStatistics($from: Date!, $to: Date!, $names: [String!]) {\n trackingStatistics(\n groupBy: \"project\"\n filters: {\n type: { eq: AGENT_RUN }\n createdAt: { and: [{ gte: $from }, { lte: $to }] }\n name: { in: $names }\n }\n ) {\n group\n count\n }\n}\n`;\n\nexport const GET_AGENT_STATISTICS = gql`\nquery AgentStatistics($from: Date!, $to: Date!, $names: [String!]) {\n trackingStatistics(\n groupBy: \"label\"\n filters: {\n type: { eq: AGENT_RUN }\n name: { in: $names }\n createdAt: { and: [{ gte: $from }, { lte: $to }] }\n }\n ) {\n group\n count\n }\n}\n`;\n\nexport const GET_USER_NAME_BY_ID = gql`\n query GetUserNameById($id: ID!) {\n userById(id: $id) {\n name\n }\n }\n`;\n\nexport const GET_PROJECT_NAME_BY_ID = gql`\n query GetProjectNameById($id: ID!) {\n projectById(id: $id) {\n name\n }\n }\n`;\n\n// Donut Chart Query \nexport const GET_DONUT_STATISTICS = gql`\n query DonutStatistics($type: typeEnum!, $groupBy: String!, $from: Date!, $to: Date!, $names: [String!]) {\n trackingStatistics(\n groupBy: $groupBy\n filters: {\n type: { eq: $type }\n name: { in: $names }\n createdAt: { and: [{ gte: $from }, { lte: $to }] }\n }\n ) {\n group\n count\n }\n }\n`;\n\nconst PROJECT_FIELDS = `\n id\n name\n description\n image\n custom_instructions\n rights_mode\n created_by\n createdAt\n updatedAt\n project_items\n RBAC {\n type\n users {\n id\n rights\n }\n roles {\n id\n rights\n }\n }\n`;\n\nexport const GET_PROJECTS = gql`\n query GetProjects(\n $page: Int!\n $limit: Int!\n $filters: [FilterProject]\n $sort: SortBy = { field: \"updatedAt\", direction: DESC }\n ) {\n projectsPagination(\n page: $page\n limit: $limit\n sort: $sort\n filters: $filters\n ) {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n ${PROJECT_FIELDS}\n }\n }\n }\n`;\n\nexport const GET_PROJECTS_BY_IDS = gql`\n query GetProjectsByIds($ids: [ID!]!) {\n projectByIds(ids: $ids) {\n ${PROJECT_FIELDS}\n }\n }\n`;\n\nexport const GET_PROJECT_BY_ID = gql`\n query GetProjectById($id: ID!) {\n projectById(id: $id) {\n ${PROJECT_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_USER_FAVOURITE_PROJECTS = gql`\n mutation UpdateUserFavouriteProjects($id: ID!, $favourite_projects: JSON) {\n userUpdateById(input: { favourite_projects: $favourite_projects }, filter: { id: $id }) {\n item {\n id\n favourite_projects\n }\n }\n }\n`;\n\nexport const CREATE_PROJECT = gql`\n mutation CreateProject($input: projectInput!) {\n projectsCreateOne(input: $input) {\n item {\n ${PROJECT_FIELDS}\n }\n }\n }\n`;\n\nexport const UPDATE_PROJECT = gql`\n mutation UpdateProject($id: ID!, $input: projectInput!) {\n projectsUpdateOneById(id: $id, input: $input) {\n item {\n ${PROJECT_FIELDS}\n }\n }\n }\n`;\n\nexport const DELETE_PROJECT = gql`\n mutation DeleteProject($id: ID!) {\n projectsRemoveOneById(id: $id) {\n id\n name\n }\n }\n`;\n\n// ============================================\n// EVAL-RELATED QUERIES\n// ============================================\n\nconst TEST_CASE_FIELDS = `\n id\n name\n description\n inputs\n expected_output\n expected_tools\n expected_knowledge_sources\n expected_agent_tools\n eval_set_id\n createdAt\n updatedAt\n`;\n\nconst EVAL_SET_FIELDS = `\n id\n name\n description\n createdAt\n updatedAt\n`;\n\nconst EVAL_RUN_FIELDS = `\n id\n name\n eval_set_id\n agent_id\n eval_functions\n config\n scoring_method\n pass_threshold\n test_case_ids\n createdAt\n updatedAt\n rights_mode\n RBAC {\n type\n users {\n id\n rights\n }\n roles {\n id\n rights\n }\n }\n`;\n\n// Test Cases\nexport const GET_TEST_CASES = gql`\n query GetTestCases(\n $page: Int!\n $limit: Int!\n $filters: [FilterTest_case]\n ) {\n test_casesPagination(page: $page, limit: $limit, filters: $filters) {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n ${TEST_CASE_FIELDS}\n }\n }\n }\n`;\n\nexport const GET_TEST_CASE_BY_ID = gql`\n query GetTestCaseById($id: ID!) {\n test_caseById(id: $id) {\n ${TEST_CASE_FIELDS}\n }\n }\n`;\n\nexport const CREATE_TEST_CASE = gql`\n mutation CreateTestCase($data: test_caseInput!) {\n test_casesCreateOne(input: $data) {\n item {\n ${TEST_CASE_FIELDS}\n }\n }\n }\n`;\n\nexport const UPDATE_TEST_CASE = gql`\n mutation UpdateTestCase($id: ID!, $data: test_caseInput!) {\n test_casesUpdateOneById(id: $id, input: $data) {\n item {\n ${TEST_CASE_FIELDS}\n }\n }\n }\n`;\n\nexport const DELETE_TEST_CASE = gql`\n mutation DeleteTestCase($id: ID!) {\n test_casesRemoveOneById(id: $id) {\n id\n name\n }\n }\n`;\n\n// Eval Sets\nexport const GET_EVAL_SETS = gql`\n query GetEvalSets(\n $page: Int!\n $limit: Int!\n $filters: [FilterEval_set]\n ) {\n eval_setsPagination(page: $page, limit: $limit, filters: $filters) {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n ${EVAL_SET_FIELDS}\n }\n }\n }\n`;\n\nconst EVAL_FIELDS = `\n id\n name\n description\n config {\n name\n description\n }\n llm\n`;\n\nexport const GET_EVAL_FUNCTIONS = gql`\n query GetEvals {\n evals {\n items {\n ${EVAL_FIELDS}\n }\n }\n }\n`;\n\nexport const GET_EVAL_SET_BY_ID = gql`\n query GetEvalSetById($id: ID!) {\n eval_setById(id: $id) {\n ${EVAL_SET_FIELDS}\n }\n }\n`;\n\nexport const CREATE_EVAL_SET = gql`\n mutation CreateEvalSet($data: eval_setInput!) {\n eval_setsCreateOne(input: $data) {\n item {\n ${EVAL_SET_FIELDS}\n }\n }\n }\n`;\n\nexport const UPDATE_EVAL_SET = gql`\n mutation UpdateEvalSet($id: ID!, $data: eval_setInput!) {\n eval_setsUpdateOneById(id: $id, input: $data) {\n item {\n ${EVAL_SET_FIELDS}\n }\n }\n }\n`;\n\nexport const DELETE_EVAL_SET = gql`\n mutation DeleteEvalSet($id: ID!) {\n eval_setsRemoveOneById(id: $id) {\n id\n name\n }\n }\n`;\n\n// Eval Runs\nexport const GET_EVAL_RUNS = gql`\n query GetEvalRuns(\n $page: Int!\n $limit: Int!\n $filters: [FilterEval_run]\n ) {\n eval_runsPagination(page: $page, limit: $limit, filters: $filters) {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n ${EVAL_RUN_FIELDS}\n }\n }\n }\n`;\n\nexport const GET_EVAL_RUN_BY_ID = gql`\n query GetEvalRunById($id: ID!) {\n eval_runById(id: $id) {\n ${EVAL_RUN_FIELDS}\n }\n }\n`;\n\nexport const CREATE_EVAL_RUN = gql`\n mutation CreateEvalRun($data: eval_runInput!) {\n eval_runsCreateOne(input: $data) {\n item {\n ${EVAL_RUN_FIELDS}\n }\n }\n }\n`;\n\nexport const GET_QUEUE = gql`\n query GetQueue($queue: QueueEnum!) {\n queue(queue: $queue) {\n name\n concurrency\n ratelimit\n isMaxed\n isPaused\n jobs {\n paused\n completed\n failed\n waiting\n active\n delayed\n }\n }\n }\n`;\n\nexport const GET_JOBS = gql`\n query GetJobs($queue: QueueEnum!, $statusses: [JobStateEnum!], $page: Int, $limit: Int) {\n jobs(queue: $queue, statusses: $statusses, page: $page, limit: $limit) {\n items {\n name\n id\n returnvalue\n stacktrace\n failedReason\n state\n data\n timestamp\n }\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n }\n }\n`;\n\nexport const DELETE_JOB = gql`\n mutation DeleteJob($queue: QueueEnum!, $id: String!) {\n deleteJob(queue: $queue, id: $id) {\n success\n }\n }\n`;\n\nexport const PAUSE_QUEUE = gql`\n mutation PauseQueue($queue: QueueEnum!) {\n pauseQueue(queue: $queue) {\n success\n }\n }\n`;\n\nexport const RESUME_QUEUE = gql`\n mutation ResumeQueue($queue: QueueEnum!) {\n resumeQueue(queue: $queue) {\n success\n }\n }\n`;\n\nexport const DRAIN_QUEUE = gql`\n mutation DrainQueue($queue: QueueEnum!) {\n drainQueue(queue: $queue) {\n success\n }\n }\n`;\n\nexport const RUN_EVAL = gql`\n mutation RunEval($id: ID!) {\n runEval(id: $id) {\n jobs\n count\n }\n }\n`;\n\nexport const UPDATE_EVAL_RUN = gql`\n mutation UpdateEvalRun($id: ID!, $data: eval_runInput!) {\n eval_runsUpdateOneById(id: $id, input: $data) {\n item {\n ${EVAL_RUN_FIELDS}\n }\n }\n }\n`;\n\nexport const DELETE_EVAL_RUN = gql`\n mutation DeleteEvalRun($id: ID!) {\n eval_runsRemoveOneById(id: $id) {\n id\n }\n }\n`;\n\nconst PLATFORM_CONFIGURATION_FIELDS = `\n id\n config_key\n config_value\n description\n createdAt\n updatedAt\n`;\n\nexport const GET_PLATFORM_CONFIGURATIONS = gql`\n query GetPlatformConfigurations {\n platform_configurationsPagination {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n ${PLATFORM_CONFIGURATION_FIELDS}\n }\n }\n }\n`;\n\nexport const GET_PLATFORM_CONFIGURATION_BY_KEY = gql`\n query GetPlatformConfigurationByKey($config_key: FilterOperatorString!) {\n platform_configurationsPagination(page: 1, limit: 1, filters: { config_key: $config_key }) {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n ${PLATFORM_CONFIGURATION_FIELDS}\n }\n }\n }\n`;\n\nexport const CREATE_PLATFORM_CONFIGURATION = gql`\n mutation CreatePlatformConfiguration($data: platform_configurationInput!) {\n platform_configurationsCreateOne(input: $data) {\n item {\n ${PLATFORM_CONFIGURATION_FIELDS}\n }\n }\n }\n`;\n\nexport const UPDATE_PLATFORM_CONFIGURATION = gql`\n mutation UpdatePlatformConfiguration($id: ID!, $data: platform_configurationInput!) {\n platform_configurationsUpdateOneById(id: $id, input: $data) {\n item {\n ${PLATFORM_CONFIGURATION_FIELDS}\n }\n }\n }\n`;\n\nexport const DELETE_PLATFORM_CONFIGURATION = gql`\n mutation DeletePlatformConfiguration($id: ID!) {\n platform_configurationsRemoveOneById(id: $id) {\n id\n }\n }\n`;\n\n// ============================================\n// PROMPT LIBRARY QUERIES AND MUTATIONS\n// ============================================\n\nconst PROMPT_LIBRARY_FIELDS = `\n id\n name\n description\n content\n tags\n usage_count\n favorite_count\n assigned_agents\n rights_mode\n created_by\n createdAt\n updatedAt\n RBAC {\n type\n users {\n id\n rights\n }\n roles {\n id\n rights\n }\n }\n`;\n\nexport const GET_PROMPTS = gql`\n query GetPrompts(\n $page: Int!\n $limit: Int!\n $filters: [FilterPrompt_library_item]\n $sort: SortBy = { field: \"updatedAt\", direction: DESC }\n ) {\n prompt_libraryPagination(\n page: $page\n limit: $limit\n sort: $sort\n filters: $filters\n ) {\n pageInfo {\n pageCount\n itemCount\n currentPage\n hasPreviousPage\n hasNextPage\n }\n items {\n ${PROMPT_LIBRARY_FIELDS}\n }\n }\n }\n`;\n\nexport const GET_PROMPT_BY_ID = gql`\n query GetPromptById($id: ID!) {\n prompt_library_itemById(id: $id) {\n ${PROMPT_LIBRARY_FIELDS}\n }\n }\n`;\n\nexport const CREATE_PROMPT = gql`\n mutation CreatePrompt(\n $name: String!\n $description: String\n $content: String!\n $tags: JSON\n $rights_mode: String!\n $RBAC: RBACInput\n $assigned_agents: JSON\n ) {\n prompt_libraryCreateOne(\n input: {\n name: $name\n description: $description\n content: $content\n tags: $tags\n rights_mode: $rights_mode\n RBAC: $RBAC\n assigned_agents: $assigned_agents\n }\n ) {\n item {\n ${PROMPT_LIBRARY_FIELDS}\n }\n }\n }\n`;\n\nexport const UPDATE_PROMPT = gql`\n mutation UpdatePrompt(\n $id: ID!\n $name: String\n $description: String\n $content: String\n $tags: JSON\n $rights_mode: String\n $RBAC: RBACInput\n $assigned_agents: JSON\n ) {\n prompt_libraryUpdateOneById(\n id: $id\n input: {\n name: $name\n description: $description\n content: $content\n tags: $tags\n rights_mode: $rights_mode\n RBAC: $RBAC\n assigned_agents: $assigned_agents\n }\n ) {\n item {\n ${PROMPT_LIBRARY_FIELDS}\n }\n }\n }\n`;\n\nexport const DELETE_PROMPT = gql`\n mutation DeletePrompt($id: ID!) {\n prompt_libraryRemoveOneById(id: $id) {\n id\n }\n }\n`;\n\nexport const INCREMENT_PROMPT_USAGE = gql`\n mutation IncrementPromptUsage($id: ID!, $usage_count: Float!) {\n prompt_libraryUpdateOneById(\n id: $id\n input: { usage_count: $usage_count }\n ) {\n item {\n id\n usage_count\n }\n }\n }\n`;\n\nexport const INCREMENT_PROMPT_FAVORITES = gql`\n mutation IncrementPromptFavorites($id: ID!, $favorite_count: Float!) {\n prompt_libraryUpdateOneById(\n id: $id\n input: { favorite_count: $favorite_count }\n ) {\n item {\n id\n favorite_count\n }\n }\n }\n`;\n\n// Prompt Favorites\nconst PROMPT_FAVORITE_FIELDS = `\n id\n user_id\n prompt_id\n createdAt\n`;\n\nexport const GET_USER_PROMPT_FAVORITES = gql`\n query GetUserPromptFavorites($user_id: Float!) {\n prompt_favoritesPagination(\n filters: [{ user_id: { eq: $user_id } }]\n ) {\n items {\n ${PROMPT_FAVORITE_FIELDS}\n }\n }\n }\n`;\n\nexport const CREATE_PROMPT_FAVORITE = gql`\n mutation CreatePromptFavorite($user_id: Float!, $prompt_id: String!) {\n prompt_favoritesCreateOne(\n input: { user_id: $user_id, prompt_id: $prompt_id }\n ) {\n item {\n ${PROMPT_FAVORITE_FIELDS}\n }\n }\n }\n`;\n\nexport const DELETE_PROMPT_FAVORITE = gql`\n mutation DeletePromptFavorite($id: ID!) {\n prompt_favoritesRemoveOneById(id: $id) {\n id\n }\n }\n`;"],"names":["buttonVariants","cva","variants","variant","default","destructive","outline","secondary","ghost","link","size","sm","lg","icon","defaultVariants","Button","React","param","ref","className","asChild","props","Comp","Slot","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","cn","displayName","_len","arguments","length","inputs","_key","twMerge","clsx","formatDuration","seconds","hours","Math","floor","minutes","remainingSeconds","round","concat","PAGINATION_POSTFIX","CREATE_ONE_POSTFIX","CONTEXT_FIELDS","ITEM_FIELDS","fields","join","USER_FIELDS","AGENT_FIELDS","GET_AGENTS","gql","GET_AGENT_SESSIONS","GET_CONTEXTS","GET_CONTEXT_BY_ID","GET_ITEMS","context","upperCaseContext","charAt","toUpperCase","slice","PROCESS_ITEM_FIELD","GET_ITEM_BY_ID","chunks","CREATE_ITEM","DELETE_CHUNKS","GENERATE_CHUNKS","EXECUTE_SOURCE","UPDATE_ITEM","DELETE_ITEM","UPDATE_AGENT_SESSION_RBAC","UPDATE_AGENT_SESSION_PROJECT","UPDATE_AGENT_SESSION_TITLE","GET_AGENT_MESSAGES","GET_JOB_RESULTS","GET_USER_ROLES","GET_USERS","GET_AGENT_BY_ID","GET_AGENTS_BY_IDS","GET_AGENT_SESSION_BY_ID","UPDATE_USER_BY_ID","CREATE_API_USER","UPDATE_USER_ROLE_BY_ID","CREATE_AGENT_SESSION","CREATE_AGENT","GET_TOOLS","GET_TOOL_CATEGORIES","UPDATE_AGENT_BY_ID","CREATE_USER_ROLE","CREATE_USER","RESET_USER_PASSWORD","GET_PROVIDERS","REMOVE_USER_BY_ID","REMOVE_USER_ROLE_BY_ID","REMOVE_AGENT_BY_ID","REMOVE_AGENT_SESSION_BY_ID","GET_VARIABLES","GET_VARIABLE_BY_ID","CREATE_VARIABLE","CREATE_EMBEDDER_CONFIG","GET_EMBEDDER_CONFIGS","UPDATE_EMBEDDER_CONFIG","UPDATE_VARIABLE","REMOVE_VARIABLE_BY_ID","GET_USER_BY_ID","GET_USERS_BY_IDS","GET_WORKFLOW_TEMPLATES","CREATE_WORKFLOW_TEMPLATE","UPDATE_WORKFLOW_TEMPLATE","REMOVE_WORKFLOW_TEMPLATE_BY_ID","GET_JOB_STATISTICS_ENHANCED","GET_AGENT_SESSIONS_STATISTICS","GET_WORKFLOW_RUNS_STATISTICS","GET_FUNCTION_CALLS_STATISTICS","GET_AGENT_RUN_STATISTICS","GET_TOKEN_USAGE_STATISTICS","GET_TIME_SERIES_STATISTICS","GET_USER_STATISTICS","GET_PROJECT_STATISTICS","GET_AGENT_STATISTICS","GET_DONUT_STATISTICS","PROJECT_FIELDS","GET_PROJECTS","GET_PROJECTS_BY_IDS","GET_PROJECT_BY_ID","UPDATE_USER_FAVOURITE_PROJECTS","CREATE_PROJECT","UPDATE_PROJECT","DELETE_PROJECT","TEST_CASE_FIELDS","EVAL_SET_FIELDS","EVAL_RUN_FIELDS","GET_TEST_CASES","CREATE_TEST_CASE","UPDATE_TEST_CASE","DELETE_TEST_CASE","GET_EVAL_SETS","GET_EVAL_FUNCTIONS","GET_EVAL_SET_BY_ID","CREATE_EVAL_SET","UPDATE_EVAL_SET","DELETE_EVAL_SET","GET_EVAL_RUNS","CREATE_EVAL_RUN","GET_QUEUE","GET_JOBS","DELETE_JOB","PAUSE_QUEUE","RESUME_QUEUE","DRAIN_QUEUE","RUN_EVAL","UPDATE_EVAL_RUN","PLATFORM_CONFIGURATION_FIELDS","GET_PLATFORM_CONFIGURATIONS","CREATE_PLATFORM_CONFIGURATION","UPDATE_PLATFORM_CONFIGURATION","PROMPT_LIBRARY_FIELDS","GET_PROMPTS","GET_PROMPT_BY_ID","CREATE_PROMPT","UPDATE_PROMPT","DELETE_PROMPT","INCREMENT_PROMPT_USAGE","INCREMENT_PROMPT_FAVORITES","PROMPT_FAVORITE_FIELDS","CREATE_PROMPT_FAVORITE","DELETE_PROMPT_FAVORITE"],"sourceRoot":""}
|