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

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 (186) hide show
  1. package/README.md +852 -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 +43 -42
  8. package/dist/components/alert/alert-close-button.svelte +70 -72
  9. package/dist/components/alert/alert-content.svelte +43 -42
  10. package/dist/components/alert/alert-description.svelte +42 -41
  11. package/dist/components/alert/alert-icon.svelte +47 -46
  12. package/dist/components/alert/alert-root.svelte +103 -102
  13. package/dist/components/alert/alert-title.svelte +42 -41
  14. package/dist/components/alert/alert.stories.svelte +384 -23
  15. package/dist/components/alert/alert.stories.svelte.d.ts +2 -5
  16. package/dist/components/atom/html-atom.svelte +207 -201
  17. package/dist/components/atom/html-atom.svelte.d.ts +1 -1
  18. package/dist/components/atom/snippet-renderer.svelte +5 -0
  19. package/dist/components/atom/snippet-renderer.svelte.d.ts +5 -0
  20. package/dist/components/avatar/avatar.stories.svelte.d.ts +1 -1
  21. package/dist/components/badge/badge.stories.svelte.d.ts +1 -1
  22. package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +1 -1
  23. package/dist/components/button/button.stories.svelte +17 -14
  24. package/dist/components/calendar/atoms.d.ts +5 -0
  25. package/dist/components/calendar/atoms.js +5 -0
  26. package/dist/components/calendar/bond.svelte.d.ts +72 -0
  27. package/dist/components/calendar/bond.svelte.js +132 -0
  28. package/dist/components/calendar/calendar-body.svelte +107 -0
  29. package/dist/components/calendar/calendar-body.svelte.d.ts +8 -0
  30. package/dist/components/calendar/calendar-day.svelte +96 -0
  31. package/dist/components/calendar/calendar-day.svelte.d.ts +4 -0
  32. package/dist/components/calendar/calendar-header.svelte +29 -0
  33. package/dist/components/calendar/calendar-header.svelte.d.ts +6 -0
  34. package/dist/components/calendar/calendar-root.svelte +206 -0
  35. package/dist/components/calendar/calendar-root.svelte.d.ts +8 -0
  36. package/dist/components/calendar/calendar-week-day.svelte +34 -0
  37. package/dist/components/calendar/calendar-week-day.svelte.d.ts +9 -0
  38. package/dist/components/calendar/calendar.css +26 -0
  39. package/dist/components/calendar/calendar.stories.svelte +31 -0
  40. package/dist/components/calendar/calendar.stories.svelte.d.ts +26 -0
  41. package/dist/components/calendar/index.d.ts +4 -0
  42. package/dist/components/calendar/index.js +4 -0
  43. package/dist/components/calendar/runes.svelte.d.ts +3 -0
  44. package/dist/components/calendar/runes.svelte.js +25 -0
  45. package/dist/components/calendar/types.d.ts +62 -0
  46. package/dist/components/calendar/types.js +1 -0
  47. package/dist/components/card/card-body.svelte +39 -39
  48. package/dist/components/card/card-description.svelte +41 -41
  49. package/dist/components/card/card-footer.svelte +41 -41
  50. package/dist/components/card/card-header.svelte +41 -41
  51. package/dist/components/card/card-media.svelte +41 -41
  52. package/dist/components/card/card-root.svelte +91 -91
  53. package/dist/components/card/card-subtitle.svelte +41 -41
  54. package/dist/components/card/card-title.svelte +45 -45
  55. package/dist/components/collapsible/collapsible-body.svelte +39 -39
  56. package/dist/components/collapsible/collapsible-header.svelte +39 -39
  57. package/dist/components/collapsible/collapsible-indicator.svelte +50 -50
  58. package/dist/components/collapsible/collapsible-root.svelte +66 -66
  59. package/dist/components/combobox/combobox-root.svelte +65 -65
  60. package/dist/components/container/container.stories.svelte.d.ts +1 -1
  61. package/dist/components/contextmenu/contextmenu-trigger.svelte.d.ts +1 -1
  62. package/dist/components/datagrid/bond.svelte.d.ts +2 -2
  63. package/dist/components/datagrid/datagrid-body.svelte +37 -37
  64. package/dist/components/datagrid/datagrid-checkbox.svelte +101 -101
  65. package/dist/components/datagrid/datagrid-footer.svelte +34 -34
  66. package/dist/components/datagrid/datagrid-header.svelte +49 -49
  67. package/dist/components/datagrid/datagrid-root.svelte +2 -2
  68. package/dist/components/datagrid/datagrid.css +5 -47
  69. package/dist/components/datagrid/td/datagrid-td.svelte +66 -66
  70. package/dist/components/datagrid/th/datagrid-th.svelte +106 -106
  71. package/dist/components/datagrid/tr/datagrid-tr.svelte +88 -88
  72. package/dist/components/datagrid/types.d.ts +1 -1
  73. package/dist/components/date-picker/atoms.d.ts +3 -0
  74. package/dist/components/date-picker/atoms.js +3 -0
  75. package/dist/components/date-picker/bond.svelte.d.ts +67 -0
  76. package/dist/components/date-picker/bond.svelte.js +174 -0
  77. package/dist/components/date-picker/date-picker-calendar.svelte +67 -0
  78. package/dist/components/date-picker/date-picker-calendar.svelte.d.ts +4 -0
  79. package/dist/components/date-picker/date-picker-header.svelte +100 -0
  80. package/dist/components/date-picker/date-picker-header.svelte.d.ts +4 -0
  81. package/dist/components/date-picker/date-picker-months.svelte +142 -0
  82. package/dist/components/date-picker/date-picker-months.svelte.d.ts +4 -0
  83. package/dist/components/date-picker/date-picker-root.svelte +95 -0
  84. package/dist/components/date-picker/date-picker-root.svelte.d.ts +4 -0
  85. package/dist/components/date-picker/date-picker-years.svelte +205 -0
  86. package/dist/components/date-picker/date-picker-years.svelte.d.ts +4 -0
  87. package/dist/components/date-picker/date-picker.stories.svelte +42 -0
  88. package/dist/components/date-picker/date-picker.stories.svelte.d.ts +3 -0
  89. package/dist/components/date-picker/index.d.ts +3 -0
  90. package/dist/components/date-picker/index.js +3 -0
  91. package/dist/components/date-picker/types.d.ts +53 -0
  92. package/dist/components/date-picker/types.js +1 -0
  93. package/dist/components/dialog/dialog-body.svelte +39 -39
  94. package/dist/components/dialog/dialog-close-button.svelte +58 -58
  95. package/dist/components/dialog/dialog-content.svelte +1 -1
  96. package/dist/components/dialog/dialog-description.svelte +40 -40
  97. package/dist/components/dialog/dialog-footer.svelte +39 -39
  98. package/dist/components/dialog/dialog-header.svelte +39 -39
  99. package/dist/components/dialog/dialog-root.svelte +110 -110
  100. package/dist/components/dialog/dialog-title.svelte +41 -41
  101. package/dist/components/drawer/drawer-backdrop.svelte +38 -38
  102. package/dist/components/drawer/drawer-body.svelte +42 -42
  103. package/dist/components/drawer/drawer-content.svelte +42 -42
  104. package/dist/components/drawer/drawer-description.svelte +44 -44
  105. package/dist/components/drawer/drawer-footer.svelte +41 -41
  106. package/dist/components/drawer/drawer-header.svelte +43 -43
  107. package/dist/components/drawer/drawer-root.svelte +93 -93
  108. package/dist/components/drawer/drawer-title.svelte +44 -44
  109. package/dist/components/dropdown/dropdown-query.svelte +54 -54
  110. package/dist/components/dropdown/dropdown-root.svelte +59 -59
  111. package/dist/components/dropdown/dropdown-trigger.svelte +41 -41
  112. package/dist/components/dropdown/dropdown-value.svelte +60 -60
  113. package/dist/components/element/types.d.ts +1 -1
  114. package/dist/components/form/bond.svelte.d.ts +1 -1
  115. package/dist/components/form/field/field-control.svelte +48 -48
  116. package/dist/components/form/field/field-label.svelte +24 -24
  117. package/dist/components/form/field/field-root.svelte +59 -59
  118. package/dist/components/icon/icon.svelte +44 -44
  119. package/dist/components/image/image.stories.svelte.d.ts +1 -1
  120. package/dist/components/index.d.ts +4 -0
  121. package/dist/components/index.js +4 -0
  122. package/dist/components/input/input-control.svelte +103 -103
  123. package/dist/components/label/label.svelte +25 -25
  124. package/dist/components/lazy/index.d.ts +1 -0
  125. package/dist/components/lazy/index.js +1 -0
  126. package/dist/components/lazy/lazy.stories.svelte +35 -0
  127. package/dist/components/lazy/lazy.stories.svelte.d.ts +19 -0
  128. package/dist/components/lazy/lazy.svelte +28 -0
  129. package/dist/components/lazy/lazy.svelte.d.ts +5 -0
  130. package/dist/components/lazy/types.d.ts +10 -0
  131. package/dist/components/lazy/types.js +1 -0
  132. package/dist/components/menu/menu-list.svelte +40 -39
  133. package/dist/components/menu/menu-list.svelte.d.ts +1 -0
  134. package/dist/components/popover/popover-arrow.svelte +111 -111
  135. package/dist/components/popover/popover-content.svelte +178 -139
  136. package/dist/components/popover/popover-root.svelte +16 -17
  137. package/dist/components/popover/popover.stories.svelte +0 -15
  138. package/dist/components/portal/portal-root.svelte +83 -83
  139. package/dist/components/portal/teleport.svelte +50 -50
  140. package/dist/components/qr-code/index.d.ts +2 -0
  141. package/dist/components/qr-code/index.js +2 -0
  142. package/dist/components/qr-code/qr-code.stories.svelte +27 -0
  143. package/dist/components/qr-code/qr-code.stories.svelte.d.ts +26 -0
  144. package/dist/components/qr-code/qr-code.svelte +75 -0
  145. package/dist/components/qr-code/qr-code.svelte.d.ts +4 -0
  146. package/dist/components/qr-code/types.d.ts +14 -0
  147. package/dist/components/qr-code/types.js +1 -0
  148. package/dist/components/radio/radio.svelte +109 -109
  149. package/dist/components/radio/types.svelte.d.ts +1 -1
  150. package/dist/components/scrollable/scrollable-container.svelte +82 -82
  151. package/dist/components/scrollable/scrollable-content.svelte +41 -41
  152. package/dist/components/scrollable/scrollable-root.svelte +100 -100
  153. package/dist/components/scrollable/scrollable-thumb.svelte +75 -75
  154. package/dist/components/scrollable/scrollable-track.svelte +59 -59
  155. package/dist/components/scrollable/scrollable.stories.svelte.d.ts +1 -1
  156. package/dist/components/sidebar/bond.svelte.d.ts +0 -5
  157. package/dist/components/sidebar/bond.svelte.js +1 -12
  158. package/dist/components/sidebar/sidebar-content.svelte +39 -39
  159. package/dist/components/sidebar/sidebar-content.svelte.d.ts +2 -2
  160. package/dist/components/sidebar/sidebar-root.svelte +41 -68
  161. package/dist/components/sidebar/sidebar-root.svelte.d.ts +2 -2
  162. package/dist/components/sidebar/sidebar.stories.svelte +54 -52
  163. package/dist/components/sidebar/types.d.ts +6 -6
  164. package/dist/components/tabs/tab/tab-body.svelte +52 -52
  165. package/dist/components/tabs/tab/tab-description.svelte +41 -41
  166. package/dist/components/tabs/tab/tab-header.svelte +71 -71
  167. package/dist/components/tabs/tab/tab-root.svelte +86 -86
  168. package/dist/components/toast/toast-description.svelte +38 -38
  169. package/dist/components/toast/toast-root.svelte +61 -61
  170. package/dist/components/toast/toast-title.svelte +35 -35
  171. package/dist/components/tree/tree-body.svelte +39 -39
  172. package/dist/components/tree/tree-header.svelte +54 -54
  173. package/dist/components/tree/tree-indicator.svelte +40 -40
  174. package/dist/components/tree/tree-root.svelte +65 -65
  175. package/dist/components/virtual/virtual-root.svelte +239 -239
  176. package/dist/context/preset.svelte.d.ts +1 -1
  177. package/dist/icons/icon-arrow-down.svelte.d.ts +1 -1
  178. package/dist/icons/icon-checkmark.svelte.d.ts +1 -1
  179. package/dist/icons/icon-close.svelte.d.ts +1 -1
  180. package/dist/icons/icon-more-vert.svelte.d.ts +1 -1
  181. package/dist/runes/container.svelte.d.ts +2 -2
  182. package/dist/shared/bond.svelte.d.ts +1 -1
  183. package/dist/utils/state.d.ts +1 -1
  184. package/dist/utils/state.js +2 -1
  185. package/llm/variants.md +650 -103
  186. package/package.json +465 -437
