@proyecto-viviana/solid-stately 0.2.4 → 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.
- package/LICENSE +21 -0
- package/README.md +30 -283
- package/dist/autocomplete/createAutocompleteState.d.ts +3 -2
- package/dist/autocomplete/index.d.ts +1 -1
- package/dist/calendar/createCalendarState.d.ts +22 -7
- package/dist/calendar/createDateFieldState.d.ts +30 -7
- package/dist/calendar/createDatePickerState.d.ts +60 -0
- package/dist/calendar/createRangeCalendarState.d.ts +27 -8
- package/dist/calendar/createTimeFieldState.d.ts +34 -7
- package/dist/calendar/index.d.ts +7 -6
- package/dist/checkbox/createCheckboxGroupState.d.ts +12 -3
- package/dist/checkbox/index.d.ts +1 -1
- package/dist/collections/ListCollection.d.ts +1 -1
- package/dist/collections/createListState.d.ts +8 -8
- package/dist/collections/createMenuState.d.ts +7 -7
- package/dist/collections/createSelectionState.d.ts +5 -5
- package/dist/collections/index.d.ts +5 -5
- package/dist/collections/types.d.ts +23 -12
- package/dist/color/Color.d.ts +1 -1
- package/dist/color/createColorAreaState.d.ts +4 -2
- package/dist/color/createColorFieldState.d.ts +38 -12
- package/dist/color/createColorSliderState.d.ts +9 -2
- package/dist/color/createColorWheelState.d.ts +13 -2
- package/dist/color/getColorChannels.d.ts +20 -0
- package/dist/color/index.d.ts +6 -6
- package/dist/color/types.d.ts +4 -4
- package/dist/combobox/createComboBoxState.d.ts +27 -13
- package/dist/combobox/index.d.ts +1 -1
- package/dist/data/createAsyncList.d.ts +111 -0
- package/dist/data/createListData.d.ts +65 -0
- package/dist/data/createTreeData.d.ts +65 -0
- package/dist/data/index.d.ts +3 -0
- package/dist/datepicker/index.d.ts +8 -0
- package/dist/disclosure/createDisclosureState.d.ts +2 -2
- package/dist/disclosure/index.d.ts +1 -1
- package/dist/dnd/createDragState.d.ts +2 -2
- package/dist/dnd/createDraggableCollectionState.d.ts +2 -2
- package/dist/dnd/createDropState.d.ts +2 -2
- package/dist/dnd/createDroppableCollectionState.d.ts +3 -3
- package/dist/dnd/index.d.ts +5 -5
- package/dist/dnd/types.d.ts +16 -16
- package/dist/form/createFormValidationState.d.ts +3 -3
- package/dist/form/index.d.ts +1 -1
- package/dist/grid/createGridState.d.ts +2 -2
- package/dist/grid/index.d.ts +2 -2
- package/dist/grid/types.d.ts +17 -11
- package/dist/index.d.ts +31 -25
- package/dist/index.js +7990 -6264
- package/dist/index.js.map +1 -7
- package/dist/menu/index.d.ts +8 -0
- package/dist/numberfield/createNumberFieldState.d.ts +2 -2
- package/dist/numberfield/index.d.ts +1 -1
- package/dist/overlays/createOverlayTriggerState.d.ts +2 -2
- package/dist/overlays/index.d.ts +1 -1
- package/dist/radio/createRadioGroupState.d.ts +13 -4
- package/dist/radio/index.d.ts +1 -1
- package/dist/searchfield/createSearchFieldState.d.ts +2 -2
- package/dist/searchfield/index.d.ts +2 -2
- package/dist/select/createSelectState.d.ts +20 -3
- package/dist/select/index.d.ts +1 -1
- package/dist/selection/index.d.ts +11 -0
- package/dist/slider/createSliderState.d.ts +3 -3
- package/dist/slider/index.d.ts +2 -2
- package/dist/steplist/createStepListState.d.ts +48 -0
- package/dist/steplist/index.d.ts +1 -0
- package/dist/table/TableCollection.d.ts +3 -3
- package/dist/table/createTableColumnResizeState.d.ts +54 -0
- package/dist/table/createTableState.d.ts +2 -2
- package/dist/table/index.d.ts +5 -3
- package/dist/table/types.d.ts +10 -10
- package/dist/tabs/createTabListState.d.ts +5 -5
- package/dist/tabs/index.d.ts +1 -1
- package/dist/textfield/createTextFieldState.d.ts +2 -2
- package/dist/textfield/index.d.ts +1 -1
- package/dist/toast/createToastState.d.ts +15 -3
- package/dist/toast/index.d.ts +1 -1
- package/dist/toggle/createToggleGroupState.d.ts +45 -0
- package/dist/toggle/createToggleState.d.ts +2 -2
- package/dist/toggle/index.d.ts +2 -1
- package/dist/tooltip/createTooltipTriggerState.d.ts +2 -2
- package/dist/tooltip/index.d.ts +1 -1
- package/dist/tree/TreeCollection.d.ts +5 -4
- package/dist/tree/createTreeState.d.ts +2 -2
- package/dist/tree/index.d.ts +3 -3
- package/dist/tree/types.d.ts +19 -13
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/reactivity.d.ts +1 -1
- package/package.json +30 -30
- package/src/autocomplete/createAutocompleteState.d.ts +19 -17
- package/src/autocomplete/createAutocompleteState.ts +25 -32
- package/src/autocomplete/index.d.ts +6 -2
- package/src/autocomplete/index.ts +1 -1
- package/src/calendar/createCalendarState.d.ts +139 -117
- package/src/calendar/createCalendarState.ts +221 -74
- package/src/calendar/createDateFieldState.d.ts +130 -95
- package/src/calendar/createDateFieldState.ts +286 -151
- package/src/calendar/createDatePickerState.ts +347 -0
- package/src/calendar/createRangeCalendarState.d.ts +154 -129
- package/src/calendar/createRangeCalendarState.ts +293 -79
- package/src/calendar/createTimeFieldState.d.ts +81 -79
- package/src/calendar/createTimeFieldState.ts +187 -108
- package/src/calendar/index.d.ts +80 -7
- package/src/calendar/index.ts +21 -12
- package/src/checkbox/createCheckboxGroupState.d.ts +57 -55
- package/src/checkbox/createCheckboxGroupState.ts +57 -30
- package/src/checkbox/index.d.ts +6 -2
- package/src/checkbox/index.ts +1 -1
- package/src/collections/ListCollection.d.ts +25 -22
- package/src/collections/ListCollection.ts +152 -146
- package/src/collections/createListState.d.ts +73 -58
- package/src/collections/createListState.ts +267 -264
- package/src/collections/createMenuState.d.ts +36 -31
- package/src/collections/createMenuState.ts +112 -106
- package/src/collections/createSelectionState.d.ts +78 -65
- package/src/collections/createSelectionState.ts +340 -336
- package/src/collections/index.d.ts +38 -6
- package/src/collections/index.ts +41 -46
- package/src/collections/types.d.ts +101 -101
- package/src/collections/types.ts +181 -169
- package/src/color/Color.d.ts +20 -5
- package/src/color/Color.ts +1054 -951
- package/src/color/createColorAreaState.d.ts +67 -65
- package/src/color/createColorAreaState.ts +301 -293
- package/src/color/createColorFieldState.d.ts +46 -44
- package/src/color/createColorFieldState.ts +428 -292
- package/src/color/createColorSliderState.d.ts +58 -56
- package/src/color/createColorSliderState.ts +272 -241
- package/src/color/createColorWheelState.d.ts +42 -40
- package/src/color/createColorWheelState.ts +248 -211
- package/src/color/getColorChannels.ts +36 -0
- package/src/color/index.d.ts +36 -7
- package/src/color/index.ts +44 -47
- package/src/color/types.d.ts +68 -63
- package/src/color/types.ts +119 -127
- package/src/combobox/createComboBoxState.d.ts +107 -105
- package/src/combobox/createComboBoxState.ts +790 -703
- package/src/combobox/index.d.ts +10 -2
- package/src/combobox/index.ts +13 -13
- package/src/data/createAsyncList.ts +403 -0
- package/src/data/createListData.ts +298 -0
- package/src/data/createTreeData.ts +646 -0
- package/src/data/index.ts +25 -0
- package/src/datepicker/index.ts +32 -0
- package/src/disclosure/createDisclosureState.d.ts +47 -43
- package/src/disclosure/createDisclosureState.ts +9 -23
- package/src/disclosure/index.d.ts +10 -2
- package/src/disclosure/index.ts +1 -1
- package/src/dnd/createDragState.d.ts +51 -42
- package/src/dnd/createDragState.ts +151 -153
- package/src/dnd/createDraggableCollectionState.d.ts +52 -41
- package/src/dnd/createDraggableCollectionState.ts +158 -165
- package/src/dnd/createDropState.d.ts +64 -45
- package/src/dnd/createDropState.ts +202 -212
- package/src/dnd/createDroppableCollectionState.d.ts +88 -59
- package/src/dnd/createDroppableCollectionState.ts +354 -357
- package/src/dnd/index.d.ts +54 -6
- package/src/dnd/index.ts +63 -76
- package/src/dnd/types.d.ts +167 -156
- package/src/dnd/types.ts +316 -317
- package/src/form/createFormValidationState.d.ts +47 -45
- package/src/form/createFormValidationState.ts +356 -389
- package/src/form/index.d.ts +16 -2
- package/src/form/index.ts +15 -15
- package/src/grid/createGridState.d.ts +7 -4
- package/src/grid/createGridState.ts +44 -51
- package/src/grid/index.d.ts +3 -3
- package/src/grid/index.ts +2 -8
- package/src/grid/types.d.ts +136 -129
- package/src/grid/types.ts +24 -17
- package/src/index.d.ts +310 -26
- package/src/index.ts +87 -79
- package/src/menu/index.ts +17 -0
- package/src/numberfield/createNumberFieldState.d.ts +56 -54
- package/src/numberfield/createNumberFieldState.ts +422 -383
- package/src/numberfield/index.d.ts +6 -2
- package/src/numberfield/index.ts +5 -5
- package/src/overlays/createOverlayTriggerState.d.ts +22 -20
- package/src/overlays/createOverlayTriggerState.ts +66 -67
- package/src/overlays/index.d.ts +6 -2
- package/src/overlays/index.ts +5 -5
- package/src/radio/createRadioGroupState.d.ts +54 -52
- package/src/radio/createRadioGroupState.ts +66 -30
- package/src/radio/index.d.ts +7 -2
- package/src/radio/index.ts +1 -1
- package/src/searchfield/createSearchFieldState.d.ts +16 -14
- package/src/searchfield/createSearchFieldState.ts +56 -62
- package/src/searchfield/index.d.ts +3 -3
- package/src/searchfield/index.ts +2 -5
- package/src/select/createSelectState.d.ts +63 -61
- package/src/select/createSelectState.ts +290 -181
- package/src/select/index.d.ts +2 -2
- package/src/select/index.ts +1 -5
- package/src/selection/index.ts +27 -0
- package/src/slider/createSliderState.d.ts +60 -60
- package/src/slider/createSliderState.ts +233 -211
- package/src/slider/index.d.ts +3 -3
- package/src/slider/index.ts +2 -6
- package/src/ssr/index.d.ts +1 -1
- package/src/ssr/index.ts +2 -2
- package/src/steplist/createStepListState.ts +191 -0
- package/src/steplist/index.ts +5 -0
- package/src/table/TableCollection.d.ts +42 -40
- package/src/table/TableCollection.ts +61 -64
- package/src/table/createTableColumnResizeState.ts +242 -0
- package/src/table/createTableState.d.ts +7 -4
- package/src/table/createTableState.ts +10 -7
- package/src/table/index.d.ts +14 -4
- package/src/table/index.ts +10 -3
- package/src/table/types.d.ts +98 -92
- package/src/table/types.ts +17 -13
- package/src/tabs/createTabListState.d.ts +59 -57
- package/src/tabs/createTabListState.ts +58 -39
- package/src/tabs/index.d.ts +8 -2
- package/src/tabs/index.ts +1 -1
- package/src/textfield/createTextFieldState.d.ts +16 -14
- package/src/textfield/createTextFieldState.ts +7 -18
- package/src/textfield/index.d.ts +6 -2
- package/src/textfield/index.ts +1 -1
- package/src/toast/createToastState.d.ts +92 -81
- package/src/toast/createToastState.ts +56 -44
- package/src/toast/index.d.ts +12 -2
- package/src/toast/index.ts +1 -1
- package/src/toggle/createToggleGroupState.ts +117 -0
- package/src/toggle/createToggleState.d.ts +19 -19
- package/src/toggle/createToggleState.ts +2 -16
- package/src/toggle/index.d.ts +2 -2
- package/src/toggle/index.ts +6 -4
- package/src/tooltip/createTooltipTriggerState.d.ts +17 -17
- package/src/tooltip/createTooltipTriggerState.ts +184 -183
- package/src/tooltip/index.d.ts +7 -2
- package/src/tooltip/index.ts +6 -6
- package/src/tree/TreeCollection.d.ts +26 -23
- package/src/tree/TreeCollection.ts +215 -175
- package/src/tree/createTreeState.d.ts +7 -4
- package/src/tree/createTreeState.ts +390 -392
- package/src/tree/index.d.ts +10 -4
- package/src/tree/index.ts +13 -13
- package/src/tree/types.d.ts +131 -126
- package/src/tree/types.ts +183 -174
- package/src/utils/index.d.ts +2 -2
- package/src/utils/index.ts +1 -1
- package/src/utils/reactivity.d.ts +2 -2
- package/src/utils/reactivity.ts +3 -3
|
@@ -3,20 +3,20 @@
|
|
|
3
3
|
* Based on @react-stately/table/useTableState.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { createMemo, type Accessor } from
|
|
7
|
-
import { createGridState } from
|
|
8
|
-
import type { Key } from
|
|
6
|
+
import { createMemo, type Accessor } from "solid-js";
|
|
7
|
+
import { createGridState } from "../grid/createGridState";
|
|
8
|
+
import type { Key } from "../collections/types";
|
|
9
9
|
import type {
|
|
10
10
|
TableState,
|
|
11
11
|
TableStateOptions,
|
|
12
12
|
TableCollection,
|
|
13
13
|
SortDescriptor,
|
|
14
14
|
SortDirection,
|
|
15
|
-
} from
|
|
15
|
+
} from "./types";
|
|
16
16
|
|
|
17
17
|
const OPPOSITE_SORT_DIRECTION: Record<SortDirection, SortDirection> = {
|
|
18
|
-
ascending:
|
|
19
|
-
descending:
|
|
18
|
+
ascending: "descending",
|
|
19
|
+
descending: "ascending",
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -66,7 +66,7 @@ export function createTableState<
|
|
|
66
66
|
newDirection = OPPOSITE_SORT_DIRECTION[currentSort.direction];
|
|
67
67
|
} else {
|
|
68
68
|
// Default to ascending for new column
|
|
69
|
-
newDirection =
|
|
69
|
+
newDirection = "ascending";
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
opts.onSortChange?.({
|
|
@@ -98,6 +98,9 @@ export function createTableState<
|
|
|
98
98
|
get selectionMode() {
|
|
99
99
|
return gridState.selectionMode;
|
|
100
100
|
},
|
|
101
|
+
get selectionBehavior() {
|
|
102
|
+
return gridState.selectionBehavior;
|
|
103
|
+
},
|
|
101
104
|
get selectedKeys() {
|
|
102
105
|
return gridState.selectedKeys;
|
|
103
106
|
},
|
package/src/table/index.d.ts
CHANGED
|
@@ -2,7 +2,17 @@
|
|
|
2
2
|
* Table state management module.
|
|
3
3
|
* Provides state hooks for Table components.
|
|
4
4
|
*/
|
|
5
|
-
export { createTableState } from
|
|
6
|
-
export { TableCollection, createTableCollection } from
|
|
7
|
-
export type {
|
|
8
|
-
|
|
5
|
+
export { createTableState } from "./createTableState";
|
|
6
|
+
export { TableCollection, createTableCollection } from "./TableCollection";
|
|
7
|
+
export type {
|
|
8
|
+
TableState,
|
|
9
|
+
TableStateOptions,
|
|
10
|
+
TableCollection as ITableCollection,
|
|
11
|
+
SortDescriptor,
|
|
12
|
+
SortDirection,
|
|
13
|
+
Sortable,
|
|
14
|
+
ColumnDefinition,
|
|
15
|
+
RowDefinition,
|
|
16
|
+
TableCollectionOptions,
|
|
17
|
+
} from "./types";
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
package/src/table/index.ts
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* Provides state hooks for Table components.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
export { createTableState } from
|
|
7
|
-
export {
|
|
6
|
+
export { createTableState } from "./createTableState";
|
|
7
|
+
export { createTableColumnResizeState } from "./createTableColumnResizeState";
|
|
8
|
+
export { TableCollection, createTableCollection } from "./TableCollection";
|
|
8
9
|
export type {
|
|
9
10
|
TableState,
|
|
10
11
|
TableStateOptions,
|
|
@@ -15,4 +16,10 @@ export type {
|
|
|
15
16
|
ColumnDefinition,
|
|
16
17
|
RowDefinition,
|
|
17
18
|
TableCollectionOptions,
|
|
18
|
-
} from
|
|
19
|
+
} from "./types";
|
|
20
|
+
export type {
|
|
21
|
+
ColumnSize,
|
|
22
|
+
ColumnResizeDefinition,
|
|
23
|
+
TableColumnResizeStateProps,
|
|
24
|
+
TableColumnResizeState,
|
|
25
|
+
} from "./createTableColumnResizeState";
|
package/src/table/types.d.ts
CHANGED
|
@@ -2,138 +2,144 @@
|
|
|
2
2
|
* Table state types for Table components.
|
|
3
3
|
* Based on @react-stately/table and @react-types/table.
|
|
4
4
|
*/
|
|
5
|
-
import type { Key } from
|
|
6
|
-
import type { GridState, GridCollection, GridNode } from
|
|
5
|
+
import type { Key } from "../collections/types";
|
|
6
|
+
import type { GridState, GridCollection, GridNode } from "../grid/types";
|
|
7
7
|
/**
|
|
8
8
|
* Sort direction for table columns.
|
|
9
9
|
*/
|
|
10
|
-
export type SortDirection =
|
|
10
|
+
export type SortDirection = "ascending" | "descending";
|
|
11
11
|
/**
|
|
12
12
|
* Describes which column to sort by and in what direction.
|
|
13
13
|
*/
|
|
14
14
|
export interface SortDescriptor {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
/** The key of the column to sort by. */
|
|
16
|
+
column: Key;
|
|
17
|
+
/** The direction to sort by. */
|
|
18
|
+
direction: SortDirection;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* Interface for sortable components.
|
|
22
22
|
*/
|
|
23
23
|
export interface Sortable {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
/** The current sorted column and direction. */
|
|
25
|
+
sortDescriptor?: SortDescriptor;
|
|
26
|
+
/** Handler that is called when the sorted column or direction changes. */
|
|
27
|
+
onSortChange?: (descriptor: SortDescriptor) => void;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* A collection of table rows and columns.
|
|
31
31
|
* Extends GridCollection with table-specific metadata.
|
|
32
32
|
*/
|
|
33
33
|
export interface TableCollection<T = unknown> extends GridCollection<T> {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
/** A list of header row nodes in the table. */
|
|
35
|
+
readonly headerRows: GridNode<T>[];
|
|
36
|
+
/** A list of column nodes in the table. */
|
|
37
|
+
readonly columns: GridNode<T>[];
|
|
38
|
+
/** A set of column keys that serve as the row header. */
|
|
39
|
+
readonly rowHeaderColumnKeys: Set<Key>;
|
|
40
|
+
/** The node that makes up the header of the table. */
|
|
41
|
+
readonly head?: GridNode<T>;
|
|
42
|
+
/** The node that makes up the body of the table. */
|
|
43
|
+
readonly body: GridNode<T>;
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
46
|
* State for a table component.
|
|
47
47
|
* Extends GridState with table-specific functionality.
|
|
48
48
|
*/
|
|
49
|
-
export interface TableState<T, C extends TableCollection<T> = TableCollection<T>> extends Omit<
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
49
|
+
export interface TableState<T, C extends TableCollection<T> = TableCollection<T>> extends Omit<
|
|
50
|
+
GridState<T, GridCollection<T>>,
|
|
51
|
+
"collection"
|
|
52
|
+
> {
|
|
53
|
+
/** The table collection. */
|
|
54
|
+
readonly collection: C;
|
|
55
|
+
/** Whether the row selection checkboxes should be displayed. */
|
|
56
|
+
readonly showSelectionCheckboxes: boolean;
|
|
57
|
+
/** The current sorted column and direction. */
|
|
58
|
+
readonly sortDescriptor: SortDescriptor | null;
|
|
59
|
+
/** Sort by the given column and direction. */
|
|
60
|
+
sort(columnKey: Key, direction?: SortDirection): void;
|
|
58
61
|
}
|
|
59
62
|
/**
|
|
60
63
|
* Options for creating table state.
|
|
61
64
|
*/
|
|
62
|
-
export interface TableStateOptions<
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
65
|
+
export interface TableStateOptions<
|
|
66
|
+
T,
|
|
67
|
+
C extends TableCollection<T> = TableCollection<T>,
|
|
68
|
+
> extends Sortable {
|
|
69
|
+
/** The table collection. */
|
|
70
|
+
collection: C;
|
|
71
|
+
/** Keys of disabled rows. */
|
|
72
|
+
disabledKeys?: Iterable<Key>;
|
|
73
|
+
/** Focus mode: 'row' or 'cell'. */
|
|
74
|
+
focusMode?: "row" | "cell";
|
|
75
|
+
/** Selection mode. */
|
|
76
|
+
selectionMode?: "none" | "single" | "multiple";
|
|
77
|
+
/** Selection behavior. */
|
|
78
|
+
selectionBehavior?: "toggle" | "replace";
|
|
79
|
+
/** Whether empty selection is disallowed. */
|
|
80
|
+
disallowEmptySelection?: boolean;
|
|
81
|
+
/** Currently selected keys (controlled). */
|
|
82
|
+
selectedKeys?: "all" | Iterable<Key>;
|
|
83
|
+
/** Default selected keys (uncontrolled). */
|
|
84
|
+
defaultSelectedKeys?: "all" | Iterable<Key>;
|
|
85
|
+
/** Handler for selection changes. */
|
|
86
|
+
onSelectionChange?: (keys: "all" | Set<Key>) => void;
|
|
87
|
+
/** Whether the row selection checkboxes should be displayed. */
|
|
88
|
+
showSelectionCheckboxes?: boolean;
|
|
83
89
|
}
|
|
84
90
|
/**
|
|
85
91
|
* Column definition for building table collections.
|
|
86
92
|
*/
|
|
87
93
|
export interface ColumnDefinition<T = unknown> {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
94
|
+
/** The key for the column. */
|
|
95
|
+
key: Key;
|
|
96
|
+
/** The display name or rendered content. */
|
|
97
|
+
name?: string;
|
|
98
|
+
/** Text value for accessibility. */
|
|
99
|
+
textValue?: string;
|
|
100
|
+
/** Whether this column is a row header. */
|
|
101
|
+
isRowHeader?: boolean;
|
|
102
|
+
/** Whether this column allows sorting. */
|
|
103
|
+
allowsSorting?: boolean;
|
|
104
|
+
/** Child columns (for column groups). */
|
|
105
|
+
children?: ColumnDefinition<T>[];
|
|
106
|
+
/** Width of the column. */
|
|
107
|
+
width?: number | string;
|
|
108
|
+
/** Minimum width of the column. */
|
|
109
|
+
minWidth?: number;
|
|
110
|
+
/** Maximum width of the column. */
|
|
111
|
+
maxWidth?: number;
|
|
106
112
|
}
|
|
107
113
|
/**
|
|
108
114
|
* Row definition for building table collections.
|
|
109
115
|
*/
|
|
110
116
|
export interface RowDefinition<T = unknown> {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
117
|
+
/** The key for the row. */
|
|
118
|
+
key: Key;
|
|
119
|
+
/** The data value for the row. */
|
|
120
|
+
value: T;
|
|
121
|
+
/** Text value for accessibility/search. */
|
|
122
|
+
textValue?: string;
|
|
123
|
+
/** Whether this row has child rows (for tree tables). */
|
|
124
|
+
hasChildRows?: boolean;
|
|
125
|
+
/** Child rows (for tree tables). */
|
|
126
|
+
childRows?: RowDefinition<T>[];
|
|
121
127
|
}
|
|
122
128
|
/**
|
|
123
129
|
* Options for building a table collection.
|
|
124
130
|
*/
|
|
125
131
|
export interface TableCollectionOptions<T = unknown> {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
132
|
+
/** Column definitions. */
|
|
133
|
+
columns: ColumnDefinition<T>[];
|
|
134
|
+
/** Row definitions or data items. */
|
|
135
|
+
rows: RowDefinition<T>[] | T[];
|
|
136
|
+
/** Function to get the key from a data item. */
|
|
137
|
+
getKey?: (item: T) => Key;
|
|
138
|
+
/** Function to get the text value from a data item. */
|
|
139
|
+
getTextValue?: (item: T, column: ColumnDefinition<T>) => string;
|
|
140
|
+
/** Whether to show selection checkboxes. */
|
|
141
|
+
showSelectionCheckboxes?: boolean;
|
|
142
|
+
/** Set of column keys that serve as row headers. */
|
|
143
|
+
rowHeaderColumnKeys?: Set<Key>;
|
|
138
144
|
}
|
|
139
|
-
//# sourceMappingURL=types.d.ts.map
|
|
145
|
+
//# sourceMappingURL=types.d.ts.map
|
package/src/table/types.ts
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
* Based on @react-stately/table and @react-types/table.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type { Key, FocusStrategy } from
|
|
7
|
-
import type { GridState, GridCollection, GridNode, GridNodeType } from
|
|
6
|
+
import type { Key, FocusStrategy } from "../collections/types";
|
|
7
|
+
import type { GridState, GridCollection, GridNode, GridNodeType } from "../grid/types";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Sort direction for table columns.
|
|
11
11
|
*/
|
|
12
|
-
export type SortDirection =
|
|
12
|
+
export type SortDirection = "ascending" | "descending";
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Describes which column to sort by and in what direction.
|
|
@@ -52,8 +52,10 @@ export interface TableCollection<T = unknown> extends GridCollection<T> {
|
|
|
52
52
|
* State for a table component.
|
|
53
53
|
* Extends GridState with table-specific functionality.
|
|
54
54
|
*/
|
|
55
|
-
export interface TableState<T, C extends TableCollection<T> = TableCollection<T>>
|
|
56
|
-
|
|
55
|
+
export interface TableState<T, C extends TableCollection<T> = TableCollection<T>> extends Omit<
|
|
56
|
+
GridState<T, GridCollection<T>>,
|
|
57
|
+
"collection"
|
|
58
|
+
> {
|
|
57
59
|
/** The table collection. */
|
|
58
60
|
readonly collection: C;
|
|
59
61
|
/** Whether the row selection checkboxes should be displayed. */
|
|
@@ -67,26 +69,28 @@ export interface TableState<T, C extends TableCollection<T> = TableCollection<T>
|
|
|
67
69
|
/**
|
|
68
70
|
* Options for creating table state.
|
|
69
71
|
*/
|
|
70
|
-
export interface TableStateOptions<
|
|
71
|
-
|
|
72
|
+
export interface TableStateOptions<
|
|
73
|
+
T,
|
|
74
|
+
C extends TableCollection<T> = TableCollection<T>,
|
|
75
|
+
> extends Sortable {
|
|
72
76
|
/** The table collection. */
|
|
73
77
|
collection: C;
|
|
74
78
|
/** Keys of disabled rows. */
|
|
75
79
|
disabledKeys?: Iterable<Key>;
|
|
76
80
|
/** Focus mode: 'row' or 'cell'. */
|
|
77
|
-
focusMode?:
|
|
81
|
+
focusMode?: "row" | "cell";
|
|
78
82
|
/** Selection mode. */
|
|
79
|
-
selectionMode?:
|
|
83
|
+
selectionMode?: "none" | "single" | "multiple";
|
|
80
84
|
/** Selection behavior. */
|
|
81
|
-
selectionBehavior?:
|
|
85
|
+
selectionBehavior?: "toggle" | "replace";
|
|
82
86
|
/** Whether empty selection is disallowed. */
|
|
83
87
|
disallowEmptySelection?: boolean;
|
|
84
88
|
/** Currently selected keys (controlled). */
|
|
85
|
-
selectedKeys?:
|
|
89
|
+
selectedKeys?: "all" | Iterable<Key>;
|
|
86
90
|
/** Default selected keys (uncontrolled). */
|
|
87
|
-
defaultSelectedKeys?:
|
|
91
|
+
defaultSelectedKeys?: "all" | Iterable<Key>;
|
|
88
92
|
/** Handler for selection changes. */
|
|
89
|
-
onSelectionChange?: (keys:
|
|
93
|
+
onSelectionChange?: (keys: "all" | Set<Key>) => void;
|
|
90
94
|
/** Whether the row selection checkboxes should be displayed. */
|
|
91
95
|
showSelectionCheckboxes?: boolean;
|
|
92
96
|
}
|
|
@@ -2,67 +2,69 @@
|
|
|
2
2
|
* State management for tab components.
|
|
3
3
|
* Based on @react-stately/tabs.
|
|
4
4
|
*/
|
|
5
|
-
import { type Accessor } from
|
|
6
|
-
import { type MaybeAccessor } from
|
|
7
|
-
import type { Collection, CollectionNode, Key, FocusStrategy } from
|
|
8
|
-
export type KeyboardActivation =
|
|
9
|
-
export type TabOrientation =
|
|
5
|
+
import { type Accessor } from "solid-js";
|
|
6
|
+
import { type MaybeAccessor } from "../utils";
|
|
7
|
+
import type { Collection, CollectionNode, Key, FocusStrategy } from "../collections/types";
|
|
8
|
+
export type KeyboardActivation = "automatic" | "manual";
|
|
9
|
+
export type TabOrientation = "horizontal" | "vertical";
|
|
10
10
|
export interface TabListStateProps<T = unknown> {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
11
|
+
/** The items in the tab list. */
|
|
12
|
+
items?: T[];
|
|
13
|
+
/** Function to get a key from an item. */
|
|
14
|
+
getKey?: (item: T) => Key;
|
|
15
|
+
/** Function to get text value from an item. */
|
|
16
|
+
getTextValue?: (item: T) => string;
|
|
17
|
+
/** Function to check if an item is disabled. */
|
|
18
|
+
getDisabled?: (item: T) => boolean;
|
|
19
|
+
/** Keys of disabled tabs. */
|
|
20
|
+
disabledKeys?: Iterable<Key>;
|
|
21
|
+
/** The currently selected tab key (controlled). */
|
|
22
|
+
selectedKey?: Key | null;
|
|
23
|
+
/** The default selected tab key (uncontrolled). */
|
|
24
|
+
defaultSelectedKey?: Key;
|
|
25
|
+
/** Handler for tab selection changes. */
|
|
26
|
+
onSelectionChange?: (key: Key) => void;
|
|
27
|
+
/** Whether the entire tab list is disabled. */
|
|
28
|
+
isDisabled?: boolean;
|
|
29
|
+
/** Whether tabs are activated automatically on focus or manually. */
|
|
30
|
+
keyboardActivation?: KeyboardActivation;
|
|
31
|
+
/** The orientation of the tab list. */
|
|
32
|
+
orientation?: TabOrientation;
|
|
33
33
|
}
|
|
34
34
|
export interface TabListState<T = unknown> {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
35
|
+
/** The collection of tabs. */
|
|
36
|
+
readonly collection: Accessor<Collection<T>>;
|
|
37
|
+
/** The currently selected tab key. */
|
|
38
|
+
readonly selectedKey: Accessor<Key | null>;
|
|
39
|
+
/** Set the selected tab key. */
|
|
40
|
+
setSelectedKey(key: Key): void;
|
|
41
|
+
/** The currently selected tab item. */
|
|
42
|
+
readonly selectedItem: Accessor<CollectionNode<T> | null>;
|
|
43
|
+
/** Whether the tab list is disabled. */
|
|
44
|
+
readonly isDisabled: Accessor<boolean>;
|
|
45
|
+
/** The keyboard activation mode. */
|
|
46
|
+
readonly keyboardActivation: Accessor<KeyboardActivation>;
|
|
47
|
+
/** The orientation of the tab list. */
|
|
48
|
+
readonly orientation: Accessor<TabOrientation>;
|
|
49
|
+
/** Whether a tab key is disabled. */
|
|
50
|
+
isKeyDisabled(key: Key): boolean;
|
|
51
|
+
/** The set of disabled keys. */
|
|
52
|
+
readonly disabledKeys: Accessor<Set<Key>>;
|
|
53
|
+
/** Whether the collection is focused. */
|
|
54
|
+
readonly isFocused: Accessor<boolean>;
|
|
55
|
+
/** Set the focused state. */
|
|
56
|
+
setFocused(isFocused: boolean): void;
|
|
57
|
+
/** The currently focused tab key. */
|
|
58
|
+
readonly focusedKey: Accessor<Key | null>;
|
|
59
|
+
/** Set the focused tab key. */
|
|
60
|
+
setFocusedKey(key: Key | null, childStrategy?: FocusStrategy): void;
|
|
61
|
+
/** The child focus strategy. */
|
|
62
|
+
readonly childFocusStrategy: Accessor<FocusStrategy | null>;
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
65
65
|
* Creates state for a tab list component.
|
|
66
66
|
*/
|
|
67
|
-
export declare function createTabListState<T = unknown>(
|
|
68
|
-
|
|
67
|
+
export declare function createTabListState<T = unknown>(
|
|
68
|
+
props: MaybeAccessor<TabListStateProps<T>>,
|
|
69
|
+
): TabListState<T>;
|
|
70
|
+
//# sourceMappingURL=createTabListState.d.ts.map
|