zabi-components 5.0.21 → 5.0.22
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/README.md +1 -0
- package/dist/atoms/CardContent.svelte +1 -1
- package/dist/atoms/CardHeader.svelte +1 -1
- package/dist/atoms/Checkbox.svelte +1 -7
- package/dist/atoms/CodeBlock.svelte +6 -6
- package/dist/atoms/ColorPicker.svelte +80 -72
- package/dist/atoms/Input.svelte +14 -10
- package/dist/atoms/Input.svelte.d.ts +2 -0
- package/dist/atoms/List.svelte +47 -0
- package/dist/atoms/List.svelte.d.ts +19 -0
- package/dist/atoms/ListItem.svelte +148 -0
- package/dist/atoms/ListItem.svelte.d.ts +35 -0
- package/dist/atoms/Progress.svelte +3 -5
- package/dist/atoms/Select.svelte +59 -16
- package/dist/atoms/Select.svelte.d.ts +13 -1
- package/dist/atoms/Textarea.svelte +11 -9
- package/dist/atoms/Textarea.svelte.d.ts +1 -0
- package/dist/atoms/Toggle.svelte +1 -7
- package/dist/atoms/Tooltip.svelte +8 -15
- package/dist/atoms/index.d.ts +2 -0
- package/dist/atoms/index.js +2 -0
- package/dist/components/atoms/index.d.ts +2 -0
- package/dist/components/atoms/index.d.ts.map +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/molecules/index.d.ts +0 -1
- package/dist/components/molecules/index.d.ts.map +1 -1
- package/dist/components/molecules/navigation-menu-context.d.ts +7 -0
- package/dist/components/molecules/navigation-menu-context.d.ts.map +1 -0
- package/dist/components/organisms/index.d.ts +2 -0
- package/dist/components/organisms/index.d.ts.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +5 -8
- package/dist/molecules/Alert.svelte +8 -3
- package/dist/molecules/ContactForm.svelte +63 -31
- package/dist/molecules/ContactForm.svelte.d.ts +1 -4
- package/dist/molecules/Dropdown.svelte +2 -1
- package/dist/molecules/ImageUpload.svelte +26 -3
- package/dist/molecules/ImageUpload.svelte.d.ts +1 -0
- package/dist/molecules/Modal.svelte +44 -43
- package/dist/molecules/NavigationMenu.svelte +7 -10
- package/dist/molecules/NavigationMenuContent.svelte +8 -8
- package/dist/molecules/NavigationMenuItem.svelte +7 -6
- package/dist/molecules/NavigationMenuLink.svelte +7 -5
- package/dist/molecules/NavigationMenuList.svelte +0 -7
- package/dist/molecules/NavigationMenuTrigger.svelte +7 -7
- package/dist/molecules/SlideUp.svelte +30 -0
- package/dist/molecules/Tabs.svelte +71 -4
- package/dist/molecules/index.d.ts +0 -1
- package/dist/molecules/index.js +0 -1
- package/dist/molecules/navigation-menu-context.d.ts +6 -0
- package/dist/molecules/navigation-menu-context.js +1 -0
- package/dist/organisms/Navigation.svelte +7 -4
- package/dist/organisms/Navigation.svelte.d.ts +1 -0
- package/dist/organisms/SidebarNavigation.svelte +420 -0
- package/dist/organisms/SidebarNavigation.svelte.d.ts +44 -0
- package/dist/organisms/SidebarProjectPanel.svelte +174 -0
- package/dist/organisms/SidebarProjectPanel.svelte.d.ts +32 -0
- package/dist/organisms/index.d.ts +2 -0
- package/dist/organisms/index.js +2 -0
- package/dist/zabi-components.css +302 -0
- package/package.json +5 -4
- package/dist/molecules/Sidebar.svelte +0 -324
- package/dist/molecules/Sidebar.svelte.d.ts +0 -30
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Component } from "svelte";
|
|
2
|
+
export interface ListItemData {
|
|
3
|
+
/** Unique identifier for stable rendering and active-state tracking. */
|
|
4
|
+
id: string;
|
|
5
|
+
/** Primary item label. */
|
|
6
|
+
label: string;
|
|
7
|
+
/** Optional secondary text shown under the label. */
|
|
8
|
+
description?: string;
|
|
9
|
+
/** Optional URL; when set, the item renders as an anchor. */
|
|
10
|
+
href?: string;
|
|
11
|
+
/** Optional leading icon rendered before text. */
|
|
12
|
+
icon?: Component<{
|
|
13
|
+
size?: number;
|
|
14
|
+
class?: string;
|
|
15
|
+
}>;
|
|
16
|
+
/** Link target, only used when href is provided. */
|
|
17
|
+
target?: "_self" | "_blank" | "_parent" | "_top";
|
|
18
|
+
/** Link rel attribute, only used when href is provided. */
|
|
19
|
+
rel?: string;
|
|
20
|
+
/** Disabled state for the item. */
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
}
|
|
23
|
+
interface Props {
|
|
24
|
+
/** Item data to render. */
|
|
25
|
+
item: ListItemData;
|
|
26
|
+
/** Active-state styling flag. */
|
|
27
|
+
selected?: boolean;
|
|
28
|
+
/** Whether to show the right-arrow icon. */
|
|
29
|
+
showArrow?: boolean;
|
|
30
|
+
/** Item click callback. */
|
|
31
|
+
onclick?: (item: ListItemData, event: MouseEvent) => void;
|
|
32
|
+
}
|
|
33
|
+
declare const ListItem: Component<Props, {}, "">;
|
|
34
|
+
type ListItem = ReturnType<typeof ListItem>;
|
|
35
|
+
export default ListItem;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
+
import { generateId } from "../../routes/lib/ssr-safe.js";
|
|
3
|
+
|
|
2
4
|
interface Props {
|
|
3
5
|
value?: number;
|
|
4
6
|
max?: number;
|
|
@@ -14,11 +16,7 @@
|
|
|
14
16
|
...restProps
|
|
15
17
|
}: Props = $props();
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
typeof window !== "undefined"
|
|
19
|
-
? `progress-${Math.random().toString(36).substr(2, 9)}`
|
|
20
|
-
: `progress-ssr-${Date.now()}`,
|
|
21
|
-
);
|
|
19
|
+
const progressId = generateId("progress");
|
|
22
20
|
|
|
23
21
|
let percentage = $derived(Math.min(Math.max((value / max) * 100, 0), 100));
|
|
24
22
|
|
package/dist/atoms/Select.svelte
CHANGED
|
@@ -7,14 +7,7 @@
|
|
|
7
7
|
AlertTriangle,
|
|
8
8
|
AlertCircle,
|
|
9
9
|
} from "@lucide/svelte";
|
|
10
|
-
|
|
11
|
-
function generateId(prefix: string = "id"): string {
|
|
12
|
-
if (typeof window !== "undefined") {
|
|
13
|
-
return `${prefix}-${Math.random().toString(36).substr(2, 9)}`;
|
|
14
|
-
} else {
|
|
15
|
-
return `${prefix}-ssr-${Date.now()}`;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
10
|
+
import { generateId } from "../../routes/lib/ssr-safe.js";
|
|
18
11
|
|
|
19
12
|
interface Props {
|
|
20
13
|
value?: string | number | undefined;
|
|
@@ -33,30 +26,49 @@
|
|
|
33
26
|
menuWidth?: string;
|
|
34
27
|
/** Message shown when no options match the search. */
|
|
35
28
|
noResultsText?: string;
|
|
29
|
+
/** Shows a loading state while options are being fetched. */
|
|
30
|
+
isLoading?: boolean;
|
|
31
|
+
/** Loading text shown in trigger and dropdown body. */
|
|
32
|
+
loadingText?: string;
|
|
33
|
+
/** Empty state title shown when there are no available options. */
|
|
34
|
+
emptyStateTitle?: string;
|
|
35
|
+
/** Empty state description shown when there are no available options. */
|
|
36
|
+
emptyStateDescription?: string;
|
|
37
|
+
/** Optional empty state action label. */
|
|
38
|
+
emptyStateActionLabel?: string;
|
|
36
39
|
placeholder?: string;
|
|
37
40
|
label?: string;
|
|
41
|
+
required?: boolean;
|
|
38
42
|
disabled?: boolean;
|
|
39
43
|
size?: "sm" | "md" | "lg";
|
|
40
44
|
variant?: "default" | "success" | "warning" | "error";
|
|
41
45
|
message?: string;
|
|
42
46
|
onchange?: (event: Event) => void;
|
|
47
|
+
onEmptyStateAction?: () => void;
|
|
43
48
|
}
|
|
44
49
|
|
|
45
50
|
let {
|
|
46
|
-
value = undefined,
|
|
51
|
+
value = $bindable(undefined),
|
|
47
52
|
options = [],
|
|
48
53
|
searchable = true,
|
|
49
54
|
searchPlaceholder = "Search options",
|
|
50
55
|
maxMenuHeight = "60vh",
|
|
51
56
|
menuWidth = "100%",
|
|
52
57
|
noResultsText = "No results found",
|
|
58
|
+
isLoading = false,
|
|
59
|
+
loadingText = "Loading options...",
|
|
60
|
+
emptyStateTitle = "No options available",
|
|
61
|
+
emptyStateDescription = "Add an option to start making selections.",
|
|
62
|
+
emptyStateActionLabel = "",
|
|
53
63
|
placeholder = "Select an option",
|
|
54
64
|
label = "",
|
|
65
|
+
required = false,
|
|
55
66
|
disabled = false,
|
|
56
67
|
size = "md",
|
|
57
68
|
variant = "default",
|
|
58
69
|
message = "",
|
|
59
70
|
onchange,
|
|
71
|
+
onEmptyStateAction,
|
|
60
72
|
...restProps
|
|
61
73
|
}: Props = $props();
|
|
62
74
|
|
|
@@ -170,7 +182,7 @@
|
|
|
170
182
|
});
|
|
171
183
|
|
|
172
184
|
function handleOptionClick(optionValue: string | number) {
|
|
173
|
-
if (disabled) return;
|
|
185
|
+
if (disabled || isLoading) return;
|
|
174
186
|
value = optionValue;
|
|
175
187
|
isOpen = false;
|
|
176
188
|
|
|
@@ -185,7 +197,7 @@
|
|
|
185
197
|
}
|
|
186
198
|
|
|
187
199
|
function handleTriggerClick(event: MouseEvent) {
|
|
188
|
-
if (disabled) return;
|
|
200
|
+
if (disabled || isLoading) return;
|
|
189
201
|
event.stopPropagation();
|
|
190
202
|
isOpen = !isOpen;
|
|
191
203
|
}
|
|
@@ -238,14 +250,20 @@
|
|
|
238
250
|
aria-describedby={message ? `${selectId}-message` : undefined}
|
|
239
251
|
>
|
|
240
252
|
<span
|
|
241
|
-
class="text-left flex-1 truncate {
|
|
253
|
+
class="text-left flex-1 truncate {isLoading
|
|
254
|
+
? 'text-description'
|
|
255
|
+
: isEmpty()
|
|
242
256
|
? 'text-description'
|
|
243
257
|
: 'text-body'}"
|
|
244
258
|
>
|
|
245
|
-
{
|
|
259
|
+
{#if isLoading}
|
|
260
|
+
{loadingText}
|
|
261
|
+
{:else}
|
|
262
|
+
{isEmpty()
|
|
246
263
|
? placeholder
|
|
247
264
|
: options.find((opt) => opt.value === value)?.label ||
|
|
248
265
|
placeholder}
|
|
266
|
+
{/if}
|
|
249
267
|
</span>
|
|
250
268
|
<ChevronDown
|
|
251
269
|
size={20}
|
|
@@ -257,7 +275,7 @@
|
|
|
257
275
|
{/snippet}
|
|
258
276
|
{#snippet children()}
|
|
259
277
|
<div class="px-2 pb-2 pt-1" style:width={menuWidth}>
|
|
260
|
-
{#if searchable}
|
|
278
|
+
{#if searchable && !isLoading}
|
|
261
279
|
<div class="px-1 pb-2">
|
|
262
280
|
<input
|
|
263
281
|
type="text"
|
|
@@ -273,7 +291,13 @@
|
|
|
273
291
|
class="overflow-y-auto px-1"
|
|
274
292
|
style:max-height={maxMenuHeight}
|
|
275
293
|
>
|
|
276
|
-
{#if
|
|
294
|
+
{#if isLoading}
|
|
295
|
+
<div class="space-y-2 px-2 py-2" role="status" aria-live="polite">
|
|
296
|
+
<div class="h-8 w-full animate-pulse rounded-md bg-base-200"></div>
|
|
297
|
+
<div class="h-8 w-full animate-pulse rounded-md bg-base-200"></div>
|
|
298
|
+
<p class="text-xs text-description">{loadingText}</p>
|
|
299
|
+
</div>
|
|
300
|
+
{:else if filteredOptions().length > 0}
|
|
277
301
|
{#each filteredOptions() as option (option.value)}
|
|
278
302
|
{@const buttonRestProps = {
|
|
279
303
|
"data-value": String(option.value),
|
|
@@ -297,13 +321,32 @@
|
|
|
297
321
|
<div class="px-3 py-2 text-sm text-description">
|
|
298
322
|
{noResultsText}
|
|
299
323
|
</div>
|
|
324
|
+
{:else}
|
|
325
|
+
<div class="rounded-md border border-border bg-base-50 px-3 py-3 text-sm">
|
|
326
|
+
<p class="font-medium text-headline">{emptyStateTitle}</p>
|
|
327
|
+
<p class="mt-1 text-description">{emptyStateDescription}</p>
|
|
328
|
+
{#if emptyStateActionLabel && onEmptyStateAction}
|
|
329
|
+
<button
|
|
330
|
+
type="button"
|
|
331
|
+
class="mt-3 inline-flex min-h-11 items-center rounded-lg bg-action-primary px-3 py-2 text-sm text-action-primary"
|
|
332
|
+
onclick={onEmptyStateAction}
|
|
333
|
+
>
|
|
334
|
+
{emptyStateActionLabel}
|
|
335
|
+
</button>
|
|
336
|
+
{/if}
|
|
337
|
+
</div>
|
|
300
338
|
{/if}
|
|
301
339
|
</div>
|
|
302
340
|
</div>
|
|
303
341
|
{/snippet}
|
|
304
342
|
</Dropdown>
|
|
305
343
|
{#if message && variant !== "default"}
|
|
306
|
-
<p
|
|
344
|
+
<p
|
|
345
|
+
id={`${selectId}-message`}
|
|
346
|
+
class={messageClasses()}
|
|
347
|
+
role={variant === "error" ? "alert" : "status"}
|
|
348
|
+
aria-live={variant === "error" ? "assertive" : "polite"}
|
|
349
|
+
>
|
|
307
350
|
{#if getIcon()}
|
|
308
351
|
{@const Icon = getIcon()}
|
|
309
352
|
<Icon size={14} class="shrink-0" />
|
|
@@ -15,14 +15,26 @@ interface Props {
|
|
|
15
15
|
menuWidth?: string;
|
|
16
16
|
/** Message shown when no options match the search. */
|
|
17
17
|
noResultsText?: string;
|
|
18
|
+
/** Shows a loading state while options are being fetched. */
|
|
19
|
+
isLoading?: boolean;
|
|
20
|
+
/** Loading text shown in trigger and dropdown body. */
|
|
21
|
+
loadingText?: string;
|
|
22
|
+
/** Empty state title shown when there are no available options. */
|
|
23
|
+
emptyStateTitle?: string;
|
|
24
|
+
/** Empty state description shown when there are no available options. */
|
|
25
|
+
emptyStateDescription?: string;
|
|
26
|
+
/** Optional empty state action label. */
|
|
27
|
+
emptyStateActionLabel?: string;
|
|
18
28
|
placeholder?: string;
|
|
19
29
|
label?: string;
|
|
30
|
+
required?: boolean;
|
|
20
31
|
disabled?: boolean;
|
|
21
32
|
size?: "sm" | "md" | "lg";
|
|
22
33
|
variant?: "default" | "success" | "warning" | "error";
|
|
23
34
|
message?: string;
|
|
24
35
|
onchange?: (event: Event) => void;
|
|
36
|
+
onEmptyStateAction?: () => void;
|
|
25
37
|
}
|
|
26
|
-
declare const Select: import("svelte").Component<Props, {}, "">;
|
|
38
|
+
declare const Select: import("svelte").Component<Props, {}, "value">;
|
|
27
39
|
type Select = ReturnType<typeof Select>;
|
|
28
40
|
export default Select;
|
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { CheckCircle, AlertTriangle, AlertCircle } from "@lucide/svelte";
|
|
3
3
|
import type { SemanticVariant, SizeVariant } from "../../types/variants.js";
|
|
4
|
-
|
|
5
|
-
function generateId(prefix: string = "id"): string {
|
|
6
|
-
if (typeof window !== "undefined") {
|
|
7
|
-
return `${prefix}-${Math.random().toString(36).substr(2, 9)}`;
|
|
8
|
-
} else {
|
|
9
|
-
return `${prefix}-ssr-${Date.now()}`;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
4
|
+
import { generateId } from "../../routes/lib/ssr-safe.js";
|
|
12
5
|
|
|
13
6
|
interface Props {
|
|
14
7
|
value?: string;
|
|
15
8
|
name?: string;
|
|
16
9
|
label?: string;
|
|
17
10
|
placeholder?: string;
|
|
11
|
+
required?: boolean;
|
|
18
12
|
disabled?: boolean;
|
|
19
13
|
rows?: number;
|
|
20
14
|
size?: SizeVariant;
|
|
@@ -28,6 +22,7 @@
|
|
|
28
22
|
name = "",
|
|
29
23
|
label = "",
|
|
30
24
|
placeholder = "",
|
|
25
|
+
required = false,
|
|
31
26
|
disabled = false,
|
|
32
27
|
rows = 4,
|
|
33
28
|
variant = "default",
|
|
@@ -96,16 +91,23 @@
|
|
|
96
91
|
{name}
|
|
97
92
|
{value}
|
|
98
93
|
{placeholder}
|
|
94
|
+
{required}
|
|
99
95
|
{disabled}
|
|
100
96
|
{rows}
|
|
101
97
|
class={textareaClasses()}
|
|
102
98
|
oninput={handleInput}
|
|
103
99
|
aria-invalid={variant === "error" ? "true" : undefined}
|
|
100
|
+
aria-required={required ? "true" : undefined}
|
|
104
101
|
aria-describedby={message ? `${textareaId}-message` : undefined}
|
|
105
102
|
{...restProps}
|
|
106
103
|
></textarea>
|
|
107
104
|
{#if message && variant !== "default"}
|
|
108
|
-
<p
|
|
105
|
+
<p
|
|
106
|
+
id={`${textareaId}-message`}
|
|
107
|
+
class={messageClasses()}
|
|
108
|
+
role={variant === "error" ? "alert" : "status"}
|
|
109
|
+
aria-live={variant === "error" ? "assertive" : "polite"}
|
|
110
|
+
>
|
|
109
111
|
{#if getIcon()}
|
|
110
112
|
{@const Icon = getIcon()}
|
|
111
113
|
<Icon size={14} class="shrink-0" />
|
package/dist/atoms/Toggle.svelte
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
|
|
3
|
-
if (typeof window !== "undefined") {
|
|
4
|
-
return `${prefix}-${Math.random().toString(36).substr(2, 9)}`;
|
|
5
|
-
} else {
|
|
6
|
-
return `${prefix}-ssr-${Date.now()}`;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
2
|
+
import { generateId } from "../../routes/lib/ssr-safe.js";
|
|
9
3
|
|
|
10
4
|
interface Props {
|
|
11
5
|
checked?: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { generateId } from "../../routes/lib/ssr-safe.js";
|
|
3
3
|
|
|
4
4
|
interface Props {
|
|
5
5
|
content?: string;
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
...restProps
|
|
18
18
|
}: Props & { children?: any } = $props();
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
const triggerId = generateId("tooltip-trigger");
|
|
21
|
+
const tooltipId = generateId("tooltip");
|
|
22
22
|
let isVisible = $state(false);
|
|
23
23
|
let triggerElement: HTMLElement | null = $state(null);
|
|
24
24
|
|
|
@@ -56,17 +56,10 @@
|
|
|
56
56
|
function handleMouseLeave() {
|
|
57
57
|
isVisible = false;
|
|
58
58
|
}
|
|
59
|
-
|
|
60
|
-
onMount(() => {
|
|
61
|
-
if (typeof window !== "undefined") {
|
|
62
|
-
window.addEventListener("keydown", handleKeydown);
|
|
63
|
-
return () => {
|
|
64
|
-
window.removeEventListener("keydown", handleKeydown);
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
59
|
</script>
|
|
69
60
|
|
|
61
|
+
<svelte:window onkeydown={handleKeydown} />
|
|
62
|
+
|
|
70
63
|
<div
|
|
71
64
|
class="tooltip-container relative inline-block"
|
|
72
65
|
data-placement={placement}
|
|
@@ -249,8 +242,8 @@
|
|
|
249
242
|
|
|
250
243
|
@media (prefers-contrast: high) {
|
|
251
244
|
:root {
|
|
252
|
-
--tooltip-bg:
|
|
253
|
-
--tooltip-color:
|
|
245
|
+
--tooltip-bg: CanvasText;
|
|
246
|
+
--tooltip-color: Canvas;
|
|
254
247
|
--tooltip-padding: 0.75rem 1rem;
|
|
255
248
|
}
|
|
256
249
|
}
|
|
@@ -276,7 +269,7 @@
|
|
|
276
269
|
}
|
|
277
270
|
|
|
278
271
|
.tooltip-container:focus-visible {
|
|
279
|
-
outline: 2px solid var(--color-focus
|
|
272
|
+
outline: 2px solid var(--color-focus);
|
|
280
273
|
outline-offset: 2px;
|
|
281
274
|
border-radius: var(--tooltip-radius);
|
|
282
275
|
}
|
package/dist/atoms/index.d.ts
CHANGED
|
@@ -10,5 +10,7 @@ export { default as Input } from './Input.svelte';
|
|
|
10
10
|
export { default as Textarea } from './Textarea.svelte';
|
|
11
11
|
export { default as Select } from './Select.svelte';
|
|
12
12
|
export { default as ColorPicker } from './ColorPicker.svelte';
|
|
13
|
+
export { default as List } from './List.svelte';
|
|
14
|
+
export { default as ListItem } from './ListItem.svelte';
|
|
13
15
|
export { default as Heading } from './Heading.svelte';
|
|
14
16
|
export { default as ThemeToggle } from './ThemeToggle.svelte';
|
package/dist/atoms/index.js
CHANGED
|
@@ -10,5 +10,7 @@ export { default as Input } from './Input.svelte';
|
|
|
10
10
|
export { default as Textarea } from './Textarea.svelte';
|
|
11
11
|
export { default as Select } from './Select.svelte';
|
|
12
12
|
export { default as ColorPicker } from './ColorPicker.svelte';
|
|
13
|
+
export { default as List } from './List.svelte';
|
|
14
|
+
export { default as ListItem } from './ListItem.svelte';
|
|
13
15
|
export { default as Heading } from './Heading.svelte';
|
|
14
16
|
export { default as ThemeToggle } from './ThemeToggle.svelte';
|
|
@@ -10,6 +10,8 @@ export { default as Input } from './Input.svelte';
|
|
|
10
10
|
export { default as Textarea } from './Textarea.svelte';
|
|
11
11
|
export { default as Select } from './Select.svelte';
|
|
12
12
|
export { default as ColorPicker } from './ColorPicker.svelte';
|
|
13
|
+
export { default as List } from './List.svelte';
|
|
14
|
+
export { default as ListItem } from './ListItem.svelte';
|
|
13
15
|
export { default as Heading } from './Heading.svelte';
|
|
14
16
|
export { default as ThemeToggle } from './ThemeToggle.svelte';
|
|
15
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/atoms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/atoms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -6,6 +6,8 @@ export { default as Input } from './atoms/Input.svelte';
|
|
|
6
6
|
export { default as Textarea } from './atoms/Textarea.svelte';
|
|
7
7
|
export { default as Select } from './atoms/Select.svelte';
|
|
8
8
|
export { default as ColorPicker } from './atoms/ColorPicker.svelte';
|
|
9
|
+
export { default as List } from './atoms/List.svelte';
|
|
10
|
+
export { default as ListItem } from './atoms/ListItem.svelte';
|
|
9
11
|
export { default as Heading } from './atoms/Heading.svelte';
|
|
10
12
|
export { default as ThemeToggle } from './atoms/ThemeToggle.svelte';
|
|
11
13
|
export { default as Alert } from './molecules/Alert.svelte';
|
|
@@ -19,6 +21,8 @@ export { default as SlideUp } from './molecules/SlideUp.svelte';
|
|
|
19
21
|
export { default as Tabs } from './molecules/Tabs.svelte';
|
|
20
22
|
export { default as Navbar } from './organisms/Navbar.svelte';
|
|
21
23
|
export { default as Navigation } from './organisms/Navigation.svelte';
|
|
24
|
+
export { default as SidebarNavigation } from './organisms/SidebarNavigation.svelte';
|
|
25
|
+
export { default as SidebarProjectPanel } from './organisms/SidebarProjectPanel.svelte';
|
|
22
26
|
export declare const createId: (prefix?: string) => string;
|
|
23
27
|
export declare const cn: (...classes: (string | undefined | null | false)[]) => string;
|
|
24
28
|
export declare const getFormData: (form: HTMLFormElement) => Record<string, any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,6 @@ export { default as NavigationMenuTrigger } from './NavigationMenuTrigger.svelte
|
|
|
12
12
|
export { default as NavigationMenuContent } from './NavigationMenuContent.svelte';
|
|
13
13
|
export { default as NavigationMenuLink } from './NavigationMenuLink.svelte';
|
|
14
14
|
export { default as Section } from './Section.svelte';
|
|
15
|
-
export { default as Sidebar } from './Sidebar.svelte';
|
|
16
15
|
export { default as SlideUp } from './SlideUp.svelte';
|
|
17
16
|
export { default as Tabs } from './Tabs.svelte';
|
|
18
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/molecules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/molecules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface NavigationMenuContextValue {
|
|
2
|
+
activeItem: string | null;
|
|
3
|
+
setActiveItem: (item: string | null) => void;
|
|
4
|
+
isMobile: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const NAVIGATION_MENU_CONTEXT_KEY: unique symbol;
|
|
7
|
+
//# sourceMappingURL=navigation-menu-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-menu-context.d.ts","sourceRoot":"","sources":["../../../src/components/molecules/navigation-menu-context.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACvC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,2BAA2B,eAA4B,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { default as Navbar } from './Navbar.svelte';
|
|
2
2
|
export { default as Navigation } from './Navigation.svelte';
|
|
3
|
+
export { default as SidebarNavigation } from './SidebarNavigation.svelte';
|
|
4
|
+
export { default as SidebarProjectPanel } from './SidebarProjectPanel.svelte';
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/organisms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/organisms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export { default as Input } from './atoms/Input.svelte';
|
|
|
6
6
|
export { default as Textarea } from './atoms/Textarea.svelte';
|
|
7
7
|
export { default as Select } from './atoms/Select.svelte';
|
|
8
8
|
export { default as ColorPicker } from './atoms/ColorPicker.svelte';
|
|
9
|
+
export { default as List } from './atoms/List.svelte';
|
|
10
|
+
export { default as ListItem } from './atoms/ListItem.svelte';
|
|
9
11
|
export { default as Heading } from './atoms/Heading.svelte';
|
|
10
12
|
export { default as ThemeToggle } from './atoms/ThemeToggle.svelte';
|
|
11
13
|
export { default as Alert } from './molecules/Alert.svelte';
|
|
@@ -19,6 +21,8 @@ export { default as SlideUp } from './molecules/SlideUp.svelte';
|
|
|
19
21
|
export { default as Tabs } from './molecules/Tabs.svelte';
|
|
20
22
|
export { default as Navbar } from './organisms/Navbar.svelte';
|
|
21
23
|
export { default as Navigation } from './organisms/Navigation.svelte';
|
|
24
|
+
export { default as SidebarNavigation } from './organisms/SidebarNavigation.svelte';
|
|
25
|
+
export { default as SidebarProjectPanel } from './organisms/SidebarProjectPanel.svelte';
|
|
22
26
|
export declare const createId: (prefix?: string) => string;
|
|
23
27
|
export declare const cn: (...classes: (string | undefined | null | false)[]) => string;
|
|
24
28
|
export declare const getFormData: (form: HTMLFormElement) => Record<string, any>;
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,8 @@ export { default as Input } from './atoms/Input.svelte';
|
|
|
6
6
|
export { default as Textarea } from './atoms/Textarea.svelte';
|
|
7
7
|
export { default as Select } from './atoms/Select.svelte';
|
|
8
8
|
export { default as ColorPicker } from './atoms/ColorPicker.svelte';
|
|
9
|
+
export { default as List } from './atoms/List.svelte';
|
|
10
|
+
export { default as ListItem } from './atoms/ListItem.svelte';
|
|
9
11
|
export { default as Heading } from './atoms/Heading.svelte';
|
|
10
12
|
export { default as ThemeToggle } from './atoms/ThemeToggle.svelte';
|
|
11
13
|
export { default as Alert } from './molecules/Alert.svelte';
|
|
@@ -19,14 +21,9 @@ export { default as SlideUp } from './molecules/SlideUp.svelte';
|
|
|
19
21
|
export { default as Tabs } from './molecules/Tabs.svelte';
|
|
20
22
|
export { default as Navbar } from './organisms/Navbar.svelte';
|
|
21
23
|
export { default as Navigation } from './organisms/Navigation.svelte';
|
|
22
|
-
export
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
return `${prefix}-ssr-${Date.now()}`;
|
|
28
|
-
}
|
|
29
|
-
};
|
|
24
|
+
export { default as SidebarNavigation } from './organisms/SidebarNavigation.svelte';
|
|
25
|
+
export { default as SidebarProjectPanel } from './organisms/SidebarProjectPanel.svelte';
|
|
26
|
+
export const createId = (prefix = 'id') => generateId(prefix);
|
|
30
27
|
export const cn = (...classes) => classes.filter(Boolean).join(' ');
|
|
31
28
|
export const getFormData = (form) => {
|
|
32
29
|
const formData = new FormData(form);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import type { ExtendedSemanticVariant } from "../../types/variants.js";
|
|
3
|
+
type AlertVisualVariant = Exclude<ExtendedSemanticVariant, "default">;
|
|
3
4
|
|
|
4
5
|
interface Props {
|
|
5
6
|
variant?: ExtendedSemanticVariant;
|
|
@@ -27,6 +28,10 @@
|
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
|
|
31
|
+
const visualVariant = $derived<AlertVisualVariant>(
|
|
32
|
+
variant === "default" ? "info" : variant,
|
|
33
|
+
);
|
|
34
|
+
|
|
30
35
|
let alertClasses = $derived({
|
|
31
36
|
info: "text-info border border-info",
|
|
32
37
|
success: "text-success border border-success",
|
|
@@ -64,10 +69,10 @@
|
|
|
64
69
|
|
|
65
70
|
<div
|
|
66
71
|
class="relative rounded-md p-4 border {alertClasses[
|
|
67
|
-
|
|
72
|
+
visualVariant
|
|
68
73
|
]} transition-all duration-200 motion-reduce:transition-none {className}"
|
|
69
74
|
role={alertRole}
|
|
70
|
-
aria-live={
|
|
75
|
+
aria-live={visualVariant === "success" || visualVariant === "info"
|
|
71
76
|
? "polite"
|
|
72
77
|
: "assertive"}
|
|
73
78
|
aria-atomic="true"
|
|
@@ -98,7 +103,7 @@
|
|
|
98
103
|
|
|
99
104
|
<div class="flex items-start gap-3 {closable ? 'pr-8' : ''}">
|
|
100
105
|
<div class="shrink-0 mt-0.5">
|
|
101
|
-
{@html iconSvg[
|
|
106
|
+
{@html iconSvg[visualVariant]}
|
|
102
107
|
</div>
|
|
103
108
|
|
|
104
109
|
<div class="flex-1 min-w-0">
|