@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/Popover.svelte CHANGED
@@ -1,35 +1,37 @@
1
1
  <script>import { onMount } from "svelte";
2
- import { autoUpdate, computePosition, flip, offset, shift } from "@floating-ui/dom";
2
+ import { autoUpdate, computePosition, flip, offset } from "@floating-ui/dom";
3
3
  import { portal } from "./actions/portal";
4
- export let placement = "bottom-start";
4
+ export let offsetOptions = { mainAxis: 0, crossAxis: 0 };
5
5
  export let open = false;
6
- export let reference;
6
+ export let persistent = false;
7
+ export let placement = "bottom-start";
7
8
  export let portalHost = void 0;
9
+ export let reference;
8
10
  let popupRef;
9
11
  let popupPosition = { x: 0, y: 0 };
10
12
  const hostId = "SterlingPopoverPortal";
11
13
  const ensurePortalHost = () => {
12
- if (portalHost) {
13
- return portalHost;
14
+ if (document) {
15
+ if (portalHost) {
16
+ return portalHost;
17
+ }
18
+ let host = document.querySelector(`#${hostId}`);
19
+ if (!host) {
20
+ console.log("creating portal host");
21
+ host = document.createElement("div");
22
+ host.id = hostId;
23
+ host.style.overflow = "visible";
24
+ document.body.append(host);
25
+ }
26
+ portalHost = host;
14
27
  }
15
- let host = document.querySelector(`#${hostId}`);
16
- if (!host) {
17
- host = document.createElement("div");
18
- host.id = hostId;
19
- host.style.overflow = "visible";
20
- document.body.append(host);
21
- }
22
- portalHost = host;
23
28
  };
24
29
  let bodyHeight = 0;
25
30
  const resizeObserver = new ResizeObserver((entries) => {
26
31
  bodyHeight = entries[0].target.clientHeight;
27
32
  });
28
- const middleware = [
29
- offset({ mainAxis: -2 }),
30
- flip(),
31
- shift({ padding: 0, mainAxis: true, crossAxis: true })
32
- ];
33
+ $:
34
+ middleware = [offset(offsetOptions), flip()];
33
35
  const computePopupPosition = async () => {
34
36
  if (reference && popupRef) {
35
37
  popupPosition = await computePosition(reference, popupRef, {
@@ -51,7 +53,7 @@ const autoUpdateMenuPosition = () => {
51
53
  $:
52
54
  popupRef, reference, autoUpdateMenuPosition();
53
55
  $:
54
- open, bodyHeight, placement, computePopupPosition();
56
+ open, bodyHeight, middleware, placement, computePopupPosition();
55
57
  onMount(() => {
56
58
  ensurePortalHost();
57
59
  resizeObserver.observe(document.body);
@@ -59,46 +61,55 @@ onMount(() => {
59
61
  resizeObserver.unobserve(document.body);
60
62
  };
61
63
  });
64
+ const onKeydown = (event) => {
65
+ if (event.key === "Escape") {
66
+ open = false;
67
+ }
68
+ };
69
+ ensurePortalHost();
62
70
  </script>
63
71
 
64
- <div use:portal={{ target: portalHost ?? document.body }} class="sterling-popover-portal">
65
- <div
66
- bind:this={popupRef}
67
- class="sterling-popover"
68
- class:open
69
- on:blur
70
- on:click
71
- on:copy
72
- on:cut
73
- on:dblclick
74
- on:dragend
75
- on:dragenter
76
- on:dragleave
77
- on:dragover
78
- on:dragstart
79
- on:drop
80
- on:focus
81
- on:focusin
82
- on:focusout
83
- on:keydown
84
- on:keypress
85
- on:keyup
86
- on:mousedown
87
- on:mouseenter
88
- on:mouseleave
89
- on:mousemove
90
- on:mouseover
91
- on:mouseout
92
- on:mouseup
93
- on:scroll
94
- on:wheel
95
- on:paste
96
- {...$$restProps}
97
- style="left:{popupPosition.x}px; top:{popupPosition.y}px"
98
- >
99
- <slot />
72
+ {#if open || persistent}
73
+ <div use:portal={{ target: portalHost ?? document.body }} class="sterling-popover-portal">
74
+ <div
75
+ bind:this={popupRef}
76
+ class="sterling-popover"
77
+ class:open
78
+ on:blur
79
+ on:click
80
+ on:copy
81
+ on:cut
82
+ on:dblclick
83
+ on:dragend
84
+ on:dragenter
85
+ on:dragleave
86
+ on:dragover
87
+ on:dragstart
88
+ on:drop
89
+ on:focus
90
+ on:focusin
91
+ on:focusout
92
+ on:keydown
93
+ on:keypress
94
+ on:keyup
95
+ on:mousedown
96
+ on:mouseenter
97
+ on:mouseleave
98
+ on:mousemove
99
+ on:mouseover
100
+ on:mouseout
101
+ on:mouseup
102
+ on:scroll
103
+ on:wheel|passive
104
+ on:paste
105
+ on:keydown={onKeydown}
106
+ {...$$restProps}
107
+ style="left:{popupPosition.x}px; top:{popupPosition.y}px"
108
+ >
109
+ <slot />
110
+ </div>
100
111
  </div>
101
- </div>
112
+ {/if}
102
113
 
103
114
  <style>
104
115
  .sterling-popover-portal {
@@ -108,11 +119,6 @@ onMount(() => {
108
119
  }
109
120
 
110
121
  .sterling-popover {
111
- background-color: var(--stsv-Common__background-color);
112
- border-color: var(--stsv-Common__border-color);
113
- border-radius: var(--stsv-Common__border-radius);
114
- border-style: var(--stsv-Common__border-style);
115
- border-width: var(--stsv-Common__border-width);
116
122
  box-shadow: rgba(0, 0, 0, 0.4) 2px 2px 4px -1px;
117
123
  box-sizing: border-box;
118
124
  display: none;
@@ -120,9 +126,7 @@ onMount(() => {
120
126
  grid-template-rows: 1fr;
121
127
  height: fit-content;
122
128
  left: 0;
123
- max-height: calc(50vh);
124
- overflow: auto;
125
- overscroll-behavior: contain;
129
+ overflow: hidden;
126
130
  position: absolute;
127
131
  top: 0;
128
132
  width: max-content;
@@ -3,10 +3,12 @@ import type { Placement } from '@floating-ui/dom';
3
3
  declare const __propDef: {
4
4
  props: {
5
5
  [x: string]: any;
6
- placement?: Placement | undefined;
6
+ offsetOptions?: import("@floating-ui/core").OffsetOptions | undefined;
7
7
  open?: boolean | undefined;
8
- reference: HTMLElement;
8
+ persistent?: boolean | undefined;
9
+ placement?: Placement | undefined;
9
10
  portalHost?: HTMLElement | undefined;
11
+ reference: HTMLElement;
10
12
  };
11
13
  events: {
12
14
  blur: FocusEvent;
package/Progress.svelte CHANGED
@@ -67,7 +67,7 @@ $:
67
67
  on:pointerover
68
68
  on:pointerout
69
69
  on:pointerup
70
- on:wheel
70
+ on:wheel|passive
71
71
  {...$$restProps}
72
72
  >
73
73
  <div class="container" bind:clientWidth bind:clientHeight>
@@ -89,14 +89,14 @@ $:
89
89
  align-content: flex-start;
90
90
  align-items: flex-start;
91
91
  display: block;
92
- background: var(--stsv-Common__background-color);
92
+ background: var(--stsv-common__background-color);
93
93
  box-sizing: border-box;
94
94
  height: 1em;
95
95
  padding: 0.25em;
96
- border-width: var(--stsv-Common__border-width);
97
- border-style: var(--stsv-Common__border-style);
98
- border-color: var(--stsv-Common__border-color);
99
- border-radius: var(--stsv-Common__border-radius);
96
+ border-width: var(--stsv-common__border-width);
97
+ border-style: var(--stsv-common__border-style);
98
+ border-color: var(--stsv-common__border-color);
99
+ border-radius: var(--stsv-common__border-radius);
100
100
  transition: background-color 250ms, color 250ms, border-color 250ms;
101
101
  }
102
102
 
@@ -108,7 +108,7 @@ $:
108
108
  }
109
109
 
110
110
  .indicator {
111
- background-color: var(--stsv-Display__border-color);
111
+ background-color: var(--stsv-common__border-color);
112
112
  box-sizing: border-box;
113
113
  height: 100%;
114
114
  min-height: 1px;
@@ -140,30 +140,30 @@ $:
140
140
  /* ----- Colorful ----- */
141
141
 
142
142
  .indicator.info {
143
- background-color: var(--stsv-Info__border-color);
143
+ background-color: var(--stsv-status--info__border-color);
144
144
  }
145
145
 
146
146
  .indicator.success {
147
- background-color: var(--stsv-Success__border-color);
147
+ background-color: var(--stsv-status--success__border-color);
148
148
  }
149
149
 
150
150
  .indicator.warning {
151
- background-color: var(--stsv-Warning__border-color);
151
+ background-color: var(--stsv-status--warning__border-color);
152
152
  }
153
153
 
154
154
  .indicator.error {
155
- background-color: var(--stsv-Error__border-color);
155
+ background-color: var(--stsv-status--error__border-color);
156
156
  }
157
157
 
158
158
  /* ----- Disabled ----- */
159
159
 
160
160
  .sterling-progress.disabled {
161
- background: var(--stsv-Common__background-color--disabled);
162
- border-color: var(--stsv-Common__border-color--disabled);
161
+ background: var(--stsv-common__background-color--disabled);
162
+ border-color: var(--stsv-common__border-color--disabled);
163
163
  }
164
164
 
165
165
  .sterling-progress.disabled .indicator {
166
- background-color: var(--stsv-Display__color--disabled);
166
+ background-color: var(--stsv-common__color--disabled);
167
167
  }
168
168
 
169
169
  @media (prefers-reduced-motion) {
package/Radio.svelte CHANGED
@@ -1,5 +1,6 @@
1
1
  <script>import { idGenerator } from "./idGenerator";
2
2
  import Label from "./Label.svelte";
3
+ export let colorful = false;
3
4
  export let checked = false;
4
5
  export let disabled = false;
5
6
  export let group = void 0;
@@ -59,7 +60,7 @@ const onChange = (e) => {
59
60
  @component
60
61
  A styled HTML input type=radio element with optional label.
61
62
  -->
62
- <div class="sterling-radio" class:disabled>
63
+ <div class="sterling-radio" class:colorful class:disabled>
63
64
  <div class="container">
64
65
  <input
65
66
  bind:this={inputRef}
@@ -93,7 +94,7 @@ const onChange = (e) => {
93
94
  on:mouseover
94
95
  on:mouseout
95
96
  on:mouseup
96
- on:wheel
97
+ on:wheel|passive
97
98
  {...$$restProps}
98
99
  />
99
100
  <div class="indicator" />
@@ -152,10 +153,10 @@ const onChange = (e) => {
152
153
  and there is not a parent CSS selector.
153
154
  */
154
155
  .indicator {
155
- background-color: var(--stsv-Input__background-color);
156
- border-color: var(--stsv-Input__border-color);
157
- border-style: var(--stsv-Input__border-style);
158
- border-width: var(--stsv-Input__border-width);
156
+ background-color: var(--stsv-input__background-color);
157
+ border-color: var(--stsv-input__border-color);
158
+ border-style: var(--stsv-input__border-style);
159
+ border-width: var(--stsv-input__border-width);
159
160
  border-radius: 10000px;
160
161
  box-sizing: border-box;
161
162
  display: inline-block;
@@ -167,20 +168,20 @@ const onChange = (e) => {
167
168
  }
168
169
 
169
170
  input:checked + .indicator {
170
- background-color: var(--stsv-Input__background-color);
171
- border-color: var(--stsv-Input__border-color);
171
+ background-color: var(--stsv-input__background-color);
172
+ border-color: var(--stsv-input__border-color);
172
173
  }
173
174
 
174
175
  .sterling-radio:not(.disabled):hover .indicator {
175
- background-color: var(--stsv-Input__background-color--hover);
176
- border-color: var(--stsv-Input__border-color--hover);
176
+ background-color: var(--stsv-input__background-color--hover);
177
+ border-color: var(--stsv-input__border-color--hover);
177
178
  }
178
179
 
179
180
  input:focus-visible + .indicator {
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);
181
+ outline-color: var(--stsv-common__outline-color);
182
+ outline-offset: var(--stsv-common__outline-offset);
183
+ outline-style: var(--stsv-common__outline-style);
184
+ outline-width: var(--stsv-common__outline-width);
184
185
  }
185
186
 
186
187
  .indicator::after {
@@ -197,7 +198,26 @@ const onChange = (e) => {
197
198
  }
198
199
 
199
200
  input:checked + .indicator::after {
200
- background-color: var(--stsv-Input__color);
201
+ background-color: var(--stsv-input__color);
202
+ }
203
+
204
+ .sterling-radio.colorful .indicator {
205
+ background-color: var(--stsv-input--colorful__background-color);
206
+ border-color: var(--stsv-input--colorful__border-color);
207
+ }
208
+
209
+ .sterling-radio.colorful input:checked + .indicator {
210
+ background-color: var(--stsv-input--colorful__background-color);
211
+ border-color: var(--stsv-input--colorful__border-color);
212
+ }
213
+
214
+ .sterling-radio.colorful:not(.disabled):hover .indicator {
215
+ background-color: var(--stsv-input--colorful__background-color--hover);
216
+ border-color: var(--stsv-input--colorful__border-color--hover);
217
+ }
218
+
219
+ .sterling-radio.colorful input:checked + .indicator::after {
220
+ background-color: var(--stsv-input--colorful__color);
201
221
  }
202
222
 
203
223
  .sterling-radio.disabled * {
@@ -205,7 +225,13 @@ const onChange = (e) => {
205
225
  }
206
226
 
207
227
  .container::after {
208
- background: var(--stsv-Disabled__background);
228
+ background: repeating-linear-gradient(
229
+ 45deg,
230
+ var(--stsv-common__background-color1--disabled),
231
+ var(--stsv-common__background-color1--disabled) 3px,
232
+ var(--stsv-common__background-color2--disabled) 3px,
233
+ var(--stsv-common__background-color2--disabled) 6px
234
+ );
209
235
  border-radius: 10000px;
210
236
  bottom: 0;
211
237
  content: '';
package/Radio.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
  checked?: boolean | undefined;
6
7
  disabled?: boolean | undefined;
7
8
  group?: any | undefined | null;
@@ -0,0 +1,161 @@
1
+ <script>import { createEventDispatcher } from "svelte";
2
+ import Input from "./Input.svelte";
3
+ import Slider from "./Slider.svelte";
4
+ import { round } from "lodash-es";
5
+ export let red = 0;
6
+ export let green = 0;
7
+ export let blue = 0;
8
+ export let alpha = 1;
9
+ export let colorful = false;
10
+ let redText = red.toString();
11
+ let greenText = green.toString();
12
+ let blueText = blue.toString();
13
+ let alphaText = alpha.toString();
14
+ $: {
15
+ redText = red.toString();
16
+ }
17
+ $: {
18
+ greenText = green.toString();
19
+ }
20
+ $: {
21
+ blueText = blue.toString();
22
+ }
23
+ $: {
24
+ alphaText = alpha.toString();
25
+ }
26
+ const dispatcher = createEventDispatcher();
27
+ const raiseChange = () => {
28
+ dispatcher("change", { red, green, blue, alpha });
29
+ };
30
+ $:
31
+ red, green, blue, alpha, raiseChange();
32
+ const parseRgbValue = (text, defaultValue = 0) => {
33
+ if (!text) {
34
+ return defaultValue;
35
+ }
36
+ const newValue = text ? Number.parseFloat(text) : defaultValue;
37
+ if (newValue && newValue !== Number.NaN) {
38
+ return Math.round(Math.max(0, Math.min(255, newValue)));
39
+ }
40
+ return defaultValue;
41
+ };
42
+ const onRedInputChange = (event) => {
43
+ const inputChangeEvent = event;
44
+ red = parseRgbValue(inputChangeEvent?.currentTarget?.value, red);
45
+ };
46
+ const onGreenInputChange = (event) => {
47
+ const inputChangeEvent = event;
48
+ green = parseRgbValue(inputChangeEvent?.currentTarget?.value, green);
49
+ };
50
+ const onBlueInputChange = (event) => {
51
+ const inputChangeEvent = event;
52
+ blue = parseRgbValue(inputChangeEvent?.currentTarget?.value, blue);
53
+ };
54
+ const onAlphaInputchange = (event) => {
55
+ const inputChangeEvent = event;
56
+ const text = inputChangeEvent?.currentTarget?.value;
57
+ const newValue = text ? Number.parseFloat(text) : alpha;
58
+ if (newValue && newValue !== Number.NaN) {
59
+ alpha = round(Math.max(0, Math.min(1, newValue)), 2);
60
+ }
61
+ };
62
+ </script>
63
+
64
+ <div class="sterling-rgb-color-sliders">
65
+ <div class="slider red-slider">
66
+ <Slider {colorful} min={0} max={255} precision={0} bind:value={red} />
67
+ </div>
68
+ <Input {colorful} bind:value={redText} on:change={(e) => onRedInputChange(e)} />
69
+ <div class="slider green-slider">
70
+ <Slider {colorful} min={0} max={255} precision={0} bind:value={green} />
71
+ </div>
72
+ <Input {colorful} bind:value={greenText} on:change={(e) => onGreenInputChange(e)} />
73
+ <div class="slider blue-slider">
74
+ <Slider {colorful} min={0} max={255} precision={0} bind:value={blue} />
75
+ </div>
76
+ <Input {colorful} bind:value={blueText} on:change={(e) => onBlueInputChange(e)} />
77
+ <div class="alpha" style={`--red:${red};--green:${green};--blue:${blue}`}>
78
+ <div class="alpha-hatch" />
79
+ <div class="alpha-gradient" />
80
+ <div class="slider alpha-slider">
81
+ <Slider {colorful} min={0} max={1} precision={2} bind:value={alpha} />
82
+ </div>
83
+ </div>
84
+ <Input {colorful} bind:value={alphaText} on:change={(e) => onAlphaInputchange(e)} />
85
+ </div>
86
+
87
+ <style>
88
+ .sterling-rgb-color-sliders {
89
+ align-items: center;
90
+ display: grid;
91
+ grid-template-columns: 1fr 4em;
92
+ column-gap: 0.5em;
93
+ row-gap: 0.25em;
94
+ }
95
+
96
+ .slider :global(.fill),
97
+ .slider :global(.sterling-slider.colorful .fill) {
98
+ background-color: transparent;
99
+ }
100
+
101
+ .slider :global(.track),
102
+ .slider :global(.sterling-slider.colorful .track) {
103
+ background-color: transparent;
104
+ background-image: linear-gradient(to right, #ffffff, #ffffff 1px, #000000 1px, #000000);
105
+ background-size: 2px 100%;
106
+ opacity: 0.1;
107
+ }
108
+
109
+ .red-slider {
110
+ background: linear-gradient(to right, black 0%, rgb(255, 0, 0) 100%);
111
+ }
112
+
113
+ .green-slider {
114
+ background: linear-gradient(to right, black 0%, rgb(0, 255, 0) 100%);
115
+ }
116
+
117
+ .blue-slider {
118
+ background: linear-gradient(to right, black 0%, rgb(0, 0, 255) 100%);
119
+ }
120
+
121
+ .alpha {
122
+ display: grid;
123
+ grid-template-columns: 1fr;
124
+ grid-template-rows: 1fr;
125
+ place-content: stretch;
126
+ place-items: stretch;
127
+ }
128
+
129
+ .alpha-gradient,
130
+ .alpha-hatch,
131
+ .alpha-slider {
132
+ grid-row: 1 / span 1;
133
+ grid-column: 1 / span 1;
134
+ }
135
+
136
+ .alpha-hatch {
137
+ background-color: #eee;
138
+ opacity: 0.1;
139
+ background-image: repeating-linear-gradient(
140
+ 45deg,
141
+ #444 25%,
142
+ transparent 25%,
143
+ transparent 75%,
144
+ #444 75%,
145
+ #444
146
+ ),
147
+ repeating-linear-gradient(45deg, #444 25%, #eee 25%, #eee 75%, #444 75%, #444),
148
+ repeating-linear-gradient(-45deg, #444 25%, transparent 25%, transparent 75%, #444 75%, #444),
149
+ repeating-linear-gradient(-45deg, #444 25%, #eee 25%, #eee 75%, #444 75%, #444);
150
+ background-position: 0 0, 4px 4px;
151
+ background-size: 8px 8px;
152
+ }
153
+
154
+ .alpha-gradient {
155
+ background: linear-gradient(
156
+ to right,
157
+ rgba(var(--red), var(--green), var(--blue), 0) 0%,
158
+ rgba(var(--red), var(--green), var(--blue), 100) 100%
159
+ );
160
+ }
161
+ </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 RgbColorSlidersProps = typeof __propDef.props;
18
+ export type RgbColorSlidersEvents = typeof __propDef.events;
19
+ export type RgbColorSlidersSlots = typeof __propDef.slots;
20
+ export default class RgbColorSliders extends SvelteComponentTyped<RgbColorSlidersProps, RgbColorSlidersEvents, RgbColorSlidersSlots> {
21
+ }
22
+ export {};