fluentui-svelte 0.2.0 → 0.3.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.
Files changed (84) hide show
  1. package/dist/components/auto-suggest-box/auto-suggest-box.svelte +68 -56
  2. package/dist/components/auto-suggest-box/docs/llms.md +46 -14
  3. package/dist/components/auto-suggest-box/option.svelte +2 -1
  4. package/dist/components/avatar/docs/llms.md +20 -14
  5. package/dist/components/badge/docs/llms.md +29 -16
  6. package/dist/components/button/button.svelte +11 -5
  7. package/dist/components/button/docs/llms.md +33 -24
  8. package/dist/components/calendar-date-picker/docs/llms.md +17 -7
  9. package/dist/components/calendar-view/calendar-view-header.svelte +2 -2
  10. package/dist/components/calendar-view/calendar-view-header.svelte.d.ts +2 -17
  11. package/dist/components/calendar-view/calendar-view-months.svelte +1 -1
  12. package/dist/components/calendar-view/calendar-view-years.svelte +1 -1
  13. package/dist/components/calendar-view/calendar-view.svelte +66 -52
  14. package/dist/components/calendar-view/docs/llms.md +42 -30
  15. package/dist/components/card/docs/llms.md +54 -34
  16. package/dist/components/checkbox/docs/llms.md +18 -12
  17. package/dist/components/date-picker/docs/llms.md +25 -15
  18. package/dist/components/dialog/dialog-surface.svelte +8 -8
  19. package/dist/components/dialog/dialog.svelte +41 -39
  20. package/dist/components/dialog/docs/llms.md +59 -34
  21. package/dist/components/divider/docs/llms.md +14 -9
  22. package/dist/components/dropdown/docs/llms.md +34 -15
  23. package/dist/components/dropdown/dropdown.svelte +4 -2
  24. package/dist/components/dropdown-select/docs/llms.md +28 -14
  25. package/dist/components/expander/docs/llms.md +19 -12
  26. package/dist/components/flyout/docs/llms.md +17 -11
  27. package/dist/components/hyperlink/docs/llms.md +11 -7
  28. package/dist/components/info-bar/docs/llms.md +15 -9
  29. package/dist/components/label/docs/llms.md +15 -11
  30. package/dist/components/list-view/docs/llms.md +34 -24
  31. package/dist/components/list-view/list-view-item.svelte +10 -4
  32. package/dist/components/list-view/list-view.svelte +68 -63
  33. package/dist/components/menu/context-menu-trigger.svelte +45 -40
  34. package/dist/components/menu/docs/llms.md +63 -34
  35. package/dist/components/menu/menu-item-checkbox.svelte +3 -1
  36. package/dist/components/menu/menu-item-radio.svelte +3 -1
  37. package/dist/components/menu/menu-item-switch.svelte +3 -1
  38. package/dist/components/menu/menu-item.svelte +5 -1
  39. package/dist/components/menu/menu-popover.svelte +21 -10
  40. package/dist/components/menu/menu-trigger.svelte +22 -9
  41. package/dist/components/menu/menu.svelte +98 -87
  42. package/dist/components/number-box/docs/llms.md +10 -6
  43. package/dist/components/persona/docs/llms.md +19 -14
  44. package/dist/components/progress-bar/docs/llms.md +18 -10
  45. package/dist/components/progress-ring/docs/llms.md +19 -12
  46. package/dist/components/radio-button/docs/llms.md +13 -8
  47. package/dist/components/skeleton/docs/llms.md +13 -8
  48. package/dist/components/slider/docs/llms.md +33 -21
  49. package/dist/components/slider/slider.svelte +13 -11
  50. package/dist/components/table/docs/llms.md +531 -0
  51. package/dist/components/table/table-body.svelte +31 -0
  52. package/dist/components/table/table-body.svelte.d.ts +25 -0
  53. package/dist/components/table/table-cell-actions.svelte +48 -0
  54. package/dist/components/table/table-cell-actions.svelte.d.ts +17 -0
  55. package/dist/components/table/table-cell-layout.svelte +88 -0
  56. package/dist/components/table/table-cell-layout.svelte.d.ts +14 -0
  57. package/dist/components/table/table-cell.svelte +74 -0
  58. package/dist/components/table/table-cell.svelte.d.ts +25 -0
  59. package/dist/components/table/table-header-cell.svelte +257 -0
  60. package/dist/components/table/table-header-cell.svelte.d.ts +25 -0
  61. package/dist/components/table/table-header.svelte +28 -0
  62. package/dist/components/table/table-header.svelte.d.ts +25 -0
  63. package/dist/components/table/table-row.svelte +57 -0
  64. package/dist/components/table/table-row.svelte.d.ts +25 -0
  65. package/dist/components/table/table-selection-cell.svelte +89 -0
  66. package/dist/components/table/table-selection-cell.svelte.d.ts +25 -0
  67. package/dist/components/table/table.svelte +189 -0
  68. package/dist/components/table/table.svelte.d.ts +49 -0
  69. package/dist/components/table/table.svelte.js +138 -0
  70. package/dist/components/table/types.d.ts +287 -0
  71. package/dist/components/table/types.js +1 -0
  72. package/dist/components/text-box/docs/llms.md +23 -17
  73. package/dist/components/textarea/docs/llms.md +16 -7
  74. package/dist/components/time-picker/docs/llms.md +20 -10
  75. package/dist/components/toggle-switch/docs/llms.md +13 -9
  76. package/dist/components/tooltip/docs/llms.md +24 -10
  77. package/dist/components/tree-view/docs/llms.md +53 -35
  78. package/dist/components/tree-view/tree-view-item-content.svelte +1 -1
  79. package/dist/components/tree-view/tree-view-item.svelte +3 -3
  80. package/dist/components/tree-view/tree-view.svelte +89 -93
  81. package/dist/index.d.ts +9 -0
  82. package/dist/index.js +11 -0
  83. package/dist/providers/fluentui-svelte/fluentui-svelte.svelte +15 -15
  84. package/package.json +1 -1
