@kosdev-code/base-ui-components 0.1.0-dev.5385 → 0.1.0-dev.5596

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 (111) hide show
  1. package/components/atoms/button/index.d.ts +1 -1
  2. package/components/atoms/button/index.d.ts.map +1 -1
  3. package/components/atoms/button-group/button-group-item.d.ts +42 -0
  4. package/components/atoms/button-group/button-group-item.d.ts.map +1 -0
  5. package/components/atoms/button-group/button-group.d.ts +40 -0
  6. package/components/atoms/button-group/button-group.d.ts.map +1 -0
  7. package/components/atoms/button-group/hooks/use-button-group-context.d.ts +8 -0
  8. package/components/atoms/button-group/hooks/use-button-group-context.d.ts.map +1 -0
  9. package/components/atoms/button-group/index.d.ts +4 -0
  10. package/components/atoms/button-group/index.d.ts.map +1 -0
  11. package/components/atoms/icon/common/types.d.ts +2 -2
  12. package/components/atoms/icon/common/types.d.ts.map +1 -1
  13. package/components/atoms/index.d.ts +2 -0
  14. package/components/atoms/index.d.ts.map +1 -1
  15. package/components/atoms/resizable-panel-group/common/hooks/use-resizable-panel-group-context/helpers/get-resize-panel-element.d.ts +6 -1
  16. package/components/atoms/resizable-panel-group/common/hooks/use-resizable-panel-group-context/helpers/get-resize-panel-element.d.ts.map +1 -1
  17. package/components/atoms/resizable-panel-group/common/hooks/use-resizable-panel-group-context/use-resizable-panel-group-context.d.ts +6 -2
  18. package/components/atoms/resizable-panel-group/common/hooks/use-resizable-panel-group-context/use-resizable-panel-group-context.d.ts.map +1 -1
  19. package/components/atoms/resizable-panel-group/common/types.d.ts +6 -0
  20. package/components/atoms/resizable-panel-group/common/types.d.ts.map +1 -1
  21. package/components/atoms/resizable-panel-group/index.d.ts +1 -0
  22. package/components/atoms/resizable-panel-group/index.d.ts.map +1 -1
  23. package/components/atoms/resizable-panel-group/resizable-panel-group.d.ts +8 -4
  24. package/components/atoms/resizable-panel-group/resizable-panel-group.d.ts.map +1 -1
  25. package/components/molecules/dropdown-menu/dropdown-menu.d.ts.map +1 -1
  26. package/components/molecules/form/components/form-input.d.ts.map +1 -1
  27. package/components/molecules/form/components/form-submit.d.ts.map +1 -1
  28. package/components/molecules/index.d.ts +2 -0
  29. package/components/molecules/index.d.ts.map +1 -1
  30. package/components/molecules/item-selection-list/item-selection-list.d.ts +1 -1
  31. package/components/molecules/item-selection-list/item-selection-list.d.ts.map +1 -1
  32. package/components/molecules/list/async-list/async-list-group-header.d.ts +12 -0
  33. package/components/molecules/list/async-list/async-list-group-header.d.ts.map +1 -0
  34. package/components/molecules/list/async-list/async-list.d.ts +139 -0
  35. package/components/molecules/list/async-list/async-list.d.ts.map +1 -0
  36. package/components/molecules/list/async-list/helpers/is-item-template-factory.d.ts +19 -0
  37. package/components/molecules/list/async-list/helpers/is-item-template-factory.d.ts.map +1 -0
  38. package/components/molecules/list/async-list/index.d.ts +9 -0
  39. package/components/molecules/list/async-list/index.d.ts.map +1 -0
  40. package/components/molecules/list/async-list/item-action-bar.d.ts +31 -0
  41. package/components/molecules/list/async-list/item-action-bar.d.ts.map +1 -0
  42. package/components/molecules/list/async-list/templates/studio-named-list-item.d.ts +41 -0
  43. package/components/molecules/list/async-list/templates/studio-named-list-item.d.ts.map +1 -0
  44. package/components/molecules/list/async-list/types.d.ts +286 -0
  45. package/components/molecules/list/async-list/types.d.ts.map +1 -0
  46. package/components/molecules/list/common/data-providers/base-async-tree-data-provider.d.ts +117 -56
  47. package/components/molecules/list/common/data-providers/base-async-tree-data-provider.d.ts.map +1 -1
  48. package/components/molecules/list/common/types.d.ts +111 -0
  49. package/components/molecules/list/common/types.d.ts.map +1 -1
  50. package/components/molecules/list/index.d.ts +1 -0
  51. package/components/molecules/list/index.d.ts.map +1 -1
  52. package/components/molecules/list/select-list/select-list.d.ts +1 -0
  53. package/components/molecules/list/select-list/select-list.d.ts.map +1 -1
  54. package/components/molecules/list/tree-list/async-tree-list.d.ts +253 -30
  55. package/components/molecules/list/tree-list/async-tree-list.d.ts.map +1 -1
  56. package/components/molecules/list/tree-list/helpers/is-item-template-factory.d.ts +19 -0
  57. package/components/molecules/list/tree-list/helpers/is-item-template-factory.d.ts.map +1 -0
  58. package/components/molecules/list/tree-list/templates/async-named-collapsible-branch.d.ts.map +1 -1
  59. package/components/molecules/table/table.d.ts.map +1 -1
  60. package/components/molecules/table/virtual-table.d.ts.map +1 -1
  61. package/components/molecules/view/action-bar.d.ts +27 -0
  62. package/components/molecules/view/action-bar.d.ts.map +1 -0
  63. package/components/molecules/view/index.d.ts +9 -0
  64. package/components/molecules/view/index.d.ts.map +1 -0
  65. package/components/molecules/view/types.d.ts +103 -0
  66. package/components/molecules/view/types.d.ts.map +1 -0
  67. package/components/molecules/view/view-header.d.ts +32 -0
  68. package/components/molecules/view/view-header.d.ts.map +1 -0
  69. package/components/molecules/view/view.d.ts +60 -0
  70. package/components/molecules/view/view.d.ts.map +1 -0
  71. package/components/molecules/view-container/index.d.ts +6 -0
  72. package/components/molecules/view-container/index.d.ts.map +1 -0
  73. package/components/molecules/view-container/types.d.ts +28 -0
  74. package/components/molecules/view-container/types.d.ts.map +1 -0
  75. package/components/molecules/view-container/view-container.d.ts +52 -0
  76. package/components/molecules/view-container/view-container.d.ts.map +1 -0
  77. package/index.cjs +1058 -824
  78. package/index.cjs.map +1 -1
  79. package/index.d.ts +1 -0
  80. package/index.d.ts.map +1 -1
  81. package/index.js +6495 -4614
  82. package/index.js.map +1 -1
  83. package/package.json +3 -3
  84. package/providers/data-providers/create-observable-list-provider.d.ts +116 -0
  85. package/providers/data-providers/create-observable-list-provider.d.ts.map +1 -0
  86. package/providers/data-providers/index.d.ts +86 -0
  87. package/providers/data-providers/index.d.ts.map +1 -0
  88. package/providers/data-providers/lifecycle-aware-list-provider.d.ts +206 -0
  89. package/providers/data-providers/lifecycle-aware-list-provider.d.ts.map +1 -0
  90. package/providers/data-providers/lifecycle-aware-tree-provider.d.ts +187 -0
  91. package/providers/data-providers/lifecycle-aware-tree-provider.d.ts.map +1 -0
  92. package/providers/data-providers/types.d.ts +124 -0
  93. package/providers/data-providers/types.d.ts.map +1 -0
  94. package/providers/index.d.ts +13 -0
  95. package/providers/index.d.ts.map +1 -0
  96. package/styles/tokens/component-tokens/button-group/index.d.ts +18 -0
  97. package/styles/tokens/component-tokens/button-group/index.d.ts.map +1 -0
  98. package/styles/tokens/component-tokens/icon/index.d.ts +1 -0
  99. package/styles/tokens/component-tokens/icon/index.d.ts.map +1 -1
  100. package/styles/tokens/component-tokens/index.d.ts +80 -0
  101. package/styles/tokens/component-tokens/index.d.ts.map +1 -1
  102. package/styles/tokens/component-tokens/notification/index.d.ts +37 -0
  103. package/styles/tokens/component-tokens/notification/index.d.ts.map +1 -0
  104. package/styles/tokens/component-tokens/studio-list-item/index.d.ts +13 -0
  105. package/styles/tokens/component-tokens/studio-list-item/index.d.ts.map +1 -0
  106. package/styles/tokens/component-tokens/view/index.d.ts +24 -0
  107. package/styles/tokens/component-tokens/view/index.d.ts.map +1 -0
  108. package/styles/tokens/component-tokens/view-container/index.d.ts +12 -0
  109. package/styles/tokens/component-tokens/view-container/index.d.ts.map +1 -0
  110. package/styles/tokens/index.d.ts +81 -1
  111. package/styles/tokens/index.d.ts.map +1 -1
