domma-js 0.56.0 → 0.58.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 (121) hide show
  1. package/README.md +2 -2
  2. package/assets/types/generated/public/assets/flags/africa.d.ts +6 -0
  3. package/assets/types/generated/public/assets/flags/americas.d.ts +6 -0
  4. package/assets/types/generated/public/assets/flags/asia.d.ts +6 -0
  5. package/assets/types/generated/public/assets/flags/europe.d.ts +9 -0
  6. package/assets/types/generated/public/assets/flags/index.d.ts +11 -0
  7. package/assets/types/generated/public/assets/flags/oceania.d.ts +2 -0
  8. package/assets/types/generated/public/assets/icons/buildings.d.ts +6 -0
  9. package/assets/types/generated/public/assets/icons/code.d.ts +2 -0
  10. package/assets/types/generated/public/assets/icons/commerce.d.ts +7 -0
  11. package/assets/types/generated/public/assets/icons/communication.d.ts +7 -0
  12. package/assets/types/generated/public/assets/icons/devices.d.ts +6 -0
  13. package/assets/types/generated/public/assets/icons/emojis.d.ts +6 -0
  14. package/assets/types/generated/public/assets/icons/files.d.ts +7 -0
  15. package/assets/types/generated/public/assets/icons/finance.d.ts +6 -0
  16. package/assets/types/generated/public/assets/icons/forms.d.ts +5 -0
  17. package/assets/types/generated/public/assets/icons/health.d.ts +6 -0
  18. package/assets/types/generated/public/assets/icons/index.d.ts +24 -0
  19. package/assets/types/generated/public/assets/icons/media.d.ts +7 -0
  20. package/assets/types/generated/public/assets/icons/navigation.d.ts +7 -0
  21. package/assets/types/generated/public/assets/icons/seasonal.d.ts +6 -0
  22. package/assets/types/generated/public/assets/icons/social.d.ts +7 -0
  23. package/assets/types/generated/public/assets/icons/sport.d.ts +6 -0
  24. package/assets/types/generated/public/assets/icons/status.d.ts +7 -0
  25. package/assets/types/generated/public/assets/icons/transport.d.ts +7 -0
  26. package/assets/types/generated/public/assets/icons/ui.d.ts +7 -0
  27. package/assets/types/generated/public/assets/icons/weather.d.ts +6 -0
  28. package/assets/types/generated/src/auth.d.ts +424 -0
  29. package/assets/types/generated/src/avatar.d.ts +270 -0
  30. package/assets/types/generated/src/binding-source.d.ts +58 -0
  31. package/assets/types/generated/src/butterfly-drawing.d.ts +2 -0
  32. package/assets/types/generated/src/component-factory.d.ts +150 -0
  33. package/assets/types/generated/src/component.d.ts +162 -0
  34. package/assets/types/generated/src/components/back-to-top.d.ts +150 -0
  35. package/assets/types/generated/src/components/badge.d.ts +208 -0
  36. package/assets/types/generated/src/components/card.d.ts +189 -0
  37. package/assets/types/generated/src/components/command-palette.d.ts +352 -0
  38. package/assets/types/generated/src/components/dropzone.d.ts +342 -0
  39. package/assets/types/generated/src/components/focus-trap.d.ts +238 -0
  40. package/assets/types/generated/src/components/loader.d.ts +133 -0
  41. package/assets/types/generated/src/components/modal.d.ts +339 -0
  42. package/assets/types/generated/src/components/range-slider.d.ts +267 -0
  43. package/assets/types/generated/src/components/shared.d.ts +91 -0
  44. package/assets/types/generated/src/components/split-pane.d.ts +239 -0
  45. package/assets/types/generated/src/components/toast.d.ts +284 -0
  46. package/assets/types/generated/src/components/tooltip.d.ts +200 -0
  47. package/assets/types/generated/src/components/virtual-list.d.ts +340 -0
  48. package/assets/types/generated/src/config.d.ts +193 -0
  49. package/assets/types/generated/src/context-cursor.d.ts +69 -0
  50. package/assets/types/generated/src/context-menu.d.ts +596 -0
  51. package/assets/types/generated/src/dates.d.ts +367 -0
  52. package/assets/types/generated/src/dom.d.ts +1221 -0
  53. package/assets/types/generated/src/effects.d.ts +1281 -0
  54. package/assets/types/generated/src/elements.d.ts +4994 -0
  55. package/assets/types/generated/src/escape.d.ts +5 -0
  56. package/assets/types/generated/src/flags-bundle.d.ts +4 -0
  57. package/assets/types/generated/src/flags.d.ts +338 -0
  58. package/assets/types/generated/src/forms.d.ts +1060 -0
  59. package/assets/types/generated/src/globals.d.ts +45 -0
  60. package/assets/types/generated/src/http.d.ts +131 -0
  61. package/assets/types/generated/src/i18n.d.ts +261 -0
  62. package/assets/types/generated/src/icons.d.ts +213 -0
  63. package/assets/types/generated/src/index.d.ts +249 -0
  64. package/assets/types/generated/src/input-group.d.ts +135 -0
  65. package/assets/types/generated/src/models.d.ts +968 -0
  66. package/assets/types/generated/src/popover.d.ts +413 -0
  67. package/assets/types/generated/src/router.d.ts +344 -0
  68. package/assets/types/generated/src/safe-url.d.ts +10 -0
  69. package/assets/types/generated/src/sanitize.d.ts +97 -0
  70. package/assets/types/generated/src/schema-builder.d.ts +420 -0
  71. package/assets/types/generated/src/skeleton.d.ts +135 -0
  72. package/assets/types/generated/src/smooth-caret.d.ts +61 -0
  73. package/assets/types/generated/src/sortable.d.ts +368 -0
  74. package/assets/types/generated/src/storage.d.ts +93 -0
  75. package/assets/types/generated/src/tables.d.ts +901 -0
  76. package/assets/types/generated/src/theme.d.ts +262 -0
  77. package/assets/types/generated/src/ticker-tape-drawing.d.ts +2 -0
  78. package/assets/types/generated/src/treeview.d.ts +504 -0
  79. package/assets/types/generated/src/utils.d.ts +1667 -0
  80. package/assets/types/generated/src/web-components/base/domma-element.d.ts +134 -0
  81. package/assets/types/generated/src/web-components/index.d.ts +14 -0
  82. package/assets/types/generated/vendor/domma-reactive.d.ts +587 -0
  83. package/assets/types/index.d.ts +104 -226
  84. package/package.json +5 -2
  85. package/public/dist/bundles/domma-complete.css +20 -14
  86. package/public/dist/bundles/domma-data-focused.css +20 -14
  87. package/public/dist/bundles/domma-essentials.css +20 -14
  88. package/public/dist/bundles/domma-full.css +20 -14
  89. package/public/dist/bundles/domma-minimal.css +8 -8
  90. package/public/dist/domma-flags.esm.js +3 -3
  91. package/public/dist/domma-flags.esm.js.map +1 -1
  92. package/public/dist/domma-flags.min.js +3 -3
  93. package/public/dist/domma-flags.min.js.map +1 -1
  94. package/public/dist/domma-syntax.min.js +3 -3
  95. package/public/dist/domma.css +3 -3
  96. package/public/dist/domma.esm.js +5 -5
  97. package/public/dist/domma.esm.js.map +1 -1
  98. package/public/dist/domma.min.js +5 -5
  99. package/public/dist/domma.min.js.map +1 -1
  100. package/public/dist/elements.css +9 -3
  101. package/public/dist/grid.css +3 -3
  102. package/public/dist/syntax.css +3 -3
  103. package/public/dist/themes/domma-themes.css +3 -3
  104. package/templates/kickstart/.claude/snippets.md +1 -1
  105. package/templates/kickstart/CLAUDE.md +1 -1
  106. package/templates/kickstart/frontend/types/domma.d.ts +7 -4
  107. package/templates/kickstart-spa/.claude/snippets.md +1 -1
  108. package/assets/types/config.d.ts +0 -136
  109. package/assets/types/dates.d.ts +0 -209
  110. package/assets/types/dom.d.ts +0 -448
  111. package/assets/types/elements.d.ts +0 -1168
  112. package/assets/types/flags.d.ts +0 -130
  113. package/assets/types/http.d.ts +0 -97
  114. package/assets/types/i18n.d.ts +0 -99
  115. package/assets/types/icons.d.ts +0 -147
  116. package/assets/types/models.d.ts +0 -260
  117. package/assets/types/smooth-caret.d.ts +0 -12
  118. package/assets/types/storage.d.ts +0 -93
  119. package/assets/types/tables.d.ts +0 -327
  120. package/assets/types/theme.d.ts +0 -137
  121. package/assets/types/utils.d.ts +0 -675