@@ -16,7 +16,7 @@
16
16
 
17
17
  const { config, methods } = TREE_VIEW_CONTEXT;
18
18
 
19
- const { size } = config;
19
+ const size = $derived(config.size);
20
20
 
21
21
  const { handleCheck } = methods;
22
22
  </script>
@@ -40,9 +40,9 @@
40
40
 
41
41
  const { config, methods } = context;
42
42
 
43
- const { size } = config;
43
+ const size = $derived(config.size);
44
44
 
45
- const itemState: TreeViewItemContext = {
45
+ const itemState: TreeViewItemContext = $state({
46
46
  get disabled() {
47
47
  return itemContext?.disabled ?? disabled;
48
48
  },
@@ -79,7 +79,7 @@
79
79
  set indeterminate(v) {
80
80
  indeterminate = v;
81
81
  }
82
- };
82
+ });
83
83
 
84
84
  setTreeViewItemContext(itemState);
85
85
 
@@ -35,106 +35,102 @@
35
35
  ...attributes
36
36
  }: TreeViewProps = $props();
37
37
 
38
- const config: TreeViewContext['config'] = $derived({
39
- navigationMode: CONTEXT?.config.navigationMode || navigationMode,
40
- size: CONTEXT?.config.size || size,
41
- virtualized: CONTEXT?.config.virtualized ?? !!virtualizer,
42
- virtualCount: CONTEXT?.config.virtualCount ?? virtualizer?.size
43
- });
44
-
45
38
  let forceVirtualRender = $state(false);
46
39
 