@@ -0,0 +1,31 @@
1
+ import { ResolvedAction } from './types';
2
+
3
+ export interface ItemActionBarProps {
4
+ /** Actions to render */
5
+ actions: ResolvedAction[];
6
+ /** Whether the parent item is selected (affects colors) */
7
+ isSelected?: boolean;
8
+ /** Whether selection styling is disabled */
9
+ disableSelectionStyling?: boolean;
10
+ }
11
+ /**
12
+ * ItemActionBar renders actions with primary/secondary/overflow behavior for list items.
13
+ *
14
+ * - Primary actions (isPrimary=true) are rendered inline as icon buttons (max 3)
15
+ * - Secondary actions (isPrimary=false or undefined) appear in the overflow menu
16
+ * - If more than 3 primary actions exist, extras are shown at the top of the
17
+ * overflow menu with a separator below them
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * <ItemActionBar
22
+ * actions={[
23
+ * { id: 'edit', iconId: 'Edit', tooltip: 'Edit', isPrimary: true, onClick: handleEdit },
24
+ * { id: 'delete', iconId: 'Delete', tooltip: 'Delete', label: 'Delete', onClick: handleDelete },
25
+ * ]}
26
+ * isSelected={false}
27
+ * />
28
+ * ```
29
+ */
30
+ export declare const ItemActionBar: import('react').NamedExoticComponent<ItemActionBarProps>;
31
+ //# sourceMappingURL=item-action-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-action-bar.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/async-list/item-action-bar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAWH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAO9C,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,2DAA2D;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,0DAyJzB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { ResolvedAction, ResolvedDecorator } from '../types';
2
+ import { ListItem } from '../../common/types';
3
+ import { IconColors, IconIds } from '../../../../atoms';
4
+ import { ReactNode } from 'react';
5
+
6
+ /**
7
+ * Studio 2.0 list item template with external decoration support.
8
+ * Aligns with Studio architecture patterns for actions, decorators, and state management.
9
+ *
10
+ * This template is designed to be generic and data-minimal - the item itself only
11
+ * provides name and optional subtitle. All decorations (icons, actions, badges) are
12
+ * resolved and passed in by the parent list component via registration props.
13
+ *
14
+ * Supports two modes:
15
+ * 1. Simple mode: Provide name and optional subText
16
+ * 2. Custom content mode: Provide children for complete control over content
17
+ *
18
+ * @category Components
19
+ * @version 2.0.0
20
+ */
21
+ export interface StudioNamedListItemProps extends ListItem {
22
+ /** Optional subtitle (only used when children not provided) */
23
+ subText?: string;
24
+ /** Custom content - when provided, replaces name/subText rendering */
25
+ children?: ReactNode;
26
+ iconId?: IconIds;
27
+ iconColor?: IconColors;
28
+ actions?: ResolvedAction[];
29
+ decorators?: ResolvedDecorator[];
30
+ className?: string;
31
+ disabled?: boolean;
32
+ "data-depth"?: number;
33
+ "data-indent-size"?: number;
34
+ /**
35
+ * When true, disables the default selection styling (blue background, white text).
36
+ * Selection state is still tracked but visual styling is suppressed.
37
+ */
38
+ "data-disable-selection-styling"?: boolean;
39
+ }
40
+ export declare const StudioNamedListItem: import('react').FunctionComponent<StudioNamedListItemProps>;
41
+ //# sourceMappingURL=studio-named-list-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio-named-list-item.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/async-list/templates/studio-named-list-item.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAOlE;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,wBAAyB,SAAQ,QAAQ;IACxD,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,SAAS,CAAC;IAGrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAGjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAC;CAC5C;AAED,eAAO,MAAM,mBAAmB,6DAmG/B,CAAC"}
@@ -0,0 +1,286 @@
1
+ import { ListItem } from '../common/types';
2
+ import { IconColors, IconIds } from '../../../atoms/icon';
3
+ import { FunctionComponent, ReactNode } from 'react';
4
+
5
+ /**
6
+ * Configuration for an icon
7
+ */
8
+ export interface IconConfig {
9
+ iconId: IconIds;
10
+ color?: IconColors;
11
+ }
12
+ /**
13
+ * Maps items to icons - can be static map or dynamic function
14
+ */
15
+ export type ItemIconMap<T extends ListItem = ListItem> = Record<string, IconConfig> | ((item: T) => IconConfig | undefined);
16
+ /**
17
+ * Configuration for an item action button
18
+ *
19
+ * Supports dual visibility patterns:
20
+ * 1. `visibilityExpression` - Context-based visibility (evaluated first)
21
+ * Example: "activePage == 'artifacts-page'" or "views['artifacts'].selectedId != undefined"
22
+ * Evaluated against studio context. If false, action is filtered out before rendering.
23
+ *
24
+ * 2. `visibleFor` - Item-specific visibility (evaluated second)
25
+ * Example: (item) => !item.isSystemItem
26
+ * Evaluated per-item during rendering. If false, action is hidden for that item.
27
+ *
28
+ * Evaluation order:
29
+ * - If `visibilityExpression` is provided and evaluates to false, action is never passed to AsyncList
30
+ * - If `visibilityExpression` is true (or undefined), action proceeds to AsyncList
31
+ * - AsyncList then evaluates `visibleFor` per-item to determine final visibility
32
+ *
33
+ * Both conditions must be true for the action to be visible.
34
+ */
35
+ export interface ItemActionConfig<I extends Record<string, any>, T extends ListItem = ListItem> {
36
+ id: string;
37
+ iconId: IconIds;
38
+ tooltip?: string;
39
+ /** Label text for the action (shown in overflow menu) */
40
+ label?: string;
41
+ color?: IconColors;
42
+ /**
43
+ * Whether this is a primary action displayed inline.
44
+ * Primary actions appear as icon buttons; secondary actions
45
+ * (isPrimary=false or undefined) appear in the overflow menu.
46
+ * Max 3 primary actions are shown; extras overflow with a separator.
47
+ */
48
+ isPrimary?: boolean;
49
+ onClick: (itemId: string, originalItem: I) => void;
50
+ /**
51
+ * Context-based visibility expression (evaluated against studio context).
52
+ * If false, action is filtered out before reaching AsyncList.
53
+ * Example: "activePage == 'artifacts-page'"
54
+ */
55
+ visibilityExpression?: string;
56
+ /**
57
+ * Item-specific visibility function (evaluated per-item during rendering).
58
+ * If false, action is hidden for that specific item.
59
+ * Example: (item) => !item.isSystemItem
60
+ */
61
+ visibleFor?: (item: T) => boolean;
62
+ /**
63
+ * Enablement expression for disabling action while keeping it visible.
64
+ *
65
+ * Evaluated with both studio context AND item context merged.
66
+ * When the expression evaluates to false, the action is shown but disabled.
67
+ *
68
+ * **Item context access:**
69
+ * - `item` - The ListItem (transformed item with id, name, etc.)
70
+ * Note: To access properties like `locked`, ensure your transformer
71
+ * includes them in the ListItem output.
72
+ *
73
+ * **Studio context access:**
74
+ * - `offline` - Whether app is offline
75
+ * - `user.isAdmin` - Whether user is an admin
76
+ * - `orgState.mutable` - Whether org data can be modified
77
+ * - All other studio context variables
78
+ *
79
+ * @example Disable for locked items (requires transformer to include `locked`)
80
+ * ```typescript
81
+ * // Transformer: (item) => ({ id: item.id, name: item.name, locked: item.locked })
82
+ * enablementExpression: "not item.locked"
83
+ * ```
84
+ *
85
+ * @example Admin can edit locked items
86
+ * ```typescript
87
+ * enablementExpression: "user.isAdmin or not item.locked"
88
+ * ```
89
+ *
90
+ * @example Disable when offline
91
+ * ```typescript
92
+ * enablementExpression: "not offline"
93
+ * ```
94
+ */
95
+ enablementExpression?: string;
96
+ /**
97
+ * Item-specific enabled function (evaluated per-item during rendering).
98
+ * If false, action is shown but disabled for that specific item.
99
+ * Example: (item) => !item.locked
100
+ *
101
+ * Use this for programmatic enablement logic.
102
+ * For declarative enablement based on expressions, use `enablementExpression`.
103
+ */
104
+ enabledFor?: (item: T) => boolean;
105
+ }
106
+ /**
107
+ * Resolved action ready to render
108
+ */
109
+ export interface ResolvedAction {
110
+ id: string;
111
+ iconId: IconIds;
112
+ color?: IconColors;
113
+ tooltip?: string;
114
+ /** Label text for the action (shown in overflow menu) */
115
+ label?: string;
116
+ /**
117
+ * Whether this is a primary action displayed inline.
118
+ * Primary actions appear as icon buttons; secondary actions
119
+ * (isPrimary=false or undefined) appear in the overflow menu.
120
+ * Max 3 primary actions are shown; extras overflow with a separator.
121
+ */
122
+ isPrimary?: boolean;
123
+ onClick: () => void;
124
+ /** Whether the action is disabled (shown but not clickable) */
125
+ disabled?: boolean;
126
+ }
127
+ /**
128
+ * Configuration for an item decorator (icon or badge)
129
+ *
130
+ * Supports dual visibility patterns:
131
+ * 1. `visibilityExpression` - Context-based visibility (evaluated first)
132
+ * Example: "activePage == 'artifacts-page'" or "views['artifacts'].selectedId != undefined"
133
+ * Evaluated against studio context. If false, decorator is filtered out before rendering.
134
+ *
135
+ * 2. `visibleFor` - Item-specific visibility (evaluated second)
136
+ * Example: (item) => item.hasWarning
137
+ * Evaluated per-item during rendering. If false, decorator is hidden for that item.
138
+ *
139
+ * Evaluation order:
140
+ * - If `visibilityExpression` is provided and evaluates to false, decorator is never passed to AsyncList
141
+ * - If `visibilityExpression` is true (or undefined), decorator proceeds to AsyncList
142
+ * - AsyncList then evaluates `visibleFor` per-item to determine final visibility
143
+ *
144
+ * Both conditions must be true for the decorator to be visible.
145
+ */
146
+ export interface ItemDecoratorConfig<T extends ListItem = ListItem> {
147
+ id: string;
148
+ iconId: IconIds;
149
+ color?: IconColors;
150
+ tooltip?: string;
151
+ /**
152
+ * Context-based visibility expression (evaluated against studio context).
153
+ * If false, decorator is filtered out before reaching AsyncList.
154
+ * Example: "activePage == 'artifacts-page'"
155
+ */
156
+ visibilityExpression?: string;
157
+ /**
158
+ * Item-specific visibility function (evaluated per-item during rendering).
159
+ * If false, decorator is hidden for that specific item.
160
+ * Example: (item) => item.hasWarning
161
+ */
162
+ visibleFor?: (item: T) => boolean;
163
+ }
164
+ /**
165
+ * Resolved decorator ready to render
166
+ */
167
+ export interface ResolvedDecorator {
168
+ id: string;
169
+ iconId: IconIds;
170
+ color?: IconColors;
171
+ tooltip?: string;
172
+ }
173
+ /**
174
+ * Content renderer function for custom item content.
175
+ * Matches NodeContentRenderer signature for consistency between list and tree views.
176
+ *
177
+ * @param item - The list item to render
178
+ * @param isSelected - Whether the item is currently selected (optional for backwards compatibility)
179
+ * @returns React content to render
180
+ *
181
+ * @example
182
+ * ```tsx
183
+ * const itemContentRenderer: ItemContentRenderer<MyItem> = (item, isSelected) => (
184
+ * <div className={isSelected ? 'selected' : ''}>
185
+ * <span>{item.name}</span>
186
+ * <CustomBadge status={item.status} />
187
+ * </div>
188
+ * );
189
+ * ```
190
+ */
191
+ export type ItemContentRenderer<T extends ListItem = ListItem> = (item: T, isSelected?: boolean) => ReactNode;
192
+ /**
193
+ * Props for rendering an async list item.
194
+ *
195
+ * @category Components
196
+ * @typeParam T - The ListItem type for this item
197
+ */
198
+ export type AsyncListItemTemplateProps<T extends ListItem = ListItem> = T & {
199
+ /** CSS class name for styling */
200
+ className?: string;
201
+ /** Custom content - when provided, replaces default content rendering */
202
+ children?: ReactNode;
203
+ /** Resolved icon ID for this item */
204
+ iconId?: IconConfig["iconId"];
205
+ /** Resolved icon color for this item */
206
+ iconColor?: IconConfig["color"];
207
+ /** Resolved action buttons for this item */
208
+ actions?: ResolvedAction[];
209
+ /** Resolved decorators for this item */
210
+ decorators?: ResolvedDecorator[];
211
+ /** Data attribute for depth (for nested contexts) */
212
+ "data-depth"?: number;
213
+ };
214
+ /**
215
+ * Basic data provider interface for async lists
216
+ * Can be extended for pagination, cursor-based loading, etc.
217
+ */
218
+ export interface AsyncListDataProvider<I extends Record<string, any>, T extends ListItem = ListItem> {
219
+ /** Observable items array */
220
+ items: T[];
221
+ /** Original items map for resolving actions */
222
+ originalItems: Map<string, I>;
223
+ /**
224
+ * Observable loading state.
225
+ * True when the provider is loading data (initialization, activation, etc.)
226
+ */
227
+ isLoading?: boolean;
228
+ /** Initialize the provider */
229
+ init(): Promise<void>;
230
+ /** Dispose of the provider */
231
+ dispose(): void;
232
+ /** Promise that resolves when provider is ready */
233
+ whenReady?: () => Promise<void>;
234
+ /** Refresh the data */
235
+ refresh?: () => Promise<void>;
236
+ }
237
+ /**
238
+ * Factory for creating item templates based on item data.
239
+ * Enables dynamic template selection for different item types or states.
240
+ *
241
+ * @category Components
242
+ * @typeParam T - The ListItem type for this factory
243
+ *
244
+ * @example
245
+ * ```tsx
246
+ * const itemFactory: AsyncListItemTemplateFactory<MyItem> = {
247
+ * build: (item) => {
248
+ * if (item.type === 'folder') return FolderTemplate;
249
+ * return FileTemplate;
250
+ * }
251
+ * };
252
+ *
253
+ * <AsyncList ItemTemplate={itemFactory} dataProvider={provider} />
254
+ * ```
255
+ */
256
+ export interface AsyncListItemTemplateFactory<T extends ListItem> {
257
+ /** Build an item component based on item data */
258
+ build: (item: T) => FunctionComponent<AsyncListItemTemplateProps<T>>;
259
+ }
260
+ /**
261
+ * Item template type - can be a static component or a factory.
262
+ *
263
+ * Use a factory when you need to dynamically select templates based on item data.
264
+ * Use a static component when all items share the same template.
265
+ *
266
+ * @category Components
267
+ * @typeParam T - The ListItem type for this template
268
+ */
269
+ export type AsyncListItemTemplateType<T extends ListItem> = FunctionComponent<AsyncListItemTemplateProps<T>> | AsyncListItemTemplateFactory<T>;
270
+ /**
271
+ * Expression function that extracts a group name from a transformed item.
272
+ * Returns the group name string, or undefined for ungrouped items.
273
+ *
274
+ * Ungrouped items (returning undefined) appear at the top of the list.
275
+ * Groups are sorted alphabetically by their group name.
276
+ *
277
+ * @typeParam T - The transformed ListItem type
278
+ *
279
+ * @example
280
+ * ```typescript
281
+ * const groupExpression: ItemGroupExpression<MyItem> = (item) => item.category;
282
+ * ```
283
+ */
284
+ export type ItemGroupExpression<T extends ListItem = ListItem> = (item: T) => string | undefined;
285
+ export { isItemTemplateFactory } from './helpers/is-item-template-factory';
286
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/async-list/types.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,19 @@
1
1
  import { AsyncTreeBranch, AsyncTreeDataProvider, BranchLoadingState } from './async-tree-data-provider';
