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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +852 -856
  2. package/dist/attachments/clickout.svelte.d.ts +1 -1
  3. package/dist/attachments/clickout.svelte.js +2 -2
  4. package/dist/components/accordion/accordion-root.svelte +61 -61
  5. package/dist/components/accordion/accordion-root.svelte.d.ts +1 -1
  6. package/dist/components/accordion/accordion.stories.svelte +145 -134
  7. package/dist/components/alert/alert-actions.svelte +43 -43
  8. package/dist/components/alert/alert-close-button.svelte +70 -70
  9. package/dist/components/alert/alert-content.svelte +43 -43
  10. package/dist/components/alert/alert-description.svelte +42 -42
  11. package/dist/components/alert/alert-icon.svelte +47 -47
  12. package/dist/components/alert/alert-root.svelte +103 -103
  13. package/dist/components/alert/alert-title.svelte +42 -42
  14. package/dist/components/alert/alert.stories.svelte +10 -11
  15. package/dist/components/atom/html-atom.svelte +75 -19
  16. package/dist/components/atom/html-atom.svelte.d.ts +1 -1
  17. package/dist/components/atom/snippet-renderer.svelte +5 -5
  18. package/dist/components/avatar/avatar.stories.svelte +22 -27
  19. package/dist/components/badge/badge.stories.svelte +12 -17
  20. package/dist/components/badge/badge.svelte +19 -19
  21. package/dist/components/breadcrumb/breadcrumb.stories.svelte +16 -21
  22. package/dist/components/button/button.stories.svelte +1 -34
  23. package/dist/components/calendar/calendar-body.svelte +107 -107
  24. package/dist/components/calendar/calendar-day.svelte +96 -97
  25. package/dist/components/calendar/calendar-header.svelte +29 -33
  26. package/dist/components/calendar/calendar-header.svelte.d.ts +0 -1
  27. package/dist/components/calendar/calendar-root.svelte +206 -208
  28. package/dist/components/calendar/calendar-week-day.svelte +34 -34
  29. package/dist/components/calendar/calendar.css +26 -26
  30. package/dist/components/calendar/calendar.stories.svelte +10 -20
  31. package/dist/components/calendar/calendar.stories.svelte.d.ts +24 -4
  32. package/dist/components/card/card-body.svelte +39 -39
  33. package/dist/components/card/card-footer.svelte +41 -41
  34. package/dist/components/card/card-root.svelte +91 -91
  35. package/dist/components/card/card.stories.svelte +133 -145
  36. package/dist/components/checkbox/checkbox.stories.svelte +22 -27
  37. package/dist/components/checkbox/checkbox.svelte +155 -157
  38. package/dist/components/collapsible/collapsible.stories.svelte +172 -173
  39. package/dist/components/combobox/combobox-root.svelte +65 -65
  40. package/dist/components/combobox/compobox.stories.svelte +51 -54
  41. package/dist/components/container/container.stories.svelte +20 -23
  42. package/dist/components/datagrid/datagrid-root.svelte +2 -2
  43. package/dist/components/datagrid/datagrid.css +0 -42
  44. package/dist/components/datagrid/datagrid.stories.svelte +72 -75
  45. package/dist/components/datagrid/types.d.ts +1 -1
  46. package/dist/components/date-picker/atoms.d.ts +0 -4
  47. package/dist/components/date-picker/atoms.js +0 -4
  48. package/dist/components/date-picker/date-picker-calendar.svelte +67 -42
  49. package/dist/components/date-picker/date-picker-calendar.svelte.d.ts +2 -5
  50. package/dist/components/date-picker/date-picker-header.svelte +100 -105
  51. package/dist/components/date-picker/date-picker-header.svelte.d.ts +2 -5
  52. package/dist/components/date-picker/date-picker-months.svelte +142 -150
  53. package/dist/components/date-picker/date-picker-months.svelte.d.ts +2 -5
  54. package/dist/components/date-picker/date-picker-root.svelte +4 -3
  55. package/dist/components/date-picker/date-picker-root.svelte.d.ts +2 -15
  56. package/dist/components/date-picker/date-picker-years.svelte +205 -214
  57. package/dist/components/date-picker/date-picker-years.svelte.d.ts +2 -5
  58. package/dist/components/date-picker/date-picker.stories.svelte +15 -31
  59. package/dist/components/date-picker/types.d.ts +53 -1
  60. package/dist/components/dialog/dialog-content.svelte +1 -1
  61. package/dist/components/dialog/dialog.stories.svelte +64 -67
  62. package/dist/components/drawer/attachments.svelte.js +8 -9
  63. package/dist/components/drawer/drawer-content.svelte +57 -42
  64. package/dist/components/drawer/drawer.stories.svelte +212 -224
  65. package/dist/components/dropdown/dropdown-root.svelte +59 -59
  66. package/dist/components/dropdown/dropdown.stories.svelte +80 -83
  67. package/dist/components/element/html-element.svelte +85 -85
  68. package/dist/components/element/types.d.ts +1 -1
  69. package/dist/components/form/form.stories.svelte +96 -99
  70. package/dist/components/image/image.stories.svelte +20 -23
  71. package/dist/components/index.d.ts +1 -0
  72. package/dist/components/index.js +1 -0
  73. package/dist/components/input/input.stories.svelte +35 -38
  74. package/dist/components/label/label.stories.svelte +15 -26
  75. package/dist/components/label/label.stories.svelte.d.ts +24 -4
  76. package/dist/components/lazy/index.d.ts +1 -0
  77. package/dist/components/lazy/index.js +1 -0
  78. package/dist/components/lazy/lazy.stories.svelte +28 -0
  79. package/dist/components/lazy/lazy.stories.svelte.d.ts +19 -0
  80. package/dist/components/lazy/lazy.svelte +28 -0
  81. package/dist/components/lazy/lazy.svelte.d.ts +5 -0
  82. package/dist/components/lazy/types.d.ts +10 -0
  83. package/dist/components/lazy/types.js +1 -0
  84. package/dist/components/link/link.stories.svelte +15 -26
  85. package/dist/components/link/link.stories.svelte.d.ts +24 -4
  86. package/dist/components/menu/menu-list.svelte +2 -1
  87. package/dist/components/menu/menu-list.svelte.d.ts +1 -0
  88. package/dist/components/menu/menu.stories.svelte +33 -36
  89. package/dist/components/popover/bond.svelte.js +31 -25
  90. package/dist/components/popover/popover-arrow.svelte +111 -111
  91. package/dist/components/popover/popover-content.svelte +2 -5
  92. package/dist/components/popover/popover-indicator.svelte +44 -43
  93. package/dist/components/popover/popover-root.svelte +1 -1
  94. package/dist/components/popover/popover.stories.svelte +18 -21
  95. package/dist/components/qr-code/index.d.ts +1 -0
  96. package/dist/components/qr-code/index.js +1 -0
  97. package/dist/components/qr-code/qr-code.stories.svelte +4 -10
  98. package/dist/components/qr-code/qr-code.svelte +75 -25
  99. package/dist/components/qr-code/qr-code.svelte.d.ts +2 -4
  100. package/dist/components/qr-code/types.d.ts +14 -0
  101. package/dist/components/qr-code/types.js +1 -0
  102. package/dist/components/radio/radio-group.stories.svelte +41 -50
  103. package/dist/components/radio/radio.stories.svelte +17 -26
  104. package/dist/components/radio/radio.svelte +109 -109
  105. package/dist/components/root/root.svelte +121 -121
  106. package/dist/components/root/root.svelte.d.ts +1 -1
  107. package/dist/components/scrollable/scrollable.stories.svelte +116 -126
  108. package/dist/components/sidebar/bond.svelte.d.ts +0 -5
  109. package/dist/components/sidebar/bond.svelte.js +1 -12
  110. package/dist/components/sidebar/sidebar-content.svelte +50 -39
  111. package/dist/components/sidebar/sidebar-content.svelte.d.ts +2 -2
  112. package/dist/components/sidebar/sidebar-root.svelte +39 -68
  113. package/dist/components/sidebar/sidebar-root.svelte.d.ts +2 -2
  114. package/dist/components/sidebar/sidebar.stories.svelte +43 -52
  115. package/dist/components/sidebar/types.d.ts +7 -6
  116. package/dist/components/tabs/tab/bond.svelte.d.ts +4 -1
  117. package/dist/components/tabs/tab/bond.svelte.js +4 -1
  118. package/dist/components/tabs/tabs.stories.svelte +56 -59
  119. package/dist/components/tooltip/tooltip-trigger.svelte +39 -37
  120. package/dist/components/tooltip/tooltip.stories.svelte +32 -35
  121. package/dist/components/tree/tree.stories.svelte +142 -134
  122. package/dist/context/preset.svelte.d.ts +3 -3
  123. package/dist/utils/function.d.ts +2 -0
  124. package/dist/utils/function.js +6 -0
  125. package/llm/variants.md +1259 -1261
  126. package/package.json +7 -9
  127. package/dist/actions/animation.svelte.d.ts +0 -6
  128. package/dist/actions/animation.svelte.js +0 -14
  129. package/dist/actions/clickout.svelte.d.ts +0 -2
  130. package/dist/actions/clickout.svelte.js +0 -15
  131. package/dist/actions/popover.svelte.d.ts +0 -19
  132. package/dist/actions/popover.svelte.js +0 -81
  133. package/dist/actions/portal.svelte.d.ts +0 -8
  134. package/dist/actions/portal.svelte.js +0 -32
  135. package/dist/attachments/gsap.svelte.d.ts +0 -2
  136. package/dist/attachments/gsap.svelte.js +0 -26
