@autumnsgrove/groveengine 0.1.1 → 0.3.0
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/dist/components/admin/GutterManager.svelte +1 -2
- package/dist/components/admin/MarkdownEditor.svelte +1 -2
- package/dist/components/custom/InternalsPostViewer.svelte +95 -0
- package/dist/components/custom/InternalsPostViewer.svelte.d.ts +13 -0
- package/dist/components/ui/index.d.ts +0 -12
- package/dist/components/ui/index.js +2 -13
- package/dist/components/ui/select/select-separator.svelte +2 -3
- package/dist/components/ui/select/select-separator.svelte.d.ts +1 -1
- package/dist/utils/markdown.d.ts +42 -0
- package/dist/utils/markdown.js +104 -0
- package/package.json +2 -1
- package/dist/components/ui/Badge.svelte +0 -48
- package/dist/components/ui/Badge.svelte.d.ts +0 -26
- package/dist/components/ui/Button.svelte +0 -74
- package/dist/components/ui/Button.svelte.d.ts +0 -34
- package/dist/components/ui/Card.svelte +0 -102
- package/dist/components/ui/Card.svelte.d.ts +0 -46
- package/dist/components/ui/Input.svelte +0 -81
- package/dist/components/ui/Input.svelte.d.ts +0 -35
- package/dist/components/ui/Skeleton.svelte +0 -31
- package/dist/components/ui/Skeleton.svelte.d.ts +0 -26
- package/dist/components/ui/Textarea.svelte +0 -81
- package/dist/components/ui/Textarea.svelte.d.ts +0 -35
- package/dist/components/ui/badge/badge.svelte +0 -50
- package/dist/components/ui/badge/badge.svelte.d.ts +0 -60
- package/dist/components/ui/badge/index.d.ts +0 -2
- package/dist/components/ui/badge/index.js +0 -2
- package/dist/components/ui/button/button.svelte +0 -82
- package/dist/components/ui/button/button.svelte.d.ts +0 -132
- package/dist/components/ui/button/index.d.ts +0 -2
- package/dist/components/ui/button/index.js +0 -4
- package/dist/components/ui/card/card-content.svelte +0 -16
- package/dist/components/ui/card/card-content.svelte.d.ts +0 -5
- package/dist/components/ui/card/card-description.svelte +0 -16
- package/dist/components/ui/card/card-description.svelte.d.ts +0 -5
- package/dist/components/ui/card/card-footer.svelte +0 -16
- package/dist/components/ui/card/card-footer.svelte.d.ts +0 -5
- package/dist/components/ui/card/card-header.svelte +0 -16
- package/dist/components/ui/card/card-header.svelte.d.ts +0 -5
- package/dist/components/ui/card/card-title.svelte +0 -25
- package/dist/components/ui/card/card-title.svelte.d.ts +0 -8
- package/dist/components/ui/card/card.svelte +0 -20
- package/dist/components/ui/card/card.svelte.d.ts +0 -5
- package/dist/components/ui/card/index.d.ts +0 -7
- package/dist/components/ui/card/index.js +0 -9
- package/dist/components/ui/input/index.d.ts +0 -2
- package/dist/components/ui/input/index.js +0 -4
- package/dist/components/ui/input/input.svelte +0 -46
- package/dist/components/ui/input/input.svelte.d.ts +0 -13
- package/dist/components/ui/separator/index.d.ts +0 -2
- package/dist/components/ui/separator/index.js +0 -4
- package/dist/components/ui/separator/separator.svelte +0 -22
- package/dist/components/ui/separator/separator.svelte.d.ts +0 -4
- package/dist/components/ui/skeleton/index.d.ts +0 -2
- package/dist/components/ui/skeleton/index.js +0 -4
- package/dist/components/ui/skeleton/skeleton.svelte +0 -17
- package/dist/components/ui/skeleton/skeleton.svelte.d.ts +0 -5
- package/dist/components/ui/textarea/index.d.ts +0 -2
- package/dist/components/ui/textarea/index.js +0 -4
- package/dist/components/ui/textarea/textarea.svelte +0 -24
- package/dist/components/ui/textarea/textarea.svelte.d.ts +0 -6
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import type { Snippet } from "svelte";
|
|
2
|
-
/**
|
|
3
|
-
* Card component wrapper providing structured layout with header, content, and footer
|
|
4
|
-
*
|
|
5
|
-
* @prop {string} [title] - Card title (renders in CardHeader with CardTitle)
|
|
6
|
-
* @prop {string} [description] - Card description (renders in CardHeader with CardDescription)
|
|
7
|
-
* @prop {boolean} [hoverable=false] - Enable hover shadow effect for interactive cards
|
|
8
|
-
* @prop {Snippet} [header] - Custom header content (overrides title/description)
|
|
9
|
-
* @prop {Snippet} [footer] - Footer content (rendered in CardFooter)
|
|
10
|
-
* @prop {Snippet} [children] - Main card content (rendered in CardContent)
|
|
11
|
-
* @prop {string} [class] - Additional CSS classes for Card root
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* <Card title="Profile" description="Update your profile settings">
|
|
15
|
-
* <p>Card content here</p>
|
|
16
|
-
* </Card>
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* <Card hoverable>
|
|
20
|
-
* {#snippet header()}
|
|
21
|
-
* <CustomHeader />
|
|
22
|
-
* {/snippet}
|
|
23
|
-
* Content here
|
|
24
|
-
* </Card>
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* <Card title="Actions">
|
|
28
|
-
* {#snippet footer()}
|
|
29
|
-
* <Button>Save</Button>
|
|
30
|
-
* {/snippet}
|
|
31
|
-
* Form content
|
|
32
|
-
* </Card>
|
|
33
|
-
*/
|
|
34
|
-
interface Props {
|
|
35
|
-
title?: string;
|
|
36
|
-
description?: string;
|
|
37
|
-
hoverable?: boolean;
|
|
38
|
-
class?: string;
|
|
39
|
-
header?: Snippet;
|
|
40
|
-
footer?: Snippet;
|
|
41
|
-
children?: Snippet;
|
|
42
|
-
[key: string]: any;
|
|
43
|
-
}
|
|
44
|
-
declare const Card: import("svelte").Component<Props, {}, "">;
|
|
45
|
-
type Card = ReturnType<typeof Card>;
|
|
46
|
-
export default Card;
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { Input as ShadcnInput } from "./input";
|
|
3
|
-
import type { HTMLInputAttributes } from "svelte/elements";
|
|
4
|
-
import { cn } from "../../utils";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Input component wrapper with label, error handling, and validation
|
|
8
|
-
*
|
|
9
|
-
* @prop {string} [label] - Input label text (renders above input)
|
|
10
|
-
* @prop {string} [error] - Error message to display (turns border red)
|
|
11
|
-
* @prop {string|number} [value] - Input value (bindable for two-way binding)
|
|
12
|
-
* @prop {string} [placeholder] - Placeholder text
|
|
13
|
-
* @prop {string} [type="text"] - Input type (text|email|password|number)
|
|
14
|
-
* @prop {boolean} [required=false] - Whether input is required (shows asterisk)
|
|
15
|
-
* @prop {boolean} [disabled=false] - Whether input is disabled
|
|
16
|
-
* @prop {string} [class] - Additional CSS classes to apply
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* <Input label="Email" type="email" bind:value={email} required />
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* <Input label="Password" type="password" bind:value={password} error={passwordError} />
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* <Input placeholder="Search..." bind:value={searchQuery} />
|
|
26
|
-
*/
|
|
27
|
-
interface Props extends Omit<HTMLInputAttributes, "class"> {
|
|
28
|
-
label?: string;
|
|
29
|
-
error?: string;
|
|
30
|
-
value?: string | number;
|
|
31
|
-
placeholder?: string;
|
|
32
|
-
type?: "text" | "email" | "password" | "number";
|
|
33
|
-
required?: boolean;
|
|
34
|
-
disabled?: boolean;
|
|
35
|
-
class?: string;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
let {
|
|
39
|
-
label,
|
|
40
|
-
error,
|
|
41
|
-
value = $bindable(""),
|
|
42
|
-
placeholder,
|
|
43
|
-
type = "text",
|
|
44
|
-
required = false,
|
|
45
|
-
disabled = false,
|
|
46
|
-
class: className,
|
|
47
|
-
...restProps
|
|
48
|
-
}: Props = $props();
|
|
49
|
-
|
|
50
|
-
const inputClass = $derived(
|
|
51
|
-
cn(
|
|
52
|
-
error && "border-destructive focus-visible:ring-destructive/20",
|
|
53
|
-
className
|
|
54
|
-
)
|
|
55
|
-
);
|
|
56
|
-
</script>
|
|
57
|
-
|
|
58
|
-
<div class="flex flex-col gap-1.5">
|
|
59
|
-
{#if label}
|
|
60
|
-
<label class="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70">
|
|
61
|
-
{label}
|
|
62
|
-
{#if required}
|
|
63
|
-
<span class="text-destructive">*</span>
|
|
64
|
-
{/if}
|
|
65
|
-
</label>
|
|
66
|
-
{/if}
|
|
67
|
-
|
|
68
|
-
<ShadcnInput
|
|
69
|
-
bind:value
|
|
70
|
-
{type}
|
|
71
|
-
{placeholder}
|
|
72
|
-
{required}
|
|
73
|
-
{disabled}
|
|
74
|
-
class={inputClass}
|
|
75
|
-
{...restProps}
|
|
76
|
-
/>
|
|
77
|
-
|
|
78
|
-
{#if error}
|
|
79
|
-
<p class="text-sm text-destructive">{error}</p>
|
|
80
|
-
{/if}
|
|
81
|
-
</div>
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { HTMLInputAttributes } from "svelte/elements";
|
|
2
|
-
/**
|
|
3
|
-
* Input component wrapper with label, error handling, and validation
|
|
4
|
-
*
|
|
5
|
-
* @prop {string} [label] - Input label text (renders above input)
|
|
6
|
-
* @prop {string} [error] - Error message to display (turns border red)
|
|
7
|
-
* @prop {string|number} [value] - Input value (bindable for two-way binding)
|
|
8
|
-
* @prop {string} [placeholder] - Placeholder text
|
|
9
|
-
* @prop {string} [type="text"] - Input type (text|email|password|number)
|
|
10
|
-
* @prop {boolean} [required=false] - Whether input is required (shows asterisk)
|
|
11
|
-
* @prop {boolean} [disabled=false] - Whether input is disabled
|
|
12
|
-
* @prop {string} [class] - Additional CSS classes to apply
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* <Input label="Email" type="email" bind:value={email} required />
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* <Input label="Password" type="password" bind:value={password} error={passwordError} />
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* <Input placeholder="Search..." bind:value={searchQuery} />
|
|
22
|
-
*/
|
|
23
|
-
interface Props extends Omit<HTMLInputAttributes, "class"> {
|
|
24
|
-
label?: string;
|
|
25
|
-
error?: string;
|
|
26
|
-
value?: string | number;
|
|
27
|
-
placeholder?: string;
|
|
28
|
-
type?: "text" | "email" | "password" | "number";
|
|
29
|
-
required?: boolean;
|
|
30
|
-
disabled?: boolean;
|
|
31
|
-
class?: string;
|
|
32
|
-
}
|
|
33
|
-
declare const Input: import("svelte").Component<Props, {}, "value">;
|
|
34
|
-
type Input = ReturnType<typeof Input>;
|
|
35
|
-
export default Input;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { Skeleton as ShadcnSkeleton } from "./skeleton";
|
|
3
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Skeleton component wrapper for loading placeholders
|
|
7
|
-
* Creates animated gray rectangles that indicate loading content
|
|
8
|
-
*
|
|
9
|
-
* @prop {string} [class] - CSS classes to customize size/shape (e.g., "h-12 w-12 rounded-full")
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* <Skeleton class="h-4 w-full" />
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* <Skeleton class="h-12 w-12 rounded-full" />
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* <div class="flex flex-col gap-2">
|
|
19
|
-
* <Skeleton class="h-6 w-3/4" />
|
|
20
|
-
* <Skeleton class="h-4 w-full" />
|
|
21
|
-
* <Skeleton class="h-4 w-5/6" />
|
|
22
|
-
* </div>
|
|
23
|
-
*/
|
|
24
|
-
interface Props extends HTMLAttributes<HTMLDivElement> {
|
|
25
|
-
class?: string;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
let { class: className, ...restProps }: Props = $props();
|
|
29
|
-
</script>
|
|
30
|
-
|
|
31
|
-
<ShadcnSkeleton class={className} {...restProps} />
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
2
|
-
/**
|
|
3
|
-
* Skeleton component wrapper for loading placeholders
|
|
4
|
-
* Creates animated gray rectangles that indicate loading content
|
|
5
|
-
*
|
|
6
|
-
* @prop {string} [class] - CSS classes to customize size/shape (e.g., "h-12 w-12 rounded-full")
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* <Skeleton class="h-4 w-full" />
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* <Skeleton class="h-12 w-12 rounded-full" />
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* <div class="flex flex-col gap-2">
|
|
16
|
-
* <Skeleton class="h-6 w-3/4" />
|
|
17
|
-
* <Skeleton class="h-4 w-full" />
|
|
18
|
-
* <Skeleton class="h-4 w-5/6" />
|
|
19
|
-
* </div>
|
|
20
|
-
*/
|
|
21
|
-
interface Props extends HTMLAttributes<HTMLDivElement> {
|
|
22
|
-
class?: string;
|
|
23
|
-
}
|
|
24
|
-
declare const Skeleton: import("svelte").Component<Props, {}, "">;
|
|
25
|
-
type Skeleton = ReturnType<typeof Skeleton>;
|
|
26
|
-
export default Skeleton;
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { Textarea as ShadcnTextarea } from "./textarea";
|
|
3
|
-
import type { HTMLTextareaAttributes } from "svelte/elements";
|
|
4
|
-
import { cn } from "../../utils";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Textarea component wrapper with label, error handling, and validation
|
|
8
|
-
*
|
|
9
|
-
* @prop {string} [label] - Textarea label text (renders above textarea)
|
|
10
|
-
* @prop {string} [error] - Error message to display (turns border red)
|
|
11
|
-
* @prop {string} [value] - Textarea value (bindable for two-way binding)
|
|
12
|
-
* @prop {string} [placeholder] - Placeholder text
|
|
13
|
-
* @prop {number} [rows] - Number of visible text rows
|
|
14
|
-
* @prop {boolean} [required=false] - Whether textarea is required (shows asterisk)
|
|
15
|
-
* @prop {boolean} [disabled=false] - Whether textarea is disabled
|
|
16
|
-
* @prop {string} [class] - Additional CSS classes to apply
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* <Textarea label="Description" bind:value={description} required />
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* <Textarea label="Notes" bind:value={notes} rows={5} error={notesError} />
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* <Textarea placeholder="Enter your message..." bind:value={message} />
|
|
26
|
-
*/
|
|
27
|
-
interface Props extends Omit<HTMLTextareaAttributes, "class"> {
|
|
28
|
-
label?: string;
|
|
29
|
-
error?: string;
|
|
30
|
-
value?: string;
|
|
31
|
-
placeholder?: string;
|
|
32
|
-
rows?: number;
|
|
33
|
-
required?: boolean;
|
|
34
|
-
disabled?: boolean;
|
|
35
|
-
class?: string;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
let {
|
|
39
|
-
label,
|
|
40
|
-
error,
|
|
41
|
-
value = $bindable(""),
|
|
42
|
-
placeholder,
|
|
43
|
-
rows,
|
|
44
|
-
required = false,
|
|
45
|
-
disabled = false,
|
|
46
|
-
class: className,
|
|
47
|
-
...restProps
|
|
48
|
-
}: Props = $props();
|
|
49
|
-
|
|
50
|
-
const textareaClass = $derived(
|
|
51
|
-
cn(
|
|
52
|
-
error && "border-destructive focus-visible:ring-destructive/20",
|
|
53
|
-
className
|
|
54
|
-
)
|
|
55
|
-
);
|
|
56
|
-
</script>
|
|
57
|
-
|
|
58
|
-
<div class="flex flex-col gap-1.5">
|
|
59
|
-
{#if label}
|
|
60
|
-
<label class="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70">
|
|
61
|
-
{label}
|
|
62
|
-
{#if required}
|
|
63
|
-
<span class="text-destructive">*</span>
|
|
64
|
-
{/if}
|
|
65
|
-
</label>
|
|
66
|
-
{/if}
|
|
67
|
-
|
|
68
|
-
<ShadcnTextarea
|
|
69
|
-
bind:value
|
|
70
|
-
{placeholder}
|
|
71
|
-
{rows}
|
|
72
|
-
{required}
|
|
73
|
-
{disabled}
|
|
74
|
-
class={textareaClass}
|
|
75
|
-
{...restProps}
|
|
76
|
-
/>
|
|
77
|
-
|
|
78
|
-
{#if error}
|
|
79
|
-
<p class="text-sm text-destructive">{error}</p>
|
|
80
|
-
{/if}
|
|
81
|
-
</div>
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { HTMLTextareaAttributes } from "svelte/elements";
|
|
2
|
-
/**
|
|
3
|
-
* Textarea component wrapper with label, error handling, and validation
|
|
4
|
-
*
|
|
5
|
-
* @prop {string} [label] - Textarea label text (renders above textarea)
|
|
6
|
-
* @prop {string} [error] - Error message to display (turns border red)
|
|
7
|
-
* @prop {string} [value] - Textarea value (bindable for two-way binding)
|
|
8
|
-
* @prop {string} [placeholder] - Placeholder text
|
|
9
|
-
* @prop {number} [rows] - Number of visible text rows
|
|
10
|
-
* @prop {boolean} [required=false] - Whether textarea is required (shows asterisk)
|
|
11
|
-
* @prop {boolean} [disabled=false] - Whether textarea is disabled
|
|
12
|
-
* @prop {string} [class] - Additional CSS classes to apply
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* <Textarea label="Description" bind:value={description} required />
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* <Textarea label="Notes" bind:value={notes} rows={5} error={notesError} />
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* <Textarea placeholder="Enter your message..." bind:value={message} />
|
|
22
|
-
*/
|
|
23
|
-
interface Props extends Omit<HTMLTextareaAttributes, "class"> {
|
|
24
|
-
label?: string;
|
|
25
|
-
error?: string;
|
|
26
|
-
value?: string;
|
|
27
|
-
placeholder?: string;
|
|
28
|
-
rows?: number;
|
|
29
|
-
required?: boolean;
|
|
30
|
-
disabled?: boolean;
|
|
31
|
-
class?: string;
|
|
32
|
-
}
|
|
33
|
-
declare const Textarea: import("svelte").Component<Props, {}, "value">;
|
|
34
|
-
type Textarea = ReturnType<typeof Textarea>;
|
|
35
|
-
export default Textarea;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
<script lang="ts" module>
|
|
2
|
-
import { type VariantProps, tv } from "tailwind-variants";
|
|
3
|
-
|
|
4
|
-
export const badgeVariants = tv({
|
|
5
|
-
base: "focus:ring-ring inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2",
|
|
6
|
-
variants: {
|
|
7
|
-
variant: {
|
|
8
|
-
default:
|
|
9
|
-
"bg-primary text-primary-foreground hover:bg-primary/80 border-transparent",
|
|
10
|
-
secondary:
|
|
11
|
-
"bg-secondary text-secondary-foreground hover:bg-secondary/80 border-transparent",
|
|
12
|
-
destructive:
|
|
13
|
-
"bg-destructive text-destructive-foreground hover:bg-destructive/80 border-transparent",
|
|
14
|
-
outline: "text-foreground",
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
defaultVariants: {
|
|
18
|
-
variant: "default",
|
|
19
|
-
},
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
export type BadgeVariant = VariantProps<typeof badgeVariants>["variant"];
|
|
23
|
-
</script>
|
|
24
|
-
|
|
25
|
-
<script lang="ts">
|
|
26
|
-
import type { WithElementRef } from "bits-ui";
|
|
27
|
-
import type { HTMLAnchorAttributes } from "svelte/elements";
|
|
28
|
-
import { cn } from "../../../utils";
|
|
29
|
-
|
|
30
|
-
let {
|
|
31
|
-
ref = $bindable(null),
|
|
32
|
-
href,
|
|
33
|
-
class: className,
|
|
34
|
-
variant = "default",
|
|
35
|
-
children,
|
|
36
|
-
...restProps
|
|
37
|
-
}: WithElementRef<HTMLAnchorAttributes> & {
|
|
38
|
-
variant?: BadgeVariant;
|
|
39
|
-
} = $props();
|
|
40
|
-
</script>
|
|
41
|
-
|
|
42
|
-
<svelte:element
|
|
43
|
-
this={href ? "a" : "span"}
|
|
44
|
-
bind:this={ref}
|
|
45
|
-
{href}
|
|
46
|
-
class={cn(badgeVariants({ variant }), className)}
|
|
47
|
-
{...restProps}
|
|
48
|
-
>
|
|
49
|
-
{@render children?.()}
|
|
50
|
-
</svelte:element>
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { type VariantProps } from "tailwind-variants";
|
|
2
|
-
export declare const badgeVariants: import("tailwind-variants").TVReturnType<{
|
|
3
|
-
variant: {
|
|
4
|
-
default: string;
|
|
5
|
-
secondary: string;
|
|
6
|
-
destructive: string;
|
|
7
|
-
outline: string;
|
|
8
|
-
};
|
|
9
|
-
}, undefined, "focus:ring-ring inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2", import("tailwind-variants/dist/config.js").TVConfig<{
|
|
10
|
-
variant: {
|
|
11
|
-
default: string;
|
|
12
|
-
secondary: string;
|
|
13
|
-
destructive: string;
|
|
14
|
-
outline: string;
|
|
15
|
-
};
|
|
16
|
-
}, {
|
|
17
|
-
variant: {
|
|
18
|
-
default: string;
|
|
19
|
-
secondary: string;
|
|
20
|
-
destructive: string;
|
|
21
|
-
outline: string;
|
|
22
|
-
};
|
|
23
|
-
}>, {
|
|
24
|
-
variant: {
|
|
25
|
-
default: string;
|
|
26
|
-
secondary: string;
|
|
27
|
-
destructive: string;
|
|
28
|
-
outline: string;
|
|
29
|
-
};
|
|
30
|
-
}, undefined, import("tailwind-variants").TVReturnType<{
|
|
31
|
-
variant: {
|
|
32
|
-
default: string;
|
|
33
|
-
secondary: string;
|
|
34
|
-
destructive: string;
|
|
35
|
-
outline: string;
|
|
36
|
-
};
|
|
37
|
-
}, undefined, "focus:ring-ring inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2", import("tailwind-variants/dist/config.js").TVConfig<{
|
|
38
|
-
variant: {
|
|
39
|
-
default: string;
|
|
40
|
-
secondary: string;
|
|
41
|
-
destructive: string;
|
|
42
|
-
outline: string;
|
|
43
|
-
};
|
|
44
|
-
}, {
|
|
45
|
-
variant: {
|
|
46
|
-
default: string;
|
|
47
|
-
secondary: string;
|
|
48
|
-
destructive: string;
|
|
49
|
-
outline: string;
|
|
50
|
-
};
|
|
51
|
-
}>, unknown, unknown, undefined>>;
|
|
52
|
-
export type BadgeVariant = VariantProps<typeof badgeVariants>["variant"];
|
|
53
|
-
import type { WithElementRef } from "bits-ui";
|
|
54
|
-
import type { HTMLAnchorAttributes } from "svelte/elements";
|
|
55
|
-
type $$ComponentProps = WithElementRef<HTMLAnchorAttributes> & {
|
|
56
|
-
variant?: BadgeVariant;
|
|
57
|
-
};
|
|
58
|
-
declare const Badge: import("svelte").Component<$$ComponentProps, {}, "ref">;
|
|
59
|
-
type Badge = ReturnType<typeof Badge>;
|
|
60
|
-
export default Badge;
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
<script lang="ts" module>
|
|
2
|
-
import { cn, type WithElementRef } from "../../../utils";
|
|
3
|
-
import type { HTMLAnchorAttributes, HTMLButtonAttributes } from "svelte/elements";
|
|
4
|
-
import { type VariantProps, tv } from "tailwind-variants";
|
|
5
|
-
|
|
6
|
-
export const buttonVariants = tv({
|
|
7
|
-
base: "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium outline-none transition-all focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
8
|
-
variants: {
|
|
9
|
-
variant: {
|
|
10
|
-
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
|
|
11
|
-
destructive:
|
|
12
|
-
"bg-destructive shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60 text-white",
|
|
13
|
-
outline:
|
|
14
|
-
"bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 border",
|
|
15
|
-
secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
|
|
16
|
-
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
|
17
|
-
link: "text-primary underline-offset-4 hover:underline",
|
|
18
|
-
},
|
|
19
|
-
size: {
|
|
20
|
-
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
21
|
-
sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
|
|
22
|
-
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
23
|
-
icon: "size-9",
|
|
24
|
-
"icon-sm": "size-8",
|
|
25
|
-
"icon-lg": "size-10",
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
defaultVariants: {
|
|
29
|
-
variant: "default",
|
|
30
|
-
size: "default",
|
|
31
|
-
},
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
export type ButtonVariant = VariantProps<typeof buttonVariants>["variant"];
|
|
35
|
-
export type ButtonSize = VariantProps<typeof buttonVariants>["size"];
|
|
36
|
-
|
|
37
|
-
export type ButtonProps = WithElementRef<HTMLButtonAttributes> &
|
|
38
|
-
WithElementRef<HTMLAnchorAttributes> & {
|
|
39
|
-
variant?: ButtonVariant;
|
|
40
|
-
size?: ButtonSize;
|
|
41
|
-
};
|
|
42
|
-
</script>
|
|
43
|
-
|
|
44
|
-
<script lang="ts">
|
|
45
|
-
let {
|
|
46
|
-
class: className,
|
|
47
|
-
variant = "default",
|
|
48
|
-
size = "default",
|
|
49
|
-
ref = $bindable(null),
|
|
50
|
-
href = undefined,
|
|
51
|
-
type = "button",
|
|
52
|
-
disabled,
|
|
53
|
-
children,
|
|
54
|
-
...restProps
|
|
55
|
-
}: ButtonProps = $props();
|
|
56
|
-
</script>
|
|
57
|
-
|
|
58
|
-
{#if href}
|
|
59
|
-
<a
|
|
60
|
-
bind:this={ref}
|
|
61
|
-
data-slot="button"
|
|
62
|
-
class={cn(buttonVariants({ variant, size }), className)}
|
|
63
|
-
href={disabled ? undefined : href}
|
|
64
|
-
aria-disabled={disabled}
|
|
65
|
-
role={disabled ? "link" : undefined}
|
|
66
|
-
tabindex={disabled ? -1 : undefined}
|
|
67
|
-
{...restProps}
|
|
68
|
-
>
|
|
69
|
-
{@render children?.()}
|
|
70
|
-
</a>
|
|
71
|
-
{:else}
|
|
72
|
-
<button
|
|
73
|
-
bind:this={ref}
|
|
74
|
-
data-slot="button"
|
|
75
|
-
class={cn(buttonVariants({ variant, size }), className)}
|
|
76
|
-
{type}
|
|
77
|
-
{disabled}
|
|
78
|
-
{...restProps}
|
|
79
|
-
>
|
|
80
|
-
{@render children?.()}
|
|
81
|
-
</button>
|
|
82
|
-
{/if}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { type WithElementRef } from "../../../utils";
|
|
2
|
-
import type { HTMLAnchorAttributes, HTMLButtonAttributes } from "svelte/elements";
|
|
3
|
-
import { type VariantProps } from "tailwind-variants";
|
|
4
|
-
export declare const buttonVariants: import("tailwind-variants").TVReturnType<{
|
|
5
|
-
variant: {
|
|
6
|
-
default: string;
|
|
7
|
-
destructive: string;
|
|
8
|
-
outline: string;
|
|
9
|
-
secondary: string;
|
|
10
|
-
ghost: string;
|
|
11
|
-
link: string;
|
|
12
|
-
};
|
|
13
|
-
size: {
|
|
14
|
-
default: string;
|
|
15
|
-
sm: string;
|
|
16
|
-
lg: string;
|
|
17
|
-
icon: string;
|
|
18
|
-
"icon-sm": string;
|
|
19
|
-
"icon-lg": string;
|
|
20
|
-
};
|
|
21
|
-
}, undefined, "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium outline-none transition-all focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", import("tailwind-variants/dist/config.js").TVConfig<{
|
|
22
|
-
variant: {
|
|
23
|
-
default: string;
|
|
24
|
-
destructive: string;
|
|
25
|
-
outline: string;
|
|
26
|
-
secondary: string;
|
|
27
|
-
ghost: string;
|
|
28
|
-
link: string;
|
|
29
|
-
};
|
|
30
|
-
size: {
|
|
31
|
-
default: string;
|
|
32
|
-
sm: string;
|
|
33
|
-
lg: string;
|
|
34
|
-
icon: string;
|
|
35
|
-
"icon-sm": string;
|
|
36
|
-
"icon-lg": string;
|
|
37
|
-
};
|
|
38
|
-
}, {
|
|
39
|
-
variant: {
|
|
40
|
-
default: string;
|
|
41
|
-
destructive: string;
|
|
42
|
-
outline: string;
|
|
43
|
-
secondary: string;
|
|
44
|
-
ghost: string;
|
|
45
|
-
link: string;
|
|
46
|
-
};
|
|
47
|
-
size: {
|
|
48
|
-
default: string;
|
|
49
|
-
sm: string;
|
|
50
|
-
lg: string;
|
|
51
|
-
icon: string;
|
|
52
|
-
"icon-sm": string;
|
|
53
|
-
"icon-lg": string;
|
|
54
|
-
};
|
|
55
|
-
}>, {
|
|
56
|
-
variant: {
|
|
57
|
-
default: string;
|
|
58
|
-
destructive: string;
|
|
59
|
-
outline: string;
|
|
60
|
-
secondary: string;
|
|
61
|
-
ghost: string;
|
|
62
|
-
link: string;
|
|
63
|
-
};
|
|
64
|
-
size: {
|
|
65
|
-
default: string;
|
|
66
|
-
sm: string;
|
|
67
|
-
lg: string;
|
|
68
|
-
icon: string;
|
|
69
|
-
"icon-sm": string;
|
|
70
|
-
"icon-lg": string;
|
|
71
|
-
};
|
|
72
|
-
}, undefined, import("tailwind-variants").TVReturnType<{
|
|
73
|
-
variant: {
|
|
74
|
-
default: string;
|
|
75
|
-
destructive: string;
|
|
76
|
-
outline: string;
|
|
77
|
-
secondary: string;
|
|
78
|
-
ghost: string;
|
|
79
|
-
link: string;
|
|
80
|
-
};
|
|
81
|
-
size: {
|
|
82
|
-
default: string;
|
|
83
|
-
sm: string;
|
|
84
|
-
lg: string;
|
|
85
|
-
icon: string;
|
|
86
|
-
"icon-sm": string;
|
|
87
|
-
"icon-lg": string;
|
|
88
|
-
};
|
|
89
|
-
}, undefined, "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium outline-none transition-all focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", import("tailwind-variants/dist/config.js").TVConfig<{
|
|
90
|
-
variant: {
|
|
91
|
-
default: string;
|
|
92
|
-
destructive: string;
|
|
93
|
-
outline: string;
|
|
94
|
-
secondary: string;
|
|
95
|
-
ghost: string;
|
|
96
|
-
link: string;
|
|
97
|
-
};
|
|
98
|
-
size: {
|
|
99
|
-
default: string;
|
|
100
|
-
sm: string;
|
|
101
|
-
lg: string;
|
|
102
|
-
icon: string;
|
|
103
|
-
"icon-sm": string;
|
|
104
|
-
"icon-lg": string;
|
|
105
|
-
};
|
|
106
|
-
}, {
|
|
107
|
-
variant: {
|
|
108
|
-
default: string;
|
|
109
|
-
destructive: string;
|
|
110
|
-
outline: string;
|
|
111
|
-
secondary: string;
|
|
112
|
-
ghost: string;
|
|
113
|
-
link: string;
|
|
114
|
-
};
|
|
115
|
-
size: {
|
|
116
|
-
default: string;
|
|
117
|
-
sm: string;
|
|
118
|
-
lg: string;
|
|
119
|
-
icon: string;
|
|
120
|
-
"icon-sm": string;
|
|
121
|
-
"icon-lg": string;
|
|
122
|
-
};
|
|
123
|
-
}>, unknown, unknown, undefined>>;
|
|
124
|
-
export type ButtonVariant = VariantProps<typeof buttonVariants>["variant"];
|
|
125
|
-
export type ButtonSize = VariantProps<typeof buttonVariants>["size"];
|
|
126
|
-
export type ButtonProps = WithElementRef<HTMLButtonAttributes> & WithElementRef<HTMLAnchorAttributes> & {
|
|
127
|
-
variant?: ButtonVariant;
|
|
128
|
-
size?: ButtonSize;
|
|
129
|
-
};
|
|
130
|
-
declare const Button: import("svelte").Component<ButtonProps, {}, "ref">;
|
|
131
|
-
type Button = ReturnType<typeof Button>;
|
|
132
|
-
export default Button;
|