@marianmeres/stuic 1.126.0 → 2.0.0-next.2

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 (252) hide show
  1. package/README.md +2 -8
  2. package/dist/_shared.css +2 -0
  3. package/dist/actions/autogrow.svelte.d.ts +6 -0
  4. package/dist/actions/autogrow.svelte.js +19 -0
  5. package/dist/actions/highlight-dragover.svelte.d.ts +7 -0
  6. package/dist/actions/highlight-dragover.svelte.js +38 -0
  7. package/dist/actions/index.d.ts +7 -0
  8. package/dist/actions/index.js +7 -0
  9. package/dist/actions/on-submit-validity-check.svelte.d.ts +15 -0
  10. package/dist/actions/on-submit-validity-check.svelte.js +58 -0
  11. package/dist/actions/tooltip/index.css +34 -0
  12. package/dist/actions/tooltip/tooltip.svelte.d.ts +13 -0
  13. package/dist/actions/tooltip/tooltip.svelte.js +203 -0
  14. package/dist/actions/trim.svelte.d.ts +4 -0
  15. package/dist/actions/trim.svelte.js +17 -0
  16. package/dist/actions/{validate.d.ts → validate.svelte.d.ts} +8 -8
  17. package/dist/actions/validate.svelte.js +90 -0
  18. package/dist/components/AlertConfirmPrompt/AlertConfirmPrompt.svelte +59 -385
  19. package/dist/components/AlertConfirmPrompt/AlertConfirmPrompt.svelte.d.ts +9 -101
  20. package/dist/components/AlertConfirmPrompt/Current.svelte +202 -0
  21. package/dist/components/AlertConfirmPrompt/Current.svelte.d.ts +22 -0
  22. package/dist/components/AlertConfirmPrompt/acp-icons.d.ts +7 -2
  23. package/dist/components/AlertConfirmPrompt/acp-icons.js +8 -8
  24. package/dist/components/AlertConfirmPrompt/alert-confirm-prompt-stack.svelte.d.ts +63 -0
  25. package/dist/components/AlertConfirmPrompt/alert-confirm-prompt-stack.svelte.js +144 -0
  26. package/dist/components/AlertConfirmPrompt/index.d.ts +2 -0
  27. package/dist/components/AlertConfirmPrompt/index.js +2 -0
  28. package/dist/components/AnimatedElipsis/AnimatedEllipsis.svelte +47 -0
  29. package/dist/components/AnimatedElipsis/AnimatedEllipsis.svelte.d.ts +7 -0
  30. package/dist/components/AnimatedElipsis/index.d.ts +1 -0
  31. package/dist/components/AnimatedElipsis/index.js +1 -0
  32. package/dist/components/AppShell/AppShell.svelte +188 -127
  33. package/dist/components/AppShell/AppShell.svelte.d.ts +62 -43
  34. package/dist/components/AppShell/index.d.ts +1 -0
  35. package/dist/components/AppShell/index.js +1 -0
  36. package/dist/components/Backdrop/Backdrop.svelte +149 -49
  37. package/dist/components/Backdrop/Backdrop.svelte.d.ts +22 -37
  38. package/dist/components/Backdrop/index.d.ts +1 -0
  39. package/dist/components/Backdrop/index.js +1 -0
  40. package/dist/components/Button/Button.svelte +122 -146
  41. package/dist/components/Button/Button.svelte.d.ts +22 -80
  42. package/dist/components/Button/index.css +16 -0
  43. package/dist/components/Button/index.d.ts +1 -0
  44. package/dist/components/Button/index.js +1 -0
  45. package/dist/components/ColResize/ColResize.svelte +0 -0
  46. package/dist/components/ColResize/ColResize.svelte.d.ts +26 -0
  47. package/dist/components/ColorScheme/{LocalColorScheme.svelte → ColorSchemeLocal.svelte} +2 -2
  48. package/dist/components/ColorScheme/ColorSchemeLocal.svelte.d.ts +26 -0
  49. package/dist/components/ColorScheme/{SystemAwareColorScheme.svelte → ColorSchemeSystemAware.svelte} +4 -4
  50. package/dist/components/ColorScheme/ColorSchemeSystemAware.svelte.d.ts +26 -0
  51. package/dist/components/ColorScheme/color-scheme.d.ts +26 -8
  52. package/dist/components/ColorScheme/color-scheme.js +40 -16
  53. package/dist/components/ColorScheme/index.d.ts +3 -0
  54. package/dist/components/ColorScheme/index.js +3 -0
  55. package/dist/components/DismissibleMessage/DismissibleMessage.svelte +76 -83
  56. package/dist/components/DismissibleMessage/DismissibleMessage.svelte.d.ts +16 -37
  57. package/dist/components/DismissibleMessage/index.css +13 -0
  58. package/dist/components/DismissibleMessage/index.d.ts +1 -0
  59. package/dist/components/DismissibleMessage/index.js +1 -0
  60. package/dist/components/Drawer/Drawer.svelte +155 -84
  61. package/dist/components/Drawer/Drawer.svelte.d.ts +24 -35
  62. package/dist/components/Drawer/index.d.ts +1 -0
  63. package/dist/components/Drawer/index.js +1 -0
  64. package/dist/components/HoverExpandableWidth/HoverExpandableWidth.svelte +150 -111
  65. package/dist/components/HoverExpandableWidth/HoverExpandableWidth.svelte.d.ts +16 -29
  66. package/dist/components/HoverExpandableWidth/index.d.ts +1 -0
  67. package/dist/components/HoverExpandableWidth/index.js +1 -0
  68. package/dist/components/Input/FieldCheckbox.svelte +174 -132
  69. package/dist/components/Input/FieldCheckbox.svelte.d.ts +28 -64
  70. package/dist/components/Input/FieldFile.svelte +166 -0
  71. package/dist/components/Input/FieldFile.svelte.d.ts +41 -0
  72. package/dist/components/Input/FieldInput.svelte +143 -0
  73. package/dist/components/Input/FieldInput.svelte.d.ts +41 -0
  74. package/dist/components/Input/FieldLikeButton.svelte +206 -0
  75. package/dist/components/Input/FieldLikeButton.svelte.d.ts +41 -0
  76. package/dist/components/Input/FieldOptions.svelte +646 -0
  77. package/dist/components/Input/FieldOptions.svelte.d.ts +58 -0
  78. package/dist/components/Input/FieldRadios.svelte +126 -77
  79. package/dist/components/Input/FieldRadios.svelte.d.ts +23 -61
  80. package/dist/components/Input/FieldSelect.svelte +160 -239
  81. package/dist/components/Input/FieldSelect.svelte.d.ts +40 -88
  82. package/dist/components/Input/FieldSwitch.svelte +132 -0
  83. package/dist/components/Input/FieldSwitch.svelte.d.ts +41 -0
  84. package/dist/components/Input/FieldTextarea.svelte +146 -0
  85. package/dist/components/Input/FieldTextarea.svelte.d.ts +44 -0
  86. package/dist/components/Input/Fieldset.svelte +21 -17
  87. package/dist/components/Input/Fieldset.svelte.d.ts +10 -27
  88. package/dist/components/Input/_internal/FieldRadioInternal.svelte +186 -0
  89. package/dist/components/Input/_internal/FieldRadioInternal.svelte.d.ts +30 -0
  90. package/dist/components/Input/_internal/InputWrap.svelte +216 -0
  91. package/dist/components/Input/_internal/InputWrap.svelte.d.ts +36 -0
  92. package/dist/components/Input/index.css +134 -0
  93. package/dist/components/Input/index.d.ts +11 -0
  94. package/dist/components/Input/index.js +11 -0
  95. package/dist/components/Input/types.d.ts +11 -0
  96. package/dist/components/KbdShortcut/KbdShortcut.svelte +89 -0
  97. package/dist/components/KbdShortcut/KbdShortcut.svelte.d.ts +17 -0
  98. package/dist/components/KbdShortcut/index.d.ts +1 -0
  99. package/dist/components/KbdShortcut/index.js +1 -0
  100. package/dist/components/Modal/Modal.svelte +127 -0
  101. package/dist/components/Modal/Modal.svelte.d.ts +32 -0
  102. package/dist/components/Modal/index.d.ts +1 -0
  103. package/dist/components/Modal/index.js +1 -0
  104. package/dist/components/ModalDialog/ModalDialog.svelte +137 -81
  105. package/dist/components/ModalDialog/ModalDialog.svelte.d.ts +17 -38
  106. package/dist/components/ModalDialog/index.d.ts +1 -0
  107. package/dist/components/ModalDialog/index.js +1 -0
  108. package/dist/components/Notifications/Notifications.svelte +259 -173
  109. package/dist/components/Notifications/Notifications.svelte.d.ts +32 -60
  110. package/dist/components/Notifications/index.css +12 -0
  111. package/dist/components/Notifications/index.d.ts +2 -0
  112. package/dist/components/Notifications/index.js +2 -0
  113. package/dist/components/Notifications/notifications-icons.d.ts +1 -1
  114. package/dist/components/Notifications/notifications-icons.js +4 -4
  115. package/dist/components/Notifications/notifications-stack.svelte.d.ts +89 -0
  116. package/dist/components/Notifications/notifications-stack.svelte.js +161 -0
  117. package/dist/components/Progress/Progress.svelte +26 -0
  118. package/dist/components/Progress/Progress.svelte.d.ts +10 -0
  119. package/dist/components/Progress/_internal/Bar.svelte +31 -0
  120. package/dist/components/Progress/_internal/Bar.svelte.d.ts +10 -0
  121. package/dist/components/Progress/_internal/Circle.svelte +10 -0
  122. package/dist/components/Progress/_internal/Circle.svelte.d.ts +7 -0
  123. package/dist/components/Progress/index.css +7 -0
  124. package/dist/components/Progress/index.d.ts +1 -0
  125. package/dist/components/Progress/index.js +1 -0
  126. package/dist/components/Spinner/Spinner.svelte +56 -41
  127. package/dist/components/Spinner/Spinner.svelte.d.ts +10 -22
  128. package/dist/components/Spinner/index.d.ts +1 -0
  129. package/dist/components/Spinner/index.js +1 -0
  130. package/dist/components/Switch/Switch.svelte +158 -118
  131. package/dist/components/Switch/Switch.svelte.d.ts +25 -66
  132. package/dist/components/Switch/SwitchButton.svelte +131 -0
  133. package/dist/components/Switch/SwitchButton.svelte.d.ts +21 -0
  134. package/dist/components/Switch/index.css +7 -0
  135. package/dist/components/Switch/index.d.ts +2 -0
  136. package/dist/components/Switch/index.js +2 -0
  137. package/dist/components/Thc/Thc.svelte +67 -10
  138. package/dist/components/Thc/Thc.svelte.d.ts +18 -22
  139. package/dist/components/Thc/index.d.ts +1 -0
  140. package/dist/components/Thc/index.js +1 -0
  141. package/dist/components/TwCheck/TwCheck.svelte +34 -0
  142. package/dist/components/TwCheck/TwCheck.svelte.d.ts +10 -0
  143. package/dist/components/TwCheck/index.css +5 -0
  144. package/dist/components/TwCheck/index.d.ts +1 -0
  145. package/dist/components/TwCheck/index.js +1 -0
  146. package/dist/components/X/X.svelte +12 -5
  147. package/dist/components/X/X.svelte.d.ts +6 -18
  148. package/dist/components/X/index.d.ts +1 -0
  149. package/dist/components/X/index.js +1 -0
  150. package/dist/index.css +26 -0
  151. package/dist/index.d.ts +21 -39
  152. package/dist/index.js +23 -54
  153. package/dist/types.d.ts +251 -2
  154. package/dist/types.js +248 -0
  155. package/dist/utils/breakpoint.svelte.d.ts +19 -0
  156. package/dist/utils/breakpoint.svelte.js +42 -0
  157. package/dist/utils/debounce.d.ts +13 -0
  158. package/dist/utils/debounce.js +22 -0
  159. package/dist/utils/device-pointer.svelte.d.ts +11 -0
  160. package/dist/utils/device-pointer.svelte.js +26 -0
  161. package/dist/utils/event-modifiers.d.ts +4 -0
  162. package/dist/utils/event-modifiers.js +29 -0
  163. package/dist/utils/get-id.d.ts +1 -1
  164. package/dist/utils/get-id.js +3 -1
  165. package/dist/utils/index.d.ts +21 -0
  166. package/dist/utils/index.js +21 -0
  167. package/dist/utils/is-browser.d.ts +1 -0
  168. package/dist/utils/is-browser.js +5 -0
  169. package/dist/utils/is-mac.d.ts +1 -0
  170. package/dist/utils/is-mac.js +11 -0
  171. package/dist/utils/maybe-json-parse.d.ts +1 -0
  172. package/dist/utils/maybe-json-parse.js +12 -0
  173. package/dist/utils/maybe-json-stringify.d.ts +1 -0
  174. package/dist/utils/maybe-json-stringify.js +11 -0
  175. package/dist/utils/move-array-item.d.ts +4 -0
  176. package/dist/utils/move-array-item.js +20 -0
  177. package/dist/utils/omit-pick.d.ts +2 -2
  178. package/dist/utils/omit-pick.js +10 -8
  179. package/dist/utils/paint.d.ts +18 -0
  180. package/dist/utils/paint.js +32 -0
  181. package/dist/utils/persistent-state.svelte.d.ts +23 -0
  182. package/dist/utils/persistent-state.svelte.js +48 -0
  183. package/dist/utils/prefers-reduced-motion.svelte.d.ts +2 -0
  184. package/dist/utils/prefers-reduced-motion.svelte.js +4 -0
  185. package/dist/utils/qsa.d.ts +1 -0
  186. package/dist/utils/qsa.js +3 -0
  187. package/dist/utils/sleep.d.ts +28 -0
  188. package/dist/utils/sleep.js +33 -0
  189. package/dist/utils/storage-abstraction.d.ts +35 -0
  190. package/dist/utils/storage-abstraction.js +136 -0
  191. package/dist/utils/str-hash.d.ts +7 -0
  192. package/dist/utils/str-hash.js +35 -0
  193. package/dist/utils/throttle.d.ts +1 -0
  194. package/dist/utils/throttle.js +47 -0
  195. package/dist/utils/to-integer.d.ts +1 -0
  196. package/dist/utils/to-integer.js +11 -0
  197. package/dist/utils/tr.d.ts +5 -0
  198. package/dist/utils/tr.js +13 -0
  199. package/dist/utils/tw-merge.d.ts +10 -0
  200. package/dist/utils/tw-merge.js +16 -0
  201. package/dist/utils/ucfirst.d.ts +1 -0
  202. package/dist/utils/ucfirst.js +6 -0
  203. package/package.json +66 -73
  204. package/dist/actions/autogrow.d.ts +0 -8
  205. package/dist/actions/autogrow.js +0 -22
  206. package/dist/actions/autoscroll.d.ts +0 -21
  207. package/dist/actions/autoscroll.js +0 -60
  208. package/dist/actions/drag-drop.d.ts +0 -28
  209. package/dist/actions/drag-drop.js +0 -152
  210. package/dist/actions/on-outside.d.ts +0 -9
  211. package/dist/actions/on-outside.js +0 -27
  212. package/dist/actions/pre-submit-validity-check.d.ts +0 -3
  213. package/dist/actions/pre-submit-validity-check.js +0 -21
  214. package/dist/actions/tooltip/_make-visible.d.ts +0 -3
  215. package/dist/actions/tooltip/_make-visible.js +0 -25
  216. package/dist/actions/tooltip/_maybe-pick-safe-placement.d.ts +0 -3
  217. package/dist/actions/tooltip/_maybe-pick-safe-placement.js +0 -86
  218. package/dist/actions/tooltip/_set-position.d.ts +0 -2
  219. package/dist/actions/tooltip/_set-position.js +0 -125
  220. package/dist/actions/tooltip/tooltip.d.ts +0 -42
  221. package/dist/actions/tooltip/tooltip.js +0 -299
  222. package/dist/actions/trim.d.ts +0 -4
  223. package/dist/actions/trim.js +0 -18
  224. package/dist/actions/validate.js +0 -80
  225. package/dist/components/AlertConfirmPrompt/alert-confirm-prompt.d.ts +0 -58
  226. package/dist/components/AlertConfirmPrompt/alert-confirm-prompt.js +0 -141
  227. package/dist/components/ColorScheme/LocalColorScheme.svelte.d.ts +0 -25
  228. package/dist/components/ColorScheme/SystemAwareColorScheme.svelte.d.ts +0 -25
  229. package/dist/components/Input/Field.svelte +0 -315
  230. package/dist/components/Input/Field.svelte.d.ts +0 -102
  231. package/dist/components/Input/PinInput.svelte +0 -151
  232. package/dist/components/Input/PinInput.svelte.d.ts +0 -51
  233. package/dist/components/Input/XFieldRadioInternal.svelte +0 -143
  234. package/dist/components/Input/XFieldRadioInternal.svelte.d.ts +0 -45
  235. package/dist/components/Notifications/notifications.d.ts +0 -78
  236. package/dist/components/Notifications/notifications.js +0 -215
  237. package/dist/components/Popover/Popover.svelte +0 -24
  238. package/dist/components/Popover/Popover.svelte.d.ts +0 -22
  239. package/dist/components/Spinner/Spinner.v5.svelte +0 -114
  240. package/dist/components/Spinner/Spinner.v5.svelte.d.ts +0 -16
  241. package/dist/utils/calculate-alignment.d.ts +0 -68
  242. package/dist/utils/calculate-alignment.js +0 -183
  243. package/dist/utils/device-pointer.d.ts +0 -5
  244. package/dist/utils/device-pointer.js +0 -10
  245. package/dist/utils/prefers-reduced-motion.d.ts +0 -6
  246. package/dist/utils/prefers-reduced-motion.js +0 -26
  247. package/dist/utils/tw-merge2.d.ts +0 -3
  248. package/dist/utils/tw-merge2.js +0 -9
  249. package/dist/utils/tw-types.d.ts +0 -1
  250. package/dist/utils/window-size.d.ts +0 -22
  251. package/dist/utils/window-size.js +0 -35
  252. /package/dist/{utils/tw-types.js → components/Input/types.js} +0 -0
