Skip to content

Commit c3d5993

Browse files
Initial shadcn-svelte beta migration
1 parent 19432e5 commit c3d5993

38 files changed

+526
-511
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"@vercel/speed-insights": "^1.0.12",
2727
"arctic": "^1.9.2",
2828
"autoprefixer": "^10.4.20",
29-
"bits-ui": "^0.21.16",
29+
"bits-ui": "^1.0.0-next.28",
3030
"clsx": "^2.1.1",
3131
"eslint": "^9.13.0",
3232
"eslint-config-prettier": "^9.1.0",

pnpm-lock.yaml

Lines changed: 62 additions & 58 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
11
<script lang="ts">
2-
import { Accordion as AccordionPrimitive } from "bits-ui";
3-
import { slide } from "svelte/transition";
2+
import { Accordion as AccordionPrimitive, type WithoutChild } from "bits-ui";
43
import { cn } from "$lib/utils.js";
54
6-
type $$Props = AccordionPrimitive.ContentProps;
7-
8-
let className: $$Props["class"] = undefined;
9-
export let transition: $$Props["transition"] = slide;
10-
export let transitionConfig: $$Props["transitionConfig"] = {
11-
duration: 200,
12-
};
13-
export { className as class };
5+
let {
6+
ref = $bindable(null),
7+
class: className,
8+
children,
9+
...restProps
10+
}: WithoutChild<AccordionPrimitive.ContentProps> = $props();
1411
</script>
1512

1613
<AccordionPrimitive.Content
17-
class={cn("overflow-hidden text-sm transition-all", className)}
18-
{transition}
19-
{transitionConfig}
20-
{...$$restProps}
14+
bind:ref
15+
class={cn(
16+
"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm transition-all",
17+
className
18+
)}
19+
{...restProps}
2120
>
2221
<div class="pb-4 pt-0">
23-
<slot />
22+
{@render children?.()}
2423
</div>
2524
</AccordionPrimitive.Content>

src/lib/components/ui/accordion/accordion-item.svelte

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@
22
import { Accordion as AccordionPrimitive } from "bits-ui";
33
import { cn } from "$lib/utils.js";
44
5-
type $$Props = AccordionPrimitive.ItemProps;
6-
7-
let className: $$Props["class"] = undefined;
8-
export let value: $$Props["value"];
9-
export { className as class };
5+
let {
6+
ref = $bindable(null),
7+
class: className,
8+
...restProps
9+
}: AccordionPrimitive.ItemProps = $props();
1010
</script>
1111

12-
<AccordionPrimitive.Item {value} class={cn("border-b", className)} {...$$restProps}>
13-
<slot />
14-
</AccordionPrimitive.Item>
12+
<AccordionPrimitive.Item bind:ref class={cn("border-b", className)} {...restProps} />
Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
11
<script lang="ts">
2-
import { Accordion as AccordionPrimitive } from "bits-ui";
2+
import { Accordion as AccordionPrimitive, type WithoutChild } from "bits-ui";
33
import ChevronDown from "lucide-svelte/icons/chevron-down";
44
import { cn } from "$lib/utils.js";
55
6-
type $$Props = AccordionPrimitive.TriggerProps;
7-
type $$Events = AccordionPrimitive.TriggerEvents;
8-
9-
let className: $$Props["class"] = undefined;
10-
export let level: AccordionPrimitive.HeaderProps["level"] = 3;
11-
export { className as class };
6+
let {
7+
ref = $bindable(null),
8+
class: className,
9+
level = 3,
10+
children,
11+
...restProps
12+
}: WithoutChild<AccordionPrimitive.TriggerProps> & {
13+
level?: AccordionPrimitive.HeaderProps["level"];
14+
} = $props();
1215
</script>
1316

1417
<AccordionPrimitive.Header {level} class="flex">
1518
<AccordionPrimitive.Trigger
19+
bind:ref
1620
class={cn(
1721
"flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
1822
className
1923
)}
20-
{...$$restProps}
21-
on:click
24+
{...restProps}
2225
>
23-
<slot />
24-
<ChevronDown class="h-4 w-4 transition-transform duration-200" />
26+
{@render children?.()}
27+
<ChevronDown class="size-4 shrink-0 transition-transform duration-200" />
2528
</AccordionPrimitive.Trigger>
2629
</AccordionPrimitive.Header>

0 commit comments

Comments
 (0)