···11+export { default as Content } from './select-content.svelte'
22+export { default as GroupHeading } from './select-group-heading.svelte'
33+export { default as Group } from './select-group.svelte'
44+export { default as Item } from './select-item.svelte'
55+export { default as Label } from './select-label.svelte'
66+export { default as Portal } from './select-portal.svelte'
77+export { default as ScrollDownButton } from './select-scroll-down-button.svelte'
88+export { default as ScrollUpButton } from './select-scroll-up-button.svelte'
99+export { default as Separator } from './select-separator.svelte'
1010+export { default as Trigger } from './select-trigger.svelte'
1111+export { default as Root } from './select.svelte'
···11+<script lang="ts">
22+ import { Select as SelectPrimitive } from 'bits-ui'
33+44+ type Props = SelectPrimitive.RootProps
55+ let {
66+ open = $bindable(false),
77+ value = $bindable(),
88+ ...restProps
99+ }: Props = $props()
1010+</script>
1111+1212+<SelectPrimitive.Root bind:open bind:value={value as never} {...restProps} />
+7
app/src/lib/utils.ts
···1919export function cn(...inputs: ClassValue[]) {
2020 return twMerge(clsx(inputs))
2121}
2222+2323+// eslint-disable-next-line @typescript-eslint/no-explicit-any
2424+export type WithoutChild<T> = T extends { child?: any } ? Omit<T, 'child'> : T
2525+// eslint-disable-next-line @typescript-eslint/no-explicit-any
2626+export type WithoutChildren<T> = T extends { children?: any } ? Omit<T, 'children'> : T
2727+export type WithoutChildrenOrChild<T> = WithoutChildren<WithoutChild<T>>
2828+export type WithElementRef<T, U extends HTMLElement = HTMLElement> = T & { ref?: U | null }