@@ -0,0 +1 @@
1
+ export { default as Button } from './Button.svelte';
File without changes
@@ -0,0 +1,26 @@
1
+ export default ColResize;
2
+ type ColResize = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const ColResize: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
15
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
+ $$bindings?: Bindings;
17
+ } & Exports;
18
+ (internal: unknown, props: {
19
+ $$events?: Events;
20
+ $$slots?: Slots;
21
+ }): Exports & {
22
+ $set?: any;
23
+ $on?: any;
24
+ };
25
+ z_$$bindings?: Bindings;
26
+ }
@@ -4,8 +4,8 @@
4
4
  -->
5
5
  <svelte:head>
6
6
  <script>
7
- const KEY = 'color-scheme';
7
+ const KEY = "stuic-color-scheme";
8
8
  const cls = window.document.documentElement.classList;
9
- localStorage.getItem(KEY) === 'dark' ? cls.add('dark') : cls.remove('dark');
9
+ localStorage.getItem(KEY) === "dark" ? cls.add("dark") : cls.remove("dark");
10
10
  </script>
11
11
  </svelte:head>
@@ -0,0 +1,26 @@
1
+ export default ColorSchemeLocal;
2
+ type ColorSchemeLocal = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const ColorSchemeLocal: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
15
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
+ $$bindings?: Bindings;
17
+ } & Exports;
18
+ (internal: unknown, props: {
19
+ $$events?: Events;
20
+ $$slots?: Slots;
21
+ }): Exports & {
22
+ $set?: any;
23
+ $on?: any;
24
+ };
25
+ z_$$bindings?: Bindings;
26
+ }
@@ -3,12 +3,12 @@
3
3
  -->
