From 6f68bb8d9548a0b6eadea12f7defbb29f9875c75 Mon Sep 17 00:00:00 2001 From: Hare Date: Tue, 23 Jun 2026 15:04:03 +0900 Subject: [PATCH 01/18] web: group repository ticket kanban rows --- web/workspace/src/app.css | 33 +- .../RepositoryTicketKanban.svelte | 283 ++++++++++++++++++ .../lib/workspace-pages/WorkspacePage.svelte | 21 +- 3 files changed, 286 insertions(+), 51 deletions(-) create mode 100644 web/workspace/src/lib/workspace-pages/RepositoryTicketKanban.svelte diff --git a/web/workspace/src/app.css b/web/workspace/src/app.css index d1108aab..b3b1eec6 100644 --- a/web/workspace/src/app.css +++ b/web/workspace/src/app.css @@ -347,8 +347,7 @@ border-top: 0; } - .runtime-card, - .kanban-column { + .runtime-card { padding: var(--space-4) 0 0; border-top: 1px solid var(--line); } @@ -423,36 +422,6 @@ text-transform: uppercase; } - .kanban { - display: grid; - gap: var(--space-5); - grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr)); - margin-top: var(--space-4); - } - - .kanban-column h3 { - display: flex; - justify-content: space-between; - gap: var(--space-3); - color: var(--text-muted); - font-size: 0.9rem; - letter-spacing: 0.07em; - text-transform: uppercase; - } - - .kanban-column ul { - display: grid; - gap: var(--space-3); - margin: 0; - padding: 0; - list-style: none; - } - - .kanban-column li { - padding-left: var(--space-3); - border-left: 2px solid var(--line); - } - .diagnostics { margin-top: var(--space-4); } diff --git a/web/workspace/src/lib/workspace-pages/RepositoryTicketKanban.svelte b/web/workspace/src/lib/workspace-pages/RepositoryTicketKanban.svelte new file mode 100644 index 00000000..e6475795 --- /dev/null +++ b/web/workspace/src/lib/workspace-pages/RepositoryTicketKanban.svelte @@ -0,0 +1,283 @@ + + +
+ {#each groups as group (group.key)} +
+
+
+

{group.label}

+

{group.states.join(' + ')}

+
+ {group.items.length} +
+ + {#if group.items.length === 0} +

No tickets.

+ {:else} +
onGroupScroll(group, event)} + > +
    + {#each visibleTickets(group) as ticket (ticket.id)} +
  • +
    + {ticket.title} + {ticket.state} +
    + {ticket.id} · updated {formatDate(ticket.updated_at)} +
  • + {/each} +
+ {#if hasMore(group)} +

Showing {visibleCount(group.key)} of {group.items.length}; scroll for more.

+ {/if} +
+ {/if} +
+ {/each} +
+ + diff --git a/web/workspace/src/lib/workspace-pages/WorkspacePage.svelte b/web/workspace/src/lib/workspace-pages/WorkspacePage.svelte index 232f579b..82b91414 100644 --- a/web/workspace/src/lib/workspace-pages/WorkspacePage.svelte +++ b/web/workspace/src/lib/workspace-pages/WorkspacePage.svelte @@ -1,4 +1,5 @@