@@ -1,67 +1,64 @@
1
- <script module>
2
- import { defineMeta } from '@storybook/addon-svelte-csf';
3
- import { Dialog as ADialog } from '.';
4
- import { Dropdown } from '../dropdown';
5
- import Root from '../root/root.svelte';
6
- import { dialog } from './attachements.svelte';
7
-
8
- // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
9
- const { Story } = defineMeta({
10
- title: 'Atoms/Dialog',
11
- // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
12
-
13
- parameters: {
14
- // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
15
- layout: 'fullscreen'
16
- },
17
- args: {}
18
- });
19
- </script>
20
-
21
- <script lang="ts">
22
- let isDialogOpen = $state(false);
23
- let isDropdownOpen = $state(false);
24
- </script>
25
-
26
- <Story name="Dialog" args={{}}>
27
- <Root class="p-4">
28
- <div class="size-10 bg-red-500"></div>
29
- <button onclick={() => (isDialogOpen = !isDialogOpen)}>Open Dialog</button>
30
-
31
- <ADialog.Root class="bg-neutral-900/20" bind:open={isDialogOpen}>
32
- <ADialog.Content>
33
- <ADialog.Header>
34
- <div>Open Popover</div>
35
- <ADialog.CloseButton class="ml-auto"></ADialog.CloseButton>
36
- </ADialog.Header>
37
-
38
- <ADialog.Body>
39
- <p
40
- {@attach dialog((node, atom) => {
41
- console.log(atom);
42
- })}
43
- >
44
- Mauris et habitasse cubilia potenti at condimentum iaculis nam. Ante fusce litora
45
- tristique letius libero. Curabitur vitae cursus consectetur feugiat aenean viverra vel
46
- dolor diam nascetur.
47
- </p>
48
-
49
- <Dropdown.Root open={isDialogOpen && isDropdownOpen} class="w-full">
50
- <Dropdown.Trigger>Hello World</Dropdown.Trigger>
51
- <Dropdown.List>
52
- <Dropdown.Item id="ar">Arabic</Dropdown.Item>
53
- <Dropdown.Item id="en">English</Dropdown.Item>
54
- <Dropdown.Item id="sp">Spanish</Dropdown.Item>
55
- <Dropdown.Item id="it">Italian</Dropdown.Item>
56
- </Dropdown.List>
57
- </Dropdown.Root>
58
- </ADialog.Body>
59
-
60
- <ADialog.Footer class="gap-4">
61
- <button onclick={() => (isDialogOpen = false)}>Cancel</button>
62
- <button>Save</button>
63
- </ADialog.Footer>
64
- </ADialog.Content>
65
- </ADialog.Root>
66
- </Root>
67
- </Story>
1
+ <script module>
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import { Dialog as ADialog } from '.';
4
+ import { Dropdown } from '../dropdown';
5
+ import { dialog } from './attachements.svelte';
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories
8
+ const { Story } = defineMeta({
9
+ title: 'Atoms/Dialog',
10
+ // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
11
+
12
+ parameters: {
13
+ // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
14
+ layout: 'fullscreen'
15
+ },
16
+ args: {}
17
+ });
18
+ </script>
19
+
20
+ <script lang="ts">
21
+ let isDialogOpen = $state(false);
22
+ let isDropdownOpen = $state(false);
23
+ </script>
24
+
25
+ <Story name="Dialog" args={{}}>
26
+ <div class="size-10 bg-red-500"></div>
27
+ <button onclick={() => (isDialogOpen = !isDialogOpen)}>Open Dialog</button>
28
+
29
+ <ADialog.Root class="bg-neutral-900/20" bind:open={isDialogOpen}>
30
+ <ADialog.Content>
31
+ <ADialog.Header>
32
+ <div>Open Popover</div>
33
+ <ADialog.CloseButton class="ml-auto"></ADialog.CloseButton>
34
+ </ADialog.Header>
35
+
36
+ <ADialog.Body>
37
+ <p
38
+ {@attach dialog((node, atom) => {
39
+ console.log(atom);
40
+ })}
41
+ >
42
+ Mauris et habitasse cubilia potenti at condimentum iaculis nam. Ante fusce litora
43
+ tristique letius libero. Curabitur vitae cursus consectetur feugiat aenean viverra vel
44
+ dolor diam nascetur.
45
+ </p>
46
+
47
+ <Dropdown.Root open={isDialogOpen && isDropdownOpen} class="w-full">
48
+ <Dropdown.Trigger>Hello World</Dropdown.Trigger>
49
+ <Dropdown.List>
50
+ <Dropdown.Item id="ar">Arabic</Dropdown.Item>
51
+ <Dropdown.Item id="en">English</Dropdown.Item>
52
+ <Dropdown.Item id="sp">Spanish</Dropdown.Item>
53
+ <Dropdown.Item id="it">Italian</Dropdown.Item>
54
+ </Dropdown.List>
55
+ </Dropdown.Root>
56
+ </ADialog.Body>
57
+
58
+ <ADialog.Footer class="gap-4">
59
+ <button onclick={() => (isDialogOpen = false)}>Cancel</button>
60
+ <button>Save</button>
61
+ </ADialog.Footer>
62
+ </ADialog.Content>
63
+ </ADialog.Root>
64
+ </Story>
@@ -65,18 +65,17 @@ export function clickoutDrawer(onclickout) {
65
65
  return;
66
66
  }
