@geoffcox/sterling-svelte 0.0.25 → 0.0.27

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.
Files changed (86) hide show
  1. package/Button.svelte +79 -24
  2. package/Button.svelte.d.ts +1 -0
  3. package/Checkbox.svelte +44 -19
  4. package/Checkbox.svelte.d.ts +1 -0
  5. package/ColorPicker.constants.d.ts +1 -0
  6. package/ColorPicker.constants.js +1 -0
  7. package/ColorPicker.svelte +226 -0
  8. package/ColorPicker.svelte.d.ts +22 -0
  9. package/ColorPicker.types.d.ts +4 -0
  10. package/ColorPicker.types.js +1 -0
  11. package/Dialog.svelte +10 -10
  12. package/Dropdown.svelte +88 -47
  13. package/Dropdown.svelte.d.ts +4 -0
  14. package/Field.svelte +34 -46
  15. package/HexColorSliders.svelte +150 -0
  16. package/HexColorSliders.svelte.d.ts +22 -0
  17. package/HslColorSliders.svelte +187 -0
  18. package/HslColorSliders.svelte.d.ts +22 -0
  19. package/Input.svelte +49 -21
  20. package/Input.svelte.d.ts +2 -1
  21. package/Label.svelte +3 -3
  22. package/Link.svelte +63 -17
  23. package/Link.svelte.d.ts +1 -0
  24. package/List.svelte +31 -30
  25. package/List.svelte.d.ts +1 -0
  26. package/List.types.d.ts +4 -3
  27. package/ListItem.svelte +29 -10
  28. package/ListItem.svelte.d.ts +1 -1
  29. package/Menu.svelte +92 -121
  30. package/Menu.svelte.d.ts +8 -2
  31. package/MenuBar.svelte +77 -32
  32. package/MenuBar.types.d.ts +2 -2
  33. package/MenuButton.svelte +48 -28
  34. package/MenuItem.constants.d.ts +1 -0
  35. package/MenuItem.constants.js +1 -0
  36. package/MenuItem.svelte +202 -139
  37. package/MenuItem.svelte.d.ts +7 -3
  38. package/MenuItem.types.d.ts +14 -5
  39. package/MenuItem.utils.d.ts +2 -0
  40. package/MenuItem.utils.js +16 -0
  41. package/MenuItemDisplay.svelte +9 -2
  42. package/MenuItemDisplay.svelte.d.ts +1 -0
  43. package/MenuSeparator.svelte +3 -3
  44. package/Popover.svelte +68 -64
  45. package/Popover.svelte.d.ts +4 -2
  46. package/Progress.svelte +14 -14
  47. package/Radio.svelte +42 -16
  48. package/Radio.svelte.d.ts +1 -0
  49. package/RgbColorSliders.svelte +161 -0
  50. package/RgbColorSliders.svelte.d.ts +22 -0
  51. package/Select.svelte +50 -32
  52. package/Slider.svelte +108 -118
  53. package/Slider.svelte.d.ts +1 -0
  54. package/Switch.svelte +97 -34
  55. package/Switch.svelte.d.ts +1 -0
  56. package/Tab.svelte +53 -30
  57. package/TabList.svelte +23 -28
  58. package/TabList.svelte.d.ts +1 -0
  59. package/TabList.types.d.ts +1 -1
  60. package/TextArea.svelte +45 -20
  61. package/TextArea.svelte.d.ts +3 -2
  62. package/Tooltip.svelte +12 -11
  63. package/Tree.svelte +37 -35
  64. package/Tree.svelte.d.ts +2 -0
  65. package/Tree.types.d.ts +1 -0
  66. package/TreeChevron.svelte +1 -1
  67. package/TreeItem.svelte +47 -10
  68. package/TreeItem.svelte.d.ts +2 -0
  69. package/TreeItemDisplay.svelte +26 -8
  70. package/TreeItemDisplay.svelte.d.ts +2 -0
  71. package/actions/clickOutside.js +1 -1
  72. package/actions/trapKeyboardFocus.d.ts +3 -0
  73. package/actions/trapKeyboardFocus.js +52 -0
  74. package/floating-ui.types.d.ts +2 -0
  75. package/index.d.ts +10 -5
  76. package/index.js +8 -3
  77. package/package.json +12 -1
  78. package/stores/prefersReducedMotion.d.ts +1 -0
  79. package/stores/prefersReducedMotion.js +10 -0
  80. package/stores/usingKeyboard.d.ts +1 -0
  81. package/stores/usingKeyboard.js +13 -0
  82. package/theme/applyTheme.js +3 -2
  83. package/theme/colors.d.ts +1 -0
  84. package/theme/colors.js +28 -13
  85. package/theme/darkTheme.js +130 -87
  86. package/theme/lightTheme.js +107 -87
