@marianmeres/stuic 1.46.0 → 1.48.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.
@@ -0,0 +1,93 @@
1
+ <script context="module">import { slide } from "svelte/transition";
2
+ import { twMerge } from "tailwind-merge";
3
+ import { Thc, X } from "../../index.js";
4
+ const themes = {
5
+ primary: "bg-stuic-primary/10 text-stuic-primary dark:bg-stuic-primary dark:text-white/90",
6
+ secondary: "bg-stuic-secondary/10 text-stuic-secondary dark:bg-stuic-secondary dark:text-white/90",
7
+ slate: "bg-slate-100 text-slate-800 dark:bg-slate-700 dark:text-slate-100",
8
+ gray: "bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-100",
9
+ zinc: "bg-zinc-100 text-zinc-800 dark:bg-zinc-700 dark:text-zinc-100",
10
+ neutral: "bg-neutral-100 text-neutral-800 dark:bg-neutral-700 dark:text-neutral-100",
11
+ stone: "bg-stone-100 text-stone-800 dark:bg-stone-700 dark:text-stone-100",
12
+ red: "bg-red-100 text-red-800 dark:bg-red-800 dark:text-red-100",
13
+ orange: "bg-orange-100 text-orange-800 dark:bg-orange-800 dark:text-orange-100",
14
+ amber: "bg-amber-100 text-amber-800 dark:bg-amber-800 dark:text-amber-100",
15
+ yellow: "bg-yellow-100 text-yellow-800 dark:bg-yellow-800 dark:text-yellow-50",
16
+ lime: "bg-lime-100 text-lime-800 dark:bg-lime-800 dark:text-lime-100",
17
+ green: "bg-green-100 text-green-800 dark:bg-green-800 dark:text-green-100",
18
+ emerald: "bg-emerald-100 text-emerald-800 dark:bg-emerald-800 dark:text-emerald-50",
19
+ teal: "bg-teal-100 text-teal-800 dark:bg-teal-800 dark:text-teal-50",
20
+ cyan: "bg-cyan-100 text-cyan-800 dark:bg-cyan-800 dark:text-cyan-50",
21
+ sky: "bg-sky-100 text-sky-800 dark:bg-sky-800 dark:text-sky-50",
22
+ blue: "bg-blue-100 text-blue-800 dark:bg-blue-800 dark:text-blue-100",
23
+ indigo: "bg-indigo-100 text-indigo-800 dark:bg-indigo-800 dark:text-indigo-100",
24
+ violet: "bg-violet-100 text-violet-800 dark:bg-violet-800 dark:text-violet-100",
25
+ purple: "bg-purple-100 text-purple-800 dark:bg-purple-800 dark:text-purple-100",
26
+ fuchsia: "bg-fuchsia-100 text-fuchsia-800 dark:bg-fuchsia-800 dark:text-fuchsia-100",
27
+ pink: "bg-pink-100 text-pink-800 dark:bg-pink-800 dark:text-pink-100",
28
+ rose: "bg-rose-100 text-rose-800 dark:bg-rose-800 dark:text-rose-100"
29
+ };
30
+ export class DismissibleMessageConfig {
31
+ static preset = {
32
+ box: `mb-4 rounded flex text-sm`,
33
+ content: `flex-1 px-4 py-3`,
34
+ dismiss: `
35
+ hover:bg-black/5 dark:hover:bg-black/20
36
+ rounded rounded-l-none
37
+ px-3
38
+ flex items-center justify-center
39
+ group
40
+ `
41
+ };
42
+ static class = {
43
+ box: ``,
44
+ content: ``,
45
+ dismiss: ``
46
+ };
47
+ }
48
+ </script>
49
+
50
+ <script>let _class = "";
51
+ export { _class as class };
52
+ export let classContent = "";
53
+ export let classDismiss = "";
54
+ export let duration = 150;
55
+ export let message;
56
+ export let onDismiss = () => message = null;
57
+ export let theme = "primary";
58
+ </script>
59
+
60
+ {#if message}
61
+ <div
62
+ class={twMerge(
63
+ DismissibleMessageConfig.preset.box,
64
+ DismissibleMessageConfig.class.box,
65
+ themes[theme] ?? themes.primary,
66
+ _class
67
+ )}
68
+ transition:slide={{ duration }}
69
+ >
70
+ <div
71
+ class={twMerge(
72
+ DismissibleMessageConfig.preset.content,
73
+ DismissibleMessageConfig.class.content,
74
+ classContent
75
+ )}
76
+ >
77
+ <Thc thc={message} />
78
+ </div>
79
+
80
+ {#if typeof onDismiss === 'function'}
81
+ <button
82
+ class={twMerge(
83
+ DismissibleMessageConfig.preset.dismiss,
84
+ DismissibleMessageConfig.class.dismiss,
85
+ classDismiss
86
+ )}
87
+ on:click={() => onDismiss()}
88
+ >
89
+ <X class="opacity-75 group-hover:opacity-100" strokeWidth={1.5} />
90
+ </button>
91
+ {/if}
92
+ </div>
93
+ {/if}
@@ -0,0 +1,35 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import { type THC, type TW_COLORS } from '../../index.js';
3
+ export declare class DismissibleMessageConfig {
4
+ static preset: {
5
+ box: string;
6
+ content: string;
7
+ dismiss: string;
8
+ };
9
+ static class: {
10
+ box: string;
11
+ content: string;
12
+ dismiss: string;
13
+ };
14
+ }
15
+ declare const __propDef: {
16
+ props: {
17
+ class?: string | undefined;
18
+ classContent?: string | undefined;
19
+ classDismiss?: string | undefined;
20
+ duration?: number | undefined;
21
+ message: THC | null;
22
+ onDismiss?: (() => void) | null | undefined;
23
+ theme?: "primary" | TW_COLORS | "secondary" | undefined;
24
+ };
25
+ events: {
26
+ [evt: string]: CustomEvent<any>;
27
+ };
28
+ slots: {};
29
+ };
30
+ export type DismissibleMessageProps = typeof __propDef.props;
31
+ export type DismissibleMessageEvents = typeof __propDef.events;
32
+ export type DismissibleMessageSlots = typeof __propDef.slots;
33
+ export default class DismissibleMessage extends SvelteComponent<DismissibleMessageProps, DismissibleMessageEvents, DismissibleMessageSlots> {
34
+ }
35
+ export {};
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export { default as Button, ButtonConfig } from './components/Button/Button.svel
6
6
  export { default as SystemAwareColorScheme } from './components/ColorScheme/SystemAwareColorScheme.svelte';
7
7
  export { default as LocalColorScheme } from './components/ColorScheme/LocalColorScheme.svelte';
8
8
  export { ColorScheme } from './components/ColorScheme/color-scheme.js';
9
+ export { default as DismissibleMessage, DismissibleMessageConfig, } from './components/DismissibleMessage/DismissibleMessage.svelte';
9
10
  export { default as Drawer, createDrawerStore } from './components/Drawer/Drawer.svelte';
10
11
  export { default as HoverExpandableWidth } from './components/HoverExpandableWidth/HoverExpandableWidth.svelte';
11
12
  export { default as Field } from './components/Input/Field.svelte';
@@ -17,7 +18,7 @@ export { createNotificationsStore, NOTIFICATION_EVENT, type NotiticationsCreateS
17
18
  export { default as Notifications, NotificationsConfig, } from './components/Notifications/Notifications.svelte';
18
19
  export { default as Popover } from './components/Popover/Popover.svelte';
19
20
  export { default as Switch, SwitchConfig } from './components/Switch/Switch.svelte';
20
- export { default as Thc } from './components/Thc/Thc.svelte';
21
+ export { default as Thc, type THC } from './components/Thc/Thc.svelte';
21
22
  export { default as X } from './components/X/X.svelte';
22
23
  export { focusTrap } from './actions/focus-trap.js';
23
24
  export { onOutside } from './actions/on-outside.js';
@@ -29,3 +30,4 @@ export { calculateAlignment } from './utils/calculate-alignment.js';
29
30
  export { DevicePointer } from './utils/device-pointer.js';
30
31
  export { getId } from './utils/get-id.js';
31
32
  export { windowSize, breakpoint } from './utils/window-size.js';
33
+ export type { TW_COLORS } from './utils/tw-types.js';
package/dist/index.js CHANGED
@@ -13,6 +13,8 @@ export { default as SystemAwareColorScheme } from './components/ColorScheme/Syst
13
13
  export { default as LocalColorScheme } from './components/ColorScheme/LocalColorScheme.svelte';
14
14
  export { ColorScheme } from './components/ColorScheme/color-scheme.js';
15
15
  //
16
+ export { default as DismissibleMessage, DismissibleMessageConfig, } from './components/DismissibleMessage/DismissibleMessage.svelte';
17
+ //
16
18
  export { default as Drawer, createDrawerStore } from './components/Drawer/Drawer.svelte';
17
19
  //
18
20
  export { default as HoverExpandableWidth } from './components/HoverExpandableWidth/HoverExpandableWidth.svelte';
@@ -0,0 +1 @@
1
+ export type TW_COLORS = 'slate' | 'gray' | 'zinc' | 'neutral' | 'stone' | 'red' | 'orange' | 'amber' | 'yellow' | 'lime' | 'green' | 'emerald' | 'teal' | 'cyan' | 'sky' | 'blue' | 'indigo' | 'violet' | 'purple' | 'fuchsia' | 'pink' | 'rose';
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marianmeres/stuic",
3
- "version": "1.46.0",
3
+ "version": "1.48.0",
4
4
  "scripts": {
5
5
  "dev": "vite dev",
6
6
  "build": "vite build && npm run package && node ./scripts/date.js",