ontheway-sdk 0.1.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.
Files changed (44) hide show
  1. package/README.md +110 -0
  2. package/dist/checklist.cjs +319 -0
  3. package/dist/checklist.cjs.map +1 -0
  4. package/dist/checklist.d.cts +58 -0
  5. package/dist/checklist.d.ts +58 -0
  6. package/dist/checklist.js +314 -0
  7. package/dist/checklist.js.map +1 -0
  8. package/dist/chunk-254YHUN3.cjs +26 -0
  9. package/dist/chunk-254YHUN3.cjs.map +1 -0
  10. package/dist/chunk-DDAAVRWG.js +23 -0
  11. package/dist/chunk-DDAAVRWG.js.map +1 -0
  12. package/dist/chunk-NRUQU5AR.cjs +94 -0
  13. package/dist/chunk-NRUQU5AR.cjs.map +1 -0
  14. package/dist/chunk-OKJ5GEH3.js +358 -0
  15. package/dist/chunk-OKJ5GEH3.js.map +1 -0
  16. package/dist/chunk-RNQLNLNI.js +91 -0
  17. package/dist/chunk-RNQLNLNI.js.map +1 -0
  18. package/dist/chunk-UE3T6TSM.cjs +361 -0
  19. package/dist/chunk-UE3T6TSM.cjs.map +1 -0
  20. package/dist/components.cjs +211 -0
  21. package/dist/components.cjs.map +1 -0
  22. package/dist/components.d.cts +51 -0
  23. package/dist/components.d.ts +51 -0
  24. package/dist/components.js +205 -0
  25. package/dist/components.js.map +1 -0
  26. package/dist/devtools.cjs +733 -0
  27. package/dist/devtools.cjs.map +1 -0
  28. package/dist/devtools.d.cts +18 -0
  29. package/dist/devtools.d.ts +18 -0
  30. package/dist/devtools.js +727 -0
  31. package/dist/devtools.js.map +1 -0
  32. package/dist/index.cjs +19 -0
  33. package/dist/index.cjs.map +1 -0
  34. package/dist/index.d.cts +163 -0
  35. package/dist/index.d.ts +163 -0
  36. package/dist/index.js +4 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/react.cjs +18 -0
  39. package/dist/react.cjs.map +1 -0
  40. package/dist/react.d.cts +68 -0
  41. package/dist/react.d.ts +68 -0
  42. package/dist/react.js +5 -0
  43. package/dist/react.js.map +1 -0
  44. package/package.json +93 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/devtools.tsx"],"names":["useState","useRef","useCallback","useEffect","__spreadValues","_a","jsx","jsxs","Fragment","__spreadProps"],"mappings":"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","file":"devtools.cjs","sourcesContent":["'use client'\n\n/**\n * OnTheWay DevTools\n * \n * Development-only floating panel for recording onboarding steps.\n * Auto-disabled in production. Steps are saved directly to OnTheWay backend.\n * \n * Usage:\n * import { OnTheWayDevTools } from '@ontheway/sdk/devtools'\n * \n * // In your app root (only runs in development):\n * if (process.env.NODE_ENV === 'development') {\n * OnTheWayDevTools.init({ projectId: 'xxx', apiKey: 'otw_xxx' })\n * }\n * \n * React:\n * <OnTheWayDevToolsPanel projectId=\"xxx\" apiKey=\"otw_xxx\" />\n */\n\nimport { useState, useEffect, useCallback, useRef } from 'react'\n\n// ---- Types ----\n\ninterface DevToolsConfig {\n projectId: string\n apiKey: string\n serverUrl?: string\n}\n\ninterface RecordedStep {\n id: string\n selector: string\n tagName: string\n innerText: string\n title: string\n description: string\n position: 'auto' | 'top' | 'bottom' | 'left' | 'right'\n spotlight: boolean\n url: string\n}\n\ninterface Task {\n id: string\n name: string\n slug: string\n steps: unknown[]\n enabled: boolean\n}\n\n// ---- Selector Generator (same logic as recorder-snippet.js) ----\n\nfunction genSelector(el: Element): string {\n const ds = (el as HTMLElement).dataset\n if (ds?.onthewayId) return `[data-ontheway-id=\"${ds.onthewayId}\"]`\n\n if (el.id && !/^[\\d:]/.test(el.id)) {\n try {\n if (document.querySelectorAll('#' + CSS.escape(el.id)).length === 1) return '#' + CSS.escape(el.id)\n } catch {}\n }\n\n const parts: string[] = []\n let cur: Element | null = el\n while (cur && cur !== document.body && cur !== document.documentElement && parts.length < 4) {\n let p = cur.tagName.toLowerCase()\n if (cur.id && !/^[\\d:]/.test(cur.id)) { parts.unshift('#' + CSS.escape(cur.id)); break }\n const cls = Array.from(cur.classList || [])\n .filter(c => !/^(w-|h-|p-|m-|text-|bg-|flex|grid|border|rounded|hover:|focus:|sm:|md:|lg:|xl:)/.test(c))\n .slice(0, 2)\n if (cls.length) p += '.' + cls.map(c => CSS.escape(c)).join('.')\n const parent = cur.parentElement\n if (parent) {\n const sibs = Array.from(parent.children).filter(s => s.tagName === cur!.tagName)\n if (sibs.length > 1) p += `:nth-child(${sibs.indexOf(cur) + 1})`\n }\n parts.unshift(p)\n cur = cur.parentElement\n }\n\n const sel = parts.join(' > ')\n try { if (document.querySelector(sel) === el) return sel } catch {}\n\n // Fallback: full path\n parts.length = 0\n cur = el\n while (cur && cur !== document.body) {\n const parentEl: Element | null = cur.parentElement\n if (!parentEl) break\n parts.unshift(cur.tagName.toLowerCase() + ':nth-child(' + (Array.from(parentEl.children).indexOf(cur) + 1) + ')')\n cur = parentEl\n }\n return 'body > ' + parts.join(' > ')\n}\n\n// ---- React DevTools Panel ----\n\ninterface DevToolsPanelProps {\n projectId: string\n apiKey: string\n serverUrl?: string\n}\n\nexport function OnTheWayDevToolsPanel({ projectId, apiKey, serverUrl }: DevToolsPanelProps) {\n const [minimized, setMinimized] = useState(true)\n const [tab, setTab] = useState<'record' | 'tasks'>('record')\n\n // Recording state\n const [recording, setRecording] = useState(false)\n const [steps, setSteps] = useState<RecordedStep[]>([])\n const [editingStep, setEditingStep] = useState<string | null>(null)\n const [taskName, setTaskName] = useState('')\n const [taskSlug, setTaskSlug] = useState('')\n const [trigger, setTrigger] = useState<'manual' | 'auto' | 'first-visit'>('manual')\n const [saving, setSaving] = useState(false)\n const [saveMsg, setSaveMsg] = useState('')\n\n // AI generation\n const [aiIntent, setAiIntent] = useState('')\n const [aiGenerating, setAiGenerating] = useState(false)\n\n // Tasks list\n const [tasks, setTasks] = useState<Task[]>([])\n const [loadingTasks, setLoadingTasks] = useState(false)\n\n const highlightRef = useRef<HTMLDivElement | null>(null)\n const hoveredRef = useRef<Element | null>(null)\n const panelRef = useRef<HTMLDivElement | null>(null)\n\n const baseUrl = serverUrl || (typeof window !== 'undefined' ? window.location.origin : '')\n\n // ---- Fetch tasks ----\n const fetchTasks = useCallback(async () => {\n setLoadingTasks(true)\n try {\n const res = await fetch(`${baseUrl}/api/sdk/${projectId}/config`)\n const data = await res.json()\n setTasks((data.tasks || []).map((t: { id: string; slug: string; trigger: string; steps: unknown[] }) => ({\n id: t.id,\n name: t.slug.replace(/[-_]/g, ' ').replace(/\\b\\w/g, c => c.toUpperCase()),\n slug: t.slug,\n steps: t.steps,\n enabled: true,\n })))\n } catch {\n setTasks([])\n }\n setLoadingTasks(false)\n }, [baseUrl, projectId])\n\n useEffect(() => {\n if (tab === 'tasks' && !minimized) fetchTasks()\n }, [tab, minimized, fetchTasks])\n\n // ---- Recording logic ----\n const isOurElement = useCallback((el: Element) => {\n return panelRef.current?.contains(el) || highlightRef.current?.contains(el) ||\n el.id === 'otw-devtools-highlight'\n }, [])\n\n const onMouseMove = useCallback((e: MouseEvent) => {\n const el = document.elementFromPoint(e.clientX, e.clientY)\n if (!el || el === hoveredRef.current || isOurElement(el)) return\n hoveredRef.current = el\n if (!highlightRef.current) {\n const div = document.createElement('div')\n div.id = 'otw-devtools-highlight'\n div.style.cssText = 'position:fixed;pointer-events:none;z-index:2147483645;border:2px solid #3b82f6;background:rgba(59,130,246,0.15);border-radius:3px;transition:all .08s ease'\n document.documentElement.appendChild(div)\n highlightRef.current = div\n }\n const r = el.getBoundingClientRect()\n const h = highlightRef.current\n h.style.display = 'block'\n h.style.top = r.top + 'px'\n h.style.left = r.left + 'px'\n h.style.width = r.width + 'px'\n h.style.height = r.height + 'px'\n }, [isOurElement])\n\n const onMouseLeave = useCallback(() => {\n if (highlightRef.current) highlightRef.current.style.display = 'none'\n hoveredRef.current = null\n }, [])\n\n const onClick = useCallback((e: MouseEvent) => {\n const el = e.target as Element\n if (isOurElement(el)) return\n e.preventDefault()\n e.stopPropagation()\n\n const r = el.getBoundingClientRect()\n const text = (el as HTMLElement).innerText?.trim().substring(0, 60) || ''\n const step: RecordedStep = {\n id: 'step_' + Date.now(),\n selector: genSelector(el),\n tagName: el.tagName.toLowerCase(),\n innerText: text,\n title: `Step ${steps.length + 1}`,\n description: 'Click here to continue',\n position: 'auto',\n spotlight: true,\n url: location.href,\n }\n setSteps(prev => [...prev, step])\n setEditingStep(step.id)\n\n // Flash feedback\n const orig = (el as HTMLElement).style.outline;\n (el as HTMLElement).style.outline = '3px solid #22c55e'\n setTimeout(() => { (el as HTMLElement).style.outline = orig }, 400)\n }, [isOurElement, steps.length])\n\n const startRecording = useCallback(() => {\n setRecording(true)\n document.addEventListener('mousemove', onMouseMove, true)\n document.addEventListener('mouseleave', onMouseLeave, true)\n document.addEventListener('click', onClick, true)\n }, [onMouseMove, onMouseLeave, onClick])\n\n const stopRecording = useCallback(() => {\n setRecording(false)\n document.removeEventListener('mousemove', onMouseMove, true)\n document.removeEventListener('mouseleave', onMouseLeave, true)\n document.removeEventListener('click', onClick, true)\n if (highlightRef.current) {\n highlightRef.current.remove()\n highlightRef.current = null\n }\n hoveredRef.current = null\n }, [onMouseMove, onMouseLeave, onClick])\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n document.removeEventListener('mousemove', onMouseMove, true)\n document.removeEventListener('mouseleave', onMouseLeave, true)\n document.removeEventListener('click', onClick, true)\n highlightRef.current?.remove()\n }\n }, [onMouseMove, onMouseLeave, onClick])\n\n // Auto slug from name\n useEffect(() => {\n if (taskName) {\n setTaskSlug(taskName.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, ''))\n }\n }, [taskName])\n\n // ---- Step operations ----\n const updateStep = (id: string, updates: Partial<RecordedStep>) => {\n setSteps(prev => prev.map(s => s.id === id ? { ...s, ...updates } : s))\n }\n\n const deleteStep = (id: string) => {\n setSteps(prev => prev.filter(s => s.id !== id))\n if (editingStep === id) setEditingStep(null)\n }\n\n const moveStep = (id: string, dir: 'up' | 'down') => {\n setSteps(prev => {\n const i = prev.findIndex(s => s.id === id)\n if (i === -1) return prev\n if (dir === 'up' && i === 0) return prev\n if (dir === 'down' && i === prev.length - 1) return prev\n const next = [...prev]\n const j = dir === 'up' ? i - 1 : i + 1\n ;[next[i], next[j]] = [next[j], next[i]]\n return next\n })\n }\n\n // ---- DOM extraction for AI ----\n const extractDOM = useCallback(() => {\n const walk = (el: Element, depth: number): string => {\n if (depth > 6) return ''\n const tag = el.tagName.toLowerCase()\n // Skip our devtools, scripts, styles, hidden elements\n if (['script', 'style', 'noscript', 'svg', 'path'].includes(tag)) return ''\n if (el.id?.startsWith('otw-')) return ''\n if ((el as HTMLElement).offsetParent === null && tag !== 'body' && tag !== 'html') return ''\n\n const attrs: string[] = []\n if (el.id) attrs.push(`id=\"${el.id}\"`)\n if (el.className && typeof el.className === 'string') {\n const cls = el.className.split(/\\s+/).filter(c =>\n !/^(w-|h-|p-|m-|text-|bg-|flex|grid|border|rounded|shadow|transition|transform|hover:|focus:|sm:|md:|lg:|xl:|2xl:)/.test(c)\n ).slice(0, 3).join(' ')\n if (cls) attrs.push(`class=\"${cls}\"`)\n }\n if ((el as HTMLInputElement).type) attrs.push(`type=\"${(el as HTMLInputElement).type}\"`)\n if ((el as HTMLInputElement).name) attrs.push(`name=\"${(el as HTMLInputElement).name}\"`)\n if ((el as HTMLInputElement).placeholder) attrs.push(`placeholder=\"${(el as HTMLInputElement).placeholder}\"`)\n if ((el as HTMLAnchorElement).href && tag === 'a') attrs.push(`href=\"...\"`)\n const ds = (el as HTMLElement).dataset\n if (ds?.onthewayId) attrs.push(`data-ontheway-id=\"${ds.onthewayId}\"`)\n\n const indent = ' '.repeat(depth)\n const attrStr = attrs.length ? ' ' + attrs.join(' ') : ''\n\n // Leaf text\n const text = Array.from(el.childNodes)\n .filter(n => n.nodeType === 3)\n .map(n => n.textContent?.trim())\n .filter(Boolean)\n .join(' ')\n .substring(0, 60)\n\n const children = Array.from(el.children)\n .map(c => walk(c, depth + 1))\n .filter(Boolean)\n .join('\\n')\n\n if (!children && !text && !['input', 'button', 'img', 'video', 'iframe'].includes(tag)) {\n return ''\n }\n\n if (!children) {\n return `${indent}<${tag}${attrStr}>${text ? ' ' + text + ' ' : ''}</${tag}>`\n }\n return `${indent}<${tag}${attrStr}>${text ? ' ' + text : ''}\\n${children}\\n${indent}</${tag}>`\n }\n\n return walk(document.body, 0)\n }, [])\n\n // ---- AI Generate ----\n const aiGenerate = useCallback(async () => {\n if (!aiIntent.trim()) {\n setSaveMsg('❌ Describe what the tour should do')\n return\n }\n setAiGenerating(true)\n setSaveMsg('')\n\n try {\n const dom = extractDOM()\n const res = await fetch(`${baseUrl}/api/ai/generate`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n intent: aiIntent,\n dom,\n url: location.href,\n taskName: taskName || undefined,\n }),\n })\n\n const data = await res.json()\n\n if (data.steps && data.steps.length > 0) {\n const newSteps: RecordedStep[] = data.steps.map((s: Record<string, unknown>, i: number) => ({\n id: 'ai_' + Date.now() + '_' + i,\n selector: (s.selector as string) || '',\n tagName: '',\n innerText: '',\n title: (s.title as string) || `Step ${i + 1}`,\n description: (s.content as string) || (s.description as string) || '',\n position: (s.position as RecordedStep['position']) || 'auto',\n spotlight: s.spotlight !== false,\n url: location.href,\n }))\n\n setSteps(prev => [...prev, ...newSteps])\n if (!taskName && data.taskName) {\n setTaskName(data.taskName)\n }\n setEditingStep(newSteps[0].id)\n setSaveMsg(`✨ ${newSteps.length} steps generated (${data.source})`)\n } else {\n setSaveMsg('❌ No steps generated')\n }\n } catch {\n setSaveMsg('❌ AI generation failed')\n }\n setAiGenerating(false)\n }, [aiIntent, baseUrl, extractDOM, taskName])\n\n // ---- Save task ----\n const saveTask = async () => {\n if (!taskName || !taskSlug || steps.length === 0) {\n setSaveMsg('❌ Fill name + at least 1 step')\n return\n }\n setSaving(true)\n setSaveMsg('')\n try {\n const res = await fetch(`${baseUrl}/api/projects/${projectId}/tasks`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n name: taskName,\n slug: taskSlug,\n trigger,\n steps: steps.map(s => ({\n selector: s.selector,\n title: s.title,\n content: s.description,\n position: s.position,\n spotlight: s.spotlight,\n })),\n }),\n })\n if (res.ok) {\n setSaveMsg('✅ Saved!')\n setSteps([])\n setTaskName('')\n setTaskSlug('')\n setEditingStep(null)\n stopRecording()\n } else {\n const err = await res.json()\n setSaveMsg('❌ ' + (err.error || 'Failed'))\n }\n } catch (e) {\n setSaveMsg('❌ Network error')\n }\n setSaving(false)\n }\n\n const currentStep = steps.find(s => s.id === editingStep)\n\n // ---- Styles (inline, no Tailwind dependency) ----\n const S = {\n panel: {\n position: 'fixed' as const,\n bottom: 16,\n right: 16,\n zIndex: 2147483646,\n fontFamily: 'system-ui, -apple-system, sans-serif',\n fontSize: 13,\n color: '#1f2937',\n },\n card: {\n width: 360,\n maxHeight: '80vh',\n background: '#fff',\n borderRadius: 12,\n boxShadow: '0 8px 40px rgba(0,0,0,0.18)',\n border: '1px solid #e5e7eb',\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column' as const,\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '10px 14px',\n background: '#111',\n color: '#fff',\n fontSize: 13,\n fontWeight: 600,\n },\n tabs: {\n display: 'flex',\n borderBottom: '1px solid #e5e7eb',\n },\n tab: (active: boolean) => ({\n flex: 1,\n padding: '8px 0',\n border: 'none',\n background: active ? '#fff' : '#f9fafb',\n borderBottom: active ? '2px solid #111' : '2px solid transparent',\n cursor: 'pointer',\n fontSize: 12,\n fontWeight: active ? 600 : 400,\n color: active ? '#111' : '#6b7280',\n }),\n body: {\n flex: 1,\n overflow: 'auto' as const,\n maxHeight: 'calc(80vh - 100px)',\n },\n section: {\n padding: '10px 14px',\n borderBottom: '1px solid #f3f4f6',\n },\n input: {\n width: '100%',\n padding: '6px 8px',\n border: '1px solid #d1d5db',\n borderRadius: 6,\n fontSize: 12,\n marginTop: 4,\n boxSizing: 'border-box' as const,\n },\n select: {\n padding: '6px 8px',\n border: '1px solid #d1d5db',\n borderRadius: 6,\n fontSize: 12,\n marginTop: 4,\n },\n btn: (color: string, disabled = false) => ({\n padding: '6px 14px',\n border: 'none',\n borderRadius: 6,\n background: disabled ? '#d1d5db' : color,\n color: '#fff',\n fontSize: 12,\n fontWeight: 600,\n cursor: disabled ? 'not-allowed' : 'pointer',\n }),\n btnOutline: {\n padding: '6px 14px',\n border: '1px solid #d1d5db',\n borderRadius: 6,\n background: '#fff',\n fontSize: 12,\n cursor: 'pointer',\n },\n stepItem: (active: boolean) => ({\n padding: '8px 10px',\n margin: '4px 0',\n borderRadius: 6,\n border: active ? '1px solid #3b82f6' : '1px solid #e5e7eb',\n background: active ? '#eff6ff' : '#fff',\n cursor: 'pointer',\n }),\n fab: {\n width: 48,\n height: 48,\n borderRadius: '50%',\n border: 'none',\n background: '#111',\n color: '#fff',\n fontSize: 22,\n cursor: 'pointer',\n boxShadow: '0 4px 16px rgba(0,0,0,0.2)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n label: {\n fontSize: 11,\n fontWeight: 600,\n color: '#6b7280',\n marginBottom: 2,\n display: 'block',\n },\n recDot: {\n width: 8,\n height: 8,\n borderRadius: '50%',\n background: '#ef4444',\n animation: 'otw-blink 1s ease-in-out infinite',\n display: 'inline-block',\n marginRight: 6,\n },\n }\n\n // ---- Inject blink animation ----\n useEffect(() => {\n if (document.getElementById('otw-devtools-style')) return\n const style = document.createElement('style')\n style.id = 'otw-devtools-style'\n style.textContent = '@keyframes otw-blink{0%,100%{opacity:1}50%{opacity:0.3}}'\n document.head.appendChild(style)\n return () => { style.remove() }\n }, [])\n\n // Inline SVG logo (same as public/logo.svg but as data URI)\n const logoSvg = `data:image/svg+xml,${encodeURIComponent('<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 40 40\" fill=\"none\"><rect width=\"40\" height=\"40\" rx=\"10\" fill=\"#111\"/><path d=\"M12 32 C12 24,16 22,20 20 C24 18,28 16,28 8\" stroke=\"#22c55e\" stroke-width=\"3.5\" stroke-linecap=\"round\" fill=\"none\"/><path d=\"M12 32 C12 24,16 22,20 20 C24 18,28 16,28 8\" stroke=\"#fff\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-dasharray=\"2.5 3.5\" fill=\"none\" opacity=\"0.6\"/><circle cx=\"28\" cy=\"8\" r=\"3.5\" fill=\"#22c55e\"/><circle cx=\"28\" cy=\"8\" r=\"1.5\" fill=\"#111\"/><circle cx=\"12\" cy=\"32\" r=\"2.5\" fill=\"#fff\" opacity=\"0.9\"/></svg>')}`\n\n if (minimized) {\n return (\n <div ref={panelRef} style={S.panel}>\n <button\n onClick={() => setMinimized(false)}\n style={{\n ...S.fab,\n ...(recording ? { background: '#22c55e', boxShadow: '0 0 20px rgba(34,197,94,0.5)' } : {}),\n }}\n title=\"OnTheWay DevTools\"\n >\n {recording ? (\n <span style={{ display: 'flex', alignItems: 'center' }}>\n <span style={S.recDot} />\n </span>\n ) : <img src={logoSvg} alt=\"OTW\" style={{ width: 24, height: 24 }} />}\n </button>\n </div>\n )\n }\n\n return (\n <div ref={panelRef} style={S.panel}>\n <div style={S.card}>\n {/* Header */}\n <div style={S.header}>\n <span style={{ display: 'flex', alignItems: 'center', gap: 6 }}>\n <img src={logoSvg} alt=\"OTW\" style={{ width: 18, height: 18 }} />\n OnTheWay DevTools\n </span>\n <div style={{ display: 'flex', gap: 8, alignItems: 'center' }}>\n {recording && <span style={{ display: 'flex', alignItems: 'center', fontSize: 11 }}><span style={S.recDot} /> REC</span>}\n <button onClick={() => setMinimized(true)} style={{ background: 'none', border: 'none', color: '#fff', cursor: 'pointer', fontSize: 16 }}>−</button>\n </div>\n </div>\n\n {/* Tabs */}\n <div style={S.tabs}>\n <button style={S.tab(tab === 'record')} onClick={() => setTab('record')}>\n ⏺ Record\n </button>\n <button style={S.tab(tab === 'tasks')} onClick={() => setTab('tasks')}>\n 📋 Tasks ({tasks.length})\n </button>\n </div>\n\n {/* Body */}\n <div style={S.body}>\n {tab === 'record' ? (\n <>\n {/* Task config */}\n <div style={S.section}>\n <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 8 }}>\n <div>\n <label style={S.label}>Task Name</label>\n <input style={S.input} value={taskName} onChange={e => setTaskName(e.target.value)} placeholder=\"Welcome Tour\" />\n </div>\n <div>\n <label style={S.label}>Trigger</label>\n <select style={{ ...S.select, width: '100%' }} value={trigger} onChange={e => setTrigger(e.target.value as typeof trigger)}>\n <option value=\"manual\">Manual</option>\n <option value=\"auto\">Auto</option>\n <option value=\"first-visit\">First Visit</option>\n </select>\n </div>\n </div>\n {taskSlug && <div style={{ fontSize: 11, color: '#9ca3af', marginTop: 4 }}>slug: {taskSlug}</div>}\n </div>\n\n {/* Recording controls */}\n <div style={{ ...S.section, display: 'flex', gap: 8, flexWrap: 'wrap' }}>\n {!recording ? (\n <button style={S.btn('#22c55e')} onClick={startRecording}>\n ⏺ Record\n </button>\n ) : (\n <button style={S.btn('#ef4444')} onClick={stopRecording}>\n ⏹ Stop\n </button>\n )}\n <button style={S.btn('#111', saving || steps.length === 0 || !taskName)} onClick={saveTask} disabled={saving || steps.length === 0 || !taskName}>\n {saving ? '...' : '💾 Save'}\n </button>\n </div>\n\n {/* AI Generate */}\n <div style={S.section}>\n <label style={S.label}>✨ AI Generate</label>\n <div style={{ display: 'flex', gap: 6, marginTop: 4 }}>\n <input\n style={{ ...S.input, flex: 1, marginTop: 0 }}\n value={aiIntent}\n onChange={e => setAiIntent(e.target.value)}\n placeholder=\"e.g. Guide new users to create their first project\"\n onKeyDown={e => { if (e.key === 'Enter' && !aiGenerating) aiGenerate() }}\n />\n <button\n style={S.btn('#7c3aed', aiGenerating || !aiIntent.trim())}\n onClick={aiGenerate}\n disabled={aiGenerating || !aiIntent.trim()}\n >\n {aiGenerating ? '...' : '✨'}\n </button>\n </div>\n {saveMsg && <div style={{ fontSize: 11, marginTop: 4, color: saveMsg.startsWith('✅') || saveMsg.startsWith('✨') ? '#16a34a' : saveMsg.startsWith('❌') ? '#dc2626' : '#6b7280' }}>{saveMsg}</div>}\n </div>\n\n {/* Steps */}\n <div style={S.section}>\n <label style={{ ...S.label, marginBottom: 6 }}>Steps ({steps.length})</label>\n {steps.length === 0 ? (\n <div style={{ textAlign: 'center', padding: '16px 0', color: '#9ca3af', fontSize: 12 }}>\n {recording ? 'Click elements on the page to capture steps' : 'Click Record to start'}\n </div>\n ) : (\n steps.map((step, i) => (\n <div\n key={step.id}\n style={S.stepItem(editingStep === step.id)}\n onClick={() => setEditingStep(editingStep === step.id ? null : step.id)}\n >\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\n <span style={{ fontWeight: 500, fontSize: 12 }}>\n <span style={{ color: '#9ca3af', marginRight: 6 }}>{i + 1}</span>\n {step.title}\n </span>\n <div style={{ display: 'flex', gap: 4 }}>\n <button onClick={e => { e.stopPropagation(); moveStep(step.id, 'up') }} disabled={i === 0}\n style={{ ...S.btnOutline, padding: '2px 6px', fontSize: 10 }}>↑</button>\n <button onClick={e => { e.stopPropagation(); moveStep(step.id, 'down') }} disabled={i === steps.length - 1}\n style={{ ...S.btnOutline, padding: '2px 6px', fontSize: 10 }}>↓</button>\n <button onClick={e => { e.stopPropagation(); deleteStep(step.id) }}\n style={{ ...S.btnOutline, padding: '2px 6px', fontSize: 10, color: '#ef4444' }}>✕</button>\n </div>\n </div>\n <div style={{ fontSize: 10, color: '#9ca3af', fontFamily: 'monospace', marginTop: 2, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>\n {step.selector}\n </div>\n\n {/* Inline editor */}\n {editingStep === step.id && (\n <div style={{ marginTop: 8, display: 'flex', flexDirection: 'column', gap: 6 }}\n onClick={e => e.stopPropagation()}>\n <div>\n <label style={S.label}>Selector</label>\n <input style={{ ...S.input, fontFamily: 'monospace' }} value={step.selector}\n onChange={e => updateStep(step.id, { selector: e.target.value })} />\n </div>\n <div>\n <label style={S.label}>Title</label>\n <input style={S.input} value={step.title}\n onChange={e => updateStep(step.id, { title: e.target.value })} />\n </div>\n <div>\n <label style={S.label}>Description</label>\n <input style={S.input} value={step.description}\n onChange={e => updateStep(step.id, { description: e.target.value })} />\n </div>\n <div style={{ display: 'flex', gap: 8 }}>\n <div style={{ flex: 1 }}>\n <label style={S.label}>Position</label>\n <select style={{ ...S.select, width: '100%' }} value={step.position}\n onChange={e => updateStep(step.id, { position: e.target.value as RecordedStep['position'] })}>\n <option value=\"auto\">Auto</option>\n <option value=\"top\">Top</option>\n <option value=\"bottom\">Bottom</option>\n <option value=\"left\">Left</option>\n <option value=\"right\">Right</option>\n </select>\n </div>\n <div style={{ display: 'flex', alignItems: 'end', paddingBottom: 2 }}>\n <label style={{ fontSize: 11, display: 'flex', alignItems: 'center', gap: 4 }}>\n <input type=\"checkbox\" checked={step.spotlight}\n onChange={e => updateStep(step.id, { spotlight: e.target.checked })} />\n Spotlight\n </label>\n </div>\n </div>\n </div>\n )}\n </div>\n ))\n )}\n </div>\n </>\n ) : (\n /* Tasks tab */\n <div style={S.section}>\n {loadingTasks ? (\n <div style={{ textAlign: 'center', padding: 16, color: '#9ca3af' }}>Loading...</div>\n ) : tasks.length === 0 ? (\n <div style={{ textAlign: 'center', padding: 16, color: '#9ca3af' }}>No tasks yet</div>\n ) : (\n tasks.map(task => (\n <div key={task.id} style={{ ...S.stepItem(false), display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>\n <div>\n <div style={{ fontWeight: 500, fontSize: 12 }}>{task.name}</div>\n <div style={{ fontSize: 10, color: '#9ca3af' }}>{task.slug} · {task.steps.length} steps</div>\n </div>\n <button\n style={S.btn('#111')}\n onClick={() => {\n // Preview using Driver.js\n if ((window as any).ontheway) {\n (window as any).ontheway.start(task.slug)\n }\n }}\n >▶</button>\n </div>\n ))\n )}\n <button style={{ ...S.btnOutline, width: '100%', marginTop: 8 }} onClick={fetchTasks}>\n ↻ Refresh\n </button>\n </div>\n )}\n </div>\n </div>\n </div>\n )\n}\n\n// ---- Vanilla JS init (non-React) ----\n\nexport const OnTheWayDevTools = {\n init(config: DevToolsConfig) {\n if (typeof window === 'undefined') return\n if (typeof document === 'undefined') return\n\n // Lazy: inject a minimal DOM-based devtools without React\n // For React apps, use <OnTheWayDevToolsPanel /> instead\n console.log(\n '%c🛤️ OnTheWay DevTools %c Use <OnTheWayDevToolsPanel /> in React, or import the standalone recorder-snippet.js',\n 'background:#22c55e;color:#fff;padding:4px 8px;border-radius:4px;font-weight:bold',\n 'color:#666'\n )\n\n // Auto-inject recorder-snippet as fallback\n const script = document.createElement('script')\n script.src = (config.serverUrl || '') + '/recorder-snippet.js'\n script.dataset.session = 'devtools_' + Date.now().toString(36)\n script.dataset.server = config.serverUrl || window.location.origin\n document.head.appendChild(script)\n }\n}\n\nexport default OnTheWayDevToolsPanel\n"]}
