@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.
- package/dist/components/accordion/accordion-root.svelte +61 -79
- package/dist/components/accordion/accordion-root.svelte.d.ts +2 -15
- package/dist/components/accordion/index.d.ts +2 -1
- package/dist/components/accordion/index.js +2 -1
- package/dist/components/accordion/item/accordion-item-body.svelte +42 -52
- package/dist/components/accordion/item/accordion-item-body.svelte.d.ts +2 -8
- package/dist/components/accordion/item/accordion-item-header.svelte +50 -60
- package/dist/components/accordion/item/accordion-item-header.svelte.d.ts +3 -20
- package/dist/components/accordion/item/accordion-item-indicator.svelte +50 -59
- package/dist/components/accordion/item/accordion-item-indicator.svelte.d.ts +2 -8
- package/dist/components/accordion/item/accordion-item-root.svelte +65 -79
- package/dist/components/accordion/item/accordion-item-root.svelte.d.ts +2 -12
- package/dist/components/accordion/item/index.d.ts +1 -0
- package/dist/components/accordion/item/types.d.ts +52 -0
- package/dist/components/accordion/item/types.js +1 -0
- package/dist/components/accordion/types.d.ts +21 -0
- package/dist/components/accordion/types.js +1 -0
- package/dist/components/alert/alert-actions.svelte +42 -52
- package/dist/components/alert/alert-actions.svelte.d.ts +3 -30
- package/dist/components/alert/alert-close-button.svelte +72 -79
- package/dist/components/alert/alert-close-button.svelte.d.ts +8 -35
- package/dist/components/alert/alert-content.svelte +42 -52
- package/dist/components/alert/alert-content.svelte.d.ts +3 -30
- package/dist/components/alert/alert-description.svelte +41 -51
- package/dist/components/alert/alert-description.svelte.d.ts +7 -10
- package/dist/components/alert/alert-icon.svelte +46 -56
- package/dist/components/alert/alert-icon.svelte.d.ts +2 -8
- package/dist/components/alert/alert-root.svelte +102 -118
- package/dist/components/alert/alert-root.svelte.d.ts +2 -13
- package/dist/components/alert/alert-title.svelte +41 -51
- package/dist/components/alert/alert-title.svelte.d.ts +2 -8
- package/dist/components/alert/index.d.ts +1 -0
- package/dist/components/alert/index.js +1 -0
- package/dist/components/alert/types.d.ts +85 -0
- package/dist/components/alert/types.js +1 -0
- package/dist/components/atom/html-atom.svelte.d.ts +2 -22
- package/dist/components/atom/types.d.ts +7 -2
- package/dist/components/avatar/types.d.ts +7 -2
- package/dist/components/badge/types.d.ts +7 -2
- package/dist/components/button/index.d.ts +1 -0
- package/dist/components/button/index.js +1 -0
- package/dist/components/button/types.d.ts +7 -2
- package/dist/components/card/card-body.svelte +39 -45
- package/dist/components/card/card-body.svelte.d.ts +7 -4
- package/dist/components/card/card-description.svelte +41 -48
- package/dist/components/card/card-description.svelte.d.ts +7 -7
- package/dist/components/card/card-footer.svelte +41 -48
- package/dist/components/card/card-footer.svelte.d.ts +7 -4
- package/dist/components/card/card-header.svelte +41 -48
- package/dist/components/card/card-header.svelte.d.ts +7 -4
- package/dist/components/card/card-media.svelte +41 -48
- package/dist/components/card/card-media.svelte.d.ts +7 -4
- package/dist/components/card/card-root.svelte +91 -91
- package/dist/components/card/card-root.svelte.d.ts +1 -1
- package/dist/components/card/card-subtitle.svelte +41 -48
- package/dist/components/card/card-subtitle.svelte.d.ts +12 -9
- package/dist/components/card/card-title.svelte +45 -52
- package/dist/components/card/card-title.svelte.d.ts +12 -9
- package/dist/components/card/index.d.ts +1 -0
- package/dist/components/card/index.js +1 -0
- package/dist/components/card/types.d.ts +57 -2
- package/dist/components/checkbox/types.d.ts +7 -2
- package/dist/components/collapsible/collapsible-body.svelte +39 -52
- package/dist/components/collapsible/collapsible-body.svelte.d.ts +2 -9
- package/dist/components/collapsible/collapsible-header.svelte +39 -52
- package/dist/components/collapsible/collapsible-header.svelte.d.ts +2 -9
- package/dist/components/collapsible/collapsible-indicator.svelte +50 -65
- package/dist/components/collapsible/collapsible-indicator.svelte.d.ts +3 -10
- package/dist/components/collapsible/collapsible-root.svelte +66 -85
- package/dist/components/collapsible/collapsible-root.svelte.d.ts +2 -14
- package/dist/components/collapsible/index.d.ts +1 -0
- package/dist/components/collapsible/index.js +1 -0
- package/dist/components/collapsible/types.d.ts +54 -0
- package/dist/components/collapsible/types.js +1 -0
- package/dist/components/combobox/combobox-root.svelte +65 -68
- package/dist/components/combobox/combobox-root.svelte.d.ts +5 -18
- package/dist/components/combobox/index.d.ts +1 -0
- package/dist/components/combobox/index.js +1 -0
- package/dist/components/combobox/types.d.ts +25 -0
- package/dist/components/combobox/types.js +1 -0
- package/dist/components/container/types.d.ts +7 -2
- package/dist/components/contextmenu/types.d.ts +8 -0
- package/dist/components/contextmenu/types.js +1 -0
- package/dist/components/datagrid/datagrid-body.svelte +37 -44
- package/dist/components/datagrid/datagrid-body.svelte.d.ts +17 -20
- package/dist/components/datagrid/datagrid-checkbox.svelte +101 -108
- package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +4 -6
- package/dist/components/datagrid/datagrid-footer.svelte +34 -34
- package/dist/components/datagrid/datagrid-footer.svelte.d.ts +1 -1
- package/dist/components/datagrid/datagrid-header.svelte +49 -49
- package/dist/components/datagrid/datagrid-header.svelte.d.ts +1 -1
- package/dist/components/datagrid/datagrid-root.svelte +59 -59
- package/dist/components/datagrid/datagrid-root.svelte.d.ts +1 -1
- package/dist/components/datagrid/td/datagrid-td.svelte +66 -80
- package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +7 -16
- package/dist/components/datagrid/th/datagrid-th.svelte +106 -127
- package/dist/components/datagrid/th/datagrid-th.svelte.d.ts +2 -20
- package/dist/components/datagrid/tr/bond.svelte.d.ts +3 -1
- package/dist/components/datagrid/tr/bond.svelte.js +4 -2
- package/dist/components/datagrid/tr/datagrid-tr.svelte +88 -103
- package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +2 -18
- package/dist/components/datagrid/types.d.ts +85 -37
- package/dist/components/dialog/dialog-body.svelte +39 -45
- package/dist/components/dialog/dialog-body.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-close-button.svelte +58 -61
- package/dist/components/dialog/dialog-close-button.svelte.d.ts +7 -7
- package/dist/components/dialog/dialog-content.svelte +62 -68
- package/dist/components/dialog/dialog-content.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-description.svelte +40 -46
- package/dist/components/dialog/dialog-description.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-footer.svelte +39 -45
- package/dist/components/dialog/dialog-footer.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-header.svelte +39 -45
- package/dist/components/dialog/dialog-header.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-root.svelte +3 -16
- package/dist/components/dialog/dialog-root.svelte.d.ts +2 -12
- package/dist/components/dialog/dialog-title.svelte +41 -47
- package/dist/components/dialog/dialog-title.svelte.d.ts +7 -7
- package/dist/components/dialog/index.d.ts +1 -0
- package/dist/components/dialog/index.js +1 -0
- package/dist/components/dialog/types.d.ts +67 -0
- package/dist/components/dialog/types.js +1 -0
- package/dist/components/divider/types.d.ts +10 -0
- package/dist/components/divider/types.js +1 -0
- package/dist/components/drawer/drawer-backdrop.svelte +38 -47
- package/dist/components/drawer/drawer-backdrop.svelte.d.ts +3 -26
- package/dist/components/drawer/drawer-body.svelte +42 -56
- package/dist/components/drawer/drawer-body.svelte.d.ts +3 -16
- package/dist/components/drawer/drawer-content.svelte +42 -55
- package/dist/components/drawer/drawer-content.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-description.svelte +44 -57
- package/dist/components/drawer/drawer-description.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-footer.svelte +41 -54
- package/dist/components/drawer/drawer-footer.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-header.svelte +43 -56
- package/dist/components/drawer/drawer-header.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-root.svelte +3 -28
- package/dist/components/drawer/drawer-root.svelte.d.ts +3 -34
- package/dist/components/drawer/drawer-title.svelte +44 -57
- package/dist/components/drawer/drawer-title.svelte.d.ts +3 -14
- package/dist/components/drawer/index.d.ts +1 -0
- package/dist/components/drawer/index.js +1 -0
- package/dist/components/drawer/types.d.ts +86 -0
- package/dist/components/drawer/types.js +1 -0
- package/dist/components/dropdown/dropdown-query.svelte +54 -53
- package/dist/components/dropdown/dropdown-query.svelte.d.ts +11 -10
- package/dist/components/dropdown/dropdown-root.svelte +59 -59
- package/dist/components/dropdown/dropdown-trigger.svelte +41 -52
- package/dist/components/dropdown/dropdown-trigger.svelte.d.ts +1 -8
- package/dist/components/dropdown/dropdown-value.svelte +60 -60
- package/dist/components/dropdown/index.d.ts +1 -0
- package/dist/components/dropdown/index.js +1 -0
- package/dist/components/dropdown/types.d.ts +37 -0
- package/dist/components/dropdown/types.js +1 -0
- package/dist/components/element/html-element.svelte.d.ts +2 -14
- package/dist/components/element/svg-element.svelte.d.ts +2 -14
- package/dist/components/element/types.d.ts +14 -7
- package/dist/components/form/field/field-control.svelte +48 -65
- package/dist/components/form/field/field-control.svelte.d.ts +5 -19
- package/dist/components/form/field/field-label.svelte +24 -31
- package/dist/components/form/field/field-label.svelte.d.ts +1 -2
- package/dist/components/form/field/field-root.svelte +59 -88
- package/dist/components/form/field/field-root.svelte.d.ts +5 -20
- package/dist/components/form/index.d.ts +1 -0
- package/dist/components/form/index.js +1 -0
- package/dist/components/form/types.d.ts +76 -0
- package/dist/components/form/types.js +1 -0
- package/dist/components/icon/icon.svelte +44 -55
- package/dist/components/icon/icon.svelte.d.ts +4 -29
- package/dist/components/icon/types.d.ts +11 -7
- package/dist/components/input/index.d.ts +1 -0
- package/dist/components/input/index.js +1 -0
- package/dist/components/input/input-control.svelte +103 -107
- package/dist/components/input/input-control.svelte.d.ts +2 -3
- package/dist/components/input/input-icon.svelte.d.ts +1 -1
- package/dist/components/input/input-placeholder.svelte.d.ts +2 -19
- package/dist/components/input/types.d.ts +18 -7
- package/dist/components/label/index.d.ts +1 -0
- package/dist/components/label/index.js +1 -0
- package/dist/components/label/label.svelte +25 -41
- package/dist/components/label/label.svelte.d.ts +3 -27
- package/dist/components/label/types.d.ts +11 -0
- package/dist/components/label/types.js +1 -0
- package/dist/components/layer/layer-inner.svelte.d.ts +2 -19
- package/dist/components/layer/layer-root.svelte.d.ts +2 -19
- package/dist/components/layer/types.d.ts +11 -0
- package/dist/components/layer/types.js +1 -0
- package/dist/components/link/types.d.ts +8 -0
- package/dist/components/link/types.js +1 -0
- package/dist/components/list/types.d.ts +8 -0
- package/dist/components/list/types.js +1 -0
- package/dist/components/menu/index.d.ts +1 -0
- package/dist/components/menu/index.js +1 -0
- package/dist/components/menu/types.d.ts +15 -0
- package/dist/components/menu/types.js +1 -0
- package/dist/components/popover/index.d.ts +1 -0
- package/dist/components/popover/index.js +1 -0
- package/dist/components/popover/popover-arrow.svelte +1 -1
- package/dist/components/popover/popover-arrow.svelte.d.ts +2 -18
- package/dist/components/popover/popover-content.svelte +1 -1
- package/dist/components/popover/popover-root.svelte +49 -49
- package/dist/components/popover/popover-trigger.svelte +47 -47
- package/dist/components/popover/types.d.ts +32 -10
- package/dist/components/portal/active-portal.svelte +22 -22
- package/dist/components/portal/index.d.ts +1 -0
- package/dist/components/portal/index.js +1 -0
- package/dist/components/portal/portal-inner.svelte.d.ts +2 -19
- package/dist/components/portal/portal-root.svelte +83 -88
- package/dist/components/portal/portal-root.svelte.d.ts +2 -22
- package/dist/components/portal/teleport.svelte +4 -9
- package/dist/components/portal/teleport.svelte.d.ts +3 -22
- package/dist/components/portal/types.d.ts +39 -0
- package/dist/components/portal/types.js +1 -0
- package/dist/components/radio/radio.svelte +109 -109
- package/dist/components/radio/radio.svelte.d.ts +14 -36
- package/dist/components/root/root.svelte +121 -121
- package/dist/components/root/types.d.ts +8 -0
- package/dist/components/root/types.js +1 -0
- package/dist/components/scrollable/index.d.ts +1 -0
- package/dist/components/scrollable/index.js +1 -0
- package/dist/components/scrollable/scrollable-container.svelte +82 -89
- package/dist/components/scrollable/scrollable-container.svelte.d.ts +2 -6
- package/dist/components/scrollable/scrollable-content.svelte +41 -51
- package/dist/components/scrollable/scrollable-content.svelte.d.ts +1 -6
- package/dist/components/scrollable/scrollable-root.svelte +100 -120
- package/dist/components/scrollable/scrollable-root.svelte.d.ts +3 -19
- package/dist/components/scrollable/scrollable-thumb.svelte +75 -86
- package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +1 -7
- package/dist/components/scrollable/scrollable-track.svelte +59 -70
- package/dist/components/scrollable/scrollable-track.svelte.d.ts +1 -7
- package/dist/components/scrollable/types.d.ts +62 -0
- package/dist/components/scrollable/types.js +1 -0
- package/dist/components/sidebar/index.d.ts +1 -0
- package/dist/components/sidebar/index.js +1 -0
- package/dist/components/sidebar/types.d.ts +16 -5
- package/dist/components/stack/stack-root.svelte.d.ts +2 -19
- package/dist/components/stack/types.d.ts +12 -0
- package/dist/components/stack/types.js +1 -0
- package/dist/components/tabs/index.d.ts +1 -0
- package/dist/components/tabs/index.js +1 -0
- package/dist/components/tabs/tab/tab-body.svelte +52 -61
- package/dist/components/tabs/tab/tab-body.svelte.d.ts +2 -8
- package/dist/components/tabs/tab/tab-description.svelte +41 -50
- package/dist/components/tabs/tab/tab-description.svelte.d.ts +2 -8
- package/dist/components/tabs/tab/tab-header.svelte +71 -81
- package/dist/components/tabs/tab/tab-header.svelte.d.ts +2 -11
- package/dist/components/tabs/tab/tab-root.svelte +86 -86
- package/dist/components/tabs/types.d.ts +55 -0
- package/dist/components/tabs/types.js +1 -0
- package/dist/components/textarea/index.d.ts +1 -0
- package/dist/components/textarea/index.js +1 -0
- package/dist/components/textarea/types.d.ts +28 -0
- package/dist/components/textarea/types.js +1 -0
- package/dist/components/toast/index.d.ts +1 -0
- package/dist/components/toast/index.js +1 -0
- package/dist/components/toast/toast-description.svelte +38 -44
- package/dist/components/toast/toast-description.svelte.d.ts +8 -34
- package/dist/components/toast/toast-root.svelte +61 -74
- package/dist/components/toast/toast-root.svelte.d.ts +4 -43
- package/dist/components/toast/toast-title.svelte +35 -43
- package/dist/components/toast/toast-title.svelte.d.ts +2 -34
- package/dist/components/toast/types.d.ts +40 -0
- package/dist/components/toast/types.js +1 -0
- package/dist/components/tooltip/types.d.ts +13 -0
- package/dist/components/tooltip/types.js +1 -0
- package/dist/components/tree/index.d.ts +1 -0
- package/dist/components/tree/index.js +1 -0
- package/dist/components/tree/tree-body.svelte +39 -50
- package/dist/components/tree/tree-body.svelte.d.ts +2 -10
- package/dist/components/tree/tree-header.svelte +54 -66
- package/dist/components/tree/tree-header.svelte.d.ts +3 -29
- package/dist/components/tree/tree-indicator.svelte +40 -50
- package/dist/components/tree/tree-indicator.svelte.d.ts +3 -9
- package/dist/components/tree/tree-root.svelte +65 -80
- package/dist/components/tree/tree-root.svelte.d.ts +2 -12
- package/dist/components/tree/types.d.ts +59 -0
- package/dist/components/tree/types.js +1 -0
- package/dist/components/virtual/types.d.ts +23 -0
- package/dist/components/virtual/types.js +1 -0
- package/dist/components/virtual/virtual-root.svelte +239 -258
- package/dist/components/virtual/virtual-root.svelte.d.ts +1 -18
- package/package.json +1 -1
|
@@ -1,86 +1,75 @@
|
|
|
1
|
-
<script
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
{bond}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
-
|
|
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
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
{
|
|
50
|
-
|
|
51
|
-
{bond}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
-
|
|
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 {};
|
|
@@ -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
|
-
|
|
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
|
|
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:
|
|
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,61 +1,52 @@
|
|
|
1
|
-
<script
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
|
|
2
|
-
|
|
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: {};
|