From 49e859cfd6565c4ef67388c232e639917ec20625 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Tue, 14 Oct 2025 12:06:13 -0500 Subject: wip: css/ui work --- packages/ui/src/components/index.ts | 1 + packages/ui/src/components/select.tsx | 10 ++++- packages/ui/src/components/tabs.tsx | 74 +++++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 packages/ui/src/components/tabs.tsx (limited to 'packages/ui/src/components') diff --git a/packages/ui/src/components/index.ts b/packages/ui/src/components/index.ts index 80d80299b..be12d6a67 100644 --- a/packages/ui/src/components/index.ts +++ b/packages/ui/src/components/index.ts @@ -1,3 +1,4 @@ export * from "./button" export * from "./icon" export * from "./select" +export * from "./tabs" diff --git a/packages/ui/src/components/select.tsx b/packages/ui/src/components/select.tsx index c4d5443c1..ecf05d5e2 100644 --- a/packages/ui/src/components/select.tsx +++ b/packages/ui/src/components/select.tsx @@ -79,11 +79,17 @@ export function Select(props: SelectProps & ButtonProps) { }} - + - + diff --git a/packages/ui/src/components/tabs.tsx b/packages/ui/src/components/tabs.tsx new file mode 100644 index 000000000..5e047a7ca --- /dev/null +++ b/packages/ui/src/components/tabs.tsx @@ -0,0 +1,74 @@ +import { Tabs as Kobalte } from "@kobalte/core/tabs" +import { splitProps } from "solid-js" +import type { ComponentProps, ParentProps } from "solid-js" + +export interface TabsProps extends ComponentProps {} +export interface TabsListProps extends ComponentProps {} +export interface TabsTriggerProps extends ComponentProps {} +export interface TabsContentProps extends ComponentProps {} + +function TabsRoot(props: TabsProps) { + const [split, rest] = splitProps(props, ["class", "classList"]) + return ( + + ) +} + +function TabsList(props: TabsListProps) { + const [split, rest] = splitProps(props, ["class", "classList"]) + return ( + + ) +} + +function TabsTrigger(props: ParentProps) { + const [split, rest] = splitProps(props, ["class", "classList", "children"]) + return ( + + {split.children} + + ) +} + +function TabsContent(props: ParentProps) { + const [split, rest] = splitProps(props, ["class", "classList", "children"]) + return ( + + {split.children} + + ) +} + +export const Tabs = Object.assign(TabsRoot, { + List: TabsList, + Trigger: TabsTrigger, + Content: TabsContent, +}) -- cgit v1.2.3