4
4
  <svelte:head>
5
5
  <script>
6
- const KEY = 'color-scheme';
6
+ const KEY = "stuic-color-scheme";
7
7
  const cls = window.document.documentElement.classList;
8
8
  if (KEY in localStorage) {
9
- localStorage.getItem(KEY) === 'dark' ? cls.add('dark') : cls.remove('dark');
10
- } else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
11
- cls.add('dark');
9
+ localStorage.getItem(KEY) === "dark" ? cls.add("dark") : cls.remove("dark");
10
+ } else if (window.matchMedia("(prefers-color-scheme: dark)").matches) {
11
+ cls.add("dark");
12
12
  }
13
13
  </script>
14
14
  </svelte:head>
@@ -0,0 +1,26 @@
1
+ export default ColorSchemeSystemAware;
2
+ type ColorSchemeSystemAware = SvelteComponent<{
3
+ [x: string]: never;
4
+ }, {
5
+ [evt: string]: CustomEvent<any>;
6
+ }, {}> & {
7
+ $$bindings?: string | undefined;
8
+ };
9
+ declare const ColorSchemeSystemAware: $$__sveltets_2_IsomorphicComponent<{
10
+ [x: string]: never;
11
+ }, {
12
+ [evt: string]: CustomEvent<any>;
13
+ }, {}, {}, string>;
14
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
15
+ new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
16
+ $$bindings?: Bindings;
17
+ } & Exports;
18
+ (internal: unknown, props: {
19
+ $$events?: Events;
20
+ $$slots?: Slots;
21
+ }): Exports & {
22
+ $set?: any;
23
+ $on?: any;
24
+ };
25
+ z_$$bindings?: Bindings;
26
+ }
@@ -1,10 +1,28 @@
1
+ /**
2
+ * Color scheme toggler and manager
3
+ */
1
4
  export declare class ColorScheme {
2
- static readonly KEY = "color-scheme";
3
- static readonly DARK = "dark";
4
- static readonly LIGHT = "light";
5
- static getSystemValue: () => "dark" | "light";
6
- static getLocalValue: (fallback?: string | null) => string | null;
7
- static getValue: () => string | null;
8
- static toggle: () => void;
9
- static reset: () => void;
5
+ static readonly KEY: "stuic-color-scheme";
6
+ static readonly DARK: "dark";
7
+ static readonly LIGHT: "light";
8
+ /**
9
+ * Reads the `prefers-color-scheme` system setting
10
+ */
11
+ static getSystemValue(): "dark" | "light";
12
+ /**
13
+ * Reads locally (localStorage) saved value
14
+ */
15
+ static getLocalValue(fallback?: "dark" | "light"): "dark" | "light";
16
+ /**
17
+ * Tries local first, fallbacks to system
18
+ */
19
+ static getValue(): "dark" | "light";
20
+ /**
21
+ * Sets and saves the opposite of current.
22
+ */
23
+ static toggle(): void;
24
+ /**
25
+ *
26
+ */
27
+ static reset(): void;
10
28
  }
