@quantabit/onboarding-sdk 1.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/components/OnboardingFlow.jsx","../src/components/SpotlightTour.jsx","../src/components/FeatureHighlight.jsx","../src/components/WelcomeScreen.jsx","../src/i18n/index.js","../src/components/Onboarding.jsx","../src/types/index.js","../src/services/onboardingApi.js","../src/hooks/useOnboarding.js"],"sourcesContent":["import React,{useState}from'react';\nexport function OnboardingFlow({steps=[],onComplete,onSkip,className=''}){\n const[current,setCurrent]=useState(0);const step=steps[current];if(!step)return null;\n return(<div className={`qob-flow ${className}`} style={{textAlign:'center',padding:40,maxWidth:480,margin:'0 auto'}}>\n {step.image&&<img src={step.image} alt=\"\" style={{maxWidth:240,height:'auto',marginBottom:24}}/>}\n {step.icon&&<div style={{fontSize:56,marginBottom:16}}>{step.icon}</div>}\n <h2 style={{fontSize:24,fontWeight:800,color:'#18181b',margin:'0 0 8px'}}>{step.title}</h2>\n <p style={{fontSize:14,color:'#71717a',lineHeight:1.6,margin:'0 0 32px'}}>{step.description}</p>\n {/* 进度点 */}\n <div style={{display:'flex',gap:6,justifyContent:'center',marginBottom:24}}>\n {steps.map((_,i)=>(<div key={i} style={{width:i===current?24:8,height:8,borderRadius:4,\n background:i===current?'#3b82f6':i<current?'#93c5fd':'#e4e4e7',transition:'all 0.3s'}}/>))}\n </div>\n <div style={{display:'flex',gap:12,justifyContent:'center'}}>\n {onSkip&&current<steps.length-1&&<button onClick={onSkip}\n style={{padding:'10px 24px',borderRadius:10,border:'none',background:'transparent',color:'#71717a',fontSize:14,cursor:'pointer'}}>Skip</button>}\n <button onClick={()=>{if(current<steps.length-1)setCurrent(c=>c+1);else onComplete?.();}}\n style={{padding:'10px 32px',borderRadius:10,border:'none',background:'#3b82f6',color:'#fff',\n fontSize:14,fontWeight:700,cursor:'pointer',transition:'all 0.2s'}}>\n {current===steps.length-1?'Get Started':'Next'}</button>\n </div>\n </div>);\n}\n","import React,{useState,useEffect,useCallback}from'react';\nexport function SpotlightTour({steps=[],active=false,onComplete,onSkip}){\n const[current,setCurrent]=useState(0);const step=steps[current];\n const[rect,setRect]=useState(null);\n const updateRect=useCallback(()=>{if(!step?.target)return;const el=document.querySelector(step.target);\n if(el){const r=el.getBoundingClientRect();setRect({top:r.top-4,left:r.left-4,width:r.width+8,height:r.height+8});}\n },[step]);\n useEffect(()=>{if(active){updateRect();window.addEventListener('resize',updateRect);\n return()=>window.removeEventListener('resize',updateRect);}\n },[active,updateRect]);\n if(!active||!step||!rect)return null;\n return(<>\n <div style={{position:'fixed',inset:0,zIndex:99998}}>\n <svg width=\"100%\" height=\"100%\" style={{position:'absolute'}}>\n <defs><mask id=\"qob-mask\"><rect width=\"100%\" height=\"100%\" fill=\"white\"/>\n <rect x={rect.left} y={rect.top} width={rect.width} height={rect.height} rx=\"8\" fill=\"black\"/></mask></defs>\n <rect width=\"100%\" height=\"100%\" fill=\"rgba(0,0,0,0.5)\" mask=\"url(#qob-mask)\"/>\n </svg>\n </div>\n <div style={{position:'fixed',zIndex:99999,top:rect.top+rect.height+12,left:Math.max(16,Math.min(rect.left,window.innerWidth-320)),\n width:300,padding:20,borderRadius:14,background:'#fff',boxShadow:'0 16px 48px rgba(0,0,0,0.15)',\n animation:'qob-pop 0.2s ease-out'}}>\n <div style={{fontSize:12,color:'#a1a1aa',marginBottom:4}}>Step {current+1} of {steps.length}</div>\n <h4 style={{fontSize:15,fontWeight:700,color:'#18181b',margin:'0 0 6px'}}>{step.title}</h4>\n <p style={{fontSize:13,color:'#71717a',margin:'0 0 16px',lineHeight:1.5}}>{step.description}</p>\n <div style={{display:'flex',justifyContent:'space-between'}}>\n {onSkip&&<button onClick={onSkip} style={{border:'none',background:'none',color:'#a1a1aa',fontSize:12,cursor:'pointer'}}>Skip tour</button>}\n <button onClick={()=>{if(current<steps.length-1)setCurrent(c=>c+1);else{onComplete?.();setCurrent(0);}}}\n style={{padding:'6px 16px',borderRadius:6,border:'none',background:'#3b82f6',color:'#fff',fontSize:12,fontWeight:600,cursor:'pointer',marginLeft:'auto'}}>\n {current===steps.length-1?'Finish':'Next'}</button>\n </div>\n </div>\n </>);\n}\n","import React,{useState}from'react';\nexport function FeatureHighlight({title,description,isNew=false,onDismiss,position='top-right',className=''}){\n const[visible,setVisible]=useState(true);if(!visible)return null;\n const dismiss=()=>{setVisible(false);onDismiss?.();};\n return(<div className={`qob-highlight ${className}`} style={{position:'relative',display:'inline-block'}}>\n <div style={{position:'absolute',...(position==='top-right'?{top:-8,right:-8}:position==='top-left'?{top:-8,left:-8}:{bottom:-8,right:-8}),\n zIndex:10}}>\n {isNew&&<span style={{background:'#ef4444',color:'#fff',fontSize:10,fontWeight:700,padding:'1px 6px',borderRadius:4,animation:'qob-pulse 2s infinite'}}>NEW</span>}\n </div>\n <div className=\"qob-tooltip\" style={{position:'absolute',top:'calc(100% + 8px)',left:'50%',transform:'translateX(-50%)',\n padding:'12px 16px',borderRadius:10,background:'#18181b',color:'#fff',fontSize:12,width:200,zIndex:100,\n boxShadow:'0 8px 24px rgba(0,0,0,0.2)',animation:'qob-pop 0.2s ease-out'}}>\n <div style={{fontWeight:600,marginBottom:4}}>{title}</div>\n <div style={{opacity:0.8,lineHeight:1.4}}>{description}</div>\n <button onClick={dismiss} style={{border:'none',background:'rgba(255,255,255,0.15)',color:'#fff',padding:'3px 10px',borderRadius:4,fontSize:11,cursor:'pointer',marginTop:8}}>Got it</button>\n </div> \n </div>);\n}\n","import React from'react';\nexport function WelcomeScreen({title='Welcome!',subtitle,features=[],cta='Get Started',onAction,logo,className=''}){\n return(<div className={`qob-welcome ${className}`} style={{textAlign:'center',padding:'48px 32px',maxWidth:560,margin:'0 auto'}}>\n {logo&&<div style={{marginBottom:20}}>{typeof logo==='string'?<img src={logo} alt=\"\" style={{height:48}}/>:logo}</div>}\n <h1 style={{fontSize:32,fontWeight:800,color:'#18181b',margin:'0 0 8px'}}>{title}</h1>\n {subtitle&&<p style={{fontSize:16,color:'#71717a',margin:'0 0 32px',lineHeight:1.6}}>{subtitle}</p>}\n {features.length>0&&<div style={{display:'grid',gridTemplateColumns:'repeat(auto-fit,minmax(140px,1fr))',gap:16,marginBottom:32,textAlign:'center'}}>\n {features.map((f,i)=>(<div key={i} style={{padding:16,borderRadius:12,border:'1px solid #f4f4f5'}}>\n <div style={{fontSize:28,marginBottom:8}}>{f.icon}</div>\n <div style={{fontSize:13,fontWeight:600,color:'#18181b'}}>{f.title}</div>\n {f.description&&<div style={{fontSize:11,color:'#71717a',marginTop:4}}>{f.description}</div>}\n </div>))}\n </div>}\n <button onClick={onAction} style={{padding:'14px 40px',borderRadius:12,border:'none',background:'#3b82f6',\n color:'#fff',fontSize:16,fontWeight:700,cursor:'pointer',transition:'all 0.2s'}}>{cta}</button>\n </div>);\n}\n","export const SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];\n\nexport const messages = {\n en: {\n 'ob.next': 'Next',\n 'ob.skip': 'Skip',\n 'ob.done': 'Get Started',\n 'ob.welcome': 'Welcome!',\n },\n zh: {\n 'ob.next': '下一步',\n 'ob.skip': '跳过',\n 'ob.done': '开始使用',\n 'ob.welcome': '欢迎!',\n },\n ja: {\n 'ob.next': '次へ',\n 'ob.skip': 'スキップ',\n 'ob.done': 'はじめる',\n 'ob.welcome': 'ようこそ!',\n },\n ko: {\n 'ob.next': '다음',\n 'ob.skip': '건너뛰기',\n 'ob.done': '시작하기',\n 'ob.welcome': '환영합니다!',\n }\n};\n\nlet currentLang = 'en';\n\nexport function setLanguage(l) {\n if (SUPPORTED_LANGUAGES.includes(l)) currentLang = l;\n}\n\nexport function getLanguage() {\n return currentLang;\n}\n\nexport function t(k, params = {}) {\n let text = messages[currentLang]?.[k] || messages.en?.[k] || k;\n Object.entries(params).forEach(([key, val]) => {\n text = text.replace(new RegExp(`\\\\{${key}\\\\}`, 'g'), val);\n });\n return text;\n}\n","import React from 'react';\nimport { t } from '../i18n';\n\nexport function Tooltip({ title, content, placement = 'bottom', onNext, onSkip, isLast }) {\n return (\n <div className={`onboarding-tooltip placement-${placement}`}>\n <h4>{title}</h4>\n <p>{content}</p>\n <div className=\"onboarding-tooltip-actions\">\n <button className=\"onboarding-btn text\" onClick={onSkip}>{t('skip')}</button>\n <button className=\"onboarding-btn primary\" onClick={onNext}>\n {isLast ? t('done') : t('next')}\n </button>\n </div>\n </div>\n );\n}\n\nexport function CoachMark({ target, children }) {\n return (\n <div className=\"onboarding-coach-mark\">\n <div className=\"onboarding-spotlight\" />\n {children}\n </div>\n );\n}\n\nexport function StepIndicator({ total, current }) {\n return (\n <div className=\"onboarding-step-indicator\">\n {Array.from({ length: total }, (_, i) => (\n <span key={i} className={`step-dot ${i === current ? 'active' : ''} ${i < current ? 'completed' : ''}`} />\n ))}\n </div>\n );\n}\n\nexport function TutorialOverlay({ tutorial, currentStep, onNext, onPrev, onSkip }) {\n if (!tutorial) return null;\n const step = tutorial.steps[currentStep];\n const isFirst = currentStep === 0;\n const isLast = currentStep === tutorial.steps.length - 1;\n\n return (\n <div className=\"onboarding-overlay\">\n <div className=\"onboarding-modal\">\n <h3>{step.title}</h3>\n <p>{step.content}</p>\n <StepIndicator total={tutorial.steps.length} current={currentStep} />\n <div className=\"onboarding-modal-actions\">\n {!isFirst && <button className=\"onboarding-btn secondary\" onClick={onPrev}>{t('prev')}</button>}\n <button className=\"onboarding-btn text\" onClick={onSkip}>{t('skip')}</button>\n <button className=\"onboarding-btn primary\" onClick={onNext}>\n {isLast ? t('done') : t('next')}\n </button>\n </div>\n </div>\n </div>\n );\n}\n","/**\n * Onboarding SDK - 类型定义\n */\n\nexport const StepType = {\n HIGHLIGHT: 'highlight',\n MODAL: 'modal',\n TOOLTIP: 'tooltip',\n COACH_MARK: 'coach_mark',\n};\n\nexport const TutorialStatus = {\n NOT_STARTED: 'not_started',\n IN_PROGRESS: 'in_progress',\n COMPLETED: 'completed',\n SKIPPED: 'skipped',\n};\n\nexport function createDefaultStep() {\n return {\n id: '',\n type: StepType.TOOLTIP,\n title: '',\n content: '',\n target: null,\n placement: 'bottom',\n order: 0,\n action: null,\n };\n}\n\nexport function createDefaultTutorial() {\n return {\n id: '',\n name: '',\n description: '',\n steps: [],\n status: TutorialStatus.NOT_STARTED,\n currentStep: 0,\n };\n}\n","/**\n * Onboarding SDK - API 客户端\n * 新手引导系统后端接口封装\n * \n * 使用 BaseApiClient 基类,代码从 ~100 行简化到 ~70 行\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\n/**\n * 新手引导 API 客户端\n */\nexport class OnboardingApiClient extends BaseApiClient {\n constructor(config = {}) {\n // 只需传入模块路径,所有配置自动处理\n super('/onboarding', config);\n }\n\n // ============ 教程管理 ============\n\n /**\n * 获取教程列表\n */\n async getTutorials() {\n return this.get('/tutorials');\n }\n\n /**\n * 获取教程详情\n * @param {string} tutorialId - 教程 ID\n */\n async getTutorial(tutorialId) {\n return this.get(`/tutorials/${tutorialId}`);\n }\n\n /**\n * 开始教程\n * @param {string} tutorialId - 教程 ID\n */\n async startTutorial(tutorialId) {\n return this.post(`/tutorials/${tutorialId}/start`);\n }\n\n /**\n * 完成教程步骤\n * @param {string} tutorialId - 教程 ID\n * @param {string} stepId - 步骤 ID\n */\n async completeStep(tutorialId, stepId) {\n return this.post(`/tutorials/${tutorialId}/steps/${stepId}/complete`);\n }\n\n /**\n * 跳过教程\n * @param {string} tutorialId - 教程 ID\n */\n async skipTutorial(tutorialId) {\n return this.post(`/tutorials/${tutorialId}/skip`);\n }\n\n /**\n * 获取整体进度\n */\n async getProgress() {\n return this.get('/progress');\n }\n\n /**\n * 重置教程进度\n * @param {string} tutorialId - 教程 ID(可选,不传则重置全部)\n */\n async resetProgress(tutorialId = null) {\n const endpoint = tutorialId ? `/tutorials/${tutorialId}/reset` : '/progress/reset';\n return this.post(endpoint);\n }\n\n /**\n * 获取推荐教程\n */\n async getRecommendedTutorials() {\n return this.get('/tutorials/recommended');\n }\n\n /**\n * 标记提示已读\n * @param {string} tipId - 提示 ID\n */\n async dismissTip(tipId) {\n return this.post(`/tips/${tipId}/dismiss`);\n }\n\n /**\n * 获取新功能引导\n */\n async getNewFeatures() {\n return this.get('/features/new');\n }\n\n /**\n * 标记新功能已查看\n * @param {string} featureId - 功能 ID\n */\n async markFeatureSeen(featureId) {\n return this.post(`/features/${featureId}/seen`);\n }\n}\n\n// 创建默认实例\nexport const onboardingApi = new OnboardingApiClient();\n\nexport default onboardingApi;\n","/**\n * Onboarding SDK - React Hooks\n */\nimport { useState, useEffect, useCallback } from 'react';\nimport { onboardingApi } from '../services/onboardingApi';\n\nexport function useTutorials() {\n const [tutorials, setTutorials] = useState([]);\n const [loading, setLoading] = useState(true);\n useEffect(() => {\n onboardingApi.getTutorials().then(setTutorials).finally(() => setLoading(false));\n }, []);\n return { tutorials, loading };\n}\n\nexport function useTutorial(id) {\n const [tutorial, setTutorial] = useState(null);\n const [currentStep, setCurrentStep] = useState(0);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n if (id) onboardingApi.getTutorial(id).then(setTutorial).finally(() => setLoading(false));\n }, [id]);\n\n const nextStep = useCallback(() => {\n if (tutorial && currentStep < tutorial.steps.length - 1) {\n onboardingApi.completeStep(id, tutorial.steps[currentStep].id);\n setCurrentStep(s => s + 1);\n }\n }, [id, tutorial, currentStep]);\n\n const prevStep = useCallback(() => setCurrentStep(s => Math.max(0, s - 1)), []);\n const skip = useCallback(() => onboardingApi.skipTutorial(id), [id]);\n\n return { tutorial, currentStep, nextStep, prevStep, skip, loading };\n}\n\nexport function useOnboardingProgress() {\n const [progress, setProgress] = useState(null);\n const [loading, setLoading] = useState(true);\n useEffect(() => {\n onboardingApi.getProgress().then(setProgress).finally(() => setLoading(false));\n }, []);\n return { progress, loading };\n}\n"],"names":["OnboardingFlow","steps","onComplete","onSkip","className","current","setCurrent","useState","step","React","createElement","style","textAlign","padding","maxWidth","margin","image","src","alt","height","marginBottom","icon","fontSize","fontWeight","color","title","lineHeight","description","display","gap","justifyContent","map","_","i","key","width","borderRadius","background","transition","length","onClick","border","cursor","c","SpotlightTour","active","rect","setRect","updateRect","useCallback","target","el","document","querySelector","r","getBoundingClientRect","top","left","useEffect","window","addEventListener","removeEventListener","Fragment","position","inset","zIndex","id","fill","x","y","rx","mask","Math","max","min","innerWidth","boxShadow","animation","marginLeft","FeatureHighlight","isNew","onDismiss","visible","setVisible","dismiss","right","bottom","transform","opacity","marginTop","WelcomeScreen","subtitle","features","cta","onAction","logo","gridTemplateColumns","f","SUPPORTED_LANGUAGES","messages","en","zh","ja","ko","currentLang","setLanguage","l","includes","getLanguage","t","k","params","text","Object","entries","forEach","val","replace","RegExp","Tooltip","content","placement","onNext","isLast","CoachMark","children","StepIndicator","total","Array","from","TutorialOverlay","tutorial","currentStep","onPrev","isFirst","StepType","HIGHLIGHT","MODAL","TOOLTIP","COACH_MARK","TutorialStatus","NOT_STARTED","IN_PROGRESS","COMPLETED","SKIPPED","createDefaultStep","type","order","action","createDefaultTutorial","name","status","OnboardingApiClient","BaseApiClient","constructor","config","getTutorials","get","getTutorial","tutorialId","startTutorial","post","completeStep","stepId","skipTutorial","getProgress","resetProgress","endpoint","getRecommendedTutorials","dismissTip","tipId","getNewFeatures","markFeatureSeen","featureId","onboardingApi","useTutorials","tutorials","setTutorials","loading","setLoading","then","finally","useTutorial","setTutorial","setCurrentStep","nextStep","s","prevStep","skip","useOnboardingProgress","progress","setProgress"],"mappings":"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"}