@geoffcox/sterling-svelte 0.0.31 → 1.0.0

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 (215) hide show
  1. package/@types/clickOutside.d.ts +11 -7
  2. package/Button.svelte +11 -183
  3. package/Button.svelte.d.ts +2 -6
  4. package/Callout.svelte +107 -146
  5. package/Callout.svelte.d.ts +1 -1
  6. package/Checkbox.svelte +15 -177
  7. package/Checkbox.svelte.d.ts +2 -2
  8. package/ColorPicker.svelte +204 -223
  9. package/ColorPicker.svelte.d.ts +1 -2
  10. package/Dialog.svelte +91 -187
  11. package/Dialog.svelte.d.ts +3 -1
  12. package/Dropdown.svelte +52 -220
  13. package/Dropdown.svelte.d.ts +4 -8
  14. package/HexColorSliders.svelte +77 -145
  15. package/HexColorSliders.svelte.d.ts +28 -1
  16. package/HslColorSliders.svelte +99 -179
  17. package/HslColorSliders.svelte.d.ts +28 -1
  18. package/Input.svelte +27 -136
  19. package/Input.svelte.d.ts +2 -3
  20. package/Label.constants.d.ts +1 -0
  21. package/Label.constants.js +1 -0
  22. package/Label.svelte +96 -169
  23. package/Label.svelte.d.ts +6 -1
  24. package/Label.types.d.ts +3 -1
  25. package/Link.svelte +9 -106
  26. package/Link.svelte.d.ts +0 -1
  27. package/List.svelte +142 -230
  28. package/List.svelte.d.ts +2 -3
  29. package/List.types.d.ts +6 -1
  30. package/ListItem.svelte +25 -94
  31. package/ListItem.svelte.d.ts +2 -0
  32. package/Menu.svelte +48 -65
  33. package/Menu.svelte.d.ts +4 -1
  34. package/MenuBar.svelte +84 -86
  35. package/MenuBar.svelte.d.ts +4 -1
  36. package/MenuButton.svelte +66 -73
  37. package/MenuButton.svelte.d.ts +7 -3
  38. package/MenuItem.svelte +256 -288
  39. package/MenuItem.svelte.d.ts +2 -2
  40. package/MenuItemDisplay.svelte +12 -116
  41. package/MenuItemDisplay.svelte.d.ts +21 -7
  42. package/MenuSeparator.svelte +6 -45
  43. package/MenuSeparator.svelte.d.ts +8 -78
  44. package/Popover.constants.d.ts +1 -1
  45. package/Popover.constants.js +1 -1
  46. package/Popover.svelte +66 -80
  47. package/Popover.svelte.d.ts +5 -1
  48. package/Progress.svelte +28 -126
  49. package/Progress.svelte.d.ts +4 -3
  50. package/Radio.svelte +49 -192
  51. package/Radio.svelte.d.ts +2 -2
  52. package/RgbColorSliders.svelte +48 -137
  53. package/RgbColorSliders.svelte.d.ts +5 -5
  54. package/Select.svelte +122 -250
  55. package/Select.svelte.d.ts +6 -2
  56. package/Slider.svelte +90 -259
  57. package/Slider.svelte.d.ts +1 -2
  58. package/Switch.svelte +24 -259
  59. package/Switch.svelte.d.ts +3 -1
  60. package/Tab.svelte +27 -175
  61. package/Tab.svelte.d.ts +6 -4
  62. package/TabList.svelte +146 -171
  63. package/TabList.svelte.d.ts +3 -2
  64. package/TabList.types.d.ts +6 -1
  65. package/TextArea.svelte +32 -129
  66. package/TextArea.svelte.d.ts +1 -1
  67. package/Tooltip.svelte +46 -47
  68. package/Tooltip.svelte.d.ts +8 -3
  69. package/Tree.constants.d.ts +0 -1
  70. package/Tree.constants.js +0 -1
  71. package/Tree.svelte +35 -119
  72. package/Tree.svelte.d.ts +4 -4
  73. package/Tree.types.d.ts +1 -3
  74. package/TreeChevron.svelte +18 -98
  75. package/TreeChevron.svelte.d.ts +1 -0
  76. package/TreeItem.constants.d.ts +1 -0
  77. package/TreeItem.constants.js +1 -0
  78. package/TreeItem.svelte +251 -211
  79. package/TreeItem.svelte.d.ts +7 -3
  80. package/TreeItem.types.d.ts +1 -1
  81. package/TreeItemDisplay.svelte +20 -104
  82. package/TreeItemDisplay.svelte.d.ts +2 -2
  83. package/actions/applyLightDarkMode.d.ts +10 -0
  84. package/actions/applyLightDarkMode.js +36 -0
  85. package/actions/forwardEvents.js +3 -3
  86. package/css/Button.base.css +74 -0
  87. package/css/Button.colorful.css +17 -0
  88. package/css/Button.css +7 -0
  89. package/css/Button.secondary.colorful.css +15 -0
  90. package/css/Button.secondary.css +11 -0
  91. package/css/Button.shapes.css +14 -0
  92. package/css/Button.tool.colorful.css +13 -0
  93. package/css/Button.tool.css +18 -0
  94. package/css/Callout.base.css +43 -0
  95. package/css/Callout.colorful.css +5 -0
  96. package/css/Callout.css +2 -0
  97. package/css/Checkbox.base.css +145 -0
  98. package/css/Checkbox.colorful.css +17 -0
  99. package/css/Checkbox.css +2 -0
  100. package/css/ColorPicker.base.css +23 -0
  101. package/css/ColorPicker.css +1 -0
  102. package/css/Dialog.base.css +116 -0
  103. package/css/Dialog.css +1 -0
  104. package/css/Dropdown.base.css +147 -0
  105. package/css/Dropdown.colorful.css +23 -0
  106. package/css/Dropdown.css +2 -0
  107. package/css/HexColorSliders.base.css +106 -0
  108. package/css/HexColorSliders.css +1 -0
  109. package/css/HslColorSliders.base.css +124 -0
  110. package/css/HslColorSliders.css +1 -0
  111. package/css/Input.base.css +100 -0
  112. package/css/Input.colorful.css +22 -0
  113. package/css/Input.composed.css +8 -0
  114. package/css/Input.css +3 -0
  115. package/css/Label.base.css +119 -0
  116. package/css/Label.boxed.colorful.css +21 -0
  117. package/css/Label.boxed.css +31 -0
  118. package/css/Label.colorful.css +3 -0
  119. package/css/Label.css +4 -0
  120. package/css/Link.base.css +52 -0
  121. package/css/Link.colorful.css +15 -0
  122. package/css/Link.css +6 -0
  123. package/css/Link.ghost.colorful.css +7 -0
  124. package/css/Link.ghost.css +11 -0
  125. package/css/Link.undecorated.colorful.css +6 -0
  126. package/css/Link.undecorated.css +6 -0
  127. package/css/List.base.css +98 -0
  128. package/css/List.css +1 -0
  129. package/css/ListItem.base.css +59 -0
  130. package/css/ListItem.css +1 -0
  131. package/css/Menu.base.css +21 -0
  132. package/css/Menu.css +1 -0
  133. package/css/MenuBar.base.css +9 -0
  134. package/css/MenuBar.css +1 -0
  135. package/css/MenuButton.base.css +13 -0
  136. package/css/MenuButton.css +1 -0
  137. package/css/MenuItem.base.css +48 -0
  138. package/css/MenuItem.css +1 -0
  139. package/css/MenuItemDisplay.base.css +104 -0
  140. package/css/MenuItemDisplay.css +1 -0
  141. package/css/MenuSeparator.base.css +5 -0
  142. package/css/MenuSeparator.css +1 -0
  143. package/css/Popover copy.css +21 -0
  144. package/css/Popover.css +21 -0
  145. package/css/Progress.base.css +99 -0
  146. package/css/Progress.css +1 -0
  147. package/css/Radio.base.css +135 -0
  148. package/css/Radio.colorful.css +18 -0
  149. package/css/Radio.css +2 -0
  150. package/css/RgbColorSliders.base.css +94 -0
  151. package/css/RgbColorSliders.css +1 -0
  152. package/css/Select.base.css +127 -0
  153. package/css/Select.colorful.css +24 -0
  154. package/css/Select.composed.css +12 -0
  155. package/css/Select.css +3 -0
  156. package/css/Slider.base.css +182 -0
  157. package/css/Slider.colorful.css +11 -0
  158. package/css/Slider.composed.css +8 -0
  159. package/css/Slider.css +3 -0
  160. package/css/Switch.base.css +193 -0
  161. package/css/Switch.colorful.css +39 -0
  162. package/css/Switch.css +2 -0
  163. package/css/Tab.base.css +135 -0
  164. package/css/Tab.colorful.css +13 -0
  165. package/css/Tab.css +2 -0
  166. package/css/TabList.base.css +34 -0
  167. package/css/TabList.css +1 -0
  168. package/css/TextArea.base.css +85 -0
  169. package/css/TextArea.colorful.css +17 -0
  170. package/css/TextArea.composed.css +8 -0
  171. package/css/TextArea.css +3 -0
  172. package/css/Tooltip.base.css +6 -0
  173. package/css/Tooltip.css +1 -0
  174. package/css/Tree.base.css +74 -0
  175. package/css/Tree.composed.css +8 -0
  176. package/css/Tree.css +2 -0
  177. package/css/TreeChevron.base.css +86 -0
  178. package/css/TreeChevron.css +1 -0
  179. package/css/TreeItem.base.css +3 -0
  180. package/css/TreeItem.css +1 -0
  181. package/css/TreeItemDisplay.base.css +74 -0
  182. package/css/TreeItemDisplay.colorful.css +9 -0
  183. package/css/TreeItemDisplay.css +1 -0
  184. package/css/dark-mode.css +134 -0
  185. package/css/light-mode.css +134 -0
  186. package/css/sterling.css +37 -0
  187. package/index.d.ts +9 -13
  188. package/index.js +8 -12
  189. package/mediaQueries/prefersColorSchemeDark.d.ts +2 -0
  190. package/mediaQueries/prefersColorSchemeDark.js +10 -0
  191. package/{stores → mediaQueries}/prefersReducedMotion.d.ts +1 -0
  192. package/{stores → mediaQueries}/usingKeyboard.d.ts +1 -0
  193. package/package.json +121 -13
  194. package/Link.constants.d.ts +0 -1
  195. package/Link.constants.js +0 -1
  196. package/Link.types.d.ts +0 -4
  197. package/Link.types.js +0 -1
  198. package/theme/applyDarkTheme.d.ts +0 -7
  199. package/theme/applyDarkTheme.js +0 -11
  200. package/theme/applyLightTheme.d.ts +0 -7
  201. package/theme/applyLightTheme.js +0 -11
  202. package/theme/applyTheme.d.ts +0 -7
  203. package/theme/applyTheme.js +0 -20
  204. package/theme/colors.d.ts +0 -54
  205. package/theme/colors.js +0 -82
  206. package/theme/darkTheme.d.ts +0 -2
  207. package/theme/darkTheme.js +0 -142
  208. package/theme/lightTheme.d.ts +0 -2
  209. package/theme/lightTheme.js +0 -119
  210. package/theme/toggleDarkTheme.d.ts +0 -18
  211. package/theme/toggleDarkTheme.js +0 -53
  212. package/theme/types.d.ts +0 -21
  213. package/theme/types.js +0 -1
  214. /package/{stores → mediaQueries}/prefersReducedMotion.js +0 -0
  215. /package/{stores → mediaQueries}/usingKeyboard.js +0 -0
