From f631195f8a5ce5a390db14b7fc06e2189db3d7d6 Mon Sep 17 00:00:00 2001 From: Maximilian Liebmann Date: Sun, 11 May 2025 01:43:00 +0200 Subject: [PATCH 1/8] feat: add Tabs component with Radix UI integration --- src/app/settings/page.tsx | 10 ++++ src/components/ui/tabs.tsx | 66 +++++++++++++++++++++++++ src/components/user/redirect-button.tsx | 16 ++++++ 3 files changed, 92 insertions(+) create mode 100644 src/app/settings/page.tsx create mode 100644 src/components/ui/tabs.tsx create mode 100644 src/components/user/redirect-button.tsx diff --git a/src/app/settings/page.tsx b/src/app/settings/page.tsx new file mode 100644 index 0000000..8d31232 --- /dev/null +++ b/src/app/settings/page.tsx @@ -0,0 +1,10 @@ +import { RedirectButton } from '@/components/user/redirect-button'; + +export default function Home() { + return ( +
+

Settings

+ +
+ ); +} diff --git a/src/components/ui/tabs.tsx b/src/components/ui/tabs.tsx new file mode 100644 index 0000000..497ba5e --- /dev/null +++ b/src/components/ui/tabs.tsx @@ -0,0 +1,66 @@ +"use client" + +import * as React from "react" +import * as TabsPrimitive from "@radix-ui/react-tabs" + +import { cn } from "@/lib/utils" + +function Tabs({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function TabsList({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function TabsTrigger({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function TabsContent({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +export { Tabs, TabsList, TabsTrigger, TabsContent } diff --git a/src/components/user/redirect-button.tsx b/src/components/user/redirect-button.tsx new file mode 100644 index 0000000..c4bf997 --- /dev/null +++ b/src/components/user/redirect-button.tsx @@ -0,0 +1,16 @@ +import { Button } from '../ui/button'; +import Link from 'next/link'; + +export function RedirectButton({ + redirectUrl, + buttonText, +}: { + redirectUrl: string; + buttonText: string; +}) { + return ( + + + + ); +} -- 2.47.2 From 033801d596a61f8a0b06978feb2df9c75a6906db Mon Sep 17 00:00:00 2001 From: Maximilian Liebmann Date: Sun, 11 May 2025 01:43:18 +0200 Subject: [PATCH 2/8] feat: add Radix UI Tabs component and update dependencies --- package.json | 1 + src/app/home/page.tsx | 2 ++ yarn.lock | 27 +++++++++++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/package.json b/package.json index aadf5c9..797091b 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "@radix-ui/react-hover-card": "^1.1.13", "@radix-ui/react-label": "^2.1.6", "@radix-ui/react-slot": "^1.2.2", + "@radix-ui/react-tabs": "^1.1.11", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^0.509.0", diff --git a/src/app/home/page.tsx b/src/app/home/page.tsx index 4ef0cd4..c61abdd 100644 --- a/src/app/home/page.tsx +++ b/src/app/home/page.tsx @@ -1,4 +1,5 @@ import { Logout } from '@/components/user/sso-logout-button'; +import { RedirectButton } from '@/components/user/redirect-button'; import { ThemePicker } from '@/components/user/theme-picker'; export default function Home() { @@ -8,6 +9,7 @@ export default function Home() {

Home

+
); diff --git a/yarn.lock b/yarn.lock index 1d6757f..1835d49 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1335,6 +1335,32 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-tabs@npm:^1.1.11": + version: 1.1.11 + resolution: "@radix-ui/react-tabs@npm:1.1.11" + dependencies: + "@radix-ui/primitive": "npm:1.1.2" + "@radix-ui/react-context": "npm:1.1.2" + "@radix-ui/react-direction": "npm:1.1.1" + "@radix-ui/react-id": "npm:1.1.1" + "@radix-ui/react-presence": "npm:1.1.4" + "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-roving-focus": "npm:1.1.9" + "@radix-ui/react-use-controllable-state": "npm:1.2.2" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/eebecb25f4e245c4abf0968b86bb4ee468965e4d3524d48147298715cd54a58dab8b813cd65ed12ceb2a3e1410f80097e2b0532da01de79e78fb398e002578a3 + languageName: node + linkType: hard + "@radix-ui/react-use-callback-ref@npm:1.1.1": version: 1.1.1 resolution: "@radix-ui/react-use-callback-ref@npm:1.1.1" @@ -4408,6 +4434,7 @@ __metadata: "@radix-ui/react-hover-card": "npm:^1.1.13" "@radix-ui/react-label": "npm:^2.1.6" "@radix-ui/react-slot": "npm:^1.2.2" + "@radix-ui/react-tabs": "npm:^1.1.11" "@tailwindcss/postcss": "npm:4.1.6" "@types/node": "npm:22.15.17" "@types/react": "npm:19.1.3" -- 2.47.2 From da5a2324c6dc01e4c89d3281f6fc1f6c0343f61c Mon Sep 17 00:00:00 2001 From: Maximilian Liebmann Date: Sun, 11 May 2025 13:30:26 +0200 Subject: [PATCH 3/8] style: standardize quotes and formatting in Tabs component --- src/components/ui/tabs.tsx | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/components/ui/tabs.tsx b/src/components/ui/tabs.tsx index 497ba5e..4a9fbd0 100644 --- a/src/components/ui/tabs.tsx +++ b/src/components/ui/tabs.tsx @@ -1,9 +1,9 @@ -"use client" +'use client'; -import * as React from "react" -import * as TabsPrimitive from "@radix-ui/react-tabs" +import * as React from 'react'; +import * as TabsPrimitive from '@radix-ui/react-tabs'; -import { cn } from "@/lib/utils" +import { cn } from '@/lib/utils'; function Tabs({ className, @@ -11,11 +11,11 @@ function Tabs({ }: React.ComponentProps) { return ( - ) + ); } function TabsList({ @@ -24,14 +24,14 @@ function TabsList({ }: React.ComponentProps) { return ( - ) + ); } function TabsTrigger({ @@ -40,14 +40,14 @@ function TabsTrigger({ }: React.ComponentProps) { return ( - ) + ); } function TabsContent({ @@ -56,11 +56,11 @@ function TabsContent({ }: React.ComponentProps) { return ( - ) + ); } -export { Tabs, TabsList, TabsTrigger, TabsContent } +export { Tabs, TabsList, TabsTrigger, TabsContent }; -- 2.47.2 From fd6462e02d867bc51cdd8c38146a85dc350ad097 Mon Sep 17 00:00:00 2001 From: Maximilian Liebmann Date: Sun, 11 May 2025 13:31:12 +0200 Subject: [PATCH 4/8] feat: implement Settings page with tabs --- src/app/settings/page.tsx | 73 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/src/app/settings/page.tsx b/src/app/settings/page.tsx index 8d31232..a0a1d37 100644 --- a/src/app/settings/page.tsx +++ b/src/app/settings/page.tsx @@ -1,10 +1,79 @@ -import { RedirectButton } from '@/components/user/redirect-button'; +//import { RedirectButton } from '@/components/user/redirect-button'; +import { Button } from '@/components/ui/button'; +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; -export default function Home() { +/*export default function Settings() { return (

Settings

); +}*/ + +export default function Settings() { + return ( +
+ + + General + Account + + + + + General + + Make changes to your account here. Click save when you are done. + + + +
+ + +
+
+ + +
+
+ + + +
+
+ + + + Account Settings + + + +
+ + +
+
+ + +
+
+ + + +
+
+
+
+ ); } -- 2.47.2 From f0a8275536b7d9e696c10cbf7a37dc34478505a9 Mon Sep 17 00:00:00 2001 From: Maximilian Liebmann Date: Sun, 11 May 2025 16:34:53 +0200 Subject: [PATCH 5/8] feat: add Radix UI Select, Separator, and Switch components --- package.json | 4 + src/components/ui/select.tsx | 185 ++++++++++++++++++++++++++++++++ src/components/ui/separator.tsx | 28 +++++ src/components/ui/switch.tsx | 31 ++++++ yarn.lock | 153 ++++++++++++++++++++++++++ 5 files changed, 401 insertions(+) create mode 100644 src/components/ui/select.tsx create mode 100644 src/components/ui/separator.tsx create mode 100644 src/components/ui/switch.tsx diff --git a/package.json b/package.json index 797091b..b784d68 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,11 @@ "@radix-ui/react-dropdown-menu": "^2.1.14", "@radix-ui/react-hover-card": "^1.1.13", "@radix-ui/react-label": "^2.1.6", + "@radix-ui/react-scroll-area": "^1.2.8", + "@radix-ui/react-select": "^2.2.4", + "@radix-ui/react-separator": "^1.1.6", "@radix-ui/react-slot": "^1.2.2", + "@radix-ui/react-switch": "^1.2.4", "@radix-ui/react-tabs": "^1.1.11", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", diff --git a/src/components/ui/select.tsx b/src/components/ui/select.tsx new file mode 100644 index 0000000..dcbbc0c --- /dev/null +++ b/src/components/ui/select.tsx @@ -0,0 +1,185 @@ +"use client" + +import * as React from "react" +import * as SelectPrimitive from "@radix-ui/react-select" +import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react" + +import { cn } from "@/lib/utils" + +function Select({ + ...props +}: React.ComponentProps) { + return +} + +function SelectGroup({ + ...props +}: React.ComponentProps) { + return +} + +function SelectValue({ + ...props +}: React.ComponentProps) { + return +} + +function SelectTrigger({ + className, + size = "default", + children, + ...props +}: React.ComponentProps & { + size?: "sm" | "default" +}) { + return ( + + {children} + + + + + ) +} + +function SelectContent({ + className, + children, + position = "popper", + ...props +}: React.ComponentProps) { + return ( + + + + + {children} + + + + + ) +} + +function SelectLabel({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function SelectItem({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + + + + + + {children} + + ) +} + +function SelectSeparator({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function SelectScrollUpButton({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +function SelectScrollDownButton({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +export { + Select, + SelectContent, + SelectGroup, + SelectItem, + SelectLabel, + SelectScrollDownButton, + SelectScrollUpButton, + SelectSeparator, + SelectTrigger, + SelectValue, +} diff --git a/src/components/ui/separator.tsx b/src/components/ui/separator.tsx new file mode 100644 index 0000000..67c73e5 --- /dev/null +++ b/src/components/ui/separator.tsx @@ -0,0 +1,28 @@ +"use client" + +import * as React from "react" +import * as SeparatorPrimitive from "@radix-ui/react-separator" + +import { cn } from "@/lib/utils" + +function Separator({ + className, + orientation = "horizontal", + decorative = true, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +export { Separator } diff --git a/src/components/ui/switch.tsx b/src/components/ui/switch.tsx new file mode 100644 index 0000000..6a2b524 --- /dev/null +++ b/src/components/ui/switch.tsx @@ -0,0 +1,31 @@ +"use client" + +import * as React from "react" +import * as SwitchPrimitive from "@radix-ui/react-switch" + +import { cn } from "@/lib/utils" + +function Switch({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +export { Switch } diff --git a/yarn.lock b/yarn.lock index 1835d49..6f8396b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -940,6 +940,13 @@ __metadata: languageName: node linkType: hard +"@radix-ui/number@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/number@npm:1.1.1" + checksum: 10c0/0570ad92287398e8a7910786d7cee0a998174cdd6637ba61571992897c13204adf70b9ed02d0da2af554119411128e701d9c6b893420612897b438dc91db712b + languageName: node + linkType: hard + "@radix-ui/primitive@npm:1.1.2": version: 1.1.2 resolution: "@radix-ui/primitive@npm:1.1.2" @@ -1320,6 +1327,91 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-scroll-area@npm:^1.2.8": + version: 1.2.8 + resolution: "@radix-ui/react-scroll-area@npm:1.2.8" + dependencies: + "@radix-ui/number": "npm:1.1.1" + "@radix-ui/primitive": "npm:1.1.2" + "@radix-ui/react-compose-refs": "npm:1.1.2" + "@radix-ui/react-context": "npm:1.1.2" + "@radix-ui/react-direction": "npm:1.1.1" + "@radix-ui/react-presence": "npm:1.1.4" + "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-use-callback-ref": "npm:1.1.1" + "@radix-ui/react-use-layout-effect": "npm:1.1.1" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/4f7f7ab06fbb138b50d4aeecf70d482b990833a4e4a5dab394b0bea72a298a83b25aaf1609d754932018a71e1fdb34a7f3443bc28d40c720814a1bf37835e6cd + languageName: node + linkType: hard + +"@radix-ui/react-select@npm:^2.2.4": + version: 2.2.4 + resolution: "@radix-ui/react-select@npm:2.2.4" + dependencies: + "@radix-ui/number": "npm:1.1.1" + "@radix-ui/primitive": "npm:1.1.2" + "@radix-ui/react-collection": "npm:1.1.6" + "@radix-ui/react-compose-refs": "npm:1.1.2" + "@radix-ui/react-context": "npm:1.1.2" + "@radix-ui/react-direction": "npm:1.1.1" + "@radix-ui/react-dismissable-layer": "npm:1.1.9" + "@radix-ui/react-focus-guards": "npm:1.1.2" + "@radix-ui/react-focus-scope": "npm:1.1.6" + "@radix-ui/react-id": "npm:1.1.1" + "@radix-ui/react-popper": "npm:1.2.6" + "@radix-ui/react-portal": "npm:1.1.8" + "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-slot": "npm:1.2.2" + "@radix-ui/react-use-callback-ref": "npm:1.1.1" + "@radix-ui/react-use-controllable-state": "npm:1.2.2" + "@radix-ui/react-use-layout-effect": "npm:1.1.1" + "@radix-ui/react-use-previous": "npm:1.1.1" + "@radix-ui/react-visually-hidden": "npm:1.2.2" + aria-hidden: "npm:^1.2.4" + react-remove-scroll: "npm:^2.6.3" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/96b64414abd6dab5f12cdc27bec21b08af2089a89226e84f7fef657e40a46e13465dac2338bc818ff7883b2ef2027efb644759f5be48d955655b059bd0363ff2 + languageName: node + linkType: hard + +"@radix-ui/react-separator@npm:^1.1.6": + version: 1.1.6 + resolution: "@radix-ui/react-separator@npm:1.1.6" + dependencies: + "@radix-ui/react-primitive": "npm:2.1.2" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/498c581d6f712a1a2a5f956fd415c41e85769b0891cf8253fcc84bacb3e344dc4c0b8fa416283b46d04d5d7511044bc41bc448591b2bb39338864f277d915d16 + languageName: node + linkType: hard + "@radix-ui/react-slot@npm:1.2.2, @radix-ui/react-slot@npm:^1.2.2": version: 1.2.2 resolution: "@radix-ui/react-slot@npm:1.2.2" @@ -1335,6 +1427,31 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-switch@npm:^1.2.4": + version: 1.2.4 + resolution: "@radix-ui/react-switch@npm:1.2.4" + dependencies: + "@radix-ui/primitive": "npm:1.1.2" + "@radix-ui/react-compose-refs": "npm:1.1.2" + "@radix-ui/react-context": "npm:1.1.2" + "@radix-ui/react-primitive": "npm:2.1.2" + "@radix-ui/react-use-controllable-state": "npm:1.2.2" + "@radix-ui/react-use-previous": "npm:1.1.1" + "@radix-ui/react-use-size": "npm:1.1.1" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/53f1f985dd0ed7b28b108b8075078912fed1496313f23270f0be3234fedebb5df4b4b33f2cb1a9c5670d48a38200fc4e1f09db2608c3e94d1de61339ac2d2c53 + languageName: node + linkType: hard + "@radix-ui/react-tabs@npm:^1.1.11": version: 1.1.11 resolution: "@radix-ui/react-tabs@npm:1.1.11" @@ -1433,6 +1550,19 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-use-previous@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-use-previous@npm:1.1.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/52f1089d941491cd59b7f52a5679a14e9381711419a0557ce0f3bc9a4c117078224efec54dcced41a3653a13a386a7b6ec75435d61a273e8b9f5d00235f2b182 + languageName: node + linkType: hard + "@radix-ui/react-use-rect@npm:1.1.1": version: 1.1.1 resolution: "@radix-ui/react-use-rect@npm:1.1.1" @@ -1463,6 +1593,25 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-visually-hidden@npm:1.2.2": + version: 1.2.2 + resolution: "@radix-ui/react-visually-hidden@npm:1.2.2" + dependencies: + "@radix-ui/react-primitive": "npm:2.1.2" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/464b955cbe66ae5de819af5b7c2796eba77f84ab677eade0aa57e98ea588ef5d189c822e7bee0e18608864d5d262a1c70b5dda487269219f147a2a7cea625292 + languageName: node + linkType: hard + "@radix-ui/rect@npm:1.1.1": version: 1.1.1 resolution: "@radix-ui/rect@npm:1.1.1" @@ -4433,7 +4582,11 @@ __metadata: "@radix-ui/react-dropdown-menu": "npm:^2.1.14" "@radix-ui/react-hover-card": "npm:^1.1.13" "@radix-ui/react-label": "npm:^2.1.6" + "@radix-ui/react-scroll-area": "npm:^1.2.8" + "@radix-ui/react-select": "npm:^2.2.4" + "@radix-ui/react-separator": "npm:^1.1.6" "@radix-ui/react-slot": "npm:^1.2.2" + "@radix-ui/react-switch": "npm:^1.2.4" "@radix-ui/react-tabs": "npm:^1.1.11" "@tailwindcss/postcss": "npm:4.1.6" "@types/node": "npm:22.15.17" -- 2.47.2 From 7949c09544dd9d91355b378456502d59a4b25955 Mon Sep 17 00:00:00 2001 From: Maximilian Liebmann Date: Sun, 11 May 2025 16:35:12 +0200 Subject: [PATCH 6/8] feat: add ScrollableSettingsWrapper component for scrollable settings --- src/components/wrappers/settings-scroll.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/components/wrappers/settings-scroll.tsx diff --git a/src/components/wrappers/settings-scroll.tsx b/src/components/wrappers/settings-scroll.tsx new file mode 100644 index 0000000..e0f7251 --- /dev/null +++ b/src/components/wrappers/settings-scroll.tsx @@ -0,0 +1,16 @@ +import React from 'react'; + +interface ScrollableContentWrapperProps { + children: React.ReactNode; + className?: string; +} + +export const ScrollableSettingsWrapper: React.FC< + ScrollableContentWrapperProps +> = ({ children, className = '' }) => { + return ( +
+ {children} +
+ ); +}; -- 2.47.2 From d16cfbcb71fdd804cb5f6340a3683133c3b07771 Mon Sep 17 00:00:00 2001 From: Maximilian Liebmann Date: Sun, 11 May 2025 16:35:22 +0200 Subject: [PATCH 7/8] feat: added tabs to settings window and created general settings window design --- src/app/settings/page.tsx | 519 +++++++++++++++++++++++++++++++++----- 1 file changed, 458 insertions(+), 61 deletions(-) diff --git a/src/app/settings/page.tsx b/src/app/settings/page.tsx index a0a1d37..45974fb 100644 --- a/src/app/settings/page.tsx +++ b/src/app/settings/page.tsx @@ -1,4 +1,3 @@ -//import { RedirectButton } from '@/components/user/redirect-button'; import { Button } from '@/components/ui/button'; import { Card, @@ -11,69 +10,467 @@ import { import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; +import { ScrollableSettingsWrapper } from '@/components/wrappers/settings-scroll'; +import { Switch } from '@/components/ui/switch'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; -/*export default function Settings() { +export default function SettingsPage() { return ( -
-

Settings

- -
- ); -}*/ +
+
+ + + Account + Notifications + Calendar + Privacy + Appearance + -export default function Settings() { - return ( -
- - - General - Account - - - - - General - - Make changes to your account here. Click save when you are done. - - - -
- - -
-
- - -
-
- - - -
-
- - - - Account Settings - - - -
- - -
-
- - -
-
- - - -
-
-
+ + + + + Account Settings + + Manage your account details and preferences. + + + +
+ + +
+
+ + +

+ Email is managed by your SSO provider. +

+
+
+ + +

+ Upload a new profile picture. +

+
+
+ + +
+ +
+ + +
+
+ +

+ Permanently delete your account and all associated data. +

+
+
+
+ + + + +
+
+ + + + + + Notification Preferences + + Choose how you want to be notified. + + + +
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + + + +
+
+ + + + + + Calendar & Availability + + Manage your calendar display, default availability, and iCal + integrations. + + + +
+ + Display + +
+ + +
+
+ + +
+
+ + +
+
+ +
+ + Availability + +
+ +

+ Define your typical available hours (e.g., + Monday-Friday, 9 AM - 5 PM). +

+ +
+
+ +

+ Min time before a booking can be made. +

+
+ +
+
+
+ +

+ Max time in advance a booking can be made. +

+ +
+
+ +
+ + iCalendar Integration + +
+ + + +
+
+ + + +
+
+
+
+ + + + +
+
+ + + + + + Sharing & Privacy + + Control who can see your calendar and book time with you. + + + +
+ + +
+
+ +

+ (Override for Default Visibility) +
+ + This setting will override the default visibility for + your calendar. You can set specific friends or groups to + see your full calendar details. + +

+ +
+
+ + +
+
+ + +

+ Prevent specific users from seeing your calendar or + booking time. +

+
+
+
+ + + + +
+
+ + + + + + Appearance + + Customize the look and feel of the application. + + + +
+ + +
+
+ + +
+
+ + +
+
+
+ + + + +
+
+ +
); } -- 2.47.2 From 90a9c5d2333697e779eeb834bdba6202d5548aed Mon Sep 17 00:00:00 2001 From: Maximilian Liebmann Date: Sun, 11 May 2025 16:48:41 +0200 Subject: [PATCH 8/8] style: standardize quotes and formatting in Select, Separator, and Switch components --- src/components/ui/select.tsx | 92 ++++++++++++++++----------------- src/components/ui/separator.tsx | 20 +++---- src/components/ui/switch.tsx | 22 ++++---- 3 files changed, 67 insertions(+), 67 deletions(-) diff --git a/src/components/ui/select.tsx b/src/components/ui/select.tsx index dcbbc0c..90f7ef0 100644 --- a/src/components/ui/select.tsx +++ b/src/components/ui/select.tsx @@ -1,70 +1,70 @@ -"use client" +'use client'; -import * as React from "react" -import * as SelectPrimitive from "@radix-ui/react-select" -import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react" +import * as React from 'react'; +import * as SelectPrimitive from '@radix-ui/react-select'; +import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react'; -import { cn } from "@/lib/utils" +import { cn } from '@/lib/utils'; function Select({ ...props }: React.ComponentProps) { - return + return ; } function SelectGroup({ ...props }: React.ComponentProps) { - return + return ; } function SelectValue({ ...props }: React.ComponentProps) { - return + return ; } function SelectTrigger({ className, - size = "default", + size = 'default', children, ...props }: React.ComponentProps & { - size?: "sm" | "default" + size?: 'sm' | 'default'; }) { return ( {children} - + - ) + ); } function SelectContent({ className, children, - position = "popper", + position = 'popper', ...props }: React.ComponentProps) { return ( {children} @@ -82,7 +82,7 @@ function SelectContent({ - ) + ); } function SelectLabel({ @@ -91,11 +91,11 @@ function SelectLabel({ }: React.ComponentProps) { return ( - ) + ); } function SelectItem({ @@ -105,21 +105,21 @@ function SelectItem({ }: React.ComponentProps) { return ( - + - + {children} - ) + ); } function SelectSeparator({ @@ -128,11 +128,11 @@ function SelectSeparator({ }: React.ComponentProps) { return ( - ) + ); } function SelectScrollUpButton({ @@ -141,16 +141,16 @@ function SelectScrollUpButton({ }: React.ComponentProps) { return ( - + - ) + ); } function SelectScrollDownButton({ @@ -159,16 +159,16 @@ function SelectScrollDownButton({ }: React.ComponentProps) { return ( - + - ) + ); } export { @@ -182,4 +182,4 @@ export { SelectSeparator, SelectTrigger, SelectValue, -} +}; diff --git a/src/components/ui/separator.tsx b/src/components/ui/separator.tsx index 67c73e5..39eb020 100644 --- a/src/components/ui/separator.tsx +++ b/src/components/ui/separator.tsx @@ -1,28 +1,28 @@ -"use client" +'use client'; -import * as React from "react" -import * as SeparatorPrimitive from "@radix-ui/react-separator" +import * as React from 'react'; +import * as SeparatorPrimitive from '@radix-ui/react-separator'; -import { cn } from "@/lib/utils" +import { cn } from '@/lib/utils'; function Separator({ className, - orientation = "horizontal", + orientation = 'horizontal', decorative = true, ...props }: React.ComponentProps) { return ( - ) + ); } -export { Separator } +export { Separator }; diff --git a/src/components/ui/switch.tsx b/src/components/ui/switch.tsx index 6a2b524..39e25af 100644 --- a/src/components/ui/switch.tsx +++ b/src/components/ui/switch.tsx @@ -1,9 +1,9 @@ -"use client" +'use client'; -import * as React from "react" -import * as SwitchPrimitive from "@radix-ui/react-switch" +import * as React from 'react'; +import * as SwitchPrimitive from '@radix-ui/react-switch'; -import { cn } from "@/lib/utils" +import { cn } from '@/lib/utils'; function Switch({ className, @@ -11,21 +11,21 @@ function Switch({ }: React.ComponentProps) { return ( - ) + ); } -export { Switch } +export { Switch }; -- 2.47.2