@svelte-atoms/core 1.0.0-alpha.27 → 1.0.0-alpha.28

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 (163) hide show
  1. package/README.md +856 -645
  2. package/dist/components/accordion/accordion-root.svelte +61 -61
  3. package/dist/components/accordion/item/accordion-item-body.svelte +42 -42
  4. package/dist/components/accordion/item/accordion-item-header.svelte +50 -50
  5. package/dist/components/accordion/item/accordion-item-indicator.svelte +50 -50
  6. package/dist/components/accordion/item/accordion-item-root.svelte +65 -65
  7. package/dist/components/alert/alert-actions.svelte +2 -1
  8. package/dist/components/alert/alert-close-button.svelte +18 -20
  9. package/dist/components/alert/alert-content.svelte +2 -1
  10. package/dist/components/alert/alert-description.svelte +2 -1
  11. package/dist/components/alert/alert-icon.svelte +2 -1
  12. package/dist/components/alert/alert-root.svelte +3 -2
  13. package/dist/components/alert/alert-title.svelte +2 -1
  14. package/dist/components/alert/alert.stories.svelte +401 -40
  15. package/dist/components/alert/alert.stories.svelte.d.ts +2 -5
  16. package/dist/components/atom/html-atom.svelte +205 -201
  17. package/dist/components/atom/snippet-renderer.svelte +5 -0
  18. package/dist/components/atom/snippet-renderer.svelte.d.ts +5 -0
  19. package/dist/components/avatar/avatar.stories.svelte.d.ts +1 -1
  20. package/dist/components/badge/badge.stories.svelte.d.ts +1 -1
  21. package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +1 -1
  22. package/dist/components/button/button.stories.svelte +60 -57
  23. package/dist/components/calendar/atoms.d.ts +5 -0
  24. package/dist/components/calendar/atoms.js +5 -0
  25. package/dist/components/calendar/bond.svelte.d.ts +72 -0
  26. package/dist/components/calendar/bond.svelte.js +132 -0
  27. package/dist/components/calendar/calendar-body.svelte +107 -0
  28. package/dist/components/calendar/calendar-body.svelte.d.ts +8 -0
  29. package/dist/components/calendar/calendar-day.svelte +97 -0
  30. package/dist/components/calendar/calendar-day.svelte.d.ts +4 -0
  31. package/dist/components/calendar/calendar-header.svelte +33 -0
  32. package/dist/components/calendar/calendar-header.svelte.d.ts +7 -0
  33. package/dist/components/calendar/calendar-root.svelte +208 -0
  34. package/dist/components/calendar/calendar-root.svelte.d.ts +8 -0
  35. package/dist/components/calendar/calendar-week-day.svelte +34 -0
  36. package/dist/components/calendar/calendar-week-day.svelte.d.ts +9 -0
  37. package/dist/components/calendar/calendar.css +26 -0
  38. package/dist/components/calendar/calendar.stories.svelte +36 -0
  39. package/dist/components/calendar/calendar.stories.svelte.d.ts +6 -0
  40. package/dist/components/calendar/index.d.ts +4 -0
  41. package/dist/components/calendar/index.js +4 -0
  42. package/dist/components/calendar/runes.svelte.d.ts +3 -0
  43. package/dist/components/calendar/runes.svelte.js +25 -0
  44. package/dist/components/calendar/types.d.ts +62 -0
  45. package/dist/components/calendar/types.js +1 -0
  46. package/dist/components/card/card-body.svelte +39 -39
  47. package/dist/components/card/card-description.svelte +41 -41
  48. package/dist/components/card/card-footer.svelte +41 -41
  49. package/dist/components/card/card-header.svelte +41 -41
  50. package/dist/components/card/card-media.svelte +41 -41
  51. package/dist/components/card/card-root.svelte +91 -91
  52. package/dist/components/card/card-subtitle.svelte +41 -41
  53. package/dist/components/card/card-title.svelte +45 -45
  54. package/dist/components/collapsible/collapsible-body.svelte +39 -39
  55. package/dist/components/collapsible/collapsible-header.svelte +39 -39
  56. package/dist/components/collapsible/collapsible-indicator.svelte +50 -50
  57. package/dist/components/collapsible/collapsible-root.svelte +66 -66
  58. package/dist/components/combobox/combobox-root.svelte +65 -65
  59. package/dist/components/container/container.stories.svelte.d.ts +1 -1
  60. package/dist/components/contextmenu/contextmenu-trigger.svelte.d.ts +1 -1
  61. package/dist/components/datagrid/bond.svelte.d.ts +2 -2
  62. package/dist/components/datagrid/datagrid-body.svelte +37 -37
  63. package/dist/components/datagrid/datagrid-checkbox.svelte +101 -101
  64. package/dist/components/datagrid/datagrid-footer.svelte +34 -34
  65. package/dist/components/datagrid/datagrid-header.svelte +49 -49
  66. package/dist/components/datagrid/datagrid-root.svelte +59 -59
  67. package/dist/components/datagrid/td/datagrid-td.svelte +66 -66
  68. package/dist/components/datagrid/th/datagrid-th.svelte +106 -106
  69. package/dist/components/datagrid/tr/datagrid-tr.svelte +88 -88
  70. package/dist/components/date-picker/atoms.d.ts +7 -0
  71. package/dist/components/date-picker/atoms.js +7 -0
  72. package/dist/components/date-picker/bond.svelte.d.ts +67 -0
  73. package/dist/components/date-picker/bond.svelte.js +174 -0
  74. package/dist/components/date-picker/date-picker-calendar.svelte +42 -0
  75. package/dist/components/date-picker/date-picker-calendar.svelte.d.ts +7 -0
  76. package/dist/components/date-picker/date-picker-header.svelte +105 -0
  77. package/dist/components/date-picker/date-picker-header.svelte.d.ts +7 -0
  78. package/dist/components/date-picker/date-picker-months.svelte +150 -0
  79. package/dist/components/date-picker/date-picker-months.svelte.d.ts +7 -0
  80. package/dist/components/date-picker/date-picker-root.svelte +94 -0
  81. package/dist/components/date-picker/date-picker-root.svelte.d.ts +17 -0
  82. package/dist/components/date-picker/date-picker-years.svelte +214 -0
  83. package/dist/components/date-picker/date-picker-years.svelte.d.ts +7 -0
  84. package/dist/components/date-picker/date-picker.stories.svelte +51 -0
  85. package/dist/components/date-picker/date-picker.stories.svelte.d.ts +3 -0
  86. package/dist/components/date-picker/index.d.ts +3 -0
  87. package/dist/components/date-picker/index.js +3 -0
  88. package/dist/components/date-picker/types.d.ts +1 -0
  89. package/dist/components/date-picker/types.js +1 -0
  90. package/dist/components/dialog/dialog-body.svelte +39 -39
  91. package/dist/components/dialog/dialog-close-button.svelte +58 -58
  92. package/dist/components/dialog/dialog-content.svelte +62 -62
  93. package/dist/components/dialog/dialog-description.svelte +40 -40
  94. package/dist/components/dialog/dialog-footer.svelte +39 -39
  95. package/dist/components/dialog/dialog-header.svelte +39 -39
  96. package/dist/components/dialog/dialog-root.svelte +110 -110
  97. package/dist/components/dialog/dialog-title.svelte +41 -41
  98. package/dist/components/drawer/drawer-backdrop.svelte +38 -38
  99. package/dist/components/drawer/drawer-body.svelte +42 -42
  100. package/dist/components/drawer/drawer-content.svelte +42 -42
  101. package/dist/components/drawer/drawer-description.svelte +44 -44
  102. package/dist/components/drawer/drawer-footer.svelte +41 -41
  103. package/dist/components/drawer/drawer-header.svelte +43 -43
  104. package/dist/components/drawer/drawer-root.svelte +93 -93
  105. package/dist/components/drawer/drawer-title.svelte +44 -44
  106. package/dist/components/dropdown/dropdown-query.svelte +54 -54
  107. package/dist/components/dropdown/dropdown-root.svelte +59 -59
  108. package/dist/components/dropdown/dropdown-trigger.svelte +41 -41
  109. package/dist/components/dropdown/dropdown-value.svelte +60 -60
  110. package/dist/components/element/html-element.svelte +85 -85
  111. package/dist/components/form/bond.svelte.d.ts +1 -1
  112. package/dist/components/form/field/field-control.svelte +48 -48
  113. package/dist/components/form/field/field-label.svelte +24 -24
  114. package/dist/components/form/field/field-root.svelte +59 -59
  115. package/dist/components/icon/icon.svelte +44 -44
  116. package/dist/components/image/image.stories.svelte.d.ts +1 -1
  117. package/dist/components/index.d.ts +3 -0
  118. package/dist/components/index.js +3 -0
  119. package/dist/components/input/input-control.svelte +103 -103
  120. package/dist/components/label/label.svelte +25 -25
  121. package/dist/components/popover/popover-arrow.svelte +111 -111
  122. package/dist/components/popover/popover-content.svelte +46 -7
  123. package/dist/components/popover/popover-root.svelte +48 -49
  124. package/dist/components/popover/popover.stories.svelte +52 -67
  125. package/dist/components/portal/portal-root.svelte +83 -83
  126. package/dist/components/portal/teleport.svelte +50 -50
  127. package/dist/components/qr-code/index.d.ts +1 -0
  128. package/dist/components/qr-code/index.js +1 -0
  129. package/dist/components/qr-code/qr-code.stories.svelte +24 -0
  130. package/dist/components/qr-code/qr-code.stories.svelte.d.ts +26 -0
  131. package/dist/components/qr-code/qr-code.svelte +25 -0
  132. package/dist/components/qr-code/qr-code.svelte.d.ts +6 -0
  133. package/dist/components/radio/radio.svelte +109 -109
  134. package/dist/components/radio/types.svelte.d.ts +1 -1
  135. package/dist/components/scrollable/scrollable-container.svelte +82 -82
  136. package/dist/components/scrollable/scrollable-content.svelte +41 -41
  137. package/dist/components/scrollable/scrollable-root.svelte +100 -100
  138. package/dist/components/scrollable/scrollable-thumb.svelte +75 -75
  139. package/dist/components/scrollable/scrollable-track.svelte +59 -59
  140. package/dist/components/scrollable/scrollable.stories.svelte.d.ts +1 -1
  141. package/dist/components/tabs/tab/tab-body.svelte +52 -52
  142. package/dist/components/tabs/tab/tab-description.svelte +41 -41
  143. package/dist/components/tabs/tab/tab-header.svelte +71 -71
  144. package/dist/components/tabs/tab/tab-root.svelte +86 -86
  145. package/dist/components/toast/toast-description.svelte +38 -38
  146. package/dist/components/toast/toast-root.svelte +61 -61
  147. package/dist/components/toast/toast-title.svelte +35 -35
  148. package/dist/components/tree/tree-body.svelte +39 -39
  149. package/dist/components/tree/tree-header.svelte +54 -54
  150. package/dist/components/tree/tree-indicator.svelte +40 -40
  151. package/dist/components/tree/tree-root.svelte +65 -65
  152. package/dist/components/virtual/virtual-root.svelte +239 -239
  153. package/dist/context/preset.svelte.d.ts +1 -1
  154. package/dist/icons/icon-arrow-down.svelte.d.ts +1 -1
  155. package/dist/icons/icon-checkmark.svelte.d.ts +1 -1
  156. package/dist/icons/icon-close.svelte.d.ts +1 -1
  157. package/dist/icons/icon-more-vert.svelte.d.ts +1 -1
  158. package/dist/runes/container.svelte.d.ts +2 -2
  159. package/dist/shared/bond.svelte.d.ts +1 -1
  160. package/dist/utils/state.d.ts +1 -1
  161. package/dist/utils/state.js +2 -1
  162. package/llm/variants.md +1261 -712
  163. package/package.json +464 -437