@@ -1,35 +1,38 @@
1
- <script>import { getContext } from "svelte";
2
- import { TREE_CONTEXT_KEY } from "./Tree.constants";
3
- import TreeChevron from "./TreeChevron.svelte";
4
- import { readable } from "svelte/store";
5
- export let colorful = false;
1
+ <script>import TreeChevron from './TreeChevron.svelte';
2
+ // ----- Props ----- //
3
+ /** The depth of the item in the tree. */
6
4
  export let depth = 0;
5
+ /** When true, display the item as disabled. */
7
6
  export let disabled = false;
7
+ /** When true, displays the item is expanded showing children. */
8
8
  export let expanded = false;
9
+ /** When true, displays the item has children. */
9
10
  export let hasChildren = false;
11
+ /** When true, display selected state. */
10
12
  export let selected = false;
13
+ /** The value uniquely identifying the tree item within the tree. */
11
14
  export let value;
12
- const { disabled: treeDisabled } = getContext(TREE_CONTEXT_KEY) || {
13
- disabled: readable(false)
14
- };
15
+ /** Additional class names to apply. */
16
+ export let variant = '';
17
+ // ----- State ----- //
15
18
  let divRef;
19
+ // ----- Methods ----- //
16
20
  export const click = () => {
17
- divRef?.click();
21
+ divRef?.click();
18
22
  };
