@svelte-atoms/core 1.0.0-alpha.30 → 1.0.0-alpha.31

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 (147) hide show
  1. package/README.md +853 -852
  2. package/dist/components/accordion/accordion-root.svelte +7 -3
  3. package/dist/components/accordion/accordion.stories.svelte +7 -82
  4. package/dist/components/accordion/item/accordion-item-body.svelte +44 -42
  5. package/dist/components/accordion/item/accordion-item-header.svelte +51 -50
  6. package/dist/components/accordion/item/accordion-item-indicator.svelte +51 -50
  7. package/dist/components/accordion/item/accordion-item-root.svelte +66 -65
  8. package/dist/components/accordion/item/bond.svelte.d.ts +2 -0
  9. package/dist/components/accordion/item/index.d.ts +3 -0
  10. package/dist/components/accordion/item/index.js +3 -0
  11. package/dist/components/accordion/item/motion.svelte.d.ts +15 -0
  12. package/dist/components/accordion/item/motion.svelte.js +30 -0
  13. package/dist/components/accordion/item/types.d.ts +7 -24
  14. package/dist/components/alert/alert-close-button.svelte +66 -70
  15. package/dist/components/alert/alert-description.svelte +42 -42
  16. package/dist/components/alert/alert-description.svelte.d.ts +3 -6
  17. package/dist/components/alert/alert-root.svelte +68 -103
  18. package/dist/components/alert/alert-root.svelte.d.ts +2 -2
  19. package/dist/components/alert/alert.stories.svelte +400 -400
  20. package/dist/components/alert/bond.svelte.d.ts +0 -13
  21. package/dist/components/alert/bond.svelte.js +0 -32
  22. package/dist/components/alert/types.d.ts +8 -32
  23. package/dist/components/atom/html-atom.svelte +261 -261
  24. package/dist/components/avatar/avatar.stories.svelte +22 -22
  25. package/dist/components/badge/badge.stories.svelte +12 -12
  26. package/dist/components/badge/badge.svelte +19 -19
  27. package/dist/components/breadcrumb/breadcrumb.stories.svelte +5 -5
  28. package/dist/components/button/button.stories.svelte +27 -27
  29. package/dist/components/calendar/calendar-day.svelte +101 -96
  30. package/dist/components/calendar/calendar.stories.svelte +26 -26
  31. package/dist/components/card/card-body.svelte +39 -39
  32. package/dist/components/card/card-footer.svelte +41 -41
  33. package/dist/components/card/card-root.svelte +91 -91
  34. package/dist/components/card/card.stories.svelte +133 -133
  35. package/dist/components/checkbox/checkbox.stories.svelte +22 -22
  36. package/dist/components/checkbox/checkbox.svelte +6 -2
  37. package/dist/components/collapsible/collapsible.stories.svelte +172 -172
  38. package/dist/components/combobox/atoms.d.ts +1 -1
  39. package/dist/components/combobox/atoms.js +1 -1
  40. package/dist/components/combobox/combobox-root.svelte +65 -65
  41. package/dist/components/combobox/compobox.stories.svelte +51 -51
  42. package/dist/components/combobox/index.d.ts +1 -0
  43. package/dist/components/container/container.stories.svelte +20 -20
  44. package/dist/components/container/container.svelte.d.ts +1 -1
  45. package/dist/components/datagrid/datagrid.stories.svelte +72 -72
  46. package/dist/components/datagrid/tr/bond.svelte.d.ts +4 -2
  47. package/dist/components/datagrid/tr/bond.svelte.js +9 -7
  48. package/dist/components/datagrid/tr/datagrid-tr.svelte +90 -88
  49. package/dist/components/date-picker/date-picker-calendar.svelte +67 -67
  50. package/dist/components/date-picker/date-picker-root.svelte +95 -95
  51. package/dist/components/date-picker/date-picker.stories.svelte +35 -35
  52. package/dist/components/dialog/bond.svelte.d.ts +13 -3
  53. package/dist/components/dialog/bond.svelte.js +66 -5
  54. package/dist/components/dialog/dialog-content.svelte +44 -62
  55. package/dist/components/dialog/dialog-root.svelte +91 -110
  56. package/dist/components/dialog/dialog.stories.svelte +64 -64
  57. package/dist/components/dialog/motion.svelte.d.ts +13 -0
  58. package/dist/components/dialog/motion.svelte.js +44 -0
  59. package/dist/components/drawer/attachments.svelte.d.ts +1 -1
  60. package/dist/components/drawer/attachments.svelte.js +1 -3
  61. package/dist/components/drawer/bond.svelte.d.ts +24 -5
  62. package/dist/components/drawer/bond.svelte.js +77 -11
  63. package/dist/components/drawer/drawer-content.svelte +6 -14
  64. package/dist/components/drawer/drawer.stories.svelte +27 -95
  65. package/dist/components/drawer/index.d.ts +2 -0
  66. package/dist/components/drawer/index.js +2 -0
  67. package/dist/components/drawer/motion.d.ts +15 -0
  68. package/dist/components/drawer/motion.js +28 -0
  69. package/dist/components/dropdown/atoms.d.ts +1 -1
  70. package/dist/components/dropdown/atoms.js +1 -1
  71. package/dist/components/dropdown/bond.svelte.d.ts +5 -1
  72. package/dist/components/dropdown/dropdown-root.svelte +59 -59
  73. package/dist/components/dropdown/dropdown.stories.svelte +80 -80
  74. package/dist/components/dropdown/index.d.ts +1 -0
  75. package/dist/components/form/form.stories.svelte +96 -96
  76. package/dist/components/image/image.stories.svelte +20 -20
  77. package/dist/components/input/input.stories.svelte +35 -35
  78. package/dist/components/label/label.stories.svelte +15 -15
  79. package/dist/components/lazy/lazy.stories.svelte +28 -28
  80. package/dist/components/link/link.stories.svelte +15 -15
  81. package/dist/components/list/list-item.svelte +20 -20
  82. package/dist/components/menu/atoms.d.ts +1 -0
  83. package/dist/components/menu/atoms.js +1 -0
  84. package/dist/components/menu/index.d.ts +2 -1
  85. package/dist/components/menu/index.js +1 -1
  86. package/dist/components/menu/menu-item.svelte +69 -51
  87. package/dist/components/menu/menu-item.svelte.d.ts +1 -0
  88. package/dist/components/menu/menu.stories.svelte +33 -33
  89. package/dist/components/popover/bond.svelte.d.ts +20 -7
  90. package/dist/components/popover/bond.svelte.js +80 -27
  91. package/dist/components/popover/motion.d.ts +6 -0
  92. package/dist/components/popover/motion.js +56 -0
  93. package/dist/components/popover/popover-arrow.svelte +111 -111
  94. package/dist/components/popover/popover-content.svelte +34 -72
  95. package/dist/components/popover/popover-indicator.svelte +44 -44
  96. package/dist/components/popover/popover-root.svelte +48 -48
  97. package/dist/components/popover/popover.stories.svelte +3 -3
  98. package/dist/components/popover/types.d.ts +9 -7
  99. package/dist/components/portal/active-portal.svelte +29 -22
  100. package/dist/components/portal/active-portal.svelte.d.ts +2 -9
  101. package/dist/components/portal/portal-root.svelte +76 -83
  102. package/dist/components/portal/portal-root.svelte.d.ts +4 -6
  103. package/dist/components/portal/teleport.svelte +49 -50
  104. package/dist/components/portal/teleport.svelte.d.ts +3 -4
  105. package/dist/components/qr-code/qr-code.stories.svelte +18 -18
  106. package/dist/components/radio/radio-group.stories.svelte +41 -41
  107. package/dist/components/radio/radio.stories.svelte +17 -17
  108. package/dist/components/radio/radio.svelte +1 -1
  109. package/dist/components/radio/types.d.ts +98 -0
  110. package/dist/components/radio/types.js +2 -0
  111. package/dist/components/root/root.svelte +13 -30
  112. package/dist/components/root/root.svelte.d.ts +1 -1
  113. package/dist/components/scrollable/scrollable-root.svelte.d.ts +2 -2
  114. package/dist/components/scrollable/scrollable.stories.svelte +116 -116
  115. package/dist/components/sidebar/index.d.ts +2 -0
  116. package/dist/components/sidebar/index.js +2 -0
  117. package/dist/components/sidebar/motion.svelte.d.ts +11 -0
  118. package/dist/components/sidebar/motion.svelte.js +16 -0
  119. package/dist/components/sidebar/sidebar-content.svelte +3 -13
  120. package/dist/components/sidebar/sidebar-root.svelte +39 -39
  121. package/dist/components/sidebar/sidebar.stories.svelte +43 -43
  122. package/dist/components/sidebar/types.d.ts +2 -12
  123. package/dist/components/tabs/tabs.stories.svelte +56 -56
  124. package/dist/components/textarea/atoms.d.ts +1 -0
  125. package/dist/components/textarea/atoms.js +1 -0
  126. package/dist/components/textarea/textarea-input.svelte +9 -6
  127. package/dist/components/textarea/textarea-root.svelte +9 -9
  128. package/dist/components/textarea/textarea-root.svelte.d.ts +2 -0
  129. package/dist/components/tooltip/tooltip-trigger.svelte +2 -2
  130. package/dist/components/tooltip/tooltip-trigger.svelte.d.ts +1 -0
  131. package/dist/components/tooltip/tooltip.stories.svelte +32 -32
  132. package/dist/components/tree/tree.stories.svelte +142 -142
  133. package/dist/icons/icon-copy.svelte +6 -0
  134. package/dist/{components/radio/types.svelte.d.ts → icons/icon-copy.svelte.d.ts} +3 -3
  135. package/dist/utils/markdown-to-llm.d.ts +28 -0
  136. package/dist/utils/markdown-to-llm.js +76 -0
  137. package/package.json +1 -2
  138. package/dist/components/radio/types.svelte +0 -0
  139. package/llm/composition.md +0 -395
  140. package/llm/crafting.md +0 -838
  141. package/llm/motion.md +0 -970
  142. package/llm/philosophy.md +0 -23
  143. package/llm/preset-variant-integration.md +0 -516
  144. package/llm/preset.md +0 -383
  145. package/llm/styling.md +0 -216
  146. package/llm/usage.md +0 -46
  147. package/llm/variants.md +0 -1259
