fluentui-svelte 0.3.0 → 0.5.0
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/README.md +1 -1
- package/dist/components/auto-suggest-box/docs/llms.md +76 -15
- package/dist/components/breadcrumb/breadcrumb-button.svelte +130 -0
- package/dist/components/breadcrumb/breadcrumb-button.svelte.d.ts +35 -0
- package/dist/components/breadcrumb/breadcrumb-divider.svelte +39 -0
- package/dist/components/breadcrumb/breadcrumb-divider.svelte.d.ts +14 -0
- package/dist/components/breadcrumb/breadcrumb-item.svelte +30 -0
- package/dist/components/breadcrumb/breadcrumb-item.svelte.d.ts +16 -0
- package/dist/components/breadcrumb/breadcrumb.svelte +101 -0
- package/dist/components/breadcrumb/breadcrumb.svelte.d.ts +25 -0
- package/dist/components/breadcrumb/docs/llms.md +193 -0
- package/dist/components/breadcrumb/types.d.ts +80 -0
- package/dist/components/breadcrumb/types.js +1 -0
- package/dist/components/card/card-header.svelte +2 -2
- package/dist/components/dropdown/dropdown.svelte +1 -0
- package/dist/components/list-view/docs/llms.md +79 -27
- package/dist/components/list-view/list-view-item.svelte +14 -11
- package/dist/components/list-view/list-view.svelte +3 -2
- package/dist/components/list-view/types.d.ts +5 -1
- package/dist/components/menu/docs/llms.md +16 -0
- package/dist/components/menu/menu-popover.svelte +7 -12
- package/dist/components/menu/menu-popover.svelte.d.ts +2 -10
- package/dist/components/menu/types.d.ts +21 -0
- package/dist/components/tab-view/docs/llms.md +146 -0
- package/dist/components/tab-view/tab-view-tab.svelte +290 -0
- package/dist/components/tab-view/tab-view-tab.svelte.d.ts +20 -0
- package/dist/components/tab-view/tab-view.svelte +188 -0
- package/dist/components/tab-view/tab-view.svelte.d.ts +26 -0
- package/dist/components/tab-view/tab-view.svelte.js +15 -0
- package/dist/components/tab-view/types.d.ts +79 -0
- package/dist/components/tab-view/types.js +1 -0
- package/dist/components/top-nav/docs/llms.md +176 -0
- package/dist/components/top-nav/top-nav-item.svelte +234 -0
- package/dist/components/top-nav/top-nav-item.svelte.d.ts +41 -0
- package/dist/components/top-nav/top-nav.svelte +259 -0
- package/dist/components/top-nav/top-nav.svelte.d.ts +26 -0
- package/dist/components/top-nav/top-nav.svelte.js +18 -0
- package/dist/components/top-nav/types.d.ts +89 -0
- package/dist/components/top-nav/types.js +1 -0
- package/dist/components/tree-view/docs/llms.md +166 -1
- package/dist/components/tree-view/tree-view-item-content.svelte +41 -8
- package/dist/components/tree-view/tree-view-item.svelte +10 -1
- package/dist/components/tree-view/tree-view.svelte +17 -2
- package/dist/components/tree-view/tree-view.svelte.js +4 -2
- package/dist/components/tree-view/types.d.ts +4 -0
- package/dist/css/class-darkmode.css +1 -1
- package/dist/css/media-darkmode.css +1 -1
- package/dist/css/theme.css +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.js +14 -0
- package/package.json +2 -1
|
@@ -32,6 +32,8 @@
|
|
|
32
32
|
type = 'item',
|
|
33
33
|
open = (openItems instanceof Set ? openItems.has(id) : openItems.includes(id)) || undefined,
|
|
34
34
|
checked = (checkedItems instanceof Set ? checkedItems.has(id) : checkedItems.includes(id)) || undefined,
|
|
35
|
+
onCheckedChange,
|
|
36
|
+
onOpenChange,
|
|
35
37
|
children,
|
|
36
38
|
...attributes
|
|
37
39
|
}: TreeViewItemProps = $props();
|
|
@@ -61,6 +63,12 @@
|
|
|
61
63
|
get parentId() {
|
|
62
64
|
return itemContext?.id;
|
|
63
65
|
},
|
|
66
|
+
get onCheckedChange() {
|
|
67
|
+
return onCheckedChange;
|
|
68
|
+
},
|
|
69
|
+
get onOpenChange() {
|
|
70
|
+
return onOpenChange;
|
|
71
|
+
},
|
|
64
72
|
get open() {
|
|
65
73
|
return open;
|
|
66
74
|
},
|
|
@@ -190,7 +198,8 @@
|
|
|
190
198
|
outline: 2px solid var(--fs-focus-stroke-outer);
|
|
191
199
|
outline-offset: 2px;
|
|
192
200
|
}
|
|
193
|
-
|
|
201
|
+
/* Only the chevron of this item's own row, not the ones of the branches nested inside it. */
|
|
202
|
+
&.open > :global(.fs-tree-view-item-content .branch-indicator) {
|
|
194
203
|
rotate: 90deg;
|
|
195
204
|
}
|
|
196
205
|
}
|
|
@@ -89,12 +89,21 @@
|
|
|
89
89
|
await tick();
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
+
const wasChecked = new Map(state.TREE_NODES.entries().map(([nodeId, node]) => [nodeId, !!node.checked]));
|
|
93
|
+
|
|
92
94
|
if (selectionMode === 'single') {
|
|
93
95
|
traversalSyncSingleSelection(id, state.TREE_NODES, checkedItems);
|
|
94
|
-
|
|
96
|
+
} else {
|
|
97
|
+
traversalSync(id, state.TREE_NODES, checkedItems, checked);
|
|
95
98
|
}
|
|
96
99
|
|
|
97
|
-
|
|
100
|
+
// Every item the click reached reports its own change, the tree reports the resulting set.
|
|
101
|
+
for (const node of state.TREE_NODES.values()) {
|
|
102
|
+
if (!!node.checked !== wasChecked.get(node.id)) {
|
|
103
|
+
node.onCheckedChange?.(e as Event, { id: node.id, checked: !!node.checked });
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
treeViewContext.events.onCheckedChange(e as Event, Array.from(checkedItems));
|
|
98
107
|
},
|
|
99
108
|
openItem: (e, id) => {
|
|
100
109
|
if (openItems instanceof SvelteSet) {
|
|
@@ -105,6 +114,9 @@
|
|
|
105
114
|
const node = treeViewContext.state.TREE_NODES.get(id)!;
|
|
106
115
|
|
|
107
116
|
node.open = true;
|
|
117
|
+
|
|
118
|
+
node.onOpenChange?.(e as Event, { id, open: true });
|
|
119
|
+
treeViewContext.events.onOpenChange(e as Event, Array.from(openItems));
|
|
108
120
|
},
|
|
109
121
|
closeItem: (e, id) => {
|
|
110
122
|
const { state } = treeViewContext;
|
|
@@ -122,6 +134,9 @@
|
|
|
122
134
|
if (virtualizer && state.forceVirtualRender) {
|
|
123
135
|
state.forceVirtualRender = false;
|
|
124
136
|
}
|
|
137
|
+
|
|
138
|
+
node.onOpenChange?.(e as Event, { id, open: false });
|
|
139
|
+
treeViewContext.events.onOpenChange(e as Event, Array.from(openItems));
|
|
125
140
|
},
|
|
126
141
|
registerItem: (node) => {
|
|
127
142
|
treeViewContext.state.TREE_NODES.set(node.id, node);
|
|
@@ -102,10 +102,12 @@ export function traversalSyncSingleSelection(itemId, state, iterable) {
|
|
|
102
102
|
node.indeterminate = false;
|
|
103
103
|
if (iterable instanceof Set) {
|
|
104
104
|
iterable.clear();
|
|
105
|
-
|
|
105
|
+
if (node.checked)
|
|
106
|
+
iterable.add(node.id);
|
|
106
107
|
}
|
|
107
108
|
else if (Array.isArray(iterable)) {
|
|
108
109
|
iterable.length = 0;
|
|
109
|
-
|
|
110
|
+
if (node.checked)
|
|
111
|
+
iterable.push(node.id);
|
|
110
112
|
}
|
|
111
113
|
}
|
|
@@ -14,6 +14,8 @@ export type TreeViewNode = {
|
|
|
14
14
|
checked?: boolean;
|
|
15
15
|
indeterminate?: boolean;
|
|
16
16
|
open?: boolean;
|
|
17
|
+
onCheckedChange?: TreeViewItemProps['onCheckedChange'];
|
|
18
|
+
onOpenChange?: TreeViewItemProps['onOpenChange'];
|
|
17
19
|
};
|
|
18
20
|
export type TreeViewEvent<T extends Record<string, unknown> | Iterable<unknown>> = (e: Event, data: T) => void;
|
|
19
21
|
/**
|
|
@@ -179,6 +181,8 @@ export type TreeViewItemContext = {
|
|
|
179
181
|
readonly id: string;
|
|
180
182
|
readonly type: TreeViewItemType;
|
|
181
183
|
readonly parentId?: string;
|
|
184
|
+
readonly onCheckedChange?: TreeViewItemProps['onCheckedChange'];
|
|
185
|
+
readonly onOpenChange?: TreeViewItemProps['onOpenChange'];
|
|
182
186
|
open?: boolean;
|
|
183
187
|
checked?: boolean;
|
|
184
188
|
indeterminate?: boolean;
|
package/dist/css/theme.css
CHANGED
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
/* System */
|
|
159
159
|
--fs-system-attention: rgb(var(--fs-accent-base));
|
|
160
160
|
/* 👇 changed from original #f6f6f608 to color mix with 75% white */
|
|
161
|
-
--fs-system-
|
|
161
|
+
--fs-system-attention-bg: color-mix(in srgb, rgb(var(--fs-accent-base)), white 85%);
|
|
162
162
|
--fs-system-attention-solid-bg: #f7f7f7;
|
|
163
163
|
|
|
164
164
|
--fs-system-success: #0f7b0f;
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,10 @@ export { default as AutoSuggestBoxOption } from './components/auto-suggest-box/o
|
|
|
3
3
|
export { default as Avatar } from './components/avatar/avatar.svelte';
|
|
4
4
|
export { default as Badge } from './components/badge/badge.svelte';
|
|
5
5
|
export { default as BadgeIcon } from './components/badge/badge-icon.svelte';
|
|
6
|
+
export { default as Breadcrumb } from './components/breadcrumb/breadcrumb.svelte';
|
|
7
|
+
export { default as BreadcrumbItem } from './components/breadcrumb/breadcrumb-item.svelte';
|
|
8
|
+
export { default as BreadcrumbButton } from './components/breadcrumb/breadcrumb-button.svelte';
|
|
9
|
+
export { default as BreadcrumbDivider } from './components/breadcrumb/breadcrumb-divider.svelte';
|
|
6
10
|
export { default as Button } from './components/button/button.svelte';
|
|
7
11
|
export { default as SplitButton } from './components/button/split-button.svelte';
|
|
8
12
|
export { default as Card } from './components/card/card.svelte';
|
|
@@ -64,11 +68,15 @@ export { default as TableCell } from './components/table/table-cell.svelte';
|
|
|
64
68
|
export { default as TableSelectionCell } from './components/table/table-selection-cell.svelte';
|
|
65
69
|
export { default as TableCellLayout } from './components/table/table-cell-layout.svelte';
|
|
66
70
|
export { default as TableCellActions } from './components/table/table-cell-actions.svelte';
|
|
71
|
+
export { default as TabView } from './components/tab-view/tab-view.svelte';
|
|
72
|
+
export { default as TabViewTab } from './components/tab-view/tab-view-tab.svelte';
|
|
67
73
|
export { default as TextArea } from './components/textarea/textarea.svelte';
|
|
68
74
|
export { default as TextBox } from './components/text-box/text-box.svelte';
|
|
69
75
|
export { default as TextBoxButton } from './components/text-box/text-box-button.svelte';
|
|
70
76
|
export { default as TimePicker } from './components/time-picker/time-picker.svelte';
|
|
71
77
|
export { default as ToggleSwitch } from './components/toggle-switch/toggle-switch.svelte';
|
|
78
|
+
export { default as TopNav } from './components/top-nav/top-nav.svelte';
|
|
79
|
+
export { default as TopNavItem } from './components/top-nav/top-nav-item.svelte';
|
|
72
80
|
export { default as Tooltip } from './components/tooltip/tooltip.svelte';
|
|
73
81
|
export { default as TreeView } from './components/tree-view/tree-view.svelte';
|
|
74
82
|
export { default as TreeViewItem } from './components/tree-view/tree-view-item.svelte';
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,12 @@ export { default as Avatar } from './components/avatar/avatar.svelte';
|
|
|
9
9
|
export { default as Badge } from './components/badge/badge.svelte';
|
|
10
10
|
export { default as BadgeIcon } from './components/badge/badge-icon.svelte';
|
|
11
11
|
// End Badge Component
|
|
12
|
+
// Start Breadcrumb Component
|
|
13
|
+
export { default as Breadcrumb } from './components/breadcrumb/breadcrumb.svelte';
|
|
14
|
+
export { default as BreadcrumbItem } from './components/breadcrumb/breadcrumb-item.svelte';
|
|
15
|
+
export { default as BreadcrumbButton } from './components/breadcrumb/breadcrumb-button.svelte';
|
|
16
|
+
export { default as BreadcrumbDivider } from './components/breadcrumb/breadcrumb-divider.svelte';
|
|
17
|
+
// End Breadcrumb Component
|
|
12
18
|
// Start Button Component
|
|
13
19
|
export { default as Button } from './components/button/button.svelte';
|
|
14
20
|
export { default as SplitButton } from './components/button/split-button.svelte';
|
|
@@ -120,6 +126,10 @@ export { default as TableSelectionCell } from './components/table/table-selectio
|
|
|
120
126
|
export { default as TableCellLayout } from './components/table/table-cell-layout.svelte';
|
|
121
127
|
export { default as TableCellActions } from './components/table/table-cell-actions.svelte';
|
|
122
128
|
// End Table Component
|
|
129
|
+
// Start TabView Component
|
|
130
|
+
export { default as TabView } from './components/tab-view/tab-view.svelte';
|
|
131
|
+
export { default as TabViewTab } from './components/tab-view/tab-view-tab.svelte';
|
|
132
|
+
// End TabView Component
|
|
123
133
|
// Start TextArea Component
|
|
124
134
|
export { default as TextArea } from './components/textarea/textarea.svelte';
|
|
125
135
|
// End TextArea Component
|
|
@@ -133,6 +143,10 @@ export { default as TimePicker } from './components/time-picker/time-picker.svel
|
|
|
133
143
|
// Start ToggleSwitch Component
|
|
134
144
|
export { default as ToggleSwitch } from './components/toggle-switch/toggle-switch.svelte';
|
|
135
145
|
// End ToggleSwitch Component
|
|
146
|
+
// Start TopNav Component
|
|
147
|
+
export { default as TopNav } from './components/top-nav/top-nav.svelte';
|
|
148
|
+
export { default as TopNavItem } from './components/top-nav/top-nav-item.svelte';
|
|
149
|
+
// End TopNav Component
|
|
136
150
|
// Start Tooltip Component
|
|
137
151
|
export { default as Tooltip } from './components/tooltip/tooltip.svelte';
|
|
138
152
|
// End Tooltip Component
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fluentui-svelte",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Modern Fluent UI 2 Components for Svelte 5",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Jorge Acosta",
|
|
@@ -83,6 +83,7 @@
|
|
|
83
83
|
"@humanspeak/svelte-virtual-list": "^0.5.14",
|
|
84
84
|
"@inlang/paraglide-js": "^2.24.1",
|
|
85
85
|
"@inlang/paraglide-js-svelte": "^1.0.4",
|
|
86
|
+
"@jlacostaec/paraglide-markup-svelte": "0.1.0",
|
|
86
87
|
"@jlacostaec/propsmith": "^0.2.0",
|
|
87
88
|
"@playwright/test": "^1.62.1",
|
|
88
89
|
"@sveltejs/adapter-auto": "^7.0.1",
|