@noahbaumgartner/svelte-ui 0.0.4 → 0.0.6
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/LICENSE +21 -0
- package/README.md +28 -13
- package/dist/components/accordion/Accordion.svelte +44 -0
- package/dist/components/accordion/Accordion.svelte.d.ts +13 -0
- package/dist/components/accordion/AccordionItem.svelte +145 -0
- package/dist/components/accordion/AccordionItem.svelte.d.ts +17 -0
- package/dist/components/accordion/context.d.ts +5 -0
- package/dist/components/accordion/context.js +2 -0
- package/dist/components/alert-dialog/AlertDialog.svelte +108 -76
- package/dist/components/alert-dialog/AlertDialog.svelte.d.ts +5 -2
- package/dist/components/avatar/Avatar.svelte +71 -49
- package/dist/components/avatar/Avatar.svelte.d.ts +5 -2
- package/dist/components/avatar-group/AvatarGroup.svelte +103 -0
- package/dist/components/avatar-group/AvatarGroup.svelte.d.ts +19 -0
- package/dist/components/badge/Badge.svelte +50 -28
- package/dist/components/badge/Badge.svelte.d.ts +6 -4
- package/dist/components/breadcrumb/Breadcrumb.svelte +21 -17
- package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts +3 -1
- package/dist/components/breadcrumb/BreadcrumbEllipsis.svelte +17 -6
- package/dist/components/breadcrumb/BreadcrumbEllipsis.svelte.d.ts +5 -2
- package/dist/components/breadcrumb/BreadcrumbItem.svelte +75 -36
- package/dist/components/breadcrumb/BreadcrumbItem.svelte.d.ts +8 -5
- package/dist/components/breadcrumb/BreadcrumbSeparator.svelte +32 -9
- package/dist/components/breadcrumb/BreadcrumbSeparator.svelte.d.ts +10 -17
- package/dist/components/button/Button.svelte +206 -168
- package/dist/components/button/Button.svelte.d.ts +9 -5
- package/dist/components/button-group/ButtonGroup.svelte +52 -55
- package/dist/components/button-group/ButtonGroup.svelte.d.ts +3 -1
- package/dist/components/calendar/Calendar.svelte +232 -144
- package/dist/components/calendar/Calendar.svelte.d.ts +19 -2
- package/dist/components/calendar/dates.d.ts +4 -1
- package/dist/components/calendar/dates.js +8 -2
- package/dist/components/card/Card.svelte +48 -32
- package/dist/components/card/Card.svelte.d.ts +3 -1
- package/dist/components/card/CardAction.svelte +11 -7
- package/dist/components/card/CardAction.svelte.d.ts +3 -1
- package/dist/components/card/CardContent.svelte +8 -4
- package/dist/components/card/CardContent.svelte.d.ts +3 -1
- package/dist/components/card/CardDescription.svelte +11 -7
- package/dist/components/card/CardDescription.svelte.d.ts +3 -1
- package/dist/components/card/CardFooter.svelte +15 -11
- package/dist/components/card/CardFooter.svelte.d.ts +3 -1
- package/dist/components/card/CardHeader.svelte +15 -11
- package/dist/components/card/CardHeader.svelte.d.ts +3 -1
- package/dist/components/card/CardTitle.svelte +11 -7
- package/dist/components/card/CardTitle.svelte.d.ts +3 -1
- package/dist/components/checkbox/Checkbox.svelte +152 -61
- package/dist/components/checkbox/Checkbox.svelte.d.ts +5 -2
- package/dist/components/color-picker/ColorPicker.svelte +131 -78
- package/dist/components/color-picker/ColorPicker.svelte.d.ts +10 -1
- package/dist/components/context-menu/ContextMenu.svelte +78 -61
- package/dist/components/context-menu/ContextMenu.svelte.d.ts +5 -2
- package/dist/components/context-menu/ContextMenuInfo.svelte +91 -0
- package/dist/components/context-menu/ContextMenuInfo.svelte.d.ts +19 -0
- package/dist/components/context-menu/ContextMenuItem.svelte +102 -57
- package/dist/components/context-menu/ContextMenuItem.svelte.d.ts +10 -5
- package/dist/components/context-menu/ContextMenuLabel.svelte +28 -0
- package/dist/components/context-menu/ContextMenuLabel.svelte.d.ts +10 -0
- package/dist/components/context-menu/ContextMenuSeparator.svelte +29 -0
- package/dist/components/context-menu/ContextMenuSeparator.svelte.d.ts +8 -0
- package/dist/components/dialog/Dialog.svelte +149 -108
- package/dist/components/dialog/Dialog.svelte.d.ts +7 -2
- package/dist/components/drawer/Drawer.svelte +419 -0
- package/dist/components/drawer/Drawer.svelte.d.ts +28 -0
- package/dist/components/empty-state/EmptyState.svelte +106 -0
- package/dist/components/empty-state/EmptyState.svelte.d.ts +19 -0
- package/dist/components/entry/Entry.svelte +94 -0
- package/dist/components/entry/Entry.svelte.d.ts +16 -0
- package/dist/components/field/Field.svelte +66 -45
- package/dist/components/field/Field.svelte.d.ts +2 -1
- package/dist/components/field/FieldContent.svelte +11 -8
- package/dist/components/field/FieldContent.svelte.d.ts +2 -1
- package/dist/components/field/FieldDescription.svelte +18 -15
- package/dist/components/field/FieldDescription.svelte.d.ts +2 -1
- package/dist/components/field/FieldError.svelte +22 -13
- package/dist/components/field/FieldError.svelte.d.ts +2 -1
- package/dist/components/field/FieldGroup.svelte +15 -12
- package/dist/components/field/FieldGroup.svelte.d.ts +2 -1
- package/dist/components/field/FieldLegend.svelte +23 -14
- package/dist/components/field/FieldLegend.svelte.d.ts +2 -1
- package/dist/components/field/FieldSeparator.svelte +12 -9
- package/dist/components/field/FieldSeparator.svelte.d.ts +2 -1
- package/dist/components/field/FieldSet.svelte +18 -15
- package/dist/components/field/FieldSet.svelte.d.ts +2 -1
- package/dist/components/footer/Footer.svelte +105 -0
- package/dist/components/footer/Footer.svelte.d.ts +14 -0
- package/dist/components/footer/FooterColumn.svelte +37 -0
- package/dist/components/footer/FooterColumn.svelte.d.ts +11 -0
- package/dist/components/image/Image.svelte +61 -0
- package/dist/components/image/Image.svelte.d.ts +18 -0
- package/dist/components/input/Input.svelte +307 -208
- package/dist/components/input/Input.svelte.d.ts +12 -1
- package/dist/components/input-group/InputGroup.svelte +101 -61
- package/dist/components/input-group/InputGroup.svelte.d.ts +2 -1
- package/dist/components/input-group/InputGroupAddon.svelte +58 -49
- package/dist/components/kbd/Kbd.svelte +39 -30
- package/dist/components/kbd/Kbd.svelte.d.ts +2 -1
- package/dist/components/kbd/KbdGroup.svelte +15 -12
- package/dist/components/kbd/KbdGroup.svelte.d.ts +2 -1
- package/dist/components/label/Label.svelte +47 -28
- package/dist/components/label/Label.svelte.d.ts +2 -1
- package/dist/components/link/Link.svelte +71 -17
- package/dist/components/link/Link.svelte.d.ts +2 -1
- package/dist/components/mesh-gradient/MeshGradient.svelte +97 -0
- package/dist/components/mesh-gradient/MeshGradient.svelte.d.ts +11 -0
- package/dist/components/navbar/Navbar.svelte +137 -99
- package/dist/components/navbar/Navbar.svelte.d.ts +4 -2
- package/dist/components/navigation-menu/NavigationMenu.svelte +37 -20
- package/dist/components/navigation-menu/NavigationMenu.svelte.d.ts +4 -2
- package/dist/components/navigation-menu/NavigationMenuItem.svelte +131 -89
- package/dist/components/navigation-menu/NavigationMenuItem.svelte.d.ts +4 -2
- package/dist/components/navigation-menu/NavigationMenuLink.svelte +90 -51
- package/dist/components/navigation-menu/NavigationMenuLink.svelte.d.ts +7 -5
- package/dist/components/number-stepper/NumberStepper.svelte +101 -0
- package/dist/components/number-stepper/NumberStepper.svelte.d.ts +21 -0
- package/dist/components/popover/Popover.svelte +85 -65
- package/dist/components/popover/Popover.svelte.d.ts +5 -2
- package/dist/components/preview-card/PreviewCard.svelte +184 -0
- package/dist/components/preview-card/PreviewCard.svelte.d.ts +23 -0
- package/dist/components/progress/Progress.svelte +111 -0
- package/dist/components/progress/Progress.svelte.d.ts +13 -0
- package/dist/components/radio-group/RadioGroup.svelte +24 -19
- package/dist/components/radio-group/RadioGroup.svelte.d.ts +2 -1
- package/dist/components/radio-group/RadioGroupItem.svelte +101 -54
- package/dist/components/radio-group/RadioGroupItem.svelte.d.ts +2 -1
- package/dist/components/section/Section.svelte +114 -0
- package/dist/components/section/Section.svelte.d.ts +22 -0
- package/dist/components/select/Select.svelte +474 -0
- package/dist/components/select/Select.svelte.d.ts +48 -0
- package/dist/components/separator/Separator.svelte +21 -10
- package/dist/components/separator/Separator.svelte.d.ts +2 -1
- package/dist/components/sidebar/Sidebar.svelte +158 -87
- package/dist/components/sidebar/Sidebar.svelte.d.ts +6 -1
- package/dist/components/sidebar/SidebarContent.svelte +15 -12
- package/dist/components/sidebar/SidebarContent.svelte.d.ts +2 -1
- package/dist/components/sidebar/SidebarFooter.svelte +10 -7
- package/dist/components/sidebar/SidebarFooter.svelte.d.ts +2 -1
- package/dist/components/sidebar/SidebarGroup.svelte +35 -25
- package/dist/components/sidebar/SidebarGroup.svelte.d.ts +2 -1
- package/dist/components/sidebar/SidebarHeader.svelte +37 -8
- package/dist/components/sidebar/SidebarHeader.svelte.d.ts +6 -1
- package/dist/components/sidebar/SidebarInset.svelte +11 -8
- package/dist/components/sidebar/SidebarInset.svelte.d.ts +2 -1
- package/dist/components/sidebar/SidebarMenu.svelte +13 -10
- package/dist/components/sidebar/SidebarMenu.svelte.d.ts +2 -1
- package/dist/components/sidebar/SidebarMenuItem.svelte +195 -114
- package/dist/components/sidebar/SidebarMenuItem.svelte.d.ts +11 -5
- package/dist/components/sidebar/SidebarProvider.svelte +18 -9
- package/dist/components/sidebar/SidebarProvider.svelte.d.ts +2 -1
- package/dist/components/sidebar/SidebarSeparator.svelte +6 -1
- package/dist/components/sidebar/SidebarSeparator.svelte.d.ts +6 -17
- package/dist/components/sidebar/SidebarTrigger.svelte +17 -5
- package/dist/components/sidebar/SidebarTrigger.svelte.d.ts +4 -2
- package/dist/components/skeleton/Skeleton.svelte +26 -16
- package/dist/components/skeleton/Skeleton.svelte.d.ts +4 -2
- package/dist/components/spinner/Spinner.svelte +71 -46
- package/dist/components/spinner/Spinner.svelte.d.ts +2 -1
- package/dist/components/switch/Switch.svelte +126 -65
- package/dist/components/switch/Switch.svelte.d.ts +4 -2
- package/dist/components/table/Table.svelte +135 -76
- package/dist/components/table/Table.svelte.d.ts +12 -2
- package/dist/components/tabs/Tabs.svelte +337 -0
- package/dist/components/tabs/Tabs.svelte.d.ts +50 -0
- package/dist/components/textarea/Textarea.svelte +76 -42
- package/dist/components/textarea/Textarea.svelte.d.ts +4 -1
- package/dist/components/time-picker/TimePicker.svelte +214 -85
- package/dist/components/time-picker/TimePicker.svelte.d.ts +18 -1
- package/dist/components/toaster/Toaster.svelte +132 -70
- package/dist/components/toaster/Toaster.svelte.d.ts +18 -2
- package/dist/components/toaster/toast.svelte.d.ts +3 -3
- package/dist/components/toggle/Toggle.svelte +25 -4
- package/dist/components/toggle/Toggle.svelte.d.ts +1 -1
- package/dist/components/tooltip/Tooltip.svelte +87 -58
- package/dist/components/tooltip/Tooltip.svelte.d.ts +4 -2
- package/dist/icon.d.ts +12 -0
- package/dist/icon.js +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +19 -0
- package/dist/internal/icons/ArrowDown.svelte +14 -0
- package/dist/internal/icons/ArrowDown.svelte.d.ts +4 -0
- package/dist/internal/icons/ArrowUp.svelte +14 -0
- package/dist/internal/icons/ArrowUp.svelte.d.ts +4 -0
- package/dist/internal/icons/Calendar.svelte +16 -0
- package/dist/internal/icons/Calendar.svelte.d.ts +4 -0
- package/dist/internal/icons/Check.svelte +8 -0
- package/dist/internal/icons/Check.svelte.d.ts +4 -0
- package/dist/internal/icons/ChevronDown.svelte +8 -0
- package/dist/internal/icons/ChevronDown.svelte.d.ts +4 -0
- package/dist/internal/icons/ChevronLeft.svelte +8 -0
- package/dist/internal/icons/ChevronLeft.svelte.d.ts +4 -0
- package/dist/internal/icons/ChevronRight.svelte +8 -0
- package/dist/internal/icons/ChevronRight.svelte.d.ts +4 -0
- package/dist/internal/icons/ChevronUp.svelte +8 -0
- package/dist/internal/icons/ChevronUp.svelte.d.ts +4 -0
- package/dist/internal/icons/ChevronsUpDown.svelte +14 -0
- package/dist/internal/icons/ChevronsUpDown.svelte.d.ts +4 -0
- package/dist/internal/icons/Clock.svelte +14 -0
- package/dist/internal/icons/Clock.svelte.d.ts +4 -0
- package/dist/internal/icons/Ellipsis.svelte +15 -0
- package/dist/internal/icons/Ellipsis.svelte.d.ts +4 -0
- package/dist/internal/icons/Icon.svelte +33 -0
- package/dist/internal/icons/Icon.svelte.d.ts +8 -0
- package/dist/internal/icons/Minus.svelte +8 -0
- package/dist/internal/icons/Minus.svelte.d.ts +4 -0
- package/dist/internal/icons/PanelLeft.svelte +14 -0
- package/dist/internal/icons/PanelLeft.svelte.d.ts +4 -0
- package/dist/internal/icons/Plus.svelte +14 -0
- package/dist/internal/icons/Plus.svelte.d.ts +4 -0
- package/dist/internal/icons/User.svelte +14 -0
- package/dist/internal/icons/User.svelte.d.ts +4 -0
- package/dist/internal/icons/X.svelte +14 -0
- package/dist/internal/icons/X.svelte.d.ts +4 -0
- package/dist/styles/tokens.css +39 -41
- package/package.json +5 -10
- package/dist/icons.d.ts +0 -2
- package/dist/icons.js +0 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IconComponent } from '../../icon.js';
|
|
2
2
|
export type ToastAction = {
|
|
3
3
|
label: string;
|
|
4
4
|
onclick: () => void;
|
|
@@ -6,8 +6,8 @@ export type ToastAction = {
|
|
|
6
6
|
export type ToastOptions = {
|
|
7
7
|
/** Updates the toast with this id instead of adding a new one. */
|
|
8
8
|
id?: number;
|
|
9
|
-
/** Any
|
|
10
|
-
icon?:
|
|
9
|
+
/** Any icon component, e.g. from `@lucide/svelte`, shown on the left. */
|
|
10
|
+
icon?: IconComponent;
|
|
11
11
|
/** Shows a Spinner instead of the icon and keeps the toast open until it is updated. */
|
|
12
12
|
loading?: boolean;
|
|
13
13
|
/** Button on the right; clicking it runs `onclick` and dismisses the toast. */
|
|
@@ -9,11 +9,18 @@
|
|
|
9
9
|
pressed?: boolean;
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
let {
|
|
12
|
+
let {
|
|
13
|
+
pressed = $bindable(false),
|
|
14
|
+
ref = $bindable(null),
|
|
15
|
+
class: className,
|
|
16
|
+
onclick,
|
|
17
|
+
...rest
|
|
18
|
+
}: Props = $props();
|
|
13
19
|
</script>
|
|
14
20
|
|
|
15
21
|
<Button
|
|
16
22
|
{...rest}
|
|
23
|
+
bind:ref
|
|
17
24
|
variant="secondary"
|
|
18
25
|
aria-pressed={pressed}
|
|
19
26
|
class={['toggle', className]}
|
|
@@ -24,8 +31,22 @@
|
|
|
24
31
|
/>
|
|
25
32
|
|
|
26
33
|
<style>
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
34
|
+
@layer svelte-ui {
|
|
35
|
+
:global(.button.toggle[aria-pressed='true']),
|
|
36
|
+
:global(.button.toggle[aria-pressed='true']:hover:not(:disabled)) {
|
|
37
|
+
background-color: var(--color-surface-active);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@media (forced-colors: active) {
|
|
41
|
+
:global(.button.toggle[aria-pressed='true']),
|
|
42
|
+
:global(.button.toggle[aria-pressed='true']:hover:not(:disabled)) {
|
|
43
|
+
background-color: Highlight;
|
|
44
|
+
color: HighlightText;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
:global(.button.toggle[aria-pressed='false']) {
|
|
48
|
+
border: 1px solid ButtonText;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
30
51
|
}
|
|
31
52
|
</style>
|
|
@@ -3,6 +3,6 @@ import Button from '../button/Button.svelte';
|
|
|
3
3
|
type Props = Omit<ComponentProps<typeof Button>, 'href' | 'target' | 'rel' | 'type' | 'variant'> & {
|
|
4
4
|
pressed?: boolean;
|
|
5
5
|
};
|
|
6
|
-
declare const Toggle: import("svelte").Component<Props, {}, "pressed">;
|
|
6
|
+
declare const Toggle: import("svelte").Component<Props, {}, "ref" | "pressed">;
|
|
7
7
|
type Toggle = ReturnType<typeof Toggle>;
|
|
8
8
|
export default Toggle;
|
|
@@ -14,11 +14,12 @@
|
|
|
14
14
|
|
|
15
15
|
<script lang="ts">
|
|
16
16
|
import type { Snippet } from 'svelte';
|
|
17
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
17
18
|
import { fade } from 'svelte/transition';
|
|
18
19
|
|
|
19
20
|
type Side = 'top' | 'right' | 'bottom' | 'left';
|
|
20
21
|
|
|
21
|
-
type Props = {
|
|
22
|
+
type Props = Omit<HTMLAttributes<HTMLSpanElement>, 'children'> & {
|
|
22
23
|
/** Whether the tooltip is shown. Bindable. */
|
|
23
24
|
open?: boolean;
|
|
24
25
|
/** Preferred side; flips to the opposite one when there is not enough room. */
|
|
@@ -29,9 +30,19 @@
|
|
|
29
30
|
trigger: Snippet<[TooltipTriggerProps]>;
|
|
30
31
|
/** Tooltip content; may contain `Kbd` / `KbdGroup`. */
|
|
31
32
|
children: Snippet;
|
|
33
|
+
ref?: HTMLSpanElement | null;
|
|
32
34
|
};
|
|
33
35
|
|
|
34
|
-
let {
|
|
36
|
+
let {
|
|
37
|
+
open = $bindable(false),
|
|
38
|
+
side = 'top',
|
|
39
|
+
delay = 0,
|
|
40
|
+
trigger,
|
|
41
|
+
children,
|
|
42
|
+
ref = $bindable(null),
|
|
43
|
+
class: className,
|
|
44
|
+
...rest
|
|
45
|
+
}: Props = $props();
|
|
35
46
|
|
|
36
47
|
const id = $props.id();
|
|
37
48
|
const gap = 6;
|
|
@@ -45,6 +56,10 @@
|
|
|
45
56
|
// A click dismisses the tooltip until the pointer leaves the trigger.
|
|
46
57
|
let pressed = false;
|
|
47
58
|
|
|
59
|
+
function reducedMotion() {
|
|
60
|
+
return window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
61
|
+
}
|
|
62
|
+
|
|
48
63
|
function show(wait: number) {
|
|
49
64
|
clearTimeout(timer);
|
|
50
65
|
if (pressed) return;
|
|
@@ -135,7 +150,7 @@
|
|
|
135
150
|
});
|
|
136
151
|
</script>
|
|
137
152
|
|
|
138
|
-
<span class=
|
|
153
|
+
<span {...rest} bind:this={ref} class={['tooltip', className]}>
|
|
139
154
|
{@render trigger(triggerProps)}
|
|
140
155
|
|
|
141
156
|
{#if open}
|
|
@@ -148,7 +163,7 @@
|
|
|
148
163
|
style:left="{position.left}px"
|
|
149
164
|
style:--tooltip-arrow="{position.arrow}px"
|
|
150
165
|
{@attach popover}
|
|
151
|
-
transition:fade={{ duration: 100 }}
|
|
166
|
+
transition:fade={{ duration: reducedMotion() ? 0 : 100 }}
|
|
152
167
|
>
|
|
153
168
|
{@render children()}
|
|
154
169
|
<span class="tooltip-arrow" aria-hidden="true"></span>
|
|
@@ -157,68 +172,82 @@
|
|
|
157
172
|
</span>
|
|
158
173
|
|
|
159
174
|
<style>
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
175
|
+
@layer svelte-ui {
|
|
176
|
+
.tooltip {
|
|
177
|
+
display: inline-flex;
|
|
178
|
+
height: fit-content;
|
|
179
|
+
}
|
|
164
180
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
181
|
+
.tooltip-content {
|
|
182
|
+
position: fixed;
|
|
183
|
+
inset: auto;
|
|
184
|
+
margin: 0;
|
|
185
|
+
display: inline-flex;
|
|
186
|
+
align-items: center;
|
|
187
|
+
gap: 6px;
|
|
188
|
+
width: max-content;
|
|
189
|
+
max-width: 280px;
|
|
190
|
+
padding: 6px 10px;
|
|
191
|
+
overflow: visible;
|
|
192
|
+
font-size: 12px;
|
|
193
|
+
line-height: 1.4;
|
|
194
|
+
text-wrap: balance;
|
|
195
|
+
background-color: var(--color-ink);
|
|
196
|
+
color: var(--color-base);
|
|
197
|
+
border: none;
|
|
198
|
+
border-radius: 10px;
|
|
199
|
+
pointer-events: none;
|
|
200
|
+
}
|
|
185
201
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
202
|
+
.tooltip-content :global(:is(.kbd, .kbd-group)) {
|
|
203
|
+
font-size: inherit;
|
|
204
|
+
}
|
|
189
205
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
206
|
+
.tooltip-arrow {
|
|
207
|
+
position: absolute;
|
|
208
|
+
width: 8px;
|
|
209
|
+
height: 8px;
|
|
210
|
+
background-color: inherit;
|
|
211
|
+
border-radius: 2px;
|
|
212
|
+
transform: rotate(45deg);
|
|
213
|
+
}
|
|
198
214
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
215
|
+
.tooltip-content--top .tooltip-arrow,
|
|
216
|
+
.tooltip-content--bottom .tooltip-arrow {
|
|
217
|
+
left: calc(var(--tooltip-arrow) - 4px);
|
|
218
|
+
}
|
|
203
219
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
220
|
+
.tooltip-content--left .tooltip-arrow,
|
|
221
|
+
.tooltip-content--right .tooltip-arrow {
|
|
222
|
+
top: calc(var(--tooltip-arrow) - 4px);
|
|
223
|
+
}
|
|
208
224
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
225
|
+
.tooltip-content--top .tooltip-arrow {
|
|
226
|
+
bottom: -3px;
|
|
227
|
+
}
|
|
212
228
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
229
|
+
.tooltip-content--bottom .tooltip-arrow {
|
|
230
|
+
top: -3px;
|
|
231
|
+
}
|
|
216
232
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
233
|
+
.tooltip-content--left .tooltip-arrow {
|
|
234
|
+
right: -3px;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.tooltip-content--right .tooltip-arrow {
|
|
238
|
+
left: -3px;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
@media (forced-colors: active) {
|
|
242
|
+
.tooltip-content {
|
|
243
|
+
border: 1px solid CanvasText;
|
|
244
|
+
background-color: Canvas;
|
|
245
|
+
color: CanvasText;
|
|
246
|
+
}
|
|
220
247
|
|
|
221
|
-
|
|
222
|
-
|
|
248
|
+
.tooltip-arrow {
|
|
249
|
+
display: none;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
223
252
|
}
|
|
224
253
|
</style>
|
|
@@ -9,8 +9,9 @@ export type TooltipTriggerProps = {
|
|
|
9
9
|
[key: symbol]: Attachment<HTMLElement>;
|
|
10
10
|
};
|
|
11
11
|
import type { Snippet } from 'svelte';
|
|
12
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
12
13
|
type Side = 'top' | 'right' | 'bottom' | 'left';
|
|
13
|
-
type Props = {
|
|
14
|
+
type Props = Omit<HTMLAttributes<HTMLSpanElement>, 'children'> & {
|
|
14
15
|
/** Whether the tooltip is shown. Bindable. */
|
|
15
16
|
open?: boolean;
|
|
16
17
|
/** Preferred side; flips to the opposite one when there is not enough room. */
|
|
@@ -21,7 +22,8 @@ type Props = {
|
|
|
21
22
|
trigger: Snippet<[TooltipTriggerProps]>;
|
|
22
23
|
/** Tooltip content; may contain `Kbd` / `KbdGroup`. */
|
|
23
24
|
children: Snippet;
|
|
25
|
+
ref?: HTMLSpanElement | null;
|
|
24
26
|
};
|
|
25
|
-
declare const Tooltip: import("svelte").Component<Props, {}, "open">;
|
|
27
|
+
declare const Tooltip: import("svelte").Component<Props, {}, "ref" | "open">;
|
|
26
28
|
type Tooltip = ReturnType<typeof Tooltip>;
|
|
27
29
|
export default Tooltip;
|
package/dist/icon.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Component } from 'svelte';
|
|
2
|
+
/**
|
|
3
|
+
* A Svelte component that renders an icon, from any icon library
|
|
4
|
+
* (`@lucide/svelte`, `phosphor-svelte`, an inline SVG component, …).
|
|
5
|
+
*
|
|
6
|
+
* Components only pass `class` and `aria-hidden`; the size comes from CSS, so
|
|
7
|
+
* the icon should fill its box (`width`/`height: 1em` or a fixed size is fine).
|
|
8
|
+
*/
|
|
9
|
+
export type IconComponent = Component<{
|
|
10
|
+
class?: string;
|
|
11
|
+
'aria-hidden'?: boolean | 'true' | 'false';
|
|
12
|
+
}>;
|
package/dist/icon.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
export type { IconComponent } from './icon.js';
|
|
2
|
+
export { default as Accordion } from './components/accordion/Accordion.svelte';
|
|
3
|
+
export { default as AccordionItem } from './components/accordion/AccordionItem.svelte';
|
|
1
4
|
export { default as AlertDialog } from './components/alert-dialog/AlertDialog.svelte';
|
|
2
5
|
export { default as Avatar } from './components/avatar/Avatar.svelte';
|
|
6
|
+
export { default as AvatarGroup } from './components/avatar-group/AvatarGroup.svelte';
|
|
3
7
|
export { default as Badge } from './components/badge/Badge.svelte';
|
|
4
8
|
export { default as Breadcrumb } from './components/breadcrumb/Breadcrumb.svelte';
|
|
5
9
|
export { default as BreadcrumbEllipsis } from './components/breadcrumb/BreadcrumbEllipsis.svelte';
|
|
@@ -18,7 +22,13 @@ export { default as Checkbox } from './components/checkbox/Checkbox.svelte';
|
|
|
18
22
|
export { default as ColorPicker } from './components/color-picker/ColorPicker.svelte';
|
|
19
23
|
export { default as ContextMenu } from './components/context-menu/ContextMenu.svelte';
|
|
20
24
|
export { default as ContextMenuItem } from './components/context-menu/ContextMenuItem.svelte';
|
|
25
|
+
export { default as ContextMenuSeparator } from './components/context-menu/ContextMenuSeparator.svelte';
|
|
26
|
+
export { default as ContextMenuLabel } from './components/context-menu/ContextMenuLabel.svelte';
|
|
27
|
+
export { default as ContextMenuInfo } from './components/context-menu/ContextMenuInfo.svelte';
|
|
21
28
|
export { default as Dialog } from './components/dialog/Dialog.svelte';
|
|
29
|
+
export { default as Drawer } from './components/drawer/Drawer.svelte';
|
|
30
|
+
export { default as EmptyState } from './components/empty-state/EmptyState.svelte';
|
|
31
|
+
export { default as Entry } from './components/entry/Entry.svelte';
|
|
22
32
|
export { default as Field } from './components/field/Field.svelte';
|
|
23
33
|
export { default as FieldContent } from './components/field/FieldContent.svelte';
|
|
24
34
|
export { default as FieldDescription } from './components/field/FieldDescription.svelte';
|
|
@@ -27,6 +37,9 @@ export { default as FieldGroup } from './components/field/FieldGroup.svelte';
|
|
|
27
37
|
export { default as FieldLegend } from './components/field/FieldLegend.svelte';
|
|
28
38
|
export { default as FieldSeparator } from './components/field/FieldSeparator.svelte';
|
|
29
39
|
export { default as FieldSet } from './components/field/FieldSet.svelte';
|
|
40
|
+
export { default as Footer } from './components/footer/Footer.svelte';
|
|
41
|
+
export { default as FooterColumn } from './components/footer/FooterColumn.svelte';
|
|
42
|
+
export { default as Image } from './components/image/Image.svelte';
|
|
30
43
|
export { default as Input } from './components/input/Input.svelte';
|
|
31
44
|
export { default as Kbd } from './components/kbd/Kbd.svelte';
|
|
32
45
|
export { default as KbdGroup } from './components/kbd/KbdGroup.svelte';
|
|
@@ -34,13 +47,19 @@ export { default as InputGroup } from './components/input-group/InputGroup.svelt
|
|
|
34
47
|
export { default as InputGroupAddon } from './components/input-group/InputGroupAddon.svelte';
|
|
35
48
|
export { default as Label } from './components/label/Label.svelte';
|
|
36
49
|
export { default as Link } from './components/link/Link.svelte';
|
|
50
|
+
export { default as MeshGradient } from './components/mesh-gradient/MeshGradient.svelte';
|
|
37
51
|
export { default as Navbar } from './components/navbar/Navbar.svelte';
|
|
38
52
|
export { default as NavigationMenu } from './components/navigation-menu/NavigationMenu.svelte';
|
|
39
53
|
export { default as NavigationMenuItem } from './components/navigation-menu/NavigationMenuItem.svelte';
|
|
40
54
|
export { default as NavigationMenuLink } from './components/navigation-menu/NavigationMenuLink.svelte';
|
|
55
|
+
export { default as NumberStepper } from './components/number-stepper/NumberStepper.svelte';
|
|
41
56
|
export { default as Popover } from './components/popover/Popover.svelte';
|
|
57
|
+
export { default as PreviewCard } from './components/preview-card/PreviewCard.svelte';
|
|
58
|
+
export { default as Progress } from './components/progress/Progress.svelte';
|
|
42
59
|
export { default as RadioGroup } from './components/radio-group/RadioGroup.svelte';
|
|
43
60
|
export { default as RadioGroupItem } from './components/radio-group/RadioGroupItem.svelte';
|
|
61
|
+
export { default as Section } from './components/section/Section.svelte';
|
|
62
|
+
export { default as Select, type SelectOption } from './components/select/Select.svelte';
|
|
44
63
|
export { default as Separator } from './components/separator/Separator.svelte';
|
|
45
64
|
export { default as Sidebar } from './components/sidebar/Sidebar.svelte';
|
|
46
65
|
export { default as SidebarContent } from './components/sidebar/SidebarContent.svelte';
|
|
@@ -58,6 +77,7 @@ export { default as Skeleton } from './components/skeleton/Skeleton.svelte';
|
|
|
58
77
|
export { default as Spinner } from './components/spinner/Spinner.svelte';
|
|
59
78
|
export { default as Switch } from './components/switch/Switch.svelte';
|
|
60
79
|
export { default as Table, type TableColumn, type TableSort, type TableSortValue } from './components/table/Table.svelte';
|
|
80
|
+
export { default as Tabs, type TabsOption } from './components/tabs/Tabs.svelte';
|
|
61
81
|
export { default as Textarea } from './components/textarea/Textarea.svelte';
|
|
62
82
|
export { default as Toaster } from './components/toaster/Toaster.svelte';
|
|
63
83
|
export { toast, type ToastOptions, type ToastAction } from './components/toaster/toast.svelte.js';
|
|
@@ -69,5 +89,6 @@ export type { PopoverTriggerProps } from './components/popover/Popover.svelte';
|
|
|
69
89
|
export type { TooltipTriggerProps } from './components/tooltip/Tooltip.svelte';
|
|
70
90
|
export type { InputType } from './components/input/Input.svelte';
|
|
71
91
|
export type { DialogTriggerProps } from './components/dialog/Dialog.svelte';
|
|
92
|
+
export type { DrawerTriggerProps } from './components/drawer/Drawer.svelte';
|
|
72
93
|
export type { ContextMenuTriggerProps } from './components/context-menu/context.js';
|
|
73
94
|
export { getSidebarContext, type SidebarContext } from './components/sidebar/context.js';
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
export { default as Accordion } from './components/accordion/Accordion.svelte';
|
|
2
|
+
export { default as AccordionItem } from './components/accordion/AccordionItem.svelte';
|
|
1
3
|
export { default as AlertDialog } from './components/alert-dialog/AlertDialog.svelte';
|
|
2
4
|
export { default as Avatar } from './components/avatar/Avatar.svelte';
|
|
5
|
+
export { default as AvatarGroup } from './components/avatar-group/AvatarGroup.svelte';
|
|
3
6
|
export { default as Badge } from './components/badge/Badge.svelte';
|
|
4
7
|
export { default as Breadcrumb } from './components/breadcrumb/Breadcrumb.svelte';
|
|
5
8
|
export { default as BreadcrumbEllipsis } from './components/breadcrumb/BreadcrumbEllipsis.svelte';
|
|
@@ -18,7 +21,13 @@ export { default as Checkbox } from './components/checkbox/Checkbox.svelte';
|
|
|
18
21
|
export { default as ColorPicker } from './components/color-picker/ColorPicker.svelte';
|
|
19
22
|
export { default as ContextMenu } from './components/context-menu/ContextMenu.svelte';
|
|
20
23
|
export { default as ContextMenuItem } from './components/context-menu/ContextMenuItem.svelte';
|
|
24
|
+
export { default as ContextMenuSeparator } from './components/context-menu/ContextMenuSeparator.svelte';
|
|
25
|
+
export { default as ContextMenuLabel } from './components/context-menu/ContextMenuLabel.svelte';
|
|
26
|
+
export { default as ContextMenuInfo } from './components/context-menu/ContextMenuInfo.svelte';
|
|
21
27
|
export { default as Dialog } from './components/dialog/Dialog.svelte';
|
|
28
|
+
export { default as Drawer } from './components/drawer/Drawer.svelte';
|
|
29
|
+
export { default as EmptyState } from './components/empty-state/EmptyState.svelte';
|
|
30
|
+
export { default as Entry } from './components/entry/Entry.svelte';
|
|
22
31
|
export { default as Field } from './components/field/Field.svelte';
|
|
23
32
|
export { default as FieldContent } from './components/field/FieldContent.svelte';
|
|
24
33
|
export { default as FieldDescription } from './components/field/FieldDescription.svelte';
|
|
@@ -27,6 +36,9 @@ export { default as FieldGroup } from './components/field/FieldGroup.svelte';
|
|
|
27
36
|
export { default as FieldLegend } from './components/field/FieldLegend.svelte';
|
|
28
37
|
export { default as FieldSeparator } from './components/field/FieldSeparator.svelte';
|
|
29
38
|
export { default as FieldSet } from './components/field/FieldSet.svelte';
|
|
39
|
+
export { default as Footer } from './components/footer/Footer.svelte';
|
|
40
|
+
export { default as FooterColumn } from './components/footer/FooterColumn.svelte';
|
|
41
|
+
export { default as Image } from './components/image/Image.svelte';
|
|
30
42
|
export { default as Input } from './components/input/Input.svelte';
|
|
31
43
|
export { default as Kbd } from './components/kbd/Kbd.svelte';
|
|
32
44
|
export { default as KbdGroup } from './components/kbd/KbdGroup.svelte';
|
|
@@ -34,13 +46,19 @@ export { default as InputGroup } from './components/input-group/InputGroup.svelt
|
|
|
34
46
|
export { default as InputGroupAddon } from './components/input-group/InputGroupAddon.svelte';
|
|
35
47
|
export { default as Label } from './components/label/Label.svelte';
|
|
36
48
|
export { default as Link } from './components/link/Link.svelte';
|
|
49
|
+
export { default as MeshGradient } from './components/mesh-gradient/MeshGradient.svelte';
|
|
37
50
|
export { default as Navbar } from './components/navbar/Navbar.svelte';
|
|
38
51
|
export { default as NavigationMenu } from './components/navigation-menu/NavigationMenu.svelte';
|
|
39
52
|
export { default as NavigationMenuItem } from './components/navigation-menu/NavigationMenuItem.svelte';
|
|
40
53
|
export { default as NavigationMenuLink } from './components/navigation-menu/NavigationMenuLink.svelte';
|
|
54
|
+
export { default as NumberStepper } from './components/number-stepper/NumberStepper.svelte';
|
|
41
55
|
export { default as Popover } from './components/popover/Popover.svelte';
|
|
56
|
+
export { default as PreviewCard } from './components/preview-card/PreviewCard.svelte';
|
|
57
|
+
export { default as Progress } from './components/progress/Progress.svelte';
|
|
42
58
|
export { default as RadioGroup } from './components/radio-group/RadioGroup.svelte';
|
|
43
59
|
export { default as RadioGroupItem } from './components/radio-group/RadioGroupItem.svelte';
|
|
60
|
+
export { default as Section } from './components/section/Section.svelte';
|
|
61
|
+
export { default as Select } from './components/select/Select.svelte';
|
|
44
62
|
export { default as Separator } from './components/separator/Separator.svelte';
|
|
45
63
|
export { default as Sidebar } from './components/sidebar/Sidebar.svelte';
|
|
46
64
|
export { default as SidebarContent } from './components/sidebar/SidebarContent.svelte';
|
|
@@ -57,6 +75,7 @@ export { default as Skeleton } from './components/skeleton/Skeleton.svelte';
|
|
|
57
75
|
export { default as Spinner } from './components/spinner/Spinner.svelte';
|
|
58
76
|
export { default as Switch } from './components/switch/Switch.svelte';
|
|
59
77
|
export { default as Table } from './components/table/Table.svelte';
|
|
78
|
+
export { default as Tabs } from './components/tabs/Tabs.svelte';
|
|
60
79
|
export { default as Textarea } from './components/textarea/Textarea.svelte';
|
|
61
80
|
export { default as Toaster } from './components/toaster/Toaster.svelte';
|
|
62
81
|
export { toast } from './components/toaster/toast.svelte.js';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { SVGAttributes } from 'svelte/elements';
|
|
3
|
+
import Icon from './Icon.svelte';
|
|
4
|
+
|
|
5
|
+
let props: SVGAttributes<SVGSVGElement> = $props();
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<Icon
|
|
9
|
+
{...props}
|
|
10
|
+
nodes={[
|
|
11
|
+
['path', { d: 'M12 5v14' }],
|
|
12
|
+
['path', { d: 'm19 12-7 7-7-7' }]
|
|
13
|
+
]}
|
|
14
|
+
/>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { SVGAttributes } from 'svelte/elements';
|
|
3
|
+
import Icon from './Icon.svelte';
|
|
4
|
+
|
|
5
|
+
let props: SVGAttributes<SVGSVGElement> = $props();
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<Icon
|
|
9
|
+
{...props}
|
|
10
|
+
nodes={[
|
|
11
|
+
['path', { d: 'm5 12 7-7 7 7' }],
|
|
12
|
+
['path', { d: 'M12 19V5' }]
|
|
13
|
+
]}
|
|
14
|
+
/>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { SVGAttributes } from 'svelte/elements';
|
|
3
|
+
import Icon from './Icon.svelte';
|
|
4
|
+
|
|
5
|
+
let props: SVGAttributes<SVGSVGElement> = $props();
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<Icon
|
|
9
|
+
{...props}
|
|
10
|
+
nodes={[
|
|
11
|
+
['path', { d: 'M8 2v3' }],
|
|
12
|
+
['path', { d: 'M16 2v3' }],
|
|
13
|
+
['rect', { x: '3', y: '3', width: '18', height: '18', rx: '2' }],
|
|
14
|
+
['path', { d: 'M3 9h18' }]
|
|
15
|
+
]}
|
|
16
|
+
/>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { SVGAttributes } from 'svelte/elements';
|
|
3
|
+
import Icon from './Icon.svelte';
|
|
4
|
+
|
|
5
|
+
let props: SVGAttributes<SVGSVGElement> = $props();
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<Icon
|
|
9
|
+
{...props}
|
|
10
|
+
nodes={[
|
|
11
|
+
['path', { d: 'm7 15 5 5 5-5' }],
|
|
12
|
+
['path', { d: 'm7 9 5-5 5 5' }]
|
|
13
|
+
]}
|
|
14
|
+
/>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { SVGAttributes } from 'svelte/elements';
|
|
3
|
+
import Icon from './Icon.svelte';
|
|
4
|
+
|
|
5
|
+
let props: SVGAttributes<SVGSVGElement> = $props();
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<Icon
|
|
9
|
+
{...props}
|
|
10
|
+
nodes={[
|
|
11
|
+
['circle', { cx: '12', cy: '12', r: '10' }],
|
|
12
|
+
['path', { d: 'M12 6v6l4 2' }]
|
|
13
|
+
]}
|
|
14
|
+
/>
|