@aceshooting/lyra-ui 26.0.0 → 27.0.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 +63 -675
- package/README.md +281 -1130
- package/design-tokens.json +1 -1
- package/dist/ai/types.d.ts +5 -5
- package/dist/autoloader.js +1 -1
- package/dist/cli/agent-registry.mjs +1 -0
- package/dist/cli/component-inventory.mjs +1 -1
- package/dist/cli/init-agents.mjs +40 -0
- package/dist/cli/is-main-module.mjs +1 -0
- package/dist/cli/lyra-rename-ledger.mjs +1 -1
- package/dist/cli/lyra-ui.mjs +11 -0
- package/dist/cli/migrate-wa.mjs +4 -2
- package/dist/cli/migration-contract.json +1 -1
- package/dist/cli/migration-renames.mjs +1 -1
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.d.ts +1 -1
- package/dist/components/agent-tools/agent-eval-dashboard/agent-eval-dashboard.class.js +2 -2
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +2 -2
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +2 -2
- package/dist/components/agent-tools/connector-manager/connector-manager.class.d.ts +4 -2
- package/dist/components/agent-tools/connector-manager/connector-manager.class.js +6 -3
- package/dist/components/agent-tools/connector-manager/connector-manager.d.ts +1 -1
- package/dist/components/agent-tools/connector-manager/connector-manager.js +1 -1
- package/dist/components/agent-tools/connector-manager/connector-manager.styles.js +1 -1
- package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +2 -2
- package/dist/components/agent-tools/context-inspector/context-inspector.class.js +6 -6
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +8 -33
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js +27 -4
- package/dist/components/agent-tools/eval-dataset/eval-dataset.d.ts +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.js +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +1 -1
- package/dist/components/agent-tools/permission-grant/permission-grant.class.d.ts +4 -2
- package/dist/components/agent-tools/permission-grant/permission-grant.class.js +6 -3
- package/dist/components/agent-tools/permission-grant/permission-grant.d.ts +1 -1
- package/dist/components/agent-tools/permission-grant/permission-grant.js +1 -1
- package/dist/components/agent-tools/permission-grant/permission-grant.styles.js +1 -1
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.d.ts +1 -1
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +2 -2
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts +3 -1
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js +1 -1
- package/dist/components/agent-tools/task-list/task-list.class.d.ts +2 -2
- package/dist/components/agent-tools/task-list/task-list.class.js +2 -2
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.js +4 -4
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +15 -9
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +1 -1
- package/dist/components/agent-tools/tool-call-block/tool-call-block.class.d.ts +2 -2
- package/dist/components/agent-tools/tool-call-block/tool-call-block.class.js +1 -1
- package/dist/components/agent-tools/tool-call-block/tool-call-block.styles.js +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +2 -7
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.styles.js +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-constraints.js +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +3 -5
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +1 -1
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.d.ts +2 -5
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.styles.js +1 -1
- package/dist/components/agent-tools/tool-result-view/registry.d.ts +4 -12
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +2 -2
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +1 -1
- package/dist/components/agent-tools/tool-status.d.ts +7 -0
- package/dist/components/agent-tools/tool-status.styles.js +1 -0
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.d.ts +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.js +1 -1
- package/dist/components/agent-tools/trace-tree/trace-tree.class.js +2 -2
- package/dist/components/charts/chart/box-plot.class.d.ts +1 -1
- package/dist/components/charts/chart/box-plot.class.js +1 -1
- package/dist/components/charts/chart/box-plot.styles.js +1 -1
- package/dist/components/charts/chart/chart-surface-shared.js +1 -0
- package/dist/components/charts/chart/chart-surface.styles.js +1 -1
- package/dist/components/charts/chart/chart-table-sampling.js +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +2 -2
- package/dist/components/charts/chart/chart.class.js +2 -2
- package/dist/components/charts/chart/chart.styles.js +1 -1
- package/dist/components/charts/chart/histogram.class.js +1 -1
- package/dist/components/charts/chart/lite-chart.class.d.ts +1 -1
- package/dist/components/charts/chart/lite-chart.class.js +4 -4
- package/dist/components/conversation/catalog-picker-element.d.ts +28 -13
- package/dist/components/conversation/catalog-picker-element.js +1 -1
- package/dist/components/conversation/catalog-picker-trigger.styles.js +1 -0
- package/dist/components/conversation/chat-message/chat-message.class.js +1 -1
- package/dist/components/conversation/chat-message/chat-message.styles.js +1 -1
- package/dist/components/conversation/chat-viewport/chat-viewport.class.d.ts +1 -1
- package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
- package/dist/components/conversation/code-block/code-block-shared.js +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.class.js +1 -1
- package/dist/components/conversation/generation-metrics/generation-metrics.class.js +2 -2
- package/dist/components/conversation/markdown/markdown-base.class.js +1 -1
- package/dist/components/conversation/markdown/markdown-code-header.js +1 -1
- package/dist/components/conversation/message-actions/message-actions.class.js +1 -1
- package/dist/components/conversation/model-select/model-select.class.d.ts +7 -34
- package/dist/components/conversation/model-select/model-select.class.js +3 -3
- package/dist/components/conversation/model-select/model-select.styles.js +1 -1
- package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +7 -2
- package/dist/components/conversation/prompt-input/prompt-input.class.js +5 -2
- package/dist/components/conversation/prompt-queue/prompt-queue.class.js +1 -1
- package/dist/components/conversation/realtime-session/realtime-session.class.js +1 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +1 -1
- package/dist/components/conversation/stream-status/stream-status.class.js +1 -1
- package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +10 -27
- package/dist/components/conversation/voice-picker/voice-picker.class.js +3 -3
- package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
- package/dist/components/data/condition-builder/condition-builder.class.js +1 -1
- package/dist/components/data/data-grid/data-grid.class.js +1 -1
- package/dist/components/data/document-library/document-library.class.d.ts +2 -2
- package/dist/components/data/document-library/document-library.class.js +2 -2
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +3 -3
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
- package/dist/components/data/heatmap/heatmap.class.js +2 -2
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.js +1 -1
- package/dist/components/data/table/table.class.d.ts +10 -195
- package/dist/components/data/table/table.class.js +2 -2
- package/dist/components/data/table/table.styles.js +1 -1
- package/dist/components/data/timeline/timeline.class.js +1 -1
- package/dist/components/data/tree/tree.class.js +1 -1
- package/dist/components/forms/button/button.class.d.ts +3 -3
- package/dist/components/forms/button/button.class.js +1 -1
- package/dist/components/forms/catalog-picker-base.js +1 -1
- package/dist/components/forms/checkbox/checkbox.class.d.ts +13 -34
- package/dist/components/forms/checkbox/checkbox.class.js +3 -3
- package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +3 -3
- package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
- package/dist/components/forms/code-editor/code-editor.class.js +1 -1
- package/dist/components/forms/color-picker/color-picker.class.js +1 -1
- package/dist/components/forms/combobox/combobox.class.d.ts +6 -6
- package/dist/components/forms/combobox/combobox.class.js +3 -2
- package/dist/components/forms/combobox/option.class.d.ts +3 -0
- package/dist/components/forms/combobox/option.class.js +2 -2
- package/dist/components/forms/date-picker/date-input.class.d.ts +10 -11
- package/dist/components/forms/date-picker/date-input.class.js +4 -3
- package/dist/components/forms/date-picker/date-input.styles.js +1 -1
- package/dist/components/forms/date-picker/date-picker.class.d.ts +6 -0
- package/dist/components/forms/date-picker/date-picker.class.js +1 -1
- package/dist/components/forms/date-picker/date-picker.styles.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.js +1 -1
- package/dist/components/forms/input/input.styles.js +1 -1
- package/dist/components/forms/input/time-input.class.d.ts +1 -1
- package/dist/components/forms/input/time-input.class.js +1 -1
- package/dist/components/forms/input/time-input.styles.js +1 -1
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts +5 -5
- package/dist/components/forms/locale-picker/locale-picker.class.js +1 -1
- package/dist/components/forms/otp-input/otp-input.class.js +1 -0
- package/dist/components/forms/phone-input/phone-input.class.d.ts +7 -9
- package/dist/components/forms/phone-input/phone-input.class.js +6 -5
- package/dist/components/forms/phone-input/phone-input.styles.js +1 -1
- package/dist/components/forms/radio/radio-group.class.d.ts +4 -4
- package/dist/components/forms/radio/radio-group.class.js +1 -1
- package/dist/components/forms/radio/radio.class.d.ts +11 -19
- package/dist/components/forms/radio/radio.class.js +2 -2
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts +3 -5
- package/dist/components/forms/rubric-form/rubric-form.class.js +1 -1
- package/dist/components/forms/select/select.class.d.ts +5 -7
- package/dist/components/forms/select/select.class.js +3 -2
- package/dist/components/forms/slider/slider.class.d.ts +3 -3
- package/dist/components/forms/slider/slider.class.js +1 -1
- package/dist/components/forms/slider/slider.styles.js +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
- package/dist/components/forms/switch/switch.class.d.ts +11 -36
- package/dist/components/forms/switch/switch.class.js +2 -2
- package/dist/components/forms/textarea/textarea.class.js +1 -0
- package/dist/components/forms/textarea/textarea.styles.js +1 -1
- package/dist/components/forms/time-range/time-range.class.d.ts +5 -3
- package/dist/components/forms/time-range/time-range.class.js +1 -1
- package/dist/components/forms/time-range/time-range.styles.js +1 -1
- package/dist/components/forms/toggle-group/toggle-group.class.d.ts +2 -2
- package/dist/components/forms/toggle-group/toggle-group.class.js +1 -1
- package/dist/components/forms/token-input/token-input.class.d.ts +3 -3
- package/dist/components/forms/token-input/token-input.class.js +1 -1
- package/dist/components/layout/app-rail/app-rail-item.class.js +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +2 -2
- package/dist/components/layout/app-rail/app-rail.class.js +1 -1
- package/dist/components/layout/breadcrumb/breadcrumb-item.class.js +1 -1
- package/dist/components/layout/card/card.class.js +1 -1
- package/dist/components/layout/carousel/carousel.class.js +1 -1
- package/dist/components/layout/command-palette/command-palette.class.d.ts +6 -2
- package/dist/components/layout/command-palette/command-palette.class.js +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +1 -1
- package/dist/components/layout/details/accordion.class.js +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.d.ts +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.js +1 -1
- package/dist/components/layout/drilldown-panel/drilldown-panel.class.js +2 -2
- package/dist/components/layout/filter-bar/filter-bar.class.d.ts +3 -2
- package/dist/components/layout/filter-bar/filter-bar.class.js +18 -15
- package/dist/components/layout/filter-bar/filter-bar.styles.js +1 -1
- 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/multi-split/multi-split.class.d.ts +1 -1
- package/dist/components/layout/multi-split/multi-split.class.js +1 -1
- package/dist/components/layout/navigation-menu-item/navigation-menu-item.class.js +1 -1
- package/dist/components/layout/page/page.class.d.ts +1 -1
- package/dist/components/layout/page/page.class.js +1 -1
- package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +1 -1
- package/dist/components/layout/responsive-panel/responsive-panel.class.js +1 -1
- package/dist/components/layout/scroller/scroller.class.js +1 -1
- package/dist/components/layout/segmented/segmented.class.js +1 -1
- package/dist/components/layout/stepper/stepper.class.js +2 -2
- package/dist/components/layout/tab-group/tab-group.class.js +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.js +1 -1
- package/dist/components/layout/widget/widget.class.d.ts +1 -1
- package/dist/components/layout/widget/widget.class.js +3 -3
- package/dist/components/media/drop-zone/drop-zone.class.d.ts +10 -0
- package/dist/components/media/drop-zone/drop-zone.class.js +2 -2
- package/dist/components/media/file-input/file-input.class.d.ts +3 -3
- package/dist/components/media/file-input/file-input.class.js +2 -2
- package/dist/components/media/file-input/file-intake.d.ts +5 -1
- package/dist/components/media/file-input/file-intake.js +1 -1
- package/dist/components/media/flag/flag.class.js +1 -1
- package/dist/components/media/image-viewer/image-viewer.styles.js +1 -1
- package/dist/components/media/lightbox/lightbox.class.js +1 -1
- package/dist/components/media/map/map.class.js +2 -2
- package/dist/components/media/qr-code/qr-code-loader.js +1 -1
- package/dist/components/media/qr-code/qr-code.class.js +1 -1
- package/dist/components/media/video/video.class.js +3 -3
- package/dist/components/media/video-playlist/video-playlist.class.js +1 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +2 -2
- package/dist/components/media/zoomable-frame/zoomable-frame.class.js +1 -1
- package/dist/components/overlays/alert/alert.class.d.ts +3 -3
- package/dist/components/overlays/alert/alert.class.js +1 -1
- package/dist/components/overlays/badge/badge.class.d.ts +2 -2
- package/dist/components/overlays/badge/badge.class.js +1 -1
- package/dist/components/overlays/badge/tag.class.d.ts +3 -1
- package/dist/components/overlays/badge/tag.class.js +3 -2
- package/dist/components/overlays/badge/tag.styles.js +1 -1
- package/dist/components/overlays/callout/callout.class.d.ts +2 -2
- package/dist/components/overlays/callout/callout.class.js +1 -1
- package/dist/components/overlays/chip/chip.class.d.ts +4 -2
- package/dist/components/overlays/chip/chip.class.js +2 -2
- package/dist/components/overlays/dialog/dialog.class.d.ts +1 -1
- package/dist/components/overlays/dialog/dialog.class.js +1 -1
- package/dist/components/overlays/overlay/overlay-shared.d.ts +9 -0
- package/dist/components/overlays/overlay/overlay-shared.js +1 -1
- package/dist/components/overlays/overlay/popover.class.d.ts +2 -2
- package/dist/components/overlays/overlay/popover.class.js +1 -1
- package/dist/components/overlays/overlay/tooltip.class.d.ts +1 -1
- package/dist/components/overlays/overlay/tooltip.class.js +1 -1
- package/dist/components/overlays/progress/progress-bar.class.d.ts +5 -22
- package/dist/components/overlays/progress/progress-bar.class.js +4 -4
- package/dist/components/overlays/progress/progress-base.d.ts +25 -0
- package/dist/components/overlays/progress/progress-base.js +1 -0
- package/dist/components/overlays/progress/progress-ring.class.d.ts +3 -24
- package/dist/components/overlays/progress/progress-ring.class.js +4 -4
- package/dist/components/overlays/rating/rating.class.d.ts +3 -3
- package/dist/components/overlays/rating/rating.class.js +1 -1
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.d.ts +4 -2
- package/dist/components/retrieval/chunk-inspector/chunk-inspector.class.js +4 -4
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +1 -1
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.d.ts +1 -1
- package/dist/components/retrieval/graph/graph-canvas.js +1 -1
- package/dist/components/retrieval/graph/graph-model.js +1 -1
- package/dist/components/retrieval/graph/graph.class.d.ts +1 -3
- package/dist/components/retrieval/graph/graph.class.js +1 -1
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts +1 -1
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.js +2 -2
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.d.ts +1 -1
- package/dist/components/retrieval/knowledge-base/knowledge-base.class.js +2 -2
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +1 -1
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +1 -0
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js +2 -1
- package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts +6 -2
- package/dist/components/retrieval/memory-panel/memory-panel.class.js +2 -2
- package/dist/components/retrieval/memory-panel/memory-panel.styles.js +1 -1
- package/dist/components/retrieval/node-palette/node-palette.class.js +1 -1
- package/dist/components/retrieval/path-strip/path-strip.class.js +1 -1
- package/dist/components/retrieval/provenance-panel/provenance-panel.class.d.ts +1 -1
- package/dist/components/retrieval/research-progress/research-progress.class.d.ts +5 -1
- package/dist/components/retrieval/research-progress/research-progress.class.js +3 -3
- package/dist/components/retrieval/research-progress/research-progress.d.ts +1 -1
- package/dist/components/retrieval/research-progress/research-progress.js +1 -1
- package/dist/components/retrieval/research-progress/research-progress.styles.js +1 -1
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.d.ts +6 -2
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.js +2 -2
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.js +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +2 -2
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +3 -2
- package/dist/components/retrieval/retrieval-search/retrieval-search.class.js +3 -3
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts +6 -2
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +2 -2
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.styles.js +1 -1
- package/dist/components/retrieval/source-picker/source-picker.class.js +1 -1
- package/dist/components/utility/copy-button/copy-button.class.js +1 -1
- package/dist/components/utility/diff-view/diff-view.class.js +1 -1
- package/dist/components/utility/export-button/export-button.class.d.ts +1 -1
- package/dist/components/utility/export-button/export-button.class.js +1 -1
- package/dist/components/utility/icon/dompurify-loader.js +1 -1
- package/dist/components/utility/json-viewer/json-viewer.class.js +2 -2
- package/dist/components/utility/known-date/known-date.class.js +1 -1
- package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
- package/dist/components/utility/mutation-observer/mutation-observer.class.js +1 -1
- package/dist/components/utility/random-content/random-content.class.d.ts +1 -1
- package/dist/components/utility/random-content/random-content.class.js +1 -1
- package/dist/components/utility/tour/tour.class.d.ts +1 -1
- package/dist/components/utility/tour/tour.class.js +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.styles.js +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +3 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +1 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.class.d.ts +3 -1
- package/dist/components/viewers/contact-viewer/contact-viewer.class.js +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts +2 -2
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js +4 -18
- package/dist/components/viewers/csv-viewer/csv-viewer.styles.js +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +2 -2
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +4 -18
- package/dist/components/viewers/dataset-viewer/dataset-viewer.styles.js +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.d.ts +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.js +3 -16
- package/dist/components/viewers/document-viewer/ooxml-part-guard.js +1 -0
- package/dist/components/viewers/docx-viewer/docx-loader.js +1 -1
- package/dist/components/viewers/docx-viewer/docx-resource-guard.js +1 -1
- package/dist/components/viewers/docx-viewer/docx-viewer.class.d.ts +3 -3
- package/dist/components/viewers/docx-viewer/docx-viewer.class.js +3 -3
- package/dist/components/viewers/ebook-viewer/ebook-loader.js +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.d.ts +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +2 -1
- package/dist/components/viewers/ebook-viewer/epub-resource-guard.js +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -2
- package/dist/components/viewers/geojson-view/geojson-viewer.class.d.ts +1 -4
- package/dist/components/viewers/geojson-view/geojson-viewer.class.js +1 -1
- package/dist/components/viewers/highlight-layer/highlight-layer.class.js +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +3 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.js +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.styles.js +1 -1
- package/dist/components/viewers/notebook-viewer/dompurify-loader.js +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +1 -1
- package/dist/components/viewers/page-rail/page-rail.class.js +2 -2
- package/dist/components/viewers/passive-markup.js +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-loader.js +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +2 -2
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +4 -4
- package/dist/components/viewers/pptx-viewer/pptx-loader.js +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-resource-guard.js +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +1 -1
- package/dist/components/viewers/region-highlight-layer.js +15 -2
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +2 -2
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +4 -18
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.styles.js +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.class.d.ts +1 -1
- package/dist/components/viewers/svg-viewer/svg-viewer.class.js +2 -15
- package/dist/components/viewers/svg-viewer/svg-viewer.styles.js +1 -1
- package/dist/components/viewers/table-viewer-shared.js +15 -1
- package/dist/components/viewers/table-viewer-shared.styles.js +1 -0
- package/dist/events.d.ts +19 -18
- package/dist/framework-types.d.ts +1 -1
- package/dist/internal/accessibility-visibility.d.ts +3 -1
- package/dist/internal/accessibility-visibility.js +1 -1
- package/dist/internal/accessible-text-controller.js +1 -1
- package/dist/internal/active-element.d.ts +11 -0
- package/dist/internal/active-element.js +1 -1
- package/dist/internal/adjacent-runs.js +1 -1
- package/dist/internal/approval-wait-until.d.ts +7 -0
- package/dist/internal/approval-wait-until.js +1 -0
- package/dist/internal/aria-controls.js +1 -1
- package/dist/internal/catalog-picker.d.ts +2 -2
- package/dist/internal/catalog-picker.js +1 -1
- package/dist/internal/composed-tree.d.ts +18 -0
- package/dist/internal/composed-tree.js +1 -1
- package/dist/internal/copy-feedback.js +1 -0
- package/dist/internal/css-length.js +1 -1
- package/dist/internal/css-motion-time.js +1 -1
- package/dist/internal/css-number.js +1 -0
- package/dist/internal/default-strings.generated.js +1 -1
- package/dist/internal/deferred-focus-return.d.ts +33 -0
- package/dist/internal/deferred-focus-return.js +1 -1
- package/dist/internal/fixed-containing-block.js +1 -1
- package/dist/internal/form-associated.d.ts +38 -2
- package/dist/internal/form-associated.js +1 -1
- package/dist/internal/form-control-element.d.ts +13 -0
- package/dist/internal/form-control-element.js +1 -0
- package/dist/internal/form-control.styles.js +1 -1
- package/dist/internal/inherited-attribute-hub.js +1 -1
- package/dist/internal/locale-loaders.generated.js +1 -1
- package/dist/internal/localization-types.d.ts +1 -1
- package/dist/internal/localization.js +1 -1
- package/dist/internal/modal-surface-controller.js +1 -1
- package/dist/internal/object-guards.js +1 -1
- package/dist/internal/optional-peer-capabilities.d.ts +3 -1
- package/dist/internal/optional-peer-capabilities.js +1 -1
- package/dist/internal/orientation-breakpoint.js +1 -1
- package/dist/internal/overlay-manager.d.ts +6 -1
- package/dist/internal/overlay-manager.js +1 -1
- package/dist/internal/overlay-stack.d.ts +7 -3
- package/dist/internal/overlay-stack.js +1 -1
- package/dist/internal/package-metadata.js +1 -1
- package/dist/internal/persisted-restore.js +1 -1
- package/dist/internal/popup-controller.js +1 -0
- package/dist/internal/rendered-tree-traversal.d.ts +3 -1
- package/dist/internal/rendered-tree-traversal.js +1 -1
- package/dist/internal/retry-forwarder.js +1 -0
- package/dist/internal/roving-toolbar.js +1 -1
- package/dist/internal/scoped-definitions.generated.js +1 -1
- package/dist/internal/score-tiers.d.ts +4 -0
- package/dist/internal/score-tiers.js +1 -0
- package/dist/internal/semantic-variant.d.ts +7 -0
- package/dist/internal/semantic-variant.js +1 -0
- package/dist/internal/shared-unions.d.ts +1 -1
- package/dist/internal/viewer-search.js +1 -1
- package/dist/lyra.d.ts +1 -1
- package/dist/testing/happy-dom-shims.d.ts +18 -0
- package/dist/testing/happy-dom-shims.js +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.js +1 -1
- package/llms/components/lr-accordion-item.md +1 -1
- package/llms/components/lr-accordion.md +1 -1
- package/llms/components/lr-alert.md +2 -2
- package/llms/components/lr-app-rail-group.md +1 -1
- package/llms/components/lr-app-rail-item.md +1 -1
- package/llms/components/lr-app-rail.md +1 -1
- package/llms/components/lr-attachment-chip.md +1 -10
- package/llms/components/lr-attachment-trigger.md +0 -10
- package/llms/components/lr-avatar.md +4 -8
- package/llms/components/lr-badge.md +16 -20
- package/llms/components/lr-box-plot.md +1 -1
- package/llms/components/lr-breadcrumb-item.md +1 -1
- package/llms/components/lr-breadcrumb.md +1 -1
- package/llms/components/lr-button-group.md +1 -1
- package/llms/components/lr-button.md +1 -1
- package/llms/components/lr-calendar.md +1 -1
- package/llms/components/lr-callout.md +3 -13
- package/llms/components/lr-card.md +1 -1
- package/llms/components/lr-carousel-item.md +1 -1
- package/llms/components/lr-carousel.md +1 -1
- package/llms/components/lr-chart.md +5 -7
- package/llms/components/lr-checkbox-group.md +1 -1
- package/llms/components/lr-checkbox.md +2 -1
- package/llms/components/lr-chip.md +3 -17
- package/llms/components/lr-chunk-inspector.md +2 -1
- package/llms/components/lr-citation-badge.md +2 -2
- package/llms/components/lr-code-block.md +0 -10
- package/llms/components/lr-code-editor.md +1 -1
- package/llms/components/lr-color-picker.md +1 -1
- package/llms/components/lr-combobox.md +6 -3
- package/llms/components/lr-command-palette.md +5 -2
- package/llms/components/lr-commit-card.md +1 -3
- package/llms/components/lr-condition-builder.md +1 -1
- package/llms/components/lr-confirm-bar.md +7 -13
- package/llms/components/lr-connector-manager.md +3 -1
- package/llms/components/lr-context-inspector.md +1 -1
- package/llms/components/lr-context-meter.md +1 -1
- package/llms/components/lr-control-group.md +1 -1
- package/llms/components/lr-copy-button.md +8 -10
- package/llms/components/lr-country-picker.md +1 -1
- package/llms/components/lr-currency-picker.md +1 -1
- package/llms/components/lr-dashboard-grid.md +1 -1
- package/llms/components/lr-data-grid.md +1 -1
- package/llms/components/lr-date-input.md +1 -1
- package/llms/components/lr-date-picker.md +11 -4
- package/llms/components/lr-details.md +1 -1
- package/llms/components/lr-dialog.md +8 -31
- package/llms/components/lr-diff-view.md +1 -1
- package/llms/components/lr-divider.md +1 -1
- package/llms/components/lr-dock-panel.md +1 -1
- package/llms/components/lr-document-library.md +1 -1
- package/llms/components/lr-drawer.md +1 -13
- package/llms/components/lr-drilldown-panel.md +1 -1
- package/llms/components/lr-drop-zone.md +4 -0
- package/llms/components/lr-dropdown-item.md +1 -1
- package/llms/components/lr-ebook-viewer.md +4 -3
- package/llms/components/lr-emoji-picker.md +1 -1
- package/llms/components/lr-entity-chip.md +2 -2
- package/llms/components/lr-env-list.md +1 -1
- package/llms/components/lr-eval-dataset.md +4 -19
- package/llms/components/lr-export-button.md +3 -3
- package/llms/components/lr-file-icon.md +0 -5
- package/llms/components/lr-file-input.md +3 -5
- package/llms/components/lr-file-tree.md +1 -1
- package/llms/components/lr-filter-bar.md +5 -1
- package/llms/components/lr-flag.md +1 -2
- package/llms/components/lr-flow-canvas.md +1 -1
- package/llms/components/lr-flow-controls.md +1 -1
- package/llms/components/lr-flow-minimap.md +2 -2
- package/llms/components/lr-flow-node.md +1 -1
- package/llms/components/lr-flow-run-status.md +1 -1
- package/llms/components/lr-format-bytes.md +2 -3
- package/llms/components/lr-format-date.md +2 -3
- package/llms/components/lr-format-number.md +1 -1
- package/llms/components/lr-funnel.md +1 -1
- package/llms/components/lr-gauge.md +1 -1
- package/llms/components/lr-generation-metrics.md +1 -1
- package/llms/components/lr-graph-query-builder.md +1 -1
- package/llms/components/lr-heatmap.md +1 -1
- package/llms/components/lr-icon-button.md +1 -1
- package/llms/components/lr-icon.md +1 -1
- package/llms/components/lr-input.md +1 -1
- package/llms/components/lr-intersection-observer.md +1 -1
- package/llms/components/lr-json-viewer.md +1 -1
- package/llms/components/lr-knowledge-graph-explorer.md +2 -2
- package/llms/components/lr-known-date.md +1 -1
- package/llms/components/lr-lite-chart.md +3 -4
- package/llms/components/lr-live-region.md +1 -1
- package/llms/components/lr-locale-picker.md +1 -1
- package/llms/components/lr-map.md +1 -3
- package/llms/components/lr-media-card.md +1 -10
- package/llms/components/lr-memory-panel.md +2 -0
- package/llms/components/lr-mention-popover.md +3 -3
- package/llms/components/lr-menu-item.md +1 -1
- package/llms/components/lr-menu-label.md +1 -1
- package/llms/components/lr-menu.md +1 -1
- package/llms/components/lr-menubar-item.md +1 -1
- package/llms/components/lr-menubar.md +1 -1
- package/llms/components/lr-message-actions.md +1 -11
- package/llms/components/lr-message-parts.md +3 -5
- package/llms/components/lr-model-select.md +2 -4
- package/llms/components/lr-multi-split.md +1 -1
- package/llms/components/lr-mutation-observer.md +2 -2
- package/llms/components/lr-native-time-input.md +1 -1
- package/llms/components/lr-navigation-menu-item.md +1 -1
- package/llms/components/lr-navigation-menu.md +1 -1
- package/llms/components/lr-number-input.md +1 -1
- package/llms/components/lr-option.md +1 -1
- package/llms/components/lr-otp-input.md +1 -1
- package/llms/components/lr-page.md +1 -1
- package/llms/components/lr-pagination.md +1 -1
- package/llms/components/lr-pan-zoom.md +1 -3
- package/llms/components/lr-permission-grant.md +3 -1
- package/llms/components/lr-phone-input.md +7 -5
- package/llms/components/lr-poll-status.md +1 -1
- package/llms/components/lr-popover.md +5 -9
- package/llms/components/lr-popup.md +1 -3
- package/llms/components/lr-progress-bar.md +2 -1
- package/llms/components/lr-progress-ring.md +4 -8
- package/llms/components/lr-prompt-input.md +3 -1
- package/llms/components/lr-prompt-studio.md +4 -4
- package/llms/components/lr-radio-button.md +2 -2
- package/llms/components/lr-radio-group.md +1 -1
- package/llms/components/lr-radio.md +3 -2
- package/llms/components/lr-random-content.md +1 -1
- package/llms/components/lr-rating.md +2 -3
- package/llms/components/lr-relative-time.md +2 -3
- package/llms/components/lr-reorder-item.md +1 -1
- package/llms/components/lr-reorder-list.md +1 -1
- package/llms/components/lr-research-progress.md +2 -0
- package/llms/components/lr-resize-observer.md +1 -1
- package/llms/components/lr-responsive-panel.md +1 -1
- package/llms/components/lr-retrieval-compare.md +2 -0
- package/llms/components/lr-retrieval-trace.md +2 -0
- package/llms/components/lr-rubric-form.md +1 -1
- package/llms/components/lr-scroller.md +1 -1
- package/llms/components/lr-segmented.md +1 -1
- package/llms/components/lr-select.md +1 -1
- package/llms/components/lr-sequence-playback.md +1 -2
- package/llms/components/lr-sequence-strip.md +1 -1
- package/llms/components/lr-signature-pad.md +1 -1
- package/llms/components/lr-skeleton.md +2 -4
- package/llms/components/lr-slider.md +1 -1
- package/llms/components/lr-sparkline.md +1 -1
- package/llms/components/lr-split-panel.md +1 -1
- package/llms/components/lr-stat.md +1 -1
- package/llms/components/lr-stepper.md +1 -1
- package/llms/components/lr-swatch-picker.md +1 -1
- package/llms/components/lr-switch.md +2 -1
- package/llms/components/lr-tab-group.md +1 -1
- package/llms/components/lr-tab-panel.md +1 -1
- package/llms/components/lr-tab.md +1 -1
- package/llms/components/lr-table.md +3 -3
- package/llms/components/lr-task-list.md +3 -3
- package/llms/components/lr-test-results.md +2 -4
- package/llms/components/lr-textarea.md +1 -1
- package/llms/components/lr-time-input.md +1 -1
- package/llms/components/lr-time-range.md +5 -4
- package/llms/components/lr-time-zone-picker.md +1 -1
- package/llms/components/lr-timeline-item.md +1 -1
- package/llms/components/lr-timeline.md +1 -1
- package/llms/components/lr-toggle-group.md +1 -1
- package/llms/components/lr-toggle.md +1 -1
- package/llms/components/lr-token-input.md +1 -1
- package/llms/components/lr-tool-approval-dialog.md +12 -10
- package/llms/components/lr-tool-call-block.md +1 -1
- package/llms/components/lr-tool-call-chip.md +1 -3
- package/llms/components/lr-tool-result-view.md +3 -3
- package/llms/components/lr-tool-timeline.md +2 -2
- package/llms/components/lr-tooltip.md +8 -11
- package/llms/components/lr-tour.md +2 -2
- package/llms/components/lr-tree-item.md +1 -1
- package/llms/components/lr-tree.md +1 -1
- package/llms/components/lr-unit-picker.md +1 -1
- package/llms/components/lr-usage-badge.md +1 -3
- package/llms/components/lr-video.md +1 -2
- package/llms/components/lr-virtual-list.md +1 -1
- package/llms/components/lr-visually-hidden.md +1 -1
- package/llms/components/lr-voice-picker.md +1 -1
- package/llms/components/lr-widget.md +1 -1
- package/llms/components/lr-word-cloud.md +1 -1
- package/llms/components/lr-zoomable-frame.md +1 -6
- package/llms/migration.md +96 -2
- package/llms/peers.md +3 -2
- package/llms/shared/ai-and-peers.md +2 -2
- package/llms/shared/events-and-types.md +4 -1
- package/llms/shared/imports-and-registration.md +2 -2
- package/llms/shared/localization-and-rtl.md +18 -18
- package/llms/shared/styles-and-tokens.md +1 -1
- package/llms/shared/testing-and-utilities.md +44 -43
- package/llms/shared.md +71 -67
- package/llms.txt +14 -12
- package/locales.json +1002 -1002
- package/package.json +16 -6879
- package/registrations.json +1 -1
- package/skills/compose-lyra-interfaces/SKILL.md +60 -0
- package/skills/compose-lyra-interfaces/agents/openai.yaml +4 -0
- package/skills/compose-lyra-interfaces/references/composition-patterns.md +77 -0
- package/skills/lyra-ui/SKILL.md +145 -0
- package/skills/lyra-ui/commands/frontend.md +37 -0
- package/skills/lyra-ui/commands/migrate.md +44 -0
- package/skills/lyra-ui/commands/new-component.md +19 -0
- package/skills/lyra-ui/commands/review.md +247 -0
- package/skills/lyra-ui/commands/update.md +30 -0
- package/skills/lyra-ui/reporting.md +137 -0
- package/custom-elements.json +0 -1
- package/dist/internal/side-effect-only.d.ts +0 -1
- package/dist/translations/am/agent-tools.js +0 -1
- package/dist/translations/am/charts.js +0 -1
- package/dist/translations/am/conversation.js +0 -1
- package/dist/translations/am/data.js +0 -1
- package/dist/translations/am/forms.js +0 -1
- package/dist/translations/am/layout.js +0 -1
- package/dist/translations/am/media.js +0 -1
- package/dist/translations/am/overlays.js +0 -1
- package/dist/translations/am/retrieval.js +0 -1
- package/dist/translations/am/shared.js +0 -1
- package/dist/translations/am/utility.js +0 -1
- package/dist/translations/am/viewers.js +0 -5
- package/dist/translations/am.js +0 -1
- package/dist/translations/ar/agent-tools.js +0 -1
- package/dist/translations/ar/charts.js +0 -1
- package/dist/translations/ar/conversation.js +0 -1
- package/dist/translations/ar/data.js +0 -1
- package/dist/translations/ar/forms.js +0 -1
- package/dist/translations/ar/layout.js +0 -1
- package/dist/translations/ar/media.js +0 -1
- package/dist/translations/ar/overlays.js +0 -1
- package/dist/translations/ar/retrieval.js +0 -1
- package/dist/translations/ar/shared.js +0 -1
- package/dist/translations/ar/utility.js +0 -1
- package/dist/translations/ar/viewers.js +0 -5
- package/dist/translations/ar.js +0 -1
- package/dist/translations/bho/agent-tools.js +0 -1
- package/dist/translations/bho/charts.js +0 -1
- package/dist/translations/bho/conversation.js +0 -1
- package/dist/translations/bho/data.js +0 -1
- package/dist/translations/bho/forms.js +0 -1
- package/dist/translations/bho/layout.js +0 -1
- package/dist/translations/bho/media.js +0 -1
- package/dist/translations/bho/overlays.js +0 -1
- package/dist/translations/bho/retrieval.js +0 -1
- package/dist/translations/bho/shared.js +0 -1
- package/dist/translations/bho/utility.js +0 -1
- package/dist/translations/bho/viewers.js +0 -5
- package/dist/translations/bho.js +0 -1
- package/dist/translations/bn/agent-tools.js +0 -1
- package/dist/translations/bn/charts.js +0 -1
- package/dist/translations/bn/conversation.js +0 -1
- package/dist/translations/bn/data.js +0 -1
- package/dist/translations/bn/forms.js +0 -1
- package/dist/translations/bn/layout.js +0 -1
- package/dist/translations/bn/media.js +0 -1
- package/dist/translations/bn/overlays.js +0 -1
- package/dist/translations/bn/retrieval.js +0 -1
- package/dist/translations/bn/shared.js +0 -1
- package/dist/translations/bn/utility.js +0 -1
- package/dist/translations/bn/viewers.js +0 -5
- package/dist/translations/bn.js +0 -1
- package/dist/translations/cs/agent-tools.js +0 -1
- package/dist/translations/cs/charts.js +0 -1
- package/dist/translations/cs/conversation.js +0 -1
- package/dist/translations/cs/data.js +0 -1
- package/dist/translations/cs/forms.js +0 -1
- package/dist/translations/cs/layout.js +0 -1
- package/dist/translations/cs/media.js +0 -1
- package/dist/translations/cs/overlays.js +0 -1
- package/dist/translations/cs/retrieval.js +0 -1
- package/dist/translations/cs/shared.js +0 -1
- package/dist/translations/cs/utility.js +0 -1
- package/dist/translations/cs/viewers.js +0 -5
- package/dist/translations/cs.js +0 -1
- package/dist/translations/da/agent-tools.js +0 -1
- package/dist/translations/da/charts.js +0 -1
- package/dist/translations/da/conversation.js +0 -1
- package/dist/translations/da/data.js +0 -1
- package/dist/translations/da/forms.js +0 -1
- package/dist/translations/da/layout.js +0 -1
- package/dist/translations/da/media.js +0 -1
- package/dist/translations/da/overlays.js +0 -1
- package/dist/translations/da/retrieval.js +0 -1
- package/dist/translations/da/shared.js +0 -1
- package/dist/translations/da/utility.js +0 -1
- package/dist/translations/da/viewers.js +0 -5
- package/dist/translations/da.js +0 -1
- package/dist/translations/de/agent-tools.js +0 -1
- package/dist/translations/de/charts.js +0 -1
- package/dist/translations/de/conversation.js +0 -1
- package/dist/translations/de/data.js +0 -1
- package/dist/translations/de/forms.js +0 -1
- package/dist/translations/de/layout.js +0 -1
- package/dist/translations/de/media.js +0 -1
- package/dist/translations/de/overlays.js +0 -1
- package/dist/translations/de/retrieval.js +0 -1
- package/dist/translations/de/shared.js +0 -1
- package/dist/translations/de/utility.js +0 -1
- package/dist/translations/de/viewers.js +0 -5
- package/dist/translations/de-CH/agent-tools.js +0 -1
- package/dist/translations/de-CH/charts.js +0 -1
- package/dist/translations/de-CH/conversation.js +0 -1
- package/dist/translations/de-CH/data.js +0 -1
- package/dist/translations/de-CH/forms.js +0 -1
- package/dist/translations/de-CH/layout.js +0 -1
- package/dist/translations/de-CH/media.js +0 -1
- package/dist/translations/de-CH/overlays.js +0 -1
- package/dist/translations/de-CH/retrieval.js +0 -1
- package/dist/translations/de-CH/shared.js +0 -1
- package/dist/translations/de-CH/utility.js +0 -1
- package/dist/translations/de-CH/viewers.js +0 -1
- package/dist/translations/de-CH.js +0 -1
- package/dist/translations/de.js +0 -1
- package/dist/translations/el/agent-tools.js +0 -1
- package/dist/translations/el/charts.js +0 -1
- package/dist/translations/el/conversation.js +0 -1
- package/dist/translations/el/data.js +0 -1
- package/dist/translations/el/forms.js +0 -1
- package/dist/translations/el/layout.js +0 -1
- package/dist/translations/el/media.js +0 -1
- package/dist/translations/el/overlays.js +0 -1
- package/dist/translations/el/retrieval.js +0 -1
- package/dist/translations/el/shared.js +0 -1
- package/dist/translations/el/utility.js +0 -1
- package/dist/translations/el/viewers.js +0 -5
- package/dist/translations/el.js +0 -1
- package/dist/translations/es/agent-tools.js +0 -1
- package/dist/translations/es/charts.js +0 -1
- package/dist/translations/es/conversation.js +0 -1
- package/dist/translations/es/data.js +0 -1
- package/dist/translations/es/forms.js +0 -1
- package/dist/translations/es/layout.js +0 -1
- package/dist/translations/es/media.js +0 -1
- package/dist/translations/es/overlays.js +0 -1
- package/dist/translations/es/retrieval.js +0 -1
- package/dist/translations/es/shared.js +0 -1
- package/dist/translations/es/utility.js +0 -1
- package/dist/translations/es/viewers.js +0 -5
- package/dist/translations/es.js +0 -1
- package/dist/translations/fa/agent-tools.js +0 -1
- package/dist/translations/fa/charts.js +0 -1
- package/dist/translations/fa/conversation.js +0 -1
- package/dist/translations/fa/data.js +0 -1
- package/dist/translations/fa/forms.js +0 -1
- package/dist/translations/fa/layout.js +0 -1
- package/dist/translations/fa/media.js +0 -1
- package/dist/translations/fa/overlays.js +0 -1
- package/dist/translations/fa/retrieval.js +0 -1
- package/dist/translations/fa/shared.js +0 -1
- package/dist/translations/fa/utility.js +0 -1
- package/dist/translations/fa/viewers.js +0 -5
- package/dist/translations/fa-AF/agent-tools.js +0 -1
- package/dist/translations/fa-AF/charts.js +0 -1
- package/dist/translations/fa-AF/conversation.js +0 -1
- package/dist/translations/fa-AF/data.js +0 -1
- package/dist/translations/fa-AF/forms.js +0 -1
- package/dist/translations/fa-AF/layout.js +0 -1
- package/dist/translations/fa-AF/media.js +0 -1
- package/dist/translations/fa-AF/overlays.js +0 -1
- package/dist/translations/fa-AF/retrieval.js +0 -1
- package/dist/translations/fa-AF/shared.js +0 -1
- package/dist/translations/fa-AF/utility.js +0 -1
- package/dist/translations/fa-AF/viewers.js +0 -5
- package/dist/translations/fa-AF.js +0 -1
- package/dist/translations/fa.js +0 -1
- package/dist/translations/fi/agent-tools.js +0 -1
- package/dist/translations/fi/charts.js +0 -1
- package/dist/translations/fi/conversation.js +0 -1
- package/dist/translations/fi/data.js +0 -1
- package/dist/translations/fi/forms.js +0 -1
- package/dist/translations/fi/layout.js +0 -1
- package/dist/translations/fi/media.js +0 -1
- package/dist/translations/fi/overlays.js +0 -1
- package/dist/translations/fi/retrieval.js +0 -1
- package/dist/translations/fi/shared.js +0 -1
- package/dist/translations/fi/utility.js +0 -1
- package/dist/translations/fi/viewers.js +0 -5
- package/dist/translations/fi.js +0 -1
- package/dist/translations/fr/agent-tools.js +0 -1
- package/dist/translations/fr/charts.js +0 -1
- package/dist/translations/fr/conversation.js +0 -1
- package/dist/translations/fr/data.js +0 -1
- package/dist/translations/fr/forms.js +0 -1
- package/dist/translations/fr/layout.js +0 -1
- package/dist/translations/fr/media.js +0 -1
- package/dist/translations/fr/overlays.js +0 -1
- package/dist/translations/fr/retrieval.js +0 -1
- package/dist/translations/fr/shared.js +0 -1
- package/dist/translations/fr/utility.js +0 -1
- package/dist/translations/fr/viewers.js +0 -5
- package/dist/translations/fr.js +0 -1
- package/dist/translations/gu/agent-tools.js +0 -1
- package/dist/translations/gu/charts.js +0 -1
- package/dist/translations/gu/conversation.js +0 -1
- package/dist/translations/gu/data.js +0 -1
- package/dist/translations/gu/forms.js +0 -1
- package/dist/translations/gu/layout.js +0 -1
- package/dist/translations/gu/media.js +0 -1
- package/dist/translations/gu/overlays.js +0 -1
- package/dist/translations/gu/retrieval.js +0 -1
- package/dist/translations/gu/shared.js +0 -1
- package/dist/translations/gu/utility.js +0 -1
- package/dist/translations/gu/viewers.js +0 -5
- package/dist/translations/gu.js +0 -1
- package/dist/translations/ha/agent-tools.js +0 -1
- package/dist/translations/ha/charts.js +0 -1
- package/dist/translations/ha/conversation.js +0 -1
- package/dist/translations/ha/data.js +0 -1
- package/dist/translations/ha/forms.js +0 -1
- package/dist/translations/ha/layout.js +0 -1
- package/dist/translations/ha/media.js +0 -1
- package/dist/translations/ha/overlays.js +0 -1
- package/dist/translations/ha/retrieval.js +0 -1
- package/dist/translations/ha/shared.js +0 -1
- package/dist/translations/ha/utility.js +0 -1
- package/dist/translations/ha/viewers.js +0 -5
- package/dist/translations/ha.js +0 -1
- package/dist/translations/he/agent-tools.js +0 -1
- package/dist/translations/he/charts.js +0 -1
- package/dist/translations/he/conversation.js +0 -1
- package/dist/translations/he/data.js +0 -1
- package/dist/translations/he/forms.js +0 -1
- package/dist/translations/he/layout.js +0 -1
- package/dist/translations/he/media.js +0 -1
- package/dist/translations/he/overlays.js +0 -1
- package/dist/translations/he/retrieval.js +0 -1
- package/dist/translations/he/shared.js +0 -1
- package/dist/translations/he/utility.js +0 -1
- package/dist/translations/he/viewers.js +0 -5
- package/dist/translations/he.js +0 -1
- package/dist/translations/hi/agent-tools.js +0 -1
- package/dist/translations/hi/charts.js +0 -1
- package/dist/translations/hi/conversation.js +0 -1
- package/dist/translations/hi/data.js +0 -1
- package/dist/translations/hi/forms.js +0 -1
- package/dist/translations/hi/layout.js +0 -1
- package/dist/translations/hi/media.js +0 -1
- package/dist/translations/hi/overlays.js +0 -1
- package/dist/translations/hi/retrieval.js +0 -1
- package/dist/translations/hi/shared.js +0 -1
- package/dist/translations/hi/utility.js +0 -1
- package/dist/translations/hi/viewers.js +0 -5
- package/dist/translations/hi.js +0 -1
- package/dist/translations/hr/agent-tools.js +0 -1
- package/dist/translations/hr/charts.js +0 -1
- package/dist/translations/hr/conversation.js +0 -1
- package/dist/translations/hr/data.js +0 -1
- package/dist/translations/hr/forms.js +0 -1
- package/dist/translations/hr/layout.js +0 -1
- package/dist/translations/hr/media.js +0 -1
- package/dist/translations/hr/overlays.js +0 -1
- package/dist/translations/hr/retrieval.js +0 -1
- package/dist/translations/hr/shared.js +0 -1
- package/dist/translations/hr/utility.js +0 -1
- package/dist/translations/hr/viewers.js +0 -5
- package/dist/translations/hr.js +0 -1
- package/dist/translations/hu/agent-tools.js +0 -1
- package/dist/translations/hu/charts.js +0 -1
- package/dist/translations/hu/conversation.js +0 -1
- package/dist/translations/hu/data.js +0 -1
- package/dist/translations/hu/forms.js +0 -1
- package/dist/translations/hu/layout.js +0 -1
- package/dist/translations/hu/media.js +0 -1
- package/dist/translations/hu/overlays.js +0 -1
- package/dist/translations/hu/retrieval.js +0 -1
- package/dist/translations/hu/shared.js +0 -1
- package/dist/translations/hu/utility.js +0 -1
- package/dist/translations/hu/viewers.js +0 -5
- package/dist/translations/hu.js +0 -1
- package/dist/translations/id/agent-tools.js +0 -1
- package/dist/translations/id/charts.js +0 -1
- package/dist/translations/id/conversation.js +0 -1
- package/dist/translations/id/data.js +0 -1
- package/dist/translations/id/forms.js +0 -1
- package/dist/translations/id/layout.js +0 -1
- package/dist/translations/id/media.js +0 -1
- package/dist/translations/id/overlays.js +0 -1
- package/dist/translations/id/retrieval.js +0 -1
- package/dist/translations/id/shared.js +0 -1
- package/dist/translations/id/utility.js +0 -1
- package/dist/translations/id/viewers.js +0 -5
- package/dist/translations/id.js +0 -1
- package/dist/translations/ig/agent-tools.js +0 -1
- package/dist/translations/ig/charts.js +0 -1
- package/dist/translations/ig/conversation.js +0 -1
- package/dist/translations/ig/data.js +0 -1
- package/dist/translations/ig/forms.js +0 -1
- package/dist/translations/ig/layout.js +0 -1
- package/dist/translations/ig/media.js +0 -1
- package/dist/translations/ig/overlays.js +0 -1
- package/dist/translations/ig/retrieval.js +0 -1
- package/dist/translations/ig/shared.js +0 -1
- package/dist/translations/ig/utility.js +0 -1
- package/dist/translations/ig/viewers.js +0 -5
- package/dist/translations/ig.js +0 -1
- package/dist/translations/it/agent-tools.js +0 -1
- package/dist/translations/it/charts.js +0 -1
- package/dist/translations/it/conversation.js +0 -1
- package/dist/translations/it/data.js +0 -1
- package/dist/translations/it/forms.js +0 -1
- package/dist/translations/it/layout.js +0 -1
- package/dist/translations/it/media.js +0 -1
- package/dist/translations/it/overlays.js +0 -1
- package/dist/translations/it/retrieval.js +0 -1
- package/dist/translations/it/shared.js +0 -1
- package/dist/translations/it/utility.js +0 -1
- package/dist/translations/it/viewers.js +0 -5
- package/dist/translations/it.js +0 -1
- package/dist/translations/ja/agent-tools.js +0 -1
- package/dist/translations/ja/charts.js +0 -1
- package/dist/translations/ja/conversation.js +0 -1
- package/dist/translations/ja/data.js +0 -1
- package/dist/translations/ja/forms.js +0 -1
- package/dist/translations/ja/layout.js +0 -1
- package/dist/translations/ja/media.js +0 -1
- package/dist/translations/ja/overlays.js +0 -1
- package/dist/translations/ja/retrieval.js +0 -1
- package/dist/translations/ja/shared.js +0 -1
- package/dist/translations/ja/utility.js +0 -1
- package/dist/translations/ja/viewers.js +0 -4
- package/dist/translations/ja.js +0 -1
- package/dist/translations/jv/agent-tools.js +0 -1
- package/dist/translations/jv/charts.js +0 -1
- package/dist/translations/jv/conversation.js +0 -1
- package/dist/translations/jv/data.js +0 -1
- package/dist/translations/jv/forms.js +0 -1
- package/dist/translations/jv/layout.js +0 -1
- package/dist/translations/jv/media.js +0 -1
- package/dist/translations/jv/overlays.js +0 -1
- package/dist/translations/jv/retrieval.js +0 -1
- package/dist/translations/jv/shared.js +0 -1
- package/dist/translations/jv/utility.js +0 -1
- package/dist/translations/jv/viewers.js +0 -5
- package/dist/translations/jv.js +0 -1
- package/dist/translations/kk/agent-tools.js +0 -1
- package/dist/translations/kk/charts.js +0 -1
- package/dist/translations/kk/conversation.js +0 -1
- package/dist/translations/kk/data.js +0 -1
- package/dist/translations/kk/forms.js +0 -1
- package/dist/translations/kk/layout.js +0 -1
- package/dist/translations/kk/media.js +0 -1
- package/dist/translations/kk/overlays.js +0 -1
- package/dist/translations/kk/retrieval.js +0 -1
- package/dist/translations/kk/shared.js +0 -1
- package/dist/translations/kk/utility.js +0 -1
- package/dist/translations/kk/viewers.js +0 -5
- package/dist/translations/kk.js +0 -1
- package/dist/translations/kn/agent-tools.js +0 -1
- package/dist/translations/kn/charts.js +0 -1
- package/dist/translations/kn/conversation.js +0 -1
- package/dist/translations/kn/data.js +0 -1
- package/dist/translations/kn/forms.js +0 -1
- package/dist/translations/kn/layout.js +0 -1
- package/dist/translations/kn/media.js +0 -1
- package/dist/translations/kn/overlays.js +0 -1
- package/dist/translations/kn/retrieval.js +0 -1
- package/dist/translations/kn/shared.js +0 -1
- package/dist/translations/kn/utility.js +0 -1
- package/dist/translations/kn/viewers.js +0 -5
- package/dist/translations/kn.js +0 -1
- package/dist/translations/ko/agent-tools.js +0 -1
- package/dist/translations/ko/charts.js +0 -1
- package/dist/translations/ko/conversation.js +0 -1
- package/dist/translations/ko/data.js +0 -1
- package/dist/translations/ko/forms.js +0 -1
- package/dist/translations/ko/layout.js +0 -1
- package/dist/translations/ko/media.js +0 -1
- package/dist/translations/ko/overlays.js +0 -1
- package/dist/translations/ko/retrieval.js +0 -1
- package/dist/translations/ko/shared.js +0 -1
- package/dist/translations/ko/utility.js +0 -1
- package/dist/translations/ko/viewers.js +0 -5
- package/dist/translations/ko.js +0 -1
- package/dist/translations/ln/agent-tools.js +0 -1
- package/dist/translations/ln/charts.js +0 -1
- package/dist/translations/ln/conversation.js +0 -1
- package/dist/translations/ln/data.js +0 -1
- package/dist/translations/ln/forms.js +0 -1
- package/dist/translations/ln/layout.js +0 -1
- package/dist/translations/ln/media.js +0 -1
- package/dist/translations/ln/overlays.js +0 -1
- package/dist/translations/ln/retrieval.js +0 -1
- package/dist/translations/ln/shared.js +0 -1
- package/dist/translations/ln/utility.js +0 -1
- package/dist/translations/ln/viewers.js +0 -5
- package/dist/translations/ln.js +0 -1
- package/dist/translations/ml/agent-tools.js +0 -1
- package/dist/translations/ml/charts.js +0 -1
- package/dist/translations/ml/conversation.js +0 -1
- package/dist/translations/ml/data.js +0 -1
- package/dist/translations/ml/forms.js +0 -1
- package/dist/translations/ml/layout.js +0 -1
- package/dist/translations/ml/media.js +0 -1
- package/dist/translations/ml/overlays.js +0 -1
- package/dist/translations/ml/retrieval.js +0 -1
- package/dist/translations/ml/shared.js +0 -1
- package/dist/translations/ml/utility.js +0 -1
- package/dist/translations/ml/viewers.js +0 -5
- package/dist/translations/ml.js +0 -1
- package/dist/translations/mr/agent-tools.js +0 -1
- package/dist/translations/mr/charts.js +0 -1
- package/dist/translations/mr/conversation.js +0 -1
- package/dist/translations/mr/data.js +0 -1
- package/dist/translations/mr/forms.js +0 -1
- package/dist/translations/mr/layout.js +0 -1
- package/dist/translations/mr/media.js +0 -1
- package/dist/translations/mr/overlays.js +0 -1
- package/dist/translations/mr/retrieval.js +0 -1
- package/dist/translations/mr/shared.js +0 -1
- package/dist/translations/mr/utility.js +0 -1
- package/dist/translations/mr/viewers.js +0 -5
- package/dist/translations/mr.js +0 -1
- package/dist/translations/ms/agent-tools.js +0 -1
- package/dist/translations/ms/charts.js +0 -1
- package/dist/translations/ms/conversation.js +0 -1
- package/dist/translations/ms/data.js +0 -1
- package/dist/translations/ms/forms.js +0 -1
- package/dist/translations/ms/layout.js +0 -1
- package/dist/translations/ms/media.js +0 -1
- package/dist/translations/ms/overlays.js +0 -1
- package/dist/translations/ms/retrieval.js +0 -1
- package/dist/translations/ms/shared.js +0 -1
- package/dist/translations/ms/utility.js +0 -1
- package/dist/translations/ms/viewers.js +0 -5
- package/dist/translations/ms.js +0 -1
- package/dist/translations/my/agent-tools.js +0 -1
- package/dist/translations/my/charts.js +0 -1
- package/dist/translations/my/conversation.js +0 -1
- package/dist/translations/my/data.js +0 -1
- package/dist/translations/my/forms.js +0 -1
- package/dist/translations/my/layout.js +0 -1
- package/dist/translations/my/media.js +0 -1
- package/dist/translations/my/overlays.js +0 -1
- package/dist/translations/my/retrieval.js +0 -1
- package/dist/translations/my/shared.js +0 -1
- package/dist/translations/my/utility.js +0 -1
- package/dist/translations/my/viewers.js +0 -5
- package/dist/translations/my.js +0 -1
- package/dist/translations/nb/agent-tools.js +0 -1
- package/dist/translations/nb/charts.js +0 -1
- package/dist/translations/nb/conversation.js +0 -1
- package/dist/translations/nb/data.js +0 -1
- package/dist/translations/nb/forms.js +0 -1
- package/dist/translations/nb/layout.js +0 -1
- package/dist/translations/nb/media.js +0 -1
- package/dist/translations/nb/overlays.js +0 -1
- package/dist/translations/nb/retrieval.js +0 -1
- package/dist/translations/nb/shared.js +0 -1
- package/dist/translations/nb/utility.js +0 -1
- package/dist/translations/nb/viewers.js +0 -5
- package/dist/translations/nb.js +0 -1
- package/dist/translations/ne/agent-tools.js +0 -1
- package/dist/translations/ne/charts.js +0 -1
- package/dist/translations/ne/conversation.js +0 -1
- package/dist/translations/ne/data.js +0 -1
- package/dist/translations/ne/forms.js +0 -1
- package/dist/translations/ne/layout.js +0 -1
- package/dist/translations/ne/media.js +0 -1
- package/dist/translations/ne/overlays.js +0 -1
- package/dist/translations/ne/retrieval.js +0 -1
- package/dist/translations/ne/shared.js +0 -1
- package/dist/translations/ne/utility.js +0 -1
- package/dist/translations/ne/viewers.js +0 -5
- package/dist/translations/ne.js +0 -1
- package/dist/translations/nl/agent-tools.js +0 -1
- package/dist/translations/nl/charts.js +0 -1
- package/dist/translations/nl/conversation.js +0 -1
- package/dist/translations/nl/data.js +0 -1
- package/dist/translations/nl/forms.js +0 -1
- package/dist/translations/nl/layout.js +0 -1
- package/dist/translations/nl/media.js +0 -1
- package/dist/translations/nl/overlays.js +0 -1
- package/dist/translations/nl/retrieval.js +0 -1
- package/dist/translations/nl/shared.js +0 -1
- package/dist/translations/nl/utility.js +0 -1
- package/dist/translations/nl/viewers.js +0 -5
- package/dist/translations/nl.js +0 -1
- package/dist/translations/nn/agent-tools.js +0 -1
- package/dist/translations/nn/charts.js +0 -1
- package/dist/translations/nn/conversation.js +0 -1
- package/dist/translations/nn/data.js +0 -1
- package/dist/translations/nn/forms.js +0 -1
- package/dist/translations/nn/layout.js +0 -1
- package/dist/translations/nn/media.js +0 -1
- package/dist/translations/nn/overlays.js +0 -1
- package/dist/translations/nn/retrieval.js +0 -1
- package/dist/translations/nn/shared.js +0 -1
- package/dist/translations/nn/utility.js +0 -1
- package/dist/translations/nn/viewers.js +0 -5
- package/dist/translations/nn.js +0 -1
- package/dist/translations/om/agent-tools.js +0 -1
- package/dist/translations/om/charts.js +0 -1
- package/dist/translations/om/conversation.js +0 -1
- package/dist/translations/om/data.js +0 -1
- package/dist/translations/om/forms.js +0 -1
- package/dist/translations/om/layout.js +0 -1
- package/dist/translations/om/media.js +0 -1
- package/dist/translations/om/overlays.js +0 -1
- package/dist/translations/om/retrieval.js +0 -1
- package/dist/translations/om/shared.js +0 -1
- package/dist/translations/om/utility.js +0 -1
- package/dist/translations/om/viewers.js +0 -5
- package/dist/translations/om.js +0 -1
- package/dist/translations/or/agent-tools.js +0 -1
- package/dist/translations/or/charts.js +0 -1
- package/dist/translations/or/conversation.js +0 -1
- package/dist/translations/or/data.js +0 -1
- package/dist/translations/or/forms.js +0 -1
- package/dist/translations/or/layout.js +0 -1
- package/dist/translations/or/media.js +0 -1
- package/dist/translations/or/overlays.js +0 -1
- package/dist/translations/or/retrieval.js +0 -1
- package/dist/translations/or/shared.js +0 -1
- package/dist/translations/or/utility.js +0 -1
- package/dist/translations/or/viewers.js +0 -5
- package/dist/translations/or.js +0 -1
- package/dist/translations/pa/agent-tools.js +0 -1
- package/dist/translations/pa/charts.js +0 -1
- package/dist/translations/pa/conversation.js +0 -1
- package/dist/translations/pa/data.js +0 -1
- package/dist/translations/pa/forms.js +0 -1
- package/dist/translations/pa/layout.js +0 -1
- package/dist/translations/pa/media.js +0 -1
- package/dist/translations/pa/overlays.js +0 -1
- package/dist/translations/pa/retrieval.js +0 -1
- package/dist/translations/pa/shared.js +0 -1
- package/dist/translations/pa/utility.js +0 -1
- package/dist/translations/pa/viewers.js +0 -5
- package/dist/translations/pa.js +0 -1
- package/dist/translations/pcm/agent-tools.js +0 -1
- package/dist/translations/pcm/charts.js +0 -1
- package/dist/translations/pcm/conversation.js +0 -1
- package/dist/translations/pcm/data.js +0 -1
- package/dist/translations/pcm/forms.js +0 -1
- package/dist/translations/pcm/layout.js +0 -1
- package/dist/translations/pcm/media.js +0 -1
- package/dist/translations/pcm/overlays.js +0 -1
- package/dist/translations/pcm/retrieval.js +0 -1
- package/dist/translations/pcm/shared.js +0 -1
- package/dist/translations/pcm/utility.js +0 -1
- package/dist/translations/pcm/viewers.js +0 -5
- package/dist/translations/pcm.js +0 -1
- package/dist/translations/pl/agent-tools.js +0 -1
- package/dist/translations/pl/charts.js +0 -1
- package/dist/translations/pl/conversation.js +0 -1
- package/dist/translations/pl/data.js +0 -1
- package/dist/translations/pl/forms.js +0 -1
- package/dist/translations/pl/layout.js +0 -1
- package/dist/translations/pl/media.js +0 -1
- package/dist/translations/pl/overlays.js +0 -1
- package/dist/translations/pl/retrieval.js +0 -1
- package/dist/translations/pl/shared.js +0 -1
- package/dist/translations/pl/utility.js +0 -1
- package/dist/translations/pl/viewers.js +0 -5
- package/dist/translations/pl.js +0 -1
- package/dist/translations/pnb/agent-tools.js +0 -1
- package/dist/translations/pnb/charts.js +0 -1
- package/dist/translations/pnb/conversation.js +0 -1
- package/dist/translations/pnb/data.js +0 -1
- package/dist/translations/pnb/forms.js +0 -1
- package/dist/translations/pnb/layout.js +0 -1
- package/dist/translations/pnb/media.js +0 -1
- package/dist/translations/pnb/overlays.js +0 -1
- package/dist/translations/pnb/retrieval.js +0 -1
- package/dist/translations/pnb/shared.js +0 -1
- package/dist/translations/pnb/utility.js +0 -1
- package/dist/translations/pnb/viewers.js +0 -5
- package/dist/translations/pnb.js +0 -1
- package/dist/translations/ps/agent-tools.js +0 -1
- package/dist/translations/ps/charts.js +0 -1
- package/dist/translations/ps/conversation.js +0 -1
- package/dist/translations/ps/data.js +0 -1
- package/dist/translations/ps/forms.js +0 -1
- package/dist/translations/ps/layout.js +0 -1
- package/dist/translations/ps/media.js +0 -1
- package/dist/translations/ps/overlays.js +0 -1
- package/dist/translations/ps/retrieval.js +0 -1
- package/dist/translations/ps/shared.js +0 -1
- package/dist/translations/ps/utility.js +0 -1
- package/dist/translations/ps/viewers.js +0 -5
- package/dist/translations/ps.js +0 -1
- package/dist/translations/pt-BR/agent-tools.js +0 -1
- package/dist/translations/pt-BR/charts.js +0 -1
- package/dist/translations/pt-BR/conversation.js +0 -1
- package/dist/translations/pt-BR/data.js +0 -1
- package/dist/translations/pt-BR/forms.js +0 -1
- package/dist/translations/pt-BR/layout.js +0 -1
- package/dist/translations/pt-BR/media.js +0 -1
- package/dist/translations/pt-BR/overlays.js +0 -1
- package/dist/translations/pt-BR/retrieval.js +0 -1
- package/dist/translations/pt-BR/shared.js +0 -1
- package/dist/translations/pt-BR/utility.js +0 -1
- package/dist/translations/pt-BR/viewers.js +0 -5
- package/dist/translations/pt-BR.js +0 -1
- package/dist/translations/pt-PT/agent-tools.js +0 -1
- package/dist/translations/pt-PT/charts.js +0 -1
- package/dist/translations/pt-PT/conversation.js +0 -1
- package/dist/translations/pt-PT/data.js +0 -1
- package/dist/translations/pt-PT/forms.js +0 -1
- package/dist/translations/pt-PT/layout.js +0 -1
- package/dist/translations/pt-PT/media.js +0 -1
- package/dist/translations/pt-PT/overlays.js +0 -1
- package/dist/translations/pt-PT/retrieval.js +0 -1
- package/dist/translations/pt-PT/shared.js +0 -1
- package/dist/translations/pt-PT/utility.js +0 -1
- package/dist/translations/pt-PT/viewers.js +0 -5
- package/dist/translations/pt-PT.js +0 -1
- package/dist/translations/ro/agent-tools.js +0 -1
- package/dist/translations/ro/charts.js +0 -1
- package/dist/translations/ro/conversation.js +0 -1
- package/dist/translations/ro/data.js +0 -1
- package/dist/translations/ro/forms.js +0 -1
- package/dist/translations/ro/layout.js +0 -1
- package/dist/translations/ro/media.js +0 -1
- package/dist/translations/ro/overlays.js +0 -1
- package/dist/translations/ro/retrieval.js +0 -1
- package/dist/translations/ro/shared.js +0 -1
- package/dist/translations/ro/utility.js +0 -1
- package/dist/translations/ro/viewers.js +0 -5
- package/dist/translations/ro.js +0 -1
- package/dist/translations/ru/agent-tools.js +0 -1
- package/dist/translations/ru/charts.js +0 -1
- package/dist/translations/ru/conversation.js +0 -1
- package/dist/translations/ru/data.js +0 -1
- package/dist/translations/ru/forms.js +0 -1
- package/dist/translations/ru/layout.js +0 -1
- package/dist/translations/ru/media.js +0 -1
- package/dist/translations/ru/overlays.js +0 -1
- package/dist/translations/ru/retrieval.js +0 -1
- package/dist/translations/ru/shared.js +0 -1
- package/dist/translations/ru/utility.js +0 -1
- package/dist/translations/ru/viewers.js +0 -5
- package/dist/translations/ru.js +0 -1
- package/dist/translations/sd/agent-tools.js +0 -1
- package/dist/translations/sd/charts.js +0 -1
- package/dist/translations/sd/conversation.js +0 -1
- package/dist/translations/sd/data.js +0 -1
- package/dist/translations/sd/forms.js +0 -1
- package/dist/translations/sd/layout.js +0 -1
- package/dist/translations/sd/media.js +0 -1
- package/dist/translations/sd/overlays.js +0 -1
- package/dist/translations/sd/retrieval.js +0 -1
- package/dist/translations/sd/shared.js +0 -1
- package/dist/translations/sd/utility.js +0 -1
- package/dist/translations/sd/viewers.js +0 -5
- package/dist/translations/sd.js +0 -1
- package/dist/translations/sl/agent-tools.js +0 -1
- package/dist/translations/sl/charts.js +0 -1
- package/dist/translations/sl/conversation.js +0 -1
- package/dist/translations/sl/data.js +0 -1
- package/dist/translations/sl/forms.js +0 -1
- package/dist/translations/sl/layout.js +0 -1
- package/dist/translations/sl/media.js +0 -1
- package/dist/translations/sl/overlays.js +0 -1
- package/dist/translations/sl/retrieval.js +0 -1
- package/dist/translations/sl/shared.js +0 -1
- package/dist/translations/sl/utility.js +0 -1
- package/dist/translations/sl/viewers.js +0 -5
- package/dist/translations/sl.js +0 -1
- package/dist/translations/su/agent-tools.js +0 -1
- package/dist/translations/su/charts.js +0 -1
- package/dist/translations/su/conversation.js +0 -1
- package/dist/translations/su/data.js +0 -1
- package/dist/translations/su/forms.js +0 -1
- package/dist/translations/su/layout.js +0 -1
- package/dist/translations/su/media.js +0 -1
- package/dist/translations/su/overlays.js +0 -1
- package/dist/translations/su/retrieval.js +0 -1
- package/dist/translations/su/shared.js +0 -1
- package/dist/translations/su/utility.js +0 -1
- package/dist/translations/su/viewers.js +0 -5
- package/dist/translations/su.js +0 -1
- package/dist/translations/sv/agent-tools.js +0 -1
- package/dist/translations/sv/charts.js +0 -1
- package/dist/translations/sv/conversation.js +0 -1
- package/dist/translations/sv/data.js +0 -1
- package/dist/translations/sv/forms.js +0 -1
- package/dist/translations/sv/layout.js +0 -1
- package/dist/translations/sv/media.js +0 -1
- package/dist/translations/sv/overlays.js +0 -1
- package/dist/translations/sv/retrieval.js +0 -1
- package/dist/translations/sv/shared.js +0 -1
- package/dist/translations/sv/utility.js +0 -1
- package/dist/translations/sv/viewers.js +0 -5
- package/dist/translations/sv.js +0 -1
- package/dist/translations/sw/agent-tools.js +0 -1
- package/dist/translations/sw/charts.js +0 -1
- package/dist/translations/sw/conversation.js +0 -1
- package/dist/translations/sw/data.js +0 -1
- package/dist/translations/sw/forms.js +0 -1
- package/dist/translations/sw/layout.js +0 -1
- package/dist/translations/sw/media.js +0 -1
- package/dist/translations/sw/overlays.js +0 -1
- package/dist/translations/sw/retrieval.js +0 -1
- package/dist/translations/sw/shared.js +0 -1
- package/dist/translations/sw/utility.js +0 -1
- package/dist/translations/sw/viewers.js +0 -5
- package/dist/translations/sw.js +0 -1
- package/dist/translations/ta/agent-tools.js +0 -1
- package/dist/translations/ta/charts.js +0 -1
- package/dist/translations/ta/conversation.js +0 -1
- package/dist/translations/ta/data.js +0 -1
- package/dist/translations/ta/forms.js +0 -1
- package/dist/translations/ta/layout.js +0 -1
- package/dist/translations/ta/media.js +0 -1
- package/dist/translations/ta/overlays.js +0 -1
- package/dist/translations/ta/retrieval.js +0 -1
- package/dist/translations/ta/shared.js +0 -1
- package/dist/translations/ta/utility.js +0 -1
- package/dist/translations/ta/viewers.js +0 -5
- package/dist/translations/ta.js +0 -1
- package/dist/translations/te/agent-tools.js +0 -1
- package/dist/translations/te/charts.js +0 -1
- package/dist/translations/te/conversation.js +0 -1
- package/dist/translations/te/data.js +0 -1
- package/dist/translations/te/forms.js +0 -1
- package/dist/translations/te/layout.js +0 -1
- package/dist/translations/te/media.js +0 -1
- package/dist/translations/te/overlays.js +0 -1
- package/dist/translations/te/retrieval.js +0 -1
- package/dist/translations/te/shared.js +0 -1
- package/dist/translations/te/utility.js +0 -1
- package/dist/translations/te/viewers.js +0 -5
- package/dist/translations/te.js +0 -1
- package/dist/translations/th/agent-tools.js +0 -1
- package/dist/translations/th/charts.js +0 -1
- package/dist/translations/th/conversation.js +0 -1
- package/dist/translations/th/data.js +0 -1
- package/dist/translations/th/forms.js +0 -1
- package/dist/translations/th/layout.js +0 -1
- package/dist/translations/th/media.js +0 -1
- package/dist/translations/th/overlays.js +0 -1
- package/dist/translations/th/retrieval.js +0 -1
- package/dist/translations/th/shared.js +0 -1
- package/dist/translations/th/utility.js +0 -1
- package/dist/translations/th/viewers.js +0 -5
- package/dist/translations/th.js +0 -1
- package/dist/translations/tl/agent-tools.js +0 -1
- package/dist/translations/tl/charts.js +0 -1
- package/dist/translations/tl/conversation.js +0 -1
- package/dist/translations/tl/data.js +0 -1
- package/dist/translations/tl/forms.js +0 -1
- package/dist/translations/tl/layout.js +0 -1
- package/dist/translations/tl/media.js +0 -1
- package/dist/translations/tl/overlays.js +0 -1
- package/dist/translations/tl/retrieval.js +0 -1
- package/dist/translations/tl/shared.js +0 -1
- package/dist/translations/tl/utility.js +0 -1
- package/dist/translations/tl/viewers.js +0 -5
- package/dist/translations/tl.js +0 -1
- package/dist/translations/tr/agent-tools.js +0 -1
- package/dist/translations/tr/charts.js +0 -1
- package/dist/translations/tr/conversation.js +0 -1
- package/dist/translations/tr/data.js +0 -1
- package/dist/translations/tr/forms.js +0 -1
- package/dist/translations/tr/layout.js +0 -1
- package/dist/translations/tr/media.js +0 -1
- package/dist/translations/tr/overlays.js +0 -1
- package/dist/translations/tr/retrieval.js +0 -1
- package/dist/translations/tr/shared.js +0 -1
- package/dist/translations/tr/utility.js +0 -1
- package/dist/translations/tr/viewers.js +0 -5
- package/dist/translations/tr.js +0 -1
- package/dist/translations/uk/agent-tools.js +0 -1
- package/dist/translations/uk/charts.js +0 -1
- package/dist/translations/uk/conversation.js +0 -1
- package/dist/translations/uk/data.js +0 -1
- package/dist/translations/uk/forms.js +0 -1
- package/dist/translations/uk/layout.js +0 -1
- package/dist/translations/uk/media.js +0 -1
- package/dist/translations/uk/overlays.js +0 -1
- package/dist/translations/uk/retrieval.js +0 -1
- package/dist/translations/uk/shared.js +0 -1
- package/dist/translations/uk/utility.js +0 -1
- package/dist/translations/uk/viewers.js +0 -5
- package/dist/translations/uk.js +0 -1
- package/dist/translations/ur/agent-tools.js +0 -1
- package/dist/translations/ur/charts.js +0 -1
- package/dist/translations/ur/conversation.js +0 -1
- package/dist/translations/ur/data.js +0 -1
- package/dist/translations/ur/forms.js +0 -1
- package/dist/translations/ur/layout.js +0 -1
- package/dist/translations/ur/media.js +0 -1
- package/dist/translations/ur/overlays.js +0 -1
- package/dist/translations/ur/retrieval.js +0 -1
- package/dist/translations/ur/shared.js +0 -1
- package/dist/translations/ur/utility.js +0 -1
- package/dist/translations/ur/viewers.js +0 -5
- package/dist/translations/ur.js +0 -1
- package/dist/translations/uz/agent-tools.js +0 -1
- package/dist/translations/uz/charts.js +0 -1
- package/dist/translations/uz/conversation.js +0 -1
- package/dist/translations/uz/data.js +0 -1
- package/dist/translations/uz/forms.js +0 -1
- package/dist/translations/uz/layout.js +0 -1
- package/dist/translations/uz/media.js +0 -1
- package/dist/translations/uz/overlays.js +0 -1
- package/dist/translations/uz/retrieval.js +0 -1
- package/dist/translations/uz/shared.js +0 -1
- package/dist/translations/uz/utility.js +0 -1
- package/dist/translations/uz/viewers.js +0 -5
- package/dist/translations/uz.js +0 -1
- package/dist/translations/vi/agent-tools.js +0 -1
- package/dist/translations/vi/charts.js +0 -1
- package/dist/translations/vi/conversation.js +0 -1
- package/dist/translations/vi/data.js +0 -1
- package/dist/translations/vi/forms.js +0 -1
- package/dist/translations/vi/layout.js +0 -1
- package/dist/translations/vi/media.js +0 -1
- package/dist/translations/vi/overlays.js +0 -1
- package/dist/translations/vi/retrieval.js +0 -1
- package/dist/translations/vi/shared.js +0 -1
- package/dist/translations/vi/utility.js +0 -1
- package/dist/translations/vi/viewers.js +0 -5
- package/dist/translations/vi.js +0 -1
- package/dist/translations/yo/agent-tools.js +0 -1
- package/dist/translations/yo/charts.js +0 -1
- package/dist/translations/yo/conversation.js +0 -1
- package/dist/translations/yo/data.js +0 -1
- package/dist/translations/yo/forms.js +0 -1
- package/dist/translations/yo/layout.js +0 -1
- package/dist/translations/yo/media.js +0 -1
- package/dist/translations/yo/overlays.js +0 -1
- package/dist/translations/yo/retrieval.js +0 -1
- package/dist/translations/yo/shared.js +0 -1
- package/dist/translations/yo/utility.js +0 -1
- package/dist/translations/yo/viewers.js +0 -5
- package/dist/translations/yo.js +0 -1
- package/dist/translations/zh-CN/agent-tools.js +0 -1
- package/dist/translations/zh-CN/charts.js +0 -1
- package/dist/translations/zh-CN/conversation.js +0 -1
- package/dist/translations/zh-CN/data.js +0 -1
- package/dist/translations/zh-CN/forms.js +0 -1
- package/dist/translations/zh-CN/layout.js +0 -1
- package/dist/translations/zh-CN/media.js +0 -1
- package/dist/translations/zh-CN/overlays.js +0 -1
- package/dist/translations/zh-CN/retrieval.js +0 -1
- package/dist/translations/zh-CN/shared.js +0 -1
- package/dist/translations/zh-CN/utility.js +0 -1
- package/dist/translations/zh-CN/viewers.js +0 -5
- package/dist/translations/zh-CN.js +0 -1
- package/dist/translations/zh-TW/agent-tools.js +0 -1
- package/dist/translations/zh-TW/charts.js +0 -1
- package/dist/translations/zh-TW/conversation.js +0 -1
- package/dist/translations/zh-TW/data.js +0 -1
- package/dist/translations/zh-TW/forms.js +0 -1
- package/dist/translations/zh-TW/layout.js +0 -1
- package/dist/translations/zh-TW/media.js +0 -1
- package/dist/translations/zh-TW/overlays.js +0 -1
- package/dist/translations/zh-TW/retrieval.js +0 -1
- package/dist/translations/zh-TW/shared.js +0 -1
- package/dist/translations/zh-TW/utility.js +0 -1
- package/dist/translations/zh-TW/viewers.js +0 -5
- package/dist/translations/zh-TW.js +0 -1
- package/dist/translations/zu/agent-tools.js +0 -1
- package/dist/translations/zu/charts.js +0 -1
- package/dist/translations/zu/conversation.js +0 -1
- package/dist/translations/zu/data.js +0 -1
- package/dist/translations/zu/forms.js +0 -1
- package/dist/translations/zu/layout.js +0 -1
- package/dist/translations/zu/media.js +0 -1
- package/dist/translations/zu/overlays.js +0 -1
- package/dist/translations/zu/retrieval.js +0 -1
- package/dist/translations/zu/shared.js +0 -1
- package/dist/translations/zu/utility.js +0 -1
- package/dist/translations/zu/viewers.js +0 -5
- package/dist/translations/zu.js +0 -1
- package/vscode-css-data.json +0 -1
- package/vscode-html-data.json +0 -1
- package/web-types.json +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,svg,nothing}from"lit";import{repeat}from"lit/directives/repeat.js";import{property,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{hostAriaLabel,nextId,srOnly}from"../../../internal/a11y.js";import{
|
|
1
|
+
import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,svg,nothing}from"lit";import{repeat}from"lit/directives/repeat.js";import{property,query}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{hostAriaLabel,nextId,srOnly}from"../../../internal/a11y.js";import{shadowFocusTarget}from"../../../internal/active-element.js";import{devWarnOnce}from"../../../internal/dev-mode-attribute-warning.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{AnnouncementSinkController}from"../../../internal/announcer.js";import{resolveHeadingLevel}from"../../../internal/heading-level.js";import{chevronIcon}from"../../../internal/icons.js";import{styles}from"./task-list.styles.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_copy,LYRA_DEFAULT_details,LYRA_DEFAULT_item,LYRA_DEFAULT_items,LYRA_DEFAULT_loading,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_open,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusIncomplete,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess,LYRA_DEFAULT_taskListCompletedOfTotal,LYRA_DEFAULT_taskListLabel,LYRA_DEFAULT_taskListLimit,LYRA_DEFAULT_taskListStepCompletedAnnounce,LYRA_DEFAULT_taskListStepFailedAnnounce,LYRA_DEFAULT_taskListStepIncompleteAnnounce,LYRA_DEFAULT_taskListStepStartedAnnounce,LYRA_DEFAULT_treeNodeMoved}from"../../../internal/default-strings.generated.js";function normalizeTaskStatus(value){return value==="running"||value==="success"||value==="error"||value==="incomplete"?value:"pending"}const DEEP_NESTING_WARNING_KEY="lyra-task-list-nesting-depth",DEEP_NESTING_WARNING="<lr-task-list>: task nesting deeper than one level is ignored.",MAX_RENDERED_TASKS=500;function validTaskItems(value){const items=[];for(const item of Array.isArray(value)?value:[])try{item!==null&&typeof item=="object"&&!Array.isArray(item)&&typeof item.id=="string"&&item.id.trim().length>0&&items.push(item)}catch{}return items}const ICON_VIEW_BOX="0 0 24 24",ICON_STROKE_WIDTH="1.75";function icon(paths){return svg`
|
|
2
2
|
<svg
|
|
3
3
|
width="1em"
|
|
4
4
|
height="1em"
|
|
@@ -15,7 +15,7 @@ import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/co
|
|
|
15
15
|
<circle cx="12" cy="12" r="9"></circle>
|
|
16
16
|
<line x1="9" y1="9" x2="15" y2="15"></line>
|
|
17
17
|
<line x1="15" y1="9" x2="9" y2="15"></line>
|
|
18
|
-
`)}function incompleteIcon(){return icon(svg`<circle cx="12" cy="12" r="9"></circle><line x1="8" y1="12" x2="16" y2="12"></line>`)}const STATUS_ICON={pending:pendingIcon,running:runningIcon,success:successIcon,error:errorIcon,incomplete:incompleteIcon},STATUS_LABEL_KEY={pending:"statusPending",running:"statusRunning",success:"statusSuccess",error:"statusError",incomplete:"statusIncomplete"};class LyraTaskList extends LyraElement{constructor(){super(...arguments),this.items=[],this.reorderable=!1,this.headingLevel="
|
|
18
|
+
`)}function incompleteIcon(){return icon(svg`<circle cx="12" cy="12" r="9"></circle><line x1="8" y1="12" x2="16" y2="12"></line>`)}const STATUS_ICON={pending:pendingIcon,running:runningIcon,success:successIcon,error:errorIcon,incomplete:incompleteIcon},STATUS_LABEL_KEY={pending:"statusPending",running:"statusRunning",success:"statusSuccess",error:"statusError",incomplete:"statusIncomplete"};class LyraTaskList extends LyraElement{constructor(){super(...arguments),this.items=[],this.reorderable=!1,this.headingLevel="none",this.collapsed=!1,this.withoutCollapse=!1,this.size="m",this.frame="card",this.headerId=nextId("task-list-header"),this.bodyId=nextId("task-list-body"),this.isMounting=!0,this.limitAnnouncements=new AnnouncementSinkController(this,{eager:["polite"]}),this.previouslyTruncated=!1,this.renderedTasksTruncated=!1,this.previousStatusById=new Map,this.pendingFocusId=null,this.toggle=()=>{if(this.withoutCollapse)return;const expanded=this.collapsed;this.emit("lr-toggle-request",{expanded},{cancelable:!0}).defaultPrevented||(this.collapsed=!expanded,this.emit("lr-toggle",{expanded}))}}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,copy:LYRA_DEFAULT_copy,details:LYRA_DEFAULT_details,item:LYRA_DEFAULT_item,items:LYRA_DEFAULT_items,loading:LYRA_DEFAULT_loading,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,open:LYRA_DEFAULT_open,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,statusError:LYRA_DEFAULT_statusError,statusIncomplete:LYRA_DEFAULT_statusIncomplete,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,taskListCompletedOfTotal:LYRA_DEFAULT_taskListCompletedOfTotal,taskListLabel:LYRA_DEFAULT_taskListLabel,taskListLimit:LYRA_DEFAULT_taskListLimit,taskListStepCompletedAnnounce:LYRA_DEFAULT_taskListStepCompletedAnnounce,taskListStepFailedAnnounce:LYRA_DEFAULT_taskListStepFailedAnnounce,taskListStepIncompleteAnnounce:LYRA_DEFAULT_taskListStepIncompleteAnnounce,taskListStepStartedAnnounce:LYRA_DEFAULT_taskListStepStartedAnnounce,treeNodeMoved:LYRA_DEFAULT_treeNodeMoved}}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["items"])}static{this.styles=[LyraElement.styles,srOnly,styles]}willUpdate(changed){if(super.willUpdate(changed),changed.has("reorderable")&&!this.reorderable&&this.clearPendingReorder(),changed.has("items")){for(const item of validTaskItems(this.items))for(const child of validTaskItems(item.children))validTaskItems(child.children).length>0&&devWarnOnce(DEEP_NESTING_WARNING_KEY,DEEP_NESTING_WARNING);this.capturePendingReorderFocus()}}updated(changed){super.updated(changed);const wasMounting=this.isMounting||!this.isConnected;this.isMounting=!this.isConnected,changed.has("items")&&(this.diffAndAnnounce(wasMounting),this.confirmPendingReorder()),!wasMounting&&this.renderedTasksTruncated&&!this.previouslyTruncated&&this.limitAnnouncements.announcePolite(this.localize("taskListLimit",void 0,{count:getNumberFormat(this.effectiveLocale).format(MAX_RENDERED_TASKS)})),this.previouslyTruncated=this.renderedTasksTruncated}disconnectedCallback(){super.disconnectedCallback(),this.isMounting=!0,this.previousStatusById.clear(),this.clearPendingReorder()}connectedCallback(){const reconnecting=this.hasUpdated;this.isMounting=!0,this.previousStatusById.clear(),super.connectedCallback(),reconnecting&&this.requestUpdate("items")}adoptedCallback(){super.adoptedCallback(),this.limitAnnouncements.adopted()}renderedTaskItems(items){const rendered=[];let remaining=MAX_RENDERED_TASKS,truncated=!1;for(const item of items){if(remaining===0){truncated=!0;break}remaining--;const children=validTaskItems(item.children),visibleChildren=children.slice(0,remaining);remaining-=visibleChildren.length,visibleChildren.length<children.length&&(truncated=!0),rendered.push(visibleChildren.length===children.length?item:{...item,children:visibleChildren})}return this.renderedTasksTruncated=truncated,rendered}flattenOneLevel(items){const out=[];for(const item of validTaskItems(items)){out.push(item);for(const child of validTaskItems(item.children))out.push(child)}return out}diffAndAnnounce(firstSight){const region=this.liveRegion,nextMap=new Map;for(const item of this.flattenOneLevel(validTaskItems(this.items))){const status=normalizeTaskStatus(item.status);if(nextMap.set(item.id,status),!firstSight&®ion){const previous=this.previousStatusById.get(item.id);previous!==void 0&&previous!==status&&(status==="running"?(region.mode="polite",region.announce(this.localize("taskListStepStartedAnnounce",void 0,{label:item.label}),{force:!0})):status==="success"?(region.mode="polite",region.announce(this.localize("taskListStepCompletedAnnounce",void 0,{label:item.label}),{force:!0})):status==="error"?(region.mode="assertive",region.announce(this.localize("taskListStepFailedAnnounce",void 0,{label:item.label}),{force:!0})):status==="incomplete"&&(region.mode="polite",region.announce(this.localize("taskListStepIncompleteAnnounce",void 0,{label:item.label,status:this.localize("statusIncomplete")}),{force:!0})))}}this.previousStatusById=nextMap}idsAreUnique(){const ids=new Set;for(const item of this.flattenOneLevel(this.items)){if(item.id.trim().length===0||ids.has(item.id))return!1;ids.add(item.id)}return!0}canReorderItems(){if(!this.reorderable||!Array.isArray(this.items))return!1;const items=validTaskItems(this.items);return items.length!==this.items.length||items.some(item=>Array.isArray(item.children)&&validTaskItems(item.children).length!==item.children.length)?!1:this.idsAreUnique()}siblingItems(parentId){return parentId===null?this.items:this.items.find(item=>item.id===parentId)?.children}requestReorder(item,parentId,delta){if(!this.canReorderItems())return;const siblings=this.siblingItems(parentId);if(!siblings)return;const fromIndex=siblings.findIndex(candidate=>candidate.id===item.id),toIndex=fromIndex+delta;fromIndex<0||toIndex<0||toIndex>=siblings.length||(this.pendingReorder={id:item.id,parentId,originalSiblingIds:siblings.map(candidate=>candidate.id),targetSiblingId:siblings[toIndex].id,fromIndex,toIndex},this.pendingFocusId=null,this.emit("lr-reorder",{taskId:item.id,parentTaskId:parentId,fromIndex,toIndex}))}onItemKeyDown(event,item,parentId){event.composedPath()[0]===event.currentTarget&&(!this.canReorderItems()||!(event.ctrlKey||event.metaKey)||event.key!=="ArrowUp"&&event.key!=="ArrowDown"||(event.preventDefault(),this.requestReorder(item,parentId,event.key==="ArrowDown"?1:-1)))}capturePendingReorderFocus(){const pending=this.pendingReorder;if(!pending)return;const active=shadowFocusTarget(this);this.pendingFocusId=active instanceof HTMLElement&&active.getAttribute("part")==="item"&&active.dataset.id===pending.id?pending.id:null}confirmPendingReorder(){const pending=this.pendingReorder;if(!pending)return;const siblings=this.siblingItems(pending.parentId);if(!siblings||!this.idsAreUnique()){this.clearPendingReorder();return}const siblingIds=siblings.map(item=>item.id);if(!(siblingIds.length!==pending.originalSiblingIds.length||siblingIds.some((id,index)=>id!==pending.originalSiblingIds[index])))return;this.pendingReorder=void 0;const restoreFocus=this.pendingFocusId===pending.id;if(this.pendingFocusId=null,siblingIds[pending.toIndex]!==pending.id||siblingIds[pending.fromIndex]!==pending.targetSiblingId)return;const moved=siblings[pending.toIndex],region=this.liveRegion;region&&(region.mode="polite",region.announce(this.localize("treeNodeMoved",void 0,{label:moved.label,index:getNumberFormat(this.effectiveLocale).format(pending.toIndex+1),total:getNumberFormat(this.effectiveLocale).format(siblings.length)}),{force:!0})),restoreFocus&&this.focusItem(pending.id)}focusItem(id){[...this.shadowRoot?.querySelectorAll('[part="item"]')??[]].find(candidate=>candidate.dataset.id===id)?.focus()}clearPendingReorder(){this.pendingReorder=void 0,this.pendingFocusId=null}renderItem(item,depth,parentId,canReorder){const status=normalizeTaskStatus(item.status),children=depth===0?validTaskItems(item.children):[],hasChildren=children.length>0;return html`
|
|
19
19
|
<div
|
|
20
20
|
part="item"
|
|
21
21
|
role="listitem"
|
|
@@ -133,7 +133,7 @@ frame:LyraFrame;
|
|
|
133
133
|
/** Feature-detectable capability mirror -- the same pattern `DocumentAnchorTarget`-adopting
|
|
134
134
|
* viewers use for their own `anchorKinds` field. This component isn't document-viewer-registry-
|
|
135
135
|
* routed, so it has no registry `capabilities.anchors` entry to declare this on instead. */
|
|
136
|
-
readonly anchorKinds:readonly LyraAnchor['kind'][];private lines;private scrollTargetLineNumber;private copyStatus;private buffer;private retainedCellCount;private lineSeq;private column;private appliedContent;private readonly terminalLineKey;private readonly ansiParser;private copyTimeoutId?;private copyTimeoutWindow?;private copyTimeoutGeneration?;private copyGeneration;private pendingAnnounceText;private announceRegionEl?;private sink?;private readonly announcer;private searchQuery;private searchMatches;private searchMatchCountExact;private searchActiveIndex;connectedCallback():void;disconnectedCallback():void;adoptedCallback():void;firstUpdated(changed:PropertyValues):void;protected willUpdate(changed:PropertyValues):void;private resetBuffer;private appendLine;private effectiveMaxScrollback;private trimScrollback;private putChar;private applyChunk;private eraseLine;private writeInternal;
|
|
136
|
+
readonly anchorKinds:readonly LyraAnchor['kind'][];private linesRevision;private linesSnapshot;private get lines();private invalidateLines;private scrollTargetLineNumber;private copyStatus;private buffer;private retainedCellCount;private lineSeq;private column;private appliedContent;private readonly terminalLineKey;private readonly ansiParser;private copyTimeoutId?;private copyTimeoutWindow?;private copyTimeoutGeneration?;private copyGeneration;private pendingAnnounceText;private announceRegionEl?;private sink?;private readonly announcer;private searchQuery;private searchMatches;private searchMatchCountExact;private searchActiveIndex;connectedCallback():void;disconnectedCallback():void;adoptedCallback():void;firstUpdated(changed:PropertyValues):void;protected willUpdate(changed:PropertyValues):void;private resetBuffer;private appendLine;private effectiveMaxScrollback;private trimScrollback;private putChar;private applyChunk;private eraseLine;private writeInternal;
|
|
137
137
|
/** Append streamed output. Escape sequences may split across chunks -- the shared parser buffers
|
|
138
138
|
* partial sequences internally up to its 4,096-character ceiling, then drops an unterminated
|
|
139
139
|
* sequence and resumes from a clean boundary on the next write. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__decorate}from"tslib";import{eventCollectionSupport}from"../../../internal/collection-snapshot.js";import{tag}from"../../../internal/prefix.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{guard}from"lit/directives/guard.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{specialistTokens}from"../../../internal/specialist-tokens.styles.js";import{srOnly}from"../../../internal/a11y.js";import{Announcer,acquireAnnouncementSink}from"../../../internal/announcer.js";import{createAnsiParser}from"../../../internal/ansi.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{finiteCount}from"../../../internal/numbers.js";import{sanitizeCssColor}from"../../../internal/safe-css.js";import{snapshotLyraHighlights}from"../../../internal/highlight-collection.js";import{boundedSelectionRects,boundedSelectionText}from"../../../internal/text-quote.js";import{styles}from"./terminal.styles.js";import{advanceViewerSearchIndex,sameViewerSearchDetail,viewerSearchDetail}from"../../../internal/viewer-search.js";import{presenceTrueDefaultBooleanConverter as trueDefaultBooleanConverter}from"../../../internal/converters.js";import{writeClipboardText}from"../../../internal/clipboard.js";import{LYRA_DEFAULT_accessibleLabelSeparator,LYRA_DEFAULT_copied,LYRA_DEFAULT_copy,LYRA_DEFAULT_copyFailed,LYRA_DEFAULT_highlightWithLabel,LYRA_DEFAULT_jumpToLatest,LYRA_DEFAULT_terminalDownload,LYRA_DEFAULT_terminalHighlightLine,LYRA_DEFAULT_terminalLabel,LYRA_DEFAULT_viewerSearchActiveMatch,LYRA_DEFAULT_viewerSearchMatchCount,LYRA_DEFAULT_viewerSearchNoMatches}from"../../../internal/default-strings.generated.js";const EMPTY_CELL_STYLES={bold:!1,dim:!1,italic:!1,underline:!1,inverse:!1},ANNOUNCE_THROTTLE_MS=10,MAX_SEARCH_MATCHES=1e4,MAX_INPUT_CHARACTERS=1e6,MAX_CELLS_PER_LINE=2e4,MAX_RETAINED_CELLS=2e5,MAX_SCROLLBACK_LINES=1e4,SCROLLBACK_PRUNE_BATCH=256,TONE_BACKGROUND_VAR={accent:"var(--lr-terminal-highlight-accent-bg, var(--lr-color-brand-quiet))",success:"var(--lr-terminal-highlight-success-bg, var(--lr-color-success-quiet))",warning:"var(--lr-terminal-highlight-warning-bg, var(--lr-color-warning-quiet))",danger:"var(--lr-terminal-highlight-danger-bg, var(--lr-color-danger-quiet))",neutral:"var(--lr-terminal-highlight-neutral-bg, var(--lr-color-surface))"};function plainTextOfLine(line){return line.cells.map(c=>c.char).join("")}function groupCells(cells){const segments=[];for(const cell of cells){const last=segments[segments.length-1];last&&stylesEqual(last.styles,cell.styles)?last.text+=cell.char:segments.push({text:cell.char,styles:cell.styles})}return segments}function stylesEqual(a,b){return a.bold===b.bold&&a.dim===b.dim&&a.italic===b.italic&&a.underline===b.underline&&a.inverse===b.inverse&&a.fg===b.fg&&a.bg===b.bg}class LyraTerminal extends LyraElement{constructor(){super(...arguments),this.content="",this.maxScrollback=5e3,this.follow=!0,this.withoutWrap=!1,this.withoutCopyButton=!1,this.downloadable=!1,this.filename="terminal.log",this.announceOutput=!1,this.accessibleLabel="",this._highlights=snapshotLyraHighlights([]),this.lastHighlightsInput=this._highlights,this.activeHighlightId=null,this.size="m",this.frame="card",this.anchorKinds=["line-range"],this.
|
|
1
|
+
import{__decorate}from"tslib";import{eventCollectionSupport}from"../../../internal/collection-snapshot.js";import{tag}from"../../../internal/prefix.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{guard}from"lit/directives/guard.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{specialistTokens}from"../../../internal/specialist-tokens.styles.js";import{srOnly}from"../../../internal/a11y.js";import{Announcer,acquireAnnouncementSink}from"../../../internal/announcer.js";import{createAnsiParser}from"../../../internal/ansi.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{finiteCount}from"../../../internal/numbers.js";import{sanitizeCssColor}from"../../../internal/safe-css.js";import{snapshotLyraHighlights}from"../../../internal/highlight-collection.js";import{boundedSelectionRects,boundedSelectionText}from"../../../internal/text-quote.js";import{styles}from"./terminal.styles.js";import{advanceViewerSearchIndex,sameViewerSearchDetail,viewerSearchDetail}from"../../../internal/viewer-search.js";import{presenceTrueDefaultBooleanConverter as trueDefaultBooleanConverter}from"../../../internal/converters.js";import{writeClipboardText}from"../../../internal/clipboard.js";import{LYRA_DEFAULT_accessibleLabelSeparator,LYRA_DEFAULT_copied,LYRA_DEFAULT_copy,LYRA_DEFAULT_copyFailed,LYRA_DEFAULT_highlightWithLabel,LYRA_DEFAULT_jumpToLatest,LYRA_DEFAULT_terminalDownload,LYRA_DEFAULT_terminalHighlightLine,LYRA_DEFAULT_terminalLabel,LYRA_DEFAULT_viewerSearchActiveMatch,LYRA_DEFAULT_viewerSearchMatchCount,LYRA_DEFAULT_viewerSearchNoMatches}from"../../../internal/default-strings.generated.js";const EMPTY_CELL_STYLES={bold:!1,dim:!1,italic:!1,underline:!1,inverse:!1},ANNOUNCE_THROTTLE_MS=10,MAX_SEARCH_MATCHES=1e4,MAX_INPUT_CHARACTERS=1e6,MAX_CELLS_PER_LINE=2e4,MAX_RETAINED_CELLS=2e5,MAX_SCROLLBACK_LINES=1e4,SCROLLBACK_PRUNE_BATCH=256,TONE_BACKGROUND_VAR={accent:"var(--lr-terminal-highlight-accent-bg, var(--lr-color-brand-quiet))",success:"var(--lr-terminal-highlight-success-bg, var(--lr-color-success-quiet))",warning:"var(--lr-terminal-highlight-warning-bg, var(--lr-color-warning-quiet))",danger:"var(--lr-terminal-highlight-danger-bg, var(--lr-color-danger-quiet))",neutral:"var(--lr-terminal-highlight-neutral-bg, var(--lr-color-surface))"};function plainTextOfLine(line){return line.cells.map(c=>c.char).join("")}function groupCells(cells){const segments=[];for(const cell of cells){const last=segments[segments.length-1];last&&stylesEqual(last.styles,cell.styles)?last.text+=cell.char:segments.push({text:cell.char,styles:cell.styles})}return segments}function stylesEqual(a,b){return a.bold===b.bold&&a.dim===b.dim&&a.italic===b.italic&&a.underline===b.underline&&a.inverse===b.inverse&&a.fg===b.fg&&a.bg===b.bg}class LyraTerminal extends LyraElement{constructor(){super(...arguments),this.content="",this.maxScrollback=5e3,this.follow=!0,this.withoutWrap=!1,this.withoutCopyButton=!1,this.downloadable=!1,this.filename="terminal.log",this.announceOutput=!1,this.accessibleLabel="",this._highlights=snapshotLyraHighlights([]),this.lastHighlightsInput=this._highlights,this.activeHighlightId=null,this.size="m",this.frame="card",this.anchorKinds=["line-range"],this.linesRevision=0,this.linesSnapshot=[],this.scrollTargetLineNumber=null,this.copyStatus="rest",this.buffer=[],this.retainedCellCount=0,this.lineSeq=0,this.column=0,this.appliedContent="",this.terminalLineKey=item=>item.number,this.ansiParser=createAnsiParser(),this.copyGeneration=0,this.pendingAnnounceText="",this.announcer=new Announcer({throttleMs:ANNOUNCE_THROTTLE_MS,onFlush:text=>{this.pendingAnnounceText="",this.sink?.announce(text),this.announceRegionEl&&(this.announceRegionEl.textContent=text)}}),this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1,this.jumpToLatest=()=>{const changed=!this.follow;this.scrollToBottom(),changed&&this.emit("lr-follow-change",{following:!0})},this.onLineKeyDown=(e,h)=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),this.activateHighlight(h))},this.onCopy=()=>{this.copyOutput()},this.downloadDispatching=!1,this.onDownload=()=>{if(!this.downloadDispatching){this.downloadDispatching=!0;try{const filename=this.filename||"terminal.log";if(this.emitDownloadRequest({filename}).defaultPrevented)return;const ownerWindow=this.ownerDocument.defaultView;if(!ownerWindow)return;const blob=new ownerWindow.Blob([this.getPlainText()],{type:"text/plain"}),url=ownerWindow.URL.createObjectURL(blob),a=this.ownerDocument.createElement("a");a.href=url,a.download=filename,a.click(),ownerWindow.setTimeout(()=>ownerWindow.URL.revokeObjectURL(url),5e3)}finally{this.downloadDispatching=!1}}},this.onVisibleRangeChanged=e=>{e.stopPropagation();const atBottom=this.lines.length===0||e.detail.end>=this.lines.length-1;atBottom!==this.follow&&(this.follow=atBottom,this.emit("lr-follow-change",{following:atBottom}))},this.onViewportKeyDown=e=>{e.key==="End"&&this.jumpToLatest()},this.onViewportPointerUp=()=>{const shadowGetSelection=root=>root?.getSelection?.(),listShadow=this.renderRoot.querySelector(tag("virtual-list"))?.shadowRoot,selection=shadowGetSelection(listShadow)??shadowGetSelection(this.shadowRoot)??this.ownerDocument.getSelection();if(!selection||selection.isCollapsed)return;let range;try{range=selection.getRangeAt(0)}catch{return}const text=boundedSelectionText(range);if(text==="")return;const lineNumberOf=node=>{let el=node;for(;el;){if(el.nodeType===1){const attr=el.getAttribute("data-line-number");if(attr!==null)return Number(attr)}el=el.parentNode??el.host??null}return null},startLine=lineNumberOf(selection.anchorNode),endLine=lineNumberOf(selection.focusNode),anchor=startLine!==null&&endLine!==null?{kind:"line-range",start:Math.min(startLine,endLine),end:Math.max(startLine,endLine)}:null;let rects=Object.freeze([]);try{rects=boundedSelectionRects(range)}catch{}this.emit("lr-text-select",{text,anchor,rects})},this.renderLine=(line,highlightByLine,highlightOwnerLines,matchedLineNumbers,activeMatchLineNumber)=>{const isMatchLine=matchedLineNumbers.has(line.number),isActiveMatchLine=activeMatchLineNumber!==null&&activeMatchLineNumber===line.number,highlight=highlightByLine.get(line.number),highlightOwner=highlight&&highlightOwnerLines.get(highlight)===line.number?highlight:void 0,tone=highlight?.tone;let highlightLabel="";if(highlightOwner){const lineLabel=plainTextOfLine(line).trim()||this.localize("terminalHighlightLine",void 0,{line:getNumberFormat(this.effectiveLocale).format(line.number)});highlightLabel=highlightOwner.label?[this.localize("highlightWithLabel",void 0,{label:highlightOwner.label}),lineLabel].join(this.localize("accessibleLabelSeparator")):lineLabel}const stateParts=["line",highlightOwner?"line-interactive":"",tone?`line-highlight-${tone}`:"",isMatchLine?"line-match":"",isActiveMatchLine?"line-active-match":""].filter(Boolean).join(" ");return html`
|
|
2
2
|
<div
|
|
3
3
|
part=${stateParts}
|
|
4
4
|
dir="ltr"
|
|
@@ -13,8 +13,8 @@ import{__decorate}from"tslib";import{eventCollectionSupport}from"../../../intern
|
|
|
13
13
|
@click=${highlightOwner?()=>this.activateHighlight(highlightOwner):nothing}
|
|
14
14
|
@keydown=${highlightOwner?e=>this.onLineKeyDown(e,highlightOwner):nothing}
|
|
15
15
|
>${groupCells(line.cells).map(seg=>html`<span style=${styleMap(this.segmentStyle(seg.styles))}>${seg.text}</span>`)}</div>
|
|
16
|
-
`}}static{this.defaultStrings={...super.defaultStrings,accessibleLabelSeparator:LYRA_DEFAULT_accessibleLabelSeparator,copied:LYRA_DEFAULT_copied,copy:LYRA_DEFAULT_copy,copyFailed:LYRA_DEFAULT_copyFailed,highlightWithLabel:LYRA_DEFAULT_highlightWithLabel,jumpToLatest:LYRA_DEFAULT_jumpToLatest,terminalDownload:LYRA_DEFAULT_terminalDownload,terminalHighlightLine:LYRA_DEFAULT_terminalHighlightLine,terminalLabel:LYRA_DEFAULT_terminalLabel,viewerSearchActiveMatch:LYRA_DEFAULT_viewerSearchActiveMatch,viewerSearchMatchCount:LYRA_DEFAULT_viewerSearchMatchCount,viewerSearchNoMatches:LYRA_DEFAULT_viewerSearchNoMatches}}emitDownloadRequest(detail){return this.emit("lr-download-request",Object.freeze(detail),{cancelable:!0})}static{this.collectionSupport=eventCollectionSupport}static{this.immutableEventDetails=Object.freeze(["lr-text-select"])}static{this.styles=[LyraElement.styles,specialistTokens,styles,srOnly]}get highlights(){return this._highlights}set highlights(value){if(value===this._highlights||value===this.lastHighlightsInput)return;this.lastHighlightsInput=value;const previous=this._highlights;this._highlights=snapshotLyraHighlights(value),this.requestUpdate("highlights",previous)}get normalizedHighlights(){return this.highlights}connectedCallback(){super.connectedCallback();const ownerWindow=this.ownerDocument.defaultView;ownerWindow&&this.announcer.setTimerHost(ownerWindow),this.sink??=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this})}disconnectedCallback(){super.disconnectedCallback(),this.resetCopyFeedback(),this.cancelPendingAnnouncement(),this.sink?.release(),this.sink=void 0}adoptedCallback(){super.adoptedCallback(),this.resetCopyFeedback();const ownerWindow=this.ownerDocument.defaultView;ownerWindow&&this.announcer.setTimerHost(ownerWindow)}firstUpdated(changed){super.firstUpdated(changed),this.announceRegionEl=this.renderRoot.querySelector('[part="announcer"]')??void 0}willUpdate(changed){super.willUpdate(changed),changed.has("content")&&this.commitPendingContent(),changed.has("maxScrollback")&&this.trimScrollback(),changed.has("announceOutput")&&!this.announceOutput&&this.cancelPendingAnnouncement()}resetBuffer(){this.ansiParser.reset(),this.buffer=[],this.retainedCellCount=0,this.lineSeq=0,this.column=0,this.
|
|
17
|
-
`?this.appendLine():ch==="\r"?this.column=0:ch==="\b"?this.column=Math.max(0,this.column-1):ch===" "?this.column=Math.min(MAX_CELLS_PER_LINE,(Math.floor(this.column/8)+1)*8):this.putChar(ch,styles2)}eraseLine(mode){const line=this.buffer[this.buffer.length-1];if(!line)return;if(mode===1){const end=Math.min(this.column+1,line.cells.length);for(let index=0;index<end;index++)line.cells[index]={char:" ",styles:EMPTY_CELL_STYLES};return}const start=mode===2?0:Math.min(this.column,line.cells.length),removed=line.cells.length-start;line.cells.length=start,this.retainedCellCount-=removed}writeInternal(raw,notifySearch=!0){const previousSearch=this.searchState(),startLine=this.buffer[this.buffer.length-1],startNumber=startLine?startLine.number:this.lineSeq+1,announce=this.hasUpdated&&this.announceOutput,startText=announce&&startLine?plainTextOfLine(startLine):void 0,boundedRaw=raw.slice(0,MAX_INPUT_CHARACTERS);if(boundedRaw!==""){const segments=this.ansiParser.push(boundedRaw);for(const seg of segments)seg.eraseLine!==void 0?this.eraseLine(seg.eraseLine):this.applyChunk(seg.text,seg.styles)}if(this.trimScrollback(!1,!1),this.
|
|
16
|
+
`}}static{this.defaultStrings={...super.defaultStrings,accessibleLabelSeparator:LYRA_DEFAULT_accessibleLabelSeparator,copied:LYRA_DEFAULT_copied,copy:LYRA_DEFAULT_copy,copyFailed:LYRA_DEFAULT_copyFailed,highlightWithLabel:LYRA_DEFAULT_highlightWithLabel,jumpToLatest:LYRA_DEFAULT_jumpToLatest,terminalDownload:LYRA_DEFAULT_terminalDownload,terminalHighlightLine:LYRA_DEFAULT_terminalHighlightLine,terminalLabel:LYRA_DEFAULT_terminalLabel,viewerSearchActiveMatch:LYRA_DEFAULT_viewerSearchActiveMatch,viewerSearchMatchCount:LYRA_DEFAULT_viewerSearchMatchCount,viewerSearchNoMatches:LYRA_DEFAULT_viewerSearchNoMatches}}emitDownloadRequest(detail){return this.emit("lr-download-request",Object.freeze(detail),{cancelable:!0})}static{this.collectionSupport=eventCollectionSupport}static{this.immutableEventDetails=Object.freeze(["lr-text-select"])}static{this.styles=[LyraElement.styles,specialistTokens,styles,srOnly]}get highlights(){return this._highlights}set highlights(value){if(value===this._highlights||value===this.lastHighlightsInput)return;this.lastHighlightsInput=value;const previous=this._highlights;this._highlights=snapshotLyraHighlights(value),this.requestUpdate("highlights",previous)}get normalizedHighlights(){return this.highlights}get lines(){return this.linesRevision,this.linesSnapshot??=[...this.buffer]}invalidateLines(){this.linesSnapshot=null,this.linesRevision+=1}connectedCallback(){super.connectedCallback();const ownerWindow=this.ownerDocument.defaultView;ownerWindow&&this.announcer.setTimerHost(ownerWindow),this.sink??=acquireAnnouncementSink("polite",{document:this.ownerDocument,source:this})}disconnectedCallback(){super.disconnectedCallback(),this.resetCopyFeedback(),this.cancelPendingAnnouncement(),this.sink?.release(),this.sink=void 0}adoptedCallback(){super.adoptedCallback(),this.resetCopyFeedback();const ownerWindow=this.ownerDocument.defaultView;ownerWindow&&this.announcer.setTimerHost(ownerWindow)}firstUpdated(changed){super.firstUpdated(changed),this.announceRegionEl=this.renderRoot.querySelector('[part="announcer"]')??void 0}willUpdate(changed){super.willUpdate(changed),changed.has("content")&&this.commitPendingContent(),changed.has("maxScrollback")&&this.trimScrollback(),changed.has("announceOutput")&&!this.announceOutput&&this.cancelPendingAnnouncement()}resetBuffer(){this.ansiParser.reset(),this.buffer=[],this.retainedCellCount=0,this.lineSeq=0,this.column=0,this.invalidateLines(),this.scrollTargetLineNumber=null,this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1}appendLine(){this.buffer.push({number:++this.lineSeq,cells:[]});const max=this.effectiveMaxScrollback();this.buffer.length-max>=SCROLLBACK_PRUNE_BATCH&&this.trimScrollback(!1,!1),this.column=0}effectiveMaxScrollback(){return Math.max(1,finiteCount(this.maxScrollback,5e3,MAX_SCROLLBACK_LINES))}trimScrollback(notifySearch=!0,refresh=!0){const previousSearch=this.searchState(),max=this.effectiveMaxScrollback(),removeCount=Math.max(0,this.buffer.length-max),removed=removeCount>0?this.buffer.splice(0,removeCount):[];for(const line of removed)this.retainedCellCount-=line.cells.length;let resourceTrimmed=!1;for(;this.retainedCellCount>MAX_RETAINED_CELLS&&this.buffer.length>1;){const line=this.buffer.shift();line&&(this.retainedCellCount-=line.cells.length),resourceTrimmed=!0}(removed.length>0||resourceTrimmed)&&(refresh&&(this.invalidateLines(),this.searchQuery&&this.recomputeSearchMatches()),this.scrollTargetLineNumber!==null&&!this.buffer.some(line=>line.number===this.scrollTargetLineNumber)&&(this.scrollTargetLineNumber=this.buffer[0]?.number??null),notifySearch&&this.emitSearchChangeIfChanged(previousSearch))}putChar(ch,styles2){this.buffer.length===0&&this.appendLine();const line=this.buffer[this.buffer.length-1];if(!(this.column>=MAX_CELLS_PER_LINE)){if(this.column<line.cells.length)line.cells[this.column]={char:ch,styles:styles2};else{const before=line.cells.length;for(;line.cells.length<this.column&&line.cells.length<MAX_CELLS_PER_LINE;)line.cells.push({char:" ",styles:EMPTY_CELL_STYLES});line.cells.push({char:ch,styles:styles2}),this.retainedCellCount+=line.cells.length-before}this.column=Math.min(MAX_CELLS_PER_LINE,this.column+1)}}applyChunk(text,styles2){for(const ch of text)ch===`
|
|
17
|
+
`?this.appendLine():ch==="\r"?this.column=0:ch==="\b"?this.column=Math.max(0,this.column-1):ch===" "?this.column=Math.min(MAX_CELLS_PER_LINE,(Math.floor(this.column/8)+1)*8):this.putChar(ch,styles2)}eraseLine(mode){const line=this.buffer[this.buffer.length-1];if(!line)return;if(mode===1){const end=Math.min(this.column+1,line.cells.length);for(let index=0;index<end;index++)line.cells[index]={char:" ",styles:EMPTY_CELL_STYLES};return}const start=mode===2?0:Math.min(this.column,line.cells.length),removed=line.cells.length-start;line.cells.length=start,this.retainedCellCount-=removed}writeInternal(raw,notifySearch=!0){const previousSearch=this.searchState(),startLine=this.buffer[this.buffer.length-1],startNumber=startLine?startLine.number:this.lineSeq+1,announce=this.hasUpdated&&this.announceOutput,startText=announce&&startLine?plainTextOfLine(startLine):void 0,boundedRaw=raw.slice(0,MAX_INPUT_CHARACTERS);if(boundedRaw!==""){const segments=this.ansiParser.push(boundedRaw);for(const seg of segments)seg.eraseLine!==void 0?this.eraseLine(seg.eraseLine):this.applyChunk(seg.text,seg.styles)}if(this.trimScrollback(!1,!1),this.invalidateLines(),this.searchQuery&&this.refreshSearchMatchesFrom(startNumber),this.follow){const last=this.buffer[this.buffer.length-1];this.scrollTargetLineNumber=last?last.number:null}const visibleAnnouncement=announce?this.writtenText(startNumber,startText):"";visibleAnnouncement!==""&&(this.pendingAnnounceText+=(this.pendingAnnounceText?`
|
|
18
18
|
`:"")+visibleAnnouncement,this.announcer.announce(this.pendingAnnounceText)),notifySearch&&this.emitSearchChangeIfChanged(previousSearch)}write(chunk){this.commitPendingContent(),this.writeInternal(typeof chunk=="string"?chunk:String(chunk))}replace(content){this.content=typeof content=="string"?content:String(content),this.commitPendingContent()}commitPendingContent(){if(this.appliedContent===this.content)return;const previousSearch=this.searchState();this.cancelPendingAnnouncement(),this.resetBuffer(),this.appliedContent=this.content,this.writeInternal(this.content??"",!1),this.emitSearchChangeIfChanged(previousSearch)}clear(){const previousSearch=this.searchState();this.cancelPendingAnnouncement(),this.appliedContent=this.content,this.resetBuffer(),this.emitSearchChangeIfChanged(previousSearch)}getPlainText(){return this.buffer.map(plainTextOfLine).join(`
|
|
19
19
|
`)}writtenText(startNumber,startText){const first=this.buffer[0]?.number;if(first===void 0)return"";const pieces=[];for(let index=Math.max(0,startNumber-first);index<this.buffer.length;index+=1){const line=this.buffer[index],text=plainTextOfLine(line);line.number===startNumber&&startText!==void 0?pieces.push(text.startsWith(startText)?text.slice(startText.length):text):pieces.push(text)}return pieces.filter(piece=>piece!=="").join(`
|
|
20
20
|
`)}scrollToBottom(){this.follow=!0;const last=this.buffer[this.buffer.length-1];this.scrollTargetLineNumber=last?last.number:null}recomputeSearchMatches(){this.searchMatches=[],this.searchMatchCountExact=!0,this.searchQuery&&this.scanSearchMatches(0)}refreshSearchMatchesFrom(startNumber){const first=this.buffer[0]?.number;if(!this.searchMatchCountExact||first===void 0){this.recomputeSearchMatches();return}this.searchMatches=this.searchMatches.filter(match=>match.lineNumber>=first&&match.lineNumber<startNumber),this.scanSearchMatches(Math.max(0,startNumber-first))}scanSearchMatches(fromIndex){const needle=this.searchQuery.toLocaleLowerCase(this.effectiveLocale);for(let index=fromIndex;index<this.buffer.length;index+=1){const line=this.buffer[index],haystack=plainTextOfLine(line).toLocaleLowerCase(this.effectiveLocale);let from=0;for(;;){const idx=haystack.indexOf(needle,from);if(idx<0)break;if(this.searchMatches.push({lineNumber:line.number}),this.searchMatches.length>=MAX_SEARCH_MATCHES){this.searchMatchCountExact=!1;break}from=idx+needle.length}if(this.searchMatches.length>=MAX_SEARCH_MATCHES)break}this.searchActiveIndex>=this.searchMatches.length&&(this.searchActiveIndex=this.searchMatches.length>0?0:-1)}emitSearchChange(){this.emit("lr-search-change",this.searchState())}searchState(){return viewerSearchDetail(this.searchQuery,this.searchMatches.length,this.searchMatchCountExact,this.searchActiveIndex)}emitSearchChangeIfChanged(previous){sameViewerSearchDetail(previous,this.searchState())||this.emitSearchChange()}jumpToActiveMatch(){const match=this.searchMatches[this.searchActiveIndex];match&&(this.follow&&(this.follow=!1),this.scrollTargetLineNumber=match.lineNumber)}async search(query){const previousSearch=this.searchState();return this.searchQuery=query,this.recomputeSearchMatches(),this.searchActiveIndex=this.searchMatches.length>0?0:-1,this.emitSearchChangeIfChanged(previousSearch),this.searchActiveIndex>=0&&this.jumpToActiveMatch(),this.requestUpdate(),await this.updateComplete,this.searchMatches.length}async searchNext(){if(this.searchMatches.length===0)return!1;const previousSearch=this.searchState();return this.searchActiveIndex=advanceViewerSearchIndex(this.searchActiveIndex,this.searchMatches.length,1),this.emitSearchChangeIfChanged(previousSearch),this.jumpToActiveMatch(),!0}async searchPrevious(){if(this.searchMatches.length===0)return!1;const previousSearch=this.searchState();return this.searchActiveIndex=advanceViewerSearchIndex(this.searchActiveIndex,this.searchMatches.length,-1),this.emitSearchChangeIfChanged(previousSearch),this.jumpToActiveMatch(),!0}clearSearch(){const previousSearch=this.searchState();this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1,this.emitSearchChangeIfChanged(previousSearch),this.requestUpdate()}resolvedHighlightLines(){const perLine=new Map,owners=new Map,highlights=this.normalizedHighlights;if(this.lines.length===0||highlights.length===0)return{perLine,owners};const minLine=this.lines[0].number,maxLine=this.lines[this.lines.length-1].number;for(const highlight of highlights){if(highlight.anchor.kind!=="line-range")continue;const start=Math.max(highlight.anchor.start,minLine),end=Math.min(highlight.anchor.end??highlight.anchor.start,maxLine);for(let lineNumber=start;lineNumber<=end;lineNumber++)perLine.has(lineNumber)||(perLine.set(lineNumber,highlight),owners.has(highlight)||owners.set(highlight,lineNumber))}return{perLine,owners}}activateHighlight(h){this.activeHighlightId=h.id,this.emit("lr-highlight-activate",{highlightId:h.id})}async scrollToAnchor(target){let start;if(typeof target=="string"){const highlight=this.normalizedHighlights.find(h=>h.id===target);highlight?.anchor.kind==="line-range"&&(start=highlight.anchor.start)}else target.kind==="line-range"&&(start=target.start);return start===void 0||!this.buffer.some(line=>line.number===start)?!1:(this.follow&&(this.follow=!1),this.scrollTargetLineNumber=start,await this.updateComplete,!0)}async copyOutput(){const text=this.getPlainText(),ownerWindow=this.isConnected?this.ownerDocument.defaultView:null,generation=++this.copyGeneration;this.clearCopyTimeout(),this.copyStatus="rest";const outcome=await writeClipboardText(ownerWindow,text);if(!(!ownerWindow||!this.isCurrentCopy(generation,ownerWindow))){if(!outcome.ok){this.showCopyStatus("error",generation,ownerWindow),this.emit("lr-error"),this.emit("lr-copy-error",outcome);return}this.showCopyStatus("success",generation,ownerWindow),this.emit("lr-copy",outcome)}}isCurrentCopy(generation,ownerWindow){return this.isConnected&&generation===this.copyGeneration&&this.ownerDocument.defaultView===ownerWindow}showCopyStatus(status,generation,ownerWindow){this.copyStatus=status,this.clearCopyTimeout(),this.copyTimeoutWindow=ownerWindow,this.copyTimeoutGeneration=generation,this.copyTimeoutId=ownerWindow.setTimeout(()=>{this.copyTimeoutWindow!==ownerWindow||this.copyTimeoutGeneration!==generation||generation!==this.copyGeneration||!this.isConnected||this.ownerDocument.defaultView!==ownerWindow||(this.copyTimeoutId=void 0,this.copyTimeoutWindow=void 0,this.copyTimeoutGeneration=void 0,this.copyStatus="rest")},1500)}resetCopyFeedback(){this.copyGeneration+=1,this.clearCopyTimeout(),this.copyStatus="rest"}clearCopyTimeout(){this.copyTimeoutId!==void 0&&this.copyTimeoutWindow?.clearTimeout(this.copyTimeoutId),this.copyTimeoutId=void 0,this.copyTimeoutWindow=void 0,this.copyTimeoutGeneration=void 0}cancelPendingAnnouncement(){this.pendingAnnounceText="",this.announcer.cancel(),this.announceRegionEl&&(this.announceRegionEl.textContent="")}lineStateStyle(highlight,interactive,isMatchLine,isActiveMatchLine){return{cursor:interactive?"pointer":"",outline:isMatchLine?`var(--lr-size-2px) solid ${isActiveMatchLine?"var(--lr-terminal-search-active-outline-color, var(--lr-color-brand))":"var(--lr-terminal-search-outline-color, var(--lr-color-warning))"}`:"",background:highlight?.tone?TONE_BACKGROUND_VAR[highlight.tone]:""}}segmentStyle(s){const fg=sanitizeCssColor(s.fg)??"var(--lr-color-text)",bg=sanitizeCssColor(s.bg);return{"font-weight":s.bold?"bold":"normal",opacity:s.dim?"0.7":"1","font-style":s.italic?"italic":"normal","text-decoration":s.underline?"underline":"none",color:s.inverse?bg??"var(--lr-terminal-surface-color, var(--lr-color-surface-raised))":fg,"background-color":s.inverse?fg:bg??"transparent"}}render(){const hasToolbar=!this.withoutCopyButton||this.downloadable,ariaLabel=this.accessibleLabel||this.localize("terminalLabel"),{perLine:highlightByLine,owners:highlightOwnerLines}=this.resolvedHighlightLines(),matchedLineNumbers=new Set(this.searchMatches.map(m=>m.lineNumber)),activeMatchLineNumber=this.searchMatches[this.searchActiveIndex]?.lineNumber??null;return html`
|
|
@@ -52,4 +52,4 @@ import{__decorate}from"tslib";import{eventCollectionSupport}from"../../../intern
|
|
|
52
52
|
</button>`:nothing}
|
|
53
53
|
</div>
|
|
54
54
|
</div>
|
|
55
|
-
`}}__decorate([property()],LyraTerminal.prototype,"content",void 0),__decorate([property({type:Number,attribute:"max-scrollback"})],LyraTerminal.prototype,"maxScrollback",void 0),__decorate([property({type:Boolean,reflect:!0,converter:trueDefaultBooleanConverter})],LyraTerminal.prototype,"follow",void 0),__decorate([property({type:Boolean,attribute:"without-wrap",reflect:!0})],LyraTerminal.prototype,"withoutWrap",void 0),__decorate([property({type:Boolean,attribute:"without-copy-button",reflect:!0})],LyraTerminal.prototype,"withoutCopyButton",void 0),__decorate([property({type:Boolean,reflect:!0})],LyraTerminal.prototype,"downloadable",void 0),__decorate([property()],LyraTerminal.prototype,"filename",void 0),__decorate([property({type:Boolean,attribute:"announce-output"})],LyraTerminal.prototype,"announceOutput",void 0),__decorate([property({attribute:"aria-label"})],LyraTerminal.prototype,"accessibleLabel",void 0),__decorate([property({attribute:!1})],LyraTerminal.prototype,"highlights",null),__decorate([property({attribute:!1})],LyraTerminal.prototype,"activeHighlightId",void 0),__decorate([property({reflect:!0})],LyraTerminal.prototype,"size",void 0),__decorate([property({reflect:!0})],LyraTerminal.prototype,"frame",void 0),__decorate([state()],LyraTerminal.prototype,"
|
|
55
|
+
`}}__decorate([property()],LyraTerminal.prototype,"content",void 0),__decorate([property({type:Number,attribute:"max-scrollback"})],LyraTerminal.prototype,"maxScrollback",void 0),__decorate([property({type:Boolean,reflect:!0,converter:trueDefaultBooleanConverter})],LyraTerminal.prototype,"follow",void 0),__decorate([property({type:Boolean,attribute:"without-wrap",reflect:!0})],LyraTerminal.prototype,"withoutWrap",void 0),__decorate([property({type:Boolean,attribute:"without-copy-button",reflect:!0})],LyraTerminal.prototype,"withoutCopyButton",void 0),__decorate([property({type:Boolean,reflect:!0})],LyraTerminal.prototype,"downloadable",void 0),__decorate([property()],LyraTerminal.prototype,"filename",void 0),__decorate([property({type:Boolean,attribute:"announce-output"})],LyraTerminal.prototype,"announceOutput",void 0),__decorate([property({attribute:"aria-label"})],LyraTerminal.prototype,"accessibleLabel",void 0),__decorate([property({attribute:!1})],LyraTerminal.prototype,"highlights",null),__decorate([property({attribute:!1})],LyraTerminal.prototype,"activeHighlightId",void 0),__decorate([property({reflect:!0})],LyraTerminal.prototype,"size",void 0),__decorate([property({reflect:!0})],LyraTerminal.prototype,"frame",void 0),__decorate([state()],LyraTerminal.prototype,"linesRevision",void 0),__decorate([state()],LyraTerminal.prototype,"scrollTargetLineNumber",void 0),__decorate([state()],LyraTerminal.prototype,"copyStatus",void 0);export{LyraTerminal};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraTextWrap}from'../../../internal/shared-unions.js';import type
|
|
1
|
+
import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraTextWrap}from'../../../internal/shared-unions.js';import{type ApprovalAction,type ApprovalDecision}from'../approval-state.js';import{type ApprovalWaitUntil}from'../../../internal/approval-wait-until.js';import'../../utility/json-viewer/json-viewer.class.js';import'../../forms/button/button.class.js';
|
|
2
2
|
/** Retained name for the shared native `<textarea wrap>` vocabulary. */
|
|
3
3
|
export type ToolApprovalDialogWrap=LyraTextWrap;
|
|
4
4
|
/**
|
|
@@ -18,7 +18,9 @@ export type ToolApprovalDialogCloseReason='escape'|'backdrop'|'approve'|'deny'|'
|
|
|
18
18
|
*/
|
|
19
19
|
export type ToolApprovalDialogPending=ApprovalAction|null;
|
|
20
20
|
/** The accepted dismissal reason. */
|
|
21
|
-
export interface LyraToolApprovalDialogCloseDetail{reason:ToolApprovalDialogCloseReason;}
|
|
21
|
+
export interface LyraToolApprovalDialogCloseDetail{reason:ToolApprovalDialogCloseReason;}
|
|
22
|
+
/** The `waitUntil(promise)` resolver `lr-approve-request`/`lr-deny-request` carry, as on `<lr-confirm-bar>`. */
|
|
23
|
+
export type ToolApprovalDialogWaitUntil=ApprovalWaitUntil;export interface LyraToolApprovalDialogEventMap{'lr-approve-request':CustomEvent<{args:unknown;waitUntil:ToolApprovalDialogWaitUntil;}>;'lr-deny-request':CustomEvent<{waitUntil:ToolApprovalDialogWaitUntil;}>;'lr-decision-settled':CustomEvent<{decision:ApprovalDecision;}>;'lr-close':CustomEvent<LyraToolApprovalDialogCloseDetail>;blur:FocusEvent;focus:FocusEvent;}
|
|
22
24
|
/**
|
|
23
25
|
* `<lr-tool-approval-dialog>` — a human-in-the-loop gate: presents one
|
|
24
26
|
* proposed tool/function call (`toolName` + `args`) and blocks an agent from
|
|
@@ -102,14 +104,18 @@ export interface LyraToolApprovalDialogCloseDetail{reason:ToolApprovalDialogClos
|
|
|
102
104
|
* @customElement lr-tool-approval-dialog
|
|
103
105
|
* @slot footer - Optional supplementary content (e.g. a "remember this
|
|
104
106
|
* choice" checkbox), rendered before the built-in Deny/Edit/Approve buttons.
|
|
105
|
-
* @event lr-approve-request - The call was approved. `detail: { args }` — the
|
|
107
|
+
* @event lr-approve-request - The call was approved. `detail: { args, waitUntil }` — `args` is the
|
|
106
108
|
* current, already-parsed arguments object: the original `args` prop, or (if
|
|
107
109
|
* an edit was in progress) the user's edited-and-validated version. Cancelable: a listener
|
|
108
|
-
* calling `preventDefault()` sets `pendingAction` to `'approve'` instead of closing.
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
110
|
+
* calling `preventDefault()` sets `pendingAction` to `'approve'` instead of closing. `waitUntil(promise)`
|
|
111
|
+
* does the same declaratively, as on `<lr-confirm-bar>`: the dialog stays pending until the promise
|
|
112
|
+
* settles, then closes with reason `'approve'` on resolution or bounces back on rejection. Otherwise
|
|
113
|
+
* always followed by `lr-close` with reason `'approve'`.
|
|
114
|
+
* @event lr-deny-request - The call was denied. `detail: { waitUntil }`. Cancelable, same `pendingAction`
|
|
115
|
+
* and `waitUntil()` mechanism as `lr-approve-request` (`pendingAction` is set to `'deny'`). Otherwise
|
|
116
|
+
* always followed by `lr-close` with reason `'deny'`.
|
|
117
|
+
* @event lr-decision-settled - `detail: { decision }` (`'approved'` or `'denied'`). Emitted right after
|
|
118
|
+
* the `lr-close` whose reason is `'approve'` or `'deny'`, on every path that reaches a decision.
|
|
113
119
|
* @event lr-close - `detail: { reason: ToolApprovalDialogCloseReason }`. Fired exactly
|
|
114
120
|
* once per dismissal — via Escape, an opted-in backdrop click, the Approve/Deny
|
|
115
121
|
* buttons, or a `close()` call — so there is one consistent "this dialog is
|
|
@@ -197,4 +203,4 @@ close(reason?:ToolApprovalDialogCloseReason):void;
|
|
|
197
203
|
/** Opens the dialog. No-op when already open. */
|
|
198
204
|
show():void;
|
|
199
205
|
/** Closes the dialog through the same reasoned lifecycle as `close()`. */
|
|
200
|
-
hide(reason?:ToolApprovalDialogCloseReason):void;private onBackdropClick;private stringifyArgs;private toggleEdit;private onDraftInput;private onEditorFocus;private onEditorBlur;private decisionDispatching;private onApprove;private onDeny;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-tool-approval-dialog':LyraToolApprovalDialog;}}
|
|
206
|
+
hide(reason?:ToolApprovalDialogCloseReason):void;private onBackdropClick;private stringifyArgs;private toggleEdit;private onDraftInput;private onEditorFocus;private onEditorBlur;private deferralGeneration;private settleDispatch;private decisionDispatching;private onApprove;private onDeny;render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-tool-approval-dialog':LyraToolApprovalDialog;}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__decorate}from"tslib";import{relayNativeEvent}from"../../../internal/native-event-relay.js";import{NativeModalCarrier}from"../../../internal/native-modal-carrier.js";import{ModalSurfaceController}from"../../../internal/modal-surface-controller.js";import{nativeModalCarrierStyles}from"../../../internal/native-modal-carrier.styles.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{renderApproveAction,renderDenyAction}from"../approval-action-buttons.js";import{activateOverlay}from"../../../internal/overlay-manager.js";import{nextId}from"../../../internal/a11y.js";import{resolveLocalizedParts}from"../../../internal/localization-runtime.js";import{styles}from"./tool-approval-dialog.styles.js";import"../../utility/json-viewer/json-viewer.class.js";import"../../forms/button/button.class.js";import{optionalLiteralSetConverter,trueDefaultSpellcheckConverter as spellcheckConverter}from"../../../internal/converters.js";import{
|
|
1
|
+
import{__decorate}from"tslib";import{relayNativeEvent}from"../../../internal/native-event-relay.js";import{NativeModalCarrier}from"../../../internal/native-modal-carrier.js";import{ModalSurfaceController}from"../../../internal/modal-surface-controller.js";import{nativeModalCarrierStyles}from"../../../internal/native-modal-carrier.styles.js";import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{LyraElement}from"../../../internal/lyra-element.js";import{renderApproveAction,renderDenyAction}from"../approval-action-buttons.js";import{activateOverlay}from"../../../internal/overlay-manager.js";import{nextId}from"../../../internal/a11y.js";import{resolveLocalizedParts}from"../../../internal/localization-runtime.js";import{styles}from"./tool-approval-dialog.styles.js";import{approvalDecision}from"../approval-state.js";import{createWaitUntil}from"../../../internal/approval-wait-until.js";import"../../utility/json-viewer/json-viewer.class.js";import"../../forms/button/button.class.js";import{optionalLiteralSetConverter,trueDefaultSpellcheckConverter as spellcheckConverter}from"../../../internal/converters.js";import{shadowFocusTarget}from"../../../internal/active-element.js";import{acquireAnnouncementSink}from"../../../internal/announcer.js";import{markVetoGuardWrite,VetoWriteGuard}from"../../../internal/veto-write-guard.js";import{LYRA_DEFAULT_approve,LYRA_DEFAULT_cancel,LYRA_DEFAULT_deny,LYRA_DEFAULT_edit,LYRA_DEFAULT_invalidJson,LYRA_DEFAULT_toolApprovalArgsLabel,LYRA_DEFAULT_toolApprovalGenericTool,LYRA_DEFAULT_toolApprovalHeading,LYRA_DEFAULT_viewerSearchActiveMatch,LYRA_DEFAULT_viewerSearchMatchCount,LYRA_DEFAULT_viewerSearchNoMatches}from"../../../internal/default-strings.generated.js";const TOOL_APPROVAL_PENDING_ACTION=optionalLiteralSetConverter(["approve","deny"]);class LyraToolApprovalDialog extends LyraElement{constructor(){super(...arguments),this._open=!1,this._pendingAction=null,this.dispatchWriteGuard=new VetoWriteGuard,this.lightDismiss=!1,this.proposalKey="",this.toolName="",this.accessibleLabel=null,this.args={},this.readonly=!1,this.spellcheck=!1,this.autocapitalize="off",this.autoCorrect="off",this.autocomplete="off",this.wrap="soft",this.inputMode="",this.enterKeyHint="",this.editing=!1,this.draftText="",this.draftError="",this.nativeModal=new NativeModalCarrier(this,{onCancel:()=>{!this.open||!this.overlay?.isTopmost()||this.pendingAction!=null||this.close("escape")},onUnexpectedClose:()=>{this.open&&(this.nativeModal.hide(),this.close("api"))}}),this.modalSurface=new ModalSurfaceController(this,this.nativeModal),this.suppressNextErrorAnnouncement=!0,this.titleId=nextId("tool-approval-dialog-title"),this.errorId=nextId("tool-approval-dialog-error"),this.onBackdropClick=()=>{this.overlay?.dismissBackdrop()},this.toggleEdit=()=>{this.pendingAction==null&&(this.editing?(this.editing=!1,this.draftText="",this.draftError=""):(this.editing=!0,this.draftText=this.stringifyArgs(),this.draftError=""))},this.onDraftInput=e=>{if(this.pendingAction!=null){e.stopPropagation();return}const value=e.target.value;this.draftText=value;try{JSON.parse(value),this.draftError=""}catch{this.draftError=this.localize("invalidJson")}e.stopPropagation()},this.onEditorFocus=event=>{relayNativeEvent(this,event)},this.onEditorBlur=event=>{relayNativeEvent(this,event)},this.deferralGeneration=0,this.decisionDispatching=!1,this.onApprove=()=>{if(!this.decisionDispatching){this.decisionDispatching=!0;try{if(this.pendingAction!=null)return;let currentArgs=this.args;if(this.editing)try{currentArgs=JSON.parse(this.draftText)}catch{return}this.dispatchWriteGuard.open();const{waitUntil,deferrals,seal}=createWaitUntil("tool-approval-dialog"),event=this.emitApproveRequest({args:currentArgs,waitUntil});if(seal(),this.settleDispatch("approve",event,deferrals))return;this.dispatchWriteGuard.touched||this.close("approve")}finally{this.decisionDispatching=!1}}},this.onDeny=()=>{if(!this.decisionDispatching){this.decisionDispatching=!0;try{if(this.pendingAction!=null)return;this.dispatchWriteGuard.open();const{waitUntil,deferrals,seal}=createWaitUntil("tool-approval-dialog"),event=this.emitDenyRequest({waitUntil});if(seal(),this.settleDispatch("deny",event,deferrals))return;this.dispatchWriteGuard.touched||this.close("deny")}finally{this.decisionDispatching=!1}}}}static{this.defaultStrings={...super.defaultStrings,approve:LYRA_DEFAULT_approve,cancel:LYRA_DEFAULT_cancel,deny:LYRA_DEFAULT_deny,edit:LYRA_DEFAULT_edit,invalidJson:LYRA_DEFAULT_invalidJson,toolApprovalArgsLabel:LYRA_DEFAULT_toolApprovalArgsLabel,toolApprovalGenericTool:LYRA_DEFAULT_toolApprovalGenericTool,toolApprovalHeading:LYRA_DEFAULT_toolApprovalHeading,viewerSearchActiveMatch:LYRA_DEFAULT_viewerSearchActiveMatch,viewerSearchMatchCount:LYRA_DEFAULT_viewerSearchMatchCount,viewerSearchNoMatches:LYRA_DEFAULT_viewerSearchNoMatches}}emitApproveRequest(detail){return this.emit("lr-approve-request",Object.freeze(detail),{cancelable:!0})}emitDenyRequest(detail){return this.emit("lr-deny-request",Object.freeze(detail),{cancelable:!0})}static{this.styles=[LyraElement.styles,nativeModalCarrierStyles,styles]}get open(){return this._open}set open(value){const previous=this._open;this._open=value,markVetoGuardWrite(this.dispatchWriteGuard),this.requestUpdate("open",previous)}get pendingAction(){return this._pendingAction}set pendingAction(value){const previous=this._pendingAction;this._pendingAction=TOOL_APPROVAL_PENDING_ACTION.normalizeReflected(this,"pending-action",value)??null,markVetoGuardWrite(this.dispatchWriteGuard),this.requestUpdate("pendingAction",previous)}resetProposalState(){this.editing=!1,this.draftText="",this.draftError="",this.pendingAction=null}willUpdate(changed){if(super.willUpdate(changed),this.hasUpdated&&!this.suppressNextErrorAnnouncement&&changed.has("draftError")&&this.draftError&&!changed.get("draftError")&&this.errorAnnouncementSink?.announce(this.draftError),changed.has("open"))if(this.open)this.modalSurface.open(()=>this.activateOverlay()),this.resetProposalState();else{const hadOverlay=this.overlay!==void 0;this.modalSurface.close(hadOverlay,()=>{this.overlay?.deactivate(),this.overlay=void 0},()=>!this.open)}const proposalChanged=changed.has("proposalKey")||changed.has("toolName")||changed.has("args");this.hasUpdated&&proposalChanged&&!(changed.has("open")&&this.open)&&this.resetProposalState(),changed.has("readonly")&&this.readonly&&this.editing&&(this.editing=!1,this.draftText="",this.draftError="")}updated(changed){if(super.updated(changed),this.open&&this.enterTopLayer(),this.suppressNextErrorAnnouncement=!1,changed.has("open")&&this.open){this.overlay?.focusInitial();return}changed.has("editing")&&(this.editing?this.shadowRoot?.querySelector('[part="args-editor"]')?.focus():this.open&&!shadowFocusTarget(this)&&this.shadowRoot?.querySelector('[part="deny-button"]')?.focus())}connectedCallback(){super.connectedCallback(),this.errorAnnouncementSink?.element.ownerDocument!==this.ownerDocument&&(this.errorAnnouncementSink?.release(),this.errorAnnouncementSink=acquireAnnouncementSink("assertive",{document:this.ownerDocument,source:this})),this.hasUpdated&&(this.suppressNextErrorAnnouncement=!0,this.requestUpdate()),this.hasUpdated&&this.open&&(this.modalSurface.prepare(),this.requestUpdate(),this.activateOverlay(),this.overlay?.focusInitial(),this.updateComplete.then(()=>{!this.open||!this.isConnected||(this.enterTopLayer(),this.overlay?.focusInitial())}))}enterTopLayer(){this.modalSurface.show()}disconnectedCallback(){super.disconnectedCallback(),this.modalSurface.disconnect(),this.overlay?.suspend(),this.errorAnnouncementSink?.release(),this.errorAnnouncementSink=void 0,this.suppressNextErrorAnnouncement=!0}activateOverlay(){if(this.overlay?.isActive()){this.overlay.resume();return}this.overlay=activateOverlay({host:this,panel:()=>this.shadowRoot?.querySelector('[part="panel"]')??null,onEscape:()=>{this.pendingAction==null&&this.close("escape")},onBackdrop:()=>{this.pendingAction!=null||!this.lightDismiss||this.close("backdrop")},preferredInitialFocus:()=>this.shadowRoot?.querySelector('[part="deny-button"]')??null,lockScroll:!0,suspendWhenUnrendered:!0})}close(reason="api"){this.open&&(this.open=!1,this.emit("lr-close",{reason}),reason==="approve"?this.emit("lr-decision-settled",{decision:approvalDecision("approve")}):reason==="deny"&&this.emit("lr-decision-settled",{decision:approvalDecision("deny")}))}show(){this.open||(this.open=!0)}hide(reason="api"){this.close(reason)}stringifyArgs(){try{return JSON.stringify(this.args,null,2)??"null"}catch{return"null"}}settleDispatch(action,event,deferrals){if(!event.defaultPrevented&&deferrals.length===0)return!1;if(this.dispatchWriteGuard.touched){for(const deferral of deferrals)deferral.catch(()=>{});return!0}if(this.pendingAction=action,deferrals.length>0){this.deferralGeneration+=1;const generation=this.deferralGeneration,stillOurs=()=>generation===this.deferralGeneration&&this.open&&this.pendingAction===action;Promise.all(deferrals).then(()=>{stillOurs()&&this.close(action)},()=>{stillOurs()&&(this.pendingAction=null)})}return!0}render(){const hasError=this.editing&&this.draftError.length>0,toolName=this.toolName||this.localize("toolApprovalGenericTool"),headingTemplate=this.localize("toolApprovalHeading"),headingParts=resolveLocalizedParts(headingTemplate,marker=>this.localize("toolApprovalHeading",void 0,{tool:marker})),hostLabel=this.getAttribute("aria-label"),panelLabel=hostLabel?.trim()?hostLabel:typeof this.accessibleLabel=="string"&&this.accessibleLabel.trim()?this.accessibleLabel:null;return this.nativeModal.render(html`
|
|
2
2
|
<div part="backdrop" @click=${this.onBackdropClick}></div>
|
|
3
3
|
<div
|
|
4
4
|
part="panel"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{
|
|
1
|
+
import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraJsonViewerEventMap}from'../../utility/json-viewer/json-viewer.class.js';import{type ToolStatus}from'../tool-status.js';
|
|
2
2
|
/** `detail` for `lr-toggle`: the new expanded state, and the call it belongs to. */
|
|
3
3
|
export interface ToolCallBlockToggleDetail{expanded:boolean;callId:string;}
|
|
4
4
|
/** `detail` for the re-emitted `lr-render-error`: the composed result view's own detail, plus the
|
|
@@ -74,7 +74,7 @@ callId:string;private statusValue;
|
|
|
74
74
|
/** Call status. `incomplete` is a call that ended without a result (an interrupted stream, a
|
|
75
75
|
* cancelled run). Values outside `pending | running | success | error | denied | incomplete`
|
|
76
76
|
* normalize and reflect as `pending`. */
|
|
77
|
-
get status():
|
|
77
|
+
get status():ToolStatus;set status(next:ToolStatus);
|
|
78
78
|
/** Whether the details are shown. Starts collapsed. */
|
|
79
79
|
expanded:boolean;
|
|
80
80
|
/** Header text override, used verbatim (including `''`). When set, the localized status text is
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property}from"lit/decorators.js";import{guard}from"lit/directives/guard.js";import{LyraElement}from"../../../internal/lyra-element.js";import{literalSetConverter}from"../../../internal/converters.js";import{nextId}from"../../../internal/a11y.js";import{chevronIcon}from"../../../internal/icons.js";import{formatShortDuration,safeDurationMs}from"../../../internal/duration.js";import{tag}from"../../../internal/prefix.js";import{observeScrollOverflow,SCROLL_OVERFLOW_ATTRIBUTE}from"../../../internal/scroll-overflow.js";import{TOOL_CALL_STATUSES,TOOL_STATUS_LABEL_KEY,toolStatusIcon}from"../tool-status.js";import{projectedRedactionFields,redactToolDetail,TOO_MANY_REDACTION_PATHS}from"../tool-redaction.js";import{styles}from"./tool-call-block.styles.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_copy,LYRA_DEFAULT_details,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_durationSeconds,LYRA_DEFAULT_envListValueHidden,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusIncomplete,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess,LYRA_DEFAULT_toolCall,LYRA_DEFAULT_toolCallBlockArgumentsLabel,LYRA_DEFAULT_toolCallBlockErrorLabel,LYRA_DEFAULT_toolCallBlockHeaderDenied,LYRA_DEFAULT_toolCallBlockHeaderError,LYRA_DEFAULT_toolCallBlockHeaderIncomplete,LYRA_DEFAULT_toolCallBlockHeaderPending,LYRA_DEFAULT_toolCallBlockHeaderRunning,LYRA_DEFAULT_toolCallBlockHeaderSuccess,LYRA_DEFAULT_toolCallBlockResultLabel}from"../../../internal/default-strings.generated.js";const TOOL_CALL_BLOCK_STATUS=literalSetConverter(TOOL_CALL_STATUSES,"pending"),HEADER_KEY={pending:"toolCallBlockHeaderPending",running:"toolCallBlockHeaderRunning",success:"toolCallBlockHeaderSuccess",error:"toolCallBlockHeaderError",denied:"toolCallBlockHeaderDenied",incomplete:"toolCallBlockHeaderIncomplete"};function argsPresent(args){if(args==null)return!1;if(typeof args!="object")return!0;try{const prototype=Object.getPrototypeOf(args);return prototype!==Object.prototype&&prototype!==null?!0:Object.keys(args).length>0}catch{return!0}}class LyraToolCallBlock extends LyraElement{constructor(){super(...arguments),this.name="",this.callId="",this.statusValue="pending",this.expanded=!1,this.redactedFields=[],this.bodyId=nextId("tool-call-block-body"),this.labelId=nextId("tool-call-block-label"),this.argsLabelId=nextId("tool-call-block-args-label"),this.resultLabelId=nextId("tool-call-block-result-label"),this.errorLabelId=nextId("tool-call-block-error-label"),this.projectedPaths=[],this.restoreFocusToHeader=!1,this.resultOverflow=observeScrollOverflow(this,()=>this.renderRoot?.querySelector('[part="result"]'),()=>this.syncResultScrollStop()),this.onHeaderClick=()=>{this.expanded=!this.expanded,this.emit("lr-toggle",{expanded:this.expanded,callId:this.callId})},this.onRenderError=event=>{event.stopPropagation(),this.emit("lr-render-error",{toolName:event.detail.toolName,error:event.detail.error,callId:this.callId})}}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,copy:LYRA_DEFAULT_copy,details:LYRA_DEFAULT_details,durationMilliseconds:LYRA_DEFAULT_durationMilliseconds,durationSeconds:LYRA_DEFAULT_durationSeconds,envListValueHidden:LYRA_DEFAULT_envListValueHidden,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusIncomplete:LYRA_DEFAULT_statusIncomplete,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,toolCall:LYRA_DEFAULT_toolCall,toolCallBlockArgumentsLabel:LYRA_DEFAULT_toolCallBlockArgumentsLabel,toolCallBlockErrorLabel:LYRA_DEFAULT_toolCallBlockErrorLabel,toolCallBlockHeaderDenied:LYRA_DEFAULT_toolCallBlockHeaderDenied,toolCallBlockHeaderError:LYRA_DEFAULT_toolCallBlockHeaderError,toolCallBlockHeaderIncomplete:LYRA_DEFAULT_toolCallBlockHeaderIncomplete,toolCallBlockHeaderPending:LYRA_DEFAULT_toolCallBlockHeaderPending,toolCallBlockHeaderRunning:LYRA_DEFAULT_toolCallBlockHeaderRunning,toolCallBlockHeaderSuccess:LYRA_DEFAULT_toolCallBlockHeaderSuccess,toolCallBlockResultLabel:LYRA_DEFAULT_toolCallBlockResultLabel}}static{this.styles=[LyraElement.styles,styles]}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["redactedFields"])}get status(){return this.statusValue}set status(next){const normalized=TOOL_CALL_BLOCK_STATUS.normalizeReflected(this,"status",next),old=this.statusValue;old!==normalized&&(this.statusValue=normalized,this.requestUpdate("status",old))}willUpdate(changed){
|
|
1
|
+
import{__decorate}from"tslib";import{collectionSupport}from"../../../internal/collection-snapshot.js";import{html,nothing}from"lit";import{property}from"lit/decorators.js";import{guard}from"lit/directives/guard.js";import{LyraElement}from"../../../internal/lyra-element.js";import{literalSetConverter}from"../../../internal/converters.js";import{nextId}from"../../../internal/a11y.js";import{chevronIcon}from"../../../internal/icons.js";import{formatShortDuration,safeDurationMs}from"../../../internal/duration.js";import{tag}from"../../../internal/prefix.js";import{observeScrollOverflow,SCROLL_OVERFLOW_ATTRIBUTE}from"../../../internal/scroll-overflow.js";import{TOOL_CALL_STATUSES,TOOL_STATUS_LABEL_KEY,toolStatusIcon}from"../tool-status.js";import{projectedRedactionFields,redactToolDetail,TOO_MANY_REDACTION_PATHS}from"../tool-redaction.js";import{styles}from"./tool-call-block.styles.js";import{shadowFocusTarget}from"../../../internal/active-element.js";import{LYRA_DEFAULT_collapse,LYRA_DEFAULT_copy,LYRA_DEFAULT_details,LYRA_DEFAULT_durationMilliseconds,LYRA_DEFAULT_durationSeconds,LYRA_DEFAULT_envListValueHidden,LYRA_DEFAULT_map,LYRA_DEFAULT_navigation,LYRA_DEFAULT_noData,LYRA_DEFAULT_open,LYRA_DEFAULT_search,LYRA_DEFAULT_select,LYRA_DEFAULT_statusDenied,LYRA_DEFAULT_statusError,LYRA_DEFAULT_statusIncomplete,LYRA_DEFAULT_statusPending,LYRA_DEFAULT_statusRunning,LYRA_DEFAULT_statusSuccess,LYRA_DEFAULT_toolCall,LYRA_DEFAULT_toolCallBlockArgumentsLabel,LYRA_DEFAULT_toolCallBlockErrorLabel,LYRA_DEFAULT_toolCallBlockHeaderDenied,LYRA_DEFAULT_toolCallBlockHeaderError,LYRA_DEFAULT_toolCallBlockHeaderIncomplete,LYRA_DEFAULT_toolCallBlockHeaderPending,LYRA_DEFAULT_toolCallBlockHeaderRunning,LYRA_DEFAULT_toolCallBlockHeaderSuccess,LYRA_DEFAULT_toolCallBlockResultLabel}from"../../../internal/default-strings.generated.js";const TOOL_CALL_BLOCK_STATUS=literalSetConverter(TOOL_CALL_STATUSES,"pending"),HEADER_KEY={pending:"toolCallBlockHeaderPending",running:"toolCallBlockHeaderRunning",success:"toolCallBlockHeaderSuccess",error:"toolCallBlockHeaderError",denied:"toolCallBlockHeaderDenied",incomplete:"toolCallBlockHeaderIncomplete"};function argsPresent(args){if(args==null)return!1;if(typeof args!="object")return!0;try{const prototype=Object.getPrototypeOf(args);return prototype!==Object.prototype&&prototype!==null?!0:Object.keys(args).length>0}catch{return!0}}class LyraToolCallBlock extends LyraElement{constructor(){super(...arguments),this.name="",this.callId="",this.statusValue="pending",this.expanded=!1,this.redactedFields=[],this.bodyId=nextId("tool-call-block-body"),this.labelId=nextId("tool-call-block-label"),this.argsLabelId=nextId("tool-call-block-args-label"),this.resultLabelId=nextId("tool-call-block-result-label"),this.errorLabelId=nextId("tool-call-block-error-label"),this.projectedPaths=[],this.restoreFocusToHeader=!1,this.resultOverflow=observeScrollOverflow(this,()=>this.renderRoot?.querySelector('[part="result"]'),()=>this.syncResultScrollStop()),this.onHeaderClick=()=>{this.expanded=!this.expanded,this.emit("lr-toggle",{expanded:this.expanded,callId:this.callId})},this.onRenderError=event=>{event.stopPropagation(),this.emit("lr-render-error",{toolName:event.detail.toolName,error:event.detail.error,callId:this.callId})}}static{this.defaultStrings={...super.defaultStrings,collapse:LYRA_DEFAULT_collapse,copy:LYRA_DEFAULT_copy,details:LYRA_DEFAULT_details,durationMilliseconds:LYRA_DEFAULT_durationMilliseconds,durationSeconds:LYRA_DEFAULT_durationSeconds,envListValueHidden:LYRA_DEFAULT_envListValueHidden,map:LYRA_DEFAULT_map,navigation:LYRA_DEFAULT_navigation,noData:LYRA_DEFAULT_noData,open:LYRA_DEFAULT_open,search:LYRA_DEFAULT_search,select:LYRA_DEFAULT_select,statusDenied:LYRA_DEFAULT_statusDenied,statusError:LYRA_DEFAULT_statusError,statusIncomplete:LYRA_DEFAULT_statusIncomplete,statusPending:LYRA_DEFAULT_statusPending,statusRunning:LYRA_DEFAULT_statusRunning,statusSuccess:LYRA_DEFAULT_statusSuccess,toolCall:LYRA_DEFAULT_toolCall,toolCallBlockArgumentsLabel:LYRA_DEFAULT_toolCallBlockArgumentsLabel,toolCallBlockErrorLabel:LYRA_DEFAULT_toolCallBlockErrorLabel,toolCallBlockHeaderDenied:LYRA_DEFAULT_toolCallBlockHeaderDenied,toolCallBlockHeaderError:LYRA_DEFAULT_toolCallBlockHeaderError,toolCallBlockHeaderIncomplete:LYRA_DEFAULT_toolCallBlockHeaderIncomplete,toolCallBlockHeaderPending:LYRA_DEFAULT_toolCallBlockHeaderPending,toolCallBlockHeaderRunning:LYRA_DEFAULT_toolCallBlockHeaderRunning,toolCallBlockHeaderSuccess:LYRA_DEFAULT_toolCallBlockHeaderSuccess,toolCallBlockResultLabel:LYRA_DEFAULT_toolCallBlockResultLabel}}static{this.styles=[LyraElement.styles,styles]}static{this.collectionSupport=collectionSupport}static{this.ownedCollectionProperties=Object.freeze(["redactedFields"])}get status(){return this.statusValue}set status(next){const normalized=TOOL_CALL_BLOCK_STATUS.normalizeReflected(this,"status",next),old=this.statusValue;old!==normalized&&(this.statusValue=normalized,this.requestUpdate("status",old))}willUpdate(changed){super.willUpdate(changed),(!this.hasUpdated||changed.has("redactedFields"))&&(this.projectedPaths=projectedRedactionFields(this.redactedFields)??TOO_MANY_REDACTION_PATHS),this.hasUpdated&&changed.get("expanded")===!0&&!this.expanded&&(this.restoreFocusToHeader=!!this.renderRoot?.querySelector('[part="body"]')?.contains(shadowFocusTarget(this)))}updated(changed){super.updated(changed);const view=this.renderRoot.querySelector(tag("tool-result-view"));view&&this.resultOverflow.observeExtra([view]),this.syncResultScrollStop(),this.restoreFocusToHeader&&(this.restoreFocusToHeader=!1,this.renderRoot.querySelector('[part="header"]')?.focus())}syncResultScrollStop(){const result=this.renderRoot?.querySelector('[part="result"]');result&&(result.hasAttribute(SCROLL_OVERFLOW_ATTRIBUTE)?result.setAttribute("tabindex","0"):result.removeAttribute("tabindex"))}detail(){const detail=redactToolDetail({args:this.args,result:this.result,error:this.errorText},this.projectedPaths,this.localize("envListValueHidden"),this.detailMemo?.detail);return detail!==this.detailMemo?.detail&&(this.detailMemo={detail,hasArgs:argsPresent(this.args)}),this.detailMemo}get safeDurationMs(){return safeDurationMs(this.durationMs)}durationText(){const ms=this.safeDurationMs;return ms==null?null:formatShortDuration(this.localize.bind(this),this.effectiveLocale,ms)}emptyText(){return this.status==="pending"?this.localize("statusPending"):this.status==="running"?this.localize("statusRunning"):this.localize("noData")}bodyTemplate(){const memo=this.detail(),{detail,hasArgs}=memo,empty=!hasArgs&&!(typeof detail.sourceError=="string"&&detail.sourceError!=="")&&detail.sourceResult===void 0,labels=[this.localize("toolCallBlockArgumentsLabel"),this.localize("toolCallBlockErrorLabel"),this.localize("toolCallBlockResultLabel"),empty?this.emptyText():""];return html`${guard([memo,this.name,this.onRenderError,...labels],()=>this.sectionsTemplate(memo,labels))}`}sectionsTemplate({detail,hasArgs},[argsLabel,errorLabel,resultLabel,emptyText]){const hasError=typeof detail.sourceError=="string"&&detail.sourceError!=="",hasResult=detail.sourceResult!==void 0;return!hasArgs&&!hasError&&!hasResult?html`<p part="empty">${emptyText}</p>`:html`
|
|
2
2
|
${hasArgs?html`<div part="args" role="group" aria-labelledby=${this.argsLabelId}>
|
|
3
3
|
<div part="args-label" id=${this.argsLabelId}>${argsLabel}</div>
|
|
4
4
|
<lr-json-viewer .data=${detail.args}></lr-json-viewer>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{disclosureHeader}from"../../../internal/layout-fragments.styles.js";import{iconHitTarget}from"../../../internal/interactive-control.styles.js";import{css}from"lit";import{compactContainerQuery}from"../../../internal/container-breakpoints.styles.js";const styles=css` :host { display: block; container-type: inline-size; contain-intrinsic-inline-size: var(--lr-size-20rem); min-inline-size: 0; --_lr-tool-call-block-accent: var(--lr-color-text-quiet); } :host(:where([status='running'])) { --_lr-tool-call-block-accent: var(--lr-color-brand); } :host(:where([status='success'])) { --_lr-tool-call-block-accent: var(--lr-color-success); } :host(:where([status='error'])) { --_lr-tool-call-block-accent: var(--lr-color-danger); } :host(:where([status='denied'])) { --_lr-tool-call-block-accent: var(--lr-color-warning); } [part='base'] { border: var(--lr-border-width-thin) solid var(--lr-tool-call-block-border-color, var(--lr-color-border)); border-radius: var(--lr-tool-call-block-radius, var(--lr-radius)); background: var(--lr-tool-call-block-bg, var(--lr-color-surface)); overflow: clip; } [part='header'] { ${disclosureHeader} flex-wrap: wrap; ${iconHitTarget} box-sizing: border-box; font-size: var(--lr-font-size-md-sm); font-weight: var(--lr-font-weight-semibold); transition: var(--lr-transition-interactive); } [part='status-text'], [part='duration'] { font-size: var(--lr-font-size-sm); font-weight: var(--lr-font-weight-normal); color: var(--lr-color-text-quiet); } [part='duration'] { font-variant-numeric: tabular-nums; } [part='label'] { flex: 1 1 auto; min-inline-size: var(--lr-size-6ch); overflow-wrap: anywhere; } :where([part='header']):hover { background: var(--lr-color-brand-quiet); color: var(--lr-color-brand); } :where([part='header']):hover :is([part='status-text'], [part='duration']) { color: inherit; } :where([part='header']):active { background: color-mix( in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active) ); color: var(--lr-color-text); } :where([part='header']):active :is([part='status-text'], [part='duration']) { color: inherit; } :where([part='header']):focus-visible, :where([part='result']):focus-visible { outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color); outline-offset: calc(-1 * var(--lr-focus-ring-width)); } [part='icon'] { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; color: var(--lr-tool-call-block-accent, var(--_lr-tool-call-block-accent)); } [part='icon'] svg { display: block; } :host(:where([status='running'])) [part='icon'] svg { animation: var(--_lr-motion-animation, lr-tool-
|
|
1
|
+
import{toolStatusKeyframes}from"../tool-status.styles.js";import{disclosureHeader}from"../../../internal/layout-fragments.styles.js";import{iconHitTarget}from"../../../internal/interactive-control.styles.js";import{css}from"lit";import{compactContainerQuery}from"../../../internal/container-breakpoints.styles.js";const styles=css` :host { display: block; container-type: inline-size; contain-intrinsic-inline-size: var(--lr-size-20rem); min-inline-size: 0; --_lr-tool-call-block-accent: var(--lr-color-text-quiet); } :host(:where([status='running'])) { --_lr-tool-call-block-accent: var(--lr-color-brand); } :host(:where([status='success'])) { --_lr-tool-call-block-accent: var(--lr-color-success); } :host(:where([status='error'])) { --_lr-tool-call-block-accent: var(--lr-color-danger); } :host(:where([status='denied'])) { --_lr-tool-call-block-accent: var(--lr-color-warning); } [part='base'] { border: var(--lr-border-width-thin) solid var(--lr-tool-call-block-border-color, var(--lr-color-border)); border-radius: var(--lr-tool-call-block-radius, var(--lr-radius)); background: var(--lr-tool-call-block-bg, var(--lr-color-surface)); overflow: clip; } [part='header'] { ${disclosureHeader} flex-wrap: wrap; ${iconHitTarget} box-sizing: border-box; font-size: var(--lr-font-size-md-sm); font-weight: var(--lr-font-weight-semibold); transition: var(--lr-transition-interactive); } [part='status-text'], [part='duration'] { font-size: var(--lr-font-size-sm); font-weight: var(--lr-font-weight-normal); color: var(--lr-color-text-quiet); } [part='duration'] { font-variant-numeric: tabular-nums; } [part='label'] { flex: 1 1 auto; min-inline-size: var(--lr-size-6ch); overflow-wrap: anywhere; } :where([part='header']):hover { background: var(--lr-color-brand-quiet); color: var(--lr-color-brand); } :where([part='header']):hover :is([part='status-text'], [part='duration']) { color: inherit; } :where([part='header']):active { background: color-mix( in oklab, var(--lr-color-brand-quiet), var(--lr-color-mix-partner) var(--lr-color-mix-active) ); color: var(--lr-color-text); } :where([part='header']):active :is([part='status-text'], [part='duration']) { color: inherit; } :where([part='header']):focus-visible, :where([part='result']):focus-visible { outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color); outline-offset: calc(-1 * var(--lr-focus-ring-width)); } [part='icon'] { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; color: var(--lr-tool-call-block-accent, var(--_lr-tool-call-block-accent)); } [part='icon'] svg { display: block; } :host(:where([status='running'])) [part='icon'] svg { animation: var(--_lr-motion-animation, lr-tool-status-spin var(--lr-transition-ambient) infinite); } :host(:where([status='pending'])) [part='icon'] svg { animation: var(--_lr-motion-animation, lr-tool-status-pulse var(--lr-transition-ambient) infinite); } [part='toggle'] { display: inline-flex; flex: 0 0 auto; transition: transform var(--lr-transition-fast); } :host(:where([expanded])) [part='toggle'] { transform: rotate(90deg); } :host(:where(:not([expanded]):dir(rtl))) [part='toggle'] { transform: scaleX(-1); } [part='body'] { border-block-start: var(--lr-border-width-thin) solid var(--lr-tool-call-block-border-color, var(--lr-color-border)); padding: var(--lr-space-s) var(--lr-space-m); display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--lr-space-s); min-inline-size: 0; overflow-wrap: anywhere; } [part='body'][hidden] { display: none; } [part='args'], [part='result'], [part='error'] { min-inline-size: 0; } [part='args'], [part='result'] { overflow-x: auto; } [part='args-label'], [part='result-label'], [part='error-label'] { font-size: var(--lr-font-size-xs); font-weight: var(--lr-font-weight-medium); color: var(--lr-color-text-quiet); text-transform: uppercase; letter-spacing: var(--lr-size-0-03em); } [part='error'] { color: var(--lr-tool-call-block-error-color, var(--lr-color-danger)); } [part='error'] p, [part='empty'] { margin: 0; } @container ${compactContainerQuery} { [part='header'], [part='body'] { padding: var(--lr-space-xs) var(--lr-space-s); } } @media (prefers-reduced-motion: reduce) { [part='icon'] svg { animation: none !important; } [part='toggle'] { transition: none !important; } } @media (forced-colors: active) { :where([part='header']):hover { outline: var(--lr-border-width-thin) solid Highlight; outline-offset: calc(-1 * var(--lr-border-width-thin)); } } ${toolStatusKeyframes} `;export{styles};
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import
|
|
2
|
-
/** Same status vocabulary as `<lr-tool-result-dialog>`, so a call's chip
|
|
3
|
-
* and its detail dialog always agree on icon/label/tone. `incomplete` marks
|
|
4
|
-
* a call that ended without a result (an interrupted stream, a cancelled
|
|
5
|
-
* run). */
|
|
6
|
-
export type ToolCallStatus=LyraToolStatus|'incomplete';export interface ToolChipSelectDetail{name:string;callId:string;}export interface LyraToolCallChipEventMap{'lr-tool-call-chip-select':CustomEvent<ToolChipSelectDetail>;}
|
|
1
|
+
import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import{type ToolStatus}from'../tool-status.js';export interface ToolChipSelectDetail{name:string;callId:string;}export interface LyraToolCallChipEventMap{'lr-tool-call-chip-select':CustomEvent<ToolChipSelectDetail>;}
|
|
7
2
|
/**
|
|
8
3
|
* `<lr-tool-call-chip>` — a compact inline pill representing one tool/
|
|
9
4
|
* function call an agent made mid-conversation, e.g.
|
|
@@ -106,7 +101,7 @@ category:string;
|
|
|
106
101
|
* keeps the neutral tone with its own static glyph and text. Unknown values
|
|
107
102
|
* normalize and reflect as `pending`.
|
|
108
103
|
*/
|
|
109
|
-
get status():
|
|
104
|
+
get status():ToolStatus;set status(next:ToolStatus);private statusValue;
|
|
110
105
|
/** Short human-readable status text, e.g. `Searching web…`. Removing the attribute clears its displayed text. */
|
|
111
106
|
summary:string;
|
|
112
107
|
/** How long the call took, in milliseconds. Omitted from the chip entirely when unset. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{focusRing}from"../../../internal/interactive-control.styles.js";import{css}from"lit";import{overlaySurface}from"../../../internal/overlay-surface.styles.js";const styles=css` :host { display: inline-flex; max-inline-size: 100%; --_lr-tool-call-chip-accent: var(--lr-color-text-quiet); --_lr-tool-call-chip-bg: var(--lr-color-surface); --_lr-tool-call-chip-border: var(--lr-color-border); --_lr-tool-call-chip-spin: var(--lr-transition-ambient); } :host([status="running"]) { --_lr-tool-call-chip-accent: var(--lr-color-brand); --_lr-tool-call-chip-bg: var(--lr-color-brand-quiet); --_lr-tool-call-chip-border: transparent; } :host([status="success"]) { --_lr-tool-call-chip-accent: var(--lr-color-success); --_lr-tool-call-chip-bg: var(--lr-color-success-quiet); --_lr-tool-call-chip-border: transparent; } :host([status="error"]) { --_lr-tool-call-chip-accent: var(--lr-color-danger); --_lr-tool-call-chip-bg: var(--lr-color-danger-quiet); --_lr-tool-call-chip-border: transparent; } :host([status="denied"]) { --_lr-tool-call-chip-accent: var(--lr-color-warning); --_lr-tool-call-chip-bg: var(--lr-color-warning-quiet); --_lr-tool-call-chip-border: transparent; } [part="base"] { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--lr-space-xs); max-inline-size: 100%; box-sizing: border-box; padding: var(--lr-size-0-25rem) var(--lr-space-s); border: var(--lr-border-width-thin) solid var(--lr-tool-call-chip-border, var(--_lr-tool-call-chip-border)); border-radius: var(--lr-radius-pill); background: var(--lr-tool-call-chip-bg, var(--_lr-tool-call-chip-bg)); color: var(--lr-color-text); font: inherit; font-size: var(--lr-font-size-sm); line-height: var(--lr-line-height-snug); text-align: start; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: background-color var(--lr-transition-fast), border-color var(--lr-transition-fast); } [part="base"]:hover { border-color: var(--lr-color-brand); } [part="base"]:active { background: color-mix( in oklab, var(--lr-tool-call-chip-bg, var(--_lr-tool-call-chip-bg)), var(--lr-color-mix-partner) var(--lr-color-mix-active) ); } [part="base"]:focus-visible { ${focusRing} } [part="icon"] { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; color: var(--lr-tool-call-chip-accent, var(--_lr-tool-call-chip-accent)); } [part="icon"] svg { display: block; } :host([status="running"]) [part="icon"] svg { animation: var(--_lr-motion-animation, lr-tool-
|
|
1
|
+
import{toolStatusKeyframes}from"../tool-status.styles.js";import{focusRing}from"../../../internal/interactive-control.styles.js";import{css}from"lit";import{overlaySurface}from"../../../internal/overlay-surface.styles.js";const styles=css` :host { display: inline-flex; max-inline-size: 100%; --_lr-tool-call-chip-accent: var(--lr-color-text-quiet); --_lr-tool-call-chip-bg: var(--lr-color-surface); --_lr-tool-call-chip-border: var(--lr-color-border); --_lr-tool-call-chip-spin: var(--lr-transition-ambient); } :host([status="running"]) { --_lr-tool-call-chip-accent: var(--lr-color-brand); --_lr-tool-call-chip-bg: var(--lr-color-brand-quiet); --_lr-tool-call-chip-border: transparent; } :host([status="success"]) { --_lr-tool-call-chip-accent: var(--lr-color-success); --_lr-tool-call-chip-bg: var(--lr-color-success-quiet); --_lr-tool-call-chip-border: transparent; } :host([status="error"]) { --_lr-tool-call-chip-accent: var(--lr-color-danger); --_lr-tool-call-chip-bg: var(--lr-color-danger-quiet); --_lr-tool-call-chip-border: transparent; } :host([status="denied"]) { --_lr-tool-call-chip-accent: var(--lr-color-warning); --_lr-tool-call-chip-bg: var(--lr-color-warning-quiet); --_lr-tool-call-chip-border: transparent; } [part="base"] { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--lr-space-xs); max-inline-size: 100%; box-sizing: border-box; padding: var(--lr-size-0-25rem) var(--lr-space-s); border: var(--lr-border-width-thin) solid var(--lr-tool-call-chip-border, var(--_lr-tool-call-chip-border)); border-radius: var(--lr-radius-pill); background: var(--lr-tool-call-chip-bg, var(--_lr-tool-call-chip-bg)); color: var(--lr-color-text); font: inherit; font-size: var(--lr-font-size-sm); line-height: var(--lr-line-height-snug); text-align: start; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: background-color var(--lr-transition-fast), border-color var(--lr-transition-fast); } [part="base"]:hover { border-color: var(--lr-color-brand); } [part="base"]:active { background: color-mix( in oklab, var(--lr-tool-call-chip-bg, var(--_lr-tool-call-chip-bg)), var(--lr-color-mix-partner) var(--lr-color-mix-active) ); } [part="base"]:focus-visible { ${focusRing} } [part="icon"] { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; color: var(--lr-tool-call-chip-accent, var(--_lr-tool-call-chip-accent)); } [part="icon"] svg { display: block; } :host([status="running"]) [part="icon"] svg { animation: var(--_lr-motion-animation, lr-tool-status-spin var(--lr-tool-call-chip-spin, var(--_lr-tool-call-chip-spin)) infinite); } :host([status="pending"]) [part="icon"] svg { animation: var(--_lr-motion-animation, lr-tool-status-pulse var(--lr-transition-ambient) infinite); } [part="label"] { display: inline-flex; align-items: baseline; gap: var(--lr-size-0-3em); flex: 1 1 auto; min-inline-size: var(--lr-size-6ch); overflow: hidden; } [part="category"] { flex: 0 1 auto; min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--lr-color-text); font-size: var(--lr-size-0-6875rem); font-weight: var(--lr-font-weight-semibold); text-transform: uppercase; letter-spacing: var(--lr-size-0-04em); } [part="category"]::after { content: "·"; margin-inline-start: var(--lr-size-0-3em); } [part="name"] { flex: 0 1 auto; min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: var(--lr-font-weight-semibold); } [part="summary"] { flex: 1 1 auto; min-inline-size: var(--lr-size-3ch); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--lr-color-text); } [part="summary"]::before { content: ": "; } [part="meta"] { display: inline-flex; flex: 0 1 auto; flex-wrap: wrap; min-inline-size: 0; max-inline-size: 100%; overflow: hidden; align-items: baseline; gap: var(--lr-size-0-4em); margin-inline-start: auto; font-size: var(--lr-size-0-6875rem); } [part="status-text"] { color: var(--lr-tool-call-chip-accent, var(--_lr-tool-call-chip-accent)); font-weight: var(--lr-font-weight-semibold); text-transform: uppercase; letter-spacing: var(--lr-size-0-03em); min-inline-size: 0; max-inline-size: 100%; white-space: normal; overflow-wrap: anywhere; text-align: end; } [part="duration"] { color: var(--lr-color-text); font-variant-numeric: tabular-nums; white-space: nowrap; } [part="tooltip"] { position: fixed; z-index: var(--lr-layer-dropdown); box-sizing: border-box; min-inline-size: 0; max-inline-size: min( var(--lr-popover-viewport-clamp), var(--lr-size-24rem), var( --lr-positioner-available-inline-size, var(--lr-popover-viewport-clamp) ) ); max-block-size: min( var(--lr-size-20rem), var(--lr-positioner-available-block-size, var(--lr-size-20rem)) ); overflow: auto; overflow-wrap: anywhere; word-break: break-word; white-space: normal; padding: var(--lr-space-s) var(--lr-space-m); ${overlaySurface} box-shadow: var(--lr-overlay-shadow-anchored, var(--lr-shadow-m)); font-size: var(--lr-font-size-sm); line-height: var(--lr-line-height-1-4); color: var(--lr-color-text); } @media (prefers-reduced-motion: reduce) { [part="base"] { transition: none !important; } :host([status="running"]) [part="icon"] svg, :host([status="pending"]) [part="icon"] svg { animation: none !important; } } ${toolStatusKeyframes} `;export{styles};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const MAX_CHOICES=500,FORMATS=new Set(["email","uri","date","date-time"]),own=(object,key)=>Object.prototype.hasOwnProperty.call(object,key);function toolParamChoices(property){const titled=property.type==="array"?property.items?.anyOf:property.oneOf,values=property.type==="array"?property.items?.enum:property.enum;if(Array.isArray(titled))return titled.slice(0,500).filter(option=>option&&typeof option.const=="string"&&typeof option.title=="string").map(option=>({value:option.const,label:option.title}));if(Array.isArray(values))return values.slice(0,500).map((value,index)=>({value,label:property.type==="string"?property.enumNames?.[index]??value:value}))}function validTitledChoices(value){return Array.isArray(value)&&value.length>0&&value.length<=500&&Array.from(value).every(option=>option&&typeof option=="object"&&!Array.isArray(option)&&typeof option.const=="string"&&typeof option.title=="string"&&Object.keys(option).every(key=>key==="const"||key==="title"))}function validStringChoices(value){return Array.isArray(value)&&value.length<=500&&Array.from(value).every(choice=>typeof choice=="string")}function validToolParamConstraints(property){for(const key of["minLength","maxLength","minItems","maxItems"]){const value=property[key];if(value!==void 0&&(!Number.isSafeInteger(value)||value<0))return!1}for(const key of["minimum","maximum"]){const value=property[key];if(value!==void 0&&(typeof value!="number"||!Number.isFinite(value)))return!1}for(const[min,max]of[["minLength","maxLength"],["minimum","maximum"],["minItems","maxItems"]])if(property[min]!==void 0&&property[max]!==void 0&&property[min]>property[max])return!1;if(property.format!==void 0&&!FORMATS.has(property.format)||["minLength","maxLength","format","oneOf","enumNames"].some(key=>own(property,key))&&property.type!=="string"||["minimum","maximum"].some(key=>own(property,key))&&property.type!=="number"&&property.type!=="integer"||["minItems","maxItems","items"].some(key=>own(property,key))&&property.type!=="array"||property.oneOf!==void 0&&(!validTitledChoices(property.oneOf)||property.enum!==void 0)||property.enumNames!==void 0&&(!validStringChoices(property.enumNames)||!property.enum||property.enumNames.length!==property.enum.length))return!1;if(property.type==="array"){const items=property.items;if(!items||typeof items!="object"||Array.isArray(items)||Object.keys(items).some(key=>key!=="type"&&key!=="enum"&&key!=="anyOf"))return!1;if(items.anyOf!==void 0){if(items.enum!==void 0||items.type!==void 0&&items.type!=="string"||!validTitledChoices(items.anyOf))return!1}else if(items.type!=="string"||!validStringChoices(items.enum)||items.enum?.length===0)return!1}const choices=toolParamChoices(property);return!(choices&&new Set(choices.map(choice=>choice.value)).size!==choices.length)}function validDate(value){const match=/^(\d{4})-(\d{2})-(\d{2})$/.exec(value);if(!match)return!1;const year=Number(match[1]),month=Number(match[2]),day=Number(match[3]),days=[31,year%4===0&&(year%100!==0||year%400===0)?29:28,31,30,31,30,31,31,30,31,30,31];return month>=1&&month<=12&&day>=1&&day<=days[month-1]}function validFormat(value,format){if(format==="date")return validDate(value);if(format==="email"){const at=value.lastIndexOf("@");if(at<=0||at!==value.indexOf("@"))return!1;const local=value.slice(0,at),domain=value.slice(at+1);return!/^[a-z\d.!#$%&'*+/=?^_`{|}~-]+$/i.test(local)||local.startsWith(".")||local.endsWith(".")||local.includes("..")?!1:domain.split(".").every(label=>label.length>0&&label.length<=63&&/^[a-z\d](?:[a-z\d-]*[a-z\d])?$/i.test(label))}if(format==="uri"){if(!/^[a-z][a-z\d+.-]*:/i.test(value)||/[\s\u0000-\u001f]/.test(value))return!1;try{return new URL(value),!0}catch{return!1}}const match=/^(\d{4}-\d{2}-\d{2})[Tt](\d{2}):(\d{2}):(\d{2})(?:\.\d+)?([Zz]|[+-](\d{2}):(\d{2}))$/.exec(value);return!!match&&validDate(match[1])&&Number(match[2])<=23&&Number(match[3])<=59&&Number(match[4])<=59&&(match[8]===void 0||Number(match[7])<=23&&Number(match[8])<=59)}function toolParamConstraintFailure(property,value){if(typeof value=="string"){const length=Array.from(value).length;if(property.minLength!==void 0&&length<property.minLength)return"minLength";if(property.maxLength!==void 0&&length>property.maxLength)return"maxLength";if(property.format!==void 0&&!validFormat(value,property.format))return"format";const choices=toolParamChoices(property);if(choices&&!choices.some(choice=>choice.value===value))return"selection"}if(typeof value=="number"){if(property.minimum!==void 0&&value<property.minimum)return"minimum";if(property.maximum!==void 0&&value>property.maximum)return"maximum"}if(property.type==="array"){if(!Array.isArray(value))return"selection";const choices=new Set(toolParamChoices(property)?.map(choice=>choice.value));if(value.some(entry=>typeof entry!="string"||!choices.has(entry))||new Set(value).size!==value.length)return"selection";if(property.minItems!==void 0&&value.length<property.minItems)return"minItems";if(property.maxItems!==void 0&&value.length>property.maxItems)return"maxItems"}}export{toolParamChoices,toolParamConstraintFailure,validToolParamConstraints};
|
|
1
|
+
const MAX_CHOICES=500,FORMATS=new Set(["email","uri","date","date-time"]),own=(object,key)=>Object.prototype.hasOwnProperty.call(object,key),choicesCache=new WeakMap,constraintsCache=new WeakMap;function toolParamChoices(property){if(choicesCache.has(property))return choicesCache.get(property);const choices=computeChoices(property);return choicesCache.set(property,choices),choices}function computeChoices(property){const titled=property.type==="array"?property.items?.anyOf:property.oneOf,values=property.type==="array"?property.items?.enum:property.enum;if(Array.isArray(titled))return Object.freeze(titled.slice(0,500).filter(option=>option&&typeof option.const=="string"&&typeof option.title=="string").map(option=>Object.freeze({value:option.const,label:option.title})));if(Array.isArray(values))return Object.freeze(values.slice(0,500).map((value,index)=>Object.freeze({value,label:property.type==="string"?property.enumNames?.[index]??value:value})))}function validTitledChoices(value){return Array.isArray(value)&&value.length>0&&value.length<=500&&Array.from(value).every(option=>option&&typeof option=="object"&&!Array.isArray(option)&&typeof option.const=="string"&&typeof option.title=="string"&&Object.keys(option).every(key=>key==="const"||key==="title"))}function validStringChoices(value){return Array.isArray(value)&&value.length<=500&&Array.from(value).every(choice=>typeof choice=="string")}function validToolParamConstraints(property){let valid=constraintsCache.get(property);return valid===void 0&&constraintsCache.set(property,valid=computeValidConstraints(property)),valid}function computeValidConstraints(property){for(const key of["minLength","maxLength","minItems","maxItems"]){const value=property[key];if(value!==void 0&&(!Number.isSafeInteger(value)||value<0))return!1}for(const key of["minimum","maximum"]){const value=property[key];if(value!==void 0&&(typeof value!="number"||!Number.isFinite(value)))return!1}for(const[min,max]of[["minLength","maxLength"],["minimum","maximum"],["minItems","maxItems"]])if(property[min]!==void 0&&property[max]!==void 0&&property[min]>property[max])return!1;if(property.format!==void 0&&!FORMATS.has(property.format)||["minLength","maxLength","format","oneOf","enumNames"].some(key=>own(property,key))&&property.type!=="string"||["minimum","maximum"].some(key=>own(property,key))&&property.type!=="number"&&property.type!=="integer"||["minItems","maxItems","items"].some(key=>own(property,key))&&property.type!=="array"||property.oneOf!==void 0&&(!validTitledChoices(property.oneOf)||property.enum!==void 0)||property.enumNames!==void 0&&(!validStringChoices(property.enumNames)||!property.enum||property.enumNames.length!==property.enum.length))return!1;if(property.type==="array"){const items=property.items;if(!items||typeof items!="object"||Array.isArray(items)||Object.keys(items).some(key=>key!=="type"&&key!=="enum"&&key!=="anyOf"))return!1;if(items.anyOf!==void 0){if(items.enum!==void 0||items.type!==void 0&&items.type!=="string"||!validTitledChoices(items.anyOf))return!1}else if(items.type!=="string"||!validStringChoices(items.enum)||items.enum?.length===0)return!1}const choices=toolParamChoices(property);return!(choices&&new Set(choices.map(choice=>choice.value)).size!==choices.length)}function validDate(value){const match=/^(\d{4})-(\d{2})-(\d{2})$/.exec(value);if(!match)return!1;const year=Number(match[1]),month=Number(match[2]),day=Number(match[3]),days=[31,year%4===0&&(year%100!==0||year%400===0)?29:28,31,30,31,30,31,31,30,31,30,31];return month>=1&&month<=12&&day>=1&&day<=days[month-1]}function validFormat(value,format){if(format==="date")return validDate(value);if(format==="email"){const at=value.lastIndexOf("@");if(at<=0||at!==value.indexOf("@"))return!1;const local=value.slice(0,at),domain=value.slice(at+1);return!/^[a-z\d.!#$%&'*+/=?^_`{|}~-]+$/i.test(local)||local.startsWith(".")||local.endsWith(".")||local.includes("..")?!1:domain.split(".").every(label=>label.length>0&&label.length<=63&&/^[a-z\d](?:[a-z\d-]*[a-z\d])?$/i.test(label))}if(format==="uri"){if(!/^[a-z][a-z\d+.-]*:/i.test(value)||/[\s\u0000-\u001f]/.test(value))return!1;try{return new URL(value),!0}catch{return!1}}const match=/^(\d{4}-\d{2}-\d{2})[Tt](\d{2}):(\d{2}):(\d{2})(?:\.\d+)?([Zz]|[+-](\d{2}):(\d{2}))$/.exec(value);return!!match&&validDate(match[1])&&Number(match[2])<=23&&Number(match[3])<=59&&Number(match[4])<=59&&(match[8]===void 0||Number(match[7])<=23&&Number(match[8])<=59)}function toolParamConstraintFailure(property,value){if(typeof value=="string"){const length=Array.from(value).length;if(property.minLength!==void 0&&length<property.minLength)return"minLength";if(property.maxLength!==void 0&&length>property.maxLength)return"maxLength";if(property.format!==void 0&&!validFormat(value,property.format))return"format";const choices=toolParamChoices(property);if(choices&&!choices.some(choice=>choice.value===value))return"selection"}if(typeof value=="number"){if(property.minimum!==void 0&&value<property.minimum)return"minimum";if(property.maximum!==void 0&&value>property.maximum)return"maximum"}if(property.type==="array"){if(!Array.isArray(value))return"selection";const choices=new Set(toolParamChoices(property)?.map(choice=>choice.value));if(value.some(entry=>typeof entry!="string"||!choices.has(entry))||new Set(value).size!==value.length)return"selection";if(property.minItems!==void 0&&value.length<property.minItems)return"minItems";if(property.maxItems!==void 0&&value.length>property.maxItems)return"maxItems"}}export{toolParamChoices,toolParamConstraintFailure,validToolParamConstraints};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{type TemplateResult,type PropertyValues}from'lit';import{
|
|
1
|
+
import{type TemplateResult,type PropertyValues}from'lit';import{type LyraEventDetailSnapshot}from'../../../internal/lyra-element.js';import{LyraFormControlElement}from'../../../internal/form-control-element.js';import type{FlatToolParamSchema,ToolParamFormValue}from'./tool-param-types.js';export type{FlatToolParamSchema,ToolParamFormProperty,ToolParamFormPropertyType,ToolParamFormPrimitive,ToolParamFormValue,ToolParamStringFormat,ToolParamEnumOption,ToolParamEnumItems}from'./tool-param-types.js';import'../../forms/select/select.class.js';import'../../forms/combobox/option.class.js';import'../../forms/input/number-input.class.js';import{type FormOwnerValue}from'../../../internal/form-associated.js';export interface LyraToolParamFormEventMap{'lr-invalid':CustomEvent<null>;'lr-validity-change':CustomEvent<LyraEventDetailSnapshot<{readonly valid:boolean;readonly errors:Readonly<Record<string,string>>;}>>;'lr-input':CustomEvent<LyraEventDetailSnapshot<{readonly value:ToolParamFormValue;}>>;'lr-change':CustomEvent<LyraEventDetailSnapshot<{readonly value:ToolParamFormValue;}>>;input:Event;change:Event;blur:FocusEvent;focus:FocusEvent;}
|
|
2
2
|
/**
|
|
3
3
|
* `<lr-tool-param-form>` — renders one form control per top-level property
|
|
4
4
|
* of a JSON Schema object, for ad hoc tool invocation or approval-editing UIs
|
|
@@ -129,11 +129,9 @@ import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement,type
|
|
|
129
129
|
* @status stable
|
|
130
130
|
* @since 4.0.0
|
|
131
131
|
*/
|
|
132
|
-
export declare class LyraToolParamForm extends
|
|
132
|
+
export declare class LyraToolParamForm extends LyraFormControlElement<LyraToolParamFormEventMap>{static formAssociated:boolean;static styles:import("lit").CSSResultGroup[];protected static collectionSupport:import("../../../internal/lyra-element.js").LyraCollectionSupport;protected static readonly immutableEventDetails:readonly string[];static properties:{customError:{attribute:string;reflect:boolean;noAccessor:boolean;};name:{reflect:boolean;noAccessor:boolean;};schema:{attribute:boolean;noAccessor:boolean;};value:{attribute:boolean;noAccessor:boolean;};disabled:{type:BooleanConstructor;reflect:boolean;noAccessor:boolean;};};private _errors;private _formError;private showFormError;private touchedFields;private internals;private validityController;
|
|
133
133
|
/** Consumer-supplied validation message reflected through `custom-error`. */
|
|
134
|
-
customError:string|null;private baseId;private _fieldsetDisabled;private _name;private _schema;private schemaInputShapeError;private schemaInputExceededLimits;private _value;private lastSchemaInput;private lastValueInput;private valueInputInvalid;private valueInputTruncated;private defaultValueSnapshot;private defaultValueCaptured;private _effectiveValue;private _validityFlags;private _disabled;private lastValidityKey;private hasInteracted;private errorAnnouncementSink?;private visibleErrorSnapshot;private suppressNextErrorAnnouncement;constructor();get form():HTMLFormElement|null;set form(owner:FormOwnerValue);
|
|
135
|
-
/** Returns the browser-resolved owning form, including an external owner selected by `form`. */
|
|
136
|
-
getForm():HTMLFormElement|null;get labels():NodeList;get validity():ValidityState;get validationMessage():string;get willValidate():boolean;private firstInvalidField;private get missingRequiredKeys();private firstMissingPropertyError;private focusFirstControl;
|
|
134
|
+
customError:string|null;private baseId;private _fieldsetDisabled;private _name;private _schema;private schemaInputShapeError;private schemaInputExceededLimits;private _value;private lastSchemaInput;private lastValueInput;private valueInputInvalid;private valueInputTruncated;private defaultValueSnapshot;private defaultValueCaptured;private _effectiveValue;private _validityFlags;private _disabled;private lastValidityKey;private hasInteracted;private errorAnnouncementSink?;private visibleErrorSnapshot;private suppressNextErrorAnnouncement;constructor();get form():HTMLFormElement|null;set form(owner:FormOwnerValue);private firstInvalidField;private get missingRequiredKeys();private firstMissingPropertyError;private focusFirstControl;
|
|
137
135
|
/** Forwards host clicks to the first rendered form field so the component behaves like a regular
|
|
138
136
|
* control from caller code and event re-dispatch paths.
|
|
139
137
|
*/
|