@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,89 +1,82 @@
1
- <script module lang="ts">
2
- export type ScrollableContainerProps<T extends keyof HTMLElementTagNameMap> = Override<
3
- HtmlAtomProps<T>,
4
- {
5
- children?: Snippet;
6
- }
7
- >;
8
- </script>
9
-
10
- <script lang="ts" generics="T extends keyof HTMLElementTagNameMap">
11
- import type { Snippet } from 'svelte';
12
- import { ScrollableBond } from './bond.svelte';
13
- import type { Override } from '../../types';
14
- import { resizeObserver } from '../../attachments/resize-observer.svelte';
15
- import { HtmlAtom, type HtmlAtomProps } from '../atom';
16
-
17
- let {
18
- class: klass = '',
19
- children = undefined,
20
- onmount = undefined,
21
- ondestroy = undefined,
22
- animate = undefined,
23
- enter = undefined,
24
- exit = undefined,
25
- initial = undefined,
26
- ...restProps
27
- }: ScrollableContainerProps<T> = $props();
28
-
29
- const bond = ScrollableBond.get();
30
-
31
- if (!bond) {
32
- throw new Error('ScrollableContainer must be used within a ScrollableRoot');
33
- }
34
- </script>
35
-
36
- <HtmlAtom
37
- {@attach (node) => {
38
- if (!bond) return;
39
-
40
- return resizeObserver(() => {
41
- bond.state.props.clientWidth = node.clientWidth;
42
- bond.state.props.clientHeight = node.clientHeight;
43
- bond.state.props.scrollWidth = node.scrollWidth;
44
- bond.state.props.scrollHeight = node.scrollHeight;
45
- })(node);
46
- }}
47
- {bond}
48
- preset="scrollable.container"
49
- class={[
50
- 'scrollable-container border-border h-full max-h-full w-full overflow-auto',
51
- '$preset',
52
- klass
53
- ]}
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
- onmount={onmount?.bind(bond.state)}
59
- ondestroy={ondestroy?.bind(bond.state)}
60
- {...bond.container()}
61
- {...restProps}
62
- >
63
- {#if children}
64
- {@render children()}
65
- {/if}
66
- </HtmlAtom>
67
-
68
- <style>
69
- :global(.scrollable-container) {
70
- scrollbar-width: none; /* Firefox */
71
- -ms-overflow-style: none; /* Internet Explorer 10+ */
72
- }
73
-
74
- :global(.scrollable-container::-webkit-scrollbar) {
75
- display: none; /* WebKit */
76
- }
77
-
78
- :global(.scrollable-container[data-hide-scrollbar='true']) {
79
- --scrollbar-width: 0px;
80
- }
81
-
82
- :global(.scrollable-container[data-hide-scrollbar='false']) {
83
- --scrollbar-width: 16px;
84
- /* margin-right: calc(-1 * var(--scrollbar-width, 16px));
85
- margin-bottom: calc(-1 * var(--scrollbar-width, 16px));
86
- padding-right: var(--scrollbar-width, 16px);
87
- padding-bottom: var(--scrollbar-width, 16px); */
88
- }
89
- </style>
1
+ <script module lang="ts">
2
+ export type { ScrollableContainerProps } from './types';
3
+ </script>
4
+
5
+ <script lang="ts" generics="T extends keyof HTMLElementTagNameMap">
6
+ import type { ScrollableContainerProps } from './types';
7
+ import { ScrollableBond } from './bond.svelte';
8
+ import { resizeObserver } from '../../attachments/resize-observer.svelte';
9
+ import { HtmlAtom } from '../atom';
10
+ let {
11
+ class: klass = '',
12
+ children = undefined,
13
+ onmount = undefined,
14
+ ondestroy = undefined,
15
+ animate = undefined,
16
+ enter = undefined,
17
+ exit = undefined,
18
+ initial = undefined,
19
+ ...restProps
20
+ }: ScrollableContainerProps<T> = $props();
21
+
22
+ const bond = ScrollableBond.get();
23
+
24
+ if (!bond) {
25
+ throw new Error('ScrollableContainer must be used within a ScrollableRoot');
26
+ }
27
+ </script>
28
+
29
+ <HtmlAtom
30
+ {@attach (node) => {
31
+ if (!bond) return;
32
+
33
+ return resizeObserver(() => {
34
+ bond.state.props.clientWidth = node.clientWidth;
35
+ bond.state.props.clientHeight = node.clientHeight;
36
+ bond.state.props.scrollWidth = node.scrollWidth;
37
+ bond.state.props.scrollHeight = node.scrollHeight;
38
+ })(node);
39
+ }}
40
+ {bond}
41
+ preset="scrollable.container"
42
+ class={[
43
+ 'scrollable-container border-border h-full max-h-full w-full overflow-auto',
44
+ '$preset',
45
+ klass
46
+ ]}
47
+ enter={enter?.bind(bond.state)}
48
+ exit={exit?.bind(bond.state)}
49
+ initial={initial?.bind(bond.state)}
50
+ animate={animate?.bind(bond.state)}
51
+ onmount={onmount?.bind(bond.state)}
52
+ ondestroy={ondestroy?.bind(bond.state)}
53
+ {...bond.container()}
54
+ {...restProps}
55
+ >
56
+ {#if children}
57
+ {@render children()}
58
+ {/if}
59
+ </HtmlAtom>
60
+
61
+ <style>
62
+ :global(.scrollable-container) {
63
+ scrollbar-width: none; /* Firefox */
64
+ -ms-overflow-style: none; /* Internet Explorer 10+ */
65
+ }
66
+
67
+ :global(.scrollable-container::-webkit-scrollbar) {
68
+ display: none; /* WebKit */
69
+ }
70
+
71
+ :global(.scrollable-container[data-hide-scrollbar='true']) {
72
+ --scrollbar-width: 0px;
73
+ }
74
+
75
+ :global(.scrollable-container[data-hide-scrollbar='false']) {
76
+ --scrollbar-width: 16px;
77
+ /* margin-right: calc(-1 * var(--scrollbar-width, 16px));
78
+ margin-bottom: calc(-1 * var(--scrollbar-width, 16px));
79
+ padding-right: var(--scrollbar-width, 16px);
80
+ padding-bottom: var(--scrollbar-width, 16px); */
81
+ }
82
+ </style>
@@ -1,9 +1,5 @@
1
- export type ScrollableContainerProps<T extends keyof HTMLElementTagNameMap> = Override<HtmlAtomProps<T>, {
2
- children?: Snippet;
3
- }>;
4
- import type { Snippet } from 'svelte';
5
- import type { Override } from '../../types';
6
- import { type HtmlAtomProps } from '../atom';
1
+ export type { ScrollableContainerProps } from './types';
2
+ import type { ScrollableContainerProps } from './types';
7
3
  declare function $$render<T extends keyof HTMLElementTagNameMap>(): {
8
4
  props: ScrollableContainerProps<T>;
9
5
  exports: {};
@@ -1,51 +1,41 @@
1
- <script module lang="ts">
2
- export type ScrollableContentProps<T extends keyof HTMLElementTagNameMap> = Override<
3
- HtmlAtomProps<T>,
4
- {
5
- children?: Snippet;
6
- }
7
- >;
8
- </script>
9
-
10
- <script lang="ts" generics="T extends keyof HTMLElementTagNameMap">
11
- import type { Snippet } from 'svelte';
12
- import { ScrollableBond } from './bond.svelte';
13
- import type { Override } from '../../types';
14
- import { HtmlAtom, type HtmlAtomProps } from '../atom';
15
-
16
- const bond = ScrollableBond.get();
17
-
18
- let {
19
- class: klass = '',
20
- children = undefined,
21
- onmount = undefined,
22
- ondestroy = undefined,
23
- animate = undefined,
24
- enter = undefined,
25
- exit = undefined,
26
- initial = undefined,
27
- ...restProps
28
- }: ScrollableContentProps<T> = $props();
29
-
30
- if (!bond) {
31
- throw new Error('ScrollableContent must be used within a ScrollableRoot');
32
- }
33
- </script>
34
-
35
- <HtmlAtom
36
- {bond}
37
- preset="scrollable.content"
38
- class={['scrollable-content border-border h-full max-h-full', '$preset', klass]}
39
- enter={enter?.bind(bond.state)}
40
- exit={exit?.bind(bond.state)}
41
- initial={initial?.bind(bond.state)}
42
- animate={animate?.bind(bond.state)}
43
- onmount={onmount?.bind(bond.state)}
44
- ondestroy={ondestroy?.bind(bond.state)}
45
- {...bond.content()}
46
- {...restProps}
47
- >
48
- {#if children}
49
- {@render children()}
50
- {/if}
51
- </HtmlAtom>
1
+ <script lang="ts" generics="T extends keyof HTMLElementTagNameMap">
2
+ import type { ScrollableContentProps } from './types';
3
+ import { ScrollableBond } from './bond.svelte';
4
+ import { HtmlAtom } from '../atom';
5
+
6
+ const bond = ScrollableBond.get();
7
+
8
+ let {
9
+ class: klass = '',
10
+ children = undefined,
11
+ onmount = undefined,
12
+ ondestroy = undefined,
13
+ animate = undefined,
14
+ enter = undefined,
15
+ exit = undefined,
16
+ initial = undefined,
17
+ ...restProps
18
+ }: ScrollableContentProps<T> = $props();
19
+
20
+ if (!bond) {
21
+ throw new Error('ScrollableContent must be used within a ScrollableRoot');
22
+ }
23
+ </script>
24
+
25
+ <HtmlAtom
26
+ {bond}
27
+ preset="scrollable.content"
28
+ class={['scrollable-content border-border h-full max-h-full', '$preset', klass]}
29
+ enter={enter?.bind(bond.state)}
30
+ exit={exit?.bind(bond.state)}
31
+ initial={initial?.bind(bond.state)}
32
+ animate={animate?.bind(bond.state)}
33
+ onmount={onmount?.bind(bond.state)}
34
+ ondestroy={ondestroy?.bind(bond.state)}
35
+ {...bond.content()}
36
+ {...restProps}
37
+ >
38
+ {#if children}
39
+ {@render children()}
40
+ {/if}
41
+ </HtmlAtom>
@@ -1,9 +1,4 @@
1
- export type ScrollableContentProps<T extends keyof HTMLElementTagNameMap> = Override<HtmlAtomProps<T>, {
2
- children?: Snippet;
3
- }>;
4
- import type { Snippet } from 'svelte';
5
- import type { Override } from '../../types';
6
- import { type HtmlAtomProps } from '../atom';
1
+ import type { ScrollableContentProps } from './types';
7
2
  declare function $$render<T extends keyof HTMLElementTagNameMap>(): {
8
3
  props: ScrollableContentProps<T>;
9
4
  exports: {};
@@ -1,120 +1,100 @@
1
- <script module lang="ts">
2
- export type ScrollableRootProps<T extends keyof HTMLElementTagNameMap> = Override<
3
- HtmlAtomProps<T>,
4
- {
5
- children?: Snippet<[{ scrollable: ScrollableBond }]>;
6
- }
7
- > & {
8
- scrollX?: number;
9
- scrollY?: number;
10
- scrollWidth?: number;
11
- scrollHeight?: number;
12
- clientWidth?: number;
13
- clientHeight?: number;
14
- disabled?: boolean;
15
- open?: boolean;
16
- };
17
- </script>
18
-
19
- <script lang="ts" generics="T extends keyof HTMLElementTagNameMap">
20
- import type { Snippet } from 'svelte';
21
- import { ScrollableBond, ScrollableState, type ScrollableStateProps } from './bond.svelte';
22
- import type { Override } from '../../types';
23
- import { defineProperty, defineState } from '../../utils';
24
- import { HtmlAtom, type HtmlAtomProps } from '../atom';
25
-
26
- let {
27
- scrollX = $bindable(0),
28
- scrollY = $bindable(0),
29
- scrollWidth = $bindable(0),
30
- scrollHeight = $bindable(0),
31
- clientWidth = $bindable(0),
32
- clientHeight = $bindable(0),
33
- class: klass = '',
34
- disabled = false,
35
- open = true,
36
- factory = _factory,
37
- children = undefined,
38
- onmount = undefined,
39
- ondestroy = undefined,
40
- animate = undefined,
41
- enter = undefined,
42
- exit = undefined,
43
- initial = undefined,
44
- ...restProps
45
- }: ScrollableRootProps<T> = $props();
46
-
47
- let isScrolling = $state(false);
48
-
49
- const bondProps = defineState<ScrollableStateProps>([
50
- defineProperty(
51
- 'scrollX',
52
- () => scrollX,
53
- (v) => (scrollX = v)
54
- ),
55
- defineProperty(
56
- 'scrollY',
57
- () => scrollY,
58
- (v) => (scrollY = v)
59
- ),
60
- defineProperty(
61
- 'scrollWidth',
62
- () => scrollWidth,
63
- (v) => (scrollWidth = v)
64
- ),
65
- defineProperty(
66
- 'scrollHeight',
67
- () => scrollHeight,
68
- (v) => (scrollHeight = v)
69
- ),
70
- defineProperty(
71
- 'clientWidth',
72
- () => clientWidth,
73
- (v) => (clientWidth = v)
74
- ),
75
- defineProperty(
76
- 'clientHeight',
77
- () => clientHeight,
78
- (v) => (clientHeight = v)
79
- ),
80
- defineProperty('disabled', () => disabled),
81
- defineProperty(
82
- 'open',
83
- () => open,
84
- (v) => (open = v)
85
- ),
86
- defineProperty(
87
- 'isScrolling',
88
- () => isScrolling,
89
- (v) => (isScrolling = v)
90
- )
91
- ]);
92
-
93
- const bond = factory(bondProps).share();
94
-
95
- const rootProps = $derived({ ...bond.root(), ...restProps });
96
-
97
- function _factory(props: typeof bondProps) {
98
- const scrollableState = new ScrollableState(() => props);
99
- return new ScrollableBond(scrollableState).share();
100
- }
101
-
102
- export function getBond() {
103
- return bond;
104
- }
105
- </script>
106
-
107
- <HtmlAtom
108
- {bond}
109
- preset="scrollable"
110
- class={['scrollable-root border-border relative box-content overflow-hidden', '$preset', klass]}
111
- enter={enter?.bind(bond.state)}
112
- exit={exit?.bind(bond.state)}
113
- initial={initial?.bind(bond.state)}
114
- animate={animate?.bind(bond.state)}
115
- onmount={onmount?.bind(bond.state)}
116
- ondestroy={ondestroy?.bind(bond.state)}
117
- {...rootProps}
118
- >
119
- {@render children?.({ scrollable: bond })}
120
- </HtmlAtom>
1
+ <script lang="ts" generics="T extends keyof HTMLElementTagNameMap">
2
+ import { defineProperty, defineState } from '../../utils';
3
+ import { HtmlAtom } from '../atom';
4
+ import { ScrollableBond, ScrollableState, type ScrollableStateProps } from './bond.svelte';
5
+ import type { ScrollableRootProps } from './types';
6
+ let {
7
+ scrollX = $bindable(0),
8
+ scrollY = $bindable(0),
9
+ scrollWidth = $bindable(0),
10
+ scrollHeight = $bindable(0),
11
+ clientWidth = $bindable(0),
12
+ clientHeight = $bindable(0),
13
+ class: klass = '',
14
+ disabled = false,
15
+ open = true,
16
+ factory = _factory,
17
+ children = undefined,
18
+ onmount = undefined,
19
+ ondestroy = undefined,
20
+ animate = undefined,
21
+ enter = undefined,
22
+ exit = undefined,
23
+ initial = undefined,
24
+ ...restProps
25
+ }: ScrollableRootProps<T> = $props();
26
+
27
+ let isScrolling = $state(false);
28
+
29
+ const bondProps = defineState<ScrollableStateProps>([
30
+ defineProperty(
31
+ 'scrollX',
32
+ () => scrollX,
33
+ (v) => (scrollX = v)
34
+ ),
35
+ defineProperty(
36
+ 'scrollY',
37
+ () => scrollY,
38
+ (v) => (scrollY = v)
39
+ ),
40
+ defineProperty(
41
+ 'scrollWidth',
42
+ () => scrollWidth,
43
+ (v) => (scrollWidth = v)
44
+ ),
45
+ defineProperty(
46
+ 'scrollHeight',
47
+ () => scrollHeight,
48
+ (v) => (scrollHeight = v)
49
+ ),
50
+ defineProperty(
51
+ 'clientWidth',
52
+ () => clientWidth,
53
+ (v) => (clientWidth = v)
54
+ ),
55
+ defineProperty(
56
+ 'clientHeight',
57
+ () => clientHeight,
58
+ (v) => (clientHeight = v)
59
+ ),
60
+ defineProperty('disabled', () => disabled),
61
+ defineProperty(
62
+ 'open',
63
+ () => open,
64
+ (v) => (open = v)
65
+ ),
66
+ defineProperty(
67
+ 'isScrolling',
68
+ () => isScrolling,
69
+ (v) => (isScrolling = v)
70
+ )
71
+ ]);
72
+
73
+ const bond = factory(bondProps).share();
74
+
75
+ const rootProps = $derived({ ...bond.root(), ...restProps });
76
+
77
+ function _factory(props: typeof bondProps) {
78
+ const scrollableState = new ScrollableState(() => props);
79
+ return new ScrollableBond(scrollableState).share();
80
+ }
81
+
82
+ export function getBond() {
83
+ return bond;
84
+ }
85
+ </script>
86
+
87
+ <HtmlAtom
88
+ {bond}
89
+ preset="scrollable"
90
+ class={['scrollable-root border-border relative box-content overflow-hidden', '$preset', klass]}
91
+ enter={enter?.bind(bond.state)}
92
+ exit={exit?.bind(bond.state)}
93
+ initial={initial?.bind(bond.state)}
94
+ animate={animate?.bind(bond.state)}
95
+ onmount={onmount?.bind(bond.state)}
96
+ ondestroy={ondestroy?.bind(bond.state)}
97
+ {...rootProps}
98
+ >
99
+ {@render children?.({ scrollable: bond })}
100
+ </HtmlAtom>
@@ -1,25 +1,9 @@
1
- export type ScrollableRootProps<T extends keyof HTMLElementTagNameMap> = Override<HtmlAtomProps<T>, {
2
- children?: Snippet<[{
3
- scrollable: ScrollableBond;
4
- }]>;
5
- }> & {
6
- scrollX?: number;
7
- scrollY?: number;
8
- scrollWidth?: number;
9
- scrollHeight?: number;
10
- clientWidth?: number;
11
- clientHeight?: number;
12
- disabled?: boolean;
13
- open?: boolean;
14
- };
15
- import type { Snippet } from 'svelte';
16
1
  import { ScrollableBond } from './bond.svelte';
17
- import type { Override } from '../../types';
18
- import { type HtmlAtomProps } from '../atom';
2
+ import type { ScrollableRootProps } from './types';
19
3
  declare function $$render<T extends keyof HTMLElementTagNameMap>(): {
20
4
  props: ScrollableRootProps<T>;
21
5
  exports: {
22
- getBond: () => any;
6
+ getBond: () => ScrollableBond;
23
7
  };
24
8
  bindings: "scrollX" | "clientWidth" | "scrollWidth" | "scrollY" | "clientHeight" | "scrollHeight";
25
9
  slots: {};
@@ -31,7 +15,7 @@ declare class __sveltets_Render<T extends keyof HTMLElementTagNameMap> {
31
15
  slots(): ReturnType<typeof $$render<T>>['slots'];
32
16
  bindings(): "scrollX" | "clientWidth" | "scrollWidth" | "scrollY" | "clientHeight" | "scrollHeight";
33
17
  exports(): {
34
- getBond: () => any;
18
+ getBond: () => ScrollableBond;
35
19
  };
36
20
  }
37
21
  interface $$IsomorphicComponent {