From bd56146571748bb8e6cea14fe292a8e0be6ca5c1 Mon Sep 17 00:00:00 2001 From: Shkelqim Osmani Date: Sun, 14 Dec 2025 21:16:18 +0100 Subject: [PATCH 1/3] feat: Clean implementation of Avatar Component migration (#118) --- package.json | 3 ++ pnpm-lock.yaml | 78 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 80 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 72f30105..d7a526df 100644 --- a/package.json +++ b/package.json @@ -11,5 +11,8 @@ "license": "ISC", "engines": { "node": "~24" + }, + "devDependencies": { + "@moonrepo/cli": "^1.41.7" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7d1431b7..a9723b0e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,7 +6,11 @@ settings: importers: - .: {} + .: + devDependencies: + '@moonrepo/cli': + specifier: ^1.41.7 + version: 1.41.7 apps/frontend: dependencies: @@ -589,6 +593,45 @@ packages: '@lix-js/server-protocol-schema@0.1.1': resolution: {integrity: sha512-jBeALB6prAbtr5q4vTuxnRZZv1M2rKe8iNqRQhFJ4Tv7150unEa0vKyz0hs8Gl3fUGsWaNJBh3J8++fpbrpRBQ==} + '@moonrepo/cli@1.41.7': + resolution: {integrity: sha512-zZdE/2m/V/33B3DZOhsuNwRPme+WZiEpggcK6N2og6FCezD/4AxNjc9uZNPBAj2qaDFl3Q+bgtfrHBjdKy4ilg==} + hasBin: true + + '@moonrepo/core-linux-arm64-gnu@1.41.7': + resolution: {integrity: sha512-Opa+jmNLYsHMRlJcmIn78kKY+76CT/93BvynxuMICPfaQqJTAR/5WPGre1omehGlkg5rbiVshsNTiaa+2bHzpA==} + cpu: [arm64] + os: [linux] + + '@moonrepo/core-linux-arm64-musl@1.41.7': + resolution: {integrity: sha512-0ipCRwg75iFWfsjxIYY9IAm/cMoUy9iUk/qs2+JhruFeDrY6tCdV9Nyo8F2h45WC+/2qwZ7IMEdfWNPJT0TSyA==} + cpu: [arm64] + os: [linux] + + '@moonrepo/core-linux-x64-gnu@1.41.7': + resolution: {integrity: sha512-iHLaZF0ryKhFTf5G/dFrQHPEFII9p88pXXUl17U9tjfeziFyksbdkQrZhNv6sfbE0bDJGPA3H5TEMR93ZwXo/A==} + cpu: [x64] + os: [linux] + + '@moonrepo/core-linux-x64-musl@1.41.7': + resolution: {integrity: sha512-0nZMjOBBSGHNUSIGcCBrfxgKVmeZQjmXpeMVfO3YG9e2irFR2neHbNIud6vLapC+StgV2UbrKoExR+HRtoyzuA==} + cpu: [x64] + os: [linux] + + '@moonrepo/core-macos-arm64@1.41.7': + resolution: {integrity: sha512-Z6okifZS8MA6aXFQ1q/Ej45aAq6i2riDgqWB9CmBVqV7JIdJMLP4++ir+FqGu9S0G34SFgspV0g+mrfFgR+/Nw==} + cpu: [arm64] + os: [darwin] + + '@moonrepo/core-macos-x64@1.41.7': + resolution: {integrity: sha512-mOHO4/Ag331oVAxg1QNfaWCNfrKdy6HsUJXNY11ERvpNsi0Fh+qnZ+if3ZiC9jwUdwjw2MvtCRxrlXgtI/shrQ==} + cpu: [x64] + os: [darwin] + + '@moonrepo/core-windows-x64-msvc@1.41.7': + resolution: {integrity: sha512-p7CiKyWh4j1lhdF81vcacQmgPLV/di3nU5QXjg1lL2mF296HMx4H8sOlcxD/RieGfFW0Qfg5zIreugCHCNUCeA==} + cpu: [x64] + os: [win32] + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -3808,6 +3851,39 @@ snapshots: '@lix-js/server-protocol-schema@0.1.1': {} + '@moonrepo/cli@1.41.7': + dependencies: + detect-libc: 2.0.4 + optionalDependencies: + '@moonrepo/core-linux-arm64-gnu': 1.41.7 + '@moonrepo/core-linux-arm64-musl': 1.41.7 + '@moonrepo/core-linux-x64-gnu': 1.41.7 + '@moonrepo/core-linux-x64-musl': 1.41.7 + '@moonrepo/core-macos-arm64': 1.41.7 + '@moonrepo/core-macos-x64': 1.41.7 + '@moonrepo/core-windows-x64-msvc': 1.41.7 + + '@moonrepo/core-linux-arm64-gnu@1.41.7': + optional: true + + '@moonrepo/core-linux-arm64-musl@1.41.7': + optional: true + + '@moonrepo/core-linux-x64-gnu@1.41.7': + optional: true + + '@moonrepo/core-linux-x64-musl@1.41.7': + optional: true + + '@moonrepo/core-macos-arm64@1.41.7': + optional: true + + '@moonrepo/core-macos-x64@1.41.7': + optional: true + + '@moonrepo/core-windows-x64-msvc@1.41.7': + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 From c3d0db6ac671449075a3018b7f06ef84ed1c6097 Mon Sep 17 00:00:00 2001 From: Dhruv Date: Fri, 21 Nov 2025 22:30:55 +0530 Subject: [PATCH 2/3] Init Shadcn ui components --- apps/frontend/components.json | 16 ++++++++++++++++ apps/frontend/package.json | 5 +++++ apps/frontend/src/lib/utils.ts | 13 +++++++++++++ pnpm-lock.yaml | 29 +++++++++++++++++++++++++++++ 4 files changed, 63 insertions(+) create mode 100644 apps/frontend/components.json create mode 100644 apps/frontend/src/lib/utils.ts diff --git a/apps/frontend/components.json b/apps/frontend/components.json new file mode 100644 index 00000000..f2c98482 --- /dev/null +++ b/apps/frontend/components.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://shadcn-svelte.com/schema.json", + "tailwind": { + "css": "src/app.css", + "baseColor": "gray" + }, + "aliases": { + "components": "$lib/components", + "utils": "$lib/utils", + "ui": "$lib/components/ui", + "hooks": "$lib/hooks", + "lib": "$lib" + }, + "typescript": true, + "registry": "https://shadcn-svelte.com/registry" +} diff --git a/apps/frontend/package.json b/apps/frontend/package.json index 25f73c67..b9446c7b 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -24,6 +24,7 @@ "@inlang/paraglide-js": "^2.2.0", "@langchain/core": "^0.3.78", "@langchain/langgraph-sdk": "^0.1.9", + "@lucide/svelte": "^0.554.0", "@playwright/test": "^1.49.1", "@sveltejs/adapter-node": "^5.2.12", "@sveltejs/kit": "^2.16.0", @@ -34,6 +35,7 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/svelte": "^5.2.4", "@vitest/coverage-v8": "^3.2.4", + "clsx": "^2.1.1", "eslint": "^9.18.0", "eslint-config-prettier": "^10.0.1", "eslint-plugin-svelte": "^3.0.0", @@ -49,7 +51,10 @@ "svelte": "^5.0.0", "svelte-check": "^4.0.0", "svelte-exmarkdown": "^5.0.1", + "tailwind-merge": "^3.3.1", + "tailwind-variants": "^3.1.1", "tailwindcss": "^4.0.0", + "tw-animate-css": "^1.4.0", "typescript": "^5.0.0", "typescript-eslint": "^8.20.0", "vite": "^6.2.6", diff --git a/apps/frontend/src/lib/utils.ts b/apps/frontend/src/lib/utils.ts new file mode 100644 index 00000000..55b3a918 --- /dev/null +++ b/apps/frontend/src/lib/utils.ts @@ -0,0 +1,13 @@ +import { clsx, type ClassValue } from "clsx"; +import { twMerge } from "tailwind-merge"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export type WithoutChild = T extends { child?: any } ? Omit : T; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export type WithoutChildren = T extends { children?: any } ? Omit : T; +export type WithoutChildrenOrChild = WithoutChildren>; +export type WithElementRef = T & { ref?: U | null }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a9723b0e..902aa787 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,6 +42,9 @@ importers: '@langchain/langgraph-sdk': specifier: ^0.1.9 version: 0.1.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))) + '@lucide/svelte': + specifier: ^0.554.0 + version: 0.554.0(svelte@5.36.14) '@playwright/test': specifier: ^1.49.1 version: 1.54.1 @@ -72,6 +75,9 @@ importers: '@vitest/coverage-v8': specifier: ^3.2.4 version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.1.0)(jiti@2.5.0)(jsdom@26.1.0)(lightningcss@1.30.1)) + clsx: + specifier: ^2.1.1 + version: 2.1.1 eslint: specifier: ^9.18.0 version: 9.31.0(jiti@2.5.0) @@ -117,9 +123,18 @@ importers: svelte-exmarkdown: specifier: ^5.0.1 version: 5.0.1(svelte@5.36.14) + tailwind-merge: + specifier: ^3.3.1 + version: 3.3.1 + tailwind-variants: + specifier: ^3.1.1 + version: 3.1.1(tailwind-merge@3.3.1)(tailwindcss@4.1.11) tailwindcss: specifier: ^4.0.0 version: 4.1.11 + tw-animate-css: + specifier: ^1.4.0 + version: 1.4.0 typescript: specifier: ^5.0.0 version: 5.8.3 @@ -593,6 +608,11 @@ packages: '@lix-js/server-protocol-schema@0.1.1': resolution: {integrity: sha512-jBeALB6prAbtr5q4vTuxnRZZv1M2rKe8iNqRQhFJ4Tv7150unEa0vKyz0hs8Gl3fUGsWaNJBh3J8++fpbrpRBQ==} + '@lucide/svelte@0.554.0': + resolution: {integrity: sha512-CM6wLEH8uk3WBpC42t8R0hF7SlQrsYEL6qGuXdB99xKZwKglpWmX5XgYu7FIYOCBYOyC1rm4dNhIe6uF9pOXqw==} + peerDependencies: + svelte: ^5 + '@moonrepo/cli@1.41.7': resolution: {integrity: sha512-zZdE/2m/V/33B3DZOhsuNwRPme+WZiEpggcK6N2og6FCezD/4AxNjc9uZNPBAj2qaDFl3Q+bgtfrHBjdKy4ilg==} hasBin: true @@ -3169,6 +3189,9 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tw-animate-css@1.4.0: + resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -3851,6 +3874,10 @@ snapshots: '@lix-js/server-protocol-schema@0.1.1': {} + '@lucide/svelte@0.554.0(svelte@5.36.14)': + dependencies: + svelte: 5.36.14 + '@moonrepo/cli@1.41.7': dependencies: detect-libc: 2.0.4 @@ -6627,6 +6654,8 @@ snapshots: tslib@2.8.1: {} + tw-animate-css@1.4.0: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 From ebf3c1f0ac3f33231b64bb642149d285ae494087 Mon Sep 17 00:00:00 2001 From: Dhruv Date: Fri, 21 Nov 2025 22:31:52 +0530 Subject: [PATCH 3/3] formatting d'oh ! --- apps/frontend/src/lib/utils.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/frontend/src/lib/utils.ts b/apps/frontend/src/lib/utils.ts index 55b3a918..f92bfcbb 100644 --- a/apps/frontend/src/lib/utils.ts +++ b/apps/frontend/src/lib/utils.ts @@ -1,13 +1,13 @@ -import { clsx, type ClassValue } from "clsx"; -import { twMerge } from "tailwind-merge"; +import { clsx, type ClassValue } from 'clsx'; +import { twMerge } from 'tailwind-merge'; export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } // eslint-disable-next-line @typescript-eslint/no-explicit-any -export type WithoutChild = T extends { child?: any } ? Omit : T; +export type WithoutChild = T extends { child?: any } ? Omit : T; // eslint-disable-next-line @typescript-eslint/no-explicit-any -export type WithoutChildren = T extends { children?: any } ? Omit : T; +export type WithoutChildren = T extends { children?: any } ? Omit : T; export type WithoutChildrenOrChild = WithoutChildren>; export type WithElementRef = T & { ref?: U | null };