@svelte-atoms/core 1.0.0-alpha.31 → 1.0.0-alpha.33
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/LICENSE +21 -0
- package/README.md +289 -853
- package/dist/attachments/index.d.ts +1 -0
- package/dist/attachments/index.js +1 -0
- package/dist/components/accordion/accordion-root.svelte +65 -65
- package/dist/components/accordion/accordion.stories.svelte +70 -70
- package/dist/components/accordion/item/accordion-item-body.svelte +44 -44
- package/dist/components/accordion/item/accordion-item-header.svelte +51 -51
- package/dist/components/accordion/item/accordion-item-indicator.svelte +51 -51
- package/dist/components/accordion/item/accordion-item-root.svelte +66 -66
- package/dist/components/alert/alert-close-button.svelte +66 -66
- package/dist/components/alert/alert-description.svelte +42 -42
- package/dist/components/alert/alert-root.svelte +68 -68
- package/dist/components/atom/html-atom.svelte +26 -194
- package/dist/components/atom/types.d.ts +3 -2
- package/dist/components/atom/utils.d.ts +37 -0
- package/dist/components/atom/utils.js +208 -0
- package/dist/components/breadcrumb/breadcrumb-item.svelte +1 -1
- package/dist/components/breadcrumb/breadcrumb-separator.svelte +5 -1
- package/dist/components/breadcrumb/breadcrumb.stories.svelte +16 -16
- package/dist/components/calendar/calendar-day.svelte +101 -101
- package/dist/components/checkbox/checkbox.svelte +159 -159
- package/dist/components/collapsible/bond.svelte.js +2 -1
- package/dist/components/collapsible/collapsible-body.svelte +3 -2
- package/dist/components/collapsible/motion.svelte.d.ts +6 -0
- package/dist/components/collapsible/motion.svelte.js +15 -0
- package/dist/components/combobox/atoms.d.ts +3 -3
- package/dist/components/combobox/atoms.js +3 -3
- package/dist/components/combobox/bond.svelte.d.ts +6 -6
- package/dist/components/combobox/bond.svelte.js +3 -26
- package/dist/components/combobox/combobox-control.svelte +52 -52
- package/dist/components/combobox/{compobox-item.svelte → combobox-item.svelte} +62 -68
- package/dist/components/combobox/combobox-item.svelte.d.ts +12 -0
- package/dist/components/combobox/combobox.stories.svelte +50 -0
- package/dist/components/combobox/combobox.stories.svelte.d.ts +3 -0
- package/dist/components/datagrid/tr/datagrid-tr.svelte +90 -90
- package/dist/components/date-picker/bond.svelte.d.ts +15 -5
- package/dist/components/date-picker/bond.svelte.js +6 -11
- package/dist/components/date-picker/date-picker-calendar.svelte +1 -8
- package/dist/components/dialog/bond.svelte.js +5 -20
- package/dist/components/dialog/dialog-content.svelte +44 -44
- package/dist/components/dialog/dialog-root.svelte +91 -91
- package/dist/components/drawer/bond.svelte.d.ts +18 -16
- package/dist/components/drawer/bond.svelte.js +8 -18
- package/dist/components/drawer/drawer-content.svelte +49 -49
- package/dist/components/drawer/drawer-root.svelte +5 -4
- package/dist/components/drawer/drawer.stories.svelte +141 -144
- package/dist/components/drawer/motion.js +1 -1
- package/dist/components/dropdown/atoms.d.ts +1 -1
- package/dist/components/dropdown/atoms.js +1 -1
- package/dist/components/dropdown/bond.svelte.d.ts +21 -22
- package/dist/components/dropdown/bond.svelte.js +29 -53
- package/dist/components/dropdown/dropdown-root.svelte +65 -59
- package/dist/components/dropdown/dropdown-values.svelte +17 -17
- package/dist/components/dropdown/dropdown-values.svelte.d.ts +1 -2
- package/dist/components/dropdown/dropdown.stories.svelte +83 -80
- package/dist/components/dropdown/index.d.ts +1 -0
- package/dist/components/dropdown/index.js +1 -0
- package/dist/components/dropdown/item/attachments.svelte.d.ts +2 -2
- package/dist/components/dropdown/item/attachments.svelte.js +2 -2
- package/dist/components/dropdown/item/controller.svelte.d.ts +34 -0
- package/dist/components/dropdown/item/controller.svelte.js +82 -0
- package/dist/components/dropdown/item/dropdown-item.svelte +109 -102
- package/dist/components/dropdown/item/dropdown-item.svelte.d.ts +13 -28
- package/dist/components/dropdown/item/index.d.ts +3 -0
- package/dist/components/dropdown/item/index.js +3 -0
- package/dist/components/dropdown/item/types.d.ts +29 -0
- package/dist/components/dropdown/item/types.js +1 -0
- package/dist/components/list/list-item.svelte +20 -20
- package/dist/components/menu/atoms.d.ts +8 -3
- package/dist/components/menu/atoms.js +8 -3
- package/dist/components/menu/bond.svelte.d.ts +54 -0
- package/dist/components/menu/bond.svelte.js +132 -0
- package/dist/components/menu/index.d.ts +1 -0
- package/dist/components/menu/index.js +1 -0
- package/dist/components/menu/item/controller.svelte.d.ts +26 -0
- package/dist/components/menu/item/controller.svelte.js +69 -0
- package/dist/components/menu/item/index.d.ts +2 -0
- package/dist/components/menu/item/index.js +2 -0
- package/dist/components/menu/item/menu-item.svelte +103 -0
- package/dist/components/menu/item/menu-item.svelte.d.ts +31 -0
- package/dist/components/menu/item/types.d.ts +62 -0
- package/dist/components/menu/item/types.js +1 -0
- package/dist/components/menu/{menu-list.svelte → menu-content.svelte} +40 -40
- package/dist/components/menu/{menu-list.svelte.d.ts → menu-content.svelte.d.ts} +3 -3
- package/dist/components/menu/menu-root.svelte +15 -0
- package/dist/components/menu/menu-root.svelte.d.ts +8 -0
- package/dist/components/menu/menu.stories.svelte +33 -33
- package/dist/components/menu/types.d.ts +0 -7
- package/dist/components/popover/bond.svelte.d.ts +11 -14
- package/dist/components/popover/bond.svelte.js +27 -44
- package/dist/components/popover/popover-content.svelte +137 -137
- package/dist/components/popover/popover.stories.svelte +37 -49
- package/dist/components/portal/active-portal.svelte +29 -29
- package/dist/components/portal/portal-root.svelte +76 -76
- package/dist/components/portal/teleport.svelte +49 -49
- package/dist/components/radio/radio.svelte +109 -109
- package/dist/components/root/index.d.ts +1 -0
- package/dist/components/root/index.js +1 -0
- package/dist/components/root/l0-portal.svelte +8 -0
- package/dist/components/root/l0-portal.svelte.d.ts +26 -0
- package/dist/components/root/l1-portal.svelte +7 -0
- package/dist/components/root/l1-portal.svelte.d.ts +26 -0
- package/dist/components/root/root.css +119 -119
- package/dist/components/root/root.svelte +17 -18
- package/dist/components/root/root.svelte.d.ts +2 -6
- package/dist/components/root/toasts-portal.svelte +7 -0
- package/dist/components/root/toasts-portal.svelte.d.ts +26 -0
- package/dist/components/root/types.d.ts +17 -0
- package/dist/components/sidebar/motion.svelte.js +3 -3
- package/dist/components/sidebar/sidebar-content.svelte +40 -40
- package/dist/components/textarea/textarea-input.svelte +9 -9
- package/dist/components/textarea/textarea-root.svelte +9 -9
- package/dist/components/tooltip/tooltip-trigger.svelte +39 -39
- package/dist/components/tree/index.d.ts +1 -0
- package/dist/components/tree/index.js +1 -0
- package/dist/components/tree/motion.svelte.d.ts +6 -0
- package/dist/components/tree/motion.svelte.js +14 -0
- package/dist/components/tree/tree-body.svelte +4 -3
- package/dist/context/preset.svelte.d.ts +3 -1
- package/dist/icons/icon-copy.svelte +6 -6
- package/dist/utils/dom.svelte.d.ts +2 -0
- package/dist/utils/dom.svelte.js +21 -0
- package/dist/utils/function.d.ts +1 -1
- package/dist/utils/promise.svelte.d.ts +5 -0
- package/dist/utils/promise.svelte.js +20 -0
- package/package.json +4 -2
- package/dist/components/combobox/compobox-item.svelte.d.ts +0 -34
- package/dist/components/combobox/compobox.stories.svelte +0 -51
- package/dist/components/combobox/compobox.stories.svelte.d.ts +0 -3
- package/dist/components/dropdown/item/bond.svelte.d.ts +0 -42
- package/dist/components/dropdown/item/bond.svelte.js +0 -99
- package/dist/components/menu/menu-item.svelte +0 -69
- package/dist/components/menu/menu-item.svelte.d.ts +0 -37
- package/dist/utils/markdown-to-llm.d.ts +0 -28
- package/dist/utils/markdown-to-llm.js +0 -76
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
-
import { nanoid } from 'nanoid';
|
|
3
|
-
import { defineProperty, defineState } from '../../../utils';
|
|
4
|
-
import { HtmlAtom, type Base } from '../../atom';
|
|
5
|
-
import {
|
|
6
|
-
AccordionItemBond,
|
|
7
|
-
AccordionItemBondState,
|
|
8
|
-
type AccordionItemBondProps
|
|
9
|
-
} from './bond.svelte';
|
|
10
|
-
import type { AccordionItemRootProps } from './types';
|
|
11
|
-
|
|
12
|
-
let {
|
|
13
|
-
class: klass = '',
|
|
14
|
-
value = nanoid(),
|
|
15
|
-
data = undefined,
|
|
16
|
-
disabled = false,
|
|
17
|
-
factory = _factory,
|
|
18
|
-
children = undefined,
|
|
19
|
-
onmount = undefined,
|
|
20
|
-
ondestroy = undefined,
|
|
21
|
-
animate = undefined,
|
|
22
|
-
enter = undefined,
|
|
23
|
-
exit = undefined,
|
|
24
|
-
initial = undefined,
|
|
25
|
-
preset = 'accordion.item',
|
|
26
|
-
...restProps
|
|
27
|
-
}: AccordionItemRootProps<E, B> = $props();
|
|
28
|
-
|
|
29
|
-
const accordionItemProps = defineState<AccordionItemBondProps>([
|
|
30
|
-
defineProperty('data', () => data),
|
|
31
|
-
defineProperty('disabled', () => disabled),
|
|
32
|
-
defineProperty('value', () => value)
|
|
33
|
-
]);
|
|
34
|
-
const bond = factory(accordionItemProps).share();
|
|
35
|
-
|
|
36
|
-
bond.state.mount();
|
|
37
|
-
|
|
38
|
-
const rootProps = $derived({
|
|
39
|
-
...bond.root(),
|
|
40
|
-
...restProps
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
function _factory(props: typeof accordionItemProps) {
|
|
44
|
-
const accordionItemState = new AccordionItemBondState(() => props);
|
|
45
|
-
return new AccordionItemBond(accordionItemState);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export function getBond() {
|
|
49
|
-
return bond;
|
|
50
|
-
}
|
|
51
|
-
</script>
|
|
52
|
-
|
|
53
|
-
<HtmlAtom
|
|
54
|
-
{bond}
|
|
55
|
-
{preset}
|
|
56
|
-
class={['border-border', '$preset', klass]}
|
|
57
|
-
onmount={onmount?.bind(bond.state)}
|
|
58
|
-
ondestroy={ondestroy?.bind(bond.state)}
|
|
59
|
-
animate={animate?.bind(bond.state)}
|
|
60
|
-
enter={enter?.bind(bond.state)}
|
|
61
|
-
exit={exit?.bind(bond.state)}
|
|
62
|
-
initial={initial?.bind(bond.state)}
|
|
63
|
-
{...rootProps}
|
|
64
|
-
>
|
|
65
|
-
{@render children?.({ accordionItem: bond })}
|
|
66
|
-
</HtmlAtom>
|
|
1
|
+
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
+
import { nanoid } from 'nanoid';
|
|
3
|
+
import { defineProperty, defineState } from '../../../utils';
|
|
4
|
+
import { HtmlAtom, type Base } from '../../atom';
|
|
5
|
+
import {
|
|
6
|
+
AccordionItemBond,
|
|
7
|
+
AccordionItemBondState,
|
|
8
|
+
type AccordionItemBondProps
|
|
9
|
+
} from './bond.svelte';
|
|
10
|
+
import type { AccordionItemRootProps } from './types';
|
|
11
|
+
|
|
12
|
+
let {
|
|
13
|
+
class: klass = '',
|
|
14
|
+
value = nanoid(),
|
|
15
|
+
data = undefined,
|
|
16
|
+
disabled = false,
|
|
17
|
+
factory = _factory,
|
|
18
|
+
children = undefined,
|
|
19
|
+
onmount = undefined,
|
|
20
|
+
ondestroy = undefined,
|
|
21
|
+
animate = undefined,
|
|
22
|
+
enter = undefined,
|
|
23
|
+
exit = undefined,
|
|
24
|
+
initial = undefined,
|
|
25
|
+
preset = 'accordion.item',
|
|
26
|
+
...restProps
|
|
27
|
+
}: AccordionItemRootProps<E, B> = $props();
|
|
28
|
+
|
|
29
|
+
const accordionItemProps = defineState<AccordionItemBondProps>([
|
|
30
|
+
defineProperty('data', () => data),
|
|
31
|
+
defineProperty('disabled', () => disabled),
|
|
32
|
+
defineProperty('value', () => value)
|
|
33
|
+
]);
|
|
34
|
+
const bond = factory(accordionItemProps).share();
|
|
35
|
+
|
|
36
|
+
bond.state.mount();
|
|
37
|
+
|
|
38
|
+
const rootProps = $derived({
|
|
39
|
+
...bond.root(),
|
|
40
|
+
...restProps
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
function _factory(props: typeof accordionItemProps) {
|
|
44
|
+
const accordionItemState = new AccordionItemBondState(() => props);
|
|
45
|
+
return new AccordionItemBond(accordionItemState);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function getBond() {
|
|
49
|
+
return bond;
|
|
50
|
+
}
|
|
51
|
+
</script>
|
|
52
|
+
|
|
53
|
+
<HtmlAtom
|
|
54
|
+
{bond}
|
|
55
|
+
{preset}
|
|
56
|
+
class={['border-border', '$preset', klass]}
|
|
57
|
+
onmount={onmount?.bind(bond.state)}
|
|
58
|
+
ondestroy={ondestroy?.bind(bond.state)}
|
|
59
|
+
animate={animate?.bind(bond.state)}
|
|
60
|
+
enter={enter?.bind(bond.state)}
|
|
61
|
+
exit={exit?.bind(bond.state)}
|
|
62
|
+
initial={initial?.bind(bond.state)}
|
|
63
|
+
{...rootProps}
|
|
64
|
+
>
|
|
65
|
+
{@render children?.({ accordionItem: bond })}
|
|
66
|
+
</HtmlAtom>
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
<script
|
|
2
|
-
lang="ts"
|
|
3
|
-
generics="E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base"
|
|
4
|
-
>
|
|
5
|
-
import type { HTMLAttributes } from 'svelte/elements';
|
|
6
|
-
import { HtmlAtom, type Base } from '../atom';
|
|
7
|
-
import { AlertBond } from './bond.svelte';
|
|
8
|
-
import type { AlertCloseButtonProps } from './types';
|
|
9
|
-
import { Icon } from '../icon';
|
|
10
|
-
|
|
11
|
-
type Element = HTMLElementTagNameMap[E];
|
|
12
|
-
|
|
13
|
-
const bond = AlertBond.get();
|
|
14
|
-
|
|
15
|
-
let {
|
|
16
|
-
class: klass = '',
|
|
17
|
-
as = 'button' as E,
|
|
18
|
-
preset = 'alert.close-button',
|
|
19
|
-
children = undefined,
|
|
20
|
-
onmount = undefined,
|
|
21
|
-
ondestroy = undefined,
|
|
22
|
-
animate = undefined,
|
|
23
|
-
enter = undefined,
|
|
24
|
-
exit = undefined,
|
|
25
|
-
initial = undefined,
|
|
26
|
-
...restProps
|
|
27
|
-
}: AlertCloseButtonProps<E, B> & HTMLAttributes<Element> = $props();
|
|
28
|
-
|
|
29
|
-
const closeButtonProps = $derived({
|
|
30
|
-
...bond?.closeButton(),
|
|
31
|
-
...restProps
|
|
32
|
-
});
|
|
33
|
-
</script>
|
|
34
|
-
|
|
35
|
-
<HtmlAtom
|
|
36
|
-
{as}
|
|
37
|
-
{bond}
|
|
38
|
-
{preset}
|
|
39
|
-
class={[
|
|
40
|
-
'alert-close-button border-border flex size-6 items-center justify-center rounded p-0.5 transition-colors hover:bg-black/10 dark:hover:bg-white/10',
|
|
41
|
-
'$preset',
|
|
42
|
-
klass
|
|
43
|
-
]}
|
|
44
|
-
onmount={onmount?.bind(bond.state)}
|
|
45
|
-
ondestroy={ondestroy?.bind(bond.state)}
|
|
46
|
-
animate={animate?.bind(bond.state)}
|
|
47
|
-
enter={enter?.bind(bond.state)}
|
|
48
|
-
exit={exit?.bind(bond.state)}
|
|
49
|
-
initial={initial?.bind(bond.state)}
|
|
50
|
-
{...closeButtonProps}
|
|
51
|
-
>
|
|
52
|
-
{#if children}
|
|
53
|
-
{@render children({ alert: bond! })}
|
|
54
|
-
{:else}
|
|
55
|
-
<Icon class="h-full">
|
|
56
|
-
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
57
|
-
<path
|
|
58
|
-
stroke-linecap="round"
|
|
59
|
-
stroke-linejoin="round"
|
|
60
|
-
stroke-width="2"
|
|
61
|
-
d="M6 18L18 6M6 6l12 12"
|
|
62
|
-
/>
|
|
63
|
-
</svg>
|
|
64
|
-
</Icon>
|
|
65
|
-
{/if}
|
|
66
|
-
</HtmlAtom>
|
|
1
|
+
<script
|
|
2
|
+
lang="ts"
|
|
3
|
+
generics="E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base"
|
|
4
|
+
>
|
|
5
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
6
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
7
|
+
import { AlertBond } from './bond.svelte';
|
|
8
|
+
import type { AlertCloseButtonProps } from './types';
|
|
9
|
+
import { Icon } from '../icon';
|
|
10
|
+
|
|
11
|
+
type Element = HTMLElementTagNameMap[E];
|
|
12
|
+
|
|
13
|
+
const bond = AlertBond.get();
|
|
14
|
+
|
|
15
|
+
let {
|
|
16
|
+
class: klass = '',
|
|
17
|
+
as = 'button' as E,
|
|
18
|
+
preset = 'alert.close-button',
|
|
19
|
+
children = undefined,
|
|
20
|
+
onmount = undefined,
|
|
21
|
+
ondestroy = undefined,
|
|
22
|
+
animate = undefined,
|
|
23
|
+
enter = undefined,
|
|
24
|
+
exit = undefined,
|
|
25
|
+
initial = undefined,
|
|
26
|
+
...restProps
|
|
27
|
+
}: AlertCloseButtonProps<E, B> & HTMLAttributes<Element> = $props();
|
|
28
|
+
|
|
29
|
+
const closeButtonProps = $derived({
|
|
30
|
+
...bond?.closeButton(),
|
|
31
|
+
...restProps
|
|
32
|
+
});
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<HtmlAtom
|
|
36
|
+
{as}
|
|
37
|
+
{bond}
|
|
38
|
+
{preset}
|
|
39
|
+
class={[
|
|
40
|
+
'alert-close-button border-border flex size-6 items-center justify-center rounded p-0.5 transition-colors hover:bg-black/10 dark:hover:bg-white/10',
|
|
41
|
+
'$preset',
|
|
42
|
+
klass
|
|
43
|
+
]}
|
|
44
|
+
onmount={onmount?.bind(bond.state)}
|
|
45
|
+
ondestroy={ondestroy?.bind(bond.state)}
|
|
46
|
+
animate={animate?.bind(bond.state)}
|
|
47
|
+
enter={enter?.bind(bond.state)}
|
|
48
|
+
exit={exit?.bind(bond.state)}
|
|
49
|
+
initial={initial?.bind(bond.state)}
|
|
50
|
+
{...closeButtonProps}
|
|
51
|
+
>
|
|
52
|
+
{#if children}
|
|
53
|
+
{@render children({ alert: bond! })}
|
|
54
|
+
{:else}
|
|
55
|
+
<Icon class="h-full">
|
|
56
|
+
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
57
|
+
<path
|
|
58
|
+
stroke-linecap="round"
|
|
59
|
+
stroke-linejoin="round"
|
|
60
|
+
stroke-width="2"
|
|
61
|
+
d="M6 18L18 6M6 6l12 12"
|
|
62
|
+
/>
|
|
63
|
+
</svg>
|
|
64
|
+
</Icon>
|
|
65
|
+
{/if}
|
|
66
|
+
</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 { 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
|
+
import 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,68 +1,68 @@
|
|
|
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
|
-
disabled = false,
|
|
12
|
-
extend = {},
|
|
13
|
-
factory = _factory,
|
|
14
|
-
children = undefined,
|
|
15
|
-
onmount = undefined,
|
|
16
|
-
ondestroy = undefined,
|
|
17
|
-
animate = undefined,
|
|
18
|
-
enter = undefined,
|
|
19
|
-
exit = undefined,
|
|
20
|
-
initial = undefined,
|
|
21
|
-
...restProps
|
|
22
|
-
}: AlertRootProps<E, B> = $props();
|
|
23
|
-
|
|
24
|
-
const bondProps = defineState<AlertBondProps>(
|
|
25
|
-
[defineProperty('disabled', () => disabled)],
|
|
26
|
-
() => ({ disabled, extend })
|
|
27
|
-
);
|
|
28
|
-
const bond = factory(bondProps).share();
|
|
29
|
-
|
|
30
|
-
const rootProps = $derived({
|
|
31
|
-
...bond.root(),
|
|
32
|
-
...restProps
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
function _factory(props: typeof bondProps) {
|
|
36
|
-
const bondState = new AlertBondState(() => props);
|
|
37
|
-
return new AlertBond(bondState);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export function getBond() {
|
|
41
|
-
return bond;
|
|
42
|
-
}
|
|
43
|
-
</script>
|
|
44
|
-
|
|
45
|
-
<HtmlAtom
|
|
46
|
-
{preset}
|
|
47
|
-
class={[
|
|
48
|
-
'alert border-border relative flex gap-1 rounded-md border p-4 transition-all duration-200',
|
|
49
|
-
// Base styles
|
|
50
|
-
'bg-background text-foreground',
|
|
51
|
-
// State styles
|
|
52
|
-
{
|
|
53
|
-
'pointer-events-none opacity-50': disabled
|
|
54
|
-
},
|
|
55
|
-
'$preset',
|
|
56
|
-
klass
|
|
57
|
-
]}
|
|
58
|
-
{bond}
|
|
59
|
-
onmount={onmount?.bind(bond.state)}
|
|
60
|
-
ondestroy={ondestroy?.bind(bond.state)}
|
|
61
|
-
animate={animate?.bind(bond.state)}
|
|
62
|
-
enter={enter?.bind(bond.state)}
|
|
63
|
-
exit={exit?.bind(bond.state)}
|
|
64
|
-
initial={initial?.bind(bond.state)}
|
|
65
|
-
{...rootProps}
|
|
66
|
-
>
|
|
67
|
-
{@render children?.({ alert: bond })}
|
|
68
|
-
</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
|
+
disabled = false,
|
|
12
|
+
extend = {},
|
|
13
|
+
factory = _factory,
|
|
14
|
+
children = undefined,
|
|
15
|
+
onmount = undefined,
|
|
16
|
+
ondestroy = undefined,
|
|
17
|
+
animate = undefined,
|
|
18
|
+
enter = undefined,
|
|
19
|
+
exit = undefined,
|
|
20
|
+
initial = undefined,
|
|
21
|
+
...restProps
|
|
22
|
+
}: AlertRootProps<E, B> = $props();
|
|
23
|
+
|
|
24
|
+
const bondProps = defineState<AlertBondProps>(
|
|
25
|
+
[defineProperty('disabled', () => disabled)],
|
|
26
|
+
() => ({ disabled, extend })
|
|
27
|
+
);
|
|
28
|
+
const bond = factory(bondProps).share();
|
|
29
|
+
|
|
30
|
+
const rootProps = $derived({
|
|
31
|
+
...bond.root(),
|
|
32
|
+
...restProps
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
function _factory(props: typeof bondProps) {
|
|
36
|
+
const bondState = new AlertBondState(() => props);
|
|
37
|
+
return new AlertBond(bondState);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export function getBond() {
|
|
41
|
+
return bond;
|
|
42
|
+
}
|
|
43
|
+
</script>
|
|
44
|
+
|
|
45
|
+
<HtmlAtom
|
|
46
|
+
{preset}
|
|
47
|
+
class={[
|
|
48
|
+
'alert border-border relative flex gap-1 rounded-md border p-4 transition-all duration-200',
|
|
49
|
+
// Base styles
|
|
50
|
+
'bg-background text-foreground',
|
|
51
|
+
// State styles
|
|
52
|
+
{
|
|
53
|
+
'pointer-events-none opacity-50': disabled
|
|
54
|
+
},
|
|
55
|
+
'$preset',
|
|
56
|
+
klass
|
|
57
|
+
]}
|
|
58
|
+
{bond}
|
|
59
|
+
onmount={onmount?.bind(bond.state)}
|
|
60
|
+
ondestroy={ondestroy?.bind(bond.state)}
|
|
61
|
+
animate={animate?.bind(bond.state)}
|
|
62
|
+
enter={enter?.bind(bond.state)}
|
|
63
|
+
exit={exit?.bind(bond.state)}
|
|
64
|
+
initial={initial?.bind(bond.state)}
|
|
65
|
+
{...rootProps}
|
|
66
|
+
>
|
|
67
|
+
{@render children?.({ alert: bond })}
|
|
68
|
+
</HtmlAtom>
|