@@ -1,6 +1,5 @@
1
- import type { Snippet } from 'svelte';
2
1
  import type { HtmlAtomProps, Base } from '../../atom';
3
- import type { Factory, Override } from '../../../types';
2
+ import type { Factory } from '../../../types';
4
3
  import type { AccordionItemBond } from './bond.svelte';
5
4
  /**
6
5
  * Extend this interface to add custom accordion item root properties in your application.
@@ -22,31 +21,15 @@ export interface AccordionItemBodyExtendProps {
22
21
  */
23
22
  export interface AccordionItemIndicatorExtendProps {
24
23
  }
25
- export interface AccordionItemRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
26
- children?: Snippet<[{
27
- accordionItem: AccordionItemBond;
28
- }]>;
29
- }>, AccordionItemRootExtendProps {
24
+ export interface AccordionItemRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, AccordionItemRootExtendProps {
30
25
  value?: string;
31
26
  data?: any;
32
27
  disabled?: boolean;
33
28
  factory?: Factory<AccordionItemBond>;
34
29
  }
35
- export interface AccordionItemHeaderProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
36
- children?: Snippet<[{
37
- accordionItem: AccordionItemBond;
38
- }]>;
39
- }>, AccordionItemHeaderExtendProps {
40
- }
41
- export interface AccordionItemBodyProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
42
- children?: Snippet<[{
43
- accordionItem: AccordionItemBond;
44
- }]>;
45
- }>, AccordionItemBodyExtendProps {
46
- }
47
- export interface AccordionItemIndicatorProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
48
- children?: Snippet<[{
49
- accordionItem: AccordionItemBond;
50
- }]>;
51
- }>, AccordionItemIndicatorExtendProps {
30
+ export interface AccordionItemHeaderProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, AccordionItemHeaderExtendProps {
31
+ }
32
+ export interface AccordionItemBodyProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, AccordionItemBodyExtendProps {
33
+ }
34
+ export interface AccordionItemIndicatorProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, AccordionItemIndicatorExtendProps {
52
35
  }
@@ -1,70 +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 isDismissible = $derived(bond?.state.isDismissible ?? false);
30
-
31
- const closeButtonProps = $derived({
32
- ...bond?.closeButton(),
33
- ...restProps
34
- });
35
- </script>
36
-
37
- {#if isDismissible}
38
- <HtmlAtom
39
- {as}
40
- {bond}
41
- {preset}
42
- class={[
43
- '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',
44
- '$preset',
45
- klass
46
- ]}
47
- onmount={onmount?.bind(bond.state)}
48
- ondestroy={ondestroy?.bind(bond.state)}
49
- animate={animate?.bind(bond.state)}
50
- enter={enter?.bind(bond.state)}
51
- exit={exit?.bind(bond.state)}
52
- initial={initial?.bind(bond.state)}
53
- {...closeButtonProps}
54
- >
55
- {#if children}
56
- {@render children({ alert: bond! })}
57
- {:else}
58
- <Icon class="h-full">
59
- <svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
60
- <path
61
- stroke-linecap="round"
62
- stroke-linejoin="round"
63
- stroke-width="2"
64
- d="M6 18L18 6M6 6l12 12"
65
- />
66
- </svg>
67
- </Icon>
68
- {/if}
69
- </HtmlAtom>
70
- {/if}
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
- 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
+ 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,9 +1,8 @@
1
1
  import { type Base } from '../atom';
2
+ import type { AlertDescriptionProps } from './types';
2
3
  declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
3
4
  props: AlertDescriptionProps<E, B>;
4
- exports: {
5
- AlertDescriptionProps: typeof AlertDescriptionProps;
6
- };
5
+ exports: {};
7
6
  bindings: "";
8
7
  slots: {};
9
8
  events: {};
@@ -13,9 +12,7 @@ declare class __sveltets_Render<E extends keyof HTMLElementTagNameMap = 'div', B
13
12
  events(): ReturnType<typeof $$render<E, B>>['events'];
14
13
  slots(): ReturnType<typeof $$render<E, B>>['slots'];
15
14
  bindings(): "";
16
- exports(): {
17
- AlertDescriptionProps: typeof AlertDescriptionProps;
18
- };
15
+ exports(): {};
19
16
  }
20
17
  interface $$IsomorphicComponent {
21
18
  new <E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<E, B>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<E, B>['props']>, ReturnType<__sveltets_Render<E, B>['events']>, ReturnType<__sveltets_Render<E, B>['slots']>> & {
@@ -1,103 +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
- 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
+ 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>
@@ -7,7 +7,7 @@ declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B exten
7
7
  exports: {
8
8
  getBond: () => AlertBond<AlertBondState<AlertBondProps>>;
9
9
  };
10
- bindings: "dismissed";
10
+ bindings: "";
11
11
  slots: {};
12
12
  events: {};
13
13
  };
@@ -15,7 +15,7 @@ declare class __sveltets_Render<E extends keyof HTMLElementTagNameMap = 'div', B
15
15
  props(): ReturnType<typeof $$render<E, B>>['props'];
16
16
  events(): ReturnType<typeof $$render<E, B>>['events'];
17
17
  slots(): ReturnType<typeof $$render<E, B>>['slots'];
18
- bindings(): "dismissed";
18
+ bindings(): "";
19
19
  exports(): {
20
20
  getBond: () => AlertBond<AlertBondState<AlertBondProps>>;
21
21
  };