@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,110 +1,110 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
- import { animate as motion } from 'motion';
3
- import { Teleport, ActivePortal } from '../portal';
4
- import { defineProperty, defineState } from '../../utils';
5
- import type { Base } from '../atom';
6
- import { DURATION } from '../../shared';
7
- import { DialogBond, DialogBondState, type DialogBondProps } from './bond.svelte';
8
- import type { DialogProps } from './types';
9
-
10
- let {
11
- class: klass = '',
12
- open = $bindable(false),
13
- disabled = false,
14
- as = 'dialog' as E,
15
- portal = undefined,
16
- factory = _factory,
17
- onmount = undefined,
18
- ondestroy = undefined,
19
- animate = _animate,
20
- enter = undefined,
21
- exit = undefined,
22
- initial = undefined,
23
- children = undefined,
24
- ...restProps
25
- }: DialogProps<E, B> = $props();
26
-
27
- const bondProps = defineState<DialogBondProps>(
28
- [
29
- defineProperty(
30
- 'open',
31
- () => open,
32
- (v) => {
33
- open = v;
34
- }
35
- )
36
- ],
37
- () => ({ disabled })
38
- );
39
- const bond = _factory(bondProps).share();
40
-
41
- const rootProps = $derived({
42
- ...bond?.root({}),
43
- ...restProps
44
- });
45
-
46
- function _factory(props: typeof bondProps) {
47
- const bondState = new DialogBondState(() => props);
48
- return new DialogBond(bondState);
49
- }
50
-
51
- function _animate(node: HTMLDialogElement) {
52
- motion(
53
- node,
54
- {
55
- opacity: +open
56
- },
57
- {
58
- duration: DURATION.normal / 1000,
59
- ease: 'anticipate',
60
- onComplete: () => {
61
- if (!open) {
62
- node?.close?.();
63
- }
64
- }
65
- }
66
- );
67
- }
68
-
69
- function onclickDialogElement(ev: MouseEvent) {
70
- if (bond?.elements?.content?.contains(ev.target)) {
71
- return;
72
- }
73
-
74
- // Clicked the backdrop
75
- bond.state.close();
76
- }
77
-
78
- export function getBond() {
79
- return bond;
80
- }
81
- </script>
82
-
83
- <Teleport
84
- {as}
85
- {bond}
86
- preset="dialog"
87
- portal={portal ?? 'root.l1'}
88
- class={[
89
- 'border-border pointer-events-auto fixed top-0 left-0 flex h-full w-full items-center justify-center bg-neutral-900/10 opacity-0',
90
- !open && 'pointer-events-none',
91
- '$preset',
92
- klass
93
- ]}
94
- enter={enter?.bind(bond.state)}
95
- exit={exit?.bind(bond.state)}
96
- initial={initial?.bind(bond.state)}
97
- animate={animate?.bind(bond.state)}
98
- onmount={onmount?.bind(bond.state)}
99
- ondestroy={ondestroy?.bind(bond.state)}
100
- onclick={onclickDialogElement}
101
- oncancel={(ev) => {
102
- ev.preventDefault();
103
- open = false;
104
- }}
105
- {...rootProps}
106
- >
107
- <ActivePortal portal={portal ?? 'root.l1'}>
108
- {@render children?.({ dialog: bond })}
109
- </ActivePortal>
110
- </Teleport>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
+ import { animate as motion } from 'motion';
3
+ import { Teleport, ActivePortal } from '../portal';
4
+ import { defineProperty, defineState } from '../../utils';
5
+ import type { Base } from '../atom';
6
+ import { DURATION } from '../../shared';
7
+ import { DialogBond, DialogBondState, type DialogBondProps } from './bond.svelte';
8
+ import type { DialogProps } from './types';
9
+
10
+ let {
11
+ class: klass = '',
12
+ open = $bindable(false),
13
+ disabled = false,
14
+ as = 'dialog' as E,
15
+ portal = undefined,
16
+ factory = _factory,
17
+ onmount = undefined,
18
+ ondestroy = undefined,
19
+ animate = _animate,
20
+ enter = undefined,
21
+ exit = undefined,
22
+ initial = undefined,
23
+ children = undefined,
24
+ ...restProps
25
+ }: DialogProps<E, B> = $props();
26
+
27
+ const bondProps = defineState<DialogBondProps>(
28
+ [
29
+ defineProperty(
30
+ 'open',
31
+ () => open,
32
+ (v) => {
33
+ open = v;
34
+ }
35
+ )
36
+ ],
37
+ () => ({ disabled })
38
+ );
39
+ const bond = _factory(bondProps).share();
40
+
41
+ const rootProps = $derived({
42
+ ...bond?.root({}),
43
+ ...restProps
44
+ });
45
+
46
+ function _factory(props: typeof bondProps) {
47
+ const bondState = new DialogBondState(() => props);
48
+ return new DialogBond(bondState);
49
+ }
50
+
51
+ function _animate(node: HTMLDialogElement) {
52
+ motion(
53
+ node,
54
+ {
55
+ opacity: +open
56
+ },
57
+ {
58
+ duration: DURATION.normal / 1000,
59
+ ease: 'anticipate',
60
+ onComplete: () => {
61
+ if (!open) {
62
+ node?.close?.();
63
+ }
64
+ }
65
+ }
66
+ );
67
+ }
68
+
69
+ function onclickDialogElement(ev: MouseEvent) {
70
+ if (bond?.elements?.content?.contains(ev.target)) {
71
+ return;
72
+ }
73
+
74
+ // Clicked the backdrop
75
+ bond.state.close();
76
+ }
77
+
78
+ export function getBond() {
79
+ return bond;
80
+ }
81
+ </script>
82
+
83
+ <Teleport
84
+ {as}
85
+ {bond}
86
+ preset="dialog"
87
+ portal={portal ?? 'root.l1'}
88
+ class={[
89
+ 'border-border pointer-events-auto fixed top-0 left-0 flex h-full w-full items-center justify-center bg-neutral-900/10 opacity-0',
90
+ !open && 'pointer-events-none',
91
+ '$preset',
92
+ klass
93
+ ]}
94
+ enter={enter?.bind(bond.state)}
95
+ exit={exit?.bind(bond.state)}
96
+ initial={initial?.bind(bond.state)}
97
+ animate={animate?.bind(bond.state)}
98
+ onmount={onmount?.bind(bond.state)}
99
+ ondestroy={ondestroy?.bind(bond.state)}
100
+ onclick={onclickDialogElement}
101
+ oncancel={(ev) => {
102
+ ev.preventDefault();
103
+ open = false;
104
+ }}
105
+ {...rootProps}
106
+ >
107
+ <ActivePortal portal={portal ?? 'root.l1'}>
108
+ {@render children?.({ dialog: bond })}
109
+ </ActivePortal>
110
+ </Teleport>
@@ -1,41 +1,41 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'h2', B extends Base = Base">
2
- import { HtmlAtom, type Base } from '../atom';
3
- import { DialogBond } from './bond.svelte';
4
- import type { DialogTitleProps } from './types';
5
-
6
- let {
7
- class: klass = '',
8
- as = 'h3' 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
- }: DialogTitleProps<E, B> = $props();
18
-
19
- const bond = DialogBond.get();
20
-
21
- const titleProps = $derived({
22
- ...bond?.title({}),
23
- ...restProps
24
- });
25
- </script>
26
-
27
- <HtmlAtom
28
- {as}
29
- {bond}
30
- preset="dialog.title"
31
- class={['border-border', '$preset', klass]}
32
- enter={enter?.bind(bond.state)}
33
- exit={exit?.bind(bond.state)}
34
- initial={initial?.bind(bond.state)}
35
- animate={animate?.bind(bond.state)}
36
- onmount={onmount?.bind(bond.state)}
37
- ondestroy={ondestroy?.bind(bond.state)}
38
- {...titleProps}
39
- >
40
- {@render children?.({ dialog: bond })}
41
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'h2', B extends Base = Base">
2
+ import { HtmlAtom, type Base } from '../atom';
3
+ import { DialogBond } from './bond.svelte';
4
+ import type { DialogTitleProps } from './types';
5
+
6
+ let {
7
+ class: klass = '',
8
+ as = 'h3' 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
+ }: DialogTitleProps<E, B> = $props();
18
+
19
+ const bond = DialogBond.get();
20
+
21
+ const titleProps = $derived({
22
+ ...bond?.title({}),
23
+ ...restProps
24
+ });
25
+ </script>
26
+
27
+ <HtmlAtom
28
+ {as}
29
+ {bond}
30
+ preset="dialog.title"
31
+ class={['border-border', '$preset', klass]}
32
+ enter={enter?.bind(bond.state)}
33
+ exit={exit?.bind(bond.state)}
34
+ initial={initial?.bind(bond.state)}
35
+ animate={animate?.bind(bond.state)}
36
+ onmount={onmount?.bind(bond.state)}
37
+ ondestroy={ondestroy?.bind(bond.state)}
38
+ {...titleProps}
39
+ >
40
+ {@render children?.({ dialog: bond })}
41
+ </HtmlAtom>
@@ -1,38 +1,38 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
- import type { HTMLAttributes } from 'svelte/elements';
3
- import type { SlideoverBackdropProps } from './types';
4
- import { HtmlAtom, type Base } from '../atom';
5
- import { DrawerBond } from './bond.svelte';
6
-
7
- type Element = HTMLElementTagNameMap[E];
8
-
9
- const bond = DrawerBond.get();
10
-
11
- let {
12
- class: klass = '',
13
- onmount = undefined,
14
- ondestroy = undefined,
15
- animate = undefined,
16
- enter = undefined,
17
- exit = undefined,
18
- initial = undefined,
19
- ...restProps
20
- }: SlideoverBackdropProps<E, B> & HTMLAttributes<Element> = $props();
21
-
22
- const backdropProps = $derived({
23
- ...restProps
24
- });
25
- </script>
26
-
27
- <HtmlAtom
28
- {bond}
29
- preset="drawer.backdrop"
30
- class={['border-border absolute inset-0 z-0 bg-black/30', '$preset', klass]}
31
- onmount={onmount?.bind(bond.state)}
32
- ondestroy={ondestroy?.bind(bond.state)}
33
- enter={enter?.bind(bond.state)}
34
- exit={exit?.bind(bond.state)}
35
- initial={initial?.bind(bond.state)}
36
- animate={animate?.bind(bond.state)}
37
- {...backdropProps}
38
- />
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import type { SlideoverBackdropProps } from './types';
4
+ import { HtmlAtom, type Base } from '../atom';
5
+ import { DrawerBond } from './bond.svelte';
6
+
7
+ type Element = HTMLElementTagNameMap[E];
8
+
9
+ const bond = DrawerBond.get();
10
+
11
+ let {
12
+ class: klass = '',
13
+ onmount = undefined,
14
+ ondestroy = undefined,
15
+ animate = undefined,
16
+ enter = undefined,
17
+ exit = undefined,
18
+ initial = undefined,
19
+ ...restProps
20
+ }: SlideoverBackdropProps<E, B> & HTMLAttributes<Element> = $props();
21
+
22
+ const backdropProps = $derived({
23
+ ...restProps
24
+ });
25
+ </script>
26
+
27
+ <HtmlAtom
28
+ {bond}
29
+ preset="drawer.backdrop"
30
+ class={['border-border absolute inset-0 z-0 bg-black/30', '$preset', klass]}
31
+ onmount={onmount?.bind(bond.state)}
32
+ ondestroy={ondestroy?.bind(bond.state)}
33
+ enter={enter?.bind(bond.state)}
34
+ exit={exit?.bind(bond.state)}
35
+ initial={initial?.bind(bond.state)}
36
+ animate={animate?.bind(bond.state)}
37
+ {...backdropProps}
38
+ />
@@ -1,42 +1,42 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
- import type { HTMLAttributes } from 'svelte/elements';
3
- import type { DrawerBodyProps } from './types';
4
- import { DrawerBond } from './bond.svelte';
5
- import { HtmlAtom, type Base } from '../atom';
6
-
7
- type Element = HTMLElementTagNameMap[E];
8
-
9
- let {
10
- class: klass = '',
11
- children = undefined,
12
- onmount = undefined,
13
- ondestroy = undefined,
14
- animate = undefined,
15
- enter = undefined,
16
- exit = undefined,
17
- initial = undefined,
18
- ...restProps
19
- }: DrawerBodyProps<E, B> & HTMLAttributes<Element> = $props();
20
-
21
- const bond = DrawerBond.get();
22
-
23
- const bodyProps = $derived({
24
- ...bond?.body(),
25
- ...restProps
26
- });
27
- </script>
28
-
29
- <HtmlAtom
30
- {bond}
31
- preset="drawer.body"
32
- class={['border-border', '$preset', klass]}
33
- onmount={onmount?.bind(bond.state)}
34
- ondestroy={ondestroy?.bind(bond.state)}
35
- enter={enter?.bind(bond.state)}
36
- exit={exit?.bind(bond.state)}
37
- initial={initial?.bind(bond.state)}
38
- animate={animate?.bind(bond.state)}
39
- {...bodyProps}
40
- >
41
- {@render children?.({ drawer: bond })}
42
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import type { DrawerBodyProps } from './types';
4
+ import { DrawerBond } from './bond.svelte';
5
+ import { HtmlAtom, type Base } from '../atom';
6
+
7
+ type Element = HTMLElementTagNameMap[E];
8
+
9
+ let {
10
+ class: klass = '',
11
+ children = undefined,
12
+ onmount = undefined,
13
+ ondestroy = undefined,
14
+ animate = undefined,
15
+ enter = undefined,
16
+ exit = undefined,
17
+ initial = undefined,
18
+ ...restProps
19
+ }: DrawerBodyProps<E, B> & HTMLAttributes<Element> = $props();
20
+
21
+ const bond = DrawerBond.get();
22
+
23
+ const bodyProps = $derived({
24
+ ...bond?.body(),
25
+ ...restProps
26
+ });
27
+ </script>
28
+
29
+ <HtmlAtom
30
+ {bond}
31
+ preset="drawer.body"
32
+ class={['border-border', '$preset', klass]}
33
+ onmount={onmount?.bind(bond.state)}
34
+ ondestroy={ondestroy?.bind(bond.state)}
35
+ enter={enter?.bind(bond.state)}
36
+ exit={exit?.bind(bond.state)}
37
+ initial={initial?.bind(bond.state)}
38
+ animate={animate?.bind(bond.state)}
39
+ {...bodyProps}
40
+ >
41
+ {@render children?.({ drawer: bond })}
42
+ </HtmlAtom>
@@ -1,42 +1,42 @@
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 type { SlideoverContentProps } from './types';
5
- import { DrawerBond } from './bond.svelte';
6
-
7
- type Element = HTMLElementTagNameMap[E];
8
-
9
- const bond = DrawerBond.get();
10
-
11
- let {
12
- class: klass = '',
13
- children = undefined,
14
- onmount = undefined,
15
- ondestroy = undefined,
16
- animate = undefined,
17
- enter = undefined,
18
- exit = undefined,
19
- initial = undefined,
20
- ...restProps
21
- }: SlideoverContentProps<E, B> & HTMLAttributes<Element> = $props();
22
-
23
- const contentProps = $derived({
24
- ...bond?.content(),
25
- ...restProps
26
- });
27
- </script>
28
-
29
- <HtmlAtom
30
- preset="drawer.content"
31
- class={['bg-card text-foreground border-border absolute', '$preset', klass]}
32
- {bond}
33
- onmount={onmount?.bind(bond.state)}
34
- ondestroy={ondestroy?.bind(bond.state)}
35
- enter={enter?.bind(bond.state)}
36
- exit={exit?.bind(bond.state)}
37
- initial={initial?.bind(bond.state)}
38
- animate={animate?.bind(bond.state)}
39
- {...contentProps}
40
- >
41
- {@render children?.({ drawer: bond })}
42
- </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 type { SlideoverContentProps } from './types';
5
+ import { DrawerBond } from './bond.svelte';
6
+
7
+ type Element = HTMLElementTagNameMap[E];
8
+
9
+ const bond = DrawerBond.get();
10
+
11
+ let {
12
+ class: klass = '',
13
+ children = undefined,
14
+ onmount = undefined,
15
+ ondestroy = undefined,
16
+ animate = undefined,
17
+ enter = undefined,
18
+ exit = undefined,
19
+ initial = undefined,
20
+ ...restProps
21
+ }: SlideoverContentProps<E, B> & HTMLAttributes<Element> = $props();
22
+
23
+ const contentProps = $derived({
24
+ ...bond?.content(),
25
+ ...restProps
26
+ });
27
+ </script>
28
+
29
+ <HtmlAtom
30
+ preset="drawer.content"
31
+ class={['bg-card text-foreground border-border absolute', '$preset', klass]}
32
+ {bond}
33
+ onmount={onmount?.bind(bond.state)}
34
+ ondestroy={ondestroy?.bind(bond.state)}
35
+ enter={enter?.bind(bond.state)}
36
+ exit={exit?.bind(bond.state)}
37
+ initial={initial?.bind(bond.state)}
38
+ animate={animate?.bind(bond.state)}
39
+ {...contentProps}
40
+ >
41
+ {@render children?.({ drawer: bond })}
42
+ </HtmlAtom>
@@ -1,44 +1,44 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base">
2
- import type { HTMLAttributes } from 'svelte/elements';
3
- import type { SlideoverDescriptionProps } from './types';
4
- import { DrawerBond } from './bond.svelte';
5
- import { HtmlAtom, type Base } from '../atom';
6
-
7
- type Element = HTMLElementTagNameMap[E];
8
-
9
- const bond = DrawerBond.get();
10
-
11
- let {
12
- class: klass = '',
13
- as = 'p' as E,
14
- children,
15
- onmount = undefined,
16
- ondestroy = undefined,
17
- animate = undefined,
18
- enter = undefined,
19
- exit = undefined,
20
- initial = undefined,
21
- ...restProps
22
- }: SlideoverDescriptionProps<E, B> & HTMLAttributes<Element> = $props();
23
-
24
- const descriptionProps = $derived({
25
- ...bond?.description(),
26
- ...restProps
27
- });
28
- </script>
29
-
30
- <HtmlAtom
31
- {as}
32
- {bond}
33
- preset="drawer.description"
34
- class={['border-border', '$preset', klass]}
35
- onmount={onmount?.bind(bond.state)}
36
- ondestroy={ondestroy?.bind(bond.state)}
37
- enter={enter?.bind(bond.state)}
38
- exit={exit?.bind(bond.state)}
39
- initial={initial?.bind(bond.state)}
40
- animate={animate?.bind(bond.state)}
41
- {...descriptionProps}
42
- >
43
- {@render children?.({ drawer: bond })}
44
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import type { SlideoverDescriptionProps } from './types';
4
+ import { DrawerBond } from './bond.svelte';
5
+ import { HtmlAtom, type Base } from '../atom';
6
+
7
+ type Element = HTMLElementTagNameMap[E];
8
+
9
+ const bond = DrawerBond.get();
10
+
11
+ let {
12
+ class: klass = '',
13
+ as = 'p' as E,
14
+ children,
15
+ onmount = undefined,
16
+ ondestroy = undefined,
17
+ animate = undefined,
18
+ enter = undefined,
19
+ exit = undefined,
20
+ initial = undefined,
21
+ ...restProps
22
+ }: SlideoverDescriptionProps<E, B> & HTMLAttributes<Element> = $props();
23
+
24
+ const descriptionProps = $derived({
25
+ ...bond?.description(),
26
+ ...restProps
27
+ });
28
+ </script>
29
+
30
+ <HtmlAtom
31
+ {as}
32
+ {bond}
33
+ preset="drawer.description"
34
+ class={['border-border', '$preset', klass]}
35
+ onmount={onmount?.bind(bond.state)}
36
+ ondestroy={ondestroy?.bind(bond.state)}
37
+ enter={enter?.bind(bond.state)}
38
+ exit={exit?.bind(bond.state)}
39
+ initial={initial?.bind(bond.state)}
40
+ animate={animate?.bind(bond.state)}
41
+ {...descriptionProps}
42
+ >
43
+ {@render children?.({ drawer: bond })}
44
+ </HtmlAtom>