@aceshooting/lyra-ui 29.0.2 → 29.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/README.md +19 -26
- package/design-tokens.json +1 -1
- package/dist/cli/migrate-wa.mjs +2 -0
- package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts +5 -3
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js +4 -3
- package/dist/components/agent-tools/activity-feed/activity-feed.styles.js +1 -1
- package/dist/components/agent-tools/agent-trace/agent-trace.class.d.ts +21 -5
- package/dist/components/agent-tools/agent-trace/agent-trace.class.js +14 -11
- package/dist/components/agent-tools/agent-trace/agent-trace.styles.js +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +34 -7
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js +25 -11
- package/dist/components/agent-tools/eval-result/eval-result-source.js +1 -0
- package/dist/components/agent-tools/eval-result/eval-result.class.d.ts +31 -11
- package/dist/components/agent-tools/eval-result/eval-result.class.js +29 -15
- package/dist/components/agent-tools/eval-result/eval-result.styles.js +1 -1
- package/dist/components/agent-tools/eval-result/eval-run-result.d.ts +10 -0
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.d.ts +26 -5
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +16 -6
- package/dist/components/agent-tools/span-waterfall/span-waterfall.d.ts +1 -1
- package/dist/components/agent-tools/span-waterfall/span-waterfall.js +1 -1
- package/dist/components/agent-tools/span-waterfall/span-waterfall.styles.js +1 -1
- package/dist/components/agent-tools/task-list/task-list.class.d.ts +29 -6
- package/dist/components/agent-tools/task-list/task-list.class.js +13 -7
- package/dist/components/agent-tools/task-list/task-list.d.ts +1 -1
- package/dist/components/agent-tools/task-list/task-list.js +1 -1
- package/dist/components/agent-tools/task-list/task-list.styles.js +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +9 -5
- package/dist/components/agent-tools/terminal/terminal.class.js +8 -8
- package/dist/components/agent-tools/test-results/test-results.class.d.ts +16 -4
- package/dist/components/agent-tools/test-results/test-results.class.js +15 -6
- package/dist/components/agent-tools/test-results/test-results.d.ts +1 -0
- package/dist/components/agent-tools/test-results/test-results.js +1 -1
- package/dist/components/agent-tools/test-results/test-results.styles.js +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts +7 -4
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +2 -1
- package/dist/components/agent-tools/trace-tree/span-projection.js +1 -0
- package/dist/components/agent-tools/trace-tree/span-shared.d.ts +29 -0
- package/dist/components/agent-tools/trace-tree/span-shared.js +1 -0
- package/dist/components/agent-tools/trace-tree/span.d.ts +5 -35
- package/dist/components/agent-tools/trace-tree/span.js +1 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.class.d.ts +27 -5
- package/dist/components/agent-tools/trace-tree/trace-tree.class.js +19 -9
- package/dist/components/agent-tools/trace-tree/trace-tree.d.ts +1 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.js +1 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.styles.js +1 -1
- package/dist/components/charts/chart/bar-chart.class.d.ts +5 -1
- package/dist/components/charts/chart/box-plot.class.d.ts +2 -2
- package/dist/components/charts/chart/box-plot.class.js +3 -3
- package/dist/components/charts/chart/bubble-chart.class.d.ts +5 -1
- package/dist/components/charts/chart/chart-prepared-data.d.ts +9 -0
- package/dist/components/charts/chart/chart-prepared-data.js +1 -0
- package/dist/components/charts/chart/chart-spatial-data.js +2 -0
- package/dist/components/charts/chart/chart-sync.js +1 -1
- package/dist/components/charts/chart/chart-table-sampling.js +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +56 -6
- package/dist/components/charts/chart/chart.class.js +18 -8
- package/dist/components/charts/chart/chart.styles.js +1 -1
- package/dist/components/charts/chart/doughnut-chart.class.d.ts +5 -1
- package/dist/components/charts/chart/histogram-buckets.d.ts +1 -1
- package/dist/components/charts/chart/histogram-buckets.js +1 -1
- package/dist/components/charts/chart/histogram.class.d.ts +19 -4
- package/dist/components/charts/chart/histogram.class.js +1 -1
- package/dist/components/charts/chart/line-chart.class.d.ts +5 -1
- package/dist/components/charts/chart/lite-chart.class.d.ts +51 -11
- package/dist/components/charts/chart/lite-chart.class.js +33 -27
- package/dist/components/charts/chart/lite-chart.styles.js +1 -1
- package/dist/components/charts/chart/pie-chart.class.d.ts +5 -1
- package/dist/components/charts/chart/polar-area-chart.class.d.ts +5 -1
- package/dist/components/charts/chart/radar-chart.class.d.ts +5 -1
- package/dist/components/charts/chart/scatter-chart.class.d.ts +5 -1
- package/dist/components/conversation/agent-workspace/agent-workspace.class.d.ts +6 -3
- package/dist/components/conversation/agent-workspace/agent-workspace.class.js +6 -5
- package/dist/components/conversation/agent-workspace/agent-workspace.styles.js +1 -1
- package/dist/components/conversation/chat-viewport/chat-viewport.class.d.ts +8 -0
- package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
- package/dist/components/conversation/code-block/code-block-base.class.d.ts +5 -3
- package/dist/components/conversation/code-block/code-block-base.class.js +1 -1
- package/dist/components/conversation/code-block/code-block-core.class.d.ts +4 -1
- package/dist/components/conversation/code-block/code-block-core.class.js +1 -1
- package/dist/components/conversation/code-block/code-block-shared.d.ts +6 -4
- package/dist/components/conversation/code-block/code-block-shared.js +3 -2
- package/dist/components/conversation/code-block/code-block.class.d.ts +11 -4
- package/dist/components/conversation/code-block/code-block.class.js +1 -1
- package/dist/components/conversation/code-block/code-block.d.ts +1 -1
- package/dist/components/conversation/code-block/code-block.styles.js +1 -1
- package/dist/components/conversation/code-block/shiki-types.d.ts +2 -0
- package/dist/components/conversation/code-block/shiki-types.js +1 -1
- package/dist/components/conversation/markdown/markdown-base.class.d.ts +6 -4
- package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
- package/dist/components/conversation/markdown/markdown-code-header.d.ts +2 -2
- package/dist/components/conversation/markdown/markdown-code-header.js +1 -1
- package/dist/components/conversation/markdown/markdown-core.class.d.ts +8 -3
- package/dist/components/conversation/markdown/markdown-progressive.js +2 -2
- package/dist/components/conversation/markdown/markdown-shared.d.ts +5 -10
- package/dist/components/conversation/markdown/markdown-shared.js +5 -5
- package/dist/components/conversation/markdown/markdown-streaming-tail.js +1 -1
- package/dist/components/conversation/markdown/markdown.class.d.ts +17 -10
- package/dist/components/conversation/markdown/markdown.class.js +1 -1
- package/dist/components/conversation/markdown/markdown.styles.js +1 -1
- package/dist/components/conversation/model-select/model-select.class.d.ts +4 -3
- package/dist/components/conversation/model-select/model-select.class.js +3 -2
- package/dist/components/conversation/model-select/model-select.styles.js +1 -1
- package/dist/components/conversation/model-settings-panel/model-settings-panel.class.d.ts +2 -1
- package/dist/components/conversation/model-settings-panel/model-settings-panel.class.js +2 -1
- package/dist/components/conversation/model-settings-panel/model-settings-panel.styles.js +1 -1
- package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +3 -2
- package/dist/components/conversation/prompt-input/prompt-input.class.js +2 -1
- package/dist/components/conversation/prompt-input/prompt-input.styles.js +1 -1
- package/dist/components/conversation/prompt-queue/prompt-queue.class.d.ts +10 -2
- package/dist/components/conversation/prompt-queue/prompt-queue.class.js +15 -6
- package/dist/components/conversation/prompt-queue/prompt-queue.styles.js +1 -1
- package/dist/components/conversation/realtime-session/realtime-session.class.d.ts +3 -1
- package/dist/components/conversation/realtime-session/realtime-session.class.js +2 -1
- package/dist/components/conversation/realtime-session/realtime-session.styles.js +1 -1
- package/dist/components/conversation/streaming-text/markdown-detection.d.ts +2 -0
- package/dist/components/conversation/streaming-text/markdown-detection.js +4 -1
- package/dist/components/conversation/streaming-text/streaming-text-base.class.d.ts +6 -2
- package/dist/components/conversation/streaming-text/streaming-text-base.class.js +3 -3
- package/dist/components/conversation/streaming-text/streaming-text-core.class.js +1 -1
- package/dist/components/conversation/streaming-text/streaming-text.class.js +1 -0
- package/dist/components/conversation/thread-list/thread-list.class.d.ts +34 -4
- package/dist/components/conversation/thread-list/thread-list.class.js +22 -15
- package/dist/components/conversation/thread-list/thread-list.d.ts +1 -1
- package/dist/components/conversation/thread-list/thread-list.js +1 -1
- package/dist/components/conversation/thread-list/thread-list.styles.js +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +6 -2
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js +3 -2
- package/dist/components/conversation/transcript-feed/transcript-feed.styles.js +1 -1
- package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +3 -2
- package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -2
- package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
- package/dist/components/data/calendar/calendar.class.d.ts +5 -2
- package/dist/components/data/calendar/calendar.class.js +1 -1
- package/dist/components/data/data-grid/data-grid-processing.js +2 -2
- package/dist/components/data/data-grid/data-grid.class.d.ts +22 -8
- package/dist/components/data/data-grid/data-grid.class.js +20 -19
- package/dist/components/data/data-grid/data-grid.styles.js +1 -1
- package/dist/components/data/document-library/document-library.class.d.ts +31 -4
- package/dist/components/data/document-library/document-library.class.js +25 -12
- package/dist/components/data/document-library/document-library.styles.js +1 -1
- package/dist/components/data/file-tree/file-tree.class.d.ts +30 -6
- package/dist/components/data/file-tree/file-tree.class.js +4 -3
- package/dist/components/data/file-tree/file-tree.d.ts +1 -0
- package/dist/components/data/file-tree/file-tree.js +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +31 -6
- package/dist/components/data/flow-canvas/flow-canvas.class.js +40 -19
- package/dist/components/data/flow-canvas/flow-canvas.styles.js +1 -1
- package/dist/components/data/flow-canvas/flow-model.js +1 -1
- package/dist/components/data/flow-canvas/flow-source.js +1 -0
- package/dist/components/data/flow-canvas/flow-types.d.ts +4 -2
- package/dist/components/data/flow-canvas/flow-viewport-index.js +1 -0
- package/dist/components/data/flow-minimap/flow-minimap.class.d.ts +9 -3
- package/dist/components/data/flow-minimap/flow-minimap.class.js +11 -2
- package/dist/components/data/flow-minimap/flow-minimap.styles.js +1 -1
- package/dist/components/data/funnel/funnel.class.d.ts +7 -3
- package/dist/components/data/funnel/funnel.class.js +2 -2
- package/dist/components/data/heatmap/calendar-grid.d.ts +1 -1
- package/dist/components/data/heatmap/calendar-grid.js +1 -1
- package/dist/components/data/heatmap/heatmap-grid-navigation.js +1 -1
- package/dist/components/data/heatmap/heatmap-limits.d.ts +1 -1
- package/dist/components/data/heatmap/heatmap-matrix-source-controller.js +1 -0
- package/dist/components/data/heatmap/heatmap-matrix-source.d.ts +5 -0
- package/dist/components/data/heatmap/heatmap-matrix-source.js +1 -0
- package/dist/components/data/heatmap/heatmap-scale.d.ts +0 -16
- package/dist/components/data/heatmap/heatmap-scale.js +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +40 -11
- package/dist/components/data/heatmap/heatmap.class.js +26 -6
- package/dist/components/data/heatmap/heatmap.styles.js +1 -1
- package/dist/components/data/pagination/pagination.class.js +1 -1
- package/dist/components/data/sequence-strip/sequence-strip-item.d.ts +17 -0
- package/dist/components/data/sequence-strip/sequence-strip-source-controller.js +1 -0
- package/dist/components/data/sequence-strip/sequence-strip-source.d.ts +5 -0
- package/dist/components/data/sequence-strip/sequence-strip-source.js +1 -0
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +24 -19
- package/dist/components/data/sequence-strip/sequence-strip.class.js +23 -4
- package/dist/components/data/sequence-strip/sequence-strip.styles.js +1 -1
- package/dist/components/data/sparkline/sparkline.class.d.ts +17 -4
- package/dist/components/data/sparkline/sparkline.class.js +3 -3
- package/dist/components/data/sparkline/sparkline.styles.js +1 -1
- package/dist/components/data/table/table.class.d.ts +14 -10
- package/dist/components/data/table/table.class.js +17 -16
- package/dist/components/data/timeline/timeline.class.d.ts +5 -2
- package/dist/components/data/timeline/timeline.class.js +1 -1
- package/dist/components/data/tree/tree-item.class.js +1 -1
- package/dist/components/data/tree/tree-owner-controller.js +1 -1
- package/dist/components/data/tree/tree.class.d.ts +28 -6
- package/dist/components/data/tree/tree.class.js +3 -3
- package/dist/components/data/tree/tree.d.ts +1 -0
- package/dist/components/data/tree/tree.js +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.d.ts +17 -7
- package/dist/components/data/word-cloud/word-cloud.class.js +6 -4
- package/dist/components/data/word-cloud/word-cloud.styles.js +1 -1
- package/dist/components/forms/catalog-picker-base.d.ts +1 -1
- package/dist/components/forms/catalog-picker-base.js +6 -6
- package/dist/components/forms/catalog-picker-base.styles.js +1 -1
- package/dist/components/forms/combobox/combobox.class.d.ts +7 -3
- package/dist/components/forms/combobox/combobox.class.js +1 -1
- package/dist/components/forms/combobox/option.class.d.ts +4 -2
- package/dist/components/forms/combobox/option.class.js +2 -2
- package/dist/components/forms/country-picker/country-picker.class.d.ts +3 -1
- package/dist/components/forms/country-picker/country-picker.class.js +1 -1
- package/dist/components/forms/currency-picker/currency-picker.class.d.ts +2 -0
- package/dist/components/forms/currency-picker/currency-picker.class.js +1 -1
- package/dist/components/forms/currency-picker/currency-presentation.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +6 -2
- package/dist/components/forms/emoji-picker/emoji-picker.class.js +3 -2
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js +1 -1
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts +8 -2
- package/dist/components/forms/locale-picker/locale-picker.class.js +5 -4
- package/dist/components/forms/locale-picker/locale-picker.styles.js +1 -1
- package/dist/components/forms/select/select.class.d.ts +11 -3
- package/dist/components/forms/select/select.class.js +4 -4
- package/dist/components/forms/time-zone-picker/time-zone-picker.class.d.ts +2 -0
- package/dist/components/forms/time-zone-picker/time-zone-picker.class.js +1 -1
- package/dist/components/forms/token-input/token-input.class.d.ts +6 -1
- package/dist/components/forms/token-input/token-input.class.js +15 -13
- package/dist/components/forms/unit-picker/unit-picker.class.d.ts +2 -0
- package/dist/components/forms/unit-picker/unit-picker.class.js +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +1 -1
- package/dist/components/layout/app-rail/app-rail.class.js +1 -1
- package/dist/components/layout/command-palette/command-palette.class.d.ts +5 -2
- package/dist/components/layout/command-palette/command-palette.class.js +2 -1
- package/dist/components/layout/command-palette/command-palette.styles.js +1 -1
- package/dist/components/layout/menu/menu-item.class.d.ts +2 -2
- package/dist/components/layout/menu/menu-item.class.js +2 -2
- package/dist/components/layout/menu/menu.class.d.ts +1 -1
- package/dist/components/layout/menu/menu.class.js +1 -1
- package/dist/components/layout/menubar/menubar.class.d.ts +1 -1
- package/dist/components/layout/menubar/menubar.class.js +1 -1
- package/dist/components/layout/reorder-list/reorder-item.class.d.ts +2 -2
- package/dist/components/layout/reorder-list/reorder-item.class.js +2 -2
- package/dist/components/layout/reorder-list/reorder-list.class.d.ts +1 -1
- package/dist/components/layout/reorder-list/reorder-list.class.js +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts +13 -9
- package/dist/components/layout/virtual-list/virtual-list.class.js +21 -17
- package/dist/components/media/av-player/av-cue-index.js +1 -0
- package/dist/components/media/av-player/av-cue-source.d.ts +13 -0
- package/dist/components/media/av-player/av-cue-source.js +1 -0
- package/dist/components/media/av-player/av-metadata.d.ts +2 -2
- package/dist/components/media/av-player/av-metadata.js +1 -1
- package/dist/components/media/av-player/av-player-cue-source-controller.js +1 -0
- package/dist/components/media/av-player/av-player.class.d.ts +34 -12
- package/dist/components/media/av-player/av-player.class.js +15 -10
- package/dist/components/media/flag/flag.class.js +1 -1
- package/dist/components/media/flag/language-map.js +1 -1
- package/dist/components/media/lightbox/lightbox-source.js +1 -0
- package/dist/components/media/lightbox/lightbox-types.d.ts +15 -0
- package/dist/components/media/lightbox/lightbox.class.d.ts +22 -21
- package/dist/components/media/lightbox/lightbox.class.js +6 -4
- package/dist/components/media/lightbox/lightbox.styles.js +1 -1
- package/dist/components/media/map/map-geojson-diff.d.ts +6 -6
- package/dist/components/media/map/map-geojson-diff.js +1 -1
- package/dist/components/media/map/map-loader.d.ts +5 -1
- package/dist/components/media/map/map.class.d.ts +24 -6
- package/dist/components/media/map/map.class.js +2 -2
- package/dist/components/media/map/map.styles.js +1 -1
- package/dist/components/media/video-playlist/video-playlist.class.d.ts +2 -1
- package/dist/components/media/video-playlist/video-playlist.class.js +1 -1
- package/dist/components/overlays/chip/chip.class.d.ts +1 -1
- package/dist/components/overlays/chip/chip.class.js +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts +30 -8
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +22 -8
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.styles.js +1 -1
- package/dist/components/retrieval/graph/graph-canvas.js +1 -1
- package/dist/components/retrieval/graph/graph-source-composition.js +1 -0
- package/dist/components/retrieval/graph/graph-source-controller.js +1 -0
- package/dist/components/retrieval/graph/graph-spatial-controller.js +2 -2
- package/dist/components/retrieval/graph/graph-spatial-model.js +1 -0
- package/dist/components/retrieval/graph/graph-spatial.js +1 -1
- package/dist/components/retrieval/graph/graph.class.d.ts +31 -6
- package/dist/components/retrieval/graph/graph.class.js +26 -5
- package/dist/components/retrieval/graph/graph.d.ts +1 -1
- package/dist/components/retrieval/graph/graph.js +1 -1
- package/dist/components/retrieval/graph/graph.styles.js +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts +33 -4
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +27 -17
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.d.ts +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.js +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.styles.js +1 -1
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +27 -4
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +29 -14
- package/dist/components/retrieval/knowledge-base/knowledge-base.styles.js +1 -1
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.d.ts +17 -3
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +15 -10
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.styles.js +1 -1
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +24 -5
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +17 -10
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.d.ts +1 -1
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.js +1 -1
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.styles.js +1 -1
- package/dist/components/retrieval/mind-map/mind-map-layout.js +1 -1
- package/dist/components/retrieval/mind-map/mind-map-model.js +1 -0
- package/dist/components/retrieval/mind-map/mind-map.class.d.ts +27 -4
- package/dist/components/retrieval/mind-map/mind-map.class.js +11 -7
- package/dist/components/retrieval/mind-map/mind-map.d.ts +1 -0
- package/dist/components/retrieval/mind-map/mind-map.js +1 -1
- package/dist/components/retrieval/mind-map/mind-map.styles.js +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.d.ts +24 -2
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +17 -3
- package/dist/components/retrieval/neighbor-list/neighbor-list.d.ts +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.js +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.styles.js +1 -1
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts +8 -4
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +11 -7
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.styles.js +1 -1
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.d.ts +12 -6
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.js +30 -17
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.js +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results-model.js +1 -0
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +46 -5
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +31 -9
- package/dist/components/retrieval/retrieval-results/retrieval-results.d.ts +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.js +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.styles.js +1 -1
- package/dist/components/utility/diff-view/diff-view.class.d.ts +16 -8
- package/dist/components/utility/diff-view/diff-view.class.js +3 -2
- package/dist/components/utility/diff-view/diff-view.styles.js +1 -1
- package/dist/components/utility/json-viewer/json-viewer.class.d.ts +31 -3
- package/dist/components/utility/json-viewer/json-viewer.class.js +13 -4
- package/dist/components/utility/json-viewer/json-viewer.d.ts +1 -0
- package/dist/components/utility/json-viewer/json-viewer.js +1 -1
- package/dist/components/utility/json-viewer/json-viewer.styles.js +1 -1
- package/dist/components/utility/mention-popover/mention-popover.class.d.ts +6 -4
- package/dist/components/utility/mention-popover/mention-popover.class.js +6 -5
- package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts +34 -7
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js +9 -7
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +28 -4
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +12 -11
- package/dist/components/viewers/geojson-view/geojson-viewer.class.d.ts +3 -1
- package/dist/components/viewers/geojson-view/geojson-viewer.class.js +17 -16
- package/dist/components/viewers/geojson-view/geojson-viewer.d.ts +1 -1
- package/dist/components/viewers/geojson-view/geojson-viewer.js +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +31 -5
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +11 -8
- package/dist/components/viewers/table-viewer-shared.js +19 -3
- package/dist/components/viewers/viewer-search-limits.js +1 -1
- package/dist/components/viewers/xml-viewer/xml-viewer.class.d.ts +35 -3
- package/dist/components/viewers/xml-viewer/xml-viewer.class.js +20 -5
- package/dist/components/viewers/xml-viewer/xml-viewer.d.ts +1 -1
- package/dist/components/viewers/xml-viewer/xml-viewer.js +1 -1
- package/dist/components/viewers/xml-viewer/xml-viewer.styles.js +1 -1
- package/dist/countries.js +1 -1
- package/dist/data-sources.d.ts +34 -0
- package/dist/data-sources.js +1 -0
- package/dist/events.d.ts +51 -7
- package/dist/framework-types.d.ts +1 -1
- package/dist/internal/accessibility-visibility.d.ts +4 -2
- package/dist/internal/accessibility-visibility.js +1 -1
- package/dist/internal/accessible-text-controller.js +1 -1
- package/dist/internal/anchor-target.js +2 -2
- package/dist/internal/catalog-picker.d.ts +1 -7
- package/dist/internal/catalog-picker.js +1 -1
- package/dist/internal/collection-snapshot.js +1 -1
- package/dist/internal/default-strings/agent-tools.generated.js +1 -1
- package/dist/internal/default-strings/charts.generated.js +1 -1
- package/dist/internal/default-strings/conversation.generated.js +1 -1
- package/dist/internal/default-strings/data.generated.js +1 -1
- package/dist/internal/default-strings/forms.generated.js +1 -1
- package/dist/internal/default-strings/layout.generated.js +1 -1
- package/dist/internal/default-strings/media.generated.js +1 -1
- package/dist/internal/default-strings/retrieval.generated.js +1 -1
- package/dist/internal/default-strings/shared.generated.js +1 -1
- package/dist/internal/default-strings/utility.generated.js +1 -1
- package/dist/internal/delimited-data.js +1 -1
- package/dist/internal/fixed-containing-block.js +1 -1
- package/dist/internal/flow-scene-envelope.js +1 -0
- package/dist/internal/graph-scene-controller.js +1 -0
- package/dist/internal/hierarchy-source-controller.js +1 -0
- package/dist/internal/hierarchy-source-view.js +29 -0
- package/dist/internal/hierarchy-source-view.styles.js +1 -0
- package/dist/internal/inherited-attribute-hub.d.ts +6 -0
- package/dist/internal/inherited-attribute-hub.js +1 -1
- package/dist/internal/intl-cache.js +1 -1
- package/dist/internal/keyed-index.js +1 -0
- package/dist/internal/localization-types.d.ts +1 -1
- package/dist/internal/localization.js +2 -2
- package/dist/internal/lyra-element.d.ts +2 -2
- package/dist/internal/lyra-element.js +3 -2
- package/dist/internal/native-modal-context.js +1 -1
- package/dist/internal/option-selection.js +1 -1
- package/dist/internal/package-metadata.js +1 -1
- package/dist/internal/positioner.js +1 -1
- package/dist/internal/resource-loader.d.ts +2 -0
- package/dist/internal/resource-loader.js +1 -1
- package/dist/internal/scoped-definitions.generated.js +1 -1
- package/dist/internal/search-haystack.js +1 -0
- package/dist/internal/selection-catalog.d.ts +5 -0
- package/dist/internal/selection-catalog.js +1 -1
- package/dist/internal/shiki-language-sources.js +1 -0
- package/dist/internal/source-page-controller.js +1 -0
- package/dist/internal/source-page-scope.js +1 -0
- package/dist/internal/source-request-controller.js +1 -0
- package/dist/internal/source-window-controller.js +1 -0
- package/dist/internal/spatial-source-controller.js +1 -0
- package/dist/internal/text-quote.d.ts +2 -6
- package/dist/internal/text-quote.js +1 -1
- package/dist/internal/theme-watcher.js +1 -1
- package/dist/internal/virtual-list-composition.js +1 -0
- package/dist/lyra.d.ts +1 -1
- package/dist/lyra.js +1 -1
- package/dist/testing/interaction-drivers.js +1 -1
- package/dist/testing/lyra-tag-event-map.js +1 -1
- package/dist/units.js +1 -1
- package/dist/utilities/data-preparation.d.ts +56 -0
- package/dist/utilities/data-preparation.js +1 -0
- package/dist/utilities/data-spatial.d.ts +26 -0
- package/dist/utilities/data-spatial.js +1 -0
- package/dist/utilities/index.d.ts +1 -1
- package/dist/utilities/index.js +1 -1
- package/llms/components/lr-activity-feed.md +7 -2
- package/llms/components/lr-agent-trace.md +49 -9
- package/llms/components/lr-agent-workspace.md +15 -8
- package/llms/components/lr-av-player.md +180 -10
- package/llms/components/lr-bar-chart.md +1 -1
- package/llms/components/lr-box-plot.md +8 -0
- package/llms/components/lr-bubble-chart.md +1 -1
- package/llms/components/lr-calendar.md +26 -3
- package/llms/components/lr-chart.md +310 -23
- package/llms/components/lr-chat-viewport.md +6 -0
- package/llms/components/lr-code-block-core.md +12 -7
- package/llms/components/lr-code-block.md +23 -9
- package/llms/components/lr-combobox.md +27 -15
- package/llms/components/lr-command-palette.md +16 -3
- package/llms/components/lr-country-picker.md +23 -6
- package/llms/components/lr-csv-viewer.md +95 -12
- package/llms/components/lr-currency-picker.md +23 -3
- package/llms/components/lr-data-grid.md +24 -6
- package/llms/components/lr-dataset-viewer.md +92 -11
- package/llms/components/lr-dialog.md +1 -1
- package/llms/components/lr-diff-view.md +19 -6
- package/llms/components/lr-document-library.md +60 -5
- package/llms/components/lr-doughnut-chart.md +1 -1
- package/llms/components/lr-embedding-explorer.md +89 -9
- package/llms/components/lr-emoji-picker.md +7 -2
- package/llms/components/lr-eval-dataset.md +56 -7
- package/llms/components/lr-eval-result.md +89 -4
- package/llms/components/lr-export-button.md +1 -1
- package/llms/components/lr-file-tree.md +60 -6
- package/llms/components/lr-flag.md +5 -2
- package/llms/components/lr-flow-canvas.md +152 -14
- package/llms/components/lr-flow-minimap.md +32 -4
- package/llms/components/lr-funnel.md +14 -0
- package/llms/components/lr-geojson-viewer.md +27 -10
- package/llms/components/lr-graph.md +43 -7
- package/llms/components/lr-heatmap.md +161 -5
- package/llms/components/lr-histogram.md +55 -9
- package/llms/components/lr-ingestion-queue.md +54 -3
- package/llms/components/lr-json-viewer.md +87 -7
- package/llms/components/lr-knowledge-base-admin.md +60 -4
- package/llms/components/lr-knowledge-base.md +121 -9
- package/llms/components/lr-knowledge-graph-explorer.md +106 -11
- package/llms/components/lr-lightbox.md +42 -6
- package/llms/components/lr-line-chart.md +28 -5
- package/llms/components/lr-lite-chart.md +96 -31
- package/llms/components/lr-locale-picker.md +6 -4
- package/llms/components/lr-map.md +67 -8
- package/llms/components/lr-markdown-core.md +10 -5
- package/llms/components/lr-markdown.md +23 -6
- package/llms/components/lr-mention-popover.md +11 -6
- package/llms/components/lr-mind-map.md +91 -10
- package/llms/components/lr-model-select.md +8 -4
- package/llms/components/lr-model-settings-panel.md +10 -2
- package/llms/components/lr-navigation-menu.md +1 -1
- package/llms/components/lr-neighbor-list.md +69 -2
- package/llms/components/lr-pie-chart.md +1 -1
- package/llms/components/lr-polar-area-chart.md +1 -1
- package/llms/components/lr-prompt-input.md +9 -2
- package/llms/components/lr-prompt-queue.md +11 -3
- package/llms/components/lr-radar-chart.md +1 -1
- package/llms/components/lr-rag-eval-dashboard.md +9 -2
- package/llms/components/lr-realtime-session.md +6 -2
- package/llms/components/lr-reorder-list.md +4 -0
- package/llms/components/lr-retrieval-compare.md +9 -4
- package/llms/components/lr-retrieval-results.md +104 -6
- package/llms/components/lr-scatter-chart.md +1 -1
- package/llms/components/lr-select.md +20 -10
- package/llms/components/lr-sequence-strip.md +92 -2
- package/llms/components/lr-span-waterfall.md +78 -8
- package/llms/components/lr-sparkline.md +42 -11
- package/llms/components/lr-spreadsheet-viewer.md +109 -14
- package/llms/components/lr-streaming-text-core.md +4 -2
- package/llms/components/lr-streaming-text.md +5 -1
- package/llms/components/lr-table.md +96 -115
- package/llms/components/lr-task-list.md +93 -9
- package/llms/components/lr-terminal.md +9 -0
- package/llms/components/lr-test-results.md +77 -3
- package/llms/components/lr-thread-list.md +86 -1
- package/llms/components/lr-time-zone-picker.md +8 -3
- package/llms/components/lr-timeline.md +5 -0
- package/llms/components/lr-token-input.md +7 -2
- package/llms/components/lr-tool-timeline.md +13 -4
- package/llms/components/lr-trace-tree.md +96 -10
- package/llms/components/lr-transcript-feed.md +9 -2
- package/llms/components/lr-tree.md +87 -15
- package/llms/components/lr-unit-picker.md +8 -3
- package/llms/components/lr-video-playlist.md +2 -0
- package/llms/components/lr-virtual-list.md +17 -8
- package/llms/components/lr-voice-picker.md +8 -3
- package/llms/components/lr-word-cloud.md +128 -12
- package/llms/components/lr-xml-viewer.md +106 -9
- package/llms/index.md +1 -1
- package/llms/peers.md +1 -1
- package/llms/shared/events-and-types.md +725 -264
- package/llms/shared/forms-and-accessibility.md +3 -17
- package/llms/shared/imports-and-registration.md +3 -17
- package/llms/shared/localization-and-rtl.md +0 -2
- package/llms/shared/styles-and-tokens.md +27 -36
- package/llms/shared/testing-and-utilities.md +4 -5
- package/llms/shared.md +770 -349
- package/llms.txt +1 -2
- package/locales.json +139 -139
- package/package.json +13 -4
- package/registrations.json +1 -1
- package/skills/compose-lyra-interfaces/SKILL.md +6 -8
- package/skills/lyra-ui/SKILL.md +20 -51
- package/skills/lyra-ui/commands/review.md +16 -33
- package/skills/lyra-ui/commands/update.md +6 -5
- package/skills/lyra-ui/online-api.md +15 -0
- package/skills/lyra-ui/reporting.md +2 -1
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md)
|
|
10
10
|
- **Deprecations** none
|
|
11
11
|
- **Optional peers** none
|
|
12
|
-
- **Themeable via**
|
|
12
|
+
- **Themeable via** 8 parts, 0 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -19,6 +19,44 @@
|
|
|
19
19
|
A file-explorer preset over `<lr-tree>` + `<lr-file-icon>`: path-keyed nodes with
|
|
20
20
|
git-status/diff-count badges, lazy directory loading, and select/open events.
|
|
21
21
|
|
|
22
|
+
**Provider hierarchy:** `treeSource: FileTreeSource | undefined` (attribute: false)
|
|
23
|
+
uses `LyraHierarchySource<FileTreeNode, LyraHierarchyQuery>` from
|
|
24
|
+
`@aceshooting/lyra-ui/data-sources.js`. A defined source takes precedence over `nodes`, preserving
|
|
25
|
+
its identity; invalid defined input shows a localized source error. Setting `undefined` restores
|
|
26
|
+
the current legacy `nodes` input. Reassign even the same source, or call a keyless
|
|
27
|
+
`requestUpdate()`, after revision/provider-state changes. Locale, reconnect and adoption refresh
|
|
28
|
+
the source; unrelated named display updates do not.
|
|
29
|
+
|
|
30
|
+
The provider projects the complete visible preorder using the same `project` actions, fixed empty
|
|
31
|
+
query and required direct key lookup described for `lr-tree` above. `total` includes collapsed
|
|
32
|
+
nodes and `rows.count` counts all visible logical rows. Those counts can describe a million-node
|
|
33
|
+
host hierarchy while at most 301 rows mount and at most 401 rows are retained (four 100-row pages
|
|
34
|
+
and one focused row). Each range read requests at most 100 rows, with at most two physically
|
|
35
|
+
pending reads. No full path/ancestor index or nested subtree copy is built. The provider owns
|
|
36
|
+
storage, global uniqueness, selection/expansion snapshots and cancellation; source replacement
|
|
37
|
+
and obsolete replies cannot commit old rows or focus.
|
|
38
|
+
|
|
39
|
+
Global row keys must exactly equal `value.path`: nonblank strings of at most 65,536 UTF-16 units,
|
|
40
|
+
preserved verbatim without filesystem resolution. Paths are identities, not permission to read or
|
|
41
|
+
open a file; the host authorizes any resulting operation. Displayed `name`/`mimeType` use at most
|
|
42
|
+
65,536 aggregate text units per row; oversized or accessor-backed fields fail visibly. Source
|
|
43
|
+
events contain only bounded frozen displayed metadata, with no `children`. The provider's
|
|
44
|
+
`childCount` identifies branches even when `kind` is omitted; branches never emit file-open.
|
|
45
|
+
Nested `value.children` is ignored. Logical depth, sibling positions, bounded keyboard navigation,
|
|
46
|
+
localized loading/empty/error states and retry follow the source tree contract above. The legacy
|
|
47
|
+
snapshot limits below remain separate from this route; `maxNodes` does not raise its source window.
|
|
48
|
+
|
|
49
|
+
**Controlled source selection:** an accepted user selection updates `selectedPath` and emits
|
|
50
|
+
`lr-file-select`. Activating an already-selected leaf file also emits `lr-file-open`, provided the
|
|
51
|
+
same source/projection is still current after the selection listener returns. The provider owns
|
|
52
|
+
the authoritative selected flags. External `selectedPath` changes submit an item selection after
|
|
53
|
+
the initial projection, without synthetic user events or moving focus; clearing it deselects the
|
|
54
|
+
previously controlled key. The default `null` does not request a global clear. A current valid path
|
|
55
|
+
is reconciled again after source replacement, rebind or refresh. Invalid empty/blank/oversized
|
|
56
|
+
controlled paths are not forwarded. This adapter has no source search/copy controls.
|
|
57
|
+
|
|
58
|
+
With `treeSource` undefined, the following snapshot and lazy-directory route applies.
|
|
59
|
+
|
|
22
60
|
An unreadable optional field rejects only that file record; it cannot reserve the path against a
|
|
23
61
|
later valid occurrence. Valid siblings retain their source order within the existing depth and
|
|
24
62
|
inspected-position budgets.
|
|
@@ -26,7 +64,10 @@ inspected-position budgets.
|
|
|
26
64
|
**Properties:** `nodes: readonly FileTreeNode[] = []` (attribute: false; clone-owned/frozen,
|
|
27
65
|
cycle-safe snapshot omitting empty/blank paths and retaining the first successfully admitted occurrence of each path, bounded to
|
|
28
66
|
the first 10,000 inspected source positions across 64 descendant levels; reassign after changes;
|
|
29
|
-
rebinding the same array is a no-op).
|
|
67
|
+
rebinding the same array is a no-op). `maxNodes: number = 1000` (attribute `max-nodes`) sets the
|
|
68
|
+
composed tree's row budget, normalized to `1..10000`; unset or non-finite values restore 1,000.
|
|
69
|
+
The source budget remains 10,000 inspected positions. The composed `<lr-tree>` holds at most
|
|
70
|
+
`maxNodes` rows: when the
|
|
30
71
|
whole listing is larger, each collapsed directory is projected as a single lazy row whose children
|
|
31
72
|
load from the snapshot when it expands, so every top-level entry stays reachable;
|
|
32
73
|
`selectedPath: string | null = null` (attribute `selected-path`), and `label?: string` — an
|
|
@@ -35,12 +76,14 @@ back to the localized default while an explicitly empty string renders as an emp
|
|
|
35
76
|
`additions`/`deletions` are normalized once to finite nonnegative integers before localized visible
|
|
36
77
|
and accessible diff summaries. A host `aria-label` wins by presence when naming the internal tree,
|
|
37
78
|
including an explicit empty string; removing it restores `label` or the localized fallback.
|
|
79
|
+
Derived rows are reused until their data, locale or limit changes; selecting a different path
|
|
80
|
+
updates only the affected ancestor paths. An explicit `requestUpdate()` refreshes derived content.
|
|
38
81
|
|
|
39
82
|
**Read-only getters:** `dataTruncated: boolean` — `true` when normalization omitted a malformed,
|
|
40
83
|
duplicate, cyclic, over-depth or over-budget entry, or when the directories currently expanded hold
|
|
41
|
-
more rows than the composed tree's
|
|
84
|
+
more rows than the composed tree's configured row budget.
|
|
42
85
|
When source normalization reaches its 10,000-node cap, the host shows a localized `limit` part;
|
|
43
|
-
the composed tree shows its own
|
|
86
|
+
the composed tree shows its own notice when its configured valid-node cap is reached.
|
|
44
87
|
|
|
45
88
|
**Lazy directories:** a directory with `hasChildren: true` and no `children` uses `<lr-tree>`'s own
|
|
46
89
|
lazy lifecycle: expanding it shows the row's busy spinner (`aria-busy`), emits `lr-load-children`
|
|
@@ -49,13 +92,24 @@ children; an empty result ends the busy state without expanding. No placeholder
|
|
|
49
92
|
|
|
50
93
|
**Methods:** `setChildren(path, children)` supplies a lazily-loaded directory's children.
|
|
51
94
|
`revealPath(path)` expands every ancestor directory and scrolls the target row into view, resolving
|
|
52
|
-
`true` once found
|
|
95
|
+
`true` once found in legacy mode. In source mode it delegates to
|
|
96
|
+
`revealSourceKey(key: string): Promise<boolean>`, which requests a provider reveal and focuses its
|
|
97
|
+
current visible row; missing/invalid/obsolete requests resolve `false`. The provider must return a
|
|
98
|
+
valid `focusIndex` for successful reveal. `expandAll()` and `collapseAll()` forward to the underlying
|
|
99
|
+
`<lr-tree>` only in legacy mode and are no-ops in source mode. `setChildren()` updates the legacy
|
|
100
|
+
`nodes` input; it does not mutate the provider. Source branch toggles use `project(toggle)` rather
|
|
101
|
+
than `lr-load-children`.
|
|
53
102
|
|
|
54
103
|
**Events:** `lr-file-select` (frozen readonly `detail: { filePath, node }`, a row was activated),
|
|
55
104
|
`lr-file-open` (frozen readonly `detail: { filePath, node }`, Enter/click on an already-selected file
|
|
56
105
|
row), and `lr-load-children` (frozen readonly `detail: { filePath }`, a lazy unloaded directory
|
|
57
|
-
expanded).
|
|
106
|
+
expanded, legacy mode only). Source select/open keep the same `{ filePath, node }` shape, with
|
|
107
|
+
`node` limited to the displayed record rather than a complete subtree. The composed tree's own
|
|
108
|
+
`lr-expand`, `lr-collapse`, `lr-after-*`, `lr-lazy-*` and
|
|
58
109
|
`lr-selection-change` events stay inside the component.
|
|
59
110
|
|
|
60
111
|
**CSS parts:** `base` — the root wrapper; `limit` — localized notice when the source listing
|
|
61
112
|
exceeds its 10,000-item snapshot.
|
|
113
|
+
Source mode retains `base` and adds `tree` on the semantic root, plus `source-list`, `source-row`,
|
|
114
|
+
`source-toggle` (branch and retry buttons), `source-label`, `source-status`, and `source-error`.
|
|
115
|
+
The root owns the accessible name/busy state, and each flat source row owns logical treeitem ARIA.
|
|
@@ -52,6 +52,9 @@ Country/language flag image. Flag artwork ships in a **separate, optional peer p
|
|
|
52
52
|
|
|
53
53
|
Exported authoring types are `LyraFlagShape`, `LyraFlagFidelity`, and `LyraFlagUrlResolver`.
|
|
54
54
|
|
|
55
|
+
Concurrent flags resolving the same country and fidelity share pending resolver work within the
|
|
56
|
+
current resolver generation. Settled or failed requests do not prevent later retries.
|
|
57
|
+
|
|
55
58
|
**Events:** none.
|
|
56
59
|
|
|
57
60
|
**Slots:** `fallback` — rendered in place of the flag when `country`/`language` cannot resolve to a
|
|
@@ -107,8 +110,8 @@ exported:
|
|
|
107
110
|
itself (`'fr'` → `français`, `'pt-BR'` → `português (Brasil)`). That is what a language switcher
|
|
108
111
|
should list, so a reader who understands none of the current UI language can still find their own.
|
|
109
112
|
It derives from `Intl.DisplayNames`, so no name table ships with the library and results follow the
|
|
110
|
-
browser's own ICU data
|
|
111
|
-
|
|
113
|
+
browser's own ICU data. The underlying formatter and resolved native names are cached, so repeated
|
|
114
|
+
catalog renders reuse prior results. A tag with no display name resolves to the
|
|
112
115
|
tag itself, and so does a structurally invalid one — `Intl.DisplayNames` throws a `RangeError` on
|
|
113
116
|
those rather than falling back, and a language picker should degrade to showing the raw tag rather
|
|
114
117
|
than tearing down the render. Pair it with `languageToCountry()` for the flag half of the same row.
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md)
|
|
10
10
|
- **Deprecations** none
|
|
11
11
|
- **Optional peers** none
|
|
12
|
-
- **Themeable via**
|
|
12
|
+
- **Themeable via** 36 parts, 17 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -18,13 +18,26 @@
|
|
|
18
18
|
|
|
19
19
|
A pannable/zoomable DAG workflow canvas: positions HTML node cards, draws SVG edges between their
|
|
20
20
|
handles, runs a shared layered auto-layout for unpositioned nodes, and owns all selection/drag/
|
|
21
|
-
connect interaction.
|
|
21
|
+
connect interaction. Editor gestures are opt-in with `nodes-draggable`,
|
|
22
22
|
`connectable`, and `droppable`. The component snapshots model inputs instead of retaining mutable
|
|
23
23
|
caller aliases, and reports edit intent for the host to apply.
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
With `graphSource` unset, node cards and edges outside the visible viewport are culled. Active and selected nodes, active
|
|
26
|
+
and selected edge endpoints, connection targets and their incident edges remain available.
|
|
27
|
+
Keyboard navigation retains the complete model order and pans to reveal its destination. Panning
|
|
28
|
+
queries retained geometry indexes; companion snapshots contain the complete admitted model.
|
|
29
|
+
Viewport culling preserves existing collection-admission limits and controlled model semantics.
|
|
30
|
+
Without a measurable viewport, including during SSR, the complete model is rendered.
|
|
31
|
+
|
|
32
|
+
For legacy array inputs, input/output handle IDs are reserved only after their complete handle record is admitted; unreadable
|
|
26
33
|
optional labels cannot suppress a later valid handle with the same ID.
|
|
27
34
|
|
|
35
|
+
Legacy node metadata uses a shared 50,000-position inspection budget per node assignment, at most
|
|
36
|
+
10,000 own keys per record and 16 descendant levels. Cloned JSON references and cycles are shared
|
|
37
|
+
across node data roots and frozen; non-plain leaves remain opaque. The `input-limit` part reports
|
|
38
|
+
node/edge or metadata admission loss separately from `layout-limit`. JavaScript key enumeration
|
|
39
|
+
itself can still scale with an individual object's key count.
|
|
40
|
+
|
|
28
41
|
Anchored Lyra overlays in a node's slotted content (a node menu, a tooltip) resolve the `fixed`
|
|
29
42
|
strategy by default, because a node is translated inside a scaled, clipped world where an
|
|
30
43
|
`absolute` overlay could never extend past the canvas; a trapped `fixed` overlay opens in the
|
|
@@ -53,6 +66,121 @@ import type {
|
|
|
53
66
|
} from "@aceshooting/lyra-ui/components/data/flow-canvas/flow-types.js";
|
|
54
67
|
```
|
|
55
68
|
|
|
69
|
+
**Complete workflow source:** `graphSource: FlowCanvasSource | undefined`
|
|
70
|
+
(attribute: false) takes precedence over `nodes`/`edges`. Only `undefined` restores the latest
|
|
71
|
+
legacy inputs; invalid defined providers fail visibly without falling back to those arrays.
|
|
72
|
+
Provider identity/revision is caller-owned; the canvas admits bounded records and scenes.
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
import "@aceshooting/lyra-ui/components/lr-flow-canvas.js";
|
|
76
|
+
import type { FlowCanvasSource } from
|
|
77
|
+
"@aceshooting/lyra-ui/components/data/flow-canvas/flow-canvas.class.js";
|
|
78
|
+
import type { FlowNode, FlowEdge, FlowStructureSnapshot } from
|
|
79
|
+
"@aceshooting/lyra-ui/components/data/flow-canvas/flow-types.js";
|
|
80
|
+
import type { LyraGraphSource, LyraGraphSourceQuery, LyraGraphSourceSummary,
|
|
81
|
+
LyraGraphOverview, LyraSourceBounds } from
|
|
82
|
+
"@aceshooting/lyra-ui/data-sources.js";
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
`FlowCanvasSource = LyraGraphSource<FlowNode, FlowEdge>`; the exact generic protocols are in
|
|
86
|
+
[shared source contracts](../shared/events-and-types.md). It provides `revision`, `records`,
|
|
87
|
+
`scene(request)` and optional `overview(request)`. Source and records revisions must agree and
|
|
88
|
+
be a nonempty string or finite number. `records` supplies `query`, `lookup` and `locate` for the
|
|
89
|
+
complete logical workflow, separately from the bounded positioned scene.
|
|
90
|
+
|
|
91
|
+
**Global record navigation:** `sourcePage: number = 0` (`source-page`) is zero-based;
|
|
92
|
+
`sourcePageSize: number = 100` (`source-page-size`) normalizes to 1–500. Readonly
|
|
93
|
+
`sourceTotal: number | null` is the accepted current record-query total, or null while unavailable
|
|
94
|
+
or without a source. Size/query changes reset page zero; an out-of-range page receives at most
|
|
95
|
+
one corrective last-page request and publishes the accepted corrected page. The navigator offers
|
|
96
|
+
nodes or edges, full-source search, incident-edge scope with in/out/both direction, endpoint
|
|
97
|
+
links, page entry/previous/next and global Home/End/Up/Down record navigation.
|
|
98
|
+
|
|
99
|
+
The navigator sends `LyraGraphSourceQuery`, initially
|
|
100
|
+
`{ kind: 'nodes', search: '', centerKey: null, direction: 'both', nodeTypes: [] }`.
|
|
101
|
+
Search is bounded to 65,536 UTF-16 units; these controls query the whole source rather than
|
|
102
|
+
filtering a loaded scene/page. `records.query({ revision, locale, signal, page, pageSize, query })`
|
|
103
|
+
returns `{ rows, total, summary: { nodes, edges } }`. Each row is `{ key, order, value }`, where
|
|
104
|
+
`value` is `{ kind: 'node', value: FlowNode }` or `{ kind: 'edge', value: FlowEdge }` and its key is
|
|
105
|
+
exactly `node:<id>` or `edge:<id>` with a nonblank original ID. Safe nonnegative canonical `order`
|
|
106
|
+
and keys are unique within a page; rows exactly fill the requested in-bounds page. The required
|
|
107
|
+
summary gives complete global node/edge counts; unfiltered total equals the matching summary
|
|
108
|
+
count, filtered/incident total cannot exceed it, and accepted scenes must agree with those counts.
|
|
109
|
+
Totals and summary counts are safe nonnegative integers.
|
|
110
|
+
Groups/tags are not accepted on this route. Invalid/duplicate/oversized responses fail atomically,
|
|
111
|
+
without local filtering, sorting or silent trimming. Record pages copy only bounded display fields
|
|
112
|
+
and edge endpoints; they do not materialize complete node metadata.
|
|
113
|
+
|
|
114
|
+
`revealSourceKey(key: string): Promise<boolean>` accepts canonical `node:<id>`/`edge:<id>`, clears
|
|
115
|
+
search/incident scope for that kind, uses global `locate`, loads the matching page and attempts to
|
|
116
|
+
focus its navigator row. It resolves false for unset/invalid/missing, failed or superseded work. This is
|
|
117
|
+
separate from synchronous `focusNode(id, options)`, which moves camera/focus only for a node
|
|
118
|
+
already known in the current scene and does not fetch globally. Reveal does not promise a camera
|
|
119
|
+
move or a new scene. Reveal, controlled paging/selection and rebind emit no activation or selection
|
|
120
|
+
event; actual row activation retains `lr-node-activate`/`lr-edge-activate` and selection payloads
|
|
121
|
+
with original IDs. Scene absence does not prove global record absence.
|
|
122
|
+
|
|
123
|
+
**Bounded scene and source geometry:** `scene` receives viewport bounds, at most 32 selected/focus
|
|
124
|
+
reservation keys, `nodeLimit: 500` and `edgeLimit: 1000`. It returns at most those exact node/edge
|
|
125
|
+
entries, global `total`, explicit `coverage: 'complete' | 'neighborhood' | 'aggregate'` and non-null
|
|
126
|
+
`worldBounds`. Requests include revision/locale/signal, `mode: 'viewport'`, `centerKey: null`,
|
|
127
|
+
`bounds` and `includeKeys`. Nodes require finite explicit entry positions inside authoritative world
|
|
128
|
+
bounds; an optional value position must agree. Position/world rectangle endpoints stay within ±1,000,000,
|
|
129
|
+
with nonnegative world dimensions and finite endpoints. Scene edge keys/endpoints must match
|
|
130
|
+
value IDs and resolve to nodes in that scene. Missing positions never trigger local auto-layout.
|
|
131
|
+
The same revision must keep world bounds and global totals consistent. `source-coverage` reports
|
|
132
|
+
shown versus global counts, rather than suggesting every record is drawn.
|
|
133
|
+
|
|
134
|
+
Source scenes preserve FlowNode type, accessible label, disabled state, input/output handles and
|
|
135
|
+
data, plus FlowEdge handles, label and tone. They read own data descriptors; accessors reject.
|
|
136
|
+
`data` accepts plain records/arrays of strings, finite numbers, booleans and null, with shared
|
|
137
|
+
references/cycles preserved in detached frozen copies. Opaque leaves such as functions or Dates
|
|
138
|
+
reject. Each container/handle collection allows at most 10,000 entries, descendant container depth
|
|
139
|
+
is at most 16, and metadata/handle inspection shares a 50,000-field scene budget. Each admitted
|
|
140
|
+
text/key is at most 65,536 UTF-16 units, with a 2,000,000-unit cumulative text ceiling per scene
|
|
141
|
+
or record-page response. Overflow fails the complete response without clipping. JavaScript's
|
|
142
|
+
eager own-key enumeration can still allocate/work in proportion to one input object's key count
|
|
143
|
+
before that object's entry limit is rejected; these bounds do not make provider work constant.
|
|
144
|
+
|
|
145
|
+
Provider-derived retained data covers the current record page (at most 500 rows), current scene
|
|
146
|
+
(at most 500 nodes/1,000 edges) and bounded geometry/overview. Controlled selection keeps its existing first-10,000
|
|
147
|
+
candidate-ID bound and preserves offscene IDs instead of pruning them by scene membership;
|
|
148
|
+
scene reservations are at most 32 keys. This route does not materialize the full provider workflow
|
|
149
|
+
or cache historic pages.
|
|
150
|
+
Page/locate work, scene and overview each keep their fixed request lanes, with one physical call
|
|
151
|
+
per lane and only the latest queued intent. Ignored aborts keep physical permits until settlement;
|
|
152
|
+
providers should settle promptly. Paging does not reset the camera or refetch an unchanged scene;
|
|
153
|
+
pan/zoom/resize changes the viewport scene without restarting the record query. Accepted overview
|
|
154
|
+
is reused across viewport changes.
|
|
155
|
+
|
|
156
|
+
Source mode disables model editing: drag/nudge/connect/drop/delete and full-array layout/model
|
|
157
|
+
mutations, including gestures started before the source was assigned. It does not force public
|
|
158
|
+
`readonly`; pan/zoom/navigation and minimap controls remain usable when unlocked. Public
|
|
159
|
+
`readonly` still locks viewport interaction and makes viewport-mutating methods inert. Source
|
|
160
|
+
mode emits no model-edit/layout event presenting a bounded scene as the complete workflow.
|
|
161
|
+
`fit()` frames accepted global world bounds; legacy `fit()` frames admitted node geometry.
|
|
162
|
+
|
|
163
|
+
Companion snapshots add optional
|
|
164
|
+
`source: Readonly<{ coverage: 'complete' | 'neighborhood' | 'aggregate'; total: LyraGraphSourceSummary;
|
|
165
|
+
worldBounds: LyraSourceBounds; overview: LyraGraphOverview | null }>` when accepted source bounds
|
|
166
|
+
are available. Their node/edge arrays remain bounded exact scene geometry. `locked` still means
|
|
167
|
+
public `readonly`. Optional `overview({ revision, locale, signal, limit: 1024 })` must describe
|
|
168
|
+
those exact world bounds with at most 1,024 finite contained nonoverlapping bins whose counts sum
|
|
169
|
+
to the global node total. Null/unavailable/rejected overview is distinct from accepted empty
|
|
170
|
+
bins; the minimap never invents a global overview from scene nodes. The frozen accepted overview
|
|
171
|
+
identity is shared across viewport notifications.
|
|
172
|
+
|
|
173
|
+
Reassign even the same source or call a keyless `requestUpdate()` after revision/state changes.
|
|
174
|
+
Named local presentation paints reuse accepted provider data unless source revision/effective
|
|
175
|
+
locale changed. Replacement, unset, disconnect and adoption revoke old provider callbacks, gestures
|
|
176
|
+
and effects; superseding query/reveal revokes obsolete record controls. Reconnect captures current
|
|
177
|
+
input. Source navigator/status parts are `source-navigator`, `source-controls`, `source-status`, `source-coverage`,
|
|
178
|
+
`source-records` and `source-record`. Loading, successful empty, missing record, record failure
|
|
179
|
+
and scene failure remain distinct localized states with current guarded retry controls.
|
|
180
|
+
|
|
181
|
+
The following array admission, legacy auto-layout and complete-model snapshot rules apply with
|
|
182
|
+
`graphSource` unset; source behavior is described above.
|
|
183
|
+
|
|
56
184
|
**Properties:**
|
|
57
185
|
|
|
58
186
|
- `nodes: readonly FlowNode[] = []` (attribute: false) — each record has readonly `id`, optional
|
|
@@ -85,13 +213,13 @@ import type {
|
|
|
85
213
|
- `readonly: boolean = false` (reflected) — freezes pan/zoom/drag/connect without touching the other
|
|
86
214
|
gesture flags. Enabling it during a pan, node drag, pointer/keyboard connection, or palette drop
|
|
87
215
|
cancels the active preview, rolls pan/node geometry back, clears transient state, and retires the
|
|
88
|
-
window pointer listeners so a later release cannot commit. The one-shot initial framing
|
|
89
|
-
applies to a `readonly` canvas, and waits until the canvas has a rendered size (a hidden tab or
|
|
216
|
+
window pointer listeners so a later release cannot commit. The legacy one-shot initial framing
|
|
217
|
+
still applies to a `readonly` canvas, and waits until the canvas has a rendered size (a hidden tab or
|
|
90
218
|
closed dialog is framed when it is first shown).
|
|
91
219
|
- `selectedNodeIds: readonly string[] = []`, `selectedEdgeIds: readonly string[] = []` (attribute:
|
|
92
220
|
false) — seed or replace selection. Each assignment snapshots at most the first 10,000 ids,
|
|
93
|
-
omits blank/later duplicates first-wins, and prunes identities absent
|
|
94
|
-
node/edge model. Reassign after changes. Activation and clear-selection gestures update frozen
|
|
221
|
+
omits blank/later duplicates first-wins, and, with `graphSource` unset, prunes identities absent
|
|
222
|
+
from the current canonical node/edge model. Reassign after changes. Activation and clear-selection gestures update frozen
|
|
95
223
|
arrays before emitting `lr-selection-change`; model shrinkage prunes stale ids without claiming
|
|
96
224
|
a user selection gesture occurred.
|
|
97
225
|
- `minZoom: number = 0.25` (attribute `min-zoom`), `maxZoom: number = 2` (attribute `max-zoom`)
|
|
@@ -109,21 +237,25 @@ import type {
|
|
|
109
237
|
- `viewport` (readonly getter) — a frozen `{ x, y, zoom }` snapshot
|
|
110
238
|
|
|
111
239
|
**Methods:** `setViewport({ x, y, zoom })`, `zoomIn()`, `zoomOut()`, `resetZoom()`,
|
|
112
|
-
`fit(options?: { padding?: number })` (frames
|
|
113
|
-
(pans/zooms to one node and moves roving focus
|
|
240
|
+
`fit(options?: { padding?: number })` (frames legacy admitted nodes or source global world bounds),
|
|
241
|
+
`focusNode(id, options?: { zoom? })` (pans/zooms to one currently known node and moves roving focus
|
|
242
|
+
onto it), `toContentPoint(clientX, clientY)` (maps a
|
|
114
243
|
pointer position to content coordinates, RTL-aware), `registerCompanion(cb: (snapshot:
|
|
115
244
|
FlowStructureSnapshot) => void): () => void` — the subscription `lr-flow-minimap` uses to read
|
|
116
245
|
live node/edge/viewport geometry without this canvas ever importing the minimap.
|
|
246
|
+
`revealSourceKey(key: string): Promise<boolean>` provides the global record navigation described above.
|
|
117
247
|
All viewport-mutating methods, including `focusNode()`, are inert while `readonly`; coordinate mapping
|
|
118
248
|
and companion subscription remain available because neither mutates viewport or edit state.
|
|
119
249
|
Each companion observer receives its own deeply frozen `FlowStructureSnapshot`: readonly node and
|
|
120
250
|
edge geometry/status arrays (shared between observers and reused, by identity, across
|
|
121
251
|
viewport-only frames until the structure changes), viewport `{ x, y, zoom, width, height, minZoom, maxZoom }`, and the
|
|
122
252
|
effective `readonly` state (as the snapshot's `locked` key), `orientation`, `layerGap`, and `nodeGap`. Zoom bounds are finite, positive, and
|
|
123
|
-
sorted even when public inputs are invalid or reversed.
|
|
253
|
+
sorted even when public inputs are invalid or reversed. Source snapshots additionally carry the
|
|
254
|
+
accepted `source` descriptor above; their scene arrays do not imply full-source coverage.
|
|
124
255
|
|
|
125
|
-
**Events:** `lr-node-activate` (`detail: { nodeId }`), `lr-edge-activate` (`detail: { edgeId,
|
|
126
|
-
|
|
256
|
+
**Events:** `lr-node-activate` (`detail: { nodeId }`), `lr-edge-activate` (`detail: { edgeId,
|
|
257
|
+
sourceNodeId, targetNodeId, source, target }`, both endpoint-name pairs are supplied),
|
|
258
|
+
`lr-selection-change` (`detail: { selectedNodeIds, selectedEdgeIds }`), `lr-node-move` (`detail: { nodeId,
|
|
127
259
|
position, previous }`), `lr-connect` (`detail: { source, target, sourceHandle, targetHandle }`),
|
|
128
260
|
`lr-node-add` (`detail: { type, position }`, from a palette drop), `lr-selection-delete`
|
|
129
261
|
(`detail: { nodeIds, edgeIds }`), `lr-viewport-change` (`detail: { x, y, zoom }`),
|
|
@@ -131,7 +263,7 @@ position, previous }`), `lr-connect` (`detail: { source, target, sourceHandle, t
|
|
|
131
263
|
previously unpositioned nodes). Every detail and nested coordinate/array is readonly and frozen.
|
|
132
264
|
|
|
133
265
|
**Slots:** default (consumer-authored cards matched by `node-id` and assigned to generated
|
|
134
|
-
`node-{id}` slots), `top-start`, `top-end`, `bottom-start`, `bottom-end`. Each node
|
|
266
|
+
`node-{id}` slots), `top-start`, `top-end`, `bottom-start`, `bottom-end`. Each rendered node has a
|
|
135
267
|
declarative shadow-DOM fallback card, so SSR and hydration do not depend on imperative light-DOM
|
|
136
268
|
card creation. An authored card replaces only its matching fallback; unmatched cards are unslotted
|
|
137
269
|
with a warning. Opposite-side companion slots share wrapping rails in narrow allocations.
|
|
@@ -141,13 +273,19 @@ with a warning. Opposite-side companion slots share wrapping rails in narrow all
|
|
|
141
273
|
(a dangling-edge stub line), `connection-line` (in-progress connect gesture), `node`, `empty`,
|
|
142
274
|
`node-control` (the native per-node roving/activation control), `live-region`, `edge-list` (a
|
|
143
275
|
visually hidden list only for dangling/unrenderable edges), `layout-limit` (a visible notice whose
|
|
144
|
-
announcement uses the shared light-DOM polite sink), `
|
|
276
|
+
announcement uses the shared light-DOM polite sink), `input-limit` (node/edge or metadata
|
|
277
|
+
admission notice), `overlay-rail`, and the
|
|
145
278
|
fallback-card parts `node-card`, `node-card-base`, `node-card-surface`, `node-card-header`,
|
|
146
279
|
`node-card-heading`, `node-card-status`, `node-card-progress`, `node-card-body`, `node-card-toolbar`,
|
|
147
280
|
`node-card-handle`, `node-card-handle-input`, and `node-card-handle-output`. A node whose `type`
|
|
148
281
|
normalizes to a safe part token also exposes `node-type-{value}`. A selected node wrapper carries
|
|
149
282
|
`data-selected`; its hidden `node-control` exposes the state as `aria-pressed`.
|
|
150
283
|
|
|
284
|
+
With `graphSource` set, additional CSS parts are `source-navigator` (complete-source record navigation), `source-controls`
|
|
285
|
+
(query and page controls), `source-records` (the bounded current page), `source-record` (one record
|
|
286
|
+
with incident-edge or endpoint actions), `source-status` (record/scene loading, failure and count
|
|
287
|
+
text), and `source-coverage` (accepted scene coverage relative to complete node/edge totals).
|
|
288
|
+
|
|
151
289
|
`live-region` is a visually hidden, `aria-hidden` mirror of the latest item/gesture message. The
|
|
152
290
|
actual messages are flushed to the document's shared light-DOM polite sink; mount is silent, and
|
|
153
291
|
identical repeated messages are appended as separate announcements.
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md)
|
|
10
10
|
- **Deprecations** none
|
|
11
11
|
- **Optional peers** none
|
|
12
|
-
- **Themeable via**
|
|
12
|
+
- **Themeable via** 9 parts, 10 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -22,6 +22,32 @@ rectangle, for orientation and fast navigation on canvases larger than the scree
|
|
|
22
22
|
geometry always comes from the canvas's `registerCompanion()` snapshots, so the two can never
|
|
23
23
|
disagree.
|
|
24
24
|
|
|
25
|
+
For legacy snapshots, the minimap retains every admitted node. Its node overview and moving viewport use
|
|
26
|
+
separate SVG layers, so panning keeps the overview tree unchanged. Existing `node`, `viewport`
|
|
27
|
+
and `viewport-hit-area` parts remain available.
|
|
28
|
+
|
|
29
|
+
**Source companion:** when `FlowStructureSnapshot.source` is present, the minimap frames its
|
|
30
|
+
accepted global `worldBounds`, including negative origins and positive fractional extents; it
|
|
31
|
+
never infers source extent from the bounded scene-node array. Every positive axis keeps its exact
|
|
32
|
+
source dimension without legacy padding or a one-unit minimum. Only an exactly zero-width or
|
|
33
|
+
zero-height axis receives a centered one-unit SVG display extent; source coordinates are unchanged.
|
|
34
|
+
|
|
35
|
+
Only accepted `source.overview.bins` render, under `aggregate-bin`, at most 1,024 rectangles.
|
|
36
|
+
They describe the complete node population within the authoritative world bounds; scene-node
|
|
37
|
+
rectangles are not painted as a substitute global overview. The canvas owns overview validation
|
|
38
|
+
and freezing, and the minimap adds no provider query or second normalization. A missing/rejected
|
|
39
|
+
`overview: null` shows localized `source-unavailable` (default “Workflow overview unavailable”)
|
|
40
|
+
while world framing and unlocked viewport controls remain usable. Accepted empty bins are a
|
|
41
|
+
successful empty overview and do not show the unavailable state.
|
|
42
|
+
|
|
43
|
+
The immutable overview layer is reused by identity across viewport-only snapshots. Map clicks,
|
|
44
|
+
viewport drag, wheel zoom and physical arrow keys use the same exact source-world inverse
|
|
45
|
+
mapping, including RTL and zero-axis display fallback. A change in world coordinate values
|
|
46
|
+
cancels an active drag; cloned equal bounds do not. Old subscriptions/detached controls cannot
|
|
47
|
+
move a later canvas binding. `locked` continues to reflect public canvas `readonly`; the source
|
|
48
|
+
editing gate alone does not disable minimap navigation. Removing the provider restores the
|
|
49
|
+
legacy node-geometry overview.
|
|
50
|
+
|
|
25
51
|
**Properties:**
|
|
26
52
|
|
|
27
53
|
- `for: string = ''` — id of the target `lr-flow-canvas`; when empty, the nearest ancestor canvas
|
|
@@ -39,7 +65,9 @@ disagree.
|
|
|
39
65
|
**Slots:** none.
|
|
40
66
|
|
|
41
67
|
**CSS parts:** `base` (the root wrapper; drops its border, background and corner radius under
|
|
42
|
-
`frame="plain"`), `map` (the scaled SVG), `node` (one rect per node),
|
|
68
|
+
`frame="plain"`), `map` (the scaled SVG), `node` (one rect per legacy node),
|
|
69
|
+
`aggregate-bin` (one accepted source overview rectangle), `source-unavailable` (missing source
|
|
70
|
+
overview message), `viewport` (the
|
|
43
71
|
exact visible view rectangle), `viewport-hit-area` (the transparent draggable/focusable target),
|
|
44
72
|
`instructions` (visually hidden keyboard help), and `live-region` (the `aria-hidden` mirror of the
|
|
45
73
|
latest viewport-change text).
|
|
@@ -67,8 +95,8 @@ viewport-to-content ratio. The token inherits from ancestors; set it to `0` to o
|
|
|
67
95
|
**Known gotchas:**
|
|
68
96
|
|
|
69
97
|
- Never resolves `nodes`/`edges` on its own — it subscribes to `registerCompanion()` and repaints
|
|
70
|
-
from
|
|
71
|
-
|
|
98
|
+
from the complete admitted legacy geometry or the accepted source overview/world bounds the
|
|
99
|
+
canvas last pushed. Source scenes remain bounded and never substitute for a global overview.
|
|
72
100
|
- A readonly canvas snapshot makes the hit area unfocusable and inert: no pointer, click, wheel, or keyboard
|
|
73
101
|
shortcut can mutate the canvas.
|
|
74
102
|
- Dragging the viewport rectangle calls the canvas's `setViewport()` directly; there's no separate
|
|
@@ -21,6 +21,12 @@ bar whose length is that stage's share of the **first** stage, read top-to-botto
|
|
|
21
21
|
drop-off. It sits beside `lr-gauge` and `lr-heatmap` as an analytics primitive rather than a general
|
|
22
22
|
chart type.
|
|
23
23
|
|
|
24
|
+
Supply `stages` and `comparison` as aggregate counts or measures computed across their complete
|
|
25
|
+
cohorts. A few stages can summarize one million underlying observations when each value includes
|
|
26
|
+
every applicable cohort member. The host or server performs the raw-event aggregation; the
|
|
27
|
+
component receives stage totals, and each comparison cohort normalizes to its own first stage.
|
|
28
|
+
The 500-stage rendering ceiling bounds stage cardinality independently of the observation count.
|
|
29
|
+
|
|
24
30
|
When a positive finite stage value divided by a positive finite baseline overflows to `Infinity`,
|
|
25
31
|
the main or comparison data fill clamps to 100%. Nonfinite input normalization, nonpositive-baseline
|
|
26
32
|
behavior, percentage and drop-off text, and overflow border styling keep their existing rules.
|
|
@@ -32,6 +38,14 @@ Reach for `lr-bar-chart`/`lr-lite-chart` when you actually want a value axis and
|
|
|
32
38
|
The whole chart is plain HTML — stage names, absolute values, shares and drop-off percentages are
|
|
33
39
|
real text inside an `<ol>`, so there is no sighted-only drawing needing a separate transcript. The
|
|
34
40
|
list carries the accessible name; a host `aria-label` overrides `label`.
|
|
41
|
+
Stage and comparison projections reuse their input identities. Reassign after changes, or call
|
|
42
|
+
`requestUpdate()` after mutating the current arrays. The component resolves at most the first 501
|
|
43
|
+
valid stages to detect overflow and renders at most 500.
|
|
44
|
+
Validation inspects at most 10,000 source positions per chunk and continues through malformed
|
|
45
|
+
entries until it reaches that valid-stage boundary or the end. The last completed chart stays
|
|
46
|
+
visible with `aria-busy` while a replacement is inspected. Keep pending source arrays and records
|
|
47
|
+
unchanged, or reassign/explicitly refresh to restart inspection. Replacement and disconnect cancel
|
|
48
|
+
unfinished work; reconnect derives the current input again.
|
|
35
49
|
|
|
36
50
|
**Properties:**
|
|
37
51
|
|
|
@@ -23,18 +23,34 @@ The root and viewers family barrels still expose the same distinct `LyraGeojsonV
|
|
|
23
23
|
for compatibility; importing it does not register the removed tag. Prefer the canonical class.
|
|
24
24
|
The document registry renders `lr-geojson-viewer` for `application/geo+json` and `.geojson` filenames.
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
`
|
|
28
|
-
|
|
26
|
+
Responses are limited to 4 MiB (4,194,304 bytes) before `JSON.parse`. The parsed JSON must be a
|
|
27
|
+
`Feature`/`FeatureCollection`/bare geometry (one of `Point`,
|
|
28
|
+
`LineString`, `Polygon`, `MultiPoint`, `MultiLineString`, `MultiPolygon`, `GeometryCollection`);
|
|
29
|
+
anything else renders the localized `geojsonViewInvalid` error. On success, it walks every
|
|
29
30
|
value and object key first, rejecting more than 50,000 graph units, nesting beyond 64 levels, more
|
|
30
|
-
than 2 Mi UTF-16 units of aggregate keys/string values, or more than 4
|
|
31
|
-
metadata
|
|
31
|
+
than 2 Mi UTF-16 units of aggregate keys/string values, or more than 4,194,304 UTF-16 units of
|
|
32
|
+
formatted metadata. A size preflight rejects oversized pretty metadata before full serialization
|
|
33
|
+
or peer handoff. It then walks every coordinate under a separate
|
|
32
34
|
10,000-position ceiling to compute a bounding box, seeds `center`/`zoom` from it as a placeholder, and
|
|
33
35
|
frames the data with `<lr-map>.fitBounds()` (size-aware, padded, antimeridian-safe, no animation) once
|
|
34
36
|
the map exists, then hands the parsed value to
|
|
35
|
-
`<lr-map>` as a single `dataLayers` entry (`sourceId: 'lr-geojson'`).
|
|
37
|
+
`<lr-map>` as a single `dataLayers` entry (`sourceId: 'lr-geojson'`). The nested map explicitly uses
|
|
38
|
+
`engine="maplibre"`, preserving this viewer's native `maplibre-gl` peer contract independently of
|
|
39
|
+
`lr-map`'s modular default. There is no viewer engine-selection property. When the optional
|
|
36
40
|
`maplibre-gl` peer isn't installed, it falls back to a status line plus a `<lr-json-viewer
|
|
37
|
-
expand-depth="2">` of the raw value instead of the map.
|
|
41
|
+
expand-depth="2">` of the raw value instead of the map. The JSON-viewer fallback is registered
|
|
42
|
+
lazily only when the map peer is unavailable. Loaded documents survive disconnect/reconnect while
|
|
43
|
+
`src` is unchanged; changing `src` reloads the document.
|
|
44
|
+
|
|
45
|
+
**Large spatial datasets:** `src` remains a bounded GeoJSON document preview; it accepts neither a
|
|
46
|
+
tile manifest nor a catalog provider. For a million-record spatial source, keep records, indexing,
|
|
47
|
+
global counts and identity lookup in a host-owned service and compose a separate
|
|
48
|
+
[`lr-map`](./lr-map.md) with a tiled vector style through `mapStyle`. Query style-owned rendered
|
|
49
|
+
features through that map's public `map` getter, then fetch a bounded selected-feature overlay or a
|
|
50
|
+
deliberately sized GeoJSON preview document. Keep the full source total and preview scope visible
|
|
51
|
+
in the host interface. The preview's feature count describes only the admitted file, and its
|
|
52
|
+
metadata search does not traverse the full spatial service. This composition preserves all file,
|
|
53
|
+
geometry and text guards above.
|
|
38
54
|
|
|
39
55
|
The root owns the named `region` landmark while loading, in fallback/error/idle states, and while a
|
|
40
56
|
lazy map initializes. After `lr-map-load`, landmark ownership transfers to the map canvas so there
|
|
@@ -97,9 +113,10 @@ The canonical tag is registered by importing `components/lr-geojson-viewer.js` (
|
|
|
97
113
|
`components/viewers/geojson-view/geojson-viewer.js`). The former `components/lr-geojson-view.js`,
|
|
98
114
|
`components/viewers/geojson-view/geojson-view.js` and `geojson-view.class.js` routes were removed
|
|
99
115
|
in 23.0.0. Applications using them to register the viewer must use the canonical tag-shaped route.
|
|
100
|
-
Remote
|
|
101
|
-
|
|
102
|
-
|
|
116
|
+
Remote resources are capped at 4 MiB (4,194,304 bytes) before JSON parsing; exceeding that bound
|
|
117
|
+
surfaces the localized `documentPreviewResourceTooLarge` message instead of the map. Lyra supports
|
|
118
|
+
native MapLibre v5 and v6; consumers must import its CSS and configure that peer before connecting
|
|
119
|
+
the viewer. Installing only `@aceshooting/lyra-map` does not satisfy this viewer's native peer contract.
|
|
103
120
|
MapLibre v5's standard build includes its worker, while v6 is ESM-only, requires WebGL2, and needs
|
|
104
121
|
its module-worker URL configured for the bundler before this viewer constructs the nested map. See
|
|
105
122
|
`llms/components/lr-map.md` for the Vite v6 example and the other bundler variants.
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [retrieval](https://github.com/aceshooting/lyra-ui/blob/main/packages/lyra-ui/llms/retrieval.md)
|
|
10
10
|
- **Deprecations** none
|
|
11
11
|
- **Optional peers** `d3-drag`, `d3-force`, `d3-selection`, `d3-zoom` — see `llms/peers.md`
|
|
12
|
-
- **Themeable via**
|
|
12
|
+
- **Themeable via** 33 parts, 17 custom properties — see this component's own `@csspart`/`@cssprop` list below
|
|
13
13
|
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
14
14
|
|
|
15
15
|
---
|
|
@@ -18,7 +18,35 @@
|
|
|
18
18
|
|
|
19
19
|
A node-link diagram whose default 2D force layout uses `d3-force`. Set `view="3d"` for an
|
|
20
20
|
orbitable perspective view of real x/y/z positions, or `view="list"` for a visible, paginated
|
|
21
|
-
list of all graph items. The 3D and list views require no optional peer.
|
|
21
|
+
list of all admitted graph items. The 3D and list views require no optional peer.
|
|
22
|
+
|
|
23
|
+
**Complete graph provider:** `graphSource: GraphSource | undefined` (attribute: false)
|
|
24
|
+
takes precedence over `nodes` and `edges`; an invalid defined source fails visibly. Setting
|
|
25
|
+
`undefined` restores the current legacy arrays. `GraphSource` is
|
|
26
|
+
`LyraGraphSource<LyraGraphNode, LyraGraphEdge & { readonly id: string }>`; see the
|
|
27
|
+
[shared graph-source protocol](../shared/events-and-types.md). Record keys are `node:<id>` or
|
|
28
|
+
`edge:<id>`, and source edges require explicit IDs. Reassign the source, even the same object,
|
|
29
|
+
or call `requestUpdate()` to refresh. The global record navigator remains available beside a
|
|
30
|
+
bounded diagram of at most 500 nodes and 1,000 edges, with up to 32 reserved active/focused keys.
|
|
31
|
+
Provider totals describe the complete source; scene coverage is disclosed separately, and
|
|
32
|
+
`fit()` frames only the current scene.
|
|
33
|
+
|
|
34
|
+
`sourcePage: number = 0` (attribute `source-page`) is the zero-based global record page;
|
|
35
|
+
`sourcePageSize: number = 100` (attribute `source-page-size`) normalizes to 1–500, and changing
|
|
36
|
+
its effective size resets page zero. Readonly `sourceTotal: number | null` reports the exact
|
|
37
|
+
active node/edge query total after a successful current response, or `0` for an empty composed
|
|
38
|
+
filter; otherwise `null` without a current response.
|
|
39
|
+
`revealSourceKey(key: string): Promise<boolean>` clears query filters, uses provider `locate`,
|
|
40
|
+
and reveals and focuses a canonical row without selecting or activating it. It returns false
|
|
41
|
+
when the source/key is invalid or absent, the target row cannot be found after paging, or work
|
|
42
|
+
is superseded.
|
|
43
|
+
|
|
44
|
+
Spatial rendering and layered layout load only when selected. After changing `view` to a spatial
|
|
45
|
+
view or selecting `layout="layered"`, await `updateComplete` to include that module's loading;
|
|
46
|
+
the existing asynchronous d3 data-readiness contract is unchanged. Node and edge snapshots retain
|
|
47
|
+
the existing 10,000-entry and 50,000-nested-value safety ceilings, so richer records can reach the
|
|
48
|
+
nested-value ceiling earlier. The visible limit notice reports retained and source counts. Narrow
|
|
49
|
+
or aggregate data before binding when the complete graph exceeds admission.
|
|
22
50
|
|
|
23
51
|
**Spatial view:** `view: LyraGraphView = '2d'` accepts `'2d' | '3d' | 'list'`. Invalid runtime
|
|
24
52
|
values normalize to `'2d'`. The default retains the existing 2D SVG/canvas behavior and adds no
|
|
@@ -34,7 +62,7 @@ placement keyed by node id, with genuine z separation. Inputs are never moved or
|
|
|
34
62
|
`renderer`, `layout`, `chargeStrength`, `edgeDistance` and `seed` have no effect: there is no force
|
|
35
63
|
solver, settling animation, auto-rotation or inertia. Rendering uses original perspective math
|
|
36
64
|
and a Canvas 2D raster surface, with near-plane clipping, depth-ordered node/edge segments and
|
|
37
|
-
frontmost picking.
|
|
65
|
+
frontmost picking. Adaptive edge subdivision approximates crossings; this is not a mesh renderer or
|
|
38
66
|
a guarantee of perfect translucent intersections. Use modest graphs, typically low hundreds;
|
|
39
67
|
the 2D canvas capacity claim below does not apply to 3D.
|
|
40
68
|
|
|
@@ -188,8 +216,8 @@ boolean; color?: string; dash?: number[] }` (source/target are node ids). `direc
|
|
|
188
216
|
- `layout: 'force' | 'layered' = 'force'` — `'force'` runs the `d3-force` simulation described
|
|
189
217
|
throughout this section, unchanged. `'layered'` swaps in a deterministic Sugiyama-lite layered
|
|
190
218
|
layout instead (longest-path layering, barycenter crossing reduction, cycle-safe — back edges are
|
|
191
|
-
reversed only for layering, never mutating caller data):
|
|
192
|
-
with no settle animation, sized from each node's own radius and spaced by `edgeDistance` (the
|
|
219
|
+
reversed only for layering, never mutating caller data): after the layout module loads, positions
|
|
220
|
+
are computed synchronously with no settle animation, sized from each node's own radius and spaced by `edgeDistance` (the
|
|
193
221
|
layer gap) and a fixed 12px in-layer gap. Node drag is disabled in this mode (dragging would fight
|
|
194
222
|
a computed layout) and `chargeStrength` becomes a documented no-op; pan/zoom, keyboard roving,
|
|
195
223
|
`focusNode()`/`fit()`, hulls, edge labels, and `hiddenTypes` filtering all work identically to
|
|
@@ -210,6 +238,9 @@ boolean; color?: string; dash?: number[] }` (source/target are node ids). `direc
|
|
|
210
238
|
only, not the visible marks. Every data-driven and token-derived canvas color is resolved through
|
|
211
239
|
the live computed CSS cascade before painting, so CSS-wide keywords such as `inherit`/`unset`,
|
|
212
240
|
custom-property references, and modern color functions reach Canvas as concrete colors.
|
|
241
|
+
Prefer this renderer for large admitted graphs. Visual painting is culled to the viewport, and
|
|
242
|
+
force simulation pauses while the graph is offscreen. SVG cursor movement retains the existing
|
|
243
|
+
item markup; it does not rebuild every node and link template.
|
|
213
244
|
|
|
214
245
|
**Methods:** `focusNode(id, options?: { zoom? })` and `fit(options?: { padding?: number })` control the
|
|
215
246
|
camera; `getNodePosition(id)` returns the current `{ x, y }` in graph-local drawing coordinates, or
|
|
@@ -248,6 +279,10 @@ the offscreen keyboard-roving items), `spatial-toolbar` (3D/list view and camera
|
|
|
248
279
|
interaction surface), `spatial-instructions` (camera keyboard instructions), `spatial-list` (the
|
|
249
280
|
visible paginated fallback), `spatial-list-item` (each activatable node, edge or community),
|
|
250
281
|
`spatial-page-count` (localized total and page status), and `spatial-pagination` (page controls).
|
|
282
|
+
Source-mode parts: `source-navigator` (global query, record list and pagination), `source-row`
|
|
283
|
+
(a mounted record activation button), `source-row-active` (the navigator's roving tab stop),
|
|
284
|
+
`source-status` (loading, unavailable-record or error text), and `source-coverage` (full-source
|
|
285
|
+
totals and current diagram coverage).
|
|
251
286
|
|
|
252
287
|
**Themeable custom properties:** `--lr-canvas-reserved-height` (default
|
|
253
288
|
`var(--lr-size-24rem)`) sets the host block size and is shared with the optional pre-upgrade
|
|
@@ -278,8 +313,9 @@ behind a drawn `[part="link-label"]` (via `paint-order: stroke`).
|
|
|
278
313
|
`--lr-graph-hull-fill` (default `var(--lr-color-brand)`) — community hull fill/stroke color
|
|
279
314
|
(overridden inline per hull from `LyraGraphCommunity.color`).
|
|
280
315
|
`--lr-graph-hull-opacity` (default `0.12`) — hull element opacity (composites fill+stroke as one).
|
|
281
|
-
Under `renderer="canvas"` these five are
|
|
282
|
-
per-node elements to inherit them), so they must be set on or above
|
|
316
|
+
Under `renderer="canvas"` these five are resolved from computed style and cached until relevant
|
|
317
|
+
inputs change (there are no per-node elements to inherit them), so they must be set on or above
|
|
318
|
+
the `<lr-graph>` host itself.
|
|
283
319
|
The canvas repaints when inherited theme inputs change (including ancestor class/data attributes,
|
|
284
320
|
adopted stylesheets, and media-query theme transitions); a host does not need to reassign `nodes`
|
|
285
321
|
to make new token values visible.
|