@rezi-ui/core 0.1.0-alpha.1
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/README.md +12 -0
- package/dist/abi.d.ts +72 -0
- package/dist/abi.d.ts.map +1 -0
- package/dist/abi.js +86 -0
- package/dist/abi.js.map +1 -0
- package/dist/app/__tests__/dirtyFlagPlan.test.d.ts +2 -0
- package/dist/app/__tests__/dirtyFlagPlan.test.d.ts.map +1 -0
- package/dist/app/__tests__/dirtyFlagPlan.test.js +207 -0
- package/dist/app/__tests__/dirtyFlagPlan.test.js.map +1 -0
- package/dist/app/__tests__/eventPump.test.d.ts +2 -0
- package/dist/app/__tests__/eventPump.test.d.ts.map +1 -0
- package/dist/app/__tests__/eventPump.test.js +48 -0
- package/dist/app/__tests__/eventPump.test.js.map +1 -0
- package/dist/app/__tests__/fatal.test.d.ts +2 -0
- package/dist/app/__tests__/fatal.test.d.ts.map +1 -0
- package/dist/app/__tests__/fatal.test.js +27 -0
- package/dist/app/__tests__/fatal.test.js.map +1 -0
- package/dist/app/__tests__/frameCoalescing.test.d.ts +2 -0
- package/dist/app/__tests__/frameCoalescing.test.d.ts.map +1 -0
- package/dist/app/__tests__/frameCoalescing.test.js +33 -0
- package/dist/app/__tests__/frameCoalescing.test.js.map +1 -0
- package/dist/app/__tests__/helpers.d.ts +39 -0
- package/dist/app/__tests__/helpers.d.ts.map +1 -0
- package/dist/app/__tests__/helpers.js +99 -0
- package/dist/app/__tests__/helpers.js.map +1 -0
- package/dist/app/__tests__/interactivePriority.test.d.ts +2 -0
- package/dist/app/__tests__/interactivePriority.test.d.ts.map +1 -0
- package/dist/app/__tests__/interactivePriority.test.js +61 -0
- package/dist/app/__tests__/interactivePriority.test.js.map +1 -0
- package/dist/app/__tests__/modes.test.d.ts +2 -0
- package/dist/app/__tests__/modes.test.d.ts.map +1 -0
- package/dist/app/__tests__/modes.test.js +48 -0
- package/dist/app/__tests__/modes.test.js.map +1 -0
- package/dist/app/__tests__/onEventHandlers.test.d.ts +2 -0
- package/dist/app/__tests__/onEventHandlers.test.d.ts.map +1 -0
- package/dist/app/__tests__/onEventHandlers.test.js +41 -0
- package/dist/app/__tests__/onEventHandlers.test.js.map +1 -0
- package/dist/app/__tests__/rawRender.test.d.ts +2 -0
- package/dist/app/__tests__/rawRender.test.d.ts.map +1 -0
- package/dist/app/__tests__/rawRender.test.js +102 -0
- package/dist/app/__tests__/rawRender.test.js.map +1 -0
- package/dist/app/__tests__/stateMachine.test.d.ts +2 -0
- package/dist/app/__tests__/stateMachine.test.d.ts.map +1 -0
- package/dist/app/__tests__/stateMachine.test.js +22 -0
- package/dist/app/__tests__/stateMachine.test.js.map +1 -0
- package/dist/app/__tests__/stop_during_frame_rejection.test.d.ts +2 -0
- package/dist/app/__tests__/stop_during_frame_rejection.test.d.ts.map +1 -0
- package/dist/app/__tests__/stop_during_frame_rejection.test.js +54 -0
- package/dist/app/__tests__/stop_during_frame_rejection.test.js.map +1 -0
- package/dist/app/__tests__/stubBackend.d.ts +23 -0
- package/dist/app/__tests__/stubBackend.d.ts.map +1 -0
- package/dist/app/__tests__/stubBackend.js +76 -0
- package/dist/app/__tests__/stubBackend.js.map +1 -0
- package/dist/app/__tests__/syncFrameAckFastPath.test.d.ts +2 -0
- package/dist/app/__tests__/syncFrameAckFastPath.test.d.ts.map +1 -0
- package/dist/app/__tests__/syncFrameAckFastPath.test.js +47 -0
- package/dist/app/__tests__/syncFrameAckFastPath.test.js.map +1 -0
- package/dist/app/__tests__/turnScheduler.test.d.ts +2 -0
- package/dist/app/__tests__/turnScheduler.test.d.ts.map +1 -0
- package/dist/app/__tests__/turnScheduler.test.js +20 -0
- package/dist/app/__tests__/turnScheduler.test.js.map +1 -0
- package/dist/app/__tests__/updates.test.d.ts +2 -0
- package/dist/app/__tests__/updates.test.d.ts.map +1 -0
- package/dist/app/__tests__/updates.test.js +81 -0
- package/dist/app/__tests__/updates.test.js.map +1 -0
- package/dist/app/__tests__/widgetRenderer.integration.test.d.ts +2 -0
- package/dist/app/__tests__/widgetRenderer.integration.test.d.ts.map +1 -0
- package/dist/app/__tests__/widgetRenderer.integration.test.js +305 -0
- package/dist/app/__tests__/widgetRenderer.integration.test.js.map +1 -0
- package/dist/app/createApp.d.ts +68 -0
- package/dist/app/createApp.d.ts.map +1 -0
- package/dist/app/createApp.js +908 -0
- package/dist/app/createApp.js.map +1 -0
- package/dist/app/rawRenderer.d.ts +58 -0
- package/dist/app/rawRenderer.d.ts.map +1 -0
- package/dist/app/rawRenderer.js +89 -0
- package/dist/app/rawRenderer.js.map +1 -0
- package/dist/app/stateMachine.d.ts +44 -0
- package/dist/app/stateMachine.d.ts.map +1 -0
- package/dist/app/stateMachine.js +76 -0
- package/dist/app/stateMachine.js.map +1 -0
- package/dist/app/turnScheduler.d.ts +43 -0
- package/dist/app/turnScheduler.d.ts.map +1 -0
- package/dist/app/turnScheduler.js +72 -0
- package/dist/app/turnScheduler.js.map +1 -0
- package/dist/app/updateQueue.d.ts +32 -0
- package/dist/app/updateQueue.d.ts.map +1 -0
- package/dist/app/updateQueue.js +37 -0
- package/dist/app/updateQueue.js.map +1 -0
- package/dist/app/widgetRenderer/codeEditorRouting.d.ts +8 -0
- package/dist/app/widgetRenderer/codeEditorRouting.d.ts.map +1 -0
- package/dist/app/widgetRenderer/codeEditorRouting.js +184 -0
- package/dist/app/widgetRenderer/codeEditorRouting.js.map +1 -0
- package/dist/app/widgetRenderer/commandPaletteRouting.d.ts +5 -0
- package/dist/app/widgetRenderer/commandPaletteRouting.d.ts.map +1 -0
- package/dist/app/widgetRenderer/commandPaletteRouting.js +143 -0
- package/dist/app/widgetRenderer/commandPaletteRouting.js.map +1 -0
- package/dist/app/widgetRenderer/fileNodeCache.d.ts +9 -0
- package/dist/app/widgetRenderer/fileNodeCache.d.ts.map +1 -0
- package/dist/app/widgetRenderer/fileNodeCache.js +34 -0
- package/dist/app/widgetRenderer/fileNodeCache.js.map +1 -0
- package/dist/app/widgetRenderer/filePickerRouting.d.ts +6 -0
- package/dist/app/widgetRenderer/filePickerRouting.d.ts.map +1 -0
- package/dist/app/widgetRenderer/filePickerRouting.js +145 -0
- package/dist/app/widgetRenderer/filePickerRouting.js.map +1 -0
- package/dist/app/widgetRenderer/renderCaches.d.ts +55 -0
- package/dist/app/widgetRenderer/renderCaches.d.ts.map +1 -0
- package/dist/app/widgetRenderer/renderCaches.js +202 -0
- package/dist/app/widgetRenderer/renderCaches.js.map +1 -0
- package/dist/app/widgetRenderer/submitFramePipeline.d.ts +18 -0
- package/dist/app/widgetRenderer/submitFramePipeline.d.ts.map +1 -0
- package/dist/app/widgetRenderer/submitFramePipeline.js +253 -0
- package/dist/app/widgetRenderer/submitFramePipeline.js.map +1 -0
- package/dist/app/widgetRenderer/toolApprovalRouting.d.ts +5 -0
- package/dist/app/widgetRenderer/toolApprovalRouting.d.ts.map +1 -0
- package/dist/app/widgetRenderer/toolApprovalRouting.js +56 -0
- package/dist/app/widgetRenderer/toolApprovalRouting.js.map +1 -0
- package/dist/app/widgetRenderer.d.ts +238 -0
- package/dist/app/widgetRenderer.d.ts.map +1 -0
- package/dist/app/widgetRenderer.js +1891 -0
- package/dist/app/widgetRenderer.js.map +1 -0
- package/dist/backend.d.ts +95 -0
- package/dist/backend.d.ts.map +1 -0
- package/dist/backend.js +10 -0
- package/dist/backend.js.map +1 -0
- package/dist/binary/__tests__/reader.test.d.ts +2 -0
- package/dist/binary/__tests__/reader.test.d.ts.map +1 -0
- package/dist/binary/__tests__/reader.test.js +35 -0
- package/dist/binary/__tests__/reader.test.js.map +1 -0
- package/dist/binary/__tests__/writer.test.d.ts +2 -0
- package/dist/binary/__tests__/writer.test.d.ts.map +1 -0
- package/dist/binary/__tests__/writer.test.js +36 -0
- package/dist/binary/__tests__/writer.test.js.map +1 -0
- package/dist/binary/parseError.d.ts +37 -0
- package/dist/binary/parseError.d.ts.map +1 -0
- package/dist/binary/parseError.js +33 -0
- package/dist/binary/parseError.js.map +1 -0
- package/dist/binary/reader.d.ts +52 -0
- package/dist/binary/reader.d.ts.map +1 -0
- package/dist/binary/reader.js +107 -0
- package/dist/binary/reader.js.map +1 -0
- package/dist/binary/writer.d.ts +59 -0
- package/dist/binary/writer.d.ts.map +1 -0
- package/dist/binary/writer.js +114 -0
- package/dist/binary/writer.js.map +1 -0
- package/dist/cursor/cursorState.d.ts +89 -0
- package/dist/cursor/cursorState.d.ts.map +1 -0
- package/dist/cursor/cursorState.js +82 -0
- package/dist/cursor/cursorState.js.map +1 -0
- package/dist/cursor/index.d.ts +9 -0
- package/dist/cursor/index.d.ts.map +1 -0
- package/dist/cursor/index.js +9 -0
- package/dist/cursor/index.js.map +1 -0
- package/dist/debug/__tests__/eventTrace.test.d.ts +7 -0
- package/dist/debug/__tests__/eventTrace.test.d.ts.map +1 -0
- package/dist/debug/__tests__/eventTrace.test.js +59 -0
- package/dist/debug/__tests__/eventTrace.test.js.map +1 -0
- package/dist/debug/__tests__/frameInspector.test.d.ts +8 -0
- package/dist/debug/__tests__/frameInspector.test.d.ts.map +1 -0
- package/dist/debug/__tests__/frameInspector.test.js +121 -0
- package/dist/debug/__tests__/frameInspector.test.js.map +1 -0
- package/dist/debug/__tests__/parsers.test.d.ts +8 -0
- package/dist/debug/__tests__/parsers.test.d.ts.map +1 -0
- package/dist/debug/__tests__/parsers.test.js +265 -0
- package/dist/debug/__tests__/parsers.test.js.map +1 -0
- package/dist/debug/__tests__/stateTimeline.test.d.ts +7 -0
- package/dist/debug/__tests__/stateTimeline.test.d.ts.map +1 -0
- package/dist/debug/__tests__/stateTimeline.test.js +55 -0
- package/dist/debug/__tests__/stateTimeline.test.js.map +1 -0
- package/dist/debug/__tests__/uiDebug.test.d.ts +2 -0
- package/dist/debug/__tests__/uiDebug.test.d.ts.map +1 -0
- package/dist/debug/__tests__/uiDebug.test.js +18 -0
- package/dist/debug/__tests__/uiDebug.test.js.map +1 -0
- package/dist/debug/constants.d.ts +84 -0
- package/dist/debug/constants.d.ts.map +1 -0
- package/dist/debug/constants.js +165 -0
- package/dist/debug/constants.js.map +1 -0
- package/dist/debug/debug.d.ts +14 -0
- package/dist/debug/debug.d.ts.map +1 -0
- package/dist/debug/debug.js +54 -0
- package/dist/debug/debug.js.map +1 -0
- package/dist/debug/debugController.d.ts +151 -0
- package/dist/debug/debugController.d.ts.map +1 -0
- package/dist/debug/debugController.js +232 -0
- package/dist/debug/debugController.js.map +1 -0
- package/dist/debug/errorAggregator.d.ts +89 -0
- package/dist/debug/errorAggregator.d.ts.map +1 -0
- package/dist/debug/errorAggregator.js +150 -0
- package/dist/debug/errorAggregator.js.map +1 -0
- package/dist/debug/eventTrace.d.ts +90 -0
- package/dist/debug/eventTrace.d.ts.map +1 -0
- package/dist/debug/eventTrace.js +153 -0
- package/dist/debug/eventTrace.js.map +1 -0
- package/dist/debug/frameInspector.d.ts +88 -0
- package/dist/debug/frameInspector.d.ts.map +1 -0
- package/dist/debug/frameInspector.js +140 -0
- package/dist/debug/frameInspector.js.map +1 -0
- package/dist/debug/index.d.ts +25 -0
- package/dist/debug/index.d.ts.map +1 -0
- package/dist/debug/index.js +58 -0
- package/dist/debug/index.js.map +1 -0
- package/dist/debug/parsers.d.ts +138 -0
- package/dist/debug/parsers.d.ts.map +1 -0
- package/dist/debug/parsers.js +397 -0
- package/dist/debug/parsers.js.map +1 -0
- package/dist/debug/stateTimeline.d.ts +73 -0
- package/dist/debug/stateTimeline.d.ts.map +1 -0
- package/dist/debug/stateTimeline.js +109 -0
- package/dist/debug/stateTimeline.js.map +1 -0
- package/dist/debug/types.d.ts +261 -0
- package/dist/debug/types.d.ts.map +1 -0
- package/dist/debug/types.js +13 -0
- package/dist/debug/types.js.map +1 -0
- package/dist/drawApi.d.ts +74 -0
- package/dist/drawApi.d.ts.map +1 -0
- package/dist/drawApi.js +6 -0
- package/dist/drawApi.js.map +1 -0
- package/dist/drawlist/__tests__/builder_v1_golden.test.d.ts +2 -0
- package/dist/drawlist/__tests__/builder_v1_golden.test.d.ts.map +1 -0
- package/dist/drawlist/__tests__/builder_v1_golden.test.js +132 -0
- package/dist/drawlist/__tests__/builder_v1_golden.test.js.map +1 -0
- package/dist/drawlist/__tests__/builder_v1_text_run.test.d.ts +2 -0
- package/dist/drawlist/__tests__/builder_v1_text_run.test.d.ts.map +1 -0
- package/dist/drawlist/__tests__/builder_v1_text_run.test.js +93 -0
- package/dist/drawlist/__tests__/builder_v1_text_run.test.js.map +1 -0
- package/dist/drawlist/__tests__/builder_v1_validate_caps.test.d.ts +2 -0
- package/dist/drawlist/__tests__/builder_v1_validate_caps.test.d.ts.map +1 -0
- package/dist/drawlist/__tests__/builder_v1_validate_caps.test.js +116 -0
- package/dist/drawlist/__tests__/builder_v1_validate_caps.test.js.map +1 -0
- package/dist/drawlist/__tests__/builder_v2_cursor.test.d.ts +12 -0
- package/dist/drawlist/__tests__/builder_v2_cursor.test.d.ts.map +1 -0
- package/dist/drawlist/__tests__/builder_v2_cursor.test.js +201 -0
- package/dist/drawlist/__tests__/builder_v2_cursor.test.js.map +1 -0
- package/dist/drawlist/builder_v1.d.ts +69 -0
- package/dist/drawlist/builder_v1.d.ts.map +1 -0
- package/dist/drawlist/builder_v1.js +984 -0
- package/dist/drawlist/builder_v1.js.map +1 -0
- package/dist/drawlist/builder_v2.d.ts +57 -0
- package/dist/drawlist/builder_v2.d.ts.map +1 -0
- package/dist/drawlist/builder_v2.js +953 -0
- package/dist/drawlist/builder_v2.js.map +1 -0
- package/dist/drawlist/index.d.ts +13 -0
- package/dist/drawlist/index.d.ts.map +1 -0
- package/dist/drawlist/index.js +12 -0
- package/dist/drawlist/index.js.map +1 -0
- package/dist/drawlist/types.d.ts +138 -0
- package/dist/drawlist/types.d.ts.map +1 -0
- package/dist/drawlist/types.js +14 -0
- package/dist/drawlist/types.js.map +1 -0
- package/dist/events.d.ts +70 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +7 -0
- package/dist/events.js.map +1 -0
- package/dist/focus/styles.d.ts +213 -0
- package/dist/focus/styles.d.ts.map +1 -0
- package/dist/focus/styles.js +267 -0
- package/dist/focus/styles.js.map +1 -0
- package/dist/forms/__tests__/useForm.test.d.ts +7 -0
- package/dist/forms/__tests__/useForm.test.d.ts.map +1 -0
- package/dist/forms/__tests__/useForm.test.js +371 -0
- package/dist/forms/__tests__/useForm.test.js.map +1 -0
- package/dist/forms/bind.d.ts +15 -0
- package/dist/forms/bind.d.ts.map +1 -0
- package/dist/forms/bind.js +40 -0
- package/dist/forms/bind.js.map +1 -0
- package/dist/forms/index.d.ts +10 -0
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +9 -0
- package/dist/forms/index.js.map +1 -0
- package/dist/forms/types.d.ts +101 -0
- package/dist/forms/types.d.ts.map +1 -0
- package/dist/forms/types.js +10 -0
- package/dist/forms/types.js.map +1 -0
- package/dist/forms/useForm.d.ts +54 -0
- package/dist/forms/useForm.d.ts.map +1 -0
- package/dist/forms/useForm.js +316 -0
- package/dist/forms/useForm.js.map +1 -0
- package/dist/forms/validation.d.ts +67 -0
- package/dist/forms/validation.d.ts.map +1 -0
- package/dist/forms/validation.js +135 -0
- package/dist/forms/validation.js.map +1 -0
- package/dist/icons/index.d.ts +5 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/index.js +9 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/icons/registry.d.ts +1452 -0
- package/dist/icons/registry.d.ts.map +1 -0
- package/dist/icons/registry.js +192 -0
- package/dist/icons/registry.js.map +1 -0
- package/dist/index.d.ts +197 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +221 -0
- package/dist/index.js.map +1 -0
- package/dist/keybindings/__tests__/chordMatcher.test.d.ts +2 -0
- package/dist/keybindings/__tests__/chordMatcher.test.d.ts.map +1 -0
- package/dist/keybindings/__tests__/chordMatcher.test.js +238 -0
- package/dist/keybindings/__tests__/chordMatcher.test.js.map +1 -0
- package/dist/keybindings/__tests__/manager.test.d.ts +2 -0
- package/dist/keybindings/__tests__/manager.test.d.ts.map +1 -0
- package/dist/keybindings/__tests__/manager.test.js +377 -0
- package/dist/keybindings/__tests__/manager.test.js.map +1 -0
- package/dist/keybindings/__tests__/parser.test.d.ts +2 -0
- package/dist/keybindings/__tests__/parser.test.d.ts.map +1 -0
- package/dist/keybindings/__tests__/parser.test.js +386 -0
- package/dist/keybindings/__tests__/parser.test.js.map +1 -0
- package/dist/keybindings/chordMatcher.d.ts +75 -0
- package/dist/keybindings/chordMatcher.d.ts.map +1 -0
- package/dist/keybindings/chordMatcher.js +224 -0
- package/dist/keybindings/chordMatcher.js.map +1 -0
- package/dist/keybindings/index.d.ts +16 -0
- package/dist/keybindings/index.d.ts.map +1 -0
- package/dist/keybindings/index.js +31 -0
- package/dist/keybindings/index.js.map +1 -0
- package/dist/keybindings/keyCodes.d.ts +84 -0
- package/dist/keybindings/keyCodes.d.ts.map +1 -0
- package/dist/keybindings/keyCodes.js +182 -0
- package/dist/keybindings/keyCodes.js.map +1 -0
- package/dist/keybindings/manager.d.ts +168 -0
- package/dist/keybindings/manager.d.ts.map +1 -0
- package/dist/keybindings/manager.js +290 -0
- package/dist/keybindings/manager.js.map +1 -0
- package/dist/keybindings/parser.d.ts +71 -0
- package/dist/keybindings/parser.d.ts.map +1 -0
- package/dist/keybindings/parser.js +252 -0
- package/dist/keybindings/parser.js.map +1 -0
- package/dist/keybindings/types.d.ts +131 -0
- package/dist/keybindings/types.d.ts.map +1 -0
- package/dist/keybindings/types.js +11 -0
- package/dist/keybindings/types.js.map +1 -0
- package/dist/layout/__tests__/constraints.golden.test.d.ts +2 -0
- package/dist/layout/__tests__/constraints.golden.test.d.ts.map +1 -0
- package/dist/layout/__tests__/constraints.golden.test.js +86 -0
- package/dist/layout/__tests__/constraints.golden.test.js.map +1 -0
- package/dist/layout/__tests__/hitTest.golden.test.d.ts +2 -0
- package/dist/layout/__tests__/hitTest.golden.test.d.ts.map +1 -0
- package/dist/layout/__tests__/hitTest.golden.test.js +74 -0
- package/dist/layout/__tests__/hitTest.golden.test.js.map +1 -0
- package/dist/layout/__tests__/layout.edgecases.test.d.ts +2 -0
- package/dist/layout/__tests__/layout.edgecases.test.d.ts.map +1 -0
- package/dist/layout/__tests__/layout.edgecases.test.js +152 -0
- package/dist/layout/__tests__/layout.edgecases.test.js.map +1 -0
- package/dist/layout/__tests__/layout.golden.test.d.ts +2 -0
- package/dist/layout/__tests__/layout.golden.test.d.ts.map +1 -0
- package/dist/layout/__tests__/layout.golden.test.js +69 -0
- package/dist/layout/__tests__/layout.golden.test.js.map +1 -0
- package/dist/layout/__tests__/layout.perf.test.d.ts +8 -0
- package/dist/layout/__tests__/layout.perf.test.d.ts.map +1 -0
- package/dist/layout/__tests__/layout.perf.test.js +179 -0
- package/dist/layout/__tests__/layout.perf.test.js.map +1 -0
- package/dist/layout/__tests__/measure.validation.test.d.ts +2 -0
- package/dist/layout/__tests__/measure.validation.test.d.ts.map +1 -0
- package/dist/layout/__tests__/measure.validation.test.js +16 -0
- package/dist/layout/__tests__/measure.validation.test.js.map +1 -0
- package/dist/layout/__tests__/spacing.test.d.ts +2 -0
- package/dist/layout/__tests__/spacing.test.d.ts.map +1 -0
- package/dist/layout/__tests__/spacing.test.js +9 -0
- package/dist/layout/__tests__/spacing.test.js.map +1 -0
- package/dist/layout/__tests__/sweep.robustness.test.d.ts +11 -0
- package/dist/layout/__tests__/sweep.robustness.test.d.ts.map +1 -0
- package/dist/layout/__tests__/sweep.robustness.test.js +491 -0
- package/dist/layout/__tests__/sweep.robustness.test.js.map +1 -0
- package/dist/layout/__tests__/textMeasure.golden.test.d.ts +2 -0
- package/dist/layout/__tests__/textMeasure.golden.test.d.ts.map +1 -0
- package/dist/layout/__tests__/textMeasure.golden.test.js +32 -0
- package/dist/layout/__tests__/textMeasure.golden.test.js.map +1 -0
- package/dist/layout/constraints.d.ts +27 -0
- package/dist/layout/constraints.d.ts.map +1 -0
- package/dist/layout/constraints.js +57 -0
- package/dist/layout/constraints.js.map +1 -0
- package/dist/layout/engine/bounds.d.ts +7 -0
- package/dist/layout/engine/bounds.d.ts.map +1 -0
- package/dist/layout/engine/bounds.js +25 -0
- package/dist/layout/engine/bounds.js.map +1 -0
- package/dist/layout/engine/flex.d.ts +11 -0
- package/dist/layout/engine/flex.d.ts.map +1 -0
- package/dist/layout/engine/flex.js +162 -0
- package/dist/layout/engine/flex.js.map +1 -0
- package/dist/layout/engine/guards.d.ts +14 -0
- package/dist/layout/engine/guards.d.ts.map +1 -0
- package/dist/layout/engine/guards.js +36 -0
- package/dist/layout/engine/guards.js.map +1 -0
- package/dist/layout/engine/layoutEngine.d.ts +41 -0
- package/dist/layout/engine/layoutEngine.d.ts.map +1 -0
- package/dist/layout/engine/layoutEngine.js +344 -0
- package/dist/layout/engine/layoutEngine.js.map +1 -0
- package/dist/layout/engine/layoutTree.d.ts +6 -0
- package/dist/layout/engine/layoutTree.d.ts.map +1 -0
- package/dist/layout/engine/layoutTree.js +16 -0
- package/dist/layout/engine/layoutTree.js.map +1 -0
- package/dist/layout/engine/pool.d.ts +10 -0
- package/dist/layout/engine/pool.d.ts.map +1 -0
- package/dist/layout/engine/pool.js +33 -0
- package/dist/layout/engine/pool.js.map +1 -0
- package/dist/layout/engine/result.d.ts +3 -0
- package/dist/layout/engine/result.d.ts.map +1 -0
- package/dist/layout/engine/result.js +4 -0
- package/dist/layout/engine/result.js.map +1 -0
- package/dist/layout/engine/types.d.ts +12 -0
- package/dist/layout/engine/types.d.ts.map +1 -0
- package/dist/layout/engine/types.js +2 -0
- package/dist/layout/engine/types.js.map +1 -0
- package/dist/layout/hitTest.d.ts +25 -0
- package/dist/layout/hitTest.d.ts.map +1 -0
- package/dist/layout/hitTest.js +111 -0
- package/dist/layout/hitTest.js.map +1 -0
- package/dist/layout/kinds/box.d.ts +10 -0
- package/dist/layout/kinds/box.d.ts.map +1 -0
- package/dist/layout/kinds/box.js +140 -0
- package/dist/layout/kinds/box.js.map +1 -0
- package/dist/layout/kinds/collections.d.ts +7 -0
- package/dist/layout/kinds/collections.d.ts.map +1 -0
- package/dist/layout/kinds/collections.js +87 -0
- package/dist/layout/kinds/collections.js.map +1 -0
- package/dist/layout/kinds/leaf.d.ts +7 -0
- package/dist/layout/kinds/leaf.d.ts.map +1 -0
- package/dist/layout/kinds/leaf.js +390 -0
- package/dist/layout/kinds/leaf.js.map +1 -0
- package/dist/layout/kinds/overlays.d.ts +10 -0
- package/dist/layout/kinds/overlays.d.ts.map +1 -0
- package/dist/layout/kinds/overlays.js +302 -0
- package/dist/layout/kinds/overlays.js.map +1 -0
- package/dist/layout/kinds/splitPane.d.ts +9 -0
- package/dist/layout/kinds/splitPane.d.ts.map +1 -0
- package/dist/layout/kinds/splitPane.js +118 -0
- package/dist/layout/kinds/splitPane.js.map +1 -0
- package/dist/layout/kinds/stack.d.ts +10 -0
- package/dist/layout/kinds/stack.d.ts.map +1 -0
- package/dist/layout/kinds/stack.js +803 -0
- package/dist/layout/kinds/stack.js.map +1 -0
- package/dist/layout/layout.d.ts +11 -0
- package/dist/layout/layout.d.ts.map +1 -0
- package/dist/layout/layout.js +10 -0
- package/dist/layout/layout.js.map +1 -0
- package/dist/layout/positioning.d.ts +124 -0
- package/dist/layout/positioning.d.ts.map +1 -0
- package/dist/layout/positioning.js +234 -0
- package/dist/layout/positioning.js.map +1 -0
- package/dist/layout/spacing-scale.d.ts +59 -0
- package/dist/layout/spacing-scale.d.ts.map +1 -0
- package/dist/layout/spacing-scale.js +79 -0
- package/dist/layout/spacing-scale.js.map +1 -0
- package/dist/layout/spacing.d.ts +46 -0
- package/dist/layout/spacing.d.ts.map +1 -0
- package/dist/layout/spacing.js +57 -0
- package/dist/layout/spacing.js.map +1 -0
- package/dist/layout/textMeasure.d.ts +72 -0
- package/dist/layout/textMeasure.d.ts.map +1 -0
- package/dist/layout/textMeasure.js +363 -0
- package/dist/layout/textMeasure.js.map +1 -0
- package/dist/layout/types.d.ts +43 -0
- package/dist/layout/types.d.ts.map +1 -0
- package/dist/layout/types.js +10 -0
- package/dist/layout/types.js.map +1 -0
- package/dist/layout/unicode/props.d.ts +23 -0
- package/dist/layout/unicode/props.d.ts.map +1 -0
- package/dist/layout/unicode/props.js +80 -0
- package/dist/layout/unicode/props.js.map +1 -0
- package/dist/layout/unicode/tables_15_1_0.d.ts +11 -0
- package/dist/layout/unicode/tables_15_1_0.d.ts.map +1 -0
- package/dist/layout/unicode/tables_15_1_0.js +416 -0
- package/dist/layout/unicode/tables_15_1_0.js.map +1 -0
- package/dist/layout/validateProps.d.ts +101 -0
- package/dist/layout/validateProps.d.ts.map +1 -0
- package/dist/layout/validateProps.js +328 -0
- package/dist/layout/validateProps.js.map +1 -0
- package/dist/perf/index.d.ts +5 -0
- package/dist/perf/index.d.ts.map +1 -0
- package/dist/perf/index.js +5 -0
- package/dist/perf/index.js.map +1 -0
- package/dist/perf/perf.d.ts +71 -0
- package/dist/perf/perf.d.ts.map +1 -0
- package/dist/perf/perf.js +239 -0
- package/dist/perf/perf.js.map +1 -0
- package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.d.ts +2 -0
- package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.d.ts.map +1 -0
- package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.js +35 -0
- package/dist/protocol/__tests__/zrev_v1_fuzz_lite.test.js.map +1 -0
- package/dist/protocol/__tests__/zrev_v1_invalid.test.d.ts +2 -0
- package/dist/protocol/__tests__/zrev_v1_invalid.test.d.ts.map +1 -0
- package/dist/protocol/__tests__/zrev_v1_invalid.test.js +128 -0
- package/dist/protocol/__tests__/zrev_v1_invalid.test.js.map +1 -0
- package/dist/protocol/__tests__/zrev_v1_valid.test.d.ts +2 -0
- package/dist/protocol/__tests__/zrev_v1_valid.test.d.ts.map +1 -0
- package/dist/protocol/__tests__/zrev_v1_valid.test.js +126 -0
- package/dist/protocol/__tests__/zrev_v1_valid.test.js.map +1 -0
- package/dist/protocol/types.d.ts +119 -0
- package/dist/protocol/types.d.ts.map +1 -0
- package/dist/protocol/types.js +14 -0
- package/dist/protocol/types.js.map +1 -0
- package/dist/protocol/zrev_v1.d.ts +52 -0
- package/dist/protocol/zrev_v1.d.ts.map +1 -0
- package/dist/protocol/zrev_v1.js +288 -0
- package/dist/protocol/zrev_v1.js.map +1 -0
- package/dist/renderer/__tests__/overlay.edge.test.d.ts +2 -0
- package/dist/renderer/__tests__/overlay.edge.test.d.ts.map +1 -0
- package/dist/renderer/__tests__/overlay.edge.test.js +101 -0
- package/dist/renderer/__tests__/overlay.edge.test.js.map +1 -0
- package/dist/renderer/__tests__/render.golden.test.d.ts +2 -0
- package/dist/renderer/__tests__/render.golden.test.d.ts.map +1 -0
- package/dist/renderer/__tests__/render.golden.test.js +220 -0
- package/dist/renderer/__tests__/render.golden.test.js.map +1 -0
- package/dist/renderer/boxGlyphs.d.ts +87 -0
- package/dist/renderer/boxGlyphs.d.ts.map +1 -0
- package/dist/renderer/boxGlyphs.js +143 -0
- package/dist/renderer/boxGlyphs.js.map +1 -0
- package/dist/renderer/renderToDrawlist/boxBorder.d.ts +42 -0
- package/dist/renderer/renderToDrawlist/boxBorder.d.ts.map +1 -0
- package/dist/renderer/renderToDrawlist/boxBorder.js +138 -0
- package/dist/renderer/renderToDrawlist/boxBorder.js.map +1 -0
- package/dist/renderer/renderToDrawlist/indices.d.ts +11 -0
- package/dist/renderer/renderToDrawlist/indices.d.ts.map +1 -0
- package/dist/renderer/renderToDrawlist/indices.js +50 -0
- package/dist/renderer/renderToDrawlist/indices.js.map +1 -0
- package/dist/renderer/renderToDrawlist/renderTree.d.ts +21 -0
- package/dist/renderer/renderToDrawlist/renderTree.d.ts.map +1 -0
- package/dist/renderer/renderToDrawlist/renderTree.js +117 -0
- package/dist/renderer/renderToDrawlist/renderTree.js.map +1 -0
- package/dist/renderer/renderToDrawlist/simpleVNode.d.ts +9 -0
- package/dist/renderer/renderToDrawlist/simpleVNode.d.ts.map +1 -0
- package/dist/renderer/renderToDrawlist/simpleVNode.js +634 -0
- package/dist/renderer/renderToDrawlist/simpleVNode.js.map +1 -0
- package/dist/renderer/renderToDrawlist/spacing.d.ts +34 -0
- package/dist/renderer/renderToDrawlist/spacing.d.ts.map +1 -0
- package/dist/renderer/renderToDrawlist/spacing.js +53 -0
- package/dist/renderer/renderToDrawlist/spacing.js.map +1 -0
- package/dist/renderer/renderToDrawlist/textStyle.d.ts +9 -0
- package/dist/renderer/renderToDrawlist/textStyle.d.ts.map +1 -0
- package/dist/renderer/renderToDrawlist/textStyle.js +58 -0
- package/dist/renderer/renderToDrawlist/textStyle.js.map +1 -0
- package/dist/renderer/renderToDrawlist/types.d.ts +96 -0
- package/dist/renderer/renderToDrawlist/types.d.ts.map +1 -0
- package/dist/renderer/renderToDrawlist/types.js +2 -0
- package/dist/renderer/renderToDrawlist/types.js.map +1 -0
- package/dist/renderer/renderToDrawlist/widgets/basic.d.ts +17 -0
- package/dist/renderer/renderToDrawlist/widgets/basic.d.ts.map +1 -0
- package/dist/renderer/renderToDrawlist/widgets/basic.js +1149 -0
- package/dist/renderer/renderToDrawlist/widgets/basic.js.map +1 -0
- package/dist/renderer/renderToDrawlist/widgets/collections.d.ts +10 -0
- package/dist/renderer/renderToDrawlist/widgets/collections.d.ts.map +1 -0
- package/dist/renderer/renderToDrawlist/widgets/collections.js +304 -0
- package/dist/renderer/renderToDrawlist/widgets/collections.js.map +1 -0
- package/dist/renderer/renderToDrawlist/widgets/containers.d.ts +10 -0
- package/dist/renderer/renderToDrawlist/widgets/containers.d.ts.map +1 -0
- package/dist/renderer/renderToDrawlist/widgets/containers.js +242 -0
- package/dist/renderer/renderToDrawlist/widgets/containers.js.map +1 -0
- package/dist/renderer/renderToDrawlist/widgets/editors.d.ts +17 -0
- package/dist/renderer/renderToDrawlist/widgets/editors.d.ts.map +1 -0
- package/dist/renderer/renderToDrawlist/widgets/editors.js +497 -0
- package/dist/renderer/renderToDrawlist/widgets/editors.js.map +1 -0
- package/dist/renderer/renderToDrawlist/widgets/files.d.ts +13 -0
- package/dist/renderer/renderToDrawlist/widgets/files.d.ts.map +1 -0
- package/dist/renderer/renderToDrawlist/widgets/files.js +288 -0
- package/dist/renderer/renderToDrawlist/widgets/files.js.map +1 -0
- package/dist/renderer/renderToDrawlist/widgets/overlays.d.ts +21 -0
- package/dist/renderer/renderToDrawlist/widgets/overlays.d.ts.map +1 -0
- package/dist/renderer/renderToDrawlist/widgets/overlays.js +358 -0
- package/dist/renderer/renderToDrawlist/widgets/overlays.js.map +1 -0
- package/dist/renderer/renderToDrawlist.d.ts +21 -0
- package/dist/renderer/renderToDrawlist.d.ts.map +1 -0
- package/dist/renderer/renderToDrawlist.js +53 -0
- package/dist/renderer/renderToDrawlist.js.map +1 -0
- package/dist/renderer/scrollbar.d.ts +129 -0
- package/dist/renderer/scrollbar.d.ts.map +1 -0
- package/dist/renderer/scrollbar.js +219 -0
- package/dist/renderer/scrollbar.js.map +1 -0
- package/dist/renderer/shadow.d.ts +74 -0
- package/dist/renderer/shadow.d.ts.map +1 -0
- package/dist/renderer/shadow.js +118 -0
- package/dist/renderer/shadow.js.map +1 -0
- package/dist/renderer/styles.d.ts +28 -0
- package/dist/renderer/styles.d.ts.map +1 -0
- package/dist/renderer/styles.js +42 -0
- package/dist/renderer/styles.js.map +1 -0
- package/dist/runtime/__tests__/duplicateIdFatal.test.d.ts +2 -0
- package/dist/runtime/__tests__/duplicateIdFatal.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/duplicateIdFatal.test.js +45 -0
- package/dist/runtime/__tests__/duplicateIdFatal.test.js.map +1 -0
- package/dist/runtime/__tests__/duplicateKeyFatal.test.d.ts +2 -0
- package/dist/runtime/__tests__/duplicateKeyFatal.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/duplicateKeyFatal.test.js +20 -0
- package/dist/runtime/__tests__/duplicateKeyFatal.test.js.map +1 -0
- package/dist/runtime/__tests__/focusList.golden.test.d.ts +2 -0
- package/dist/runtime/__tests__/focusList.golden.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/focusList.golden.test.js +98 -0
- package/dist/runtime/__tests__/focusList.golden.test.js.map +1 -0
- package/dist/runtime/__tests__/focusZones.golden.test.d.ts +16 -0
- package/dist/runtime/__tests__/focusZones.golden.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/focusZones.golden.test.js +594 -0
- package/dist/runtime/__tests__/focusZones.golden.test.js.map +1 -0
- package/dist/runtime/__tests__/inputRouting.golden.test.d.ts +2 -0
- package/dist/runtime/__tests__/inputRouting.golden.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/inputRouting.golden.test.js +56 -0
- package/dist/runtime/__tests__/inputRouting.golden.test.js.map +1 -0
- package/dist/runtime/__tests__/keyRouting.golden.test.d.ts +2 -0
- package/dist/runtime/__tests__/keyRouting.golden.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/keyRouting.golden.test.js +43 -0
- package/dist/runtime/__tests__/keyRouting.golden.test.js.map +1 -0
- package/dist/runtime/__tests__/localStateStore.test.d.ts +2 -0
- package/dist/runtime/__tests__/localStateStore.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/localStateStore.test.js +25 -0
- package/dist/runtime/__tests__/localStateStore.test.js.map +1 -0
- package/dist/runtime/__tests__/mouseRouting.golden.test.d.ts +2 -0
- package/dist/runtime/__tests__/mouseRouting.golden.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/mouseRouting.golden.test.js +47 -0
- package/dist/runtime/__tests__/mouseRouting.golden.test.js.map +1 -0
- package/dist/runtime/__tests__/reconcile.test.d.ts +2 -0
- package/dist/runtime/__tests__/reconcile.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/reconcile.test.js +46 -0
- package/dist/runtime/__tests__/reconcile.test.js.map +1 -0
- package/dist/runtime/__tests__/widgetMeta.test.d.ts +2 -0
- package/dist/runtime/__tests__/widgetMeta.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/widgetMeta.test.js +196 -0
- package/dist/runtime/__tests__/widgetMeta.test.js.map +1 -0
- package/dist/runtime/commit.d.ts +76 -0
- package/dist/runtime/commit.d.ts.map +1 -0
- package/dist/runtime/commit.js +366 -0
- package/dist/runtime/commit.js.map +1 -0
- package/dist/runtime/focus.d.ts +162 -0
- package/dist/runtime/focus.d.ts.map +1 -0
- package/dist/runtime/focus.js +488 -0
- package/dist/runtime/focus.js.map +1 -0
- package/dist/runtime/inputEditor.d.ts +49 -0
- package/dist/runtime/inputEditor.d.ts.map +1 -0
- package/dist/runtime/inputEditor.js +312 -0
- package/dist/runtime/inputEditor.js.map +1 -0
- package/dist/runtime/instance.d.ts +21 -0
- package/dist/runtime/instance.d.ts.map +1 -0
- package/dist/runtime/instance.js +27 -0
- package/dist/runtime/instance.js.map +1 -0
- package/dist/runtime/instances.d.ts +105 -0
- package/dist/runtime/instances.d.ts.map +1 -0
- package/dist/runtime/instances.js +248 -0
- package/dist/runtime/instances.js.map +1 -0
- package/dist/runtime/layers.d.ts +144 -0
- package/dist/runtime/layers.d.ts.map +1 -0
- package/dist/runtime/layers.js +264 -0
- package/dist/runtime/layers.js.map +1 -0
- package/dist/runtime/localState.d.ts +172 -0
- package/dist/runtime/localState.d.ts.map +1 -0
- package/dist/runtime/localState.js +182 -0
- package/dist/runtime/localState.js.map +1 -0
- package/dist/runtime/reconcile.d.ts +64 -0
- package/dist/runtime/reconcile.d.ts.map +1 -0
- package/dist/runtime/reconcile.js +223 -0
- package/dist/runtime/reconcile.js.map +1 -0
- package/dist/runtime/router/dropdown.d.ts +16 -0
- package/dist/runtime/router/dropdown.d.ts.map +1 -0
- package/dist/runtime/router/dropdown.js +108 -0
- package/dist/runtime/router/dropdown.js.map +1 -0
- package/dist/runtime/router/key.d.ts +10 -0
- package/dist/runtime/router/key.d.ts.map +1 -0
- package/dist/runtime/router/key.js +39 -0
- package/dist/runtime/router/key.js.map +1 -0
- package/dist/runtime/router/layer.d.ts +11 -0
- package/dist/runtime/router/layer.d.ts.map +1 -0
- package/dist/runtime/router/layer.js +45 -0
- package/dist/runtime/router/layer.js.map +1 -0
- package/dist/runtime/router/mouse.d.ts +9 -0
- package/dist/runtime/router/mouse.d.ts.map +1 -0
- package/dist/runtime/router/mouse.js +38 -0
- package/dist/runtime/router/mouse.js.map +1 -0
- package/dist/runtime/router/table.d.ts +15 -0
- package/dist/runtime/router/table.d.ts.map +1 -0
- package/dist/runtime/router/table.js +182 -0
- package/dist/runtime/router/table.js.map +1 -0
- package/dist/runtime/router/tree.d.ts +16 -0
- package/dist/runtime/router/tree.d.ts.map +1 -0
- package/dist/runtime/router/tree.js +211 -0
- package/dist/runtime/router/tree.js.map +1 -0
- package/dist/runtime/router/types.d.ts +194 -0
- package/dist/runtime/router/types.d.ts.map +1 -0
- package/dist/runtime/router/types.js +2 -0
- package/dist/runtime/router/types.js.map +1 -0
- package/dist/runtime/router/virtualList.d.ts +21 -0
- package/dist/runtime/router/virtualList.d.ts.map +1 -0
- package/dist/runtime/router/virtualList.js +167 -0
- package/dist/runtime/router/virtualList.js.map +1 -0
- package/dist/runtime/router/zones.d.ts +16 -0
- package/dist/runtime/router/zones.d.ts.map +1 -0
- package/dist/runtime/router/zones.js +118 -0
- package/dist/runtime/router/zones.js.map +1 -0
- package/dist/runtime/router.d.ts +18 -0
- package/dist/runtime/router.d.ts.map +1 -0
- package/dist/runtime/router.js +17 -0
- package/dist/runtime/router.js.map +1 -0
- package/dist/runtime/widgetMeta.d.ts +157 -0
- package/dist/runtime/widgetMeta.d.ts.map +1 -0
- package/dist/runtime/widgetMeta.js +618 -0
- package/dist/runtime/widgetMeta.js.map +1 -0
- package/dist/terminalCaps.d.ts +74 -0
- package/dist/terminalCaps.d.ts.map +1 -0
- package/dist/terminalCaps.js +61 -0
- package/dist/terminalCaps.js.map +1 -0
- package/dist/theme/__tests__/theme.test.d.ts +2 -0
- package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
- package/dist/theme/__tests__/theme.test.js +28 -0
- package/dist/theme/__tests__/theme.test.js.map +1 -0
- package/dist/theme/defaultTheme.d.ts +9 -0
- package/dist/theme/defaultTheme.d.ts.map +1 -0
- package/dist/theme/defaultTheme.js +22 -0
- package/dist/theme/defaultTheme.js.map +1 -0
- package/dist/theme/index.d.ts +12 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +16 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/interop.d.ts +13 -0
- package/dist/theme/interop.d.ts.map +1 -0
- package/dist/theme/interop.js +66 -0
- package/dist/theme/interop.js.map +1 -0
- package/dist/theme/presets.d.ts +81 -0
- package/dist/theme/presets.d.ts.map +1 -0
- package/dist/theme/presets.js +293 -0
- package/dist/theme/presets.js.map +1 -0
- package/dist/theme/resolve.d.ts +69 -0
- package/dist/theme/resolve.d.ts.map +1 -0
- package/dist/theme/resolve.js +159 -0
- package/dist/theme/resolve.js.map +1 -0
- package/dist/theme/theme.d.ts +33 -0
- package/dist/theme/theme.d.ts.map +1 -0
- package/dist/theme/theme.js +28 -0
- package/dist/theme/theme.js.map +1 -0
- package/dist/theme/tokens.d.ts +130 -0
- package/dist/theme/tokens.d.ts.map +1 -0
- package/dist/theme/tokens.js +50 -0
- package/dist/theme/tokens.js.map +1 -0
- package/dist/widgets/__tests__/basicWidgets.render.test.d.ts +2 -0
- package/dist/widgets/__tests__/basicWidgets.render.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/basicWidgets.render.test.js +182 -0
- package/dist/widgets/__tests__/basicWidgets.render.test.js.map +1 -0
- package/dist/widgets/__tests__/basicWidgets.test.d.ts +2 -0
- package/dist/widgets/__tests__/basicWidgets.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/basicWidgets.test.js +336 -0
- package/dist/widgets/__tests__/basicWidgets.test.js.map +1 -0
- package/dist/widgets/__tests__/collections.test.d.ts +2 -0
- package/dist/widgets/__tests__/collections.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/collections.test.js +91 -0
- package/dist/widgets/__tests__/collections.test.js.map +1 -0
- package/dist/widgets/__tests__/commandPalette.test.d.ts +2 -0
- package/dist/widgets/__tests__/commandPalette.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/commandPalette.test.js +13 -0
- package/dist/widgets/__tests__/commandPalette.test.js.map +1 -0
- package/dist/widgets/__tests__/composition.test.d.ts +14 -0
- package/dist/widgets/__tests__/composition.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/composition.test.js +458 -0
- package/dist/widgets/__tests__/composition.test.js.map +1 -0
- package/dist/widgets/__tests__/conditionals.test.d.ts +2 -0
- package/dist/widgets/__tests__/conditionals.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/conditionals.test.js +49 -0
- package/dist/widgets/__tests__/conditionals.test.js.map +1 -0
- package/dist/widgets/__tests__/containers.test.d.ts +2 -0
- package/dist/widgets/__tests__/containers.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/containers.test.js +98 -0
- package/dist/widgets/__tests__/containers.test.js.map +1 -0
- package/dist/widgets/__tests__/dataVizWidgets.test.d.ts +2 -0
- package/dist/widgets/__tests__/dataVizWidgets.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/dataVizWidgets.test.js +57 -0
- package/dist/widgets/__tests__/dataVizWidgets.test.js.map +1 -0
- package/dist/widgets/__tests__/dialogs.test.d.ts +2 -0
- package/dist/widgets/__tests__/dialogs.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/dialogs.test.js +29 -0
- package/dist/widgets/__tests__/dialogs.test.js.map +1 -0
- package/dist/widgets/__tests__/editors.test.d.ts +2 -0
- package/dist/widgets/__tests__/editors.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/editors.test.js +116 -0
- package/dist/widgets/__tests__/editors.test.js.map +1 -0
- package/dist/widgets/__tests__/filesWidgets.test.d.ts +2 -0
- package/dist/widgets/__tests__/filesWidgets.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/filesWidgets.test.js +52 -0
- package/dist/widgets/__tests__/filesWidgets.test.js.map +1 -0
- package/dist/widgets/__tests__/formWidgets.test.d.ts +7 -0
- package/dist/widgets/__tests__/formWidgets.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/formWidgets.test.js +241 -0
- package/dist/widgets/__tests__/formWidgets.test.js.map +1 -0
- package/dist/widgets/__tests__/infoWidgets.test.d.ts +2 -0
- package/dist/widgets/__tests__/infoWidgets.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/infoWidgets.test.js +43 -0
- package/dist/widgets/__tests__/infoWidgets.test.js.map +1 -0
- package/dist/widgets/__tests__/layers.golden.test.d.ts +14 -0
- package/dist/widgets/__tests__/layers.golden.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/layers.golden.test.js +728 -0
- package/dist/widgets/__tests__/layers.golden.test.js.map +1 -0
- package/dist/widgets/__tests__/overlays.test.d.ts +2 -0
- package/dist/widgets/__tests__/overlays.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/overlays.test.js +99 -0
- package/dist/widgets/__tests__/overlays.test.js.map +1 -0
- package/dist/widgets/__tests__/renderer.regressions.test.d.ts +2 -0
- package/dist/widgets/__tests__/renderer.regressions.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/renderer.regressions.test.js +132 -0
- package/dist/widgets/__tests__/renderer.regressions.test.js.map +1 -0
- package/dist/widgets/__tests__/styleUtils.test.d.ts +2 -0
- package/dist/widgets/__tests__/styleUtils.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/styleUtils.test.js +22 -0
- package/dist/widgets/__tests__/styleUtils.test.js.map +1 -0
- package/dist/widgets/__tests__/styled.test.d.ts +2 -0
- package/dist/widgets/__tests__/styled.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/styled.test.js +23 -0
- package/dist/widgets/__tests__/styled.test.js.map +1 -0
- package/dist/widgets/__tests__/table.golden.test.d.ts +10 -0
- package/dist/widgets/__tests__/table.golden.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/table.golden.test.js +367 -0
- package/dist/widgets/__tests__/table.golden.test.js.map +1 -0
- package/dist/widgets/__tests__/tree.golden.test.d.ts +10 -0
- package/dist/widgets/__tests__/tree.golden.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/tree.golden.test.js +501 -0
- package/dist/widgets/__tests__/tree.golden.test.js.map +1 -0
- package/dist/widgets/__tests__/virtualList.golden.test.d.ts +10 -0
- package/dist/widgets/__tests__/virtualList.golden.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/virtualList.golden.test.js +349 -0
- package/dist/widgets/__tests__/virtualList.golden.test.js.map +1 -0
- package/dist/widgets/__tests__/widgetRenderSmoke.test.d.ts +2 -0
- package/dist/widgets/__tests__/widgetRenderSmoke.test.d.ts.map +1 -0
- package/dist/widgets/__tests__/widgetRenderSmoke.test.js +311 -0
- package/dist/widgets/__tests__/widgetRenderSmoke.test.js.map +1 -0
- package/dist/widgets/checkbox.d.ts +49 -0
- package/dist/widgets/checkbox.d.ts.map +1 -0
- package/dist/widgets/checkbox.js +66 -0
- package/dist/widgets/checkbox.js.map +1 -0
- package/dist/widgets/codeEditor.d.ts +150 -0
- package/dist/widgets/codeEditor.d.ts.map +1 -0
- package/dist/widgets/codeEditor.js +434 -0
- package/dist/widgets/codeEditor.js.map +1 -0
- package/dist/widgets/collections.d.ts +10 -0
- package/dist/widgets/collections.d.ts.map +1 -0
- package/dist/widgets/collections.js +49 -0
- package/dist/widgets/collections.js.map +1 -0
- package/dist/widgets/commandPalette.d.ts +117 -0
- package/dist/widgets/commandPalette.d.ts.map +1 -0
- package/dist/widgets/commandPalette.js +230 -0
- package/dist/widgets/commandPalette.js.map +1 -0
- package/dist/widgets/composition.d.ts +202 -0
- package/dist/widgets/composition.d.ts.map +1 -0
- package/dist/widgets/composition.js +135 -0
- package/dist/widgets/composition.js.map +1 -0
- package/dist/widgets/conditionals.d.ts +9 -0
- package/dist/widgets/conditionals.d.ts.map +1 -0
- package/dist/widgets/conditionals.js +27 -0
- package/dist/widgets/conditionals.js.map +1 -0
- package/dist/widgets/debugPanel.d.ts +96 -0
- package/dist/widgets/debugPanel.d.ts.map +1 -0
- package/dist/widgets/debugPanel.js +172 -0
- package/dist/widgets/debugPanel.js.map +1 -0
- package/dist/widgets/dialogs/alert.d.ts +7 -0
- package/dist/widgets/dialogs/alert.d.ts.map +1 -0
- package/dist/widgets/dialogs/alert.js +21 -0
- package/dist/widgets/dialogs/alert.js.map +1 -0
- package/dist/widgets/dialogs/confirm.d.ts +7 -0
- package/dist/widgets/dialogs/confirm.d.ts.map +1 -0
- package/dist/widgets/dialogs/confirm.js +27 -0
- package/dist/widgets/dialogs/confirm.js.map +1 -0
- package/dist/widgets/dialogs/index.d.ts +8 -0
- package/dist/widgets/dialogs/index.d.ts.map +1 -0
- package/dist/widgets/dialogs/index.js +7 -0
- package/dist/widgets/dialogs/index.js.map +1 -0
- package/dist/widgets/dialogs/prompt.d.ts +9 -0
- package/dist/widgets/dialogs/prompt.d.ts.map +1 -0
- package/dist/widgets/dialogs/prompt.js +40 -0
- package/dist/widgets/dialogs/prompt.js.map +1 -0
- package/dist/widgets/dialogs/types.d.ts +29 -0
- package/dist/widgets/dialogs/types.d.ts.map +1 -0
- package/dist/widgets/dialogs/types.js +5 -0
- package/dist/widgets/dialogs/types.js.map +1 -0
- package/dist/widgets/diffViewer.d.ts +101 -0
- package/dist/widgets/diffViewer.d.ts.map +1 -0
- package/dist/widgets/diffViewer.js +194 -0
- package/dist/widgets/diffViewer.js.map +1 -0
- package/dist/widgets/field.d.ts +52 -0
- package/dist/widgets/field.d.ts.map +1 -0
- package/dist/widgets/field.js +62 -0
- package/dist/widgets/field.js.map +1 -0
- package/dist/widgets/logsConsole.d.ts +101 -0
- package/dist/widgets/logsConsole.d.ts.map +1 -0
- package/dist/widgets/logsConsole.js +189 -0
- package/dist/widgets/logsConsole.js.map +1 -0
- package/dist/widgets/radioGroup.d.ts +79 -0
- package/dist/widgets/radioGroup.d.ts.map +1 -0
- package/dist/widgets/radioGroup.js +145 -0
- package/dist/widgets/radioGroup.js.map +1 -0
- package/dist/widgets/select.d.ts +61 -0
- package/dist/widgets/select.d.ts.map +1 -0
- package/dist/widgets/select.js +119 -0
- package/dist/widgets/select.js.map +1 -0
- package/dist/widgets/splitPane.d.ts +92 -0
- package/dist/widgets/splitPane.d.ts.map +1 -0
- package/dist/widgets/splitPane.js +265 -0
- package/dist/widgets/splitPane.js.map +1 -0
- package/dist/widgets/style.d.ts +34 -0
- package/dist/widgets/style.d.ts.map +1 -0
- package/dist/widgets/style.js +16 -0
- package/dist/widgets/style.js.map +1 -0
- package/dist/widgets/styleUtils.d.ts +39 -0
- package/dist/widgets/styleUtils.d.ts.map +1 -0
- package/dist/widgets/styleUtils.js +42 -0
- package/dist/widgets/styleUtils.js.map +1 -0
- package/dist/widgets/styled.d.ts +21 -0
- package/dist/widgets/styled.d.ts.map +1 -0
- package/dist/widgets/styled.js +30 -0
- package/dist/widgets/styled.js.map +1 -0
- package/dist/widgets/table.d.ts +157 -0
- package/dist/widgets/table.d.ts.map +1 -0
- package/dist/widgets/table.js +338 -0
- package/dist/widgets/table.js.map +1 -0
- package/dist/widgets/toast.d.ts +89 -0
- package/dist/widgets/toast.d.ts.map +1 -0
- package/dist/widgets/toast.js +145 -0
- package/dist/widgets/toast.js.map +1 -0
- package/dist/widgets/tree.d.ts +207 -0
- package/dist/widgets/tree.d.ts.map +1 -0
- package/dist/widgets/tree.js +393 -0
- package/dist/widgets/tree.js.map +1 -0
- package/dist/widgets/types.d.ts +1400 -0
- package/dist/widgets/types.d.ts.map +1 -0
- package/dist/widgets/types.js +20 -0
- package/dist/widgets/types.js.map +1 -0
- package/dist/widgets/ui.d.ts +734 -0
- package/dist/widgets/ui.d.ts.map +1 -0
- package/dist/widgets/ui.js +851 -0
- package/dist/widgets/ui.js.map +1 -0
- package/dist/widgets/virtualList.d.ts +93 -0
- package/dist/widgets/virtualList.d.ts.map +1 -0
- package/dist/widgets/virtualList.js +258 -0
- package/dist/widgets/virtualList.js.map +1 -0
- package/package.json +97 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* packages/core/src/widgets/tree.ts — Tree widget core algorithms.
|
|
3
|
+
*
|
|
4
|
+
* Why: Implements the core logic for tree widgets including node flattening,
|
|
5
|
+
* NodeState computation, tree line rendering, and lazy loading state.
|
|
6
|
+
*
|
|
7
|
+
* Algorithms:
|
|
8
|
+
* - Node flattening: DFS traversal respecting expanded state
|
|
9
|
+
* - NodeState: computed state for each visible node
|
|
10
|
+
* - Tree lines: ├── └── │ characters for visual hierarchy
|
|
11
|
+
* - Lazy loading: async children loading with loading state
|
|
12
|
+
*
|
|
13
|
+
* @see docs/widgets/tree.md
|
|
14
|
+
*/
|
|
15
|
+
import type { NodeState } from "./types.js";
|
|
16
|
+
/** A flattened node with depth and sibling information. */
|
|
17
|
+
export type FlattenedNode<T> = Readonly<{
|
|
18
|
+
/** The original node data. */
|
|
19
|
+
node: T;
|
|
20
|
+
/** Depth in the tree (0 = root). */
|
|
21
|
+
depth: number;
|
|
22
|
+
/** Index in siblings array. */
|
|
23
|
+
siblingIndex: number;
|
|
24
|
+
/** Total siblings count. */
|
|
25
|
+
siblingCount: number;
|
|
26
|
+
/** Key of the node. */
|
|
27
|
+
key: string;
|
|
28
|
+
/** Key of parent node (null for roots). */
|
|
29
|
+
parentKey: string | null;
|
|
30
|
+
/** Whether this node has children. */
|
|
31
|
+
hasChildren: boolean;
|
|
32
|
+
/** Ancestor expanded states for tree line rendering. */
|
|
33
|
+
ancestorIsLast: readonly boolean[];
|
|
34
|
+
}>;
|
|
35
|
+
/**
|
|
36
|
+
* Flatten a tree into a list of visible nodes.
|
|
37
|
+
*
|
|
38
|
+
* Only includes nodes whose ancestors are all expanded.
|
|
39
|
+
* Order is depth-first pre-order traversal.
|
|
40
|
+
*
|
|
41
|
+
* @param data - Root node(s)
|
|
42
|
+
* @param getKey - Function to get node key
|
|
43
|
+
* @param getChildren - Function to get node children
|
|
44
|
+
* @param hasChildrenFn - Function to check if node has children
|
|
45
|
+
* @param expanded - Set of expanded node keys
|
|
46
|
+
* @returns Array of flattened nodes
|
|
47
|
+
*/
|
|
48
|
+
export declare function flattenTree<T>(data: T | readonly T[], getKey: (node: T) => string, getChildren: ((node: T) => readonly T[] | undefined) | undefined, hasChildrenFn: ((node: T) => boolean) | undefined, expanded: readonly string[], expandedSet?: ReadonlySet<string>): readonly FlattenedNode<T>[];
|
|
49
|
+
/**
|
|
50
|
+
* Compute NodeState for a flattened node.
|
|
51
|
+
*
|
|
52
|
+
* @param flatNode - The flattened node
|
|
53
|
+
* @param expanded - Set of expanded node keys
|
|
54
|
+
* @param selected - Currently selected node key
|
|
55
|
+
* @param focused - Currently focused node key
|
|
56
|
+
* @param loading - Set of loading node keys
|
|
57
|
+
* @returns NodeState for the node
|
|
58
|
+
*/
|
|
59
|
+
export declare function computeNodeState<T>(flatNode: FlattenedNode<T>, expanded: readonly string[], selected: string | undefined, focused: string | undefined, loading: ReadonlySet<string>, expandedSet?: ReadonlySet<string>): NodeState;
|
|
60
|
+
/** Tree line character set. */
|
|
61
|
+
export declare const TREE_CHARS: Readonly<{
|
|
62
|
+
/**
|
|
63
|
+
* NOTE: Keep these ASCII.
|
|
64
|
+
*
|
|
65
|
+
* Some terminals/fonts render box-drawing characters with fallback glyphs or
|
|
66
|
+
* ambiguous widths, which can produce "blocky" artifacts and break the visual
|
|
67
|
+
* structure. ASCII is the most compatible and still reads well.
|
|
68
|
+
*/
|
|
69
|
+
vertical: "|";
|
|
70
|
+
branch: "+--";
|
|
71
|
+
lastBranch: "\\--";
|
|
72
|
+
horizontal: "--";
|
|
73
|
+
space: " ";
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* Generate tree line prefix for a node.
|
|
77
|
+
*
|
|
78
|
+
* @param flatNode - The flattened node
|
|
79
|
+
* @param showLines - Whether to show tree lines
|
|
80
|
+
* @param indentSize - Characters per indent level
|
|
81
|
+
* @returns String prefix for the node
|
|
82
|
+
*/
|
|
83
|
+
export declare function getTreeLinePrefix<T>(flatNode: FlattenedNode<T>, showLines: boolean, indentSize: number): string;
|
|
84
|
+
/**
|
|
85
|
+
* Find the index of a node in the flattened list by key.
|
|
86
|
+
*
|
|
87
|
+
* @param flatNodes - Flattened node list
|
|
88
|
+
* @param key - Node key to find
|
|
89
|
+
* @returns Index or -1 if not found
|
|
90
|
+
*/
|
|
91
|
+
export declare function findNodeIndex<T>(flatNodes: readonly FlattenedNode<T>[], key: string): number;
|
|
92
|
+
/**
|
|
93
|
+
* Find the parent node in the flattened list.
|
|
94
|
+
*
|
|
95
|
+
* @param flatNodes - Flattened node list
|
|
96
|
+
* @param currentIndex - Current node index
|
|
97
|
+
* @returns Parent node index or -1 if at root
|
|
98
|
+
*/
|
|
99
|
+
export declare function findParentIndex<T>(flatNodes: readonly FlattenedNode<T>[], currentIndex: number): number;
|
|
100
|
+
/**
|
|
101
|
+
* Find the first child node in the flattened list.
|
|
102
|
+
*
|
|
103
|
+
* @param flatNodes - Flattened node list
|
|
104
|
+
* @param currentIndex - Current node index
|
|
105
|
+
* @returns First child index or -1 if no children visible
|
|
106
|
+
*/
|
|
107
|
+
export declare function findFirstChildIndex<T>(flatNodes: readonly FlattenedNode<T>[], currentIndex: number): number;
|
|
108
|
+
/**
|
|
109
|
+
* Add a key to the expanded set.
|
|
110
|
+
*
|
|
111
|
+
* @param expanded - Current expanded keys
|
|
112
|
+
* @param key - Key to add
|
|
113
|
+
* @returns New expanded set
|
|
114
|
+
*/
|
|
115
|
+
export declare function expandNode(expanded: readonly string[], key: string): readonly string[];
|
|
116
|
+
/**
|
|
117
|
+
* Remove a key from the expanded set.
|
|
118
|
+
*
|
|
119
|
+
* @param expanded - Current expanded keys
|
|
120
|
+
* @param key - Key to remove
|
|
121
|
+
* @returns New expanded set
|
|
122
|
+
*/
|
|
123
|
+
export declare function collapseNode(expanded: readonly string[], key: string): readonly string[];
|
|
124
|
+
/**
|
|
125
|
+
* Toggle a node's expanded state.
|
|
126
|
+
*
|
|
127
|
+
* @param expanded - Current expanded keys
|
|
128
|
+
* @param key - Key to toggle
|
|
129
|
+
* @returns New expanded set and whether it's now expanded
|
|
130
|
+
*/
|
|
131
|
+
export declare function toggleExpanded(expanded: readonly string[], key: string): {
|
|
132
|
+
expanded: readonly string[];
|
|
133
|
+
isExpanded: boolean;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* Expand all siblings of a node (nodes at the same depth with same parent).
|
|
137
|
+
*
|
|
138
|
+
* @param flatNodes - Flattened node list
|
|
139
|
+
* @param currentIndex - Current node index
|
|
140
|
+
* @param expanded - Current expanded keys
|
|
141
|
+
* @returns New expanded set with all siblings expanded
|
|
142
|
+
*/
|
|
143
|
+
export declare function expandAllSiblings<T>(flatNodes: readonly FlattenedNode<T>[], currentIndex: number, expanded: readonly string[]): readonly string[];
|
|
144
|
+
/**
|
|
145
|
+
* Create a loading state tracker.
|
|
146
|
+
*/
|
|
147
|
+
export type LoadingState = Readonly<{
|
|
148
|
+
/** Set of node keys currently loading. */
|
|
149
|
+
loading: ReadonlySet<string>;
|
|
150
|
+
/** Add a key to loading state. */
|
|
151
|
+
startLoading: (key: string) => LoadingState;
|
|
152
|
+
/** Remove a key from loading state. */
|
|
153
|
+
finishLoading: (key: string) => LoadingState;
|
|
154
|
+
/** Check if a key is loading. */
|
|
155
|
+
isLoading: (key: string) => boolean;
|
|
156
|
+
}>;
|
|
157
|
+
/**
|
|
158
|
+
* Create a new loading state.
|
|
159
|
+
*
|
|
160
|
+
* @param initial - Initial loading keys
|
|
161
|
+
* @returns LoadingState object
|
|
162
|
+
*/
|
|
163
|
+
export declare function createLoadingState(initial?: readonly string[]): LoadingState;
|
|
164
|
+
/** Expand/collapse indicator characters. */
|
|
165
|
+
export declare const EXPAND_INDICATORS: Readonly<{
|
|
166
|
+
/** Expanded indicator ▼ */
|
|
167
|
+
expanded: "▼";
|
|
168
|
+
/** Collapsed indicator ▶ */
|
|
169
|
+
collapsed: "▶";
|
|
170
|
+
/** Leaf (no children) indicator */
|
|
171
|
+
leaf: " ";
|
|
172
|
+
/** Loading indicator */
|
|
173
|
+
loading: "◌";
|
|
174
|
+
}>;
|
|
175
|
+
/**
|
|
176
|
+
* Get expand/collapse indicator for a node.
|
|
177
|
+
*
|
|
178
|
+
* @param hasChildren - Whether node has children
|
|
179
|
+
* @param isExpanded - Whether node is expanded
|
|
180
|
+
* @param isLoading - Whether node is loading
|
|
181
|
+
* @returns Indicator character
|
|
182
|
+
*/
|
|
183
|
+
export declare function getExpandIndicator(hasChildren: boolean, isExpanded: boolean, isLoading: boolean): string;
|
|
184
|
+
/**
|
|
185
|
+
* Count total visible nodes for virtualization.
|
|
186
|
+
*
|
|
187
|
+
* @param flatNodes - Flattened node list
|
|
188
|
+
* @returns Total count
|
|
189
|
+
*/
|
|
190
|
+
export declare function getTotalVisibleNodes<T>(flatNodes: readonly FlattenedNode<T>[]): number;
|
|
191
|
+
/**
|
|
192
|
+
* Find the next sibling node.
|
|
193
|
+
*
|
|
194
|
+
* @param flatNodes - Flattened node list
|
|
195
|
+
* @param currentIndex - Current node index
|
|
196
|
+
* @returns Next sibling index or -1 if none
|
|
197
|
+
*/
|
|
198
|
+
export declare function findNextSiblingIndex<T>(flatNodes: readonly FlattenedNode<T>[], currentIndex: number): number;
|
|
199
|
+
/**
|
|
200
|
+
* Find the previous sibling node.
|
|
201
|
+
*
|
|
202
|
+
* @param flatNodes - Flattened node list
|
|
203
|
+
* @param currentIndex - Current node index
|
|
204
|
+
* @returns Previous sibling index or -1 if none
|
|
205
|
+
*/
|
|
206
|
+
export declare function findPrevSiblingIndex<T>(flatNodes: readonly FlattenedNode<T>[], currentIndex: number): number;
|
|
207
|
+
//# sourceMappingURL=tree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/widgets/tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* packages/core/src/widgets/tree.ts — Tree widget core algorithms.
|
|
3
|
+
*
|
|
4
|
+
* Why: Implements the core logic for tree widgets including node flattening,
|
|
5
|
+
* NodeState computation, tree line rendering, and lazy loading state.
|
|
6
|
+
*
|
|
7
|
+
* Algorithms:
|
|
8
|
+
* - Node flattening: DFS traversal respecting expanded state
|
|
9
|
+
* - NodeState: computed state for each visible node
|
|
10
|
+
* - Tree lines: ├── └── │ characters for visual hierarchy
|
|
11
|
+
* - Lazy loading: async children loading with loading state
|
|
12
|
+
*
|
|
13
|
+
* @see docs/widgets/tree.md
|
|
14
|
+
*/
|
|
15
|
+
/* ========== Node Flattening ========== */
|
|
16
|
+
/**
|
|
17
|
+
* Flatten a tree into a list of visible nodes.
|
|
18
|
+
*
|
|
19
|
+
* Only includes nodes whose ancestors are all expanded.
|
|
20
|
+
* Order is depth-first pre-order traversal.
|
|
21
|
+
*
|
|
22
|
+
* @param data - Root node(s)
|
|
23
|
+
* @param getKey - Function to get node key
|
|
24
|
+
* @param getChildren - Function to get node children
|
|
25
|
+
* @param hasChildrenFn - Function to check if node has children
|
|
26
|
+
* @param expanded - Set of expanded node keys
|
|
27
|
+
* @returns Array of flattened nodes
|
|
28
|
+
*/
|
|
29
|
+
export function flattenTree(data, getKey, getChildren, hasChildrenFn, expanded, expandedSet) {
|
|
30
|
+
const result = [];
|
|
31
|
+
const expandedLookup = expandedSet ?? new Set(expanded);
|
|
32
|
+
// Normalize to array of roots
|
|
33
|
+
const roots = Array.isArray(data) ? data : [data];
|
|
34
|
+
function traverse(nodes, depth, parentKey, ancestorIsLast) {
|
|
35
|
+
const siblingCount = nodes.length;
|
|
36
|
+
for (let i = 0; i < siblingCount; i++) {
|
|
37
|
+
const node = nodes[i];
|
|
38
|
+
if (node === undefined)
|
|
39
|
+
continue;
|
|
40
|
+
const key = getKey(node);
|
|
41
|
+
const children = getChildren?.(node);
|
|
42
|
+
const hasChildren = hasChildrenFn ? hasChildrenFn(node) : (children?.length ?? 0) > 0;
|
|
43
|
+
const isLast = i === siblingCount - 1;
|
|
44
|
+
const flatNode = Object.freeze({
|
|
45
|
+
node,
|
|
46
|
+
depth,
|
|
47
|
+
siblingIndex: i,
|
|
48
|
+
siblingCount,
|
|
49
|
+
key,
|
|
50
|
+
parentKey,
|
|
51
|
+
hasChildren,
|
|
52
|
+
ancestorIsLast: Object.freeze([...ancestorIsLast, isLast]),
|
|
53
|
+
});
|
|
54
|
+
result.push(flatNode);
|
|
55
|
+
// Recurse into children if expanded
|
|
56
|
+
if (hasChildren && expandedLookup.has(key) && children && children.length > 0) {
|
|
57
|
+
traverse(children, depth + 1, key, flatNode.ancestorIsLast);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
traverse(roots, 0, null, []);
|
|
62
|
+
return Object.freeze(result);
|
|
63
|
+
}
|
|
64
|
+
/* ========== NodeState Computation ========== */
|
|
65
|
+
/**
|
|
66
|
+
* Compute NodeState for a flattened node.
|
|
67
|
+
*
|
|
68
|
+
* @param flatNode - The flattened node
|
|
69
|
+
* @param expanded - Set of expanded node keys
|
|
70
|
+
* @param selected - Currently selected node key
|
|
71
|
+
* @param focused - Currently focused node key
|
|
72
|
+
* @param loading - Set of loading node keys
|
|
73
|
+
* @returns NodeState for the node
|
|
74
|
+
*/
|
|
75
|
+
export function computeNodeState(flatNode, expanded, selected, focused, loading, expandedSet) {
|
|
76
|
+
const expandedLookup = expandedSet ?? new Set(expanded);
|
|
77
|
+
return Object.freeze({
|
|
78
|
+
expanded: expandedLookup.has(flatNode.key),
|
|
79
|
+
selected: flatNode.key === selected,
|
|
80
|
+
focused: flatNode.key === focused,
|
|
81
|
+
loading: loading.has(flatNode.key),
|
|
82
|
+
depth: flatNode.depth,
|
|
83
|
+
isFirst: flatNode.siblingIndex === 0,
|
|
84
|
+
isLast: flatNode.siblingIndex === flatNode.siblingCount - 1,
|
|
85
|
+
hasChildren: flatNode.hasChildren,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/* ========== Tree Line Characters ========== */
|
|
89
|
+
/** Tree line character set. */
|
|
90
|
+
export const TREE_CHARS = Object.freeze({
|
|
91
|
+
/**
|
|
92
|
+
* NOTE: Keep these ASCII.
|
|
93
|
+
*
|
|
94
|
+
* Some terminals/fonts render box-drawing characters with fallback glyphs or
|
|
95
|
+
* ambiguous widths, which can produce "blocky" artifacts and break the visual
|
|
96
|
+
* structure. ASCII is the most compatible and still reads well.
|
|
97
|
+
*/
|
|
98
|
+
vertical: "|",
|
|
99
|
+
branch: "+--",
|
|
100
|
+
lastBranch: "\\--",
|
|
101
|
+
horizontal: "--",
|
|
102
|
+
space: " ",
|
|
103
|
+
});
|
|
104
|
+
/**
|
|
105
|
+
* Generate tree line prefix for a node.
|
|
106
|
+
*
|
|
107
|
+
* @param flatNode - The flattened node
|
|
108
|
+
* @param showLines - Whether to show tree lines
|
|
109
|
+
* @param indentSize - Characters per indent level
|
|
110
|
+
* @returns String prefix for the node
|
|
111
|
+
*/
|
|
112
|
+
export function getTreeLinePrefix(flatNode, showLines, indentSize) {
|
|
113
|
+
if (flatNode.depth === 0) {
|
|
114
|
+
return "";
|
|
115
|
+
}
|
|
116
|
+
if (!showLines) {
|
|
117
|
+
// Simple indentation without lines
|
|
118
|
+
return " ".repeat(flatNode.depth * indentSize);
|
|
119
|
+
}
|
|
120
|
+
// Build tree line prefix
|
|
121
|
+
const parts = [];
|
|
122
|
+
// Add ancestor lines (excluding the last which is for current node)
|
|
123
|
+
for (let i = 0; i < flatNode.depth - 1; i++) {
|
|
124
|
+
const isLast = flatNode.ancestorIsLast[i];
|
|
125
|
+
if (isLast) {
|
|
126
|
+
// Ancestor was last child, no continuing line
|
|
127
|
+
parts.push(TREE_CHARS.space);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
// Ancestor has siblings below, show continuing line
|
|
131
|
+
parts.push(`${TREE_CHARS.vertical} `);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Add branch for current node
|
|
135
|
+
const isLast = flatNode.siblingIndex === flatNode.siblingCount - 1;
|
|
136
|
+
parts.push(isLast ? TREE_CHARS.lastBranch : TREE_CHARS.branch);
|
|
137
|
+
return parts.join("");
|
|
138
|
+
}
|
|
139
|
+
/* ========== Navigation ========== */
|
|
140
|
+
/**
|
|
141
|
+
* Find the index of a node in the flattened list by key.
|
|
142
|
+
*
|
|
143
|
+
* @param flatNodes - Flattened node list
|
|
144
|
+
* @param key - Node key to find
|
|
145
|
+
* @returns Index or -1 if not found
|
|
146
|
+
*/
|
|
147
|
+
export function findNodeIndex(flatNodes, key) {
|
|
148
|
+
for (let i = 0; i < flatNodes.length; i++) {
|
|
149
|
+
const node = flatNodes[i];
|
|
150
|
+
if (node?.key === key) {
|
|
151
|
+
return i;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return -1;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Find the parent node in the flattened list.
|
|
158
|
+
*
|
|
159
|
+
* @param flatNodes - Flattened node list
|
|
160
|
+
* @param currentIndex - Current node index
|
|
161
|
+
* @returns Parent node index or -1 if at root
|
|
162
|
+
*/
|
|
163
|
+
export function findParentIndex(flatNodes, currentIndex) {
|
|
164
|
+
const current = flatNodes[currentIndex];
|
|
165
|
+
if (!current || current.parentKey === null) {
|
|
166
|
+
return -1;
|
|
167
|
+
}
|
|
168
|
+
return findNodeIndex(flatNodes, current.parentKey);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Find the first child node in the flattened list.
|
|
172
|
+
*
|
|
173
|
+
* @param flatNodes - Flattened node list
|
|
174
|
+
* @param currentIndex - Current node index
|
|
175
|
+
* @returns First child index or -1 if no children visible
|
|
176
|
+
*/
|
|
177
|
+
export function findFirstChildIndex(flatNodes, currentIndex) {
|
|
178
|
+
const current = flatNodes[currentIndex];
|
|
179
|
+
if (!current)
|
|
180
|
+
return -1;
|
|
181
|
+
const nextIndex = currentIndex + 1;
|
|
182
|
+
const next = flatNodes[nextIndex];
|
|
183
|
+
// Check if next node is a child (depth is current + 1 and has current as parent)
|
|
184
|
+
if (next && next.parentKey === current.key && next.depth === current.depth + 1) {
|
|
185
|
+
return nextIndex;
|
|
186
|
+
}
|
|
187
|
+
return -1;
|
|
188
|
+
}
|
|
189
|
+
/* ========== Expand/Collapse Operations ========== */
|
|
190
|
+
/**
|
|
191
|
+
* Add a key to the expanded set.
|
|
192
|
+
*
|
|
193
|
+
* @param expanded - Current expanded keys
|
|
194
|
+
* @param key - Key to add
|
|
195
|
+
* @returns New expanded set
|
|
196
|
+
*/
|
|
197
|
+
export function expandNode(expanded, key) {
|
|
198
|
+
if (expanded.includes(key)) {
|
|
199
|
+
return expanded;
|
|
200
|
+
}
|
|
201
|
+
return Object.freeze([...expanded, key]);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Remove a key from the expanded set.
|
|
205
|
+
*
|
|
206
|
+
* @param expanded - Current expanded keys
|
|
207
|
+
* @param key - Key to remove
|
|
208
|
+
* @returns New expanded set
|
|
209
|
+
*/
|
|
210
|
+
export function collapseNode(expanded, key) {
|
|
211
|
+
const index = expanded.indexOf(key);
|
|
212
|
+
if (index === -1) {
|
|
213
|
+
return expanded;
|
|
214
|
+
}
|
|
215
|
+
const result = expanded.filter((k) => k !== key);
|
|
216
|
+
return Object.freeze(result);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Toggle a node's expanded state.
|
|
220
|
+
*
|
|
221
|
+
* @param expanded - Current expanded keys
|
|
222
|
+
* @param key - Key to toggle
|
|
223
|
+
* @returns New expanded set and whether it's now expanded
|
|
224
|
+
*/
|
|
225
|
+
export function toggleExpanded(expanded, key) {
|
|
226
|
+
const isCurrentlyExpanded = expanded.includes(key);
|
|
227
|
+
if (isCurrentlyExpanded) {
|
|
228
|
+
return {
|
|
229
|
+
expanded: collapseNode(expanded, key),
|
|
230
|
+
isExpanded: false,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
return {
|
|
234
|
+
expanded: expandNode(expanded, key),
|
|
235
|
+
isExpanded: true,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Expand all siblings of a node (nodes at the same depth with same parent).
|
|
240
|
+
*
|
|
241
|
+
* @param flatNodes - Flattened node list
|
|
242
|
+
* @param currentIndex - Current node index
|
|
243
|
+
* @param expanded - Current expanded keys
|
|
244
|
+
* @returns New expanded set with all siblings expanded
|
|
245
|
+
*/
|
|
246
|
+
export function expandAllSiblings(flatNodes, currentIndex, expanded) {
|
|
247
|
+
const current = flatNodes[currentIndex];
|
|
248
|
+
if (!current)
|
|
249
|
+
return expanded;
|
|
250
|
+
const siblingKeys = [];
|
|
251
|
+
// Find all siblings (same parentKey and depth)
|
|
252
|
+
for (let i = 0; i < flatNodes.length; i++) {
|
|
253
|
+
const node = flatNodes[i];
|
|
254
|
+
if (node &&
|
|
255
|
+
node.parentKey === current.parentKey &&
|
|
256
|
+
node.depth === current.depth &&
|
|
257
|
+
node.hasChildren) {
|
|
258
|
+
siblingKeys.push(node.key);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
// Add all siblings to expanded set
|
|
262
|
+
const expandedSet = new Set(expanded);
|
|
263
|
+
const originalSize = expandedSet.size;
|
|
264
|
+
for (const key of siblingKeys) {
|
|
265
|
+
expandedSet.add(key);
|
|
266
|
+
}
|
|
267
|
+
// Return same reference if nothing changed
|
|
268
|
+
if (expandedSet.size === originalSize) {
|
|
269
|
+
return expanded;
|
|
270
|
+
}
|
|
271
|
+
return Object.freeze([...expandedSet]);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Create a new loading state.
|
|
275
|
+
*
|
|
276
|
+
* @param initial - Initial loading keys
|
|
277
|
+
* @returns LoadingState object
|
|
278
|
+
*/
|
|
279
|
+
export function createLoadingState(initial = []) {
|
|
280
|
+
const loading = new Set(initial);
|
|
281
|
+
const state = Object.freeze({
|
|
282
|
+
loading: loading,
|
|
283
|
+
startLoading: (key) => {
|
|
284
|
+
if (loading.has(key)) {
|
|
285
|
+
return state;
|
|
286
|
+
}
|
|
287
|
+
return createLoadingState([...loading, key]);
|
|
288
|
+
},
|
|
289
|
+
finishLoading: (key) => {
|
|
290
|
+
if (!loading.has(key)) {
|
|
291
|
+
return state;
|
|
292
|
+
}
|
|
293
|
+
return createLoadingState([...loading].filter((k) => k !== key));
|
|
294
|
+
},
|
|
295
|
+
isLoading: (key) => loading.has(key),
|
|
296
|
+
});
|
|
297
|
+
return state;
|
|
298
|
+
}
|
|
299
|
+
/* ========== Expand/Collapse Indicators ========== */
|
|
300
|
+
/** Expand/collapse indicator characters. */
|
|
301
|
+
export const EXPAND_INDICATORS = Object.freeze({
|
|
302
|
+
/** Expanded indicator ▼ */
|
|
303
|
+
expanded: "▼",
|
|
304
|
+
/** Collapsed indicator ▶ */
|
|
305
|
+
collapsed: "▶",
|
|
306
|
+
/** Leaf (no children) indicator */
|
|
307
|
+
leaf: " ",
|
|
308
|
+
/** Loading indicator */
|
|
309
|
+
loading: "◌",
|
|
310
|
+
});
|
|
311
|
+
/**
|
|
312
|
+
* Get expand/collapse indicator for a node.
|
|
313
|
+
*
|
|
314
|
+
* @param hasChildren - Whether node has children
|
|
315
|
+
* @param isExpanded - Whether node is expanded
|
|
316
|
+
* @param isLoading - Whether node is loading
|
|
317
|
+
* @returns Indicator character
|
|
318
|
+
*/
|
|
319
|
+
export function getExpandIndicator(hasChildren, isExpanded, isLoading) {
|
|
320
|
+
if (isLoading) {
|
|
321
|
+
return EXPAND_INDICATORS.loading;
|
|
322
|
+
}
|
|
323
|
+
if (!hasChildren) {
|
|
324
|
+
return EXPAND_INDICATORS.leaf;
|
|
325
|
+
}
|
|
326
|
+
return isExpanded ? EXPAND_INDICATORS.expanded : EXPAND_INDICATORS.collapsed;
|
|
327
|
+
}
|
|
328
|
+
/* ========== Total Visible Nodes ========== */
|
|
329
|
+
/**
|
|
330
|
+
* Count total visible nodes for virtualization.
|
|
331
|
+
*
|
|
332
|
+
* @param flatNodes - Flattened node list
|
|
333
|
+
* @returns Total count
|
|
334
|
+
*/
|
|
335
|
+
export function getTotalVisibleNodes(flatNodes) {
|
|
336
|
+
return flatNodes.length;
|
|
337
|
+
}
|
|
338
|
+
/* ========== Navigate to Sibling ========== */
|
|
339
|
+
/**
|
|
340
|
+
* Find the next sibling node.
|
|
341
|
+
*
|
|
342
|
+
* @param flatNodes - Flattened node list
|
|
343
|
+
* @param currentIndex - Current node index
|
|
344
|
+
* @returns Next sibling index or -1 if none
|
|
345
|
+
*/
|
|
346
|
+
export function findNextSiblingIndex(flatNodes, currentIndex) {
|
|
347
|
+
const current = flatNodes[currentIndex];
|
|
348
|
+
if (!current)
|
|
349
|
+
return -1;
|
|
350
|
+
// Scan forward for a sibling (same parent and depth)
|
|
351
|
+
for (let i = currentIndex + 1; i < flatNodes.length; i++) {
|
|
352
|
+
const node = flatNodes[i];
|
|
353
|
+
if (!node)
|
|
354
|
+
continue;
|
|
355
|
+
// Stop if we go back up to a shallower depth
|
|
356
|
+
if (node.depth < current.depth) {
|
|
357
|
+
break;
|
|
358
|
+
}
|
|
359
|
+
// Found sibling
|
|
360
|
+
if (node.depth === current.depth && node.parentKey === current.parentKey) {
|
|
361
|
+
return i;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
return -1;
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Find the previous sibling node.
|
|
368
|
+
*
|
|
369
|
+
* @param flatNodes - Flattened node list
|
|
370
|
+
* @param currentIndex - Current node index
|
|
371
|
+
* @returns Previous sibling index or -1 if none
|
|
372
|
+
*/
|
|
373
|
+
export function findPrevSiblingIndex(flatNodes, currentIndex) {
|
|
374
|
+
const current = flatNodes[currentIndex];
|
|
375
|
+
if (!current)
|
|
376
|
+
return -1;
|
|
377
|
+
// Scan backward for a sibling (same parent and depth)
|
|
378
|
+
for (let i = currentIndex - 1; i >= 0; i--) {
|
|
379
|
+
const node = flatNodes[i];
|
|
380
|
+
if (!node)
|
|
381
|
+
continue;
|
|
382
|
+
// Found sibling
|
|
383
|
+
if (node.depth === current.depth && node.parentKey === current.parentKey) {
|
|
384
|
+
return i;
|
|
385
|
+
}
|
|
386
|
+
// Stop if we encounter a node at a shallower depth
|
|
387
|
+
if (node.depth < current.depth) {
|
|
388
|
+
break;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
return -1;
|
|
392
|
+
}
|
|
393
|
+
//# sourceMappingURL=tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/widgets/tree.ts"],"names":[],"mappings":"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"}
|