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

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 (282) hide show
  1. package/dist/components/accordion/accordion-root.svelte +61 -79
  2. package/dist/components/accordion/accordion-root.svelte.d.ts +2 -15
  3. package/dist/components/accordion/index.d.ts +2 -1
  4. package/dist/components/accordion/index.js +2 -1
  5. package/dist/components/accordion/item/accordion-item-body.svelte +42 -52
  6. package/dist/components/accordion/item/accordion-item-body.svelte.d.ts +2 -8
  7. package/dist/components/accordion/item/accordion-item-header.svelte +50 -60
  8. package/dist/components/accordion/item/accordion-item-header.svelte.d.ts +3 -20
  9. package/dist/components/accordion/item/accordion-item-indicator.svelte +50 -59
  10. package/dist/components/accordion/item/accordion-item-indicator.svelte.d.ts +2 -8
  11. package/dist/components/accordion/item/accordion-item-root.svelte +65 -79
  12. package/dist/components/accordion/item/accordion-item-root.svelte.d.ts +2 -12
  13. package/dist/components/accordion/item/index.d.ts +1 -0
  14. package/dist/components/accordion/item/types.d.ts +52 -0
  15. package/dist/components/accordion/item/types.js +1 -0
  16. package/dist/components/accordion/types.d.ts +21 -0
  17. package/dist/components/accordion/types.js +1 -0
  18. package/dist/components/alert/alert-actions.svelte +42 -52
  19. package/dist/components/alert/alert-actions.svelte.d.ts +3 -30
  20. package/dist/components/alert/alert-close-button.svelte +72 -79
  21. package/dist/components/alert/alert-close-button.svelte.d.ts +8 -35
  22. package/dist/components/alert/alert-content.svelte +42 -52
  23. package/dist/components/alert/alert-content.svelte.d.ts +3 -30
  24. package/dist/components/alert/alert-description.svelte +41 -51
  25. package/dist/components/alert/alert-description.svelte.d.ts +7 -10
  26. package/dist/components/alert/alert-icon.svelte +46 -56
  27. package/dist/components/alert/alert-icon.svelte.d.ts +2 -8
  28. package/dist/components/alert/alert-root.svelte +102 -118
  29. package/dist/components/alert/alert-root.svelte.d.ts +2 -13
  30. package/dist/components/alert/alert-title.svelte +41 -51
  31. package/dist/components/alert/alert-title.svelte.d.ts +2 -8
  32. package/dist/components/alert/index.d.ts +1 -0
  33. package/dist/components/alert/index.js +1 -0
  34. package/dist/components/alert/types.d.ts +85 -0
  35. package/dist/components/alert/types.js +1 -0
  36. package/dist/components/atom/html-atom.svelte.d.ts +2 -22
  37. package/dist/components/atom/types.d.ts +7 -2
  38. package/dist/components/avatar/types.d.ts +7 -2
  39. package/dist/components/badge/types.d.ts +7 -2
  40. package/dist/components/button/index.d.ts +1 -0
  41. package/dist/components/button/index.js +1 -0
  42. package/dist/components/button/types.d.ts +7 -2
  43. package/dist/components/card/card-body.svelte +39 -45
  44. package/dist/components/card/card-body.svelte.d.ts +7 -4
  45. package/dist/components/card/card-description.svelte +41 -48
  46. package/dist/components/card/card-description.svelte.d.ts +7 -7
  47. package/dist/components/card/card-footer.svelte +41 -48
  48. package/dist/components/card/card-footer.svelte.d.ts +7 -4
  49. package/dist/components/card/card-header.svelte +41 -48
  50. package/dist/components/card/card-header.svelte.d.ts +7 -4
  51. package/dist/components/card/card-media.svelte +41 -48
  52. package/dist/components/card/card-media.svelte.d.ts +7 -4
  53. package/dist/components/card/card-root.svelte +91 -91
  54. package/dist/components/card/card-root.svelte.d.ts +1 -1
  55. package/dist/components/card/card-subtitle.svelte +41 -48
  56. package/dist/components/card/card-subtitle.svelte.d.ts +12 -9
  57. package/dist/components/card/card-title.svelte +45 -52
  58. package/dist/components/card/card-title.svelte.d.ts +12 -9
  59. package/dist/components/card/index.d.ts +1 -0
  60. package/dist/components/card/index.js +1 -0
  61. package/dist/components/card/types.d.ts +57 -2
  62. package/dist/components/checkbox/types.d.ts +7 -2
  63. package/dist/components/collapsible/collapsible-body.svelte +39 -52
  64. package/dist/components/collapsible/collapsible-body.svelte.d.ts +2 -9
  65. package/dist/components/collapsible/collapsible-header.svelte +39 -52
  66. package/dist/components/collapsible/collapsible-header.svelte.d.ts +2 -9
  67. package/dist/components/collapsible/collapsible-indicator.svelte +50 -65
  68. package/dist/components/collapsible/collapsible-indicator.svelte.d.ts +3 -10
  69. package/dist/components/collapsible/collapsible-root.svelte +66 -85
  70. package/dist/components/collapsible/collapsible-root.svelte.d.ts +2 -14
  71. package/dist/components/collapsible/index.d.ts +1 -0
  72. package/dist/components/collapsible/index.js +1 -0
  73. package/dist/components/collapsible/types.d.ts +54 -0
  74. package/dist/components/collapsible/types.js +1 -0
  75. package/dist/components/combobox/combobox-root.svelte +65 -68
  76. package/dist/components/combobox/combobox-root.svelte.d.ts +5 -18
  77. package/dist/components/combobox/index.d.ts +1 -0
  78. package/dist/components/combobox/index.js +1 -0
  79. package/dist/components/combobox/types.d.ts +25 -0
  80. package/dist/components/combobox/types.js +1 -0
  81. package/dist/components/container/types.d.ts +7 -2
  82. package/dist/components/contextmenu/types.d.ts +8 -0
  83. package/dist/components/contextmenu/types.js +1 -0
  84. package/dist/components/datagrid/datagrid-body.svelte +37 -44
  85. package/dist/components/datagrid/datagrid-body.svelte.d.ts +17 -20
  86. package/dist/components/datagrid/datagrid-checkbox.svelte +101 -108
  87. package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +4 -6
  88. package/dist/components/datagrid/datagrid-footer.svelte +34 -34
  89. package/dist/components/datagrid/datagrid-footer.svelte.d.ts +1 -1
  90. package/dist/components/datagrid/datagrid-header.svelte +49 -49
  91. package/dist/components/datagrid/datagrid-header.svelte.d.ts +1 -1
  92. package/dist/components/datagrid/datagrid-root.svelte +59 -59
  93. package/dist/components/datagrid/datagrid-root.svelte.d.ts +1 -1
  94. package/dist/components/datagrid/td/datagrid-td.svelte +66 -80
  95. package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +7 -16
  96. package/dist/components/datagrid/th/datagrid-th.svelte +106 -127
  97. package/dist/components/datagrid/th/datagrid-th.svelte.d.ts +2 -20
  98. package/dist/components/datagrid/tr/bond.svelte.d.ts +3 -1
  99. package/dist/components/datagrid/tr/bond.svelte.js +4 -2
  100. package/dist/components/datagrid/tr/datagrid-tr.svelte +88 -103
  101. package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +2 -18
  102. package/dist/components/datagrid/types.d.ts +85 -37
  103. package/dist/components/dialog/dialog-body.svelte +39 -45
  104. package/dist/components/dialog/dialog-body.svelte.d.ts +2 -2
  105. package/dist/components/dialog/dialog-close-button.svelte +58 -61
  106. package/dist/components/dialog/dialog-close-button.svelte.d.ts +7 -7
  107. package/dist/components/dialog/dialog-content.svelte +62 -68
  108. package/dist/components/dialog/dialog-content.svelte.d.ts +2 -2
  109. package/dist/components/dialog/dialog-description.svelte +40 -46
  110. package/dist/components/dialog/dialog-description.svelte.d.ts +2 -2
  111. package/dist/components/dialog/dialog-footer.svelte +39 -45
  112. package/dist/components/dialog/dialog-footer.svelte.d.ts +2 -2
  113. package/dist/components/dialog/dialog-header.svelte +39 -45
  114. package/dist/components/dialog/dialog-header.svelte.d.ts +2 -2
  115. package/dist/components/dialog/dialog-root.svelte +3 -16
  116. package/dist/components/dialog/dialog-root.svelte.d.ts +2 -12
  117. package/dist/components/dialog/dialog-title.svelte +41 -47
  118. package/dist/components/dialog/dialog-title.svelte.d.ts +7 -7
  119. package/dist/components/dialog/index.d.ts +1 -0
  120. package/dist/components/dialog/index.js +1 -0
  121. package/dist/components/dialog/types.d.ts +67 -0
  122. package/dist/components/dialog/types.js +1 -0
  123. package/dist/components/divider/types.d.ts +10 -0
  124. package/dist/components/divider/types.js +1 -0
  125. package/dist/components/drawer/drawer-backdrop.svelte +38 -47
  126. package/dist/components/drawer/drawer-backdrop.svelte.d.ts +3 -26
  127. package/dist/components/drawer/drawer-body.svelte +42 -56
  128. package/dist/components/drawer/drawer-body.svelte.d.ts +3 -16
  129. package/dist/components/drawer/drawer-content.svelte +42 -55
  130. package/dist/components/drawer/drawer-content.svelte.d.ts +3 -14
  131. package/dist/components/drawer/drawer-description.svelte +44 -57
  132. package/dist/components/drawer/drawer-description.svelte.d.ts +3 -14
  133. package/dist/components/drawer/drawer-footer.svelte +41 -54
  134. package/dist/components/drawer/drawer-footer.svelte.d.ts +3 -14
  135. package/dist/components/drawer/drawer-header.svelte +43 -56
  136. package/dist/components/drawer/drawer-header.svelte.d.ts +3 -14
  137. package/dist/components/drawer/drawer-root.svelte +3 -28
  138. package/dist/components/drawer/drawer-root.svelte.d.ts +3 -34
  139. package/dist/components/drawer/drawer-title.svelte +44 -57
  140. package/dist/components/drawer/drawer-title.svelte.d.ts +3 -14
  141. package/dist/components/drawer/index.d.ts +1 -0
  142. package/dist/components/drawer/index.js +1 -0
  143. package/dist/components/drawer/types.d.ts +86 -0
  144. package/dist/components/drawer/types.js +1 -0
  145. package/dist/components/dropdown/dropdown-query.svelte +54 -53
  146. package/dist/components/dropdown/dropdown-query.svelte.d.ts +11 -10
  147. package/dist/components/dropdown/dropdown-root.svelte +59 -59
  148. package/dist/components/dropdown/dropdown-trigger.svelte +41 -52
  149. package/dist/components/dropdown/dropdown-trigger.svelte.d.ts +1 -8
  150. package/dist/components/dropdown/dropdown-value.svelte +60 -60
  151. package/dist/components/dropdown/index.d.ts +1 -0
  152. package/dist/components/dropdown/index.js +1 -0
  153. package/dist/components/dropdown/types.d.ts +37 -0
  154. package/dist/components/dropdown/types.js +1 -0
  155. package/dist/components/element/html-element.svelte.d.ts +2 -14
  156. package/dist/components/element/svg-element.svelte.d.ts +2 -14
  157. package/dist/components/element/types.d.ts +14 -7
  158. package/dist/components/form/field/field-control.svelte +48 -65
  159. package/dist/components/form/field/field-control.svelte.d.ts +5 -19
  160. package/dist/components/form/field/field-label.svelte +24 -31
  161. package/dist/components/form/field/field-label.svelte.d.ts +1 -2
  162. package/dist/components/form/field/field-root.svelte +59 -88
  163. package/dist/components/form/field/field-root.svelte.d.ts +5 -20
  164. package/dist/components/form/index.d.ts +1 -0
  165. package/dist/components/form/index.js +1 -0
  166. package/dist/components/form/types.d.ts +76 -0
  167. package/dist/components/form/types.js +1 -0
  168. package/dist/components/icon/icon.svelte +44 -55
  169. package/dist/components/icon/icon.svelte.d.ts +4 -29
  170. package/dist/components/icon/types.d.ts +11 -7
  171. package/dist/components/input/index.d.ts +1 -0
  172. package/dist/components/input/index.js +1 -0
  173. package/dist/components/input/input-control.svelte +103 -107
  174. package/dist/components/input/input-control.svelte.d.ts +2 -3
  175. package/dist/components/input/input-icon.svelte.d.ts +1 -1
  176. package/dist/components/input/input-placeholder.svelte.d.ts +2 -19
  177. package/dist/components/input/types.d.ts +18 -7
  178. package/dist/components/label/index.d.ts +1 -0
  179. package/dist/components/label/index.js +1 -0
  180. package/dist/components/label/label.svelte +25 -41
  181. package/dist/components/label/label.svelte.d.ts +3 -27
  182. package/dist/components/label/types.d.ts +11 -0
  183. package/dist/components/label/types.js +1 -0
  184. package/dist/components/layer/layer-inner.svelte.d.ts +2 -19
  185. package/dist/components/layer/layer-root.svelte.d.ts +2 -19
  186. package/dist/components/layer/types.d.ts +11 -0
  187. package/dist/components/layer/types.js +1 -0
  188. package/dist/components/link/types.d.ts +8 -0
  189. package/dist/components/link/types.js +1 -0
  190. package/dist/components/list/types.d.ts +8 -0
  191. package/dist/components/list/types.js +1 -0
  192. package/dist/components/menu/index.d.ts +1 -0
  193. package/dist/components/menu/index.js +1 -0
  194. package/dist/components/menu/types.d.ts +15 -0
  195. package/dist/components/menu/types.js +1 -0
  196. package/dist/components/popover/index.d.ts +1 -0
  197. package/dist/components/popover/index.js +1 -0
  198. package/dist/components/popover/popover-arrow.svelte +1 -1
  199. package/dist/components/popover/popover-arrow.svelte.d.ts +2 -18
  200. package/dist/components/popover/popover-content.svelte +1 -1
  201. package/dist/components/popover/popover-root.svelte +49 -49
  202. package/dist/components/popover/popover-trigger.svelte +47 -47
  203. package/dist/components/popover/types.d.ts +32 -10
  204. package/dist/components/portal/active-portal.svelte +22 -22
  205. package/dist/components/portal/index.d.ts +1 -0
  206. package/dist/components/portal/index.js +1 -0
  207. package/dist/components/portal/portal-inner.svelte.d.ts +2 -19
  208. package/dist/components/portal/portal-root.svelte +83 -88
  209. package/dist/components/portal/portal-root.svelte.d.ts +2 -22
  210. package/dist/components/portal/teleport.svelte +4 -9
  211. package/dist/components/portal/teleport.svelte.d.ts +3 -22
  212. package/dist/components/portal/types.d.ts +39 -0
  213. package/dist/components/portal/types.js +1 -0
  214. package/dist/components/radio/radio.svelte +109 -109
  215. package/dist/components/radio/radio.svelte.d.ts +14 -36
  216. package/dist/components/root/root.svelte +121 -121
  217. package/dist/components/root/types.d.ts +8 -0
  218. package/dist/components/root/types.js +1 -0
  219. package/dist/components/scrollable/index.d.ts +1 -0
  220. package/dist/components/scrollable/index.js +1 -0
  221. package/dist/components/scrollable/scrollable-container.svelte +82 -89
  222. package/dist/components/scrollable/scrollable-container.svelte.d.ts +2 -6
  223. package/dist/components/scrollable/scrollable-content.svelte +41 -51
  224. package/dist/components/scrollable/scrollable-content.svelte.d.ts +1 -6
  225. package/dist/components/scrollable/scrollable-root.svelte +100 -120
  226. package/dist/components/scrollable/scrollable-root.svelte.d.ts +3 -19
  227. package/dist/components/scrollable/scrollable-thumb.svelte +75 -86
  228. package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +1 -7
  229. package/dist/components/scrollable/scrollable-track.svelte +59 -70
  230. package/dist/components/scrollable/scrollable-track.svelte.d.ts +1 -7
  231. package/dist/components/scrollable/types.d.ts +62 -0
  232. package/dist/components/scrollable/types.js +1 -0
  233. package/dist/components/sidebar/index.d.ts +1 -0
  234. package/dist/components/sidebar/index.js +1 -0
  235. package/dist/components/sidebar/types.d.ts +16 -5
  236. package/dist/components/stack/stack-root.svelte.d.ts +2 -19
  237. package/dist/components/stack/types.d.ts +12 -0
  238. package/dist/components/stack/types.js +1 -0
  239. package/dist/components/tabs/index.d.ts +1 -0
  240. package/dist/components/tabs/index.js +1 -0
  241. package/dist/components/tabs/tab/tab-body.svelte +52 -61
  242. package/dist/components/tabs/tab/tab-body.svelte.d.ts +2 -8
  243. package/dist/components/tabs/tab/tab-description.svelte +41 -50
  244. package/dist/components/tabs/tab/tab-description.svelte.d.ts +2 -8
  245. package/dist/components/tabs/tab/tab-header.svelte +71 -81
  246. package/dist/components/tabs/tab/tab-header.svelte.d.ts +2 -11
  247. package/dist/components/tabs/tab/tab-root.svelte +86 -86
  248. package/dist/components/tabs/types.d.ts +55 -0
  249. package/dist/components/tabs/types.js +1 -0
  250. package/dist/components/textarea/index.d.ts +1 -0
  251. package/dist/components/textarea/index.js +1 -0
  252. package/dist/components/textarea/types.d.ts +28 -0
  253. package/dist/components/textarea/types.js +1 -0
  254. package/dist/components/toast/index.d.ts +1 -0
  255. package/dist/components/toast/index.js +1 -0
  256. package/dist/components/toast/toast-description.svelte +38 -44
  257. package/dist/components/toast/toast-description.svelte.d.ts +8 -34
  258. package/dist/components/toast/toast-root.svelte +61 -74
  259. package/dist/components/toast/toast-root.svelte.d.ts +4 -43
  260. package/dist/components/toast/toast-title.svelte +35 -43
  261. package/dist/components/toast/toast-title.svelte.d.ts +2 -34
  262. package/dist/components/toast/types.d.ts +40 -0
  263. package/dist/components/toast/types.js +1 -0
  264. package/dist/components/tooltip/types.d.ts +13 -0
  265. package/dist/components/tooltip/types.js +1 -0
  266. package/dist/components/tree/index.d.ts +1 -0
  267. package/dist/components/tree/index.js +1 -0
  268. package/dist/components/tree/tree-body.svelte +39 -50
  269. package/dist/components/tree/tree-body.svelte.d.ts +2 -10
  270. package/dist/components/tree/tree-header.svelte +54 -66
  271. package/dist/components/tree/tree-header.svelte.d.ts +3 -29
  272. package/dist/components/tree/tree-indicator.svelte +40 -50
  273. package/dist/components/tree/tree-indicator.svelte.d.ts +3 -9
  274. package/dist/components/tree/tree-root.svelte +65 -80
  275. package/dist/components/tree/tree-root.svelte.d.ts +2 -12
  276. package/dist/components/tree/types.d.ts +59 -0
  277. package/dist/components/tree/types.js +1 -0
  278. package/dist/components/virtual/types.d.ts +23 -0
  279. package/dist/components/virtual/types.js +1 -0
  280. package/dist/components/virtual/virtual-root.svelte +239 -258
  281. package/dist/components/virtual/virtual-root.svelte.d.ts +1 -18
  282. package/package.json +1 -1
