From f83a24ad688f487eca57bc5e743f3ac154282ea1 Mon Sep 17 00:00:00 2001 From: TZGyn Date: Sun, 12 Nov 2023 22:24:49 +0800 Subject: [PATCH] added form action to login --- bun.lockb | Bin 120778 -> 122076 bytes package.json | 8 +- src/app.postcss | 144 +++++++++--------- .../components/ui/checkbox/checkbox.svelte | 34 +++++ src/lib/components/ui/checkbox/index.ts | 6 + src/lib/components/ui/form/form-button.svelte | 9 ++ .../components/ui/form/form-checkbox.svelte | 26 ++++ .../ui/form/form-description.svelte | 16 ++ src/lib/components/ui/form/form-input.svelte | 28 ++++ src/lib/components/ui/form/form-item.svelte | 12 ++ src/lib/components/ui/form/form-label.svelte | 21 +++ .../ui/form/form-native-select.svelte | 24 +++ .../ui/form/form-radio-group.svelte | 22 +++ .../ui/form/form-select-trigger.svelte | 17 +++ src/lib/components/ui/form/form-select.svelte | 20 +++ src/lib/components/ui/form/form-switch.svelte | 24 +++ .../components/ui/form/form-textarea.svelte | 32 ++++ .../components/ui/form/form-validation.svelte | 14 ++ src/lib/components/ui/form/index.ts | 85 +++++++++++ src/lib/components/ui/radio-group/index.ts | 15 ++ .../ui/radio-group/radio-group-item.svelte | 28 ++++ .../ui/radio-group/radio-group.svelte | 18 +++ src/lib/components/ui/select/index.ts | 33 ++++ .../ui/select/select-content.svelte | 36 +++++ .../components/ui/select/select-item.svelte | 38 +++++ .../components/ui/select/select-label.svelte | 16 ++ .../ui/select/select-separator.svelte | 14 ++ .../ui/select/select-trigger.svelte | 27 ++++ src/lib/components/ui/select/select.svelte | 12 ++ src/lib/components/ui/switch/index.ts | 7 + src/lib/components/ui/switch/switch.svelte | 25 +++ src/lib/components/ui/textarea/index.ts | 28 ++++ .../components/ui/textarea/textarea.svelte | 31 ++++ .../login/(components)/user-auth-form.svelte | 70 +++------ src/routes/(auth)/login/+page.server.ts | 58 +++++++ src/routes/(auth)/login/+page.svelte | 5 +- src/routes/(auth)/login/schema.ts | 8 + tailwind.config.js | 66 ++++---- tsconfig.json | 3 +- 39 files changed, 922 insertions(+), 158 deletions(-) create mode 100644 src/lib/components/ui/checkbox/checkbox.svelte create mode 100644 src/lib/components/ui/checkbox/index.ts create mode 100644 src/lib/components/ui/form/form-button.svelte create mode 100644 src/lib/components/ui/form/form-checkbox.svelte create mode 100644 src/lib/components/ui/form/form-description.svelte create mode 100644 src/lib/components/ui/form/form-input.svelte create mode 100644 src/lib/components/ui/form/form-item.svelte create mode 100644 src/lib/components/ui/form/form-label.svelte create mode 100644 src/lib/components/ui/form/form-native-select.svelte create mode 100644 src/lib/components/ui/form/form-radio-group.svelte create mode 100644 src/lib/components/ui/form/form-select-trigger.svelte create mode 100644 src/lib/components/ui/form/form-select.svelte create mode 100644 src/lib/components/ui/form/form-switch.svelte create mode 100644 src/lib/components/ui/form/form-textarea.svelte create mode 100644 src/lib/components/ui/form/form-validation.svelte create mode 100644 src/lib/components/ui/form/index.ts create mode 100644 src/lib/components/ui/radio-group/index.ts create mode 100644 src/lib/components/ui/radio-group/radio-group-item.svelte create mode 100644 src/lib/components/ui/radio-group/radio-group.svelte create mode 100644 src/lib/components/ui/select/index.ts create mode 100644 src/lib/components/ui/select/select-content.svelte create mode 100644 src/lib/components/ui/select/select-item.svelte create mode 100644 src/lib/components/ui/select/select-label.svelte create mode 100644 src/lib/components/ui/select/select-separator.svelte create mode 100644 src/lib/components/ui/select/select-trigger.svelte create mode 100644 src/lib/components/ui/select/select.svelte create mode 100644 src/lib/components/ui/switch/index.ts create mode 100644 src/lib/components/ui/switch/switch.svelte create mode 100644 src/lib/components/ui/textarea/index.ts create mode 100644 src/lib/components/ui/textarea/textarea.svelte create mode 100644 src/routes/(auth)/login/+page.server.ts create mode 100644 src/routes/(auth)/login/schema.ts diff --git a/bun.lockb b/bun.lockb index 898ecdf33a4774db2ce2defceecee1889e6507c0..4301cd562c0de98bf56d6168e48226adcbab9ec9 100755 GIT binary patch delta 22744 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̹h`9VDkr~TQ$U_4}TPut9)W6`fwrkC@59XZSi{&f;XBjl5 zVxaiF5B$(MP&oI62l)nysJ?87Tqj6u1OMin&1p+HA2hEYGO9#hl0S{Zl3XUP#Nkw; zf1Ky~uJu(DdwjS|SwodwM%|ACJ@oGfO$a|ZGV;6Vd}ydA9%-(K8^C<(xnYmPXs93j z0pH}1xr45q8%J3%RuRiVBt5AHIYvRi+%%{w^LhKk!En$=LdIwVw14YiQNho zGY7IEp1+|C>?^OnhP1SPK~tZ}NeND@Mu>12#9Zt7qg~W${c}humG|as?tH2g?a&TE zJ|+=82xlkt_=9842$R?Wfjr72pY_T$^=~9Se3o!+V0F9ZNTG8oeCWHDA}s+!sqQMS!}YHu=^rt1 zV5MQ|4E*Q0cLgc5I_n>j*?ZmjO74zT*(e=l`vsaL?He=&RX#fQVRvyY0V#og!E}0A z*-Drbv6vkfBNK6S+t5m^PGr#@`h&8vPUcl>+j{Mgu~~&uJEd4*9L!>5=houw!SH|m z%ROH^tgtLvcW}H?r*eww(^|}ihCHFQST~qOJL#Wcx_L;N7_%UBw#*7!3;QJIEiY*; znkJzv{liUb($DWL8)@`bT1k!}?QJavk;b9c>LKOZhkM*V^L|-I%?hC@B%N$MZzw9e z)mm&y!j#cJ8ujjCsfh7|M?; zt$FPtg!@qJ710r5&`>s2E{YKMhoXQp5u(;GtVH^!s7wc@?V8u_)=A9*u=_vv9Am3= zeQR5hg1nyZwNq^~ENj!BFRHFj#=Iimf^mx5iDl5p*S|~E`e^+N?UoiN+OTLexH62O zf4S z8gD!$DS17-MdjhJgrB!^>!`r!(*E9(O{2an&)eQxw1Gy*8_z^a8N-p6&QVt;4e1y# z@A852yc4{|Ov+oVmA<}Xa$IJ3!wI{jL%@y1hr?ehp5+0!(}3=lNZ3rQg^) zKyh}(Bb9x?O%`3nI4FAlYsK7dVoM5^;NIe83O1{M{e$&H4-uHkcF1>nio2<3!;d|M zIfMDzG!F^wCAy`d@A}uhZpf8x?jBx!o;Gu^1?=dh&Wro2n@>4xH|s7^ut6z!=)3CL_se^kl%56AYS}(k{6HG|x5E;?dlLP2hfJ(P z%CC0JQ?*Q2t%VCc|6RMNR-8VqqRL2=sefl|#e*?E*>C^&9?GO83$>PSM6*WX2c&8( zadjkXTJJ<3_2_cAuet?v*|#lxRQ?~0l}_S#g-2w4Mbk`F)3~4Ln8^b3_0Q|gb0~-i zirdsdX?n0ha?0rBw85SFpKkEjXKTZBB-0Hf@kdbGlr5HOh0uNd235K^kjuPk_rcv75?|>( zc9nI#w_753YWqZ&-c|l|YJNRkusjytZ!mtHlla{h!N*u`l|S@P9Ddz?c=kfG=aWON zl-rC2@{0+(+`n=-d=@+%K=XewRG2*aLh4`Be;BW}zWr6PFpu>zB;=&|X6I!jWr@dm zY?_mLA{ddJ?VFX8k(8<2;uCpe@VjNfX67VvzhoXI+sClguEM;LRc!f>ip_kRy(z!1 zdbiInd*~Sa{`Vd?&bzrEe&0{Q4{Rz#JmRbh3o7}Yv+EUv(`i;@$WBhnQ$E}(mYimd zOByd`7wkmM<;XB=H=8K(i_y6Q8eV1BB;UwnW73V$Fra`>ayQfwOEPdsTFG zaikO(+n#4F=k0~^xbygZ9(ov}K~tEGh{J2V;y1xoy6Cqv(F;B5i<={2>vUFIESb+9 zP?J5yrUk5TN!UX6R4%bu&Gy-rcyC}`nJAeK%S3Ks!K`HCX11kbN%1cB2kr;%VLy}% k*vr;c7xUg_9-gnvjapvCVIXX-0VOsknL`B;c!ACTFQgOs;{X5v delta 21865 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 + import { Checkbox as CheckboxPrimitive } from "bits-ui"; + import { Check, Minus } from "lucide-svelte"; + import { cn } from "$lib/utils"; + + type $$Props = CheckboxPrimitive.Props; + type $$Events = CheckboxPrimitive.Events; + + let className: $$Props["class"] = undefined; + export let checked: $$Props["checked"] = false; + export { className as class }; + + + + + {#if isChecked} + + {:else if isIndeterminate} + + {/if} + + diff --git a/src/lib/components/ui/checkbox/index.ts b/src/lib/components/ui/checkbox/index.ts new file mode 100644 index 0000000..5fba5a4 --- /dev/null +++ b/src/lib/components/ui/checkbox/index.ts @@ -0,0 +1,6 @@ +import Root from "./checkbox.svelte"; +export { + Root, + // + Root as Checkbox +}; diff --git a/src/lib/components/ui/form/form-button.svelte b/src/lib/components/ui/form/form-button.svelte new file mode 100644 index 0000000..024f9dc --- /dev/null +++ b/src/lib/components/ui/form/form-button.svelte @@ -0,0 +1,9 @@ + + + + + diff --git a/src/lib/components/ui/form/form-checkbox.svelte b/src/lib/components/ui/form/form-checkbox.svelte new file mode 100644 index 0000000..46b9151 --- /dev/null +++ b/src/lib/components/ui/form/form-checkbox.svelte @@ -0,0 +1,26 @@ + + + { + onCheckedChange?.(v); + setValue(v); + }} + {...$$restProps} + on:click + on:keydown +/> + diff --git a/src/lib/components/ui/form/form-description.svelte b/src/lib/components/ui/form/form-description.svelte new file mode 100644 index 0000000..6efa0e5 --- /dev/null +++ b/src/lib/components/ui/form/form-description.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/src/lib/components/ui/form/form-input.svelte b/src/lib/components/ui/form/form-input.svelte new file mode 100644 index 0000000..224f44a --- /dev/null +++ b/src/lib/components/ui/form/form-input.svelte @@ -0,0 +1,28 @@ + + + diff --git a/src/lib/components/ui/form/form-item.svelte b/src/lib/components/ui/form/form-item.svelte new file mode 100644 index 0000000..0e5daa4 --- /dev/null +++ b/src/lib/components/ui/form/form-item.svelte @@ -0,0 +1,12 @@ + + +
+ +
diff --git a/src/lib/components/ui/form/form-label.svelte b/src/lib/components/ui/form/form-label.svelte new file mode 100644 index 0000000..96083e5 --- /dev/null +++ b/src/lib/components/ui/form/form-label.svelte @@ -0,0 +1,21 @@ + + + diff --git a/src/lib/components/ui/form/form-native-select.svelte b/src/lib/components/ui/form/form-native-select.svelte new file mode 100644 index 0000000..af2a1c4 --- /dev/null +++ b/src/lib/components/ui/form/form-native-select.svelte @@ -0,0 +1,24 @@ + + + + + + diff --git a/src/lib/components/ui/form/form-radio-group.svelte b/src/lib/components/ui/form/form-radio-group.svelte new file mode 100644 index 0000000..91f6b80 --- /dev/null +++ b/src/lib/components/ui/form/form-radio-group.svelte @@ -0,0 +1,22 @@ + + + { + onValueChange?.(v); + setValue(v); + }} + {...$$restProps} +> + + + diff --git a/src/lib/components/ui/form/form-select-trigger.svelte b/src/lib/components/ui/form/form-select-trigger.svelte new file mode 100644 index 0000000..5950967 --- /dev/null +++ b/src/lib/components/ui/form/form-select-trigger.svelte @@ -0,0 +1,17 @@ + + + + + + diff --git a/src/lib/components/ui/form/form-select.svelte b/src/lib/components/ui/form/form-select.svelte new file mode 100644 index 0000000..f747b6b --- /dev/null +++ b/src/lib/components/ui/form/form-select.svelte @@ -0,0 +1,20 @@ + + + { + onSelectedChange?.(v); + setValue(v ? v.value : undefined); + }} + {...$$restProps} +> + + + diff --git a/src/lib/components/ui/form/form-switch.svelte b/src/lib/components/ui/form/form-switch.svelte new file mode 100644 index 0000000..8b909dc --- /dev/null +++ b/src/lib/components/ui/form/form-switch.svelte @@ -0,0 +1,24 @@ + + + { + onCheckedChange?.(v); + setValue(v); + }} + {...$$restProps} + on:click + on:keydown +/> + diff --git a/src/lib/components/ui/form/form-textarea.svelte b/src/lib/components/ui/form/form-textarea.svelte new file mode 100644 index 0000000..149d88f --- /dev/null +++ b/src/lib/components/ui/form/form-textarea.svelte @@ -0,0 +1,32 @@ + + +