lvwerra HF Staff commited on
Commit
7f71894
·
verified ·
1 Parent(s): 147b121

Improve public setup code copy widget

Browse files
web/src/components/Locked.tsx CHANGED
@@ -17,7 +17,11 @@ api.duplicate_repo(
17
  repo_type="space",
18
  private=True,
19
  space_volumes=[
20
- Volume(type="bucket", source=bucket_id, mount_path="/data"),
 
 
 
 
21
  ],
22
  )`;
23
  const [copied, setCopied] = useState(false);
@@ -41,7 +45,12 @@ api.duplicate_repo(
41
  </p>
42
  <div className="locked-cmd">
43
  <pre><code>{cmd}</code></pre>
44
- <button className="btn-ghost" onClick={copy}>{copied ? 'Copied' : 'Copy'}</button>
 
 
 
 
 
45
  </div>
46
 
47
  <h3>Is this your Space?</h3>
 
17
  repo_type="space",
18
  private=True,
19
  space_volumes=[
20
+ Volume(
21
+ type="bucket",
22
+ source=bucket_id,
23
+ mount_path="/data",
24
+ ),
25
  ],
26
  )`;
27
  const [copied, setCopied] = useState(false);
 
45
  </p>
46
  <div className="locked-cmd">
47
  <pre><code>{cmd}</code></pre>
48
+ <button className="locked-copy" onClick={copy} aria-label="Copy setup code" title={copied ? 'Copied' : 'Copy'}>
49
+ <svg viewBox="0 0 24 24" aria-hidden="true">
50
+ <rect x="9" y="8" width="10" height="12" rx="2" />
51
+ <path d="M6 16H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" />
52
+ </svg>
53
+ </button>
54
  </div>
55
 
56
  <h3>Is this your Space?</h3>
web/src/styles.css CHANGED
@@ -138,15 +138,17 @@ body {
138
 
139
  /* public-space locked screen */
140
  .locked { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px; background: var(--bg); }
141
- .locked-card { max-width: 540px; width: 100%; background: var(--panel); border: 1px solid var(--border); border-radius: 16px; padding: 32px 34px; box-shadow: 0 12px 40px rgba(0,0,0,0.22); }
142
  .locked-emoji { font-size: 34px; }
143
  .locked-card h1 { margin: 8px 0 4px; font-size: 22px; }
144
  .locked-card h3 { margin: 22px 0 6px; font-size: 14px; }
145
  .locked-lead { color: var(--text); font-size: 14px; line-height: 1.55; }
146
  .locked-sub { color: var(--muted); font-size: 13px; line-height: 1.5; }
147
- .locked-cmd { display: flex; align-items: stretch; gap: 8px; margin-top: 8px; }
148
- .locked-cmd pre { flex: 1; margin: 0; overflow-x: auto; background: var(--panel-2); border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; font-size: 12px; line-height: 1.5; }
149
- .locked-cmd .btn-ghost { flex: none; align-self: flex-start; }
 
 
150
 
151
  /* terminal "process exited" overlay */
152
  /* Non-blocking banner so the agent's last output (e.g. a login error) stays readable. */
 
138
 
139
  /* public-space locked screen */
140
  .locked { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px; background: var(--bg); }
141
+ .locked-card { max-width: 920px; width: 100%; background: var(--panel); border: 1px solid var(--border); border-radius: 16px; padding: 32px 34px; box-shadow: 0 12px 40px rgba(0,0,0,0.22); }
142
  .locked-emoji { font-size: 34px; }
143
  .locked-card h1 { margin: 8px 0 4px; font-size: 22px; }
144
  .locked-card h3 { margin: 22px 0 6px; font-size: 14px; }
145
  .locked-lead { color: var(--text); font-size: 14px; line-height: 1.55; }
146
  .locked-sub { color: var(--muted); font-size: 13px; line-height: 1.5; }
147
+ .locked-cmd { position: relative; margin-top: 8px; }
148
+ .locked-cmd pre { margin: 0; overflow-x: hidden; white-space: pre-wrap; overflow-wrap: anywhere; background: var(--panel-2); border: 1px solid var(--border); border-radius: 8px; padding: 42px 14px 14px; font-size: 12px; line-height: 1.5; }
149
+ .locked-copy { position: absolute; top: 10px; right: 10px; width: 30px; height: 30px; border: 1px solid var(--border); border-radius: 8px; background: var(--panel); color: var(--muted); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
150
+ .locked-copy:hover { color: var(--text); border-color: var(--border-strong); }
151
+ .locked-copy svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; }
152
 
153
  /* terminal "process exited" overlay */
154
  /* Non-blocking banner so the agent's last output (e.g. a login error) stays readable. */