@@ -1,19 +1,43 @@
1
- const _window = typeof window !== 'undefined' ? window : null;
1
+ /**
2
+ * Color scheme toggler and manager
3
+ */
2
4
  export class ColorScheme {
3
- static KEY = 'color-scheme';
4
- static DARK = 'dark';
5
- static LIGHT = 'light';
6
- static getSystemValue = () => _window?.matchMedia(`(prefers-color-scheme: ${ColorScheme.DARK})`).matches
7
- ? ColorScheme.DARK
8
- : ColorScheme.LIGHT;
9
- static getLocalValue = (fallback = null) => localStorage?.getItem(ColorScheme.KEY) || fallback;
10
- static getValue = () => ColorScheme.getLocalValue(ColorScheme.getSystemValue());
11
- static toggle = () => {
5
+ static KEY = "stuic-color-scheme";
6
+ static DARK = "dark";
7
+ static LIGHT = "light";
8
+ /**
9
+ * Reads the `prefers-color-scheme` system setting
10
+ */
11
+ static getSystemValue() {
12
+ return globalThis.matchMedia?.(`(prefers-color-scheme: ${ColorScheme.DARK})`).matches
13
+ ? ColorScheme.DARK
14
+ : ColorScheme.LIGHT;
15
+ }
16
+ /**
17
+ * Reads locally (localStorage) saved value
18
+ */
19
+ static getLocalValue(fallback = "light") {
20
+ return (globalThis.localStorage?.getItem(ColorScheme.KEY) || fallback);
21
+ }
22
+ /**
23
+ * Tries local first, fallbacks to system
24
+ */
25
+ static getValue() {
26
+ return ColorScheme.getLocalValue(ColorScheme.getSystemValue());
27
+ }
28
+ /**
29
+ * Sets and saves the opposite of current.
30
+ */
31
+ static toggle() {
12
32
  // returns bool, indicating whether token is in the list after the call or not.
13
- const isDark = _window?.document.documentElement.classList.toggle(ColorScheme.DARK);
14
- localStorage?.setItem(ColorScheme.KEY, isDark ? ColorScheme.DARK : ColorScheme.LIGHT);
15
- };
16
- static reset = () => {
17
- localStorage?.removeItem(ColorScheme.KEY);
18
- };
33
+ const isDark = globalThis?.document?.documentElement.classList.toggle(ColorScheme.DARK);
34
+ globalThis.localStorage?.setItem(ColorScheme.KEY, isDark ? ColorScheme.DARK : ColorScheme.LIGHT);
35
+ }
36
+ /**
37
+ *
38
+ */
39
+ static reset() {
40
+ globalThis.localStorage?.removeItem(ColorScheme.KEY);
41
+ globalThis?.document?.documentElement.classList.remove(ColorScheme.DARK, ColorScheme.LIGHT);
42
+ }
19
43
  }
