@marianmeres/stuic 1.126.0 → 2.0.0-next.3

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 (250) 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/drag-drop.d.ts +0 -28
  207. package/dist/actions/drag-drop.js +0 -152
  208. package/dist/actions/on-outside.d.ts +0 -9
  209. package/dist/actions/on-outside.js +0 -27
  210. package/dist/actions/pre-submit-validity-check.d.ts +0 -3
  211. package/dist/actions/pre-submit-validity-check.js +0 -21
  212. package/dist/actions/tooltip/_make-visible.d.ts +0 -3
  213. package/dist/actions/tooltip/_make-visible.js +0 -25
  214. package/dist/actions/tooltip/_maybe-pick-safe-placement.d.ts +0 -3
  215. package/dist/actions/tooltip/_maybe-pick-safe-placement.js +0 -86
  216. package/dist/actions/tooltip/_set-position.d.ts +0 -2
  217. package/dist/actions/tooltip/_set-position.js +0 -125
  218. package/dist/actions/tooltip/tooltip.d.ts +0 -42
  219. package/dist/actions/tooltip/tooltip.js +0 -299
  220. package/dist/actions/trim.d.ts +0 -4
  221. package/dist/actions/trim.js +0 -18
  222. package/dist/actions/validate.js +0 -80
  223. package/dist/components/AlertConfirmPrompt/alert-confirm-prompt.d.ts +0 -58
  224. package/dist/components/AlertConfirmPrompt/alert-confirm-prompt.js +0 -141
  225. package/dist/components/ColorScheme/LocalColorScheme.svelte.d.ts +0 -25
  226. package/dist/components/ColorScheme/SystemAwareColorScheme.svelte.d.ts +0 -25
  227. package/dist/components/Input/Field.svelte +0 -315
  228. package/dist/components/Input/Field.svelte.d.ts +0 -102
  229. package/dist/components/Input/PinInput.svelte +0 -151
  230. package/dist/components/Input/PinInput.svelte.d.ts +0 -51
  231. package/dist/components/Input/XFieldRadioInternal.svelte +0 -143
  232. package/dist/components/Input/XFieldRadioInternal.svelte.d.ts +0 -45
  233. package/dist/components/Notifications/notifications.d.ts +0 -78
  234. package/dist/components/Notifications/notifications.js +0 -215
  235. package/dist/components/Popover/Popover.svelte +0 -24
  236. package/dist/components/Popover/Popover.svelte.d.ts +0 -22
  237. package/dist/components/Spinner/Spinner.v5.svelte +0 -114
  238. package/dist/components/Spinner/Spinner.v5.svelte.d.ts +0 -16
  239. package/dist/utils/calculate-alignment.d.ts +0 -68
  240. package/dist/utils/calculate-alignment.js +0 -183
  241. package/dist/utils/device-pointer.d.ts +0 -5
  242. package/dist/utils/device-pointer.js +0 -10
  243. package/dist/utils/prefers-reduced-motion.d.ts +0 -6
  244. package/dist/utils/prefers-reduced-motion.js +0 -26
  245. package/dist/utils/tw-merge2.d.ts +0 -3
  246. package/dist/utils/tw-merge2.js +0 -9
  247. package/dist/utils/tw-types.d.ts +0 -1
  248. package/dist/utils/window-size.d.ts +0 -22
  249. package/dist/utils/window-size.js +0 -35
  250. /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";