@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,86 +1,75 @@
1
- <script module lang="ts">
2
- export type ScrollableThumbProps<T extends keyof HTMLElementTagNameMap> = Override<
3
- HtmlAtomProps<T>,
4
- {
5
- children?: Snippet;
6
- orientation: 'horizontal' | 'vertical';
7
- }
8
- >;
9
- </script>
10
-
11
- <script lang="ts" generics="T extends keyof HTMLElementTagNameMap">
12
- import type { Snippet } from 'svelte';
13
- import { ScrollableBond } from './bond.svelte';
14
- import type { Override } from '../../types';
15
- import { HtmlAtom, type HtmlAtomProps } from '../atom';
16
-
17
- let {
18
- class: klass = '',
19
- children = undefined,
20
- orientation,
21
- onmount = undefined,
22
- ondestroy = undefined,
23
- animate = _animate,
24
- enter = undefined,
25
- exit = undefined,
26
- initial = undefined,
27
- ...restProps
28
- }: ScrollableThumbProps<T> = $props();
29
-
30
- const bond = ScrollableBond.get();
31
-
32
- if (!bond) {
33
- throw new Error('ScrollableThumb must be used within a ScrollableRoot');
34
- }
35
-
36
- const scrollX = $derived(bond.state.props.scrollX);
37
- const scrollY = $derived(bond.state.props.scrollY);
38
-
39
- const clientWidth = $derived(bond.state.props.clientWidth);
40
- const clientHeight = $derived(bond.state.props.clientHeight);
41
-
42
- const scrollWidth = $derived(bond.state.props.scrollWidth);
43
- const scrollHeight = $derived(bond.state.props.scrollHeight);
44
-
45
- const thumbX = $derived((scrollX / scrollWidth) * 100);
46
- const thumbY = $derived((scrollY / scrollHeight) * 100);
47
-
48
- const thumbWidth = $derived((clientWidth / scrollWidth) * 100);
49
- const thumbHeight = $derived((clientHeight / scrollHeight) * 100);
50
-
51
- const thumbProps = $derived(bond.thumb(orientation));
52
-
53
- function _animate(node: HTMLElement) {
54
- if (orientation === 'horizontal') {
55
- node.style.left = thumbX + '%';
56
- node.style.transform = `translateZ(1px)`;
57
- node.style.width = thumbWidth + '%';
58
- } else {
59
- node.style.top = thumbY + '%';
60
- node.style.transform = `translateZ(1px)`;
61
- node.style.height = thumbHeight + '%';
62
- }
63
- }
64
- </script>
65
-
66
- <HtmlAtom
67
- {bond}
68
- preset="scrollable.thumb"
69
- class={[
70
- 'scrollable-thumb border-border bg-foreground/10 hover:bg-foreground/20 absolute cursor-grab rounded-md active:cursor-grabbing',
71
- orientation === 'horizontal' ? 'scrollable-thumb-x' : 'scrollable-thumb-y',
72
- { horizontal: 'h-full', vertical: 'w-full' }[orientation],
73
- '$preset',
74
- klass
75
- ]}
76
- enter={enter?.bind(bond.state)}
77
- exit={exit?.bind(bond.state)}
78
- initial={initial?.bind(bond.state)}
79
- animate={animate?.bind(bond.state)}
80
- onmount={onmount?.bind(bond.state)}
81
- ondestroy={ondestroy?.bind(bond.state)}
82
- {...thumbProps}
83
- {...restProps}
84
- >
85
- {@render children?.()}
86
- </HtmlAtom>
1
+ <script lang="ts" generics="T extends keyof HTMLElementTagNameMap">
2
+ import { HtmlAtom } from '../atom';
3
+ import { ScrollableBond } from './bond.svelte';
4
+ import type { ScrollableThumbProps } from './types';
5
+
6
+ let {
7
+ class: klass = '',
8
+ children = undefined,
9
+ orientation,
10
+ onmount = undefined,
11
+ ondestroy = undefined,
12
+ animate = _animate,
13
+ enter = undefined,
14
+ exit = undefined,
15
+ initial = undefined,
16
+ ...restProps
17
+ }: ScrollableThumbProps<T> = $props();
18
+
19
+ const bond = ScrollableBond.get();
20
+
21
+ if (!bond) {
22
+ throw new Error('ScrollableThumb must be used within a ScrollableRoot');
23
+ }
24
+
25
+ const scrollX = $derived(bond.state.props.scrollX);
26
+ const scrollY = $derived(bond.state.props.scrollY);
27
+
28
+ const clientWidth = $derived(bond.state.props.clientWidth);
29
+ const clientHeight = $derived(bond.state.props.clientHeight);
30
+
31
+ const scrollWidth = $derived(bond.state.props.scrollWidth);
32
+ const scrollHeight = $derived(bond.state.props.scrollHeight);
33
+
34
+ const thumbX = $derived((scrollX / scrollWidth) * 100);
35
+ const thumbY = $derived((scrollY / scrollHeight) * 100);
36
+
37
+ const thumbWidth = $derived((clientWidth / scrollWidth) * 100);
38
+ const thumbHeight = $derived((clientHeight / scrollHeight) * 100);
39
+
40
+ const thumbProps = $derived(bond.thumb(orientation));
41
+
42
+ function _animate(node: HTMLElement) {
43
+ if (orientation === 'horizontal') {
44
+ node.style.left = thumbX + '%';
45
+ node.style.transform = `translateZ(1px)`;
46
+ node.style.width = thumbWidth + '%';
47
+ } else {
48
+ node.style.top = thumbY + '%';
49
+ node.style.transform = `translateZ(1px)`;
50
+ node.style.height = thumbHeight + '%';
51
+ }
52
+ }
53
+ </script>
54
+
55
+ <HtmlAtom
56
+ {bond}
57
+ preset="scrollable.thumb"
58
+ class={[
59
+ 'scrollable-thumb border-border bg-foreground/10 hover:bg-foreground/20 absolute cursor-grab rounded-md active:cursor-grabbing',
60
+ orientation === 'horizontal' ? 'scrollable-thumb-x' : 'scrollable-thumb-y',
61
+ { horizontal: 'h-full', vertical: 'w-full' }[orientation],
62
+ '$preset',
63
+ klass
64
+ ]}
65
+ enter={enter?.bind(bond.state)}
66
+ exit={exit?.bind(bond.state)}
67
+ initial={initial?.bind(bond.state)}
68
+ animate={animate?.bind(bond.state)}
69
+ onmount={onmount?.bind(bond.state)}
70
+ ondestroy={ondestroy?.bind(bond.state)}
71
+ {...thumbProps}
72
+ {...restProps}
73
+ >
74
+ {@render children?.()}
75
+ </HtmlAtom>
@@ -1,10 +1,4 @@
1
- export type ScrollableThumbProps<T extends keyof HTMLElementTagNameMap> = Override<HtmlAtomProps<T>, {
2
- children?: Snippet;
3
- orientation: 'horizontal' | 'vertical';
4
- }>;
5
- import type { Snippet } from 'svelte';
6
- import type { Override } from '../../types';
7
- import { type HtmlAtomProps } from '../atom';
1
+ import type { ScrollableThumbProps } from './types';
8
2
  declare function $$render<T extends keyof HTMLElementTagNameMap>(): {
9
3
  props: ScrollableThumbProps<T>;
10
4
  exports: {};
@@ -1,70 +1,59 @@
1
- <script module lang="ts">
2
- export type ScrollableTrackProps<T extends keyof HTMLElementTagNameMap> = Override<
3
- HtmlAtomProps<T>,
4
- {
5
- children?: Snippet;
6
- orientation: 'horizontal' | 'vertical';
7
- }
8
- >;
9
- </script>
10
-
11
- <script lang="ts" generics="T extends keyof HTMLElementTagNameMap">
12
- import type { Snippet } from 'svelte';
13
- import { ScrollableBond } from './bond.svelte';
14
- import type { Override } from '../../types';
15
- import { HtmlAtom, type HtmlAtomProps } from '../atom';
16
-
17
- let {
18
- class: klass = '',
19
-
20
- orientation = undefined,
21
- children = undefined,
22
- onmount = undefined,
23
- ondestroy = undefined,
24
- animate = undefined,
25
- enter = undefined,
26
- exit = undefined,
27
- initial = undefined,
28
- ...restProps
29
- }: ScrollableTrackProps<T> = $props();
30
-
31
- const bond = ScrollableBond.get();
32
-
33
- if (!bond) {
34
- throw new Error('ScrollableTrack must be used within a ScrollableRoot');
35
- }
36
-
37
- const hasYScroll = $derived(bond.state.props.scrollHeight > bond.state.props.clientHeight);
38
- const hasXScroll = $derived(bond.state.props.scrollWidth > bond.state.props.clientWidth);
39
-
40
- const hasScroll = $derived(hasXScroll || hasYScroll);
41
-
42
- const isOpen = $derived(bond?.state?.props?.open ?? true);
43
-
44
- const isScrolling = $derived(bond?.state?.props?.isScrolling ?? false);
45
-
46
- const trackProps = $derived(bond.track(orientation));
47
- </script>
48
-
49
- {#if (isOpen || isScrolling) && hasScroll}
50
- <HtmlAtom
51
- {bond}
52
- preset="scrollable.track"
53
- class={[
54
- 'scrollable-track bg-foreground/10 hover:bg-foreground/15 border-border absolute z-10 rounded transition-opacity',
55
- { vertical: 'inset-y-0 right-0 w-2', horizontal: 'inset-x-0 bottom-0 h-2' }[orientation],
56
- '$preset',
57
- klass
58
- ]}
59
- enter={enter?.bind(bond.state)}
60
- exit={exit?.bind(bond.state)}
61
- initial={initial?.bind(bond.state)}
62
- animate={animate?.bind(bond.state)}
63
- onmount={onmount?.bind(bond.state)}
64
- ondestroy={ondestroy?.bind(bond.state)}
65
- {...trackProps}
66
- {...restProps}
67
- >
68
- {@render children?.()}
69
- </HtmlAtom>
70
- {/if}
1
+ <script lang="ts" generics="T extends keyof HTMLElementTagNameMap">
2
+ import type { ScrollableTrackProps } from './types';
3
+ import { ScrollableBond } from './bond.svelte';
4
+ import { HtmlAtom } from '../atom';
5
+
6
+ let {
7
+ class: klass = '',
8
+
9
+ orientation = undefined,
10
+ children = undefined,
11
+ onmount = undefined,
12
+ ondestroy = undefined,
13
+ animate = undefined,
14
+ enter = undefined,
15
+ exit = undefined,
16
+ initial = undefined,
17
+ ...restProps
18
+ }: ScrollableTrackProps<T> = $props();
19
+
20
+ const bond = ScrollableBond.get();
21
+
22
+ if (!bond) {
23
+ throw new Error('ScrollableTrack must be used within a ScrollableRoot');
24
+ }
25
+
26
+ const hasYScroll = $derived(bond.state.props.scrollHeight > bond.state.props.clientHeight);
27
+ const hasXScroll = $derived(bond.state.props.scrollWidth > bond.state.props.clientWidth);
28
+
29
+ const hasScroll = $derived(hasXScroll || hasYScroll);
30
+
31
+ const isOpen = $derived(bond?.state?.props?.open ?? true);
32
+
33
+ const isScrolling = $derived(bond?.state?.props?.isScrolling ?? false);
34
+
35
+ const trackProps = $derived(bond.track(orientation));
36
+ </script>
37
+
38
+ {#if (isOpen || isScrolling) && hasScroll}
39
+ <HtmlAtom
40
+ {bond}
41
+ preset="scrollable.track"
42
+ class={[
43
+ 'scrollable-track bg-foreground/10 hover:bg-foreground/15 border-border absolute z-10 rounded transition-opacity',
44
+ { vertical: 'inset-y-0 right-0 w-2', horizontal: 'inset-x-0 bottom-0 h-2' }[orientation],
45
+ '$preset',
46
+ klass
47
+ ]}
48
+ enter={enter?.bind(bond.state)}
49
+ exit={exit?.bind(bond.state)}
50
+ initial={initial?.bind(bond.state)}
51
+ animate={animate?.bind(bond.state)}
52
+ onmount={onmount?.bind(bond.state)}
53
+ ondestroy={ondestroy?.bind(bond.state)}
54
+ {...trackProps}
55
+ {...restProps}
56
+ >
57
+ {@render children?.()}
58
+ </HtmlAtom>
59
+ {/if}
@@ -1,10 +1,4 @@
1
- export type ScrollableTrackProps<T extends keyof HTMLElementTagNameMap> = Override<HtmlAtomProps<T>, {
2
- children?: Snippet;
3
- orientation: 'horizontal' | 'vertical';
4
- }>;
5
- import type { Snippet } from 'svelte';
6
- import type { Override } from '../../types';
7
- import { type HtmlAtomProps } from '../atom';
1
+ import type { ScrollableTrackProps } from './types';
8
2
  declare function $$render<T extends keyof HTMLElementTagNameMap>(): {
9
3
  props: ScrollableTrackProps<T>;
10
4
  exports: {};
@@ -0,0 +1,62 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HtmlAtomProps, Base } from '../atom';
3
+ import type { Factory, Override } from '../../types';
4
+ import type { ScrollableBond } from './bond.svelte';
5
+ /**
6
+ * Extend this interface to add custom scrollable root properties in your application.
7
+ */
8
+ export interface ScrollableExtendProps {
9
+ }
10
+ /**
11
+ * Extend this interface to add custom scrollable container properties in your application.
12
+ */
13
+ export interface ScrollableContainerExtendProps {
14
+ }
15
+ /**
16
+ * Extend this interface to add custom scrollable content properties in your application.
17
+ */
18
+ export interface ScrollableContentExtendProps {
19
+ }
20
+ /**
21
+ * Extend this interface to add custom scrollable track properties in your application.
22
+ */
23
+ export interface ScrollableTrackExtendProps {
24
+ }
25
+ /**
26
+ * Extend this interface to add custom scrollable thumb properties in your application.
27
+ */
28
+ export interface ScrollableThumbExtendProps {
29
+ }
30
+ export interface ScrollableRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
31
+ children?: Snippet<[{
32
+ scrollable: ScrollableBond;
33
+ }]>;
34
+ }>, ScrollableExtendProps {
35
+ factory?: Factory<ScrollableBond>;
36
+ scrollX?: number;
37
+ scrollY?: number;
38
+ scrollWidth?: number;
39
+ scrollHeight?: number;
40
+ clientWidth?: number;
41
+ clientHeight?: number;
42
+ disabled?: boolean;
43
+ open?: boolean;
44
+ }
45
+ export interface ScrollableContainerProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
46
+ children?: Snippet;
47
+ }>, ScrollableContainerExtendProps {
48
+ }
49
+ export interface ScrollableContentProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
50
+ children?: Snippet;
51
+ }>, ScrollableContentExtendProps {
52
+ }
53
+ export interface ScrollableTrackProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
54
+ children?: Snippet;
55
+ }>, ScrollableTrackExtendProps {
56
+ orientation: 'horizontal' | 'vertical';
57
+ }
58
+ export interface ScrollableThumbProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
59
+ children?: Snippet;
60
+ }>, ScrollableThumbExtendProps {
61
+ orientation: 'horizontal' | 'vertical';
62
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,2 +1,3 @@
1
1
  export * as Sidebar from './atoms';
2
2
  export * from './attachments.svelte';
3
+ export * from './types';
@@ -1,2 +1,3 @@
1
1
  export * as Sidebar from './atoms';
2
2
  export * from './attachments.svelte';
3
+ export * from './types';
@@ -3,17 +3,28 @@ import type { Override } from '../../types';
3
3
  import type { Factory } from '../../types';
4
4
  import type { SidebarBond } from './bond.svelte';
5
5
  import type { Base, HtmlAtomProps } from '../atom';
6
- export type SlideoverRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = Override<HtmlAtomProps<E, B>, {
6
+ /**
7
+ * Extend this interface to add custom slideover root properties in your application.
8
+ */
9
+ export interface SlideoverRootExtendProps {
10
+ }
11
+ /**
12
+ * Extend this interface to add custom slideover content properties in your application.
13
+ */
14
+ export interface SlideoverContentExtendProps {
15
+ }
16
+ export interface SlideoverRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
7
17
  children?: Snippet<[{
8
18
  sidebar?: SidebarBond;
9
19
  }]>;
10
- }> & {
20
+ }>, SlideoverRootExtendProps {
11
21
  open?: boolean;
12
22
  disabled?: boolean;
13
23
  factory?: Factory<SidebarBond>;
14
- };
15
- export type SlideoverContentProps<E extends keyof HTMLElementTagNameMap, B extends Base = Base> = Override<HtmlAtomProps<E, B>, {
24
+ }
25
+ export interface SlideoverContentProps<E extends keyof HTMLElementTagNameMap, B extends Base = Base> extends Override<HtmlAtomProps<E, B>, {
16
26
  children?: Snippet<[{
17
27
  sidebar?: SidebarBond<any>;
18
28
  }]>;
19
- }>;
29
+ }>, SlideoverContentExtendProps {
30
+ }
@@ -1,25 +1,8 @@
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
  import './stack.css';
