kosui 0.0.26 → 0.0.28
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/dist/alert/alert.svelte +1 -1
- package/dist/alert/alert.svelte.d.ts +1 -1
- package/dist/autocomplete/autocomplete-content.svelte +4 -4
- package/dist/autocomplete/autocomplete-content.svelte.d.ts +3 -3
- package/dist/autocomplete/autocomplete-context.svelte.d.ts +1 -1
- package/dist/autocomplete/autocomplete-context.svelte.js +2 -2
- package/dist/autocomplete/autocomplete-input.svelte +3 -4
- package/dist/autocomplete/autocomplete-input.svelte.d.ts +1 -1
- package/dist/autocomplete/autocomplete-item.svelte +5 -5
- package/dist/autocomplete/autocomplete-item.svelte.d.ts +3 -3
- package/dist/autocomplete/autocomplete.svelte +3 -3
- package/dist/autocomplete/autocomplete.svelte.d.ts +1 -1
- package/dist/autocomplete/index.d.ts +1 -0
- package/dist/autocomplete/index.js +1 -0
- package/dist/avatar/avatar.svelte +1 -1
- package/dist/avatar/avatar.svelte.d.ts +1 -1
- package/dist/badge/badge.svelte +1 -1
- package/dist/badge/badge.svelte.d.ts +1 -1
- package/dist/box/box.svelte +2 -2
- package/dist/box/box.svelte.d.ts +2 -2
- package/dist/breadcrumbs/breadcrumbs.svelte +1 -1
- package/dist/breadcrumbs/breadcrumbs.svelte.d.ts +1 -1
- package/dist/button/button.svelte +4 -4
- package/dist/button/button.svelte.d.ts +2 -2
- package/dist/chip/chip.svelte +1 -2
- package/dist/chip/chip.svelte.d.ts +1 -1
- package/dist/command/action.svelte.d.ts +1 -1
- package/dist/command/command-content.svelte +1 -1
- package/dist/command/command-content.svelte.d.ts +1 -1
- package/dist/command/command-context.svelte.d.ts +1 -1
- package/dist/command/command-context.svelte.js +1 -1
- package/dist/command/command-input.svelte +4 -4
- package/dist/command/command-input.svelte.d.ts +2 -2
- package/dist/command/command-item.svelte +5 -5
- package/dist/command/command-item.svelte.d.ts +3 -3
- package/dist/command/command-search.svelte +1 -2
- package/dist/command/command-search.svelte.d.ts +1 -1
- package/dist/command/command.svelte +2 -2
- package/dist/command/command.svelte.d.ts +1 -1
- package/dist/command/commander.svelte +6 -6
- package/dist/command/commander.svelte.d.ts +1 -1
- package/dist/command/index.d.ts +7 -6
- package/dist/command/index.js +5 -4
- package/dist/common/divider.svelte +1 -1
- package/dist/common/divider.svelte.d.ts +1 -1
- package/dist/common/header.svelte +2 -2
- package/dist/common/header.svelte.d.ts +2 -2
- package/dist/common/item-context.svelte.js +3 -3
- package/dist/dialog/dialog-button.svelte +1 -1
- package/dist/dialog/dialog-button.svelte.d.ts +1 -1
- package/dist/dialog/dialog.svelte +2 -2
- package/dist/dialog/dialog.svelte.d.ts +1 -1
- package/dist/dialog/dialoguer-context.svelte.d.ts +5 -5
- package/dist/dialog/dialoguer.svelte +7 -7
- package/dist/dialog/index.d.ts +1 -1
- package/dist/dialog/index.js +1 -1
- package/dist/event-manager.d.ts +1 -1
- package/dist/event-manager.js +2 -2
- package/dist/fab/fab.svelte +2 -2
- package/dist/fab/fab.svelte.d.ts +2 -2
- package/dist/fab/index.d.ts +1 -1
- package/dist/index.d.ts +31 -30
- package/dist/index.js +31 -30
- package/dist/input/input.svelte +4 -4
- package/dist/input/input.svelte.d.ts +2 -2
- package/dist/link/link.svelte +2 -2
- package/dist/link/link.svelte.d.ts +2 -2
- package/dist/markdown/markdown-blockquote.svelte +1 -1
- package/dist/markdown/markdown-blockquote.svelte.d.ts +1 -1
- package/dist/markdown/markdown-br.svelte +1 -1
- package/dist/markdown/markdown-br.svelte.d.ts +1 -1
- package/dist/markdown/markdown-code.svelte +1 -1
- package/dist/markdown/markdown-code.svelte.d.ts +1 -1
- package/dist/markdown/markdown-codespan.svelte +1 -1
- package/dist/markdown/markdown-codespan.svelte.d.ts +1 -1
- package/dist/markdown/markdown-def.svelte +1 -1
- package/dist/markdown/markdown-def.svelte.d.ts +1 -1
- package/dist/markdown/markdown-del.svelte +1 -1
- package/dist/markdown/markdown-del.svelte.d.ts +1 -1
- package/dist/markdown/markdown-em.svelte +1 -1
- package/dist/markdown/markdown-em.svelte.d.ts +1 -1
- package/dist/markdown/markdown-escape.svelte +2 -2
- package/dist/markdown/markdown-escape.svelte.d.ts +2 -2
- package/dist/markdown/markdown-heading.svelte +1 -1
- package/dist/markdown/markdown-heading.svelte.d.ts +1 -1
- package/dist/markdown/markdown-hr.svelte +1 -1
- package/dist/markdown/markdown-hr.svelte.d.ts +1 -1
- package/dist/markdown/markdown-html.svelte +1 -1
- package/dist/markdown/markdown-html.svelte.d.ts +1 -1
- package/dist/markdown/markdown-image.svelte +1 -1
- package/dist/markdown/markdown-image.svelte.d.ts +1 -1
- package/dist/markdown/markdown-link.svelte +1 -1
- package/dist/markdown/markdown-link.svelte.d.ts +1 -1
- package/dist/markdown/markdown-list-item.svelte +1 -1
- package/dist/markdown/markdown-list-item.svelte.d.ts +1 -1
- package/dist/markdown/markdown-list.svelte +1 -1
- package/dist/markdown/markdown-list.svelte.d.ts +1 -1
- package/dist/markdown/markdown-paragraph.svelte +1 -1
- package/dist/markdown/markdown-paragraph.svelte.d.ts +1 -1
- package/dist/markdown/markdown-space.svelte +1 -1
- package/dist/markdown/markdown-space.svelte.d.ts +1 -1
- package/dist/markdown/markdown-strong.svelte +1 -1
- package/dist/markdown/markdown-strong.svelte.d.ts +1 -1
- package/dist/markdown/markdown-table-cell.svelte +1 -1
- package/dist/markdown/markdown-table-cell.svelte.d.ts +1 -1
- package/dist/markdown/markdown-table.svelte +4 -2
- package/dist/markdown/markdown-table.svelte.d.ts +1 -1
- package/dist/markdown/markdown-text.svelte +1 -1
- package/dist/markdown/markdown-text.svelte.d.ts +1 -1
- package/dist/markdown/markdown-token.svelte +2 -2
- package/dist/markdown/markdown-token.svelte.d.ts +1 -1
- package/dist/markdown/markdown-tokens.svelte +1 -1
- package/dist/markdown/markdown.svelte +8 -8
- package/dist/markdown/markdown.svelte.d.ts +1 -1
- package/dist/menu/index.d.ts +2 -1
- package/dist/menu/index.js +2 -1
- package/dist/menu/menu-actions.svelte +2 -2
- package/dist/menu/menu-actions.svelte.d.ts +1 -1
- package/dist/menu/menu-content.svelte +5 -5
- package/dist/menu/menu-content.svelte.d.ts +3 -3
- package/dist/menu/menu-context.svelte.js +4 -4
- package/dist/menu/menu-item.svelte +6 -6
- package/dist/menu/menu-item.svelte.d.ts +3 -3
- package/dist/menu/menu-trigger-button.svelte +4 -4
- package/dist/menu/menu-trigger-button.svelte.d.ts +1 -1
- package/dist/menu/menu-trigger.svelte +6 -6
- package/dist/menu/menu-trigger.svelte.d.ts +3 -3
- package/dist/menu/menu.svelte +2 -2
- package/dist/menu/menu.svelte.d.ts +1 -1
- package/dist/modal/modal.svelte +4 -4
- package/dist/modal/modal.svelte.d.ts +1 -1
- package/dist/popover/popover.svelte +9 -9
- package/dist/popover/popover.svelte.d.ts +2 -2
- package/dist/portal/index.d.ts +2 -1
- package/dist/portal/index.js +1 -0
- package/dist/portal/portal.svelte +7 -4
- package/dist/portal/portal.svelte.d.ts +2 -2
- package/dist/portal/proxy.svelte +6 -3
- package/dist/portal/proxy.svelte.d.ts +2 -2
- package/dist/progress/circular-progress.svelte +7 -6
- package/dist/progress/circular-progress.svelte.d.ts +2 -2
- package/dist/progress/index.d.ts +1 -1
- package/dist/progress/index.js +1 -1
- package/dist/shortcut/index.d.ts +1 -1
- package/dist/shortcut/index.js +1 -1
- package/dist/shortcut/shortcut-badge.svelte +3 -3
- package/dist/shortcut/shortcut-badge.svelte.d.ts +2 -2
- package/dist/shortcut/shortcut.d.ts +2 -0
- package/dist/shortcut/shortcut.js +2 -0
- package/dist/skeleton/skeleton.svelte +1 -1
- package/dist/skeleton/skeleton.svelte.d.ts +1 -1
- package/dist/slider/index.d.ts +8 -0
- package/dist/slider/index.js +8 -0
- package/dist/slider/slider-context.svelte.d.ts +48 -0
- package/dist/slider/slider-context.svelte.js +192 -0
- package/dist/slider/slider-handle-label-arrow.svelte +18 -0
- package/dist/slider/slider-handle-label-arrow.svelte.d.ts +6 -0
- package/dist/slider/slider-handle-label.svelte +31 -0
- package/dist/slider/slider-handle-label.svelte.d.ts +6 -0
- package/dist/slider/slider-handle.svelte +51 -0
- package/dist/slider/slider-handle.svelte.d.ts +6 -0
- package/dist/slider/slider-mark-dot.svelte +25 -0
- package/dist/slider/slider-mark-dot.svelte.d.ts +6 -0
- package/dist/slider/slider-mark-label.svelte +37 -0
- package/dist/slider/slider-mark-label.svelte.d.ts +9 -0
- package/dist/slider/slider-mark.svelte +33 -0
- package/dist/slider/slider-mark.svelte.d.ts +9 -0
- package/dist/slider/slider.svelte +227 -0
- package/dist/slider/slider.svelte.d.ts +41 -0
- package/dist/switch/index.d.ts +1 -0
- package/dist/switch/index.js +1 -0
- package/dist/switch/switch-thumb.svelte +52 -0
- package/dist/switch/switch-thumb.svelte.d.ts +7 -0
- package/dist/switch/switch.svelte +15 -29
- package/dist/switch/switch.svelte.d.ts +6 -3
- package/dist/textarea/textarea.svelte +2 -2
- package/dist/textarea/textarea.svelte.d.ts +2 -2
- package/dist/toggle/index.d.ts +3 -2
- package/dist/toggle/index.js +3 -2
- package/dist/toggle/toggle-button.svelte +4 -4
- package/dist/toggle/toggle-button.svelte.d.ts +2 -2
- package/dist/toggle/toggle-group.svelte +3 -3
- package/dist/toggle/toggle-group.svelte.d.ts +2 -2
- package/dist/tooltip/tooltip.svelte +7 -6
- package/dist/tooltip/tooltip.svelte.d.ts +3 -3
- package/package.json +7 -5
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import {
|
|
3
|
+
COLORS,
|
|
4
|
+
RADII,
|
|
5
|
+
SIZES,
|
|
6
|
+
type Color,
|
|
7
|
+
type ColorProp,
|
|
8
|
+
type Radius,
|
|
9
|
+
type RadiusProp,
|
|
10
|
+
type Size,
|
|
11
|
+
type SizeProp,
|
|
12
|
+
} from "../base.js";
|
|
13
|
+
import { mergeProps } from "../merge-props.js";
|
|
14
|
+
import {
|
|
15
|
+
setSliderContext,
|
|
16
|
+
SliderContext,
|
|
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 = {
|
|
48
|
+
value: number;
|
|
49
|
+
label?: string;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export type SliderProps = {
|
|
53
|
+
value?: number;
|
|
54
|
+
min?: number;
|
|
55
|
+
max?: number;
|
|
56
|
+
step?: number;
|
|
57
|
+
marks?: Mark[];
|
|
58
|
+
disabled?: boolean;
|
|
59
|
+
label?: (value: number) => string;
|
|
60
|
+
labelAlwaysOn?: boolean;
|
|
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]>;
|
|
71
|
+
} & ClassName &
|
|
72
|
+
SliderColorProp &
|
|
73
|
+
SliderSizeProp &
|
|
74
|
+
SliderRadiusProp &
|
|
75
|
+
HTMLAttributes<HTMLDivElement>;
|
|
76
|
+
</script>
|
|
77
|
+
|
|
78
|
+
<script lang="ts">
|
|
79
|
+
let {
|
|
80
|
+
value = $bindable(0),
|
|
81
|
+
min = 0,
|
|
82
|
+
max = 100,
|
|
83
|
+
step = 1,
|
|
84
|
+
marks = [],
|
|
85
|
+
disabled = false,
|
|
86
|
+
label = (val: number) => val.toString(),
|
|
87
|
+
labelAlwaysOn = false,
|
|
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,
|
|
98
|
+
class: className,
|
|
99
|
+
color = "primary",
|
|
100
|
+
size = "md",
|
|
101
|
+
radius = "xl",
|
|
102
|
+
...restProps
|
|
103
|
+
}: SliderProps = $props();
|
|
104
|
+
|
|
105
|
+
const ctx = setSliderContext(
|
|
106
|
+
new SliderContext(
|
|
107
|
+
() => value,
|
|
108
|
+
(newValue) => (value = newValue),
|
|
109
|
+
() => min,
|
|
110
|
+
() => max,
|
|
111
|
+
() => step,
|
|
112
|
+
() => marks,
|
|
113
|
+
() => disabled,
|
|
114
|
+
label,
|
|
115
|
+
() => labelAlwaysOn,
|
|
116
|
+
() => inverted,
|
|
117
|
+
() => restrictToMarks,
|
|
118
|
+
() => color,
|
|
119
|
+
() => size,
|
|
120
|
+
() => radius,
|
|
121
|
+
onChange,
|
|
122
|
+
onChangeEnd,
|
|
123
|
+
sliderHandle,
|
|
124
|
+
sliderHandleLabel,
|
|
125
|
+
sliderHandleLabelArrow,
|
|
126
|
+
sliderMark,
|
|
127
|
+
sliderMarkDot,
|
|
128
|
+
sliderMarkLabel,
|
|
129
|
+
),
|
|
130
|
+
);
|
|
131
|
+
</script>
|
|
132
|
+
|
|
133
|
+
{#snippet defaultSliderHandle(props: SliderHandleProps)}
|
|
134
|
+
<SliderHandle {...props} />
|
|
135
|
+
{/snippet}
|
|
136
|
+
|
|
137
|
+
{#snippet defaultSliderHandleLabel(props: SliderHandleLabelProps)}
|
|
138
|
+
<SliderHandleLabel {...props} />
|
|
139
|
+
{/snippet}
|
|
140
|
+
|
|
141
|
+
{#snippet defaultSliderHandleLabelArrow(props: SliderHandleLabelArrowProps)}
|
|
142
|
+
<SliderHandleLabelArrow {...props} />
|
|
143
|
+
{/snippet}
|
|
144
|
+
|
|
145
|
+
{#snippet defaultSliderMark(props: SliderMarkProps)}
|
|
146
|
+
<SliderMark {...props} />
|
|
147
|
+
{/snippet}
|
|
148
|
+
|
|
149
|
+
{#snippet defaultSliderMarkDot(props: SliderMarkDotProps)}
|
|
150
|
+
<SliderMarkDot {...props} />
|
|
151
|
+
{/snippet}
|
|
152
|
+
|
|
153
|
+
{#snippet defaultSliderMarkLabel(props: SliderMarkLabelProps)}
|
|
154
|
+
<SliderMarkLabel {...props} />
|
|
155
|
+
{/snippet}
|
|
156
|
+
|
|
157
|
+
<!-- Track -->
|
|
158
|
+
<div
|
|
159
|
+
bind:this={ctx.sliderEl}
|
|
160
|
+
class={twMerge(
|
|
161
|
+
"relative w-full cursor-pointer touch-none bg-m3-surface-container-highest select-none",
|
|
162
|
+
|
|
163
|
+
ctx.disabled && "cursor-not-allowed opacity-50",
|
|
164
|
+
|
|
165
|
+
ctx.radius === "xs" && "rounded-xs",
|
|
166
|
+
ctx.radius === "sm" && "rounded-sm",
|
|
167
|
+
ctx.radius === "md" && "rounded-lg",
|
|
168
|
+
ctx.radius === "lg" && "rounded-2xl",
|
|
169
|
+
ctx.radius === "xl" && "rounded-4xl",
|
|
170
|
+
|
|
171
|
+
ctx.size === "xs" && "my-2.5 h-0.5",
|
|
172
|
+
ctx.size === "sm" && "my-3 h-1",
|
|
173
|
+
ctx.size === "md" && "my-3.5 h-2",
|
|
174
|
+
ctx.size === "lg" && "my-4 h-3",
|
|
175
|
+
ctx.size === "xl" && "my-4.5 h-4",
|
|
176
|
+
|
|
177
|
+
className,
|
|
178
|
+
)}
|
|
179
|
+
{...mergeProps(restProps, {
|
|
180
|
+
role: "slider",
|
|
181
|
+
tabindex: ctx.disabled ? -1 : 0,
|
|
182
|
+
"aria-valuenow": ctx.value,
|
|
183
|
+
"aria-valuemin": ctx.min,
|
|
184
|
+
"aria-valuemax": ctx.max,
|
|
185
|
+
"aria-disabled": ctx.disabled,
|
|
186
|
+
onpointerdown: ctx.pointerDown,
|
|
187
|
+
onpointermove: ctx.pointerMove,
|
|
188
|
+
onpointerup: ctx.pointerUp,
|
|
189
|
+
onkeydown: ctx.keyDown,
|
|
190
|
+
onfocus: ctx.focus,
|
|
191
|
+
onblur: ctx.blur,
|
|
192
|
+
})}
|
|
193
|
+
>
|
|
194
|
+
<!-- Filled track -->
|
|
195
|
+
<div
|
|
196
|
+
class={twMerge(
|
|
197
|
+
"absolute top-1/2 h-full -translate-y-1/2 transition-all",
|
|
198
|
+
|
|
199
|
+
ctx.color === "primary" && "bg-m3-primary",
|
|
200
|
+
ctx.color === "secondary" && "bg-m3-secondary",
|
|
201
|
+
ctx.color === "tertiary" && "bg-m3-tertiary",
|
|
202
|
+
ctx.color === "error" && "bg-m3-error",
|
|
203
|
+
|
|
204
|
+
ctx.radius === "xs" && "rounded-xs",
|
|
205
|
+
ctx.radius === "sm" && "rounded-sm",
|
|
206
|
+
ctx.radius === "md" && "rounded-lg",
|
|
207
|
+
ctx.radius === "lg" && "rounded-2xl",
|
|
208
|
+
ctx.radius === "xl" && "rounded-4xl",
|
|
209
|
+
)}
|
|
210
|
+
style={ctx.inverted
|
|
211
|
+
? `right: 0; width: ${100 - ctx.position}%`
|
|
212
|
+
: `left: 0; width: ${ctx.position}%`}
|
|
213
|
+
></div>
|
|
214
|
+
|
|
215
|
+
<!-- Marks -->
|
|
216
|
+
{#each marks as { value, label } (value)}
|
|
217
|
+
{@render ctx.markRenderer({ value, label })}
|
|
218
|
+
{/each}
|
|
219
|
+
|
|
220
|
+
<!-- Handle -->
|
|
221
|
+
<div
|
|
222
|
+
class="absolute top-1/2 -translate-x-1/2 -translate-y-1/2 transition-all"
|
|
223
|
+
style={`left: ${ctx.position}%`}
|
|
224
|
+
>
|
|
225
|
+
{@render ctx.handleRenderer({})}
|
|
226
|
+
</div>
|
|
227
|
+
</div>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type Color, type ColorProp, type Radius, type RadiusProp, type Size, type SizeProp } from "../base.js";
|
|
2
|
+
import { type SliderHandleLabelArrowProps, type SliderHandleLabelProps, type SliderHandleProps, type SliderMarkDotProps, type SliderMarkLabelProps, type SliderMarkProps } from "./index.js";
|
|
3
|
+
import type { ClassName } from "../utils.js";
|
|
4
|
+
import type { Snippet } from "svelte";
|
|
5
|
+
import type { HTMLAttributes } from "svelte/elements";
|
|
6
|
+
export declare const SLIDER_COLORS: readonly ["primary", "secondary", "tertiary", "error", "inherit"];
|
|
7
|
+
export type SliderColor = Color;
|
|
8
|
+
export type SliderColorProp = ColorProp;
|
|
9
|
+
export declare const SLIDER_SIZES: readonly ["xs", "sm", "md", "lg", "xl", "inherit"];
|
|
10
|
+
export type SliderSize = Size;
|
|
11
|
+
export type SliderSizeProp = SizeProp;
|
|
12
|
+
export declare const SLIDER_RADII: readonly ["xs", "sm", "md", "lg", "xl", "inherit"];
|
|
13
|
+
export type SliderRadius = Radius;
|
|
14
|
+
export type SliderRadiusProp = RadiusProp;
|
|
15
|
+
export type Mark = {
|
|
16
|
+
value: number;
|
|
17
|
+
label?: string;
|
|
18
|
+
};
|
|
19
|
+
export type SliderProps = {
|
|
20
|
+
value?: number;
|
|
21
|
+
min?: number;
|
|
22
|
+
max?: number;
|
|
23
|
+
step?: number;
|
|
24
|
+
marks?: Mark[];
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
label?: (value: number) => string;
|
|
27
|
+
labelAlwaysOn?: boolean;
|
|
28
|
+
inverted?: boolean;
|
|
29
|
+
restrictToMarks?: boolean;
|
|
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">;
|
|
40
|
+
type Slider = ReturnType<typeof Slider>;
|
|
41
|
+
export default Slider;
|
package/dist/switch/index.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
+
export { default as SwitchThumb, type SwitchThumbProps, } from "./switch-thumb.svelte";
|
|
1
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";
|
package/dist/switch/index.js
CHANGED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import type {
|
|
3
|
+
SwitchColorProp,
|
|
4
|
+
SwitchRadiusProp,
|
|
5
|
+
SwitchSizeProp,
|
|
6
|
+
} from "./index.js";
|
|
7
|
+
import type { ClassName } from "../utils.js";
|
|
8
|
+
import type { HTMLAttributes } from "svelte/elements";
|
|
9
|
+
import { twMerge } from "tailwind-merge";
|
|
10
|
+
|
|
11
|
+
export type SwitchThumbProps = {} & ClassName &
|
|
12
|
+
SwitchColorProp &
|
|
13
|
+
SwitchSizeProp &
|
|
14
|
+
SwitchRadiusProp &
|
|
15
|
+
HTMLAttributes<HTMLDivElement>;
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<script lang="ts">
|
|
19
|
+
let {
|
|
20
|
+
class: className,
|
|
21
|
+
color = "primary",
|
|
22
|
+
size = "sm",
|
|
23
|
+
radius = "xl",
|
|
24
|
+
...restProps
|
|
25
|
+
}: SwitchThumbProps = $props();
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<div
|
|
29
|
+
class={twMerge(
|
|
30
|
+
"absolute top-0.5 left-0.5 shadow-sm transition-all",
|
|
31
|
+
|
|
32
|
+
color === "primary" && "bg-m3-on-primary",
|
|
33
|
+
color === "secondary" && "bg-m3-on-secondary",
|
|
34
|
+
color === "tertiary" && "bg-m3-on-tertiary",
|
|
35
|
+
color === "error" && "bg-m3-on-error",
|
|
36
|
+
|
|
37
|
+
size === "xs" && "size-3 group-aria-checked:translate-x-4",
|
|
38
|
+
size === "sm" && "size-4 group-aria-checked:translate-x-5",
|
|
39
|
+
size === "md" && "size-5 group-aria-checked:translate-x-6",
|
|
40
|
+
size === "lg" && "size-6 group-aria-checked:translate-x-7",
|
|
41
|
+
size === "xl" && "size-7 group-aria-checked:translate-x-8",
|
|
42
|
+
|
|
43
|
+
radius === "xs" && "rounded-xs",
|
|
44
|
+
radius === "sm" && "rounded-sm",
|
|
45
|
+
radius === "md" && "rounded-lg",
|
|
46
|
+
radius === "lg" && "rounded-2xl",
|
|
47
|
+
radius === "xl" && "rounded-4xl",
|
|
48
|
+
|
|
49
|
+
className,
|
|
50
|
+
)}
|
|
51
|
+
{...restProps}
|
|
52
|
+
></div>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SwitchColorProp, SwitchRadiusProp, SwitchSizeProp } from "./index.js";
|
|
2
|
+
import type { ClassName } from "../utils.js";
|
|
3
|
+
import type { HTMLAttributes } from "svelte/elements";
|
|
4
|
+
export type SwitchThumbProps = {} & ClassName & SwitchColorProp & SwitchSizeProp & SwitchRadiusProp & HTMLAttributes<HTMLDivElement>;
|
|
5
|
+
declare const SwitchThumb: import("svelte").Component<SwitchThumbProps, {}, "">;
|
|
6
|
+
type SwitchThumb = ReturnType<typeof SwitchThumb>;
|
|
7
|
+
export default SwitchThumb;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type { HTMLButtonAttributes } from "svelte/elements";
|
|
3
|
-
import { twMerge } from "tailwind-merge";
|
|
4
2
|
import {
|
|
5
3
|
COLORS,
|
|
6
4
|
RADII,
|
|
@@ -11,9 +9,13 @@
|
|
|
11
9
|
type RadiusProp,
|
|
12
10
|
type Size,
|
|
13
11
|
type SizeProp,
|
|
14
|
-
} from "../base";
|
|
15
|
-
import { mergeProps } from "../merge-props";
|
|
16
|
-
import type
|
|
12
|
+
} from "../base.js";
|
|
13
|
+
import { mergeProps } from "../merge-props.js";
|
|
14
|
+
import { SwitchThumb, type SwitchThumbProps } from "./index.js";
|
|
15
|
+
import type { ClassName } from "../utils.js";
|
|
16
|
+
import type { Snippet } from "svelte";
|
|
17
|
+
import type { HTMLButtonAttributes } from "svelte/elements";
|
|
18
|
+
import { twMerge } from "tailwind-merge";
|
|
17
19
|
|
|
18
20
|
export const SWITCH_COLORS = COLORS;
|
|
19
21
|
export type SwitchColor = Color;
|
|
@@ -29,16 +31,18 @@
|
|
|
29
31
|
|
|
30
32
|
export type SwitchProps = {
|
|
31
33
|
checked?: boolean;
|
|
34
|
+
thumb?: Snippet<[SwitchThumbProps]>;
|
|
32
35
|
} & ClassName &
|
|
36
|
+
SwitchColorProp &
|
|
33
37
|
SwitchSizeProp &
|
|
34
38
|
SwitchRadiusProp &
|
|
35
|
-
SwitchColorProp &
|
|
36
39
|
HTMLButtonAttributes;
|
|
37
40
|
</script>
|
|
38
41
|
|
|
39
42
|
<script lang="ts">
|
|
40
43
|
let {
|
|
41
44
|
checked = $bindable(false),
|
|
45
|
+
thumb = defaultThumb,
|
|
42
46
|
class: className,
|
|
43
47
|
color = "primary",
|
|
44
48
|
size = "sm",
|
|
@@ -47,6 +51,10 @@
|
|
|
47
51
|
}: SwitchProps = $props();
|
|
48
52
|
</script>
|
|
49
53
|
|
|
54
|
+
{#snippet defaultThumb(props: SwitchThumbProps)}
|
|
55
|
+
<SwitchThumb {...props} />
|
|
56
|
+
{/snippet}
|
|
57
|
+
|
|
50
58
|
<button
|
|
51
59
|
type="button"
|
|
52
60
|
role="switch"
|
|
@@ -79,27 +87,5 @@
|
|
|
79
87
|
)}
|
|
80
88
|
{...mergeProps(restProps, { onclick: () => (checked = !checked) })}
|
|
81
89
|
>
|
|
82
|
-
|
|
83
|
-
<div
|
|
84
|
-
class={twMerge(
|
|
85
|
-
"absolute top-0.5 left-0.5 shadow-sm transition-all",
|
|
86
|
-
|
|
87
|
-
color === "primary" && "bg-m3-on-primary",
|
|
88
|
-
color === "secondary" && "bg-m3-on-secondary",
|
|
89
|
-
color === "tertiary" && "bg-m3-on-tertiary",
|
|
90
|
-
color === "error" && "bg-m3-on-error",
|
|
91
|
-
|
|
92
|
-
size === "xs" && "size-3 group-aria-checked:translate-x-4",
|
|
93
|
-
size === "sm" && "size-4 group-aria-checked:translate-x-5",
|
|
94
|
-
size === "md" && "size-5 group-aria-checked:translate-x-6",
|
|
95
|
-
size === "lg" && "size-6 group-aria-checked:translate-x-7",
|
|
96
|
-
size === "xl" && "size-7 group-aria-checked:translate-x-8",
|
|
97
|
-
|
|
98
|
-
radius === "xs" && "rounded-xs",
|
|
99
|
-
radius === "sm" && "rounded-sm",
|
|
100
|
-
radius === "md" && "rounded-lg",
|
|
101
|
-
radius === "lg" && "rounded-2xl",
|
|
102
|
-
radius === "xl" && "rounded-4xl",
|
|
103
|
-
)}
|
|
104
|
-
></div>
|
|
90
|
+
{@render thumb({ color, size, radius })}
|
|
105
91
|
</button>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { type Color, type ColorProp, type Radius, type RadiusProp, type Size, type SizeProp } from "../base.js";
|
|
2
|
+
import { type SwitchThumbProps } from "./index.js";
|
|
3
|
+
import type { ClassName } from "../utils.js";
|
|
4
|
+
import type { Snippet } from "svelte";
|
|
1
5
|
import type { HTMLButtonAttributes } from "svelte/elements";
|
|
2
|
-
import { type Color, type ColorProp, type Radius, type RadiusProp, type Size, type SizeProp } from "../base";
|
|
3
|
-
import type { ClassName } from "../utils";
|
|
4
6
|
export declare const SWITCH_COLORS: readonly ["primary", "secondary", "tertiary", "error", "inherit"];
|
|
5
7
|
export type SwitchColor = Color;
|
|
6
8
|
export type SwitchColorProp = ColorProp;
|
|
@@ -12,7 +14,8 @@ export type SwitchRadius = Radius;
|
|
|
12
14
|
export type SwitchRadiusProp = RadiusProp;
|
|
13
15
|
export type SwitchProps = {
|
|
14
16
|
checked?: boolean;
|
|
15
|
-
|
|
17
|
+
thumb?: Snippet<[SwitchThumbProps]>;
|
|
18
|
+
} & ClassName & SwitchColorProp & SwitchSizeProp & SwitchRadiusProp & HTMLButtonAttributes;
|
|
16
19
|
declare const Switch: import("svelte").Component<SwitchProps, {}, "checked">;
|
|
17
20
|
type Switch = ReturnType<typeof Switch>;
|
|
18
21
|
export default Switch;
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
type RadiusProp,
|
|
10
10
|
type Size,
|
|
11
11
|
type SizeProp,
|
|
12
|
-
} from "
|
|
13
|
-
import {
|
|
12
|
+
} from "../base.js";
|
|
13
|
+
import type { ClassName } from "../utils.js";
|
|
14
14
|
import type { HTMLTextareaAttributes } from "svelte/elements";
|
|
15
15
|
import { twMerge } from "tailwind-merge";
|
|
16
16
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type Color, type ColorProp, type Radius, type RadiusProp, type Size, type SizeProp } from "
|
|
2
|
-
import {
|
|
1
|
+
import { type Color, type ColorProp, type Radius, type RadiusProp, type Size, type SizeProp } from "../base.js";
|
|
2
|
+
import type { ClassName } from "../utils.js";
|
|
3
3
|
import type { HTMLTextareaAttributes } from "svelte/elements";
|
|
4
4
|
export declare const TEXTAREA_VARIANTS: readonly ["outlined", "filled", "inherit"];
|
|
5
5
|
export type TextareaVariant = (typeof TEXTAREA_VARIANTS)[number];
|
package/dist/toggle/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { default as ToggleButton } from "./toggle-button.svelte";
|
|
2
|
-
export {
|
|
1
|
+
export { default as ToggleButton, type ToggleButtonProps, } from "./toggle-button.svelte";
|
|
2
|
+
export { getToggleContext, setToggleContext, ToggleContext, } from "./toggle-context.svelte.js";
|
|
3
|
+
export { default as ToggleGroup, type ToggleGroupProps, } from "./toggle-group.svelte";
|
package/dist/toggle/index.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { default as ToggleButton } from "./toggle-button.svelte";
|
|
2
|
-
export {
|
|
1
|
+
export { default as ToggleButton, } from "./toggle-button.svelte";
|
|
2
|
+
export { getToggleContext, setToggleContext, ToggleContext, } from "./toggle-context.svelte.js";
|
|
3
|
+
export { default as ToggleGroup, } from "./toggle-group.svelte";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<script module lang="ts">
|
|
2
|
+
import type { Variants } from "../base.js";
|
|
3
|
+
import { mergeProps } from "../merge-props.js";
|
|
4
|
+
import { getToggleContext } from "./index.js";
|
|
5
|
+
import { noop, type ClassName, type ElementRef } from "../utils.js";
|
|
2
6
|
import type { Snippet } from "svelte";
|
|
3
7
|
import type { HTMLButtonAttributes } from "svelte/elements";
|
|
4
8
|
import { twMerge } from "tailwind-merge";
|
|
5
|
-
import { type Variants } from "../base";
|
|
6
|
-
import { mergeProps } from "../merge-props";
|
|
7
|
-
import { noop, type ClassName, type ElementRef } from "../utils";
|
|
8
|
-
import { getToggleContext } from "./toggle-context.svelte";
|
|
9
9
|
|
|
10
10
|
export type ToggleButtonProps<T> = {
|
|
11
11
|
value: T;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import type { Variants } from "../base.js";
|
|
2
|
+
import { type ClassName, type ElementRef } from "../utils.js";
|
|
1
3
|
import type { Snippet } from "svelte";
|
|
2
4
|
import type { HTMLButtonAttributes } from "svelte/elements";
|
|
3
|
-
import { type Variants } from "../base";
|
|
4
|
-
import { type ClassName, type ElementRef } from "../utils";
|
|
5
5
|
export type ToggleButtonProps<T> = {
|
|
6
6
|
value: T;
|
|
7
7
|
children: Snippet;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script module lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { setToggleContext, ToggleContext } from "./index.js";
|
|
3
|
+
import { noop, type ClassName, type ElementRef } from "../utils.js";
|
|
4
|
+
import type { Snippet } from "svelte";
|
|
3
5
|
import type { HTMLAttributes } from "svelte/elements";
|
|
4
6
|
import { twMerge } from "tailwind-merge";
|
|
5
|
-
import { noop, type ClassName, type ElementRef } from "../utils";
|
|
6
|
-
import { setToggleContext, ToggleContext } from "./toggle-context.svelte";
|
|
7
7
|
|
|
8
8
|
export type ToggleGroupProps<T> = {
|
|
9
9
|
value?: T;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ClassName, type ElementRef } from "../utils.js";
|
|
2
|
+
import type { Snippet } from "svelte";
|
|
2
3
|
import type { HTMLAttributes } from "svelte/elements";
|
|
3
|
-
import { type ClassName, type ElementRef } from "../utils";
|
|
4
4
|
export type ToggleGroupProps<T> = {
|
|
5
5
|
value?: T;
|
|
6
6
|
onChange?: (value?: T) => void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import { type
|
|
2
|
+
import { Popover, type PopoverProps } from "../popover/index.js";
|
|
3
|
+
import type { ClassName } from "../utils.js";
|
|
4
|
+
import type { Snippet } from "svelte";
|
|
3
5
|
import { twMerge } from "tailwind-merge";
|
|
4
|
-
import { Popover, type PopoverProps } from "../popover";
|
|
5
|
-
import type { ClassName } from "../utils";
|
|
6
6
|
|
|
7
7
|
export type TooltipTriggerProps = {
|
|
8
8
|
ref: (el: HTMLElement) => void;
|
|
@@ -36,8 +36,9 @@
|
|
|
36
36
|
...restProps
|
|
37
37
|
}: TooltipProps = $props();
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
"ontouchstart" in window || navigator.maxTouchPoints > 0;
|
|
39
|
+
function isTouchDevice() {
|
|
40
|
+
return "ontouchstart" in window || navigator.maxTouchPoints > 0;
|
|
41
|
+
}
|
|
41
42
|
|
|
42
43
|
let timeout: number;
|
|
43
44
|
|
|
@@ -64,7 +65,7 @@
|
|
|
64
65
|
}
|
|
65
66
|
: {
|
|
66
67
|
ref: (ref) => (anchorEl = ref),
|
|
67
|
-
onmouseenter: () => !isTouchDevice && show(),
|
|
68
|
+
onmouseenter: () => !isTouchDevice() && show(),
|
|
68
69
|
onmouseleave: () => hide(),
|
|
69
70
|
ontouchstart: () => show(delay),
|
|
70
71
|
ontouchend: () => cancel(),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import {
|
|
3
|
-
import type {
|
|
1
|
+
import { type PopoverProps } from "../popover/index.js";
|
|
2
|
+
import type { ClassName } from "../utils.js";
|
|
3
|
+
import type { Snippet } from "svelte";
|
|
4
4
|
export type TooltipTriggerProps = {
|
|
5
5
|
ref: (el: HTMLElement) => void;
|
|
6
6
|
onclick?: () => void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kosui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.28",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@floating-ui/dom": "^1.7.2",
|
|
31
|
-
"@lucide/svelte": "^0.
|
|
31
|
+
"@lucide/svelte": "^0.542.0",
|
|
32
32
|
"marked": "^16.1.1"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"@eslint/compat": "^1.2.5",
|
|
40
40
|
"@eslint/js": "^9.18.0",
|
|
41
41
|
"@playwright/test": "^1.49.1",
|
|
42
|
-
"@sveltejs/adapter-
|
|
42
|
+
"@sveltejs/adapter-static": "^3.0.9",
|
|
43
43
|
"@sveltejs/kit": "^2.22.0",
|
|
44
44
|
"@sveltejs/package": "^2.0.0",
|
|
45
45
|
"@sveltejs/vite-plugin-svelte": "^6.0.0",
|
|
@@ -51,6 +51,8 @@
|
|
|
51
51
|
"eslint-config-prettier": "^10.0.1",
|
|
52
52
|
"eslint-plugin-svelte": "^3.0.0",
|
|
53
53
|
"globals": "^16.0.0",
|
|
54
|
+
"highlight.js": "^11.11.1",
|
|
55
|
+
"highlight.svelte": "^0.1.3",
|
|
54
56
|
"jsdom": "^26.1.0",
|
|
55
57
|
"postcss": "^8.5.6",
|
|
56
58
|
"prettier": "^3.4.2",
|
|
@@ -77,9 +79,9 @@
|
|
|
77
79
|
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
78
80
|
"format": "prettier --write .",
|
|
79
81
|
"lint": "prettier --check . && eslint .",
|
|
80
|
-
"test:unit": "vitest",
|
|
81
|
-
"test": "pnpm test:unit -- --run && pnpm test:e2e",
|
|
82
|
+
"test:unit": "vitest run",
|
|
82
83
|
"test:e2e": "playwright test",
|
|
84
|
+
"test": "pnpm run \"/^(build|check|lint|test:unit)$/\"",
|
|
83
85
|
"ci:publish": "changeset publish"
|
|
84
86
|
}
|
|
85
87
|
}
|