67
67
  const target = ev.target;
68
- if (!bond.elements.root.contains(target)) {
69
- return;
70
- }
71
68
  if (bond.elements.content?.contains(target)) {
72
69
  return;
73
70
  }
71
+ console.log('clickoutDrawer invoked', bond.state.props.open);
74
72
  onclickout?.(ev);
75
- return on('click', (ev, bond) => {
76
- if (bond?.elements?.content?.contains(ev.target)) {
77
- return;
78
- }
79
- bond?.state?.close?.();
80
- }, DrawerBond.get);
73
+ if (ev.defaultPrevented) {
74
+ return;
75
+ }
76
+ bond.state.close();
77
+ }, {
78
+ capture: true,
79
+ passive: true
81
80
  });
82
81
  }
@@ -1,42 +1,57 @@
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
+ import { animate as motion } from 'motion';
7
+
8
+ type Element = HTMLElementTagNameMap[E];
9
+
10
+ const bond = DrawerBond.get();
11
+ const isOpen = $derived(bond?.state.props.open);
12
+
13
+ let {
14
+ class: klass = '',
15
+ children = undefined,
16
+ onmount = undefined,
17
+ ondestroy = undefined,
18
+ animate = _animate,
19
+ enter = undefined,
20
+ exit = undefined,
21
+ initial = _initial,
22
+ ...restProps
23
+ }: SlideoverContentProps<E, B> & HTMLAttributes<Element> = $props();
24
+
25
+ const contentProps = $derived({
26
+ ...bond?.content(),
27
+ ...restProps
28
+ });
29
+
30
+ function _initial(node: HTMLElement) {
31
+ motion(node, { x: isOpen ? 0 : -100 + '%', left: 0 }, { duration: 0.3, ease: 'anticipate' });
32
+ }
33
+
34
+ function _animate(node: HTMLElement) {
35
+ motion(node, { x: isOpen ? 0 : -100 + '%', left: 0 }, { duration: 0.3, ease: 'anticipate' });
36
+ }
37
+ </script>
38
+
39
+ <HtmlAtom
40
+ preset="drawer.content"
41
+ class={[
42
+ 'bg-card text-foreground border-border pointer-events-none absolute',
43
+ isOpen && 'pointer-events-auto',
44
+ '$preset',
45
+ klass
46
+ ]}
47
+ {bond}
48
+ onmount={onmount?.bind(bond.state)}
49
+ ondestroy={ondestroy?.bind(bond.state)}
50
+ enter={enter?.bind(bond.state)}
51
+ exit={exit?.bind(bond.state)}
52
+ initial={initial?.bind(bond.state)}
53
+ animate={animate?.bind(bond.state)}
54
+ {...contentProps}
55
+ >
56
+ {@render children?.({ drawer: bond })}
57
+ </HtmlAtom>