19
23
  export const blur = () => {
20
- divRef?.blur();
24
+ divRef?.blur();
21
25
  };
22
26
  export const focus = (options) => {
23
- divRef?.focus(options);
27
+ divRef?.focus(options);
24
28
  };
25
29
  </script>
26
30
 
31
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
27
32
  <div
28
33
  bind:this={divRef}
29
- class="sterling-tree-item-display"
30
- class:colorful
31
- class:disabled={disabled && !$treeDisabled}
32
- class:item-disabled={disabled}
34
+ class={`sterling-tree-item-display ${variant}`}
35
+ class:disabled
33
36
  class:expanded
34
37
  class:selected
35
38
  style={`--sterling-tree-item-depth: ${depth}`}
@@ -66,93 +69,6 @@ export const focus = (options) => {
66
69
  on:wheel|passive
67
70
  {...$$restProps}
68
71
  >
69
- <TreeChevron {expanded} {hasChildren} />
70
- <slot {colorful} {depth} {disabled} {expanded} {hasChildren} {selected} {value} />
72
+ <TreeChevron {expanded} {hasChildren} {variant} />
73
+ <slot {depth} {disabled} {expanded} {hasChildren} {selected} {value} {variant} />
71
74
  </div>
72
-
73
- <style>
74
- .sterling-tree-item-display {
75
- align-content: center;
76
- align-items: center;
77
- background-color: transparent;
78
- box-sizing: border-box;
79
- color: var(--stsv-input__color);
80
- display: grid;
81
- grid-template-columns: auto 1fr;
82
- column-gap: 0.25em;
83
- margin: 0;
84
- outline: none;
85
- padding: 0.5em;
86
- position: relative;
87
- padding-left: calc(0.2em + (0.5em * var(--sterling-tree-item-depth)));
88
- text-overflow: ellipsis;
89
- transition: background-color 250ms, color 250ms, border-color 250ms;
90
- white-space: nowrap;
91
- }
92
-
93
- .sterling-tree-item-display:not(.item-disabled):not(.selected):hover {
94
- background-color: var(--stsv-button__background-color--hover);
95
- color: var(--stsv-button__color--hover);
96
- }
97
-
98
- .sterling-tree-item-display.selected {
99
- background-color: var(--stsv-button__background-color--active);
100
- color: var(--stsv-button__color--active);
101
- }
102
-
103
- .sterling-tree-item-display.colorful:not(.item-disabled):not(.selected):hover {
104
- background-color: var(--stsv-button--colorful__background-color--hover);
105
- color: var(--stsv-button--colorful__color--hover);
106
- }
107
-
108
- .sterling-tree-item-display.colorful.selected {
109
- background-color: var(--stsv-button--colorful__background-color--active);
110
- color: var(--stsv-button--colorful__color--active);
111
- }
112
-
113
- .sterling-tree-item-display.disabled {
114
- cursor: not-allowed;
115
- outline: none;
116
- }
117
-
118
- .sterling-tree-item-display::after {
119
- background: repeating-linear-gradient(
120
- var(--stsv-common--disabled__stripe-angle),
121
- var(--stsv-common--disabled__stripe-color),
122
- var(--stsv-common--disabled__stripe-color) var(--stsv-common--disabled__stripe-width),
123
- var(--stsv-common--disabled__stripe-color--alt) var(--stsv-common--disabled__stripe-width),
124
- var(--stsv-common--disabled__stripe-color--alt)
125
- calc(2 * var(--stsv-common--disabled__stripe-width))
126
- );
127
- bottom: 0;
128
- content: '';
129
- left: 0;
130
- opacity: 0;
131
- pointer-events: none;
132
- position: absolute;
133
- right: 0;
134
- top: 0;
135
- transition: opacity 250ms;
136
- }
137
-
138
- .sterling-tree-item-display.disabled::after {
139
- opacity: 1;
140
- }
141
-
142
- .sterling-tree-item-display.leaf {
143
- border: none;
144
- background: currentColor;
145
- border-radius: 50%;
146
- height: 0.5em;
147
- width: 0.5em;
148
- margin: 0.5;
149
- transform-origin: 50% 50%;
150
- }
151
-
152
- @media (prefers-reduced-motion) {
153
- .sterling-tree-item-display,
154
- .sterling-tree-item-display::after {
155
- transition: none;
156
- }
157
- }
158
- </style>
@@ -2,13 +2,13 @@ import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
4
  [x: string]: any;
5
- colorful?: boolean | undefined;
6
5
  depth?: number | undefined;
7
6
  disabled?: boolean | undefined;
8
7
  expanded?: boolean | undefined;
9
8
  hasChildren?: boolean | undefined;
10
9
  selected?: boolean | undefined;
11
10
  value: string;
11
+ variant?: string | undefined;
12
12
  click?: (() => void) | undefined;
13
13
  blur?: (() => void) | undefined;
14
14
  focus?: ((options?: FocusOptions) => void) | undefined;
@@ -50,13 +50,13 @@ declare const __propDef: {
50
50
  };
51
51
  slots: {
52
52
  default: {
53
- colorful: boolean;
54
53
  depth: number;
55
54
  disabled: boolean;
56
55
  expanded: boolean;
57
56
  hasChildren: boolean;
58
57
  selected: boolean;
59
58
  value: string;
59
+ variant: string;
60
60
  };
61
61
  };
62
62
  };