@@ -0,0 +1,504 @@
1
+ export default TreeView;
2
+ /**
3
+ * A node id: whatever the data's `idKey` holds.
4
+ */
5
+ export type TreeViewNodeId = string | number;
6
+ /**
7
+ * A data row. The keys are configurable (`idKey`, `parentKey`, `childrenKey`, `labelKey`,
8
+ * `iconKey`, `colorKey`); `children` is filled in when a flat array is given.
9
+ */
10
+ export type TreeViewNode = Record<string, any>;
11
+ /**
12
+ * The state handed to `renderNode`.
13
+ */
14
+ export type TreeViewNodeState = {
15
+ isExpanded: boolean;
16
+ isSelected: boolean;
17
+ hasChildren: boolean;
18
+ };
19
+ /**
20
+ * An action button drawn on each node.
21
+ */
22
+ export type TreeViewAction = {
23
+ /**
24
+ * - Passed to onAction; the button's text when there is no icon
25
+ */
26
+ name: string;
27
+ /**
28
+ * - Icon name
29
+ */
30
+ icon?: string;
31
+ /**
32
+ * - Title and aria-label (default: the name)
33
+ */
34
+ tooltip?: string;
35
+ /**
36
+ * - Show the button on this node?
37
+ */
38
+ visible?: (node: TreeViewNode) => boolean;
39
+ };
40
+ export type TreeViewOptions = {
41
+ /**
42
+ * - Flat (with parentKey) or hierarchical (with childrenKey) rows
43
+ */
44
+ data?: TreeViewNode[];
45
+ /**
46
+ * - Default 'id'
47
+ */
48
+ idKey?: string;
49
+ /**
50
+ * - Default 'parent_id'
51
+ */
52
+ parentKey?: string;
53
+ /**
54
+ * - Default 'children'
55
+ */
56
+ childrenKey?: string;
57
+ /**
58
+ * - Default 'name'
59
+ */
60
+ labelKey?: string;
61
+ /**
62
+ * - Default 'icon'
63
+ */
64
+ iconKey?: string;
65
+ /**
66
+ * - Default 'color'
67
+ */
68
+ colorKey?: string;
69
+ /**
70
+ * - Default true
71
+ */
72
+ expandedByDefault?: boolean;
73
+ /**
74
+ * - Ids expanded at the start
75
+ */
76
+ expandedNodes?: TreeViewNodeId[];
77
+ /**
78
+ * - Default true
79
+ */
80
+ selectable?: boolean;
81
+ /**
82
+ * - Default false
83
+ */
84
+ multiSelect?: boolean;
85
+ /**
86
+ * - Ids selected at the start
87
+ */
88
+ selectedNodes?: TreeViewNodeId[];
89
+ /**
90
+ * - HTML for a node's content
91
+ */
92
+ renderNode?: ((node: TreeViewNode, depth: number, state: TreeViewNodeState) => string) | null;
93
+ /**
94
+ * - Badge text (HTML), or null for none
95
+ */
96
+ getBadge?: ((node: TreeViewNode) => string | number | null | undefined) | null;
97
+ /**
98
+ * - Icon name (default: node[iconKey])
99
+ */
100
+ getNodeIcon?: ((node: TreeViewNode) => string | null | undefined) | null;
101
+ /**
102
+ * - Extra classes on the node
103
+ */
104
+ getNodeClass?: ((node: TreeViewNode) => string) | null;
105
+ /**
106
+ * - Action buttons on each node
107
+ */
108
+ actions?: TreeViewAction[];
109
+ /**
110
+ * - rem per level (default 1.5)
111
+ */
112
+ indentSize?: number;
113
+ /**
114
+ * - Default true
115
+ */
116
+ showIcons?: boolean;
117
+ /**
118
+ * - Default true
119
+ */
120
+ showToggleButtons?: boolean;
121
+ /**
122
+ * - Default 'chevron-down'
123
+ */
124
+ toggleIcon?: string;
125
+ onSelect?: ((nodeId: TreeViewNodeId, node: TreeViewNode, event: null) => void) | null;
126
+ onDeselect?: ((nodeId: TreeViewNodeId, node: TreeViewNode, event: null) => void) | null;
127
+ onExpand?: ((nodeId: TreeViewNodeId, node: TreeViewNode, event: null) => void) | null;
128
+ onCollapse?: ((nodeId: TreeViewNodeId, node: TreeViewNode, event: null) => void) | null;
129
+ onAction?: ((action: string, nodeId: TreeViewNodeId, node: TreeViewNode, event: MouseEvent) => void) | null;
130
+ onClick?: ((nodeId: TreeViewNodeId, node: TreeViewNode, event: MouseEvent) => void) | null;
131
+ };
132
+ export type TreeViewInstance = TreeView;
133
+ /**
134
+ * A node id: whatever the data's `idKey` holds.
135
+ * @typedef {string|number} TreeViewNodeId
136
+ */
137
+ /**
138
+ * A data row. The keys are configurable (`idKey`, `parentKey`, `childrenKey`, `labelKey`,
139
+ * `iconKey`, `colorKey`); `children` is filled in when a flat array is given.
140
+ * @typedef {Record<string, any>} TreeViewNode
141
+ */
142
+ /**
143
+ * The state handed to `renderNode`.
144
+ * @typedef {object} TreeViewNodeState
145
+ * @property {boolean} isExpanded
146
+ * @property {boolean} isSelected
147
+ * @property {boolean} hasChildren
148
+ */
149
+ /**
150
+ * An action button drawn on each node.
151
+ * @typedef {object} TreeViewAction
152
+ * @property {string} name - Passed to onAction; the button's text when there is no icon
153
+ * @property {string} [icon] - Icon name
154
+ * @property {string} [tooltip] - Title and aria-label (default: the name)
155
+ * @property {(node: TreeViewNode) => boolean} [visible] - Show the button on this node?
156
+ */
157
+ /**
158
+ * @typedef {object} TreeViewOptions
159
+ * @property {TreeViewNode[]} [data] - Flat (with parentKey) or hierarchical (with childrenKey) rows
160
+ * @property {string} [idKey] - Default 'id'
161
+ * @property {string} [parentKey] - Default 'parent_id'
162
+ * @property {string} [childrenKey] - Default 'children'
163
+ * @property {string} [labelKey] - Default 'name'
164
+ * @property {string} [iconKey] - Default 'icon'
165
+ * @property {string} [colorKey] - Default 'color'
166
+ * @property {boolean} [expandedByDefault] - Default true
167
+ * @property {TreeViewNodeId[]} [expandedNodes] - Ids expanded at the start
168
+ * @property {boolean} [selectable] - Default true
169
+ * @property {boolean} [multiSelect] - Default false
170
+ * @property {TreeViewNodeId[]} [selectedNodes] - Ids selected at the start
171
+ * @property {((node: TreeViewNode, depth: number, state: TreeViewNodeState) => string)|null} [renderNode] - HTML for a node's content
172
+ * @property {((node: TreeViewNode) => string|number|null|undefined)|null} [getBadge] - Badge text (HTML), or null for none
173
+ * @property {((node: TreeViewNode) => string|null|undefined)|null} [getNodeIcon] - Icon name (default: node[iconKey])
174
+ * @property {((node: TreeViewNode) => string)|null} [getNodeClass] - Extra classes on the node
175
+ * @property {TreeViewAction[]} [actions] - Action buttons on each node
176
+ * @property {number} [indentSize] - rem per level (default 1.5)
177
+ * @property {boolean} [showIcons] - Default true
178
+ * @property {boolean} [showToggleButtons] - Default true
179
+ * @property {string} [toggleIcon] - Default 'chevron-down'
180
+ * @property {((nodeId: TreeViewNodeId, node: TreeViewNode, event: null) => void)|null} [onSelect]
181
+ * @property {((nodeId: TreeViewNodeId, node: TreeViewNode, event: null) => void)|null} [onDeselect]
182
+ * @property {((nodeId: TreeViewNodeId, node: TreeViewNode, event: null) => void)|null} [onExpand]
183
+ * @property {((nodeId: TreeViewNodeId, node: TreeViewNode, event: null) => void)|null} [onCollapse]
184
+ * @property {((action: string, nodeId: TreeViewNodeId, node: TreeViewNode, event: MouseEvent) => void)|null} [onAction]
185
+ * @property {((nodeId: TreeViewNodeId, node: TreeViewNode, event: MouseEvent) => void)|null} [onClick]
186
+ */
187
+ /** @typedef {TreeView} TreeViewInstance */
188
+ declare class TreeView extends Component {
189
+ static defaults: {
190
+ data: any[];
191
+ idKey: string;
192
+ parentKey: string;
193
+ childrenKey: string;
194
+ labelKey: string;
195
+ iconKey: string;
196
+ colorKey: string;
197
+ expandedByDefault: boolean;
198
+ expandedNodes: any[];
199
+ selectable: boolean;
200
+ multiSelect: boolean;
201
+ selectedNodes: any[];
202
+ renderNode: any;
203
+ getBadge: any;
204
+ getNodeIcon: any;
205
+ getNodeClass: any;
206
+ actions: any[];
207
+ indentSize: number;
208
+ showIcons: boolean;
209
+ showToggleButtons: boolean;
210
+ toggleIcon: string;
211
+ onSelect: any;
212
+ onDeselect: any;
213
+ onExpand: any;
214
+ onCollapse: any;
215
+ onAction: any;
216
+ onClick: any;
217
+ };
218
+ /**
219
+ * @param {string|HTMLElement} selector - Container element or selector
220
+ * @param {TreeViewOptions} [options]
221
+ */
222
+ constructor(selector: string | HTMLElement, options?: TreeViewOptions);
223
+ _tree: any[];
224
+ _flatMap: {};
225
+ _expandedNodes: Set<any>;
226
+ _selectedNodes: Set<any>;
227
+ /**
228
+ * Initialise the TreeView component
229
+ * @private
230
+ */
231
+ private _init;
232
+ /**
233
+ * Setup event delegation
234
+ * @private
235
+ */
236
+ private _setupEventListeners;
237
+ /**
238
+ * Build tree structure from flat data
239
+ * @private
240
+ * @param {Array} data - Flat array of nodes
241
+ * @returns {Object} Object with tree and nodeMap
242
+ */
243
+ private _buildTree;
244
+ /**
245
+ * Sort tree nodes recursively
246
+ * @private
247
+ * @param {Array} nodes - Array of nodes to sort
248
+ */
249
+ private _sortTree;
250
+ /**
251
+ * Render tree to DOM
252
+ * @private
253
+ */
254
+ private _render;
255
+ /**
256
+ * Render a single node recursively
257
+ * @private
258
+ * @param {Object} node - Node data
259
+ * @param {number} depth - Current depth level
260
+ * @returns {string} HTML string
261
+ */
262
+ private _renderNode;
263
+ /**
264
+ * Default node rendering
265
+ * @private
266
+ * @param {Object} node - Node data
267
+ * @param {number} depth - Depth level
268
+ * @param {Object} state - Node state
269
+ * @returns {string} HTML string
270
+ */
271
+ private _defaultRenderNode;
272
+ /**
273
+ * Render toggle button
274
+ * @private
275
+ * @param {TreeViewNodeId} nodeId - Node ID
276
+ * @param {boolean} isExpanded - Is node expanded
277
+ * @returns {string} HTML string
278
+ */
279
+ private _renderToggle;
280
+ /**
281
+ * Render action buttons
282
+ * @private
283
+ * @param {Object} node - Node data
284
+ * @returns {string} HTML string
285
+ */
286
+ private _renderActions;
287
+ /**
288
+ * Handle node selection
289
+ * @private
290
+ * @param {TreeViewNodeId} nodeId - Node ID
291
+ * @param {Event} event - Click event
292
+ */
293
+ private _handleSelect;
294
+ /**
295
+ * Handle action button click
296
+ * @private
297
+ * @param {string} action - Action name
298
+ * @param {TreeViewNodeId} nodeId - Node ID
299
+ * @param {Event} event - Click event
300
+ */
301
+ private _handleAction;
302
+ /**
303
+ * Parse node ID (convert string to number if needed)
304
+ * @private
305
+ * @param {string} idString - ID as string
306
+ * @returns {string|number} Parsed ID
307
+ */
308
+ private _parseNodeId;
309
+ /**
310
+ * Escape HTML in strings
311
+ * @private
312
+ * @param {string} text - Text to escape
313
+ * @returns {string} Escaped text
314
+ */
315
+ private _escapeHtml;
316
+ /**
317
+ * Set tree data
318
+ * @param {TreeViewNode[]} data - Flat or hierarchical array
319
+ * @returns {this} This instance for chaining
320
+ */
321
+ setData(data: TreeViewNode[]): this;
322
+ /**
323
+ * Get tree data (hierarchical)
324
+ * @returns {TreeViewNode[]} Tree array
325
+ */
326
+ getData(): TreeViewNode[];
327
+ /**
328
+ * Get flat data (all nodes)
329
+ * @returns {TreeViewNode[]} Flat array of nodes
330
+ */
331
+ getFlatData(): TreeViewNode[];
332
+ /**
333
+ * Refresh tree rendering
334
+ * @returns {this} This instance for chaining
335
+ */
336
+ refresh(): this;
337
+ /**
338
+ * Get node by ID
339
+ * @param {TreeViewNodeId} nodeId - Node ID
340
+ * @returns {TreeViewNode|null} Node data or null
341
+ */
342
+ getNode(nodeId: TreeViewNodeId): TreeViewNode | null;
343
+ /**
344
+ * Update node data
345
+ * @param {TreeViewNodeId} nodeId - Node ID
346
+ * @param {Partial<TreeViewNode>} changes - Changes to apply
347
+ * @returns {this} This instance for chaining
348
+ */
349
+ updateNode(nodeId: TreeViewNodeId, changes: Partial<TreeViewNode>): this;
350
+ /**
351
+ * Select a node
352
+ * @param {TreeViewNodeId} nodeId - Node ID
353
+ * @param {boolean} [silent] - Skip callback if true
354
+ * @returns {this} This instance for chaining
355
+ */
356
+ select(nodeId: TreeViewNodeId, silent?: boolean): this;
357
+ /**
358
+ * Deselect a node
359
+ * @param {TreeViewNodeId} nodeId - Node ID
360
+ * @param {boolean} [silent] - Skip callback if true
361
+ * @returns {this} This instance for chaining
362
+ */
363
+ deselect(nodeId: TreeViewNodeId, silent?: boolean): this;
364
+ /**
365
+ * Toggle node selection
366
+ * @param {TreeViewNodeId} nodeId - Node ID
367
+ * @returns {this} This instance for chaining
368
+ */
369
+ toggleSelect(nodeId: TreeViewNodeId): this;
370
+ /**
371
+ * Select all nodes
372
+ * @returns {this} This instance for chaining
373
+ */
374
+ selectAll(): this;
375
+ /**
376
+ * Deselect all nodes
377
+ * @param {boolean} [silent] - Skip callbacks if true
378
+ * @returns {this} This instance for chaining
379
+ */
380
+ deselectAll(silent?: boolean): this;
381
+ /**
382
+ * Get selected node IDs
383
+ * @returns {TreeViewNodeId[]} Array of selected IDs
384
+ */
385
+ getSelected(): TreeViewNodeId[];
386
+ /**
387
+ * Get selected node objects
388
+ * @returns {TreeViewNode[]} Array of selected nodes
389
+ */
390
+ getSelectedNodes(): TreeViewNode[];
391
+ /**
392
+ * Check if node is selected
393
+ * @param {TreeViewNodeId} nodeId - Node ID
394
+ * @returns {boolean} True if selected
395
+ */
396
+ isSelected(nodeId: TreeViewNodeId): boolean;
397
+ /**
398
+ * Expand a node
399
+ * @param {TreeViewNodeId} nodeId - Node ID
400
+ * @param {boolean} [silent] - Skip callback if true
401
+ * @returns {this} This instance for chaining
402
+ */
403
+ expand(nodeId: TreeViewNodeId, silent?: boolean): this;
404
+ /**
405
+ * Collapse a node
406
+ * @param {TreeViewNodeId} nodeId - Node ID
407
+ * @param {boolean} [silent] - Skip callback if true
408
+ * @returns {this} This instance for chaining
409
+ */
410
+ collapse(nodeId: TreeViewNodeId, silent?: boolean): this;
411
+ /**
412
+ * Toggle node expansion
413
+ * @param {TreeViewNodeId} nodeId - Node ID
414
+ * @returns {this} This instance for chaining
415
+ */
416
+ toggle(nodeId: TreeViewNodeId): this;
417
+ /**
418
+ * Expand all nodes
419
+ * @returns {this} This instance for chaining
420
+ */
421
+ expandAll(): this;
422
+ /**
423
+ * Collapse all nodes
424
+ * @returns {this} This instance for chaining
425
+ */
426
+ collapseAll(): this;
427
+ /**
428
+ * Check if node is expanded
429
+ * @param {TreeViewNodeId} nodeId - Node ID
430
+ * @returns {boolean} True if expanded
431
+ */
432
+ isExpanded(nodeId: TreeViewNodeId): boolean;
433
+ /**
434
+ * Get expanded node IDs
435
+ * @returns {TreeViewNodeId[]} Array of expanded IDs
436
+ */
437
+ getExpanded(): TreeViewNodeId[];
438
+ /**
439
+ * Get parent node
440
+ * @param {TreeViewNodeId} nodeId - Node ID
441
+ * @returns {TreeViewNode|null} Parent node or null
442
+ */
443
+ getParent(nodeId: TreeViewNodeId): TreeViewNode | null;
444
+ /**
445
+ * Get child nodes
446
+ * @param {TreeViewNodeId} nodeId - Node ID
447
+ * @returns {TreeViewNode[]} Array of child nodes
448
+ */
449
+ getChildren(nodeId: TreeViewNodeId): TreeViewNode[];
450
+ /**
451
+ * Get all ancestors (path to root)
452
+ * @param {TreeViewNodeId} nodeId - Node ID
453
+ * @returns {TreeViewNode[]} Array of ancestor nodes
454
+ */
455
+ getAncestors(nodeId: TreeViewNodeId): TreeViewNode[];
456
+ /**
457
+ * Get all descendants (recursive)
458
+ * @param {TreeViewNodeId} nodeId - Node ID
459
+ * @returns {TreeViewNode[]} Array of descendant nodes
460
+ */
461
+ getDescendants(nodeId: TreeViewNodeId): TreeViewNode[];
462
+ /**
463
+ * Get sibling nodes
464
+ * @param {TreeViewNodeId} nodeId - Node ID
465
+ * @returns {TreeViewNode[]} Array of sibling nodes
466
+ */
467
+ getSiblings(nodeId: TreeViewNodeId): TreeViewNode[];
468
+ /**
469
+ * Get node depth level
470
+ * @param {TreeViewNodeId} nodeId - Node ID
471
+ * @returns {number} Depth level (0 = root)
472
+ */
473
+ getLevel(nodeId: TreeViewNodeId): number;
474
+ /**
475
+ * Find first node matching predicate
476
+ * @param {(node: TreeViewNode) => boolean} predicate - Test function
477
+ * @returns {TreeViewNode|null} First matching node or null
478
+ */
479
+ find(predicate: (node: TreeViewNode) => boolean): TreeViewNode | null;
480
+ /**
481
+ * Find all nodes matching predicate
482
+ * @param {(node: TreeViewNode) => boolean} predicate - Test function
483
+ * @returns {TreeViewNode[]} Array of matching nodes
484
+ */
485
+ filter(predicate: (node: TreeViewNode) => boolean): TreeViewNode[];
486
+ /**
487
+ * Iterate all nodes
488
+ * @param {(node: TreeViewNode, id: string) => void} callback - Callback function
489
+ * @returns {this} This instance for chaining
490
+ */
491
+ forEach(callback: (node: TreeViewNode, id: string) => void): this;
492
+ /**
493
+ * Scroll node into view
494
+ * @param {TreeViewNodeId} nodeId - Node ID
495
+ * @param {{behavior?: ScrollBehavior, block?: ScrollLogicalPosition, inline?: ScrollLogicalPosition}} [options] - Scroll options
496
+ * @returns {this} This instance for chaining
497
+ */
498
+ scrollToNode(nodeId: TreeViewNodeId, options?: {
499
+ behavior?: ScrollBehavior;
500
+ block?: ScrollLogicalPosition;
501
+ inline?: ScrollLogicalPosition;
502
+ }): this;
503
+ }
504
+ import Component from './component.js';