@evandrix/claude-code-viewer 0.7.5-8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +289 -0
- package/dist/main.js +105320 -0
- package/dist/migrations/20260401113328_cute_stryfe/migration.sql +34 -0
- package/dist/migrations/20260401113328_cute_stryfe/snapshot.json +315 -0
- package/dist/migrations/20260403053302_nappy_night_thrasher/migration.sql +28 -0
- package/dist/migrations/20260403053302_nappy_night_thrasher/snapshot.json +318 -0
- package/dist/migrations/20260630164759_previous_mephisto/migration.sql +1 -0
- package/dist/migrations/20260630164759_previous_mephisto/snapshot.json +328 -0
- package/dist/static/.gitkeep +0 -0
- package/dist/static/apple-touch-icon.png +0 -0
- package/dist/static/assets/AuthProvider-CB0_NghB.js +22 -0
- package/dist/static/assets/ProtectedRoute-BbOvBhKk.js +1 -0
- package/dist/static/assets/card-D9aMzhGi.js +1 -0
- package/dist/static/assets/createLucideIcon-Dr4vJxG7.js +1 -0
- package/dist/static/assets/dist-BwsXhL7G.js +109 -0
- package/dist/static/assets/dist-DsKpSV8b.js +1 -0
- package/dist/static/assets/eye-93IqRP6X.js +1 -0
- package/dist/static/assets/index-CQL3ecGr.css +2 -0
- package/dist/static/assets/index-CYbyi5Wz.js +20 -0
- package/dist/static/assets/input-M1VOtQpS.js +1 -0
- package/dist/static/assets/label-CV_Y-Hm3.js +1 -0
- package/dist/static/assets/login-CSjM6yF4.js +1 -0
- package/dist/static/assets/markdown-parser-vendor-BdkS_k_8.js +29 -0
- package/dist/static/assets/messages-BugsdlC4.js +1 -0
- package/dist/static/assets/messages-C9GGR_pN.js +1 -0
- package/dist/static/assets/messages-CXGVSZXJ.js +1 -0
- package/dist/static/assets/projects-8k3terN9.js +1 -0
- package/dist/static/assets/refractor-vendor-BfdmH2uT.js +4 -0
- package/dist/static/assets/rolldown-runtime-S-ySWqyJ.js +1 -0
- package/dist/static/assets/routes-Bx-J7Awb.js +1 -0
- package/dist/static/assets/session-CtPZiuYb.js +1 -0
- package/dist/static/assets/session-XjI_EF5j.js +13 -0
- package/dist/static/assets/syntax-highlighter-vendor-BmNdBw1C.js +6 -0
- package/dist/static/assets/workbox-window.prod.es5-8x20nBgX.js +2 -0
- package/dist/static/assets/xterm-vendor-BrP-ENHg.css +1 -0
- package/dist/static/assets/xterm-vendor-D6WsVDeV.js +36 -0
- package/dist/static/favicon.ico +0 -0
- package/dist/static/icon-192x192.png +0 -0
- package/dist/static/icon-512x512.png +0 -0
- package/dist/static/icon-maskable-192x192.png +0 -0
- package/dist/static/icon-maskable-512x512.png +0 -0
- package/dist/static/index.html +28 -0
- package/dist/static/manifest.webmanifest +1 -0
- package/dist/static/sw.js +1 -0
- package/package.json +25 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=JSON.parse(`{"Available commands":["Available Commands"],"Available files and directories":["Available Files and Directories"],"Close sidebar":["Close Sidebar"],"Compare from":["Compare From"],"Compare to":["Compare To"],"Custom tool name...":["Custom tool name"],"Failed to commit":["Commit failed"],"Failed to commit and push":["Commit and push failed"],"Failed to push":["Push failed"],"Key":["Key name"],"Message input with completion support":["Message input with autocomplete support"],"New chat":["New Chat"],"Reload MCP servers":["Reload MCP Servers"],"Retry Push":["Retry push"],"Select enter key behavior":["Select Enter key behavior"],"Select find hotkey":["Select Find Hotkey"],"Select language":["Select Language"],"Select search hotkey":["Select Search Hotkey"],"Select theme":["Select Theme"],"Uncommitted changes":["Uncommitted Changes"],"Value":["Value field"],"assistant.thinking":["Thinking"],"assistant.tool.binary_file":["Binary file cannot be displayed"],"assistant.tool.error_loading_file":["Failed to load file"],"assistant.tool.error_loading_task":["Failed to load task"],"assistant.tool.file_not_found":["File not found"],"assistant.tool.file_truncated":["Truncated"],"assistant.tool.input_parameters":["Input Parameters"],"assistant.tool.invalid_path":["Invalid file path"],"assistant.tool.loading_file":["Loading file..."],"assistant.tool.loading_task":["Loading task..."],"assistant.tool.message_count":[["count"]," messages"],"assistant.tool.no_task_data":["No task data"],"assistant.tool.no_task_data_description":["No data is available for this task"],"assistant.tool.read_error":["Error reading file"],"assistant.tool.result":["Tool Result"],"assistant.tool.retry":["Retry"],"assistant.tool.task_id":["Task ID"],"assistant.tool.view_file":["View File"],"assistant.tool.view_task_details":["View Task Details"],"assistant.turn_duration":["Turn duration"],"chat.attach_file":["Attach"],"chat.button.start":["Start Chat"],"chat.copy_command.failed":["Failed to copy command"],"chat.copy_command.success":["Command copied to clipboard"],"chat.error.send_failed":["Failed to send message. Please try again."],"chat.history.button":["history"],"chat.history.title":["Recent sessions"],"chat.modal.title":["Start New Chat"],"chat.placeholder.continue.command_enter":["Type your message... (Start with / for commands, @ for files, Command+Enter to send)"],"chat.placeholder.continue.enter":["Type your message... (Start with / for commands, @ for files, Enter to send)"],"chat.placeholder.continue.shift_enter":["Type your message... (Start with / for commands, @ for files, Shift+Enter to send)"],"chat.placeholder.resume.command_enter":["Type your message... (Start with / for commands, @ for files, Command+Enter to send)"],"chat.placeholder.resume.enter":["Type your message... (Start with / for commands, @ for files, Enter to send)"],"chat.placeholder.resume.shift_enter":["Type your message... (Start with / for commands, @ for files, Shift+Enter to send)"],"chat.placeholder.running.command_enter":["Claude is running… type your next message and send when ready (Command+Enter to send)"],"chat.placeholder.running.enter":["Claude is running… type your next message and send when ready (Enter to send)"],"chat.placeholder.running.shift_enter":["Claude is running… type your next message and send when ready (Shift+Enter to send)"],"chat.resume":["Resume"],"chat.scheduled_send.failed":["Failed to schedule message"],"chat.scheduled_send.success":["Message scheduled successfully"],"chat.scheduled_send.success_description":["You can view and manage it in the Scheduler tab"],"chat.send":["Send"],"chat.send_mode.immediate":["Send Now"],"chat.send_mode.label":["Send Mode"],"chat.send_mode.scheduled":["Schedule Send"],"chat.send_mode.scheduled_time":["Scheduled Send Time"],"chat.toolbar.agent.none":["No Agent"],"chat.toolbar.agent.tooltip":["Select agent"],"chat.toolbar.effort.tooltip":["Select reasoning effort"],"chat.toolbar.model.tooltip":["Select model"],"chat.toolbar.permission_mode.accept_edits":["Accept Edits"],"chat.toolbar.permission_mode.bypass":["Bypass"],"chat.toolbar.permission_mode.default":["Default"],"chat.toolbar.permission_mode.plan":["Plan"],"chat.toolbar.permission_mode.tooltip":["Select permission mode"],"chat.toolbar.system_prompt.tooltip":["Include default Claude Code prompt"],"chat.voice_input":["Voice input"],"codeBlock.copy":["Copy code"],"codeBlock.copy.failed":["Failed to copy code"],"codeBlock.copy.success":["Code copied"],"common.action.cancel":["Cancel"],"common.cancel":["Cancel"],"common.create":["Create"],"common.delete":["Delete"],"common.deleting":["Deleting..."],"common.error":["Error"],"common.loading":["Loading..."],"common.reload":["Reload"],"common.saving":["Saving..."],"common.update":["Update"],"control.branch":["Branch"],"control.metadata":["Metadata"],"control.model":["Model"],"control.new":["New"],"control.new_chat":["New Chat"],"control.project_path":["Project Path"],"control.scroll_to_bottom":["Scroll to Bottom"],"control.scroll_to_top":["Scroll to Top"],"control.session_id":["Session ID"],"conversation.copy":["Copy message"],"conversation.copy.failed":["Failed to copy message"],"conversation.copy.success":["Message copied"],"conversation.error.raw_content":["Raw Data: "],"conversation.error.report_issue":["Report This Issue"],"conversation.error.schema":["Schema Error"],"conversation.error.schema_validation":["Schema Validation Error"],"conversation.error.schema_validation.description":["Failed to parse this conversation entry. This may be due to format changes or parsing issues."],"cron_builder.cron_expression":["Cron Expression"],"cron_builder.custom":["Custom"],"cron_builder.daily":["Daily"],"cron_builder.day_of_week":["Day of Week"],"cron_builder.expression":["Cron Expression"],"cron_builder.friday":["Friday"],"cron_builder.hour":["Hour (0-23)"],"cron_builder.hourly":["Hourly"],"cron_builder.minute":["Minute (0-59)"],"cron_builder.monday":["Monday"],"cron_builder.preview":["Preview"],"cron_builder.saturday":["Saturday"],"cron_builder.schedule_type":["Schedule Type"],"cron_builder.sunday":["Sunday"],"cron_builder.thursday":["Thursday"],"cron_builder.tuesday":["Tuesday"],"cron_builder.wednesday":["Wednesday"],"cron_builder.weekly":["Weekly"],"diff.commit":["Commit"],"diff.commit.changes":["Commit Changes"],"diff.commit.message":["Commit Message"],"diff.commit.push":["Commit & Push"],"diff.committing":["Committing..."],"diff.committing.pushing":["Committing & Pushing..."],"diff.deselect.all":["Deselect All"],"diff.enter.message":["Please enter a commit message"],"diff.files":["Files"],"diff.files.changed":["files changed"],"diff.loading":["Loading diff..."],"diff.push":["Push"],"diff.pushing":["Pushing..."],"diff.select.all":["Select All"],"diff.select.file":["Please select at least one file"],"directory_picker.current":["Current: "],"directory_picker.loading":["Loading..."],"directory_picker.no_directories":["No Directories Found"],"directory_picker.show_hidden":["Show Hidden Files"],"e.g., 1.00":["Example: 1.00"],"e.g., 10":["Example: 10"],"e.g., 10000":["Example: 10000"],"e.g., api.example.com, cdn.example.com":["Example: api.example.com, cdn.example.com"],"layout.bottom_panel.title":["Terminal"],"layout.toggle_bottom_panel":["Toggle bottom panel"],"layout.toggle_left_panel":["Toggle left panel"],"layout.toggle_right_panel":["Toggle right panel"],"mcp.error.load_failed":["Failed to load MCP servers: ",["error"]],"mcp.no.servers":["No MCP Servers Found"],"mcp.title":["MCP Servers"],"notfound.button.go_home":["Go Home"],"notfound.default.description":["The page you are looking for does not exist or has been moved."],"notfound.default.title":["Page Not Found"],"notfound.session.description":["The session you are looking for does not exist."],"notfound.session.title":["Session Not Found"],"notification.beep":["Beep"],"notification.chime":["Chime"],"notification.description":["Select sound to play when Claude Code task completes"],"notification.empty":["No new notifications"],"notification.none":["None"],"notification.permission_requested":["Permission Required"],"notification.ping":["Ping"],"notification.pop":["Pop"],"notification.push.denied":["Notifications blocked in browser settings"],"notification.push.enable":["Enable push notifications"],"notification.push.enabled":["Enabled"],"notification.push.label":["Push notifications"],"notification.question_asked":["Question from Claude"],"notification.session_completed":["Session completed"],"notification.session_paused":["Session paused"],"notification.test":["Test"],"notification.title":["Notifications"],"panel.browser.empty.description":["Enter a URL in the bar above or click a link in the conversation"],"panel.browser.empty.title":["No page loaded"],"panel.files.edited_section":["Edited files"],"panel.files.filter_tools":["Filter by tool"],"panel.files.loading_agents":["Loading agents..."],"panel.files.no_agents":["No agents yet"],"panel.files.no_edited_files":["No edited files yet"],"panel.files.no_filtered_tool_calls":["No tool calls match the selected filters"],"panel.files.no_tool_calls":["No tool calls yet"],"panel.files.tool_calls_section":["Tool calls"],"panel.git.empty":["No Git changes"],"panel.git.pr_links":["Pull Requests"],"panel.git.view_content":["Content"],"panel.git.view_diff":["Diff"],"panel.review.empty":["No items to review"],"panel.tab.browser":["Browser"],"panel.tab.explorer":["Explorer"],"panel.tab.git":["Git"],"panel.tab.review":["Review"],"panel.todo.collapsed_title":["Todo"],"project.new":["New Project"],"project.setup.action.setting_up":["Setting up..."],"project.setup.action.setup":["Set Up Project"],"project.setup.description":["Navigate to the directory to set up as a Claude Code project. If CLAUDE.md exists, it describes the project; otherwise initialize with <0>/init</0>."],"project.setup.title":["Set Up New Project"],"project_list.last_modified":["Last Modified: "],"project_list.messages":["Messages: "],"project_list.no_projects.description":["No Claude Code projects found in your ~/.claude/projects directory. Start a conversation with Claude Code to set up your first project."],"project_list.no_projects.title":["No Projects Found"],"project_list.view_conversations":["View Conversations"],"project_switcher.no_project":["No project selected"],"project_switcher.no_results":["No matching projects"],"projects.page.description":["View Claude Code conversation history and project operations"],"projects.page.loading":["Loading projects..."],"projects.page.title":["Projects"],"review.action.insert":["Insert Review"],"review.action.insert.success":["Review inserted into chat input"],"review.action.reset":["Reset"],"review.action.reset.success":["All comments cleared"],"review.comment.placeholder":["Add a comment..."],"review.comment.save":["Save"],"review.comments.count":[["count"]," comments"],"review.comments.empty":["No comments"],"scheduler.create_job":["Create Job"],"scheduler.delete_dialog.description":["Are you sure you want to delete this scheduler job? This action cannot be undone."],"scheduler.delete_dialog.title":["Delete Scheduler Job"],"scheduler.dialog.description":["Configure a scheduled job to send messages to Claude Code"],"scheduler.dialog.title.create":["Create Scheduled Job"],"scheduler.dialog.title.edit":["Edit Scheduled Job"],"scheduler.error.load_failed":["Failed to load scheduler jobs: ",["error"]],"scheduler.form.concurrency_policy":["Concurrency Policy"],"scheduler.form.concurrency_policy.run":["Run even if already running"],"scheduler.form.concurrency_policy.skip":["Skip if already running"],"scheduler.form.enabled":["Enable"],"scheduler.form.enabled.description":["Enable or disable this scheduled job"],"scheduler.form.message":["Message Content"],"scheduler.form.message.aria_label":["Message input with completion support (/ for commands, @ for files)"],"scheduler.form.message.hint":["/ for command completion, @ for file completion"],"scheduler.form.message.placeholder":["Type message to send to Claude Code... (/ for commands, @ for files)"],"scheduler.form.name":["Job Name"],"scheduler.form.reserved_time":["Scheduled Execution Time"],"scheduler.form.reserved_time.hint":["Will be executed once at the specified date and time, then automatically deleted"],"scheduler.form.schedule_type":["Schedule Type"],"scheduler.form.schedule_type.cron":["Recurring (Cron)"],"scheduler.form.schedule_type.reserved":["One-time Execution"],"scheduler.job.create_failed":["Failed to create job"],"scheduler.job.created":["Job created successfully"],"scheduler.job.delete_failed":["Failed to delete job"],"scheduler.job.deleted":["Job deleted successfully"],"scheduler.job.update_failed":["Failed to update job"],"scheduler.job.updated":["Job updated successfully"],"scheduler.last_run":["Last Run"],"scheduler.no_jobs":["No scheduler jobs"],"scheduler.status.disabled":["Disabled"],"scheduler.status.enabled":["Enabled"],"scheduler.title":["Scheduler"],"session.conversation.abort":["Abort"],"session.cost.cache_creation":["Cache creation"],"session.cost.cache_read":["Cache read"],"session.cost.input_tokens":["Input tokens"],"session.cost.label":["Session Cost"],"session.cost.output_tokens":["Output tokens"],"session.cost.total":["Total"],"session.delete.failed":["Failed to delete session"],"session.delete.success":["Session deleted successfully"],"session.delete_dialog.description":["Are you sure you want to delete the session \\"",["title"],"\\"? This action cannot be undone."],"session.delete_dialog.title":["Delete Session"],"session.empty_state.description":["Start a new chat to begin the conversation"],"session.menu.copy_session_path":["Copy session file path"],"session.menu.export_html":["Export to HTML"],"session.menu.export_jsonl":["Export to JSONL"],"session.processing":["Claude Code is processing..."],"session.scheduled_messages.disabled":["Disabled"],"session.scheduled_messages.message_label":["Message"],"session.scheduled_messages.title":["Scheduled Messages"],"session.status.paused":["Paused"],"session.status.running":["Running"],"sessions.load.more":["Load More"],"sessions.title":["Sessions"],"sessions.total":["Total"],"settings.advanced":["Advanced Settings"],"settings.description":["Display and behavior settings"],"settings.disallowedTools.label":["Disabled tools"],"settings.env.add":["Add environment variable"],"settings.env.label":["Environment Variables"],"settings.input.enter_key_behavior":["Enter Key Behavior"],"settings.input.enter_key_behavior.command_enter":["Send with Command+Enter"],"settings.input.enter_key_behavior.description":["Select Enter key behavior for message input"],"settings.input.enter_key_behavior.enter":["Send with Enter"],"settings.input.enter_key_behavior.shift_enter":["Send with Shift+Enter (Default)"],"settings.input.find_hotkey":["Find Hotkey"],"settings.input.find_hotkey.command_f":["Command+F"],"settings.input.find_hotkey.ctrl_f":["Ctrl+F"],"settings.input.find_hotkey.description":["Select the hotkey to open in-page find"],"settings.input.search_hotkey":["Search Hotkey"],"settings.input.search_hotkey.command_k":["Command+K"],"settings.input.search_hotkey.ctrl_k":["Ctrl+K"],"settings.input.search_hotkey.description":["Select the hotkey to open search dialog"],"settings.loading":["Loading settings..."],"settings.locale":["Language"],"settings.locale.description":["Select your preferred language"],"settings.locale.en":["English"],"settings.locale.ja":["Japanese"],"settings.locale.zh_CN":["Chinese (Simplified)"],"settings.maxBudgetUsd.label":["Max Budget (USD)"],"settings.maxThinkingTokens.label":["Max Thinking Tokens"],"settings.maxTurns.label":["Max Turns"],"settings.model_choices.description":["Configure the model options available in the session toolbar"],"settings.model_choices.label":["Model Choices"],"settings.model_choices.placeholder":["Add model choice..."],"settings.notifications":["Notifications"],"settings.sandbox.allowUnsandboxedCommands":["Allow unsandboxed commands"],"settings.sandbox.autoAllowBash":["Auto-allow Bash if sandboxed"],"settings.sandbox.label":["Sandbox"],"settings.sandbox.network.allowLocalBinding":["Allow local binding"],"settings.sandbox.network.allowedDomains":["Allowed Domains (comma-separated)"],"settings.sandbox.network.label":["Network Settings"],"settings.section.notifications":["Notifications"],"settings.section.session_display":["Session Display"],"settings.section.system_info":["System Information"],"settings.session.auto_schedule_continue_on_rate_limit":["Auto-schedule Continue on Rate Limit"],"settings.session.auto_schedule_continue_on_rate_limit.description":["Automatically schedule a continue message when Claude hits rate limits"],"settings.session.display":["Session Display"],"settings.session.hide_no_user_message":["Hide Sessions Without User Messages"],"settings.session.hide_no_user_message.description":["Show only sessions that contain user commands or messages"],"settings.session.unify_same_title":["Unify Sessions with Same Title"],"settings.session.unify_same_title.description":["When multiple sessions have the same title, show only the latest session"],"settings.settingSources.label":["Setting Sources"],"settings.systemPrompt.includeDefault":["Include Claude Code system prompt"],"settings.tab.title":["Display and Notification Settings"],"settings.theme":["Theme"],"settings.theme.dark":["Dark"],"settings.theme.description":["Select your preferred color theme"],"settings.theme.light":["Light"],"settings.theme.system":["System"],"settings.title":["Settings"],"settings.usage_mode":["Usage Mode"],"settings.usage_mode.api":["API"],"settings.usage_mode.description":["Select how you use Claude Code. Subscription mode restricts features that require the Agent SDK."],"settings.usage_mode.select":["Select usage mode"],"settings.usage_mode.subscription":["Subscription (Max, Pro, etc.)"],"sidebar.back.to.projects":["Back to Projects"],"sidebar.edited_files.count":[["count"]," files"],"sidebar.edited_files.empty":["No edited files"],"sidebar.edited_files.external":["External"],"sidebar.edited_files.internal":["In Project"],"sidebar.edited_files.title":["Edited Files"],"sidebar.show.mcp.settings":["Show MCP Server Settings"],"sidebar.show.scheduler.jobs":["Show Scheduler Jobs"],"sidebar.show.session.list":["Show Session List"],"sidebar.show.task.list":["Show task list"],"sidebar.tab.mcp":["MCP"],"sidebar.tab.projects":["Projects"],"sidebar.tab.scheduler":["Scheduler"],"sidebar.tab.sessions":["Sessions"],"sidebar.tab.settings":["Settings"],"sidebar.tab.system_info":["System Info"],"sidebar.tab.tasks":["Tasks"],"system_info.available_features":["Available Features"],"system_info.claude_code":["Claude Code"],"system_info.description":["Version and feature information"],"system_info.executable_path":["Executable Path"],"system_info.feature.agent_sdk.description":["Uses @anthropic-ai/claude-agent-sdk instead of @anthropic-ai/claude-code"],"system_info.feature.agent_sdk.title":["Extended Agent Mode"],"system_info.feature.run_skills_directly.description":["Enables direct skill execution functionality"],"system_info.feature.run_skills_directly.title":["Direct Skills Execution"],"system_info.feature.sidechain_separation.description":["Sidechain conversations are stored separately in agent-*.jsonl files"],"system_info.feature.sidechain_separation.title":["Sidechain Separation"],"system_info.feature.tool_approval.description":["Approve or reject tool executions before Claude runs them, giving you full control over actions"],"system_info.feature.tool_approval.title":["Tool Approval"],"system_info.feature.unknown.description":["Feature information unavailable"],"system_info.feature.uuid_on_sdk_message.description":["SDK messages include UUIDs for tracking"],"system_info.feature.uuid_on_sdk_message.title":["SDK Message UUID"],"system_info.title":["System Information"],"system_info.unknown":["Unknown"],"system_info.version_label":["Version"],"system_info.viewer_version":["Claude Code Viewer"],"usage_mode.api.description":["You use Claude Code with API keys. All features are available."],"usage_mode.api.label":["API"],"usage_mode.dialog.description":["Please select your usage mode. You can change this later in settings."],"usage_mode.dialog.title":["How do you use Claude Code?"],"usage_mode.subscription.description":["You use Claude Code with a subscription plan (Max, Pro, etc.). Some features that require the Agent SDK will be restricted."],"usage_mode.subscription.label":["Subscription"],"user.content.document.pdf":["PDF Document"],"user.content.document.text":["Text Document"],"user.content.image":["Attached Image"],"user.content.unsupported_document":["Unsupported Document"],"user.content.unsupported_document.description":["Document type not supported for display"],"user.content.unsupported_media":["Unsupported Media"],"user.content.unsupported_media.description":["Media format not supported for display"]}`);export{e as messages};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-S-ySWqyJ.js";import{d as t,f as n}from"./markdown-parser-vendor-BdkS_k_8.js";import{E as r,F as i,P as a,at as o,b as s,c,it as l}from"./AuthProvider-CB0_NghB.js";import{J as u,K as d,N as f,P as p,X as m,c as h,d as g,f as _,i as v,l as y,n as b,o as x,s as S,u as C}from"./dist-BwsXhL7G.js";import{n as w}from"./dist-DsKpSV8b.js";import{C as T,O as E,T as D,n as O,o as k,s as A,t as j,w as M}from"./ProtectedRoute-BbOvBhKk.js";import{a as N,i as P,n as F,o as I,r as L,t as R}from"./card-D9aMzhGi.js";import{t as z}from"./label-CV_Y-Hm3.js";var B=e(n(),1),V=()=>i({queryKey:s.queryKey,queryFn:s.queryFn}),H=t(),U=()=>{let{data:{projects:e}}=V(),{config:t}=p();return e.length,(0,H.jsx)(`div`,{className:`grid gap-4 md:grid-cols-2 lg:grid-cols-3`,children:e.map(e=>(0,H.jsxs)(R,{className:`hover:shadow-md transition-shadow`,children:[(0,H.jsxs)(P,{children:[(0,H.jsxs)(N,{className:`flex items-center gap-2 justify-start items-start`,children:[(0,H.jsx)(D,{className:`w-5 h-5 flex-shrink-0`}),(0,H.jsx)(`span`,{className:`text-wrap flex-1`,children:e.meta.projectName??e.claudeProjectPath})]}),e.meta.projectPath!==void 0&&e.meta.projectPath!==``?(0,H.jsx)(L,{children:e.meta.projectPath}):null]}),(0,H.jsxs)(F,{className:`space-y-2`,children:[(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[(0,H.jsx)(w,{id:`project_list.last_modified`}),` `,e.lastModifiedAt?f(e.lastModifiedAt,{locale:t.locale,target:`time`}):``]}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[(0,H.jsx)(w,{id:`project_list.messages`}),` `,e.meta.sessionCount]})]}),(0,H.jsx)(F,{className:`pt-0`,children:(0,H.jsx)(I,{asChild:!0,className:`w-full`,children:(0,H.jsx)(m,{to:`/projects/$projectId/session`,params:{projectId:e.id},children:(0,H.jsx)(w,{id:`project_list.view_conversations`})})})})]},e.id))})},W=({onPathChange:e})=>{let[t,n]=(0,B.useState)(void 0),[r,i]=(0,B.useState)(!1),{data:a,isLoading:o}=d(c(t,r));(0,B.useEffect)(()=>{a?.currentPath!==void 0&&a.currentPath!==``&&e(a.currentPath)},[a?.currentPath,e]);let s=e=>{if(e===``){n(void 0);return}n(`/${e}`)};return(0,H.jsxs)(`div`,{className:`border rounded-md`,children:[(0,H.jsx)(`div`,{className:`p-3 border-b bg-muted/50`,children:(0,H.jsxs)(`p`,{className:`text-sm font-medium`,children:[(0,H.jsx)(w,{id:`directory_picker.current`}),` `,(0,H.jsx)(`span`,{className:`font-mono`,children:a?.currentPath??`~`})]})}),(0,H.jsxs)(`div`,{className:`p-3 border-b flex items-center gap-2`,children:[(0,H.jsx)(k,{id:`show-hidden`,checked:r,onCheckedChange:e=>i(e===!0)}),(0,H.jsx)(z,{htmlFor:`show-hidden`,className:`text-sm cursor-pointer`,children:(0,H.jsx)(w,{id:`directory_picker.show_hidden`})})]}),(0,H.jsx)(`div`,{className:`max-h-96 overflow-auto`,children:o?(0,H.jsx)(`div`,{className:`p-8 text-center text-sm text-muted-foreground`,children:(0,H.jsx)(w,{id:`directory_picker.loading`})}):a?.entries&&a.entries.length>0?(0,H.jsx)(`div`,{className:`divide-y`,children:a.entries.filter(e=>e.type===`directory`).filter(e=>r||e.name===`..`||!e.name.startsWith(`.`)).map(e=>(0,H.jsxs)(`button`,{type:`button`,onClick:()=>s(e.path),className:`w-full px-3 py-2 flex items-center gap-2 hover:bg-muted/50 transition-colors text-left`,children:[e.name===`..`?(0,H.jsx)(E,{className:`w-4 h-4 rotate-180`}):(0,H.jsx)(D,{className:`w-4 h-4 text-blue-500`}),(0,H.jsx)(`span`,{className:`text-sm`,children:e.name})]},e.path))}):(0,H.jsx)(`div`,{className:`p-8 text-center text-sm text-muted-foreground`,children:(0,H.jsx)(w,{id:`directory_picker.no_directories`})})})]})},G=()=>{let[e,t]=(0,B.useState)(!1),[n,i]=(0,B.useState)(``),s=o(),c=a({mutationFn:async()=>{let e=await r.api.projects.$post({json:{projectPath:n}});if(!e.ok)throw Error(`Failed to set up project`);return await e.json()},onSuccess:e=>{b.success(`Project set up successfully`),t(!1),s({to:`/projects/$projectId/session`,params:{projectId:e.projectId},search:{sessionId:e.sessionId}})},onError:e=>{b.error(e instanceof Error?e.message:`Failed to set up project`)}});return(0,H.jsxs)(x,{open:e,onOpenChange:t,children:[(0,H.jsx)(_,{asChild:!0,children:(0,H.jsxs)(I,{"data-testid":`new-project-button`,children:[(0,H.jsx)(T,{className:`w-4 h-4 mr-2`}),(0,H.jsx)(w,{id:`project.new`})]})}),(0,H.jsxs)(S,{className:`max-w-2xl`,"data-testid":`new-project-modal`,children:[(0,H.jsxs)(C,{children:[(0,H.jsx)(g,{children:(0,H.jsx)(w,{id:`project.setup.title`})}),(0,H.jsx)(h,{children:(0,H.jsx)(w,{id:`project.setup.description`,components:{0:(0,H.jsx)(`code`,{className:`text-sm bg-muted px-1 py-0.5 rounded`})}})})]}),(0,H.jsx)(`div`,{className:`py-4`,children:(0,H.jsx)(W,{onPathChange:i})}),(0,H.jsxs)(y,{children:[(0,H.jsx)(I,{variant:`outline`,onClick:()=>t(!1),children:(0,H.jsx)(w,{id:`common.action.cancel`})}),(0,H.jsx)(I,{onClick:()=>{c.mutateAsync()},disabled:n===``||c.isPending,children:c.isPending?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(l,{className:`w-4 h-4 mr-2 animate-spin`}),(0,H.jsx)(w,{id:`project.setup.action.setting_up`})]}):(0,H.jsx)(w,{id:`project.setup.action.setup`})})]})]})]})},K=()=>{let{openSearch:e}=v(),[t,n]=(0,B.useState)(!1);return(0,H.jsxs)(`div`,{className:`flex flex-col h-screen max-h-screen overflow-hidden`,children:[(0,H.jsxs)(`header`,{className:`h-(--spacing-header-height) flex items-center justify-between px-3 bg-muted/30 border-b border-border/40 text-xs flex-shrink-0 select-none`,children:[(0,H.jsx)(`span`,{className:`text-sm font-semibold text-foreground`,children:`claude-code-viewer`}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,H.jsx)(`button`,{type:`button`,onClick:()=>n(!0),className:`w-11 h-11 md:w-7 md:h-7 flex items-center justify-center rounded transition-colors hover:bg-muted text-muted-foreground hover:text-foreground`,"aria-label":`System Info`,children:(0,H.jsx)(M,{className:`w-3.5 h-3.5`})}),(0,H.jsx)(`button`,{type:`button`,onClick:e,className:`w-11 h-11 md:w-7 md:h-7 flex items-center justify-center rounded transition-colors hover:bg-muted text-muted-foreground hover:text-foreground`,"aria-label":`Search`,children:(0,H.jsx)(u,{className:`w-3.5 h-3.5`})}),(0,H.jsx)(A,{})]})]}),(0,H.jsx)(x,{open:t,onOpenChange:n,children:(0,H.jsxs)(S,{className:`max-w-md h-[70vh] overflow-hidden p-0`,children:[(0,H.jsx)(g,{className:`sr-only`,children:`System Info`}),(0,H.jsx)(B.Suspense,{fallback:(0,H.jsx)(`div`,{className:`p-8 text-center text-muted-foreground`,children:`Loading...`}),children:(0,H.jsx)(O,{})})]})}),(0,H.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,H.jsxs)(`div`,{className:`container mx-auto px-4 py-8`,children:[(0,H.jsx)(`header`,{className:`mb-8`,children:(0,H.jsx)(`p`,{className:`text-muted-foreground`,children:(0,H.jsx)(w,{id:`projects.page.description`})})}),(0,H.jsx)(`main`,{children:(0,H.jsxs)(`section`,{children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,H.jsx)(`h2`,{className:`text-xl font-semibold`,children:(0,H.jsx)(w,{id:`projects.page.title`})}),(0,H.jsx)(G,{})]}),(0,H.jsx)(B.Suspense,{fallback:(0,H.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,H.jsx)(`div`,{className:`text-muted-foreground`,children:(0,H.jsx)(w,{id:`projects.page.loading`})})}),children:(0,H.jsx)(U,{})})]})})]})})]})},q=()=>(0,H.jsx)(j,{children:(0,H.jsx)(K,{})});export{q as component};
|