@@ -0,0 +1,18 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface DevToolsConfig {
4
+ projectId: string;
5
+ apiKey: string;
6
+ serverUrl?: string;
7
+ }
8
+ interface DevToolsPanelProps {
9
+ projectId: string;
10
+ apiKey: string;
11
+ serverUrl?: string;
12
+ }
13
+ declare function OnTheWayDevToolsPanel({ projectId, apiKey, serverUrl }: DevToolsPanelProps): react_jsx_runtime.JSX.Element;
14
+ declare const OnTheWayDevTools: {
15
+ init(config: DevToolsConfig): void;
16
+ };
17
+
18
+ export { OnTheWayDevTools, OnTheWayDevToolsPanel, OnTheWayDevToolsPanel as default };
@@ -0,0 +1,18 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface DevToolsConfig {
4
+ projectId: string;
5
+ apiKey: string;
6
+ serverUrl?: string;
7
+ }
8
+ interface DevToolsPanelProps {
9
+ projectId: string;
10
+ apiKey: string;
11
+ serverUrl?: string;
12
+ }
13
+ declare function OnTheWayDevToolsPanel({ projectId, apiKey, serverUrl }: DevToolsPanelProps): react_jsx_runtime.JSX.Element;
14
+ declare const OnTheWayDevTools: {
15
+ init(config: DevToolsConfig): void;
16
+ };
17
+
18
+ export { OnTheWayDevTools, OnTheWayDevToolsPanel, OnTheWayDevToolsPanel as default };