@@ -1,49 +1,49 @@
1
- <script lang="ts">
2
- import { PopoverState, PopoverBond, type PopoverStateProps } from './bond.svelte';
3
- import { defineProperty, defineState } from '../../utils';
4
- import type { PopoverRootProps } from './types';
5
-
6
- let {
7
- open = $bindable(false),
8
- disabled = false,
9
- placements = ['bottom-start', 'bottom-end', 'top-start', 'top-end'],
10
- placement = 'bottom-start',
11
- offset = 0,
12
- portal = undefined,
13
- extend = {},
14
- factory = _factory,
15
- children = undefined
16
- }: PopoverRootProps = $props();
17
-
18
- const bondProps = defineState<PopoverStateProps>(
19
- [
20
- defineProperty(
21
- 'open',
22
- () => open,
23
- (v) => {
24
- open = v;
25
- }
26
- ),
27
- defineProperty('disabled', () => disabled),
28
- defineProperty('placement', () => placement),
29
- defineProperty('offset', () => offset),
30
- defineProperty('placements', () => placements ?? []),
31
- defineProperty('portal', () => portal)
32
- ],
33
- () => ({ extend })
34
- );
35
- const bond = factory(bondProps).share();
36
-
37
- function _factory(props: typeof bondProps) {
38
- const popoverState = new PopoverState(() => props);
39
- const popoverBond = new PopoverBond(popoverState);
40
-
41
- return popoverBond;
42
- }
43
-
44
- export function getBond() {
45
- return bond;
46
- }
47
- </script>
48
-
49
- {@render children?.({ popover: bond })}
1
+ <script lang="ts">
2
+ import { PopoverState, PopoverBond, type PopoverStateProps } from './bond.svelte';
3
+ import { defineProperty, defineState } from '../../utils';
4
+ import type { PopoverRootProps } from './types';
5
+
6
+ let {
7
+ open = $bindable(false),
8
+ disabled = false,
9
+ placements = ['bottom-start', 'bottom-end', 'top-start', 'top-end'],
10
+ placement = 'bottom-start',
11
+ offset = 0,
12
+ portal = undefined,
13
+ extend = {},
14
+ factory = _factory,
15
+ children = undefined
16
+ }: PopoverRootProps = $props();
17
+
18
+ const bondProps = defineState<PopoverStateProps>(
19
+ [
20
+ defineProperty(
21
+ 'open',
22
+ () => open,
23
+ (v) => {
24
+ open = v;
25
+ }
26
+ ),
27
+ defineProperty('disabled', () => disabled),
28
+ defineProperty('placement', () => placement),
29
+ defineProperty('offset', () => offset),
30
+ defineProperty('placements', () => placements ?? []),
31
+ defineProperty('portal', () => portal)
32
+ ],
33
+ () => ({ extend })
34
+ );
35
+ const bond = factory(bondProps).share();
36
+
37
+ function _factory(props: typeof bondProps) {
38
+ const popoverState = new PopoverState(() => props);
39
+ const popoverBond = new PopoverBond(popoverState);
40
+
41
+ return popoverBond;
42
+ }
43
+
44
+ export function getBond() {
45
+ return bond;
46
+ }
47
+ </script>
48
+
49
+ {@render children?.({ popover: bond })}
@@ -1,47 +1,47 @@
1
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
- import { HtmlAtom, type Base } from '../atom';
3
- import { PopoverBond } from './bond.svelte';
4
- import type { PopoverTriggerProps } from './types';
5
-
6
- const bond = PopoverBond.get();
7
-
8
- if (!bond) {
9
- throw new Error('');
10
- }
11
-
12
- let {
13
- class: klass = '',
14
- as = 'button' as E,
15
- preset = 'popover.trigger',
16
- children = undefined,
17
- onmount = undefined,
18
- ondestroy = undefined,
19
- animate = undefined,
20
- enter = undefined,
21
- exit = undefined,
22
- initial = undefined,
23
- ...restProps
24
- }: PopoverTriggerProps<E, B> = $props();
25
-
26
- const triggerProps = $derived({
27
- ...bond.trigger(),
28
- ...restProps
29
- });
30
- </script>
31
-
32
- <HtmlAtom
33
- {as}
34
- {bond}
35
- {preset}
36
- class={['border-border flex w-fit cursor-pointer rounded-md p-2', '$preset', klass]}
37
- onmount={onmount?.bind(bond.state)}
38
- ondestroy={ondestroy?.bind(bond.state)}
39
- animate={animate?.bind(bond.state)}
40
- enter={enter?.bind(bond.state)}
41
- exit={exit?.bind(bond.state)}
42
- initial={initial?.bind(bond.state)}
43
- type={as === 'button' ? 'button' : undefined}
44
- {...triggerProps}
45
- >
46
- {@render children?.({ popover: bond })}
47
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
+ import { HtmlAtom, type Base } from '../atom';
3
+ import { PopoverBond } from './bond.svelte';
4
+ import type { PopoverTriggerProps } from './types';
5
+
6
+ const bond = PopoverBond.get();
7
+
8
+ if (!bond) {
9
+ throw new Error('');
10
+ }
11
+
12
+ let {
13
+ class: klass = '',
14
+ as = 'button' as E,
15
+ preset = 'popover.trigger',
16
+ children = undefined,
17
+ onmount = undefined,
18
+ ondestroy = undefined,
19
+ animate = undefined,
20
+ enter = undefined,
21
+ exit = undefined,
22
+ initial = undefined,
23
+ ...restProps
24
+ }: PopoverTriggerProps<E, B> = $props();
25
+
26
+ const triggerProps = $derived({
27
+ ...bond.trigger(),
28
+ ...restProps
29
+ });
30
+ </script>
31
+
32
+ <HtmlAtom
33
+ {as}
34
+ {bond}
35
+ {preset}
36
+ class={['border-border flex w-fit cursor-pointer rounded-md p-2', '$preset', klass]}
37
+ onmount={onmount?.bind(bond.state)}
38
+ ondestroy={ondestroy?.bind(bond.state)}
39
+ animate={animate?.bind(bond.state)}
40
+ enter={enter?.bind(bond.state)}
41
+ exit={exit?.bind(bond.state)}
42
+ initial={initial?.bind(bond.state)}
43
+ type={as === 'button' ? 'button' : undefined}
44
+ {...triggerProps}
45
+ >
46
+ {@render children?.({ popover: bond })}
47
+ </HtmlAtom>
@@ -1,12 +1,32 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  import type { Placement } from '@floating-ui/dom';
3
3
  import type { Factory } from '../../types';