2
2
  import { InputFilterAware, InputSortAware, ListItem, OutputFilterAware, OutputSortAware, DataProviderContext, DataProviderContextAware, ItemMap } from '../types';
3
- import { IObservableArray } from 'mobx';
4
3
 
5
4
  /**
6
- * Base implementation of async tree data provider with fine-grained reactivity.
5
+ * Base implementation of async tree data provider with node-map architecture.
7
6
  *
8
- * REACTIVITY MODEL:
9
- * - Root items: Observable array - changes trigger root-level recomputation only
10
- * - Loaded children: Observable map - changes trigger specific branch recomputation only
11
- * - Loading states: Observable map - changes trigger specific branch UI updates only
7
+ * ARCHITECTURE:
8
+ * - Single `_nodes` map stores all node data (original, transformed, children, fetch state)
9
+ * - `_rootIds` array tracks root node order
10
+ * - Tree structure is derived from the flat node map
11
+ * - Supports both eager (all data upfront) and lazy (fetch on expand) loading
12
12
  *
13
- * PERFORMANCE:
14
- * - Fine-grained MobX tracking ensures only affected branches recompute
15
- * - Object identity preservation minimizes React re-renders
16
- * - Lazy loading reduces initial computation cost
17
- * - Branch cache maintains object references across recomputations
13
+ * LOADING STRATEGIES:
14
+ * - Eager: All data available in model, tree built synchronously
15
+ * - Lazy: Children fetched on demand via expandBranch()
16
+ * - expandAll(): Recursively expands all nodes (for expandedMode)
18
17
  *
19
18
  * DATA PIPELINE:
20
19
  * Raw Items (I[])
@@ -23,53 +22,60 @@ import { IObservableArray } from 'mobx';
23
22
  * → itemMap (transform I → T)
24
23
  * → filterItem (egress filter on T)
25
24
  * → sortItem (egress sort on T)
26
- * → Build branches recursively
25
+ * → Build tree from node map
27
26
  *
28
27
  * @category Data Providers
29
28
  * @typeParam P - Parent model type that provides data
30
29
  * @typeParam I - Raw input item type from the data source
31
30
  * @typeParam T - Transformed ListItem type for display
32
31
  * @typeParam C - Context data type for filtering and sorting
33
- *
34
- * @example
35
- * ```typescript
36
- * class MyTreeProvider extends BaseAsyncTreeDataProvider<Model, RawItem, TreeItem> {
37
- * constructor(model: Model) {
38
- * super(
39
- * model,
40
- * async function() { return await this.getRoots(); },
41
- * async function(item) { return await this.getChildren(item.id); },
42
- * (item) => ({ id: item.id, name: item.name })
43
- * );
44
- * }
45
- *
46
- * hasChildren(item: RawItem) { return item.type === 'folder'; }
47
- * getItemId(item: RawItem) { return item.id; }
48
- * }
49
- * ```
50
- *
51
- * @see {@link AsyncTreeDataProvider} for the interface this implements
52
- * @see {@link AsyncTreeList} for the React component that uses this provider
53
- *
54
- * @author TBD
55
- * @version 2.1.1
56
32
  */