@@ -0,0 +1,3 @@
1
+ export * from "./color-scheme.js";
2
+ export { default as ColorSchemeLocal } from "./ColorSchemeLocal.svelte";
3
+ export { default as ColorSchemeSystemAware } from "./ColorSchemeSystemAware.svelte";
@@ -0,0 +1,3 @@
1
+ export * from "./color-scheme.js";
2
+ export { default as ColorSchemeLocal } from "./ColorSchemeLocal.svelte";
3
+ export { default as ColorSchemeSystemAware } from "./ColorSchemeSystemAware.svelte";
@@ -1,94 +1,87 @@
1
- <script context="module">import { slide } from "svelte/transition";
2
- import { twMerge2 } from "../../utils/tw-merge2.js";
3
- import Thc, { isTHCNotEmpty } from "../Thc/Thc.svelte";
4
- import X from "../X/X.svelte";
5
- const themes = {
6
- primary: "bg-stuic-primary text-stuic-on-primary dark:bg-stuic-primary-dark dark:text-stuic-on-primary-dark",
7
- secondary: "bg-stuic-secondary text-stuic-on-secondary dark:bg-stuic-secondary-dark dark:text-stuic-on-secondary-dark",
8
- slate: "bg-slate-100 text-slate-800 dark:bg-slate-700 dark:text-slate-100",
9
- gray: "bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-100",
10
- zinc: "bg-zinc-100 text-zinc-800 dark:bg-zinc-700 dark:text-zinc-100",
11
- neutral: "bg-neutral-100 text-neutral-800 dark:bg-neutral-700 dark:text-neutral-100",
12
- stone: "bg-stone-100 text-stone-800 dark:bg-stone-700 dark:text-stone-100",
13
- red: "bg-red-100 text-red-800 dark:bg-red-800 dark:text-red-100",
14
- orange: "bg-orange-100 text-orange-800 dark:bg-orange-800 dark:text-orange-100",
15
- amber: "bg-amber-100 text-amber-800 dark:bg-amber-800 dark:text-amber-100",
16
- yellow: "bg-yellow-100 text-yellow-800 dark:bg-yellow-800 dark:text-yellow-50",
17
- lime: "bg-lime-100 text-lime-800 dark:bg-lime-800 dark:text-lime-100",
18
- green: "bg-green-100 text-green-800 dark:bg-green-800 dark:text-green-100",
19
- emerald: "bg-emerald-100 text-emerald-800 dark:bg-emerald-800 dark:text-emerald-50",
20
- teal: "bg-teal-100 text-teal-800 dark:bg-teal-800 dark:text-teal-50",
21
- cyan: "bg-cyan-100 text-cyan-800 dark:bg-cyan-800 dark:text-cyan-50",
22
- sky: "bg-sky-100 text-sky-800 dark:bg-sky-800 dark:text-sky-50",
23
- blue: "bg-blue-100 text-blue-800 dark:bg-blue-800 dark:text-blue-100",
24
- indigo: "bg-indigo-100 text-indigo-800 dark:bg-indigo-800 dark:text-indigo-100",
25
- violet: "bg-violet-100 text-violet-800 dark:bg-violet-800 dark:text-violet-100",
26
- purple: "bg-purple-100 text-purple-800 dark:bg-purple-800 dark:text-purple-100",
27
- fuchsia: "bg-fuchsia-100 text-fuchsia-800 dark:bg-fuchsia-800 dark:text-fuchsia-100",
28
- pink: "bg-pink-100 text-pink-800 dark:bg-pink-800 dark:text-pink-100",
29
- rose: "bg-rose-100 text-rose-800 dark:bg-rose-800 dark:text-rose-100"
30
- };
31
- const _PRESET = {
32
- box: `mb-4 rounded flex text-sm`,
33
- content: `flex-1 px-4 py-3`,
34
- dismiss: `
35
- hover:bg-neutral-950/5 dark:hover:bg-neutral-950/20
36
- focus-visible:bg-neutral-950/5 focus-visible:hover:bg-neutral-950/20 focus-visible:ring-0
37
- rounded rounded-l-none
38
- px-3
39
- flex items-center justify-center
40
- group
41
- `,
42
- x: `opacity-75 group-hover:opacity-100`
43
- };
44
- export class DismissibleMessageConfig {
45
- static class = {
46
- box: ``,
47
- content: ``,
48
- dismiss: ``,
49
- x: ``
50
- };
51
- }
52
- </script>
1
+ <script lang="ts">
2
+ import { slide } from "svelte/transition";
3
+ import type { TW_COLORS } from "../../types.js";
4
+ import Thc, { isTHCNotEmpty, type THC } from "../Thc/Thc.svelte";
5
+ import X from "../X/X.svelte";
6
+ import { twMerge } from "../../utils/tw-merge.js";
7
+
8
+ import "./index.css";
9
+
10
+ interface Props {
11
+ class?: string;
12
+ classContent?: string;
13
+ classDismiss?: string;
14
+ classX?: string;
15
+ message: THC | Error;
16
+ theme?: TW_COLORS;
17
+ forceAsHtml?: boolean;
18
+ duration?: number;
19
+ onDismiss?: (() => void) | null | false;
20
+ }
53
21
 