@@ -1,103 +1,103 @@
1
- <script lang="ts" generics="B extends Base = Base">
2
- import { on } from '../../attachments/event.svelte';
3
- import { getPreset } from '../../context';
4
- import { cn, toClassValue } from '../../utils';
5
- import type { PresetModuleName } from '../../context/preset.svelte';
6
- import type { Base } from '../atom';
7
- import { InputBond } from './bond.svelte';
8
- import type { InputControlProps } from './types';
9
-
10
- const bond = InputBond.get();
11
-
12
- let {
13
- value = $bindable(),
14
- files = $bindable(),
15
- date = $bindable(),
16
- number = $bindable(),
17
- checked = $bindable(),
18
- class: klass = '',
19
- type = 'text',
20
- preset: presetKey = 'input.control',
21
- onchange = undefined,
22
- oninput = undefined,
23
- ...restProps
24
- }: InputControlProps<B> = $props();
25
-
26
- const preset = getPreset(presetKey as PresetModuleName)?.apply(bond, [bond]);
27
-
28
- const valueProps = $derived({
29
- ...(bond?.input?.() ?? {}),
30
- ...restProps
31
- });
32
-
33
- function handleChange(ev: CustomEvent) {
34
- if (!onchange) return;
35
-
36
- onchange?.(ev, {
37
- value: value,
38
- files: files,
39
- date: date,
40
- number: number,
41
- checked: checked,
42
- event: ev
43
- });
44
- }
45
-
46
- function handleInput(ev: InputEvent) {
47
- if (!oninput) return;
48
-
49
- const currentTarget = ev.currentTarget as HTMLInputElement;
50
-
51
- if (type === 'number') {
52
- number = currentTarget.valueAsNumber;
53
- }
54
-
55
- if (type === 'date' || type == 'time' || type === 'datetime-local' || type === 'date-local') {
56
- date = currentTarget.valueAsDate;
57
- }
58
-
59
- oninput?.(ev, {
60
- value: value,
61
- files: files,
62
- date: date,
63
- number: number,
64
- checked: checked,
65
- event: ev
66
- });
67
- }
68
-
69
- function toFileList(files: File[]) {
70
- const dataTransfer = new DataTransfer();
71
- files.forEach((file) => dataTransfer.items.add(file));
72
- return dataTransfer.files;
73
- }
74
- </script>
75
-
76
- <input
77
- bind:value={
78
- () => value,
79
- (v) => {
80
- value = v;
81
- if (bond) {
82
- bond.state.props.value = v;
83
- }
84
- }
85
- }
86
- class={cn(
87
- 'text-foreground placeholder:text-muted-foreground h-full w-full flex-1 bg-transparent px-2 leading-1 outline-none',
88
- preset?.class,
89
- toClassValue(klass, bond)
90
- )}
91
- type={type ?? 'text'}
92
- onchange={handleChange}
93
- oninput={handleInput}
94
- {...valueProps}
95
- {@attach (node) => {
96
- if (type === 'file') {
97
- return on('input', () => {
98
- files = Array.from(node.files || []);
99
- bond!.state.props.files = files;
100
- })(node);
101
- }
102
- }}
103
- />
1
+ <script lang="ts" generics="B extends Base = Base">
2
+ import { on } from '../../attachments/event.svelte';
3
+ import { getPreset } from '../../context';
4
+ import { cn, toClassValue } from '../../utils';
5
+ import type { PresetModuleName } from '../../context/preset.svelte';
6
+ import type { Base } from '../atom';
7
+ import { InputBond } from './bond.svelte';
8
+ import type { InputControlProps } from './types';
9
+
10
+ const bond = InputBond.get();
11
+
12
+ let {
13
+ value = $bindable(),
14
+ files = $bindable(),
15
+ date = $bindable(),
16
+ number = $bindable(),
17
+ checked = $bindable(),
18
+ class: klass = '',
19
+ type = 'text',
20
+ preset: presetKey = 'input.control',
21
+ onchange = undefined,
22
+ oninput = undefined,
23
+ ...restProps
24
+ }: InputControlProps<B> = $props();
25
+
26
+ const preset = getPreset(presetKey as PresetModuleName)?.apply(bond, [bond]);
27
+
28
+ const valueProps = $derived({
29
+ ...(bond?.input?.() ?? {}),
30
+ ...restProps
31
+ });
32
+
33
+ function handleChange(ev: CustomEvent) {
34
+ if (!onchange) return;
35
+
36
+ onchange?.(ev, {
37
+ value: value,
38
+ files: files,
39
+ date: date,
40
+ number: number,
41
+ checked: checked,
42
+ event: ev
43
+ });
44
+ }
45
+
46
+ function handleInput(ev: InputEvent) {
47
+ if (!oninput) return;
48
+
49
+ const currentTarget = ev.currentTarget as HTMLInputElement;
50
+
51
+ if (type === 'number') {
52
+ number = currentTarget.valueAsNumber;
53
+ }
54
+
55
+ if (type === 'date' || type == 'time' || type === 'datetime-local' || type === 'date-local') {
56
+ date = currentTarget.valueAsDate;
57
+ }
58
+
59
+ oninput?.(ev, {
60
+ value: value,
61
+ files: files,
62
+ date: date,
63
+ number: number,
64
+ checked: checked,
65
+ event: ev
66
+ });
67
+ }
68
+
69
+ function toFileList(files: File[]) {
70
+ const dataTransfer = new DataTransfer();
71
+ files.forEach((file) => dataTransfer.items.add(file));
72
+ return dataTransfer.files;
73
+ }
74
+ </script>
75
+
76
+ <input
77
+ bind:value={
78
+ () => value,
79
+ (v) => {
80
+ value = v;
81
+ if (bond) {
82
+ bond.state.props.value = v;
83
+ }
84
+ }
85
+ }
86
+ class={cn(
87
+ 'text-foreground placeholder:text-muted-foreground h-full w-full flex-1 bg-transparent px-2 leading-1 outline-none',
88
+ preset?.class,
89
+ toClassValue(klass, bond)
90
+ )}
91
+ type={type ?? 'text'}
92
+ onchange={handleChange}
93
+ oninput={handleInput}
94
+ {...valueProps}
95
+ {@attach (node) => {
96
+ if (type === 'file') {
97
+ return on('input', () => {
98
+ files = Array.from(node.files || []);
99
+ bond!.state.props.files = files;
100
+ })(node);
101
+ }
102
+ }}
103
+ />
@@ -1,25 +1,25 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'label', B extends Base = Base">
2
- import type { HTMLAttributes } from 'svelte/elements';
3
- import { HtmlAtom, type ElementType, type Base } from '../atom';
4
- import type { LabelProps } from './types';
5
-
6
- type Element = ElementType<E>;
7
-
8
- let {
9
- class: klass = '',
10
- as = 'label' as E,
11
- for: labelfor = null,
12
- children,
13
- ...restProps
14
- }: LabelProps<E, B> & HTMLAttributes<Element> = $props();
15
- </script>
16
-
17
- <HtmlAtom
18
- {as}
19
- preset="label"
20
- class={['font-medium', '$preset', klass]}
21
- for={labelfor}
22
- {...restProps}
23
- >
24
- {@render children?.()}
25
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'label', B extends Base = Base">
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { HtmlAtom, type ElementType, type Base } from '../atom';
4
+ import type { LabelProps } from './types';
5
+
6
+ type Element = ElementType<E>;
7
+
8
+ let {
9
+ class: klass = '',
10
+ as = 'label' as E,
11
+ for: labelfor = null,
12
+ children,
13
+ ...restProps
14
+ }: LabelProps<E, B> & HTMLAttributes<Element> = $props();
15
+ </script>
16
+
17
+ <HtmlAtom
18
+ {as}
19
+ preset="label"
20
+ class={['font-medium', '$preset', klass]}
21
+ for={labelfor}
22
+ {...restProps}
23
+ >
24
+ {@render children?.()}
25
+ </HtmlAtom>
@@ -0,0 +1 @@
1
+ export { default as Lazy } from './lazy.svelte';
@@ -0,0 +1 @@
1
+ export { default as Lazy } from './lazy.svelte';
@@ -0,0 +1,35 @@
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+
4
+ const { Story } = defineMeta({
5
+ title: 'Atoms/Lazy'
6
+ });
7
+ </script>
8
+
9
+ <script lang="ts">
10
+ import Lazy from './lazy.svelte';
11
+ import { Root } from '../root';
12
+ import { delay } from 'es-toolkit';
13
+ </script>
14
+
15
+ <Story name="Lazy">
16
+ {#snippet children({ args })}
17
+ <Root>
18
+ {#snippet children({})}
19
+ <Lazy
20
+ promise={import('../button/button.svelte').then(async res=> {
21
+ await delay(1000 * 5);
22
+
23
+ return res.default;
24
+ })}
25
+ >
26
+ Hello World
27
+
28
+ {#snippet loading()}
29
+ <span>Loading...</span>
30
+ {/snippet}
31
+ </Lazy>
32
+ {/snippet}
33
+ </Root>
34
+ {/snippet}
35
+ </Story>
@@ -0,0 +1,19 @@
1
+ import Lazy from './lazy.svelte';
2
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports & {
10
+ $set?: any;
11
+ $on?: any;
12
+ };
13
+ z_$$bindings?: Bindings;
14
+ }
15
+ declare const Lazy: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
16
+ [evt: string]: CustomEvent<any>;
17
+ }, {}, {}, string>;
18
+ type Lazy = InstanceType<typeof Lazy>;
19
+ export default Lazy;
@@ -0,0 +1,28 @@
1
+ <script lang="ts">
2
+ import type { Component } from 'svelte';
3
+ import type { LazyProps } from './types';
4
+
5
+ let { promise, children, loading, error, ...restProps }: LazyProps = $props();
6
+
7
+ let Lazy: Component | null = $state(null);
8
+
9
+ let err = $state();
10
+
11
+ promise
12
+ .then((c) => {
13
+ Lazy = c;
14
+ })
15
+ .catch((r) => {
16
+ err = r;
17
+ });
18
+ </script>
19
+
20
+ <Lazy {...restProps}>
21
+ {@render children?.()}
22
+ </Lazy>
23
+
24
+ {#if err && error}
25
+ {@render error?.()}
26
+ {:else if !Lazy}
27
+ {@render loading?.()}
28
+ {/if}
@@ -0,0 +1,5 @@
1
+ import type { Component } from 'svelte';
2
+ import type { LazyProps } from './types';
3
+ declare const Lazy: Component<LazyProps, {}, "">;
4
+ type Lazy = ReturnType<typeof Lazy>;
5
+ export default Lazy;
@@ -0,0 +1,10 @@
1
+ import type { Component, Snippet } from 'svelte';
2
+ import type { HtmlAtomProps } from '../atom';
3
+ export interface LazyExtendProps {
4
+ }
5
+ export interface LazyProps extends HtmlAtomProps<'button'>, LazyExtendProps {
6
+ promise: Promise<Component>;
7
+ children?: Snippet;
8
+ error?: Snippet;
9
+ loading?: Snippet;
10
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,39 +1,40 @@
1
- <script lang="ts" generics="T extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
- import { List } from '../list';
3
- import { Content } from '../popover/atoms';
4
- import type { Base } from '../atom';
5
- import { PopoverBond } from '../popover';
6
-
7
- const bond = PopoverBond.get();
8
-
9
- let {
10
- class: klass = '',
11
- as = 'ul' as T,
12
- base = List.Root as B,
13
- children = undefined,
14
- onmount = undefined,
15
- ondestroy = undefined,
16
- animate = undefined,
17
- enter = undefined,
18
- exit = undefined,
19
- initial = undefined,
20
- ...restProps
21
- } = $props();
22
- </script>
23
-
24
- <Content
25
- {as}
26
- {base}
27
- {bond}
28
- preset="menu.list"
29
- class={['bg-background border-border overflow-hidden p-0', '$preset', klass]}
30
- onmount={onmount?.bind(bond.state)}
31
- ondestroy={ondestroy?.bind(bond.state)}
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
- {...restProps}
37
- >
38
- {@render children?.()}
39
- </Content>
1
+ <script lang="ts" generics="T extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
+ import { List } from '../list';
3
+ import { Content } from '../popover/atoms';
4
+ import type { Base } from '../atom';
5
+ import { PopoverBond } from '../popover';
6
+
7
+ const bond = PopoverBond.get();
8
+
9
+ let {
10
+ class: klass = '',
11
+ as = 'ul' as T,
12
+ base = List.Root as B,
13
+ preset = 'menu.list',
14
+ children = undefined,
15
+ onmount = undefined,
16
+ ondestroy = undefined,
17
+ animate = undefined,
18
+ enter = undefined,
19
+ exit = undefined,
20
+ initial = undefined,
21
+ ...restProps
22
+ } = $props();
23
+ </script>
24
+
25
+ <Content
26
+ {as}
27
+ {base}
28
+ {bond}
29
+ {preset}
30
+ class={['bg-background border-border overflow-hidden p-0', '$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
+ {...restProps}
38
+ >
39
+ {@render children?.()}
40
+ </Content>
@@ -4,6 +4,7 @@ declare function $$render<T extends keyof HTMLElementTagNameMap = 'div', B exten
4
4
  class?: string;
5
5
  as?: T;
6
6
  base?: B;
7
+ preset?: string;
7
8
  children?: any;
8
9
  onmount?: any;
9
10
  ondestroy?: any;