4
4
  declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
5
- props: Record<string, unknown> & {
6
- [key: string]: unknown;
7
- class?: import("../..").ClassValue | import("../..").ClassValue[];
8
- as?: (string & {}) | E | undefined;
9
- global?: boolean;
10
- initial?: import("..").NodeFunction<E> | undefined;
11
- enter?: import("..").TransitionFunction<E> | undefined;
12
- exit?: import("..").TransitionFunction<E> | undefined;
13
- animate?: import("..").NodeFunction<E> | undefined;
14
- onmount?: import("..").NodeFunction<E> | undefined;
15
- ondestroy?: import("..").NodeFunction<E> | undefined;
16
- children?: import("svelte").Snippet;
17
- } & {
18
- bond?: import("../..").Bond;
19
- base?: B | undefined;
20
- preset?: import("../..").ModuleName | (string & {});
21
- variants?: import("../..").VariantDefinition<any> | ((bond: import("../..").Bond, variantProps: Record<string, any>) => Record<string, any>);
22
- } & HTMLAttributes<ElementType<E>>;
5
+ props: HtmlAtomProps<E, B> & HTMLAttributes<ElementType<E>>;
23
6
  exports: {};
24
7
  bindings: "";
25
8
  slots: {};
@@ -0,0 +1,12 @@
1
+ import type { HtmlAtomProps, Base } from '../atom';
2
+ /**
3
+ * Extend this interface to add custom stack properties in your application.
4
+ */
5
+ export interface StackExtendProps {
6
+ }
7
+ export interface StackProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B>, StackExtendProps {
8
+ direction?: 'row' | 'column';
9
+ gap?: number | string;
10
+ align?: 'start' | 'center' | 'end' | 'stretch';
11
+ justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
12
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,2 +1,3 @@
1
+ export * from './types';
1
2
  export * as Tabs from './atoms';
2
3
  export { Tab } from './tab';
@@ -1,2 +1,3 @@
1
+ export * from './types';
1
2
  export * as Tabs from './atoms';
2
3
  export { Tab } from './tab';
@@ -1,61 +1,52 @@
1
- <script module lang="ts">
2
- export type TabBodyProps<
3
- E extends keyof HTMLElementTagNameMap = 'div',
4
- B extends Base = Base
5
- > = HtmlAtomProps<E, B> & {
6
- children?: Snippet<[{ tab?: TabBond<unknown> }]>;
7
- };
8
- </script>
9
-
10
- <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
11
- import type { Snippet } from 'svelte';
12
- import { HtmlAtom, type HtmlAtomProps, type Base } from '../../atom';
13
- import { TabBond } from './bond.svelte';
14
-
15
- const bond = TabBond.get();
16
-
17
- if (!bond) {
18
- throw new Error('TabBody must be used within a Tab');
19
- }
20
-
21
- let {
22
- class: klass = '',
23
- children,
24
- onmount = undefined,
25
- ondestroy = undefined,
26
- animate = undefined,
27
- enter = undefined,
28
- exit = undefined,
29
- initial = undefined,
30
- ...restProps
31
- }: TabBodyProps<E, B> = $props();
32
-
33
- let mounted = $state(false);
34
-
35
- const bodyProps = $derived({
36
- ...bond?.body(),
37
- ...restProps
38
- });
39
-
40
- $effect(() => {
41
- mounted = true;
42
- });
43
- </script>
44
-
45
- <HtmlAtom
46
- preset="tab.body"
47
- class={[
48
- 'tab-body border-border pointer-events-auto flex h-auto w-full min-w-full flex-1 flex-col',
49
- '$preset',
50
- klass
51
- ]}
52
- onmount={onmount?.bind(bond.state)}
53
- ondestroy={ondestroy?.bind(bond.state)}
54
- enter={enter?.bind(bond.state)}
55
- exit={exit?.bind(bond.state)}
56
- initial={initial?.bind(bond.state)}
57
- animate={animate?.bind(bond.state)}
58
- {...bodyProps}
59
- >
60
- {@render children?.({ tab: bond })}
61
- </HtmlAtom>
1
+ <script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
2
+ import { HtmlAtom, type Base } from '../../atom';
3
+ import type { TabBodyProps } from '../types';
4
+ import { TabBond } from './bond.svelte';
5
+
6
+ const bond = TabBond.get();
7
+
8
+ if (!bond) {
9
+ throw new Error('TabBody must be used within a Tab');
10
+ }
11
+
12
+ let {
13
+ class: klass = '',
14
+ children,
15
+ onmount = undefined,
16
+ ondestroy = undefined,
17
+ animate = undefined,
18
+ enter = undefined,
19
+ exit = undefined,
20
+ initial = undefined,
21
+ ...restProps
22
+ }: TabBodyProps<E, B> = $props();
23
+
24
+ let mounted = $state(false);
25
+
26
+ const bodyProps = $derived({
27
+ ...bond?.body(),
28
+ ...restProps
29
+ });
30
+
31
+ $effect(() => {
32
+ mounted = true;
33
+ });
34
+ </script>
35
+
36
+ <HtmlAtom
37
+ preset="tab.body"
38
+ class={[
39
+ 'tab-body border-border pointer-events-auto flex h-auto w-full min-w-full flex-1 flex-col',
40
+ '$preset',
41
+ klass
42
+ ]}
43
+ onmount={onmount?.bind(bond.state)}
44
+ ondestroy={ondestroy?.bind(bond.state)}
45
+ enter={enter?.bind(bond.state)}
46
+ exit={exit?.bind(bond.state)}
47
+ initial={initial?.bind(bond.state)}
48
+ animate={animate?.bind(bond.state)}
49
+ {...bodyProps}
50
+ >
51
+ {@render children?.({ tab: bond })}
52
+ </HtmlAtom>
@@ -1,11 +1,5 @@
1
- export type TabBodyProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = HtmlAtomProps<E, B> & {
2
- children?: Snippet<[{
3
- tab?: TabBond<unknown>;
4
- }]>;
5
- };
6
- import type { Snippet } from 'svelte';
7
- import { type HtmlAtomProps, type Base } from '../../atom';
8
- import { TabBond } from './bond.svelte';
1
+ import { type Base } from '../../atom';
2
+ import type { TabBodyProps } from '../types';
9
3
  declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
10
4
  props: TabBodyProps<E, B>;
11
5
  exports: {};