54
- <script>let _class = {};
55
- export { _class as class };
56
- export let duration = 150;
57
- export let message;
58
- export let onDismiss = () => message = "";
59
- export let theme = "primary";
60
- export let forceAsHtml = false;
61
- $:
62
- if (message instanceof Error)
63
- message = message.toString();
64
- let show = false;
65
- $:
66
- if (isTHCNotEmpty(message)) {
67
- requestAnimationFrame(() => show = true);
68
- } else {
69
- show = false;
70
- }
71
- const _collectClasses = (k, extra = "") => [
72
- _PRESET?.[k],
73
- DismissibleMessageConfig?.class?.[k],
74
- extra,
75
- _class?.[k]
76
- ];
22
+ let {
23
+ class: classProps,
24
+ classContent,
25
+ classDismiss,
26
+ classX,
27
+ message,
28
+ theme,
29
+ forceAsHtml = true,
30
+ duration = 150,
31
+ onDismiss = () => (message = ""),
32
+ }: Props = $props();
33
+
34
+ let _message = $derived(`${message}`);
35
+ let _show = $derived(isTHCNotEmpty(_message));
77
36
  </script>
78
37
 
79
- <!-- {#if isNotEmpty(message)} -->
80
- {#if show}
38
+ {#if _show}
81
39
  <div
82
- class={twMerge2(_collectClasses('box', themes[theme] ?? themes.primary))}
40
+ class={twMerge(
41
+ "stuic-dismissible-message",
42
+ `mb-4 rounded flex text-sm
43
+ bg-dismiss-bg dark:bg-dismiss-bg-dark
44
+ border-dismiss-border dark:border-dismiss-border-dark
45
+ text-dismiss-text dark:text-dismiss-text-dark`,
46
+ classProps
47
+ )}
48
+ style={theme
49
+ ? `
50
+ --color-dismiss-bg: var(--color-${theme}-100);
51
+ --color-dismiss-bg-dark: var(--color-${theme}-700);
52
+
53
+ --color-dismiss-text: var(--color-${theme}-800);
54
+ --color-dismiss-text-dark: var(--color-${theme}-50);
55
+
56
+ --color-dismiss-border: var(--color-${theme}-500);
57
+ --color-dismiss-border-dark: var(--color-${theme}-500);
58
+ `
59
+ : ""}
83
60
  transition:slide={{ duration }}
84
61
  >
85
- <div class={twMerge2(_collectClasses('content'))}>
86
- <Thc thc={message} {forceAsHtml} />
62
+ <div class={twMerge("content", "flex-1 px-4 py-3", classContent)}>
63
+ <Thc thc={_message} {forceAsHtml} />
87
64
  </div>
88
65
 
89
- {#if typeof onDismiss === 'function'}
90
- <button class={twMerge2(_collectClasses('dismiss'))} on:click={() => onDismiss()}>
91
- <X class={twMerge2(_collectClasses('x'))} strokeWidth={1.5} />
66
+ {#if typeof onDismiss === "function"}
67
+ <button
68
+ onclick={() => onDismiss()}
69
+ class={twMerge(
70
+ "dismiss",
71
+ `hover:bg-neutral-950/5 dark:hover:bg-neutral-950/20
72
+ focus-visible:bg-neutral-950/5 focus-visible:hover:bg-neutral-950/20 focus-visible:ring-0
73
+ rounded rounded-l-none
74
+ px-3
75
+ flex items-center justify-center
76
+ group`,
77
+ classDismiss
78
+ )}
79
+ type="button"
80
+ >
81
+ <X
82
+ class={twMerge("x", "opacity-75 group-hover:opacity-100", classX)}
83
+ strokeWidth={1.5}
84
+ />
92
85
  </button>
93
86
  {/if}
94
87
  </div>
@@ -1,38 +1,17 @@
1
- import { SvelteComponent } from "svelte";
2
- import type { TW_COLORS } from '../../utils/tw-types.js';
3
- import { type THC } from '../Thc/Thc.svelte';
4
- export declare class DismissibleMessageConfig {
5
- static class: {
6
- box: string;
7
- content: string;
8
- dismiss: string;
9
- x: string;
10
- };
1
+ import type { TW_COLORS } from "../../types.js";
2
+ import { type THC } from "../Thc/Thc.svelte";
3
+ import "./index.css";
4
+ interface Props {
5
+ class?: string;
6
+ classContent?: string;
7
+ classDismiss?: string;
8
+ classX?: string;
9
+ message: THC | Error;
10
+ theme?: TW_COLORS;
11
+ forceAsHtml?: boolean;
12
+ duration?: number;
13
+ onDismiss?: (() => void) | null | false;
11
14
  }
12
- declare const __propDef: {
13
- props: {
14
- class?: {
15
- box?: string;
16
- content?: string;
17
- dismiss?: string;
18
- x?: string;
19
- };
20
- duration?: number;
21
- message: THC | Error;
22
- onDismiss?: (() => void) | null | false;
23
- theme?: "primary" | "secondary" | TW_COLORS;
24
- forceAsHtml?: boolean;
25
- };
26
- events: {
27
- [evt: string]: CustomEvent<any>;
28
- };
29
- slots: {};
30
- exports?: {} | undefined;
31
- bindings?: string | undefined;
32
- };
33
- export type DismissibleMessageProps = typeof __propDef.props;
34
- export type DismissibleMessageEvents = typeof __propDef.events;
35
- export type DismissibleMessageSlots = typeof __propDef.slots;
36
- export default class DismissibleMessage extends SvelteComponent<DismissibleMessageProps, DismissibleMessageEvents, DismissibleMessageSlots> {
37
- }
38
- export {};
15
+ declare const DismissibleMessage: import("svelte").Component<Props, {}, "">;
16
+ type DismissibleMessage = ReturnType<typeof DismissibleMessage>;
17
+ export default DismissibleMessage;
@@ -0,0 +1,13 @@
1
+ @import "../../_shared.css";
2
+
3
+ /* prettier-ignore */
4
+ @theme inline {
5
+ --color-dismiss-bg: var(--color-dismiss-bg, var(--color-neutral-200));
6
+ --color-dismiss-bg-dark: var(--color-dismiss-bg-dark, var(--color-neutral-700));
7
+
8
+ --color-dismiss-text: var(--color-dismiss-text, var(--color-neutral-700));
9
+ --color-dismiss-text-dark: var(--color-dismiss-text-dark, var(--color-neutral-200));
10
+
11
+ --color-dismiss-border: var(--color-dismiss-border, var(--color-neutral-500));
12
+ --color-dismiss-border-dark: var(--color-dismiss-border-dark, var(--color-neutral-500));
13
+ }
@@ -0,0 +1 @@
1
+ export { default as DismissibleMessage } from "./DismissibleMessage.svelte";
@@ -0,0 +1 @@
1
+ export { default as DismissibleMessage } from "./DismissibleMessage.svelte";