@kosdev-code/base-ui-components 0.1.0-dev.5200 → 0.1.0-dev.5264

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 (43) hide show
  1. package/components/atoms/icon/common/types.d.ts +1 -1
  2. package/components/atoms/icon/common/types.d.ts.map +1 -1
  3. package/components/molecules/filter-panel/filter-panel.d.ts +58 -0
  4. package/components/molecules/filter-panel/filter-panel.d.ts.map +1 -0
  5. package/components/molecules/filter-panel/index.d.ts +3 -0
  6. package/components/molecules/filter-panel/index.d.ts.map +1 -0
  7. package/components/molecules/form/components/form-input.d.ts +2 -0
  8. package/components/molecules/form/components/form-input.d.ts.map +1 -1
  9. package/components/molecules/index.d.ts +1 -0
  10. package/components/molecules/index.d.ts.map +1 -1
  11. package/components/molecules/list/common/data-providers/async-tree-data-provider.d.ts +178 -0
  12. package/components/molecules/list/common/data-providers/async-tree-data-provider.d.ts.map +1 -0
  13. package/components/molecules/list/common/data-providers/base-async-tree-data-provider.d.ts +177 -0
  14. package/components/molecules/list/common/data-providers/base-async-tree-data-provider.d.ts.map +1 -0
  15. package/components/molecules/list/common/data-providers/base-observable-data-provider.d.ts +4 -2
  16. package/components/molecules/list/common/data-providers/base-observable-data-provider.d.ts.map +1 -1
  17. package/components/molecules/list/common/data-providers/index.d.ts +2 -0
  18. package/components/molecules/list/common/data-providers/index.d.ts.map +1 -1
  19. package/components/molecules/list/common/samples/data-providers/async-tree-example.d.ts +153 -0
  20. package/components/molecules/list/common/samples/data-providers/async-tree-example.d.ts.map +1 -0
  21. package/components/molecules/list/common/templates/group/named-collapsible-group.d.ts.map +1 -1
  22. package/components/molecules/list/common/types.d.ts +1 -0
  23. package/components/molecules/list/common/types.d.ts.map +1 -1
  24. package/components/molecules/list/tree-list/async-tree-list.d.ts +183 -0
  25. package/components/molecules/list/tree-list/async-tree-list.d.ts.map +1 -0
  26. package/components/molecules/list/tree-list/index.d.ts +2 -0
  27. package/components/molecules/list/tree-list/index.d.ts.map +1 -1
  28. package/components/molecules/list/tree-list/select-async-tree-list.d.ts +19 -0
  29. package/components/molecules/list/tree-list/select-async-tree-list.d.ts.map +1 -0
  30. package/components/molecules/list/tree-list/templates/named-collapsible-branch.d.ts.map +1 -1
  31. package/hooks/use-drag-drop.d.ts +3 -1
  32. package/hooks/use-drag-drop.d.ts.map +1 -1
  33. package/index.cjs +727 -598
  34. package/index.cjs.map +1 -1
  35. package/index.js +4400 -3631
  36. package/index.js.map +1 -1
  37. package/package.json +3 -3
  38. package/styles/tokens/component-tokens/index.d.ts +10 -0
  39. package/styles/tokens/component-tokens/index.d.ts.map +1 -1
  40. package/styles/tokens/component-tokens/named-collapsable-branch/index.d.ts +13 -0
  41. package/styles/tokens/component-tokens/named-collapsable-branch/index.d.ts.map +1 -0
  42. package/styles/tokens/index.d.ts +11 -1
  43. package/styles/tokens/index.d.ts.map +1 -1