57
33
  export declare abstract class BaseAsyncTreeDataProvider<P extends Record<string, any>, I extends Record<string, any>, T extends ListItem = ListItem, C extends Record<string, any> = Record<string, any>> implements AsyncTreeDataProvider<I, T, C>, InputSortAware<I>, InputFilterAware<I, C>, OutputSortAware<T>, OutputFilterAware<T, C>, DataProviderContextAware<C> {
58
34
  protected parent: P;
59
35
  private _itemMap;
60
36
  private rootResolver;
61
- private childResolver;
37
+ protected childResolver: (this: P, item: I, context?: DataProviderContext<C>) => Promise<I[]>;
62
38
  private rootDisposer?;
63
- private childDisposers;
64
- loadingStates: Map<string, BranchLoadingState>;
65
- loadedChildren: Map<string, I[]>;
66
- rootItems: IObservableArray<I>;
39
+ /**
40
+ * Optional synchronous function for MobX tracking of root items.
41
+ * When provided, this is called inside the reaction to track observable dependencies.
42
+ * This is necessary because the async rootResolver can't be tracked by MobX.
43
+ */
44
+ protected rootTrackingFn?: (parent: P, context?: DataProviderContext<C>) => void;
45
+ /**
46
+ * Optional synchronous function for MobX tracking of child items.
47
+ * When provided, this is called inside child reactions to track observable dependencies.
48
+ */
49
+ protected childTrackingFn?: (parent: P, item: I, context?: DataProviderContext<C>) => void;
50
+ /**
51
+ * Single source of truth: all nodes keyed by ID
52
+ */
53
+ private _nodes;
54
+ /**
55
+ * Root node IDs in display order
56
+ */
57
+ private _rootIds;
58
+ /**
59
+ * Provider context for filtering/sorting
60
+ */
67
61
  context: DataProviderContext<C>;
68
- private _itemCache;
69
- private _branchCache;
70
- private _originalItems;
62
+ /**
63
+ * Version tracking for manual refresh
64
+ */
71
65
  version: number;
66
+ /**
67
+ * Whether provider is initialized
68
+ */
72
69
  initialized: boolean;
70
+ /**
71
+ * Whether expandAll is in progress
72
+ */
73
+ private _expandingAll;
74
+ /**
75
+ * Reaction disposers for expanded branches.
76
+ * Tracks observable changes in children for each expanded node.
77
+ */
78
+ private _childDisposers;
73
79
  constructor(parent: P, rootResolver: (this: P, context?: DataProviderContext<C>) => Promise<I[]>, childResolver: (this: P, item: I, context?: DataProviderContext<C>) => Promise<I[]>, itemMap: ItemMap<I, T, C>, contextData?: C);
74
80
  /**
75
81
  * Abstract method to check if an item has children.
@@ -128,49 +134,104 @@ export declare abstract class BaseAsyncTreeDataProvider<P extends Record<string,
128
134
  removeContextValue(key: keyof C): void;
129
135
  /**
130
136
  * Computed tree structure with loading states.
131
- * Fine-grained reactivity: Only affected branches recompute when data changes.
137
+ * Derived from the flat node map.
132
138
  */
133
139
  get tree(): AsyncTreeBranch<T>[];
134
140
  /**
135
- * Computed getter for original items map.
136
- * Provides observable access to original items for components while maintaining encapsulation.
137
- *
138
- * @returns Read-only map of item IDs to original items
141
+ * Computed root items array for interface compatibility.
142
+ */
143
+ get rootItems(): I[];
144
+ /**
145
+ * Computed loading states map for interface compatibility.
146
+ */
147
+ get loadingStates(): Map<string, BranchLoadingState>;
148
+ /**
149
+ * Computed loaded children map for interface compatibility.
150
+ */
151
+ get loadedChildren(): Map<string, I[]>;
152
+ /**
153
+ * Computed original items map for interface compatibility.
139
154
  */
140
155
  get originalItems(): ReadonlyMap<string, I>;
141
156
  /**
142
- * Build async tree recursively with fine-grained reactivity.
143
- * MobX tracks individual map entries, so only affected branches recompute.
157
+ * Build a branch and its children from the node map.
144
158
  */
145
- private buildAsyncTree;
159
+ private buildBranch;
160
+ /**
161
+ * Add or update a node in the map.
162
+ * If the node is being moved (parentId changed), removes it from the old parent's children.
163
+ */
164
+ private setNode;
165
+ /**
166
+ * Set children for a node.
167
+ */
168
+ private setChildren;
146
169
  /**
147
170
  * Expand a branch and load its children if not already loaded.
148
- * Sets up reactive tracking so child data changes trigger targeted branch updates.
149
- * Observable updates trigger targeted UI recomputation.
171
+ * Sets up reactive tracking to automatically reload children when
172
+ * the underlying data changes.
150
173
  */
151
174
  expandBranch(itemId: string, item: I): Promise<void>;
175
+ /**
176
+ * Set up a reaction to track changes in a branch's children.
177
+ * When the childResolver's observable dependencies change, the children are reloaded.
178
+ */
179
+ private setupChildReaction;
180
+ /**
181
+ * Reload children for a specific branch without full re-initialization.
182
+ * Called by the kosAutoEffect when child data changes.
183
+ */
184
+ private reloadChildren;
185
+ /**
186
+ * Dispose of a child reaction for a specific branch.
187
+ */
188
+ private disposeChildReaction;
189
+ /**
190
+ * Expand all nodes recursively.
191
+ * Call this when expandedMode is true.
192
+ *
193
+ * @returns Promise that resolves when all nodes are expanded
194
+ */
195
+ expandAll(): Promise<void>;
196
+ /**
197
+ * Recursively expand nodes that have children.
198
+ */
199
+ private expandNodesRecursively;
152
200
  /**
153
201
  * Collapse a branch.
154
- * Disposes child reaction and optionally clears loaded children to free memory.
202
+ * Clears loaded children and disposes of child reaction to free memory.
155
203
  */
156
204
  collapseBranch(itemId: string): void;
205
+ /**
206
+ * Recursively dispose of child reactions for all descendants.
207
+ */
208
+ private disposeDescendantReactions;
209
+ /**
210
+ * Recursively remove children from the node map.
211
+ */
212
+ private removeChildrenRecursively;
157
213
  /**
158
214
  * Clear cached children for a branch or all branches.
159
- * Disposes child reactions for cleared branches.
160
215
  */
161
216
  clearCache(itemId?: string): void;
162
217
  /**
163
218
  * Initialize the data provider.
164
219
  * Loads root items and sets up reactivity.
220
+ * If already initialized, clears cache and reloads.
165
221
  */
166
222
  init(): Promise<void>;
223
+ /**
224
+ * Reload root items without full re-initialization.
225
+ * Called by the kosAutoEffect when model data changes.
226
+ */
227
+ private reloadRoots;
167
228
  /**
168
229
  * Wait for the provider to be initialized.
169
230
  */
170
231
  whenReady(): Promise<void>;
171
232
  /**
172
233
  * Dispose of the data provider.
173
- * Cleans up all reactions, caches, and resets state.
234
+ * Cleans up all state.
174
235
  */
175
236
  dispose(): void;
176
237
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-async-tree-data-provider.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/common/data-providers/base-async-tree-data-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-async-tree-data-provider.d.ts","sourceRoot":"","sources":["../../../../../../../../../packages/libraries/base-ui-components/src/components/molecules/list/common/data-providers/base-async-tree-data-provider.ts"],"names":[],"mappings":"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"}