@geoffcox/sterling-svelte 1.0.12 → 2.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 (325) hide show
  1. package/.DS_Store +0 -0
  2. package/Button.svelte +25 -0
  3. package/Button.svelte.d.ts +9 -0
  4. package/{dist/Callout.svelte → Callout.svelte} +47 -72
  5. package/Callout.svelte.d.ts +15 -0
  6. package/Callout.types.d.ts +11 -0
  7. package/Checkbox.svelte +43 -0
  8. package/Checkbox.svelte.d.ts +10 -0
  9. package/{dist/Dialog.svelte → Dialog.svelte} +30 -38
  10. package/Dialog.svelte.d.ts +14 -0
  11. package/{dist/Dropdown.svelte → Dropdown.svelte} +39 -71
  12. package/Dropdown.svelte.d.ts +18 -0
  13. package/Input.svelte +55 -0
  14. package/Input.svelte.d.ts +12 -0
  15. package/Label.svelte +91 -0
  16. package/Label.svelte.d.ts +17 -0
  17. package/Link.svelte +25 -0
  18. package/Link.svelte.d.ts +12 -0
  19. package/{dist/List.svelte → List.svelte} +35 -85
  20. package/List.svelte.d.ts +20 -0
  21. package/List.types.d.ts +5 -0
  22. package/ListItem.svelte +49 -0
  23. package/ListItem.svelte.d.ts +13 -0
  24. package/{dist/Menu.svelte → Menu.svelte} +18 -45
  25. package/Menu.svelte.d.ts +13 -0
  26. package/{dist/MenuBar.svelte → MenuBar.svelte} +36 -78
  27. package/MenuBar.svelte.d.ts +13 -0
  28. package/MenuButton.svelte +116 -0
  29. package/MenuButton.svelte.d.ts +20 -0
  30. package/{dist/MenuItem.svelte → MenuItem.svelte} +107 -151
  31. package/MenuItem.svelte.d.ts +22 -0
  32. package/{dist/MenuItem.types.d.ts → MenuItem.types.d.ts} +1 -9
  33. package/MenuSeparator.svelte +11 -0
  34. package/MenuSeparator.svelte.d.ts +6 -0
  35. package/{dist/Popover.svelte → Popover.svelte} +45 -64
  36. package/Popover.svelte.d.ts +15 -0
  37. package/Progress.constants.d.ts +1 -0
  38. package/Progress.constants.js +1 -0
  39. package/Progress.svelte +36 -0
  40. package/Progress.svelte.d.ts +12 -0
  41. package/Progress.types.d.ts +4 -0
  42. package/Radio.svelte +53 -0
  43. package/Radio.svelte.d.ts +13 -0
  44. package/{dist/Select.svelte → Select.svelte} +55 -94
  45. package/Select.svelte.d.ts +20 -0
  46. package/Slider.svelte +133 -0
  47. package/Slider.svelte.d.ts +19 -0
  48. package/Switch.svelte +61 -0
  49. package/Switch.svelte.d.ts +21 -0
  50. package/Tab.svelte +51 -0
  51. package/Tab.svelte.d.ts +12 -0
  52. package/{dist/TabList.svelte → TabList.svelte} +50 -76
  53. package/TabList.svelte.d.ts +18 -0
  54. package/TabList.types.d.ts +5 -0
  55. package/{dist/TextArea.svelte → TextArea.svelte} +17 -59
  56. package/TextArea.svelte.d.ts +19 -0
  57. package/Tooltip.svelte +63 -0
  58. package/Tooltip.svelte.d.ts +10 -0
  59. package/Tree.svelte +53 -0
  60. package/Tree.svelte.d.ts +15 -0
  61. package/Tree.types.d.ts +5 -0
  62. package/TreeChevron.svelte +27 -0
  63. package/TreeChevron.svelte.d.ts +9 -0
  64. package/{dist/TreeItem.svelte → TreeItem.svelte} +105 -159
  65. package/TreeItem.svelte.d.ts +22 -0
  66. package/TreeItem.types.d.ts +4 -0
  67. package/{dist/actions → actions}/clickOutside.d.ts +1 -0
  68. package/{dist/actions → actions}/clickOutside.js +1 -0
  69. package/actions/extraClass.d.ts +8 -0
  70. package/actions/extraClass.js +14 -0
  71. package/{dist/index.d.ts → index.d.ts} +4 -12
  72. package/{dist/index.js → index.js} +3 -9
  73. package/package.json +26 -28
  74. package/README.md +0 -18
  75. package/dist/Button.constants.d.ts +0 -2
  76. package/dist/Button.constants.js +0 -2
  77. package/dist/Button.svelte +0 -63
  78. package/dist/Button.svelte.d.ts +0 -65
  79. package/dist/Button.types.d.ts +0 -6
  80. package/dist/Callout.svelte.d.ts +0 -56
  81. package/dist/Checkbox.svelte +0 -79
  82. package/dist/Checkbox.svelte.d.ts +0 -63
  83. package/dist/ColorPicker.constants.d.ts +0 -1
  84. package/dist/ColorPicker.constants.js +0 -1
  85. package/dist/ColorPicker.svelte +0 -287
  86. package/dist/ColorPicker.svelte.d.ts +0 -52
  87. package/dist/ColorPicker.types.d.ts +0 -4
  88. package/dist/ColorPicker.types.js +0 -1
  89. package/dist/Dialog.svelte.d.ts +0 -37
  90. package/dist/Dropdown.svelte.d.ts +0 -77
  91. package/dist/HexColorSliders.svelte +0 -103
  92. package/dist/HexColorSliders.svelte.d.ts +0 -51
  93. package/dist/HslColorSliders.svelte +0 -128
  94. package/dist/HslColorSliders.svelte.d.ts +0 -51
  95. package/dist/Input.svelte +0 -89
  96. package/dist/Input.svelte.d.ts +0 -74
  97. package/dist/Label.svelte +0 -197
  98. package/dist/Label.svelte.d.ts +0 -82
  99. package/dist/Label.types.d.ts +0 -6
  100. package/dist/Label.types.js +0 -1
  101. package/dist/Link.svelte +0 -57
  102. package/dist/Link.svelte.d.ts +0 -65
  103. package/dist/List.svelte.d.ts +0 -75
  104. package/dist/List.types.d.ts +0 -13
  105. package/dist/ListItem.svelte +0 -78
  106. package/dist/ListItem.svelte.d.ts +0 -67
  107. package/dist/Menu.svelte.d.ts +0 -63
  108. package/dist/MenuBar.svelte.d.ts +0 -58
  109. package/dist/MenuButton.svelte +0 -145
  110. package/dist/MenuButton.svelte.d.ts +0 -71
  111. package/dist/MenuItem.svelte.d.ts +0 -83
  112. package/dist/MenuItemDisplay.svelte +0 -32
  113. package/dist/MenuItemDisplay.svelte.d.ts +0 -39
  114. package/dist/MenuSeparator.svelte +0 -9
  115. package/dist/MenuSeparator.svelte.d.ts +0 -20
  116. package/dist/Popover.svelte.d.ts +0 -59
  117. package/dist/Progress.constants.d.ts +0 -1
  118. package/dist/Progress.constants.js +0 -1
  119. package/dist/Progress.svelte +0 -83
  120. package/dist/Progress.svelte.d.ts +0 -61
  121. package/dist/Progress.types.d.ts +0 -4
  122. package/dist/Radio.svelte +0 -126
  123. package/dist/Radio.svelte.d.ts +0 -65
  124. package/dist/RgbColorSliders.svelte +0 -93
  125. package/dist/RgbColorSliders.svelte.d.ts +0 -24
  126. package/dist/Select.svelte.d.ts +0 -83
  127. package/dist/Slider.svelte +0 -190
  128. package/dist/Slider.svelte.d.ts +0 -66
  129. package/dist/Switch.svelte +0 -110
  130. package/dist/Switch.svelte.d.ts +0 -74
  131. package/dist/Tab.svelte +0 -94
  132. package/dist/Tab.svelte.d.ts +0 -71
  133. package/dist/TabList.svelte.d.ts +0 -70
  134. package/dist/TabList.types.d.ts +0 -13
  135. package/dist/TextArea.svelte.d.ts +0 -69
  136. package/dist/Tooltip.svelte +0 -106
  137. package/dist/Tooltip.svelte.d.ts +0 -70
  138. package/dist/Tree.svelte +0 -104
  139. package/dist/Tree.svelte.d.ts +0 -67
  140. package/dist/Tree.types.d.ts +0 -13
  141. package/dist/TreeChevron.svelte +0 -66
  142. package/dist/TreeChevron.svelte.d.ts +0 -53
  143. package/dist/TreeItem.svelte.d.ts +0 -101
  144. package/dist/TreeItem.types.d.ts +0 -14
  145. package/dist/TreeItemDisplay.svelte +0 -74
  146. package/dist/TreeItemDisplay.svelte.d.ts +0 -73
  147. package/dist/css/Button.base.css +0 -54
  148. package/dist/css/Button.colorful.css +0 -17
  149. package/dist/css/Button.css +0 -8
  150. package/dist/css/Button.disabled.css +0 -22
  151. package/dist/css/Button.secondary.colorful.css +0 -15
  152. package/dist/css/Button.secondary.css +0 -11
  153. package/dist/css/Button.shapes.css +0 -14
  154. package/dist/css/Button.tool.colorful.css +0 -13
  155. package/dist/css/Button.tool.css +0 -18
  156. package/dist/css/Callout.base.css +0 -55
  157. package/dist/css/Callout.colorful.css +0 -5
  158. package/dist/css/Callout.css +0 -2
  159. package/dist/css/Checkbox.base.css +0 -121
  160. package/dist/css/Checkbox.colorful.css +0 -17
  161. package/dist/css/Checkbox.css +0 -3
  162. package/dist/css/Checkbox.disabled.css +0 -28
  163. package/dist/css/ColorPicker.base.css +0 -23
  164. package/dist/css/ColorPicker.css +0 -1
  165. package/dist/css/Dialog.base.css +0 -114
  166. package/dist/css/Dialog.css +0 -1
  167. package/dist/css/Dropdown.base.css +0 -105
  168. package/dist/css/Dropdown.colorful.css +0 -23
  169. package/dist/css/Dropdown.composed.css +0 -11
  170. package/dist/css/Dropdown.css +0 -4
  171. package/dist/css/Dropdown.disabled.css +0 -32
  172. package/dist/css/HexColorSliders.base.css +0 -87
  173. package/dist/css/HexColorSliders.css +0 -1
  174. package/dist/css/HslColorSliders.base.css +0 -105
  175. package/dist/css/HslColorSliders.css +0 -1
  176. package/dist/css/Input.base.css +0 -72
  177. package/dist/css/Input.colorful.css +0 -22
  178. package/dist/css/Input.composed.css +0 -12
  179. package/dist/css/Input.css +0 -4
  180. package/dist/css/Input.disabled.css +0 -24
  181. package/dist/css/Label.base.css +0 -114
  182. package/dist/css/Label.boxed.colorful.css +0 -21
  183. package/dist/css/Label.boxed.css +0 -31
  184. package/dist/css/Label.colorful.css +0 -3
  185. package/dist/css/Label.css +0 -5
  186. package/dist/css/Label.disabled.css +0 -9
  187. package/dist/css/Link.base.css +0 -43
  188. package/dist/css/Link.colorful.css +0 -15
  189. package/dist/css/Link.css +0 -11
  190. package/dist/css/Link.disabled.css +0 -10
  191. package/dist/css/Link.ghost.colorful.css +0 -7
  192. package/dist/css/Link.ghost.css +0 -11
  193. package/dist/css/Link.text-underline.css +0 -8
  194. package/dist/css/Link.text-underline.ghost.css +0 -13
  195. package/dist/css/Link.undecorated.colorful.css +0 -8
  196. package/dist/css/Link.undecorated.css +0 -8
  197. package/dist/css/Link.undecorated.ghost.css +0 -8
  198. package/dist/css/Link.undecorated.underline.css +0 -8
  199. package/dist/css/List.base.css +0 -84
  200. package/dist/css/List.composed.css +0 -8
  201. package/dist/css/List.css +0 -3
  202. package/dist/css/List.disabled.css +0 -7
  203. package/dist/css/ListItem.base.css +0 -33
  204. package/dist/css/ListItem.css +0 -2
  205. package/dist/css/ListItem.disabled.css +0 -28
  206. package/dist/css/Menu.base.css +0 -21
  207. package/dist/css/Menu.css +0 -1
  208. package/dist/css/MenuBar.base.css +0 -9
  209. package/dist/css/MenuBar.css +0 -1
  210. package/dist/css/MenuButton.base.css +0 -13
  211. package/dist/css/MenuButton.css +0 -1
  212. package/dist/css/MenuItem.base.css +0 -48
  213. package/dist/css/MenuItem.css +0 -1
  214. package/dist/css/MenuItemDisplay.base.css +0 -79
  215. package/dist/css/MenuItemDisplay.css +0 -2
  216. package/dist/css/MenuItemDisplay.disabled.css +0 -28
  217. package/dist/css/MenuSeparator.base.css +0 -5
  218. package/dist/css/MenuSeparator.css +0 -1
  219. package/dist/css/Popover.css +0 -21
  220. package/dist/css/Progress.base.css +0 -85
  221. package/dist/css/Progress.css +0 -2
  222. package/dist/css/Progress.disabled.css +0 -17
  223. package/dist/css/Radio.base.css +0 -109
  224. package/dist/css/Radio.colorful.css +0 -18
  225. package/dist/css/Radio.css +0 -3
  226. package/dist/css/Radio.disabled.css +0 -28
  227. package/dist/css/RgbColorSliders.base.css +0 -94
  228. package/dist/css/RgbColorSliders.css +0 -1
  229. package/dist/css/Select.base.css +0 -101
  230. package/dist/css/Select.colorful.css +0 -24
  231. package/dist/css/Select.composed.css +0 -12
  232. package/dist/css/Select.css +0 -4
  233. package/dist/css/Select.disabled.css +0 -28
  234. package/dist/css/Slider.base.css +0 -152
  235. package/dist/css/Slider.colorful.css +0 -11
  236. package/dist/css/Slider.composed.css +0 -8
  237. package/dist/css/Slider.css +0 -4
  238. package/dist/css/Slider.disabled.css +0 -30
  239. package/dist/css/Switch.base.css +0 -175
  240. package/dist/css/Switch.colorful.css +0 -45
  241. package/dist/css/Switch.css +0 -3
  242. package/dist/css/Switch.disabled.css +0 -30
  243. package/dist/css/Tab.base.css +0 -96
  244. package/dist/css/Tab.colorful.css +0 -13
  245. package/dist/css/Tab.css +0 -3
  246. package/dist/css/Tab.disabled.css +0 -36
  247. package/dist/css/TabList.base.css +0 -34
  248. package/dist/css/TabList.css +0 -1
  249. package/dist/css/TextArea.base.css +0 -62
  250. package/dist/css/TextArea.colorful.css +0 -17
  251. package/dist/css/TextArea.composed.css +0 -8
  252. package/dist/css/TextArea.css +0 -4
  253. package/dist/css/TextArea.disabled.css +0 -28
  254. package/dist/css/Tooltip.base.css +0 -6
  255. package/dist/css/Tooltip.css +0 -1
  256. package/dist/css/Tree.base.css +0 -49
  257. package/dist/css/Tree.composed.css +0 -8
  258. package/dist/css/Tree.css +0 -3
  259. package/dist/css/Tree.disabled.css +0 -27
  260. package/dist/css/TreeChevron.base.css +0 -86
  261. package/dist/css/TreeChevron.css +0 -1
  262. package/dist/css/TreeItem.base.css +0 -3
  263. package/dist/css/TreeItem.css +0 -1
  264. package/dist/css/TreeItemDisplay.base.css +0 -48
  265. package/dist/css/TreeItemDisplay.colorful.css +0 -9
  266. package/dist/css/TreeItemDisplay.css +0 -3
  267. package/dist/css/TreeItemDisplay.disabled.css +0 -28
  268. package/dist/css/dark-mode.css +0 -134
  269. package/dist/css/light-mode.css +0 -134
  270. package/dist/css/sterling.css +0 -37
  271. package/dist/package.json +0 -108
  272. /package/{dist/@types → @types}/clickOutside.d.ts +0 -0
  273. /package/{dist/Button.types.js → Callout.types.js} +0 -0
  274. /package/{dist/Label.constants.d.ts → Label.constants.d.ts} +0 -0
  275. /package/{dist/Label.constants.js → Label.constants.js} +0 -0
  276. /package/{dist/List.constants.d.ts → List.constants.d.ts} +0 -0
  277. /package/{dist/List.constants.js → List.constants.js} +0 -0
  278. /package/{dist/List.types.js → List.types.js} +0 -0
  279. /package/{dist/MenuBar.constants.d.ts → MenuBar.constants.d.ts} +0 -0
  280. /package/{dist/MenuBar.constants.js → MenuBar.constants.js} +0 -0
  281. /package/{dist/MenuBar.types.d.ts → MenuBar.types.d.ts} +0 -0
  282. /package/{dist/MenuBar.types.js → MenuBar.types.js} +0 -0
  283. /package/{dist/MenuItem.constants.d.ts → MenuItem.constants.d.ts} +0 -0
  284. /package/{dist/MenuItem.constants.js → MenuItem.constants.js} +0 -0
  285. /package/{dist/MenuItem.types.js → MenuItem.types.js} +0 -0
  286. /package/{dist/MenuItem.utils.d.ts → MenuItem.utils.d.ts} +0 -0
  287. /package/{dist/MenuItem.utils.js → MenuItem.utils.js} +0 -0
  288. /package/{dist/Popover.constants.d.ts → Popover.constants.d.ts} +0 -0
  289. /package/{dist/Popover.constants.js → Popover.constants.js} +0 -0
  290. /package/{dist/Popover.types.d.ts → Popover.types.d.ts} +0 -0
  291. /package/{dist/Popover.types.js → Popover.types.js} +0 -0
  292. /package/{dist/Portal.constants.d.ts → Portal.constants.d.ts} +0 -0
  293. /package/{dist/Portal.constants.js → Portal.constants.js} +0 -0
  294. /package/{dist/Portal.types.d.ts → Portal.types.d.ts} +0 -0
  295. /package/{dist/Portal.types.js → Portal.types.js} +0 -0
  296. /package/{dist/Progress.types.js → Progress.types.js} +0 -0
  297. /package/{dist/TabList.constants.d.ts → TabList.constants.d.ts} +0 -0
  298. /package/{dist/TabList.constants.js → TabList.constants.js} +0 -0
  299. /package/{dist/TabList.types.js → TabList.types.js} +0 -0
  300. /package/{dist/TextArea.constants.d.ts → TextArea.constants.d.ts} +0 -0
  301. /package/{dist/TextArea.constants.js → TextArea.constants.js} +0 -0
  302. /package/{dist/TextArea.types.d.ts → TextArea.types.d.ts} +0 -0
  303. /package/{dist/TextArea.types.js → TextArea.types.js} +0 -0
  304. /package/{dist/Tree.constants.d.ts → Tree.constants.d.ts} +0 -0
  305. /package/{dist/Tree.constants.js → Tree.constants.js} +0 -0
  306. /package/{dist/Tree.types.js → Tree.types.js} +0 -0
  307. /package/{dist/TreeItem.constants.d.ts → TreeItem.constants.d.ts} +0 -0
  308. /package/{dist/TreeItem.constants.js → TreeItem.constants.js} +0 -0
  309. /package/{dist/TreeItem.types.js → TreeItem.types.js} +0 -0
  310. /package/{dist/actions → actions}/applyLightDarkMode.d.ts +0 -0
  311. /package/{dist/actions → actions}/applyLightDarkMode.js +0 -0
  312. /package/{dist/actions → actions}/forwardEvents.d.ts +0 -0
  313. /package/{dist/actions → actions}/forwardEvents.js +0 -0
  314. /package/{dist/actions → actions}/portal.d.ts +0 -0
  315. /package/{dist/actions → actions}/portal.js +0 -0
  316. /package/{dist/actions → actions}/trapKeyboardFocus.d.ts +0 -0
  317. /package/{dist/actions → actions}/trapKeyboardFocus.js +0 -0
  318. /package/{dist/idGenerator.d.ts → idGenerator.d.ts} +0 -0
  319. /package/{dist/idGenerator.js → idGenerator.js} +0 -0
  320. /package/{dist/mediaQueries → mediaQueries}/prefersColorSchemeDark.d.ts +0 -0
  321. /package/{dist/mediaQueries → mediaQueries}/prefersColorSchemeDark.js +0 -0
  322. /package/{dist/mediaQueries → mediaQueries}/prefersReducedMotion.d.ts +0 -0
  323. /package/{dist/mediaQueries → mediaQueries}/prefersReducedMotion.js +0 -0
  324. /package/{dist/mediaQueries → mediaQueries}/usingKeyboard.d.ts +0 -0
  325. /package/{dist/mediaQueries → mediaQueries}/usingKeyboard.js +0 -0
