tarsk 0.5.40 → 0.5.41

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 (46) hide show
  1. package/dist/index.js +224 -15
  2. package/dist/public/assets/{account-view-BT90zNSx.js → account-view-D-dJ0y-D.js} +1 -1
  3. package/dist/public/assets/{api-DWU0D34A.js → api-DJaJqkc6.js} +1 -1
  4. package/dist/public/assets/{browser-tab-Bp486a9f.js → browser-tab-D7wEj-BD.js} +1 -1
  5. package/dist/public/assets/{commit-dialog-90PGbqs8.js → commit-dialog-DdhGDH4F.js} +1 -1
  6. package/dist/public/assets/{context-menu-C7FTMa2c.js → context-menu-asf2g-KX.js} +1 -1
  7. package/dist/public/assets/{create-repo-dialog-BkUdww3q.js → create-repo-dialog-Bltp6PKZ.js} +1 -1
  8. package/dist/public/assets/{dialogs-config-DZKtVbNK.js → dialogs-config-B-LZ4nOb.js} +1 -1
  9. package/dist/public/assets/{diff-view-B4G8vqZa.js → diff-view-Bi545EPj.js} +1 -1
  10. package/dist/public/assets/{explorer-tab-view-DEQFid8r.js → explorer-tab-view-B-P555GE.js} +2 -2
  11. package/dist/public/assets/{explorer-tree-CPHGgahA.js → explorer-tree-CyXhVrI7.js} +1 -1
  12. package/dist/public/assets/{explorer-view-BTvhSMDQ.js → explorer-view-BAHDhIGN.js} +1 -1
  13. package/dist/public/assets/{git-history-dialog-Bqv0bD41.js → git-history-dialog-Bci_iQmi.js} +1 -1
  14. package/dist/public/assets/{git-ops-button-BnVMlOO3.js → git-ops-button-1lum9QXI.js} +2 -2
  15. package/dist/public/assets/{history-view-jX3PPID6.js → history-view-CAkN8PCo.js} +1 -1
  16. package/dist/public/assets/index-BLO68CQl.js +69 -0
  17. package/dist/public/assets/{mcp-server-card-CTCrhFIS.js → mcp-server-card-DQUpkDFV.js} +1 -1
  18. package/dist/public/assets/{merged-pr-dialog-B2qqrQ1g.js → merged-pr-dialog-tHPrJ2CK.js} +1 -1
  19. package/dist/public/assets/{onboarding-CxtzQldG.js → onboarding-Bbvb7kO4.js} +1 -1
  20. package/dist/public/assets/{project-settings-view-ZJjQbFbQ.js → project-settings-view-BRkHOq_q.js} +1 -1
  21. package/dist/public/assets/{providers-list-view-BH13AB_H.js → providers-list-view-Dex879vv.js} +1 -1
  22. package/dist/public/assets/{pull-request-dialog-ZzVXh6M9.js → pull-request-dialog-WHdmrW83.js} +1 -1
  23. package/dist/public/assets/{pull-with-changes-dialog-LUgd2a4S.js → pull-with-changes-dialog-Ck3OwINV.js} +1 -1
  24. package/dist/public/assets/{push-before-pr-dialog-CFmgu9H_.js → push-before-pr-dialog-Bvqvz04U.js} +1 -1
  25. package/dist/public/assets/{radio-group-Bd8YbtFD.js → radio-group-B0xvu5B9.js} +1 -1
  26. package/dist/public/assets/{react-vendor-Ba8DSNiO.js → react-vendor-D8PTA4EX.js} +1 -1
  27. package/dist/public/assets/{settings-general-view-C8muiP_K.js → settings-general-view-lUxshNA9.js} +1 -1
  28. package/dist/public/assets/{settings-instructions-view-CV7lRPuw.js → settings-instructions-view-C57XGLha.js} +1 -1
  29. package/dist/public/assets/{settings-list-CKPEGohm.js → settings-list-CHGKmGl_.js} +1 -1
  30. package/dist/public/assets/{settings-mcp-servers-view-3gN9ly3z.js → settings-mcp-servers-view-DpqkhrgB.js} +1 -1
  31. package/dist/public/assets/{settings-models-skeleton-l966LEN8.js → settings-models-skeleton-ClrbJy_p.js} +1 -1
  32. package/dist/public/assets/{settings-models-view-CAMouMhE.js → settings-models-view-QPEdnibD.js} +1 -1
  33. package/dist/public/assets/{settings-rules-view-BnazfbJb.js → settings-rules-view-WJU--cRq.js} +1 -1
  34. package/dist/public/assets/{settings-skills-view-DpzKFcpf.js → settings-skills-view-mgHy4G_g.js} +1 -1
  35. package/dist/public/assets/{settings-slash-commands-view-Drje2Dl4.js → settings-slash-commands-view-LB5tVqy1.js} +1 -1
  36. package/dist/public/assets/{settings-subagents-view-D05kHO1W.js → settings-subagents-view-QR2qlA_y.js} +1 -1
  37. package/dist/public/assets/{settings-system-prompt-view-DQmSdSnp.js → settings-system-prompt-view-Dl66VFaj.js} +1 -1
  38. package/dist/public/assets/{settings-view-B6e0GfSv.js → settings-view-BlVJv4Pz.js} +2 -2
  39. package/dist/public/assets/{skeleton-qzmFgKhS.js → skeleton-K-fVduHt.js} +1 -1
  40. package/dist/public/assets/{terminal-panel-BzCO142Q.js → terminal-panel-BGQxckfH.js} +1 -1
  41. package/dist/public/assets/{ui-components-f8jJJzEo.js → ui-components-C4RrfJEJ.js} +1 -1
  42. package/dist/public/assets/{utils-BlXPFbY9.js → utils-B7FQXlI6.js} +1 -1
  43. package/dist/public/index.html +6 -6
  44. package/dist/recommended-models.txt +1 -1
  45. package/package.json +1 -1
  46. package/dist/public/assets/index-DjD2SPNZ.js +0 -65
package/dist/index.js CHANGED
@@ -1224,6 +1224,15 @@ function buildDefaultSystemPrompt(toolNames) {
1224
1224
  const toolList = toolNames.length > 0 ? toolNames.join(", ") : "read, bash, edit, and write";
1225
1225
  return `You are a helpful coding assistant. You have access to ${toolList} tools. Use them to explore and modify the codebase as needed. Skills are created and stored in .agents/skills/ . Use Mermaid for flowcharts, sequence diagrams, state diagrams, or graphs when appropriate. Do not use emojis.`;
1226
1226
  }
1227
+ function formatCurrentDateLine(referenceDate = /* @__PURE__ */ new Date()) {
1228
+ const date = referenceDate.toLocaleDateString("en-US", {
1229
+ weekday: "long",
1230
+ year: "numeric",
1231
+ month: "long",
1232
+ day: "numeric"
1233
+ });
1234
+ return `The current date is ${date}.`;
1235
+ }
1227
1236
 
1228
1237
  // ../shared/dist/image-payload.js
1229
1238
  function isDataImageUrl(value) {
@@ -1506,6 +1515,11 @@ var toolDisplayRegistry = [
1506
1515
  { name: "simple_grep", displayName: "Search", activeDisplayName: "Searching" },
1507
1516
  { name: "todo", displayName: "Todo", activeDisplayName: "Updating" },
1508
1517
  { name: "tool_search", displayName: "Find Tools", activeDisplayName: "Finding Tools" },
1518
+ {
1519
+ name: "web_search",
1520
+ displayName: "Web Search",
1521
+ activeDisplayName: "Searching Web"
1522
+ },
1509
1523
  { name: "write", displayName: "Write", activeDisplayName: "Writing" }
1510
1524
  ];
1511
1525
  var displayByName = new Map(toolDisplayRegistry.map((entry) => [entry.name, entry]));
@@ -8462,14 +8476,188 @@ function createFetchTool(options) {
8462
8476
  };
8463
8477
  }
8464
8478
 
8465
- // src/tools/tool-search.ts
8479
+ // src/tools/web-search.ts
8466
8480
  import { Type as Type18 } from "@sinclair/typebox";
