@geoffcox/sterling-svelte 0.0.15 → 0.0.17
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/@types/clickOutside.d.ts +9 -3
- package/{buttons/Button.svelte → Button.svelte} +27 -27
- package/{inputs/Checkbox.svelte → Checkbox.svelte} +16 -16
- package/{surfaces/Dialog.svelte → Dialog.svelte} +34 -21
- package/{inputs/Input.svelte → Input.svelte} +22 -22
- package/Label.svelte +52 -0
- package/Label.svelte.d.ts +42 -0
- package/List.constants.d.ts +1 -0
- package/List.constants.js +1 -0
- package/List.svelte +324 -0
- package/List.svelte.d.ts +69 -0
- package/List.types.d.ts +6 -0
- package/ListItem.svelte +90 -0
- package/ListItem.svelte.d.ts +51 -0
- package/Menu.svelte +115 -0
- package/Menu.svelte.d.ts +20 -0
- package/MenuBar.svelte +97 -0
- package/MenuBar.svelte.d.ts +43 -0
- package/MenuButton.svelte +102 -0
- package/MenuButton.svelte.d.ts +54 -0
- package/MenuItem.svelte +338 -0
- package/MenuItem.svelte.d.ts +61 -0
- package/MenuItemDisplay.svelte +97 -0
- package/MenuItemDisplay.svelte.d.ts +21 -0
- package/MenuSeparator.svelte +42 -0
- package/MenuSeparator.svelte.d.ts +76 -0
- package/Menus.constants.d.ts +2 -0
- package/Menus.constants.js +2 -0
- package/Menus.types.d.ts +22 -0
- package/Menus.utils.d.ts +5 -0
- package/Menus.utils.js +20 -0
- package/Portal.svelte +14 -0
- package/Portal.svelte.d.ts +21 -0
- package/{display/Progress.svelte → Progress.svelte} +14 -14
- package/{inputs/Radio.svelte → Radio.svelte} +15 -15
- package/{inputs/Select.svelte → Select.svelte} +96 -102
- package/{inputs/Select.svelte.d.ts → Select.svelte.d.ts} +20 -25
- package/{inputs/Slider.svelte → Slider.svelte} +49 -24
- package/{inputs/Slider.svelte.d.ts → Slider.svelte.d.ts} +25 -0
- package/{inputs/Switch.svelte → Switch.svelte} +38 -38
- package/Tab.svelte +181 -0
- package/{containers/Tab.svelte.d.ts → Tab.svelte.d.ts} +12 -15
- package/TabList.svelte +247 -0
- package/{containers/TabList.svelte.d.ts → TabList.svelte.d.ts} +21 -21
- package/TabList.types.d.ts +7 -0
- package/{inputs/TextArea.svelte → TextArea.svelte} +23 -23
- package/TextArea.types.js +1 -0
- package/Tooltip.svelte +182 -0
- package/Tooltip.svelte.d.ts +24 -0
- package/Tooltip.types.d.ts +3 -0
- package/Tooltip.types.js +1 -0
- package/Tree.constants.d.ts +2 -0
- package/Tree.constants.js +2 -0
- package/Tree.svelte +142 -0
- package/Tree.svelte.d.ts +25 -0
- package/Tree.types.d.ts +28 -0
- package/Tree.types.js +1 -0
- package/{containers/TreeChevron.svelte → TreeChevron.svelte} +3 -3
- package/TreeItem.svelte +276 -0
- package/TreeItem.svelte.d.ts +65 -0
- package/{containers/TreeItem.svelte → TreeItemDisplay.svelte} +18 -18
- package/{containers/TreeItem.svelte.d.ts → TreeItemDisplay.svelte.d.ts} +11 -14
- package/{clickOutside.js → actions/clickOutside.js} +3 -1
- package/actions/forwardEvents.d.ts +12 -0
- package/actions/forwardEvents.js +32 -0
- package/actions/portal.d.ts +8 -0
- package/actions/portal.js +19 -0
- package/index.d.ts +42 -24
- package/index.js +39 -19
- package/package.json +45 -29
- package/theme/darkTheme.js +66 -74
- package/theme/lightTheme.js +66 -74
- package/containers/List.svelte +0 -249
- package/containers/List.svelte.d.ts +0 -68
- package/containers/ListItem.svelte +0 -48
- package/containers/ListItem.svelte.d.ts +0 -26
- package/containers/Tab.svelte +0 -327
- package/containers/TabList.svelte +0 -126
- package/containers/Tabs.types.d.ts +0 -12
- package/containers/Tree.constants.d.ts +0 -2
- package/containers/Tree.constants.js +0 -2
- package/containers/Tree.svelte +0 -222
- package/containers/Tree.svelte.d.ts +0 -50
- package/containers/Tree.types.d.ts +0 -47
- package/containers/TreeNode.svelte +0 -267
- package/containers/TreeNode.svelte.d.ts +0 -43
- package/display/Label.svelte +0 -27
- package/display/Label.svelte.d.ts +0 -20
- package/surfaces/CloseX.svelte +0 -5
- package/surfaces/CloseX.svelte.d.ts +0 -23
- /package/{buttons/Button.svelte.d.ts → Button.svelte.d.ts} +0 -0
- /package/{buttons/Button.types.d.ts → Button.types.d.ts} +0 -0
- /package/{buttons/Button.types.js → Button.types.js} +0 -0
- /package/{inputs/Checkbox.svelte.d.ts → Checkbox.svelte.d.ts} +0 -0
- /package/{surfaces/Dialog.svelte.d.ts → Dialog.svelte.d.ts} +0 -0
- /package/{inputs/Input.svelte.d.ts → Input.svelte.d.ts} +0 -0
- /package/{containers/Tabs.types.js → List.types.js} +0 -0
- /package/{containers/Tree.types.js → Menus.types.js} +0 -0
- /package/{display/Progress.svelte.d.ts → Progress.svelte.d.ts} +0 -0
- /package/{display/Progress.types.d.ts → Progress.types.d.ts} +0 -0
- /package/{display/Progress.types.js → Progress.types.js} +0 -0
- /package/{inputs/Radio.svelte.d.ts → Radio.svelte.d.ts} +0 -0
- /package/{inputs/Switch.svelte.d.ts → Switch.svelte.d.ts} +0 -0
- /package/{containers/Tabs.constants.d.ts → TabList.constants.d.ts} +0 -0
- /package/{containers/Tabs.constants.js → TabList.constants.js} +0 -0
- /package/{inputs/TextArea.types.js → TabList.types.js} +0 -0
- /package/{inputs/TextArea.svelte.d.ts → TextArea.svelte.d.ts} +0 -0
- /package/{inputs/TextArea.types.d.ts → TextArea.types.d.ts} +0 -0
- /package/{containers/TreeChevron.svelte.d.ts → TreeChevron.svelte.d.ts} +0 -0
- /package/{clickOutside.d.ts → actions/clickOutside.d.ts} +0 -0
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
<script>import { createEventDispatcher, setContext } from "svelte";
|
|
2
|
-
import Tab from "./Tab.svelte";
|
|
3
|
-
import { writable } from "svelte/store";
|
|
4
|
-
import { tabListContextKey } from "./Tabs.constants";
|
|
5
|
-
export let disabled = false;
|
|
6
|
-
export let tabs = [];
|
|
7
|
-
export let vertical = false;
|
|
8
|
-
export let selectedTabId = void 0;
|
|
9
|
-
export let selectionFollowsFocus = false;
|
|
10
|
-
export let selectedTab = void 0;
|
|
11
|
-
const selectedTabIdStore = writable(selectedTabId);
|
|
12
|
-
const selectionFollowsFocusStore = writable(selectionFollowsFocus);
|
|
13
|
-
const verticalStore = writable(vertical);
|
|
14
|
-
const disabledStore = writable(disabled);
|
|
15
|
-
setContext(tabListContextKey, {
|
|
16
|
-
disabled: disabledStore,
|
|
17
|
-
selectedTabId: selectedTabIdStore,
|
|
18
|
-
selectionFollowsFocus: selectionFollowsFocusStore,
|
|
19
|
-
vertical: verticalStore
|
|
20
|
-
});
|
|
21
|
-
const dispatch = createEventDispatcher();
|
|
22
|
-
const raiseSelected = (tabId, tab) => {
|
|
23
|
-
dispatch("select", { tabId, tab });
|
|
24
|
-
};
|
|
25
|
-
$:
|
|
26
|
-
disabledStore.set(disabled);
|
|
27
|
-
$:
|
|
28
|
-
selectedTabIdStore.set(selectedTabId);
|
|
29
|
-
$: {
|
|
30
|
-
selectedTabId = $selectedTabIdStore;
|
|
31
|
-
selectedTab = tabs.find((tab) => tab.tabId === selectedTabId);
|
|
32
|
-
raiseSelected(selectedTabId, selectedTab);
|
|
33
|
-
}
|
|
34
|
-
$:
|
|
35
|
-
selectionFollowsFocusStore.set(selectionFollowsFocus);
|
|
36
|
-
$:
|
|
37
|
-
verticalStore.set(vertical);
|
|
38
|
-
</script>
|
|
39
|
-
|
|
40
|
-
<!--
|
|
41
|
-
@component
|
|
42
|
-
A list of items where a single item can be selected.
|
|
43
|
-
-->
|
|
44
|
-
<!-- svelte-ignore a11y-no-noninteractive-tabindex -->
|
|
45
|
-
<div
|
|
46
|
-
class="sterling-tab-list"
|
|
47
|
-
role="tablist"
|
|
48
|
-
class:vertical
|
|
49
|
-
class:disabled
|
|
50
|
-
on:blur
|
|
51
|
-
on:click
|
|
52
|
-
on:copy
|
|
53
|
-
on:cut
|
|
54
|
-
on:dblclick
|
|
55
|
-
on:focus
|
|
56
|
-
on:focusin
|
|
57
|
-
on:focusout
|
|
58
|
-
on:keydown
|
|
59
|
-
on:keypress
|
|
60
|
-
on:keyup
|
|
61
|
-
on:mousedown
|
|
62
|
-
on:mouseenter
|
|
63
|
-
on:mouseleave
|
|
64
|
-
on:mousemove
|
|
65
|
-
on:mouseover
|
|
66
|
-
on:mouseout
|
|
67
|
-
on:mouseup
|
|
68
|
-
on:scroll
|
|
69
|
-
on:wheel
|
|
70
|
-
on:paste
|
|
71
|
-
{...$$restProps}
|
|
72
|
-
>
|
|
73
|
-
{#each tabs as tab (tab.tabId)}
|
|
74
|
-
<Tab data={tab}>
|
|
75
|
-
<svelte:fragment let:data let:disabled let:selected let:tabId let:text>
|
|
76
|
-
<slot name="tabContent" {data} {disabled} {selected} {tabId} {text}>
|
|
77
|
-
<div class="text">
|
|
78
|
-
{text}
|
|
79
|
-
</div>
|
|
80
|
-
</slot>
|
|
81
|
-
</svelte:fragment>
|
|
82
|
-
</Tab>
|
|
83
|
-
{/each}
|
|
84
|
-
<slot />
|
|
85
|
-
</div>
|
|
86
|
-
|
|
87
|
-
<style>
|
|
88
|
-
.sterling-tab-list {
|
|
89
|
-
box-sizing: border-box;
|
|
90
|
-
display: grid;
|
|
91
|
-
margin: 0;
|
|
92
|
-
padding: calc(2 * var(--Common__outline-width));
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.sterling-tab-list:not(.vertical) {
|
|
96
|
-
column-gap: 0.5em;
|
|
97
|
-
grid-auto-flow: column;
|
|
98
|
-
grid-template-columns: repeat(auto-fill, auto);
|
|
99
|
-
grid-template-rows: 1fr;
|
|
100
|
-
overflow-x: scroll;
|
|
101
|
-
overflow-y: hidden;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
.sterling-tab-list.vertical {
|
|
105
|
-
grid-auto-flow: row;
|
|
106
|
-
grid-template-rows: auto;
|
|
107
|
-
grid-template-columns: 1fr;
|
|
108
|
-
overflow-x: hidden;
|
|
109
|
-
overflow-y: scroll;
|
|
110
|
-
row-gap: 0.5em;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.sterling-tab-list:hover {
|
|
114
|
-
color: var(--Common__color--hover);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
.sterling-tab-list.vertical .text {
|
|
118
|
-
padding-top: 0.25em;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
@media (prefers-reduced-motion) {
|
|
122
|
-
.sterling-tab-list {
|
|
123
|
-
transition: none;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
</style>
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { Readable, Writable } from 'svelte/store';
|
|
2
|
-
export type TabData<T> = T & {
|
|
3
|
-
tabId: string;
|
|
4
|
-
text?: string;
|
|
5
|
-
disabled?: boolean;
|
|
6
|
-
};
|
|
7
|
-
export type TabListContext<T> = {
|
|
8
|
-
disabled: Readable<boolean>;
|
|
9
|
-
selectedTabId: Writable<string | undefined>;
|
|
10
|
-
selectionFollowsFocus: Readable<boolean>;
|
|
11
|
-
vertical: Readable<boolean>;
|
|
12
|
-
};
|
package/containers/Tree.svelte
DELETED
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
<script>import { v4 as uuid } from "uuid";
|
|
2
|
-
import { createEventDispatcher, setContext } from "svelte";
|
|
3
|
-
import { writable } from "svelte/store";
|
|
4
|
-
import { treeContextKey, treeNodeContextKey } from "./Tree.constants";
|
|
5
|
-
import Label from "../display/Label.svelte";
|
|
6
|
-
import TreeNode from "./TreeNode.svelte";
|
|
7
|
-
import TreeItem from "./TreeItem.svelte";
|
|
8
|
-
const inputId = uuid();
|
|
9
|
-
let nodeIdCounter = 0;
|
|
10
|
-
const getDefaultNodeId = (node) => {
|
|
11
|
-
if (node.nodeId) {
|
|
12
|
-
return node.nodeId;
|
|
13
|
-
} else {
|
|
14
|
-
nodeIdCounter++;
|
|
15
|
-
return `node-${nodeIdCounter}`;
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
export let composed = false;
|
|
19
|
-
export let disabled = false;
|
|
20
|
-
export let getNodeId = getDefaultNodeId;
|
|
21
|
-
export let nodes = void 0;
|
|
22
|
-
export let selectedNodeId = void 0;
|
|
23
|
-
export let expandedNodeIds = [];
|
|
24
|
-
const selectedNodeIdStore = writable(selectedNodeId);
|
|
25
|
-
const expandedNodeIdStore = writable(expandedNodeIds);
|
|
26
|
-
const selectedNodeEventHandlersStore = writable();
|
|
27
|
-
setContext(treeContextKey, {
|
|
28
|
-
expandedNodeIds: expandedNodeIdStore,
|
|
29
|
-
getNodeId,
|
|
30
|
-
selectedNodeId: selectedNodeIdStore,
|
|
31
|
-
selectedNodeEventHandlers: selectedNodeEventHandlersStore
|
|
32
|
-
});
|
|
33
|
-
setContext(treeNodeContextKey, { parentNodeId: void 0, depth: 0 });
|
|
34
|
-
const dispatch = createEventDispatcher();
|
|
35
|
-
const raiseExpandCollapse = (expandedNodeIds2) => {
|
|
36
|
-
dispatch("expandCollapse", { expandedNodeIds: expandedNodeIds2 });
|
|
37
|
-
};
|
|
38
|
-
const raiseSelect = (selectedNodeId2) => {
|
|
39
|
-
dispatch("select", { selectedNodeId: selectedNodeId2 });
|
|
40
|
-
};
|
|
41
|
-
$: {
|
|
42
|
-
selectedNodeIdStore.set(selectedNodeId);
|
|
43
|
-
}
|
|
44
|
-
$: {
|
|
45
|
-
selectedNodeId = $selectedNodeIdStore;
|
|
46
|
-
raiseSelect($selectedNodeIdStore);
|
|
47
|
-
}
|
|
48
|
-
$: {
|
|
49
|
-
expandedNodeIdStore.set(expandedNodeIds);
|
|
50
|
-
}
|
|
51
|
-
$: {
|
|
52
|
-
expandedNodeIds = $expandedNodeIdStore;
|
|
53
|
-
raiseExpandCollapse($expandedNodeIdStore);
|
|
54
|
-
}
|
|
55
|
-
const getAllNodeIds = (node, nodeIds) => {
|
|
56
|
-
nodeIds.push(getNodeId(node));
|
|
57
|
-
node.children?.forEach((child) => getAllNodeIds(child, nodeIds));
|
|
58
|
-
};
|
|
59
|
-
const setToggleNodeIdsToAll = () => {
|
|
60
|
-
const nodeIds = [];
|
|
61
|
-
nodes?.forEach((node) => getAllNodeIds(node, nodeIds));
|
|
62
|
-
expandedNodeIds = nodeIds;
|
|
63
|
-
};
|
|
64
|
-
export const collapseAll = () => {
|
|
65
|
-
expandedNodeIds = [];
|
|
66
|
-
};
|
|
67
|
-
export const expandAll = () => {
|
|
68
|
-
setToggleNodeIdsToAll();
|
|
69
|
-
};
|
|
70
|
-
const onKeydown = (event) => {
|
|
71
|
-
return $selectedNodeEventHandlersStore?.onKeydown?.(event);
|
|
72
|
-
};
|
|
73
|
-
</script>
|
|
74
|
-
|
|
75
|
-
<!-- svelte-ignore a11y-no-noninteractive-tabindex -->
|
|
76
|
-
<div
|
|
77
|
-
class="sterling-tree"
|
|
78
|
-
class:disabled
|
|
79
|
-
class:composed
|
|
80
|
-
tabindex={!disabled ? 0 : undefined}
|
|
81
|
-
on:keydown={onKeydown}
|
|
82
|
-
>
|
|
83
|
-
{#if $$slots.label}
|
|
84
|
-
<Label {disabled} for={inputId}>
|
|
85
|
-
<slot name="label" />
|
|
86
|
-
</Label>
|
|
87
|
-
{/if}
|
|
88
|
-
<div class="tree" role="tree">
|
|
89
|
-
{#if nodes}
|
|
90
|
-
{#each nodes as node}
|
|
91
|
-
<TreeNode {disabled} {node} nodeId={getNodeId(node)}>
|
|
92
|
-
<!--
|
|
93
|
-
Forward the item slot into each tree node.
|
|
94
|
-
It is cleanest to have a fragment for the TreeNode item slot to
|
|
95
|
-
capture the let params, then apply them to the Tree item slot.
|
|
96
|
-
-->
|
|
97
|
-
<svelte:fragment
|
|
98
|
-
slot="item"
|
|
99
|
-
let:disabled
|
|
100
|
-
let:expanded
|
|
101
|
-
let:hasChildren
|
|
102
|
-
let:depth
|
|
103
|
-
let:node
|
|
104
|
-
let:nodeId
|
|
105
|
-
let:selected
|
|
106
|
-
>
|
|
107
|
-
<slot
|
|
108
|
-
name="item"
|
|
109
|
-
{disabled}
|
|
110
|
-
{expanded}
|
|
111
|
-
{hasChildren}
|
|
112
|
-
{depth}
|
|
113
|
-
{node}
|
|
114
|
-
{nodeId}
|
|
115
|
-
{selected}
|
|
116
|
-
>
|
|
117
|
-
<!--
|
|
118
|
-
Svelte prevents conditionally applying slots.
|
|
119
|
-
This repeats exact same item slot default for this node
|
|
120
|
-
so the item slot is passed down the tree.
|
|
121
|
-
-->
|
|
122
|
-
<TreeItem {disabled} {expanded} {hasChildren} {depth} {node} {nodeId} {selected}>
|
|
123
|
-
<svelte:fragment
|
|
124
|
-
let:disabled
|
|
125
|
-
let:expanded
|
|
126
|
-
let:hasChildren
|
|
127
|
-
let:depth
|
|
128
|
-
let:node
|
|
129
|
-
let:nodeId
|
|
130
|
-
let:selected
|
|
131
|
-
>
|
|
132
|
-
<!-- This uses the nodeLabel slot for the TreeItem default slot. -->
|
|
133
|
-
<slot
|
|
134
|
-
name="nodeLabel"
|
|
135
|
-
{disabled}
|
|
136
|
-
{expanded}
|
|
137
|
-
{hasChildren}
|
|
138
|
-
{depth}
|
|
139
|
-
{node}
|
|
140
|
-
{nodeId}
|
|
141
|
-
{selected}>{nodeId}</slot
|
|
142
|
-
>
|
|
143
|
-
</svelte:fragment>
|
|
144
|
-
</TreeItem>
|
|
145
|
-
</slot>
|
|
146
|
-
</svelte:fragment>
|
|
147
|
-
</TreeNode>
|
|
148
|
-
{/each}
|
|
149
|
-
{/if}
|
|
150
|
-
<slot />
|
|
151
|
-
</div>
|
|
152
|
-
</div>
|
|
153
|
-
|
|
154
|
-
<style>
|
|
155
|
-
.sterling-tree {
|
|
156
|
-
background-color: var(--Common__background-color);
|
|
157
|
-
border-color: var(--Common__border-color);
|
|
158
|
-
border-radius: var(--Common__border-radius);
|
|
159
|
-
border-style: var(--Common__border-style);
|
|
160
|
-
border-width: var(--Common__border-width);
|
|
161
|
-
box-sizing: border-box;
|
|
162
|
-
color: var(--Common__color);
|
|
163
|
-
display: grid;
|
|
164
|
-
grid-template-columns: 1fr;
|
|
165
|
-
grid-template-rows: auto 1fr;
|
|
166
|
-
height: 100%;
|
|
167
|
-
margin: 0;
|
|
168
|
-
overflow: hidden;
|
|
169
|
-
padding: 0;
|
|
170
|
-
transition: background-color 250ms, color 250ms, border-color 250ms;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
.sterling-tree:hover {
|
|
174
|
-
border-color: var(--Common__border-color--hover);
|
|
175
|
-
color: var(--Common__color--hover);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
.sterling-tree:focus-visible {
|
|
179
|
-
border-color: var(--Common__border-color--focus);
|
|
180
|
-
color: var(--Common__color--focus);
|
|
181
|
-
outline-color: var(--Common__outline-color);
|
|
182
|
-
outline-offset: var(--Common__outline-offset);
|
|
183
|
-
outline-style: var(--Common__outline-style);
|
|
184
|
-
outline-width: var(--Common__outline-width);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
.sterling-tree.disabled {
|
|
188
|
-
background-color: var(--Common__background-color--disabled);
|
|
189
|
-
border-color: var(---Common__border-color--disabled);
|
|
190
|
-
color: var(--Common__color--disabled);
|
|
191
|
-
cursor: not-allowed;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
.sterling-tree.composed,
|
|
195
|
-
.sterling-tree:hover.composed,
|
|
196
|
-
.sterling-tree:focus-visible.composed,
|
|
197
|
-
.sterling-tree.disabled.composed {
|
|
198
|
-
background: none;
|
|
199
|
-
border: none;
|
|
200
|
-
outline: none;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
.sterling-tree > :global(label) {
|
|
204
|
-
font-size: 0.7em;
|
|
205
|
-
margin: 0.5em 0.7em;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
.sterling-tree > :global(label):empty {
|
|
209
|
-
margin: 0;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
.tree {
|
|
213
|
-
display: flex;
|
|
214
|
-
flex-direction: column;
|
|
215
|
-
flex-wrap: nowrap;
|
|
216
|
-
grid-row: 2 / span 1;
|
|
217
|
-
overflow-x: hidden;
|
|
218
|
-
overflow-y: scroll;
|
|
219
|
-
outline: none;
|
|
220
|
-
position: relative;
|
|
221
|
-
}
|
|
222
|
-
</style>
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { SvelteComponentTyped } from "svelte";
|
|
2
|
-
import type { TreeNodeData } from './Tree.types';
|
|
3
|
-
declare class __sveltets_Render<T> {
|
|
4
|
-
props(): {
|
|
5
|
-
composed?: boolean | undefined;
|
|
6
|
-
disabled?: boolean | undefined;
|
|
7
|
-
getNodeId?: ((node: TreeNodeData<T>) => string) | undefined;
|
|
8
|
-
nodes?: TreeNodeData<T>[] | undefined;
|
|
9
|
-
selectedNodeId?: string | undefined;
|
|
10
|
-
expandedNodeIds?: string[] | undefined;
|
|
11
|
-
collapseAll?: (() => void) | undefined;
|
|
12
|
-
expandAll?: (() => void) | undefined;
|
|
13
|
-
};
|
|
14
|
-
events(): {
|
|
15
|
-
expandCollapse: CustomEvent<any>;
|
|
16
|
-
select: CustomEvent<any>;
|
|
17
|
-
} & {
|
|
18
|
-
[evt: string]: CustomEvent<any>;
|
|
19
|
-
};
|
|
20
|
-
slots(): {
|
|
21
|
-
label: {};
|
|
22
|
-
item: {
|
|
23
|
-
disabled: any;
|
|
24
|
-
expanded: any;
|
|
25
|
-
hasChildren: any;
|
|
26
|
-
depth: any;
|
|
27
|
-
node: any;
|
|
28
|
-
nodeId: any;
|
|
29
|
-
selected: any;
|
|
30
|
-
};
|
|
31
|
-
nodeLabel: {
|
|
32
|
-
disabled: any;
|
|
33
|
-
expanded: any;
|
|
34
|
-
hasChildren: any;
|
|
35
|
-
depth: any;
|
|
36
|
-
node: any;
|
|
37
|
-
nodeId: any;
|
|
38
|
-
selected: any;
|
|
39
|
-
};
|
|
40
|
-
default: {};
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
export type TreeProps<T> = ReturnType<__sveltets_Render<T>['props']>;
|
|
44
|
-
export type TreeEvents<T> = ReturnType<__sveltets_Render<T>['events']>;
|
|
45
|
-
export type TreeSlots<T> = ReturnType<__sveltets_Render<T>['slots']>;
|
|
46
|
-
export default class Tree<T> extends SvelteComponentTyped<TreeProps<T>, TreeEvents<T>, TreeSlots<T>> {
|
|
47
|
-
get collapseAll(): () => void;
|
|
48
|
-
get expandAll(): () => void;
|
|
49
|
-
}
|
|
50
|
-
export {};
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import type { Writable } from 'svelte/store';
|
|
2
|
-
export type TreeNodeData<T> = T & {
|
|
3
|
-
nodeId?: string;
|
|
4
|
-
children?: TreeNodeData<T>[];
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* The set of event handlers forwarded from Tree
|
|
8
|
-
*/
|
|
9
|
-
export type TreeForwardedEventHandlers = {
|
|
10
|
-
onKeydown: svelte.JSX.KeyboardEventHandler<Element>;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Context for a Tree and its TreeNodes
|
|
14
|
-
*/
|
|
15
|
-
export type TreeContext<T> = {
|
|
16
|
-
/**
|
|
17
|
-
* Gets the ID for the tree node.
|
|
18
|
-
*/
|
|
19
|
-
getNodeId: (node: TreeNodeData<T>) => string;
|
|
20
|
-
/**
|
|
21
|
-
* The IDs of the expanded ttree nodes.
|
|
22
|
-
*/
|
|
23
|
-
expandedNodeIds: Writable<string[]>;
|
|
24
|
-
/**
|
|
25
|
-
* The ID of the selected tree node.
|
|
26
|
-
*/
|
|
27
|
-
selectedNodeId: Writable<string | undefined>;
|
|
28
|
-
/**
|
|
29
|
-
* The selected tree node's event handlers.
|
|
30
|
-
* The Tree will forward events to these handlers.
|
|
31
|
-
*/
|
|
32
|
-
selectedNodeEventHandlers: Writable<TreeForwardedEventHandlers>;
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* The context for a TreeNode
|
|
36
|
-
*/
|
|
37
|
-
export type TreeNodeContext = {
|
|
38
|
-
/**
|
|
39
|
-
* The ID of the parent node.
|
|
40
|
-
*/
|
|
41
|
-
parentNodeId?: string;
|
|
42
|
-
/**
|
|
43
|
-
* How many levels deep this node is in the tree hierarchy.
|
|
44
|
-
* A top level item's depth is zero.
|
|
45
|
-
*/
|
|
46
|
-
depth: number;
|
|
47
|
-
};
|