@auraone/aura-ide-kit 0.2.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,"sources":["../src/command-registry.ts","../src/components.tsx","../src/theme.ts","../src/ssr-posture.ts","../src/index.ts"],"sourcesContent":["import type { AuraCommand } from \"./types\";\n\nexport type CommandRegistry = {\n register: (command: AuraCommand) => () => void;\n list: () => AuraCommand[];\n find: (query: string) => AuraCommand[];\n run: (id: string) => Promise<void>;\n};\n\nexport function createCommandRegistry(initialCommands: AuraCommand[] = []): CommandRegistry {\n const commands = new Map<string, AuraCommand>();\n for (const command of initialCommands) {\n commands.set(command.id, command);\n }\n\n const list = () => Array.from(commands.values()).sort((a, b) => a.title.localeCompare(b.title));\n\n return {\n register(command) {\n if (commands.has(command.id)) {\n throw new Error(`Command already registered: ${command.id}`);\n }\n commands.set(command.id, command);\n return () => {\n commands.delete(command.id);\n };\n },\n list,\n find(query) {\n const available = list();\n const normalizedQuery = normalize(query);\n if (!normalizedQuery) {\n return available;\n }\n\n return available.filter((command) => {\n const haystack = normalize([command.title, command.group, command.id, ...(command.keywords ?? [])].join(\" \"));\n return haystack.includes(normalizedQuery) || isSubsequence(normalizedQuery, haystack);\n });\n },\n async run(id) {\n const command = commands.get(id);\n if (!command) {\n throw new Error(`Unknown command: ${id}`);\n }\n if (command.disabled) {\n return;\n }\n await command.handler();\n },\n };\n}\n\nfunction normalize(value: string): string {\n return value.trim().toLowerCase().replace(/\\s+/g, \" \");\n}\n\nfunction isSubsequence(needle: string, haystack: string): boolean {\n let index = 0;\n for (const character of haystack) {\n if (character === needle[index]) {\n index += 1;\n }\n if (index === needle.length) {\n return true;\n }\n }\n return false;\n}\n","import Editor from \"@monaco-editor/react\";\nimport {\n AlertTriangle,\n Bell,\n CheckCircle2,\n ChevronDown,\n ChevronRight,\n Circle,\n CircleDot,\n Code2,\n Command,\n File,\n Folder,\n FolderOpen,\n Info,\n Loader2,\n Search,\n Settings,\n ShieldAlert,\n X,\n} from \"lucide-react\";\nimport {\n createContext,\n Fragment,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { createCommandRegistry, type CommandRegistry } from \"./command-registry\";\nimport { AuraThemeContext } from \"./theme\";\nimport type {\n AuraCommand,\n AuraIntakePacketPreviewData,\n AuraProblem,\n AuraTab,\n AuraTelemetryEvent,\n AuraThemeMode,\n AuraTimelineItem,\n AuraTreeNode,\n} from \"./types\";\n\nfunction cx(...classes: Array<string | false | null | undefined>): string {\n return classes.filter(Boolean).join(\" \");\n}\n\nexport type AuraIdeAppFrameProps = {\n productName: string;\n projectName?: string;\n commands: CommandRegistry;\n sidebar: ReactNode;\n main: ReactNode;\n inspector?: ReactNode;\n bottomPanel?: ReactNode;\n statusBar?: ReactNode;\n themeMode?: AuraThemeMode;\n onThemeModeChange?: (mode: AuraThemeMode) => void;\n};\n\nexport function AuraIdeAppFrame({\n productName,\n projectName = \"No project open\",\n commands,\n sidebar,\n main,\n inspector,\n bottomPanel,\n statusBar,\n themeMode = \"system\",\n onThemeModeChange,\n}: AuraIdeAppFrameProps) {\n const [paletteOpen, setPaletteOpen] = useState(false);\n const [mode, setMode] = useState<AuraThemeMode>(themeMode);\n\n useEffect(() => {\n setMode(themeMode);\n }, [themeMode]);\n\n useEffect(() => {\n const listener = (event: globalThis.KeyboardEvent) => {\n if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === \"k\") {\n event.preventDefault();\n setPaletteOpen(true);\n }\n };\n window.addEventListener(\"keydown\", listener);\n return () => window.removeEventListener(\"keydown\", listener);\n }, []);\n\n const themeValue = useMemo(\n () => ({\n mode,\n setMode: (nextMode: AuraThemeMode) => {\n setMode(nextMode);\n onThemeModeChange?.(nextMode);\n },\n }),\n [mode, onThemeModeChange],\n );\n\n return (\n <AuraThemeContext.Provider value={themeValue}>\n <div className=\"aura-ide-root\" data-theme={mode}>\n <div className=\"aura-ide-titlebar\">\n <div>\n <span className=\"aura-ide-titlebar__product\">{productName}</span>\n <span className=\"aura-ide-titlebar__project\">{projectName}</span>\n </div>\n <button className=\"aura-ide-icon-button\" type=\"button\" aria-label=\"Open command palette\" onClick={() => setPaletteOpen(true)}>\n <Command size={16} />\n <span>Cmd/Ctrl K</span>\n </button>\n </div>\n <AuraSplitPane\n start={<aside className=\"aura-ide-sidebar\">{sidebar}</aside>}\n end={\n <div className=\"aura-ide-workbench\">\n <div className=\"aura-ide-main-row\">\n <main className=\"aura-ide-main\">{main}</main>\n {inspector ? <aside className=\"aura-ide-inspector\">{inspector}</aside> : null}\n </div>\n {bottomPanel ? <section className=\"aura-ide-bottom-panel\">{bottomPanel}</section> : null}\n </div>\n }\n defaultStartSize={280}\n minStartSize={220}\n maxStartSize={420}\n />\n <footer className=\"aura-ide-statusbar\">{statusBar}</footer>\n <AuraCommandPalette registry={commands} open={paletteOpen} onOpenChange={setPaletteOpen} />\n </div>\n </AuraThemeContext.Provider>\n );\n}\n\nexport type AuraSplitPaneProps = {\n start: ReactNode;\n end: ReactNode;\n defaultStartSize?: number;\n minStartSize?: number;\n maxStartSize?: number;\n};\n\nexport function AuraSplitPane({\n start,\n end,\n defaultStartSize = 320,\n minStartSize = 180,\n maxStartSize = 600,\n}: AuraSplitPaneProps) {\n const [startSize, setStartSize] = useState(defaultStartSize);\n const dragging = useRef(false);\n\n useEffect(() => {\n const move = (event: MouseEvent) => {\n if (!dragging.current) {\n return;\n }\n const next = Math.min(maxStartSize, Math.max(minStartSize, event.clientX));\n setStartSize(next);\n };\n const up = () => {\n dragging.current = false;\n };\n window.addEventListener(\"mousemove\", move);\n window.addEventListener(\"mouseup\", up);\n return () => {\n window.removeEventListener(\"mousemove\", move);\n window.removeEventListener(\"mouseup\", up);\n };\n }, [maxStartSize, minStartSize]);\n\n return (\n <div className=\"aura-split-pane\" style={{ \"--aura-pane-start\": `${startSize}px` } as React.CSSProperties}>\n <div className=\"aura-split-pane__start\">{start}</div>\n <div\n className=\"aura-split-pane__handle\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-valuemin={minStartSize}\n aria-valuemax={maxStartSize}\n aria-valuenow={startSize}\n tabIndex={0}\n onMouseDown={() => {\n dragging.current = true;\n }}\n onKeyDown={(event) => {\n if (event.key === \"ArrowLeft\") {\n setStartSize((value) => Math.max(minStartSize, value - 16));\n }\n if (event.key === \"ArrowRight\") {\n setStartSize((value) => Math.min(maxStartSize, value + 16));\n }\n }}\n />\n <div className=\"aura-split-pane__end\">{end}</div>\n </div>\n );\n}\n\nexport type AuraProjectTreeProps = {\n nodes: AuraTreeNode[];\n selectedId?: string | undefined;\n onSelect?: ((node: AuraTreeNode) => void) | undefined;\n};\n\nexport function AuraProjectTree({ nodes, selectedId, onSelect }: AuraProjectTreeProps) {\n return (\n <div className=\"aura-tree\" role=\"tree\" aria-label=\"Project files\">\n {nodes.map((node) => (\n <TreeNode key={node.id} node={node} selectedId={selectedId} depth={0} onSelect={onSelect} />\n ))}\n </div>\n );\n}\n\nfunction TreeNode({\n node,\n selectedId,\n depth,\n onSelect,\n}: {\n node: AuraTreeNode;\n selectedId?: string | undefined;\n depth: number;\n onSelect?: ((node: AuraTreeNode) => void) | undefined;\n}) {\n const [expanded, setExpanded] = useState(node.expanded ?? true);\n const hasChildren = Boolean(node.children?.length);\n const Icon = node.kind === \"folder\" ? (expanded ? FolderOpen : Folder) : File;\n\n const activate = () => {\n if (node.kind === \"folder\" && hasChildren) {\n setExpanded((value) => !value);\n }\n onSelect?.(node);\n };\n\n return (\n <Fragment>\n <button\n type=\"button\"\n role=\"treeitem\"\n aria-expanded={node.kind === \"folder\" ? expanded : undefined}\n aria-selected={selectedId === node.id}\n className=\"aura-tree-row\"\n style={{ \"--aura-tree-depth\": depth } as React.CSSProperties}\n onClick={activate}\n >\n {hasChildren ? expanded ? <ChevronDown size={14} /> : <ChevronRight size={14} /> : <span className=\"aura-tree-row__spacer\" />}\n <Icon size={15} />\n <span className=\"aura-tree-row__name\">{node.name}</span>\n {node.dirty ? <CircleDot className=\"aura-tree-row__dirty\" size={10} aria-label=\"Dirty\" /> : null}\n {node.conflict ? <ShieldAlert className=\"aura-tree-row__conflict\" size={13} aria-label=\"Conflict\" /> : null}\n {node.badge ? <span className=\"aura-tree-row__badge\">{node.badge}</span> : null}\n </button>\n {expanded && node.children?.map((child) => <TreeNode key={child.id} node={child} selectedId={selectedId} depth={depth + 1} onSelect={onSelect} />)}\n </Fragment>\n );\n}\n\nexport type AuraTabbedShellProps = {\n tabs: AuraTab[];\n activeTabId: string;\n onActiveTabChange: (id: string) => void;\n onCloseTab?: (id: string) => void;\n};\n\nexport function AuraTabbedShell({ tabs, activeTabId, onActiveTabChange, onCloseTab }: AuraTabbedShellProps) {\n const activeTab = tabs.find((tab) => tab.id === activeTabId) ?? tabs[0];\n\n return (\n <div className=\"aura-tabs\">\n <div className=\"aura-tabs__bar\" role=\"tablist\" aria-label=\"Open editors\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n role=\"tab\"\n aria-selected={tab.id === activeTab?.id}\n className=\"aura-tabs__tab\"\n onClick={() => onActiveTabChange(tab.id)}\n onMouseDown={(event) => {\n if (event.button === 1) {\n onCloseTab?.(tab.id);\n }\n }}\n >\n {tab.icon}\n <span>{tab.title}</span>\n {tab.dirty ? <Circle size={8} fill=\"currentColor\" aria-label=\"Unsaved changes\" /> : null}\n {onCloseTab ? (\n <span\n role=\"button\"\n tabIndex={0}\n className=\"aura-tabs__close\"\n aria-label={`Close ${tab.title}`}\n onClick={(event) => {\n event.stopPropagation();\n onCloseTab(tab.id);\n }}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n onCloseTab(tab.id);\n }\n }}\n >\n <X size={13} />\n </span>\n ) : null}\n </button>\n ))}\n </div>\n <div className=\"aura-tabs__panel\" role=\"tabpanel\">\n {activeTab?.content}\n </div>\n </div>\n );\n}\n\nexport type AuraMonacoProps = {\n value: string;\n language?: string;\n path?: string;\n readOnly?: boolean;\n theme?: \"light\" | \"dark\" | \"high-contrast\";\n onChange?: (value: string) => void;\n};\n\nexport function AuraMonaco({ value, language = \"typescript\", path, readOnly = false, theme = \"dark\", onChange }: AuraMonacoProps) {\n const editorProps = path ? { path } : {};\n\n return (\n <div className=\"aura-monaco\">\n <Editor\n value={value}\n language={language}\n {...editorProps}\n theme={theme === \"light\" ? \"vs\" : theme === \"high-contrast\" ? \"hc-black\" : \"vs-dark\"}\n options={{\n readOnly,\n automaticLayout: true,\n minimap: { enabled: false },\n fontFamily: \"var(--ag-font-mono)\",\n fontSize: 13,\n renderLineHighlight: \"line\",\n scrollBeyondLastLine: false,\n tabSize: 2,\n }}\n onChange={(nextValue) => onChange?.(nextValue ?? \"\")}\n />\n </div>\n );\n}\n\nexport function AuraTimeline({ items }: { items: AuraTimelineItem[] }) {\n return (\n <ol className=\"aura-timeline\" aria-label=\"Timeline\">\n {items.map((item) => (\n <li key={item.id} className={cx(\"aura-timeline__item\", `aura-timeline__item--${item.severity ?? \"neutral\"}`)}>\n <span className=\"aura-timeline__dot\" />\n <div>\n <div className=\"aura-timeline__title\">{item.title}</div>\n <time className=\"aura-timeline__time\" dateTime={item.timestamp}>\n {item.timestamp}\n </time>\n {item.description ? <p>{item.description}</p> : null}\n </div>\n </li>\n ))}\n </ol>\n );\n}\n\nexport function AuraInspector({ title, children }: { title: string; children: ReactNode }) {\n return (\n <section className=\"aura-panel\" aria-label={title}>\n <header className=\"aura-panel__header\">\n <Info size={15} />\n <h2>{title}</h2>\n </header>\n <div className=\"aura-panel__body\">{children}</div>\n </section>\n );\n}\n\nexport type AuraCommandPaletteProps = {\n registry: CommandRegistry;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n};\n\nexport function AuraCommandPalette({ registry, open, onOpenChange }: AuraCommandPaletteProps) {\n const [query, setQuery] = useState(\"\");\n const commands = registry.find(query);\n\n if (!open) {\n return null;\n }\n\n const grouped = commands.reduce<Map<string, AuraCommand[]>>((groups, command) => {\n const groupCommands = groups.get(command.group) ?? [];\n groupCommands.push(command);\n groups.set(command.group, groupCommands);\n return groups;\n }, new Map());\n\n const runCommand = async (command: AuraCommand) => {\n await registry.run(command.id);\n onOpenChange(false);\n setQuery(\"\");\n };\n\n return (\n <div className=\"aura-modal-backdrop\" role=\"presentation\" onMouseDown={() => onOpenChange(false)}>\n <div className=\"aura-command-palette\" role=\"dialog\" aria-modal=\"true\" aria-label=\"Command palette\" onMouseDown={(event) => event.stopPropagation()}>\n <label className=\"aura-command-palette__search\">\n <Search size={16} />\n <input autoFocus value={query} placeholder=\"Search commands\" onChange={(event) => setQuery(event.currentTarget.value)} />\n </label>\n <div className=\"aura-command-palette__results\">\n {Array.from(grouped.entries()).map(([group, groupCommands]) => (\n <div key={group} className=\"aura-command-palette__group\">\n <div className=\"aura-command-palette__group-title\">{group}</div>\n {groupCommands.map((command) => (\n <button key={command.id} type=\"button\" disabled={command.disabled} className=\"aura-command-palette__item\" onClick={() => void runCommand(command)}>\n <span>{command.title}</span>\n {command.keybinding ? <kbd>{command.keybinding}</kbd> : null}\n </button>\n ))}\n </div>\n ))}\n {!commands.length ? <AuraEmptyState title=\"No commands\" description=\"Refine the query or register commands through the platform registry.\" /> : null}\n </div>\n </div>\n </div>\n );\n}\n\nexport function AuraStatusBar({ items }: { items: Array<{ id: string; label: string; value?: string; tone?: \"neutral\" | \"success\" | \"warning\" | \"error\" }> }) {\n return (\n <div className=\"aura-status-items\" role=\"status\">\n {items.map((item) => (\n <span key={item.id} className={cx(\"aura-status-item\", `aura-status-item--${item.tone ?? \"neutral\"}`)}>\n {item.label}\n {item.value ? <strong>{item.value}</strong> : null}\n </span>\n ))}\n </div>\n );\n}\n\nexport function AuraProblemsPanel({ problems }: { problems: AuraProblem[] }) {\n const icon = {\n info: <Info size={14} />,\n warning: <AlertTriangle size={14} />,\n error: <ShieldAlert size={14} />,\n };\n\n return (\n <section className=\"aura-panel\" aria-label=\"Problems\">\n <header className=\"aura-panel__header\">\n <AlertTriangle size={15} />\n <h2>Problems</h2>\n <span className=\"aura-panel__count\">{problems.length}</span>\n </header>\n <div className=\"aura-problems\">\n {problems.map((problem) => (\n <div key={problem.id} className={cx(\"aura-problem\", `aura-problem--${problem.severity}`)}>\n {icon[problem.severity]}\n <span>{problem.message}</span>\n <code>{[problem.path, problem.line, problem.column].filter(Boolean).join(\":\")}</code>\n </div>\n ))}\n {!problems.length ? <AuraEmptyState title=\"No problems\" description=\"Project checks are clean.\" compact /> : null}\n </div>\n </section>\n );\n}\n\nexport function AuraSettingsPanel({\n productName,\n telemetryEnabled,\n crashReportsEnabled,\n onTelemetryChange,\n onCrashReportsChange,\n}: {\n productName: string;\n telemetryEnabled: boolean;\n crashReportsEnabled: boolean;\n onTelemetryChange: (enabled: boolean) => void;\n onCrashReportsChange: (enabled: boolean) => void;\n}) {\n const { mode, setMode } = useContext(AuraThemeContext);\n\n return (\n <section className=\"aura-panel\" aria-label={`${productName} settings`}>\n <header className=\"aura-panel__header\">\n <Settings size={15} />\n <h2>Settings</h2>\n </header>\n <div className=\"aura-settings\">\n <label>\n <span>Theme</span>\n <select value={mode} onChange={(event) => setMode(event.currentTarget.value as AuraThemeMode)}>\n <option value=\"system\">Follow OS</option>\n <option value=\"dark\">Dark</option>\n <option value=\"light\">Light</option>\n <option value=\"high-contrast\">High contrast</option>\n </select>\n </label>\n <label>\n <span>Telemetry</span>\n <input type=\"checkbox\" checked={telemetryEnabled} onChange={(event) => onTelemetryChange(event.currentTarget.checked)} />\n </label>\n <label>\n <span>Crash reports</span>\n <input type=\"checkbox\" checked={crashReportsEnabled} onChange={(event) => onCrashReportsChange(event.currentTarget.checked)} />\n </label>\n </div>\n </section>\n );\n}\n\nexport type AuraWelcomePrivacyWizardProps = {\n productWorkNoun?: string;\n telemetryEnabled: boolean;\n crashReportsEnabled: boolean;\n onTelemetryChange: (enabled: boolean) => void;\n onCrashReportsChange: (enabled: boolean) => void;\n onComplete: () => void;\n};\n\nexport function AuraWelcomePrivacyWizard({\n productWorkNoun = \"rubrics, datasets, or agent traces\",\n telemetryEnabled,\n crashReportsEnabled,\n onTelemetryChange,\n onCrashReportsChange,\n onComplete,\n}: AuraWelcomePrivacyWizardProps) {\n return (\n <section className=\"aura-privacy-wizard\" aria-label=\"Welcome privacy choices\">\n <article>\n <h2>Help improve AuraOne Open Studio</h2>\n <p>If you opt in, the app will send us anonymous usage signals so we can prioritize what to build next. We will never send the contents of your work.</p>\n <strong>What we send</strong>\n <ul>\n <li>Anonymous install ID</li>\n <li>App version and OS</li>\n <li>High-level feature usage</li>\n <li>Error counts</li>\n <li>Session length</li>\n </ul>\n <strong>What we never send</strong>\n <ul>\n <li>Your {productWorkNoun}</li>\n <li>API keys</li>\n <li>File paths or hostnames</li>\n <li>Anything you typed into the editor</li>\n </ul>\n <label>\n <input type=\"checkbox\" checked={telemetryEnabled} onChange={(event) => onTelemetryChange(event.currentTarget.checked)} />\n <span>Help improve AuraOne Open Studio (opt in)</span>\n </label>\n <p>Don't send anything (default)</p>\n </article>\n <article>\n <h2>Help us fix what breaks</h2>\n <p>If something crashes, we'd love to know so we can fix it. We can send an anonymous crash report to AuraOne if you opt in.</p>\n <strong>What we send</strong>\n <ul>\n <li>The stack trace and minidump from the crash</li>\n <li>Your OS and app version</li>\n <li>An install-scoped random ID</li>\n </ul>\n <strong>What we never send</strong>\n <ul>\n <li>The contents of your {productWorkNoun}</li>\n <li>API keys</li>\n <li>File paths or hostnames</li>\n </ul>\n <label>\n <input type=\"checkbox\" checked={crashReportsEnabled} onChange={(event) => onCrashReportsChange(event.currentTarget.checked)} />\n <span>Send crash reports</span>\n </label>\n <p>Don't send anything</p>\n </article>\n <button type=\"button\" onClick={onComplete}>\n Continue\n </button>\n </section>\n );\n}\n\nexport type AuraUpdatePromptProps = {\n version: string;\n releaseNotes: string;\n signedBy: string;\n mandatory?: boolean;\n onInstallNow: () => void;\n onInstallOnRestart: () => void;\n onRemindLater: () => void;\n};\n\nexport function AuraUpdatePrompt({\n version,\n releaseNotes,\n signedBy,\n mandatory = false,\n onInstallNow,\n onInstallOnRestart,\n onRemindLater,\n}: AuraUpdatePromptProps) {\n return (\n <section className=\"aura-update-prompt\" aria-label=\"Software update\">\n <header>\n <CheckCircle2 size={18} />\n <div>\n <h2>Update available</h2>\n <p>Version {version}</p>\n </div>\n </header>\n <pre>{releaseNotes}</pre>\n <p title={`Signed by ${signedBy}`}>Signed by {signedBy}</p>\n <div>\n <button type=\"button\" onClick={onInstallOnRestart}>\n Install next launch\n </button>\n <button type=\"button\" onClick={onInstallNow}>\n Install now\n </button>\n <button type=\"button\" onClick={onRemindLater} disabled={mandatory}>\n Remind later\n </button>\n </div>\n </section>\n );\n}\n\nexport type AuraIntakeIdentityFieldsProps = {\n displayName: string;\n email?: string;\n intent: string;\n onDisplayNameChange: (value: string) => void;\n onEmailChange: (value: string) => void;\n onIntentChange: (value: string) => void;\n};\n\nexport function AuraIntakeIdentityFields({\n displayName,\n email = \"\",\n intent,\n onDisplayNameChange,\n onEmailChange,\n onIntentChange,\n}: AuraIntakeIdentityFieldsProps) {\n return (\n <section className=\"aura-intake-identity\" aria-label=\"Intake identity\">\n <label>\n <span>Display name</span>\n <input type=\"text\" value={displayName} required autoComplete=\"name\" onChange={(event) => onDisplayNameChange(event.currentTarget.value)} />\n </label>\n <label>\n <span>Email (optional)</span>\n <input type=\"email\" value={email} autoComplete=\"email\" onChange={(event) => onEmailChange(event.currentTarget.value)} />\n </label>\n <label>\n <span>Intent note</span>\n <textarea value={intent} required rows={4} onChange={(event) => onIntentChange(event.currentTarget.value)} />\n </label>\n </section>\n );\n}\n\nexport type AuraKeychainFallbackWarningProps = {\n backendKind: \"macos-keychain\" | \"windows-credential-manager\" | \"linux-secret-service\" | \"linux-encrypted-file-fallback\";\n firstSecretSet?: boolean;\n onDismiss?: () => void;\n};\n\nexport function AuraKeychainFallbackWarning({\n backendKind,\n firstSecretSet = false,\n onDismiss,\n}: AuraKeychainFallbackWarningProps) {\n if (backendKind !== \"linux-encrypted-file-fallback\" || !firstSecretSet) {\n return null;\n }\n\n return (\n <section className=\"aura-keychain-warning\" role=\"status\" aria-label=\"Linux keychain fallback warning\">\n <ShieldAlert size={18} />\n <div>\n <strong>Linux Secret Service is unavailable</strong>\n <p>\n AuraOne stored this secret in the encrypted local fallback store. Install or unlock a Secret Service provider to use the native Linux keychain.\n </p>\n </div>\n {onDismiss ? (\n <button type=\"button\" onClick={onDismiss}>\n Dismiss\n </button>\n ) : null}\n </section>\n );\n}\n\ntype Toast = { id: string; title: string; description?: string; tone?: \"info\" | \"success\" | \"warning\" | \"error\" };\ntype ToastContextValue = { push: (toast: Omit<Toast, \"id\">) => void; dismiss: (id: string) => void };\nconst ToastContext = createContext<ToastContextValue>({ push: () => undefined, dismiss: () => undefined });\n\nexport function AuraToastProvider({ children }: { children: ReactNode }) {\n const [toasts, setToasts] = useState<Toast[]>([]);\n const value = useMemo<ToastContextValue>(\n () => ({\n push(toast) {\n setToasts((current) => [...current, { ...toast, id: crypto.randomUUID() }]);\n },\n dismiss(id) {\n setToasts((current) => current.filter((toast) => toast.id !== id));\n },\n }),\n [],\n );\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n <div className=\"aura-toast-region\" aria-live=\"polite\" aria-label=\"Notifications\">\n {toasts.map((toast) => (\n <div key={toast.id} className={cx(\"aura-toast\", `aura-toast--${toast.tone ?? \"info\"}`)}>\n <Bell size={15} />\n <div>\n <strong>{toast.title}</strong>\n {toast.description ? <p>{toast.description}</p> : null}\n </div>\n <button type=\"button\" aria-label=\"Dismiss notification\" onClick={() => value.dismiss(toast.id)}>\n <X size={14} />\n </button>\n </div>\n ))}\n </div>\n </ToastContext.Provider>\n );\n}\n\nexport function useAuraToast(): ToastContextValue {\n return useContext(ToastContext);\n}\n\nexport function AuraModal({ open, title, children, onClose }: { open: boolean; title: string; children: ReactNode; onClose: () => void }) {\n if (!open) {\n return null;\n }\n return (\n <div className=\"aura-modal-backdrop\" role=\"presentation\" onMouseDown={onClose}>\n <section className=\"aura-modal\" role=\"dialog\" aria-modal=\"true\" aria-label={title} onMouseDown={(event) => event.stopPropagation()}>\n <header className=\"aura-modal__header\">\n <h2>{title}</h2>\n <button type=\"button\" aria-label=\"Close modal\" onClick={onClose}>\n <X size={16} />\n </button>\n </header>\n <div className=\"aura-modal__body\">{children}</div>\n </section>\n </div>\n );\n}\n\nexport function AuraEmptyState({ title, description, compact = false }: { title: string; description?: string; compact?: boolean }) {\n return (\n <div className={cx(\"aura-state\", compact && \"aura-state--compact\")}>\n <Code2 size={compact ? 18 : 28} />\n <strong>{title}</strong>\n {description ? <p>{description}</p> : null}\n </div>\n );\n}\n\nexport function AuraLoadingState({ label = \"Loading\" }: { label?: string }) {\n return (\n <div className=\"aura-state\" role=\"status\">\n <Loader2 className=\"aura-spin\" size={28} />\n <strong>{label}</strong>\n </div>\n );\n}\n\nexport function AuraErrorState({ title, description, onRetry }: { title: string; description?: string; onRetry?: () => void }) {\n return (\n <div className=\"aura-state aura-state--error\" role=\"alert\">\n <ShieldAlert size={28} />\n <strong>{title}</strong>\n {description ? <p>{description}</p> : null}\n {onRetry ? (\n <button type=\"button\" onClick={onRetry}>\n Retry\n </button>\n ) : null}\n </div>\n );\n}\n\nexport function AuraTelemetryEventLog({ events }: { events: AuraTelemetryEvent[] }) {\n return (\n <section className=\"aura-panel\" aria-label=\"Telemetry event log\">\n <header className=\"aura-panel__header\">\n <CheckCircle2 size={15} />\n <h2>Telemetry Event Log</h2>\n </header>\n <div className=\"aura-event-log\">\n {events.length ? (\n events.map((event) => (\n <article key={event.id} className=\"aura-event-log__row\">\n <div>\n <strong>{event.name}</strong>\n <time dateTime={event.timestamp}>{event.timestamp}</time>\n </div>\n <span>\n {event.deliveryStatus === \"local_preview\"\n ? \"local preview\"\n : event.deliveryStatus === \"would_send\"\n ? \"not sent\"\n : event.destination === \"local\"\n ? \"local only\"\n : \"delivery unverified\"}\n </span>\n <pre\n tabIndex={0}\n role=\"region\"\n aria-label={`${event.name} payload preview`}\n >\n {JSON.stringify(event.payloadPreview, null, 2)}\n </pre>\n </article>\n ))\n ) : (\n <AuraEmptyState\n compact\n title=\"No local events\"\n description=\"Eligible diagnostics appear here after they are recorded. This log does not confirm network delivery.\"\n />\n )}\n </div>\n </section>\n );\n}\n\nexport const AURA_INTAKE_PRIVACY_URL = \"https://auraone.ai/open/privacy/intake\";\nexport const AURA_INTAKE_PRIVACY_COPY = {\n sent: [\n \"A manifest describing the project metadata you entered.\",\n \"The payload files you reviewed in the preview screen above.\",\n \"A signature from your local install (used only for deduplication).\",\n ],\n neverSent: [\n \"Your API keys.\",\n \"File paths from your machine (replaced with <PROJECT>/... references).\",\n \"Hostnames or environment variables.\",\n \"Anything you did not see in the preview screen above.\",\n ],\n consent:\n \"If you cancel before clicking Send, nothing leaves your machine. If you click Send, the only thing that leaves your machine is the contents of the packet you just reviewed.\",\n};\n\nexport type AuraIntakePacketPreviewProps = {\n packet: AuraIntakePacketPreviewData;\n manifestTree?: Record<string, unknown>;\n consentChecked?: boolean;\n onConsentChange?: (checked: boolean) => void;\n privacyUrl?: string;\n};\n\nexport function AuraIntakePacketPreview({\n packet,\n manifestTree,\n consentChecked = false,\n onConsentChange,\n privacyUrl = AURA_INTAKE_PRIVACY_URL,\n}: AuraIntakePacketPreviewProps) {\n const totalBytes = packet.includedFiles.reduce((sum, file) => sum + file.bytes, 0);\n\n return (\n <section className=\"aura-panel\" aria-label=\"Intake packet preview\">\n <header className=\"aura-panel__header\">\n <FolderOpen size={15} />\n <h2>Intake Packet</h2>\n </header>\n <dl className=\"aura-packet-summary\">\n <div>\n <dt>Packet</dt>\n <dd>{packet.packetId}</dd>\n </div>\n <div>\n <dt>Flagship</dt>\n <dd>{packet.flagship}</dd>\n </div>\n <div>\n <dt>Schema</dt>\n <dd>{packet.schemaVersion}</dd>\n </div>\n <div>\n <dt>Files</dt>\n <dd>\n {packet.includedFiles.length} / {new Intl.NumberFormat(\"en\", { notation: \"compact\" }).format(totalBytes)}B\n </dd>\n </div>\n </dl>\n <div className=\"aura-packet-files\">\n {packet.includedFiles.map((file) => (\n <div key={file.path}>\n <code>{file.path}</code>\n <span>{file.role}</span>\n </div>\n ))}\n </div>\n <div className=\"aura-packet-exclusions\">\n <strong>Excluded</strong>\n {packet.excludedPatterns.map((pattern) => (\n <code key={pattern}>{pattern}</code>\n ))}\n </div>\n {packet.warnings.length ? (\n <div className=\"aura-packet-warnings\">\n {packet.warnings.map((warning) => (\n <p key={warning}>{warning}</p>\n ))}\n </div>\n ) : null}\n {manifestTree ? (\n <section className=\"aura-packet-manifest\" aria-label=\"Manifest tree\">\n <h3>Manifest Tree</h3>\n <pre>{JSON.stringify(manifestTree, null, 2)}</pre>\n </section>\n ) : null}\n {onConsentChange ? (\n <section className=\"aura-packet-privacy\" aria-label=\"Intake privacy review\">\n <h3>What is sent in an intake packet?</h3>\n <p>A single zip file containing:</p>\n <ul>\n {AURA_INTAKE_PRIVACY_COPY.sent.map((item) => (\n <li key={item}>{item}</li>\n ))}\n </ul>\n <h3>What is never sent in an intake packet?</h3>\n <ul>\n {AURA_INTAKE_PRIVACY_COPY.neverSent.map((item) => (\n <li key={item}>{item}</li>\n ))}\n </ul>\n <p>{AURA_INTAKE_PRIVACY_COPY.consent}</p>\n <a href={privacyUrl}>Read the intake privacy policy</a>\n <label className=\"aura-packet-consent\">\n <input type=\"checkbox\" required checked={consentChecked} onChange={(event) => onConsentChange(event.currentTarget.checked)} />\n <span>I reviewed this packet and consent to send only the contents shown above.</span>\n </label>\n </section>\n ) : null}\n </section>\n );\n}\n\nexport type AuraFileWatcherStatusProps = {\n state: \"connected\" | \"polling\" | \"disabled\";\n watchedPath?: string;\n eventsQueued?: number;\n};\n\nexport function AuraFileWatcherStatus({ state, watchedPath, eventsQueued = 0 }: AuraFileWatcherStatusProps) {\n const tone = state === \"connected\" ? \"success\" : state === \"polling\" ? \"warning\" : \"neutral\";\n return (\n <section className={cx(\"aura-file-watcher\", `aura-file-watcher--${tone}`)} aria-live=\"polite\" aria-label=\"File watcher status\">\n <div>\n <Bell size={15} />\n <strong>{state === \"connected\" ? \"Watching\" : state === \"polling\" ? \"Polling\" : \"Watcher disabled\"}</strong>\n </div>\n {watchedPath ? <code>{watchedPath}</code> : null}\n <span>{eventsQueued} queued</span>\n </section>\n );\n}\n\nexport type AuraWelcomeWindowProps = {\n productName: string;\n recentProjects: Array<{ name: string; path: string }>;\n onOpenFolder: () => void;\n onOpenRecent: (path: string) => void;\n};\n\nexport function AuraWelcomeWindow({ productName, recentProjects, onOpenFolder, onOpenRecent }: AuraWelcomeWindowProps) {\n return (\n <section className=\"aura-welcome\" aria-label={`${productName} welcome`}>\n <header>\n <Code2 size={22} />\n <div>\n <h1>{productName}</h1>\n <p>Local-first project workspace</p>\n </div>\n </header>\n <button type=\"button\" className=\"aura-welcome__primary\" onClick={onOpenFolder}>\n <FolderOpen size={16} />\n <span>Open Folder</span>\n </button>\n {recentProjects.length ? (\n <nav aria-label=\"Recent projects\">\n {recentProjects.map((project) => (\n <button key={project.path} type=\"button\" onClick={() => onOpenRecent(project.path)}>\n <Folder size={15} />\n <span>{project.name}</span>\n <code>{project.path}</code>\n </button>\n ))}\n </nav>\n ) : null}\n </section>\n );\n}\n\nexport function AuraPanel({ className, children, ...props }: HTMLAttributes<HTMLElement>) {\n return (\n <section className={cx(\"aura-panel\", className)} {...props}>\n {children}\n </section>\n );\n}\n\nexport function createDefaultIdeCommands(openFolder: () => void, openSettings: () => void): CommandRegistry {\n return createCommandRegistry([\n {\n id: \"project.open-folder\",\n title: \"Open Folder\",\n group: \"Project\",\n keybinding: \"Mod+O\",\n handler: openFolder,\n },\n {\n id: \"app.settings\",\n title: \"Open Settings\",\n group: \"Application\",\n keybinding: \"Mod+,\",\n handler: openSettings,\n },\n ]);\n}\n\nexport function isCommandPaletteKey(event: KeyboardEvent): boolean {\n return (event.metaKey || event.ctrlKey) && event.key.toLowerCase() === \"k\";\n}\n","import { createContext, useContext } from \"react\";\nimport type { AuraThemeMode } from \"./types\";\n\nexport type AuraThemeContextValue = {\n mode: AuraThemeMode;\n setMode: (mode: AuraThemeMode) => void;\n};\n\nexport const AuraThemeContext = createContext<AuraThemeContextValue>({\n mode: \"system\",\n setMode: () => undefined,\n});\n\nexport function useAuraTheme(): AuraThemeContextValue {\n return useContext(AuraThemeContext);\n}\n","export type AuraSsrPosture = \"ssr-safe\" | \"client-only\" | \"client-only-with-suspense\";\n\nexport type AuraComponentPosture = {\n component: string;\n posture: AuraSsrPosture;\n rationale: string;\n};\n\nexport const AURA_IDE_COMPONENT_POSTURE: AuraComponentPosture[] = [\n { component: \"AuraIdeAppFrame\", posture: \"client-only\", rationale: \"Registers keyboard listeners for the command palette.\" },\n { component: \"AuraSplitPane\", posture: \"client-only\", rationale: \"Uses pointer and keyboard resizing state.\" },\n { component: \"AuraProjectTree\", posture: \"client-only\", rationale: \"Owns expandable tree state.\" },\n { component: \"AuraMonaco\", posture: \"client-only-with-suspense\", rationale: \"Wraps Monaco editor, which is browser-only.\" },\n { component: \"AuraTimeline\", posture: \"ssr-safe\", rationale: \"Static list rendering when handlers are not attached.\" },\n { component: \"AuraInspector\", posture: \"ssr-safe\", rationale: \"Static panel rendering.\" },\n { component: \"AuraCommandPalette\", posture: \"client-only\", rationale: \"Interactive modal search and command execution.\" },\n { component: \"AuraStatusBar\", posture: \"ssr-safe\", rationale: \"Static status item rendering.\" },\n { component: \"AuraProblemsPanel\", posture: \"ssr-safe\", rationale: \"Static diagnostic list rendering.\" },\n { component: \"AuraSettingsPanel\", posture: \"client-only\", rationale: \"Interactive privacy toggles.\" },\n { component: \"AuraWelcomePrivacyWizard\", posture: \"client-only\", rationale: \"Interactive telemetry and crash opt-in choices.\" },\n { component: \"AuraUpdatePrompt\", posture: \"client-only\", rationale: \"Interactive install/remind update actions.\" },\n { component: \"AuraIntakeIdentityFields\", posture: \"client-only\", rationale: \"Controlled intake contact and intent form inputs.\" },\n { component: \"AuraKeychainFallbackWarning\", posture: \"client-only\", rationale: \"Dismissible first-use Linux keychain fallback warning.\" },\n { component: \"AuraToastProvider\", posture: \"client-only\", rationale: \"Owns transient notification state.\" },\n { component: \"AuraModal\", posture: \"client-only\", rationale: \"Interactive dialog state and dismissal.\" },\n { component: \"AuraEmptyState\", posture: \"ssr-safe\", rationale: \"Static empty-state rendering.\" },\n { component: \"AuraLoadingState\", posture: \"ssr-safe\", rationale: \"Static loading-state rendering.\" },\n { component: \"AuraErrorState\", posture: \"ssr-safe\", rationale: \"Static error-state rendering.\" },\n { component: \"AuraTelemetryEventLog\", posture: \"ssr-safe\", rationale: \"Static event-list rendering when data is supplied.\" },\n { component: \"AuraIntakePacketPreview\", posture: \"ssr-safe\", rationale: \"Static packet preview rendering.\" },\n { component: \"AuraFileWatcherStatus\", posture: \"ssr-safe\", rationale: \"Static watcher status rendering when data is supplied.\" },\n { component: \"AuraWelcomeWindow\", posture: \"client-only\", rationale: \"Interactive open-folder and recent-project actions.\" },\n { component: \"AuraTabbedShell\", posture: \"client-only\", rationale: \"Interactive tab selection.\" },\n];\n\nexport function postureFor(component: string): AuraComponentPosture | undefined {\n return AURA_IDE_COMPONENT_POSTURE.find((entry) => entry.component === component);\n}\n","export * from \"./types\";\nexport * from \"./command-registry\";\nexport * from \"./components\";\nexport * from \"./theme\";\nexport * from \"./ssr-posture\";\nexport {\n ProoflineButton,\n ProoflineProductGlyph,\n ProoflinePanel,\n ProoflineState,\n ProoflineStatus,\n AuraOneMark,\n installOfficialStyleSheet,\n prooflineProductIcons,\n prooflineStatusLabels,\n prooflineStatusTones,\n} from \"@auraone/proofline-oss\";\nexport type {\n AuraOneMarkProps,\n ProoflineProduct,\n ProoflineStatusTone,\n} from \"@auraone/proofline-oss\";\n"],"mappings":"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","names":["createContext","useContext","useContext","createContext"]}