@@ -1,287 +0,0 @@
1
- <script>import { tick } from 'svelte';
2
- import { TinyColor } from '@ctrl/tinycolor';
3
- import Dropdown from './Dropdown.svelte';
4
- import Input from './Input.svelte';
5
- import Tab from './Tab.svelte';
6
- import TabList from './TabList.svelte';
7
- import RgbColorSliders from './RgbColorSliders.svelte';
8
- import HslColorSliders from './HslColorSliders.svelte';
9
- import HexColorSliders from './HexColorSliders.svelte';
10
- import { round } from 'lodash-es';
11
- import { trapKeyboardFocus } from './actions/trapKeyboardFocus';
12
- // ----- Constants ----- //
13
- const defaultColorText = '#000000';
14
- // ----- Props ----- //
15
- /** The color value in HEX, RGB, or HSL format */
16
- export let colorText = defaultColorText;
17
- /** The current color format */
18
- export let colorFormat = 'hex';
19
- /** When true, the picker is disabled. */
20
- export let disabled = false;
21
- /** When true, the dropdown is open. */
22
- export let open = false;
23
- /** Additional class names to apply. */
24
- export let variant = '';
25
- /** Additional class names to apply to the value input. */
26
- export let valueVariant = '';
27
- /** Additional class names to apply to sliders. */
28
- export let sliderVariant = '';
29
- // ----- State ----- //
30
- let hue = 0;
31
- let saturation = 0;
32
- let lightness = 0;
33
- let red = 0;
34
- let green = 0;
35
- let blue = 0;
36
- let alpha = 1;
37
- let hexAlpha = 255;
38
- let updating = false;
39
- let tabListRef;
40
- let tabsRef;
41
- // ----- Update HSL, RGB, Text ----- //
42
- const updateFromRgb = async () => {
43
- // tinycolor requires window
44
- if (globalThis.window) {
45
- if (!updating && (colorFormat === 'hex' || colorFormat === 'rgb')) {
46
- updating = true;
47
- const newAlpha = colorFormat === 'hex' ? hexAlpha / 255 : alpha;
48
- const color = new TinyColor({ r: red, g: green, b: blue, a: newAlpha });
49
- const hsl = color.toHsl();
50
- hue = Math.round(hsl.h);
51
- saturation = Math.round(hsl.s * 100);
52
- lightness = Math.round(hsl.l * 100);
53
- switch (colorFormat) {
54
- case 'rgb':
55
- colorText = color.toRgbString();
56
- hexAlpha = Math.round(alpha * 255);
57
- break;
58
- case 'hex':
59
- colorText = alpha === 100 ? color.toHexString() : color.toHex8String();
60
- alpha = round(hexAlpha / 255, 2);
61
- break;
62
- }
63
- await tick();
64
- updating = false;
65
- }
66
- }
67
- };
68
- const updateFromHsl = async () => {
69
- // tinycolor requires window
70
- if (globalThis.window) {
71
- if (!updating && colorFormat === 'hsl') {
72
- updating = true;
73
- const color = new TinyColor({ h: hue, s: saturation / 100, l: lightness / 100, a: alpha });
74
- const rgb = color.toRgb();
75
- red = rgb.r;
76
- green = rgb.g;
77
- blue = rgb.b;
78
- colorText = color.toHslString();
79
- hexAlpha = Math.round(alpha * 255);
80
- await tick();
81
- updating = false;
82
- }
83
- }
84
- };
85
- const updateColorsFromText = async () => {
86
- // tinycolor requires window
87
- if (globalThis.window) {
88
- const color = new TinyColor(colorText);
89
- if (color.isValid) {
90
- if (!updating) {
91
- updating = true;
92
- switch (color.format) {
93
- case 'hsl':
94
- colorFormat = 'hsl';
95
- break;
96
- case 'rgb':
97
- colorFormat = 'rgb';
98
- break;
99
- case 'hex':
100
- case 'hex4':
101
- case 'hex8':
102
- colorFormat = 'hex';
103
- break;
104
- default:
105
- break;
106
- }
107
- const hsl = color.toHsl();
108
- hue = Math.round(hsl.h);
109
- saturation = Math.round(hsl.s * 100);
110
- lightness = Math.round(hsl.l * 100);
111
- const rgb = color.toRgb();
112
- red = rgb.r;
113
- green = rgb.g;
114
- blue = rgb.b;
115
- if (rgb.a) {
116
- alpha = hsl.a;
117
- hexAlpha = Math.round(alpha * 255);
118
- }
119
- await tick();
120
- updating = false;
121
- }
122
- }
123
- }
124
- };
125
- $: {
126
- globalThis.window;
127
- colorText;
128
- updateColorsFromText();
129
- }
130
- $: {
131
- globalThis.window;
132
- colorFormat;
133
- hue;
134
- saturation;
135
- lightness;
136
- alpha;
137
- updateFromHsl();
138
- }
139
- $: {
140
- globalThis.window;
141
- colorFormat;
142
- red;
143
- green;
144
- blue;
145
- alpha;
146
- hexAlpha;
147
- updateFromRgb();
148
- }
149
- // ----- Event handlers ----- //
150
- const onInputBlur = async () => {
151
- if (globalThis.window) {
152
- if (!updating) {
153
- if (colorText.trim().length === 0) {
154
- colorText = defaultColorText;
155
- return;
156
- }
157
- const color = new TinyColor(colorText);
158
- if (color.isValid) {
159
- updating = true;
160
- switch (colorFormat) {
161
- case 'hsl':
162
- colorText = color.toHslString();
163
- break;
164
- case 'rgb':
165
- colorText = color.toRgbString();
166
- break;
167
- case 'hex':
168
- colorText = alpha === 1 ? color.toHexString() : color.toHex8String();
169
- break;
170
- default:
171
- break;
172
- }
173
- await tick();
174
- updating = false;
175
- }
176
- }
177
- }
178
- };
179
- const onInputClick = (event) => {
180
- event.stopPropagation();
181
- return false;
182
- };
183
- const onInputKeydown = (event) => {
184
- switch (event.key) {
185
- case 'Tab':
186
- if (open) {
187
- setTimeout(() => {
188
- tabListRef?.focus();
189
- }, 0);
190
- event.preventDefault();
191
- event.stopPropagation();
192
- return false;
193
- }
194
- break;
195
- case 'Escape':
196
- if (open) {
197
- open = false;
198
- event.preventDefault();
199
- event.stopPropagation();
200
- return false;
201
- }
202
- break;
203
- }
204
- // prevent typing from bubbling to the dropdown
205
- event.stopImmediatePropagation();
206
- };
207
- // -----Initialization ----- //
208
- updateColorsFromText();
209
- </script>
210
-
211
- <div class={`sterling-color-picker ${variant}`}>
212
- <Dropdown
213
- {disabled}
214
- bind:open
215
- on:blur
216
- on:click
217
- on:copy
218
- on:cut
219
- on:dblclick
220
- on:dragend
221
- on:dragenter
222
- on:dragleave
223
- on:dragover
224
- on:dragstart
225
- on:drop
226
- on:focus
227
- on:focusin
228
- on:focusout
229
- on:keydown
230
- on:keypress
231
- on:keyup
232
- on:mousedown
233
- on:mouseenter
234
- on:mouseleave
235
- on:mousemove
236
- on:mouseover
237
- on:mouseout
238
- on:mouseup
239
- on:wheel
240
- on:paste
241
- {variant}
242
- {...$$restProps}
243
- >
244
- <div class="value" slot="value">
245
- <div class="color-box" style="background-color: {colorText}" />
246
- <Input
247
- bind:value={colorText}
248
- {disabled}
249
- on:blur={onInputBlur}
250
- on:click={onInputClick}
251
- on:keydown={onInputKeydown}
252
- spellcheck="false"
253
- variant={`composed ${valueVariant}`}
254
- />
255
- </div>
256
- <div class="sterling-color-picker-popup" use:trapKeyboardFocus>
257
- <div class="tabs" bind:this={tabsRef}>
258
- <TabList bind:this={tabListRef} bind:selectedValue={colorFormat}>
259
- <Tab value="hex">hex</Tab>
260
- <Tab value="rgb">rgb</Tab>
261
- <Tab value="hsl">hsl</Tab>
262
- </TabList>
263
- </div>
264
- <div class="sliders">
265
- {#if colorFormat === 'rgb'}
266
- <RgbColorSliders bind:red bind:green bind:blue bind:alpha variant={sliderVariant} />
267
- {:else if colorFormat === 'hex'}
268
- <HexColorSliders
269
- bind:red
270
- bind:green
271
- bind:blue
272
- bind:alpha={hexAlpha}
273
- variant={sliderVariant}
274
- />
275
- {:else if colorFormat === 'hsl'}
276
- <HslColorSliders
277
- bind:hue
278
- bind:saturation
279
- bind:lightness
280
- bind:alpha
281
- variant={sliderVariant}
282
- />
283
- {/if}
284
- </div>
285
- </div>
286
- </Dropdown>
287
- </div>
@@ -1,52 +0,0 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- [x: string]: any;
5
- colorText?: string | undefined;
6
- colorFormat?: "hex" | "rgb" | "hsl" | undefined;
7
- disabled?: boolean | undefined;
8
- open?: boolean | undefined;
9
- variant?: string | undefined;
10
- valueVariant?: string | undefined;
11
- sliderVariant?: string | undefined;
12
- };
13
- events: {
14
- blur: FocusEvent;
15
- click: MouseEvent;
16
- copy: ClipboardEvent;
17
- cut: ClipboardEvent;
18
- dblclick: MouseEvent;
19
- dragend: DragEvent;
20
- dragenter: DragEvent;
21
- dragleave: DragEvent;
22
- dragover: DragEvent;
23
- dragstart: DragEvent;
24
- drop: DragEvent;
25
- focus: FocusEvent;
26
- focusin: FocusEvent;
27
- focusout: FocusEvent;
28
- keydown: KeyboardEvent;
29
- keypress: KeyboardEvent;
30
- keyup: KeyboardEvent;
31
- mousedown: MouseEvent;
32
- mouseenter: MouseEvent;
33
- mouseleave: MouseEvent;
34
- mousemove: MouseEvent;
35
- mouseover: MouseEvent;
36
- mouseout: MouseEvent;
37
- mouseup: MouseEvent;
38
- wheel: WheelEvent;
39
- paste: ClipboardEvent;
40
- } & {
41
- [evt: string]: CustomEvent<any>;
42
- };
43
- slots: {};
44
- exports?: undefined;
45
- bindings?: undefined;
46
- };
47
- export type ColorPickerProps = typeof __propDef.props;
48
- export type ColorPickerEvents = typeof __propDef.events;
49
- export type ColorPickerSlots = typeof __propDef.slots;
50
- export default class ColorPicker extends SvelteComponent<ColorPickerProps, ColorPickerEvents, ColorPickerSlots> {
51
- }
52
- export {};
@@ -1,4 +0,0 @@
1
- import type { COLOR_FORMATS } from './ColorPicker.constants';
2
- type ColorFormatTuple = typeof COLOR_FORMATS;
3
- export type ColorFormat = ColorFormatTuple[number];
4
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,37 +0,0 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- [x: string]: any;
5
- backdropCloses?: boolean | undefined;
6
- open?: boolean | undefined;
7
- returnValue?: string | undefined;
8
- variant?: string | undefined;
9
- };
10
- events: {
11
- close: Event;
12
- cancel: Event;
13
- } & {
14
- [evt: string]: CustomEvent<any>;
15
- };
16
- slots: {
17
- content: {};
18
- header: {};
19
- title: {};
20
- body: {};
21
- footer: {};
22
- };
23
- exports?: undefined;
24
- bindings?: undefined;
25
- };
26
- export type DialogProps = typeof __propDef.props;
27
- export type DialogEvents = typeof __propDef.events;
28
- export type DialogSlots = typeof __propDef.slots;
29
- /**
30
- * A styled &lt;dialog&gt; element
31
- *
32
- * - Slots for typical dialog content.
33
- * - Props and events to make using &lt;dialog&gt; easier
34
- */
35
- export default class Dialog extends SvelteComponent<DialogProps, DialogEvents, DialogSlots> {
36
- }
37
- export {};
@@ -1,77 +0,0 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- [x: string]: any;
5
- disabled?: boolean | undefined;
6
- open?: boolean | undefined;
7
- stayOpenOnClickAway?: boolean | undefined;
8
- variant?: string | undefined;
9
- click?: (() => void) | undefined;
10
- blur?: (() => void) | undefined;
11
- focus?: ((options?: FocusOptions) => void) | undefined;
12
- };
13
- events: {
14
- blur: FocusEvent;
15
- click: MouseEvent;
16
- copy: ClipboardEvent;
17
- cut: ClipboardEvent;
18
- dblclick: MouseEvent;
19
- dragend: DragEvent;
20
- dragenter: DragEvent;
21
- dragleave: DragEvent;
22
- dragover: DragEvent;
23
- dragstart: DragEvent;
24
- drop: DragEvent;
25
- focus: FocusEvent;
26
- focusin: FocusEvent;
27
- focusout: FocusEvent;
28
- keydown: KeyboardEvent;
29
- keypress: KeyboardEvent;
30
- keyup: KeyboardEvent;
31
- mousedown: MouseEvent;
32
- mouseenter: MouseEvent;
33
- mouseleave: MouseEvent;
34
- mousemove: MouseEvent;
35
- mouseover: MouseEvent;
36
- mouseout: MouseEvent;
37
- mouseup: MouseEvent;
38
- wheel: WheelEvent;
39
- paste: ClipboardEvent;
40
- open: CustomEvent<any>;
41
- } & {
42
- [evt: string]: CustomEvent<any>;
43
- };
44
- slots: {
45
- value: {
46
- disabled: boolean;
47
- open: boolean;
48
- variant: string;
49
- };
50
- button: {
51
- disabled: boolean;
52
- open: boolean;
53
- variant: string;
54
- };
55
- icon: {
56
- disabled: boolean;
57
- open: boolean;
58
- variant: string;
59
- };
60
- default: {
61
- disabled: boolean;
62
- open: boolean;
63
- variant: string;
64
- };
65
- };
66
- exports?: undefined;
67
- bindings?: undefined;
68
- };
69
- export type DropdownProps = typeof __propDef.props;
70
- export type DropdownEvents = typeof __propDef.events;
71
- export type DropdownSlots = typeof __propDef.slots;
72
- export default class Dropdown extends SvelteComponent<DropdownProps, DropdownEvents, DropdownSlots> {
73
- get click(): () => void;
74
- get blur(): () => void;
75
- get focus(): (options?: FocusOptions | undefined) => void;
76
- }
77
- export {};
@@ -1,103 +0,0 @@
1
- <script>import { createEventDispatcher } from 'svelte';
2
- import Input from './Input.svelte';
3
- import Slider from './Slider.svelte';
4
- // ----- Props ----- //
5
- /** The red value. */
6
- export let red = 0;
7
- /** The green value. */
8
- export let green = 0;
9
- /** The blue value. */
10
- export let blue = 0;
11
- /** The alpha value. */
12
- export let alpha = 255;
13
- /** Additional class names to apply. */
14
- export let variant = '';
15
- // ----- State ----- //
16
- let redText = red.toString(16).padStart(2, '0');
17
- let greenText = green.toString(16).padStart(2, '0');
18
- let blueText = blue.toString(16).padStart(2, '0');
19
- let alphaText = alpha.toString(16).padStart(2, '0');
20
- $: {
21
- redText = red.toString(16).padStart(2, '0');
22
- }
23
- $: {
24
- greenText = green.toString(16).padStart(2, '0');
25
- }
26
- $: {
27
- blueText = blue.toString(16).padStart(2, '0');
28
- }
29
- $: {
30
- alphaText = alpha.toString(16).padStart(2, '0');
31
- }
32
- // ----- Events ----- //
33
- const dispatcher = createEventDispatcher();
34
- const raiseChange = () => {
35
- dispatcher('change', { red, green, blue, alpha });
36
- };
37
- $: red, green, blue, alpha, raiseChange();
38
- // ----- Event Handlers ----- //
39
- const onRedInputChange = (event) => {
40
- const inputChangeEvent = event;
41
- const text = inputChangeEvent?.currentTarget?.value;
42
- red = text ? Number.parseInt(text, 16) : red;
43
- };
44
- const onGreenInputChange = (event) => {
45
- const inputChangeEvent = event;
46
- const text = inputChangeEvent?.currentTarget?.value;
47
- green = text ? Number.parseInt(text, 16) : green;
48
- };
49
- const onBlueInputChange = (event) => {
50
- const inputChangeEvent = event;
51
- const text = inputChangeEvent?.currentTarget?.value;
52
- blue = text ? Number.parseInt(text, 16) : blue;
53
- };
54
- const onAlphaInputchange = (event) => {
55
- const inputChangeEvent = event;
56
- const text = inputChangeEvent?.currentTarget?.value;
57
- alpha = text ? Number.parseInt(text, 16) : alpha;
58
- };
59
- </script>
60
-
61
- <!-- svelte-ignore a11y-no-static-element-interactions -->
62
- <div
63
- class={`sterling-hex-color-sliders ${variant}`}
64
- on:blur
65
- on:click
66
- on:copy
67
- on:cut
68
- on:dblclick
69
- on:dragend
70
- on:dragenter
71
- on:dragleave
72
- on:dragover
73
- on:dragstart
74
- on:drop
75
- on:focus
76
- on:focusin
77
- on:focusout
78
- on:keydown
79
- on:keypress
80
- on:keyup
81
- on:mousedown
82
- on:mouseenter
83
- on:mouseleave
84
- on:mousemove
85
- on:mouseover
86
- on:mouseout
87
- on:mouseup
88
- on:wheel
89
- on:paste
90
- {...$$restProps}
91
- style={`--red:${red};--green:${green};--blue:${blue}`}
92
- >
93
- <Slider min={0} max={255} precision={0} bind:value={red} variant="red" />
94
- <Input bind:value={redText} variant="red" on:change={(e) => onRedInputChange(e)} />
95
- <Slider min={0} max={255} precision={0} bind:value={green} variant="green" />
96
- <Input bind:value={greenText} variant="green" on:change={(e) => onGreenInputChange(e)} />
97
- <Slider min={0} max={255} precision={0} bind:value={blue} variant="blue" />
98
- <Input bind:value={blueText} variant="blue" on:change={(e) => onBlueInputChange(e)} />
99
- <div class="alpha-hatch" />
100
- <div class="alpha-gradient" />
101
- <Slider min={0} max={255} precision={0} bind:value={alpha} variant="alpha" />
102
- <Input bind:value={alphaText} variant="alpha" on:change={(e) => onAlphaInputchange(e)} />
103
- </div>
@@ -1,51 +0,0 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- [x: string]: any;
5
- red?: number | undefined;
6
- green?: number | undefined;
7
- blue?: number | undefined;
8
- alpha?: number | undefined;
9
- variant?: string | undefined;
10
- };
11
- events: {
12
- blur: FocusEvent;
13
- click: MouseEvent;
14
- copy: ClipboardEvent;
15
- cut: ClipboardEvent;
16
- dblclick: MouseEvent;
17
- dragend: DragEvent;
18
- dragenter: DragEvent;
19
- dragleave: DragEvent;
20
- dragover: DragEvent;
21
- dragstart: DragEvent;
22
- drop: DragEvent;
23
- focus: FocusEvent;
24
- focusin: FocusEvent;
25
- focusout: FocusEvent;
26
- keydown: KeyboardEvent;
27
- keypress: KeyboardEvent;
28
- keyup: KeyboardEvent;
29
- mousedown: MouseEvent;
30
- mouseenter: MouseEvent;
31
- mouseleave: MouseEvent;
32
- mousemove: MouseEvent;
33
- mouseover: MouseEvent;
34
- mouseout: MouseEvent;
35
- mouseup: MouseEvent;
36
- wheel: WheelEvent;
37
- paste: ClipboardEvent;
38
- change: CustomEvent<any>;
39
- } & {
40
- [evt: string]: CustomEvent<any>;
41
- };
42
- slots: {};
43
- exports?: undefined;
44
- bindings?: undefined;
45
- };
46
- export type HexColorSlidersProps = typeof __propDef.props;
47
- export type HexColorSlidersEvents = typeof __propDef.events;
48
- export type HexColorSlidersSlots = typeof __propDef.slots;
49
- export default class HexColorSliders extends SvelteComponent<HexColorSlidersProps, HexColorSlidersEvents, HexColorSlidersSlots> {
50
- }
51
- export {};