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,216 +0,0 @@
|
|
|
1
|
-
import { Bindable } from "../bindable.svelte.js";
|
|
2
|
-
import { Shortcut } from "../shortcut/shortcut.js";
|
|
3
|
-
import { getContext, setContext } from "svelte";
|
|
4
|
-
export class SliderContext {
|
|
5
|
-
#value;
|
|
6
|
-
#min;
|
|
7
|
-
#max;
|
|
8
|
-
#step;
|
|
9
|
-
#marks;
|
|
10
|
-
#disabled;
|
|
11
|
-
#label;
|
|
12
|
-
#labelAlwaysOn;
|
|
13
|
-
#inverted;
|
|
14
|
-
#restrictToMarks;
|
|
15
|
-
#color;
|
|
16
|
-
#size;
|
|
17
|
-
#radius;
|
|
18
|
-
onChange;
|
|
19
|
-
onChangeEnd;
|
|
20
|
-
#handleRenderer;
|
|
21
|
-
#handleLabelRenderer;
|
|
22
|
-
#handleLabelArrowRenderer;
|
|
23
|
-
#markRenderer;
|
|
24
|
-
#markDotRenderer;
|
|
25
|
-
#markLabelRenderer;
|
|
26
|
-
sliderEl;
|
|
27
|
-
hovered = $state(false);
|
|
28
|
-
clicked = $state(false);
|
|
29
|
-
dragging = $state(false);
|
|
30
|
-
focused = $state(false);
|
|
31
|
-
constructor(getValue, setValue, min, max, step, marks, disabled, label, labelAlwaysOn, inverted, restrictToMarks, color, size, radius, onChange, onChangeEnd, handleRenderer, handleLabelRenderer, handleLabelArrowRenderer, markRenderer, markDotRenderer, markLabelRenderer) {
|
|
32
|
-
this.#value = new Bindable(getValue());
|
|
33
|
-
this.#value.bind(getValue, setValue);
|
|
34
|
-
this.#min = min;
|
|
35
|
-
this.#max = max;
|
|
36
|
-
this.#step = step;
|
|
37
|
-
this.#marks = marks;
|
|
38
|
-
this.#disabled = disabled;
|
|
39
|
-
this.#label = label;
|
|
40
|
-
this.#labelAlwaysOn = labelAlwaysOn;
|
|
41
|
-
this.#inverted = inverted;
|
|
42
|
-
this.#restrictToMarks = restrictToMarks;
|
|
43
|
-
this.#color = color;
|
|
44
|
-
this.#size = size;
|
|
45
|
-
this.#radius = radius;
|
|
46
|
-
this.onChange = onChange;
|
|
47
|
-
this.onChangeEnd = onChangeEnd;
|
|
48
|
-
this.#handleRenderer = handleRenderer;
|
|
49
|
-
this.#handleLabelRenderer = handleLabelRenderer;
|
|
50
|
-
this.#handleLabelArrowRenderer = handleLabelArrowRenderer;
|
|
51
|
-
this.#markRenderer = markRenderer;
|
|
52
|
-
this.#markDotRenderer = markDotRenderer;
|
|
53
|
-
this.#markLabelRenderer = markLabelRenderer;
|
|
54
|
-
}
|
|
55
|
-
get value() {
|
|
56
|
-
return this.#value.value;
|
|
57
|
-
}
|
|
58
|
-
set value(value) {
|
|
59
|
-
this.#value.value = this.clamp(value, this.min, this.max);
|
|
60
|
-
this.onChange?.(this.value);
|
|
61
|
-
}
|
|
62
|
-
get min() {
|
|
63
|
-
return this.#min();
|
|
64
|
-
}
|
|
65
|
-
get max() {
|
|
66
|
-
return this.#max();
|
|
67
|
-
}
|
|
68
|
-
get step() {
|
|
69
|
-
return this.#step();
|
|
70
|
-
}
|
|
71
|
-
get marks() {
|
|
72
|
-
return this.#marks();
|
|
73
|
-
}
|
|
74
|
-
get disabled() {
|
|
75
|
-
return this.#disabled();
|
|
76
|
-
}
|
|
77
|
-
get label() {
|
|
78
|
-
return this.#label(this.value);
|
|
79
|
-
}
|
|
80
|
-
get labelAlwaysOn() {
|
|
81
|
-
return this.#labelAlwaysOn();
|
|
82
|
-
}
|
|
83
|
-
get inverted() {
|
|
84
|
-
return this.#inverted();
|
|
85
|
-
}
|
|
86
|
-
get restrictToMarks() {
|
|
87
|
-
return this.#restrictToMarks();
|
|
88
|
-
}
|
|
89
|
-
get color() {
|
|
90
|
-
return this.#color();
|
|
91
|
-
}
|
|
92
|
-
get size() {
|
|
93
|
-
return this.#size();
|
|
94
|
-
}
|
|
95
|
-
get radius() {
|
|
96
|
-
return this.#radius();
|
|
97
|
-
}
|
|
98
|
-
get handleRenderer() {
|
|
99
|
-
return this.#handleRenderer();
|
|
100
|
-
}
|
|
101
|
-
get handleLabelRenderer() {
|
|
102
|
-
return this.#handleLabelRenderer();
|
|
103
|
-
}
|
|
104
|
-
get handleLabelArrowRenderer() {
|
|
105
|
-
return this.#handleLabelArrowRenderer();
|
|
106
|
-
}
|
|
107
|
-
get markRenderer() {
|
|
108
|
-
return this.#markRenderer();
|
|
109
|
-
}
|
|
110
|
-
get markDotRenderer() {
|
|
111
|
-
return this.#markDotRenderer();
|
|
112
|
-
}
|
|
113
|
-
get markLabelRenderer() {
|
|
114
|
-
return this.#markLabelRenderer();
|
|
115
|
-
}
|
|
116
|
-
get position() {
|
|
117
|
-
return this.getPositionFromValue(this.value);
|
|
118
|
-
}
|
|
119
|
-
get animated() {
|
|
120
|
-
return !this.dragging || this.restrictToMarks;
|
|
121
|
-
}
|
|
122
|
-
clamp = (val, minVal, maxVal) => {
|
|
123
|
-
return Math.min(Math.max(val, minVal), maxVal);
|
|
124
|
-
};
|
|
125
|
-
getValueFromPosition = (position) => {
|
|
126
|
-
const rect = this.sliderEl.getBoundingClientRect();
|
|
127
|
-
const percentage = this.clamp((position - rect.left) / rect.width, 0, 1);
|
|
128
|
-
const range = this.max - this.min;
|
|
129
|
-
let newValue = this.min + (this.inverted ? 1 - percentage : percentage) * range;
|
|
130
|
-
if (this.restrictToMarks && this.marks.length > 0) {
|
|
131
|
-
// Find closest mark
|
|
132
|
-
const closest = this.marks.reduce((prev, curr) => Math.abs(curr.value - newValue) < Math.abs(prev.value - newValue)
|
|
133
|
-
? curr
|
|
134
|
-
: prev);
|
|
135
|
-
newValue = closest.value;
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
// Round to step
|
|
139
|
-
newValue = Math.round(newValue / this.step) * this.step;
|
|
140
|
-
}
|
|
141
|
-
return this.clamp(newValue, this.min, this.max);
|
|
142
|
-
};
|
|
143
|
-
getPositionFromValue = (val) => {
|
|
144
|
-
const percentage = (val - this.min) / (this.max - this.min);
|
|
145
|
-
return this.inverted ? (1 - percentage) * 100 : percentage * 100;
|
|
146
|
-
};
|
|
147
|
-
pointerDown = (event) => {
|
|
148
|
-
if (this.disabled)
|
|
149
|
-
return;
|
|
150
|
-
this.clicked = true;
|
|
151
|
-
this.sliderEl.setPointerCapture(event.pointerId);
|
|
152
|
-
this.value = this.getValueFromPosition(event.clientX);
|
|
153
|
-
event.preventDefault();
|
|
154
|
-
event.stopImmediatePropagation();
|
|
155
|
-
};
|
|
156
|
-
pointerMove = (event) => {
|
|
157
|
-
if (this.disabled || !this.clicked)
|
|
158
|
-
return;
|
|
159
|
-
this.dragging = true;
|
|
160
|
-
this.value = this.getValueFromPosition(event.clientX);
|
|
161
|
-
event.preventDefault();
|
|
162
|
-
event.stopImmediatePropagation();
|
|
163
|
-
};
|
|
164
|
-
pointerUp = (event) => {
|
|
165
|
-
if (this.disabled || !this.clicked)
|
|
166
|
-
return;
|
|
167
|
-
this.dragging = false;
|
|
168
|
-
this.clicked = false;
|
|
169
|
-
this.sliderEl.releasePointerCapture(event.pointerId);
|
|
170
|
-
this.onChangeEnd?.(this.value);
|
|
171
|
-
event.preventDefault();
|
|
172
|
-
event.stopImmediatePropagation();
|
|
173
|
-
};
|
|
174
|
-
keyDown = (event) => {
|
|
175
|
-
if (this.disabled)
|
|
176
|
-
return;
|
|
177
|
-
if (Shortcut.ARROW_UP.matches(event) ||
|
|
178
|
-
Shortcut.ARROW_RIGHT.matches(event)) {
|
|
179
|
-
this.value = this.value + this.step;
|
|
180
|
-
event.preventDefault();
|
|
181
|
-
event.stopImmediatePropagation();
|
|
182
|
-
}
|
|
183
|
-
else if (Shortcut.ARROW_DOWN.matches(event) ||
|
|
184
|
-
Shortcut.ARROW_LEFT.matches(event)) {
|
|
185
|
-
this.value = this.value - this.step;
|
|
186
|
-
event.preventDefault();
|
|
187
|
-
event.stopImmediatePropagation();
|
|
188
|
-
}
|
|
189
|
-
else if (Shortcut.HOME.matches(event)) {
|
|
190
|
-
this.value = this.min;
|
|
191
|
-
event.preventDefault();
|
|
192
|
-
event.stopImmediatePropagation();
|
|
193
|
-
}
|
|
194
|
-
else if (Shortcut.END.matches(event)) {
|
|
195
|
-
this.value = this.max;
|
|
196
|
-
event.preventDefault();
|
|
197
|
-
event.stopImmediatePropagation();
|
|
198
|
-
}
|
|
199
|
-
this.onChangeEnd?.(this.value);
|
|
200
|
-
};
|
|
201
|
-
focus = () => {
|
|
202
|
-
this.focused = true;
|
|
203
|
-
};
|
|
204
|
-
blur = () => {
|
|
205
|
-
this.focused = false;
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
export function setSliderContext(state) {
|
|
209
|
-
return setContext(SliderContext, state);
|
|
210
|
-
}
|
|
211
|
-
export function getSliderContext() {
|
|
212
|
-
const ctx = getContext(SliderContext);
|
|
213
|
-
if (!ctx)
|
|
214
|
-
throw new Error("SliderContext is undefined");
|
|
215
|
-
return ctx;
|
|
216
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { ClassName } from "../utils.js";
|
|
3
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
4
|
-
import { twMerge } from "tailwind-merge";
|
|
5
|
-
|
|
6
|
-
export type SliderHandleLabelArrowProps = {} & ClassName &
|
|
7
|
-
HTMLAttributes<HTMLDivElement>;
|
|
8
|
-
let { class: className, ...restProps }: SliderHandleLabelArrowProps =
|
|
9
|
-
$props();
|
|
10
|
-
</script>
|
|
11
|
-
|
|
12
|
-
<div
|
|
13
|
-
class={twMerge(
|
|
14
|
-
"absolute top-full left-1/2 h-0 w-0 -translate-x-1/2 border-t-4 border-r-4 border-l-4 border-transparent border-t-m3-outline-variant",
|
|
15
|
-
className,
|
|
16
|
-
)}
|
|
17
|
-
{...restProps}
|
|
18
|
-
></div>
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { ClassName } from "../utils.js";
|
|
2
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
3
|
-
export type SliderHandleLabelArrowProps = {} & ClassName & HTMLAttributes<HTMLDivElement>;
|
|
4
|
-
declare const SliderHandleLabelArrow: import("svelte").Component<SliderHandleLabelArrowProps, {}, "">;
|
|
5
|
-
type SliderHandleLabelArrow = ReturnType<typeof SliderHandleLabelArrow>;
|
|
6
|
-
export default SliderHandleLabelArrow;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { getSliderContext } from "./index.js";
|
|
3
|
-
import type { ClassName } from "../utils.js";
|
|
4
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
5
|
-
import { twMerge } from "tailwind-merge";
|
|
6
|
-
|
|
7
|
-
export type SliderHandleLabelProps = {} & ClassName &
|
|
8
|
-
HTMLAttributes<HTMLDivElement>;
|
|
9
|
-
let { class: className, ...restProps }: SliderHandleLabelProps = $props();
|
|
10
|
-
|
|
11
|
-
const ctx = getSliderContext();
|
|
12
|
-
|
|
13
|
-
const showLabel = $derived(
|
|
14
|
-
!ctx.disabled &&
|
|
15
|
-
(ctx.labelAlwaysOn ||
|
|
16
|
-
ctx.clicked ||
|
|
17
|
-
ctx.hovered ||
|
|
18
|
-
ctx.dragging ||
|
|
19
|
-
ctx.focused),
|
|
20
|
-
);
|
|
21
|
-
</script>
|
|
22
|
-
|
|
23
|
-
{#if showLabel}
|
|
24
|
-
<div
|
|
25
|
-
role="tooltip"
|
|
26
|
-
class={twMerge(
|
|
27
|
-
"pointer-events-none absolute bottom-full left-1/2 mb-1 -translate-x-1/2 rounded-md border border-m3-outline-variant bg-m3-surface-container px-2 py-1 text-xs whitespace-nowrap text-m3-on-surface shadow-sm transition-opacity duration-200",
|
|
28
|
-
className,
|
|
29
|
-
)}
|
|
30
|
-
{...restProps}
|
|
31
|
-
>
|
|
32
|
-
{ctx.label}
|
|
33
|
-
{@render ctx.handleLabelArrowRenderer({})}
|
|
34
|
-
</div>
|
|
35
|
-
{/if}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { ClassName } from "../utils.js";
|
|
2
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
3
|
-
export type SliderHandleLabelProps = {} & ClassName & HTMLAttributes<HTMLDivElement>;
|
|
4
|
-
declare const SliderHandleLabel: import("svelte").Component<SliderHandleLabelProps, {}, "">;
|
|
5
|
-
type SliderHandleLabel = ReturnType<typeof SliderHandleLabel>;
|
|
6
|
-
export default SliderHandleLabel;
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
<script lang="ts" module>
|
|
2
|
-
import { mergeProps } from "../merge-props.js";
|
|
3
|
-
import { getSliderContext } from "./index.js";
|
|
4
|
-
import type { ClassName } from "../utils.js";
|
|
5
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
6
|
-
import { twMerge } from "tailwind-merge";
|
|
7
|
-
|
|
8
|
-
export type SliderHandleProps = {} & ClassName &
|
|
9
|
-
HTMLAttributes<HTMLDivElement>;
|
|
10
|
-
</script>
|
|
11
|
-
|
|
12
|
-
<script lang="ts">
|
|
13
|
-
let { class: className, ...restProps }: SliderHandleProps = $props();
|
|
14
|
-
|
|
15
|
-
const ctx = getSliderContext();
|
|
16
|
-
</script>
|
|
17
|
-
|
|
18
|
-
<div class="relative">
|
|
19
|
-
<div
|
|
20
|
-
class={twMerge(
|
|
21
|
-
"border-2 border-m3-surface shadow-md",
|
|
22
|
-
|
|
23
|
-
ctx.animated && "transition-all",
|
|
24
|
-
!ctx.disabled && "hover:scale-110 focus:scale-110 active:scale-110",
|
|
25
|
-
|
|
26
|
-
ctx.color === "primary" && "bg-m3-primary",
|
|
27
|
-
ctx.color === "secondary" && "bg-m3-secondary",
|
|
28
|
-
ctx.color === "tertiary" && "bg-m3-tertiary",
|
|
29
|
-
ctx.color === "error" && "bg-m3-error",
|
|
30
|
-
|
|
31
|
-
ctx.size === "xs" && "size-3",
|
|
32
|
-
ctx.size === "sm" && "size-4",
|
|
33
|
-
ctx.size === "md" && "size-5",
|
|
34
|
-
ctx.size === "lg" && "size-6",
|
|
35
|
-
ctx.size === "xl" && "size-7",
|
|
36
|
-
|
|
37
|
-
ctx.radius === "none" && "rounded-none",
|
|
38
|
-
ctx.radius === "xs" && "rounded-xs",
|
|
39
|
-
ctx.radius === "sm" && "rounded-sm",
|
|
40
|
-
ctx.radius === "md" && "rounded-lg",
|
|
41
|
-
ctx.radius === "lg" && "rounded-2xl",
|
|
42
|
-
ctx.radius === "xl" && "rounded-4xl",
|
|
43
|
-
ctx.radius === "full" && "rounded-full",
|
|
44
|
-
|
|
45
|
-
className,
|
|
46
|
-
)}
|
|
47
|
-
{...mergeProps(restProps, {
|
|
48
|
-
onpointerenter: () => (ctx.hovered = true),
|
|
49
|
-
onpointerleave: () => (ctx.hovered = false),
|
|
50
|
-
})}
|
|
51
|
-
></div>
|
|
52
|
-
|
|
53
|
-
{@render ctx.handleLabelRenderer({})}
|
|
54
|
-
</div>
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { ClassName } from "../utils.js";
|
|
2
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
3
|
-
export type SliderHandleProps = {} & ClassName & HTMLAttributes<HTMLDivElement>;
|
|
4
|
-
declare const SliderHandle: import("svelte").Component<SliderHandleProps, {}, "">;
|
|
5
|
-
type SliderHandle = ReturnType<typeof SliderHandle>;
|
|
6
|
-
export default SliderHandle;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { ClassName } from "../utils.js";
|
|
3
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
4
|
-
import { twMerge } from "tailwind-merge";
|
|
5
|
-
import { getSliderContext } from "./index.js";
|
|
6
|
-
|
|
7
|
-
export type SliderMarkDotProps = {} & ClassName &
|
|
8
|
-
HTMLAttributes<HTMLDivElement>;
|
|
9
|
-
let { class: className, ...restProps }: SliderMarkDotProps = $props();
|
|
10
|
-
const ctx = getSliderContext();
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<div
|
|
14
|
-
class={twMerge(
|
|
15
|
-
"rounded-full bg-m3-surface-container-lowest",
|
|
16
|
-
|
|
17
|
-
ctx.size === "sm" && "size-0.5",
|
|
18
|
-
ctx.size === "md" && "size-1",
|
|
19
|
-
ctx.size === "lg" && "size-1.5",
|
|
20
|
-
ctx.size === "xl" && "size-2",
|
|
21
|
-
|
|
22
|
-
className,
|
|
23
|
-
)}
|
|
24
|
-
{...restProps}
|
|
25
|
-
></div>
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { ClassName } from "../utils.js";
|
|
2
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
3
|
-
export type SliderMarkDotProps = {} & ClassName & HTMLAttributes<HTMLDivElement>;
|
|
4
|
-
declare const SliderMarkDot: import("svelte").Component<SliderMarkDotProps, {}, "">;
|
|
5
|
-
type SliderMarkDot = ReturnType<typeof SliderMarkDot>;
|
|
6
|
-
export default SliderMarkDot;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { mergeProps } from "../merge-props.js";
|
|
3
|
-
import type { ClassName } from "../utils.js";
|
|
4
|
-
import type { HTMLButtonAttributes } from "svelte/elements";
|
|
5
|
-
import { twMerge } from "tailwind-merge";
|
|
6
|
-
import { getSliderContext } from "./slider-context.svelte.js";
|
|
7
|
-
|
|
8
|
-
export type SliderMarkLabelProps = {
|
|
9
|
-
value: number;
|
|
10
|
-
label?: string;
|
|
11
|
-
} & ClassName &
|
|
12
|
-
HTMLButtonAttributes;
|
|
13
|
-
let {
|
|
14
|
-
value,
|
|
15
|
-
label,
|
|
16
|
-
class: className,
|
|
17
|
-
...restProps
|
|
18
|
-
}: SliderMarkLabelProps = $props();
|
|
19
|
-
|
|
20
|
-
const ctx = getSliderContext();
|
|
21
|
-
</script>
|
|
22
|
-
|
|
23
|
-
{#if label}
|
|
24
|
-
<button
|
|
25
|
-
class={twMerge(
|
|
26
|
-
"absolute top-full mt-2 text-xs whitespace-nowrap text-m3-on-surface-variant",
|
|
27
|
-
"left-1/2 -translate-x-1/2",
|
|
28
|
-
className,
|
|
29
|
-
)}
|
|
30
|
-
{...mergeProps(restProps, {
|
|
31
|
-
onpointerdown: (e: PointerEvent) => e.stopImmediatePropagation(),
|
|
32
|
-
onclick: () => (ctx.value = value),
|
|
33
|
-
})}
|
|
34
|
-
>
|
|
35
|
-
{label}
|
|
36
|
-
</button>
|
|
37
|
-
{/if}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { ClassName } from "../utils.js";
|
|
2
|
-
import type { HTMLButtonAttributes } from "svelte/elements";
|
|
3
|
-
export type SliderMarkLabelProps = {
|
|
4
|
-
value: number;
|
|
5
|
-
label?: string;
|
|
6
|
-
} & ClassName & HTMLButtonAttributes;
|
|
7
|
-
declare const SliderMarkLabel: import("svelte").Component<SliderMarkLabelProps, {}, "">;
|
|
8
|
-
type SliderMarkLabel = ReturnType<typeof SliderMarkLabel>;
|
|
9
|
-
export default SliderMarkLabel;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { ClassName } from "../utils.js";
|
|
3
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
4
|
-
import { twMerge } from "tailwind-merge";
|
|
5
|
-
import { getSliderContext } from "./index.js";
|
|
6
|
-
|
|
7
|
-
export type SliderMarkProps = {
|
|
8
|
-
value: number;
|
|
9
|
-
label?: string;
|
|
10
|
-
} & ClassName &
|
|
11
|
-
HTMLAttributes<HTMLDivElement>;
|
|
12
|
-
|
|
13
|
-
let {
|
|
14
|
-
value,
|
|
15
|
-
label,
|
|
16
|
-
class: className,
|
|
17
|
-
...restProps
|
|
18
|
-
}: SliderMarkProps = $props();
|
|
19
|
-
|
|
20
|
-
const ctx = getSliderContext();
|
|
21
|
-
</script>
|
|
22
|
-
|
|
23
|
-
<div
|
|
24
|
-
class={twMerge(
|
|
25
|
-
"absolute top-1/2 -translate-x-1/2 -translate-y-1/2",
|
|
26
|
-
className,
|
|
27
|
-
)}
|
|
28
|
-
style={`left: ${ctx.getPositionFromValue(value)}%`}
|
|
29
|
-
{...restProps}
|
|
30
|
-
>
|
|
31
|
-
{@render ctx.markDotRenderer({})}
|
|
32
|
-
{@render ctx.markLabelRenderer({ value, label })}
|
|
33
|
-
</div>
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { ClassName } from "../utils.js";
|
|
2
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
3
|
-
export type SliderMarkProps = {
|
|
4
|
-
value: number;
|
|
5
|
-
label?: string;
|
|
6
|
-
} & ClassName & HTMLAttributes<HTMLDivElement>;
|
|
7
|
-
declare const SliderMark: import("svelte").Component<SliderMarkProps, {}, "">;
|
|
8
|
-
type SliderMark = ReturnType<typeof SliderMark>;
|
|
9
|
-
export default SliderMark;
|
|
@@ -1,52 +0,0 @@
|
|
|
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>
|
|
@@ -1,7 +0,0 @@
|
|
|
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,9 +0,0 @@
|
|
|
1
|
-
export declare class ToggleContext<T> {
|
|
2
|
-
#private;
|
|
3
|
-
setValue: (val: T | undefined) => void;
|
|
4
|
-
constructor(getValue: () => T | undefined, setValue: (val: T | undefined) => void);
|
|
5
|
-
get value(): T | undefined;
|
|
6
|
-
set value(value: T | undefined);
|
|
7
|
-
}
|
|
8
|
-
export declare function setToggleContext<T>(ctx: ToggleContext<T>): ToggleContext<T>;
|
|
9
|
-
export declare function getToggleContext<T>(): ToggleContext<T>;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { getContext, setContext } from "svelte";
|
|
2
|
-
export class ToggleContext {
|
|
3
|
-
#value = $state(undefined);
|
|
4
|
-
setValue;
|
|
5
|
-
constructor(getValue, setValue) {
|
|
6
|
-
this.#value = getValue();
|
|
7
|
-
this.setValue = setValue;
|
|
8
|
-
$effect(() => {
|
|
9
|
-
if (this.#value !== getValue()) {
|
|
10
|
-
this.#value = getValue();
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
get value() {
|
|
15
|
-
return this.#value;
|
|
16
|
-
}
|
|
17
|
-
set value(value) {
|
|
18
|
-
if (this.#value !== value) {
|
|
19
|
-
this.#value = value;
|
|
20
|
-
this.setValue(value);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
export function setToggleContext(ctx) {
|
|
25
|
-
return setContext(ToggleContext, ctx);
|
|
26
|
-
}
|
|
27
|
-
export function getToggleContext() {
|
|
28
|
-
const ctx = getContext(ToggleContext);
|
|
29
|
-
if (!ctx)
|
|
30
|
-
throw new Error("ToggleContext is undefined");
|
|
31
|
-
return ctx;
|
|
32
|
-
}
|