chordia-ui 3.0.2 → 3.0.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/InlineConfirm.cjs.js +1 -1
- package/dist/InlineConfirm.cjs.js.map +1 -1
- package/dist/InlineConfirm.es.js +17 -66
- package/dist/InlineConfirm.es.js.map +1 -1
- package/dist/IntegrationCard.cjs.js +2 -0
- package/dist/IntegrationCard.cjs.js.map +1 -0
- package/dist/IntegrationCard.es.js +1301 -0
- package/dist/IntegrationCard.es.js.map +1 -0
- package/dist/LoginForm.cjs.js +1 -1
- package/dist/LoginForm.cjs.js.map +1 -1
- package/dist/LoginForm.es.js +83 -1378
- package/dist/LoginForm.es.js.map +1 -1
- package/dist/NotificationPanel.cjs.js +1 -1
- package/dist/NotificationPanel.cjs.js.map +1 -1
- package/dist/NotificationPanel.es.js +1 -1
- package/dist/NotificationPanel.es.js.map +1 -1
- package/dist/SectionLabel.cjs.js +1 -1
- package/dist/SectionLabel.cjs.js.map +1 -1
- package/dist/SectionLabel.es.js +57 -5
- package/dist/SectionLabel.es.js.map +1 -1
- package/dist/SmallButton.cjs.js +1 -1
- package/dist/SmallButton.cjs.js.map +1 -1
- package/dist/SmallButton.es.js +725 -701
- package/dist/SmallButton.es.js.map +1 -1
- package/dist/SummaryStatsPanel.cjs.js +1 -5
- package/dist/SummaryStatsPanel.cjs.js.map +1 -1
- package/dist/SummaryStatsPanel.es.js +481 -3769
- package/dist/SummaryStatsPanel.es.js.map +1 -1
- package/dist/Timeline.cjs.js +1 -1
- package/dist/Timeline.cjs.js.map +1 -1
- package/dist/Timeline.es.js +3 -1
- package/dist/Timeline.es.js.map +1 -1
- package/dist/components/layout.cjs.js +2 -2
- package/dist/components/layout.cjs.js.map +1 -1
- package/dist/components/layout.es.js +4 -3
- package/dist/components/layout.es.js.map +1 -1
- package/dist/components/primitives.cjs.js +1 -1
- package/dist/components/primitives.es.js +11 -11
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +17 -16
- 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 +1037 -764
- package/dist/pages/interactionDetails.es.js.map +1 -1
- package/dist/sortable.esm.cjs.js +6 -0
- package/dist/sortable.esm.cjs.js.map +1 -0
- package/dist/sortable.esm.es.js +3307 -0
- package/dist/sortable.esm.es.js.map +1 -0
- package/package.json +1 -1
- package/src/components/common/MessageThread.jsx +172 -31
- package/src/components/media/TranscriptCard.jsx +3 -1
- package/src/components/notifications/NotificationPanel.jsx +1 -1
- package/src/components/pages/interactionDetails/InteractionDetailPanel.jsx +146 -64
- package/src/components/pages/interactionDetails/InteractionGuidance.jsx +2 -1
- package/src/components/pages/interactionDetails/InteractionSignals.jsx +72 -36
- package/src/components/primitives/Card.jsx +8 -3
- package/src/components/primitives/DetailCard.jsx +3 -3
- package/src/components/primitives/Tabs.jsx +5 -1
- package/src/tokens/colors.css +65 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const r=require("react/jsx-runtime"),
|
|
1
|
+
"use strict";const r=require("react/jsx-runtime"),x=require("react"),p=require("lucide-react"),u=require("./SmallButton.cjs.js");function v({colors:s=[]}){const t=s.reduce((o,e)=>(o[e.category]||(o[e.category]=[]),o[e.category].push(e),o),{});return r.jsx("div",{style:{fontFamily:"system-ui, -apple-system, sans-serif"},children:Object.entries(t).map(([o,e])=>r.jsxs("div",{style:{marginBottom:"24px"},children:[r.jsx("div",{style:{fontSize:"11px",letterSpacing:"0.14em",textTransform:"uppercase",marginBottom:"12px",color:"rgba(30, 33, 37, 0.62)",fontWeight:650},children:o}),r.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(220px, 1fr))",gap:"12px"},children:e.map((n,i)=>r.jsxs("div",{style:{border:"1px solid rgba(52, 58, 64, 0.12)",borderRadius:"12px",overflow:"hidden",background:"rgba(255, 255, 255, 0.72)"},children:[r.jsx("div",{style:{height:"64px",background:n.hex,borderBottom:"1px solid rgba(52, 58, 64, 0.10)"}}),r.jsxs("div",{style:{padding:"10px 12px"},children:[r.jsx("div",{style:{fontSize:"13px",fontWeight:680,color:"rgba(30, 33, 37, 0.92)",marginBottom:"4px"},children:n.name}),r.jsx("div",{style:{fontSize:"11.5px",fontFamily:"ui-monospace, monospace",color:"rgba(30, 33, 37, 0.52)",marginBottom:"6px"},children:n.hex}),r.jsx("div",{style:{fontSize:"11.5px",color:"rgba(30, 33, 37, 0.62)",lineHeight:1.4},children:n.usage})]})]},i))})]},o))})}function m({children:s,color:t,icon:o,...e}){const i={...{fontSize:"var(--text-xs)",padding:"1px 5px",borderRadius:"var(--radius-sm)",display:"inline-flex",alignItems:"center"},color:t,backgroundColor:`color-mix(in srgb, ${t} 15%, transparent)`,...e.style};return r.jsxs("span",{style:i,...e,children:[o&&r.jsx("span",{style:{marginRight:"3px"},children:o}),s]})}function f({checked:s=!1,onChange:t,label:o,size:e="md",disabled:n=!1,style:i,...d}){const a=e==="sm"?12:16,l=e==="sm"?8:11;return r.jsxs("label",{style:{display:"inline-flex",alignItems:"center",gap:e==="sm"?3:"var(--spacing-2)",fontSize:e==="sm"?"var(--text-xs)":"var(--text-sm)",color:n?"var(--text-faint)":"var(--text-base)",cursor:n?"not-allowed":"pointer",userSelect:"none",...i},onClick:c=>{c.preventDefault(),!n&&t&&t(!s)},...d,children:[r.jsx("span",{style:{width:a,height:a,borderRadius:e==="sm"?2:3,border:`1px solid ${s?"var(--text-ink)":"var(--border)"}`,background:s?"var(--text-ink)":"transparent",display:"inline-flex",alignItems:"center",justifyContent:"center",transition:"var(--transition-fast)",flexShrink:0,opacity:n?.5:1},children:s&&r.jsx(p.Check,{size:l,style:{color:"white"},strokeWidth:3})}),o]})}const g={width:"100%",padding:"var(--spacing-2)",fontSize:"var(--text-md)",border:"1px solid var(--border)",borderRadius:"var(--radius)",backgroundColor:"var(--paper)",color:"var(--text-base)",fontFamily:"var(--font-sans)",outline:"none",transition:"border-color 0.15s ease"};function b({value:s,onChange:t,placeholder:o,disabled:e=!1,mono:n=!1,autoFocus:i=!1,style:d,...a}){return r.jsx("input",{type:"text",value:s,onChange:l=>t==null?void 0:t(l.target.value),placeholder:o,disabled:e,autoFocus:i,style:{...g,...n?{fontFamily:"var(--font-mono)"}:{},...e?{opacity:.6,cursor:"not-allowed"}:{},...d},onFocus:l=>{l.currentTarget.style.borderColor="var(--border-hover)"},onBlur:l=>{l.currentTarget.style.borderColor="var(--border)"},...a})}const y={width:"100%",padding:"var(--spacing-2)",fontSize:"var(--text-md)",border:"1px solid var(--border)",borderRadius:"var(--radius)",backgroundColor:"var(--paper)",color:"var(--text-base)",fontFamily:"var(--font-sans)",outline:"none",transition:"border-color 0.15s ease"};function h({value:s,onChange:t,placeholder:o,disabled:e=!1,mono:n=!1,rows:i=4,resize:d=!0,style:a,...l}){return r.jsx("textarea",{value:s,onChange:c=>t==null?void 0:t(c.target.value),placeholder:o,disabled:e,rows:i,style:{...y,resize:d?"vertical":"none",minHeight:i*20,...n?{fontFamily:"var(--font-mono)"}:{},...e?{opacity:.6,cursor:"not-allowed"}:{},...a},onFocus:c=>{c.currentTarget.style.borderColor="var(--border-hover)"},onBlur:c=>{c.currentTarget.style.borderColor="var(--border)"},...l})}const j={width:"100%",padding:"var(--spacing-1) var(--spacing-2)",fontSize:"var(--text-md)",border:"1px solid var(--border)",borderRadius:"var(--radius)",backgroundColor:"var(--paper)",color:"var(--text-base)",fontFamily:"var(--font-sans)",cursor:"pointer",outline:"none",transition:"border-color 0.15s ease"};function S({value:s,onChange:t,options:o=[],disabled:e=!1,placeholder:n,style:i,...d}){return r.jsxs("select",{value:s,onChange:a=>t==null?void 0:t(a.target.value),disabled:e,style:{...j,...e?{opacity:.6,cursor:"not-allowed"}:{},...i},onFocus:a=>{a.currentTarget.style.borderColor="var(--border-hover)"},onBlur:a=>{a.currentTarget.style.borderColor="var(--border)"},...d,children:[n&&r.jsx("option",{value:"",children:n}),o.map(a=>r.jsx("option",{value:a.value,children:a.label},a.value))]})}function k({children:s,htmlFor:t,style:o}){return r.jsx("label",{htmlFor:t,style:{display:"block",fontSize:"var(--text-base)",color:"var(--text-muted)",marginBottom:"var(--spacing-1)",fontFamily:"var(--font-sans)",...o},children:s})}function B({children:s,onConfirm:t,prompt:o="Delete?",confirmLabel:e="Yes",cancelLabel:n="No",style:i}){const[d,a]=x.useState(!1);return d?r.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:"var(--spacing-1)",...i},children:[r.jsx("span",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:o}),r.jsx(u.SmallButton,{variant:"ghost",size:"sm",onClick:l=>{l.stopPropagation(),t==null||t(),a(!1)},style:{color:"var(--text-ink)",fontWeight:"var(--font-semibold)"},children:e}),r.jsx(u.SmallButton,{variant:"ghost",size:"sm",onClick:l=>{l.stopPropagation(),a(!1)},children:n})]}):r.jsx("span",{onClick:l=>{l.stopPropagation(),a(!0)},style:{cursor:"pointer",...i},children:s})}exports.Badge=m;exports.Checkbox=f;exports.ColorPalette=v;exports.FormLabel=k;exports.InlineConfirm=B;exports.Select=S;exports.TextArea=h;exports.TextInput=b;
|
|
2
2
|
//# sourceMappingURL=InlineConfirm.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InlineConfirm.cjs.js","sources":["../src/components/primitives/ColorPalette.jsx","../src/components/primitives/Tabs.jsx","../src/components/primitives/Badge.jsx","../src/components/primitives/Checkbox.jsx","../src/components/primitives/TextInput.jsx","../src/components/primitives/TextArea.jsx","../src/components/primitives/Select.jsx","../src/components/primitives/FormLabel.jsx","../src/components/primitives/InlineConfirm.jsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n/**\n * ColorPalette component\n * Renders grouped color chips with name, hex, and usage text.\n *\n * @param {{ name: string; hex: string; usage: string; category: string; }[]} colors\n */\nexport default function ColorPalette({ colors = [] }) {\n // Group colors by category\n const groupedColors = colors.reduce((acc, color) => {\n if (!acc[color.category]) {\n acc[color.category] = [];\n }\n acc[color.category].push(color);\n return acc;\n }, {});\n\n return (\n <div\n style={{\n fontFamily: \"system-ui, -apple-system, sans-serif\",\n }}\n >\n {Object.entries(groupedColors).map(([category, categoryColors]) => (\n <div key={category} style={{ marginBottom: \"24px\" }}>\n {/* Category header */}\n <div\n style={{\n fontSize: '11px',\n letterSpacing: '0.14em',\n textTransform: 'uppercase',\n marginBottom: '12px',\n color: \"rgba(30, 33, 37, 0.62)\",\n fontWeight: 650,\n }}\n >\n {category}\n </div>\n\n {/* Color chips grid */}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(220px, 1fr))\",\n gap: \"12px\",\n }}\n >\n {categoryColors.map((color, i) => (\n <div\n key={i}\n style={{\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"12px\",\n overflow: \"hidden\",\n background: \"rgba(255, 255, 255, 0.72)\",\n }}\n >\n {/* Color swatch */}\n <div\n style={{\n height: \"64px\",\n background: color.hex,\n borderBottom: \"1px solid rgba(52, 58, 64, 0.10)\",\n }}\n />\n\n {/* Color info */}\n <div style={{ padding: \"10px 12px\" }}>\n <div\n style={{\n fontSize: \"13px\",\n fontWeight: 680,\n color: \"rgba(30, 33, 37, 0.92)\",\n marginBottom: \"4px\",\n }}\n >\n {color.name}\n </div>\n <div\n style={{\n fontSize: \"11.5px\",\n fontFamily: \"ui-monospace, monospace\",\n color: \"rgba(30, 33, 37, 0.52)\",\n marginBottom: \"6px\",\n }}\n >\n {color.hex}\n </div>\n <div\n style={{\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.62)\",\n lineHeight: 1.4,\n }}\n >\n {color.usage}\n </div>\n </div>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n\n\n","\"use client\";\n\nimport React from \"react\";\n\n/**\n * Tabs Component\n * Horizontal tab bar matching the Chordia design system.\n * Uses warm underline for active state, muted text for inactive.\n *\n * @param {{ key: string; label: string }[]} tabs - Tab definitions\n * @param {string} active - Currently active tab key\n * @param {(key: string) => void} onSelect - Called when a tab is clicked\n * @param {\"default\" | \"compact\"} [size=\"default\"] - Tab size variant\n */\nexport default function Tabs({ tabs = [], active, onSelect, size = \"default\" }) {\n const isCompact = size === \"compact\";\n\n return (\n <div\n style={{\n display: \"flex\",\n borderBottom: \"1px solid var(--border)\",\n background: \"var(--paper)\",\n flexShrink: 0,\n overflowX: \"auto\",\n }}\n >\n {tabs.map((tab) => {\n const isActive = tab.key === active;\n return (\n <button\n key={tab.key}\n onClick={() => onSelect?.(tab.key)}\n style={{\n padding: isCompact ? \"8px 12px\" : \"10px 16px\",\n fontSize: isCompact ? 'var(--text-md)' : 'var(--text-lg)',\n fontWeight: 'var(--font-medium)',\n fontFamily: \"var(--font-sans)\",\n whiteSpace: \"nowrap\",\n cursor: \"pointer\",\n background: \"none\",\n color: isActive ? \"var(--text-ink)\" : \"var(--text-muted)\",\n borderTop: \"none\",\n borderLeft: \"none\",\n borderRight: \"none\",\n borderBottom: isActive\n ? \"2px solid var(--text-ink)\"\n : \"2px solid transparent\",\n transition: \"color 0.15s, border-color 0.15s\",\n letterSpacing: \"-0.01em\",\n }}\n onMouseEnter={(e) => {\n if (!isActive) e.currentTarget.style.color = \"var(--text-strong)\";\n }}\n onMouseLeave={(e) => {\n if (!isActive) e.currentTarget.style.color = \"var(--text-muted)\";\n }}\n >\n {tab.label}\n </button>\n );\n })}\n </div>\n );\n}\n","\"use client\";\n\nexport default function Badge({ children, color, icon, ...props }) {\n const baseStyle = {\n fontSize: 'var(--text-xs)',\n padding: '1px 5px',\n borderRadius: 'var(--radius-sm)',\n display: 'inline-flex',\n alignItems: 'center'\n };\n\n const computedStyle = {\n ...baseStyle,\n color: color,\n backgroundColor: `color-mix(in srgb, ${color} 15%, transparent)`,\n ...props.style\n };\n\n return (\n <span style={computedStyle} {...props}>\n {icon && (\n <span style={{ marginRight: '3px' }}>\n {icon}\n </span>\n )}\n {children}\n </span>\n );\n}","\"use client\";\n\nimport { Check } from 'lucide-react';\n\n/**\n * Styled checkbox matching Chordia design system.\n * Uses --rail-tone (purple) when checked, --border when unchecked.\n * No native browser checkbox — fully custom.\n *\n * @param {boolean} checked\n * @param {function} onChange - receives new boolean value\n * @param {string} [label] - optional label text\n * @param {'md'|'sm'} [size='md']\n * @param {boolean} [disabled=false]\n * @param {object} [style] - override style on the outer label\n */\nexport default function Checkbox({\n checked = false,\n onChange,\n label,\n size = 'md',\n disabled = false,\n style,\n ...props\n}) {\n const boxSize = size === 'sm' ? 12 : 16;\n const checkSize = size === 'sm' ? 8 : 11;\n\n return (\n <label\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: size === 'sm' ? 3 : 'var(--spacing-2)',\n fontSize: size === 'sm' ? 'var(--text-xs)' : 'var(--text-sm)',\n color: disabled ? 'var(--text-faint)' : 'var(--text-base)',\n cursor: disabled ? 'not-allowed' : 'pointer',\n userSelect: 'none',\n ...style,\n }}\n onClick={(e) => {\n e.preventDefault();\n if (!disabled && onChange) onChange(!checked);\n }}\n {...props}\n >\n <span\n style={{\n width: boxSize,\n height: boxSize,\n borderRadius: size === 'sm' ? 2 : 3,\n border: `1px solid ${checked ? 'var(--text-ink)' : 'var(--border)'}`,\n background: checked ? 'var(--text-ink)' : 'transparent',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'var(--transition-fast)',\n flexShrink: 0,\n opacity: disabled ? 0.5 : 1,\n }}\n >\n {checked && (\n <Check size={checkSize} style={{ color: 'white' }} strokeWidth={3} />\n )}\n </span>\n {label}\n </label>\n );\n}\n","\"use client\";\nimport React from 'react';\n\nconst baseStyle = {\n width: '100%',\n padding: 'var(--spacing-2)',\n fontSize: 'var(--text-md)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: 'var(--paper)',\n color: 'var(--text-base)',\n fontFamily: 'var(--font-sans)',\n outline: 'none',\n transition: 'border-color 0.15s ease',\n};\n\nexport default function TextInput({\n value,\n onChange,\n placeholder,\n disabled = false,\n mono = false,\n autoFocus = false,\n style,\n ...rest\n}) {\n return (\n <input\n type=\"text\"\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n placeholder={placeholder}\n disabled={disabled}\n autoFocus={autoFocus}\n style={{\n ...baseStyle,\n ...(mono ? { fontFamily: 'var(--font-mono)' } : {}),\n ...(disabled ? { opacity: 0.6, cursor: 'not-allowed' } : {}),\n ...style,\n }}\n onFocus={(e) => { e.currentTarget.style.borderColor = 'var(--border-hover)'; }}\n onBlur={(e) => { e.currentTarget.style.borderColor = 'var(--border)'; }}\n {...rest}\n />\n );\n}\n","\"use client\";\nimport React from 'react';\n\nconst baseStyle = {\n width: '100%',\n padding: 'var(--spacing-2)',\n fontSize: 'var(--text-md)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: 'var(--paper)',\n color: 'var(--text-base)',\n fontFamily: 'var(--font-sans)',\n outline: 'none',\n transition: 'border-color 0.15s ease',\n};\n\nexport default function TextArea({\n value,\n onChange,\n placeholder,\n disabled = false,\n mono = false,\n rows = 4,\n resize = true,\n style,\n ...rest\n}) {\n return (\n <textarea\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n placeholder={placeholder}\n disabled={disabled}\n rows={rows}\n style={{\n ...baseStyle,\n resize: resize ? 'vertical' : 'none',\n minHeight: rows * 20,\n ...(mono ? { fontFamily: 'var(--font-mono)' } : {}),\n ...(disabled ? { opacity: 0.6, cursor: 'not-allowed' } : {}),\n ...style,\n }}\n onFocus={(e) => { e.currentTarget.style.borderColor = 'var(--border-hover)'; }}\n onBlur={(e) => { e.currentTarget.style.borderColor = 'var(--border)'; }}\n {...rest}\n />\n );\n}\n","\"use client\";\nimport React from 'react';\n\nconst baseStyle = {\n width: '100%',\n padding: 'var(--spacing-1) var(--spacing-2)',\n fontSize: 'var(--text-md)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: 'var(--paper)',\n color: 'var(--text-base)',\n fontFamily: 'var(--font-sans)',\n cursor: 'pointer',\n outline: 'none',\n transition: 'border-color 0.15s ease',\n};\n\nexport default function Select({\n value,\n onChange,\n options = [],\n disabled = false,\n placeholder,\n style,\n ...rest\n}) {\n return (\n <select\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n disabled={disabled}\n style={{\n ...baseStyle,\n ...(disabled ? { opacity: 0.6, cursor: 'not-allowed' } : {}),\n ...style,\n }}\n onFocus={(e) => { e.currentTarget.style.borderColor = 'var(--border-hover)'; }}\n onBlur={(e) => { e.currentTarget.style.borderColor = 'var(--border)'; }}\n {...rest}\n >\n {placeholder && <option value=\"\">{placeholder}</option>}\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n );\n}\n","\"use client\";\nimport React from 'react';\n\nexport default function FormLabel({ children, htmlFor, style }) {\n return (\n <label\n htmlFor={htmlFor}\n style={{\n display: 'block',\n fontSize: 'var(--text-base)',\n color: 'var(--text-muted)',\n marginBottom: 'var(--spacing-1)',\n fontFamily: 'var(--font-sans)',\n ...style,\n }}\n >\n {children}\n </label>\n );\n}\n","\"use client\";\nimport React, { useState } from 'react';\nimport SmallButton from './SmallButton.jsx';\n\nexport default function InlineConfirm({\n children,\n onConfirm,\n prompt = 'Delete?',\n confirmLabel = 'Yes',\n cancelLabel = 'No',\n style,\n}) {\n const [confirming, setConfirming] = useState(false);\n\n if (confirming) {\n return (\n <span\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 'var(--spacing-1)',\n ...style,\n }}\n >\n <span\n style={{\n fontSize: 'var(--text-sm)',\n color: 'var(--text-muted)',\n }}\n >\n {prompt}\n </span>\n <SmallButton\n variant=\"ghost\"\n size=\"sm\"\n onClick={(e) => {\n e.stopPropagation();\n onConfirm?.();\n setConfirming(false);\n }}\n style={{ color: 'var(--text-ink)', fontWeight: 'var(--font-semibold)' }}\n >\n {confirmLabel}\n </SmallButton>\n <SmallButton\n variant=\"ghost\"\n size=\"sm\"\n onClick={(e) => {\n e.stopPropagation();\n setConfirming(false);\n }}\n >\n {cancelLabel}\n </SmallButton>\n </span>\n );\n }\n\n return (\n <span\n onClick={(e) => {\n e.stopPropagation();\n setConfirming(true);\n }}\n style={{ cursor: 'pointer', ...style }}\n >\n {children}\n </span>\n );\n}\n"],"names":["ColorPalette","colors","groupedColors","acc","color","jsx","category","categoryColors","jsxs","Tabs","tabs","active","onSelect","size","isCompact","tab","isActive","e","Badge","children","icon","props","computedStyle","Checkbox","checked","onChange","label","disabled","style","boxSize","checkSize","Check","baseStyle","TextInput","value","placeholder","mono","autoFocus","rest","TextArea","rows","resize","Select","options","opt","FormLabel","htmlFor","InlineConfirm","onConfirm","prompt","confirmLabel","cancelLabel","confirming","setConfirming","useState","SmallButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InlineConfirm.cjs.js","sources":["../src/components/primitives/ColorPalette.jsx","../src/components/primitives/Badge.jsx","../src/components/primitives/Checkbox.jsx","../src/components/primitives/TextInput.jsx","../src/components/primitives/TextArea.jsx","../src/components/primitives/Select.jsx","../src/components/primitives/FormLabel.jsx","../src/components/primitives/InlineConfirm.jsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n/**\n * ColorPalette component\n * Renders grouped color chips with name, hex, and usage text.\n *\n * @param {{ name: string; hex: string; usage: string; category: string; }[]} colors\n */\nexport default function ColorPalette({ colors = [] }) {\n // Group colors by category\n const groupedColors = colors.reduce((acc, color) => {\n if (!acc[color.category]) {\n acc[color.category] = [];\n }\n acc[color.category].push(color);\n return acc;\n }, {});\n\n return (\n <div\n style={{\n fontFamily: \"system-ui, -apple-system, sans-serif\",\n }}\n >\n {Object.entries(groupedColors).map(([category, categoryColors]) => (\n <div key={category} style={{ marginBottom: \"24px\" }}>\n {/* Category header */}\n <div\n style={{\n fontSize: '11px',\n letterSpacing: '0.14em',\n textTransform: 'uppercase',\n marginBottom: '12px',\n color: \"rgba(30, 33, 37, 0.62)\",\n fontWeight: 650,\n }}\n >\n {category}\n </div>\n\n {/* Color chips grid */}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(220px, 1fr))\",\n gap: \"12px\",\n }}\n >\n {categoryColors.map((color, i) => (\n <div\n key={i}\n style={{\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"12px\",\n overflow: \"hidden\",\n background: \"rgba(255, 255, 255, 0.72)\",\n }}\n >\n {/* Color swatch */}\n <div\n style={{\n height: \"64px\",\n background: color.hex,\n borderBottom: \"1px solid rgba(52, 58, 64, 0.10)\",\n }}\n />\n\n {/* Color info */}\n <div style={{ padding: \"10px 12px\" }}>\n <div\n style={{\n fontSize: \"13px\",\n fontWeight: 680,\n color: \"rgba(30, 33, 37, 0.92)\",\n marginBottom: \"4px\",\n }}\n >\n {color.name}\n </div>\n <div\n style={{\n fontSize: \"11.5px\",\n fontFamily: \"ui-monospace, monospace\",\n color: \"rgba(30, 33, 37, 0.52)\",\n marginBottom: \"6px\",\n }}\n >\n {color.hex}\n </div>\n <div\n style={{\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.62)\",\n lineHeight: 1.4,\n }}\n >\n {color.usage}\n </div>\n </div>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n\n\n","\"use client\";\n\nexport default function Badge({ children, color, icon, ...props }) {\n const baseStyle = {\n fontSize: 'var(--text-xs)',\n padding: '1px 5px',\n borderRadius: 'var(--radius-sm)',\n display: 'inline-flex',\n alignItems: 'center'\n };\n\n const computedStyle = {\n ...baseStyle,\n color: color,\n backgroundColor: `color-mix(in srgb, ${color} 15%, transparent)`,\n ...props.style\n };\n\n return (\n <span style={computedStyle} {...props}>\n {icon && (\n <span style={{ marginRight: '3px' }}>\n {icon}\n </span>\n )}\n {children}\n </span>\n );\n}","\"use client\";\n\nimport { Check } from 'lucide-react';\n\n/**\n * Styled checkbox matching Chordia design system.\n * Uses --rail-tone (purple) when checked, --border when unchecked.\n * No native browser checkbox — fully custom.\n *\n * @param {boolean} checked\n * @param {function} onChange - receives new boolean value\n * @param {string} [label] - optional label text\n * @param {'md'|'sm'} [size='md']\n * @param {boolean} [disabled=false]\n * @param {object} [style] - override style on the outer label\n */\nexport default function Checkbox({\n checked = false,\n onChange,\n label,\n size = 'md',\n disabled = false,\n style,\n ...props\n}) {\n const boxSize = size === 'sm' ? 12 : 16;\n const checkSize = size === 'sm' ? 8 : 11;\n\n return (\n <label\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: size === 'sm' ? 3 : 'var(--spacing-2)',\n fontSize: size === 'sm' ? 'var(--text-xs)' : 'var(--text-sm)',\n color: disabled ? 'var(--text-faint)' : 'var(--text-base)',\n cursor: disabled ? 'not-allowed' : 'pointer',\n userSelect: 'none',\n ...style,\n }}\n onClick={(e) => {\n e.preventDefault();\n if (!disabled && onChange) onChange(!checked);\n }}\n {...props}\n >\n <span\n style={{\n width: boxSize,\n height: boxSize,\n borderRadius: size === 'sm' ? 2 : 3,\n border: `1px solid ${checked ? 'var(--text-ink)' : 'var(--border)'}`,\n background: checked ? 'var(--text-ink)' : 'transparent',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'var(--transition-fast)',\n flexShrink: 0,\n opacity: disabled ? 0.5 : 1,\n }}\n >\n {checked && (\n <Check size={checkSize} style={{ color: 'white' }} strokeWidth={3} />\n )}\n </span>\n {label}\n </label>\n );\n}\n","\"use client\";\nimport React from 'react';\n\nconst baseStyle = {\n width: '100%',\n padding: 'var(--spacing-2)',\n fontSize: 'var(--text-md)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: 'var(--paper)',\n color: 'var(--text-base)',\n fontFamily: 'var(--font-sans)',\n outline: 'none',\n transition: 'border-color 0.15s ease',\n};\n\nexport default function TextInput({\n value,\n onChange,\n placeholder,\n disabled = false,\n mono = false,\n autoFocus = false,\n style,\n ...rest\n}) {\n return (\n <input\n type=\"text\"\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n placeholder={placeholder}\n disabled={disabled}\n autoFocus={autoFocus}\n style={{\n ...baseStyle,\n ...(mono ? { fontFamily: 'var(--font-mono)' } : {}),\n ...(disabled ? { opacity: 0.6, cursor: 'not-allowed' } : {}),\n ...style,\n }}\n onFocus={(e) => { e.currentTarget.style.borderColor = 'var(--border-hover)'; }}\n onBlur={(e) => { e.currentTarget.style.borderColor = 'var(--border)'; }}\n {...rest}\n />\n );\n}\n","\"use client\";\nimport React from 'react';\n\nconst baseStyle = {\n width: '100%',\n padding: 'var(--spacing-2)',\n fontSize: 'var(--text-md)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: 'var(--paper)',\n color: 'var(--text-base)',\n fontFamily: 'var(--font-sans)',\n outline: 'none',\n transition: 'border-color 0.15s ease',\n};\n\nexport default function TextArea({\n value,\n onChange,\n placeholder,\n disabled = false,\n mono = false,\n rows = 4,\n resize = true,\n style,\n ...rest\n}) {\n return (\n <textarea\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n placeholder={placeholder}\n disabled={disabled}\n rows={rows}\n style={{\n ...baseStyle,\n resize: resize ? 'vertical' : 'none',\n minHeight: rows * 20,\n ...(mono ? { fontFamily: 'var(--font-mono)' } : {}),\n ...(disabled ? { opacity: 0.6, cursor: 'not-allowed' } : {}),\n ...style,\n }}\n onFocus={(e) => { e.currentTarget.style.borderColor = 'var(--border-hover)'; }}\n onBlur={(e) => { e.currentTarget.style.borderColor = 'var(--border)'; }}\n {...rest}\n />\n );\n}\n","\"use client\";\nimport React from 'react';\n\nconst baseStyle = {\n width: '100%',\n padding: 'var(--spacing-1) var(--spacing-2)',\n fontSize: 'var(--text-md)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: 'var(--paper)',\n color: 'var(--text-base)',\n fontFamily: 'var(--font-sans)',\n cursor: 'pointer',\n outline: 'none',\n transition: 'border-color 0.15s ease',\n};\n\nexport default function Select({\n value,\n onChange,\n options = [],\n disabled = false,\n placeholder,\n style,\n ...rest\n}) {\n return (\n <select\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n disabled={disabled}\n style={{\n ...baseStyle,\n ...(disabled ? { opacity: 0.6, cursor: 'not-allowed' } : {}),\n ...style,\n }}\n onFocus={(e) => { e.currentTarget.style.borderColor = 'var(--border-hover)'; }}\n onBlur={(e) => { e.currentTarget.style.borderColor = 'var(--border)'; }}\n {...rest}\n >\n {placeholder && <option value=\"\">{placeholder}</option>}\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n );\n}\n","\"use client\";\nimport React from 'react';\n\nexport default function FormLabel({ children, htmlFor, style }) {\n return (\n <label\n htmlFor={htmlFor}\n style={{\n display: 'block',\n fontSize: 'var(--text-base)',\n color: 'var(--text-muted)',\n marginBottom: 'var(--spacing-1)',\n fontFamily: 'var(--font-sans)',\n ...style,\n }}\n >\n {children}\n </label>\n );\n}\n","\"use client\";\nimport React, { useState } from 'react';\nimport SmallButton from './SmallButton.jsx';\n\nexport default function InlineConfirm({\n children,\n onConfirm,\n prompt = 'Delete?',\n confirmLabel = 'Yes',\n cancelLabel = 'No',\n style,\n}) {\n const [confirming, setConfirming] = useState(false);\n\n if (confirming) {\n return (\n <span\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 'var(--spacing-1)',\n ...style,\n }}\n >\n <span\n style={{\n fontSize: 'var(--text-sm)',\n color: 'var(--text-muted)',\n }}\n >\n {prompt}\n </span>\n <SmallButton\n variant=\"ghost\"\n size=\"sm\"\n onClick={(e) => {\n e.stopPropagation();\n onConfirm?.();\n setConfirming(false);\n }}\n style={{ color: 'var(--text-ink)', fontWeight: 'var(--font-semibold)' }}\n >\n {confirmLabel}\n </SmallButton>\n <SmallButton\n variant=\"ghost\"\n size=\"sm\"\n onClick={(e) => {\n e.stopPropagation();\n setConfirming(false);\n }}\n >\n {cancelLabel}\n </SmallButton>\n </span>\n );\n }\n\n return (\n <span\n onClick={(e) => {\n e.stopPropagation();\n setConfirming(true);\n }}\n style={{ cursor: 'pointer', ...style }}\n >\n {children}\n </span>\n );\n}\n"],"names":["ColorPalette","colors","groupedColors","acc","color","jsx","category","categoryColors","jsxs","Badge","children","icon","props","computedStyle","Checkbox","checked","onChange","label","size","disabled","style","boxSize","checkSize","e","Check","baseStyle","TextInput","value","placeholder","mono","autoFocus","rest","TextArea","rows","resize","Select","options","opt","FormLabel","htmlFor","InlineConfirm","onConfirm","prompt","confirmLabel","cancelLabel","confirming","setConfirming","useState","SmallButton"],"mappings":"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"}
|
package/dist/InlineConfirm.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as n, jsxs as p } from "react/jsx-runtime";
|
|
2
2
|
import { useState as v } from "react";
|
|
3
|
-
import { Check as
|
|
3
|
+
import { Check as m } from "lucide-react";
|
|
4
4
|
import { S as u } from "./SmallButton.es.js";
|
|
5
5
|
function k({ colors: i = [] }) {
|
|
6
6
|
const e = i.reduce((t, r) => (t[r.category] || (t[r.category] = []), t[r.category].push(r), t), {});
|
|
@@ -100,54 +100,6 @@ function k({ colors: i = [] }) {
|
|
|
100
100
|
}
|
|
101
101
|
);
|
|
102
102
|
}
|
|
103
|
-
function T({ tabs: i = [], active: e, onSelect: t, size: r = "default" }) {
|
|
104
|
-
const a = r === "compact";
|
|
105
|
-
return /* @__PURE__ */ n(
|
|
106
|
-
"div",
|
|
107
|
-
{
|
|
108
|
-
style: {
|
|
109
|
-
display: "flex",
|
|
110
|
-
borderBottom: "1px solid var(--border)",
|
|
111
|
-
background: "var(--paper)",
|
|
112
|
-
flexShrink: 0,
|
|
113
|
-
overflowX: "auto"
|
|
114
|
-
},
|
|
115
|
-
children: i.map((s) => {
|
|
116
|
-
const d = s.key === e;
|
|
117
|
-
return /* @__PURE__ */ n(
|
|
118
|
-
"button",
|
|
119
|
-
{
|
|
120
|
-
onClick: () => t == null ? void 0 : t(s.key),
|
|
121
|
-
style: {
|
|
122
|
-
padding: a ? "8px 12px" : "10px 16px",
|
|
123
|
-
fontSize: a ? "var(--text-md)" : "var(--text-lg)",
|
|
124
|
-
fontWeight: "var(--font-medium)",
|
|
125
|
-
fontFamily: "var(--font-sans)",
|
|
126
|
-
whiteSpace: "nowrap",
|
|
127
|
-
cursor: "pointer",
|
|
128
|
-
background: "none",
|
|
129
|
-
color: d ? "var(--text-ink)" : "var(--text-muted)",
|
|
130
|
-
borderTop: "none",
|
|
131
|
-
borderLeft: "none",
|
|
132
|
-
borderRight: "none",
|
|
133
|
-
borderBottom: d ? "2px solid var(--text-ink)" : "2px solid transparent",
|
|
134
|
-
transition: "color 0.15s, border-color 0.15s",
|
|
135
|
-
letterSpacing: "-0.01em"
|
|
136
|
-
},
|
|
137
|
-
onMouseEnter: (o) => {
|
|
138
|
-
d || (o.currentTarget.style.color = "var(--text-strong)");
|
|
139
|
-
},
|
|
140
|
-
onMouseLeave: (o) => {
|
|
141
|
-
d || (o.currentTarget.style.color = "var(--text-muted)");
|
|
142
|
-
},
|
|
143
|
-
children: s.label
|
|
144
|
-
},
|
|
145
|
-
s.key
|
|
146
|
-
);
|
|
147
|
-
})
|
|
148
|
-
}
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
103
|
function z({ children: i, color: e, icon: t, ...r }) {
|
|
152
104
|
const s = {
|
|
153
105
|
...{
|
|
@@ -166,7 +118,7 @@ function z({ children: i, color: e, icon: t, ...r }) {
|
|
|
166
118
|
i
|
|
167
119
|
] });
|
|
168
120
|
}
|
|
169
|
-
function
|
|
121
|
+
function F({
|
|
170
122
|
checked: i = !1,
|
|
171
123
|
onChange: e,
|
|
172
124
|
label: t,
|
|
@@ -210,7 +162,7 @@ function B({
|
|
|
210
162
|
flexShrink: 0,
|
|
211
163
|
opacity: a ? 0.5 : 1
|
|
212
164
|
},
|
|
213
|
-
children: i && /* @__PURE__ */ n(
|
|
165
|
+
children: i && /* @__PURE__ */ n(m, { size: l, style: { color: "white" }, strokeWidth: 3 })
|
|
214
166
|
}
|
|
215
167
|
),
|
|
216
168
|
t
|
|
@@ -218,7 +170,7 @@ function B({
|
|
|
218
170
|
}
|
|
219
171
|
);
|
|
220
172
|
}
|
|
221
|
-
const
|
|
173
|
+
const f = {
|
|
222
174
|
width: "100%",
|
|
223
175
|
padding: "var(--spacing-2)",
|
|
224
176
|
fontSize: "var(--text-md)",
|
|
@@ -230,7 +182,7 @@ const m = {
|
|
|
230
182
|
outline: "none",
|
|
231
183
|
transition: "border-color 0.15s ease"
|
|
232
184
|
};
|
|
233
|
-
function
|
|
185
|
+
function B({
|
|
234
186
|
value: i,
|
|
235
187
|
onChange: e,
|
|
236
188
|
placeholder: t,
|
|
@@ -250,7 +202,7 @@ function F({
|
|
|
250
202
|
disabled: r,
|
|
251
203
|
autoFocus: s,
|
|
252
204
|
style: {
|
|
253
|
-
...
|
|
205
|
+
...f,
|
|
254
206
|
...a ? { fontFamily: "var(--font-mono)" } : {},
|
|
255
207
|
...r ? { opacity: 0.6, cursor: "not-allowed" } : {},
|
|
256
208
|
...d
|
|
@@ -265,7 +217,7 @@ function F({
|
|
|
265
217
|
}
|
|
266
218
|
);
|
|
267
219
|
}
|
|
268
|
-
const
|
|
220
|
+
const g = {
|
|
269
221
|
width: "100%",
|
|
270
222
|
padding: "var(--spacing-2)",
|
|
271
223
|
fontSize: "var(--text-md)",
|
|
@@ -277,7 +229,7 @@ const x = {
|
|
|
277
229
|
outline: "none",
|
|
278
230
|
transition: "border-color 0.15s ease"
|
|
279
231
|
};
|
|
280
|
-
function
|
|
232
|
+
function T({
|
|
281
233
|
value: i,
|
|
282
234
|
onChange: e,
|
|
283
235
|
placeholder: t,
|
|
@@ -297,7 +249,7 @@ function w({
|
|
|
297
249
|
disabled: r,
|
|
298
250
|
rows: s,
|
|
299
251
|
style: {
|
|
300
|
-
...
|
|
252
|
+
...g,
|
|
301
253
|
resize: d ? "vertical" : "none",
|
|
302
254
|
minHeight: s * 20,
|
|
303
255
|
...a ? { fontFamily: "var(--font-mono)" } : {},
|
|
@@ -314,7 +266,7 @@ function w({
|
|
|
314
266
|
}
|
|
315
267
|
);
|
|
316
268
|
}
|
|
317
|
-
const
|
|
269
|
+
const x = {
|
|
318
270
|
width: "100%",
|
|
319
271
|
padding: "var(--spacing-1) var(--spacing-2)",
|
|
320
272
|
fontSize: "var(--text-md)",
|
|
@@ -327,7 +279,7 @@ const g = {
|
|
|
327
279
|
outline: "none",
|
|
328
280
|
transition: "border-color 0.15s ease"
|
|
329
281
|
};
|
|
330
|
-
function
|
|
282
|
+
function w({
|
|
331
283
|
value: i,
|
|
332
284
|
onChange: e,
|
|
333
285
|
options: t = [],
|
|
@@ -343,7 +295,7 @@ function C({
|
|
|
343
295
|
onChange: (o) => e == null ? void 0 : e(o.target.value),
|
|
344
296
|
disabled: r,
|
|
345
297
|
style: {
|
|
346
|
-
...
|
|
298
|
+
...x,
|
|
347
299
|
...r ? { opacity: 0.6, cursor: "not-allowed" } : {},
|
|
348
300
|
...s
|
|
349
301
|
},
|
|
@@ -361,7 +313,7 @@ function C({
|
|
|
361
313
|
}
|
|
362
314
|
);
|
|
363
315
|
}
|
|
364
|
-
function
|
|
316
|
+
function C({ children: i, htmlFor: e, style: t }) {
|
|
365
317
|
return /* @__PURE__ */ n(
|
|
366
318
|
"label",
|
|
367
319
|
{
|
|
@@ -445,13 +397,12 @@ function I({
|
|
|
445
397
|
}
|
|
446
398
|
export {
|
|
447
399
|
z as B,
|
|
448
|
-
|
|
449
|
-
|
|
400
|
+
F as C,
|
|
401
|
+
C as F,
|
|
450
402
|
I,
|
|
451
|
-
|
|
403
|
+
w as S,
|
|
452
404
|
T,
|
|
453
405
|
k as a,
|
|
454
|
-
|
|
455
|
-
F as c
|
|
406
|
+
B as b
|
|
456
407
|
};
|
|
457
408
|
//# sourceMappingURL=InlineConfirm.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InlineConfirm.es.js","sources":["../src/components/primitives/ColorPalette.jsx","../src/components/primitives/Tabs.jsx","../src/components/primitives/Badge.jsx","../src/components/primitives/Checkbox.jsx","../src/components/primitives/TextInput.jsx","../src/components/primitives/TextArea.jsx","../src/components/primitives/Select.jsx","../src/components/primitives/FormLabel.jsx","../src/components/primitives/InlineConfirm.jsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n/**\n * ColorPalette component\n * Renders grouped color chips with name, hex, and usage text.\n *\n * @param {{ name: string; hex: string; usage: string; category: string; }[]} colors\n */\nexport default function ColorPalette({ colors = [] }) {\n // Group colors by category\n const groupedColors = colors.reduce((acc, color) => {\n if (!acc[color.category]) {\n acc[color.category] = [];\n }\n acc[color.category].push(color);\n return acc;\n }, {});\n\n return (\n <div\n style={{\n fontFamily: \"system-ui, -apple-system, sans-serif\",\n }}\n >\n {Object.entries(groupedColors).map(([category, categoryColors]) => (\n <div key={category} style={{ marginBottom: \"24px\" }}>\n {/* Category header */}\n <div\n style={{\n fontSize: '11px',\n letterSpacing: '0.14em',\n textTransform: 'uppercase',\n marginBottom: '12px',\n color: \"rgba(30, 33, 37, 0.62)\",\n fontWeight: 650,\n }}\n >\n {category}\n </div>\n\n {/* Color chips grid */}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(220px, 1fr))\",\n gap: \"12px\",\n }}\n >\n {categoryColors.map((color, i) => (\n <div\n key={i}\n style={{\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"12px\",\n overflow: \"hidden\",\n background: \"rgba(255, 255, 255, 0.72)\",\n }}\n >\n {/* Color swatch */}\n <div\n style={{\n height: \"64px\",\n background: color.hex,\n borderBottom: \"1px solid rgba(52, 58, 64, 0.10)\",\n }}\n />\n\n {/* Color info */}\n <div style={{ padding: \"10px 12px\" }}>\n <div\n style={{\n fontSize: \"13px\",\n fontWeight: 680,\n color: \"rgba(30, 33, 37, 0.92)\",\n marginBottom: \"4px\",\n }}\n >\n {color.name}\n </div>\n <div\n style={{\n fontSize: \"11.5px\",\n fontFamily: \"ui-monospace, monospace\",\n color: \"rgba(30, 33, 37, 0.52)\",\n marginBottom: \"6px\",\n }}\n >\n {color.hex}\n </div>\n <div\n style={{\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.62)\",\n lineHeight: 1.4,\n }}\n >\n {color.usage}\n </div>\n </div>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n\n\n","\"use client\";\n\nimport React from \"react\";\n\n/**\n * Tabs Component\n * Horizontal tab bar matching the Chordia design system.\n * Uses warm underline for active state, muted text for inactive.\n *\n * @param {{ key: string; label: string }[]} tabs - Tab definitions\n * @param {string} active - Currently active tab key\n * @param {(key: string) => void} onSelect - Called when a tab is clicked\n * @param {\"default\" | \"compact\"} [size=\"default\"] - Tab size variant\n */\nexport default function Tabs({ tabs = [], active, onSelect, size = \"default\" }) {\n const isCompact = size === \"compact\";\n\n return (\n <div\n style={{\n display: \"flex\",\n borderBottom: \"1px solid var(--border)\",\n background: \"var(--paper)\",\n flexShrink: 0,\n overflowX: \"auto\",\n }}\n >\n {tabs.map((tab) => {\n const isActive = tab.key === active;\n return (\n <button\n key={tab.key}\n onClick={() => onSelect?.(tab.key)}\n style={{\n padding: isCompact ? \"8px 12px\" : \"10px 16px\",\n fontSize: isCompact ? 'var(--text-md)' : 'var(--text-lg)',\n fontWeight: 'var(--font-medium)',\n fontFamily: \"var(--font-sans)\",\n whiteSpace: \"nowrap\",\n cursor: \"pointer\",\n background: \"none\",\n color: isActive ? \"var(--text-ink)\" : \"var(--text-muted)\",\n borderTop: \"none\",\n borderLeft: \"none\",\n borderRight: \"none\",\n borderBottom: isActive\n ? \"2px solid var(--text-ink)\"\n : \"2px solid transparent\",\n transition: \"color 0.15s, border-color 0.15s\",\n letterSpacing: \"-0.01em\",\n }}\n onMouseEnter={(e) => {\n if (!isActive) e.currentTarget.style.color = \"var(--text-strong)\";\n }}\n onMouseLeave={(e) => {\n if (!isActive) e.currentTarget.style.color = \"var(--text-muted)\";\n }}\n >\n {tab.label}\n </button>\n );\n })}\n </div>\n );\n}\n","\"use client\";\n\nexport default function Badge({ children, color, icon, ...props }) {\n const baseStyle = {\n fontSize: 'var(--text-xs)',\n padding: '1px 5px',\n borderRadius: 'var(--radius-sm)',\n display: 'inline-flex',\n alignItems: 'center'\n };\n\n const computedStyle = {\n ...baseStyle,\n color: color,\n backgroundColor: `color-mix(in srgb, ${color} 15%, transparent)`,\n ...props.style\n };\n\n return (\n <span style={computedStyle} {...props}>\n {icon && (\n <span style={{ marginRight: '3px' }}>\n {icon}\n </span>\n )}\n {children}\n </span>\n );\n}","\"use client\";\n\nimport { Check } from 'lucide-react';\n\n/**\n * Styled checkbox matching Chordia design system.\n * Uses --rail-tone (purple) when checked, --border when unchecked.\n * No native browser checkbox — fully custom.\n *\n * @param {boolean} checked\n * @param {function} onChange - receives new boolean value\n * @param {string} [label] - optional label text\n * @param {'md'|'sm'} [size='md']\n * @param {boolean} [disabled=false]\n * @param {object} [style] - override style on the outer label\n */\nexport default function Checkbox({\n checked = false,\n onChange,\n label,\n size = 'md',\n disabled = false,\n style,\n ...props\n}) {\n const boxSize = size === 'sm' ? 12 : 16;\n const checkSize = size === 'sm' ? 8 : 11;\n\n return (\n <label\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: size === 'sm' ? 3 : 'var(--spacing-2)',\n fontSize: size === 'sm' ? 'var(--text-xs)' : 'var(--text-sm)',\n color: disabled ? 'var(--text-faint)' : 'var(--text-base)',\n cursor: disabled ? 'not-allowed' : 'pointer',\n userSelect: 'none',\n ...style,\n }}\n onClick={(e) => {\n e.preventDefault();\n if (!disabled && onChange) onChange(!checked);\n }}\n {...props}\n >\n <span\n style={{\n width: boxSize,\n height: boxSize,\n borderRadius: size === 'sm' ? 2 : 3,\n border: `1px solid ${checked ? 'var(--text-ink)' : 'var(--border)'}`,\n background: checked ? 'var(--text-ink)' : 'transparent',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'var(--transition-fast)',\n flexShrink: 0,\n opacity: disabled ? 0.5 : 1,\n }}\n >\n {checked && (\n <Check size={checkSize} style={{ color: 'white' }} strokeWidth={3} />\n )}\n </span>\n {label}\n </label>\n );\n}\n","\"use client\";\nimport React from 'react';\n\nconst baseStyle = {\n width: '100%',\n padding: 'var(--spacing-2)',\n fontSize: 'var(--text-md)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: 'var(--paper)',\n color: 'var(--text-base)',\n fontFamily: 'var(--font-sans)',\n outline: 'none',\n transition: 'border-color 0.15s ease',\n};\n\nexport default function TextInput({\n value,\n onChange,\n placeholder,\n disabled = false,\n mono = false,\n autoFocus = false,\n style,\n ...rest\n}) {\n return (\n <input\n type=\"text\"\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n placeholder={placeholder}\n disabled={disabled}\n autoFocus={autoFocus}\n style={{\n ...baseStyle,\n ...(mono ? { fontFamily: 'var(--font-mono)' } : {}),\n ...(disabled ? { opacity: 0.6, cursor: 'not-allowed' } : {}),\n ...style,\n }}\n onFocus={(e) => { e.currentTarget.style.borderColor = 'var(--border-hover)'; }}\n onBlur={(e) => { e.currentTarget.style.borderColor = 'var(--border)'; }}\n {...rest}\n />\n );\n}\n","\"use client\";\nimport React from 'react';\n\nconst baseStyle = {\n width: '100%',\n padding: 'var(--spacing-2)',\n fontSize: 'var(--text-md)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: 'var(--paper)',\n color: 'var(--text-base)',\n fontFamily: 'var(--font-sans)',\n outline: 'none',\n transition: 'border-color 0.15s ease',\n};\n\nexport default function TextArea({\n value,\n onChange,\n placeholder,\n disabled = false,\n mono = false,\n rows = 4,\n resize = true,\n style,\n ...rest\n}) {\n return (\n <textarea\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n placeholder={placeholder}\n disabled={disabled}\n rows={rows}\n style={{\n ...baseStyle,\n resize: resize ? 'vertical' : 'none',\n minHeight: rows * 20,\n ...(mono ? { fontFamily: 'var(--font-mono)' } : {}),\n ...(disabled ? { opacity: 0.6, cursor: 'not-allowed' } : {}),\n ...style,\n }}\n onFocus={(e) => { e.currentTarget.style.borderColor = 'var(--border-hover)'; }}\n onBlur={(e) => { e.currentTarget.style.borderColor = 'var(--border)'; }}\n {...rest}\n />\n );\n}\n","\"use client\";\nimport React from 'react';\n\nconst baseStyle = {\n width: '100%',\n padding: 'var(--spacing-1) var(--spacing-2)',\n fontSize: 'var(--text-md)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: 'var(--paper)',\n color: 'var(--text-base)',\n fontFamily: 'var(--font-sans)',\n cursor: 'pointer',\n outline: 'none',\n transition: 'border-color 0.15s ease',\n};\n\nexport default function Select({\n value,\n onChange,\n options = [],\n disabled = false,\n placeholder,\n style,\n ...rest\n}) {\n return (\n <select\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n disabled={disabled}\n style={{\n ...baseStyle,\n ...(disabled ? { opacity: 0.6, cursor: 'not-allowed' } : {}),\n ...style,\n }}\n onFocus={(e) => { e.currentTarget.style.borderColor = 'var(--border-hover)'; }}\n onBlur={(e) => { e.currentTarget.style.borderColor = 'var(--border)'; }}\n {...rest}\n >\n {placeholder && <option value=\"\">{placeholder}</option>}\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n );\n}\n","\"use client\";\nimport React from 'react';\n\nexport default function FormLabel({ children, htmlFor, style }) {\n return (\n <label\n htmlFor={htmlFor}\n style={{\n display: 'block',\n fontSize: 'var(--text-base)',\n color: 'var(--text-muted)',\n marginBottom: 'var(--spacing-1)',\n fontFamily: 'var(--font-sans)',\n ...style,\n }}\n >\n {children}\n </label>\n );\n}\n","\"use client\";\nimport React, { useState } from 'react';\nimport SmallButton from './SmallButton.jsx';\n\nexport default function InlineConfirm({\n children,\n onConfirm,\n prompt = 'Delete?',\n confirmLabel = 'Yes',\n cancelLabel = 'No',\n style,\n}) {\n const [confirming, setConfirming] = useState(false);\n\n if (confirming) {\n return (\n <span\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 'var(--spacing-1)',\n ...style,\n }}\n >\n <span\n style={{\n fontSize: 'var(--text-sm)',\n color: 'var(--text-muted)',\n }}\n >\n {prompt}\n </span>\n <SmallButton\n variant=\"ghost\"\n size=\"sm\"\n onClick={(e) => {\n e.stopPropagation();\n onConfirm?.();\n setConfirming(false);\n }}\n style={{ color: 'var(--text-ink)', fontWeight: 'var(--font-semibold)' }}\n >\n {confirmLabel}\n </SmallButton>\n <SmallButton\n variant=\"ghost\"\n size=\"sm\"\n onClick={(e) => {\n e.stopPropagation();\n setConfirming(false);\n }}\n >\n {cancelLabel}\n </SmallButton>\n </span>\n );\n }\n\n return (\n <span\n onClick={(e) => {\n e.stopPropagation();\n setConfirming(true);\n }}\n style={{ cursor: 'pointer', ...style }}\n >\n {children}\n </span>\n );\n}\n"],"names":["ColorPalette","colors","groupedColors","acc","color","jsx","category","categoryColors","i","jsxs","Tabs","tabs","active","onSelect","size","isCompact","tab","isActive","e","Badge","children","icon","props","computedStyle","Checkbox","checked","onChange","label","disabled","style","boxSize","checkSize","Check","baseStyle","TextInput","value","placeholder","mono","autoFocus","rest","TextArea","rows","resize","Select","options","opt","FormLabel","htmlFor","InlineConfirm","onConfirm","prompt","confirmLabel","cancelLabel","confirming","setConfirming","useState","SmallButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InlineConfirm.es.js","sources":["../src/components/primitives/ColorPalette.jsx","../src/components/primitives/Badge.jsx","../src/components/primitives/Checkbox.jsx","../src/components/primitives/TextInput.jsx","../src/components/primitives/TextArea.jsx","../src/components/primitives/Select.jsx","../src/components/primitives/FormLabel.jsx","../src/components/primitives/InlineConfirm.jsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n/**\n * ColorPalette component\n * Renders grouped color chips with name, hex, and usage text.\n *\n * @param {{ name: string; hex: string; usage: string; category: string; }[]} colors\n */\nexport default function ColorPalette({ colors = [] }) {\n // Group colors by category\n const groupedColors = colors.reduce((acc, color) => {\n if (!acc[color.category]) {\n acc[color.category] = [];\n }\n acc[color.category].push(color);\n return acc;\n }, {});\n\n return (\n <div\n style={{\n fontFamily: \"system-ui, -apple-system, sans-serif\",\n }}\n >\n {Object.entries(groupedColors).map(([category, categoryColors]) => (\n <div key={category} style={{ marginBottom: \"24px\" }}>\n {/* Category header */}\n <div\n style={{\n fontSize: '11px',\n letterSpacing: '0.14em',\n textTransform: 'uppercase',\n marginBottom: '12px',\n color: \"rgba(30, 33, 37, 0.62)\",\n fontWeight: 650,\n }}\n >\n {category}\n </div>\n\n {/* Color chips grid */}\n <div\n style={{\n display: \"grid\",\n gridTemplateColumns: \"repeat(auto-fill, minmax(220px, 1fr))\",\n gap: \"12px\",\n }}\n >\n {categoryColors.map((color, i) => (\n <div\n key={i}\n style={{\n border: \"1px solid rgba(52, 58, 64, 0.12)\",\n borderRadius: \"12px\",\n overflow: \"hidden\",\n background: \"rgba(255, 255, 255, 0.72)\",\n }}\n >\n {/* Color swatch */}\n <div\n style={{\n height: \"64px\",\n background: color.hex,\n borderBottom: \"1px solid rgba(52, 58, 64, 0.10)\",\n }}\n />\n\n {/* Color info */}\n <div style={{ padding: \"10px 12px\" }}>\n <div\n style={{\n fontSize: \"13px\",\n fontWeight: 680,\n color: \"rgba(30, 33, 37, 0.92)\",\n marginBottom: \"4px\",\n }}\n >\n {color.name}\n </div>\n <div\n style={{\n fontSize: \"11.5px\",\n fontFamily: \"ui-monospace, monospace\",\n color: \"rgba(30, 33, 37, 0.52)\",\n marginBottom: \"6px\",\n }}\n >\n {color.hex}\n </div>\n <div\n style={{\n fontSize: \"11.5px\",\n color: \"rgba(30, 33, 37, 0.62)\",\n lineHeight: 1.4,\n }}\n >\n {color.usage}\n </div>\n </div>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n\n\n","\"use client\";\n\nexport default function Badge({ children, color, icon, ...props }) {\n const baseStyle = {\n fontSize: 'var(--text-xs)',\n padding: '1px 5px',\n borderRadius: 'var(--radius-sm)',\n display: 'inline-flex',\n alignItems: 'center'\n };\n\n const computedStyle = {\n ...baseStyle,\n color: color,\n backgroundColor: `color-mix(in srgb, ${color} 15%, transparent)`,\n ...props.style\n };\n\n return (\n <span style={computedStyle} {...props}>\n {icon && (\n <span style={{ marginRight: '3px' }}>\n {icon}\n </span>\n )}\n {children}\n </span>\n );\n}","\"use client\";\n\nimport { Check } from 'lucide-react';\n\n/**\n * Styled checkbox matching Chordia design system.\n * Uses --rail-tone (purple) when checked, --border when unchecked.\n * No native browser checkbox — fully custom.\n *\n * @param {boolean} checked\n * @param {function} onChange - receives new boolean value\n * @param {string} [label] - optional label text\n * @param {'md'|'sm'} [size='md']\n * @param {boolean} [disabled=false]\n * @param {object} [style] - override style on the outer label\n */\nexport default function Checkbox({\n checked = false,\n onChange,\n label,\n size = 'md',\n disabled = false,\n style,\n ...props\n}) {\n const boxSize = size === 'sm' ? 12 : 16;\n const checkSize = size === 'sm' ? 8 : 11;\n\n return (\n <label\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: size === 'sm' ? 3 : 'var(--spacing-2)',\n fontSize: size === 'sm' ? 'var(--text-xs)' : 'var(--text-sm)',\n color: disabled ? 'var(--text-faint)' : 'var(--text-base)',\n cursor: disabled ? 'not-allowed' : 'pointer',\n userSelect: 'none',\n ...style,\n }}\n onClick={(e) => {\n e.preventDefault();\n if (!disabled && onChange) onChange(!checked);\n }}\n {...props}\n >\n <span\n style={{\n width: boxSize,\n height: boxSize,\n borderRadius: size === 'sm' ? 2 : 3,\n border: `1px solid ${checked ? 'var(--text-ink)' : 'var(--border)'}`,\n background: checked ? 'var(--text-ink)' : 'transparent',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'var(--transition-fast)',\n flexShrink: 0,\n opacity: disabled ? 0.5 : 1,\n }}\n >\n {checked && (\n <Check size={checkSize} style={{ color: 'white' }} strokeWidth={3} />\n )}\n </span>\n {label}\n </label>\n );\n}\n","\"use client\";\nimport React from 'react';\n\nconst baseStyle = {\n width: '100%',\n padding: 'var(--spacing-2)',\n fontSize: 'var(--text-md)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: 'var(--paper)',\n color: 'var(--text-base)',\n fontFamily: 'var(--font-sans)',\n outline: 'none',\n transition: 'border-color 0.15s ease',\n};\n\nexport default function TextInput({\n value,\n onChange,\n placeholder,\n disabled = false,\n mono = false,\n autoFocus = false,\n style,\n ...rest\n}) {\n return (\n <input\n type=\"text\"\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n placeholder={placeholder}\n disabled={disabled}\n autoFocus={autoFocus}\n style={{\n ...baseStyle,\n ...(mono ? { fontFamily: 'var(--font-mono)' } : {}),\n ...(disabled ? { opacity: 0.6, cursor: 'not-allowed' } : {}),\n ...style,\n }}\n onFocus={(e) => { e.currentTarget.style.borderColor = 'var(--border-hover)'; }}\n onBlur={(e) => { e.currentTarget.style.borderColor = 'var(--border)'; }}\n {...rest}\n />\n );\n}\n","\"use client\";\nimport React from 'react';\n\nconst baseStyle = {\n width: '100%',\n padding: 'var(--spacing-2)',\n fontSize: 'var(--text-md)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: 'var(--paper)',\n color: 'var(--text-base)',\n fontFamily: 'var(--font-sans)',\n outline: 'none',\n transition: 'border-color 0.15s ease',\n};\n\nexport default function TextArea({\n value,\n onChange,\n placeholder,\n disabled = false,\n mono = false,\n rows = 4,\n resize = true,\n style,\n ...rest\n}) {\n return (\n <textarea\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n placeholder={placeholder}\n disabled={disabled}\n rows={rows}\n style={{\n ...baseStyle,\n resize: resize ? 'vertical' : 'none',\n minHeight: rows * 20,\n ...(mono ? { fontFamily: 'var(--font-mono)' } : {}),\n ...(disabled ? { opacity: 0.6, cursor: 'not-allowed' } : {}),\n ...style,\n }}\n onFocus={(e) => { e.currentTarget.style.borderColor = 'var(--border-hover)'; }}\n onBlur={(e) => { e.currentTarget.style.borderColor = 'var(--border)'; }}\n {...rest}\n />\n );\n}\n","\"use client\";\nimport React from 'react';\n\nconst baseStyle = {\n width: '100%',\n padding: 'var(--spacing-1) var(--spacing-2)',\n fontSize: 'var(--text-md)',\n border: '1px solid var(--border)',\n borderRadius: 'var(--radius)',\n backgroundColor: 'var(--paper)',\n color: 'var(--text-base)',\n fontFamily: 'var(--font-sans)',\n cursor: 'pointer',\n outline: 'none',\n transition: 'border-color 0.15s ease',\n};\n\nexport default function Select({\n value,\n onChange,\n options = [],\n disabled = false,\n placeholder,\n style,\n ...rest\n}) {\n return (\n <select\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n disabled={disabled}\n style={{\n ...baseStyle,\n ...(disabled ? { opacity: 0.6, cursor: 'not-allowed' } : {}),\n ...style,\n }}\n onFocus={(e) => { e.currentTarget.style.borderColor = 'var(--border-hover)'; }}\n onBlur={(e) => { e.currentTarget.style.borderColor = 'var(--border)'; }}\n {...rest}\n >\n {placeholder && <option value=\"\">{placeholder}</option>}\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n );\n}\n","\"use client\";\nimport React from 'react';\n\nexport default function FormLabel({ children, htmlFor, style }) {\n return (\n <label\n htmlFor={htmlFor}\n style={{\n display: 'block',\n fontSize: 'var(--text-base)',\n color: 'var(--text-muted)',\n marginBottom: 'var(--spacing-1)',\n fontFamily: 'var(--font-sans)',\n ...style,\n }}\n >\n {children}\n </label>\n );\n}\n","\"use client\";\nimport React, { useState } from 'react';\nimport SmallButton from './SmallButton.jsx';\n\nexport default function InlineConfirm({\n children,\n onConfirm,\n prompt = 'Delete?',\n confirmLabel = 'Yes',\n cancelLabel = 'No',\n style,\n}) {\n const [confirming, setConfirming] = useState(false);\n\n if (confirming) {\n return (\n <span\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: 'var(--spacing-1)',\n ...style,\n }}\n >\n <span\n style={{\n fontSize: 'var(--text-sm)',\n color: 'var(--text-muted)',\n }}\n >\n {prompt}\n </span>\n <SmallButton\n variant=\"ghost\"\n size=\"sm\"\n onClick={(e) => {\n e.stopPropagation();\n onConfirm?.();\n setConfirming(false);\n }}\n style={{ color: 'var(--text-ink)', fontWeight: 'var(--font-semibold)' }}\n >\n {confirmLabel}\n </SmallButton>\n <SmallButton\n variant=\"ghost\"\n size=\"sm\"\n onClick={(e) => {\n e.stopPropagation();\n setConfirming(false);\n }}\n >\n {cancelLabel}\n </SmallButton>\n </span>\n );\n }\n\n return (\n <span\n onClick={(e) => {\n e.stopPropagation();\n setConfirming(true);\n }}\n style={{ cursor: 'pointer', ...style }}\n >\n {children}\n </span>\n );\n}\n"],"names":["ColorPalette","colors","groupedColors","acc","color","jsx","category","categoryColors","i","jsxs","Badge","children","icon","props","computedStyle","Checkbox","checked","onChange","label","size","disabled","style","boxSize","checkSize","e","Check","baseStyle","TextInput","value","placeholder","mono","autoFocus","rest","TextArea","rows","resize","Select","options","opt","FormLabel","htmlFor","InlineConfirm","onConfirm","prompt","confirmLabel","cancelLabel","confirming","setConfirming","useState","SmallButton"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),y=require("react"),r=require("lucide-react");function B({onUploadCall:d,onConnectSource:c,onUseSample:s,showExamples:a=!1}){const[g,u]=y.useState(null),[o,x]=y.useState(null),[l,b]=y.useState(null),[h,t]=y.useState(null),m=y.useRef(null),j=[{id:"five9",name:"Five9",status:"available",description:"Cloud contact center platform"},{id:"twilio",name:"Twilio Flex",status:"available",description:"Programmable contact center"},{id:"genesys",name:"Genesys Cloud",status:"available",description:"All-in-one cloud contact center"},{id:"zoom",name:"Zoom Phone",status:"coming-soon",description:"Cloud phone system"}],f=[{id:"retail-support",name:"Retail Customer Support",description:"Sample interactions from retail customer service team",interactions:24,dateRange:"Last 30 days"},{id:"healthcare-billing",name:"Healthcare Billing Inquiries",description:"Patient billing and insurance verification calls",interactions:18,dateRange:"Last 2 weeks"},{id:"financial-services",name:"Financial Services Compliance",description:"Banking and financial advisory interactions",interactions:32,dateRange:"Last 45 days"}],v=i=>{var p;const n=(p=i.target.files)==null?void 0:p[0];if(n){const R=n.type.startsWith("audio/"),W=n.type.startsWith("video/");R||W?(x({name:n.name,type:n.type,size:n.size,lastModified:new Date(n.lastModified)}),d?d(n):console.log("File uploaded:",n.name,n.type,`(${(n.size/1024/1024).toFixed(2)} MB)`)):alert("Please select an audio or video file.")}m.current&&(m.current.value="")},C=i=>{const n=j.find(p=>p.id===i);n&&n.status==="available"&&(b(n),c?c(n):console.log("Connected to:",n.name))},S=i=>{const n=f.find(p=>p.id===i);n&&(t(n),s?s(n):console.log("Selected project:",n.name))},k=()=>{m.current&&m.current.click()},z=()=>{a&&!h||s&&s(h||{id:"default",name:"Demo Project"})},w=()=>{a&&!l||c&&c(l||{id:"default",name:"Data Source"})},T=[{id:"upload",icon:r.Upload,title:"Upload an interaction",description:"Drop an audio or video recording to see what Compass surfaces",recommended:!1,onClick:k},{id:"sample",icon:r.Sparkles,title:"Explore a demonstration project",description:"See how Chordia Compass surfaces insights from real interaction data",recommended:!0,onClick:z},{id:"connect",icon:r.Link,title:"Connect a data source",description:"Link your existing system to automatically analyze interactions",recommended:!1,onClick:w}];return e.jsxs("div",{style:{minHeight:"100vh",background:"var(--surface-warm)",display:"flex",alignItems:"center",justifyContent:"center",padding:"32px"},children:[e.jsx("input",{ref:m,type:"file",accept:"audio/*,video/*",onChange:v,style:{display:"none"}}),e.jsxs("div",{style:{maxWidth:"680px",width:"100%"},children:[e.jsxs("div",{style:{textAlign:"center",marginBottom:"48px"},children:[e.jsx("h1",{style:{fontSize:"32px",fontWeight:760,letterSpacing:"-0.02em",color:"rgba(30, 33, 37, 0.92)",marginBottom:"12px",lineHeight:1.2},children:"Experience Compass with one interaction"}),e.jsx("p",{style:{fontSize:"15px",color:"rgba(30, 33, 37, 0.65)",lineHeight:1.5,maxWidth:"520px",margin:"0 auto"},children:"Compass surfaces evidence, signals, and actionable insights from customer interactions. Start by exploring what it reveals."})]}),e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"16px"},children:T.map(i=>{const n=i.icon,p=g===i.id;return e.jsxs("button",{type:"button",onClick:i.onClick,onMouseEnter:()=>u(i.id),onMouseLeave:()=>u(null),style:{position:"relative",width:"100%",padding:"24px 28px",background:p?"rgba(255, 255, 255, 0.95)":"rgba(255, 255, 255, 0.85)",border:i.recommended?"2px solid rgba(184, 156, 106, 0.35)":p?"1px solid rgba(52, 58, 64, 0.20)":"1px solid rgba(52, 58, 64, 0.12)",borderRadius:"16px",cursor:"pointer",textAlign:"left",transition:"all 0.2s ease",transform:p?"translateY(-2px)":"translateY(0)",boxShadow:p?"0 12px 28px rgba(30, 33, 37, 0.12)":"0 4px 12px rgba(30, 33, 37, 0.06)"},children:[i.recommended&&e.jsx("div",{style:{position:"absolute",top:"16px",right:"20px",fontSize:"10px",fontWeight:650,letterSpacing:"0.06em",textTransform:"uppercase",color:"rgba(184, 156, 106, 0.75)",background:"rgba(184, 156, 106, 0.12)",padding:"4px 8px",borderRadius:"6px",border:"1px solid rgba(184, 156, 106, 0.2)"},children:"Recommended"}),e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:"18px"},children:[e.jsx("div",{style:{width:"48px",height:"48px",borderRadius:"12px",background:i.recommended?"rgba(184, 156, 106, 0.12)":"rgba(231, 212, 162, 0.20)",border:i.recommended?"1px solid rgba(184, 156, 106, 0.25)":"1px solid rgba(231, 212, 162, 0.35)",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:e.jsx(n,{size:22,style:{color:i.recommended?"rgba(184, 156, 106, 0.75)":"rgba(30, 33, 37, 0.52)"}})}),e.jsxs("div",{style:{flex:1,paddingTop:"2px"},children:[e.jsx("div",{style:{fontSize:"17px",fontWeight:680,letterSpacing:"-0.01em",color:"rgba(30, 33, 37, 0.92)",marginBottom:"6px",lineHeight:1.3},children:i.title}),e.jsx("div",{style:{fontSize:"13.5px",color:"rgba(30, 33, 37, 0.62)",lineHeight:1.5},children:i.description})]})]})]},i.id)})}),e.jsx("div",{style:{marginTop:"32px",textAlign:"center",fontSize:"12px",color:"rgba(30, 33, 37, 0.52)",lineHeight:1.5},children:"Your workspace has been created automatically. You can configure settings and add teammates later."}),a&&e.jsxs("div",{style:{marginTop:"48px",paddingTop:"32px",borderTop:"1px solid rgba(52, 58, 64, 0.12)"},children:[e.jsx("h2",{style:{fontSize:"20px",fontWeight:680,letterSpacing:"-0.01em",color:"rgba(30, 33, 37, 0.92)",marginBottom:"24px"},children:"Testing Examples"}),o&&e.jsxs("div",{style:{marginBottom:"24px",padding:"16px",background:"rgba(255, 255, 255, 0.85)",border:"1px solid rgba(52, 58, 64, 0.12)",borderRadius:"12px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[e.jsx(r.CheckCircle2,{size:18,style:{color:"#1F8F5A"}}),e.jsx("span",{style:{fontSize:"14px",fontWeight:650,color:"rgba(30, 33, 37, 0.92)"},children:"File Uploaded"})]}),e.jsx("button",{onClick:()=>x(null),style:{background:"none",border:"none",cursor:"pointer",padding:"4px",display:"flex",alignItems:"center"},children:e.jsx(r.X,{size:16,style:{color:"rgba(30, 33, 37, 0.42)"}})})]}),e.jsxs("div",{style:{fontSize:"13px",color:"rgba(30, 33, 37, 0.65)",lineHeight:1.5},children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Name:"})," ",o.name]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Type:"})," ",o.type]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Size:"})," ",(o.size/1024/1024).toFixed(2)," MB"]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Uploaded:"})," ",o.lastModified.toLocaleString()]})]})]}),!h&&e.jsxs("div",{style:{marginBottom:"24px"},children:[e.jsx("h3",{style:{fontSize:"15px",fontWeight:650,color:"rgba(30, 33, 37, 0.82)",marginBottom:"12px"},children:"Select a Demonstration Project:"}),e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},children:f.map(i=>e.jsxs("button",{onClick:()=>S(i.id),style:{padding:"12px 16px",background:"rgba(255, 255, 255, 0.85)",border:"1px solid rgba(52, 58, 64, 0.12)",borderRadius:"8px",textAlign:"left",cursor:"pointer",transition:"all 0.15s ease"},onMouseEnter:n=>{n.currentTarget.style.background="rgba(255, 255, 255, 0.95)",n.currentTarget.style.borderColor="rgba(52, 58, 64, 0.20)"},onMouseLeave:n=>{n.currentTarget.style.background="rgba(255, 255, 255, 0.85)",n.currentTarget.style.borderColor="rgba(52, 58, 64, 0.12)"},children:[e.jsx("div",{style:{fontSize:"14px",fontWeight:650,color:"rgba(30, 33, 37, 0.92)",marginBottom:"4px"},children:i.name}),e.jsx("div",{style:{fontSize:"12px",color:"rgba(30, 33, 37, 0.62)",marginBottom:"4px"},children:i.description}),e.jsxs("div",{style:{fontSize:"11px",color:"rgba(30, 33, 37, 0.52)"},children:[i.interactions," interactions · ",i.dateRange]})]},i.id))})]}),h&&e.jsxs("div",{style:{marginBottom:"24px",padding:"16px",background:"rgba(255, 255, 255, 0.85)",border:"1px solid rgba(52, 58, 64, 0.12)",borderRadius:"12px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[e.jsx(r.CheckCircle2,{size:18,style:{color:"#1F8F5A"}}),e.jsxs("span",{style:{fontSize:"14px",fontWeight:650,color:"rgba(30, 33, 37, 0.92)"},children:["Project Selected: ",h.name]})]}),e.jsx("button",{onClick:()=>t(null),style:{background:"none",border:"none",cursor:"pointer",padding:"4px",display:"flex",alignItems:"center"},children:e.jsx(r.X,{size:16,style:{color:"rgba(30, 33, 37, 0.42)"}})})]}),e.jsxs("div",{style:{fontSize:"13px",color:"rgba(30, 33, 37, 0.65)",lineHeight:1.5},children:[e.jsx("div",{children:h.description}),e.jsxs("div",{style:{marginTop:"4px"},children:[e.jsx("strong",{children:h.interactions})," interactions · ",e.jsx("strong",{children:h.dateRange})]})]})]}),!l&&e.jsxs("div",{style:{marginBottom:"24px"},children:[e.jsx("h3",{style:{fontSize:"15px",fontWeight:650,color:"rgba(30, 33, 37, 0.82)",marginBottom:"12px"},children:"Connect a Data Source:"}),e.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},children:j.map(i=>e.jsx("button",{onClick:()=>C(i.id),disabled:i.status==="coming-soon",style:{padding:"12px 16px",background:i.status==="coming-soon"?"rgba(255, 255, 255, 0.5)":"rgba(255, 255, 255, 0.85)",border:"1px solid rgba(52, 58, 64, 0.12)",borderRadius:"8px",textAlign:"left",cursor:i.status==="coming-soon"?"not-allowed":"pointer",transition:"all 0.15s ease",opacity:i.status==="coming-soon"?.6:1},onMouseEnter:n=>{i.status!=="coming-soon"&&(n.currentTarget.style.background="rgba(255, 255, 255, 0.95)",n.currentTarget.style.borderColor="rgba(52, 58, 64, 0.20)")},onMouseLeave:n=>{i.status!=="coming-soon"&&(n.currentTarget.style.background="rgba(255, 255, 255, 0.85)",n.currentTarget.style.borderColor="rgba(52, 58, 64, 0.12)")},children:e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between"},children:[e.jsxs("div",{children:[e.jsx("div",{style:{fontSize:"14px",fontWeight:650,color:"rgba(30, 33, 37, 0.92)",marginBottom:"4px"},children:i.name}),e.jsx("div",{style:{fontSize:"12px",color:"rgba(30, 33, 37, 0.62)"},children:i.description})]}),i.status==="coming-soon"&&e.jsx("span",{style:{fontSize:"10px",fontWeight:600,color:"rgba(30, 33, 37, 0.42)",background:"rgba(30, 33, 37, 0.08)",padding:"4px 8px",borderRadius:"4px"},children:"Coming Soon"})]})},i.id))})]}),l&&e.jsxs("div",{style:{marginBottom:"24px",padding:"16px",background:"rgba(255, 255, 255, 0.85)",border:"1px solid rgba(52, 58, 64, 0.12)",borderRadius:"12px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"8px"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[e.jsx(r.CheckCircle2,{size:18,style:{color:"#1F8F5A"}}),e.jsxs("span",{style:{fontSize:"14px",fontWeight:650,color:"rgba(30, 33, 37, 0.92)"},children:["Connected: ",l.name]})]}),e.jsx("button",{onClick:()=>b(null),style:{background:"none",border:"none",cursor:"pointer",padding:"4px",display:"flex",alignItems:"center"},children:e.jsx(r.X,{size:16,style:{color:"rgba(30, 33, 37, 0.42)"}})})]}),e.jsx("div",{style:{fontSize:"13px",color:"rgba(30, 33, 37, 0.65)",lineHeight:1.5},children:l.description})]})]})]})]})}function F({onDismiss:d,onItemClick:c,completedItems:s=[]}){const[a,g]=y.useState(!1),[u,o]=y.useState(null),x=[{id:"name-project",title:"Name your workspace",description:"Give your default project a meaningful name",icon:r.FolderOpen,completed:s.includes("name-project"),optional:!0},{id:"evaluate-second-interaction",title:"Evaluate another interaction",description:"Upload or connect a second interaction to see patterns",icon:r.Sparkles,completed:s.includes("evaluate-second-interaction")},{id:"connect-source",title:"Connect a data source",description:"Link your system or platform for automatic evaluation",icon:r.Link,completed:s.includes("connect-source")},{id:"invite-team",title:"Add teammates",description:"Invite managers or QA team members to collaborate",icon:r.Users,completed:s.includes("invite-team"),optional:!0},{id:"learn-concepts",title:"Understand Chordia concepts",description:"Learn how conditions, evidence, and confidence work",icon:r.BookOpen,completed:s.includes("learn-concepts"),optional:!0},{id:"configure-scope",title:"Clarify evaluation scope",description:"Customize which signals and conditions matter for your team",icon:r.Settings,completed:s.includes("configure-scope"),optional:!0}],l=x.filter(t=>t.completed).length,b=x.length,h=l/b*100;return a?e.jsx("button",{type:"button",onClick:()=>g(!1),style:{width:"100%",padding:"14px 16px",background:"rgba(255, 255, 255, 0.85)",border:"1px solid rgba(52, 58, 64, 0.12)",borderRadius:"12px",cursor:"pointer",textAlign:"left",transition:"all 0.15s ease",boxShadow:"0 2px 8px rgba(30, 33, 37, 0.04)"},onMouseEnter:t=>{t.currentTarget.style.background="rgba(255, 255, 255, 0.95)",t.currentTarget.style.borderColor="rgba(52, 58, 64, 0.18)"},onMouseLeave:t=>{t.currentTarget.style.background="rgba(255, 255, 255, 0.85)",t.currentTarget.style.borderColor="rgba(52, 58, 64, 0.12)"},children:e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px"},children:[e.jsxs("div",{style:{fontSize:"13px",fontWeight:600,color:"rgba(30, 33, 37, 0.75)"},children:["Getting started (",l,"/",b,")"]}),e.jsx(r.ChevronRight,{size:16,style:{color:"rgba(30, 33, 37, 0.42)"}})]})}):e.jsxs("div",{style:{background:"rgba(255, 255, 255, 0.85)",border:"1px solid rgba(52, 58, 64, 0.12)",borderRadius:"16px",overflow:"hidden",boxShadow:"0 4px 16px rgba(30, 33, 37, 0.06)"},children:[e.jsxs("div",{style:{padding:"18px 20px 16px",borderBottom:"1px solid rgba(52, 58, 64, 0.08)"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px"},children:[e.jsxs("div",{style:{flex:1},children:[e.jsx("div",{style:{fontSize:"15px",fontWeight:680,letterSpacing:"-0.01em",color:"rgba(30, 33, 37, 0.92)",marginBottom:"6px",lineHeight:1.3},children:"Getting started with Chordia"}),e.jsxs("div",{style:{fontSize:"12px",color:"rgba(30, 33, 37, 0.58)",lineHeight:1.4},children:[l," of ",b," completed"]})]}),e.jsxs("div",{style:{display:"flex",gap:"4px"},children:[e.jsx("button",{type:"button",onClick:()=>g(!0),style:{width:"28px",height:"28px",borderRadius:"6px",background:"transparent",border:"1px solid rgba(52, 58, 64, 0.12)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.15s ease",color:"rgba(30, 33, 37, 0.52)"},onMouseEnter:t=>{t.currentTarget.style.background="rgba(231, 212, 162, 0.12)",t.currentTarget.style.borderColor="rgba(52, 58, 64, 0.18)"},onMouseLeave:t=>{t.currentTarget.style.background="transparent",t.currentTarget.style.borderColor="rgba(52, 58, 64, 0.12)"},title:"Collapse",children:e.jsx(r.ChevronRight,{size:14})}),d&&e.jsx("button",{type:"button",onClick:d,style:{width:"28px",height:"28px",borderRadius:"6px",background:"transparent",border:"1px solid rgba(52, 58, 64, 0.12)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.15s ease",color:"rgba(30, 33, 37, 0.52)"},onMouseEnter:t=>{t.currentTarget.style.background="rgba(231, 212, 162, 0.12)",t.currentTarget.style.borderColor="rgba(52, 58, 64, 0.18)"},onMouseLeave:t=>{t.currentTarget.style.background="transparent",t.currentTarget.style.borderColor="rgba(52, 58, 64, 0.12)"},title:"Dismiss checklist",children:e.jsx(r.X,{size:14})})]})]}),e.jsx("div",{style:{marginTop:"14px",height:"6px",background:"rgba(30, 33, 37, 0.08)",borderRadius:"999px",overflow:"hidden"},children:e.jsx("div",{style:{height:"100%",width:`${h}%`,background:"linear-gradient(90deg, rgba(184, 156, 106, 0.75) 0%, rgba(139, 157, 127, 0.75) 100%)",borderRadius:"999px",transition:"width 0.4s ease"}})})]}),e.jsx("div",{style:{padding:"8px"},children:x.map((t,m)=>{const j=t.icon,f=u===t.id;return e.jsx("button",{type:"button",onClick:()=>c==null?void 0:c(t.id),onMouseEnter:()=>o(t.id),onMouseLeave:()=>o(null),disabled:t.completed,style:{width:"100%",padding:"12px 14px",background:t.completed?"rgba(139, 157, 127, 0.06)":f?"rgba(231, 212, 162, 0.12)":"transparent",border:"none",borderRadius:"10px",cursor:t.completed?"default":"pointer",textAlign:"left",transition:"all 0.15s ease",marginBottom:m<x.length-1?"4px":"0",opacity:t.completed?.7:1},children:e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:"12px"},children:[e.jsx("div",{style:{width:"20px",height:"20px",marginTop:"1px",flexShrink:0},children:t.completed?e.jsx(r.CheckCircle2,{size:20,style:{color:"rgba(139, 157, 127, 0.75)"}}):e.jsx(r.Circle,{size:20,style:{color:"rgba(30, 33, 37, 0.24)"}})}),e.jsxs("div",{style:{flex:1,minWidth:0},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"3px"},children:[e.jsx(j,{size:14,style:{color:"rgba(30, 33, 37, 0.52)",flexShrink:0}}),e.jsx("span",{style:{fontSize:"13px",fontWeight:600,color:t.completed?"rgba(30, 33, 37, 0.52)":"rgba(30, 33, 37, 0.85)",textDecoration:t.completed?"line-through":"none",lineHeight:1.3},children:t.title}),t.optional&&!t.completed&&e.jsx("span",{style:{fontSize:"9px",fontWeight:600,letterSpacing:"0.04em",textTransform:"uppercase",color:"rgba(30, 33, 37, 0.42)",background:"rgba(30, 33, 37, 0.06)",padding:"2px 5px",borderRadius:"4px"},children:"Optional"})]}),e.jsx("div",{style:{fontSize:"11.5px",color:"rgba(30, 33, 37, 0.52)",lineHeight:1.4,paddingLeft:"22px"},children:t.description})]}),!t.completed&&f&&e.jsx(r.ChevronRight,{size:16,style:{color:"rgba(30, 33, 37, 0.32)",marginTop:"2px",flexShrink:0}})]})},t.id)})}),e.jsx("div",{style:{padding:"12px 20px 16px",borderTop:"1px solid rgba(52, 58, 64, 0.08)"},children:e.jsxs("div",{style:{fontSize:"11px",color:"rgba(30, 33, 37, 0.52)",lineHeight:1.5,fontStyle:"italic"},children:["You can dismiss this checklist anytime. These steps help you get the most from Chordia, but ","aren't"," required."]})})]})}function I({text:d="Demo Project",accentColor:c="#B89C6A",textColor:s="rgba(255, 255, 255, 0.95)",size:a="medium",position:g="fixed"}){const o={small:{width:140,height:140,fontSize:"11px",letterSpacing:"0.08em",fontWeight:650},medium:{width:180,height:180,fontSize:"12px",letterSpacing:"0.1em",fontWeight:680},large:{width:220,height:220,fontSize:"13px",letterSpacing:"0.12em",fontWeight:700}}[a];return e.jsxs("div",{style:{position:g,top:0,right:0,width:o.width,height:o.height,overflow:"hidden",zIndex:g==="fixed"?9999:1,pointerEvents:"none"},children:[e.jsx("div",{style:{position:"absolute",top:0,right:0,width:0,height:0,borderStyle:"solid",borderWidth:`0 ${o.width}px ${o.height}px 0`,borderColor:`transparent ${c} transparent transparent`,opacity:.92}}),e.jsx("div",{style:{position:"absolute",top:0,right:0,width:0,height:0,borderStyle:"solid",borderWidth:`0 ${o.width}px ${o.height}px 0`,borderColor:"transparent rgba(0, 0, 0, 0.08) transparent transparent"}}),e.jsx("div",{style:{position:"absolute",top:a==="small"?"28px":a==="medium"?"38px":"48px",right:a==="small"?"-32px":a==="medium"?"-42px":"-52px",width:a==="small"?"160px":a==="medium"?"200px":"240px",transform:"rotate(45deg)",transformOrigin:"center",textAlign:"center"},children:e.jsx("div",{style:{fontSize:o.fontSize,fontWeight:o.fontWeight,letterSpacing:o.letterSpacing,textTransform:"uppercase",color:s,textShadow:"0 1px 2px rgba(0, 0, 0, 0.15)",whiteSpace:"nowrap",userSelect:"none"},children:d})}),e.jsx("div",{style:{position:"absolute",top:0,right:0,width:o.width,height:o.height,background:"linear-gradient(135deg, transparent 0%, rgba(0, 0, 0, 0.04) 100%)",pointerEvents:"none"}})]})}function H({providerName:d,description:c,status:s="available",railColor:a,logoUrl:g,icon:u,onConfigure:o}){const x={connected:{label:"Connected",color:"#6B7C93",bgColor:"rgba(107, 124, 147, 0.08)",borderColor:"rgba(107, 124, 147, 0.20)",icon:e.jsx(r.CheckCircle2,{size:14,strokeWidth:2.5})},available:{label:"Available",color:"#1E2125",bgColor:"rgba(30, 33, 37, 0.04)",borderColor:"rgba(30, 33, 37, 0.12)",icon:e.jsx(r.Circle,{size:14,strokeWidth:2})},"coming-soon":{label:"Coming Soon",color:"rgba(30, 33, 37, 0.42)",bgColor:"transparent",borderColor:"rgba(30, 33, 37, 0.12)",icon:e.jsx(r.Circle,{size:14,strokeWidth:2,style:{opacity:.4}})}},l=x[s]||x.available;return e.jsxs("div",{style:{background:"#FFFFFF",border:`1px solid ${a}20`,borderRadius:"8px",position:"relative",display:"flex",flexDirection:"column",transition:"all 0.15s ease",cursor:s==="coming-soon"?"default":"pointer",opacity:s==="coming-soon"?.6:1,overflow:"hidden",height:"100%"},className:"hover:shadow-sm",children:[e.jsx("div",{style:{position:"absolute",left:0,top:0,bottom:0,width:"4px",background:a,opacity:s==="coming-soon"?.4:1}}),e.jsxs("div",{style:{padding:"20px",paddingLeft:"24px",display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"12px"},children:[e.jsx("div",{style:{width:"48px",height:"48px",borderRadius:"6px",background:`${a}08`,border:`1px solid ${a}18`,display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:g?e.jsx("img",{src:g,alt:d,style:{width:"32px",height:"32px",objectFit:"contain"}}):e.jsx("div",{style:{color:a,fontSize:"20px",fontWeight:650,opacity:.8},children:u||(d?d.charAt(0):"")})}),e.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:"6px",padding:"4px 10px",borderRadius:"4px",background:l.bgColor,border:`1px solid ${l.borderColor}`,fontSize:"11px",fontWeight:600,letterSpacing:"0.01em",color:l.color,flexShrink:0},children:[l.icon,l.label]})]}),e.jsxs("div",{style:{flex:1,minHeight:0},children:[e.jsx("h3",{style:{fontSize:"15px",fontWeight:650,color:"rgba(30, 33, 37, 0.92)",marginBottom:"6px",letterSpacing:"-0.01em"},children:d}),e.jsx("p",{style:{fontSize:"13px",lineHeight:1.5,color:"rgba(30, 33, 37, 0.65)"},children:c})]}),s!=="coming-soon"&&e.jsxs("button",{onClick:b=>{b.stopPropagation(),o==null||o()},style:{display:"flex",alignItems:"center",justifyContent:"center",gap:"8px",padding:"8px 14px",border:"1px solid rgba(30, 33, 37, 0.15)",borderRadius:"5px",background:s==="connected"?"transparent":"rgba(30, 33, 37, 0.03)",fontSize:"13px",fontWeight:600,color:"rgba(30, 33, 37, 0.92)",cursor:"pointer",transition:"all 0.15s ease",width:"100%",marginTop:"auto"},className:"hover:bg-[rgba(30,33,37,0.06)] hover:border-[rgba(30,33,37,0.20)]",children:[e.jsx(r.Settings,{size:14,strokeWidth:2.5}),s==="connected"?"Configure":"Connect"]})]})]})}exports.DemoProjectBanner=I;exports.FirstCallScreen=B;exports.IntegrationCard=H;exports.OnboardingChecklist=F;
|
|
2
|
+
//# sourceMappingURL=IntegrationCard.cjs.js.map
|