@geoffcox/sterling-svelte 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/Button.svelte +81 -25
- package/Button.svelte.d.ts +3 -0
- package/Checkbox.svelte +56 -26
- package/Checkbox.svelte.d.ts +2 -0
- package/ColorPicker.constants.d.ts +1 -0
- package/ColorPicker.constants.js +1 -0
- package/ColorPicker.svelte +257 -0
- package/ColorPicker.svelte.d.ts +49 -0
- package/ColorPicker.types.d.ts +4 -0
- package/Dialog.svelte +10 -10
- package/Dropdown.svelte +97 -58
- package/Dropdown.svelte.d.ts +4 -0
- package/HexColorSliders.svelte +171 -0
- package/HexColorSliders.svelte.d.ts +22 -0
- package/HslColorSliders.svelte +208 -0
- package/HslColorSliders.svelte.d.ts +22 -0
- package/Input.svelte +59 -25
- package/Input.svelte.d.ts +3 -2
- package/Label.constants.d.ts +1 -0
- package/Label.constants.js +1 -0
- package/Label.svelte +212 -14
- package/Label.svelte.d.ts +24 -4
- package/Label.types.d.ts +4 -0
- package/Label.types.js +1 -0
- package/Link.svelte +62 -16
- package/Link.svelte.d.ts +1 -0
- package/List.svelte +29 -16
- package/List.svelte.d.ts +1 -0
- package/List.types.d.ts +4 -3
- package/ListItem.svelte +30 -10
- package/ListItem.svelte.d.ts +1 -1
- package/Menu.svelte +7 -7
- package/MenuBar.svelte +1 -1
- package/MenuButton.svelte +3 -9
- package/MenuButton.svelte.d.ts +2 -4
- package/MenuItem.svelte +34 -12
- package/MenuItem.svelte.d.ts +2 -1
- package/MenuItemDisplay.svelte +8 -1
- package/MenuSeparator.svelte +3 -3
- package/Popover.svelte +66 -51
- package/Popover.svelte.d.ts +4 -2
- package/Progress.constants.d.ts +1 -1
- package/Progress.constants.js +1 -1
- package/Progress.svelte +34 -28
- package/Progress.svelte.d.ts +1 -1
- package/Progress.types.d.ts +3 -3
- package/Radio.svelte +54 -23
- package/Radio.svelte.d.ts +2 -0
- package/RgbColorSliders.svelte +182 -0
- package/RgbColorSliders.svelte.d.ts +22 -0
- package/Select.svelte +32 -25
- package/Select.svelte.d.ts +1 -1
- package/Slider.svelte +111 -123
- package/Slider.svelte.d.ts +1 -0
- package/Switch.svelte +112 -41
- package/Switch.svelte.d.ts +3 -2
- package/Tab.svelte +53 -29
- package/Tab.svelte.d.ts +7 -4
- package/TabList.svelte +21 -11
- package/TabList.svelte.d.ts +1 -0
- package/TabList.types.d.ts +1 -0
- package/TextArea.svelte +48 -22
- package/TextArea.svelte.d.ts +4 -3
- package/Tooltip.svelte +59 -16
- package/Tooltip.svelte.d.ts +34 -2
- package/Tree.svelte +35 -21
- package/Tree.svelte.d.ts +2 -0
- package/Tree.types.d.ts +6 -8
- package/TreeChevron.svelte +1 -1
- package/TreeItem.svelte +40 -9
- package/TreeItem.svelte.d.ts +2 -0
- package/TreeItem.types.d.ts +4 -4
- package/TreeItemDisplay.svelte +28 -9
- package/TreeItemDisplay.svelte.d.ts +3 -1
- package/actions/clickOutside.js +1 -1
- package/actions/trapKeyboardFocus.d.ts +3 -0
- package/actions/trapKeyboardFocus.js +52 -0
- package/floating-ui.types.d.ts +2 -0
- package/index.d.ts +14 -10
- package/index.js +11 -7
- package/package.json +12 -4
- package/theme/applyTheme.js +3 -2
- package/theme/colors.d.ts +1 -0
- package/theme/colors.js +28 -13
- package/theme/darkTheme.js +129 -87
- package/theme/lightTheme.js +109 -90
- package/Field.constants.d.ts +0 -1
- package/Field.constants.js +0 -1
- package/Field.svelte +0 -265
- package/Field.svelte.d.ts +0 -75
- package/Field.types.d.ts +0 -4
- /package/{Field.types.js → ColorPicker.types.js} +0 -0
package/Dialog.svelte
CHANGED
|
@@ -10,7 +10,7 @@ let formRef;
|
|
|
10
10
|
let closing = false;
|
|
11
11
|
const onDocumentClick = (event) => {
|
|
12
12
|
const targetNode = event?.target;
|
|
13
|
-
if (targetNode && !contentRef
|
|
13
|
+
if (targetNode && !contentRef?.contains(targetNode) && backdropCloses) {
|
|
14
14
|
open = false;
|
|
15
15
|
}
|
|
16
16
|
};
|
|
@@ -146,17 +146,17 @@ A styled <dialog> element
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
.header {
|
|
149
|
-
background-color: var(--stsv-
|
|
149
|
+
background-color: var(--stsv-common__background-color--secondary);
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
.content {
|
|
153
|
-
background-color: var(--stsv-
|
|
154
|
-
border-color: var(--stsv-
|
|
155
|
-
border-radius: var(--stsv-
|
|
156
|
-
border-style: var(--stsv-
|
|
157
|
-
border-width: var(--stsv-
|
|
153
|
+
background-color: var(--stsv-common__background-color);
|
|
154
|
+
border-color: var(--stsv-common__border-color);
|
|
155
|
+
border-radius: var(--stsv-common__border-radius);
|
|
156
|
+
border-style: var(--stsv-common__border-style);
|
|
157
|
+
border-width: var(--stsv-common__border-width);
|
|
158
158
|
box-sizing: border-box;
|
|
159
|
-
color: var(--stsv-
|
|
159
|
+
color: var(--stsv-common__color);
|
|
160
160
|
display: grid;
|
|
161
161
|
grid-template-columns: 1fr;
|
|
162
162
|
grid-template-rows: auto 1fr auto auto;
|
|
@@ -229,8 +229,8 @@ A styled <dialog> element
|
|
|
229
229
|
}
|
|
230
230
|
|
|
231
231
|
.separator {
|
|
232
|
-
background-color: var(--stsv-
|
|
233
|
-
height: var(--stsv-
|
|
232
|
+
background-color: var(--stsv-common__background-color--secondary);
|
|
233
|
+
height: var(--stsv-common__border-width);
|
|
234
234
|
margin: 0 0.25em;
|
|
235
235
|
}
|
|
236
236
|
|
package/Dropdown.svelte
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
<script>import { createEventDispatcher } from "svelte";
|
|
2
|
-
import
|
|
2
|
+
import Popover from "./Popover.svelte";
|
|
3
3
|
import { clickOutside } from "./actions/clickOutside";
|
|
4
4
|
import { idGenerator } from "./idGenerator";
|
|
5
|
+
import { prefersReducedMotion } from "./stores/prefersReducedMotion";
|
|
6
|
+
import { slide } from "svelte/transition";
|
|
5
7
|
const popupId = idGenerator.nextId("Dropdown-popup");
|
|
8
|
+
export let colorful = false;
|
|
6
9
|
export let composed = false;
|
|
7
10
|
export let disabled = false;
|
|
8
11
|
export let open = false;
|
|
@@ -35,9 +38,15 @@ const onClick = (event) => {
|
|
|
35
38
|
const onKeydown = (event) => {
|
|
36
39
|
if (!event.altKey && !event.ctrlKey && !event.shiftKey) {
|
|
37
40
|
switch (event.key) {
|
|
41
|
+
case " ":
|
|
42
|
+
open = !open;
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
event.stopPropagation();
|
|
45
|
+
return false;
|
|
38
46
|
case "Escape":
|
|
39
47
|
open = false;
|
|
40
48
|
event.preventDefault();
|
|
49
|
+
event.stopPropagation();
|
|
41
50
|
return false;
|
|
42
51
|
}
|
|
43
52
|
}
|
|
@@ -47,6 +56,11 @@ const onClickOutside = (event) => {
|
|
|
47
56
|
open = false;
|
|
48
57
|
}
|
|
49
58
|
};
|
|
59
|
+
const slideNoOp = (node, params) => {
|
|
60
|
+
return { delay: 0, duration: 0 };
|
|
61
|
+
};
|
|
62
|
+
$:
|
|
63
|
+
slideMotion = !$prefersReducedMotion ? slide : slideNoOp;
|
|
50
64
|
</script>
|
|
51
65
|
|
|
52
66
|
<div
|
|
@@ -55,6 +69,7 @@ const onClickOutside = (event) => {
|
|
|
55
69
|
aria-haspopup={true}
|
|
56
70
|
aria-expanded={open}
|
|
57
71
|
class="sterling-dropdown"
|
|
72
|
+
class:colorful
|
|
58
73
|
class:composed
|
|
59
74
|
class:disabled
|
|
60
75
|
role="combobox"
|
|
@@ -86,58 +101,84 @@ const onClickOutside = (event) => {
|
|
|
86
101
|
on:mouseover
|
|
87
102
|
on:mouseout
|
|
88
103
|
on:mouseup
|
|
89
|
-
on:wheel
|
|
104
|
+
on:wheel|passive
|
|
90
105
|
on:paste
|
|
91
106
|
on:click_outside={onClickOutside}
|
|
92
107
|
{...$$restProps}
|
|
93
108
|
>
|
|
94
|
-
<
|
|
95
|
-
|
|
109
|
+
<div class="value">
|
|
110
|
+
<slot name="value" {colorful} {composed} {disabled} {open} />
|
|
111
|
+
</div>
|
|
112
|
+
<slot name="button" {colorful} {composed} {disabled} {open}>
|
|
96
113
|
<div class="button">
|
|
97
114
|
<div class="chevron" />
|
|
98
115
|
</div>
|
|
99
116
|
</slot>
|
|
100
117
|
|
|
101
|
-
<
|
|
102
|
-
<div
|
|
103
|
-
|
|
118
|
+
<Popover reference={dropdownRef} open={!disabled && open}>
|
|
119
|
+
<div
|
|
120
|
+
class="popup-content"
|
|
121
|
+
transition:slideMotion={{ duration: 200 }}
|
|
122
|
+
class:colorful
|
|
123
|
+
bind:this={popupContentRef}
|
|
124
|
+
>
|
|
125
|
+
<slot {colorful} {composed} {disabled} {open} />
|
|
104
126
|
</div>
|
|
105
|
-
</
|
|
127
|
+
</Popover>
|
|
106
128
|
</div>
|
|
107
129
|
|
|
108
130
|
<style>
|
|
109
131
|
.sterling-dropdown {
|
|
110
132
|
align-content: stretch;
|
|
111
133
|
align-items: stretch;
|
|
112
|
-
background-color: var(--stsv-
|
|
113
|
-
border-color: var(--stsv-
|
|
114
|
-
border-radius: var(--stsv-
|
|
115
|
-
border-style: var(--stsv-
|
|
116
|
-
border-width: var(--stsv-
|
|
117
|
-
color: var(--stsv-
|
|
134
|
+
background-color: var(--stsv-input__background-color);
|
|
135
|
+
border-color: var(--stsv-input__border-color);
|
|
136
|
+
border-radius: var(--stsv-button__border-radius);
|
|
137
|
+
border-style: var(--stsv-input__border-style);
|
|
138
|
+
border-width: var(--stsv-input__border-width);
|
|
139
|
+
color: var(--stsv-input__color);
|
|
118
140
|
display: grid;
|
|
119
|
-
grid-template-columns: 1fr
|
|
141
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
120
142
|
grid-template-rows: auto;
|
|
121
143
|
outline: none;
|
|
144
|
+
overflow: hidden;
|
|
122
145
|
padding: 0;
|
|
123
146
|
position: relative;
|
|
124
147
|
transition: background-color 250ms, color 250ms, border-color 250ms;
|
|
125
148
|
}
|
|
126
149
|
|
|
127
150
|
.sterling-dropdown:hover {
|
|
128
|
-
background-color: var(--stsv-
|
|
129
|
-
border-color: var(--stsv-
|
|
130
|
-
color: var(--stsv-
|
|
151
|
+
background-color: var(--stsv-input__background-color--hover);
|
|
152
|
+
border-color: var(--stsv-input__border-color--hover);
|
|
153
|
+
color: var(--stsv-input__color--hover);
|
|
131
154
|
}
|
|
132
155
|
|
|
133
156
|
.sterling-dropdown:focus {
|
|
134
|
-
background-color: var(--stsv-
|
|
135
|
-
border-color: var(--stsv-
|
|
136
|
-
color: var(--stsv-
|
|
137
|
-
outline-color: var(--stsv-
|
|
138
|
-
outline-offset: var(--stsv-
|
|
139
|
-
outline-style: var(--stsv-
|
|
140
|
-
outline-width: var(--stsv-
|
|
157
|
+
background-color: var(--stsv-input__background-color--focus);
|
|
158
|
+
border-color: var(--stsv-input__border-color--focus);
|
|
159
|
+
color: var(--stsv-input__color--focus);
|
|
160
|
+
outline-color: var(--stsv-common__outline-color);
|
|
161
|
+
outline-offset: var(--stsv-common__outline-offset);
|
|
162
|
+
outline-style: var(--stsv-common__outline-style);
|
|
163
|
+
outline-width: var(--stsv-common__outline-width);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.sterling-dropdown.colorful {
|
|
167
|
+
background-color: var(--stsv-input--colorful__background-color);
|
|
168
|
+
border-color: var(--stsv-input--colorful__border-color);
|
|
169
|
+
color: var(--stsv-input--colorful__color);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.sterling-dropdown.colorful:hover {
|
|
173
|
+
background-color: var(--stsv-input--colorful__background-color--hover);
|
|
174
|
+
border-color: var(--stsv-input--colorful__border-color--hover);
|
|
175
|
+
color: var(--stsv-input--colorful__color--hover);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.sterling-dropdown.colorful:focus {
|
|
179
|
+
background-color: var(--stsv-input--colorful__background-color--focus);
|
|
180
|
+
border-color: var(--stsv-input--colorful__border-color--focus);
|
|
181
|
+
color: var(--stsv-input--colorful__color--focus);
|
|
141
182
|
}
|
|
142
183
|
|
|
143
184
|
.sterling-dropdown.disabled {
|
|
@@ -145,8 +186,19 @@ const onClickOutside = (event) => {
|
|
|
145
186
|
outline: none;
|
|
146
187
|
}
|
|
147
188
|
|
|
189
|
+
.sterling-dropdown.disabled .button {
|
|
190
|
+
cursor: not-allowed;
|
|
191
|
+
}
|
|
192
|
+
|
|
148
193
|
.sterling-dropdown::after {
|
|
149
|
-
background:
|
|
194
|
+
background: repeating-linear-gradient(
|
|
195
|
+
var(--stsv-common--disabled__stripe-angle),
|
|
196
|
+
var(--stsv-common--disabled__stripe-color),
|
|
197
|
+
var(--stsv-common--disabled__stripe-color) var(--stsv-common--disabled__stripe-width),
|
|
198
|
+
var(--stsv-common--disabled__stripe-color--alt) var(--stsv-common--disabled__stripe-width),
|
|
199
|
+
var(--stsv-common--disabled__stripe-color--alt)
|
|
200
|
+
calc(2 * var(--stsv-common--disabled__stripe-width))
|
|
201
|
+
);
|
|
150
202
|
bottom: 0;
|
|
151
203
|
content: '';
|
|
152
204
|
left: 0;
|
|
@@ -174,9 +226,12 @@ const onClickOutside = (event) => {
|
|
|
174
226
|
opacity: 0;
|
|
175
227
|
}
|
|
176
228
|
|
|
229
|
+
.value {
|
|
230
|
+
overflow: hidden;
|
|
231
|
+
}
|
|
232
|
+
|
|
177
233
|
.button {
|
|
178
|
-
|
|
179
|
-
grid-row-start: 1;
|
|
234
|
+
align-self: center;
|
|
180
235
|
cursor: pointer;
|
|
181
236
|
}
|
|
182
237
|
|
|
@@ -187,7 +242,8 @@ const onClickOutside = (event) => {
|
|
|
187
242
|
background: none;
|
|
188
243
|
margin: 0;
|
|
189
244
|
height: 100%;
|
|
190
|
-
width:
|
|
245
|
+
min-width: 2em;
|
|
246
|
+
min-height: 2em;
|
|
191
247
|
}
|
|
192
248
|
|
|
193
249
|
.chevron::after {
|
|
@@ -216,36 +272,13 @@ const onClickOutside = (event) => {
|
|
|
216
272
|
transform-origin: 50% 50%;
|
|
217
273
|
}
|
|
218
274
|
|
|
219
|
-
.popup {
|
|
220
|
-
background-color: var(--stsv-Common__background-color);
|
|
221
|
-
border-color: var(--stsv-Common__border-color);
|
|
222
|
-
border-radius: var(--stsv-Common__border-radius);
|
|
223
|
-
border-style: var(--stsv-Common__border-style);
|
|
224
|
-
border-width: var(--stsv-Common__border-width);
|
|
225
|
-
box-sizing: border-box;
|
|
226
|
-
color: var(--stsv-Common__color);
|
|
227
|
-
display: none;
|
|
228
|
-
overflow: visible;
|
|
229
|
-
outline: none;
|
|
230
|
-
position: absolute;
|
|
231
|
-
box-shadow: rgba(0, 0, 0, 0.4) 2px 2px 4px -1px;
|
|
232
|
-
width: fit-content;
|
|
233
|
-
height: fit-content;
|
|
234
|
-
z-index: 1;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
.popup.open {
|
|
238
|
-
display: grid;
|
|
239
|
-
grid-template-columns: 1fr;
|
|
240
|
-
grid-template-rows: 1fr;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
275
|
.popup-content {
|
|
244
|
-
background-color: var(--stsv-
|
|
245
|
-
border-color: var(--stsv-
|
|
246
|
-
border-radius: var(--stsv-
|
|
247
|
-
border-style: var(--stsv-
|
|
248
|
-
border-width: var(--stsv-
|
|
276
|
+
background-color: var(--stsv-common__background-color);
|
|
277
|
+
border-color: var(--stsv-common__border-color);
|
|
278
|
+
border-radius: var(--stsv-common__border-radius);
|
|
279
|
+
border-style: var(--stsv-common__border-style);
|
|
280
|
+
border-width: var(--stsv-common__border-width);
|
|
281
|
+
color: var(--stsv-common__color);
|
|
249
282
|
padding: 0.25em;
|
|
250
283
|
display: grid;
|
|
251
284
|
grid-template-columns: 1fr;
|
|
@@ -253,6 +286,12 @@ const onClickOutside = (event) => {
|
|
|
253
286
|
overflow: hidden;
|
|
254
287
|
}
|
|
255
288
|
|
|
289
|
+
.popup-content.colorful {
|
|
290
|
+
background-color: var(--stsv-common--colorful__background-color);
|
|
291
|
+
border-color: var(--stsv-common--colorful__border-color);
|
|
292
|
+
color: var(--stsv-common--colorful__color);
|
|
293
|
+
}
|
|
294
|
+
|
|
256
295
|
@media (prefers-reduced-motion) {
|
|
257
296
|
.sterling-dropdown,
|
|
258
297
|
.sterling-dropdown::after {
|
package/Dropdown.svelte.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { SvelteComponentTyped } from "svelte";
|
|
|
2
2
|
declare const __propDef: {
|
|
3
3
|
props: {
|
|
4
4
|
[x: string]: any;
|
|
5
|
+
colorful?: boolean | undefined;
|
|
5
6
|
composed?: boolean | undefined;
|
|
6
7
|
disabled?: boolean | undefined;
|
|
7
8
|
open?: boolean | undefined;
|
|
@@ -43,16 +44,19 @@ declare const __propDef: {
|
|
|
43
44
|
};
|
|
44
45
|
slots: {
|
|
45
46
|
value: {
|
|
47
|
+
colorful: boolean;
|
|
46
48
|
composed: boolean;
|
|
47
49
|
disabled: boolean;
|
|
48
50
|
open: boolean;
|
|
49
51
|
};
|
|
50
52
|
button: {
|
|
53
|
+
colorful: boolean;
|
|
51
54
|
composed: boolean;
|
|
52
55
|
disabled: boolean;
|
|
53
56
|
open: boolean;
|
|
54
57
|
};
|
|
55
58
|
default: {
|
|
59
|
+
colorful: boolean;
|
|
56
60
|
composed: boolean;
|
|
57
61
|
disabled: boolean;
|
|
58
62
|
open: boolean;
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
<script>import { createEventDispatcher } from "svelte";
|
|
2
|
+
import Input from "./Input.svelte";
|
|
3
|
+
import Slider from "./Slider.svelte";
|
|
4
|
+
export let red = 0;
|
|
5
|
+
export let green = 0;
|
|
6
|
+
export let blue = 0;
|
|
7
|
+
export let alpha = 255;
|
|
8
|
+
export let colorful = false;
|
|
9
|
+
let redText = red.toString(16).padStart(2, "0");
|
|
10
|
+
let greenText = green.toString(16).padStart(2, "0");
|
|
11
|
+
let blueText = blue.toString(16).padStart(2, "0");
|
|
12
|
+
let alphaText = alpha.toString(16).padStart(2, "0");
|
|
13
|
+
$: {
|
|
14
|
+
redText = red.toString(16).padStart(2, "0");
|
|
15
|
+
}
|
|
16
|
+
$: {
|
|
17
|
+
greenText = green.toString(16).padStart(2, "0");
|
|
18
|
+
}
|
|
19
|
+
$: {
|
|
20
|
+
blueText = blue.toString(16).padStart(2, "0");
|
|
21
|
+
}
|
|
22
|
+
$: {
|
|
23
|
+
alphaText = alpha.toString(16).padStart(2, "0");
|
|
24
|
+
}
|
|
25
|
+
const dispatcher = createEventDispatcher();
|
|
26
|
+
const raiseChange = () => {
|
|
27
|
+
dispatcher("change", { red, green, blue, alpha });
|
|
28
|
+
};
|
|
29
|
+
$:
|
|
30
|
+
red, green, blue, alpha, raiseChange();
|
|
31
|
+
const onRedInputChange = (event) => {
|
|
32
|
+
const inputChangeEvent = event;
|
|
33
|
+
const text = inputChangeEvent?.currentTarget?.value;
|
|
34
|
+
red = text ? Number.parseInt(text, 16) : red;
|
|
35
|
+
};
|
|
36
|
+
const onGreenInputChange = (event) => {
|
|
37
|
+
const inputChangeEvent = event;
|
|
38
|
+
const text = inputChangeEvent?.currentTarget?.value;
|
|
39
|
+
green = text ? Number.parseInt(text, 16) : green;
|
|
40
|
+
};
|
|
41
|
+
const onBlueInputChange = (event) => {
|
|
42
|
+
const inputChangeEvent = event;
|
|
43
|
+
const text = inputChangeEvent?.currentTarget?.value;
|
|
44
|
+
blue = text ? Number.parseInt(text, 16) : blue;
|
|
45
|
+
};
|
|
46
|
+
const onAlphaInputchange = (event) => {
|
|
47
|
+
const inputChangeEvent = event;
|
|
48
|
+
const text = inputChangeEvent?.currentTarget?.value;
|
|
49
|
+
alpha = text ? Number.parseInt(text, 16) : alpha;
|
|
50
|
+
};
|
|
51
|
+
</script>
|
|
52
|
+
|
|
53
|
+
<div class="sterling-rgb-color-sliders">
|
|
54
|
+
<div class="slider red-slider">
|
|
55
|
+
<Slider {colorful} min={0} max={255} precision={0} bind:value={red} />
|
|
56
|
+
</div>
|
|
57
|
+
<Input {colorful} bind:value={redText} on:change={(e) => onRedInputChange(e)} />
|
|
58
|
+
<div class="slider green-slider">
|
|
59
|
+
<Slider {colorful} min={0} max={255} precision={0} bind:value={green} />
|
|
60
|
+
</div>
|
|
61
|
+
<Input {colorful} bind:value={greenText} on:change={(e) => onGreenInputChange(e)} />
|
|
62
|
+
<div class="slider blue-slider">
|
|
63
|
+
<Slider {colorful} min={0} max={255} precision={0} bind:value={blue} />
|
|
64
|
+
</div>
|
|
65
|
+
<Input {colorful} bind:value={blueText} on:change={(e) => onBlueInputChange(e)} />
|
|
66
|
+
<div class="alpha" style={`--red:${red};--green:${green};--blue:${blue}`}>
|
|
67
|
+
<div class="alpha-hatch" />
|
|
68
|
+
<div class="alpha-gradient" />
|
|
69
|
+
<div class="slider alpha-slider">
|
|
70
|
+
<Slider {colorful} min={0} max={255} precision={0} bind:value={alpha} />
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
<Input {colorful} bind:value={alphaText} on:change={(e) => onAlphaInputchange(e)} />
|
|
74
|
+
</div>
|
|
75
|
+
|
|
76
|
+
<style>
|
|
77
|
+
.sterling-rgb-color-sliders {
|
|
78
|
+
align-items: center;
|
|
79
|
+
display: grid;
|
|
80
|
+
grid-template-columns: 1fr 4em;
|
|
81
|
+
column-gap: 0.5em;
|
|
82
|
+
row-gap: 0.25em;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.slider :global(.fill),
|
|
86
|
+
.slider :global(.sterling-slider.colorful .fill) {
|
|
87
|
+
background-color: transparent;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.slider :global(.track),
|
|
91
|
+
.slider :global(.sterling-slider.colorful .track) {
|
|
92
|
+
background-color: transparent;
|
|
93
|
+
background-image: linear-gradient(to right, #ffffff, #ffffff 1px, #000000 1px, #000000);
|
|
94
|
+
background-size: 2px 100%;
|
|
95
|
+
opacity: 0.1;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.red-slider {
|
|
99
|
+
background: linear-gradient(to right, black 0%, rgb(255, 0, 0) 100%);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.green-slider {
|
|
103
|
+
background: linear-gradient(to right, black 0%, rgb(0, 255, 0) 100%);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.blue-slider {
|
|
107
|
+
background: linear-gradient(to right, black 0%, rgb(0, 0, 255) 100%);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.alpha {
|
|
111
|
+
display: grid;
|
|
112
|
+
grid-template-columns: 1fr;
|
|
113
|
+
grid-template-rows: 1fr;
|
|
114
|
+
place-content: stretch;
|
|
115
|
+
place-items: stretch;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.alpha-gradient,
|
|
119
|
+
.alpha-hatch,
|
|
120
|
+
.alpha-slider {
|
|
121
|
+
grid-row: 1 / span 1;
|
|
122
|
+
grid-column: 1 / span 1;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.alpha-hatch {
|
|
126
|
+
background-color: #eee;
|
|
127
|
+
opacity: 0.1;
|
|
128
|
+
background-image: repeating-linear-gradient(
|
|
129
|
+
var(--stsv-common--disabled__stripe-angle),
|
|
130
|
+
#444 25%,
|
|
131
|
+
transparent 25%,
|
|
132
|
+
transparent 75%,
|
|
133
|
+
#444 75%,
|
|
134
|
+
#444
|
|
135
|
+
),
|
|
136
|
+
repeating-linear-gradient(
|
|
137
|
+
var(--stsv-common--disabled__stripe-angle),
|
|
138
|
+
#444 25%,
|
|
139
|
+
#eee 25%,
|
|
140
|
+
#eee 75%,
|
|
141
|
+
#444 75%,
|
|
142
|
+
#444
|
|
143
|
+
),
|
|
144
|
+
repeating-linear-gradient(
|
|
145
|
+
-var(--stsv-common--disabled__stripe-angle),
|
|
146
|
+
#444 25%,
|
|
147
|
+
transparent 25%,
|
|
148
|
+
transparent 75%,
|
|
149
|
+
#444 75%,
|
|
150
|
+
#444
|
|
151
|
+
),
|
|
152
|
+
repeating-linear-gradient(
|
|
153
|
+
-var(--stsv-common--disabled__stripe-angle),
|
|
154
|
+
#444 25%,
|
|
155
|
+
#eee 25%,
|
|
156
|
+
#eee 75%,
|
|
157
|
+
#444 75%,
|
|
158
|
+
#444
|
|
159
|
+
);
|
|
160
|
+
background-position: 0 0, 4px 4px;
|
|
161
|
+
background-size: 8px 8px;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.alpha-gradient {
|
|
165
|
+
background: linear-gradient(
|
|
166
|
+
to right,
|
|
167
|
+
rgba(var(--red), var(--green), var(--blue), 0) 0%,
|
|
168
|
+
rgba(var(--red), var(--green), var(--blue), 100) 100%
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
</style>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SvelteComponentTyped } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
red?: number | undefined;
|
|
5
|
+
green?: number | undefined;
|
|
6
|
+
blue?: number | undefined;
|
|
7
|
+
alpha?: number | undefined;
|
|
8
|
+
/** When true, applies colorful theme styles. */ colorful?: boolean | undefined;
|
|
9
|
+
};
|
|
10
|
+
events: {
|
|
11
|
+
change: CustomEvent<any>;
|
|
12
|
+
} & {
|
|
13
|
+
[evt: string]: CustomEvent<any>;
|
|
14
|
+
};
|
|
15
|
+
slots: {};
|
|
16
|
+
};
|
|
17
|
+
export type HexColorSlidersProps = typeof __propDef.props;
|
|
18
|
+
export type HexColorSlidersEvents = typeof __propDef.events;
|
|
19
|
+
export type HexColorSlidersSlots = typeof __propDef.slots;
|
|
20
|
+
export default class HexColorSliders extends SvelteComponentTyped<HexColorSlidersProps, HexColorSlidersEvents, HexColorSlidersSlots> {
|
|
21
|
+
}
|
|
22
|
+
export {};
|