package/Dropdown.svelte CHANGED
@@ -1,8 +1,11 @@
1
1
  <script>import { createEventDispatcher } from "svelte";
2
- import Popup from "./Popover.svelte";
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,35 +101,40 @@ 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
- <slot name="value" {composed} {disabled} {open} />
95
- <slot name="button" {composed} {disabled} {open}>
109
+ <slot name="value" {colorful} {composed} {disabled} {open} />
110
+ <slot name="button" {colorful} {composed} {disabled} {open}>
96
111
  <div class="button">
97
112
  <div class="chevron" />
98
113
  </div>
99
114
  </slot>
100
115
 
101
- <Popup reference={dropdownRef} open={!disabled && open}>
102
- <div class="popup-content" bind:this={popupContentRef}>
103
- <slot {composed} {disabled} {open} />
116
+ <Popover reference={dropdownRef} open={!disabled && open}>
117
+ <div
118
+ class="popup-content"
119
+ transition:slideMotion={{ duration: 200 }}
120
+ class:colorful
121
+ bind:this={popupContentRef}
122
+ >
123
+ <slot {colorful} {composed} {disabled} {open} />
104
124
  </div>
105
- </Popup>
125
+ </Popover>
106
126
  </div>
107
127
 
108
128
  <style>
109
129
  .sterling-dropdown {
110
130
  align-content: stretch;
111
131
  align-items: stretch;
112
- background-color: var(--stsv-Input__background-color);
113
- border-color: var(--stsv-Input__border-color);
114
- border-radius: var(--stsv-Input__border-radius);
115
- border-style: var(--stsv-Input__border-style);
116
- border-width: var(--stsv-Input__border-width);
117
- color: var(--stsv-Input__color);
132
+ background-color: var(--stsv-input__background-color);
133
+ border-color: var(--stsv-input__border-color);
134
+ border-radius: var(--stsv-button__border-radius);
135
+ border-style: var(--stsv-input__border-style);
136
+ border-width: var(--stsv-input__border-width);
137
+ color: var(--stsv-input__color);
118
138
  display: grid;
119
139
  grid-template-columns: 1fr 2em;
120
140
  grid-template-rows: auto;
@@ -125,19 +145,37 @@ const onClickOutside = (event) => {
125
145
  }
126
146
 
127
147
  .sterling-dropdown:hover {
128
- background-color: var(--stsv-Input__background-color--hover);
129
- border-color: var(--stsv-Input__border-color--hover);
130
- color: var(--stsv-Input__color--hover);
148
+ background-color: var(--stsv-input__background-color--hover);
149
+ border-color: var(--stsv-input__border-color--hover);
150
+ color: var(--stsv-input__color--hover);
131
151
  }
132
152
 
133
153
  .sterling-dropdown:focus {
134
- background-color: var(--stsv-Input__background-color--focus);
135
- border-color: var(--stsv-Input__border-color--focus);
136
- color: var(--stsv-Input__color--focus);
137
- outline-color: var(--stsv-Common__outline-color);
138
- outline-offset: var(--stsv-Common__outline-offset);
139
- outline-style: var(--stsv-Common__outline-style);
140
- outline-width: var(--stsv-Common__outline-width);
154
+ background-color: var(--stsv-input__background-color--focus);
155
+ border-color: var(--stsv-input__border-color--focus);
156
+ color: var(--stsv-input__color--focus);
157
+ outline-color: var(--stsv-common__outline-color);
158
+ outline-offset: var(--stsv-common__outline-offset);
159
+ outline-style: var(--stsv-common__outline-style);
160
+ outline-width: var(--stsv-common__outline-width);
161
+ }
162
+
163
+ .sterling-dropdown.colorful {
164
+ background-color: var(--stsv-input--colorful__background-color);
165
+ border-color: var(--stsv-input--colorful__border-color);
166
+ color: var(--stsv-input--colorful__color);
167
+ }
168
+
169
+ .sterling-dropdown.colorful:hover {
170
+ background-color: var(--stsv-input--colorful__background-color--hover);
171
+ border-color: var(--stsv-input--colorful__border-color--hover);
172
+ color: var(--stsv-input--colorful__color--hover);
173
+ }
174
+
175
+ .sterling-dropdown.colorful:focus {
176
+ background-color: var(--stsv-input--colorful__background-color--focus);
177
+ border-color: var(--stsv-input--colorful__border-color--focus);
178
+ color: var(--stsv-input--colorful__color--focus);
141
179
  }
142
180
 
143
181
  .sterling-dropdown.disabled {
@@ -145,8 +183,18 @@ const onClickOutside = (event) => {
145
183
  outline: none;
146
184
  }
147
185
 
186
+ .sterling-dropdown.disabled .button {
187
+ cursor: not-allowed;
188
+ }
189
+
148
190
  .sterling-dropdown::after {
149
- background: var(--stsv-Disabled__background);
191
+ background: repeating-linear-gradient(
192
+ 45deg,
193
+ var(--stsv-common__background-color1--disabled),
194
+ var(--stsv-common__background-color1--disabled) 3px,
195
+ var(--stsv-common__background-color2--disabled) 3px,
196
+ var(--stsv-common__background-color2--disabled) 6px
197
+ );
150
198
  bottom: 0;
151
199
  content: '';
152
200
  left: 0;
@@ -187,7 +235,8 @@ const onClickOutside = (event) => {
187
235
  background: none;
188
236
  margin: 0;
189
237
  height: 100%;
190
- width: 32px;
238
+ min-width: 2em;
239
+ min-height: 2em;
191
240
  }
192
241
 
193
242
  .chevron::after {
@@ -216,32 +265,24 @@ const onClickOutside = (event) => {
216
265
  transform-origin: 50% 50%;
217
266
  }
218
267
 
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 {
268
+ .popup-content {
269
+ background-color: var(--stsv-common__background-color);
270
+ border-color: var(--stsv-common__border-color);
271
+ border-radius: var(--stsv-common__border-radius);
272
+ border-style: var(--stsv-common__border-style);
273
+ border-width: var(--stsv-common__border-width);
274
+ color: var(--stsv-common__color);
275
+ padding: 0.25em;
238
276
  display: grid;
239
277
  grid-template-columns: 1fr;
240
278
  grid-template-rows: 1fr;
279
+ overflow: hidden;
241
280
  }
242
281
 
243
- .popup-content {
244
- padding: 0.25em;
282
+ .popup-content.colorful {
283
+ background-color: var(--stsv-common--colorful__background-color);
284
+ border-color: var(--stsv-common--colorful__border-color);
285
+ color: var(--stsv-common--colorful__color);
245
286
  }
246
287
 
247
288
  @media (prefers-reduced-motion) {
@@ -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;
package/Field.svelte CHANGED
@@ -1,6 +1,5 @@
1
- <script>import { createKeyborg } from "keyborg";
2
- import { onMount } from "svelte";
3
- import Tooltip from "./Tooltip.svelte";
1
+ <script>import Tooltip from "./Tooltip.svelte";
2
+ import { usingKeyboard } from "./stores/usingKeyboard";
4
3
  export let forwardClick = false;
5
4
  let htmlFor = void 0;
6
5
  export { htmlFor as for };
@@ -62,11 +61,6 @@ $: {
62
61
  });
63
62
  }
64
63
  }
65
- let keyborg = createKeyborg(window);
66
- let usingKeyboard = keyborg.isNavigatingWithKeyboard();
67
- const keyborgHandler = (value) => {
68
- usingKeyboard = value;
69
- };
70
64
  export const click = () => {
71
65
  fieldRef?.click();
72
66
  };
@@ -76,12 +70,6 @@ export const blur = () => {
76
70
  export const focus = (options) => {
77
71
  fieldRef?.focus(options);
78
72
  };
79
- onMount(() => {
80
- keyborg.subscribe(keyborgHandler);
81
- return () => {
82
- keyborg.unsubscribe(keyborgHandler);
83
- };
84
- });
85
73
  const onClick = () => {
86
74
  if (forwardClick) {
87
75
  targetRef?.click();
@@ -94,7 +82,7 @@ const onClick = () => {
94
82
  aria-disabled={targetDisabled}
95
83
  class="sterling-field"
96
84
  class:disabled={targetDisabled}
97
- class:using-keyboard={usingKeyboard}
85
+ class:using-keyboard={$usingKeyboard}
98
86
  for={htmlFor}
99
87
  on:blur
100
88
  on:click
@@ -122,7 +110,7 @@ const onClick = () => {
122
110
  on:mouseout
123
111
  on:mouseup
124
112
  on:scroll
125
- on:wheel
113
+ on:wheel|passive
126
114
  on:paste
127
115
  {...$$restProps}
128
116
  >
@@ -163,13 +151,13 @@ const onClick = () => {
163
151
 
164
152
  <style>
165
153
  .sterling-field {
166
- background-color: var(--stsv-Input__background-color);
167
- border-color: var(--stsv-Input__border-color);
168
- border-radius: var(--stsv-Input__border-radius);
169
- border-style: var(--stsv-Input__border-style);
170
- border-width: var(--stsv-Input__border-width);
154
+ background-color: var(--stsv-input__background-color);
155
+ border-color: var(--stsv-input__border-color);
156
+ border-radius: var(--stsv-input__border-radius);
157
+ border-style: var(--stsv-input__border-style);
158
+ border-width: var(--stsv-input__border-width);
171
159
  box-sizing: border-box;
172
- color: var(--stsv-Input__color);
160
+ color: var(--stsv-input__color);
173
161
  display: flex;
174
162
  flex-direction: column;
175
163
  font: inherit;
@@ -181,18 +169,18 @@ const onClick = () => {
181
169
  }
182
170
 
183
171
  .sterling-field:not(.disabled):hover {
184
- background-color: var(--stsv-Input__background-color--hover);
185
- border-color: var(--stsv-Input__border-color--hover);
186
- color: var(--stsv-Input__color--hover);
172
+ background-color: var(--stsv-input__background-color--hover);
173
+ border-color: var(--stsv-input__border-color--hover);
174
+ color: var(--stsv-input__color--hover);
187
175
  }
188
176
 
189
177
  .sterling-field.using-keyboard:focus-within {
190
- border-color: var(--stsv-Common__border-color--focus);
191
- color: var(--stsv-Common__color--focus);
192
- outline-color: var(--stsv-Common__outline-color);
193
- outline-offset: var(--stsv-Common__outline-offset);
194
- outline-style: var(--stsv-Common__outline-style);
195
- outline-width: var(--stsv-Common__outline-width);
178
+ border-color: var(--stsv-input__border-color--focus);
179
+ color: var(--stsv-input__color--focus);
180
+ outline-color: var(--stsv-common__outline-color);
181
+ outline-offset: var(--stsv-common__outline-offset);
182
+ outline-style: var(--stsv-common__outline-style);
183
+ outline-width: var(--stsv-common__outline-width);
196
184
  }
197
185
 
198
186
  .sterling-field.disabled {
@@ -204,7 +192,7 @@ const onClick = () => {
204
192
  }
205
193
 
206
194
  .label-text {
207
- color: var(--stsv-Display__color);
195
+ color: var(--stsv-common__color--secondary);
208
196
  font-size: 0.8em;
209
197
  margin: 0.5em 0.7em 0.2em 0.2em;
210
198
  }
@@ -220,35 +208,35 @@ const onClick = () => {
220
208
  .message {
221
209
  box-sizing: border-box;
222
210
  font-size: 0.8em;
223
- background-color: var(--stsv-Display__background-color);
224
- color: var(--stsv-Display__color);
211
+ background-color: var(--stsv-common__background-color--secondary);
212
+ color: var(--stsv-common__color--secondary);
225
213
  padding: 0.5em;
226
214
  width: 100%;
227
215
  transition: background-color 250ms, color 250ms, border-color 250ms;
228
216
  }
229
217
 
230
218
  .message.info {
231
- background-color: var(--stsv-Info__background-color);
232
- border-color: var(--stsv-Info__border-color);
233
- color: var(--stsv-Info__color);
219
+ background-color: var(--stsv-status--info__background-color);
220
+ border-color: var(--stsv-status--info__border-color);
221
+ color: var(--stsv-status--info__color);
234
222
  }
235
223
 
236
224
  .message.success {
237
- background-color: var(--stsv-Success__background-color);
238
- border-color: var(--stsv-Success__border-color);
239
- color: var(--stsv-Success__color);
225
+ background-color: var(--stsv-status--success__background-color);
226
+ border-color: var(--stsv-status--success__border-color);
227
+ color: var(--stsv-status--success__color);
240
228
  }
241
229
 
242
230
  .message.warning {
243
- background-color: var(--stsv-Warning__background-color);
244
- border-color: var(--stsv-Warning__border-color);
245
- color: var(--stsv-Warning__color);
231
+ background-color: var(--stsv-status--warning__background-color);
232
+ border-color: var(--stsv-status--warning__border-color);
233
+ color: var(--stsv-status--warning__color);
246
234
  }
247
235
 
248
236
  .message.error {
249
- background-color: var(--stsv-Error__background-color);
250
- border-color: var(--stsv__Error-color);
251
- color: var(--stsv-Error__color);
237
+ background-color: var(--stsv-status--error__background-color);
238
+ border-color: var(--stsv_--error-color);
239
+ color: var(--stsv-status--error__color);
252
240
  }
253
241
 
254
242
  .required {
@@ -0,0 +1,150 @@
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
+ 45deg,
130
+ #444 25%,
131
+ transparent 25%,
132
+ transparent 75%,
133
+ #444 75%,
134
+ #444
135
+ ),
136
+ repeating-linear-gradient(45deg, #444 25%, #eee 25%, #eee 75%, #444 75%, #444),
137
+ repeating-linear-gradient(-45deg, #444 25%, transparent 25%, transparent 75%, #444 75%, #444),
138
+ repeating-linear-gradient(-45deg, #444 25%, #eee 25%, #eee 75%, #444 75%, #444);
139
+ background-position: 0 0, 4px 4px;
140
+ background-size: 8px 8px;
141
+ }
142
+
143
+ .alpha-gradient {
144
+ background: linear-gradient(
145
+ to right,
146
+ rgba(var(--red), var(--green), var(--blue), 0) 0%,
147
+ rgba(var(--red), var(--green), var(--blue), 100) 100%
148
+ );
149
+ }
150
+ </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
+ 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 {};