@aginies/ui 0.2.0 → 0.3.1
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/index.cjs +1218 -1052
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +86 -45
- package/dist/index.d.ts +86 -45
- package/dist/index.js +1172 -1007
- package/dist/index.js.map +1 -1
- package/dist/styles.css +43 -12
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/Icon.jsx","../src/core/AginiesMark.jsx","../src/core/mark-paths.js","../src/core/style.js","../src/core/Eyebrow.jsx","../src/core/Kbd.jsx","../src/core/Text.jsx","../src/actions/Button.jsx","../src/actions/ButtonStateful.jsx","../src/actions/Menu.jsx","../src/actions/Pill.jsx","../src/actions/Chip.jsx","../src/actions/CommandPalette.jsx","../src/actions/ThemeToggle.jsx","../src/forms/FormElement.jsx","../src/forms/Input.jsx","../src/forms/Textarea.jsx","../src/forms/Select.jsx","../src/forms/Checkbox.jsx","../src/forms/Switch.jsx","../src/forms/CheckboxButton.jsx","../src/forms/RadioGroup.jsx","../src/forms/Combobox.jsx","../src/forms/SegmentedControl.jsx","../src/forms/SecretField.jsx","../src/forms/TagInput.jsx","../src/pickers/Datepicker.jsx","../src/pickers/Timepicker.jsx","../src/pickers/Slider.jsx","../src/pickers/ColorPicker.jsx","../src/pickers/Counter.jsx","../src/pickers/DuelingPicklist.jsx","../src/pickers/FileSelector.jsx","../src/pickers/RichTextEditor.jsx","../src/pickers/VisualPicker.jsx","../src/pickers/Expression.jsx","../src/pickers/DockedFormFooter.jsx","../src/data/DataTable.jsx","../src/data/TreeGrid.jsx","../src/data/Tree.jsx","../src/data/Badge.jsx","../src/data/Tile.jsx","../src/data/SummaryDetail.jsx","../src/data/Avatar.jsx","../src/data/Tag.jsx","../src/data/BlockIcon.jsx","../src/data/FileCard.jsx","../src/data/Feed.jsx","../src/data/ActivityTimeline.jsx","../src/data/Illustration.jsx","../src/data/Stat.jsx","../src/data/MiniChart.jsx","../src/data/Kanban.jsx","../src/data/CalendarView.jsx","../src/data/Gantt.jsx","../src/data/DescriptionList.jsx","../src/data/Amount.jsx","../src/data/CodeBlock.jsx","../src/data/JsonTree.jsx","../src/data/DiffView.jsx","../src/data/Heatmap.jsx","../src/layout/Card.jsx","../src/layout/Toolbar.jsx","../src/layout/PageLayout.jsx","../src/feedback/SidePanel.jsx","../src/layout/responsive.js","../src/layout/Grid.jsx","../src/layout/Room.jsx","../src/navigation/GlobalHeader.jsx","../src/navigation/VerticalNavigation.jsx","../src/navigation/Tabs.jsx","../src/navigation/GlobalNavigation.jsx","../src/navigation/Breadcrumbs.jsx","../src/navigation/Path.jsx","../src/navigation/ProgressIndicator.jsx","../src/navigation/SplitView.jsx","../src/navigation/AppLauncher.jsx","../src/navigation/PageHeader.jsx","../src/navigation/BuilderHeader.jsx","../src/navigation/BrandBand.jsx","../src/navigation/Accordion.jsx","../src/navigation/Carousel.jsx","../src/navigation/SetupAssistant.jsx","../src/navigation/WelcomeMat.jsx","../src/navigation/MobileTabBar.jsx","../src/navigation/Pagination.jsx","../src/navigation/Stepper.jsx","../src/feedback/AginiesLoader.jsx","../src/feedback/Skeleton.jsx","../src/feedback/Alert.jsx","../src/feedback/Toast.jsx","../src/feedback/ScopedNotification.jsx","../src/feedback/Notification.jsx","../src/feedback/Modal.jsx","../src/feedback/Sheet.jsx","../src/feedback/Popover.jsx","../src/feedback/Tooltip.jsx","../src/feedback/Spinner.jsx","../src/feedback/ProgressBar.jsx","../src/feedback/ProgressRing.jsx","../src/feedback/DockedComposer.jsx","../src/feedback/Publisher.jsx","../src/feedback/EmptyState.jsx","../src/chat/ChatThread.jsx","../src/chat/ChatMessage.jsx","../src/chat/ChatMarkdown.jsx","../src/chat/ToolCallCard.jsx","../src/chat/StreamingIndicator.jsx","../src/chat/ChatEvent.jsx","../src/chat/ChatSuggestions.jsx","../src/chat/ChatComposer.jsx","../src/chat/TranscriptPanel.jsx","../src/widgets/ApprovalCard.jsx","../src/widgets/RunTimeline.jsx","../src/widgets/RunStatus.jsx","../src/widgets/format.js","../src/widgets/TraceSpans.jsx","../src/widgets/AgentRunCard.jsx","../src/widgets/CostBars.jsx","../src/widgets/CanvasBlock.jsx","../src/widgets/Canvas.jsx","../src/widgets/CanvasNote.jsx","../src/widgets/QueueCard.jsx","../src/widgets/CallCard.jsx","../src/dashboard/KpiWidget.jsx","../src/dashboard/ChartCard.jsx","../src/dashboard/TaskListWidget.jsx","../src/dashboard/AiInsightWidget.jsx","../src/dashboard/FilterBar.jsx","../src/dashboard/RecordSummaryWidget.jsx","../src/dashboard/TeamWorkloadWidget.jsx","../src/dashboard/ActivityWidget.jsx","../src/dashboard/QuickActions.jsx","../src/dashboard/NotificationsWidget.jsx","../src/dashboard/AgentFlowWidget.jsx","../src/dashboard/LeaderboardWidget.jsx","../src/dashboard/AgendaWidget.jsx","../src/dashboard/OnboardingWidget.jsx","../src/dashboard/CommentsWidget.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n// Lucide icon by name. Loads the Lucide UMD bundle once from unpkg (pinned) and renders the glyph as inline SVG.\n// Stroke 2 at ≤16px, 1.75 above — the Aginies rule. Product-family glyphs live in ProductIcon.\nconst CDN = 'https://unpkg.com/lucide@0.468.0/dist/umd/lucide.min.js';\nlet loading = null;\nconst listeners = new Set();\n// [@aginies/ui] Prefer the lucide-react package when the host has it installed: one dynamic\n// import, cached. Each of its icon components carries Lucide's icon node (props.iconNode\n// before 1.0, props.icon.node from 1.0), which renders here exactly like the UMD glyphs.\n// Without lucide-react, or if its shape is not recognised, the UMD loader below is the fallback.\nlet reactIcons = null;\nlet reactLoading = null;\nconst reactNodes = new Map();\nfunction nodeOf(Comp) {\n try {\n const el = Comp && typeof Comp.render === 'function' ? Comp.render({}, null) : null;\n const p = (el && el.props) || {};\n const n = p.iconNode || (p.icon && p.icon.node);\n return Array.isArray(n) ? n : null;\n } catch { return null; }\n}\nfunction ensureLucideReact() {\n if (!reactLoading) {\n reactLoading = import('lucide-react').then(\n (m) => {\n const icons = m.icons || (m.default && m.default.icons) || null;\n if (!icons || !nodeOf(icons.Circle)) return null;\n reactIcons = icons;\n listeners.forEach((l) => l());\n return icons;\n },\n () => null,\n );\n }\n return reactLoading;\n}\nfunction reactNode(name) {\n if (!reactIcons) return null;\n const key = pascal(name);\n if (!reactNodes.has(key)) reactNodes.set(key, nodeOf(reactIcons[key]));\n return reactNodes.get(key);\n}\nfunction ensureLucide() {\n if (typeof window === 'undefined') return;\n ensureLucideReact().then((icons) => { if (!icons) ensureLucideUmd(); });\n}\nfunction ensureLucideUmd() {\n if (typeof window === 'undefined' || window.lucide || loading) return;\n loading = new Promise((res) => {\n const s = document.createElement('script'); s.src = CDN; s.async = true;\n s.onload = () => { listeners.forEach((l) => l()); res(); }; s.onerror = res;\n document.head.appendChild(s);\n });\n}\nconst pascal = (n) => String(n).split(/[-_ ]/).map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join('');\nexport function Icon({ name = 'circle', size = 16, color = 'currentColor', strokeWidth, title, className, style, ...rest }) {\n const [, tick] = useState(0);\n useEffect(() => { ensureLucide(); const l = () => tick((t) => t + 1); listeners.add(l); return () => listeners.delete(l); }, []);\n const lib = typeof window !== 'undefined' && window.lucide && window.lucide.icons;\n let node = reactNode(name) || (lib && (lib[pascal(name)] || lib[name]));\n let children = [];\n if (node) {\n if (Array.isArray(node) && node[0] === 'svg') node = node[2];\n children = node.map((c, i) => React.createElement(c[0], { key: i, ...c[1] }));\n }\n const sw = strokeWidth != null ? strokeWidth : size <= 16 ? 2 : 1.75;\n return React.createElement('svg', { xmlns: 'http://www.w3.org/2000/svg', width: size, height: size, viewBox: '0 0 24 24', fill: 'none', stroke: color, strokeWidth: sw, strokeLinecap: 'round', strokeLinejoin: 'round', className: cxi('agn-icon', className), 'aria-hidden': title ? undefined : true, role: title ? 'img' : undefined, style: { flexShrink: 0, display: 'inline-block', verticalAlign: 'middle', ...style }, ...rest }, title ? React.createElement('title', null, title) : null, ...children);\n}\nconst cxi = (...a) => a.filter(Boolean).join(' ');\n// The seven product-family glyphs from aginies.com (24 grid, stroke 1.7, round caps).\nconst PRODUCTS = {\n platform: ['M12 3 3 7.5 12 12l9-4.5L12 3z', 'M3 12l9 4.5 9-4.5', 'M3 16.5 12 21l9-4.5'],\n voice: ['M4 10v4', 'M8 7v10', 'M12 4v16', 'M16 7v10', 'M20 10v4'],\n code: ['m8 8-4 4 4 4', 'm16 8 4 4-4 4', 'm14 4-4 16'],\n hub: [['circle', { cx: 12, cy: 12, r: 3 }], ['circle', { cx: 12, cy: 4, r: 1.5 }], ['circle', { cx: 20, cy: 12, r: 1.5 }], ['circle', { cx: 12, cy: 20, r: 1.5 }], ['circle', { cx: 4, cy: 12, r: 1.5 }], 'M12 7v2M15 12h3M12 15v3M9 12H6'],\n vision: ['M3 8V5a2 2 0 0 1 2-2h3M16 3h3a2 2 0 0 1 2 2v3M21 16v3a2 2 0 0 1-2 2h-3M8 21H5a2 2 0 0 1-2-2v-3', 'M12 8.5c-3.5 0-5.5 3.5-5.5 3.5s2 3.5 5.5 3.5 5.5-3.5 5.5-3.5-2-3.5-5.5-3.5z', ['circle', { cx: 12, cy: 12, r: 1.5 }]],\n workforce: [['circle', { cx: 9, cy: 8, r: 3 }], 'M3 20a6 6 0 0 1 12 0', 'M16 4.5a3 3 0 0 1 0 6', 'M17 14a6 6 0 0 1 4 6', 'M14 11h1'],\n dialog: ['M4 5.5A2.5 2.5 0 0 1 6.5 3h11A2.5 2.5 0 0 1 20 5.5v8a2.5 2.5 0 0 1-2.5 2.5H10l-5 4v-4H6.5A2.5 2.5 0 0 1 4 13.5v-8z', 'M8 8h8M8 11.5h5'],\n};\nexport const PRODUCT_NAMES = { platform: 'Platform Aginies', hub: 'Hub Aginies', dialog: 'Dialog Aginies', voice: 'Voice Aginies', vision: 'Vision Aginies', code: 'Code Aginies', workforce: 'Workforce Aginies' };\nexport function ProductIcon({ product = 'platform', size = 24, boxed = false, title, className, ...rest }) {\n const parts = PRODUCTS[product] || PRODUCTS.platform;\n const svg = React.createElement('svg', { xmlns: 'http://www.w3.org/2000/svg', width: size, height: size, viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: 1.7, strokeLinecap: 'round', strokeLinejoin: 'round', className: cxi('agn-icon', 'agn-product-icon', !boxed && className), 'aria-hidden': title ? undefined : true, role: title ? 'img' : undefined, ...(boxed ? {} : rest) },\n title ? React.createElement('title', null, title) : null,\n ...parts.map((p, i) => Array.isArray(p) ? React.createElement(p[0], { key: i, ...p[1] }) : React.createElement('path', { key: i, d: p })));\n if (!boxed) return svg;\n return React.createElement('span', { className: cxi('agn-product-box', className), ...rest }, svg);\n}\n","import React from 'react';\nimport { RING, CRESCENT, CORE } from './mark-paths.js';\nimport { uid } from './style.js';\n// The Aginies mark as inline SVG: the one place the brand gradients appear. Identical on dark and light; no monochrome version.\nexport function AginiesMark({ size = 24, title = 'Aginies', decorative = false, className, style, ...rest }) {\n const id = React.useMemo(() => uid('mark'), []);\n const outer = `${id}-outer`, warm = `${id}-warm`, inner = `${id}-inner`, titleId = `${id}-title`;\n return (\n <svg className={['agn-mark', className].filter(Boolean).join(' ')} width={size} height={size} viewBox=\"0 0 322 322\" fill=\"none\" role={decorative ? undefined : 'img'} aria-hidden={decorative ? true : undefined} aria-labelledby={decorative ? undefined : titleId} focusable=\"false\" style={{ flexShrink: 0, display: 'inline-block', verticalAlign: 'middle', ...style }} {...rest}>\n {decorative ? null : <title id={titleId}>{title}</title>}\n <path className=\"agn-mark__ring\" d={RING} pathLength={1} stroke={`url(#${outer})`} strokeWidth=\"13.4\" strokeMiterlimit=\"10\" />\n <path className=\"agn-mark__crescent\" d={CRESCENT} fillRule=\"evenodd\" clipRule=\"evenodd\" fill={`url(#${warm})`} />\n <path className=\"agn-mark__core\" d={CORE} pathLength={1} stroke={`url(#${inner})`} strokeWidth=\"10\" strokeMiterlimit=\"10\" />\n <defs>\n <linearGradient id={outer} x1=\"260.443\" y1=\"259.956\" x2=\"63.428\" y2=\"62.938\" gradientUnits=\"userSpaceOnUse\"><stop stopColor=\"#0500FF\" /><stop offset=\"1\" stopColor=\"#01B1F7\" /></linearGradient>\n <linearGradient id={warm} x1=\"267.31\" y1=\"252.303\" x2=\"70.097\" y2=\"41.883\" gradientUnits=\"userSpaceOnUse\"><stop stopColor=\"#EE0428\" /><stop offset=\"1\" stopColor=\"#FA09C7\" /></linearGradient>\n <linearGradient id={inner} x1=\"211.326\" y1=\"211.019\" x2=\"116.327\" y2=\"116.011\" gradientUnits=\"userSpaceOnUse\"><stop stopColor=\"#0500FF\" /><stop offset=\"1\" stopColor=\"#01B1F7\" /></linearGradient>\n </defs>\n </svg>\n );\n}\n// Mark + wordmark lockup. The wordmark is live text in the display face at 600 (the brand pack's outlines are the same face), so it follows --text.\nexport function AginiesLogo({ size = 24, product, wordmark = true, className, style, ...rest }) {\n return (\n <span className={['agn-logo', className].filter(Boolean).join(' ')} style={{ '--agn-logo-size': size + 'px', ...style }} {...rest}>\n <AginiesMark size={size} decorative={!!wordmark} />\n {wordmark && <span className=\"agn-logo__word\">Aginies{product ? <span className=\"agn-logo__product\">{product}</span> : null}</span>}\n </span>\n );\n}\n","// Aginies mark path data (322×322), from @aginies/webuikit AginiesMark.\nexport const RING = 'M303.294 199.934C298.22 218.56 279.136 230.052 268.023 244.419C256.491 259.314 249.934 280.546 233.836 289.76C217.747 298.973 196.107 293.879 177.431 296.277C159.412 298.585 139.822 309.231 121.206 304.167C102.59 299.093 91.0884 280.009 76.7211 268.895C62.3538 257.782 40.594 250.807 31.3806 234.708C22.1673 218.62 27.2615 196.979 24.8636 178.304C22.5553 160.285 11.9092 140.694 16.9736 122.078C22.0479 103.462 41.1313 91.9605 52.245 77.5932C63.7766 62.6985 70.3434 41.4659 86.4319 32.2526C102.52 23.0392 124.161 28.1334 142.836 25.7355C160.855 23.4272 180.446 12.7811 199.062 17.8454C217.677 22.9198 229.179 42.0032 243.546 53.117C258.441 64.6487 279.674 71.2154 288.887 87.304C298.1 103.392 293.006 125.033 295.404 143.709C297.712 161.728 308.358 181.318 303.294 199.934Z';\nexport const CRESCENT = 'M203.388 25.311C201.617 23.819 199.816 22.406 197.985 21.073C197.259 20.535 196.533 20.028 195.796 19.521C195.13 19.063 194.453 18.615 193.767 18.178C190.364 16.009 186.852 14.128 183.19 12.636C182.524 12.357 181.847 12.099 181.17 11.860C180.484 11.591 179.797 11.352 179.091 11.143C177.618 10.656 176.126 10.248 174.604 9.900C172.922 9.512 171.221 9.203 169.480 8.994C168.495 8.865 167.500 8.765 166.495 8.706C165.868 8.656 165.241 8.626 164.604 8.606C164.097 8.586 163.589 8.576 163.092 8.576H163.012C154.704 8.576 146.983 10.566 139.690 13.949C134.605 14.465 129.157 14.419 123.430 14.370L123.065 14.367H122.895C122.428 14.357 121.960 14.357 121.493 14.357C134.298 5.293 148.516 -0.836 164.873 -0.349C172.703 -0.110 179.947 1.611 186.712 4.427C187.459 4.735 188.205 5.064 188.941 5.402C189.687 5.740 190.424 6.089 191.160 6.467C192.702 7.233 194.204 8.049 195.697 8.924C197.339 9.879 198.950 10.904 200.532 11.979C201.448 12.596 202.363 13.233 203.259 13.899C204.313 14.665 205.358 15.451 206.393 16.277C218.990 26.196 229.887 39.211 240.098 51.407L240.192 51.519C241.037 52.524 241.873 53.519 242.699 54.504C243.068 54.943 243.437 55.381 243.804 55.817L243.818 55.833C244.328 56.438 244.835 57.040 245.336 57.638C245.632 57.984 245.925 58.328 246.217 58.671L246.222 58.677C246.694 59.230 247.162 59.779 247.634 60.325H247.644C249.097 62.036 250.549 63.707 251.992 65.329C253.265 66.752 254.529 68.135 255.803 69.488C256.051 69.757 256.310 70.025 256.569 70.294C257.385 71.160 258.220 72.015 259.076 72.881C260.001 73.826 260.937 74.771 261.902 75.717C265.032 78.810 268.333 81.937 271.740 85.163L272.797 86.164C273.266 86.609 273.738 87.056 274.254 87.545C276.469 89.642 278.709 91.763 280.935 93.925C282.846 98.472 283.612 103.785 283.890 109.536C278.461 103.861 272.644 98.351 266.870 92.881L266.638 92.661C260.459 86.820 254.619 81.288 249.286 75.617C243.953 69.956 238.789 63.787 233.326 57.260C233.276 57.200 233.224 57.138 233.171 57.075C233.119 57.014 233.067 56.952 233.018 56.892C231.137 54.643 229.267 52.405 227.376 50.186C223.397 45.490 219.347 40.863 215.188 36.495C211.368 32.496 207.457 28.725 203.388 25.311ZM27.220 116.594C31.249 111.868 35.776 107.331 40.552 102.923C44.611 99.172 48.870 95.511 53.158 91.889C54.979 90.347 56.810 88.815 58.630 87.293C58.802 87.146 58.976 87.002 59.148 86.855C65.486 81.552 71.466 76.537 76.988 71.333C82.659 66.000 88.181 60.170 94.031 53.981C99.523 48.180 105.065 42.330 110.767 36.878C105.135 37.156 99.653 37.942 94.967 40.022C92.439 42.638 89.962 45.255 87.524 47.832L87.093 48.288L87.091 48.290C83.861 51.700 80.729 55.008 77.624 58.160C76.669 59.135 75.714 60.100 74.749 61.045C73.873 61.921 72.998 62.777 72.112 63.612C71.694 64.020 71.276 64.418 70.859 64.816C69.655 65.951 68.421 67.075 67.157 68.219C65.526 69.672 63.854 71.134 62.153 72.607L62.151 72.608C61.276 73.354 60.401 74.100 59.506 74.856C58.521 75.701 57.516 76.547 56.501 77.393L56.194 77.651L56.192 77.653C55.100 78.572 53.998 79.500 52.880 80.427C40.860 90.476 28.035 101.212 18.155 113.580C17.280 114.664 16.444 115.759 15.628 116.873C14.942 117.788 14.285 118.714 13.638 119.659C12.534 121.281 11.479 122.922 10.484 124.614C9.599 126.116 8.763 127.638 7.987 129.191C7.609 129.917 7.251 130.653 6.912 131.389C6.564 132.136 6.236 132.882 5.917 133.628C3.042 140.483 1.271 147.816 1.022 155.746C0.525 172.173 6.713 186.461 15.857 199.316C15.857 198.798 15.857 198.291 15.867 197.784L15.870 197.407C15.919 191.714 15.965 186.300 15.469 181.257C11.957 173.755 9.897 165.805 9.957 157.229C9.957 156.821 9.957 156.423 9.977 156.015C9.997 155.279 10.037 154.552 10.096 153.826C10.166 152.831 10.265 151.846 10.395 150.881C10.614 149.140 10.932 147.438 11.330 145.767C11.678 144.264 12.096 142.782 12.584 141.319C12.803 140.623 13.041 139.926 13.310 139.240C13.549 138.563 13.817 137.877 14.106 137.210C15.618 133.529 17.519 129.996 19.737 126.574C20.175 125.877 20.643 125.181 21.130 124.494C21.638 123.738 22.165 122.992 22.722 122.256C24.125 120.335 25.638 118.445 27.220 116.594ZM316.325 187.008C319.061 180.342 320.733 173.198 320.962 165.497C321.439 149.230 315.370 135.061 306.375 122.306V123.470C306.316 129.609 306.276 135.419 306.853 140.782C310.027 147.767 311.927 155.130 312.007 163.030C312.037 163.766 312.027 164.492 312.007 165.229C311.997 165.696 311.977 166.154 311.947 166.612C311.888 167.636 311.798 168.651 311.679 169.656C311.470 171.417 311.181 173.149 310.803 174.850C310.465 176.382 310.057 177.895 309.589 179.377C309.370 180.083 309.132 180.780 308.873 181.476C308.644 182.163 308.385 182.839 308.107 183.506C306.624 187.178 304.774 190.710 302.595 194.122C302.167 194.819 301.719 195.505 301.251 196.182C300.754 196.918 300.247 197.645 299.719 198.371C298.386 200.212 296.973 202.012 295.491 203.784C292.108 207.843 288.357 211.753 284.387 215.554L284.327 215.604C279.909 219.832 275.233 223.932 270.477 227.961C268.268 229.842 266.050 231.702 263.831 233.553C263.784 233.591 263.737 233.630 263.690 233.669L263.592 233.752L263.590 233.754C263.511 233.821 263.432 233.887 263.353 233.951C256.826 239.413 250.668 244.577 244.996 249.910C239.396 255.176 233.942 260.937 228.173 267.030L227.953 267.262C222.460 273.073 216.908 278.933 211.207 284.386C216.958 284.107 222.281 283.341 226.818 281.431C229.415 278.754 231.962 276.068 234.460 273.421C238.081 269.591 241.584 265.889 245.046 262.387C245.981 261.442 246.917 260.507 247.852 259.591C248.727 258.726 249.593 257.890 250.469 257.064C250.687 256.845 250.916 256.636 251.135 256.427C252.528 255.114 253.951 253.810 255.414 252.507C257.045 251.054 258.707 249.602 260.418 248.149C261.235 247.443 262.059 246.745 262.893 246.040L263.105 245.861C263.353 245.651 263.602 245.441 263.852 245.230L264.404 244.766C265.002 244.263 265.604 243.757 266.209 243.244C267.164 242.448 268.129 241.642 269.104 240.826C281.412 230.528 294.555 219.524 304.535 206.778C305.351 205.754 306.137 204.709 306.893 203.654C307.560 202.749 308.196 201.843 308.803 200.918C309.878 199.336 310.893 197.714 311.848 196.073C312.713 194.570 313.539 193.058 314.295 191.506C314.664 190.779 315.012 190.043 315.340 189.297C315.688 188.541 316.017 187.775 316.325 187.008ZM198.921 305.892C198.729 305.889 198.537 305.887 198.343 305.887C192.264 305.827 186.523 305.787 181.200 306.344C174.027 309.648 166.425 311.608 158.266 311.657C157.639 311.667 157.013 311.657 156.386 311.637C155.829 311.618 155.271 311.598 154.714 311.558C153.699 311.498 152.704 311.409 151.710 311.279C149.958 311.070 148.237 310.762 146.546 310.384C145.013 310.036 143.511 309.628 142.029 309.140C141.322 308.931 140.626 308.682 139.929 308.424C139.243 308.185 138.566 307.926 137.889 307.638C134.178 306.135 130.616 304.245 127.184 302.036C126.487 301.598 125.801 301.141 125.114 300.663C124.358 300.156 123.612 299.628 122.866 299.071C120.955 297.678 119.085 296.186 117.234 294.624C112.428 290.564 107.832 285.997 103.374 281.152C99.583 277.062 95.902 272.784 92.261 268.466C90.718 266.645 89.186 264.814 87.664 262.984C87.630 262.943 87.596 262.902 87.561 262.860C87.485 262.768 87.408 262.675 87.326 262.586C81.993 256.208 76.928 250.178 71.705 244.627C66.439 239.027 60.678 233.572 54.586 227.804L54.352 227.583C48.591 222.140 42.791 216.648 37.378 210.997C37.687 216.827 38.493 222.210 40.512 226.767C42.662 228.834 44.812 230.873 46.939 232.890C47.362 233.291 47.783 233.691 48.204 234.090C51.865 237.552 55.407 240.905 58.770 244.219C59.755 245.184 60.720 246.149 61.665 247.114C62.531 247.990 63.377 248.865 64.203 249.731C64.523 250.061 64.826 250.382 65.136 250.711L65.188 250.765C66.382 252.039 67.575 253.342 68.779 254.676C70.212 256.278 71.645 257.919 73.088 259.601C73.554 260.141 74.017 260.685 74.483 261.233C74.772 261.573 75.063 261.914 75.356 262.257C76.040 263.067 76.725 263.883 77.415 264.707L77.814 265.183L78.283 265.742C79.114 266.732 79.951 267.730 80.789 268.735C90.907 280.823 101.713 293.728 114.170 303.648C115.264 304.514 116.358 305.359 117.473 306.165C118.388 306.842 119.314 307.498 120.249 308.135C121.871 309.240 123.522 310.294 125.204 311.279C126.706 312.165 128.238 313.001 129.790 313.767C130.527 314.145 131.273 314.503 132.029 314.841C132.775 315.180 133.522 315.508 134.278 315.826C141.044 318.632 148.287 320.353 156.117 320.592C156.734 320.612 157.361 320.622 157.968 320.622C173.549 320.622 187.180 314.622 199.498 305.897C199.304 305.897 199.112 305.894 198.921 305.892Z';\nexport const CORE = 'M232.111 165.663C231.572 183.137 213.235 193.893 201.434 204.998C189.624 216.094 177.756 233.726 160.282 233.187C142.808 232.648 132.052 214.311 120.947 202.51C109.851 190.7 92.2192 178.841 92.7583 161.359C93.2974 143.885 111.626 133.128 123.435 122.023C135.245 110.927 147.113 93.2955 164.587 93.8346C182.061 94.3736 192.817 112.702 203.922 124.511C215.018 136.321 232.65 148.18 232.111 165.663Z';\n","// Shared helpers. All styling lives in bundle.css (src/styles/*.css); components only compose class names.\nexport const cx = (...a) => a.filter(Boolean).join(' ');\nlet _id = 0;\nexport const uid = (p = 'agn') => `${p}-${(++_id).toString(36)}`;\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// The mono uppercase eyebrow that names the group a page or section belongs to (\"OBSERVE · LOGS\"). Link-coloured; quiet is mute.\nexport function Eyebrow({ quiet, as: Tag = 'div', className, children, ...rest }) {\n return <Tag className={cx('agn-eyebrow', quiet && 'agn-eyebrow--quiet', className)} {...rest}>{children}</Tag>;\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Keyboard hint (⌘K, Esc): mono glyphs on panel-2 chips. keys renders one chip per key; children renders a single chip.\nexport function Kbd({ keys, size = 'md', className, children, ...rest }) {\n const list = keys && keys.length ? keys : [children];\n return (\n <kbd className={cx('agn-kbd', size === 'sm' && 'agn-kbd--sm', className)} {...rest}>\n {list.map((k, i) => <span key={i} className=\"agn-kbd__key\">{k}</span>)}\n </kbd>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Typography helper: one class per type style from tokens.json. Picks a sensible tag per variant; as overrides it.\nconst TAGS = { display: 'h1', h1: 'h1', h2: 'h2', h3: 'h3', title: 'h1', h4: 'h4', heading: 'h3', stat: 'div', lede: 'p', body: 'p', 'body-2': 'p', small: 'p', ui: 'span', 'ui-sm': 'span', 'ui-xs': 'span', eyebrow: 'div', label: 'div', tag: 'span', code: 'code', 'code-sm': 'code' };\nexport function Text({ variant = 'body', as, tone, tabular, truncate, className, children, ...rest }) {\n const Tag = as || TAGS[variant] || 'span';\n return <Tag className={cx('agn-text', 'agn-text--' + variant, tone && 'agn-text--tone-' + tone, tabular && 'agn-num', truncate && 'agn-text--truncate', className)} {...rest}>{children}</Tag>;\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Action trigger. One primary (signal) button per view; neutral for the rest; ghost inside toolbars and cards.\nexport function Button({ variant = 'neutral', size = 'md', icon, iconRight, stretch, selected, loading, children, className, as: Tag = 'button', ...rest }) {\n const iconSize = size === 'sm' || size === 'xs' ? 14 : size === 'lg' ? 18 : 16;\n return (\n <Tag type={Tag === 'button' ? rest.type || 'button' : undefined} className={cx('agn-btn', 'agn-btn--' + variant, size !== 'md' && 'agn-btn--' + size, stretch && 'agn-btn--stretch', selected && 'agn-btn--selected', loading && 'agn-btn--loading', className)} aria-pressed={selected} aria-busy={loading || undefined} disabled={rest.disabled || loading} {...rest}>\n {loading ? <span className=\"agn-btn__spinner\" aria-hidden=\"true\" /> : icon && <Icon name={icon} size={iconSize} />}\n {children != null && <span className=\"agn-btn__label\">{children}</span>}\n {iconRight && <Icon name={iconRight} size={iconSize} className=\"agn-btn__arrow\" />}\n </Tag>\n );\n}\n// Icon-only button. Always pass label: it is the accessible name and the tooltip.\nexport function ButtonIcon({ icon, label, variant = 'ghost', size = 'md', notification, className, ...rest }) {\n const iconSize = size === 'sm' || size === 'xs' ? 14 : size === 'lg' ? 20 : 16;\n return (\n <button type=\"button\" className={cx('agn-btn', 'agn-btn--icon', 'agn-btn--' + variant, size !== 'md' && 'agn-btn--' + size, className)} aria-label={label} title={label} {...rest}>\n <Icon name={icon} size={iconSize} />\n {notification && <span className=\"agn-btn__dot\" aria-hidden=\"true\" />}\n </button>\n );\n}\n// Groups related buttons; joined removes inner radii, list keeps the control gap.\nexport function ButtonGroup({ joined = true, children, className, ...rest }) {\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n return <div className={cx('agn-btn-group', joined ? 'agn-btn-group--joined' : 'agn-btn-group--list', className)} role=\"group\" {...rest}>{children}</div>;\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Toggle with three labels: off, on, and on-hover (Follow · Following · Unfollow). All three are laid out on top of each other so the width never jumps.\nconst DEFAULT_LABELS = { off: 'Follow', on: 'Following', hover: 'Unfollow' };\nconst DEFAULT_ICONS = { off: 'plus', on: 'check', hover: 'x' };\nexport function ButtonStateful({ selected = false, onChange, labels, icons, size = 'md', variant = 'neutral', disabled, className, ...rest }) {\n const [hover, setHover] = React.useState(false);\n const L = { ...DEFAULT_LABELS, ...labels };\n const I = { ...DEFAULT_ICONS, ...icons };\n const state = selected ? (hover ? 'hover' : 'on') : 'off';\n const iconSize = size === 'sm' || size === 'xs' ? 14 : size === 'lg' ? 18 : 16;\n return (\n <button type=\"button\" className={cx('agn-btn', 'agn-btn--' + variant, size !== 'md' && 'agn-btn--' + size, 'agn-btn-stateful', selected && 'agn-btn--selected', state === 'hover' && 'agn-btn-stateful--leaving', className)} aria-pressed={selected} disabled={disabled}\n onMouseEnter={() => setHover(true)} onMouseLeave={() => setHover(false)} onBlur={() => setHover(false)}\n onClick={() => { onChange && onChange(!selected); setHover(false); }} {...rest}>\n <Icon name={I[state]} size={iconSize} />\n <span className=\"agn-btn-stateful__labels\">\n {['off', 'on', 'hover'].map((k) => <span key={k} className={cx('agn-btn__label', 'agn-btn-stateful__label', k === state && 'agn-btn-stateful__label--current')} aria-hidden={k !== state}>{L[k]}</span>)}\n </span>\n </button>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Kbd } from '../core/Kbd.jsx';\n// Dropdown menu anchored to a trigger. Items carry icon, shortcut, danger, selected; separators and headers group them.\n// searchable adds the filter field (the \"dynamic\" menu) and footer a bottom action. Keyboard: arrows, Home/End, Enter, Esc, type-ahead.\nconst DEFAULT_LABELS = { search: 'Search…', empty: 'No matches' };\nexport function Menu({ items = [], trigger, open: openProp, onOpenChange, align = 'left', onSelect, searchable, selected, header, footer, static: isStatic, labels, width, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [openState, setOpenState] = React.useState(false);\n const [q, setQ] = React.useState('');\n const open = openProp != null ? openProp : openState;\n const wrapRef = React.useRef(null);\n const listRef = React.useRef(null);\n const triggerRef = React.useRef(null);\n const typeRef = React.useRef({ s: '', t: 0 });\n const id = React.useMemo(() => uid('menu'), []);\n const setOpen = (v) => { if (openProp == null) setOpenState(v); onOpenChange && onOpenChange(v); if (!v) setQ(''); };\n const setOpenRef = React.useRef(setOpen); setOpenRef.current = setOpen;\n const itemEls = () => (listRef.current ? Array.from(listRef.current.querySelectorAll('[role^=\"menuitem\"]:not([aria-disabled=\"true\"])')) : []);\n const focusAt = (i) => { const els = itemEls(); if (els.length) els[(i + els.length) % els.length].focus(); };\n // biome-ignore lint/correctness/useExhaustiveDependencies: runs on open transitions only; focusAt, searchable and isStatic are read at that moment by design\n React.useEffect(() => {\n if (!open || isStatic) return;\n const t = setTimeout(() => { if (searchable) { const inp = listRef.current && listRef.current.querySelector('input'); inp && inp.focus(); } else focusAt(0); }, 0);\n const onDoc = (e) => { if (wrapRef.current && !wrapRef.current.contains(e.target)) setOpenRef.current(false); };\n document.addEventListener('mousedown', onDoc);\n return () => { clearTimeout(t); document.removeEventListener('mousedown', onDoc); };\n }, [open]);\n const close = (restore) => { setOpen(false); if (restore && triggerRef.current) triggerRef.current.focus(); };\n const onKeyDown = (e) => {\n const els = itemEls(); const i = els.indexOf(document.activeElement);\n if (e.key === 'ArrowDown') { e.preventDefault(); focusAt(i + 1); }\n else if (e.key === 'ArrowUp') { e.preventDefault(); focusAt(i <= 0 ? els.length - 1 : i - 1); }\n else if (e.key === 'Home') { e.preventDefault(); focusAt(0); }\n else if (e.key === 'End') { e.preventDefault(); focusAt(els.length - 1); }\n else if (e.key === 'Escape') { e.preventDefault(); close(true); }\n else if (e.key === 'Tab' && !isStatic) { setOpen(false); }\n else if (!searchable && e.key.length === 1 && !e.metaKey && !e.ctrlKey && !e.altKey) {\n const now = Date.now(); const st = typeRef.current; st.s = (now - st.t < 600 ? st.s : '') + e.key.toLocaleLowerCase(); st.t = now;\n const hit = els.find((el) => (el.textContent || '').trim().toLocaleLowerCase().startsWith(st.s)); if (hit) hit.focus();\n }\n };\n const pick = (it) => { if (it.disabled) return; onSelect && onSelect(it); it.onClick && it.onClick(it); if (!isStatic) close(true); };\n const hasCheck = selected !== undefined || items.some((x) => x && x.selected);\n const visible = items.filter((it) => { if (!q || it === 'separator' || it.type === 'separator' || it.type === 'header') return true; return (it.label || '').toLocaleLowerCase().includes(q.toLocaleLowerCase()); });\n const anyItem = visible.some((it) => it !== 'separator' && it.type !== 'separator' && it.type !== 'header');\n const list = (\n <div role=\"menu\" id={id} ref={listRef} className={cx('agn-menu', align === 'right' && 'agn-menu--right', isStatic && 'agn-menu--static', className)} style={{ width, ...style }} onKeyDown={onKeyDown} {...rest}>\n {header && <div className=\"agn-menu__header\">{header}</div>}\n {searchable && <div className=\"agn-menu__search\"><Icon name=\"search\" size={14} /><input className=\"agn-menu__search-input\" placeholder={L.search} value={q} onChange={(e) => setQ(e.target.value)} aria-label={L.search} /></div>}\n <div className=\"agn-menu__list\">\n {!anyItem && <div className=\"agn-menu__empty\">{L.empty}</div>}\n {visible.map((it, i) => it === 'separator' || it.type === 'separator' ? (\n // biome-ignore lint/a11y/useFocusableInteractive: static, non-focusable separator; aria-valuenow and focusability are only required of a focusable (splitter) separator\n // biome-ignore lint/a11y/useAriaPropsForRole: static, non-focusable separator; aria-valuenow and focusability are only required of a focusable (splitter) separator\n <div key={'s' + i} className=\"agn-menu__sep\" role=\"separator\" />\n )\n : it.type === 'header' ? <div key={'h' + i} className=\"agn-menu__header\">{it.label}</div>\n : (\n // biome-ignore lint/a11y/useAriaPropsSupportedByRole: the role is menuitemradio whenever aria-checked is set; the rule reads the <button> element, not the role\n <button key={it.value != null ? it.value : i} type=\"button\" role={hasCheck ? 'menuitemradio' : 'menuitem'} tabIndex={-1} aria-disabled={it.disabled || undefined} aria-checked={hasCheck ? (selected === it.value || !!it.selected) : undefined}\n className={cx('agn-menu__item', it.danger && 'agn-menu__item--danger', (selected === it.value || it.selected) && 'agn-menu__item--selected')} onClick={() => pick(it)}>\n {hasCheck && <span className=\"agn-menu__check\">{(selected === it.value || it.selected) && <Icon name=\"check\" size={14} />}</span>}\n {it.icon && <Icon name={it.icon} size={16} className=\"agn-menu__icon\" />}\n <span className=\"agn-menu__label\">{it.label}{it.meta && <span className=\"agn-menu__meta\">{it.meta}</span>}</span>\n {it.shortcut && <Kbd size=\"sm\" className=\"agn-menu__shortcut\">{it.shortcut}</Kbd>}\n {it.submenu && <Icon name=\"chevron-right\" size={14} className=\"agn-menu__icon\" />}\n </button>\n ))}\n </div>\n {footer && <div className=\"agn-menu__footer\">{footer}</div>}\n </div>\n );\n if (isStatic) return list;\n return (\n <div className=\"agn-menu-wrap\" ref={wrapRef}>\n {trigger && React.cloneElement(trigger, { ref: triggerRef, 'aria-haspopup': 'menu', 'aria-expanded': open, 'aria-controls': open ? id : undefined, onClick: (e) => { trigger.props.onClick && trigger.props.onClick(e); setOpen(!open); }, onKeyDown: (e) => { trigger.props.onKeyDown && trigger.props.onKeyDown(e); if (e.key === 'ArrowDown' && !open) { e.preventDefault(); setOpen(true); } } })}\n {open && list}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Removable token for selections, filters and recipients. Leading avatar (image URL or initials) or icon; invalid state for an unresolved entry.\nconst DEFAULT_LABELS = { remove: 'Remove' };\nexport function Pill({ label, icon, avatar, onRemove, href, invalid, truncate, size = 'md', labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const Tag = href ? 'a' : 'span';\n const avatarNode = avatar ? (/^(https?:|data:|\\/)/.test(avatar) ? <img className=\"agn-pill__avatar\" src={avatar} alt=\"\" /> : <span className=\"agn-pill__avatar agn-pill__avatar--initials\" aria-hidden=\"true\">{avatar}</span>) : null;\n return (\n <span className={cx('agn-pill', size === 'sm' && 'agn-pill--sm', invalid && 'agn-pill--invalid', avatar && 'agn-pill--avatar', className)} style={truncate ? { maxWidth: truncate } : undefined} {...rest}>\n {invalid ? <Icon name=\"circle-alert\" size={14} className=\"agn-pill__icon\" /> : avatarNode || (icon && <Icon name={icon} size={14} className=\"agn-pill__icon\" />)}\n <Tag className=\"agn-pill__label\" href={href} title={typeof label === 'string' ? label : undefined}>{label}</Tag>\n {onRemove && <button type=\"button\" className=\"agn-pill__remove\" aria-label={L.remove + (typeof label === 'string' ? ': ' + label : '')} onClick={(e) => { e.stopPropagation(); onRemove(); }}><Icon name=\"x\" size={12} /></button>}\n </span>\n );\n}\n// Flex-wrap container for pills: a bordered field-like box by default, bare inside another control (Combobox, TagInput).\nexport function PillContainer({ bare, children, className, ...rest }) {\n return <div className={cx('agn-pill-container', bare && 'agn-pill-container--bare', className)} {...rest}>{children}</div>;\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// The website's filter chip: a 32px pill that toggles (aria-pressed). sm is 28px. Optional leading icon and trailing count.\nexport function Chip({ active, icon, count, size = 'md', as: Tag = 'button', className, children, ...rest }) {\n return (\n <Tag type={Tag === 'button' ? 'button' : undefined} className={cx('agn-chip', size === 'sm' && 'agn-chip--sm', active && 'agn-chip--active', className)} aria-pressed={Tag === 'button' ? !!active : undefined} {...rest}>\n {icon && <Icon name={icon} size={14} />}\n <span className=\"agn-chip__label\">{children}</span>\n {count != null && <span className=\"agn-chip__count agn-num\">{count}</span>}\n </Tag>\n );\n}\n// A set of chips with single (radio-like) or multiple selection. value is a string, or an array when multiple.\nexport function ChipGroup({ options = [], value, onChange, multiple, size, label, className, ...rest }) {\n const sel = multiple ? (Array.isArray(value) ? value : []) : value;\n const isOn = (v) => multiple ? sel.includes(v) : sel === v;\n const toggle = (v) => { if (!onChange) return; if (multiple) onChange(isOn(v) ? sel.filter((x) => x !== v) : [...sel, v]); else onChange(v === sel ? undefined : v); };\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div className={cx('agn-chip-group', className)} role=\"group\" aria-label={label} {...rest}>\n {options.map((o) => { const opt = typeof o === 'string' ? { label: o, value: o } : o; return <Chip key={opt.value} size={size} icon={opt.icon} count={opt.count} active={isOn(opt.value)} disabled={opt.disabled} onClick={() => toggle(opt.value)}>{opt.label}</Chip>; })}\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\nimport { Kbd } from '../core/Kbd.jsx';\n// ⌘K overlay: a search field, grouped results, recent items when the query is empty, keyboard navigation and Kbd hints.\nconst DEFAULT_LABELS = { placeholder: 'Search agents, runs, actions…', recent: 'Recent', results: 'Results', suggestions: 'Suggestions', empty: 'No results for', navigate: 'Navigate', open: 'Open', close: 'Close', title: 'Command palette' };\nexport function CommandPalette({ open, onClose, items = [], onSelect, recent = [], labels, placeholder, static: isStatic, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [q, setQ] = React.useState('');\n const [active, setActive] = React.useState(0);\n const inputRef = React.useRef(null);\n const listRef = React.useRef(null);\n const id = React.useMemo(() => uid('cmdk'), []);\n const filtered = React.useMemo(() => {\n if (!q) return recent.length ? recent : items;\n const s = q.toLocaleLowerCase();\n return items.filter((i) => (i.label + ' ' + (i.meta || '') + ' ' + (i.group || '') + ' ' + (i.keywords || '')).toLocaleLowerCase().includes(s));\n }, [q, items, recent]);\n const groups = React.useMemo(() => {\n const m = new Map();\n filtered.forEach((i) => { const g = q ? (i.group || L.results) : (recent.length ? L.recent : (i.group || L.suggestions)); if (!m.has(g)) m.set(g, []); m.get(g).push(i); });\n return Array.from(m.entries());\n }, [filtered, q, recent.length, L.recent, L.results, L.suggestions]);\n React.useEffect(() => { if (open) { setQ(''); setActive(0); const t = setTimeout(() => inputRef.current && inputRef.current.focus(), 0); return () => clearTimeout(t); } }, [open]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: active is the trigger: the effect scrolls the newly selected option into view\n React.useEffect(() => { const el = listRef.current && listRef.current.querySelector('[aria-selected=\"true\"]'); el && el.scrollIntoView && el.scrollIntoView({ block: 'nearest' }); }, [active]);\n const choose = (it) => { onSelect && onSelect(it); it.onSelect && it.onSelect(it); onClose && onClose(); };\n const onKeyDown = (e) => {\n if (e.key === 'Escape') { e.preventDefault(); onClose && onClose(); }\n else if (e.key === 'ArrowDown') { e.preventDefault(); setActive((a) => Math.min(a + 1, filtered.length - 1)); }\n else if (e.key === 'ArrowUp') { e.preventDefault(); setActive((a) => Math.max(a - 1, 0)); }\n else if (e.key === 'Home') { e.preventDefault(); setActive(0); }\n else if (e.key === 'End') { e.preventDefault(); setActive(filtered.length - 1); }\n else if (e.key === 'Enter' && filtered[active]) { e.preventDefault(); choose(filtered[active]); }\n else if (e.key === 'Tab') { e.preventDefault(); }\n };\n if (!open) return null;\n let idx = -1;\n const dialog = (\n <div className={cx('agn-cmdk', isStatic && 'agn-cmdk--static', className)} role=\"dialog\" aria-modal={!isStatic || undefined} aria-label={L.title} onKeyDown={onKeyDown} {...rest}>\n <div className=\"agn-cmdk__field\">\n <Icon name=\"search\" size={18} className=\"agn-cmdk__search-icon\" />\n <input ref={inputRef} className=\"agn-cmdk__input\" value={q} onChange={(e) => { setQ(e.target.value); setActive(0); }} placeholder={placeholder || L.placeholder} role=\"combobox\" aria-expanded=\"true\" aria-controls={id} aria-activedescendant={filtered[active] ? id + '-' + active : undefined} aria-autocomplete=\"list\" autoComplete=\"off\" spellCheck={false} />\n <Kbd size=\"sm\">Esc</Kbd>\n </div>\n {/* biome-ignore lint/a11y/useSemanticElements: custom listbox with rich option content (icons, meta, check); a native <select> cannot render it */}\n <div className=\"agn-cmdk__list\" id={id} role=\"listbox\" ref={listRef}>\n {filtered.length === 0 && <div className=\"agn-cmdk__empty\">{L.empty} “{q}”</div>}\n {groups.map(([g, list]) => (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div key={g} className=\"agn-cmdk__group\" role=\"group\" aria-label={g}>\n <div className=\"agn-cmdk__group-label\">{g}</div>\n {list.map((it) => { idx++; const i = idx; return (\n // biome-ignore lint/a11y/useSemanticElements: focus stays on the combobox input (aria-activedescendant): arrows and Enter select, the click is the pointer path\n // biome-ignore lint/a11y/useKeyWithClickEvents: focus stays on the combobox input (aria-activedescendant): arrows and Enter select, the click is the pointer path\n // biome-ignore lint/a11y/useFocusableInteractive: focus stays on the combobox input (aria-activedescendant): arrows and Enter select, the click is the pointer path\n <div key={it.id != null ? it.id : it.label} id={id + '-' + i} role=\"option\" aria-selected={i === active} className={cx('agn-cmdk__item', i === active && 'agn-cmdk__item--active')} onMouseEnter={() => setActive(i)} onMouseDown={(e) => e.preventDefault()} onClick={() => choose(it)}>\n <span className=\"agn-cmdk__icon\">{it.product ? <ProductIcon product={it.product} size={16} /> : <Icon name={it.icon || 'corner-down-right'} size={16} />}</span>\n <span className=\"agn-cmdk__label\">{it.label}</span>\n {it.meta && <span className=\"agn-cmdk__meta\">{it.meta}</span>}\n {it.shortcut && <Kbd size=\"sm\" keys={Array.isArray(it.shortcut) ? it.shortcut : undefined}>{Array.isArray(it.shortcut) ? undefined : it.shortcut}</Kbd>}\n </div>); })}\n </div>))}\n </div>\n <div className=\"agn-cmdk__footer\">\n <span className=\"agn-cmdk__hint\"><Kbd size=\"sm\" keys={['↑', '↓']} /> {L.navigate}</span>\n <span className=\"agn-cmdk__hint\"><Kbd size=\"sm\">↵</Kbd> {L.open}</span>\n <span className=\"agn-cmdk__hint\"><Kbd size=\"sm\">Esc</Kbd> {L.close}</span>\n </div>\n </div>\n );\n if (isStatic) return dialog;\n // biome-ignore lint/a11y/noStaticElementInteractions: pointer-only convenience; Esc closes the dialog from the keyboard\n return <div className=\"agn-cmdk__backdrop\" onMouseDown={(e) => { if (e.target === e.currentTarget) onClose && onClose(); }}>{dialog}</div>;\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Theme state: light | dark | system. Sets data-theme on <html> (resolved), persists in localStorage \"agn-theme\". Light is the default.\nconst KEY = 'agn-theme';\nconst VALID = ['light', 'dark', 'system'];\nconst read = () => { try { const v = localStorage.getItem(KEY); return VALID.includes(v) ? v : null; } catch { return null; } };\nconst write = (v) => { try { localStorage.setItem(KEY, v); } catch { /* private window or blocked storage */ } };\nconst media = () => (typeof window !== 'undefined' && window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null);\nexport const resolveTheme = (t) => (t === 'system' ? ((media() && media().matches) ? 'dark' : 'light') : (t === 'dark' ? 'dark' : 'light'));\nexport function useTheme(defaultTheme = 'light') {\n const [theme, setThemeState] = React.useState(() => {\n const stored = read(); if (stored) return stored;\n const current = typeof document !== 'undefined' ? document.documentElement.getAttribute('data-theme') : null;\n return current === 'dark' || current === 'light' ? current : defaultTheme;\n });\n const [resolved, setResolved] = React.useState(() => resolveTheme(theme));\n React.useEffect(() => {\n const apply = () => { const r = resolveTheme(theme); setResolved(r); if (typeof document !== 'undefined' && document.documentElement.getAttribute('data-theme') !== r) document.documentElement.setAttribute('data-theme', r); };\n apply();\n const m = media(); if (theme === 'system' && m) { const h = () => apply(); m.addEventListener ? m.addEventListener('change', h) : m.addListener(h); return () => { m.removeEventListener ? m.removeEventListener('change', h) : m.removeListener(h); }; }\n }, [theme]);\n const setTheme = React.useCallback((t) => { const v = VALID.includes(t) ? t : 'light'; write(v); setThemeState(v); }, []);\n return [theme, setTheme, resolved];\n}\nconst DEFAULT_LABELS = { light: 'Light', dark: 'Dark', system: 'System', title: 'Theme' };\nconst ICONS = { light: 'sun', dark: 'moon', system: 'monitor' };\n// Segmented icon control (default) or a single button that cycles. Controlled through value/onChange, or self-managed through useTheme.\nexport function ThemeToggle({ value, onChange, options = VALID, variant = 'segmented', size = 'md', showLabels, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [own, setOwn] = useTheme();\n const controlled = value !== undefined;\n const current = controlled ? value : own;\n const set = (v) => { if (!controlled) setOwn(v); onChange && onChange(v); };\n const h = size === 'sm' ? 'agn-theme-toggle--sm' : null;\n if (variant === 'button') {\n const next = options[(options.indexOf(current) + 1) % options.length];\n return <button type=\"button\" className={cx('agn-btn', 'agn-btn--ghost', 'agn-btn--icon', size === 'sm' && 'agn-btn--sm', className)} aria-label={L.title + ': ' + L[current]} title={L.title + ': ' + L[current]} onClick={() => set(next)} {...rest}><Icon name={ICONS[current] || 'sun'} size={16} /></button>;\n }\n return (\n <div className={cx('agn-theme-toggle', h, className)} role=\"radiogroup\" aria-label={L.title} {...rest}>\n {options.map((o) => (\n // biome-ignore lint/a11y/useSemanticElements: segmented button: role=radio on a <button> with roving tabIndex and arrow keys; a native radio input cannot carry this layout\n <button key={o} type=\"button\" role=\"radio\" aria-checked={current === o} aria-label={showLabels ? undefined : L[o]} title={L[o]} className={cx('agn-theme-toggle__opt', 'agn-focus-inset', current === o && 'agn-theme-toggle__opt--on')} onClick={() => set(o)}\n onKeyDown={(e) => { const i = options.indexOf(o); if (e.key === 'ArrowRight' || e.key === 'ArrowDown') { e.preventDefault(); set(options[(i + 1) % options.length]); } if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') { e.preventDefault(); set(options[(i - 1 + options.length) % options.length]); } }}\n tabIndex={current === o ? 0 : -1}>\n <Icon name={ICONS[o]} size={14} />{showLabels && <span>{L[o]}</span>}\n </button>))}\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Label + control + help/error wrapper. Wires id, aria-describedby and aria-invalid onto a single child control.\n// readOnly renders the record-view stacked value with an inline-edit pencil; inline lays label and control in two columns (settings rows).\nconst DEFAULT_LABELS = { required: 'Required', optional: 'Optional', edit: 'Edit' };\nexport function FormElement({ label, required, optional, help, error, hint, inline, readOnly, value, onEdit, htmlFor, id: idProp, labels, className, children, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const auto = React.useMemo(() => uid('field'), []);\n const id = htmlFor || idProp || auto;\n const helpId = id + '-help', errorId = id + '-error';\n const describedBy = [error && errorId, help && helpId].filter(Boolean).join(' ') || undefined;\n const control = React.Children.count(children) === 1 && React.isValidElement(children) && typeof children.type !== 'string' || (React.isValidElement(children) && ['input', 'select', 'textarea'].includes(children.type))\n ? React.cloneElement(children, { id: children.props.id || id, 'aria-describedby': cx(children.props['aria-describedby'], describedBy) || undefined, 'aria-invalid': error ? true : children.props['aria-invalid'], invalid: typeof children.type !== 'string' ? (!!error || children.props.invalid) : undefined, required: required || children.props.required })\n : children;\n return (\n <div className={cx('agn-form-el', inline && 'agn-form-el--inline', readOnly && 'agn-form-el--readonly', error && 'agn-form-el--invalid', className)} {...rest}>\n {label && (\n <div className=\"agn-form-el__head\">\n <label className=\"agn-form-el__label\" htmlFor={readOnly ? undefined : id}>\n {label}\n {required && <span className=\"agn-form-el__req\" aria-hidden=\"true\">*</span>}{required && <span className=\"agn-sr\"> ({L.required})</span>}\n {optional && !required && <span className=\"agn-form-el__opt\">{L.optional}</span>}\n </label>\n {hint && <span className=\"agn-form-el__hint\" title={hint}><Icon name=\"info\" size={14} title={hint} /></span>}\n {inline && help && !readOnly && <div className=\"agn-form-el__help agn-form-el__help--inline\" id={helpId}>{help}</div>}\n </div>)}\n <div className=\"agn-form-el__control\">\n {readOnly ? (\n <div className=\"agn-form-el__value\">\n <span className=\"agn-form-el__value-text\">{value != null && value !== '' ? value : <span className=\"agn-form-el__value-empty\">—</span>}</span>\n {onEdit && <button type=\"button\" className=\"agn-form-el__edit\" aria-label={L.edit + (typeof label === 'string' ? ': ' + label : '')} title={L.edit} onClick={onEdit}><Icon name=\"pencil\" size={14} /></button>}\n </div>\n ) : control}\n {error && <div className=\"agn-form-el__error\" id={errorId} role=\"alert\"><Icon name=\"circle-alert\" size={14} />{error}</div>}\n {help && !error && !(inline && label) && <div className=\"agn-form-el__help\" id={helpId}>{help}</div>}\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Single-line text field. Leading icon, trailing action, prefix/suffix text; invalid state; sizes. Wrap in FormElement for label, help and error.\nexport const Input = React.forwardRef(function Input({ icon, iconRight, prefix, suffix, action, onClear, invalid, size = 'md', bare, className, style, disabled, readOnly, type = 'text', wrapperProps, labels, ...rest }, ref) {\n const L = { clear: 'Clear', ...labels };\n // wrapperProps merge with the field's own classes and style instead of replacing them\n const { className: wClass, style: wStyle, ...wRest } = wrapperProps || {};\n const clearable = onClear && rest.value != null && rest.value !== '' && !disabled && !readOnly;\n return (\n <div className={cx('agn-field', size !== 'md' && 'agn-field--' + size, invalid && 'agn-field--invalid', disabled && 'agn-field--disabled', readOnly && 'agn-field--readonly', bare && 'agn-field--bare', className, wClass)} style={wStyle ? { ...style, ...wStyle } : style} {...wRest}>\n {icon && <Icon name={icon} size={size === 'lg' ? 18 : 16} className=\"agn-field__icon\" />}\n {prefix != null && <span className=\"agn-field__affix\">{prefix}</span>}\n <input ref={ref} type={type} className=\"agn-field__input\" disabled={disabled} readOnly={readOnly} aria-invalid={invalid || undefined} {...rest} />\n {suffix != null && <span className=\"agn-field__affix\">{suffix}</span>}\n {clearable && <button type=\"button\" className=\"agn-field__action\" aria-label={L.clear} onClick={onClear} tabIndex={-1}><Icon name=\"x\" size={14} /></button>}\n {iconRight && !clearable && <Icon name={iconRight} size={16} className=\"agn-field__icon\" />}\n {action && <button type=\"button\" className=\"agn-field__action\" aria-label={action.label} title={action.label} onClick={action.onClick} disabled={disabled}><Icon name={action.icon} size={14} /></button>}\n </div>\n );\n});\n","import React from 'react';\nimport { cx } from '../core/style.js';\n// Multi-line text field. autoGrow follows the content; maxLength shows a counter that turns bad when exceeded.\nconst DEFAULT_LABELS = { counter: '{n} / {max}' };\nexport const Textarea = React.forwardRef(function Textarea({ invalid, size = 'md', autoGrow, maxLength, rows = 3, labels, className, style, disabled, readOnly, onChange, ...rest }, ref) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const inner = React.useRef(null);\n const setRef = (el) => { inner.current = el; if (typeof ref === 'function') ref(el); else if (ref) ref.current = el; };\n const grow = () => { const el = inner.current; if (!el || !autoGrow) return; el.style.height = 'auto'; el.style.height = el.scrollHeight + 'px'; };\n // biome-ignore lint/correctness/useExhaustiveDependencies: value and autoGrow are the re-measure triggers; grow reads the textarea from its ref\n React.useEffect(grow, [rest.value, autoGrow]);\n const len = rest.value != null ? String(rest.value).length : (rest.defaultValue != null ? String(rest.defaultValue).length : 0);\n const [uncontrolledLen, setLen] = React.useState(len);\n const count = rest.value != null ? len : uncontrolledLen;\n const over = maxLength != null && count > maxLength;\n return (\n <div className={cx('agn-field', 'agn-field--area', size !== 'md' && 'agn-field--' + size, (invalid || over) && 'agn-field--invalid', disabled && 'agn-field--disabled', readOnly && 'agn-field--readonly', className)} style={style}>\n <textarea ref={setRef} className=\"agn-field__input agn-field__textarea\" rows={rows} disabled={disabled} readOnly={readOnly} aria-invalid={invalid || over || undefined} onChange={(e) => { setLen(e.target.value.length); onChange && onChange(e); grow(); }} {...rest} />\n {maxLength != null && <div className={cx('agn-field__counter', 'agn-num', over && 'agn-field__counter--over')} aria-live=\"polite\">{L.counter.replace('{n}', count).replace('{max}', maxLength)}</div>}\n </div>\n );\n});\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Native select styled like Input; the chevron is drawn in CSS. For search, meta or multi-select use Combobox.\nexport const Select = React.forwardRef(function Select({ options = [], placeholder, icon, invalid, size = 'md', className, style, disabled, children, ...rest }, ref) {\n return (\n <div className={cx('agn-field', 'agn-select', size !== 'md' && 'agn-field--' + size, invalid && 'agn-field--invalid', disabled && 'agn-field--disabled', className)} style={style}>\n {icon && <Icon name={icon} size={16} className=\"agn-field__icon\" />}\n <select ref={ref} className=\"agn-field__input agn-select__native\" disabled={disabled} aria-invalid={invalid || undefined} {...rest}>\n {placeholder != null && <option value=\"\" disabled={rest.required} hidden={rest.required}>{placeholder}</option>}\n {options.map((o) => { const opt = typeof o === 'string' ? { label: o, value: o } : o; return opt.options ? <optgroup key={opt.label} label={opt.label}>{opt.options.map((s) => { const so = typeof s === 'string' ? { label: s, value: s } : s; return <option key={so.value} value={so.value} disabled={so.disabled}>{so.label}</option>; })}</optgroup> : <option key={opt.value} value={opt.value} disabled={opt.disabled}>{opt.label}</option>; })}\n {children}\n </select>\n <span className=\"agn-select__chevron\" aria-hidden=\"true\" />\n </div>\n );\n});\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\n// Checkbox with label and description; indeterminate for a \"select all\" that covers part of the set.\nexport const Checkbox = React.forwardRef(function Checkbox({ label, description, checked, indeterminate, invalid, onChange, size = 'md', className, id: idProp, disabled, ...rest }, ref) {\n const inner = React.useRef(null);\n const id = React.useMemo(() => idProp || uid('cb'), [idProp]);\n const setRef = (el) => { inner.current = el; if (typeof ref === 'function') ref(el); else if (ref) ref.current = el; };\n React.useEffect(() => { if (inner.current) inner.current.indeterminate = !!indeterminate; }, [indeterminate]);\n return (\n <label className={cx('agn-check', size === 'sm' && 'agn-check--sm', invalid && 'agn-check--invalid', disabled && 'agn-check--disabled', !label && 'agn-check--bare', className)} htmlFor={id}>\n <input ref={setRef} id={id} type=\"checkbox\" className=\"agn-check__input\" checked={checked} disabled={disabled} aria-checked={indeterminate ? 'mixed' : undefined} aria-invalid={invalid || undefined} onChange={(e) => onChange && onChange(e.target.checked, e)} {...rest} />\n <span className=\"agn-check__box\" aria-hidden=\"true\" />\n {label && <span className=\"agn-check__text\"><span className=\"agn-check__label\">{label}</span>{description && <span className=\"agn-check__desc\">{description}</span>}</span>}\n </label>\n );\n});\n// A titled set of checkboxes; inline lays them in a row.\nexport function CheckboxGroup({ label, inline, invalid, error, help, children, className, ...rest }) {\n return (\n <fieldset className={cx('agn-check-group', inline && 'agn-check-group--inline', invalid && 'agn-check-group--invalid', className)} {...rest}>\n {label && <legend className=\"agn-check-group__legend\">{label}</legend>}\n <div className=\"agn-check-group__items\">{children}</div>\n {error && <div className=\"agn-form-el__error\" role=\"alert\">{error}</div>}\n {help && !error && <div className=\"agn-form-el__help\">{help}</div>}\n </fieldset>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\n// Switch for a setting that applies immediately (no save step). Label left or right; optional on/off word.\nconst DEFAULT_LABELS = { on: 'On', off: 'Off' };\nexport const Switch = React.forwardRef(function Switch({ label, description, checked, onChange, labelPosition = 'right', showState, size = 'md', labels, className, id: idProp, disabled, ...rest }, ref) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const id = React.useMemo(() => idProp || uid('sw'), [idProp]);\n const text = (label || description) && <span className=\"agn-switch__text\"><span className=\"agn-switch__label\">{label}</span>{description && <span className=\"agn-switch__desc\">{description}</span>}</span>;\n return (\n <label className={cx('agn-switch', size === 'sm' && 'agn-switch--sm', labelPosition === 'left' && 'agn-switch--label-left', disabled && 'agn-switch--disabled', className)} htmlFor={id}>\n {labelPosition === 'left' && text}\n <input ref={ref} id={id} type=\"checkbox\" role=\"switch\" className=\"agn-switch__input\" checked={checked} disabled={disabled} aria-checked={checked} onChange={(e) => onChange && onChange(e.target.checked, e)} {...rest} />\n <span className=\"agn-switch__track\" aria-hidden=\"true\"><span className=\"agn-switch__knob\" /></span>\n {showState && <span className=\"agn-switch__state\" aria-hidden=\"true\">{checked ? L.on : L.off}</span>}\n {labelPosition !== 'left' && text}\n </label>\n );\n});\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Icon-only checkbox rendered as a pressed button (add to list, star, watch). label is the accessible name.\nexport function CheckboxButton({ checked = false, onChange, icon = 'plus', iconChecked = 'check', label, size = 'md', className, disabled, ...rest }) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: icon toggle drawn as a button: role=checkbox on a <button> keeps native focus and Space/Enter, which a styled <input type=checkbox> could not show this way\n <button type=\"button\" role=\"checkbox\" aria-checked={checked} aria-label={label} title={label} disabled={disabled} className={cx('agn-btn', 'agn-btn--icon', 'agn-btn--neutral', size !== 'md' && 'agn-btn--' + size, 'agn-check-btn', checked && 'agn-check-btn--on', className)} onClick={() => onChange && onChange(!checked)} {...rest}>\n <Icon name={checked ? iconChecked : icon} size={size === 'sm' || size === 'xs' ? 14 : 16} />\n </button>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Single choice. list renders stacked radios with optional descriptions; button renders the joined segmented radio button group.\nexport function RadioGroup({ name: nameProp, options = [], value, onChange, inline, variant = 'list', size = 'md', disabled, label, invalid, className, ...rest }) {\n const name = React.useMemo(() => nameProp || uid('radio'), [nameProp]);\n const norm = options.map((o) => typeof o === 'string' ? { label: o, value: o } : o);\n return (\n <div className={cx('agn-radio-group', 'agn-radio-group--' + variant, inline && 'agn-radio-group--inline', size === 'sm' && 'agn-radio-group--sm', invalid && 'agn-radio-group--invalid', className)} role=\"radiogroup\" aria-label={label} {...rest}>\n {norm.map((o) => {\n const id = name + '-' + o.value; const on = value === o.value; const dis = disabled || o.disabled;\n return (\n <label key={o.value} htmlFor={id} className={cx(variant === 'button' ? 'agn-radio-btn' : 'agn-radio', on && (variant === 'button' ? 'agn-radio-btn--on' : 'agn-radio--on'), dis && (variant === 'button' ? 'agn-radio-btn--disabled' : 'agn-radio--disabled'))}>\n <input id={id} type=\"radio\" name={name} value={o.value} checked={on} disabled={dis} className={variant === 'button' ? 'agn-sr agn-radio-btn__input' : 'agn-radio__input'} onChange={() => onChange && onChange(o.value)} />\n {variant === 'button' ? <>{o.icon && <Icon name={o.icon} size={14} />}<span>{o.label}</span></> : <><span className=\"agn-radio__dot\" aria-hidden=\"true\" /><span className=\"agn-radio__text\"><span className=\"agn-radio__label\">{o.label}</span>{o.description && <span className=\"agn-radio__desc\">{o.description}</span>}</span></>}\n </label>);\n })}\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\nimport { Pill, PillContainer } from '../actions/Pill.jsx';\n// Searchable single/multi select with option meta and a leading icon, avatar or product glyph.\n// mode \"picklist\" is a closed list (no typing), \"lookup\" is a search over records. Keyboard: arrows, Home/End, Enter, Esc, Backspace removes the last pill.\nconst DEFAULT_LABELS = { empty: 'No matches', clear: 'Clear', remove: 'Remove', placeholder: 'Select…', search: 'Search…' };\nconst initials = (s) => String(s).split(/\\s+/).map((w) => w[0]).filter(Boolean).slice(0, 2).join('').toLocaleUpperCase();\nexport function Combobox({ options = [], value, onChange, multiple, mode = 'picklist', searchable, placeholder, disabled, invalid, size = 'md', icon, open: openProp, onOpenChange, inlinePills = true, renderOption, labels, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const canType = searchable != null ? searchable : mode === 'lookup';\n const [openState, setOpenState] = React.useState(false);\n const open = openProp != null ? openProp : openState;\n const setOpen = (v) => { if (openProp == null) setOpenState(v); onOpenChange && onOpenChange(v); };\n const setOpenRef = React.useRef(setOpen); setOpenRef.current = setOpen;\n const [q, setQ] = React.useState('');\n const [active, setActive] = React.useState(0);\n const ref = React.useRef(null); const inputRef = React.useRef(null); const listRef = React.useRef(null);\n const id = React.useMemo(() => uid('combo'), []);\n const norm = options.map((o) => typeof o === 'string' ? { label: o, value: o } : o);\n const selected = multiple ? (Array.isArray(value) ? value : []) : (value != null && value !== '' ? [value] : []);\n const byValue = (v) => norm.find((o) => o.value === v) || { label: String(v), value: v };\n const filtered = norm.filter((o) => o.type === 'header' || !q || (o.label + ' ' + (o.meta || '')).toLocaleLowerCase().includes(q.toLocaleLowerCase()));\n const selectable = filtered.filter((o) => o.type !== 'header' && !o.disabled);\n React.useEffect(() => { const h = (e) => { if (ref.current && !ref.current.contains(e.target)) { setOpenRef.current(false); setQ(''); } }; document.addEventListener('mousedown', h); return () => document.removeEventListener('mousedown', h); }, []);\n // biome-ignore lint/correctness/useExhaustiveDependencies: active and open are the triggers: the effect scrolls the active option into view\n React.useEffect(() => { if (!open) return; const el = listRef.current && (listRef.current.querySelector('.agn-combo__opt--active') || listRef.current.querySelector('[aria-selected=\"true\"]')); el && el.scrollIntoView && el.scrollIntoView({ block: 'nearest' }); }, [active, open]);\n const pick = (o) => { if (!o || o.disabled || o.type === 'header') return; if (multiple) { onChange && onChange(selected.includes(o.value) ? selected.filter((v) => v !== o.value) : [...selected, o.value]); setQ(''); inputRef.current && inputRef.current.focus(); } else { onChange && onChange(o.value); setOpen(false); setQ(''); } };\n const current = !multiple && selected.length ? byValue(selected[0]) : null;\n const display = open && canType ? q : (current ? current.label : (multiple && !canType ? '' : q));\n const onKeyDown = (e) => {\n if (disabled) return;\n if (e.key === 'ArrowDown') { e.preventDefault(); if (!open) setOpen(true); else setActive((a) => Math.min(a + 1, selectable.length - 1)); }\n else if (e.key === 'ArrowUp') { e.preventDefault(); setActive((a) => Math.max(a - 1, 0)); }\n else if (e.key === 'Home' && open) { e.preventDefault(); setActive(0); }\n else if (e.key === 'End' && open) { e.preventDefault(); setActive(selectable.length - 1); }\n else if (e.key === 'Enter') { if (open) { e.preventDefault(); pick(selectable[active]); } else { setOpen(true); } }\n else if (e.key === 'Escape') { if (open) { e.preventDefault(); setOpen(false); setQ(''); } }\n else if (e.key === 'Backspace' && multiple && !q && selected.length) { onChange && onChange(selected.slice(0, -1)); }\n else if (e.key === ' ' && !canType) { e.preventDefault(); setOpen(!open); }\n else if (!canType && e.key.length === 1) { const hit = selectable.findIndex((o) => o.label.toLocaleLowerCase().startsWith(e.key.toLocaleLowerCase())); if (hit >= 0) { setActive(hit); if (!open) pick(selectable[hit]); } }\n };\n const lead = (o, sz) => o.product ? <ProductIcon product={o.product} size={sz} className=\"agn-combo__lead\" /> : o.avatar ? (/^(https?:|data:|\\/)/.test(o.avatar) ? <img className=\"agn-combo__avatar\" src={o.avatar} alt=\"\" /> : <span className=\"agn-combo__avatar agn-combo__avatar--initials\" aria-hidden=\"true\">{o.avatar.length <= 2 ? o.avatar : initials(o.avatar)}</span>) : o.icon ? <Icon name={o.icon} size={sz} className=\"agn-combo__lead\" /> : null;\n let si = -1;\n // aria-* and id name the input (the combobox), everything else lands on the wrapper\n const inputRest = {}, wrapRest = {};\n Object.keys(rest).forEach((k) => { if (k === 'id' || k.startsWith('aria-')) inputRest[k] = rest[k]; else wrapRest[k] = rest[k]; });\n return (\n <div className={cx('agn-combo', multiple && 'agn-combo--multiple', className)} style={style} ref={ref} {...wrapRest}>\n <div className=\"agn-combo__anchor\">\n {/* biome-ignore lint/a11y/noStaticElementInteractions: the click widens the hit area to the whole field; the combobox input inside is the keyboard target */}\n {/* biome-ignore lint/a11y/useKeyWithClickEvents: the click widens the hit area to the whole field; the combobox input inside is the keyboard target */}\n <div className={cx('agn-field', size !== 'md' && 'agn-field--' + size, invalid && 'agn-field--invalid', disabled && 'agn-field--disabled', !canType && 'agn-field--picklist')} onClick={() => { if (disabled) return; setOpen(!open || canType); inputRef.current && inputRef.current.focus(); }}>\n {icon ? <Icon name={icon} size={16} className=\"agn-field__icon\" /> : (current && lead(current, 16)) || (mode === 'lookup' && <Icon name=\"search\" size={16} className=\"agn-field__icon\" />)}\n <input ref={inputRef} className={cx('agn-field__input', !canType && 'agn-combo__input--closed')} value={display} readOnly={!canType} disabled={disabled} placeholder={multiple && selected.length && inlinePills ? '' : (placeholder || (mode === 'lookup' ? L.search : L.placeholder))}\n role=\"combobox\" aria-expanded={open} aria-controls={id} aria-haspopup=\"listbox\" aria-autocomplete={canType ? 'list' : undefined} aria-activedescendant={open && selectable[active] ? id + '-' + active : undefined} aria-invalid={invalid || undefined} autoComplete=\"off\" {...inputRest}\n onChange={(e) => { setQ(e.target.value); setOpen(true); setActive(0); }} onKeyDown={onKeyDown} onFocus={() => canType && setOpen(true)} />\n {!multiple && current && !disabled ? <button type=\"button\" className=\"agn-field__action\" aria-label={L.clear} tabIndex={-1} onMouseDown={(e) => e.preventDefault()} onClick={(e) => { e.stopPropagation(); onChange && onChange(null); setQ(''); }}><Icon name=\"x\" size={14} /></button>\n : <Icon name=\"chevron-down\" size={16} className={cx('agn-field__icon', 'agn-combo__chevron', open && 'agn-combo__chevron--open')} />}\n </div>\n {open && !disabled && (\n // biome-ignore lint/a11y/useSemanticElements: custom listbox with rich option content (icons, meta, check); a native <select> cannot render it\n <div className=\"agn-combo__list\" id={id} role=\"listbox\" aria-multiselectable={multiple || undefined} ref={listRef}>\n {selectable.length === 0 && filtered.every((o) => o.type === 'header') && <div className=\"agn-combo__empty\">{L.empty}</div>}\n {filtered.map((o, i) => { if (o.type === 'header') return <div key={'h' + i} className=\"agn-combo__header\">{o.label}</div>; if (!o.disabled) si++; const idx = si; const on = selected.includes(o.value); return (\n // biome-ignore lint/a11y/useSemanticElements: focus stays on the combobox input (aria-activedescendant): arrows and Enter select, the click is the pointer path\n // biome-ignore lint/a11y/useKeyWithClickEvents: focus stays on the combobox input (aria-activedescendant): arrows and Enter select, the click is the pointer path\n // biome-ignore lint/a11y/useFocusableInteractive: focus stays on the combobox input (aria-activedescendant): arrows and Enter select, the click is the pointer path\n <div key={o.value} id={!o.disabled ? id + '-' + idx : undefined} role=\"option\" aria-selected={on} aria-disabled={o.disabled || undefined} className={cx('agn-combo__opt', on && 'agn-combo__opt--selected', o.disabled && 'agn-combo__opt--disabled', !o.disabled && idx === active && 'agn-combo__opt--active')} onMouseEnter={() => !o.disabled && setActive(idx)} onMouseDown={(e) => e.preventDefault()} onClick={() => pick(o)}>\n {multiple && <span className={cx('agn-combo__tick', on && 'agn-combo__tick--on')} aria-hidden=\"true\">{on && <Icon name=\"check\" size={12} />}</span>}\n {lead(o, 16)}\n {renderOption ? renderOption(o) : <span className=\"agn-combo__text\"><span className=\"agn-combo__label\">{o.label}</span>{o.meta && <span className=\"agn-combo__meta\">{o.meta}</span>}</span>}\n {!multiple && on && <Icon name=\"check\" size={14} className=\"agn-combo__check\" />}\n </div>); })}\n </div>)}\n </div>\n {multiple && inlinePills && selected.length > 0 && <PillContainer bare className=\"agn-combo__pills\">{selected.map((v) => { const o = byValue(v); return <Pill key={v} label={o.label} icon={o.icon} avatar={o.avatar} labels={{ remove: L.remove }} onRemove={disabled ? undefined : () => pick(o)} />; })}</PillContainer>}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Compact single-select for views, periods and modes (List · Board · Timeline): 26px items in a 32px track. Radio semantics with arrow keys.\nexport function SegmentedControl({ options = [], value, onChange, size = 'md', stretch, label, className, ...rest }) {\n const norm = options.map((o) => typeof o === 'string' ? { label: o, value: o } : o);\n const move = (dir) => { const enabled = norm.filter((o) => !o.disabled); const i = enabled.findIndex((o) => o.value === value); const next = enabled[(i + dir + enabled.length) % enabled.length]; if (next && onChange) onChange(next.value); };\n return (\n <div className={cx('agn-seg', size === 'sm' && 'agn-seg--sm', stretch && 'agn-seg--stretch', className)} role=\"radiogroup\" aria-label={label} {...rest}>\n {norm.map((o) => { const on = o.value === value; return (\n // biome-ignore lint/a11y/useSemanticElements: segmented button: role=radio on a <button> with roving tabIndex and arrow keys; a native radio input cannot carry this layout\n <button key={o.value} type=\"button\" role=\"radio\" aria-checked={on} aria-label={o.iconOnly ? o.label : undefined} title={o.iconOnly ? o.label : undefined} disabled={o.disabled} tabIndex={on ? 0 : -1} className={cx('agn-seg__item', 'agn-focus-inset', on && 'agn-seg__item--on')} onClick={() => onChange && onChange(o.value)}\n onKeyDown={(e) => { if (e.key === 'ArrowRight' || e.key === 'ArrowDown') { e.preventDefault(); move(1); } if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') { e.preventDefault(); move(-1); } if (e.key === 'Home') { e.preventDefault(); onChange && onChange(norm[0].value); } if (e.key === 'End') { e.preventDefault(); onChange && onChange(norm[norm.length - 1].value); } }}>\n {o.icon && <Icon name={o.icon} size={14} />}{!o.iconOnly && <span>{o.label}</span>}\n </button>); })}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Masked value (API key, token) in mono with reveal and copy. Read-only unless onChange is given.\nconst DEFAULT_LABELS = { reveal: 'Reveal', hide: 'Hide', copy: 'Copy', copied: 'Copied' };\nexport function SecretField({ value = '', onChange, revealLast = 4, size = 'md', invalid, disabled, placeholder, labels, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [shown, setShown] = React.useState(false);\n const [copied, setCopied] = React.useState(false);\n const masked = value ? '•'.repeat(Math.max(8, Math.min(24, value.length - revealLast))) + (revealLast ? value.slice(-revealLast) : '') : '';\n const copy = async () => { try { await navigator.clipboard.writeText(value); setCopied(true); setTimeout(() => setCopied(false), 1500); } catch { /* clipboard blocked */ } };\n return (\n <div className={cx('agn-field', 'agn-secret', size !== 'md' && 'agn-field--' + size, invalid && 'agn-field--invalid', disabled && 'agn-field--disabled', !onChange && 'agn-field--readonly', className)} style={style}>\n <Icon name=\"key-round\" size={16} className=\"agn-field__icon\" />\n <input className=\"agn-field__input agn-secret__input agn-mono\" type={shown || !onChange ? 'text' : 'password'} value={shown || !value ? value : masked} readOnly={!onChange || !shown} disabled={disabled} placeholder={placeholder} spellCheck={false} autoComplete=\"off\" onChange={(e) => onChange && onChange(e.target.value)} {...rest} />\n <button type=\"button\" className=\"agn-field__action\" aria-label={shown ? L.hide : L.reveal} title={shown ? L.hide : L.reveal} aria-pressed={shown} disabled={disabled || !value} onClick={() => setShown((s) => !s)}><Icon name={shown ? 'eye-off' : 'eye'} size={14} /></button>\n {/* biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here */}\n <button type=\"button\" className={cx('agn-field__action', copied && 'agn-field__action--ok')} aria-label={copied ? L.copied : L.copy} title={copied ? L.copied : L.copy} disabled={disabled || !value} onClick={copy}><Icon name={copied ? 'check' : 'copy'} size={14} />{copied && <span className=\"agn-sr\" role=\"status\">{L.copied}</span>}</button>\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Pill, PillContainer } from '../actions/Pill.jsx';\n// Free-text tokens: Enter or comma adds, Backspace removes the last, paste splits on commas and newlines. validate marks a pill invalid.\nconst DEFAULT_LABELS = { remove: 'Remove', placeholder: 'Add and press Enter' };\nexport function TagInput({ value = [], onChange, validate, max, placeholder, disabled, invalid, separators = /[,\\n;]/, labels, className, style, inputProps, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [draft, setDraft] = React.useState('');\n const inputRef = React.useRef(null);\n const add = (raw) => { const parts = String(raw).split(separators).map((s) => s.trim()).filter(Boolean); if (!parts.length) return; let next = [...value]; parts.forEach((p) => { if (!next.includes(p) && (max == null || next.length < max)) next.push(p); }); onChange && onChange(next); setDraft(''); };\n const remove = (i) => { onChange && onChange(value.filter((_, j) => j !== i)); };\n const full = max != null && value.length >= max;\n return (\n <PillContainer className={cx('agn-tag-input', disabled && 'agn-field--disabled', invalid && 'agn-tag-input--invalid', className)} style={style} onClick={() => inputRef.current && inputRef.current.focus()} {...rest}>\n {value.map((v, i) => <Pill key={v + i} label={v} invalid={validate ? !validate(v) : false} labels={{ remove: L.remove }} onRemove={disabled ? undefined : () => remove(i)} />)}\n {!full && <input ref={inputRef} className=\"agn-tag-input__input\" value={draft} placeholder={value.length ? '' : (placeholder || L.placeholder)} disabled={disabled} aria-invalid={invalid || undefined}\n onChange={(e) => { if (separators.test(e.target.value)) add(e.target.value); else setDraft(e.target.value); }}\n onKeyDown={(e) => { if (e.key === 'Enter' && draft.trim()) { e.preventDefault(); add(draft); } else if (e.key === 'Backspace' && !draft && value.length) { e.preventDefault(); remove(value.length - 1); } }}\n onPaste={(e) => { const t = e.clipboardData && e.clipboardData.getData('text'); if (t && separators.test(t)) { e.preventDefault(); add(t); } }}\n onBlur={() => { if (draft.trim()) add(draft); }} {...inputProps} />}\n </PillContainer>\n );\n}\n","// biome-ignore-all lint/a11y/useSemanticElements: Calendar is the APG date-picker grid laid out with CSS grid; div rows and column headers keep the 7-column template that table markup would fight\n// biome-ignore-all lint/a11y/useFocusableInteractive: the grid's rows and column headers are structure, not controls; the gridcell buttons carry the roving focus\nimport React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Date field with a calendar popover; Calendar is exported for inline and range use. fmtDate renders 15.10.2026 (tr) or 15 Oct 2026 (en).\nconst isTr = (l) => /^tr/i.test(l || '');\nexport const fmtDate = (d, locale = 'en') => { if (!d) return ''; const dt = d instanceof Date ? d : new Date(d); if (Number.isNaN(dt.getTime())) return ''; return isTr(locale) ? dt.toLocaleDateString('tr-TR', { day: '2-digit', month: '2-digit', year: 'numeric' }) : dt.toLocaleDateString('en-GB', { day: 'numeric', month: 'short', year: 'numeric' }); };\nconst same = (a, b) => !!(a && b) && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\nconst strip = (d) => d ? new Date(d.getFullYear(), d.getMonth(), d.getDate()) : null;\nconst DEFAULT_LABELS = { prev: 'Previous month', next: 'Next month', today: 'Today', clear: 'Clear', grid: 'Calendar' };\nexport function Calendar({ value, onChange, min, max, locale = 'en', weekStartsOn, month: monthProp, range, rangeStart, rangeEnd, onRangeChange, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const wk = weekStartsOn != null ? weekStartsOn : (isTr(locale) ? 1 : 1);\n const intl = isTr(locale) ? 'tr-TR' : 'en-GB';\n const [view, setView] = React.useState(() => strip(monthProp || value || rangeStart || new Date()));\n const [focusDay, setFocusDay] = React.useState(() => strip(value || rangeStart || new Date()));\n const [pending, setPending] = React.useState(null);\n const gridRef = React.useRef(null);\n // biome-ignore lint/correctness/useExhaustiveDependencies: keyed on the timestamp so a new Date with the same time does not reset the view\n React.useEffect(() => { if (value) { setView(strip(value)); setFocusDay(strip(value)); } }, [value && value.getTime()]);\n const y = view.getFullYear(), m = view.getMonth();\n const first = new Date(y, m, 1); const offset = (first.getDay() - wk + 7) % 7;\n const days = []; for (let i = -offset; i < 42 - offset; i++) days.push(new Date(y, m, 1 + i));\n const dows = Array.from({ length: 7 }, (_, i) => new Date(2024, 0, 7 + ((i + wk) % 7)).toLocaleDateString(intl, { weekday: 'short' }).slice(0, 2));\n const today = strip(new Date());\n const disabled = (d) => (min && d < strip(min)) || (max && d > strip(max));\n const rs = strip(pending || rangeStart), re = pending ? null : strip(rangeEnd);\n const inRange = (d) => rs && re && d > rs && d < re;\n const pick = (d) => { if (disabled(d)) return; setFocusDay(d); if (range) { if (!pending) { setPending(d); onRangeChange && onRangeChange({ start: d, end: null }); } else { const a = pending < d ? pending : d, b = pending < d ? d : pending; setPending(null); onRangeChange && onRangeChange({ start: a, end: b }); } } else onChange && onChange(d); };\n const moveFocus = (delta, unit) => { const d = new Date(focusDay); if (unit === 'month') d.setMonth(d.getMonth() + delta); else if (unit === 'year') d.setFullYear(d.getFullYear() + delta); else d.setDate(d.getDate() + delta); setFocusDay(d); if (d.getMonth() !== m || d.getFullYear() !== y) setView(new Date(d.getFullYear(), d.getMonth(), 1)); setTimeout(() => { const el = gridRef.current && gridRef.current.querySelector('[tabindex=\"0\"]'); el && el.focus(); }, 0); };\n const onKeyDown = (e) => {\n const map = { ArrowRight: [1], ArrowLeft: [-1], ArrowDown: [7], ArrowUp: [-7], PageDown: [e.shiftKey ? 1 : 1, e.shiftKey ? 'year' : 'month'], PageUp: [e.shiftKey ? -1 : -1, e.shiftKey ? 'year' : 'month'] };\n if (map[e.key]) { e.preventDefault(); moveFocus(map[e.key][0], map[e.key][1]); }\n else if (e.key === 'Home') { e.preventDefault(); const d = new Date(focusDay); d.setDate(d.getDate() - ((d.getDay() - wk + 7) % 7)); setFocusDay(d); }\n else if (e.key === 'End') { e.preventDefault(); const d = new Date(focusDay); d.setDate(d.getDate() + (6 - ((d.getDay() - wk + 7) % 7))); setFocusDay(d); }\n else if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); pick(focusDay); }\n };\n return (\n <div className={cx('agn-cal', className)} {...rest}>\n <div className=\"agn-cal__head\">\n <button type=\"button\" className=\"agn-cal__nav\" aria-label={L.prev} onClick={() => setView(new Date(y, m - 1, 1))}><Icon name=\"chevron-left\" size={16} /></button>\n <span className=\"agn-cal__title\" aria-live=\"polite\">{view.toLocaleDateString(intl, { month: 'long', year: 'numeric' })}</span>\n <button type=\"button\" className=\"agn-cal__nav\" aria-label={L.next} onClick={() => setView(new Date(y, m + 1, 1))}><Icon name=\"chevron-right\" size={16} /></button>\n </div>\n <div className=\"agn-cal__grid\" role=\"grid\" aria-label={L.grid} ref={gridRef} onKeyDown={onKeyDown}>\n <div className=\"agn-cal__row\" role=\"row\">{dows.map((d, i) => <div key={i} role=\"columnheader\" className=\"agn-cal__dow\">{d}</div>)}</div>\n {Array.from({ length: 6 }, (_, r) => (\n <div key={r} className=\"agn-cal__row\" role=\"row\">\n {days.slice(r * 7, r * 7 + 7).map((d, i) => { const sel = same(d, value) || same(d, rs) || same(d, re); return (\n <button key={i} type=\"button\" role=\"gridcell\" tabIndex={same(d, focusDay) ? 0 : -1} aria-selected={sel || undefined} aria-label={d.toLocaleDateString(intl, { day: 'numeric', month: 'long', year: 'numeric' })} disabled={disabled(d)}\n className={cx('agn-cal__day', 'agn-focus-inset', d.getMonth() !== m && 'agn-cal__day--out', same(d, today) && 'agn-cal__day--today', sel && 'agn-cal__day--sel', inRange(d) && 'agn-cal__day--range', same(d, rs) && re && 'agn-cal__day--range-start', same(d, re) && 'agn-cal__day--range-end')}\n onClick={() => pick(d)} onFocus={() => setFocusDay(d)}>{d.getDate()}</button>); })}\n </div>))}\n </div>\n <div className=\"agn-cal__foot\">\n <button type=\"button\" className=\"agn-btn agn-btn--link agn-cal__today\" onClick={() => { setView(today); setFocusDay(today); if (!range) onChange && onChange(today); }}>{L.today}</button>\n {(value || rangeStart) && (onChange || onRangeChange) && <button type=\"button\" className=\"agn-btn agn-btn--link agn-cal__clear\" onClick={() => { setPending(null); range ? onRangeChange && onRangeChange({ start: null, end: null }) : onChange && onChange(null); }}>{L.clear}</button>}\n </div>\n </div>\n );\n}\n// range: value is [from, to] and onChange receives [from, to] (to is null after the first click); the popover closes when both are set.\nexport function Datepicker({ value, onChange, range, placeholder, locale = 'en', disabled, invalid, size = 'md', min, max, weekStartsOn, open: openProp, onOpenChange, labels, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [openState, setOpenState] = React.useState(false);\n const open = openProp != null ? openProp : openState;\n const setOpen = (v) => { if (openProp == null) setOpenState(v); onOpenChange && onOpenChange(v); };\n const setOpenRef = React.useRef(setOpen); setOpenRef.current = setOpen;\n const ref = React.useRef(null);\n const id = React.useMemo(() => uid('dp'), []);\n React.useEffect(() => { const h = (e) => { if (ref.current && !ref.current.contains(e.target)) setOpenRef.current(false); }; document.addEventListener('mousedown', h); return () => document.removeEventListener('mousedown', h); }, []);\n const one = isTr(locale) ? 'GG.AA.YYYY' : 'DD MMM YYYY';\n const ph = placeholder || (range ? one + ' – ' + one : one);\n const [from, to] = range ? (Array.isArray(value) ? value : [null, null]) : [null, null];\n const hasValue = range ? !!(from || to) : !!value;\n const text = range ? (from ? fmtDate(from, locale) + ' – ' + (to ? fmtDate(to, locale) : '…') : '') : fmtDate(value, locale);\n return (\n <div className={cx('agn-dp', range && 'agn-dp--range', className)} style={style} ref={ref} {...rest}>\n {/* biome-ignore lint/a11y/noStaticElementInteractions: the click widens the hit area to the whole field; the combobox input inside is the keyboard target */}\n {/* biome-ignore lint/a11y/useKeyWithClickEvents: the click widens the hit area to the whole field; the combobox input inside is the keyboard target */}\n <div className={cx('agn-field', size !== 'md' && 'agn-field--' + size, invalid && 'agn-field--invalid', disabled && 'agn-field--disabled')} onClick={() => !disabled && setOpen(true)}>\n <Icon name=\"calendar\" size={16} className=\"agn-field__icon\" />\n <input className=\"agn-field__input agn-num\" value={text} placeholder={ph} readOnly disabled={disabled} role=\"combobox\" aria-invalid={invalid || undefined} aria-haspopup=\"dialog\" aria-expanded={open} aria-controls={open ? id : undefined} onFocus={() => setOpen(true)}\n onKeyDown={(e) => { if (e.key === 'Escape') { setOpen(false); } if (e.key === 'ArrowDown' || e.key === 'Enter' || e.key === ' ') { e.preventDefault(); setOpen(true); setTimeout(() => { const el = ref.current && ref.current.querySelector('.agn-cal__day[tabindex=\"0\"]'); el && el.focus(); }, 0); } }} />\n {hasValue && !disabled && <button type=\"button\" className=\"agn-field__action\" aria-label={L.clear} tabIndex={-1} onMouseDown={(e) => e.preventDefault()} onClick={(e) => { e.stopPropagation(); onChange && onChange(range ? [null, null] : null); }}><Icon name=\"x\" size={14} /></button>}\n </div>\n {open && !disabled && <div className=\"agn-dp__pop\" id={id} role=\"dialog\" aria-label={L.grid} onKeyDown={(e) => { if (e.key === 'Escape') { e.preventDefault(); setOpen(false); const inp = ref.current && ref.current.querySelector('input'); inp && inp.focus(); } }}>\n {range\n ? <Calendar range rangeStart={from} rangeEnd={to} month={from || undefined} onRangeChange={(r) => { onChange && onChange([r.start, r.end]); if (r.start && r.end) setOpen(false); }} min={min} max={max} locale={locale} weekStartsOn={weekStartsOn} labels={labels} />\n : <Calendar value={value} onChange={(d) => { onChange && onChange(d); setOpen(false); }} min={min} max={max} locale={locale} weekStartsOn={weekStartsOn} labels={labels} />}\n </div>}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Combobox } from '../forms/Combobox.jsx';\nimport { Datepicker } from './Datepicker.jsx';\n// 24h time on a Combobox: slots every step minutes (30 by default), typeable (\"14\" jumps to 14:00). DatetimePicker pairs it with a Datepicker.\nconst pad = (n) => String(n).padStart(2, '0');\nexport const timeSlots = (step = 30, min = '00:00', max = '23:59') => { const out = []; for (let t = 0; t < 24 * 60; t += step) { const v = pad(Math.floor(t / 60)) + ':' + pad(t % 60); if (v >= min && v <= max) out.push(v); } return out; };\nexport function Timepicker({ value, onChange, step = 30, min, max, placeholder = '--:--', disabled, invalid, size = 'md', open, labels, className, ...rest }) {\n const slots = React.useMemo(() => timeSlots(step, min, max), [step, min, max]);\n const options = React.useMemo(() => { const list = slots.slice(); if (value && !list.includes(value)) list.push(value); return list.sort().map((v) => ({ label: v, value: v })); }, [slots, value]);\n return <Combobox className={cx('agn-tp', className)} options={options} value={value || null} onChange={(v) => onChange && onChange(v)} mode=\"lookup\" icon=\"clock\" placeholder={placeholder} disabled={disabled} invalid={invalid} size={size} open={open} labels={{ empty: '—', ...labels }} {...rest} />;\n}\nexport function DatetimePicker({ date, time, onDateChange, onTimeChange, locale = 'en', step = 30, min, max, disabled, invalid, size = 'md', labels, className, style, ...rest }) {\n return (\n <div className={cx('agn-dtp', className)} style={style} {...rest}>\n <Datepicker className=\"agn-dtp__date\" value={date} onChange={onDateChange} locale={locale} disabled={disabled} invalid={invalid} size={size} min={min} max={max} labels={labels} />\n <Timepicker className=\"agn-dtp__time\" value={time} onChange={onTimeChange} step={step} disabled={disabled} invalid={invalid} size={size} labels={labels} />\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\n// Native range inputs under a filled track, with a value readout. range renders two thumbs over one track.\nexport function Slider({ value, onChange, min = 0, max = 100, step = 1, range, showValue = true, format, label, disabled, size = 'md', className, style, ...rest }) {\n const id = React.useMemo(() => uid('slider'), []);\n const fmt = format || ((v) => String(v));\n const pct = (v) => ((v - min) / (max - min)) * 100;\n if (range) {\n const [a, b] = Array.isArray(value) ? value : [min, max];\n const setA = (v) => onChange && onChange([Math.min(v, b), b]);\n const setB = (v) => onChange && onChange([a, Math.max(v, a)]);\n return (\n <div className={cx('agn-slider', 'agn-slider--range', size === 'sm' && 'agn-slider--sm', disabled && 'agn-slider--disabled', className)} style={{ '--agn-slider-a': pct(a) + '%', '--agn-slider-b': pct(b) + '%', ...style }} {...rest}>\n <div className=\"agn-slider__track\"><div className=\"agn-slider__fill\" /></div>\n <input type=\"range\" className=\"agn-slider__input\" aria-label={label ? label + ' (min)' : 'Minimum'} min={min} max={max} step={step} value={a} disabled={disabled} onChange={(e) => setA(Number(e.target.value))} />\n <input type=\"range\" className=\"agn-slider__input\" aria-label={label ? label + ' (max)' : 'Maximum'} min={min} max={max} step={step} value={b} disabled={disabled} onChange={(e) => setB(Number(e.target.value))} />\n {showValue && <output className=\"agn-slider__value agn-num\" htmlFor={id}>{fmt(a)} – {fmt(b)}</output>}\n </div>\n );\n }\n const v = value != null ? value : min;\n return (\n <div className={cx('agn-slider', size === 'sm' && 'agn-slider--sm', disabled && 'agn-slider--disabled', className)} style={{ '--agn-slider-a': '0%', '--agn-slider-b': pct(v) + '%', ...style }} {...rest}>\n <div className=\"agn-slider__track\"><div className=\"agn-slider__fill\" /></div>\n <input id={id} type=\"range\" className=\"agn-slider__input\" aria-label={label} min={min} max={max} step={step} value={v} disabled={disabled} onChange={(e) => onChange && onChange(Number(e.target.value))} />\n {showValue && <output className=\"agn-slider__value agn-num\" htmlFor={id}>{fmt(v)}</output>}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Hex field with a swatch, and a popover with the data palette (as token swatches) plus the native picker. Returns a resolved hex.\nexport const defaultSwatches = [\n ...[1, 2, 3, 4, 5, 6].map((i) => ({ value: 'var(--data-' + i + ')', label: 'Data ' + i })),\n ...['signal', 'ok', 'warn', 'bad'].flatMap((r) => [100, 300, 500, 700, 900, 950].map((s) => ({ value: 'var(--' + r + '-' + s + ')', label: r + ' ' + s }))),\n];\nconst toHex = (css, el) => { if (/^#[0-9a-f]{6}$/i.test(css)) return css.toLowerCase(); const probe = document.createElement('span'); probe.style.color = css; (el || document.body).appendChild(probe); const rgb = getComputedStyle(probe).color; probe.remove(); const m = rgb.match(/\\d+(\\.\\d+)?/g); if (!m) return css; return '#' + m.slice(0, 3).map((n) => Math.round(Number(n)).toString(16).padStart(2, '0')).join(''); };\nconst DEFAULT_LABELS = { open: 'Choose colour', custom: 'Custom…', swatches: 'Palette', hex: 'Hex value' };\nexport function ColorPicker({ value = '', onChange, swatches = defaultSwatches, disabled, invalid, size = 'md', open: openProp, onOpenChange, labels, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [openState, setOpenState] = React.useState(false);\n const open = openProp != null ? openProp : openState;\n const setOpen = (v) => { if (openProp == null) setOpenState(v); onOpenChange && onOpenChange(v); };\n const setOpenRef = React.useRef(setOpen); setOpenRef.current = setOpen;\n const [draft, setDraft] = React.useState(value);\n const ref = React.useRef(null); const nativeRef = React.useRef(null);\n React.useEffect(() => setDraft(value), [value]);\n React.useEffect(() => { const h = (e) => { if (ref.current && !ref.current.contains(e.target)) setOpenRef.current(false); }; document.addEventListener('mousedown', h); return () => document.removeEventListener('mousedown', h); }, []);\n const commit = (s) => { const v = s.trim().startsWith('#') ? s.trim() : '#' + s.trim(); if (/^#[0-9a-f]{6}$/i.test(v)) onChange && onChange(v.toLowerCase()); };\n const valid = /^#[0-9a-f]{6}$/i.test(value);\n const list = swatches.map((s) => typeof s === 'string' ? { value: s, label: s } : s);\n return (\n <div className={cx('agn-color', className)} style={style} ref={ref} {...rest}>\n <div className={cx('agn-field', size !== 'md' && 'agn-field--' + size, (invalid || (!valid && value)) && 'agn-field--invalid', disabled && 'agn-field--disabled')}>\n <button type=\"button\" className=\"agn-color__swatch\" style={{ background: valid ? value : 'transparent' }} aria-label={L.open} aria-haspopup=\"dialog\" aria-expanded={open} disabled={disabled} onClick={() => setOpen(!open)}>{!valid && <Icon name=\"pipette\" size={12} />}</button>\n <span className=\"agn-field__affix\">#</span>\n <input className=\"agn-field__input agn-mono\" value={draft.replace(/^#/, '')} maxLength={6} spellCheck={false} aria-label={L.hex} disabled={disabled} onChange={(e) => { setDraft(e.target.value); commit(e.target.value); }} onBlur={() => setDraft(value)} onKeyDown={(e) => { if (e.key === 'ArrowDown') setOpen(true); if (e.key === 'Escape') setOpen(false); }} />\n </div>\n {open && !disabled && (\n <div className=\"agn-color__pop\" role=\"dialog\" aria-label={L.swatches}>\n {/* biome-ignore lint/a11y/useSemanticElements: swatch grid listbox: options are colour cells, which a native <select> cannot draw */}\n <div className=\"agn-color__grid\" role=\"listbox\" aria-label={L.swatches}>\n {list.map((s) => { const hex = toHex(s.value, ref.current); const on = hex === value; return /* biome-ignore lint/a11y/useSemanticElements: a swatch cell is a button with role=option so it stays focusable and clickable; <option> cannot be drawn as a colour cell */ <button key={s.value} type=\"button\" role=\"option\" aria-selected={on} aria-label={s.label} title={s.label} className={cx('agn-color__cell', on && 'agn-color__cell--on')} style={{ background: s.value }} onClick={() => { onChange && onChange(hex); setOpen(false); }}>{on && <Icon name=\"check\" size={12} />}</button>; })}\n </div>\n <div className=\"agn-color__foot\">\n <button type=\"button\" className=\"agn-btn agn-btn--ghost agn-btn--sm\" onClick={() => nativeRef.current && nativeRef.current.click()}><Icon name=\"pipette\" size={14} />{L.custom}</button>\n <input ref={nativeRef} type=\"color\" className=\"agn-sr\" tabIndex={-1} value={valid ? value : '#000000'} onChange={(e) => onChange && onChange(e.target.value)} aria-label={L.custom} />\n </div>\n </div>)}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Numeric stepper: − value +. Arrow keys step, Shift steps ×10, typed values clamp on blur.\nconst DEFAULT_LABELS = { decrement: 'Decrease', increment: 'Increase' };\nexport function Counter({ value = 0, onChange, min = Number.NEGATIVE_INFINITY, max = Number.POSITIVE_INFINITY, step = 1, disabled, invalid, size = 'md', suffix, format, labels, label, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [draft, setDraft] = React.useState(null);\n const clamp = (v) => Math.min(max, Math.max(min, v));\n const set = (v) => { if (disabled) return; const n = clamp(Math.round(v / step) * step); onChange && onChange(Number(n.toFixed(6))); };\n const shown = draft != null ? draft : (format ? format(value) : String(value));\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div className={cx('agn-field', 'agn-counter', size !== 'md' && 'agn-field--' + size, invalid && 'agn-field--invalid', disabled && 'agn-field--disabled', className)} style={style} role=\"group\" aria-label={label} {...rest}>\n <button type=\"button\" className=\"agn-counter__btn\" aria-label={L.decrement} disabled={disabled || value <= min} tabIndex={-1} onClick={() => set(value - step)}><Icon name=\"minus\" size={14} /></button>\n <input className=\"agn-field__input agn-counter__input agn-num\" role=\"spinbutton\" inputMode=\"decimal\" value={shown} disabled={disabled} aria-invalid={invalid || undefined} aria-valuemin={Number.isFinite(min) ? min : undefined} aria-valuemax={Number.isFinite(max) ? max : undefined} aria-valuenow={value} aria-valuetext={format ? format(value) : undefined} aria-label={label}\n onChange={(e) => setDraft(e.target.value)} onBlur={() => { if (draft != null) { const n = Number.parseFloat(draft.replace(',', '.')); if (!Number.isNaN(n)) set(n); setDraft(null); } }}\n onKeyDown={(e) => { const k = e.shiftKey ? step * 10 : step; if (e.key === 'ArrowUp') { e.preventDefault(); set(value + k); } if (e.key === 'ArrowDown') { e.preventDefault(); set(value - k); } if (e.key === 'Enter') e.currentTarget.blur(); }} />\n {suffix && <span className=\"agn-field__affix\">{suffix}</span>}\n <button type=\"button\" className=\"agn-counter__btn\" aria-label={L.increment} disabled={disabled || value >= max} tabIndex={-1} onClick={() => set(value + step)}><Icon name=\"plus\" size={14} /></button>\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\n// Two-list transfer for an ordered multi-selection (columns, fields, permissions). Keyboard: arrows move the highlight, Space toggles, Enter and →/← transfer, Alt+↑/↓ reorder.\nconst DEFAULT_LABELS = { available: 'Available', selected: 'Selected', add: 'Add to selected', remove: 'Remove from selected', up: 'Move up', down: 'Move down', empty: 'Nothing here', count: '{n} selected' };\nexport function DuelingPicklist({ options = [], value = [], onChange, labels, label, disabled, height = 200, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const norm = options.map((o) => typeof o === 'string' ? { label: o, value: o } : o);\n const byVal = (v) => norm.find((o) => o.value === v) || { label: String(v), value: v };\n const avail = norm.filter((o) => !value.includes(o.value));\n const sel = value.map(byVal);\n const [hl, setHl] = React.useState({ avail: [], sel: [] });\n const [focus, setFocus] = React.useState({ avail: 0, sel: 0 });\n const set = (next) => { onChange && onChange(next); };\n const add = (vals) => { const v = vals.length ? vals : hl.avail; if (!v.length) return; set([...value, ...v]); setHl({ ...hl, avail: [] }); };\n const remove = (vals) => { const v = vals.length ? vals : hl.sel; if (!v.length) return; set(value.filter((x) => !v.includes(x))); setHl({ ...hl, sel: [] }); };\n const move = (dir) => { if (!hl.sel.length) return; const next = value.slice(); const idx = next.map((v, i) => hl.sel.includes(v) ? i : -1).filter((i) => i >= 0); if (dir < 0 && idx[0] === 0) return; if (dir > 0 && idx[idx.length - 1] === next.length - 1) return; (dir < 0 ? idx : idx.slice().reverse()).forEach((i) => { const t = next[i]; next[i] = next[i + dir]; next[i + dir] = t; }); set(next); };\n const List = ({ k, items, title, onEnter }) => {\n const ids = items.map((o) => o.value);\n const toggle = (v, e) => { const cur = hl[k]; const next = e && (e.metaKey || e.ctrlKey) ? (cur.includes(v) ? cur.filter((x) => x !== v) : [...cur, v]) : e && e.shiftKey && cur.length ? (() => { const a = ids.indexOf(cur[cur.length - 1]), b = ids.indexOf(v); return ids.slice(Math.min(a, b), Math.max(a, b) + 1); })() : [v]; setHl({ ...hl, [k]: next }); setFocus({ ...focus, [k]: ids.indexOf(v) }); };\n const onKeyDown = (e) => {\n const i = focus[k]; let n = i;\n if (e.key === 'ArrowDown') { e.preventDefault(); n = Math.min(i + 1, ids.length - 1); if (e.altKey && k === 'sel') { move(1); return; } }\n else if (e.key === 'ArrowUp') { e.preventDefault(); n = Math.max(i - 1, 0); if (e.altKey && k === 'sel') { move(-1); return; } }\n else if (e.key === 'Home') { e.preventDefault(); n = 0; } else if (e.key === 'End') { e.preventDefault(); n = ids.length - 1; }\n else if (e.key === ' ') { e.preventDefault(); toggle(ids[i], { ctrlKey: true }); return; }\n else if (e.key === 'Enter' || (k === 'avail' && e.key === 'ArrowRight') || (k === 'sel' && e.key === 'ArrowLeft')) { e.preventDefault(); onEnter(); return; }\n else if (e.key === 'a' && (e.metaKey || e.ctrlKey)) { e.preventDefault(); setHl({ ...hl, [k]: ids }); return; }\n else return;\n setFocus({ ...focus, [k]: n }); if (!e.shiftKey) setHl({ ...hl, [k]: ids[n] != null ? [ids[n]] : [] }); else setHl({ ...hl, [k]: Array.from(new Set([...hl[k], ids[n]])) });\n setTimeout(() => { const el = e.currentTarget && e.currentTarget.querySelector('[tabindex=\"0\"]'); el && el.focus(); }, 0);\n };\n return (\n <div className=\"agn-dpl__col\">\n <div className=\"agn-dpl__title\" id={'dpl-' + k}>{title}{k === 'sel' && <span className=\"agn-dpl__count agn-num\">{L.count.replace('{n}', items.length)}</span>}</div>\n {/* biome-ignore lint/a11y/useSemanticElements: custom listbox with rich option content (icons, meta, check); a native <select> cannot render it */}\n <div className=\"agn-dpl__list\" role=\"listbox\" aria-multiselectable=\"true\" aria-labelledby={'dpl-' + k} aria-disabled={disabled || undefined} style={{ height }} onKeyDown={disabled ? undefined : onKeyDown}>\n {items.length === 0 && <div className=\"agn-dpl__empty\">{L.empty}</div>}\n {items.map((o, i) => (\n // biome-ignore lint/a11y/useSemanticElements: custom listbox with rich option content (icons, meta, check); a native <select> cannot render it\n // biome-ignore lint/a11y/useKeyWithClickEvents: the listbox onKeyDown above handles arrows, Space (toggle) and Enter (transfer) for the focused option\n <div key={o.value} role=\"option\" aria-selected={hl[k].includes(o.value)} tabIndex={i === Math.min(focus[k], items.length - 1) ? 0 : -1} className={cx('agn-dpl__item', 'agn-focus-inset', hl[k].includes(o.value) && 'agn-dpl__item--on')} onClick={(e) => !disabled && toggle(o.value, e)} onDoubleClick={() => !disabled && (k === 'avail' ? add([o.value]) : remove([o.value]))}>{o.icon && <Icon name={o.icon} size={14} />}<span>{o.label}</span>{o.meta && <span className=\"agn-dpl__meta\">{o.meta}</span>}</div>\n ))}\n </div>\n </div>);\n };\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div className={cx('agn-dpl', disabled && 'agn-dpl--disabled', className)} role=\"group\" aria-label={label} {...rest}>\n <List k=\"avail\" items={avail} title={L.available} onEnter={() => add([])} />\n <div className=\"agn-dpl__moves\">\n <ButtonIcon icon=\"chevron-right\" label={L.add} variant=\"neutral\" size=\"sm\" disabled={disabled || !hl.avail.length} onClick={() => add([])} />\n <ButtonIcon icon=\"chevron-left\" label={L.remove} variant=\"neutral\" size=\"sm\" disabled={disabled || !hl.sel.length} onClick={() => remove([])} />\n </div>\n <List k=\"sel\" items={sel} title={L.selected} onEnter={() => remove([])} />\n <div className=\"agn-dpl__moves\">\n <ButtonIcon icon=\"chevron-up\" label={L.up} variant=\"neutral\" size=\"sm\" disabled={disabled || !hl.sel.length} onClick={() => move(-1)} />\n <ButtonIcon icon=\"chevron-down\" label={L.down} variant=\"neutral\" size=\"sm\" disabled={disabled || !hl.sel.length} onClick={() => move(1)} />\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button, ButtonIcon } from '../actions/Button.jsx';\n// Upload control: a drop zone (or a one-line row) over a hidden file input, with a list of chosen files. Enforces maxSize (10 MB) and maxFiles (5) and reports rejections.\nexport const fmtSize = (bytes, locale = 'en') => { if (bytes == null) return ''; const u = ['B', 'KB', 'MB', 'GB']; let i = 0, n = bytes; while (n >= 1024 && i < u.length - 1) { n /= 1024; i++; } return n.toLocaleString(/^tr/i.test(locale) ? 'tr-TR' : 'en-GB', { maximumFractionDigits: i === 0 ? 0 : 1 }) + ' ' + u[i]; };\nconst DEFAULT_LABELS = { drop: 'Drop files here or', browse: 'Browse', hint: 'Up to {files} files, {size} each', remove: 'Remove', tooLarge: '{name} is larger than {size}', tooMany: 'Only {files} files can be added', wrongType: '{name} is not an accepted type', uploading: 'Uploading…', done: 'Uploaded', failed: 'Failed' };\nexport function FileSelector({ onFiles, onReject, accept, multiple = true, maxSize = 10 * 1024 * 1024, maxFiles = 5, variant = 'dropzone', files = [], onRemove, disabled, invalid, locale = 'en', labels, label, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [over, setOver] = React.useState(false);\n const [errors, setErrors] = React.useState([]);\n const inputRef = React.useRef(null);\n const id = React.useMemo(() => uid('file'), []);\n const sizeText = fmtSize(maxSize, locale);\n const filesText = multiple ? maxFiles : 1;\n const take = (list) => {\n const arr = Array.from(list || []); const ok = [], bad = [];\n const room = multiple ? Math.max(0, maxFiles - files.length) : 1;\n arr.forEach((f, i) => { if (i >= room) bad.push(L.tooMany.replace('{files}', maxFiles)); else if (f.size > maxSize) bad.push(L.tooLarge.replace('{name}', f.name).replace('{size}', sizeText)); else if (accept && !accept.split(',').some((a) => { a = a.trim(); return a.startsWith('.') ? f.name.toLowerCase().endsWith(a.toLowerCase()) : a.endsWith('/*') ? f.type.startsWith(a.slice(0, -1)) : f.type === a; })) bad.push(L.wrongType.replace('{name}', f.name)); else ok.push(f); });\n const uniq = Array.from(new Set(bad)); setErrors(uniq); if (uniq.length && onReject) onReject(uniq);\n if (ok.length && onFiles) onFiles(ok);\n if (inputRef.current) inputRef.current.value = '';\n };\n const input = <input ref={inputRef} id={id} type=\"file\" className=\"agn-sr\" accept={accept} multiple={multiple} disabled={disabled} onChange={(e) => take(e.target.files)} />;\n const list = files.length > 0 && (\n <ul className=\"agn-file__list\">\n {files.map((f, i) => (\n <li key={f.id || f.name + i} className={cx('agn-file__item', f.status === 'failed' && 'agn-file__item--failed')}>\n <Icon name={f.status === 'failed' ? 'circle-alert' : f.status === 'done' ? 'circle-check' : 'file'} size={16} className={cx('agn-file__icon', f.status === 'done' && 'agn-file__icon--ok', f.status === 'failed' && 'agn-file__icon--bad')} />\n <span className=\"agn-file__name\">{f.name}</span>\n <span className=\"agn-file__meta agn-num\">{f.status === 'uploading' ? (f.progress != null ? f.progress + '%' : L.uploading) : f.status === 'failed' ? (f.error || L.failed) : fmtSize(f.size, locale)}</span>\n {f.status === 'uploading' && <span className=\"agn-file__bar\" aria-hidden=\"true\"><span style={{ width: (f.progress || 0) + '%' }} /></span>}\n {onRemove && <ButtonIcon icon=\"x\" label={L.remove + ': ' + f.name} size=\"xs\" onClick={() => onRemove(i, f)} disabled={disabled} />}\n </li>))}\n </ul>);\n const errs = errors.length > 0 && <div className=\"agn-file__errors\" role=\"alert\">{errors.map((e) => <div key={e} className=\"agn-form-el__error\"><Icon name=\"circle-alert\" size={14} />{e}</div>)}</div>;\n if (variant === 'row') {\n return (\n <div className={cx('agn-file', 'agn-file--row', disabled && 'agn-file--disabled', className)} {...rest}>\n <div className={cx('agn-field', invalid && 'agn-field--invalid', disabled && 'agn-field--disabled')}>\n <Icon name=\"paperclip\" size={16} className=\"agn-field__icon\" />\n <span className=\"agn-file__row-text\">{label || L.hint.replace('{files}', filesText).replace('{size}', sizeText)}</span>\n <Button as=\"label\" htmlFor={id} size=\"xs\" variant=\"neutral\" className=\"agn-file__browse\" disabled={disabled}>{L.browse}</Button>\n </div>\n {input}{list}{errs}\n </div>);\n }\n return (\n <div className={cx('agn-file', disabled && 'agn-file--disabled', className)} {...rest}>\n {/* biome-ignore lint/a11y/noStaticElementInteractions: drag-and-drop target only; the Browse label and file input inside are the keyboard path */}\n <div className={cx('agn-file__zone', over && 'agn-file__zone--over', invalid && 'agn-file__zone--invalid')} onDragOver={(e) => { e.preventDefault(); if (!disabled) setOver(true); }} onDragLeave={() => setOver(false)} onDrop={(e) => { e.preventDefault(); setOver(false); if (!disabled) take(e.dataTransfer.files); }}>\n <Icon name=\"upload\" size={20} className=\"agn-file__zone-icon\" />\n <div className=\"agn-file__zone-text\">{label || L.drop} <label htmlFor={id} className={cx('agn-btn', 'agn-btn--link', 'agn-file__browse')}>{L.browse}</label></div>\n <div className=\"agn-file__hint\">{L.hint.replace('{files}', filesText).replace('{size}', sizeText)}{accept && <span className=\"agn-file__accept\">{accept.split(',').map((a) => a.trim()).join(', ')}</span>}</div>\n {input}\n </div>\n {list}{errs}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { ButtonIcon } from '../actions/Button.jsx';\n// contentEditable editor with a small toolbar: bold, italic, bulleted list, link, inline code. Emits HTML.\nconst DEFAULT_LABELS = { bold: 'Bold', italic: 'Italic', list: 'Bulleted list', link: 'Link', code: 'Code', linkPrompt: 'Link address', toolbar: 'Formatting' };\nexport function RichTextEditor({ value = '', onChange, placeholder, disabled, invalid, minHeight = 120, labels, className, style, id, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const ref = React.useRef(null);\n const [state, setState] = React.useState({});\n React.useEffect(() => { if (ref.current && ref.current.innerHTML !== value) ref.current.innerHTML = value || ''; }, [value]);\n const emit = () => { onChange && ref.current && onChange(ref.current.innerHTML); refresh(); };\n const refresh = () => { try { setState({ bold: document.queryCommandState('bold'), italic: document.queryCommandState('italic'), list: document.queryCommandState('insertUnorderedList') }); } catch { /* not supported */ } };\n const exec = (cmd, arg) => { if (disabled) return; ref.current && ref.current.focus(); try { document.execCommand(cmd, false, arg); } catch { /* no-op */ } emit(); };\n const code = () => { const sel = window.getSelection(); if (!sel || !sel.rangeCount) return; const r = sel.getRangeAt(0); const parent = r.commonAncestorContainer.parentElement; if (parent && parent.tagName === 'CODE') { const t = document.createTextNode(parent.textContent); parent.replaceWith(t); } else { const c = document.createElement('code'); c.textContent = r.toString() || 'code'; r.deleteContents(); r.insertNode(c); } emit(); };\n const link = () => { const sel = window.getSelection(); const existing = sel && sel.anchorNode && sel.anchorNode.parentElement && sel.anchorNode.parentElement.closest('a'); const url = window.prompt(L.linkPrompt, existing ? existing.href : 'https://'); if (url == null) return; if (!url) { exec('unlink'); return; } exec('createLink', url); };\n const onKeyDown = (e) => { if ((e.metaKey || e.ctrlKey) && !e.shiftKey) { if (e.key === 'b') { e.preventDefault(); exec('bold'); } else if (e.key === 'i') { e.preventDefault(); exec('italic'); } else if (e.key === 'k') { e.preventDefault(); link(); } else if (e.key === 'e') { e.preventDefault(); code(); } } };\n return (\n <div className={cx('agn-rte', invalid && 'agn-rte--invalid', disabled && 'agn-rte--disabled', className)} style={style} {...rest}>\n <div className=\"agn-rte__toolbar\" role=\"toolbar\" aria-label={L.toolbar}>\n <ButtonIcon icon=\"bold\" label={L.bold} size=\"sm\" aria-pressed={!!state.bold} className={cx(state.bold && 'agn-btn--selected')} onMouseDown={(e) => e.preventDefault()} onClick={() => exec('bold')} disabled={disabled} />\n <ButtonIcon icon=\"italic\" label={L.italic} size=\"sm\" aria-pressed={!!state.italic} className={cx(state.italic && 'agn-btn--selected')} onMouseDown={(e) => e.preventDefault()} onClick={() => exec('italic')} disabled={disabled} />\n <span className=\"agn-rte__sep\" />\n <ButtonIcon icon=\"list\" label={L.list} size=\"sm\" aria-pressed={!!state.list} className={cx(state.list && 'agn-btn--selected')} onMouseDown={(e) => e.preventDefault()} onClick={() => exec('insertUnorderedList')} disabled={disabled} />\n <ButtonIcon icon=\"link\" label={L.link} size=\"sm\" onMouseDown={(e) => e.preventDefault()} onClick={link} disabled={disabled} />\n <ButtonIcon icon=\"code\" label={L.code} size=\"sm\" onMouseDown={(e) => e.preventDefault()} onClick={code} disabled={disabled} />\n </div>\n {/* biome-ignore lint/a11y/useFocusableInteractive: contentEditable makes the textbox focusable; the rule does not count contentEditable */}\n <div ref={ref} className=\"agn-rte__body\" contentEditable={!disabled} suppressContentEditableWarning role=\"textbox\" id={id} aria-label={ariaLabel} aria-labelledby={ariaLabelledby} aria-describedby={ariaDescribedby} aria-multiline=\"true\" aria-invalid={invalid || undefined} data-placeholder={placeholder} style={{ minHeight }} onInput={emit} onKeyUp={refresh} onMouseUp={refresh} onKeyDown={onKeyDown} />\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\n// Large selectable tiles with icon, title and description: template, plan, channel or product choice. Native radios/checkboxes underneath.\nexport function VisualPicker({ options = [], value, onChange, multiple, variant = 'tile', name: nameProp, size = 'md', label, columns, className, ...rest }) {\n const name = React.useMemo(() => nameProp || uid('vp'), [nameProp]);\n const sel = multiple ? (Array.isArray(value) ? value : []) : value;\n const isOn = (v) => multiple ? sel.includes(v) : sel === v;\n const toggle = (v) => { if (!onChange) return; if (multiple) onChange(isOn(v) ? sel.filter((x) => x !== v) : [...sel, v]); else onChange(v); };\n return (\n // biome-ignore lint/a11y/useAriaPropsSupportedByRole: the role is radiogroup or group (by multiple), both of which take aria-label; the rule cannot see the conditional role\n <div className={cx('agn-vp', 'agn-vp--' + variant, size === 'sm' && 'agn-vp--sm', className)} role={multiple ? 'group' : 'radiogroup'} aria-label={label} style={columns ? { gridTemplateColumns: 'repeat(' + columns + ', minmax(0, 1fr))' } : undefined} {...rest}>\n {options.map((o) => { const id = name + '-' + o.value; const on = isOn(o.value); return (\n <label key={o.value} htmlFor={id} className={cx('agn-vp__tile', on && 'agn-vp__tile--on', o.disabled && 'agn-vp__tile--disabled')}>\n <input id={id} type={multiple ? 'checkbox' : 'radio'} name={name} value={o.value} checked={on} disabled={o.disabled} className=\"agn-sr agn-vp__input\" onChange={() => toggle(o.value)} />\n <span className=\"agn-vp__mark\" aria-hidden=\"true\">{on && <Icon name=\"check\" size={12} />}</span>\n {(o.icon || o.product) && <span className=\"agn-vp__icon\">{o.product ? <ProductIcon product={o.product} size={size === 'sm' ? 20 : 24} /> : <Icon name={o.icon} size={size === 'sm' ? 20 : 24} />}</span>}\n <span className=\"agn-vp__text\">\n <span className=\"agn-vp__title\">{o.label}</span>\n {o.description && <span className=\"agn-vp__desc\">{o.description}</span>}\n {o.meta && <span className=\"agn-vp__meta\">{o.meta}</span>}\n </span>\n </label>); })}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Button, ButtonIcon } from '../actions/Button.jsx';\nimport { Select } from '../forms/Select.jsx';\nimport { Input } from '../forms/Input.jsx';\nimport { SegmentedControl } from '../forms/SegmentedControl.jsx';\n// Condition builder: numbered rows of field · operator · value, joined by AND or OR, with optional nested groups. Used for routing rules and QA checks.\nconst DEFAULT_OPS = [{ label: 'equals', value: 'eq' }, { label: 'does not equal', value: 'neq' }, { label: 'contains', value: 'contains' }, { label: 'is greater than', value: 'gt' }, { label: 'is less than', value: 'lt' }, { label: 'is empty', value: 'empty' }, { label: 'is not empty', value: 'notEmpty' }];\nconst DEFAULT_LABELS = { all: 'All conditions', any: 'Any condition', and: 'AND', or: 'OR', add: 'Add condition', addGroup: 'Add group', remove: 'Remove condition', removeGroup: 'Remove group', field: 'Field', operator: 'Operator', value: 'Value', fieldPlaceholder: 'Choose a field', valuePlaceholder: 'Value', logic: 'Match' };\nconst norm = (list) => list.map((o) => typeof o === 'string' ? { label: o, value: o } : o);\nconst NO_VALUE = ['empty', 'notEmpty'];\nfunction Rows({ rows, onChange, fields, operators, L, join, startIndex }) {\n const update = (i, patch) => onChange(rows.map((r, j) => j === i ? { ...r, ...patch } : r));\n const remove = (i) => onChange(rows.filter((_, j) => j !== i));\n const field = (r) => fields.find((f) => f.value === r.field);\n return rows.map((r, i) => (\n <React.Fragment key={i}>\n {i > 0 && <div className=\"agn-expr__joiner\" aria-hidden=\"true\"><span className=\"agn-expr__join\">{join}</span></div>}\n <div className=\"agn-expr__row\">\n <span className=\"agn-expr__num agn-num\">{startIndex + i}</span>\n <Select className=\"agn-expr__field\" aria-label={L.field} size=\"sm\" placeholder={L.fieldPlaceholder} value={r.field || ''} options={fields.map((f) => ({ label: f.label, value: f.value }))} onChange={(e) => update(i, { field: e.target.value })} />\n <Select className=\"agn-expr__op\" aria-label={L.operator} size=\"sm\" value={r.op || operators[0].value} options={(field(r) && field(r).operators) ? norm(field(r).operators) : operators} onChange={(e) => update(i, { op: e.target.value })} />\n {NO_VALUE.includes(r.op) ? <span className=\"agn-expr__novalue\" /> : field(r) && field(r).options ? <Select className=\"agn-expr__value\" aria-label={L.value} size=\"sm\" value={r.value || ''} placeholder={L.valuePlaceholder} options={norm(field(r).options)} onChange={(e) => update(i, { value: e.target.value })} /> : <Input className=\"agn-expr__value\" aria-label={L.value} size=\"sm\" value={r.value || ''} placeholder={L.valuePlaceholder} type={field(r) && field(r).type === 'number' ? 'text' : 'text'} inputMode={field(r) && field(r).type === 'number' ? 'decimal' : undefined} onChange={(e) => update(i, { value: e.target.value })} />}\n <ButtonIcon icon=\"trash-2\" label={L.remove + ' ' + (startIndex + i)} size=\"sm\" onClick={() => remove(i)} />\n </div>\n </React.Fragment>\n ));\n}\nexport function Expression({ title, logic = 'AND', onLogicChange, rows = [], onChange, groups, onGroupsChange, fields = [], operators, onAdd, onRemove, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const F = norm(fields); const O = norm(operators || DEFAULT_OPS);\n const add = () => { onAdd ? onAdd() : onChange && onChange([...rows, { field: '', op: O[0].value, value: '' }]); };\n const addGroup = () => onGroupsChange && onGroupsChange([...(groups || []), { logic: logic === 'AND' ? 'OR' : 'AND', rows: [{ field: '', op: O[0].value, value: '' }] }]);\n const word = logic === 'AND' ? L.and : L.or;\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div className={cx('agn-expr', className)} role=\"group\" aria-label={title} {...rest}>\n <div className=\"agn-expr__head\">\n {title && <span className=\"agn-expr__title\">{title}</span>}\n <span className=\"agn-expr__logic-label\">{L.logic}</span>\n <SegmentedControl size=\"sm\" label={L.logic} value={logic} onChange={(v) => onLogicChange && onLogicChange(v)} options={[{ label: L.all, value: 'AND' }, { label: L.any, value: 'OR' }]} />\n </div>\n <div className=\"agn-expr__rows\">\n <Rows rows={rows} onChange={(r) => onChange && onChange(r)} fields={F} operators={O} L={L} join={word} startIndex={1} />\n {(groups || []).map((g, gi) => { const start = rows.length + 1 + (groups.slice(0, gi).reduce((a, x) => a + x.rows.length, 0)); return (\n <div key={gi} className=\"agn-expr__group\">\n <div className=\"agn-expr__group-head\">\n <span className=\"agn-expr__join\">{word}</span>\n <SegmentedControl size=\"sm\" label={L.logic} value={g.logic} onChange={(v) => onGroupsChange && onGroupsChange(groups.map((x, j) => j === gi ? { ...x, logic: v } : x))} options={[{ label: L.all, value: 'AND' }, { label: L.any, value: 'OR' }]} />\n <ButtonIcon icon=\"x\" label={L.removeGroup} size=\"sm\" onClick={() => onGroupsChange && onGroupsChange(groups.filter((_, j) => j !== gi))} />\n </div>\n <div className=\"agn-expr__rows\">\n <Rows rows={g.rows} onChange={(r) => onGroupsChange && onGroupsChange(groups.map((x, j) => j === gi ? { ...x, rows: r } : x))} fields={F} operators={O} L={L} join={g.logic === 'AND' ? L.and : L.or} startIndex={start} />\n </div>\n <Button variant=\"ghost\" size=\"xs\" icon=\"plus\" onClick={() => onGroupsChange && onGroupsChange(groups.map((x, j) => j === gi ? { ...x, rows: [...x.rows, { field: '', op: O[0].value, value: '' }] } : x))}>{L.add}</Button>\n </div>); })}\n </div>\n <div className=\"agn-expr__foot\">\n <Button variant=\"ghost\" size=\"sm\" icon=\"plus\" onClick={add}>{L.add}</Button>\n {onGroupsChange && <Button variant=\"ghost\" size=\"sm\" icon=\"folder-plus\" onClick={addGroup}>{L.addGroup}</Button>}\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\n// Sticky Save/Cancel bar for long forms, with an unsaved-changes note and an optional extra slot.\nconst DEFAULT_LABELS = { save: 'Save changes', cancel: 'Cancel', changes: '{n} unsaved changes', change: '1 unsaved change', saved: 'All changes saved' };\nexport function DockedFormFooter({ onSave, onCancel, changes, saving, disabled, message, extra, align = 'right', fixed, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const note = message != null ? message : changes == null ? null : changes === 0 ? L.saved : changes === 1 ? L.change : L.changes.replace('{n}', changes);\n const dirty = changes == null ? true : changes > 0;\n return (\n <section className={cx('agn-docked', 'agn-docked--' + align, fixed && 'agn-docked--fixed', className)} aria-live=\"polite\" {...rest}>\n {note != null && <span className={cx('agn-docked__note', !dirty && 'agn-docked__note--saved')}>{dirty ? <Icon name=\"circle-dot\" size={14} /> : <Icon name=\"circle-check\" size={14} />}{note}</span>}\n {extra && <span className=\"agn-docked__extra\">{extra}</span>}\n <span className=\"agn-docked__actions\">\n <Button variant=\"neutral\" onClick={onCancel} disabled={saving || disabled}>{L.cancel}</Button>\n <Button variant=\"primary\" onClick={onSave} loading={saving} disabled={disabled || !dirty}>{L.save}</Button>\n </span>\n </section>\n );\n}\n","import React, { useState, useMemo, useRef, useEffect } from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\n// Dense record grid: sortable columns, selection with select-all, inline cell edit, row actions, sticky header, states in the order error → loading → empty → rows. Rows are 32px compact, 44px comfortable.\nconst DEFAULT_LABELS = { empty: 'Nothing here yet', emptyHint: '', loading: 'Loading…', error: 'Could not load the data', errorHint: 'Check your connection and try again.', retry: 'Try again', selectAll: 'Select all rows', selectRow: 'Select row', actions: 'Actions', sortedAsc: 'sorted ascending', sortedDesc: 'sorted descending', edit: 'Edit' };\nconst cmp = (a, b) => (a == null ? 1 : b == null ? -1 : typeof a === 'number' && typeof b === 'number' ? a - b : String(a).localeCompare(String(b), undefined, { numeric: true, sensitivity: 'base' }));\nexport function DataTable({ columns = [], rows = [], rowKey = 'id', selectable, selected, defaultSelected = [], onSelectChange, sort, defaultSort = null, onSortChange, onRowClick, rowActions, stickyHeader = true, maxHeight, state, labels, onRetry, pagination, footer, caption, striped, bare, onCellEdit, skeletonRows = 5, rowClassName, activeKey, className, style, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [localSort, setLocalSort] = useState(defaultSort);\n const s = sort !== undefined ? sort : localSort;\n const [localSel, setLocalSel] = useState(defaultSelected);\n const sel = selected !== undefined ? selected : localSel;\n const [editing, setEditing] = useState(null); // { key, col }\n const [focusIdx, setFocusIdx] = useState(-1);\n const bodyRef = useRef(null);\n const id = useMemo(() => uid('agn-table'), []);\n const keyOf = (r, i) => (typeof rowKey === 'function' ? rowKey(r, i) : r[rowKey] != null ? r[rowKey] : i);\n const sorted = useMemo(() => {\n if (!s || !s.key) return rows;\n const col = columns.find((c) => c.key === s.key);\n const get = (r) => (col && col.sortValue ? col.sortValue(r) : r[s.key]);\n return rows.map((r, i) => [r, i]).sort((a, b) => cmp(get(a[0]), get(b[0])) * (s.dir === 'desc' ? -1 : 1) || a[1] - b[1]).map((p) => p[0]);\n }, [rows, s, columns]);\n const setSort = (c) => {\n if (!c.sortable) return;\n const next = s && s.key === c.key ? (s.dir === 'asc' ? { key: c.key, dir: 'desc' } : null) : { key: c.key, dir: 'asc' };\n if (sort === undefined) setLocalSort(next);\n onSortChange && onSortChange(next);\n };\n const setSel = (next) => { if (selected === undefined) setLocalSel(next); onSelectChange && onSelectChange(next); };\n const allKeys = sorted.map(keyOf);\n const allSel = allKeys.length > 0 && allKeys.every((k) => sel.includes(k));\n const someSel = !allSel && allKeys.some((k) => sel.includes(k));\n const toggleAll = () => setSel(allSel ? sel.filter((k) => !allKeys.includes(k)) : Array.from(new Set([...sel, ...allKeys])));\n const toggleOne = (k) => setSel(sel.includes(k) ? sel.filter((x) => x !== k) : [...sel, k]);\n const headRef = useRef(null);\n useEffect(() => { if (headRef.current) headRef.current.indeterminate = someSel; }, [someSel]);\n const st = state || (rows.length === 0 ? 'empty' : 'ready');\n const colCount = columns.length + (selectable ? 1 : 0) + (rowActions ? 1 : 0);\n const focusRow = (i) => {\n const n = Math.max(0, Math.min(sorted.length - 1, i));\n setFocusIdx(n);\n const el = bodyRef.current && bodyRef.current.querySelector('[data-row-index=\"' + n + '\"]');\n if (el) el.focus();\n };\n const onRowKey = (e, r, i) => {\n if (editing) return;\n if (e.target !== e.currentTarget && /^(INPUT|BUTTON|A|SELECT|TEXTAREA)$/.test(e.target.tagName)) return;\n switch (e.key) {\n case 'ArrowDown': e.preventDefault(); focusRow(i + 1); break;\n case 'ArrowUp': e.preventDefault(); focusRow(i - 1); break;\n case 'Home': e.preventDefault(); focusRow(0); break;\n case 'End': e.preventDefault(); focusRow(sorted.length - 1); break;\n case ' ': if (selectable) { e.preventDefault(); toggleOne(keyOf(r, i)); } break;\n case 'Enter': if (onRowClick) { e.preventDefault(); onRowClick(r, i); } break;\n case 'F2': { const c = columns.find((x) => x.editable); if (c && onCellEdit) { e.preventDefault(); setEditing({ key: keyOf(r, i), col: c.key }); } break; }\n default:\n }\n };\n const renderTh = (c) => {\n const active = s && s.key === c.key;\n const inner = <span className=\"agn-table__th-inner\">{c.icon && <Icon name={c.icon} size={12} />}<span>{c.label}</span>{c.sortable && <Icon name={active ? (s.dir === 'asc' ? 'arrow-up' : 'arrow-down') : 'arrow-up-down'} size={12} className={cx('agn-table__sort', active && 'agn-table__sort--active')} />}</span>;\n return (\n <th scope=\"col\" className={cx('agn-table__th', c.align && 'agn-table__th--' + c.align, c.sortable && 'agn-table__th--sortable', active && 'agn-table__th--sorted')} style={{ width: c.width, minWidth: c.minWidth }} aria-sort={active ? (s.dir === 'asc' ? 'ascending' : 'descending') : c.sortable ? 'none' : undefined}>\n {c.sortable ? <button type=\"button\" className=\"agn-table__sort-btn agn-focus-inset\" onClick={() => setSort(c)}>{inner}<span className=\"agn-sr\">{active ? ', ' + (s.dir === 'asc' ? l.sortedAsc : l.sortedDesc) : ''}</span></button> : inner}\n </th>\n );\n };\n const renderCell = (c, r, ri) => {\n const k = keyOf(r, ri);\n const isEditing = editing && editing.key === k && editing.col === c.key;\n const value = r[c.key];\n const content = c.render ? c.render(value, r, ri) : value == null ? <span className=\"agn-table__null\">—</span> : String(value);\n const canEdit = c.editable && onCellEdit;\n const commit = (v) => { if (v !== String(value == null ? '' : value)) onCellEdit(r, c.key, v); setEditing(null); };\n return (\n <td className={cx('agn-table__td', c.align && 'agn-table__td--' + c.align, c.mono && 'agn-table__td--mono', c.ellipsis && 'agn-table__td--ellipsis', canEdit && 'agn-table__td--editable', isEditing && 'agn-table__td--editing', c.className)} style={{ width: c.width }} onDoubleClick={canEdit ? () => setEditing({ key: k, col: c.key }) : undefined} title={c.ellipsis && typeof content === 'string' ? content : undefined}>\n {isEditing ? (\n // biome-ignore lint/a11y/noAutofocus: the editor mounts only on the user's double-click or Edit press; moving focus into it is the expected response, not a page-load surprise\n <input className=\"agn-table__input\" autoFocus defaultValue={value == null ? '' : value} aria-label={typeof c.label === 'string' ? c.label : undefined} onBlur={(e) => commit(e.target.value)} onKeyDown={(e) => { if (e.key === 'Enter') { e.preventDefault(); commit(e.target.value); } if (e.key === 'Escape') { e.preventDefault(); setEditing(null); } e.stopPropagation(); }} />\n ) : (\n <>{content}{canEdit && <button type=\"button\" className=\"agn-table__edit agn-focus-inset\" aria-label={l.edit} onClick={() => setEditing({ key: k, col: c.key })}><Icon name=\"pencil\" size={12} /></button>}</>\n )}\n </td>\n );\n };\n const header = (\n <thead className={cx('agn-table__head', stickyHeader && 'agn-table__head--sticky')}>\n <tr>\n {selectable && <th scope=\"col\" className=\"agn-table__th agn-table__th--check\"><input ref={headRef} type=\"checkbox\" className=\"agn-table__check\" checked={allSel} onChange={toggleAll} aria-label={l.selectAll} disabled={st !== 'ready'} /></th>}\n {columns.map((c) => <React.Fragment key={c.key}>{renderTh(c)}</React.Fragment>)}\n {rowActions && <th scope=\"col\" className=\"agn-table__th agn-table__th--actions\"><span className=\"agn-sr\">{l.actions}</span></th>}\n </tr>\n </thead>\n );\n let body;\n if (st === 'error') body = <tr><td colSpan={colCount} className=\"agn-table__state agn-table__state--error\"><Icon name=\"triangle-alert\" size={20} /><div className=\"agn-table__state-title\">{l.error}</div>{l.errorHint && <div className=\"agn-table__state-hint\">{l.errorHint}</div>}{onRetry && <Button size=\"sm\" icon=\"refresh-cw\" onClick={onRetry}>{l.retry}</Button>}</td></tr>;\n else if (st === 'loading') body = Array.from({ length: skeletonRows }).map((_, i) => /* biome-ignore lint/a11y/noAriaHiddenOnFocusable: skeleton rows have no tabIndex and no focusable content; the rule treats every tr as focusable */ <tr key={i} className=\"agn-table__row agn-table__row--skeleton\" aria-hidden=\"true\">{selectable && <td className=\"agn-table__td agn-table__td--check\"><span className=\"agn-table__skeleton agn-table__skeleton--box\" /></td>}{columns.map((c, ci) => <td key={c.key} className=\"agn-table__td\"><span className=\"agn-table__skeleton\" style={{ width: (ci % 3 === 0 ? 70 : ci % 3 === 1 ? 45 : 55) + '%' }} /></td>)}{rowActions && <td className=\"agn-table__td\" />}</tr>);\n else if (st === 'empty') body = <tr><td colSpan={colCount} className=\"agn-table__state agn-table__state--empty\"><Icon name=\"inbox\" size={20} /><div className=\"agn-table__state-title\">{l.empty}</div>{l.emptyHint && <div className=\"agn-table__state-hint\">{l.emptyHint}</div>}</td></tr>;\n else body = sorted.map((r, ri) => {\n const k = keyOf(r, ri);\n const isSel = selectable && sel.includes(k);\n const isActive = activeKey != null && k === activeKey;\n return (\n <tr key={k} data-row-index={ri} tabIndex={ri === (focusIdx < 0 ? 0 : focusIdx) ? 0 : -1} className={cx('agn-table__row', 'agn-focus-inset', isSel && 'agn-table__row--selected', isActive && 'agn-table__row--active', onRowClick && 'agn-table__row--clickable', rowClassName && rowClassName(r, ri))} aria-selected={selectable ? isSel : undefined} aria-current={isActive ? 'true' : undefined} onKeyDown={(e) => onRowKey(e, r, ri)} onFocus={() => setFocusIdx(ri)} onClick={onRowClick ? (e) => { if (!/^(INPUT|BUTTON|A|SELECT|TEXTAREA)$/.test(e.target.tagName) && !e.target.closest('button,a,input,select,textarea')) onRowClick(r, ri); } : undefined}>\n {selectable && <td className=\"agn-table__td agn-table__td--check\"><input type=\"checkbox\" className=\"agn-table__check\" checked={isSel} onChange={() => toggleOne(k)} aria-label={l.selectRow} /></td>}\n {columns.map((c) => <React.Fragment key={c.key}>{renderCell(c, r, ri)}</React.Fragment>)}\n {rowActions && <td className=\"agn-table__td agn-table__td--actions\">{rowActions(r, ri)}</td>}\n </tr>\n );\n });\n if (st === 'loading' && !skeletonRows) body = <tr><td colSpan={colCount} className=\"agn-table__state\"><Icon name=\"loader-circle\" size={20} className=\"agn-table__spin\" />{l.loading}</td></tr>;\n return (\n <div className={cx('agn-table', bare && 'agn-table--bare', striped && 'agn-table--striped', st !== 'ready' && 'agn-table--' + st, className)} style={style} {...rest}>\n <div className=\"agn-table__scroll\" style={{ maxHeight }} aria-busy={st === 'loading' || undefined} aria-live={st === 'loading' ? 'polite' : undefined}>\n <table className=\"agn-table__table\" id={id}>\n {caption && <caption className=\"agn-sr\">{caption}</caption>}\n {header}\n <tbody ref={bodyRef} className=\"agn-table__body\">{body}</tbody>\n </table>\n {/* biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here */}\n {st === 'loading' && <span className=\"agn-sr\" role=\"status\">{l.loading}</span>}\n </div>\n {(pagination || footer) && <div className=\"agn-table__footer\">{footer && <div className=\"agn-table__footer-main\">{footer}</div>}{pagination && <div className=\"agn-table__pagination\">{pagination}</div>}</div>}\n </div>\n );\n}\n","import React, { useState } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// A table whose first column expands nested rows: a run and its steps, a tenant and its agents, a folder and its files. Arrow keys move and expand.\nconst DEFAULT_LABELS = { expand: 'Expand', collapse: 'Collapse', empty: 'Nothing here yet' };\nfunction flatten(rows, expanded, depth = 0, out = []) {\n for (const r of rows) {\n const has = Array.isArray(r.children) && r.children.length > 0;\n const open = has && expanded.has(r.id);\n out.push({ row: r, depth, has, open });\n if (open) flatten(r.children, expanded, depth + 1, out);\n }\n return out;\n}\nexport function TreeGrid({ columns = [], rows = [], defaultExpanded, expanded, onExpandChange, onRowClick, selected, stickyHeader = true, maxHeight, labels, indent = 20, bare, className, style, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [local, setLocal] = useState(() => new Set(defaultExpanded || rows.filter((r) => r.expanded).map((r) => r.id)));\n const exp = expanded ? new Set(expanded) : local;\n const setExp = (next) => { if (!expanded) setLocal(next); onExpandChange && onExpandChange(Array.from(next)); };\n const toggle = (id) => { const n = new Set(exp); n.has(id) ? n.delete(id) : n.add(id); setExp(n); };\n const flat = flatten(rows, exp);\n const [focus, setFocus] = useState(0);\n const ref = React.useRef(null);\n const focusRow = (i) => { const n = Math.max(0, Math.min(flat.length - 1, i)); setFocus(n); const el = ref.current && ref.current.querySelector('[data-row-index=\"' + n + '\"]'); if (el) el.focus(); };\n const onKey = (e, f, i) => {\n switch (e.key) {\n case 'ArrowDown': e.preventDefault(); focusRow(i + 1); break;\n case 'ArrowUp': e.preventDefault(); focusRow(i - 1); break;\n case 'ArrowRight': e.preventDefault(); if (f.has && !f.open) toggle(f.row.id); else if (f.open) focusRow(i + 1); break;\n case 'ArrowLeft': e.preventDefault(); if (f.open) toggle(f.row.id); else { const p = flat.slice(0, i).reverse().find((x) => x.depth < f.depth); if (p) focusRow(flat.indexOf(p)); } break;\n case 'Enter': if (onRowClick) { e.preventDefault(); onRowClick(f.row); } else if (f.has) { e.preventDefault(); toggle(f.row.id); } break;\n case 'Home': e.preventDefault(); focusRow(0); break;\n case 'End': e.preventDefault(); focusRow(flat.length - 1); break;\n default:\n }\n };\n return (\n <div className={cx('agn-table', 'agn-treegrid', bare && 'agn-table--bare', className)} style={style} {...rest}>\n <div className=\"agn-table__scroll\" style={{ maxHeight }}>\n {/* biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: APG treegrid is a table with role=treegrid; rows carry the roving focus and arrow keys */}\n <table className=\"agn-table__table\" role=\"treegrid\">\n <thead className={cx('agn-table__head', stickyHeader && 'agn-table__head--sticky')}>\n <tr>{columns.map((c) => <th key={c.key} scope=\"col\" className={cx('agn-table__th', c.align && 'agn-table__th--' + c.align)} style={{ width: c.width }}><span className=\"agn-table__th-inner\">{c.label}</span></th>)}</tr>\n </thead>\n <tbody ref={ref} className=\"agn-table__body\">\n {flat.length === 0 && <tr><td colSpan={columns.length} className=\"agn-table__state agn-table__state--empty\"><Icon name=\"inbox\" size={20} /><div className=\"agn-table__state-title\">{l.empty}</div></td></tr>}\n {flat.map((f, i) => (\n <tr key={f.row.id} data-row-index={i} tabIndex={i === focus ? 0 : -1} aria-level={f.depth + 1} aria-expanded={f.has ? f.open : undefined} aria-selected={selected != null ? selected === f.row.id : undefined}\n className={cx('agn-table__row', 'agn-focus-inset', 'agn-treegrid__row', f.has && 'agn-treegrid__row--parent', selected === f.row.id && 'agn-table__row--selected', onRowClick && 'agn-table__row--clickable')}\n onKeyDown={(e) => onKey(e, f, i)} onFocus={() => setFocus(i)} onClick={onRowClick ? (e) => { if (!e.target.closest('button,a,input')) onRowClick(f.row); } : undefined}>\n {columns.map((c, ci) => (\n <td key={c.key} className={cx('agn-table__td', c.align && 'agn-table__td--' + c.align, c.mono && 'agn-table__td--mono', ci === 0 && 'agn-treegrid__first')} style={ci === 0 ? { paddingLeft: 8 + f.depth * indent } : undefined}>\n {ci === 0 && (f.has ? <button type=\"button\" className=\"agn-treegrid__toggle agn-focus-inset\" aria-label={f.open ? l.collapse : l.expand} tabIndex={-1} onClick={(e) => { e.stopPropagation(); toggle(f.row.id); }}><Icon name=\"chevron-right\" size={14} className={cx('agn-treegrid__chev', f.open && 'agn-treegrid__chev--open')} /></button> : <span className=\"agn-treegrid__toggle agn-treegrid__toggle--leaf\" aria-hidden=\"true\" />)}\n {ci === 0 && f.row.icon && <Icon name={f.row.icon} size={14} className=\"agn-treegrid__icon\" />}\n {c.render ? c.render(f.row[c.key], f.row, f.depth) : f.row[c.key] == null ? <span className=\"agn-table__null\">—</span> : String(f.row[c.key])}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState, useRef } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\nimport { Badge } from './Badge.jsx';\n// Navigation tree with folders: agents in folders, files in a knowledge base, blocks in a library. One selected node; arrows move, Left/Right collapse and expand, Enter selects.\nconst DEFAULT_LABELS = { expand: 'Expand', collapse: 'Collapse', empty: 'No items' };\nconst KIND_ICON = { folder: 'folder', agent: 'bot', file: 'file-text', tenant: 'building-2', run: 'play', tool: 'wrench', kb: 'book-open' };\nfunction flatten(items, expanded, depth = 0, out = []) {\n for (const it of items) {\n const has = Array.isArray(it.children) && it.children.length > 0;\n const open = has && expanded.has(it.id);\n out.push({ node: it, depth, has, open });\n if (open) flatten(it.children, expanded, depth + 1, out);\n }\n return out;\n}\nexport function Tree({ items = [], selected, onSelect, defaultExpanded, expanded, onExpandChange, header, labels, indent = 16, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const collect = (list, out = []) => { list.forEach((n) => { if (n.expanded) out.push(n.id); if (n.children) collect(n.children, out); }); return out; };\n const [local, setLocal] = useState(() => new Set(defaultExpanded || collect(items)));\n const exp = expanded ? new Set(expanded) : local;\n const setExp = (next) => { if (!expanded) setLocal(next); onExpandChange && onExpandChange(Array.from(next)); };\n const toggle = (id) => { const n = new Set(exp); n.has(id) ? n.delete(id) : n.add(id); setExp(n); };\n const flat = flatten(items, exp);\n const ref = useRef(null);\n const [focus, setFocus] = useState(() => Math.max(0, flat.findIndex((f) => f.node.id === selected)));\n const focusAt = (i) => { const n = Math.max(0, Math.min(flat.length - 1, i)); setFocus(n); const el = ref.current && ref.current.querySelector('[data-index=\"' + n + '\"]'); if (el) el.focus(); };\n const onKey = (e, f, i) => {\n switch (e.key) {\n case 'ArrowDown': e.preventDefault(); focusAt(i + 1); break;\n case 'ArrowUp': e.preventDefault(); focusAt(i - 1); break;\n case 'ArrowRight': e.preventDefault(); if (f.has && !f.open) toggle(f.node.id); else if (f.open) focusAt(i + 1); break;\n case 'ArrowLeft': e.preventDefault(); if (f.open) toggle(f.node.id); else { const p = flat.slice(0, i).reverse().find((x) => x.depth < f.depth); if (p) focusAt(flat.indexOf(p)); } break;\n case 'Home': e.preventDefault(); focusAt(0); break;\n case 'End': e.preventDefault(); focusAt(flat.length - 1); break;\n case 'Enter': case ' ': e.preventDefault(); if (f.has && !onSelect) toggle(f.node.id); else onSelect && onSelect(f.node); break;\n default:\n }\n };\n return (\n <div className={cx('agn-tree', className)} {...rest}>\n {header && <div className=\"agn-tree__header\">{header}</div>}\n {/* biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: APG tree on ul/li: the li are role=none and the focusable div inside each is the treeitem */}\n <ul className=\"agn-tree__list\" role=\"tree\" ref={ref}>\n {flat.length === 0 && <li role=\"none\" className=\"agn-tree__empty\">{l.empty}</li>}\n {flat.map((f, i) => {\n const n = f.node;\n const isSel = selected === n.id;\n const kind = n.kind || (f.has ? 'folder' : 'item');\n const icon = n.icon || (kind === 'folder' ? (f.open ? 'folder-open' : 'folder') : KIND_ICON[kind] || 'file');\n return (\n <li key={n.id} role=\"none\" className=\"agn-tree__li\">\n <div role=\"treeitem\" aria-level={f.depth + 1} aria-expanded={f.has ? f.open : undefined} aria-selected={isSel} data-index={i} tabIndex={i === focus ? 0 : -1} className={cx('agn-tree__item', 'agn-focus-inset', isSel && 'agn-tree__item--selected', kind === 'folder' && 'agn-tree__item--folder')} style={{ paddingLeft: 6 + f.depth * indent }} onKeyDown={(e) => onKey(e, f, i)} onFocus={() => setFocus(i)}\n onClick={() => { if (f.has && (!onSelect || kind === 'folder')) toggle(n.id); if (onSelect && kind !== 'folder') onSelect(n); else if (onSelect && kind === 'folder' && n.selectable) onSelect(n); }}>\n <span className=\"agn-tree__toggle\" aria-hidden=\"true\">{f.has && <Icon name=\"chevron-right\" size={12} className={cx('agn-tree__chev', f.open && 'agn-tree__chev--open')} />}</span>\n {n.product ? <ProductIcon product={n.product} size={14} className=\"agn-tree__icon\" /> : <Icon name={icon} size={14} className={cx('agn-tree__icon', kind === 'folder' && 'agn-tree__icon--folder')} />}\n <span className=\"agn-tree__label\">{n.label}</span>\n {n.meta && <span className=\"agn-tree__meta\">{n.meta}</span>}\n {n.count != null && <Badge size=\"sm\">{n.count}</Badge>}\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Count or one-word status on a pill. Solid signal for unread counts; soft tones for status words; outline for quiet states (Disabled, Draft). Never colour alone: a word or a count is always present.\nexport function Badge({ tone = 'neutral', count, max = 99, solid, outline, icon, size = 'md', children, className, ...rest }) {\n const hasCount = typeof count === 'number';\n const text = hasCount ? (count > max ? max + '+' : String(count)) : children;\n return (\n <span className={cx('agn-badge', 'agn-badge--' + tone, solid && 'agn-badge--solid', outline && !solid && 'agn-badge--outline', size !== 'md' && 'agn-badge--' + size, hasCount && 'agn-badge--count', className)} title={hasCount && count > max ? String(count) : undefined} {...rest}>\n {icon && <Icon name={icon} size={size === 'sm' ? 10 : 12} />}\n {text}\n </span>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Compact record summary: media (BlockIcon, Avatar or an icon), title, meta line(s), actions. The row unit of a related list.\nexport function Tile({ icon, media, title, href, onClick, meta, actions, boxed, selected, as, className, children, ...rest }) {\n const Comp = as || 'div';\n const metas = meta == null ? [] : Array.isArray(meta) ? meta : [meta];\n const Title = href ? 'a' : onClick ? 'button' : 'div';\n return (\n <Comp className={cx('agn-tile', boxed && 'agn-tile--boxed', selected && 'agn-tile--selected', (href || onClick) && 'agn-tile--interactive', className)} aria-selected={selected} {...rest}>\n {(media || icon) && <span className=\"agn-tile__media\">{media || <Icon name={icon} size={16} />}</span>}\n <span className=\"agn-tile__body\">\n <Title className={cx('agn-tile__title', (href || onClick) && 'agn-focus')} href={href} type={Title === 'button' ? 'button' : undefined} onClick={onClick}>{title}</Title>\n {metas.length > 0 && <span className=\"agn-tile__meta\">{metas.map((m, i) => <span key={i} className=\"agn-tile__meta-item\">{m}</span>)}</span>}\n {children}\n </span>\n {actions && <span className=\"agn-tile__actions\">{actions}</span>}\n </Comp>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Key fields in a row under a record title: mono label over a value, hairline between groups. The \"at a glance\" strip of a record page.\nexport function SummaryDetail({ fields = [], max, dense, className, ...rest }) {\n const list = max ? fields.slice(0, max) : fields;\n return (\n <dl className={cx('agn-summary', dense && 'agn-summary--dense', className)} {...rest}>\n {list.map((f, i) => (\n <div key={f.key || i} className={cx('agn-summary__item', f.tone && 'agn-summary__item--' + f.tone)}>\n <dt className=\"agn-summary__label\">{f.label}</dt>\n <dd className={cx('agn-summary__value', f.mono && 'agn-mono agn-num')}>{f.value == null || f.value === '' ? <span className=\"agn-summary__empty\">—</span> : f.value}</dd>\n </div>\n ))}\n </dl>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\n// Avatar. People are circles; systems and agents are radius-md squares. Initials fall back on neutral-ramp grounds, never on a colour wheel.\nconst SIZES = { xs: 20, sm: 24, md: 32, lg: 40, xl: 56 };\nconst initialsOf = (name) => String(name || '').trim().split(/\\s+/).slice(0, 2).map((w) => w.charAt(0)).join('').toLocaleUpperCase('tr-TR');\nconst hash = (s) => { let h = 0; for (const c of String(s || '')) h = (h * 31 + c.charCodeAt(0)) | 0; return Math.abs(h); };\nconst STATUS_LABEL = { online: 'Online', busy: 'Busy', away: 'Away', offline: 'Offline' };\nexport function Avatar({ src, name = '', kind = 'person', size = 'md', icon, product, status, labels, className, style, ...rest }) {\n const px = SIZES[size] || SIZES.md;\n const l = { ...STATUS_LABEL, ...labels };\n const isPerson = kind === 'person';\n const ground = 'agn-avatar--g' + ((hash(name) % 4) + 1);\n let body;\n if (src) body = <img className=\"agn-avatar__img\" src={src} alt=\"\" />;\n else if (product) body = <ProductIcon product={product} size={Math.round(px * 0.6)} />;\n else if (icon || !name) body = <Icon name={icon || (isPerson ? 'user' : kind === 'agent' ? 'bot' : 'server')} size={Math.round(px * 0.55)} />;\n else body = <span className=\"agn-avatar__initials\">{initialsOf(name)}</span>;\n return (\n <span className={cx('agn-avatar', 'agn-avatar--' + size, isPerson ? 'agn-avatar--person' : 'agn-avatar--square', kind === 'agent' && 'agn-avatar--agent', !src && !product && ground, className)} style={{ '--agn-avatar-size': px + 'px', ...style }} role=\"img\" aria-label={name ? name + (status ? ', ' + l[status] : '') : undefined} aria-hidden={name ? undefined : true} title={name || undefined} {...rest}>\n {body}\n {status && <span className={cx('agn-avatar__status', 'agn-avatar__status--' + status)} aria-hidden=\"true\" />}\n </span>\n );\n}\n// Overlapping row of avatars with a \"+n\" overflow; items are names or Avatar props.\nexport function AvatarGroup({ items = [], max = 4, size = 'sm', kind = 'person', className, ...rest }) {\n const list = items.map((i) => (typeof i === 'string' ? { name: i } : i));\n const shown = list.slice(0, max);\n const more = list.length - shown.length;\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <span className={cx('agn-avatar-group', className)} role=\"group\" aria-label={list.map((i) => i.name).join(', ')} {...rest}>\n {shown.map((a, i) => <Avatar key={a.name || i} size={size} kind={kind} {...a} />)}\n {more > 0 && <span className={cx('agn-avatar', 'agn-avatar--' + size, kind === 'person' ? 'agn-avatar--person' : 'agn-avatar--square', 'agn-avatar--more')} style={{ '--agn-avatar-size': (SIZES[size] || 24) + 'px' }} title={list.slice(max).map((i) => i.name).join(', ')}>+{more}</span>}\n </span>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// The website's .tag: mono 11.5px on radius-sm with a soft wash and a 45% tinted border. dot marks a live state (running); the word is always there.\nexport function Tag({ tone = 'neutral', dot, icon, as: Comp = 'span', children, className, ...rest }) {\n return (\n <Comp className={cx('agn-tag', 'agn-tag--' + tone, dot && 'agn-tag--dot', className)} {...rest}>\n {dot && <span className=\"agn-tag__dot\" aria-hidden=\"true\" />}\n {icon && !dot && <Icon name={icon} size={12} />}\n {children}\n </Comp>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\n// The 24px rounded icon tile of a canvas block or a tool. Signal by default; tones for state. color is the ONE place a third-party brand colour may enter the UI (a tool's logo tile).\nexport function BlockIcon({ icon = 'box', product, tone = 'signal', color, size = 'md', title, children, className, style, ...rest }) {\n const px = size === 'sm' ? 20 : size === 'lg' ? 32 : size === 'xl' ? 40 : 24;\n const glyph = Math.round(px * 0.58);\n return (\n // biome-ignore lint/a11y/useAriaPropsSupportedByRole: aria-label is set only together with role=img (both keyed on title); the rule cannot see the conditional role\n <span className={cx('agn-block-icon', 'agn-block-icon--' + tone, size !== 'md' && 'agn-block-icon--' + size, color && 'agn-block-icon--brand', className)} style={{ '--agn-block-size': px + 'px', ...(color ? { '--agn-brand': color } : null), ...style }} role={title ? 'img' : undefined} aria-label={title} aria-hidden={title ? undefined : true} {...rest}>\n {children || (product ? <ProductIcon product={product} size={glyph} /> : <Icon name={icon} size={glyph} strokeWidth={px <= 24 ? 2 : 1.75} />)}\n </span>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// A file as a card (thumbnail above) or a row (thumbnail beside): name, type, size, modified, actions. Attachments on a case, documents in a knowledge base.\nconst TYPE_ICON = { pdf: 'file-text', doc: 'file-text', docx: 'file-text', txt: 'file-text', md: 'file-text', xls: 'file-spreadsheet', xlsx: 'file-spreadsheet', csv: 'file-spreadsheet', json: 'file-json', js: 'file-code', ts: 'file-code', py: 'file-code', png: 'image', jpg: 'image', jpeg: 'image', gif: 'image', svg: 'image', webp: 'image', mp3: 'file-audio', wav: 'file-audio', ogg: 'file-audio', mp4: 'file-video', zip: 'file-archive', folder: 'folder' };\nexport function FileCard({ name, type, size, modified, preview, variant = 'card', selected, onOpen, href, actions, meta, className, ...rest }) {\n const ext = (type || (name || '').split('.').pop() || '').toLowerCase();\n const icon = TYPE_ICON[ext] || 'file';\n const Title = href ? 'a' : onOpen ? 'button' : 'span';\n const metas = [ext && ext.toUpperCase(), size, modified, meta].filter(Boolean);\n return (\n <div className={cx('agn-file', 'agn-file--' + variant, selected && 'agn-file--selected', className)} aria-current={selected || undefined} {...rest}>\n <div className={cx('agn-file__thumb', preview && 'agn-file__thumb--img')}>\n {preview ? <img src={preview} alt=\"\" className=\"agn-file__img\" /> : <Icon name={icon} size={variant === 'card' ? 28 : 18} strokeWidth={1.5} />}\n {variant === 'card' && ext && !preview && <span className=\"agn-file__ext\">{ext}</span>}\n </div>\n <div className=\"agn-file__body\">\n <Title className={cx('agn-file__name', (href || onOpen) && 'agn-focus')} href={href} type={Title === 'button' ? 'button' : undefined} onClick={onOpen} title={name}>{name}</Title>\n <div className=\"agn-file__meta\">{metas.map((m, i) => <span key={i}>{m}</span>)}</div>\n </div>\n {actions && <div className=\"agn-file__actions\">{actions}</div>}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Avatar } from './Avatar.jsx';\n// Activity feed: posts with an avatar, who did what, the time, the text, actions and replies. Comments on an approval, notes on a case, a supervisor thread.\nconst DEFAULT_LABELS = { reply: 'Reply', like: 'Like', liked: 'Liked', replies: 'replies' };\nexport function Feed({ children, className, ...rest }) {\n return <div className={cx('agn-feed', className)} role=\"feed\" {...rest}>{children}</div>;\n}\nexport function FeedPost({ author, avatar, kind = 'person', action, target, time, children, actions, replies = [], likes, liked, onLike, onReply, labels, tone, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const a = typeof author === 'string' ? { name: author, src: avatar, kind } : { kind, ...author };\n return (\n <article className={cx('agn-post', tone && 'agn-post--' + tone, className)} {...rest}>\n <Avatar size=\"sm\" name={a.name} src={a.src} kind={a.kind} product={a.product} className=\"agn-post__avatar\" />\n <div className=\"agn-post__main\">\n <header className=\"agn-post__head\">\n <span className=\"agn-post__author\">{a.name}</span>\n {action && <span className=\"agn-post__action\"> {action}</span>}\n {target && <span className=\"agn-post__target\"> {target}</span>}\n {time && <time className=\"agn-post__time\">{time}</time>}\n </header>\n {children && <div className=\"agn-post__body\">{children}</div>}\n {(actions || onLike || onReply) && (\n <div className=\"agn-post__actions\">\n {onLike && <button type=\"button\" className={cx('agn-post__btn', 'agn-focus', liked && 'agn-post__btn--active')} aria-pressed={liked} onClick={onLike}><Icon name=\"thumbs-up\" size={14} />{liked ? l.liked : l.like}{likes > 0 && <span className=\"agn-num\">{likes}</span>}</button>}\n {onReply && <button type=\"button\" className=\"agn-post__btn agn-focus\" onClick={onReply}><Icon name=\"message-square\" size={14} />{l.reply}</button>}\n {actions}\n </div>\n )}\n {replies.length > 0 && (\n <div className=\"agn-post__replies\">\n {replies.map((r, i) => (\n <div key={r.id || i} className=\"agn-post__reply\">\n <Avatar size=\"xs\" name={typeof r.author === 'string' ? r.author : r.author.name} src={r.avatar} kind={r.kind || 'person'} />\n <div className=\"agn-post__reply-main\">\n <span className=\"agn-post__author\">{typeof r.author === 'string' ? r.author : r.author.name}</span>{r.time && <time className=\"agn-post__time\">{r.time}</time>}\n <div className=\"agn-post__body\">{r.text}</div>\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n </article>\n );\n}\n","import React, { useState } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Vertical timeline of events with an icon per kind and a time: run history, case history, deploy history. Items with a group render a date header; items with detail expand.\nconst KIND = { run: 'play', step: 'circle-dot', approval: 'user-check', call: 'phone', message: 'message-square', note: 'sticky-note', agent: 'bot', deploy: 'rocket', edit: 'pencil', error: 'circle-alert', success: 'circle-check', warn: 'triangle-alert', handoff: 'arrow-right-left', email: 'mail', event: 'circle' };\nconst DEFAULT_LABELS = { show: 'Show details', hide: 'Hide details' };\nexport function ActivityTimeline({ items = [], compact, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [open, setOpen] = useState(() => new Set(items.filter((i) => i.open).map((i, idx) => i.id || idx)));\n let lastGroup = null;\n return (\n <ol className={cx('agn-timeline', compact && 'agn-timeline--compact', className)} {...rest}>\n {items.map((it, i) => {\n const key = it.id || i;\n const tone = it.tone || (it.kind === 'error' ? 'bad' : it.kind === 'success' ? 'ok' : it.kind === 'warn' || it.kind === 'approval' ? 'warn' : it.kind === 'run' || it.kind === 'agent' ? 'info' : 'neutral');\n const head = it.group && it.group !== lastGroup ? <li key={'g' + key} className=\"agn-timeline__group\" aria-hidden=\"true\">{it.group}</li> : null;\n lastGroup = it.group || lastGroup;\n const isOpen = open.has(key);\n return (\n <React.Fragment key={key}>\n {head}\n <li className={cx('agn-timeline__item', 'agn-timeline__item--' + tone, it.current && 'agn-timeline__item--current', it.done === false && 'agn-timeline__item--pending')}>\n <span className=\"agn-timeline__marker\" aria-hidden=\"true\"><Icon name={it.icon || KIND[it.kind] || 'circle'} size={compact ? 12 : 14} /></span>\n <div className=\"agn-timeline__main\">\n <div className=\"agn-timeline__head\">\n <span className=\"agn-timeline__title\">{it.title}</span>\n {it.time && <time className=\"agn-timeline__time\">{it.time}</time>}\n </div>\n {it.description && <div className=\"agn-timeline__desc\">{it.description}</div>}\n {it.detail && (\n <>\n <button type=\"button\" className=\"agn-timeline__toggle agn-focus\" aria-expanded={isOpen} onClick={() => { const n = new Set(open); n.has(key) ? n.delete(key) : n.add(key); setOpen(n); }}><Icon name=\"chevron-right\" size={12} className={cx('agn-timeline__chev', isOpen && 'agn-timeline__chev--open')} />{isOpen ? l.hide : l.show}</button>\n {isOpen && <div className=\"agn-timeline__detail\">{it.detail}</div>}\n </>\n )}\n </div>\n </li>\n </React.Fragment>\n );\n })}\n </ol>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\n// Empty, error and first-run states built from tokens alone: a soft blob, floating cards, three data dots and a boxed glyph. Twelve scenes; no bitmaps.\n// cards: [left, top, width, height] in a 160×120 scene; dots: [dataIndex, left%, top%]\nconst SCENES = {\n empty: { icon: 'inbox', cards: [[10, 58, 58, 32], [96, 14, 54, 30]], dots: [[1, 16, 22], [2, 84, 70], [3, 74, 12]] },\n search: { icon: 'search-x', cards: [[98, 60, 52, 30]], dots: [[1, 18, 72], [2, 80, 16], [3, 30, 18]] },\n error: { icon: 'triangle-alert', tone: 'bad', cards: [[12, 62, 50, 28]], dots: [[4, 18, 26], [3, 84, 64], [6, 76, 14]] },\n locked: { icon: 'lock', cards: [], dots: [[1, 16, 66], [5, 84, 22], [6, 50, 12]] },\n offline: { icon: 'wifi-off', tone: 'neutral', cards: [[98, 64, 50, 26]], dots: [[6, 18, 24], [5, 80, 18], [6, 70, 80]] },\n success: { icon: 'circle-check', tone: 'ok', cards: [], dots: [[2, 16, 26], [1, 84, 66], [3, 74, 14]] },\n agent: { product: 'platform', cards: [[10, 60, 56, 30], [100, 18, 50, 28]], dots: [[1, 14, 20], [2, 86, 72], [3, 78, 12]] },\n chart: { icon: 'chart-column', cards: [[10, 18, 50, 28], [100, 66, 50, 28]], dots: [[1, 84, 24], [2, 20, 76], [3, 50, 90]] },\n calendar: { icon: 'calendar-x', cards: [[12, 64, 54, 28]], dots: [[1, 82, 20], [3, 24, 22], [2, 86, 78]] },\n files: { icon: 'folder-open', cards: [[96, 18, 52, 30], [12, 18, 40, 24]], dots: [[3, 16, 70], [1, 80, 80], [2, 60, 8]] },\n team: { icon: 'users', cards: [], dots: [[1, 16, 26], [2, 84, 26], [3, 50, 86]] },\n build: { icon: 'hammer', tone: 'warn', cards: [[100, 20, 48, 26]], dots: [[3, 18, 70], [1, 76, 82], [2, 30, 14]] },\n};\nexport const illustrationScenes = Object.keys(SCENES);\nexport function Illustration({ scene = 'empty', icon, product, title, message, action, actionLabel, onAction, size = 'md', className, ...rest }) {\n const s = SCENES[scene] || SCENES.empty;\n const sm = size === 'sm';\n const tone = s.tone || 'signal';\n const prod = product || s.product;\n return (\n <div className={cx('agn-illus', 'agn-illus--' + size, 'agn-illus--' + scene, className)} role={scene === 'error' ? 'alert' : 'status'} {...rest}>\n <div className=\"agn-illus__scene\" aria-hidden=\"true\">\n <div className=\"agn-illus__blob\" />\n {!sm && s.cards.map(([x, y, w, h], i) => <div key={i} className=\"agn-illus__card\" style={{ left: x, top: y, width: w, height: h }} />)}\n {s.dots.map(([d, x, y], i) => <span key={i} className=\"agn-illus__dot\" style={{ background: 'var(--data-' + d + ')', left: x + '%', top: y + '%' }} />)}\n <div className={cx('agn-illus__glyph', 'agn-illus__glyph--' + tone)}>{prod && !icon ? <ProductIcon product={prod} size={sm ? 20 : 28} /> : <Icon name={icon || s.icon} size={sm ? 20 : 28} strokeWidth={1.75} />}</div>\n </div>\n {title && <div className=\"agn-illus__title\">{title}</div>}\n {message && <div className=\"agn-illus__message\">{message}</div>}\n {(action || actionLabel) && <div className=\"agn-illus__action\">{action || <Button variant=\"primary\" size={sm ? 'sm' : 'md'} onClick={onAction}>{actionLabel}</Button>}</div>}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// The website's .stat: a display-600 tabular value over a mono uppercase label. delta carries direction with an arrow and a word-length value; invert flips the colour for costs.\n// With `locale`, numeric deltas use the locale's decimal mark and a true minus (U+2212); string deltas may use either minus.\nexport function Stat({ value, label, delta, invert, sub, icon, size = 'md', chart, locale, as: Comp = 'div', className, ...rest }) {\n let d = null;\n if (delta != null) {\n const o = typeof delta === 'object' ? delta : { value: delta };\n const num = typeof o.value === 'number' ? o.value : parseFloat(String(o.value).replace(/\\u2212/g, '-').replace(/[^\\d.,-]/g, '').replace(',', '.'));\n const dir = o.direction || (Number.isFinite(num) ? (num > 0 ? 'up' : num < 0 ? 'down' : 'flat') : 'flat');\n const good = dir === 'flat' ? null : (dir === 'up') !== !!invert;\n const tone = dir === 'flat' ? 'neutral' : good ? 'ok' : 'bad';\n const unit = o.unit ?? '%';\n const text = typeof o.value === 'number' ? (locale ? (o.value > 0 ? '+' : o.value < 0 ? '\\u2212' : '') + new Intl.NumberFormat(locale, { maximumFractionDigits: 2 }).format(Math.abs(o.value)) : (o.value > 0 ? '+' : '') + o.value) + unit : o.value;\n d = <span className={cx('agn-stat__delta', 'agn-stat__delta--' + tone)}><Icon name={dir === 'up' ? 'arrow-up-right' : dir === 'down' ? 'arrow-down-right' : 'minus'} size={size === 'sm' ? 12 : 14} />{text}{o.label && <span className=\"agn-stat__delta-label\">{o.label}</span>}</span>;\n }\n return (\n <Comp className={cx('agn-stat', 'agn-stat--' + size, className)} {...rest}>\n <div className=\"agn-stat__head\">\n {icon && <Icon name={icon} size={16} className=\"agn-stat__icon\" />}\n <div className=\"agn-stat__label\">{label}</div>\n </div>\n <div className=\"agn-stat__row\">\n <div className=\"agn-stat__value\">{value}</div>\n {d}\n </div>\n {sub && <div className=\"agn-stat__sub\">{sub}</div>}\n {chart && <div className=\"agn-stat__chart\">{chart}</div>}\n </Comp>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\n// Small SVG charts at the six data colours: line, area, bar (bar and area may stack). A faint grid, an emphasised last point, tabular labels. For tiles and dashboards, not a charting library.\nconst COLORS = ['var(--data-1)', 'var(--data-2)', 'var(--data-3)', 'var(--data-4)', 'var(--data-5)', 'var(--data-6)'];\nconst PAD = { t: 6, r: 6, b: 18, l: 6 };\nfunction scale(series, max, min) {\n const all = series.flatMap((s) => s.values);\n const hi = max != null ? max : Math.max(...all, 0);\n const lo = min != null ? min : Math.min(...all, 0);\n return { hi, lo: hi === lo ? lo - 1 : lo };\n}\nfunction path(vals, x, y, close, h) {\n const pts = vals.map((v, i) => [x(i), y(v)]);\n const d = pts.map((p, i) => (i ? 'L' : 'M') + p[0].toFixed(1) + ' ' + p[1].toFixed(1)).join(' ');\n return close ? d + ' L' + pts[pts.length - 1][0].toFixed(1) + ' ' + h + ' L' + pts[0][0].toFixed(1) + ' ' + h + ' Z' : d;\n}\n// The SVG is drawn at the container's measured width (ResizeObserver), so axis labels never stretch; `width` is the first-paint and no-ResizeObserver fallback.\nfunction useWidth(ref, fallback) {\n const [w, setW] = React.useState(null);\n React.useEffect(() => {\n const el = ref.current;\n if (!el || typeof ResizeObserver === 'undefined') return undefined;\n const ro = new ResizeObserver((es) => { const cw = Math.round(es[0].contentRect.width); if (cw > 0) setW((p) => (p === cw ? p : cw)); });\n ro.observe(el);\n return () => ro.disconnect();\n }, [ref]);\n return w || fallback;\n}\nexport function MiniChart({ type = 'line', data, series, labels = [], height = 120, width = 320, max, min, grid = true, legend, format = (v) => String(v), title, emphasis = 'last', stacked, reference, band, className, ...rest }) {\n const ser = series || [{ name: title || '', values: data || [] }];\n const n = Math.max(...ser.map((s) => s.values.length), 1);\n const stack = !!stacked && type !== 'line' && ser.length > 1;\n // cumulative tops per series when stacked\n const cum = stack ? ser.map((_s, si) => Array.from({ length: n }, (_, i) => ser.slice(0, si + 1).reduce((a, t) => a + (Number(t.values[i]) || 0), 0))) : null;\n // a reference line ({ value, label } or a number) and a target band ({ from, to, label }) are annotations, not series; the scale includes them\n const ref = reference == null ? null : typeof reference === 'number' ? { value: reference } : reference;\n const extra = [ref && ref.value, band && band.from, band && band.to].filter((v) => typeof v === 'number');\n const { hi, lo } = scale((stack ? cum.map((values) => ({ values })) : ser).concat(extra.length ? [{ values: extra }] : []), max, min);\n const figRef = React.useRef(null);\n const W = useWidth(figRef, width), H = height, iw = Math.max(W - PAD.l - PAD.r, 1), ih = H - PAD.t - PAD.b;\n const y = (v) => PAD.t + ih - ((v - lo) / (hi - lo)) * ih;\n const x = (i) => PAD.l + (n === 1 ? iw / 2 : (i / (n - 1)) * iw);\n const id = React.useMemo(() => uid('agn-chart'), []);\n const ticks = [lo, (lo + hi) / 2, hi];\n const desc = ser.map((s) => (s.name ? s.name + ': ' : '') + s.values.map(format).join(', ')).join('; ');\n let marks;\n if (type === 'bar' && stack) {\n const gw = iw / n, bw = Math.max(2, gw * 0.6);\n marks = ser.map((_s, si) => cum[si].map((top, i) => {\n const base = si ? cum[si - 1][i] : 0;\n const by = y(top), bh = y(base) - y(top);\n if (bh <= 0) return null;\n return <rect key={si + '-' + i} x={PAD.l + i * gw + (gw - bw) / 2} y={by} width={bw} height={Math.max(bh - (si ? 1 : 0), 0.5)} rx={si === ser.length - 1 ? 1.5 : 0} fill={COLORS[si % 6]} opacity={emphasis === 'last' && i === n - 1 ? 1 : 0.8} />;\n }));\n } else if (type === 'bar') {\n const groups = n, gw = iw / groups, bw = Math.max(2, (gw * 0.7) / ser.length);\n marks = ser.map((s, si) => s.values.map((v, i) => {\n const bx = PAD.l + i * gw + (gw - bw * ser.length) / 2 + si * bw;\n const by = y(Math.max(v, 0)), bh = Math.abs(y(v) - y(0));\n return <rect key={si + '-' + i} x={bx} y={by} width={bw - 1} height={Math.max(bh, 1)} rx=\"1.5\" fill={COLORS[si % 6]} opacity={emphasis === 'last' && i === n - 1 ? 1 : 0.75} />;\n }));\n } else if (stack) {\n // stacked area: each band fills between the previous cumulative line and its own\n marks = ser.map((_s, si) => {\n const c = COLORS[si % 6];\n const top = cum[si].map((v, i) => [x(i), y(v)]);\n const bot = (si ? cum[si - 1] : cum[si].map(() => Math.max(lo, 0))).map((v, i) => [x(i), y(v)]).reverse();\n const d = top.concat(bot).map((p, i) => (i ? 'L' : 'M') + p[0].toFixed(1) + ' ' + p[1].toFixed(1)).join(' ') + ' Z';\n return (\n <g key={si}>\n <path d={d} fill={c} opacity=\".22\" />\n <path d={path(cum[si], x, y)} fill=\"none\" stroke={c} strokeWidth=\"1.5\" strokeLinejoin=\"round\" strokeLinecap=\"round\" />\n </g>\n );\n });\n } else {\n marks = ser.map((s, si) => {\n const c = COLORS[si % 6];\n const last = s.values.length - 1;\n return (\n <g key={si}>\n {type === 'area' && !s.dashed && <path d={path(s.values, x, y, true, PAD.t + ih)} fill={c} opacity=\".12\" />}\n <path d={path(s.values, x, y)} fill=\"none\" stroke={c} strokeWidth={s.dashed ? 1.5 : 2} strokeDasharray={s.dashed ? '4 3' : undefined} strokeLinejoin=\"round\" strokeLinecap=\"round\" className={s.dashed ? 'agn-chart__compare' : undefined} />\n {emphasis === 'last' && last >= 0 && !s.dashed && <circle cx={x(last)} cy={y(s.values[last])} r=\"3.5\" fill=\"var(--panel)\" stroke={c} strokeWidth=\"2\" />}\n </g>\n );\n });\n }\n // thin labels by available width (~44px per label) as well as by count\n const every = Math.max(1, labels.length <= 8 && iw / Math.max(labels.length, 1) >= 36 ? 1 : Math.ceil(labels.length / Math.max(2, Math.floor(iw / 48))));\n return (\n <figure ref={figRef} className={cx('agn-chart', 'agn-chart--' + type, stack && 'agn-chart--stacked', className)} {...rest}>\n <svg className=\"agn-chart__svg\" viewBox={'0 0 ' + W + ' ' + H} width=\"100%\" height={H} role=\"img\" aria-labelledby={id + '-t'} preserveAspectRatio=\"none\">\n <title id={id + '-t'}>{(title ? title + '. ' : '') + desc}</title>\n {grid && ticks.map((t, i) => <line key={i} className=\"agn-chart__grid\" x1={PAD.l} x2={W - PAD.r} y1={y(t)} y2={y(t)} />)}\n {band && <g className=\"agn-chart__band\"><rect x={PAD.l} width={iw} y={y(Math.max(band.from, band.to))} height={Math.abs(y(band.from) - y(band.to))} />{band.label && <text className=\"agn-chart__label agn-chart__band-label\" x={PAD.l + 4} y={y(Math.max(band.from, band.to)) + 11}>{band.label}</text>}</g>}\n {marks}\n {ref && <g className=\"agn-chart__ref\"><line x1={PAD.l} x2={W - PAD.r} y1={y(ref.value)} y2={y(ref.value)} />{ref.label && <text className=\"agn-chart__label agn-chart__ref-label\" x={W - PAD.r} y={y(ref.value) - 4} textAnchor=\"end\">{ref.label}</text>}</g>}\n {labels.length > 0 && labels.map((l, i) => (i === 0 || i === labels.length - 1 || (i % every === 0 && labels.length - 1 - i >= Math.max(1, every * 0.6))) && <text key={i} className=\"agn-chart__label\" x={type === 'bar' ? PAD.l + (i + 0.5) * (iw / n) : x(i)} y={H - 4} textAnchor={type === 'bar' ? 'middle' : i === 0 ? 'start' : i === labels.length - 1 ? 'end' : 'middle'}>{l}</text>)}\n </svg>\n {legend && ser.length > 0 && (\n <figcaption className=\"agn-chart__legend\">{ser.map((s, i) => <span key={i} className=\"agn-chart__key\"><i className={cx('agn-chart__swatch', s.dashed && 'agn-chart__swatch--dashed')} style={s.dashed ? { color: COLORS[i % 6] } : { background: COLORS[i % 6] }} />{s.name}{s.values.length > 0 && <b className=\"agn-num\">{format(s.values[s.values.length - 1])}</b>}</span>)}</figcaption>\n )}\n </figure>\n );\n}\n// Inline trend line for table cells and stat tiles: no axes, the end point emphasised.\n// zero={false} (or min/max) fits the scale to the data, so a 27–36 s trend is not flat.\nexport function Sparkline({ data = [], width = 96, height = 24, area, color = 1, tone, min, max, zero = true, className, ...rest }) {\n const c = tone ? 'var(--' + tone + ')' : COLORS[(color - 1) % 6];\n const n = data.length;\n const base = zero && min == null && max == null ? [0] : [];\n const hi = max != null ? max : Math.max(...data, ...base), lo = min != null ? min : Math.min(...data, ...base), span = hi - lo || 1;\n const x = (i) => 3 + (n <= 1 ? (width - 6) / 2 : (i / (n - 1)) * (width - 6));\n const y = (v) => 3 + (height - 6) - ((v - lo) / span) * (height - 6);\n const d = path(data, x, y);\n return (\n <svg className={cx('agn-sparkline', className)} width={width} height={height} viewBox={'0 0 ' + width + ' ' + height} role=\"img\" aria-label={data.join(', ')} {...rest}>\n {area && n > 1 && <path d={path(data, x, y, true, height - 3)} fill={c} opacity=\".12\" />}\n {n > 1 && <path d={d} fill=\"none\" stroke={c} strokeWidth=\"1.5\" strokeLinejoin=\"round\" strokeLinecap=\"round\" />}\n {n > 0 && <circle cx={x(n - 1)} cy={y(data[n - 1])} r=\"2.5\" fill={c} />}\n </svg>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Avatar } from './Avatar.jsx';\nimport { Tag } from './Tag.jsx';\nimport { Badge } from './Badge.jsx';\n// Board of columns and cards: approvals by stage, cases by status. Drag between columns; keyboard: Enter opens, ← → move, ↑ ↓ walk the column. Columns may carry a WIP limit.\nconst DEFAULT_LABELS = { add: 'Add', limit: 'limit', empty: 'No cards', moveTo: 'Move to' };\nexport function Kanban({ columns = [], cards = [], onMove, onCardClick, onAdd, renderCard, labels, className, style, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [drag, setDrag] = useState(null);\n const [over, setOver] = useState(null);\n const byCol = (id) => cards.filter((c) => c.column === id);\n const move = (card, dir) => {\n const i = columns.findIndex((c) => c.id === card.column);\n const n = columns[i + dir];\n if (n && onMove) onMove(card.id, n.id, card);\n };\n const walk = (e, dir) => {\n const col = e.currentTarget.closest('[data-col]');\n const items = Array.from(col.querySelectorAll('[data-card]'));\n const i = items.indexOf(e.currentTarget);\n const next = items[i + dir];\n if (next) next.focus();\n };\n return (\n <div className={cx('agn-kanban', className)} style={style} {...rest}>\n {columns.map((col) => {\n const list = byCol(col.id);\n const overLimit = col.limit != null && list.length > col.limit;\n return (\n <section key={col.id} data-col={col.id} className={cx('agn-kanban__col', over === col.id && 'agn-kanban__col--over', overLimit && 'agn-kanban__col--over-limit')} aria-label={col.label}\n onDragOver={(e) => { if (drag) { e.preventDefault(); setOver(col.id); } }} onDragLeave={() => setOver(null)} onDrop={(e) => { e.preventDefault(); setOver(null); if (drag && onMove && drag.column !== col.id) onMove(drag.id, col.id, drag); setDrag(null); }}>\n <header className=\"agn-kanban__head\">\n <span className={cx('agn-kanban__title', col.tone && 'agn-kanban__title--' + col.tone)}>{col.tone && <i className=\"agn-kanban__tone\" aria-hidden=\"true\" />}{col.label}</span>\n <span className={cx('agn-kanban__count', 'agn-num', overLimit && 'agn-kanban__count--over')}>{list.length}{col.limit != null && <span className=\"agn-kanban__limit\"> / {col.limit}</span>}</span>\n {onAdd && <button type=\"button\" className=\"agn-kanban__add agn-focus\" aria-label={l.add + ' · ' + col.label} onClick={() => onAdd(col.id)}><Icon name=\"plus\" size={14} /></button>}\n </header>\n <div className=\"agn-kanban__cards\">\n {list.length === 0 && <div className=\"agn-kanban__empty\">{l.empty}</div>}\n {list.map((card) => (\n // biome-ignore lint/a11y/useSemanticElements: draggable card with rich content: a <button> cannot hold it and drags poorly in Firefox; role=button + tabIndex + Enter/arrow handlers give the same contract\n <div key={card.id} data-card={card.id} draggable={!!onMove} tabIndex={0} role=\"button\" aria-label={typeof card.title === 'string' ? card.title : undefined}\n className={cx('agn-kanban__card', 'agn-focus', drag && drag.id === card.id && 'agn-kanban__card--dragging', card.tone && 'agn-kanban__card--' + card.tone)}\n onDragStart={(e) => { setDrag(card); e.dataTransfer.effectAllowed = 'move'; }} onDragEnd={() => { setDrag(null); setOver(null); }}\n onClick={() => onCardClick && onCardClick(card)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); onCardClick && onCardClick(card); }\n else if (e.key === 'ArrowRight') { e.preventDefault(); move(card, 1); }\n else if (e.key === 'ArrowLeft') { e.preventDefault(); move(card, -1); }\n else if (e.key === 'ArrowDown') { e.preventDefault(); walk(e, 1); }\n else if (e.key === 'ArrowUp') { e.preventDefault(); walk(e, -1); }\n }}>\n {renderCard ? renderCard(card) : (\n <>\n {(card.tags || card.priority) && <div className=\"agn-kanban__tags\">{card.priority && <Tag tone={card.priority === 'high' ? 'bad' : card.priority === 'medium' ? 'warn' : 'neutral'}>{card.priority}</Tag>}{(card.tags || []).map((t, i) => <Tag key={i}>{t}</Tag>)}</div>}\n <div className=\"agn-kanban__card-title\">{card.title}</div>\n {card.sub && <div className=\"agn-kanban__card-sub\">{card.sub}</div>}\n {(card.assignee || card.due || card.count != null) && (\n <div className=\"agn-kanban__card-foot\">\n {card.assignee && <Avatar size=\"xs\" name={typeof card.assignee === 'string' ? card.assignee : card.assignee.name} src={card.assignee && card.assignee.src} kind={(card.assignee && card.assignee.kind) || 'person'} />}\n {card.due && <span className={cx('agn-kanban__due', card.overdue && 'agn-kanban__due--overdue')}><Icon name={card.overdue ? 'clock-alert' : 'calendar'} size={12} />{card.due}</span>}\n {card.count != null && <Badge size=\"sm\" icon=\"message-square\">{card.count}</Badge>}\n </div>\n )}\n </>\n )}\n </div>\n ))}\n </div>\n </section>\n );\n })}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Month grid with schedule chips: scheduled runs, call campaigns, maintenance windows. Locale drives weekday names and the day order; chips carry a tone and a word.\nconst DEFAULT_LABELS = { more: 'more', today: 'Today', prev: 'Previous month', next: 'Next month' };\nconst toDate = (d) => (d instanceof Date ? d : new Date(d));\nconst sameDay = (a, b) => a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\nexport function CalendarView({ month, events = [], locale = 'en', weekStartsOn = 1, today = new Date(), maxPerDay = 3, onEventClick, onDayClick, onMonthChange, labels, header = true, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const m = month ? toDate(month) : new Date(today.getFullYear(), today.getMonth(), 1);\n const first = new Date(m.getFullYear(), m.getMonth(), 1);\n const offset = (first.getDay() - weekStartsOn + 7) % 7;\n const start = new Date(first); start.setDate(first.getDate() - offset);\n const days = Array.from({ length: 42 }, (_, i) => { const d = new Date(start); d.setDate(start.getDate() + i); return d; });\n const weeks = days.slice(35).some((d) => d.getMonth() === m.getMonth()) ? 6 : 5;\n const dayFmt = new Intl.DateTimeFormat(locale, { weekday: 'short' });\n const monthFmt = new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric' });\n const timeFmt = new Intl.DateTimeFormat(locale, { hour: '2-digit', minute: '2-digit' });\n const weekdays = Array.from({ length: 7 }, (_, i) => dayFmt.format(days[i]));\n const eventsOf = (d) => events.filter((e) => { const s = toDate(e.start); const en = e.end ? toDate(e.end) : s; const d0 = new Date(d.getFullYear(), d.getMonth(), d.getDate()); const d1 = new Date(d0); d1.setDate(d0.getDate() + 1); return s < d1 && en >= d0; });\n const shift = (n) => onMonthChange && onMonthChange(new Date(m.getFullYear(), m.getMonth() + n, 1));\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div className={cx('agn-cal', 'agn-calview', className)} role=\"group\" aria-label={monthFmt.format(m)} {...rest}>\n {header && (\n <div className=\"agn-cal__header\">\n <span className=\"agn-cal__month\">{monthFmt.format(m)}</span>\n <span className=\"agn-cal__nav\">\n {onMonthChange && <button type=\"button\" className=\"agn-cal__nav-btn agn-focus\" aria-label={l.prev} onClick={() => shift(-1)}><Icon name=\"chevron-left\" size={16} /></button>}\n {onMonthChange && <button type=\"button\" className=\"agn-cal__nav-btn agn-cal__nav-btn--today agn-focus\" onClick={() => onMonthChange(new Date(today.getFullYear(), today.getMonth(), 1))}>{l.today}</button>}\n {onMonthChange && <button type=\"button\" className=\"agn-cal__nav-btn agn-focus\" aria-label={l.next} onClick={() => shift(1)}><Icon name=\"chevron-right\" size={16} /></button>}\n </span>\n </div>\n )}\n <div className=\"agn-cal__weekdays\" aria-hidden=\"true\">{weekdays.map((w, i) => <div key={i} className=\"agn-cal__weekday\">{w}</div>)}</div>\n <div className=\"agn-cal__grid\" style={{ '--agn-cal-weeks': weeks }}>\n {days.slice(0, weeks * 7).map((d, i) => {\n const evs = eventsOf(d);\n const shown = evs.slice(0, maxPerDay);\n const out = d.getMonth() !== m.getMonth();\n const isToday = sameDay(d, today);\n const full = d.toLocaleDateString(locale, { day: 'numeric', month: 'long' });\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: pointer target for the whole day cell; the date button inside is the keyboard path and its click bubbles here\n // biome-ignore lint/a11y/useKeyWithClickEvents: pointer target for the whole day cell; the date button inside is the keyboard path and its click bubbles here\n <div key={i} className={cx('agn-cal__day', out && 'agn-cal__day--outside', isToday && 'agn-cal__day--today', (i % 7 === 5 || i % 7 === 6) && weekStartsOn === 1 && 'agn-cal__day--weekend')} onClick={onDayClick ? () => onDayClick(d) : undefined}>\n {onDayClick ? <button type=\"button\" className={cx('agn-cal__date', 'agn-num', 'agn-focus')} aria-label={full}>{d.getDate()}</button> : <span className={cx('agn-cal__date', 'agn-num')}><span aria-hidden=\"true\">{d.getDate()}</span><span className=\"agn-sr\">{full}</span></span>}\n <div className=\"agn-cal__events\">\n {shown.map((e, j) => (\n <button key={e.id || j} type=\"button\" className={cx('agn-cal__chip', 'agn-focus-inset', 'agn-cal__chip--' + (e.tone || 'signal'))} title={e.title} onClick={(ev) => { ev.stopPropagation(); onEventClick && onEventClick(e); }}>\n {!e.allDay && <span className=\"agn-cal__chip-time agn-num\">{timeFmt.format(toDate(e.start))}</span>}<span className=\"agn-cal__chip-title\">{e.title}</span>\n </button>\n ))}\n {evs.length > shown.length && <span className=\"agn-cal__more\">+{evs.length - shown.length} {l.more}</span>}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Bars on a day or week scale with a today line: rollout plans, campaign windows, a run's steps on a time axis. Groups indent their children; milestones are diamonds.\nconst DAY = 86400000;\nconst toDate = (d) => (d instanceof Date ? d : new Date(d));\nconst startOfDay = (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate());\nexport function Gantt({ tasks = [], start, end, unit = 'day', colWidth, today = new Date(), locale = 'en', labelWidth = 200, onTaskClick, labels, className, style, ...rest }) {\n const l = { today: 'Today', progress: 'done', ...labels };\n const dates = tasks.flatMap((t) => [toDate(t.start), t.end ? toDate(t.end) : toDate(t.start)]);\n const s0 = startOfDay(start ? toDate(start) : new Date(Math.min(...dates.map((d) => d.getTime()))));\n const e0 = startOfDay(end ? toDate(end) : new Date(Math.max(...dates.map((d) => d.getTime())) + DAY));\n const unitMs = unit === 'week' ? 7 * DAY : DAY;\n const cw = colWidth || (unit === 'week' ? 72 : 32);\n const cols = Math.max(1, Math.ceil((e0 - s0) / unitMs) + (unit === 'week' ? 1 : 0));\n const x = (d) => ((startOfDay(toDate(d)) - s0) / unitMs) * cw;\n const fmtDay = new Intl.DateTimeFormat(locale, { day: 'numeric' });\n const fmtWd = new Intl.DateTimeFormat(locale, { weekday: 'narrow' });\n const fmtMonth = new Intl.DateTimeFormat(locale, { month: 'short', year: 'numeric' });\n const fmtWeek = new Intl.DateTimeFormat(locale, { day: 'numeric', month: 'short' });\n const fmtFull = new Intl.DateTimeFormat(locale, { day: 'numeric', month: 'short' });\n const heads = Array.from({ length: cols }, (_, i) => new Date(s0.getTime() + i * unitMs));\n // month bands for the upper header\n const bands = [];\n heads.forEach((d) => { const k = d.getFullYear() + '-' + d.getMonth(); const b = bands[bands.length - 1]; if (b && b.key === k) b.n += 1; else bands.push({ key: k, label: fmtMonth.format(d), n: 1 }); });\n const todayX = x(today) + (((today - startOfDay(today)) / unitMs) * cw);\n const showToday = todayX >= 0 && todayX <= cols * cw;\n return (\n <div className={cx('agn-gantt', 'agn-gantt--' + unit, className)} style={{ '--agn-gantt-label-w': labelWidth + 'px', '--agn-gantt-col': cw + 'px', ...style }} {...rest}>\n <div className=\"agn-gantt__labels\">\n <div className=\"agn-gantt__head agn-gantt__head--labels\" />\n {tasks.map((t) => (\n <div key={t.id} className={cx('agn-gantt__label', t.group && 'agn-gantt__label--group')} style={{ paddingLeft: 12 + (t.depth || 0) * 16 }} title={typeof t.title === 'string' ? t.title : undefined}>\n {t.milestone && <Icon name=\"diamond\" size={12} className=\"agn-gantt__label-icon\" />}{t.title}\n </div>\n ))}\n </div>\n <div className=\"agn-gantt__scroll\">\n <div className=\"agn-gantt__canvas\" style={{ width: cols * cw }}>\n <div className=\"agn-gantt__head\">\n <div className=\"agn-gantt__bands\">{bands.map((b) => <div key={b.key} className=\"agn-gantt__band\" style={{ width: b.n * cw }}>{b.label}</div>)}</div>\n <div className=\"agn-gantt__cols\">{heads.map((d, i) => <div key={i} className={cx('agn-gantt__col', unit === 'day' && (d.getDay() === 0 || d.getDay() === 6) && 'agn-gantt__col--weekend')}>{unit === 'day' ? <><span className=\"agn-gantt__wd\">{fmtWd.format(d)}</span><span className=\"agn-num\">{fmtDay.format(d)}</span></> : <span className=\"agn-num\">{fmtWeek.format(d)}</span>}</div>)}</div>\n </div>\n <div className=\"agn-gantt__rows\">\n {tasks.map((t) => {\n const s = toDate(t.start); const e = t.end ? toDate(t.end) : s;\n const left = x(s); const width = Math.max(cw * 0.5, x(e) - left + (t.milestone ? 0 : cw));\n const tone = t.tone || (t.group ? 'neutral' : 'signal');\n const Comp = onTaskClick ? 'button' : 'div';\n const title = (typeof t.title === 'string' ? t.title : '') + ': ' + fmtFull.format(s) + (t.end ? ' – ' + fmtFull.format(e) : '') + (t.progress != null ? ', ' + Math.round(t.progress * 100) + '% ' + l.progress : '');\n return (\n <div key={t.id} className={cx('agn-gantt__row', t.group && 'agn-gantt__row--group')}>\n {t.milestone ? (\n <Comp type={onTaskClick ? 'button' : undefined} className={cx('agn-gantt__milestone', 'agn-focus', 'agn-gantt__bar--' + tone)} style={{ left: left + cw / 2 }} title={title} aria-label={title} onClick={onTaskClick ? () => onTaskClick(t) : undefined} />\n ) : (\n <Comp type={onTaskClick ? 'button' : undefined} className={cx('agn-gantt__bar', 'agn-focus', 'agn-gantt__bar--' + tone, t.group && 'agn-gantt__bar--group')} style={{ left, width }} title={title} aria-label={title} onClick={onTaskClick ? () => onTaskClick(t) : undefined}>\n {t.progress != null && <span className=\"agn-gantt__progress\" style={{ width: Math.min(100, Math.max(0, t.progress * 100)) + '%' }} />}\n {!t.group && <span className=\"agn-gantt__bar-label\">{t.assignee || (t.progress != null ? Math.round(t.progress * 100) + '%' : '')}</span>}\n </Comp>\n )}\n </div>\n );\n })}\n {showToday && <div className=\"agn-gantt__today\" style={{ left: todayX }} aria-hidden=\"true\"><span className=\"agn-gantt__today-label\">{l.today}</span></div>}\n </div>\n </div>\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Label/value pairs for record detail panels: stacked (label above) or horizontal (label left, fixed width). 1–3 columns.\nexport function DescriptionList({ items = [], columns = 1, horizontal, labelWidth, className, style, ...rest }) {\n const list = items.map((it) => (Array.isArray(it) ? { label: it[0], value: it[1] } : it));\n return (\n <dl className={cx('agn-dl', horizontal && 'agn-dl--horizontal', 'agn-dl--cols-' + columns, className)} style={{ '--agn-dl-label-w': labelWidth, ...style }} {...rest}>\n {list.map((it, i) => (\n <div key={it.key || i} className={cx('agn-dl__item', it.span && 'agn-dl__item--span')}>\n <dt className=\"agn-dl__label\">{it.label}</dt>\n <dd className={cx('agn-dl__value', it.mono && 'agn-mono agn-num')}>{it.value == null || it.value === '' ? <span className=\"agn-dl__empty\">—</span> : it.value}</dd>\n </div>\n ))}\n </dl>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Locale-formatted money or number with tabular digits. tr-TR gives ₺1.250.000,00, en gives ₺1,250,000.00. Negative values read in bad with a sign; never colour alone.\nexport function formatAmount(value, { currency = 'TRY', locale = 'tr-TR', decimals = 2, style } = {}) {\n const n = Number(value);\n if (!Number.isFinite(n)) return '—';\n const kind = style || (currency ? 'currency' : 'decimal');\n try {\n return new Intl.NumberFormat(locale, { style: kind, currency: kind === 'currency' ? currency : undefined, currencyDisplay: 'narrowSymbol', minimumFractionDigits: decimals, maximumFractionDigits: decimals }).format(n);\n } catch {\n return new Intl.NumberFormat(locale, { minimumFractionDigits: decimals, maximumFractionDigits: decimals }).format(n);\n }\n}\nexport function Amount({ value, currency = 'TRY', locale = 'tr-TR', decimals = 2, signed, strong, muteDecimals, tone, as: Comp = 'span', className, ...rest }) {\n const n = Number(value);\n const text = formatAmount(Math.abs(n), { currency, locale, decimals });\n const neg = n < 0;\n const sign = neg ? '−' : signed && n > 0 ? '+' : '';\n const t = tone || (neg ? 'bad' : signed && n > 0 ? 'ok' : undefined);\n // split the fraction part so it can be muted: the separator is the last non-digit before the trailing digits\n let int = text, frac = '';\n if (muteDecimals && decimals > 0) { const m = text.match(/^(.*?)([.,]\\d+)(\\D*)$/); if (m) { int = m[1]; frac = m[2] + m[3]; } }\n return (\n <Comp className={cx('agn-amount', t && 'agn-amount--' + t, strong && 'agn-amount--strong', className)} {...rest}>\n {sign && <span className=\"agn-amount__sign\">{sign}</span>}{int}{frac && <span className=\"agn-amount__frac\">{frac}</span>}\n </Comp>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Code well: mono 13px, line numbers, copy button, language label, wrap toggle. A tiny tokenizer colours json, bash and js with four token colours; anything else is plain.\nconst DEFAULT_LABELS = { copy: 'Copy', copied: 'Copied', wrap: 'Wrap lines', unwrap: 'Unwrap lines' };\nconst KW = { js: /^(const|let|var|function|return|if|else|for|while|import|export|from|default|new|await|async|class|extends|try|catch|throw|typeof|null|undefined|true|false|this)$/, bash: /^(if|then|else|fi|for|do|done|in|case|esac|function|export|echo|cd|ls|cat|grep|curl|docker|git|npm|pnpm|npx|node|python3?|sudo|set|while|return|exit)$/, json: /^(true|false|null)$/ };\n// returns [[type, text], ...] for one line; types: str num kw cmt key op plain\nexport function tokenize(line, lang) {\n const out = [];\n let i = 0;\n const push = (t, s) => { if (!s) return; const last = out[out.length - 1]; if (last && last[0] === t && t === 'plain') last[1] += s; else out.push([t, s]); };\n while (i < line.length) {\n const ch = line[i];\n if ((lang === 'bash' && ch === '#') || (lang === 'js' && line.startsWith('//', i))) { push('cmt', line.slice(i)); break; }\n if (ch === '\"' || ch === \"'\" || (lang === 'js' && ch === '`')) {\n let j = i + 1; while (j < line.length && line[j] !== ch) { if (line[j] === '\\\\') j++; j++; }\n const s = line.slice(i, j + 1);\n // a json key: string followed by a colon\n const rest = line.slice(j + 1);\n push(lang === 'json' && /^\\s*:/.test(rest) ? 'key' : 'str', s); i = j + 1; continue;\n }\n if (/\\d/.test(ch) && (i === 0 || !/[\\w$]/.test(line[i - 1]))) { let j = i; while (j < line.length && /[\\d._eE+-]/.test(line[j])) j++; push('num', line.slice(i, j)); i = j; continue; }\n if (lang === 'bash' && ch === '$') { let j = i + 1; if (line[j] === '{') { while (j < line.length && line[j] !== '}') j++; j++; } else while (j < line.length && /[\\w]/.test(line[j])) j++; push('kw', line.slice(i, j)); i = j; continue; }\n if (/[A-Za-z_$]/.test(ch)) { let j = i; while (j < line.length && /[\\w$-]/.test(line[j])) j++; const w = line.slice(i, j); push(KW[lang] && KW[lang].test(w) ? 'kw' : lang === 'bash' && w.startsWith('-') ? 'op' : 'plain', w); i = j; continue; }\n if (lang === 'bash' && ch === '-' && /[A-Za-z-]/.test(line[i + 1] || '')) { let j = i; while (j < line.length && /[\\w-]/.test(line[j])) j++; push('op', line.slice(i, j)); i = j; continue; }\n push('plain', ch); i++;\n }\n return out;\n}\nexport function CodeBlock({ code = '', language = 'text', title, lineNumbers = true, copy = true, wrap: wrapProp, wrapToggle = true, maxHeight, highlight = [], startLine = 1, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [wrap, setWrap] = useState(!!wrapProp);\n const [copied, setCopied] = useState(false);\n const lines = String(code).replace(/\\n$/, '').split('\\n');\n const lang = ['json', 'bash', 'js', 'sh', 'javascript', 'typescript', 'ts'].includes(language) ? ({ sh: 'bash', javascript: 'js', typescript: 'js', ts: 'js' }[language] || language) : null;\n const doCopy = () => { try { navigator.clipboard.writeText(String(code)).then(() => { setCopied(true); setTimeout(() => setCopied(false), 1500); }); } catch { /* clipboard unavailable */ } };\n return (\n <div className={cx('agn-code', wrap && 'agn-code--wrap', !lineNumbers && 'agn-code--plain', className)} {...rest}>\n <div className=\"agn-code__bar\">\n <span className=\"agn-code__title\">{title || language}</span>\n {title && language !== 'text' && <span className=\"agn-code__lang\">{language}</span>}\n <span className=\"agn-code__tools\">\n {wrapToggle && <button type=\"button\" className={cx('agn-code__tool', 'agn-focus', wrap && 'agn-code__tool--on')} aria-pressed={wrap} title={wrap ? l.unwrap : l.wrap} aria-label={wrap ? l.unwrap : l.wrap} onClick={() => setWrap(!wrap)}><Icon name=\"wrap-text\" size={14} /></button>}\n {copy && <button type=\"button\" className=\"agn-code__tool agn-focus\" onClick={doCopy} aria-live=\"polite\"><Icon name={copied ? 'check' : 'copy'} size={14} />{copied ? l.copied : l.copy}</button>}\n </span>\n </div>\n {/* biome-ignore lint/a11y/noNoninteractiveTabindex: scrollable region: tabIndex=0 lets keyboard users scroll it (WCAG 2.1.1) */}\n <pre className=\"agn-code__pre\" style={{ maxHeight }} tabIndex={0}>\n <code className=\"agn-code__code\">\n {lines.map((ln, i) => (\n <span key={i} className={cx('agn-code__line', highlight.includes(i + startLine) && 'agn-code__line--hl')}>\n {lineNumbers && <span className=\"agn-code__ln\" aria-hidden=\"true\">{i + startLine}</span>}\n <span className=\"agn-code__text\">{lang ? tokenize(ln, lang).map(([t, s], j) => (t === 'plain' ? s : <span key={j} className={'agn-code__' + t}>{s}</span>)) : ln}{'\\n'}</span>\n </span>\n ))}\n </code>\n </pre>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Collapsible JSON view for run inputs and outputs, tool calls and webhook payloads. Keys in text, strings in ok, numbers in warn, booleans and null in link — the CodeBlock colours.\nconst DEFAULT_LABELS = { items: 'items', keys: 'keys', expand: 'Expand', collapse: 'Collapse', copy: 'Copy', copied: 'Copied' };\nconst isObj = (v) => v !== null && typeof v === 'object';\nfunction Node({ k, value, depth, path, open, toggle, l, last }) {\n const obj = isObj(value);\n const arr = Array.isArray(value);\n const isOpen = open.has(path);\n const entries = obj ? (arr ? value.map((v, i) => [i, v]) : Object.entries(value)) : [];\n const count = entries.length;\n const prim = !obj ? <span className={cx('agn-json__v', 'agn-json__v--' + (value === null ? 'null' : typeof value))}>{typeof value === 'string' ? JSON.stringify(value) : String(value)}</span> : null;\n return (\n <li className=\"agn-json__node\">\n <div className=\"agn-json__row\" style={{ paddingLeft: depth * 16 }}>\n {obj && count > 0 ? <button type=\"button\" className=\"agn-json__toggle agn-focus-inset\" aria-expanded={isOpen} aria-label={(isOpen ? l.collapse : l.expand) + ' ' + path} onClick={() => toggle(path)}><Icon name=\"chevron-right\" size={12} className={cx('agn-json__chev', isOpen && 'agn-json__chev--open')} /></button> : <span className=\"agn-json__toggle agn-json__toggle--leaf\" />}\n {k != null && <><span className={cx('agn-json__k', typeof k === 'number' && 'agn-json__k--index')}>{typeof k === 'number' ? k : JSON.stringify(k)}</span><span className=\"agn-json__p\">: </span></>}\n {obj ? (\n <>\n <span className=\"agn-json__p\">{arr ? '[' : '{'}</span>\n {(!isOpen || count === 0) && <span className=\"agn-json__hint\">{count === 0 ? '' : count + ' ' + (arr ? l.items : l.keys)}</span>}\n {(!isOpen || count === 0) && <span className=\"agn-json__p\">{arr ? ']' : '}'}{!last ? ',' : ''}</span>}\n </>\n ) : <>{prim}<span className=\"agn-json__p\">{!last ? ',' : ''}</span></>}\n </div>\n {obj && isOpen && count > 0 && (\n <>\n <ul className=\"agn-json__list\">{entries.map(([ck, cv], i) => <Node key={ck} k={ck} value={cv} depth={depth + 1} path={path + '.' + ck} open={open} toggle={toggle} l={l} last={i === count - 1} />)}</ul>\n <div className=\"agn-json__row\" style={{ paddingLeft: depth * 16 }}><span className=\"agn-json__toggle agn-json__toggle--leaf\" /><span className=\"agn-json__p\">{arr ? ']' : '}'}{!last ? ',' : ''}</span></div>\n </>\n )}\n </li>\n );\n}\nfunction collect(value, depth, maxDepth, path, out) {\n if (!isObj(value) || depth > maxDepth) return out;\n out.add(path);\n (Array.isArray(value) ? value.map((v, i) => [i, v]) : Object.entries(value)).forEach(([k, v]) => collect(v, depth + 1, maxDepth, path + '.' + k, out));\n return out;\n}\nexport function JsonTree({ data, defaultDepth = 2, title, copy = true, maxHeight, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [open, setOpen] = useState(() => collect(data, 1, defaultDepth, '$', new Set()));\n const [copied, setCopied] = useState(false);\n const toggle = (p) => { const n = new Set(open); n.has(p) ? n.delete(p) : n.add(p); setOpen(n); };\n const doCopy = () => { try { navigator.clipboard.writeText(JSON.stringify(data, null, 2)).then(() => { setCopied(true); setTimeout(() => setCopied(false), 1500); }); } catch { /* no clipboard */ } };\n return (\n <div className={cx('agn-json', className)} {...rest}>\n {(title || copy) && <div className=\"agn-code__bar\"><span className=\"agn-code__title\">{title || 'json'}</span><span className=\"agn-code__tools\">{copy && <button type=\"button\" className=\"agn-code__tool agn-focus\" onClick={doCopy}><Icon name={copied ? 'check' : 'copy'} size={14} />{copied ? l.copied : l.copy}</button>}</span></div>}\n <div className=\"agn-json__body\" style={{ maxHeight }}>\n <ul className=\"agn-json__list agn-json__list--root\"><Node value={data} depth={0} path=\"$\" open={open} toggle={toggle} l={l} last /></ul>\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Unified or split diff of two texts: prompt versions, agent configs, knowledge-base edits. Added rows on ok-soft, removed on bad-soft, each with a marker and line numbers — never colour alone.\nconst DEFAULT_LABELS = { added: 'added', removed: 'removed', before: 'Before', after: 'After', unchanged: 'unchanged lines' };\n// Myers-free LCS diff: fine for the few hundred lines a config or prompt has.\nexport function diffLines(before = '', after = '') {\n const a = String(before).replace(/\\n$/, '').split('\\n'), b = String(after).replace(/\\n$/, '').split('\\n');\n const n = a.length, m = b.length;\n const dp = Array.from({ length: n + 1 }, () => new Uint16Array(m + 1));\n for (let i = n - 1; i >= 0; i--) for (let j = m - 1; j >= 0; j--) dp[i][j] = a[i] === b[j] ? dp[i + 1][j + 1] + 1 : Math.max(dp[i + 1][j], dp[i][j + 1]);\n const out = []; let i = 0, j = 0;\n while (i < n && j < m) {\n if (a[i] === b[j]) { out.push({ type: 'ctx', text: a[i], a: i + 1, b: j + 1 }); i++; j++; }\n else if (dp[i + 1][j] >= dp[i][j + 1]) { out.push({ type: 'del', text: a[i], a: i + 1 }); i++; }\n else { out.push({ type: 'add', text: b[j], b: j + 1 }); j++; }\n }\n while (i < n) { out.push({ type: 'del', text: a[i], a: i + 1 }); i++; }\n while (j < m) { out.push({ type: 'add', text: b[j], b: j + 1 }); j++; }\n return out;\n}\n// collapse long runs of context into a fold marker, keeping `context` lines around each change\nfunction fold(lines, context) {\n if (context == null) return lines;\n const keep = new Array(lines.length).fill(false);\n lines.forEach((ln, i) => { if (ln.type !== 'ctx') for (let k = Math.max(0, i - context); k <= Math.min(lines.length - 1, i + context); k++) keep[k] = true; });\n const out = []; let hidden = 0;\n lines.forEach((ln, i) => { if (keep[i]) { if (hidden) { out.push({ type: 'fold', count: hidden }); hidden = 0; } out.push(ln); } else hidden++; });\n if (hidden) out.push({ type: 'fold', count: hidden });\n return out;\n}\n// word-level diff of one removed/added pair: tokens are words, spaces and punctuation; changed tokens come back flagged\nfunction wordDiff(a, b) {\n const ta = String(a).match(/\\s+|[\\p{L}\\p{N}_]+|[^\\s\\p{L}\\p{N}_]/gu) || [], tb = String(b).match(/\\s+|[\\p{L}\\p{N}_]+|[^\\s\\p{L}\\p{N}_]/gu) || [];\n if (ta.length * tb.length > 250000) return null;\n const n = ta.length, m = tb.length;\n const dp = Array.from({ length: n + 1 }, () => new Uint16Array(m + 1));\n for (let i = n - 1; i >= 0; i--) for (let j = m - 1; j >= 0; j--) dp[i][j] = ta[i] === tb[j] ? dp[i + 1][j + 1] + 1 : Math.max(dp[i + 1][j], dp[i][j + 1]);\n const A = [], B = []; let i = 0, j = 0;\n while (i < n && j < m) { if (ta[i] === tb[j]) { A.push({ t: ta[i] }); B.push({ t: tb[j] }); i++; j++; } else if (dp[i + 1][j] >= dp[i][j + 1]) A.push({ t: ta[i++], ch: true }); else B.push({ t: tb[j++], ch: true }); }\n while (i < n) A.push({ t: ta[i++], ch: true });\n while (j < m) B.push({ t: tb[j++], ch: true });\n return [A, B];\n}\n// pair each run of removed lines with the run of added lines that follows it, line by line\nfunction pairWords(shown) {\n const map = new Map();\n let i = 0;\n while (i < shown.length) {\n if (shown[i].type !== 'del') { i++; continue; }\n const d = []; while (i < shown.length && shown[i].type === 'del') d.push(shown[i++]);\n const a = []; while (i < shown.length && shown[i].type === 'add') a.push(shown[i++]);\n for (let k = 0; k < Math.min(d.length, a.length); k++) { const w = wordDiff(d[k].text, a[k].text); if (w) { map.set(d[k], w[0]); map.set(a[k], w[1]); } }\n }\n return map;\n}\nexport function DiffView({ before, after, lines, mode = 'unified', title, context = 3, maxHeight, words, wrap, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const all = lines || diffLines(before, after);\n const adds = all.filter((x) => x.type === 'add').length, dels = all.filter((x) => x.type === 'del').length;\n const shown = fold(all, context);\n const wmap = words ? pairWords(shown) : null;\n const textOf = (ln) => { const seg = wmap && wmap.get(ln); return seg ? seg.map((s, k) => (s.ch && s.t.trim() ? <mark key={k} className=\"agn-diff__word\">{s.t}</mark> : s.t)) : ln.text; };\n const Row = ({ ln, side }) => {\n if (ln.type === 'fold') return <tr className=\"agn-diff__fold\"><td colSpan={side ? 2 : 3}>··· {ln.count} {l.unchanged}</td></tr>;\n const t = ln.type;\n return (\n <tr className={cx('agn-diff__row', 'agn-diff__row--' + t)}>\n {(!side || side === 'a') && <td className=\"agn-diff__ln agn-num\">{ln.a || ''}</td>}\n {(!side || side === 'b') && <td className=\"agn-diff__ln agn-num\">{ln.b || ''}</td>}\n <td className=\"agn-diff__code\"><span className=\"agn-diff__mark\"><span aria-hidden=\"true\">{t === 'add' ? '+' : t === 'del' ? '−' : ' '}</span>{(t === 'add' || t === 'del') && <span className=\"agn-sr\">{t === 'add' ? l.added : l.removed}</span>}</span><span className=\"agn-diff__text\">{textOf(ln)}</span></td>\n </tr>\n );\n };\n let body;\n if (mode === 'split') {\n // pair deletions with the additions that follow them\n const left = [], right = [];\n let i = 0;\n while (i < shown.length) {\n const ln = shown[i];\n if (ln.type === 'ctx' || ln.type === 'fold') { left.push(ln); right.push(ln); i++; continue; }\n const dels2 = []; const adds2 = [];\n while (i < shown.length && shown[i].type === 'del') dels2.push(shown[i++]);\n while (i < shown.length && shown[i].type === 'add') adds2.push(shown[i++]);\n const h = Math.max(dels2.length, adds2.length);\n for (let k = 0; k < h; k++) { left.push(dels2[k] || { type: 'pad' }); right.push(adds2[k] || { type: 'pad' }); }\n }\n const Side = ({ rows, side, head }) => (\n <div className=\"agn-diff__side\"><table className=\"agn-diff__table\"><caption className=\"agn-diff__caption\">{head}</caption><tbody>{rows.map((ln, k) => ln.type === 'pad' ? <tr key={k} className=\"agn-diff__row agn-diff__row--pad\"><td className=\"agn-diff__ln\" /><td className=\"agn-diff__code\" /></tr> : <Row key={k} ln={ln} side={side} />)}</tbody></table></div>\n );\n const Cell = ({ ln, side }) => {\n if (ln.type === 'pad') return <><td className=\"agn-diff__ln agn-diff__cell--pad\" /><td className=\"agn-diff__code agn-diff__cell--pad\" /></>;\n const t = ln.type;\n return <><td className={cx('agn-diff__ln', 'agn-num', 'agn-diff__cell--' + t)}>{(side === 'a' ? ln.a : ln.b) || ''}</td><td className={cx('agn-diff__code', 'agn-diff__cell--' + t)}><span className=\"agn-diff__mark\"><span aria-hidden=\"true\">{t === 'add' ? '+' : t === 'del' ? '−' : ' '}</span>{(t === 'add' || t === 'del') && <span className=\"agn-sr\">{t === 'add' ? l.added : l.removed}</span>}</span><span className=\"agn-diff__text\">{textOf(ln)}</span></td></>;\n };\n // wrap: one table with both sides per row, so wrapped lines stay aligned\n body = wrap\n ? <table className=\"agn-diff__table agn-diff__table--paired\"><colgroup><col className=\"agn-diff__col-ln\" /><col /><col className=\"agn-diff__col-ln\" /><col /></colgroup><thead><tr><th colSpan={2} className=\"agn-diff__caption\">{l.before}</th><th colSpan={2} className=\"agn-diff__caption agn-diff__caption--b\">{l.after}</th></tr></thead><tbody>{left.map((ln, k) => ln.type === 'fold' ? <tr key={k} className=\"agn-diff__fold\"><td colSpan={4}>··· {ln.count} {l.unchanged}</td></tr> : <tr key={k} className=\"agn-diff__row\"><Cell ln={ln} side=\"a\" /><Cell ln={right[k]} side=\"b\" /></tr>)}</tbody></table>\n : <div className=\"agn-diff__split\"><Side rows={left} side=\"a\" head={l.before} /><Side rows={right} side=\"b\" head={l.after} /></div>;\n } else {\n body = <table className=\"agn-diff__table\"><tbody>{shown.map((ln, k) => <Row key={k} ln={ln} />)}</tbody></table>;\n }\n return (\n <div className={cx('agn-diff', 'agn-diff--' + mode, wrap && 'agn-diff--wrap', className)} {...rest}>\n <div className=\"agn-code__bar\">\n <span className=\"agn-code__title\">{title || 'diff'}</span>\n <span className=\"agn-diff__stats\"><span className=\"agn-diff__stat agn-diff__stat--add agn-num\">+{adds} {l.added}</span><span className=\"agn-diff__stat agn-diff__stat--del agn-num\">−{dels} {l.removed}</span></span>\n </div>\n {/* biome-ignore lint/a11y/noNoninteractiveTabindex: scrollable region: tabIndex=0 lets keyboard users scroll it (WCAG 2.1.1) */}\n <div className=\"agn-diff__body\" style={{ maxHeight }} tabIndex={0}>{body}</div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Grid of cells coloured by a threshold scale on the ok/warn/bad ramps (per-agent success by day) or, with scale=\"sequential\", by a signal ramp (load, volume). Values 0–1; thresholds decide the ramp, the value decides the step. Every cell carries its number in a title and, when wide enough, as text.\nconst STEPS = {\n ok: ['var(--ok-100)', 'var(--ok-200)', 'var(--ok-400)', 'var(--ok-600)'],\n warn: ['var(--warn-200)', 'var(--warn-300)', 'var(--warn-400)'],\n bad: ['var(--bad-200)', 'var(--bad-300)', 'var(--bad-500)'],\n};\nexport function heatmapColor(v, { ok = 0.97, warn = 0.9 } = {}) {\n if (v == null || Number.isNaN(v)) return { bg: 'var(--panel-2)', ink: 'var(--mute)', tone: 'none' };\n if (v >= ok) { const t = (v - ok) / Math.max(1 - ok, 1e-6); const i = Math.min(3, Math.floor(t * 4)); return { bg: STEPS.ok[i], ink: i >= 3 ? 'var(--neutral-50)' : 'var(--neutral-950)', tone: 'ok' }; }\n if (v >= warn) { const t = (v - warn) / Math.max(ok - warn, 1e-6); const i = Math.min(2, Math.floor(t * 3)); return { bg: STEPS.warn[2 - i], ink: 'var(--neutral-950)', tone: 'warn' }; }\n const t = v / Math.max(warn, 1e-6); const i = Math.min(2, Math.floor((1 - t) * 3)); return { bg: STEPS.bad[i], ink: i >= 2 ? 'var(--neutral-50)' : 'var(--neutral-950)', tone: 'bad' };\n}\n// Sequential scale on the signal ramp for load and volume: five steps from signal-100 to signal-700, dark ink on the light steps.\nconst SEQ = ['var(--signal-100)', 'var(--signal-200)', 'var(--signal-300)', 'var(--signal-500)', 'var(--signal-700)'];\nexport function heatmapSequentialColor(v, lo = 0, hi = 1) {\n if (v == null || Number.isNaN(v)) return { bg: 'var(--panel-2)', ink: 'var(--mute)', tone: 'none' };\n const t = hi > lo ? Math.max(0, Math.min(1, (v - lo) / (hi - lo))) : 1;\n const i = Math.min(SEQ.length - 1, Math.floor(t * SEQ.length));\n return { bg: SEQ[i], ink: i >= 4 ? 'var(--neutral-50)' : 'var(--neutral-950)', tone: 'seq', step: i };\n}\nconst pct = (v) => (v == null ? '—' : Math.round(v * 100) + '%');\nexport function Heatmap({ rows = [], columns = [], values = [], thresholds, scale = 'threshold', domain, format, showValues, cellSize = 28, legend = true, labels, onCellClick, className, ...rest }) {\n const l = { ok: 'On target', warn: 'Below target', bad: 'Failing', none: 'No runs', seq: '', low: 'Low', high: 'High', ...labels };\n const th = { ok: 0.97, warn: 0.9, ...thresholds };\n const seq = scale === 'sequential';\n const fmt = format || (seq ? (v) => (v == null ? '—' : Number(v).toLocaleString()) : pct);\n const flat = values.flat().filter((v) => v != null && !Number.isNaN(v));\n const lo = domain ? domain[0] : seq ? Math.min(0, ...flat) : 0;\n const hi = domain ? domain[1] : seq ? Math.max(lo + 1e-9, ...flat) : 1;\n return (\n <div className={cx('agn-heatmap', className)} style={{ '--agn-cell': cellSize + 'px' }} {...rest}>\n <table className=\"agn-heatmap__table\">\n <thead><tr><th className=\"agn-heatmap__corner\" /> {columns.map((c, i) => <th key={i} className=\"agn-heatmap__col\" scope=\"col\"><span>{typeof c === 'string' ? c : c.label}</span></th>)}</tr></thead>\n <tbody>\n {rows.map((r, ri) => (\n <tr key={ri}>\n <th className=\"agn-heatmap__row\" scope=\"row\">{typeof r === 'string' ? r : r.label}</th>\n {columns.map((c, ci) => {\n const v = values[ri] ? values[ri][ci] : null;\n const col = seq ? heatmapSequentialColor(v, lo, hi) : heatmapColor(v, th);\n const label = (typeof r === 'string' ? r : r.label) + ' · ' + (typeof c === 'string' ? c : c.label) + ': ' + fmt(v) + (l[col.tone] ? ' (' + l[col.tone] + ')' : '');\n return (\n <td key={ci} className=\"agn-heatmap__td\">\n <button type=\"button\" className={cx('agn-heatmap__cell', 'agn-focus-inset', 'agn-heatmap__cell--' + col.tone)} style={{ background: col.bg, color: col.ink }} title={label} aria-label={label} onClick={onCellClick ? () => onCellClick({ row: r, column: c, value: v, rowIndex: ri, columnIndex: ci }) : undefined} tabIndex={onCellClick ? 0 : -1}>\n {showValues && v != null && <span className=\"agn-num\">{fmt(v)}</span>}\n </button>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n {legend && seq && (\n <div className=\"agn-heatmap__legend agn-heatmap__legend--seq\">\n <span className=\"agn-heatmap__key\">{l.low} <span className=\"agn-num\">{fmt(lo)}</span></span>\n <span className=\"agn-heatmap__ramp\" aria-hidden=\"true\">{SEQ.map((c, i) => <i key={i} style={{ background: c }} />)}</span>\n <span className=\"agn-heatmap__key\"><span className=\"agn-num\">{fmt(hi)}</span> {l.high}</span>\n <span className=\"agn-heatmap__key\"><i style={{ background: 'var(--panel-2)', borderColor: 'var(--line-2)' }} />{l.none}</span>\n </div>\n )}\n {legend && !seq && (\n <div className=\"agn-heatmap__legend\">\n <span className=\"agn-heatmap__key\"><i style={{ background: STEPS.bad[1] }} />{l.bad} <span className=\"agn-num\">< {Math.round(th.warn * 100)}%</span></span>\n <span className=\"agn-heatmap__key\"><i style={{ background: STEPS.warn[1] }} />{l.warn}</span>\n <span className=\"agn-heatmap__key\"><i style={{ background: STEPS.ok[2] }} />{l.ok} <span className=\"agn-num\">≥ {Math.round(th.ok * 100)}%</span></span>\n <span className=\"agn-heatmap__key\"><i style={{ background: 'var(--panel-2)', borderColor: 'var(--line-2)' }} />{l.none}</span>\n </div>\n )}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\n// Flat card: 1px line, radius-lg, no shadow. A 44px header with an optional icon, count and actions; body; a centred \"View all\" footer. A panel only for an object that is really separate.\nconst DEFAULT_LABELS = { viewAll: 'View all' };\nexport function Card({ title, icon, count, actions, footer, viewAll, viewAllHref, padding = 'md', sunken, interactive, selected, labels, as: Comp = 'section', children, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const hasHeader = title != null || icon || count != null || actions;\n const foot = footer || (viewAll || viewAllHref ? <Button variant=\"link\" size=\"sm\" as={viewAllHref ? 'a' : 'button'} href={viewAllHref} onClick={typeof viewAll === 'function' ? viewAll : undefined} iconRight=\"arrow-right\">{typeof viewAll === 'string' ? viewAll : l.viewAll}</Button> : null);\n return (\n <Comp className={cx('agn-card', sunken && 'agn-card--sunken', interactive && 'agn-card--interactive', selected && 'agn-card--selected', 'agn-card--pad-' + padding, className)} {...rest}>\n {hasHeader && (\n <header className=\"agn-card__header\">\n {icon && <Icon name={icon} size={16} className=\"agn-card__icon\" />}\n {title != null && <h3 className=\"agn-card__title\">{title}</h3>}\n {count != null && <span className=\"agn-card__count agn-num\">{count}</span>}\n {actions && <div className=\"agn-card__actions\">{actions}</div>}\n </header>\n )}\n <div className=\"agn-card__body\">{children}</div>\n {foot && <footer className=\"agn-card__footer\">{foot}</footer>}\n </Comp>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// 32px row above a list or board: ghost buttons, a segmented control, a search field; sticky over the scroll. Title and count on the left, actions on the right.\nconst DEFAULT_LABELS = { search: 'Search', clear: 'Clear search' };\nexport function Toolbar({ title, count, search, left, right, sticky, bare, labels, children, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n return (\n <div className={cx('agn-toolbar', sticky && 'agn-toolbar--sticky', bare && 'agn-toolbar--bare', className)} role=\"toolbar\" aria-label={typeof title === 'string' ? title : undefined} {...rest}>\n {(title != null || count != null) && <div className=\"agn-toolbar__title\">{title}{count != null && <span className=\"agn-toolbar__count agn-num\">{count}</span>}</div>}\n {search && (\n <label className=\"agn-toolbar__search\">\n <Icon name=\"search\" size={14} className=\"agn-toolbar__search-icon\" />\n <span className=\"agn-sr\">{search.label || l.search}</span>\n <input type=\"search\" className=\"agn-toolbar__input\" placeholder={search.placeholder || l.search} value={search.value} defaultValue={search.defaultValue} onChange={search.onChange ? (e) => search.onChange(e.target.value, e) : undefined} onKeyDown={search.onSubmit ? (e) => { if (e.key === 'Enter') search.onSubmit(e.target.value); } : undefined} />\n {search.value && search.onChange && <button type=\"button\" className=\"agn-toolbar__clear agn-focus-inset\" aria-label={l.clear} onClick={() => search.onChange('')}><Icon name=\"x\" size={12} /></button>}\n </label>\n )}\n {left && <div className=\"agn-toolbar__left\">{left}</div>}\n {children && <div className=\"agn-toolbar__main\">{children}</div>}\n {right && <div className=\"agn-toolbar__right\">{right}</div>}\n </div>\n );\n}\n// Vertical hairline between toolbar groups.\nexport function ToolbarSeparator({ className, ...rest }) {\n // biome-ignore lint/a11y/useFocusableInteractive: static, non-focusable separator; aria-valuenow and focusability are only required of a focusable (splitter) separator\n // biome-ignore lint/a11y/useAriaPropsForRole: static, non-focusable separator; aria-valuenow and focusability are only required of a focusable (splitter) separator\n return <span className={cx('agn-toolbar__sep', className)} role=\"separator\" aria-orientation=\"vertical\" {...rest} />;\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { AginiesMark } from '../core/AginiesMark.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { SidePanel } from '../feedback/SidePanel.jsx';\nimport { breakpointFor, atLeast, useOverlayFocus } from './responsive.js';\n// The console frame: optional GlobalHeader on top, VerticalNavigation on the left, a scrolling main area with the console gutter, an optional side panel on the right. Pages inside start with a PageHeader.\n// It measures its own width (not the window's): ≥ 1280 sidebar docked · 1024–1279 sidebar on its 56px rail · < 1024 sidebar is a drawer and the side panel a sheet, both opened from a 48px page bar · < 768 the gutter drops to 16px.\n\nexport const PageLayoutContext = React.createContext(null);\n// The enclosing PageLayout's state: { bp, sidebar: 'docked'|'rail'|'overlay'|null, panel: 'docked'|'overlay'|null, railExpanded, setRailExpanded, sidebarOpen, openSidebar, closeSidebar, panelOpen, openPanel, closePanel }. null outside a PageLayout.\nexport function usePageLayout() { return React.useContext(PageLayoutContext); }\n\nconst WIDTHS = { reading: 'var(--content-reading)', default: 'var(--content-max)', wide: 'var(--content-wide)', full: 'none' };\nconst DEFAULT_LABELS = { openNav: 'Open navigation', closeNav: 'Close navigation', openPanel: 'Show details', closePanel: 'Hide details', navigation: 'Navigation', details: 'Details' };\n\nconst useIso = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\nfunction useControllable(value, onChange, initial) {\n const [own, setOwn] = React.useState(initial);\n const controlled = value !== undefined;\n const v = controlled ? value : own;\n const set = React.useCallback((n) => { if (!controlled) setOwn(n); if (onChange) onChange(n); }, [controlled, onChange]);\n return [v, set];\n}\n\nexport function PageLayout({ header, navigation, sidePanel, sidePanelWidth, width = 'default', maxWidth, flush, sidebarMode = 'auto', panelMode = 'auto', sidebarOpen: sidebarOpenProp, onSidebarOpenChange, panelOpen: panelOpenProp, onPanelOpenChange, bar, labels, as: Comp = 'div', children, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const ref = React.useRef(null);\n const navRef = React.useRef(null);\n const panelRef = React.useRef(null);\n const [bp, setBp] = React.useState(null);\n useIso(() => {\n const el = ref.current;\n if (!el) return undefined;\n // offsetWidth is the layout width: a page scaled into a preview frame still reads its real width.\n const read = () => { const b = breakpointFor(el.offsetWidth); setBp((p) => (p === b ? p : b)); };\n read();\n if (typeof ResizeObserver === 'undefined') return undefined;\n const ro = new ResizeObserver(read);\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n // Until measured, behave as the design width (docked) so a server render or a first paint at 1440 never flashes.\n const b = bp || 'xl';\n const sidebar = !navigation ? null : sidebarMode !== 'auto' ? sidebarMode : atLeast(b, 'xl') ? 'docked' : atLeast(b, 'lg') ? 'rail' : 'overlay';\n const panel = !sidePanel ? null : panelMode !== 'auto' ? panelMode : atLeast(b, 'lg') ? 'docked' : 'overlay';\n const narrow = !atLeast(b, 'md');\n\n const [railExpanded, setRailExpanded] = React.useState(false);\n React.useEffect(() => { if (sidebar !== 'rail') setRailExpanded(false); }, [sidebar]);\n const [sidebarOpen, setSidebarOpen] = useControllable(sidebarOpenProp, onSidebarOpenChange, false);\n const [panelOpen, setPanelOpen] = useControllable(panelOpenProp, onPanelOpenChange, false);\n // A panel that appears while the page is narrow (a row was selected) opens as a sheet.\n const hadPanel = React.useRef(!!sidePanel);\n React.useEffect(() => { if (sidePanel && !hadPanel.current && panel === 'overlay') setPanelOpen(true); hadPanel.current = !!sidePanel; }, [sidePanel, panel, setPanelOpen]);\n\n const drawerOpen = sidebar === 'overlay' && !!sidebarOpen;\n const sheetOpen = panel === 'overlay' && !!panelOpen;\n const closeSidebar = React.useCallback(() => setSidebarOpen(false), [setSidebarOpen]);\n const closePanel = React.useCallback(() => setPanelOpen(false), [setPanelOpen]);\n useOverlayFocus(navRef, drawerOpen, closeSidebar);\n useOverlayFocus(panelRef, sheetOpen, closePanel);\n\n const ctx = React.useMemo(() => ({\n bp: b, sidebar, panel, railExpanded, setRailExpanded,\n sidebarOpen: drawerOpen, openSidebar: () => setSidebarOpen(true), closeSidebar,\n panelOpen: sheetOpen, openPanel: () => setPanelOpen(true), closePanel\n }), [b, sidebar, panel, railExpanded, drawerOpen, sheetOpen, setSidebarOpen, setPanelOpen, closeSidebar, closePanel]);\n\n // A SidePanel passed without a mode sits in the frame (docked); the frame supplies the sheet, scrim and focus handling below 1024.\n const panelNode = React.isValidElement(sidePanel) && sidePanel.type === SidePanel && sidePanel.props.mode == null ? React.cloneElement(sidePanel, { mode: 'docked' }) : sidePanel;\n const showBar = bar !== false && (sidebar === 'overlay' || panel === 'overlay');\n const max = maxWidth != null ? (typeof maxWidth === 'number' ? maxWidth + 'px' : maxWidth) : WIDTHS[width] || WIDTHS.default;\n\n return (\n <PageLayoutContext.Provider value={ctx}>\n <Comp ref={ref}\n className={cx('agn-page', header && 'agn-page--with-header', navigation && 'agn-page--with-nav', sidePanel && 'agn-page--with-panel', flush && 'agn-page--flush', narrow && 'agn-page--narrow', className)}\n data-bp={bp || undefined} data-sidebar={sidebar || undefined} data-panel={panel || undefined}\n style={{ '--agn-page-max': max, '--agn-page-panel-w': typeof sidePanelWidth === 'number' ? sidePanelWidth + 'px' : sidePanelWidth, ...style }} {...rest}>\n {header && <div className=\"agn-page__header\">{header}</div>}\n {showBar && (\n <div className=\"agn-page__bar\">\n {sidebar === 'overlay' && <ButtonIcon icon=\"menu\" size=\"sm\" label={L.openNav} aria-expanded={drawerOpen} onClick={() => setSidebarOpen(!sidebarOpen)} />}\n <span className=\"agn-page__bar-main\">{bar != null && bar !== true ? bar : <AginiesMark size={20} />}</span>\n {panel === 'overlay' && <ButtonIcon icon={sheetOpen ? 'panel-right-close' : 'panel-right-open'} size=\"sm\" label={sheetOpen ? L.closePanel : L.openPanel} aria-expanded={sheetOpen} onClick={() => setPanelOpen(!panelOpen)} />}\n </div>\n )}\n <div className=\"agn-page__body\">\n {navigation && (\n <div ref={navRef} className={cx('agn-page__nav', sidebar === 'overlay' && 'agn-page__nav--drawer', drawerOpen && 'agn-page__nav--open')}\n tabIndex={sidebar === 'overlay' ? -1 : undefined} role={drawerOpen ? 'dialog' : undefined} aria-modal={drawerOpen || undefined} aria-label={drawerOpen ? L.navigation : undefined}>\n {navigation}\n </div>\n )}\n <main className=\"agn-page__main\">\n <div className=\"agn-page__content\">{children}</div>\n </main>\n {sidePanel && (\n <aside ref={panelRef} className={cx('agn-page__panel', panel === 'overlay' && 'agn-page__panel--sheet', sheetOpen && 'agn-page__panel--open')}\n tabIndex={panel === 'overlay' ? -1 : undefined} role={sheetOpen ? 'dialog' : undefined} aria-modal={sheetOpen || undefined} aria-label={sheetOpen ? L.details : undefined}>\n {panelNode}\n </aside>\n )}\n {(drawerOpen || sheetOpen) && <div className=\"agn-page__scrim\" aria-hidden=\"true\" onClick={() => { closeSidebar(); closePanel(); }} />}\n </div>\n </Comp>\n </PageLayoutContext.Provider>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { useOverlayFocus } from '../layout/responsive.js';\n// Right-docked panel (inspector, artifact, conversation; md 288 · lg 360 or any numeric width): header with eyebrow, title and close; tabs slot; scrolling body; footer. docked sits in the layout; overlay is a modal sheet from the right over a scrim, with focus moved in, Tab kept inside, Esc and a scrim click closing it, and focus restored on close.\nexport function SidePanel({ open = true, onClose, title, eyebrow, subtitle, tabs, actions, footer, size = 'md', width, mode = 'overlay', scrim = true, children, labels, className, style, ...rest }) {\n const L = { close: 'Close', ...labels };\n const id = React.useMemo(() => uid('panel-title'), []);\n const ref = React.useRef(null);\n const overlay = mode === 'overlay';\n useOverlayFocus(ref, open && overlay, onClose);\n if (!open) return null;\n const panel = (\n <aside ref={ref} className={cx('agn-panel', 'agn-panel--' + size, 'agn-panel--' + mode, className)} aria-labelledby={title ? id : undefined} role={overlay ? 'dialog' : undefined} aria-modal={overlay || undefined} tabIndex={overlay ? -1 : undefined} style={width != null ? { width: typeof width === 'number' ? width + 'px' : width, ...style } : style} {...rest}>\n <header className=\"agn-panel__head\">\n <div className=\"agn-panel__heading\">\n {eyebrow && <div className=\"agn-eyebrow agn-eyebrow--quiet\">{eyebrow}</div>}\n {title && <h2 id={id} className=\"agn-panel__title\">{title}</h2>}\n {subtitle && <div className=\"agn-panel__subtitle\">{subtitle}</div>}\n </div>\n <div className=\"agn-panel__actions\">{actions}{onClose && <ButtonIcon icon=\"x\" label={L.close} size=\"sm\" onClick={onClose} />}</div>\n </header>\n {tabs && <div className=\"agn-panel__tabs\">{tabs}</div>}\n <div className=\"agn-panel__body\">{children}</div>\n {footer && <footer className=\"agn-panel__foot\">{footer}</footer>}\n </aside>\n );\n if (!overlay || !scrim) return panel;\n return <>{/* biome-ignore lint/a11y/noStaticElementInteractions: the scrim is a pointer convenience; Esc and the close button are the keyboard paths */}<div className=\"agn-panel-scrim\" aria-hidden=\"true\" onClick={onClose} />{panel}</>;\n}\n","import React from 'react';\n// Breakpoints (= tokens bp-sm … bp-2xl, @aginies/tokens) and the container-measuring hooks the layout components share.\n// Everything here measures an element, never the window: a page in a 1024px frame behaves like a 1024px page.\nexport const BREAKPOINTS = { sm: 640, md: 768, lg: 1024, xl: 1280, '2xl': 1536 };\nexport const BREAKPOINT_ORDER = ['base', 'sm', 'md', 'lg', 'xl', '2xl'];\n\n// Name of the largest breakpoint a width reaches ('base' below 640).\nexport function breakpointFor(width) {\n let name = 'base';\n for (const k of BREAKPOINT_ORDER.slice(1)) if (width >= BREAKPOINTS[k]) name = k;\n return name;\n}\n// A breakpoint name or a px number → px.\nexport function toPx(bp) { return typeof bp === 'number' ? bp : BREAKPOINTS[bp] != null ? BREAKPOINTS[bp] : 0; }\n// True when breakpoint `a` is at least `b` ('xl' ≥ 'lg').\nexport function atLeast(a, b) { return BREAKPOINT_ORDER.indexOf(a) >= BREAKPOINT_ORDER.indexOf(b); }\n\nconst useIsoLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\n// Layout width of an element (px), measured before paint and kept current with a ResizeObserver. null until measured.\nexport function useElementWidth(ref) {\n const [w, setW] = React.useState(null);\n useIsoLayoutEffect(() => {\n const el = ref.current;\n if (!el) return undefined;\n // offsetWidth: the layout width, unaffected by a CSS transform (a page scaled into a frame keeps its real width).\n const read = () => { const n = el.offsetWidth; setW((p) => (p === n ? p : n)); };\n read();\n if (typeof ResizeObserver === 'undefined') return undefined;\n const ro = new ResizeObserver(read);\n ro.observe(el);\n return () => ro.disconnect();\n }, [ref]);\n return w;\n}\n// Breakpoint name of an element's own width ('base' … '2xl'); null until measured.\nexport function useBreakpoint(ref) {\n const w = useElementWidth(ref);\n return w == null ? null : breakpointFor(w);\n}\n\nconst FOCUSABLE = 'a[href],button:not([disabled]),input:not([disabled]):not([type=\"hidden\"]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex=\"-1\"]),[contenteditable=\"true\"]';\n// Overlay behaviour for a drawer or a sheet: on open, focus moves to the container (tabIndex -1); Tab and Shift+Tab stay inside; Esc calls onClose; on close focus returns to where it was.\nexport function useOverlayFocus(ref, open, onClose) {\n const closeRef = React.useRef(onClose);\n closeRef.current = onClose;\n React.useEffect(() => {\n if (!open) return undefined;\n const el = ref.current;\n if (!el) return undefined;\n const prev = typeof document !== 'undefined' ? document.activeElement : null;\n if (!el.contains(document.activeElement)) el.focus({ preventScroll: true });\n const onKey = (e) => {\n if (e.key === 'Escape') { if (closeRef.current) { e.stopPropagation(); closeRef.current(); } return; }\n if (e.key !== 'Tab' || !el.contains(document.activeElement)) return;\n const f = Array.from(el.querySelectorAll(FOCUSABLE)).filter((n) => n.offsetParent !== null || n === document.activeElement);\n if (!f.length) { e.preventDefault(); el.focus({ preventScroll: true }); return; }\n const first = f[0], last = f[f.length - 1];\n if (e.shiftKey && (document.activeElement === first || document.activeElement === el)) { e.preventDefault(); last.focus(); }\n else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); }\n };\n el.addEventListener('keydown', onKey);\n return () => {\n el.removeEventListener('keydown', onKey);\n const a = document.activeElement;\n if (prev && prev.focus && document.contains(prev) && (!a || a === document.body || el.contains(a))) prev.focus({ preventScroll: true });\n };\n }, [open, ref]);\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { BREAKPOINT_ORDER } from './responsive.js';\n// 12-column grid (grid-columns, grid-gap) that responds to its own width through a container query, so a grid in a side pane or a 1024px frame lays out for that width, not the window's. GridItem spans a number of columns, or a per-breakpoint object ({ base: 12, lg: 6, xl: 4 }). min={280} switches to an auto-fill gallery with a minimum column width.\nconst GAPS = { none: '0px', sm: 'var(--space-3)', md: 'var(--space-4)', lg: 'var(--grid-gap)' };\nconst px = (v) => (typeof v === 'number' ? v + 'px' : v);\nexport function Grid({ min, columns, gap = 'lg', rowGap, align, dense, as: Comp = 'div', children, className, style, ...rest }) {\n const s = { ...style };\n if (min != null) s['--agn-grid-min'] = px(min);\n if (columns != null) s['--agn-grid-cols'] = columns;\n if (gap != null) s['--agn-grid-gap'] = GAPS[gap] || px(gap);\n if (rowGap != null) s['--agn-grid-row-gap'] = GAPS[rowGap] || px(rowGap);\n return (\n <Comp className={cx('agn-grid', min != null && 'agn-grid--auto', dense && 'agn-grid--dense', align && 'agn-grid--align-' + align, className)} style={s} {...rest}>\n {children}\n </Comp>\n );\n}\n// Resolves { base, sm, md, lg, xl, 2xl } into one value per breakpoint, each carrying the previous one forward (mobile first).\nfunction resolve(span) {\n const out = {};\n let cur = 12;\n for (const k of BREAKPOINT_ORDER) {\n const v = span && typeof span === 'object' ? span[k] : k === 'base' ? span : undefined;\n if (v != null) cur = v === 'full' ? 'var(--agn-grid-cols, var(--grid-columns))' : v;\n out[k] = cur;\n }\n return out;\n}\nexport function GridItem({ span = 12, start, rowSpan, as: Comp = 'div', children, className, style, ...rest }) {\n const r = resolve(span);\n const s = { ...style };\n for (const k of BREAKPOINT_ORDER) s['--agn-span-' + k] = r[k];\n if (start != null) s.gridColumnStart = start;\n if (rowSpan != null) s.gridRow = 'span ' + rowSpan;\n return <Comp className={cx('agn-grid__item', className)} style={s} {...rest}>{children}</Comp>;\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState, useLayoutEffect, useEffect, useRef } from 'react';\nimport { cx } from '../core/style.js';\n// The website's .room: a section that inverts the theme inside. It reads the nearest ancestor data-theme and sets the opposite, then paints --bg and --text so every token inside flips with it.\nconst useIsoLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\nexport function Room({ theme, padding = 'lg', as: Comp = 'section', children, className, ...rest }) {\n const ref = useRef(null);\n const [auto, setAuto] = useState('dark');\n useIsoLayoutEffect(() => {\n if (theme || !ref.current) return;\n const anc = ref.current.parentElement && ref.current.parentElement.closest('[data-theme]');\n const t = anc ? anc.getAttribute('data-theme') : 'light';\n setAuto(t === 'dark' ? 'light' : 'dark');\n }, [theme]);\n return (\n <Comp ref={ref} data-theme={theme || auto} className={cx('agn-room', 'agn-root', 'agn-room--pad-' + padding, className)} {...rest}>{children}</Comp>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { AginiesLogo } from '../core/AginiesMark.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { Avatar } from '../data/Avatar.jsx';\nimport { Badge } from '../data/Badge.jsx';\n// 48px top bar: logo lockup with the product name, a search trigger with its shortcut, actions, the user's avatar. tone=\"panel\" for consoles; tone=\"ink\" for brand screens.\nconst DEFAULT_LABELS = { search: 'Search', searchHint: 'Search agents, runs, approvals…', notifications: 'Notifications', apps: 'Products', user: 'Account' };\nexport function GlobalHeader({ product, tone = 'panel', search = true, onSearch, shortcut = '⌘K', actions, user, onUserClick, notifications, onNotifications, onApps, brand, left, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const u = typeof user === 'string' ? { name: user } : user;\n return (\n <header className={cx('agn-gheader', 'agn-gheader--' + tone, className)} {...rest}>\n <div className=\"agn-gheader__brand\">\n {onApps && <ButtonIcon icon=\"grip\" label={l.apps} onClick={onApps} className=\"agn-gheader__apps\" />}\n {brand || <AginiesLogo size={22} product={product} />}\n </div>\n {left && <div className=\"agn-gheader__left\">{left}</div>}\n {search && (\n <button type=\"button\" className=\"agn-gheader__search agn-focus\" onClick={onSearch} aria-label={l.search} aria-keyshortcuts={shortcut === '⌘K' ? 'Meta+K Control+K' : undefined}>\n <Icon name=\"search\" size={14} />\n <span className=\"agn-gheader__search-hint\">{l.searchHint}</span>\n {shortcut && <kbd className=\"agn-gheader__kbd\">{shortcut}</kbd>}\n </button>\n )}\n <div className=\"agn-gheader__actions\">\n {actions}\n {(notifications != null || onNotifications) && (\n <span className=\"agn-gheader__notif\">\n <ButtonIcon icon=\"bell\" label={l.notifications + (notifications ? ' (' + notifications + ')' : '')} onClick={onNotifications} />\n {notifications > 0 && <Badge tone=\"bad\" solid size=\"sm\" count={notifications} className=\"agn-gheader__notif-count\" />}\n </span>\n )}\n {u && (\n <button type=\"button\" className=\"agn-gheader__user agn-focus\" onClick={onUserClick} aria-label={l.user + ': ' + (u.name || '')}>\n <Avatar size=\"sm\" name={u.name} src={u.src} />\n </button>\n )}\n </div>\n </header>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { AginiesLogo, AginiesMark } from '../core/AginiesMark.jsx';\nimport { Badge } from '../data/Badge.jsx';\nimport { PageLayoutContext } from '../layout/PageLayout.jsx';\n// The console sidebar (inside PageLayout it follows the page: docked ≥ 1280, a 56px rail 1024–1279 that the user may expand, a drawer below 1024 with a close button that closes on navigation): 232px (56 collapsed; `width` or a drag handle with `resizable`), logo lockup top-left, search, an optional tree slot (folders and agents), nav groups under mono eyebrows (build / observe / organisation), 32px items with icon, label and count; the product switcher at the bottom. Collapsed items keep their name as a tooltip.\nconst DEFAULT_LABELS = { search: 'Search', collapse: 'Collapse sidebar', expand: 'Expand sidebar', navigation: 'Main navigation', resize: 'Resize sidebar', close: 'Close navigation' };\nexport function VerticalNavigation({ groups = [], active, onChange, collapsed: collapsedProp, onCollapse: onCollapseProp, mode: modeProp, product, search, switcher, footer, tree, width, resizable, minWidth = 180, maxWidth = 400, onResize, logoHref, labels, className, style, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const page = React.useContext(PageLayoutContext);\n // mode: an explicit prop wins; inside a PageLayout the page decides; standalone it is docked.\n const mode = modeProp || (page && page.sidebar) || 'docked';\n const drawer = mode === 'overlay' || mode === 'drawer';\n const rail = mode === 'rail';\n const collapsed = drawer ? false : rail ? (!!collapsedProp || !(page && page.railExpanded)) : collapsedProp;\n const onCollapse = drawer ? null : rail ? (next) => { if (page) page.setRailExpanded(!next); if (onCollapseProp) onCollapseProp(next); } : onCollapseProp;\n const navRef = React.useRef(null);\n const [dragW, setDragW] = React.useState(null);\n const [resizing, setResizing] = React.useState(false);\n const w = dragW != null ? dragW : width;\n const clampW = (v) => Math.round(Math.max(minWidth, Math.min(maxWidth, v)));\n const commit = (v) => { const n = clampW(v); setDragW(n); onResize && onResize(n); };\n const onHandleDown = (e) => {\n if (e.button !== 0 || !navRef.current) return;\n e.preventDefault();\n const startX = e.clientX, startW = navRef.current.getBoundingClientRect().width;\n setResizing(true);\n const move = (ev) => commit(startW + ev.clientX - startX);\n const up = () => { setResizing(false); window.removeEventListener('pointermove', move); window.removeEventListener('pointerup', up); };\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n };\n const onHandleKey = (e) => {\n const cur = navRef.current ? navRef.current.getBoundingClientRect().width : 232;\n const d = { ArrowLeft: -16, ArrowRight: 16 }[e.key];\n if (d) { e.preventDefault(); commit(cur + d); }\n else if (e.key === 'Home') { e.preventDefault(); commit(minWidth); }\n else if (e.key === 'End') { e.preventDefault(); commit(maxWidth); }\n };\n const rootStyle = w != null ? { '--sidebar-w': typeof w === 'number' ? w + 'px' : w, ...style } : style;\n const onKey = (e) => {\n if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp') return;\n const items = Array.from(e.currentTarget.querySelectorAll('.agn-nav-item:not(.agn-nav-item--disabled)'));\n const i = items.indexOf(document.activeElement);\n if (i < 0) return;\n e.preventDefault();\n const n = items[(i + (e.key === 'ArrowDown' ? 1 : -1) + items.length) % items.length];\n n.focus();\n };\n return (\n <nav ref={navRef} className={cx('agn-sidebar', collapsed && 'agn-sidebar--collapsed', rail && 'agn-sidebar--rail', drawer && 'agn-sidebar--drawer', resizable && !collapsed && !drawer && 'agn-sidebar--resizable', resizing && 'agn-sidebar--resizing', className)} style={rootStyle} aria-label={l.navigation} {...rest}>\n <div className=\"agn-sidebar__top\">\n {logoHref ? <a href={logoHref} className=\"agn-sidebar__logo agn-focus\">{collapsed ? <AginiesMark size={22} /> : <AginiesLogo size={20} product={product} />}</a> : <span className=\"agn-sidebar__logo\">{collapsed ? <AginiesMark size={22} /> : <AginiesLogo size={20} product={product} />}</span>}\n {drawer && page && <button type=\"button\" className=\"agn-sidebar__collapse agn-focus\" aria-label={l.close} title={l.close} onClick={page.closeSidebar}><Icon name=\"x\" size={16} /></button>}\n {onCollapse && <button type=\"button\" className=\"agn-sidebar__collapse agn-focus\" aria-label={collapsed ? l.expand : l.collapse} title={collapsed ? l.expand : l.collapse} aria-expanded={!collapsed} onClick={() => onCollapse(!collapsed)}><Icon name={collapsed ? 'panel-left-open' : 'panel-left-close'} size={16} /></button>}\n </div>\n {search && (\n <button type=\"button\" className=\"agn-sidebar__search agn-focus\" onClick={search.onClick} title={collapsed ? (search.label || l.search) : undefined} aria-label={search.label || l.search}>\n <Icon name=\"search\" size={14} />\n <span className=\"agn-sidebar__search-label\">{search.placeholder || search.label || l.search}</span>\n {search.shortcut && <kbd className=\"agn-sidebar__kbd\">{search.shortcut}</kbd>}\n </button>\n )}\n {/* biome-ignore lint/a11y/noStaticElementInteractions: delegated arrow-key navigation between the nav links inside; the links are the focus targets */}\n <div className=\"agn-sidebar__scroll\" onKeyDown={onKey}>\n {tree && !collapsed && <div className=\"agn-sidebar__tree\">{tree}</div>}\n {groups.map((g, gi) => (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div key={g.id || gi} className=\"agn-sidebar__group\" role=\"group\" aria-label={g.label}>\n {g.label && <div className=\"agn-sidebar__eyebrow agn-eyebrow agn-eyebrow--quiet\" aria-hidden={collapsed ? true : undefined}>{collapsed ? <span className=\"agn-sidebar__eyebrow-rule\" /> : g.label}</div>}\n <ul className=\"agn-sidebar__list\">\n {g.items.map((it) => {\n const isActive = active === it.id;\n const Comp = it.href ? 'a' : 'button';\n return (\n <li key={it.id}>\n <Comp href={it.href} type={Comp === 'button' ? 'button' : undefined} className={cx('agn-nav-item', isActive && 'agn-nav-item--active', it.disabled && 'agn-nav-item--disabled')} aria-current={isActive ? 'page' : undefined} title={collapsed ? it.label : undefined} disabled={Comp === 'button' ? it.disabled : undefined} aria-disabled={it.disabled && Comp === 'a' ? true : undefined} tabIndex={it.disabled && Comp === 'a' ? -1 : undefined} onClick={(e) => { if (it.disabled) { e.preventDefault(); return; } if (onChange) { if (!it.href) e.preventDefault(); onChange(it.id, it); } if (drawer && page) page.closeSidebar(); }}>\n <span className=\"agn-nav-item__icon\"><Icon name={it.icon || 'circle'} size={16} /></span>\n <span className=\"agn-nav-item__label\">{it.label}</span>\n {it.count != null && !collapsed && <Badge size=\"sm\" tone={it.countTone || 'neutral'} count={it.count} className=\"agn-nav-item__count\" />}\n {it.count != null && collapsed && <span className=\"agn-nav-item__dot\" aria-hidden=\"true\" />}\n </Comp>\n </li>\n );\n })}\n </ul>\n </div>\n ))}\n </div>\n {(footer || switcher) && <div className=\"agn-sidebar__bottom\">{footer}{switcher}</div>}\n {resizable && !collapsed && !drawer && <div className=\"agn-sidebar__resize\" role=\"separator\" aria-orientation=\"vertical\" aria-label={l.resize} aria-valuemin={minWidth} aria-valuemax={maxWidth} aria-valuenow={typeof w === 'number' ? w : undefined} tabIndex={0} onPointerDown={onHandleDown} onKeyDown={onHandleKey} />}\n </nav>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState, useRef, useMemo } from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Badge } from '../data/Badge.jsx';\n// Tabs for views of one object: line (underline, the default), pill (segmented), vertical (settings). Arrow keys move, Home/End jump; each tab may carry a count. With onClose, tabs marked closable (or all, with closable) get a close button and Delete closes the focused tab.\nconst DEFAULT_LABELS = { close: 'Close' };\nexport function Tabs({ items = [], active, defaultActive, onChange, variant = 'line', size = 'md', actions, panel = true, closable, onClose, labels, children, className, panelClassName, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const canClose = (it) => !!onClose && !it.disabled && (it.closable != null ? it.closable : !!closable);\n const [local, setLocal] = useState(defaultActive != null ? defaultActive : items[0] && items[0].id);\n const cur = active !== undefined ? active : local;\n const id = useMemo(() => uid('agn-tabs'), []);\n const listRef = useRef(null);\n const select = (it) => { if (it.disabled) return; if (active === undefined) setLocal(it.id); onChange && onChange(it.id, it); };\n const onKey = (e) => {\n const enabled = items.filter((i) => !i.disabled);\n const i = enabled.findIndex((x) => x.id === cur);\n const horiz = variant !== 'vertical';\n let n = null;\n if (e.key === (horiz ? 'ArrowRight' : 'ArrowDown')) n = enabled[(i + 1) % enabled.length];\n else if (e.key === (horiz ? 'ArrowLeft' : 'ArrowUp')) n = enabled[(i - 1 + enabled.length) % enabled.length];\n else if (e.key === 'Home') n = enabled[0];\n else if (e.key === 'End') n = enabled[enabled.length - 1];\n else if ((e.key === 'Delete' || e.key === 'Backspace') && current && canClose(current)) { e.preventDefault(); onClose(current.id, current); return; }\n if (!n) return;\n e.preventDefault(); select(n);\n const el = listRef.current && listRef.current.querySelector('[data-tab=\"' + n.id + '\"]');\n if (el) el.focus();\n };\n const current = items.find((i) => i.id === cur);\n const content = current && current.content != null ? current.content : children;\n return (\n <div className={cx('agn-tabs', 'agn-tabs--' + variant, size !== 'md' && 'agn-tabs--' + size, className)} {...rest}>\n <div className=\"agn-tabs__bar\">\n <div className=\"agn-tabs__list\" role=\"tablist\" aria-orientation={variant === 'vertical' ? 'vertical' : 'horizontal'} ref={listRef} onKeyDown={onKey}>\n {items.map((it) => {\n const sel = it.id === cur;\n const tab = (\n <button key={it.id} type=\"button\" role=\"tab\" data-tab={it.id} id={id + '-' + it.id} aria-selected={sel} aria-controls={panel ? id + '-p' : undefined} aria-disabled={it.disabled || undefined} tabIndex={sel ? 0 : -1} className={cx('agn-tab', sel && 'agn-tab--active', it.disabled && 'agn-tab--disabled', canClose(it) && 'agn-tab--closable')} onClick={() => select(it)} disabled={it.disabled}>\n {it.icon && <Icon name={it.icon} size={14} />}\n <span className=\"agn-tab__label\">{it.label}</span>\n {it.count != null && <Badge size=\"sm\" tone={sel ? 'signal' : 'neutral'} count={it.count} />}\n </button>\n );\n if (!canClose(it)) return tab;\n return (\n <span key={it.id} className=\"agn-tabs__item\" role=\"presentation\">\n {tab}\n <button type=\"button\" className=\"agn-tab__close agn-focus\" tabIndex={-1} aria-label={L.close + ' ' + (typeof it.label === 'string' ? it.label : '')} title={L.close} onClick={(e) => { e.stopPropagation(); onClose(it.id, it); }}><Icon name=\"x\" size={12} /></button>\n </span>\n );\n })}\n </div>\n {actions && <div className=\"agn-tabs__actions\">{actions}</div>}\n </div>\n {/* biome-ignore lint/a11y/noNoninteractiveTabindex: APG tabs: the tabpanel takes tabIndex=0 so keyboard users reach panel content that has no focusable element of its own */}\n {panel && content != null && <div className={cx('agn-tabs__panel', panelClassName)} role=\"tabpanel\" id={id + '-p'} aria-labelledby={current ? id + '-' + current.id : undefined} tabIndex={0}>{content}</div>}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Badge } from '../data/Badge.jsx';\n// Horizontal top navigation for GlobalHeader shells (Contact, Voice admin): the product's sections as a row of links with icon, label and count; the active one underlined in --signal. ←/→ move, Home/End jump; what does not fit goes into a \"More\" menu.\nconst DEFAULT_LABELS = { navigation: 'Product navigation', more: 'More' };\nexport function GlobalNavigation({ items = [], active, onChange, maxVisible, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const rootRef = React.useRef(null);\n const measureRef = React.useRef(null);\n const moreRef = React.useRef(null);\n const [fit, setFit] = React.useState(items.length);\n const [open, setOpen] = React.useState(false);\n const cap = maxVisible != null ? Math.min(maxVisible, items.length) : items.length;\n // measure every item once in a hidden row, then fit as many as the root's width allows (leaving room for More)\n React.useLayoutEffect(() => {\n const root = rootRef.current, meas = measureRef.current;\n if (!root || !meas) return undefined;\n const calc = () => {\n const ws = Array.from(meas.children).map((c) => c.getBoundingClientRect().width);\n const moreW = ws.pop() || 80;\n const avail = root.clientWidth;\n const gap = parseFloat(getComputedStyle(meas).columnGap) || 0;\n let total = 0, n = 0;\n const all = ws.slice(0, cap).reduce((a, b) => a + b + gap, 0) - gap;\n if (all <= avail && cap === items.length) n = items.length;\n else { for (let i = 0; i < Math.min(ws.length, cap); i++) { if (total + ws[i] + gap + moreW > avail) break; total += ws[i] + gap; n++; } }\n setFit((p) => (p === n ? p : n));\n };\n calc();\n // web fonts change item widths after first paint: re-measure when they load and whenever the hidden row resizes\n if (document.fonts && document.fonts.ready) document.fonts.ready.then(calc);\n if (typeof ResizeObserver === 'undefined') return undefined;\n const ro = new ResizeObserver(calc);\n ro.observe(root);\n ro.observe(meas);\n return () => ro.disconnect();\n }, [items, cap]);\n React.useEffect(() => {\n if (!open) return undefined;\n const close = (e) => { if (moreRef.current && !moreRef.current.contains(e.target)) setOpen(false); };\n document.addEventListener('pointerdown', close);\n return () => document.removeEventListener('pointerdown', close);\n }, [open]);\n const visible = items.slice(0, fit), hidden = items.slice(fit);\n const hiddenActive = hidden.some((it) => it.id === active);\n const pick = (e, it) => { if (it.disabled) { e.preventDefault(); return; } setOpen(false); if (onChange) { if (!it.href) e.preventDefault(); onChange(it.id, it); } };\n const onKey = (e) => {\n if (!['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(e.key)) return;\n const els = Array.from(rootRef.current.querySelectorAll('.agn-gnav__list > li > .agn-gnav__item:not([aria-disabled=\"true\"]):not(:disabled)'));\n const i = els.indexOf(document.activeElement);\n if (i < 0) return;\n e.preventDefault();\n const n = e.key === 'Home' ? 0 : e.key === 'End' ? els.length - 1 : (i + (e.key === 'ArrowRight' ? 1 : -1) + els.length) % els.length;\n els[n].focus();\n };\n const onMenuKey = (e) => {\n const els = Array.from(e.currentTarget.querySelectorAll('[role=\"menuitem\"]:not([aria-disabled=\"true\"])'));\n const i = els.indexOf(document.activeElement);\n if (e.key === 'Escape') { e.preventDefault(); setOpen(false); const t = moreRef.current && moreRef.current.querySelector('.agn-gnav__item'); if (t) t.focus(); return; }\n const d = { ArrowDown: 1, ArrowUp: -1 }[e.key];\n if (d && els.length) { e.preventDefault(); els[(i + d + els.length) % els.length].focus(); }\n };\n const body = (it, menu) => (\n <>\n {it.icon && <Icon name={it.icon} size={menu ? 14 : 15} className=\"agn-gnav__icon\" />}\n <span className=\"agn-gnav__label\">{it.label}</span>\n {it.count != null && <Badge size=\"sm\" tone={it.countTone || (it.id === active ? 'signal' : 'neutral')} count={it.count} />}\n </>\n );\n const renderItem = (it, measure) => {\n const Comp = it.href ? 'a' : 'button';\n const isActive = it.id === active;\n return (\n <Comp href={it.href} type={Comp === 'button' ? 'button' : undefined} className={cx('agn-gnav__item', 'agn-focus', isActive && 'agn-gnav__item--active', it.disabled && 'agn-gnav__item--disabled')} aria-current={!measure && isActive ? 'page' : undefined} disabled={Comp === 'button' ? it.disabled : undefined} aria-disabled={it.disabled && Comp === 'a' ? true : undefined} tabIndex={measure ? -1 : it.disabled && Comp === 'a' ? -1 : undefined} onClick={measure ? undefined : (e) => pick(e, it)}>\n {body(it)}\n </Comp>\n );\n };\n return (\n <nav ref={rootRef} className={cx('agn-gnav', className)} aria-label={l.navigation} onKeyDown={onKey} {...rest}>\n <ul className=\"agn-gnav__list\">\n {visible.map((it) => <li key={it.id}>{renderItem(it)}</li>)}\n {hidden.length > 0 && (\n <li ref={moreRef} className=\"agn-gnav__more\">\n <button type=\"button\" className={cx('agn-gnav__item', 'agn-focus', hiddenActive && 'agn-gnav__item--active')} aria-haspopup=\"menu\" aria-expanded={open} onClick={() => setOpen(!open)} onKeyDown={(e) => { if (e.key === 'ArrowDown') { e.preventDefault(); setOpen(true); setTimeout(() => { const f = moreRef.current && moreRef.current.querySelector('[role=\"menuitem\"]'); if (f) f.focus(); }, 0); } }}>\n <span className=\"agn-gnav__label\">{hiddenActive ? hidden.find((it) => it.id === active).label : l.more}</span>\n <Icon name=\"chevron-down\" size={14} />\n </button>\n {open && (\n <div className=\"agn-gnav__menu\" role=\"menu\" aria-label={l.more} onKeyDown={onMenuKey}>\n {hidden.map((it) => {\n const Comp = it.href ? 'a' : 'button';\n return <Comp key={it.id} role=\"menuitem\" href={it.href} type={Comp === 'button' ? 'button' : undefined} className={cx('agn-gnav__menu-item', it.id === active && 'agn-gnav__menu-item--active')} aria-current={it.id === active ? 'page' : undefined} aria-disabled={it.disabled || undefined} tabIndex={-1} onClick={(e) => pick(e, it)}>{body(it, true)}{it.id === active && <Icon name=\"check\" size={14} className=\"agn-gnav__check\" />}</Comp>;\n })}\n </div>\n )}\n </li>\n )}\n </ul>\n <div ref={measureRef} className=\"agn-gnav__measure\" aria-hidden=\"true\">\n {items.map((it) => <React.Fragment key={it.id}>{renderItem(it, true)}</React.Fragment>)}\n <span className=\"agn-gnav__item\"><span className=\"agn-gnav__label\">{l.more}</span><Icon name=\"chevron-down\" size={14} /></span>\n </div>\n </nav>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Hierarchy trail above a page header: Agents / Zurich welcome call / v8. The last item is the current page and is not a link. Long trails collapse the middle into an ellipsis.\nconst DEFAULT_LABELS = { nav: 'Breadcrumb', more: 'Show hidden path' };\nexport function Breadcrumbs({ items = [], max = 4, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [open, setOpen] = React.useState(false);\n let list = items;\n let hidden = [];\n if (!open && items.length > max) { hidden = items.slice(1, items.length - (max - 2)); list = [items[0], { ellipsis: true }, ...items.slice(items.length - (max - 2))]; }\n return (\n <nav className={cx('agn-crumbs', className)} aria-label={l.nav} {...rest}>\n <ol className=\"agn-crumbs__list\">\n {list.map((it, i) => {\n const last = i === list.length - 1;\n let node;\n if (it.ellipsis) node = <button type=\"button\" className=\"agn-crumbs__more agn-focus\" aria-label={l.more} title={hidden.map((h) => h.label).join(' / ')} onClick={() => setOpen(true)}><Icon name=\"ellipsis\" size={14} /></button>;\n else if (last) node = <span className=\"agn-crumbs__current\" aria-current=\"page\">{it.icon && <Icon name={it.icon} size={14} />}{it.label}</span>;\n else node = <a className=\"agn-crumbs__link agn-focus\" href={it.href || '#'} onClick={it.onClick}>{it.icon && <Icon name={it.icon} size={14} />}{it.label}</a>;\n return <li key={i} className=\"agn-crumbs__item\">{node}{!last && <Icon name=\"chevron-right\" size={12} className=\"agn-crumbs__sep\" />}</li>;\n })}\n </ol>\n </nav>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Record stage path: chevron steps for a case, an approval or a rollout. Done steps in ok with a check, the current step in text, upcoming on panel-2. Status words are always present; compact draws a thin segment bar with a caption.\nconst DEFAULT_LABELS = { stage: 'Stage', done: 'done', current: 'current', upcoming: 'upcoming', lost: 'Closed' };\nexport function Path({ steps = [], current, onChange, compact, lost, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const list = steps.map((s) => (typeof s === 'string' ? { id: s, label: s } : s));\n const ci = list.findIndex((s) => s.id === current);\n const stateOf = (i) => (lost ? (i < ci ? 'done' : i === ci ? 'lost' : 'upcoming') : i < ci ? 'done' : i === ci ? 'current' : 'upcoming');\n if (compact) {\n const cur = list[ci];\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div className={cx('agn-path', 'agn-path--compact', lost && 'agn-path--lost', className)} role=\"group\" aria-label={l.stage} {...rest}>\n <div className=\"agn-path__bar\" aria-hidden=\"true\">{list.map((s, i) => <span key={s.id} className={cx('agn-path__seg', 'agn-path__seg--' + stateOf(i))} />)}</div>\n <div className=\"agn-path__caption\"><span className=\"agn-path__caption-label\">{l.stage}</span><span className=\"agn-path__caption-value\">{lost ? l.lost : cur ? cur.label : ''}</span><span className=\"agn-path__caption-count agn-num\">{Math.max(ci, 0) + 1}/{list.length}</span></div>\n </div>\n );\n }\n return (\n <ol className={cx('agn-path', lost && 'agn-path--lost', className)} aria-label={l.stage} {...rest}>\n {list.map((s, i) => {\n const st = stateOf(i);\n const Comp = onChange ? 'button' : 'span';\n return (\n <li key={s.id} className={cx('agn-path__step', 'agn-path__step--' + st)} aria-current={st === 'current' ? 'step' : undefined}>\n <Comp type={onChange ? 'button' : undefined} className=\"agn-path__inner agn-focus-inset\" onClick={onChange ? () => onChange(s.id, s) : undefined} title={s.label + ' · ' + (st === 'lost' ? l.lost : l[st])}>\n {st === 'done' && <Icon name=\"check\" size={12} />}\n {st === 'lost' && <Icon name=\"x\" size={12} />}\n <span className=\"agn-path__label\">{s.label}</span>\n <span className=\"agn-sr\">, {st === 'lost' ? l.lost : l[st]}</span>\n </Comp>\n </li>\n );\n })}\n </ol>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Numbered steps for a real sequence (a setup wizard, a deploy checklist): done, current, upcoming, error. Horizontal by default, vertical with descriptions. Not for status that is not a sequence.\nconst DEFAULT_LABELS = { step: 'Step', done: 'done', current: 'current', upcoming: 'upcoming', error: 'needs attention', of: 'of' };\nexport function ProgressIndicator({ steps = [], current = 0, onStepClick, vertical, errorSteps = [], labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const list = steps.map((s) => (typeof s === 'string' ? { label: s } : s));\n return (\n <ol className={cx('agn-pind', vertical ? 'agn-pind--vertical' : 'agn-pind--horizontal', className)} aria-label={l.step + ' ' + (current + 1) + ' ' + l.of + ' ' + list.length} {...rest}>\n {list.map((s, i) => {\n const err = errorSteps.includes(i);\n const st = err ? 'error' : i < current ? 'done' : i === current ? 'current' : 'upcoming';\n const clickable = onStepClick && (i <= current || err);\n const Comp = clickable ? 'button' : 'div';\n return (\n <li key={i} className={cx('agn-pind__step', 'agn-pind__step--' + st)} aria-current={st === 'current' ? 'step' : undefined}>\n <Comp type={clickable ? 'button' : undefined} className={cx('agn-pind__inner', clickable && 'agn-focus')} onClick={clickable ? () => onStepClick(i, s) : undefined}>\n <span className=\"agn-pind__marker agn-num\" aria-hidden=\"true\">{st === 'done' ? <Icon name=\"check\" size={12} /> : st === 'error' ? <Icon name=\"triangle-alert\" size={12} /> : i + 1}</span>\n <span className=\"agn-pind__text\">\n <span className=\"agn-pind__label\">{s.label}<span className=\"agn-sr\">, {l[st]}</span></span>\n {s.description && vertical && <span className=\"agn-pind__desc\">{s.description}</span>}\n </span>\n </Comp>\n {i < list.length - 1 && <span className=\"agn-pind__line\" aria-hidden=\"true\" />}\n </li>\n );\n })}\n </ol>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState, useRef } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { useElementWidth, toPx } from '../layout/responsive.js';\n// List + detail: a record list on the left (panel-w-lg wide, resizable by a divider), the selected record as children on the right. Runs and their trace, conversations and their transcript.\n// It measures its own width: below `stackBelow` (default bp-md, 768) list and detail stack — the list fills the pane, picking a record opens the detail as a full pane with a back button; below bp-lg (1024) the list narrows to panel-w (288).\nconst DEFAULT_LABELS = { resize: 'Resize list', empty: 'Select an item', collapse: 'Hide list', expand: 'Show list', back: 'Back to list' };\nexport function SplitView({ items = [], selected, onSelect, renderItem, title, count, headerActions, listWidth, minWidth = 240, maxWidth = 560, resizable = true, collapsible, stackBelow = 'md', defaultStackedView = 'list', onStackedViewChange, onBack, labels, children, className, style, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [w, setW] = useState(listWidth);\n const [open, setOpen] = useState(true);\n const ref = useRef(null);\n const listRef = useRef(null);\n const width = useElementWidth(ref);\n const stacked = width != null && stackBelow !== false && width < toPx(stackBelow);\n const narrow = width != null && width < toPx('lg');\n const [view, setViewState] = useState(defaultStackedView);\n const setView = (v) => { setViewState(v); if (onStackedViewChange) onStackedViewChange(v); };\n const pick = (it) => { if (onSelect) onSelect(it); if (stacked) setView('detail'); };\n const showDetail = stacked && view === 'detail';\n const startDrag = (e) => {\n e.preventDefault();\n const start = e.clientX; const w0 = listRef.current.getBoundingClientRect().width;\n const move = (ev) => setW(Math.max(minWidth, Math.min(maxWidth, w0 + ev.clientX - start)));\n const up = () => { window.removeEventListener('pointermove', move); window.removeEventListener('pointerup', up); };\n window.addEventListener('pointermove', move); window.addEventListener('pointerup', up);\n };\n const onDividerKey = (e) => {\n const w0 = listRef.current.getBoundingClientRect().width;\n if (e.key === 'ArrowLeft') { e.preventDefault(); setW(Math.max(minWidth, w0 - 16)); }\n if (e.key === 'ArrowRight') { e.preventDefault(); setW(Math.min(maxWidth, w0 + 16)); }\n };\n const onListKey = (e) => {\n if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp') return;\n const i = items.findIndex((x) => x.id === selected);\n const n = items[Math.max(0, Math.min(items.length - 1, i + (e.key === 'ArrowDown' ? 1 : -1)))];\n if (n && onSelect) { e.preventDefault(); onSelect(n); const el = listRef.current.querySelector('[data-item=\"' + n.id + '\"]'); if (el) el.focus(); }\n };\n return (\n <div ref={ref} className={cx('agn-split', !open && !stacked && 'agn-split--collapsed', narrow && 'agn-split--narrow', stacked && 'agn-split--stacked', stacked && (showDetail ? 'agn-split--show-detail' : 'agn-split--show-list'), className)} style={{ '--agn-split-w': w != null ? (typeof w === 'number' ? w + 'px' : w) : undefined, ...style }} {...rest}>\n <div ref={listRef} className=\"agn-split__list\" aria-hidden={(!stacked && !open) || showDetail || undefined}>\n {(title || headerActions || collapsible) && (\n <div className=\"agn-split__head\">\n <span className=\"agn-split__title\">{title}{count != null && <span className=\"agn-split__count agn-num\">{count}</span>}</span>\n <span className=\"agn-split__head-actions\">{headerActions}</span>\n </div>\n )}\n {/* biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: single-select listbox on ul/li (APG allows it); options hold rich content a <select> cannot render */}\n {/* biome-ignore lint/a11y/useSemanticElements: single-select listbox on ul/li (APG allows it); options hold rich content a <select> cannot render */}\n <ul className=\"agn-split__items\" role=\"listbox\" aria-label={typeof title === 'string' ? title : undefined} onKeyDown={onListKey}>\n {items.map((it) => {\n const sel = it.id === selected;\n return (\n // biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: listbox option on li inside the ul listbox above; focusable with Enter/Space and arrows\n // biome-ignore lint/a11y/useSemanticElements: listbox option on li inside the ul listbox above; focusable with Enter/Space and arrows\n <li key={it.id} role=\"option\" aria-selected={sel} data-item={it.id} tabIndex={sel || (!selected && items[0] === it) ? 0 : -1} className={cx('agn-split__item', 'agn-focus-inset', sel && 'agn-split__item--selected')} onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); pick(it); } }} onClick={() => pick(it)}>\n {renderItem ? renderItem(it, sel) : (\n <>\n {it.icon && <Icon name={it.icon} size={16} className=\"agn-split__item-icon\" />}\n <span className=\"agn-split__item-main\">\n <span className=\"agn-split__item-title\">{it.title}</span>\n {it.subtitle && <span className=\"agn-split__item-sub\">{it.subtitle}</span>}\n </span>\n {it.meta && <span className=\"agn-split__item-meta\">{it.meta}</span>}\n </>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n {resizable && open && !stacked && <div className=\"agn-split__divider agn-focus\" role=\"separator\" aria-orientation=\"vertical\" aria-label={l.resize} aria-valuenow={typeof w === 'number' ? Math.round(w) : undefined} aria-valuemin={minWidth} aria-valuemax={maxWidth} tabIndex={0} onPointerDown={startDrag} onKeyDown={onDividerKey} />}\n {collapsible && !stacked && <button type=\"button\" className=\"agn-split__toggle agn-focus\" aria-label={open ? l.collapse : l.expand} aria-expanded={open} onClick={() => setOpen(!open)}><Icon name={open ? 'panel-left-close' : 'panel-left-open'} size={14} /></button>}\n <div className=\"agn-split__detail\" aria-hidden={(stacked && !showDetail) || undefined}>{showDetail && <div className=\"agn-split__back\"><button type=\"button\" className=\"agn-split__back-btn agn-focus\" onClick={() => { setView('list'); if (onBack) onBack(); }}><Icon name=\"arrow-left\" size={14} />{l.back}</button></div>}{children != null ? children : <div className=\"agn-split__empty\">{l.empty}</div>}</div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon, PRODUCT_NAMES } from '../core/Icon.jsx';\n// Product switcher: the seven boxed product glyphs with their names in a popover grid, the current product marked. Sits at the bottom of the sidebar or behind the grip in the header.\nconst ALL = ['platform', 'hub', 'dialog', 'voice', 'vision', 'code', 'workforce'];\nconst DEFAULT_LABELS = { title: 'Products', current: 'current', switchProduct: 'Switch product' };\nexport function AppLauncher({ products = ALL, current, onOpen, hrefs = {}, descriptions = {}, inline, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const list = products.map((p) => (typeof p === 'string' ? { id: p } : p));\n const onKey = (e) => {\n const cells = Array.from(e.currentTarget.querySelectorAll('.agn-launcher__item'));\n const i = cells.indexOf(document.activeElement);\n if (i < 0) return;\n const cols = 2;\n const d = { ArrowRight: 1, ArrowLeft: -1, ArrowDown: cols, ArrowUp: -cols }[e.key];\n if (d == null) return;\n e.preventDefault();\n const n = cells[Math.max(0, Math.min(cells.length - 1, i + d))];\n if (n) n.focus();\n };\n return (\n <div className={cx('agn-launcher', inline && 'agn-launcher--inline', className)} role=\"menu\" aria-label={l.title} onKeyDown={onKey} {...rest}>\n <div className=\"agn-launcher__title agn-eyebrow agn-eyebrow--quiet\">{l.title}</div>\n <div className=\"agn-launcher__grid\">\n {list.map((p) => {\n const id = p.id;\n const name = p.name || PRODUCT_NAMES[id] || id;\n const short = name.replace(/ Aginies$/, '');\n const isCur = current === id;\n const Comp = hrefs[id] || p.href ? 'a' : 'button';\n return (\n <Comp key={id} role=\"menuitem\" href={p.href || hrefs[id]} type={Comp === 'button' ? 'button' : undefined} className={cx('agn-launcher__item', 'agn-focus', isCur && 'agn-launcher__item--current')} aria-current={isCur ? 'true' : undefined} onClick={onOpen ? (e) => { if (Comp === 'button') e.preventDefault(); onOpen(id, p); } : undefined}>\n <ProductIcon product={id} boxed size={22} />\n <span className=\"agn-launcher__text\">\n <span className=\"agn-launcher__name\">{short}{isCur && <span className=\"agn-sr\">, {l.current}</span>}</span>\n {(p.description || descriptions[id]) && <span className=\"agn-launcher__desc\">{p.description || descriptions[id]}</span>}\n </span>\n {isCur && <Icon name=\"check\" size={14} className=\"agn-launcher__check\" />}\n </Comp>\n );\n })}\n </div>\n </div>\n );\n}\n// The sidebar's switcher row that opens an AppLauncher: the current product's glyph and name with an up-down chevron, styled as a nav item; icon-only when collapsed. Wire onClick to a Popover holding the AppLauncher.\nexport function AppLauncherTrigger({ product = 'platform', name, icon, meta, collapsed, open, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const label = name || (PRODUCT_NAMES[product] || product).replace(/ Aginies$/, '');\n return (\n <button type=\"button\" className={cx('agn-nav-item', 'agn-launcher-trigger', 'agn-focus', collapsed && 'agn-launcher-trigger--collapsed', className)} aria-haspopup=\"menu\" aria-expanded={open != null ? !!open : undefined} title={collapsed ? l.switchProduct + ': ' + label + (typeof meta === 'string' ? ' · ' + meta : '') : l.switchProduct} {...rest}>\n <span className=\"agn-nav-item__icon\">{icon ? <Icon name={icon} size={16} /> : <ProductIcon product={product} size={16} />}</span>\n <span className=\"agn-nav-item__label\">{label}{meta && !collapsed && <span className=\"agn-launcher-trigger__meta\">{meta}</span>}</span>\n {!collapsed && <Icon name=\"chevrons-up-down\" size={14} className=\"agn-launcher-trigger__chevron\" />}\n </button>\n );\n}\nAppLauncher.Trigger = AppLauncherTrigger;\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// The head of every console page: a mono eyebrow naming the sidebar group, the title in the title style, a description, actions on the right, an optional meta row and tabs. A back link for detail pages. There is no global top bar in the console — this is where a page says where it is.\nconst DEFAULT_LABELS = { back: 'Back' };\nexport function PageHeader({ eyebrow, title, description, actions, meta, tabs, back, media, breadcrumbs, labels, as: Comp = 'header', className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const b = back && typeof back === 'object' ? back : back ? { label: l.back, onClick: typeof back === 'function' ? back : undefined } : null;\n return (\n <Comp className={cx('agn-pageheader', tabs && 'agn-pageheader--tabs', className)} {...rest}>\n {breadcrumbs && <div className=\"agn-pageheader__crumbs\">{breadcrumbs}</div>}\n {b && <a className=\"agn-pageheader__back agn-focus\" href={b.href || '#'} onClick={b.onClick ? (e) => { if (!b.href) e.preventDefault(); b.onClick(e); } : undefined}><Icon name=\"arrow-left\" size={14} />{b.label || l.back}</a>}\n <div className=\"agn-pageheader__row\">\n {media && <div className=\"agn-pageheader__media\">{media}</div>}\n <div className=\"agn-pageheader__text\">\n {eyebrow && <div className=\"agn-pageheader__eyebrow agn-eyebrow\">{eyebrow}</div>}\n <h1 className=\"agn-pageheader__title\">{title}</h1>\n {description && <p className=\"agn-pageheader__desc\">{description}</p>}\n </div>\n {actions && <div className=\"agn-pageheader__actions\">{actions}</div>}\n </div>\n {meta && <div className=\"agn-pageheader__meta\">{meta}</div>}\n {tabs && <div className=\"agn-pageheader__tabs\">{tabs}</div>}\n </Comp>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button, ButtonIcon } from '../actions/Button.jsx';\nimport { Tag } from '../data/Tag.jsx';\n// The agent builder's top bar: back, the agent's name, a version tag, its status as a Tag, then Versions and the one primary Deploy. A saving indicator and a draft notice live here too.\nconst DEFAULT_LABELS = { back: 'Back to agents', deploy: 'Deploy', versions: 'Versions', saving: 'Saving…', saved: 'Saved', draft: 'Draft — not deployed', rename: 'Rename' };\nexport function BuilderHeader({ name, version, status, onBack, backHref, onDeploy, deployDisabled, deploying, onVersions, onRename, saving, saved, draft, actions, left, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const st = typeof status === 'string' ? { label: status } : status;\n return (\n <header className={cx('agn-builder', className)} {...rest}>\n <div className=\"agn-builder__left\">\n {backHref && !onBack ? <a className=\"agn-btn agn-btn--icon agn-btn--ghost\" href={backHref} aria-label={l.back} title={l.back}><Icon name=\"arrow-left\" size={16} /></a> : onBack && <ButtonIcon icon=\"arrow-left\" label={l.back} onClick={onBack} />}\n {left}\n <div className=\"agn-builder__name-wrap\">\n <span className=\"agn-builder__name\">{name}</span>\n {onRename && <ButtonIcon icon=\"pencil\" label={l.rename} size=\"xs\" onClick={onRename} className=\"agn-builder__rename\" />}\n </div>\n {version && <Tag>{version}</Tag>}\n {st && <Tag tone={st.tone || 'neutral'} dot={st.dot} icon={st.icon}>{st.label}</Tag>}\n {draft && <span className=\"agn-builder__draft\"><Icon name=\"circle-dashed\" size={12} />{typeof draft === 'string' ? draft : l.draft}</span>}\n </div>\n <div className=\"agn-builder__right\">\n {/* biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here */}\n {(saving || saved) && <span className=\"agn-builder__save\" role=\"status\">{saving ? <><Icon name=\"loader-circle\" size={12} className=\"agn-builder__spin\" />{l.saving}</> : <><Icon name=\"check\" size={12} />{l.saved}</>}</span>}\n {actions}\n {onVersions && <Button variant=\"ghost\" icon=\"history\" onClick={onVersions}>{l.versions}</Button>}\n {onDeploy && <Button variant=\"primary\" icon=\"rocket\" onClick={onDeploy} disabled={deployDisabled} loading={deploying}>{l.deploy}</Button>}\n </div>\n </header>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Room } from '../layout/Room.jsx';\n// The one gradient in the system: a band painted in the ancestor's --text with a soft --signal radial glow, for login and welcome. Inside it is a Room, so every token flips and the content reads light on the navy band (and navy on ivory in the dark theme).\nexport function BrandBand({ height = 'md', glow = 'top-right', align = 'start', as: Comp = 'section', children, className, style, ...rest }) {\n const named = { sm: '160px', md: '280px', lg: '420px', full: '100vh' };\n const h = named[height] || height;\n return (\n <Comp className={cx('agn-band', 'agn-band--glow-' + glow, 'agn-band--align-' + align, className)} style={{ minHeight: h, ...style }} {...rest}>\n <Room padding=\"none\" className=\"agn-band__room\">\n <div className=\"agn-band__glow\" aria-hidden=\"true\" />\n <div className=\"agn-band__content\">{children}</div>\n </Room>\n </Comp>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState, useMemo } from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Stacked collapsible sections, one or many open: settings groups, FAQ, block configuration. ExpandableSection is the lighter single section used inside a record layout.\nexport function Accordion({ items = [], multiple, defaultOpen, open, onChange, boxed, className, ...rest }) {\n const [local, setLocal] = useState(() => new Set(defaultOpen || []));\n const cur = open ? new Set(open) : local;\n const id = useMemo(() => uid('agn-acc'), []);\n const toggle = (k) => {\n const n = new Set(multiple ? cur : []);\n if (cur.has(k)) { n.delete(k); } else n.add(k);\n if (!open) setLocal(n);\n onChange && onChange(Array.from(n));\n };\n return (\n <div className={cx('agn-accordion', boxed && 'agn-accordion--boxed', className)} {...rest}>\n {items.map((it) => {\n const isOpen = cur.has(it.id);\n return (\n <div key={it.id} className={cx('agn-accordion__item', isOpen && 'agn-accordion__item--open')}>\n <h3 className=\"agn-accordion__heading\">\n <button type=\"button\" id={id + '-' + it.id + '-h'} className=\"agn-accordion__trigger agn-focus-inset\" aria-expanded={isOpen} aria-controls={id + '-' + it.id + '-p'} onClick={() => toggle(it.id)} disabled={it.disabled}>\n <Icon name=\"chevron-right\" size={14} className={cx('agn-accordion__chev', isOpen && 'agn-accordion__chev--open')} />\n {it.icon && <Icon name={it.icon} size={16} className=\"agn-accordion__icon\" />}\n <span className=\"agn-accordion__label\">{it.label}</span>\n {it.meta && <span className=\"agn-accordion__meta\">{it.meta}</span>}\n </button>\n {it.actions && <span className=\"agn-accordion__actions\">{it.actions}</span>}\n </h3>\n <section id={id + '-' + it.id + '-p'} aria-labelledby={id + '-' + it.id + '-h'} className=\"agn-accordion__panel\" hidden={!isOpen}>{it.content}</section>\n </div>\n );\n })}\n </div>\n );\n}\n// One collapsible section with a hairline header; the record-layout section.\nexport function ExpandableSection({ title, open, defaultOpen = true, onToggle, actions, count, children, className, ...rest }) {\n const [local, setLocal] = useState(defaultOpen);\n const isOpen = open !== undefined ? open : local;\n const id = useMemo(() => uid('agn-xs'), []);\n const toggle = () => { if (open === undefined) setLocal(!isOpen); onToggle && onToggle(!isOpen); };\n return (\n <section className={cx('agn-xsection', isOpen && 'agn-xsection--open', className)} {...rest}>\n <h3 className=\"agn-xsection__heading\">\n <button type=\"button\" id={id + '-h'} className=\"agn-xsection__trigger agn-focus\" aria-expanded={isOpen} aria-controls={id + '-p'} onClick={toggle}>\n <Icon name=\"chevron-right\" size={14} className={cx('agn-accordion__chev', isOpen && 'agn-accordion__chev--open')} />\n <span className=\"agn-xsection__title\">{title}</span>\n {count != null && <span className=\"agn-xsection__count agn-num\">{count}</span>}\n </button>\n {actions && <span className=\"agn-xsection__actions\">{actions}</span>}\n </h3>\n <section id={id + '-p'} aria-labelledby={id + '-h'} className=\"agn-xsection__panel\" hidden={!isOpen}>{children}</section>\n </section>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState, useEffect, useRef } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Cards one at a time with dots and arrows: onboarding tips, release notes, a welcome tour. Arrow keys move; autoplay pauses on hover and focus and never runs under reduced motion.\nconst DEFAULT_LABELS = { prev: 'Previous', next: 'Next', goTo: 'Go to slide', of: 'of' };\nexport function Carousel({ slides = [], index, defaultIndex = 0, onChange, autoPlay, interval = 6000, loop = true, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [local, setLocal] = useState(defaultIndex);\n const cur = index !== undefined ? index : local;\n const [paused, setPaused] = useState(false);\n const n = slides.length;\n const go = (i) => { const k = loop ? (i + n) % n : Math.max(0, Math.min(n - 1, i)); if (index === undefined) setLocal(k); onChange && onChange(k); };\n const ref = useRef(null);\n useEffect(() => {\n if (!autoPlay || paused || n < 2) return undefined;\n if (typeof window !== 'undefined' && window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) return undefined;\n const t = setInterval(() => go(cur + 1), interval);\n return () => clearInterval(t);\n });\n const s = slides[cur];\n return (\n // biome-ignore lint/a11y/useSemanticElements: APG carousel: role=region with aria-roledescription; the consumer names it through rest, and the tag is kept so existing refs and selectors hold\n <div ref={ref} className={cx('agn-carousel', className)} role=\"region\" aria-roledescription=\"carousel\" onMouseEnter={() => setPaused(true)} onMouseLeave={() => setPaused(false)} onFocus={() => setPaused(true)} onBlur={() => setPaused(false)} onKeyDown={(e) => { if (e.key === 'ArrowRight') { e.preventDefault(); go(cur + 1); } if (e.key === 'ArrowLeft') { e.preventDefault(); go(cur - 1); } }} {...rest}>\n <div className=\"agn-carousel__viewport\">\n {s && (\n // biome-ignore lint/a11y/useSemanticElements: APG carousel: each slide is a group with aria-roledescription=slide\n <div className=\"agn-carousel__slide\" role=\"group\" aria-roledescription=\"slide\" aria-label={(cur + 1) + ' ' + l.of + ' ' + n}>\n {s.media && <div className=\"agn-carousel__media\">{s.media}</div>}\n {s.icon && !s.media && <div className=\"agn-carousel__icon\"><Icon name={s.icon} size={24} strokeWidth={1.75} /></div>}\n <div className=\"agn-carousel__text\">\n {s.eyebrow && <div className=\"agn-eyebrow agn-eyebrow--quiet\">{s.eyebrow}</div>}\n <div className=\"agn-carousel__title\">{s.title}</div>\n {s.description && <div className=\"agn-carousel__desc\">{s.description}</div>}\n {s.action && <div className=\"agn-carousel__action\">{s.action}</div>}\n </div>\n </div>\n )}\n </div>\n {n > 1 && (\n <div className=\"agn-carousel__controls\">\n <button type=\"button\" className=\"agn-carousel__arrow agn-focus\" aria-label={l.prev} onClick={() => go(cur - 1)} disabled={!loop && cur === 0}><Icon name=\"chevron-left\" size={16} /></button>\n <div className=\"agn-carousel__dots\" role=\"tablist\">{slides.map((_, i) => <button key={i} type=\"button\" role=\"tab\" aria-selected={i === cur} aria-label={l.goTo + ' ' + (i + 1)} className={cx('agn-carousel__dot', i === cur && 'agn-carousel__dot--active')} onClick={() => go(i)} />)}</div>\n <button type=\"button\" className=\"agn-carousel__arrow agn-focus\" aria-label={l.next} onClick={() => go(cur + 1)} disabled={!loop && cur === n - 1}><Icon name=\"chevron-right\" size={16} /></button>\n </div>\n )}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\n// Checklist of setup steps with progress (bare: no frame, for a card or widget that already has one; title optional): connect a channel, add a knowledge base, deploy the first agent. Done steps keep their check; the next open step carries the one primary action.\nconst DEFAULT_LABELS = { progress: 'completed', done: 'Done', optional: 'optional' };\nexport function SetupAssistant({ title, description, steps = [], bare, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const done = steps.filter((s) => s.done).length;\n const pct = steps.length ? Math.round((done / steps.length) * 100) : 0;\n const nextIdx = steps.findIndex((s) => !s.done);\n return (\n <section className={cx('agn-setup', bare && 'agn-setup--bare', !title && !description && 'agn-setup--untitled', className)} {...rest}>\n <header className=\"agn-setup__head\">\n {(title || description) && <div className=\"agn-setup__text\">\n {title && <h2 className=\"agn-setup__title\">{title}</h2>}\n {description && <p className=\"agn-setup__desc\">{description}</p>}\n </div>}\n <div className=\"agn-setup__progress\" role=\"progressbar\" aria-valuemin={0} aria-valuemax={steps.length} aria-valuenow={done} aria-valuetext={done + ' / ' + steps.length + ' ' + l.progress}>\n <span className=\"agn-setup__progress-text agn-num\">{done}/{steps.length} {l.progress}</span>\n <span className=\"agn-setup__bar\"><span className=\"agn-setup__fill\" style={{ width: pct + '%' }} /></span>\n </div>\n </header>\n <ol className=\"agn-setup__steps\">\n {steps.map((s, i) => {\n const isNext = i === nextIdx;\n return (\n <li key={s.id || i} className={cx('agn-setup__step', s.done && 'agn-setup__step--done', isNext && 'agn-setup__step--next')}>\n <span className=\"agn-setup__marker agn-num\" aria-hidden=\"true\">{s.done ? <Icon name=\"check\" size={14} /> : i + 1}</span>\n <div className=\"agn-setup__body\">\n <div className=\"agn-setup__step-title\">{s.title}{s.optional && <span className=\"agn-setup__optional\">{l.optional}</span>}{s.done && <span className=\"agn-sr\"> — {l.done}</span>}</div>\n {s.description && <div className=\"agn-setup__step-desc\">{s.description}</div>}\n </div>\n <div className=\"agn-setup__side\">\n {s.time && !s.done && <span className=\"agn-setup__time\"><Icon name=\"clock\" size={12} />{s.time}</span>}\n {!s.done && s.action && (typeof s.action === 'string' ? <Button size=\"sm\" variant={isNext ? 'primary' : 'neutral'} onClick={s.onAction} href={s.href} as={s.href ? 'a' : 'button'}>{s.action}</Button> : s.action)}\n </div>\n </li>\n );\n })}\n </ol>\n </section>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useMemo } from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { AginiesMark } from '../core/AginiesMark.jsx';\n// First-run card: a brand pane on the left (mark, title, subtitle) and a list of first steps on the right. Render it inside a modal or on the empty workspace; it goes away once the steps are done.\nconst DEFAULT_LABELS = { done: 'done', skip: 'Skip for now', progress: 'completed' };\nexport function WelcomeMat({ title, subtitle, steps = [], onStep, footer, onSkip, brand, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const done = steps.filter((s) => s.done).length;\n const titleId = useMemo(() => uid('agn-welcome'), []);\n return (\n <section className={cx('agn-welcome', className)} aria-labelledby={titleId} {...rest}>\n <div className=\"agn-welcome__brand\">\n {brand || <AginiesMark size={40} decorative />}\n <h2 id={titleId} className=\"agn-welcome__title\">{title}</h2>\n {subtitle && <p className=\"agn-welcome__subtitle\">{subtitle}</p>}\n {steps.length > 0 && <div className=\"agn-welcome__progress agn-num\">{done}/{steps.length} {l.progress}</div>}\n </div>\n <div className=\"agn-welcome__steps\">\n <ol className=\"agn-welcome__list\">\n {steps.map((s, i) => {\n const Comp = onStep && !s.done ? 'button' : 'div';\n return (\n <li key={s.id || i}>\n <Comp type={Comp === 'button' ? 'button' : undefined} className={cx('agn-welcome__step', s.done && 'agn-welcome__step--done', Comp === 'button' && 'agn-focus')} onClick={Comp === 'button' ? () => onStep(s, i) : undefined}>\n <span className={cx('agn-welcome__icon', s.done && 'agn-welcome__icon--done')}><Icon name={s.done ? 'check' : s.icon || 'circle'} size={16} /></span>\n <span className=\"agn-welcome__text\">\n <span className=\"agn-welcome__step-title\">{s.title}{s.done && <span className=\"agn-sr\">, {l.done}</span>}</span>\n {s.description && <span className=\"agn-welcome__step-desc\">{s.description}</span>}\n </span>\n {Comp === 'button' && <Icon name=\"arrow-right\" size={14} className=\"agn-welcome__arrow\" />}\n </Comp>\n </li>\n );\n })}\n </ol>\n {(footer || onSkip) && <div className=\"agn-welcome__footer\">{footer}{onSkip && <button type=\"button\" className=\"agn-btn agn-btn--link agn-focus\" onClick={onSkip}>{l.skip}</button>}</div>}\n </div>\n </section>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Badge } from '../data/Badge.jsx';\n// 56px bottom bar for phones: up to five items with icon and label, 44px targets, the active item in link colour. The sidebar's replacement below 640px.\nconst DEFAULT_LABELS = { navigation: 'Main navigation' };\nexport function MobileTabBar({ items = [], active, onChange, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const list = items.slice(0, 5);\n return (\n <nav className={cx('agn-tabbar', className)} aria-label={l.navigation} {...rest}>\n {list.map((it) => {\n const sel = it.id === active;\n const Comp = it.href ? 'a' : 'button';\n return (\n <Comp key={it.id} href={it.href} type={Comp === 'button' ? 'button' : undefined} className={cx('agn-tabbar__item', 'agn-focus-inset', sel && 'agn-tabbar__item--active')} aria-current={sel ? 'page' : undefined} onClick={(e) => { if (onChange) { if (!it.href) e.preventDefault(); onChange(it.id, it); } }}>\n <span className=\"agn-tabbar__icon\"><Icon name={it.icon} size={20} strokeWidth={sel ? 2.25 : 1.75} />{it.badge != null && <Badge tone=\"bad\" solid size=\"sm\" count={typeof it.badge === 'number' ? it.badge : undefined} className=\"agn-tabbar__badge\">{typeof it.badge === 'number' ? undefined : it.badge}</Badge>}</span>\n <span className=\"agn-tabbar__label\">{it.label}</span>\n </Comp>\n );\n })}\n </nav>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Page controls under a list: range text \"1–25 of 312\", page size, previous and next; compact drops the page size. Numbers are tabular; the range reads in the locale's digits.\nconst DEFAULT_LABELS = { of: 'of', perPage: 'per page', prev: 'Previous page', next: 'Next page', first: 'First page', last: 'Last page', page: 'Page', pageSize: 'Rows per page' };\nexport function Pagination({ page = 1, pageSize = 25, total = 0, onChange, onPageSizeChange, pageSizes = [10, 25, 50, 100], compact, showEdges, locale, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const pages = Math.max(1, Math.ceil(total / pageSize));\n const p = Math.min(Math.max(1, page), pages);\n const from = total === 0 ? 0 : (p - 1) * pageSize + 1;\n const to = Math.min(total, p * pageSize);\n const nf = new Intl.NumberFormat(locale || undefined);\n const go = (n) => onChange && onChange(Math.min(Math.max(1, n), pages));\n return (\n <nav className={cx('agn-pagination', compact && 'agn-pagination--compact', className)} aria-label={l.page} {...rest}>\n {!compact && onPageSizeChange && (\n <label className=\"agn-pagination__size\">\n <span className=\"agn-sr\">{l.pageSize}</span>\n <select className=\"agn-pagination__select agn-focus\" value={pageSize} onChange={(e) => onPageSizeChange(Number(e.target.value))}>{pageSizes.map((s) => <option key={s} value={s}>{s}</option>)}</select>\n <span className=\"agn-pagination__size-label\">{l.perPage}</span>\n </label>\n )}\n <span className=\"agn-pagination__range agn-num\" aria-live=\"polite\">{nf.format(from)}–{nf.format(to)} {l.of} {nf.format(total)}</span>\n <span className=\"agn-pagination__nav\">\n {showEdges && <button type=\"button\" className=\"agn-pagination__btn agn-focus\" aria-label={l.first} onClick={() => go(1)} disabled={p <= 1}><Icon name=\"chevrons-left\" size={14} /></button>}\n <button type=\"button\" className=\"agn-pagination__btn agn-focus\" aria-label={l.prev} onClick={() => go(p - 1)} disabled={p <= 1}><Icon name=\"chevron-left\" size={14} /></button>\n {!compact && <span className=\"agn-pagination__page agn-num\">{nf.format(p)} / {nf.format(pages)}</span>}\n <button type=\"button\" className=\"agn-pagination__btn agn-focus\" aria-label={l.next} onClick={() => go(p + 1)} disabled={p >= pages}><Icon name=\"chevron-right\" size={14} /></button>\n {showEdges && <button type=\"button\" className=\"agn-pagination__btn agn-focus\" aria-label={l.last} onClick={() => go(pages)} disabled={p >= pages}><Icon name=\"chevrons-right\" size={14} /></button>}\n </span>\n </nav>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Step progress with ok, current and upcoming states, horizontal or vertical, with an optional description under each label. A read-only companion to ProgressIndicator: it shows where a run or a rollout is, it does not navigate.\nconst DEFAULT_LABELS = { done: 'done', current: 'in progress', upcoming: 'upcoming', error: 'failed', step: 'Step', of: 'of' };\nexport function Stepper({ steps = [], current = 0, vertical, size = 'md', errorSteps = [], labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const list = steps.map((s) => (typeof s === 'string' ? { label: s } : s));\n return (\n <ol className={cx('agn-stepper', vertical ? 'agn-stepper--vertical' : 'agn-stepper--horizontal', size !== 'md' && 'agn-stepper--' + size, className)} aria-label={l.step + ' ' + (current + 1) + ' ' + l.of + ' ' + list.length} {...rest}>\n {list.map((s, i) => {\n const st = errorSteps.includes(i) || s.error ? 'error' : i < current ? 'done' : i === current ? 'current' : 'upcoming';\n return (\n <li key={i} className={cx('agn-stepper__step', 'agn-stepper__step--' + st)} aria-current={st === 'current' ? 'step' : undefined}>\n <span className=\"agn-stepper__marker\" aria-hidden=\"true\">{st === 'done' ? <Icon name=\"check\" size={12} /> : st === 'error' ? <Icon name=\"x\" size={12} /> : st === 'current' ? <span className=\"agn-stepper__pulse\" /> : null}</span>\n <span className=\"agn-stepper__text\">\n <span className=\"agn-stepper__label\">{s.label}<span className=\"agn-sr\">, {l[st]}</span></span>\n {s.description && <span className=\"agn-stepper__desc\">{s.description}</span>}\n {s.meta && <span className=\"agn-stepper__meta\">{s.meta}</span>}\n </span>\n {i < list.length - 1 && <span className=\"agn-stepper__line\" aria-hidden=\"true\" />}\n </li>\n );\n })}\n </ol>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { AginiesMark } from '../core/AginiesMark.jsx';\nconst SIZE = { page: 96, region: 40, inline: 16 };\n// The brand loader: the mark animated with CSS keyframes only (ring, core and crescent classes on AginiesMark; the paths carry pathLength=1).\n// tier: page = full-viewport overlay with wordmark and label; region = centred in its container (default); inline = 16px in a line of text.\n// variant: orbit (ring turns, core counter-turns in eased quarters, crescent breathes) | pulse (signal-soft halo beats) | draw (ring draws, then core, then both fade).\nexport function AginiesLoader({ tier = 'region', variant = 'orbit', label, showLabel, labels, className, ...rest }) {\n const L = { loading: 'Loading', ...labels };\n const text = label || L.loading;\n const Tag = tier === 'inline' ? 'span' : 'div';\n const visible = showLabel != null ? showLabel : tier === 'page';\n return (\n // biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here\n <Tag className={cx('agn-loader', 'agn-loader--' + tier, 'agn-loader--' + variant, className)} role=\"status\" aria-busy=\"true\" aria-live=\"polite\" {...rest}>\n <span className=\"agn-loader__mark\"><AginiesMark size={SIZE[tier] || SIZE.region} decorative /></span>\n {tier === 'page' && <span className=\"agn-loader__word\">Aginies</span>}\n {visible ? <span className=\"agn-loader__label\">{text}</span> : <span className=\"agn-sr\">{text}</span>}\n </Tag>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nconst WIDTHS = ['72%', '48%', '60%', '36%', '82%', '54%'];\n// Content placeholder with a slow pulse. text = a paragraph of lines (last one shorter); line = one 10px bar; rect = a block; circle = an avatar.\nexport function Skeleton({ shape = 'text', lines = 3, width, height, className, style, ...rest }) {\n if (shape === 'text') {\n return (\n <div className={cx('agn-skeleton-text', className)} style={{ width, ...style }} aria-hidden=\"true\" {...rest}>\n {Array.from({ length: lines }, (_, i) => <span key={i} className=\"agn-skeleton agn-skeleton--line\" style={lines > 1 && i === lines - 1 ? { width: '62%' } : undefined} />)}\n </div>\n );\n }\n return <span className={cx('agn-skeleton', 'agn-skeleton--' + shape, className)} style={{ width, height, ...style }} aria-hidden=\"true\" {...rest} />;\n}\n// A whole page while its data loads: page header (eyebrow, title, action) and a table of rows. Swap for the real page in place.\nexport function PageSkeleton({ header = true, rows = 6, columns = 4, labels, className, ...rest }) {\n const L = { loading: 'Loading page', ...labels };\n const cols = Array.from({ length: columns }, (_, i) => i);\n const grid = { gridTemplateColumns: cols.map((i) => (i === 0 ? '2fr' : '1fr')).join(' ') };\n return (\n // biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here\n <div className={cx('agn-page-skeleton', className)} role=\"status\" aria-busy=\"true\" {...rest}>\n <span className=\"agn-sr\">{L.loading}</span>\n {header && (\n <div className=\"agn-page-skeleton__header\" aria-hidden=\"true\">\n <div><Skeleton shape=\"line\" width={88} height={8} /><Skeleton shape=\"rect\" width={236} height={22} style={{ marginTop: 10 }} /></div>\n <Skeleton shape=\"rect\" width={108} height=\"var(--control-h)\" />\n </div>\n )}\n <div className=\"agn-page-skeleton__table\" aria-hidden=\"true\">\n <div className=\"agn-page-skeleton__row agn-page-skeleton__row--head\" style={grid}>{cols.map((c) => <Skeleton key={c} shape=\"line\" width=\"46%\" height={8} />)}</div>\n {Array.from({ length: rows }, (_, r) => (\n <div key={r} className=\"agn-page-skeleton__row\" style={grid}>{cols.map((c) => <Skeleton key={c} shape=\"line\" width={WIDTHS[(r + c) % WIDTHS.length]} />)}</div>\n ))}\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nexport const TONE_ICON = { info: 'info', ok: 'circle-check', warn: 'triangle-alert', bad: 'circle-alert', neutral: 'info', signal: 'info' };\n// Inline alert inside a page or card: tone wash, icon, title, text, actions and an optional dismiss. Says what happened and what to do.\nexport function Alert({ tone = 'info', icon, title, children, actions, onDismiss, labels, className, ...rest }) {\n const L = { dismiss: 'Dismiss', ...labels };\n return (\n <div className={cx('agn-alert', 'agn-alert--' + tone, className)} role={tone === 'bad' ? 'alert' : 'status'} {...rest}>\n <Icon name={icon || TONE_ICON[tone] || 'info'} size={16} className=\"agn-alert__icon\" />\n <div className=\"agn-alert__body\">\n {title && <div className=\"agn-alert__title\">{title}</div>}\n {children != null && <div className=\"agn-alert__text\">{children}</div>}\n {actions && <div className=\"agn-alert__actions\">{actions}</div>}\n </div>\n {onDismiss && <ButtonIcon icon=\"x\" label={L.dismiss} size=\"xs\" onClick={onDismiss} className=\"agn-alert__close\" />}\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { TONE_ICON } from './Alert.jsx';\n// Transient confirmation after an action. The platform uses ok and bad only; it slides 12px up from the bottom-right corner.\nexport function Toast({ tone = 'ok', title, children, action, onDismiss, duration, labels, className, ...rest }) {\n const L = { dismiss: 'Dismiss', ...labels };\n React.useEffect(() => { if (!duration || !onDismiss) return; const t = setTimeout(onDismiss, duration); return () => clearTimeout(t); }, [duration, onDismiss]);\n return (\n <div className={cx('agn-toast', 'agn-toast--' + tone, className)} role={tone === 'bad' ? 'alert' : 'status'} {...rest}>\n <Icon name={TONE_ICON[tone] || 'info'} size={16} className=\"agn-toast__icon\" />\n <div className=\"agn-toast__body\">\n {title && <div className=\"agn-toast__title\">{title}</div>}\n {children != null && <div className=\"agn-toast__text\">{children}</div>}\n {action && <div className=\"agn-toast__action\">{action}</div>}\n </div>\n {onDismiss && <ButtonIcon icon=\"x\" label={L.dismiss} size=\"xs\" onClick={onDismiss} className=\"agn-toast__close\" />}\n </div>\n );\n}\n// Fixed stack for toasts: bottom-right by default, z-toast, newest at the bottom. static renders it in flow (previews, docs).\n// contained: absolute inside the nearest positioned ancestor (a phone frame, a panel) instead of fixed to the viewport; static (or position=\"static\"): in flow.\nexport function ToastContainer({ position = 'bottom-right', static: isStatic, contained, children, className, ...rest }) {\n const st = isStatic || position === 'static';\n return <div className={cx('agn-toasts', !st && 'agn-toasts--' + position, st && 'agn-toasts--static', contained && !st && 'agn-toasts--contained', className)} aria-live=\"polite\" {...rest}>{children}</div>;\n}\n// Queue of toasts: push({ tone, title, text, action, duration }) returns an id; at most `max` are live, the rest wait; each auto-dismisses after `duration` ms (0 = sticky).\nexport function useToasts({ duration = 5000, max = 3 } = {}) {\n const [live, setLive] = React.useState([]);\n const [tick, setTick] = React.useState(0);\n const queue = React.useRef([]);\n const timers = React.useRef({});\n const dismiss = React.useCallback((id) => { clearTimeout(timers.current[id]); delete timers.current[id]; setLive((l) => l.filter((t) => t.id !== id)); }, []);\n // biome-ignore lint/correctness/useExhaustiveDependencies: tick is the re-run trigger a dismissal bumps so the queue drains\n React.useEffect(() => {\n const room = max - live.length;\n if (room > 0 && queue.current.length) { const take = queue.current.splice(0, room); setLive((l) => l.concat(take)); }\n }, [live, max, tick]);\n React.useEffect(() => {\n live.forEach((t) => {\n const ms = t.duration == null ? duration : t.duration;\n if (timers.current[t.id] || !ms) return;\n timers.current[t.id] = setTimeout(() => dismiss(t.id), ms);\n });\n }, [live, duration, dismiss]);\n React.useEffect(() => () => Object.values(timers.current).forEach(clearTimeout), []);\n const push = React.useCallback((toast) => { const t = { id: uid('toast'), tone: 'ok', ...toast }; queue.current.push(t); setTick((n) => n + 1); return t.id; }, []);\n const clear = React.useCallback(() => { queue.current = []; Object.values(timers.current).forEach(clearTimeout); timers.current = {}; setLive([]); }, []);\n return { toasts: live, push, dismiss, clear };\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { TONE_ICON } from './Alert.jsx';\n// In-context notice at the top of a card, form or section: one line of text and an optional action. Not page-wide, not dismissable.\nexport function ScopedNotification({ tone = 'neutral', icon, children, action, className, ...rest }) {\n return (\n <div className={cx('agn-scoped', 'agn-scoped--' + tone, className)} role={tone === 'bad' ? 'alert' : 'status'} {...rest}>\n <Icon name={icon || TONE_ICON[tone] || 'info'} size={14} className=\"agn-scoped__icon\" />\n <div className=\"agn-scoped__text\">{children}</div>\n {action && <div className=\"agn-scoped__action\">{action}</div>}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\nexport const initials = (name = '') => String(name).trim().split(/\\s+/).slice(0, 2).map((w) => w.charAt(0).toLocaleUpperCase('tr-TR')).join('');\n// One in-app notification row: unread dot, avatar (initials) or icon tile, title, message, time. Click opens the object.\nexport function Notification({ title, message, time, unread, avatar, icon, object, onClick, as, labels, className, ...rest }) {\n const NL = { unread: 'unread', ...labels };\n const Tag = as || (onClick ? 'button' : 'div');\n return (\n <Tag type={Tag === 'button' ? 'button' : undefined} className={cx('agn-notif', unread && 'agn-notif--unread', onClick && 'agn-notif--clickable agn-focus-inset', className)} onClick={onClick} {...rest}>\n <span className=\"agn-notif__dot\" aria-hidden=\"true\" />\n {avatar ? <span className=\"agn-notif__avatar\" aria-hidden=\"true\">{initials(avatar)}</span> : <span className=\"agn-notif__tile\" aria-hidden=\"true\"><Icon name={icon || 'bell'} size={16} /></span>}\n <span className=\"agn-notif__body\">\n <span className=\"agn-notif__title\">{title}{unread && <span className=\"agn-sr\"> ({NL.unread})</span>}</span>\n {message && <span className=\"agn-notif__msg\">{message}</span>}\n {object && <span className=\"agn-notif__object\">{object}</span>}\n </span>\n {time && <span className=\"agn-notif__time\">{time}</span>}\n </Tag>\n );\n}\nfunction dayLabel(date, L, locale) {\n const d = date instanceof Date ? date : new Date(date);\n if (Number.isNaN(d.getTime())) return String(date);\n const now = new Date(); const start = (x) => new Date(x.getFullYear(), x.getMonth(), x.getDate()).getTime();\n const diff = Math.round((start(now) - start(d)) / 86400000);\n if (diff === 0) return L.today; if (diff === 1) return L.yesterday;\n return d.toLocaleDateString(locale, { day: '2-digit', month: '2-digit', year: 'numeric' });\n}\n// The bell panel: a titled list of notifications grouped by day (Today, Yesterday, 15.10.2026) with \"Mark all as read\". bare drops the floating frame (shadow, border, 360px width) for a card or widget; header={false} drops the head.\nexport function NotificationList({ title, items = [], children, onMarkAll, locale = 'tr-TR', bare, header = true, labels, className, ...rest }) {\n const L = { title: 'Notifications', markAll: 'Mark all as read', today: 'Today', yesterday: 'Yesterday', empty: 'Nothing new', unread: 'unread', ...labels };\n const groups = [];\n items.forEach((it) => {\n const key = it.day || (it.date ? dayLabel(it.date, L, locale) : '');\n let g = groups.find((x) => x.key === key); if (!g) { g = { key, items: [] }; groups.push(g); } g.items.push(it);\n });\n const unread = items.filter((i) => i.unread).length;\n return (\n <section className={cx('agn-notif-list', bare && 'agn-notif-list--bare', className)} aria-label={title || L.title} {...rest}>\n {header && <header className=\"agn-notif-list__head\">\n <h3 className=\"agn-notif-list__title\">{title || L.title}{unread > 0 && <span className=\"agn-notif-list__count\">{unread}</span>}</h3>\n {onMarkAll && <Button variant=\"link\" size=\"sm\" onClick={onMarkAll}>{L.markAll}</Button>}\n </header>}\n <div className=\"agn-notif-list__body\">\n {groups.map((g) => (\n <div key={g.key || 'all'} className=\"agn-notif-list__group\">\n {g.key && <div className=\"agn-eyebrow agn-eyebrow--quiet agn-notif-list__day\">{g.key}</div>}\n {g.items.map((it, i) => { const { id, day: _day, date: _date, ...p } = it; return <Notification key={id || i} labels={{ unread: L.unread }} {...p} />; })}\n </div>\n ))}\n {children}\n {!items.length && !children && <div className=\"agn-notif-list__empty\">{L.empty}</div>}\n </div>\n </section>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button, ButtonIcon } from '../actions/Button.jsx';\nconst FOCUSABLE = 'a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex=\"-1\"])';\n// Dialog behaviour shared by Modal and Prompt: Esc closes, Tab is trapped, body scroll is locked, focus moves in and is restored on close.\nexport function useDialog(open, onClose, ref, { lockScroll = true, autoFocus = true } = {}) {\n const closeRef = React.useRef(onClose); closeRef.current = onClose;\n // biome-ignore lint/correctness/useExhaustiveDependencies: runs once per open; re-running on lockScroll/autoFocus would steal and restore focus mid-dialog. ref is a ref object; onClose is read through closeRef so it is never stale\n React.useEffect(() => {\n if (!open) return;\n const previous = document.activeElement;\n const onKey = (e) => {\n if (e.key === 'Escape') { e.stopPropagation(); closeRef.current && closeRef.current(); return; }\n if (e.key !== 'Tab' || !ref.current) return;\n const f = Array.from(ref.current.querySelectorAll(FOCUSABLE));\n if (!f.length) { e.preventDefault(); ref.current.focus(); return; }\n const first = f[0], last = f[f.length - 1], inside = ref.current.contains(document.activeElement);\n if (e.shiftKey && (document.activeElement === first || !inside)) { e.preventDefault(); last.focus(); }\n else if (!e.shiftKey && (document.activeElement === last || !inside)) { e.preventDefault(); first.focus(); }\n };\n document.addEventListener('keydown', onKey);\n const overflow = document.body.style.overflow;\n if (lockScroll) document.body.style.overflow = 'hidden';\n const t = setTimeout(() => {\n const el = ref.current; if (!el || !autoFocus) return;\n const target = el.querySelector('[data-autofocus]') || Array.from(el.querySelectorAll(FOCUSABLE)).find((x) => !x.hasAttribute('data-dialog-close')) || el;\n target.focus();\n }, 20);\n return () => { clearTimeout(t); document.removeEventListener('keydown', onKey); if (lockScroll) document.body.style.overflow = overflow; if (previous && previous.focus) previous.focus(); };\n }, [open]);\n}\n// Modal dialog: scrim (--overlay), header with title and close, scrollable body, footer with the actions. Renders nothing while closed.\nexport function Modal({ open, onClose, title, description, size = 'md', footer, children, hideClose, scrimClose = true, labels, className, bodyClassName, ...rest }) {\n const L = { close: 'Close', ...labels };\n const ref = React.useRef(null);\n const ids = React.useMemo(() => ({ t: uid('modal-title'), d: uid('modal-desc') }), []);\n useDialog(open, onClose, ref);\n if (!open) return null;\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: pointer-only convenience; Esc closes the dialog from the keyboard\n <div className=\"agn-scrim\" onMouseDown={(e) => { if (scrimClose && e.target === e.currentTarget && onClose) onClose(); }}>\n <div ref={ref} role=\"dialog\" aria-modal=\"true\" aria-labelledby={title ? ids.t : undefined} aria-describedby={description ? ids.d : undefined} tabIndex={-1} className={cx('agn-modal', 'agn-modal--' + size, className)} {...rest}>\n {(title || !hideClose) && (\n <header className=\"agn-modal__head\">\n <div className=\"agn-modal__heading\">\n {title && <h2 id={ids.t} className=\"agn-modal__title\">{title}</h2>}\n {description && <p id={ids.d} className=\"agn-modal__desc\">{description}</p>}\n </div>\n {!hideClose && <ButtonIcon icon=\"x\" label={L.close} size=\"sm\" onClick={onClose} data-dialog-close=\"\" className=\"agn-modal__close\" />}\n </header>\n )}\n <div className={cx('agn-modal__body', bodyClassName)}>{children}</div>\n {footer && <footer className=\"agn-modal__foot\">{footer}</footer>}\n </div>\n </div>\n );\n}\nconst PROMPT_ICON = { bad: 'trash-2', warn: 'triangle-alert', info: 'info', ok: 'circle-check' };\n// Confirm dialog: a question as the title, the consequence spelled out, Cancel + one confirming action (destructive when tone is bad).\nexport function Prompt({ open, onClose, onConfirm, title, children, consequence, tone = 'warn', icon, confirmLabel, cancelLabel, loading, labels, className, ...rest }) {\n const L = { confirm: 'Confirm', cancel: 'Cancel', ...labels };\n const ref = React.useRef(null);\n const ids = React.useMemo(() => ({ t: uid('prompt-title'), d: uid('prompt-desc') }), []);\n useDialog(open, onClose, ref);\n if (!open) return null;\n return (\n <div className=\"agn-scrim\">\n <div ref={ref} role=\"alertdialog\" aria-modal=\"true\" aria-labelledby={ids.t} aria-describedby={ids.d} tabIndex={-1} className={cx('agn-modal agn-modal--sm agn-prompt', 'agn-prompt--' + tone, className)} {...rest}>\n <div className=\"agn-prompt__body\">\n <span className=\"agn-prompt__icon\"><Icon name={icon || PROMPT_ICON[tone] || 'info'} size={20} /></span>\n <div>\n <h2 id={ids.t} className=\"agn-modal__title\">{title}</h2>\n <div id={ids.d} className=\"agn-prompt__text\">{children}{consequence && <p className=\"agn-prompt__consequence\">{consequence}</p>}</div>\n </div>\n </div>\n <footer className=\"agn-modal__foot\">\n <Button onClick={onClose} disabled={loading}>{cancelLabel || L.cancel}</Button>\n <Button variant={tone === 'bad' ? 'destructive' : 'primary'} onClick={onConfirm} loading={loading} data-autofocus=\"\">{confirmLabel || L.confirm}</Button>\n </footer>\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { useDialog } from './Modal.jsx';\n// Bottom sheet for phones and narrow frames: scrim, a panel rising from the bottom with --radius-2xl top corners, a grab handle, title, scrolling body and a footer. Focus is trapped and restored; Esc and the scrim close it. contained keeps it inside a positioned frame.\nexport function Sheet({ open, onClose, title, description, footer, children, hideClose, scrimClose = true, contained, maxHeight, labels, className, style, ...rest }) {\n const L = { close: 'Close', ...labels };\n const ref = React.useRef(null);\n const ids = React.useMemo(() => ({ t: uid('sheet-title'), d: uid('sheet-desc') }), []);\n useDialog(open, onClose, ref, { lockScroll: !contained });\n if (!open) return null;\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: pointer-only convenience; Esc closes the dialog from the keyboard\n <div className={cx('agn-sheet-scrim', contained && 'agn-sheet-scrim--contained')} onMouseDown={(e) => { if (scrimClose && e.target === e.currentTarget && onClose) onClose(); }}>\n <div ref={ref} role=\"dialog\" aria-modal=\"true\" aria-labelledby={title ? ids.t : undefined} aria-describedby={description ? ids.d : undefined} tabIndex={-1} className={cx('agn-sheet', className)} style={maxHeight != null ? { maxHeight: typeof maxHeight === 'number' ? maxHeight + 'px' : maxHeight, ...style } : style} {...rest}>\n <span className=\"agn-sheet__handle\" aria-hidden=\"true\" />\n {(title || !hideClose) && (\n <header className=\"agn-sheet__head\">\n <div className=\"agn-sheet__heading\">\n {title && <h2 id={ids.t} className=\"agn-sheet__title\">{title}</h2>}\n {description && <p id={ids.d} className=\"agn-sheet__desc\">{description}</p>}\n </div>\n {!hideClose && <ButtonIcon icon=\"x\" label={L.close} size=\"sm\" onClick={onClose} data-dialog-close=\"\" />}\n </header>\n )}\n <div className=\"agn-sheet__body\">{children}</div>\n {footer && <footer className=\"agn-sheet__foot\">{footer}</footer>}\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { ButtonIcon } from '../actions/Button.jsx';\nexport const PLACEMENTS = ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'right'];\n// Non-modal layer anchored to its trigger: 8 placements, optional arrow, header, footer. Closes on outside click and Esc; `open` makes it controlled (previews).\nexport function Popover({ trigger, open: openProp, defaultOpen = false, onOpenChange, placement = 'bottom-start', arrow = false, title, footer, children, width = 288, hideClose, static: isStatic, labels, className, ...rest }) {\n const L = { close: 'Close', ...labels };\n const [own, setOwn] = React.useState(defaultOpen);\n const controlled = openProp != null; const open = controlled ? openProp : own;\n const wrap = React.useRef(null); const pop = React.useRef(null); const byUser = React.useRef(false);\n const id = React.useMemo(() => uid('pop'), []);\n const set = (v) => { if (!controlled) setOwn(v); onOpenChange && onOpenChange(v); };\n const setRef = React.useRef(set); setRef.current = set;\n // biome-ignore lint/correctness/useExhaustiveDependencies: runs on open transitions; id is created once and isStatic is a static prop; set is read through setRef\n React.useEffect(() => {\n if (!open || isStatic) return;\n const down = (e) => { if (wrap.current && !wrap.current.contains(e.target)) setRef.current(false); };\n const key = (e) => { if (e.key === 'Escape') { setRef.current(false); const t = wrap.current && wrap.current.querySelector('[aria-controls=\"' + id + '\"]'); t && t.focus(); } };\n document.addEventListener('mousedown', down); document.addEventListener('keydown', key);\n if (byUser.current && pop.current) { pop.current.focus(); byUser.current = false; }\n return () => { document.removeEventListener('mousedown', down); document.removeEventListener('keydown', key); };\n }, [open]);\n const layer = (\n <div ref={pop} id={id} role=\"dialog\" aria-label={typeof title === 'string' ? title : undefined} tabIndex={-1} className={cx('agn-pop', isStatic ? 'agn-pop--static' : 'agn-pop--' + placement, arrow && 'agn-pop--arrow', className)} style={{ width }} {...rest}>\n {arrow && !isStatic && <span className=\"agn-pop__arrow\" aria-hidden=\"true\" />}\n {(title || !hideClose) && <div className=\"agn-pop__head\">{title && <div className=\"agn-pop__title\">{title}</div>}{!hideClose && <ButtonIcon icon=\"x\" label={L.close} size=\"xs\" onClick={() => set(false)} className=\"agn-pop__close\" />}</div>}\n <div className=\"agn-pop__body\">{children}</div>\n {footer && <div className=\"agn-pop__foot\">{footer}</div>}\n </div>\n );\n if (isStatic) return layer;\n return (\n <span className=\"agn-pop-wrap\" ref={wrap}>\n {trigger && React.cloneElement(trigger, { onClick: (e) => { trigger.props.onClick && trigger.props.onClick(e); byUser.current = !open; set(!open); }, 'aria-expanded': open, 'aria-haspopup': 'dialog', 'aria-controls': id })}\n {open && layer}\n </span>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\n// Short hint on hover or focus: 12px mono-ish on a --text ground. Never put actions in it; kbd shows the shortcut.\nexport function Tooltip({ content, kbd, placement = 'top', delay = 400, open: openProp, children, className, ...rest }) {\n const [own, setOwn] = React.useState(false);\n const open = openProp != null ? openProp : own;\n const timer = React.useRef(null);\n const id = React.useMemo(() => uid('tip'), []);\n const show = () => { clearTimeout(timer.current); timer.current = setTimeout(() => setOwn(true), delay); };\n const hide = () => { clearTimeout(timer.current); setOwn(false); };\n React.useEffect(() => () => clearTimeout(timer.current), []);\n // biome-ignore lint/correctness/useExhaustiveDependencies: hide only touches a ref and a state setter, so the closure from any render behaves the same\n React.useEffect(() => { if (!open) return; const k = (e) => e.key === 'Escape' && hide(); document.addEventListener('keydown', k); return () => document.removeEventListener('keydown', k); }, [open]);\n const child = React.Children.only(children);\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: the wrapper only listens: hover and focus bubble up from the focusable trigger it wraps; it is not itself operable\n <span className={cx('agn-tip-wrap', className)} onMouseEnter={show} onMouseLeave={hide} onFocus={show} onBlur={hide} {...rest}>\n {React.cloneElement(child, { 'aria-describedby': open ? id : child.props['aria-describedby'] })}\n {open && <span role=\"tooltip\" id={id} className={cx('agn-tip', 'agn-tip--' + placement)}>{content}{kbd && <kbd className=\"agn-tip__kbd\">{kbd}</kbd>}</span>}\n </span>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nconst PX = { xs: 12, sm: 16, md: 20, lg: 32 };\n// Generic activity spinner (link-coloured stroke) for a control or a region; the brand loader is AginiesLoader. cover overlays the nearest positioned parent.\nexport function Spinner({ size = 'md', tone = 'signal', label, cover, labels, className, ...rest }) {\n const L = { loading: 'Loading', ...labels };\n const px = PX[size] || PX.md;\n const svg = (\n <svg className=\"agn-spinner__svg\" width={px} height={px} viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <circle className=\"agn-spinner__track\" cx=\"12\" cy=\"12\" r=\"9.5\" strokeWidth=\"2.5\" />\n <circle className=\"agn-spinner__arc\" cx=\"12\" cy=\"12\" r=\"9.5\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeDasharray=\"18 42\" />\n </svg>\n );\n return (\n // biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here\n <span className={cx('agn-spinner', 'agn-spinner--' + size, 'agn-spinner--' + tone, cover && 'agn-spinner--cover', className)} role=\"status\" aria-busy=\"true\" {...rest}>\n {svg}\n {label ? <span className=\"agn-spinner__label\">{label}</span> : <span className=\"agn-sr\">{L.loading}</span>}\n </span>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\n// Linear progress: determinate (value of max) or indeterminate; label on the left, value on the right in mono. Tone says what the bar means.\nexport function ProgressBar({ value = 0, max = 100, indeterminate, tone = 'signal', size = 'md', label, showValue, valueText, labels, className, ...rest }) {\n const L = { working: 'Working', ...labels };\n const id = React.useMemo(() => uid('progress'), []);\n const pct = Math.max(0, Math.min(100, (value / (max || 1)) * 100));\n const text = valueText != null ? valueText : Math.round(pct) + '%';\n return (\n <div className={cx('agn-progress', 'agn-progress--' + size, 'agn-progress--' + tone, indeterminate && 'agn-progress--indeterminate', className)} {...rest}>\n {(label || showValue) && (\n <div className=\"agn-progress__row\">\n {label && <span id={id} className=\"agn-progress__label\">{label}</span>}\n {showValue && !indeterminate && <span className=\"agn-progress__value agn-num\">{text}</span>}\n </div>\n )}\n <div className=\"agn-progress__track\" role=\"progressbar\" aria-labelledby={label ? id : undefined} aria-label={!label ? L.working : undefined} aria-valuemin={0} aria-valuemax={max} aria-valuenow={indeterminate ? undefined : value} aria-valuetext={indeterminate ? L.working : text}>\n <div className=\"agn-progress__fill\" style={indeterminate ? undefined : { width: pct + '%' }} />\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Circular progress with the value in the centre set like a stat; label under it. For completion, quota and score (0–100 or value of max).\nexport function ProgressRing({ value = 0, max = 100, size = 64, strokeWidth = 6, tone = 'signal', showValue = true, valueText, label, children, className, ...rest }) {\n const pct = Math.max(0, Math.min(100, (value / (max || 1)) * 100));\n const r = (size - strokeWidth) / 2, c = 2 * Math.PI * r;\n const text = valueText != null ? valueText : Math.round(pct) + '%';\n return (\n <div className={cx('agn-ring', 'agn-ring--' + tone, className)} style={{ width: size }} {...rest}>\n <div className=\"agn-ring__box\" style={{ width: size, height: size }} role=\"progressbar\" aria-valuemin={0} aria-valuemax={max} aria-valuenow={value} aria-valuetext={text} aria-label={typeof label === 'string' ? label : undefined}>\n <svg width={size} height={size} viewBox={`0 0 ${size} ${size}`} aria-hidden=\"true\">\n <circle className=\"agn-ring__track\" cx={size / 2} cy={size / 2} r={r} strokeWidth={strokeWidth} fill=\"none\" />\n <circle className=\"agn-ring__arc\" cx={size / 2} cy={size / 2} r={r} strokeWidth={strokeWidth} fill=\"none\" strokeLinecap={pct > 0 && pct < 100 ? 'round' : 'butt'} strokeDasharray={c} strokeDashoffset={c * (1 - pct / 100)} transform={`rotate(-90 ${size / 2} ${size / 2})`} />\n </svg>\n <div className=\"agn-ring__center\" style={{ fontSize: Math.max(11, Math.round(size * 0.24)) }}>{children != null ? children : showValue ? <span className=\"agn-ring__value agn-num\">{text}</span> : null}</div>\n </div>\n {label && <div className=\"agn-ring__label\">{label}</div>}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\n// Bottom-docked floating composer for a note, an e-mail or a draft: header (icon, title, minimise, close), body, toolbar on the left, footer actions on the right.\nexport function DockedComposer({ title, icon = 'pen-line', minimized: minProp, defaultMinimized = false, onMinimize, onClose, toolbar, footer, children, side = 'right', static: isStatic, labels, className, ...rest }) {\n const L = { minimize: 'Minimise', restore: 'Restore', close: 'Close', ...labels };\n const [own, setOwn] = React.useState(defaultMinimized);\n const min = minProp != null ? minProp : own;\n const toggle = () => { const v = !min; if (minProp == null) setOwn(v); onMinimize && onMinimize(v); };\n return (\n <section className={cx('agn-composer', 'agn-composer--' + side, min && 'agn-composer--min', isStatic && 'agn-composer--static', className)} aria-label={typeof title === 'string' ? title : undefined} {...rest}>\n <header className=\"agn-composer__head\">\n <Icon name={icon} size={16} className=\"agn-composer__icon\" />\n <h3 className=\"agn-composer__title\">{title}</h3>\n <div className=\"agn-composer__ctl\">\n <ButtonIcon icon={min ? 'chevron-up' : 'minus'} label={min ? L.restore : L.minimize} size=\"xs\" onClick={toggle} aria-expanded={!min} />\n {onClose && <ButtonIcon icon=\"x\" label={L.close} size=\"xs\" onClick={onClose} />}\n </div>\n </header>\n {!min && (\n <>\n <div className=\"agn-composer__body\">{children}</div>\n {(toolbar || footer) && <footer className=\"agn-composer__foot\"><div className=\"agn-composer__tools\">{toolbar}</div><div className=\"agn-composer__actions\">{footer}</div></footer>}\n </>\n )}\n </section>\n );\n}\n// Bottom bar of utilities (history, notes, chat) for the service console; the active one opens its panel above the bar.\nexport function DockedUtilityBar({ items = [], active, onChange, panel, static: isStatic, labels, className, ...rest }) {\n const L = { utilities: 'Utilities', ...labels };\n return (\n <div className={cx('agn-utility', isStatic && 'agn-utility--static', className)} {...rest}>\n {active && panel && <section className=\"agn-utility__panel\" aria-label={(items.find((i) => i.id === active) || {}).label}>{panel}</section>}\n <div className=\"agn-utility__bar\" role=\"toolbar\" aria-label={L.utilities}>\n {items.map((it) => (\n <button key={it.id} type=\"button\" className={cx('agn-utility__item', it.id === active && 'agn-utility__item--active')} aria-pressed={it.id === active} onClick={() => onChange && onChange(it.id === active ? null : it.id)}>\n <Icon name={it.icon || 'panel-bottom'} size={14} />\n <span>{it.label}</span>\n {it.badge != null && <span className=\"agn-utility__badge agn-num\">{it.badge}</span>}\n </button>\n ))}\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Button, ButtonIcon } from '../actions/Button.jsx';\nimport { initials } from './Notification.jsx';\n// Post composer for a feed or a record's notes: avatar, textarea that expands on focus, attach and mention tools, one submit.\nexport function Publisher({ user, placeholder, value, defaultValue = '', onChange, onSubmit, onAttach, onMention, submitLabel, expanded: expProp, labels, className, ...rest }) {\n const L = { placeholder: 'Write a note…', submit: 'Post', attach: 'Attach file', mention: 'Mention someone', ...labels };\n const [own, setOwn] = React.useState(defaultValue);\n const [focus, setFocus] = React.useState(false);\n const val = value != null ? value : own;\n const expanded = expProp != null ? expProp : focus || val.length > 0;\n const name = typeof user === 'string' ? user : user && user.name;\n const submit = () => { if (!val.trim()) return; onSubmit && onSubmit(val); if (value == null) setOwn(''); };\n return (\n <div className={cx('agn-publisher', expanded && 'agn-publisher--open', className)} {...rest}>\n {name && <span className=\"agn-publisher__avatar\" aria-hidden=\"true\">{initials(name)}</span>}\n <div className=\"agn-publisher__field\">\n <textarea className=\"agn-publisher__input\" rows={expanded ? 3 : 1} placeholder={placeholder || L.placeholder} value={val} aria-label={placeholder || L.placeholder}\n onChange={(e) => { if (value == null) setOwn(e.target.value); onChange && onChange(e.target.value); }}\n onFocus={() => setFocus(true)} onBlur={() => setFocus(false)}\n onKeyDown={(e) => { if (e.key === 'Enter' && (e.metaKey || e.ctrlKey)) { e.preventDefault(); submit(); } }} />\n {expanded && (\n <div className=\"agn-publisher__bar\">\n <div className=\"agn-publisher__tools\">\n <ButtonIcon icon=\"paperclip\" label={L.attach} size=\"sm\" onClick={onAttach} />\n <ButtonIcon icon=\"at-sign\" label={L.mention} size=\"sm\" onClick={onMention} />\n </div>\n <Button variant=\"primary\" size=\"sm\" disabled={!val.trim()} onClick={submit}>{submitLabel || L.submit}</Button>\n </div>\n )}\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\n// Empty region: an illustration or a boxed icon, a short title, one line of text and at most two actions. compact for an empty table or list.\nexport function EmptyState({ illustration, icon, product, title, children, action, secondary, compact, className, ...rest }) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here\n <div className={cx('agn-empty', compact && 'agn-empty--compact', className)} role=\"status\" {...rest}>\n {illustration ? <div className=\"agn-empty__art\">{illustration}</div>\n : (icon || product) && <span className=\"agn-empty__icon\">{product ? <ProductIcon product={product} size={compact ? 20 : 24} /> : <Icon name={icon} size={compact ? 18 : 22} />}</span>}\n <div className=\"agn-empty__body\">\n {title && <h4 className=\"agn-empty__title\">{title}</h4>}\n {children != null && <p className=\"agn-empty__text\">{children}</p>}\n {(action || secondary) && <div className=\"agn-empty__actions\">{action}{secondary}</div>}\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\n// Scroll container of a conversation: messages, events and dividers, newest at the bottom; sticks to the bottom as children change.\nexport function ChatThread({ children, stickToBottom = true, userSide = 'start', maxHeight, labels, className, style, ...rest }) {\n const L = { thread: 'Conversation', ...labels };\n const ref = React.useRef(null);\n // biome-ignore lint/correctness/useExhaustiveDependencies: children is the trigger: new content scrolls the log to the bottom\n React.useEffect(() => { if (stickToBottom && ref.current) ref.current.scrollTop = ref.current.scrollHeight; }, [children, stickToBottom]);\n return <div ref={ref} className={cx('agn-chat', 'agn-chat--user-' + userSide, className)} role=\"log\" aria-live=\"polite\" aria-label={L.thread} style={{ maxHeight, ...style }} {...rest}>{children}</div>;\n}\n// Day separator (\"15.10.2026\", \"Today\") or the \"New messages\" line between read and unread.\nexport function ChatDivider({ variant = 'day', children, labels, className, ...rest }) {\n const L = { newMessages: 'New messages', ...labels };\n return <div className={cx('agn-chat__divider', 'agn-chat__divider--' + variant, className)} {...rest}><span>{children != null ? children : variant === 'new' ? L.newMessages : null}</span></div>;\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\nimport { ChatMarkdown } from './ChatMarkdown.jsx';\nimport { ToolCallCard } from './ToolCallCard.jsx';\nimport { StreamingIndicator } from './StreamingIndicator.jsx';\nconst TICK = { sending: 'clock', sent: 'check', delivered: 'check-check', read: 'check-check', failed: 'circle-alert' };\nconst initials = (name = '') => String(name).trim().split(/\\s+/).slice(0, 2).map((w) => w.charAt(0).toLocaleUpperCase('tr-TR')).join('');\nfunction Structured({ data, onAction }) {\n const act = (a) => onAction && onAction(a.value != null ? a.value : a.label, a);\n return (\n <div className=\"agn-msg__structured\">\n {data.image && <figure className=\"agn-msg__figure\"><img className=\"agn-msg__image\" src={data.image.src} alt={data.image.alt || ''} />{data.image.caption && <figcaption>{data.image.caption}</figcaption>}</figure>}\n {data.cards && data.cards.length > 0 && (\n <div className=\"agn-msg__cards\">{data.cards.map((c, i) => (\n <div key={i} className=\"agn-msg__card\">\n {c.image && <img className=\"agn-msg__card-image\" src={c.image} alt={c.imageAlt || ''} />}\n <div className=\"agn-msg__card-body\">\n <div className=\"agn-msg__card-title\">{c.title}</div>\n {c.text && <div className=\"agn-msg__card-text\">{c.text}</div>}\n {c.actions && <div className=\"agn-msg__card-actions\">{c.actions.map((a, j) => <Button key={j} size=\"xs\" variant={a.variant || 'neutral'} onClick={() => act(a)}>{a.label}</Button>)}</div>}\n </div>\n </div>))}</div>\n )}\n {data.table && (\n <div className=\"agn-msg__table-wrap\"><table className=\"agn-msg__table\">\n <thead><tr>{data.table.columns.map((c, i) => <th key={i}>{c}</th>)}</tr></thead>\n <tbody>{data.table.rows.map((r, i) => <tr key={i}>{r.map((v, j) => <td key={j}>{v}</td>)}</tr>)}</tbody>\n </table></div>\n )}\n {data.buttons && data.buttons.length > 0 && <div className=\"agn-msg__buttons\">{data.buttons.map((b, i) => <Button key={i} size=\"sm\" variant={b.variant || 'neutral'} icon={b.icon} onClick={() => act(b)}>{b.label}</Button>)}</div>}\n </div>\n );\n}\n// One message in a thread. role: user (customer) | agent (the bot, with an agent tile) | human-agent (a person at the desk) | system (centred note).\n// Body is markdown by default (string children); structured renders buttons, cards, a table or an image; sources and tools hang under the bubble.\nexport function ChatMessage({ role = 'agent', name, time, status, avatar, children, markdown = true, structured, sources, tools, streaming, onAction, labels, className, ...rest }) {\n const L = { sending: 'Sending', sent: 'Sent', delivered: 'Delivered', read: 'Read', failed: 'Not delivered', sources: 'Sources', tools: 'tool calls', tool: 'tool call', agent: 'Agent', you: 'You', ...labels };\n if (role === 'system') return <div className={cx('agn-msg agn-msg--system', className)} {...rest}><span className=\"agn-msg__system\">{children}</span>{time && <span className=\"agn-msg__time\">{time}</span>}</div>;\n const body = typeof children === 'string' && markdown ? <ChatMarkdown source={children} /> : children;\n const side = role === 'agent' ? <span className=\"agn-msg__tile\" aria-hidden=\"true\"><Icon name=\"bot\" size={14} /></span>\n : role === 'human-agent' || avatar ? <span className=\"agn-msg__avatar\" aria-hidden=\"true\">{typeof avatar === 'string' ? initials(avatar) : avatar || initials(name)}</span> : null;\n return (\n <div className={cx('agn-msg', 'agn-msg--' + role, streaming && 'agn-msg--streaming', className)} {...rest}>\n {side && <div className=\"agn-msg__side\">{side}</div>}\n <div className=\"agn-msg__col\">\n {(name || role === 'agent') && <div className=\"agn-msg__name\">{name || L.agent}</div>}\n <div className=\"agn-msg__bubble\">\n {body}\n {streaming && (children == null || children === '' ? <StreamingIndicator inline /> : <span className=\"agn-msg__cursor\" aria-hidden=\"true\" />)}\n </div>\n {structured && <Structured data={structured} onAction={onAction} />}\n {tools && tools.length > 0 && (\n <details className=\"agn-msg__tools\">\n <summary className=\"agn-msg__tools-head agn-focus\"><Icon name=\"chevron-right\" size={12} className=\"agn-msg__tools-caret\" /><Icon name=\"wrench\" size={12} />{tools.length} {tools.length === 1 ? L.tool : L.tools}</summary>\n <div className=\"agn-msg__tools-body\">{tools.map((t, i) => <ToolCallCard key={t.id || i} {...t} />)}</div>\n </details>\n )}\n {sources && sources.length > 0 && (\n <div className=\"agn-msg__sources\">\n <span className=\"agn-eyebrow agn-eyebrow--quiet\">{L.sources}</span>\n <ul className=\"agn-msg__source-list\">{sources.map((s, i) => <li key={i}>{s.href ? <a className=\"agn-msg__source\" href={s.href} target=\"_blank\" rel=\"noopener noreferrer\"><Icon name={s.icon || 'file-text'} size={11} />{s.label}</a> : <span className=\"agn-msg__source\"><Icon name={s.icon || 'file-text'} size={11} />{s.label}</span>}</li>)}</ul>\n </div>\n )}\n {(time || status) && (\n <div className=\"agn-msg__meta\">\n {time && <span className=\"agn-msg__time\">{time}</span>}\n {status && TICK[status] && <span className={cx('agn-msg__tick', 'agn-msg__tick--' + status)} title={L[status]}><Icon name={TICK[status]} size={12} /><span className=\"agn-sr\">{L[status]}</span>{status === 'failed' && <span className=\"agn-msg__tick-text\">{L.failed}</span>}</span>}\n </div>\n )}\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\n// Small markdown renderer for agent replies: headings, bold/italic, inline and fenced code, lists, links, tables, blockquote, rules. Raw HTML is shown as text, never rendered.\nconst INLINE = /(`[^`\\n]+`)|(\\*\\*[^*\\n]+\\*\\*)|(__[^_\\n]+__)|(\\*[^*\\n]+\\*)|(\\b_[^_\\n]+_\\b)|(\\[[^\\]\\n]+\\]\\([^)\\s]+\\))|(https?:\\/\\/[^\\s<>()]+)/g;\nconst safeHref = (u) => (/^(https?:|mailto:|tel:|\\/|#)/i.test(u) ? u : '#');\nexport function renderInline(text, depth = 0) {\n const re = new RegExp(INLINE.source, 'g'); const out = []; let last = 0, m, k = 0;\n // biome-ignore lint/suspicious/noAssignInExpressions: the double-parenthesised assignment is the regex-exec loop idiom: assign the match, then test it\n while ((m = re.exec(text))) {\n if (m.index > last) out.push(text.slice(last, m.index));\n const s = m[0];\n if (m[1]) out.push(<code key={k++} className=\"agn-md__code\">{s.slice(1, -1)}</code>);\n else if (m[2] || m[3]) out.push(<strong key={k++}>{depth < 2 ? renderInline(s.slice(2, -2), depth + 1) : s.slice(2, -2)}</strong>);\n else if (m[4] || m[5]) out.push(<em key={k++}>{depth < 2 ? renderInline(s.slice(1, -1), depth + 1) : s.slice(1, -1)}</em>);\n else if (m[6]) { const mm = /^\\[([^\\]]+)\\]\\(([^)\\s]+)\\)/.exec(s); out.push(<a key={k++} href={safeHref(mm[2])} target=\"_blank\" rel=\"noopener noreferrer\">{mm[1]}</a>); }\n else if (m[7]) out.push(<a key={k++} href={safeHref(s)} target=\"_blank\" rel=\"noopener noreferrer\">{s}</a>);\n last = m.index + s.length;\n }\n if (last < text.length) out.push(text.slice(last));\n return out;\n}\nconst LIST = /^\\s*([-*+]|\\d+[.)])\\s+(.*)$/;\nconst BLOCK_START = /^(```|#{1,6}\\s|>|\\|)/;\nexport function parseBlocks(src) {\n const lines = String(src == null ? '' : src).replace(/\\r\\n?/g, '\\n').split('\\n');\n const blocks = []; let i = 0, m;\n while (i < lines.length) {\n const line = lines[i];\n if (!line.trim()) { i++; continue; }\n // biome-ignore lint/suspicious/noAssignInExpressions: the double-parenthesised assignment is the regex-exec loop idiom: assign the match, then test it\n if ((m = /^```\\s*([\\w-]+)?\\s*$/.exec(line))) { const buf = []; i++; while (i < lines.length && !/^```\\s*$/.test(lines[i])) buf.push(lines[i++]); i++; blocks.push({ type: 'code', lang: m[1], text: buf.join('\\n') }); continue; }\n // biome-ignore lint/suspicious/noAssignInExpressions: the double-parenthesised assignment is the regex-exec loop idiom: assign the match, then test it\n if ((m = /^(#{1,6})\\s+(.*)$/.exec(line))) { blocks.push({ type: 'h', level: m[1].length, text: m[2].replace(/\\s#+$/, '') }); i++; continue; }\n if (/^\\s*([-*_])(\\s*\\1){2,}\\s*$/.test(line)) { blocks.push({ type: 'hr' }); i++; continue; }\n if (/^>\\s?/.test(line)) { const buf = []; while (i < lines.length && /^>\\s?/.test(lines[i])) buf.push(lines[i++].replace(/^>\\s?/, '')); blocks.push({ type: 'quote', blocks: parseBlocks(buf.join('\\n')) }); continue; }\n if (/^\\|/.test(line) && i + 1 < lines.length && /^\\|?\\s*:?-{2,}/.test(lines[i + 1])) {\n const rows = []; while (i < lines.length && /^\\|/.test(lines[i])) rows.push(lines[i++]);\n const cells = (r) => r.replace(/^\\|/, '').replace(/\\|\\s*$/, '').split('|').map((c) => c.trim());\n const aligns = cells(rows[1]).map((c) => (/^:-+:$/.test(c) ? 'center' : /-+:$/.test(c) ? 'right' : 'left'));\n blocks.push({ type: 'table', head: cells(rows[0]), aligns, rows: rows.slice(2).map(cells) }); continue;\n }\n // biome-ignore lint/suspicious/noAssignInExpressions: the double-parenthesised assignment is the regex-exec loop idiom: assign the match, then test it\n if ((m = LIST.exec(line))) {\n const ordered = /\\d/.test(m[1]); const items = [];\n // biome-ignore lint/suspicious/noAssignInExpressions: the double-parenthesised assignment is the regex-exec loop idiom: assign the match, then test it\n while (i < lines.length && (m = LIST.exec(lines[i]))) { let text = m[2]; i++; while (i < lines.length && /^\\s{2,}\\S/.test(lines[i]) && !LIST.test(lines[i])) text += '\\n' + lines[i++].trim(); items.push(text); }\n blocks.push({ type: 'list', ordered, items }); continue;\n }\n const buf = [line]; i++;\n while (i < lines.length && lines[i].trim() && !BLOCK_START.test(lines[i]) && !LIST.test(lines[i])) buf.push(lines[i++]);\n blocks.push({ type: 'p', text: buf.join('\\n') });\n }\n return blocks;\n}\nfunction withBreaks(text) { return text.split('\\n').flatMap((l, i) => (i ? [<br key={'b' + i} />, ...renderInline(l)] : renderInline(l))); }\nfunction renderBlock(b, i) {\n switch (b.type) {\n case 'code': return <pre key={i} className=\"agn-md__pre\" data-lang={b.lang || undefined}><code>{b.text}</code></pre>;\n case 'h': { const Tag = 'h' + Math.min(6, b.level + 2); return <Tag key={i} className={'agn-md__h agn-md__h--' + b.level}>{renderInline(b.text)}</Tag>; }\n case 'hr': return <hr key={i} className=\"agn-md__hr\" />;\n case 'quote': return <blockquote key={i} className=\"agn-md__quote\">{b.blocks.map(renderBlock)}</blockquote>;\n case 'table': return (\n <div key={i} className=\"agn-md__table-wrap\"><table className=\"agn-md__table\">\n <thead><tr>{b.head.map((c, j) => <th key={j} style={{ textAlign: b.aligns[j] }}>{renderInline(c)}</th>)}</tr></thead>\n <tbody>{b.rows.map((r, ri) => <tr key={ri}>{b.head.map((_, j) => <td key={j} style={{ textAlign: b.aligns[j] }}>{renderInline(r[j] || '')}</td>)}</tr>)}</tbody>\n </table></div>);\n case 'list': { const Tag = b.ordered ? 'ol' : 'ul'; return <Tag key={i} className=\"agn-md__list\">{b.items.map((t, j) => <li key={j}>{withBreaks(t)}</li>)}</Tag>; }\n default: return <p key={i} className=\"agn-md__p\">{withBreaks(b.text)}</p>;\n }\n}\nexport function ChatMarkdown({ source, className, ...rest }) {\n const blocks = React.useMemo(() => parseBlocks(source), [source]);\n return <div className={cx('agn-md', className)} {...rest}>{blocks.map(renderBlock)}</div>;\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nconst STATUS = { running: { icon: 'loader-circle', tone: 'info', label: 'Running' }, ok: { icon: 'check', tone: 'ok', label: 'Done' }, bad: { icon: 'circle-x', tone: 'bad', label: 'Failed' }, pending: { icon: 'clock', tone: 'neutral', label: 'Pending' } };\nconst show = (v) => (v == null ? '' : typeof v === 'string' ? v : JSON.stringify(v, null, 2));\nexport const formatDuration = (ms, locale = 'tr-TR') => ms == null ? '' : ms < 1000 ? Math.round(ms) + ' ms' : ms < 60000 ? (ms / 1000).toLocaleString(locale, { maximumFractionDigits: 1 }) + ' s' : Math.floor(ms / 60000) + ':' + String(Math.round((ms % 60000) / 1000)).padStart(2, '0');\n// One tool call under a message: tool name in mono, status tag, duration; opens to the input and output JSON.\nexport function ToolCallCard({ name, status = 'ok', duration, input, output, summary, open, defaultOpen = false, onToggle, locale = 'tr-TR', labels, className, ...rest }) {\n const L = { input: 'Input', output: 'Output', running: 'Running', ok: 'Done', bad: 'Failed', pending: 'Pending', ...labels };\n const s = STATUS[status] || STATUS.ok;\n return (\n <details className={cx('agn-tool', 'agn-tool--' + status, className)} open={open != null ? open : defaultOpen || undefined} onToggle={(e) => onToggle && onToggle(e.currentTarget.open)} {...rest}>\n <summary className=\"agn-tool__head agn-focus\">\n <Icon name=\"chevron-right\" size={14} className=\"agn-tool__caret\" />\n <Icon name=\"wrench\" size={14} className=\"agn-tool__icon\" />\n <span className=\"agn-tool__name\">{name}</span>\n {summary && <span className=\"agn-tool__summary\">{summary}</span>}\n <span className={cx('agn-tool__status', 'agn-tool__status--' + s.tone)}><Icon name={s.icon} size={11} className={status === 'running' ? 'agn-tool__spin' : undefined} />{L[status] || s.label}</span>\n {duration != null && <span className=\"agn-tool__duration agn-num\">{typeof duration === 'number' ? formatDuration(duration, locale) : duration}</span>}\n </summary>\n <div className=\"agn-tool__body\">\n {input != null && <div className=\"agn-tool__section\"><div className=\"agn-eyebrow agn-eyebrow--quiet\">{L.input}</div><pre className=\"agn-tool__pre\"><code>{show(input)}</code></pre></div>}\n {output != null && <div className=\"agn-tool__section\"><div className=\"agn-eyebrow agn-eyebrow--quiet\">{L.output}</div><pre className=\"agn-tool__pre\"><code>{show(output)}</code></pre></div>}\n </div>\n </details>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Busy dots and a \"Thinking…\" shine while the agent streams. Reduced motion stops both and leaves the words.\nexport function StreamingIndicator({ label, dots = true, inline, labels, className, ...rest }) {\n const L = { thinking: 'Thinking…', ...labels };\n const Tag = inline ? 'span' : 'div';\n return (\n // biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here\n <Tag className={cx('agn-streaming', inline && 'agn-streaming--inline', className)} role=\"status\" aria-live=\"polite\" {...rest}>\n {dots && <span className=\"agn-streaming__dots\" aria-hidden=\"true\"><i /><i /><i /></span>}\n <span className=\"agn-streaming__text\">{label || L.thinking}</span>\n </Tag>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nexport const EVENT_KINDS = {\n 'handoff-requested': { icon: 'hand', tone: 'warn', label: 'Handoff requested' },\n 'handoff-accepted': { icon: 'user-check', tone: 'ok', label: 'Handoff accepted' },\n closed: { icon: 'circle-check', tone: 'neutral', label: 'Conversation closed' },\n 'call-started': { icon: 'phone', tone: 'info', label: 'Call started' },\n 'call-ended': { icon: 'phone-off', tone: 'neutral', label: 'Call ended' },\n approval: { icon: 'shield-check', tone: 'warn', label: 'Human approval requested' },\n info: { icon: 'info', tone: 'neutral', label: '' },\n};\n// Centred event pill in a thread: handoff requested / accepted, closed, call started / ended, approval. Warn tone for things a person must act on.\nexport function ChatEvent({ kind = 'info', tone, icon, time, children, className, ...rest }) {\n const k = EVENT_KINDS[kind] || EVENT_KINDS.info;\n return (\n // biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here\n <div className={cx('agn-chat-event', 'agn-chat-event--' + (tone || k.tone), className)} role=\"status\" {...rest}>\n <Icon name={icon || k.icon} size={12} />\n <span className=\"agn-chat-event__text\">{children != null ? children : k.label}</span>\n {time && <span className=\"agn-chat-event__time\">{time}</span>}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Row of suggested prompts as chips; picking one sends it (or fills the composer).\nexport function ChatSuggestions({ items = [], onPick, row, labels, className, ...rest }) {\n const L = { suggestions: 'Suggestions', ...labels };\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div className={cx('agn-chat-suggest', row && 'agn-chat-suggest--row', className)} role=\"group\" aria-label={L.suggestions} {...rest}>\n {items.map((s, i) => { const item = typeof s === 'string' ? { label: s } : s; return (\n <button key={i} type=\"button\" className=\"agn-chat-suggest__chip agn-focus\" onClick={() => onPick && onPick(item.value != null ? item.value : item.label, item)}>\n {item.icon && <Icon name={item.icon} size={12} />}{item.label}\n </button>); })}\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nconst fmtSize = (b) => (b >= 1048576 ? (b / 1048576).toFixed(1) + ' MB' : b >= 1024 ? Math.round(b / 1024) + ' KB' : b + ' B');\n// The chat input: auto-growing textarea, attach (5 files, 10 MB each), dictation and hands-free voice, send or stop while streaming, a toolbar slot (model picker), a header slot (context bar) and a footnote node.\nexport function ChatComposer({ value, defaultValue = '', onChange, onSend, onStop, streaming, disabled, placeholder, attach = true, maxFiles = 5, maxFileSize = 10 * 1048576, files = [], onAttach, onRemoveFile, voice = 'off', onDictate, onHandsFree, footnote, toolbar, header, maxRows = 8, labels, className, ...rest }) {\n const L = { placeholder: 'Message the agent…', send: 'Send', stop: 'Stop', attach: 'Attach files', attachHint: 'Up to 5 files, 10 MB each', dictate: 'Dictate', handsFree: 'Hands-free voice', listening: 'Listening…', speaking: 'Speaking…', remove: 'Remove', tooMany: 'You can attach up to 5 files.', tooLarge: 'Each file must be under 10 MB.', ...labels };\n const [own, setOwn] = React.useState(defaultValue);\n const [err, setErr] = React.useState(null);\n const val = value != null ? value : own;\n const ta = React.useRef(null); const file = React.useRef(null);\n const id = React.useMemo(() => uid('chatbox'), []);\n const grow = () => { const el = ta.current; if (!el) return; el.style.height = 'auto'; const line = parseFloat(getComputedStyle(el).lineHeight) || 20; el.style.height = Math.min(el.scrollHeight, line * maxRows + 16) + 'px'; };\n // biome-ignore lint/correctness/useExhaustiveDependencies: val and maxRows are the re-measure triggers; grow reads the textarea from its ref\n React.useEffect(grow, [val, maxRows]);\n const set = (v) => { if (value == null) setOwn(v); onChange && onChange(v); };\n const send = () => { if (streaming) { onStop && onStop(); return; } if (!val.trim() && !files.length) return; onSend && onSend(val, files); if (value == null) setOwn(''); };\n const pick = (e) => {\n const list = Array.from(e.target.files || []); e.target.value = '';\n if (files.length + list.length > maxFiles) { setErr(L.tooMany); return; }\n if (list.some((f) => f.size > maxFileSize)) { setErr(L.tooLarge); return; }\n setErr(null); onAttach && onAttach(list);\n };\n const canSend = streaming || (!disabled && (val.trim().length > 0 || files.length > 0));\n return (\n <div className={cx('agn-chatbox', disabled && 'agn-chatbox--disabled', className)} {...rest}>\n <div className=\"agn-chatbox__box\">\n {header && <div className=\"agn-chatbox__header\">{header}</div>}\n {files.length > 0 && (\n <ul className=\"agn-chatbox__files\">{files.map((f, i) => (\n <li key={i} className=\"agn-chatbox__file\"><Icon name=\"paperclip\" size={11} /><span className=\"agn-chatbox__file-name\">{f.name}</span>{f.size != null && <span className=\"agn-chatbox__file-size\">{fmtSize(f.size)}</span>}{onRemoveFile && <button type=\"button\" className=\"agn-chatbox__file-x\" aria-label={L.remove + ' ' + f.name} onClick={() => onRemoveFile(f, i)}><Icon name=\"x\" size={11} /></button>}</li>))}</ul>\n )}\n <textarea ref={ta} id={id} className=\"agn-chatbox__input\" rows={1} value={val} disabled={disabled} placeholder={placeholder || L.placeholder} aria-label={placeholder || L.placeholder}\n onChange={(e) => set(e.target.value)} onKeyDown={(e) => { if (e.key === 'Enter' && !e.shiftKey && !e.nativeEvent.isComposing) { e.preventDefault(); if (canSend) send(); } }} />\n <div className=\"agn-chatbox__bar\">\n <div className=\"agn-chatbox__tools\">\n {attach && <><input ref={file} type=\"file\" multiple className=\"agn-sr\" tabIndex={-1} aria-hidden=\"true\" onChange={pick} /><ButtonIcon icon=\"paperclip\" label={L.attach + ' · ' + L.attachHint} size=\"sm\" disabled={disabled} onClick={() => file.current && file.current.click()} /></>}\n {voice !== 'off' && (\n <>\n <ButtonIcon icon=\"mic\" label={L.dictate} size=\"sm\" disabled={disabled} className={cx('agn-chatbox__voice', voice === 'listening' && 'agn-chatbox__voice--on')} aria-pressed={voice === 'listening'} onClick={onDictate} />\n <ButtonIcon icon=\"audio-lines\" label={L.handsFree} size=\"sm\" disabled={disabled} className={cx('agn-chatbox__voice', voice === 'speaking' && 'agn-chatbox__voice--on')} aria-pressed={voice === 'speaking'} onClick={onHandsFree} />\n {/* biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here */}\n {(voice === 'listening' || voice === 'speaking') && <span className=\"agn-chatbox__voice-state\" role=\"status\"><span className=\"agn-chatbox__voice-dot\" aria-hidden=\"true\" />{voice === 'listening' ? L.listening : L.speaking}</span>}\n </>\n )}\n {toolbar && <div className=\"agn-chatbox__toolbar\">{toolbar}</div>}\n {err && <span className=\"agn-chatbox__error\" role=\"alert\">{err}</span>}\n </div>\n <ButtonIcon icon={streaming ? 'square' : 'arrow-up'} label={streaming ? L.stop : L.send} variant={streaming ? 'destructive-text' : 'primary'} size=\"sm\" disabled={!canSend} onClick={send} className=\"agn-chatbox__send\" />\n </div>\n </div>\n {footnote && <div className=\"agn-chatbox__footnote\">{footnote}</div>}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { formatDuration } from './ToolCallCard.jsx';\nconst VERDICT_ICON = { ok: 'circle-check', bad: 'circle-x', warn: 'triangle-alert', neutral: 'info', info: 'info' };\n// Read-only transcript of a run or a call: numbered turns with speaker, time and text, and an optional judge verdict strip. Used in Logs and QA.\nexport function TranscriptPanel({ title, meta, turns = [], verdict, selected, onSelect, maxHeight = 420, locale = 'tr-TR', labels, className, ...rest }) {\n const L = { agent: 'Agent', customer: 'Customer', system: 'System', judge: 'Judge', latency: 'latency', flagged: 'Flagged', empty: 'No turns', ...labels };\n const Row = onSelect ? 'button' : 'div';\n return (\n <section className={cx('agn-transcript', className)} aria-label={typeof title === 'string' ? title : undefined} {...rest}>\n {(title || meta) && <header className=\"agn-transcript__head\">{title && <h3 className=\"agn-transcript__title\">{title}</h3>}{meta && <div className=\"agn-transcript__meta\">{meta}</div>}</header>}\n {verdict && (\n <div className={cx('agn-transcript__verdict', 'agn-transcript__verdict--' + (verdict.tone || 'neutral'))}>\n <Icon name={VERDICT_ICON[verdict.tone] || 'info'} size={14} />\n <span className=\"agn-transcript__verdict-label\">{L.judge} · {verdict.label}</span>\n {verdict.score != null && <span className=\"agn-transcript__verdict-score agn-num\">{verdict.score}</span>}\n {verdict.summary && <span className=\"agn-transcript__verdict-text\">{verdict.summary}</span>}\n {verdict.dimensions && <ul className=\"agn-transcript__dims\">{verdict.dimensions.map((d, i) => <li key={i} className={cx('agn-transcript__dim', d.pass ? 'agn-transcript__dim--ok' : 'agn-transcript__dim--bad')}><Icon name={d.pass ? 'check' : 'x'} size={10} />{d.name}</li>)}</ul>}\n </div>\n )}\n <ol className=\"agn-transcript__turns\" style={{ maxHeight }}>\n {turns.map((t, i) => {\n const n = t.n != null ? t.n : i + 1; const sel = selected != null && selected === (t.id != null ? t.id : n);\n return (\n <li key={t.id != null ? t.id : n} className={cx('agn-transcript__turn', 'agn-transcript__turn--' + (t.speaker || 'agent'), t.flagged && 'agn-transcript__turn--flagged', sel && 'agn-transcript__turn--selected')}>\n <Row type={onSelect ? 'button' : undefined} className=\"agn-transcript__row agn-focus-inset\" aria-pressed={onSelect ? sel : undefined} onClick={onSelect ? () => onSelect(t.id != null ? t.id : n, t) : undefined}>\n <span className=\"agn-transcript__n agn-num\">{String(n).padStart(2, '0')}</span>\n <span className=\"agn-transcript__speaker\">{t.name || L[t.speaker] || t.speaker}</span>\n <span className=\"agn-transcript__text\">{t.text}{t.note && <span className=\"agn-transcript__note\">{t.note}</span>}</span>\n <span className=\"agn-transcript__right\">\n {t.flagged && <span className=\"agn-transcript__flag\"><Icon name=\"flag\" size={11} />{L.flagged}</span>}\n {t.latencyMs != null && <span className=\"agn-transcript__latency agn-num\" title={L.latency}>{formatDuration(t.latencyMs, locale)}</span>}\n {t.time && <span className=\"agn-transcript__time agn-num\">{t.time}</span>}\n </span>\n </Row>\n </li>\n );\n })}\n {!turns.length && <li className=\"agn-transcript__empty\">{L.empty}</li>}\n </ol>\n </section>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\nconst STATUS = { pending: { tone: 'warn', icon: 'pause', label: 'Paused · approval' }, approved: { tone: 'ok', icon: 'circle-check', label: 'Approved' }, rejected: { tone: 'bad', icon: 'circle-x', label: 'Rejected' }, queued: { tone: 'neutral', icon: 'clock', label: 'Queued' } };\nfunction Field({ f, value, onChange, disabled, id }) {\n const set = (v) => onChange && onChange(f.key, v);\n const common = { id, disabled, 'aria-describedby': f.help ? id + '-help' : undefined, required: f.required };\n switch (f.type) {\n case 'boolean': return <label className=\"agn-approval__check\"><input type=\"checkbox\" checked={!!value} onChange={(e) => set(e.target.checked)} {...common} /><span>{f.label}</span></label>;\n case 'number': return <input className=\"agn-approval__input agn-num\" type=\"number\" value={value == null ? '' : value} min={f.min} max={f.max} step={f.step} placeholder={f.placeholder} onChange={(e) => set(e.target.value === '' ? null : Number(e.target.value))} {...common} />;\n case 'json': return <textarea className=\"agn-approval__input agn-approval__input--json\" rows={4} value={typeof value === 'string' ? value : value == null ? '' : JSON.stringify(value, null, 2)} spellCheck={false} onChange={(e) => set(e.target.value)} {...common} />;\n case 'select': return <select className=\"agn-approval__input\" value={value == null ? '' : value} onChange={(e) => set(e.target.value)} {...common}>{f.placeholder && <option value=\"\">{f.placeholder}</option>}{(f.options || []).map((o) => { const opt = typeof o === 'string' ? { value: o, label: o } : o; return <option key={opt.value} value={opt.value}>{opt.label}</option>; })}</select>;\n default: return <input className=\"agn-approval__input\" type=\"text\" value={value == null ? '' : value} placeholder={f.placeholder} onChange={(e) => set(e.target.value)} {...common} />;\n }\n}\n// The human-in-the-loop card: why the agent stopped (warn), what it proposes, the approver's form, and Approve / Reject / Ask. variant=\"permission\" is the tool-permission prompt (Allow once · Always allow · Deny) with no run-status chip; `actions` replaces the buttons. Works under comfortable density.\nexport function ApprovalCard({ agent, runId, tenant, requestedAt, requester, reason, proposal = [], fields = [], values: valProp, onChange, status = 'pending', queuePosition, decidedBy, decidedAt, onApprove, onReject, onAsk, onAlways, actions, variant = 'approval', loading, compact, labels, className, ...rest }) {\n const perm = variant === 'permission';\n const L = { eyebrow: perm ? 'Permission request' : 'Human approval', allowOnce: 'Allow once', always: 'Always allow', deny: 'Deny', reason: 'Why the agent stopped', proposes: 'Agent proposes', decision: 'Your decision', approve: 'Approve', reject: 'Reject', ask: 'Ask the agent', queued: 'Queued', ahead: 'ahead', by: 'by', pending: 'Paused · approval', approved: 'Approved', rejected: 'Rejected', ...labels };\n const [own, setOwn] = React.useState(() => Object.fromEntries(fields.map((f) => [f.key, f.value])));\n const values = valProp || own;\n const change = (k, v) => { if (!valProp) setOwn((o) => ({ ...o, [k]: v })); onChange && onChange(k, v, { ...values, [k]: v }); };\n const id = React.useMemo(() => uid('approval'), []);\n const s = STATUS[status] || STATUS.pending;\n const open = status === 'pending';\n const decide = (fn) => () => fn && fn(values);\n return (\n <section className={cx('agn-approval', 'agn-approval--' + status, perm && 'agn-approval--permission', compact && 'agn-approval--compact', className)} aria-labelledby={id + '-t'} {...rest}>\n <header className=\"agn-approval__head\">\n <div className=\"agn-approval__heading\">\n <div className=\"agn-eyebrow\">{L.eyebrow}</div>\n <h3 id={id + '-t'} className=\"agn-approval__title\">{agent}</h3>\n <div className=\"agn-approval__meta\">{[runId, tenant, requestedAt].filter(Boolean).map((x, i) => <span key={i}>{x}</span>)}</div>\n </div>\n {!perm && <span className={cx('agn-approval__status', 'agn-approval__status--' + s.tone)}><Icon name={s.icon} size={12} />{status === 'queued' && queuePosition != null ? `${L.queued} (${queuePosition} ${L.ahead})` : L[status] || s.label}</span>}\n </header>\n {reason && <div className=\"agn-approval__reason\" role=\"note\"><Icon name=\"triangle-alert\" size={16} /><div><div className=\"agn-approval__reason-label\">{L.reason}</div><div className=\"agn-approval__reason-text\">{reason}</div></div></div>}\n {proposal.length > 0 && (\n <div className=\"agn-approval__section\">\n <div className=\"agn-eyebrow agn-eyebrow--quiet\">{L.proposes}</div>\n <dl className=\"agn-approval__kv\">{proposal.map((p, i) => <div key={i} className=\"agn-approval__kv-row\"><dt>{p.label}</dt><dd className={p.mono ? 'agn-mono' : undefined}>{p.value}</dd></div>)}</dl>\n </div>\n )}\n {fields.length > 0 && (\n <div className=\"agn-approval__section\">\n <div className=\"agn-eyebrow agn-eyebrow--quiet\">{L.decision}</div>\n <div className=\"agn-approval__form\">{fields.map((f) => (\n <div key={f.key} className={cx('agn-approval__field', f.type === 'boolean' && 'agn-approval__field--check')}>\n {f.type !== 'boolean' && <label className=\"agn-approval__label\" htmlFor={id + '-' + f.key}>{f.label}{f.required && <span aria-hidden=\"true\"> *</span>}</label>}\n <Field f={f} id={id + '-' + f.key} value={values[f.key]} onChange={change} disabled={!open || loading} />\n {f.help && <div id={id + '-' + f.key + '-help'} className=\"agn-approval__help\">{f.help}</div>}\n </div>))}</div>\n </div>\n )}\n <footer className=\"agn-approval__foot\">\n {open && actions && actions.map((a, i) => <Button key={a.id || i} variant={a.variant || 'neutral'} icon={a.icon} loading={a.loading} disabled={loading || a.disabled} onClick={() => a.onClick && a.onClick(values)}>{a.label}</Button>)}\n {open && !actions && perm && <><Button variant=\"primary\" icon=\"check\" loading={loading} onClick={decide(onApprove)}>{L.allowOnce}</Button><Button variant=\"neutral\" icon=\"check-check\" disabled={loading} onClick={decide(onAlways)}>{L.always}</Button><Button variant=\"destructive-text\" icon=\"x\" disabled={loading} onClick={decide(onReject)}>{L.deny}</Button></>}\n {open && !actions && !perm && <><Button variant=\"success\" icon=\"check\" loading={loading} onClick={decide(onApprove)}>{L.approve}</Button><Button variant=\"destructive-text\" icon=\"x\" disabled={loading} onClick={decide(onReject)}>{L.reject}</Button>{onAsk && <Button variant=\"neutral\" icon=\"message-square\" disabled={loading} onClick={decide(onAsk)}>{L.ask}</Button>}</>}\n {status === 'queued' && <span className=\"agn-approval__note\"><Icon name=\"clock\" size={14} />{queuePosition != null ? `${L.queued} (${queuePosition} ${L.ahead})` : L.queued}</span>}\n {(status === 'approved' || status === 'rejected') && <span className={cx('agn-approval__note', 'agn-approval__note--' + s.tone)}><Icon name={s.icon} size={14} />{L[status]}{decidedBy && ` ${L.by} ${decidedBy}`}{decidedAt && <span className=\"agn-approval__note-time agn-num\"> · {decidedAt}</span>}</span>}\n </footer>\n </section>\n );\n}\n","// biome-ignore-all lint/a11y/useSemanticElements: an ARIA table (table/row/columnheader/cell) on CSS-grid divs: the shared column template and the scale ref need the divs, and table markup would break the layout\n// biome-ignore-all lint/a11y/useFocusableInteractive: rows and column headers of a static role=table are not interactive; the rule treats row as a grid row\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { RUN_STATUS } from './RunStatus.jsx';\nimport { formatDuration } from '../chat/ToolCallCard.jsx';\nimport { fmtMoney, fmtInt } from './format.js';\nfunction ticks(total, n = 4) { const step = total / n; return Array.from({ length: n + 1 }, (_, i) => i * step); }\n// tick count from the measured width of the scale column: one label per ~72px, 1–4 intervals\nfunction useTickCount(ref) {\n const [n, setN] = React.useState(4);\n React.useEffect(() => {\n const el = ref.current;\n if (!el || typeof ResizeObserver === 'undefined') return undefined;\n const ro = new ResizeObserver((es) => { const w = es[0].contentRect.width; const k = Math.max(1, Math.min(4, Math.floor(w / 72))); setN((p) => (p === k ? p : k)); });\n ro.observe(el);\n return () => ro.disconnect();\n }, [ref]);\n return n;\n}\n// The run replay: steps on a time scale (tick labels thinned to the column's measured width) with duration bars, status per step, tokens and cost; click a row to select it.\nexport function RunTimeline({ steps = [], total: totalProp, selected, onSelect, showCost = true, showTokens = true, locale = 'tr-TR', currency = 'TRY', labels, className, ...rest }) {\n const L = { step: 'Step', time: 'Time', tokens: 'Tokens', cost: 'Cost', total: 'Total', ...labels };\n const total = totalProp || Math.max(1, ...steps.map((s) => (s.start || 0) + (s.duration || 0)));\n const Row = onSelect ? 'button' : 'div';\n const sumCost = steps.reduce((a, s) => a + (s.cost || 0), 0), sumTok = steps.reduce((a, s) => a + (s.tokens || 0), 0);\n const scaleRef = React.useRef(null);\n const tickN = useTickCount(scaleRef);\n const cols = cx('agn-rt__grid', !showTokens && 'agn-rt__grid--no-tokens', !showCost && 'agn-rt__grid--no-cost');\n return (\n <div className={cx('agn-rt', className)} role=\"table\" aria-label={L.step + 's'} {...rest}>\n <div className={cx('agn-rt__head', cols)} role=\"row\">\n <span role=\"columnheader\">{L.step}</span>\n <span role=\"columnheader\" className=\"agn-rt__scale\" ref={scaleRef}>{ticks(total, tickN).map((t, i) => <span key={i} className=\"agn-rt__tick agn-num\" style={{ left: (t / total) * 100 + '%' }}>{formatDuration(t, locale)}</span>)}</span>\n {showTokens && <span role=\"columnheader\" className=\"agn-rt__num\">{L.tokens}</span>}\n {showCost && <span role=\"columnheader\" className=\"agn-rt__num\">{L.cost}</span>}\n </div>\n {steps.map((s, i) => {\n const st = RUN_STATUS[s.status] || RUN_STATUS.completed; const id = s.id != null ? s.id : i; const sel = selected != null && selected === id;\n const left = ((s.start || 0) / total) * 100, width = Math.max(0.6, ((s.duration || 0) / total) * 100);\n return (\n <Row key={id} type={onSelect ? 'button' : undefined} role=\"row\" className={cx('agn-rt__row', cols, 'agn-rt__row--' + st.tone, sel && 'agn-rt__row--selected', 'agn-focus-inset')} aria-pressed={onSelect ? sel : undefined} onClick={onSelect ? () => onSelect(id, s) : undefined}>\n <span role=\"cell\" className=\"agn-rt__name\"><span className=\"agn-rt__n agn-num\">{String(i + 1).padStart(2, '0')}</span><span className=\"agn-rt__label\"><span className=\"agn-rt__title\">{s.name}</span>{s.kind && <span className=\"agn-rt__kind\">{s.kind}</span>}</span><Icon name={st.icon} size={12} className={cx('agn-rt__icon', st.spin && 'agn-rt__spin')} title={st.label} /></span>\n <span role=\"cell\" className=\"agn-rt__track\"><span className=\"agn-rt__bar\" style={{ left: left + '%', width: width + '%' }}><span className=\"agn-rt__dur agn-num\">{formatDuration(s.duration || 0, locale)}</span></span></span>\n {showTokens && <span role=\"cell\" className=\"agn-rt__num\">{s.tokens != null ? fmtInt(s.tokens, locale) : '–'}</span>}\n {showCost && <span role=\"cell\" className=\"agn-rt__num\">{s.cost != null ? fmtMoney(s.cost, locale, currency) : '–'}</span>}\n </Row>\n );\n })}\n <div className={cx('agn-rt__foot', cols)} role=\"row\">\n <span role=\"cell\">{L.total}</span>\n <span role=\"cell\" className=\"agn-rt__total agn-num\">{formatDuration(total, locale)}</span>\n {showTokens && <span role=\"cell\" className=\"agn-rt__num\">{fmtInt(sumTok, locale)}</span>}\n {showCost && <span role=\"cell\" className=\"agn-rt__num\">{fmtMoney(sumCost, locale, currency)}</span>}\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// The run vocabulary (queued · running · paused · completed · failed · cancelled) and the resume vocabulary (pending · claimed · resuming · resumed), each with its tone and icon.\nexport const RUN_STATUS = {\n queued: { tone: 'neutral', icon: 'clock', label: 'Queued' },\n running: { tone: 'info', icon: 'loader-circle', label: 'Running', spin: true },\n paused: { tone: 'warn', icon: 'pause', label: 'Paused' },\n completed: { tone: 'ok', icon: 'circle-check', label: 'Completed' },\n failed: { tone: 'bad', icon: 'circle-x', label: 'Failed' },\n cancelled: { tone: 'neutral', icon: 'ban', label: 'Cancelled' },\n pending: { tone: 'warn', icon: 'hourglass', label: 'Pending' },\n claimed: { tone: 'info', icon: 'hand', label: 'Claimed' },\n resuming: { tone: 'info', icon: 'loader-circle', label: 'Resuming', spin: true },\n resumed: { tone: 'ok', icon: 'play', label: 'Resumed' },\n};\n// Status tag for a run: icon + word in the status tone, an optional detail (\"approval\") and the time it has been so (\"since 09:41\").\nexport function RunStatus({ status = 'queued', detail, since, size = 'md', labels, className, ...rest }) {\n const L = { since: 'since', ...Object.fromEntries(Object.entries(RUN_STATUS).map(([k, v]) => [k, v.label])), ...labels };\n const s = RUN_STATUS[status] || RUN_STATUS.queued;\n return (\n <span className={cx('agn-run-status', 'agn-run-status--' + s.tone, size !== 'md' && 'agn-run-status--' + size, className)} {...rest}>\n <span className=\"agn-run-status__tag\"><Icon name={s.icon} size={size === 'sm' ? 11 : 12} className={s.spin ? 'agn-run-status__spin' : undefined} />{L[status] || s.label}{detail && <span className=\"agn-run-status__detail\"> · {detail}</span>}</span>\n {since && <span className=\"agn-run-status__since agn-num\">{L.since} {since}</span>}\n </span>\n );\n}\n","// Locale helpers for the agent widgets. tr-TR by default: ₺1.250.000,00 · 15.10.2026 · 1,2 s\n// currencyDisplay narrowSymbol, as Amount: en-US prints ₺196,400.00, not TRY 196,400.00\nexport const fmtMoney = (v, locale = 'tr-TR', currency = 'TRY', digits = 2) => {\n if (v == null) return '';\n try { return new Intl.NumberFormat(locale, { style: 'currency', currency, currencyDisplay: 'narrowSymbol', minimumFractionDigits: digits, maximumFractionDigits: digits }).format(v); }\n catch { return new Intl.NumberFormat(locale, { style: 'currency', currency, minimumFractionDigits: digits, maximumFractionDigits: digits }).format(v); }\n};\nexport const fmtInt = (v, locale = 'tr-TR') => (v == null ? '' : new Intl.NumberFormat(locale, { maximumFractionDigits: 0 }).format(v));\nexport const fmtClock = (s) => { s = Math.max(0, Math.floor(s || 0)); const h = Math.floor(s / 3600), m = Math.floor((s % 3600) / 60), x = s % 60; return (h ? h + ':' + String(m).padStart(2, '0') : m) + ':' + String(x).padStart(2, '0'); };\nexport const initials = (name = '') => String(name).trim().split(/\\s+/).slice(0, 2).map((w) => w.charAt(0).toLocaleUpperCase('tr-TR')).join('');\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { formatDuration } from '../chat/ToolCallCard.jsx';\nexport const SPAN_KINDS = ['llm', 'tool', 'http', 'workflow', 'db', 'other'];\nfunction flatten(spans, depth = 0, out = [], collapsed) {\n spans.forEach((s, i) => { const id = s.id != null ? s.id : depth + '-' + i; out.push({ ...s, id, depth, hasChildren: !!(s.children && s.children.length) }); if (s.children && s.children.length && !collapsed.has(id)) flatten(s.children, depth + 1, out, collapsed); });\n return out;\n}\n// Trace viewer: nested spans as bars on one time scale — name, service or tool, duration, status — indented per depth; parents collapse.\nexport function TraceSpans({ spans = [], total: totalProp, selected, onSelect, locale = 'tr-TR', labels, className, ...rest }) {\n const L = { spans: 'Spans', collapse: 'Collapse', expand: 'Expand', error: 'error', ...labels };\n const [collapsed, setCollapsed] = React.useState(() => new Set());\n const rows = React.useMemo(() => flatten(spans, 0, [], collapsed), [spans, collapsed]);\n const all = React.useMemo(() => flatten(spans, 0, [], new Set()), [spans]);\n const total = totalProp || Math.max(1, ...all.map((s) => (s.start || 0) + (s.duration || 0)));\n const toggle = (id) => setCollapsed((c) => { const n = new Set(c); n.has(id) ? n.delete(id) : n.add(id); return n; });\n const Row = onSelect ? 'button' : 'div';\n const treeRef = React.useRef(null);\n const [focusId, setFocusId] = React.useState(null);\n const focusIdx = Math.max(0, rows.findIndex((r) => r.id === (focusId != null ? focusId : selected)));\n const focusAt = (i) => { const n = Math.max(0, Math.min(rows.length - 1, i)); if (!rows[n]) return; setFocusId(rows[n].id); const el = treeRef.current && treeRef.current.querySelector('[data-index=\"' + n + '\"]'); if (el) el.focus(); };\n // Keyboard (APG tree): ↑↓ move, → expands or enters, ← collapses or goes to the parent, Home/End, Enter/Space selects (or toggles without onSelect).\n const onKey = (e, s, i) => {\n switch (e.key) {\n case 'ArrowDown': e.preventDefault(); focusAt(i + 1); break;\n case 'ArrowUp': e.preventDefault(); focusAt(i - 1); break;\n case 'ArrowRight': e.preventDefault(); if (s.hasChildren && collapsed.has(s.id)) toggle(s.id); else if (s.hasChildren) focusAt(i + 1); break;\n case 'ArrowLeft': e.preventDefault(); if (s.hasChildren && !collapsed.has(s.id)) toggle(s.id); else { const p = rows.slice(0, i).reverse().find((x) => x.depth < s.depth); if (p) focusAt(rows.indexOf(p)); } break;\n case 'Home': e.preventDefault(); focusAt(0); break;\n case 'End': e.preventDefault(); focusAt(rows.length - 1); break;\n case 'Enter': case ' ': e.preventDefault(); if (onSelect) onSelect(s.id, s); else if (s.hasChildren) toggle(s.id); break;\n default:\n }\n };\n return (\n <div ref={treeRef} className={cx('agn-spans', className)} role=\"tree\" aria-label={L.spans} {...rest}>\n <div className=\"agn-spans__scale\" aria-hidden=\"true\">{[0, .25, .5, .75, 1].map((f) => <span key={f} className=\"agn-spans__tick agn-num\" style={{ left: f * 100 + '%' }}>{formatDuration(total * f, locale)}</span>)}</div>\n {rows.map((s, i) => {\n const sel = selected != null && selected === s.id; const kind = SPAN_KINDS.includes(s.kind) ? s.kind : 'other';\n const left = ((s.start || 0) / total) * 100, width = Math.max(0.5, ((s.duration || 0) / total) * 100);\n return (\n <div key={s.id} role=\"treeitem\" aria-level={s.depth + 1} aria-expanded={s.hasChildren ? !collapsed.has(s.id) : undefined} aria-selected={onSelect ? sel : undefined} data-index={i} tabIndex={i === focusIdx ? 0 : -1} onKeyDown={(e) => onKey(e, s, i)} onFocus={() => setFocusId(s.id)} className={cx('agn-spans__row', 'agn-focus-inset', 'agn-spans__row--' + kind, s.status === 'bad' && 'agn-spans__row--bad', sel && 'agn-spans__row--selected')}>\n <span className=\"agn-spans__name\" style={{ paddingLeft: s.depth * 16 }}>\n {s.hasChildren ? <button type=\"button\" className=\"agn-spans__caret\" tabIndex={-1} aria-label={collapsed.has(s.id) ? L.expand : L.collapse} onClick={() => toggle(s.id)}><Icon name=\"chevron-right\" size={12} className={cx(!collapsed.has(s.id) && 'agn-spans__caret--open')} /></button> : <span className=\"agn-spans__caret agn-spans__caret--leaf\" />}\n <Row type={onSelect ? 'button' : undefined} tabIndex={onSelect ? -1 : undefined} className=\"agn-spans__label\" onClick={onSelect ? () => onSelect(s.id, s) : undefined}>\n <span className=\"agn-spans__title\">{s.name}</span>\n {s.service && <span className=\"agn-spans__service\">{s.service}</span>}\n {s.status === 'bad' && <span className=\"agn-spans__err\"><Icon name=\"circle-x\" size={11} />{L.error}</span>}\n </Row>\n </span>\n <span className=\"agn-spans__track\"><span className=\"agn-spans__bar\" style={{ left: left + '%', width: width + '%' }} /></span>\n <span className=\"agn-spans__dur agn-num\">{formatDuration(s.duration || 0, locale)}</span>\n </div>\n );\n })}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\nimport { ProgressBar } from '../feedback/ProgressBar.jsx';\nimport { RunStatus } from './RunStatus.jsx';\nimport { formatDuration } from '../chat/ToolCallCard.jsx';\nimport { fmtMoney, fmtInt } from './format.js';\nconst TRIGGER = { manual: { icon: 'play', label: 'Manual' }, webhook: { icon: 'webhook', label: 'Webhook' }, schedule: { icon: 'calendar-clock', label: 'Schedule' }, call: { icon: 'phone', label: 'Phone call' }, chat: { icon: 'message-square', label: 'Chat' }, api: { icon: 'code', label: 'API' } };\nconst BAR_TONE = { running: 'signal', completed: 'ok', failed: 'bad', paused: 'warn', cancelled: 'neutral', queued: 'neutral' };\n// One run as a card: agent, trigger, status with since, started, duration, steps done of total, cost and tokens; stop, retry and open.\nexport function AgentRunCard({ agent, product = 'platform', runId, tenant, trigger = 'manual', status = 'queued', since, started, duration, steps, cost, tokens, selected, onStop, onRetry, onOpen, locale = 'tr-TR', currency = 'TRY', labels, className, ...rest }) {\n const L = { stop: 'Stop', retry: 'Retry', open: 'Open', duration: 'Duration', steps: 'Steps', cost: 'Cost', tokens: 'Tokens', started: 'Started', ...Object.fromEntries(Object.entries(TRIGGER).map(([k, v]) => [k, v.label])), ...labels };\n const t = TRIGGER[trigger] || TRIGGER.manual;\n return (\n <article className={cx('agn-run-card', 'agn-run-card--' + status, selected && 'agn-run-card--selected', className)} {...rest}>\n <header className=\"agn-run-card__head\">\n <span className=\"agn-run-card__icon\"><ProductIcon product={product} size={16} /></span>\n <div className=\"agn-run-card__heading\"><h3 className=\"agn-run-card__title\">{agent}</h3>{runId && <span className=\"agn-run-card__id\">{runId}</span>}</div>\n <RunStatus status={status} since={since} size=\"sm\" />\n </header>\n <div className=\"agn-run-card__meta\">\n <span><Icon name={t.icon} size={12} />{L[trigger] || t.label}</span>\n {started && <span><Icon name=\"clock\" size={12} />{started}</span>}\n {tenant && <span><Icon name=\"building-2\" size={12} />{tenant}</span>}\n </div>\n {steps && steps.total > 0 && <ProgressBar size=\"sm\" tone={BAR_TONE[status] || 'neutral'} value={steps.done || 0} max={steps.total} label={L.steps} showValue valueText={`${steps.done || 0} / ${steps.total}`} />}\n <dl className=\"agn-run-card__stats\">\n {duration != null && <div><dt>{L.duration}</dt><dd className=\"agn-num\">{typeof duration === 'number' ? formatDuration(duration, locale) : duration}</dd></div>}\n {cost != null && <div><dt>{L.cost}</dt><dd className=\"agn-num\">{fmtMoney(cost, locale, currency)}</dd></div>}\n {tokens != null && <div><dt>{L.tokens}</dt><dd className=\"agn-num\">{fmtInt(tokens, locale)}</dd></div>}\n </dl>\n {(onStop || onRetry || onOpen) && (\n <footer className=\"agn-run-card__foot\">\n {onStop && (status === 'running' || status === 'paused' || status === 'queued') && <Button size=\"sm\" variant=\"destructive-text\" icon=\"square\" onClick={onStop}>{L.stop}</Button>}\n {onRetry && (status === 'failed' || status === 'cancelled') && <Button size=\"sm\" icon=\"rotate-ccw\" onClick={onRetry}>{L.retry}</Button>}\n {onOpen && <Button size=\"sm\" variant=\"ghost\" iconRight=\"arrow-right\" onClick={onOpen} className=\"agn-run-card__open\">{L.open}</Button>}\n </footer>\n )}\n </article>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { fmtMoney, fmtInt } from './format.js';\n// Cost by scenario, unit or channel as horizontal bars with values; series colours data-1…6 by index, or one signal colour.\nexport function CostBars({ items = [], unit = 'currency', currency = 'TRY', locale = 'tr-TR', max: maxProp, showValues = true, showTokens = false, colorBy = 'index', sort, labels, className, ...rest }) {\n const L = { costs: 'Costs', tokens: 'tokens', ...labels };\n const list = sort === 'desc' ? [...items].sort((a, b) => (b.value || 0) - (a.value || 0)) : items;\n const max = maxProp || Math.max(1, ...list.map((i) => i.value || 0));\n const fmt = (v) => (unit === 'currency' ? fmtMoney(v, locale, currency) : unit === 'tokens' ? fmtInt(v, locale) : unit === 'percent' ? fmtInt(v, locale) + '%' : fmtInt(v, locale));\n return (\n // biome-ignore lint/a11y/noRedundantRoles: explicit role=list keeps list semantics in Safari/VoiceOver, which drops them for list-style: none\n // biome-ignore lint/a11y/useSemanticElements: explicit role=list keeps list semantics in Safari/VoiceOver, which drops them for list-style: none\n <ul className={cx('agn-costbars', className)} role=\"list\" aria-label={L.costs} {...rest}>\n {list.map((it, i) => (\n <li key={it.id != null ? it.id : i} className={cx('agn-costbars__row', it.tone && 'agn-costbars__row--' + it.tone)}>\n <span className=\"agn-costbars__label\" title={typeof it.label === 'string' ? it.label : undefined}>{it.label}{it.sub && <span className=\"agn-costbars__sub\">{it.sub}</span>}</span>\n <span className=\"agn-costbars__track\" aria-hidden=\"true\"><span className={cx('agn-costbars__fill', colorBy === 'index' && 'agn-costbars__fill--' + ((i % 6) + 1))} style={{ width: Math.min(100, ((it.value || 0) / max) * 100) + '%' }} /></span>\n {showValues && <span className=\"agn-costbars__value agn-num\">{fmt(it.value || 0)}{showTokens && it.tokens != null && <span className=\"agn-costbars__tokens\">{fmtInt(it.tokens, locale)} {L.tokens}</span>}</span>}\n </li>\n ))}\n </ul>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nconst SIDES = ['top', 'right', 'bottom', 'left'];\n// a port value is true (the default side), a side name, or false\nconst portSide = (v, dflt) => (v === true ? dflt : SIDES.includes(v) ? v : null);\nconst STATE_ICON = { running: ['loader-circle', true], error: ['circle-alert'], done: ['circle-check'], waiting: ['circle-dashed'], disabled: ['eye-off'] };\n// The builder block card on the canvas: 250px, icon tile, name (two lines at most) and kind, key/value rows, a state ring (selected / running / done / waiting / error / disabled), a warn \"next step\" tab, a hover action bar and ports on any side.\nexport function CanvasBlock({ name, kind, icon = 'box', product, rows = [], state = 'default', next, actions = [], ports = { in: true, out: true }, onSelect, labels, className, style, ...rest }) {\n const L = { running: 'Running', error: 'Error', done: 'Done', waiting: 'Waiting', disabled: 'Disabled', next: 'Next step', ...labels };\n const Tag = onSelect ? 'button' : 'div';\n const inSide = ports && portSide(ports.in, 'left'), outSide = ports && portSide(ports.out, 'right');\n const si = STATE_ICON[state];\n return (\n <Tag type={onSelect ? 'button' : undefined} className={cx('agn-block', 'agn-block--' + state, className)} style={{ width: 250, ...style }} aria-pressed={onSelect ? state === 'selected' : undefined} onClick={onSelect} {...rest}>\n {actions.length > 0 && <span className=\"agn-block__bar\" role=\"toolbar\">{actions.map((a, i) => <ButtonIcon key={i} icon={a.icon} label={a.label} size=\"xs\" variant={a.variant || 'ghost'} onClick={(e) => { e.stopPropagation(); a.onClick && a.onClick(e); }} />)}</span>}\n <span className=\"agn-block__head\">\n <span className=\"agn-block__icon\">{product ? <ProductIcon product={product} size={16} /> : <Icon name={icon} size={16} />}</span>\n <span className=\"agn-block__heading\"><span className=\"agn-block__name\" title={typeof name === 'string' ? name : undefined}>{name}</span>{kind && <span className=\"agn-block__kind\">{kind}</span>}</span>\n {si && <span className=\"agn-block__state\"><Icon name={si[0]} size={14} className={si[1] ? 'agn-block__spin' : undefined} title={L[state]} /><span className=\"agn-sr\">{L[state]}</span></span>}\n </span>\n {rows.length > 0 && <span className=\"agn-block__rows\">{rows.map((r, i) => <span key={i} className=\"agn-block__row\"><span className=\"agn-block__k\">{r.label}</span><span className={cx('agn-block__v', r.mono !== false && 'agn-mono')}>{r.value}</span></span>)}</span>}\n {next && <span className=\"agn-block__next\"><Icon name=\"corner-down-right\" size={12} /><span className=\"agn-block__next-label\">{L.next}</span>{next}</span>}\n {inSide && <span className={cx('agn-block__port', 'agn-block__port--in', 'agn-block__port--' + inSide)} aria-hidden=\"true\" />}\n {outSide && <span className={cx('agn-block__port', 'agn-block__port--out', 'agn-block__port--' + outSide)} aria-hidden=\"true\" />}\n </Tag>\n );\n}\nconst horiz = (s) => s === 'left' || s === 'right';\n// Smooth-step connector path between two points with rounded corners. Sides say which way the edge leaves and enters: right → left (default) runs horizontal–vertical–horizontal; bottom → top runs vertical–horizontal–vertical; a mixed pair makes one rounded corner.\nexport function smoothStepPath(x1, y1, x2, y2, r = 8, fromSide = 'right', toSide = 'left') {\n const dx = x2 >= x1 ? 1 : -1, dy = y2 >= y1 ? 1 : -1;\n if (horiz(fromSide) && horiz(toSide)) {\n if (Math.abs(y2 - y1) < 1) return `M${x1},${y1} L${x2},${y2}`;\n const midX = (x1 + x2) / 2;\n const rr = Math.max(0, Math.min(r, Math.abs(y2 - y1) / 2, Math.abs(midX - x1), Math.abs(x2 - midX)));\n return `M${x1},${y1} H${midX - dx * rr} Q${midX},${y1} ${midX},${y1 + dy * rr} V${y2 - dy * rr} Q${midX},${y2} ${midX + dx * rr},${y2} H${x2}`;\n }\n if (!horiz(fromSide) && !horiz(toSide)) {\n if (Math.abs(x2 - x1) < 1) return `M${x1},${y1} L${x2},${y2}`;\n const midY = (y1 + y2) / 2;\n const rr = Math.max(0, Math.min(r, Math.abs(x2 - x1) / 2, Math.abs(midY - y1), Math.abs(y2 - midY)));\n return `M${x1},${y1} V${midY - dy * rr} Q${x1},${midY} ${x1 + dx * rr},${midY} H${x2 - dx * rr} Q${x2},${midY} ${x2},${midY + dy * rr} V${y2}`;\n }\n const rr = Math.max(0, Math.min(r, Math.abs(x2 - x1), Math.abs(y2 - y1)));\n if (horiz(fromSide)) return `M${x1},${y1} H${x2 - dx * rr} Q${x2},${y1} ${x2},${y1 + dy * rr} V${y2}`;\n return `M${x1},${y1} V${y2 - dy * rr} Q${x1},${y2} ${x1 + dx * rr},${y2} H${x2}`;\n}\n// direction of travel into the target, from the side it enters\nconst INTO = { left: [1, 0], right: [-1, 0], top: [0, 1], bottom: [0, -1] };\n// SVG helper for an edge between two blocks: render inside the consumer's <svg> (or a Canvas's `edges`). default / active / running (moving dash) / deleted. The arrow follows the last segment.\nexport function CanvasEdge({ from, to, fromSide = 'right', toSide = 'left', state = 'default', radius = 8, label, arrow = true, onClick, className, ...rest }) {\n const d = smoothStepPath(from.x, from.y, to.x, to.y, radius, fromSide, toSide);\n const mx = (from.x + to.x) / 2, my = (from.y + to.y) / 2;\n const [ux, uy] = INTO[toSide] || INTO.left;\n const ah = `M${to.x - ux * 6 - uy * 4},${to.y - uy * 6 - ux * 4} L${to.x},${to.y} L${to.x - ux * 6 + uy * 4},${to.y - uy * 6 + ux * 4}`;\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: role=button, tabIndex and the Enter/Space handler are all set whenever onClick is; the rule cannot see the conditional role\n <g className={cx('agn-edge', 'agn-edge--' + state, onClick && 'agn-edge--clickable', className)} role={onClick ? 'button' : undefined} tabIndex={onClick ? 0 : undefined} aria-label={onClick && label != null ? String(label) : undefined} onClick={onClick} onKeyDown={onClick ? (e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); onClick(e); } } : undefined} {...rest}>\n <path className=\"agn-edge__hit\" d={d} />\n <path className=\"agn-edge__path\" d={d} />\n {arrow && <path className=\"agn-edge__arrow\" d={ah} />}\n {label && <g className=\"agn-edge__label\" transform={`translate(${mx},${my})`}><rect x={-String(label).length * 3.4 - 6} y={-9} width={String(label).length * 6.8 + 12} height={18} rx={4} /><text textAnchor=\"middle\" dominantBaseline=\"central\">{label}</text></g>}\n </g>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { ButtonIcon } from '../actions/Button.jsx';\nconst clamp = (v, lo, hi) => Math.max(lo, Math.min(hi, v));\n// The builder canvas: a dotted grid on --canvas-bg, one transformed layer holding absolutely positioned blocks (children) and an SVG of edges, with drag-to-pan, Ctrl/⌘-wheel zoom, wheel pan, keyboard (+ − 0, arrows) and zoom controls.\nexport function Canvas({ children, edges, zoom: zoomProp, defaultZoom = 1, onZoomChange, pan: panProp, defaultPan = { x: 0, y: 0 }, onPanChange, minZoom = 0.25, maxZoom = 2, grid = true, controls = true, interactive = true, overlay, labels, className, style, ...rest }) {\n const L = { canvas: 'Agent canvas', zoomIn: 'Zoom in', zoomOut: 'Zoom out', reset: 'Reset view', ...labels };\n const [zLocal, setZLocal] = React.useState(defaultZoom);\n const [pLocal, setPLocal] = React.useState(defaultPan);\n const z = zoomProp != null ? zoomProp : zLocal;\n const p = panProp || pLocal;\n const setZ = (v) => { const n = clamp(Math.round(v * 100) / 100, minZoom, maxZoom); if (zoomProp == null) setZLocal(n); onZoomChange && onZoomChange(n); };\n const setP = (v) => { if (!panProp) setPLocal(v); onPanChange && onPanChange(v); };\n const drag = React.useRef(null);\n const onPointerDown = (e) => {\n if (!interactive || e.button !== 0) return;\n if (e.target.closest('.agn-block, button, a, input, textarea, select, .agn-edge--clickable, .agn-canvas__controls')) return;\n drag.current = { x: e.clientX, y: e.clientY, px: p.x, py: p.y };\n e.currentTarget.setPointerCapture && e.currentTarget.setPointerCapture(e.pointerId);\n };\n const onPointerMove = (e) => { const d = drag.current; if (d) setP({ x: d.px + e.clientX - d.x, y: d.py + e.clientY - d.y }); };\n const onPointerUp = () => { drag.current = null; };\n const onWheel = (e) => {\n if (!interactive) return;\n if (e.ctrlKey || e.metaKey) { e.preventDefault(); setZ(z * (e.deltaY < 0 ? 1.1 : 1 / 1.1)); }\n else if (e.shiftKey || Math.abs(e.deltaX) > 0 || Math.abs(e.deltaY) > 0) setP({ x: p.x - (e.shiftKey ? e.deltaY : e.deltaX), y: p.y - (e.shiftKey ? 0 : e.deltaY) });\n };\n const onKeyDown = (e) => {\n if (!interactive || e.target !== e.currentTarget) return;\n const step = 40;\n const map = { ArrowLeft: [step, 0], ArrowRight: [-step, 0], ArrowUp: [0, step], ArrowDown: [0, -step] };\n if (map[e.key]) { e.preventDefault(); setP({ x: p.x + map[e.key][0], y: p.y + map[e.key][1] }); }\n else if (e.key === '+' || e.key === '=') { e.preventDefault(); setZ(z * 1.2); }\n else if (e.key === '-') { e.preventDefault(); setZ(z / 1.2); }\n else if (e.key === '0') { e.preventDefault(); setZ(1); setP({ x: 0, y: 0 }); }\n };\n const gs = 20 * z;\n const bg = grid ? { backgroundSize: gs + 'px ' + gs + 'px', backgroundPosition: p.x + 'px ' + p.y + 'px' } : null;\n return (\n <div className={cx('agn-canvas', grid && 'agn-canvas--grid', interactive && 'agn-canvas--interactive', className)} style={{ ...bg, ...style }} role=\"application\" aria-roledescription=\"canvas\" aria-label={L.canvas} tabIndex={interactive ? 0 : undefined} onPointerDown={onPointerDown} onPointerMove={onPointerMove} onPointerUp={onPointerUp} onPointerCancel={onPointerUp} onWheel={onWheel} onKeyDown={onKeyDown} {...rest}>\n <div className=\"agn-canvas__layer\" style={{ transform: `translate(${p.x}px, ${p.y}px) scale(${z})` }}>\n {edges && <svg className=\"agn-canvas__edges\" aria-hidden=\"true\">{edges}</svg>}\n {children}\n </div>\n {overlay}\n {controls && (\n <div className=\"agn-canvas__controls\" role=\"toolbar\" aria-label={L.canvas}>\n <ButtonIcon icon=\"minus\" label={L.zoomOut} size=\"sm\" variant=\"ghost\" onClick={() => setZ(z / 1.2)} disabled={z <= minZoom} />\n <button type=\"button\" className=\"agn-canvas__zoom agn-num agn-focus\" onClick={() => { setZ(1); setP({ x: 0, y: 0 }); }} title={L.reset} aria-label={L.reset + ' (' + Math.round(z * 100) + '%)'}>{Math.round(z * 100)}%</button>\n <ButtonIcon icon=\"plus\" label={L.zoomIn} size=\"sm\" variant=\"ghost\" onClick={() => setZ(z * 1.2)} disabled={z >= maxZoom} />\n </div>\n )}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { ButtonIcon } from '../actions/Button.jsx';\n// Sticky note on the canvas: a short title, free text, author and time. For the builder's own remarks, not for configuration.\nexport function CanvasNote({ title, children, author, time, tone = 'warn', width = 220, onEdit, onDelete, labels, className, style, ...rest }) {\n const L = { edit: 'Edit note', delete: 'Delete note', ...labels };\n return (\n <div className={cx('agn-note', 'agn-note--' + tone, className)} style={{ width, ...style }} {...rest}>\n {(title || onEdit || onDelete) && <div className=\"agn-note__head\">{title && <span className=\"agn-note__title\">{title}</span>}<span className=\"agn-note__ctl\">{onEdit && <ButtonIcon icon=\"pencil\" label={L.edit} size=\"xs\" onClick={onEdit} />}{onDelete && <ButtonIcon icon=\"x\" label={L.delete} size=\"xs\" onClick={onDelete} />}</span></div>}\n <div className=\"agn-note__body\">{children}</div>\n {(author || time) && <div className=\"agn-note__foot\">{author}{author && time && ' · '}{time}</div>}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { initials } from './format.js';\nconst CHANNEL = { whatsapp: { icon: 'message-circle', label: 'WhatsApp' }, voice: { icon: 'phone', label: 'Voice' }, web: { icon: 'globe', label: 'Web chat' }, email: { icon: 'mail', label: 'E-mail' } };\nconst OWNER = { bot: { icon: 'bot', label: 'Bot' }, agent: { icon: null, label: 'Agent' }, queue: { icon: 'users', label: 'Queue' } };\n// Contact desk queue item: channel, customer, last message, waiting time, SLA tag and who owns it (bot, a person, or the queue).\nexport function QueueCard({ channel = 'whatsapp', customer, phone, preview, waiting, sla, owner = { kind: 'queue' }, unread, selected, onClick, tenant, labels, className, ...rest }) {\n const L = { waiting: 'waiting', unread: 'unread', ...Object.fromEntries(Object.entries(CHANNEL).map(([k, v]) => [k, v.label])), bot: 'Bot', agent: 'Agent', queue: 'Queue', ...labels };\n const ch = CHANNEL[channel] || CHANNEL.web; const ow = OWNER[owner.kind] || OWNER.queue;\n const Tag = onClick ? 'button' : 'div';\n return (\n <Tag type={onClick ? 'button' : undefined} className={cx('agn-queue', 'agn-queue--' + channel, unread && 'agn-queue--unread', selected && 'agn-queue--selected', onClick && 'agn-queue--clickable agn-focus-inset', className)} aria-pressed={onClick ? !!selected : undefined} onClick={onClick} {...rest}>\n <span className=\"agn-queue__channel\" title={L[channel] || ch.label}><Icon name={ch.icon} size={16} /></span>\n <span className=\"agn-queue__body\">\n <span className=\"agn-queue__top\"><span className=\"agn-queue__name\">{customer}</span>{unread > 0 && <span className=\"agn-queue__unread agn-num\"><span aria-hidden=\"true\">{unread}</span><span className=\"agn-sr\">{unread + ' ' + L.unread}</span></span>}{tenant && <span className=\"agn-queue__tenant\">{tenant}</span>}</span>\n {phone && <span className=\"agn-queue__phone agn-num\">{phone}</span>}\n {preview && <span className=\"agn-queue__preview\">{preview}</span>}\n </span>\n <span className=\"agn-queue__side\">\n {waiting && <span className=\"agn-queue__wait agn-num\"><Icon name=\"timer\" size={11} />{waiting}</span>}\n {sla && <span className={cx('agn-queue__sla', 'agn-queue__sla--' + (sla.tone || 'neutral'))}>{sla.label}</span>}\n <span className={cx('agn-queue__owner', 'agn-queue__owner--' + owner.kind)}>{owner.kind === 'agent' ? <span className=\"agn-queue__owner-avatar\">{initials(owner.name || '')}</span> : <Icon name={ow.icon} size={11} />}{owner.name || L[owner.kind] || ow.label}</span>\n </span>\n </Tag>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\nimport { fmtClock } from './format.js';\nconst STATE = { ringing: { tone: 'info', icon: 'phone-incoming', label: 'Ringing' }, 'in-call': { tone: 'ok', icon: 'phone-call', label: 'In call' }, 'on-hold': { tone: 'warn', icon: 'pause', label: 'On hold' }, ended: { tone: 'neutral', icon: 'phone-off', label: 'Ended' } };\nconst WAVE = [.3, .55, .8, .45, .95, .6, .35, .7, .5, .9, .4, .65, .85, .3, .6, .75, .45, .9, .55, .35];\n// A voice call: number and name, direction, live duration, state (ringing / in call / on hold / ended), waveform placeholder, and answer / hold / transfer / hang up.\nexport function CallCard({ number, name, direction = 'inbound', state = 'ringing', seconds = 0, live, agent, tenant, onAnswer, onDecline, onHold, onResume, onTransfer, onHangup, onCallBack, labels, className, ...rest }) {\n const L = { answer: 'Answer', decline: 'Decline', hold: 'Hold', resume: 'Resume', transfer: 'Transfer', hangup: 'Hang up', callBack: 'Call back', inbound: 'Inbound', outbound: 'Outbound', ...Object.fromEntries(Object.entries(STATE).map(([k, v]) => [k, v.label])), ...labels };\n const [elapsed, setElapsed] = React.useState(seconds);\n React.useEffect(() => { setElapsed(seconds); }, [seconds]);\n React.useEffect(() => { if (!live || state !== 'in-call') return; const t = setInterval(() => setElapsed((e) => e + 1), 1000); return () => clearInterval(t); }, [live, state]);\n const s = STATE[state] || STATE.ringing;\n return (\n <article className={cx('agn-call', 'agn-call--' + state, className)} aria-label={(name || number) + ' · ' + (L[state] || s.label)} {...rest}>\n <header className=\"agn-call__head\">\n <span className=\"agn-call__dir\" title={L[direction]}><Icon name={direction === 'outbound' ? 'phone-outgoing' : 'phone-incoming'} size={16} /></span>\n <div className=\"agn-call__who\">{name && <div className=\"agn-call__name\">{name}</div>}<div className=\"agn-call__number agn-num\">{number}</div></div>\n <span className={cx('agn-call__state', 'agn-call__state--' + s.tone)}><Icon name={s.icon} size={12} className={state === 'ringing' ? 'agn-call__ring' : undefined} />{L[state] || s.label}</span>\n </header>\n <div className=\"agn-call__body\">\n <div className=\"agn-call__time agn-num\" role=\"timer\" aria-live=\"off\">{fmtClock(elapsed)}</div>\n <div className=\"agn-call__wave\" aria-hidden=\"true\">{WAVE.map((v, i) => <span key={i} className=\"agn-call__bar\" style={{ '--agn-h': v, '--agn-i': i }} />)}</div>\n </div>\n {(agent || tenant) && <div className=\"agn-call__meta\">{agent && <span><Icon name=\"headset\" size={12} />{agent}</span>}{tenant && <span><Icon name=\"building-2\" size={12} />{tenant}</span>}</div>}\n <footer className=\"agn-call__foot\">\n {state === 'ringing' && <>{onAnswer && <Button variant=\"success\" size=\"sm\" icon=\"phone\" onClick={onAnswer}>{L.answer}</Button>}{onDecline && <Button variant=\"destructive-text\" size=\"sm\" icon=\"phone-off\" onClick={onDecline}>{L.decline}</Button>}</>}\n {state === 'in-call' && <>{onHold && <Button size=\"sm\" icon=\"pause\" onClick={onHold}>{L.hold}</Button>}{onTransfer && <Button size=\"sm\" icon=\"phone-forwarded\" onClick={onTransfer}>{L.transfer}</Button>}{onHangup && <Button variant=\"destructive\" size=\"sm\" icon=\"phone-off\" onClick={onHangup}>{L.hangup}</Button>}</>}\n {state === 'on-hold' && <>{onResume && <Button variant=\"primary\" size=\"sm\" icon=\"play\" onClick={onResume}>{L.resume}</Button>}{onTransfer && <Button size=\"sm\" icon=\"phone-forwarded\" onClick={onTransfer}>{L.transfer}</Button>}{onHangup && <Button variant=\"destructive\" size=\"sm\" icon=\"phone-off\" onClick={onHangup}>{L.hangup}</Button>}</>}\n {state === 'ended' && onCallBack && <Button size=\"sm\" icon=\"phone-outgoing\" onClick={onCallBack}>{L.callBack}</Button>}\n </footer>\n </article>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { Stat } from '../data/Stat.jsx';\nimport { Sparkline } from '../data/MiniChart.jsx';\nimport { Menu } from '../actions/Menu.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\n// Dashboard KPI: a Stat (value, label, delta) with a Sparkline, in a flat Card; plain drops the card when the KPI is part of the page summary row (KpiRow).\nconst DEFAULT_LABELS = { options: 'Options', trend: 'Trend' };\nexport function KpiWidget({ label, value, delta, invert, sub, icon, spark, sparkTone, sparkColor = 1, menuItems, onMenuSelect, plain, size = 'md', labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const chart = spark && spark.length > 1 ? <Sparkline data={spark} width={128} height={28} area tone={sparkTone} color={sparkColor} aria-label={L.trend + ': ' + spark.join(', ')} /> : null;\n const stat = <Stat label={label} value={value} delta={delta} invert={invert} sub={sub} icon={icon} size={size} chart={chart} />;\n const menu = menuItems && menuItems.length ? <div className=\"agn-kpi__menu\"><Menu align=\"right\" items={menuItems} onSelect={onMenuSelect} trigger={<ButtonIcon icon=\"ellipsis\" label={L.options} size=\"xs\" variant=\"ghost\" />} /></div> : null;\n if (plain) return <div className={cx('agn-kpi', 'agn-kpi--plain', menu && 'agn-kpi--menu', className)} {...rest}>{stat}{menu}</div>;\n return <Card padding=\"md\" as=\"div\" className={cx('agn-kpi', menu && 'agn-kpi--menu', className)} {...rest}>{stat}{menu}</Card>;\n}\n// The page summary: KPIs side by side with hairlines between them and no card around each one.\nexport function KpiRow({ items = [], children, label, className, ...rest }) {\n return <div className={cx('agn-kpi-row', className)} role=\"group\" aria-label={label} {...rest}>{children || items.map((it, i) => <KpiWidget key={it.id || i} plain {...it} />)}</div>;\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { MiniChart } from '../data/MiniChart.jsx';\nimport { Stat } from '../data/Stat.jsx';\nimport { SegmentedControl } from '../forms/SegmentedControl.jsx';\nimport { Skeleton } from '../feedback/Skeleton.jsx';\nimport { EmptyState } from '../feedback/EmptyState.jsx';\n// A chart in a Card: title with its unit, a period SegmentedControl, an optional headline Stat, a MiniChart (line, area, bar, or stacked bars) that measures its own width, with a legend; loading and empty states.\nconst DEFAULT_LABELS = { period: 'Period', loading: 'Loading chart', empty: 'No data for this period', emptyHint: 'Pick another period, or wait for the agent to receive traffic.' };\nexport function ChartCard({ title, icon, unit, periods, period, defaultPeriod, onPeriodChange, type = 'line', series, data, categories = [], height = 160, format = (v) => String(v), legend = true, headline, state, footnote, actions, viewAll, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [own, setOwn] = React.useState(defaultPeriod != null ? defaultPeriod : periods && periods.length ? (typeof periods[0] === 'string' ? periods[0] : periods[0].value) : undefined);\n const per = period !== undefined ? period : own;\n const setPer = (v) => { if (period === undefined) setOwn(v); onPeriodChange && onPeriodChange(v); };\n const ser = series || [{ name: typeof title === 'string' ? title : '', values: data || [] }];\n const empty = state === 'empty' || (state !== 'loading' && !ser.some((s) => s.values && s.values.length));\n const plainTitle = typeof title === 'string' ? title + (unit ? ' (' + unit + ')' : '') : undefined;\n const head = <>{title}{unit && <span className=\"agn-chart-card__unit\">{unit}</span>}</>;\n const right = (periods || actions) && <>{periods && <SegmentedControl size=\"sm\" options={periods} value={per} onChange={setPer} label={L.period} />}{actions}</>;\n let body;\n if (state === 'loading') body = <div className=\"agn-chart-card__loading\" role=\"status\" aria-busy=\"true\"><span className=\"agn-sr\">{L.loading}</span><Skeleton shape=\"rect\" width=\"100%\" height={height} /><Skeleton shape=\"line\" width=\"40%\" /></div>;\n else if (empty) body = <div className=\"agn-chart-card__empty\" style={{ minHeight: height }}><EmptyState compact icon=\"chart-no-axes-column\" title={L.empty}>{L.emptyHint}</EmptyState></div>;\n else body = <MiniChart type={type === 'stacked' ? 'bar' : type} stacked={type === 'stacked'} series={ser} labels={categories} height={height} legend={legend} format={format} title={plainTitle} />;\n return (\n <Card title={head} icon={icon} actions={right} viewAll={viewAll} className={cx('agn-chart-card', className)} {...rest}>\n {headline && state !== 'loading' && !empty && <Stat size=\"sm\" className=\"agn-chart-card__headline\" {...headline} />}\n <div className=\"agn-chart-card__plot\">{body}</div>\n {footnote && <p className=\"agn-chart-card__foot\">{footnote}</p>}\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Card } from '../layout/Card.jsx';\nimport { Checkbox } from '../forms/Checkbox.jsx';\nimport { Avatar } from '../data/Avatar.jsx';\nimport { Tag } from '../data/Tag.jsx';\nimport { Button } from '../actions/Button.jsx';\nimport { EmptyState } from '../feedback/EmptyState.jsx';\n// A checklist of tasks in a Card: complete with the Checkbox, due date (overdue carries the word), owner Avatar and a priority Tag.\nconst PRI = { high: { tone: 'bad', icon: 'chevrons-up' }, medium: { tone: 'warn', icon: 'chevron-up' }, low: { tone: 'neutral', icon: 'chevron-down' } };\nconst DEFAULT_LABELS = { title: 'Tasks', add: 'Add task', empty: 'No open tasks', emptyHint: 'Tasks assigned to you appear here.', overdue: 'Overdue', due: 'Due', high: 'High', medium: 'Medium', low: 'Low', viewAll: 'View all' };\nexport function TaskListWidget({ tasks = [], onToggle, onOpen, onAdd, title, hideDone, viewAll, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [map, setMap] = React.useState({});\n const isDone = (t) => (t.id in map ? map[t.id] : !!t.done);\n const toggle = (t, v) => { setMap({ ...map, [t.id]: v }); onToggle && onToggle(t, v); };\n const list = hideDone ? tasks.filter((t) => !isDone(t)) : tasks;\n const open = tasks.filter((t) => !isDone(t)).length;\n return (\n <Card title={title || L.title} icon=\"list-checks\" count={open} viewAll={viewAll} labels={{ viewAll: L.viewAll }}\n actions={onAdd && <Button variant=\"ghost\" size=\"sm\" icon=\"plus\" onClick={onAdd}>{L.add}</Button>} padding=\"none\" className={cx('agn-tasks', className)} {...rest}>\n {list.length === 0 ? <div className=\"agn-tasks__empty\"><EmptyState compact icon=\"list-checks\" title={L.empty}>{L.emptyHint}</EmptyState></div> : (\n <ul className=\"agn-tasks__list\">\n {list.map((t) => {\n const d = isDone(t); const p = PRI[t.priority];\n return (\n <li key={t.id} className={cx('agn-tasks__item', d && 'agn-tasks__item--done')}>\n <Checkbox checked={d} onChange={(v) => toggle(t, v)} aria-label={typeof t.title === 'string' ? t.title : undefined} />\n <div className=\"agn-tasks__main\">\n {onOpen ? <button type=\"button\" className=\"agn-tasks__title agn-tasks__title--link agn-focus\" onClick={() => onOpen(t)}>{t.title}</button> : <span className=\"agn-tasks__title\">{t.title}</span>}\n {(t.related || t.due) && (\n <span className=\"agn-tasks__meta\">\n {t.related && <span className=\"agn-tasks__related\">{t.related}</span>}\n {t.due && <span className={cx('agn-tasks__due', t.overdue && !d && 'agn-tasks__due--overdue')}><Icon name={t.overdue && !d ? 'circle-alert' : 'calendar'} size={12} />{t.overdue && !d ? L.overdue + ' · ' : <span className=\"agn-sr\">{L.due} </span>}{t.due}</span>}\n </span>\n )}\n </div>\n {p && <Tag tone={d ? 'neutral' : p.tone} icon={p.icon} className=\"agn-tasks__priority\">{L[t.priority]}</Tag>}\n {t.owner && <Avatar size=\"xs\" name={t.owner} kind={t.ownerKind || 'person'} className=\"agn-tasks__owner\" />}\n </li>\n );\n })}\n </ul>\n )}\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Card } from '../layout/Card.jsx';\nimport { Button, ButtonIcon } from '../actions/Button.jsx';\nimport { Tag } from '../data/Tag.jsx';\n// An AI-generated recommendation in a Card: the sparkles \"AI-generated\" header, the insight, the evidence it rests on with each source, Apply / Dismiss and thumbs feedback.\nconst DEFAULT_LABELS = { generated: 'AI-generated', evidence: 'Evidence', apply: 'Apply', dismiss: 'Dismiss', helpful: 'Was this helpful?', yes: 'Helpful', no: 'Not helpful', thanks: 'Thanks for the feedback', applied: 'Applied', dismissed: 'Dismissed', confidence: 'confidence', check: 'Check the evidence before you apply it.' };\nexport function AiInsightWidget({ title, children, evidence = [], confidence, model, time, status: statusProp, onApply, onDismiss, applyLabel, feedback: fbProp, onFeedback, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [own, setOwn] = React.useState('open');\n const status = statusProp || own;\n const [fbOwn, setFb] = React.useState(null);\n const fb = fbProp !== undefined ? fbProp : fbOwn;\n const vote = (v) => { const next = fb === v ? null : v; setFb(next); onFeedback && onFeedback(next); };\n const meta = [confidence != null ? Math.round(confidence * 100) + '% ' + L.confidence : null, model, time].filter(Boolean);\n return (\n <Card icon=\"sparkles\" title={L.generated} as=\"div\" actions={meta.length > 0 && <span className=\"agn-insight__meta\">{meta.map((m, i) => <span key={i}>{m}</span>)}</span>} className={cx('agn-insight', 'agn-insight--' + status, className)} {...rest}>\n {title && <h4 className=\"agn-insight__title\">{title}</h4>}\n {children && <div className=\"agn-insight__text\">{children}</div>}\n {evidence.length > 0 && (\n <div className=\"agn-insight__evidence\">\n <div className=\"agn-insight__label\">{L.evidence}</div>\n <ol className=\"agn-insight__list\">\n {evidence.map((e, i) => {\n const src = e.source && (typeof e.source === 'string' ? { label: e.source } : e.source);\n const SrcTag = src && src.href ? 'a' : 'span';\n return (\n <li key={e.id || i} className=\"agn-insight__item\">\n <span className=\"agn-insight__n agn-num\" aria-hidden=\"true\">{i + 1}</span>\n <div className=\"agn-insight__item-main\">\n <span className=\"agn-insight__claim\">{e.text}</span>\n {src && <SrcTag className=\"agn-insight__source\" href={src.href}><Icon name={src.icon || 'file-text'} size={12} />{src.label}</SrcTag>}\n </div>\n </li>\n );\n })}\n </ol>\n </div>\n )}\n <div className=\"agn-insight__foot\">\n {status === 'open' ? (\n <div className=\"agn-insight__actions\">\n <Button size=\"sm\" variant=\"neutral\" icon=\"check\" onClick={() => { setOwn('applied'); onApply && onApply(); }}>{applyLabel || L.apply}</Button>\n <Button size=\"sm\" variant=\"ghost\" onClick={() => { setOwn('dismissed'); onDismiss && onDismiss(); }}>{L.dismiss}</Button>\n </div>\n ) : <Tag tone={status === 'applied' ? 'ok' : 'neutral'} icon={status === 'applied' ? 'circle-check' : 'x'}>{L[status] || status}</Tag>}\n <div className=\"agn-insight__feedback\" role=\"group\" aria-label={L.helpful}>\n <span className=\"agn-insight__ask\" aria-live=\"polite\">{fb ? L.thanks : L.helpful}</span>\n <ButtonIcon icon=\"thumbs-up\" label={L.yes} size=\"xs\" aria-pressed={fb === 'up'} className={cx(fb === 'up' && 'agn-insight__thumb--on')} onClick={() => vote('up')} />\n <ButtonIcon icon=\"thumbs-down\" label={L.no} size=\"xs\" aria-pressed={fb === 'down'} className={cx(fb === 'down' && 'agn-insight__thumb--on')} onClick={() => vote('down')} />\n </div>\n </div>\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Input } from '../forms/Input.jsx';\nimport { Combobox } from '../forms/Combobox.jsx';\nimport { ChipGroup } from '../actions/Chip.jsx';\nimport { Menu } from '../actions/Menu.jsx';\nimport { Pill, PillContainer } from '../actions/Pill.jsx';\nimport { Button } from '../actions/Button.jsx';\n// The filter row above a list or board: search Input, quick filter Chips, a \"More filters\" Menu, a saved views Combobox and, under it, the active filters as removable Pills with Clear all.\nconst DEFAULT_LABELS = { search: 'Search…', searchLabel: 'Search', filters: 'Quick filters', more: 'More filters', views: 'Saved view', active: 'Filters', clear: 'Clear all', remove: 'Remove filter' };\nfunction useCtl(value, def, cb) {\n const [own, setOwn] = React.useState(def);\n const v = value !== undefined ? value : own;\n return [v, (x) => { if (value === undefined) setOwn(x); cb && cb(x); }];\n}\nexport function FilterBar({ search, defaultSearch = '', onSearch, chips = [], chipValue, defaultChipValue = [], onChipChange, moreFilters = [], onMoreFilter, moreOpen, onMoreOpenChange, views = [], view, defaultView = null, onViewChange, active, defaultActive = [], onActiveChange, onClear, right, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [q, setQ] = useCtl(search, defaultSearch, onSearch);\n const [cv, setCv] = useCtl(chipValue, defaultChipValue, onChipChange);\n const [vw, setVw] = useCtl(view, defaultView, onViewChange);\n const [act, setAct] = useCtl(active, defaultActive, onActiveChange);\n const add = (it) => { onMoreFilter && onMoreFilter(it); if (!act.some((a) => a.key === it.value)) setAct([...act, { key: it.value, label: it.label }]); };\n const any = q || cv.length > 0 || act.length > 0;\n const clearAll = () => { setQ(''); setCv([]); setAct([]); onClear && onClear(); };\n return (\n <div className={cx('agn-filterbar', className)} {...rest}>\n <div className=\"agn-filterbar__row\">\n <Input icon=\"search\" value={q} onChange={(e) => setQ(e.target.value)} onClear={q ? () => setQ('') : undefined} placeholder={L.search} aria-label={L.searchLabel} className=\"agn-filterbar__search\" />\n {chips.length > 0 && <ChipGroup multiple options={chips} value={cv} onChange={setCv} label={L.filters} />}\n {moreFilters.length > 0 && <Menu items={moreFilters} open={moreOpen} onOpenChange={onMoreOpenChange} searchable={moreFilters.length > 7} onSelect={add} trigger={<Button variant=\"ghost\" icon=\"list-filter\">{L.more}</Button>} />}\n <span className=\"agn-filterbar__spacer\" />\n {views.length > 0 && <Combobox options={views} value={vw} onChange={setVw} icon=\"bookmark\" placeholder={L.views} className=\"agn-filterbar__views\" />}\n {right}\n </div>\n {(act.length > 0 || any) && (\n <div className=\"agn-filterbar__active\">\n <span className=\"agn-filterbar__label\">{L.active}</span>\n {act.length > 0 && <PillContainer bare>{act.map((a) => <Pill key={a.key} size=\"sm\" label={a.label} icon={a.icon} labels={{ remove: L.remove }} onRemove={() => setAct(act.filter((x) => x.key !== a.key))} />)}</PillContainer>}\n <Button variant=\"link\" size=\"sm\" onClick={clearAll}>{L.clear}</Button>\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { Avatar } from '../data/Avatar.jsx';\nimport { BlockIcon } from '../data/BlockIcon.jsx';\nimport { Tag } from '../data/Tag.jsx';\nimport { SummaryDetail } from '../data/SummaryDetail.jsx';\nimport { Path } from '../navigation/Path.jsx';\nimport { Button, ButtonIcon } from '../actions/Button.jsx';\n// A record at a glance in a Card: avatar or BlockIcon, object eyebrow, title and status, SummaryDetail key fields, the Path stage and quick actions. For side columns, hover previews and dashboards.\nconst DEFAULT_LABELS = { open: 'Open record', stage: 'Stage' };\nexport function RecordSummaryWidget({ object, title, subtitle, media, avatar, icon = 'bot', product, status, fields = [], stages, stage, lost, pathCompact, actions = [], onOpen, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const mediaNode = media || (avatar ? <Avatar size=\"lg\" name={avatar} /> : <BlockIcon size=\"xl\" icon={icon} product={product} />);\n const st = status && (typeof status === 'string' ? { label: status } : status);\n return (\n <Card padding=\"md\" as=\"div\" className={cx('agn-record', className)} {...rest}>\n <div className=\"agn-record__head\">\n {mediaNode}\n <div className=\"agn-record__heading\">\n {object && <div className=\"agn-eyebrow agn-eyebrow--quiet\">{object}</div>}\n <h3 className=\"agn-record__title\">{title}</h3>\n {subtitle && <div className=\"agn-record__sub\">{subtitle}</div>}\n </div>\n <div className=\"agn-record__side\">\n {st && <Tag tone={st.tone} dot={st.dot} icon={st.icon}>{st.label}</Tag>}\n {onOpen && <ButtonIcon icon=\"arrow-up-right\" label={L.open} size=\"sm\" onClick={onOpen} />}\n </div>\n </div>\n {fields.length > 0 && <SummaryDetail fields={fields} dense className=\"agn-record__fields\" />}\n {stages && stages.length > 0 && <Path steps={stages} current={stage} lost={lost} compact={pathCompact} labels={{ stage: L.stage, ...(L.path || {}) }} className=\"agn-record__path\" />}\n {actions.length > 0 && <div className=\"agn-record__actions\">{actions.map((a, i) => <Button key={a.label || i} size=\"sm\" variant={a.variant || (i === 0 ? 'neutral' : 'ghost')} icon={a.icon} onClick={a.onClick} disabled={a.disabled}>{a.label}</Button>)}</div>}\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Card } from '../layout/Card.jsx';\nimport { Avatar } from '../data/Avatar.jsx';\nimport { Tag } from '../data/Tag.jsx';\nimport { ProgressBar } from '../feedback/ProgressBar.jsx';\n// People (or agents) against their capacity in a Card: a ProgressBar per row, over capacity in warn with the word, and a count of who is over in the header.\nconst DEFAULT_LABELS = { title: 'Team workload', over: 'Over capacity', overCount: 'over capacity', unit: 'tasks', load: 'workload', viewAll: 'View all' };\nexport function TeamWorkloadWidget({ members = [], title, unit, overAt = 1, onMember, viewAll, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const u = unit || L.unit;\n const rows = members.map((m) => ({ ...m, ratio: m.value / (m.capacity || 1) }));\n const overN = rows.filter((r) => r.ratio > overAt).length;\n return (\n <Card title={title || L.title} icon=\"users\" viewAll={viewAll} labels={{ viewAll: L.viewAll }} actions={overN > 0 && <Tag tone=\"warn\" icon=\"triangle-alert\">{overN} {L.overCount}</Tag>} className={cx('agn-workload', className)} {...rest}>\n <ul className=\"agn-workload__list\">\n {rows.map((m, i) => {\n const over = m.ratio > overAt;\n const text = m.value + ' / ' + m.capacity + ' ' + u;\n return (\n <li key={m.id || m.name || i} className={cx('agn-workload__row', over && 'agn-workload__row--over')}>\n <Avatar size=\"sm\" name={m.name} kind={m.kind || 'person'} status={m.status} />\n <div className=\"agn-workload__who\">\n {onMember ? <button type=\"button\" className=\"agn-workload__name agn-workload__name--link agn-focus\" onClick={() => onMember(m)}>{m.name}</button> : <span className=\"agn-workload__name\">{m.name}</span>}\n {m.role && <span className=\"agn-workload__role\">{m.role}</span>}\n </div>\n <ProgressBar className=\"agn-workload__bar\" size=\"sm\" value={Math.min(m.value, m.capacity)} max={m.capacity} tone={over ? 'warn' : 'signal'} valueText={text} labels={{ working: m.name + ' ' + L.load }} />\n <span className=\"agn-workload__value agn-num\">{text}</span>\n <span className=\"agn-workload__flag\">{over && <><Icon name=\"triangle-alert\" size={12} />{L.over}</>}</span>\n </li>\n );\n })}\n </ul>\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { ActivityTimeline } from '../data/ActivityTimeline.jsx';\nimport { SegmentedControl } from '../forms/SegmentedControl.jsx';\nimport { EmptyState } from '../feedback/EmptyState.jsx';\n// An ActivityTimeline in a Card with a type filter (all, runs, approvals, conversations, notes): the record or workspace history on a dashboard or a record page's side column.\nconst KINDS = { runs: ['run', 'step', 'agent', 'deploy', 'error', 'success'], approvals: ['approval', 'handoff', 'warn'], conversations: ['call', 'message', 'email'], notes: ['note', 'edit', 'event'] };\nconst DEFAULT_LABELS = { title: 'Activity', filter: 'Activity type', all: 'All', runs: 'Runs', approvals: 'Approvals', conversations: 'Conversations', notes: 'Notes', empty: 'No activity of this type', emptyHint: 'Pick another type to see more.', viewAll: 'View all', show: 'Show details', hide: 'Hide details' };\nexport function ActivityWidget({ items = [], types, type, defaultType = 'all', onTypeChange, title, max, compact = true, viewAll, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const opts = types || [{ value: 'all', label: L.all }, ...Object.keys(KINDS).map((k) => ({ value: k, label: L[k], kinds: KINDS[k] }))];\n const [own, setOwn] = React.useState(defaultType);\n const t = type !== undefined ? type : own;\n const set = (v) => { if (type === undefined) setOwn(v); onTypeChange && onTypeChange(v); };\n const cur = opts.find((o) => o.value === t);\n const shown = (cur && cur.kinds ? items.filter((it) => cur.kinds.includes(it.kind)) : items).slice(0, max || undefined);\n return (\n <Card title={title || L.title} icon=\"history\" viewAll={viewAll} labels={{ viewAll: L.viewAll }} className={cx('agn-activity-w', className)} {...rest}>\n <div className=\"agn-activity-w__filter\"><SegmentedControl size=\"sm\" options={opts.map((o) => ({ label: o.label, value: o.value }))} value={t} onChange={set} label={L.filter} /></div>\n {shown.length ? <ActivityTimeline items={shown} compact={compact} labels={{ show: L.show, hide: L.hide }} /> : <EmptyState compact icon=\"history\" title={L.empty}>{L.emptyHint}</EmptyState>}\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { BlockIcon } from '../data/BlockIcon.jsx';\nimport { Badge } from '../data/Badge.jsx';\nimport { Kbd } from '../core/Kbd.jsx';\n// A grid of action tiles (BlockIcon, label, optional line and Kbd hint) for the shortcuts people take most from a home or dashboard: new agent, start a test run, open approvals.\nconst DEFAULT_LABELS = { title: 'Quick actions' };\nexport function QuickActions({ actions = [], onAction, columns, minTile = 168, title, labels, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const gridStyle = columns ? { gridTemplateColumns: 'repeat(' + columns + ', minmax(0, 1fr))' } : { '--agn-quick-min': minTile + 'px' };\n const grid = (\n <div className={cx('agn-quick', !title && className)} role=\"group\" aria-label={title || L.title} style={title ? gridStyle : { ...gridStyle, ...style }} {...(title ? {} : rest)}>\n {actions.map((a, i) => (\n <button key={a.id || a.label || i} type=\"button\" className=\"agn-quick__tile agn-focus\" disabled={a.disabled} onClick={() => { a.onClick && a.onClick(a); onAction && onAction(a); }}>\n <span className=\"agn-quick__top\">\n <BlockIcon icon={a.icon} product={a.product} tone={a.tone || 'signal'} size=\"lg\" />\n {a.shortcut && <Kbd size=\"sm\" keys={Array.isArray(a.shortcut) ? a.shortcut : String(a.shortcut).split(' ')} className=\"agn-quick__kbd\" />}\n {a.badge != null && <Badge count={a.badge} solid size=\"sm\" className=\"agn-quick__badge\" />}\n </span>\n <span className=\"agn-quick__label\">{a.label}</span>\n {a.description && <span className=\"agn-quick__desc\">{a.description}</span>}\n </button>\n ))}\n </div>\n );\n if (!title) return grid;\n return <Card title={title} icon=\"zap\" padding=\"sm\" className={cx('agn-quick-card', className)} style={style} {...rest}>{grid}</Card>;\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { NotificationList } from '../feedback/Notification.jsx';\n// The NotificationList in a flat Card for a dashboard column: grouped by day, unread count in the header, Mark all as read, View all in the footer.\nconst DEFAULT_LABELS = { title: 'Notifications', markAll: 'Mark all as read', today: 'Today', yesterday: 'Yesterday', empty: 'You are all caught up', viewAll: 'View all' };\nexport function NotificationsWidget({ items = [], title, onMarkAll, onItem, max, locale, viewAll, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [readAll, setReadAll] = React.useState(false);\n const [read, setRead] = React.useState({});\n const list = items.slice(0, max || undefined).map((it, i) => {\n const key = it.id || String(i);\n const open = onItem || it.onClick;\n return { ...it, id: key, unread: !!it.unread && !readAll && !read[key], onClick: open ? () => { setRead({ ...read, [key]: true }); it.onClick && it.onClick(); onItem && onItem(it); } : undefined };\n });\n const anyUnread = list.some((i) => i.unread);\n return (\n <Card as=\"div\" padding=\"none\" viewAll={viewAll} labels={{ viewAll: L.viewAll }} className={cx('agn-notifs-w', className)} {...rest}>\n <NotificationList bare title={title || L.title} items={list} locale={locale} onMarkAll={anyUnread ? () => { setReadAll(true); onMarkAll && onMarkAll(); } : undefined} labels={{ title: L.title, markAll: L.markAll, today: L.today, yesterday: L.yesterday, empty: L.empty }} />\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Card } from '../layout/Card.jsx';\nimport { Tag } from '../data/Tag.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { CanvasBlock, CanvasEdge } from '../widgets/CanvasBlock.jsx';\n// A read-only mini canvas in a Card: three to six CanvasBlocks in a row joined by CanvasEdges, the running step ringed in execution and each step captioned with where the live runs are.\nconst STATE = { done: 'default', running: 'running', error: 'error', waiting: 'default', upcoming: 'default' };\nconst CAP_ICON = { done: 'check', running: 'loader-circle', error: 'circle-alert', waiting: 'pause', upcoming: 'minus' };\nconst DEFAULT_LABELS = { flow: 'Agent steps', done: 'Done', running: 'Running', error: 'Failed', waiting: 'Waiting', upcoming: 'Not reached', live: 'live runs', liveOne: 'live run', open: 'Open in builder' };\nexport function AgentFlowWidget({ agent, title, steps = [], liveRuns, version, blockWidth = 160, gap = 24, onOpen, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const reached = (s) => s && s.state && s.state !== 'upcoming';\n const edgeState = (s) => (s.state === 'running' || s.state === 'waiting' ? 'running' : reached(s) ? 'active' : 'deleted');\n const head = <>{title || agent}{version && <span className=\"agn-flow__version\">{version}</span>}</>;\n const actions = (liveRuns != null || onOpen) && <>{liveRuns != null && <Tag tone={liveRuns > 0 ? 'signal' : 'neutral'} dot={liveRuns > 0}>{liveRuns} {liveRuns === 1 ? L.liveOne : L.live}</Tag>}{onOpen && <ButtonIcon icon=\"arrow-up-right\" label={L.open} size=\"sm\" onClick={onOpen} />}</>;\n return (\n <Card title={head} icon=\"route\" actions={actions} padding=\"none\" className={cx('agn-flow-w', className)} {...rest}>\n <div className=\"agn-flow\" role=\"list\" aria-label={L.flow}>\n {steps.map((s, i) => {\n const st = s.state || 'upcoming';\n const caption = st === 'upcoming' ? L.upcoming : (s.runs != null ? s.runs + ' · ' : '') + L[st];\n return (\n <React.Fragment key={s.id || i}>\n {i > 0 && <svg className=\"agn-flow__edge\" width={gap} height={16} viewBox={'0 0 ' + gap + ' 16'} aria-hidden=\"true\"><CanvasEdge from={{ x: 2, y: 8 }} to={{ x: gap - 3, y: 8 }} state={edgeState(s)} /></svg>}\n <div className=\"agn-flow__step\" role=\"listitem\" aria-current={st === 'running' ? 'step' : undefined} style={{ width: blockWidth }}>\n <CanvasBlock name={s.name} kind={s.kind} icon={s.icon} product={s.product} state={STATE[st]} ports={{ in: i > 0, out: i < steps.length - 1 }} labels={{ running: L.running, error: L.error }}\n className={cx('agn-flow__block', 'agn-flow__block--' + st)} style={{ width: blockWidth }} />\n <span className={cx('agn-flow__caption', 'agn-flow__caption--' + st)}><Icon name={CAP_ICON[st]} size={12} className={st === 'running' ? 'agn-flow__spin' : undefined} />{caption}</span>\n </div>\n </React.Fragment>\n );\n })}\n </div>\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Card } from '../layout/Card.jsx';\nimport { Avatar } from '../data/Avatar.jsx';\nimport { SegmentedControl } from '../forms/SegmentedControl.jsx';\n// Ranked rows in a Card — an agent or a person, the value with a bar against the leader, and the movement since the last period — with an optional period switch.\nconst DEFAULT_LABELS = { title: 'Leaderboard', period: 'Period', rank: 'Rank', name: 'Name', value: 'Value', change: 'Change', up: 'up', down: 'down', flat: 'no change', viewAll: 'View all' };\nexport function LeaderboardWidget({ rows = [], title, metric, periods, period, defaultPeriod, onPeriodChange, format = (v) => String(v), deltaFormat = (v) => (v > 0 ? '+' : '') + v, invert, highlight, max, sort = true, viewAll, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [own, setOwn] = React.useState(defaultPeriod != null ? defaultPeriod : periods && periods.length ? (typeof periods[0] === 'string' ? periods[0] : periods[0].value) : undefined);\n const per = period !== undefined ? period : own;\n const setPer = (v) => { if (period === undefined) setOwn(v); onPeriodChange && onPeriodChange(v); };\n const list = (sort ? [...rows].sort((a, b) => (invert ? a.value - b.value : b.value - a.value)) : rows).slice(0, max || undefined);\n const top = Math.max(...list.map((r) => r.value), 1);\n return (\n <Card title={title || L.title} icon=\"list-ordered\" viewAll={viewAll} labels={{ viewAll: L.viewAll }} actions={periods && <SegmentedControl size=\"sm\" options={periods} value={per} onChange={setPer} label={L.period} />} className={cx('agn-leader', className)} {...rest}>\n <div className=\"agn-leader__head\" aria-hidden=\"true\"><span>#</span><span>{L.name}</span><span className=\"agn-leader__head-value\">{metric || L.value}</span><span>{L.change}</span></div>\n <ol className=\"agn-leader__list\">\n {list.map((r, i) => {\n const d = r.delta;\n const dir = d == null || d === 0 ? 'flat' : d > 0 ? 'up' : 'down';\n const good = dir === 'flat' ? null : (dir === 'up') !== !!invert;\n return (\n <li key={r.id || r.name} className={cx('agn-leader__row', highlight != null && (r.id === highlight || r.name === highlight) && 'agn-leader__row--hl')}>\n <span className=\"agn-leader__rank agn-num\">{i + 1}</span>\n <span className=\"agn-leader__who\">\n <Avatar size=\"sm\" name={r.name} kind={r.kind || 'agent'} product={r.product} icon={r.icon} />\n <span className=\"agn-leader__text\"><span className=\"agn-leader__name\">{r.name}</span>{r.sub && <span className=\"agn-leader__sub\">{r.sub}</span>}</span>\n </span>\n <span className=\"agn-leader__measure\">\n <span className=\"agn-leader__bar\" aria-hidden=\"true\"><span className=\"agn-leader__fill\" style={{ width: Math.max(2, (r.value / top) * 100) + '%' }} /></span>\n <span className=\"agn-leader__value agn-num\">{format(r.value)}</span>\n </span>\n <span className={cx('agn-leader__delta', 'agn-leader__delta--' + (good == null ? 'flat' : good ? 'ok' : 'bad'))}>\n {d != null && <><Icon name={dir === 'up' ? 'arrow-up-right' : dir === 'down' ? 'arrow-down-right' : 'minus'} size={12} /><span className=\"agn-sr\">{L[dir]} </span>{dir !== 'flat' && deltaFormat(d)}</>}\n </span>\n </li>\n );\n })}\n </ol>\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Card } from '../layout/Card.jsx';\nimport { Tag } from '../data/Tag.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { EmptyState } from '../feedback/EmptyState.jsx';\n// One day's schedule from CalendarView events in a Card: a time rail, a tone bar per event, scheduled runs and reviews with their tenant, done / live / in n min, and a now line.\nconst KIND_ICON = { run: 'play', review: 'user-check', call: 'phone', maintenance: 'wrench', deploy: 'rocket', meeting: 'users' };\nconst DEFAULT_LABELS = { title: 'Today', add: 'Schedule a run', empty: 'Nothing scheduled', emptyHint: 'Scheduled runs and reviews for this day appear here.', now: 'Now', done: 'Done', live: 'Live', soon: 'in {n} min', allDay: 'All day', run: 'Scheduled run', review: 'Review', call: 'Call', maintenance: 'Maintenance', deploy: 'Deploy', meeting: 'Meeting', viewAll: 'Open calendar' };\nconst toDate = (d) => (d instanceof Date ? d : new Date(d));\nconst sameDay = (a, b) => a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\nexport function AgendaWidget({ events = [], date, now, locale = 'en', title, onEvent, onAdd, max, viewAll, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n locale = /^en$/i.test(locale) ? 'en-GB' : locale;\n const nowD = now ? toDate(now) : new Date();\n const day = date ? toDate(date) : nowD;\n const tm = (d) => d.toLocaleTimeString(locale, { hour: '2-digit', minute: '2-digit', hour12: false });\n const dayText = day.toLocaleDateString(locale, /^tr/i.test(locale) ? { day: '2-digit', month: '2-digit', year: 'numeric' } : { day: 'numeric', month: 'short', year: 'numeric' });\n const list = events.map((e) => { const s = toDate(e.start); const en = e.end ? toDate(e.end) : new Date(s.getTime() + 30 * 60000); return { ...e, _s: s, _e: en, _past: !e.allDay && en <= nowD, _live: !e.allDay && s <= nowD && nowD < en }; })\n .filter((e) => sameDay(e._s, day)).sort((a, b) => (a.allDay ? -1 : b.allDay ? 1 : a._s - b._s)).slice(0, max || undefined);\n const showNow = sameDay(day, nowD);\n const nowAt = showNow ? list.findIndex((e) => !e.allDay && !e._past && !e._live) : -1;\n const actions = <><span className=\"agn-agenda__date agn-num\">{dayText}</span>{onAdd && <ButtonIcon icon=\"calendar-plus\" label={L.add} size=\"sm\" onClick={onAdd} />}</>;\n const nowLine = <li key=\"now\" className=\"agn-agenda__now\" aria-hidden=\"true\"><span className=\"agn-agenda__now-label agn-num\">{L.now} {tm(nowD)}</span></li>;\n return (\n <Card title={title || L.title} icon=\"calendar-days\" actions={actions} viewAll={viewAll} labels={{ viewAll: L.viewAll }} padding=\"none\" className={cx('agn-agenda', className)} {...rest}>\n {list.length === 0 ? <div className=\"agn-agenda__empty\"><EmptyState compact icon=\"calendar\" title={L.empty}>{L.emptyHint}</EmptyState></div> : (\n <ol className=\"agn-agenda__list\">\n {list.map((e, i) => {\n const mins = Math.round((e._s - nowD) / 60000);\n const Title = onEvent ? 'button' : 'span';\n return (\n <React.Fragment key={e.id || i}>\n {i === nowAt && nowLine}\n <li className={cx('agn-agenda__item', 'agn-agenda__item--' + (e.tone || 'signal'), e._past && 'agn-agenda__item--past', e._live && 'agn-agenda__item--live')}>\n <span className=\"agn-agenda__time agn-num\">{e.allDay ? L.allDay : <>{tm(e._s)}<span className=\"agn-agenda__end\">{tm(e._e)}</span></>}</span>\n <span className=\"agn-agenda__bar\" aria-hidden=\"true\" />\n <span className=\"agn-agenda__main\">\n <Title type={onEvent ? 'button' : undefined} className={cx('agn-agenda__title', onEvent && 'agn-agenda__title--link agn-focus')} onClick={onEvent ? () => onEvent(e) : undefined}>{e.title}</Title>\n <span className=\"agn-agenda__meta\">\n {e.kind && <span className=\"agn-agenda__kind\"><Icon name={KIND_ICON[e.kind] || 'circle'} size={12} />{L[e.kind] || e.kind}</span>}\n {e.tenant && <span className=\"agn-agenda__tenant\">{e.tenant}</span>}\n {e.meta && <span>{e.meta}</span>}\n </span>\n </span>\n <span className=\"agn-agenda__status\">\n {e._live ? <Tag tone=\"signal\" dot>{L.live}</Tag> : e._past ? <span className=\"agn-agenda__done\"><Icon name=\"check\" size={12} />{L.done}</span> : showNow && mins > 0 && mins <= 60 ? <span className=\"agn-agenda__soon agn-num\">{L.soon.replace('{n}', mins)}</span> : null}\n </span>\n </li>\n </React.Fragment>\n );\n })}\n {showNow && nowAt === -1 && list.length > 0 && !list.some((e) => e._live) && nowLine}\n </ol>\n )}\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { SetupAssistant } from '../navigation/SetupAssistant.jsx';\nimport { EmptyState } from '../feedback/EmptyState.jsx';\n// The SetupAssistant in a dashboard Card: the goal, progress, numbered steps with the next one carrying the action, and a hide button; a done state once every step is complete.\nconst DEFAULT_LABELS = { title: 'Get started', hide: 'Hide', complete: 'Setup complete', completeHint: 'Every step is done. You can hide this card.', progress: 'completed', done: 'Done', optional: 'optional' };\nexport function OnboardingWidget({ title, heading, description, steps = [], onDismiss, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const all = steps.length > 0 && steps.every((s) => s.done);\n return (\n <Card title={title || L.title} icon=\"rocket\" actions={onDismiss && <ButtonIcon icon=\"x\" label={L.hide} size=\"xs\" onClick={onDismiss} />} className={cx('agn-onboard', className)} {...rest}>\n {all ? <EmptyState compact icon=\"circle-check\" title={L.complete}>{L.completeHint}</EmptyState>\n : <SetupAssistant bare title={heading} description={description} steps={steps} labels={{ progress: L.progress, done: L.done, optional: L.optional }} />}\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { Feed, FeedPost } from '../data/Feed.jsx';\nimport { Publisher } from '../feedback/Publisher.jsx';\nimport { Tag } from '../data/Tag.jsx';\nimport { EmptyState } from '../feedback/EmptyState.jsx';\n// A comment thread in a Card: FeedPosts with @mentions picked out, replies and likes, and the Publisher docked at the bottom.\nconst DEFAULT_LABELS = { title: 'Comments', placeholder: 'Add a comment — @ mentions a teammate', submit: 'Comment', empty: 'No comments yet', emptyHint: 'Start the thread; mention a teammate with @.', now: 'now', reply: 'Reply', like: 'Like', liked: 'Liked', attach: 'Attach file', mention: 'Mention someone', resolved: 'Resolved' };\nconst withMentions = (text) => typeof text !== 'string' ? text : text.split(/(@[\\p{L}\\p{N}_.-]+)/u).map((p, i) => (p.startsWith('@') && p.length > 1 ? <span key={i} className=\"agn-comments__mention\">{p}</span> : p));\nexport function CommentsWidget({ comments = [], user, onSubmit, onLike, onReply, title, maxHeight = 360, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [added, setAdded] = React.useState([]);\n const all = [...comments, ...added];\n const submit = (v) => { if (onSubmit) onSubmit(v); else setAdded([...added, { id: 'local-' + added.length, author: user || '', time: L.now, text: v }]); };\n return (\n <Card title={title || L.title} icon=\"message-square\" count={all.length} padding=\"none\" className={cx('agn-comments', className)} {...rest}>\n <div className=\"agn-comments__list\" style={{ maxHeight }}>\n {all.length === 0 ? <EmptyState compact icon=\"message-square\" title={L.empty}>{L.emptyHint}</EmptyState> : (\n <Feed>\n {all.map((c, i) => (\n <FeedPost key={c.id || i} author={c.author} kind={c.kind} action={c.action} target={c.target} time={c.time} replies={c.replies} likes={c.likes} liked={c.liked} tone={c.tone}\n onLike={onLike ? () => onLike(c) : undefined} onReply={onReply ? () => onReply(c) : undefined} labels={{ reply: L.reply, like: L.like, liked: L.liked }}\n actions={c.resolved ? <Tag tone=\"ok\" icon=\"circle-check\">{L.resolved}</Tag> : undefined}>{withMentions(c.text)}</FeedPost>\n ))}\n </Feed>\n )}\n </div>\n <div className=\"agn-comments__composer\"><Publisher user={user} placeholder={L.placeholder} submitLabel={L.submit} onSubmit={submit} labels={{ placeholder: L.placeholder, submit: L.submit, attach: L.attach, mention: L.mention }} /></div>\n </Card>\n );\n}\n"],"mappings":"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","names":["React","React","React","jsx","Tag","React","jsx","React","jsx","Tag","React","jsx","jsxs","loading","Tag","React","jsx","jsxs","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","Tag","React","jsx","jsxs","Tag","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","React","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","React","Input","React","jsx","jsxs","DEFAULT_LABELS","React","Textarea","React","jsx","jsxs","React","Select","React","jsx","jsxs","React","Checkbox","React","jsx","jsxs","DEFAULT_LABELS","React","Switch","React","jsx","React","jsx","jsxs","React","norm","React","jsx","jsxs","DEFAULT_LABELS","React","norm","React","jsx","jsxs","norm","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","React","React","jsx","jsxs","React","v","pct","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","clamp","React","jsx","jsxs","DEFAULT_LABELS","norm","React","React","jsx","jsxs","DEFAULT_LABELS","React","list","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","useState","useEffect","Fragment","jsx","jsxs","DEFAULT_LABELS","useState","useEffect","React","React","useState","jsx","jsxs","DEFAULT_LABELS","useState","React","React","useState","useRef","React","jsx","jsxs","jsx","jsxs","DEFAULT_LABELS","flatten","collect","useState","useRef","React","jsx","jsxs","media","React","jsx","jsxs","React","jsx","jsxs","px","React","jsx","jsxs","React","jsx","px","React","jsx","jsxs","React","jsx","jsxs","DEFAULT_LABELS","React","useState","Fragment","jsx","jsxs","DEFAULT_LABELS","useState","React","React","jsx","jsxs","React","jsx","jsxs","React","jsx","jsxs","React","ticks","React","useState","Fragment","jsx","jsxs","DEFAULT_LABELS","useState","React","jsx","jsxs","DEFAULT_LABELS","React","Fragment","jsx","jsxs","toDate","React","jsx","jsxs","React","jsx","jsxs","React","useState","jsx","jsxs","DEFAULT_LABELS","useState","React","useState","Fragment","jsx","jsxs","DEFAULT_LABELS","path","useState","React","Fragment","jsx","jsxs","DEFAULT_LABELS","i","j","React","jsx","jsxs","t","i","scale","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React","React","React","read","Fragment","jsx","jsxs","React","jsx","jsxs","React","DEFAULT_LABELS","read","b","React","jsx","React","useState","useEffect","useRef","jsx","useIsoLayoutEffect","useEffect","useRef","useState","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React","React","useState","useRef","useMemo","jsx","jsxs","DEFAULT_LABELS","useState","useMemo","useRef","i","horiz","React","Fragment","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React","useState","useRef","Fragment","jsx","jsxs","DEFAULT_LABELS","useState","useRef","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","media","React","Fragment","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","React","useState","useMemo","jsx","jsxs","useState","useMemo","React","useState","useEffect","useRef","jsx","jsxs","DEFAULT_LABELS","useState","useRef","useEffect","React","jsx","jsxs","DEFAULT_LABELS","pct","React","useMemo","jsx","jsxs","DEFAULT_LABELS","useMemo","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","Tag","React","jsx","jsxs","WIDTHS","React","jsx","jsxs","React","jsx","jsxs","React","React","jsx","jsxs","React","jsx","jsxs","initials","Tag","React","jsx","jsxs","FOCUSABLE","React","loading","React","jsx","jsxs","React","React","jsx","jsxs","React","jsxs","jsx","React","jsx","jsxs","React","show","React","jsx","jsxs","px","React","jsx","jsxs","React","pct","React","jsx","jsxs","pct","React","Fragment","jsx","jsxs","React","React","jsx","jsxs","React","initials","React","jsx","jsxs","React","jsx","React","React","React","jsx","jsxs","buf","Tag","React","React","jsx","jsxs","React","jsx","jsxs","Tag","jsx","jsxs","initials","React","jsx","jsxs","React","jsx","jsxs","React","Fragment","jsx","jsxs","fmtSize","React","React","jsx","jsxs","React","Fragment","jsx","jsxs","STATUS","loading","React","React","React","jsx","jsxs","initials","jsx","jsxs","React","React","jsx","jsxs","flatten","React","React","jsx","jsxs","React","jsx","jsxs","React","jsx","jsxs","Tag","rr","React","jsx","jsxs","React","React","jsx","jsxs","React","jsx","jsxs","Tag","initials","React","Fragment","jsx","jsxs","React","React","jsx","jsxs","DEFAULT_LABELS","React","Fragment","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","media","React","Fragment","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","DEFAULT_LABELS","React","read","React","Fragment","jsx","jsxs","STATE","DEFAULT_LABELS","React","React","Fragment","jsx","jsxs","DEFAULT_LABELS","React","React","Fragment","jsx","jsxs","KIND_ICON","DEFAULT_LABELS","toDate","sameDay","React","React","jsx","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React"]}
|
|
1
|
+
{"version":3,"sources":["../src/core/Icon.jsx","../src/core/AginiesMark.jsx","../src/core/mark-paths.js","../src/core/style.js","../src/core/Eyebrow.jsx","../src/core/Kbd.jsx","../src/core/Text.jsx","../src/actions/Button.jsx","../src/actions/ButtonStateful.jsx","../src/actions/Menu.jsx","../src/actions/Pill.jsx","../src/actions/Chip.jsx","../src/actions/CommandPalette.jsx","../src/actions/ThemeToggle.jsx","../src/forms/FormElement.jsx","../src/forms/Input.jsx","../src/forms/Textarea.jsx","../src/forms/Select.jsx","../src/forms/Checkbox.jsx","../src/forms/Switch.jsx","../src/forms/CheckboxButton.jsx","../src/forms/RadioGroup.jsx","../src/forms/Combobox.jsx","../src/forms/SegmentedControl.jsx","../src/forms/SecretField.jsx","../src/forms/TagInput.jsx","../src/pickers/Datepicker.jsx","../src/pickers/Timepicker.jsx","../src/pickers/Slider.jsx","../src/pickers/ColorPicker.jsx","../src/pickers/Counter.jsx","../src/pickers/DuelingPicklist.jsx","../src/pickers/FileSelector.jsx","../src/pickers/RichTextEditor.jsx","../src/pickers/VisualPicker.jsx","../src/pickers/Expression.jsx","../src/pickers/DockedFormFooter.jsx","../src/data/DataTable.jsx","../src/layout/responsive.js","../src/data/TreeGrid.jsx","../src/data/Tree.jsx","../src/data/Badge.jsx","../src/data/Tile.jsx","../src/data/SummaryDetail.jsx","../src/data/Avatar.jsx","../src/data/Tag.jsx","../src/data/BlockIcon.jsx","../src/data/FileCard.jsx","../src/data/Feed.jsx","../src/data/ActivityTimeline.jsx","../src/data/Illustration.jsx","../src/data/Stat.jsx","../src/data/MiniChart.jsx","../src/data/Kanban.jsx","../src/data/CalendarView.jsx","../src/data/Gantt.jsx","../src/data/DescriptionList.jsx","../src/data/Amount.jsx","../src/data/CodeBlock.jsx","../src/data/JsonTree.jsx","../src/data/DiffView.jsx","../src/data/Heatmap.jsx","../src/layout/Card.jsx","../src/layout/Toolbar.jsx","../src/layout/PageLayout.jsx","../src/feedback/SidePanel.jsx","../src/layout/Grid.jsx","../src/layout/Room.jsx","../src/navigation/GlobalHeader.jsx","../src/navigation/VerticalNavigation.jsx","../src/navigation/Tabs.jsx","../src/navigation/GlobalNavigation.jsx","../src/navigation/Breadcrumbs.jsx","../src/navigation/Path.jsx","../src/navigation/ProgressIndicator.jsx","../src/navigation/SplitView.jsx","../src/navigation/AppLauncher.jsx","../src/navigation/PageHeader.jsx","../src/navigation/BuilderHeader.jsx","../src/navigation/BrandBand.jsx","../src/navigation/Accordion.jsx","../src/navigation/Carousel.jsx","../src/navigation/SetupAssistant.jsx","../src/navigation/WelcomeMat.jsx","../src/navigation/MobileTabBar.jsx","../src/navigation/Pagination.jsx","../src/navigation/Stepper.jsx","../src/navigation/ActivityBar.jsx","../src/feedback/Tooltip.jsx","../src/feedback/AginiesLoader.jsx","../src/feedback/Skeleton.jsx","../src/feedback/Alert.jsx","../src/feedback/Toast.jsx","../src/feedback/ScopedNotification.jsx","../src/feedback/Notification.jsx","../src/feedback/Modal.jsx","../src/feedback/Sheet.jsx","../src/feedback/Popover.jsx","../src/feedback/Spinner.jsx","../src/feedback/ProgressBar.jsx","../src/feedback/ProgressRing.jsx","../src/feedback/DockedComposer.jsx","../src/feedback/Publisher.jsx","../src/feedback/EmptyState.jsx","../src/chat/ChatThread.jsx","../src/chat/ChatMessage.jsx","../src/chat/ChatMarkdown.jsx","../src/chat/ToolCallCard.jsx","../src/chat/StreamingIndicator.jsx","../src/chat/ChatEvent.jsx","../src/chat/ChatSuggestions.jsx","../src/chat/ChatComposer.jsx","../src/chat/TranscriptPanel.jsx","../src/widgets/ApprovalCard.jsx","../src/widgets/RunTimeline.jsx","../src/widgets/RunStatus.jsx","../src/widgets/format.js","../src/widgets/TraceSpans.jsx","../src/widgets/AgentRunCard.jsx","../src/widgets/CostBars.jsx","../src/widgets/CanvasBlock.jsx","../src/widgets/Canvas.jsx","../src/widgets/CanvasNote.jsx","../src/widgets/QueueCard.jsx","../src/widgets/CallCard.jsx","../src/dashboard/KpiWidget.jsx","../src/dashboard/ChartCard.jsx","../src/dashboard/TaskListWidget.jsx","../src/dashboard/AiInsightWidget.jsx","../src/dashboard/FilterBar.jsx","../src/dashboard/RecordSummaryWidget.jsx","../src/dashboard/TeamWorkloadWidget.jsx","../src/dashboard/ActivityWidget.jsx","../src/dashboard/QuickActions.jsx","../src/dashboard/NotificationsWidget.jsx","../src/dashboard/AgentFlowWidget.jsx","../src/dashboard/LeaderboardWidget.jsx","../src/dashboard/AgendaWidget.jsx","../src/dashboard/OnboardingWidget.jsx","../src/dashboard/CommentsWidget.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n// Lucide icon by name. Loads the Lucide UMD bundle once from unpkg (pinned) and renders the glyph as inline SVG.\n// Stroke 2 at ≤16px, 1.75 above — the Aginies rule. Product-family glyphs live in ProductIcon.\nconst CDN = 'https://unpkg.com/lucide@0.468.0/dist/umd/lucide.min.js';\nlet loading = null;\nconst listeners = new Set();\n// [@aginies/ui] Prefer the lucide-react package when the host has it installed: one dynamic\n// import, cached. Each of its icon components carries Lucide's icon node (props.iconNode\n// before 1.0, props.icon.node from 1.0), which renders here exactly like the UMD glyphs.\n// Without lucide-react, or if its shape is not recognised, the UMD loader below is the fallback.\nlet reactIcons = null;\nlet reactLoading = null;\nconst reactNodes = new Map();\nfunction nodeOf(Comp) {\n try {\n const el = Comp && typeof Comp.render === 'function' ? Comp.render({}, null) : null;\n const p = (el && el.props) || {};\n const n = p.iconNode || (p.icon && p.icon.node);\n return Array.isArray(n) ? n : null;\n } catch { return null; }\n}\nfunction ensureLucideReact() {\n if (!reactLoading) {\n reactLoading = import('lucide-react').then(\n (m) => {\n const icons = m.icons || (m.default && m.default.icons) || null;\n if (!icons || !nodeOf(icons.Circle)) return null;\n reactIcons = icons;\n listeners.forEach((l) => l());\n return icons;\n },\n () => null,\n );\n }\n return reactLoading;\n}\nfunction reactNode(name) {\n if (!reactIcons) return null;\n const key = pascal(name);\n if (!reactNodes.has(key)) reactNodes.set(key, nodeOf(reactIcons[key]));\n return reactNodes.get(key);\n}\nfunction ensureLucide() {\n if (typeof window === 'undefined') return;\n ensureLucideReact().then((icons) => { if (!icons) ensureLucideUmd(); });\n}\nfunction ensureLucideUmd() {\n if (typeof window === 'undefined' || window.lucide || loading) return;\n loading = new Promise((res) => {\n const s = document.createElement('script'); s.src = CDN; s.async = true;\n s.onload = () => { listeners.forEach((l) => l()); res(); }; s.onerror = res;\n document.head.appendChild(s);\n });\n}\nconst pascal = (n) => String(n).split(/[-_ ]/).map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join('');\nexport function Icon({ name = 'circle', size = 16, color = 'currentColor', strokeWidth, title, className, style, ...rest }) {\n const [, tick] = useState(0);\n useEffect(() => { ensureLucide(); const l = () => tick((t) => t + 1); listeners.add(l); return () => listeners.delete(l); }, []);\n const lib = typeof window !== 'undefined' && window.lucide && window.lucide.icons;\n let node = reactNode(name) || (lib && (lib[pascal(name)] || lib[name]));\n let children = [];\n if (node) {\n if (Array.isArray(node) && node[0] === 'svg') node = node[2];\n children = node.map((c, i) => React.createElement(c[0], { key: i, ...c[1] }));\n }\n const sw = strokeWidth != null ? strokeWidth : size <= 16 ? 2 : 1.75;\n return React.createElement('svg', { xmlns: 'http://www.w3.org/2000/svg', width: size, height: size, viewBox: '0 0 24 24', fill: 'none', stroke: color, strokeWidth: sw, strokeLinecap: 'round', strokeLinejoin: 'round', className: cxi('agn-icon', className), 'aria-hidden': title ? undefined : true, role: title ? 'img' : undefined, style: { flexShrink: 0, display: 'inline-block', verticalAlign: 'middle', ...style }, ...rest }, title ? React.createElement('title', null, title) : null, ...children);\n}\nconst cxi = (...a) => a.filter(Boolean).join(' ');\n// The seven product-family glyphs from aginies.com (24 grid, stroke 1.7, round caps).\nconst PRODUCTS = {\n platform: ['M12 3 3 7.5 12 12l9-4.5L12 3z', 'M3 12l9 4.5 9-4.5', 'M3 16.5 12 21l9-4.5'],\n voice: ['M4 10v4', 'M8 7v10', 'M12 4v16', 'M16 7v10', 'M20 10v4'],\n code: ['m8 8-4 4 4 4', 'm16 8 4 4-4 4', 'm14 4-4 16'],\n hub: [['circle', { cx: 12, cy: 12, r: 3 }], ['circle', { cx: 12, cy: 4, r: 1.5 }], ['circle', { cx: 20, cy: 12, r: 1.5 }], ['circle', { cx: 12, cy: 20, r: 1.5 }], ['circle', { cx: 4, cy: 12, r: 1.5 }], 'M12 7v2M15 12h3M12 15v3M9 12H6'],\n vision: ['M3 8V5a2 2 0 0 1 2-2h3M16 3h3a2 2 0 0 1 2 2v3M21 16v3a2 2 0 0 1-2 2h-3M8 21H5a2 2 0 0 1-2-2v-3', 'M12 8.5c-3.5 0-5.5 3.5-5.5 3.5s2 3.5 5.5 3.5 5.5-3.5 5.5-3.5-2-3.5-5.5-3.5z', ['circle', { cx: 12, cy: 12, r: 1.5 }]],\n workforce: [['circle', { cx: 9, cy: 8, r: 3 }], 'M3 20a6 6 0 0 1 12 0', 'M16 4.5a3 3 0 0 1 0 6', 'M17 14a6 6 0 0 1 4 6', 'M14 11h1'],\n dialog: ['M4 5.5A2.5 2.5 0 0 1 6.5 3h11A2.5 2.5 0 0 1 20 5.5v8a2.5 2.5 0 0 1-2.5 2.5H10l-5 4v-4H6.5A2.5 2.5 0 0 1 4 13.5v-8z', 'M8 8h8M8 11.5h5'],\n};\nexport const PRODUCT_NAMES = { platform: 'Platform Aginies', hub: 'Hub Aginies', dialog: 'Dialog Aginies', voice: 'Voice Aginies', vision: 'Vision Aginies', code: 'Code Aginies', workforce: 'Workforce Aginies' };\nexport function ProductIcon({ product = 'platform', size = 24, boxed = false, title, className, ...rest }) {\n const parts = PRODUCTS[product] || PRODUCTS.platform;\n const svg = React.createElement('svg', { xmlns: 'http://www.w3.org/2000/svg', width: size, height: size, viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: 1.7, strokeLinecap: 'round', strokeLinejoin: 'round', className: cxi('agn-icon', 'agn-product-icon', !boxed && className), 'aria-hidden': title ? undefined : true, role: title ? 'img' : undefined, ...(boxed ? {} : rest) },\n title ? React.createElement('title', null, title) : null,\n ...parts.map((p, i) => Array.isArray(p) ? React.createElement(p[0], { key: i, ...p[1] }) : React.createElement('path', { key: i, d: p })));\n if (!boxed) return svg;\n return React.createElement('span', { className: cxi('agn-product-box', className), ...rest }, svg);\n}\n","import React from 'react';\nimport { RING, CRESCENT, CORE } from './mark-paths.js';\nimport { uid } from './style.js';\n// The Aginies mark as inline SVG: the one place the brand gradients appear. Identical on dark and light; no monochrome version.\nexport function AginiesMark({ size = 24, title = 'Aginies', decorative = false, className, style, ...rest }) {\n const id = React.useMemo(() => uid('mark'), []);\n const outer = `${id}-outer`, warm = `${id}-warm`, inner = `${id}-inner`, titleId = `${id}-title`;\n return (\n <svg className={['agn-mark', className].filter(Boolean).join(' ')} width={size} height={size} viewBox=\"0 0 322 322\" fill=\"none\" role={decorative ? undefined : 'img'} aria-hidden={decorative ? true : undefined} aria-labelledby={decorative ? undefined : titleId} focusable=\"false\" style={{ flexShrink: 0, display: 'inline-block', verticalAlign: 'middle', ...style }} {...rest}>\n {decorative ? null : <title id={titleId}>{title}</title>}\n <path className=\"agn-mark__ring\" d={RING} pathLength={1} stroke={`url(#${outer})`} strokeWidth=\"13.4\" strokeMiterlimit=\"10\" />\n <path className=\"agn-mark__crescent\" d={CRESCENT} fillRule=\"evenodd\" clipRule=\"evenodd\" fill={`url(#${warm})`} />\n <path className=\"agn-mark__core\" d={CORE} pathLength={1} stroke={`url(#${inner})`} strokeWidth=\"10\" strokeMiterlimit=\"10\" />\n <defs>\n <linearGradient id={outer} x1=\"260.443\" y1=\"259.956\" x2=\"63.428\" y2=\"62.938\" gradientUnits=\"userSpaceOnUse\"><stop stopColor=\"#0500FF\" /><stop offset=\"1\" stopColor=\"#01B1F7\" /></linearGradient>\n <linearGradient id={warm} x1=\"267.31\" y1=\"252.303\" x2=\"70.097\" y2=\"41.883\" gradientUnits=\"userSpaceOnUse\"><stop stopColor=\"#EE0428\" /><stop offset=\"1\" stopColor=\"#FA09C7\" /></linearGradient>\n <linearGradient id={inner} x1=\"211.326\" y1=\"211.019\" x2=\"116.327\" y2=\"116.011\" gradientUnits=\"userSpaceOnUse\"><stop stopColor=\"#0500FF\" /><stop offset=\"1\" stopColor=\"#01B1F7\" /></linearGradient>\n </defs>\n </svg>\n );\n}\n// Mark + wordmark lockup. The wordmark is live text in the display face at 600 (the brand pack's outlines are the same face), so it follows --text.\nexport function AginiesLogo({ size = 24, product, wordmark = true, className, style, ...rest }) {\n return (\n <span className={['agn-logo', className].filter(Boolean).join(' ')} style={{ '--agn-logo-size': size + 'px', ...style }} {...rest}>\n <AginiesMark size={size} decorative={!!wordmark} />\n {wordmark && <span className=\"agn-logo__word\">Aginies{product ? <span className=\"agn-logo__product\">{product}</span> : null}</span>}\n </span>\n );\n}\n","// Aginies mark path data (322×322), from @aginies/webuikit AginiesMark.\nexport const RING = 'M303.294 199.934C298.22 218.56 279.136 230.052 268.023 244.419C256.491 259.314 249.934 280.546 233.836 289.76C217.747 298.973 196.107 293.879 177.431 296.277C159.412 298.585 139.822 309.231 121.206 304.167C102.59 299.093 91.0884 280.009 76.7211 268.895C62.3538 257.782 40.594 250.807 31.3806 234.708C22.1673 218.62 27.2615 196.979 24.8636 178.304C22.5553 160.285 11.9092 140.694 16.9736 122.078C22.0479 103.462 41.1313 91.9605 52.245 77.5932C63.7766 62.6985 70.3434 41.4659 86.4319 32.2526C102.52 23.0392 124.161 28.1334 142.836 25.7355C160.855 23.4272 180.446 12.7811 199.062 17.8454C217.677 22.9198 229.179 42.0032 243.546 53.117C258.441 64.6487 279.674 71.2154 288.887 87.304C298.1 103.392 293.006 125.033 295.404 143.709C297.712 161.728 308.358 181.318 303.294 199.934Z';\nexport const CRESCENT = 'M203.388 25.311C201.617 23.819 199.816 22.406 197.985 21.073C197.259 20.535 196.533 20.028 195.796 19.521C195.13 19.063 194.453 18.615 193.767 18.178C190.364 16.009 186.852 14.128 183.19 12.636C182.524 12.357 181.847 12.099 181.17 11.860C180.484 11.591 179.797 11.352 179.091 11.143C177.618 10.656 176.126 10.248 174.604 9.900C172.922 9.512 171.221 9.203 169.480 8.994C168.495 8.865 167.500 8.765 166.495 8.706C165.868 8.656 165.241 8.626 164.604 8.606C164.097 8.586 163.589 8.576 163.092 8.576H163.012C154.704 8.576 146.983 10.566 139.690 13.949C134.605 14.465 129.157 14.419 123.430 14.370L123.065 14.367H122.895C122.428 14.357 121.960 14.357 121.493 14.357C134.298 5.293 148.516 -0.836 164.873 -0.349C172.703 -0.110 179.947 1.611 186.712 4.427C187.459 4.735 188.205 5.064 188.941 5.402C189.687 5.740 190.424 6.089 191.160 6.467C192.702 7.233 194.204 8.049 195.697 8.924C197.339 9.879 198.950 10.904 200.532 11.979C201.448 12.596 202.363 13.233 203.259 13.899C204.313 14.665 205.358 15.451 206.393 16.277C218.990 26.196 229.887 39.211 240.098 51.407L240.192 51.519C241.037 52.524 241.873 53.519 242.699 54.504C243.068 54.943 243.437 55.381 243.804 55.817L243.818 55.833C244.328 56.438 244.835 57.040 245.336 57.638C245.632 57.984 245.925 58.328 246.217 58.671L246.222 58.677C246.694 59.230 247.162 59.779 247.634 60.325H247.644C249.097 62.036 250.549 63.707 251.992 65.329C253.265 66.752 254.529 68.135 255.803 69.488C256.051 69.757 256.310 70.025 256.569 70.294C257.385 71.160 258.220 72.015 259.076 72.881C260.001 73.826 260.937 74.771 261.902 75.717C265.032 78.810 268.333 81.937 271.740 85.163L272.797 86.164C273.266 86.609 273.738 87.056 274.254 87.545C276.469 89.642 278.709 91.763 280.935 93.925C282.846 98.472 283.612 103.785 283.890 109.536C278.461 103.861 272.644 98.351 266.870 92.881L266.638 92.661C260.459 86.820 254.619 81.288 249.286 75.617C243.953 69.956 238.789 63.787 233.326 57.260C233.276 57.200 233.224 57.138 233.171 57.075C233.119 57.014 233.067 56.952 233.018 56.892C231.137 54.643 229.267 52.405 227.376 50.186C223.397 45.490 219.347 40.863 215.188 36.495C211.368 32.496 207.457 28.725 203.388 25.311ZM27.220 116.594C31.249 111.868 35.776 107.331 40.552 102.923C44.611 99.172 48.870 95.511 53.158 91.889C54.979 90.347 56.810 88.815 58.630 87.293C58.802 87.146 58.976 87.002 59.148 86.855C65.486 81.552 71.466 76.537 76.988 71.333C82.659 66.000 88.181 60.170 94.031 53.981C99.523 48.180 105.065 42.330 110.767 36.878C105.135 37.156 99.653 37.942 94.967 40.022C92.439 42.638 89.962 45.255 87.524 47.832L87.093 48.288L87.091 48.290C83.861 51.700 80.729 55.008 77.624 58.160C76.669 59.135 75.714 60.100 74.749 61.045C73.873 61.921 72.998 62.777 72.112 63.612C71.694 64.020 71.276 64.418 70.859 64.816C69.655 65.951 68.421 67.075 67.157 68.219C65.526 69.672 63.854 71.134 62.153 72.607L62.151 72.608C61.276 73.354 60.401 74.100 59.506 74.856C58.521 75.701 57.516 76.547 56.501 77.393L56.194 77.651L56.192 77.653C55.100 78.572 53.998 79.500 52.880 80.427C40.860 90.476 28.035 101.212 18.155 113.580C17.280 114.664 16.444 115.759 15.628 116.873C14.942 117.788 14.285 118.714 13.638 119.659C12.534 121.281 11.479 122.922 10.484 124.614C9.599 126.116 8.763 127.638 7.987 129.191C7.609 129.917 7.251 130.653 6.912 131.389C6.564 132.136 6.236 132.882 5.917 133.628C3.042 140.483 1.271 147.816 1.022 155.746C0.525 172.173 6.713 186.461 15.857 199.316C15.857 198.798 15.857 198.291 15.867 197.784L15.870 197.407C15.919 191.714 15.965 186.300 15.469 181.257C11.957 173.755 9.897 165.805 9.957 157.229C9.957 156.821 9.957 156.423 9.977 156.015C9.997 155.279 10.037 154.552 10.096 153.826C10.166 152.831 10.265 151.846 10.395 150.881C10.614 149.140 10.932 147.438 11.330 145.767C11.678 144.264 12.096 142.782 12.584 141.319C12.803 140.623 13.041 139.926 13.310 139.240C13.549 138.563 13.817 137.877 14.106 137.210C15.618 133.529 17.519 129.996 19.737 126.574C20.175 125.877 20.643 125.181 21.130 124.494C21.638 123.738 22.165 122.992 22.722 122.256C24.125 120.335 25.638 118.445 27.220 116.594ZM316.325 187.008C319.061 180.342 320.733 173.198 320.962 165.497C321.439 149.230 315.370 135.061 306.375 122.306V123.470C306.316 129.609 306.276 135.419 306.853 140.782C310.027 147.767 311.927 155.130 312.007 163.030C312.037 163.766 312.027 164.492 312.007 165.229C311.997 165.696 311.977 166.154 311.947 166.612C311.888 167.636 311.798 168.651 311.679 169.656C311.470 171.417 311.181 173.149 310.803 174.850C310.465 176.382 310.057 177.895 309.589 179.377C309.370 180.083 309.132 180.780 308.873 181.476C308.644 182.163 308.385 182.839 308.107 183.506C306.624 187.178 304.774 190.710 302.595 194.122C302.167 194.819 301.719 195.505 301.251 196.182C300.754 196.918 300.247 197.645 299.719 198.371C298.386 200.212 296.973 202.012 295.491 203.784C292.108 207.843 288.357 211.753 284.387 215.554L284.327 215.604C279.909 219.832 275.233 223.932 270.477 227.961C268.268 229.842 266.050 231.702 263.831 233.553C263.784 233.591 263.737 233.630 263.690 233.669L263.592 233.752L263.590 233.754C263.511 233.821 263.432 233.887 263.353 233.951C256.826 239.413 250.668 244.577 244.996 249.910C239.396 255.176 233.942 260.937 228.173 267.030L227.953 267.262C222.460 273.073 216.908 278.933 211.207 284.386C216.958 284.107 222.281 283.341 226.818 281.431C229.415 278.754 231.962 276.068 234.460 273.421C238.081 269.591 241.584 265.889 245.046 262.387C245.981 261.442 246.917 260.507 247.852 259.591C248.727 258.726 249.593 257.890 250.469 257.064C250.687 256.845 250.916 256.636 251.135 256.427C252.528 255.114 253.951 253.810 255.414 252.507C257.045 251.054 258.707 249.602 260.418 248.149C261.235 247.443 262.059 246.745 262.893 246.040L263.105 245.861C263.353 245.651 263.602 245.441 263.852 245.230L264.404 244.766C265.002 244.263 265.604 243.757 266.209 243.244C267.164 242.448 268.129 241.642 269.104 240.826C281.412 230.528 294.555 219.524 304.535 206.778C305.351 205.754 306.137 204.709 306.893 203.654C307.560 202.749 308.196 201.843 308.803 200.918C309.878 199.336 310.893 197.714 311.848 196.073C312.713 194.570 313.539 193.058 314.295 191.506C314.664 190.779 315.012 190.043 315.340 189.297C315.688 188.541 316.017 187.775 316.325 187.008ZM198.921 305.892C198.729 305.889 198.537 305.887 198.343 305.887C192.264 305.827 186.523 305.787 181.200 306.344C174.027 309.648 166.425 311.608 158.266 311.657C157.639 311.667 157.013 311.657 156.386 311.637C155.829 311.618 155.271 311.598 154.714 311.558C153.699 311.498 152.704 311.409 151.710 311.279C149.958 311.070 148.237 310.762 146.546 310.384C145.013 310.036 143.511 309.628 142.029 309.140C141.322 308.931 140.626 308.682 139.929 308.424C139.243 308.185 138.566 307.926 137.889 307.638C134.178 306.135 130.616 304.245 127.184 302.036C126.487 301.598 125.801 301.141 125.114 300.663C124.358 300.156 123.612 299.628 122.866 299.071C120.955 297.678 119.085 296.186 117.234 294.624C112.428 290.564 107.832 285.997 103.374 281.152C99.583 277.062 95.902 272.784 92.261 268.466C90.718 266.645 89.186 264.814 87.664 262.984C87.630 262.943 87.596 262.902 87.561 262.860C87.485 262.768 87.408 262.675 87.326 262.586C81.993 256.208 76.928 250.178 71.705 244.627C66.439 239.027 60.678 233.572 54.586 227.804L54.352 227.583C48.591 222.140 42.791 216.648 37.378 210.997C37.687 216.827 38.493 222.210 40.512 226.767C42.662 228.834 44.812 230.873 46.939 232.890C47.362 233.291 47.783 233.691 48.204 234.090C51.865 237.552 55.407 240.905 58.770 244.219C59.755 245.184 60.720 246.149 61.665 247.114C62.531 247.990 63.377 248.865 64.203 249.731C64.523 250.061 64.826 250.382 65.136 250.711L65.188 250.765C66.382 252.039 67.575 253.342 68.779 254.676C70.212 256.278 71.645 257.919 73.088 259.601C73.554 260.141 74.017 260.685 74.483 261.233C74.772 261.573 75.063 261.914 75.356 262.257C76.040 263.067 76.725 263.883 77.415 264.707L77.814 265.183L78.283 265.742C79.114 266.732 79.951 267.730 80.789 268.735C90.907 280.823 101.713 293.728 114.170 303.648C115.264 304.514 116.358 305.359 117.473 306.165C118.388 306.842 119.314 307.498 120.249 308.135C121.871 309.240 123.522 310.294 125.204 311.279C126.706 312.165 128.238 313.001 129.790 313.767C130.527 314.145 131.273 314.503 132.029 314.841C132.775 315.180 133.522 315.508 134.278 315.826C141.044 318.632 148.287 320.353 156.117 320.592C156.734 320.612 157.361 320.622 157.968 320.622C173.549 320.622 187.180 314.622 199.498 305.897C199.304 305.897 199.112 305.894 198.921 305.892Z';\nexport const CORE = 'M232.111 165.663C231.572 183.137 213.235 193.893 201.434 204.998C189.624 216.094 177.756 233.726 160.282 233.187C142.808 232.648 132.052 214.311 120.947 202.51C109.851 190.7 92.2192 178.841 92.7583 161.359C93.2974 143.885 111.626 133.128 123.435 122.023C135.245 110.927 147.113 93.2955 164.587 93.8346C182.061 94.3736 192.817 112.702 203.922 124.511C215.018 136.321 232.65 148.18 232.111 165.663Z';\n","// Shared helpers. All styling lives in bundle.css (src/styles/*.css); components only compose class names.\nexport const cx = (...a) => a.filter(Boolean).join(' ');\nlet _id = 0;\nexport const uid = (p = 'agn') => `${p}-${(++_id).toString(36)}`;\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// The mono uppercase eyebrow that names the group a page or section belongs to (\"OBSERVE · LOGS\"). Link-coloured; quiet is mute.\nexport function Eyebrow({ quiet, as: Tag = 'div', className, children, ...rest }) {\n return <Tag className={cx('agn-eyebrow', quiet && 'agn-eyebrow--quiet', className)} {...rest}>{children}</Tag>;\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Keyboard hint (⌘K, Esc): mono glyphs on panel-2 chips. keys renders one chip per key; children renders a single chip.\nexport function Kbd({ keys, size = 'md', className, children, ...rest }) {\n const list = keys && keys.length ? keys : [children];\n return (\n <kbd className={cx('agn-kbd', size === 'sm' && 'agn-kbd--sm', className)} {...rest}>\n {list.map((k, i) => <span key={i} className=\"agn-kbd__key\">{k}</span>)}\n </kbd>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Typography helper: one class per type style from tokens.json. Picks a sensible tag per variant; as overrides it.\nconst TAGS = { display: 'h1', h1: 'h1', h2: 'h2', h3: 'h3', title: 'h1', h4: 'h4', heading: 'h3', stat: 'div', lede: 'p', body: 'p', 'body-2': 'p', small: 'p', ui: 'span', 'ui-sm': 'span', 'ui-xs': 'span', eyebrow: 'div', label: 'div', tag: 'span', code: 'code', 'code-sm': 'code' };\nexport function Text({ variant = 'body', as, tone, tabular, truncate, className, children, ...rest }) {\n const Tag = as || TAGS[variant] || 'span';\n return <Tag className={cx('agn-text', 'agn-text--' + variant, tone && 'agn-text--tone-' + tone, tabular && 'agn-num', truncate && 'agn-text--truncate', className)} {...rest}>{children}</Tag>;\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Action trigger. One primary (signal) button per view; neutral for the rest; ghost inside toolbars and cards.\nexport function Button({ variant = 'neutral', size = 'md', icon, iconRight, stretch, selected, loading, children, className, as: Tag = 'button', ...rest }) {\n const iconSize = size === 'sm' || size === 'xs' ? 14 : size === 'lg' ? 18 : 16;\n return (\n <Tag type={Tag === 'button' ? rest.type || 'button' : undefined} className={cx('agn-btn', 'agn-btn--' + variant, size !== 'md' && 'agn-btn--' + size, stretch && 'agn-btn--stretch', selected && 'agn-btn--selected', loading && 'agn-btn--loading', className)} aria-pressed={selected} aria-busy={loading || undefined} disabled={rest.disabled || loading} {...rest}>\n {loading ? <span className=\"agn-btn__spinner\" aria-hidden=\"true\" /> : icon && <Icon name={icon} size={iconSize} />}\n {children != null && <span className=\"agn-btn__label\">{children}</span>}\n {iconRight && <Icon name={iconRight} size={iconSize} className=\"agn-btn__arrow\" />}\n </Tag>\n );\n}\n// Icon-only button. Always pass label: it is the accessible name and the tooltip.\nexport function ButtonIcon({ icon, label, variant = 'ghost', size = 'md', notification, className, ...rest }) {\n const iconSize = size === 'sm' || size === 'xs' ? 14 : size === 'lg' ? 20 : 16;\n return (\n <button type=\"button\" className={cx('agn-btn', 'agn-btn--icon', 'agn-btn--' + variant, size !== 'md' && 'agn-btn--' + size, className)} aria-label={label} title={label} {...rest}>\n <Icon name={icon} size={iconSize} />\n {notification && <span className=\"agn-btn__dot\" aria-hidden=\"true\" />}\n </button>\n );\n}\n// Groups related buttons; joined removes inner radii, list keeps the control gap.\nexport function ButtonGroup({ joined = true, children, className, ...rest }) {\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n return <div className={cx('agn-btn-group', joined ? 'agn-btn-group--joined' : 'agn-btn-group--list', className)} role=\"group\" {...rest}>{children}</div>;\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Toggle with three labels: off, on, and on-hover (Follow · Following · Unfollow). All three are laid out on top of each other so the width never jumps.\nconst DEFAULT_LABELS = { off: 'Follow', on: 'Following', hover: 'Unfollow' };\nconst DEFAULT_ICONS = { off: 'plus', on: 'check', hover: 'x' };\nexport function ButtonStateful({ selected = false, onChange, labels, icons, size = 'md', variant = 'neutral', disabled, className, ...rest }) {\n const [hover, setHover] = React.useState(false);\n const L = { ...DEFAULT_LABELS, ...labels };\n const I = { ...DEFAULT_ICONS, ...icons };\n const state = selected ? (hover ? 'hover' : 'on') : 'off';\n const iconSize = size === 'sm' || size === 'xs' ? 14 : size === 'lg' ? 18 : 16;\n return (\n <button type=\"button\" className={cx('agn-btn', 'agn-btn--' + variant, size !== 'md' && 'agn-btn--' + size, 'agn-btn-stateful', selected && 'agn-btn--selected', state === 'hover' && 'agn-btn-stateful--leaving', className)} aria-pressed={selected} disabled={disabled}\n onMouseEnter={() => setHover(true)} onMouseLeave={() => setHover(false)} onBlur={() => setHover(false)}\n onClick={() => { onChange && onChange(!selected); setHover(false); }} {...rest}>\n <Icon name={I[state]} size={iconSize} />\n <span className=\"agn-btn-stateful__labels\">\n {['off', 'on', 'hover'].map((k) => <span key={k} className={cx('agn-btn__label', 'agn-btn-stateful__label', k === state && 'agn-btn-stateful__label--current')} aria-hidden={k !== state}>{L[k]}</span>)}\n </span>\n </button>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Kbd } from '../core/Kbd.jsx';\n// Dropdown menu anchored to a trigger. Items carry icon, shortcut, danger, selected; separators and headers group them.\n// searchable adds the filter field (the \"dynamic\" menu) and footer a bottom action. Keyboard: arrows, Home/End, Enter, Esc, type-ahead.\nconst DEFAULT_LABELS = { search: 'Search…', empty: 'No matches' };\nexport function Menu({ items = [], trigger, open: openProp, onOpenChange, align = 'left', onSelect, searchable, selected, header, footer, static: isStatic, labels, width, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [openState, setOpenState] = React.useState(false);\n const [q, setQ] = React.useState('');\n const open = openProp != null ? openProp : openState;\n const wrapRef = React.useRef(null);\n const listRef = React.useRef(null);\n const triggerRef = React.useRef(null);\n const typeRef = React.useRef({ s: '', t: 0 });\n const id = React.useMemo(() => uid('menu'), []);\n const setOpen = (v) => { if (openProp == null) setOpenState(v); onOpenChange && onOpenChange(v); if (!v) setQ(''); };\n const setOpenRef = React.useRef(setOpen); setOpenRef.current = setOpen;\n const itemEls = () => (listRef.current ? Array.from(listRef.current.querySelectorAll('[role^=\"menuitem\"]:not([aria-disabled=\"true\"])')) : []);\n const focusAt = (i) => { const els = itemEls(); if (els.length) els[(i + els.length) % els.length].focus(); };\n // biome-ignore lint/correctness/useExhaustiveDependencies: runs on open transitions only; focusAt, searchable and isStatic are read at that moment by design\n React.useEffect(() => {\n if (!open || isStatic) return;\n const t = setTimeout(() => { if (searchable) { const inp = listRef.current && listRef.current.querySelector('input'); inp && inp.focus(); } else focusAt(0); }, 0);\n const onDoc = (e) => { if (wrapRef.current && !wrapRef.current.contains(e.target)) setOpenRef.current(false); };\n document.addEventListener('mousedown', onDoc);\n return () => { clearTimeout(t); document.removeEventListener('mousedown', onDoc); };\n }, [open]);\n const close = (restore) => { setOpen(false); if (restore && triggerRef.current) triggerRef.current.focus(); };\n const onKeyDown = (e) => {\n const els = itemEls(); const i = els.indexOf(document.activeElement);\n if (e.key === 'ArrowDown') { e.preventDefault(); focusAt(i + 1); }\n else if (e.key === 'ArrowUp') { e.preventDefault(); focusAt(i <= 0 ? els.length - 1 : i - 1); }\n else if (e.key === 'Home') { e.preventDefault(); focusAt(0); }\n else if (e.key === 'End') { e.preventDefault(); focusAt(els.length - 1); }\n else if (e.key === 'Escape') { e.preventDefault(); close(true); }\n else if (e.key === 'Tab' && !isStatic) { setOpen(false); }\n else if (!searchable && e.key.length === 1 && !e.metaKey && !e.ctrlKey && !e.altKey) {\n const now = Date.now(); const st = typeRef.current; st.s = (now - st.t < 600 ? st.s : '') + e.key.toLocaleLowerCase(); st.t = now;\n const hit = els.find((el) => (el.textContent || '').trim().toLocaleLowerCase().startsWith(st.s)); if (hit) hit.focus();\n }\n };\n const pick = (it) => { if (it.disabled) return; onSelect && onSelect(it); it.onClick && it.onClick(it); if (!isStatic) close(true); };\n const hasCheck = selected !== undefined || items.some((x) => x && x.selected);\n const visible = items.filter((it) => { if (!q || it === 'separator' || it.type === 'separator' || it.type === 'header') return true; return (it.label || '').toLocaleLowerCase().includes(q.toLocaleLowerCase()); });\n const anyItem = visible.some((it) => it !== 'separator' && it.type !== 'separator' && it.type !== 'header');\n const list = (\n <div role=\"menu\" id={id} ref={listRef} className={cx('agn-menu', align === 'right' && 'agn-menu--right', isStatic && 'agn-menu--static', className)} style={{ width, ...style }} onKeyDown={onKeyDown} {...rest}>\n {header && <div className=\"agn-menu__header\">{header}</div>}\n {searchable && <div className=\"agn-menu__search\"><Icon name=\"search\" size={14} /><input className=\"agn-menu__search-input\" placeholder={L.search} value={q} onChange={(e) => setQ(e.target.value)} aria-label={L.search} /></div>}\n <div className=\"agn-menu__list\">\n {!anyItem && <div className=\"agn-menu__empty\">{L.empty}</div>}\n {visible.map((it, i) => it === 'separator' || it.type === 'separator' ? (\n // biome-ignore lint/a11y/useFocusableInteractive: static, non-focusable separator; aria-valuenow and focusability are only required of a focusable (splitter) separator\n // biome-ignore lint/a11y/useAriaPropsForRole: static, non-focusable separator; aria-valuenow and focusability are only required of a focusable (splitter) separator\n <div key={'s' + i} className=\"agn-menu__sep\" role=\"separator\" />\n )\n : it.type === 'header' ? <div key={'h' + i} className=\"agn-menu__header\">{it.label}</div>\n : (\n // biome-ignore lint/a11y/useAriaPropsSupportedByRole: the role is menuitemradio whenever aria-checked is set; the rule reads the <button> element, not the role\n <button key={it.value != null ? it.value : i} type=\"button\" role={hasCheck ? 'menuitemradio' : 'menuitem'} tabIndex={-1} aria-disabled={it.disabled || undefined} aria-checked={hasCheck ? (selected === it.value || !!it.selected) : undefined}\n className={cx('agn-menu__item', it.danger && 'agn-menu__item--danger', (selected === it.value || it.selected) && 'agn-menu__item--selected')} onClick={() => pick(it)}>\n {hasCheck && <span className=\"agn-menu__check\">{(selected === it.value || it.selected) && <Icon name=\"check\" size={14} />}</span>}\n {it.icon && <Icon name={it.icon} size={16} className=\"agn-menu__icon\" />}\n <span className=\"agn-menu__label\">{it.label}{it.meta && <span className=\"agn-menu__meta\">{it.meta}</span>}</span>\n {it.shortcut && <Kbd size=\"sm\" className=\"agn-menu__shortcut\">{it.shortcut}</Kbd>}\n {it.submenu && <Icon name=\"chevron-right\" size={14} className=\"agn-menu__icon\" />}\n </button>\n ))}\n </div>\n {footer && <div className=\"agn-menu__footer\">{footer}</div>}\n </div>\n );\n if (isStatic) return list;\n return (\n <div className=\"agn-menu-wrap\" ref={wrapRef}>\n {trigger && React.cloneElement(trigger, { ref: triggerRef, 'aria-haspopup': 'menu', 'aria-expanded': open, 'aria-controls': open ? id : undefined, onClick: (e) => { trigger.props.onClick && trigger.props.onClick(e); setOpen(!open); }, onKeyDown: (e) => { trigger.props.onKeyDown && trigger.props.onKeyDown(e); if (e.key === 'ArrowDown' && !open) { e.preventDefault(); setOpen(true); } } })}\n {open && list}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Removable token for selections, filters and recipients. Leading avatar (image URL or initials) or icon; invalid state for an unresolved entry.\nconst DEFAULT_LABELS = { remove: 'Remove' };\nexport function Pill({ label, icon, avatar, onRemove, href, invalid, truncate, size = 'md', labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const Tag = href ? 'a' : 'span';\n const avatarNode = avatar ? (/^(https?:|data:|\\/)/.test(avatar) ? <img className=\"agn-pill__avatar\" src={avatar} alt=\"\" /> : <span className=\"agn-pill__avatar agn-pill__avatar--initials\" aria-hidden=\"true\">{avatar}</span>) : null;\n return (\n <span className={cx('agn-pill', size === 'sm' && 'agn-pill--sm', invalid && 'agn-pill--invalid', avatar && 'agn-pill--avatar', className)} style={truncate ? { maxWidth: truncate } : undefined} {...rest}>\n {invalid ? <Icon name=\"circle-alert\" size={14} className=\"agn-pill__icon\" /> : avatarNode || (icon && <Icon name={icon} size={14} className=\"agn-pill__icon\" />)}\n <Tag className=\"agn-pill__label\" href={href} title={typeof label === 'string' ? label : undefined}>{label}</Tag>\n {onRemove && <button type=\"button\" className=\"agn-pill__remove\" aria-label={L.remove + (typeof label === 'string' ? ': ' + label : '')} onClick={(e) => { e.stopPropagation(); onRemove(); }}><Icon name=\"x\" size={12} /></button>}\n </span>\n );\n}\n// Flex-wrap container for pills: a bordered field-like box by default, bare inside another control (Combobox, TagInput).\nexport function PillContainer({ bare, children, className, ...rest }) {\n return <div className={cx('agn-pill-container', bare && 'agn-pill-container--bare', className)} {...rest}>{children}</div>;\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// The website's filter chip: a 32px pill that toggles (aria-pressed). sm is 28px. Optional leading icon and trailing count.\nexport function Chip({ active, icon, count, size = 'md', as: Tag = 'button', className, children, ...rest }) {\n return (\n <Tag type={Tag === 'button' ? 'button' : undefined} className={cx('agn-chip', size === 'sm' && 'agn-chip--sm', active && 'agn-chip--active', className)} aria-pressed={Tag === 'button' ? !!active : undefined} {...rest}>\n {icon && <Icon name={icon} size={14} />}\n <span className=\"agn-chip__label\">{children}</span>\n {count != null && <span className=\"agn-chip__count agn-num\">{count}</span>}\n </Tag>\n );\n}\n// A set of chips with single (radio-like) or multiple selection. value is a string, or an array when multiple.\nexport function ChipGroup({ options = [], value, onChange, multiple, size, label, className, ...rest }) {\n const sel = multiple ? (Array.isArray(value) ? value : []) : value;\n const isOn = (v) => multiple ? sel.includes(v) : sel === v;\n const toggle = (v) => { if (!onChange) return; if (multiple) onChange(isOn(v) ? sel.filter((x) => x !== v) : [...sel, v]); else onChange(v === sel ? undefined : v); };\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div className={cx('agn-chip-group', className)} role=\"group\" aria-label={label} {...rest}>\n {options.map((o) => { const opt = typeof o === 'string' ? { label: o, value: o } : o; return <Chip key={opt.value} size={size} icon={opt.icon} count={opt.count} active={isOn(opt.value)} disabled={opt.disabled} onClick={() => toggle(opt.value)}>{opt.label}</Chip>; })}\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\nimport { Kbd } from '../core/Kbd.jsx';\n// ⌘K overlay: a search field, grouped results, recent items when the query is empty, keyboard navigation and Kbd hints.\nconst DEFAULT_LABELS = { placeholder: 'Search agents, runs, actions…', recent: 'Recent', results: 'Results', suggestions: 'Suggestions', empty: 'No results for', navigate: 'Navigate', open: 'Open', close: 'Close', title: 'Command palette' };\nexport function CommandPalette({ open, onClose, items = [], onSelect, recent = [], labels, placeholder, static: isStatic, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [q, setQ] = React.useState('');\n const [active, setActive] = React.useState(0);\n const inputRef = React.useRef(null);\n const listRef = React.useRef(null);\n const id = React.useMemo(() => uid('cmdk'), []);\n const filtered = React.useMemo(() => {\n if (!q) return recent.length ? recent : items;\n const s = q.toLocaleLowerCase();\n return items.filter((i) => (i.label + ' ' + (i.meta || '') + ' ' + (i.group || '') + ' ' + (i.keywords || '')).toLocaleLowerCase().includes(s));\n }, [q, items, recent]);\n const groups = React.useMemo(() => {\n const m = new Map();\n filtered.forEach((i) => { const g = q ? (i.group || L.results) : (recent.length ? L.recent : (i.group || L.suggestions)); if (!m.has(g)) m.set(g, []); m.get(g).push(i); });\n return Array.from(m.entries());\n }, [filtered, q, recent.length, L.recent, L.results, L.suggestions]);\n React.useEffect(() => { if (open) { setQ(''); setActive(0); const t = setTimeout(() => inputRef.current && inputRef.current.focus(), 0); return () => clearTimeout(t); } }, [open]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: active is the trigger: the effect scrolls the newly selected option into view\n React.useEffect(() => { const el = listRef.current && listRef.current.querySelector('[aria-selected=\"true\"]'); el && el.scrollIntoView && el.scrollIntoView({ block: 'nearest' }); }, [active]);\n const choose = (it) => { onSelect && onSelect(it); it.onSelect && it.onSelect(it); onClose && onClose(); };\n const onKeyDown = (e) => {\n if (e.key === 'Escape') { e.preventDefault(); onClose && onClose(); }\n else if (e.key === 'ArrowDown') { e.preventDefault(); setActive((a) => Math.min(a + 1, filtered.length - 1)); }\n else if (e.key === 'ArrowUp') { e.preventDefault(); setActive((a) => Math.max(a - 1, 0)); }\n else if (e.key === 'Home') { e.preventDefault(); setActive(0); }\n else if (e.key === 'End') { e.preventDefault(); setActive(filtered.length - 1); }\n else if (e.key === 'Enter' && filtered[active]) { e.preventDefault(); choose(filtered[active]); }\n else if (e.key === 'Tab') { e.preventDefault(); }\n };\n if (!open) return null;\n let idx = -1;\n const dialog = (\n <div className={cx('agn-cmdk', isStatic && 'agn-cmdk--static', className)} role=\"dialog\" aria-modal={!isStatic || undefined} aria-label={L.title} onKeyDown={onKeyDown} {...rest}>\n <div className=\"agn-cmdk__field\">\n <Icon name=\"search\" size={18} className=\"agn-cmdk__search-icon\" />\n <input ref={inputRef} className=\"agn-cmdk__input\" value={q} onChange={(e) => { setQ(e.target.value); setActive(0); }} placeholder={placeholder || L.placeholder} role=\"combobox\" aria-expanded=\"true\" aria-controls={id} aria-activedescendant={filtered[active] ? id + '-' + active : undefined} aria-autocomplete=\"list\" autoComplete=\"off\" spellCheck={false} />\n <Kbd size=\"sm\">Esc</Kbd>\n </div>\n {/* biome-ignore lint/a11y/useSemanticElements: custom listbox with rich option content (icons, meta, check); a native <select> cannot render it */}\n <div className=\"agn-cmdk__list\" id={id} role=\"listbox\" ref={listRef}>\n {filtered.length === 0 && <div className=\"agn-cmdk__empty\">{L.empty} “{q}”</div>}\n {groups.map(([g, list]) => (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div key={g} className=\"agn-cmdk__group\" role=\"group\" aria-label={g}>\n <div className=\"agn-cmdk__group-label\">{g}</div>\n {list.map((it) => { idx++; const i = idx; return (\n // biome-ignore lint/a11y/useSemanticElements: focus stays on the combobox input (aria-activedescendant): arrows and Enter select, the click is the pointer path\n // biome-ignore lint/a11y/useKeyWithClickEvents: focus stays on the combobox input (aria-activedescendant): arrows and Enter select, the click is the pointer path\n // biome-ignore lint/a11y/useFocusableInteractive: focus stays on the combobox input (aria-activedescendant): arrows and Enter select, the click is the pointer path\n <div key={it.id != null ? it.id : it.label} id={id + '-' + i} role=\"option\" aria-selected={i === active} className={cx('agn-cmdk__item', i === active && 'agn-cmdk__item--active')} onMouseEnter={() => setActive(i)} onMouseDown={(e) => e.preventDefault()} onClick={() => choose(it)}>\n <span className=\"agn-cmdk__icon\">{it.product ? <ProductIcon product={it.product} size={16} /> : <Icon name={it.icon || 'corner-down-right'} size={16} />}</span>\n <span className=\"agn-cmdk__label\">{it.label}</span>\n {it.meta && <span className=\"agn-cmdk__meta\">{it.meta}</span>}\n {it.shortcut && <Kbd size=\"sm\" keys={Array.isArray(it.shortcut) ? it.shortcut : undefined}>{Array.isArray(it.shortcut) ? undefined : it.shortcut}</Kbd>}\n </div>); })}\n </div>))}\n </div>\n <div className=\"agn-cmdk__footer\">\n <span className=\"agn-cmdk__hint\"><Kbd size=\"sm\" keys={['↑', '↓']} /> {L.navigate}</span>\n <span className=\"agn-cmdk__hint\"><Kbd size=\"sm\">↵</Kbd> {L.open}</span>\n <span className=\"agn-cmdk__hint\"><Kbd size=\"sm\">Esc</Kbd> {L.close}</span>\n </div>\n </div>\n );\n if (isStatic) return dialog;\n // biome-ignore lint/a11y/noStaticElementInteractions: pointer-only convenience; Esc closes the dialog from the keyboard\n return <div className=\"agn-cmdk__backdrop\" onMouseDown={(e) => { if (e.target === e.currentTarget) onClose && onClose(); }}>{dialog}</div>;\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Theme state: light | dark | system. Sets data-theme on <html> (resolved), persists in localStorage \"agn-theme\". Light is the default.\nconst KEY = 'agn-theme';\nconst VALID = ['light', 'dark', 'system'];\nconst read = () => { try { const v = localStorage.getItem(KEY); return VALID.includes(v) ? v : null; } catch { return null; } };\nconst write = (v) => { try { localStorage.setItem(KEY, v); } catch { /* private window or blocked storage */ } };\nconst media = () => (typeof window !== 'undefined' && window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null);\nexport const resolveTheme = (t) => (t === 'system' ? ((media() && media().matches) ? 'dark' : 'light') : (t === 'dark' ? 'dark' : 'light'));\nexport function useTheme(defaultTheme = 'light') {\n const [theme, setThemeState] = React.useState(() => {\n const stored = read(); if (stored) return stored;\n const current = typeof document !== 'undefined' ? document.documentElement.getAttribute('data-theme') : null;\n return current === 'dark' || current === 'light' ? current : defaultTheme;\n });\n const [resolved, setResolved] = React.useState(() => resolveTheme(theme));\n React.useEffect(() => {\n const apply = () => { const r = resolveTheme(theme); setResolved(r); if (typeof document !== 'undefined' && document.documentElement.getAttribute('data-theme') !== r) document.documentElement.setAttribute('data-theme', r); };\n apply();\n const m = media(); if (theme === 'system' && m) { const h = () => apply(); m.addEventListener ? m.addEventListener('change', h) : m.addListener(h); return () => { m.removeEventListener ? m.removeEventListener('change', h) : m.removeListener(h); }; }\n }, [theme]);\n const setTheme = React.useCallback((t) => { const v = VALID.includes(t) ? t : 'light'; write(v); setThemeState(v); }, []);\n return [theme, setTheme, resolved];\n}\nconst DEFAULT_LABELS = { light: 'Light', dark: 'Dark', system: 'System', title: 'Theme' };\nconst ICONS = { light: 'sun', dark: 'moon', system: 'monitor' };\n// Segmented icon control (default) or a single button that cycles. Controlled through value/onChange, or self-managed through useTheme.\nexport function ThemeToggle({ value, onChange, options = VALID, variant = 'segmented', size = 'md', showLabels, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [own, setOwn] = useTheme();\n const controlled = value !== undefined;\n const current = controlled ? value : own;\n const set = (v) => { if (!controlled) setOwn(v); onChange && onChange(v); };\n const h = size === 'sm' ? 'agn-theme-toggle--sm' : null;\n if (variant === 'button') {\n const next = options[(options.indexOf(current) + 1) % options.length];\n return <button type=\"button\" className={cx('agn-btn', 'agn-btn--ghost', 'agn-btn--icon', size === 'sm' && 'agn-btn--sm', className)} aria-label={L.title + ': ' + L[current]} title={L.title + ': ' + L[current]} onClick={() => set(next)} {...rest}><Icon name={ICONS[current] || 'sun'} size={16} /></button>;\n }\n return (\n <div className={cx('agn-theme-toggle', h, className)} role=\"radiogroup\" aria-label={L.title} {...rest}>\n {options.map((o) => (\n // biome-ignore lint/a11y/useSemanticElements: segmented button: role=radio on a <button> with roving tabIndex and arrow keys; a native radio input cannot carry this layout\n <button key={o} type=\"button\" role=\"radio\" aria-checked={current === o} aria-label={showLabels ? undefined : L[o]} title={L[o]} className={cx('agn-theme-toggle__opt', 'agn-focus-inset', current === o && 'agn-theme-toggle__opt--on')} onClick={() => set(o)}\n onKeyDown={(e) => { const i = options.indexOf(o); if (e.key === 'ArrowRight' || e.key === 'ArrowDown') { e.preventDefault(); set(options[(i + 1) % options.length]); } if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') { e.preventDefault(); set(options[(i - 1 + options.length) % options.length]); } }}\n tabIndex={current === o ? 0 : -1}>\n <Icon name={ICONS[o]} size={14} />{showLabels && <span>{L[o]}</span>}\n </button>))}\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Label + control + help/error wrapper. Wires id, aria-describedby and aria-invalid onto a single child control.\n// readOnly renders the record-view stacked value with an inline-edit pencil; inline lays label and control in two columns (settings rows).\nconst DEFAULT_LABELS = { required: 'Required', optional: 'Optional', edit: 'Edit' };\nexport function FormElement({ label, required, optional, help, error, hint, inline, readOnly, value, onEdit, htmlFor, id: idProp, labels, className, children, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const auto = React.useMemo(() => uid('field'), []);\n const id = htmlFor || idProp || auto;\n const helpId = id + '-help', errorId = id + '-error';\n const describedBy = [error && errorId, help && helpId].filter(Boolean).join(' ') || undefined;\n const control = React.Children.count(children) === 1 && React.isValidElement(children) && typeof children.type !== 'string' || (React.isValidElement(children) && ['input', 'select', 'textarea'].includes(children.type))\n ? React.cloneElement(children, { id: children.props.id || id, 'aria-describedby': cx(children.props['aria-describedby'], describedBy) || undefined, 'aria-invalid': error ? true : children.props['aria-invalid'], invalid: typeof children.type !== 'string' ? (!!error || children.props.invalid) : undefined, required: required || children.props.required })\n : children;\n return (\n <div className={cx('agn-form-el', inline && 'agn-form-el--inline', readOnly && 'agn-form-el--readonly', error && 'agn-form-el--invalid', className)} {...rest}>\n {label && (\n <div className=\"agn-form-el__head\">\n <label className=\"agn-form-el__label\" htmlFor={readOnly ? undefined : id}>\n {label}\n {required && <span className=\"agn-form-el__req\" aria-hidden=\"true\">*</span>}{required && <span className=\"agn-sr\"> ({L.required})</span>}\n {optional && !required && <span className=\"agn-form-el__opt\">{L.optional}</span>}\n </label>\n {hint && <span className=\"agn-form-el__hint\" title={hint}><Icon name=\"info\" size={14} title={hint} /></span>}\n {inline && help && !readOnly && <div className=\"agn-form-el__help agn-form-el__help--inline\" id={helpId}>{help}</div>}\n </div>)}\n <div className=\"agn-form-el__control\">\n {readOnly ? (\n <div className=\"agn-form-el__value\">\n <span className=\"agn-form-el__value-text\">{value != null && value !== '' ? value : <span className=\"agn-form-el__value-empty\">—</span>}</span>\n {onEdit && <button type=\"button\" className=\"agn-form-el__edit\" aria-label={L.edit + (typeof label === 'string' ? ': ' + label : '')} title={L.edit} onClick={onEdit}><Icon name=\"pencil\" size={14} /></button>}\n </div>\n ) : control}\n {error && <div className=\"agn-form-el__error\" id={errorId} role=\"alert\"><Icon name=\"circle-alert\" size={14} />{error}</div>}\n {help && !error && !(inline && label) && <div className=\"agn-form-el__help\" id={helpId}>{help}</div>}\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Single-line text field. Leading icon, trailing action, prefix/suffix text; invalid state; sizes. Wrap in FormElement for label, help and error.\nexport const Input = React.forwardRef(function Input({ icon, iconRight, prefix, suffix, action, onClear, invalid, size = 'md', bare, className, style, disabled, readOnly, type = 'text', wrapperProps, labels, ...rest }, ref) {\n const L = { clear: 'Clear', ...labels };\n // wrapperProps merge with the field's own classes and style instead of replacing them\n const { className: wClass, style: wStyle, ...wRest } = wrapperProps || {};\n const clearable = onClear && rest.value != null && rest.value !== '' && !disabled && !readOnly;\n return (\n <div className={cx('agn-field', size !== 'md' && 'agn-field--' + size, invalid && 'agn-field--invalid', disabled && 'agn-field--disabled', readOnly && 'agn-field--readonly', bare && 'agn-field--bare', className, wClass)} style={wStyle ? { ...style, ...wStyle } : style} {...wRest}>\n {icon && <Icon name={icon} size={size === 'lg' ? 18 : 16} className=\"agn-field__icon\" />}\n {prefix != null && <span className=\"agn-field__affix\">{prefix}</span>}\n <input ref={ref} type={type} className=\"agn-field__input\" disabled={disabled} readOnly={readOnly} aria-invalid={invalid || undefined} {...rest} />\n {suffix != null && <span className=\"agn-field__affix\">{suffix}</span>}\n {clearable && <button type=\"button\" className=\"agn-field__action\" aria-label={L.clear} onClick={onClear} tabIndex={-1}><Icon name=\"x\" size={14} /></button>}\n {iconRight && !clearable && <Icon name={iconRight} size={16} className=\"agn-field__icon\" />}\n {action && <button type=\"button\" className=\"agn-field__action\" aria-label={action.label} title={action.label} onClick={action.onClick} disabled={disabled}><Icon name={action.icon} size={14} /></button>}\n </div>\n );\n});\n","import React from 'react';\nimport { cx } from '../core/style.js';\n// Multi-line text field. autoGrow follows the content; maxLength shows a counter that turns bad when exceeded.\nconst DEFAULT_LABELS = { counter: '{n} / {max}' };\nexport const Textarea = React.forwardRef(function Textarea({ invalid, size = 'md', autoGrow, maxLength, rows = 3, labels, className, style, disabled, readOnly, onChange, ...rest }, ref) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const inner = React.useRef(null);\n const setRef = (el) => { inner.current = el; if (typeof ref === 'function') ref(el); else if (ref) ref.current = el; };\n const grow = () => { const el = inner.current; if (!el || !autoGrow) return; el.style.height = 'auto'; el.style.height = el.scrollHeight + 'px'; };\n // biome-ignore lint/correctness/useExhaustiveDependencies: value and autoGrow are the re-measure triggers; grow reads the textarea from its ref\n React.useEffect(grow, [rest.value, autoGrow]);\n const len = rest.value != null ? String(rest.value).length : (rest.defaultValue != null ? String(rest.defaultValue).length : 0);\n const [uncontrolledLen, setLen] = React.useState(len);\n const count = rest.value != null ? len : uncontrolledLen;\n const over = maxLength != null && count > maxLength;\n return (\n <div className={cx('agn-field', 'agn-field--area', size !== 'md' && 'agn-field--' + size, (invalid || over) && 'agn-field--invalid', disabled && 'agn-field--disabled', readOnly && 'agn-field--readonly', className)} style={style}>\n <textarea ref={setRef} className=\"agn-field__input agn-field__textarea\" rows={rows} disabled={disabled} readOnly={readOnly} aria-invalid={invalid || over || undefined} onChange={(e) => { setLen(e.target.value.length); onChange && onChange(e); grow(); }} {...rest} />\n {maxLength != null && <div className={cx('agn-field__counter', 'agn-num', over && 'agn-field__counter--over')} aria-live=\"polite\">{L.counter.replace('{n}', count).replace('{max}', maxLength)}</div>}\n </div>\n );\n});\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Native select styled like Input; the chevron is drawn in CSS. For search, meta or multi-select use Combobox.\nexport const Select = React.forwardRef(function Select({ options = [], placeholder, icon, invalid, size = 'md', className, style, disabled, children, ...rest }, ref) {\n return (\n <div className={cx('agn-field', 'agn-select', size !== 'md' && 'agn-field--' + size, invalid && 'agn-field--invalid', disabled && 'agn-field--disabled', className)} style={style}>\n {icon && <Icon name={icon} size={16} className=\"agn-field__icon\" />}\n <select ref={ref} className=\"agn-field__input agn-select__native\" disabled={disabled} aria-invalid={invalid || undefined} {...rest}>\n {placeholder != null && <option value=\"\" disabled={rest.required} hidden={rest.required}>{placeholder}</option>}\n {options.map((o) => { const opt = typeof o === 'string' ? { label: o, value: o } : o; return opt.options ? <optgroup key={opt.label} label={opt.label}>{opt.options.map((s) => { const so = typeof s === 'string' ? { label: s, value: s } : s; return <option key={so.value} value={so.value} disabled={so.disabled}>{so.label}</option>; })}</optgroup> : <option key={opt.value} value={opt.value} disabled={opt.disabled}>{opt.label}</option>; })}\n {children}\n </select>\n <span className=\"agn-select__chevron\" aria-hidden=\"true\" />\n </div>\n );\n});\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\n// Checkbox with label and description; indeterminate for a \"select all\" that covers part of the set.\nexport const Checkbox = React.forwardRef(function Checkbox({ label, description, checked, indeterminate, invalid, onChange, size = 'md', className, id: idProp, disabled, ...rest }, ref) {\n const inner = React.useRef(null);\n const id = React.useMemo(() => idProp || uid('cb'), [idProp]);\n const setRef = (el) => { inner.current = el; if (typeof ref === 'function') ref(el); else if (ref) ref.current = el; };\n React.useEffect(() => { if (inner.current) inner.current.indeterminate = !!indeterminate; }, [indeterminate]);\n return (\n <label className={cx('agn-check', size === 'sm' && 'agn-check--sm', invalid && 'agn-check--invalid', disabled && 'agn-check--disabled', !label && 'agn-check--bare', className)} htmlFor={id}>\n <input ref={setRef} id={id} type=\"checkbox\" className=\"agn-check__input\" checked={checked} disabled={disabled} aria-checked={indeterminate ? 'mixed' : undefined} aria-invalid={invalid || undefined} onChange={(e) => onChange && onChange(e.target.checked, e)} {...rest} />\n <span className=\"agn-check__box\" aria-hidden=\"true\" />\n {label && <span className=\"agn-check__text\"><span className=\"agn-check__label\">{label}</span>{description && <span className=\"agn-check__desc\">{description}</span>}</span>}\n </label>\n );\n});\n// A titled set of checkboxes; inline lays them in a row.\nexport function CheckboxGroup({ label, inline, invalid, error, help, children, className, ...rest }) {\n return (\n <fieldset className={cx('agn-check-group', inline && 'agn-check-group--inline', invalid && 'agn-check-group--invalid', className)} {...rest}>\n {label && <legend className=\"agn-check-group__legend\">{label}</legend>}\n <div className=\"agn-check-group__items\">{children}</div>\n {error && <div className=\"agn-form-el__error\" role=\"alert\">{error}</div>}\n {help && !error && <div className=\"agn-form-el__help\">{help}</div>}\n </fieldset>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\n// Switch for a setting that applies immediately (no save step). Label left or right; optional on/off word.\nconst DEFAULT_LABELS = { on: 'On', off: 'Off' };\nexport const Switch = React.forwardRef(function Switch({ label, description, checked, onChange, labelPosition = 'right', showState, size = 'md', labels, className, id: idProp, disabled, ...rest }, ref) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const id = React.useMemo(() => idProp || uid('sw'), [idProp]);\n const text = (label || description) && <span className=\"agn-switch__text\"><span className=\"agn-switch__label\">{label}</span>{description && <span className=\"agn-switch__desc\">{description}</span>}</span>;\n return (\n <label className={cx('agn-switch', size === 'sm' && 'agn-switch--sm', labelPosition === 'left' && 'agn-switch--label-left', disabled && 'agn-switch--disabled', className)} htmlFor={id}>\n {labelPosition === 'left' && text}\n <input ref={ref} id={id} type=\"checkbox\" role=\"switch\" className=\"agn-switch__input\" checked={checked} disabled={disabled} aria-checked={checked} onChange={(e) => onChange && onChange(e.target.checked, e)} {...rest} />\n <span className=\"agn-switch__track\" aria-hidden=\"true\"><span className=\"agn-switch__knob\" /></span>\n {showState && <span className=\"agn-switch__state\" aria-hidden=\"true\">{checked ? L.on : L.off}</span>}\n {labelPosition !== 'left' && text}\n </label>\n );\n});\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Icon-only checkbox rendered as a pressed button (add to list, star, watch). label is the accessible name.\nexport function CheckboxButton({ checked = false, onChange, icon = 'plus', iconChecked = 'check', label, size = 'md', className, disabled, ...rest }) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: icon toggle drawn as a button: role=checkbox on a <button> keeps native focus and Space/Enter, which a styled <input type=checkbox> could not show this way\n <button type=\"button\" role=\"checkbox\" aria-checked={checked} aria-label={label} title={label} disabled={disabled} className={cx('agn-btn', 'agn-btn--icon', 'agn-btn--neutral', size !== 'md' && 'agn-btn--' + size, 'agn-check-btn', checked && 'agn-check-btn--on', className)} onClick={() => onChange && onChange(!checked)} {...rest}>\n <Icon name={checked ? iconChecked : icon} size={size === 'sm' || size === 'xs' ? 14 : 16} />\n </button>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Single choice. list renders stacked radios with optional descriptions; button renders the joined segmented radio button group.\nexport function RadioGroup({ name: nameProp, options = [], value, onChange, inline, variant = 'list', size = 'md', disabled, label, invalid, className, ...rest }) {\n const name = React.useMemo(() => nameProp || uid('radio'), [nameProp]);\n const norm = options.map((o) => typeof o === 'string' ? { label: o, value: o } : o);\n return (\n <div className={cx('agn-radio-group', 'agn-radio-group--' + variant, inline && 'agn-radio-group--inline', size === 'sm' && 'agn-radio-group--sm', invalid && 'agn-radio-group--invalid', className)} role=\"radiogroup\" aria-label={label} {...rest}>\n {norm.map((o) => {\n const id = name + '-' + o.value; const on = value === o.value; const dis = disabled || o.disabled;\n return (\n <label key={o.value} htmlFor={id} className={cx(variant === 'button' ? 'agn-radio-btn' : 'agn-radio', on && (variant === 'button' ? 'agn-radio-btn--on' : 'agn-radio--on'), dis && (variant === 'button' ? 'agn-radio-btn--disabled' : 'agn-radio--disabled'))}>\n <input id={id} type=\"radio\" name={name} value={o.value} checked={on} disabled={dis} className={variant === 'button' ? 'agn-sr agn-radio-btn__input' : 'agn-radio__input'} onChange={() => onChange && onChange(o.value)} />\n {variant === 'button' ? <>{o.icon && <Icon name={o.icon} size={14} />}<span>{o.label}</span></> : <><span className=\"agn-radio__dot\" aria-hidden=\"true\" /><span className=\"agn-radio__text\"><span className=\"agn-radio__label\">{o.label}</span>{o.description && <span className=\"agn-radio__desc\">{o.description}</span>}</span></>}\n </label>);\n })}\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\nimport { Pill, PillContainer } from '../actions/Pill.jsx';\n// Searchable single/multi select with option meta and a leading icon, avatar or product glyph.\n// mode \"picklist\" is a closed list (no typing), \"lookup\" is a search over records. Keyboard: arrows, Home/End, Enter, Esc, Backspace removes the last pill.\nconst DEFAULT_LABELS = { empty: 'No matches', clear: 'Clear', remove: 'Remove', placeholder: 'Select…', search: 'Search…' };\nconst initials = (s) => String(s).split(/\\s+/).map((w) => w[0]).filter(Boolean).slice(0, 2).join('').toLocaleUpperCase();\nexport function Combobox({ options = [], value, onChange, multiple, mode = 'picklist', searchable, placeholder, disabled, invalid, size = 'md', icon, open: openProp, onOpenChange, inlinePills = true, renderOption, labels, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const canType = searchable != null ? searchable : mode === 'lookup';\n const [openState, setOpenState] = React.useState(false);\n const open = openProp != null ? openProp : openState;\n const setOpen = (v) => { if (openProp == null) setOpenState(v); onOpenChange && onOpenChange(v); };\n const setOpenRef = React.useRef(setOpen); setOpenRef.current = setOpen;\n const [q, setQ] = React.useState('');\n const [active, setActive] = React.useState(0);\n const ref = React.useRef(null); const inputRef = React.useRef(null); const listRef = React.useRef(null);\n const id = React.useMemo(() => uid('combo'), []);\n const norm = options.map((o) => typeof o === 'string' ? { label: o, value: o } : o);\n const selected = multiple ? (Array.isArray(value) ? value : []) : (value != null && value !== '' ? [value] : []);\n const byValue = (v) => norm.find((o) => o.value === v) || { label: String(v), value: v };\n const filtered = norm.filter((o) => o.type === 'header' || !q || (o.label + ' ' + (o.meta || '')).toLocaleLowerCase().includes(q.toLocaleLowerCase()));\n const selectable = filtered.filter((o) => o.type !== 'header' && !o.disabled);\n React.useEffect(() => { const h = (e) => { if (ref.current && !ref.current.contains(e.target)) { setOpenRef.current(false); setQ(''); } }; document.addEventListener('mousedown', h); return () => document.removeEventListener('mousedown', h); }, []);\n // biome-ignore lint/correctness/useExhaustiveDependencies: active and open are the triggers: the effect scrolls the active option into view\n React.useEffect(() => { if (!open) return; const el = listRef.current && (listRef.current.querySelector('.agn-combo__opt--active') || listRef.current.querySelector('[aria-selected=\"true\"]')); el && el.scrollIntoView && el.scrollIntoView({ block: 'nearest' }); }, [active, open]);\n const pick = (o) => { if (!o || o.disabled || o.type === 'header') return; if (multiple) { onChange && onChange(selected.includes(o.value) ? selected.filter((v) => v !== o.value) : [...selected, o.value]); setQ(''); inputRef.current && inputRef.current.focus(); } else { onChange && onChange(o.value); setOpen(false); setQ(''); } };\n const current = !multiple && selected.length ? byValue(selected[0]) : null;\n const display = open && canType ? q : (current ? current.label : (multiple && !canType ? '' : q));\n const onKeyDown = (e) => {\n if (disabled) return;\n if (e.key === 'ArrowDown') { e.preventDefault(); if (!open) setOpen(true); else setActive((a) => Math.min(a + 1, selectable.length - 1)); }\n else if (e.key === 'ArrowUp') { e.preventDefault(); setActive((a) => Math.max(a - 1, 0)); }\n else if (e.key === 'Home' && open) { e.preventDefault(); setActive(0); }\n else if (e.key === 'End' && open) { e.preventDefault(); setActive(selectable.length - 1); }\n else if (e.key === 'Enter') { if (open) { e.preventDefault(); pick(selectable[active]); } else { setOpen(true); } }\n else if (e.key === 'Escape') { if (open) { e.preventDefault(); setOpen(false); setQ(''); } }\n else if (e.key === 'Backspace' && multiple && !q && selected.length) { onChange && onChange(selected.slice(0, -1)); }\n else if (e.key === ' ' && !canType) { e.preventDefault(); setOpen(!open); }\n else if (!canType && e.key.length === 1) { const hit = selectable.findIndex((o) => o.label.toLocaleLowerCase().startsWith(e.key.toLocaleLowerCase())); if (hit >= 0) { setActive(hit); if (!open) pick(selectable[hit]); } }\n };\n const lead = (o, sz) => o.product ? <ProductIcon product={o.product} size={sz} className=\"agn-combo__lead\" /> : o.avatar ? (/^(https?:|data:|\\/)/.test(o.avatar) ? <img className=\"agn-combo__avatar\" src={o.avatar} alt=\"\" /> : <span className=\"agn-combo__avatar agn-combo__avatar--initials\" aria-hidden=\"true\">{o.avatar.length <= 2 ? o.avatar : initials(o.avatar)}</span>) : o.icon ? <Icon name={o.icon} size={sz} className=\"agn-combo__lead\" /> : null;\n let si = -1;\n // aria-* and id name the input (the combobox), everything else lands on the wrapper\n const inputRest = {}, wrapRest = {};\n Object.keys(rest).forEach((k) => { if (k === 'id' || k.startsWith('aria-')) inputRest[k] = rest[k]; else wrapRest[k] = rest[k]; });\n return (\n <div className={cx('agn-combo', multiple && 'agn-combo--multiple', className)} style={style} ref={ref} {...wrapRest}>\n <div className=\"agn-combo__anchor\">\n {/* biome-ignore lint/a11y/noStaticElementInteractions: the click widens the hit area to the whole field; the combobox input inside is the keyboard target */}\n {/* biome-ignore lint/a11y/useKeyWithClickEvents: the click widens the hit area to the whole field; the combobox input inside is the keyboard target */}\n <div className={cx('agn-field', size !== 'md' && 'agn-field--' + size, invalid && 'agn-field--invalid', disabled && 'agn-field--disabled', !canType && 'agn-field--picklist')} onClick={() => { if (disabled) return; setOpen(!open || canType); inputRef.current && inputRef.current.focus(); }}>\n {icon ? <Icon name={icon} size={16} className=\"agn-field__icon\" /> : (current && lead(current, 16)) || (mode === 'lookup' && <Icon name=\"search\" size={16} className=\"agn-field__icon\" />)}\n <input ref={inputRef} className={cx('agn-field__input', !canType && 'agn-combo__input--closed')} value={display} readOnly={!canType} disabled={disabled} placeholder={multiple && selected.length && inlinePills ? '' : (placeholder || (mode === 'lookup' ? L.search : L.placeholder))}\n role=\"combobox\" aria-expanded={open} aria-controls={id} aria-haspopup=\"listbox\" aria-autocomplete={canType ? 'list' : undefined} aria-activedescendant={open && selectable[active] ? id + '-' + active : undefined} aria-invalid={invalid || undefined} autoComplete=\"off\" {...inputRest}\n onChange={(e) => { setQ(e.target.value); setOpen(true); setActive(0); }} onKeyDown={onKeyDown} onFocus={() => canType && setOpen(true)} />\n {!multiple && current && !disabled ? <button type=\"button\" className=\"agn-field__action\" aria-label={L.clear} tabIndex={-1} onMouseDown={(e) => e.preventDefault()} onClick={(e) => { e.stopPropagation(); onChange && onChange(null); setQ(''); }}><Icon name=\"x\" size={14} /></button>\n : <Icon name=\"chevron-down\" size={16} className={cx('agn-field__icon', 'agn-combo__chevron', open && 'agn-combo__chevron--open')} />}\n </div>\n {open && !disabled && (\n // biome-ignore lint/a11y/useSemanticElements: custom listbox with rich option content (icons, meta, check); a native <select> cannot render it\n <div className=\"agn-combo__list\" id={id} role=\"listbox\" aria-multiselectable={multiple || undefined} ref={listRef}>\n {selectable.length === 0 && filtered.every((o) => o.type === 'header') && <div className=\"agn-combo__empty\">{L.empty}</div>}\n {filtered.map((o, i) => { if (o.type === 'header') return <div key={'h' + i} className=\"agn-combo__header\">{o.label}</div>; if (!o.disabled) si++; const idx = si; const on = selected.includes(o.value); return (\n // biome-ignore lint/a11y/useSemanticElements: focus stays on the combobox input (aria-activedescendant): arrows and Enter select, the click is the pointer path\n // biome-ignore lint/a11y/useKeyWithClickEvents: focus stays on the combobox input (aria-activedescendant): arrows and Enter select, the click is the pointer path\n // biome-ignore lint/a11y/useFocusableInteractive: focus stays on the combobox input (aria-activedescendant): arrows and Enter select, the click is the pointer path\n <div key={o.value} id={!o.disabled ? id + '-' + idx : undefined} role=\"option\" aria-selected={on} aria-disabled={o.disabled || undefined} className={cx('agn-combo__opt', on && 'agn-combo__opt--selected', o.disabled && 'agn-combo__opt--disabled', !o.disabled && idx === active && 'agn-combo__opt--active')} onMouseEnter={() => !o.disabled && setActive(idx)} onMouseDown={(e) => e.preventDefault()} onClick={() => pick(o)}>\n {multiple && <span className={cx('agn-combo__tick', on && 'agn-combo__tick--on')} aria-hidden=\"true\">{on && <Icon name=\"check\" size={12} />}</span>}\n {lead(o, 16)}\n {renderOption ? renderOption(o) : <span className=\"agn-combo__text\"><span className=\"agn-combo__label\">{o.label}</span>{o.meta && <span className=\"agn-combo__meta\">{o.meta}</span>}</span>}\n {!multiple && on && <Icon name=\"check\" size={14} className=\"agn-combo__check\" />}\n </div>); })}\n </div>)}\n </div>\n {multiple && inlinePills && selected.length > 0 && <PillContainer bare className=\"agn-combo__pills\">{selected.map((v) => { const o = byValue(v); return <Pill key={v} label={o.label} icon={o.icon} avatar={o.avatar} labels={{ remove: L.remove }} onRemove={disabled ? undefined : () => pick(o)} />; })}</PillContainer>}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Compact single-select for views, periods and modes (List · Board · Timeline): 26px items in a 32px track. Radio semantics with arrow keys.\nexport function SegmentedControl({ options = [], value, onChange, size = 'md', stretch, label, className, ...rest }) {\n const norm = options.map((o) => typeof o === 'string' ? { label: o, value: o } : o);\n const move = (dir) => { const enabled = norm.filter((o) => !o.disabled); const i = enabled.findIndex((o) => o.value === value); const next = enabled[(i + dir + enabled.length) % enabled.length]; if (next && onChange) onChange(next.value); };\n return (\n <div className={cx('agn-seg', size === 'sm' && 'agn-seg--sm', stretch && 'agn-seg--stretch', className)} role=\"radiogroup\" aria-label={label} {...rest}>\n {norm.map((o) => { const on = o.value === value; return (\n // biome-ignore lint/a11y/useSemanticElements: segmented button: role=radio on a <button> with roving tabIndex and arrow keys; a native radio input cannot carry this layout\n <button key={o.value} type=\"button\" role=\"radio\" aria-checked={on} aria-label={o.iconOnly ? o.label : undefined} title={o.iconOnly ? o.label : undefined} disabled={o.disabled} tabIndex={on ? 0 : -1} className={cx('agn-seg__item', 'agn-focus-inset', on && 'agn-seg__item--on')} onClick={() => onChange && onChange(o.value)}\n onKeyDown={(e) => { if (e.key === 'ArrowRight' || e.key === 'ArrowDown') { e.preventDefault(); move(1); } if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') { e.preventDefault(); move(-1); } if (e.key === 'Home') { e.preventDefault(); onChange && onChange(norm[0].value); } if (e.key === 'End') { e.preventDefault(); onChange && onChange(norm[norm.length - 1].value); } }}>\n {o.icon && <Icon name={o.icon} size={14} />}{!o.iconOnly && <span>{o.label}</span>}\n </button>); })}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Masked value (API key, token) in mono with reveal and copy. Read-only unless onChange is given.\nconst DEFAULT_LABELS = { reveal: 'Reveal', hide: 'Hide', copy: 'Copy', copied: 'Copied' };\nexport function SecretField({ value = '', onChange, revealLast = 4, size = 'md', invalid, disabled, placeholder, labels, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [shown, setShown] = React.useState(false);\n const [copied, setCopied] = React.useState(false);\n const masked = value ? '•'.repeat(Math.max(8, Math.min(24, value.length - revealLast))) + (revealLast ? value.slice(-revealLast) : '') : '';\n const copy = async () => { try { await navigator.clipboard.writeText(value); setCopied(true); setTimeout(() => setCopied(false), 1500); } catch { /* clipboard blocked */ } };\n return (\n <div className={cx('agn-field', 'agn-secret', size !== 'md' && 'agn-field--' + size, invalid && 'agn-field--invalid', disabled && 'agn-field--disabled', !onChange && 'agn-field--readonly', className)} style={style}>\n <Icon name=\"key-round\" size={16} className=\"agn-field__icon\" />\n <input className=\"agn-field__input agn-secret__input agn-mono\" type={shown || !onChange ? 'text' : 'password'} value={shown || !value ? value : masked} readOnly={!onChange || !shown} disabled={disabled} placeholder={placeholder} spellCheck={false} autoComplete=\"off\" onChange={(e) => onChange && onChange(e.target.value)} {...rest} />\n <button type=\"button\" className=\"agn-field__action\" aria-label={shown ? L.hide : L.reveal} title={shown ? L.hide : L.reveal} aria-pressed={shown} disabled={disabled || !value} onClick={() => setShown((s) => !s)}><Icon name={shown ? 'eye-off' : 'eye'} size={14} /></button>\n {/* biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here */}\n <button type=\"button\" className={cx('agn-field__action', copied && 'agn-field__action--ok')} aria-label={copied ? L.copied : L.copy} title={copied ? L.copied : L.copy} disabled={disabled || !value} onClick={copy}><Icon name={copied ? 'check' : 'copy'} size={14} />{copied && <span className=\"agn-sr\" role=\"status\">{L.copied}</span>}</button>\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Pill, PillContainer } from '../actions/Pill.jsx';\n// Free-text tokens: Enter or comma adds, Backspace removes the last, paste splits on commas and newlines. validate marks a pill invalid.\nconst DEFAULT_LABELS = { remove: 'Remove', placeholder: 'Add and press Enter' };\nexport function TagInput({ value = [], onChange, validate, max, placeholder, disabled, invalid, separators = /[,\\n;]/, labels, className, style, inputProps, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [draft, setDraft] = React.useState('');\n const inputRef = React.useRef(null);\n const add = (raw) => { const parts = String(raw).split(separators).map((s) => s.trim()).filter(Boolean); if (!parts.length) return; let next = [...value]; parts.forEach((p) => { if (!next.includes(p) && (max == null || next.length < max)) next.push(p); }); onChange && onChange(next); setDraft(''); };\n const remove = (i) => { onChange && onChange(value.filter((_, j) => j !== i)); };\n const full = max != null && value.length >= max;\n return (\n <PillContainer className={cx('agn-tag-input', disabled && 'agn-field--disabled', invalid && 'agn-tag-input--invalid', className)} style={style} onClick={() => inputRef.current && inputRef.current.focus()} {...rest}>\n {value.map((v, i) => <Pill key={v + i} label={v} invalid={validate ? !validate(v) : false} labels={{ remove: L.remove }} onRemove={disabled ? undefined : () => remove(i)} />)}\n {!full && <input ref={inputRef} className=\"agn-tag-input__input\" value={draft} placeholder={value.length ? '' : (placeholder || L.placeholder)} disabled={disabled} aria-invalid={invalid || undefined}\n onChange={(e) => { if (separators.test(e.target.value)) add(e.target.value); else setDraft(e.target.value); }}\n onKeyDown={(e) => { if (e.key === 'Enter' && draft.trim()) { e.preventDefault(); add(draft); } else if (e.key === 'Backspace' && !draft && value.length) { e.preventDefault(); remove(value.length - 1); } }}\n onPaste={(e) => { const t = e.clipboardData && e.clipboardData.getData('text'); if (t && separators.test(t)) { e.preventDefault(); add(t); } }}\n onBlur={() => { if (draft.trim()) add(draft); }} {...inputProps} />}\n </PillContainer>\n );\n}\n","// biome-ignore-all lint/a11y/useSemanticElements: Calendar is the APG date-picker grid laid out with CSS grid; div rows and column headers keep the 7-column template that table markup would fight\n// biome-ignore-all lint/a11y/useFocusableInteractive: the grid's rows and column headers are structure, not controls; the gridcell buttons carry the roving focus\nimport React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Date field with a calendar popover; Calendar is exported for inline and range use. fmtDate renders 15.10.2026 (tr) or 15 Oct 2026 (en).\nconst isTr = (l) => /^tr/i.test(l || '');\nexport const fmtDate = (d, locale = 'en') => { if (!d) return ''; const dt = d instanceof Date ? d : new Date(d); if (Number.isNaN(dt.getTime())) return ''; return isTr(locale) ? dt.toLocaleDateString('tr-TR', { day: '2-digit', month: '2-digit', year: 'numeric' }) : dt.toLocaleDateString('en-GB', { day: 'numeric', month: 'short', year: 'numeric' }); };\nconst same = (a, b) => !!(a && b) && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\nconst strip = (d) => d ? new Date(d.getFullYear(), d.getMonth(), d.getDate()) : null;\nconst DEFAULT_LABELS = { prev: 'Previous month', next: 'Next month', today: 'Today', clear: 'Clear', grid: 'Calendar' };\nexport function Calendar({ value, onChange, min, max, locale = 'en', weekStartsOn, month: monthProp, range, rangeStart, rangeEnd, onRangeChange, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const wk = weekStartsOn != null ? weekStartsOn : (isTr(locale) ? 1 : 1);\n const intl = isTr(locale) ? 'tr-TR' : 'en-GB';\n const [view, setView] = React.useState(() => strip(monthProp || value || rangeStart || new Date()));\n const [focusDay, setFocusDay] = React.useState(() => strip(value || rangeStart || new Date()));\n const [pending, setPending] = React.useState(null);\n const gridRef = React.useRef(null);\n // biome-ignore lint/correctness/useExhaustiveDependencies: keyed on the timestamp so a new Date with the same time does not reset the view\n React.useEffect(() => { if (value) { setView(strip(value)); setFocusDay(strip(value)); } }, [value && value.getTime()]);\n const y = view.getFullYear(), m = view.getMonth();\n const first = new Date(y, m, 1); const offset = (first.getDay() - wk + 7) % 7;\n const days = []; for (let i = -offset; i < 42 - offset; i++) days.push(new Date(y, m, 1 + i));\n const dows = Array.from({ length: 7 }, (_, i) => new Date(2024, 0, 7 + ((i + wk) % 7)).toLocaleDateString(intl, { weekday: 'short' }).slice(0, 2));\n const today = strip(new Date());\n const disabled = (d) => (min && d < strip(min)) || (max && d > strip(max));\n const rs = strip(pending || rangeStart), re = pending ? null : strip(rangeEnd);\n const inRange = (d) => rs && re && d > rs && d < re;\n const pick = (d) => { if (disabled(d)) return; setFocusDay(d); if (range) { if (!pending) { setPending(d); onRangeChange && onRangeChange({ start: d, end: null }); } else { const a = pending < d ? pending : d, b = pending < d ? d : pending; setPending(null); onRangeChange && onRangeChange({ start: a, end: b }); } } else onChange && onChange(d); };\n const moveFocus = (delta, unit) => { const d = new Date(focusDay); if (unit === 'month') d.setMonth(d.getMonth() + delta); else if (unit === 'year') d.setFullYear(d.getFullYear() + delta); else d.setDate(d.getDate() + delta); setFocusDay(d); if (d.getMonth() !== m || d.getFullYear() !== y) setView(new Date(d.getFullYear(), d.getMonth(), 1)); setTimeout(() => { const el = gridRef.current && gridRef.current.querySelector('[tabindex=\"0\"]'); el && el.focus(); }, 0); };\n const onKeyDown = (e) => {\n const map = { ArrowRight: [1], ArrowLeft: [-1], ArrowDown: [7], ArrowUp: [-7], PageDown: [e.shiftKey ? 1 : 1, e.shiftKey ? 'year' : 'month'], PageUp: [e.shiftKey ? -1 : -1, e.shiftKey ? 'year' : 'month'] };\n if (map[e.key]) { e.preventDefault(); moveFocus(map[e.key][0], map[e.key][1]); }\n else if (e.key === 'Home') { e.preventDefault(); const d = new Date(focusDay); d.setDate(d.getDate() - ((d.getDay() - wk + 7) % 7)); setFocusDay(d); }\n else if (e.key === 'End') { e.preventDefault(); const d = new Date(focusDay); d.setDate(d.getDate() + (6 - ((d.getDay() - wk + 7) % 7))); setFocusDay(d); }\n else if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); pick(focusDay); }\n };\n return (\n <div className={cx('agn-cal', className)} {...rest}>\n <div className=\"agn-cal__head\">\n <button type=\"button\" className=\"agn-cal__nav\" aria-label={L.prev} onClick={() => setView(new Date(y, m - 1, 1))}><Icon name=\"chevron-left\" size={16} /></button>\n <span className=\"agn-cal__title\" aria-live=\"polite\">{view.toLocaleDateString(intl, { month: 'long', year: 'numeric' })}</span>\n <button type=\"button\" className=\"agn-cal__nav\" aria-label={L.next} onClick={() => setView(new Date(y, m + 1, 1))}><Icon name=\"chevron-right\" size={16} /></button>\n </div>\n <div className=\"agn-cal__grid\" role=\"grid\" aria-label={L.grid} ref={gridRef} onKeyDown={onKeyDown}>\n <div className=\"agn-cal__row\" role=\"row\">{dows.map((d, i) => <div key={i} role=\"columnheader\" className=\"agn-cal__dow\">{d}</div>)}</div>\n {Array.from({ length: 6 }, (_, r) => (\n <div key={r} className=\"agn-cal__row\" role=\"row\">\n {days.slice(r * 7, r * 7 + 7).map((d, i) => { const sel = same(d, value) || same(d, rs) || same(d, re); return (\n <button key={i} type=\"button\" role=\"gridcell\" tabIndex={same(d, focusDay) ? 0 : -1} aria-selected={sel || undefined} aria-label={d.toLocaleDateString(intl, { day: 'numeric', month: 'long', year: 'numeric' })} disabled={disabled(d)}\n className={cx('agn-cal__day', 'agn-focus-inset', d.getMonth() !== m && 'agn-cal__day--out', same(d, today) && 'agn-cal__day--today', sel && 'agn-cal__day--sel', inRange(d) && 'agn-cal__day--range', same(d, rs) && re && 'agn-cal__day--range-start', same(d, re) && 'agn-cal__day--range-end')}\n onClick={() => pick(d)} onFocus={() => setFocusDay(d)}>{d.getDate()}</button>); })}\n </div>))}\n </div>\n <div className=\"agn-cal__foot\">\n <button type=\"button\" className=\"agn-btn agn-btn--link agn-cal__today\" onClick={() => { setView(today); setFocusDay(today); if (!range) onChange && onChange(today); }}>{L.today}</button>\n {(value || rangeStart) && (onChange || onRangeChange) && <button type=\"button\" className=\"agn-btn agn-btn--link agn-cal__clear\" onClick={() => { setPending(null); range ? onRangeChange && onRangeChange({ start: null, end: null }) : onChange && onChange(null); }}>{L.clear}</button>}\n </div>\n </div>\n );\n}\n// range: value is [from, to] and onChange receives [from, to] (to is null after the first click); the popover closes when both are set.\nexport function Datepicker({ value, onChange, range, placeholder, locale = 'en', disabled, invalid, size = 'md', min, max, weekStartsOn, open: openProp, onOpenChange, labels, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [openState, setOpenState] = React.useState(false);\n const open = openProp != null ? openProp : openState;\n const setOpen = (v) => { if (openProp == null) setOpenState(v); onOpenChange && onOpenChange(v); };\n const setOpenRef = React.useRef(setOpen); setOpenRef.current = setOpen;\n const ref = React.useRef(null);\n const id = React.useMemo(() => uid('dp'), []);\n React.useEffect(() => { const h = (e) => { if (ref.current && !ref.current.contains(e.target)) setOpenRef.current(false); }; document.addEventListener('mousedown', h); return () => document.removeEventListener('mousedown', h); }, []);\n const one = isTr(locale) ? 'GG.AA.YYYY' : 'DD MMM YYYY';\n const ph = placeholder || (range ? one + ' – ' + one : one);\n const [from, to] = range ? (Array.isArray(value) ? value : [null, null]) : [null, null];\n const hasValue = range ? !!(from || to) : !!value;\n const text = range ? (from ? fmtDate(from, locale) + ' – ' + (to ? fmtDate(to, locale) : '…') : '') : fmtDate(value, locale);\n return (\n <div className={cx('agn-dp', range && 'agn-dp--range', className)} style={style} ref={ref} {...rest}>\n {/* biome-ignore lint/a11y/noStaticElementInteractions: the click widens the hit area to the whole field; the combobox input inside is the keyboard target */}\n {/* biome-ignore lint/a11y/useKeyWithClickEvents: the click widens the hit area to the whole field; the combobox input inside is the keyboard target */}\n <div className={cx('agn-field', size !== 'md' && 'agn-field--' + size, invalid && 'agn-field--invalid', disabled && 'agn-field--disabled')} onClick={() => !disabled && setOpen(true)}>\n <Icon name=\"calendar\" size={16} className=\"agn-field__icon\" />\n <input className=\"agn-field__input agn-num\" value={text} placeholder={ph} readOnly disabled={disabled} role=\"combobox\" aria-invalid={invalid || undefined} aria-haspopup=\"dialog\" aria-expanded={open} aria-controls={open ? id : undefined} onFocus={() => setOpen(true)}\n onKeyDown={(e) => { if (e.key === 'Escape') { setOpen(false); } if (e.key === 'ArrowDown' || e.key === 'Enter' || e.key === ' ') { e.preventDefault(); setOpen(true); setTimeout(() => { const el = ref.current && ref.current.querySelector('.agn-cal__day[tabindex=\"0\"]'); el && el.focus(); }, 0); } }} />\n {hasValue && !disabled && <button type=\"button\" className=\"agn-field__action\" aria-label={L.clear} tabIndex={-1} onMouseDown={(e) => e.preventDefault()} onClick={(e) => { e.stopPropagation(); onChange && onChange(range ? [null, null] : null); }}><Icon name=\"x\" size={14} /></button>}\n </div>\n {open && !disabled && <div className=\"agn-dp__pop\" id={id} role=\"dialog\" aria-label={L.grid} onKeyDown={(e) => { if (e.key === 'Escape') { e.preventDefault(); setOpen(false); const inp = ref.current && ref.current.querySelector('input'); inp && inp.focus(); } }}>\n {range\n ? <Calendar range rangeStart={from} rangeEnd={to} month={from || undefined} onRangeChange={(r) => { onChange && onChange([r.start, r.end]); if (r.start && r.end) setOpen(false); }} min={min} max={max} locale={locale} weekStartsOn={weekStartsOn} labels={labels} />\n : <Calendar value={value} onChange={(d) => { onChange && onChange(d); setOpen(false); }} min={min} max={max} locale={locale} weekStartsOn={weekStartsOn} labels={labels} />}\n </div>}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Combobox } from '../forms/Combobox.jsx';\nimport { Datepicker } from './Datepicker.jsx';\n// 24h time on a Combobox: slots every step minutes (30 by default), typeable (\"14\" jumps to 14:00). DatetimePicker pairs it with a Datepicker.\nconst pad = (n) => String(n).padStart(2, '0');\nexport const timeSlots = (step = 30, min = '00:00', max = '23:59') => { const out = []; for (let t = 0; t < 24 * 60; t += step) { const v = pad(Math.floor(t / 60)) + ':' + pad(t % 60); if (v >= min && v <= max) out.push(v); } return out; };\nexport function Timepicker({ value, onChange, step = 30, min, max, placeholder = '--:--', disabled, invalid, size = 'md', open, labels, className, ...rest }) {\n const slots = React.useMemo(() => timeSlots(step, min, max), [step, min, max]);\n const options = React.useMemo(() => { const list = slots.slice(); if (value && !list.includes(value)) list.push(value); return list.sort().map((v) => ({ label: v, value: v })); }, [slots, value]);\n return <Combobox className={cx('agn-tp', className)} options={options} value={value || null} onChange={(v) => onChange && onChange(v)} mode=\"lookup\" icon=\"clock\" placeholder={placeholder} disabled={disabled} invalid={invalid} size={size} open={open} labels={{ empty: '—', ...labels }} {...rest} />;\n}\nexport function DatetimePicker({ date, time, onDateChange, onTimeChange, locale = 'en', step = 30, min, max, disabled, invalid, size = 'md', labels, className, style, ...rest }) {\n return (\n <div className={cx('agn-dtp', className)} style={style} {...rest}>\n <Datepicker className=\"agn-dtp__date\" value={date} onChange={onDateChange} locale={locale} disabled={disabled} invalid={invalid} size={size} min={min} max={max} labels={labels} />\n <Timepicker className=\"agn-dtp__time\" value={time} onChange={onTimeChange} step={step} disabled={disabled} invalid={invalid} size={size} labels={labels} />\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\n// Native range inputs under a filled track, with a value readout. range renders two thumbs over one track.\nexport function Slider({ value, onChange, min = 0, max = 100, step = 1, range, showValue = true, format, label, disabled, size = 'md', className, style, ...rest }) {\n const id = React.useMemo(() => uid('slider'), []);\n const fmt = format || ((v) => String(v));\n const pct = (v) => ((v - min) / (max - min)) * 100;\n if (range) {\n const [a, b] = Array.isArray(value) ? value : [min, max];\n const setA = (v) => onChange && onChange([Math.min(v, b), b]);\n const setB = (v) => onChange && onChange([a, Math.max(v, a)]);\n return (\n <div className={cx('agn-slider', 'agn-slider--range', size === 'sm' && 'agn-slider--sm', disabled && 'agn-slider--disabled', className)} style={{ '--agn-slider-a': pct(a) + '%', '--agn-slider-b': pct(b) + '%', ...style }} {...rest}>\n <div className=\"agn-slider__track\"><div className=\"agn-slider__fill\" /></div>\n <input type=\"range\" className=\"agn-slider__input\" aria-label={label ? label + ' (min)' : 'Minimum'} min={min} max={max} step={step} value={a} disabled={disabled} onChange={(e) => setA(Number(e.target.value))} />\n <input type=\"range\" className=\"agn-slider__input\" aria-label={label ? label + ' (max)' : 'Maximum'} min={min} max={max} step={step} value={b} disabled={disabled} onChange={(e) => setB(Number(e.target.value))} />\n {showValue && <output className=\"agn-slider__value agn-num\" htmlFor={id}>{fmt(a)} – {fmt(b)}</output>}\n </div>\n );\n }\n const v = value != null ? value : min;\n return (\n <div className={cx('agn-slider', size === 'sm' && 'agn-slider--sm', disabled && 'agn-slider--disabled', className)} style={{ '--agn-slider-a': '0%', '--agn-slider-b': pct(v) + '%', ...style }} {...rest}>\n <div className=\"agn-slider__track\"><div className=\"agn-slider__fill\" /></div>\n <input id={id} type=\"range\" className=\"agn-slider__input\" aria-label={label} min={min} max={max} step={step} value={v} disabled={disabled} onChange={(e) => onChange && onChange(Number(e.target.value))} />\n {showValue && <output className=\"agn-slider__value agn-num\" htmlFor={id}>{fmt(v)}</output>}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Hex field with a swatch, and a popover with the data palette (as token swatches) plus the native picker. Returns a resolved hex.\nexport const defaultSwatches = [\n ...[1, 2, 3, 4, 5, 6].map((i) => ({ value: 'var(--data-' + i + ')', label: 'Data ' + i })),\n ...['signal', 'ok', 'warn', 'bad'].flatMap((r) => [100, 300, 500, 700, 900, 950].map((s) => ({ value: 'var(--' + r + '-' + s + ')', label: r + ' ' + s }))),\n];\nconst toHex = (css, el) => { if (/^#[0-9a-f]{6}$/i.test(css)) return css.toLowerCase(); const probe = document.createElement('span'); probe.style.color = css; (el || document.body).appendChild(probe); const rgb = getComputedStyle(probe).color; probe.remove(); const m = rgb.match(/\\d+(\\.\\d+)?/g); if (!m) return css; return '#' + m.slice(0, 3).map((n) => Math.round(Number(n)).toString(16).padStart(2, '0')).join(''); };\nconst DEFAULT_LABELS = { open: 'Choose colour', custom: 'Custom…', swatches: 'Palette', hex: 'Hex value' };\nexport function ColorPicker({ value = '', onChange, swatches = defaultSwatches, disabled, invalid, size = 'md', open: openProp, onOpenChange, labels, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [openState, setOpenState] = React.useState(false);\n const open = openProp != null ? openProp : openState;\n const setOpen = (v) => { if (openProp == null) setOpenState(v); onOpenChange && onOpenChange(v); };\n const setOpenRef = React.useRef(setOpen); setOpenRef.current = setOpen;\n const [draft, setDraft] = React.useState(value);\n const ref = React.useRef(null); const nativeRef = React.useRef(null);\n React.useEffect(() => setDraft(value), [value]);\n React.useEffect(() => { const h = (e) => { if (ref.current && !ref.current.contains(e.target)) setOpenRef.current(false); }; document.addEventListener('mousedown', h); return () => document.removeEventListener('mousedown', h); }, []);\n const commit = (s) => { const v = s.trim().startsWith('#') ? s.trim() : '#' + s.trim(); if (/^#[0-9a-f]{6}$/i.test(v)) onChange && onChange(v.toLowerCase()); };\n const valid = /^#[0-9a-f]{6}$/i.test(value);\n const list = swatches.map((s) => typeof s === 'string' ? { value: s, label: s } : s);\n return (\n <div className={cx('agn-color', className)} style={style} ref={ref} {...rest}>\n <div className={cx('agn-field', size !== 'md' && 'agn-field--' + size, (invalid || (!valid && value)) && 'agn-field--invalid', disabled && 'agn-field--disabled')}>\n <button type=\"button\" className=\"agn-color__swatch\" style={{ background: valid ? value : 'transparent' }} aria-label={L.open} aria-haspopup=\"dialog\" aria-expanded={open} disabled={disabled} onClick={() => setOpen(!open)}>{!valid && <Icon name=\"pipette\" size={12} />}</button>\n <span className=\"agn-field__affix\">#</span>\n <input className=\"agn-field__input agn-mono\" value={draft.replace(/^#/, '')} maxLength={6} spellCheck={false} aria-label={L.hex} disabled={disabled} onChange={(e) => { setDraft(e.target.value); commit(e.target.value); }} onBlur={() => setDraft(value)} onKeyDown={(e) => { if (e.key === 'ArrowDown') setOpen(true); if (e.key === 'Escape') setOpen(false); }} />\n </div>\n {open && !disabled && (\n <div className=\"agn-color__pop\" role=\"dialog\" aria-label={L.swatches}>\n {/* biome-ignore lint/a11y/useSemanticElements: swatch grid listbox: options are colour cells, which a native <select> cannot draw */}\n <div className=\"agn-color__grid\" role=\"listbox\" aria-label={L.swatches}>\n {list.map((s) => { const hex = toHex(s.value, ref.current); const on = hex === value; return /* biome-ignore lint/a11y/useSemanticElements: a swatch cell is a button with role=option so it stays focusable and clickable; <option> cannot be drawn as a colour cell */ <button key={s.value} type=\"button\" role=\"option\" aria-selected={on} aria-label={s.label} title={s.label} className={cx('agn-color__cell', on && 'agn-color__cell--on')} style={{ background: s.value }} onClick={() => { onChange && onChange(hex); setOpen(false); }}>{on && <Icon name=\"check\" size={12} />}</button>; })}\n </div>\n <div className=\"agn-color__foot\">\n <button type=\"button\" className=\"agn-btn agn-btn--ghost agn-btn--sm\" onClick={() => nativeRef.current && nativeRef.current.click()}><Icon name=\"pipette\" size={14} />{L.custom}</button>\n <input ref={nativeRef} type=\"color\" className=\"agn-sr\" tabIndex={-1} value={valid ? value : '#000000'} onChange={(e) => onChange && onChange(e.target.value)} aria-label={L.custom} />\n </div>\n </div>)}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Numeric stepper: − value +. Arrow keys step, Shift steps ×10, typed values clamp on blur.\nconst DEFAULT_LABELS = { decrement: 'Decrease', increment: 'Increase' };\nexport function Counter({ value = 0, onChange, min = Number.NEGATIVE_INFINITY, max = Number.POSITIVE_INFINITY, step = 1, disabled, invalid, size = 'md', suffix, format, labels, label, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [draft, setDraft] = React.useState(null);\n const clamp = (v) => Math.min(max, Math.max(min, v));\n const set = (v) => { if (disabled) return; const n = clamp(Math.round(v / step) * step); onChange && onChange(Number(n.toFixed(6))); };\n const shown = draft != null ? draft : (format ? format(value) : String(value));\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div className={cx('agn-field', 'agn-counter', size !== 'md' && 'agn-field--' + size, invalid && 'agn-field--invalid', disabled && 'agn-field--disabled', className)} style={style} role=\"group\" aria-label={label} {...rest}>\n <button type=\"button\" className=\"agn-counter__btn\" aria-label={L.decrement} disabled={disabled || value <= min} tabIndex={-1} onClick={() => set(value - step)}><Icon name=\"minus\" size={14} /></button>\n <input className=\"agn-field__input agn-counter__input agn-num\" role=\"spinbutton\" inputMode=\"decimal\" value={shown} disabled={disabled} aria-invalid={invalid || undefined} aria-valuemin={Number.isFinite(min) ? min : undefined} aria-valuemax={Number.isFinite(max) ? max : undefined} aria-valuenow={value} aria-valuetext={format ? format(value) : undefined} aria-label={label}\n onChange={(e) => setDraft(e.target.value)} onBlur={() => { if (draft != null) { const n = Number.parseFloat(draft.replace(',', '.')); if (!Number.isNaN(n)) set(n); setDraft(null); } }}\n onKeyDown={(e) => { const k = e.shiftKey ? step * 10 : step; if (e.key === 'ArrowUp') { e.preventDefault(); set(value + k); } if (e.key === 'ArrowDown') { e.preventDefault(); set(value - k); } if (e.key === 'Enter') e.currentTarget.blur(); }} />\n {suffix && <span className=\"agn-field__affix\">{suffix}</span>}\n <button type=\"button\" className=\"agn-counter__btn\" aria-label={L.increment} disabled={disabled || value >= max} tabIndex={-1} onClick={() => set(value + step)}><Icon name=\"plus\" size={14} /></button>\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\n// Two-list transfer for an ordered multi-selection (columns, fields, permissions). Keyboard: arrows move the highlight, Space toggles, Enter and →/← transfer, Alt+↑/↓ reorder.\nconst DEFAULT_LABELS = { available: 'Available', selected: 'Selected', add: 'Add to selected', remove: 'Remove from selected', up: 'Move up', down: 'Move down', empty: 'Nothing here', count: '{n} selected' };\nexport function DuelingPicklist({ options = [], value = [], onChange, labels, label, disabled, height = 200, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const norm = options.map((o) => typeof o === 'string' ? { label: o, value: o } : o);\n const byVal = (v) => norm.find((o) => o.value === v) || { label: String(v), value: v };\n const avail = norm.filter((o) => !value.includes(o.value));\n const sel = value.map(byVal);\n const [hl, setHl] = React.useState({ avail: [], sel: [] });\n const [focus, setFocus] = React.useState({ avail: 0, sel: 0 });\n const set = (next) => { onChange && onChange(next); };\n const add = (vals) => { const v = vals.length ? vals : hl.avail; if (!v.length) return; set([...value, ...v]); setHl({ ...hl, avail: [] }); };\n const remove = (vals) => { const v = vals.length ? vals : hl.sel; if (!v.length) return; set(value.filter((x) => !v.includes(x))); setHl({ ...hl, sel: [] }); };\n const move = (dir) => { if (!hl.sel.length) return; const next = value.slice(); const idx = next.map((v, i) => hl.sel.includes(v) ? i : -1).filter((i) => i >= 0); if (dir < 0 && idx[0] === 0) return; if (dir > 0 && idx[idx.length - 1] === next.length - 1) return; (dir < 0 ? idx : idx.slice().reverse()).forEach((i) => { const t = next[i]; next[i] = next[i + dir]; next[i + dir] = t; }); set(next); };\n const List = ({ k, items, title, onEnter }) => {\n const ids = items.map((o) => o.value);\n const toggle = (v, e) => { const cur = hl[k]; const next = e && (e.metaKey || e.ctrlKey) ? (cur.includes(v) ? cur.filter((x) => x !== v) : [...cur, v]) : e && e.shiftKey && cur.length ? (() => { const a = ids.indexOf(cur[cur.length - 1]), b = ids.indexOf(v); return ids.slice(Math.min(a, b), Math.max(a, b) + 1); })() : [v]; setHl({ ...hl, [k]: next }); setFocus({ ...focus, [k]: ids.indexOf(v) }); };\n const onKeyDown = (e) => {\n const i = focus[k]; let n = i;\n if (e.key === 'ArrowDown') { e.preventDefault(); n = Math.min(i + 1, ids.length - 1); if (e.altKey && k === 'sel') { move(1); return; } }\n else if (e.key === 'ArrowUp') { e.preventDefault(); n = Math.max(i - 1, 0); if (e.altKey && k === 'sel') { move(-1); return; } }\n else if (e.key === 'Home') { e.preventDefault(); n = 0; } else if (e.key === 'End') { e.preventDefault(); n = ids.length - 1; }\n else if (e.key === ' ') { e.preventDefault(); toggle(ids[i], { ctrlKey: true }); return; }\n else if (e.key === 'Enter' || (k === 'avail' && e.key === 'ArrowRight') || (k === 'sel' && e.key === 'ArrowLeft')) { e.preventDefault(); onEnter(); return; }\n else if (e.key === 'a' && (e.metaKey || e.ctrlKey)) { e.preventDefault(); setHl({ ...hl, [k]: ids }); return; }\n else return;\n setFocus({ ...focus, [k]: n }); if (!e.shiftKey) setHl({ ...hl, [k]: ids[n] != null ? [ids[n]] : [] }); else setHl({ ...hl, [k]: Array.from(new Set([...hl[k], ids[n]])) });\n setTimeout(() => { const el = e.currentTarget && e.currentTarget.querySelector('[tabindex=\"0\"]'); el && el.focus(); }, 0);\n };\n return (\n <div className=\"agn-dpl__col\">\n <div className=\"agn-dpl__title\" id={'dpl-' + k}>{title}{k === 'sel' && <span className=\"agn-dpl__count agn-num\">{L.count.replace('{n}', items.length)}</span>}</div>\n {/* biome-ignore lint/a11y/useSemanticElements: custom listbox with rich option content (icons, meta, check); a native <select> cannot render it */}\n <div className=\"agn-dpl__list\" role=\"listbox\" aria-multiselectable=\"true\" aria-labelledby={'dpl-' + k} aria-disabled={disabled || undefined} style={{ height }} onKeyDown={disabled ? undefined : onKeyDown}>\n {items.length === 0 && <div className=\"agn-dpl__empty\">{L.empty}</div>}\n {items.map((o, i) => (\n // biome-ignore lint/a11y/useSemanticElements: custom listbox with rich option content (icons, meta, check); a native <select> cannot render it\n // biome-ignore lint/a11y/useKeyWithClickEvents: the listbox onKeyDown above handles arrows, Space (toggle) and Enter (transfer) for the focused option\n <div key={o.value} role=\"option\" aria-selected={hl[k].includes(o.value)} tabIndex={i === Math.min(focus[k], items.length - 1) ? 0 : -1} className={cx('agn-dpl__item', 'agn-focus-inset', hl[k].includes(o.value) && 'agn-dpl__item--on')} onClick={(e) => !disabled && toggle(o.value, e)} onDoubleClick={() => !disabled && (k === 'avail' ? add([o.value]) : remove([o.value]))}>{o.icon && <Icon name={o.icon} size={14} />}<span>{o.label}</span>{o.meta && <span className=\"agn-dpl__meta\">{o.meta}</span>}</div>\n ))}\n </div>\n </div>);\n };\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div className={cx('agn-dpl', disabled && 'agn-dpl--disabled', className)} role=\"group\" aria-label={label} {...rest}>\n <List k=\"avail\" items={avail} title={L.available} onEnter={() => add([])} />\n <div className=\"agn-dpl__moves\">\n <ButtonIcon icon=\"chevron-right\" label={L.add} variant=\"neutral\" size=\"sm\" disabled={disabled || !hl.avail.length} onClick={() => add([])} />\n <ButtonIcon icon=\"chevron-left\" label={L.remove} variant=\"neutral\" size=\"sm\" disabled={disabled || !hl.sel.length} onClick={() => remove([])} />\n </div>\n <List k=\"sel\" items={sel} title={L.selected} onEnter={() => remove([])} />\n <div className=\"agn-dpl__moves\">\n <ButtonIcon icon=\"chevron-up\" label={L.up} variant=\"neutral\" size=\"sm\" disabled={disabled || !hl.sel.length} onClick={() => move(-1)} />\n <ButtonIcon icon=\"chevron-down\" label={L.down} variant=\"neutral\" size=\"sm\" disabled={disabled || !hl.sel.length} onClick={() => move(1)} />\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button, ButtonIcon } from '../actions/Button.jsx';\n// Upload control: a drop zone (or a one-line row) over a hidden file input, with a list of chosen files. Enforces maxSize (10 MB) and maxFiles (5) and reports rejections.\nexport const fmtSize = (bytes, locale = 'en') => { if (bytes == null) return ''; const u = ['B', 'KB', 'MB', 'GB']; let i = 0, n = bytes; while (n >= 1024 && i < u.length - 1) { n /= 1024; i++; } return n.toLocaleString(/^tr/i.test(locale) ? 'tr-TR' : 'en-GB', { maximumFractionDigits: i === 0 ? 0 : 1 }) + ' ' + u[i]; };\nconst DEFAULT_LABELS = { drop: 'Drop files here or', browse: 'Browse', hint: 'Up to {files} files, {size} each', remove: 'Remove', tooLarge: '{name} is larger than {size}', tooMany: 'Only {files} files can be added', wrongType: '{name} is not an accepted type', uploading: 'Uploading…', done: 'Uploaded', failed: 'Failed' };\nexport function FileSelector({ onFiles, onReject, accept, multiple = true, maxSize = 10 * 1024 * 1024, maxFiles = 5, variant = 'dropzone', files = [], onRemove, disabled, invalid, locale = 'en', labels, label, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [over, setOver] = React.useState(false);\n const [errors, setErrors] = React.useState([]);\n const inputRef = React.useRef(null);\n const id = React.useMemo(() => uid('file'), []);\n const sizeText = fmtSize(maxSize, locale);\n const filesText = multiple ? maxFiles : 1;\n const take = (list) => {\n const arr = Array.from(list || []); const ok = [], bad = [];\n const room = multiple ? Math.max(0, maxFiles - files.length) : 1;\n arr.forEach((f, i) => { if (i >= room) bad.push(L.tooMany.replace('{files}', maxFiles)); else if (f.size > maxSize) bad.push(L.tooLarge.replace('{name}', f.name).replace('{size}', sizeText)); else if (accept && !accept.split(',').some((a) => { a = a.trim(); return a.startsWith('.') ? f.name.toLowerCase().endsWith(a.toLowerCase()) : a.endsWith('/*') ? f.type.startsWith(a.slice(0, -1)) : f.type === a; })) bad.push(L.wrongType.replace('{name}', f.name)); else ok.push(f); });\n const uniq = Array.from(new Set(bad)); setErrors(uniq); if (uniq.length && onReject) onReject(uniq);\n if (ok.length && onFiles) onFiles(ok);\n if (inputRef.current) inputRef.current.value = '';\n };\n const input = <input ref={inputRef} id={id} type=\"file\" className=\"agn-sr\" accept={accept} multiple={multiple} disabled={disabled} onChange={(e) => take(e.target.files)} />;\n const list = files.length > 0 && (\n <ul className=\"agn-file__list\">\n {files.map((f, i) => (\n <li key={f.id || f.name + i} className={cx('agn-file__item', f.status === 'failed' && 'agn-file__item--failed')}>\n <Icon name={f.status === 'failed' ? 'circle-alert' : f.status === 'done' ? 'circle-check' : 'file'} size={16} className={cx('agn-file__icon', f.status === 'done' && 'agn-file__icon--ok', f.status === 'failed' && 'agn-file__icon--bad')} />\n <span className=\"agn-file__name\">{f.name}</span>\n <span className=\"agn-file__meta agn-num\">{f.status === 'uploading' ? (f.progress != null ? f.progress + '%' : L.uploading) : f.status === 'failed' ? (f.error || L.failed) : fmtSize(f.size, locale)}</span>\n {f.status === 'uploading' && <span className=\"agn-file__bar\" aria-hidden=\"true\"><span style={{ width: (f.progress || 0) + '%' }} /></span>}\n {onRemove && <ButtonIcon icon=\"x\" label={L.remove + ': ' + f.name} size=\"xs\" onClick={() => onRemove(i, f)} disabled={disabled} />}\n </li>))}\n </ul>);\n const errs = errors.length > 0 && <div className=\"agn-file__errors\" role=\"alert\">{errors.map((e) => <div key={e} className=\"agn-form-el__error\"><Icon name=\"circle-alert\" size={14} />{e}</div>)}</div>;\n if (variant === 'row') {\n return (\n <div className={cx('agn-file', 'agn-file--row', disabled && 'agn-file--disabled', className)} {...rest}>\n <div className={cx('agn-field', invalid && 'agn-field--invalid', disabled && 'agn-field--disabled')}>\n <Icon name=\"paperclip\" size={16} className=\"agn-field__icon\" />\n <span className=\"agn-file__row-text\">{label || L.hint.replace('{files}', filesText).replace('{size}', sizeText)}</span>\n <Button as=\"label\" htmlFor={id} size=\"xs\" variant=\"neutral\" className=\"agn-file__browse\" disabled={disabled}>{L.browse}</Button>\n </div>\n {input}{list}{errs}\n </div>);\n }\n return (\n <div className={cx('agn-file', disabled && 'agn-file--disabled', className)} {...rest}>\n {/* biome-ignore lint/a11y/noStaticElementInteractions: drag-and-drop target only; the Browse label and file input inside are the keyboard path */}\n <div className={cx('agn-file__zone', over && 'agn-file__zone--over', invalid && 'agn-file__zone--invalid')} onDragOver={(e) => { e.preventDefault(); if (!disabled) setOver(true); }} onDragLeave={() => setOver(false)} onDrop={(e) => { e.preventDefault(); setOver(false); if (!disabled) take(e.dataTransfer.files); }}>\n <Icon name=\"upload\" size={20} className=\"agn-file__zone-icon\" />\n <div className=\"agn-file__zone-text\">{label || L.drop} <label htmlFor={id} className={cx('agn-btn', 'agn-btn--link', 'agn-file__browse')}>{L.browse}</label></div>\n <div className=\"agn-file__hint\">{L.hint.replace('{files}', filesText).replace('{size}', sizeText)}{accept && <span className=\"agn-file__accept\">{accept.split(',').map((a) => a.trim()).join(', ')}</span>}</div>\n {input}\n </div>\n {list}{errs}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { ButtonIcon } from '../actions/Button.jsx';\n// contentEditable editor with a small toolbar: bold, italic, bulleted list, link, inline code. Emits HTML.\nconst DEFAULT_LABELS = { bold: 'Bold', italic: 'Italic', list: 'Bulleted list', link: 'Link', code: 'Code', linkPrompt: 'Link address', toolbar: 'Formatting' };\nexport function RichTextEditor({ value = '', onChange, placeholder, disabled, invalid, minHeight = 120, labels, className, style, id, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, 'aria-describedby': ariaDescribedby, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const ref = React.useRef(null);\n const [state, setState] = React.useState({});\n React.useEffect(() => { if (ref.current && ref.current.innerHTML !== value) ref.current.innerHTML = value || ''; }, [value]);\n const emit = () => { onChange && ref.current && onChange(ref.current.innerHTML); refresh(); };\n const refresh = () => { try { setState({ bold: document.queryCommandState('bold'), italic: document.queryCommandState('italic'), list: document.queryCommandState('insertUnorderedList') }); } catch { /* not supported */ } };\n const exec = (cmd, arg) => { if (disabled) return; ref.current && ref.current.focus(); try { document.execCommand(cmd, false, arg); } catch { /* no-op */ } emit(); };\n const code = () => { const sel = window.getSelection(); if (!sel || !sel.rangeCount) return; const r = sel.getRangeAt(0); const parent = r.commonAncestorContainer.parentElement; if (parent && parent.tagName === 'CODE') { const t = document.createTextNode(parent.textContent); parent.replaceWith(t); } else { const c = document.createElement('code'); c.textContent = r.toString() || 'code'; r.deleteContents(); r.insertNode(c); } emit(); };\n const link = () => { const sel = window.getSelection(); const existing = sel && sel.anchorNode && sel.anchorNode.parentElement && sel.anchorNode.parentElement.closest('a'); const url = window.prompt(L.linkPrompt, existing ? existing.href : 'https://'); if (url == null) return; if (!url) { exec('unlink'); return; } exec('createLink', url); };\n const onKeyDown = (e) => { if ((e.metaKey || e.ctrlKey) && !e.shiftKey) { if (e.key === 'b') { e.preventDefault(); exec('bold'); } else if (e.key === 'i') { e.preventDefault(); exec('italic'); } else if (e.key === 'k') { e.preventDefault(); link(); } else if (e.key === 'e') { e.preventDefault(); code(); } } };\n return (\n <div className={cx('agn-rte', invalid && 'agn-rte--invalid', disabled && 'agn-rte--disabled', className)} style={style} {...rest}>\n <div className=\"agn-rte__toolbar\" role=\"toolbar\" aria-label={L.toolbar}>\n <ButtonIcon icon=\"bold\" label={L.bold} size=\"sm\" aria-pressed={!!state.bold} className={cx(state.bold && 'agn-btn--selected')} onMouseDown={(e) => e.preventDefault()} onClick={() => exec('bold')} disabled={disabled} />\n <ButtonIcon icon=\"italic\" label={L.italic} size=\"sm\" aria-pressed={!!state.italic} className={cx(state.italic && 'agn-btn--selected')} onMouseDown={(e) => e.preventDefault()} onClick={() => exec('italic')} disabled={disabled} />\n <span className=\"agn-rte__sep\" />\n <ButtonIcon icon=\"list\" label={L.list} size=\"sm\" aria-pressed={!!state.list} className={cx(state.list && 'agn-btn--selected')} onMouseDown={(e) => e.preventDefault()} onClick={() => exec('insertUnorderedList')} disabled={disabled} />\n <ButtonIcon icon=\"link\" label={L.link} size=\"sm\" onMouseDown={(e) => e.preventDefault()} onClick={link} disabled={disabled} />\n <ButtonIcon icon=\"code\" label={L.code} size=\"sm\" onMouseDown={(e) => e.preventDefault()} onClick={code} disabled={disabled} />\n </div>\n {/* biome-ignore lint/a11y/useFocusableInteractive: contentEditable makes the textbox focusable; the rule does not count contentEditable */}\n <div ref={ref} className=\"agn-rte__body\" contentEditable={!disabled} suppressContentEditableWarning role=\"textbox\" id={id} aria-label={ariaLabel} aria-labelledby={ariaLabelledby} aria-describedby={ariaDescribedby} aria-multiline=\"true\" aria-invalid={invalid || undefined} data-placeholder={placeholder} style={{ minHeight }} onInput={emit} onKeyUp={refresh} onMouseUp={refresh} onKeyDown={onKeyDown} />\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\n// Large selectable tiles with icon, title and description: template, plan, channel or product choice. Native radios/checkboxes underneath.\nexport function VisualPicker({ options = [], value, onChange, multiple, variant = 'tile', name: nameProp, size = 'md', label, columns, className, ...rest }) {\n const name = React.useMemo(() => nameProp || uid('vp'), [nameProp]);\n const sel = multiple ? (Array.isArray(value) ? value : []) : value;\n const isOn = (v) => multiple ? sel.includes(v) : sel === v;\n const toggle = (v) => { if (!onChange) return; if (multiple) onChange(isOn(v) ? sel.filter((x) => x !== v) : [...sel, v]); else onChange(v); };\n return (\n // biome-ignore lint/a11y/useAriaPropsSupportedByRole: the role is radiogroup or group (by multiple), both of which take aria-label; the rule cannot see the conditional role\n <div className={cx('agn-vp', 'agn-vp--' + variant, size === 'sm' && 'agn-vp--sm', className)} role={multiple ? 'group' : 'radiogroup'} aria-label={label} style={columns ? { gridTemplateColumns: 'repeat(' + columns + ', minmax(0, 1fr))' } : undefined} {...rest}>\n {options.map((o) => { const id = name + '-' + o.value; const on = isOn(o.value); return (\n <label key={o.value} htmlFor={id} className={cx('agn-vp__tile', on && 'agn-vp__tile--on', o.disabled && 'agn-vp__tile--disabled')}>\n <input id={id} type={multiple ? 'checkbox' : 'radio'} name={name} value={o.value} checked={on} disabled={o.disabled} className=\"agn-sr agn-vp__input\" onChange={() => toggle(o.value)} />\n <span className=\"agn-vp__mark\" aria-hidden=\"true\">{on && <Icon name=\"check\" size={12} />}</span>\n {(o.icon || o.product) && <span className=\"agn-vp__icon\">{o.product ? <ProductIcon product={o.product} size={size === 'sm' ? 20 : 24} /> : <Icon name={o.icon} size={size === 'sm' ? 20 : 24} />}</span>}\n <span className=\"agn-vp__text\">\n <span className=\"agn-vp__title\">{o.label}</span>\n {o.description && <span className=\"agn-vp__desc\">{o.description}</span>}\n {o.meta && <span className=\"agn-vp__meta\">{o.meta}</span>}\n </span>\n </label>); })}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Button, ButtonIcon } from '../actions/Button.jsx';\nimport { Select } from '../forms/Select.jsx';\nimport { Input } from '../forms/Input.jsx';\nimport { SegmentedControl } from '../forms/SegmentedControl.jsx';\n// Condition builder: numbered rows of field · operator · value, joined by AND or OR, with optional nested groups. Used for routing rules and QA checks.\nconst DEFAULT_OPS = [{ label: 'equals', value: 'eq' }, { label: 'does not equal', value: 'neq' }, { label: 'contains', value: 'contains' }, { label: 'is greater than', value: 'gt' }, { label: 'is less than', value: 'lt' }, { label: 'is empty', value: 'empty' }, { label: 'is not empty', value: 'notEmpty' }];\nconst DEFAULT_LABELS = { all: 'All conditions', any: 'Any condition', and: 'AND', or: 'OR', add: 'Add condition', addGroup: 'Add group', remove: 'Remove condition', removeGroup: 'Remove group', field: 'Field', operator: 'Operator', value: 'Value', fieldPlaceholder: 'Choose a field', valuePlaceholder: 'Value', logic: 'Match' };\nconst norm = (list) => list.map((o) => typeof o === 'string' ? { label: o, value: o } : o);\nconst NO_VALUE = ['empty', 'notEmpty'];\nfunction Rows({ rows, onChange, fields, operators, L, join, startIndex }) {\n const update = (i, patch) => onChange(rows.map((r, j) => j === i ? { ...r, ...patch } : r));\n const remove = (i) => onChange(rows.filter((_, j) => j !== i));\n const field = (r) => fields.find((f) => f.value === r.field);\n return rows.map((r, i) => (\n <React.Fragment key={i}>\n {i > 0 && <div className=\"agn-expr__joiner\" aria-hidden=\"true\"><span className=\"agn-expr__join\">{join}</span></div>}\n <div className=\"agn-expr__row\">\n <span className=\"agn-expr__num agn-num\">{startIndex + i}</span>\n <Select className=\"agn-expr__field\" aria-label={L.field} size=\"sm\" placeholder={L.fieldPlaceholder} value={r.field || ''} options={fields.map((f) => ({ label: f.label, value: f.value }))} onChange={(e) => update(i, { field: e.target.value })} />\n <Select className=\"agn-expr__op\" aria-label={L.operator} size=\"sm\" value={r.op || operators[0].value} options={(field(r) && field(r).operators) ? norm(field(r).operators) : operators} onChange={(e) => update(i, { op: e.target.value })} />\n {NO_VALUE.includes(r.op) ? <span className=\"agn-expr__novalue\" /> : field(r) && field(r).options ? <Select className=\"agn-expr__value\" aria-label={L.value} size=\"sm\" value={r.value || ''} placeholder={L.valuePlaceholder} options={norm(field(r).options)} onChange={(e) => update(i, { value: e.target.value })} /> : <Input className=\"agn-expr__value\" aria-label={L.value} size=\"sm\" value={r.value || ''} placeholder={L.valuePlaceholder} type={field(r) && field(r).type === 'number' ? 'text' : 'text'} inputMode={field(r) && field(r).type === 'number' ? 'decimal' : undefined} onChange={(e) => update(i, { value: e.target.value })} />}\n <ButtonIcon icon=\"trash-2\" label={L.remove + ' ' + (startIndex + i)} size=\"sm\" onClick={() => remove(i)} />\n </div>\n </React.Fragment>\n ));\n}\nexport function Expression({ title, logic = 'AND', onLogicChange, rows = [], onChange, groups, onGroupsChange, fields = [], operators, onAdd, onRemove, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const F = norm(fields); const O = norm(operators || DEFAULT_OPS);\n const add = () => { onAdd ? onAdd() : onChange && onChange([...rows, { field: '', op: O[0].value, value: '' }]); };\n const addGroup = () => onGroupsChange && onGroupsChange([...(groups || []), { logic: logic === 'AND' ? 'OR' : 'AND', rows: [{ field: '', op: O[0].value, value: '' }] }]);\n const word = logic === 'AND' ? L.and : L.or;\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div className={cx('agn-expr', className)} role=\"group\" aria-label={title} {...rest}>\n <div className=\"agn-expr__head\">\n {title && <span className=\"agn-expr__title\">{title}</span>}\n <span className=\"agn-expr__logic-label\">{L.logic}</span>\n <SegmentedControl size=\"sm\" label={L.logic} value={logic} onChange={(v) => onLogicChange && onLogicChange(v)} options={[{ label: L.all, value: 'AND' }, { label: L.any, value: 'OR' }]} />\n </div>\n <div className=\"agn-expr__rows\">\n <Rows rows={rows} onChange={(r) => onChange && onChange(r)} fields={F} operators={O} L={L} join={word} startIndex={1} />\n {(groups || []).map((g, gi) => { const start = rows.length + 1 + (groups.slice(0, gi).reduce((a, x) => a + x.rows.length, 0)); return (\n <div key={gi} className=\"agn-expr__group\">\n <div className=\"agn-expr__group-head\">\n <span className=\"agn-expr__join\">{word}</span>\n <SegmentedControl size=\"sm\" label={L.logic} value={g.logic} onChange={(v) => onGroupsChange && onGroupsChange(groups.map((x, j) => j === gi ? { ...x, logic: v } : x))} options={[{ label: L.all, value: 'AND' }, { label: L.any, value: 'OR' }]} />\n <ButtonIcon icon=\"x\" label={L.removeGroup} size=\"sm\" onClick={() => onGroupsChange && onGroupsChange(groups.filter((_, j) => j !== gi))} />\n </div>\n <div className=\"agn-expr__rows\">\n <Rows rows={g.rows} onChange={(r) => onGroupsChange && onGroupsChange(groups.map((x, j) => j === gi ? { ...x, rows: r } : x))} fields={F} operators={O} L={L} join={g.logic === 'AND' ? L.and : L.or} startIndex={start} />\n </div>\n <Button variant=\"ghost\" size=\"xs\" icon=\"plus\" onClick={() => onGroupsChange && onGroupsChange(groups.map((x, j) => j === gi ? { ...x, rows: [...x.rows, { field: '', op: O[0].value, value: '' }] } : x))}>{L.add}</Button>\n </div>); })}\n </div>\n <div className=\"agn-expr__foot\">\n <Button variant=\"ghost\" size=\"sm\" icon=\"plus\" onClick={add}>{L.add}</Button>\n {onGroupsChange && <Button variant=\"ghost\" size=\"sm\" icon=\"folder-plus\" onClick={addGroup}>{L.addGroup}</Button>}\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\n// Sticky Save/Cancel bar for long forms, with an unsaved-changes note and an optional extra slot.\nconst DEFAULT_LABELS = { save: 'Save changes', cancel: 'Cancel', changes: '{n} unsaved changes', change: '1 unsaved change', saved: 'All changes saved' };\nexport function DockedFormFooter({ onSave, onCancel, changes, saving, disabled, message, extra, align = 'right', fixed, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const note = message != null ? message : changes == null ? null : changes === 0 ? L.saved : changes === 1 ? L.change : L.changes.replace('{n}', changes);\n const dirty = changes == null ? true : changes > 0;\n return (\n <section className={cx('agn-docked', 'agn-docked--' + align, fixed && 'agn-docked--fixed', className)} aria-live=\"polite\" {...rest}>\n {note != null && <span className={cx('agn-docked__note', !dirty && 'agn-docked__note--saved')}>{dirty ? <Icon name=\"circle-dot\" size={14} /> : <Icon name=\"circle-check\" size={14} />}{note}</span>}\n {extra && <span className=\"agn-docked__extra\">{extra}</span>}\n <span className=\"agn-docked__actions\">\n <Button variant=\"neutral\" onClick={onCancel} disabled={saving || disabled}>{L.cancel}</Button>\n <Button variant=\"primary\" onClick={onSave} loading={saving} disabled={disabled || !dirty}>{L.save}</Button>\n </span>\n </section>\n );\n}\n","import React, { useState, useMemo, useRef, useEffect, useLayoutEffect } from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\nimport { useElementWidth } from '../layout/responsive.js';\n// Dense record grid: sortable columns, selection with select-all, inline cell edit, row actions, sticky header, states in the order error → loading → empty → rows. Rows are 32px compact, 44px comfortable.\n// Narrow widths: `stickyFirst` pins the first data column while the table scrolls sideways; column `priority` (1 = always) hides columns from the highest number down until the rest fit the table's own measured width, and each row then gets a toggle that shows the hidden values in a detail row.\nconst DEFAULT_LABELS = { empty: 'Nothing here yet', emptyHint: '', loading: 'Loading…', error: 'Could not load the data', errorHint: 'Check your connection and try again.', retry: 'Try again', selectAll: 'Select all rows', selectRow: 'Select row', actions: 'Actions', sortedAsc: 'sorted ascending', sortedDesc: 'sorted descending', edit: 'Edit', expandRow: 'Show hidden columns', collapseRow: 'Hide hidden columns' };\nconst DEFAULT_MIN = 120; // px a column needs when it declares neither minWidth nor width\nconst EXPANDER = 24; // the row-detail toggle added to the first visible cell once a column is hidden\nconst NO_REF = { current: null };\nconst pxOf = (v) => (typeof v === 'number' ? v : typeof v === 'string' && /^\\s*\\d+(\\.\\d+)?(px)?\\s*$/.test(v) ? parseFloat(v) : null);\nconst colMin = (c) => { const m = pxOf(c.minWidth); if (m != null) return m; const w = pxOf(c.width); return w != null ? w : DEFAULT_MIN; };\n// Keys of the columns to hide so the rest fit `avail` px: highest priority number first, rightmost first within a priority; priority-less columns count as 1 and never hide.\nfunction columnsToHide(columns, avail) {\n let sum = columns.reduce((a, c) => a + colMin(c), 0);\n const order = columns.map((c, i) => ({ c, i, p: c.priority == null ? 1 : c.priority })).filter((x) => x.p > 1).sort((a, b) => b.p - a.p || b.i - a.i);\n const hidden = [];\n for (const x of order) {\n if (sum + (hidden.length ? EXPANDER : 0) <= avail) break;\n hidden.push(x.c.key);\n sum -= colMin(x.c);\n }\n return hidden;\n}\nconst cmp = (a, b) => (a == null ? 1 : b == null ? -1 : typeof a === 'number' && typeof b === 'number' ? a - b : String(a).localeCompare(String(b), undefined, { numeric: true, sensitivity: 'base' }));\nexport function DataTable({ columns = [], rows = [], rowKey = 'id', selectable, selected, defaultSelected = [], onSelectChange, sort, defaultSort = null, onSortChange, onRowClick, rowActions, stickyHeader = true, maxHeight, state, labels, onRetry, pagination, footer, caption, striped, bare, onCellEdit, skeletonRows = 5, rowClassName, activeKey, stickyFirst, onHiddenColumnsChange, className, style, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [localSort, setLocalSort] = useState(defaultSort);\n const s = sort !== undefined ? sort : localSort;\n const [localSel, setLocalSel] = useState(defaultSelected);\n const sel = selected !== undefined ? selected : localSel;\n const [editing, setEditing] = useState(null); // { key, col }\n const [focusIdx, setFocusIdx] = useState(-1);\n const bodyRef = useRef(null);\n const rootRef = useRef(null);\n const scrollRef = useRef(null);\n const id = useMemo(() => uid('agn-table'), []);\n // Column priority: measure the table's own width (never the window) and drop columns until the rest fit.\n const prioritized = columns.some((c) => c.priority != null);\n const width = useElementWidth(prioritized ? rootRef : NO_REF);\n const [reserved, setReserved] = useState(0); // selection + actions columns, read from the header\n useLayoutEffect(() => {\n const el = rootRef.current;\n if (!el) return;\n const chk = el.querySelector('.agn-table__th--check');\n if (chk) el.style.setProperty('--agn-table-check-w', chk.offsetWidth + 'px');\n if (!prioritized) return;\n const act = el.querySelector('.agn-table__th--actions');\n const n = (chk ? chk.offsetWidth : 0) + (act ? act.offsetWidth : 0);\n setReserved((p) => (p === n ? p : n));\n });\n const hiddenKeys = useMemo(() => (prioritized && width != null ? columnsToHide(columns, width - 2 - reserved) : []), [prioritized, width, reserved, columns]);\n const visibleColumns = hiddenKeys.length ? columns.filter((c) => !hiddenKeys.includes(c.key)) : columns;\n const hiddenColumns = hiddenKeys.length ? columns.filter((c) => hiddenKeys.includes(c.key)) : [];\n const hiddenSig = hiddenKeys.join('\\u0000');\n const lastSig = useRef('');\n const hiddenCb = useRef(onHiddenColumnsChange);\n hiddenCb.current = onHiddenColumnsChange;\n useEffect(() => {\n if (hiddenSig === lastSig.current) return;\n lastSig.current = hiddenSig;\n if (hiddenCb.current) hiddenCb.current(hiddenSig ? hiddenSig.split('\\u0000') : []);\n }, [hiddenSig]);\n const [expanded, setExpanded] = useState([]);\n const toggleExpanded = (k, open) => setExpanded((p) => { const has = p.includes(k); const want = open == null ? !has : open; return want === has ? p : want ? [...p, k] : p.filter((x) => x !== k); });\n // stickyFirst: the hairline shadow on the pinned column shows only while the table is scrolled sideways.\n useEffect(() => {\n const el = scrollRef.current;\n if (!stickyFirst || !el) return undefined;\n const on = () => el.classList.toggle('agn-table__scroll--scrolled', el.scrollLeft > 0);\n on();\n el.addEventListener('scroll', on, { passive: true });\n return () => { el.removeEventListener('scroll', on); el.classList.remove('agn-table__scroll--scrolled'); };\n }, [stickyFirst]);\n const stickyKey = stickyFirst && visibleColumns.length ? visibleColumns[0].key : null;\n const keyOf = (r, i) => (typeof rowKey === 'function' ? rowKey(r, i) : r[rowKey] != null ? r[rowKey] : i);\n const sorted = useMemo(() => {\n if (!s || !s.key) return rows;\n const col = columns.find((c) => c.key === s.key);\n const get = (r) => (col && col.sortValue ? col.sortValue(r) : r[s.key]);\n return rows.map((r, i) => [r, i]).sort((a, b) => cmp(get(a[0]), get(b[0])) * (s.dir === 'desc' ? -1 : 1) || a[1] - b[1]).map((p) => p[0]);\n }, [rows, s, columns]);\n const setSort = (c) => {\n if (!c.sortable) return;\n const next = s && s.key === c.key ? (s.dir === 'asc' ? { key: c.key, dir: 'desc' } : null) : { key: c.key, dir: 'asc' };\n if (sort === undefined) setLocalSort(next);\n onSortChange && onSortChange(next);\n };\n const setSel = (next) => { if (selected === undefined) setLocalSel(next); onSelectChange && onSelectChange(next); };\n const allKeys = sorted.map(keyOf);\n const allSel = allKeys.length > 0 && allKeys.every((k) => sel.includes(k));\n const someSel = !allSel && allKeys.some((k) => sel.includes(k));\n const toggleAll = () => setSel(allSel ? sel.filter((k) => !allKeys.includes(k)) : Array.from(new Set([...sel, ...allKeys])));\n const toggleOne = (k) => setSel(sel.includes(k) ? sel.filter((x) => x !== k) : [...sel, k]);\n const headRef = useRef(null);\n useEffect(() => { if (headRef.current) headRef.current.indeterminate = someSel; }, [someSel]);\n const st = state || (rows.length === 0 ? 'empty' : 'ready');\n const colCount = visibleColumns.length + (selectable ? 1 : 0) + (rowActions ? 1 : 0);\n const focusRow = (i) => {\n const n = Math.max(0, Math.min(sorted.length - 1, i));\n setFocusIdx(n);\n const el = bodyRef.current && bodyRef.current.querySelector('[data-row-index=\"' + n + '\"]');\n if (el) el.focus();\n };\n const onRowKey = (e, r, i) => {\n if (editing) return;\n if (e.target !== e.currentTarget && /^(INPUT|BUTTON|A|SELECT|TEXTAREA)$/.test(e.target.tagName)) return;\n switch (e.key) {\n case 'ArrowDown': e.preventDefault(); focusRow(i + 1); break;\n case 'ArrowUp': e.preventDefault(); focusRow(i - 1); break;\n case 'Home': e.preventDefault(); focusRow(0); break;\n case 'End': e.preventDefault(); focusRow(sorted.length - 1); break;\n case ' ': if (selectable) { e.preventDefault(); toggleOne(keyOf(r, i)); } break;\n case 'Enter': if (onRowClick) { e.preventDefault(); onRowClick(r, i); } break;\n case 'ArrowRight': if (hiddenColumns.length) { e.preventDefault(); toggleExpanded(keyOf(r, i), true); } break;\n case 'ArrowLeft': if (hiddenColumns.length) { e.preventDefault(); toggleExpanded(keyOf(r, i), false); } break;\n case 'F2': { const c = visibleColumns.find((x) => x.editable); if (c && onCellEdit) { e.preventDefault(); setEditing({ key: keyOf(r, i), col: c.key }); } break; }\n default:\n }\n };\n const renderTh = (c) => {\n const active = s && s.key === c.key;\n const inner = <span className=\"agn-table__th-inner\">{c.icon && <Icon name={c.icon} size={12} />}<span>{c.label}</span>{c.sortable && <Icon name={active ? (s.dir === 'asc' ? 'arrow-up' : 'arrow-down') : 'arrow-up-down'} size={12} className={cx('agn-table__sort', active && 'agn-table__sort--active')} />}</span>;\n return (\n <th scope=\"col\" className={cx('agn-table__th', c.key === stickyKey && 'agn-table__th--sticky', c.align && 'agn-table__th--' + c.align, c.sortable && 'agn-table__th--sortable', active && 'agn-table__th--sorted')} style={{ width: c.width, minWidth: c.minWidth }} aria-sort={active ? (s.dir === 'asc' ? 'ascending' : 'descending') : c.sortable ? 'none' : undefined}>\n {c.sortable ? <button type=\"button\" className=\"agn-table__sort-btn agn-focus-inset\" onClick={() => setSort(c)}>{inner}<span className=\"agn-sr\">{active ? ', ' + (s.dir === 'asc' ? l.sortedAsc : l.sortedDesc) : ''}</span></button> : inner}\n </th>\n );\n };\n const cellContent = (c, r, ri) => { const value = r[c.key]; return c.render ? c.render(value, r, ri) : value == null ? <span className=\"agn-table__null\">—</span> : String(value); };\n const renderCell = (c, r, ri, ci) => {\n const k = keyOf(r, ri);\n const isEditing = editing && editing.key === k && editing.col === c.key;\n const value = r[c.key];\n const content = cellContent(c, r, ri);\n const lead = ci === 0 && hiddenColumns.length > 0;\n const open = lead && expanded.includes(k);\n const canEdit = c.editable && onCellEdit;\n const commit = (v) => { if (v !== String(value == null ? '' : value)) onCellEdit(r, c.key, v); setEditing(null); };\n return (\n <td className={cx('agn-table__td', c.key === stickyKey && 'agn-table__td--sticky', c.align && 'agn-table__td--' + c.align, c.mono && 'agn-table__td--mono', c.ellipsis && 'agn-table__td--ellipsis', canEdit && 'agn-table__td--editable', isEditing && 'agn-table__td--editing', c.className)} style={{ width: c.width }} onDoubleClick={canEdit ? () => setEditing({ key: k, col: c.key }) : undefined} title={c.ellipsis && typeof content === 'string' ? content : undefined}>\n {isEditing ? (\n // biome-ignore lint/a11y/noAutofocus: the editor mounts only on the user's double-click or Edit press; moving focus into it is the expected response, not a page-load surprise\n <input className=\"agn-table__input\" autoFocus defaultValue={value == null ? '' : value} aria-label={typeof c.label === 'string' ? c.label : undefined} onBlur={(e) => commit(e.target.value)} onKeyDown={(e) => { if (e.key === 'Enter') { e.preventDefault(); commit(e.target.value); } if (e.key === 'Escape') { e.preventDefault(); setEditing(null); } e.stopPropagation(); }} />\n ) : (\n <>{lead ? <span className=\"agn-table__lead\"><button type=\"button\" className=\"agn-table__expand agn-focus-inset\" aria-expanded={open} aria-controls={open ? id + '-detail-' + ri : undefined} aria-label={open ? l.collapseRow : l.expandRow} onClick={() => toggleExpanded(k)}><Icon name=\"chevron-right\" size={14} className=\"agn-table__expand-icon\" /></button><span className=\"agn-table__lead-content\">{content}</span></span> : content}{canEdit && <button type=\"button\" className=\"agn-table__edit agn-focus-inset\" aria-label={l.edit} onClick={() => setEditing({ key: k, col: c.key })}><Icon name=\"pencil\" size={12} /></button>}</>\n )}\n </td>\n );\n };\n const header = (\n <thead className={cx('agn-table__head', stickyHeader && 'agn-table__head--sticky')}>\n <tr>\n {selectable && <th scope=\"col\" className=\"agn-table__th agn-table__th--check\"><input ref={headRef} type=\"checkbox\" className=\"agn-table__check\" checked={allSel} onChange={toggleAll} aria-label={l.selectAll} disabled={st !== 'ready'} /></th>}\n {visibleColumns.map((c) => <React.Fragment key={c.key}>{renderTh(c)}</React.Fragment>)}\n {rowActions && <th scope=\"col\" className=\"agn-table__th agn-table__th--actions\"><span className=\"agn-sr\">{l.actions}</span></th>}\n </tr>\n </thead>\n );\n let body;\n if (st === 'error') body = <tr><td colSpan={colCount} className=\"agn-table__state agn-table__state--error\"><Icon name=\"triangle-alert\" size={20} /><div className=\"agn-table__state-title\">{l.error}</div>{l.errorHint && <div className=\"agn-table__state-hint\">{l.errorHint}</div>}{onRetry && <Button size=\"sm\" icon=\"refresh-cw\" onClick={onRetry}>{l.retry}</Button>}</td></tr>;\n else if (st === 'loading') body = Array.from({ length: skeletonRows }).map((_, i) => /* biome-ignore lint/a11y/noAriaHiddenOnFocusable: skeleton rows have no tabIndex and no focusable content; the rule treats every tr as focusable */ <tr key={i} className=\"agn-table__row agn-table__row--skeleton\" aria-hidden=\"true\">{selectable && <td className=\"agn-table__td agn-table__td--check\"><span className=\"agn-table__skeleton agn-table__skeleton--box\" /></td>}{visibleColumns.map((c, ci) => <td key={c.key} className={cx('agn-table__td', c.key === stickyKey && 'agn-table__td--sticky')}><span className=\"agn-table__skeleton\" style={{ width: (ci % 3 === 0 ? 70 : ci % 3 === 1 ? 45 : 55) + '%' }} /></td>)}{rowActions && <td className=\"agn-table__td\" />}</tr>);\n else if (st === 'empty') body = <tr><td colSpan={colCount} className=\"agn-table__state agn-table__state--empty\"><Icon name=\"inbox\" size={20} /><div className=\"agn-table__state-title\">{l.empty}</div>{l.emptyHint && <div className=\"agn-table__state-hint\">{l.emptyHint}</div>}</td></tr>;\n else body = sorted.map((r, ri) => {\n const k = keyOf(r, ri);\n const isSel = selectable && sel.includes(k);\n const isActive = activeKey != null && k === activeKey;\n const open = hiddenColumns.length > 0 && expanded.includes(k);\n const row = (\n <tr key={k} data-row-index={ri} tabIndex={ri === (focusIdx < 0 ? 0 : focusIdx) ? 0 : -1} className={cx('agn-table__row', 'agn-focus-inset', isSel && 'agn-table__row--selected', isActive && 'agn-table__row--active', onRowClick && 'agn-table__row--clickable', rowClassName && rowClassName(r, ri))} aria-selected={selectable ? isSel : undefined} aria-current={isActive ? 'true' : undefined} onKeyDown={(e) => onRowKey(e, r, ri)} onFocus={() => setFocusIdx(ri)} onClick={onRowClick ? (e) => { if (!/^(INPUT|BUTTON|A|SELECT|TEXTAREA)$/.test(e.target.tagName) && !e.target.closest('button,a,input,select,textarea')) onRowClick(r, ri); } : undefined}>\n {selectable && <td className=\"agn-table__td agn-table__td--check\"><input type=\"checkbox\" className=\"agn-table__check\" checked={isSel} onChange={() => toggleOne(k)} aria-label={l.selectRow} /></td>}\n {visibleColumns.map((c, ci) => <React.Fragment key={c.key}>{renderCell(c, r, ri, ci)}</React.Fragment>)}\n {rowActions && <td className=\"agn-table__td agn-table__td--actions\">{rowActions(r, ri)}</td>}\n </tr>\n );\n if (!open) return row;\n return (\n <React.Fragment key={k}>\n {row}\n <tr id={id + '-detail-' + ri} className=\"agn-table__detail\">\n <td colSpan={colCount} className=\"agn-table__detail-cell\">\n <dl className=\"agn-table__detail-list\" style={{ maxWidth: width ? Math.max(0, width - 26) : undefined }}>\n {hiddenColumns.map((c) => <div key={c.key} className=\"agn-table__detail-item\"><dt className=\"agn-table__detail-label\">{c.label}</dt><dd className={cx('agn-table__detail-value', c.mono && 'agn-table__td--mono')}>{cellContent(c, r, ri)}</dd></div>)}\n </dl>\n </td>\n </tr>\n </React.Fragment>\n );\n });\n if (st === 'loading' && !skeletonRows) body = <tr><td colSpan={colCount} className=\"agn-table__state\"><Icon name=\"loader-circle\" size={20} className=\"agn-table__spin\" />{l.loading}</td></tr>;\n return (\n <div ref={rootRef} className={cx('agn-table', bare && 'agn-table--bare', striped && 'agn-table--striped', stickyFirst && 'agn-table--sticky-first', st !== 'ready' && 'agn-table--' + st, className)} style={style} {...rest}>\n <div ref={scrollRef} className=\"agn-table__scroll\" style={{ maxHeight }} aria-busy={st === 'loading' || undefined} aria-live={st === 'loading' ? 'polite' : undefined}>\n <table className=\"agn-table__table\" id={id}>\n {caption && <caption className=\"agn-sr\">{caption}</caption>}\n {header}\n <tbody ref={bodyRef} className=\"agn-table__body\">{body}</tbody>\n </table>\n {/* biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here */}\n {st === 'loading' && <span className=\"agn-sr\" role=\"status\">{l.loading}</span>}\n </div>\n {(pagination || footer) && <div className=\"agn-table__footer\">{footer && <div className=\"agn-table__footer-main\">{footer}</div>}{pagination && <div className=\"agn-table__pagination\">{pagination}</div>}</div>}\n </div>\n );\n}\n","import React from 'react';\n// Breakpoints (= tokens bp-sm … bp-2xl, @aginies/tokens) and the container-measuring hooks the layout components share.\n// Everything here measures an element, never the window: a page in a 1024px frame behaves like a 1024px page.\nexport const BREAKPOINTS = { sm: 640, md: 768, lg: 1024, xl: 1280, '2xl': 1536 };\nexport const BREAKPOINT_ORDER = ['base', 'sm', 'md', 'lg', 'xl', '2xl'];\n\n// Name of the largest breakpoint a width reaches ('base' below 640).\nexport function breakpointFor(width) {\n let name = 'base';\n for (const k of BREAKPOINT_ORDER.slice(1)) if (width >= BREAKPOINTS[k]) name = k;\n return name;\n}\n// A breakpoint name or a px number → px.\nexport function toPx(bp) { return typeof bp === 'number' ? bp : BREAKPOINTS[bp] != null ? BREAKPOINTS[bp] : 0; }\n// True when breakpoint `a` is at least `b` ('xl' ≥ 'lg').\nexport function atLeast(a, b) { return BREAKPOINT_ORDER.indexOf(a) >= BREAKPOINT_ORDER.indexOf(b); }\n\nconst useIsoLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\n// Layout width of an element (px), measured before paint and kept current with a ResizeObserver. null until measured.\nexport function useElementWidth(ref) {\n const [w, setW] = React.useState(null);\n useIsoLayoutEffect(() => {\n const el = ref.current;\n if (!el) return undefined;\n // offsetWidth: the layout width, unaffected by a CSS transform (a page scaled into a frame keeps its real width).\n const read = () => { const n = el.offsetWidth; setW((p) => (p === n ? p : n)); };\n read();\n if (typeof ResizeObserver === 'undefined') return undefined;\n const ro = new ResizeObserver(read);\n ro.observe(el);\n return () => ro.disconnect();\n }, [ref]);\n return w;\n}\n// Breakpoint name of an element's own width ('base' … '2xl'); null until measured.\nexport function useBreakpoint(ref) {\n const w = useElementWidth(ref);\n return w == null ? null : breakpointFor(w);\n}\n\nconst FOCUSABLE = 'a[href],button:not([disabled]),input:not([disabled]):not([type=\"hidden\"]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex=\"-1\"]),[contenteditable=\"true\"]';\n// Overlay behaviour for a drawer or a sheet: on open, focus moves to the container (tabIndex -1); Tab and Shift+Tab stay inside; Esc calls onClose; on close focus returns to where it was.\nexport function useOverlayFocus(ref, open, onClose) {\n const closeRef = React.useRef(onClose);\n closeRef.current = onClose;\n React.useEffect(() => {\n if (!open) return undefined;\n const el = ref.current;\n if (!el) return undefined;\n const prev = typeof document !== 'undefined' ? document.activeElement : null;\n if (!el.contains(document.activeElement)) el.focus({ preventScroll: true });\n const onKey = (e) => {\n if (e.key === 'Escape') { if (closeRef.current) { e.stopPropagation(); closeRef.current(); } return; }\n if (e.key !== 'Tab' || !el.contains(document.activeElement)) return;\n const f = Array.from(el.querySelectorAll(FOCUSABLE)).filter((n) => n.offsetParent !== null || n === document.activeElement);\n if (!f.length) { e.preventDefault(); el.focus({ preventScroll: true }); return; }\n const first = f[0], last = f[f.length - 1];\n if (e.shiftKey && (document.activeElement === first || document.activeElement === el)) { e.preventDefault(); last.focus(); }\n else if (!e.shiftKey && document.activeElement === last) { e.preventDefault(); first.focus(); }\n };\n el.addEventListener('keydown', onKey);\n return () => {\n el.removeEventListener('keydown', onKey);\n const a = document.activeElement;\n if (prev && prev.focus && document.contains(prev) && (!a || a === document.body || el.contains(a))) prev.focus({ preventScroll: true });\n };\n }, [open, ref]);\n}\n","import React, { useState } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// A table whose first column expands nested rows: a run and its steps, a tenant and its agents, a folder and its files. Arrow keys move and expand.\nconst DEFAULT_LABELS = { expand: 'Expand', collapse: 'Collapse', empty: 'Nothing here yet' };\nfunction flatten(rows, expanded, depth = 0, out = []) {\n for (const r of rows) {\n const has = Array.isArray(r.children) && r.children.length > 0;\n const open = has && expanded.has(r.id);\n out.push({ row: r, depth, has, open });\n if (open) flatten(r.children, expanded, depth + 1, out);\n }\n return out;\n}\nexport function TreeGrid({ columns = [], rows = [], defaultExpanded, expanded, onExpandChange, onRowClick, selected, stickyHeader = true, maxHeight, labels, indent = 20, bare, className, style, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [local, setLocal] = useState(() => new Set(defaultExpanded || rows.filter((r) => r.expanded).map((r) => r.id)));\n const exp = expanded ? new Set(expanded) : local;\n const setExp = (next) => { if (!expanded) setLocal(next); onExpandChange && onExpandChange(Array.from(next)); };\n const toggle = (id) => { const n = new Set(exp); n.has(id) ? n.delete(id) : n.add(id); setExp(n); };\n const flat = flatten(rows, exp);\n const [focus, setFocus] = useState(0);\n const ref = React.useRef(null);\n const focusRow = (i) => { const n = Math.max(0, Math.min(flat.length - 1, i)); setFocus(n); const el = ref.current && ref.current.querySelector('[data-row-index=\"' + n + '\"]'); if (el) el.focus(); };\n const onKey = (e, f, i) => {\n switch (e.key) {\n case 'ArrowDown': e.preventDefault(); focusRow(i + 1); break;\n case 'ArrowUp': e.preventDefault(); focusRow(i - 1); break;\n case 'ArrowRight': e.preventDefault(); if (f.has && !f.open) toggle(f.row.id); else if (f.open) focusRow(i + 1); break;\n case 'ArrowLeft': e.preventDefault(); if (f.open) toggle(f.row.id); else { const p = flat.slice(0, i).reverse().find((x) => x.depth < f.depth); if (p) focusRow(flat.indexOf(p)); } break;\n case 'Enter': if (onRowClick) { e.preventDefault(); onRowClick(f.row); } else if (f.has) { e.preventDefault(); toggle(f.row.id); } break;\n case 'Home': e.preventDefault(); focusRow(0); break;\n case 'End': e.preventDefault(); focusRow(flat.length - 1); break;\n default:\n }\n };\n return (\n <div className={cx('agn-table', 'agn-treegrid', bare && 'agn-table--bare', className)} style={style} {...rest}>\n <div className=\"agn-table__scroll\" style={{ maxHeight }}>\n {/* biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: APG treegrid is a table with role=treegrid; rows carry the roving focus and arrow keys */}\n <table className=\"agn-table__table\" role=\"treegrid\">\n <thead className={cx('agn-table__head', stickyHeader && 'agn-table__head--sticky')}>\n <tr>{columns.map((c) => <th key={c.key} scope=\"col\" className={cx('agn-table__th', c.align && 'agn-table__th--' + c.align)} style={{ width: c.width }}><span className=\"agn-table__th-inner\">{c.label}</span></th>)}</tr>\n </thead>\n <tbody ref={ref} className=\"agn-table__body\">\n {flat.length === 0 && <tr><td colSpan={columns.length} className=\"agn-table__state agn-table__state--empty\"><Icon name=\"inbox\" size={20} /><div className=\"agn-table__state-title\">{l.empty}</div></td></tr>}\n {flat.map((f, i) => (\n <tr key={f.row.id} data-row-index={i} tabIndex={i === focus ? 0 : -1} aria-level={f.depth + 1} aria-expanded={f.has ? f.open : undefined} aria-selected={selected != null ? selected === f.row.id : undefined}\n className={cx('agn-table__row', 'agn-focus-inset', 'agn-treegrid__row', f.has && 'agn-treegrid__row--parent', selected === f.row.id && 'agn-table__row--selected', onRowClick && 'agn-table__row--clickable')}\n onKeyDown={(e) => onKey(e, f, i)} onFocus={() => setFocus(i)} onClick={onRowClick ? (e) => { if (!e.target.closest('button,a,input')) onRowClick(f.row); } : undefined}>\n {columns.map((c, ci) => (\n <td key={c.key} className={cx('agn-table__td', c.align && 'agn-table__td--' + c.align, c.mono && 'agn-table__td--mono', ci === 0 && 'agn-treegrid__first')} style={ci === 0 ? { paddingLeft: 8 + f.depth * indent } : undefined}>\n {ci === 0 && (f.has ? <button type=\"button\" className=\"agn-treegrid__toggle agn-focus-inset\" aria-label={f.open ? l.collapse : l.expand} tabIndex={-1} onClick={(e) => { e.stopPropagation(); toggle(f.row.id); }}><Icon name=\"chevron-right\" size={14} className={cx('agn-treegrid__chev', f.open && 'agn-treegrid__chev--open')} /></button> : <span className=\"agn-treegrid__toggle agn-treegrid__toggle--leaf\" aria-hidden=\"true\" />)}\n {ci === 0 && f.row.icon && <Icon name={f.row.icon} size={14} className=\"agn-treegrid__icon\" />}\n {c.render ? c.render(f.row[c.key], f.row, f.depth) : f.row[c.key] == null ? <span className=\"agn-table__null\">—</span> : String(f.row[c.key])}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState, useRef } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\nimport { Badge } from './Badge.jsx';\n// Navigation tree with folders: agents in folders, files in a knowledge base, blocks in a library. One selected node; arrows move, Left/Right collapse and expand, Enter selects.\nconst DEFAULT_LABELS = { expand: 'Expand', collapse: 'Collapse', empty: 'No items' };\nconst KIND_ICON = { folder: 'folder', agent: 'bot', file: 'file-text', tenant: 'building-2', run: 'play', tool: 'wrench', kb: 'book-open' };\nfunction flatten(items, expanded, depth = 0, out = []) {\n for (const it of items) {\n const has = Array.isArray(it.children) && it.children.length > 0;\n const open = has && expanded.has(it.id);\n out.push({ node: it, depth, has, open });\n if (open) flatten(it.children, expanded, depth + 1, out);\n }\n return out;\n}\nexport function Tree({ items = [], selected, onSelect, defaultExpanded, expanded, onExpandChange, header, labels, indent = 16, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const collect = (list, out = []) => { list.forEach((n) => { if (n.expanded) out.push(n.id); if (n.children) collect(n.children, out); }); return out; };\n const [local, setLocal] = useState(() => new Set(defaultExpanded || collect(items)));\n const exp = expanded ? new Set(expanded) : local;\n const setExp = (next) => { if (!expanded) setLocal(next); onExpandChange && onExpandChange(Array.from(next)); };\n const toggle = (id) => { const n = new Set(exp); n.has(id) ? n.delete(id) : n.add(id); setExp(n); };\n const flat = flatten(items, exp);\n const ref = useRef(null);\n const [focus, setFocus] = useState(() => Math.max(0, flat.findIndex((f) => f.node.id === selected)));\n const focusAt = (i) => { const n = Math.max(0, Math.min(flat.length - 1, i)); setFocus(n); const el = ref.current && ref.current.querySelector('[data-index=\"' + n + '\"]'); if (el) el.focus(); };\n const onKey = (e, f, i) => {\n switch (e.key) {\n case 'ArrowDown': e.preventDefault(); focusAt(i + 1); break;\n case 'ArrowUp': e.preventDefault(); focusAt(i - 1); break;\n case 'ArrowRight': e.preventDefault(); if (f.has && !f.open) toggle(f.node.id); else if (f.open) focusAt(i + 1); break;\n case 'ArrowLeft': e.preventDefault(); if (f.open) toggle(f.node.id); else { const p = flat.slice(0, i).reverse().find((x) => x.depth < f.depth); if (p) focusAt(flat.indexOf(p)); } break;\n case 'Home': e.preventDefault(); focusAt(0); break;\n case 'End': e.preventDefault(); focusAt(flat.length - 1); break;\n case 'Enter': case ' ': e.preventDefault(); if (f.has && !onSelect) toggle(f.node.id); else onSelect && onSelect(f.node); break;\n default:\n }\n };\n return (\n <div className={cx('agn-tree', className)} {...rest}>\n {header && <div className=\"agn-tree__header\">{header}</div>}\n {/* biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: APG tree on ul/li: the li are role=none and the focusable div inside each is the treeitem */}\n <ul className=\"agn-tree__list\" role=\"tree\" ref={ref}>\n {flat.length === 0 && <li role=\"none\" className=\"agn-tree__empty\">{l.empty}</li>}\n {flat.map((f, i) => {\n const n = f.node;\n const isSel = selected === n.id;\n const kind = n.kind || (f.has ? 'folder' : 'item');\n const icon = n.icon || (kind === 'folder' ? (f.open ? 'folder-open' : 'folder') : KIND_ICON[kind] || 'file');\n return (\n <li key={n.id} role=\"none\" className=\"agn-tree__li\">\n <div role=\"treeitem\" aria-level={f.depth + 1} aria-expanded={f.has ? f.open : undefined} aria-selected={isSel} data-index={i} tabIndex={i === focus ? 0 : -1} className={cx('agn-tree__item', 'agn-focus-inset', isSel && 'agn-tree__item--selected', kind === 'folder' && 'agn-tree__item--folder')} style={{ paddingLeft: 6 + f.depth * indent }} onKeyDown={(e) => onKey(e, f, i)} onFocus={() => setFocus(i)}\n onClick={() => { if (f.has && (!onSelect || kind === 'folder')) toggle(n.id); if (onSelect && kind !== 'folder') onSelect(n); else if (onSelect && kind === 'folder' && n.selectable) onSelect(n); }}>\n <span className=\"agn-tree__toggle\" aria-hidden=\"true\">{f.has && <Icon name=\"chevron-right\" size={12} className={cx('agn-tree__chev', f.open && 'agn-tree__chev--open')} />}</span>\n {n.product ? <ProductIcon product={n.product} size={14} className=\"agn-tree__icon\" /> : <Icon name={icon} size={14} className={cx('agn-tree__icon', kind === 'folder' && 'agn-tree__icon--folder')} />}\n <span className=\"agn-tree__label\">{n.label}</span>\n {n.meta && <span className=\"agn-tree__meta\">{n.meta}</span>}\n {n.count != null && <Badge size=\"sm\">{n.count}</Badge>}\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Count or one-word status on a pill. Solid signal for unread counts; soft tones for status words; outline for quiet states (Disabled, Draft). Never colour alone: a word or a count is always present.\nexport function Badge({ tone = 'neutral', count, max = 99, solid, outline, icon, size = 'md', children, className, ...rest }) {\n const hasCount = typeof count === 'number';\n const text = hasCount ? (count > max ? max + '+' : String(count)) : children;\n return (\n <span className={cx('agn-badge', 'agn-badge--' + tone, solid && 'agn-badge--solid', outline && !solid && 'agn-badge--outline', size !== 'md' && 'agn-badge--' + size, hasCount && 'agn-badge--count', className)} title={hasCount && count > max ? String(count) : undefined} {...rest}>\n {icon && <Icon name={icon} size={size === 'sm' ? 10 : 12} />}\n {text}\n </span>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Compact record summary: media (BlockIcon, Avatar or an icon), title, meta line(s), actions. The row unit of a related list.\nexport function Tile({ icon, media, title, href, onClick, meta, actions, boxed, selected, as, className, children, ...rest }) {\n const Comp = as || 'div';\n const metas = meta == null ? [] : Array.isArray(meta) ? meta : [meta];\n const Title = href ? 'a' : onClick ? 'button' : 'div';\n return (\n <Comp className={cx('agn-tile', boxed && 'agn-tile--boxed', selected && 'agn-tile--selected', (href || onClick) && 'agn-tile--interactive', className)} aria-selected={selected} {...rest}>\n {(media || icon) && <span className=\"agn-tile__media\">{media || <Icon name={icon} size={16} />}</span>}\n <span className=\"agn-tile__body\">\n <Title className={cx('agn-tile__title', (href || onClick) && 'agn-focus')} href={href} type={Title === 'button' ? 'button' : undefined} onClick={onClick}>{title}</Title>\n {metas.length > 0 && <span className=\"agn-tile__meta\">{metas.map((m, i) => <span key={i} className=\"agn-tile__meta-item\">{m}</span>)}</span>}\n {children}\n </span>\n {actions && <span className=\"agn-tile__actions\">{actions}</span>}\n </Comp>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Key fields in a row under a record title: mono label over a value, hairline between groups. The \"at a glance\" strip of a record page.\nexport function SummaryDetail({ fields = [], max, dense, className, ...rest }) {\n const list = max ? fields.slice(0, max) : fields;\n return (\n <dl className={cx('agn-summary', dense && 'agn-summary--dense', className)} {...rest}>\n {list.map((f, i) => (\n <div key={f.key || i} className={cx('agn-summary__item', f.tone && 'agn-summary__item--' + f.tone)}>\n <dt className=\"agn-summary__label\">{f.label}</dt>\n <dd className={cx('agn-summary__value', f.mono && 'agn-mono agn-num')}>{f.value == null || f.value === '' ? <span className=\"agn-summary__empty\">—</span> : f.value}</dd>\n </div>\n ))}\n </dl>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\n// Avatar. People are circles; systems and agents are radius-md squares. Initials fall back on neutral-ramp grounds, never on a colour wheel.\nconst SIZES = { xs: 20, sm: 24, md: 32, lg: 40, xl: 56 };\nconst initialsOf = (name) => String(name || '').trim().split(/\\s+/).slice(0, 2).map((w) => w.charAt(0)).join('').toLocaleUpperCase('tr-TR');\nconst hash = (s) => { let h = 0; for (const c of String(s || '')) h = (h * 31 + c.charCodeAt(0)) | 0; return Math.abs(h); };\nconst STATUS_LABEL = { online: 'Online', busy: 'Busy', away: 'Away', offline: 'Offline' };\nexport function Avatar({ src, name = '', kind = 'person', size = 'md', icon, product, status, labels, className, style, ...rest }) {\n const px = SIZES[size] || SIZES.md;\n const l = { ...STATUS_LABEL, ...labels };\n const isPerson = kind === 'person';\n const ground = 'agn-avatar--g' + ((hash(name) % 4) + 1);\n let body;\n if (src) body = <img className=\"agn-avatar__img\" src={src} alt=\"\" />;\n else if (product) body = <ProductIcon product={product} size={Math.round(px * 0.6)} />;\n else if (icon || !name) body = <Icon name={icon || (isPerson ? 'user' : kind === 'agent' ? 'bot' : 'server')} size={Math.round(px * 0.55)} />;\n else body = <span className=\"agn-avatar__initials\">{initialsOf(name)}</span>;\n return (\n <span className={cx('agn-avatar', 'agn-avatar--' + size, isPerson ? 'agn-avatar--person' : 'agn-avatar--square', kind === 'agent' && 'agn-avatar--agent', !src && !product && ground, className)} style={{ '--agn-avatar-size': px + 'px', ...style }} role=\"img\" aria-label={name ? name + (status ? ', ' + l[status] : '') : undefined} aria-hidden={name ? undefined : true} title={name || undefined} {...rest}>\n {body}\n {status && <span className={cx('agn-avatar__status', 'agn-avatar__status--' + status)} aria-hidden=\"true\" />}\n </span>\n );\n}\n// Overlapping row of avatars with a \"+n\" overflow; items are names or Avatar props.\nexport function AvatarGroup({ items = [], max = 4, size = 'sm', kind = 'person', className, ...rest }) {\n const list = items.map((i) => (typeof i === 'string' ? { name: i } : i));\n const shown = list.slice(0, max);\n const more = list.length - shown.length;\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <span className={cx('agn-avatar-group', className)} role=\"group\" aria-label={list.map((i) => i.name).join(', ')} {...rest}>\n {shown.map((a, i) => <Avatar key={a.name || i} size={size} kind={kind} {...a} />)}\n {more > 0 && <span className={cx('agn-avatar', 'agn-avatar--' + size, kind === 'person' ? 'agn-avatar--person' : 'agn-avatar--square', 'agn-avatar--more')} style={{ '--agn-avatar-size': (SIZES[size] || 24) + 'px' }} title={list.slice(max).map((i) => i.name).join(', ')}>+{more}</span>}\n </span>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// The website's .tag: mono 11.5px on radius-sm with a soft wash and a 45% tinted border. dot marks a live state (running); the word is always there.\nexport function Tag({ tone = 'neutral', dot, icon, as: Comp = 'span', children, className, ...rest }) {\n return (\n <Comp className={cx('agn-tag', 'agn-tag--' + tone, dot && 'agn-tag--dot', className)} {...rest}>\n {dot && <span className=\"agn-tag__dot\" aria-hidden=\"true\" />}\n {icon && !dot && <Icon name={icon} size={12} />}\n {children}\n </Comp>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\n// The 24px rounded icon tile of a canvas block or a tool. Signal by default; tones for state. color is the ONE place a third-party brand colour may enter the UI (a tool's logo tile).\nexport function BlockIcon({ icon = 'box', product, tone = 'signal', color, size = 'md', title, children, className, style, ...rest }) {\n const px = size === 'sm' ? 20 : size === 'lg' ? 32 : size === 'xl' ? 40 : 24;\n const glyph = Math.round(px * 0.58);\n return (\n // biome-ignore lint/a11y/useAriaPropsSupportedByRole: aria-label is set only together with role=img (both keyed on title); the rule cannot see the conditional role\n <span className={cx('agn-block-icon', 'agn-block-icon--' + tone, size !== 'md' && 'agn-block-icon--' + size, color && 'agn-block-icon--brand', className)} style={{ '--agn-block-size': px + 'px', ...(color ? { '--agn-brand': color } : null), ...style }} role={title ? 'img' : undefined} aria-label={title} aria-hidden={title ? undefined : true} {...rest}>\n {children || (product ? <ProductIcon product={product} size={glyph} /> : <Icon name={icon} size={glyph} strokeWidth={px <= 24 ? 2 : 1.75} />)}\n </span>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// A file as a card (thumbnail above) or a row (thumbnail beside): name, type, size, modified, actions. Attachments on a case, documents in a knowledge base.\nconst TYPE_ICON = { pdf: 'file-text', doc: 'file-text', docx: 'file-text', txt: 'file-text', md: 'file-text', xls: 'file-spreadsheet', xlsx: 'file-spreadsheet', csv: 'file-spreadsheet', json: 'file-json', js: 'file-code', ts: 'file-code', py: 'file-code', png: 'image', jpg: 'image', jpeg: 'image', gif: 'image', svg: 'image', webp: 'image', mp3: 'file-audio', wav: 'file-audio', ogg: 'file-audio', mp4: 'file-video', zip: 'file-archive', folder: 'folder' };\nexport function FileCard({ name, type, size, modified, preview, variant = 'card', selected, onOpen, href, actions, meta, className, ...rest }) {\n const ext = (type || (name || '').split('.').pop() || '').toLowerCase();\n const icon = TYPE_ICON[ext] || 'file';\n const Title = href ? 'a' : onOpen ? 'button' : 'span';\n const metas = [ext && ext.toUpperCase(), size, modified, meta].filter(Boolean);\n return (\n <div className={cx('agn-file', 'agn-file--' + variant, selected && 'agn-file--selected', className)} aria-current={selected || undefined} {...rest}>\n <div className={cx('agn-file__thumb', preview && 'agn-file__thumb--img')}>\n {preview ? <img src={preview} alt=\"\" className=\"agn-file__img\" /> : <Icon name={icon} size={variant === 'card' ? 28 : 18} strokeWidth={1.5} />}\n {variant === 'card' && ext && !preview && <span className=\"agn-file__ext\">{ext}</span>}\n </div>\n <div className=\"agn-file__body\">\n <Title className={cx('agn-file__name', (href || onOpen) && 'agn-focus')} href={href} type={Title === 'button' ? 'button' : undefined} onClick={onOpen} title={name}>{name}</Title>\n <div className=\"agn-file__meta\">{metas.map((m, i) => <span key={i}>{m}</span>)}</div>\n </div>\n {actions && <div className=\"agn-file__actions\">{actions}</div>}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Avatar } from './Avatar.jsx';\n// Activity feed: posts with an avatar, who did what, the time, the text, actions and replies. Comments on an approval, notes on a case, a supervisor thread.\nconst DEFAULT_LABELS = { reply: 'Reply', like: 'Like', liked: 'Liked', replies: 'replies' };\nexport function Feed({ children, className, ...rest }) {\n return <div className={cx('agn-feed', className)} role=\"feed\" {...rest}>{children}</div>;\n}\nexport function FeedPost({ author, avatar, kind = 'person', action, target, time, children, actions, replies = [], likes, liked, onLike, onReply, labels, tone, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const a = typeof author === 'string' ? { name: author, src: avatar, kind } : { kind, ...author };\n return (\n <article className={cx('agn-post', tone && 'agn-post--' + tone, className)} {...rest}>\n <Avatar size=\"sm\" name={a.name} src={a.src} kind={a.kind} product={a.product} className=\"agn-post__avatar\" />\n <div className=\"agn-post__main\">\n <header className=\"agn-post__head\">\n <span className=\"agn-post__author\">{a.name}</span>\n {action && <span className=\"agn-post__action\"> {action}</span>}\n {target && <span className=\"agn-post__target\"> {target}</span>}\n {time && <time className=\"agn-post__time\">{time}</time>}\n </header>\n {children && <div className=\"agn-post__body\">{children}</div>}\n {(actions || onLike || onReply) && (\n <div className=\"agn-post__actions\">\n {onLike && <button type=\"button\" className={cx('agn-post__btn', 'agn-focus', liked && 'agn-post__btn--active')} aria-pressed={liked} onClick={onLike}><Icon name=\"thumbs-up\" size={14} />{liked ? l.liked : l.like}{likes > 0 && <span className=\"agn-num\">{likes}</span>}</button>}\n {onReply && <button type=\"button\" className=\"agn-post__btn agn-focus\" onClick={onReply}><Icon name=\"message-square\" size={14} />{l.reply}</button>}\n {actions}\n </div>\n )}\n {replies.length > 0 && (\n <div className=\"agn-post__replies\">\n {replies.map((r, i) => (\n <div key={r.id || i} className=\"agn-post__reply\">\n <Avatar size=\"xs\" name={typeof r.author === 'string' ? r.author : r.author.name} src={r.avatar} kind={r.kind || 'person'} />\n <div className=\"agn-post__reply-main\">\n <span className=\"agn-post__author\">{typeof r.author === 'string' ? r.author : r.author.name}</span>{r.time && <time className=\"agn-post__time\">{r.time}</time>}\n <div className=\"agn-post__body\">{r.text}</div>\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n </article>\n );\n}\n","import React, { useState } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Vertical timeline of events with an icon per kind and a time: run history, case history, deploy history. Items with a group render a date header; items with detail expand.\nconst KIND = { run: 'play', step: 'circle-dot', approval: 'user-check', call: 'phone', message: 'message-square', note: 'sticky-note', agent: 'bot', deploy: 'rocket', edit: 'pencil', error: 'circle-alert', success: 'circle-check', warn: 'triangle-alert', handoff: 'arrow-right-left', email: 'mail', event: 'circle' };\nconst DEFAULT_LABELS = { show: 'Show details', hide: 'Hide details' };\nexport function ActivityTimeline({ items = [], compact, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [open, setOpen] = useState(() => new Set(items.filter((i) => i.open).map((i, idx) => i.id || idx)));\n let lastGroup = null;\n return (\n <ol className={cx('agn-timeline', compact && 'agn-timeline--compact', className)} {...rest}>\n {items.map((it, i) => {\n const key = it.id || i;\n const tone = it.tone || (it.kind === 'error' ? 'bad' : it.kind === 'success' ? 'ok' : it.kind === 'warn' || it.kind === 'approval' ? 'warn' : it.kind === 'run' || it.kind === 'agent' ? 'info' : 'neutral');\n const head = it.group && it.group !== lastGroup ? <li key={'g' + key} className=\"agn-timeline__group\" aria-hidden=\"true\">{it.group}</li> : null;\n lastGroup = it.group || lastGroup;\n const isOpen = open.has(key);\n return (\n <React.Fragment key={key}>\n {head}\n <li className={cx('agn-timeline__item', 'agn-timeline__item--' + tone, it.current && 'agn-timeline__item--current', it.done === false && 'agn-timeline__item--pending')}>\n <span className=\"agn-timeline__marker\" aria-hidden=\"true\"><Icon name={it.icon || KIND[it.kind] || 'circle'} size={compact ? 12 : 14} /></span>\n <div className=\"agn-timeline__main\">\n <div className=\"agn-timeline__head\">\n <span className=\"agn-timeline__title\">{it.title}</span>\n {it.time && <time className=\"agn-timeline__time\">{it.time}</time>}\n </div>\n {it.description && <div className=\"agn-timeline__desc\">{it.description}</div>}\n {it.detail && (\n <>\n <button type=\"button\" className=\"agn-timeline__toggle agn-focus\" aria-expanded={isOpen} onClick={() => { const n = new Set(open); n.has(key) ? n.delete(key) : n.add(key); setOpen(n); }}><Icon name=\"chevron-right\" size={12} className={cx('agn-timeline__chev', isOpen && 'agn-timeline__chev--open')} />{isOpen ? l.hide : l.show}</button>\n {isOpen && <div className=\"agn-timeline__detail\">{it.detail}</div>}\n </>\n )}\n </div>\n </li>\n </React.Fragment>\n );\n })}\n </ol>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\n// Empty, error and first-run states built from tokens alone: a soft blob, floating cards, three data dots and a boxed glyph. Twelve scenes; no bitmaps.\n// cards: [left, top, width, height] in a 160×120 scene; dots: [dataIndex, left%, top%]\nconst SCENES = {\n empty: { icon: 'inbox', cards: [[10, 58, 58, 32], [96, 14, 54, 30]], dots: [[1, 16, 22], [2, 84, 70], [3, 74, 12]] },\n search: { icon: 'search-x', cards: [[98, 60, 52, 30]], dots: [[1, 18, 72], [2, 80, 16], [3, 30, 18]] },\n error: { icon: 'triangle-alert', tone: 'bad', cards: [[12, 62, 50, 28]], dots: [[4, 18, 26], [3, 84, 64], [6, 76, 14]] },\n locked: { icon: 'lock', cards: [], dots: [[1, 16, 66], [5, 84, 22], [6, 50, 12]] },\n offline: { icon: 'wifi-off', tone: 'neutral', cards: [[98, 64, 50, 26]], dots: [[6, 18, 24], [5, 80, 18], [6, 70, 80]] },\n success: { icon: 'circle-check', tone: 'ok', cards: [], dots: [[2, 16, 26], [1, 84, 66], [3, 74, 14]] },\n agent: { product: 'platform', cards: [[10, 60, 56, 30], [100, 18, 50, 28]], dots: [[1, 14, 20], [2, 86, 72], [3, 78, 12]] },\n chart: { icon: 'chart-column', cards: [[10, 18, 50, 28], [100, 66, 50, 28]], dots: [[1, 84, 24], [2, 20, 76], [3, 50, 90]] },\n calendar: { icon: 'calendar-x', cards: [[12, 64, 54, 28]], dots: [[1, 82, 20], [3, 24, 22], [2, 86, 78]] },\n files: { icon: 'folder-open', cards: [[96, 18, 52, 30], [12, 18, 40, 24]], dots: [[3, 16, 70], [1, 80, 80], [2, 60, 8]] },\n team: { icon: 'users', cards: [], dots: [[1, 16, 26], [2, 84, 26], [3, 50, 86]] },\n build: { icon: 'hammer', tone: 'warn', cards: [[100, 20, 48, 26]], dots: [[3, 18, 70], [1, 76, 82], [2, 30, 14]] },\n};\nexport const illustrationScenes = Object.keys(SCENES);\nexport function Illustration({ scene = 'empty', icon, product, title, message, action, actionLabel, onAction, size = 'md', className, ...rest }) {\n const s = SCENES[scene] || SCENES.empty;\n const sm = size === 'sm';\n const tone = s.tone || 'signal';\n const prod = product || s.product;\n return (\n <div className={cx('agn-illus', 'agn-illus--' + size, 'agn-illus--' + scene, className)} role={scene === 'error' ? 'alert' : 'status'} {...rest}>\n <div className=\"agn-illus__scene\" aria-hidden=\"true\">\n <div className=\"agn-illus__blob\" />\n {!sm && s.cards.map(([x, y, w, h], i) => <div key={i} className=\"agn-illus__card\" style={{ left: x, top: y, width: w, height: h }} />)}\n {s.dots.map(([d, x, y], i) => <span key={i} className=\"agn-illus__dot\" style={{ background: 'var(--data-' + d + ')', left: x + '%', top: y + '%' }} />)}\n <div className={cx('agn-illus__glyph', 'agn-illus__glyph--' + tone)}>{prod && !icon ? <ProductIcon product={prod} size={sm ? 20 : 28} /> : <Icon name={icon || s.icon} size={sm ? 20 : 28} strokeWidth={1.75} />}</div>\n </div>\n {title && <div className=\"agn-illus__title\">{title}</div>}\n {message && <div className=\"agn-illus__message\">{message}</div>}\n {(action || actionLabel) && <div className=\"agn-illus__action\">{action || <Button variant=\"primary\" size={sm ? 'sm' : 'md'} onClick={onAction}>{actionLabel}</Button>}</div>}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// The website's .stat: a display-600 tabular value over a mono uppercase label. delta carries direction with an arrow and a word-length value; invert flips the colour for costs.\n// With `locale`, numeric deltas use the locale's decimal mark and a true minus (U+2212); string deltas may use either minus.\nexport function Stat({ value, label, delta, invert, sub, icon, size = 'md', chart, locale, as: Comp = 'div', className, ...rest }) {\n let d = null;\n if (delta != null) {\n const o = typeof delta === 'object' ? delta : { value: delta };\n const num = typeof o.value === 'number' ? o.value : parseFloat(String(o.value).replace(/\\u2212/g, '-').replace(/[^\\d.,-]/g, '').replace(',', '.'));\n const dir = o.direction || (Number.isFinite(num) ? (num > 0 ? 'up' : num < 0 ? 'down' : 'flat') : 'flat');\n const good = dir === 'flat' ? null : (dir === 'up') !== !!invert;\n const tone = dir === 'flat' ? 'neutral' : good ? 'ok' : 'bad';\n const unit = o.unit ?? '%';\n const text = typeof o.value === 'number' ? (locale ? (o.value > 0 ? '+' : o.value < 0 ? '\\u2212' : '') + new Intl.NumberFormat(locale, { maximumFractionDigits: 2 }).format(Math.abs(o.value)) : (o.value > 0 ? '+' : '') + o.value) + unit : o.value;\n d = <span className={cx('agn-stat__delta', 'agn-stat__delta--' + tone)}><Icon name={dir === 'up' ? 'arrow-up-right' : dir === 'down' ? 'arrow-down-right' : 'minus'} size={size === 'sm' ? 12 : 14} />{text}{o.label && <span className=\"agn-stat__delta-label\">{o.label}</span>}</span>;\n }\n return (\n <Comp className={cx('agn-stat', 'agn-stat--' + size, className)} {...rest}>\n <div className=\"agn-stat__head\">\n {icon && <Icon name={icon} size={16} className=\"agn-stat__icon\" />}\n <div className=\"agn-stat__label\">{label}</div>\n </div>\n <div className=\"agn-stat__row\">\n <div className=\"agn-stat__value\">{value}</div>\n {d}\n </div>\n {sub && <div className=\"agn-stat__sub\">{sub}</div>}\n {chart && <div className=\"agn-stat__chart\">{chart}</div>}\n </Comp>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\n// Small SVG charts at the six data colours: line, area, bar (bar and area may stack). A faint grid, an emphasised last point, tabular labels. For tiles and dashboards, not a charting library.\nconst COLORS = ['var(--data-1)', 'var(--data-2)', 'var(--data-3)', 'var(--data-4)', 'var(--data-5)', 'var(--data-6)'];\nconst PAD = { t: 6, r: 6, b: 18, l: 6 };\nfunction scale(series, max, min) {\n const all = series.flatMap((s) => s.values);\n const hi = max != null ? max : Math.max(...all, 0);\n const lo = min != null ? min : Math.min(...all, 0);\n return { hi, lo: hi === lo ? lo - 1 : lo };\n}\nfunction path(vals, x, y, close, h) {\n const pts = vals.map((v, i) => [x(i), y(v)]);\n const d = pts.map((p, i) => (i ? 'L' : 'M') + p[0].toFixed(1) + ' ' + p[1].toFixed(1)).join(' ');\n return close ? d + ' L' + pts[pts.length - 1][0].toFixed(1) + ' ' + h + ' L' + pts[0][0].toFixed(1) + ' ' + h + ' Z' : d;\n}\n// The SVG is drawn at the container's measured width (ResizeObserver), so axis labels never stretch; `width` is the first-paint and no-ResizeObserver fallback.\nfunction useWidth(ref, fallback) {\n const [w, setW] = React.useState(null);\n React.useEffect(() => {\n const el = ref.current;\n if (!el || typeof ResizeObserver === 'undefined') return undefined;\n const ro = new ResizeObserver((es) => { const cw = Math.round(es[0].contentRect.width); if (cw > 0) setW((p) => (p === cw ? p : cw)); });\n ro.observe(el);\n return () => ro.disconnect();\n }, [ref]);\n return w || fallback;\n}\nexport function MiniChart({ type = 'line', data, series, labels = [], height = 120, width = 320, max, min, grid = true, legend, format = (v) => String(v), title, emphasis = 'last', stacked, reference, band, className, ...rest }) {\n const ser = series || [{ name: title || '', values: data || [] }];\n const n = Math.max(...ser.map((s) => s.values.length), 1);\n const stack = !!stacked && type !== 'line' && ser.length > 1;\n // cumulative tops per series when stacked\n const cum = stack ? ser.map((_s, si) => Array.from({ length: n }, (_, i) => ser.slice(0, si + 1).reduce((a, t) => a + (Number(t.values[i]) || 0), 0))) : null;\n // a reference line ({ value, label } or a number) and a target band ({ from, to, label }) are annotations, not series; the scale includes them\n const ref = reference == null ? null : typeof reference === 'number' ? { value: reference } : reference;\n const extra = [ref && ref.value, band && band.from, band && band.to].filter((v) => typeof v === 'number');\n const { hi, lo } = scale((stack ? cum.map((values) => ({ values })) : ser).concat(extra.length ? [{ values: extra }] : []), max, min);\n const figRef = React.useRef(null);\n const W = useWidth(figRef, width), H = height, iw = Math.max(W - PAD.l - PAD.r, 1), ih = H - PAD.t - PAD.b;\n const y = (v) => PAD.t + ih - ((v - lo) / (hi - lo)) * ih;\n const x = (i) => PAD.l + (n === 1 ? iw / 2 : (i / (n - 1)) * iw);\n const id = React.useMemo(() => uid('agn-chart'), []);\n const ticks = [lo, (lo + hi) / 2, hi];\n const desc = ser.map((s) => (s.name ? s.name + ': ' : '') + s.values.map(format).join(', ')).join('; ');\n let marks;\n if (type === 'bar' && stack) {\n const gw = iw / n, bw = Math.max(2, gw * 0.6);\n marks = ser.map((_s, si) => cum[si].map((top, i) => {\n const base = si ? cum[si - 1][i] : 0;\n const by = y(top), bh = y(base) - y(top);\n if (bh <= 0) return null;\n return <rect key={si + '-' + i} x={PAD.l + i * gw + (gw - bw) / 2} y={by} width={bw} height={Math.max(bh - (si ? 1 : 0), 0.5)} rx={si === ser.length - 1 ? 1.5 : 0} fill={COLORS[si % 6]} opacity={emphasis === 'last' && i === n - 1 ? 1 : 0.8} />;\n }));\n } else if (type === 'bar') {\n const groups = n, gw = iw / groups, bw = Math.max(2, (gw * 0.7) / ser.length);\n marks = ser.map((s, si) => s.values.map((v, i) => {\n const bx = PAD.l + i * gw + (gw - bw * ser.length) / 2 + si * bw;\n const by = y(Math.max(v, 0)), bh = Math.abs(y(v) - y(0));\n return <rect key={si + '-' + i} x={bx} y={by} width={bw - 1} height={Math.max(bh, 1)} rx=\"1.5\" fill={COLORS[si % 6]} opacity={emphasis === 'last' && i === n - 1 ? 1 : 0.75} />;\n }));\n } else if (stack) {\n // stacked area: each band fills between the previous cumulative line and its own\n marks = ser.map((_s, si) => {\n const c = COLORS[si % 6];\n const top = cum[si].map((v, i) => [x(i), y(v)]);\n const bot = (si ? cum[si - 1] : cum[si].map(() => Math.max(lo, 0))).map((v, i) => [x(i), y(v)]).reverse();\n const d = top.concat(bot).map((p, i) => (i ? 'L' : 'M') + p[0].toFixed(1) + ' ' + p[1].toFixed(1)).join(' ') + ' Z';\n return (\n <g key={si}>\n <path d={d} fill={c} opacity=\".22\" />\n <path d={path(cum[si], x, y)} fill=\"none\" stroke={c} strokeWidth=\"1.5\" strokeLinejoin=\"round\" strokeLinecap=\"round\" />\n </g>\n );\n });\n } else {\n marks = ser.map((s, si) => {\n const c = COLORS[si % 6];\n const last = s.values.length - 1;\n return (\n <g key={si}>\n {type === 'area' && !s.dashed && <path d={path(s.values, x, y, true, PAD.t + ih)} fill={c} opacity=\".12\" />}\n <path d={path(s.values, x, y)} fill=\"none\" stroke={c} strokeWidth={s.dashed ? 1.5 : 2} strokeDasharray={s.dashed ? '4 3' : undefined} strokeLinejoin=\"round\" strokeLinecap=\"round\" className={s.dashed ? 'agn-chart__compare' : undefined} />\n {emphasis === 'last' && last >= 0 && !s.dashed && <circle cx={x(last)} cy={y(s.values[last])} r=\"3.5\" fill=\"var(--panel)\" stroke={c} strokeWidth=\"2\" />}\n </g>\n );\n });\n }\n // thin labels by available width (~44px per label) as well as by count\n const every = Math.max(1, labels.length <= 8 && iw / Math.max(labels.length, 1) >= 36 ? 1 : Math.ceil(labels.length / Math.max(2, Math.floor(iw / 48))));\n return (\n <figure ref={figRef} className={cx('agn-chart', 'agn-chart--' + type, stack && 'agn-chart--stacked', className)} {...rest}>\n <svg className=\"agn-chart__svg\" viewBox={'0 0 ' + W + ' ' + H} width=\"100%\" height={H} role=\"img\" aria-labelledby={id + '-t'} preserveAspectRatio=\"none\">\n <title id={id + '-t'}>{(title ? title + '. ' : '') + desc}</title>\n {grid && ticks.map((t, i) => <line key={i} className=\"agn-chart__grid\" x1={PAD.l} x2={W - PAD.r} y1={y(t)} y2={y(t)} />)}\n {band && <g className=\"agn-chart__band\"><rect x={PAD.l} width={iw} y={y(Math.max(band.from, band.to))} height={Math.abs(y(band.from) - y(band.to))} />{band.label && <text className=\"agn-chart__label agn-chart__band-label\" x={PAD.l + 4} y={y(Math.max(band.from, band.to)) + 11}>{band.label}</text>}</g>}\n {marks}\n {ref && <g className=\"agn-chart__ref\"><line x1={PAD.l} x2={W - PAD.r} y1={y(ref.value)} y2={y(ref.value)} />{ref.label && <text className=\"agn-chart__label agn-chart__ref-label\" x={W - PAD.r} y={y(ref.value) - 4} textAnchor=\"end\">{ref.label}</text>}</g>}\n {labels.length > 0 && labels.map((l, i) => (i === 0 || i === labels.length - 1 || (i % every === 0 && labels.length - 1 - i >= Math.max(1, every * 0.6))) && <text key={i} className=\"agn-chart__label\" x={type === 'bar' ? PAD.l + (i + 0.5) * (iw / n) : x(i)} y={H - 4} textAnchor={type === 'bar' ? 'middle' : i === 0 ? 'start' : i === labels.length - 1 ? 'end' : 'middle'}>{l}</text>)}\n </svg>\n {legend && ser.length > 0 && (\n <figcaption className=\"agn-chart__legend\">{ser.map((s, i) => <span key={i} className=\"agn-chart__key\"><i className={cx('agn-chart__swatch', s.dashed && 'agn-chart__swatch--dashed')} style={s.dashed ? { color: COLORS[i % 6] } : { background: COLORS[i % 6] }} />{s.name}{s.values.length > 0 && <b className=\"agn-num\">{format(s.values[s.values.length - 1])}</b>}</span>)}</figcaption>\n )}\n </figure>\n );\n}\n// Inline trend line for table cells and stat tiles: no axes, the end point emphasised.\n// zero={false} (or min/max) fits the scale to the data, so a 27–36 s trend is not flat.\nexport function Sparkline({ data = [], width = 96, height = 24, area, color = 1, tone, min, max, zero = true, className, ...rest }) {\n const c = tone ? 'var(--' + tone + ')' : COLORS[(color - 1) % 6];\n const n = data.length;\n const base = zero && min == null && max == null ? [0] : [];\n const hi = max != null ? max : Math.max(...data, ...base), lo = min != null ? min : Math.min(...data, ...base), span = hi - lo || 1;\n const x = (i) => 3 + (n <= 1 ? (width - 6) / 2 : (i / (n - 1)) * (width - 6));\n const y = (v) => 3 + (height - 6) - ((v - lo) / span) * (height - 6);\n const d = path(data, x, y);\n return (\n <svg className={cx('agn-sparkline', className)} width={width} height={height} viewBox={'0 0 ' + width + ' ' + height} role=\"img\" aria-label={data.join(', ')} {...rest}>\n {area && n > 1 && <path d={path(data, x, y, true, height - 3)} fill={c} opacity=\".12\" />}\n {n > 1 && <path d={d} fill=\"none\" stroke={c} strokeWidth=\"1.5\" strokeLinejoin=\"round\" strokeLinecap=\"round\" />}\n {n > 0 && <circle cx={x(n - 1)} cy={y(data[n - 1])} r=\"2.5\" fill={c} />}\n </svg>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Avatar } from './Avatar.jsx';\nimport { Tag } from './Tag.jsx';\nimport { Badge } from './Badge.jsx';\n// Board of columns and cards: approvals by stage, cases by status. Drag between columns; keyboard: Enter opens, ← → move, ↑ ↓ walk the column. Columns may carry a WIP limit.\nconst DEFAULT_LABELS = { add: 'Add', limit: 'limit', empty: 'No cards', moveTo: 'Move to' };\nexport function Kanban({ columns = [], cards = [], onMove, onCardClick, onAdd, renderCard, labels, className, style, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [drag, setDrag] = useState(null);\n const [over, setOver] = useState(null);\n const byCol = (id) => cards.filter((c) => c.column === id);\n const move = (card, dir) => {\n const i = columns.findIndex((c) => c.id === card.column);\n const n = columns[i + dir];\n if (n && onMove) onMove(card.id, n.id, card);\n };\n const walk = (e, dir) => {\n const col = e.currentTarget.closest('[data-col]');\n const items = Array.from(col.querySelectorAll('[data-card]'));\n const i = items.indexOf(e.currentTarget);\n const next = items[i + dir];\n if (next) next.focus();\n };\n return (\n <div className={cx('agn-kanban', className)} style={style} {...rest}>\n {columns.map((col) => {\n const list = byCol(col.id);\n const overLimit = col.limit != null && list.length > col.limit;\n return (\n <section key={col.id} data-col={col.id} className={cx('agn-kanban__col', over === col.id && 'agn-kanban__col--over', overLimit && 'agn-kanban__col--over-limit')} aria-label={col.label}\n onDragOver={(e) => { if (drag) { e.preventDefault(); setOver(col.id); } }} onDragLeave={() => setOver(null)} onDrop={(e) => { e.preventDefault(); setOver(null); if (drag && onMove && drag.column !== col.id) onMove(drag.id, col.id, drag); setDrag(null); }}>\n <header className=\"agn-kanban__head\">\n <span className={cx('agn-kanban__title', col.tone && 'agn-kanban__title--' + col.tone)}>{col.tone && <i className=\"agn-kanban__tone\" aria-hidden=\"true\" />}{col.label}</span>\n <span className={cx('agn-kanban__count', 'agn-num', overLimit && 'agn-kanban__count--over')}>{list.length}{col.limit != null && <span className=\"agn-kanban__limit\"> / {col.limit}</span>}</span>\n {onAdd && <button type=\"button\" className=\"agn-kanban__add agn-focus\" aria-label={l.add + ' · ' + col.label} onClick={() => onAdd(col.id)}><Icon name=\"plus\" size={14} /></button>}\n </header>\n <div className=\"agn-kanban__cards\">\n {list.length === 0 && <div className=\"agn-kanban__empty\">{l.empty}</div>}\n {list.map((card) => (\n // biome-ignore lint/a11y/useSemanticElements: draggable card with rich content: a <button> cannot hold it and drags poorly in Firefox; role=button + tabIndex + Enter/arrow handlers give the same contract\n <div key={card.id} data-card={card.id} draggable={!!onMove} tabIndex={0} role=\"button\" aria-label={typeof card.title === 'string' ? card.title : undefined}\n className={cx('agn-kanban__card', 'agn-focus', drag && drag.id === card.id && 'agn-kanban__card--dragging', card.tone && 'agn-kanban__card--' + card.tone)}\n onDragStart={(e) => { setDrag(card); e.dataTransfer.effectAllowed = 'move'; }} onDragEnd={() => { setDrag(null); setOver(null); }}\n onClick={() => onCardClick && onCardClick(card)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); onCardClick && onCardClick(card); }\n else if (e.key === 'ArrowRight') { e.preventDefault(); move(card, 1); }\n else if (e.key === 'ArrowLeft') { e.preventDefault(); move(card, -1); }\n else if (e.key === 'ArrowDown') { e.preventDefault(); walk(e, 1); }\n else if (e.key === 'ArrowUp') { e.preventDefault(); walk(e, -1); }\n }}>\n {renderCard ? renderCard(card) : (\n <>\n {(card.tags || card.priority) && <div className=\"agn-kanban__tags\">{card.priority && <Tag tone={card.priority === 'high' ? 'bad' : card.priority === 'medium' ? 'warn' : 'neutral'}>{card.priority}</Tag>}{(card.tags || []).map((t, i) => <Tag key={i}>{t}</Tag>)}</div>}\n <div className=\"agn-kanban__card-title\">{card.title}</div>\n {card.sub && <div className=\"agn-kanban__card-sub\">{card.sub}</div>}\n {(card.assignee || card.due || card.count != null) && (\n <div className=\"agn-kanban__card-foot\">\n {card.assignee && <Avatar size=\"xs\" name={typeof card.assignee === 'string' ? card.assignee : card.assignee.name} src={card.assignee && card.assignee.src} kind={(card.assignee && card.assignee.kind) || 'person'} />}\n {card.due && <span className={cx('agn-kanban__due', card.overdue && 'agn-kanban__due--overdue')}><Icon name={card.overdue ? 'clock-alert' : 'calendar'} size={12} />{card.due}</span>}\n {card.count != null && <Badge size=\"sm\" icon=\"message-square\">{card.count}</Badge>}\n </div>\n )}\n </>\n )}\n </div>\n ))}\n </div>\n </section>\n );\n })}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Month grid with schedule chips: scheduled runs, call campaigns, maintenance windows. Locale drives weekday names and the day order; chips carry a tone and a word.\nconst DEFAULT_LABELS = { more: 'more', today: 'Today', prev: 'Previous month', next: 'Next month' };\nconst toDate = (d) => (d instanceof Date ? d : new Date(d));\nconst sameDay = (a, b) => a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\nexport function CalendarView({ month, events = [], locale = 'en', weekStartsOn = 1, today = new Date(), maxPerDay = 3, onEventClick, onDayClick, onMonthChange, labels, header = true, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const m = month ? toDate(month) : new Date(today.getFullYear(), today.getMonth(), 1);\n const first = new Date(m.getFullYear(), m.getMonth(), 1);\n const offset = (first.getDay() - weekStartsOn + 7) % 7;\n const start = new Date(first); start.setDate(first.getDate() - offset);\n const days = Array.from({ length: 42 }, (_, i) => { const d = new Date(start); d.setDate(start.getDate() + i); return d; });\n const weeks = days.slice(35).some((d) => d.getMonth() === m.getMonth()) ? 6 : 5;\n const dayFmt = new Intl.DateTimeFormat(locale, { weekday: 'short' });\n const monthFmt = new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric' });\n const timeFmt = new Intl.DateTimeFormat(locale, { hour: '2-digit', minute: '2-digit' });\n const weekdays = Array.from({ length: 7 }, (_, i) => dayFmt.format(days[i]));\n const eventsOf = (d) => events.filter((e) => { const s = toDate(e.start); const en = e.end ? toDate(e.end) : s; const d0 = new Date(d.getFullYear(), d.getMonth(), d.getDate()); const d1 = new Date(d0); d1.setDate(d0.getDate() + 1); return s < d1 && en >= d0; });\n const shift = (n) => onMonthChange && onMonthChange(new Date(m.getFullYear(), m.getMonth() + n, 1));\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div className={cx('agn-cal', 'agn-calview', className)} role=\"group\" aria-label={monthFmt.format(m)} {...rest}>\n {header && (\n <div className=\"agn-cal__header\">\n <span className=\"agn-cal__month\">{monthFmt.format(m)}</span>\n <span className=\"agn-cal__nav\">\n {onMonthChange && <button type=\"button\" className=\"agn-cal__nav-btn agn-focus\" aria-label={l.prev} onClick={() => shift(-1)}><Icon name=\"chevron-left\" size={16} /></button>}\n {onMonthChange && <button type=\"button\" className=\"agn-cal__nav-btn agn-cal__nav-btn--today agn-focus\" onClick={() => onMonthChange(new Date(today.getFullYear(), today.getMonth(), 1))}>{l.today}</button>}\n {onMonthChange && <button type=\"button\" className=\"agn-cal__nav-btn agn-focus\" aria-label={l.next} onClick={() => shift(1)}><Icon name=\"chevron-right\" size={16} /></button>}\n </span>\n </div>\n )}\n <div className=\"agn-cal__weekdays\" aria-hidden=\"true\">{weekdays.map((w, i) => <div key={i} className=\"agn-cal__weekday\">{w}</div>)}</div>\n <div className=\"agn-cal__grid\" style={{ '--agn-cal-weeks': weeks }}>\n {days.slice(0, weeks * 7).map((d, i) => {\n const evs = eventsOf(d);\n const shown = evs.slice(0, maxPerDay);\n const out = d.getMonth() !== m.getMonth();\n const isToday = sameDay(d, today);\n const full = d.toLocaleDateString(locale, { day: 'numeric', month: 'long' });\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: pointer target for the whole day cell; the date button inside is the keyboard path and its click bubbles here\n // biome-ignore lint/a11y/useKeyWithClickEvents: pointer target for the whole day cell; the date button inside is the keyboard path and its click bubbles here\n <div key={i} className={cx('agn-cal__day', out && 'agn-cal__day--outside', isToday && 'agn-cal__day--today', (i % 7 === 5 || i % 7 === 6) && weekStartsOn === 1 && 'agn-cal__day--weekend')} onClick={onDayClick ? () => onDayClick(d) : undefined}>\n {onDayClick ? <button type=\"button\" className={cx('agn-cal__date', 'agn-num', 'agn-focus')} aria-label={full}>{d.getDate()}</button> : <span className={cx('agn-cal__date', 'agn-num')}><span aria-hidden=\"true\">{d.getDate()}</span><span className=\"agn-sr\">{full}</span></span>}\n <div className=\"agn-cal__events\">\n {shown.map((e, j) => (\n <button key={e.id || j} type=\"button\" className={cx('agn-cal__chip', 'agn-focus-inset', 'agn-cal__chip--' + (e.tone || 'signal'))} title={e.title} onClick={(ev) => { ev.stopPropagation(); onEventClick && onEventClick(e); }}>\n {!e.allDay && <span className=\"agn-cal__chip-time agn-num\">{timeFmt.format(toDate(e.start))}</span>}<span className=\"agn-cal__chip-title\">{e.title}</span>\n </button>\n ))}\n {evs.length > shown.length && <span className=\"agn-cal__more\">+{evs.length - shown.length} {l.more}</span>}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Bars on a day or week scale with a today line: rollout plans, campaign windows, a run's steps on a time axis. Groups indent their children; milestones are diamonds.\nconst DAY = 86400000;\nconst toDate = (d) => (d instanceof Date ? d : new Date(d));\nconst startOfDay = (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate());\nexport function Gantt({ tasks = [], start, end, unit = 'day', colWidth, today = new Date(), locale = 'en', labelWidth = 200, onTaskClick, labels, className, style, ...rest }) {\n const l = { today: 'Today', progress: 'done', ...labels };\n const dates = tasks.flatMap((t) => [toDate(t.start), t.end ? toDate(t.end) : toDate(t.start)]);\n const s0 = startOfDay(start ? toDate(start) : new Date(Math.min(...dates.map((d) => d.getTime()))));\n const e0 = startOfDay(end ? toDate(end) : new Date(Math.max(...dates.map((d) => d.getTime())) + DAY));\n const unitMs = unit === 'week' ? 7 * DAY : DAY;\n const cw = colWidth || (unit === 'week' ? 72 : 32);\n const cols = Math.max(1, Math.ceil((e0 - s0) / unitMs) + (unit === 'week' ? 1 : 0));\n const x = (d) => ((startOfDay(toDate(d)) - s0) / unitMs) * cw;\n const fmtDay = new Intl.DateTimeFormat(locale, { day: 'numeric' });\n const fmtWd = new Intl.DateTimeFormat(locale, { weekday: 'narrow' });\n const fmtMonth = new Intl.DateTimeFormat(locale, { month: 'short', year: 'numeric' });\n const fmtWeek = new Intl.DateTimeFormat(locale, { day: 'numeric', month: 'short' });\n const fmtFull = new Intl.DateTimeFormat(locale, { day: 'numeric', month: 'short' });\n const heads = Array.from({ length: cols }, (_, i) => new Date(s0.getTime() + i * unitMs));\n // month bands for the upper header\n const bands = [];\n heads.forEach((d) => { const k = d.getFullYear() + '-' + d.getMonth(); const b = bands[bands.length - 1]; if (b && b.key === k) b.n += 1; else bands.push({ key: k, label: fmtMonth.format(d), n: 1 }); });\n const todayX = x(today) + (((today - startOfDay(today)) / unitMs) * cw);\n const showToday = todayX >= 0 && todayX <= cols * cw;\n return (\n <div className={cx('agn-gantt', 'agn-gantt--' + unit, className)} style={{ '--agn-gantt-label-w': labelWidth + 'px', '--agn-gantt-col': cw + 'px', ...style }} {...rest}>\n <div className=\"agn-gantt__labels\">\n <div className=\"agn-gantt__head agn-gantt__head--labels\" />\n {tasks.map((t) => (\n <div key={t.id} className={cx('agn-gantt__label', t.group && 'agn-gantt__label--group')} style={{ paddingLeft: 12 + (t.depth || 0) * 16 }} title={typeof t.title === 'string' ? t.title : undefined}>\n {t.milestone && <Icon name=\"diamond\" size={12} className=\"agn-gantt__label-icon\" />}{t.title}\n </div>\n ))}\n </div>\n <div className=\"agn-gantt__scroll\">\n <div className=\"agn-gantt__canvas\" style={{ width: cols * cw }}>\n <div className=\"agn-gantt__head\">\n <div className=\"agn-gantt__bands\">{bands.map((b) => <div key={b.key} className=\"agn-gantt__band\" style={{ width: b.n * cw }}>{b.label}</div>)}</div>\n <div className=\"agn-gantt__cols\">{heads.map((d, i) => <div key={i} className={cx('agn-gantt__col', unit === 'day' && (d.getDay() === 0 || d.getDay() === 6) && 'agn-gantt__col--weekend')}>{unit === 'day' ? <><span className=\"agn-gantt__wd\">{fmtWd.format(d)}</span><span className=\"agn-num\">{fmtDay.format(d)}</span></> : <span className=\"agn-num\">{fmtWeek.format(d)}</span>}</div>)}</div>\n </div>\n <div className=\"agn-gantt__rows\">\n {tasks.map((t) => {\n const s = toDate(t.start); const e = t.end ? toDate(t.end) : s;\n const left = x(s); const width = Math.max(cw * 0.5, x(e) - left + (t.milestone ? 0 : cw));\n const tone = t.tone || (t.group ? 'neutral' : 'signal');\n const Comp = onTaskClick ? 'button' : 'div';\n const title = (typeof t.title === 'string' ? t.title : '') + ': ' + fmtFull.format(s) + (t.end ? ' – ' + fmtFull.format(e) : '') + (t.progress != null ? ', ' + Math.round(t.progress * 100) + '% ' + l.progress : '');\n return (\n <div key={t.id} className={cx('agn-gantt__row', t.group && 'agn-gantt__row--group')}>\n {t.milestone ? (\n <Comp type={onTaskClick ? 'button' : undefined} className={cx('agn-gantt__milestone', 'agn-focus', 'agn-gantt__bar--' + tone)} style={{ left: left + cw / 2 }} title={title} aria-label={title} onClick={onTaskClick ? () => onTaskClick(t) : undefined} />\n ) : (\n <Comp type={onTaskClick ? 'button' : undefined} className={cx('agn-gantt__bar', 'agn-focus', 'agn-gantt__bar--' + tone, t.group && 'agn-gantt__bar--group')} style={{ left, width }} title={title} aria-label={title} onClick={onTaskClick ? () => onTaskClick(t) : undefined}>\n {t.progress != null && <span className=\"agn-gantt__progress\" style={{ width: Math.min(100, Math.max(0, t.progress * 100)) + '%' }} />}\n {!t.group && <span className=\"agn-gantt__bar-label\">{t.assignee || (t.progress != null ? Math.round(t.progress * 100) + '%' : '')}</span>}\n </Comp>\n )}\n </div>\n );\n })}\n {showToday && <div className=\"agn-gantt__today\" style={{ left: todayX }} aria-hidden=\"true\"><span className=\"agn-gantt__today-label\">{l.today}</span></div>}\n </div>\n </div>\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Label/value pairs for record detail panels: stacked (label above) or horizontal (label left, fixed width). 1–3 columns.\nexport function DescriptionList({ items = [], columns = 1, horizontal, labelWidth, className, style, ...rest }) {\n const list = items.map((it) => (Array.isArray(it) ? { label: it[0], value: it[1] } : it));\n return (\n <dl className={cx('agn-dl', horizontal && 'agn-dl--horizontal', 'agn-dl--cols-' + columns, className)} style={{ '--agn-dl-label-w': labelWidth, ...style }} {...rest}>\n {list.map((it, i) => (\n <div key={it.key || i} className={cx('agn-dl__item', it.span && 'agn-dl__item--span')}>\n <dt className=\"agn-dl__label\">{it.label}</dt>\n <dd className={cx('agn-dl__value', it.mono && 'agn-mono agn-num')}>{it.value == null || it.value === '' ? <span className=\"agn-dl__empty\">—</span> : it.value}</dd>\n </div>\n ))}\n </dl>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Locale-formatted money or number with tabular digits. tr-TR gives ₺1.250.000,00, en gives ₺1,250,000.00. Negative values read in bad with a sign; never colour alone.\nexport function formatAmount(value, { currency = 'TRY', locale = 'tr-TR', decimals = 2, style } = {}) {\n const n = Number(value);\n if (!Number.isFinite(n)) return '—';\n const kind = style || (currency ? 'currency' : 'decimal');\n try {\n return new Intl.NumberFormat(locale, { style: kind, currency: kind === 'currency' ? currency : undefined, currencyDisplay: 'narrowSymbol', minimumFractionDigits: decimals, maximumFractionDigits: decimals }).format(n);\n } catch {\n return new Intl.NumberFormat(locale, { minimumFractionDigits: decimals, maximumFractionDigits: decimals }).format(n);\n }\n}\nexport function Amount({ value, currency = 'TRY', locale = 'tr-TR', decimals = 2, signed, strong, muteDecimals, tone, as: Comp = 'span', className, ...rest }) {\n const n = Number(value);\n const text = formatAmount(Math.abs(n), { currency, locale, decimals });\n const neg = n < 0;\n const sign = neg ? '−' : signed && n > 0 ? '+' : '';\n const t = tone || (neg ? 'bad' : signed && n > 0 ? 'ok' : undefined);\n // split the fraction part so it can be muted: the separator is the last non-digit before the trailing digits\n let int = text, frac = '';\n if (muteDecimals && decimals > 0) { const m = text.match(/^(.*?)([.,]\\d+)(\\D*)$/); if (m) { int = m[1]; frac = m[2] + m[3]; } }\n return (\n <Comp className={cx('agn-amount', t && 'agn-amount--' + t, strong && 'agn-amount--strong', className)} {...rest}>\n {sign && <span className=\"agn-amount__sign\">{sign}</span>}{int}{frac && <span className=\"agn-amount__frac\">{frac}</span>}\n </Comp>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Code well: mono 13px, line numbers, copy button, language label, wrap toggle. A tiny tokenizer colours json, bash and js with four token colours; anything else is plain.\nconst DEFAULT_LABELS = { copy: 'Copy', copied: 'Copied', wrap: 'Wrap lines', unwrap: 'Unwrap lines' };\nconst KW = { js: /^(const|let|var|function|return|if|else|for|while|import|export|from|default|new|await|async|class|extends|try|catch|throw|typeof|null|undefined|true|false|this)$/, bash: /^(if|then|else|fi|for|do|done|in|case|esac|function|export|echo|cd|ls|cat|grep|curl|docker|git|npm|pnpm|npx|node|python3?|sudo|set|while|return|exit)$/, json: /^(true|false|null)$/ };\n// returns [[type, text], ...] for one line; types: str num kw cmt key op plain\nexport function tokenize(line, lang) {\n const out = [];\n let i = 0;\n const push = (t, s) => { if (!s) return; const last = out[out.length - 1]; if (last && last[0] === t && t === 'plain') last[1] += s; else out.push([t, s]); };\n while (i < line.length) {\n const ch = line[i];\n if ((lang === 'bash' && ch === '#') || (lang === 'js' && line.startsWith('//', i))) { push('cmt', line.slice(i)); break; }\n if (ch === '\"' || ch === \"'\" || (lang === 'js' && ch === '`')) {\n let j = i + 1; while (j < line.length && line[j] !== ch) { if (line[j] === '\\\\') j++; j++; }\n const s = line.slice(i, j + 1);\n // a json key: string followed by a colon\n const rest = line.slice(j + 1);\n push(lang === 'json' && /^\\s*:/.test(rest) ? 'key' : 'str', s); i = j + 1; continue;\n }\n if (/\\d/.test(ch) && (i === 0 || !/[\\w$]/.test(line[i - 1]))) { let j = i; while (j < line.length && /[\\d._eE+-]/.test(line[j])) j++; push('num', line.slice(i, j)); i = j; continue; }\n if (lang === 'bash' && ch === '$') { let j = i + 1; if (line[j] === '{') { while (j < line.length && line[j] !== '}') j++; j++; } else while (j < line.length && /[\\w]/.test(line[j])) j++; push('kw', line.slice(i, j)); i = j; continue; }\n if (/[A-Za-z_$]/.test(ch)) { let j = i; while (j < line.length && /[\\w$-]/.test(line[j])) j++; const w = line.slice(i, j); push(KW[lang] && KW[lang].test(w) ? 'kw' : lang === 'bash' && w.startsWith('-') ? 'op' : 'plain', w); i = j; continue; }\n if (lang === 'bash' && ch === '-' && /[A-Za-z-]/.test(line[i + 1] || '')) { let j = i; while (j < line.length && /[\\w-]/.test(line[j])) j++; push('op', line.slice(i, j)); i = j; continue; }\n push('plain', ch); i++;\n }\n return out;\n}\nexport function CodeBlock({ code = '', language = 'text', title, lineNumbers = true, copy = true, wrap: wrapProp, wrapToggle = true, maxHeight, highlight = [], startLine = 1, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [wrap, setWrap] = useState(!!wrapProp);\n const [copied, setCopied] = useState(false);\n const lines = String(code).replace(/\\n$/, '').split('\\n');\n const lang = ['json', 'bash', 'js', 'sh', 'javascript', 'typescript', 'ts'].includes(language) ? ({ sh: 'bash', javascript: 'js', typescript: 'js', ts: 'js' }[language] || language) : null;\n const doCopy = () => { try { navigator.clipboard.writeText(String(code)).then(() => { setCopied(true); setTimeout(() => setCopied(false), 1500); }); } catch { /* clipboard unavailable */ } };\n return (\n <div className={cx('agn-code', wrap && 'agn-code--wrap', !lineNumbers && 'agn-code--plain', className)} {...rest}>\n <div className=\"agn-code__bar\">\n <span className=\"agn-code__title\">{title || language}</span>\n {title && language !== 'text' && <span className=\"agn-code__lang\">{language}</span>}\n <span className=\"agn-code__tools\">\n {wrapToggle && <button type=\"button\" className={cx('agn-code__tool', 'agn-focus', wrap && 'agn-code__tool--on')} aria-pressed={wrap} title={wrap ? l.unwrap : l.wrap} aria-label={wrap ? l.unwrap : l.wrap} onClick={() => setWrap(!wrap)}><Icon name=\"wrap-text\" size={14} /></button>}\n {copy && <button type=\"button\" className=\"agn-code__tool agn-focus\" onClick={doCopy} aria-live=\"polite\"><Icon name={copied ? 'check' : 'copy'} size={14} />{copied ? l.copied : l.copy}</button>}\n </span>\n </div>\n {/* biome-ignore lint/a11y/noNoninteractiveTabindex: scrollable region: tabIndex=0 lets keyboard users scroll it (WCAG 2.1.1) */}\n <pre className=\"agn-code__pre\" style={{ maxHeight }} tabIndex={0}>\n <code className=\"agn-code__code\">\n {lines.map((ln, i) => (\n <span key={i} className={cx('agn-code__line', highlight.includes(i + startLine) && 'agn-code__line--hl')}>\n {lineNumbers && <span className=\"agn-code__ln\" aria-hidden=\"true\">{i + startLine}</span>}\n <span className=\"agn-code__text\">{lang ? tokenize(ln, lang).map(([t, s], j) => (t === 'plain' ? s : <span key={j} className={'agn-code__' + t}>{s}</span>)) : ln}{'\\n'}</span>\n </span>\n ))}\n </code>\n </pre>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Collapsible JSON view for run inputs and outputs, tool calls and webhook payloads. Keys in text, strings in ok, numbers in warn, booleans and null in link — the CodeBlock colours.\nconst DEFAULT_LABELS = { items: 'items', keys: 'keys', expand: 'Expand', collapse: 'Collapse', copy: 'Copy', copied: 'Copied' };\nconst isObj = (v) => v !== null && typeof v === 'object';\nfunction Node({ k, value, depth, path, open, toggle, l, last }) {\n const obj = isObj(value);\n const arr = Array.isArray(value);\n const isOpen = open.has(path);\n const entries = obj ? (arr ? value.map((v, i) => [i, v]) : Object.entries(value)) : [];\n const count = entries.length;\n const prim = !obj ? <span className={cx('agn-json__v', 'agn-json__v--' + (value === null ? 'null' : typeof value))}>{typeof value === 'string' ? JSON.stringify(value) : String(value)}</span> : null;\n return (\n <li className=\"agn-json__node\">\n <div className=\"agn-json__row\" style={{ paddingLeft: depth * 16 }}>\n {obj && count > 0 ? <button type=\"button\" className=\"agn-json__toggle agn-focus-inset\" aria-expanded={isOpen} aria-label={(isOpen ? l.collapse : l.expand) + ' ' + path} onClick={() => toggle(path)}><Icon name=\"chevron-right\" size={12} className={cx('agn-json__chev', isOpen && 'agn-json__chev--open')} /></button> : <span className=\"agn-json__toggle agn-json__toggle--leaf\" />}\n {k != null && <><span className={cx('agn-json__k', typeof k === 'number' && 'agn-json__k--index')}>{typeof k === 'number' ? k : JSON.stringify(k)}</span><span className=\"agn-json__p\">: </span></>}\n {obj ? (\n <>\n <span className=\"agn-json__p\">{arr ? '[' : '{'}</span>\n {(!isOpen || count === 0) && <span className=\"agn-json__hint\">{count === 0 ? '' : count + ' ' + (arr ? l.items : l.keys)}</span>}\n {(!isOpen || count === 0) && <span className=\"agn-json__p\">{arr ? ']' : '}'}{!last ? ',' : ''}</span>}\n </>\n ) : <>{prim}<span className=\"agn-json__p\">{!last ? ',' : ''}</span></>}\n </div>\n {obj && isOpen && count > 0 && (\n <>\n <ul className=\"agn-json__list\">{entries.map(([ck, cv], i) => <Node key={ck} k={ck} value={cv} depth={depth + 1} path={path + '.' + ck} open={open} toggle={toggle} l={l} last={i === count - 1} />)}</ul>\n <div className=\"agn-json__row\" style={{ paddingLeft: depth * 16 }}><span className=\"agn-json__toggle agn-json__toggle--leaf\" /><span className=\"agn-json__p\">{arr ? ']' : '}'}{!last ? ',' : ''}</span></div>\n </>\n )}\n </li>\n );\n}\nfunction collect(value, depth, maxDepth, path, out) {\n if (!isObj(value) || depth > maxDepth) return out;\n out.add(path);\n (Array.isArray(value) ? value.map((v, i) => [i, v]) : Object.entries(value)).forEach(([k, v]) => collect(v, depth + 1, maxDepth, path + '.' + k, out));\n return out;\n}\nexport function JsonTree({ data, defaultDepth = 2, title, copy = true, maxHeight, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [open, setOpen] = useState(() => collect(data, 1, defaultDepth, '$', new Set()));\n const [copied, setCopied] = useState(false);\n const toggle = (p) => { const n = new Set(open); n.has(p) ? n.delete(p) : n.add(p); setOpen(n); };\n const doCopy = () => { try { navigator.clipboard.writeText(JSON.stringify(data, null, 2)).then(() => { setCopied(true); setTimeout(() => setCopied(false), 1500); }); } catch { /* no clipboard */ } };\n return (\n <div className={cx('agn-json', className)} {...rest}>\n {(title || copy) && <div className=\"agn-code__bar\"><span className=\"agn-code__title\">{title || 'json'}</span><span className=\"agn-code__tools\">{copy && <button type=\"button\" className=\"agn-code__tool agn-focus\" onClick={doCopy}><Icon name={copied ? 'check' : 'copy'} size={14} />{copied ? l.copied : l.copy}</button>}</span></div>}\n <div className=\"agn-json__body\" style={{ maxHeight }}>\n <ul className=\"agn-json__list agn-json__list--root\"><Node value={data} depth={0} path=\"$\" open={open} toggle={toggle} l={l} last /></ul>\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Unified or split diff of two texts: prompt versions, agent configs, knowledge-base edits. Added rows on ok-soft, removed on bad-soft, each with a marker and line numbers — never colour alone.\nconst DEFAULT_LABELS = { added: 'added', removed: 'removed', before: 'Before', after: 'After', unchanged: 'unchanged lines' };\n// Myers-free LCS diff: fine for the few hundred lines a config or prompt has.\nexport function diffLines(before = '', after = '') {\n const a = String(before).replace(/\\n$/, '').split('\\n'), b = String(after).replace(/\\n$/, '').split('\\n');\n const n = a.length, m = b.length;\n const dp = Array.from({ length: n + 1 }, () => new Uint16Array(m + 1));\n for (let i = n - 1; i >= 0; i--) for (let j = m - 1; j >= 0; j--) dp[i][j] = a[i] === b[j] ? dp[i + 1][j + 1] + 1 : Math.max(dp[i + 1][j], dp[i][j + 1]);\n const out = []; let i = 0, j = 0;\n while (i < n && j < m) {\n if (a[i] === b[j]) { out.push({ type: 'ctx', text: a[i], a: i + 1, b: j + 1 }); i++; j++; }\n else if (dp[i + 1][j] >= dp[i][j + 1]) { out.push({ type: 'del', text: a[i], a: i + 1 }); i++; }\n else { out.push({ type: 'add', text: b[j], b: j + 1 }); j++; }\n }\n while (i < n) { out.push({ type: 'del', text: a[i], a: i + 1 }); i++; }\n while (j < m) { out.push({ type: 'add', text: b[j], b: j + 1 }); j++; }\n return out;\n}\n// collapse long runs of context into a fold marker, keeping `context` lines around each change\nfunction fold(lines, context) {\n if (context == null) return lines;\n const keep = new Array(lines.length).fill(false);\n lines.forEach((ln, i) => { if (ln.type !== 'ctx') for (let k = Math.max(0, i - context); k <= Math.min(lines.length - 1, i + context); k++) keep[k] = true; });\n const out = []; let hidden = 0;\n lines.forEach((ln, i) => { if (keep[i]) { if (hidden) { out.push({ type: 'fold', count: hidden }); hidden = 0; } out.push(ln); } else hidden++; });\n if (hidden) out.push({ type: 'fold', count: hidden });\n return out;\n}\n// word-level diff of one removed/added pair: tokens are words, spaces and punctuation; changed tokens come back flagged\nfunction wordDiff(a, b) {\n const ta = String(a).match(/\\s+|[\\p{L}\\p{N}_]+|[^\\s\\p{L}\\p{N}_]/gu) || [], tb = String(b).match(/\\s+|[\\p{L}\\p{N}_]+|[^\\s\\p{L}\\p{N}_]/gu) || [];\n if (ta.length * tb.length > 250000) return null;\n const n = ta.length, m = tb.length;\n const dp = Array.from({ length: n + 1 }, () => new Uint16Array(m + 1));\n for (let i = n - 1; i >= 0; i--) for (let j = m - 1; j >= 0; j--) dp[i][j] = ta[i] === tb[j] ? dp[i + 1][j + 1] + 1 : Math.max(dp[i + 1][j], dp[i][j + 1]);\n const A = [], B = []; let i = 0, j = 0;\n while (i < n && j < m) { if (ta[i] === tb[j]) { A.push({ t: ta[i] }); B.push({ t: tb[j] }); i++; j++; } else if (dp[i + 1][j] >= dp[i][j + 1]) A.push({ t: ta[i++], ch: true }); else B.push({ t: tb[j++], ch: true }); }\n while (i < n) A.push({ t: ta[i++], ch: true });\n while (j < m) B.push({ t: tb[j++], ch: true });\n return [A, B];\n}\n// pair each run of removed lines with the run of added lines that follows it, line by line\nfunction pairWords(shown) {\n const map = new Map();\n let i = 0;\n while (i < shown.length) {\n if (shown[i].type !== 'del') { i++; continue; }\n const d = []; while (i < shown.length && shown[i].type === 'del') d.push(shown[i++]);\n const a = []; while (i < shown.length && shown[i].type === 'add') a.push(shown[i++]);\n for (let k = 0; k < Math.min(d.length, a.length); k++) { const w = wordDiff(d[k].text, a[k].text); if (w) { map.set(d[k], w[0]); map.set(a[k], w[1]); } }\n }\n return map;\n}\nexport function DiffView({ before, after, lines, mode = 'unified', title, context = 3, maxHeight, words, wrap, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const all = lines || diffLines(before, after);\n const adds = all.filter((x) => x.type === 'add').length, dels = all.filter((x) => x.type === 'del').length;\n const shown = fold(all, context);\n const wmap = words ? pairWords(shown) : null;\n const textOf = (ln) => { const seg = wmap && wmap.get(ln); return seg ? seg.map((s, k) => (s.ch && s.t.trim() ? <mark key={k} className=\"agn-diff__word\">{s.t}</mark> : s.t)) : ln.text; };\n const Row = ({ ln, side }) => {\n if (ln.type === 'fold') return <tr className=\"agn-diff__fold\"><td colSpan={side ? 2 : 3}>··· {ln.count} {l.unchanged}</td></tr>;\n const t = ln.type;\n return (\n <tr className={cx('agn-diff__row', 'agn-diff__row--' + t)}>\n {(!side || side === 'a') && <td className=\"agn-diff__ln agn-num\">{ln.a || ''}</td>}\n {(!side || side === 'b') && <td className=\"agn-diff__ln agn-num\">{ln.b || ''}</td>}\n <td className=\"agn-diff__code\"><span className=\"agn-diff__mark\"><span aria-hidden=\"true\">{t === 'add' ? '+' : t === 'del' ? '−' : ' '}</span>{(t === 'add' || t === 'del') && <span className=\"agn-sr\">{t === 'add' ? l.added : l.removed}</span>}</span><span className=\"agn-diff__text\">{textOf(ln)}</span></td>\n </tr>\n );\n };\n let body;\n if (mode === 'split') {\n // pair deletions with the additions that follow them\n const left = [], right = [];\n let i = 0;\n while (i < shown.length) {\n const ln = shown[i];\n if (ln.type === 'ctx' || ln.type === 'fold') { left.push(ln); right.push(ln); i++; continue; }\n const dels2 = []; const adds2 = [];\n while (i < shown.length && shown[i].type === 'del') dels2.push(shown[i++]);\n while (i < shown.length && shown[i].type === 'add') adds2.push(shown[i++]);\n const h = Math.max(dels2.length, adds2.length);\n for (let k = 0; k < h; k++) { left.push(dels2[k] || { type: 'pad' }); right.push(adds2[k] || { type: 'pad' }); }\n }\n const Side = ({ rows, side, head }) => (\n <div className=\"agn-diff__side\"><table className=\"agn-diff__table\"><caption className=\"agn-diff__caption\">{head}</caption><tbody>{rows.map((ln, k) => ln.type === 'pad' ? <tr key={k} className=\"agn-diff__row agn-diff__row--pad\"><td className=\"agn-diff__ln\" /><td className=\"agn-diff__code\" /></tr> : <Row key={k} ln={ln} side={side} />)}</tbody></table></div>\n );\n const Cell = ({ ln, side }) => {\n if (ln.type === 'pad') return <><td className=\"agn-diff__ln agn-diff__cell--pad\" /><td className=\"agn-diff__code agn-diff__cell--pad\" /></>;\n const t = ln.type;\n return <><td className={cx('agn-diff__ln', 'agn-num', 'agn-diff__cell--' + t)}>{(side === 'a' ? ln.a : ln.b) || ''}</td><td className={cx('agn-diff__code', 'agn-diff__cell--' + t)}><span className=\"agn-diff__mark\"><span aria-hidden=\"true\">{t === 'add' ? '+' : t === 'del' ? '−' : ' '}</span>{(t === 'add' || t === 'del') && <span className=\"agn-sr\">{t === 'add' ? l.added : l.removed}</span>}</span><span className=\"agn-diff__text\">{textOf(ln)}</span></td></>;\n };\n // wrap: one table with both sides per row, so wrapped lines stay aligned\n body = wrap\n ? <table className=\"agn-diff__table agn-diff__table--paired\"><colgroup><col className=\"agn-diff__col-ln\" /><col /><col className=\"agn-diff__col-ln\" /><col /></colgroup><thead><tr><th colSpan={2} className=\"agn-diff__caption\">{l.before}</th><th colSpan={2} className=\"agn-diff__caption agn-diff__caption--b\">{l.after}</th></tr></thead><tbody>{left.map((ln, k) => ln.type === 'fold' ? <tr key={k} className=\"agn-diff__fold\"><td colSpan={4}>··· {ln.count} {l.unchanged}</td></tr> : <tr key={k} className=\"agn-diff__row\"><Cell ln={ln} side=\"a\" /><Cell ln={right[k]} side=\"b\" /></tr>)}</tbody></table>\n : <div className=\"agn-diff__split\"><Side rows={left} side=\"a\" head={l.before} /><Side rows={right} side=\"b\" head={l.after} /></div>;\n } else {\n body = <table className=\"agn-diff__table\"><tbody>{shown.map((ln, k) => <Row key={k} ln={ln} />)}</tbody></table>;\n }\n return (\n <div className={cx('agn-diff', 'agn-diff--' + mode, wrap && 'agn-diff--wrap', className)} {...rest}>\n <div className=\"agn-code__bar\">\n <span className=\"agn-code__title\">{title || 'diff'}</span>\n <span className=\"agn-diff__stats\"><span className=\"agn-diff__stat agn-diff__stat--add agn-num\">+{adds} {l.added}</span><span className=\"agn-diff__stat agn-diff__stat--del agn-num\">−{dels} {l.removed}</span></span>\n </div>\n {/* biome-ignore lint/a11y/noNoninteractiveTabindex: scrollable region: tabIndex=0 lets keyboard users scroll it (WCAG 2.1.1) */}\n <div className=\"agn-diff__body\" style={{ maxHeight }} tabIndex={0}>{body}</div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Grid of cells coloured by a threshold scale on the ok/warn/bad ramps (per-agent success by day) or, with scale=\"sequential\", by a signal ramp (load, volume). Values 0–1; thresholds decide the ramp, the value decides the step. Every cell carries its number in a title and, when wide enough, as text.\nconst STEPS = {\n ok: ['var(--ok-100)', 'var(--ok-200)', 'var(--ok-400)', 'var(--ok-600)'],\n warn: ['var(--warn-200)', 'var(--warn-300)', 'var(--warn-400)'],\n bad: ['var(--bad-200)', 'var(--bad-300)', 'var(--bad-500)'],\n};\nexport function heatmapColor(v, { ok = 0.97, warn = 0.9 } = {}) {\n if (v == null || Number.isNaN(v)) return { bg: 'var(--panel-2)', ink: 'var(--mute)', tone: 'none' };\n if (v >= ok) { const t = (v - ok) / Math.max(1 - ok, 1e-6); const i = Math.min(3, Math.floor(t * 4)); return { bg: STEPS.ok[i], ink: i >= 3 ? 'var(--neutral-50)' : 'var(--neutral-950)', tone: 'ok' }; }\n if (v >= warn) { const t = (v - warn) / Math.max(ok - warn, 1e-6); const i = Math.min(2, Math.floor(t * 3)); return { bg: STEPS.warn[2 - i], ink: 'var(--neutral-950)', tone: 'warn' }; }\n const t = v / Math.max(warn, 1e-6); const i = Math.min(2, Math.floor((1 - t) * 3)); return { bg: STEPS.bad[i], ink: i >= 2 ? 'var(--neutral-50)' : 'var(--neutral-950)', tone: 'bad' };\n}\n// Sequential scale on the signal ramp for load and volume: five steps from signal-100 to signal-700, dark ink on the light steps.\nconst SEQ = ['var(--signal-100)', 'var(--signal-200)', 'var(--signal-300)', 'var(--signal-500)', 'var(--signal-700)'];\nexport function heatmapSequentialColor(v, lo = 0, hi = 1) {\n if (v == null || Number.isNaN(v)) return { bg: 'var(--panel-2)', ink: 'var(--mute)', tone: 'none' };\n const t = hi > lo ? Math.max(0, Math.min(1, (v - lo) / (hi - lo))) : 1;\n const i = Math.min(SEQ.length - 1, Math.floor(t * SEQ.length));\n return { bg: SEQ[i], ink: i >= 4 ? 'var(--neutral-50)' : 'var(--neutral-950)', tone: 'seq', step: i };\n}\nconst pct = (v) => (v == null ? '—' : Math.round(v * 100) + '%');\nexport function Heatmap({ rows = [], columns = [], values = [], thresholds, scale = 'threshold', domain, format, showValues, cellSize = 28, legend = true, labels, onCellClick, className, ...rest }) {\n const l = { ok: 'On target', warn: 'Below target', bad: 'Failing', none: 'No runs', seq: '', low: 'Low', high: 'High', ...labels };\n const th = { ok: 0.97, warn: 0.9, ...thresholds };\n const seq = scale === 'sequential';\n const fmt = format || (seq ? (v) => (v == null ? '—' : Number(v).toLocaleString()) : pct);\n const flat = values.flat().filter((v) => v != null && !Number.isNaN(v));\n const lo = domain ? domain[0] : seq ? Math.min(0, ...flat) : 0;\n const hi = domain ? domain[1] : seq ? Math.max(lo + 1e-9, ...flat) : 1;\n return (\n <div className={cx('agn-heatmap', className)} style={{ '--agn-cell': cellSize + 'px' }} {...rest}>\n <table className=\"agn-heatmap__table\">\n <thead><tr><th className=\"agn-heatmap__corner\" /> {columns.map((c, i) => <th key={i} className=\"agn-heatmap__col\" scope=\"col\"><span>{typeof c === 'string' ? c : c.label}</span></th>)}</tr></thead>\n <tbody>\n {rows.map((r, ri) => (\n <tr key={ri}>\n <th className=\"agn-heatmap__row\" scope=\"row\">{typeof r === 'string' ? r : r.label}</th>\n {columns.map((c, ci) => {\n const v = values[ri] ? values[ri][ci] : null;\n const col = seq ? heatmapSequentialColor(v, lo, hi) : heatmapColor(v, th);\n const label = (typeof r === 'string' ? r : r.label) + ' · ' + (typeof c === 'string' ? c : c.label) + ': ' + fmt(v) + (l[col.tone] ? ' (' + l[col.tone] + ')' : '');\n return (\n <td key={ci} className=\"agn-heatmap__td\">\n <button type=\"button\" className={cx('agn-heatmap__cell', 'agn-focus-inset', 'agn-heatmap__cell--' + col.tone)} style={{ background: col.bg, color: col.ink }} title={label} aria-label={label} onClick={onCellClick ? () => onCellClick({ row: r, column: c, value: v, rowIndex: ri, columnIndex: ci }) : undefined} tabIndex={onCellClick ? 0 : -1}>\n {showValues && v != null && <span className=\"agn-num\">{fmt(v)}</span>}\n </button>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n {legend && seq && (\n <div className=\"agn-heatmap__legend agn-heatmap__legend--seq\">\n <span className=\"agn-heatmap__key\">{l.low} <span className=\"agn-num\">{fmt(lo)}</span></span>\n <span className=\"agn-heatmap__ramp\" aria-hidden=\"true\">{SEQ.map((c, i) => <i key={i} style={{ background: c }} />)}</span>\n <span className=\"agn-heatmap__key\"><span className=\"agn-num\">{fmt(hi)}</span> {l.high}</span>\n <span className=\"agn-heatmap__key\"><i style={{ background: 'var(--panel-2)', borderColor: 'var(--line-2)' }} />{l.none}</span>\n </div>\n )}\n {legend && !seq && (\n <div className=\"agn-heatmap__legend\">\n <span className=\"agn-heatmap__key\"><i style={{ background: STEPS.bad[1] }} />{l.bad} <span className=\"agn-num\">< {Math.round(th.warn * 100)}%</span></span>\n <span className=\"agn-heatmap__key\"><i style={{ background: STEPS.warn[1] }} />{l.warn}</span>\n <span className=\"agn-heatmap__key\"><i style={{ background: STEPS.ok[2] }} />{l.ok} <span className=\"agn-num\">≥ {Math.round(th.ok * 100)}%</span></span>\n <span className=\"agn-heatmap__key\"><i style={{ background: 'var(--panel-2)', borderColor: 'var(--line-2)' }} />{l.none}</span>\n </div>\n )}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\n// Flat card: 1px line, radius-lg, no shadow. A 44px header with an optional icon, count and actions; body; a centred \"View all\" footer. A panel only for an object that is really separate.\nconst DEFAULT_LABELS = { viewAll: 'View all' };\nexport function Card({ title, icon, count, actions, footer, viewAll, viewAllHref, padding = 'md', sunken, interactive, selected, labels, as: Comp = 'section', children, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const hasHeader = title != null || icon || count != null || actions;\n const foot = footer || (viewAll || viewAllHref ? <Button variant=\"link\" size=\"sm\" as={viewAllHref ? 'a' : 'button'} href={viewAllHref} onClick={typeof viewAll === 'function' ? viewAll : undefined} iconRight=\"arrow-right\">{typeof viewAll === 'string' ? viewAll : l.viewAll}</Button> : null);\n return (\n <Comp className={cx('agn-card', sunken && 'agn-card--sunken', interactive && 'agn-card--interactive', selected && 'agn-card--selected', 'agn-card--pad-' + padding, className)} {...rest}>\n {hasHeader && (\n <header className=\"agn-card__header\">\n {icon && <Icon name={icon} size={16} className=\"agn-card__icon\" />}\n {title != null && <h3 className=\"agn-card__title\">{title}</h3>}\n {count != null && <span className=\"agn-card__count agn-num\">{count}</span>}\n {actions && <div className=\"agn-card__actions\">{actions}</div>}\n </header>\n )}\n <div className=\"agn-card__body\">{children}</div>\n {foot && <footer className=\"agn-card__footer\">{foot}</footer>}\n </Comp>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// 32px row above a list or board: ghost buttons, a segmented control, a search field; sticky over the scroll. Title and count on the left, actions on the right.\nconst DEFAULT_LABELS = { search: 'Search', clear: 'Clear search' };\nexport function Toolbar({ title, count, search, left, right, sticky, bare, labels, children, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n return (\n <div className={cx('agn-toolbar', sticky && 'agn-toolbar--sticky', bare && 'agn-toolbar--bare', className)} role=\"toolbar\" aria-label={typeof title === 'string' ? title : undefined} {...rest}>\n {(title != null || count != null) && <div className=\"agn-toolbar__title\">{title}{count != null && <span className=\"agn-toolbar__count agn-num\">{count}</span>}</div>}\n {search && (\n <label className=\"agn-toolbar__search\">\n <Icon name=\"search\" size={14} className=\"agn-toolbar__search-icon\" />\n <span className=\"agn-sr\">{search.label || l.search}</span>\n <input type=\"search\" className=\"agn-toolbar__input\" placeholder={search.placeholder || l.search} value={search.value} defaultValue={search.defaultValue} onChange={search.onChange ? (e) => search.onChange(e.target.value, e) : undefined} onKeyDown={search.onSubmit ? (e) => { if (e.key === 'Enter') search.onSubmit(e.target.value); } : undefined} />\n {search.value && search.onChange && <button type=\"button\" className=\"agn-toolbar__clear agn-focus-inset\" aria-label={l.clear} onClick={() => search.onChange('')}><Icon name=\"x\" size={12} /></button>}\n </label>\n )}\n {left && <div className=\"agn-toolbar__left\">{left}</div>}\n {children && <div className=\"agn-toolbar__main\">{children}</div>}\n {right && <div className=\"agn-toolbar__right\">{right}</div>}\n </div>\n );\n}\n// Vertical hairline between toolbar groups.\nexport function ToolbarSeparator({ className, ...rest }) {\n // biome-ignore lint/a11y/useFocusableInteractive: static, non-focusable separator; aria-valuenow and focusability are only required of a focusable (splitter) separator\n // biome-ignore lint/a11y/useAriaPropsForRole: static, non-focusable separator; aria-valuenow and focusability are only required of a focusable (splitter) separator\n return <span className={cx('agn-toolbar__sep', className)} role=\"separator\" aria-orientation=\"vertical\" {...rest} />;\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { AginiesMark } from '../core/AginiesMark.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { SidePanel } from '../feedback/SidePanel.jsx';\nimport { breakpointFor, atLeast, useOverlayFocus } from './responsive.js';\n// The console frame: optional GlobalHeader on top, VerticalNavigation on the left, a scrolling main area with the console gutter, an optional side panel on the right. Pages inside start with a PageHeader.\n// It measures its own width (not the window's): ≥ 1280 sidebar docked · 1024–1279 sidebar on its 56px rail · < 1024 sidebar is a drawer and the side panel a sheet, both opened from a 48px page bar · < 768 the gutter drops to 16px.\n\nexport const PageLayoutContext = React.createContext(null);\n// The enclosing PageLayout's state: { bp, sidebar: 'docked'|'rail'|'overlay'|null, panel: 'docked'|'overlay'|null, railExpanded, setRailExpanded, sidebarOpen, openSidebar, closeSidebar, panelOpen, openPanel, closePanel }. null outside a PageLayout.\nexport function usePageLayout() { return React.useContext(PageLayoutContext); }\n\nconst WIDTHS = { reading: 'var(--content-reading)', default: 'var(--content-max)', wide: 'var(--content-wide)', full: 'none' };\nconst DEFAULT_LABELS = { openNav: 'Open navigation', closeNav: 'Close navigation', openPanel: 'Show details', closePanel: 'Hide details', navigation: 'Navigation', details: 'Details' };\n\nconst useIso = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n\nfunction useControllable(value, onChange, initial) {\n const [own, setOwn] = React.useState(initial);\n const controlled = value !== undefined;\n const v = controlled ? value : own;\n const set = React.useCallback((n) => { if (!controlled) setOwn(n); if (onChange) onChange(n); }, [controlled, onChange]);\n return [v, set];\n}\n\nexport function PageLayout({ header, navigation, sidePanel, sidePanelWidth, width = 'default', maxWidth, flush, sidebarMode = 'auto', panelMode = 'auto', sidebarOpen: sidebarOpenProp, onSidebarOpenChange, panelOpen: panelOpenProp, onPanelOpenChange, bar, labels, as: Comp = 'div', children, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const ref = React.useRef(null);\n const navRef = React.useRef(null);\n const panelRef = React.useRef(null);\n const [bp, setBp] = React.useState(null);\n useIso(() => {\n const el = ref.current;\n if (!el) return undefined;\n // offsetWidth is the layout width: a page scaled into a preview frame still reads its real width.\n const read = () => { const b = breakpointFor(el.offsetWidth); setBp((p) => (p === b ? p : b)); };\n read();\n if (typeof ResizeObserver === 'undefined') return undefined;\n const ro = new ResizeObserver(read);\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n // Until measured, behave as the design width (docked) so a server render or a first paint at 1440 never flashes.\n const b = bp || 'xl';\n const sidebar = !navigation ? null : sidebarMode !== 'auto' ? sidebarMode : atLeast(b, 'xl') ? 'docked' : atLeast(b, 'lg') ? 'rail' : 'overlay';\n const panel = !sidePanel ? null : panelMode !== 'auto' ? panelMode : atLeast(b, 'lg') ? 'docked' : 'overlay';\n const narrow = !atLeast(b, 'md');\n\n const [railExpanded, setRailExpanded] = React.useState(false);\n React.useEffect(() => { if (sidebar !== 'rail') setRailExpanded(false); }, [sidebar]);\n const [sidebarOpen, setSidebarOpen] = useControllable(sidebarOpenProp, onSidebarOpenChange, false);\n const [panelOpen, setPanelOpen] = useControllable(panelOpenProp, onPanelOpenChange, false);\n // A panel that appears while the page is narrow (a row was selected) opens as a sheet.\n const hadPanel = React.useRef(!!sidePanel);\n React.useEffect(() => { if (sidePanel && !hadPanel.current && panel === 'overlay') setPanelOpen(true); hadPanel.current = !!sidePanel; }, [sidePanel, panel, setPanelOpen]);\n\n const drawerOpen = sidebar === 'overlay' && !!sidebarOpen;\n const sheetOpen = panel === 'overlay' && !!panelOpen;\n const closeSidebar = React.useCallback(() => setSidebarOpen(false), [setSidebarOpen]);\n const closePanel = React.useCallback(() => setPanelOpen(false), [setPanelOpen]);\n useOverlayFocus(navRef, drawerOpen, closeSidebar);\n useOverlayFocus(panelRef, sheetOpen, closePanel);\n\n const ctx = React.useMemo(() => ({\n bp: b, sidebar, panel, railExpanded, setRailExpanded,\n sidebarOpen: drawerOpen, openSidebar: () => setSidebarOpen(true), closeSidebar,\n panelOpen: sheetOpen, openPanel: () => setPanelOpen(true), closePanel\n }), [b, sidebar, panel, railExpanded, drawerOpen, sheetOpen, setSidebarOpen, setPanelOpen, closeSidebar, closePanel]);\n\n // A SidePanel passed without a mode sits in the frame (docked); the frame supplies the sheet, scrim and focus handling below 1024.\n const panelNode = React.isValidElement(sidePanel) && sidePanel.type === SidePanel && sidePanel.props.mode == null ? React.cloneElement(sidePanel, { mode: 'docked' }) : sidePanel;\n const showBar = bar !== false && (sidebar === 'overlay' || panel === 'overlay');\n const max = maxWidth != null ? (typeof maxWidth === 'number' ? maxWidth + 'px' : maxWidth) : WIDTHS[width] || WIDTHS.default;\n\n return (\n <PageLayoutContext.Provider value={ctx}>\n <Comp ref={ref}\n className={cx('agn-page', header && 'agn-page--with-header', navigation && 'agn-page--with-nav', sidePanel && 'agn-page--with-panel', flush && 'agn-page--flush', narrow && 'agn-page--narrow', className)}\n data-bp={bp || undefined} data-sidebar={sidebar || undefined} data-panel={panel || undefined}\n style={{ '--agn-page-max': max, '--agn-page-panel-w': typeof sidePanelWidth === 'number' ? sidePanelWidth + 'px' : sidePanelWidth, ...style }} {...rest}>\n {header && <div className=\"agn-page__header\">{header}</div>}\n {showBar && (\n <div className=\"agn-page__bar\">\n {sidebar === 'overlay' && <ButtonIcon icon=\"menu\" size=\"sm\" label={L.openNav} aria-expanded={drawerOpen} onClick={() => setSidebarOpen(!sidebarOpen)} />}\n <span className=\"agn-page__bar-main\">{bar != null && bar !== true ? bar : <AginiesMark size={20} />}</span>\n {panel === 'overlay' && <ButtonIcon icon={sheetOpen ? 'panel-right-close' : 'panel-right-open'} size=\"sm\" label={sheetOpen ? L.closePanel : L.openPanel} aria-expanded={sheetOpen} onClick={() => setPanelOpen(!panelOpen)} />}\n </div>\n )}\n <div className=\"agn-page__body\">\n {navigation && (\n <div ref={navRef} className={cx('agn-page__nav', sidebar === 'overlay' && 'agn-page__nav--drawer', drawerOpen && 'agn-page__nav--open')}\n tabIndex={sidebar === 'overlay' ? -1 : undefined} role={drawerOpen ? 'dialog' : undefined} aria-modal={drawerOpen || undefined} aria-label={drawerOpen ? L.navigation : undefined}>\n {navigation}\n </div>\n )}\n <main className=\"agn-page__main\">\n <div className=\"agn-page__content\">{children}</div>\n </main>\n {sidePanel && (\n <aside ref={panelRef} className={cx('agn-page__panel', panel === 'overlay' && 'agn-page__panel--sheet', sheetOpen && 'agn-page__panel--open')}\n tabIndex={panel === 'overlay' ? -1 : undefined} role={sheetOpen ? 'dialog' : undefined} aria-modal={sheetOpen || undefined} aria-label={sheetOpen ? L.details : undefined}>\n {panelNode}\n </aside>\n )}\n {(drawerOpen || sheetOpen) && <div className=\"agn-page__scrim\" aria-hidden=\"true\" onClick={() => { closeSidebar(); closePanel(); }} />}\n </div>\n </Comp>\n </PageLayoutContext.Provider>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { useOverlayFocus } from '../layout/responsive.js';\n// Right-docked panel (inspector, artifact, conversation; md 288 · lg 360 or any numeric width): header with eyebrow, title and close; tabs slot; scrolling body; footer. docked sits in the layout; overlay is a modal sheet from the right over a scrim, with focus moved in, Tab kept inside, Esc and a scrim click closing it, and focus restored on close.\nexport function SidePanel({ open = true, onClose, title, eyebrow, subtitle, tabs, actions, footer, size = 'md', width, mode = 'overlay', scrim = true, children, labels, className, style, ...rest }) {\n const L = { close: 'Close', ...labels };\n const id = React.useMemo(() => uid('panel-title'), []);\n const ref = React.useRef(null);\n const overlay = mode === 'overlay';\n useOverlayFocus(ref, open && overlay, onClose);\n if (!open) return null;\n const panel = (\n <aside ref={ref} className={cx('agn-panel', 'agn-panel--' + size, 'agn-panel--' + mode, className)} aria-labelledby={title ? id : undefined} role={overlay ? 'dialog' : undefined} aria-modal={overlay || undefined} tabIndex={overlay ? -1 : undefined} style={width != null ? { width: typeof width === 'number' ? width + 'px' : width, ...style } : style} {...rest}>\n <header className=\"agn-panel__head\">\n <div className=\"agn-panel__heading\">\n {eyebrow && <div className=\"agn-eyebrow agn-eyebrow--quiet\">{eyebrow}</div>}\n {title && <h2 id={id} className=\"agn-panel__title\">{title}</h2>}\n {subtitle && <div className=\"agn-panel__subtitle\">{subtitle}</div>}\n </div>\n <div className=\"agn-panel__actions\">{actions}{onClose && <ButtonIcon icon=\"x\" label={L.close} size=\"sm\" onClick={onClose} />}</div>\n </header>\n {tabs && <div className=\"agn-panel__tabs\">{tabs}</div>}\n <div className=\"agn-panel__body\">{children}</div>\n {footer && <footer className=\"agn-panel__foot\">{footer}</footer>}\n </aside>\n );\n if (!overlay || !scrim) return panel;\n return <>{/* biome-ignore lint/a11y/noStaticElementInteractions: the scrim is a pointer convenience; Esc and the close button are the keyboard paths */}<div className=\"agn-panel-scrim\" aria-hidden=\"true\" onClick={onClose} />{panel}</>;\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { BREAKPOINT_ORDER } from './responsive.js';\n// 12-column grid (grid-columns, grid-gap) that responds to its own width through a container query, so a grid in a side pane or a 1024px frame lays out for that width, not the window's. GridItem spans a number of columns, or a per-breakpoint object ({ base: 12, lg: 6, xl: 4 }). min={280} switches to an auto-fill gallery with a minimum column width.\nconst GAPS = { none: '0px', sm: 'var(--space-3)', md: 'var(--space-4)', lg: 'var(--grid-gap)' };\nconst px = (v) => (typeof v === 'number' ? v + 'px' : v);\nexport function Grid({ min, columns, gap = 'lg', rowGap, align, dense, as: Comp = 'div', children, className, style, ...rest }) {\n const s = { ...style };\n if (min != null) s['--agn-grid-min'] = px(min);\n if (columns != null) s['--agn-grid-cols'] = columns;\n if (gap != null) s['--agn-grid-gap'] = GAPS[gap] || px(gap);\n if (rowGap != null) s['--agn-grid-row-gap'] = GAPS[rowGap] || px(rowGap);\n return (\n <Comp className={cx('agn-grid', min != null && 'agn-grid--auto', dense && 'agn-grid--dense', align && 'agn-grid--align-' + align, className)} style={s} {...rest}>\n {children}\n </Comp>\n );\n}\n// Resolves { base, sm, md, lg, xl, 2xl } into one value per breakpoint, each carrying the previous one forward (mobile first).\nfunction resolve(span) {\n const out = {};\n let cur = 12;\n for (const k of BREAKPOINT_ORDER) {\n const v = span && typeof span === 'object' ? span[k] : k === 'base' ? span : undefined;\n if (v != null) cur = v === 'full' ? 'var(--agn-grid-cols, var(--grid-columns))' : v;\n out[k] = cur;\n }\n return out;\n}\nexport function GridItem({ span = 12, start, rowSpan, as: Comp = 'div', children, className, style, ...rest }) {\n const r = resolve(span);\n const s = { ...style };\n for (const k of BREAKPOINT_ORDER) s['--agn-span-' + k] = r[k];\n if (start != null) s.gridColumnStart = start;\n if (rowSpan != null) s.gridRow = 'span ' + rowSpan;\n return <Comp className={cx('agn-grid__item', className)} style={s} {...rest}>{children}</Comp>;\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState, useLayoutEffect, useEffect, useRef } from 'react';\nimport { cx } from '../core/style.js';\n// The website's .room: a section that inverts the theme inside. It reads the nearest ancestor data-theme and sets the opposite, then paints --bg and --text so every token inside flips with it.\nconst useIsoLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\nexport function Room({ theme, padding = 'lg', as: Comp = 'section', children, className, ...rest }) {\n const ref = useRef(null);\n const [auto, setAuto] = useState('dark');\n useIsoLayoutEffect(() => {\n if (theme || !ref.current) return;\n const anc = ref.current.parentElement && ref.current.parentElement.closest('[data-theme]');\n const t = anc ? anc.getAttribute('data-theme') : 'light';\n setAuto(t === 'dark' ? 'light' : 'dark');\n }, [theme]);\n return (\n <Comp ref={ref} data-theme={theme || auto} className={cx('agn-room', 'agn-root', 'agn-room--pad-' + padding, className)} {...rest}>{children}</Comp>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { AginiesLogo } from '../core/AginiesMark.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { Avatar } from '../data/Avatar.jsx';\nimport { Badge } from '../data/Badge.jsx';\n// 48px top bar: logo lockup with the product name, a search trigger with its shortcut, actions, the user's avatar. tone=\"panel\" for consoles; tone=\"ink\" for brand screens.\nconst DEFAULT_LABELS = { search: 'Search', searchHint: 'Search agents, runs, approvals…', notifications: 'Notifications', apps: 'Products', user: 'Account' };\nexport function GlobalHeader({ product, tone = 'panel', search = true, onSearch, shortcut = '⌘K', actions, user, onUserClick, notifications, onNotifications, onApps, brand, left, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const u = typeof user === 'string' ? { name: user } : user;\n return (\n <header className={cx('agn-gheader', 'agn-gheader--' + tone, className)} {...rest}>\n <div className=\"agn-gheader__brand\">\n {onApps && <ButtonIcon icon=\"grip\" label={l.apps} onClick={onApps} className=\"agn-gheader__apps\" />}\n {brand || <AginiesLogo size={22} product={product} />}\n </div>\n {left && <div className=\"agn-gheader__left\">{left}</div>}\n {search && (\n <button type=\"button\" className=\"agn-gheader__search agn-focus\" onClick={onSearch} aria-label={l.search} aria-keyshortcuts={shortcut === '⌘K' ? 'Meta+K Control+K' : undefined}>\n <Icon name=\"search\" size={14} />\n <span className=\"agn-gheader__search-hint\">{l.searchHint}</span>\n {shortcut && <kbd className=\"agn-gheader__kbd\">{shortcut}</kbd>}\n </button>\n )}\n <div className=\"agn-gheader__actions\">\n {actions}\n {(notifications != null || onNotifications) && (\n <span className=\"agn-gheader__notif\">\n <ButtonIcon icon=\"bell\" label={l.notifications + (notifications ? ' (' + notifications + ')' : '')} onClick={onNotifications} />\n {notifications > 0 && <Badge tone=\"bad\" solid size=\"sm\" count={notifications} className=\"agn-gheader__notif-count\" />}\n </span>\n )}\n {u && (\n <button type=\"button\" className=\"agn-gheader__user agn-focus\" onClick={onUserClick} aria-label={l.user + ': ' + (u.name || '')}>\n <Avatar size=\"sm\" name={u.name} src={u.src} />\n </button>\n )}\n </div>\n </header>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { AginiesLogo, AginiesMark } from '../core/AginiesMark.jsx';\nimport { Badge } from '../data/Badge.jsx';\nimport { PageLayoutContext } from '../layout/PageLayout.jsx';\n// The console sidebar (inside PageLayout it follows the page: docked ≥ 1280, a 56px rail 1024–1279 that the user may expand, a drawer below 1024 with a close button that closes on navigation): 232px (56 collapsed; `width` or a drag handle with `resizable`), logo lockup top-left, search, an optional tree slot (folders and agents), nav groups under mono eyebrows (build / observe / organisation), 32px items with icon, label and count; the product switcher at the bottom. Collapsed items keep their name as a tooltip.\nconst DEFAULT_LABELS = { search: 'Search', collapse: 'Collapse sidebar', expand: 'Expand sidebar', navigation: 'Main navigation', resize: 'Resize sidebar', close: 'Close navigation' };\nexport function VerticalNavigation({ groups = [], active, onChange, collapsed: collapsedProp, onCollapse: onCollapseProp, mode: modeProp, product, search, switcher, footer, tree, width, resizable, minWidth = 180, maxWidth = 400, onResize, logoHref, labels, className, style, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const page = React.useContext(PageLayoutContext);\n // mode: an explicit prop wins; inside a PageLayout the page decides; standalone it is docked.\n const mode = modeProp || (page && page.sidebar) || 'docked';\n const drawer = mode === 'overlay' || mode === 'drawer';\n const rail = mode === 'rail';\n const collapsed = drawer ? false : rail ? (!!collapsedProp || !(page && page.railExpanded)) : collapsedProp;\n const onCollapse = drawer ? null : rail ? (next) => { if (page) page.setRailExpanded(!next); if (onCollapseProp) onCollapseProp(next); } : onCollapseProp;\n const navRef = React.useRef(null);\n const [dragW, setDragW] = React.useState(null);\n const [resizing, setResizing] = React.useState(false);\n const w = dragW != null ? dragW : width;\n const clampW = (v) => Math.round(Math.max(minWidth, Math.min(maxWidth, v)));\n const commit = (v) => { const n = clampW(v); setDragW(n); onResize && onResize(n); };\n const onHandleDown = (e) => {\n if (e.button !== 0 || !navRef.current) return;\n e.preventDefault();\n const startX = e.clientX, startW = navRef.current.getBoundingClientRect().width;\n setResizing(true);\n const move = (ev) => commit(startW + ev.clientX - startX);\n const up = () => { setResizing(false); window.removeEventListener('pointermove', move); window.removeEventListener('pointerup', up); };\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n };\n const onHandleKey = (e) => {\n const cur = navRef.current ? navRef.current.getBoundingClientRect().width : 232;\n const d = { ArrowLeft: -16, ArrowRight: 16 }[e.key];\n if (d) { e.preventDefault(); commit(cur + d); }\n else if (e.key === 'Home') { e.preventDefault(); commit(minWidth); }\n else if (e.key === 'End') { e.preventDefault(); commit(maxWidth); }\n };\n const rootStyle = w != null ? { '--sidebar-w': typeof w === 'number' ? w + 'px' : w, ...style } : style;\n const onKey = (e) => {\n if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp') return;\n const items = Array.from(e.currentTarget.querySelectorAll('.agn-nav-item:not(.agn-nav-item--disabled)'));\n const i = items.indexOf(document.activeElement);\n if (i < 0) return;\n e.preventDefault();\n const n = items[(i + (e.key === 'ArrowDown' ? 1 : -1) + items.length) % items.length];\n n.focus();\n };\n return (\n <nav ref={navRef} className={cx('agn-sidebar', collapsed && 'agn-sidebar--collapsed', rail && 'agn-sidebar--rail', drawer && 'agn-sidebar--drawer', resizable && !collapsed && !drawer && 'agn-sidebar--resizable', resizing && 'agn-sidebar--resizing', className)} style={rootStyle} aria-label={l.navigation} {...rest}>\n <div className=\"agn-sidebar__top\">\n {logoHref ? <a href={logoHref} className=\"agn-sidebar__logo agn-focus\">{collapsed ? <AginiesMark size={22} /> : <AginiesLogo size={20} product={product} />}</a> : <span className=\"agn-sidebar__logo\">{collapsed ? <AginiesMark size={22} /> : <AginiesLogo size={20} product={product} />}</span>}\n {drawer && page && <button type=\"button\" className=\"agn-sidebar__collapse agn-focus\" aria-label={l.close} title={l.close} onClick={page.closeSidebar}><Icon name=\"x\" size={16} /></button>}\n {onCollapse && <button type=\"button\" className=\"agn-sidebar__collapse agn-focus\" aria-label={collapsed ? l.expand : l.collapse} title={collapsed ? l.expand : l.collapse} aria-expanded={!collapsed} onClick={() => onCollapse(!collapsed)}><Icon name={collapsed ? 'panel-left-open' : 'panel-left-close'} size={16} /></button>}\n </div>\n {search && (\n <button type=\"button\" className=\"agn-sidebar__search agn-focus\" onClick={search.onClick} title={collapsed ? (search.label || l.search) : undefined} aria-label={search.label || l.search}>\n <Icon name=\"search\" size={14} />\n <span className=\"agn-sidebar__search-label\">{search.placeholder || search.label || l.search}</span>\n {search.shortcut && <kbd className=\"agn-sidebar__kbd\">{search.shortcut}</kbd>}\n </button>\n )}\n {/* biome-ignore lint/a11y/noStaticElementInteractions: delegated arrow-key navigation between the nav links inside; the links are the focus targets */}\n <div className=\"agn-sidebar__scroll\" onKeyDown={onKey}>\n {tree && !collapsed && <div className=\"agn-sidebar__tree\">{tree}</div>}\n {groups.map((g, gi) => (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div key={g.id || gi} className=\"agn-sidebar__group\" role=\"group\" aria-label={g.label}>\n {g.label && <div className=\"agn-sidebar__eyebrow agn-eyebrow agn-eyebrow--quiet\" aria-hidden={collapsed ? true : undefined}>{collapsed ? <span className=\"agn-sidebar__eyebrow-rule\" /> : g.label}</div>}\n <ul className=\"agn-sidebar__list\">\n {g.items.map((it) => {\n const isActive = active === it.id;\n const Comp = it.href ? 'a' : 'button';\n return (\n <li key={it.id}>\n <Comp href={it.href} type={Comp === 'button' ? 'button' : undefined} className={cx('agn-nav-item', isActive && 'agn-nav-item--active', it.disabled && 'agn-nav-item--disabled')} aria-current={isActive ? 'page' : undefined} title={collapsed ? it.label : undefined} disabled={Comp === 'button' ? it.disabled : undefined} aria-disabled={it.disabled && Comp === 'a' ? true : undefined} tabIndex={it.disabled && Comp === 'a' ? -1 : undefined} onClick={(e) => { if (it.disabled) { e.preventDefault(); return; } if (onChange) { if (!it.href) e.preventDefault(); onChange(it.id, it); } if (drawer && page) page.closeSidebar(); }}>\n <span className=\"agn-nav-item__icon\"><Icon name={it.icon || 'circle'} size={16} /></span>\n <span className=\"agn-nav-item__label\">{it.label}</span>\n {it.count != null && !collapsed && <Badge size=\"sm\" tone={it.countTone || 'neutral'} count={it.count} className=\"agn-nav-item__count\" />}\n {it.count != null && collapsed && <span className=\"agn-nav-item__dot\" aria-hidden=\"true\" />}\n </Comp>\n </li>\n );\n })}\n </ul>\n </div>\n ))}\n </div>\n {(footer || switcher) && <div className=\"agn-sidebar__bottom\">{footer}{switcher}</div>}\n {resizable && !collapsed && !drawer && <div className=\"agn-sidebar__resize\" role=\"separator\" aria-orientation=\"vertical\" aria-label={l.resize} aria-valuemin={minWidth} aria-valuemax={maxWidth} aria-valuenow={typeof w === 'number' ? w : undefined} tabIndex={0} onPointerDown={onHandleDown} onKeyDown={onHandleKey} />}\n </nav>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState, useRef, useMemo } from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Badge } from '../data/Badge.jsx';\n// Tabs for views of one object: line (underline, the default), pill (segmented), vertical (settings). Arrow keys move, Home/End jump; each tab may carry a count. With onClose, tabs marked closable (or all, with closable) get a close button and Delete closes the focused tab.\nconst DEFAULT_LABELS = { close: 'Close' };\nexport function Tabs({ items = [], active, defaultActive, onChange, variant = 'line', size = 'md', actions, panel = true, closable, onClose, labels, children, className, panelClassName, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const canClose = (it) => !!onClose && !it.disabled && (it.closable != null ? it.closable : !!closable);\n const [local, setLocal] = useState(defaultActive != null ? defaultActive : items[0] && items[0].id);\n const cur = active !== undefined ? active : local;\n const id = useMemo(() => uid('agn-tabs'), []);\n const listRef = useRef(null);\n const select = (it) => { if (it.disabled) return; if (active === undefined) setLocal(it.id); onChange && onChange(it.id, it); };\n const onKey = (e) => {\n const enabled = items.filter((i) => !i.disabled);\n const i = enabled.findIndex((x) => x.id === cur);\n const horiz = variant !== 'vertical';\n let n = null;\n if (e.key === (horiz ? 'ArrowRight' : 'ArrowDown')) n = enabled[(i + 1) % enabled.length];\n else if (e.key === (horiz ? 'ArrowLeft' : 'ArrowUp')) n = enabled[(i - 1 + enabled.length) % enabled.length];\n else if (e.key === 'Home') n = enabled[0];\n else if (e.key === 'End') n = enabled[enabled.length - 1];\n else if ((e.key === 'Delete' || e.key === 'Backspace') && current && canClose(current)) { e.preventDefault(); onClose(current.id, current); return; }\n if (!n) return;\n e.preventDefault(); select(n);\n const el = listRef.current && listRef.current.querySelector('[data-tab=\"' + n.id + '\"]');\n if (el) el.focus();\n };\n const current = items.find((i) => i.id === cur);\n const content = current && current.content != null ? current.content : children;\n return (\n <div className={cx('agn-tabs', 'agn-tabs--' + variant, size !== 'md' && 'agn-tabs--' + size, className)} {...rest}>\n <div className=\"agn-tabs__bar\">\n <div className=\"agn-tabs__list\" role=\"tablist\" aria-orientation={variant === 'vertical' ? 'vertical' : 'horizontal'} ref={listRef} onKeyDown={onKey}>\n {items.map((it) => {\n const sel = it.id === cur;\n const tab = (\n <button key={it.id} type=\"button\" role=\"tab\" data-tab={it.id} id={id + '-' + it.id} aria-selected={sel} aria-controls={panel ? id + '-p' : undefined} aria-disabled={it.disabled || undefined} tabIndex={sel ? 0 : -1} className={cx('agn-tab', sel && 'agn-tab--active', it.disabled && 'agn-tab--disabled', canClose(it) && 'agn-tab--closable')} onClick={() => select(it)} disabled={it.disabled}>\n {it.icon && <Icon name={it.icon} size={14} />}\n <span className=\"agn-tab__label\">{it.label}</span>\n {it.count != null && <Badge size=\"sm\" tone={sel ? 'signal' : 'neutral'} count={it.count} />}\n </button>\n );\n if (!canClose(it)) return tab;\n return (\n <span key={it.id} className=\"agn-tabs__item\" role=\"presentation\">\n {tab}\n <button type=\"button\" className=\"agn-tab__close agn-focus\" tabIndex={-1} aria-label={L.close + ' ' + (typeof it.label === 'string' ? it.label : '')} title={L.close} onClick={(e) => { e.stopPropagation(); onClose(it.id, it); }}><Icon name=\"x\" size={12} /></button>\n </span>\n );\n })}\n </div>\n {actions && <div className=\"agn-tabs__actions\">{actions}</div>}\n </div>\n {/* biome-ignore lint/a11y/noNoninteractiveTabindex: APG tabs: the tabpanel takes tabIndex=0 so keyboard users reach panel content that has no focusable element of its own */}\n {panel && content != null && <div className={cx('agn-tabs__panel', panelClassName)} role=\"tabpanel\" id={id + '-p'} aria-labelledby={current ? id + '-' + current.id : undefined} tabIndex={0}>{content}</div>}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Badge } from '../data/Badge.jsx';\n// Horizontal top navigation for GlobalHeader shells (Contact, Voice admin): the product's sections as a row of links with icon, label and count; the active one underlined in --signal. ←/→ move, Home/End jump; what does not fit goes into a \"More\" menu.\nconst DEFAULT_LABELS = { navigation: 'Product navigation', more: 'More' };\nexport function GlobalNavigation({ items = [], active, onChange, maxVisible, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const rootRef = React.useRef(null);\n const measureRef = React.useRef(null);\n const moreRef = React.useRef(null);\n const [fit, setFit] = React.useState(items.length);\n const [open, setOpen] = React.useState(false);\n const cap = maxVisible != null ? Math.min(maxVisible, items.length) : items.length;\n // measure every item once in a hidden row, then fit as many as the root's width allows (leaving room for More)\n React.useLayoutEffect(() => {\n const root = rootRef.current, meas = measureRef.current;\n if (!root || !meas) return undefined;\n const calc = () => {\n const ws = Array.from(meas.children).map((c) => c.getBoundingClientRect().width);\n const moreW = ws.pop() || 80;\n const avail = root.clientWidth;\n const gap = parseFloat(getComputedStyle(meas).columnGap) || 0;\n let total = 0, n = 0;\n const all = ws.slice(0, cap).reduce((a, b) => a + b + gap, 0) - gap;\n if (all <= avail && cap === items.length) n = items.length;\n else { for (let i = 0; i < Math.min(ws.length, cap); i++) { if (total + ws[i] + gap + moreW > avail) break; total += ws[i] + gap; n++; } }\n setFit((p) => (p === n ? p : n));\n };\n calc();\n // web fonts change item widths after first paint: re-measure when they load and whenever the hidden row resizes\n if (document.fonts && document.fonts.ready) document.fonts.ready.then(calc);\n if (typeof ResizeObserver === 'undefined') return undefined;\n const ro = new ResizeObserver(calc);\n ro.observe(root);\n ro.observe(meas);\n return () => ro.disconnect();\n }, [items, cap]);\n React.useEffect(() => {\n if (!open) return undefined;\n const close = (e) => { if (moreRef.current && !moreRef.current.contains(e.target)) setOpen(false); };\n document.addEventListener('pointerdown', close);\n return () => document.removeEventListener('pointerdown', close);\n }, [open]);\n const visible = items.slice(0, fit), hidden = items.slice(fit);\n const hiddenActive = hidden.some((it) => it.id === active);\n const pick = (e, it) => { if (it.disabled) { e.preventDefault(); return; } setOpen(false); if (onChange) { if (!it.href) e.preventDefault(); onChange(it.id, it); } };\n const onKey = (e) => {\n if (!['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(e.key)) return;\n const els = Array.from(rootRef.current.querySelectorAll('.agn-gnav__list > li > .agn-gnav__item:not([aria-disabled=\"true\"]):not(:disabled)'));\n const i = els.indexOf(document.activeElement);\n if (i < 0) return;\n e.preventDefault();\n const n = e.key === 'Home' ? 0 : e.key === 'End' ? els.length - 1 : (i + (e.key === 'ArrowRight' ? 1 : -1) + els.length) % els.length;\n els[n].focus();\n };\n const onMenuKey = (e) => {\n const els = Array.from(e.currentTarget.querySelectorAll('[role=\"menuitem\"]:not([aria-disabled=\"true\"])'));\n const i = els.indexOf(document.activeElement);\n if (e.key === 'Escape') { e.preventDefault(); setOpen(false); const t = moreRef.current && moreRef.current.querySelector('.agn-gnav__item'); if (t) t.focus(); return; }\n const d = { ArrowDown: 1, ArrowUp: -1 }[e.key];\n if (d && els.length) { e.preventDefault(); els[(i + d + els.length) % els.length].focus(); }\n };\n const body = (it, menu) => (\n <>\n {it.icon && <Icon name={it.icon} size={menu ? 14 : 15} className=\"agn-gnav__icon\" />}\n <span className=\"agn-gnav__label\">{it.label}</span>\n {it.count != null && <Badge size=\"sm\" tone={it.countTone || (it.id === active ? 'signal' : 'neutral')} count={it.count} />}\n </>\n );\n const renderItem = (it, measure) => {\n const Comp = it.href ? 'a' : 'button';\n const isActive = it.id === active;\n return (\n <Comp href={it.href} type={Comp === 'button' ? 'button' : undefined} className={cx('agn-gnav__item', 'agn-focus', isActive && 'agn-gnav__item--active', it.disabled && 'agn-gnav__item--disabled')} aria-current={!measure && isActive ? 'page' : undefined} disabled={Comp === 'button' ? it.disabled : undefined} aria-disabled={it.disabled && Comp === 'a' ? true : undefined} tabIndex={measure ? -1 : it.disabled && Comp === 'a' ? -1 : undefined} onClick={measure ? undefined : (e) => pick(e, it)}>\n {body(it)}\n </Comp>\n );\n };\n return (\n <nav ref={rootRef} className={cx('agn-gnav', className)} aria-label={l.navigation} onKeyDown={onKey} {...rest}>\n <ul className=\"agn-gnav__list\">\n {visible.map((it) => <li key={it.id}>{renderItem(it)}</li>)}\n {hidden.length > 0 && (\n <li ref={moreRef} className=\"agn-gnav__more\">\n <button type=\"button\" className={cx('agn-gnav__item', 'agn-focus', hiddenActive && 'agn-gnav__item--active')} aria-haspopup=\"menu\" aria-expanded={open} onClick={() => setOpen(!open)} onKeyDown={(e) => { if (e.key === 'ArrowDown') { e.preventDefault(); setOpen(true); setTimeout(() => { const f = moreRef.current && moreRef.current.querySelector('[role=\"menuitem\"]'); if (f) f.focus(); }, 0); } }}>\n <span className=\"agn-gnav__label\">{hiddenActive ? hidden.find((it) => it.id === active).label : l.more}</span>\n <Icon name=\"chevron-down\" size={14} />\n </button>\n {open && (\n <div className=\"agn-gnav__menu\" role=\"menu\" aria-label={l.more} onKeyDown={onMenuKey}>\n {hidden.map((it) => {\n const Comp = it.href ? 'a' : 'button';\n return <Comp key={it.id} role=\"menuitem\" href={it.href} type={Comp === 'button' ? 'button' : undefined} className={cx('agn-gnav__menu-item', it.id === active && 'agn-gnav__menu-item--active')} aria-current={it.id === active ? 'page' : undefined} aria-disabled={it.disabled || undefined} tabIndex={-1} onClick={(e) => pick(e, it)}>{body(it, true)}{it.id === active && <Icon name=\"check\" size={14} className=\"agn-gnav__check\" />}</Comp>;\n })}\n </div>\n )}\n </li>\n )}\n </ul>\n <div ref={measureRef} className=\"agn-gnav__measure\" aria-hidden=\"true\">\n {items.map((it) => <React.Fragment key={it.id}>{renderItem(it, true)}</React.Fragment>)}\n <span className=\"agn-gnav__item\"><span className=\"agn-gnav__label\">{l.more}</span><Icon name=\"chevron-down\" size={14} /></span>\n </div>\n </nav>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Hierarchy trail above a page header: Agents / Zurich welcome call / v8. The last item is the current page and is not a link. Long trails collapse the middle into an ellipsis.\nconst DEFAULT_LABELS = { nav: 'Breadcrumb', more: 'Show hidden path' };\nexport function Breadcrumbs({ items = [], max = 4, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [open, setOpen] = React.useState(false);\n let list = items;\n let hidden = [];\n if (!open && items.length > max) { hidden = items.slice(1, items.length - (max - 2)); list = [items[0], { ellipsis: true }, ...items.slice(items.length - (max - 2))]; }\n return (\n <nav className={cx('agn-crumbs', className)} aria-label={l.nav} {...rest}>\n <ol className=\"agn-crumbs__list\">\n {list.map((it, i) => {\n const last = i === list.length - 1;\n let node;\n if (it.ellipsis) node = <button type=\"button\" className=\"agn-crumbs__more agn-focus\" aria-label={l.more} title={hidden.map((h) => h.label).join(' / ')} onClick={() => setOpen(true)}><Icon name=\"ellipsis\" size={14} /></button>;\n else if (last) node = <span className=\"agn-crumbs__current\" aria-current=\"page\">{it.icon && <Icon name={it.icon} size={14} />}{it.label}</span>;\n else node = <a className=\"agn-crumbs__link agn-focus\" href={it.href || '#'} onClick={it.onClick}>{it.icon && <Icon name={it.icon} size={14} />}{it.label}</a>;\n return <li key={i} className=\"agn-crumbs__item\">{node}{!last && <Icon name=\"chevron-right\" size={12} className=\"agn-crumbs__sep\" />}</li>;\n })}\n </ol>\n </nav>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Record stage path: chevron steps for a case, an approval or a rollout. Done steps in ok with a check, the current step in text, upcoming on panel-2. Status words are always present; compact draws a thin segment bar with a caption.\nconst DEFAULT_LABELS = { stage: 'Stage', done: 'done', current: 'current', upcoming: 'upcoming', lost: 'Closed' };\nexport function Path({ steps = [], current, onChange, compact, lost, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const list = steps.map((s) => (typeof s === 'string' ? { id: s, label: s } : s));\n const ci = list.findIndex((s) => s.id === current);\n const stateOf = (i) => (lost ? (i < ci ? 'done' : i === ci ? 'lost' : 'upcoming') : i < ci ? 'done' : i === ci ? 'current' : 'upcoming');\n if (compact) {\n const cur = list[ci];\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div className={cx('agn-path', 'agn-path--compact', lost && 'agn-path--lost', className)} role=\"group\" aria-label={l.stage} {...rest}>\n <div className=\"agn-path__bar\" aria-hidden=\"true\">{list.map((s, i) => <span key={s.id} className={cx('agn-path__seg', 'agn-path__seg--' + stateOf(i))} />)}</div>\n <div className=\"agn-path__caption\"><span className=\"agn-path__caption-label\">{l.stage}</span><span className=\"agn-path__caption-value\">{lost ? l.lost : cur ? cur.label : ''}</span><span className=\"agn-path__caption-count agn-num\">{Math.max(ci, 0) + 1}/{list.length}</span></div>\n </div>\n );\n }\n return (\n <ol className={cx('agn-path', lost && 'agn-path--lost', className)} aria-label={l.stage} {...rest}>\n {list.map((s, i) => {\n const st = stateOf(i);\n const Comp = onChange ? 'button' : 'span';\n return (\n <li key={s.id} className={cx('agn-path__step', 'agn-path__step--' + st)} aria-current={st === 'current' ? 'step' : undefined}>\n <Comp type={onChange ? 'button' : undefined} className=\"agn-path__inner agn-focus-inset\" onClick={onChange ? () => onChange(s.id, s) : undefined} title={s.label + ' · ' + (st === 'lost' ? l.lost : l[st])}>\n {st === 'done' && <Icon name=\"check\" size={12} />}\n {st === 'lost' && <Icon name=\"x\" size={12} />}\n <span className=\"agn-path__label\">{s.label}</span>\n <span className=\"agn-sr\">, {st === 'lost' ? l.lost : l[st]}</span>\n </Comp>\n </li>\n );\n })}\n </ol>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Numbered steps for a real sequence (a setup wizard, a deploy checklist): done, current, upcoming, error. Horizontal by default, vertical with descriptions. Not for status that is not a sequence.\nconst DEFAULT_LABELS = { step: 'Step', done: 'done', current: 'current', upcoming: 'upcoming', error: 'needs attention', of: 'of' };\nexport function ProgressIndicator({ steps = [], current = 0, onStepClick, vertical, errorSteps = [], labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const list = steps.map((s) => (typeof s === 'string' ? { label: s } : s));\n return (\n <ol className={cx('agn-pind', vertical ? 'agn-pind--vertical' : 'agn-pind--horizontal', className)} aria-label={l.step + ' ' + (current + 1) + ' ' + l.of + ' ' + list.length} {...rest}>\n {list.map((s, i) => {\n const err = errorSteps.includes(i);\n const st = err ? 'error' : i < current ? 'done' : i === current ? 'current' : 'upcoming';\n const clickable = onStepClick && (i <= current || err);\n const Comp = clickable ? 'button' : 'div';\n return (\n <li key={i} className={cx('agn-pind__step', 'agn-pind__step--' + st)} aria-current={st === 'current' ? 'step' : undefined}>\n <Comp type={clickable ? 'button' : undefined} className={cx('agn-pind__inner', clickable && 'agn-focus')} onClick={clickable ? () => onStepClick(i, s) : undefined}>\n <span className=\"agn-pind__marker agn-num\" aria-hidden=\"true\">{st === 'done' ? <Icon name=\"check\" size={12} /> : st === 'error' ? <Icon name=\"triangle-alert\" size={12} /> : i + 1}</span>\n <span className=\"agn-pind__text\">\n <span className=\"agn-pind__label\">{s.label}<span className=\"agn-sr\">, {l[st]}</span></span>\n {s.description && vertical && <span className=\"agn-pind__desc\">{s.description}</span>}\n </span>\n </Comp>\n {i < list.length - 1 && <span className=\"agn-pind__line\" aria-hidden=\"true\" />}\n </li>\n );\n })}\n </ol>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState, useRef } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { useElementWidth, toPx } from '../layout/responsive.js';\n// List + detail: a record list on the left (panel-w-lg wide, resizable by a divider), the selected record as children on the right. Runs and their trace, conversations and their transcript.\n// It measures its own width: below `stackBelow` (default bp-md, 768) list and detail stack — the list fills the pane, picking a record opens the detail as a full pane with a back button; below bp-lg (1024) the list narrows to panel-w (288).\nconst DEFAULT_LABELS = { resize: 'Resize list', empty: 'Select an item', collapse: 'Hide list', expand: 'Show list', back: 'Back to list' };\nexport function SplitView({ items = [], selected, onSelect, renderItem, title, count, headerActions, listWidth, minWidth = 240, maxWidth = 560, resizable = true, collapsible, stackBelow = 'md', defaultStackedView = 'list', onStackedViewChange, onBack, labels, children, className, style, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [w, setW] = useState(listWidth);\n const [open, setOpen] = useState(true);\n const ref = useRef(null);\n const listRef = useRef(null);\n const width = useElementWidth(ref);\n const stacked = width != null && stackBelow !== false && width < toPx(stackBelow);\n const narrow = width != null && width < toPx('lg');\n const [view, setViewState] = useState(defaultStackedView);\n const setView = (v) => { setViewState(v); if (onStackedViewChange) onStackedViewChange(v); };\n const pick = (it) => { if (onSelect) onSelect(it); if (stacked) setView('detail'); };\n const showDetail = stacked && view === 'detail';\n const startDrag = (e) => {\n e.preventDefault();\n const start = e.clientX; const w0 = listRef.current.getBoundingClientRect().width;\n const move = (ev) => setW(Math.max(minWidth, Math.min(maxWidth, w0 + ev.clientX - start)));\n const up = () => { window.removeEventListener('pointermove', move); window.removeEventListener('pointerup', up); };\n window.addEventListener('pointermove', move); window.addEventListener('pointerup', up);\n };\n const onDividerKey = (e) => {\n const w0 = listRef.current.getBoundingClientRect().width;\n if (e.key === 'ArrowLeft') { e.preventDefault(); setW(Math.max(minWidth, w0 - 16)); }\n if (e.key === 'ArrowRight') { e.preventDefault(); setW(Math.min(maxWidth, w0 + 16)); }\n };\n const onListKey = (e) => {\n if (e.key !== 'ArrowDown' && e.key !== 'ArrowUp') return;\n const i = items.findIndex((x) => x.id === selected);\n const n = items[Math.max(0, Math.min(items.length - 1, i + (e.key === 'ArrowDown' ? 1 : -1)))];\n if (n && onSelect) { e.preventDefault(); onSelect(n); const el = listRef.current.querySelector('[data-item=\"' + n.id + '\"]'); if (el) el.focus(); }\n };\n return (\n <div ref={ref} className={cx('agn-split', !open && !stacked && 'agn-split--collapsed', narrow && 'agn-split--narrow', stacked && 'agn-split--stacked', stacked && (showDetail ? 'agn-split--show-detail' : 'agn-split--show-list'), className)} style={{ '--agn-split-w': w != null ? (typeof w === 'number' ? w + 'px' : w) : undefined, ...style }} {...rest}>\n <div ref={listRef} className=\"agn-split__list\" aria-hidden={(!stacked && !open) || showDetail || undefined}>\n {(title || headerActions || collapsible) && (\n <div className=\"agn-split__head\">\n <span className=\"agn-split__title\">{title}{count != null && <span className=\"agn-split__count agn-num\">{count}</span>}</span>\n <span className=\"agn-split__head-actions\">{headerActions}</span>\n </div>\n )}\n {/* biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: single-select listbox on ul/li (APG allows it); options hold rich content a <select> cannot render */}\n {/* biome-ignore lint/a11y/useSemanticElements: single-select listbox on ul/li (APG allows it); options hold rich content a <select> cannot render */}\n <ul className=\"agn-split__items\" role=\"listbox\" aria-label={typeof title === 'string' ? title : undefined} onKeyDown={onListKey}>\n {items.map((it) => {\n const sel = it.id === selected;\n return (\n // biome-ignore lint/a11y/noNoninteractiveElementToInteractiveRole: listbox option on li inside the ul listbox above; focusable with Enter/Space and arrows\n // biome-ignore lint/a11y/useSemanticElements: listbox option on li inside the ul listbox above; focusable with Enter/Space and arrows\n <li key={it.id} role=\"option\" aria-selected={sel} data-item={it.id} tabIndex={sel || (!selected && items[0] === it) ? 0 : -1} className={cx('agn-split__item', 'agn-focus-inset', sel && 'agn-split__item--selected')} onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); pick(it); } }} onClick={() => pick(it)}>\n {renderItem ? renderItem(it, sel) : (\n <>\n {it.icon && <Icon name={it.icon} size={16} className=\"agn-split__item-icon\" />}\n <span className=\"agn-split__item-main\">\n <span className=\"agn-split__item-title\">{it.title}</span>\n {it.subtitle && <span className=\"agn-split__item-sub\">{it.subtitle}</span>}\n </span>\n {it.meta && <span className=\"agn-split__item-meta\">{it.meta}</span>}\n </>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n {resizable && open && !stacked && <div className=\"agn-split__divider agn-focus\" role=\"separator\" aria-orientation=\"vertical\" aria-label={l.resize} aria-valuenow={typeof w === 'number' ? Math.round(w) : undefined} aria-valuemin={minWidth} aria-valuemax={maxWidth} tabIndex={0} onPointerDown={startDrag} onKeyDown={onDividerKey} />}\n {collapsible && !stacked && <button type=\"button\" className=\"agn-split__toggle agn-focus\" aria-label={open ? l.collapse : l.expand} aria-expanded={open} onClick={() => setOpen(!open)}><Icon name={open ? 'panel-left-close' : 'panel-left-open'} size={14} /></button>}\n <div className=\"agn-split__detail\" aria-hidden={(stacked && !showDetail) || undefined}>{showDetail && <div className=\"agn-split__back\"><button type=\"button\" className=\"agn-split__back-btn agn-focus\" onClick={() => { setView('list'); if (onBack) onBack(); }}><Icon name=\"arrow-left\" size={14} />{l.back}</button></div>}{children != null ? children : <div className=\"agn-split__empty\">{l.empty}</div>}</div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon, PRODUCT_NAMES } from '../core/Icon.jsx';\n// Product switcher: the seven boxed product glyphs with their names in a popover grid, the current product marked. Sits at the bottom of the sidebar or behind the grip in the header.\nconst ALL = ['platform', 'hub', 'dialog', 'voice', 'vision', 'code', 'workforce'];\nconst DEFAULT_LABELS = { title: 'Products', current: 'current', switchProduct: 'Switch product' };\nexport function AppLauncher({ products = ALL, current, onOpen, hrefs = {}, descriptions = {}, inline, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const list = products.map((p) => (typeof p === 'string' ? { id: p } : p));\n const onKey = (e) => {\n const cells = Array.from(e.currentTarget.querySelectorAll('.agn-launcher__item'));\n const i = cells.indexOf(document.activeElement);\n if (i < 0) return;\n const cols = 2;\n const d = { ArrowRight: 1, ArrowLeft: -1, ArrowDown: cols, ArrowUp: -cols }[e.key];\n if (d == null) return;\n e.preventDefault();\n const n = cells[Math.max(0, Math.min(cells.length - 1, i + d))];\n if (n) n.focus();\n };\n return (\n <div className={cx('agn-launcher', inline && 'agn-launcher--inline', className)} role=\"menu\" aria-label={l.title} onKeyDown={onKey} {...rest}>\n <div className=\"agn-launcher__title agn-eyebrow agn-eyebrow--quiet\">{l.title}</div>\n <div className=\"agn-launcher__grid\">\n {list.map((p) => {\n const id = p.id;\n const name = p.name || PRODUCT_NAMES[id] || id;\n const short = name.replace(/ Aginies$/, '');\n const isCur = current === id;\n const Comp = hrefs[id] || p.href ? 'a' : 'button';\n return (\n <Comp key={id} role=\"menuitem\" href={p.href || hrefs[id]} type={Comp === 'button' ? 'button' : undefined} className={cx('agn-launcher__item', 'agn-focus', isCur && 'agn-launcher__item--current')} aria-current={isCur ? 'true' : undefined} onClick={onOpen ? (e) => { if (Comp === 'button') e.preventDefault(); onOpen(id, p); } : undefined}>\n <ProductIcon product={id} boxed size={22} />\n <span className=\"agn-launcher__text\">\n <span className=\"agn-launcher__name\">{short}{isCur && <span className=\"agn-sr\">, {l.current}</span>}</span>\n {(p.description || descriptions[id]) && <span className=\"agn-launcher__desc\">{p.description || descriptions[id]}</span>}\n </span>\n {isCur && <Icon name=\"check\" size={14} className=\"agn-launcher__check\" />}\n </Comp>\n );\n })}\n </div>\n </div>\n );\n}\n// The sidebar's switcher row that opens an AppLauncher: the current product's glyph and name with an up-down chevron, styled as a nav item; icon-only when collapsed. Wire onClick to a Popover holding the AppLauncher.\nexport function AppLauncherTrigger({ product = 'platform', name, icon, meta, collapsed, open, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const label = name || (PRODUCT_NAMES[product] || product).replace(/ Aginies$/, '');\n return (\n <button type=\"button\" className={cx('agn-nav-item', 'agn-launcher-trigger', 'agn-focus', collapsed && 'agn-launcher-trigger--collapsed', className)} aria-haspopup=\"menu\" aria-expanded={open != null ? !!open : undefined} title={collapsed ? l.switchProduct + ': ' + label + (typeof meta === 'string' ? ' · ' + meta : '') : l.switchProduct} {...rest}>\n <span className=\"agn-nav-item__icon\">{icon ? <Icon name={icon} size={16} /> : <ProductIcon product={product} size={16} />}</span>\n <span className=\"agn-nav-item__label\">{label}{meta && !collapsed && <span className=\"agn-launcher-trigger__meta\">{meta}</span>}</span>\n {!collapsed && <Icon name=\"chevrons-up-down\" size={14} className=\"agn-launcher-trigger__chevron\" />}\n </button>\n );\n}\nAppLauncher.Trigger = AppLauncherTrigger;\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// The head of every console page: a mono eyebrow naming the sidebar group, the title in the title style, a description, actions on the right, an optional meta row and tabs. A back link for detail pages. There is no global top bar in the console — this is where a page says where it is.\nconst DEFAULT_LABELS = { back: 'Back' };\nexport function PageHeader({ eyebrow, title, description, actions, meta, tabs, back, media, breadcrumbs, labels, as: Comp = 'header', className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const b = back && typeof back === 'object' ? back : back ? { label: l.back, onClick: typeof back === 'function' ? back : undefined } : null;\n return (\n <Comp className={cx('agn-pageheader', tabs && 'agn-pageheader--tabs', className)} {...rest}>\n {breadcrumbs && <div className=\"agn-pageheader__crumbs\">{breadcrumbs}</div>}\n {b && <a className=\"agn-pageheader__back agn-focus\" href={b.href || '#'} onClick={b.onClick ? (e) => { if (!b.href) e.preventDefault(); b.onClick(e); } : undefined}><Icon name=\"arrow-left\" size={14} />{b.label || l.back}</a>}\n <div className=\"agn-pageheader__row\">\n {media && <div className=\"agn-pageheader__media\">{media}</div>}\n <div className=\"agn-pageheader__text\">\n {eyebrow && <div className=\"agn-pageheader__eyebrow agn-eyebrow\">{eyebrow}</div>}\n <h1 className=\"agn-pageheader__title\">{title}</h1>\n {description && <p className=\"agn-pageheader__desc\">{description}</p>}\n </div>\n {actions && <div className=\"agn-pageheader__actions\">{actions}</div>}\n </div>\n {meta && <div className=\"agn-pageheader__meta\">{meta}</div>}\n {tabs && <div className=\"agn-pageheader__tabs\">{tabs}</div>}\n </Comp>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button, ButtonIcon } from '../actions/Button.jsx';\nimport { Tag } from '../data/Tag.jsx';\n// The agent builder's top bar: back, the agent's name, a version tag, its status as a Tag, then Versions and the one primary Deploy. A saving indicator and a draft notice live here too.\nconst DEFAULT_LABELS = { back: 'Back to agents', deploy: 'Deploy', versions: 'Versions', saving: 'Saving…', saved: 'Saved', draft: 'Draft — not deployed', rename: 'Rename' };\nexport function BuilderHeader({ name, version, status, onBack, backHref, onDeploy, deployDisabled, deploying, onVersions, onRename, saving, saved, draft, actions, left, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const st = typeof status === 'string' ? { label: status } : status;\n return (\n <header className={cx('agn-builder', className)} {...rest}>\n <div className=\"agn-builder__left\">\n {backHref && !onBack ? <a className=\"agn-btn agn-btn--icon agn-btn--ghost\" href={backHref} aria-label={l.back} title={l.back}><Icon name=\"arrow-left\" size={16} /></a> : onBack && <ButtonIcon icon=\"arrow-left\" label={l.back} onClick={onBack} />}\n {left}\n <div className=\"agn-builder__name-wrap\">\n <span className=\"agn-builder__name\">{name}</span>\n {onRename && <ButtonIcon icon=\"pencil\" label={l.rename} size=\"xs\" onClick={onRename} className=\"agn-builder__rename\" />}\n </div>\n {version && <Tag>{version}</Tag>}\n {st && <Tag tone={st.tone || 'neutral'} dot={st.dot} icon={st.icon}>{st.label}</Tag>}\n {draft && <span className=\"agn-builder__draft\"><Icon name=\"circle-dashed\" size={12} />{typeof draft === 'string' ? draft : l.draft}</span>}\n </div>\n <div className=\"agn-builder__right\">\n {/* biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here */}\n {(saving || saved) && <span className=\"agn-builder__save\" role=\"status\">{saving ? <><Icon name=\"loader-circle\" size={12} className=\"agn-builder__spin\" />{l.saving}</> : <><Icon name=\"check\" size={12} />{l.saved}</>}</span>}\n {actions}\n {onVersions && <Button variant=\"ghost\" icon=\"history\" onClick={onVersions}>{l.versions}</Button>}\n {onDeploy && <Button variant=\"primary\" icon=\"rocket\" onClick={onDeploy} disabled={deployDisabled} loading={deploying}>{l.deploy}</Button>}\n </div>\n </header>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Room } from '../layout/Room.jsx';\n// The one gradient in the system: a band painted in the ancestor's --text with a soft --signal radial glow, for login and welcome. Inside it is a Room, so every token flips and the content reads light on the navy band (and navy on ivory in the dark theme).\nexport function BrandBand({ height = 'md', glow = 'top-right', align = 'start', as: Comp = 'section', children, className, style, ...rest }) {\n const named = { sm: '160px', md: '280px', lg: '420px', full: '100vh' };\n const h = named[height] || height;\n return (\n <Comp className={cx('agn-band', 'agn-band--glow-' + glow, 'agn-band--align-' + align, className)} style={{ minHeight: h, ...style }} {...rest}>\n <Room padding=\"none\" className=\"agn-band__room\">\n <div className=\"agn-band__glow\" aria-hidden=\"true\" />\n <div className=\"agn-band__content\">{children}</div>\n </Room>\n </Comp>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState, useMemo } from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Stacked collapsible sections, one or many open: settings groups, FAQ, block configuration. ExpandableSection is the lighter single section used inside a record layout.\nexport function Accordion({ items = [], multiple, defaultOpen, open, onChange, boxed, className, ...rest }) {\n const [local, setLocal] = useState(() => new Set(defaultOpen || []));\n const cur = open ? new Set(open) : local;\n const id = useMemo(() => uid('agn-acc'), []);\n const toggle = (k) => {\n const n = new Set(multiple ? cur : []);\n if (cur.has(k)) { n.delete(k); } else n.add(k);\n if (!open) setLocal(n);\n onChange && onChange(Array.from(n));\n };\n return (\n <div className={cx('agn-accordion', boxed && 'agn-accordion--boxed', className)} {...rest}>\n {items.map((it) => {\n const isOpen = cur.has(it.id);\n return (\n <div key={it.id} className={cx('agn-accordion__item', isOpen && 'agn-accordion__item--open')}>\n <h3 className=\"agn-accordion__heading\">\n <button type=\"button\" id={id + '-' + it.id + '-h'} className=\"agn-accordion__trigger agn-focus-inset\" aria-expanded={isOpen} aria-controls={id + '-' + it.id + '-p'} onClick={() => toggle(it.id)} disabled={it.disabled}>\n <Icon name=\"chevron-right\" size={14} className={cx('agn-accordion__chev', isOpen && 'agn-accordion__chev--open')} />\n {it.icon && <Icon name={it.icon} size={16} className=\"agn-accordion__icon\" />}\n <span className=\"agn-accordion__label\">{it.label}</span>\n {it.meta && <span className=\"agn-accordion__meta\">{it.meta}</span>}\n </button>\n {it.actions && <span className=\"agn-accordion__actions\">{it.actions}</span>}\n </h3>\n <section id={id + '-' + it.id + '-p'} aria-labelledby={id + '-' + it.id + '-h'} className=\"agn-accordion__panel\" hidden={!isOpen}>{it.content}</section>\n </div>\n );\n })}\n </div>\n );\n}\n// One collapsible section with a hairline header; the record-layout section.\nexport function ExpandableSection({ title, open, defaultOpen = true, onToggle, actions, count, children, className, ...rest }) {\n const [local, setLocal] = useState(defaultOpen);\n const isOpen = open !== undefined ? open : local;\n const id = useMemo(() => uid('agn-xs'), []);\n const toggle = () => { if (open === undefined) setLocal(!isOpen); onToggle && onToggle(!isOpen); };\n return (\n <section className={cx('agn-xsection', isOpen && 'agn-xsection--open', className)} {...rest}>\n <h3 className=\"agn-xsection__heading\">\n <button type=\"button\" id={id + '-h'} className=\"agn-xsection__trigger agn-focus\" aria-expanded={isOpen} aria-controls={id + '-p'} onClick={toggle}>\n <Icon name=\"chevron-right\" size={14} className={cx('agn-accordion__chev', isOpen && 'agn-accordion__chev--open')} />\n <span className=\"agn-xsection__title\">{title}</span>\n {count != null && <span className=\"agn-xsection__count agn-num\">{count}</span>}\n </button>\n {actions && <span className=\"agn-xsection__actions\">{actions}</span>}\n </h3>\n <section id={id + '-p'} aria-labelledby={id + '-h'} className=\"agn-xsection__panel\" hidden={!isOpen}>{children}</section>\n </section>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useState, useEffect, useRef } from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Cards one at a time with dots and arrows: onboarding tips, release notes, a welcome tour. Arrow keys move; autoplay pauses on hover and focus and never runs under reduced motion.\nconst DEFAULT_LABELS = { prev: 'Previous', next: 'Next', goTo: 'Go to slide', of: 'of' };\nexport function Carousel({ slides = [], index, defaultIndex = 0, onChange, autoPlay, interval = 6000, loop = true, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const [local, setLocal] = useState(defaultIndex);\n const cur = index !== undefined ? index : local;\n const [paused, setPaused] = useState(false);\n const n = slides.length;\n const go = (i) => { const k = loop ? (i + n) % n : Math.max(0, Math.min(n - 1, i)); if (index === undefined) setLocal(k); onChange && onChange(k); };\n const ref = useRef(null);\n useEffect(() => {\n if (!autoPlay || paused || n < 2) return undefined;\n if (typeof window !== 'undefined' && window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) return undefined;\n const t = setInterval(() => go(cur + 1), interval);\n return () => clearInterval(t);\n });\n const s = slides[cur];\n return (\n // biome-ignore lint/a11y/useSemanticElements: APG carousel: role=region with aria-roledescription; the consumer names it through rest, and the tag is kept so existing refs and selectors hold\n <div ref={ref} className={cx('agn-carousel', className)} role=\"region\" aria-roledescription=\"carousel\" onMouseEnter={() => setPaused(true)} onMouseLeave={() => setPaused(false)} onFocus={() => setPaused(true)} onBlur={() => setPaused(false)} onKeyDown={(e) => { if (e.key === 'ArrowRight') { e.preventDefault(); go(cur + 1); } if (e.key === 'ArrowLeft') { e.preventDefault(); go(cur - 1); } }} {...rest}>\n <div className=\"agn-carousel__viewport\">\n {s && (\n // biome-ignore lint/a11y/useSemanticElements: APG carousel: each slide is a group with aria-roledescription=slide\n <div className=\"agn-carousel__slide\" role=\"group\" aria-roledescription=\"slide\" aria-label={(cur + 1) + ' ' + l.of + ' ' + n}>\n {s.media && <div className=\"agn-carousel__media\">{s.media}</div>}\n {s.icon && !s.media && <div className=\"agn-carousel__icon\"><Icon name={s.icon} size={24} strokeWidth={1.75} /></div>}\n <div className=\"agn-carousel__text\">\n {s.eyebrow && <div className=\"agn-eyebrow agn-eyebrow--quiet\">{s.eyebrow}</div>}\n <div className=\"agn-carousel__title\">{s.title}</div>\n {s.description && <div className=\"agn-carousel__desc\">{s.description}</div>}\n {s.action && <div className=\"agn-carousel__action\">{s.action}</div>}\n </div>\n </div>\n )}\n </div>\n {n > 1 && (\n <div className=\"agn-carousel__controls\">\n <button type=\"button\" className=\"agn-carousel__arrow agn-focus\" aria-label={l.prev} onClick={() => go(cur - 1)} disabled={!loop && cur === 0}><Icon name=\"chevron-left\" size={16} /></button>\n <div className=\"agn-carousel__dots\" role=\"tablist\">{slides.map((_, i) => <button key={i} type=\"button\" role=\"tab\" aria-selected={i === cur} aria-label={l.goTo + ' ' + (i + 1)} className={cx('agn-carousel__dot', i === cur && 'agn-carousel__dot--active')} onClick={() => go(i)} />)}</div>\n <button type=\"button\" className=\"agn-carousel__arrow agn-focus\" aria-label={l.next} onClick={() => go(cur + 1)} disabled={!loop && cur === n - 1}><Icon name=\"chevron-right\" size={16} /></button>\n </div>\n )}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\n// Checklist of setup steps with progress (bare: no frame, for a card or widget that already has one; title optional): connect a channel, add a knowledge base, deploy the first agent. Done steps keep their check; the next open step carries the one primary action.\nconst DEFAULT_LABELS = { progress: 'completed', done: 'Done', optional: 'optional' };\nexport function SetupAssistant({ title, description, steps = [], bare, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const done = steps.filter((s) => s.done).length;\n const pct = steps.length ? Math.round((done / steps.length) * 100) : 0;\n const nextIdx = steps.findIndex((s) => !s.done);\n return (\n <section className={cx('agn-setup', bare && 'agn-setup--bare', !title && !description && 'agn-setup--untitled', className)} {...rest}>\n <header className=\"agn-setup__head\">\n {(title || description) && <div className=\"agn-setup__text\">\n {title && <h2 className=\"agn-setup__title\">{title}</h2>}\n {description && <p className=\"agn-setup__desc\">{description}</p>}\n </div>}\n <div className=\"agn-setup__progress\" role=\"progressbar\" aria-valuemin={0} aria-valuemax={steps.length} aria-valuenow={done} aria-valuetext={done + ' / ' + steps.length + ' ' + l.progress}>\n <span className=\"agn-setup__progress-text agn-num\">{done}/{steps.length} {l.progress}</span>\n <span className=\"agn-setup__bar\"><span className=\"agn-setup__fill\" style={{ width: pct + '%' }} /></span>\n </div>\n </header>\n <ol className=\"agn-setup__steps\">\n {steps.map((s, i) => {\n const isNext = i === nextIdx;\n return (\n <li key={s.id || i} className={cx('agn-setup__step', s.done && 'agn-setup__step--done', isNext && 'agn-setup__step--next')}>\n <span className=\"agn-setup__marker agn-num\" aria-hidden=\"true\">{s.done ? <Icon name=\"check\" size={14} /> : i + 1}</span>\n <div className=\"agn-setup__body\">\n <div className=\"agn-setup__step-title\">{s.title}{s.optional && <span className=\"agn-setup__optional\">{l.optional}</span>}{s.done && <span className=\"agn-sr\"> — {l.done}</span>}</div>\n {s.description && <div className=\"agn-setup__step-desc\">{s.description}</div>}\n </div>\n <div className=\"agn-setup__side\">\n {s.time && !s.done && <span className=\"agn-setup__time\"><Icon name=\"clock\" size={12} />{s.time}</span>}\n {!s.done && s.action && (typeof s.action === 'string' ? <Button size=\"sm\" variant={isNext ? 'primary' : 'neutral'} onClick={s.onAction} href={s.href} as={s.href ? 'a' : 'button'}>{s.action}</Button> : s.action)}\n </div>\n </li>\n );\n })}\n </ol>\n </section>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React, { useMemo } from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { AginiesMark } from '../core/AginiesMark.jsx';\n// First-run card: a brand pane on the left (mark, title, subtitle) and a list of first steps on the right. Render it inside a modal or on the empty workspace; it goes away once the steps are done.\nconst DEFAULT_LABELS = { done: 'done', skip: 'Skip for now', progress: 'completed' };\nexport function WelcomeMat({ title, subtitle, steps = [], onStep, footer, onSkip, brand, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const done = steps.filter((s) => s.done).length;\n const titleId = useMemo(() => uid('agn-welcome'), []);\n return (\n <section className={cx('agn-welcome', className)} aria-labelledby={titleId} {...rest}>\n <div className=\"agn-welcome__brand\">\n {brand || <AginiesMark size={40} decorative />}\n <h2 id={titleId} className=\"agn-welcome__title\">{title}</h2>\n {subtitle && <p className=\"agn-welcome__subtitle\">{subtitle}</p>}\n {steps.length > 0 && <div className=\"agn-welcome__progress agn-num\">{done}/{steps.length} {l.progress}</div>}\n </div>\n <div className=\"agn-welcome__steps\">\n <ol className=\"agn-welcome__list\">\n {steps.map((s, i) => {\n const Comp = onStep && !s.done ? 'button' : 'div';\n return (\n <li key={s.id || i}>\n <Comp type={Comp === 'button' ? 'button' : undefined} className={cx('agn-welcome__step', s.done && 'agn-welcome__step--done', Comp === 'button' && 'agn-focus')} onClick={Comp === 'button' ? () => onStep(s, i) : undefined}>\n <span className={cx('agn-welcome__icon', s.done && 'agn-welcome__icon--done')}><Icon name={s.done ? 'check' : s.icon || 'circle'} size={16} /></span>\n <span className=\"agn-welcome__text\">\n <span className=\"agn-welcome__step-title\">{s.title}{s.done && <span className=\"agn-sr\">, {l.done}</span>}</span>\n {s.description && <span className=\"agn-welcome__step-desc\">{s.description}</span>}\n </span>\n {Comp === 'button' && <Icon name=\"arrow-right\" size={14} className=\"agn-welcome__arrow\" />}\n </Comp>\n </li>\n );\n })}\n </ol>\n {(footer || onSkip) && <div className=\"agn-welcome__footer\">{footer}{onSkip && <button type=\"button\" className=\"agn-btn agn-btn--link agn-focus\" onClick={onSkip}>{l.skip}</button>}</div>}\n </div>\n </section>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Badge } from '../data/Badge.jsx';\n// 56px bottom bar for phones: up to five items with icon and label, 44px targets, the active item in link colour. The sidebar's replacement below 640px.\nconst DEFAULT_LABELS = { navigation: 'Main navigation' };\nexport function MobileTabBar({ items = [], active, onChange, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const list = items.slice(0, 5);\n return (\n <nav className={cx('agn-tabbar', className)} aria-label={l.navigation} {...rest}>\n {list.map((it) => {\n const sel = it.id === active;\n const Comp = it.href ? 'a' : 'button';\n return (\n <Comp key={it.id} href={it.href} type={Comp === 'button' ? 'button' : undefined} className={cx('agn-tabbar__item', 'agn-focus-inset', sel && 'agn-tabbar__item--active')} aria-current={sel ? 'page' : undefined} onClick={(e) => { if (onChange) { if (!it.href) e.preventDefault(); onChange(it.id, it); } }}>\n <span className=\"agn-tabbar__icon\"><Icon name={it.icon} size={20} strokeWidth={sel ? 2.25 : 1.75} />{it.badge != null && <Badge tone=\"bad\" solid size=\"sm\" count={typeof it.badge === 'number' ? it.badge : undefined} className=\"agn-tabbar__badge\">{typeof it.badge === 'number' ? undefined : it.badge}</Badge>}</span>\n <span className=\"agn-tabbar__label\">{it.label}</span>\n </Comp>\n );\n })}\n </nav>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Page controls under a list: range text \"1–25 of 312\", page size, previous and next; compact drops the page size. Numbers are tabular; the range reads in the locale's digits.\nconst DEFAULT_LABELS = { of: 'of', perPage: 'per page', prev: 'Previous page', next: 'Next page', first: 'First page', last: 'Last page', page: 'Page', pageSize: 'Rows per page' };\nexport function Pagination({ page = 1, pageSize = 25, total = 0, onChange, onPageSizeChange, pageSizes = [10, 25, 50, 100], compact, showEdges, locale, labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const pages = Math.max(1, Math.ceil(total / pageSize));\n const p = Math.min(Math.max(1, page), pages);\n const from = total === 0 ? 0 : (p - 1) * pageSize + 1;\n const to = Math.min(total, p * pageSize);\n const nf = new Intl.NumberFormat(locale || undefined);\n const go = (n) => onChange && onChange(Math.min(Math.max(1, n), pages));\n return (\n <nav className={cx('agn-pagination', compact && 'agn-pagination--compact', className)} aria-label={l.page} {...rest}>\n {!compact && onPageSizeChange && (\n <label className=\"agn-pagination__size\">\n <span className=\"agn-sr\">{l.pageSize}</span>\n <select className=\"agn-pagination__select agn-focus\" value={pageSize} onChange={(e) => onPageSizeChange(Number(e.target.value))}>{pageSizes.map((s) => <option key={s} value={s}>{s}</option>)}</select>\n <span className=\"agn-pagination__size-label\">{l.perPage}</span>\n </label>\n )}\n <span className=\"agn-pagination__range agn-num\" aria-live=\"polite\">{nf.format(from)}–{nf.format(to)} {l.of} {nf.format(total)}</span>\n <span className=\"agn-pagination__nav\">\n {showEdges && <button type=\"button\" className=\"agn-pagination__btn agn-focus\" aria-label={l.first} onClick={() => go(1)} disabled={p <= 1}><Icon name=\"chevrons-left\" size={14} /></button>}\n <button type=\"button\" className=\"agn-pagination__btn agn-focus\" aria-label={l.prev} onClick={() => go(p - 1)} disabled={p <= 1}><Icon name=\"chevron-left\" size={14} /></button>\n {!compact && <span className=\"agn-pagination__page agn-num\">{nf.format(p)} / {nf.format(pages)}</span>}\n <button type=\"button\" className=\"agn-pagination__btn agn-focus\" aria-label={l.next} onClick={() => go(p + 1)} disabled={p >= pages}><Icon name=\"chevron-right\" size={14} /></button>\n {showEdges && <button type=\"button\" className=\"agn-pagination__btn agn-focus\" aria-label={l.last} onClick={() => go(pages)} disabled={p >= pages}><Icon name=\"chevrons-right\" size={14} /></button>}\n </span>\n </nav>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Step progress with ok, current and upcoming states, horizontal or vertical, with an optional description under each label. A read-only companion to ProgressIndicator: it shows where a run or a rollout is, it does not navigate.\nconst DEFAULT_LABELS = { done: 'done', current: 'in progress', upcoming: 'upcoming', error: 'failed', step: 'Step', of: 'of' };\nexport function Stepper({ steps = [], current = 0, vertical, size = 'md', errorSteps = [], labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const list = steps.map((s) => (typeof s === 'string' ? { label: s } : s));\n return (\n <ol className={cx('agn-stepper', vertical ? 'agn-stepper--vertical' : 'agn-stepper--horizontal', size !== 'md' && 'agn-stepper--' + size, className)} aria-label={l.step + ' ' + (current + 1) + ' ' + l.of + ' ' + list.length} {...rest}>\n {list.map((s, i) => {\n const st = errorSteps.includes(i) || s.error ? 'error' : i < current ? 'done' : i === current ? 'current' : 'upcoming';\n return (\n <li key={i} className={cx('agn-stepper__step', 'agn-stepper__step--' + st)} aria-current={st === 'current' ? 'step' : undefined}>\n <span className=\"agn-stepper__marker\" aria-hidden=\"true\">{st === 'done' ? <Icon name=\"check\" size={12} /> : st === 'error' ? <Icon name=\"x\" size={12} /> : st === 'current' ? <span className=\"agn-stepper__pulse\" /> : null}</span>\n <span className=\"agn-stepper__text\">\n <span className=\"agn-stepper__label\">{s.label}<span className=\"agn-sr\">, {l[st]}</span></span>\n {s.description && <span className=\"agn-stepper__desc\">{s.description}</span>}\n {s.meta && <span className=\"agn-stepper__meta\">{s.meta}</span>}\n </span>\n {i < list.length - 1 && <span className=\"agn-stepper__line\" aria-hidden=\"true\" />}\n </li>\n );\n })}\n </ol>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Badge } from '../data/Badge.jsx';\nimport { Tooltip } from '../feedback/Tooltip.jsx';\n// Vertical 48px icon strip that switches the view beside it, like VS Code's activity bar or IntelliJ's tool-window bar: a vertical tablist with a top and a bottom group, roving focus (↑ ↓ Home End, Enter or Space selects), the label in a Tooltip, a 2px --signal bar on the edge facing the view.\nconst DEFAULT_LABELS = { navigation: 'Views' };\nexport function ActivityBar({ items = [], footerItems = [], active, onSelect, side = 'left', labels, className, ...rest }) {\n const l = { ...DEFAULT_LABELS, ...labels };\n const all = [...items, ...footerItems];\n const enabled = all.filter((it) => !it.disabled);\n const activeEnabled = enabled.some((it) => it.id === active);\n const [focusId, setFocusId] = React.useState(null);\n // Roving tabindex: the focused item, else the active one, else the first enabled item, is the one Tab stop.\n const stop = focusId != null && enabled.some((it) => it.id === focusId) ? focusId : activeEnabled ? active : enabled[0] && enabled[0].id;\n const refs = React.useRef({});\n const move = (id) => { setFocusId(id); const el = refs.current[id]; if (el) el.focus(); };\n const onKey = (e, id) => {\n const i = enabled.findIndex((it) => it.id === id);\n if (i < 0) return;\n let next = null;\n if (e.key === 'ArrowDown') next = enabled[(i + 1) % enabled.length];\n else if (e.key === 'ArrowUp') next = enabled[(i - 1 + enabled.length) % enabled.length];\n else if (e.key === 'Home') next = enabled[0];\n else if (e.key === 'End') next = enabled[enabled.length - 1];\n if (next) { e.preventDefault(); move(next.id); }\n };\n const renderItem = (it) => {\n const sel = it.id === active;\n const glyph = typeof it.icon === 'string' ? <Icon name={it.icon} size={20} strokeWidth={sel ? 2 : 1.75} /> : it.icon;\n return (\n <Tooltip key={it.id} content={it.label} placement={side === 'right' ? 'left' : 'right'} className=\"agn-activitybar__tip\">\n <button\n ref={(el) => { refs.current[it.id] = el; }}\n type=\"button\"\n role=\"tab\"\n id={it.tabId}\n className={cx('agn-activitybar__item', 'agn-focus-inset', sel && 'agn-activitybar__item--active')}\n aria-selected={sel}\n aria-controls={it.controls}\n aria-label={it.badge != null && it.badge !== '' ? it.label + ' (' + it.badge + ')' : it.label}\n disabled={it.disabled}\n tabIndex={it.id === stop ? 0 : -1}\n onFocus={() => setFocusId(it.id)}\n onKeyDown={(e) => onKey(e, it.id)}\n onClick={() => { if (!it.disabled && onSelect) onSelect(it.id, it); }}\n >\n <span className=\"agn-activitybar__glyph\">\n {glyph}\n {it.badge != null && it.badge !== '' && <Badge tone=\"signal\" solid size=\"sm\" count={typeof it.badge === 'number' ? it.badge : undefined} className=\"agn-activitybar__badge\" aria-hidden=\"true\">{typeof it.badge === 'number' ? undefined : it.badge}</Badge>}\n </span>\n </button>\n </Tooltip>\n );\n };\n return (\n <div role=\"tablist\" aria-orientation=\"vertical\" aria-label={l.navigation} className={cx('agn-activitybar', side === 'right' && 'agn-activitybar--right', className)} {...rest}>\n <div role=\"presentation\" className=\"agn-activitybar__group\">{items.map(renderItem)}</div>\n {footerItems.length > 0 && <div role=\"presentation\" className=\"agn-activitybar__group agn-activitybar__group--footer\">{footerItems.map(renderItem)}</div>}\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\n// Short hint on hover or focus: 12px mono-ish on a --text ground. Never put actions in it; kbd shows the shortcut.\nexport function Tooltip({ content, kbd, placement = 'top', delay = 400, open: openProp, children, className, ...rest }) {\n const [own, setOwn] = React.useState(false);\n const open = openProp != null ? openProp : own;\n const timer = React.useRef(null);\n const id = React.useMemo(() => uid('tip'), []);\n const show = () => { clearTimeout(timer.current); timer.current = setTimeout(() => setOwn(true), delay); };\n const hide = () => { clearTimeout(timer.current); setOwn(false); };\n React.useEffect(() => () => clearTimeout(timer.current), []);\n // biome-ignore lint/correctness/useExhaustiveDependencies: hide only touches a ref and a state setter, so the closure from any render behaves the same\n React.useEffect(() => { if (!open) return; const k = (e) => e.key === 'Escape' && hide(); document.addEventListener('keydown', k); return () => document.removeEventListener('keydown', k); }, [open]);\n const child = React.Children.only(children);\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: the wrapper only listens: hover and focus bubble up from the focusable trigger it wraps; it is not itself operable\n <span className={cx('agn-tip-wrap', className)} onMouseEnter={show} onMouseLeave={hide} onFocus={show} onBlur={hide} {...rest}>\n {React.cloneElement(child, { 'aria-describedby': open ? id : child.props['aria-describedby'] })}\n {open && <span role=\"tooltip\" id={id} className={cx('agn-tip', 'agn-tip--' + placement)}>{content}{kbd && <kbd className=\"agn-tip__kbd\">{kbd}</kbd>}</span>}\n </span>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { AginiesMark } from '../core/AginiesMark.jsx';\nconst SIZE = { page: 96, region: 40, inline: 16 };\n// The brand loader: the mark animated with CSS keyframes only (ring, core and crescent classes on AginiesMark; the paths carry pathLength=1).\n// tier: page = full-viewport overlay with wordmark and label; region = centred in its container (default); inline = 16px in a line of text.\n// variant: orbit (ring turns, core counter-turns in eased quarters, crescent breathes) | pulse (signal-soft halo beats) | draw (ring draws, then core, then both fade).\nexport function AginiesLoader({ tier = 'region', variant = 'orbit', label, showLabel, labels, className, ...rest }) {\n const L = { loading: 'Loading', ...labels };\n const text = label || L.loading;\n const Tag = tier === 'inline' ? 'span' : 'div';\n const visible = showLabel != null ? showLabel : tier === 'page';\n return (\n // biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here\n <Tag className={cx('agn-loader', 'agn-loader--' + tier, 'agn-loader--' + variant, className)} role=\"status\" aria-busy=\"true\" aria-live=\"polite\" {...rest}>\n <span className=\"agn-loader__mark\"><AginiesMark size={SIZE[tier] || SIZE.region} decorative /></span>\n {tier === 'page' && <span className=\"agn-loader__word\">Aginies</span>}\n {visible ? <span className=\"agn-loader__label\">{text}</span> : <span className=\"agn-sr\">{text}</span>}\n </Tag>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nconst WIDTHS = ['72%', '48%', '60%', '36%', '82%', '54%'];\n// Content placeholder with a slow pulse. text = a paragraph of lines (last one shorter); line = one 10px bar; rect = a block; circle = an avatar.\nexport function Skeleton({ shape = 'text', lines = 3, width, height, className, style, ...rest }) {\n if (shape === 'text') {\n return (\n <div className={cx('agn-skeleton-text', className)} style={{ width, ...style }} aria-hidden=\"true\" {...rest}>\n {Array.from({ length: lines }, (_, i) => <span key={i} className=\"agn-skeleton agn-skeleton--line\" style={lines > 1 && i === lines - 1 ? { width: '62%' } : undefined} />)}\n </div>\n );\n }\n return <span className={cx('agn-skeleton', 'agn-skeleton--' + shape, className)} style={{ width, height, ...style }} aria-hidden=\"true\" {...rest} />;\n}\n// A whole page while its data loads: page header (eyebrow, title, action) and a table of rows. Swap for the real page in place.\nexport function PageSkeleton({ header = true, rows = 6, columns = 4, labels, className, ...rest }) {\n const L = { loading: 'Loading page', ...labels };\n const cols = Array.from({ length: columns }, (_, i) => i);\n const grid = { gridTemplateColumns: cols.map((i) => (i === 0 ? '2fr' : '1fr')).join(' ') };\n return (\n // biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here\n <div className={cx('agn-page-skeleton', className)} role=\"status\" aria-busy=\"true\" {...rest}>\n <span className=\"agn-sr\">{L.loading}</span>\n {header && (\n <div className=\"agn-page-skeleton__header\" aria-hidden=\"true\">\n <div><Skeleton shape=\"line\" width={88} height={8} /><Skeleton shape=\"rect\" width={236} height={22} style={{ marginTop: 10 }} /></div>\n <Skeleton shape=\"rect\" width={108} height=\"var(--control-h)\" />\n </div>\n )}\n <div className=\"agn-page-skeleton__table\" aria-hidden=\"true\">\n <div className=\"agn-page-skeleton__row agn-page-skeleton__row--head\" style={grid}>{cols.map((c) => <Skeleton key={c} shape=\"line\" width=\"46%\" height={8} />)}</div>\n {Array.from({ length: rows }, (_, r) => (\n <div key={r} className=\"agn-page-skeleton__row\" style={grid}>{cols.map((c) => <Skeleton key={c} shape=\"line\" width={WIDTHS[(r + c) % WIDTHS.length]} />)}</div>\n ))}\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nexport const TONE_ICON = { info: 'info', ok: 'circle-check', warn: 'triangle-alert', bad: 'circle-alert', neutral: 'info', signal: 'info' };\n// Inline alert inside a page or card: tone wash, icon, title, text, actions and an optional dismiss. Says what happened and what to do.\nexport function Alert({ tone = 'info', icon, title, children, actions, onDismiss, labels, className, ...rest }) {\n const L = { dismiss: 'Dismiss', ...labels };\n return (\n <div className={cx('agn-alert', 'agn-alert--' + tone, className)} role={tone === 'bad' ? 'alert' : 'status'} {...rest}>\n <Icon name={icon || TONE_ICON[tone] || 'info'} size={16} className=\"agn-alert__icon\" />\n <div className=\"agn-alert__body\">\n {title && <div className=\"agn-alert__title\">{title}</div>}\n {children != null && <div className=\"agn-alert__text\">{children}</div>}\n {actions && <div className=\"agn-alert__actions\">{actions}</div>}\n </div>\n {onDismiss && <ButtonIcon icon=\"x\" label={L.dismiss} size=\"xs\" onClick={onDismiss} className=\"agn-alert__close\" />}\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { TONE_ICON } from './Alert.jsx';\n// Transient confirmation after an action. The platform uses ok and bad only; it slides 12px up from the bottom-right corner.\nexport function Toast({ tone = 'ok', title, children, action, onDismiss, duration, labels, className, ...rest }) {\n const L = { dismiss: 'Dismiss', ...labels };\n React.useEffect(() => { if (!duration || !onDismiss) return; const t = setTimeout(onDismiss, duration); return () => clearTimeout(t); }, [duration, onDismiss]);\n return (\n <div className={cx('agn-toast', 'agn-toast--' + tone, className)} role={tone === 'bad' ? 'alert' : 'status'} {...rest}>\n <Icon name={TONE_ICON[tone] || 'info'} size={16} className=\"agn-toast__icon\" />\n <div className=\"agn-toast__body\">\n {title && <div className=\"agn-toast__title\">{title}</div>}\n {children != null && <div className=\"agn-toast__text\">{children}</div>}\n {action && <div className=\"agn-toast__action\">{action}</div>}\n </div>\n {onDismiss && <ButtonIcon icon=\"x\" label={L.dismiss} size=\"xs\" onClick={onDismiss} className=\"agn-toast__close\" />}\n </div>\n );\n}\n// Fixed stack for toasts: bottom-right by default, z-toast, newest at the bottom. static renders it in flow (previews, docs).\n// contained: absolute inside the nearest positioned ancestor (a phone frame, a panel) instead of fixed to the viewport; static (or position=\"static\"): in flow.\nexport function ToastContainer({ position = 'bottom-right', static: isStatic, contained, children, className, ...rest }) {\n const st = isStatic || position === 'static';\n return <div className={cx('agn-toasts', !st && 'agn-toasts--' + position, st && 'agn-toasts--static', contained && !st && 'agn-toasts--contained', className)} aria-live=\"polite\" {...rest}>{children}</div>;\n}\n// Queue of toasts: push({ tone, title, text, action, duration }) returns an id; at most `max` are live, the rest wait; each auto-dismisses after `duration` ms (0 = sticky).\nexport function useToasts({ duration = 5000, max = 3 } = {}) {\n const [live, setLive] = React.useState([]);\n const [tick, setTick] = React.useState(0);\n const queue = React.useRef([]);\n const timers = React.useRef({});\n const dismiss = React.useCallback((id) => { clearTimeout(timers.current[id]); delete timers.current[id]; setLive((l) => l.filter((t) => t.id !== id)); }, []);\n // biome-ignore lint/correctness/useExhaustiveDependencies: tick is the re-run trigger a dismissal bumps so the queue drains\n React.useEffect(() => {\n const room = max - live.length;\n if (room > 0 && queue.current.length) { const take = queue.current.splice(0, room); setLive((l) => l.concat(take)); }\n }, [live, max, tick]);\n React.useEffect(() => {\n live.forEach((t) => {\n const ms = t.duration == null ? duration : t.duration;\n if (timers.current[t.id] || !ms) return;\n timers.current[t.id] = setTimeout(() => dismiss(t.id), ms);\n });\n }, [live, duration, dismiss]);\n React.useEffect(() => () => Object.values(timers.current).forEach(clearTimeout), []);\n const push = React.useCallback((toast) => { const t = { id: uid('toast'), tone: 'ok', ...toast }; queue.current.push(t); setTick((n) => n + 1); return t.id; }, []);\n const clear = React.useCallback(() => { queue.current = []; Object.values(timers.current).forEach(clearTimeout); timers.current = {}; setLive([]); }, []);\n return { toasts: live, push, dismiss, clear };\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { TONE_ICON } from './Alert.jsx';\n// In-context notice at the top of a card, form or section: one line of text and an optional action. Not page-wide, not dismissable.\nexport function ScopedNotification({ tone = 'neutral', icon, children, action, className, ...rest }) {\n return (\n <div className={cx('agn-scoped', 'agn-scoped--' + tone, className)} role={tone === 'bad' ? 'alert' : 'status'} {...rest}>\n <Icon name={icon || TONE_ICON[tone] || 'info'} size={14} className=\"agn-scoped__icon\" />\n <div className=\"agn-scoped__text\">{children}</div>\n {action && <div className=\"agn-scoped__action\">{action}</div>}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\nexport const initials = (name = '') => String(name).trim().split(/\\s+/).slice(0, 2).map((w) => w.charAt(0).toLocaleUpperCase('tr-TR')).join('');\n// One in-app notification row: unread dot, avatar (initials) or icon tile, title, message, time. Click opens the object.\nexport function Notification({ title, message, time, unread, avatar, icon, object, onClick, as, labels, className, ...rest }) {\n const NL = { unread: 'unread', ...labels };\n const Tag = as || (onClick ? 'button' : 'div');\n return (\n <Tag type={Tag === 'button' ? 'button' : undefined} className={cx('agn-notif', unread && 'agn-notif--unread', onClick && 'agn-notif--clickable agn-focus-inset', className)} onClick={onClick} {...rest}>\n <span className=\"agn-notif__dot\" aria-hidden=\"true\" />\n {avatar ? <span className=\"agn-notif__avatar\" aria-hidden=\"true\">{initials(avatar)}</span> : <span className=\"agn-notif__tile\" aria-hidden=\"true\"><Icon name={icon || 'bell'} size={16} /></span>}\n <span className=\"agn-notif__body\">\n <span className=\"agn-notif__title\">{title}{unread && <span className=\"agn-sr\"> ({NL.unread})</span>}</span>\n {message && <span className=\"agn-notif__msg\">{message}</span>}\n {object && <span className=\"agn-notif__object\">{object}</span>}\n </span>\n {time && <span className=\"agn-notif__time\">{time}</span>}\n </Tag>\n );\n}\nfunction dayLabel(date, L, locale) {\n const d = date instanceof Date ? date : new Date(date);\n if (Number.isNaN(d.getTime())) return String(date);\n const now = new Date(); const start = (x) => new Date(x.getFullYear(), x.getMonth(), x.getDate()).getTime();\n const diff = Math.round((start(now) - start(d)) / 86400000);\n if (diff === 0) return L.today; if (diff === 1) return L.yesterday;\n return d.toLocaleDateString(locale, { day: '2-digit', month: '2-digit', year: 'numeric' });\n}\n// The bell panel: a titled list of notifications grouped by day (Today, Yesterday, 15.10.2026) with \"Mark all as read\". bare drops the floating frame (shadow, border, 360px width) for a card or widget; header={false} drops the head.\nexport function NotificationList({ title, items = [], children, onMarkAll, locale = 'tr-TR', bare, header = true, labels, className, ...rest }) {\n const L = { title: 'Notifications', markAll: 'Mark all as read', today: 'Today', yesterday: 'Yesterday', empty: 'Nothing new', unread: 'unread', ...labels };\n const groups = [];\n items.forEach((it) => {\n const key = it.day || (it.date ? dayLabel(it.date, L, locale) : '');\n let g = groups.find((x) => x.key === key); if (!g) { g = { key, items: [] }; groups.push(g); } g.items.push(it);\n });\n const unread = items.filter((i) => i.unread).length;\n return (\n <section className={cx('agn-notif-list', bare && 'agn-notif-list--bare', className)} aria-label={title || L.title} {...rest}>\n {header && <header className=\"agn-notif-list__head\">\n <h3 className=\"agn-notif-list__title\">{title || L.title}{unread > 0 && <span className=\"agn-notif-list__count\">{unread}</span>}</h3>\n {onMarkAll && <Button variant=\"link\" size=\"sm\" onClick={onMarkAll}>{L.markAll}</Button>}\n </header>}\n <div className=\"agn-notif-list__body\">\n {groups.map((g) => (\n <div key={g.key || 'all'} className=\"agn-notif-list__group\">\n {g.key && <div className=\"agn-eyebrow agn-eyebrow--quiet agn-notif-list__day\">{g.key}</div>}\n {g.items.map((it, i) => { const { id, day: _day, date: _date, ...p } = it; return <Notification key={id || i} labels={{ unread: L.unread }} {...p} />; })}\n </div>\n ))}\n {children}\n {!items.length && !children && <div className=\"agn-notif-list__empty\">{L.empty}</div>}\n </div>\n </section>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button, ButtonIcon } from '../actions/Button.jsx';\nconst FOCUSABLE = 'a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex=\"-1\"])';\n// Dialog behaviour shared by Modal and Prompt: Esc closes, Tab is trapped, body scroll is locked, focus moves in and is restored on close.\nexport function useDialog(open, onClose, ref, { lockScroll = true, autoFocus = true } = {}) {\n const closeRef = React.useRef(onClose); closeRef.current = onClose;\n // biome-ignore lint/correctness/useExhaustiveDependencies: runs once per open; re-running on lockScroll/autoFocus would steal and restore focus mid-dialog. ref is a ref object; onClose is read through closeRef so it is never stale\n React.useEffect(() => {\n if (!open) return;\n const previous = document.activeElement;\n const onKey = (e) => {\n if (e.key === 'Escape') { e.stopPropagation(); closeRef.current && closeRef.current(); return; }\n if (e.key !== 'Tab' || !ref.current) return;\n const f = Array.from(ref.current.querySelectorAll(FOCUSABLE));\n if (!f.length) { e.preventDefault(); ref.current.focus(); return; }\n const first = f[0], last = f[f.length - 1], inside = ref.current.contains(document.activeElement);\n if (e.shiftKey && (document.activeElement === first || !inside)) { e.preventDefault(); last.focus(); }\n else if (!e.shiftKey && (document.activeElement === last || !inside)) { e.preventDefault(); first.focus(); }\n };\n document.addEventListener('keydown', onKey);\n const overflow = document.body.style.overflow;\n if (lockScroll) document.body.style.overflow = 'hidden';\n const t = setTimeout(() => {\n const el = ref.current; if (!el || !autoFocus) return;\n const target = el.querySelector('[data-autofocus]') || Array.from(el.querySelectorAll(FOCUSABLE)).find((x) => !x.hasAttribute('data-dialog-close')) || el;\n target.focus();\n }, 20);\n return () => { clearTimeout(t); document.removeEventListener('keydown', onKey); if (lockScroll) document.body.style.overflow = overflow; if (previous && previous.focus) previous.focus(); };\n }, [open]);\n}\n// Modal dialog: scrim (--overlay), header with title and close, scrollable body, footer with the actions. Renders nothing while closed.\nexport function Modal({ open, onClose, title, description, size = 'md', footer, children, hideClose, scrimClose = true, labels, className, bodyClassName, ...rest }) {\n const L = { close: 'Close', ...labels };\n const ref = React.useRef(null);\n const ids = React.useMemo(() => ({ t: uid('modal-title'), d: uid('modal-desc') }), []);\n useDialog(open, onClose, ref);\n if (!open) return null;\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: pointer-only convenience; Esc closes the dialog from the keyboard\n <div className=\"agn-scrim\" onMouseDown={(e) => { if (scrimClose && e.target === e.currentTarget && onClose) onClose(); }}>\n <div ref={ref} role=\"dialog\" aria-modal=\"true\" aria-labelledby={title ? ids.t : undefined} aria-describedby={description ? ids.d : undefined} tabIndex={-1} className={cx('agn-modal', 'agn-modal--' + size, className)} {...rest}>\n {(title || !hideClose) && (\n <header className=\"agn-modal__head\">\n <div className=\"agn-modal__heading\">\n {title && <h2 id={ids.t} className=\"agn-modal__title\">{title}</h2>}\n {description && <p id={ids.d} className=\"agn-modal__desc\">{description}</p>}\n </div>\n {!hideClose && <ButtonIcon icon=\"x\" label={L.close} size=\"sm\" onClick={onClose} data-dialog-close=\"\" className=\"agn-modal__close\" />}\n </header>\n )}\n <div className={cx('agn-modal__body', bodyClassName)}>{children}</div>\n {footer && <footer className=\"agn-modal__foot\">{footer}</footer>}\n </div>\n </div>\n );\n}\nconst PROMPT_ICON = { bad: 'trash-2', warn: 'triangle-alert', info: 'info', ok: 'circle-check' };\n// Confirm dialog: a question as the title, the consequence spelled out, Cancel + one confirming action (destructive when tone is bad).\nexport function Prompt({ open, onClose, onConfirm, title, children, consequence, tone = 'warn', icon, confirmLabel, cancelLabel, loading, labels, className, ...rest }) {\n const L = { confirm: 'Confirm', cancel: 'Cancel', ...labels };\n const ref = React.useRef(null);\n const ids = React.useMemo(() => ({ t: uid('prompt-title'), d: uid('prompt-desc') }), []);\n useDialog(open, onClose, ref);\n if (!open) return null;\n return (\n <div className=\"agn-scrim\">\n <div ref={ref} role=\"alertdialog\" aria-modal=\"true\" aria-labelledby={ids.t} aria-describedby={ids.d} tabIndex={-1} className={cx('agn-modal agn-modal--sm agn-prompt', 'agn-prompt--' + tone, className)} {...rest}>\n <div className=\"agn-prompt__body\">\n <span className=\"agn-prompt__icon\"><Icon name={icon || PROMPT_ICON[tone] || 'info'} size={20} /></span>\n <div>\n <h2 id={ids.t} className=\"agn-modal__title\">{title}</h2>\n <div id={ids.d} className=\"agn-prompt__text\">{children}{consequence && <p className=\"agn-prompt__consequence\">{consequence}</p>}</div>\n </div>\n </div>\n <footer className=\"agn-modal__foot\">\n <Button onClick={onClose} disabled={loading}>{cancelLabel || L.cancel}</Button>\n <Button variant={tone === 'bad' ? 'destructive' : 'primary'} onClick={onConfirm} loading={loading} data-autofocus=\"\">{confirmLabel || L.confirm}</Button>\n </footer>\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { useDialog } from './Modal.jsx';\n// Bottom sheet for phones and narrow frames: scrim, a panel rising from the bottom with --radius-2xl top corners, a grab handle, title, scrolling body and a footer. Focus is trapped and restored; Esc and the scrim close it. contained keeps it inside a positioned frame.\nexport function Sheet({ open, onClose, title, description, footer, children, hideClose, scrimClose = true, contained, maxHeight, labels, className, style, ...rest }) {\n const L = { close: 'Close', ...labels };\n const ref = React.useRef(null);\n const ids = React.useMemo(() => ({ t: uid('sheet-title'), d: uid('sheet-desc') }), []);\n useDialog(open, onClose, ref, { lockScroll: !contained });\n if (!open) return null;\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: pointer-only convenience; Esc closes the dialog from the keyboard\n <div className={cx('agn-sheet-scrim', contained && 'agn-sheet-scrim--contained')} onMouseDown={(e) => { if (scrimClose && e.target === e.currentTarget && onClose) onClose(); }}>\n <div ref={ref} role=\"dialog\" aria-modal=\"true\" aria-labelledby={title ? ids.t : undefined} aria-describedby={description ? ids.d : undefined} tabIndex={-1} className={cx('agn-sheet', className)} style={maxHeight != null ? { maxHeight: typeof maxHeight === 'number' ? maxHeight + 'px' : maxHeight, ...style } : style} {...rest}>\n <span className=\"agn-sheet__handle\" aria-hidden=\"true\" />\n {(title || !hideClose) && (\n <header className=\"agn-sheet__head\">\n <div className=\"agn-sheet__heading\">\n {title && <h2 id={ids.t} className=\"agn-sheet__title\">{title}</h2>}\n {description && <p id={ids.d} className=\"agn-sheet__desc\">{description}</p>}\n </div>\n {!hideClose && <ButtonIcon icon=\"x\" label={L.close} size=\"sm\" onClick={onClose} data-dialog-close=\"\" />}\n </header>\n )}\n <div className=\"agn-sheet__body\">{children}</div>\n {footer && <footer className=\"agn-sheet__foot\">{footer}</footer>}\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { ButtonIcon } from '../actions/Button.jsx';\nexport const PLACEMENTS = ['top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'right'];\n// Non-modal layer anchored to its trigger: 8 placements, optional arrow, header, footer. Closes on outside click and Esc; `open` makes it controlled (previews).\nexport function Popover({ trigger, open: openProp, defaultOpen = false, onOpenChange, placement = 'bottom-start', arrow = false, title, footer, children, width = 288, hideClose, static: isStatic, labels, className, ...rest }) {\n const L = { close: 'Close', ...labels };\n const [own, setOwn] = React.useState(defaultOpen);\n const controlled = openProp != null; const open = controlled ? openProp : own;\n const wrap = React.useRef(null); const pop = React.useRef(null); const byUser = React.useRef(false);\n const id = React.useMemo(() => uid('pop'), []);\n const set = (v) => { if (!controlled) setOwn(v); onOpenChange && onOpenChange(v); };\n const setRef = React.useRef(set); setRef.current = set;\n // biome-ignore lint/correctness/useExhaustiveDependencies: runs on open transitions; id is created once and isStatic is a static prop; set is read through setRef\n React.useEffect(() => {\n if (!open || isStatic) return;\n const down = (e) => { if (wrap.current && !wrap.current.contains(e.target)) setRef.current(false); };\n const key = (e) => { if (e.key === 'Escape') { setRef.current(false); const t = wrap.current && wrap.current.querySelector('[aria-controls=\"' + id + '\"]'); t && t.focus(); } };\n document.addEventListener('mousedown', down); document.addEventListener('keydown', key);\n if (byUser.current && pop.current) { pop.current.focus(); byUser.current = false; }\n return () => { document.removeEventListener('mousedown', down); document.removeEventListener('keydown', key); };\n }, [open]);\n const layer = (\n <div ref={pop} id={id} role=\"dialog\" aria-label={typeof title === 'string' ? title : undefined} tabIndex={-1} className={cx('agn-pop', isStatic ? 'agn-pop--static' : 'agn-pop--' + placement, arrow && 'agn-pop--arrow', className)} style={{ width }} {...rest}>\n {arrow && !isStatic && <span className=\"agn-pop__arrow\" aria-hidden=\"true\" />}\n {(title || !hideClose) && <div className=\"agn-pop__head\">{title && <div className=\"agn-pop__title\">{title}</div>}{!hideClose && <ButtonIcon icon=\"x\" label={L.close} size=\"xs\" onClick={() => set(false)} className=\"agn-pop__close\" />}</div>}\n <div className=\"agn-pop__body\">{children}</div>\n {footer && <div className=\"agn-pop__foot\">{footer}</div>}\n </div>\n );\n if (isStatic) return layer;\n return (\n <span className=\"agn-pop-wrap\" ref={wrap}>\n {trigger && React.cloneElement(trigger, { onClick: (e) => { trigger.props.onClick && trigger.props.onClick(e); byUser.current = !open; set(!open); }, 'aria-expanded': open, 'aria-haspopup': 'dialog', 'aria-controls': id })}\n {open && layer}\n </span>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nconst PX = { xs: 12, sm: 16, md: 20, lg: 32 };\n// Generic activity spinner (link-coloured stroke) for a control or a region; the brand loader is AginiesLoader. cover overlays the nearest positioned parent.\nexport function Spinner({ size = 'md', tone = 'signal', label, cover, labels, className, ...rest }) {\n const L = { loading: 'Loading', ...labels };\n const px = PX[size] || PX.md;\n const svg = (\n <svg className=\"agn-spinner__svg\" width={px} height={px} viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <circle className=\"agn-spinner__track\" cx=\"12\" cy=\"12\" r=\"9.5\" strokeWidth=\"2.5\" />\n <circle className=\"agn-spinner__arc\" cx=\"12\" cy=\"12\" r=\"9.5\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeDasharray=\"18 42\" />\n </svg>\n );\n return (\n // biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here\n <span className={cx('agn-spinner', 'agn-spinner--' + size, 'agn-spinner--' + tone, cover && 'agn-spinner--cover', className)} role=\"status\" aria-busy=\"true\" {...rest}>\n {svg}\n {label ? <span className=\"agn-spinner__label\">{label}</span> : <span className=\"agn-sr\">{L.loading}</span>}\n </span>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\n// Linear progress: determinate (value of max) or indeterminate; label on the left, value on the right in mono. Tone says what the bar means.\nexport function ProgressBar({ value = 0, max = 100, indeterminate, tone = 'signal', size = 'md', label, showValue, valueText, labels, className, ...rest }) {\n const L = { working: 'Working', ...labels };\n const id = React.useMemo(() => uid('progress'), []);\n const pct = Math.max(0, Math.min(100, (value / (max || 1)) * 100));\n const text = valueText != null ? valueText : Math.round(pct) + '%';\n return (\n <div className={cx('agn-progress', 'agn-progress--' + size, 'agn-progress--' + tone, indeterminate && 'agn-progress--indeterminate', className)} {...rest}>\n {(label || showValue) && (\n <div className=\"agn-progress__row\">\n {label && <span id={id} className=\"agn-progress__label\">{label}</span>}\n {showValue && !indeterminate && <span className=\"agn-progress__value agn-num\">{text}</span>}\n </div>\n )}\n <div className=\"agn-progress__track\" role=\"progressbar\" aria-labelledby={label ? id : undefined} aria-label={!label ? L.working : undefined} aria-valuemin={0} aria-valuemax={max} aria-valuenow={indeterminate ? undefined : value} aria-valuetext={indeterminate ? L.working : text}>\n <div className=\"agn-progress__fill\" style={indeterminate ? undefined : { width: pct + '%' }} />\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Circular progress with the value in the centre set like a stat; label under it. For completion, quota and score (0–100 or value of max).\nexport function ProgressRing({ value = 0, max = 100, size = 64, strokeWidth = 6, tone = 'signal', showValue = true, valueText, label, children, className, ...rest }) {\n const pct = Math.max(0, Math.min(100, (value / (max || 1)) * 100));\n const r = (size - strokeWidth) / 2, c = 2 * Math.PI * r;\n const text = valueText != null ? valueText : Math.round(pct) + '%';\n return (\n <div className={cx('agn-ring', 'agn-ring--' + tone, className)} style={{ width: size }} {...rest}>\n <div className=\"agn-ring__box\" style={{ width: size, height: size }} role=\"progressbar\" aria-valuemin={0} aria-valuemax={max} aria-valuenow={value} aria-valuetext={text} aria-label={typeof label === 'string' ? label : undefined}>\n <svg width={size} height={size} viewBox={`0 0 ${size} ${size}`} aria-hidden=\"true\">\n <circle className=\"agn-ring__track\" cx={size / 2} cy={size / 2} r={r} strokeWidth={strokeWidth} fill=\"none\" />\n <circle className=\"agn-ring__arc\" cx={size / 2} cy={size / 2} r={r} strokeWidth={strokeWidth} fill=\"none\" strokeLinecap={pct > 0 && pct < 100 ? 'round' : 'butt'} strokeDasharray={c} strokeDashoffset={c * (1 - pct / 100)} transform={`rotate(-90 ${size / 2} ${size / 2})`} />\n </svg>\n <div className=\"agn-ring__center\" style={{ fontSize: Math.max(11, Math.round(size * 0.24)) }}>{children != null ? children : showValue ? <span className=\"agn-ring__value agn-num\">{text}</span> : null}</div>\n </div>\n {label && <div className=\"agn-ring__label\">{label}</div>}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\n// Bottom-docked floating composer for a note, an e-mail or a draft: header (icon, title, minimise, close), body, toolbar on the left, footer actions on the right.\nexport function DockedComposer({ title, icon = 'pen-line', minimized: minProp, defaultMinimized = false, onMinimize, onClose, toolbar, footer, children, side = 'right', static: isStatic, labels, className, ...rest }) {\n const L = { minimize: 'Minimise', restore: 'Restore', close: 'Close', ...labels };\n const [own, setOwn] = React.useState(defaultMinimized);\n const min = minProp != null ? minProp : own;\n const toggle = () => { const v = !min; if (minProp == null) setOwn(v); onMinimize && onMinimize(v); };\n return (\n <section className={cx('agn-composer', 'agn-composer--' + side, min && 'agn-composer--min', isStatic && 'agn-composer--static', className)} aria-label={typeof title === 'string' ? title : undefined} {...rest}>\n <header className=\"agn-composer__head\">\n <Icon name={icon} size={16} className=\"agn-composer__icon\" />\n <h3 className=\"agn-composer__title\">{title}</h3>\n <div className=\"agn-composer__ctl\">\n <ButtonIcon icon={min ? 'chevron-up' : 'minus'} label={min ? L.restore : L.minimize} size=\"xs\" onClick={toggle} aria-expanded={!min} />\n {onClose && <ButtonIcon icon=\"x\" label={L.close} size=\"xs\" onClick={onClose} />}\n </div>\n </header>\n {!min && (\n <>\n <div className=\"agn-composer__body\">{children}</div>\n {(toolbar || footer) && <footer className=\"agn-composer__foot\"><div className=\"agn-composer__tools\">{toolbar}</div><div className=\"agn-composer__actions\">{footer}</div></footer>}\n </>\n )}\n </section>\n );\n}\n// Bottom bar of utilities (history, notes, chat) for the service console; the active one opens its panel above the bar.\nexport function DockedUtilityBar({ items = [], active, onChange, panel, static: isStatic, labels, className, ...rest }) {\n const L = { utilities: 'Utilities', ...labels };\n return (\n <div className={cx('agn-utility', isStatic && 'agn-utility--static', className)} {...rest}>\n {active && panel && <section className=\"agn-utility__panel\" aria-label={(items.find((i) => i.id === active) || {}).label}>{panel}</section>}\n <div className=\"agn-utility__bar\" role=\"toolbar\" aria-label={L.utilities}>\n {items.map((it) => (\n <button key={it.id} type=\"button\" className={cx('agn-utility__item', it.id === active && 'agn-utility__item--active')} aria-pressed={it.id === active} onClick={() => onChange && onChange(it.id === active ? null : it.id)}>\n <Icon name={it.icon || 'panel-bottom'} size={14} />\n <span>{it.label}</span>\n {it.badge != null && <span className=\"agn-utility__badge agn-num\">{it.badge}</span>}\n </button>\n ))}\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Button, ButtonIcon } from '../actions/Button.jsx';\nimport { initials } from './Notification.jsx';\n// Post composer for a feed or a record's notes: avatar, textarea that expands on focus, attach and mention tools, one submit.\nexport function Publisher({ user, placeholder, value, defaultValue = '', onChange, onSubmit, onAttach, onMention, submitLabel, expanded: expProp, labels, className, ...rest }) {\n const L = { placeholder: 'Write a note…', submit: 'Post', attach: 'Attach file', mention: 'Mention someone', ...labels };\n const [own, setOwn] = React.useState(defaultValue);\n const [focus, setFocus] = React.useState(false);\n const val = value != null ? value : own;\n const expanded = expProp != null ? expProp : focus || val.length > 0;\n const name = typeof user === 'string' ? user : user && user.name;\n const submit = () => { if (!val.trim()) return; onSubmit && onSubmit(val); if (value == null) setOwn(''); };\n return (\n <div className={cx('agn-publisher', expanded && 'agn-publisher--open', className)} {...rest}>\n {name && <span className=\"agn-publisher__avatar\" aria-hidden=\"true\">{initials(name)}</span>}\n <div className=\"agn-publisher__field\">\n <textarea className=\"agn-publisher__input\" rows={expanded ? 3 : 1} placeholder={placeholder || L.placeholder} value={val} aria-label={placeholder || L.placeholder}\n onChange={(e) => { if (value == null) setOwn(e.target.value); onChange && onChange(e.target.value); }}\n onFocus={() => setFocus(true)} onBlur={() => setFocus(false)}\n onKeyDown={(e) => { if (e.key === 'Enter' && (e.metaKey || e.ctrlKey)) { e.preventDefault(); submit(); } }} />\n {expanded && (\n <div className=\"agn-publisher__bar\">\n <div className=\"agn-publisher__tools\">\n <ButtonIcon icon=\"paperclip\" label={L.attach} size=\"sm\" onClick={onAttach} />\n <ButtonIcon icon=\"at-sign\" label={L.mention} size=\"sm\" onClick={onMention} />\n </div>\n <Button variant=\"primary\" size=\"sm\" disabled={!val.trim()} onClick={submit}>{submitLabel || L.submit}</Button>\n </div>\n )}\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\n// Empty region: an illustration or a boxed icon, a short title, one line of text and at most two actions. compact for an empty table or list.\nexport function EmptyState({ illustration, icon, product, title, children, action, secondary, compact, className, ...rest }) {\n return (\n // biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here\n <div className={cx('agn-empty', compact && 'agn-empty--compact', className)} role=\"status\" {...rest}>\n {illustration ? <div className=\"agn-empty__art\">{illustration}</div>\n : (icon || product) && <span className=\"agn-empty__icon\">{product ? <ProductIcon product={product} size={compact ? 20 : 24} /> : <Icon name={icon} size={compact ? 18 : 22} />}</span>}\n <div className=\"agn-empty__body\">\n {title && <h4 className=\"agn-empty__title\">{title}</h4>}\n {children != null && <p className=\"agn-empty__text\">{children}</p>}\n {(action || secondary) && <div className=\"agn-empty__actions\">{action}{secondary}</div>}\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\n// Scroll container of a conversation: messages, events and dividers, newest at the bottom; sticks to the bottom as children change.\nexport function ChatThread({ children, stickToBottom = true, userSide = 'start', maxHeight, labels, className, style, ...rest }) {\n const L = { thread: 'Conversation', ...labels };\n const ref = React.useRef(null);\n // biome-ignore lint/correctness/useExhaustiveDependencies: children is the trigger: new content scrolls the log to the bottom\n React.useEffect(() => { if (stickToBottom && ref.current) ref.current.scrollTop = ref.current.scrollHeight; }, [children, stickToBottom]);\n return <div ref={ref} className={cx('agn-chat', 'agn-chat--user-' + userSide, className)} role=\"log\" aria-live=\"polite\" aria-label={L.thread} style={{ maxHeight, ...style }} {...rest}>{children}</div>;\n}\n// Day separator (\"15.10.2026\", \"Today\") or the \"New messages\" line between read and unread.\nexport function ChatDivider({ variant = 'day', children, labels, className, ...rest }) {\n const L = { newMessages: 'New messages', ...labels };\n return <div className={cx('agn-chat__divider', 'agn-chat__divider--' + variant, className)} {...rest}><span>{children != null ? children : variant === 'new' ? L.newMessages : null}</span></div>;\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\nimport { ChatMarkdown } from './ChatMarkdown.jsx';\nimport { ToolCallCard } from './ToolCallCard.jsx';\nimport { StreamingIndicator } from './StreamingIndicator.jsx';\nconst TICK = { sending: 'clock', sent: 'check', delivered: 'check-check', read: 'check-check', failed: 'circle-alert' };\nconst initials = (name = '') => String(name).trim().split(/\\s+/).slice(0, 2).map((w) => w.charAt(0).toLocaleUpperCase('tr-TR')).join('');\nfunction Structured({ data, onAction }) {\n const act = (a) => onAction && onAction(a.value != null ? a.value : a.label, a);\n return (\n <div className=\"agn-msg__structured\">\n {data.image && <figure className=\"agn-msg__figure\"><img className=\"agn-msg__image\" src={data.image.src} alt={data.image.alt || ''} />{data.image.caption && <figcaption>{data.image.caption}</figcaption>}</figure>}\n {data.cards && data.cards.length > 0 && (\n <div className=\"agn-msg__cards\">{data.cards.map((c, i) => (\n <div key={i} className=\"agn-msg__card\">\n {c.image && <img className=\"agn-msg__card-image\" src={c.image} alt={c.imageAlt || ''} />}\n <div className=\"agn-msg__card-body\">\n <div className=\"agn-msg__card-title\">{c.title}</div>\n {c.text && <div className=\"agn-msg__card-text\">{c.text}</div>}\n {c.actions && <div className=\"agn-msg__card-actions\">{c.actions.map((a, j) => <Button key={j} size=\"xs\" variant={a.variant || 'neutral'} onClick={() => act(a)}>{a.label}</Button>)}</div>}\n </div>\n </div>))}</div>\n )}\n {data.table && (\n <div className=\"agn-msg__table-wrap\"><table className=\"agn-msg__table\">\n <thead><tr>{data.table.columns.map((c, i) => <th key={i}>{c}</th>)}</tr></thead>\n <tbody>{data.table.rows.map((r, i) => <tr key={i}>{r.map((v, j) => <td key={j}>{v}</td>)}</tr>)}</tbody>\n </table></div>\n )}\n {data.buttons && data.buttons.length > 0 && <div className=\"agn-msg__buttons\">{data.buttons.map((b, i) => <Button key={i} size=\"sm\" variant={b.variant || 'neutral'} icon={b.icon} onClick={() => act(b)}>{b.label}</Button>)}</div>}\n </div>\n );\n}\n// One message in a thread. role: user (customer) | agent (the bot, with an agent tile) | human-agent (a person at the desk) | system (centred note).\n// Body is markdown by default (string children); structured renders buttons, cards, a table or an image; sources and tools hang under the bubble.\nexport function ChatMessage({ role = 'agent', name, time, status, avatar, children, markdown = true, structured, sources, tools, streaming, onAction, labels, className, ...rest }) {\n const L = { sending: 'Sending', sent: 'Sent', delivered: 'Delivered', read: 'Read', failed: 'Not delivered', sources: 'Sources', tools: 'tool calls', tool: 'tool call', agent: 'Agent', you: 'You', ...labels };\n if (role === 'system') return <div className={cx('agn-msg agn-msg--system', className)} {...rest}><span className=\"agn-msg__system\">{children}</span>{time && <span className=\"agn-msg__time\">{time}</span>}</div>;\n const body = typeof children === 'string' && markdown ? <ChatMarkdown source={children} /> : children;\n const side = role === 'agent' ? <span className=\"agn-msg__tile\" aria-hidden=\"true\"><Icon name=\"bot\" size={14} /></span>\n : role === 'human-agent' || avatar ? <span className=\"agn-msg__avatar\" aria-hidden=\"true\">{typeof avatar === 'string' ? initials(avatar) : avatar || initials(name)}</span> : null;\n return (\n <div className={cx('agn-msg', 'agn-msg--' + role, streaming && 'agn-msg--streaming', className)} {...rest}>\n {side && <div className=\"agn-msg__side\">{side}</div>}\n <div className=\"agn-msg__col\">\n {(name || role === 'agent') && <div className=\"agn-msg__name\">{name || L.agent}</div>}\n <div className=\"agn-msg__bubble\">\n {body}\n {streaming && (children == null || children === '' ? <StreamingIndicator inline /> : <span className=\"agn-msg__cursor\" aria-hidden=\"true\" />)}\n </div>\n {structured && <Structured data={structured} onAction={onAction} />}\n {tools && tools.length > 0 && (\n <details className=\"agn-msg__tools\">\n <summary className=\"agn-msg__tools-head agn-focus\"><Icon name=\"chevron-right\" size={12} className=\"agn-msg__tools-caret\" /><Icon name=\"wrench\" size={12} />{tools.length} {tools.length === 1 ? L.tool : L.tools}</summary>\n <div className=\"agn-msg__tools-body\">{tools.map((t, i) => <ToolCallCard key={t.id || i} {...t} />)}</div>\n </details>\n )}\n {sources && sources.length > 0 && (\n <div className=\"agn-msg__sources\">\n <span className=\"agn-eyebrow agn-eyebrow--quiet\">{L.sources}</span>\n <ul className=\"agn-msg__source-list\">{sources.map((s, i) => <li key={i}>{s.href ? <a className=\"agn-msg__source\" href={s.href} target=\"_blank\" rel=\"noopener noreferrer\"><Icon name={s.icon || 'file-text'} size={11} />{s.label}</a> : <span className=\"agn-msg__source\"><Icon name={s.icon || 'file-text'} size={11} />{s.label}</span>}</li>)}</ul>\n </div>\n )}\n {(time || status) && (\n <div className=\"agn-msg__meta\">\n {time && <span className=\"agn-msg__time\">{time}</span>}\n {status && TICK[status] && <span className={cx('agn-msg__tick', 'agn-msg__tick--' + status)} title={L[status]}><Icon name={TICK[status]} size={12} /><span className=\"agn-sr\">{L[status]}</span>{status === 'failed' && <span className=\"agn-msg__tick-text\">{L.failed}</span>}</span>}\n </div>\n )}\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\n// Small markdown renderer for agent replies: headings, bold/italic, inline and fenced code, lists, links, tables, blockquote, rules. Raw HTML is shown as text, never rendered.\nconst INLINE = /(`[^`\\n]+`)|(\\*\\*[^*\\n]+\\*\\*)|(__[^_\\n]+__)|(\\*[^*\\n]+\\*)|(\\b_[^_\\n]+_\\b)|(\\[[^\\]\\n]+\\]\\([^)\\s]+\\))|(https?:\\/\\/[^\\s<>()]+)/g;\nconst safeHref = (u) => (/^(https?:|mailto:|tel:|\\/|#)/i.test(u) ? u : '#');\nexport function renderInline(text, depth = 0) {\n const re = new RegExp(INLINE.source, 'g'); const out = []; let last = 0, m, k = 0;\n // biome-ignore lint/suspicious/noAssignInExpressions: the double-parenthesised assignment is the regex-exec loop idiom: assign the match, then test it\n while ((m = re.exec(text))) {\n if (m.index > last) out.push(text.slice(last, m.index));\n const s = m[0];\n if (m[1]) out.push(<code key={k++} className=\"agn-md__code\">{s.slice(1, -1)}</code>);\n else if (m[2] || m[3]) out.push(<strong key={k++}>{depth < 2 ? renderInline(s.slice(2, -2), depth + 1) : s.slice(2, -2)}</strong>);\n else if (m[4] || m[5]) out.push(<em key={k++}>{depth < 2 ? renderInline(s.slice(1, -1), depth + 1) : s.slice(1, -1)}</em>);\n else if (m[6]) { const mm = /^\\[([^\\]]+)\\]\\(([^)\\s]+)\\)/.exec(s); out.push(<a key={k++} href={safeHref(mm[2])} target=\"_blank\" rel=\"noopener noreferrer\">{mm[1]}</a>); }\n else if (m[7]) out.push(<a key={k++} href={safeHref(s)} target=\"_blank\" rel=\"noopener noreferrer\">{s}</a>);\n last = m.index + s.length;\n }\n if (last < text.length) out.push(text.slice(last));\n return out;\n}\nconst LIST = /^\\s*([-*+]|\\d+[.)])\\s+(.*)$/;\nconst BLOCK_START = /^(```|#{1,6}\\s|>|\\|)/;\nexport function parseBlocks(src) {\n const lines = String(src == null ? '' : src).replace(/\\r\\n?/g, '\\n').split('\\n');\n const blocks = []; let i = 0, m;\n while (i < lines.length) {\n const line = lines[i];\n if (!line.trim()) { i++; continue; }\n // biome-ignore lint/suspicious/noAssignInExpressions: the double-parenthesised assignment is the regex-exec loop idiom: assign the match, then test it\n if ((m = /^```\\s*([\\w-]+)?\\s*$/.exec(line))) { const buf = []; i++; while (i < lines.length && !/^```\\s*$/.test(lines[i])) buf.push(lines[i++]); i++; blocks.push({ type: 'code', lang: m[1], text: buf.join('\\n') }); continue; }\n // biome-ignore lint/suspicious/noAssignInExpressions: the double-parenthesised assignment is the regex-exec loop idiom: assign the match, then test it\n if ((m = /^(#{1,6})\\s+(.*)$/.exec(line))) { blocks.push({ type: 'h', level: m[1].length, text: m[2].replace(/\\s#+$/, '') }); i++; continue; }\n if (/^\\s*([-*_])(\\s*\\1){2,}\\s*$/.test(line)) { blocks.push({ type: 'hr' }); i++; continue; }\n if (/^>\\s?/.test(line)) { const buf = []; while (i < lines.length && /^>\\s?/.test(lines[i])) buf.push(lines[i++].replace(/^>\\s?/, '')); blocks.push({ type: 'quote', blocks: parseBlocks(buf.join('\\n')) }); continue; }\n if (/^\\|/.test(line) && i + 1 < lines.length && /^\\|?\\s*:?-{2,}/.test(lines[i + 1])) {\n const rows = []; while (i < lines.length && /^\\|/.test(lines[i])) rows.push(lines[i++]);\n const cells = (r) => r.replace(/^\\|/, '').replace(/\\|\\s*$/, '').split('|').map((c) => c.trim());\n const aligns = cells(rows[1]).map((c) => (/^:-+:$/.test(c) ? 'center' : /-+:$/.test(c) ? 'right' : 'left'));\n blocks.push({ type: 'table', head: cells(rows[0]), aligns, rows: rows.slice(2).map(cells) }); continue;\n }\n // biome-ignore lint/suspicious/noAssignInExpressions: the double-parenthesised assignment is the regex-exec loop idiom: assign the match, then test it\n if ((m = LIST.exec(line))) {\n const ordered = /\\d/.test(m[1]); const items = [];\n // biome-ignore lint/suspicious/noAssignInExpressions: the double-parenthesised assignment is the regex-exec loop idiom: assign the match, then test it\n while (i < lines.length && (m = LIST.exec(lines[i]))) { let text = m[2]; i++; while (i < lines.length && /^\\s{2,}\\S/.test(lines[i]) && !LIST.test(lines[i])) text += '\\n' + lines[i++].trim(); items.push(text); }\n blocks.push({ type: 'list', ordered, items }); continue;\n }\n const buf = [line]; i++;\n while (i < lines.length && lines[i].trim() && !BLOCK_START.test(lines[i]) && !LIST.test(lines[i])) buf.push(lines[i++]);\n blocks.push({ type: 'p', text: buf.join('\\n') });\n }\n return blocks;\n}\nfunction withBreaks(text) { return text.split('\\n').flatMap((l, i) => (i ? [<br key={'b' + i} />, ...renderInline(l)] : renderInline(l))); }\nfunction renderBlock(b, i) {\n switch (b.type) {\n case 'code': return <pre key={i} className=\"agn-md__pre\" data-lang={b.lang || undefined}><code>{b.text}</code></pre>;\n case 'h': { const Tag = 'h' + Math.min(6, b.level + 2); return <Tag key={i} className={'agn-md__h agn-md__h--' + b.level}>{renderInline(b.text)}</Tag>; }\n case 'hr': return <hr key={i} className=\"agn-md__hr\" />;\n case 'quote': return <blockquote key={i} className=\"agn-md__quote\">{b.blocks.map(renderBlock)}</blockquote>;\n case 'table': return (\n <div key={i} className=\"agn-md__table-wrap\"><table className=\"agn-md__table\">\n <thead><tr>{b.head.map((c, j) => <th key={j} style={{ textAlign: b.aligns[j] }}>{renderInline(c)}</th>)}</tr></thead>\n <tbody>{b.rows.map((r, ri) => <tr key={ri}>{b.head.map((_, j) => <td key={j} style={{ textAlign: b.aligns[j] }}>{renderInline(r[j] || '')}</td>)}</tr>)}</tbody>\n </table></div>);\n case 'list': { const Tag = b.ordered ? 'ol' : 'ul'; return <Tag key={i} className=\"agn-md__list\">{b.items.map((t, j) => <li key={j}>{withBreaks(t)}</li>)}</Tag>; }\n default: return <p key={i} className=\"agn-md__p\">{withBreaks(b.text)}</p>;\n }\n}\nexport function ChatMarkdown({ source, className, ...rest }) {\n const blocks = React.useMemo(() => parseBlocks(source), [source]);\n return <div className={cx('agn-md', className)} {...rest}>{blocks.map(renderBlock)}</div>;\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nconst STATUS = { running: { icon: 'loader-circle', tone: 'info', label: 'Running' }, ok: { icon: 'check', tone: 'ok', label: 'Done' }, bad: { icon: 'circle-x', tone: 'bad', label: 'Failed' }, pending: { icon: 'clock', tone: 'neutral', label: 'Pending' } };\nconst show = (v) => (v == null ? '' : typeof v === 'string' ? v : JSON.stringify(v, null, 2));\nexport const formatDuration = (ms, locale = 'tr-TR') => ms == null ? '' : ms < 1000 ? Math.round(ms) + ' ms' : ms < 60000 ? (ms / 1000).toLocaleString(locale, { maximumFractionDigits: 1 }) + ' s' : Math.floor(ms / 60000) + ':' + String(Math.round((ms % 60000) / 1000)).padStart(2, '0');\n// One tool call under a message: tool name in mono, status tag, duration; opens to the input and output JSON.\nexport function ToolCallCard({ name, status = 'ok', duration, input, output, summary, open, defaultOpen = false, onToggle, locale = 'tr-TR', labels, className, ...rest }) {\n const L = { input: 'Input', output: 'Output', running: 'Running', ok: 'Done', bad: 'Failed', pending: 'Pending', ...labels };\n const s = STATUS[status] || STATUS.ok;\n return (\n <details className={cx('agn-tool', 'agn-tool--' + status, className)} open={open != null ? open : defaultOpen || undefined} onToggle={(e) => onToggle && onToggle(e.currentTarget.open)} {...rest}>\n <summary className=\"agn-tool__head agn-focus\">\n <Icon name=\"chevron-right\" size={14} className=\"agn-tool__caret\" />\n <Icon name=\"wrench\" size={14} className=\"agn-tool__icon\" />\n <span className=\"agn-tool__name\">{name}</span>\n {summary && <span className=\"agn-tool__summary\">{summary}</span>}\n <span className={cx('agn-tool__status', 'agn-tool__status--' + s.tone)}><Icon name={s.icon} size={11} className={status === 'running' ? 'agn-tool__spin' : undefined} />{L[status] || s.label}</span>\n {duration != null && <span className=\"agn-tool__duration agn-num\">{typeof duration === 'number' ? formatDuration(duration, locale) : duration}</span>}\n </summary>\n <div className=\"agn-tool__body\">\n {input != null && <div className=\"agn-tool__section\"><div className=\"agn-eyebrow agn-eyebrow--quiet\">{L.input}</div><pre className=\"agn-tool__pre\"><code>{show(input)}</code></pre></div>}\n {output != null && <div className=\"agn-tool__section\"><div className=\"agn-eyebrow agn-eyebrow--quiet\">{L.output}</div><pre className=\"agn-tool__pre\"><code>{show(output)}</code></pre></div>}\n </div>\n </details>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\n// Busy dots and a \"Thinking…\" shine while the agent streams. Reduced motion stops both and leaves the words.\nexport function StreamingIndicator({ label, dots = true, inline, labels, className, ...rest }) {\n const L = { thinking: 'Thinking…', ...labels };\n const Tag = inline ? 'span' : 'div';\n return (\n // biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here\n <Tag className={cx('agn-streaming', inline && 'agn-streaming--inline', className)} role=\"status\" aria-live=\"polite\" {...rest}>\n {dots && <span className=\"agn-streaming__dots\" aria-hidden=\"true\"><i /><i /><i /></span>}\n <span className=\"agn-streaming__text\">{label || L.thinking}</span>\n </Tag>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nexport const EVENT_KINDS = {\n 'handoff-requested': { icon: 'hand', tone: 'warn', label: 'Handoff requested' },\n 'handoff-accepted': { icon: 'user-check', tone: 'ok', label: 'Handoff accepted' },\n closed: { icon: 'circle-check', tone: 'neutral', label: 'Conversation closed' },\n 'call-started': { icon: 'phone', tone: 'info', label: 'Call started' },\n 'call-ended': { icon: 'phone-off', tone: 'neutral', label: 'Call ended' },\n approval: { icon: 'shield-check', tone: 'warn', label: 'Human approval requested' },\n info: { icon: 'info', tone: 'neutral', label: '' },\n};\n// Centred event pill in a thread: handoff requested / accepted, closed, call started / ended, approval. Warn tone for things a person must act on.\nexport function ChatEvent({ kind = 'info', tone, icon, time, children, className, ...rest }) {\n const k = EVENT_KINDS[kind] || EVENT_KINDS.info;\n return (\n // biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here\n <div className={cx('agn-chat-event', 'agn-chat-event--' + (tone || k.tone), className)} role=\"status\" {...rest}>\n <Icon name={icon || k.icon} size={12} />\n <span className=\"agn-chat-event__text\">{children != null ? children : k.label}</span>\n {time && <span className=\"agn-chat-event__time\">{time}</span>}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// Row of suggested prompts as chips; picking one sends it (or fills the composer).\nexport function ChatSuggestions({ items = [], onPick, row, labels, className, ...rest }) {\n const L = { suggestions: 'Suggestions', ...labels };\n return (\n // biome-ignore lint/a11y/useSemanticElements: a labelled role=group is the intended semantics for this cluster; <fieldset> brings form semantics, a legend and UA chrome it does not want\n <div className={cx('agn-chat-suggest', row && 'agn-chat-suggest--row', className)} role=\"group\" aria-label={L.suggestions} {...rest}>\n {items.map((s, i) => { const item = typeof s === 'string' ? { label: s } : s; return (\n <button key={i} type=\"button\" className=\"agn-chat-suggest__chip agn-focus\" onClick={() => onPick && onPick(item.value != null ? item.value : item.label, item)}>\n {item.icon && <Icon name={item.icon} size={12} />}{item.label}\n </button>); })}\n </div>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nconst fmtSize = (b) => (b >= 1048576 ? (b / 1048576).toFixed(1) + ' MB' : b >= 1024 ? Math.round(b / 1024) + ' KB' : b + ' B');\n// The chat input: auto-growing textarea, attach (5 files, 10 MB each), dictation and hands-free voice, send or stop while streaming, a toolbar slot (model picker), a header slot (context bar) and a footnote node.\nexport function ChatComposer({ value, defaultValue = '', onChange, onSend, onStop, streaming, disabled, placeholder, attach = true, maxFiles = 5, maxFileSize = 10 * 1048576, files = [], onAttach, onRemoveFile, voice = 'off', onDictate, onHandsFree, footnote, toolbar, header, maxRows = 8, labels, className, ...rest }) {\n const L = { placeholder: 'Message the agent…', send: 'Send', stop: 'Stop', attach: 'Attach files', attachHint: 'Up to 5 files, 10 MB each', dictate: 'Dictate', handsFree: 'Hands-free voice', listening: 'Listening…', speaking: 'Speaking…', remove: 'Remove', tooMany: 'You can attach up to 5 files.', tooLarge: 'Each file must be under 10 MB.', ...labels };\n const [own, setOwn] = React.useState(defaultValue);\n const [err, setErr] = React.useState(null);\n const val = value != null ? value : own;\n const ta = React.useRef(null); const file = React.useRef(null);\n const id = React.useMemo(() => uid('chatbox'), []);\n const grow = () => { const el = ta.current; if (!el) return; el.style.height = 'auto'; const line = parseFloat(getComputedStyle(el).lineHeight) || 20; el.style.height = Math.min(el.scrollHeight, line * maxRows + 16) + 'px'; };\n // biome-ignore lint/correctness/useExhaustiveDependencies: val and maxRows are the re-measure triggers; grow reads the textarea from its ref\n React.useEffect(grow, [val, maxRows]);\n const set = (v) => { if (value == null) setOwn(v); onChange && onChange(v); };\n const send = () => { if (streaming) { onStop && onStop(); return; } if (!val.trim() && !files.length) return; onSend && onSend(val, files); if (value == null) setOwn(''); };\n const pick = (e) => {\n const list = Array.from(e.target.files || []); e.target.value = '';\n if (files.length + list.length > maxFiles) { setErr(L.tooMany); return; }\n if (list.some((f) => f.size > maxFileSize)) { setErr(L.tooLarge); return; }\n setErr(null); onAttach && onAttach(list);\n };\n const canSend = streaming || (!disabled && (val.trim().length > 0 || files.length > 0));\n return (\n <div className={cx('agn-chatbox', disabled && 'agn-chatbox--disabled', className)} {...rest}>\n <div className=\"agn-chatbox__box\">\n {header && <div className=\"agn-chatbox__header\">{header}</div>}\n {files.length > 0 && (\n <ul className=\"agn-chatbox__files\">{files.map((f, i) => (\n <li key={i} className=\"agn-chatbox__file\"><Icon name=\"paperclip\" size={11} /><span className=\"agn-chatbox__file-name\">{f.name}</span>{f.size != null && <span className=\"agn-chatbox__file-size\">{fmtSize(f.size)}</span>}{onRemoveFile && <button type=\"button\" className=\"agn-chatbox__file-x\" aria-label={L.remove + ' ' + f.name} onClick={() => onRemoveFile(f, i)}><Icon name=\"x\" size={11} /></button>}</li>))}</ul>\n )}\n <textarea ref={ta} id={id} className=\"agn-chatbox__input\" rows={1} value={val} disabled={disabled} placeholder={placeholder || L.placeholder} aria-label={placeholder || L.placeholder}\n onChange={(e) => set(e.target.value)} onKeyDown={(e) => { if (e.key === 'Enter' && !e.shiftKey && !e.nativeEvent.isComposing) { e.preventDefault(); if (canSend) send(); } }} />\n <div className=\"agn-chatbox__bar\">\n <div className=\"agn-chatbox__tools\">\n {attach && <><input ref={file} type=\"file\" multiple className=\"agn-sr\" tabIndex={-1} aria-hidden=\"true\" onChange={pick} /><ButtonIcon icon=\"paperclip\" label={L.attach + ' · ' + L.attachHint} size=\"sm\" disabled={disabled} onClick={() => file.current && file.current.click()} /></>}\n {voice !== 'off' && (\n <>\n <ButtonIcon icon=\"mic\" label={L.dictate} size=\"sm\" disabled={disabled} className={cx('agn-chatbox__voice', voice === 'listening' && 'agn-chatbox__voice--on')} aria-pressed={voice === 'listening'} onClick={onDictate} />\n <ButtonIcon icon=\"audio-lines\" label={L.handsFree} size=\"sm\" disabled={disabled} className={cx('agn-chatbox__voice', voice === 'speaking' && 'agn-chatbox__voice--on')} aria-pressed={voice === 'speaking'} onClick={onHandsFree} />\n {/* biome-ignore lint/a11y/useSemanticElements: a live status message, not the result of a calculation; <output> is a form-associated element and changes nothing for AT here */}\n {(voice === 'listening' || voice === 'speaking') && <span className=\"agn-chatbox__voice-state\" role=\"status\"><span className=\"agn-chatbox__voice-dot\" aria-hidden=\"true\" />{voice === 'listening' ? L.listening : L.speaking}</span>}\n </>\n )}\n {toolbar && <div className=\"agn-chatbox__toolbar\">{toolbar}</div>}\n {err && <span className=\"agn-chatbox__error\" role=\"alert\">{err}</span>}\n </div>\n <ButtonIcon icon={streaming ? 'square' : 'arrow-up'} label={streaming ? L.stop : L.send} variant={streaming ? 'destructive-text' : 'primary'} size=\"sm\" disabled={!canSend} onClick={send} className=\"agn-chatbox__send\" />\n </div>\n </div>\n {footnote && <div className=\"agn-chatbox__footnote\">{footnote}</div>}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { formatDuration } from './ToolCallCard.jsx';\nconst VERDICT_ICON = { ok: 'circle-check', bad: 'circle-x', warn: 'triangle-alert', neutral: 'info', info: 'info' };\n// Read-only transcript of a run or a call: numbered turns with speaker, time and text, and an optional judge verdict strip. Used in Logs and QA.\nexport function TranscriptPanel({ title, meta, turns = [], verdict, selected, onSelect, maxHeight = 420, locale = 'tr-TR', labels, className, ...rest }) {\n const L = { agent: 'Agent', customer: 'Customer', system: 'System', judge: 'Judge', latency: 'latency', flagged: 'Flagged', empty: 'No turns', ...labels };\n const Row = onSelect ? 'button' : 'div';\n return (\n <section className={cx('agn-transcript', className)} aria-label={typeof title === 'string' ? title : undefined} {...rest}>\n {(title || meta) && <header className=\"agn-transcript__head\">{title && <h3 className=\"agn-transcript__title\">{title}</h3>}{meta && <div className=\"agn-transcript__meta\">{meta}</div>}</header>}\n {verdict && (\n <div className={cx('agn-transcript__verdict', 'agn-transcript__verdict--' + (verdict.tone || 'neutral'))}>\n <Icon name={VERDICT_ICON[verdict.tone] || 'info'} size={14} />\n <span className=\"agn-transcript__verdict-label\">{L.judge} · {verdict.label}</span>\n {verdict.score != null && <span className=\"agn-transcript__verdict-score agn-num\">{verdict.score}</span>}\n {verdict.summary && <span className=\"agn-transcript__verdict-text\">{verdict.summary}</span>}\n {verdict.dimensions && <ul className=\"agn-transcript__dims\">{verdict.dimensions.map((d, i) => <li key={i} className={cx('agn-transcript__dim', d.pass ? 'agn-transcript__dim--ok' : 'agn-transcript__dim--bad')}><Icon name={d.pass ? 'check' : 'x'} size={10} />{d.name}</li>)}</ul>}\n </div>\n )}\n <ol className=\"agn-transcript__turns\" style={{ maxHeight }}>\n {turns.map((t, i) => {\n const n = t.n != null ? t.n : i + 1; const sel = selected != null && selected === (t.id != null ? t.id : n);\n return (\n <li key={t.id != null ? t.id : n} className={cx('agn-transcript__turn', 'agn-transcript__turn--' + (t.speaker || 'agent'), t.flagged && 'agn-transcript__turn--flagged', sel && 'agn-transcript__turn--selected')}>\n <Row type={onSelect ? 'button' : undefined} className=\"agn-transcript__row agn-focus-inset\" aria-pressed={onSelect ? sel : undefined} onClick={onSelect ? () => onSelect(t.id != null ? t.id : n, t) : undefined}>\n <span className=\"agn-transcript__n agn-num\">{String(n).padStart(2, '0')}</span>\n <span className=\"agn-transcript__speaker\">{t.name || L[t.speaker] || t.speaker}</span>\n <span className=\"agn-transcript__text\">{t.text}{t.note && <span className=\"agn-transcript__note\">{t.note}</span>}</span>\n <span className=\"agn-transcript__right\">\n {t.flagged && <span className=\"agn-transcript__flag\"><Icon name=\"flag\" size={11} />{L.flagged}</span>}\n {t.latencyMs != null && <span className=\"agn-transcript__latency agn-num\" title={L.latency}>{formatDuration(t.latencyMs, locale)}</span>}\n {t.time && <span className=\"agn-transcript__time agn-num\">{t.time}</span>}\n </span>\n </Row>\n </li>\n );\n })}\n {!turns.length && <li className=\"agn-transcript__empty\">{L.empty}</li>}\n </ol>\n </section>\n );\n}\n","import React from 'react';\nimport { cx, uid } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\nconst STATUS = { pending: { tone: 'warn', icon: 'pause', label: 'Paused · approval' }, approved: { tone: 'ok', icon: 'circle-check', label: 'Approved' }, rejected: { tone: 'bad', icon: 'circle-x', label: 'Rejected' }, queued: { tone: 'neutral', icon: 'clock', label: 'Queued' } };\nfunction Field({ f, value, onChange, disabled, id }) {\n const set = (v) => onChange && onChange(f.key, v);\n const common = { id, disabled, 'aria-describedby': f.help ? id + '-help' : undefined, required: f.required };\n switch (f.type) {\n case 'boolean': return <label className=\"agn-approval__check\"><input type=\"checkbox\" checked={!!value} onChange={(e) => set(e.target.checked)} {...common} /><span>{f.label}</span></label>;\n case 'number': return <input className=\"agn-approval__input agn-num\" type=\"number\" value={value == null ? '' : value} min={f.min} max={f.max} step={f.step} placeholder={f.placeholder} onChange={(e) => set(e.target.value === '' ? null : Number(e.target.value))} {...common} />;\n case 'json': return <textarea className=\"agn-approval__input agn-approval__input--json\" rows={4} value={typeof value === 'string' ? value : value == null ? '' : JSON.stringify(value, null, 2)} spellCheck={false} onChange={(e) => set(e.target.value)} {...common} />;\n case 'select': return <select className=\"agn-approval__input\" value={value == null ? '' : value} onChange={(e) => set(e.target.value)} {...common}>{f.placeholder && <option value=\"\">{f.placeholder}</option>}{(f.options || []).map((o) => { const opt = typeof o === 'string' ? { value: o, label: o } : o; return <option key={opt.value} value={opt.value}>{opt.label}</option>; })}</select>;\n default: return <input className=\"agn-approval__input\" type=\"text\" value={value == null ? '' : value} placeholder={f.placeholder} onChange={(e) => set(e.target.value)} {...common} />;\n }\n}\n// The human-in-the-loop card: why the agent stopped (warn), what it proposes, the approver's form, and Approve / Reject / Ask. variant=\"permission\" is the tool-permission prompt (Allow once · Always allow · Deny) with no run-status chip; `actions` replaces the buttons. Works under comfortable density.\nexport function ApprovalCard({ agent, runId, tenant, requestedAt, requester, reason, proposal = [], fields = [], values: valProp, onChange, status = 'pending', queuePosition, decidedBy, decidedAt, onApprove, onReject, onAsk, onAlways, actions, variant = 'approval', loading, compact, labels, className, ...rest }) {\n const perm = variant === 'permission';\n const L = { eyebrow: perm ? 'Permission request' : 'Human approval', allowOnce: 'Allow once', always: 'Always allow', deny: 'Deny', reason: 'Why the agent stopped', proposes: 'Agent proposes', decision: 'Your decision', approve: 'Approve', reject: 'Reject', ask: 'Ask the agent', queued: 'Queued', ahead: 'ahead', by: 'by', pending: 'Paused · approval', approved: 'Approved', rejected: 'Rejected', ...labels };\n const [own, setOwn] = React.useState(() => Object.fromEntries(fields.map((f) => [f.key, f.value])));\n const values = valProp || own;\n const change = (k, v) => { if (!valProp) setOwn((o) => ({ ...o, [k]: v })); onChange && onChange(k, v, { ...values, [k]: v }); };\n const id = React.useMemo(() => uid('approval'), []);\n const s = STATUS[status] || STATUS.pending;\n const open = status === 'pending';\n const decide = (fn) => () => fn && fn(values);\n return (\n <section className={cx('agn-approval', 'agn-approval--' + status, perm && 'agn-approval--permission', compact && 'agn-approval--compact', className)} aria-labelledby={id + '-t'} {...rest}>\n <header className=\"agn-approval__head\">\n <div className=\"agn-approval__heading\">\n <div className=\"agn-eyebrow\">{L.eyebrow}</div>\n <h3 id={id + '-t'} className=\"agn-approval__title\">{agent}</h3>\n <div className=\"agn-approval__meta\">{[runId, tenant, requestedAt].filter(Boolean).map((x, i) => <span key={i}>{x}</span>)}</div>\n </div>\n {!perm && <span className={cx('agn-approval__status', 'agn-approval__status--' + s.tone)}><Icon name={s.icon} size={12} />{status === 'queued' && queuePosition != null ? `${L.queued} (${queuePosition} ${L.ahead})` : L[status] || s.label}</span>}\n </header>\n {reason && <div className=\"agn-approval__reason\" role=\"note\"><Icon name=\"triangle-alert\" size={16} /><div><div className=\"agn-approval__reason-label\">{L.reason}</div><div className=\"agn-approval__reason-text\">{reason}</div></div></div>}\n {proposal.length > 0 && (\n <div className=\"agn-approval__section\">\n <div className=\"agn-eyebrow agn-eyebrow--quiet\">{L.proposes}</div>\n <dl className=\"agn-approval__kv\">{proposal.map((p, i) => <div key={i} className=\"agn-approval__kv-row\"><dt>{p.label}</dt><dd className={p.mono ? 'agn-mono' : undefined}>{p.value}</dd></div>)}</dl>\n </div>\n )}\n {fields.length > 0 && (\n <div className=\"agn-approval__section\">\n <div className=\"agn-eyebrow agn-eyebrow--quiet\">{L.decision}</div>\n <div className=\"agn-approval__form\">{fields.map((f) => (\n <div key={f.key} className={cx('agn-approval__field', f.type === 'boolean' && 'agn-approval__field--check')}>\n {f.type !== 'boolean' && <label className=\"agn-approval__label\" htmlFor={id + '-' + f.key}>{f.label}{f.required && <span aria-hidden=\"true\"> *</span>}</label>}\n <Field f={f} id={id + '-' + f.key} value={values[f.key]} onChange={change} disabled={!open || loading} />\n {f.help && <div id={id + '-' + f.key + '-help'} className=\"agn-approval__help\">{f.help}</div>}\n </div>))}</div>\n </div>\n )}\n <footer className=\"agn-approval__foot\">\n {open && actions && actions.map((a, i) => <Button key={a.id || i} variant={a.variant || 'neutral'} icon={a.icon} loading={a.loading} disabled={loading || a.disabled} onClick={() => a.onClick && a.onClick(values)}>{a.label}</Button>)}\n {open && !actions && perm && <><Button variant=\"primary\" icon=\"check\" loading={loading} onClick={decide(onApprove)}>{L.allowOnce}</Button><Button variant=\"neutral\" icon=\"check-check\" disabled={loading} onClick={decide(onAlways)}>{L.always}</Button><Button variant=\"destructive-text\" icon=\"x\" disabled={loading} onClick={decide(onReject)}>{L.deny}</Button></>}\n {open && !actions && !perm && <><Button variant=\"success\" icon=\"check\" loading={loading} onClick={decide(onApprove)}>{L.approve}</Button><Button variant=\"destructive-text\" icon=\"x\" disabled={loading} onClick={decide(onReject)}>{L.reject}</Button>{onAsk && <Button variant=\"neutral\" icon=\"message-square\" disabled={loading} onClick={decide(onAsk)}>{L.ask}</Button>}</>}\n {status === 'queued' && <span className=\"agn-approval__note\"><Icon name=\"clock\" size={14} />{queuePosition != null ? `${L.queued} (${queuePosition} ${L.ahead})` : L.queued}</span>}\n {(status === 'approved' || status === 'rejected') && <span className={cx('agn-approval__note', 'agn-approval__note--' + s.tone)}><Icon name={s.icon} size={14} />{L[status]}{decidedBy && ` ${L.by} ${decidedBy}`}{decidedAt && <span className=\"agn-approval__note-time agn-num\"> · {decidedAt}</span>}</span>}\n </footer>\n </section>\n );\n}\n","// biome-ignore-all lint/a11y/useSemanticElements: an ARIA table (table/row/columnheader/cell) on CSS-grid divs: the shared column template and the scale ref need the divs, and table markup would break the layout\n// biome-ignore-all lint/a11y/useFocusableInteractive: rows and column headers of a static role=table are not interactive; the rule treats row as a grid row\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { RUN_STATUS } from './RunStatus.jsx';\nimport { formatDuration } from '../chat/ToolCallCard.jsx';\nimport { fmtMoney, fmtInt } from './format.js';\nfunction ticks(total, n = 4) { const step = total / n; return Array.from({ length: n + 1 }, (_, i) => i * step); }\n// tick count from the measured width of the scale column: one label per ~72px, 1–4 intervals\nfunction useTickCount(ref) {\n const [n, setN] = React.useState(4);\n React.useEffect(() => {\n const el = ref.current;\n if (!el || typeof ResizeObserver === 'undefined') return undefined;\n const ro = new ResizeObserver((es) => { const w = es[0].contentRect.width; const k = Math.max(1, Math.min(4, Math.floor(w / 72))); setN((p) => (p === k ? p : k)); });\n ro.observe(el);\n return () => ro.disconnect();\n }, [ref]);\n return n;\n}\n// The run replay: steps on a time scale (tick labels thinned to the column's measured width) with duration bars, status per step, tokens and cost; click a row to select it.\nexport function RunTimeline({ steps = [], total: totalProp, selected, onSelect, showCost = true, showTokens = true, locale = 'tr-TR', currency = 'TRY', labels, className, ...rest }) {\n const L = { step: 'Step', time: 'Time', tokens: 'Tokens', cost: 'Cost', total: 'Total', ...labels };\n const total = totalProp || Math.max(1, ...steps.map((s) => (s.start || 0) + (s.duration || 0)));\n const Row = onSelect ? 'button' : 'div';\n const sumCost = steps.reduce((a, s) => a + (s.cost || 0), 0), sumTok = steps.reduce((a, s) => a + (s.tokens || 0), 0);\n const scaleRef = React.useRef(null);\n const tickN = useTickCount(scaleRef);\n const cols = cx('agn-rt__grid', !showTokens && 'agn-rt__grid--no-tokens', !showCost && 'agn-rt__grid--no-cost');\n return (\n <div className={cx('agn-rt', className)} role=\"table\" aria-label={L.step + 's'} {...rest}>\n <div className={cx('agn-rt__head', cols)} role=\"row\">\n <span role=\"columnheader\">{L.step}</span>\n <span role=\"columnheader\" className=\"agn-rt__scale\" ref={scaleRef}>{ticks(total, tickN).map((t, i) => <span key={i} className=\"agn-rt__tick agn-num\" style={{ left: (t / total) * 100 + '%' }}>{formatDuration(t, locale)}</span>)}</span>\n {showTokens && <span role=\"columnheader\" className=\"agn-rt__num\">{L.tokens}</span>}\n {showCost && <span role=\"columnheader\" className=\"agn-rt__num\">{L.cost}</span>}\n </div>\n {steps.map((s, i) => {\n const st = RUN_STATUS[s.status] || RUN_STATUS.completed; const id = s.id != null ? s.id : i; const sel = selected != null && selected === id;\n const left = ((s.start || 0) / total) * 100, width = Math.max(0.6, ((s.duration || 0) / total) * 100);\n return (\n <Row key={id} type={onSelect ? 'button' : undefined} role=\"row\" className={cx('agn-rt__row', cols, 'agn-rt__row--' + st.tone, sel && 'agn-rt__row--selected', 'agn-focus-inset')} aria-pressed={onSelect ? sel : undefined} onClick={onSelect ? () => onSelect(id, s) : undefined}>\n <span role=\"cell\" className=\"agn-rt__name\"><span className=\"agn-rt__n agn-num\">{String(i + 1).padStart(2, '0')}</span><span className=\"agn-rt__label\"><span className=\"agn-rt__title\">{s.name}</span>{s.kind && <span className=\"agn-rt__kind\">{s.kind}</span>}</span><Icon name={st.icon} size={12} className={cx('agn-rt__icon', st.spin && 'agn-rt__spin')} title={st.label} /></span>\n <span role=\"cell\" className=\"agn-rt__track\"><span className=\"agn-rt__bar\" style={{ left: left + '%', width: width + '%' }}><span className=\"agn-rt__dur agn-num\">{formatDuration(s.duration || 0, locale)}</span></span></span>\n {showTokens && <span role=\"cell\" className=\"agn-rt__num\">{s.tokens != null ? fmtInt(s.tokens, locale) : '–'}</span>}\n {showCost && <span role=\"cell\" className=\"agn-rt__num\">{s.cost != null ? fmtMoney(s.cost, locale, currency) : '–'}</span>}\n </Row>\n );\n })}\n <div className={cx('agn-rt__foot', cols)} role=\"row\">\n <span role=\"cell\">{L.total}</span>\n <span role=\"cell\" className=\"agn-rt__total agn-num\">{formatDuration(total, locale)}</span>\n {showTokens && <span role=\"cell\" className=\"agn-rt__num\">{fmtInt(sumTok, locale)}</span>}\n {showCost && <span role=\"cell\" className=\"agn-rt__num\">{fmtMoney(sumCost, locale, currency)}</span>}\n </div>\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\n// The run vocabulary (queued · running · paused · completed · failed · cancelled) and the resume vocabulary (pending · claimed · resuming · resumed), each with its tone and icon.\nexport const RUN_STATUS = {\n queued: { tone: 'neutral', icon: 'clock', label: 'Queued' },\n running: { tone: 'info', icon: 'loader-circle', label: 'Running', spin: true },\n paused: { tone: 'warn', icon: 'pause', label: 'Paused' },\n completed: { tone: 'ok', icon: 'circle-check', label: 'Completed' },\n failed: { tone: 'bad', icon: 'circle-x', label: 'Failed' },\n cancelled: { tone: 'neutral', icon: 'ban', label: 'Cancelled' },\n pending: { tone: 'warn', icon: 'hourglass', label: 'Pending' },\n claimed: { tone: 'info', icon: 'hand', label: 'Claimed' },\n resuming: { tone: 'info', icon: 'loader-circle', label: 'Resuming', spin: true },\n resumed: { tone: 'ok', icon: 'play', label: 'Resumed' },\n};\n// Status tag for a run: icon + word in the status tone, an optional detail (\"approval\") and the time it has been so (\"since 09:41\").\nexport function RunStatus({ status = 'queued', detail, since, size = 'md', labels, className, ...rest }) {\n const L = { since: 'since', ...Object.fromEntries(Object.entries(RUN_STATUS).map(([k, v]) => [k, v.label])), ...labels };\n const s = RUN_STATUS[status] || RUN_STATUS.queued;\n return (\n <span className={cx('agn-run-status', 'agn-run-status--' + s.tone, size !== 'md' && 'agn-run-status--' + size, className)} {...rest}>\n <span className=\"agn-run-status__tag\"><Icon name={s.icon} size={size === 'sm' ? 11 : 12} className={s.spin ? 'agn-run-status__spin' : undefined} />{L[status] || s.label}{detail && <span className=\"agn-run-status__detail\"> · {detail}</span>}</span>\n {since && <span className=\"agn-run-status__since agn-num\">{L.since} {since}</span>}\n </span>\n );\n}\n","// Locale helpers for the agent widgets. tr-TR by default: ₺1.250.000,00 · 15.10.2026 · 1,2 s\n// currencyDisplay narrowSymbol, as Amount: en-US prints ₺196,400.00, not TRY 196,400.00\nexport const fmtMoney = (v, locale = 'tr-TR', currency = 'TRY', digits = 2) => {\n if (v == null) return '';\n try { return new Intl.NumberFormat(locale, { style: 'currency', currency, currencyDisplay: 'narrowSymbol', minimumFractionDigits: digits, maximumFractionDigits: digits }).format(v); }\n catch { return new Intl.NumberFormat(locale, { style: 'currency', currency, minimumFractionDigits: digits, maximumFractionDigits: digits }).format(v); }\n};\nexport const fmtInt = (v, locale = 'tr-TR') => (v == null ? '' : new Intl.NumberFormat(locale, { maximumFractionDigits: 0 }).format(v));\nexport const fmtClock = (s) => { s = Math.max(0, Math.floor(s || 0)); const h = Math.floor(s / 3600), m = Math.floor((s % 3600) / 60), x = s % 60; return (h ? h + ':' + String(m).padStart(2, '0') : m) + ':' + String(x).padStart(2, '0'); };\nexport const initials = (name = '') => String(name).trim().split(/\\s+/).slice(0, 2).map((w) => w.charAt(0).toLocaleUpperCase('tr-TR')).join('');\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { formatDuration } from '../chat/ToolCallCard.jsx';\nexport const SPAN_KINDS = ['llm', 'tool', 'http', 'workflow', 'db', 'other'];\nfunction flatten(spans, depth = 0, out = [], collapsed) {\n spans.forEach((s, i) => { const id = s.id != null ? s.id : depth + '-' + i; out.push({ ...s, id, depth, hasChildren: !!(s.children && s.children.length) }); if (s.children && s.children.length && !collapsed.has(id)) flatten(s.children, depth + 1, out, collapsed); });\n return out;\n}\n// Trace viewer: nested spans as bars on one time scale — name, service or tool, duration, status — indented per depth; parents collapse.\nexport function TraceSpans({ spans = [], total: totalProp, selected, onSelect, locale = 'tr-TR', labels, className, ...rest }) {\n const L = { spans: 'Spans', collapse: 'Collapse', expand: 'Expand', error: 'error', ...labels };\n const [collapsed, setCollapsed] = React.useState(() => new Set());\n const rows = React.useMemo(() => flatten(spans, 0, [], collapsed), [spans, collapsed]);\n const all = React.useMemo(() => flatten(spans, 0, [], new Set()), [spans]);\n const total = totalProp || Math.max(1, ...all.map((s) => (s.start || 0) + (s.duration || 0)));\n const toggle = (id) => setCollapsed((c) => { const n = new Set(c); n.has(id) ? n.delete(id) : n.add(id); return n; });\n const Row = onSelect ? 'button' : 'div';\n const treeRef = React.useRef(null);\n const [focusId, setFocusId] = React.useState(null);\n const focusIdx = Math.max(0, rows.findIndex((r) => r.id === (focusId != null ? focusId : selected)));\n const focusAt = (i) => { const n = Math.max(0, Math.min(rows.length - 1, i)); if (!rows[n]) return; setFocusId(rows[n].id); const el = treeRef.current && treeRef.current.querySelector('[data-index=\"' + n + '\"]'); if (el) el.focus(); };\n // Keyboard (APG tree): ↑↓ move, → expands or enters, ← collapses or goes to the parent, Home/End, Enter/Space selects (or toggles without onSelect).\n const onKey = (e, s, i) => {\n switch (e.key) {\n case 'ArrowDown': e.preventDefault(); focusAt(i + 1); break;\n case 'ArrowUp': e.preventDefault(); focusAt(i - 1); break;\n case 'ArrowRight': e.preventDefault(); if (s.hasChildren && collapsed.has(s.id)) toggle(s.id); else if (s.hasChildren) focusAt(i + 1); break;\n case 'ArrowLeft': e.preventDefault(); if (s.hasChildren && !collapsed.has(s.id)) toggle(s.id); else { const p = rows.slice(0, i).reverse().find((x) => x.depth < s.depth); if (p) focusAt(rows.indexOf(p)); } break;\n case 'Home': e.preventDefault(); focusAt(0); break;\n case 'End': e.preventDefault(); focusAt(rows.length - 1); break;\n case 'Enter': case ' ': e.preventDefault(); if (onSelect) onSelect(s.id, s); else if (s.hasChildren) toggle(s.id); break;\n default:\n }\n };\n return (\n <div ref={treeRef} className={cx('agn-spans', className)} role=\"tree\" aria-label={L.spans} {...rest}>\n <div className=\"agn-spans__scale\" aria-hidden=\"true\">{[0, .25, .5, .75, 1].map((f) => <span key={f} className=\"agn-spans__tick agn-num\" style={{ left: f * 100 + '%' }}>{formatDuration(total * f, locale)}</span>)}</div>\n {rows.map((s, i) => {\n const sel = selected != null && selected === s.id; const kind = SPAN_KINDS.includes(s.kind) ? s.kind : 'other';\n const left = ((s.start || 0) / total) * 100, width = Math.max(0.5, ((s.duration || 0) / total) * 100);\n return (\n <div key={s.id} role=\"treeitem\" aria-level={s.depth + 1} aria-expanded={s.hasChildren ? !collapsed.has(s.id) : undefined} aria-selected={onSelect ? sel : undefined} data-index={i} tabIndex={i === focusIdx ? 0 : -1} onKeyDown={(e) => onKey(e, s, i)} onFocus={() => setFocusId(s.id)} className={cx('agn-spans__row', 'agn-focus-inset', 'agn-spans__row--' + kind, s.status === 'bad' && 'agn-spans__row--bad', sel && 'agn-spans__row--selected')}>\n <span className=\"agn-spans__name\" style={{ paddingLeft: s.depth * 16 }}>\n {s.hasChildren ? <button type=\"button\" className=\"agn-spans__caret\" tabIndex={-1} aria-label={collapsed.has(s.id) ? L.expand : L.collapse} onClick={() => toggle(s.id)}><Icon name=\"chevron-right\" size={12} className={cx(!collapsed.has(s.id) && 'agn-spans__caret--open')} /></button> : <span className=\"agn-spans__caret agn-spans__caret--leaf\" />}\n <Row type={onSelect ? 'button' : undefined} tabIndex={onSelect ? -1 : undefined} className=\"agn-spans__label\" onClick={onSelect ? () => onSelect(s.id, s) : undefined}>\n <span className=\"agn-spans__title\">{s.name}</span>\n {s.service && <span className=\"agn-spans__service\">{s.service}</span>}\n {s.status === 'bad' && <span className=\"agn-spans__err\"><Icon name=\"circle-x\" size={11} />{L.error}</span>}\n </Row>\n </span>\n <span className=\"agn-spans__track\"><span className=\"agn-spans__bar\" style={{ left: left + '%', width: width + '%' }} /></span>\n <span className=\"agn-spans__dur agn-num\">{formatDuration(s.duration || 0, locale)}</span>\n </div>\n );\n })}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\nimport { ProgressBar } from '../feedback/ProgressBar.jsx';\nimport { RunStatus } from './RunStatus.jsx';\nimport { formatDuration } from '../chat/ToolCallCard.jsx';\nimport { fmtMoney, fmtInt } from './format.js';\nconst TRIGGER = { manual: { icon: 'play', label: 'Manual' }, webhook: { icon: 'webhook', label: 'Webhook' }, schedule: { icon: 'calendar-clock', label: 'Schedule' }, call: { icon: 'phone', label: 'Phone call' }, chat: { icon: 'message-square', label: 'Chat' }, api: { icon: 'code', label: 'API' } };\nconst BAR_TONE = { running: 'signal', completed: 'ok', failed: 'bad', paused: 'warn', cancelled: 'neutral', queued: 'neutral' };\n// One run as a card: agent, trigger, status with since, started, duration, steps done of total, cost and tokens; stop, retry and open.\nexport function AgentRunCard({ agent, product = 'platform', runId, tenant, trigger = 'manual', status = 'queued', since, started, duration, steps, cost, tokens, selected, onStop, onRetry, onOpen, locale = 'tr-TR', currency = 'TRY', labels, className, ...rest }) {\n const L = { stop: 'Stop', retry: 'Retry', open: 'Open', duration: 'Duration', steps: 'Steps', cost: 'Cost', tokens: 'Tokens', started: 'Started', ...Object.fromEntries(Object.entries(TRIGGER).map(([k, v]) => [k, v.label])), ...labels };\n const t = TRIGGER[trigger] || TRIGGER.manual;\n return (\n <article className={cx('agn-run-card', 'agn-run-card--' + status, selected && 'agn-run-card--selected', className)} {...rest}>\n <header className=\"agn-run-card__head\">\n <span className=\"agn-run-card__icon\"><ProductIcon product={product} size={16} /></span>\n <div className=\"agn-run-card__heading\"><h3 className=\"agn-run-card__title\">{agent}</h3>{runId && <span className=\"agn-run-card__id\">{runId}</span>}</div>\n <RunStatus status={status} since={since} size=\"sm\" />\n </header>\n <div className=\"agn-run-card__meta\">\n <span><Icon name={t.icon} size={12} />{L[trigger] || t.label}</span>\n {started && <span><Icon name=\"clock\" size={12} />{started}</span>}\n {tenant && <span><Icon name=\"building-2\" size={12} />{tenant}</span>}\n </div>\n {steps && steps.total > 0 && <ProgressBar size=\"sm\" tone={BAR_TONE[status] || 'neutral'} value={steps.done || 0} max={steps.total} label={L.steps} showValue valueText={`${steps.done || 0} / ${steps.total}`} />}\n <dl className=\"agn-run-card__stats\">\n {duration != null && <div><dt>{L.duration}</dt><dd className=\"agn-num\">{typeof duration === 'number' ? formatDuration(duration, locale) : duration}</dd></div>}\n {cost != null && <div><dt>{L.cost}</dt><dd className=\"agn-num\">{fmtMoney(cost, locale, currency)}</dd></div>}\n {tokens != null && <div><dt>{L.tokens}</dt><dd className=\"agn-num\">{fmtInt(tokens, locale)}</dd></div>}\n </dl>\n {(onStop || onRetry || onOpen) && (\n <footer className=\"agn-run-card__foot\">\n {onStop && (status === 'running' || status === 'paused' || status === 'queued') && <Button size=\"sm\" variant=\"destructive-text\" icon=\"square\" onClick={onStop}>{L.stop}</Button>}\n {onRetry && (status === 'failed' || status === 'cancelled') && <Button size=\"sm\" icon=\"rotate-ccw\" onClick={onRetry}>{L.retry}</Button>}\n {onOpen && <Button size=\"sm\" variant=\"ghost\" iconRight=\"arrow-right\" onClick={onOpen} className=\"agn-run-card__open\">{L.open}</Button>}\n </footer>\n )}\n </article>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { fmtMoney, fmtInt } from './format.js';\n// Cost by scenario, unit or channel as horizontal bars with values; series colours data-1…6 by index, or one signal colour.\nexport function CostBars({ items = [], unit = 'currency', currency = 'TRY', locale = 'tr-TR', max: maxProp, showValues = true, showTokens = false, colorBy = 'index', sort, labels, className, ...rest }) {\n const L = { costs: 'Costs', tokens: 'tokens', ...labels };\n const list = sort === 'desc' ? [...items].sort((a, b) => (b.value || 0) - (a.value || 0)) : items;\n const max = maxProp || Math.max(1, ...list.map((i) => i.value || 0));\n const fmt = (v) => (unit === 'currency' ? fmtMoney(v, locale, currency) : unit === 'tokens' ? fmtInt(v, locale) : unit === 'percent' ? fmtInt(v, locale) + '%' : fmtInt(v, locale));\n return (\n // biome-ignore lint/a11y/noRedundantRoles: explicit role=list keeps list semantics in Safari/VoiceOver, which drops them for list-style: none\n // biome-ignore lint/a11y/useSemanticElements: explicit role=list keeps list semantics in Safari/VoiceOver, which drops them for list-style: none\n <ul className={cx('agn-costbars', className)} role=\"list\" aria-label={L.costs} {...rest}>\n {list.map((it, i) => (\n <li key={it.id != null ? it.id : i} className={cx('agn-costbars__row', it.tone && 'agn-costbars__row--' + it.tone)}>\n <span className=\"agn-costbars__label\" title={typeof it.label === 'string' ? it.label : undefined}>{it.label}{it.sub && <span className=\"agn-costbars__sub\">{it.sub}</span>}</span>\n <span className=\"agn-costbars__track\" aria-hidden=\"true\"><span className={cx('agn-costbars__fill', colorBy === 'index' && 'agn-costbars__fill--' + ((i % 6) + 1))} style={{ width: Math.min(100, ((it.value || 0) / max) * 100) + '%' }} /></span>\n {showValues && <span className=\"agn-costbars__value agn-num\">{fmt(it.value || 0)}{showTokens && it.tokens != null && <span className=\"agn-costbars__tokens\">{fmtInt(it.tokens, locale)} {L.tokens}</span>}</span>}\n </li>\n ))}\n </ul>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon, ProductIcon } from '../core/Icon.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nconst SIDES = ['top', 'right', 'bottom', 'left'];\n// a port value is true (the default side), a side name, or false\nconst portSide = (v, dflt) => (v === true ? dflt : SIDES.includes(v) ? v : null);\nconst STATE_ICON = { running: ['loader-circle', true], error: ['circle-alert'], done: ['circle-check'], waiting: ['circle-dashed'], disabled: ['eye-off'] };\n// The builder block card on the canvas: 250px, icon tile, name (two lines at most) and kind, key/value rows, a state ring (selected / running / done / waiting / error / disabled), a warn \"next step\" tab, a hover action bar and ports on any side.\nexport function CanvasBlock({ name, kind, icon = 'box', product, rows = [], state = 'default', next, actions = [], ports = { in: true, out: true }, onSelect, labels, className, style, ...rest }) {\n const L = { running: 'Running', error: 'Error', done: 'Done', waiting: 'Waiting', disabled: 'Disabled', next: 'Next step', ...labels };\n const Tag = onSelect ? 'button' : 'div';\n const inSide = ports && portSide(ports.in, 'left'), outSide = ports && portSide(ports.out, 'right');\n const si = STATE_ICON[state];\n return (\n <Tag type={onSelect ? 'button' : undefined} className={cx('agn-block', 'agn-block--' + state, className)} style={{ width: 250, ...style }} aria-pressed={onSelect ? state === 'selected' : undefined} onClick={onSelect} {...rest}>\n {actions.length > 0 && <span className=\"agn-block__bar\" role=\"toolbar\">{actions.map((a, i) => <ButtonIcon key={i} icon={a.icon} label={a.label} size=\"xs\" variant={a.variant || 'ghost'} onClick={(e) => { e.stopPropagation(); a.onClick && a.onClick(e); }} />)}</span>}\n <span className=\"agn-block__head\">\n <span className=\"agn-block__icon\">{product ? <ProductIcon product={product} size={16} /> : <Icon name={icon} size={16} />}</span>\n <span className=\"agn-block__heading\"><span className=\"agn-block__name\" title={typeof name === 'string' ? name : undefined}>{name}</span>{kind && <span className=\"agn-block__kind\">{kind}</span>}</span>\n {si && <span className=\"agn-block__state\"><Icon name={si[0]} size={14} className={si[1] ? 'agn-block__spin' : undefined} title={L[state]} /><span className=\"agn-sr\">{L[state]}</span></span>}\n </span>\n {rows.length > 0 && <span className=\"agn-block__rows\">{rows.map((r, i) => <span key={i} className=\"agn-block__row\"><span className=\"agn-block__k\">{r.label}</span><span className={cx('agn-block__v', r.mono !== false && 'agn-mono')}>{r.value}</span></span>)}</span>}\n {next && <span className=\"agn-block__next\"><Icon name=\"corner-down-right\" size={12} /><span className=\"agn-block__next-label\">{L.next}</span>{next}</span>}\n {inSide && <span className={cx('agn-block__port', 'agn-block__port--in', 'agn-block__port--' + inSide)} aria-hidden=\"true\" />}\n {outSide && <span className={cx('agn-block__port', 'agn-block__port--out', 'agn-block__port--' + outSide)} aria-hidden=\"true\" />}\n </Tag>\n );\n}\nconst horiz = (s) => s === 'left' || s === 'right';\n// Smooth-step connector path between two points with rounded corners. Sides say which way the edge leaves and enters: right → left (default) runs horizontal–vertical–horizontal; bottom → top runs vertical–horizontal–vertical; a mixed pair makes one rounded corner.\nexport function smoothStepPath(x1, y1, x2, y2, r = 8, fromSide = 'right', toSide = 'left') {\n const dx = x2 >= x1 ? 1 : -1, dy = y2 >= y1 ? 1 : -1;\n if (horiz(fromSide) && horiz(toSide)) {\n if (Math.abs(y2 - y1) < 1) return `M${x1},${y1} L${x2},${y2}`;\n const midX = (x1 + x2) / 2;\n const rr = Math.max(0, Math.min(r, Math.abs(y2 - y1) / 2, Math.abs(midX - x1), Math.abs(x2 - midX)));\n return `M${x1},${y1} H${midX - dx * rr} Q${midX},${y1} ${midX},${y1 + dy * rr} V${y2 - dy * rr} Q${midX},${y2} ${midX + dx * rr},${y2} H${x2}`;\n }\n if (!horiz(fromSide) && !horiz(toSide)) {\n if (Math.abs(x2 - x1) < 1) return `M${x1},${y1} L${x2},${y2}`;\n const midY = (y1 + y2) / 2;\n const rr = Math.max(0, Math.min(r, Math.abs(x2 - x1) / 2, Math.abs(midY - y1), Math.abs(y2 - midY)));\n return `M${x1},${y1} V${midY - dy * rr} Q${x1},${midY} ${x1 + dx * rr},${midY} H${x2 - dx * rr} Q${x2},${midY} ${x2},${midY + dy * rr} V${y2}`;\n }\n const rr = Math.max(0, Math.min(r, Math.abs(x2 - x1), Math.abs(y2 - y1)));\n if (horiz(fromSide)) return `M${x1},${y1} H${x2 - dx * rr} Q${x2},${y1} ${x2},${y1 + dy * rr} V${y2}`;\n return `M${x1},${y1} V${y2 - dy * rr} Q${x1},${y2} ${x1 + dx * rr},${y2} H${x2}`;\n}\n// direction of travel into the target, from the side it enters\nconst INTO = { left: [1, 0], right: [-1, 0], top: [0, 1], bottom: [0, -1] };\n// SVG helper for an edge between two blocks: render inside the consumer's <svg> (or a Canvas's `edges`). default / active / running (moving dash) / deleted. The arrow follows the last segment.\nexport function CanvasEdge({ from, to, fromSide = 'right', toSide = 'left', state = 'default', radius = 8, label, arrow = true, onClick, className, ...rest }) {\n const d = smoothStepPath(from.x, from.y, to.x, to.y, radius, fromSide, toSide);\n const mx = (from.x + to.x) / 2, my = (from.y + to.y) / 2;\n const [ux, uy] = INTO[toSide] || INTO.left;\n const ah = `M${to.x - ux * 6 - uy * 4},${to.y - uy * 6 - ux * 4} L${to.x},${to.y} L${to.x - ux * 6 + uy * 4},${to.y - uy * 6 + ux * 4}`;\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: role=button, tabIndex and the Enter/Space handler are all set whenever onClick is; the rule cannot see the conditional role\n <g className={cx('agn-edge', 'agn-edge--' + state, onClick && 'agn-edge--clickable', className)} role={onClick ? 'button' : undefined} tabIndex={onClick ? 0 : undefined} aria-label={onClick && label != null ? String(label) : undefined} onClick={onClick} onKeyDown={onClick ? (e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); onClick(e); } } : undefined} {...rest}>\n <path className=\"agn-edge__hit\" d={d} />\n <path className=\"agn-edge__path\" d={d} />\n {arrow && <path className=\"agn-edge__arrow\" d={ah} />}\n {label && <g className=\"agn-edge__label\" transform={`translate(${mx},${my})`}><rect x={-String(label).length * 3.4 - 6} y={-9} width={String(label).length * 6.8 + 12} height={18} rx={4} /><text textAnchor=\"middle\" dominantBaseline=\"central\">{label}</text></g>}\n </g>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { ButtonIcon } from '../actions/Button.jsx';\nconst clamp = (v, lo, hi) => Math.max(lo, Math.min(hi, v));\n// The builder canvas: a dotted grid on --canvas-bg, one transformed layer holding absolutely positioned blocks (children) and an SVG of edges, with drag-to-pan, Ctrl/⌘-wheel zoom, wheel pan, keyboard (+ − 0, arrows) and zoom controls.\nexport function Canvas({ children, edges, zoom: zoomProp, defaultZoom = 1, onZoomChange, pan: panProp, defaultPan = { x: 0, y: 0 }, onPanChange, minZoom = 0.25, maxZoom = 2, grid = true, controls = true, interactive = true, overlay, labels, className, style, ...rest }) {\n const L = { canvas: 'Agent canvas', zoomIn: 'Zoom in', zoomOut: 'Zoom out', reset: 'Reset view', ...labels };\n const [zLocal, setZLocal] = React.useState(defaultZoom);\n const [pLocal, setPLocal] = React.useState(defaultPan);\n const z = zoomProp != null ? zoomProp : zLocal;\n const p = panProp || pLocal;\n const setZ = (v) => { const n = clamp(Math.round(v * 100) / 100, minZoom, maxZoom); if (zoomProp == null) setZLocal(n); onZoomChange && onZoomChange(n); };\n const setP = (v) => { if (!panProp) setPLocal(v); onPanChange && onPanChange(v); };\n const drag = React.useRef(null);\n const onPointerDown = (e) => {\n if (!interactive || e.button !== 0) return;\n if (e.target.closest('.agn-block, button, a, input, textarea, select, .agn-edge--clickable, .agn-canvas__controls')) return;\n drag.current = { x: e.clientX, y: e.clientY, px: p.x, py: p.y };\n e.currentTarget.setPointerCapture && e.currentTarget.setPointerCapture(e.pointerId);\n };\n const onPointerMove = (e) => { const d = drag.current; if (d) setP({ x: d.px + e.clientX - d.x, y: d.py + e.clientY - d.y }); };\n const onPointerUp = () => { drag.current = null; };\n const onWheel = (e) => {\n if (!interactive) return;\n if (e.ctrlKey || e.metaKey) { e.preventDefault(); setZ(z * (e.deltaY < 0 ? 1.1 : 1 / 1.1)); }\n else if (e.shiftKey || Math.abs(e.deltaX) > 0 || Math.abs(e.deltaY) > 0) setP({ x: p.x - (e.shiftKey ? e.deltaY : e.deltaX), y: p.y - (e.shiftKey ? 0 : e.deltaY) });\n };\n const onKeyDown = (e) => {\n if (!interactive || e.target !== e.currentTarget) return;\n const step = 40;\n const map = { ArrowLeft: [step, 0], ArrowRight: [-step, 0], ArrowUp: [0, step], ArrowDown: [0, -step] };\n if (map[e.key]) { e.preventDefault(); setP({ x: p.x + map[e.key][0], y: p.y + map[e.key][1] }); }\n else if (e.key === '+' || e.key === '=') { e.preventDefault(); setZ(z * 1.2); }\n else if (e.key === '-') { e.preventDefault(); setZ(z / 1.2); }\n else if (e.key === '0') { e.preventDefault(); setZ(1); setP({ x: 0, y: 0 }); }\n };\n const gs = 20 * z;\n const bg = grid ? { backgroundSize: gs + 'px ' + gs + 'px', backgroundPosition: p.x + 'px ' + p.y + 'px' } : null;\n return (\n <div className={cx('agn-canvas', grid && 'agn-canvas--grid', interactive && 'agn-canvas--interactive', className)} style={{ ...bg, ...style }} role=\"application\" aria-roledescription=\"canvas\" aria-label={L.canvas} tabIndex={interactive ? 0 : undefined} onPointerDown={onPointerDown} onPointerMove={onPointerMove} onPointerUp={onPointerUp} onPointerCancel={onPointerUp} onWheel={onWheel} onKeyDown={onKeyDown} {...rest}>\n <div className=\"agn-canvas__layer\" style={{ transform: `translate(${p.x}px, ${p.y}px) scale(${z})` }}>\n {edges && <svg className=\"agn-canvas__edges\" aria-hidden=\"true\">{edges}</svg>}\n {children}\n </div>\n {overlay}\n {controls && (\n <div className=\"agn-canvas__controls\" role=\"toolbar\" aria-label={L.canvas}>\n <ButtonIcon icon=\"minus\" label={L.zoomOut} size=\"sm\" variant=\"ghost\" onClick={() => setZ(z / 1.2)} disabled={z <= minZoom} />\n <button type=\"button\" className=\"agn-canvas__zoom agn-num agn-focus\" onClick={() => { setZ(1); setP({ x: 0, y: 0 }); }} title={L.reset} aria-label={L.reset + ' (' + Math.round(z * 100) + '%)'}>{Math.round(z * 100)}%</button>\n <ButtonIcon icon=\"plus\" label={L.zoomIn} size=\"sm\" variant=\"ghost\" onClick={() => setZ(z * 1.2)} disabled={z >= maxZoom} />\n </div>\n )}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { ButtonIcon } from '../actions/Button.jsx';\n// Sticky note on the canvas: a short title, free text, author and time. For the builder's own remarks, not for configuration.\nexport function CanvasNote({ title, children, author, time, tone = 'warn', width = 220, onEdit, onDelete, labels, className, style, ...rest }) {\n const L = { edit: 'Edit note', delete: 'Delete note', ...labels };\n return (\n <div className={cx('agn-note', 'agn-note--' + tone, className)} style={{ width, ...style }} {...rest}>\n {(title || onEdit || onDelete) && <div className=\"agn-note__head\">{title && <span className=\"agn-note__title\">{title}</span>}<span className=\"agn-note__ctl\">{onEdit && <ButtonIcon icon=\"pencil\" label={L.edit} size=\"xs\" onClick={onEdit} />}{onDelete && <ButtonIcon icon=\"x\" label={L.delete} size=\"xs\" onClick={onDelete} />}</span></div>}\n <div className=\"agn-note__body\">{children}</div>\n {(author || time) && <div className=\"agn-note__foot\">{author}{author && time && ' · '}{time}</div>}\n </div>\n );\n}\n","// biome-ignore lint/correctness/noUnusedImports: house convention (BRIEF.md): every component file imports React; the automatic JSX runtime leaves it unused in files without hooks\nimport React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { initials } from './format.js';\nconst CHANNEL = { whatsapp: { icon: 'message-circle', label: 'WhatsApp' }, voice: { icon: 'phone', label: 'Voice' }, web: { icon: 'globe', label: 'Web chat' }, email: { icon: 'mail', label: 'E-mail' } };\nconst OWNER = { bot: { icon: 'bot', label: 'Bot' }, agent: { icon: null, label: 'Agent' }, queue: { icon: 'users', label: 'Queue' } };\n// Contact desk queue item: channel, customer, last message, waiting time, SLA tag and who owns it (bot, a person, or the queue).\nexport function QueueCard({ channel = 'whatsapp', customer, phone, preview, waiting, sla, owner = { kind: 'queue' }, unread, selected, onClick, tenant, labels, className, ...rest }) {\n const L = { waiting: 'waiting', unread: 'unread', ...Object.fromEntries(Object.entries(CHANNEL).map(([k, v]) => [k, v.label])), bot: 'Bot', agent: 'Agent', queue: 'Queue', ...labels };\n const ch = CHANNEL[channel] || CHANNEL.web; const ow = OWNER[owner.kind] || OWNER.queue;\n const Tag = onClick ? 'button' : 'div';\n return (\n <Tag type={onClick ? 'button' : undefined} className={cx('agn-queue', 'agn-queue--' + channel, unread && 'agn-queue--unread', selected && 'agn-queue--selected', onClick && 'agn-queue--clickable agn-focus-inset', className)} aria-pressed={onClick ? !!selected : undefined} onClick={onClick} {...rest}>\n <span className=\"agn-queue__channel\" title={L[channel] || ch.label}><Icon name={ch.icon} size={16} /></span>\n <span className=\"agn-queue__body\">\n <span className=\"agn-queue__top\"><span className=\"agn-queue__name\">{customer}</span>{unread > 0 && <span className=\"agn-queue__unread agn-num\"><span aria-hidden=\"true\">{unread}</span><span className=\"agn-sr\">{unread + ' ' + L.unread}</span></span>}{tenant && <span className=\"agn-queue__tenant\">{tenant}</span>}</span>\n {phone && <span className=\"agn-queue__phone agn-num\">{phone}</span>}\n {preview && <span className=\"agn-queue__preview\">{preview}</span>}\n </span>\n <span className=\"agn-queue__side\">\n {waiting && <span className=\"agn-queue__wait agn-num\"><Icon name=\"timer\" size={11} />{waiting}</span>}\n {sla && <span className={cx('agn-queue__sla', 'agn-queue__sla--' + (sla.tone || 'neutral'))}>{sla.label}</span>}\n <span className={cx('agn-queue__owner', 'agn-queue__owner--' + owner.kind)}>{owner.kind === 'agent' ? <span className=\"agn-queue__owner-avatar\">{initials(owner.name || '')}</span> : <Icon name={ow.icon} size={11} />}{owner.name || L[owner.kind] || ow.label}</span>\n </span>\n </Tag>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Button } from '../actions/Button.jsx';\nimport { fmtClock } from './format.js';\nconst STATE = { ringing: { tone: 'info', icon: 'phone-incoming', label: 'Ringing' }, 'in-call': { tone: 'ok', icon: 'phone-call', label: 'In call' }, 'on-hold': { tone: 'warn', icon: 'pause', label: 'On hold' }, ended: { tone: 'neutral', icon: 'phone-off', label: 'Ended' } };\nconst WAVE = [.3, .55, .8, .45, .95, .6, .35, .7, .5, .9, .4, .65, .85, .3, .6, .75, .45, .9, .55, .35];\n// A voice call: number and name, direction, live duration, state (ringing / in call / on hold / ended), waveform placeholder, and answer / hold / transfer / hang up.\nexport function CallCard({ number, name, direction = 'inbound', state = 'ringing', seconds = 0, live, agent, tenant, onAnswer, onDecline, onHold, onResume, onTransfer, onHangup, onCallBack, labels, className, ...rest }) {\n const L = { answer: 'Answer', decline: 'Decline', hold: 'Hold', resume: 'Resume', transfer: 'Transfer', hangup: 'Hang up', callBack: 'Call back', inbound: 'Inbound', outbound: 'Outbound', ...Object.fromEntries(Object.entries(STATE).map(([k, v]) => [k, v.label])), ...labels };\n const [elapsed, setElapsed] = React.useState(seconds);\n React.useEffect(() => { setElapsed(seconds); }, [seconds]);\n React.useEffect(() => { if (!live || state !== 'in-call') return; const t = setInterval(() => setElapsed((e) => e + 1), 1000); return () => clearInterval(t); }, [live, state]);\n const s = STATE[state] || STATE.ringing;\n return (\n <article className={cx('agn-call', 'agn-call--' + state, className)} aria-label={(name || number) + ' · ' + (L[state] || s.label)} {...rest}>\n <header className=\"agn-call__head\">\n <span className=\"agn-call__dir\" title={L[direction]}><Icon name={direction === 'outbound' ? 'phone-outgoing' : 'phone-incoming'} size={16} /></span>\n <div className=\"agn-call__who\">{name && <div className=\"agn-call__name\">{name}</div>}<div className=\"agn-call__number agn-num\">{number}</div></div>\n <span className={cx('agn-call__state', 'agn-call__state--' + s.tone)}><Icon name={s.icon} size={12} className={state === 'ringing' ? 'agn-call__ring' : undefined} />{L[state] || s.label}</span>\n </header>\n <div className=\"agn-call__body\">\n <div className=\"agn-call__time agn-num\" role=\"timer\" aria-live=\"off\">{fmtClock(elapsed)}</div>\n <div className=\"agn-call__wave\" aria-hidden=\"true\">{WAVE.map((v, i) => <span key={i} className=\"agn-call__bar\" style={{ '--agn-h': v, '--agn-i': i }} />)}</div>\n </div>\n {(agent || tenant) && <div className=\"agn-call__meta\">{agent && <span><Icon name=\"headset\" size={12} />{agent}</span>}{tenant && <span><Icon name=\"building-2\" size={12} />{tenant}</span>}</div>}\n <footer className=\"agn-call__foot\">\n {state === 'ringing' && <>{onAnswer && <Button variant=\"success\" size=\"sm\" icon=\"phone\" onClick={onAnswer}>{L.answer}</Button>}{onDecline && <Button variant=\"destructive-text\" size=\"sm\" icon=\"phone-off\" onClick={onDecline}>{L.decline}</Button>}</>}\n {state === 'in-call' && <>{onHold && <Button size=\"sm\" icon=\"pause\" onClick={onHold}>{L.hold}</Button>}{onTransfer && <Button size=\"sm\" icon=\"phone-forwarded\" onClick={onTransfer}>{L.transfer}</Button>}{onHangup && <Button variant=\"destructive\" size=\"sm\" icon=\"phone-off\" onClick={onHangup}>{L.hangup}</Button>}</>}\n {state === 'on-hold' && <>{onResume && <Button variant=\"primary\" size=\"sm\" icon=\"play\" onClick={onResume}>{L.resume}</Button>}{onTransfer && <Button size=\"sm\" icon=\"phone-forwarded\" onClick={onTransfer}>{L.transfer}</Button>}{onHangup && <Button variant=\"destructive\" size=\"sm\" icon=\"phone-off\" onClick={onHangup}>{L.hangup}</Button>}</>}\n {state === 'ended' && onCallBack && <Button size=\"sm\" icon=\"phone-outgoing\" onClick={onCallBack}>{L.callBack}</Button>}\n </footer>\n </article>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { Stat } from '../data/Stat.jsx';\nimport { Sparkline } from '../data/MiniChart.jsx';\nimport { Menu } from '../actions/Menu.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\n// Dashboard KPI: a Stat (value, label, delta) with a Sparkline, in a flat Card; plain drops the card when the KPI is part of the page summary row (KpiRow).\nconst DEFAULT_LABELS = { options: 'Options', trend: 'Trend' };\nexport function KpiWidget({ label, value, delta, invert, sub, icon, spark, sparkTone, sparkColor = 1, menuItems, onMenuSelect, plain, size = 'md', labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const chart = spark && spark.length > 1 ? <Sparkline data={spark} width={128} height={28} area tone={sparkTone} color={sparkColor} aria-label={L.trend + ': ' + spark.join(', ')} /> : null;\n const stat = <Stat label={label} value={value} delta={delta} invert={invert} sub={sub} icon={icon} size={size} chart={chart} />;\n const menu = menuItems && menuItems.length ? <div className=\"agn-kpi__menu\"><Menu align=\"right\" items={menuItems} onSelect={onMenuSelect} trigger={<ButtonIcon icon=\"ellipsis\" label={L.options} size=\"xs\" variant=\"ghost\" />} /></div> : null;\n if (plain) return <div className={cx('agn-kpi', 'agn-kpi--plain', menu && 'agn-kpi--menu', className)} {...rest}>{stat}{menu}</div>;\n return <Card padding=\"md\" as=\"div\" className={cx('agn-kpi', menu && 'agn-kpi--menu', className)} {...rest}>{stat}{menu}</Card>;\n}\n// The page summary: KPIs side by side with hairlines between them and no card around each one.\nexport function KpiRow({ items = [], children, label, className, ...rest }) {\n return <div className={cx('agn-kpi-row', className)} role=\"group\" aria-label={label} {...rest}>{children || items.map((it, i) => <KpiWidget key={it.id || i} plain {...it} />)}</div>;\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { MiniChart } from '../data/MiniChart.jsx';\nimport { Stat } from '../data/Stat.jsx';\nimport { SegmentedControl } from '../forms/SegmentedControl.jsx';\nimport { Skeleton } from '../feedback/Skeleton.jsx';\nimport { EmptyState } from '../feedback/EmptyState.jsx';\n// A chart in a Card: title with its unit, a period SegmentedControl, an optional headline Stat, a MiniChart (line, area, bar, or stacked bars) that measures its own width, with a legend; loading and empty states.\nconst DEFAULT_LABELS = { period: 'Period', loading: 'Loading chart', empty: 'No data for this period', emptyHint: 'Pick another period, or wait for the agent to receive traffic.' };\nexport function ChartCard({ title, icon, unit, periods, period, defaultPeriod, onPeriodChange, type = 'line', series, data, categories = [], height = 160, format = (v) => String(v), legend = true, headline, state, footnote, actions, viewAll, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [own, setOwn] = React.useState(defaultPeriod != null ? defaultPeriod : periods && periods.length ? (typeof periods[0] === 'string' ? periods[0] : periods[0].value) : undefined);\n const per = period !== undefined ? period : own;\n const setPer = (v) => { if (period === undefined) setOwn(v); onPeriodChange && onPeriodChange(v); };\n const ser = series || [{ name: typeof title === 'string' ? title : '', values: data || [] }];\n const empty = state === 'empty' || (state !== 'loading' && !ser.some((s) => s.values && s.values.length));\n const plainTitle = typeof title === 'string' ? title + (unit ? ' (' + unit + ')' : '') : undefined;\n const head = <>{title}{unit && <span className=\"agn-chart-card__unit\">{unit}</span>}</>;\n const right = (periods || actions) && <>{periods && <SegmentedControl size=\"sm\" options={periods} value={per} onChange={setPer} label={L.period} />}{actions}</>;\n let body;\n if (state === 'loading') body = <div className=\"agn-chart-card__loading\" role=\"status\" aria-busy=\"true\"><span className=\"agn-sr\">{L.loading}</span><Skeleton shape=\"rect\" width=\"100%\" height={height} /><Skeleton shape=\"line\" width=\"40%\" /></div>;\n else if (empty) body = <div className=\"agn-chart-card__empty\" style={{ minHeight: height }}><EmptyState compact icon=\"chart-no-axes-column\" title={L.empty}>{L.emptyHint}</EmptyState></div>;\n else body = <MiniChart type={type === 'stacked' ? 'bar' : type} stacked={type === 'stacked'} series={ser} labels={categories} height={height} legend={legend} format={format} title={plainTitle} />;\n return (\n <Card title={head} icon={icon} actions={right} viewAll={viewAll} className={cx('agn-chart-card', className)} {...rest}>\n {headline && state !== 'loading' && !empty && <Stat size=\"sm\" className=\"agn-chart-card__headline\" {...headline} />}\n <div className=\"agn-chart-card__plot\">{body}</div>\n {footnote && <p className=\"agn-chart-card__foot\">{footnote}</p>}\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Card } from '../layout/Card.jsx';\nimport { Checkbox } from '../forms/Checkbox.jsx';\nimport { Avatar } from '../data/Avatar.jsx';\nimport { Tag } from '../data/Tag.jsx';\nimport { Button } from '../actions/Button.jsx';\nimport { EmptyState } from '../feedback/EmptyState.jsx';\n// A checklist of tasks in a Card: complete with the Checkbox, due date (overdue carries the word), owner Avatar and a priority Tag.\nconst PRI = { high: { tone: 'bad', icon: 'chevrons-up' }, medium: { tone: 'warn', icon: 'chevron-up' }, low: { tone: 'neutral', icon: 'chevron-down' } };\nconst DEFAULT_LABELS = { title: 'Tasks', add: 'Add task', empty: 'No open tasks', emptyHint: 'Tasks assigned to you appear here.', overdue: 'Overdue', due: 'Due', high: 'High', medium: 'Medium', low: 'Low', viewAll: 'View all' };\nexport function TaskListWidget({ tasks = [], onToggle, onOpen, onAdd, title, hideDone, viewAll, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [map, setMap] = React.useState({});\n const isDone = (t) => (t.id in map ? map[t.id] : !!t.done);\n const toggle = (t, v) => { setMap({ ...map, [t.id]: v }); onToggle && onToggle(t, v); };\n const list = hideDone ? tasks.filter((t) => !isDone(t)) : tasks;\n const open = tasks.filter((t) => !isDone(t)).length;\n return (\n <Card title={title || L.title} icon=\"list-checks\" count={open} viewAll={viewAll} labels={{ viewAll: L.viewAll }}\n actions={onAdd && <Button variant=\"ghost\" size=\"sm\" icon=\"plus\" onClick={onAdd}>{L.add}</Button>} padding=\"none\" className={cx('agn-tasks', className)} {...rest}>\n {list.length === 0 ? <div className=\"agn-tasks__empty\"><EmptyState compact icon=\"list-checks\" title={L.empty}>{L.emptyHint}</EmptyState></div> : (\n <ul className=\"agn-tasks__list\">\n {list.map((t) => {\n const d = isDone(t); const p = PRI[t.priority];\n return (\n <li key={t.id} className={cx('agn-tasks__item', d && 'agn-tasks__item--done')}>\n <Checkbox checked={d} onChange={(v) => toggle(t, v)} aria-label={typeof t.title === 'string' ? t.title : undefined} />\n <div className=\"agn-tasks__main\">\n {onOpen ? <button type=\"button\" className=\"agn-tasks__title agn-tasks__title--link agn-focus\" onClick={() => onOpen(t)}>{t.title}</button> : <span className=\"agn-tasks__title\">{t.title}</span>}\n {(t.related || t.due) && (\n <span className=\"agn-tasks__meta\">\n {t.related && <span className=\"agn-tasks__related\">{t.related}</span>}\n {t.due && <span className={cx('agn-tasks__due', t.overdue && !d && 'agn-tasks__due--overdue')}><Icon name={t.overdue && !d ? 'circle-alert' : 'calendar'} size={12} />{t.overdue && !d ? L.overdue + ' · ' : <span className=\"agn-sr\">{L.due} </span>}{t.due}</span>}\n </span>\n )}\n </div>\n {p && <Tag tone={d ? 'neutral' : p.tone} icon={p.icon} className=\"agn-tasks__priority\">{L[t.priority]}</Tag>}\n {t.owner && <Avatar size=\"xs\" name={t.owner} kind={t.ownerKind || 'person'} className=\"agn-tasks__owner\" />}\n </li>\n );\n })}\n </ul>\n )}\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Card } from '../layout/Card.jsx';\nimport { Button, ButtonIcon } from '../actions/Button.jsx';\nimport { Tag } from '../data/Tag.jsx';\n// An AI-generated recommendation in a Card: the sparkles \"AI-generated\" header, the insight, the evidence it rests on with each source, Apply / Dismiss and thumbs feedback.\nconst DEFAULT_LABELS = { generated: 'AI-generated', evidence: 'Evidence', apply: 'Apply', dismiss: 'Dismiss', helpful: 'Was this helpful?', yes: 'Helpful', no: 'Not helpful', thanks: 'Thanks for the feedback', applied: 'Applied', dismissed: 'Dismissed', confidence: 'confidence', check: 'Check the evidence before you apply it.' };\nexport function AiInsightWidget({ title, children, evidence = [], confidence, model, time, status: statusProp, onApply, onDismiss, applyLabel, feedback: fbProp, onFeedback, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [own, setOwn] = React.useState('open');\n const status = statusProp || own;\n const [fbOwn, setFb] = React.useState(null);\n const fb = fbProp !== undefined ? fbProp : fbOwn;\n const vote = (v) => { const next = fb === v ? null : v; setFb(next); onFeedback && onFeedback(next); };\n const meta = [confidence != null ? Math.round(confidence * 100) + '% ' + L.confidence : null, model, time].filter(Boolean);\n return (\n <Card icon=\"sparkles\" title={L.generated} as=\"div\" actions={meta.length > 0 && <span className=\"agn-insight__meta\">{meta.map((m, i) => <span key={i}>{m}</span>)}</span>} className={cx('agn-insight', 'agn-insight--' + status, className)} {...rest}>\n {title && <h4 className=\"agn-insight__title\">{title}</h4>}\n {children && <div className=\"agn-insight__text\">{children}</div>}\n {evidence.length > 0 && (\n <div className=\"agn-insight__evidence\">\n <div className=\"agn-insight__label\">{L.evidence}</div>\n <ol className=\"agn-insight__list\">\n {evidence.map((e, i) => {\n const src = e.source && (typeof e.source === 'string' ? { label: e.source } : e.source);\n const SrcTag = src && src.href ? 'a' : 'span';\n return (\n <li key={e.id || i} className=\"agn-insight__item\">\n <span className=\"agn-insight__n agn-num\" aria-hidden=\"true\">{i + 1}</span>\n <div className=\"agn-insight__item-main\">\n <span className=\"agn-insight__claim\">{e.text}</span>\n {src && <SrcTag className=\"agn-insight__source\" href={src.href}><Icon name={src.icon || 'file-text'} size={12} />{src.label}</SrcTag>}\n </div>\n </li>\n );\n })}\n </ol>\n </div>\n )}\n <div className=\"agn-insight__foot\">\n {status === 'open' ? (\n <div className=\"agn-insight__actions\">\n <Button size=\"sm\" variant=\"neutral\" icon=\"check\" onClick={() => { setOwn('applied'); onApply && onApply(); }}>{applyLabel || L.apply}</Button>\n <Button size=\"sm\" variant=\"ghost\" onClick={() => { setOwn('dismissed'); onDismiss && onDismiss(); }}>{L.dismiss}</Button>\n </div>\n ) : <Tag tone={status === 'applied' ? 'ok' : 'neutral'} icon={status === 'applied' ? 'circle-check' : 'x'}>{L[status] || status}</Tag>}\n <div className=\"agn-insight__feedback\" role=\"group\" aria-label={L.helpful}>\n <span className=\"agn-insight__ask\" aria-live=\"polite\">{fb ? L.thanks : L.helpful}</span>\n <ButtonIcon icon=\"thumbs-up\" label={L.yes} size=\"xs\" aria-pressed={fb === 'up'} className={cx(fb === 'up' && 'agn-insight__thumb--on')} onClick={() => vote('up')} />\n <ButtonIcon icon=\"thumbs-down\" label={L.no} size=\"xs\" aria-pressed={fb === 'down'} className={cx(fb === 'down' && 'agn-insight__thumb--on')} onClick={() => vote('down')} />\n </div>\n </div>\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Input } from '../forms/Input.jsx';\nimport { Combobox } from '../forms/Combobox.jsx';\nimport { ChipGroup } from '../actions/Chip.jsx';\nimport { Menu } from '../actions/Menu.jsx';\nimport { Pill, PillContainer } from '../actions/Pill.jsx';\nimport { Button } from '../actions/Button.jsx';\n// The filter row above a list or board: search Input, quick filter Chips, a \"More filters\" Menu, a saved views Combobox and, under it, the active filters as removable Pills with Clear all.\nconst DEFAULT_LABELS = { search: 'Search…', searchLabel: 'Search', filters: 'Quick filters', more: 'More filters', views: 'Saved view', active: 'Filters', clear: 'Clear all', remove: 'Remove filter' };\nfunction useCtl(value, def, cb) {\n const [own, setOwn] = React.useState(def);\n const v = value !== undefined ? value : own;\n return [v, (x) => { if (value === undefined) setOwn(x); cb && cb(x); }];\n}\nexport function FilterBar({ search, defaultSearch = '', onSearch, chips = [], chipValue, defaultChipValue = [], onChipChange, moreFilters = [], onMoreFilter, moreOpen, onMoreOpenChange, views = [], view, defaultView = null, onViewChange, active, defaultActive = [], onActiveChange, onClear, right, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [q, setQ] = useCtl(search, defaultSearch, onSearch);\n const [cv, setCv] = useCtl(chipValue, defaultChipValue, onChipChange);\n const [vw, setVw] = useCtl(view, defaultView, onViewChange);\n const [act, setAct] = useCtl(active, defaultActive, onActiveChange);\n const add = (it) => { onMoreFilter && onMoreFilter(it); if (!act.some((a) => a.key === it.value)) setAct([...act, { key: it.value, label: it.label }]); };\n const any = q || cv.length > 0 || act.length > 0;\n const clearAll = () => { setQ(''); setCv([]); setAct([]); onClear && onClear(); };\n return (\n <div className={cx('agn-filterbar', className)} {...rest}>\n <div className=\"agn-filterbar__row\">\n <Input icon=\"search\" value={q} onChange={(e) => setQ(e.target.value)} onClear={q ? () => setQ('') : undefined} placeholder={L.search} aria-label={L.searchLabel} className=\"agn-filterbar__search\" />\n {chips.length > 0 && <ChipGroup multiple options={chips} value={cv} onChange={setCv} label={L.filters} />}\n {moreFilters.length > 0 && <Menu items={moreFilters} open={moreOpen} onOpenChange={onMoreOpenChange} searchable={moreFilters.length > 7} onSelect={add} trigger={<Button variant=\"ghost\" icon=\"list-filter\">{L.more}</Button>} />}\n <span className=\"agn-filterbar__spacer\" />\n {views.length > 0 && <Combobox options={views} value={vw} onChange={setVw} icon=\"bookmark\" placeholder={L.views} className=\"agn-filterbar__views\" />}\n {right}\n </div>\n {(act.length > 0 || any) && (\n <div className=\"agn-filterbar__active\">\n <span className=\"agn-filterbar__label\">{L.active}</span>\n {act.length > 0 && <PillContainer bare>{act.map((a) => <Pill key={a.key} size=\"sm\" label={a.label} icon={a.icon} labels={{ remove: L.remove }} onRemove={() => setAct(act.filter((x) => x.key !== a.key))} />)}</PillContainer>}\n <Button variant=\"link\" size=\"sm\" onClick={clearAll}>{L.clear}</Button>\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { Avatar } from '../data/Avatar.jsx';\nimport { BlockIcon } from '../data/BlockIcon.jsx';\nimport { Tag } from '../data/Tag.jsx';\nimport { SummaryDetail } from '../data/SummaryDetail.jsx';\nimport { Path } from '../navigation/Path.jsx';\nimport { Button, ButtonIcon } from '../actions/Button.jsx';\n// A record at a glance in a Card: avatar or BlockIcon, object eyebrow, title and status, SummaryDetail key fields, the Path stage and quick actions. For side columns, hover previews and dashboards.\nconst DEFAULT_LABELS = { open: 'Open record', stage: 'Stage' };\nexport function RecordSummaryWidget({ object, title, subtitle, media, avatar, icon = 'bot', product, status, fields = [], stages, stage, lost, pathCompact, actions = [], onOpen, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const mediaNode = media || (avatar ? <Avatar size=\"lg\" name={avatar} /> : <BlockIcon size=\"xl\" icon={icon} product={product} />);\n const st = status && (typeof status === 'string' ? { label: status } : status);\n return (\n <Card padding=\"md\" as=\"div\" className={cx('agn-record', className)} {...rest}>\n <div className=\"agn-record__head\">\n {mediaNode}\n <div className=\"agn-record__heading\">\n {object && <div className=\"agn-eyebrow agn-eyebrow--quiet\">{object}</div>}\n <h3 className=\"agn-record__title\">{title}</h3>\n {subtitle && <div className=\"agn-record__sub\">{subtitle}</div>}\n </div>\n <div className=\"agn-record__side\">\n {st && <Tag tone={st.tone} dot={st.dot} icon={st.icon}>{st.label}</Tag>}\n {onOpen && <ButtonIcon icon=\"arrow-up-right\" label={L.open} size=\"sm\" onClick={onOpen} />}\n </div>\n </div>\n {fields.length > 0 && <SummaryDetail fields={fields} dense className=\"agn-record__fields\" />}\n {stages && stages.length > 0 && <Path steps={stages} current={stage} lost={lost} compact={pathCompact} labels={{ stage: L.stage, ...(L.path || {}) }} className=\"agn-record__path\" />}\n {actions.length > 0 && <div className=\"agn-record__actions\">{actions.map((a, i) => <Button key={a.label || i} size=\"sm\" variant={a.variant || (i === 0 ? 'neutral' : 'ghost')} icon={a.icon} onClick={a.onClick} disabled={a.disabled}>{a.label}</Button>)}</div>}\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Card } from '../layout/Card.jsx';\nimport { Avatar } from '../data/Avatar.jsx';\nimport { Tag } from '../data/Tag.jsx';\nimport { ProgressBar } from '../feedback/ProgressBar.jsx';\n// People (or agents) against their capacity in a Card: a ProgressBar per row, over capacity in warn with the word, and a count of who is over in the header.\nconst DEFAULT_LABELS = { title: 'Team workload', over: 'Over capacity', overCount: 'over capacity', unit: 'tasks', load: 'workload', viewAll: 'View all' };\nexport function TeamWorkloadWidget({ members = [], title, unit, overAt = 1, onMember, viewAll, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const u = unit || L.unit;\n const rows = members.map((m) => ({ ...m, ratio: m.value / (m.capacity || 1) }));\n const overN = rows.filter((r) => r.ratio > overAt).length;\n return (\n <Card title={title || L.title} icon=\"users\" viewAll={viewAll} labels={{ viewAll: L.viewAll }} actions={overN > 0 && <Tag tone=\"warn\" icon=\"triangle-alert\">{overN} {L.overCount}</Tag>} className={cx('agn-workload', className)} {...rest}>\n <ul className=\"agn-workload__list\">\n {rows.map((m, i) => {\n const over = m.ratio > overAt;\n const text = m.value + ' / ' + m.capacity + ' ' + u;\n return (\n <li key={m.id || m.name || i} className={cx('agn-workload__row', over && 'agn-workload__row--over')}>\n <Avatar size=\"sm\" name={m.name} kind={m.kind || 'person'} status={m.status} />\n <div className=\"agn-workload__who\">\n {onMember ? <button type=\"button\" className=\"agn-workload__name agn-workload__name--link agn-focus\" onClick={() => onMember(m)}>{m.name}</button> : <span className=\"agn-workload__name\">{m.name}</span>}\n {m.role && <span className=\"agn-workload__role\">{m.role}</span>}\n </div>\n <ProgressBar className=\"agn-workload__bar\" size=\"sm\" value={Math.min(m.value, m.capacity)} max={m.capacity} tone={over ? 'warn' : 'signal'} valueText={text} labels={{ working: m.name + ' ' + L.load }} />\n <span className=\"agn-workload__value agn-num\">{text}</span>\n <span className=\"agn-workload__flag\">{over && <><Icon name=\"triangle-alert\" size={12} />{L.over}</>}</span>\n </li>\n );\n })}\n </ul>\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { ActivityTimeline } from '../data/ActivityTimeline.jsx';\nimport { SegmentedControl } from '../forms/SegmentedControl.jsx';\nimport { EmptyState } from '../feedback/EmptyState.jsx';\n// An ActivityTimeline in a Card with a type filter (all, runs, approvals, conversations, notes): the record or workspace history on a dashboard or a record page's side column.\nconst KINDS = { runs: ['run', 'step', 'agent', 'deploy', 'error', 'success'], approvals: ['approval', 'handoff', 'warn'], conversations: ['call', 'message', 'email'], notes: ['note', 'edit', 'event'] };\nconst DEFAULT_LABELS = { title: 'Activity', filter: 'Activity type', all: 'All', runs: 'Runs', approvals: 'Approvals', conversations: 'Conversations', notes: 'Notes', empty: 'No activity of this type', emptyHint: 'Pick another type to see more.', viewAll: 'View all', show: 'Show details', hide: 'Hide details' };\nexport function ActivityWidget({ items = [], types, type, defaultType = 'all', onTypeChange, title, max, compact = true, viewAll, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const opts = types || [{ value: 'all', label: L.all }, ...Object.keys(KINDS).map((k) => ({ value: k, label: L[k], kinds: KINDS[k] }))];\n const [own, setOwn] = React.useState(defaultType);\n const t = type !== undefined ? type : own;\n const set = (v) => { if (type === undefined) setOwn(v); onTypeChange && onTypeChange(v); };\n const cur = opts.find((o) => o.value === t);\n const shown = (cur && cur.kinds ? items.filter((it) => cur.kinds.includes(it.kind)) : items).slice(0, max || undefined);\n return (\n <Card title={title || L.title} icon=\"history\" viewAll={viewAll} labels={{ viewAll: L.viewAll }} className={cx('agn-activity-w', className)} {...rest}>\n <div className=\"agn-activity-w__filter\"><SegmentedControl size=\"sm\" options={opts.map((o) => ({ label: o.label, value: o.value }))} value={t} onChange={set} label={L.filter} /></div>\n {shown.length ? <ActivityTimeline items={shown} compact={compact} labels={{ show: L.show, hide: L.hide }} /> : <EmptyState compact icon=\"history\" title={L.empty}>{L.emptyHint}</EmptyState>}\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { BlockIcon } from '../data/BlockIcon.jsx';\nimport { Badge } from '../data/Badge.jsx';\nimport { Kbd } from '../core/Kbd.jsx';\n// A grid of action tiles (BlockIcon, label, optional line and Kbd hint) for the shortcuts people take most from a home or dashboard: new agent, start a test run, open approvals.\nconst DEFAULT_LABELS = { title: 'Quick actions' };\nexport function QuickActions({ actions = [], onAction, columns, minTile = 168, title, labels, className, style, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const gridStyle = columns ? { gridTemplateColumns: 'repeat(' + columns + ', minmax(0, 1fr))' } : { '--agn-quick-min': minTile + 'px' };\n const grid = (\n <div className={cx('agn-quick', !title && className)} role=\"group\" aria-label={title || L.title} style={title ? gridStyle : { ...gridStyle, ...style }} {...(title ? {} : rest)}>\n {actions.map((a, i) => (\n <button key={a.id || a.label || i} type=\"button\" className=\"agn-quick__tile agn-focus\" disabled={a.disabled} onClick={() => { a.onClick && a.onClick(a); onAction && onAction(a); }}>\n <span className=\"agn-quick__top\">\n <BlockIcon icon={a.icon} product={a.product} tone={a.tone || 'signal'} size=\"lg\" />\n {a.shortcut && <Kbd size=\"sm\" keys={Array.isArray(a.shortcut) ? a.shortcut : String(a.shortcut).split(' ')} className=\"agn-quick__kbd\" />}\n {a.badge != null && <Badge count={a.badge} solid size=\"sm\" className=\"agn-quick__badge\" />}\n </span>\n <span className=\"agn-quick__label\">{a.label}</span>\n {a.description && <span className=\"agn-quick__desc\">{a.description}</span>}\n </button>\n ))}\n </div>\n );\n if (!title) return grid;\n return <Card title={title} icon=\"zap\" padding=\"sm\" className={cx('agn-quick-card', className)} style={style} {...rest}>{grid}</Card>;\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { NotificationList } from '../feedback/Notification.jsx';\n// The NotificationList in a flat Card for a dashboard column: grouped by day, unread count in the header, Mark all as read, View all in the footer.\nconst DEFAULT_LABELS = { title: 'Notifications', markAll: 'Mark all as read', today: 'Today', yesterday: 'Yesterday', empty: 'You are all caught up', viewAll: 'View all' };\nexport function NotificationsWidget({ items = [], title, onMarkAll, onItem, max, locale, viewAll, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [readAll, setReadAll] = React.useState(false);\n const [read, setRead] = React.useState({});\n const list = items.slice(0, max || undefined).map((it, i) => {\n const key = it.id || String(i);\n const open = onItem || it.onClick;\n return { ...it, id: key, unread: !!it.unread && !readAll && !read[key], onClick: open ? () => { setRead({ ...read, [key]: true }); it.onClick && it.onClick(); onItem && onItem(it); } : undefined };\n });\n const anyUnread = list.some((i) => i.unread);\n return (\n <Card as=\"div\" padding=\"none\" viewAll={viewAll} labels={{ viewAll: L.viewAll }} className={cx('agn-notifs-w', className)} {...rest}>\n <NotificationList bare title={title || L.title} items={list} locale={locale} onMarkAll={anyUnread ? () => { setReadAll(true); onMarkAll && onMarkAll(); } : undefined} labels={{ title: L.title, markAll: L.markAll, today: L.today, yesterday: L.yesterday, empty: L.empty }} />\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Card } from '../layout/Card.jsx';\nimport { Tag } from '../data/Tag.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { CanvasBlock, CanvasEdge } from '../widgets/CanvasBlock.jsx';\n// A read-only mini canvas in a Card: three to six CanvasBlocks in a row joined by CanvasEdges, the running step ringed in execution and each step captioned with where the live runs are.\nconst STATE = { done: 'default', running: 'running', error: 'error', waiting: 'default', upcoming: 'default' };\nconst CAP_ICON = { done: 'check', running: 'loader-circle', error: 'circle-alert', waiting: 'pause', upcoming: 'minus' };\nconst DEFAULT_LABELS = { flow: 'Agent steps', done: 'Done', running: 'Running', error: 'Failed', waiting: 'Waiting', upcoming: 'Not reached', live: 'live runs', liveOne: 'live run', open: 'Open in builder' };\nexport function AgentFlowWidget({ agent, title, steps = [], liveRuns, version, blockWidth = 160, gap = 24, onOpen, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const reached = (s) => s && s.state && s.state !== 'upcoming';\n const edgeState = (s) => (s.state === 'running' || s.state === 'waiting' ? 'running' : reached(s) ? 'active' : 'deleted');\n const head = <>{title || agent}{version && <span className=\"agn-flow__version\">{version}</span>}</>;\n const actions = (liveRuns != null || onOpen) && <>{liveRuns != null && <Tag tone={liveRuns > 0 ? 'signal' : 'neutral'} dot={liveRuns > 0}>{liveRuns} {liveRuns === 1 ? L.liveOne : L.live}</Tag>}{onOpen && <ButtonIcon icon=\"arrow-up-right\" label={L.open} size=\"sm\" onClick={onOpen} />}</>;\n return (\n <Card title={head} icon=\"route\" actions={actions} padding=\"none\" className={cx('agn-flow-w', className)} {...rest}>\n <div className=\"agn-flow\" role=\"list\" aria-label={L.flow}>\n {steps.map((s, i) => {\n const st = s.state || 'upcoming';\n const caption = st === 'upcoming' ? L.upcoming : (s.runs != null ? s.runs + ' · ' : '') + L[st];\n return (\n <React.Fragment key={s.id || i}>\n {i > 0 && <svg className=\"agn-flow__edge\" width={gap} height={16} viewBox={'0 0 ' + gap + ' 16'} aria-hidden=\"true\"><CanvasEdge from={{ x: 2, y: 8 }} to={{ x: gap - 3, y: 8 }} state={edgeState(s)} /></svg>}\n <div className=\"agn-flow__step\" role=\"listitem\" aria-current={st === 'running' ? 'step' : undefined} style={{ width: blockWidth }}>\n <CanvasBlock name={s.name} kind={s.kind} icon={s.icon} product={s.product} state={STATE[st]} ports={{ in: i > 0, out: i < steps.length - 1 }} labels={{ running: L.running, error: L.error }}\n className={cx('agn-flow__block', 'agn-flow__block--' + st)} style={{ width: blockWidth }} />\n <span className={cx('agn-flow__caption', 'agn-flow__caption--' + st)}><Icon name={CAP_ICON[st]} size={12} className={st === 'running' ? 'agn-flow__spin' : undefined} />{caption}</span>\n </div>\n </React.Fragment>\n );\n })}\n </div>\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Card } from '../layout/Card.jsx';\nimport { Avatar } from '../data/Avatar.jsx';\nimport { SegmentedControl } from '../forms/SegmentedControl.jsx';\n// Ranked rows in a Card — an agent or a person, the value with a bar against the leader, and the movement since the last period — with an optional period switch.\nconst DEFAULT_LABELS = { title: 'Leaderboard', period: 'Period', rank: 'Rank', name: 'Name', value: 'Value', change: 'Change', up: 'up', down: 'down', flat: 'no change', viewAll: 'View all' };\nexport function LeaderboardWidget({ rows = [], title, metric, periods, period, defaultPeriod, onPeriodChange, format = (v) => String(v), deltaFormat = (v) => (v > 0 ? '+' : '') + v, invert, highlight, max, sort = true, viewAll, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [own, setOwn] = React.useState(defaultPeriod != null ? defaultPeriod : periods && periods.length ? (typeof periods[0] === 'string' ? periods[0] : periods[0].value) : undefined);\n const per = period !== undefined ? period : own;\n const setPer = (v) => { if (period === undefined) setOwn(v); onPeriodChange && onPeriodChange(v); };\n const list = (sort ? [...rows].sort((a, b) => (invert ? a.value - b.value : b.value - a.value)) : rows).slice(0, max || undefined);\n const top = Math.max(...list.map((r) => r.value), 1);\n return (\n <Card title={title || L.title} icon=\"list-ordered\" viewAll={viewAll} labels={{ viewAll: L.viewAll }} actions={periods && <SegmentedControl size=\"sm\" options={periods} value={per} onChange={setPer} label={L.period} />} className={cx('agn-leader', className)} {...rest}>\n <div className=\"agn-leader__head\" aria-hidden=\"true\"><span>#</span><span>{L.name}</span><span className=\"agn-leader__head-value\">{metric || L.value}</span><span>{L.change}</span></div>\n <ol className=\"agn-leader__list\">\n {list.map((r, i) => {\n const d = r.delta;\n const dir = d == null || d === 0 ? 'flat' : d > 0 ? 'up' : 'down';\n const good = dir === 'flat' ? null : (dir === 'up') !== !!invert;\n return (\n <li key={r.id || r.name} className={cx('agn-leader__row', highlight != null && (r.id === highlight || r.name === highlight) && 'agn-leader__row--hl')}>\n <span className=\"agn-leader__rank agn-num\">{i + 1}</span>\n <span className=\"agn-leader__who\">\n <Avatar size=\"sm\" name={r.name} kind={r.kind || 'agent'} product={r.product} icon={r.icon} />\n <span className=\"agn-leader__text\"><span className=\"agn-leader__name\">{r.name}</span>{r.sub && <span className=\"agn-leader__sub\">{r.sub}</span>}</span>\n </span>\n <span className=\"agn-leader__measure\">\n <span className=\"agn-leader__bar\" aria-hidden=\"true\"><span className=\"agn-leader__fill\" style={{ width: Math.max(2, (r.value / top) * 100) + '%' }} /></span>\n <span className=\"agn-leader__value agn-num\">{format(r.value)}</span>\n </span>\n <span className={cx('agn-leader__delta', 'agn-leader__delta--' + (good == null ? 'flat' : good ? 'ok' : 'bad'))}>\n {d != null && <><Icon name={dir === 'up' ? 'arrow-up-right' : dir === 'down' ? 'arrow-down-right' : 'minus'} size={12} /><span className=\"agn-sr\">{L[dir]} </span>{dir !== 'flat' && deltaFormat(d)}</>}\n </span>\n </li>\n );\n })}\n </ol>\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Icon } from '../core/Icon.jsx';\nimport { Card } from '../layout/Card.jsx';\nimport { Tag } from '../data/Tag.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { EmptyState } from '../feedback/EmptyState.jsx';\n// One day's schedule from CalendarView events in a Card: a time rail, a tone bar per event, scheduled runs and reviews with their tenant, done / live / in n min, and a now line.\nconst KIND_ICON = { run: 'play', review: 'user-check', call: 'phone', maintenance: 'wrench', deploy: 'rocket', meeting: 'users' };\nconst DEFAULT_LABELS = { title: 'Today', add: 'Schedule a run', empty: 'Nothing scheduled', emptyHint: 'Scheduled runs and reviews for this day appear here.', now: 'Now', done: 'Done', live: 'Live', soon: 'in {n} min', allDay: 'All day', run: 'Scheduled run', review: 'Review', call: 'Call', maintenance: 'Maintenance', deploy: 'Deploy', meeting: 'Meeting', viewAll: 'Open calendar' };\nconst toDate = (d) => (d instanceof Date ? d : new Date(d));\nconst sameDay = (a, b) => a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\nexport function AgendaWidget({ events = [], date, now, locale = 'en', title, onEvent, onAdd, max, viewAll, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n locale = /^en$/i.test(locale) ? 'en-GB' : locale;\n const nowD = now ? toDate(now) : new Date();\n const day = date ? toDate(date) : nowD;\n const tm = (d) => d.toLocaleTimeString(locale, { hour: '2-digit', minute: '2-digit', hour12: false });\n const dayText = day.toLocaleDateString(locale, /^tr/i.test(locale) ? { day: '2-digit', month: '2-digit', year: 'numeric' } : { day: 'numeric', month: 'short', year: 'numeric' });\n const list = events.map((e) => { const s = toDate(e.start); const en = e.end ? toDate(e.end) : new Date(s.getTime() + 30 * 60000); return { ...e, _s: s, _e: en, _past: !e.allDay && en <= nowD, _live: !e.allDay && s <= nowD && nowD < en }; })\n .filter((e) => sameDay(e._s, day)).sort((a, b) => (a.allDay ? -1 : b.allDay ? 1 : a._s - b._s)).slice(0, max || undefined);\n const showNow = sameDay(day, nowD);\n const nowAt = showNow ? list.findIndex((e) => !e.allDay && !e._past && !e._live) : -1;\n const actions = <><span className=\"agn-agenda__date agn-num\">{dayText}</span>{onAdd && <ButtonIcon icon=\"calendar-plus\" label={L.add} size=\"sm\" onClick={onAdd} />}</>;\n const nowLine = <li key=\"now\" className=\"agn-agenda__now\" aria-hidden=\"true\"><span className=\"agn-agenda__now-label agn-num\">{L.now} {tm(nowD)}</span></li>;\n return (\n <Card title={title || L.title} icon=\"calendar-days\" actions={actions} viewAll={viewAll} labels={{ viewAll: L.viewAll }} padding=\"none\" className={cx('agn-agenda', className)} {...rest}>\n {list.length === 0 ? <div className=\"agn-agenda__empty\"><EmptyState compact icon=\"calendar\" title={L.empty}>{L.emptyHint}</EmptyState></div> : (\n <ol className=\"agn-agenda__list\">\n {list.map((e, i) => {\n const mins = Math.round((e._s - nowD) / 60000);\n const Title = onEvent ? 'button' : 'span';\n return (\n <React.Fragment key={e.id || i}>\n {i === nowAt && nowLine}\n <li className={cx('agn-agenda__item', 'agn-agenda__item--' + (e.tone || 'signal'), e._past && 'agn-agenda__item--past', e._live && 'agn-agenda__item--live')}>\n <span className=\"agn-agenda__time agn-num\">{e.allDay ? L.allDay : <>{tm(e._s)}<span className=\"agn-agenda__end\">{tm(e._e)}</span></>}</span>\n <span className=\"agn-agenda__bar\" aria-hidden=\"true\" />\n <span className=\"agn-agenda__main\">\n <Title type={onEvent ? 'button' : undefined} className={cx('agn-agenda__title', onEvent && 'agn-agenda__title--link agn-focus')} onClick={onEvent ? () => onEvent(e) : undefined}>{e.title}</Title>\n <span className=\"agn-agenda__meta\">\n {e.kind && <span className=\"agn-agenda__kind\"><Icon name={KIND_ICON[e.kind] || 'circle'} size={12} />{L[e.kind] || e.kind}</span>}\n {e.tenant && <span className=\"agn-agenda__tenant\">{e.tenant}</span>}\n {e.meta && <span>{e.meta}</span>}\n </span>\n </span>\n <span className=\"agn-agenda__status\">\n {e._live ? <Tag tone=\"signal\" dot>{L.live}</Tag> : e._past ? <span className=\"agn-agenda__done\"><Icon name=\"check\" size={12} />{L.done}</span> : showNow && mins > 0 && mins <= 60 ? <span className=\"agn-agenda__soon agn-num\">{L.soon.replace('{n}', mins)}</span> : null}\n </span>\n </li>\n </React.Fragment>\n );\n })}\n {showNow && nowAt === -1 && list.length > 0 && !list.some((e) => e._live) && nowLine}\n </ol>\n )}\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { ButtonIcon } from '../actions/Button.jsx';\nimport { SetupAssistant } from '../navigation/SetupAssistant.jsx';\nimport { EmptyState } from '../feedback/EmptyState.jsx';\n// The SetupAssistant in a dashboard Card: the goal, progress, numbered steps with the next one carrying the action, and a hide button; a done state once every step is complete.\nconst DEFAULT_LABELS = { title: 'Get started', hide: 'Hide', complete: 'Setup complete', completeHint: 'Every step is done. You can hide this card.', progress: 'completed', done: 'Done', optional: 'optional' };\nexport function OnboardingWidget({ title, heading, description, steps = [], onDismiss, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const all = steps.length > 0 && steps.every((s) => s.done);\n return (\n <Card title={title || L.title} icon=\"rocket\" actions={onDismiss && <ButtonIcon icon=\"x\" label={L.hide} size=\"xs\" onClick={onDismiss} />} className={cx('agn-onboard', className)} {...rest}>\n {all ? <EmptyState compact icon=\"circle-check\" title={L.complete}>{L.completeHint}</EmptyState>\n : <SetupAssistant bare title={heading} description={description} steps={steps} labels={{ progress: L.progress, done: L.done, optional: L.optional }} />}\n </Card>\n );\n}\n","import React from 'react';\nimport { cx } from '../core/style.js';\nimport { Card } from '../layout/Card.jsx';\nimport { Feed, FeedPost } from '../data/Feed.jsx';\nimport { Publisher } from '../feedback/Publisher.jsx';\nimport { Tag } from '../data/Tag.jsx';\nimport { EmptyState } from '../feedback/EmptyState.jsx';\n// A comment thread in a Card: FeedPosts with @mentions picked out, replies and likes, and the Publisher docked at the bottom.\nconst DEFAULT_LABELS = { title: 'Comments', placeholder: 'Add a comment — @ mentions a teammate', submit: 'Comment', empty: 'No comments yet', emptyHint: 'Start the thread; mention a teammate with @.', now: 'now', reply: 'Reply', like: 'Like', liked: 'Liked', attach: 'Attach file', mention: 'Mention someone', resolved: 'Resolved' };\nconst withMentions = (text) => typeof text !== 'string' ? text : text.split(/(@[\\p{L}\\p{N}_.-]+)/u).map((p, i) => (p.startsWith('@') && p.length > 1 ? <span key={i} className=\"agn-comments__mention\">{p}</span> : p));\nexport function CommentsWidget({ comments = [], user, onSubmit, onLike, onReply, title, maxHeight = 360, labels, className, ...rest }) {\n const L = { ...DEFAULT_LABELS, ...labels };\n const [added, setAdded] = React.useState([]);\n const all = [...comments, ...added];\n const submit = (v) => { if (onSubmit) onSubmit(v); else setAdded([...added, { id: 'local-' + added.length, author: user || '', time: L.now, text: v }]); };\n return (\n <Card title={title || L.title} icon=\"message-square\" count={all.length} padding=\"none\" className={cx('agn-comments', className)} {...rest}>\n <div className=\"agn-comments__list\" style={{ maxHeight }}>\n {all.length === 0 ? <EmptyState compact icon=\"message-square\" title={L.empty}>{L.emptyHint}</EmptyState> : (\n <Feed>\n {all.map((c, i) => (\n <FeedPost key={c.id || i} author={c.author} kind={c.kind} action={c.action} target={c.target} time={c.time} replies={c.replies} likes={c.likes} liked={c.liked} tone={c.tone}\n onLike={onLike ? () => onLike(c) : undefined} onReply={onReply ? () => onReply(c) : undefined} labels={{ reply: L.reply, like: L.like, liked: L.liked }}\n actions={c.resolved ? <Tag tone=\"ok\" icon=\"circle-check\">{L.resolved}</Tag> : undefined}>{withMentions(c.text)}</FeedPost>\n ))}\n </Feed>\n )}\n </div>\n <div className=\"agn-comments__composer\"><Publisher user={user} placeholder={L.placeholder} submitLabel={L.submit} onSubmit={submit} labels={{ placeholder: L.placeholder, submit: L.submit, attach: L.attach, mention: L.mention }} /></div>\n </Card>\n );\n}\n"],"mappings":"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","names":["React","React","React","jsx","Tag","React","jsx","React","jsx","Tag","React","jsx","jsxs","loading","Tag","React","jsx","jsxs","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","Tag","React","jsx","jsxs","Tag","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","React","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","React","Input","React","jsx","jsxs","DEFAULT_LABELS","React","Textarea","React","jsx","jsxs","React","Select","React","jsx","jsxs","React","Checkbox","React","jsx","jsxs","DEFAULT_LABELS","React","Switch","React","jsx","React","jsx","jsxs","React","norm","React","jsx","jsxs","DEFAULT_LABELS","React","norm","React","jsx","jsxs","norm","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","React","React","jsx","jsxs","React","v","pct","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","clamp","React","jsx","jsxs","DEFAULT_LABELS","norm","React","React","jsx","jsxs","DEFAULT_LABELS","React","list","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","useState","useEffect","React","read","Fragment","jsx","jsxs","DEFAULT_LABELS","useState","useEffect","React","React","useState","jsx","jsxs","DEFAULT_LABELS","useState","React","React","useState","useRef","React","jsx","jsxs","jsx","jsxs","DEFAULT_LABELS","flatten","collect","useState","useRef","React","jsx","jsxs","media","React","jsx","jsxs","React","jsx","jsxs","px","React","jsx","jsxs","React","jsx","px","React","jsx","jsxs","React","jsx","jsxs","DEFAULT_LABELS","React","useState","Fragment","jsx","jsxs","DEFAULT_LABELS","useState","React","React","jsx","jsxs","React","jsx","jsxs","React","jsx","jsxs","React","ticks","React","useState","Fragment","jsx","jsxs","DEFAULT_LABELS","useState","React","jsx","jsxs","DEFAULT_LABELS","React","Fragment","jsx","jsxs","toDate","React","jsx","jsxs","React","jsx","jsxs","React","useState","jsx","jsxs","DEFAULT_LABELS","useState","React","useState","Fragment","jsx","jsxs","DEFAULT_LABELS","path","useState","React","Fragment","jsx","jsxs","DEFAULT_LABELS","i","j","React","jsx","jsxs","t","i","scale","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React","React","Fragment","jsx","jsxs","React","jsx","jsxs","React","DEFAULT_LABELS","read","b","React","jsx","React","useState","useLayoutEffect","useEffect","useRef","jsx","useIsoLayoutEffect","useLayoutEffect","useEffect","useRef","useState","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React","React","useState","useRef","useMemo","jsx","jsxs","DEFAULT_LABELS","useState","useMemo","useRef","i","horiz","React","Fragment","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React","useState","useRef","Fragment","jsx","jsxs","DEFAULT_LABELS","useState","useRef","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","media","React","Fragment","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","React","useState","useMemo","jsx","jsxs","useState","useMemo","React","useState","useEffect","useRef","jsx","jsxs","DEFAULT_LABELS","useState","useRef","useEffect","React","jsx","jsxs","DEFAULT_LABELS","pct","React","useMemo","jsx","jsxs","DEFAULT_LABELS","useMemo","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","React","show","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","Tag","React","jsx","jsxs","WIDTHS","React","jsx","jsxs","React","jsx","jsxs","React","React","jsx","jsxs","React","jsx","jsxs","initials","Tag","React","jsx","jsxs","FOCUSABLE","React","loading","React","jsx","jsxs","React","React","jsx","jsxs","React","jsxs","jsx","React","jsx","jsxs","px","React","jsx","jsxs","React","pct","React","jsx","jsxs","pct","React","Fragment","jsx","jsxs","React","React","jsx","jsxs","React","initials","React","jsx","jsxs","React","jsx","React","React","React","jsx","jsxs","buf","Tag","React","React","jsx","jsxs","React","jsx","jsxs","Tag","jsx","jsxs","initials","React","jsx","jsxs","React","jsx","jsxs","React","Fragment","jsx","jsxs","fmtSize","React","React","jsx","jsxs","React","Fragment","jsx","jsxs","STATUS","loading","React","React","React","jsx","jsxs","initials","jsx","jsxs","React","React","jsx","jsxs","flatten","React","React","jsx","jsxs","React","jsx","jsxs","React","jsx","jsxs","Tag","rr","React","jsx","jsxs","React","React","jsx","jsxs","React","jsx","jsxs","Tag","initials","React","Fragment","jsx","jsxs","React","React","jsx","jsxs","DEFAULT_LABELS","React","Fragment","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","media","React","Fragment","jsx","jsxs","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React","React","jsx","jsxs","DEFAULT_LABELS","React","jsx","DEFAULT_LABELS","React","read","React","Fragment","jsx","jsxs","STATE","DEFAULT_LABELS","React","React","Fragment","jsx","jsxs","DEFAULT_LABELS","React","React","Fragment","jsx","jsxs","KIND_ICON","DEFAULT_LABELS","toDate","sameDay","React","React","jsx","DEFAULT_LABELS","React","jsx","jsxs","DEFAULT_LABELS","React"]}
|