From 356b666766b2e1482ccadf199175b860d1e63804 Mon Sep 17 00:00:00 2001 From: fiszh <61081555+Fiszh@users.noreply.github.com> Date: Fri, 19 Jun 2026 23:50:35 +0200 Subject: [PATCH 01/13] Save --- app/src/components/Inputs/Button.svelte | 63 +++++++++ app/src/components/Inputs/Checkbox.svelte | 41 ++++++ app/src/components/Inputs/Color.svelte | 54 ++++++++ app/src/components/Inputs/Input.svelte | 120 ++++++++++++++++++ .../Inputs/Segmented-control.svelte | 105 +++++++++++++++ app/src/components/Inputs/Selector.svelte | 85 +++++++++++++ app/src/components/Inputs/Toggle.svelte | 55 ++++++++ app/src/routes/design/+page.svelte | 84 ++++++++++++ 8 files changed, 607 insertions(+) create mode 100644 app/src/components/Inputs/Button.svelte create mode 100644 app/src/components/Inputs/Checkbox.svelte create mode 100644 app/src/components/Inputs/Color.svelte create mode 100644 app/src/components/Inputs/Input.svelte create mode 100644 app/src/components/Inputs/Segmented-control.svelte create mode 100644 app/src/components/Inputs/Selector.svelte create mode 100644 app/src/components/Inputs/Toggle.svelte create mode 100644 app/src/routes/design/+page.svelte diff --git a/app/src/components/Inputs/Button.svelte b/app/src/components/Inputs/Button.svelte new file mode 100644 index 0000000..4bd8d4f --- /dev/null +++ b/app/src/components/Inputs/Button.svelte @@ -0,0 +1,63 @@ + + +{#if href} + + {@render icon?.()} + {@render children?.()} + {@render iconRight?.()} + +{:else} + +{/if} + + diff --git a/app/src/components/Inputs/Checkbox.svelte b/app/src/components/Inputs/Checkbox.svelte new file mode 100644 index 0000000..ff68418 --- /dev/null +++ b/app/src/components/Inputs/Checkbox.svelte @@ -0,0 +1,41 @@ + + + + + diff --git a/app/src/components/Inputs/Color.svelte b/app/src/components/Inputs/Color.svelte new file mode 100644 index 0000000..a32a402 --- /dev/null +++ b/app/src/components/Inputs/Color.svelte @@ -0,0 +1,54 @@ + + + + + diff --git a/app/src/components/Inputs/Input.svelte b/app/src/components/Inputs/Input.svelte new file mode 100644 index 0000000..8ed754e --- /dev/null +++ b/app/src/components/Inputs/Input.svelte @@ -0,0 +1,120 @@ + + + + + diff --git a/app/src/components/Inputs/Segmented-control.svelte b/app/src/components/Inputs/Segmented-control.svelte new file mode 100644 index 0000000..201be04 --- /dev/null +++ b/app/src/components/Inputs/Segmented-control.svelte @@ -0,0 +1,105 @@ + + + + +
+ {#each options as { id, label, icon }} + + {/each} +
+ + diff --git a/app/src/components/Inputs/Selector.svelte b/app/src/components/Inputs/Selector.svelte new file mode 100644 index 0000000..5f05bc8 --- /dev/null +++ b/app/src/components/Inputs/Selector.svelte @@ -0,0 +1,85 @@ + + + + +
+ {#each options as option} + + {/each} +
+ + diff --git a/app/src/components/Inputs/Toggle.svelte b/app/src/components/Inputs/Toggle.svelte new file mode 100644 index 0000000..0cb83a3 --- /dev/null +++ b/app/src/components/Inputs/Toggle.svelte @@ -0,0 +1,55 @@ + + + + + diff --git a/app/src/routes/design/+page.svelte b/app/src/routes/design/+page.svelte new file mode 100644 index 0000000..babf0e8 --- /dev/null +++ b/app/src/routes/design/+page.svelte @@ -0,0 +1,84 @@ + + +
+

UChat Design Page

+ +

Buttons

+ {#snippet icon()} + + {/snippet} + {#snippet iconRight()} + + {/snippet} + {#snippet iconSearch()} + + {/snippet} + + + + +

Toggles

+ + + + +

Checkboxes

+ Checked + Unchecked + +

Inputs

+ + + + +

Color

+ + +

Segment Control

+ + +

Selector

+ +
+ + From 98657ab7486db6b48173d238b63b347ca2738fbb Mon Sep 17 00:00:00 2001 From: fiszh <61081555+Fiszh@users.noreply.github.com> Date: Fri, 19 Jun 2026 23:53:40 +0200 Subject: [PATCH 02/13] Better design page look --- app/src/routes/design/+page.svelte | 98 +++++++++++++++++++----------- 1 file changed, 63 insertions(+), 35 deletions(-) diff --git a/app/src/routes/design/+page.svelte b/app/src/routes/design/+page.svelte index babf0e8..289bda6 100644 --- a/app/src/routes/design/+page.svelte +++ b/app/src/routes/design/+page.svelte @@ -20,7 +20,6 @@

UChat Design Page

-

Buttons

{#snippet icon()} {/snippet} @@ -30,39 +29,55 @@ {#snippet iconSearch()} {/snippet} - - - - -

Toggles

- - - - -

Checkboxes

- Checked - Unchecked - -

Inputs

- - - - -

Color

- - -

Segment Control

- - -

Selector

- + +
+

Buttons

+ + + +
+ +
+

Toggles

+ + + +
+ +
+

Checkboxes

+ Checked + Unchecked +
+ +
+

Inputs

+ + + +
+ +
+

Color

+ +
+ +
+

Segment Control

+ +
+ +
+

Selector

+ +
From 047fc24ef96d9d6cdbadbc2a19aa8bac52d5fc9f Mon Sep 17 00:00:00 2001 From: fiszh <61081555+Fiszh@users.noreply.github.com> Date: Sat, 20 Jun 2026 00:01:24 +0200 Subject: [PATCH 03/13] add allowed hosts --- app/vite.config.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/vite.config.ts b/app/vite.config.ts index 7c96716..c5f2646 100644 --- a/app/vite.config.ts +++ b/app/vite.config.ts @@ -14,6 +14,9 @@ export default defineConfig({ preview: { allowedHosts: ["dev.unii.dev", "chat.unii.dev", "localhost"], }, + server: { + allowedHosts: [".unii.dev", "unii.dev"], + }, define: { __COMMIT_HASH: JSON.stringify(commitHash), __BUILD_DATE: JSON.stringify(new Date().toISOString()), From 0a49314e29649accf50474cbfa6fe28c81a5704a Mon Sep 17 00:00:00 2001 From: fiszh <61081555+Fiszh@users.noreply.github.com> Date: Sat, 20 Jun 2026 20:24:49 +0200 Subject: [PATCH 04/13] save --- app/src/app.scss | 1 + app/src/components/Inputs/Dropdown.svelte | 134 ++++++++++++++++++++++ app/src/components/Inputs/Input.svelte | 27 +++-- app/src/routes/design/+page.svelte | 40 +++++-- 4 files changed, 182 insertions(+), 20 deletions(-) create mode 100644 app/src/components/Inputs/Dropdown.svelte diff --git a/app/src/app.scss b/app/src/app.scss index 57b944f..98c5aed 100644 --- a/app/src/app.scss +++ b/app/src/app.scss @@ -19,6 +19,7 @@ body { * { scrollbar-width: var(--scrollbar-width, auto); scrollbar-color: var(--scrollbar-color, auto); + -webkit-tap-highlight-color: transparent; } *::-webkit-scrollbar { diff --git a/app/src/components/Inputs/Dropdown.svelte b/app/src/components/Inputs/Dropdown.svelte new file mode 100644 index 0000000..9e0d558 --- /dev/null +++ b/app/src/components/Inputs/Dropdown.svelte @@ -0,0 +1,134 @@ + + +
+ + + + expanded && close}> + {@render dropdown?.()} + +
+ + diff --git a/app/src/components/Inputs/Input.svelte b/app/src/components/Inputs/Input.svelte index 8ed754e..ca8f9f5 100644 --- a/app/src/components/Inputs/Input.svelte +++ b/app/src/components/Inputs/Input.svelte @@ -1,11 +1,13 @@ @@ -92,6 +95,7 @@ } } + span, button { background-color: transparent; border: none; @@ -101,6 +105,11 @@ display: inline-flex; } + span { + height: 1rem; + aspect-ratio: 1; + } + input { background-color: transparent; border: none; diff --git a/app/src/routes/design/+page.svelte b/app/src/routes/design/+page.svelte index 289bda6..55c5b36 100644 --- a/app/src/routes/design/+page.svelte +++ b/app/src/routes/design/+page.svelte @@ -6,14 +6,15 @@ import Color from "$components/Inputs/Color.svelte"; import SegmentedControl from "$components/Inputs/Segmented-control.svelte"; import Selector from "$components/Inputs/Selector.svelte"; + import Dropdown from "$components/Inputs/Dropdown.svelte"; import { House, ChevronRight, Search } from "lucide-svelte"; //FIXME MAKE SELECTOR WAY BETTER WITHOUT THE NEED OF THIS let selectorOptions = $state([ - { enabled: true, label: "Twitch" }, - { enabled: true, label: "Kick" }, - { enabled: true, label: "YouTube" }, - { enabled: true, label: "TikTok" }, + { enabled: true, label: "Lorem" }, + { enabled: true, label: "ipsum" }, + { enabled: true, label: "dolor" }, + { enabled: true, label: "sit" }, ]); @@ -30,11 +31,27 @@ {/snippet} + {#snippet dropdown()} + + + + {/snippet} +

Buttons

- - - + + + +
+ +
+

Dropdown

+ Lorem +
+ +
+

Dropdown Reversed

+ Lorem
@@ -54,6 +71,7 @@

Inputs

+
@@ -66,10 +84,10 @@

Segment Control

From e4e246e246696a4f57dd35b70c02c0367fb663ca Mon Sep 17 00:00:00 2001 From: Killer Fish <61081555+Fiszh@users.noreply.github.com> Date: Mon, 22 Jun 2026 12:42:57 +0200 Subject: [PATCH 05/13] sync --- .github/FUNDING.yml | 0 .github/PULL_REQUEST_TEMPLATE.md | 0 .github/dependabot.yml | 0 .github/workflows/build-test.yml | 0 .gitignore | 0 .vscode/extensions.json | 0 .vscode/settings.json | 0 CONTRIBUTING.md | 0 LICENSE | 0 README.md | 0 app/.gitignore | 0 app/.prettierignore | 0 app/.prettierrc | 0 app/bun.lock | 0 app/bunfig.toml | 0 app/package.json | 0 app/src/app.d.ts | 0 app/src/app.html | 0 app/src/app.scss | 0 app/src/components/Badge.svelte | 0 app/src/components/Banner.svelte | 0 app/src/components/ChatDisplay.svelte | 0 app/src/components/ChatMessage.svelte | 0 app/src/components/ChatOverlay.svelte | 0 app/src/components/Dialog.svelte | 0 app/src/components/Inputs/Button.svelte | 0 app/src/components/Inputs/Checkbox.svelte | 0 app/src/components/Inputs/Color.svelte | 0 app/src/components/Inputs/Dropdown.svelte | 0 app/src/components/Inputs/Input.svelte | 0 app/src/components/Inputs/Segmented-control.svelte | 0 app/src/components/Inputs/Selector.svelte | 0 app/src/components/Inputs/Toggle.svelte | 0 app/src/components/Loading.svelte | 0 app/src/components/LoginButton.svelte | 0 app/src/components/Main.svelte | 0 app/src/components/Main/Chat/Display.svelte | 0 app/src/components/Main/Chat/Main.svelte | 0 app/src/components/Main/Chat/Settings.svelte | 0 .../components/Main/Chat/SettingsColorPicker.svelte | 0 app/src/components/Main/GlobalSettings.svelte | 0 app/src/components/Main/Help/Main.svelte | 0 app/src/components/Main/MessageCreator/Main.svelte | 0 app/src/components/Main/Sidebar.svelte | 0 app/src/lib/assets/favicon.svg | 0 app/src/lib/assets/loading.avif | Bin app/src/lib/badgeParser.ts | 0 app/src/lib/badges.ts | 0 app/src/lib/chat.ts | 0 app/src/lib/chatCommands.ts | 0 app/src/lib/cookie.ts | 0 app/src/lib/emoteParser.ts | 0 app/src/lib/emotes.ts | 0 app/src/lib/loadChat.ts | 0 app/src/lib/overlayIndex.ts | 0 app/src/lib/preview.ts | 0 app/src/lib/services/7TV/GQL/cosmetics/multiple.gql | 0 app/src/lib/services/7TV/GQL/cosmetics/single.gql | 0 app/src/lib/services/7TV/cosmetics.ts | 0 app/src/lib/services/7TV/main.ts | 0 app/src/lib/services/7TV/websocket.ts | 0 app/src/lib/services/BTTV/main.ts | 0 app/src/lib/services/BTTV/websocket.ts | 0 app/src/lib/services/FFZ/main.ts | 0 app/src/lib/services/index.ts | 0 app/src/lib/services/twitch.ts | 0 app/src/routes/+error.svelte | 0 app/src/routes/+layout.svelte | 0 app/src/routes/+layout.ts | 0 app/src/routes/+page.svelte | 0 app/src/routes/auth/+page.svelte | 0 app/src/routes/convert/+page.svelte | 0 app/src/routes/design/+page.svelte | 0 app/src/routes/teapot/+page.ts | 0 app/src/routes/teapot/[...code]/+page.ts | 0 app/src/stores/convert/chatis.ts | 0 app/src/stores/cosmetics.ts | 0 app/src/stores/faq.ts | 0 app/src/stores/global.ts | 0 app/src/stores/previewMessages.ts | 0 app/src/stores/settings.ts | 0 app/src/types/converter.d.ts | 0 app/static/fonts/Geist/Geist-Black.otf | Bin app/static/fonts/Geist/Geist-Bold.otf | Bin app/static/fonts/Geist/Geist-ExtraBold.otf | Bin app/static/fonts/Geist/Geist-ExtraLight.otf | Bin app/static/fonts/Geist/Geist-Light.otf | Bin app/static/fonts/Geist/Geist-Medium.otf | Bin app/static/fonts/Geist/Geist-Regular.otf | Bin app/static/fonts/Geist/Geist-SemiBold.otf | Bin app/static/fonts/Geist/Geist-Thin.otf | Bin app/static/fonts/Just-Sans/JUST-Sans-ExBold.otf | Bin app/static/fonts/Just-Sans/JUST-Sans-Regular.otf | Bin app/static/fonts/Melody/BLMelody-Bold.otf | Bin app/static/fonts/Melody/BLMelody-Book.otf | Bin app/static/fonts/Melody/BLMelody-ExtraLight.otf | Bin app/static/fonts/Melody/BLMelody-Light.otf | Bin app/static/fonts/Melody/BLMelody-Medium.otf | Bin app/static/fonts/Now/Now-Black.otf | Bin app/static/fonts/Now/Now-Bold.otf | Bin app/static/fonts/Now/Now-Light.otf | Bin app/static/fonts/Now/Now-Medium.otf | Bin app/static/fonts/Now/Now-Regular.otf | Bin app/static/fonts/Now/Now-Thin.otf | Bin app/static/fonts/Satoshi/Satoshi-Black.otf | Bin app/static/fonts/Satoshi/Satoshi-Bold.otf | Bin app/static/fonts/Satoshi/Satoshi-Light.otf | Bin app/static/fonts/Satoshi/Satoshi-Medium.otf | Bin app/static/fonts/Satoshi/Satoshi-Regular.otf | Bin app/static/images/banner.png | Bin app/static/images/favicon.ico | Bin app/static/images/logo.avif | Bin app/static/robots.txt | 0 app/static/sitemap.xml | 0 app/svelte.config.js | 0 app/tsconfig.json | 0 app/vite.config.ts | 0 117 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 .github/FUNDING.yml mode change 100644 => 100755 .github/PULL_REQUEST_TEMPLATE.md mode change 100644 => 100755 .github/dependabot.yml mode change 100644 => 100755 .github/workflows/build-test.yml mode change 100644 => 100755 .gitignore mode change 100644 => 100755 .vscode/extensions.json mode change 100644 => 100755 .vscode/settings.json mode change 100644 => 100755 CONTRIBUTING.md mode change 100644 => 100755 LICENSE mode change 100644 => 100755 README.md mode change 100644 => 100755 app/.gitignore mode change 100644 => 100755 app/.prettierignore mode change 100644 => 100755 app/.prettierrc mode change 100644 => 100755 app/bun.lock mode change 100644 => 100755 app/bunfig.toml mode change 100644 => 100755 app/package.json mode change 100644 => 100755 app/src/app.d.ts mode change 100644 => 100755 app/src/app.html mode change 100644 => 100755 app/src/app.scss mode change 100644 => 100755 app/src/components/Badge.svelte mode change 100644 => 100755 app/src/components/Banner.svelte mode change 100644 => 100755 app/src/components/ChatDisplay.svelte mode change 100644 => 100755 app/src/components/ChatMessage.svelte mode change 100644 => 100755 app/src/components/ChatOverlay.svelte mode change 100644 => 100755 app/src/components/Dialog.svelte mode change 100644 => 100755 app/src/components/Inputs/Button.svelte mode change 100644 => 100755 app/src/components/Inputs/Checkbox.svelte mode change 100644 => 100755 app/src/components/Inputs/Color.svelte mode change 100644 => 100755 app/src/components/Inputs/Dropdown.svelte mode change 100644 => 100755 app/src/components/Inputs/Input.svelte mode change 100644 => 100755 app/src/components/Inputs/Segmented-control.svelte mode change 100644 => 100755 app/src/components/Inputs/Selector.svelte mode change 100644 => 100755 app/src/components/Inputs/Toggle.svelte mode change 100644 => 100755 app/src/components/Loading.svelte mode change 100644 => 100755 app/src/components/LoginButton.svelte mode change 100644 => 100755 app/src/components/Main.svelte mode change 100644 => 100755 app/src/components/Main/Chat/Display.svelte mode change 100644 => 100755 app/src/components/Main/Chat/Main.svelte mode change 100644 => 100755 app/src/components/Main/Chat/Settings.svelte mode change 100644 => 100755 app/src/components/Main/Chat/SettingsColorPicker.svelte mode change 100644 => 100755 app/src/components/Main/GlobalSettings.svelte mode change 100644 => 100755 app/src/components/Main/Help/Main.svelte mode change 100644 => 100755 app/src/components/Main/MessageCreator/Main.svelte mode change 100644 => 100755 app/src/components/Main/Sidebar.svelte mode change 100644 => 100755 app/src/lib/assets/favicon.svg mode change 100644 => 100755 app/src/lib/assets/loading.avif mode change 100644 => 100755 app/src/lib/badgeParser.ts mode change 100644 => 100755 app/src/lib/badges.ts mode change 100644 => 100755 app/src/lib/chat.ts mode change 100644 => 100755 app/src/lib/chatCommands.ts mode change 100644 => 100755 app/src/lib/cookie.ts mode change 100644 => 100755 app/src/lib/emoteParser.ts mode change 100644 => 100755 app/src/lib/emotes.ts mode change 100644 => 100755 app/src/lib/loadChat.ts mode change 100644 => 100755 app/src/lib/overlayIndex.ts mode change 100644 => 100755 app/src/lib/preview.ts mode change 100644 => 100755 app/src/lib/services/7TV/GQL/cosmetics/multiple.gql mode change 100644 => 100755 app/src/lib/services/7TV/GQL/cosmetics/single.gql mode change 100644 => 100755 app/src/lib/services/7TV/cosmetics.ts mode change 100644 => 100755 app/src/lib/services/7TV/main.ts mode change 100644 => 100755 app/src/lib/services/7TV/websocket.ts mode change 100644 => 100755 app/src/lib/services/BTTV/main.ts mode change 100644 => 100755 app/src/lib/services/BTTV/websocket.ts mode change 100644 => 100755 app/src/lib/services/FFZ/main.ts mode change 100644 => 100755 app/src/lib/services/index.ts mode change 100644 => 100755 app/src/lib/services/twitch.ts mode change 100644 => 100755 app/src/routes/+error.svelte mode change 100644 => 100755 app/src/routes/+layout.svelte mode change 100644 => 100755 app/src/routes/+layout.ts mode change 100644 => 100755 app/src/routes/+page.svelte mode change 100644 => 100755 app/src/routes/auth/+page.svelte mode change 100644 => 100755 app/src/routes/convert/+page.svelte mode change 100644 => 100755 app/src/routes/design/+page.svelte mode change 100644 => 100755 app/src/routes/teapot/+page.ts mode change 100644 => 100755 app/src/routes/teapot/[...code]/+page.ts mode change 100644 => 100755 app/src/stores/convert/chatis.ts mode change 100644 => 100755 app/src/stores/cosmetics.ts mode change 100644 => 100755 app/src/stores/faq.ts mode change 100644 => 100755 app/src/stores/global.ts mode change 100644 => 100755 app/src/stores/previewMessages.ts mode change 100644 => 100755 app/src/stores/settings.ts mode change 100644 => 100755 app/src/types/converter.d.ts mode change 100644 => 100755 app/static/fonts/Geist/Geist-Black.otf mode change 100644 => 100755 app/static/fonts/Geist/Geist-Bold.otf mode change 100644 => 100755 app/static/fonts/Geist/Geist-ExtraBold.otf mode change 100644 => 100755 app/static/fonts/Geist/Geist-ExtraLight.otf mode change 100644 => 100755 app/static/fonts/Geist/Geist-Light.otf mode change 100644 => 100755 app/static/fonts/Geist/Geist-Medium.otf mode change 100644 => 100755 app/static/fonts/Geist/Geist-Regular.otf mode change 100644 => 100755 app/static/fonts/Geist/Geist-SemiBold.otf mode change 100644 => 100755 app/static/fonts/Geist/Geist-Thin.otf mode change 100644 => 100755 app/static/fonts/Just-Sans/JUST-Sans-ExBold.otf mode change 100644 => 100755 app/static/fonts/Just-Sans/JUST-Sans-Regular.otf mode change 100644 => 100755 app/static/fonts/Melody/BLMelody-Bold.otf mode change 100644 => 100755 app/static/fonts/Melody/BLMelody-Book.otf mode change 100644 => 100755 app/static/fonts/Melody/BLMelody-ExtraLight.otf mode change 100644 => 100755 app/static/fonts/Melody/BLMelody-Light.otf mode change 100644 => 100755 app/static/fonts/Melody/BLMelody-Medium.otf mode change 100644 => 100755 app/static/fonts/Now/Now-Black.otf mode change 100644 => 100755 app/static/fonts/Now/Now-Bold.otf mode change 100644 => 100755 app/static/fonts/Now/Now-Light.otf mode change 100644 => 100755 app/static/fonts/Now/Now-Medium.otf mode change 100644 => 100755 app/static/fonts/Now/Now-Regular.otf mode change 100644 => 100755 app/static/fonts/Now/Now-Thin.otf mode change 100644 => 100755 app/static/fonts/Satoshi/Satoshi-Black.otf mode change 100644 => 100755 app/static/fonts/Satoshi/Satoshi-Bold.otf mode change 100644 => 100755 app/static/fonts/Satoshi/Satoshi-Light.otf mode change 100644 => 100755 app/static/fonts/Satoshi/Satoshi-Medium.otf mode change 100644 => 100755 app/static/fonts/Satoshi/Satoshi-Regular.otf mode change 100644 => 100755 app/static/images/banner.png mode change 100644 => 100755 app/static/images/favicon.ico mode change 100644 => 100755 app/static/images/logo.avif mode change 100644 => 100755 app/static/robots.txt mode change 100644 => 100755 app/static/sitemap.xml mode change 100644 => 100755 app/svelte.config.js mode change 100644 => 100755 app/tsconfig.json mode change 100644 => 100755 app/vite.config.ts diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml old mode 100644 new mode 100755 diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md old mode 100644 new mode 100755 diff --git a/.github/dependabot.yml b/.github/dependabot.yml old mode 100644 new mode 100755 diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/.vscode/extensions.json b/.vscode/extensions.json old mode 100644 new mode 100755 diff --git a/.vscode/settings.json b/.vscode/settings.json old mode 100644 new mode 100755 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/app/.gitignore b/app/.gitignore old mode 100644 new mode 100755 diff --git a/app/.prettierignore b/app/.prettierignore old mode 100644 new mode 100755 diff --git a/app/.prettierrc b/app/.prettierrc old mode 100644 new mode 100755 diff --git a/app/bun.lock b/app/bun.lock old mode 100644 new mode 100755 diff --git a/app/bunfig.toml b/app/bunfig.toml old mode 100644 new mode 100755 diff --git a/app/package.json b/app/package.json old mode 100644 new mode 100755 diff --git a/app/src/app.d.ts b/app/src/app.d.ts old mode 100644 new mode 100755 diff --git a/app/src/app.html b/app/src/app.html old mode 100644 new mode 100755 diff --git a/app/src/app.scss b/app/src/app.scss old mode 100644 new mode 100755 diff --git a/app/src/components/Badge.svelte b/app/src/components/Badge.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Banner.svelte b/app/src/components/Banner.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/ChatDisplay.svelte b/app/src/components/ChatDisplay.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/ChatMessage.svelte b/app/src/components/ChatMessage.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/ChatOverlay.svelte b/app/src/components/ChatOverlay.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Dialog.svelte b/app/src/components/Dialog.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Inputs/Button.svelte b/app/src/components/Inputs/Button.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Inputs/Checkbox.svelte b/app/src/components/Inputs/Checkbox.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Inputs/Color.svelte b/app/src/components/Inputs/Color.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Inputs/Dropdown.svelte b/app/src/components/Inputs/Dropdown.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Inputs/Input.svelte b/app/src/components/Inputs/Input.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Inputs/Segmented-control.svelte b/app/src/components/Inputs/Segmented-control.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Inputs/Selector.svelte b/app/src/components/Inputs/Selector.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Inputs/Toggle.svelte b/app/src/components/Inputs/Toggle.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Loading.svelte b/app/src/components/Loading.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/LoginButton.svelte b/app/src/components/LoginButton.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Main.svelte b/app/src/components/Main.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Main/Chat/Display.svelte b/app/src/components/Main/Chat/Display.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Main/Chat/Main.svelte b/app/src/components/Main/Chat/Main.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Main/Chat/Settings.svelte b/app/src/components/Main/Chat/Settings.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Main/Chat/SettingsColorPicker.svelte b/app/src/components/Main/Chat/SettingsColorPicker.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Main/GlobalSettings.svelte b/app/src/components/Main/GlobalSettings.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Main/Help/Main.svelte b/app/src/components/Main/Help/Main.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Main/MessageCreator/Main.svelte b/app/src/components/Main/MessageCreator/Main.svelte old mode 100644 new mode 100755 diff --git a/app/src/components/Main/Sidebar.svelte b/app/src/components/Main/Sidebar.svelte old mode 100644 new mode 100755 diff --git a/app/src/lib/assets/favicon.svg b/app/src/lib/assets/favicon.svg old mode 100644 new mode 100755 diff --git a/app/src/lib/assets/loading.avif b/app/src/lib/assets/loading.avif old mode 100644 new mode 100755 diff --git a/app/src/lib/badgeParser.ts b/app/src/lib/badgeParser.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/badges.ts b/app/src/lib/badges.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/chat.ts b/app/src/lib/chat.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/chatCommands.ts b/app/src/lib/chatCommands.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/cookie.ts b/app/src/lib/cookie.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/emoteParser.ts b/app/src/lib/emoteParser.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/emotes.ts b/app/src/lib/emotes.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/loadChat.ts b/app/src/lib/loadChat.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/overlayIndex.ts b/app/src/lib/overlayIndex.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/preview.ts b/app/src/lib/preview.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/services/7TV/GQL/cosmetics/multiple.gql b/app/src/lib/services/7TV/GQL/cosmetics/multiple.gql old mode 100644 new mode 100755 diff --git a/app/src/lib/services/7TV/GQL/cosmetics/single.gql b/app/src/lib/services/7TV/GQL/cosmetics/single.gql old mode 100644 new mode 100755 diff --git a/app/src/lib/services/7TV/cosmetics.ts b/app/src/lib/services/7TV/cosmetics.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/services/7TV/main.ts b/app/src/lib/services/7TV/main.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/services/7TV/websocket.ts b/app/src/lib/services/7TV/websocket.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/services/BTTV/main.ts b/app/src/lib/services/BTTV/main.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/services/BTTV/websocket.ts b/app/src/lib/services/BTTV/websocket.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/services/FFZ/main.ts b/app/src/lib/services/FFZ/main.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/services/index.ts b/app/src/lib/services/index.ts old mode 100644 new mode 100755 diff --git a/app/src/lib/services/twitch.ts b/app/src/lib/services/twitch.ts old mode 100644 new mode 100755 diff --git a/app/src/routes/+error.svelte b/app/src/routes/+error.svelte old mode 100644 new mode 100755 diff --git a/app/src/routes/+layout.svelte b/app/src/routes/+layout.svelte old mode 100644 new mode 100755 diff --git a/app/src/routes/+layout.ts b/app/src/routes/+layout.ts old mode 100644 new mode 100755 diff --git a/app/src/routes/+page.svelte b/app/src/routes/+page.svelte old mode 100644 new mode 100755 diff --git a/app/src/routes/auth/+page.svelte b/app/src/routes/auth/+page.svelte old mode 100644 new mode 100755 diff --git a/app/src/routes/convert/+page.svelte b/app/src/routes/convert/+page.svelte old mode 100644 new mode 100755 diff --git a/app/src/routes/design/+page.svelte b/app/src/routes/design/+page.svelte old mode 100644 new mode 100755 diff --git a/app/src/routes/teapot/+page.ts b/app/src/routes/teapot/+page.ts old mode 100644 new mode 100755 diff --git a/app/src/routes/teapot/[...code]/+page.ts b/app/src/routes/teapot/[...code]/+page.ts old mode 100644 new mode 100755 diff --git a/app/src/stores/convert/chatis.ts b/app/src/stores/convert/chatis.ts old mode 100644 new mode 100755 diff --git a/app/src/stores/cosmetics.ts b/app/src/stores/cosmetics.ts old mode 100644 new mode 100755 diff --git a/app/src/stores/faq.ts b/app/src/stores/faq.ts old mode 100644 new mode 100755 diff --git a/app/src/stores/global.ts b/app/src/stores/global.ts old mode 100644 new mode 100755 diff --git a/app/src/stores/previewMessages.ts b/app/src/stores/previewMessages.ts old mode 100644 new mode 100755 diff --git a/app/src/stores/settings.ts b/app/src/stores/settings.ts old mode 100644 new mode 100755 diff --git a/app/src/types/converter.d.ts b/app/src/types/converter.d.ts old mode 100644 new mode 100755 diff --git a/app/static/fonts/Geist/Geist-Black.otf b/app/static/fonts/Geist/Geist-Black.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Geist/Geist-Bold.otf b/app/static/fonts/Geist/Geist-Bold.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Geist/Geist-ExtraBold.otf b/app/static/fonts/Geist/Geist-ExtraBold.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Geist/Geist-ExtraLight.otf b/app/static/fonts/Geist/Geist-ExtraLight.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Geist/Geist-Light.otf b/app/static/fonts/Geist/Geist-Light.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Geist/Geist-Medium.otf b/app/static/fonts/Geist/Geist-Medium.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Geist/Geist-Regular.otf b/app/static/fonts/Geist/Geist-Regular.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Geist/Geist-SemiBold.otf b/app/static/fonts/Geist/Geist-SemiBold.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Geist/Geist-Thin.otf b/app/static/fonts/Geist/Geist-Thin.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Just-Sans/JUST-Sans-ExBold.otf b/app/static/fonts/Just-Sans/JUST-Sans-ExBold.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Just-Sans/JUST-Sans-Regular.otf b/app/static/fonts/Just-Sans/JUST-Sans-Regular.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Melody/BLMelody-Bold.otf b/app/static/fonts/Melody/BLMelody-Bold.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Melody/BLMelody-Book.otf b/app/static/fonts/Melody/BLMelody-Book.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Melody/BLMelody-ExtraLight.otf b/app/static/fonts/Melody/BLMelody-ExtraLight.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Melody/BLMelody-Light.otf b/app/static/fonts/Melody/BLMelody-Light.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Melody/BLMelody-Medium.otf b/app/static/fonts/Melody/BLMelody-Medium.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Now/Now-Black.otf b/app/static/fonts/Now/Now-Black.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Now/Now-Bold.otf b/app/static/fonts/Now/Now-Bold.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Now/Now-Light.otf b/app/static/fonts/Now/Now-Light.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Now/Now-Medium.otf b/app/static/fonts/Now/Now-Medium.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Now/Now-Regular.otf b/app/static/fonts/Now/Now-Regular.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Now/Now-Thin.otf b/app/static/fonts/Now/Now-Thin.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Satoshi/Satoshi-Black.otf b/app/static/fonts/Satoshi/Satoshi-Black.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Satoshi/Satoshi-Bold.otf b/app/static/fonts/Satoshi/Satoshi-Bold.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Satoshi/Satoshi-Light.otf b/app/static/fonts/Satoshi/Satoshi-Light.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Satoshi/Satoshi-Medium.otf b/app/static/fonts/Satoshi/Satoshi-Medium.otf old mode 100644 new mode 100755 diff --git a/app/static/fonts/Satoshi/Satoshi-Regular.otf b/app/static/fonts/Satoshi/Satoshi-Regular.otf old mode 100644 new mode 100755 diff --git a/app/static/images/banner.png b/app/static/images/banner.png old mode 100644 new mode 100755 diff --git a/app/static/images/favicon.ico b/app/static/images/favicon.ico old mode 100644 new mode 100755 diff --git a/app/static/images/logo.avif b/app/static/images/logo.avif old mode 100644 new mode 100755 diff --git a/app/static/robots.txt b/app/static/robots.txt old mode 100644 new mode 100755 diff --git a/app/static/sitemap.xml b/app/static/sitemap.xml old mode 100644 new mode 100755 diff --git a/app/svelte.config.js b/app/svelte.config.js old mode 100644 new mode 100755 diff --git a/app/tsconfig.json b/app/tsconfig.json old mode 100644 new mode 100755 diff --git a/app/vite.config.ts b/app/vite.config.ts old mode 100644 new mode 100755 From d01a314ebc3edb503dcec40a51f738bafce76d0d Mon Sep 17 00:00:00 2001 From: Killer Fish <61081555+Fiszh@users.noreply.github.com> Date: Mon, 22 Jun 2026 12:50:28 +0200 Subject: [PATCH 06/13] fix cursor --- app/src/components/Inputs/Input.svelte | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/components/Inputs/Input.svelte b/app/src/components/Inputs/Input.svelte index ca8f9f5..4a650aa 100755 --- a/app/src/components/Inputs/Input.svelte +++ b/app/src/components/Inputs/Input.svelte @@ -108,6 +108,7 @@ span { height: 1rem; aspect-ratio: 1; + cursor: unset; } input { From 2b4972e27f5d94383e9f70b3965a30c92580a901 Mon Sep 17 00:00:00 2001 From: Killer Fish <61081555+Fiszh@users.noreply.github.com> Date: Mon, 22 Jun 2026 21:02:25 +0200 Subject: [PATCH 07/13] Save 1. Change lucide to not outdated package 2. Add logos 3. Add more button types 4. Change everything to use variables 5. Added reset style --- app/bun.lock | 6 +- app/package.json | 2 +- app/src/components/Banner.svelte | 2 +- app/src/components/Dialog.svelte | 75 +++++++---- app/src/components/Inputs/Button.svelte | 123 ++++++++++++++++-- app/src/components/Inputs/Checkbox.svelte | 12 +- app/src/components/Inputs/Color.svelte | 3 +- app/src/components/Inputs/Dropdown.svelte | 59 +++------ app/src/components/Inputs/Input.svelte | 30 ++--- .../Inputs/Segmented-control.svelte | 26 ++-- app/src/components/Inputs/Selector.svelte | 6 +- app/src/components/Inputs/Toggle.svelte | 17 +-- app/src/components/LoginButton.svelte | 2 +- app/src/components/Main.svelte | 5 +- app/src/components/Main/Chat/Display.svelte | 2 +- app/src/components/Main/Chat/Main.svelte | 2 +- app/src/components/Main/Chat/Settings.svelte | 2 +- .../Main/Chat/SettingsColorPicker.svelte | 2 +- app/src/components/Main/Help/Main.svelte | 2 +- .../Main/MessageCreator/Main.svelte | 2 +- app/src/components/Main/Sidebar.svelte | 45 ++++--- app/src/components/logos/github.svelte | 18 +++ app/src/components/logos/kick.svelte | 18 +++ app/src/components/logos/twitch.svelte | 23 ++++ app/src/components/logos/youtube.svelte | 19 +++ app/src/lib/fonts.ts | 35 +++++ app/src/routes/+error.svelte | 2 +- app/src/routes/+layout.svelte | 6 +- app/src/routes/auth/+page.svelte | 2 +- app/src/routes/design/+page.svelte | 96 ++++++++++++-- app/src/routes/design/fonts/+page.svelte | 27 ++++ app/src/{ => styles}/app.scss | 27 +++- app/src/styles/reset.css | 70 ++++++++++ app/src/styles/variables.scss | 41 ++++++ app/svelte.config.js | 2 +- 35 files changed, 631 insertions(+), 180 deletions(-) mode change 100755 => 100644 app/bun.lock create mode 100644 app/src/components/logos/github.svelte create mode 100644 app/src/components/logos/kick.svelte create mode 100644 app/src/components/logos/twitch.svelte create mode 100644 app/src/components/logos/youtube.svelte create mode 100644 app/src/lib/fonts.ts create mode 100644 app/src/routes/design/fonts/+page.svelte rename app/src/{ => styles}/app.scss (92%) create mode 100644 app/src/styles/reset.css create mode 100644 app/src/styles/variables.scss diff --git a/app/bun.lock b/app/bun.lock old mode 100755 new mode 100644 index 4697429..55387b0 --- a/app/bun.lock +++ b/app/bun.lock @@ -5,8 +5,8 @@ "": { "name": "uchat", "dependencies": { + "@lucide/svelte": "^1.18.0", "html-to-image": "^1.11.13", - "lucide-svelte": "^0.577.0", "svelte-awesome-color-picker": "^4.1.1", "tinycolor2": "^1.6.0", "twemoji": "^14.0.2", @@ -48,6 +48,8 @@ "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + "@lucide/svelte": ["@lucide/svelte@1.18.0", "", { "peerDependencies": { "svelte": "^5" } }, "sha512-S1cjiJflMLIirDZtZ8ou2Vy0xMrOqEQzYzDo29AUxoJiOjUfMHUeClvprJsGUEr60RYDJzEgkjSkWm1nlN9iyQ=="], + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.4", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow=="], "@oxc-project/types": ["@oxc-project/types@0.128.0", "", {}, "sha512-huv1Y/LzBJkBVHt3OlC7u0zHBW9qXf1FdD7sGmc1rXc2P1mTwHssYv7jyGx5KAACSCH+9B3Bhn6Z9luHRvf7pQ=="], @@ -216,8 +218,6 @@ "locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="], - "lucide-svelte": ["lucide-svelte@0.577.0", "", { "peerDependencies": { "svelte": "^3 || ^4 || ^5.0.0-next.42" } }, "sha512-0i88o57KsaHWnc80J57fY99CWzlZsSdtH5kKjLUJa7z8dum/9/AbINNLzJ7NiRFUdOgMnfAmJt8jFbW2zeC5qQ=="], - "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], "moment": ["moment@2.30.1", "", {}, "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="], diff --git a/app/package.json b/app/package.json index 2e1551a..123dd40 100755 --- a/app/package.json +++ b/app/package.json @@ -31,8 +31,8 @@ "vite": "^8.0.0" }, "dependencies": { + "@lucide/svelte": "^1.18.0", "html-to-image": "^1.11.13", - "lucide-svelte": "^0.577.0", "svelte-awesome-color-picker": "^4.1.1", "tinycolor2": "^1.6.0", "twemoji": "^14.0.2" diff --git a/app/src/components/Banner.svelte b/app/src/components/Banner.svelte index 0bd4793..782da6b 100755 --- a/app/src/components/Banner.svelte +++ b/app/src/components/Banner.svelte @@ -5,7 +5,7 @@ CloudAlert, ServerOff, Wrench, - } from "lucide-svelte"; + } from "@lucide/svelte"; const { type = "fail", diff --git a/app/src/components/Dialog.svelte b/app/src/components/Dialog.svelte index 04780b8..5c10b9f 100755 --- a/app/src/components/Dialog.svelte +++ b/app/src/components/Dialog.svelte @@ -1,16 +1,32 @@ {#if show}
-

{name}

- - {@render children()} + +

{name}

+ +
+
+
{@render children()}
+ {#if typeof buttons != "undefined"} +
+
{@render buttons()}
+ {/if}
{/if} @@ -20,7 +36,7 @@ position: absolute; width: 100%; height: 100%; - background-color: rgba(0, 0, 0, 0.25); + background-color: rgba(0, 0, 0, 0.5); z-index: 999; } @@ -30,46 +46,53 @@ left: 50%; transform: translate(-50%, -50%); z-index: 100000; - background-color: rgb(17, 17, 17); + background-color: #0a0a0a; + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.5); + + // overflow: hidden; display: flex; flex-direction: column; - - gap: 0.7rem; - max-width: 30rem; max-height: 25rem; - padding: 0.4rem 0.7rem; + border-radius: 1rem; - border-radius: 0.5rem; + & > *:not(hr) { + padding: 0.75rem; + // outline: 1px red solid; + } - h3 { + #header { margin: 0; - display: flex; + display: inline-flex; + align-items: center; justify-content: space-between; user-select: none; - padding-bottom: 0.2rem; - - border-bottom: 1px #242424 solid; + } - button { - background: none; - border: none; - cursor: pointer; + #buttons { + display: inline-flex; + justify-content: space-between; - color: white; + padding-block: 0.5rem; - &:hover { - color: rgba(255, 255, 255, 0.75); - } + & > :global(*) { + display: inline-flex; + gap: 0.5rem; } } } @media (max-width: 768px) { .dialog { - width: 80%; + max-width: unset; + max-height: unset; + + border-radius: unset; + + width: 100%; + height: 100%; } } diff --git a/app/src/components/Inputs/Button.svelte b/app/src/components/Inputs/Button.svelte index 4bd8d4f..be08447 100755 --- a/app/src/components/Inputs/Button.svelte +++ b/app/src/components/Inputs/Button.svelte @@ -9,21 +9,57 @@ href?: string | null; icon?: Snippet; iconRight?: Snippet; + element?: HTMLElement; + disabled?: boolean; + secondary?: boolean; + ghost?: boolean; + danger?: boolean; + approve?: boolean; children?: Snippet; } & HTMLButtonAttributes & HTMLAnchorAttributes; - const { href, icon, iconRight, children, ...restProps }: Props = $props(); + let { + href, + icon, + iconRight, + element = $bindable(), + disabled = false, + secondary = false, + ghost = false, + danger = false, + approve = false, + children, + ...restProps + }: Props = $props(); {#if href} - + {@render icon?.()} {@render children?.()} {@render iconRight?.()} {:else} - +
+ + +
+{/snippet} + + +
+

Lorem ipsum

+ + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore + +
+
+

UChat Design Page

@@ -31,17 +55,60 @@ {/snippet} + {#snippet logoTwitch(chosen: boolean)} + + {/snippet} + {#snippet logoKick(chosen: boolean)} + + {/snippet} + {#snippet logoYouTube(chosen: boolean)} + + {/snippet} + {#snippet dropdown()} - - - + + + {/snippet}
-

Buttons

+

Buttons Primary

+ +
+ +
+

Buttons Secondary

+ + + + +
+ +
+

Buttons Ghost

+ + + + +
+ +
+

Buttons Danger

+ + + + +
+ +
+

Buttons Approve

+ + + +
@@ -84,10 +151,14 @@

Segment Control

@@ -96,6 +167,11 @@

Selector

+ +
+

Dialog

+ +
+ {/if} + diff --git a/app/src/components/Main/Chat/Display.svelte b/app/src/components/Main/Chat/Display.svelte index 67b4615..d62a56b 100755 --- a/app/src/components/Main/Chat/Display.svelte +++ b/app/src/components/Main/Chat/Display.svelte @@ -14,20 +14,29 @@ settingsParams, } from "$stores/settings"; - import { icon_size } from "$stores/global"; import { previewMessages } from "$stores/previewMessages"; import { sendFakeMessage } from "$lib/preview"; + import Button from "$components/Inputs/Button.svelte"; + import Input from "$components/Inputs/Input.svelte"; + import Color from "$components/Inputs/Color.svelte"; + + let hex = $state("#191919"); + let customMessageValue = $state(""); + + const params = $derived( + new URLSearchParams( + Object.entries($settingsParams).map(([k, v]) => [ + k, + String(typeof v == "boolean" ? Number(v) : v), + ]), + ), + ); - let hex = "#191919"; - let urlResults: HTMLElement | undefined = undefined; - - let customMessageInput: HTMLInputElement; - - $: params = new URLSearchParams( - Object.entries($settingsParams).map(([k, v]) => [ - k, - String(typeof v == "boolean" ? Number(v) : v), - ]), + let urlResults: string = $derived( + window.location.origin + + "/" + + (params.toString().length ? "?" : "") + + params, ); const resetSettings = () => { @@ -45,10 +54,10 @@ }; function copyUrl() { - if (urlResults && urlResults.textContent) { + if (urlResults) { if ($settingsParams["channel"] || $settingsParams["id"]) { navigator.clipboard - .writeText(urlResults.textContent) + .writeText(urlResults) .then(() => { alert("Overlay URL has been copied!"); }) @@ -62,9 +71,9 @@ } function addMessage() { - if (!customMessageInput) return; + if (!customMessageValue.trim().length) return; - const message = sanitizeInput(customMessageInput.value); + const message = sanitizeInput(customMessageValue); if (!message.length) return; @@ -73,62 +82,63 @@
-

- Chat Preview +

+

Chat Preview

Live preview of your settings -

+
-
- Chat Preview Settings -
-
+ + {#snippet icon()} + + {/snippet} + +

Chat Preview Settings

+ + +
+
Chat Background +
- -

{hex}

+
-
-
+
+
Custom Message
- + {/snippet} + + - + +
-
-
+ +
Overlay URL
-

- {window.location.origin}/{params.toString().length - ? "?" - : ""}{params} -

- + {#snippet icon()} + + {/snippet} + + +
-
+ We log IP addresses for abuse prevention. @@ -171,7 +181,7 @@ background-color: var(--chat-background); } - & > p { + #top { background-color: rgba(0, 0, 0, 0.5); border-bottom: #242424 1px solid; @@ -181,112 +191,44 @@ padding: 1rem; box-sizing: border-box; - - span { - font-weight: bold; - } } .note { text-align: center; - gap: 0.3rem; } #bottom { - padding: 0.7rem 1rem; - box-sizing: border-box; + display: flex; + flex-direction: column; border-top: #242424 1px solid; bottom: 0; & > * { - border-bottom: 1px solid; - border-image: linear-gradient( - to right, - #33333300 2.5%, - #161616 10%, - #161616 90%, - #33333300 97.5% - ) - 1; - } - - & > *:last-child { - border-bottom: 0; - } - - .header { - display: flex; - justify-content: space-between; - align-items: center; - padding-bottom: 0.7rem; + padding: 0.7rem 1rem; box-sizing: border-box; - - button { - all: unset; - cursor: pointer; - transition: all 0.2s ease-in-out; - display: flex; - align-items: center; - - &:hover { - transform: rotate(-30deg); - } - } - } - - small { - color: rgb(156, 156, 156); } - .display { + section { display: flex; - align-items: center; - gap: 0.5rem; - - padding-bottom: 1rem; - padding-top: 0.4rem; - box-sizing: border-box; + flex-direction: column; + gap: 0.25rem; + width: 100%; - .bottom-input { - margin: 0; - background-color: rgba(255, 255, 255, 0.075); - border: #333 1px solid; + .display { + display: inline-flex; + gap: 0.25rem; width: 100%; - padding: 0.5rem 0.7rem; - box-sizing: border-box; - border-radius: 0.5rem; - gap: 1px; - font-size: 1.15rem; - color: white; - } - } - - #overlay-url { - #url-results { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } } - .bottom-button { - $border: #333; - - all: unset; - align-items: center; + .header { display: flex; - gap: 0.3rem; - border: $border 1px solid; - padding: 0.5rem 0.7rem; + justify-content: space-between; + align-items: center; + padding-bottom: 0.7rem; box-sizing: border-box; - border-radius: 0.7rem; - cursor: pointer; - - &:hover { - border-color: color.adjust($border, $lightness: 15%); - } } } } @@ -302,10 +244,6 @@ height: 100%; width: 100dvw; - - #bottom .display .bottom-input { - font-size: 0.7rem; - } } } diff --git a/app/src/components/Main/Chat/Settings.svelte b/app/src/components/Main/Chat/Settings.svelte index cdeac88..dded322 100755 --- a/app/src/components/Main/Chat/Settings.svelte +++ b/app/src/components/Main/Chat/Settings.svelte @@ -14,6 +14,10 @@ } from "$stores/settings"; import { CircleQuestionMark } from "@lucide/svelte"; import { isMobile } from "$stores/global"; + import Button from "$components/Inputs/Button.svelte"; + import SettingsToggle from "$components/settings/Settings-toggle.svelte"; + import SettingsText from "$components/settings/Settings-text.svelte"; + import SettingsColor from "$components/settings/Settings-color.svelte"; export let dispayChannelInput: boolean = true; @@ -160,57 +164,50 @@
{#each $settings as setting, i (i)} {#if !setting.hide || (setting.hide && showHidden)} -
- {#if typeof setting["previewReact"] != "undefined" && !setting["previewReact"] && $isMobile} -

- This setting does not effect the chat preview. -

- {/if} -

- {#if setting.hide} - (Hidden) - {/if} - {@html setting.name} - - {#if typeof setting["previewReact"] != "undefined" && !setting["previewReact"] && !$isMobile} - - - - {/if} -

- - {#if setting.type == "boolean"} - {@render booleanSetting( - setting.param, - setting.default as boolean, - setting.value as boolean, - )} - {:else if setting.type == "number" || setting.type == "text"} - {@render textSetting( - setting.param, - setting.default as number, - setting.value as number, - )} - {:else if setting.type == "color-picker"} - {@render colorPickerSetting( - setting.param, - setting.value, - )} - {:else} - {(setting as any).type} - {@html "is a unknown type"} - {/if} -
+ {#if setting.type == "boolean"} + + handleInput(setting.param, checked)} + /> + {:else if setting.type == "text" || setting.type == "number"} + + handleInput( + setting.param, + value, + typeof setting["default"], + )} + /> + {:else if setting.type == "color-picker"} + + handleInput(setting.param, value, "color-picker")} + /> + {/if} + +
{/if} {/each} {#if !showHidden} - + Show hidden settings + {/if}
{#if dispayChannelInput} diff --git a/app/src/components/Main/GlobalSettings.svelte b/app/src/components/Main/GlobalSettings.svelte index da39d0d..e16caeb 100755 --- a/app/src/components/Main/GlobalSettings.svelte +++ b/app/src/components/Main/GlobalSettings.svelte @@ -1,17 +1,20 @@ -

{user.name} Settings

+

{name} Settings

- - + +
- diff --git a/app/src/components/Main/MessageCreator/Main.svelte b/app/src/components/Main/MessageCreator/Main.svelte index e33afc8..27afb3e 100755 --- a/app/src/components/Main/MessageCreator/Main.svelte +++ b/app/src/components/Main/MessageCreator/Main.svelte @@ -13,6 +13,8 @@ import { getBadges } from "$lib/preview"; import SevenTV_main from "$lib/services/7TV/main"; + import Button from "$components/Inputs/Button.svelte"; + import Input from "$components/Inputs/Input.svelte"; let messageDisplay: HTMLElement; @@ -106,7 +108,7 @@
-

UChat Message Creator

+

UChat Message Creator

@@ -115,45 +117,49 @@
+ /> + + /> + + /> +
- + {/snippet} + {#snippet DownloadIcon()} + + {/snippet} + + + -
diff --git a/app/src/components/Main/Sidebar.svelte b/app/src/components/Main/Sidebar.svelte index 1b91b31..565a633 100755 --- a/app/src/components/Main/Sidebar.svelte +++ b/app/src/components/Main/Sidebar.svelte @@ -96,6 +96,25 @@ moment.locale(navigator.language); +{#snippet HouseIcon()} + +{/snippet} +{#snippet MessageSquareMoreIcon()} + +{/snippet} +{#snippet ArrowLeftRightIcon()} + +{/snippet} +{#snippet InfoIcon()} + +{/snippet} +{#snippet GithubIcon()} + +{/snippet} +{#snippet CoffeeIcon()} + +{/snippet} +