zabi-components 5.0.22 → 7.0.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/README.md +139 -1478
- package/THEME.md +473 -0
- package/THEMING.md +248 -0
- package/dist/atoms/ActionPanel.svelte +116 -0
- package/dist/atoms/ActionPanel.svelte.d.ts +19 -0
- package/dist/atoms/Badge.svelte +1 -1
- package/dist/atoms/Badge.svelte.d.ts +1 -1
- package/dist/atoms/Button.svelte +35 -16
- package/dist/atoms/Button.svelte.d.ts +3 -1
- package/dist/atoms/Card.svelte +49 -67
- package/dist/atoms/Card.svelte.d.ts +4 -4
- package/dist/atoms/CardHeader.svelte +15 -2
- package/dist/atoms/CardHeader.svelte.d.ts +5 -0
- package/dist/atoms/Checkbox.svelte +50 -76
- package/dist/atoms/Checkbox.svelte.d.ts +7 -2
- package/dist/atoms/CodeBlock.svelte +20 -34
- package/dist/atoms/CodeBlock.svelte.d.ts +1 -0
- package/dist/atoms/ColorPicker.svelte +3 -7
- package/dist/atoms/Container.svelte +41 -0
- package/dist/atoms/Container.svelte.d.ts +12 -0
- package/dist/atoms/Divider.svelte +68 -0
- package/dist/atoms/Divider.svelte.d.ts +13 -0
- package/dist/atoms/FeatureCard.svelte +35 -50
- package/dist/atoms/FeatureCard.svelte.d.ts +9 -4
- package/dist/atoms/IconButton.svelte +33 -24
- package/dist/atoms/IconButton.svelte.d.ts +4 -8
- package/dist/atoms/Input.svelte +58 -26
- package/dist/atoms/Input.svelte.d.ts +6 -1
- package/dist/atoms/List.svelte +2 -7
- package/dist/atoms/List.svelte.d.ts +1 -6
- package/dist/atoms/ListItem.svelte +54 -65
- package/dist/atoms/ListItem.svelte.d.ts +7 -13
- package/dist/atoms/ListItemLeading.svelte +19 -0
- package/dist/atoms/ListItemLeading.svelte.d.ts +9 -0
- package/dist/atoms/Progress.svelte +2 -2
- package/dist/atoms/Radio.svelte +51 -0
- package/dist/atoms/Radio.svelte.d.ts +14 -0
- package/dist/atoms/Select.svelte +28 -33
- package/dist/atoms/Select.svelte.d.ts +0 -10
- package/dist/atoms/SelectionControl.svelte +98 -0
- package/dist/atoms/SelectionControl.svelte.d.ts +26 -0
- package/dist/atoms/Skeleton.svelte +39 -15
- package/dist/atoms/Skeleton.svelte.d.ts +7 -3
- package/dist/atoms/Table.svelte +27 -0
- package/dist/atoms/Table.svelte.d.ts +10 -0
- package/dist/atoms/Text.svelte +46 -0
- package/dist/atoms/Text.svelte.d.ts +13 -0
- package/dist/atoms/Textarea.svelte +74 -53
- package/dist/atoms/Textarea.svelte.d.ts +6 -2
- package/dist/atoms/ThemeToggle.svelte +35 -24
- package/dist/atoms/ThemeToggle.svelte.d.ts +1 -0
- package/dist/atoms/Toast.svelte +55 -31
- package/dist/atoms/Toast.svelte.d.ts +4 -1
- package/dist/atoms/Toggle.svelte +37 -22
- package/dist/atoms/Toggle.svelte.d.ts +2 -1
- package/dist/atoms/Tooltip.svelte +90 -11
- package/dist/atoms/index.d.ts +6 -0
- package/dist/atoms/index.js +6 -0
- package/dist/atoms/selection-control.styles.d.ts +25 -0
- package/dist/atoms/selection-control.styles.js +30 -0
- package/dist/components/atoms/index.d.ts +6 -0
- package/dist/components/atoms/index.d.ts.map +1 -1
- package/dist/components/atoms/selection-control.styles.d.ts +26 -0
- package/dist/components/atoms/selection-control.styles.d.ts.map +1 -0
- package/dist/components/index.d.ts +42 -7
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/molecules/index.d.ts +10 -0
- package/dist/components/molecules/index.d.ts.map +1 -1
- package/dist/components/molecules/navigation-menu-context.d.ts +11 -0
- package/dist/components/molecules/navigation-menu-context.d.ts.map +1 -1
- package/dist/components/molecules/toast-store.d.ts +39 -0
- package/dist/components/molecules/toast-store.d.ts.map +1 -0
- package/dist/components/organisms/index.d.ts +3 -3
- package/dist/components/organisms/index.d.ts.map +1 -1
- package/dist/components/types/page.types.d.ts +69 -0
- package/dist/components/types/page.types.d.ts.map +1 -0
- package/dist/components/types/page.types.js +1 -0
- package/dist/components/types/variants.d.ts +64 -0
- package/dist/components/types/variants.d.ts.map +1 -0
- package/dist/components/types/variants.js +44 -0
- package/dist/components/util/fixed-sidebar-flyout.d.ts +23 -0
- package/dist/components/util/fixed-sidebar-flyout.d.ts.map +1 -0
- package/dist/components/util/focus-utils.d.ts +12 -0
- package/dist/components/util/focus-utils.d.ts.map +1 -0
- package/dist/components/util/ssr-safe.d.ts +17 -0
- package/dist/components/util/ssr-safe.d.ts.map +1 -0
- package/dist/index.d.ts +42 -7
- package/dist/index.js +45 -10
- package/dist/lib/layout-width-tokens.d.ts +17 -0
- package/dist/lib/layout-width-tokens.d.ts.map +1 -0
- package/dist/lib/showcase/component-docs/Button.d.ts +3 -0
- package/dist/lib/showcase/component-docs/Button.d.ts.map +1 -0
- package/dist/lib/showcase/component-docs/Input.d.ts +3 -0
- package/dist/lib/showcase/component-docs/Input.d.ts.map +1 -0
- package/dist/lib/showcase/component-docs/List.d.ts +3 -0
- package/dist/lib/showcase/component-docs/List.d.ts.map +1 -0
- package/dist/lib/showcase/component-docs/Modal.d.ts +3 -0
- package/dist/lib/showcase/component-docs/Modal.d.ts.map +1 -0
- package/dist/lib/showcase/component-docs/Radio.d.ts +3 -0
- package/dist/lib/showcase/component-docs/Radio.d.ts.map +1 -0
- package/dist/lib/showcase/component-docs/SidebarNavigation.d.ts +3 -0
- package/dist/lib/showcase/component-docs/SidebarNavigation.d.ts.map +1 -0
- package/dist/lib/showcase/component-docs/Skeleton.d.ts +3 -0
- package/dist/lib/showcase/component-docs/Skeleton.d.ts.map +1 -0
- package/dist/lib/showcase/component-docs/_shared.d.ts +12 -0
- package/dist/lib/showcase/component-docs/_shared.d.ts.map +1 -0
- package/dist/lib/showcase/component-docs/index.d.ts +4 -0
- package/dist/lib/showcase/component-docs/index.d.ts.map +1 -0
- package/dist/lib/showcase/components-catalog.d.ts +3 -0
- package/dist/lib/showcase/components-catalog.d.ts.map +1 -0
- package/dist/lib/showcase/components-showcase-constants.d.ts +89 -0
- package/dist/lib/showcase/components-showcase-constants.d.ts.map +1 -0
- package/dist/lib/showcase/docs-sidebar-helpers.d.ts +15 -0
- package/dist/lib/showcase/docs-sidebar-helpers.d.ts.map +1 -0
- package/dist/molecules/Alert.svelte +50 -23
- package/dist/molecules/Alert.svelte.d.ts +1 -1
- package/dist/molecules/ComponentDemo.svelte +54 -51
- package/dist/molecules/ContactForm.svelte +70 -65
- package/dist/molecules/Dropdown.svelte +99 -108
- package/dist/molecules/Dropdown.svelte.d.ts +12 -6
- package/dist/molecules/EmptyState.svelte +44 -0
- package/dist/molecules/EmptyState.svelte.d.ts +11 -0
- package/dist/molecules/FormField.svelte +89 -0
- package/dist/molecules/FormField.svelte.d.ts +23 -0
- package/dist/molecules/Header.svelte +41 -0
- package/dist/molecules/Header.svelte.d.ts +10 -0
- package/dist/molecules/ImageUpload.svelte +1 -1
- package/dist/molecules/Modal.svelte +39 -26
- package/dist/molecules/Modal.svelte.d.ts +4 -2
- package/dist/molecules/NavigationMenu.svelte +16 -0
- package/dist/molecules/NavigationMenu.svelte.d.ts +2 -0
- package/dist/molecules/NavigationMenuContent.svelte +9 -1
- package/dist/molecules/NavigationMenuLink.svelte +1 -1
- package/dist/molecules/NavigationMenuTrigger.svelte +9 -4
- package/dist/molecules/Page.svelte +16 -0
- package/dist/molecules/Page.svelte.d.ts +8 -0
- package/dist/molecules/PropsTable.svelte +61 -0
- package/dist/molecules/PropsTable.svelte.d.ts +8 -0
- package/dist/molecules/RadioGroup.svelte +197 -0
- package/dist/molecules/RadioGroup.svelte.d.ts +20 -0
- package/dist/molecules/Section.svelte +14 -23
- package/dist/molecules/Section.svelte.d.ts +2 -11
- package/dist/molecules/SidebarBrandHeader.svelte +68 -0
- package/dist/molecules/SidebarBrandHeader.svelte.d.ts +10 -0
- package/dist/molecules/SidebarFooter.svelte +119 -0
- package/dist/molecules/SidebarFooter.svelte.d.ts +23 -0
- package/dist/molecules/SidebarNavSection.svelte +49 -0
- package/dist/molecules/SidebarNavSection.svelte.d.ts +14 -0
- package/dist/molecules/SlideUp.svelte +21 -16
- package/dist/molecules/SlideUp.svelte.d.ts +1 -1
- package/dist/molecules/Tabs.svelte +6 -11
- package/dist/molecules/Toaster.svelte +21 -0
- package/dist/molecules/Toaster.svelte.d.ts +6 -0
- package/dist/molecules/ToasterToast.svelte +217 -0
- package/dist/molecules/ToasterToast.svelte.d.ts +7 -0
- package/dist/molecules/index.d.ts +10 -0
- package/dist/molecules/index.js +10 -0
- package/dist/molecules/navigation-menu-context.d.ts +11 -0
- package/dist/molecules/navigation-menu-context.js +18 -0
- package/dist/molecules/toast-store.d.ts +38 -0
- package/dist/molecules/toast-store.js +34 -0
- package/dist/organisms/SidebarAccountPanel.svelte +118 -0
- package/dist/organisms/SidebarAccountPanel.svelte.d.ts +20 -0
- package/dist/organisms/SidebarNavigation.svelte +286 -212
- package/dist/organisms/SidebarNavigation.svelte.d.ts +22 -1
- package/dist/organisms/{SidebarProjectPanel.svelte → SidebarPanel.svelte} +67 -34
- package/dist/organisms/{SidebarProjectPanel.svelte.d.ts → SidebarPanel.svelte.d.ts} +9 -6
- package/dist/organisms/TopNavbar.svelte +214 -0
- package/dist/organisms/TopNavbar.svelte.d.ts +35 -0
- package/dist/organisms/index.d.ts +3 -3
- package/dist/organisms/index.js +3 -3
- package/dist/routes/lib/focus-utils.d.ts +7 -18
- package/dist/routes/lib/focus-utils.ts +32 -34
- package/dist/routes/lib/ssr-safe.ts +5 -4
- package/dist/routes/lib/variant-utils.ts +48 -39
- package/dist/types/components.d.ts +187 -0
- package/dist/types/components.d.ts.map +1 -0
- package/dist/types/events.d.ts +200 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/index.d.ts +171 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/page.types.d.ts +3 -0
- package/dist/types/page.types.d.ts.map +1 -0
- package/dist/types/page.types.js +1 -0
- package/dist/types/page.types.ts +79 -0
- package/dist/types/variants.d.ts +3 -0
- package/dist/types/variants.d.ts.map +1 -0
- package/dist/types/variants.js +1 -0
- package/dist/types/variants.ts +75 -0
- package/dist/util/fixed-sidebar-flyout.d.ts +22 -0
- package/dist/util/fixed-sidebar-flyout.js +148 -0
- package/dist/util/focus-utils.d.ts +11 -0
- package/dist/util/focus-utils.js +94 -0
- package/dist/util/ssr-safe.d.ts +16 -0
- package/dist/util/ssr-safe.js +48 -0
- package/dist/zabi-components-colors.css +360 -324
- package/dist/zabi-components-theme-dark-only.css +164 -151
- package/dist/zabi-components-theme-dark.css +164 -151
- package/dist/zabi-components-theme-only.css +253 -230
- package/dist/zabi-components-theme.css +253 -230
- package/dist/zabi-components.css +1262 -241
- package/docs/theme-imports.md +112 -0
- package/package.json +32 -10
- package/dist/organisms/Navbar.svelte +0 -92
- package/dist/organisms/Navbar.svelte.d.ts +0 -14
- package/dist/organisms/Navigation.svelte +0 -119
- package/dist/organisms/Navigation.svelte.d.ts +0 -21
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { onDestroy } from "svelte";
|
|
3
|
+
import { generateId } from "../util/ssr-safe.js";
|
|
3
4
|
|
|
4
5
|
interface Props {
|
|
5
6
|
content?: string;
|
|
@@ -8,6 +9,10 @@
|
|
|
8
9
|
disabled?: boolean;
|
|
9
10
|
}
|
|
10
11
|
|
|
12
|
+
/** First matching focusable inside the slot receives `aria-describedby` (wrapper div is skipped). */
|
|
13
|
+
const FOCUSABLE_SELECTOR =
|
|
14
|
+
'button:not([disabled]), a[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';
|
|
15
|
+
|
|
11
16
|
let {
|
|
12
17
|
content = "",
|
|
13
18
|
placement = "top",
|
|
@@ -21,30 +26,104 @@
|
|
|
21
26
|
const tooltipId = generateId("tooltip");
|
|
22
27
|
let isVisible = $state(false);
|
|
23
28
|
let triggerElement: HTMLElement | null = $state(null);
|
|
29
|
+
let showDelayTimeout: ReturnType<typeof setTimeout> | null = null;
|
|
30
|
+
let hideBlurTimeout: ReturnType<typeof setTimeout> | null = null;
|
|
31
|
+
|
|
32
|
+
function clearShowDelay(): void {
|
|
33
|
+
if (showDelayTimeout !== null) {
|
|
34
|
+
clearTimeout(showDelayTimeout);
|
|
35
|
+
showDelayTimeout = null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function clearHideBlurTimeout(): void {
|
|
40
|
+
if (hideBlurTimeout !== null) {
|
|
41
|
+
clearTimeout(hideBlurTimeout);
|
|
42
|
+
hideBlurTimeout = null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function findDescribedTarget(root: HTMLElement): HTMLElement | null {
|
|
47
|
+
const found = root.querySelector<HTMLElement>(FOCUSABLE_SELECTOR);
|
|
48
|
+
if (found) {
|
|
49
|
+
return found;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
if (root.matches(FOCUSABLE_SELECTOR)) {
|
|
53
|
+
return root;
|
|
54
|
+
}
|
|
55
|
+
} catch {
|
|
56
|
+
/* `matches()` can throw on unusual roots */
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
$effect(() => {
|
|
62
|
+
const root = triggerElement;
|
|
63
|
+
const describe =
|
|
64
|
+
isVisible && content && !disabled ? tooltipId : null;
|
|
65
|
+
if (!root) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const target = findDescribedTarget(root);
|
|
69
|
+
if (!target) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (describe) {
|
|
73
|
+
target.setAttribute("aria-describedby", describe);
|
|
74
|
+
} else {
|
|
75
|
+
target.removeAttribute("aria-describedby");
|
|
76
|
+
}
|
|
77
|
+
return () => {
|
|
78
|
+
target.removeAttribute("aria-describedby");
|
|
79
|
+
};
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
$effect(() => {
|
|
83
|
+
if (!content || disabled) {
|
|
84
|
+
clearShowDelay();
|
|
85
|
+
clearHideBlurTimeout();
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
onDestroy(() => {
|
|
90
|
+
clearShowDelay();
|
|
91
|
+
clearHideBlurTimeout();
|
|
92
|
+
});
|
|
24
93
|
|
|
25
94
|
function handleKeydown(event: KeyboardEvent) {
|
|
26
95
|
if (event.key === "Escape" && isVisible) {
|
|
96
|
+
clearShowDelay();
|
|
97
|
+
clearHideBlurTimeout();
|
|
27
98
|
isVisible = false;
|
|
28
99
|
triggerElement?.focus();
|
|
29
100
|
}
|
|
30
101
|
}
|
|
31
102
|
|
|
32
103
|
function handleFocus() {
|
|
104
|
+
clearShowDelay();
|
|
105
|
+
clearHideBlurTimeout();
|
|
33
106
|
if (!disabled && content) {
|
|
34
107
|
isVisible = true;
|
|
35
108
|
}
|
|
36
109
|
}
|
|
37
110
|
|
|
38
111
|
function handleBlur() {
|
|
39
|
-
|
|
112
|
+
clearHideBlurTimeout();
|
|
113
|
+
// Defer hide so brief focus moves within the trigger subtree do not flash the tooltip off.
|
|
114
|
+
hideBlurTimeout = setTimeout(() => {
|
|
115
|
+
hideBlurTimeout = null;
|
|
40
116
|
isVisible = false;
|
|
41
117
|
}, 100);
|
|
42
118
|
}
|
|
43
119
|
|
|
44
120
|
function handleMouseEnter() {
|
|
121
|
+
clearShowDelay();
|
|
122
|
+
clearHideBlurTimeout();
|
|
45
123
|
if (!disabled && content) {
|
|
46
124
|
if (delay > 0) {
|
|
47
|
-
setTimeout(() => {
|
|
125
|
+
showDelayTimeout = setTimeout(() => {
|
|
126
|
+
showDelayTimeout = null;
|
|
48
127
|
isVisible = true;
|
|
49
128
|
}, delay);
|
|
50
129
|
} else {
|
|
@@ -54,6 +133,8 @@
|
|
|
54
133
|
}
|
|
55
134
|
|
|
56
135
|
function handleMouseLeave() {
|
|
136
|
+
clearShowDelay();
|
|
137
|
+
clearHideBlurTimeout();
|
|
57
138
|
isVisible = false;
|
|
58
139
|
}
|
|
59
140
|
</script>
|
|
@@ -70,11 +151,7 @@
|
|
|
70
151
|
onfocusout={handleBlur}
|
|
71
152
|
{...restProps}
|
|
72
153
|
>
|
|
73
|
-
<div
|
|
74
|
-
bind:this={triggerElement}
|
|
75
|
-
id={triggerId}
|
|
76
|
-
aria-describedby={isVisible ? tooltipId : undefined}
|
|
77
|
-
>
|
|
154
|
+
<div bind:this={triggerElement} id={triggerId}>
|
|
78
155
|
{@render children?.()}
|
|
79
156
|
</div>
|
|
80
157
|
|
|
@@ -268,9 +345,11 @@
|
|
|
268
345
|
}
|
|
269
346
|
}
|
|
270
347
|
|
|
271
|
-
.tooltip-container:focus-visible {
|
|
272
|
-
outline:
|
|
273
|
-
|
|
348
|
+
.tooltip-container:has(:focus-visible) {
|
|
349
|
+
outline: none;
|
|
350
|
+
box-shadow:
|
|
351
|
+
0 0 0 2px var(--color-focus-ring-offset),
|
|
352
|
+
0 0 0 4px var(--color-focus-ring);
|
|
274
353
|
border-radius: var(--tooltip-radius);
|
|
275
354
|
}
|
|
276
355
|
</style>
|
package/dist/atoms/index.d.ts
CHANGED
|
@@ -14,3 +14,9 @@ export { default as List } from './List.svelte';
|
|
|
14
14
|
export { default as ListItem } from './ListItem.svelte';
|
|
15
15
|
export { default as Heading } from './Heading.svelte';
|
|
16
16
|
export { default as ThemeToggle } from './ThemeToggle.svelte';
|
|
17
|
+
export { default as ActionPanel } from './ActionPanel.svelte';
|
|
18
|
+
export { default as Divider } from './Divider.svelte';
|
|
19
|
+
export { default as Container } from './Container.svelte';
|
|
20
|
+
export { default as Text } from './Text.svelte';
|
|
21
|
+
export { default as Table } from './Table.svelte';
|
|
22
|
+
export { default as Radio } from './Radio.svelte';
|
package/dist/atoms/index.js
CHANGED
|
@@ -14,3 +14,9 @@ export { default as List } from './List.svelte';
|
|
|
14
14
|
export { default as ListItem } from './ListItem.svelte';
|
|
15
15
|
export { default as Heading } from './Heading.svelte';
|
|
16
16
|
export { default as ThemeToggle } from './ThemeToggle.svelte';
|
|
17
|
+
export { default as ActionPanel } from './ActionPanel.svelte';
|
|
18
|
+
export { default as Divider } from './Divider.svelte';
|
|
19
|
+
export { default as Container } from './Container.svelte';
|
|
20
|
+
export { default as Text } from './Text.svelte';
|
|
21
|
+
export { default as Table } from './Table.svelte';
|
|
22
|
+
export { default as Radio } from './Radio.svelte';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layout strings for selection controls. Interaction states live in `app.css`
|
|
3
|
+
* (`.selection-control-label-row-interaction`, etc.) — keep class names in sync.
|
|
4
|
+
*/
|
|
5
|
+
/** With `app.css`: hover, disabled, `:focus-visible` ring on the row. */
|
|
6
|
+
export declare const SELECTION_CONTROL_LABEL_ROW_INTERACTION = "selection-control-label-row-interaction";
|
|
7
|
+
/** With `app.css`: `:checked` ring for radio list rows. */
|
|
8
|
+
export declare const SELECTION_CONTROL_OPTION_ROW = "selection-control-option-row";
|
|
9
|
+
/** Control + label row; `p-2 -m-2` aligns hit area with text; `group` is not valid inside `@apply`. */
|
|
10
|
+
export declare const SELECTION_CONTROL_LABEL_ROW_BASE: string;
|
|
11
|
+
export declare const SELECTION_CONTROL_LABEL_ROW: string;
|
|
12
|
+
/** Radio option row: stacked label/description; `p-2` only (no `-m-2`) so vertical gaps stay even. */
|
|
13
|
+
export declare const RADIO_GROUP_OPTION_LABEL_ROW: string;
|
|
14
|
+
/** Control shell: border/fill/hover/checked/disabled. `group/control` drives inner mark states. */
|
|
15
|
+
export declare const SELECTION_CONTROL_SHELL_STATE = "group/control relative inline-flex items-center justify-center w-5 h-5 transition-all duration-200 border-2 group-active:scale-95 border-base-400 bg-transparent group-hover:border-brand-500 group-hover:bg-brand-50 has-[:checked]:border-brand-500 has-[:checked]:bg-brand-500 has-[:checked]:group-hover:bg-brand-600 has-[:checked]:group-hover:border-brand-600 has-[:disabled]:opacity-50 has-[:disabled]:cursor-not-allowed";
|
|
16
|
+
export type SelectionControlShape = "square" | "circle";
|
|
17
|
+
export declare function selectionControlShellClasses(shape: SelectionControlShape): string;
|
|
18
|
+
/** Radio circle control; `mt-0.5` aligns with multi-line labels. */
|
|
19
|
+
export declare const RADIO_GROUP_CONTROL_SHELL: string;
|
|
20
|
+
/** Full-bleed ring behind the mark (same geometry as SelectionControl inner ring). */
|
|
21
|
+
export declare function selectionControlRingOverlayClasses(shape: SelectionControlShape): string;
|
|
22
|
+
/** Radio row: circle overlay + `pointer-events-none` so clicks hit the input. */
|
|
23
|
+
export declare const RADIO_GROUP_RING_OVERLAY: string;
|
|
24
|
+
/** Checked radio dot (shared with `Radio.svelte`). */
|
|
25
|
+
export declare const RADIO_CHECKED_DOT_CLASSES = "absolute size-2 rounded-full bg-base-50 pointer-events-none z-10 opacity-0 group-has-checked/control:opacity-100";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layout strings for selection controls. Interaction states live in `app.css`
|
|
3
|
+
* (`.selection-control-label-row-interaction`, etc.) — keep class names in sync.
|
|
4
|
+
*/
|
|
5
|
+
/** With `app.css`: hover, disabled, `:focus-visible` ring on the row. */
|
|
6
|
+
export const SELECTION_CONTROL_LABEL_ROW_INTERACTION = "selection-control-label-row-interaction";
|
|
7
|
+
/** With `app.css`: `:checked` ring for radio list rows. */
|
|
8
|
+
export const SELECTION_CONTROL_OPTION_ROW = "selection-control-option-row";
|
|
9
|
+
/** Control + label row; `p-2 -m-2` aligns hit area with text; `group` is not valid inside `@apply`. */
|
|
10
|
+
export const SELECTION_CONTROL_LABEL_ROW_BASE = `p-2 -m-2 group ${SELECTION_CONTROL_LABEL_ROW_INTERACTION}`.trim();
|
|
11
|
+
export const SELECTION_CONTROL_LABEL_ROW = `flex items-center gap-2 ${SELECTION_CONTROL_LABEL_ROW_BASE}`;
|
|
12
|
+
/** Radio option row: stacked label/description; `p-2` only (no `-m-2`) so vertical gaps stay even. */
|
|
13
|
+
export const RADIO_GROUP_OPTION_LABEL_ROW = `flex items-start gap-2 p-2 group ${SELECTION_CONTROL_LABEL_ROW_INTERACTION} ${SELECTION_CONTROL_OPTION_ROW}`.trim();
|
|
14
|
+
/** Control shell: border/fill/hover/checked/disabled. `group/control` drives inner mark states. */
|
|
15
|
+
export const SELECTION_CONTROL_SHELL_STATE = "group/control relative inline-flex items-center justify-center w-5 h-5 transition-all duration-200 border-2 group-active:scale-95 border-base-400 bg-transparent group-hover:border-brand-500 group-hover:bg-brand-50 has-[:checked]:border-brand-500 has-[:checked]:bg-brand-500 has-[:checked]:group-hover:bg-brand-600 has-[:checked]:group-hover:border-brand-600 has-[:disabled]:opacity-50 has-[:disabled]:cursor-not-allowed";
|
|
16
|
+
export function selectionControlShellClasses(shape) {
|
|
17
|
+
const rounding = shape === "circle" ? "rounded-full" : "rounded";
|
|
18
|
+
return `${SELECTION_CONTROL_SHELL_STATE} ${rounding}`.trim();
|
|
19
|
+
}
|
|
20
|
+
/** Radio circle control; `mt-0.5` aligns with multi-line labels. */
|
|
21
|
+
export const RADIO_GROUP_CONTROL_SHELL = `${SELECTION_CONTROL_SHELL_STATE} mt-0.5 shrink-0 rounded-full`.trim();
|
|
22
|
+
/** Full-bleed ring behind the mark (same geometry as SelectionControl inner ring). */
|
|
23
|
+
export function selectionControlRingOverlayClasses(shape) {
|
|
24
|
+
const rounding = shape === "circle" ? "rounded-full" : "rounded";
|
|
25
|
+
return `absolute inset-0 ${rounding}`.trim();
|
|
26
|
+
}
|
|
27
|
+
/** Radio row: circle overlay + `pointer-events-none` so clicks hit the input. */
|
|
28
|
+
export const RADIO_GROUP_RING_OVERLAY = `pointer-events-none ${selectionControlRingOverlayClasses("circle")}`;
|
|
29
|
+
/** Checked radio dot (shared with `Radio.svelte`). */
|
|
30
|
+
export const RADIO_CHECKED_DOT_CLASSES = "absolute size-2 rounded-full bg-base-50 pointer-events-none z-10 opacity-0 group-has-checked/control:opacity-100";
|
|
@@ -14,4 +14,10 @@ export { default as List } from './List.svelte';
|
|
|
14
14
|
export { default as ListItem } from './ListItem.svelte';
|
|
15
15
|
export { default as Heading } from './Heading.svelte';
|
|
16
16
|
export { default as ThemeToggle } from './ThemeToggle.svelte';
|
|
17
|
+
export { default as ActionPanel } from './ActionPanel.svelte';
|
|
18
|
+
export { default as Divider } from './Divider.svelte';
|
|
19
|
+
export { default as Container } from './Container.svelte';
|
|
20
|
+
export { default as Text } from './Text.svelte';
|
|
21
|
+
export { default as Table } from './Table.svelte';
|
|
22
|
+
export { default as Radio } from './Radio.svelte';
|
|
17
23
|
//# 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,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"}
|
|
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;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layout strings for selection controls. Interaction states live in `app.css`
|
|
3
|
+
* (`.selection-control-label-row-interaction`, etc.) — keep class names in sync.
|
|
4
|
+
*/
|
|
5
|
+
/** With `app.css`: hover, disabled, `:focus-visible` ring on the row. */
|
|
6
|
+
export declare const SELECTION_CONTROL_LABEL_ROW_INTERACTION = "selection-control-label-row-interaction";
|
|
7
|
+
/** With `app.css`: `:checked` ring for radio list rows. */
|
|
8
|
+
export declare const SELECTION_CONTROL_OPTION_ROW = "selection-control-option-row";
|
|
9
|
+
/** Control + label row; `p-2 -m-2` aligns hit area with text; `group` is not valid inside `@apply`. */
|
|
10
|
+
export declare const SELECTION_CONTROL_LABEL_ROW_BASE: string;
|
|
11
|
+
export declare const SELECTION_CONTROL_LABEL_ROW: string;
|
|
12
|
+
/** Radio option row: stacked label/description; `p-2` only (no `-m-2`) so vertical gaps stay even. */
|
|
13
|
+
export declare const RADIO_GROUP_OPTION_LABEL_ROW: string;
|
|
14
|
+
/** Control shell: border/fill/hover/checked/disabled. `group/control` drives inner mark states. */
|
|
15
|
+
export declare const SELECTION_CONTROL_SHELL_STATE = "group/control relative inline-flex items-center justify-center w-5 h-5 transition-all duration-200 border-2 group-active:scale-95 border-base-400 bg-transparent group-hover:border-brand-500 group-hover:bg-brand-50 has-[:checked]:border-brand-500 has-[:checked]:bg-brand-500 has-[:checked]:group-hover:bg-brand-600 has-[:checked]:group-hover:border-brand-600 has-[:disabled]:opacity-50 has-[:disabled]:cursor-not-allowed";
|
|
16
|
+
export type SelectionControlShape = "square" | "circle";
|
|
17
|
+
export declare function selectionControlShellClasses(shape: SelectionControlShape): string;
|
|
18
|
+
/** Radio circle control; `mt-0.5` aligns with multi-line labels. */
|
|
19
|
+
export declare const RADIO_GROUP_CONTROL_SHELL: string;
|
|
20
|
+
/** Full-bleed ring behind the mark (same geometry as SelectionControl inner ring). */
|
|
21
|
+
export declare function selectionControlRingOverlayClasses(shape: SelectionControlShape): string;
|
|
22
|
+
/** Radio row: circle overlay + `pointer-events-none` so clicks hit the input. */
|
|
23
|
+
export declare const RADIO_GROUP_RING_OVERLAY: string;
|
|
24
|
+
/** Checked radio dot (shared with `Radio.svelte`). */
|
|
25
|
+
export declare const RADIO_CHECKED_DOT_CLASSES = "absolute size-2 rounded-full bg-base-50 pointer-events-none z-10 opacity-0 group-has-checked/control:opacity-100";
|
|
26
|
+
//# sourceMappingURL=selection-control.styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-control.styles.d.ts","sourceRoot":"","sources":["../../../src/components/atoms/selection-control.styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yEAAyE;AACzE,eAAO,MAAM,uCAAuC,4CACP,CAAC;AAE9C,2DAA2D;AAC3D,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAE3E,uGAAuG;AACvG,eAAO,MAAM,gCAAgC,QACyB,CAAC;AAEvE,eAAO,MAAM,2BAA2B,QAAgE,CAAC;AAEzG,sGAAsG;AACtG,eAAO,MAAM,4BAA4B,QAC+E,CAAC;AAEzH,mGAAmG;AACnG,eAAO,MAAM,6BAA6B,waAC+X,CAAC;AAE1a,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAGjF;AAED,oEAAoE;AACpE,eAAO,MAAM,yBAAyB,QAAyE,CAAC;AAEhH,sFAAsF;AACtF,wBAAgB,kCAAkC,CAC9C,KAAK,EAAE,qBAAqB,GAC7B,MAAM,CAGR;AAED,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,QAAwE,CAAC;AAE9G,sDAAsD;AACtD,eAAO,MAAM,yBAAyB,qHACgF,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
export { default as Toggle } from './atoms/Toggle.svelte';
|
|
2
2
|
export { default as Badge } from './atoms/Badge.svelte';
|
|
3
3
|
export { default as Button } from './atoms/Button.svelte';
|
|
4
|
+
export { default as IconButton } from './atoms/IconButton.svelte';
|
|
4
5
|
export { default as Card } from './atoms/Card.svelte';
|
|
6
|
+
export { default as CardHeader } from './atoms/CardHeader.svelte';
|
|
7
|
+
export { default as CardContent } from './atoms/CardContent.svelte';
|
|
8
|
+
export { default as CardFooter } from './atoms/CardFooter.svelte';
|
|
5
9
|
export { default as Input } from './atoms/Input.svelte';
|
|
6
10
|
export { default as Textarea } from './atoms/Textarea.svelte';
|
|
7
11
|
export { default as Select } from './atoms/Select.svelte';
|
|
@@ -10,28 +14,59 @@ export { default as List } from './atoms/List.svelte';
|
|
|
10
14
|
export { default as ListItem } from './atoms/ListItem.svelte';
|
|
11
15
|
export { default as Heading } from './atoms/Heading.svelte';
|
|
12
16
|
export { default as ThemeToggle } from './atoms/ThemeToggle.svelte';
|
|
17
|
+
export { default as Divider } from './atoms/Divider.svelte';
|
|
18
|
+
export { default as Container } from './atoms/Container.svelte';
|
|
19
|
+
export { default as Text } from './atoms/Text.svelte';
|
|
20
|
+
export { default as Table } from './atoms/Table.svelte';
|
|
21
|
+
export { default as Toast } from './atoms/Toast.svelte';
|
|
22
|
+
export { default as Tooltip } from './atoms/Tooltip.svelte';
|
|
23
|
+
export { default as Progress } from './atoms/Progress.svelte';
|
|
24
|
+
export { default as Skeleton } from './atoms/Skeleton.svelte';
|
|
25
|
+
export { default as Checkbox } from './atoms/Checkbox.svelte';
|
|
26
|
+
export { default as Radio } from './atoms/Radio.svelte';
|
|
27
|
+
export { default as CodeBlock } from './atoms/CodeBlock.svelte';
|
|
28
|
+
export { default as FeatureCard } from './atoms/FeatureCard.svelte';
|
|
29
|
+
export { default as OptimizedImage } from './atoms/OptimizedImage.svelte';
|
|
30
|
+
export { default as ActionPanel } from './atoms/ActionPanel.svelte';
|
|
13
31
|
export { default as Alert } from './molecules/Alert.svelte';
|
|
14
32
|
export { default as ComponentDemo } from './molecules/ComponentDemo.svelte';
|
|
15
33
|
export { default as ContactForm } from './molecules/ContactForm.svelte';
|
|
16
34
|
export { default as Dropdown } from './molecules/Dropdown.svelte';
|
|
17
35
|
export { default as Form } from './molecules/Form.svelte';
|
|
36
|
+
export { default as FormField } from './molecules/FormField.svelte';
|
|
37
|
+
export { default as Header } from './molecules/Header.svelte';
|
|
38
|
+
export { default as EmptyState } from './molecules/EmptyState.svelte';
|
|
39
|
+
export { default as Toaster } from './molecules/Toaster.svelte';
|
|
18
40
|
export { default as ImageUpload } from './molecules/ImageUpload.svelte';
|
|
19
41
|
export { default as Modal } from './molecules/Modal.svelte';
|
|
20
42
|
export { default as SlideUp } from './molecules/SlideUp.svelte';
|
|
21
43
|
export { default as Tabs } from './molecules/Tabs.svelte';
|
|
22
|
-
export { default as
|
|
23
|
-
export { default as
|
|
44
|
+
export { default as RadioGroup } from './molecules/RadioGroup.svelte';
|
|
45
|
+
export { default as NavigationMenu } from './molecules/NavigationMenu.svelte';
|
|
46
|
+
export { default as NavigationMenuList } from './molecules/NavigationMenuList.svelte';
|
|
47
|
+
export { default as NavigationMenuItem } from './molecules/NavigationMenuItem.svelte';
|
|
48
|
+
export { default as NavigationMenuTrigger } from './molecules/NavigationMenuTrigger.svelte';
|
|
49
|
+
export { default as NavigationMenuContent } from './molecules/NavigationMenuContent.svelte';
|
|
50
|
+
export { default as NavigationMenuLink } from './molecules/NavigationMenuLink.svelte';
|
|
51
|
+
export { default as Page } from './molecules/Page.svelte';
|
|
52
|
+
export { default as Section } from './molecules/Section.svelte';
|
|
53
|
+
export { default as SidebarBrandHeader } from './molecules/SidebarBrandHeader.svelte';
|
|
54
|
+
export { default as SidebarFooter } from './molecules/SidebarFooter.svelte';
|
|
55
|
+
export { default as SidebarNavSection } from './molecules/SidebarNavSection.svelte';
|
|
56
|
+
export { toastStore, pushToast, dismissToast, type ToastItem, type ToastLevel, } from './molecules/toast-store.js';
|
|
57
|
+
export { default as TopNavbar } from './organisms/TopNavbar.svelte';
|
|
24
58
|
export { default as SidebarNavigation } from './organisms/SidebarNavigation.svelte';
|
|
25
|
-
export { default as
|
|
59
|
+
export { default as SidebarAccountPanel } from './organisms/SidebarAccountPanel.svelte';
|
|
60
|
+
export { default as SidebarPanel } from './organisms/SidebarPanel.svelte';
|
|
61
|
+
export declare const generateId: (prefix?: string) => string;
|
|
26
62
|
export declare const createId: (prefix?: string) => string;
|
|
27
63
|
export declare const cn: (...classes: (string | undefined | null | false)[]) => string;
|
|
28
|
-
export declare const getFormData: (form: HTMLFormElement) => Record<string,
|
|
64
|
+
export declare const getFormData: (form: HTMLFormElement) => Record<string, unknown>;
|
|
29
65
|
export declare const validateEmail: (email: string) => boolean;
|
|
30
|
-
export declare const validateRequired: (value:
|
|
66
|
+
export declare const validateRequired: (value: unknown) => boolean;
|
|
31
67
|
export declare const isBrowser: () => boolean;
|
|
32
68
|
export declare const safeWindow: () => Window | undefined;
|
|
33
69
|
export declare const safeDocument: () => Document | undefined;
|
|
34
70
|
export declare const safeLocalStorage: () => Storage | undefined;
|
|
35
|
-
export
|
|
36
|
-
export { Sun, Moon, Monitor, Grip, GripVertical, ChevronUp, ChevronDown, ChevronRight, Zap, Briefcase, Clipboard, Settings } from '@lucide/svelte';
|
|
71
|
+
export { Sun, Moon, Monitor, Grip, GripVertical, ChevronUp, ChevronDown, ChevronRight, Zap, Briefcase, Clipboard, Settings, } from '@lucide/svelte';
|
|
37
72
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,17 @@ export { default as NavigationMenuItem } from './NavigationMenuItem.svelte';
|
|
|
11
11
|
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
|
+
export { default as Page } from './Page.svelte';
|
|
14
15
|
export { default as Section } from './Section.svelte';
|
|
16
|
+
export { default as SidebarBrandHeader } from './SidebarBrandHeader.svelte';
|
|
17
|
+
export { default as SidebarFooter } from './SidebarFooter.svelte';
|
|
18
|
+
export { default as SidebarNavSection } from './SidebarNavSection.svelte';
|
|
15
19
|
export { default as SlideUp } from './SlideUp.svelte';
|
|
16
20
|
export { default as Tabs } from './Tabs.svelte';
|
|
21
|
+
export { default as FormField } from './FormField.svelte';
|
|
22
|
+
export { default as Header } from './Header.svelte';
|
|
23
|
+
export { default as EmptyState } from './EmptyState.svelte';
|
|
24
|
+
export { default as Toaster } from './Toaster.svelte';
|
|
25
|
+
export { default as RadioGroup } from './RadioGroup.svelte';
|
|
26
|
+
export * from './toast-store.js';
|
|
17
27
|
//# 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,IAAI,EAAE,MAAM,eAAe,CAAC"}
|
|
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,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,cAAc,kBAAkB,CAAC"}
|
|
@@ -2,6 +2,17 @@ export interface NavigationMenuContextValue {
|
|
|
2
2
|
activeItem: string | null;
|
|
3
3
|
setActiveItem: (item: string | null) => void;
|
|
4
4
|
isMobile: boolean;
|
|
5
|
+
/** Prefix for panel `id` / trigger `aria-controls` (one menu instance). */
|
|
6
|
+
menuInstanceId: string;
|
|
5
7
|
}
|
|
6
8
|
export declare const NAVIGATION_MENU_CONTEXT_KEY: unique symbol;
|
|
9
|
+
/** Panel element id; `itemValue` is sanitized for HTML id rules. */
|
|
10
|
+
export declare function navigationMenuPanelId(menuInstanceId: string, itemValue: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Deterministic menu id from item order + values (FNV-1a).
|
|
13
|
+
* SSR and client must agree — do not use `generateId()` for this pairing.
|
|
14
|
+
*/
|
|
15
|
+
export declare function navigationMenuStableInstanceId(items: ReadonlyArray<{
|
|
16
|
+
value: string;
|
|
17
|
+
}>): string;
|
|
7
18
|
//# sourceMappingURL=navigation-menu-context.d.ts.map
|
|
@@ -1 +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;
|
|
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;IAClB,2EAA2E;IAC3E,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,2BAA2B,eAA4B,CAAC;AAErE,oEAAoE;AACpE,wBAAgB,qBAAqB,CACjC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAClB,MAAM,CAGR;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC1C,KAAK,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GACxC,MAAM,CAQR"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export type ToastLevel = 'success' | 'error' | 'warning' | 'info';
|
|
2
|
+
export interface ToastItem {
|
|
3
|
+
id: string;
|
|
4
|
+
/** Primary line (always shown). */
|
|
5
|
+
message: string;
|
|
6
|
+
type: ToastLevel;
|
|
7
|
+
title?: string;
|
|
8
|
+
/** Expandable body; UI can fall back to `message`. */
|
|
9
|
+
detail?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Auto-dismiss duration in milliseconds.
|
|
12
|
+
* When omitted, the toaster uses 14s. Use `0` to keep the toast until dismissed manually.
|
|
13
|
+
*/
|
|
14
|
+
duration?: number;
|
|
15
|
+
}
|
|
16
|
+
export declare const toastStore: {
|
|
17
|
+
subscribe: (this: void, run: import("svelte/store").Subscriber<ToastItem[]>, invalidate?: () => void) => import("svelte/store").Unsubscriber;
|
|
18
|
+
push(options: {
|
|
19
|
+
message: string;
|
|
20
|
+
type?: ToastLevel;
|
|
21
|
+
/** Same semantics as {@link ToastItem.duration}. */
|
|
22
|
+
duration?: number;
|
|
23
|
+
id?: string;
|
|
24
|
+
title?: string;
|
|
25
|
+
detail?: string;
|
|
26
|
+
}): string;
|
|
27
|
+
dismiss: (id: string) => void;
|
|
28
|
+
clear(): void;
|
|
29
|
+
};
|
|
30
|
+
export declare function pushToast(options: {
|
|
31
|
+
message: string;
|
|
32
|
+
type?: ToastLevel;
|
|
33
|
+
/** Same semantics as {@link ToastItem.duration}. */
|
|
34
|
+
duration?: number;
|
|
35
|
+
title?: string;
|
|
36
|
+
detail?: string;
|
|
37
|
+
}): string;
|
|
38
|
+
export declare function dismissToast(id: string): void;
|
|
39
|
+
//# sourceMappingURL=toast-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast-store.d.ts","sourceRoot":"","sources":["../../../src/components/molecules/toast-store.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAElE,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAwCD,eAAO,MAAM,UAAU;;kBA7BD;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB,oDAAoD;QACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,MAAM;kBAdO,MAAM;;CAmCa,CAAC;AAE7C,wBAAgB,SAAS,CAAC,OAAO,EAAE;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAET;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE7C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { default as
|
|
2
|
-
export { default as Navigation } from './Navigation.svelte';
|
|
1
|
+
export { default as TopNavbar } from './TopNavbar.svelte';
|
|
3
2
|
export { default as SidebarNavigation } from './SidebarNavigation.svelte';
|
|
4
|
-
export { default as
|
|
3
|
+
export { default as SidebarAccountPanel } from './SidebarAccountPanel.svelte';
|
|
4
|
+
export { default as SidebarPanel } from './SidebarPanel.svelte';
|
|
5
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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/organisms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export interface NavItem {
|
|
2
|
+
label: string;
|
|
3
|
+
href: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ContactFormData {
|
|
6
|
+
name: string;
|
|
7
|
+
email: string;
|
|
8
|
+
message?: string;
|
|
9
|
+
subscribe?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface ComponentMetadata {
|
|
12
|
+
name: string;
|
|
13
|
+
category: 'atoms' | 'molecules' | 'organisms';
|
|
14
|
+
description: string;
|
|
15
|
+
props: ComponentProp[];
|
|
16
|
+
variants?: string[];
|
|
17
|
+
examples: ComponentExample[];
|
|
18
|
+
}
|
|
19
|
+
export interface ComponentProp {
|
|
20
|
+
name: string;
|
|
21
|
+
type: string;
|
|
22
|
+
required: boolean;
|
|
23
|
+
defaultValue?: string;
|
|
24
|
+
description: string;
|
|
25
|
+
}
|
|
26
|
+
export interface ComponentExample {
|
|
27
|
+
title: string;
|
|
28
|
+
description: string;
|
|
29
|
+
code: string;
|
|
30
|
+
language?: string;
|
|
31
|
+
/** Optional demo id for rendering live previews via a registry. */
|
|
32
|
+
demoId?: string;
|
|
33
|
+
}
|
|
34
|
+
export type ComponentCategory = 'atoms' | 'molecules' | 'organisms';
|
|
35
|
+
export type ComponentDocSectionId = 'live' | 'snippet' | 'variants' | 'props' | 'guidelines';
|
|
36
|
+
export interface ComponentDocExample {
|
|
37
|
+
title: string;
|
|
38
|
+
description?: string;
|
|
39
|
+
/** Demo renderer id, resolved via a registry. */
|
|
40
|
+
demoId: string;
|
|
41
|
+
/** Copy/paste ready snippet that matches the live demo. */
|
|
42
|
+
code: string;
|
|
43
|
+
language?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface ComponentDocGuidelines {
|
|
46
|
+
whenToUse: string[];
|
|
47
|
+
whenToAvoid?: string[];
|
|
48
|
+
}
|
|
49
|
+
export interface ComponentDoc {
|
|
50
|
+
name: string;
|
|
51
|
+
category: ComponentCategory;
|
|
52
|
+
/** Short description: what it is + when to use. */
|
|
53
|
+
description: string;
|
|
54
|
+
/** Primary live example shown first. */
|
|
55
|
+
defaultExample: ComponentDocExample;
|
|
56
|
+
/** Optional additional examples (variants/states/realistic patterns). */
|
|
57
|
+
examples?: ComponentDocExample[];
|
|
58
|
+
/** Optional list of variants/states, for quick scanning. */
|
|
59
|
+
variantsStates?: string[];
|
|
60
|
+
/** Props/API for the exported component. */
|
|
61
|
+
props: ComponentProp[];
|
|
62
|
+
guidelines?: ComponentDocGuidelines;
|
|
63
|
+
/** Optional section visibility/order overrides (defaults to canonical order). */
|
|
64
|
+
sections?: Array<{
|
|
65
|
+
id: ComponentDocSectionId;
|
|
66
|
+
hidden?: boolean;
|
|
67
|
+
}>;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=page.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.types.d.ts","sourceRoot":"","sources":["../../../src/components/types/page.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,WAAW,CAAC;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,CAAC;AAEpE,MAAM,MAAM,qBAAqB,GAC3B,MAAM,GACN,SAAS,GACT,UAAU,GACV,OAAO,GACP,YAAY,CAAC;AAEnB,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACnC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,cAAc,EAAE,mBAAmB,CAAC;IACpC,yEAAyE;IACzE,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,4CAA4C;IAC5C,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,qBAAqB,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACrE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|