@@ -0,0 +1,153 @@
1
+ import { NamedListItem } from '../../types';
2
+ import { BaseAsyncTreeDataProvider } from '../../data-providers/base-async-tree-data-provider';
3
+
4
+ /**
5
+ * Example raw data structure for a file system tree.
6
+ *
7
+ * @category Examples
8
+ */
9
+ export interface FileNode {
10
+ /** Unique identifier for the node */
11
+ id: string;
12
+ /** Display name of the file or folder */
13
+ name: string;
14
+ /** Node type */
15
+ type: "file" | "folder";
16
+ /** Full path to the node */
17
+ path: string;
18
+ /** File size in bytes (for files only) */
19
+ size?: number;
20
+ /** Last modification date */
21
+ modified?: Date;
22
+ }
23
+ /**
24
+ * Example model that provides file system data.
25
+ *
26
+ * @category Examples
27
+ * @author TBD
28
+ * @version 2.1.1
29
+ */
30
+ export declare class FileSystemModel {
31
+ private files;
32
+ constructor();
33
+ /**
34
+ * Get root folders (simulates async API call)
35
+ */
36
+ getRootFolders(): Promise<FileNode[]>;
37
+ /**
38
+ * Get children for a specific path (simulates async API call)
39
+ */
40
+ getChildren(parentId: string): Promise<FileNode[]>;
41
+ }
42
+ /**
43
+ * Example async tree data provider for file system navigation.
44
+ *
45
+ * DEMONSTRATES:
46
+ * - Async root item loading
47
+ * - Async child loading when branches expand
48
+ * - Ingress filtering (hide hidden files)
49
+ * - Egress sorting (folders first, then alphabetical)
50
+ * - HasChildren determination
51
+ * - Fine-grained reactivity
52
+ *
53
+ * @category Examples
54
+ * @typeParam FileSystemModel - The parent model type
55
+ * @typeParam FileNode - The raw input item type
56
+ * @typeParam NamedListItem - The transformed ListItem type
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const model = new FileSystemModel();
61
+ * const provider = new FileTreeProvider(model);
62
+ * await provider.init();
63
+ *
64
+ * // Use with AsyncTreeList component
65
+ * <AsyncTreeList
66
+ * dataProvider={provider}
67
+ * BranchTemplate={FolderBranchTemplate}
68
+ * ItemTemplate={FileItemTemplate}
69
+ * />
70
+ * ```
71
+ *
72
+ * @see {@link BaseAsyncTreeDataProvider} for the base implementation
73
+ * @see {@link AsyncTreeList} for the React component
74
+ *
75
+ * @author TBD
76
+ * @version 2.1.1
77
+ */
78
+ export declare class FileTreeProvider extends BaseAsyncTreeDataProvider<FileSystemModel, FileNode, NamedListItem> {
79
+ constructor(model: FileSystemModel);
80
+ /**
81
+ * Determine if an item has children without loading them.
82
+ * Folders always have potential children (even if empty).
83
+ */
84
+ hasChildren(item: FileNode): boolean | "unknown";
85
+ /**
86
+ * Get unique ID for an item.
87
+ */
88
+ getItemId(item: FileNode): string;
89
+ /**
90
+ * INGRESS FILTER: Hide hidden files (files starting with .)
91
+ * Operates on raw FileNode before transformation.
92
+ */
93
+ filterByInputItem(item: FileNode): boolean;
94
+ /**
95
+ * INGRESS SORT: Sort raw items by type (folders first) then name
96
+ * More efficient than sorting after transformation.
97
+ */
98
+ sortByInputItem(a: FileNode, b: FileNode): number;
99
+ /**
100
+ * EGRESS FILTER: Example - could filter by display properties
101
+ * This runs after transformation to NamedListItem.
102
+ */
103
+ filterItem(_item: NamedListItem): boolean;
104
+ /**
105
+ * EGRESS SORT: Example - could sort by display name
106
+ * This runs after transformation to NamedListItem.
107
+ */
108
+ sortItem(_a: NamedListItem, _b: NamedListItem): number;
109
+ }
110
+ /**
111
+ * Example with context-aware filtering.
112
+ *
113
+ * Demonstrates how to filter tree items based on context data (e.g., search text).
114
+ *
115
+ * @category Examples
116
+ * @author TBD
117
+ * @version 2.1.1
118
+ */
119
+ export declare class SearchableFileTreeProvider extends FileTreeProvider {
120
+ /**
121
+ * EGRESS FILTER: Filter by search text from context
122
+ */
123
+ filterItem(item: NamedListItem, context?: Map<string, any>): boolean;
124
+ }
125
+ /**
126
+ * Example demonstrating dynamic children determination.
127
+ *
128
+ * @category Examples
129
+ */
130
+ export interface DynamicNode {
131
+ /** Unique identifier */
132
+ id: string;
133
+ /** Display name */
134
+ name: string;
135
+ /** Known child count from API (undefined if unknown) */
136
+ childCount?: number;
137
+ }
138
+ /**
139
+ * Example provider demonstrating hasChildren with unknown state.
140
+ *
141
+ * Shows how to handle cases where child count may not be known until
142
+ * the children are actually loaded.
143
+ *
144
+ * @category Examples
145
+ * @author TBD
146
+ * @version 2.1.1
147
+ */
148
+ export declare class DynamicTreeProvider extends BaseAsyncTreeDataProvider<any, DynamicNode, NamedListItem> {
149
+ constructor(parent: any);
150
+ hasChildren(item: DynamicNode): boolean | "unknown";
151
+ getItemId(item: DynamicNode): string;
152
+ }
153
+ //# sourceMappingURL=async-tree-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-tree-example.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/common/samples/data-providers/async-tree-example.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB;AAED;;;;;;GAMG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAsC;;IAmDnD;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAM3C;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAKzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,gBAAiB,SAAQ,yBAAyB,CAC7D,eAAe,EACf,QAAQ,EACR,aAAa,CACd;gBACa,KAAK,EAAE,eAAe;IA0BlC;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS;IAIhD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAIjC;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAI1C;;;OAGG;IACH,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM;IASjD;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAMzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,GAAG,MAAM;CAIvD;AAED;;;;;;;;GAQG;AACH,qBAAa,0BAA2B,SAAQ,gBAAgB;IAC9D;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO;CAMrE;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,SAAQ,yBAAyB,CAChE,GAAG,EACH,WAAW,EACX,aAAa,CACd;gBACa,MAAM,EAAE,GAAG;IAiCvB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS;IASnD,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM;CAGrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"named-collapsible-group.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/common/templates/group/named-collapsible-group.tsx"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIpD,UAAU,0BAA0B;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,qBAAqB,4CAK/B,0BAA0B,qDAiC5B,CAAC;AAEF,eAAO,MAAM,cAAc,sCAIxB,0BAA0B,qDAI5B,CAAC"}
1
+ {"version":3,"file":"named-collapsible-group.d.ts","sourceRoot":"","sources":["../../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/common/templates/group/named-collapsible-group.tsx"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIpD,UAAU,0BAA0B;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,qBAAqB,4CAK/B,0BAA0B,qDA6B5B,CAAC;AAEF,eAAO,MAAM,cAAc,sCAIxB,0BAA0B,qDAI5B,CAAC"}
@@ -65,4 +65,5 @@ export interface OutputSortAware<T extends ListItem = ListItem> {
65
65
  export interface InputSortAware<I extends Record<string, any>> {
66
66
  sortByInputItem: (a: I, b: I) => number;
67
67
  }
68
+ export type { AsyncTreeBranch, AsyncTreeDataProvider, BranchLoadingState, } from './data-providers/async-tree-data-provider';
68
69
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/common/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/common/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,183 @@
1
+ import { ListItem } from '../common/types';
2
+ import { BaseAsyncTreeDataProvider } from '../common/data-providers/base-async-tree-data-provider';
3
+ import { AsyncTreeBranch } from '../common/data-providers/async-tree-data-provider';
4
+ import { IconColors, IconIds } from '../../../atoms/icon';
5
+ import { FunctionComponent, ReactElement, ReactNode } from 'react';
6
+
7
+ /**
8
+ * Configuration for an icon
9
+ */
10
+ export interface IconConfig {
11
+ iconId: IconIds;
12
+ color?: IconColors;
13
+ }
14
+ /**
15
+ * Maps node types to icons - can be static map or dynamic function
16
+ */
17
+ export type NodeIconMap<T extends ListItem = ListItem> = Record<string, IconConfig> | ((node: T) => IconConfig | undefined);
18
+ /**
19
+ * Configuration for a node action button
20
+ */
21
+ export interface NodeActionConfig<I extends Record<string, any>, T extends ListItem = ListItem> {
22
+ id: string;
23
+ iconId: IconIds;
24
+ tooltip?: string;
25
+ color?: IconColors;
26
+ onClick: (nodeId: string, originalItem: I) => void;
27
+ visibleFor?: (node: T) => boolean;
28
+ }
29
+ /**
30
+ * Resolved action ready to render
31
+ */
32
+ export interface ResolvedAction {
33
+ id: string;
34
+ iconId: IconIds;
35
+ color?: IconColors;
36
+ tooltip?: string;
37
+ onClick: () => void;
38
+ }
39
+ /**
40
+ * Configuration for a node decorator (icon or badge)
41
+ */
42
+ export interface NodeDecoratorConfig<T extends ListItem = ListItem> {
43
+ id: string;
44
+ iconId: IconIds;
45
+ color?: IconColors;
46
+ tooltip?: string;
47
+ visibleFor?: (node: T) => boolean;
48
+ }
49
+ /**
50
+ * Resolved decorator ready to render
51
+ */
52
+ export interface ResolvedDecorator {
53
+ id: string;
54
+ iconId: IconIds;
55
+ color?: IconColors;
56
+ tooltip?: string;
57
+ }
58
+ /**
59
+ * Props for rendering an async tree branch.
60
+ *
61
+ * @category Components
62
+ * @typeParam T - The ListItem type for this branch
63
+ */
64
+ export type AsyncBranchTemplateProps<T extends ListItem = ListItem> = T & {
65
+ /** Child branches to render when expanded */
66
+ children: ReactNode;
67
+ /** CSS class name for styling */
68
+ className?: string;
69
+ /** Click handler for expanding/collapsing the branch */
70
+ onClick?: () => void;
71
+ /** Click handler for selecting the branch */
72
+ onSelect?: () => void;
73
+ /** Loading state indicator */
74
+ "data-loading"?: boolean;
75
+ /** Error state indicator */
76
+ "data-error"?: boolean;
77
+ /** Open state indicator */
78
+ "data-open"?: boolean;
79
+ /** Selected state indicator */
80
+ "data-selected"?: boolean;
81
+ /** Resolved icon ID for this branch */
82
+ iconId?: IconIds;
83
+ /** Resolved icon color for this branch */
84
+ iconColor?: IconColors;
85
+ /** Resolved action buttons for this branch */
86
+ actions?: ResolvedAction[];
87
+ /** Resolved decorators for this branch */
88
+ decorators?: ResolvedDecorator[];
89
+ };
90
+ /**
91
+ * Factory for creating branch templates.
92
+ *
93
+ * @category Components
94
+ * @typeParam T - The ListItem type for this branch
95
+ */
96
+ export interface AsyncBranchTemplateFactory<T extends ListItem = ListItem> {
97
+ /** Build a branch component based on branch data */
98
+ build: (branch: AsyncTreeBranch<T>) => FunctionComponent<AsyncBranchTemplateProps<T>>;
99
+ }
100
+ /**
101
+ * Branch template type (component or factory).
102
+ *
103
+ * @category Components
104
+ * @typeParam T - The ListItem type for this branch
105
+ */
106
+ export type AsyncBranchTemplateType<T extends ListItem = ListItem> = AsyncBranchTemplateFactory<T> | FunctionComponent<AsyncBranchTemplateProps<T>>;
107
+ /**
108
+ * Props for AsyncTreeList component.
109
+ *
110
+ * @category Components
111
+ * @typeParam I - Raw input item type from the data source
112
+ * @typeParam T - Transformed ListItem type for display
113
+ */
114
+ export interface AsyncTreeListProps<I extends Record<string, any>, T extends ListItem = ListItem> {
115
+ /** Async tree data provider */
116
+ dataProvider: BaseAsyncTreeDataProvider<any, I, T> | null;
117
+ /** Template for rendering branch nodes */
118
+ BranchTemplate: AsyncBranchTemplateType<T>;
119
+ /** Template for rendering leaf nodes */
120
+ ItemTemplate: FunctionComponent<T>;
121
+ /** Callback when a branch is expanded */
122
+ onBranchExpand?: (itemId: string, item: I) => void;
123
+ /** Callback when a branch is collapsed */
124
+ onBranchCollapse?: (itemId: string) => void;
125
+ /** Callback for list item actions */
126
+ onListItemAction?: (itemId: string, actionId: string) => void;
127
+ /** Callback when a branch is selected */
128
+ onBranchSelect?: (itemId: string, item: I) => void;
129
+ /** Currently selected branch ID */
130
+ selectedBranchId?: string;
131
+ /** Empty state to show when no items */
132
+ emptyState?: ReactElement;
133
+ /** Empty state to show when an expanded branch has no children */
134
+ branchEmptyState?: ReactElement;
135
+ /** CSS class name */
136
+ className?: string;
137
+ /** If true, only one branch can be open at a time */
138
+ singleBranchOnly?: boolean;
139
+ /** Controlled opened branches */
140
+ openedBranches?: string[];
141
+ /** Setter for controlled opened branches */
142
+ setOpenedBranches?: (branches: string[]) => void;
143
+ /** Icon resolver for tree nodes - static map or function */
144
+ nodeIconMap?: NodeIconMap<T>;
145
+ /** Action button configurations */
146
+ nodeActions?: NodeActionConfig<I, T>[];
147
+ /** Decorator configurations - presentation icons without actions */
148
+ nodeDecorators?: NodeDecoratorConfig<T>[];
149
+ }
150
+ /**
151
+ * Async tree list component with lazy loading support.
152
+ *
153
+ * Features:
154
+ * - Lazy loading of tree branches
155
+ * - Fine-grained reactivity (only affected branches recompute)
156
+ * - Loading and error states per branch
157
+ * - Compatible with existing TreeContext infrastructure
158
+ * - Observable-based automatic UI updates
159
+ *
160
+ * @category Components
161
+ * @typeParam I - Raw input item type from the data source
162
+ * @typeParam T - Transformed ListItem type for display
163
+ *
164
+ * @example
165
+ * ```tsx
166
+ * <AsyncTreeList
167
+ * dataProvider={myAsyncTreeProvider}
168
+ * BranchTemplate={MyBranchTemplate}
169
+ * ItemTemplate={MyItemTemplate}
170
+ * onBranchExpand={(id, item) => console.log('Expanded:', id)}
171
+ * />
172
+ * ```
173
+ *
174
+ * @see {@link BaseAsyncTreeDataProvider} for the data provider interface
175
+ * @see {@link AsyncTreeBranch} for the branch data structure
176
+ *
177
+ * @author TBD
178
+ * @version 2.1.1
179
+ */
180
+ export declare const AsyncTreeList: (<I extends Record<string, any>, T extends ListItem>({ dataProvider, BranchTemplate, ItemTemplate, onBranchExpand, onBranchCollapse, onListItemAction, onBranchSelect, selectedBranchId, emptyState, branchEmptyState, className, singleBranchOnly, openedBranches: controlledOpenedBranches, setOpenedBranches: controlledSetOpenedBranches, nodeIconMap, nodeActions, nodeDecorators, }: AsyncTreeListProps<I, T>) => ReactElement | null) & {
181
+ displayName: string;
182
+ };
183
+ //# sourceMappingURL=async-tree-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-tree-list.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/async-tree-list.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  export * from './tree-data-provider';
2
2
  export * from './common/types';
3
3
  export * from './tree-list';
4
+ export * from './async-tree-list';
5
+ export * from './select-async-tree-list';
4
6
  export * from './templates';
5
7
  export { useTreeListContext } from './common/hooks';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { AsyncTreeListProps } from './async-tree-list';
2
+ import { ListItem } from '../common/types';
3
+ import { ReactElement } from 'react';
4
+
5
+ export interface SelectAsyncTreeListProps<T extends ListItem = ListItem> {
6
+ onSelect: (id: string, state: "selected" | "unselected") => void;
7
+ isSingleSelect?: boolean;
8
+ selected?: string[];
9
+ disabled?: boolean;
10
+ autoSelectFirstItem?: boolean;
11
+ _phantom?: T;
12
+ }
13
+ /**
14
+ * AsyncTreeList wrapper with selection context support.
15
+ * Follows the same pattern as TreeList + SelectList combination.
16
+ * Provides SelectListContext so templates can use useSelectListContext() hook.
17
+ */
18
+ export declare const SelectAsyncTreeList: <I extends Record<string, any>, T extends ListItem = ListItem>(props: AsyncTreeListProps<I, T> & SelectAsyncTreeListProps<T>) => ReactElement | null;
19
+ //# sourceMappingURL=select-async-tree-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-async-tree-list.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/select-async-tree-list.tsx"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,MAAM,WAAW,wBAAwB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACrE,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,YAAY,KAAK,IAAI,CAAC;IACjE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,QAAQ,CAAC,EAAE,CAAC,CAAC;CACd;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,CAChC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAE7B,KAAK,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC,KAC1D,YAAY,GAAG,IA6EnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"named-collapsible-branch.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/templates/named-collapsible-branch.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEzE,eAAO,MAAM,sBAAsB,EAAE,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EACzE,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAC1B,YAAY,GAAG,IAmCnB,CAAC"}
1
+ {"version":3,"file":"named-collapsible-branch.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/tree-list/templates/named-collapsible-branch.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEzE,eAAO,MAAM,sBAAsB,EAAE,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EACzE,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAC1B,YAAY,GAAG,IA+BnB,CAAC"}
@@ -12,8 +12,10 @@ interface UseDragDropOptions<T> {
12
12
  onDragStart?: (data: DragData<T>, event: DragEvent) => void;
13
13
  onDragEnd?: (event: DragEvent) => void;
14
14
  onDragOver?: (event: DragEvent) => void;
15
+ onDragLeave?: (event: DragEvent) => void;
15
16
  }
16
- export declare const useDragDrop: <T>({ ref, data, canDrag, transformDragData, onDrop, onDragStart, onDragEnd, onDragOver, }: UseDragDropOptions<T>) => {
17
+ export declare const getCurrentDragData: () => any;
18
+ export declare const useDragDrop: <T>({ ref, data, canDrag, transformDragData, onDrop, onDragStart, onDragEnd, onDragOver, onDragLeave, }: UseDragDropOptions<T>) => {
17
19
  dragging: boolean;
18
20
  over: boolean;
19
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-drag-drop.d.ts","sourceRoot":"","sources":["../../../../../packages/libraries/base-ui-components/src/hooks/use-drag-drop.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzE,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,UAAU,kBAAkB,CAAC,CAAC;IAC5B,GAAG,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACvD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,WAAW,8FASrB,mBAAmB,CAAC,CAAC;;;CA+GvB,CAAC"}
1
+ {"version":3,"file":"use-drag-drop.d.ts","sourceRoot":"","sources":["../../../../../packages/libraries/base-ui-components/src/hooks/use-drag-drop.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzE,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,UAAU,kBAAkB,CAAC,CAAC;IAC5B,GAAG,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACvD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CAC1C;AAMD,eAAO,MAAM,kBAAkB,WAAwB,CAAC;AAExD,eAAO,MAAM,WAAW,2GAUrB,mBAAmB,CAAC,CAAC;;;CAyHvB,CAAC"}