@geoffcox/sterling-svelte 0.0.31 → 1.0.1

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 +90 -187
  11. package/Dialog.svelte.d.ts +2 -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,182 +1,93 @@
1
- <script>import { createEventDispatcher } from "svelte";
2
- import Input from "./Input.svelte";
3
- import Slider from "./Slider.svelte";
4
- import { round } from "lodash-es";
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
+ // ----- Props ----- //
6
+ /** The red value. */
5
7
  export let red = 0;
8
+ /** The green value. */
6
9
  export let green = 0;
10
+ /** The blue value. */
7
11
  export let blue = 0;
12
+ /** The alpha value. */
8
13
  export let alpha = 1;
9
- export let colorful = false;
14
+ /** Additional class names to apply. */
15
+ export let variant = '';
16
+ // ----- State ----- //
10
17
  let redText = red.toString();
11
18
  let greenText = green.toString();
12
19
  let blueText = blue.toString();
13
20
  let alphaText = alpha.toString();
14
21
  $: {
15
- redText = red.toString();
22
+ redText = red.toString();
16
23
  }
17
24
  $: {
18
- greenText = green.toString();
25
+ greenText = green.toString();
19
26
  }
20
27
  $: {
21
- blueText = blue.toString();
28
+ blueText = blue.toString();
22
29
  }
23
30
  $: {
24
- alphaText = alpha.toString();
31
+ alphaText = alpha.toString();
25
32
  }
33
+ // ----- Events ----- //
26
34
  const dispatcher = createEventDispatcher();
27
35
  const raiseChange = () => {
28
- dispatcher("change", { red, green, blue, alpha });
36
+ dispatcher('change', { red, green, blue, alpha });
29
37
  };
30
- $:
31
- red, green, blue, alpha, raiseChange();
38
+ $: red, green, blue, alpha, raiseChange();
39
+ // ----- Event Handlers ----- //
32
40
  const parseRgbValue = (text, defaultValue = 0) => {
33
- if (!text) {
41
+ if (!text) {
42
+ return defaultValue;
43
+ }
44
+ const newValue = text ? Number.parseFloat(text) : defaultValue;
45
+ if (newValue && newValue !== Number.NaN) {
46
+ return Math.round(Math.max(0, Math.min(255, newValue)));
47
+ }
34
48
  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
49
  };
42
50
  const onRedInputChange = (event) => {
43
- const inputChangeEvent = event;
44
- red = parseRgbValue(inputChangeEvent?.currentTarget?.value, red);
51
+ const inputChangeEvent = event;
52
+ red = parseRgbValue(inputChangeEvent?.currentTarget?.value, red);
45
53
  };
46
54
  const onGreenInputChange = (event) => {
47
- const inputChangeEvent = event;
48
- green = parseRgbValue(inputChangeEvent?.currentTarget?.value, green);
55
+ const inputChangeEvent = event;
56
+ green = parseRgbValue(inputChangeEvent?.currentTarget?.value, green);
49
57
  };
50
58
  const onBlueInputChange = (event) => {
51
- const inputChangeEvent = event;
52
- blue = parseRgbValue(inputChangeEvent?.currentTarget?.value, blue);
59
+ const inputChangeEvent = event;
60
+ blue = parseRgbValue(inputChangeEvent?.currentTarget?.value, blue);
53
61
  };
54
62
  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
- }
63
+ const inputChangeEvent = event;
64
+ const text = inputChangeEvent?.currentTarget?.value;
65
+ const newValue = text ? Number.parseFloat(text) : alpha;
66
+ if (newValue && newValue !== Number.NaN) {
67
+ alpha = round(Math.max(0, Math.min(1, newValue)), 2);
68
+ }
61
69
  };
62
70
  </script>
63
71
 
64
- <div class="sterling-rgb-color-sliders">
72
+ <div class={`sterling-rgb-color-sliders ${variant}`}>
65
73
  <div class="slider red-slider">
