chordia-ui 3.4.2 → 3.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Timeline.cjs.js +6 -1
- package/dist/Timeline.cjs.js.map +1 -1
- package/dist/Timeline.es.js +597 -129
- package/dist/Timeline.es.js.map +1 -1
- package/dist/UpdatedInteractionRecording.cjs.js +1 -1
- package/dist/UpdatedInteractionRecording.cjs.js.map +1 -1
- package/dist/UpdatedInteractionRecording.es.js +260 -258
- package/dist/UpdatedInteractionRecording.es.js.map +1 -1
- package/dist/components/UpdatedInteractionDetails.cjs.js +2 -2
- package/dist/components/UpdatedInteractionDetails.cjs.js.map +1 -1
- package/dist/components/UpdatedInteractionDetails.es.js +349 -322
- package/dist/components/UpdatedInteractionDetails.es.js.map +1 -1
- package/dist/components/media.cjs.js +1 -1
- package/dist/components/media.cjs.js.map +1 -1
- package/dist/components/media.es.js +8 -9
- package/dist/components/media.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +52 -53
- package/dist/index.es.js.map +1 -1
- package/dist/pages/interactionDetails.cjs.js +2 -2
- package/dist/pages/interactionDetails.cjs.js.map +1 -1
- package/dist/pages/interactionDetails.es.js +16 -17
- package/dist/pages/interactionDetails.es.js.map +1 -1
- package/package.json +1 -1
- package/src/components/UpdatedInteractionDetails/UpdatedInteractionDetails.jsx +35 -1
- package/src/components/UpdatedInteractionDetails/UpdatedInteractionRecording.jsx +142 -124
- package/src/components/UpdatedInteractionDetails/UpdatedInteractionSignals.jsx +14 -6
- package/dist/TranscriptCard.cjs.js +0 -7
- package/dist/TranscriptCard.cjs.js.map +0 -1
- package/dist/TranscriptCard.es.js +0 -474
- package/dist/TranscriptCard.es.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const x=require("../Timeline.cjs.js"),r=require("react/jsx-runtime"),w=require("react");require("lucide-react");const C={inbound:"var(--rail-discovery, #5E88B0)",outbound:"var(--rail-purple, #9B7AA8)",internal:"var(--rail-outcome, #6B7C93)",chat:"var(--rail-teal, #7BA89D)"},D=t=>{if(t==null||t<=0)return null;const i=Math.floor(t/3600),o=Math.floor(t%3600/60),s=Math.round(t%60);return i>0?`${i}:${String(o).padStart(2,"0")}:${String(s).padStart(2,"0")}`:`${o}:${String(s).padStart(2,"0")}`},R=t=>{if(!t)return null;try{return new Date(t).toLocaleDateString("en-US",{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return null}};function W({title:t,agentName:i,customerName:o,date:s,duration:y,direction:u,driver:v,sentiment:c,disposition:h,scores:p,tags:f,railColor:S,isActive:d=!1,onClick:g,children:T}){const j=S||C[u]||"var(--rail-outcome, #6B7C93)",b=D(y),m=R(s),l=[];i&&l.push(i),o&&l.push(o),m&&l.push(m),b&&l.push(b);const a=[];return u&&a.push({label:u}),v&&a.push({label:v}),c&&a.push({label:c}),h&&a.push({label:h}),f&&a.push(...f),r.jsxs("div",{onClick:g,style:{position:"relative",padding:"10px 14px 10px 18px",borderRadius:"var(--radius-md, 8px)",overflow:"hidden",background:d?"var(--hover-warm-subtle, rgba(231,212,162,0.08))":"var(--paper-elevated, rgba(255,255,255,0.82))",border:`1px solid ${d?"var(--border-hover, rgba(52,58,64,0.18))":"var(--border, rgba(52,58,64,0.12))"}`,cursor:g?"pointer":"default",transition:"background 0.15s, border-color 0.15s"},onMouseEnter:e=>{!d&&g&&(e.currentTarget.style.background="var(--hover-warm-subtle, rgba(231,212,162,0.08))",e.currentTarget.style.borderColor="var(--border-hover, rgba(52,58,64,0.18))")},onMouseLeave:e=>{d||(e.currentTarget.style.background="var(--paper-elevated, rgba(255,255,255,0.82))",e.currentTarget.style.borderColor="var(--border, rgba(52,58,64,0.12))")},children:[r.jsx("div",{style:{position:"absolute",left:0,top:0,bottom:0,width:"var(--rail-width-thin, 4px)",backgroundColor:j,borderRadius:"var(--radius-md, 8px) 0 0 var(--radius-md, 8px)"}}),r.jsxs("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:12},children:[r.jsxs("div",{style:{flex:1,minWidth:0},children:[t?r.jsx("div",{style:{fontSize:"var(--text-md, 13px)",fontWeight:550,color:"var(--text-strong, rgba(30,33,37,0.92))",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",lineHeight:"var(--leading-snug, 1.375)"},children:t}):null,l.length>0?r.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:6,marginTop:3,fontSize:"var(--text-sm, 11px)",color:"var(--text-muted, rgba(30,33,37,0.56))",lineHeight:"var(--leading-snug, 1.375)"},children:l.map((e,n)=>r.jsxs(w.Fragment,{children:[n>0?r.jsx("span",{style:{color:"var(--text-xfaint, rgba(30,33,37,0.28))"},children:"·"}):null,r.jsx("span",{children:e})]},n))}):null,a.length>0?r.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:4,marginTop:6},children:a.map((e,n)=>r.jsx("span",{style:{display:"inline-block",fontSize:"var(--text-xs, 10px)",fontWeight:500,padding:"1px 7px",borderRadius:999,background:"var(--paper, rgba(255,255,255,0.78))",border:"1px solid var(--border-subtle, rgba(52,58,64,0.08))",color:e.color||"var(--text-faint, rgba(30,33,37,0.36))",textTransform:"capitalize",letterSpacing:"0.01em",lineHeight:1.5},children:e.label},n))}):null]}),p&&p.length>0?r.jsx("div",{style:{display:"flex",gap:10,flexShrink:0,alignItems:"flex-start",paddingTop:2},children:p.map((e,n)=>r.jsxs("div",{style:{textAlign:"center",minWidth:28},children:[r.jsx("div",{style:{fontSize:"var(--text-lg, 14px)",fontWeight:600,color:"var(--text-strong, rgba(30,33,37,0.92))",fontFamily:"var(--font-mono, monospace)",lineHeight:1.2},children:e.value!=null?Math.round(e.value):"—"}),r.jsx("div",{style:{fontSize:"var(--text-xxs, 9px)",fontWeight:650,textTransform:"uppercase",letterSpacing:"var(--tracking-label, 0.16em)",color:"var(--text-xfaint, rgba(30,33,37,0.28))",marginTop:1},children:e.label})]},n))}):null]}),T]})}exports.ConversationTurn=x.ConversationTurn;exports.Timeline=x.Timeline;exports.TranscriptCard=x.TranscriptCard;exports.InteractionSummaryCard=W;
|
|
2
2
|
//# sourceMappingURL=media.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.cjs.js","sources":["../../src/components/media/InteractionSummaryCard.jsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n/**\n * Direction rail color mapping.\n * Uses rail colors for categorization, not judgment.\n */\nconst DIRECTION_COLORS = {\n inbound: \"var(--rail-discovery, #5E88B0)\",\n outbound: \"var(--rail-purple, #9B7AA8)\",\n internal: \"var(--rail-outcome, #6B7C93)\",\n chat: \"var(--rail-teal, #7BA89D)\",\n};\n\n/**\n * Format seconds to mm:ss or h:mm:ss\n */\nconst formatDuration = (seconds) => {\n if (seconds == null || seconds <= 0) return null;\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = Math.round(seconds % 60);\n if (h > 0) return `${h}:${String(m).padStart(2, \"0\")}:${String(s).padStart(2, \"0\")}`;\n return `${m}:${String(s).padStart(2, \"0\")}`;\n};\n\n/**\n * Format a date string to a compact, readable form.\n */\nconst formatDate = (dateStr) => {\n if (!dateStr) return null;\n try {\n return new Date(dateStr).toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n } catch {\n return null;\n }\n};\n\n/**\n * InteractionCard Component\n * Displays a summary card for a completed interaction (call/chat).\n * Designed for use in history lists, search results, and monitoring views.\n *\n * Uses the Chordia design language: left rail, muted metadata,\n * non-judgmental score display, subtle hover states.\n *\n * @param {Object} props\n * @param {string} [props.title] - Primary label (e.g., call purpose, one-liner)\n * @param {string} [props.agentName] - Agent who handled the interaction\n * @param {string} [props.customerName] - Customer name (omit if unknown)\n * @param {string} [props.date] - ISO date string for when the interaction occurred\n * @param {number} [props.duration] - Duration in seconds\n * @param {string} [props.direction] - \"inbound\" | \"outbound\" | \"internal\" | \"chat\"\n * @param {string} [props.driver] - Call driver / reason\n * @param {string} [props.sentiment] - Customer sentiment label\n * @param {string} [props.disposition] - Call disposition / outcome label\n * @param {Array} [props.scores] - [{label, value}] score metrics to display\n * @param {Array} [props.tags] - [{label, color?}] additional tag pills\n * @param {string} [props.railColor] - Override the left rail color\n * @param {boolean} [props.isActive] - Whether this card is currently selected/active\n * @param {Function} [props.onClick] - Click handler\n * @param {React.ReactNode} [props.children] - Additional content below the card body\n */\nexport default function InteractionCard({\n title,\n agentName,\n customerName,\n date,\n duration,\n direction,\n driver,\n sentiment,\n disposition,\n scores,\n tags,\n railColor,\n isActive = false,\n onClick,\n children,\n}) {\n const resolvedRailColor =\n railColor || DIRECTION_COLORS[direction] || \"var(--rail-outcome, #6B7C93)\";\n const formattedDuration = formatDuration(duration);\n const formattedDate = formatDate(date);\n\n // Collect metadata items\n const metaItems = [];\n if (agentName) metaItems.push(agentName);\n if (customerName) metaItems.push(customerName);\n if (formattedDate) metaItems.push(formattedDate);\n if (formattedDuration) metaItems.push(formattedDuration);\n\n // Collect tag items from explicit tags + contextual fields\n const allTags = [];\n if (direction) allTags.push({ label: direction });\n if (driver) allTags.push({ label: driver });\n if (sentiment) allTags.push({ label: sentiment });\n if (disposition) allTags.push({ label: disposition });\n if (tags) allTags.push(...tags);\n\n return (\n <div\n onClick={onClick}\n style={{\n position: \"relative\",\n padding: \"10px 14px 10px 18px\",\n borderRadius: \"var(--radius-md, 8px)\",\n overflow: \"hidden\",\n background: isActive\n ? \"var(--hover-warm-subtle, rgba(231,212,162,0.08))\"\n : \"var(--paper-elevated, rgba(255,255,255,0.82))\",\n border: `1px solid ${\n isActive\n ? \"var(--border-hover, rgba(52,58,64,0.18))\"\n : \"var(--border, rgba(52,58,64,0.12))\"\n }`,\n cursor: onClick ? \"pointer\" : \"default\",\n transition: \"background 0.15s, border-color 0.15s\",\n }}\n onMouseEnter={(e) => {\n if (!isActive && onClick) {\n e.currentTarget.style.background =\n \"var(--hover-warm-subtle, rgba(231,212,162,0.08))\";\n e.currentTarget.style.borderColor =\n \"var(--border-hover, rgba(52,58,64,0.18))\";\n }\n }}\n onMouseLeave={(e) => {\n if (!isActive) {\n e.currentTarget.style.background =\n \"var(--paper-elevated, rgba(255,255,255,0.82))\";\n e.currentTarget.style.borderColor =\n \"var(--border, rgba(52,58,64,0.12))\";\n }\n }}\n >\n {/* Left rail */}\n <div\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n width: \"var(--rail-width-thin, 4px)\",\n backgroundColor: resolvedRailColor,\n borderRadius: \"var(--radius-md, 8px) 0 0 var(--radius-md, 8px)\",\n }}\n />\n\n {/* Main content row */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: 12,\n }}\n >\n {/* Left: title + metadata */}\n <div style={{ flex: 1, minWidth: 0 }}>\n {/* Title */}\n {title ? (\n <div\n style={{\n fontSize: \"var(--text-md, 13px)\",\n fontWeight: 550,\n color: \"var(--text-strong, rgba(30,33,37,0.92))\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n lineHeight: \"var(--leading-snug, 1.375)\",\n }}\n >\n {title}\n </div>\n ) : null}\n\n {/* Metadata row */}\n {metaItems.length > 0 ? (\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: 6,\n marginTop: 3,\n fontSize: \"var(--text-sm, 11px)\",\n color: \"var(--text-muted, rgba(30,33,37,0.56))\",\n lineHeight: \"var(--leading-snug, 1.375)\",\n }}\n >\n {metaItems.map((item, i) => (\n <React.Fragment key={i}>\n {i > 0 ? (\n <span\n style={{\n color: \"var(--text-xfaint, rgba(30,33,37,0.28))\",\n }}\n >\n ·\n </span>\n ) : null}\n <span>{item}</span>\n </React.Fragment>\n ))}\n </div>\n ) : null}\n\n {/* Tags row */}\n {allTags.length > 0 ? (\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: 4,\n marginTop: 6,\n }}\n >\n {allTags.map((tag, i) => (\n <span\n key={i}\n style={{\n display: \"inline-block\",\n fontSize: \"var(--text-xs, 10px)\",\n fontWeight: 500,\n padding: \"1px 7px\",\n borderRadius: 999,\n background: \"var(--paper, rgba(255,255,255,0.78))\",\n border: \"1px solid var(--border-subtle, rgba(52,58,64,0.08))\",\n color: tag.color || \"var(--text-faint, rgba(30,33,37,0.36))\",\n textTransform: \"capitalize\",\n letterSpacing: \"0.01em\",\n lineHeight: 1.5,\n }}\n >\n {tag.label}\n </span>\n ))}\n </div>\n ) : null}\n </div>\n\n {/* Right: score pills */}\n {scores && scores.length > 0 ? (\n <div\n style={{\n display: \"flex\",\n gap: 10,\n flexShrink: 0,\n alignItems: \"flex-start\",\n paddingTop: 2,\n }}\n >\n {scores.map((score, i) => (\n <div key={i} style={{ textAlign: \"center\", minWidth: 28 }}>\n <div\n style={{\n fontSize: \"var(--text-lg, 14px)\",\n fontWeight: 600,\n color: \"var(--text-strong, rgba(30,33,37,0.92))\",\n fontFamily: \"var(--font-mono, monospace)\",\n lineHeight: 1.2,\n }}\n >\n {score.value != null ? Math.round(score.value) : \"—\"}\n </div>\n <div\n style={{\n fontSize: \"var(--text-xxs, 9px)\",\n fontWeight: 650,\n textTransform: \"uppercase\",\n letterSpacing: \"var(--tracking-label, 0.16em)\",\n color: \"var(--text-xfaint, rgba(30,33,37,0.28))\",\n marginTop: 1,\n }}\n >\n {score.label}\n </div>\n </div>\n ))}\n </div>\n ) : null}\n </div>\n\n {/* Optional children slot */}\n {children}\n </div>\n );\n}\n"],"names":["DIRECTION_COLORS","formatDuration","seconds","h","m","formatDate","dateStr","InteractionCard","title","agentName","customerName","date","duration","direction","driver","sentiment","disposition","scores","tags","railColor","isActive","onClick","children","resolvedRailColor","formattedDuration","formattedDate","metaItems","allTags","jsxs","jsx","item","i","React","tag","score"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"media.cjs.js","sources":["../../src/components/media/InteractionSummaryCard.jsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n/**\n * Direction rail color mapping.\n * Uses rail colors for categorization, not judgment.\n */\nconst DIRECTION_COLORS = {\n inbound: \"var(--rail-discovery, #5E88B0)\",\n outbound: \"var(--rail-purple, #9B7AA8)\",\n internal: \"var(--rail-outcome, #6B7C93)\",\n chat: \"var(--rail-teal, #7BA89D)\",\n};\n\n/**\n * Format seconds to mm:ss or h:mm:ss\n */\nconst formatDuration = (seconds) => {\n if (seconds == null || seconds <= 0) return null;\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = Math.round(seconds % 60);\n if (h > 0) return `${h}:${String(m).padStart(2, \"0\")}:${String(s).padStart(2, \"0\")}`;\n return `${m}:${String(s).padStart(2, \"0\")}`;\n};\n\n/**\n * Format a date string to a compact, readable form.\n */\nconst formatDate = (dateStr) => {\n if (!dateStr) return null;\n try {\n return new Date(dateStr).toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n } catch {\n return null;\n }\n};\n\n/**\n * InteractionCard Component\n * Displays a summary card for a completed interaction (call/chat).\n * Designed for use in history lists, search results, and monitoring views.\n *\n * Uses the Chordia design language: left rail, muted metadata,\n * non-judgmental score display, subtle hover states.\n *\n * @param {Object} props\n * @param {string} [props.title] - Primary label (e.g., call purpose, one-liner)\n * @param {string} [props.agentName] - Agent who handled the interaction\n * @param {string} [props.customerName] - Customer name (omit if unknown)\n * @param {string} [props.date] - ISO date string for when the interaction occurred\n * @param {number} [props.duration] - Duration in seconds\n * @param {string} [props.direction] - \"inbound\" | \"outbound\" | \"internal\" | \"chat\"\n * @param {string} [props.driver] - Call driver / reason\n * @param {string} [props.sentiment] - Customer sentiment label\n * @param {string} [props.disposition] - Call disposition / outcome label\n * @param {Array} [props.scores] - [{label, value}] score metrics to display\n * @param {Array} [props.tags] - [{label, color?}] additional tag pills\n * @param {string} [props.railColor] - Override the left rail color\n * @param {boolean} [props.isActive] - Whether this card is currently selected/active\n * @param {Function} [props.onClick] - Click handler\n * @param {React.ReactNode} [props.children] - Additional content below the card body\n */\nexport default function InteractionCard({\n title,\n agentName,\n customerName,\n date,\n duration,\n direction,\n driver,\n sentiment,\n disposition,\n scores,\n tags,\n railColor,\n isActive = false,\n onClick,\n children,\n}) {\n const resolvedRailColor =\n railColor || DIRECTION_COLORS[direction] || \"var(--rail-outcome, #6B7C93)\";\n const formattedDuration = formatDuration(duration);\n const formattedDate = formatDate(date);\n\n // Collect metadata items\n const metaItems = [];\n if (agentName) metaItems.push(agentName);\n if (customerName) metaItems.push(customerName);\n if (formattedDate) metaItems.push(formattedDate);\n if (formattedDuration) metaItems.push(formattedDuration);\n\n // Collect tag items from explicit tags + contextual fields\n const allTags = [];\n if (direction) allTags.push({ label: direction });\n if (driver) allTags.push({ label: driver });\n if (sentiment) allTags.push({ label: sentiment });\n if (disposition) allTags.push({ label: disposition });\n if (tags) allTags.push(...tags);\n\n return (\n <div\n onClick={onClick}\n style={{\n position: \"relative\",\n padding: \"10px 14px 10px 18px\",\n borderRadius: \"var(--radius-md, 8px)\",\n overflow: \"hidden\",\n background: isActive\n ? \"var(--hover-warm-subtle, rgba(231,212,162,0.08))\"\n : \"var(--paper-elevated, rgba(255,255,255,0.82))\",\n border: `1px solid ${\n isActive\n ? \"var(--border-hover, rgba(52,58,64,0.18))\"\n : \"var(--border, rgba(52,58,64,0.12))\"\n }`,\n cursor: onClick ? \"pointer\" : \"default\",\n transition: \"background 0.15s, border-color 0.15s\",\n }}\n onMouseEnter={(e) => {\n if (!isActive && onClick) {\n e.currentTarget.style.background =\n \"var(--hover-warm-subtle, rgba(231,212,162,0.08))\";\n e.currentTarget.style.borderColor =\n \"var(--border-hover, rgba(52,58,64,0.18))\";\n }\n }}\n onMouseLeave={(e) => {\n if (!isActive) {\n e.currentTarget.style.background =\n \"var(--paper-elevated, rgba(255,255,255,0.82))\";\n e.currentTarget.style.borderColor =\n \"var(--border, rgba(52,58,64,0.12))\";\n }\n }}\n >\n {/* Left rail */}\n <div\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n width: \"var(--rail-width-thin, 4px)\",\n backgroundColor: resolvedRailColor,\n borderRadius: \"var(--radius-md, 8px) 0 0 var(--radius-md, 8px)\",\n }}\n />\n\n {/* Main content row */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: 12,\n }}\n >\n {/* Left: title + metadata */}\n <div style={{ flex: 1, minWidth: 0 }}>\n {/* Title */}\n {title ? (\n <div\n style={{\n fontSize: \"var(--text-md, 13px)\",\n fontWeight: 550,\n color: \"var(--text-strong, rgba(30,33,37,0.92))\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n lineHeight: \"var(--leading-snug, 1.375)\",\n }}\n >\n {title}\n </div>\n ) : null}\n\n {/* Metadata row */}\n {metaItems.length > 0 ? (\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: 6,\n marginTop: 3,\n fontSize: \"var(--text-sm, 11px)\",\n color: \"var(--text-muted, rgba(30,33,37,0.56))\",\n lineHeight: \"var(--leading-snug, 1.375)\",\n }}\n >\n {metaItems.map((item, i) => (\n <React.Fragment key={i}>\n {i > 0 ? (\n <span\n style={{\n color: \"var(--text-xfaint, rgba(30,33,37,0.28))\",\n }}\n >\n ·\n </span>\n ) : null}\n <span>{item}</span>\n </React.Fragment>\n ))}\n </div>\n ) : null}\n\n {/* Tags row */}\n {allTags.length > 0 ? (\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: 4,\n marginTop: 6,\n }}\n >\n {allTags.map((tag, i) => (\n <span\n key={i}\n style={{\n display: \"inline-block\",\n fontSize: \"var(--text-xs, 10px)\",\n fontWeight: 500,\n padding: \"1px 7px\",\n borderRadius: 999,\n background: \"var(--paper, rgba(255,255,255,0.78))\",\n border: \"1px solid var(--border-subtle, rgba(52,58,64,0.08))\",\n color: tag.color || \"var(--text-faint, rgba(30,33,37,0.36))\",\n textTransform: \"capitalize\",\n letterSpacing: \"0.01em\",\n lineHeight: 1.5,\n }}\n >\n {tag.label}\n </span>\n ))}\n </div>\n ) : null}\n </div>\n\n {/* Right: score pills */}\n {scores && scores.length > 0 ? (\n <div\n style={{\n display: \"flex\",\n gap: 10,\n flexShrink: 0,\n alignItems: \"flex-start\",\n paddingTop: 2,\n }}\n >\n {scores.map((score, i) => (\n <div key={i} style={{ textAlign: \"center\", minWidth: 28 }}>\n <div\n style={{\n fontSize: \"var(--text-lg, 14px)\",\n fontWeight: 600,\n color: \"var(--text-strong, rgba(30,33,37,0.92))\",\n fontFamily: \"var(--font-mono, monospace)\",\n lineHeight: 1.2,\n }}\n >\n {score.value != null ? Math.round(score.value) : \"—\"}\n </div>\n <div\n style={{\n fontSize: \"var(--text-xxs, 9px)\",\n fontWeight: 650,\n textTransform: \"uppercase\",\n letterSpacing: \"var(--tracking-label, 0.16em)\",\n color: \"var(--text-xfaint, rgba(30,33,37,0.28))\",\n marginTop: 1,\n }}\n >\n {score.label}\n </div>\n </div>\n ))}\n </div>\n ) : null}\n </div>\n\n {/* Optional children slot */}\n {children}\n </div>\n );\n}\n"],"names":["DIRECTION_COLORS","formatDuration","seconds","h","m","formatDate","dateStr","InteractionCard","title","agentName","customerName","date","duration","direction","driver","sentiment","disposition","scores","tags","railColor","isActive","onClick","children","resolvedRailColor","formattedDuration","formattedDate","metaItems","allTags","jsxs","jsx","item","i","React","tag","score"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { C as H,
|
|
2
|
-
import { T as E } from "../Timeline.es.js";
|
|
1
|
+
import { C as H, a as O, T as j } from "../Timeline.es.js";
|
|
3
2
|
import { jsxs as d, jsx as a } from "react/jsx-runtime";
|
|
4
3
|
import C from "react";
|
|
5
4
|
import "lucide-react";
|
|
@@ -36,18 +35,18 @@ function M({
|
|
|
36
35
|
direction: u,
|
|
37
36
|
driver: h,
|
|
38
37
|
sentiment: v,
|
|
39
|
-
disposition:
|
|
38
|
+
disposition: b,
|
|
40
39
|
scores: g,
|
|
41
|
-
tags:
|
|
40
|
+
tags: c,
|
|
42
41
|
railColor: S,
|
|
43
42
|
isActive: s = !1,
|
|
44
43
|
onClick: f,
|
|
45
44
|
children: T
|
|
46
45
|
}) {
|
|
47
|
-
const w = S || D[u] || "var(--rail-outcome, #6B7C93)",
|
|
48
|
-
o && l.push(o), i && l.push(i), m && l.push(m),
|
|
46
|
+
const w = S || D[u] || "var(--rail-outcome, #6B7C93)", x = W(y), m = k(p), l = [];
|
|
47
|
+
o && l.push(o), i && l.push(i), m && l.push(m), x && l.push(x);
|
|
49
48
|
const e = [];
|
|
50
|
-
return u && e.push({ label: u }), h && e.push({ label: h }), v && e.push({ label: v }),
|
|
49
|
+
return u && e.push({ label: u }), h && e.push({ label: h }), v && e.push({ label: v }), b && e.push({ label: b }), c && e.push(...c), /* @__PURE__ */ d(
|
|
51
50
|
"div",
|
|
52
51
|
{
|
|
53
52
|
onClick: f,
|
|
@@ -218,7 +217,7 @@ function M({
|
|
|
218
217
|
export {
|
|
219
218
|
H as ConversationTurn,
|
|
220
219
|
M as InteractionSummaryCard,
|
|
221
|
-
|
|
222
|
-
|
|
220
|
+
O as Timeline,
|
|
221
|
+
j as TranscriptCard
|
|
223
222
|
};
|
|
224
223
|
//# sourceMappingURL=media.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.es.js","sources":["../../src/components/media/InteractionSummaryCard.jsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n/**\n * Direction rail color mapping.\n * Uses rail colors for categorization, not judgment.\n */\nconst DIRECTION_COLORS = {\n inbound: \"var(--rail-discovery, #5E88B0)\",\n outbound: \"var(--rail-purple, #9B7AA8)\",\n internal: \"var(--rail-outcome, #6B7C93)\",\n chat: \"var(--rail-teal, #7BA89D)\",\n};\n\n/**\n * Format seconds to mm:ss or h:mm:ss\n */\nconst formatDuration = (seconds) => {\n if (seconds == null || seconds <= 0) return null;\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = Math.round(seconds % 60);\n if (h > 0) return `${h}:${String(m).padStart(2, \"0\")}:${String(s).padStart(2, \"0\")}`;\n return `${m}:${String(s).padStart(2, \"0\")}`;\n};\n\n/**\n * Format a date string to a compact, readable form.\n */\nconst formatDate = (dateStr) => {\n if (!dateStr) return null;\n try {\n return new Date(dateStr).toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n } catch {\n return null;\n }\n};\n\n/**\n * InteractionCard Component\n * Displays a summary card for a completed interaction (call/chat).\n * Designed for use in history lists, search results, and monitoring views.\n *\n * Uses the Chordia design language: left rail, muted metadata,\n * non-judgmental score display, subtle hover states.\n *\n * @param {Object} props\n * @param {string} [props.title] - Primary label (e.g., call purpose, one-liner)\n * @param {string} [props.agentName] - Agent who handled the interaction\n * @param {string} [props.customerName] - Customer name (omit if unknown)\n * @param {string} [props.date] - ISO date string for when the interaction occurred\n * @param {number} [props.duration] - Duration in seconds\n * @param {string} [props.direction] - \"inbound\" | \"outbound\" | \"internal\" | \"chat\"\n * @param {string} [props.driver] - Call driver / reason\n * @param {string} [props.sentiment] - Customer sentiment label\n * @param {string} [props.disposition] - Call disposition / outcome label\n * @param {Array} [props.scores] - [{label, value}] score metrics to display\n * @param {Array} [props.tags] - [{label, color?}] additional tag pills\n * @param {string} [props.railColor] - Override the left rail color\n * @param {boolean} [props.isActive] - Whether this card is currently selected/active\n * @param {Function} [props.onClick] - Click handler\n * @param {React.ReactNode} [props.children] - Additional content below the card body\n */\nexport default function InteractionCard({\n title,\n agentName,\n customerName,\n date,\n duration,\n direction,\n driver,\n sentiment,\n disposition,\n scores,\n tags,\n railColor,\n isActive = false,\n onClick,\n children,\n}) {\n const resolvedRailColor =\n railColor || DIRECTION_COLORS[direction] || \"var(--rail-outcome, #6B7C93)\";\n const formattedDuration = formatDuration(duration);\n const formattedDate = formatDate(date);\n\n // Collect metadata items\n const metaItems = [];\n if (agentName) metaItems.push(agentName);\n if (customerName) metaItems.push(customerName);\n if (formattedDate) metaItems.push(formattedDate);\n if (formattedDuration) metaItems.push(formattedDuration);\n\n // Collect tag items from explicit tags + contextual fields\n const allTags = [];\n if (direction) allTags.push({ label: direction });\n if (driver) allTags.push({ label: driver });\n if (sentiment) allTags.push({ label: sentiment });\n if (disposition) allTags.push({ label: disposition });\n if (tags) allTags.push(...tags);\n\n return (\n <div\n onClick={onClick}\n style={{\n position: \"relative\",\n padding: \"10px 14px 10px 18px\",\n borderRadius: \"var(--radius-md, 8px)\",\n overflow: \"hidden\",\n background: isActive\n ? \"var(--hover-warm-subtle, rgba(231,212,162,0.08))\"\n : \"var(--paper-elevated, rgba(255,255,255,0.82))\",\n border: `1px solid ${\n isActive\n ? \"var(--border-hover, rgba(52,58,64,0.18))\"\n : \"var(--border, rgba(52,58,64,0.12))\"\n }`,\n cursor: onClick ? \"pointer\" : \"default\",\n transition: \"background 0.15s, border-color 0.15s\",\n }}\n onMouseEnter={(e) => {\n if (!isActive && onClick) {\n e.currentTarget.style.background =\n \"var(--hover-warm-subtle, rgba(231,212,162,0.08))\";\n e.currentTarget.style.borderColor =\n \"var(--border-hover, rgba(52,58,64,0.18))\";\n }\n }}\n onMouseLeave={(e) => {\n if (!isActive) {\n e.currentTarget.style.background =\n \"var(--paper-elevated, rgba(255,255,255,0.82))\";\n e.currentTarget.style.borderColor =\n \"var(--border, rgba(52,58,64,0.12))\";\n }\n }}\n >\n {/* Left rail */}\n <div\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n width: \"var(--rail-width-thin, 4px)\",\n backgroundColor: resolvedRailColor,\n borderRadius: \"var(--radius-md, 8px) 0 0 var(--radius-md, 8px)\",\n }}\n />\n\n {/* Main content row */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: 12,\n }}\n >\n {/* Left: title + metadata */}\n <div style={{ flex: 1, minWidth: 0 }}>\n {/* Title */}\n {title ? (\n <div\n style={{\n fontSize: \"var(--text-md, 13px)\",\n fontWeight: 550,\n color: \"var(--text-strong, rgba(30,33,37,0.92))\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n lineHeight: \"var(--leading-snug, 1.375)\",\n }}\n >\n {title}\n </div>\n ) : null}\n\n {/* Metadata row */}\n {metaItems.length > 0 ? (\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: 6,\n marginTop: 3,\n fontSize: \"var(--text-sm, 11px)\",\n color: \"var(--text-muted, rgba(30,33,37,0.56))\",\n lineHeight: \"var(--leading-snug, 1.375)\",\n }}\n >\n {metaItems.map((item, i) => (\n <React.Fragment key={i}>\n {i > 0 ? (\n <span\n style={{\n color: \"var(--text-xfaint, rgba(30,33,37,0.28))\",\n }}\n >\n ·\n </span>\n ) : null}\n <span>{item}</span>\n </React.Fragment>\n ))}\n </div>\n ) : null}\n\n {/* Tags row */}\n {allTags.length > 0 ? (\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: 4,\n marginTop: 6,\n }}\n >\n {allTags.map((tag, i) => (\n <span\n key={i}\n style={{\n display: \"inline-block\",\n fontSize: \"var(--text-xs, 10px)\",\n fontWeight: 500,\n padding: \"1px 7px\",\n borderRadius: 999,\n background: \"var(--paper, rgba(255,255,255,0.78))\",\n border: \"1px solid var(--border-subtle, rgba(52,58,64,0.08))\",\n color: tag.color || \"var(--text-faint, rgba(30,33,37,0.36))\",\n textTransform: \"capitalize\",\n letterSpacing: \"0.01em\",\n lineHeight: 1.5,\n }}\n >\n {tag.label}\n </span>\n ))}\n </div>\n ) : null}\n </div>\n\n {/* Right: score pills */}\n {scores && scores.length > 0 ? (\n <div\n style={{\n display: \"flex\",\n gap: 10,\n flexShrink: 0,\n alignItems: \"flex-start\",\n paddingTop: 2,\n }}\n >\n {scores.map((score, i) => (\n <div key={i} style={{ textAlign: \"center\", minWidth: 28 }}>\n <div\n style={{\n fontSize: \"var(--text-lg, 14px)\",\n fontWeight: 600,\n color: \"var(--text-strong, rgba(30,33,37,0.92))\",\n fontFamily: \"var(--font-mono, monospace)\",\n lineHeight: 1.2,\n }}\n >\n {score.value != null ? Math.round(score.value) : \"—\"}\n </div>\n <div\n style={{\n fontSize: \"var(--text-xxs, 9px)\",\n fontWeight: 650,\n textTransform: \"uppercase\",\n letterSpacing: \"var(--tracking-label, 0.16em)\",\n color: \"var(--text-xfaint, rgba(30,33,37,0.28))\",\n marginTop: 1,\n }}\n >\n {score.label}\n </div>\n </div>\n ))}\n </div>\n ) : null}\n </div>\n\n {/* Optional children slot */}\n {children}\n </div>\n );\n}\n"],"names":["DIRECTION_COLORS","formatDuration","seconds","h","m","s","formatDate","dateStr","InteractionCard","title","agentName","customerName","date","duration","direction","driver","sentiment","disposition","scores","tags","railColor","isActive","onClick","children","resolvedRailColor","formattedDuration","formattedDate","metaItems","allTags","jsxs","e","jsx","item","i","React","tag","score"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"media.es.js","sources":["../../src/components/media/InteractionSummaryCard.jsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n/**\n * Direction rail color mapping.\n * Uses rail colors for categorization, not judgment.\n */\nconst DIRECTION_COLORS = {\n inbound: \"var(--rail-discovery, #5E88B0)\",\n outbound: \"var(--rail-purple, #9B7AA8)\",\n internal: \"var(--rail-outcome, #6B7C93)\",\n chat: \"var(--rail-teal, #7BA89D)\",\n};\n\n/**\n * Format seconds to mm:ss or h:mm:ss\n */\nconst formatDuration = (seconds) => {\n if (seconds == null || seconds <= 0) return null;\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = Math.round(seconds % 60);\n if (h > 0) return `${h}:${String(m).padStart(2, \"0\")}:${String(s).padStart(2, \"0\")}`;\n return `${m}:${String(s).padStart(2, \"0\")}`;\n};\n\n/**\n * Format a date string to a compact, readable form.\n */\nconst formatDate = (dateStr) => {\n if (!dateStr) return null;\n try {\n return new Date(dateStr).toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n } catch {\n return null;\n }\n};\n\n/**\n * InteractionCard Component\n * Displays a summary card for a completed interaction (call/chat).\n * Designed for use in history lists, search results, and monitoring views.\n *\n * Uses the Chordia design language: left rail, muted metadata,\n * non-judgmental score display, subtle hover states.\n *\n * @param {Object} props\n * @param {string} [props.title] - Primary label (e.g., call purpose, one-liner)\n * @param {string} [props.agentName] - Agent who handled the interaction\n * @param {string} [props.customerName] - Customer name (omit if unknown)\n * @param {string} [props.date] - ISO date string for when the interaction occurred\n * @param {number} [props.duration] - Duration in seconds\n * @param {string} [props.direction] - \"inbound\" | \"outbound\" | \"internal\" | \"chat\"\n * @param {string} [props.driver] - Call driver / reason\n * @param {string} [props.sentiment] - Customer sentiment label\n * @param {string} [props.disposition] - Call disposition / outcome label\n * @param {Array} [props.scores] - [{label, value}] score metrics to display\n * @param {Array} [props.tags] - [{label, color?}] additional tag pills\n * @param {string} [props.railColor] - Override the left rail color\n * @param {boolean} [props.isActive] - Whether this card is currently selected/active\n * @param {Function} [props.onClick] - Click handler\n * @param {React.ReactNode} [props.children] - Additional content below the card body\n */\nexport default function InteractionCard({\n title,\n agentName,\n customerName,\n date,\n duration,\n direction,\n driver,\n sentiment,\n disposition,\n scores,\n tags,\n railColor,\n isActive = false,\n onClick,\n children,\n}) {\n const resolvedRailColor =\n railColor || DIRECTION_COLORS[direction] || \"var(--rail-outcome, #6B7C93)\";\n const formattedDuration = formatDuration(duration);\n const formattedDate = formatDate(date);\n\n // Collect metadata items\n const metaItems = [];\n if (agentName) metaItems.push(agentName);\n if (customerName) metaItems.push(customerName);\n if (formattedDate) metaItems.push(formattedDate);\n if (formattedDuration) metaItems.push(formattedDuration);\n\n // Collect tag items from explicit tags + contextual fields\n const allTags = [];\n if (direction) allTags.push({ label: direction });\n if (driver) allTags.push({ label: driver });\n if (sentiment) allTags.push({ label: sentiment });\n if (disposition) allTags.push({ label: disposition });\n if (tags) allTags.push(...tags);\n\n return (\n <div\n onClick={onClick}\n style={{\n position: \"relative\",\n padding: \"10px 14px 10px 18px\",\n borderRadius: \"var(--radius-md, 8px)\",\n overflow: \"hidden\",\n background: isActive\n ? \"var(--hover-warm-subtle, rgba(231,212,162,0.08))\"\n : \"var(--paper-elevated, rgba(255,255,255,0.82))\",\n border: `1px solid ${\n isActive\n ? \"var(--border-hover, rgba(52,58,64,0.18))\"\n : \"var(--border, rgba(52,58,64,0.12))\"\n }`,\n cursor: onClick ? \"pointer\" : \"default\",\n transition: \"background 0.15s, border-color 0.15s\",\n }}\n onMouseEnter={(e) => {\n if (!isActive && onClick) {\n e.currentTarget.style.background =\n \"var(--hover-warm-subtle, rgba(231,212,162,0.08))\";\n e.currentTarget.style.borderColor =\n \"var(--border-hover, rgba(52,58,64,0.18))\";\n }\n }}\n onMouseLeave={(e) => {\n if (!isActive) {\n e.currentTarget.style.background =\n \"var(--paper-elevated, rgba(255,255,255,0.82))\";\n e.currentTarget.style.borderColor =\n \"var(--border, rgba(52,58,64,0.12))\";\n }\n }}\n >\n {/* Left rail */}\n <div\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n width: \"var(--rail-width-thin, 4px)\",\n backgroundColor: resolvedRailColor,\n borderRadius: \"var(--radius-md, 8px) 0 0 var(--radius-md, 8px)\",\n }}\n />\n\n {/* Main content row */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"space-between\",\n gap: 12,\n }}\n >\n {/* Left: title + metadata */}\n <div style={{ flex: 1, minWidth: 0 }}>\n {/* Title */}\n {title ? (\n <div\n style={{\n fontSize: \"var(--text-md, 13px)\",\n fontWeight: 550,\n color: \"var(--text-strong, rgba(30,33,37,0.92))\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n lineHeight: \"var(--leading-snug, 1.375)\",\n }}\n >\n {title}\n </div>\n ) : null}\n\n {/* Metadata row */}\n {metaItems.length > 0 ? (\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: 6,\n marginTop: 3,\n fontSize: \"var(--text-sm, 11px)\",\n color: \"var(--text-muted, rgba(30,33,37,0.56))\",\n lineHeight: \"var(--leading-snug, 1.375)\",\n }}\n >\n {metaItems.map((item, i) => (\n <React.Fragment key={i}>\n {i > 0 ? (\n <span\n style={{\n color: \"var(--text-xfaint, rgba(30,33,37,0.28))\",\n }}\n >\n ·\n </span>\n ) : null}\n <span>{item}</span>\n </React.Fragment>\n ))}\n </div>\n ) : null}\n\n {/* Tags row */}\n {allTags.length > 0 ? (\n <div\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n gap: 4,\n marginTop: 6,\n }}\n >\n {allTags.map((tag, i) => (\n <span\n key={i}\n style={{\n display: \"inline-block\",\n fontSize: \"var(--text-xs, 10px)\",\n fontWeight: 500,\n padding: \"1px 7px\",\n borderRadius: 999,\n background: \"var(--paper, rgba(255,255,255,0.78))\",\n border: \"1px solid var(--border-subtle, rgba(52,58,64,0.08))\",\n color: tag.color || \"var(--text-faint, rgba(30,33,37,0.36))\",\n textTransform: \"capitalize\",\n letterSpacing: \"0.01em\",\n lineHeight: 1.5,\n }}\n >\n {tag.label}\n </span>\n ))}\n </div>\n ) : null}\n </div>\n\n {/* Right: score pills */}\n {scores && scores.length > 0 ? (\n <div\n style={{\n display: \"flex\",\n gap: 10,\n flexShrink: 0,\n alignItems: \"flex-start\",\n paddingTop: 2,\n }}\n >\n {scores.map((score, i) => (\n <div key={i} style={{ textAlign: \"center\", minWidth: 28 }}>\n <div\n style={{\n fontSize: \"var(--text-lg, 14px)\",\n fontWeight: 600,\n color: \"var(--text-strong, rgba(30,33,37,0.92))\",\n fontFamily: \"var(--font-mono, monospace)\",\n lineHeight: 1.2,\n }}\n >\n {score.value != null ? Math.round(score.value) : \"—\"}\n </div>\n <div\n style={{\n fontSize: \"var(--text-xxs, 9px)\",\n fontWeight: 650,\n textTransform: \"uppercase\",\n letterSpacing: \"var(--tracking-label, 0.16em)\",\n color: \"var(--text-xfaint, rgba(30,33,37,0.28))\",\n marginTop: 1,\n }}\n >\n {score.label}\n </div>\n </div>\n ))}\n </div>\n ) : null}\n </div>\n\n {/* Optional children slot */}\n {children}\n </div>\n );\n}\n"],"names":["DIRECTION_COLORS","formatDuration","seconds","h","m","s","formatDate","dateStr","InteractionCard","title","agentName","customerName","date","duration","direction","driver","sentiment","disposition","scores","tags","railColor","isActive","onClick","children","resolvedRailColor","formattedDuration","formattedDate","metaItems","allTags","jsxs","e","jsx","item","i","React","tag","score"],"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 i=require("./SmallButton.cjs.js"),c=require("./Tooltip.cjs.js"),e=require("./components/primitives.cjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./SmallButton.cjs.js"),c=require("./Tooltip.cjs.js"),e=require("./components/primitives.cjs.js"),p=require("./SectionLabel.cjs.js"),g=require("./TextInput.cjs.js"),l=require("./components/data.cjs.js");require("react/jsx-runtime");require("react");require("lucide-react");const t=require("./SummarySection.cjs.js"),a=require("./FileUploadingState.cjs.js"),T=require("./TourGuideTooltip.cjs.js"),s=require("./Timeline.cjs.js"),I=require("./components/media.cjs.js"),r=require("./components/chat.cjs.js"),o=require("./components/navigation.cjs.js"),d=require("./components/layout.cjs.js"),D=require("./IntegrationCard.cjs.js"),S=require("./components/notifications.cjs.js"),q=require("./components/models.cjs.js"),C=require("./UploadInteraction.cjs.js"),u=require("./components/onboarding.cjs.js"),m=require("./index.cjs2.js"),n=require("./components/UpdatedInteractionDetails.cjs.js"),v=require("./UpdatedInteractionRecording.cjs.js");require("react-dom");require("./sortable.esm.cjs.js");require("./CustomFilterChips.cjs.js");require("recharts");require("./colors.cjs.js");exports.Card=i.Card;exports.DetailCard=i.DetailCard;exports.DeviationIndicator=i.DeviationIndicator;exports.SmallButton=i.SmallButton;exports.Tag=i.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=p.SectionLabel;exports.Tabs=p.Tabs;exports.TextInput=g.TextInput;exports.DataTable=l.DataTable;exports.DataTableFilters=l.DataTableFilters;exports.SummaryStatsPanel=l.SummaryStatsPanel;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.AutoSearch=a.AutoSearch;exports.DrawerButton=a.DrawerButton;exports.DrawerInput=a.DrawerInput;exports.DrawerLabel=a.DrawerLabel;exports.FileUploadSuccessState=a.FileUploadSuccessState;exports.FileUploadingState=a.FileUploadingState;exports.SideDrawer=a.SideDrawer;exports.TourGuideTooltip=T.TourGuideTooltip;exports.ConversationTurn=s.ConversationTurn;exports.Timeline=s.Timeline;exports.TranscriptCard=s.TranscriptCard;exports.InteractionSummaryCard=I.InteractionSummaryCard;exports.ChartRenderer=r.ChartRenderer;exports.ChatHistoryPanel=r.ChatHistoryPanel;exports.ChatInterface=r.ChatInterface;exports.ChatMessage=r.ChatMessage;exports.MessageThread=r.MessageThread;exports.ThinkingIndicator=r.ThinkingIndicator;exports.NavDropdown=o.NavDropdown;exports.NavDropdownItem=o.NavDropdownItem;exports.NavPill=o.NavPill;exports.NavigationBar=o.NavigationBar;exports.Sidebar=o.Sidebar;exports.StatusIndicator=o.StatusIndicator;exports.DemoProjectBanner=d.DemoProjectBanner;exports.FirstCallScreen=d.FirstCallScreen;exports.LoginForm=d.LoginForm;exports.OnboardingChecklist=d.OnboardingChecklist;exports.SplitPane=d.SplitPane;exports.IntegrationCard=D.IntegrationCard;exports.NotificationItem=S.NotificationItem;exports.NotificationPanel=S.NotificationPanel;exports.OverlayPanel=q.OverlayPanel;exports.UploadEvaluate=C.UploadEvaluate;exports.UploadInteraction=C.UploadInteraction;exports.AddTeammates=u.AddTeammates;exports.ConnectData=u.ConnectData;exports.GettingStarted=u.GettingStarted;exports.LoginPage=m.LoginPage;exports.SignUpPage=m.SignUpPage;exports.UpdatedCoachingSynthesisCard=n.UpdatedCoachingSynthesisCard;exports.UpdatedCompassScore=n.UpdatedCompassScore;exports.UpdatedInteractionContext=n.UpdatedInteractionContext;exports.UpdatedInteractionDetails=n.UpdatedInteractionDetails;exports.UpdatedInteractionScores=n.UpdatedInteractionScores;exports.UpdatedInteractionSignals=n.UpdatedInteractionSignals;exports.UpdatedInteractionRecording=v.UpdatedInteractionRecording;
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.es.js
CHANGED
|
@@ -10,42 +10,41 @@ import "lucide-react";
|
|
|
10
10
|
import { C as j, M as E, O as H, b as V, c as q, S as z, a as J, d as K } from "./SummarySection.es.js";
|
|
11
11
|
import { A as W, D as X, b as Y, a as Z, c as _, F as $, S as aa } from "./FileUploadingState.es.js";
|
|
12
12
|
import { T as ta } from "./TourGuideTooltip.es.js";
|
|
13
|
-
import { C as
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import { U as rr } from "./UpdatedInteractionRecording.es.js";
|
|
13
|
+
import { C as oa, a as ia, T as na } from "./Timeline.es.js";
|
|
14
|
+
import { InteractionSummaryCard as pa } from "./components/media.es.js";
|
|
15
|
+
import { ChartRenderer as ma, ChatHistoryPanel as la, ChatInterface as ca, ChatMessage as Sa, MessageThread as Ca, ThinkingIndicator as fa } from "./components/chat.es.js";
|
|
16
|
+
import { NavDropdown as Ta, NavDropdownItem as ga, NavPill as Ia, NavigationBar as Da, Sidebar as ua, StatusIndicator as ba } from "./components/navigation.es.js";
|
|
17
|
+
import { DemoProjectBanner as va, FirstCallScreen as ha, LoginForm as Pa, OnboardingChecklist as Fa, SplitPane as wa } from "./components/layout.es.js";
|
|
18
|
+
import { I as La } from "./IntegrationCard.es.js";
|
|
19
|
+
import { NotificationItem as Ba, NotificationPanel as Ma } from "./components/notifications.es.js";
|
|
20
|
+
import { OverlayPanel as Aa } from "./components/models.es.js";
|
|
21
|
+
import { U as Ga, a as Ra } from "./UploadInteraction.es.js";
|
|
22
|
+
import { AddTeammates as Ea, ConnectData as Ha, GettingStarted as Va } from "./components/onboarding.es.js";
|
|
23
|
+
import { L as za, S as Ja } from "./index.es2.js";
|
|
24
|
+
import { UpdatedCoachingSynthesisCard as Qa, UpdatedCompassScore as Wa, UpdatedInteractionContext as Xa, UpdatedInteractionDetails as Ya, UpdatedInteractionScores as Za, UpdatedInteractionSignals as _a } from "./components/UpdatedInteractionDetails.es.js";
|
|
25
|
+
import { U as ar } from "./UpdatedInteractionRecording.es.js";
|
|
27
26
|
import "react-dom";
|
|
28
27
|
import "./sortable.esm.es.js";
|
|
29
28
|
import "./CustomFilterChips.es.js";
|
|
30
29
|
import "recharts";
|
|
31
30
|
import "./colors.es.js";
|
|
32
31
|
export {
|
|
33
|
-
|
|
32
|
+
Ea as AddTeammates,
|
|
34
33
|
W as AutoSearch,
|
|
35
34
|
u as Badge,
|
|
36
35
|
m as Card,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
ma as ChartRenderer,
|
|
37
|
+
la as ChatHistoryPanel,
|
|
38
|
+
ca as ChatInterface,
|
|
39
|
+
Sa as ChatMessage,
|
|
41
40
|
b as Checkbox,
|
|
42
41
|
U as ColorPalette,
|
|
43
42
|
j as ConditionCard,
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
Ha as ConnectData,
|
|
44
|
+
oa as ConversationTurn,
|
|
46
45
|
A as DataTable,
|
|
47
46
|
k as DataTableFilters,
|
|
48
|
-
|
|
47
|
+
va as DemoProjectBanner,
|
|
49
48
|
l as DetailCard,
|
|
50
49
|
c as DeviationIndicator,
|
|
51
50
|
X as DrawerButton,
|
|
@@ -53,60 +52,60 @@ export {
|
|
|
53
52
|
Z as DrawerLabel,
|
|
54
53
|
_ as FileUploadSuccessState,
|
|
55
54
|
$ as FileUploadingState,
|
|
56
|
-
|
|
55
|
+
ha as FirstCallScreen,
|
|
57
56
|
v as FormLabel,
|
|
58
|
-
|
|
57
|
+
Va as GettingStarted,
|
|
59
58
|
h as InlineConfirm,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
59
|
+
La as IntegrationCard,
|
|
60
|
+
pa as InteractionSummaryCard,
|
|
61
|
+
Pa as LoginForm,
|
|
62
|
+
za as LoginPage,
|
|
63
|
+
Ca as MessageThread,
|
|
65
64
|
E as ModelScoreCard,
|
|
66
65
|
P as MultiSelect,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
66
|
+
Ta as NavDropdown,
|
|
67
|
+
ga as NavDropdownItem,
|
|
68
|
+
Ia as NavPill,
|
|
69
|
+
Da as NavigationBar,
|
|
70
|
+
Ba as NotificationItem,
|
|
71
|
+
Ma as NotificationPanel,
|
|
73
72
|
H as ObservationCard,
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
Fa as OnboardingChecklist,
|
|
74
|
+
Aa as OverlayPanel,
|
|
76
75
|
V as ScoreDriverCard,
|
|
77
76
|
q as ScoreDriverCardVariant,
|
|
78
77
|
L as SectionLabel,
|
|
79
78
|
F as Select,
|
|
80
79
|
aa as SideDrawer,
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
ua as Sidebar,
|
|
81
|
+
Ja as SignUpPage,
|
|
83
82
|
z as SignalCard,
|
|
84
83
|
S as SmallButton,
|
|
85
84
|
J as SmallObservationCard,
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
wa as SplitPane,
|
|
86
|
+
ba as StatusIndicator,
|
|
88
87
|
K as SummarySection,
|
|
89
88
|
G as SummaryStatsPanel,
|
|
90
89
|
N as Tabs,
|
|
91
90
|
C as Tag,
|
|
92
91
|
w as TextArea,
|
|
93
92
|
M as TextInput,
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
fa as ThinkingIndicator,
|
|
94
|
+
ia as Timeline,
|
|
96
95
|
x as Tooltip,
|
|
97
96
|
T as TooltipContent,
|
|
98
97
|
g as TooltipProvider,
|
|
99
98
|
I as TooltipTrigger,
|
|
100
99
|
ta as TourGuideTooltip,
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
100
|
+
na as TranscriptCard,
|
|
101
|
+
Qa as UpdatedCoachingSynthesisCard,
|
|
102
|
+
Wa as UpdatedCompassScore,
|
|
103
|
+
Xa as UpdatedInteractionContext,
|
|
104
|
+
Ya as UpdatedInteractionDetails,
|
|
105
|
+
ar as UpdatedInteractionRecording,
|
|
106
|
+
Za as UpdatedInteractionScores,
|
|
107
|
+
_a as UpdatedInteractionSignals,
|
|
108
|
+
Ga as UploadEvaluate,
|
|
109
|
+
Ra as UploadInteraction
|
|
111
110
|
};
|
|
112
111
|
//# sourceMappingURL=index.es.js.map
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|