@svelte-atoms/core 1.0.0-alpha.28 → 1.0.0-alpha.30
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.
- package/README.md +852 -856
- package/dist/attachments/clickout.svelte.d.ts +1 -1
- package/dist/attachments/clickout.svelte.js +2 -2
- package/dist/components/accordion/accordion-root.svelte +61 -61
- package/dist/components/accordion/accordion-root.svelte.d.ts +1 -1
- package/dist/components/accordion/accordion.stories.svelte +145 -134
- package/dist/components/alert/alert-actions.svelte +43 -43
- package/dist/components/alert/alert-close-button.svelte +70 -70
- package/dist/components/alert/alert-content.svelte +43 -43
- package/dist/components/alert/alert-description.svelte +42 -42
- package/dist/components/alert/alert-icon.svelte +47 -47
- package/dist/components/alert/alert-root.svelte +103 -103
- package/dist/components/alert/alert-title.svelte +42 -42
- package/dist/components/alert/alert.stories.svelte +10 -11
- package/dist/components/atom/html-atom.svelte +75 -19
- package/dist/components/atom/html-atom.svelte.d.ts +1 -1
- package/dist/components/atom/snippet-renderer.svelte +5 -5
- package/dist/components/avatar/avatar.stories.svelte +22 -27
- package/dist/components/badge/badge.stories.svelte +12 -17
- package/dist/components/badge/badge.svelte +19 -19
- package/dist/components/breadcrumb/breadcrumb.stories.svelte +16 -21
- package/dist/components/button/button.stories.svelte +1 -34
- package/dist/components/calendar/calendar-body.svelte +107 -107
- package/dist/components/calendar/calendar-day.svelte +96 -97
- package/dist/components/calendar/calendar-header.svelte +29 -33
- package/dist/components/calendar/calendar-header.svelte.d.ts +0 -1
- package/dist/components/calendar/calendar-root.svelte +206 -208
- package/dist/components/calendar/calendar-week-day.svelte +34 -34
- package/dist/components/calendar/calendar.css +26 -26
- package/dist/components/calendar/calendar.stories.svelte +10 -20
- package/dist/components/calendar/calendar.stories.svelte.d.ts +24 -4
- package/dist/components/card/card-body.svelte +39 -39
- package/dist/components/card/card-footer.svelte +41 -41
- package/dist/components/card/card-root.svelte +91 -91
- package/dist/components/card/card.stories.svelte +133 -145
- package/dist/components/checkbox/checkbox.stories.svelte +22 -27
- package/dist/components/checkbox/checkbox.svelte +155 -157
- package/dist/components/collapsible/collapsible.stories.svelte +172 -173
- package/dist/components/combobox/combobox-root.svelte +65 -65
- package/dist/components/combobox/compobox.stories.svelte +51 -54
- package/dist/components/container/container.stories.svelte +20 -23
- package/dist/components/datagrid/datagrid-root.svelte +2 -2
- package/dist/components/datagrid/datagrid.css +0 -42
- package/dist/components/datagrid/datagrid.stories.svelte +72 -75
- package/dist/components/datagrid/types.d.ts +1 -1
- package/dist/components/date-picker/atoms.d.ts +0 -4
- package/dist/components/date-picker/atoms.js +0 -4
- package/dist/components/date-picker/date-picker-calendar.svelte +67 -42
- package/dist/components/date-picker/date-picker-calendar.svelte.d.ts +2 -5
- package/dist/components/date-picker/date-picker-header.svelte +100 -105
- package/dist/components/date-picker/date-picker-header.svelte.d.ts +2 -5
- package/dist/components/date-picker/date-picker-months.svelte +142 -150
- package/dist/components/date-picker/date-picker-months.svelte.d.ts +2 -5
- package/dist/components/date-picker/date-picker-root.svelte +4 -3
- package/dist/components/date-picker/date-picker-root.svelte.d.ts +2 -15
- package/dist/components/date-picker/date-picker-years.svelte +205 -214
- package/dist/components/date-picker/date-picker-years.svelte.d.ts +2 -5
- package/dist/components/date-picker/date-picker.stories.svelte +15 -31
- package/dist/components/date-picker/types.d.ts +53 -1
- package/dist/components/dialog/dialog-content.svelte +1 -1
- package/dist/components/dialog/dialog.stories.svelte +64 -67
- package/dist/components/drawer/attachments.svelte.js +8 -9
- package/dist/components/drawer/drawer-content.svelte +57 -42
- package/dist/components/drawer/drawer.stories.svelte +212 -224
- package/dist/components/dropdown/dropdown-root.svelte +59 -59
- package/dist/components/dropdown/dropdown.stories.svelte +80 -83
- package/dist/components/element/html-element.svelte +85 -85
- package/dist/components/element/types.d.ts +1 -1
- package/dist/components/form/form.stories.svelte +96 -99
- package/dist/components/image/image.stories.svelte +20 -23
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/input/input.stories.svelte +35 -38
- package/dist/components/label/label.stories.svelte +15 -26
- package/dist/components/label/label.stories.svelte.d.ts +24 -4
- package/dist/components/lazy/index.d.ts +1 -0
- package/dist/components/lazy/index.js +1 -0
- package/dist/components/lazy/lazy.stories.svelte +28 -0
- package/dist/components/lazy/lazy.stories.svelte.d.ts +19 -0
- package/dist/components/lazy/lazy.svelte +28 -0
- package/dist/components/lazy/lazy.svelte.d.ts +5 -0
- package/dist/components/lazy/types.d.ts +10 -0
- package/dist/components/lazy/types.js +1 -0
- package/dist/components/link/link.stories.svelte +15 -26
- package/dist/components/link/link.stories.svelte.d.ts +24 -4
- package/dist/components/menu/menu-list.svelte +2 -1
- package/dist/components/menu/menu-list.svelte.d.ts +1 -0
- package/dist/components/menu/menu.stories.svelte +33 -36
- package/dist/components/popover/bond.svelte.js +31 -25
- package/dist/components/popover/popover-arrow.svelte +111 -111
- package/dist/components/popover/popover-content.svelte +2 -5
- package/dist/components/popover/popover-indicator.svelte +44 -43
- package/dist/components/popover/popover-root.svelte +1 -1
- package/dist/components/popover/popover.stories.svelte +18 -21
- package/dist/components/qr-code/index.d.ts +1 -0
- package/dist/components/qr-code/index.js +1 -0
- package/dist/components/qr-code/qr-code.stories.svelte +4 -10
- package/dist/components/qr-code/qr-code.svelte +75 -25
- package/dist/components/qr-code/qr-code.svelte.d.ts +2 -4
- package/dist/components/qr-code/types.d.ts +14 -0
- package/dist/components/qr-code/types.js +1 -0
- package/dist/components/radio/radio-group.stories.svelte +41 -50
- package/dist/components/radio/radio.stories.svelte +17 -26
- package/dist/components/radio/radio.svelte +109 -109
- package/dist/components/root/root.svelte +121 -121
- package/dist/components/root/root.svelte.d.ts +1 -1
- package/dist/components/scrollable/scrollable.stories.svelte +116 -126
- package/dist/components/sidebar/bond.svelte.d.ts +0 -5
- package/dist/components/sidebar/bond.svelte.js +1 -12
- package/dist/components/sidebar/sidebar-content.svelte +50 -39
- package/dist/components/sidebar/sidebar-content.svelte.d.ts +2 -2
- package/dist/components/sidebar/sidebar-root.svelte +39 -68
- package/dist/components/sidebar/sidebar-root.svelte.d.ts +2 -2
- package/dist/components/sidebar/sidebar.stories.svelte +43 -52
- package/dist/components/sidebar/types.d.ts +7 -6
- package/dist/components/tabs/tab/bond.svelte.d.ts +4 -1
- package/dist/components/tabs/tab/bond.svelte.js +4 -1
- package/dist/components/tabs/tabs.stories.svelte +56 -59
- package/dist/components/tooltip/tooltip-trigger.svelte +39 -37
- package/dist/components/tooltip/tooltip.stories.svelte +32 -35
- package/dist/components/tree/tree.stories.svelte +142 -134
- package/dist/context/preset.svelte.d.ts +3 -3
- package/dist/utils/function.d.ts +2 -0
- package/dist/utils/function.js +6 -0
- package/llm/variants.md +1259 -1261
- package/package.json +7 -9
- package/dist/actions/animation.svelte.d.ts +0 -6
- package/dist/actions/animation.svelte.js +0 -14
- package/dist/actions/clickout.svelte.d.ts +0 -2
- package/dist/actions/clickout.svelte.js +0 -15
- package/dist/actions/popover.svelte.d.ts +0 -19
- package/dist/actions/popover.svelte.js +0 -81
- package/dist/actions/portal.svelte.d.ts +0 -8
- package/dist/actions/portal.svelte.js +0 -32
- package/dist/attachments/gsap.svelte.d.ts +0 -2
- package/dist/attachments/gsap.svelte.js +0 -26
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
3
|
-
import { HtmlAtom, type Base } from '../atom';
|
|
4
|
-
import { AlertBond } from './bond.svelte';
|
|
5
|
-
import type { AlertContentProps } from './types';
|
|
6
|
-
|
|
7
|
-
type Element = HTMLElementTagNameMap[E];
|
|
8
|
-
|
|
9
|
-
const bond = AlertBond.get();
|
|
10
|
-
|
|
11
|
-
let {
|
|
12
|
-
class: klass = '',
|
|
13
|
-
preset = 'alert.content',
|
|
14
|
-
children = undefined,
|
|
15
|
-
onmount = undefined,
|
|
16
|
-
ondestroy = undefined,
|
|
17
|
-
animate = undefined,
|
|
18
|
-
enter = undefined,
|
|
19
|
-
exit = undefined,
|
|
20
|
-
initial = undefined,
|
|
21
|
-
...restProps
|
|
22
|
-
}: AlertContentProps<E, B> & HTMLAttributes<Element> = $props();
|
|
23
|
-
|
|
24
|
-
const contentProps = $derived({
|
|
25
|
-
...bond?.content(),
|
|
26
|
-
...restProps
|
|
27
|
-
});
|
|
28
|
-
</script>
|
|
29
|
-
|
|
30
|
-
<HtmlAtom
|
|
31
|
-
{bond}
|
|
32
|
-
{preset}
|
|
33
|
-
class={['alert-content border-border flex-1 space-y-1', '$preset', klass]}
|
|
34
|
-
onmount={onmount?.bind(bond.state)}
|
|
35
|
-
ondestroy={ondestroy?.bind(bond.state)}
|
|
36
|
-
animate={animate?.bind(bond.state)}
|
|
37
|
-
enter={enter?.bind(bond.state)}
|
|
38
|
-
exit={exit?.bind(bond.state)}
|
|
39
|
-
initial={initial?.bind(bond.state)}
|
|
40
|
-
{...contentProps}
|
|
41
|
-
>
|
|
42
|
-
{@render children?.({ alert: bond! })}
|
|
43
|
-
</HtmlAtom>
|
|
1
|
+
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
3
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
4
|
+
import { AlertBond } from './bond.svelte';
|
|
5
|
+
import type { AlertContentProps } from './types';
|
|
6
|
+
|
|
7
|
+
type Element = HTMLElementTagNameMap[E];
|
|
8
|
+
|
|
9
|
+
const bond = AlertBond.get();
|
|
10
|
+
|
|
11
|
+
let {
|
|
12
|
+
class: klass = '',
|
|
13
|
+
preset = 'alert.content',
|
|
14
|
+
children = undefined,
|
|
15
|
+
onmount = undefined,
|
|
16
|
+
ondestroy = undefined,
|
|
17
|
+
animate = undefined,
|
|
18
|
+
enter = undefined,
|
|
19
|
+
exit = undefined,
|
|
20
|
+
initial = undefined,
|
|
21
|
+
...restProps
|
|
22
|
+
}: AlertContentProps<E, B> & HTMLAttributes<Element> = $props();
|
|
23
|
+
|
|
24
|
+
const contentProps = $derived({
|
|
25
|
+
...bond?.content(),
|
|
26
|
+
...restProps
|
|
27
|
+
});
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
<HtmlAtom
|
|
31
|
+
{bond}
|
|
32
|
+
{preset}
|
|
33
|
+
class={['alert-content border-border flex-1 space-y-1', '$preset', klass]}
|
|
34
|
+
onmount={onmount?.bind(bond.state)}
|
|
35
|
+
ondestroy={ondestroy?.bind(bond.state)}
|
|
36
|
+
animate={animate?.bind(bond.state)}
|
|
37
|
+
enter={enter?.bind(bond.state)}
|
|
38
|
+
exit={exit?.bind(bond.state)}
|
|
39
|
+
initial={initial?.bind(bond.state)}
|
|
40
|
+
{...contentProps}
|
|
41
|
+
>
|
|
42
|
+
{@render children?.({ alert: bond! })}
|
|
43
|
+
</HtmlAtom>
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
-
import { HtmlAtom, type Base } from '../atom';
|
|
3
|
-
import { AlertBond } from './bond.svelte';
|
|
4
|
-
export type { AlertDescriptionProps } from './types';
|
|
5
|
-
|
|
6
|
-
const bond = AlertBond.get();
|
|
7
|
-
|
|
8
|
-
let {
|
|
9
|
-
class: klass = '',
|
|
10
|
-
as = 'p' as E,
|
|
11
|
-
preset = 'alert.description',
|
|
12
|
-
children = undefined,
|
|
13
|
-
onmount = undefined,
|
|
14
|
-
ondestroy = undefined,
|
|
15
|
-
animate = undefined,
|
|
16
|
-
enter = undefined,
|
|
17
|
-
exit = undefined,
|
|
18
|
-
initial = undefined,
|
|
19
|
-
...restProps
|
|
20
|
-
}: AlertDescriptionProps<E, B> = $props();
|
|
21
|
-
|
|
22
|
-
const descriptionProps = $derived({
|
|
23
|
-
...bond?.description(),
|
|
24
|
-
...restProps
|
|
25
|
-
});
|
|
26
|
-
</script>
|
|
27
|
-
|
|
28
|
-
<HtmlAtom
|
|
29
|
-
{bond}
|
|
30
|
-
{preset}
|
|
31
|
-
class={['alert-description border-border mt-1 text-sm leading-relaxed', '$preset', klass]}
|
|
32
|
-
onmount={onmount?.bind(bond.state)}
|
|
33
|
-
ondestroy={ondestroy?.bind(bond.state)}
|
|
34
|
-
animate={animate?.bind(bond.state)}
|
|
35
|
-
enter={enter?.bind(bond.state)}
|
|
36
|
-
exit={exit?.bind(bond.state)}
|
|
37
|
-
initial={initial?.bind(bond.state)}
|
|
38
|
-
{as}
|
|
39
|
-
{...descriptionProps}
|
|
40
|
-
>
|
|
41
|
-
{@render children?.({ alert: bond! })}
|
|
42
|
-
</HtmlAtom>
|
|
1
|
+
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
3
|
+
import { AlertBond } from './bond.svelte';
|
|
4
|
+
export type { AlertDescriptionProps } from './types';
|
|
5
|
+
|
|
6
|
+
const bond = AlertBond.get();
|
|
7
|
+
|
|
8
|
+
let {
|
|
9
|
+
class: klass = '',
|
|
10
|
+
as = 'p' as E,
|
|
11
|
+
preset = 'alert.description',
|
|
12
|
+
children = undefined,
|
|
13
|
+
onmount = undefined,
|
|
14
|
+
ondestroy = undefined,
|
|
15
|
+
animate = undefined,
|
|
16
|
+
enter = undefined,
|
|
17
|
+
exit = undefined,
|
|
18
|
+
initial = undefined,
|
|
19
|
+
...restProps
|
|
20
|
+
}: AlertDescriptionProps<E, B> = $props();
|
|
21
|
+
|
|
22
|
+
const descriptionProps = $derived({
|
|
23
|
+
...bond?.description(),
|
|
24
|
+
...restProps
|
|
25
|
+
});
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<HtmlAtom
|
|
29
|
+
{bond}
|
|
30
|
+
{preset}
|
|
31
|
+
class={['alert-description border-border mt-1 text-sm leading-relaxed', '$preset', klass]}
|
|
32
|
+
onmount={onmount?.bind(bond.state)}
|
|
33
|
+
ondestroy={ondestroy?.bind(bond.state)}
|
|
34
|
+
animate={animate?.bind(bond.state)}
|
|
35
|
+
enter={enter?.bind(bond.state)}
|
|
36
|
+
exit={exit?.bind(bond.state)}
|
|
37
|
+
initial={initial?.bind(bond.state)}
|
|
38
|
+
{as}
|
|
39
|
+
{...descriptionProps}
|
|
40
|
+
>
|
|
41
|
+
{@render children?.({ alert: bond! })}
|
|
42
|
+
</HtmlAtom>
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
-
import { Icon } from '../icon';
|
|
3
|
-
import { type Base, HtmlAtom } from '../atom';
|
|
4
|
-
import { AlertBond } from './bond.svelte';
|
|
5
|
-
import type { AlertIconProps } from './types';
|
|
6
|
-
|
|
7
|
-
const bond = AlertBond.get();
|
|
8
|
-
|
|
9
|
-
let {
|
|
10
|
-
class: klass = '',
|
|
11
|
-
base = Icon,
|
|
12
|
-
preset = 'alert.icon',
|
|
13
|
-
children = undefined,
|
|
14
|
-
onmount = undefined,
|
|
15
|
-
ondestroy = undefined,
|
|
16
|
-
animate = undefined,
|
|
17
|
-
enter = undefined,
|
|
18
|
-
exit = undefined,
|
|
19
|
-
initial = undefined,
|
|
20
|
-
...restProps
|
|
21
|
-
}: AlertIconProps<E, B> = $props();
|
|
22
|
-
|
|
23
|
-
const iconProps = $derived({
|
|
24
|
-
...bond?.icon(),
|
|
25
|
-
...restProps
|
|
26
|
-
});
|
|
27
|
-
</script>
|
|
28
|
-
|
|
29
|
-
<HtmlAtom
|
|
30
|
-
{bond}
|
|
31
|
-
{base}
|
|
32
|
-
{preset}
|
|
33
|
-
class={[
|
|
34
|
-
'alert-icon border-border inline-flex aspect-square h-5 items-center justify-center rounded-full text-sm font-medium',
|
|
35
|
-
'$preset',
|
|
36
|
-
klass
|
|
37
|
-
]}
|
|
38
|
-
onmount={onmount?.bind(bond.state)}
|
|
39
|
-
ondestroy={ondestroy?.bind(bond.state)}
|
|
40
|
-
animate={animate?.bind(bond.state)}
|
|
41
|
-
enter={enter?.bind(bond.state)}
|
|
42
|
-
exit={exit?.bind(bond.state)}
|
|
43
|
-
initial={initial?.bind(bond.state)}
|
|
44
|
-
{...iconProps}
|
|
45
|
-
>
|
|
46
|
-
{@render children?.({ alert: bond! })}
|
|
47
|
-
</HtmlAtom>
|
|
1
|
+
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
+
import { Icon } from '../icon';
|
|
3
|
+
import { type Base, HtmlAtom } from '../atom';
|
|
4
|
+
import { AlertBond } from './bond.svelte';
|
|
5
|
+
import type { AlertIconProps } from './types';
|
|
6
|
+
|
|
7
|
+
const bond = AlertBond.get();
|
|
8
|
+
|
|
9
|
+
let {
|
|
10
|
+
class: klass = '',
|
|
11
|
+
base = Icon,
|
|
12
|
+
preset = 'alert.icon',
|
|
13
|
+
children = undefined,
|
|
14
|
+
onmount = undefined,
|
|
15
|
+
ondestroy = undefined,
|
|
16
|
+
animate = undefined,
|
|
17
|
+
enter = undefined,
|
|
18
|
+
exit = undefined,
|
|
19
|
+
initial = undefined,
|
|
20
|
+
...restProps
|
|
21
|
+
}: AlertIconProps<E, B> = $props();
|
|
22
|
+
|
|
23
|
+
const iconProps = $derived({
|
|
24
|
+
...bond?.icon(),
|
|
25
|
+
...restProps
|
|
26
|
+
});
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<HtmlAtom
|
|
30
|
+
{bond}
|
|
31
|
+
{base}
|
|
32
|
+
{preset}
|
|
33
|
+
class={[
|
|
34
|
+
'alert-icon border-border inline-flex aspect-square h-5 items-center justify-center rounded-full text-sm font-medium',
|
|
35
|
+
'$preset',
|
|
36
|
+
klass
|
|
37
|
+
]}
|
|
38
|
+
onmount={onmount?.bind(bond.state)}
|
|
39
|
+
ondestroy={ondestroy?.bind(bond.state)}
|
|
40
|
+
animate={animate?.bind(bond.state)}
|
|
41
|
+
enter={enter?.bind(bond.state)}
|
|
42
|
+
exit={exit?.bind(bond.state)}
|
|
43
|
+
initial={initial?.bind(bond.state)}
|
|
44
|
+
{...iconProps}
|
|
45
|
+
>
|
|
46
|
+
{@render children?.({ alert: bond! })}
|
|
47
|
+
</HtmlAtom>
|
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
-
import { defineProperty, defineState } from '../../utils';
|
|
3
|
-
import { HtmlAtom, type Base } from '../atom';
|
|
4
|
-
import { AlertBond, AlertBondState, type AlertBondProps } from './bond.svelte';
|
|
5
|
-
import type { AlertRootProps } from './types';
|
|
6
|
-
import './alert.css';
|
|
7
|
-
|
|
8
|
-
let {
|
|
9
|
-
class: klass = '',
|
|
10
|
-
preset = 'alert',
|
|
11
|
-
dismissible = false,
|
|
12
|
-
dismissed = $bindable(false),
|
|
13
|
-
disabled = false,
|
|
14
|
-
extend = {},
|
|
15
|
-
factory = _factory,
|
|
16
|
-
children = undefined,
|
|
17
|
-
onmount = undefined,
|
|
18
|
-
ondestroy = undefined,
|
|
19
|
-
animate = undefined,
|
|
20
|
-
enter = undefined,
|
|
21
|
-
exit = undefined,
|
|
22
|
-
initial = undefined,
|
|
23
|
-
...restProps
|
|
24
|
-
}: AlertRootProps<E, B> = $props();
|
|
25
|
-
|
|
26
|
-
const bondProps = defineState<AlertBondProps>(
|
|
27
|
-
[
|
|
28
|
-
defineProperty(
|
|
29
|
-
'dismissed',
|
|
30
|
-
() => dismissed,
|
|
31
|
-
(v) => {
|
|
32
|
-
dismissed = v;
|
|
33
|
-
}
|
|
34
|
-
)
|
|
35
|
-
],
|
|
36
|
-
() => ({ dismissible, disabled, extend })
|
|
37
|
-
);
|
|
38
|
-
const bond = factory(bondProps).share();
|
|
39
|
-
|
|
40
|
-
const rootProps = $derived({
|
|
41
|
-
...bond.root(),
|
|
42
|
-
...restProps
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
// Auto-hide logic for dismissed alerts
|
|
46
|
-
$effect(() => {
|
|
47
|
-
if (dismissed && bond.elements.root) {
|
|
48
|
-
// Add smooth transition out animation
|
|
49
|
-
const element = bond.elements.root;
|
|
50
|
-
element.style.transition = 'opacity 0.3s ease-out, transform 0.3s ease-out';
|
|
51
|
-
element.style.opacity = '0';
|
|
52
|
-
element.style.transform = 'translateY(-10px)';
|
|
53
|
-
|
|
54
|
-
// Optional: Remove from DOM after animation
|
|
55
|
-
setTimeout(() => {
|
|
56
|
-
if (element?.parentNode) {
|
|
57
|
-
element.style.display = 'none';
|
|
58
|
-
}
|
|
59
|
-
}, 300);
|
|
60
|
-
} else if (!dismissed && bond.elements.root) {
|
|
61
|
-
// Restore visibility
|
|
62
|
-
const element = bond.elements.root;
|
|
63
|
-
element.style.display = '';
|
|
64
|
-
element.style.opacity = '1';
|
|
65
|
-
element.style.transform = 'translateY(0)';
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
function _factory(props: typeof bondProps) {
|
|
70
|
-
const bondState = new AlertBondState(() => props);
|
|
71
|
-
return new AlertBond(bondState);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export function getBond() {
|
|
75
|
-
return bond;
|
|
76
|
-
}
|
|
77
|
-
</script>
|
|
78
|
-
|
|
79
|
-
<HtmlAtom
|
|
80
|
-
{preset}
|
|
81
|
-
class={[
|
|
82
|
-
'alert border-border relative flex gap-1 rounded-md border p-4 transition-all duration-200',
|
|
83
|
-
// Base styles
|
|
84
|
-
'bg-background text-foreground',
|
|
85
|
-
// State styles
|
|
86
|
-
{
|
|
87
|
-
'pointer-events-none opacity-60': disabled,
|
|
88
|
-
'pointer-events-none opacity-0': dismissed
|
|
89
|
-
},
|
|
90
|
-
'$preset',
|
|
91
|
-
klass
|
|
92
|
-
]}
|
|
93
|
-
{bond}
|
|
94
|
-
onmount={onmount?.bind(bond.state)}
|
|
95
|
-
ondestroy={ondestroy?.bind(bond.state)}
|
|
96
|
-
animate={animate?.bind(bond.state)}
|
|
97
|
-
enter={enter?.bind(bond.state)}
|
|
98
|
-
exit={exit?.bind(bond.state)}
|
|
99
|
-
initial={initial?.bind(bond.state)}
|
|
100
|
-
{...rootProps}
|
|
101
|
-
>
|
|
102
|
-
{@render children?.({ alert: bond })}
|
|
103
|
-
</HtmlAtom>
|
|
1
|
+
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
+
import { defineProperty, defineState } from '../../utils';
|
|
3
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
4
|
+
import { AlertBond, AlertBondState, type AlertBondProps } from './bond.svelte';
|
|
5
|
+
import type { AlertRootProps } from './types';
|
|
6
|
+
import './alert.css';
|
|
7
|
+
|
|
8
|
+
let {
|
|
9
|
+
class: klass = '',
|
|
10
|
+
preset = 'alert',
|
|
11
|
+
dismissible = false,
|
|
12
|
+
dismissed = $bindable(false),
|
|
13
|
+
disabled = false,
|
|
14
|
+
extend = {},
|
|
15
|
+
factory = _factory,
|
|
16
|
+
children = undefined,
|
|
17
|
+
onmount = undefined,
|
|
18
|
+
ondestroy = undefined,
|
|
19
|
+
animate = undefined,
|
|
20
|
+
enter = undefined,
|
|
21
|
+
exit = undefined,
|
|
22
|
+
initial = undefined,
|
|
23
|
+
...restProps
|
|
24
|
+
}: AlertRootProps<E, B> = $props();
|
|
25
|
+
|
|
26
|
+
const bondProps = defineState<AlertBondProps>(
|
|
27
|
+
[
|
|
28
|
+
defineProperty(
|
|
29
|
+
'dismissed',
|
|
30
|
+
() => dismissed,
|
|
31
|
+
(v) => {
|
|
32
|
+
dismissed = v;
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
],
|
|
36
|
+
() => ({ dismissible, disabled, extend })
|
|
37
|
+
);
|
|
38
|
+
const bond = factory(bondProps).share();
|
|
39
|
+
|
|
40
|
+
const rootProps = $derived({
|
|
41
|
+
...bond.root(),
|
|
42
|
+
...restProps
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// Auto-hide logic for dismissed alerts
|
|
46
|
+
$effect(() => {
|
|
47
|
+
if (dismissed && bond.elements.root) {
|
|
48
|
+
// Add smooth transition out animation
|
|
49
|
+
const element = bond.elements.root;
|
|
50
|
+
element.style.transition = 'opacity 0.3s ease-out, transform 0.3s ease-out';
|
|
51
|
+
element.style.opacity = '0';
|
|
52
|
+
element.style.transform = 'translateY(-10px)';
|
|
53
|
+
|
|
54
|
+
// Optional: Remove from DOM after animation
|
|
55
|
+
setTimeout(() => {
|
|
56
|
+
if (element?.parentNode) {
|
|
57
|
+
element.style.display = 'none';
|
|
58
|
+
}
|
|
59
|
+
}, 300);
|
|
60
|
+
} else if (!dismissed && bond.elements.root) {
|
|
61
|
+
// Restore visibility
|
|
62
|
+
const element = bond.elements.root;
|
|
63
|
+
element.style.display = '';
|
|
64
|
+
element.style.opacity = '1';
|
|
65
|
+
element.style.transform = 'translateY(0)';
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
function _factory(props: typeof bondProps) {
|
|
70
|
+
const bondState = new AlertBondState(() => props);
|
|
71
|
+
return new AlertBond(bondState);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export function getBond() {
|
|
75
|
+
return bond;
|
|
76
|
+
}
|
|
77
|
+
</script>
|
|
78
|
+
|
|
79
|
+
<HtmlAtom
|
|
80
|
+
{preset}
|
|
81
|
+
class={[
|
|
82
|
+
'alert border-border relative flex gap-1 rounded-md border p-4 transition-all duration-200',
|
|
83
|
+
// Base styles
|
|
84
|
+
'bg-background text-foreground',
|
|
85
|
+
// State styles
|
|
86
|
+
{
|
|
87
|
+
'pointer-events-none opacity-60': disabled,
|
|
88
|
+
'pointer-events-none opacity-0': dismissed
|
|
89
|
+
},
|
|
90
|
+
'$preset',
|
|
91
|
+
klass
|
|
92
|
+
]}
|
|
93
|
+
{bond}
|
|
94
|
+
onmount={onmount?.bind(bond.state)}
|
|
95
|
+
ondestroy={ondestroy?.bind(bond.state)}
|
|
96
|
+
animate={animate?.bind(bond.state)}
|
|
97
|
+
enter={enter?.bind(bond.state)}
|
|
98
|
+
exit={exit?.bind(bond.state)}
|
|
99
|
+
initial={initial?.bind(bond.state)}
|
|
100
|
+
{...rootProps}
|
|
101
|
+
>
|
|
102
|
+
{@render children?.({ alert: bond })}
|
|
103
|
+
</HtmlAtom>
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
-
import { HtmlAtom, type Base } from '../atom';
|
|
3
|
-
import { AlertBond } from './bond.svelte';
|
|
4
|
-
import type { AlertTitleProps } from './types';
|
|
5
|
-
|
|
6
|
-
const bond = AlertBond.get();
|
|
7
|
-
|
|
8
|
-
let {
|
|
9
|
-
as = 'h4' as E,
|
|
10
|
-
class: klass = '',
|
|
11
|
-
preset = 'alert.title',
|
|
12
|
-
children = undefined,
|
|
13
|
-
onmount = undefined,
|
|
14
|
-
ondestroy = undefined,
|
|
15
|
-
animate = undefined,
|
|
16
|
-
enter = undefined,
|
|
17
|
-
exit = undefined,
|
|
18
|
-
initial = undefined,
|
|
19
|
-
...restProps
|
|
20
|
-
}: AlertTitleProps<E, B> = $props();
|
|
21
|
-
|
|
22
|
-
const titleProps = $derived({
|
|
23
|
-
...bond?.title(),
|
|
24
|
-
...restProps
|
|
25
|
-
});
|
|
26
|
-
</script>
|
|
27
|
-
|
|
28
|
-
<HtmlAtom
|
|
29
|
-
{as}
|
|
30
|
-
{bond}
|
|
31
|
-
{preset}
|
|
32
|
-
class={['alert-title border-border text-sm leading-tight font-medium', '$preset', klass]}
|
|
33
|
-
onmount={onmount?.bind(bond.state)}
|
|
34
|
-
ondestroy={ondestroy?.bind(bond.state)}
|
|
35
|
-
animate={animate?.bind(bond.state)}
|
|
36
|
-
enter={enter?.bind(bond.state)}
|
|
37
|
-
exit={exit?.bind(bond.state)}
|
|
38
|
-
initial={initial?.bind(bond.state)}
|
|
39
|
-
{...titleProps}
|
|
40
|
-
>
|
|
41
|
-
{@render children?.({ alert: bond! })}
|
|
42
|
-
</HtmlAtom>
|
|
1
|
+
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
3
|
+
import { AlertBond } from './bond.svelte';
|
|
4
|
+
import type { AlertTitleProps } from './types';
|
|
5
|
+
|
|
6
|
+
const bond = AlertBond.get();
|
|
7
|
+
|
|
8
|
+
let {
|
|
9
|
+
as = 'h4' as E,
|
|
10
|
+
class: klass = '',
|
|
11
|
+
preset = 'alert.title',
|
|
12
|
+
children = undefined,
|
|
13
|
+
onmount = undefined,
|
|
14
|
+
ondestroy = undefined,
|
|
15
|
+
animate = undefined,
|
|
16
|
+
enter = undefined,
|
|
17
|
+
exit = undefined,
|
|
18
|
+
initial = undefined,
|
|
19
|
+
...restProps
|
|
20
|
+
}: AlertTitleProps<E, B> = $props();
|
|
21
|
+
|
|
22
|
+
const titleProps = $derived({
|
|
23
|
+
...bond?.title(),
|
|
24
|
+
...restProps
|
|
25
|
+
});
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<HtmlAtom
|
|
29
|
+
{as}
|
|
30
|
+
{bond}
|
|
31
|
+
{preset}
|
|
32
|
+
class={['alert-title border-border text-sm leading-tight font-medium', '$preset', klass]}
|
|
33
|
+
onmount={onmount?.bind(bond.state)}
|
|
34
|
+
ondestroy={ondestroy?.bind(bond.state)}
|
|
35
|
+
animate={animate?.bind(bond.state)}
|
|
36
|
+
enter={enter?.bind(bond.state)}
|
|
37
|
+
exit={exit?.bind(bond.state)}
|
|
38
|
+
initial={initial?.bind(bond.state)}
|
|
39
|
+
{...titleProps}
|
|
40
|
+
>
|
|
41
|
+
{@render children?.({ alert: bond! })}
|
|
42
|
+
</HtmlAtom>
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
<script module>
|
|
2
2
|
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
-
import Root from '../root/root.svelte';
|
|
4
3
|
import { Alert as AAlert } from './index';
|
|
5
4
|
import { Button } from '../button';
|
|
6
5
|
import { Icon } from '../icon';
|
|
@@ -44,7 +43,7 @@
|
|
|
44
43
|
{/snippet}
|
|
45
44
|
|
|
46
45
|
<Story name="All Variants">
|
|
47
|
-
<
|
|
46
|
+
<div class="space-y-6 p-8">
|
|
48
47
|
<div class="space-y-4">
|
|
49
48
|
<h2 class="text-2xl font-bold">Alert Variants</h2>
|
|
50
49
|
|
|
@@ -113,11 +112,11 @@
|
|
|
113
112
|
<AAlert.Content></AAlert.Content>
|
|
114
113
|
</AAlert.Root>
|
|
115
114
|
</div>
|
|
116
|
-
</
|
|
115
|
+
</div>
|
|
117
116
|
</Story>
|
|
118
117
|
|
|
119
118
|
<Story name="Dismissible">
|
|
120
|
-
<
|
|
119
|
+
<div class="space-y-6 p-8">
|
|
121
120
|
<div class="space-y-4">
|
|
122
121
|
<h2 class="text-2xl font-bold">Dismissible Alerts</h2>
|
|
123
122
|
|
|
@@ -172,11 +171,11 @@
|
|
|
172
171
|
</AAlert.CloseButton>
|
|
173
172
|
</AAlert.Root>
|
|
174
173
|
</div>
|
|
175
|
-
</
|
|
174
|
+
</div>
|
|
176
175
|
</Story>
|
|
177
176
|
|
|
178
177
|
<Story name="With Actions">
|
|
179
|
-
<
|
|
178
|
+
<div class="space-y-6 p-8">
|
|
180
179
|
<div class="space-y-4">
|
|
181
180
|
<h2 class="text-2xl font-bold">Alerts with Action Buttons</h2>
|
|
182
181
|
|
|
@@ -243,11 +242,11 @@
|
|
|
243
242
|
<AAlert.Content></AAlert.Content>
|
|
244
243
|
</AAlert.Root>
|
|
245
244
|
</div>
|
|
246
|
-
</
|
|
245
|
+
</div>
|
|
247
246
|
</Story>
|
|
248
247
|
|
|
249
248
|
<Story name="Minimal">
|
|
250
|
-
<
|
|
249
|
+
<div class="space-y-6 p-8">
|
|
251
250
|
<div class="space-y-4">
|
|
252
251
|
<h2 class="text-2xl font-bold">Minimal Alerts</h2>
|
|
253
252
|
|
|
@@ -268,11 +267,11 @@
|
|
|
268
267
|
<AAlert.Content>Connection lost. Attempting to reconnect...</AAlert.Content>
|
|
269
268
|
</AAlert.Root>
|
|
270
269
|
</div>
|
|
271
|
-
</
|
|
270
|
+
</div>
|
|
272
271
|
</Story>
|
|
273
272
|
|
|
274
273
|
<Story name="Real-World Examples">
|
|
275
|
-
<
|
|
274
|
+
<div class="space-y-6 p-8">
|
|
276
275
|
<div class="space-y-4">
|
|
277
276
|
<h2 class="text-2xl font-bold">Real-World Use Cases</h2>
|
|
278
277
|
|
|
@@ -397,5 +396,5 @@
|
|
|
397
396
|
</AAlert.Actions>
|
|
398
397
|
</AAlert.Root>
|
|
399
398
|
</div>
|
|
400
|
-
</
|
|
399
|
+
</div>
|
|
401
400
|
</Story>
|