diff --git a/apps/web/src/lib/components/ui/button/button.svelte b/apps/web/src/lib/components/ui/button/button.svelte index a359544..37a5298 100644 --- a/apps/web/src/lib/components/ui/button/button.svelte +++ b/apps/web/src/lib/components/ui/button/button.svelte @@ -17,6 +17,8 @@ export const buttonVariants = tv({ "border-input bg-background hover:bg-accent hover:text-accent-foreground border shadow-sm", secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 shadow-sm", + foreground: + "bg-foreground text-background hover:bg-foreground/80 shadow-sm", ghost: "hover:bg-accent hover:text-accent-foreground", link: "text-primary underline-offset-4 hover:underline", }, diff --git a/apps/web/src/routes/kripke/+page.svelte b/apps/web/src/routes/kripke/+page.svelte index 3c11208..a144b5c 100644 --- a/apps/web/src/routes/kripke/+page.svelte +++ b/apps/web/src/routes/kripke/+page.svelte @@ -2,12 +2,14 @@ import { Button } from "$lib/components/ui/button"; import * as Dialog from "$lib/components/ui/dialog"; import { type Formula, isomorphic, validWorlds } from "@cannorin/kripke"; +import LuRotateCw from "lucide-svelte/icons/rotate-cw"; import LuX from "lucide-svelte/icons/x"; import { onMount } from "svelte"; import FrameInput from "./frame-input.svelte"; import Game, { type GameStatus, type Move } from "./game.svelte"; import Rules from "./rules.svelte"; +import Share from "./share.svelte"; import { daily } from "./store"; import { getDailyFrame, getTimeUntilNextGame } from "./system"; @@ -82,12 +84,20 @@ onMount(() => { - - + +
+ + + +
diff --git a/apps/web/src/routes/kripke/game.svelte b/apps/web/src/routes/kripke/game.svelte index 3b11de6..aaa1b24 100644 --- a/apps/web/src/routes/kripke/game.svelte +++ b/apps/web/src/routes/kripke/game.svelte @@ -200,10 +200,8 @@ const colors: Record = { {/if} {#if status === "win"} -
  • +
  • YOU WIN!

    - -

    Play random challenge?

  • {:else if status === "lose"} {#await getAnswer() then answerId} @@ -216,7 +214,6 @@ const colors: Record = { id: {answerId} -

    Play random challenge?

    {/await} {/if} diff --git a/apps/web/src/routes/kripke/random/+page.svelte b/apps/web/src/routes/kripke/random/+page.svelte index ddcb80d..c037e26 100644 --- a/apps/web/src/routes/kripke/random/+page.svelte +++ b/apps/web/src/routes/kripke/random/+page.svelte @@ -2,11 +2,13 @@ import { Button } from "$lib/components/ui/button"; import * as Dialog from "$lib/components/ui/dialog"; import { type Formula, isomorphic, validWorlds } from "@cannorin/kripke"; +import LuRotateCw from "lucide-svelte/icons/rotate-cw"; import LuX from "lucide-svelte/icons/x"; import FrameInput from "../frame-input.svelte"; import Game, { type GameStatus, type Move } from "../game.svelte"; import Rules from "../rules.svelte"; +import Share from "../share.svelte"; import { getRandomFrame } from "../system"; let { data } = $props(); @@ -78,12 +80,20 @@ $effect(() => { - - + +
    + + + +
    diff --git a/apps/web/src/routes/kripke/share.svelte b/apps/web/src/routes/kripke/share.svelte new file mode 100644 index 0000000..d1fe57a --- /dev/null +++ b/apps/web/src/routes/kripke/share.svelte @@ -0,0 +1,71 @@ + + +