From b5b1eb72e5a6ae96107aad9410af2a8fe907f95a Mon Sep 17 00:00:00 2001 From: "K.K" <4ranci0ne@gmail.com> Date: Sun, 22 Sep 2024 16:20:02 +0900 Subject: [PATCH] "Updated GitHub workflow, package dependencies, and code files for Svelte app" (#2) * "Updated GitHub workflow, package dependencies, and code files for Svelte app" * fix lockfile * fix typesafe --- .github/release.yml | 13 +++ .github/workflows/deploy.yml | 2 + bun.lockb | Bin 141465 -> 153027 bytes package.json | 5 +- postcss.config.cjs | 6 -- src/app.css | 90 ++++++++++++++------ src/routes/+layout.svelte | 8 +- src/routes/+page.svelte | 18 ++-- src/routes/utils/insert-ruby-to-textarea.ts | 10 +-- tailwind.config.ts | 64 -------------- vite.config.js | 5 +- 11 files changed, 106 insertions(+), 115 deletions(-) create mode 100644 .github/release.yml delete mode 100644 postcss.config.cjs delete mode 100644 tailwind.config.ts diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 0000000..dfc7dac --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,13 @@ +# .github/release.yml + +changelog: + categories: + - title: ๐Ÿ• Features + labels: + - '*' + exclude: + labels: + - dependencies + - title: ๐Ÿ‘’ Dependencies + labels: + - dependencies diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 1eea00c..6c1bf7a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -9,6 +9,8 @@ on: push: branches: - main + paths: + - src/** workflow_dispatch: jobs: diff --git a/bun.lockb b/bun.lockb index 751af0d5f8d50e0c0ca916d2ee5d18e6f36c78d1..d8f67c611a8ddeee6db8c1985d61613d512ef5c5 100644 GIT binary patch delta 29510 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 A8UO$Q delta 22113 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 DWX52w diff --git a/package.json b/package.json index 6817092..cfa2d06 100644 --- a/package.json +++ b/package.json @@ -41,16 +41,17 @@ "@sveltejs/kit": "^2.5.27", "@sveltejs/vite-plugin-svelte": "^4.0.0-next.7", "@tailwindcss/typography": "^0.5.15", + "@tailwindcss/vite": "^4.0.0-alpha.24", "@types/bun": "latest", "@types/node": "^22.5.5", "autoprefixer": "^10.4.20", "eslint-plugin-svelte": "^2.44.0", "svelte": "^5.0.0-next.257", "svelte-check": "^4.0.2", - "tailwindcss": "^3.4.11", + "tailwindcss": "^4.0.0-alpha.24", "tslib": "^2.4.1", "typescript": "^5.6.2", - "vite": "^5.4.5" + "vite": "^5.4.7" }, "module": "index.ts" } diff --git a/postcss.config.cjs b/postcss.config.cjs deleted file mode 100644 index e873f1a..0000000 --- a/postcss.config.cjs +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -}; diff --git a/src/app.css b/src/app.css index aef4cf1..fc0e0db 100644 --- a/src/app.css +++ b/src/app.css @@ -1,6 +1,4 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; +@import "tailwindcss"; @layer base { :root { @@ -25,30 +23,74 @@ --ring: 194 54.5% 61.2%; --radius: 0.75rem; } - .dark { - --background: 194 10% 5%; - --foreground: 194 0% 90%; - --card: 194 0% 0%; - --card-foreground: 194 0% 90%; - --popover: 194 10% 5%; - --popover-foreground: 194 0% 90%; - --primary: 194 54.5% 61.2%; - --primary-foreground: 0 0% 0%; - --secondary: 194 10% 10%; - --secondary-foreground: 0 0% 100%; - --muted: 156 10% 15%; - --muted-foreground: 194 0% 60%; - --accent: 156 10% 15%; - --accent-foreground: 194 0% 90%; - --destructive: 0 50% 30%; - --destructive-foreground: 194 0% 90%; - --border: 194 20% 18%; - --input: 194 20% 18%; - --ring: 194 54.5% 61.2%; - --radius: 0.75rem; +} + +@theme { + --color-border: hsl(var(--border)); + --color-input: hsl(var(--input)); + --color-ring: hsl(var(--ring)); + --color-background: hsl(var(--background)); + --color-foreground: hsl(var(--foreground)); + + --color-primary: hsl(var(--primary)); + --color-primary-foreground: hsl(var(--primary-foreground)); + + --color-secondary: hsl(var(--secondary)); + --color-secondary-foreground: hsl(var(--secondary-foreground)); + + --color-destructive: hsl(var(--destructive)); + --color-destructive-foreground: hsl(var(--destructive-foreground)); + + --color-muted: hsl(var(--muted)); + --color-muted-foreground: hsl(var(--muted-foreground)); + + --color-accent: hsl(var(--accent)); + --color-accent-foreground: hsl(var(--accent-foreground)); + + --color-popover: hsl(var(--popover)); + --color-popover-foreground: hsl(var(--popover-foreground)); + + --color-card: hsl(var(--card)); + --color-card-foreground: hsl(var(--card-foreground)); + + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + + --font-family: "M PLUS 2 Variable", var(--font-sans); + + --animate-accordion-down: accordion-down 0.2s ease-out; + --animate-accordion-up: accordion-up 0.2s ease-out; + + @keyframes accordion-down { + from { + height: 0; + } + + to { + height: var(--radix-accordion-content-height); + } + } + + @keyframes accordion-up { + from { + height: var(--radix-accordion-content-height); + } + + to { + height: "0"; + } } } +.border { + border-color: #e4e5e9; +} + +button { + cursor: pointer; +} + @layer base { * { @apply border-border; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 9a61f06..dd05e00 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -10,4 +10,10 @@ import { page } from "$app/stores"; - \ No newline at end of file + + + \ No newline at end of file diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index e3bb4ac..2302aa9 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -33,9 +33,9 @@ let inputText: PersistentStore = persist( createLocalStorage(), "inputText", ); -let preview: string = ""; +let preview = ""; let textarea: Textarea; -let open: boolean = true; +let open = true; let fileInput: HTMLInputElement; let urlSearchParams = $page.url.searchParams; @@ -104,7 +104,7 @@ if (isTauriApp()) { />
- {#if $inputText === "" || !inputText} + {#if ($inputText === "" || !inputText) && !isTauriApp() } @@ -115,13 +115,11 @@ if (isTauriApp()) { - {#if !isTauriApp()} - - {/if} + {/if} diff --git a/src/routes/utils/insert-ruby-to-textarea.ts b/src/routes/utils/insert-ruby-to-textarea.ts index 62576e0..5ba552c 100644 --- a/src/routes/utils/insert-ruby-to-textarea.ts +++ b/src/routes/utils/insert-ruby-to-textarea.ts @@ -9,15 +9,13 @@ export function insertRubyToTextarea( return null; } const selectionStart: number = - (textarea as HTMLTextAreaElement).selectionStart ?? undefined; + (textarea as unknown as HTMLTextAreaElement).selectionStart ?? undefined; const selectionEnd: number = - (textarea as HTMLTextAreaElement).selectionEnd ?? undefined; + (textarea as unknown as HTMLTextAreaElement).selectionEnd ?? undefined; if (selectionStart === undefined || selectionEnd === undefined) { - return null; // ไฝ•ใ‹ใ—ใ‚‰ใฎๅฏพๅฟœใ‚’ใ“ใ“ใง่ฟฝๅŠ  + return null; } - return ( - inputText.slice(0, selectionStart) + "|ใ€Šใ€‹" + inputText.slice(selectionEnd) - ); + return `${inputText.slice(0, selectionStart)}|ใ€Šใ€‹${inputText.slice(selectionEnd)}`; } diff --git a/tailwind.config.ts b/tailwind.config.ts deleted file mode 100644 index 20dbd56..0000000 --- a/tailwind.config.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { fontFamily } from "tailwindcss/defaultTheme"; -import type { Config } from "tailwindcss"; - -const config: Config = { - darkMode: ["class"], - content: ["./src/**/*.{html,js,svelte,ts}"], - safelist: ["dark"], - theme: { - container: { - center: true, - padding: "2rem", - screens: { - "2xl": "1400px", - }, - }, - extend: { - colors: { - border: "hsl(var(--border) / )", - input: "hsl(var(--input) / )", - ring: "hsl(var(--ring) / )", - background: "hsl(var(--background) / )", - foreground: "hsl(var(--foreground) / )", - primary: { - DEFAULT: "hsl(var(--primary) / )", - foreground: "hsl(var(--primary-foreground) / )", - }, - secondary: { - DEFAULT: "hsl(var(--secondary) / )", - foreground: "hsl(var(--secondary-foreground) / )", - }, - destructive: { - DEFAULT: "hsl(var(--destructive) / )", - foreground: "hsl(var(--destructive-foreground) / )", - }, - muted: { - DEFAULT: "hsl(var(--muted) / )", - foreground: "hsl(var(--muted-foreground) / )", - }, - accent: { - DEFAULT: "hsl(var(--accent) / )", - foreground: "hsl(var(--accent-foreground) / )", - }, - popover: { - DEFAULT: "hsl(var(--popover) / )", - foreground: "hsl(var(--popover-foreground) / )", - }, - card: { - DEFAULT: "hsl(var(--card) / )", - foreground: "hsl(var(--card-foreground) / )", - }, - }, - borderRadius: { - lg: "var(--radius)", - md: "calc(var(--radius) - 2px)", - sm: "calc(var(--radius) - 4px)", - }, - fontFamily: { - sans: ['"M PLUS 2 Variable"', ...fontFamily.sans], - }, - }, - }, -}; - -export default config; diff --git a/vite.config.js b/vite.config.js index fa8b504..eb615d0 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,14 +1,15 @@ import { defineConfig } from "vite"; import { sveltekit } from "@sveltejs/kit/vite"; // @ts-ignore -import { fileURLToPath } from "url"; +import { fileURLToPath } from "node:url"; +import tailwindcss from "@tailwindcss/vite"; const host = process.env.TAURI_DEV_HOST; // https://vitejs.dev/config/ export default defineConfig(async () => ({ exclude: ["svelte-codemirror-editor", "codemirror"], - plugins: [sveltekit()], + plugins: [tailwindcss(), sveltekit()], // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build` //