chordia-ui 3.2.2 → 3.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +61 -0
  2. package/dist/IntegrationCard.cjs.js +2 -0
  3. package/dist/IntegrationCard.cjs.js.map +1 -0
  4. package/dist/IntegrationCard.es.js +217 -0
  5. package/dist/IntegrationCard.es.js.map +1 -0
  6. package/dist/UploadInteraction.cjs.js +2 -0
  7. package/dist/UploadInteraction.cjs.js.map +1 -0
  8. package/dist/UploadInteraction.es.js +379 -0
  9. package/dist/UploadInteraction.es.js.map +1 -0
  10. package/dist/components/layout.cjs.js +2 -2
  11. package/dist/components/layout.cjs.js.map +1 -1
  12. package/dist/components/layout.es.js +202 -411
  13. package/dist/components/layout.es.js.map +1 -1
  14. package/dist/components/onboarding.cjs.js +2 -0
  15. package/dist/components/onboarding.cjs.js.map +1 -0
  16. package/dist/components/onboarding.es.js +712 -0
  17. package/dist/components/onboarding.es.js.map +1 -0
  18. package/dist/index.cjs.js +1 -1
  19. package/dist/index.cjs2.js +2 -2
  20. package/dist/index.cjs2.js.map +1 -1
  21. package/dist/index.es.js +49 -41
  22. package/dist/index.es.js.map +1 -1
  23. package/dist/index.es2.js +869 -811
  24. package/dist/index.es2.js.map +1 -1
  25. package/dist/pages/interactionDetails.cjs.js +1 -1
  26. package/dist/pages/interactionDetails.cjs.js.map +1 -1
  27. package/dist/pages/interactionDetails.es.js +16 -15
  28. package/dist/pages/interactionDetails.es.js.map +1 -1
  29. package/dist/style.css +1 -1
  30. package/package.json +5 -1
  31. package/src/components/index.js +3 -0
  32. package/src/components/login/LoginPage.jsx +107 -5
  33. package/src/components/onboarding/AddTeammates.jsx +278 -0
  34. package/src/components/onboarding/ConnectData.jsx +89 -0
  35. package/src/components/onboarding/GettingStarted.jsx +524 -0
  36. package/src/components/onboarding/UploadEvaluate.jsx +255 -0
  37. package/src/components/onboarding/UploadInteraction.jsx +186 -0
  38. package/src/components/onboarding/index.js +5 -0
  39. package/src/tokens/colors.css +13 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding.cjs.js","sources":["../../src/components/onboarding/ConnectData.jsx","../../src/components/onboarding/AddTeammates.jsx","../../src/components/onboarding/GettingStarted.jsx"],"sourcesContent":["import IntegrationCard from '../layout/IntegrationCard';\n\nconst FF = 'var(--font-sans)';\n\n// ─── Styles ───\n\nconst containerStyle = {\n fontFamily: FF,\n};\n\nconst sectionTitleStyle = {\n fontSize: 20,\n fontWeight: 600,\n fontStyle: 'normal',\n fontFamily: FF,\n color: 'var(--grey-strong)',\n margin: 0,\n lineHeight: 'normal',\n};\n\nconst sectionSubtitleStyle = {\n fontSize: 13,\n fontWeight: 400,\n fontStyle: 'normal',\n color: 'var(--color-text-secondary)',\n fontFamily: FF,\n margin: '4px 0 0',\n lineHeight: '140%',\n};\n\nconst gridStyle = {\n display: 'grid',\n gridTemplateColumns: 'repeat(3, 1fr)',\n gap: 16,\n marginTop: 24,\n};\n\n// ─── Default Integrations ───\n\nconst DEFAULT_INTEGRATIONS = [\n {\n providerName: 'Five9',\n description: 'Cloud contact center platform for voice and digital channels',\n status: 'connected',\n railColor: '#5E88B0',\n },\n {\n providerName: 'Twilio Flex',\n description: 'Programmable contact center with custom workflows',\n status: 'available',\n railColor: '#9B7AA8',\n },\n {\n providerName: 'Zoom Phone',\n description: 'Cloud phone system with recording capabilities',\n status: 'coming-soon',\n railColor: '#6B7C93',\n },\n];\n\n// ─── Component ───\n\nconst ConnectData = ({ integrations = DEFAULT_INTEGRATIONS, onConfigure }) => {\n return (\n <div style={containerStyle}>\n <h2 style={sectionTitleStyle}>Connect Data Source</h2>\n <p style={sectionSubtitleStyle}>\n Choose your preferred platforms to synchronise data.\n </p>\n\n <div style={gridStyle}>\n {integrations.map((integration) => (\n <IntegrationCard\n key={integration.providerName}\n providerName={integration.providerName}\n description={integration.description}\n status={integration.status}\n railColor={integration.railColor}\n logoUrl={integration.logoUrl}\n icon={integration.icon}\n onConfigure={() => onConfigure?.(integration)}\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport default ConnectData;\n","import { useState } from 'react';\nimport { Search } from 'lucide-react';\n\nconst FF = 'var(--font-sans)';\n\n// ─── Styles ───\n\nconst containerStyle = {\n fontFamily: FF,\n};\n\nconst sectionTitleStyle = {\n fontSize: 20,\n fontWeight: 600,\n fontStyle: 'normal',\n fontFamily: FF,\n color: 'var(--grey-strong)',\n margin: 0,\n lineHeight: 'normal',\n};\n\nconst sectionSubtitleStyle = {\n fontSize: 13,\n fontWeight: 400,\n fontStyle: 'normal',\n color: 'var(--color-text-secondary)',\n fontFamily: FF,\n margin: '4px 0 0',\n lineHeight: '140%',\n};\n\nconst searchRowStyle = {\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n marginTop: 24,\n};\n\nconst searchInputWrapStyle = {\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n height: 44,\n padding: '0 14px',\n borderRadius: 10,\n border: '1px solid var(--color-input-border)',\n background: 'var(--grey-white)',\n boxSizing: 'border-box',\n gap: 8,\n};\n\nconst searchIconStyle = {\n flexShrink: 0,\n color: 'var(--color-text-secondary)',\n};\n\nconst emailTagStyle = {\n display: 'inline-flex',\n alignItems: 'center',\n gap: 4,\n padding: '4px 10px',\n borderRadius: 6,\n background: 'var(--hover-warm)',\n fontSize: 14,\n fontWeight: 500,\n fontFamily: FF,\n color: 'var(--grey-strong)',\n whiteSpace: 'nowrap',\n};\n\nconst emailTagRemoveStyle = {\n cursor: 'pointer',\n fontSize: 16,\n lineHeight: 1,\n color: 'var(--color-text-secondary)',\n marginLeft: 2,\n};\n\nconst searchInputStyle = {\n flex: 1,\n border: 'none',\n outline: 'none',\n fontSize: 14,\n fontWeight: 400,\n fontFamily: FF,\n color: 'var(--grey-strong)',\n background: 'transparent',\n height: '100%',\n};\n\nconst inviteBtnStyle = {\n display: 'flex',\n height: 44,\n padding: '0 24px',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: 10,\n background: 'var(--grey-strong)',\n fontSize: 14,\n fontWeight: 600,\n fontFamily: FF,\n color: 'var(--grey-white)',\n border: 'none',\n cursor: 'pointer',\n transition: 'var(--transition-fast)',\n outline: 'none',\n flexShrink: 0,\n};\n\nconst suggestionsListStyle = {\n marginTop: 8,\n border: '1px solid var(--border)',\n borderRadius: 10,\n overflow: 'hidden',\n background: 'var(--grey-white)',\n};\n\nconst suggestionItemStyle = {\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n padding: '14px 16px',\n cursor: 'pointer',\n transition: 'var(--transition-fast)',\n borderBottom: '1px solid var(--border-subtle)',\n};\n\nconst avatarStyle = (color) => ({\n width: 40,\n height: 40,\n borderRadius: 9999,\n background: color || 'var(--hover-warm)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: 14,\n fontWeight: 600,\n fontFamily: FF,\n color: 'var(--color-green)',\n flexShrink: 0,\n});\n\nconst suggestionNameStyle = {\n fontSize: 14,\n fontWeight: 600,\n fontFamily: FF,\n color: 'var(--grey-strong)',\n margin: 0,\n lineHeight: '120%',\n};\n\nconst suggestionEmailStyle = {\n fontSize: 13,\n fontWeight: 400,\n fontFamily: FF,\n color: 'var(--color-text-secondary)',\n margin: '2px 0 0',\n lineHeight: '140%',\n};\n\n// ─── Default Suggestions ───\n\nconst DEFAULT_SUGGESTIONS = [\n { name: 'Alex Rivera', email: 'alex.rivera@company.com', initials: 'AR' },\n { name: 'Alexandra Smith', email: 'a.smith@design.co', initials: 'AS' },\n];\n\n// ─── Component ───\n\nconst AddTeammates = ({ suggestions = DEFAULT_SUGGESTIONS, onInvite }) => {\n const [inputValue, setInputValue] = useState('');\n const [emails, setEmails] = useState([]);\n const [focused, setFocused] = useState(false);\n\n const filteredSuggestions = suggestions.filter(\n (s) =>\n !emails.includes(s.email) &&\n (s.name.toLowerCase().includes(inputValue.toLowerCase()) ||\n s.email.toLowerCase().includes(inputValue.toLowerCase()))\n );\n\n const addEmail = (email) => {\n if (email && !emails.includes(email)) {\n setEmails([...emails, email]);\n setInputValue('');\n }\n };\n\n const removeEmail = (email) => {\n setEmails(emails.filter((e) => e !== email));\n };\n\n const handleKeyDown = (e) => {\n if (e.key === 'Enter' && inputValue.includes('@')) {\n e.preventDefault();\n addEmail(inputValue.trim());\n }\n if (e.key === 'Backspace' && !inputValue && emails.length) {\n removeEmail(emails[emails.length - 1]);\n }\n };\n\n const handleInvite = () => {\n if (emails.length) {\n onInvite?.(emails);\n }\n };\n\n return (\n <div style={containerStyle}>\n <h2 style={sectionTitleStyle}>Add Teammates</h2>\n <p style={sectionSubtitleStyle}>Collaborate with your team to accelerate your workflow.</p>\n\n <div style={searchRowStyle}>\n <div\n style={{\n ...searchInputWrapStyle,\n borderColor: focused ? 'var(--color-green)' : 'var(--color-input-border)',\n boxShadow: focused ? '0 0 0 3px var(--color-green-ring)' : 'none',\n }}\n >\n <Search size={18} style={searchIconStyle} />\n {emails.map((email) => (\n <span key={email} style={emailTagStyle}>\n {email}\n <span style={emailTagRemoveStyle} onClick={() => removeEmail(email)}>×</span>\n </span>\n ))}\n <input\n type=\"text\"\n placeholder={emails.length ? '' : 'Search by name or email...'}\n value={inputValue}\n onChange={(e) => setInputValue(e.target.value)}\n onFocus={() => setFocused(true)}\n onBlur={() => setTimeout(() => setFocused(false), 150)}\n onKeyDown={handleKeyDown}\n style={searchInputStyle}\n />\n </div>\n <button\n style={inviteBtnStyle}\n onClick={handleInvite}\n onMouseEnter={(e) => { e.currentTarget.style.opacity = '0.85'; }}\n onMouseLeave={(e) => { e.currentTarget.style.opacity = '1'; }}\n >\n Invite\n </button>\n </div>\n\n {focused && filteredSuggestions.length > 0 && (\n <div style={suggestionsListStyle}>\n {filteredSuggestions.map((suggestion, idx) => (\n <div\n key={suggestion.email}\n style={{\n ...suggestionItemStyle,\n ...(idx === filteredSuggestions.length - 1 ? { borderBottom: 'none' } : {}),\n }}\n onMouseDown={() => addEmail(suggestion.email)}\n onMouseEnter={(e) => { e.currentTarget.style.background = 'var(--hover-warm-subtle)'; }}\n onMouseLeave={(e) => { e.currentTarget.style.background = 'var(--grey-white)'; }}\n >\n <div style={avatarStyle()}>\n {suggestion.initials}\n </div>\n <div>\n <p style={suggestionNameStyle}>{suggestion.name}</p>\n <p style={suggestionEmailStyle}>{suggestion.email}</p>\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n};\n\nexport default AddTeammates;\n","import { useState } from 'react';\nimport { MessageSquare, Database, Users, BookOpen, SlidersHorizontal, Briefcase } from 'lucide-react';\nimport UploadInteraction from './UploadInteraction';\nimport ConnectData from './ConnectData';\nimport AddTeammates from './AddTeammates';\n\nconst FF = 'var(--font-sans)';\n\n// ─── Steps Configuration ───\n\nconst DEFAULT_STEPS = [\n { id: 'workspace', label: 'Workspace Name', description: 'Give your project a title.', icon: Briefcase },\n { id: 'interaction', label: 'Add Interaction', description: 'Connect data to see patterns.', icon: MessageSquare },\n { id: 'connect', label: 'Connect Data', description: 'Link your platform for auto-evaluation.', icon: Database },\n { id: 'invite', label: 'Invite Team', description: 'Add members to collaborate.', icon: Users },\n { id: 'concepts', label: 'Learn Concepts', description: 'Explore conditions and evidence.', icon: BookOpen },\n { id: 'scope', label: 'Define Scope', description: 'Customize evaluation signals.', icon: SlidersHorizontal },\n];\n\n// ─── Styles ───\n\nconst pageStyle = {\n fontFamily: FF,\n background: 'var(--grey-white)',\n minHeight: '100vh',\n boxSizing: 'border-box',\n};\n\nconst headerStyle = {\n padding: '24px 48px',\n borderBottom: '1px solid var(--border)',\n background: 'var(--grey-white)',\n};\n\nconst headerTopRow = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: 8,\n};\n\nconst titleStyle = {\n fontSize: 24,\n fontWeight: 600,\n fontStyle: 'normal',\n fontFamily: FF,\n color: 'var(--grey-strong)',\n margin: 0,\n lineHeight: 'normal',\n};\n\nconst subtitleStyle = {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '140%',\n color: 'var(--text-muted)',\n margin: '4px 0 0',\n fontFamily: FF,\n};\n\nconst headerActions = {\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n};\n\nconst remindBtnStyle = {\n display: 'flex',\n height: 36,\n padding: '0 16px',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: 10,\n background: 'transparent',\n border: '1px solid var(--border-strong)',\n fontSize: 14,\n fontWeight: 500,\n fontFamily: FF,\n color: 'var(--text-base)',\n cursor: 'pointer',\n transition: 'var(--transition-fast)',\n outline: 'none',\n};\n\nconst saveBtnStyle = {\n display: 'flex',\n height: 36,\n padding: '0 20px',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: 10,\n background: 'var(--grey-strong)',\n fontSize: 14,\n fontWeight: 600,\n fontFamily: FF,\n color: 'var(--grey-white)',\n border: 'none',\n cursor: 'pointer',\n transition: 'var(--transition-fast)',\n outline: 'none',\n};\n\nconst progressBarBg = {\n width: '100%',\n height: 6,\n borderRadius: 3,\n background: 'var(--border)',\n overflow: 'hidden',\n marginTop: 12,\n};\n\nconst progressBarFill = (pct) => ({\n width: `${pct}%`,\n height: '100%',\n borderRadius: 3,\n background: 'var(--color-green)',\n transition: 'width 0.4s ease-out',\n});\n\nconst bodyStyle = {\n display: 'flex',\n flex: 1,\n minHeight: 'calc(100vh - 140px)',\n};\n\n// ─── Sidebar Styles ───\n\nconst sidebarStyle = {\n width: 312,\n minWidth: 312,\n borderRight: '1px solid var(--border)',\n padding: '24px 24px',\n background: 'var(--grey-white)',\n boxSizing: 'border-box',\n};\n\nconst stepsCountStyle = {\n fontSize: 13,\n fontWeight: 500,\n color: 'var(--text-muted)',\n fontFamily: FF,\n margin: '0 0 12px',\n};\n\nconst stepsListStyle = {\n display: 'flex',\n width: 264,\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: 8,\n alignSelf: 'stretch',\n};\n\nconst stepItemStyle = (isActive) => ({\n display: 'flex',\n alignItems: 'center',\n gap: 4,\n padding: '8px 4px',\n cursor: 'pointer',\n transition: 'var(--transition-fast)',\n background: isActive ? 'var(--hover-warm)' : 'var(--grey-white)',\n borderRadius: 8,\n alignSelf: 'stretch',\n});\n\nconst stepIconWrap = {\n width: 40,\n height: 40,\n flexShrink: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n};\n\nconst stepLabelStyle = {\n fontSize: 14,\n fontWeight: 600,\n fontStyle: 'normal',\n color: 'var(--grey-strong)',\n fontFamily: FF,\n margin: 0,\n lineHeight: '120%',\n};\n\nconst stepDescStyle = {\n fontSize: 12,\n fontWeight: 400,\n color: 'var(--text-muted)',\n fontFamily: FF,\n margin: '2px 0 0',\n lineHeight: 1.3,\n};\n\n// ─── Content Styles ───\n\nconst contentStyle = {\n flex: 1,\n padding: '40px 48px',\n background: 'var(--grey-white)',\n boxSizing: 'border-box',\n};\n\nconst sectionTitleStyle = {\n fontSize: 20,\n fontWeight: 600,\n fontStyle: 'normal',\n fontFamily: FF,\n color: 'var(--grey-strong)',\n margin: 0,\n lineHeight: 'normal',\n};\n\nconst sectionSubtitleStyle = {\n fontSize: 13,\n fontWeight: 400,\n fontStyle: 'normal',\n color: 'var(--color-text-secondary)',\n fontFamily: FF,\n margin: '4px 0 0',\n lineHeight: '140%',\n};\n\nconst fieldLabelStyle = {\n fontSize: 16,\n fontWeight: 600,\n fontStyle: 'normal',\n color: 'var(--grey-strong)',\n fontFamily: FF,\n lineHeight: 'normal',\n margin: 0,\n display: 'block',\n};\n\nconst inputStyle = {\n width: '100%',\n height: 44,\n padding: '0 14px',\n borderRadius: 6,\n border: '1px solid var(--color-input-border)',\n fontSize: 16,\n fontWeight: 400,\n fontStyle: 'normal',\n lineHeight: 'normal',\n fontFamily: FF,\n color: 'var(--color-text-secondary)',\n background: 'var(--grey-white)',\n boxSizing: 'border-box',\n outline: 'none',\n transition: 'var(--transition-fast)',\n};\n\nconst textareaWrapStyle = {\n position: 'relative',\n marginTop: 8,\n};\n\nconst textareaStyle = {\n width: '100%',\n minHeight: 160,\n padding: '12px 14px 28px 14px',\n borderRadius: 6,\n border: '1px solid var(--color-input-border)',\n fontSize: 16,\n fontWeight: 400,\n fontStyle: 'normal',\n lineHeight: 'normal',\n fontFamily: FF,\n color: 'var(--color-text-secondary)',\n background: 'var(--grey-white)',\n boxSizing: 'border-box',\n outline: 'none',\n resize: 'vertical',\n lineHeight: '140%',\n transition: 'var(--transition-fast)',\n};\n\nconst charCountStyle = {\n position: 'absolute',\n bottom: 10,\n right: 14,\n fontSize: 12,\n fontWeight: 400,\n color: 'var(--text-faint)',\n fontFamily: FF,\n margin: 0,\n pointerEvents: 'none',\n};\n\n// ─── Step Indicator Icons ───\n\nfunction CompletedIcon() {\n return (\n <div\n style={{\n width: 24,\n height: 24,\n borderRadius: 6,\n background: 'var(--grey-strong)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n }}\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\n <path d=\"M2.5 7.5L5.5 10.5L11.5 4\" stroke=\"var(--grey-white)\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </div>\n );\n}\n\nfunction IncompleteIcon() {\n return (\n <div\n style={{\n width: 24,\n height: 24,\n borderRadius: '50%',\n border: '2px solid var(--grey-muted)',\n background: 'transparent',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n gap: 2,\n boxSizing: 'border-box',\n }}\n >\n <span style={{ width: 3, height: 3, borderRadius: '50%', background: 'var(--grey-muted)' }} />\n <span style={{ width: 3, height: 3, borderRadius: '50%', background: 'var(--grey-muted)' }} />\n <span style={{ width: 3, height: 3, borderRadius: '50%', background: 'var(--grey-muted)' }} />\n </div>\n );\n}\n\n// ─── Step Item Component ───\n\nfunction StepItem({ step, isCompleted, isActive, onClick }) {\n const [hovered, setHovered] = useState(false);\n\n return (\n <div\n style={{\n ...stepItemStyle(isActive),\n ...(hovered && !isActive ? { background: 'var(--hover-warm-subtle)' } : {}),\n }}\n onClick={onClick}\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n >\n <div style={stepIconWrap}>\n {isCompleted ? <CompletedIcon /> : <IncompleteIcon />}\n </div>\n <div>\n <p style={stepLabelStyle}>{step.label}</p>\n <p style={stepDescStyle}>{step.description}</p>\n </div>\n </div>\n );\n}\n\n// ─── Workspace Name Step Content ───\n\nfunction WorkspaceNameContent({ workspaceName, setWorkspaceName, description, setDescription, maxDescLength }) {\n const [nameFocused, setNameFocused] = useState(false);\n const [descFocused, setDescFocused] = useState(false);\n\n return (\n <div>\n <h2 style={sectionTitleStyle}>Name of your workspace</h2>\n <p style={sectionSubtitleStyle}>Tell us about the project or company you're organizing here.</p>\n\n <div style={{ marginTop: 28 }}>\n <label style={fieldLabelStyle}>Workspace Name</label>\n <input\n type=\"text\"\n placeholder=\"e.g. Acme Marketing\"\n value={workspaceName}\n onChange={(e) => setWorkspaceName(e.target.value)}\n onFocus={() => setNameFocused(true)}\n onBlur={() => setNameFocused(false)}\n style={{\n ...inputStyle,\n marginTop: 8,\n borderColor: nameFocused ? 'var(--color-green)' : 'var(--color-input-border)',\n boxShadow: nameFocused ? '0 0 0 3px var(--color-green-ring)' : 'none',\n }}\n />\n </div>\n\n <div style={{ marginTop: 24 }}>\n <label style={fieldLabelStyle}>Description</label>\n <div style={textareaWrapStyle}>\n <textarea\n placeholder=\"what's the goal of this workspace?\"\n value={description}\n onChange={(e) => {\n if (e.target.value.length <= maxDescLength) {\n setDescription(e.target.value);\n }\n }}\n onFocus={() => setDescFocused(true)}\n onBlur={() => setDescFocused(false)}\n style={{\n ...textareaStyle,\n borderColor: descFocused ? 'var(--color-green)' : 'var(--color-input-border)',\n boxShadow: descFocused ? '0 0 0 3px var(--color-green-ring)' : 'none',\n }}\n />\n <span style={charCountStyle}>{description.length}/{maxDescLength}</span>\n </div>\n </div>\n </div>\n );\n}\n\n// ─── Main Component ───\n\nconst GettingStarted = ({\n steps = DEFAULT_STEPS,\n completedSteps = ['workspace', 'invite'],\n initialActiveStep = 'workspace',\n onSaveNext,\n onRemindLater,\n onStepChange,\n}) => {\n const [activeStepId, setActiveStepId] = useState(initialActiveStep);\n const [workspaceName, setWorkspaceName] = useState('');\n const [description, setDescription] = useState('');\n const maxDescLength = 1000;\n\n const completedCount = completedSteps.length;\n const totalCount = steps.length;\n const progressPct = (completedCount / totalCount) * 100;\n\n const handleStepClick = (stepId) => {\n setActiveStepId(stepId);\n onStepChange?.(stepId);\n };\n\n const handleSaveNext = () => {\n onSaveNext?.({ stepId: activeStepId, workspaceName, description });\n };\n\n return (\n <div style={pageStyle}>\n {/* Header */}\n <div style={headerStyle}>\n <div style={headerTopRow}>\n <div>\n <h1 style={titleStyle}>Getting started with Chordia</h1>\n <p style={subtitleStyle}>Complete these steps to get the most out of Chordia.</p>\n </div>\n <div style={headerActions}>\n <button\n style={remindBtnStyle}\n onClick={onRemindLater}\n onMouseEnter={(e) => { e.currentTarget.style.background = 'var(--hover-warm-subtle)'; }}\n onMouseLeave={(e) => { e.currentTarget.style.background = 'transparent'; }}\n >\n Remind me Later\n </button>\n <button\n style={saveBtnStyle}\n onClick={handleSaveNext}\n onMouseEnter={(e) => { e.currentTarget.style.opacity = '0.85'; }}\n onMouseLeave={(e) => { e.currentTarget.style.opacity = '1'; }}\n >\n Save &amp; Next\n </button>\n </div>\n </div>\n <div style={progressBarBg}>\n <div style={progressBarFill(progressPct)} />\n </div>\n </div>\n\n {/* Body */}\n <div style={bodyStyle}>\n {/* Sidebar */}\n <div style={sidebarStyle}>\n <p style={stepsCountStyle}>\n {completedCount} of {totalCount} steps completed\n </p>\n <div style={stepsListStyle}>\n {steps.map((step) => (\n <StepItem\n key={step.id}\n step={step}\n isCompleted={completedSteps.includes(step.id)}\n isActive={activeStepId === step.id}\n onClick={() => handleStepClick(step.id)}\n />\n ))}\n </div>\n </div>\n\n {/* Content */}\n <div style={contentStyle}>\n {activeStepId === 'workspace' && (\n <WorkspaceNameContent\n workspaceName={workspaceName}\n setWorkspaceName={setWorkspaceName}\n description={description}\n setDescription={setDescription}\n maxDescLength={maxDescLength}\n />\n )}\n {activeStepId === 'interaction' && (\n <UploadInteraction />\n )}\n {activeStepId === 'connect' && (\n <ConnectData />\n )}\n {activeStepId === 'invite' && (\n <AddTeammates />\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default GettingStarted;\n"],"names":["FF","containerStyle","sectionTitleStyle","sectionSubtitleStyle","gridStyle","DEFAULT_INTEGRATIONS","ConnectData","integrations","onConfigure","jsxs","jsx","integration","IntegrationCard","searchRowStyle","searchInputWrapStyle","searchIconStyle","emailTagStyle","emailTagRemoveStyle","searchInputStyle","inviteBtnStyle","suggestionsListStyle","suggestionItemStyle","avatarStyle","color","suggestionNameStyle","suggestionEmailStyle","DEFAULT_SUGGESTIONS","AddTeammates","suggestions","onInvite","inputValue","setInputValue","useState","emails","setEmails","focused","setFocused","filteredSuggestions","s","addEmail","email","removeEmail","e","handleKeyDown","handleInvite","Search","suggestion","idx","DEFAULT_STEPS","Briefcase","MessageSquare","Database","Users","BookOpen","SlidersHorizontal","pageStyle","headerStyle","headerTopRow","titleStyle","subtitleStyle","headerActions","remindBtnStyle","saveBtnStyle","progressBarBg","progressBarFill","pct","bodyStyle","sidebarStyle","stepsCountStyle","stepsListStyle","stepItemStyle","isActive","stepIconWrap","stepLabelStyle","stepDescStyle","contentStyle","fieldLabelStyle","inputStyle","textareaWrapStyle","textareaStyle","charCountStyle","CompletedIcon","IncompleteIcon","StepItem","step","isCompleted","onClick","hovered","setHovered","WorkspaceNameContent","workspaceName","setWorkspaceName","description","setDescription","maxDescLength","nameFocused","setNameFocused","descFocused","setDescFocused","GettingStarted","steps","completedSteps","initialActiveStep","onSaveNext","onRemindLater","onStepChange","activeStepId","setActiveStepId","completedCount","totalCount","progressPct","handleStepClick","stepId","handleSaveNext","UploadInteraction"],"mappings":"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"}