@geoffcox/sterling-svelte 0.0.30 → 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 (223) 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 +188 -0
  5. package/Callout.svelte.d.ts +54 -0
  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 -219
  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 -64
  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 +67 -74
  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 +2 -0
  45. package/{floating-ui.constants.js → Popover.constants.js} +10 -9
  46. package/Popover.svelte +72 -82
  47. package/Popover.svelte.d.ts +10 -5
  48. package/Popover.types.d.ts +4 -0
  49. package/Progress.svelte +28 -126
  50. package/Progress.svelte.d.ts +4 -3
  51. package/Radio.svelte +49 -192
  52. package/Radio.svelte.d.ts +2 -2
  53. package/RgbColorSliders.svelte +48 -137
  54. package/RgbColorSliders.svelte.d.ts +5 -5
  55. package/Select.svelte +124 -251
  56. package/Select.svelte.d.ts +6 -2
  57. package/Slider.svelte +90 -259
  58. package/Slider.svelte.d.ts +1 -2
  59. package/Switch.svelte +24 -259
  60. package/Switch.svelte.d.ts +3 -1
  61. package/Tab.svelte +27 -175
  62. package/Tab.svelte.d.ts +6 -4
  63. package/TabList.svelte +146 -171
  64. package/TabList.svelte.d.ts +3 -2
  65. package/TabList.types.d.ts +6 -1
  66. package/TextArea.svelte +32 -129
  67. package/TextArea.svelte.d.ts +1 -1
  68. package/Tooltip.svelte +88 -222
  69. package/Tooltip.svelte.d.ts +21 -13
  70. package/Tree.constants.d.ts +0 -1
  71. package/Tree.constants.js +0 -1
  72. package/Tree.svelte +35 -119
  73. package/Tree.svelte.d.ts +4 -4
  74. package/Tree.types.d.ts +1 -3
  75. package/TreeChevron.svelte +18 -98
  76. package/TreeChevron.svelte.d.ts +1 -0
  77. package/TreeItem.constants.d.ts +1 -0
  78. package/TreeItem.constants.js +1 -0
  79. package/TreeItem.svelte +251 -211
  80. package/TreeItem.svelte.d.ts +7 -3
  81. package/TreeItem.types.d.ts +1 -1
  82. package/TreeItemDisplay.svelte +20 -104
  83. package/TreeItemDisplay.svelte.d.ts +2 -2
  84. package/actions/applyLightDarkMode.d.ts +10 -0
  85. package/actions/applyLightDarkMode.js +36 -0
  86. package/actions/forwardEvents.js +3 -3
  87. package/css/Button.base.css +74 -0
  88. package/css/Button.colorful.css +17 -0
  89. package/css/Button.css +7 -0
  90. package/css/Button.secondary.colorful.css +15 -0
  91. package/css/Button.secondary.css +11 -0
  92. package/css/Button.shapes.css +14 -0
  93. package/css/Button.tool.colorful.css +13 -0
  94. package/css/Button.tool.css +18 -0
  95. package/css/Callout.base.css +43 -0
  96. package/css/Callout.colorful.css +5 -0
  97. package/css/Callout.css +2 -0
  98. package/css/Checkbox.base.css +145 -0
  99. package/css/Checkbox.colorful.css +17 -0
  100. package/css/Checkbox.css +2 -0
  101. package/css/ColorPicker.base.css +23 -0
  102. package/css/ColorPicker.css +1 -0
  103. package/css/Dialog.base.css +116 -0
  104. package/css/Dialog.css +1 -0
  105. package/css/Dropdown.base.css +147 -0
  106. package/css/Dropdown.colorful.css +23 -0
  107. package/css/Dropdown.css +2 -0
  108. package/css/HexColorSliders.base.css +106 -0
  109. package/css/HexColorSliders.css +1 -0
  110. package/css/HslColorSliders.base.css +124 -0
  111. package/css/HslColorSliders.css +1 -0
  112. package/css/Input.base.css +100 -0
  113. package/css/Input.colorful.css +22 -0
  114. package/css/Input.composed.css +8 -0
  115. package/css/Input.css +3 -0
  116. package/css/Label.base.css +119 -0
  117. package/css/Label.boxed.colorful.css +21 -0
  118. package/css/Label.boxed.css +31 -0
  119. package/css/Label.colorful.css +3 -0
  120. package/css/Label.css +4 -0
  121. package/css/Link.base.css +52 -0
  122. package/css/Link.colorful.css +15 -0
  123. package/css/Link.css +6 -0
  124. package/css/Link.ghost.colorful.css +7 -0
  125. package/css/Link.ghost.css +11 -0
  126. package/css/Link.undecorated.colorful.css +6 -0
  127. package/css/Link.undecorated.css +6 -0
  128. package/css/List.base.css +98 -0
  129. package/css/List.css +1 -0
  130. package/css/ListItem.base.css +59 -0
  131. package/css/ListItem.css +1 -0
  132. package/css/Menu.base.css +21 -0
  133. package/css/Menu.css +1 -0
  134. package/css/MenuBar.base.css +9 -0
  135. package/css/MenuBar.css +1 -0
  136. package/css/MenuButton.base.css +13 -0
  137. package/css/MenuButton.css +1 -0
  138. package/css/MenuItem.base.css +48 -0
  139. package/css/MenuItem.css +1 -0
  140. package/css/MenuItemDisplay.base.css +104 -0
  141. package/css/MenuItemDisplay.css +1 -0
  142. package/css/MenuSeparator.base.css +5 -0
  143. package/css/MenuSeparator.css +1 -0
  144. package/css/Popover copy.css +21 -0
  145. package/css/Popover.css +21 -0
  146. package/css/Progress.base.css +99 -0
  147. package/css/Progress.css +1 -0
  148. package/css/Radio.base.css +135 -0
  149. package/css/Radio.colorful.css +18 -0
  150. package/css/Radio.css +2 -0
  151. package/css/RgbColorSliders.base.css +94 -0
  152. package/css/RgbColorSliders.css +1 -0
  153. package/css/Select.base.css +127 -0
  154. package/css/Select.colorful.css +24 -0
  155. package/css/Select.composed.css +12 -0
  156. package/css/Select.css +3 -0
  157. package/css/Slider.base.css +182 -0
  158. package/css/Slider.colorful.css +11 -0
  159. package/css/Slider.composed.css +8 -0
  160. package/css/Slider.css +3 -0
  161. package/css/Switch.base.css +193 -0
  162. package/css/Switch.colorful.css +39 -0
  163. package/css/Switch.css +2 -0
  164. package/css/Tab.base.css +135 -0
  165. package/css/Tab.colorful.css +13 -0
  166. package/css/Tab.css +2 -0
  167. package/css/TabList.base.css +34 -0
  168. package/css/TabList.css +1 -0
  169. package/css/TextArea.base.css +85 -0
  170. package/css/TextArea.colorful.css +17 -0
  171. package/css/TextArea.composed.css +8 -0
  172. package/css/TextArea.css +3 -0
  173. package/css/Tooltip.base.css +6 -0
  174. package/css/Tooltip.css +1 -0
  175. package/css/Tree.base.css +74 -0
  176. package/css/Tree.composed.css +8 -0
  177. package/css/Tree.css +2 -0
  178. package/css/TreeChevron.base.css +86 -0
  179. package/css/TreeChevron.css +1 -0
  180. package/css/TreeItem.base.css +3 -0
  181. package/css/TreeItem.css +1 -0
  182. package/css/TreeItemDisplay.base.css +74 -0
  183. package/css/TreeItemDisplay.colorful.css +9 -0
  184. package/css/TreeItemDisplay.css +1 -0
  185. package/css/dark-mode.css +134 -0
  186. package/css/light-mode.css +134 -0
  187. package/css/sterling.css +37 -0
  188. package/index.d.ts +13 -18
  189. package/index.js +11 -15
  190. package/mediaQueries/prefersColorSchemeDark.d.ts +2 -0
  191. package/mediaQueries/prefersColorSchemeDark.js +10 -0
  192. package/{stores → mediaQueries}/prefersReducedMotion.d.ts +1 -0
  193. package/{stores → mediaQueries}/usingKeyboard.d.ts +1 -0
  194. package/package.json +136 -19
  195. package/Link.constants.d.ts +0 -1
  196. package/Link.constants.js +0 -1
  197. package/Link.types.d.ts +0 -4
  198. package/Tooltip.constants.d.ts +0 -1
  199. package/Tooltip.constants.js +0 -1
  200. package/Tooltip.types.d.ts +0 -4
  201. package/Tooltip.types.js +0 -1
  202. package/floating-ui.constants.d.ts +0 -1
  203. package/floating-ui.types.d.ts +0 -4
  204. package/floating-ui.types.js +0 -1
  205. package/theme/applyDarkTheme.d.ts +0 -7
  206. package/theme/applyDarkTheme.js +0 -11
  207. package/theme/applyLightTheme.d.ts +0 -7
  208. package/theme/applyLightTheme.js +0 -11
  209. package/theme/applyTheme.d.ts +0 -7
  210. package/theme/applyTheme.js +0 -20
  211. package/theme/colors.d.ts +0 -54
  212. package/theme/colors.js +0 -82
  213. package/theme/darkTheme.d.ts +0 -2
  214. package/theme/darkTheme.js +0 -142
  215. package/theme/lightTheme.d.ts +0 -2
  216. package/theme/lightTheme.js +0 -119
  217. package/theme/toggleDarkTheme.d.ts +0 -18
  218. package/theme/toggleDarkTheme.js +0 -53
  219. package/theme/types.d.ts +0 -21
  220. package/theme/types.js +0 -1
  221. /package/{Link.types.js → Popover.types.js} +0 -0
  222. /package/{stores → mediaQueries}/prefersReducedMotion.js +0 -0
  223. /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>;