mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-11-03 18:50:30 +08:00
Redesign the entire app with a new UI kit. Typography, colors, icons, avatars, and border radii have all been updated for a more polished, consistent appearance that matches our other products like radicle-explorer. - Replace blockies-based avatars with a new DID-based avatar system - Move Settings and Create Issue into fullscreen modals - Change the default theme to follow the system theme - Remove window decorations on macOS for a cleaner, more native feel - Update the app icon - Fix popovers and tooltips Navigation: - Rewrite app navigation and layouts - Add a sidebar that gives you access to all your repos - Change the startup screen to open directly to the notification inbox - Add a getting started guide shown to new users on first launch Settings: - Add a setting to disable the notification badge - Add a code font setting Bug fixes: - Fix reactions and edits incorrectly targeting the root comment instead of the intended reply - Restrict issue/patch state, labels and assignees to delegates only
61 lines
1.3 KiB
Svelte
61 lines
1.3 KiB
Svelte
<script lang="ts">
|
|
import type { Snippet } from "svelte";
|
|
|
|
import Button from "@app/components/Button.svelte";
|
|
import Icon from "@app/components/Icon.svelte";
|
|
|
|
interface Props {
|
|
leftHeader: Snippet;
|
|
children: Snippet;
|
|
}
|
|
|
|
const { leftHeader, children }: Props = $props();
|
|
|
|
let expanded = $state(true);
|
|
</script>
|
|
|
|
<style>
|
|
.header {
|
|
display: flex;
|
|
align-items: center;
|
|
height: 2.5rem;
|
|
padding-left: 0.25rem;
|
|
font: var(--txt-body-m-regular);
|
|
}
|
|
|
|
.left {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
align-items: center;
|
|
}
|
|
</style>
|
|
|
|
<div
|
|
style:border="1px solid var(--color-border-subtle)"
|
|
style:border-radius="var(--border-radius-md)"
|
|
style:display="flex"
|
|
style:align-items="flex-start"
|
|
style:background-color="var(--color-surface-canvas)"
|
|
style:flex-direction="column">
|
|
<div class="header" class:collapsed={!expanded}>
|
|
<div class="left">
|
|
<Button
|
|
variant="naked"
|
|
onclick={async () => {
|
|
expanded = !expanded;
|
|
}}>
|
|
<Icon name={expanded ? "chevron-down" : "chevron-right"} />
|
|
</Button>
|
|
{@render leftHeader()}
|
|
</div>
|
|
</div>
|
|
|
|
{#if expanded}
|
|
<div
|
|
style:width="100%"
|
|
style:border-top="1px solid var(--color-border-subtle)">
|
|
{@render children()}
|
|
</div>
|
|
{/if}
|
|
</div>
|