@@ -1,58 +1,58 @@
1
- <script
2
- lang="ts"
3
- generics="E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base"
4
- >
5
- import { Icon } from '../icon';
6
- import Close from '../../icons/icon-close.svelte';
7
- import { HtmlAtom, type Base } from '../atom';
8
- import { DialogBond } from './bond.svelte';
9
- import type { DialogCloseButtonProps } from './types';
10
-
11
- const bond = DialogBond.get();
12
-
13
- let {
14
- class: klass = '',
15
- as = 'button' as E,
16
- children = undefined,
17
- onmount = undefined,
18
- ondestroy = undefined,
19
- animate = undefined,
20
- enter = undefined,
21
- exit = undefined,
22
- initial = undefined,
23
- onclick = undefined,
24
- ...restProps
25
- }: DialogCloseButtonProps<E, B> = $props();
26
-
27
- function onclick_(ev: MouseEvent) {
28
- onclick?.(ev);
29
- if (ev.defaultPrevented) {
30
- return;
31
- }
32
-
33
- bond?.state.close();
34
- }
35
- </script>
36
-
37
- <HtmlAtom
38
- {as}
39
- {bond}
40
- preset="dialog.close-button"
41
- class={['border-border cursor-pointer', '$preset', klass]}
42
- enter={enter?.bind(bond.state)}
43
- exit={exit?.bind(bond.state)}
44
- initial={initial?.bind(bond.state)}
45
- animate={animate?.bind(bond.state)}
46
- onmount={onmount?.bind(bond.state)}
47
- ondestroy={ondestroy?.bind(bond.state)}
48
- onclick={onclick_}
49
- {...restProps}
50
- >
51
- {#if children}
52
- {@render children?.()}
53
- {:else}
54
- <Icon>
55
- <Close />
56
- </Icon>
57
- {/if}
58
- </HtmlAtom>
1
+ <script
2
+ lang="ts"
3
+ generics="E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base"
4
+ >
5
+ import { Icon } from '../icon';
6
+ import Close from '../../icons/icon-close.svelte';
7
+ import { HtmlAtom, type Base } from '../atom';
8
+ import { DialogBond } from './bond.svelte';
9
+ import type { DialogCloseButtonProps } from './types';
10
+
11
+ const bond = DialogBond.get();
12
+
13
+ let {
14
+ class: klass = '',
15
+ as = 'button' as E,
16
+ children = undefined,
17
+ onmount = undefined,
18
+ ondestroy = undefined,
19
+ animate = undefined,
20
+ enter = undefined,
21
+ exit = undefined,
22
+ initial = undefined,
23
+ onclick = undefined,
24
+ ...restProps
25
+ }: DialogCloseButtonProps<E, B> = $props();
26
+
27
+ function onclick_(ev: MouseEvent) {
28
+ onclick?.(ev);
29
+ if (ev.defaultPrevented) {
30
+ return;
31
+ }
32
+
33
+ bond?.state.close();
34
+ }
35
+ </script>
36
+
37
+ <HtmlAtom
38
+ {as}
39
+ {bond}
40
+ preset="dialog.close-button"
41
+ class={['border-border cursor-pointer', '$preset', klass]}
42
+ enter={enter?.bind(bond.state)}
43
+ exit={exit?.bind(bond.state)}
44
+ initial={initial?.bind(bond.state)}
45
+ animate={animate?.bind(bond.state)}
46
+ onmount={onmount?.bind(bond.state)}
47
+ ondestroy={ondestroy?.bind(bond.state)}
48
+ onclick={onclick_}
49
+ {...restProps}
50
+ >
51
+ {#if children}
52
+ {@render children?.()}
53
+ {:else}
54
+ <Icon>
55
+ <Close />
56
+ </Icon>
57
+ {/if}
58
+ </HtmlAtom>
@@ -1,62 +1,62 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
- import { animate as motion } from 'motion';
3
- import { DURATION } from '../../shared';
4
- import { HtmlAtom, type Base } from '../atom';
5
- import { DialogBond } from './bond.svelte';
6
- import type { DialogContentProps } from './types';
7
-
8
- const bond = DialogBond.get();
9
-
10
- let {
11
- class: klass = '',
12
- children = undefined,
13
- onmount = undefined,
14
- ondestroy = undefined,
15
- animate = _animate,
16
- enter = undefined,
17
- exit = undefined,
18
- initial = undefined,
19
- ...restProps
20
- }: DialogContentProps<E, B> = $props();
21
-
22
- const dialogProps = $derived({
23
- ...bond?.content({}),
24
- ...restProps
25
- });
26
-
27
- const open = $derived(bond?.state?.props?.open ?? false);
28
-
29
- function _animate(node: HTMLElement) {
30
- if (open) {
31
- bond?.elements.root?.show?.();
32
- }
33
-
34
- motion(
35
- node,
36
- { scale: 0.9 + 0.1 * +open, opacity: +open },
37
- {
38
- duration: DURATION.normal / 1000,
39
- ease: 'anticipate'
40
- }
41
- );
42
- }
43
- </script>
44
-
45
- <HtmlAtom
46
- preset="dialog.content"
47
- class={[
48
- 'bg-card text-foreground border-border flex h-fit w-full max-w-[90svw] flex-col rounded-md border py-4 shadow-sm md:min-w-sm lg:max-w-xl lg:min-w-md',
49
- '$preset',
50
- klass
51
- ]}
52
- {bond}
53
- enter={enter?.bind(bond.state)}
54
- exit={exit?.bind(bond.state)}
55
- initial={initial?.bind(bond.state)}
56
- animate={animate?.bind(bond.state)}
57
- onmount={onmount?.bind(bond.state)}
58
- ondestroy={ondestroy?.bind(bond.state)}
59
- {...dialogProps}
60
- >
61
- {@render children?.({ dialog: bond })}
62
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
+ import { animate as motion } from 'motion';
3
+ import { DURATION } from '../../shared';
4
+ import { HtmlAtom, type Base } from '../atom';
5
+ import { DialogBond } from './bond.svelte';
6
+ import type { DialogContentProps } from './types';
7
+
8
+ const bond = DialogBond.get();
9
+
10
+ let {
11
+ class: klass = '',
12
+ children = undefined,
13
+ onmount = undefined,
14
+ ondestroy = undefined,
15
+ animate = _animate,
16
+ enter = undefined,
17
+ exit = undefined,
18
+ initial = undefined,
19
+ ...restProps
20
+ }: DialogContentProps<E, B> = $props();
21
+
22
+ const dialogProps = $derived({
23
+ ...bond?.content({}),
24
+ ...restProps
25
+ });
26
+
27
+ const open = $derived(bond?.state?.props?.open ?? false);
28
+
29
+ function _animate(node: HTMLElement) {
30
+ if (open) {
31
+ bond?.elements.root?.show?.();
32
+ }
33
+
34
+ motion(
35
+ node,
36
+ { scale: 0.9 + 0.1 * +open, opacity: +open },
37
+ {
38
+ duration: DURATION.normal / 1000,
39
+ ease: 'anticipate'
40
+ }
41
+ );
42
+ }
43
+ </script>
44
+
45
+ <HtmlAtom
46
+ preset="dialog.content"
47
+ class={[
48
+ 'bg-card text-foreground border-border flex h-fit w-full max-w-[90svw] flex-col rounded-md border py-4 shadow-sm md:min-w-sm lg:max-w-xl lg:min-w-md',
49
+ '$preset',
50
+ klass
51
+ ]}
52
+ {bond}
53
+ enter={enter?.bind(bond.state)}
54
+ exit={exit?.bind(bond.state)}
55
+ initial={initial?.bind(bond.state)}
56
+ animate={animate?.bind(bond.state)}
57
+ onmount={onmount?.bind(bond.state)}
58
+ ondestroy={ondestroy?.bind(bond.state)}
59
+ {...dialogProps}
60
+ >
61
+ {@render children?.({ dialog: bond })}
62
+ </HtmlAtom>
@@ -1,40 +1,40 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base">
2
- import { HtmlAtom, type Base } from '../atom';
3
- import type { DialogDescriptionProps } from './types';
4
- import { DialogBond } from './bond.svelte';
5
-
6
- let {
7
- class: klass = '',
8
- as = 'p' as E,
9
- children = undefined,
10
- onmount = undefined,
11
- ondestroy = undefined,
12
- animate = undefined,
13
- enter = undefined,
14
- exit = undefined,
15
- initial = undefined,
16
- ...restProps
17
- }: DialogDescriptionProps<E, B> = $props();
18
-
19
- const bond = DialogBond.get();
20
-
21
- const descriptionProps = $derived({
22
- ...bond?.description({}),
23
- ...restProps
24
- });
25
- </script>
26
-
27
- <HtmlAtom
28
- {as}
29
- preset="dialog.description"
30
- class={['border-border', '$preset', klass]}
31
- enter={enter?.bind(bond.state)}
32
- exit={exit?.bind(bond.state)}
33
- initial={initial?.bind(bond.state)}
34
- animate={animate?.bind(bond.state)}
35
- onmount={onmount?.bind(bond.state)}
36
- ondestroy={ondestroy?.bind(bond.state)}
37
- {...descriptionProps}
38
- >
39
- {@render children?.({ dialog: bond })}
40
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base">
2
+ import { HtmlAtom, type Base } from '../atom';
3
+ import type { DialogDescriptionProps } from './types';
4
+ import { DialogBond } from './bond.svelte';
5
+
6
+ let {
7
+ class: klass = '',
8
+ as = 'p' as E,
9
+ children = undefined,
10
+ onmount = undefined,
11
+ ondestroy = undefined,
12
+ animate = undefined,
13
+ enter = undefined,
14
+ exit = undefined,
15
+ initial = undefined,
16
+ ...restProps
17
+ }: DialogDescriptionProps<E, B> = $props();
18
+
19
+ const bond = DialogBond.get();
20
+
21
+ const descriptionProps = $derived({
22
+ ...bond?.description({}),
23
+ ...restProps
24
+ });
25
+ </script>
26
+
27
+ <HtmlAtom
28
+ {as}
29
+ preset="dialog.description"
30
+ class={['border-border', '$preset', klass]}
31
+ enter={enter?.bind(bond.state)}
32
+ exit={exit?.bind(bond.state)}
33
+ initial={initial?.bind(bond.state)}
34
+ animate={animate?.bind(bond.state)}
35
+ onmount={onmount?.bind(bond.state)}
36
+ ondestroy={ondestroy?.bind(bond.state)}
37
+ {...descriptionProps}
38
+ >
39
+ {@render children?.({ dialog: bond })}
40
+ </HtmlAtom>
@@ -1,39 +1,39 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
- import { HtmlAtom, type Base } from '../atom';
3
- import { DialogBond } from './bond.svelte';
4
- import type { DialogFooterProps } from './types';
5
-
6
- let {
7
- class: klass = '',
8
- children = undefined,
9
- onmount = undefined,
10
- ondestroy = undefined,
11
- animate = undefined,
12
- enter = undefined,
13
- exit = undefined,
14
- initial = undefined,
15
- ...restProps
16
- }: DialogFooterProps<E, B> = $props();
17
-
18
- const bond = DialogBond.get();
19
-
20
- const footerProps = $derived({
21
- ...bond?.footer({}),
22
- ...restProps
23
- });
24
- </script>
25
-
26
- <HtmlAtom
27
- {bond}
28
- preset="dialog.footer"
29
- class={['border-border', 'flex px-4', '$preset', klass]}
30
- enter={enter?.bind(bond.state)}
31
- exit={exit?.bind(bond.state)}
32
- initial={initial?.bind(bond.state)}
33
- animate={animate?.bind(bond.state)}
34
- onmount={onmount?.bind(bond.state)}
35
- ondestroy={ondestroy?.bind(bond.state)}
36
- {...footerProps}
37
- >
38
- {@render children?.({ dialog: bond })}
39
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
+ import { HtmlAtom, type Base } from '../atom';
3
+ import { DialogBond } from './bond.svelte';
4
+ import type { DialogFooterProps } from './types';
5
+
6
+ let {
7
+ class: klass = '',
8
+ children = undefined,
9
+ onmount = undefined,
10
+ ondestroy = undefined,
11
+ animate = undefined,
12
+ enter = undefined,
13
+ exit = undefined,
14
+ initial = undefined,
15
+ ...restProps
16
+ }: DialogFooterProps<E, B> = $props();
17
+
18
+ const bond = DialogBond.get();
19
+
20
+ const footerProps = $derived({
21
+ ...bond?.footer({}),
22
+ ...restProps
23
+ });
24
+ </script>
25
+
26
+ <HtmlAtom
27
+ {bond}
28
+ preset="dialog.footer"
29
+ class={['border-border', 'flex px-4', '$preset', klass]}
30
+ enter={enter?.bind(bond.state)}
31
+ exit={exit?.bind(bond.state)}
32
+ initial={initial?.bind(bond.state)}
33
+ animate={animate?.bind(bond.state)}
34
+ onmount={onmount?.bind(bond.state)}
35
+ ondestroy={ondestroy?.bind(bond.state)}
36
+ {...footerProps}
37
+ >
38
+ {@render children?.({ dialog: bond })}
39
+ </HtmlAtom>
@@ -1,39 +1,39 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
- import { HtmlAtom, type Base } from '../atom';
3
- import type { DialogHeaderProps } from './types';
4
- import { DialogBond } from './bond.svelte';
5
-
6
- let {
7
- class: klass = '',
8
- children = undefined,
9
- onmount = undefined,
10
- ondestroy = undefined,
11
- animate = undefined,
12
- enter = undefined,
13
- exit = undefined,
14
- initial = undefined,
15
- ...restProps
16
- }: DialogHeaderProps<E, B> = $props();
17
-
18
- const bond = DialogBond.get();
19
-
20
- const headerProps = $derived({
21
- ...bond?.header({}),
22
- ...restProps
23
- });
24
- </script>
25
-
26
- <HtmlAtom
27
- {bond}
28
- preset="dialog.header"
29
- class={['border-border', 'flex w-full px-4 text-xl', '$preset', klass]}
30
- enter={enter?.bind(bond.state)}
31
- exit={exit?.bind(bond.state)}
32
- initial={initial?.bind(bond.state)}
33
- animate={animate?.bind(bond.state)}
34
- onmount={onmount?.bind(bond.state)}
35
- ondestroy={ondestroy?.bind(bond.state)}
36
- {...headerProps}
37
- >
38
- {@render children?.({ dialog: bond })}
39
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
+ import { HtmlAtom, type Base } from '../atom';
3
+ import type { DialogHeaderProps } from './types';
4
+ import { DialogBond } from './bond.svelte';
5
+
6
+ let {
7
+ class: klass = '',
8
+ children = undefined,
9
+ onmount = undefined,
10
+ ondestroy = undefined,
11
+ animate = undefined,
12
+ enter = undefined,
13
+ exit = undefined,
14
+ initial = undefined,
15
+ ...restProps
16
+ }: DialogHeaderProps<E, B> = $props();
17
+
18
+ const bond = DialogBond.get();
19
+
20
+ const headerProps = $derived({
21
+ ...bond?.header({}),
22
+ ...restProps
23
+ });
24
+ </script>
25
+
26
+ <HtmlAtom
27
+ {bond}
28
+ preset="dialog.header"
29
+ class={['border-border', 'flex w-full px-4 text-xl', '$preset', klass]}
30
+ enter={enter?.bind(bond.state)}
31
+ exit={exit?.bind(bond.state)}
32
+ initial={initial?.bind(bond.state)}
33
+ animate={animate?.bind(bond.state)}
34
+ onmount={onmount?.bind(bond.state)}
35
+ ondestroy={ondestroy?.bind(bond.state)}
36
+ {...headerProps}
37
+ >
38
+ {@render children?.({ dialog: bond })}
39
+ </HtmlAtom>