@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.
Files changed (136) hide show
  1. package/README.md +852 -856
  2. package/dist/attachments/clickout.svelte.d.ts +1 -1
  3. package/dist/attachments/clickout.svelte.js +2 -2
  4. package/dist/components/accordion/accordion-root.svelte +61 -61
  5. package/dist/components/accordion/accordion-root.svelte.d.ts +1 -1
  6. package/dist/components/accordion/accordion.stories.svelte +145 -134
  7. package/dist/components/alert/alert-actions.svelte +43 -43
  8. package/dist/components/alert/alert-close-button.svelte +70 -70
  9. package/dist/components/alert/alert-content.svelte +43 -43
  10. package/dist/components/alert/alert-description.svelte +42 -42
  11. package/dist/components/alert/alert-icon.svelte +47 -47
  12. package/dist/components/alert/alert-root.svelte +103 -103
  13. package/dist/components/alert/alert-title.svelte +42 -42
  14. package/dist/components/alert/alert.stories.svelte +10 -11
  15. package/dist/components/atom/html-atom.svelte +75 -19
  16. package/dist/components/atom/html-atom.svelte.d.ts +1 -1
  17. package/dist/components/atom/snippet-renderer.svelte +5 -5
  18. package/dist/components/avatar/avatar.stories.svelte +22 -27
  19. package/dist/components/badge/badge.stories.svelte +12 -17
  20. package/dist/components/badge/badge.svelte +19 -19
  21. package/dist/components/breadcrumb/breadcrumb.stories.svelte +16 -21
  22. package/dist/components/button/button.stories.svelte +1 -34
  23. package/dist/components/calendar/calendar-body.svelte +107 -107
  24. package/dist/components/calendar/calendar-day.svelte +96 -97
  25. package/dist/components/calendar/calendar-header.svelte +29 -33
  26. package/dist/components/calendar/calendar-header.svelte.d.ts +0 -1
  27. package/dist/components/calendar/calendar-root.svelte +206 -208
  28. package/dist/components/calendar/calendar-week-day.svelte +34 -34
  29. package/dist/components/calendar/calendar.css +26 -26
  30. package/dist/components/calendar/calendar.stories.svelte +10 -20
  31. package/dist/components/calendar/calendar.stories.svelte.d.ts +24 -4
  32. package/dist/components/card/card-body.svelte +39 -39
  33. package/dist/components/card/card-footer.svelte +41 -41
  34. package/dist/components/card/card-root.svelte +91 -91
  35. package/dist/components/card/card.stories.svelte +133 -145
  36. package/dist/components/checkbox/checkbox.stories.svelte +22 -27
  37. package/dist/components/checkbox/checkbox.svelte +155 -157
  38. package/dist/components/collapsible/collapsible.stories.svelte +172 -173
  39. package/dist/components/combobox/combobox-root.svelte +65 -65
  40. package/dist/components/combobox/compobox.stories.svelte +51 -54
  41. package/dist/components/container/container.stories.svelte +20 -23
  42. package/dist/components/datagrid/datagrid-root.svelte +2 -2
  43. package/dist/components/datagrid/datagrid.css +0 -42
  44. package/dist/components/datagrid/datagrid.stories.svelte +72 -75
  45. package/dist/components/datagrid/types.d.ts +1 -1
  46. package/dist/components/date-picker/atoms.d.ts +0 -4
  47. package/dist/components/date-picker/atoms.js +0 -4
  48. package/dist/components/date-picker/date-picker-calendar.svelte +67 -42
  49. package/dist/components/date-picker/date-picker-calendar.svelte.d.ts +2 -5
  50. package/dist/components/date-picker/date-picker-header.svelte +100 -105
  51. package/dist/components/date-picker/date-picker-header.svelte.d.ts +2 -5
  52. package/dist/components/date-picker/date-picker-months.svelte +142 -150
  53. package/dist/components/date-picker/date-picker-months.svelte.d.ts +2 -5
  54. package/dist/components/date-picker/date-picker-root.svelte +4 -3
  55. package/dist/components/date-picker/date-picker-root.svelte.d.ts +2 -15
  56. package/dist/components/date-picker/date-picker-years.svelte +205 -214
  57. package/dist/components/date-picker/date-picker-years.svelte.d.ts +2 -5
  58. package/dist/components/date-picker/date-picker.stories.svelte +15 -31
  59. package/dist/components/date-picker/types.d.ts +53 -1
  60. package/dist/components/dialog/dialog-content.svelte +1 -1
  61. package/dist/components/dialog/dialog.stories.svelte +64 -67
  62. package/dist/components/drawer/attachments.svelte.js +8 -9
  63. package/dist/components/drawer/drawer-content.svelte +57 -42
  64. package/dist/components/drawer/drawer.stories.svelte +212 -224
  65. package/dist/components/dropdown/dropdown-root.svelte +59 -59
  66. package/dist/components/dropdown/dropdown.stories.svelte +80 -83
  67. package/dist/components/element/html-element.svelte +85 -85
  68. package/dist/components/element/types.d.ts +1 -1
  69. package/dist/components/form/form.stories.svelte +96 -99
  70. package/dist/components/image/image.stories.svelte +20 -23
  71. package/dist/components/index.d.ts +1 -0
  72. package/dist/components/index.js +1 -0
  73. package/dist/components/input/input.stories.svelte +35 -38
  74. package/dist/components/label/label.stories.svelte +15 -26
  75. package/dist/components/label/label.stories.svelte.d.ts +24 -4
  76. package/dist/components/lazy/index.d.ts +1 -0
  77. package/dist/components/lazy/index.js +1 -0
  78. package/dist/components/lazy/lazy.stories.svelte +28 -0
  79. package/dist/components/lazy/lazy.stories.svelte.d.ts +19 -0
  80. package/dist/components/lazy/lazy.svelte +28 -0
  81. package/dist/components/lazy/lazy.svelte.d.ts +5 -0
  82. package/dist/components/lazy/types.d.ts +10 -0
  83. package/dist/components/lazy/types.js +1 -0
  84. package/dist/components/link/link.stories.svelte +15 -26
  85. package/dist/components/link/link.stories.svelte.d.ts +24 -4
  86. package/dist/components/menu/menu-list.svelte +2 -1
  87. package/dist/components/menu/menu-list.svelte.d.ts +1 -0
  88. package/dist/components/menu/menu.stories.svelte +33 -36
  89. package/dist/components/popover/bond.svelte.js +31 -25
  90. package/dist/components/popover/popover-arrow.svelte +111 -111
  91. package/dist/components/popover/popover-content.svelte +2 -5
  92. package/dist/components/popover/popover-indicator.svelte +44 -43
  93. package/dist/components/popover/popover-root.svelte +1 -1
  94. package/dist/components/popover/popover.stories.svelte +18 -21
  95. package/dist/components/qr-code/index.d.ts +1 -0
  96. package/dist/components/qr-code/index.js +1 -0
  97. package/dist/components/qr-code/qr-code.stories.svelte +4 -10
  98. package/dist/components/qr-code/qr-code.svelte +75 -25
  99. package/dist/components/qr-code/qr-code.svelte.d.ts +2 -4
  100. package/dist/components/qr-code/types.d.ts +14 -0
  101. package/dist/components/qr-code/types.js +1 -0
  102. package/dist/components/radio/radio-group.stories.svelte +41 -50
  103. package/dist/components/radio/radio.stories.svelte +17 -26
  104. package/dist/components/radio/radio.svelte +109 -109
  105. package/dist/components/root/root.svelte +121 -121
  106. package/dist/components/root/root.svelte.d.ts +1 -1
  107. package/dist/components/scrollable/scrollable.stories.svelte +116 -126
  108. package/dist/components/sidebar/bond.svelte.d.ts +0 -5
  109. package/dist/components/sidebar/bond.svelte.js +1 -12
  110. package/dist/components/sidebar/sidebar-content.svelte +50 -39
  111. package/dist/components/sidebar/sidebar-content.svelte.d.ts +2 -2
  112. package/dist/components/sidebar/sidebar-root.svelte +39 -68
  113. package/dist/components/sidebar/sidebar-root.svelte.d.ts +2 -2
  114. package/dist/components/sidebar/sidebar.stories.svelte +43 -52
  115. package/dist/components/sidebar/types.d.ts +7 -6
  116. package/dist/components/tabs/tab/bond.svelte.d.ts +4 -1
  117. package/dist/components/tabs/tab/bond.svelte.js +4 -1
  118. package/dist/components/tabs/tabs.stories.svelte +56 -59
  119. package/dist/components/tooltip/tooltip-trigger.svelte +39 -37
  120. package/dist/components/tooltip/tooltip.stories.svelte +32 -35
  121. package/dist/components/tree/tree.stories.svelte +142 -134
  122. package/dist/context/preset.svelte.d.ts +3 -3
  123. package/dist/utils/function.d.ts +2 -0
  124. package/dist/utils/function.js +6 -0
  125. package/llm/variants.md +1259 -1261
  126. package/package.json +7 -9
  127. package/dist/actions/animation.svelte.d.ts +0 -6
  128. package/dist/actions/animation.svelte.js +0 -14
  129. package/dist/actions/clickout.svelte.d.ts +0 -2
  130. package/dist/actions/clickout.svelte.js +0 -15
  131. package/dist/actions/popover.svelte.d.ts +0 -19
  132. package/dist/actions/popover.svelte.js +0 -81
  133. package/dist/actions/portal.svelte.d.ts +0 -8
  134. package/dist/actions/portal.svelte.js +0 -32
  135. package/dist/attachments/gsap.svelte.d.ts +0 -2
  136. 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
- <Root class="space-y-6 p-8">
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
- </Root>
115
+ </div>
117
116
  </Story>
118
117
 
119
118
  <Story name="Dismissible">
120
- <Root class="space-y-6 p-8">
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
- </Root>
174
+ </div>
176
175
  </Story>
177
176
 
178
177
  <Story name="With Actions">
179
- <Root class="space-y-6 p-8">
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
- </Root>
245
+ </div>
247
246
  </Story>
248
247
 
249
248
  <Story name="Minimal">
250
- <Root class="space-y-6 p-8">
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
- </Root>
270
+ </div>
272
271
  </Story>
273
272
 
274
273
  <Story name="Real-World Examples">
275
- <Root class="space-y-6 p-8">
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
- </Root>
399
+ </div>
401
400
  </Story>