@geoffcox/sterling-svelte 0.0.15 → 0.0.17
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/@types/clickOutside.d.ts +9 -3
- package/{buttons/Button.svelte → Button.svelte} +27 -27
- package/{inputs/Checkbox.svelte → Checkbox.svelte} +16 -16
- package/{surfaces/Dialog.svelte → Dialog.svelte} +34 -21
- package/{inputs/Input.svelte → Input.svelte} +22 -22
- package/Label.svelte +52 -0
- package/Label.svelte.d.ts +42 -0
- package/List.constants.d.ts +1 -0
- package/List.constants.js +1 -0
- package/List.svelte +324 -0
- package/List.svelte.d.ts +69 -0
- package/List.types.d.ts +6 -0
- package/ListItem.svelte +90 -0
- package/ListItem.svelte.d.ts +51 -0
- package/Menu.svelte +115 -0
- package/Menu.svelte.d.ts +20 -0
- package/MenuBar.svelte +97 -0
- package/MenuBar.svelte.d.ts +43 -0
- package/MenuButton.svelte +102 -0
- package/MenuButton.svelte.d.ts +54 -0
- package/MenuItem.svelte +338 -0
- package/MenuItem.svelte.d.ts +61 -0
- package/MenuItemDisplay.svelte +97 -0
- package/MenuItemDisplay.svelte.d.ts +21 -0
- package/MenuSeparator.svelte +42 -0
- package/MenuSeparator.svelte.d.ts +76 -0
- package/Menus.constants.d.ts +2 -0
- package/Menus.constants.js +2 -0
- package/Menus.types.d.ts +22 -0
- package/Menus.utils.d.ts +5 -0
- package/Menus.utils.js +20 -0
- package/Portal.svelte +14 -0
- package/Portal.svelte.d.ts +21 -0
- package/{display/Progress.svelte → Progress.svelte} +14 -14
- package/{inputs/Radio.svelte → Radio.svelte} +15 -15
- package/{inputs/Select.svelte → Select.svelte} +96 -102
- package/{inputs/Select.svelte.d.ts → Select.svelte.d.ts} +20 -25
- package/{inputs/Slider.svelte → Slider.svelte} +49 -24
- package/{inputs/Slider.svelte.d.ts → Slider.svelte.d.ts} +25 -0
- package/{inputs/Switch.svelte → Switch.svelte} +38 -38
- package/Tab.svelte +181 -0
- package/{containers/Tab.svelte.d.ts → Tab.svelte.d.ts} +12 -15
- package/TabList.svelte +247 -0
- package/{containers/TabList.svelte.d.ts → TabList.svelte.d.ts} +21 -21
- package/TabList.types.d.ts +7 -0
- package/{inputs/TextArea.svelte → TextArea.svelte} +23 -23
- package/TextArea.types.js +1 -0
- package/Tooltip.svelte +182 -0
- package/Tooltip.svelte.d.ts +24 -0
- package/Tooltip.types.d.ts +3 -0
- package/Tooltip.types.js +1 -0
- package/Tree.constants.d.ts +2 -0
- package/Tree.constants.js +2 -0
- package/Tree.svelte +142 -0
- package/Tree.svelte.d.ts +25 -0
- package/Tree.types.d.ts +28 -0
- package/Tree.types.js +1 -0
- package/{containers/TreeChevron.svelte → TreeChevron.svelte} +3 -3
- package/TreeItem.svelte +276 -0
- package/TreeItem.svelte.d.ts +65 -0
- package/{containers/TreeItem.svelte → TreeItemDisplay.svelte} +18 -18
- package/{containers/TreeItem.svelte.d.ts → TreeItemDisplay.svelte.d.ts} +11 -14
- package/{clickOutside.js → actions/clickOutside.js} +3 -1
- package/actions/forwardEvents.d.ts +12 -0
- package/actions/forwardEvents.js +32 -0
- package/actions/portal.d.ts +8 -0
- package/actions/portal.js +19 -0
- package/index.d.ts +42 -24
- package/index.js +39 -19
- package/package.json +45 -29
- package/theme/darkTheme.js +66 -74
- package/theme/lightTheme.js +66 -74
- package/containers/List.svelte +0 -249
- package/containers/List.svelte.d.ts +0 -68
- package/containers/ListItem.svelte +0 -48
- package/containers/ListItem.svelte.d.ts +0 -26
- package/containers/Tab.svelte +0 -327
- package/containers/TabList.svelte +0 -126
- package/containers/Tabs.types.d.ts +0 -12
- package/containers/Tree.constants.d.ts +0 -2
- package/containers/Tree.constants.js +0 -2
- package/containers/Tree.svelte +0 -222
- package/containers/Tree.svelte.d.ts +0 -50
- package/containers/Tree.types.d.ts +0 -47
- package/containers/TreeNode.svelte +0 -267
- package/containers/TreeNode.svelte.d.ts +0 -43
- package/display/Label.svelte +0 -27
- package/display/Label.svelte.d.ts +0 -20
- package/surfaces/CloseX.svelte +0 -5
- package/surfaces/CloseX.svelte.d.ts +0 -23
- /package/{buttons/Button.svelte.d.ts → Button.svelte.d.ts} +0 -0
- /package/{buttons/Button.types.d.ts → Button.types.d.ts} +0 -0
- /package/{buttons/Button.types.js → Button.types.js} +0 -0
- /package/{inputs/Checkbox.svelte.d.ts → Checkbox.svelte.d.ts} +0 -0
- /package/{surfaces/Dialog.svelte.d.ts → Dialog.svelte.d.ts} +0 -0
- /package/{inputs/Input.svelte.d.ts → Input.svelte.d.ts} +0 -0
- /package/{containers/Tabs.types.js → List.types.js} +0 -0
- /package/{containers/Tree.types.js → Menus.types.js} +0 -0
- /package/{display/Progress.svelte.d.ts → Progress.svelte.d.ts} +0 -0
- /package/{display/Progress.types.d.ts → Progress.types.d.ts} +0 -0
- /package/{display/Progress.types.js → Progress.types.js} +0 -0
- /package/{inputs/Radio.svelte.d.ts → Radio.svelte.d.ts} +0 -0
- /package/{inputs/Switch.svelte.d.ts → Switch.svelte.d.ts} +0 -0
- /package/{containers/Tabs.constants.d.ts → TabList.constants.d.ts} +0 -0
- /package/{containers/Tabs.constants.js → TabList.constants.js} +0 -0
- /package/{inputs/TextArea.types.js → TabList.types.js} +0 -0
- /package/{inputs/TextArea.svelte.d.ts → TextArea.svelte.d.ts} +0 -0
- /package/{inputs/TextArea.types.d.ts → TextArea.types.d.ts} +0 -0
- /package/{containers/TreeChevron.svelte.d.ts → TreeChevron.svelte.d.ts} +0 -0
- /package/{clickOutside.d.ts → actions/clickOutside.d.ts} +0 -0
|
@@ -1,50 +1,48 @@
|
|
|
1
|
-
<script>import {
|
|
1
|
+
<script>import { computePosition, flip, offset, shift, autoUpdate } from "@floating-ui/dom";
|
|
2
|
+
import { createEventDispatcher, onMount, tick } from "svelte";
|
|
2
3
|
import { v4 as uuid } from "uuid";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
import { clickOutside } from "./actions/clickOutside";
|
|
5
|
+
import Label from "./Label.svelte";
|
|
6
|
+
import List from "./List.svelte";
|
|
7
|
+
const inputId = uuid();
|
|
8
|
+
const popupId = uuid();
|
|
8
9
|
export let disabled = false;
|
|
9
|
-
export let items = [];
|
|
10
10
|
export let open = false;
|
|
11
|
-
export let
|
|
12
|
-
export let selectedItem = void 0;
|
|
13
|
-
$: {
|
|
14
|
-
selectedItem = items[selectedIndex];
|
|
15
|
-
}
|
|
16
|
-
const inputId = uuid();
|
|
11
|
+
export let selectedValue = void 0;
|
|
17
12
|
let prevOpen = false;
|
|
18
|
-
let
|
|
13
|
+
let pendingSelectedValue = selectedValue;
|
|
19
14
|
let selectRef;
|
|
20
15
|
let popupRef;
|
|
21
16
|
let listRef;
|
|
22
|
-
const popupId = uuid();
|
|
23
17
|
let popupPosition = {
|
|
24
18
|
x: void 0,
|
|
25
19
|
y: void 0
|
|
26
20
|
};
|
|
27
21
|
const dispatch = createEventDispatcher();
|
|
28
|
-
const
|
|
29
|
-
dispatch("
|
|
22
|
+
const raiseSelect = (value) => {
|
|
23
|
+
dispatch("select", { value });
|
|
30
24
|
};
|
|
31
|
-
const
|
|
32
|
-
dispatch("
|
|
25
|
+
const raisePending = (value) => {
|
|
26
|
+
dispatch("pending", { value });
|
|
33
27
|
};
|
|
34
|
-
$:
|
|
35
|
-
selectedIndex, () => {
|
|
36
|
-
pendingSelectedIndex = selectedIndex;
|
|
37
|
-
};
|
|
38
28
|
$: {
|
|
39
|
-
|
|
29
|
+
pendingSelectedValue = selectedValue;
|
|
30
|
+
}
|
|
31
|
+
$: {
|
|
32
|
+
raiseSelect(selectedValue);
|
|
40
33
|
}
|
|
41
34
|
$: {
|
|
42
|
-
|
|
35
|
+
if (open) {
|
|
36
|
+
raisePending(pendingSelectedValue);
|
|
37
|
+
}
|
|
43
38
|
}
|
|
44
39
|
$: {
|
|
45
40
|
if (open && !prevOpen) {
|
|
46
41
|
prevOpen = true;
|
|
47
|
-
tick().then(() =>
|
|
42
|
+
tick().then(() => {
|
|
43
|
+
listRef?.focus();
|
|
44
|
+
listRef?.scrollToSelectedItem();
|
|
45
|
+
});
|
|
48
46
|
} else if (prevOpen) {
|
|
49
47
|
prevOpen = false;
|
|
50
48
|
tick().then(() => selectRef?.focus());
|
|
@@ -76,23 +74,36 @@ const onSelectKeydown = (event) => {
|
|
|
76
74
|
switch (event.key) {
|
|
77
75
|
case " ":
|
|
78
76
|
{
|
|
79
|
-
|
|
77
|
+
if (!open) {
|
|
78
|
+
open = true;
|
|
79
|
+
}
|
|
80
80
|
event.preventDefault();
|
|
81
81
|
event.stopPropagation();
|
|
82
|
+
return false;
|
|
82
83
|
}
|
|
83
84
|
break;
|
|
84
85
|
case "ArrowUp":
|
|
85
86
|
{
|
|
86
|
-
|
|
87
|
+
if (selectedValue) {
|
|
88
|
+
listRef.selectPreviousItem();
|
|
89
|
+
} else {
|
|
90
|
+
listRef.selectLastItem();
|
|
91
|
+
}
|
|
87
92
|
event.preventDefault();
|
|
88
93
|
event.stopPropagation();
|
|
94
|
+
return false;
|
|
89
95
|
}
|
|
90
96
|
break;
|
|
91
97
|
case "ArrowDown":
|
|
92
98
|
{
|
|
93
|
-
|
|
99
|
+
if (selectedValue) {
|
|
100
|
+
listRef.selectNextItem();
|
|
101
|
+
} else {
|
|
102
|
+
listRef.selectFirstItem();
|
|
103
|
+
}
|
|
94
104
|
event.preventDefault();
|
|
95
105
|
event.stopPropagation();
|
|
106
|
+
return false;
|
|
96
107
|
}
|
|
97
108
|
break;
|
|
98
109
|
}
|
|
@@ -103,35 +114,35 @@ const onListKeydown = (event) => {
|
|
|
103
114
|
switch (event.key) {
|
|
104
115
|
case "Enter":
|
|
105
116
|
{
|
|
106
|
-
|
|
117
|
+
selectedValue = pendingSelectedValue;
|
|
107
118
|
open = !open;
|
|
108
119
|
event.preventDefault();
|
|
109
120
|
event.stopPropagation();
|
|
121
|
+
return false;
|
|
110
122
|
}
|
|
111
123
|
break;
|
|
112
124
|
case "Escape":
|
|
113
125
|
{
|
|
114
|
-
|
|
126
|
+
pendingSelectedValue = selectedValue;
|
|
115
127
|
open = !open;
|
|
116
128
|
event.preventDefault();
|
|
117
129
|
event.stopPropagation();
|
|
130
|
+
return false;
|
|
118
131
|
}
|
|
119
132
|
break;
|
|
120
133
|
}
|
|
121
134
|
}
|
|
122
135
|
};
|
|
123
136
|
const onListClick = (event) => {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
event.stopPropagation();
|
|
129
|
-
}
|
|
137
|
+
open = false;
|
|
138
|
+
event.preventDefault();
|
|
139
|
+
event.stopPropagation();
|
|
140
|
+
return false;
|
|
130
141
|
};
|
|
131
|
-
const
|
|
132
|
-
|
|
142
|
+
const onListSelect = (event) => {
|
|
143
|
+
pendingSelectedValue = event.detail.value;
|
|
133
144
|
if (!open) {
|
|
134
|
-
|
|
145
|
+
selectedValue = pendingSelectedValue;
|
|
135
146
|
}
|
|
136
147
|
};
|
|
137
148
|
</script>
|
|
@@ -142,7 +153,6 @@ A single item that can be selected from a popup list of items.
|
|
|
142
153
|
-->
|
|
143
154
|
<div
|
|
144
155
|
bind:this={selectRef}
|
|
145
|
-
use:clickOutside
|
|
146
156
|
aria-controls={popupId}
|
|
147
157
|
aria-haspopup="listbox"
|
|
148
158
|
aria-expanded={open}
|
|
@@ -150,8 +160,7 @@ A single item that can be selected from a popup list of items.
|
|
|
150
160
|
class:disabled
|
|
151
161
|
role="combobox"
|
|
152
162
|
tabindex="0"
|
|
153
|
-
|
|
154
|
-
on:click={onSelectClick}
|
|
163
|
+
use:clickOutside
|
|
155
164
|
on:blur
|
|
156
165
|
on:click
|
|
157
166
|
on:copy
|
|
@@ -160,7 +169,6 @@ A single item that can be selected from a popup list of items.
|
|
|
160
169
|
on:focus
|
|
161
170
|
on:focusin
|
|
162
171
|
on:focusout
|
|
163
|
-
on:keydown={onSelectKeydown}
|
|
164
172
|
on:keydown
|
|
165
173
|
on:keypress
|
|
166
174
|
on:keyup
|
|
@@ -173,24 +181,24 @@ A single item that can be selected from a popup list of items.
|
|
|
173
181
|
on:mouseup
|
|
174
182
|
on:wheel
|
|
175
183
|
on:paste
|
|
184
|
+
on:click={onSelectClick}
|
|
185
|
+
on:click_outside={() => (open = false)}
|
|
186
|
+
on:keydown={onSelectKeydown}
|
|
176
187
|
{...$$restProps}
|
|
177
188
|
>
|
|
178
189
|
{#if $$slots.label}
|
|
179
190
|
<Label {disabled} for={inputId}>
|
|
180
|
-
|
|
181
|
-
It seems that when a default slot is used multiple times in a module,
|
|
182
|
-
the first time sets the possible let params.
|
|
183
|
-
If we don't define the same let params on this label slot that
|
|
184
|
-
is the default slot for label, then using the default slot for list
|
|
185
|
-
will error saying the property is not defined.
|
|
186
|
-
-->
|
|
187
|
-
<slot name="label" index={0} item={undefined} selected={false} />
|
|
191
|
+
<slot name="label" {disabled} {selectedValue} />
|
|
188
192
|
</Label>
|
|
189
193
|
{/if}
|
|
190
194
|
<div class="input" id={inputId}>
|
|
191
195
|
<div class="value">
|
|
192
|
-
<slot name="value">
|
|
193
|
-
{
|
|
196
|
+
<slot name="value" {disabled} {open} {selectedValue}>
|
|
197
|
+
{#if selectedValue}
|
|
198
|
+
{selectedValue}
|
|
199
|
+
{:else}
|
|
200
|
+
<span> </span>
|
|
201
|
+
{/if}
|
|
194
202
|
</slot>
|
|
195
203
|
</div>
|
|
196
204
|
<div class="button">
|
|
@@ -207,69 +215,54 @@ A single item that can be selected from a popup list of items.
|
|
|
207
215
|
style="left:{popupPosition.x}px; top:{popupPosition.y}px"
|
|
208
216
|
>
|
|
209
217
|
<div class="popup-content">
|
|
210
|
-
<
|
|
211
|
-
{
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
<svelte:fragment let:disabled let:index let:item let:selected>
|
|
222
|
-
<slot {disabled} {index} {item} {selected} />
|
|
223
|
-
</svelte:fragment>
|
|
224
|
-
</List>
|
|
225
|
-
{:else}
|
|
226
|
-
<List
|
|
227
|
-
bind:this={listRef}
|
|
228
|
-
selectedIndex={pendingSelectedIndex}
|
|
229
|
-
{items}
|
|
230
|
-
{disabled}
|
|
231
|
-
on:click={onListClick}
|
|
232
|
-
on:keydown={onListKeydown}
|
|
233
|
-
on:itemSelected={onPendingItemSelected}
|
|
234
|
-
/>
|
|
235
|
-
{/if}
|
|
236
|
-
</slot>
|
|
218
|
+
<List
|
|
219
|
+
bind:this={listRef}
|
|
220
|
+
{disabled}
|
|
221
|
+
selectedValue={pendingSelectedValue}
|
|
222
|
+
on:click={onListClick}
|
|
223
|
+
on:keydown={onListKeydown}
|
|
224
|
+
on:select={onListSelect}
|
|
225
|
+
tabIndex={open ? 0 : -1}
|
|
226
|
+
>
|
|
227
|
+
<slot />
|
|
228
|
+
</List>
|
|
237
229
|
</div>
|
|
238
230
|
</div>
|
|
239
231
|
</div>
|
|
240
232
|
|
|
241
233
|
<style>
|
|
242
234
|
.sterling-select {
|
|
243
|
-
background-color: var(--Input__background-color);
|
|
244
|
-
border-color: var(--Input__border-color);
|
|
245
|
-
border-radius: var(--Input__border-radius);
|
|
246
|
-
border-style: var(--Input__border-style);
|
|
247
|
-
border-width: var(--Input__border-width);
|
|
248
|
-
color: var(--Input__color);
|
|
235
|
+
background-color: var(--stsv-Input__background-color);
|
|
236
|
+
border-color: var(--stsv-Input__border-color);
|
|
237
|
+
border-radius: var(--stsv-Input__border-radius);
|
|
238
|
+
border-style: var(--stsv-Input__border-style);
|
|
239
|
+
border-width: var(--stsv-Input__border-width);
|
|
240
|
+
color: var(--stsv-Input__color);
|
|
241
|
+
cursor: pointer;
|
|
249
242
|
padding: 0;
|
|
250
243
|
transition: background-color 250ms, color 250ms, border-color 250ms;
|
|
251
244
|
}
|
|
252
245
|
|
|
253
246
|
.sterling-select:hover {
|
|
254
|
-
background-color: var(--Input__background-color--hover);
|
|
255
|
-
border-color: var(--Input__border-color--hover);
|
|
256
|
-
color: var(--Input__color--hover);
|
|
247
|
+
background-color: var(--stsv-Input__background-color--hover);
|
|
248
|
+
border-color: var(--stsv-Input__border-color--hover);
|
|
249
|
+
color: var(--stsv-Input__color--hover);
|
|
257
250
|
}
|
|
258
251
|
|
|
259
|
-
.sterling-select:focus-
|
|
260
|
-
background-color: var(--Input__background-color--focus);
|
|
261
|
-
border-color: var(--Input__border-color--focus);
|
|
262
|
-
color: var(--Input__color--focus);
|
|
263
|
-
outline-color: var(--Common__outline-color);
|
|
264
|
-
outline-offset: var(--Common__outline-offset);
|
|
265
|
-
outline-style: var(--Common__outline-style);
|
|
266
|
-
outline-width: var(--Common__outline-width);
|
|
252
|
+
.sterling-select:focus-visible {
|
|
253
|
+
background-color: var(--stsv-Input__background-color--focus);
|
|
254
|
+
border-color: var(--stsv-Input__border-color--focus);
|
|
255
|
+
color: var(--stsv-Input__color--focus);
|
|
256
|
+
outline-color: var(--stsv-Common__outline-color);
|
|
257
|
+
outline-offset: var(--stsv-Common__outline-offset);
|
|
258
|
+
outline-style: var(--stsv-Common__outline-style);
|
|
259
|
+
outline-width: var(--stsv-Common__outline-width);
|
|
267
260
|
}
|
|
268
261
|
|
|
269
262
|
.sterling-select.disabled {
|
|
270
|
-
background-color: var(--
|
|
271
|
-
border-color: var(
|
|
272
|
-
color: var(--
|
|
263
|
+
background-color: var(--stsv-Common__background-color--disabled);
|
|
264
|
+
border-color: var(--stsv--Common__border-color--disabled);
|
|
265
|
+
color: var(--stsv-Common__color--disabled);
|
|
273
266
|
cursor: not-allowed;
|
|
274
267
|
outline: none;
|
|
275
268
|
}
|
|
@@ -332,9 +325,10 @@ A single item that can be selected from a popup list of items.
|
|
|
332
325
|
}
|
|
333
326
|
|
|
334
327
|
.popup {
|
|
328
|
+
background-color: var(--stsv-Common__background-color);
|
|
335
329
|
box-sizing: border-box;
|
|
336
330
|
display: none;
|
|
337
|
-
overflow:
|
|
331
|
+
overflow: visible;
|
|
338
332
|
position: absolute;
|
|
339
333
|
box-shadow: rgba(0, 0, 0, 0.4) 2px 2px 4px -1px;
|
|
340
334
|
width: fit-content;
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { SvelteComponentTyped } from "svelte";
|
|
2
|
-
declare
|
|
3
|
-
props
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
4
|
[x: string]: any;
|
|
5
5
|
disabled?: boolean | undefined;
|
|
6
|
-
items?: T[] | undefined;
|
|
7
6
|
open?: boolean | undefined;
|
|
8
|
-
|
|
9
|
-
selectedItem?: T | undefined;
|
|
7
|
+
selectedValue?: string | undefined;
|
|
10
8
|
};
|
|
11
|
-
events
|
|
9
|
+
events: {
|
|
12
10
|
blur: FocusEvent;
|
|
13
11
|
click: MouseEvent;
|
|
14
12
|
copy: ClipboardEvent;
|
|
@@ -29,34 +27,31 @@ declare class __sveltets_Render<T> {
|
|
|
29
27
|
mouseup: MouseEvent;
|
|
30
28
|
wheel: WheelEvent;
|
|
31
29
|
paste: ClipboardEvent;
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
select: CustomEvent<any>;
|
|
31
|
+
pending: CustomEvent<any>;
|
|
34
32
|
} & {
|
|
35
33
|
[evt: string]: CustomEvent<any>;
|
|
36
34
|
};
|
|
37
|
-
slots
|
|
35
|
+
slots: {
|
|
38
36
|
label: {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
selected: boolean;
|
|
37
|
+
disabled: boolean;
|
|
38
|
+
selectedValue: string | undefined;
|
|
42
39
|
};
|
|
43
|
-
value: {
|
|
44
|
-
|
|
40
|
+
value: {
|
|
41
|
+
disabled: boolean;
|
|
45
42
|
open: boolean;
|
|
43
|
+
selectedValue: string | undefined;
|
|
46
44
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
disabled: boolean;
|
|
50
|
-
index: any;
|
|
51
|
-
item: any;
|
|
52
|
-
selected: any;
|
|
45
|
+
button: {
|
|
46
|
+
open: boolean;
|
|
53
47
|
};
|
|
48
|
+
default: {};
|
|
54
49
|
};
|
|
55
|
-
}
|
|
56
|
-
export type SelectProps
|
|
57
|
-
export type SelectEvents
|
|
58
|
-
export type SelectSlots
|
|
50
|
+
};
|
|
51
|
+
export type SelectProps = typeof __propDef.props;
|
|
52
|
+
export type SelectEvents = typeof __propDef.events;
|
|
53
|
+
export type SelectSlots = typeof __propDef.slots;
|
|
59
54
|
/** A single item that can be selected from a popup list of items. */
|
|
60
|
-
export default class Select
|
|
55
|
+
export default class Select extends SvelteComponentTyped<SelectProps, SelectEvents, SelectSlots> {
|
|
61
56
|
}
|
|
62
57
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script>import { createEventDispatcher } from "svelte";
|
|
2
2
|
import { round } from "lodash-es";
|
|
3
3
|
import { v4 as uuid } from "uuid";
|
|
4
|
-
import Label from "
|
|
4
|
+
import Label from "./Label.svelte";
|
|
5
5
|
export let value = 0;
|
|
6
6
|
export let min = 0;
|
|
7
7
|
export let max = 100;
|
|
@@ -141,11 +141,36 @@ Slider lets the user chose a value within a min/max range by dragging a thumb bu
|
|
|
141
141
|
aria-valuenow={value}
|
|
142
142
|
aria-valuemax={max}
|
|
143
143
|
tabindex={!disabled ? 0 : undefined}
|
|
144
|
-
|
|
144
|
+
on:blur
|
|
145
|
+
on:click
|
|
146
|
+
on:dblclick
|
|
147
|
+
on:focus
|
|
148
|
+
on:focusin
|
|
149
|
+
on:focusout
|
|
150
|
+
on:keydown
|
|
145
151
|
on:keydown={onKeyDown}
|
|
152
|
+
on:keypress
|
|
153
|
+
on:keyup
|
|
154
|
+
on:mousedown
|
|
155
|
+
on:mouseenter
|
|
156
|
+
on:mouseleave
|
|
157
|
+
on:mousemove
|
|
158
|
+
on:mouseover
|
|
159
|
+
on:mouseout
|
|
160
|
+
on:mouseup
|
|
161
|
+
on:pointercancel
|
|
162
|
+
on:pointerdown
|
|
146
163
|
on:pointerdown={onPointerDown}
|
|
164
|
+
on:pointerenter
|
|
165
|
+
on:pointerleave
|
|
166
|
+
on:pointermove
|
|
147
167
|
on:pointermove={onPointerMove}
|
|
168
|
+
on:pointerover
|
|
169
|
+
on:pointerout
|
|
170
|
+
on:pointerup
|
|
148
171
|
on:pointerup={onPointerUp}
|
|
172
|
+
on:wheel
|
|
173
|
+
{...$$restProps}
|
|
149
174
|
>
|
|
150
175
|
<div
|
|
151
176
|
class="container"
|
|
@@ -191,24 +216,24 @@ Slider lets the user chose a value within a min/max range by dragging a thumb bu
|
|
|
191
216
|
|
|
192
217
|
.track {
|
|
193
218
|
position: absolute;
|
|
194
|
-
background: var(--Display__background-color);
|
|
219
|
+
background: var(--stsv-Display__background-color);
|
|
195
220
|
transition: background-color 250ms, color 250ms, border-color 250ms;
|
|
196
221
|
}
|
|
197
222
|
|
|
198
223
|
.fill {
|
|
199
|
-
background: var(--Display__color);
|
|
224
|
+
background: var(--stsv-Display__color);
|
|
200
225
|
position: absolute;
|
|
201
226
|
transition: background-color 250ms, color 250ms, border-color 250ms;
|
|
202
227
|
}
|
|
203
228
|
|
|
204
229
|
.thumb {
|
|
205
|
-
background-color: var(--Button__background-color);
|
|
206
|
-
border-color: var(--Button__border-color);
|
|
230
|
+
background-color: var(--stsv-Button__background-color);
|
|
231
|
+
border-color: var(--stsv-Button__border-color);
|
|
207
232
|
border-radius: 10000px;
|
|
208
|
-
border-style: var(--Button__border-style);
|
|
209
|
-
border-width: var(--Button__border-width);
|
|
233
|
+
border-style: var(--stsv-Button__border-style);
|
|
234
|
+
border-width: var(--stsv-Button__border-width);
|
|
210
235
|
box-sizing: border-box;
|
|
211
|
-
color: var(--Button__color);
|
|
236
|
+
color: var(--stsv-Button__color);
|
|
212
237
|
cursor: pointer;
|
|
213
238
|
display: block;
|
|
214
239
|
font: inherit;
|
|
@@ -283,40 +308,40 @@ Slider lets the user chose a value within a min/max range by dragging a thumb bu
|
|
|
283
308
|
/* ----- hover ----- */
|
|
284
309
|
|
|
285
310
|
.thumb:hover {
|
|
286
|
-
background-color: var(--Button__background-color--hover);
|
|
287
|
-
border-color: var(--Button__border-color--hover);
|
|
288
|
-
color: var(--Button__color--hover);
|
|
311
|
+
background-color: var(--stsv-Button__background-color--hover);
|
|
312
|
+
border-color: var(--stsv-Button__border-color--hover);
|
|
313
|
+
color: var(--stsv-Button__color--hover);
|
|
289
314
|
}
|
|
290
315
|
|
|
291
316
|
/* ----- active ----- */
|
|
292
317
|
|
|
293
318
|
.thumb:active {
|
|
294
|
-
background-color: var(--Button__background-color--active);
|
|
295
|
-
border-color: var(--Button__border-color--active);
|
|
296
|
-
color: var(--Button__color--active);
|
|
319
|
+
background-color: var(--stsv-Button__background-color--active);
|
|
320
|
+
border-color: var(--stsv-Button__border-color--active);
|
|
321
|
+
color: var(--stsv-Button__color--active);
|
|
297
322
|
}
|
|
298
323
|
|
|
299
324
|
/* ----- focus ----- */
|
|
300
325
|
.slider:focus-visible {
|
|
301
|
-
outline-color: var(--Common__outline-color);
|
|
302
|
-
outline-offset: var(--Common__outline-offset);
|
|
303
|
-
outline-style: var(--Common__outline-style);
|
|
304
|
-
outline-width: var(--Common__outline-width);
|
|
326
|
+
outline-color: var(--stsv-Common__outline-color);
|
|
327
|
+
outline-offset: var(--stsv-Common__outline-offset);
|
|
328
|
+
outline-style: var(--stsv-Common__outline-style);
|
|
329
|
+
outline-width: var(--stsv-Common__outline-width);
|
|
305
330
|
}
|
|
306
331
|
/* ----- disabled ----- */
|
|
307
332
|
|
|
308
333
|
.slider.disabled .track {
|
|
309
|
-
background: var(--Common__background-color--disabled);
|
|
334
|
+
background: var(--stsv-Common__background-color--disabled);
|
|
310
335
|
}
|
|
311
336
|
|
|
312
337
|
.slider.disabled .fill {
|
|
313
|
-
background: var(--Common__color--disabled);
|
|
338
|
+
background: var(--stsv-Common__color--disabled);
|
|
314
339
|
}
|
|
315
340
|
|
|
316
341
|
.slider.disabled .thumb {
|
|
317
|
-
background-color: var(--Common__background-color--disabled);
|
|
318
|
-
border-color: var(--Common__border-color--disabled);
|
|
319
|
-
color: var(--Common__color--disabled);
|
|
342
|
+
background-color: var(--stsv-Common__background-color--disabled);
|
|
343
|
+
border-color: var(--stsv-Common__border-color--disabled);
|
|
344
|
+
color: var(--stsv-Common__color--disabled);
|
|
320
345
|
cursor: not-allowed;
|
|
321
346
|
}
|
|
322
347
|
|
|
@@ -11,6 +11,31 @@ declare const __propDef: {
|
|
|
11
11
|
disabled?: boolean | undefined;
|
|
12
12
|
};
|
|
13
13
|
events: {
|
|
14
|
+
blur: FocusEvent;
|
|
15
|
+
click: MouseEvent;
|
|
16
|
+
dblclick: MouseEvent;
|
|
17
|
+
focus: FocusEvent;
|
|
18
|
+
focusin: FocusEvent;
|
|
19
|
+
focusout: FocusEvent;
|
|
20
|
+
keydown: KeyboardEvent;
|
|
21
|
+
keypress: KeyboardEvent;
|
|
22
|
+
keyup: KeyboardEvent;
|
|
23
|
+
mousedown: MouseEvent;
|
|
24
|
+
mouseenter: MouseEvent;
|
|
25
|
+
mouseleave: MouseEvent;
|
|
26
|
+
mousemove: MouseEvent;
|
|
27
|
+
mouseover: MouseEvent;
|
|
28
|
+
mouseout: MouseEvent;
|
|
29
|
+
mouseup: MouseEvent;
|
|
30
|
+
pointercancel: PointerEvent;
|
|
31
|
+
pointerdown: PointerEvent;
|
|
32
|
+
pointerenter: PointerEvent;
|
|
33
|
+
pointerleave: PointerEvent;
|
|
34
|
+
pointermove: PointerEvent;
|
|
35
|
+
pointerover: PointerEvent;
|
|
36
|
+
pointerout: PointerEvent;
|
|
37
|
+
pointerup: PointerEvent;
|
|
38
|
+
wheel: WheelEvent;
|
|
14
39
|
change: CustomEvent<any>;
|
|
15
40
|
} & {
|
|
16
41
|
[evt: string]: CustomEvent<any>;
|