8467
- var toolSearchSchema = Type18.Object({
8481
+
8482
+ // src/features/web-search/web-search.client.ts
8483
+ var WEB_SEARCH_API = "https://api.webnative.dev/websearch";
8484
+ function clampNumResults(numResults) {
8485
+ if (numResults === void 0) return 10;
8486
+ return Math.min(100, Math.max(1, Math.round(numResults)));
8487
+ }
8488
+ function normalizeResultItem(raw) {
8489
+ const highlights = Array.isArray(raw.highlights) ? raw.highlights.filter((item) => typeof item === "string") : void 0;
8490
+ return {
8491
+ title: typeof raw.title === "string" ? raw.title : "Untitled",
8492
+ url: typeof raw.url === "string" ? raw.url : typeof raw.id === "string" ? raw.id : "",
8493
+ publishedDate: typeof raw.publishedDate === "string" || raw.publishedDate === null ? raw.publishedDate : void 0,
8494
+ author: typeof raw.author === "string" || raw.author === null ? raw.author : void 0,
8495
+ highlights
8496
+ };
8497
+ }
8498
+ function parseSearchErrorMessage(status, body) {
8499
+ try {
8500
+ const parsed = JSON.parse(body);
8501
+ const message = typeof parsed.error === "string" && parsed.error || typeof parsed.message === "string" && parsed.message;
8502
+ if (message) return `Web search failed (${status}): ${message}`;
8503
+ } catch {
8504
+ }
8505
+ return `Web search failed (${status}): ${body || "Unknown error"}`;
8506
+ }
8507
+ async function searchWeb(options) {
8508
+ const payload = {
8509
+ query: options.query,
8510
+ type: options.type ?? "auto",
8511
+ numResults: clampNumResults(options.numResults),
8512
+ contents: {
8513
+ highlights: true
8514
+ }
8515
+ };
8516
+ if (options.includeDomains?.length) {
8517
+ payload.includeDomains = options.includeDomains;
8518
+ }
8519
+ if (options.excludeDomains?.length) {
8520
+ payload.excludeDomains = options.excludeDomains;
8521
+ }
8522
+ const response = await fetch(WEB_SEARCH_API, {
8523
+ method: "POST",
8524
+ headers: {
8525
+ "Content-Type": "application/json"
8526
+ },
8527
+ body: JSON.stringify(payload),
8528
+ signal: options.signal
8529
+ });
8530
+ const body = await response.text();
8531
+ if (!response.ok) {
8532
+ throw new Error(parseSearchErrorMessage(response.status, body));
8533
+ }
8534
+ let parsed;
8535
+ try {
8536
+ parsed = JSON.parse(body);
8537
+ } catch {
8538
+ throw new Error("Web search failed: invalid JSON response");
8539
+ }
8540
+ const rawResults = Array.isArray(parsed.results) ? parsed.results : [];
8541
+ const results = rawResults.filter((item) => item !== null && typeof item === "object").map(normalizeResultItem);
8542
+ return {
8543
+ requestId: typeof parsed.requestId === "string" ? parsed.requestId : void 0,
8544
+ searchType: typeof parsed.searchType === "string" ? parsed.searchType : void 0,
8545
+ results
8546
+ };
8547
+ }
8548
+
8549
+ // src/tools/web-search.ts
8550
+ var searchTypeSchema = Type18.Union([
8551
+ Type18.Literal("auto"),
8552
+ Type18.Literal("fast"),
8553
+ Type18.Literal("instant"),
8554
+ Type18.Literal("deep-lite"),
8555
+ Type18.Literal("deep"),
8556
+ Type18.Literal("deep-reasoning")
8557
+ ]);
8558
+ var webSearchSchema = Type18.Object({
8468
8559
  query: Type18.String({
8469
- description: 'Search query to find tools. Use "select:name1,name2" to fetch exact tools by name, or keywords to search by description.'
8560
+ description: "Natural language search query (e.g. 'Next.js route handler authentication example')"
8470
8561
  }),
8471
- max_results: Type18.Optional(
8562
+ numResults: Type18.Optional(
8472
8563
  Type18.Number({
8564
+ description: "Number of results to return (1-100, default 10)",
8565
+ minimum: 1,
8566
+ maximum: 100
8567
+ })
8568
+ ),
8569
+ type: Type18.Optional(
8570
+ Type18.Union([searchTypeSchema], {
8571
+ description: "Search depth/latency tradeoff. Use auto (default) for most queries; fast/instant for low latency; deep variants for research."
8572
+ })
8573
+ ),
8574
+ includeDomains: Type18.Optional(
8575
+ Type18.Array(Type18.String(), {
8576
+ description: "Only return results from these domains (e.g. ['docs.github.com', 'nodejs.org'])"
8577
+ })
8578
+ ),
8579
+ excludeDomains: Type18.Optional(
8580
+ Type18.Array(Type18.String(), {
8581
+ description: "Exclude results from these domains"
8582
+ })
8583
+ )
8584
+ });
8585
+ function createWebSearchTool() {
8586
+ return {
8587
+ name: "web_search",
8588
+ label: "web_search",
8589
+ description: "Search the web for current information, documentation, API references, and code examples. Returns titles, URLs, and query-relevant highlights for each result. Use fetch to read a specific URL in full after finding it.",
8590
+ parameters: webSearchSchema,
8591
+ execute: async (_toolCallId, { query, numResults, type, includeDomains, excludeDomains }, signal, onUpdate) => {
8592
+ return withAbortSignal(signal, async (isAborted) => {
8593
+ onUpdate?.({
8594
+ content: [{ type: "text", text: `Searching the web for "${query}"\u2026` }],
8595
+ details: void 0
8596
+ });
8597
+ let response;
8598
+ try {
8599
+ response = await searchWeb({
8600
+ query,
8601
+ numResults,
8602
+ type,
8603
+ includeDomains,
8604
+ excludeDomains,
8605
+ signal
8606
+ });
8607
+ } catch (err) {
8608
+ const message = err instanceof Error ? err.message : String(err);
8609
+ return {
8610
+ content: [{ type: "text", text: message }],
8611
+ details: void 0
8612
+ };
8613
+ }
8614
+ if (isAborted()) {
8615
+ return { content: [], details: void 0 };
8616
+ }
8617
+ const payload = {
8618
+ query,
8619
+ searchType: response.searchType ?? type ?? "auto",
8620
+ requestId: response.requestId,
8621
+ resultCount: response.results.length,
8622
+ results: response.results.map((result) => ({
8623
+ title: result.title,
8624
+ url: result.url,
8625
+ publishedDate: result.publishedDate ?? void 0,
8626
+ author: result.author ?? void 0,
8627
+ highlights: result.highlights ?? []
8628
+ }))
8629
+ };
8630
+ const serialized = JSON.stringify(payload, null, 2);
8631
+ const truncated = truncateHead(serialized, { maxLines: 500, maxBytes: 50 * 1024 });
8632
+ let output = truncated.content;
8633
+ if (truncated.truncated) {
8634
+ output += `
8635
+
8636
+ [Output truncated: showing ${truncated.outputLines}/${truncated.totalLines} lines]`;
8637
+ }
8638
+ const details = {
8639
+ query,
8640
+ searchType: payload.searchType,
8641
+ resultCount: payload.resultCount,
8642
+ requestId: response.requestId
8643
+ };
8644
+ return {
8645
+ content: [{ type: "text", text: output }],
8646
+ details
8647
+ };
8648
+ });
8649
+ }
8650
+ };
8651
+ }
8652
+
8653
+ // src/tools/tool-search.ts
8654
+ import { Type as Type19 } from "@sinclair/typebox";
8655
+ var toolSearchSchema = Type19.Object({
8656
+ query: Type19.String({
8657
+ description: 'Search query to find tools. Use "select:name1,name2" to fetch exact tools by name, or keywords to search by description.'
8658
+ }),
8659
+ max_results: Type19.Optional(
8660
+ Type19.Number({
8473
8661
  description: "Maximum number of results to return (default: 5)"
8474
8662
  })
8475
8663
  )
@@ -8648,6 +8836,12 @@ var toolRegistry = [
8648
8836
  displayName: "Find Tools",
8649
8837
  activeDisplayName: "Finding Tools"
8650
8838
  },
8839
+ {
8840
+ name: "web_search",
8841
+ enabled: true,
8842
+ displayName: "Web Search",
8843
+ activeDisplayName: "Searching Web"
8844
+ },
8651
8845
  { name: "write", enabled: true, displayName: "Write", activeDisplayName: "Writing" }
8652
8846
  ];
8653
8847
  var registryByName = new Map(toolRegistry.map((entry) => [entry.name, entry]));
@@ -8671,6 +8865,9 @@ function resolveRegistryEntry(toolName) {
8671
8865
  if (lowerName === "fetch" || lowerName.includes("web_fetch")) {
8672
8866
  return registryByName.get("fetch");
8673
8867
  }
8868
+ if (lowerName === "web_search") {
8869
+ return registryByName.get("web_search");
8870
+ }
8674
8871
  if (lowerName.includes("read")) {
8675
8872
  return registryByName.get("read");
8676
8873
  }
@@ -8932,7 +9129,8 @@ async function createCodingTools(cwd, options) {
8932
9129
  createFetchTool({
8933
9130
  metadataManager: options?.metadataManager,
8934
9131
  webFetchPermissionGate: options?.webFetchPermissionGate
8935
- })
9132
+ }),
9133
+ createWebSearchTool()
8936
9134
  ]);
8937
9135
  if (options?.metadataManager && isToolEnabled("generate_image")) {
8938
9136
  coreTools.push(createGenerateImageTool({ metadataManager: options.metadataManager, cwd }));
@@ -9065,7 +9263,7 @@ async function* loadCodingToolsWithMcpStatus(cwd, options) {
9065
9263
  }
9066
9264
 
9067
9265
  // src/tools/agent-tool.ts
9068
- import { Type as Type19 } from "@sinclair/typebox";
9266
+ import { Type as Type20 } from "@sinclair/typebox";
9069
9267
 
9070
9268
  // src/agent/agent.subagent-executor.ts
9071
9269
  import { Agent } from "@earendil-works/pi-agent-core";
@@ -9224,6 +9422,7 @@ var EventQueue = class {
9224
9422
  */
9225
9423
  push(event) {
9226
9424
  this.queue.push(event);
9425
+ this.notify();
9227
9426
  }
9228
9427
  /**
9229
9428
  * Removes and returns the next event from the queue
@@ -9414,15 +9613,15 @@ async function executeSubagent(options) {
9414
9613
  }
9415
9614
 
9416
9615
  // src/tools/agent-tool.ts
9417
- var agentToolSchema = Type19.Object({
9418
- prompt: Type19.String({ description: "The task or question for the subagent to work on" }),
9419
- agentName: Type19.Optional(
9420
- Type19.String({
9616
+ var agentToolSchema = Type20.Object({
9617
+ prompt: Type20.String({ description: "The task or question for the subagent to work on" }),
9618
+ agentName: Type20.Optional(
9619
+ Type20.String({
9421
9620
  description: "Name of a defined agent (from AGENT.md) to use. If omitted, a general-purpose subagent is created."
9422
9621
  })
9423
9622
  ),
9424
- description: Type19.Optional(
9425
- Type19.String({
9623
+ description: Type20.Optional(
9624
+ Type20.String({
9426
9625
  description: "A short (3-5 word) label describing what the subagent will do"
9427
9626
  })
9428
9627
  )
@@ -9450,7 +9649,7 @@ function createAgentTool(options) {
9450
9649
  label: "agent",
9451
9650
  description: "Launch a specialized subagent to handle a focused subtask in an isolated context. The subagent runs autonomously and returns its result. Use this to delegate research, analysis, or parallel work without polluting the current context. If agentName is provided, that agent's system prompt and tool restrictions are applied.",
9452
9651
  parameters: agentToolSchema,
9453
- execute: async (_toolCallId, { prompt, agentName, description }) => {
9652
+ execute: async (toolCallId, { prompt, agentName, description }) => {
9454
9653
  const agentDef = agentName ? agents.find((a) => a.name === agentName && !a.disableModelInvocation) : void 0;
9455
9654
  if (agentName && !agentDef) {
9456
9655
  const available = agents.filter((a) => !a.disableModelInvocation).map((a) => a.name).join(", ");
@@ -9474,6 +9673,7 @@ function createAgentTool(options) {
9474
9673
  );
9475
9674
  onEvent({
9476
9675
  type: "subagent_start",
9676
+ toolCallId,
9477
9677
  subagentName: label,
9478
9678
  subagentDescription: agentDef?.description,
9479
9679
  subagentPrompt: prompt
@@ -9490,6 +9690,7 @@ function createAgentTool(options) {
9490
9690
  onEvent: (event) => {
9491
9691
  onEvent({
9492
9692
  type: "subagent_event",
9693
+ toolCallId,
9493
9694
  subagentName: label,
9494
9695
  subagentEvent: event
9495
9696
  });
@@ -9501,6 +9702,7 @@ function createAgentTool(options) {
9501
9702
  console.error(`[agent-tool] Subagent '${label}' failed:`, message);
9502
9703
  onEvent({
9503
9704
  type: "subagent_complete",
9705
+ toolCallId,
9504
9706
  subagentName: label,
9505
9707
  subagentResult: `Error: ${message}`
9506
9708
  });
@@ -9511,6 +9713,7 @@ function createAgentTool(options) {
9511
9713
  }
9512
9714
  onEvent({
9513
9715
  type: "subagent_complete",
9716
+ toolCallId,
9514
9717
  subagentName: label,
9515
9718
  subagentResult: result
9516
9719
  });
@@ -9951,6 +10154,12 @@ init_tarsk_debug();
9951
10154
  function buildDefaultPrompt(tools) {
9952
10155
  return buildDefaultSystemPrompt(tools.map((tool) => tool.name));
9953
10156
  }
10157
+ function resolveBaseSystemPrompt(tools, overrideOptions) {
10158
+ const base = resolveEffectiveSystemPrompt(buildDefaultPrompt(tools), overrideOptions);
10159
+ return `${base}
10160
+
10161
+ ${formatCurrentDateLine()}`;
10162
+ }
9954
10163
  var PLAN_MODE_INSTRUCTIONS = `
9955
10164
 
9956
10165
  # Plan Mode (ACTIVE)
@@ -10119,7 +10328,7 @@ function resolveEffectiveSystemPrompt(generatedPrompt, options) {
10119
10328
  return generatedPrompt;
10120
10329
  }
10121
10330
  async function loadPromptSections(threadPath, tools, skills, planMode, agents, deferredTools, ralphMode, overrideOptions) {
10122
- let systemPrompt = resolveEffectiveSystemPrompt(buildDefaultPrompt(tools), overrideOptions);
10331
+ let systemPrompt = resolveBaseSystemPrompt(tools, overrideOptions);
10123
10332
  const agentsContent = loadDeveloperContext(threadPath);
10124
10333
  if (agentsContent) {
10125
10334
  systemPrompt += "\n\n# Developer Context\n\n" + agentsContent;
@@ -10201,7 +10410,7 @@ function formatAgentsSection(agents) {
10201
10410
  return section;
10202
10411
  }
10203
10412
  async function loadAgentSystemPrompt(threadPath, tools, skills, planMode, agents, deferredTools, ralphMode, overrideOptions) {
10204
- let prompt = resolveEffectiveSystemPrompt(buildDefaultPrompt(tools), overrideOptions);
10413
+ let prompt = resolveBaseSystemPrompt(tools, overrideOptions);
10205
10414
  const agentsContent = loadDeveloperContext(threadPath);
10206
10415
  if (agentsContent) {
10207
10416
  prompt += "\n\n# Developer Context\n\n" + agentsContent;
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ca as t,Jt as n,Y as r,Za as i,ci as a,ji as o,ui as s,uo as c,wi as l,xo as u}from"./dialogs-config-DZKtVbNK.js";import{C as d,D as f,S as p,v as m}from"./history-view-jX3PPID6.js";import{E as h}from"./index-DjD2SPNZ.js";import{t as g}from"./skeleton-qzmFgKhS.js";var _=e(u(),1),v=o();function y(){let[e,o]=(0,_.useState)(null),[u,y]=(0,_.useState)(!0);(0,_.useEffect)(()=>{b();let e=()=>{document.visibilityState===`visible`&&b()};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]);async function b(){y(!0);try{o(await r())}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to load account info`,variant:`destructive`})}finally{y(!1)}}function x(){n(`https://buy.stripe.com/14AcN6feK0Jjbheb2H3Nm03?client_reference_id=${e?.clientReferenceId??``}`)}function S(){n(`https://buy.stripe.com/9B67sMd6CgIh70Y0o33Nm04?client_reference_id=${e?.clientReferenceId??``}`)}if(u)return(0,v.jsx)(f,{children:(0,v.jsxs)(m,{children:[(0,v.jsxs)(`div`,{className:`mb-6`,children:[(0,v.jsx)(g,{className:`h-8 w-32 mb-2`}),(0,v.jsx)(g,{className:`h-4 w-64`})]}),(0,v.jsxs)(`div`,{className:`space-y-6`,children:[(0,v.jsxs)(`div`,{className:`flex gap-4`,children:[(0,v.jsxs)(`div`,{className:`flex-1 rounded-xl border bg-card p-5 space-y-2`,children:[(0,v.jsx)(g,{className:`h-4 w-20`}),(0,v.jsx)(g,{className:`h-9 w-28`})]}),(0,v.jsxs)(`div`,{className:`flex-1 rounded-xl border bg-card p-5 space-y-3`,children:[(0,v.jsx)(g,{className:`h-4 w-24`}),(0,v.jsx)(g,{className:`h-6 w-32`}),(0,v.jsx)(g,{className:`h-4 w-full`})]})]}),(0,v.jsxs)(`div`,{className:`space-y-3`,children:[(0,v.jsx)(g,{className:`h-4 w-24`}),(0,v.jsxs)(`div`,{className:`rounded-xl border bg-card p-5 flex items-center justify-between gap-4`,children:[(0,v.jsxs)(`div`,{className:`space-y-1 flex-1`,children:[(0,v.jsx)(g,{className:`h-5 w-28`}),(0,v.jsx)(g,{className:`h-4 w-64`})]}),(0,v.jsx)(g,{className:`h-9 w-28 shrink-0`})]}),(0,v.jsxs)(`div`,{className:`rounded-xl border bg-card p-5 flex items-center justify-between gap-4`,children:[(0,v.jsxs)(`div`,{className:`space-y-1 flex-1`,children:[(0,v.jsx)(g,{className:`h-5 w-36`}),(0,v.jsx)(g,{className:`h-4 w-56`}),(0,v.jsx)(g,{className:`h-4 w-32`})]}),(0,v.jsx)(g,{className:`h-9 w-24 shrink-0`})]})]})]})]})});let C=e?.plan===`unlimited-pro`;return(0,v.jsx)(f,{children:(0,v.jsxs)(m,{children:[(0,v.jsx)(p,{title:`Account`,description:`Manage your Tarsk plan and prompt balance.`}),(0,v.jsxs)(`div`,{className:`space-y-6`,children:[(0,v.jsxs)(`div`,{className:`flex gap-4`,children:[(0,v.jsxs)(`div`,{className:`flex-1 rounded-xl border bg-card p-5 space-y-2`,children:[(0,v.jsxs)(`div`,{className:s(l.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,v.jsx)(t,{className:`h-4 w-4`}),`Balance`]}),(0,v.jsx)(`div`,{className:`flex items-end gap-2`,children:C?(0,v.jsx)(`span`,{className:l.stat,children:`Unlimited`}):(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`span`,{className:l.stat,children:e?.promptsRemaining.toLocaleString()??0}),(0,v.jsx)(`span`,{className:`${l.caption} mb-1`,children:`prompts remaining`})]})})]}),(0,v.jsxs)(`div`,{className:`flex-1 rounded-xl border bg-card p-5 space-y-3`,children:[(0,v.jsxs)(`div`,{className:s(l.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,v.jsx)(i,{className:`h-4 w-4`}),`Current Plan`]}),(0,v.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,v.jsx)(`span`,{className:l.label,children:C?`Unlimited Pro`:`Pay as you go`}),C&&(0,v.jsx)(`span`,{className:s(l.compact,`rounded-full bg-primary/10 px-2 py-0.5 font-medium text-primary`),children:`Active`})]}),(0,v.jsx)(`p`,{className:l.bodyMuted,children:C?`You have unlimited prompts with no restrictions.`:`Purchase prompts as needed. Upgrade to Pro for unlimited access.`})]})]}),!C&&(0,v.jsxs)(`div`,{className:`space-y-3`,children:[(0,v.jsx)(d,{title:`Add Prompts`,className:`mb-0`}),(0,v.jsxs)(`div`,{className:`rounded-xl border bg-card p-5 flex items-center justify-between gap-4`,children:[(0,v.jsxs)(`div`,{className:`space-y-1`,children:[(0,v.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,v.jsx)(`span`,{className:l.label,children:`1,000 Prompts`})}),(0,v.jsx)(`p`,{className:l.bodyMuted,children:`Top up your balance with 1,000 additional prompts for $5.`})]}),(0,v.jsx)(a,{onClick:x,className:`shrink-0`,children:`Top Up Balance`})]}),(0,v.jsxs)(`div`,{className:`rounded-xl border bg-card p-5 flex items-center justify-between gap-4`,children:[(0,v.jsxs)(`div`,{className:`space-y-1`,children:[(0,v.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,v.jsx)(i,{className:`h-4 w-4 text-primary`}),(0,v.jsx)(`span`,{className:l.label,children:`Unlimited Pro Plan`})]}),(0,v.jsx)(`p`,{className:l.bodyMuted,children:`Unlimited prompts for $100 and lifetime access to Tarsk.`}),(0,v.jsxs)(`ul`,{className:s(l.bodyMuted,`space-y-0.5`),children:[(0,v.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,v.jsx)(c,{className:`h-3 w-3 text-primary`}),`Unlimited prompts`]}),(0,v.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,v.jsx)(c,{className:`h-3 w-3 text-primary`}),`Priority access`]})]})]}),(0,v.jsx)(a,{onClick:S,className:`shrink-0`,children:`Purchase`})]})]})]})]})})}export{y as default};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{Ca as t,Jt as n,Y as r,Za as i,ci as a,ji as o,ui as s,uo as c,wi as l,xo as u}from"./dialogs-config-B-LZ4nOb.js";import{C as d,D as f,S as p,v as m}from"./history-view-CAkN8PCo.js";import{E as h}from"./index-BLO68CQl.js";import{t as g}from"./skeleton-K-fVduHt.js";var _=e(u(),1),v=o();function y(){let[e,o]=(0,_.useState)(null),[u,y]=(0,_.useState)(!0);(0,_.useEffect)(()=>{b();let e=()=>{document.visibilityState===`visible`&&b()};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[]);async function b(){y(!0);try{o(await r())}catch(e){h({title:`Error`,description:e instanceof Error?e.message:`Failed to load account info`,variant:`destructive`})}finally{y(!1)}}function x(){n(`https://buy.stripe.com/14AcN6feK0Jjbheb2H3Nm03?client_reference_id=${e?.clientReferenceId??``}`)}function S(){n(`https://buy.stripe.com/9B67sMd6CgIh70Y0o33Nm04?client_reference_id=${e?.clientReferenceId??``}`)}if(u)return(0,v.jsx)(f,{children:(0,v.jsxs)(m,{children:[(0,v.jsxs)(`div`,{className:`mb-6`,children:[(0,v.jsx)(g,{className:`h-8 w-32 mb-2`}),(0,v.jsx)(g,{className:`h-4 w-64`})]}),(0,v.jsxs)(`div`,{className:`space-y-6`,children:[(0,v.jsxs)(`div`,{className:`flex gap-4`,children:[(0,v.jsxs)(`div`,{className:`flex-1 rounded-xl border bg-card p-5 space-y-2`,children:[(0,v.jsx)(g,{className:`h-4 w-20`}),(0,v.jsx)(g,{className:`h-9 w-28`})]}),(0,v.jsxs)(`div`,{className:`flex-1 rounded-xl border bg-card p-5 space-y-3`,children:[(0,v.jsx)(g,{className:`h-4 w-24`}),(0,v.jsx)(g,{className:`h-6 w-32`}),(0,v.jsx)(g,{className:`h-4 w-full`})]})]}),(0,v.jsxs)(`div`,{className:`space-y-3`,children:[(0,v.jsx)(g,{className:`h-4 w-24`}),(0,v.jsxs)(`div`,{className:`rounded-xl border bg-card p-5 flex items-center justify-between gap-4`,children:[(0,v.jsxs)(`div`,{className:`space-y-1 flex-1`,children:[(0,v.jsx)(g,{className:`h-5 w-28`}),(0,v.jsx)(g,{className:`h-4 w-64`})]}),(0,v.jsx)(g,{className:`h-9 w-28 shrink-0`})]}),(0,v.jsxs)(`div`,{className:`rounded-xl border bg-card p-5 flex items-center justify-between gap-4`,children:[(0,v.jsxs)(`div`,{className:`space-y-1 flex-1`,children:[(0,v.jsx)(g,{className:`h-5 w-36`}),(0,v.jsx)(g,{className:`h-4 w-56`}),(0,v.jsx)(g,{className:`h-4 w-32`})]}),(0,v.jsx)(g,{className:`h-9 w-24 shrink-0`})]})]})]})]})});let C=e?.plan===`unlimited-pro`;return(0,v.jsx)(f,{children:(0,v.jsxs)(m,{children:[(0,v.jsx)(p,{title:`Account`,description:`Manage your Tarsk plan and prompt balance.`}),(0,v.jsxs)(`div`,{className:`space-y-6`,children:[(0,v.jsxs)(`div`,{className:`flex gap-4`,children:[(0,v.jsxs)(`div`,{className:`flex-1 rounded-xl border bg-card p-5 space-y-2`,children:[(0,v.jsxs)(`div`,{className:s(l.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,v.jsx)(t,{className:`h-4 w-4`}),`Balance`]}),(0,v.jsx)(`div`,{className:`flex items-end gap-2`,children:C?(0,v.jsx)(`span`,{className:l.stat,children:`Unlimited`}):(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(`span`,{className:l.stat,children:e?.promptsRemaining.toLocaleString()??0}),(0,v.jsx)(`span`,{className:`${l.caption} mb-1`,children:`prompts remaining`})]})})]}),(0,v.jsxs)(`div`,{className:`flex-1 rounded-xl border bg-card p-5 space-y-3`,children:[(0,v.jsxs)(`div`,{className:s(l.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,v.jsx)(i,{className:`h-4 w-4`}),`Current Plan`]}),(0,v.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,v.jsx)(`span`,{className:l.label,children:C?`Unlimited Pro`:`Pay as you go`}),C&&(0,v.jsx)(`span`,{className:s(l.compact,`rounded-full bg-primary/10 px-2 py-0.5 font-medium text-primary`),children:`Active`})]}),(0,v.jsx)(`p`,{className:l.bodyMuted,children:C?`You have unlimited prompts with no restrictions.`:`Purchase prompts as needed. Upgrade to Pro for unlimited access.`})]})]}),!C&&(0,v.jsxs)(`div`,{className:`space-y-3`,children:[(0,v.jsx)(d,{title:`Add Prompts`,className:`mb-0`}),(0,v.jsxs)(`div`,{className:`rounded-xl border bg-card p-5 flex items-center justify-between gap-4`,children:[(0,v.jsxs)(`div`,{className:`space-y-1`,children:[(0,v.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,v.jsx)(`span`,{className:l.label,children:`1,000 Prompts`})}),(0,v.jsx)(`p`,{className:l.bodyMuted,children:`Top up your balance with 1,000 additional prompts for $5.`})]}),(0,v.jsx)(a,{onClick:x,className:`shrink-0`,children:`Top Up Balance`})]}),(0,v.jsxs)(`div`,{className:`rounded-xl border bg-card p-5 flex items-center justify-between gap-4`,children:[(0,v.jsxs)(`div`,{className:`space-y-1`,children:[(0,v.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,v.jsx)(i,{className:`h-4 w-4 text-primary`}),(0,v.jsx)(`span`,{className:l.label,children:`Unlimited Pro Plan`})]}),(0,v.jsx)(`p`,{className:l.bodyMuted,children:`Unlimited prompts for $100 and lifetime access to Tarsk.`}),(0,v.jsxs)(`ul`,{className:s(l.bodyMuted,`space-y-0.5`),children:[(0,v.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,v.jsx)(c,{className:`h-3 w-3 text-primary`}),`Unlimited prompts`]}),(0,v.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,v.jsx)(c,{className:`h-3 w-3 text-primary`}),`Priority access`]})]})]}),(0,v.jsx)(a,{onClick:S,className:`shrink-0`,children:`Purchase`})]})]})]})]})})}export{y as default};
@@ -1 +1 @@
1
- import{In as e,Ln as t,Mn as n,Nn as r,Pn as i,Rn as a,zn as o}from"./dialogs-config-DZKtVbNK.js";async function s(e,t,n=!1){return i(`api/threads/${r(e)}/explorer?path=${encodeURIComponent(t)}&recursive=${n}`)}async function c(e,t){return i(`api/threads/${r(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function l(e,t,n){return o(`api/threads/${r(e)}/ai-file`,{path:t,content:n})}async function u(e,t){return n(`api/threads/${r(e)}/explorer?path=${encodeURIComponent(t)}`)}async function d(e,n,i){return t(`api/threads/${r(e)}/explorer`,{path:n,newName:i})}async function f(e,t,n){return a(`api/threads/${r(e)}/explorer/file`,{dirPath:t,name:n})}async function p(t,n){return e(`api/threads/${r(t)}/explorer/media?path=${encodeURIComponent(n)}`)}async function m(e,t,n){return a(`api/threads/${r(e)}/explorer/folder`,{dirPath:t,name:n})}export{c as a,l as c,p as i,m as n,s as o,u as r,d as s,f as t};
1
+ import{In as e,Ln as t,Mn as n,Nn as r,Pn as i,Rn as a,zn as o}from"./dialogs-config-B-LZ4nOb.js";async function s(e,t,n=!1){return i(`api/threads/${r(e)}/explorer?path=${encodeURIComponent(t)}&recursive=${n}`)}async function c(e,t){return i(`api/threads/${r(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function l(e,t,n){return o(`api/threads/${r(e)}/ai-file`,{path:t,content:n})}async function u(e,t){return n(`api/threads/${r(e)}/explorer?path=${encodeURIComponent(t)}`)}async function d(e,n,i){return t(`api/threads/${r(e)}/explorer`,{path:n,newName:i})}async function f(e,t,n){return a(`api/threads/${r(e)}/explorer/file`,{dirPath:t,name:n})}async function p(t,n){return e(`api/threads/${r(t)}/explorer/media?path=${encodeURIComponent(n)}`)}async function m(e,t,n){return a(`api/threads/${r(e)}/explorer/folder`,{dirPath:t,name:n})}export{c as a,l as c,p as i,m as n,s as o,u as r,d as s,f as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{An as t,Er as n,Ja as r,Jt as i,Ki as a,Zi as o,fr as s,hr as c,ji as l,mr as u,oa as d,pr as f,ui as p,wi as m,xo as h,ya as g,yo as _}from"./dialogs-config-DZKtVbNK.js";import{C as v,d as y,j as b}from"./index-DjD2SPNZ.js";var x=_(),S=e(h(),1),C=l();function w(e){let t=e.trim();return t?(!t.startsWith(`http://`)&&!t.startsWith(`https://`)&&(t=`http://${t}`),t):``}function T(e,t){let n=!1,r=0;function i(){if(!n){if(e.webviewId==null){r=requestAnimationFrame(i);return}t&&e.getAttribute(`src`)!==t&&e.loadURL(t),e.toggleHidden(!1),e.syncDimensions(!0)}}return r=requestAnimationFrame(i),function(){n=!0,cancelAnimationFrame(r)}}function E(e){let t=(0,x.c)(9),{onClick:n,label:r,children:i,isActive:a}=e,o=`p-1.5 rounded transition-colors ${a!==void 0&&a?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground hover:bg-background/50`}`,l;t[0]!==i||t[1]!==n||t[2]!==o?(l=(0,C.jsx)(c,{asChild:!0,children:(0,C.jsx)(`button`,{type:`button`,onClick:n,className:o,children:i})}),t[0]=i,t[1]=n,t[2]=o,t[3]=l):l=t[3];let u;t[4]===r?u=t[5]:(u=(0,C.jsx)(f,{children:r}),t[4]=r,t[5]=u);let d;return t[6]!==l||t[7]!==u?(d=(0,C.jsxs)(s,{children:[l,u]}),t[6]=l,t[7]=u,t[8]=d):d=t[8],d}function D(){let{activeMainTab:e,devServerUrl:s,browserResetTrigger:c}=v(),l=b(e=>e.selectedProjectId),f=b(e=>e.projects).find(e=>e.projectId===l),[h,_]=(0,S.useState)(``),[x,D]=(0,S.useState)(``),[O,k]=(0,S.useState)(``),[A,j]=(0,S.useState)(`desktop`),M=(0,S.useRef)(null),N=(0,S.useRef)(O),P=(0,S.useRef)(null),F=(0,S.useRef)(null),I=t(),L=e===`browser`;N.current=O,(0,S.useEffect)(()=>{D(``),k(``),_(``);let e=M.current;e&&(e.src=``),P.current&&(P.current.src=``)},[c]),(0,S.useEffect)(()=>{if(!s)return;let e=w(s);_(e),D(e),k(e)},[s]);let R=(0,S.useCallback)(e=>{M.current=e,e&&T(e,N.current)},[]);(0,S.useEffect)(()=>{let e=M.current;if(!(!I||!e||!O))return T(e,O)},[O,I,x]),(0,S.useEffect)(()=>{let e=M.current;!I||!e||(e.toggleHidden(!L),L&&requestAnimationFrame(()=>{e.syncDimensions(!0)}))},[L,I,x]),(0,S.useEffect)(()=>{let e=F.current,t=M.current;if(!I||!e||!t)return;let n=new IntersectionObserver(e=>{let n=e.some(e=>e.isIntersecting);t.toggleHidden(!n),n&&t.syncDimensions(!0)},{threshold:0});return n.observe(e),function(){n.disconnect()}},[I,x]),(0,S.useEffect)(()=>{let e=M.current;if(!I||!e)return;function t(e){let t=typeof e.detail==`string`?e.detail:x;t&&(D(t),k(``),_(t))}function n(e){let t=typeof e.detail==`string`?e.detail:x;t&&(D(t),_(t))}function r(e){let t=e.detail,n=typeof t==`string`?t:typeof t==`object`&&t&&`url`in t?String(t.url):``;n&&i(n)}return e.on(`did-navigate`,t),e.on(`did-navigate-in-page`,n),e.on(`new-window-open`,r),function(){e.off(`did-navigate`,t),e.off(`did-navigate-in-page`,n),e.off(`new-window-open`,r)}},[x,I]);function z(e){let t=w(e);t&&(_(t),D(t),k(t))}function B(e){e.key===`Enter`&&z(h)}function V(){if(I){let e=M.current;e&&e.reload();return}let e=P.current;if(!e)return;let t=e.src;e.src=``,requestAnimationFrame(()=>{e.src=t})}let H={desktop:{width:`100%`,height:`100%`},tablet:{width:`768px`,height:`1024px`},mobile:{width:`375px`,height:`667px`}}[A];function U(){return I?(0,S.createElement)(`electrobun-webview`,{ref:R,src:x,renderer:`native`,className:`block h-full w-full bg-background`}):(0,C.jsx)(`iframe`,{ref:P,src:x,className:`h-full w-full border-none`,title:`Browser`})}return(0,C.jsx)(u,{children:(0,C.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,children:[(0,C.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-border px-3 py-2`,children:[(0,C.jsx)(n,{type:`text`,value:h,onChange:e=>_(e.target.value),onKeyDown:B,placeholder:`Enter URL...`,className:p(`flex-1 rounded-full bg-muted font-mono`),spellCheck:!1}),x&&(0,C.jsx)(E,{onClick:V,label:`Refresh page`,children:(0,C.jsx)(d,{size:15})}),x&&(0,C.jsxs)(`div`,{className:`flex items-center rounded-md bg-muted p-0.5`,children:[(0,C.jsx)(E,{onClick:()=>j(`desktop`),label:`Desktop view`,isActive:A===`desktop`,children:(0,C.jsx)(g,{size:15})}),(0,C.jsx)(E,{onClick:()=>j(`tablet`),label:`Tablet view`,isActive:A===`tablet`,children:(0,C.jsx)(a,{size:15})}),(0,C.jsx)(E,{onClick:()=>j(`mobile`),label:`Mobile view`,isActive:A===`mobile`,children:(0,C.jsx)(o,{size:15})})]}),x&&(0,C.jsx)(E,{onClick:()=>void i(x),label:`Open in external browser`,children:(0,C.jsx)(r,{size:15})})]}),x?(0,C.jsx)(`div`,{ref:F,className:`flex min-h-0 flex-1 items-center justify-center bg-background`,children:(0,C.jsx)(`div`,{className:`overflow-hidden border border-border bg-background shadow-sm ${A===`desktop`?`h-full w-full rounded-none border-0 shadow-none`:`rounded-lg`}`,style:{width:H.width,height:H.height,maxWidth:`100%`,maxHeight:`100%`},children:U()})}):(0,C.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-6 text-muted-foreground`,children:l&&f?.runCommand?(0,C.jsx)(y,{projectId:l,runCommand:f.runCommand,large:!0}):(0,C.jsx)(`p`,{className:m.body,children:`Enter a URL to browse`})})]})})}export{D as BrowserTab};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{An as t,Er as n,Ja as r,Jt as i,Ki as a,Zi as o,fr as s,hr as c,ji as l,mr as u,oa as d,pr as f,ui as p,wi as m,xo as h,ya as g,yo as _}from"./dialogs-config-B-LZ4nOb.js";import{C as v,d as y,j as b}from"./index-BLO68CQl.js";var x=_(),S=e(h(),1),C=l();function w(e){let t=e.trim();return t?(!t.startsWith(`http://`)&&!t.startsWith(`https://`)&&(t=`http://${t}`),t):``}function T(e,t){let n=!1,r=0;function i(){if(!n){if(e.webviewId==null){r=requestAnimationFrame(i);return}t&&e.getAttribute(`src`)!==t&&e.loadURL(t),e.toggleHidden(!1),e.syncDimensions(!0)}}return r=requestAnimationFrame(i),function(){n=!0,cancelAnimationFrame(r)}}function E(e){let t=(0,x.c)(9),{onClick:n,label:r,children:i,isActive:a}=e,o=`p-1.5 rounded transition-colors ${a!==void 0&&a?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground hover:bg-background/50`}`,l;t[0]!==i||t[1]!==n||t[2]!==o?(l=(0,C.jsx)(c,{asChild:!0,children:(0,C.jsx)(`button`,{type:`button`,onClick:n,className:o,children:i})}),t[0]=i,t[1]=n,t[2]=o,t[3]=l):l=t[3];let u;t[4]===r?u=t[5]:(u=(0,C.jsx)(f,{children:r}),t[4]=r,t[5]=u);let d;return t[6]!==l||t[7]!==u?(d=(0,C.jsxs)(s,{children:[l,u]}),t[6]=l,t[7]=u,t[8]=d):d=t[8],d}function D(){let{activeMainTab:e,devServerUrl:s,browserResetTrigger:c}=v(),l=b(e=>e.selectedProjectId),f=b(e=>e.projects).find(e=>e.projectId===l),[h,_]=(0,S.useState)(``),[x,D]=(0,S.useState)(``),[O,k]=(0,S.useState)(``),[A,j]=(0,S.useState)(`desktop`),M=(0,S.useRef)(null),N=(0,S.useRef)(O),P=(0,S.useRef)(null),F=(0,S.useRef)(null),I=t(),L=e===`browser`;N.current=O,(0,S.useEffect)(()=>{D(``),k(``),_(``);let e=M.current;e&&(e.src=``),P.current&&(P.current.src=``)},[c]),(0,S.useEffect)(()=>{if(!s)return;let e=w(s);_(e),D(e),k(e)},[s]);let R=(0,S.useCallback)(e=>{M.current=e,e&&T(e,N.current)},[]);(0,S.useEffect)(()=>{let e=M.current;if(!(!I||!e||!O))return T(e,O)},[O,I,x]),(0,S.useEffect)(()=>{let e=M.current;!I||!e||(e.toggleHidden(!L),L&&requestAnimationFrame(()=>{e.syncDimensions(!0)}))},[L,I,x]),(0,S.useEffect)(()=>{let e=F.current,t=M.current;if(!I||!e||!t)return;let n=new IntersectionObserver(e=>{let n=e.some(e=>e.isIntersecting);t.toggleHidden(!n),n&&t.syncDimensions(!0)},{threshold:0});return n.observe(e),function(){n.disconnect()}},[I,x]),(0,S.useEffect)(()=>{let e=M.current;if(!I||!e)return;function t(e){let t=typeof e.detail==`string`?e.detail:x;t&&(D(t),k(``),_(t))}function n(e){let t=typeof e.detail==`string`?e.detail:x;t&&(D(t),_(t))}function r(e){let t=e.detail,n=typeof t==`string`?t:typeof t==`object`&&t&&`url`in t?String(t.url):``;n&&i(n)}return e.on(`did-navigate`,t),e.on(`did-navigate-in-page`,n),e.on(`new-window-open`,r),function(){e.off(`did-navigate`,t),e.off(`did-navigate-in-page`,n),e.off(`new-window-open`,r)}},[x,I]);function z(e){let t=w(e);t&&(_(t),D(t),k(t))}function B(e){e.key===`Enter`&&z(h)}function V(){if(I){let e=M.current;e&&e.reload();return}let e=P.current;if(!e)return;let t=e.src;e.src=``,requestAnimationFrame(()=>{e.src=t})}let H={desktop:{width:`100%`,height:`100%`},tablet:{width:`768px`,height:`1024px`},mobile:{width:`375px`,height:`667px`}}[A];function U(){return I?(0,S.createElement)(`electrobun-webview`,{ref:R,src:x,renderer:`native`,className:`block h-full w-full bg-background`}):(0,C.jsx)(`iframe`,{ref:P,src:x,className:`h-full w-full border-none`,title:`Browser`})}return(0,C.jsx)(u,{children:(0,C.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,children:[(0,C.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-border px-3 py-2`,children:[(0,C.jsx)(n,{type:`text`,value:h,onChange:e=>_(e.target.value),onKeyDown:B,placeholder:`Enter URL...`,className:p(`flex-1 rounded-full bg-muted font-mono`),spellCheck:!1}),x&&(0,C.jsx)(E,{onClick:V,label:`Refresh page`,children:(0,C.jsx)(d,{size:15})}),x&&(0,C.jsxs)(`div`,{className:`flex items-center rounded-md bg-muted p-0.5`,children:[(0,C.jsx)(E,{onClick:()=>j(`desktop`),label:`Desktop view`,isActive:A===`desktop`,children:(0,C.jsx)(g,{size:15})}),(0,C.jsx)(E,{onClick:()=>j(`tablet`),label:`Tablet view`,isActive:A===`tablet`,children:(0,C.jsx)(a,{size:15})}),(0,C.jsx)(E,{onClick:()=>j(`mobile`),label:`Mobile view`,isActive:A===`mobile`,children:(0,C.jsx)(o,{size:15})})]}),x&&(0,C.jsx)(E,{onClick:()=>void i(x),label:`Open in external browser`,children:(0,C.jsx)(r,{size:15})})]}),x?(0,C.jsx)(`div`,{ref:F,className:`flex min-h-0 flex-1 items-center justify-center bg-background`,children:(0,C.jsx)(`div`,{className:`overflow-hidden border border-border bg-background shadow-sm ${A===`desktop`?`h-full w-full rounded-none border-0 shadow-none`:`rounded-lg`}`,style:{width:H.width,height:H.height,maxWidth:`100%`,maxHeight:`100%`},children:U()})}):(0,C.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-6 text-muted-foreground`,children:l&&f?.runCommand?(0,C.jsx)(y,{projectId:l,runCommand:f.runCommand,large:!0}):(0,C.jsx)(`p`,{className:m.body,children:`Enter a URL to browse`})})]})})}export{D as BrowserTab};
@@ -1 +1 @@
1
- import{Ar as e,Dr as ee,Ea as te,Mr as t,Or as n,Xi as r,ci as i,fr as a,hr as o,ji as s,jr as c,kr as l,mr as u,pr as d,wi as f,wr as p,yo as m}from"./dialogs-config-DZKtVbNK.js";import{n as ne}from"./onboarding-CxtzQldG.js";import{O as h}from"./index-DjD2SPNZ.js";var g=m(),_=s();function v(s){let m=(0,g.c)(57),{open:v,onOpenChange:y,commitMessage:b,onCommitMessageChange:x,autoGenerateCommitMessage:S,onAutoGenerateChange:C,isGeneratingMessage:w,isLoading:T,onGenerateMessage:E,onCommit:D,currentBranch:O}=s,k;m[0]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,_.jsx)(t,{children:`Commit Changes`}),m[0]=k):k=m[0];let A;m[1]===O?A=m[2]:(A=(0,_.jsxs)(c,{children:[k,(0,_.jsxs)(l,{children:[`Enter a commit message for your changes on branch `,O]})]}),m[1]=O,m[2]=A);let j;m[3]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,_.jsx)(p,{htmlFor:`commit-message`,children:`Commit Message`}),m[3]=j):j=m[3];let M;m[4]===x?M=m[5]:(M=e=>x(e.target.value),m[4]=x,m[5]=M);let N;m[6]!==b||m[7]!==M?(N=(0,_.jsx)(h,{id:`commit-message`,placeholder:`Enter commit message...`,value:b,onChange:M,rows:4,className:`pr-10`}),m[6]=b,m[7]=M,m[8]=N):N=m[8];let P=w||T,F;m[9]===w?F=m[10]:(F=w?(0,_.jsx)(te,{className:`h-3.5 w-3.5 animate-spin`}):(0,_.jsx)(r,{className:`h-3.5 w-3.5`}),m[9]=w,m[10]=F);let I;m[11]!==E||m[12]!==P||m[13]!==F?(I=(0,_.jsx)(o,{asChild:!0,children:(0,_.jsx)(i,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:E,disabled:P,children:F})}),m[11]=E,m[12]=P,m[13]=F,m[14]=I):I=m[14];let L=w?`Generating commit message...`:`Generate commit message with AI`,R;m[15]===L?R=m[16]:(R=(0,_.jsx)(d,{children:L}),m[15]=L,m[16]=R);let z;m[17]!==R||m[18]!==I?(z=(0,_.jsx)(u,{children:(0,_.jsxs)(a,{children:[I,R]})}),m[17]=R,m[18]=I,m[19]=z):z=m[19];let B;m[20]!==z||m[21]!==N?(B=(0,_.jsxs)(`div`,{className:`grid gap-2`,children:[j,(0,_.jsxs)(`div`,{className:`relative`,children:[N,z]})]}),m[20]=z,m[21]=N,m[22]=B):B=m[22];let V;m[23]===C?V=m[24]:(V=e=>C(e===!0),m[23]=C,m[24]=V);let H;m[25]!==S||m[26]!==V?(H=(0,_.jsx)(ne,{id:`auto-generate`,checked:S,onCheckedChange:V}),m[25]=S,m[26]=V,m[27]=H):H=m[27];let U;m[28]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,_.jsx)(p,{htmlFor:`auto-generate`,className:f.labelNormal,children:`Auto generate commit messages`}),m[28]=U):U=m[28];let W;m[29]===H?W=m[30]:(W=(0,_.jsxs)(`div`,{className:`flex items-center gap-2`,children:[H,U]}),m[29]=H,m[30]=W);let G;m[31]!==B||m[32]!==W?(G=(0,_.jsxs)(`div`,{className:`grid gap-4 py-4`,children:[B,W]}),m[31]=B,m[32]=W,m[33]=G):G=m[33];let K;m[34]===y?K=m[35]:(K=()=>y(!1),m[34]=y,m[35]=K);let q;m[36]!==T||m[37]!==K?(q=(0,_.jsx)(i,{variant:`outline`,onClick:K,disabled:T,children:`Cancel`}),m[36]=T,m[37]=K,m[38]=q):q=m[38];let J;m[39]!==b||m[40]!==T?(J=T||!b.trim(),m[39]=b,m[40]=T,m[41]=J):J=m[41];let Y=T?`Committing...`:`Commit`,X;m[42]!==D||m[43]!==J||m[44]!==Y?(X=(0,_.jsx)(i,{onClick:D,disabled:J,children:Y}),m[42]=D,m[43]=J,m[44]=Y,m[45]=X):X=m[45];let Z;m[46]!==q||m[47]!==X?(Z=(0,_.jsxs)(e,{children:[q,X]}),m[46]=q,m[47]=X,m[48]=Z):Z=m[48];let Q;m[49]!==G||m[50]!==A||m[51]!==Z?(Q=(0,_.jsxs)(n,{children:[A,G,Z]}),m[49]=G,m[50]=A,m[51]=Z,m[52]=Q):Q=m[52];let $;return m[53]!==y||m[54]!==v||m[55]!==Q?($=(0,_.jsx)(ee,{open:v,onOpenChange:y,children:Q}),m[53]=y,m[54]=v,m[55]=Q,m[56]=$):$=m[56],$}export{v as CommitDialog};
1
+ import{Ar as e,Dr as ee,Ea as te,Mr as t,Or as n,Xi as r,ci as i,fr as a,hr as o,ji as s,jr as c,kr as l,mr as u,pr as d,wi as f,wr as p,yo as m}from"./dialogs-config-B-LZ4nOb.js";import{n as ne}from"./onboarding-Bbvb7kO4.js";import{O as h}from"./index-BLO68CQl.js";var g=m(),_=s();function v(s){let m=(0,g.c)(57),{open:v,onOpenChange:y,commitMessage:b,onCommitMessageChange:x,autoGenerateCommitMessage:S,onAutoGenerateChange:C,isGeneratingMessage:w,isLoading:T,onGenerateMessage:E,onCommit:D,currentBranch:O}=s,k;m[0]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,_.jsx)(t,{children:`Commit Changes`}),m[0]=k):k=m[0];let A;m[1]===O?A=m[2]:(A=(0,_.jsxs)(c,{children:[k,(0,_.jsxs)(l,{children:[`Enter a commit message for your changes on branch `,O]})]}),m[1]=O,m[2]=A);let j;m[3]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,_.jsx)(p,{htmlFor:`commit-message`,children:`Commit Message`}),m[3]=j):j=m[3];let M;m[4]===x?M=m[5]:(M=e=>x(e.target.value),m[4]=x,m[5]=M);let N;m[6]!==b||m[7]!==M?(N=(0,_.jsx)(h,{id:`commit-message`,placeholder:`Enter commit message...`,value:b,onChange:M,rows:4,className:`pr-10`}),m[6]=b,m[7]=M,m[8]=N):N=m[8];let P=w||T,F;m[9]===w?F=m[10]:(F=w?(0,_.jsx)(te,{className:`h-3.5 w-3.5 animate-spin`}):(0,_.jsx)(r,{className:`h-3.5 w-3.5`}),m[9]=w,m[10]=F);let I;m[11]!==E||m[12]!==P||m[13]!==F?(I=(0,_.jsx)(o,{asChild:!0,children:(0,_.jsx)(i,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:E,disabled:P,children:F})}),m[11]=E,m[12]=P,m[13]=F,m[14]=I):I=m[14];let L=w?`Generating commit message...`:`Generate commit message with AI`,R;m[15]===L?R=m[16]:(R=(0,_.jsx)(d,{children:L}),m[15]=L,m[16]=R);let z;m[17]!==R||m[18]!==I?(z=(0,_.jsx)(u,{children:(0,_.jsxs)(a,{children:[I,R]})}),m[17]=R,m[18]=I,m[19]=z):z=m[19];let B;m[20]!==z||m[21]!==N?(B=(0,_.jsxs)(`div`,{className:`grid gap-2`,children:[j,(0,_.jsxs)(`div`,{className:`relative`,children:[N,z]})]}),m[20]=z,m[21]=N,m[22]=B):B=m[22];let V;m[23]===C?V=m[24]:(V=e=>C(e===!0),m[23]=C,m[24]=V);let H;m[25]!==S||m[26]!==V?(H=(0,_.jsx)(ne,{id:`auto-generate`,checked:S,onCheckedChange:V}),m[25]=S,m[26]=V,m[27]=H):H=m[27];let U;m[28]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,_.jsx)(p,{htmlFor:`auto-generate`,className:f.labelNormal,children:`Auto generate commit messages`}),m[28]=U):U=m[28];let W;m[29]===H?W=m[30]:(W=(0,_.jsxs)(`div`,{className:`flex items-center gap-2`,children:[H,U]}),m[29]=H,m[30]=W);let G;m[31]!==B||m[32]!==W?(G=(0,_.jsxs)(`div`,{className:`grid gap-4 py-4`,children:[B,W]}),m[31]=B,m[32]=W,m[33]=G):G=m[33];let K;m[34]===y?K=m[35]:(K=()=>y(!1),m[34]=y,m[35]=K);let q;m[36]!==T||m[37]!==K?(q=(0,_.jsx)(i,{variant:`outline`,onClick:K,disabled:T,children:`Cancel`}),m[36]=T,m[37]=K,m[38]=q):q=m[38];let J;m[39]!==b||m[40]!==T?(J=T||!b.trim(),m[39]=b,m[40]=T,m[41]=J):J=m[41];let Y=T?`Committing...`:`Commit`,X;m[42]!==D||m[43]!==J||m[44]!==Y?(X=(0,_.jsx)(i,{onClick:D,disabled:J,children:Y}),m[42]=D,m[43]=J,m[44]=Y,m[45]=X):X=m[45];let Z;m[46]!==q||m[47]!==X?(Z=(0,_.jsxs)(e,{children:[q,X]}),m[46]=q,m[47]=X,m[48]=Z):Z=m[48];let Q;m[49]!==G||m[50]!==A||m[51]!==Z?(Q=(0,_.jsxs)(n,{children:[A,G,Z]}),m[49]=G,m[50]=A,m[51]=Z,m[52]=Q):Q=m[52];let $;return m[53]!==y||m[54]!==v||m[55]!==Q?($=(0,_.jsx)(ee,{open:v,onOpenChange:y,children:Q}),m[53]=y,m[54]=v,m[55]=Q,m[56]=$):$=m[56],$}export{v as CommitDialog};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{ji as t,no as n,so as r,ui as i,uo as a,wi as o,xo as s,yo as c}from"./dialogs-config-DZKtVbNK.js";import{_ as l,b as u,d,f,g as p,h as m,m as h,p as g,u as _,v,x as y,y as b}from"./react-vendor-Ba8DSNiO.js";var x=c(),S=e(s(),1),C=t(),w=l,T=y,E=S.forwardRef((e,t)=>{let n=(0,x.c)(14),a,s,c,l;n[0]===e?(a=n[1],s=n[2],c=n[3],l=n[4]):({className:s,inset:c,children:a,...l}=e,n[0]=e,n[1]=a,n[2]=s,n[3]=c,n[4]=l);let d;n[5]!==s||n[6]!==c?(d=i(i(o.body,`flex cursor-default select-none items-center rounded-sm px-2 py-1.5 outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground`),c&&`pl-8`,s),n[5]=s,n[6]=c,n[7]=d):d=n[7];let f;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,C.jsx)(r,{className:`ml-auto h-4 w-4`}),n[8]=f):f=n[8];let p;return n[9]!==a||n[10]!==l||n[11]!==t||n[12]!==d?(p=(0,C.jsxs)(u,{ref:t,className:d,...l,children:[a,f]}),n[9]=a,n[10]=l,n[11]=t,n[12]=d,n[13]=p):p=n[13],p});E.displayName=u.displayName;var D=S.forwardRef((e,t)=>{let n=(0,x.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,C.jsx)(b,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});D.displayName=b.displayName;var O=S.forwardRef((e,t)=>{let n=(0,x.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,C.jsx)(m,{children:(0,C.jsx)(d,{ref:t,className:o,...a})}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});O.displayName=d.displayName;var k=S.forwardRef((e,t)=>{let n=(0,x.c)(11),r,a,s;n[0]===e?(r=n[1],a=n[2],s=n[3]):({className:r,inset:a,...s}=e,n[0]=e,n[1]=r,n[2]=a,n[3]=s);let c;n[4]!==r||n[5]!==a?(c=i(i(o.body,`relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),a&&`pl-8`,r),n[4]=r,n[5]=a,n[6]=c):c=n[6];let l;return n[7]!==s||n[8]!==t||n[9]!==c?(l=(0,C.jsx)(f,{ref:t,className:c,...s}),n[7]=s,n[8]=t,n[9]=c,n[10]=l):l=n[10],l});k.displayName=f.displayName;var A=S.forwardRef((e,t)=>{let n=(0,x.c)(14),r,s,c,l;n[0]===e?(r=n[1],s=n[2],c=n[3],l=n[4]):({className:c,children:s,checked:r,...l}=e,n[0]=e,n[1]=r,n[2]=s,n[3]=c,n[4]=l);let u;n[5]===c?u=n[6]:(u=i(i(o.body,`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),c),n[5]=c,n[6]=u);let d;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,C.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,C.jsx)(g,{children:(0,C.jsx)(a,{className:`h-4 w-4`})})}),n[7]=d):d=n[7];let f;return n[8]!==r||n[9]!==s||n[10]!==l||n[11]!==t||n[12]!==u?(f=(0,C.jsxs)(_,{ref:t,className:u,checked:r,...l,children:[d,s]}),n[8]=r,n[9]=s,n[10]=l,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});A.displayName=_.displayName;var j=S.forwardRef((e,t)=>{let r=(0,x.c)(12),a,s,c;r[0]===e?(a=r[1],s=r[2],c=r[3]):({className:s,children:a,...c}=e,r[0]=e,r[1]=a,r[2]=s,r[3]=c);let l;r[4]===s?l=r[5]:(l=i(i(o.body,`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),s),r[4]=s,r[5]=l);let u;r[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,C.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,C.jsx)(g,{children:(0,C.jsx)(n,{className:`h-2 w-2 fill-current`})})}),r[6]=u):u=r[6];let d;return r[7]!==a||r[8]!==c||r[9]!==t||r[10]!==l?(d=(0,C.jsxs)(p,{ref:t,className:l,...c,children:[u,a]}),r[7]=a,r[8]=c,r[9]=t,r[10]=l,r[11]=d):d=r[11],d});j.displayName=p.displayName;var M=S.forwardRef((e,t)=>{let n=(0,x.c)(11),r,a,s;n[0]===e?(r=n[1],a=n[2],s=n[3]):({className:r,inset:a,...s}=e,n[0]=e,n[1]=r,n[2]=a,n[3]=s);let c;n[4]!==r||n[5]!==a?(c=i(i(o.body,`px-2 py-1.5 font-semibold text-foreground`),a&&`pl-8`,r),n[4]=r,n[5]=a,n[6]=c):c=n[6];let l;return n[7]!==s||n[8]!==t||n[9]!==c?(l=(0,C.jsx)(h,{ref:t,className:c,...s}),n[7]=s,n[8]=t,n[9]=c,n[10]=l):l=n[10],l});M.displayName=h.displayName;var N=S.forwardRef((e,t)=>{let n=(0,x.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`-mx-1 my-1 h-px bg-border`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,C.jsx)(v,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});N.displayName=v.displayName;var P=e=>{let t=(0,x.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(o.compact,`ml-auto tracking-widest text-muted-foreground`,n),t[3]=n,t[4]=a);let s;return t[5]!==r||t[6]!==a?(s=(0,C.jsx)(`span`,{className:a,...r}),t[5]=r,t[6]=a,t[7]=s):s=t[7],s};P.displayName=`ContextMenuShortcut`;export{T as a,N as i,O as n,k as r,w as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{ji as t,no as n,so as r,ui as i,uo as a,wi as o,xo as s,yo as c}from"./dialogs-config-B-LZ4nOb.js";import{_ as l,b as u,d,f,g as p,h as m,m as h,p as g,u as _,v,x as y,y as b}from"./react-vendor-D8PTA4EX.js";var x=c(),S=e(s(),1),C=t(),w=l,T=y,E=S.forwardRef((e,t)=>{let n=(0,x.c)(14),a,s,c,l;n[0]===e?(a=n[1],s=n[2],c=n[3],l=n[4]):({className:s,inset:c,children:a,...l}=e,n[0]=e,n[1]=a,n[2]=s,n[3]=c,n[4]=l);let d;n[5]!==s||n[6]!==c?(d=i(i(o.body,`flex cursor-default select-none items-center rounded-sm px-2 py-1.5 outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground`),c&&`pl-8`,s),n[5]=s,n[6]=c,n[7]=d):d=n[7];let f;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,C.jsx)(r,{className:`ml-auto h-4 w-4`}),n[8]=f):f=n[8];let p;return n[9]!==a||n[10]!==l||n[11]!==t||n[12]!==d?(p=(0,C.jsxs)(u,{ref:t,className:d,...l,children:[a,f]}),n[9]=a,n[10]=l,n[11]=t,n[12]=d,n[13]=p):p=n[13],p});E.displayName=u.displayName;var D=S.forwardRef((e,t)=>{let n=(0,x.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,C.jsx)(b,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});D.displayName=b.displayName;var O=S.forwardRef((e,t)=>{let n=(0,x.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,C.jsx)(m,{children:(0,C.jsx)(d,{ref:t,className:o,...a})}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});O.displayName=d.displayName;var k=S.forwardRef((e,t)=>{let n=(0,x.c)(11),r,a,s;n[0]===e?(r=n[1],a=n[2],s=n[3]):({className:r,inset:a,...s}=e,n[0]=e,n[1]=r,n[2]=a,n[3]=s);let c;n[4]!==r||n[5]!==a?(c=i(i(o.body,`relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),a&&`pl-8`,r),n[4]=r,n[5]=a,n[6]=c):c=n[6];let l;return n[7]!==s||n[8]!==t||n[9]!==c?(l=(0,C.jsx)(f,{ref:t,className:c,...s}),n[7]=s,n[8]=t,n[9]=c,n[10]=l):l=n[10],l});k.displayName=f.displayName;var A=S.forwardRef((e,t)=>{let n=(0,x.c)(14),r,s,c,l;n[0]===e?(r=n[1],s=n[2],c=n[3],l=n[4]):({className:c,children:s,checked:r,...l}=e,n[0]=e,n[1]=r,n[2]=s,n[3]=c,n[4]=l);let u;n[5]===c?u=n[6]:(u=i(i(o.body,`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),c),n[5]=c,n[6]=u);let d;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,C.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,C.jsx)(g,{children:(0,C.jsx)(a,{className:`h-4 w-4`})})}),n[7]=d):d=n[7];let f;return n[8]!==r||n[9]!==s||n[10]!==l||n[11]!==t||n[12]!==u?(f=(0,C.jsxs)(_,{ref:t,className:u,checked:r,...l,children:[d,s]}),n[8]=r,n[9]=s,n[10]=l,n[11]=t,n[12]=u,n[13]=f):f=n[13],f});A.displayName=_.displayName;var j=S.forwardRef((e,t)=>{let r=(0,x.c)(12),a,s,c;r[0]===e?(a=r[1],s=r[2],c=r[3]):({className:s,children:a,...c}=e,r[0]=e,r[1]=a,r[2]=s,r[3]=c);let l;r[4]===s?l=r[5]:(l=i(i(o.body,`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`),s),r[4]=s,r[5]=l);let u;r[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,C.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,C.jsx)(g,{children:(0,C.jsx)(n,{className:`h-2 w-2 fill-current`})})}),r[6]=u):u=r[6];let d;return r[7]!==a||r[8]!==c||r[9]!==t||r[10]!==l?(d=(0,C.jsxs)(p,{ref:t,className:l,...c,children:[u,a]}),r[7]=a,r[8]=c,r[9]=t,r[10]=l,r[11]=d):d=r[11],d});j.displayName=p.displayName;var M=S.forwardRef((e,t)=>{let n=(0,x.c)(11),r,a,s;n[0]===e?(r=n[1],a=n[2],s=n[3]):({className:r,inset:a,...s}=e,n[0]=e,n[1]=r,n[2]=a,n[3]=s);let c;n[4]!==r||n[5]!==a?(c=i(i(o.body,`px-2 py-1.5 font-semibold text-foreground`),a&&`pl-8`,r),n[4]=r,n[5]=a,n[6]=c):c=n[6];let l;return n[7]!==s||n[8]!==t||n[9]!==c?(l=(0,C.jsx)(h,{ref:t,className:c,...s}),n[7]=s,n[8]=t,n[9]=c,n[10]=l):l=n[10],l});M.displayName=h.displayName;var N=S.forwardRef((e,t)=>{let n=(0,x.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`-mx-1 my-1 h-px bg-border`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,C.jsx)(v,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});N.displayName=v.displayName;var P=e=>{let t=(0,x.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(o.compact,`ml-auto tracking-widest text-muted-foreground`,n),t[3]=n,t[4]=a);let s;return t[5]!==r||t[6]!==a?(s=(0,C.jsx)(`span`,{className:a,...r}),t[5]=r,t[6]=a,t[7]=s):s=t[7],s};P.displayName=`ContextMenuShortcut`;export{T as a,N as i,O as n,k as r,w as t};
@@ -1 +1 @@
1
- import{Ar as e,Dr as t,Er as n,Mr as r,Or as i,ci as a,ji as o,jr as s,kr as c,wi as l,wr as u,yo as d}from"./dialogs-config-DZKtVbNK.js";import{n as f}from"./onboarding-CxtzQldG.js";import{O as p}from"./index-DjD2SPNZ.js";var m=d(),h=o();function g(o){let d=(0,m.c)(48),{open:g,onOpenChange:_,repoName:v,onRepoNameChange:y,repoDescription:b,onRepoDescriptionChange:x,isPrivateRepo:S,onPrivateRepoChange:C,isLoading:w,onCreateRepo:T}=o,E;d[0]!==_||d[1]!==x||d[2]!==y?(E=e=>{e||(y(``),x(``)),_(e)},d[0]=_,d[1]=x,d[2]=y,d[3]=E):E=d[3];let D;d[4]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsxs)(s,{children:[(0,h.jsx)(r,{children:`Create GitHub Repository`}),(0,h.jsx)(c,{children:`Create a new GitHub repository and push your local repository`})]}),d[4]=D):D=d[4];let O;d[5]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,h.jsx)(u,{htmlFor:`repo-name`,children:`Repository Name (optional)`}),d[5]=O):O=d[5];let k;d[6]===y?k=d[7]:(k=e=>y(e.target.value),d[6]=y,d[7]=k);let A;d[8]!==v||d[9]!==k?(A=(0,h.jsxs)(`div`,{className:`grid gap-2`,children:[O,(0,h.jsx)(n,{id:`repo-name`,placeholder:`Leave empty to use current folder name`,value:v,onChange:k})]}),d[8]=v,d[9]=k,d[10]=A):A=d[10];let j;d[11]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,h.jsx)(u,{htmlFor:`repo-description`,children:`Description (optional)`}),d[11]=j):j=d[11];let M;d[12]===x?M=d[13]:(M=e=>x(e.target.value),d[12]=x,d[13]=M);let N;d[14]!==b||d[15]!==M?(N=(0,h.jsxs)(`div`,{className:`grid gap-2`,children:[j,(0,h.jsx)(p,{id:`repo-description`,placeholder:`Enter repository description...`,value:b,onChange:M,rows:3})]}),d[14]=b,d[15]=M,d[16]=N):N=d[16];let P;d[17]===C?P=d[18]:(P=e=>C(e===!0),d[17]=C,d[18]=P);let F;d[19]!==S||d[20]!==P?(F=(0,h.jsx)(f,{id:`repo-private`,checked:S,onCheckedChange:P}),d[19]=S,d[20]=P,d[21]=F):F=d[21];let I;d[22]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,h.jsx)(u,{htmlFor:`repo-private`,className:l.labelNormal,children:`Private repository`}),d[22]=I):I=d[22];let L;d[23]===F?L=d[24]:(L=(0,h.jsxs)(`div`,{className:`flex items-center gap-2`,children:[F,I]}),d[23]=F,d[24]=L);let R;d[25]!==L||d[26]!==A||d[27]!==N?(R=(0,h.jsxs)(`div`,{className:`grid gap-4 py-4`,children:[A,N,L]}),d[25]=L,d[26]=A,d[27]=N,d[28]=R):R=d[28];let z;d[29]===_?z=d[30]:(z=()=>_(!1),d[29]=_,d[30]=z);let B;d[31]!==w||d[32]!==z?(B=(0,h.jsx)(a,{variant:`outline`,onClick:z,disabled:w,children:`Cancel`}),d[31]=w,d[32]=z,d[33]=B):B=d[33];let V=w?`Creating...`:`Create & Push`,H;d[34]!==w||d[35]!==T||d[36]!==V?(H=(0,h.jsx)(a,{onClick:T,disabled:w,children:V}),d[34]=w,d[35]=T,d[36]=V,d[37]=H):H=d[37];let U;d[38]!==B||d[39]!==H?(U=(0,h.jsxs)(e,{children:[B,H]}),d[38]=B,d[39]=H,d[40]=U):U=d[40];let W;d[41]!==R||d[42]!==U?(W=(0,h.jsxs)(i,{children:[D,R,U]}),d[41]=R,d[42]=U,d[43]=W):W=d[43];let G;return d[44]!==g||d[45]!==E||d[46]!==W?(G=(0,h.jsx)(t,{open:g,onOpenChange:E,children:W}),d[44]=g,d[45]=E,d[46]=W,d[47]=G):G=d[47],G}export{g as CreateRepoDialog};
1
+ import{Ar as e,Dr as t,Er as n,Mr as r,Or as i,ci as a,ji as o,jr as s,kr as c,wi as l,wr as u,yo as d}from"./dialogs-config-B-LZ4nOb.js";import{n as f}from"./onboarding-Bbvb7kO4.js";import{O as p}from"./index-BLO68CQl.js";var m=d(),h=o();function g(o){let d=(0,m.c)(48),{open:g,onOpenChange:_,repoName:v,onRepoNameChange:y,repoDescription:b,onRepoDescriptionChange:x,isPrivateRepo:S,onPrivateRepoChange:C,isLoading:w,onCreateRepo:T}=o,E;d[0]!==_||d[1]!==x||d[2]!==y?(E=e=>{e||(y(``),x(``)),_(e)},d[0]=_,d[1]=x,d[2]=y,d[3]=E):E=d[3];let D;d[4]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,h.jsxs)(s,{children:[(0,h.jsx)(r,{children:`Create GitHub Repository`}),(0,h.jsx)(c,{children:`Create a new GitHub repository and push your local repository`})]}),d[4]=D):D=d[4];let O;d[5]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,h.jsx)(u,{htmlFor:`repo-name`,children:`Repository Name (optional)`}),d[5]=O):O=d[5];let k;d[6]===y?k=d[7]:(k=e=>y(e.target.value),d[6]=y,d[7]=k);let A;d[8]!==v||d[9]!==k?(A=(0,h.jsxs)(`div`,{className:`grid gap-2`,children:[O,(0,h.jsx)(n,{id:`repo-name`,placeholder:`Leave empty to use current folder name`,value:v,onChange:k})]}),d[8]=v,d[9]=k,d[10]=A):A=d[10];let j;d[11]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,h.jsx)(u,{htmlFor:`repo-description`,children:`Description (optional)`}),d[11]=j):j=d[11];let M;d[12]===x?M=d[13]:(M=e=>x(e.target.value),d[12]=x,d[13]=M);let N;d[14]!==b||d[15]!==M?(N=(0,h.jsxs)(`div`,{className:`grid gap-2`,children:[j,(0,h.jsx)(p,{id:`repo-description`,placeholder:`Enter repository description...`,value:b,onChange:M,rows:3})]}),d[14]=b,d[15]=M,d[16]=N):N=d[16];let P;d[17]===C?P=d[18]:(P=e=>C(e===!0),d[17]=C,d[18]=P);let F;d[19]!==S||d[20]!==P?(F=(0,h.jsx)(f,{id:`repo-private`,checked:S,onCheckedChange:P}),d[19]=S,d[20]=P,d[21]=F):F=d[21];let I;d[22]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,h.jsx)(u,{htmlFor:`repo-private`,className:l.labelNormal,children:`Private repository`}),d[22]=I):I=d[22];let L;d[23]===F?L=d[24]:(L=(0,h.jsxs)(`div`,{className:`flex items-center gap-2`,children:[F,I]}),d[23]=F,d[24]=L);let R;d[25]!==L||d[26]!==A||d[27]!==N?(R=(0,h.jsxs)(`div`,{className:`grid gap-4 py-4`,children:[A,N,L]}),d[25]=L,d[26]=A,d[27]=N,d[28]=R):R=d[28];let z;d[29]===_?z=d[30]:(z=()=>_(!1),d[29]=_,d[30]=z);let B;d[31]!==w||d[32]!==z?(B=(0,h.jsx)(a,{variant:`outline`,onClick:z,disabled:w,children:`Cancel`}),d[31]=w,d[32]=z,d[33]=B):B=d[33];let V=w?`Creating...`:`Create & Push`,H;d[34]!==w||d[35]!==T||d[36]!==V?(H=(0,h.jsx)(a,{onClick:T,disabled:w,children:V}),d[34]=w,d[35]=T,d[36]=V,d[37]=H):H=d[37];let U;d[38]!==B||d[39]!==H?(U=(0,h.jsxs)(e,{children:[B,H]}),d[38]=B,d[39]=H,d[40]=U):U=d[40];let W;d[41]!==R||d[42]!==U?(W=(0,h.jsxs)(i,{children:[D,R,U]}),d[41]=R,d[42]=U,d[43]=W):W=d[43];let G;return d[44]!==g||d[45]!==E||d[46]!==W?(G=(0,h.jsx)(t,{open:g,onOpenChange:E,children:W}),d[44]=g,d[45]=E,d[46]=W,d[47]=G):G=d[47],G}export{g as CreateRepoDialog};