chordia-ui 3.9.0 → 3.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/DataTable2.cjs.js +1 -1
  2. package/dist/DataTable2.cjs.js.map +1 -1
  3. package/dist/DataTable2.es.js +611 -604
  4. package/dist/DataTable2.es.js.map +1 -1
  5. package/dist/PerformancePanel.cjs.js +1 -1
  6. package/dist/PerformancePanel.cjs.js.map +1 -1
  7. package/dist/PerformancePanel.es.js +1068 -816
  8. package/dist/PerformancePanel.es.js.map +1 -1
  9. package/dist/SupervisorSelect.cjs.js +2 -0
  10. package/dist/SupervisorSelect.cjs.js.map +1 -0
  11. package/dist/SupervisorSelect.es.js +352 -0
  12. package/dist/SupervisorSelect.es.js.map +1 -0
  13. package/dist/components/Signals.cjs.js +1 -1
  14. package/dist/components/Signals.cjs.js.map +1 -1
  15. package/dist/components/Signals.es.js +273 -318
  16. package/dist/components/Signals.es.js.map +1 -1
  17. package/dist/components/UpdatedInteractionDetails.cjs.js +3 -3
  18. package/dist/components/UpdatedInteractionDetails.cjs.js.map +1 -1
  19. package/dist/components/UpdatedInteractionDetails.es.js +98 -92
  20. package/dist/components/UpdatedInteractionDetails.es.js.map +1 -1
  21. package/dist/components/performance.cjs.js +1 -1
  22. package/dist/components/performance.cjs.js.map +1 -1
  23. package/dist/components/performance.es.js +116 -349
  24. package/dist/components/performance.es.js.map +1 -1
  25. package/dist/components/reports.cjs.js +2 -2
  26. package/dist/components/reports.cjs.js.map +1 -1
  27. package/dist/components/reports.es.js +122 -141
  28. package/dist/components/reports.es.js.map +1 -1
  29. package/dist/index.cjs.js +1 -1
  30. package/dist/index.es.js +1 -1
  31. package/dist/pages/interactionDetails.cjs.js +2 -2
  32. package/dist/pages/interactionDetails.cjs.js.map +1 -1
  33. package/dist/pages/interactionDetails.es.js +130 -124
  34. package/dist/pages/interactionDetails.es.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/components/Signals/SignalDetailsPage.jsx +2 -29
  37. package/src/components/Signals/SignalsListPage.jsx +2 -24
  38. package/src/components/UpdatedInteractionDetails/UpdatedCoachingSynthesisCard.jsx +8 -1
  39. package/src/components/data/DataTable2.jsx +19 -5
  40. package/src/components/pages/interactionDetails/CoachingSynthesisCard.jsx +8 -1
  41. package/src/components/performance/PerformanceDetailsPage.jsx +230 -75
  42. package/src/components/performance/PerformancePanel.jsx +42 -45
  43. package/src/components/performance/index.js +27 -0
  44. package/src/components/performance/performanceApiMap.js +133 -0
  45. package/src/components/performance/performanceMetrics.js +63 -0
  46. package/src/components/performance/performanceRangeFormat.js +92 -0
  47. package/src/components/performance/performanceSparkline.js +52 -0
  48. package/src/components/reports/ReportsList.jsx +2 -25