4
- import type { PopoverBond } from './bond.svelte';
5
4
  import type { Override } from '../../types';
5
+ import type { PopoverBond } from './bond.svelte';
6
6
  import type { Base, HtmlAtomProps } from '../atom';
7
7
  import type { HtmlElementTagName } from '../element';
8
8
  import type { PortalBond } from '../portal';
9
- export type PopoverRootProps = {
9
+ /**
10
+ * Extend this interface to add custom popover root properties in your application.
11
+ */
12
+ export interface PopoverRootExtendProps {
13
+ }
14
+ /**
15
+ * Extend this interface to add custom popover content properties in your application.
16
+ */
17
+ export interface PopoverContentExtendProps {
18
+ }
19
+ /**
20
+ * Extend this interface to add custom popover arrow properties in your application.
21
+ */
22
+ export interface PopoverArrowExtendProps {
23
+ }
24
+ /**
25
+ * Extend this interface to add custom popover trigger properties in your application.
26
+ */
27
+ export interface PopoverTriggerExtendProps {
28
+ }
29
+ export interface PopoverRootProps extends PopoverRootExtendProps {
10
30
  open?: boolean;
11
31
  disabled?: boolean;
12
32
  placements?: Placement[];
@@ -18,22 +38,24 @@ export type PopoverRootProps = {
18
38
  children?: Snippet<[{
19
39
  popover: PopoverBond;
20
40
  }]>;
21
- };
22
- export type AnimateParams = {
41
+ }
42
+ export interface AnimateParams {
23
43
  x: number;
24
44
  y: number;
25
45
  xOffset: number;
26
46
  yOffset: number;
27
47
  open: boolean;
28
- };
29
- export type PopoverContentProps<T extends HtmlElementTagName, B extends Base = Base> = Override<HtmlAtomProps<T, B>, {
48
+ }
49
+ export interface PopoverContentProps<T extends HtmlElementTagName, B extends Base = Base> extends Override<HtmlAtomProps<T, B>, {
30
50
  children?: Snippet<[{
31
51
  popover?: PopoverBond;
32
52
  }]>;
33
- }>;
34
- export type PopoverArrowProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = HtmlAtomProps<E, B>;
35
- export type PopoverTriggerProps<T extends keyof HTMLElementTagNameMap, B extends Base = Base> = HtmlAtomProps<T, B> & {
53
+ }>, PopoverContentExtendProps {
54
+ }
55
+ export interface PopoverArrowProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, PopoverArrowExtendProps {
56
+ }
57
+ export interface PopoverTriggerProps<T extends keyof HTMLElementTagNameMap, B extends Base = Base> extends Omit<HtmlAtomProps<T, B>, 'children'>, PopoverTriggerExtendProps {
36
58
  children?: Snippet<[{
37
59
  popover?: PopoverBond;
38
60
  }]>;
39
- };
61
+ }
@@ -1,22 +1,22 @@
1
- <script>
2
- import { PortalsBond } from './portals/bond.svelte';
3
-
4
- let { portal, children = undefined } = $props();
5
-
6
- const portalsBond = PortalsBond.get();
7
- const activePortal = (() => {
8
- if (typeof portal === 'string') {
9
- return portalsBond?.state?.get(portal) ?? undefined;
10
- }
11
-
12
- return portal;
13
- })()?.share();
14
-
15
- if (!portalsBond) {
16
- throw new Error('Portals bond is not found');
17
- }
18
- </script>
19
-
20
- {#if activePortal}
21
- {@render children?.()}
22
- {/if}
1
+ <script>
2
+ import { PortalsBond } from './portals/bond.svelte';
3
+
4
+ let { portal, children = undefined } = $props();
5
+
6
+ const portalsBond = PortalsBond.get();
7
+ const activePortal = (() => {
8
+ if (typeof portal === 'string') {
9
+ return portalsBond?.state?.get(portal) ?? undefined;
10
+ }
11
+
12
+ return portal;
13
+ })()?.share();
14
+
15
+ if (!portalsBond) {
16
+ throw new Error('Portals bond is not found');
17
+ }
18
+ </script>
19
+
20
+ {#if activePortal}
21
+ {@render children?.()}
22
+ {/if}
@@ -1,3 +1,4 @@
1
+ export * from './types';
1
2
  export * as Portal from './atoms';
2
3
  export { PortalBond, PortalState, type PortalStateProps } from './bond.svelte';
3
4
  export { portal } from './attachements.svelte';
@@ -1,3 +1,4 @@
1
+ export * from './types';
1
2
  export * as Portal from './atoms';
2
3
  export { PortalBond, PortalState } from './bond.svelte';
3
4
  export { portal } from './attachements.svelte';
@@ -1,24 +1,7 @@
1
1
  import type { HTMLAttributes } from 'svelte/elements';
2
- import { type ElementType, type Base } from '../atom';
2
+ import { type ElementType, type HtmlAtomProps, type Base } from '../atom';
3
3
  declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
4
- props: Record<string, unknown> & {
5
- [key: string]: unknown;
6
- class?: import("../..").ClassValue | import("../..").ClassValue[];
7
- as?: (string & {}) | E | undefined;
8
- global?: boolean;
9
- initial?: import("..").NodeFunction<E> | undefined;
10
- enter?: import("..").TransitionFunction<E> | undefined;
11
- exit?: import("..").TransitionFunction<E> | undefined;
12
- animate?: import("..").NodeFunction<E> | undefined;
13
- onmount?: import("..").NodeFunction<E> | undefined;
14
- ondestroy?: import("..").NodeFunction<E> | undefined;
15
- children?: import("svelte").Snippet;
16
- } & {
17
- bond?: import("../..").Bond;
18
- base?: B | undefined;
19
- preset?: import("../..").ModuleName | (string & {});
20
- variants?: import("../..").VariantDefinition<any> | ((bond: import("../..").Bond, variantProps: Record<string, any>) => Record<string, any>);
21
- } & HTMLAttributes<ElementType<E>>;
4
+ props: HtmlAtomProps<E, B> & HTMLAttributes<ElementType<E>>;
22
5
  exports: {};
23
6
  bindings: "";
24
7
  slots: {};
@@ -1,88 +1,83 @@
1
- <script module lang="ts">
2
- export type PortalOuterProps<
3
- E extends keyof HTMLElementTagNameMap = 'div',
4
- B extends Base = Base
5
- > = HtmlAtomProps<E, B> & {
6
- id: RootPortals | (string & {});
7
- children?: Snippet;
8
- };
9
- </script>
10
-
11
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
12
- import type { Snippet } from 'svelte';
13
- import type { HTMLAttributes } from 'svelte/elements';
14
- import { PortalsBond, PortalBond, PortalState, type PortalStateProps } from '.';
15
- import { RootBond } from '../root';
16
- import type { RootPortals } from '../root/root.svelte';
17
- import {
18
- HtmlAtom,
19
- type ElementType,
20
- type HtmlAtomProps,
21
- type Base
22
- } from '../atom';
23
- import { defineProperty, defineState } from '../../utils';
24
-
25
- type Element = ElementType<E>;
26
-
27
- let {
28
- class: klass = '',
29
- id,
30
- factory = _factory,
31
- children = undefined,
32
- onmount = undefined,
33
- ondestroy = undefined,
34
- animate = undefined,
35
- enter = undefined,
36
- exit = undefined,
37
- initial = undefined,
38
- ...restProps
39
- }: PortalOuterProps<E, B> & HTMLAttributes<Element> = $props();
40
-
41
- const rootBond = RootBond.get();
42
- const portalsBond = PortalsBond.get();
43
-
44
- const bondProps = defineState<PortalStateProps>([defineProperty('id', () => id)]);
45
- const bond = factory(bondProps).share() as PortalBond;
46
-
47
- portalsBond?.state.set(id, bond);
48
-
49
- $effect(() => {
50
- if (rootBond) {
51
- rootBond.state.setPortal(id, bond);
52
- }
53
-
54
- return () => {
55
- portalsBond?.state.delete(id);
56
- bond.destroy();
57
- };
58
- });
59
-
60
- const rootProps = $derived({
61
- ...bond.root(),
62
- ...restProps
63
- });
64
-
65
- function _factory(props: typeof bondProps) {
66
- const portalState = new PortalState(() => props);
67
- return new PortalBond(portalState);
68
- }
69
-
70
- export function getBond() {
71
- return bond;
72
- }
73
- </script>
74
-
75
- <HtmlAtom
76
- {bond}
77
- preset="portal"
78
- class={['border-border pointer-events-none', '$preset', klass]}
79
- enter={enter?.bind(bond.state)}
80
- exit={exit?.bind(bond.state)}
81
- initial={initial?.bind(bond.state)}
82
- animate={animate?.bind(bond.state)}
83
- onmount={onmount?.bind(bond.state)}
84
- ondestroy={ondestroy?.bind(bond.state)}
85
- {...rootProps}
86
- >
87
- {@render children?.()}
88
- </HtmlAtom>
1
+ <script module lang="ts">
2
+ export type { PortalOuterProps } from './types';
3
+ </script>
4
+
5
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
6
+ import type { Snippet } from 'svelte';
7
+ import type { HTMLAttributes } from 'svelte/elements';
8
+ import type { PortalOuterProps } from './types';
9
+ import { PortalsBond, PortalBond, PortalState, type PortalStateProps } from '.';
10
+ import { RootBond } from '../root';
11
+ import type { RootPortals } from '../root/root.svelte';
12
+ import {
13
+ HtmlAtom,
14
+ type ElementType,
15
+ type HtmlAtomProps,
16
+ type Base
17
+ } from '../atom';
18
+ import { defineProperty, defineState } from '../../utils';
19
+
20
+ type Element = ElementType<E>;
21
+
22
+ let {
23
+ class: klass = '',
24
+ id,
25
+ factory = _factory,
26
+ children = undefined,
27
+ onmount = undefined,
28
+ ondestroy = undefined,
29
+ animate = undefined,
30
+ enter = undefined,
31
+ exit = undefined,
32
+ initial = undefined,
33
+ ...restProps
34
+ }: PortalOuterProps<E, B> & HTMLAttributes<Element> = $props();
35
+
36
+ const rootBond = RootBond.get();
37
+ const portalsBond = PortalsBond.get();
38
+
39
+ const bondProps = defineState<PortalStateProps>([defineProperty('id', () => id)]);
40
+ const bond = factory(bondProps).share() as PortalBond;
41
+
42
+ portalsBond?.state.set(id, bond);
43
+
44
+ $effect(() => {
45
+ if (rootBond) {
46
+ rootBond.state.setPortal(id, bond);
47
+ }
48
+
49
+ return () => {
50
+ portalsBond?.state.delete(id);
51
+ bond.destroy();
52
+ };
53
+ });
54
+
55
+ const rootProps = $derived({
56
+ ...bond.root(),
57
+ ...restProps
58
+ });
59
+
60
+ function _factory(props: typeof bondProps) {
61
+ const portalState = new PortalState(() => props);
62
+ return new PortalBond(portalState);
63
+ }
64
+
65
+ export function getBond() {
66
+ return bond;
67
+ }
68
+ </script>
69
+
70
+ <HtmlAtom
71
+ {bond}
72
+ preset="portal"
73
+ class={['border-border pointer-events-none', '$preset', klass]}
74
+ enter={enter?.bind(bond.state)}
75
+ exit={exit?.bind(bond.state)}
76
+ initial={initial?.bind(bond.state)}
77
+ animate={animate?.bind(bond.state)}
78
+ onmount={onmount?.bind(bond.state)}
79
+ ondestroy={ondestroy?.bind(bond.state)}
80
+ {...rootProps}
81
+ >
82
+ {@render children?.()}
83
+ </HtmlAtom>
@@ -1,31 +1,11 @@
1
- export type PortalOuterProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = HtmlAtomProps<E, B> & {
2
- id: RootPortals | (string & {});
3
- children?: Snippet;
4
- };
1
+ export type { PortalOuterProps } from './types';
5
2
  import type { Snippet } from 'svelte';
6
3
  import type { HTMLAttributes } from 'svelte/elements';
7
4
  import { PortalBond } from '.';
8
5
  import type { RootPortals } from '../root/root.svelte';
9
6
  import { type ElementType, type HtmlAtomProps, type Base } from '../atom';
10
7
  declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
11
- props: Record<string, unknown> & {
12
- [key: string]: unknown;
13
- class?: import("../../utils").ClassValue | import("../../utils").ClassValue[];
14
- as?: (string & {}) | E | undefined;
15
- global?: boolean;
16
- initial?: import("..").NodeFunction<E> | undefined;
17
- enter?: import("..").TransitionFunction<E> | undefined;
18
- exit?: import("..").TransitionFunction<E> | undefined;
19
- animate?: import("..").NodeFunction<E> | undefined;
20
- onmount?: import("..").NodeFunction<E> | undefined;
21
- ondestroy?: import("..").NodeFunction<E> | undefined;
22
- children?: Snippet;
23
- } & {
24
- bond?: import("../..").Bond;
25
- base?: B | undefined;
26
- preset?: import("../..").ModuleName | (string & {});
27
- variants?: import("../../utils").VariantDefinition<any> | ((bond: import("../..").Bond, variantProps: Record<string, any>) => Record<string, any>);
28
- } & {
8
+ props: HtmlAtomProps<E, B> & import("./types").PortalOuterExtendProps & {
29
9
  id: RootPortals | (string & {});
30
10
  children?: Snippet;
31
11
  } & HTMLAttributes<ElementType<E>>;
@@ -1,17 +1,12 @@
1
1
  <script module lang="ts">
2
- import { HtmlAtom, type HtmlAtomProps, type Base } from '../atom';
3
- import type { HtmlElementTagName, HtmlElementType } from '../element';
4
-
5
- export type TeleportProps<
6
- E extends HtmlElementTagName = 'div',
7
- B extends Base = Base
8
- > = HtmlAtomProps<E, B> & {
9
- portal?: string | PortalBond;
10
- };
2
+ export type { TeleportProps } from './types';
11
3
  </script>
12
4
 
13
5
  <script lang="ts" generics="E extends HtmlElementTagName = 'div', B extends Base = Base">
14
6
  import type { HTMLAttributes } from 'svelte/elements';
7
+ import type { TeleportProps } from './types';
8
+ import { HtmlAtom, type HtmlAtomProps, type Base } from '../atom';
9
+ import type { HtmlElementTagName, HtmlElementType } from '../element';
15
10
  import { PortalsBond } from './portals';
16
11
  import { RootBond } from '../root/bond.svelte';
17
12
  import { port } from './utils';
@@ -1,29 +1,10 @@
1
+ export type { TeleportProps } from './types';
2
+ import type { HTMLAttributes } from 'svelte/elements';
1
3
  import { type HtmlAtomProps, type Base } from '../atom';
2
4
  import type { HtmlElementTagName, HtmlElementType } from '../element';
3
- export type TeleportProps<E extends HtmlElementTagName = 'div', B extends Base = Base> = HtmlAtomProps<E, B> & {
4
- portal?: string | PortalBond;
5
- };
6
- import type { HTMLAttributes } from 'svelte/elements';
7
5
  import type { PortalBond } from '.';
8
6
  declare function $$render<E extends HtmlElementTagName = 'div', B extends Base = Base>(): {
9
- props: Record<string, unknown> & {
10
- [key: string]: unknown;
11
- class?: import("../..").ClassValue | import("../..").ClassValue[];
12
- as?: (string & {}) | E | undefined;
13
- global?: boolean;
14
- initial?: import("../element").NodeFunction<E> | undefined;
15
- enter?: import("../element").TransitionFunction<E> | undefined;
16
- exit?: import("../element").TransitionFunction<E> | undefined;
17
- animate?: import("../element").NodeFunction<E> | undefined;
18
- onmount?: import("../element").NodeFunction<E> | undefined;
19
- ondestroy?: import("../element").NodeFunction<E> | undefined;
20
- children?: import("svelte").Snippet;
21
- } & {
22
- bond?: import("../..").Bond;
23
- base?: B | undefined;
24
- preset?: import("../..").ModuleName | (string & {});
25
- variants?: import("../..").VariantDefinition<any> | ((bond: import("../..").Bond, variantProps: Record<string, any>) => Record<string, any>);
26
- } & {
7
+ props: HtmlAtomProps<E, B> & import("./types").TeleportExtendProps & {
27
8
  portal?: string | PortalBond;
28
9
  } & HTMLAttributes<HtmlElementType<E>>;
29
10
  exports: {};
@@ -0,0 +1,39 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HtmlAtomProps, Base } from '../atom';
3
+ import type { Factory } from '../../types';
4
+ import type { PortalBond } from './bond.svelte';
5
+ import type { RootPortals } from '../root/root.svelte';
6
+ import type { HtmlElementTagName } from '../element';
7
+ /**
8
+ * Extend this interface to add custom portal root properties in your application.
9
+ */
10
+ export interface PortalRootExtendProps {
11
+ }
12
+ /**
13
+ * Extend this interface to add custom portal outer properties in your application.
14
+ */
15
+ export interface PortalOuterExtendProps {
16
+ }
17
+ /**
18
+ * Extend this interface to add custom teleport properties in your application.
19
+ */
20
+ export interface TeleportExtendProps {
21
+ }
22
+ export type PortalRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = Omit<HtmlAtomProps<E, B>, 'children'> & PortalRootExtendProps & {
23
+ name?: string;
24
+ factory?: Factory<PortalBond>;
25
+ children?: Snippet<[{
26
+ portal: PortalBond;
27
+ }]>;
28
+ };
29
+ export type PortalOuterProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = HtmlAtomProps<E, B> & PortalOuterExtendProps & {
30
+ id: RootPortals | (string & {});
31
+ children?: Snippet;
32
+ };
33
+ export type TeleportProps<E extends HtmlElementTagName = 'div', B extends Base = Base> = HtmlAtomProps<E, B> & TeleportExtendProps & {
34
+ portal?: string | PortalBond;
35
+ };
36
+ /**
37
+ * @deprecated Use PortalRootExtendProps instead
38
+ */
39
+ export type PortalExtendProps = PortalRootExtendProps;
@@ -0,0 +1 @@
1
+ export {};