@aphexcms/ui 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/lib/components/app-sidebar.svelte +0 -171
- package/src/lib/components/nav-main.svelte +0 -64
- package/src/lib/components/nav-projects.svelte +0 -76
- package/src/lib/components/nav-user.svelte +0 -87
- package/src/lib/components/sidebar-07/+page.svelte +0 -39
- package/src/lib/components/team-switcher.svelte +0 -67
- package/src/lib/components/ui/alert/alert-description.svelte +0 -23
- package/src/lib/components/ui/alert/alert-title.svelte +0 -20
- package/src/lib/components/ui/alert/alert.svelte +0 -44
- package/src/lib/components/ui/alert/index.ts +0 -14
- package/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte +0 -18
- package/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte +0 -18
- package/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte +0 -27
- package/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte +0 -17
- package/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte +0 -20
- package/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte +0 -20
- package/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte +0 -20
- package/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte +0 -17
- package/src/lib/components/ui/alert-dialog/alert-dialog-trigger.svelte +0 -7
- package/src/lib/components/ui/alert-dialog/index.ts +0 -39
- package/src/lib/components/ui/avatar/avatar-fallback.svelte +0 -17
- package/src/lib/components/ui/avatar/avatar-image.svelte +0 -17
- package/src/lib/components/ui/avatar/avatar.svelte +0 -19
- package/src/lib/components/ui/avatar/index.ts +0 -13
- package/src/lib/components/ui/badge/badge.svelte +0 -49
- package/src/lib/components/ui/badge/index.ts +0 -2
- package/src/lib/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +0 -23
- package/src/lib/components/ui/breadcrumb/breadcrumb-item.svelte +0 -20
- package/src/lib/components/ui/breadcrumb/breadcrumb-link.svelte +0 -31
- package/src/lib/components/ui/breadcrumb/breadcrumb-list.svelte +0 -23
- package/src/lib/components/ui/breadcrumb/breadcrumb-page.svelte +0 -23
- package/src/lib/components/ui/breadcrumb/breadcrumb-separator.svelte +0 -27
- package/src/lib/components/ui/breadcrumb/breadcrumb.svelte +0 -21
- package/src/lib/components/ui/breadcrumb/index.ts +0 -25
- package/src/lib/components/ui/button/button.svelte +0 -82
- package/src/lib/components/ui/button/index.ts +0 -17
- package/src/lib/components/ui/card/card-action.svelte +0 -20
- package/src/lib/components/ui/card/card-content.svelte +0 -15
- package/src/lib/components/ui/card/card-description.svelte +0 -20
- package/src/lib/components/ui/card/card-footer.svelte +0 -20
- package/src/lib/components/ui/card/card-header.svelte +0 -23
- package/src/lib/components/ui/card/card-title.svelte +0 -20
- package/src/lib/components/ui/card/card.svelte +0 -23
- package/src/lib/components/ui/card/index.ts +0 -25
- package/src/lib/components/ui/collapsible/collapsible-content.svelte +0 -7
- package/src/lib/components/ui/collapsible/collapsible-trigger.svelte +0 -7
- package/src/lib/components/ui/collapsible/collapsible.svelte +0 -11
- package/src/lib/components/ui/collapsible/index.ts +0 -13
- package/src/lib/components/ui/command/command-dialog.svelte +0 -40
- package/src/lib/components/ui/command/command-empty.svelte +0 -17
- package/src/lib/components/ui/command/command-group.svelte +0 -30
- package/src/lib/components/ui/command/command-input.svelte +0 -26
- package/src/lib/components/ui/command/command-item.svelte +0 -20
- package/src/lib/components/ui/command/command-link-item.svelte +0 -20
- package/src/lib/components/ui/command/command-list.svelte +0 -17
- package/src/lib/components/ui/command/command-separator.svelte +0 -17
- package/src/lib/components/ui/command/command-shortcut.svelte +0 -20
- package/src/lib/components/ui/command/command.svelte +0 -22
- package/src/lib/components/ui/command/index.ts +0 -40
- package/src/lib/components/ui/dialog/dialog-close.svelte +0 -7
- package/src/lib/components/ui/dialog/dialog-content.svelte +0 -43
- package/src/lib/components/ui/dialog/dialog-description.svelte +0 -17
- package/src/lib/components/ui/dialog/dialog-footer.svelte +0 -20
- package/src/lib/components/ui/dialog/dialog-header.svelte +0 -20
- package/src/lib/components/ui/dialog/dialog-overlay.svelte +0 -20
- package/src/lib/components/ui/dialog/dialog-title.svelte +0 -17
- package/src/lib/components/ui/dialog/dialog-trigger.svelte +0 -7
- package/src/lib/components/ui/dialog/index.ts +0 -37
- package/src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +0 -41
- package/src/lib/components/ui/dropdown-menu/dropdown-menu-content.svelte +0 -27
- package/src/lib/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +0 -22
- package/src/lib/components/ui/dropdown-menu/dropdown-menu-group.svelte +0 -7
- package/src/lib/components/ui/dropdown-menu/dropdown-menu-item.svelte +0 -27
- package/src/lib/components/ui/dropdown-menu/dropdown-menu-label.svelte +0 -24
- package/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +0 -16
- package/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +0 -31
- package/src/lib/components/ui/dropdown-menu/dropdown-menu-separator.svelte +0 -17
- package/src/lib/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +0 -20
- package/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +0 -20
- package/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +0 -29
- package/src/lib/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +0 -7
- package/src/lib/components/ui/dropdown-menu/index.ts +0 -49
- package/src/lib/components/ui/input/index.ts +0 -7
- package/src/lib/components/ui/input/input.svelte +0 -52
- package/src/lib/components/ui/label/index.ts +0 -7
- package/src/lib/components/ui/label/label.svelte +0 -20
- package/src/lib/components/ui/popover/index.ts +0 -17
- package/src/lib/components/ui/popover/popover-content.svelte +0 -29
- package/src/lib/components/ui/popover/popover-trigger.svelte +0 -17
- package/src/lib/components/ui/select/index.ts +0 -37
- package/src/lib/components/ui/select/select-content.svelte +0 -40
- package/src/lib/components/ui/select/select-group-heading.svelte +0 -21
- package/src/lib/components/ui/select/select-group.svelte +0 -7
- package/src/lib/components/ui/select/select-item.svelte +0 -38
- package/src/lib/components/ui/select/select-label.svelte +0 -20
- package/src/lib/components/ui/select/select-scroll-down-button.svelte +0 -20
- package/src/lib/components/ui/select/select-scroll-up-button.svelte +0 -20
- package/src/lib/components/ui/select/select-separator.svelte +0 -18
- package/src/lib/components/ui/select/select-trigger.svelte +0 -29
- package/src/lib/components/ui/separator/index.ts +0 -7
- package/src/lib/components/ui/separator/separator.svelte +0 -21
- package/src/lib/components/ui/sheet/index.ts +0 -36
- package/src/lib/components/ui/sheet/sheet-close.svelte +0 -7
- package/src/lib/components/ui/sheet/sheet-content.svelte +0 -60
- package/src/lib/components/ui/sheet/sheet-description.svelte +0 -17
- package/src/lib/components/ui/sheet/sheet-footer.svelte +0 -20
- package/src/lib/components/ui/sheet/sheet-header.svelte +0 -20
- package/src/lib/components/ui/sheet/sheet-overlay.svelte +0 -20
- package/src/lib/components/ui/sheet/sheet-title.svelte +0 -17
- package/src/lib/components/ui/sheet/sheet-trigger.svelte +0 -7
- package/src/lib/components/ui/sidebar/constants.ts +0 -6
- package/src/lib/components/ui/sidebar/context.svelte.ts +0 -79
- package/src/lib/components/ui/sidebar/index.ts +0 -75
- package/src/lib/components/ui/sidebar/sidebar-content.svelte +0 -24
- package/src/lib/components/ui/sidebar/sidebar-footer.svelte +0 -21
- package/src/lib/components/ui/sidebar/sidebar-group-action.svelte +0 -36
- package/src/lib/components/ui/sidebar/sidebar-group-content.svelte +0 -21
- package/src/lib/components/ui/sidebar/sidebar-group-label.svelte +0 -34
- package/src/lib/components/ui/sidebar/sidebar-group.svelte +0 -21
- package/src/lib/components/ui/sidebar/sidebar-header.svelte +0 -21
- package/src/lib/components/ui/sidebar/sidebar-input.svelte +0 -21
- package/src/lib/components/ui/sidebar/sidebar-inset.svelte +0 -24
- package/src/lib/components/ui/sidebar/sidebar-menu-action.svelte +0 -43
- package/src/lib/components/ui/sidebar/sidebar-menu-badge.svelte +0 -29
- package/src/lib/components/ui/sidebar/sidebar-menu-button.svelte +0 -101
- package/src/lib/components/ui/sidebar/sidebar-menu-item.svelte +0 -21
- package/src/lib/components/ui/sidebar/sidebar-menu-skeleton.svelte +0 -36
- package/src/lib/components/ui/sidebar/sidebar-menu-sub-button.svelte +0 -43
- package/src/lib/components/ui/sidebar/sidebar-menu-sub-item.svelte +0 -21
- package/src/lib/components/ui/sidebar/sidebar-menu-sub.svelte +0 -25
- package/src/lib/components/ui/sidebar/sidebar-menu.svelte +0 -21
- package/src/lib/components/ui/sidebar/sidebar-provider.svelte +0 -53
- package/src/lib/components/ui/sidebar/sidebar-rail.svelte +0 -36
- package/src/lib/components/ui/sidebar/sidebar-separator.svelte +0 -19
- package/src/lib/components/ui/sidebar/sidebar-trigger.svelte +0 -35
- package/src/lib/components/ui/sidebar/sidebar.svelte +0 -101
- package/src/lib/components/ui/skeleton/index.ts +0 -7
- package/src/lib/components/ui/skeleton/skeleton.svelte +0 -17
- package/src/lib/components/ui/tabs/index.ts +0 -16
- package/src/lib/components/ui/tabs/tabs-content.svelte +0 -17
- package/src/lib/components/ui/tabs/tabs-list.svelte +0 -16
- package/src/lib/components/ui/tabs/tabs-trigger.svelte +0 -20
- package/src/lib/components/ui/tabs/tabs.svelte +0 -19
- package/src/lib/components/ui/textarea/index.ts +0 -7
- package/src/lib/components/ui/textarea/textarea.svelte +0 -22
- package/src/lib/components/ui/tooltip/index.ts +0 -21
- package/src/lib/components/ui/tooltip/tooltip-content.svelte +0 -47
- package/src/lib/components/ui/tooltip/tooltip-trigger.svelte +0 -7
- package/src/lib/hooks/is-mobile.svelte.ts +0 -9
- package/src/lib/utils.ts +0 -13
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
3
|
-
import { cn, type WithElementRef } from '@lib/utils.js';
|
|
4
|
-
|
|
5
|
-
let {
|
|
6
|
-
ref = $bindable(null),
|
|
7
|
-
class: className,
|
|
8
|
-
children,
|
|
9
|
-
...restProps
|
|
10
|
-
}: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<div
|
|
14
|
-
bind:this={ref}
|
|
15
|
-
data-slot="sidebar-group"
|
|
16
|
-
data-sidebar="group"
|
|
17
|
-
class={cn('relative flex w-full min-w-0 flex-col p-2', className)}
|
|
18
|
-
{...restProps}
|
|
19
|
-
>
|
|
20
|
-
{@render children?.()}
|
|
21
|
-
</div>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
3
|
-
import { cn, type WithElementRef } from '@lib/utils.js';
|
|
4
|
-
|
|
5
|
-
let {
|
|
6
|
-
ref = $bindable(null),
|
|
7
|
-
class: className,
|
|
8
|
-
children,
|
|
9
|
-
...restProps
|
|
10
|
-
}: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<div
|
|
14
|
-
bind:this={ref}
|
|
15
|
-
data-slot="sidebar-header"
|
|
16
|
-
data-sidebar="header"
|
|
17
|
-
class={cn('flex flex-col gap-2 p-2', className)}
|
|
18
|
-
{...restProps}
|
|
19
|
-
>
|
|
20
|
-
{@render children?.()}
|
|
21
|
-
</div>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { ComponentProps } from 'svelte';
|
|
3
|
-
import { Input } from '@lib/components/ui/input/index.js';
|
|
4
|
-
import { cn } from '@lib/utils.js';
|
|
5
|
-
|
|
6
|
-
let {
|
|
7
|
-
ref = $bindable(null),
|
|
8
|
-
value = $bindable(''),
|
|
9
|
-
class: className,
|
|
10
|
-
...restProps
|
|
11
|
-
}: ComponentProps<typeof Input> = $props();
|
|
12
|
-
</script>
|
|
13
|
-
|
|
14
|
-
<Input
|
|
15
|
-
bind:ref
|
|
16
|
-
bind:value
|
|
17
|
-
data-slot="sidebar-input"
|
|
18
|
-
data-sidebar="input"
|
|
19
|
-
class={cn('bg-background h-8 w-full shadow-none', className)}
|
|
20
|
-
{...restProps}
|
|
21
|
-
/>
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { cn, type WithElementRef } from '@lib/utils.js';
|
|
3
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
4
|
-
|
|
5
|
-
let {
|
|
6
|
-
ref = $bindable(null),
|
|
7
|
-
class: className,
|
|
8
|
-
children,
|
|
9
|
-
...restProps
|
|
10
|
-
}: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<main
|
|
14
|
-
bind:this={ref}
|
|
15
|
-
data-slot="sidebar-inset"
|
|
16
|
-
class={cn(
|
|
17
|
-
'bg-background relative flex w-full flex-1 flex-col',
|
|
18
|
-
'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm',
|
|
19
|
-
className
|
|
20
|
-
)}
|
|
21
|
-
{...restProps}
|
|
22
|
-
>
|
|
23
|
-
{@render children?.()}
|
|
24
|
-
</main>
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { cn, type WithElementRef } from '@lib/utils.js';
|
|
3
|
-
import type { Snippet } from 'svelte';
|
|
4
|
-
import type { HTMLButtonAttributes } from 'svelte/elements';
|
|
5
|
-
|
|
6
|
-
let {
|
|
7
|
-
ref = $bindable(null),
|
|
8
|
-
class: className,
|
|
9
|
-
showOnHover = false,
|
|
10
|
-
children,
|
|
11
|
-
child,
|
|
12
|
-
...restProps
|
|
13
|
-
}: WithElementRef<HTMLButtonAttributes> & {
|
|
14
|
-
child?: Snippet<[{ props: Record<string, unknown> }]>;
|
|
15
|
-
showOnHover?: boolean;
|
|
16
|
-
} = $props();
|
|
17
|
-
|
|
18
|
-
const mergedProps = $derived({
|
|
19
|
-
class: cn(
|
|
20
|
-
'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground outline-hidden absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',
|
|
21
|
-
// Increases the hit area of the button on mobile.
|
|
22
|
-
'after:absolute after:-inset-2 md:after:hidden',
|
|
23
|
-
'peer-data-[size=sm]/menu-button:top-1',
|
|
24
|
-
'peer-data-[size=default]/menu-button:top-1.5',
|
|
25
|
-
'peer-data-[size=lg]/menu-button:top-2.5',
|
|
26
|
-
'group-data-[collapsible=icon]:hidden',
|
|
27
|
-
showOnHover &&
|
|
28
|
-
'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0',
|
|
29
|
-
className
|
|
30
|
-
),
|
|
31
|
-
'data-slot': 'sidebar-menu-action',
|
|
32
|
-
'data-sidebar': 'menu-action',
|
|
33
|
-
...restProps
|
|
34
|
-
});
|
|
35
|
-
</script>
|
|
36
|
-
|
|
37
|
-
{#if child}
|
|
38
|
-
{@render child({ props: mergedProps })}
|
|
39
|
-
{:else}
|
|
40
|
-
<button bind:this={ref} {...mergedProps}>
|
|
41
|
-
{@render children?.()}
|
|
42
|
-
</button>
|
|
43
|
-
{/if}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { cn, type WithElementRef } from '@lib/utils.js';
|
|
3
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
4
|
-
|
|
5
|
-
let {
|
|
6
|
-
ref = $bindable(null),
|
|
7
|
-
class: className,
|
|
8
|
-
children,
|
|
9
|
-
...restProps
|
|
10
|
-
}: WithElementRef<HTMLAttributes<HTMLElement>> = $props();
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<div
|
|
14
|
-
bind:this={ref}
|
|
15
|
-
data-slot="sidebar-menu-badge"
|
|
16
|
-
data-sidebar="menu-badge"
|
|
17
|
-
class={cn(
|
|
18
|
-
'text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums',
|
|
19
|
-
'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',
|
|
20
|
-
'peer-data-[size=sm]/menu-button:top-1',
|
|
21
|
-
'peer-data-[size=default]/menu-button:top-1.5',
|
|
22
|
-
'peer-data-[size=lg]/menu-button:top-2.5',
|
|
23
|
-
'group-data-[collapsible=icon]:hidden',
|
|
24
|
-
className
|
|
25
|
-
)}
|
|
26
|
-
{...restProps}
|
|
27
|
-
>
|
|
28
|
-
{@render children?.()}
|
|
29
|
-
</div>
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
<script lang="ts" module>
|
|
2
|
-
import { tv, type VariantProps } from 'tailwind-variants';
|
|
3
|
-
|
|
4
|
-
export const sidebarMenuButtonVariants = tv({
|
|
5
|
-
base: 'peer/menu-button outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground group-has-data-[sidebar=menu-action]/menu-item:pr-8 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm transition-[width,height,padding] focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',
|
|
6
|
-
variants: {
|
|
7
|
-
variant: {
|
|
8
|
-
default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',
|
|
9
|
-
outline:
|
|
10
|
-
'bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_var(--sidebar-border)] hover:shadow-[0_0_0_1px_var(--sidebar-accent)]'
|
|
11
|
-
},
|
|
12
|
-
size: {
|
|
13
|
-
default: 'h-8 text-sm',
|
|
14
|
-
sm: 'h-7 text-xs',
|
|
15
|
-
lg: 'group-data-[collapsible=icon]:p-0! h-12 text-sm'
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
defaultVariants: {
|
|
19
|
-
variant: 'default',
|
|
20
|
-
size: 'default'
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
export type SidebarMenuButtonVariant = VariantProps<typeof sidebarMenuButtonVariants>['variant'];
|
|
25
|
-
export type SidebarMenuButtonSize = VariantProps<typeof sidebarMenuButtonVariants>['size'];
|
|
26
|
-
</script>
|
|
27
|
-
|
|
28
|
-
<script lang="ts">
|
|
29
|
-
import * as Tooltip from '@lib/components/ui/tooltip/index.js';
|
|
30
|
-
import { cn, type WithElementRef, type WithoutChildrenOrChild } from '@lib/utils.js';
|
|
31
|
-
import { mergeProps } from 'bits-ui';
|
|
32
|
-
import type { ComponentProps, Snippet } from 'svelte';
|
|
33
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
34
|
-
import { useSidebar } from './context.svelte.js';
|
|
35
|
-
|
|
36
|
-
let {
|
|
37
|
-
ref = $bindable(null),
|
|
38
|
-
class: className,
|
|
39
|
-
children,
|
|
40
|
-
child,
|
|
41
|
-
variant = 'default',
|
|
42
|
-
size = 'default',
|
|
43
|
-
isActive = false,
|
|
44
|
-
tooltipContent,
|
|
45
|
-
tooltipContentProps,
|
|
46
|
-
...restProps
|
|
47
|
-
}: WithElementRef<HTMLAttributes<HTMLButtonElement>, HTMLButtonElement> & {
|
|
48
|
-
isActive?: boolean;
|
|
49
|
-
variant?: SidebarMenuButtonVariant;
|
|
50
|
-
size?: SidebarMenuButtonSize;
|
|
51
|
-
tooltipContent?: Snippet | string;
|
|
52
|
-
tooltipContentProps?: WithoutChildrenOrChild<ComponentProps<typeof Tooltip.Content>>;
|
|
53
|
-
child?: Snippet<[{ props: Record<string, unknown> }]>;
|
|
54
|
-
} = $props();
|
|
55
|
-
|
|
56
|
-
const sidebar = useSidebar();
|
|
57
|
-
|
|
58
|
-
const buttonProps = $derived({
|
|
59
|
-
class: cn(sidebarMenuButtonVariants({ variant, size }), className),
|
|
60
|
-
'data-slot': 'sidebar-menu-button',
|
|
61
|
-
'data-sidebar': 'menu-button',
|
|
62
|
-
'data-size': size,
|
|
63
|
-
'data-active': isActive,
|
|
64
|
-
...restProps
|
|
65
|
-
});
|
|
66
|
-
</script>
|
|
67
|
-
|
|
68
|
-
{#snippet Button({ props }: { props?: Record<string, unknown> })}
|
|
69
|
-
{@const mergedProps = mergeProps(buttonProps, props)}
|
|
70
|
-
{#if child}
|
|
71
|
-
{@render child({ props: mergedProps })}
|
|
72
|
-
{:else}
|
|
73
|
-
<button bind:this={ref} {...mergedProps}>
|
|
74
|
-
{@render children?.()}
|
|
75
|
-
</button>
|
|
76
|
-
{/if}
|
|
77
|
-
{/snippet}
|
|
78
|
-
|
|
79
|
-
{#if !tooltipContent}
|
|
80
|
-
{@render Button({})}
|
|
81
|
-
{:else}
|
|
82
|
-
<Tooltip.Root>
|
|
83
|
-
<Tooltip.Trigger>
|
|
84
|
-
{#snippet child({ props })}
|
|
85
|
-
{@render Button({ props })}
|
|
86
|
-
{/snippet}
|
|
87
|
-
</Tooltip.Trigger>
|
|
88
|
-
<Tooltip.Content
|
|
89
|
-
side="right"
|
|
90
|
-
align="center"
|
|
91
|
-
hidden={sidebar.state !== 'collapsed' || sidebar.isMobile}
|
|
92
|
-
{...tooltipContentProps}
|
|
93
|
-
>
|
|
94
|
-
{#if typeof tooltipContent === 'string'}
|
|
95
|
-
{tooltipContent}
|
|
96
|
-
{:else if tooltipContent}
|
|
97
|
-
{@render tooltipContent()}
|
|
98
|
-
{/if}
|
|
99
|
-
</Tooltip.Content>
|
|
100
|
-
</Tooltip.Root>
|
|
101
|
-
{/if}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { cn, type WithElementRef } from '@lib/utils.js';
|
|
3
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
4
|
-
|
|
5
|
-
let {
|
|
6
|
-
ref = $bindable(null),
|
|
7
|
-
class: className,
|
|
8
|
-
children,
|
|
9
|
-
...restProps
|
|
10
|
-
}: WithElementRef<HTMLAttributes<HTMLLIElement>, HTMLLIElement> = $props();
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<li
|
|
14
|
-
bind:this={ref}
|
|
15
|
-
data-slot="sidebar-menu-item"
|
|
16
|
-
data-sidebar="menu-item"
|
|
17
|
-
class={cn('group/menu-item relative', className)}
|
|
18
|
-
{...restProps}
|
|
19
|
-
>
|
|
20
|
-
{@render children?.()}
|
|
21
|
-
</li>
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { cn, type WithElementRef } from '@lib/utils.js';
|
|
3
|
-
import { Skeleton } from '@lib/components/ui/skeleton/index.js';
|
|
4
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
5
|
-
|
|
6
|
-
let {
|
|
7
|
-
ref = $bindable(null),
|
|
8
|
-
class: className,
|
|
9
|
-
showIcon = false,
|
|
10
|
-
children,
|
|
11
|
-
...restProps
|
|
12
|
-
}: WithElementRef<HTMLAttributes<HTMLElement>> & {
|
|
13
|
-
showIcon?: boolean;
|
|
14
|
-
} = $props();
|
|
15
|
-
|
|
16
|
-
// Random width between 50% and 90%
|
|
17
|
-
const width = `${Math.floor(Math.random() * 40) + 50}%`;
|
|
18
|
-
</script>
|
|
19
|
-
|
|
20
|
-
<div
|
|
21
|
-
bind:this={ref}
|
|
22
|
-
data-slot="sidebar-menu-skeleton"
|
|
23
|
-
data-sidebar="menu-skeleton"
|
|
24
|
-
class={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}
|
|
25
|
-
{...restProps}
|
|
26
|
-
>
|
|
27
|
-
{#if showIcon}
|
|
28
|
-
<Skeleton class="size-4 rounded-md" data-sidebar="menu-skeleton-icon" />
|
|
29
|
-
{/if}
|
|
30
|
-
<Skeleton
|
|
31
|
-
class="max-w-(--skeleton-width) h-4 flex-1"
|
|
32
|
-
data-sidebar="menu-skeleton-text"
|
|
33
|
-
style="--skeleton-width: {width};"
|
|
34
|
-
/>
|
|
35
|
-
{@render children?.()}
|
|
36
|
-
</div>
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { cn, type WithElementRef } from '@lib/utils.js';
|
|
3
|
-
import type { Snippet } from 'svelte';
|
|
4
|
-
import type { HTMLAnchorAttributes } from 'svelte/elements';
|
|
5
|
-
|
|
6
|
-
let {
|
|
7
|
-
ref = $bindable(null),
|
|
8
|
-
children,
|
|
9
|
-
child,
|
|
10
|
-
class: className,
|
|
11
|
-
size = 'md',
|
|
12
|
-
isActive = false,
|
|
13
|
-
...restProps
|
|
14
|
-
}: WithElementRef<HTMLAnchorAttributes> & {
|
|
15
|
-
child?: Snippet<[{ props: Record<string, unknown> }]>;
|
|
16
|
-
size?: 'sm' | 'md';
|
|
17
|
-
isActive?: boolean;
|
|
18
|
-
} = $props();
|
|
19
|
-
|
|
20
|
-
const mergedProps = $derived({
|
|
21
|
-
class: cn(
|
|
22
|
-
'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground outline-hidden flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',
|
|
23
|
-
'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',
|
|
24
|
-
size === 'sm' && 'text-xs',
|
|
25
|
-
size === 'md' && 'text-sm',
|
|
26
|
-
'group-data-[collapsible=icon]:hidden',
|
|
27
|
-
className
|
|
28
|
-
),
|
|
29
|
-
'data-slot': 'sidebar-menu-sub-button',
|
|
30
|
-
'data-sidebar': 'menu-sub-button',
|
|
31
|
-
'data-size': size,
|
|
32
|
-
'data-active': isActive,
|
|
33
|
-
...restProps
|
|
34
|
-
});
|
|
35
|
-
</script>
|
|
36
|
-
|
|
37
|
-
{#if child}
|
|
38
|
-
{@render child({ props: mergedProps })}
|
|
39
|
-
{:else}
|
|
40
|
-
<a bind:this={ref} {...mergedProps}>
|
|
41
|
-
{@render children?.()}
|
|
42
|
-
</a>
|
|
43
|
-
{/if}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { cn, type WithElementRef } from '@lib/utils.js';
|
|
3
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
4
|
-
|
|
5
|
-
let {
|
|
6
|
-
ref = $bindable(null),
|
|
7
|
-
children,
|
|
8
|
-
class: className,
|
|
9
|
-
...restProps
|
|
10
|
-
}: WithElementRef<HTMLAttributes<HTMLLIElement>> = $props();
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<li
|
|
14
|
-
bind:this={ref}
|
|
15
|
-
data-slot="sidebar-menu-sub-item"
|
|
16
|
-
data-sidebar="menu-sub-item"
|
|
17
|
-
class={cn('group/menu-sub-item relative', className)}
|
|
18
|
-
{...restProps}
|
|
19
|
-
>
|
|
20
|
-
{@render children?.()}
|
|
21
|
-
</li>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { cn, type WithElementRef } from '@lib/utils.js';
|
|
3
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
4
|
-
|
|
5
|
-
let {
|
|
6
|
-
ref = $bindable(null),
|
|
7
|
-
class: className,
|
|
8
|
-
children,
|
|
9
|
-
...restProps
|
|
10
|
-
}: WithElementRef<HTMLAttributes<HTMLUListElement>> = $props();
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<ul
|
|
14
|
-
bind:this={ref}
|
|
15
|
-
data-slot="sidebar-menu-sub"
|
|
16
|
-
data-sidebar="menu-sub"
|
|
17
|
-
class={cn(
|
|
18
|
-
'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5',
|
|
19
|
-
'group-data-[collapsible=icon]:hidden',
|
|
20
|
-
className
|
|
21
|
-
)}
|
|
22
|
-
{...restProps}
|
|
23
|
-
>
|
|
24
|
-
{@render children?.()}
|
|
25
|
-
</ul>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { cn, type WithElementRef } from '@lib/utils.js';
|
|
3
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
4
|
-
|
|
5
|
-
let {
|
|
6
|
-
ref = $bindable(null),
|
|
7
|
-
class: className,
|
|
8
|
-
children,
|
|
9
|
-
...restProps
|
|
10
|
-
}: WithElementRef<HTMLAttributes<HTMLUListElement>, HTMLUListElement> = $props();
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<ul
|
|
14
|
-
bind:this={ref}
|
|
15
|
-
data-slot="sidebar-menu"
|
|
16
|
-
data-sidebar="menu"
|
|
17
|
-
class={cn('flex w-full min-w-0 flex-col gap-1', className)}
|
|
18
|
-
{...restProps}
|
|
19
|
-
>
|
|
20
|
-
{@render children?.()}
|
|
21
|
-
</ul>
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import * as Tooltip from '@lib/components/ui/tooltip/index.js';
|
|
3
|
-
import { cn, type WithElementRef } from '@lib/utils.js';
|
|
4
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
5
|
-
import {
|
|
6
|
-
SIDEBAR_COOKIE_MAX_AGE,
|
|
7
|
-
SIDEBAR_COOKIE_NAME,
|
|
8
|
-
SIDEBAR_WIDTH,
|
|
9
|
-
SIDEBAR_WIDTH_ICON
|
|
10
|
-
} from './constants.js';
|
|
11
|
-
import { setSidebar } from './context.svelte.js';
|
|
12
|
-
|
|
13
|
-
let {
|
|
14
|
-
ref = $bindable(null),
|
|
15
|
-
open = $bindable(true),
|
|
16
|
-
onOpenChange = () => {},
|
|
17
|
-
class: className,
|
|
18
|
-
style,
|
|
19
|
-
children,
|
|
20
|
-
...restProps
|
|
21
|
-
}: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
|
|
22
|
-
open?: boolean;
|
|
23
|
-
onOpenChange?: (open: boolean) => void;
|
|
24
|
-
} = $props();
|
|
25
|
-
|
|
26
|
-
const sidebar = setSidebar({
|
|
27
|
-
open: () => open,
|
|
28
|
-
setOpen: (value: boolean) => {
|
|
29
|
-
open = value;
|
|
30
|
-
onOpenChange(value);
|
|
31
|
-
|
|
32
|
-
// This sets the cookie to keep the sidebar state.
|
|
33
|
-
document.cookie = `${SIDEBAR_COOKIE_NAME}=${open}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
</script>
|
|
37
|
-
|
|
38
|
-
<svelte:window onkeydown={sidebar.handleShortcutKeydown} />
|
|
39
|
-
|
|
40
|
-
<Tooltip.Provider delayDuration={0}>
|
|
41
|
-
<div
|
|
42
|
-
data-slot="sidebar-wrapper"
|
|
43
|
-
style="--sidebar-width: {SIDEBAR_WIDTH}; --sidebar-width-icon: {SIDEBAR_WIDTH_ICON}; {style}"
|
|
44
|
-
class={cn(
|
|
45
|
-
'group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full',
|
|
46
|
-
className
|
|
47
|
-
)}
|
|
48
|
-
bind:this={ref}
|
|
49
|
-
{...restProps}
|
|
50
|
-
>
|
|
51
|
-
{@render children?.()}
|
|
52
|
-
</div>
|
|
53
|
-
</Tooltip.Provider>
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { cn, type WithElementRef } from '@lib/utils.js';
|
|
3
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
4
|
-
import { useSidebar } from './context.svelte.js';
|
|
5
|
-
|
|
6
|
-
let {
|
|
7
|
-
ref = $bindable(null),
|
|
8
|
-
class: className,
|
|
9
|
-
children,
|
|
10
|
-
...restProps
|
|
11
|
-
}: WithElementRef<HTMLAttributes<HTMLButtonElement>, HTMLButtonElement> = $props();
|
|
12
|
-
|
|
13
|
-
const sidebar = useSidebar();
|
|
14
|
-
</script>
|
|
15
|
-
|
|
16
|
-
<button
|
|
17
|
-
bind:this={ref}
|
|
18
|
-
data-sidebar="rail"
|
|
19
|
-
data-slot="sidebar-rail"
|
|
20
|
-
aria-label="Toggle Sidebar"
|
|
21
|
-
tabIndex={-1}
|
|
22
|
-
onclick={sidebar.toggle}
|
|
23
|
-
title="Toggle Sidebar"
|
|
24
|
-
class={cn(
|
|
25
|
-
'hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-[calc(1/2*100%-1px)] after:w-[2px] group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',
|
|
26
|
-
'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',
|
|
27
|
-
'[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',
|
|
28
|
-
'hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full',
|
|
29
|
-
'[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',
|
|
30
|
-
'[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',
|
|
31
|
-
className
|
|
32
|
-
)}
|
|
33
|
-
{...restProps}
|
|
34
|
-
>
|
|
35
|
-
{@render children?.()}
|
|
36
|
-
</button>
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { Separator } from '@lib/components/ui/separator/index.js';
|
|
3
|
-
import { cn } from '@lib/utils.js';
|
|
4
|
-
import type { ComponentProps } from 'svelte';
|
|
5
|
-
|
|
6
|
-
let {
|
|
7
|
-
ref = $bindable(null),
|
|
8
|
-
class: className,
|
|
9
|
-
...restProps
|
|
10
|
-
}: ComponentProps<typeof Separator> = $props();
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<Separator
|
|
14
|
-
bind:ref
|
|
15
|
-
data-slot="sidebar-separator"
|
|
16
|
-
data-sidebar="separator"
|
|
17
|
-
class={cn('bg-sidebar-border', className)}
|
|
18
|
-
{...restProps}
|
|
19
|
-
/>
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { Button } from '@lib/components/ui/button/index.js';
|
|
3
|
-
import { cn } from '@lib/utils.js';
|
|
4
|
-
import PanelLeftIcon from '@lucide/svelte/icons/panel-left';
|
|
5
|
-
import type { ComponentProps } from 'svelte';
|
|
6
|
-
import { useSidebar } from './context.svelte.js';
|
|
7
|
-
|
|
8
|
-
let {
|
|
9
|
-
ref = $bindable(null),
|
|
10
|
-
class: className,
|
|
11
|
-
onclick,
|
|
12
|
-
...restProps
|
|
13
|
-
}: ComponentProps<typeof Button> & {
|
|
14
|
-
onclick?: (e: MouseEvent) => void;
|
|
15
|
-
} = $props();
|
|
16
|
-
|
|
17
|
-
const sidebar = useSidebar();
|
|
18
|
-
</script>
|
|
19
|
-
|
|
20
|
-
<Button
|
|
21
|
-
data-sidebar="trigger"
|
|
22
|
-
data-slot="sidebar-trigger"
|
|
23
|
-
variant="ghost"
|
|
24
|
-
size="icon"
|
|
25
|
-
class={cn('size-7', className)}
|
|
26
|
-
type="button"
|
|
27
|
-
onclick={(e) => {
|
|
28
|
-
onclick?.(e);
|
|
29
|
-
sidebar.toggle();
|
|
30
|
-
}}
|
|
31
|
-
{...restProps}
|
|
32
|
-
>
|
|
33
|
-
<PanelLeftIcon />
|
|
34
|
-
<span class="sr-only">Toggle Sidebar</span>
|
|
35
|
-
</Button>
|