@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,338 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* packages/core/src/widgets/table.ts — Table widget core algorithms.
|
|
3
|
+
*
|
|
4
|
+
* Why: Implements the core logic for table widgets including column width
|
|
5
|
+
* distribution, row selection state management, and virtualization support.
|
|
6
|
+
*
|
|
7
|
+
* Algorithms:
|
|
8
|
+
* - Column width distribution: flex-based layout with min/max constraints
|
|
9
|
+
* - Selection: single/multi mode with shift-click range support
|
|
10
|
+
* - Virtualization: reuses virtualList algorithms for row windowing
|
|
11
|
+
*
|
|
12
|
+
* @see docs/widgets/table.md
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Distribute available width among table columns.
|
|
16
|
+
*
|
|
17
|
+
* Algorithm:
|
|
18
|
+
* 1. Assign fixed widths to columns with explicit width
|
|
19
|
+
* 2. Calculate remaining space after fixed columns
|
|
20
|
+
* 3. Distribute remaining space to flex columns proportionally
|
|
21
|
+
* 4. Apply min/max constraints to flex columns
|
|
22
|
+
* 5. Redistribute overflow from constrained columns
|
|
23
|
+
*
|
|
24
|
+
* @param columns - Column definitions
|
|
25
|
+
* @param availableWidth - Total available width in cells
|
|
26
|
+
* @returns Column widths and total width
|
|
27
|
+
*/
|
|
28
|
+
export function distributeColumnWidths(columns, availableWidth) {
|
|
29
|
+
const n = columns.length;
|
|
30
|
+
if (n === 0) {
|
|
31
|
+
return Object.freeze({ widths: Object.freeze([]), totalWidth: 0 });
|
|
32
|
+
}
|
|
33
|
+
const widths = new Array(n).fill(0);
|
|
34
|
+
let remainingWidth = availableWidth;
|
|
35
|
+
let totalFlex = 0;
|
|
36
|
+
// Pass 1: Assign fixed widths and calculate total flex
|
|
37
|
+
for (let i = 0; i < n; i++) {
|
|
38
|
+
const col = columns[i];
|
|
39
|
+
if (col === undefined)
|
|
40
|
+
continue;
|
|
41
|
+
if (col.width !== undefined) {
|
|
42
|
+
// Fixed width column
|
|
43
|
+
const width = Math.max(0, col.width);
|
|
44
|
+
widths[i] = width;
|
|
45
|
+
remainingWidth -= width;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// Flex column (default flex: 1)
|
|
49
|
+
const flex = col.flex ?? 1;
|
|
50
|
+
totalFlex += flex;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Pass 2: Distribute remaining width to flex columns
|
|
54
|
+
if (totalFlex > 0 && remainingWidth > 0) {
|
|
55
|
+
const widthPerFlex = remainingWidth / totalFlex;
|
|
56
|
+
for (let i = 0; i < n; i++) {
|
|
57
|
+
const col = columns[i];
|
|
58
|
+
if (col === undefined)
|
|
59
|
+
continue;
|
|
60
|
+
if (col.width === undefined) {
|
|
61
|
+
const flex = col.flex ?? 1;
|
|
62
|
+
let width = Math.floor(widthPerFlex * flex);
|
|
63
|
+
// Apply min/max constraints
|
|
64
|
+
if (col.minWidth !== undefined) {
|
|
65
|
+
width = Math.max(width, col.minWidth);
|
|
66
|
+
}
|
|
67
|
+
if (col.maxWidth !== undefined) {
|
|
68
|
+
width = Math.min(width, col.maxWidth);
|
|
69
|
+
}
|
|
70
|
+
widths[i] = Math.max(0, width);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Calculate total width
|
|
75
|
+
let totalWidth = 0;
|
|
76
|
+
for (let i = 0; i < n; i++) {
|
|
77
|
+
const w = widths[i];
|
|
78
|
+
if (w !== undefined) {
|
|
79
|
+
totalWidth += w;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return Object.freeze({
|
|
83
|
+
widths: Object.freeze(widths),
|
|
84
|
+
totalWidth,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Compute new selection state after clicking a row.
|
|
89
|
+
*
|
|
90
|
+
* @param currentSelection - Current selected keys
|
|
91
|
+
* @param rowKey - Key of clicked row
|
|
92
|
+
* @param mode - Selection mode
|
|
93
|
+
* @param modifiers - Keyboard modifiers (shift, ctrl/cmd)
|
|
94
|
+
* @param allRowKeys - All row keys for shift-select range
|
|
95
|
+
* @param lastClickedKey - Previously clicked key for shift-select
|
|
96
|
+
* @param rowKeyToIndex - Optional pre-built index map for O(1) lookup (recommended for large tables)
|
|
97
|
+
* @returns New selection state
|
|
98
|
+
*/
|
|
99
|
+
export function computeSelection(currentSelection, rowKey, mode, modifiers, allRowKeys, lastClickedKey, rowKeyToIndex) {
|
|
100
|
+
if (mode === "none") {
|
|
101
|
+
return Object.freeze({ selection: Object.freeze([]), changed: false });
|
|
102
|
+
}
|
|
103
|
+
if (mode === "single") {
|
|
104
|
+
// Single mode: clicking selects only that row
|
|
105
|
+
const isSelected = currentSelection.includes(rowKey);
|
|
106
|
+
if (isSelected && currentSelection.length === 1) {
|
|
107
|
+
return Object.freeze({ selection: currentSelection, changed: false });
|
|
108
|
+
}
|
|
109
|
+
return Object.freeze({
|
|
110
|
+
selection: Object.freeze([rowKey]),
|
|
111
|
+
changed: true,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
// Multi mode
|
|
115
|
+
if (modifiers.shift && lastClickedKey !== null) {
|
|
116
|
+
// Shift-click: select range from last clicked to current
|
|
117
|
+
// Use O(1) map lookup if available, otherwise fall back to O(n) indexOf
|
|
118
|
+
const startIdx = rowKeyToIndex?.get(lastClickedKey) ?? allRowKeys.indexOf(lastClickedKey);
|
|
119
|
+
const endIdx = rowKeyToIndex?.get(rowKey) ?? allRowKeys.indexOf(rowKey);
|
|
120
|
+
if (startIdx === -1 || endIdx === -1) {
|
|
121
|
+
// Fallback: just toggle current row
|
|
122
|
+
return toggleSelection(currentSelection, rowKey);
|
|
123
|
+
}
|
|
124
|
+
const minIdx = Math.min(startIdx, endIdx);
|
|
125
|
+
const maxIdx = Math.max(startIdx, endIdx);
|
|
126
|
+
// Build new selection including the range
|
|
127
|
+
const rangeKeys = allRowKeys.slice(minIdx, maxIdx + 1);
|
|
128
|
+
const newSelection = new Set(currentSelection);
|
|
129
|
+
for (const key of rangeKeys) {
|
|
130
|
+
newSelection.add(key);
|
|
131
|
+
}
|
|
132
|
+
const result = [...newSelection];
|
|
133
|
+
return Object.freeze({
|
|
134
|
+
selection: Object.freeze(result),
|
|
135
|
+
changed: result.length !== currentSelection.length,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
if (modifiers.ctrl) {
|
|
139
|
+
// Ctrl-click: toggle selection
|
|
140
|
+
return toggleSelection(currentSelection, rowKey);
|
|
141
|
+
}
|
|
142
|
+
// Plain click: select only this row
|
|
143
|
+
const isOnlySelected = currentSelection.length === 1 && currentSelection[0] === rowKey;
|
|
144
|
+
if (isOnlySelected) {
|
|
145
|
+
return Object.freeze({ selection: currentSelection, changed: false });
|
|
146
|
+
}
|
|
147
|
+
return Object.freeze({
|
|
148
|
+
selection: Object.freeze([rowKey]),
|
|
149
|
+
changed: true,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Toggle selection of a single row.
|
|
154
|
+
*/
|
|
155
|
+
function toggleSelection(currentSelection, rowKey) {
|
|
156
|
+
const isSelected = currentSelection.includes(rowKey);
|
|
157
|
+
if (isSelected) {
|
|
158
|
+
const newSelection = currentSelection.filter((k) => k !== rowKey);
|
|
159
|
+
return Object.freeze({
|
|
160
|
+
selection: Object.freeze(newSelection),
|
|
161
|
+
changed: true,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
const newSelection = [...currentSelection, rowKey];
|
|
165
|
+
return Object.freeze({
|
|
166
|
+
selection: Object.freeze(newSelection),
|
|
167
|
+
changed: true,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Select all rows.
|
|
172
|
+
*
|
|
173
|
+
* @param allRowKeys - All row keys
|
|
174
|
+
* @param currentSelection - Current selection
|
|
175
|
+
* @returns New selection with all rows selected
|
|
176
|
+
*/
|
|
177
|
+
export function selectAll(allRowKeys, currentSelection) {
|
|
178
|
+
if (currentSelection.length === allRowKeys.length) {
|
|
179
|
+
// Check if already all selected - use Set for O(n) instead of O(n²)
|
|
180
|
+
const selectionSet = new Set(currentSelection);
|
|
181
|
+
const allSelected = allRowKeys.every((k) => selectionSet.has(k));
|
|
182
|
+
if (allSelected) {
|
|
183
|
+
return Object.freeze({ selection: currentSelection, changed: false });
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return Object.freeze({
|
|
187
|
+
selection: allRowKeys,
|
|
188
|
+
changed: true,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Clear all selection.
|
|
193
|
+
*
|
|
194
|
+
* @param currentSelection - Current selection
|
|
195
|
+
* @returns Empty selection
|
|
196
|
+
*/
|
|
197
|
+
export function clearSelection(currentSelection) {
|
|
198
|
+
if (currentSelection.length === 0) {
|
|
199
|
+
return Object.freeze({ selection: currentSelection, changed: false });
|
|
200
|
+
}
|
|
201
|
+
return Object.freeze({
|
|
202
|
+
selection: Object.freeze([]),
|
|
203
|
+
changed: true,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Compute next sort state when clicking a column header.
|
|
208
|
+
*
|
|
209
|
+
* Logic:
|
|
210
|
+
* - Clicking unsorted column → sort ascending
|
|
211
|
+
* - Clicking ascending column → sort descending
|
|
212
|
+
* - Clicking descending column → sort ascending (cycle)
|
|
213
|
+
*
|
|
214
|
+
* @param currentColumn - Currently sorted column (or undefined)
|
|
215
|
+
* @param currentDirection - Current sort direction
|
|
216
|
+
* @param clickedColumn - Clicked column key
|
|
217
|
+
* @returns New sort state
|
|
218
|
+
*/
|
|
219
|
+
export function toggleSort(currentColumn, currentDirection, clickedColumn) {
|
|
220
|
+
if (currentColumn !== clickedColumn) {
|
|
221
|
+
// New column: start ascending
|
|
222
|
+
return Object.freeze({ column: clickedColumn, direction: "asc" });
|
|
223
|
+
}
|
|
224
|
+
// Same column: toggle direction
|
|
225
|
+
const newDirection = currentDirection === "asc" ? "desc" : "asc";
|
|
226
|
+
return Object.freeze({ column: clickedColumn, direction: newDirection });
|
|
227
|
+
}
|
|
228
|
+
/* ========== Row Key Extraction ========== */
|
|
229
|
+
/**
|
|
230
|
+
* Extract row keys from data using getRowKey function.
|
|
231
|
+
*
|
|
232
|
+
* @param data - Row data array
|
|
233
|
+
* @param getRowKey - Function to extract key from row
|
|
234
|
+
* @returns Array of row keys
|
|
235
|
+
*/
|
|
236
|
+
export function extractRowKeys(data, getRowKey) {
|
|
237
|
+
const keys = new Array(data.length);
|
|
238
|
+
for (let i = 0; i < data.length; i++) {
|
|
239
|
+
const row = data[i];
|
|
240
|
+
if (row !== undefined) {
|
|
241
|
+
keys[i] = getRowKey(row, i);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
keys[i] = `__empty_${i}`;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return Object.freeze(keys);
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Build an index map from row keys for O(1) lookups.
|
|
251
|
+
*
|
|
252
|
+
* This is an optimization for large tables to avoid O(n) indexOf() calls
|
|
253
|
+
* during shift-click range selection. For tables with <1000 rows, the
|
|
254
|
+
* overhead of building this map may not be worth it.
|
|
255
|
+
*
|
|
256
|
+
* @param rowKeys - Array of row keys (from extractRowKeys)
|
|
257
|
+
* @returns Map from row key to index
|
|
258
|
+
*/
|
|
259
|
+
export function buildRowKeyIndex(rowKeys) {
|
|
260
|
+
const map = new Map();
|
|
261
|
+
for (let i = 0; i < rowKeys.length; i++) {
|
|
262
|
+
const key = rowKeys[i];
|
|
263
|
+
if (key !== undefined) {
|
|
264
|
+
map.set(key, i);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return map;
|
|
268
|
+
}
|
|
269
|
+
/* ========== Sort Indicator ========== */
|
|
270
|
+
/** Sort indicator characters. */
|
|
271
|
+
export const SORT_INDICATOR_ASC = "▲";
|
|
272
|
+
export const SORT_INDICATOR_DESC = "▼";
|
|
273
|
+
/**
|
|
274
|
+
* Get sort indicator for a column header.
|
|
275
|
+
*
|
|
276
|
+
* @param columnKey - Column key
|
|
277
|
+
* @param sortColumn - Currently sorted column
|
|
278
|
+
* @param sortDirection - Current sort direction
|
|
279
|
+
* @returns Sort indicator string or empty string
|
|
280
|
+
*/
|
|
281
|
+
export function getSortIndicator(columnKey, sortColumn, sortDirection) {
|
|
282
|
+
if (sortColumn !== columnKey) {
|
|
283
|
+
return "";
|
|
284
|
+
}
|
|
285
|
+
return sortDirection === "asc" ? SORT_INDICATOR_ASC : SORT_INDICATOR_DESC;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Pad text to fit within a cell with specified alignment.
|
|
289
|
+
*
|
|
290
|
+
* @param text - Text content
|
|
291
|
+
* @param width - Cell width
|
|
292
|
+
* @param align - Alignment
|
|
293
|
+
* @returns Padded text
|
|
294
|
+
*/
|
|
295
|
+
export function alignCellText(text, width, align) {
|
|
296
|
+
const textLength = text.length;
|
|
297
|
+
if (textLength >= width) {
|
|
298
|
+
// Truncate if too long
|
|
299
|
+
return text.slice(0, width);
|
|
300
|
+
}
|
|
301
|
+
const padding = width - textLength;
|
|
302
|
+
switch (align) {
|
|
303
|
+
case "right":
|
|
304
|
+
return " ".repeat(padding) + text;
|
|
305
|
+
case "center": {
|
|
306
|
+
const leftPad = Math.floor(padding / 2);
|
|
307
|
+
const rightPad = padding - leftPad;
|
|
308
|
+
return " ".repeat(leftPad) + text + " ".repeat(rightPad);
|
|
309
|
+
}
|
|
310
|
+
case "left":
|
|
311
|
+
return text + " ".repeat(padding);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
/* ========== Focused Row Navigation ========== */
|
|
315
|
+
/**
|
|
316
|
+
* Compute row index from row key.
|
|
317
|
+
*
|
|
318
|
+
* @param rowKeys - All row keys
|
|
319
|
+
* @param rowKey - Key to find
|
|
320
|
+
* @returns Index or -1 if not found
|
|
321
|
+
*/
|
|
322
|
+
export function getRowIndex(rowKeys, rowKey) {
|
|
323
|
+
return rowKeys.indexOf(rowKey);
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Compute row key from row index.
|
|
327
|
+
*
|
|
328
|
+
* @param rowKeys - All row keys
|
|
329
|
+
* @param index - Row index
|
|
330
|
+
* @returns Row key or undefined if out of bounds
|
|
331
|
+
*/
|
|
332
|
+
export function getRowKeyAtIndex(rowKeys, index) {
|
|
333
|
+
if (index < 0 || index >= rowKeys.length) {
|
|
334
|
+
return undefined;
|
|
335
|
+
}
|
|
336
|
+
return rowKeys[index];
|
|
337
|
+
}
|
|
338
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/widgets/table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* packages/core/src/widgets/toast.ts — Toast/Notifications core algorithms.
|
|
3
|
+
*
|
|
4
|
+
* Why: Implements positioning, stacking, and auto-dismiss logic for toast
|
|
5
|
+
* notifications. Toasts are non-blocking feedback messages that stack
|
|
6
|
+
* vertically from a screen edge.
|
|
7
|
+
*
|
|
8
|
+
* @see docs/widgets/toast.md
|
|
9
|
+
*/
|
|
10
|
+
import type { Toast, ToastPosition } from "./types.js";
|
|
11
|
+
/** Height of a single toast in cells. */
|
|
12
|
+
export declare const TOAST_HEIGHT = 3;
|
|
13
|
+
/** Default max visible toasts. */
|
|
14
|
+
export declare const DEFAULT_MAX_VISIBLE = 5;
|
|
15
|
+
/** Default auto-dismiss duration in ms. */
|
|
16
|
+
export declare const DEFAULT_DURATION = 3000;
|
|
17
|
+
/** Focus id for a toast action button (used by runtime-local focus routing). */
|
|
18
|
+
export declare function getToastActionFocusId(toastId: string): string;
|
|
19
|
+
export declare function parseToastActionFocusId(id: string): string | null;
|
|
20
|
+
/**
|
|
21
|
+
* Compute visible toasts based on max visible limit.
|
|
22
|
+
*
|
|
23
|
+
* @param toasts - All active toasts
|
|
24
|
+
* @param maxVisible - Maximum number of visible toasts
|
|
25
|
+
* @returns Toasts to display (most recent first)
|
|
26
|
+
*/
|
|
27
|
+
export declare function getVisibleToasts(toasts: readonly Toast[], maxVisible?: number): readonly Toast[];
|
|
28
|
+
/**
|
|
29
|
+
* Compute toast Y position within the container.
|
|
30
|
+
*
|
|
31
|
+
* @param index - Toast index (0 = first)
|
|
32
|
+
* @param position - Container position
|
|
33
|
+
* @param containerHeight - Container height in cells
|
|
34
|
+
* @returns Y offset within container
|
|
35
|
+
*/
|
|
36
|
+
export declare function getToastY(index: number, position: ToastPosition, containerHeight: number): number;
|
|
37
|
+
/**
|
|
38
|
+
* Compute toast X position based on container position.
|
|
39
|
+
*
|
|
40
|
+
* @param position - Container position
|
|
41
|
+
* @param containerWidth - Container width in cells
|
|
42
|
+
* @param toastWidth - Individual toast width in cells
|
|
43
|
+
* @returns X offset for toast
|
|
44
|
+
*/
|
|
45
|
+
export declare function getToastX(position: ToastPosition, containerWidth: number, toastWidth: number): number;
|
|
46
|
+
/**
|
|
47
|
+
* Filter toasts by auto-dismiss status.
|
|
48
|
+
* Returns toasts that should still be visible based on their creation time.
|
|
49
|
+
*
|
|
50
|
+
* @param toasts - All toasts
|
|
51
|
+
* @param now - Current timestamp in ms
|
|
52
|
+
* @param createdAt - Map of toast ID to creation timestamp
|
|
53
|
+
* @returns Toasts that haven't expired
|
|
54
|
+
*/
|
|
55
|
+
export declare function filterExpiredToasts(toasts: readonly Toast[], now: number, createdAt: ReadonlyMap<string, number>): readonly Toast[];
|
|
56
|
+
/**
|
|
57
|
+
* Add a toast to the list, maintaining order (newest first).
|
|
58
|
+
*
|
|
59
|
+
* @param toasts - Existing toasts
|
|
60
|
+
* @param toast - Toast to add
|
|
61
|
+
* @returns Updated toast list
|
|
62
|
+
*/
|
|
63
|
+
export declare function addToast(toasts: readonly Toast[], toast: Toast): readonly Toast[];
|
|
64
|
+
/**
|
|
65
|
+
* Remove a toast by ID.
|
|
66
|
+
*
|
|
67
|
+
* @param toasts - Existing toasts
|
|
68
|
+
* @param id - Toast ID to remove
|
|
69
|
+
* @returns Updated toast list
|
|
70
|
+
*/
|
|
71
|
+
export declare function removeToast(toasts: readonly Toast[], id: string): readonly Toast[];
|
|
72
|
+
/**
|
|
73
|
+
* Update a toast's progress.
|
|
74
|
+
*
|
|
75
|
+
* @param toasts - Existing toasts
|
|
76
|
+
* @param id - Toast ID to update
|
|
77
|
+
* @param progress - New progress value (0-100)
|
|
78
|
+
* @returns Updated toast list
|
|
79
|
+
*/
|
|
80
|
+
export declare function updateToastProgress(toasts: readonly Toast[], id: string, progress: number): readonly Toast[];
|
|
81
|
+
/** Icon character for each toast type. */
|
|
82
|
+
export declare const TOAST_ICONS: Record<Toast["type"], string>;
|
|
83
|
+
/** Border color for each toast type (RGB). */
|
|
84
|
+
export declare const TOAST_COLORS: Record<Toast["type"], {
|
|
85
|
+
r: number;
|
|
86
|
+
g: number;
|
|
87
|
+
b: number;
|
|
88
|
+
}>;
|
|
89
|
+
//# sourceMappingURL=toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../src/widgets/toast.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEvD,yCAAyC;AACzC,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,kCAAkC;AAClC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,2CAA2C;AAC3C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAIrC,gFAAgF;AAChF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIjE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,UAAU,GAAE,MAA4B,GACvC,SAAS,KAAK,EAAE,CAElB;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAOjG;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,aAAa,EACvB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,GACjB,MAAM,CAWR;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,SAAS,KAAK,EAAE,CAYlB;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,EAAE,CAIjF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,KAAK,EAAE,CAElF;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,GACf,SAAS,KAAK,EAAE,CAOlB;AAED,0CAA0C;AAC1C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,CAKrD,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAKnF,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* packages/core/src/widgets/toast.ts — Toast/Notifications core algorithms.
|
|
3
|
+
*
|
|
4
|
+
* Why: Implements positioning, stacking, and auto-dismiss logic for toast
|
|
5
|
+
* notifications. Toasts are non-blocking feedback messages that stack
|
|
6
|
+
* vertically from a screen edge.
|
|
7
|
+
*
|
|
8
|
+
* @see docs/widgets/toast.md
|
|
9
|
+
*/
|
|
10
|
+
/** Height of a single toast in cells. */
|
|
11
|
+
export const TOAST_HEIGHT = 3;
|
|
12
|
+
/** Default max visible toasts. */
|
|
13
|
+
export const DEFAULT_MAX_VISIBLE = 5;
|
|
14
|
+
/** Default auto-dismiss duration in ms. */
|
|
15
|
+
export const DEFAULT_DURATION = 3000;
|
|
16
|
+
const TOAST_ACTION_ID_PREFIX = "__rezi_toast_action__:";
|
|
17
|
+
/** Focus id for a toast action button (used by runtime-local focus routing). */
|
|
18
|
+
export function getToastActionFocusId(toastId) {
|
|
19
|
+
return `${TOAST_ACTION_ID_PREFIX}${toastId}`;
|
|
20
|
+
}
|
|
21
|
+
export function parseToastActionFocusId(id) {
|
|
22
|
+
if (!id.startsWith(TOAST_ACTION_ID_PREFIX))
|
|
23
|
+
return null;
|
|
24
|
+
const rest = id.slice(TOAST_ACTION_ID_PREFIX.length);
|
|
25
|
+
return rest.length > 0 ? rest : null;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Compute visible toasts based on max visible limit.
|
|
29
|
+
*
|
|
30
|
+
* @param toasts - All active toasts
|
|
31
|
+
* @param maxVisible - Maximum number of visible toasts
|
|
32
|
+
* @returns Toasts to display (most recent first)
|
|
33
|
+
*/
|
|
34
|
+
export function getVisibleToasts(toasts, maxVisible = DEFAULT_MAX_VISIBLE) {
|
|
35
|
+
return Object.freeze(toasts.slice(0, maxVisible));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Compute toast Y position within the container.
|
|
39
|
+
*
|
|
40
|
+
* @param index - Toast index (0 = first)
|
|
41
|
+
* @param position - Container position
|
|
42
|
+
* @param containerHeight - Container height in cells
|
|
43
|
+
* @returns Y offset within container
|
|
44
|
+
*/
|
|
45
|
+
export function getToastY(index, position, containerHeight) {
|
|
46
|
+
if (!Number.isFinite(index) || index < 0)
|
|
47
|
+
return 0;
|
|
48
|
+
if (position.startsWith("top")) {
|
|
49
|
+
return index * TOAST_HEIGHT;
|
|
50
|
+
}
|
|
51
|
+
// Bottom positions: stack upward from bottom
|
|
52
|
+
return Math.max(0, containerHeight - (index + 1) * TOAST_HEIGHT);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Compute toast X position based on container position.
|
|
56
|
+
*
|
|
57
|
+
* @param position - Container position
|
|
58
|
+
* @param containerWidth - Container width in cells
|
|
59
|
+
* @param toastWidth - Individual toast width in cells
|
|
60
|
+
* @returns X offset for toast
|
|
61
|
+
*/
|
|
62
|
+
export function getToastX(position, containerWidth, toastWidth) {
|
|
63
|
+
const maxX = Math.max(0, containerWidth - toastWidth);
|
|
64
|
+
if (position.endsWith("left")) {
|
|
65
|
+
return 0;
|
|
66
|
+
}
|
|
67
|
+
if (position.endsWith("center")) {
|
|
68
|
+
const x = Math.floor((containerWidth - toastWidth) / 2);
|
|
69
|
+
return Math.max(0, Math.min(x, maxX));
|
|
70
|
+
}
|
|
71
|
+
// Right positions
|
|
72
|
+
return maxX;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Filter toasts by auto-dismiss status.
|
|
76
|
+
* Returns toasts that should still be visible based on their creation time.
|
|
77
|
+
*
|
|
78
|
+
* @param toasts - All toasts
|
|
79
|
+
* @param now - Current timestamp in ms
|
|
80
|
+
* @param createdAt - Map of toast ID to creation timestamp
|
|
81
|
+
* @returns Toasts that haven't expired
|
|
82
|
+
*/
|
|
83
|
+
export function filterExpiredToasts(toasts, now, createdAt) {
|
|
84
|
+
return Object.freeze(toasts.filter((t) => {
|
|
85
|
+
const duration = t.duration ?? DEFAULT_DURATION;
|
|
86
|
+
if (duration === 0)
|
|
87
|
+
return true; // Persistent toast
|
|
88
|
+
const created = createdAt.get(t.id);
|
|
89
|
+
if (created === undefined)
|
|
90
|
+
return true; // Unknown creation time, keep it
|
|
91
|
+
return now - created < duration;
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Add a toast to the list, maintaining order (newest first).
|
|
96
|
+
*
|
|
97
|
+
* @param toasts - Existing toasts
|
|
98
|
+
* @param toast - Toast to add
|
|
99
|
+
* @returns Updated toast list
|
|
100
|
+
*/
|
|
101
|
+
export function addToast(toasts, toast) {
|
|
102
|
+
// Remove any existing toast with same ID
|
|
103
|
+
const filtered = toasts.filter((t) => t.id !== toast.id);
|
|
104
|
+
return Object.freeze([toast, ...filtered]);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Remove a toast by ID.
|
|
108
|
+
*
|
|
109
|
+
* @param toasts - Existing toasts
|
|
110
|
+
* @param id - Toast ID to remove
|
|
111
|
+
* @returns Updated toast list
|
|
112
|
+
*/
|
|
113
|
+
export function removeToast(toasts, id) {
|
|
114
|
+
return Object.freeze(toasts.filter((t) => t.id !== id));
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Update a toast's progress.
|
|
118
|
+
*
|
|
119
|
+
* @param toasts - Existing toasts
|
|
120
|
+
* @param id - Toast ID to update
|
|
121
|
+
* @param progress - New progress value (0-100)
|
|
122
|
+
* @returns Updated toast list
|
|
123
|
+
*/
|
|
124
|
+
export function updateToastProgress(toasts, id, progress) {
|
|
125
|
+
return Object.freeze(toasts.map((t) => {
|
|
126
|
+
if (t.id !== id)
|
|
127
|
+
return t;
|
|
128
|
+
return { ...t, progress: Math.max(0, Math.min(100, progress)) };
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
/** Icon character for each toast type. */
|
|
132
|
+
export const TOAST_ICONS = {
|
|
133
|
+
info: "ℹ",
|
|
134
|
+
success: "✓",
|
|
135
|
+
warning: "⚠",
|
|
136
|
+
error: "✗",
|
|
137
|
+
};
|
|
138
|
+
/** Border color for each toast type (RGB). */
|
|
139
|
+
export const TOAST_COLORS = {
|
|
140
|
+
info: { r: 50, g: 150, b: 255 },
|
|
141
|
+
success: { r: 50, g: 200, b: 100 },
|
|
142
|
+
warning: { r: 255, g: 200, b: 50 },
|
|
143
|
+
error: { r: 255, g: 80, b: 80 },
|
|
144
|
+
};
|
|
145
|
+
//# sourceMappingURL=toast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.js","sourceRoot":"","sources":["../../src/widgets/toast.ts"],"names":[],"mappings":"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"}
|