kosui 0.2.0 → 0.5.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 +34 -3
- package/dist/alert/alert.svelte +16 -157
- package/dist/alert/alert.svelte.d.ts +3 -26
- package/dist/alert/index.d.ts +1 -1
- package/dist/alert/index.js +1 -1
- package/dist/autocomplete/autocomplete.svelte +126 -12
- package/dist/autocomplete/autocomplete.svelte.d.ts +30 -6
- package/dist/autocomplete/index.d.ts +1 -5
- package/dist/autocomplete/index.js +1 -5
- package/dist/avatar/avatar.svelte +16 -10
- package/dist/badge/badge.svelte +31 -20
- package/dist/badge/badge.svelte.d.ts +8 -4
- package/dist/badge/index.d.ts +1 -1
- package/dist/base.d.ts +4 -8
- package/dist/base.js +14 -28
- package/dist/box/box.svelte +2 -14
- package/dist/box/box.svelte.d.ts +0 -2
- package/dist/breadcrumbs/breadcrumbs.svelte +38 -19
- package/dist/breadcrumbs/breadcrumbs.svelte.d.ts +6 -4
- package/dist/breadcrumbs/index.d.ts +1 -1
- package/dist/breadcrumbs/index.js +1 -1
- package/dist/button/button.svelte +96 -31
- package/dist/button/button.svelte.d.ts +11 -5
- package/dist/button/index.d.ts +1 -1
- package/dist/button/index.js +1 -1
- package/dist/chip/chip.svelte +62 -14
- package/dist/chip/chip.svelte.d.ts +2 -1
- package/dist/command/action.svelte.js +13 -18
- package/dist/command/command-palette.svelte +163 -0
- package/dist/command/command-palette.svelte.d.ts +11 -0
- package/dist/command/index.d.ts +1 -8
- package/dist/command/index.js +1 -8
- package/dist/common/divider.svelte +10 -5
- package/dist/common/divider.svelte.d.ts +3 -3
- package/dist/common/index.d.ts +0 -2
- package/dist/common/index.js +0 -2
- package/dist/dialog/dialog-provider.svelte +70 -0
- package/dist/dialog/dialog-provider.svelte.d.ts +7 -0
- package/dist/dialog/dialog.svelte +33 -35
- package/dist/dialog/dialog.svelte.d.ts +4 -8
- package/dist/dialog/dialogs.svelte.d.ts +49 -0
- package/dist/dialog/dialogs.svelte.js +73 -0
- package/dist/dialog/index.d.ts +2 -3
- package/dist/dialog/index.js +2 -3
- package/dist/drawer/drawer.svelte +51 -0
- package/dist/drawer/drawer.svelte.d.ts +8 -0
- package/dist/drawer/index.d.ts +1 -0
- package/dist/drawer/index.js +1 -0
- package/dist/fab/fab.svelte +30 -10
- package/dist/fab/fab.svelte.d.ts +3 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/input/field.d.ts +8 -0
- package/dist/input/field.js +7 -0
- package/dist/input/index.d.ts +2 -1
- package/dist/input/index.js +2 -1
- package/dist/input/input.svelte +21 -66
- package/dist/input/input.svelte.d.ts +6 -16
- package/dist/link/link.svelte +33 -42
- package/dist/link/link.svelte.d.ts +4 -3
- package/dist/markdown/index.d.ts +2 -25
- package/dist/markdown/index.js +0 -24
- package/dist/markdown/markdown-tokens.svelte +166 -6
- package/dist/markdown/markdown-tokens.svelte.d.ts +2 -0
- package/dist/markdown/markdown.svelte +62 -173
- package/dist/markdown/markdown.svelte.d.ts +7 -27
- package/dist/markdown/parse.d.ts +5 -0
- package/dist/markdown/parse.js +30 -0
- package/dist/markdown/types.d.ts +28 -0
- package/dist/markdown/types.js +1 -0
- package/dist/menu/index.d.ts +3 -6
- package/dist/menu/index.js +3 -6
- package/dist/menu/menu-actions.svelte +44 -38
- package/dist/menu/menu-context.d.ts +4 -0
- package/dist/menu/menu-context.js +2 -0
- package/dist/menu/menu-group.svelte +40 -0
- package/dist/menu/menu-group.svelte.d.ts +11 -0
- package/dist/menu/menu-item.svelte +31 -54
- package/dist/menu/menu-item.svelte.d.ts +7 -5
- package/dist/menu/menu.svelte +160 -15
- package/dist/menu/menu.svelte.d.ts +15 -4
- package/dist/merge-props.d.ts +1 -1
- package/dist/merge-props.js +10 -5
- package/dist/modal/modal.svelte +67 -84
- package/dist/modal/modal.svelte.d.ts +7 -4
- package/dist/nav/index.d.ts +2 -0
- package/dist/nav/index.js +2 -0
- package/dist/nav/nav-group.svelte +40 -0
- package/dist/nav/nav-group.svelte.d.ts +10 -0
- package/dist/nav/nav-item.svelte +65 -0
- package/dist/nav/nav-item.svelte.d.ts +14 -0
- package/dist/popover/index.d.ts +1 -1
- package/dist/popover/index.js +1 -1
- package/dist/popover/popover.svelte +58 -111
- package/dist/popover/popover.svelte.d.ts +6 -8
- package/dist/progress/circular-progress.svelte +64 -30
- package/dist/progress/circular-progress.svelte.d.ts +7 -8
- package/dist/shortcut/index.d.ts +2 -2
- package/dist/shortcut/index.js +1 -1
- package/dist/shortcut/shortcut-hint.svelte +36 -0
- package/dist/shortcut/shortcut-hint.svelte.d.ts +9 -0
- package/dist/shortcut/shortcut.d.ts +19 -14
- package/dist/shortcut/shortcut.js +105 -52
- package/dist/skeleton/skeleton.svelte +13 -8
- package/dist/skeleton/skeleton.svelte.d.ts +2 -5
- package/dist/slider/index.d.ts +1 -8
- package/dist/slider/index.js +1 -8
- package/dist/slider/slider.svelte +180 -211
- package/dist/slider/slider.svelte.d.ts +11 -32
- package/dist/switch/index.d.ts +1 -2
- package/dist/switch/index.js +1 -2
- package/dist/switch/switch.svelte +36 -60
- package/dist/switch/switch.svelte.d.ts +6 -17
- package/dist/textarea/index.d.ts +1 -1
- package/dist/textarea/index.js +1 -1
- package/dist/textarea/textarea.svelte +23 -63
- package/dist/textarea/textarea.svelte.d.ts +8 -18
- package/dist/theme.css +191 -0
- package/dist/toggle/index.d.ts +0 -1
- package/dist/toggle/index.js +0 -1
- package/dist/toggle/toggle-button.svelte +72 -38
- package/dist/toggle/toggle-button.svelte.d.ts +4 -4
- package/dist/toggle/toggle-context.d.ts +10 -0
- package/dist/toggle/toggle-context.js +2 -0
- package/dist/toggle/toggle-group.svelte +41 -22
- package/dist/toggle/toggle-group.svelte.d.ts +7 -4
- package/dist/tooltip/tooltip.svelte +67 -26
- package/dist/tooltip/tooltip.svelte.d.ts +10 -4
- package/dist/utils.d.ts +9 -3
- package/dist/utils.js +10 -0
- package/package.json +6 -5
- package/dist/autocomplete/autocomplete-content.svelte +0 -47
- package/dist/autocomplete/autocomplete-content.svelte.d.ts +0 -10
- package/dist/autocomplete/autocomplete-context.svelte.d.ts +0 -12
- package/dist/autocomplete/autocomplete-context.svelte.js +0 -34
- package/dist/autocomplete/autocomplete-input.svelte +0 -36
- package/dist/autocomplete/autocomplete-input.svelte.d.ts +0 -5
- package/dist/autocomplete/autocomplete-item.svelte +0 -68
- package/dist/autocomplete/autocomplete-item.svelte.d.ts +0 -11
- package/dist/base.css +0 -71
- package/dist/bindable.svelte.d.ts +0 -7
- package/dist/bindable.svelte.js +0 -25
- package/dist/command/command-content.svelte +0 -15
- package/dist/command/command-content.svelte.d.ts +0 -8
- package/dist/command/command-context.svelte.d.ts +0 -5
- package/dist/command/command-context.svelte.js +0 -13
- package/dist/command/command-input.svelte +0 -44
- package/dist/command/command-input.svelte.d.ts +0 -7
- package/dist/command/command-item.svelte +0 -66
- package/dist/command/command-item.svelte.d.ts +0 -11
- package/dist/command/command-search.svelte +0 -28
- package/dist/command/command-search.svelte.d.ts +0 -5
- package/dist/command/command.svelte +0 -19
- package/dist/command/command.svelte.d.ts +0 -8
- package/dist/command/commander.svelte +0 -107
- package/dist/command/commander.svelte.d.ts +0 -9
- package/dist/common/header.svelte +0 -35
- package/dist/common/header.svelte.d.ts +0 -10
- package/dist/common/item-context.svelte.d.ts +0 -12
- package/dist/common/item-context.svelte.js +0 -77
- package/dist/dialog/dialog-button.svelte +0 -25
- package/dist/dialog/dialog-button.svelte.d.ts +0 -32
- package/dist/dialog/dialoguer-context.svelte.d.ts +0 -53
- package/dist/dialog/dialoguer-context.svelte.js +0 -85
- package/dist/dialog/dialoguer.svelte +0 -65
- package/dist/dialog/dialoguer.svelte.d.ts +0 -7
- package/dist/markdown/markdown-blockquote.svelte +0 -14
- package/dist/markdown/markdown-blockquote.svelte.d.ts +0 -7
- package/dist/markdown/markdown-br.svelte +0 -12
- package/dist/markdown/markdown-br.svelte.d.ts +0 -7
- package/dist/markdown/markdown-code.svelte +0 -14
- package/dist/markdown/markdown-code.svelte.d.ts +0 -7
- package/dist/markdown/markdown-codespan.svelte +0 -15
- package/dist/markdown/markdown-codespan.svelte.d.ts +0 -7
- package/dist/markdown/markdown-context.svelte.d.ts +0 -26
- package/dist/markdown/markdown-context.svelte.js +0 -31
- package/dist/markdown/markdown-def.svelte +0 -15
- package/dist/markdown/markdown-def.svelte.d.ts +0 -7
- package/dist/markdown/markdown-del.svelte +0 -14
- package/dist/markdown/markdown-del.svelte.d.ts +0 -7
- package/dist/markdown/markdown-em.svelte +0 -14
- package/dist/markdown/markdown-em.svelte.d.ts +0 -7
- package/dist/markdown/markdown-escape.svelte +0 -8
- package/dist/markdown/markdown-escape.svelte.d.ts +0 -5
- package/dist/markdown/markdown-heading.svelte +0 -16
- package/dist/markdown/markdown-heading.svelte.d.ts +0 -7
- package/dist/markdown/markdown-hr.svelte +0 -12
- package/dist/markdown/markdown-hr.svelte.d.ts +0 -7
- package/dist/markdown/markdown-html.svelte +0 -9
- package/dist/markdown/markdown-html.svelte.d.ts +0 -5
- package/dist/markdown/markdown-image.svelte +0 -12
- package/dist/markdown/markdown-image.svelte.d.ts +0 -7
- package/dist/markdown/markdown-link.svelte +0 -17
- package/dist/markdown/markdown-link.svelte.d.ts +0 -7
- package/dist/markdown/markdown-list-item.svelte +0 -14
- package/dist/markdown/markdown-list-item.svelte.d.ts +0 -7
- package/dist/markdown/markdown-list.svelte +0 -19
- package/dist/markdown/markdown-list.svelte.d.ts +0 -7
- package/dist/markdown/markdown-paragraph.svelte +0 -16
- package/dist/markdown/markdown-paragraph.svelte.d.ts +0 -7
- package/dist/markdown/markdown-space.svelte +0 -8
- package/dist/markdown/markdown-space.svelte.d.ts +0 -5
- package/dist/markdown/markdown-strong.svelte +0 -15
- package/dist/markdown/markdown-strong.svelte.d.ts +0 -7
- package/dist/markdown/markdown-table-cell.svelte +0 -16
- package/dist/markdown/markdown-table-cell.svelte.d.ts +0 -7
- package/dist/markdown/markdown-table.svelte +0 -36
- package/dist/markdown/markdown-table.svelte.d.ts +0 -7
- package/dist/markdown/markdown-text.svelte +0 -8
- package/dist/markdown/markdown-text.svelte.d.ts +0 -5
- package/dist/markdown/markdown-token.svelte +0 -25
- package/dist/markdown/markdown-token.svelte.d.ts +0 -7
- package/dist/menu/menu-content.svelte +0 -47
- package/dist/menu/menu-content.svelte.d.ts +0 -10
- package/dist/menu/menu-context.svelte.d.ts +0 -18
- package/dist/menu/menu-context.svelte.js +0 -118
- package/dist/menu/menu-trigger-button.svelte +0 -31
- package/dist/menu/menu-trigger-button.svelte.d.ts +0 -5
- package/dist/menu/menu-trigger.svelte +0 -42
- package/dist/menu/menu-trigger.svelte.d.ts +0 -10
- package/dist/ordered-html-elements.d.ts +0 -7
- package/dist/ordered-html-elements.js +0 -29
- package/dist/portal/index.d.ts +0 -2
- package/dist/portal/index.js +0 -2
- package/dist/portal/portal.svelte +0 -15
- package/dist/portal/portal.svelte.d.ts +0 -8
- package/dist/portal/proxy.svelte +0 -13
- package/dist/portal/proxy.svelte.d.ts +0 -7
- package/dist/shortcut/shortcut-badge.svelte +0 -41
- package/dist/shortcut/shortcut-badge.svelte.d.ts +0 -11
- package/dist/slider/slider-context.svelte.d.ts +0 -50
- package/dist/slider/slider-context.svelte.js +0 -216
- package/dist/slider/slider-handle-label-arrow.svelte +0 -18
- package/dist/slider/slider-handle-label-arrow.svelte.d.ts +0 -6
- package/dist/slider/slider-handle-label.svelte +0 -35
- package/dist/slider/slider-handle-label.svelte.d.ts +0 -6
- package/dist/slider/slider-handle.svelte +0 -54
- package/dist/slider/slider-handle.svelte.d.ts +0 -6
- package/dist/slider/slider-mark-dot.svelte +0 -25
- package/dist/slider/slider-mark-dot.svelte.d.ts +0 -6
- package/dist/slider/slider-mark-label.svelte +0 -37
- package/dist/slider/slider-mark-label.svelte.d.ts +0 -9
- package/dist/slider/slider-mark.svelte +0 -33
- package/dist/slider/slider-mark.svelte.d.ts +0 -9
- package/dist/switch/switch-thumb.svelte +0 -52
- package/dist/switch/switch-thumb.svelte.d.ts +0 -7
- package/dist/toggle/toggle-context.svelte.d.ts +0 -9
- package/dist/toggle/toggle-context.svelte.js +0 -32
|
@@ -1,50 +1,16 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
2
|
import {
|
|
3
|
-
COLORS,
|
|
4
|
-
RADII,
|
|
5
|
-
SIZES,
|
|
6
3
|
type Color,
|
|
7
4
|
type ColorProp,
|
|
8
|
-
type
|
|
9
|
-
type
|
|
5
|
+
type Shape,
|
|
6
|
+
type ShapeProp,
|
|
10
7
|
type Size,
|
|
11
8
|
type SizeProp,
|
|
12
9
|
} from "../base.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
SliderHandle,
|
|
18
|
-
SliderHandleLabel,
|
|
19
|
-
SliderHandleLabelArrow,
|
|
20
|
-
SliderMark,
|
|
21
|
-
SliderMarkDot,
|
|
22
|
-
SliderMarkLabel,
|
|
23
|
-
type SliderHandleLabelArrowProps,
|
|
24
|
-
type SliderHandleLabelProps,
|
|
25
|
-
type SliderHandleProps,
|
|
26
|
-
type SliderMarkDotProps,
|
|
27
|
-
type SliderMarkLabelProps,
|
|
28
|
-
type SliderMarkProps,
|
|
29
|
-
} from "./index.js";
|
|
30
|
-
import type { ClassName } from "../utils.js";
|
|
31
|
-
import type { Snippet } from "svelte";
|
|
32
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
33
|
-
import { twMerge } from "tailwind-merge";
|
|
34
|
-
|
|
35
|
-
export const SLIDER_COLORS = COLORS;
|
|
36
|
-
export type SliderColor = Color;
|
|
37
|
-
export type SliderColorProp = ColorProp;
|
|
38
|
-
|
|
39
|
-
export const SLIDER_SIZES = SIZES;
|
|
40
|
-
export type SliderSize = Size;
|
|
41
|
-
export type SliderSizeProp = SizeProp;
|
|
42
|
-
|
|
43
|
-
export const SLIDER_RADII = RADII;
|
|
44
|
-
export type SliderRadius = Radius;
|
|
45
|
-
export type SliderRadiusProp = RadiusProp;
|
|
46
|
-
|
|
47
|
-
export type Mark = {
|
|
10
|
+
import { cn, type ClassName } from "../utils.js";
|
|
11
|
+
import type { HTMLInputAttributes } from "svelte/elements";
|
|
12
|
+
|
|
13
|
+
export type SliderMark = {
|
|
48
14
|
value: number;
|
|
49
15
|
label?: string;
|
|
50
16
|
};
|
|
@@ -53,197 +19,200 @@
|
|
|
53
19
|
value?: number;
|
|
54
20
|
min?: number;
|
|
55
21
|
max?: number;
|
|
56
|
-
step?: number;
|
|
57
|
-
marks?:
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
inverted?: boolean;
|
|
62
|
-
restrictToMarks?: boolean;
|
|
63
|
-
onChange?: (value: number) => void;
|
|
64
|
-
onChangeEnd?: (value: number) => void;
|
|
65
|
-
sliderHandle?: Snippet<[SliderHandleProps]>;
|
|
66
|
-
sliderHandleLabel?: Snippet<[SliderHandleLabelProps]>;
|
|
67
|
-
sliderHandleLabelArrow?: Snippet<[SliderHandleLabelArrowProps]>;
|
|
68
|
-
sliderMark?: Snippet<[SliderMarkProps]>;
|
|
69
|
-
sliderMarkDot?: Snippet<[SliderMarkDotProps]>;
|
|
70
|
-
sliderMarkLabel?: Snippet<[SliderMarkLabelProps]>;
|
|
22
|
+
step?: number | "any";
|
|
23
|
+
marks?: SliderMark[];
|
|
24
|
+
format?: (value: number) => string;
|
|
25
|
+
showValue?: boolean;
|
|
26
|
+
el?: HTMLInputElement;
|
|
71
27
|
} & ClassName &
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
28
|
+
ColorProp &
|
|
29
|
+
SizeProp &
|
|
30
|
+
ShapeProp &
|
|
31
|
+
Omit<
|
|
32
|
+
HTMLInputAttributes,
|
|
33
|
+
"type" | "value" | "min" | "max" | "step" | "size" | "class"
|
|
34
|
+
>;
|
|
35
|
+
|
|
36
|
+
const SIZES: Record<Size, string> = {
|
|
37
|
+
xs: "[--height:1.25rem] [--thumb:0.75rem] [--track:0.25rem]",
|
|
38
|
+
sm: "[--height:1.5rem] [--thumb:1rem] [--track:0.375rem]",
|
|
39
|
+
md: "[--height:1.75rem] [--thumb:1.25rem] [--track:0.5rem]",
|
|
40
|
+
lg: "[--height:2rem] [--thumb:1.5rem] [--track:0.625rem]",
|
|
41
|
+
xl: "[--height:2.25rem] [--thumb:1.75rem] [--track:0.75rem]",
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const SHAPES: Record<Shape, string> = {
|
|
45
|
+
none: "[--radius:0]",
|
|
46
|
+
xs: "[--radius:0.25rem]",
|
|
47
|
+
sm: "[--radius:0.5rem]",
|
|
48
|
+
md: "[--radius:0.75rem]",
|
|
49
|
+
lg: "[--radius:1rem]",
|
|
50
|
+
xl: "[--radius:1.75rem]",
|
|
51
|
+
full: "[--radius:9999px]",
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const COLORS: Record<Color, string> = {
|
|
55
|
+
primary: "text-m3-primary",
|
|
56
|
+
secondary: "text-m3-secondary",
|
|
57
|
+
tertiary: "text-m3-tertiary",
|
|
58
|
+
error: "text-m3-error",
|
|
59
|
+
plain: "",
|
|
60
|
+
inherit: "",
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const clamp = (value: number, min: number, max: number) =>
|
|
64
|
+
Math.min(Math.max(value, min), max);
|
|
76
65
|
</script>
|
|
77
66
|
|
|
78
67
|
<script lang="ts">
|
|
79
68
|
let {
|
|
80
|
-
value = $bindable(
|
|
69
|
+
value = $bindable(),
|
|
81
70
|
min = 0,
|
|
82
71
|
max = 100,
|
|
83
72
|
step = 1,
|
|
84
73
|
marks = [],
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
inverted = false,
|
|
89
|
-
restrictToMarks = false,
|
|
90
|
-
onChange,
|
|
91
|
-
onChangeEnd,
|
|
92
|
-
sliderHandle = defaultSliderHandle,
|
|
93
|
-
sliderHandleLabel = defaultSliderHandleLabel,
|
|
94
|
-
sliderHandleLabelArrow = defaultSliderHandleLabelArrow,
|
|
95
|
-
sliderMark = defaultSliderMark,
|
|
96
|
-
sliderMarkDot = defaultSliderMarkDot,
|
|
97
|
-
sliderMarkLabel = defaultSliderMarkLabel,
|
|
74
|
+
format = String,
|
|
75
|
+
showValue = false,
|
|
76
|
+
el = $bindable(),
|
|
98
77
|
class: className,
|
|
99
78
|
color = "primary",
|
|
100
|
-
size = "
|
|
101
|
-
|
|
79
|
+
size = "sm",
|
|
80
|
+
shape = "full",
|
|
81
|
+
disabled,
|
|
102
82
|
...restProps
|
|
103
83
|
}: SliderProps = $props();
|
|
104
84
|
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
() => value,
|
|
108
|
-
(newValue) => (value = newValue),
|
|
109
|
-
() => min,
|
|
110
|
-
() => max,
|
|
111
|
-
() => step,
|
|
112
|
-
() => marks,
|
|
113
|
-
() => disabled,
|
|
114
|
-
(val) => label(val),
|
|
115
|
-
() => labelAlwaysOn,
|
|
116
|
-
() => inverted,
|
|
117
|
-
() => restrictToMarks,
|
|
118
|
-
() => color,
|
|
119
|
-
() => size,
|
|
120
|
-
() => radius,
|
|
121
|
-
(val) => onChange?.(val),
|
|
122
|
-
(val) => onChangeEnd?.(val),
|
|
123
|
-
() => sliderHandle,
|
|
124
|
-
() => sliderHandleLabel,
|
|
125
|
-
() => sliderHandleLabelArrow,
|
|
126
|
-
() => sliderMark,
|
|
127
|
-
() => sliderMarkDot,
|
|
128
|
-
() => sliderMarkLabel,
|
|
129
|
-
),
|
|
130
|
-
);
|
|
131
|
-
|
|
132
|
-
const SIZE_RATIO: Record<Size, number> = {
|
|
133
|
-
xs: 1.5,
|
|
134
|
-
sm: 2,
|
|
135
|
-
md: 2.5,
|
|
136
|
-
lg: 3,
|
|
137
|
-
xl: 3.5,
|
|
138
|
-
};
|
|
85
|
+
const fractionOf = (at: number) =>
|
|
86
|
+
max > min ? (clamp(at, min, max) - min) / (max - min) : 0;
|
|
139
87
|
|
|
140
|
-
let
|
|
88
|
+
let current = $derived(value ?? (min + max) / 2);
|
|
89
|
+
let text = $derived(format(current));
|
|
141
90
|
</script>
|
|
142
91
|
|
|
143
|
-
{#snippet defaultSliderHandle(props: SliderHandleProps)}
|
|
144
|
-
<SliderHandle {...props} />
|
|
145
|
-
{/snippet}
|
|
146
|
-
|
|
147
|
-
{#snippet defaultSliderHandleLabel(props: SliderHandleLabelProps)}
|
|
148
|
-
<SliderHandleLabel {...props} />
|
|
149
|
-
{/snippet}
|
|
150
|
-
|
|
151
|
-
{#snippet defaultSliderHandleLabelArrow(props: SliderHandleLabelArrowProps)}
|
|
152
|
-
<SliderHandleLabelArrow {...props} />
|
|
153
|
-
{/snippet}
|
|
154
|
-
|
|
155
|
-
{#snippet defaultSliderMark(props: SliderMarkProps)}
|
|
156
|
-
<SliderMark {...props} />
|
|
157
|
-
{/snippet}
|
|
158
|
-
|
|
159
|
-
{#snippet defaultSliderMarkDot(props: SliderMarkDotProps)}
|
|
160
|
-
<SliderMarkDot {...props} />
|
|
161
|
-
{/snippet}
|
|
162
|
-
|
|
163
|
-
{#snippet defaultSliderMarkLabel(props: SliderMarkLabelProps)}
|
|
164
|
-
<SliderMarkLabel {...props} />
|
|
165
|
-
{/snippet}
|
|
166
|
-
|
|
167
|
-
<!-- Track -->
|
|
168
92
|
<div
|
|
169
|
-
class={
|
|
170
|
-
"
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
ctx.radius === "sm" && "rounded-sm",
|
|
177
|
-
ctx.radius === "md" && "rounded-lg",
|
|
178
|
-
ctx.radius === "lg" && "rounded-2xl",
|
|
179
|
-
ctx.radius === "xl" && "rounded-4xl",
|
|
180
|
-
ctx.radius === "full" && "rounded-full",
|
|
181
|
-
|
|
182
|
-
ctx.size === "xs" && "my-1 h-0.5 px-1.5",
|
|
183
|
-
ctx.size === "sm" && "my-1 h-1 px-2",
|
|
184
|
-
ctx.size === "md" && "my-1 h-2 px-2.5",
|
|
185
|
-
ctx.size === "lg" && "my-1 h-3 px-3",
|
|
186
|
-
ctx.size === "xl" && "my-1 h-4 px-3.5",
|
|
187
|
-
|
|
188
|
-
marks.length > 0 && "mb-6",
|
|
189
|
-
|
|
93
|
+
class={cn(
|
|
94
|
+
"slider relative w-full",
|
|
95
|
+
SIZES[size],
|
|
96
|
+
SHAPES[shape],
|
|
97
|
+
COLORS[color],
|
|
98
|
+
marks.some((mark) => mark.label) && "pb-5",
|
|
99
|
+
disabled && "opacity-38",
|
|
190
100
|
className,
|
|
191
101
|
)}
|
|
192
|
-
{
|
|
193
|
-
role: "slider",
|
|
194
|
-
tabindex: ctx.disabled ? -1 : 0,
|
|
195
|
-
"aria-valuenow": ctx.value,
|
|
196
|
-
"aria-valuemin": ctx.min,
|
|
197
|
-
"aria-valuemax": ctx.max,
|
|
198
|
-
"aria-disabled": ctx.disabled,
|
|
199
|
-
onpointerdown: ctx.pointerDown,
|
|
200
|
-
onpointermove: ctx.pointerMove,
|
|
201
|
-
onpointerup: ctx.pointerUp,
|
|
202
|
-
onkeydown: ctx.keyDown,
|
|
203
|
-
onfocus: ctx.focus,
|
|
204
|
-
onblur: ctx.blur,
|
|
205
|
-
})}
|
|
102
|
+
style:--fraction={fractionOf(current)}
|
|
206
103
|
>
|
|
207
|
-
<
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
<div
|
|
240
|
-
class={twMerge(
|
|
241
|
-
"absolute top-1/2 -translate-x-1/2 -translate-y-1/2",
|
|
242
|
-
ctx.animated && "transition-all",
|
|
243
|
-
)}
|
|
244
|
-
style={`left: ${ctx.position}%`}
|
|
245
|
-
>
|
|
246
|
-
{@render ctx.handleRenderer({})}
|
|
104
|
+
<input
|
|
105
|
+
bind:this={el}
|
|
106
|
+
bind:value
|
|
107
|
+
type="range"
|
|
108
|
+
{min}
|
|
109
|
+
{max}
|
|
110
|
+
{step}
|
|
111
|
+
{disabled}
|
|
112
|
+
aria-valuetext={text}
|
|
113
|
+
class="peer block h-(--height) w-full cursor-pointer appearance-none bg-transparent disabled:cursor-not-allowed"
|
|
114
|
+
{...restProps}
|
|
115
|
+
/>
|
|
116
|
+
|
|
117
|
+
{#if marks.length > 0}
|
|
118
|
+
<div aria-hidden="true" class="pointer-events-none">
|
|
119
|
+
{#each marks as mark (mark.value)}
|
|
120
|
+
{#if mark.value !== current}
|
|
121
|
+
<span
|
|
122
|
+
class="at dot absolute top-[calc(var(--height)/2)] size-1 -translate-1/2 rounded-full"
|
|
123
|
+
class:filled={mark.value <= current}
|
|
124
|
+
style:--at={fractionOf(mark.value)}
|
|
125
|
+
></span>
|
|
126
|
+
{/if}
|
|
127
|
+
{#if mark.label}
|
|
128
|
+
<span
|
|
129
|
+
class="at absolute top-(--height) -translate-x-1/2 pt-1 text-xs whitespace-nowrap text-m3-on-surface-variant"
|
|
130
|
+
style:--at={fractionOf(mark.value)}
|
|
131
|
+
>
|
|
132
|
+
{mark.label}
|
|
133
|
+
</span>
|
|
134
|
+
{/if}
|
|
135
|
+
{/each}
|
|
247
136
|
</div>
|
|
248
|
-
|
|
137
|
+
{/if}
|
|
138
|
+
|
|
139
|
+
<span
|
|
140
|
+
aria-hidden="true"
|
|
141
|
+
class={cn(
|
|
142
|
+
"at pointer-events-none absolute bottom-full mb-1 -translate-x-1/2 rounded-md bg-m3-inverse-surface px-2 py-1 text-xs whitespace-nowrap text-m3-inverse-on-surface opacity-0 transition-opacity peer-hover:opacity-100 peer-focus-visible:opacity-100 peer-active:opacity-100",
|
|
143
|
+
showValue && "opacity-100",
|
|
144
|
+
disabled && "hidden",
|
|
145
|
+
)}
|
|
146
|
+
style:--at={fractionOf(current)}
|
|
147
|
+
>
|
|
148
|
+
{text}
|
|
149
|
+
</span>
|
|
249
150
|
</div>
|
|
151
|
+
|
|
152
|
+
<style>@layer components {
|
|
153
|
+
.slider {
|
|
154
|
+
--fill-at: calc(var(--thumb) / 2 + (100% - var(--thumb)) * var(--fraction));
|
|
155
|
+
--track-fill: linear-gradient(
|
|
156
|
+
to right,
|
|
157
|
+
currentColor var(--fill-at),
|
|
158
|
+
color-mix(in oklab, currentColor 24%, transparent) var(--fill-at)
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.at {
|
|
163
|
+
left: calc(var(--thumb) / 2 + (100% - var(--thumb)) * var(--at));
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.dot {
|
|
167
|
+
background: currentColor;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.dot.filled {
|
|
171
|
+
background: var(--md-sys-color-surface);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
input::-webkit-slider-runnable-track {
|
|
175
|
+
height: var(--track);
|
|
176
|
+
border-radius: var(--radius);
|
|
177
|
+
background: var(--track-fill);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
input::-moz-range-track {
|
|
181
|
+
height: var(--track);
|
|
182
|
+
border-radius: var(--radius);
|
|
183
|
+
background: var(--track-fill);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
input::-webkit-slider-thumb {
|
|
187
|
+
appearance: none;
|
|
188
|
+
width: var(--thumb);
|
|
189
|
+
height: var(--thumb);
|
|
190
|
+
margin-top: calc((var(--track) - var(--thumb)) / 2);
|
|
191
|
+
border-radius: var(--radius);
|
|
192
|
+
background: currentColor;
|
|
193
|
+
box-shadow: 0 0 0 2px var(--md-sys-color-surface);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
input::-moz-range-thumb {
|
|
197
|
+
width: var(--thumb);
|
|
198
|
+
height: var(--thumb);
|
|
199
|
+
border: none;
|
|
200
|
+
border-radius: var(--radius);
|
|
201
|
+
background: currentColor;
|
|
202
|
+
box-shadow: 0 0 0 2px var(--md-sys-color-surface);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
input:focus-visible {
|
|
206
|
+
outline: none;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
input:focus-visible::-webkit-slider-thumb {
|
|
210
|
+
outline: 2px solid currentColor;
|
|
211
|
+
outline-offset: 3px;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
input:focus-visible::-moz-range-thumb {
|
|
215
|
+
outline: 2px solid currentColor;
|
|
216
|
+
outline-offset: 3px;
|
|
217
|
+
}
|
|
218
|
+
}</style>
|
|
@@ -1,18 +1,7 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { type
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
6
|
-
export declare const SLIDER_COLORS: readonly ["primary", "secondary", "tertiary", "error", "plain", "inherit"];
|
|
7
|
-
export type SliderColor = Color;
|
|
8
|
-
export type SliderColorProp = ColorProp;
|
|
9
|
-
export declare const SLIDER_SIZES: readonly ["xs", "sm", "md", "lg", "xl"];
|
|
10
|
-
export type SliderSize = Size;
|
|
11
|
-
export type SliderSizeProp = SizeProp;
|
|
12
|
-
export declare const SLIDER_RADII: readonly ["none", "xs", "sm", "md", "lg", "xl", "2xl", "3xl", "4xl", "full"];
|
|
13
|
-
export type SliderRadius = Radius;
|
|
14
|
-
export type SliderRadiusProp = RadiusProp;
|
|
15
|
-
export type Mark = {
|
|
1
|
+
import { type ColorProp, type ShapeProp, type SizeProp } from "../base.js";
|
|
2
|
+
import { type ClassName } from "../utils.js";
|
|
3
|
+
import type { HTMLInputAttributes } from "svelte/elements";
|
|
4
|
+
export type SliderMark = {
|
|
16
5
|
value: number;
|
|
17
6
|
label?: string;
|
|
18
7
|
};
|
|
@@ -20,22 +9,12 @@ export type SliderProps = {
|
|
|
20
9
|
value?: number;
|
|
21
10
|
min?: number;
|
|
22
11
|
max?: number;
|
|
23
|
-
step?: number;
|
|
24
|
-
marks?:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
onChange?: (value: number) => void;
|
|
31
|
-
onChangeEnd?: (value: number) => void;
|
|
32
|
-
sliderHandle?: Snippet<[SliderHandleProps]>;
|
|
33
|
-
sliderHandleLabel?: Snippet<[SliderHandleLabelProps]>;
|
|
34
|
-
sliderHandleLabelArrow?: Snippet<[SliderHandleLabelArrowProps]>;
|
|
35
|
-
sliderMark?: Snippet<[SliderMarkProps]>;
|
|
36
|
-
sliderMarkDot?: Snippet<[SliderMarkDotProps]>;
|
|
37
|
-
sliderMarkLabel?: Snippet<[SliderMarkLabelProps]>;
|
|
38
|
-
} & ClassName & SliderColorProp & SliderSizeProp & SliderRadiusProp & HTMLAttributes<HTMLDivElement>;
|
|
39
|
-
declare const Slider: import("svelte").Component<SliderProps, {}, "value">;
|
|
12
|
+
step?: number | "any";
|
|
13
|
+
marks?: SliderMark[];
|
|
14
|
+
format?: (value: number) => string;
|
|
15
|
+
showValue?: boolean;
|
|
16
|
+
el?: HTMLInputElement;
|
|
17
|
+
} & ClassName & ColorProp & SizeProp & ShapeProp & Omit<HTMLInputAttributes, "type" | "value" | "min" | "max" | "step" | "size" | "class">;
|
|
18
|
+
declare const Slider: import("svelte").Component<SliderProps, {}, "el" | "value">;
|
|
40
19
|
type Slider = ReturnType<typeof Slider>;
|
|
41
20
|
export default Slider;
|
package/dist/switch/index.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export { default as
|
|
2
|
-
export { default as Switch, SWITCH_COLORS, SWITCH_RADII, SWITCH_SIZES, type SwitchColor, type SwitchColorProp, type SwitchProps, type SwitchRadius, type SwitchRadiusProp, type SwitchSize, type SwitchSizeProp, } from "./switch.svelte";
|
|
1
|
+
export { default as Switch, type SwitchProps } from "./switch.svelte";
|
package/dist/switch/index.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export { default as
|
|
2
|
-
export { default as Switch, SWITCH_COLORS, SWITCH_RADII, SWITCH_SIZES, } from "./switch.svelte";
|
|
1
|
+
export { default as Switch } from "./switch.svelte";
|
|
@@ -1,91 +1,67 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
RADII,
|
|
5
|
-
SIZES,
|
|
6
|
-
type Color,
|
|
3
|
+
baseClasses,
|
|
7
4
|
type ColorProp,
|
|
8
|
-
type
|
|
9
|
-
type RadiusProp,
|
|
5
|
+
type ShapeProp,
|
|
10
6
|
type Size,
|
|
11
7
|
type SizeProp,
|
|
12
8
|
} from "../base.js";
|
|
13
|
-
import {
|
|
14
|
-
import type {
|
|
15
|
-
import type { Snippet } from "svelte";
|
|
16
|
-
import type { HTMLButtonAttributes } from "svelte/elements";
|
|
17
|
-
import { twMerge } from "tailwind-merge";
|
|
18
|
-
import SwitchThumb, { type SwitchThumbProps } from "./switch-thumb.svelte";
|
|
19
|
-
|
|
20
|
-
export const SWITCH_COLORS = COLORS;
|
|
21
|
-
export type SwitchColor = Color;
|
|
22
|
-
export type SwitchColorProp = ColorProp;
|
|
23
|
-
|
|
24
|
-
export const SWITCH_SIZES = SIZES;
|
|
25
|
-
export type SwitchSize = Size;
|
|
26
|
-
export type SwitchSizeProp = SizeProp;
|
|
27
|
-
|
|
28
|
-
export const SWITCH_RADII = RADII;
|
|
29
|
-
export type SwitchRadius = Radius;
|
|
30
|
-
export type SwitchRadiusProp = RadiusProp;
|
|
9
|
+
import { cn, type ClassName } from "../utils.js";
|
|
10
|
+
import type { HTMLInputAttributes } from "svelte/elements";
|
|
31
11
|
|
|
32
12
|
export type SwitchProps = {
|
|
33
13
|
checked?: boolean;
|
|
34
|
-
|
|
14
|
+
el?: HTMLInputElement;
|
|
35
15
|
} & ClassName &
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
16
|
+
ColorProp &
|
|
17
|
+
SizeProp &
|
|
18
|
+
ShapeProp &
|
|
19
|
+
Omit<HTMLInputAttributes, "type" | "role" | "size" | "class" | "checked">;
|
|
20
|
+
|
|
21
|
+
const SIZES: Record<Size, string> = {
|
|
22
|
+
xs: "h-4 w-7 before:size-2 checked:before:translate-x-3",
|
|
23
|
+
sm: "h-6 w-10 before:size-4 checked:before:translate-x-4",
|
|
24
|
+
md: "h-7 w-12 before:size-5 checked:before:translate-x-5",
|
|
25
|
+
lg: "h-8 w-13 before:size-6 checked:before:translate-x-5",
|
|
26
|
+
xl: "h-9 w-15 before:size-7 checked:before:translate-x-6",
|
|
27
|
+
};
|
|
40
28
|
</script>
|
|
41
29
|
|
|
42
30
|
<script lang="ts">
|
|
43
31
|
let {
|
|
44
|
-
checked = $bindable(
|
|
45
|
-
|
|
32
|
+
checked = $bindable(),
|
|
33
|
+
el = $bindable(),
|
|
46
34
|
class: className,
|
|
47
35
|
color = "primary",
|
|
48
36
|
size = "sm",
|
|
49
|
-
|
|
37
|
+
shape = "full",
|
|
50
38
|
...restProps
|
|
51
39
|
}: SwitchProps = $props();
|
|
52
40
|
</script>
|
|
53
41
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
<button
|
|
59
|
-
type="button"
|
|
42
|
+
<input
|
|
43
|
+
bind:this={el}
|
|
44
|
+
bind:checked
|
|
45
|
+
type="checkbox"
|
|
60
46
|
role="switch"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
"group relative inline-flex cursor-pointer bg-m3-surface-container-highest transition-all focus-visible:outline-2 focus-visible:outline-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
47
|
+
class={cn(
|
|
48
|
+
"relative inline-block shrink-0 cursor-pointer appearance-none bg-m3-surface-container-highest align-middle ring-2 ring-m3-outline ring-inset before:absolute before:top-1 before:left-1 before:rounded-[inherit] before:bg-m3-outline focus-visible:outline-2 focus-visible:outline-offset-2 disabled:cursor-not-allowed disabled:opacity-38 motion-safe:transition-colors motion-safe:before:transition-all",
|
|
64
49
|
|
|
65
50
|
color === "primary" &&
|
|
66
|
-
"
|
|
51
|
+
"checked:bg-m3-primary checked:ring-m3-primary checked:before:bg-m3-on-primary focus-visible:outline-m3-primary",
|
|
67
52
|
color === "secondary" &&
|
|
68
|
-
"
|
|
53
|
+
"checked:bg-m3-secondary checked:ring-m3-secondary checked:before:bg-m3-on-secondary focus-visible:outline-m3-secondary",
|
|
69
54
|
color === "tertiary" &&
|
|
70
|
-
"
|
|
55
|
+
"checked:bg-m3-tertiary checked:ring-m3-tertiary checked:before:bg-m3-on-tertiary focus-visible:outline-m3-tertiary",
|
|
71
56
|
color === "error" &&
|
|
72
|
-
"
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
size === "sm" && "h-5 w-10",
|
|
76
|
-
size === "md" && "h-6 w-12",
|
|
77
|
-
size === "lg" && "h-7 w-14",
|
|
78
|
-
size === "xl" && "h-8 w-16",
|
|
57
|
+
"checked:bg-m3-error checked:ring-m3-error checked:before:bg-m3-on-error focus-visible:outline-m3-error",
|
|
58
|
+
(color === "plain" || color === "inherit") &&
|
|
59
|
+
"checked:bg-current checked:ring-current checked:before:bg-m3-surface focus-visible:outline-current",
|
|
79
60
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
radius === "md" && "rounded-lg",
|
|
83
|
-
radius === "lg" && "rounded-2xl",
|
|
84
|
-
radius === "xl" && "rounded-4xl",
|
|
61
|
+
SIZES[size],
|
|
62
|
+
baseClasses({ shape }),
|
|
85
63
|
|
|
86
64
|
className,
|
|
87
65
|
)}
|
|
88
|
-
{...
|
|
89
|
-
|
|
90
|
-
{@render thumb({ color, size, radius })}
|
|
91
|
-
</button>
|
|
66
|
+
{...restProps}
|
|
67
|
+
/>
|
|
@@ -1,21 +1,10 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import type
|
|
3
|
-
import type {
|
|
4
|
-
import type { HTMLButtonAttributes } from "svelte/elements";
|
|
5
|
-
import { type SwitchThumbProps } from "./switch-thumb.svelte";
|
|
6
|
-
export declare const SWITCH_COLORS: readonly ["primary", "secondary", "tertiary", "error", "plain", "inherit"];
|
|
7
|
-
export type SwitchColor = Color;
|
|
8
|
-
export type SwitchColorProp = ColorProp;
|
|
9
|
-
export declare const SWITCH_SIZES: readonly ["xs", "sm", "md", "lg", "xl"];
|
|
10
|
-
export type SwitchSize = Size;
|
|
11
|
-
export type SwitchSizeProp = SizeProp;
|
|
12
|
-
export declare const SWITCH_RADII: readonly ["none", "xs", "sm", "md", "lg", "xl", "2xl", "3xl", "4xl", "full"];
|
|
13
|
-
export type SwitchRadius = Radius;
|
|
14
|
-
export type SwitchRadiusProp = RadiusProp;
|
|
1
|
+
import { type ColorProp, type ShapeProp, type SizeProp } from "../base.js";
|
|
2
|
+
import { type ClassName } from "../utils.js";
|
|
3
|
+
import type { HTMLInputAttributes } from "svelte/elements";
|
|
15
4
|
export type SwitchProps = {
|
|
16
5
|
checked?: boolean;
|
|
17
|
-
|
|
18
|
-
} & ClassName &
|
|
19
|
-
declare const Switch: import("svelte").Component<SwitchProps, {}, "checked">;
|
|
6
|
+
el?: HTMLInputElement;
|
|
7
|
+
} & ClassName & ColorProp & SizeProp & ShapeProp & Omit<HTMLInputAttributes, "type" | "role" | "size" | "class" | "checked">;
|
|
8
|
+
declare const Switch: import("svelte").Component<SwitchProps, {}, "el" | "checked">;
|
|
20
9
|
type Switch = ReturnType<typeof Switch>;
|
|
21
10
|
export default Switch;
|
package/dist/textarea/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as Textarea,
|
|
1
|
+
export { default as Textarea, type TextareaProps } from "./textarea.svelte";
|
package/dist/textarea/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as Textarea
|
|
1
|
+
export { default as Textarea } from "./textarea.svelte";
|