From f28c0f56ad4c95ee01187490cb8ff39952e98266 Mon Sep 17 00:00:00 2001 From: Stan Runge Date: Mon, 25 Aug 2025 20:40:10 +0200 Subject: [PATCH] show topics list --- packages/web/bun.lockb | Bin 194925 -> 196936 bytes packages/web/components.json | 12 ++++---- packages/web/package.json | 2 +- .../web/src/lib/components/ui/table/index.ts | 28 ++++++++++++++++++ .../lib/components/ui/table/table-body.svelte | 16 ++++++++++ .../components/ui/table/table-caption.svelte | 16 ++++++++++ .../lib/components/ui/table/table-cell.svelte | 20 +++++++++++++ .../components/ui/table/table-footer.svelte | 16 ++++++++++ .../lib/components/ui/table/table-head.svelte | 23 ++++++++++++++ .../components/ui/table/table-header.svelte | 16 ++++++++++ .../lib/components/ui/table/table-row.svelte | 23 ++++++++++++++ .../src/lib/components/ui/table/table.svelte | 18 +++++++++++ .../web/src/routes/progress/+page.server.ts | 2 +- packages/web/src/routes/progress/+page.svelte | 19 ++++++++---- .../routes/progress/topics/+page.server.ts | 17 +++++++++++ .../src/routes/progress/topics/+page.svelte | 25 ++++++++++++++++ 16 files changed, 240 insertions(+), 13 deletions(-) create mode 100644 packages/web/src/lib/components/ui/table/index.ts create mode 100644 packages/web/src/lib/components/ui/table/table-body.svelte create mode 100644 packages/web/src/lib/components/ui/table/table-caption.svelte create mode 100644 packages/web/src/lib/components/ui/table/table-cell.svelte create mode 100644 packages/web/src/lib/components/ui/table/table-footer.svelte create mode 100644 packages/web/src/lib/components/ui/table/table-head.svelte create mode 100644 packages/web/src/lib/components/ui/table/table-header.svelte create mode 100644 packages/web/src/lib/components/ui/table/table-row.svelte create mode 100644 packages/web/src/lib/components/ui/table/table.svelte create mode 100644 packages/web/src/routes/progress/topics/+page.server.ts create mode 100644 packages/web/src/routes/progress/topics/+page.svelte diff --git a/packages/web/bun.lockb b/packages/web/bun.lockb index 099b78506dc2ed5b320533edf71005f6866cdfe9..508f4e554e89062f5461a65b8fb45cbd3bd00bbd 100755 GIT binary patch delta 4291 zcmd^C30G7{7Jjdwkp=-H$|lHSG#aI)*;++0;u0nr9F59i1e&IC2?3;$h^U}WGMXHM z@{~fB2qu|{#>wcINt=i{u0+qo3}!_X6_*%IL><&}Zt?jW?mYKtBUH0CF1Qs3CL8E$ycls}O|(wS%BQISYgH3UZ95 z{alhe~FQ-s-itRDG6i+&^Kbe%8c%m+Ny4=JrbK1fBW>v?&(Pz}Y&LONAsor?iAespCDY#zgJ)|e34C!TE(H6;|`v{$6ALxNX|2;`@ zhQe;AEZF5=M2;hcH%W>UVfSw_Oo5i%N*vWT(6KSKc~gCK{g zBGA;mdv+c9KOK2uz5VuQ)H(OZeNxDe4z6!JJEi?QQ`f`w$5M|*C{6Xs;m@XjURKvR zDtY&{(tY2R#@;VJy3_sYsn}(4J_9=cshHO+`)F+guSu4@iu?}7E%hsm_n%+#c6Gt@ z+nY+R`eYoc2$+<0<&9BO-@G1`kx=CS$jM`C{pM8;FTE4$;$M`!ZQjGms+0-#kLJ7+ zaSWeEmU`TJAWze062*Sd>pR}r=d{0joTvTb!GYU{ca_eFcR1%75;3~DtpGic|5(YzYm`skWi3o7i@U$vhHwFqI2U^b8W`ujyLD#?U=b@*hlTj-QOgoc&}(! z)7y4!$j+C7=ZPsG7U@A8AflD4Q$cv8fp|F;#3lYQ5yy$}(}TFe7wbVRH-I=v z#8vK{24Z+Rh*fDIuJIE@G!YSO0P!O)Fo0NZ1kpmo4L%|r#Fz{aCFvk;^3z28K*R(i zh}(RF5k$p85I2bE;A1mD#4Z9+lL6umzXn3?;*%Ca+~r$I+~c=NbesRMNFF_u?_MOQ z!2q_}GrK$9*guhmSwG zu$U_I2c>dH3UzkJsj1Vt0{(Q5zkgGHW@=Bbwa}8ywR{Qd*7LYdI}XlxOEC!_+JJB` zu#`Nmy(PO(SSCy=kOPG&UvLi4Jp}g(I0{KSrnle<_!37CeJD(QVWMo> z1UC$I$|3-`368RO3ZN_k00%C2AcO~+QP2@Us)+6di58YGq!*mG;6{Q^6Pyp9g%DA` z!W0ZsI_l)&CpZo2M!^jh-0pi69A~`D__hwYMvmbVI_0pWD9kmT&trix0G;I#zzE=J zU^qaxi$Q=d;0Fu_{DFRe8}J0+0yqJ#Kwsc4Gk?@6ua)J=d~BCIXdK-!=w1;FXn@f` z2%rT*fgoTA@Fd^>JVM?BA@4JDS(kiK9!QrEy1w+lK-ZyO8kqUjd$PMMPcd)pmNzmd z85~Nct7VLV1G_M0T5q&TbO7H2E#{XW%ILFgZCy6B?!o<*oghhn*IcgaqcBVS57Eo(S;MY9cgRNiyScK#wQe|TYBN@N+nzis;kUOd$H%x3;UBJ=XKy%Wt|$Ido3_FT4%G(@8v zD?QxIFD9}X18m1-cE!KlRLljH+RJ%G5({OoaQ-=TU)$60 z==!g}Na}3#X7cJV4Pr`CDKDRoA=%!PSK``seEC+Z1P7X44BGbU%#Hb1v1CdvL^{+I zmi^ouH=n&Fvrj8|+l%Nmriwc*V4+U84A!-_JKa2G0kfB#FVHrGvRkq*=b9R25al6Uvkv^mrO85s2NMm7iVQI&N2pD?K%2f6Q8t=`33)mHs&JA@32TD mlpktlf&DGZ5l$9KbeM$?{CS`-{;VJctZ+)f9C?fB)c*k~7zJ4X delta 3134 zcmd6pdr(!!9mjVUFdXD54?!`!;sXpf+{@!Y&>NfS7^4aHrAa4&aN%AaSBVgaK}8_s zF*0dMV1We&h^A?MOlgK8$!(hIXgh6jOsZ|#jy6$C)Tps)g`|Zlrr+PadpmvPpZ?dK z`Oa^DpWp89{PvtZd(L=U=+()&uUOKL6=$D(_np>^j;Nm&zu3@p;>y0e*CloQeb3p= z<8S}sTFB+o(}Gd^yz`MHvFG||<9K+>dibG?wXW)7ECMzcb}no>Eb&Nf+a+Uh@Ll!g zj?E6Is|kJ>{3_TO*wx5mz|MC2<_94O>ncp+JiPni30a5BE>XUb0TQtwH@qyFnNnyB{F5VJ z&>46uhJJZq$S%6P z#yEqUn(w{*XsRjV2FBdOli@9aboT=oy8|{BmfDwD8kc}L4N27FzRXf6Nyo`@_{rKQ zOV?Sdeb{+${|zuM501>2?~MeLEVPF+FgzI621{k+!BScimf{7l)CvN|28Mt3|GuQm z|7l5M1&0D(TlL0h?eFSK175T`V;=ur!H(Ut3tu?DBC@f$bBa6rY%$Nj_N!x!duKik zJ94ZqK6uyA2NxPo4t7_Kw4O_;Xlss}X;C{%dAxeKjIZOTRDT(NMCChpn3^T`09Vve0#%g&nbiPS)wXJY_$q+Y1g@)eH^4Z7 z@45kQs8a+Qs{vMS0+>?mn*f%%d6?(wCZ4ufmL>;=`A@w=os31QXKVOIL)2{ zqm=ZTC1}>5>L|t2dN>Yl?<+*nt(s8<2WcMKGn(N*XY0|Y)~Jq9ifuZCBb;s2q3xRC zoM&a4?a+)CF{slvsi?mq#ZH81efS)(42W8*9!`gW6~k#k&w|m+XedXgcuqMe#q)YN z-G@~4X{|57&WEM@a2NX22K6}NpLhvlLu!;#3?oEI=@wnnq1}4;0{9y=+XF_`E`$#2 zDqdIoZ%FZdJ$w;DK|1sU&F%!lG0ftjy&0(A@y}i@oR)=W(xEXMD2u5k&6D$ z5u_{s28Elmfhm& zO&=M#Pnh(W8v#2isRzP1+tpT2{oBU%QMPDrX`rQVc z18aENXL&T|`JSQM{1su`@~vlup*p7dlGqz?X=~Aea1EM(PI_v%hz@NzhCV&y_aS6r zAHjYI{Si6^(cakvn+Qw%PtaNDG;{`{IL)~Lor6Ax&O=wBKSNg_+5xmPE<&F`^z`Y4 zn`KPh6E0$He*vI0}DpGw^(fr7pLZAS!^~-mS;nRSYM>t z7Kmsy`VR3$!7jP%G?O;BblB5xe{;@0@Il$=Iqc)%}F1$oucPkKvb%=KB9fuM|2QM{Pw0=2|Ve7BibQ zNtIP9;zheuYfHsLG5=XvB%hM%K&iMl(f<$oa_;rG$@4=>-!n) zI8l^)|6=D}!L1hD2i%qLURC4}@p=Bg*#}P~8jtVzL$lz`*%*?A&5XHJ=!K$d`+qw; z!4R=oFdaWHy=oA1#hPBv+YT|z6a8PDH=O%QUN615pDvSAV6ifGykFIp3tPypV&B79 xQ{wqyxd`NQ8%uoP_tV1ju2UTCT;O{?mWImhxbdhUxv43+B$s-gsA*vu{{Z^YX(a#v diff --git a/packages/web/components.json b/packages/web/components.json index 7b2aff4..62c62c7 100644 --- a/packages/web/components.json +++ b/packages/web/components.json @@ -1,14 +1,16 @@ { "$schema": "https://shadcn-svelte.com/schema.json", - "style": "default", "tailwind": { - "config": "tailwind.config.js", "css": "src/app.css", "baseColor": "slate" }, "aliases": { "components": "$lib/components", - "utils": "$lib/utils" + "utils": "$lib/utils", + "ui": "$lib/components/ui", + "hooks": "$lib/hooks", + "lib": "$lib" }, - "typescript": true -} \ No newline at end of file + "typescript": true, + "registry": "https://tw3.shadcn-svelte.com/registry/default" +} diff --git a/packages/web/package.json b/packages/web/package.json index 8936f8c..3461051 100755 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -25,7 +25,7 @@ "@types/eslint": "9.6.1", "@types/pg": "^8.11.10", "autoprefixer": "^10.4.20", - "bits-ui": "^0.22.0", + "bits-ui": "^1.4.7", "clsx": "^2.1.1", "cmdk-sv": "^0.0.18", "drizzle-kit": "^0.30.1", diff --git a/packages/web/src/lib/components/ui/table/index.ts b/packages/web/src/lib/components/ui/table/index.ts new file mode 100644 index 0000000..14695c8 --- /dev/null +++ b/packages/web/src/lib/components/ui/table/index.ts @@ -0,0 +1,28 @@ +import Root from "./table.svelte"; +import Body from "./table-body.svelte"; +import Caption from "./table-caption.svelte"; +import Cell from "./table-cell.svelte"; +import Footer from "./table-footer.svelte"; +import Head from "./table-head.svelte"; +import Header from "./table-header.svelte"; +import Row from "./table-row.svelte"; + +export { + Root, + Body, + Caption, + Cell, + Footer, + Head, + Header, + Row, + // + Root as Table, + Body as TableBody, + Caption as TableCaption, + Cell as TableCell, + Footer as TableFooter, + Head as TableHead, + Header as TableHeader, + Row as TableRow, +}; diff --git a/packages/web/src/lib/components/ui/table/table-body.svelte b/packages/web/src/lib/components/ui/table/table-body.svelte new file mode 100644 index 0000000..6c20c01 --- /dev/null +++ b/packages/web/src/lib/components/ui/table/table-body.svelte @@ -0,0 +1,16 @@ + + + + {@render children?.()} + diff --git a/packages/web/src/lib/components/ui/table/table-caption.svelte b/packages/web/src/lib/components/ui/table/table-caption.svelte new file mode 100644 index 0000000..2b0cba5 --- /dev/null +++ b/packages/web/src/lib/components/ui/table/table-caption.svelte @@ -0,0 +1,16 @@ + + + + {@render children?.()} + diff --git a/packages/web/src/lib/components/ui/table/table-cell.svelte b/packages/web/src/lib/components/ui/table/table-cell.svelte new file mode 100644 index 0000000..0536552 --- /dev/null +++ b/packages/web/src/lib/components/ui/table/table-cell.svelte @@ -0,0 +1,20 @@ + + + + {@render children?.()} + diff --git a/packages/web/src/lib/components/ui/table/table-footer.svelte b/packages/web/src/lib/components/ui/table/table-footer.svelte new file mode 100644 index 0000000..0267c47 --- /dev/null +++ b/packages/web/src/lib/components/ui/table/table-footer.svelte @@ -0,0 +1,16 @@ + + + + {@render children?.()} + diff --git a/packages/web/src/lib/components/ui/table/table-head.svelte b/packages/web/src/lib/components/ui/table/table-head.svelte new file mode 100644 index 0000000..5300ce6 --- /dev/null +++ b/packages/web/src/lib/components/ui/table/table-head.svelte @@ -0,0 +1,23 @@ + + + + {@render children?.()} + diff --git a/packages/web/src/lib/components/ui/table/table-header.svelte b/packages/web/src/lib/components/ui/table/table-header.svelte new file mode 100644 index 0000000..684a57b --- /dev/null +++ b/packages/web/src/lib/components/ui/table/table-header.svelte @@ -0,0 +1,16 @@ + + + + {@render children?.()} + diff --git a/packages/web/src/lib/components/ui/table/table-row.svelte b/packages/web/src/lib/components/ui/table/table-row.svelte new file mode 100644 index 0000000..9e693bc --- /dev/null +++ b/packages/web/src/lib/components/ui/table/table-row.svelte @@ -0,0 +1,23 @@ + + + + {@render children?.()} + diff --git a/packages/web/src/lib/components/ui/table/table.svelte b/packages/web/src/lib/components/ui/table/table.svelte new file mode 100644 index 0000000..e3a95b6 --- /dev/null +++ b/packages/web/src/lib/components/ui/table/table.svelte @@ -0,0 +1,18 @@ + + +
+ + {@render children?.()} +
+
diff --git a/packages/web/src/routes/progress/+page.server.ts b/packages/web/src/routes/progress/+page.server.ts index 8046474..88b4421 100755 --- a/packages/web/src/routes/progress/+page.server.ts +++ b/packages/web/src/routes/progress/+page.server.ts @@ -2,7 +2,7 @@ import { db } from '$lib/db'; import { tasks } from '$lib/db/schema.js'; import { desc } from 'drizzle-orm'; -export const load = async ({ cookies }) => { +export const load = async () => { return { tasks: await db.query.tasks.findMany({ with: { diff --git a/packages/web/src/routes/progress/+page.svelte b/packages/web/src/routes/progress/+page.svelte index be69947..9d5b5a7 100755 --- a/packages/web/src/routes/progress/+page.svelte +++ b/packages/web/src/routes/progress/+page.svelte @@ -19,6 +19,13 @@

Tasks ({data.tasks.length})

+ + + + + {#if data.editable}