47
- const _state: TreeViewContext['state'] = {
48
- get openItems() {
49
- return openItems;
50
- },
51
- get checkedItems() {
52
- return checkedItems;
53
- },
54
- get selectionMode() {
55
- return selectionMode;
56
- },
57
- get TREE_NODES() {
58
- return CONTEXT?.state.TREE_NODES ?? TREE_NODES;
59
- },
60
- get forceVirtualRender() {
61
- return CONTEXT?.state.forceVirtualRender ?? forceVirtualRender;
62
- },
63
- set forceVirtualRender(v) {
64
- if (CONTEXT?.state.forceVirtualRender) {
65
- CONTEXT.state.forceVirtualRender = v;
66
- } else {
67
- forceVirtualRender = v;
68
- }
69
- }
70
- };
71
-
72
- const events: TreeViewContext['events'] = $derived({
73
- onCheckedChange: CONTEXT?.events.onCheckedChange ?? ((e, data) => onCheckedChange?.(e, data)),
74
- onOpenChange: CONTEXT?.events.onOpenChange ?? ((e, data) => onOpenChange?.(e, data))
75
- });
76
-
77
- const methods: TreeViewContext['methods'] = {
78
- handleCheck: async (e, id, checked) => {
79
- if (virtualizer) {
80
- _state.forceVirtualRender = true;
81
- await tick();
82
- }
83
-
84
- if (_state.selectionMode === 'single') {
85
- traversalSyncSingleSelection(id, _state.TREE_NODES, checkedItems);
86
- return;
40
+ const treeViewContext: TreeViewContext = $state({
41
+ config: {
42
+ get navigationMode() {
43
+ return CONTEXT?.config.navigationMode || navigationMode;
44
+ },
45
+ get size() {
46
+ return CONTEXT?.config.size || size;
47
+ },
48
+ get virtualized() {
49
+ return CONTEXT?.config.virtualized ?? !!virtualizer;
50
+ },
51
+ get virtualCount() {
52
+ return CONTEXT?.config.virtualCount ?? virtualizer?.size;
87
53
  }
88
-
89
- traversalSync(id, _state.TREE_NODES, checkedItems, checked);
90
54
  },
91
- openItem: (e, id) => {
92
- if (openItems instanceof SvelteSet) {
93
- openItems.add(id);
94
- } else {
95
- openItems = [...openItems, id];
96
- }
97
- const node = _state.TREE_NODES.get(id)!;
98
-
99
- node.open = true;
100
- },
101
- closeItem: (e, id) => {
102
- if (openItems instanceof SvelteSet) {
103
- openItems.delete(id);
104
- } else {
105
- openItems = openItems.filter((itemId) => itemId !== id);
106
- }
107
- const node = _state.TREE_NODES.get(id)!;
108
-
109
- node.open = false;
110
-
111
- // If
112
- if (virtualizer && _state.forceVirtualRender) {
113
- _state.forceVirtualRender = false;
55
+ state: {
56
+ get openItems() {
57
+ return openItems;
58
+ },
59
+ get checkedItems() {
60
+ return checkedItems;
61
+ },
62
+ get selectionMode() {
63
+ return selectionMode;
64
+ },
65
+ get TREE_NODES() {
66
+ return CONTEXT?.state.TREE_NODES ?? TREE_NODES;
67
+ },
68
+ get forceVirtualRender() {
69
+ return CONTEXT?.state.forceVirtualRender ?? forceVirtualRender;
70
+ },
71
+ set forceVirtualRender(v) {
72
+ if (CONTEXT) {
73
+ CONTEXT.state.forceVirtualRender = v;
74
+ } else {
75
+ forceVirtualRender = v;
76
+ }
114
77
  }
115
78
  },
116
- registerItem: (node) => {
117
- _state.TREE_NODES.set(node.id, node);
79
+ events: {
80
+ onCheckedChange: CONTEXT?.events.onCheckedChange ?? ((e, data) => onCheckedChange?.(e, data)),
81
+ onOpenChange: CONTEXT?.events.onOpenChange ?? ((e, data) => onOpenChange?.(e, data))
118
82
  },
119
- unregisterItem: (id) => {
120
- _state.TREE_NODES.delete(id);
121
- }
122
- };
123
-
124
- const treeViewContext: TreeViewContext = {
125
- get config() {
126
- return config;
127
- },
128
- get state() {
129
- return _state;
130
- },
131
- get events() {
132
- return events;
133
- },
134
- get methods() {
135
- return methods;
83
+ methods: {
84
+ handleCheck: async (e, id, checked) => {
85
+ const { state } = treeViewContext;
86
+
87
+ if (virtualizer) {
88
+ state.forceVirtualRender = true;
89
+ await tick();
90
+ }
91
+
92
+ if (selectionMode === 'single') {
93
+ traversalSyncSingleSelection(id, state.TREE_NODES, checkedItems);
94
+ return;
95
+ }
96
+
97
+ traversalSync(id, state.TREE_NODES, checkedItems, checked);
98
+ },
99
+ openItem: (e, id) => {
100
+ if (openItems instanceof SvelteSet) {
101
+ openItems.add(id);
102
+ } else {
103
+ openItems = [...openItems, id];
104
+ }
105
+ const node = treeViewContext.state.TREE_NODES.get(id)!;
106
+
107
+ node.open = true;
108
+ },
109
+ closeItem: (e, id) => {
110
+ const { state } = treeViewContext;
111
+
112
+ if (openItems instanceof SvelteSet) {
113
+ openItems.delete(id);
114
+ } else {
115
+ openItems = openItems.filter((itemId) => itemId !== id);
116
+ }
117
+ const node = state.TREE_NODES.get(id)!;
118
+
119
+ node.open = false;
120
+
121
+ // If
122
+ if (virtualizer && state.forceVirtualRender) {
123
+ state.forceVirtualRender = false;
124
+ }
125
+ },
126
+ registerItem: (node) => {
127
+ treeViewContext.state.TREE_NODES.set(node.id, node);
128
+ },
129
+ unregisterItem: (id) => {
130
+ treeViewContext.state.TREE_NODES.delete(id);
131
+ }
136
132
  }
137
- };
133
+ });
138
134
 
139
135
  setTreeViewContext(treeViewContext);
140
136
 
@@ -194,7 +190,7 @@
194
190
  </script>
195
191
 
196
192
  <!-- Render only when necessary (virtualizer perf) -->
197
- {#if _state.forceVirtualRender || (config.virtualized && (!IS_SUB_TREE || ITEM_CONTEXT?.open)) || !config.virtualized}
193
+ {#if treeViewContext.state.forceVirtualRender || (treeViewContext.config.virtualized && (!IS_SUB_TREE || ITEM_CONTEXT?.open)) || !treeViewContext.config.virtualized}
198
194
  <ul
199
195
  class="fs-tree-view"
200
196
  role={IS_SUB_TREE ? 'group' : 'tree'}
package/dist/index.d.ts CHANGED
@@ -55,6 +55,15 @@ export { default as ProgressRing } from './components/progress-ring/progress-rin
55
55
  export { default as RadioButton } from './components/radio-button/radio-button.svelte';
56
56
  export { default as Skeleton } from './components/skeleton/skeleton.svelte';
57
57
  export { default as Slider } from './components/slider/slider.svelte';
58
+ export { default as Table } from './components/table/table.svelte';
59
+ export { default as TableHeader } from './components/table/table-header.svelte';
60
+ export { default as TableHeaderCell } from './components/table/table-header-cell.svelte';
61
+ export { default as TableBody } from './components/table/table-body.svelte';
62
+ export { default as TableRow } from './components/table/table-row.svelte';
63
+ export { default as TableCell } from './components/table/table-cell.svelte';
64
+ export { default as TableSelectionCell } from './components/table/table-selection-cell.svelte';
65
+ export { default as TableCellLayout } from './components/table/table-cell-layout.svelte';
66
+ export { default as TableCellActions } from './components/table/table-cell-actions.svelte';
58
67
  export { default as TextArea } from './components/textarea/textarea.svelte';
59
68
  export { default as TextBox } from './components/text-box/text-box.svelte';
60
69
  export { default as TextBoxButton } from './components/text-box/text-box-button.svelte';
package/dist/index.js CHANGED
@@ -109,6 +109,17 @@ export { default as Skeleton } from './components/skeleton/skeleton.svelte';
109
109
  // Start Slider Component
110
110
  export { default as Slider } from './components/slider/slider.svelte';
111
111
  // End Slider Component
112
+ // Start Table Component
113
+ export { default as Table } from './components/table/table.svelte';
114
+ export { default as TableHeader } from './components/table/table-header.svelte';
115
+ export { default as TableHeaderCell } from './components/table/table-header-cell.svelte';
116
+ export { default as TableBody } from './components/table/table-body.svelte';
117
+ export { default as TableRow } from './components/table/table-row.svelte';
118
+ export { default as TableCell } from './components/table/table-cell.svelte';
119
+ export { default as TableSelectionCell } from './components/table/table-selection-cell.svelte';
120
+ export { default as TableCellLayout } from './components/table/table-cell-layout.svelte';
121
+ export { default as TableCellActions } from './components/table/table-cell-actions.svelte';
122
+ // End Table Component
112
123
  // Start TextArea Component
113
124
  export { default as TextArea } from './components/textarea/textarea.svelte';
114
125
  // End TextArea Component
@@ -20,21 +20,19 @@
20
20
  // Syncing
21
21
  let reducedMotion = $derived(userReducedMotion.current ?? prefersReducedMotion.current);
22
22
 
23
- const _state: FSProviderContext['state'] = {
24
- get tabspotInstance() {
25
- return tabspotInstance;
26
- },
27
- get reducedMotion() {
28
- return reducedMotion;
29
- },
30
- get theme() {
31
- return mode.current;
32
- }
33
- };
34
-
35
- setGlobalFSContext({
23
+ const context: FSProviderContext = $state({
36
24
  config: null,
37
- state: _state,
25
+ state: {
26
+ get tabspotInstance() {
27
+ return tabspotInstance;
28
+ },
29
+ get reducedMotion() {
30
+ return reducedMotion;
31
+ },
32
+ get theme() {
33
+ return mode.current;
34
+ }
35
+ },
38
36
  events: null,
39
37
  methods: {
40
38
  setReducedMotion: (value) => {
@@ -46,6 +44,8 @@
46
44
  }
47
45
  });
48
46
 
47
+ setGlobalFSContext(context);
48
+
49
49
  onMount(() => {
50
50
  tabspotInstance ??= tabspot();
51
51
 
@@ -57,7 +57,7 @@
57
57
  $effect(() => {
58
58
  const root = document.documentElement;
59
59
 
60
- root.dataset.fsReducedMotion = String(_state.reducedMotion);
60
+ root.dataset.fsReducedMotion = String(context.state.reducedMotion);
61
61
 
62
62
  return () => {
63
63
  delete root.dataset.fsReducedMotion;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluentui-svelte",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Modern Fluent UI 2 Components for Svelte 5",
5
5
  "author": {
6
6
  "name": "Jorge Acosta",