@@ -1 +1 @@
1
- {"version":3,"file":"reports.es.js","sources":["../../src/components/reports/ReportsList.jsx","../../src/components/reports/ReportsDetails.jsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport {\n CalendarDays,\n Download,\n Plus,\n CloudCheck,\n GlobeX,\n Ban,\n CirclePause,\n Pencil,\n Trash2,\n} from \"lucide-react\";\nimport DataTable2 from \"../data/DataTable2\";\nimport { DateRangeButton } from \"../performance/PerformancePanel\";\nimport ConfirmationPopup from \"../common/ConfirmationPopup\";\n\n// Color values resolve to CSS variables declared in `src/tokens/colors.css`.\n// Anything new added here MUST first be added to that file as a `--*` token.\nconst C = {\n ink: \"var(--color-text)\",\n muted: \"var(--color-text-secondary)\",\n border: \"var(--grey-absent)\",\n borderSubtle: \"var(--neutral-100)\",\n black: \"var(--neutral-900)\",\n white: \"var(--grey-white)\",\n neutralBorder: \"var(--neutral-250)\",\n neutralLight: \"var(--neutral-100)\",\n neutral850: \"var(--neutral-850)\",\n neutral800: \"var(--neutral-800)\",\n neutral50: \"var(--neutral-50)\",\n};\n\nconst FONT_DISPLAY = \"var(--font-sans, 'Averta', ui-sans-serif, system-ui, sans-serif)\";\n\nconst DEFAULT_RANGE_OPTIONS = [\n { id: \"8h\", label: \"8h\" },\n { id: \"1d\", label: \"1d\" },\n { id: \"7d\", label: \"7d\" },\n { id: \"30d\", label: \"30d\" },\n];\n\nconst RANGE_TO_MS = {\n \"8h\": 8 * 60 * 60 * 1000,\n \"1d\": 24 * 60 * 60 * 1000,\n \"7d\": 7 * 24 * 60 * 60 * 1000,\n \"30d\": 30 * 24 * 60 * 60 * 1000,\n};\n\nfunction formatLocalDate(date) {\n if (!(date instanceof Date)) return String(date ?? \"\");\n return date.toLocaleDateString(\"en-US\", {\n month: \"2-digit\",\n day: \"2-digit\",\n year: \"numeric\",\n });\n}\n\nfunction computeWindowLabel(windowId) {\n const ms = RANGE_TO_MS[windowId];\n if (!ms) return \"\";\n const to = new Date();\n const from = new Date(to.getTime() - ms);\n return `${formatLocalDate(from)} – ${formatLocalDate(to)}`;\n}\n\nfunction RangeChip({ label, active = false, onClick }) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n style={{\n height: 32,\n minWidth: 31,\n padding: \"0 12px\",\n borderRadius: 10,\n border: active ? \"none\" : `1px solid ${C.borderSubtle}`,\n background: active ? C.black : C.white,\n color: active ? C.white : C.black,\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n cursor: \"pointer\",\n }}\n >\n {label}\n </button>\n );\n}\n\n// Status pill — icon + label, no background or border (matches Figma).\n// `status` keys map to lucide icons; unknown statuses fall back to a generic\n// cloud-check so the row still renders. Hosts pass status as a raw string.\nconst STATUS_ICONS = {\n active: CloudCheck,\n failed: GlobeX,\n suspended: Ban,\n paused: CirclePause,\n};\n\nfunction StatusPill({ value }) {\n if (value == null || value === \"\") return null;\n const key = String(value).toLowerCase();\n const Icon = STATUS_ICONS[key] || CloudCheck;\n return (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 4,\n fontFamily: FONT_DISPLAY,\n fontSize: 12,\n color: C.ink,\n lineHeight: \"16px\",\n }}\n >\n <Icon size={20} strokeWidth={1.5} style={{ color: C.ink }} />\n {value}\n </span>\n );\n}\n\n// Edit / Delete icon-only button used in the row-actions cluster. Only the\n// icon is shown; the label is passed to `aria-label` and the native tooltip\n// so the control stays accessible. Sized to the Figma spec: 24×24 hit\n// target around a 16px icon, with a 4px radius. Both icons share the same\n// neutral ink colour — the trash is not tinted red.\nfunction RowActionButton({ icon: Icon, label, onClick }) {\n return (\n <button\n type=\"button\"\n aria-label={label || undefined}\n title={label || undefined}\n onClick={(e) => {\n e.stopPropagation();\n onClick?.();\n }}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 24,\n height: 24,\n padding: 4,\n borderRadius: 4,\n border: \"none\",\n background: \"transparent\",\n cursor: onClick ? \"pointer\" : \"default\",\n color: C.ink,\n }}\n >\n <Icon size={16} strokeWidth={1.5} />\n </button>\n );\n}\n\n// Pill-style toggle used in the actions column. Track + thumb are drawn\n// inline so we don't depend on a lucide icon for either state.\n// Disabled (off): white track, grey border, grey thumb on the left.\n// Enabled (on): dark track, no border, white thumb on the right.\nfunction TogglePill({ enabled }) {\n const WIDTH = 32;\n const HEIGHT = 18;\n const THUMB = 12;\n const PAD = 3;\n return (\n <span\n aria-hidden=\"true\"\n style={{\n position: \"relative\",\n display: \"inline-block\",\n width: WIDTH,\n height: HEIGHT,\n flexShrink: 0,\n borderRadius: HEIGHT / 2,\n background: enabled ? C.neutral850 : C.white,\n border: enabled ? \"1px solid transparent\" : `1px solid ${C.neutralBorder}`,\n boxSizing: \"border-box\",\n transition: \"background 0.15s ease, border-color 0.15s ease\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n top: \"50%\",\n left: enabled ? \"auto\" : PAD - 1,\n right: enabled ? PAD - 1 : \"auto\",\n width: THUMB,\n height: THUMB,\n borderRadius: \"50%\",\n background: enabled ? C.white : \"var(--neutral-500, #949494)\",\n transform: \"translateY(-50%)\",\n transition: \"background 0.15s ease\",\n }}\n />\n </span>\n );\n}\n\n// Toggle pill + label used in the actions column. Holds its own optimistic\n// state so the visual flips immediately on click even if the host doesn't\n// update `row.enabled`; the new boolean is passed to `onToggle(nextEnabled)`\n// so the host can persist asynchronously. If the host *does* update\n// `row.enabled`, the `value` prop change re-syncs the local state.\nfunction ToggleCell({ value, enabledLabel, disabledLabel, onToggle }) {\n const externalEnabled = value !== false && value !== \"disabled\" && value !== \"off\";\n const [enabled, setEnabled] = React.useState(externalEnabled);\n\n React.useEffect(() => {\n setEnabled(externalEnabled);\n }, [externalEnabled]);\n\n const label = enabled ? enabledLabel : disabledLabel;\n\n return (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n const next = !enabled;\n setEnabled(next);\n onToggle?.(next);\n }}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n height: 20,\n padding: \"4px 8px\",\n borderRadius: 24,\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n lineHeight: \"20px\",\n color: C.black,\n }}\n >\n <TogglePill enabled={enabled} />\n {label}\n </button>\n );\n}\n\nexport const DEFAULT_REPORTS_COLUMNS = [\n { id: \"task\", label: \"Task\", width: 336, sortable: true, filterable: true },\n { id: \"schedule\", label: \"Schedule\", width: 164, sortable: true, filterable: true },\n {\n id: \"status\",\n label: \"Status\",\n width: 140,\n sortable: true,\n filterable: true,\n render: (value) => <StatusPill value={value} />,\n },\n { id: \"lastRunDate\", label: \"Last Run Date\", width: 140, sortable: true },\n { id: \"nextScheduled\", label: \"Next Scheduled\", width: 140, sortable: true },\n];\n\nexport default function ReportsList({\n className = \"\",\n // Header\n title = \"\",\n dateRangeLabel = \"\",\n onExport,\n exportLabel = \"\",\n onCreateReport,\n createReportLabel = \"\",\n // Time-range chips\n rangeOptions = DEFAULT_RANGE_OPTIONS,\n selectedWindow = \"30d\",\n onWindowChange,\n // Date-range picker\n dateRangePicker,\n dateRange,\n onDateRangeChange,\n // Table data\n reports = [],\n reportColumns = DEFAULT_REPORTS_COLUMNS,\n initialPageSize = 10,\n onReportClick,\n onVisibleColumnsChange,\n // Toggle handler — fires as `onToggleReport(row, nextEnabled)` when the\n // user clicks the enable/disable pill in the actions column. The pill\n // also flips its own visual state optimistically, so the UI updates even\n // if the host defers persistence.\n onToggleReport,\n toggleEnabledLabel = \"\",\n toggleDisabledLabel = \"\",\n // Row-hover edit / delete actions. Icons are hidden by default and only\n // surface when the user hovers the row — keeps the table calm at rest and\n // reveals the destructive controls only when the user reaches for them.\n // Labels populate `aria-label` + native tooltip; default to \"Edit\" / \"Delete\".\n onEditReport,\n onDeleteReport,\n editLabel = \"Edit\",\n deleteLabel = \"Delete\",\n // Copy for the delete confirmation dialog. The dialog opens when the\n // trash icon is clicked; `onDeleteReport(row)` only fires after the user\n // confirms via the secondary (Delete) button.\n deleteConfirmTitle = \"Delete Report\",\n deleteConfirmMessage = \"Do you really want to delete this report? This action cannot be undone.\",\n deleteConfirmCancelLabel = \"Cancel\",\n // Server-side pagination (optional pass-through to DataTable2).\n reportsTotal = null,\n reportsPage = null,\n reportsPageSize = null,\n onReportsPageChange,\n onReportsPageSizeChange,\n}) {\n // Internal fallback for the custom date range so the time-range chips can\n // become mutually exclusive with a committed custom range — same pattern as\n // SignalsListPage / PerformancePanel.\n const [internalDateRange, setInternalDateRange] = React.useState(null);\n // Row staged for deletion. The trash icon stages a row; `onDeleteReport`\n // only fires once the user confirms in the dialog.\n const [pendingDeleteRow, setPendingDeleteRow] = React.useState(null);\n const effectiveDateRange = dateRange !== undefined ? dateRange : internalDateRange;\n const customRangeActive = !!(effectiveDateRange?.from && effectiveDateRange?.to);\n\n const handleDateRangeChange = (range) => {\n setInternalDateRange(range);\n onDateRangeChange?.(range);\n };\n const handleWindowChange = (id) => {\n setInternalDateRange(null);\n onDateRangeChange?.(null);\n onWindowChange?.(id);\n };\n\n const dateLabel = customRangeActive\n ? `${formatLocalDate(effectiveDateRange.from)} – ${formatLocalDate(effectiveDateRange.to)}`\n : dateRangeLabel || computeWindowLabel(selectedWindow);\n\n // Inject the actions column at the right edge of whatever column set the\n // host passed (or DEFAULT_REPORTS_COLUMNS). Built dynamically so the\n // `onToggleReport` / label props are captured per-row.\n const columnsWithActions = React.useMemo(() => {\n const hasHoverActions = !!(onEditReport || onDeleteReport);\n const actions = {\n // Use the id DataTable2's `ACTION_COLUMN_ID` recognises so this column is\n // pinned to the right edge, locked from drag-reorder, and hidden from the\n // column picker (the toggle pill has no header label).\n id: \"action\",\n label: \"\",\n width: hasHoverActions ? 200 : 117,\n sortable: false,\n filterable: false,\n render: (_value, row) => {\n const enabled =\n row.enabled === undefined ? true : !!row.enabled;\n const showToggle =\n toggleEnabledLabel || toggleDisabledLabel || onToggleReport;\n if (!showToggle && !hasHoverActions) return null;\n return (\n <div\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 16,\n width: \"100%\",\n justifyContent: \"flex-end\",\n }}\n >\n {showToggle && (\n <ToggleCell\n value={enabled}\n enabledLabel={toggleEnabledLabel}\n disabledLabel={toggleDisabledLabel}\n onToggle={(next) => onToggleReport?.(row, next)}\n />\n )}\n {hasHoverActions && (\n <span className=\"cdr-reports-row-actions\" style={{ display: \"inline-flex\", gap: 12 }}>\n {onEditReport && (\n <RowActionButton\n icon={Pencil}\n label={editLabel}\n onClick={() => onEditReport(row)}\n />\n )}\n {onDeleteReport && (\n <RowActionButton\n icon={Trash2}\n label={deleteLabel}\n onClick={() => setPendingDeleteRow(row)}\n />\n )}\n </span>\n )}\n </div>\n );\n },\n };\n return [...reportColumns, actions];\n }, [\n reportColumns,\n onToggleReport,\n toggleEnabledLabel,\n toggleDisabledLabel,\n onEditReport,\n onDeleteReport,\n editLabel,\n deleteLabel,\n ]);\n\n return (\n <div\n className={`cdr-reports-list${className ? ` ${className}` : \"\"}`}\n style={{\n background: C.white,\n fontFamily: FONT_DISPLAY,\n color: C.ink,\n width: \"100%\",\n minWidth: 1192,\n boxSizing: \"border-box\",\n padding: \"12px 32px 32px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: 24,\n }}\n >\n {/* Hover-reveal CSS for the per-row edit / delete icons. Scoped to\n `.cdr-reports-list` so the rule cannot leak to other DataTable2\n instances rendered on the same page. */}\n <style>{`\n .cdr-reports-list .cdr-reports-row-actions {\n opacity: 0;\n transition: opacity 0.12s ease;\n }\n .cdr-reports-list tr:hover .cdr-reports-row-actions,\n .cdr-reports-list tr:focus-within .cdr-reports-row-actions {\n opacity: 1;\n }\n `}</style>\n {/* Header — title on the left, date controls + export + create on the right. */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 16,\n paddingTop: 12,\n flexWrap: \"wrap\",\n }}\n >\n <h1\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 24,\n fontWeight: 400,\n color: C.ink,\n margin: 0,\n lineHeight: 1.2,\n letterSpacing: \"-0.01em\",\n flex: 1,\n minWidth: 0,\n }}\n >\n {title}\n </h1>\n <div style={{ display: \"flex\", gap: 10, alignItems: \"center\", flexWrap: \"wrap\" }}>\n {dateLabel && (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 6,\n fontFamily: FONT_DISPLAY,\n fontSize: 13,\n color: C.ink,\n marginRight: 6,\n whiteSpace: \"nowrap\",\n }}\n >\n <CalendarDays size={16} strokeWidth={1.75} style={{ color: C.muted }} />\n {dateLabel}\n </span>\n )}\n {rangeOptions.map((opt) => (\n <RangeChip\n key={opt.id}\n label={opt.label}\n active={!customRangeActive && opt.id === selectedWindow}\n onClick={() => handleWindowChange(opt.id)}\n />\n ))}\n {dateRangePicker ? (\n dateRangePicker\n ) : (\n <DateRangeButton value={effectiveDateRange} onChange={handleDateRangeChange} />\n )}\n {exportLabel && (\n <button\n type=\"button\"\n onClick={() => onExport?.()}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n height: 32,\n padding: \"0 16px\",\n borderRadius: 10,\n border: `1px solid ${C.neutralBorder}`,\n background: C.white,\n cursor: \"pointer\",\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n color: C.neutral800,\n }}\n >\n <Download size={18} strokeWidth={1.75} />\n {exportLabel}\n </button>\n )}\n {createReportLabel && (\n <button\n type=\"button\"\n onClick={() => onCreateReport?.()}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n height: 32,\n padding: \"0 16px\",\n borderRadius: 10,\n border: \"none\",\n background: C.neutral850,\n cursor: \"pointer\",\n fontFamily: FONT_DISPLAY,\n fontSize: 16,\n fontWeight: 400,\n color: C.neutral50,\n whiteSpace: \"nowrap\",\n }}\n >\n <Plus size={20} strokeWidth={1.75} />\n {createReportLabel}\n </button>\n )}\n </div>\n </div>\n\n <DataTable2\n data={reports}\n columns={columnsWithActions}\n initialPageSize={initialPageSize}\n onRowClick={onReportClick}\n onVisibleColumnsChange={onVisibleColumnsChange}\n hideColumnPicker\n totalCount={reportsTotal}\n page={reportsPage}\n pageSize={reportsPageSize}\n onPageChange={onReportsPageChange}\n onPageSizeChange={onReportsPageSizeChange}\n />\n\n <ConfirmationPopup\n open={!!pendingDeleteRow}\n title={deleteConfirmTitle}\n content={deleteConfirmMessage}\n primaryLabel={deleteConfirmCancelLabel}\n secondaryLabel={deleteLabel}\n onPrimary={() => setPendingDeleteRow(null)}\n onSecondary={() => {\n const row = pendingDeleteRow;\n setPendingDeleteRow(null);\n if (row) onDeleteReport?.(row);\n }}\n onClose={() => setPendingDeleteRow(null)}\n />\n </div>\n );\n}\n","\"use client\";\n\nimport React from \"react\";\nimport {\n ArrowLeft,\n ChevronLeft,\n ChevronRight,\n CloudCheck,\n Ban,\n CirclePause,\n FileDown,\n Plus,\n Settings2,\n Share2,\n PanelLeftClose,\n PanelLeftOpen,\n} from \"lucide-react\";\n\n// Color values resolve to CSS variables declared in `src/tokens/colors.css`.\n// Anything new added here MUST first be added to that file as a `--*` token.\nconst C = {\n ink: \"var(--color-text)\",\n muted: \"var(--color-text-secondary)\",\n border: \"var(--grey-absent)\",\n borderSubtle: \"var(--neutral-100)\",\n black: \"var(--neutral-900)\",\n white: \"var(--grey-white)\",\n neutralBorder: \"var(--neutral-250)\",\n neutralLight: \"var(--neutral-100)\",\n neutral850: \"var(--neutral-850)\",\n neutral800: \"var(--neutral-800)\",\n neutral50: \"var(--neutral-50)\",\n neutral200: \"var(--neutral-200)\",\n textSecondary: \"var(--text-item)\",\n textMidtone: \"var(--text-subtle-warm)\",\n selectedRow: \"var(--focus-2)\",\n summaryBg: \"var(--surface-warm-40)\",\n hoverGrey: \"var(--surface-hover)\",\n};\n\nconst FONT_DISPLAY = \"var(--font-sans, 'Averta', ui-sans-serif, system-ui, sans-serif)\";\nconst FONT_VARTA = \"Varta, var(--font-sans, sans-serif)\";\n\n// Single-line text with ellipsis truncation. When the rendered text overflows\n// its container, sets the native `title` attribute so hovering surfaces the\n// full string in the browser's built-in tooltip — no TooltipProvider required.\nfunction TruncatedText({ as: As = \"span\", text, style, ...rest }) {\n const ref = React.useRef(null);\n const [isTruncated, setIsTruncated] = React.useState(false);\n React.useEffect(() => {\n const el = ref.current;\n if (!el) return undefined;\n const check = () => setIsTruncated(el.scrollWidth > el.clientWidth);\n check();\n if (typeof ResizeObserver === \"undefined\") return undefined;\n const observer = new ResizeObserver(check);\n observer.observe(el);\n return () => observer.disconnect();\n }, [text]);\n return (\n <As\n ref={ref}\n title={isTruncated && text != null ? String(text) : undefined}\n style={{\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n minWidth: 0,\n ...style,\n }}\n {...rest}\n >\n {text}\n </As>\n );\n}\n\n// Convert a Previous-Reports `timestamp` value to the viewer's local timezone,\n// rendered as \"MM/DD/YYYY at h:mm AM/PM\". Accepts a Date instance or any string\n// parseable by `new Date(...)` (ISO 8601 is the recommended host-side format).\n// If the value isn't parseable — e.g. the host already pre-formatted it as\n// \"05/01/2026 at 5:26 AM\" — we render it as-is so existing consumers don't\n// break.\nfunction formatLocalReportTimestamp(value) {\n if (value == null || value === \"\") return \"\";\n const date = value instanceof Date ? value : new Date(String(value));\n if (Number.isNaN(date.getTime())) return String(value);\n const datePart = date.toLocaleDateString(\"en-US\", {\n month: \"2-digit\",\n day: \"2-digit\",\n year: \"numeric\",\n });\n const timePart = date.toLocaleTimeString(\"en-US\", {\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: true,\n });\n return `${datePart} at ${timePart}`;\n}\n\n// Map stepper-list / status-pill values to their lucide icons. Unknown statuses\n// fall back to a generic cloud-check so the row still renders.\nconst STATUS_ICONS = {\n active: CloudCheck,\n paused: CirclePause,\n suspended: Ban,\n};\n\nfunction StatusIcon({ value, size = 20 }) {\n if (value == null || value === \"\") return null;\n const Icon = STATUS_ICONS[String(value).toLowerCase()] || CloudCheck;\n return <Icon size={size} strokeWidth={1.5} style={{ color: C.ink }} />;\n}\n\nfunction StatusPill({ value }) {\n if (value == null || value === \"\") return null;\n return (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 4,\n fontFamily: FONT_DISPLAY,\n fontSize: 12,\n color: C.ink,\n lineHeight: \"16px\",\n }}\n >\n <StatusIcon value={value} />\n {value}\n </span>\n );\n}\n\n// Stepper-list item used in the \"Previous Reports\" sidebar.\nfunction PreviousReportItem({ item, selected, onClick }) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n style={{\n display: \"flex\",\n gap: 4,\n padding: \"8px 4px\",\n borderRadius: 8,\n border: \"none\",\n background: selected ? C.selectedRow : C.white,\n cursor: onClick ? \"pointer\" : \"default\",\n textAlign: \"left\",\n width: \"100%\",\n fontFamily: FONT_DISPLAY,\n }}\n >\n <div\n style={{\n width: 40,\n height: 40,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n }}\n >\n <StatusIcon value={item.status} />\n </div>\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n <TruncatedText\n text={item.title}\n style={{\n fontFamily: FONT_DISPLAY,\n fontWeight: 600,\n fontSize: 14,\n color: C.ink,\n lineHeight: 1.2,\n }}\n />\n {(() => {\n const formatted = formatLocalReportTimestamp(item.timestamp);\n if (!formatted) return null;\n return (\n <span\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 12,\n color: C.ink,\n lineHeight: 1.5,\n }}\n >\n {formatted}\n </span>\n );\n })()}\n </div>\n </button>\n );\n}\n\n// Compact pagination control at the bottom of the Previous Reports list.\n// Mirrors the Figma \"PaginationControl\" / \"PaginationPage\" components: 24px\n// tall pills with a 1px subtle border, active page filled black.\nfunction PaginationChip({ label, active = false, disabled = false, onClick, leading, trailing }) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n disabled={disabled}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 4,\n height: 24,\n minWidth: 22,\n padding: \"4px 8px\",\n borderRadius: 10,\n border: active ? \"none\" : `1px solid ${C.borderSubtle}`,\n background: active ? C.black : C.white,\n color: active ? C.white : C.black,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n opacity: disabled ? 0.5 : 1,\n fontFamily: FONT_DISPLAY,\n fontSize: 12,\n lineHeight: \"16px\",\n }}\n >\n {leading}\n {label}\n {trailing}\n </button>\n );\n}\n\nfunction PreviousReportsPagination({\n page = 1,\n totalPages = 1,\n onPageChange,\n backLabel = \"\",\n nextLabel = \"\",\n}) {\n const pages = Array.from({ length: totalPages }, (_, i) => i + 1);\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 6,\n padding: \"16px 0\",\n borderTop: `1px solid ${C.border}`,\n }}\n >\n <PaginationChip\n label={backLabel}\n leading={<ChevronLeft size={12} strokeWidth={1.75} />}\n disabled={page <= 1}\n onClick={() => onPageChange?.(Math.max(1, page - 1))}\n />\n {pages.map((p) => (\n <PaginationChip\n key={p}\n label={String(p)}\n active={p === page}\n onClick={() => onPageChange?.(p)}\n />\n ))}\n <PaginationChip\n label={nextLabel}\n trailing={<ChevronRight size={12} strokeWidth={1.75} />}\n disabled={page >= totalPages}\n onClick={() => onPageChange?.(Math.min(totalPages, page + 1))}\n />\n </div>\n );\n}\n\n// Section heading bar that sits above a content block — 16px label on a 40px\n// row with a subtle bottom border (matches the Figma \"Call Distribution by\n// Location\" / \"KEY observations\" treatment).\nfunction SectionTitle({ children }) {\n return (\n <div\n style={{\n height: 40,\n display: \"flex\",\n alignItems: \"center\",\n borderBottom: `1px solid ${C.border}`,\n fontFamily: FONT_DISPLAY,\n fontSize: 16,\n color: C.ink,\n }}\n >\n {children}\n </div>\n );\n}\n\n// Distribution table rendered inline (DataTable2 is overkill for this static\n// breakdown — the Figma shows no sort / filter / pagination on it).\nfunction DistributionTable({ columns, rows, totalRow }) {\n if (!columns?.length) return null;\n const cellBaseStyle = {\n padding: 12,\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n lineHeight: \"20px\",\n color: C.black,\n boxSizing: \"border-box\",\n };\n return (\n <div\n style={{\n border: `1px solid ${C.neutral200}`,\n borderRadius: 4,\n background: C.white,\n overflow: \"hidden\",\n }}\n >\n <table style={{ width: \"100%\", borderCollapse: \"collapse\", tableLayout: \"fixed\" }}>\n <colgroup>\n {columns.map((col) => (\n <col key={col.id} style={col.width ? { width: col.width } : undefined} />\n ))}\n </colgroup>\n <thead>\n <tr style={{ background: C.neutral50, height: 36 }}>\n {columns.map((col, i) => (\n <th\n key={col.id}\n style={{\n ...cellBaseStyle,\n fontWeight: 500,\n textAlign: col.align || (i === 0 ? \"left\" : \"right\"),\n borderBottom: `1px solid ${C.borderSubtle}`,\n }}\n >\n {col.label}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {(rows || []).map((row, rowIdx) => (\n <tr key={row.id ?? rowIdx} style={{ height: 36 }}>\n {columns.map((col, i) => (\n <td\n key={col.id}\n style={{\n ...cellBaseStyle,\n textAlign: col.align || (i === 0 ? \"left\" : \"right\"),\n borderBottom: `1px solid ${C.borderSubtle}`,\n }}\n >\n {row[col.id]}\n </td>\n ))}\n </tr>\n ))}\n {totalRow && (\n <tr style={{ height: 36, background: C.neutral50 }}>\n {columns.map((col, i) => (\n <td\n key={col.id}\n style={{\n ...cellBaseStyle,\n fontWeight: 500,\n textAlign: col.align || (i === 0 ? \"left\" : \"right\"),\n }}\n >\n {totalRow[col.id]}\n </td>\n ))}\n </tr>\n )}\n </tbody>\n </table>\n </div>\n );\n}\n\nexport const DEFAULT_DISTRIBUTION_COLUMNS = [\n { id: \"location\", label: \"Location\", width: 242, align: \"left\" },\n { id: \"calls\", label: \"Calls\", width: 90, align: \"right\" },\n { id: \"percentOfTotal\", label: \"% of Total\", width: 90, align: \"right\" },\n { id: \"avgCsat\", label: \"Avg CSAT\", width: 90, align: \"right\" },\n { id: \"inbound\", label: \"Inbound\", width: 90, align: \"right\" },\n { id: \"client\", label: \"Client\", width: 90, align: \"right\" },\n];\n\nexport default function ReportsDetails({\n className = \"\",\n // Header\n reportTitle = \"\",\n onBack,\n onManage,\n manageLabel = \"\",\n onCreateReport,\n createReportLabel = \"\",\n // History sidebar — the title is computed from `previousReports.length` and\n // rendered as `History (N Reports)`, matching the canonical design. Any\n // `previousReportsTitle` prop passed by older host apps is intentionally\n // ignored so the design stays consistent across consumers.\n previousReports = [],\n selectedReportId = null,\n onSelectReport,\n previousReportsPage = 1,\n previousReportsTotalPages = 1,\n onPreviousReportsPageChange,\n // Labels for the back / next chips in the sidebar paginator. Empty by\n // default so host apps don't see library demo copy.\n paginationBackLabel = \"\",\n paginationNextLabel = \"\",\n // Right column — header row\n reportSubtitle = \"\",\n dateLabel = \"\",\n dateValue = \"\",\n status = \"\",\n shareLabel = \"\",\n onShare,\n // Toggle for the inline \"Link copied!\" toast rendered next to the Share\n // button. Hosts control it because the actual clipboard write happens in\n // their `onShare` callback — they flip this prop to true on success and\n // back to false after the auto-dismiss timer fires.\n shareCopied = false,\n shareCopiedLabel = \"Link copied\",\n // PDF download. Rendered as a chip matching the Share button, immediately\n // before Share. Hidden when `pdfLabel` is empty or `onPdf` is null. The\n // host owns the actual print-to-PDF wiring (typically `window.print()`\n // with `document.title` swapped to the desired filename).\n pdfLabel = \"\",\n onPdf,\n // Summary card\n summaryTitle = \"\",\n summaryBody = \"\",\n // Intro block\n introBold = \"\",\n introMeta = \"\",\n // Distribution section\n distributionTitle = \"\",\n distributionColumns = DEFAULT_DISTRIBUTION_COLUMNS,\n distributionRows = [],\n distributionTotalRow,\n // Observations section\n observationsTitle = \"\",\n observations = [],\n // Closing block (post-observations)\n closingBoldLines = [],\n closingMeta = \"\",\n // Optional slot rendered at the end of the right column, after the closing\n // block. Lets hosts append page-specific content (e.g. a markdown report\n // body) directly under the Summary card so the right column expands with\n // the sidebar instead of leaving a tall gap below the two-column body.\n rightColumnExtra = null,\n}) {\n // History sidebar is collapsible — when collapsed, the aside is hidden and\n // a \"History\" pill button surfaces in the report sub-header to re-expand it.\n const [historyCollapsed, setHistoryCollapsed] = React.useState(false);\n\n return (\n <div\n className={className}\n style={{\n background: C.white,\n fontFamily: FONT_DISPLAY,\n color: C.ink,\n width: \"100%\",\n minWidth: 1192,\n boxSizing: \"border-box\",\n display: \"flex\",\n flexDirection: \"column\",\n }}\n >\n {/* Header — back arrow + title + Manage + + Report */}\n <div\n data-print-hide=\"true\"\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 12,\n padding: \"12px 32px\",\n minHeight: 78,\n boxSizing: \"border-box\",\n }}\n >\n <button\n type=\"button\"\n aria-label=\"Back\"\n onClick={onBack}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 24,\n height: 24,\n background: \"transparent\",\n border: \"none\",\n cursor: onBack ? \"pointer\" : \"default\",\n color: C.ink,\n padding: 0,\n flexShrink: 0,\n }}\n >\n <ArrowLeft size={20} strokeWidth={1.75} />\n </button>\n <div\n style={{\n flex: 1,\n minWidth: 0,\n paddingLeft: 16,\n borderLeft: `1px solid ${C.border}`,\n alignSelf: \"stretch\",\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <h1\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 24,\n fontWeight: 400,\n color: C.ink,\n margin: 0,\n lineHeight: 1.2,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n }}\n >\n {reportTitle}\n </h1>\n </div>\n {manageLabel && (\n <button\n type=\"button\"\n onClick={() => onManage?.()}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n height: 32,\n padding: \"0 16px\",\n borderRadius: 10,\n border: `1px solid ${C.neutralBorder}`,\n background: C.white,\n cursor: \"pointer\",\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n color: C.neutral800,\n flexShrink: 0,\n }}\n >\n <Settings2 size={20} strokeWidth={1.75} />\n {manageLabel}\n </button>\n )}\n {createReportLabel && (\n <button\n type=\"button\"\n onClick={() => onCreateReport?.()}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n height: 32,\n padding: \"0 16px\",\n borderRadius: 10,\n border: \"none\",\n background: C.neutral850,\n cursor: \"pointer\",\n fontFamily: FONT_DISPLAY,\n fontSize: 16,\n fontWeight: 400,\n color: C.neutral50,\n whiteSpace: \"nowrap\",\n flexShrink: 0,\n }}\n >\n <Plus size={20} strokeWidth={1.75} />\n {createReportLabel}\n </button>\n )}\n </div>\n\n {/* Two-column body */}\n <div\n style={{\n display: \"flex\",\n gap: 24,\n padding: \"24px 32px\",\n borderTop: `1px solid ${C.border}`,\n alignItems: \"flex-start\",\n }}\n >\n {/* Left sidebar — Previous Reports. Hidden when collapsed; the\n \"History\" pill in the right-column sub-header re-expands it. */}\n {!historyCollapsed && (\n <aside\n data-print-hide=\"true\"\n style={{\n width: 360,\n flexShrink: 0,\n borderRight: `1px solid ${C.borderSubtle}`,\n paddingRight: 20,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 12,\n }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 8,\n paddingLeft: 4,\n paddingTop: 12,\n }}\n >\n <span\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n color: C.ink,\n lineHeight: 1.2,\n }}\n >\n {`History (${previousReports.length} ${previousReports.length === 1 ? \"Report\" : \"Reports\"})`}\n </span>\n <button\n type=\"button\"\n aria-label=\"Collapse history\"\n title=\"Collapse history\"\n onClick={() => setHistoryCollapsed(true)}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 24,\n height: 24,\n padding: 0,\n borderRadius: 4,\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n color: C.ink,\n }}\n >\n <PanelLeftClose size={16} strokeWidth={1.75} />\n </button>\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 4 }}>\n {previousReports.map((item, i) => (\n <PreviousReportItem\n key={item.id ?? i}\n item={item}\n selected={item.id != null && item.id === selectedReportId}\n onClick={onSelectReport ? () => onSelectReport(item) : undefined}\n />\n ))}\n </div>\n {previousReportsTotalPages > 1 && (\n <PreviousReportsPagination\n page={previousReportsPage}\n totalPages={previousReportsTotalPages}\n onPageChange={onPreviousReportsPageChange}\n backLabel={paginationBackLabel}\n nextLabel={paginationNextLabel}\n />\n )}\n </aside>\n )}\n\n {/* Right column — report body */}\n <div\n style={{\n flex: 1,\n minWidth: 0,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 16,\n }}\n >\n {/* Sub-header — optional History pill (when collapsed) + title +\n date + status + share (Figma 6103:1127, 6212:905). */}\n {(historyCollapsed || reportSubtitle || dateLabel || dateValue || status || shareLabel) && (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n // Slim gap so long titles get more room before the ellipsis\n // kicks in. Was 60px; that was overkill once the right block\n // started sizing to its own content.\n gap: 24,\n width: \"100%\",\n }}\n >\n {(historyCollapsed || reportSubtitle) && (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n flex: 1,\n minWidth: 0,\n }}\n >\n {historyCollapsed && (\n <button\n type=\"button\"\n aria-label=\"Show history\"\n title=\"Show history\"\n onClick={() => setHistoryCollapsed(false)}\n data-print-hide=\"true\"\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n height: 28,\n padding: \"8px 16px\",\n borderRadius: 10,\n border: `1px solid ${C.neutralBorder}`,\n background: C.white,\n cursor: \"pointer\",\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n lineHeight: \"24px\",\n color: C.neutral800,\n flexShrink: 0,\n }}\n >\n History\n <PanelLeftOpen size={16} strokeWidth={1.75} />\n </button>\n )}\n {reportSubtitle && (\n <TruncatedText\n text={reportSubtitle}\n style={{\n flex: 1,\n minWidth: 0,\n fontFamily: FONT_VARTA,\n fontSize: 20,\n color: C.ink,\n fontWeight: 400,\n lineHeight: \"normal\",\n }}\n />\n )}\n </div>\n )}\n {(dateLabel || dateValue || status || shareLabel || pdfLabel) && (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 10,\n // Size to content (not a fixed width) so adding/removing\n // the Share button doesn't push overflow back into the\n // title's truncation gap. `flexShrink: 0` keeps the date /\n // status / share row from being squeezed — the title's\n // `flex: 1, minWidth: 0` handles the ellipsis instead.\n flexShrink: 0,\n justifyContent: \"flex-end\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 10,\n justifyContent: \"flex-end\",\n flex: 1,\n minWidth: 0,\n }}\n >\n {(dateLabel || dateValue) && (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 4,\n padding: \"8px 0\",\n fontSize: 13,\n color: C.ink,\n lineHeight: 1.2,\n }}\n >\n {dateLabel && (\n <span\n style={{\n fontFamily: FONT_DISPLAY,\n whiteSpace: \"nowrap\",\n }}\n >\n {dateLabel}\n </span>\n )}\n {dateValue && (\n <span\n style={{\n fontFamily: FONT_VARTA,\n whiteSpace: \"nowrap\",\n }}\n >\n {dateValue}\n </span>\n )}\n </div>\n )}\n {status && (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n gap: 4,\n paddingLeft: 16,\n borderLeft: `1px solid ${C.border}`,\n }}\n >\n <StatusPill value={status} />\n </div>\n )}\n </div>\n {pdfLabel && (\n <div data-print-hide=\"true\" style={{ flexShrink: 0 }}>\n <button\n type=\"button\"\n onClick={() => onPdf?.()}\n disabled={!onPdf}\n aria-label=\"Download as PDF\"\n title=\"Download as PDF\"\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 8,\n height: 28,\n padding: \"8px 16px\",\n boxSizing: \"border-box\",\n borderRadius: 10,\n border: \"none\",\n background: C.hoverGrey,\n cursor: onPdf ? \"pointer\" : \"not-allowed\",\n opacity: onPdf ? 1 : 0.6,\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n lineHeight: \"24px\",\n color: C.ink,\n whiteSpace: \"nowrap\",\n }}\n >\n <FileDown size={16} strokeWidth={1.5} />\n {pdfLabel}\n </button>\n </div>\n )}\n {shareLabel && (\n <div data-print-hide=\"true\" style={{ position: \"relative\", flexShrink: 0 }}>\n <button\n type=\"button\"\n onClick={() => onShare?.()}\n disabled={!onShare}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 8,\n height: 28,\n padding: \"8px 16px\",\n boxSizing: \"border-box\",\n borderRadius: 10,\n border: \"none\",\n background: C.hoverGrey,\n cursor: onShare ? \"pointer\" : \"not-allowed\",\n opacity: onShare ? 1 : 0.6,\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n lineHeight: \"24px\",\n color: C.ink,\n whiteSpace: \"nowrap\",\n }}\n >\n <Share2 size={16} strokeWidth={1.75} />\n {shareLabel}\n </button>\n {shareCopied && (\n <div\n role=\"status\"\n aria-live=\"polite\"\n style={{\n position: \"absolute\",\n top: \"calc(100% + 8px)\",\n right: 0,\n zIndex: 50,\n background: \"#2e3236\",\n color: \"#ffffff\",\n borderRadius: 10,\n boxShadow: \"0 8px 24px rgba(11,11,11,0.18)\",\n padding: \"8px 12px\",\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n fontFamily: FONT_DISPLAY,\n fontSize: 13,\n lineHeight: 1,\n whiteSpace: \"nowrap\",\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M2.66683 10.6667C1.9335 10.6667 1.3335 10.0667 1.3335 9.33337V2.66671C1.3335 1.93337 1.9335 1.33337 2.66683 1.33337H9.3335C10.0668 1.33337 10.6668 1.93337 10.6668 2.66671M6.66683 5.33337H13.3335C14.0699 5.33337 14.6668 5.93033 14.6668 6.66671V13.3334C14.6668 14.0698 14.0699 14.6667 13.3335 14.6667H6.66683C5.93045 14.6667 5.3335 14.0698 5.3335 13.3334V6.66671C5.3335 5.93033 5.93045 5.33337 6.66683 5.33337Z\"\n stroke=\"#F2F2F0\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n {shareCopiedLabel}\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </div>\n )}\n\n {/* Summary card */}\n {(summaryTitle || summaryBody) && (\n <div\n style={{\n background: C.summaryBg,\n border: `1px solid ${C.border}`,\n borderRadius: 8,\n padding: 24,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 12,\n }}\n >\n {summaryTitle && (\n <span\n style={{\n fontFamily: FONT_DISPLAY,\n fontWeight: 600,\n fontSize: 15,\n color: C.ink,\n lineHeight: 1.2,\n }}\n >\n {summaryTitle}\n </span>\n )}\n {summaryBody && (\n <p\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n color: C.ink,\n margin: 0,\n lineHeight: 1.5,\n }}\n >\n {summaryBody}\n </p>\n )}\n </div>\n )}\n\n {/* Intro block — bold lead + meta line */}\n {(introBold || introMeta) && (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 8 }}>\n {introBold && (\n <p\n style={{\n fontFamily: FONT_DISPLAY,\n fontWeight: 500,\n fontSize: 14,\n color: C.textSecondary,\n margin: 0,\n lineHeight: 1.5,\n }}\n >\n {introBold}\n </p>\n )}\n {introMeta && (\n <p\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n color: C.textMidtone,\n margin: 0,\n lineHeight: 1.5,\n }}\n >\n {introMeta}\n </p>\n )}\n </div>\n )}\n\n {/* Distribution section */}\n {(distributionTitle || distributionRows.length > 0) && (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 12 }}>\n {distributionTitle && <SectionTitle>{distributionTitle}</SectionTitle>}\n {distributionRows.length > 0 && (\n <DistributionTable\n columns={distributionColumns}\n rows={distributionRows}\n totalRow={distributionTotalRow}\n />\n )}\n </div>\n )}\n\n {/* Observations section */}\n {(observationsTitle || observations.length > 0) && (\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n {observationsTitle && <SectionTitle>{observationsTitle}</SectionTitle>}\n {observations.map((text, i) => (\n <p\n key={i}\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n color: C.ink,\n margin: 0,\n padding: \"12px 0 16px\",\n borderBottom: `1px solid ${C.border}`,\n lineHeight: 1.5,\n }}\n >\n {text}\n </p>\n ))}\n </div>\n )}\n\n {/* Closing block */}\n {(closingBoldLines.length > 0 || closingMeta) && (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 14, padding: \"12px 0\" }}>\n {closingBoldLines.map((line, i) => (\n <p\n key={i}\n style={{\n fontFamily: FONT_DISPLAY,\n fontWeight: 500,\n fontSize: 14,\n color: C.textSecondary,\n margin: 0,\n lineHeight: 1.5,\n }}\n >\n {line}\n </p>\n ))}\n {closingMeta && (\n <p\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n color: C.textMidtone,\n margin: 0,\n lineHeight: 1.5,\n }}\n >\n {closingMeta}\n </p>\n )}\n </div>\n )}\n\n {rightColumnExtra}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["C","FONT_DISPLAY","DEFAULT_RANGE_OPTIONS","RANGE_TO_MS","formatLocalDate","date","computeWindowLabel","windowId","ms","to","from","RangeChip","label","active","onClick","jsx","STATUS_ICONS","CloudCheck","GlobeX","Ban","CirclePause","StatusPill","value","key","Icon","jsxs","RowActionButton","e","TogglePill","enabled","ToggleCell","enabledLabel","disabledLabel","onToggle","externalEnabled","setEnabled","React","next","DEFAULT_REPORTS_COLUMNS","ReportsList","className","title","dateRangeLabel","onExport","exportLabel","onCreateReport","createReportLabel","rangeOptions","selectedWindow","onWindowChange","dateRangePicker","dateRange","onDateRangeChange","reports","reportColumns","initialPageSize","onReportClick","onVisibleColumnsChange","onToggleReport","toggleEnabledLabel","toggleDisabledLabel","onEditReport","onDeleteReport","editLabel","deleteLabel","deleteConfirmTitle","deleteConfirmMessage","deleteConfirmCancelLabel","reportsTotal","reportsPage","reportsPageSize","onReportsPageChange","onReportsPageSizeChange","internalDateRange","setInternalDateRange","pendingDeleteRow","setPendingDeleteRow","effectiveDateRange","customRangeActive","handleDateRangeChange","range","handleWindowChange","id","dateLabel","columnsWithActions","hasHoverActions","actions","_value","row","showToggle","Pencil","Trash2","CalendarDays","opt","DateRangeButton","Download","Plus","DataTable2","ConfirmationPopup","FONT_VARTA","TruncatedText","As","text","style","rest","ref","isTruncated","setIsTruncated","el","check","observer","formatLocalReportTimestamp","datePart","timePart","StatusIcon","size","PreviousReportItem","item","selected","formatted","PaginationChip","disabled","leading","trailing","PreviousReportsPagination","page","totalPages","onPageChange","backLabel","nextLabel","pages","_","i","ChevronLeft","p","ChevronRight","SectionTitle","children","DistributionTable","columns","rows","totalRow","cellBaseStyle","col","rowIdx","DEFAULT_DISTRIBUTION_COLUMNS","ReportsDetails","reportTitle","onBack","onManage","manageLabel","previousReports","selectedReportId","onSelectReport","previousReportsPage","previousReportsTotalPages","onPreviousReportsPageChange","paginationBackLabel","paginationNextLabel","reportSubtitle","dateValue","status","shareLabel","onShare","shareCopied","shareCopiedLabel","pdfLabel","onPdf","summaryTitle","summaryBody","introBold","introMeta","distributionTitle","distributionColumns","distributionRows","distributionTotalRow","observationsTitle","observations","closingBoldLines","closingMeta","rightColumnExtra","historyCollapsed","setHistoryCollapsed","ArrowLeft","Settings2","PanelLeftClose","PanelLeftOpen","FileDown","Share2","line"],"mappings":"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"}
1
+ {"version":3,"file":"reports.es.js","sources":["../../src/components/reports/ReportsList.jsx","../../src/components/reports/ReportsDetails.jsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport {\n CalendarDays,\n Download,\n Plus,\n CloudCheck,\n GlobeX,\n Ban,\n CirclePause,\n Pencil,\n Trash2,\n} from \"lucide-react\";\nimport DataTable2 from \"../data/DataTable2\";\nimport { DateRangeButton } from \"../performance/PerformancePanel\";\nimport { computeWindowLabel, formatLocalDate } from \"../performance/performanceRangeFormat\";\nimport ConfirmationPopup from \"../common/ConfirmationPopup\";\n\n// Color values resolve to CSS variables declared in `src/tokens/colors.css`.\n// Anything new added here MUST first be added to that file as a `--*` token.\nconst C = {\n ink: \"var(--color-text)\",\n muted: \"var(--color-text-secondary)\",\n border: \"var(--grey-absent)\",\n borderSubtle: \"var(--neutral-100)\",\n black: \"var(--neutral-900)\",\n white: \"var(--grey-white)\",\n neutralBorder: \"var(--neutral-250)\",\n neutralLight: \"var(--neutral-100)\",\n neutral850: \"var(--neutral-850)\",\n neutral800: \"var(--neutral-800)\",\n neutral50: \"var(--neutral-50)\",\n};\n\nconst FONT_DISPLAY = \"var(--font-sans, 'Averta', ui-sans-serif, system-ui, sans-serif)\";\n\nconst DEFAULT_RANGE_OPTIONS = [\n { id: \"8h\", label: \"8h\" },\n { id: \"1d\", label: \"1d\" },\n { id: \"7d\", label: \"7d\" },\n { id: \"30d\", label: \"30d\" },\n];\n\nfunction RangeChip({ label, active = false, onClick }) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n style={{\n height: 32,\n minWidth: 31,\n padding: \"0 12px\",\n borderRadius: 10,\n border: active ? \"none\" : `1px solid ${C.borderSubtle}`,\n background: active ? C.black : C.white,\n color: active ? C.white : C.black,\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n cursor: \"pointer\",\n }}\n >\n {label}\n </button>\n );\n}\n\n// Status pill — icon + label, no background or border (matches Figma).\n// `status` keys map to lucide icons; unknown statuses fall back to a generic\n// cloud-check so the row still renders. Hosts pass status as a raw string.\nconst STATUS_ICONS = {\n active: CloudCheck,\n failed: GlobeX,\n suspended: Ban,\n paused: CirclePause,\n};\n\nfunction StatusPill({ value }) {\n if (value == null || value === \"\") return null;\n const key = String(value).toLowerCase();\n const Icon = STATUS_ICONS[key] || CloudCheck;\n return (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 4,\n fontFamily: FONT_DISPLAY,\n fontSize: 12,\n color: C.ink,\n lineHeight: \"16px\",\n }}\n >\n <Icon size={20} strokeWidth={1.5} style={{ color: C.ink }} />\n {value}\n </span>\n );\n}\n\n// Edit / Delete icon-only button used in the row-actions cluster. Only the\n// icon is shown; the label is passed to `aria-label` and the native tooltip\n// so the control stays accessible. Sized to the Figma spec: 24×24 hit\n// target around a 16px icon, with a 4px radius. Both icons share the same\n// neutral ink colour — the trash is not tinted red.\nfunction RowActionButton({ icon: Icon, label, onClick }) {\n return (\n <button\n type=\"button\"\n aria-label={label || undefined}\n title={label || undefined}\n onClick={(e) => {\n e.stopPropagation();\n onClick?.();\n }}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 24,\n height: 24,\n padding: 4,\n borderRadius: 4,\n border: \"none\",\n background: \"transparent\",\n cursor: onClick ? \"pointer\" : \"default\",\n color: C.ink,\n }}\n >\n <Icon size={16} strokeWidth={1.5} />\n </button>\n );\n}\n\n// Pill-style toggle used in the actions column. Track + thumb are drawn\n// inline so we don't depend on a lucide icon for either state.\n// Disabled (off): white track, grey border, grey thumb on the left.\n// Enabled (on): dark track, no border, white thumb on the right.\nfunction TogglePill({ enabled }) {\n const WIDTH = 32;\n const HEIGHT = 18;\n const THUMB = 12;\n const PAD = 3;\n return (\n <span\n aria-hidden=\"true\"\n style={{\n position: \"relative\",\n display: \"inline-block\",\n width: WIDTH,\n height: HEIGHT,\n flexShrink: 0,\n borderRadius: HEIGHT / 2,\n background: enabled ? C.neutral850 : C.white,\n border: enabled ? \"1px solid transparent\" : `1px solid ${C.neutralBorder}`,\n boxSizing: \"border-box\",\n transition: \"background 0.15s ease, border-color 0.15s ease\",\n }}\n >\n <span\n style={{\n position: \"absolute\",\n top: \"50%\",\n left: enabled ? \"auto\" : PAD - 1,\n right: enabled ? PAD - 1 : \"auto\",\n width: THUMB,\n height: THUMB,\n borderRadius: \"50%\",\n background: enabled ? C.white : \"var(--neutral-500, #949494)\",\n transform: \"translateY(-50%)\",\n transition: \"background 0.15s ease\",\n }}\n />\n </span>\n );\n}\n\n// Toggle pill + label used in the actions column. Holds its own optimistic\n// state so the visual flips immediately on click even if the host doesn't\n// update `row.enabled`; the new boolean is passed to `onToggle(nextEnabled)`\n// so the host can persist asynchronously. If the host *does* update\n// `row.enabled`, the `value` prop change re-syncs the local state.\nfunction ToggleCell({ value, enabledLabel, disabledLabel, onToggle }) {\n const externalEnabled = value !== false && value !== \"disabled\" && value !== \"off\";\n const [enabled, setEnabled] = React.useState(externalEnabled);\n\n React.useEffect(() => {\n setEnabled(externalEnabled);\n }, [externalEnabled]);\n\n const label = enabled ? enabledLabel : disabledLabel;\n\n return (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n const next = !enabled;\n setEnabled(next);\n onToggle?.(next);\n }}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n height: 20,\n padding: \"4px 8px\",\n borderRadius: 24,\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n lineHeight: \"20px\",\n color: C.black,\n }}\n >\n <TogglePill enabled={enabled} />\n {label}\n </button>\n );\n}\n\nexport const DEFAULT_REPORTS_COLUMNS = [\n { id: \"task\", label: \"Task\", width: 336, sortable: true, filterable: true },\n { id: \"schedule\", label: \"Schedule\", width: 164, sortable: true, filterable: true },\n {\n id: \"status\",\n label: \"Status\",\n width: 140,\n sortable: true,\n filterable: true,\n render: (value) => <StatusPill value={value} />,\n },\n { id: \"lastRunDate\", label: \"Last Run Date\", width: 140, sortable: true },\n { id: \"nextScheduled\", label: \"Next Scheduled\", width: 140, sortable: true },\n];\n\nexport default function ReportsList({\n className = \"\",\n // Header\n title = \"\",\n dateRangeLabel = \"\",\n onExport,\n exportLabel = \"\",\n onCreateReport,\n createReportLabel = \"\",\n // Time-range chips\n rangeOptions = DEFAULT_RANGE_OPTIONS,\n selectedWindow = \"30d\",\n onWindowChange,\n // Date-range picker\n dateRangePicker,\n dateRange,\n onDateRangeChange,\n // Table data\n reports = [],\n reportColumns = DEFAULT_REPORTS_COLUMNS,\n initialPageSize = 10,\n onReportClick,\n onVisibleColumnsChange,\n // Toggle handler — fires as `onToggleReport(row, nextEnabled)` when the\n // user clicks the enable/disable pill in the actions column. The pill\n // also flips its own visual state optimistically, so the UI updates even\n // if the host defers persistence.\n onToggleReport,\n toggleEnabledLabel = \"\",\n toggleDisabledLabel = \"\",\n // Row-hover edit / delete actions. Icons are hidden by default and only\n // surface when the user hovers the row — keeps the table calm at rest and\n // reveals the destructive controls only when the user reaches for them.\n // Labels populate `aria-label` + native tooltip; default to \"Edit\" / \"Delete\".\n onEditReport,\n onDeleteReport,\n editLabel = \"Edit\",\n deleteLabel = \"Delete\",\n // Copy for the delete confirmation dialog. The dialog opens when the\n // trash icon is clicked; `onDeleteReport(row)` only fires after the user\n // confirms via the secondary (Delete) button.\n deleteConfirmTitle = \"Delete Report\",\n deleteConfirmMessage = \"Do you really want to delete this report? This action cannot be undone.\",\n deleteConfirmCancelLabel = \"Cancel\",\n // Server-side pagination (optional pass-through to DataTable2).\n reportsTotal = null,\n reportsPage = null,\n reportsPageSize = null,\n onReportsPageChange,\n onReportsPageSizeChange,\n}) {\n // Internal fallback for the custom date range so the time-range chips can\n // become mutually exclusive with a committed custom range — same pattern as\n // SignalsListPage / PerformancePanel.\n const [internalDateRange, setInternalDateRange] = React.useState(null);\n // Row staged for deletion. The trash icon stages a row; `onDeleteReport`\n // only fires once the user confirms in the dialog.\n const [pendingDeleteRow, setPendingDeleteRow] = React.useState(null);\n const effectiveDateRange = dateRange !== undefined ? dateRange : internalDateRange;\n const customRangeActive = !!(effectiveDateRange?.from && effectiveDateRange?.to);\n\n const handleDateRangeChange = (range) => {\n setInternalDateRange(range);\n onDateRangeChange?.(range);\n };\n const handleWindowChange = (id) => {\n setInternalDateRange(null);\n onDateRangeChange?.(null);\n onWindowChange?.(id);\n };\n\n const dateLabel = customRangeActive\n ? `${formatLocalDate(effectiveDateRange.from)} – ${formatLocalDate(effectiveDateRange.to)}`\n : computeWindowLabel(selectedWindow) || dateRangeLabel;\n\n // Inject the actions column at the right edge of whatever column set the\n // host passed (or DEFAULT_REPORTS_COLUMNS). Built dynamically so the\n // `onToggleReport` / label props are captured per-row.\n const columnsWithActions = React.useMemo(() => {\n const hasHoverActions = !!(onEditReport || onDeleteReport);\n const actions = {\n // Use the id DataTable2's `ACTION_COLUMN_ID` recognises so this column is\n // pinned to the right edge, locked from drag-reorder, and hidden from the\n // column picker (the toggle pill has no header label).\n id: \"action\",\n label: \"\",\n width: hasHoverActions ? 200 : 117,\n sortable: false,\n filterable: false,\n render: (_value, row) => {\n const enabled =\n row.enabled === undefined ? true : !!row.enabled;\n const showToggle =\n toggleEnabledLabel || toggleDisabledLabel || onToggleReport;\n if (!showToggle && !hasHoverActions) return null;\n return (\n <div\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 16,\n width: \"100%\",\n justifyContent: \"flex-end\",\n }}\n >\n {showToggle && (\n <ToggleCell\n value={enabled}\n enabledLabel={toggleEnabledLabel}\n disabledLabel={toggleDisabledLabel}\n onToggle={(next) => onToggleReport?.(row, next)}\n />\n )}\n {hasHoverActions && (\n <span className=\"cdr-reports-row-actions\" style={{ display: \"inline-flex\", gap: 12 }}>\n {onEditReport && (\n <RowActionButton\n icon={Pencil}\n label={editLabel}\n onClick={() => onEditReport(row)}\n />\n )}\n {onDeleteReport && (\n <RowActionButton\n icon={Trash2}\n label={deleteLabel}\n onClick={() => setPendingDeleteRow(row)}\n />\n )}\n </span>\n )}\n </div>\n );\n },\n };\n return [...reportColumns, actions];\n }, [\n reportColumns,\n onToggleReport,\n toggleEnabledLabel,\n toggleDisabledLabel,\n onEditReport,\n onDeleteReport,\n editLabel,\n deleteLabel,\n ]);\n\n return (\n <div\n className={`cdr-reports-list${className ? ` ${className}` : \"\"}`}\n style={{\n background: C.white,\n fontFamily: FONT_DISPLAY,\n color: C.ink,\n width: \"100%\",\n minWidth: 1192,\n boxSizing: \"border-box\",\n padding: \"12px 32px 32px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: 24,\n }}\n >\n {/* Hover-reveal CSS for the per-row edit / delete icons. Scoped to\n `.cdr-reports-list` so the rule cannot leak to other DataTable2\n instances rendered on the same page. */}\n <style>{`\n .cdr-reports-list .cdr-reports-row-actions {\n opacity: 0;\n transition: opacity 0.12s ease;\n }\n .cdr-reports-list tr:hover .cdr-reports-row-actions,\n .cdr-reports-list tr:focus-within .cdr-reports-row-actions {\n opacity: 1;\n }\n `}</style>\n {/* Header — title on the left, date controls + export + create on the right. */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 16,\n paddingTop: 12,\n flexWrap: \"wrap\",\n }}\n >\n <h1\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 24,\n fontWeight: 400,\n color: C.ink,\n margin: 0,\n lineHeight: 1.2,\n letterSpacing: \"-0.01em\",\n flex: 1,\n minWidth: 0,\n }}\n >\n {title}\n </h1>\n <div style={{ display: \"flex\", gap: 10, alignItems: \"center\", flexWrap: \"wrap\" }}>\n {dateLabel && (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 6,\n fontFamily: FONT_DISPLAY,\n fontSize: 13,\n color: C.ink,\n marginRight: 6,\n whiteSpace: \"nowrap\",\n }}\n >\n <CalendarDays size={16} strokeWidth={1.75} style={{ color: C.muted }} />\n {dateLabel}\n </span>\n )}\n {rangeOptions.map((opt) => (\n <RangeChip\n key={opt.id}\n label={opt.label}\n active={!customRangeActive && opt.id === selectedWindow}\n onClick={() => handleWindowChange(opt.id)}\n />\n ))}\n {dateRangePicker ? (\n dateRangePicker\n ) : (\n <DateRangeButton value={effectiveDateRange} onChange={handleDateRangeChange} />\n )}\n {exportLabel && (\n <button\n type=\"button\"\n onClick={() => onExport?.()}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n height: 32,\n padding: \"0 16px\",\n borderRadius: 10,\n border: `1px solid ${C.neutralBorder}`,\n background: C.white,\n cursor: \"pointer\",\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n color: C.neutral800,\n }}\n >\n <Download size={18} strokeWidth={1.75} />\n {exportLabel}\n </button>\n )}\n {createReportLabel && (\n <button\n type=\"button\"\n onClick={() => onCreateReport?.()}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n height: 32,\n padding: \"0 16px\",\n borderRadius: 10,\n border: \"none\",\n background: C.neutral850,\n cursor: \"pointer\",\n fontFamily: FONT_DISPLAY,\n fontSize: 16,\n fontWeight: 400,\n color: C.neutral50,\n whiteSpace: \"nowrap\",\n }}\n >\n <Plus size={20} strokeWidth={1.75} />\n {createReportLabel}\n </button>\n )}\n </div>\n </div>\n\n <DataTable2\n data={reports}\n columns={columnsWithActions}\n initialPageSize={initialPageSize}\n onRowClick={onReportClick}\n onVisibleColumnsChange={onVisibleColumnsChange}\n hideColumnPicker\n totalCount={reportsTotal}\n page={reportsPage}\n pageSize={reportsPageSize}\n onPageChange={onReportsPageChange}\n onPageSizeChange={onReportsPageSizeChange}\n />\n\n <ConfirmationPopup\n open={!!pendingDeleteRow}\n title={deleteConfirmTitle}\n content={deleteConfirmMessage}\n primaryLabel={deleteConfirmCancelLabel}\n secondaryLabel={deleteLabel}\n onPrimary={() => setPendingDeleteRow(null)}\n onSecondary={() => {\n const row = pendingDeleteRow;\n setPendingDeleteRow(null);\n if (row) onDeleteReport?.(row);\n }}\n onClose={() => setPendingDeleteRow(null)}\n />\n </div>\n );\n}\n","\"use client\";\n\nimport React from \"react\";\nimport {\n ArrowLeft,\n ChevronLeft,\n ChevronRight,\n CloudCheck,\n Ban,\n CirclePause,\n FileDown,\n Plus,\n Settings2,\n Share2,\n PanelLeftClose,\n PanelLeftOpen,\n} from \"lucide-react\";\n\n// Color values resolve to CSS variables declared in `src/tokens/colors.css`.\n// Anything new added here MUST first be added to that file as a `--*` token.\nconst C = {\n ink: \"var(--color-text)\",\n muted: \"var(--color-text-secondary)\",\n border: \"var(--grey-absent)\",\n borderSubtle: \"var(--neutral-100)\",\n black: \"var(--neutral-900)\",\n white: \"var(--grey-white)\",\n neutralBorder: \"var(--neutral-250)\",\n neutralLight: \"var(--neutral-100)\",\n neutral850: \"var(--neutral-850)\",\n neutral800: \"var(--neutral-800)\",\n neutral50: \"var(--neutral-50)\",\n neutral200: \"var(--neutral-200)\",\n textSecondary: \"var(--text-item)\",\n textMidtone: \"var(--text-subtle-warm)\",\n selectedRow: \"var(--focus-2)\",\n summaryBg: \"var(--surface-warm-40)\",\n hoverGrey: \"var(--surface-hover)\",\n};\n\nconst FONT_DISPLAY = \"var(--font-sans, 'Averta', ui-sans-serif, system-ui, sans-serif)\";\nconst FONT_VARTA = \"Varta, var(--font-sans, sans-serif)\";\n\n// Single-line text with ellipsis truncation. When the rendered text overflows\n// its container, sets the native `title` attribute so hovering surfaces the\n// full string in the browser's built-in tooltip — no TooltipProvider required.\nfunction TruncatedText({ as: As = \"span\", text, style, ...rest }) {\n const ref = React.useRef(null);\n const [isTruncated, setIsTruncated] = React.useState(false);\n React.useEffect(() => {\n const el = ref.current;\n if (!el) return undefined;\n const check = () => setIsTruncated(el.scrollWidth > el.clientWidth);\n check();\n if (typeof ResizeObserver === \"undefined\") return undefined;\n const observer = new ResizeObserver(check);\n observer.observe(el);\n return () => observer.disconnect();\n }, [text]);\n return (\n <As\n ref={ref}\n title={isTruncated && text != null ? String(text) : undefined}\n style={{\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n minWidth: 0,\n ...style,\n }}\n {...rest}\n >\n {text}\n </As>\n );\n}\n\n// Convert a Previous-Reports `timestamp` value to the viewer's local timezone,\n// rendered as \"MM/DD/YYYY at h:mm AM/PM\". Accepts a Date instance or any string\n// parseable by `new Date(...)` (ISO 8601 is the recommended host-side format).\n// If the value isn't parseable — e.g. the host already pre-formatted it as\n// \"05/01/2026 at 5:26 AM\" — we render it as-is so existing consumers don't\n// break.\nfunction formatLocalReportTimestamp(value) {\n if (value == null || value === \"\") return \"\";\n const date = value instanceof Date ? value : new Date(String(value));\n if (Number.isNaN(date.getTime())) return String(value);\n const datePart = date.toLocaleDateString(\"en-US\", {\n month: \"2-digit\",\n day: \"2-digit\",\n year: \"numeric\",\n });\n const timePart = date.toLocaleTimeString(\"en-US\", {\n hour: \"numeric\",\n minute: \"2-digit\",\n hour12: true,\n });\n return `${datePart} at ${timePart}`;\n}\n\n// Map stepper-list / status-pill values to their lucide icons. Unknown statuses\n// fall back to a generic cloud-check so the row still renders.\nconst STATUS_ICONS = {\n active: CloudCheck,\n paused: CirclePause,\n suspended: Ban,\n};\n\nfunction StatusIcon({ value, size = 20 }) {\n if (value == null || value === \"\") return null;\n const Icon = STATUS_ICONS[String(value).toLowerCase()] || CloudCheck;\n return <Icon size={size} strokeWidth={1.5} style={{ color: C.ink }} />;\n}\n\nfunction StatusPill({ value }) {\n if (value == null || value === \"\") return null;\n return (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 4,\n fontFamily: FONT_DISPLAY,\n fontSize: 12,\n color: C.ink,\n lineHeight: \"16px\",\n }}\n >\n <StatusIcon value={value} />\n {value}\n </span>\n );\n}\n\n// Stepper-list item used in the \"Previous Reports\" sidebar.\nfunction PreviousReportItem({ item, selected, onClick }) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n style={{\n display: \"flex\",\n gap: 4,\n padding: \"8px 4px\",\n borderRadius: 8,\n border: \"none\",\n background: selected ? C.selectedRow : C.white,\n cursor: onClick ? \"pointer\" : \"default\",\n textAlign: \"left\",\n width: \"100%\",\n fontFamily: FONT_DISPLAY,\n }}\n >\n <div\n style={{\n width: 40,\n height: 40,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n }}\n >\n <StatusIcon value={item.status} />\n </div>\n <div style={{ flex: 1, minWidth: 0, display: \"flex\", flexDirection: \"column\", gap: 2 }}>\n <TruncatedText\n text={item.title}\n style={{\n fontFamily: FONT_DISPLAY,\n fontWeight: 600,\n fontSize: 14,\n color: C.ink,\n lineHeight: 1.2,\n }}\n />\n {(() => {\n const formatted = formatLocalReportTimestamp(item.timestamp);\n if (!formatted) return null;\n return (\n <span\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 12,\n color: C.ink,\n lineHeight: 1.5,\n }}\n >\n {formatted}\n </span>\n );\n })()}\n </div>\n </button>\n );\n}\n\n// Compact pagination control at the bottom of the Previous Reports list.\n// Mirrors the Figma \"PaginationControl\" / \"PaginationPage\" components: 24px\n// tall pills with a 1px subtle border, active page filled black.\nfunction PaginationChip({ label, active = false, disabled = false, onClick, leading, trailing }) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n disabled={disabled}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 4,\n height: 24,\n minWidth: 22,\n padding: \"4px 8px\",\n borderRadius: 10,\n border: active ? \"none\" : `1px solid ${C.borderSubtle}`,\n background: active ? C.black : C.white,\n color: active ? C.white : C.black,\n cursor: disabled ? \"not-allowed\" : \"pointer\",\n opacity: disabled ? 0.5 : 1,\n fontFamily: FONT_DISPLAY,\n fontSize: 12,\n lineHeight: \"16px\",\n }}\n >\n {leading}\n {label}\n {trailing}\n </button>\n );\n}\n\nfunction PreviousReportsPagination({\n page = 1,\n totalPages = 1,\n onPageChange,\n backLabel = \"\",\n nextLabel = \"\",\n}) {\n const pages = Array.from({ length: totalPages }, (_, i) => i + 1);\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 6,\n padding: \"16px 0\",\n borderTop: `1px solid ${C.border}`,\n }}\n >\n <PaginationChip\n label={backLabel}\n leading={<ChevronLeft size={12} strokeWidth={1.75} />}\n disabled={page <= 1}\n onClick={() => onPageChange?.(Math.max(1, page - 1))}\n />\n {pages.map((p) => (\n <PaginationChip\n key={p}\n label={String(p)}\n active={p === page}\n onClick={() => onPageChange?.(p)}\n />\n ))}\n <PaginationChip\n label={nextLabel}\n trailing={<ChevronRight size={12} strokeWidth={1.75} />}\n disabled={page >= totalPages}\n onClick={() => onPageChange?.(Math.min(totalPages, page + 1))}\n />\n </div>\n );\n}\n\n// Section heading bar that sits above a content block — 16px label on a 40px\n// row with a subtle bottom border (matches the Figma \"Call Distribution by\n// Location\" / \"KEY observations\" treatment).\nfunction SectionTitle({ children }) {\n return (\n <div\n style={{\n height: 40,\n display: \"flex\",\n alignItems: \"center\",\n borderBottom: `1px solid ${C.border}`,\n fontFamily: FONT_DISPLAY,\n fontSize: 16,\n color: C.ink,\n }}\n >\n {children}\n </div>\n );\n}\n\n// Distribution table rendered inline (DataTable2 is overkill for this static\n// breakdown — the Figma shows no sort / filter / pagination on it).\nfunction DistributionTable({ columns, rows, totalRow }) {\n if (!columns?.length) return null;\n const cellBaseStyle = {\n padding: 12,\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n lineHeight: \"20px\",\n color: C.black,\n boxSizing: \"border-box\",\n };\n return (\n <div\n style={{\n border: `1px solid ${C.neutral200}`,\n borderRadius: 4,\n background: C.white,\n overflow: \"hidden\",\n }}\n >\n <table style={{ width: \"100%\", borderCollapse: \"collapse\", tableLayout: \"fixed\" }}>\n <colgroup>\n {columns.map((col) => (\n <col key={col.id} style={col.width ? { width: col.width } : undefined} />\n ))}\n </colgroup>\n <thead>\n <tr style={{ background: C.neutral50, height: 36 }}>\n {columns.map((col, i) => (\n <th\n key={col.id}\n style={{\n ...cellBaseStyle,\n fontWeight: 500,\n textAlign: col.align || (i === 0 ? \"left\" : \"right\"),\n borderBottom: `1px solid ${C.borderSubtle}`,\n }}\n >\n {col.label}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {(rows || []).map((row, rowIdx) => (\n <tr key={row.id ?? rowIdx} style={{ height: 36 }}>\n {columns.map((col, i) => (\n <td\n key={col.id}\n style={{\n ...cellBaseStyle,\n textAlign: col.align || (i === 0 ? \"left\" : \"right\"),\n borderBottom: `1px solid ${C.borderSubtle}`,\n }}\n >\n {row[col.id]}\n </td>\n ))}\n </tr>\n ))}\n {totalRow && (\n <tr style={{ height: 36, background: C.neutral50 }}>\n {columns.map((col, i) => (\n <td\n key={col.id}\n style={{\n ...cellBaseStyle,\n fontWeight: 500,\n textAlign: col.align || (i === 0 ? \"left\" : \"right\"),\n }}\n >\n {totalRow[col.id]}\n </td>\n ))}\n </tr>\n )}\n </tbody>\n </table>\n </div>\n );\n}\n\nexport const DEFAULT_DISTRIBUTION_COLUMNS = [\n { id: \"location\", label: \"Location\", width: 242, align: \"left\" },\n { id: \"calls\", label: \"Calls\", width: 90, align: \"right\" },\n { id: \"percentOfTotal\", label: \"% of Total\", width: 90, align: \"right\" },\n { id: \"avgCsat\", label: \"Avg CSAT\", width: 90, align: \"right\" },\n { id: \"inbound\", label: \"Inbound\", width: 90, align: \"right\" },\n { id: \"client\", label: \"Client\", width: 90, align: \"right\" },\n];\n\nexport default function ReportsDetails({\n className = \"\",\n // Header\n reportTitle = \"\",\n onBack,\n onManage,\n manageLabel = \"\",\n onCreateReport,\n createReportLabel = \"\",\n // History sidebar — the title is computed from `previousReports.length` and\n // rendered as `History (N Reports)`, matching the canonical design. Any\n // `previousReportsTitle` prop passed by older host apps is intentionally\n // ignored so the design stays consistent across consumers.\n previousReports = [],\n selectedReportId = null,\n onSelectReport,\n previousReportsPage = 1,\n previousReportsTotalPages = 1,\n onPreviousReportsPageChange,\n // Labels for the back / next chips in the sidebar paginator. Empty by\n // default so host apps don't see library demo copy.\n paginationBackLabel = \"\",\n paginationNextLabel = \"\",\n // Right column — header row\n reportSubtitle = \"\",\n dateLabel = \"\",\n dateValue = \"\",\n status = \"\",\n shareLabel = \"\",\n onShare,\n // Toggle for the inline \"Link copied!\" toast rendered next to the Share\n // button. Hosts control it because the actual clipboard write happens in\n // their `onShare` callback — they flip this prop to true on success and\n // back to false after the auto-dismiss timer fires.\n shareCopied = false,\n shareCopiedLabel = \"Link copied\",\n // PDF download. Rendered as a chip matching the Share button, immediately\n // before Share. Hidden when `pdfLabel` is empty or `onPdf` is null. The\n // host owns the actual print-to-PDF wiring (typically `window.print()`\n // with `document.title` swapped to the desired filename).\n pdfLabel = \"\",\n onPdf,\n // Summary card\n summaryTitle = \"\",\n summaryBody = \"\",\n // Intro block\n introBold = \"\",\n introMeta = \"\",\n // Distribution section\n distributionTitle = \"\",\n distributionColumns = DEFAULT_DISTRIBUTION_COLUMNS,\n distributionRows = [],\n distributionTotalRow,\n // Observations section\n observationsTitle = \"\",\n observations = [],\n // Closing block (post-observations)\n closingBoldLines = [],\n closingMeta = \"\",\n // Optional slot rendered at the end of the right column, after the closing\n // block. Lets hosts append page-specific content (e.g. a markdown report\n // body) directly under the Summary card so the right column expands with\n // the sidebar instead of leaving a tall gap below the two-column body.\n rightColumnExtra = null,\n}) {\n // History sidebar is collapsible — when collapsed, the aside is hidden and\n // a \"History\" pill button surfaces in the report sub-header to re-expand it.\n const [historyCollapsed, setHistoryCollapsed] = React.useState(false);\n\n return (\n <div\n className={className}\n style={{\n background: C.white,\n fontFamily: FONT_DISPLAY,\n color: C.ink,\n width: \"100%\",\n minWidth: 1192,\n boxSizing: \"border-box\",\n display: \"flex\",\n flexDirection: \"column\",\n }}\n >\n {/* Header — back arrow + title + Manage + + Report */}\n <div\n data-print-hide=\"true\"\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 12,\n padding: \"12px 32px\",\n minHeight: 78,\n boxSizing: \"border-box\",\n }}\n >\n <button\n type=\"button\"\n aria-label=\"Back\"\n onClick={onBack}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 24,\n height: 24,\n background: \"transparent\",\n border: \"none\",\n cursor: onBack ? \"pointer\" : \"default\",\n color: C.ink,\n padding: 0,\n flexShrink: 0,\n }}\n >\n <ArrowLeft size={20} strokeWidth={1.75} />\n </button>\n <div\n style={{\n flex: 1,\n minWidth: 0,\n paddingLeft: 16,\n borderLeft: `1px solid ${C.border}`,\n alignSelf: \"stretch\",\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n <h1\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 24,\n fontWeight: 400,\n color: C.ink,\n margin: 0,\n lineHeight: 1.2,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n }}\n >\n {reportTitle}\n </h1>\n </div>\n {manageLabel && (\n <button\n type=\"button\"\n onClick={() => onManage?.()}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n height: 32,\n padding: \"0 16px\",\n borderRadius: 10,\n border: `1px solid ${C.neutralBorder}`,\n background: C.white,\n cursor: \"pointer\",\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n color: C.neutral800,\n flexShrink: 0,\n }}\n >\n <Settings2 size={20} strokeWidth={1.75} />\n {manageLabel}\n </button>\n )}\n {createReportLabel && (\n <button\n type=\"button\"\n onClick={() => onCreateReport?.()}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n height: 32,\n padding: \"0 16px\",\n borderRadius: 10,\n border: \"none\",\n background: C.neutral850,\n cursor: \"pointer\",\n fontFamily: FONT_DISPLAY,\n fontSize: 16,\n fontWeight: 400,\n color: C.neutral50,\n whiteSpace: \"nowrap\",\n flexShrink: 0,\n }}\n >\n <Plus size={20} strokeWidth={1.75} />\n {createReportLabel}\n </button>\n )}\n </div>\n\n {/* Two-column body */}\n <div\n style={{\n display: \"flex\",\n gap: 24,\n padding: \"24px 32px\",\n borderTop: `1px solid ${C.border}`,\n alignItems: \"flex-start\",\n }}\n >\n {/* Left sidebar — Previous Reports. Hidden when collapsed; the\n \"History\" pill in the right-column sub-header re-expands it. */}\n {!historyCollapsed && (\n <aside\n data-print-hide=\"true\"\n style={{\n width: 360,\n flexShrink: 0,\n borderRight: `1px solid ${C.borderSubtle}`,\n paddingRight: 20,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 12,\n }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 8,\n paddingLeft: 4,\n paddingTop: 12,\n }}\n >\n <span\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n color: C.ink,\n lineHeight: 1.2,\n }}\n >\n {`History (${previousReports.length} ${previousReports.length === 1 ? \"Report\" : \"Reports\"})`}\n </span>\n <button\n type=\"button\"\n aria-label=\"Collapse history\"\n title=\"Collapse history\"\n onClick={() => setHistoryCollapsed(true)}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 24,\n height: 24,\n padding: 0,\n borderRadius: 4,\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n color: C.ink,\n }}\n >\n <PanelLeftClose size={16} strokeWidth={1.75} />\n </button>\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 4 }}>\n {previousReports.map((item, i) => (\n <PreviousReportItem\n key={item.id ?? i}\n item={item}\n selected={item.id != null && item.id === selectedReportId}\n onClick={onSelectReport ? () => onSelectReport(item) : undefined}\n />\n ))}\n </div>\n {previousReportsTotalPages > 1 && (\n <PreviousReportsPagination\n page={previousReportsPage}\n totalPages={previousReportsTotalPages}\n onPageChange={onPreviousReportsPageChange}\n backLabel={paginationBackLabel}\n nextLabel={paginationNextLabel}\n />\n )}\n </aside>\n )}\n\n {/* Right column — report body */}\n <div\n style={{\n flex: 1,\n minWidth: 0,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 16,\n }}\n >\n {/* Sub-header — optional History pill (when collapsed) + title +\n date + status + share (Figma 6103:1127, 6212:905). */}\n {(historyCollapsed || reportSubtitle || dateLabel || dateValue || status || shareLabel) && (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n // Slim gap so long titles get more room before the ellipsis\n // kicks in. Was 60px; that was overkill once the right block\n // started sizing to its own content.\n gap: 24,\n width: \"100%\",\n }}\n >\n {(historyCollapsed || reportSubtitle) && (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n flex: 1,\n minWidth: 0,\n }}\n >\n {historyCollapsed && (\n <button\n type=\"button\"\n aria-label=\"Show history\"\n title=\"Show history\"\n onClick={() => setHistoryCollapsed(false)}\n data-print-hide=\"true\"\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n height: 28,\n padding: \"8px 16px\",\n borderRadius: 10,\n border: `1px solid ${C.neutralBorder}`,\n background: C.white,\n cursor: \"pointer\",\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n lineHeight: \"24px\",\n color: C.neutral800,\n flexShrink: 0,\n }}\n >\n History\n <PanelLeftOpen size={16} strokeWidth={1.75} />\n </button>\n )}\n {reportSubtitle && (\n <TruncatedText\n text={reportSubtitle}\n style={{\n flex: 1,\n minWidth: 0,\n fontFamily: FONT_VARTA,\n fontSize: 20,\n color: C.ink,\n fontWeight: 400,\n lineHeight: \"normal\",\n }}\n />\n )}\n </div>\n )}\n {(dateLabel || dateValue || status || shareLabel || pdfLabel) && (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 10,\n // Size to content (not a fixed width) so adding/removing\n // the Share button doesn't push overflow back into the\n // title's truncation gap. `flexShrink: 0` keeps the date /\n // status / share row from being squeezed — the title's\n // `flex: 1, minWidth: 0` handles the ellipsis instead.\n flexShrink: 0,\n justifyContent: \"flex-end\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 10,\n justifyContent: \"flex-end\",\n flex: 1,\n minWidth: 0,\n }}\n >\n {(dateLabel || dateValue) && (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 4,\n padding: \"8px 0\",\n fontSize: 13,\n color: C.ink,\n lineHeight: 1.2,\n }}\n >\n {dateLabel && (\n <span\n style={{\n fontFamily: FONT_DISPLAY,\n whiteSpace: \"nowrap\",\n }}\n >\n {dateLabel}\n </span>\n )}\n {dateValue && (\n <span\n style={{\n fontFamily: FONT_VARTA,\n whiteSpace: \"nowrap\",\n }}\n >\n {dateValue}\n </span>\n )}\n </div>\n )}\n {status && (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n gap: 4,\n paddingLeft: 16,\n borderLeft: `1px solid ${C.border}`,\n }}\n >\n <StatusPill value={status} />\n </div>\n )}\n </div>\n {pdfLabel && (\n <div data-print-hide=\"true\" style={{ flexShrink: 0 }}>\n <button\n type=\"button\"\n onClick={() => onPdf?.()}\n disabled={!onPdf}\n aria-label=\"Download as PDF\"\n title=\"Download as PDF\"\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 8,\n height: 28,\n padding: \"8px 16px\",\n boxSizing: \"border-box\",\n borderRadius: 10,\n border: \"none\",\n background: C.hoverGrey,\n cursor: onPdf ? \"pointer\" : \"not-allowed\",\n opacity: onPdf ? 1 : 0.6,\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n lineHeight: \"24px\",\n color: C.ink,\n whiteSpace: \"nowrap\",\n }}\n >\n <FileDown size={16} strokeWidth={1.5} />\n {pdfLabel}\n </button>\n </div>\n )}\n {shareLabel && (\n <div data-print-hide=\"true\" style={{ position: \"relative\", flexShrink: 0 }}>\n <button\n type=\"button\"\n onClick={() => onShare?.()}\n disabled={!onShare}\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 8,\n height: 28,\n padding: \"8px 16px\",\n boxSizing: \"border-box\",\n borderRadius: 10,\n border: \"none\",\n background: C.hoverGrey,\n cursor: onShare ? \"pointer\" : \"not-allowed\",\n opacity: onShare ? 1 : 0.6,\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n lineHeight: \"24px\",\n color: C.ink,\n whiteSpace: \"nowrap\",\n }}\n >\n <Share2 size={16} strokeWidth={1.75} />\n {shareLabel}\n </button>\n {shareCopied && (\n <div\n role=\"status\"\n aria-live=\"polite\"\n style={{\n position: \"absolute\",\n top: \"calc(100% + 8px)\",\n right: 0,\n zIndex: 50,\n background: \"#2e3236\",\n color: \"#ffffff\",\n borderRadius: 10,\n boxShadow: \"0 8px 24px rgba(11,11,11,0.18)\",\n padding: \"8px 12px\",\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 8,\n fontFamily: FONT_DISPLAY,\n fontSize: 13,\n lineHeight: 1,\n whiteSpace: \"nowrap\",\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M2.66683 10.6667C1.9335 10.6667 1.3335 10.0667 1.3335 9.33337V2.66671C1.3335 1.93337 1.9335 1.33337 2.66683 1.33337H9.3335C10.0668 1.33337 10.6668 1.93337 10.6668 2.66671M6.66683 5.33337H13.3335C14.0699 5.33337 14.6668 5.93033 14.6668 6.66671V13.3334C14.6668 14.0698 14.0699 14.6667 13.3335 14.6667H6.66683C5.93045 14.6667 5.3335 14.0698 5.3335 13.3334V6.66671C5.3335 5.93033 5.93045 5.33337 6.66683 5.33337Z\"\n stroke=\"#F2F2F0\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n {shareCopiedLabel}\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </div>\n )}\n\n {/* Summary card */}\n {(summaryTitle || summaryBody) && (\n <div\n style={{\n background: C.summaryBg,\n border: `1px solid ${C.border}`,\n borderRadius: 8,\n padding: 24,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 12,\n }}\n >\n {summaryTitle && (\n <span\n style={{\n fontFamily: FONT_DISPLAY,\n fontWeight: 600,\n fontSize: 15,\n color: C.ink,\n lineHeight: 1.2,\n }}\n >\n {summaryTitle}\n </span>\n )}\n {summaryBody && (\n <p\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n color: C.ink,\n margin: 0,\n lineHeight: 1.5,\n }}\n >\n {summaryBody}\n </p>\n )}\n </div>\n )}\n\n {/* Intro block — bold lead + meta line */}\n {(introBold || introMeta) && (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 8 }}>\n {introBold && (\n <p\n style={{\n fontFamily: FONT_DISPLAY,\n fontWeight: 500,\n fontSize: 14,\n color: C.textSecondary,\n margin: 0,\n lineHeight: 1.5,\n }}\n >\n {introBold}\n </p>\n )}\n {introMeta && (\n <p\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n color: C.textMidtone,\n margin: 0,\n lineHeight: 1.5,\n }}\n >\n {introMeta}\n </p>\n )}\n </div>\n )}\n\n {/* Distribution section */}\n {(distributionTitle || distributionRows.length > 0) && (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 12 }}>\n {distributionTitle && <SectionTitle>{distributionTitle}</SectionTitle>}\n {distributionRows.length > 0 && (\n <DistributionTable\n columns={distributionColumns}\n rows={distributionRows}\n totalRow={distributionTotalRow}\n />\n )}\n </div>\n )}\n\n {/* Observations section */}\n {(observationsTitle || observations.length > 0) && (\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n {observationsTitle && <SectionTitle>{observationsTitle}</SectionTitle>}\n {observations.map((text, i) => (\n <p\n key={i}\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n color: C.ink,\n margin: 0,\n padding: \"12px 0 16px\",\n borderBottom: `1px solid ${C.border}`,\n lineHeight: 1.5,\n }}\n >\n {text}\n </p>\n ))}\n </div>\n )}\n\n {/* Closing block */}\n {(closingBoldLines.length > 0 || closingMeta) && (\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: 14, padding: \"12px 0\" }}>\n {closingBoldLines.map((line, i) => (\n <p\n key={i}\n style={{\n fontFamily: FONT_DISPLAY,\n fontWeight: 500,\n fontSize: 14,\n color: C.textSecondary,\n margin: 0,\n lineHeight: 1.5,\n }}\n >\n {line}\n </p>\n ))}\n {closingMeta && (\n <p\n style={{\n fontFamily: FONT_DISPLAY,\n fontSize: 14,\n color: C.textMidtone,\n margin: 0,\n lineHeight: 1.5,\n }}\n >\n {closingMeta}\n </p>\n )}\n </div>\n )}\n\n {rightColumnExtra}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["C","FONT_DISPLAY","DEFAULT_RANGE_OPTIONS","RangeChip","label","active","onClick","jsx","STATUS_ICONS","CloudCheck","GlobeX","Ban","CirclePause","StatusPill","value","key","Icon","jsxs","RowActionButton","e","TogglePill","enabled","ToggleCell","enabledLabel","disabledLabel","onToggle","externalEnabled","setEnabled","React","next","DEFAULT_REPORTS_COLUMNS","ReportsList","className","title","dateRangeLabel","onExport","exportLabel","onCreateReport","createReportLabel","rangeOptions","selectedWindow","onWindowChange","dateRangePicker","dateRange","onDateRangeChange","reports","reportColumns","initialPageSize","onReportClick","onVisibleColumnsChange","onToggleReport","toggleEnabledLabel","toggleDisabledLabel","onEditReport","onDeleteReport","editLabel","deleteLabel","deleteConfirmTitle","deleteConfirmMessage","deleteConfirmCancelLabel","reportsTotal","reportsPage","reportsPageSize","onReportsPageChange","onReportsPageSizeChange","internalDateRange","setInternalDateRange","pendingDeleteRow","setPendingDeleteRow","effectiveDateRange","customRangeActive","handleDateRangeChange","range","handleWindowChange","id","dateLabel","formatLocalDate","computeWindowLabel","columnsWithActions","hasHoverActions","actions","_value","row","showToggle","Pencil","Trash2","CalendarDays","opt","DateRangeButton","Download","Plus","DataTable2","ConfirmationPopup","FONT_VARTA","TruncatedText","As","text","style","rest","ref","isTruncated","setIsTruncated","el","check","observer","formatLocalReportTimestamp","date","datePart","timePart","StatusIcon","size","PreviousReportItem","item","selected","formatted","PaginationChip","disabled","leading","trailing","PreviousReportsPagination","page","totalPages","onPageChange","backLabel","nextLabel","pages","_","i","ChevronLeft","p","ChevronRight","SectionTitle","children","DistributionTable","columns","rows","totalRow","cellBaseStyle","col","rowIdx","DEFAULT_DISTRIBUTION_COLUMNS","ReportsDetails","reportTitle","onBack","onManage","manageLabel","previousReports","selectedReportId","onSelectReport","previousReportsPage","previousReportsTotalPages","onPreviousReportsPageChange","paginationBackLabel","paginationNextLabel","reportSubtitle","dateValue","status","shareLabel","onShare","shareCopied","shareCopiedLabel","pdfLabel","onPdf","summaryTitle","summaryBody","introBold","introMeta","distributionTitle","distributionColumns","distributionRows","distributionTotalRow","observationsTitle","observations","closingBoldLines","closingMeta","rightColumnExtra","historyCollapsed","setHistoryCollapsed","ArrowLeft","Settings2","PanelLeftClose","PanelLeftOpen","FileDown","Share2","line"],"mappings":"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"}
package/dist/index.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./SmallButton.cjs.js"),c=require("./Tooltip.cjs.js"),e=require("./components/primitives.cjs.js"),T=require("./SectionLabel.cjs.js"),P=require("./TextInput.cjs.js"),u=require("./components/data.cjs.js"),m=require("./DataTable2.cjs.js"),r=require("./Toast.cjs.js");require("react/jsx-runtime");require("react");require("lucide-react");const t=require("./SummarySection.cjs.js"),L=require("./AgentLiftAnalysisCard.cjs.js"),_=require("./TourGuideTooltip.cjs.js"),d=require("./SideDrawer.cjs.js");require("react-dom");const p=require("./Timeline.cjs.js"),N=require("./components/media.cjs.js"),l=require("./components/chat.cjs.js"),g=require("./ChatMessage.cjs.js"),n=require("./components/navigation.cjs.js"),i=require("./components/layout.cjs.js"),v=require("./IntegrationCard.cjs.js"),D=require("./components/notifications.cjs.js"),U=require("./PerformancePanel.cjs.js"),A=require("./components/performance.cjs.js"),s=require("./components/Signals.cjs.js"),S=require("./components/reports.cjs.js"),b=require("./components/models.cjs.js"),I=require("./UploadInteraction.cjs.js"),C=require("./components/onboarding.cjs.js"),q=require("./components/login.cjs.js"),a=require("./components/UpdatedInteractionDetails.cjs.js"),O=require("./UpdatedInteractionRecording.cjs.js");require("./sortable.esm.cjs.js");require("./CustomFilterChips.cjs.js");require("motion/react");require("recharts");require("./ConfirmationPopup.cjs.js");require("@descope/react-sdk");require("./colors.cjs.js");exports.Card=o.Card;exports.DetailCard=o.DetailCard;exports.DeviationIndicator=o.DeviationIndicator;exports.SmallButton=o.SmallButton;exports.Tag=o.Tag;exports.Tooltip=c.Tooltip;exports.TooltipContent=c.TooltipContent;exports.TooltipProvider=c.TooltipProvider;exports.TooltipTrigger=c.TooltipTrigger;exports.Badge=e.Badge;exports.Checkbox=e.Checkbox;exports.ColorPalette=e.ColorPalette;exports.FormLabel=e.FormLabel;exports.InlineConfirm=e.InlineConfirm;exports.MultiSelect=e.MultiSelect;exports.Select=e.Select;exports.TextArea=e.TextArea;exports.SectionLabel=T.SectionLabel;exports.Tabs=T.Tabs;exports.TextInput=P.TextInput;exports.DataTable=u.DataTable;exports.DataTableFilters2=u.DataTableFilters2;exports.SummaryStatsPanel=u.SummaryStatsPanel;exports.DataTable2=m.DataTable2;exports.DataTableFilters=m.DataTableFilters;exports.AskCompass=r.AskCompass;exports.AutoSearch=r.AutoSearch;exports.FileUploadSuccessState=r.FileUploadSuccessState;exports.FileUploadingState=r.FileUploadingState;exports.Toast=r.Toast;exports.ToastContainer=r.ToastContainer;exports.ConditionCard=t.ConditionCard;exports.ModelScoreCard=t.ModelScoreCard;exports.ObservationCard=t.ObservationCard;exports.ScoreDriverCard=t.ScoreDriverCard;exports.ScoreDriverCardVariant=t.ScoreDriverCardVariant;exports.SignalCard=t.SignalCard;exports.SmallObservationCard=t.SmallObservationCard;exports.SummarySection=t.SummarySection;exports.AgentLiftAnalysisCard=L.AgentLiftAnalysisCard;exports.TourGuideTooltip=_.TourGuideTooltip;exports.DrawerButton=d.DrawerButton;exports.DrawerInput=d.DrawerInput;exports.DrawerLabel=d.DrawerLabel;exports.SideDrawer=d.SideDrawer;exports.ConversationTurn=p.ConversationTurn;exports.Timeline=p.Timeline;exports.TranscriptCard=p.TranscriptCard;exports.InteractionSummaryCard=N.InteractionSummaryCard;exports.ChatHistoryPanel=l.ChatHistoryPanel;exports.ChatInterface=l.ChatInterface;exports.MessageThread=l.MessageThread;exports.ThinkingIndicator=l.ThinkingIndicator;exports.ChartRenderer=g.ChartRenderer;exports.ChatMessage=g.ChatMessage;exports.NavDropdown=n.NavDropdown;exports.NavDropdownItem=n.NavDropdownItem;exports.NavPill=n.NavPill;exports.NavigationBar=n.NavigationBar;exports.Sidebar=n.Sidebar;exports.StatusIndicator=n.StatusIndicator;exports.DemoProjectBanner=i.DemoProjectBanner;exports.FirstCallScreen=i.FirstCallScreen;exports.LoginForm=i.LoginForm;exports.OnboardingChecklist=i.OnboardingChecklist;exports.SplitPane=i.SplitPane;exports.IntegrationCard=v.IntegrationCard;exports.NotificationItem=D.NotificationItem;exports.NotificationPanel=D.NotificationPanel;exports.PerformanceDetailsPage=U.PerformanceDetailsPage;exports.PerformancePanel=U.PerformancePanel;exports.SupervisorSelect=A.SupervisorSelect;exports.DEFAULT_AGENT_BREAKDOWN_COLUMNS=s.DEFAULT_AGENT_BREAKDOWN_COLUMNS;exports.DEFAULT_RECENT_INTERACTION_COLUMNS=s.DEFAULT_RECENT_INTERACTION_COLUMNS;exports.DEFAULT_SIGNAL_COLUMNS=s.DEFAULT_SIGNAL_COLUMNS;exports.SignalDetailsPage=s.SignalDetailsPage;exports.SignalsListPage=s.SignalsListPage;exports.DEFAULT_DISTRIBUTION_COLUMNS=S.DEFAULT_DISTRIBUTION_COLUMNS;exports.DEFAULT_REPORTS_COLUMNS=S.DEFAULT_REPORTS_COLUMNS;exports.ReportsDetails=S.ReportsDetails;exports.ReportsList=S.ReportsList;exports.OverlayPanel=b.OverlayPanel;exports.UploadEvaluate=I.UploadEvaluate;exports.UploadInteraction=I.UploadInteraction;exports.AddTeammates=C.AddTeammates;exports.ConnectData=C.ConnectData;exports.GettingStarted=C.GettingStarted;exports.LoginPage=q.LoginPage;exports.SignUpPage=q.SignUpPage;exports.UpdatedCoachingSynthesisCard=a.UpdatedCoachingSynthesisCard;exports.UpdatedCompassScore=a.UpdatedCompassScore;exports.UpdatedGuidance=a.UpdatedGuidance;exports.UpdatedInteractionContext=a.UpdatedInteractionContext;exports.UpdatedInteractionDetails=a.UpdatedInteractionDetails;exports.UpdatedInteractionScores=a.UpdatedInteractionScores;exports.UpdatedInteractionSignals=a.UpdatedInteractionSignals;exports.UpdatedProductsServices=a.UpdatedProductsServices;exports.UpdatedInteractionRecording=O.UpdatedInteractionRecording;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./SmallButton.cjs.js"),c=require("./Tooltip.cjs.js"),e=require("./components/primitives.cjs.js"),T=require("./SectionLabel.cjs.js"),P=require("./TextInput.cjs.js"),u=require("./components/data.cjs.js"),g=require("./DataTable2.cjs.js"),r=require("./Toast.cjs.js");require("react/jsx-runtime");require("react");require("lucide-react");const t=require("./SummarySection.cjs.js"),L=require("./AgentLiftAnalysisCard.cjs.js"),_=require("./TourGuideTooltip.cjs.js"),l=require("./SideDrawer.cjs.js");require("react-dom");const p=require("./Timeline.cjs.js"),N=require("./components/media.cjs.js"),d=require("./components/chat.cjs.js"),m=require("./ChatMessage.cjs.js"),n=require("./components/navigation.cjs.js"),i=require("./components/layout.cjs.js"),v=require("./IntegrationCard.cjs.js"),D=require("./components/notifications.cjs.js"),U=require("./PerformancePanel.cjs.js"),A=require("./SupervisorSelect.cjs.js"),s=require("./components/Signals.cjs.js"),S=require("./components/reports.cjs.js"),b=require("./components/models.cjs.js"),I=require("./UploadInteraction.cjs.js"),C=require("./components/onboarding.cjs.js"),q=require("./components/login.cjs.js"),a=require("./components/UpdatedInteractionDetails.cjs.js"),O=require("./UpdatedInteractionRecording.cjs.js");require("./sortable.esm.cjs.js");require("./CustomFilterChips.cjs.js");require("motion/react");require("recharts");require("./ConfirmationPopup.cjs.js");require("@descope/react-sdk");require("./colors.cjs.js");exports.Card=o.Card;exports.DetailCard=o.DetailCard;exports.DeviationIndicator=o.DeviationIndicator;exports.SmallButton=o.SmallButton;exports.Tag=o.Tag;exports.Tooltip=c.Tooltip;exports.TooltipContent=c.TooltipContent;exports.TooltipProvider=c.TooltipProvider;exports.TooltipTrigger=c.TooltipTrigger;exports.Badge=e.Badge;exports.Checkbox=e.Checkbox;exports.ColorPalette=e.ColorPalette;exports.FormLabel=e.FormLabel;exports.InlineConfirm=e.InlineConfirm;exports.MultiSelect=e.MultiSelect;exports.Select=e.Select;exports.TextArea=e.TextArea;exports.SectionLabel=T.SectionLabel;exports.Tabs=T.Tabs;exports.TextInput=P.TextInput;exports.DataTable=u.DataTable;exports.DataTableFilters2=u.DataTableFilters2;exports.SummaryStatsPanel=u.SummaryStatsPanel;exports.DataTable2=g.DataTable2;exports.DataTableFilters=g.DataTableFilters;exports.AskCompass=r.AskCompass;exports.AutoSearch=r.AutoSearch;exports.FileUploadSuccessState=r.FileUploadSuccessState;exports.FileUploadingState=r.FileUploadingState;exports.Toast=r.Toast;exports.ToastContainer=r.ToastContainer;exports.ConditionCard=t.ConditionCard;exports.ModelScoreCard=t.ModelScoreCard;exports.ObservationCard=t.ObservationCard;exports.ScoreDriverCard=t.ScoreDriverCard;exports.ScoreDriverCardVariant=t.ScoreDriverCardVariant;exports.SignalCard=t.SignalCard;exports.SmallObservationCard=t.SmallObservationCard;exports.SummarySection=t.SummarySection;exports.AgentLiftAnalysisCard=L.AgentLiftAnalysisCard;exports.TourGuideTooltip=_.TourGuideTooltip;exports.DrawerButton=l.DrawerButton;exports.DrawerInput=l.DrawerInput;exports.DrawerLabel=l.DrawerLabel;exports.SideDrawer=l.SideDrawer;exports.ConversationTurn=p.ConversationTurn;exports.Timeline=p.Timeline;exports.TranscriptCard=p.TranscriptCard;exports.InteractionSummaryCard=N.InteractionSummaryCard;exports.ChatHistoryPanel=d.ChatHistoryPanel;exports.ChatInterface=d.ChatInterface;exports.MessageThread=d.MessageThread;exports.ThinkingIndicator=d.ThinkingIndicator;exports.ChartRenderer=m.ChartRenderer;exports.ChatMessage=m.ChatMessage;exports.NavDropdown=n.NavDropdown;exports.NavDropdownItem=n.NavDropdownItem;exports.NavPill=n.NavPill;exports.NavigationBar=n.NavigationBar;exports.Sidebar=n.Sidebar;exports.StatusIndicator=n.StatusIndicator;exports.DemoProjectBanner=i.DemoProjectBanner;exports.FirstCallScreen=i.FirstCallScreen;exports.LoginForm=i.LoginForm;exports.OnboardingChecklist=i.OnboardingChecklist;exports.SplitPane=i.SplitPane;exports.IntegrationCard=v.IntegrationCard;exports.NotificationItem=D.NotificationItem;exports.NotificationPanel=D.NotificationPanel;exports.PerformanceDetailsPage=U.PerformanceDetailsPage;exports.PerformancePanel=U.PerformancePanel;exports.SupervisorSelect=A.SupervisorSelect;exports.DEFAULT_AGENT_BREAKDOWN_COLUMNS=s.DEFAULT_AGENT_BREAKDOWN_COLUMNS;exports.DEFAULT_RECENT_INTERACTION_COLUMNS=s.DEFAULT_RECENT_INTERACTION_COLUMNS;exports.DEFAULT_SIGNAL_COLUMNS=s.DEFAULT_SIGNAL_COLUMNS;exports.SignalDetailsPage=s.SignalDetailsPage;exports.SignalsListPage=s.SignalsListPage;exports.DEFAULT_DISTRIBUTION_COLUMNS=S.DEFAULT_DISTRIBUTION_COLUMNS;exports.DEFAULT_REPORTS_COLUMNS=S.DEFAULT_REPORTS_COLUMNS;exports.ReportsDetails=S.ReportsDetails;exports.ReportsList=S.ReportsList;exports.OverlayPanel=b.OverlayPanel;exports.UploadEvaluate=I.UploadEvaluate;exports.UploadInteraction=I.UploadInteraction;exports.AddTeammates=C.AddTeammates;exports.ConnectData=C.ConnectData;exports.GettingStarted=C.GettingStarted;exports.LoginPage=q.LoginPage;exports.SignUpPage=q.SignUpPage;exports.UpdatedCoachingSynthesisCard=a.UpdatedCoachingSynthesisCard;exports.UpdatedCompassScore=a.UpdatedCompassScore;exports.UpdatedGuidance=a.UpdatedGuidance;exports.UpdatedInteractionContext=a.UpdatedInteractionContext;exports.UpdatedInteractionDetails=a.UpdatedInteractionDetails;exports.UpdatedInteractionScores=a.UpdatedInteractionScores;exports.UpdatedInteractionSignals=a.UpdatedInteractionSignals;exports.UpdatedProductsServices=a.UpdatedProductsServices;exports.UpdatedInteractionRecording=O.UpdatedInteractionRecording;
2
2
  //# sourceMappingURL=index.cjs.js.map
package/dist/index.es.js CHANGED
@@ -23,7 +23,7 @@ import { DemoProjectBanner as Ba, FirstCallScreen as wa, LoginForm as Ga, Onboar
23
23
  import { I as Ka } from "./IntegrationCard.es.js";
24
24
  import { NotificationItem as Wa, NotificationPanel as qa } from "./components/notifications.es.js";
25
25
  import { a as Ja, P as Qa } from "./PerformancePanel.es.js";
26
- import { SupervisorSelect as Ya } from "./components/performance.es.js";
26
+ import { S as Ya } from "./SupervisorSelect.es.js";
27
27
  import { DEFAULT_AGENT_BREAKDOWN_COLUMNS as $a, DEFAULT_RECENT_INTERACTION_COLUMNS as ar, DEFAULT_SIGNAL_COLUMNS as rr, SignalDetailsPage as er, SignalsListPage as tr } from "./components/Signals.es.js";
28
28
  import { DEFAULT_DISTRIBUTION_COLUMNS as ir, DEFAULT_REPORTS_COLUMNS as sr, ReportsDetails as nr, ReportsList as pr } from "./components/reports.es.js";
29
29
  import { OverlayPanel as dr } from "./components/models.es.js";