@makolabs/ripple 2.5.9 → 3.0.1
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 +403 -497
- package/dist/adapters/storage/S3Adapter.d.ts +49 -1
- package/dist/adapters/storage/S3Adapter.js +38 -1
- package/dist/adapters/storage/types.d.ts +20 -0
- package/dist/ai/AIChatInterface.svelte +2 -1
- package/dist/ai/AIChatInterface.svelte.d.ts +2 -1
- package/dist/ai/CodeRenderer.svelte +7 -2
- package/dist/ai/CodeRenderer.svelte.d.ts +2 -1
- package/dist/ai/ComposeDropdown.svelte +1 -1
- package/dist/ai/MessageBox.svelte +3 -3
- package/dist/ai/MessageBox.svelte.d.ts +3 -2
- package/dist/ai/ThinkingDisplay.svelte +4 -3
- package/dist/ai/ThinkingDisplay.svelte.d.ts +2 -1
- package/dist/ai/ai-types.d.ts +55 -1
- package/dist/button/Button.svelte +5 -5
- package/dist/button/button-types.d.ts +49 -4
- package/dist/button/button.d.ts +9 -9
- package/dist/button/button.js +6 -6
- package/dist/charts/Chart.svelte +8 -16
- package/dist/charts/chart-types.d.ts +78 -1
- package/dist/drawer/Drawer.svelte +6 -26
- package/dist/drawer/drawer-types.d.ts +33 -12
- package/dist/drawer/drawer.d.ts +3 -3
- package/dist/drawer/drawer.js +1 -1
- package/dist/elements/accordion/Accordion.svelte +6 -17
- package/dist/elements/accordion/accordion-types.d.ts +53 -6
- package/dist/elements/alert/Alert.svelte +3 -0
- package/dist/elements/badge/Badge.svelte +1 -1
- package/dist/elements/badge/badge-types.d.ts +22 -0
- package/dist/elements/badge/badge.d.ts +3 -3
- package/dist/elements/badge/badge.js +1 -1
- package/dist/elements/combobox/ComboBox.svelte +244 -0
- package/dist/elements/combobox/ComboBox.svelte.d.ts +4 -0
- package/dist/elements/combobox/combobox-types.d.ts +41 -0
- package/dist/elements/combobox/combobox-types.js +1 -0
- package/dist/elements/context-menu/ContextMenu.svelte +137 -0
- package/dist/elements/context-menu/ContextMenu.svelte.d.ts +4 -0
- package/dist/elements/context-menu/context-menu-types.d.ts +40 -0
- package/dist/elements/context-menu/context-menu-types.js +1 -0
- package/dist/elements/dropdown/Dropdown.svelte +1 -1
- package/dist/elements/dropdown/Select.svelte +4 -1
- package/dist/elements/dropdown/dropdown-types.d.ts +114 -0
- package/dist/elements/dropdown/dropdown.d.ts +3 -3
- package/dist/elements/dropdown/dropdown.js +2 -2
- package/dist/elements/dropdown/select.d.ts +3 -108
- package/dist/elements/dropdown/select.js +38 -47
- package/dist/elements/empty-state/EmptyState.svelte +1 -1
- package/dist/elements/empty-state/empty-state-types.d.ts +32 -1
- package/dist/elements/empty-state/empty-state.d.ts +3 -3
- package/dist/elements/empty-state/empty-state.js +2 -2
- package/dist/elements/file-upload/FileUpload.svelte +5 -0
- package/dist/elements/file-upload/file-upload-types.d.ts +59 -0
- package/dist/elements/pagination/Pagination.svelte +53 -21
- package/dist/elements/pagination/Pagination.svelte.d.ts +33 -5
- package/dist/elements/popover/Popover.svelte +254 -0
- package/dist/elements/popover/Popover.svelte.d.ts +4 -0
- package/dist/elements/popover/index.d.ts +2 -0
- package/dist/elements/popover/index.js +1 -0
- package/dist/elements/popover/popover-types.d.ts +60 -0
- package/dist/elements/popover/popover-types.js +1 -0
- package/dist/elements/progress/Progress.svelte +32 -7
- package/dist/elements/progress/progress-types.d.ts +48 -1
- package/dist/elements/skeleton/Skeleton.svelte +56 -0
- package/dist/elements/skeleton/Skeleton.svelte.d.ts +4 -0
- package/dist/elements/skeleton/index.d.ts +2 -0
- package/dist/elements/skeleton/index.js +1 -0
- package/dist/elements/skeleton/skeleton-types.d.ts +50 -0
- package/dist/elements/skeleton/skeleton-types.js +1 -0
- package/dist/elements/spinner/Spinner.svelte +1 -1
- package/dist/elements/spinner/spinner-types.d.ts +20 -0
- package/dist/elements/spinner/spinner.d.ts +3 -3
- package/dist/elements/spinner/spinner.js +2 -2
- package/dist/elements/tooltip/Tooltip.svelte +108 -11
- package/dist/elements/tooltip/tooltip-types.d.ts +49 -1
- package/dist/file-browser/FileBrowser.svelte +21 -12
- package/dist/filters/CompactFilters.svelte +221 -33
- package/dist/filters/CompactFilters.svelte.d.ts +1 -1
- package/dist/filters/FilterBar.svelte +184 -0
- package/dist/filters/FilterBar.svelte.d.ts +4 -0
- package/dist/filters/FilterPopover.svelte +346 -0
- package/dist/filters/FilterPopover.svelte.d.ts +4 -0
- package/dist/filters/date-presets.d.ts +15 -0
- package/dist/filters/date-presets.js +107 -0
- package/dist/filters/filter-types.d.ts +69 -3
- package/dist/filters/index.d.ts +5 -0
- package/dist/filters/index.js +4 -0
- package/dist/filters/sync-filters-to-url.svelte.d.ts +37 -0
- package/dist/filters/sync-filters-to-url.svelte.js +114 -0
- package/dist/forms/Checkbox.svelte +24 -9
- package/dist/forms/DateRange.svelte +23 -6
- package/dist/forms/Input.svelte +19 -19
- package/dist/forms/MarketSelector.svelte +9 -4
- package/dist/forms/NumberInput.svelte +14 -18
- package/dist/forms/RadioGroup.svelte +127 -0
- package/dist/forms/RadioGroup.svelte.d.ts +4 -0
- package/dist/forms/SegmentedControl.svelte +11 -4
- package/dist/forms/Slider.svelte +72 -3
- package/dist/forms/Tags.svelte +44 -14
- package/dist/forms/Textarea.svelte +121 -0
- package/dist/forms/Textarea.svelte.d.ts +4 -0
- package/dist/forms/Toggle.svelte +30 -22
- package/dist/forms/calendar/Calendar.svelte +315 -0
- package/dist/forms/calendar/Calendar.svelte.d.ts +4 -0
- package/dist/forms/calendar/calendar-types.d.ts +54 -0
- package/dist/forms/calendar/calendar-types.js +1 -0
- package/dist/forms/calendar/index.d.ts +2 -0
- package/dist/forms/calendar/index.js +1 -0
- package/dist/forms/date-picker/DatePicker.svelte +141 -0
- package/dist/forms/date-picker/DatePicker.svelte.d.ts +4 -0
- package/dist/forms/date-picker/date-picker-types.d.ts +29 -0
- package/dist/forms/date-picker/date-picker-types.js +1 -0
- package/dist/forms/form-size.d.ts +37 -0
- package/dist/forms/form-size.js +67 -0
- package/dist/forms/form-types.d.ts +430 -6
- package/dist/forms/market/market-selector-types.d.ts +52 -1
- package/dist/forms/segmented-control.d.ts +5 -2
- package/dist/forms/segmented-control.js +25 -13
- package/dist/forms/slider.d.ts +3 -3
- package/dist/forms/slider.js +37 -30
- package/dist/funcs/user-management.remote.js +1 -1
- package/dist/header/Breadcrumbs.svelte +4 -20
- package/dist/header/PageHeader.svelte +6 -14
- package/dist/header/breadcrumbs.d.ts +3 -11
- package/dist/header/breadcrumbs.js +10 -5
- package/dist/header/header-types.d.ts +62 -11
- package/dist/index.d.ts +35 -9
- package/dist/index.js +24 -4
- package/dist/layout/activity-list/ActivityList.svelte +13 -7
- package/dist/layout/activity-list/activity-list-types.d.ts +46 -7
- package/dist/layout/card/Card.svelte +12 -15
- package/dist/layout/card/MetricCard.svelte +50 -32
- package/dist/layout/card/card-types.d.ts +114 -4
- package/dist/layout/navbar/navbar-types.d.ts +48 -0
- package/dist/layout/navbar/navbar.d.ts +3 -3
- package/dist/layout/navbar/navbar.js +2 -2
- package/dist/layout/sidebar/Sidebar.svelte +87 -11
- package/dist/layout/sidebar/sidebar-types.d.ts +60 -1
- package/dist/layout/stepper/Stepper.svelte +288 -0
- package/dist/layout/stepper/Stepper.svelte.d.ts +4 -0
- package/dist/layout/stepper/stepper-types.d.ts +80 -0
- package/dist/layout/stepper/stepper-types.js +1 -0
- package/dist/layout/table/Table.svelte +91 -85
- package/dist/layout/table/table-types.d.ts +148 -24
- package/dist/layout/table/table.d.ts +3 -3
- package/dist/layout/table/table.js +2 -2
- package/dist/layout/tabs/Tab.svelte +6 -2
- package/dist/layout/tabs/Tab.svelte.d.ts +4 -1
- package/dist/layout/tabs/TabGroup.svelte +9 -2
- package/dist/layout/tabs/tabs-types.d.ts +63 -0
- package/dist/layout/tabs/tabs.d.ts +3 -3
- package/dist/layout/tabs/tabs.js +12 -6
- package/dist/modal/ConfirmDialog.svelte +65 -0
- package/dist/modal/ConfirmDialog.svelte.d.ts +4 -0
- package/dist/modal/Modal.svelte +6 -26
- package/dist/modal/confirm-dialog-types.d.ts +39 -0
- package/dist/modal/confirm-dialog-types.js +1 -0
- package/dist/modal/modal-types.d.ts +51 -12
- package/dist/modal/modal.d.ts +3 -3
- package/dist/modal/modal.js +3 -3
- package/dist/pipeline/Pipeline.svelte +8 -3
- package/dist/pipeline/pipeline-types.d.ts +55 -3
- package/dist/pipeline/pipeline.d.ts +18 -3
- package/dist/pipeline/pipeline.js +7 -2
- package/dist/server/s3.d.ts +35 -3
- package/dist/sonner/Toaster.svelte +29 -0
- package/dist/sonner/Toaster.svelte.d.ts +4 -0
- package/dist/sonner/index.d.ts +21 -0
- package/dist/sonner/index.js +20 -0
- package/dist/user-management/UserManagement.svelte +22 -16
- package/dist/user-management/UserModal.svelte +10 -7
- package/dist/user-management/UserTable.svelte +16 -17
- package/dist/user-management/UserViewModal.svelte +11 -11
- package/dist/user-management/user-management-types.d.ts +118 -31
- package/dist/variants.d.ts +1 -1
- package/dist/variants.js +1 -1
- package/package.json +7 -4
- package/dist/config/ai.d.ts +0 -13
- package/dist/config/ai.js +0 -44
- package/dist/elements/empty-state/EmptyStateTestWrapper.svelte +0 -25
- package/dist/elements/empty-state/EmptyStateTestWrapper.svelte.d.ts +0 -8
- package/dist/elements/tooltip/TooltipTestWrapper.svelte +0 -14
- package/dist/elements/tooltip/TooltipTestWrapper.svelte.d.ts +0 -7
- package/dist/helper/deprecation.d.ts +0 -14
- package/dist/helper/deprecation.js +0 -24
- package/dist/modal/ModalFooterTestWrapper.svelte +0 -17
- package/dist/modal/ModalFooterTestWrapper.svelte.d.ts +0 -8
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { tv } from 'tailwind-variants';
|
|
2
2
|
import { cn } from '../helper/cls.js';
|
|
3
|
-
import { Color
|
|
3
|
+
import { Color } from '../variants.js';
|
|
4
|
+
import { formSizeTokens } from './form-size.js';
|
|
4
5
|
export const segmentedTrack = tv({
|
|
5
|
-
|
|
6
|
+
// `max-w-full overflow-x-auto` + hidden scrollbar lets a long segment
|
|
7
|
+
// row swipe on narrow viewports instead of bleeding past the parent.
|
|
8
|
+
base: 'inline-flex max-w-full overflow-x-auto rounded-lg border [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
|
|
6
9
|
variants: {
|
|
7
10
|
appearance: {
|
|
8
11
|
surface: 'border-default-200 bg-white p-0',
|
|
@@ -11,7 +14,13 @@ export const segmentedTrack = tv({
|
|
|
11
14
|
},
|
|
12
15
|
orientation: {
|
|
13
16
|
horizontal: 'flex-row',
|
|
14
|
-
vertical: 'w-full flex-col'
|
|
17
|
+
vertical: 'w-full flex-col',
|
|
18
|
+
// `auto`: horizontal + content width by default, flips to full-width
|
|
19
|
+
// column when the parent @container drops below 250px. Component
|
|
20
|
+
// sets `@container` on the rootClass wrapper for the query to resolve.
|
|
21
|
+
// `w-fit` prevents flex-stretch when labelLayout='above' puts this
|
|
22
|
+
// inside a flex-col root.
|
|
23
|
+
auto: 'w-fit flex-row @max-[250px]:w-full @max-[250px]:flex-col'
|
|
15
24
|
}
|
|
16
25
|
},
|
|
17
26
|
defaultVariants: {
|
|
@@ -28,25 +37,28 @@ const selectedByColor = {
|
|
|
28
37
|
[Color.WARNING]: 'bg-warning-600 text-white shadow-sm',
|
|
29
38
|
[Color.DANGER]: 'bg-danger-600 text-white shadow-sm'
|
|
30
39
|
};
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
40
|
+
// Pull padding/text/gap from the shared form-size tokens so a
|
|
41
|
+
// SegmentedControl at `size="md"` coordinates with Input / Select /
|
|
42
|
+
// DateRange / etc. at the same tier. Segments don't use `height` —
|
|
43
|
+
// their height falls out of text + padding.
|
|
44
|
+
function segmentSize(size) {
|
|
45
|
+
const t = formSizeTokens[size];
|
|
46
|
+
return `${t.gap} ${t.padX} ${t.padY} ${t.text}`;
|
|
47
|
+
}
|
|
39
48
|
export function segmentClasses(args) {
|
|
40
49
|
const { selected, disabled, appearance, color, size } = args;
|
|
41
50
|
if (appearance === 'pills') {
|
|
42
|
-
const pillBase = cn('flex cursor-pointer items-center justify-center rounded-full font-medium transition-colors duration-150', 'focus-visible:ring-primary-500 focus-visible:ring-2 focus-visible:outline-none focus-visible:ring-offset-2', segmentSize
|
|
51
|
+
const pillBase = cn('flex cursor-pointer items-center justify-center rounded-full font-medium transition-colors duration-150 shrink-0 whitespace-nowrap', 'focus-visible:ring-primary-500 focus-visible:ring-2 focus-visible:outline-none focus-visible:ring-offset-2', segmentSize(size), disabled && 'cursor-not-allowed opacity-50');
|
|
43
52
|
if (disabled)
|
|
44
53
|
return cn(pillBase, 'text-default-400');
|
|
45
54
|
if (selected)
|
|
46
55
|
return cn(pillBase, selectedByColor[color]);
|
|
47
56
|
return cn(pillBase, 'bg-default-100 text-default-700 hover:bg-default-200');
|
|
48
57
|
}
|
|
49
|
-
const base = cn('flex cursor-pointer items-center justify-center font-medium transition-colors duration-150', 'focus-visible:ring-primary-500 focus-visible:ring-2 focus-visible:outline-none', appearance === 'inverted' ? 'focus-visible:ring-offset-0' : 'focus-visible:ring-offset-2',
|
|
58
|
+
const base = cn('flex cursor-pointer items-center justify-center font-medium transition-colors duration-150 shrink-0 whitespace-nowrap', 'focus-visible:ring-primary-500 focus-visible:ring-2 focus-visible:outline-none', appearance === 'inverted' ? 'focus-visible:ring-offset-0' : 'focus-visible:ring-offset-2',
|
|
59
|
+
// Inverted track has p-0.5 padding around segments — give them inner radius
|
|
60
|
+
// so selected segments don't render as square boxes (matches surface look).
|
|
61
|
+
appearance === 'inverted' && 'rounded-md', segmentSize(size), disabled && 'cursor-not-allowed opacity-50');
|
|
50
62
|
if (disabled) {
|
|
51
63
|
return cn(base, 'text-default-400');
|
|
52
64
|
}
|
package/dist/forms/slider.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare const slider: import("tailwind-variants").TVReturnType<{
|
|
|
14
14
|
label: string;
|
|
15
15
|
value: string;
|
|
16
16
|
};
|
|
17
|
-
|
|
17
|
+
md: {
|
|
18
18
|
track: string;
|
|
19
19
|
thumb: string;
|
|
20
20
|
mark: string;
|
|
@@ -82,7 +82,7 @@ export declare const slider: import("tailwind-variants").TVReturnType<{
|
|
|
82
82
|
label: string;
|
|
83
83
|
value: string;
|
|
84
84
|
};
|
|
85
|
-
|
|
85
|
+
md: {
|
|
86
86
|
track: string;
|
|
87
87
|
thumb: string;
|
|
88
88
|
mark: string;
|
|
@@ -150,7 +150,7 @@ export declare const slider: import("tailwind-variants").TVReturnType<{
|
|
|
150
150
|
label: string;
|
|
151
151
|
value: string;
|
|
152
152
|
};
|
|
153
|
-
|
|
153
|
+
md: {
|
|
154
154
|
track: string;
|
|
155
155
|
thumb: string;
|
|
156
156
|
mark: string;
|
package/dist/forms/slider.js
CHANGED
|
@@ -1,62 +1,69 @@
|
|
|
1
1
|
import { tv } from 'tailwind-variants';
|
|
2
2
|
import { Size } from '../variants.js';
|
|
3
|
+
import { formSizeTokens } from './form-size.js';
|
|
4
|
+
// Track/thumb dimensions are Slider-specific — a "size" for a slider
|
|
5
|
+
// means the physical rail, not an input height. We keep these tuned per
|
|
6
|
+
// tier but pull `text` classes from the shared form-size tokens so a
|
|
7
|
+
// Slider's label reads the same size as an adjacent Input's text.
|
|
8
|
+
const textFor = (size) => formSizeTokens[size].text;
|
|
3
9
|
export const slider = tv({
|
|
4
10
|
slots: {
|
|
5
11
|
base: 'relative w-full',
|
|
6
|
-
track: 'absolute
|
|
12
|
+
track: 'absolute w-full rounded-full bg-default-200 cursor-pointer',
|
|
7
13
|
range: 'absolute h-full rounded-full bg-primary-500',
|
|
8
14
|
thumb: [
|
|
9
15
|
'absolute top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-white border-2 border-primary-500',
|
|
10
16
|
'focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2',
|
|
11
17
|
'hover:scale-110 transition-transform cursor-pointer'
|
|
12
18
|
],
|
|
13
|
-
mark: 'absolute text-
|
|
14
|
-
label: 'mb-2 block
|
|
15
|
-
value: 'mt-1 text-
|
|
19
|
+
mark: 'absolute text-default-500 -translate-x-1/2',
|
|
20
|
+
label: 'mb-2 block font-medium text-default-700',
|
|
21
|
+
value: 'mt-1 text-default-500'
|
|
16
22
|
},
|
|
17
23
|
variants: {
|
|
18
24
|
size: {
|
|
19
25
|
[Size.XS]: {
|
|
20
|
-
track: 'h-
|
|
21
|
-
thumb: 'w-
|
|
22
|
-
mark:
|
|
23
|
-
label:
|
|
24
|
-
value:
|
|
26
|
+
track: 'h-0.5',
|
|
27
|
+
thumb: 'w-2.5 h-2.5',
|
|
28
|
+
mark: `${textFor(Size.XS)} top-3`,
|
|
29
|
+
label: textFor(Size.XS),
|
|
30
|
+
value: textFor(Size.XS)
|
|
25
31
|
},
|
|
26
32
|
[Size.SM]: {
|
|
27
33
|
track: 'h-1',
|
|
28
34
|
thumb: 'w-3 h-3',
|
|
29
|
-
mark:
|
|
30
|
-
label:
|
|
31
|
-
value:
|
|
35
|
+
mark: `${textFor(Size.SM)} top-4`,
|
|
36
|
+
label: textFor(Size.SM),
|
|
37
|
+
value: textFor(Size.SM)
|
|
32
38
|
},
|
|
33
|
-
[Size.
|
|
34
|
-
track: 'h-
|
|
35
|
-
thumb: 'w-
|
|
36
|
-
mark:
|
|
37
|
-
label:
|
|
38
|
-
value:
|
|
39
|
+
[Size.MD]: {
|
|
40
|
+
track: 'h-1.5',
|
|
41
|
+
thumb: 'w-3.5 h-3.5',
|
|
42
|
+
mark: `${textFor(Size.MD)} top-5`,
|
|
43
|
+
label: textFor(Size.MD),
|
|
44
|
+
value: textFor(Size.MD)
|
|
39
45
|
},
|
|
40
46
|
[Size.LG]: {
|
|
41
|
-
track: 'h-
|
|
42
|
-
thumb: 'w-
|
|
43
|
-
mark:
|
|
44
|
-
label:
|
|
45
|
-
value:
|
|
47
|
+
track: 'h-2',
|
|
48
|
+
thumb: 'w-4 h-4',
|
|
49
|
+
mark: `${textFor(Size.LG)} top-6`,
|
|
50
|
+
label: textFor(Size.LG),
|
|
51
|
+
value: textFor(Size.LG)
|
|
46
52
|
},
|
|
47
53
|
[Size.XL]: {
|
|
48
54
|
track: 'h-3',
|
|
49
55
|
thumb: 'w-5 h-5',
|
|
50
|
-
mark:
|
|
51
|
-
label:
|
|
52
|
-
value:
|
|
56
|
+
mark: `${textFor(Size.XL)} top-7`,
|
|
57
|
+
label: textFor(Size.XL),
|
|
58
|
+
value: textFor(Size.XL)
|
|
53
59
|
},
|
|
60
|
+
// Form controls cap at xl — see `form-size.ts`.
|
|
54
61
|
[Size.XXL]: {
|
|
55
62
|
track: 'h-3',
|
|
56
63
|
thumb: 'w-5 h-5',
|
|
57
|
-
mark:
|
|
58
|
-
label:
|
|
59
|
-
value:
|
|
64
|
+
mark: `${textFor(Size.XXL)} top-7`,
|
|
65
|
+
label: textFor(Size.XXL),
|
|
66
|
+
value: textFor(Size.XXL)
|
|
60
67
|
}
|
|
61
68
|
},
|
|
62
69
|
disabled: {
|
|
@@ -76,7 +83,7 @@ export const slider = tv({
|
|
|
76
83
|
}
|
|
77
84
|
},
|
|
78
85
|
defaultVariants: {
|
|
79
|
-
size: Size.
|
|
86
|
+
size: Size.MD,
|
|
80
87
|
disabled: false,
|
|
81
88
|
hasError: false
|
|
82
89
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { cn } from '../helper/cls.js';
|
|
3
|
-
import { warnDeprecatedProps } from '../helper/deprecation.js';
|
|
4
3
|
import { breadcrumbs } from './breadcrumbs.js';
|
|
5
4
|
import type { BreadcrumbsProps } from '../index.js';
|
|
6
5
|
import { resolve } from '$app/paths';
|
|
@@ -12,27 +11,12 @@
|
|
|
12
11
|
weight = 'medium',
|
|
13
12
|
icon: SeparatorIcon,
|
|
14
13
|
class: className = '',
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
separatorclass,
|
|
20
|
-
separatorClass = separatorclass ?? '',
|
|
21
|
-
wrapperclass,
|
|
22
|
-
wrapperClass = wrapperclass ?? ''
|
|
14
|
+
listClass = '',
|
|
15
|
+
itemClass = '',
|
|
16
|
+
separatorClass = '',
|
|
17
|
+
wrapperClass = ''
|
|
23
18
|
}: BreadcrumbsProps = $props();
|
|
24
19
|
|
|
25
|
-
warnDeprecatedProps(
|
|
26
|
-
'Breadcrumbs',
|
|
27
|
-
{ listclass, itemclass, separatorclass, wrapperclass },
|
|
28
|
-
{
|
|
29
|
-
listclass: 'listClass',
|
|
30
|
-
itemclass: 'itemClass',
|
|
31
|
-
separatorclass: 'separatorClass',
|
|
32
|
-
wrapperclass: 'wrapperClass'
|
|
33
|
-
}
|
|
34
|
-
);
|
|
35
|
-
|
|
36
20
|
const { base, list, item, separator, wrapper } = $derived(
|
|
37
21
|
breadcrumbs({
|
|
38
22
|
size,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { cn } from '../helper/cls.js';
|
|
3
|
-
import { warnDeprecatedProps } from '../helper/deprecation.js';
|
|
4
3
|
import type { PageHeaderProps } from '../index.js';
|
|
5
4
|
import Breadcrumbs from './Breadcrumbs.svelte';
|
|
6
5
|
|
|
@@ -10,19 +9,10 @@
|
|
|
10
9
|
breadcrumbs = [],
|
|
11
10
|
children,
|
|
12
11
|
class: className = '',
|
|
13
|
-
|
|
14
|
-
titleClass = titleclass ?? '',
|
|
12
|
+
titleClass = '',
|
|
15
13
|
layout = 'vertical'
|
|
16
14
|
}: PageHeaderProps = $props();
|
|
17
15
|
|
|
18
|
-
warnDeprecatedProps(
|
|
19
|
-
'PageHeader',
|
|
20
|
-
{ titleclass },
|
|
21
|
-
{
|
|
22
|
-
titleclass: 'titleClass'
|
|
23
|
-
}
|
|
24
|
-
);
|
|
25
|
-
|
|
26
16
|
const defaultTitleClasses =
|
|
27
17
|
'font-bold text-default-900 sm:tracking-tight sm:truncate text-2xl/7 sm:text-3xl';
|
|
28
18
|
|
|
@@ -47,9 +37,11 @@
|
|
|
47
37
|
{/if}
|
|
48
38
|
</div>
|
|
49
39
|
|
|
50
|
-
<!-- Actions area - responsive positioning
|
|
40
|
+
<!-- Actions area - responsive positioning. `flex-wrap` lets
|
|
41
|
+
multiple buttons wrap to a second row on narrow viewports
|
|
42
|
+
instead of overflowing. -->
|
|
51
43
|
{#if children}
|
|
52
|
-
<div class="flex-
|
|
44
|
+
<div class="flex flex-wrap items-center gap-2 md:ml-6 md:shrink-0">
|
|
53
45
|
{@render children()}
|
|
54
46
|
</div>
|
|
55
47
|
{/if}
|
|
@@ -70,7 +62,7 @@
|
|
|
70
62
|
|
|
71
63
|
<!-- Children as separate unit below -->
|
|
72
64
|
{#if children}
|
|
73
|
-
<div class="mt-4">
|
|
65
|
+
<div class="mt-4 flex flex-wrap items-center gap-2">
|
|
74
66
|
{@render children()}
|
|
75
67
|
</div>
|
|
76
68
|
{/if}
|
|
@@ -13,7 +13,7 @@ export declare const breadcrumbs: import("tailwind-variants").TVReturnType<{
|
|
|
13
13
|
sm: {
|
|
14
14
|
base: string;
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
md: {
|
|
17
17
|
base: string;
|
|
18
18
|
};
|
|
19
19
|
lg: {
|
|
@@ -86,7 +86,7 @@ export declare const breadcrumbs: import("tailwind-variants").TVReturnType<{
|
|
|
86
86
|
sm: {
|
|
87
87
|
base: string;
|
|
88
88
|
};
|
|
89
|
-
|
|
89
|
+
md: {
|
|
90
90
|
base: string;
|
|
91
91
|
};
|
|
92
92
|
lg: {
|
|
@@ -159,7 +159,7 @@ export declare const breadcrumbs: import("tailwind-variants").TVReturnType<{
|
|
|
159
159
|
sm: {
|
|
160
160
|
base: string;
|
|
161
161
|
};
|
|
162
|
-
|
|
162
|
+
md: {
|
|
163
163
|
base: string;
|
|
164
164
|
};
|
|
165
165
|
lg: {
|
|
@@ -232,17 +232,9 @@ export type BreadcrumbsProps = {
|
|
|
232
232
|
color?: keyof typeof breadcrumbs.variants.color;
|
|
233
233
|
icon?: Component;
|
|
234
234
|
class?: ClassValue;
|
|
235
|
-
/** @deprecated Use listClass instead */
|
|
236
|
-
listclass?: ClassValue;
|
|
237
235
|
listClass?: ClassValue;
|
|
238
|
-
/** @deprecated Use itemClass instead */
|
|
239
|
-
itemclass?: ClassValue;
|
|
240
236
|
itemClass?: ClassValue;
|
|
241
|
-
/** @deprecated Use separatorClass instead */
|
|
242
|
-
separatorclass?: ClassValue;
|
|
243
237
|
separatorClass?: ClassValue;
|
|
244
|
-
/** @deprecated Use wrapperClass instead */
|
|
245
|
-
wrapperclass?: ClassValue;
|
|
246
238
|
wrapperClass?: ClassValue;
|
|
247
239
|
};
|
|
248
240
|
export type { BreadcrumbItem };
|
|
@@ -2,11 +2,16 @@ import { tv } from 'tailwind-variants';
|
|
|
2
2
|
import { Size, Color } from '../variants.js';
|
|
3
3
|
export const breadcrumbs = tv({
|
|
4
4
|
slots: {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
// `min-w-0` lets the breadcrumb participate in a flex/grid parent
|
|
6
|
+
// that constrains its width so overflow scrolling actually triggers.
|
|
7
|
+
base: 'flex min-w-0',
|
|
8
|
+
// Switched from `flex-wrap` to `flex-nowrap` + horizontal scroll so
|
|
9
|
+
// deep paths stay on one line on narrow viewports and swipe cleanly
|
|
10
|
+
// instead of reflowing into a wall of text.
|
|
11
|
+
list: 'flex flex-nowrap items-center space-x-2.5 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
|
|
7
12
|
item: 'flex items-center whitespace-nowrap',
|
|
8
|
-
separator: 'flex items-center',
|
|
9
|
-
wrapper: 'flex items-center gap-2.5'
|
|
13
|
+
separator: 'flex items-center shrink-0',
|
|
14
|
+
wrapper: 'flex items-center gap-2.5 shrink-0'
|
|
10
15
|
},
|
|
11
16
|
variants: {
|
|
12
17
|
size: {
|
|
@@ -16,7 +21,7 @@ export const breadcrumbs = tv({
|
|
|
16
21
|
[Size.SM]: {
|
|
17
22
|
base: 'items-center text-sm'
|
|
18
23
|
},
|
|
19
|
-
[Size.
|
|
24
|
+
[Size.MD]: {
|
|
20
25
|
base: 'items-center text-base'
|
|
21
26
|
},
|
|
22
27
|
[Size.LG]: {
|
|
@@ -2,42 +2,93 @@ import type { ClassValue } from 'tailwind-variants';
|
|
|
2
2
|
import type { Snippet } from 'svelte';
|
|
3
3
|
import type { Component } from 'svelte';
|
|
4
4
|
import type { VariantColors } from '../index.js';
|
|
5
|
+
/** Single crumb in `<Breadcrumbs>`. */
|
|
5
6
|
export type BreadcrumbItem = {
|
|
7
|
+
/** Visible text. */
|
|
6
8
|
label: string;
|
|
9
|
+
/** Target URL. Use `'#'` for non-navigable items. */
|
|
7
10
|
href: string;
|
|
11
|
+
/** Mark as the current page (last crumb, no link styling). */
|
|
8
12
|
current?: boolean;
|
|
13
|
+
/** Optional icon rendered before the label. */
|
|
9
14
|
icon?: Component;
|
|
10
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* Props for `<Breadcrumbs>` — a horizontal trail of links showing the
|
|
18
|
+
* user's location in a hierarchy. Pair with `<PageHeader>` for a
|
|
19
|
+
* standard top-of-page treatment.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```svelte
|
|
23
|
+
* <Breadcrumbs
|
|
24
|
+
* items={[
|
|
25
|
+
* { label: 'Home', href: '/' },
|
|
26
|
+
* { label: 'Reports', href: '/reports' },
|
|
27
|
+
* { label: 'Q1 2026', href: '/reports/q1-2026', current: true }
|
|
28
|
+
* ]}
|
|
29
|
+
* />
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
11
32
|
export type BreadcrumbsProps = {
|
|
33
|
+
/** Ordered list of crumbs from root to current. */
|
|
12
34
|
items: BreadcrumbItem[];
|
|
13
|
-
size
|
|
35
|
+
/** Text size scale. @default 'sm' */
|
|
36
|
+
size?: 'xs' | 'sm' | 'md' | 'lg';
|
|
37
|
+
/** @default 'medium' */
|
|
14
38
|
weight?: 'normal' | 'medium' | 'semibold' | 'bold';
|
|
39
|
+
/** @default 'default' */
|
|
15
40
|
color?: VariantColors;
|
|
41
|
+
/** Custom separator icon (e.g. chevron, slash). Defaults to a chevron. */
|
|
16
42
|
icon?: Component;
|
|
17
43
|
class?: ClassValue;
|
|
18
|
-
/**
|
|
19
|
-
listclass?: ClassValue;
|
|
44
|
+
/** Classes on the `<ol>`. */
|
|
20
45
|
listClass?: ClassValue;
|
|
21
|
-
/**
|
|
22
|
-
itemclass?: ClassValue;
|
|
46
|
+
/** Classes on each `<li>` item. */
|
|
23
47
|
itemClass?: ClassValue;
|
|
24
|
-
/**
|
|
25
|
-
separatorclass?: ClassValue;
|
|
48
|
+
/** Classes on the separator span. */
|
|
26
49
|
separatorClass?: ClassValue;
|
|
27
|
-
/**
|
|
28
|
-
wrapperclass?: ClassValue;
|
|
50
|
+
/** Classes on the inner item wrapper (icon + label). */
|
|
29
51
|
wrapperClass?: ClassValue;
|
|
30
52
|
testId?: string;
|
|
31
53
|
};
|
|
54
|
+
/**
|
|
55
|
+
* Props for `<PageHeader>` — the top-of-page title block. Combines a
|
|
56
|
+
* heading, optional subtitle, breadcrumbs, and a children slot for
|
|
57
|
+
* page-level actions (Save, Export, etc.).
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```svelte
|
|
61
|
+
* <PageHeader
|
|
62
|
+
* title="Q1 2026 report"
|
|
63
|
+
* subtitle="Generated 2 hours ago"
|
|
64
|
+
* breadcrumbs={[
|
|
65
|
+
* { label: 'Home', href: '/' },
|
|
66
|
+
* { label: 'Reports', href: '/reports' }
|
|
67
|
+
* ]}
|
|
68
|
+
* >
|
|
69
|
+
* <Button color="primary">Export PDF</Button>
|
|
70
|
+
* </PageHeader>
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
32
73
|
export type PageHeaderProps = {
|
|
74
|
+
/** Page title — main heading. */
|
|
33
75
|
title: string;
|
|
76
|
+
/** Short subtitle below the title. */
|
|
34
77
|
subtitle?: string;
|
|
78
|
+
/** Optional crumb trail rendered above the title. */
|
|
35
79
|
breadcrumbs?: BreadcrumbItem[];
|
|
80
|
+
/**
|
|
81
|
+
* Right-aligned (horizontal layout) or below-the-title (vertical)
|
|
82
|
+
* content — typically page-level action buttons.
|
|
83
|
+
*/
|
|
36
84
|
children?: Snippet;
|
|
37
85
|
class?: ClassValue;
|
|
38
|
-
/**
|
|
39
|
-
titleclass?: ClassValue;
|
|
86
|
+
/** Classes on the title element. */
|
|
40
87
|
titleClass?: ClassValue;
|
|
88
|
+
/**
|
|
89
|
+
* - `'vertical'` (default): title above, actions below
|
|
90
|
+
* - `'horizontal'`: title left, actions right (md+ breakpoint)
|
|
91
|
+
*/
|
|
41
92
|
layout?: 'vertical' | 'horizontal';
|
|
42
93
|
testId?: string;
|
|
43
94
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import { ChartColor, Color, Size } from './variants.js';
|
|
2
2
|
/**
|
|
3
3
|
* Size System:
|
|
4
|
-
* - Size.*: Component dimensions (XS, SM,
|
|
4
|
+
* - Size.*: Component dimensions (XS, SM, MD, LG, XL, XXL)
|
|
5
5
|
*/
|
|
6
6
|
export type VariantSizes = (typeof Size)[keyof typeof Size];
|
|
7
7
|
export type VariantColors = (typeof Color)[keyof typeof Color];
|
|
8
|
+
/**
|
|
9
|
+
* Border-radius scale. Matches Tailwind's `rounded-*` utility suffixes
|
|
10
|
+
* plus `'none'` for no corners and `'full'` for fully rounded (pills,
|
|
11
|
+
* avatar badges). Use on any component that exposes a `rounded` prop.
|
|
12
|
+
*/
|
|
13
|
+
export type RoundedSizes = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
|
|
8
14
|
/**
|
|
9
15
|
* Color System:
|
|
10
16
|
* - Color.*: UI component colors (buttons, text, backgrounds)
|
|
@@ -19,6 +25,7 @@ export type { ClassValue } from 'tailwind-variants';
|
|
|
19
25
|
export type { BadgeProps } from './elements/badge/badge-types.js';
|
|
20
26
|
export type { BaseButtonProps, ButtonHTMLProps, AnchorHTMLProps, ButtonProps } from './button/button-types.js';
|
|
21
27
|
export type { ModalProps } from './modal/modal-types.js';
|
|
28
|
+
export type { ConfirmDialogProps } from './modal/confirm-dialog-types.js';
|
|
22
29
|
export type { DrawerProps } from './drawer/drawer-types.js';
|
|
23
30
|
export type { DropdownItem, DropSection, DropHeaderConfig, DropdownMenuProps, SelectItem, SelectProps } from './elements/dropdown/dropdown-types.js';
|
|
24
31
|
export type { CardProps, AlertProps, MetricDetail, MetricCardProps } from './layout/card/card-types.js';
|
|
@@ -29,7 +36,7 @@ export type { TabItem, TabProps, TabsGroupProps, TabContentProps } from './layou
|
|
|
29
36
|
export type { NavbarLinkItem, NavbarProps } from './layout/navbar/navbar-types.js';
|
|
30
37
|
export type { MenuBar, BaseNavigationItem, WithIcon, Activatable, LinkItem, ParentItem, DividerItem, NavigationItem, LogoType, NavGroupProps, NavItemProps, SidebarProps } from './layout/sidebar/sidebar-types.js';
|
|
31
38
|
export type { ChartColorKey, ChartColorValue, ChartColors, ChartType, ChartColorString, XAxisConfig, YAxisConfig, SeriesConfig, ChartThreshold, ChartAnnotation, GridConfig, LegendConfig, TooltipConfig, ToolboxConfig, ChartConfig, PointClickType, ChartRenderType, ChartProps } from './charts/chart-types.js';
|
|
32
|
-
export type { FormProps, InputProps, RadioOption, CheckboxProps, ToggleProps, CurrencyOption, NumberInputProps, DateRangeProps, DateSelectEvent, TagsProps, SliderMode, NotationType, EnumOption, SliderProps, SegmentedOption, SegmentedControlProps } from './forms/form-types.js';
|
|
39
|
+
export type { FormProps, InputProps, TextareaProps, RadioOption, RadioGroupProps, CheckboxProps, ToggleProps, CurrencyOption, NumberInputProps, DateRangeProps, DateSelectEvent, TagsProps, SliderMode, NotationType, EnumOption, SliderProps, SliderTick, SegmentedOption, SegmentedControlProps } from './forms/form-types.js';
|
|
33
40
|
export type { CountryCode } from './forms/market/country-data.js';
|
|
34
41
|
export type { MarketCode } from './forms/market/market.js';
|
|
35
42
|
export { ALL_COUNTRY_CODES, COUNTRY_NAMES } from './forms/market/country-data.js';
|
|
@@ -38,22 +45,31 @@ export type { MarketSelectorProps } from './forms/market/market-selector-types.j
|
|
|
38
45
|
export { countryCodeToFlagEmoji } from './forms/market/flag-emoji.js';
|
|
39
46
|
export type { ProgressSegment, ProgressProps } from './elements/progress/progress-types.js';
|
|
40
47
|
export type { SpinnerProps } from './elements/spinner/spinner-types.js';
|
|
48
|
+
export type { SkeletonProps, SkeletonVariant } from './elements/skeleton/skeleton-types.js';
|
|
41
49
|
export type { EmptyStateProps, EmptyStateSize } from './elements/empty-state/empty-state-types.js';
|
|
42
|
-
export type { TooltipProps, TooltipPlacement } from './elements/tooltip/tooltip-types.js';
|
|
50
|
+
export type { TooltipProps, TooltipPlacement, TooltipSize, TooltipVariant } from './elements/tooltip/tooltip-types.js';
|
|
51
|
+
export type { PopoverProps, PopoverPlacement, PopoverTrigger } from './elements/popover/popover-types.js';
|
|
52
|
+
export type { CalendarProps, CalendarMode } from './forms/calendar/calendar-types.js';
|
|
53
|
+
export type { DatePickerProps } from './forms/date-picker/date-picker-types.js';
|
|
54
|
+
export type { ComboBoxProps, ComboBoxItem } from './elements/combobox/combobox-types.js';
|
|
55
|
+
export type { ContextMenuProps, ContextMenuItem } from './elements/context-menu/context-menu-types.js';
|
|
43
56
|
export type { AccordionProps } from './elements/accordion/accordion-types.js';
|
|
44
|
-
export type { FilterTab, FilterGroup, CompactFiltersProps } from './filters/filter-types.js';
|
|
57
|
+
export type { FilterTab, FilterGroup, FilterSelectionValue, DatePreset, DateRangeConfig, DateRangeValue, CompactFiltersProps } from './filters/filter-types.js';
|
|
58
|
+
export { defaultDatePresets, toIsoDate, fromIsoDate } from './filters/date-presets.js';
|
|
59
|
+
export type { StepperProps, StepperStep, StepState, StepperOrientation } from './layout/stepper/stepper-types.js';
|
|
45
60
|
export type { ActivityItemBadge, ActivityItemAction, ActivityItem, ActivityListProps, ActivityListSize } from './layout/activity-list/activity-list-types.js';
|
|
46
61
|
export type { FileUploadProps, FileUploadSize, FilePreviewProps, UploadedFile, StagedFile } from './elements/file-upload/file-upload-types.js';
|
|
47
62
|
export type { ChatMessageType, StreamingCallback, ChatAction, ChatMessage, ChatResponse, QuickAction, FileBrowserProps } from './ai/ai-types.js';
|
|
48
|
-
export type { GetUsersOptions, GetUsersResult, UserEmail, UserPhone, User, Permission, Role, UserTableProps, UserModalProps, UserViewModalProps, UserManagementAdapter, UserManagementProps, FormErrors } from './user-management/user-management-types.js';
|
|
63
|
+
export type { GetUsersOptions, GetUsersResult, UserEmail, UserPhone, User, Permission, Role, UserTableProps, UserModalProps, UserModalSavePayload, UserViewModalProps, UserManagementAdapter, UserManagementProps, FormErrors } from './user-management/user-management-types.js';
|
|
49
64
|
export { tv, cn } from './helper/cls.js';
|
|
50
65
|
export { isRouteActive } from './helper/nav.svelte.js';
|
|
51
66
|
export { default as Button } from './button/Button.svelte';
|
|
52
67
|
export { default as Modal } from './modal/Modal.svelte';
|
|
53
68
|
export { default as ModalFooter } from './modal/ModalFooter.svelte';
|
|
69
|
+
export { default as ConfirmDialog } from './modal/ConfirmDialog.svelte';
|
|
54
70
|
export { default as Pipeline } from './pipeline/Pipeline.svelte';
|
|
55
71
|
export { pipelineVariants } from './pipeline/pipeline.js';
|
|
56
|
-
export type { PipelineStage,
|
|
72
|
+
export type { PipelineStage, PipelineStageEvent, PipelineStageClickEvent, PipelineStagePointerEvent, PipelineProps } from './pipeline/pipeline-types.js';
|
|
57
73
|
export { default as Drawer } from './drawer/Drawer.svelte';
|
|
58
74
|
export { default as PageHeader } from './header/PageHeader.svelte';
|
|
59
75
|
export { default as Breadcrumbs } from './header/Breadcrumbs.svelte';
|
|
@@ -70,34 +86,44 @@ export { default as Tab } from './layout/tabs/Tab.svelte';
|
|
|
70
86
|
export { default as TabContent } from './layout/tabs/TabContent.svelte';
|
|
71
87
|
export { default as TabGroup } from './layout/tabs/TabGroup.svelte';
|
|
72
88
|
export { default as Table } from './layout/table/Table.svelte';
|
|
73
|
-
export
|
|
89
|
+
export * as Cells from './layout/table/Cells.svelte';
|
|
74
90
|
export { default as Navbar } from './layout/navbar/Navbar.svelte';
|
|
75
91
|
export { default as Sidebar } from './layout/sidebar/Sidebar.svelte';
|
|
76
92
|
export { default as NavItem } from './layout/sidebar/NavItem.svelte';
|
|
77
93
|
export { default as NavGroup } from './layout/sidebar/NavGroup.svelte';
|
|
78
94
|
export { default as ActivityList } from './layout/activity-list/ActivityList.svelte';
|
|
95
|
+
export { default as Stepper } from './layout/stepper/Stepper.svelte';
|
|
79
96
|
export { default as Progress } from './elements/progress/Progress.svelte';
|
|
80
97
|
export { default as Spinner } from './elements/spinner/Spinner.svelte';
|
|
98
|
+
export { default as Skeleton } from './elements/skeleton/Skeleton.svelte';
|
|
81
99
|
export { spinner as spinnerVariants } from './elements/spinner/spinner.js';
|
|
82
100
|
export { default as EmptyState } from './elements/empty-state/EmptyState.svelte';
|
|
83
101
|
export { emptyState as emptyStateVariants } from './elements/empty-state/empty-state.js';
|
|
84
102
|
export { default as Tooltip } from './elements/tooltip/Tooltip.svelte';
|
|
103
|
+
export { default as Popover } from './elements/popover/Popover.svelte';
|
|
104
|
+
export { default as ComboBox } from './elements/combobox/ComboBox.svelte';
|
|
105
|
+
export { default as ContextMenu } from './elements/context-menu/ContextMenu.svelte';
|
|
85
106
|
export { default as Accordion } from './elements/accordion/Accordion.svelte';
|
|
86
107
|
export { default as Chart } from './charts/Chart.svelte';
|
|
87
108
|
export { default as FileUpload } from './elements/file-upload/FileUpload.svelte';
|
|
88
109
|
export { default as FilesPreview } from './elements/file-upload/FilesPreview.svelte';
|
|
89
|
-
export {
|
|
110
|
+
export { Toaster, toast } from './sonner/index.js';
|
|
111
|
+
export type { ToasterProps, ToastT } from './sonner/index.js';
|
|
90
112
|
export { default as AIChatInterface } from './ai/AIChatInterface.svelte';
|
|
91
113
|
export { default as MermaidRenderer } from './ai/MermaidRenderer.svelte';
|
|
92
114
|
export { default as CodeRenderer } from './ai/CodeRenderer.svelte';
|
|
93
115
|
export * from './ai/content-detector.js';
|
|
94
116
|
export { default as Form } from './forms/Form.svelte';
|
|
95
117
|
export { default as Input } from './forms/Input.svelte';
|
|
118
|
+
export { default as Textarea } from './forms/Textarea.svelte';
|
|
119
|
+
export { default as RadioGroup } from './forms/RadioGroup.svelte';
|
|
96
120
|
export { default as Checkbox } from './forms/Checkbox.svelte';
|
|
97
121
|
export { default as Toggle } from './forms/Toggle.svelte';
|
|
98
122
|
export { default as Slider } from './forms/Slider.svelte';
|
|
99
123
|
export { default as NumberInput } from './forms/NumberInput.svelte';
|
|
100
124
|
export { default as DateRange } from './forms/DateRange.svelte';
|
|
125
|
+
export { default as Calendar } from './forms/calendar/Calendar.svelte';
|
|
126
|
+
export { default as DatePicker } from './forms/date-picker/DatePicker.svelte';
|
|
101
127
|
export { default as Tags } from './forms/Tags.svelte';
|
|
102
128
|
export { default as SegmentedControl } from './forms/SegmentedControl.svelte';
|
|
103
129
|
export { default as MarketSelector } from './forms/MarketSelector.svelte';
|
|
@@ -114,7 +140,7 @@ export { activityList } from './layout/activity-list/activity-list.js';
|
|
|
114
140
|
export { slider } from './forms/slider.js';
|
|
115
141
|
export type { SegmentAppearance } from './forms/segmented-control.js';
|
|
116
142
|
export { segmentedTrack, segmentClasses, segmentedLabelClasses } from './forms/segmented-control.js';
|
|
117
|
-
export { CompactFilters } from './filters/index.js';
|
|
143
|
+
export { CompactFilters, FilterPopover, FilterBar, syncFiltersToUrl } from './filters/index.js';
|
|
118
144
|
export * from './file-browser/index.js';
|
|
119
145
|
export * from './adapters/storage/index.js';
|
|
120
146
|
export * from './adapters/ai/index.js';
|