|
1 | 1 | <script lang="ts">
|
2 |
| - import loadErrorSvg from '$lib/assets/empty-state/load-error.svg?raw'; |
3 | 2 | import { Icon, Button } from '@gitbutler/ui';
|
4 | 3 |
|
5 | 4 | interface Props {
|
|
9 | 8 | const { onSettingsBtnClick }: Props = $props();
|
10 | 9 | </script>
|
11 | 10 |
|
12 |
| -<section class="not-available-banner__wrap"> |
| 11 | +<div class="not-available-banner__wrapper"> |
13 | 12 | <div class="not-available-banner">
|
14 |
| - <div class="not-available-banner__image"> |
15 |
| - {@html loadErrorSvg} |
16 |
| - </div> |
17 | 13 | <div class="not-available-banner__content">
|
18 | 14 | <h3 class="text-16 text-semibold">
|
19 | 15 | <span class="not-available-banner__icon">
|
20 | 16 | <Icon name="warning" />
|
21 | 17 | </span> Claude code can't be found
|
22 | 18 | </h3>
|
23 |
| - <p class="text-13 text-body clr-text-2 m-bottom-8"> |
| 19 | + <p class="text-13 text-body clr-text-2"> |
24 | 20 | Connect Claude Code to keep going with this session.
|
25 |
| - <br /> |
26 |
| - This can be configured in the settings. |
27 | 21 | </p>
|
28 |
| - <Button kind="outline" style="neutral" icon="mixer" type="button" onclick={onSettingsBtnClick} |
29 |
| - >Configure Claude Code…</Button |
30 |
| - > |
31 | 22 | </div>
|
| 23 | + <Button kind="outline" style="neutral" icon="mixer" type="button" onclick={onSettingsBtnClick} |
| 24 | + >Set up connection…</Button |
| 25 | + > |
32 | 26 | </div>
|
33 |
| -</section> |
| 27 | +</div> |
34 | 28 |
|
35 | 29 | <style lang="postcss">
|
36 |
| - .not-available-banner__wrap { |
| 30 | + .not-available-banner__wrapper { |
37 | 31 | display: flex;
|
38 |
| - position: relative; |
39 |
| - padding: 12px; |
40 |
| - padding-top: 0; |
41 |
| -
|
42 |
| - &::before { |
43 |
| - position: absolute; |
44 |
| - bottom: 0; |
45 |
| - left: 0; |
46 |
| - width: 100%; |
47 |
| - height: calc(100% + 60px); |
48 |
| - background: linear-gradient(0deg, var(--clr-bg-1-muted) 70%, transparent 100%); |
49 |
| - content: ''; |
50 |
| - pointer-events: none; |
51 |
| - } |
| 32 | + z-index: var(--z-ground); |
| 33 | + position: absolute; |
| 34 | + bottom: 0; |
| 35 | + left: 0; |
| 36 | + justify-content: center; |
| 37 | + width: 100%; |
| 38 | + padding: 16px; |
52 | 39 | }
|
53 |
| -
|
54 | 40 | .not-available-banner {
|
55 | 41 | display: flex;
|
56 |
| - z-index: var(--z-ground); |
57 |
| - align-items: center; |
58 |
| - width: 100%; |
59 |
| - padding: 28px; |
| 42 | + bottom: 16px; |
| 43 | + width: fit-content; |
| 44 | + padding: 16px; |
60 | 45 | overflow: hidden;
|
61 | 46 | gap: 28px;
|
62 | 47 | border: 1px solid var(--clr-border-2);
|
63 | 48 | border-radius: var(--radius-ml);
|
64 | 49 | background-color: var(--clr-bg-1);
|
65 |
| - } |
66 |
| -
|
67 |
| - .not-available-banner__image { |
68 |
| - flex-shrink: 0; |
| 50 | + box-shadow: var(--fx-shadow-l); |
69 | 51 | }
|
70 | 52 |
|
71 | 53 | .not-available-banner__content {
|
|
82 | 64 | color: var(--clr-theme-warn-element);
|
83 | 65 | }
|
84 | 66 |
|
85 |
| - @container chat (min-width: 800px) { |
86 |
| - .not-available-banner__wrap { |
87 |
| - position: absolute; |
88 |
| - bottom: 0; |
89 |
| - left: 0; |
90 |
| - justify-content: center; |
91 |
| - width: 100%; |
92 |
| -
|
93 |
| - &::before { |
94 |
| - display: none; |
95 |
| - } |
96 |
| - } |
97 |
| -
|
| 67 | + @container chat (max-width: 600px) { |
98 | 68 | .not-available-banner {
|
99 |
| - width: auto; |
100 |
| - max-width: 560px; |
| 69 | + flex-direction: column; |
| 70 | + gap: 16px; |
101 | 71 | }
|
102 | 72 | }
|
103 | 73 | </style>
|
0 commit comments