@@ -0,0 +1,10 @@
1
+ type Mode = 'auto' | 'light' | 'dark';
2
+ type Params = {
3
+ atDocumentRoot?: boolean;
4
+ mode?: Mode;
5
+ };
6
+ export declare const applyLightDarkMode: (node: HTMLElement, params?: Params) => {
7
+ destroy(): void;
8
+ update(params?: Params): void;
9
+ };
10
+ export {};
@@ -0,0 +1,36 @@
1
+ import { prefersColorSchemeDark } from '../mediaQueries/prefersColorSchemeDark';
2
+ const modes = ['light-mode', 'dark-mode'];
3
+ const addMode = (element, mode, prefersDark) => {
4
+ const darkMode = mode === 'dark' || (mode === 'auto' && prefersDark);
5
+ element.classList.remove(...modes);
6
+ element.classList.add(modes[darkMode ? 1 : 0]);
7
+ };
8
+ const clearModes = (element) => {
9
+ element.classList.remove(...modes);
10
+ };
11
+ export const applyLightDarkMode = (node, params) => {
12
+ let mode = params?.mode || 'auto';
13
+ let prefersDark = false;
14
+ let atDocumentRoot = params?.atDocumentRoot === true;
15
+ let target = atDocumentRoot ? document.documentElement : node;
16
+ const unsubscribe = prefersColorSchemeDark.subscribe((value) => {
17
+ prefersDark = value;
18
+ addMode(target, mode, prefersDark);
19
+ });
20
+ addMode(target, mode, prefersDark);
21
+ return {
22
+ destroy() {
23
+ unsubscribe();
24
+ },
25
+ update(params) {
26
+ // if changing the target, then clear from previous target
27
+ if (atDocumentRoot !== params?.atDocumentRoot) {
28
+ clearModes(target);
29
+ }
30
+ mode = params?.mode || 'auto';
31
+ atDocumentRoot = params?.atDocumentRoot === true;
32
+ target = atDocumentRoot ? document.documentElement : node;
33
+ addMode(target, mode, prefersDark);
34
+ }
35
+ };
36
+ };
@@ -1,4 +1,3 @@
1
- import { custom_event } from 'svelte/internal';
2
1
  export const forwardEvents = (node, params) => {
3
2
  const addListeners = (node, target, events, customEvents) => {
4
3
  let forward = (event) => {
@@ -6,9 +5,10 @@ export const forwardEvents = (node, params) => {
6
5
  };
7
6
  let forwardCustom = (event) => {
8
7
  const customEvent = event;
9
- target.dispatchEvent(custom_event(customEvent.type, customEvent.detail, {
8
+ target.dispatchEvent(new CustomEvent(customEvent.type, {
10
9
  bubbles: customEvent.bubbles,
11
- cancelable: customEvent.cancelable
10
+ cancelable: customEvent.cancelable,
11
+ detail: customEvent.detail
12
12
  }));
13
13
  };
14
14
  events?.forEach((e) => node.addEventListener(e, forward));
@@ -0,0 +1,74 @@
1
+ .sterling-button {
2
+ align-content: center;
3
+ align-items: center;
4
+ background-color: var(--stsv-button__background-color);
5
+ border-color: var(--stsv-button__border-color);
6
+ border-radius: 8px;
7
+ border-style: solid;
8
+ border-width: 2px;
9
+ box-sizing: border-box;
10
+ color: var(--stsv-button__color);
11
+ cursor: pointer;
12
+ display: inline-flex;
13
+ flex-direction: row;
14
+ font: inherit;
15
+ justify-content: center;
16
+ justify-items: center;
17
+ column-gap: 0.25em;
18
+ overflow: hidden;
19
+ padding: 0.5em 1em;
20
+ text-decoration: none;
21
+ text-overflow: ellipsis;
22
+ transition: background-color 250ms, color 250ms, border-color 250ms;
23
+ white-space: nowrap;
24
+ user-select: none;
25
+ }
26
+
27
+ .sterling-button:hover {
28
+ background-color: var(--stsv-button__background-color--hover);
29
+ border-color: var(--stsv-button__border-color--hover);
30
+ color: var(--stsv-button__color--hover);
31
+ }
32
+
33
+ .sterling-button:active {
34
+ background-color: var(--stsv-button__background-color--active);
35
+ border-color: var(--stsv-button__border-color--active);
36
+ color: var(--stsv-button__color--active);
37
+ }
38
+
39
+ .sterling-button:focus-visible {
40
+ border-color: var(--stsv-button__border-color--focus);
41
+ outline-color: var(--stsv-common__outline-color);
42
+ outline-offset: 0;
43
+ outline-style: solid;
44
+ outline-width: 2px;
45
+ }
46
+
47
+ .sterling-button:disabled {
48
+ cursor: not-allowed;
49
+ position: relative;
50
+ }
51
+
52
+ .sterling-button:disabled::after {
53
+ content: '';
54
+ position: absolute;
55
+ left: 0;
56
+ right: 0;
57
+ top: 0;
58
+ bottom: 0;
59
+ background: repeating-linear-gradient(
60
+ var(--stsv-common--disabled__stripe-angle),
61
+ var(--stsv-common--disabled__stripe-color),
62
+ var(--stsv-common--disabled__stripe-color) var(--stsv-common--disabled__stripe-width),
63
+ var(--stsv-common--disabled__stripe-color--alt) var(--stsv-common--disabled__stripe-width),
64
+ var(--stsv-common--disabled__stripe-color--alt)
65
+ calc(2 * var(--stsv-common--disabled__stripe-width))
66
+ );
67
+ pointer-events: none;
68
+ }
69
+
70
+ @media (prefers-reduced-motion) {
71
+ .sterling-button {
72
+ transition: none;
73
+ }
74
+ }
@@ -0,0 +1,17 @@
1
+ .sterling-button.colorful {
2
+ background-color: var(--stsv-button--colorful__background-color);
3
+ border-color: var(--stsv-button--colorful__border-color);
4
+ color: var(--stsv-button--colorful__color);
5
+ }
6
+
7
+ .sterling-button.colorful:hover {
8
+ background-color: var(--stsv-button--colorful__background-color--hover);
9
+ border-color: var(--stsv-button--colorful__border-color--hover);
10
+ color: var(--stsv-button--colorful__color--hover);
11
+ }
12
+
13
+ .sterling-button.colorful:active {
14
+ background-color: var(--stsv-button--colorful__background-color--active);
15
+ border-color: var(--stsv-button--colorful__border-color--active);
16
+ color: var(--stsv-button--colorful__color--active);
17
+ }
package/css/Button.css ADDED
@@ -0,0 +1,7 @@
1
+ @import url('./Button.base.css');
2
+ @import url('./Button.colorful.css');
3
+ @import url('./Button.shapes.css');
4
+ @import url('./Button.secondary.css');
5
+ @import url('./Button.secondary.colorful.css');
6
+ @import url('./Button.tool.css');
7
+ @import url('./Button.tool.colorful.css');
@@ -0,0 +1,15 @@
1
+ .sterling-button.secondary.colorful {
2
+ border-color: var(--stsv-button--colorful__border-color);
3
+ color: var(--stsv-button--colorful__border-color);
4
+ }
5
+ .sterling-button.secondary.colorful:hover {
6
+ background-color: var(--stsv-button--colorful__background-color--hover);
7
+ border-color: var(--stsv-button--colorful__border-color--hover);
8
+ color: var(--stsv-button--colorful__color--hover);
9
+ }
10
+
11
+ .sterling-button.secondary.colorful:active {
12
+ background-color: var(--stsv-button--colorful__background-color--active);
13
+ border-color: var(--stsv-button--colorful__border-color--active);
14
+ color: var(--stsv-button--colorful__color--active);
15
+ }
@@ -0,0 +1,11 @@
1
+ .sterling-button.secondary {
2
+ background-color: transparent;
3
+ }
4
+
5
+ .sterling-button.secondary:hover {
6
+ background-color: var(--stsv-button__background-color--hover);
7
+ }
8
+
9
+ .sterling-button.secondary:active {
10
+ background-color: var(--stsv-button__background-color--active);
11
+ }
@@ -0,0 +1,14 @@
1
+ .sterling-button.capsule {
2
+ border-radius: 10000px;
3
+ padding: 0.5em;
4
+ }
5
+
6
+ .sterling-button.circular {
7
+ border-radius: 10000px;
8
+ padding: 0.5em;
9
+ aspect-ratio: 1 /1;
10
+ }
11
+
12
+ .sterling-button.square {
13
+ border-radius: 0;
14
+ }
@@ -0,0 +1,13 @@
1
+ .sterling-button.tool.colorful {
2
+ color: var(--stsv-button--colorful__border-color);
3
+ }
4
+
5
+ .sterling-button.tool.colorful:hover {
6
+ background-color: var(--stsv-button--colorful__background-color--hover);
7
+ color: var(--stsv-button--colorful__color--hover);
8
+ }
9
+
10
+ .sterling-button.tool.colorful:active {
11
+ background-color: var(--stsv-button--colorful__background-color--active);
12
+ color: var(--stsv-button--colorful__color--active);
13
+ }
@@ -0,0 +1,18 @@
1
+ .sterling-button.tool {
2
+ background-color: transparent;
3
+ border-color: transparent;
4
+ }
5
+
6
+ .sterling-button.tool:hover {
7
+ background-color: var(--stsv-button__background-color--hover);
8
+ border-color: transparent;
9
+ }
10
+
11
+ .sterling-button.tool:active {
12
+ background-color: var(--stsv-button__background-color--active);
13
+ border-color: transparent;
14
+ }
15
+
16
+ .sterling-button.tool:focus-visible {
17
+ border-color: var(--stsv-button__border-color--focus);
18
+ }
@@ -0,0 +1,43 @@
1
+ .sterling-callout-portal {
2
+ position: relative;
3
+ overflow: visible;
4
+ }
5
+
6
+ .sterling-callout {
7
+ background-color: var(--stsv-common__background-color);
8
+ border-color: var(--stsv-common__border-color);
9
+ border-radius: 0;
10
+ border-style: solid;
11
+ border-width: 2px;
12
+ box-shadow: var(--stsv-common__box-shadow);
13
+ box-sizing: border-box;
14
+ color: var(--stsv-common__color);
15
+ display: none;
16
+ grid-template-columns: 1fr;
17
+ grid-template-rows: 1fr;
18
+ height: fit-content;
19
+ left: 0;
20
+ overflow: visible;
21
+ position: absolute;
22
+ top: 0;
23
+ width: max-content;
24
+ z-index: 0;
25
+ }
26
+
27
+ .sterling-callout.open {
28
+ display: grid;
29
+ }
30
+
31
+ .sterling-callout .arrow {
32
+ position: absolute;
33
+ box-sizing: border-box;
34
+ width: 14px;
35
+ height: 14px;
36
+ background-color: inherit;
37
+ border-color: inherit;
38
+ border-style: inherit;
39
+ border-width: inherit;
40
+ /* This clip path clips 1/2 the square to create a triangle */
41
+ /* The -100% and 200% allow for the drop-shadow to not be clipped */
42
+ clip-path: polygon(-100% -100%, 200% -100%, 200% 200%, -100% -100%);
43
+ }
@@ -0,0 +1,5 @@
1
+ .sterling-callout.colorful {
2
+ background-color: var(--stsv-button--colorful__background-color);
3
+ border-color: var(--stsv-button--colorful__border-color);
4
+ color: var(--stsv-button--colorful__color);
5
+ }
@@ -0,0 +1,2 @@
1
+ @import url('./Callout.base.css');
2
+ @import url('./Callout.colorful.css');
@@ -0,0 +1,145 @@
1
+ .sterling-checkbox {
2
+ align-content: center;
3
+ align-items: center;
4
+ box-sizing: border-box;
5
+ display: inline-flex;
6
+ font: inherit;
7
+ margin: 0;
8
+ outline: none;
9
+ padding: 0;
10
+ }
11
+
12
+ /*
13
+ The container
14
+ - allows the input to be hidden
15
+ - avoids input participating in layout
16
+ - prevents collisions with surrounding slots
17
+ */
18
+ .sterling-checkbox .container {
19
+ font: inherit;
20
+ position: relative;
21
+ display: grid;
22
+ align-items: center;
23
+ margin-right: 0.25em;
24
+ }
25
+
26
+ /*
27
+ The input is hidden since the built-in browser checkbox cannot be customized
28
+ */
29
+ .sterling-checkbox input {
30
+ font: inherit;
31
+ margin: 0;
32
+ padding: 0;
33
+ position: absolute;
34
+ opacity: 0;
35
+ height: 20px;
36
+ width: 20px;
37
+ }
38
+
39
+ /*
40
+ The indicator handles both the box and the checkmark.
41
+ The box cannot be on the container since the adjacent sibling selector is needed
42
+ and there is not a parent CSS selector.
43
+ */
44
+ .sterling-checkbox .indicator {
45
+ background-color: var(--stsv-input__background-color);
46
+ border-color: var(--stsv-input__border-color);
47
+ border-style: solid;
48
+ border-width: 2px;
49
+ box-sizing: border-box;
50
+ display: inline-block;
51
+ height: 20px;
52
+ position: relative;
53
+ transition: background-color 250ms, color 250ms, border-color 250ms;
54
+ width: 20px;
55
+ pointer-events: none;
56
+ }
57
+
58
+ .sterling-checkbox input:checked + .indicator {
59
+ background-color: var(--stsv-input__background-color);
60
+ border-color: var(--stsv-input__border-color);
61
+ }
62
+
63
+ .sterling-checkbox:not(.disabled):hover .indicator {
64
+ background-color: var(--stsv-input__background-color--hover);
65
+ border-color: var(--stsv-input__border-color--hover);
66
+ }
67
+
68
+ .sterling-checkbox input:focus-visible + .indicator {
69
+ outline-color: var(--stsv-common__outline-color);
70
+ outline-offset: 0;
71
+ outline-style: solid;
72
+ outline-width: 2px;
73
+ }
74
+
75
+ /*
76
+ The checkmark is a rotated L centered in the box.
77
+ */
78
+ .sterling-checkbox .indicator::after {
79
+ border-color: var(--stsv-input__color);
80
+ border-style: solid;
81
+ border-width: 0 3px 3px 0;
82
+ box-sizing: border-box;
83
+ content: '';
84
+ height: 14px;
85
+ left: 50%;
86
+ position: absolute;
87
+ top: 45%;
88
+ transform: translate(-50%, -50%) rotate(45deg);
89
+ transform-origin: center;
90
+ transition: border-color 250ms, opacity 150ms;
91
+ width: 7px;
92
+ opacity: 0;
93
+ }
94
+
95
+ .sterling-checkbox input:checked + .indicator::after {
96
+ opacity: 1;
97
+ }
98
+
99
+ .sterling-checkbox:not(.disabled):hover input:checked + .indicator::after {
100
+ border-color: var(--stsv-input__color--hover);
101
+ }
102
+
103
+ .sterling-checkbox.disabled,
104
+ .sterling-checkbox.disabled input {
105
+ cursor: not-allowed;
106
+ }
107
+
108
+ .sterling-checkbox .container::after {
109
+ background: repeating-linear-gradient(
110
+ var(--stsv-common--disabled__stripe-angle),
111
+ var(--stsv-common--disabled__stripe-color),
112
+ var(--stsv-common--disabled__stripe-color) var(--stsv-common--disabled__stripe-width),
113
+ var(--stsv-common--disabled__stripe-color--alt) var(--stsv-common--disabled__stripe-width),
114
+ var(--stsv-common--disabled__stripe-color--alt)
115
+ calc(2 * var(--stsv-common--disabled__stripe-width))
116
+ );
117
+ bottom: 0;
118
+ content: '';
119
+ left: 0;
120
+ opacity: 0;
121
+ position: absolute;
122
+ right: 0;
123
+ top: 0;
124
+ pointer-events: none;
125
+ transition: opacity 250ms;
126
+ }
127
+
128
+ .sterling-checkbox > label {
129
+ color: var(--stsv-common__color);
130
+ transition: color 250ms;
131
+ font: inherit;
132
+ }
133
+
134
+ .sterling-checkbox.disabled .container::after {
135
+ opacity: 1;
136
+ }
137
+
138
+ @media (prefers-reduced-motion) {
139
+ .sterling-checkbox .indicator,
140
+ .sterling-checkbox .indicator::after,
141
+ .sterling-checkbox .container::after,
142
+ .sterling-checkbox > label {
143
+ transition: none;
144
+ }
145
+ }
@@ -0,0 +1,17 @@
1
+ .sterling-checkbox.colorful .indicator {
2
+ background-color: var(--stsv-input--colorful__background-color);
3
+ border-color: var(--stsv-input--colorful__border-color);
4
+ }
5
+
6
+ .sterling-checkbox.colorful:not(.disabled):hover .indicator {
7
+ background-color: var(--stsv-input--colorful__background-color--hover);
8
+ border-color: var(--stsv-input--colorful__border-color--hover);
9
+ }
10
+
11
+ .sterling-checkbox.colorful .indicator::after {
12
+ border-color: var(--stsv-input--colorful__color);
13
+ }
14
+
15
+ .sterling-checkbox.colorful:not(.disabled):hover input:checked + .indicator::after {
16
+ border-color: var(--stsv-input--colorful__color--hover);
17
+ }
@@ -0,0 +1,2 @@
1
+ @import url('./Checkbox.base.css');
2
+ @import url('./Checkbox.colorful.css');
@@ -0,0 +1,23 @@
1
+ .sterling-color-picker .value {
2
+ display: grid;
3
+ align-items: center;
4
+ justify-content: stretch;
5
+ justify-items: stretch;
6
+ grid-template-columns: auto 1fr;
7
+ padding-left: 0.5em;
8
+ width: 250px;
9
+ }
10
+
11
+ .sterling-color-picker .color-box {
12
+ width: 1em;
13
+ height: 1em;
14
+ border: 1px dashed var(--stsv-common__border-color);
15
+ }
16
+
17
+ .sterling-color-picker-popup {
18
+ width: fit-content;
19
+ min-width: 500px;
20
+ display: grid;
21
+ align-items: center;
22
+ padding: 0.25em;
23
+ }
@@ -0,0 +1 @@
1
+ @import url('./ColorPicker.base.css');