66
- <Slider {colorful} min={0} max={255} precision={0} bind:value={red} />
74
+ <Slider min={0} max={255} precision={0} bind:value={red} {variant} />
67
75
  </div>
68
- <Input {colorful} bind:value={redText} on:change={(e) => onRedInputChange(e)} />
76
+ <Input bind:value={redText} {variant} on:change={(e) => onRedInputChange(e)} />
69
77
  <div class="slider green-slider">
70
- <Slider {colorful} min={0} max={255} precision={0} bind:value={green} />
78
+ <Slider min={0} max={255} precision={0} bind:value={green} {variant} />
71
79
  </div>
72
- <Input {colorful} bind:value={greenText} on:change={(e) => onGreenInputChange(e)} />
80
+ <Input bind:value={greenText} {variant} on:change={(e) => onGreenInputChange(e)} />
73
81
  <div class="slider blue-slider">
74
- <Slider {colorful} min={0} max={255} precision={0} bind:value={blue} />
82
+ <Slider min={0} max={255} precision={0} bind:value={blue} {variant} />
75
83
  </div>
76
- <Input {colorful} bind:value={blueText} on:change={(e) => onBlueInputChange(e)} />
84
+ <Input bind:value={blueText} {variant} on:change={(e) => onBlueInputChange(e)} />
77
85
  <div class="alpha" style={`--red:${red};--green:${green};--blue:${blue}`}>
78
86
  <div class="alpha-hatch" />
79
87
  <div class="alpha-gradient" />
80
88
  <div class="slider alpha-slider">
81
- <Slider {colorful} min={0} max={1} precision={2} bind:value={alpha} />
89
+ <Slider min={0} max={1} precision={2} bind:value={alpha} {variant} />
82
90
  </div>
83
91
  </div>
84
- <Input {colorful} bind:value={alphaText} on:change={(e) => onAlphaInputchange(e)} />
92
+ <Input bind:value={alphaText} {variant} on:change={(e) => onAlphaInputchange(e)} />
85
93
  </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
- var(--stsv-common--disabled__stripe-angle),
141
- #444 25%,
142
- transparent 25%,
143
- transparent 75%,
144
- #444 75%,
145
- #444
146
- ),
147
- repeating-linear-gradient(
148
- var(--stsv-common--disabled__stripe-angle),
149
- #444 25%,
150
- #eee 25%,
151
- #eee 75%,
152
- #444 75%,
153
- #444
154
- ),
155
- repeating-linear-gradient(
156
- -var(--stsv-common--disabled__stripe-angle),
157
- #444 25%,
158
- transparent 25%,
159
- transparent 75%,
160
- #444 75%,
161
- #444
162
- ),
163
- repeating-linear-gradient(
164
- -var(--stsv-common--disabled__stripe-angle),
165
- #444 25%,
166
- #eee 25%,
167
- #eee 75%,
168
- #444 75%,
169
- #444
170
- );
171
- background-position: 0 0, 4px 4px;
172
- background-size: 8px 8px;
173
- }
174
-
175
- .alpha-gradient {
176
- background: linear-gradient(
177
- to right,
178
- rgba(var(--red), var(--green), var(--blue), 0) 0%,
179
- rgba(var(--red), var(--green), var(--blue), 100) 100%
180
- );
181
- }
182
- </style>
@@ -1,11 +1,11 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
2
  declare const __propDef: {
3
3
  props: {
4
- red?: number | undefined;
5
- green?: number | undefined;
6
- blue?: number | undefined;
7
- alpha?: number | undefined;
8
- /** When true, applies colorful theme styles. */ colorful?: boolean | undefined;
4
+ /** The red value. */ red?: number | undefined;
5
+ /** The green value. */ green?: number | undefined;
6
+ /** The blue value. */ blue?: number | undefined;
7
+ /** The alpha value. */ alpha?: number | undefined;
8
+ /** Additional class names to apply. */ variant?: string | undefined;
9
9
  };
10
10
  events: {
11
11
  change: CustomEvent<any>;