From 93abba044a647b8619512f9b6c0ff959e74bea7f Mon Sep 17 00:00:00 2001 From: RevIQ Date: Sat, 10 Jan 2026 15:56:51 +0800 Subject: [PATCH 1/2] Add root test script using Turborepo Co-Authored-By: Claude Opus 4.5 --- package.json | 1 + turbo.json | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/package.json b/package.json index c2f32e2..740d31d 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "lint:fix": "biome check --write --unsafe && turbo run lint -- --fix", "typecheck": "turbo typecheck", "clean": "turbo clean", + "test": "turbo test", "db:codegen": "bun run --cwd packages/db-schema generate" }, "devDependencies": { diff --git a/turbo.json b/turbo.json index 9e0a980..4e37ec2 100644 --- a/turbo.json +++ b/turbo.json @@ -29,6 +29,11 @@ "dependsOn": ["^build"], "inputs": ["src/**/*.ts", "src/**/*.test.ts"], "cache": false + }, + "test": { + "dependsOn": ["^build"], + "inputs": ["src/**/*.ts", "src/**/*.test.ts"], + "cache": false } } } From f394b8002857d371cfaabe5cd45627e9453c3ec0 Mon Sep 17 00:00:00 2001 From: RevIQ Date: Sat, 10 Jan 2026 16:07:32 +0800 Subject: [PATCH 2/2] Add PhoneNumberInput component with libphonenumber-js formatting Uses AsYouType for real-time phone number formatting as user types. Implements digit-based cursor positioning to handle formatting changes without cursor jumping. Co-Authored-By: Claude Opus 4.5 --- .../components/ui/phone-number-input/index.ts | 7 ++ .../phone-number-input.svelte | 111 ++++++++++++++++++ .../src/routes/account/+page.svelte | 4 +- 3 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 apps/publisher-dashboard/src/lib/components/ui/phone-number-input/index.ts create mode 100644 apps/publisher-dashboard/src/lib/components/ui/phone-number-input/phone-number-input.svelte diff --git a/apps/publisher-dashboard/src/lib/components/ui/phone-number-input/index.ts b/apps/publisher-dashboard/src/lib/components/ui/phone-number-input/index.ts new file mode 100644 index 0000000..2de5dd2 --- /dev/null +++ b/apps/publisher-dashboard/src/lib/components/ui/phone-number-input/index.ts @@ -0,0 +1,7 @@ +import Root from "./phone-number-input.svelte"; + +export { + Root, + // + Root as PhoneNumberInput, +}; diff --git a/apps/publisher-dashboard/src/lib/components/ui/phone-number-input/phone-number-input.svelte b/apps/publisher-dashboard/src/lib/components/ui/phone-number-input/phone-number-input.svelte new file mode 100644 index 0000000..661d7f9 --- /dev/null +++ b/apps/publisher-dashboard/src/lib/components/ui/phone-number-input/phone-number-input.svelte @@ -0,0 +1,111 @@ + + + diff --git a/apps/publisher-dashboard/src/routes/account/+page.svelte b/apps/publisher-dashboard/src/routes/account/+page.svelte index bf721f2..a4e5c89 100644 --- a/apps/publisher-dashboard/src/routes/account/+page.svelte +++ b/apps/publisher-dashboard/src/routes/account/+page.svelte @@ -16,6 +16,7 @@ import { } from "$lib/components/ui/card"; import { Input } from "$lib/components/ui/input"; import { Label } from "$lib/components/ui/label"; +import { PhoneNumberInput } from "$lib/components/ui/phone-number-input"; import { LoadingButton } from "$lib/components/ui/loading-button"; import { Separator } from "$lib/components/ui/separator"; import { cn } from "$lib/utils"; @@ -224,9 +225,8 @@ function getInitials(name: string | null | undefined): string {
-