@geoffcox/sterling-svelte 0.0.26 → 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 (74) 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 +87 -55
  13. package/Dropdown.svelte.d.ts +4 -0
  14. package/Field.svelte +31 -31
  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 +28 -16
  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 +7 -7
  30. package/MenuBar.svelte +1 -1
  31. package/MenuButton.svelte +3 -5
  32. package/MenuItem.svelte +33 -11
  33. package/MenuItem.svelte.d.ts +1 -0
  34. package/MenuItemDisplay.svelte +7 -1
  35. package/MenuSeparator.svelte +3 -3
  36. package/Popover.svelte +66 -51
  37. package/Popover.svelte.d.ts +4 -2
  38. package/Progress.svelte +14 -14
  39. package/Radio.svelte +42 -16
  40. package/Radio.svelte.d.ts +1 -0
  41. package/RgbColorSliders.svelte +161 -0
  42. package/RgbColorSliders.svelte.d.ts +22 -0
  43. package/Select.svelte +30 -24
  44. package/Slider.svelte +108 -118
  45. package/Slider.svelte.d.ts +1 -0
  46. package/Switch.svelte +97 -34
  47. package/Switch.svelte.d.ts +1 -0
  48. package/Tab.svelte +52 -29
  49. package/TabList.svelte +21 -10
  50. package/TabList.svelte.d.ts +1 -0
  51. package/TabList.types.d.ts +1 -0
  52. package/TextArea.svelte +45 -20
  53. package/TextArea.svelte.d.ts +3 -2
  54. package/Tooltip.svelte +12 -11
  55. package/Tree.svelte +34 -21
  56. package/Tree.svelte.d.ts +2 -0
  57. package/Tree.types.d.ts +1 -0
  58. package/TreeChevron.svelte +1 -1
  59. package/TreeItem.svelte +40 -9
  60. package/TreeItem.svelte.d.ts +2 -0
  61. package/TreeItemDisplay.svelte +26 -8
  62. package/TreeItemDisplay.svelte.d.ts +2 -0
  63. package/actions/clickOutside.js +1 -1
  64. package/actions/trapKeyboardFocus.d.ts +3 -0
  65. package/actions/trapKeyboardFocus.js +52 -0
  66. package/floating-ui.types.d.ts +2 -0
  67. package/index.d.ts +8 -3
  68. package/index.js +7 -2
  69. package/package.json +10 -1
  70. package/theme/applyTheme.js +3 -2
  71. package/theme/colors.d.ts +1 -0
  72. package/theme/colors.js +28 -13
  73. package/theme/darkTheme.js +130 -87
  74. package/theme/lightTheme.js +107 -87
package/ListItem.svelte CHANGED
@@ -1,16 +1,18 @@
1
1
  <script>import { getContext } from "svelte";
2
2
  import { LIST_CONTEXT_KEY } from "./List.constants";
3
- import { readable } from "svelte/store";
3
+ import { readable, writable } from "svelte/store";
4
4
  export let disabled = false;
5
5
  export let value;
6
6
  const {
7
+ colorful,
7
8
  disabled: listDisabled,
8
9
  selectedValue,
9
10
  horizontal
10
11
  } = getContext(LIST_CONTEXT_KEY) || {
12
+ colorful: readable(false),
11
13
  disabled: readable(false),
12
- selectedValue: void 0,
13
- horizontal: false
14
+ selectedValue: writable(void 0),
15
+ horizontal: readable(false)
14
16
  };
15
17
  let itemRef;
16
18
  $:
@@ -30,6 +32,7 @@ export const focus = (options) => {
30
32
  aria-selected={selected}
31
33
  bind:this={itemRef}
32
34
  class="sterling-list-item"
35
+ class:colorful={$colorful}
33
36
  class:disabled={disabled || $listDisabled}
34
37
  class:item-disabled={disabled && !$listDisabled}
35
38
  class:selected
@@ -65,7 +68,7 @@ export const focus = (options) => {
65
68
  on:pointerover
66
69
  on:pointerout
67
70
  on:pointerup
68
- on:wheel
71
+ on:wheel|passive
69
72
  {...$$restProps}
70
73
  >
71
74
  <slot {disabled} {horizontal} {selected} {value}>{value}</slot>
@@ -75,7 +78,7 @@ export const focus = (options) => {
75
78
  .sterling-list-item {
76
79
  background-color: transparent;
77
80
  box-sizing: border-box;
78
- color: var(--stsv-Input__color);
81
+ color: var(--stsv-common__color);
79
82
  cursor: pointer;
80
83
  margin: 0;
81
84
  padding: 0.5em;
@@ -87,13 +90,23 @@ export const focus = (options) => {
87
90
  }
88
91
 
89
92
  .sterling-list-item:not(.disabled):not(.selected):hover {
90
- background-color: var(--stsv-Button__background-color--hover);
91
- color: var(--stsv-Button__color--hover);
93
+ background-color: var(--stsv-button__background-color--hover);
94
+ color: var(--stsv-button__color--hover);
92
95
  }
93
96
 
94
97
  .sterling-list-item.selected {
95
- background-color: var(--stsv-Input__background-color--selected);
96
- color: var(--stsv-Input__color--selected);
98
+ background-color: var(--stsv-button__background-color--active);
99
+ color: var(--stsv-button__color--active);
100
+ }
101
+
102
+ .sterling-list-item.colorful:not(.disabled):not(.selected):hover {
103
+ background-color: var(--stsv-button--colorful__background-color--hover);
104
+ color: var(--stsv-button--colorful__color--hover);
105
+ }
106
+
107
+ .sterling-list-item.colorful.selected {
108
+ background-color: var(--stsv-button--colorful__background-color--active);
109
+ color: var(--stsv-button--colorful__color--active);
97
110
  }
98
111
 
99
112
  .sterling-list-item.disabled {
@@ -102,7 +115,13 @@ export const focus = (options) => {
102
115
  }
103
116
 
104
117
  .sterling-list-item::after {
105
- background: var(--stsv-Disabled__background);
118
+ background: repeating-linear-gradient(
119
+ 45deg,
120
+ var(--stsv-common__background-color1--disabled),
121
+ var(--stsv-common__background-color1--disabled) 3px,
122
+ var(--stsv-common__background-color2--disabled) 3px,
123
+ var(--stsv-common__background-color2--disabled) 6px
124
+ );
106
125
  bottom: 0;
107
126
  content: '';
108
127
  left: 0;
@@ -46,7 +46,7 @@ declare const __propDef: {
46
46
  slots: {
47
47
  default: {
48
48
  disabled: boolean;
49
- horizontal: import("svelte/store").Readable<boolean>;
49
+ horizontal: import("svelte/store").Readable<boolean> | undefined;
50
50
  selected: boolean;
51
51
  value: string;
52
52
  };
package/Menu.svelte CHANGED
@@ -93,7 +93,7 @@ export const focusLastMenuItem = () => {
93
93
  on:mouseout
94
94
  on:mouseup
95
95
  on:scroll
96
- on:wheel
96
+ on:wheel|passive
97
97
  on:paste
98
98
  {...$$restProps}
99
99
  >
@@ -104,11 +104,11 @@ export const focusLastMenuItem = () => {
104
104
 
105
105
  <style>
106
106
  .sterling-menu {
107
- background-color: var(--stsv-Common__background-color);
108
- border-color: var(--stsv-Common__border-color);
109
- border-radius: var(--stsv-Common__border-radius);
110
- border-style: var(--stsv-Common__border-style);
111
- border-width: var(--stsv-Common__border-width);
107
+ background-color: var(--stsv-common__background-color);
108
+ border-color: var(--stsv-common__border-color);
109
+ border-radius: var(--stsv-common__border-radius);
110
+ border-style: var(--stsv-common__border-style);
111
+ border-width: var(--stsv-common__border-width);
112
112
  box-sizing: border-box;
113
113
  display: grid;
114
114
  grid-template-columns: 1fr;
@@ -121,6 +121,6 @@ export const focusLastMenuItem = () => {
121
121
  display: grid;
122
122
  grid-template-columns: 1fr;
123
123
  grid-template-rows: auto;
124
- row-gap: calc(2 * var(--stsv-Common__outline-width));
124
+ row-gap: calc(2 * var(--stsv-common__outline-width));
125
125
  }
126
126
  </style>
package/MenuBar.svelte CHANGED
@@ -135,7 +135,7 @@ setContext(MENU_ITEM_CONTEXT_KEY, {
135
135
  on:mouseout
136
136
  on:mouseup
137
137
  on:scroll
138
- on:wheel
138
+ on:wheel|passive
139
139
  on:paste
140
140
  {...$$restProps}
141
141
  use:clickOutside
package/MenuButton.svelte CHANGED
@@ -6,7 +6,6 @@ import { MENU_ITEM_CONTEXT_KEY } from "./MenuItem.constants";
6
6
  import { idGenerator } from "./idGenerator";
7
7
  import Popover from "./Popover.svelte";
8
8
  import { clickOutside } from "./actions/clickOutside";
9
- import { usingKeyboard } from "./stores/usingKeyboard";
10
9
  export let open = false;
11
10
  export let shape = "rounded";
12
11
  export let value;
@@ -46,10 +45,8 @@ export const focus = (options) => {
46
45
  const onClick = async () => {
47
46
  if (!open) {
48
47
  openValues.set(["menu-button"]);
49
- if ($usingKeyboard) {
50
- await tick();
51
- menuRef?.focusFirstMenuItem();
52
- }
48
+ await tick();
49
+ menuRef?.focusFirstMenuItem();
53
50
  } else {
54
51
  open = false;
55
52
  openValues.set([]);
@@ -78,6 +75,7 @@ const onClickOutside = (event) => {
78
75
  closeAllMenus?.();
79
76
  };
80
77
  setContext(MENU_ITEM_CONTEXT_KEY, {
78
+ depth: 1,
81
79
  openValues,
82
80
  rootValue: value,
83
81
  closeContainingMenu: () => {
package/MenuItem.svelte CHANGED
@@ -16,6 +16,7 @@ import MenuItemDisplay from "./MenuItemDisplay.svelte";
16
16
  import Popover from "./Popover.svelte";
17
17
  import { usingKeyboard } from "./stores/usingKeyboard";
18
18
  export let checked = false;
19
+ export let colorful = false;
19
20
  export let composed = false;
20
21
  export let disabled = false;
21
22
  export let value;
@@ -258,6 +259,7 @@ setContext(MENU_ITEM_CONTEXT_KEY, {
258
259
  aria-owns={menuId}
259
260
  bind:this={menuItemRef}
260
261
  class="sterling-menu-item"
262
+ class:colorful
261
263
  class:composed
262
264
  class:using-keyboard={usingKeyboard}
263
265
  data-value={value}
@@ -296,7 +298,7 @@ setContext(MENU_ITEM_CONTEXT_KEY, {
296
298
  on:pointerover
297
299
  on:pointerout
298
300
  on:pointerup
299
- on:wheel
301
+ on:wheel|passive
300
302
  on:click={onClick}
301
303
  on:keydown={onKeyDown}
302
304
  on:mouseenter={onMouseEnter}
@@ -337,11 +339,11 @@ setContext(MENU_ITEM_CONTEXT_KEY, {
337
339
  .sterling-menu-item {
338
340
  background-color: transparent;
339
341
  border-color: transparent;
340
- border-radius: var(--stsv-Button__border-radius);
342
+ border-radius: var(--stsv-button__border-radius);
341
343
  border-style: none;
342
344
  border-width: 0;
343
345
  box-sizing: border-box;
344
- color: var(--stsv-Common__color);
346
+ color: var(--stsv-common__color);
345
347
  cursor: pointer;
346
348
  font: inherit;
347
349
  margin: 0;
@@ -357,8 +359,8 @@ setContext(MENU_ITEM_CONTEXT_KEY, {
357
359
  }
358
360
 
359
361
  .sterling-menu-item:hover {
360
- background-color: var(--stsv-Button__background-color--hover);
361
- color: var(--stsv-Button__color--hover);
362
+ background-color: var(--stsv-button__background-color--hover);
363
+ color: var(--stsv-button__color--hover);
362
364
  }
363
365
 
364
366
  .sterling-menu-item:focus {
@@ -366,15 +368,35 @@ setContext(MENU_ITEM_CONTEXT_KEY, {
366
368
  }
367
369
 
368
370
  .sterling-menu-item.using-keyboard:focus {
369
- border-color: var(--stsv-Button__border-color--focus);
370
- outline-color: var(--stsv-Common__outline-color);
371
- outline-offset: var(--stsv-Common__outline-offset);
372
- outline-style: var(--stsv-Common__outline-style);
373
- outline-width: var(--stsv-Common__outline-width);
371
+ border-color: var(--stsv-button__border-color--focus);
372
+ outline-color: var(--stsv-common__outline-color);
373
+ outline-offset: var(--stsv-common__outline-offset);
374
+ outline-style: var(--stsv-common__outline-style);
375
+ outline-width: var(--stsv-common__outline-width);
374
376
  }
375
377
 
376
378
  .sterling-menu-item:focus {
377
- background-color: var(--stsv-Input__background-color--selected);
379
+ background-color: var(--stsv-input__background-color--selected);
380
+ }
381
+
382
+ /** ----- colorful ----- */
383
+
384
+ .sterling-menu-item.colorful {
385
+ color: var(--stsv-common--colorful__color);
386
+ }
387
+
388
+ .sterling-menu-item.colorful:hover {
389
+ background-color: var(--stsv-button--colorful__background-color--hover);
390
+ color: var(--stsv-button--colorful__color--hover);
391
+ }
392
+
393
+ .sterling-menu-item.colorful.using-keyboard:focus {
394
+ border-color: var(--stsv-button--colorful__border-color--focus);
395
+ }
396
+
397
+ .sterling-menu-item.colorful:focus {
398
+ background-color: var(--stsv-button--colorful__background-color--focus);
399
+ color: var(--stsv-button--colorful__color--focus);
378
400
  }
379
401
 
380
402
  .sterling-menu-item.composed,
@@ -3,6 +3,7 @@ declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
5
  checked?: boolean | undefined;
6
+ colorful?: boolean | undefined;
6
7
  composed?: boolean | undefined;
7
8
  disabled?: boolean | undefined;
8
9
  value: string;
@@ -103,7 +103,13 @@ export let menuItemRole = "menuitem";
103
103
  }
104
104
 
105
105
  .sterling-menu-item-display::after {
106
- background: var(--stsv-Disabled__background);
106
+ background: repeating-linear-gradient(
107
+ 45deg,
108
+ var(--stsv-common__background-color1--disabled),
109
+ var(--stsv-common__background-color1--disabled) 3px,
110
+ var(--stsv-common__background-color2--disabled) 3px,
111
+ var(--stsv-common__background-color2--disabled) 6px
112
+ );
107
113
  bottom: 0;
108
114
  content: '';
109
115
  left: 0;
@@ -35,14 +35,14 @@ A styled line to visually separate menu items in a menu.
35
35
  on:pointerover
36
36
  on:pointerout
37
37
  on:pointerup
38
- on:wheel
38
+ on:wheel|passive
39
39
  {...$$restProps}
40
40
  />
41
41
 
42
42
  <style>
43
43
  .sterling-menu-item-separator {
44
- height: var(--stsv-Common__border-width);
45
- background-color: var(--stsv-Common__border-color);
44
+ height: var(--stsv-common__border-width);
45
+ background-color: var(--stsv-common__border-color);
46
46
  margin: 0.1em 0;
47
47
  }
48
48
  </style>
package/Popover.svelte CHANGED
@@ -1,31 +1,37 @@
1
1
  <script>import { onMount } from "svelte";
2
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 = [offset({ mainAxis: -2 }), flip()];
33
+ $:
34
+ middleware = [offset(offsetOptions), flip()];
29
35
  const computePopupPosition = async () => {
30
36
  if (reference && popupRef) {
31
37
  popupPosition = await computePosition(reference, popupRef, {
@@ -47,7 +53,7 @@ const autoUpdateMenuPosition = () => {
47
53
  $:
48
54
  popupRef, reference, autoUpdateMenuPosition();
49
55
  $:
50
- open, bodyHeight, placement, computePopupPosition();
56
+ open, bodyHeight, middleware, placement, computePopupPosition();
51
57
  onMount(() => {
52
58
  ensurePortalHost();
53
59
  resizeObserver.observe(document.body);
@@ -55,46 +61,55 @@ onMount(() => {
55
61
  resizeObserver.unobserve(document.body);
56
62
  };
57
63
  });
64
+ const onKeydown = (event) => {
65
+ if (event.key === "Escape") {
66
+ open = false;
67
+ }
68
+ };
69
+ ensurePortalHost();
58
70
  </script>
59
71
 
60
- <div use:portal={{ target: portalHost ?? document.body }} class="sterling-popover-portal">
61
- <div
62
- bind:this={popupRef}
63
- class="sterling-popover"
64
- class:open
65
- on:blur
66
- on:click
67
- on:copy
68
- on:cut
69
- on:dblclick
70
- on:dragend
71
- on:dragenter
72
- on:dragleave
73
- on:dragover
74
- on:dragstart
75
- on:drop
76
- on:focus
77
- on:focusin
78
- on:focusout
79
- on:keydown
80
- on:keypress
81
- on:keyup
82
- on:mousedown
83
- on:mouseenter
84
- on:mouseleave
85
- on:mousemove
86
- on:mouseover
87
- on:mouseout
88
- on:mouseup
89
- on:scroll
90
- on:wheel
91
- on:paste
92
- {...$$restProps}
93
- style="left:{popupPosition.x}px; top:{popupPosition.y}px"
94
- >
95
- <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>
96
111
  </div>
97
- </div>
112
+ {/if}
98
113
 
99
114
  <style>
100
115
  .sterling-popover-portal {
@@ -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;