@aceshooting/lyra-ui 14.3.2 → 15.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 +103 -0
- package/custom-elements.json +1 -1
- package/design-tokens.json +1 -1
- package/dist/cli/migration-contract.json +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts +4 -0
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js +3 -3
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js +3 -2
- package/dist/components/agent-tools/artifact-panel/artifact-panel.styles.js +1 -1
- package/dist/components/agent-tools/commit-card/commit-card.styles.js +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.styles.js +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +8 -3
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +3 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js +10 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.styles.js +1 -1
- package/dist/components/agent-tools/span-waterfall/span-waterfall.class.js +1 -1
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.d.ts +19 -1
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +4 -4
- package/dist/components/agent-tools/subagent-panel/subagent-panel.styles.js +1 -1
- package/dist/components/agent-tools/task-list/task-list.class.d.ts +5 -0
- package/dist/components/agent-tools/task-list/task-list.class.js +3 -3
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +1 -1
- package/dist/components/agent-tools/terminal/terminal.styles.js +1 -1
- package/dist/components/agent-tools/test-results/test-results.class.js +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +10 -7
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +15 -14
- package/dist/components/agent-tools/tool-param-form/tool-param-form.d.ts +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.js +1 -1
- package/dist/components/agent-tools/tool-param-form/tool-param-form.styles.js +1 -1
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.d.ts +5 -2
- package/dist/components/agent-tools/tool-result-dialog/tool-result-dialog.class.js +1 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts +3 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js +9 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.styles.js +1 -1
- package/dist/components/charts/chart/box-plot.class.d.ts +64 -4
- package/dist/components/charts/chart/box-plot.class.js +5 -5
- package/dist/components/charts/chart/chart-colors.d.ts +10 -0
- package/dist/components/charts/chart/chart-colors.js +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +35 -10
- package/dist/components/charts/chart/chart.class.js +4 -4
- package/dist/components/charts/chart/lite-chart.class.d.ts +10 -2
- package/dist/components/charts/chart/lite-chart.styles.js +1 -1
- package/dist/components/conversation/markdown/markdown.class.d.ts +9 -1
- package/dist/components/conversation/markdown/markdown.class.js +1 -1
- package/dist/components/conversation/message-parts/message-parts.class.d.ts +18 -1
- package/dist/components/conversation/message-parts/message-parts.class.js +4 -4
- package/dist/components/conversation/model-select/model-select.class.d.ts +6 -2
- package/dist/components/conversation/model-select/model-select.class.js +3 -3
- package/dist/components/conversation/prompt-input/prompt-input.styles.js +1 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.d.ts +5 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +1 -1
- package/dist/components/data/calendar/calendar.class.js +2 -2
- package/dist/components/data/context-meter/context-meter.styles.js +1 -1
- package/dist/components/data/data-grid/data-grid-types.d.ts +8 -2
- package/dist/components/data/data-grid/data-grid.class.d.ts +16 -3
- package/dist/components/data/data-grid/data-grid.class.js +3 -2
- package/dist/components/data/env-list/env-list.styles.js +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +22 -2
- package/dist/components/data/flow-canvas/flow-canvas.class.js +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.class.d.ts +12 -4
- package/dist/components/data/flow-minimap/flow-minimap.class.js +2 -2
- package/dist/components/data/flow-minimap/flow-minimap.styles.js +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +5 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +12 -1
- package/dist/components/data/heatmap/heatmap.class.js +3 -3
- package/dist/components/data/heatmap/heatmap.styles.js +1 -1
- package/dist/components/forms/code-editor/code-editor.class.js +1 -1
- package/dist/components/forms/combobox/combobox.class.js +1 -1
- package/dist/components/forms/combobox/combobox.styles.js +1 -1
- package/dist/components/forms/date-picker/date-input.class.js +1 -1
- package/dist/components/forms/date-picker/date-picker.class.d.ts +12 -1
- package/dist/components/forms/date-picker/date-picker.class.js +1 -1
- package/dist/components/forms/icon-button/icon-button.class.d.ts +27 -5
- package/dist/components/forms/icon-button/icon-button.class.js +7 -3
- package/dist/components/forms/input/input.styles.js +1 -1
- package/dist/components/forms/input/time-input.class.d.ts +13 -2
- package/dist/components/forms/input/time-input.class.js +1 -1
- package/dist/components/forms/otp-input/otp-input.class.d.ts +8 -1
- package/dist/components/forms/otp-input/otp-input.class.js +1 -1
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts +1 -1
- package/dist/components/forms/rubric-form/rubric-form.class.js +1 -1
- package/dist/components/forms/select/select.class.d.ts +1 -1
- package/dist/components/forms/select/select.class.js +1 -1
- package/dist/components/forms/slider/slider.class.d.ts +4 -1
- package/dist/components/forms/slider/slider.class.js +1 -1
- package/dist/components/forms/textarea/textarea.class.d.ts +9 -4
- package/dist/components/forms/textarea/textarea.class.js +1 -1
- package/dist/components/forms/time-range/time-range.class.js +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +7 -2
- package/dist/components/layout/app-rail/app-rail.class.js +1 -1
- package/dist/components/layout/card/card.class.js +2 -2
- package/dist/components/layout/card/card.styles.js +1 -1
- package/dist/components/layout/control-group/control-group.class.js +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js +1 -1
- package/dist/components/layout/details/details.styles.js +1 -1
- package/dist/components/layout/filter-bar/filter-bar.class.d.ts +13 -3
- package/dist/components/layout/filter-bar/filter-bar.class.js +1 -1
- package/dist/components/layout/menu/dropdown-item.class.d.ts +2 -0
- package/dist/components/layout/menu/menu-item.class.d.ts +28 -1
- package/dist/components/layout/menu/menu-item.class.js +45 -35
- package/dist/components/layout/menu/menu-item.styles.js +1 -1
- package/dist/components/layout/menu/menu.class.js +1 -1
- package/dist/components/layout/multi-split/multi-split.class.d.ts +12 -2
- package/dist/components/layout/multi-split/multi-split.class.js +1 -1
- package/dist/components/layout/page/page.class.js +2 -1
- package/dist/components/layout/page/page.styles.js +1 -1
- package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +6 -4
- package/dist/components/layout/responsive-panel/responsive-panel.class.js +2 -2
- package/dist/components/layout/responsive-panel/responsive-panel.styles.js +1 -1
- package/dist/components/layout/stepper/stepper.class.js +2 -2
- package/dist/components/layout/virtual-list/virtual-list.class.js +2 -2
- package/dist/components/layout/widget/widget.class.d.ts +12 -2
- package/dist/components/layout/widget/widget.class.js +2 -2
- package/dist/components/media/attachment-trigger/attachment-trigger.class.d.ts +1 -1
- package/dist/components/media/attachment-trigger/attachment-trigger.class.js +3 -3
- package/dist/components/media/file-icon/file-icon.class.d.ts +3 -1
- package/dist/components/media/file-icon/file-icon.class.js +1 -1
- package/dist/components/media/file-input/file-input.class.d.ts +1 -1
- package/dist/components/media/file-input/file-input.class.js +1 -1
- package/dist/components/media/flag/flag.styles.js +1 -1
- package/dist/components/media/image-comparer/image-comparer.class.d.ts +5 -5
- package/dist/components/media/image-comparer/image-comparer.class.js +1 -1
- package/dist/components/media/image-comparer/image-comparer.styles.js +1 -1
- package/dist/components/media/lightbox/lightbox.styles.js +1 -1
- package/dist/components/media/map/map.styles.js +1 -1
- package/dist/components/media/sequence-playback/sequence-playback.class.js +1 -1
- package/dist/components/media/video-playlist/video-playlist.class.js +1 -1
- package/dist/components/media/video-playlist/video-playlist.styles.js +1 -1
- package/dist/components/overlays/alert/alert.class.d.ts +6 -0
- package/dist/components/overlays/alert/alert.styles.js +1 -1
- package/dist/components/overlays/empty/empty.class.js +2 -2
- package/dist/components/overlays/kbd/kbd.styles.js +1 -1
- package/dist/components/overlays/progress/progress-ring.class.d.ts +4 -1
- package/dist/components/overlays/progress/progress.styles.js +1 -1
- package/dist/components/overlays/toast/toast.styles.js +1 -1
- package/dist/components/retrieval/graph/graph-canvas.js +1 -1
- package/dist/components/retrieval/graph/graph.class.d.ts +10 -3
- package/dist/components/retrieval/graph/graph.class.js +1 -1
- package/dist/components/retrieval/graph/graph.styles.js +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +6 -6
- package/dist/components/retrieval/knowledge-base-admin/knowledge-base-admin.class.js +2 -2
- package/dist/components/retrieval/mind-map/mind-map.styles.js +1 -1
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.d.ts +3 -3
- package/dist/components/retrieval/neighbor-list/neighbor-list.class.js +3 -3
- package/dist/components/retrieval/node-palette/node-palette.class.d.ts +7 -1
- package/dist/components/retrieval/node-palette/node-palette.class.js +23 -13
- package/dist/components/retrieval/node-palette/node-palette.styles.js +1 -1
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts +4 -1
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js +1 -1
- package/dist/components/retrieval/retrieval-search/retrieval-search.class.js +4 -3
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +1 -1
- package/dist/components/retrieval/source-list/source-list.class.d.ts +7 -1
- package/dist/components/retrieval/source-list/source-list.class.js +1 -1
- package/dist/components/utility/export-button/export-button.class.d.ts +14 -2
- package/dist/components/utility/export-button/export-button.class.js +3 -3
- package/dist/components/utility/export-button/export-button.styles.js +1 -1
- package/dist/components/utility/json-viewer/json-viewer.styles.js +1 -1
- package/dist/components/utility/known-date/known-date.class.js +1 -1
- package/dist/components/utility/mention-popover/mention-popover.class.d.ts +4 -2
- package/dist/components/utility/mention-popover/mention-popover.class.js +1 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.class.d.ts +9 -1
- package/dist/components/viewers/csv-viewer/csv-viewer.class.js +4 -4
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +4 -4
- package/dist/components/viewers/document-compare/document-compare.class.d.ts +5 -0
- package/dist/components/viewers/document-compare/document-compare.class.js +9 -4
- package/dist/components/viewers/document-compare/document-compare.styles.js +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.d.ts +9 -1
- package/dist/components/viewers/document-preview/document-preview.class.js +2 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts +5 -0
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +5 -0
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +1 -1
- package/dist/components/viewers/spreadsheet-viewer/spreadsheet-viewer.class.js +3 -3
- package/dist/components/viewers/xml-viewer/xml-viewer.styles.js +1 -1
- package/dist/custom-elements-jsx.d.ts +1 -1
- package/dist/events.d.ts +5 -4
- package/dist/internal/package-metadata.d.ts +1 -1
- package/dist/internal/package-metadata.js +1 -1
- package/dist/lyra.d.ts +1 -1
- package/dist/svelte.d.ts +1 -1
- package/dist/vue.d.ts +1 -1
- package/llms/components/lr-alert.md +11 -3
- package/llms/components/lr-box-plot.md +21 -4
- package/llms/components/lr-chart.md +13 -4
- package/llms/components/lr-code-block.md +5 -4
- package/llms/components/lr-data-grid.md +24 -10
- package/llms/components/lr-document-compare.md +5 -0
- package/llms/components/lr-dropdown-item.md +24 -0
- package/llms/components/lr-eval-dataset.md +5 -4
- package/llms/components/lr-export-button.md +10 -5
- package/llms/components/lr-filter-bar.md +4 -1
- package/llms/components/lr-flow-minimap.md +7 -1
- package/llms/components/lr-icon-button.md +6 -1
- package/llms/components/lr-lite-chart.md +2 -1
- package/llms/components/lr-markdown.md +2 -2
- package/llms/components/lr-menu-item.md +24 -0
- package/llms/components/lr-menu.md +24 -0
- package/llms/components/lr-message-parts.md +7 -0
- package/llms/components/lr-model-settings-panel.md +4 -1
- package/llms/components/lr-node-palette.md +5 -4
- package/llms/components/lr-pdf-viewer.md +7 -0
- package/llms/components/lr-responsive-panel.md +2 -2
- package/llms/components/lr-subagent-panel.md +17 -2
- package/llms/components/lr-thinking-panel.md +4 -0
- package/llms/components/lr-timeline-item.md +1 -1
- package/llms/components/lr-timeline.md +1 -1
- package/llms/components/lr-tool-select-dialog.md +4 -3
- package/llms/components/lr-virtual-list.md +11 -11
- package/llms-full.txt +205 -59
- package/package.json +3 -3
- package/vscode-css-data.json +1 -1
- package/vscode-html-data.json +1 -1
- package/web-types.json +1 -1
|
@@ -23,7 +23,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
23
23
|
></lr-code-block>`:html`<pre part="raw-source" tabindex="0">${joinSource(c.source)}</pre>`}
|
|
24
24
|
${c.cell_type==="code"&&c.outputs?.length?html`<div part="outputs">${c.outputs.map((o,i)=>this.renderOutput(index,o,i))}</div>`:nothing}
|
|
25
25
|
</div>
|
|
26
|
-
</div>`}}static{this.defaultStrings={...super.defaultStrings,anchorJumped:LYRA_DEFAULT_anchorJumped,anchorJumpedToPage:LYRA_DEFAULT_anchorJumpedToPage,anchorNotFound:LYRA_DEFAULT_anchorNotFound,documentPreviewEmpty:LYRA_DEFAULT_documentPreviewEmpty,documentPreviewFailedToLoad:LYRA_DEFAULT_documentPreviewFailedToLoad,documentPreviewResourceTooLarge:LYRA_DEFAULT_documentPreviewResourceTooLarge,documentPreviewTypeDocument:LYRA_DEFAULT_documentPreviewTypeDocument,documentPreviewUrlNotAllowed:LYRA_DEFAULT_documentPreviewUrlNotAllowed,documentViewerMissingSanitizer:LYRA_DEFAULT_documentViewerMissingSanitizer,loadingDocument:LYRA_DEFAULT_loadingDocument,notebookViewerCodeCell:LYRA_DEFAULT_notebookViewerCodeCell,notebookViewerCollapseOutput:LYRA_DEFAULT_notebookViewerCollapseOutput,notebookViewerErrorOutput:LYRA_DEFAULT_notebookViewerErrorOutput,notebookViewerInPrompt:LYRA_DEFAULT_notebookViewerInPrompt,notebookViewerInPromptEmpty:LYRA_DEFAULT_notebookViewerInPromptEmpty,notebookViewerInvalid:LYRA_DEFAULT_notebookViewerInvalid,notebookViewerLabel:LYRA_DEFAULT_notebookViewerLabel,notebookViewerMarkdownCell:LYRA_DEFAULT_notebookViewerMarkdownCell,notebookViewerRawCell:LYRA_DEFAULT_notebookViewerRawCell,notebookViewerShowAllOutput:LYRA_DEFAULT_notebookViewerShowAllOutput,notebookViewerTooManyCells:LYRA_DEFAULT_notebookViewerTooManyCells,notebookViewerUnrenderedOutput:LYRA_DEFAULT_notebookViewerUnrenderedOutput,notebookViewerUnsupportedVersion:LYRA_DEFAULT_notebookViewerUnsupportedVersion}}static{this.ownedCollectionProperties=Object.freeze(["notebook"])}static{this.identityCollectionObjectProperties=Object.freeze(["notebook"])}static{this.styles=[LyraElement.styles,specialistTokens,styles,srOnly,viewerLoadingStyles]}get notebook(){return this._notebook}set notebook(value){const old=this._notebook,next=typeof value=="string"||value===void 0?value:(()=>{const snapshot=snapshotNotebookDocument(value);return snapshot===OMIT_NOTEBOOK_SNAPSHOT?invalidNotebookSnapshot():snapshot})();Object.is(old,next)||(this._notebook=next,this.requestUpdate("notebook",old),next===void 0?(this.beginSourceTransition(this.src?"loading":"idle"),this.isConnected&&this.scheduleSourceLoad()):this.parseInline())}get source(){return resolveViewerSource(this.src,this._notebook)}get effectiveOutputCollapseLines(){return finiteCount(this.outputCollapseLines,40)}updated(changed){super.updated(changed),this.announcements.transition("load",this.loadState.kind,this.loadState.kind==="error"?this.loadState.message:this.localize("loadingDocument")),changed.has("src")&&this._notebook===void 0&&this.scheduleSourceLoad();const locale=this.effectiveLocale;if(locale!==this.lastSearchLocale){const shouldRecompute=this.searchQuery!=="";this.lastSearchLocale=locale,shouldRecompute&&this.scheduleAfterUpdate(()=>{this.search(this.searchQuery)},"search")}}willUpdate(changed){super.willUpdate(changed),changed.has("src")&&this._notebook===void 0&&this.beginSourceTransition(this.src?"loading":"idle"),(changed.has("highlights")||changed.has("activeHighlightId")||changed.has("loadState"))&&this.repaintHighlights()}connectedCallback(){super.connectedCallback(),this.announcements.connect(),this.hasUpdated&&this.src&&this._notebook===void 0&&this.scheduleSourceLoad(),this.hasUpdated&&this._notebook!==void 0&&this.loadState.kind==="loaded"&&this.requestUpdate()}disconnectedCallback(){this.generation++,this.sanitizerGeneration++,this.beginAbortableLoad(),this.sanitizedOutputCache.clear(),this.sanitizationTasks.clear(),this.sanitizerFailureReported=!1,this.sourceLoadScheduled=!1,this._notebook===void 0&&(this.loadState={kind:"idle"}),this.announcements.disconnect(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.announcements.adopted()}parseInline(){if(this._notebook===void 0)return;const generation=++this.generation;this.beginAbortableLoad(),this.resetParsedState(),this.loadState={kind:"idle"};try{const raw=typeof this._notebook=="string"?JSON.parse(this._notebook):this._notebook;this.setDoc(raw,generation)}catch(error){this.loadState={kind:"error",message:this.localize("notebookViewerInvalid")},this.emit("lr-render-error",{error})}}resetParsedState(){const shouldEmitSearchReset=this.searchQuery!==""||this.searchMatches.length>0||!this.searchMatchCountExact||this.activeSearchIndex!==-1;this.sanitizerGeneration++,this.sanitizedOutputCache.clear(),this.sanitizationTasks.clear(),this.sanitizerFailureReported=!1,this.expandedOutputs=new Set,this.clearSearchState(),this.activeCellIndex=null,shouldEmitSearchReset&&this.emitSearchChange()}beginSourceTransition(kind){this.generation++,this.beginAbortableLoad(),this.resetParsedState(),this.loadState={kind}}scheduleSourceLoad(){this.sourceLoadScheduled||(this.sourceLoadScheduled=!0,this.scheduleAfterUpdate(()=>{this.sourceLoadScheduled=!1,this.isConnected&&this._notebook===void 0&&this.loadFromSrc()}))}async loadFromSrc(){if(!this.isConnected||this._notebook!==void 0)return;const generation=++this.generation,signal=this.beginAbortableLoad();if(!this.src){this.loadState={kind:"idle"};return}const fetchTarget=resolveOwnerFetchTarget(this,this.src);if(!fetchTarget){const error=new LyraUserFacingError(this.localize("documentPreviewUrlNotAllowed"));this.loadState={kind:"error",message:error.message},this.emit("lr-render-error",{error});return}this.loadState={kind:"loading"};try{const response=await fetchTarget.view.fetch(fetchTarget.url,signal?{signal}:void 0);if(!this.isConnected||generation!==this.generation)return;if(!response.ok)throw new Error(`${response.status} ${response.statusText}`);const text=await readResponseText(response);if(!this.isConnected||generation!==this.generation)return;this.setDoc(JSON.parse(text),generation)}catch(error){if(isAbortError(error)||!this.isConnected||generation!==this.generation)return;this.loadState={kind:"error",message:error instanceof LyraUserFacingError?error.message:this.localize(isResourceLimitError(error)?"documentPreviewResourceTooLarge":"documentPreviewFailedToLoad")},this.emit("lr-render-error",{error})}}setDoc(raw,generation){if(generation!==this.generation)return;if(!isNotebookShape(raw)){this.loadState={kind:"error",message:this.localize("notebookViewerInvalid")},this.emit("lr-render-error",{error:new Error("invalid notebook shape")});return}if(raw.nbformat!==SUPPORTED_MAJOR||!SUPPORTED_MINORS.includes(raw.nbformat_minor)){this.loadState={kind:"error",message:this.localize("notebookViewerUnsupportedVersion",void 0,{version:`${raw.nbformat}.${raw.nbformat_minor}`})},this.emit("lr-render-error",{error:new Error("unsupported nbformat version")});return}if(raw.cells.length>MAX_CELLS){this.loadState={kind:"error",message:this.localize("notebookViewerTooManyCells")},this.emit("lr-render-error",{error:new Error("too many cells")});return}this.resetParsedState(),this.loadState={kind:"loaded",doc:raw};const language=raw.metadata?.language_info?.name??raw.metadata?.kernelspec?.language??"";this.emit("lr-load",{cellCount:raw.cells.length,language})}async applyAnchor(anchor){const index=this.resolveAnchorCellIndex(anchor);return index<0?!1:this.activateCell(index,"start")}async activateCell(index,align){const generation=this.generation,ownerDocument=this.ownerDocument;if(this.activeCellIndex=index,!this.isConnected||(await this.updateComplete,!this.isConnected||this.ownerDocument!==ownerDocument||generation!==this.generation||this.activeCellIndex!==index))return!1;const list=this.virtualListEl;return!list||(await list.updateComplete,!this.isConnected||this.ownerDocument!==ownerDocument||generation!==this.generation||this.activeCellIndex!==index)?!1:(list.scrollToIndex(index,{align,behavior:"auto"}),await list.updateComplete,this.isConnected&&this.ownerDocument===ownerDocument&&generation===this.generation&&this.activeCellIndex===index)}resolveAnchorCellIndex(anchor){if(this.loadState.kind!=="loaded")return-1;const cells=this.loadState.doc.cells;let index=-1;if(anchor.kind==="node-path"&&Number.isInteger(anchor.path[0]))index=anchor.path[0];else if(anchor.kind==="fragment")index=cells.findIndex(c=>c.id===anchor.id);else return-1;return index<0||index>=cells.length?-1:index}repaintHighlights(){if(this.loadState.kind!=="loaded"){this.highlightedCells.size>0&&(this.highlightedCells=new Map);return}const next=new Map;let considered=0;for(const highlight of prioritizedHighlightCandidates(this.highlights,this.activeHighlightId)){if(considered>=MAX_NOTEBOOK_PAINTED_HIGHLIGHTS)break;considered++;const index=this.resolveAnchorCellIndex(highlight.anchor);index<0||next.has(index)||next.set(index,highlight)}this.highlightedCells=next}async search(query2){const boundedQuery=boundedViewerSearchQuery(query2,this.effectiveLocale),q=boundedQuery.needle;if(this.searchQuery=query2,this.lastSearchLocale=this.effectiveLocale,this.searchMatchCountExact=boundedQuery.accepted,this.loadState.kind!=="loaded"||!q||!boundedQuery.accepted)this.searchMatches=[];else{const budget=new ViewerSearchWorkBudget,matches=[];for(let index=0;index<this.loadState.doc.cells.length;index++){const cell=this.loadState.doc.cells[index],sourceParts=typeof cell.source=="string"?[cell.source]:cell.source,sourceMatch=budget.includesJoined(sourceParts,q,this.effectiveLocale),outputMatch=sourceMatch?!1:budget.includesJoined(notebookOutputSearchParts(cell.outputs??[]),q,this.effectiveLocale);if((sourceMatch||outputMatch)&&matches.push(index),!budget.complete){this.searchMatchCountExact=!1;break}}this.searchMatches=matches}return this.activeSearchIndex=this.searchMatches.length?0:-1,await this.activateSearchMatch(),this.emitSearchChange(),this.searchMatches.length}async searchNext(){return this.searchMatches.length?(this.activeSearchIndex=(this.activeSearchIndex+1)%this.searchMatches.length,await this.activateSearchMatch(),this.emitSearchChange(),!0):!1}async searchPrevious(){return this.searchMatches.length?(this.activeSearchIndex=(this.activeSearchIndex-1+this.searchMatches.length)%this.searchMatches.length,await this.activateSearchMatch(),this.emitSearchChange(),!0):!1}clearSearch(){this.clearSearchState(),this.emitSearchChange()}clearSearchState(){this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.activeSearchIndex=-1}async activateSearchMatch(){const index=this.searchMatches[this.activeSearchIndex];index!==void 0&&await this.activateCell(index,"auto")}emitSearchChange(){this.emit("lr-search-change",{query:this.searchQuery,matchCount:this.searchMatches.length,matchCountExact:this.searchMatchCountExact,activeIndex:this.activeSearchIndex})}toggleOutput(index){const next=new Set(this.expandedOutputs);next.has(index)?next.delete(index):next.add(index),this.expandedOutputs=next}renderAnsiText(text){const segments=createAnsiParser().push(text);return html`${segments.map(seg=>html`<span style=${styleMap(this.segmentStyle(seg.styles))}>${seg.text}</span>`)}`}segmentStyle(s){const fg=sanitizeCssColor(s.fg)??"var(--lr-color-text)",bg=sanitizeCssColor(s.bg)??"transparent";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:fg,"background-color":s.inverse?fg:bg}}renderTextOutput(index,text,tone){const lines=text.split(`
|
|
26
|
+
</div>`}}static{this.defaultStrings={...super.defaultStrings,anchorJumped:LYRA_DEFAULT_anchorJumped,anchorJumpedToPage:LYRA_DEFAULT_anchorJumpedToPage,anchorNotFound:LYRA_DEFAULT_anchorNotFound,documentPreviewEmpty:LYRA_DEFAULT_documentPreviewEmpty,documentPreviewFailedToLoad:LYRA_DEFAULT_documentPreviewFailedToLoad,documentPreviewResourceTooLarge:LYRA_DEFAULT_documentPreviewResourceTooLarge,documentPreviewTypeDocument:LYRA_DEFAULT_documentPreviewTypeDocument,documentPreviewUrlNotAllowed:LYRA_DEFAULT_documentPreviewUrlNotAllowed,documentViewerMissingSanitizer:LYRA_DEFAULT_documentViewerMissingSanitizer,loadingDocument:LYRA_DEFAULT_loadingDocument,notebookViewerCodeCell:LYRA_DEFAULT_notebookViewerCodeCell,notebookViewerCollapseOutput:LYRA_DEFAULT_notebookViewerCollapseOutput,notebookViewerErrorOutput:LYRA_DEFAULT_notebookViewerErrorOutput,notebookViewerInPrompt:LYRA_DEFAULT_notebookViewerInPrompt,notebookViewerInPromptEmpty:LYRA_DEFAULT_notebookViewerInPromptEmpty,notebookViewerInvalid:LYRA_DEFAULT_notebookViewerInvalid,notebookViewerLabel:LYRA_DEFAULT_notebookViewerLabel,notebookViewerMarkdownCell:LYRA_DEFAULT_notebookViewerMarkdownCell,notebookViewerRawCell:LYRA_DEFAULT_notebookViewerRawCell,notebookViewerShowAllOutput:LYRA_DEFAULT_notebookViewerShowAllOutput,notebookViewerTooManyCells:LYRA_DEFAULT_notebookViewerTooManyCells,notebookViewerUnrenderedOutput:LYRA_DEFAULT_notebookViewerUnrenderedOutput,notebookViewerUnsupportedVersion:LYRA_DEFAULT_notebookViewerUnsupportedVersion}}static{this.ownedCollectionProperties=Object.freeze(["notebook"])}static{this.identityCollectionObjectProperties=Object.freeze(["notebook"])}static{this.styles=[LyraElement.styles,specialistTokens,styles,srOnly,viewerLoadingStyles]}get notebook(){return this._notebook}set notebook(value){const old=this._notebook,next=typeof value=="string"||value===void 0?value:(()=>{const snapshot=snapshotNotebookDocument(value);return snapshot===OMIT_NOTEBOOK_SNAPSHOT?invalidNotebookSnapshot():snapshot})();Object.is(old,next)||(this._notebook=next,this.requestUpdate("notebook",old),next===void 0?(this.beginSourceTransition(this.src?"loading":"idle"),this.isConnected&&this.scheduleSourceLoad()):this.parseInline())}get source(){return resolveViewerSource(this.src,this._notebook)}set source(_value){}get effectiveOutputCollapseLines(){return finiteCount(this.outputCollapseLines,40)}updated(changed){super.updated(changed),this.announcements.transition("load",this.loadState.kind,this.loadState.kind==="error"?this.loadState.message:this.localize("loadingDocument")),changed.has("src")&&this._notebook===void 0&&this.scheduleSourceLoad();const locale=this.effectiveLocale;if(locale!==this.lastSearchLocale){const shouldRecompute=this.searchQuery!=="";this.lastSearchLocale=locale,shouldRecompute&&this.scheduleAfterUpdate(()=>{this.search(this.searchQuery)},"search")}}willUpdate(changed){super.willUpdate(changed),changed.has("src")&&this._notebook===void 0&&this.beginSourceTransition(this.src?"loading":"idle"),(changed.has("highlights")||changed.has("activeHighlightId")||changed.has("loadState"))&&this.repaintHighlights()}connectedCallback(){super.connectedCallback(),this.announcements.connect(),this.hasUpdated&&this.src&&this._notebook===void 0&&this.scheduleSourceLoad(),this.hasUpdated&&this._notebook!==void 0&&this.loadState.kind==="loaded"&&this.requestUpdate()}disconnectedCallback(){this.generation++,this.sanitizerGeneration++,this.beginAbortableLoad(),this.sanitizedOutputCache.clear(),this.sanitizationTasks.clear(),this.sanitizerFailureReported=!1,this.sourceLoadScheduled=!1,this._notebook===void 0&&(this.loadState={kind:"idle"}),this.announcements.disconnect(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.announcements.adopted()}parseInline(){if(this._notebook===void 0)return;const generation=++this.generation;this.beginAbortableLoad(),this.resetParsedState(),this.loadState={kind:"idle"};try{const raw=typeof this._notebook=="string"?JSON.parse(this._notebook):this._notebook;this.setDoc(raw,generation)}catch(error){this.loadState={kind:"error",message:this.localize("notebookViewerInvalid")},this.emit("lr-render-error",{error})}}resetParsedState(){const shouldEmitSearchReset=this.searchQuery!==""||this.searchMatches.length>0||!this.searchMatchCountExact||this.activeSearchIndex!==-1;this.sanitizerGeneration++,this.sanitizedOutputCache.clear(),this.sanitizationTasks.clear(),this.sanitizerFailureReported=!1,this.expandedOutputs=new Set,this.clearSearchState(),this.activeCellIndex=null,shouldEmitSearchReset&&this.emitSearchChange()}beginSourceTransition(kind){this.generation++,this.beginAbortableLoad(),this.resetParsedState(),this.loadState={kind}}scheduleSourceLoad(){this.sourceLoadScheduled||(this.sourceLoadScheduled=!0,this.scheduleAfterUpdate(()=>{this.sourceLoadScheduled=!1,this.isConnected&&this._notebook===void 0&&this.loadFromSrc()}))}async loadFromSrc(){if(!this.isConnected||this._notebook!==void 0)return;const generation=++this.generation,signal=this.beginAbortableLoad();if(!this.src){this.loadState={kind:"idle"};return}const fetchTarget=resolveOwnerFetchTarget(this,this.src);if(!fetchTarget){const error=new LyraUserFacingError(this.localize("documentPreviewUrlNotAllowed"));this.loadState={kind:"error",message:error.message},this.emit("lr-render-error",{error});return}this.loadState={kind:"loading"};try{const response=await fetchTarget.view.fetch(fetchTarget.url,signal?{signal}:void 0);if(!this.isConnected||generation!==this.generation)return;if(!response.ok)throw new Error(`${response.status} ${response.statusText}`);const text=await readResponseText(response);if(!this.isConnected||generation!==this.generation)return;this.setDoc(JSON.parse(text),generation)}catch(error){if(isAbortError(error)||!this.isConnected||generation!==this.generation)return;this.loadState={kind:"error",message:error instanceof LyraUserFacingError?error.message:this.localize(isResourceLimitError(error)?"documentPreviewResourceTooLarge":"documentPreviewFailedToLoad")},this.emit("lr-render-error",{error})}}setDoc(raw,generation){if(generation!==this.generation)return;if(!isNotebookShape(raw)){this.loadState={kind:"error",message:this.localize("notebookViewerInvalid")},this.emit("lr-render-error",{error:new Error("invalid notebook shape")});return}if(raw.nbformat!==SUPPORTED_MAJOR||!SUPPORTED_MINORS.includes(raw.nbformat_minor)){this.loadState={kind:"error",message:this.localize("notebookViewerUnsupportedVersion",void 0,{version:`${raw.nbformat}.${raw.nbformat_minor}`})},this.emit("lr-render-error",{error:new Error("unsupported nbformat version")});return}if(raw.cells.length>MAX_CELLS){this.loadState={kind:"error",message:this.localize("notebookViewerTooManyCells")},this.emit("lr-render-error",{error:new Error("too many cells")});return}this.resetParsedState(),this.loadState={kind:"loaded",doc:raw};const language=raw.metadata?.language_info?.name??raw.metadata?.kernelspec?.language??"";this.emit("lr-load",{cellCount:raw.cells.length,language})}async applyAnchor(anchor){const index=this.resolveAnchorCellIndex(anchor);return index<0?!1:this.activateCell(index,"start")}async activateCell(index,align){const generation=this.generation,ownerDocument=this.ownerDocument;if(this.activeCellIndex=index,!this.isConnected||(await this.updateComplete,!this.isConnected||this.ownerDocument!==ownerDocument||generation!==this.generation||this.activeCellIndex!==index))return!1;const list=this.virtualListEl;return!list||(await list.updateComplete,!this.isConnected||this.ownerDocument!==ownerDocument||generation!==this.generation||this.activeCellIndex!==index)?!1:(list.scrollToIndex(index,{align,behavior:"auto"}),await list.updateComplete,this.isConnected&&this.ownerDocument===ownerDocument&&generation===this.generation&&this.activeCellIndex===index)}resolveAnchorCellIndex(anchor){if(this.loadState.kind!=="loaded")return-1;const cells=this.loadState.doc.cells;let index=-1;if(anchor.kind==="node-path"&&Number.isInteger(anchor.path[0]))index=anchor.path[0];else if(anchor.kind==="fragment")index=cells.findIndex(c=>c.id===anchor.id);else return-1;return index<0||index>=cells.length?-1:index}repaintHighlights(){if(this.loadState.kind!=="loaded"){this.highlightedCells.size>0&&(this.highlightedCells=new Map);return}const next=new Map;let considered=0;for(const highlight of prioritizedHighlightCandidates(this.highlights,this.activeHighlightId)){if(considered>=MAX_NOTEBOOK_PAINTED_HIGHLIGHTS)break;considered++;const index=this.resolveAnchorCellIndex(highlight.anchor);index<0||next.has(index)||next.set(index,highlight)}this.highlightedCells=next}async search(query2){const boundedQuery=boundedViewerSearchQuery(query2,this.effectiveLocale),q=boundedQuery.needle;if(this.searchQuery=query2,this.lastSearchLocale=this.effectiveLocale,this.searchMatchCountExact=boundedQuery.accepted,this.loadState.kind!=="loaded"||!q||!boundedQuery.accepted)this.searchMatches=[];else{const budget=new ViewerSearchWorkBudget,matches=[];for(let index=0;index<this.loadState.doc.cells.length;index++){const cell=this.loadState.doc.cells[index],sourceParts=typeof cell.source=="string"?[cell.source]:cell.source,sourceMatch=budget.includesJoined(sourceParts,q,this.effectiveLocale),outputMatch=sourceMatch?!1:budget.includesJoined(notebookOutputSearchParts(cell.outputs??[]),q,this.effectiveLocale);if((sourceMatch||outputMatch)&&matches.push(index),!budget.complete){this.searchMatchCountExact=!1;break}}this.searchMatches=matches}return this.activeSearchIndex=this.searchMatches.length?0:-1,await this.activateSearchMatch(),this.emitSearchChange(),this.searchMatches.length}async searchNext(){return this.searchMatches.length?(this.activeSearchIndex=(this.activeSearchIndex+1)%this.searchMatches.length,await this.activateSearchMatch(),this.emitSearchChange(),!0):!1}async searchPrevious(){return this.searchMatches.length?(this.activeSearchIndex=(this.activeSearchIndex-1+this.searchMatches.length)%this.searchMatches.length,await this.activateSearchMatch(),this.emitSearchChange(),!0):!1}clearSearch(){this.clearSearchState(),this.emitSearchChange()}clearSearchState(){this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.activeSearchIndex=-1}async activateSearchMatch(){const index=this.searchMatches[this.activeSearchIndex];index!==void 0&&await this.activateCell(index,"auto")}emitSearchChange(){this.emit("lr-search-change",{query:this.searchQuery,matchCount:this.searchMatches.length,matchCountExact:this.searchMatchCountExact,activeIndex:this.activeSearchIndex})}toggleOutput(index){const next=new Set(this.expandedOutputs);next.has(index)?next.delete(index):next.add(index),this.expandedOutputs=next}renderAnsiText(text){const segments=createAnsiParser().push(text);return html`${segments.map(seg=>html`<span style=${styleMap(this.segmentStyle(seg.styles))}>${seg.text}</span>`)}`}segmentStyle(s){const fg=sanitizeCssColor(s.fg)??"var(--lr-color-text)",bg=sanitizeCssColor(s.bg)??"transparent";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:fg,"background-color":s.inverse?fg:bg}}renderTextOutput(index,text,tone){const lines=text.split(`
|
|
27
27
|
`),outputCollapseLines=this.effectiveOutputCollapseLines,collapsible=outputCollapseLines>0&&lines.length>outputCollapseLines,expanded=this.expandedOutputs.has(index)||!collapsible,shown=expanded?text:lines.slice(0,outputCollapseLines).join(`
|
|
28
28
|
`);return html`<div part=${tone==="danger"?"output output-error":"output"} data-output-type="stream" data-stream=${tone==="danger"?"stderr":"stdout"}
|
|
29
29
|
>${this.renderAnsiText(shown)}${collapsible?html`<button
|
|
@@ -16,6 +16,11 @@ export interface PdfOutlineItem{title:string;page?:number;children?:PdfOutlineIt
|
|
|
16
16
|
* genuine activation click).
|
|
17
17
|
* The composed virtual-list lifecycle is an implementation detail: visible-range changes update
|
|
18
18
|
* `page`, while raw `lr-visible-range-change` and `lr-virtual-scroll` events stay contained.
|
|
19
|
+
* Known capability boundaries: `search()`/text-quote anchors match exact (whitespace- and
|
|
20
|
+
* soft-hyphen-normalized) text only -- there is no fuzzy/approximate mode (see `internal/
|
|
21
|
+
* text-quote.ts`'s own doc comment for the exact normalization rules). Non-Latin cMap-encoded fonts
|
|
22
|
+
* get no special handling beyond whatever `pdfjs-dist` resolves on its own. A scanned or
|
|
23
|
+
* image-only PDF has no text layer at all, so it has nothing to select or search.
|
|
19
24
|
*
|
|
20
25
|
* @customElement lr-pdf-viewer
|
|
21
26
|
* @event lr-render-error - Fired when fetching, parsing, or rendering fails, including synchronous
|
|
@@ -78,7 +78,7 @@ private activeRowKey;private searchMatches;private searchMatchCountExact;private
|
|
|
78
78
|
/** `rawRow` is 1-based, including the sheet's (always-present) header row -- the same raw-grid
|
|
79
79
|
* addressing convention every `cell-range` anchor uses. A highlight with no sheet resolved (from
|
|
80
80
|
* neither `anchor.sheet` nor a `Sheet!`-prefixed `range`) applies to every sheet. */
|
|
81
|
-
private cellHighlightsForRow;private renderCell;private renderRow;private renderSheet;private renderLoaded;private onTabsChange;
|
|
81
|
+
private cellHighlightsForRow;private renderCell;private renderRow;private readonly virtualListKeyFunction;private renderSheet;private renderLoaded;private onTabsChange;
|
|
82
82
|
/** Switches to `sheetIndex` (if needed) then scrolls raw-grid `(rawRow, col)` into view -- shared
|
|
83
83
|
* by `applyAnchor()` and every search navigation method, so both stay byte-identical in how a
|
|
84
84
|
* coordinate becomes a scroll. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{srOnly}from"../../../internal/a11y.js";import{assertTableSize,isAbortError,isResourceLimitError,LyraResourceLimitError,LyraUserFacingError,readResponseArrayBuffer,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{sanitizeCssLength}from"../../../internal/safe-css.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{DocumentAnchorTarget}from"../../../internal/anchor-target.js";import{parseCellRange}from"../../../internal/cell-range.js";import{loadSheetJsCached}from"./spreadsheet-loader.js";import{styles}from"./spreadsheet-viewer.styles.js";import{assertXlsxArchiveWithinLimits}from"./xlsx-resource-guard.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{viewerSemanticLabel,viewerSemanticRole}from"../viewer-semantic-owner.js";import{renderViewerLoading,viewerLoadingStyles}from"../viewer-loading.js";import{boundedViewerSearchQuery,ViewerSearchWorkBudget}from"../viewer-search-limits.js";import{LYRA_DEFAULT_anchorJumped,LYRA_DEFAULT_anchorJumpedToPage,LYRA_DEFAULT_anchorNotFound,LYRA_DEFAULT_cellHighlightWithLabel,LYRA_DEFAULT_documentPreviewEmpty,LYRA_DEFAULT_documentPreviewFailedToLoad,LYRA_DEFAULT_documentPreviewResourceTooLarge,LYRA_DEFAULT_documentPreviewTypeDocument,LYRA_DEFAULT_documentPreviewUrlNotAllowed,LYRA_DEFAULT_highlightWithLabel,LYRA_DEFAULT_loadingDocument,LYRA_DEFAULT_noData,LYRA_DEFAULT_spreadsheetViewerLabel,LYRA_DEFAULT_spreadsheetViewerUnavailable}from"../../../internal/default-strings.generated.js";const MAX_SPREADSHEET_SHEETS=256,MAX_SPREADSHEET_CELLS=1e6,MAX_SEARCH_MATCHES=1e3;function columns(rows){return rows.reduce((max,row)=>Math.max(max,row.length),0)}function cell(value,locale){return value==null?"":typeof value=="number"?getNumberFormat(locale).format(value):String(value)}class LyraSpreadsheetViewerBase extends LyraElement{}class LyraSpreadsheetViewer extends DocumentAnchorTarget(LyraSpreadsheetViewerBase){constructor(){super(...arguments),this.src="",this.name="",this.maxHeight="",this.anchorKinds=["cell-range"],this.fetchState={kind:"idle"},this.activeSheetIndex=0,this.activeRowKey="",this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1,this.searchQuery="",this.lastSearchLocale="",this.pendingSearchResetEvent=!1,this.generation=0,this.loadLibrary=loadSheetJsCached,this.lastLoadSrc="",this.announcements=new ViewerAnnouncementController(this),this.pendingAnimationFrames=new Set,this.onTabsChange=e=>{e.stopPropagation();const match=/^sheet-(\d+)$/.exec(e.detail.name);match&&(this.activeSheetIndex=Number(match[1]))},this.stopInternalEvent=event=>{event.stopPropagation()}}static{this.defaultStrings={...super.defaultStrings,anchorJumped:LYRA_DEFAULT_anchorJumped,anchorJumpedToPage:LYRA_DEFAULT_anchorJumpedToPage,anchorNotFound:LYRA_DEFAULT_anchorNotFound,cellHighlightWithLabel:LYRA_DEFAULT_cellHighlightWithLabel,documentPreviewEmpty:LYRA_DEFAULT_documentPreviewEmpty,documentPreviewFailedToLoad:LYRA_DEFAULT_documentPreviewFailedToLoad,documentPreviewResourceTooLarge:LYRA_DEFAULT_documentPreviewResourceTooLarge,documentPreviewTypeDocument:LYRA_DEFAULT_documentPreviewTypeDocument,documentPreviewUrlNotAllowed:LYRA_DEFAULT_documentPreviewUrlNotAllowed,highlightWithLabel:LYRA_DEFAULT_highlightWithLabel,loadingDocument:LYRA_DEFAULT_loadingDocument,noData:LYRA_DEFAULT_noData,spreadsheetViewerLabel:LYRA_DEFAULT_spreadsheetViewerLabel,spreadsheetViewerUnavailable:LYRA_DEFAULT_spreadsheetViewerUnavailable}}static{this.styles=[LyraElement.styles,styles,viewerLoadingStyles,srOnly]}connectedCallback(){super.connectedCallback(),this.announcements.connect(),this.hasUpdated&&this.src&&this.src===this.lastLoadSrc&&this.scheduleAfterUpdate(()=>{this.load()})}disconnectedCallback(){this.generation++,this.cancelPendingAnimationFrames(),this.fetchState={kind:"idle"},this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1,this.activeRowKey="",this.activeSheetIndex=0,this.announcements.disconnect(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.cancelPendingAnimationFrames(),this.announcements.adopted()}waitForOwnerAnimationFrame(){const owner=this.ownerDocument.defaultView;return!owner||!this.isConnected?Promise.resolve(!1):new Promise(resolve=>{const pending={owner,resolve};this.pendingAnimationFrames.add(pending),pending.handle=owner.requestAnimationFrame(()=>{this.pendingAnimationFrames.delete(pending)&&resolve(this.isConnected&&this.ownerDocument.defaultView===owner)})})}cancelPendingAnimationFrames(){const pendingFrames=[...this.pendingAnimationFrames];this.pendingAnimationFrames.clear();for(const pending of pendingFrames)pending.handle!==void 0&&pending.owner.cancelAnimationFrame(pending.handle),pending.resolve(!1)}willUpdate(changed){super.willUpdate(changed),changed.has("src")&&(this.pendingSearchResetEvent||=this.searchQuery!==""||this.searchMatches.length>0||!this.searchMatchCountExact||this.searchActiveIndex!==-1,this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1,this.activeRowKey="",this.activeSheetIndex=0)}updated(changed){super.updated(changed),this.announcements.transition("load",this.fetchState.kind,this.fetchState.kind==="error"?this.fetchState.message:this.localize("loadingDocument")),changed.has("src")&&this.scheduleAfterUpdate(()=>{this.load()}),changed.has("src")&&this.pendingSearchResetEvent&&(this.pendingSearchResetEvent=!1,this.emitSearchChange());const locale=this.effectiveLocale;if(locale!==this.lastSearchLocale){const shouldRecompute=!!this.searchQuery;this.lastSearchLocale=locale,shouldRecompute&&this.scheduleAfterUpdate(()=>{this.search(this.searchQuery)},"search")}}async load(){this.lastLoadSrc=this.src;const generation=++this.generation,signal=this.beginAbortableLoad();if(!this.src){this.fetchState={kind:"idle"};return}const fetchTarget=resolveOwnerFetchTarget(this,this.src);if(!fetchTarget){const error=new LyraUserFacingError(this.localize("documentPreviewUrlNotAllowed"));this.fetchState={kind:"error",message:error.message},this.emit("lr-render-error",{error});return}this.fetchState={kind:"loading"};try{const response=await fetchTarget.view.fetch(fetchTarget.url,signal?{signal}:void 0);if(!this.isConnected||generation!==this.generation)return;if(!response.ok)throw new Error(`${response.status} ${response.statusText}`);const library=await this.loadLibrary();if(!this.isConnected||generation!==this.generation)return;if(!library){const error=new LyraUserFacingError(this.localize("spreadsheetViewerUnavailable"));this.fetchState={kind:"error",message:error.message},this.emit("lr-render-error",{error});return}const source=await readResponseArrayBuffer(response);if(!this.isConnected||generation!==this.generation||(await assertXlsxArchiveWithinLimits(source,void 0,void 0,{signal}),!this.isConnected||generation!==this.generation))return;const workbook=library.read(source,{type:"array"});if(!this.isConnected||generation!==this.generation)return;const sheetNames=workbook.SheetNames;if(!Array.isArray(sheetNames)||!sheetNames.every(name=>typeof name=="string"))throw new Error("The xlsx peer returned a malformed workbook.");if(sheetNames.length>MAX_SPREADSHEET_SHEETS)throw new LyraResourceLimitError("The spreadsheet contains too many sheets.");const sheets=[];let totalCells=0;for(const name of sheetNames){const rows=library.utils.sheet_to_json(workbook.Sheets[name],{header:1});if(assertTableSize(rows),totalCells+=rows.reduce((sum,row)=>sum+row.length,0),totalCells>MAX_SPREADSHEET_CELLS)throw new LyraResourceLimitError("The spreadsheet contains too many expanded cells.");sheets.push({name,rows})}this.isConnected&&generation===this.generation&&(this.fetchState={kind:"loaded",sheets},this.searchQuery&&await this.search(this.searchQuery))}catch(error){if(isAbortError(error)||!this.isConnected||generation!==this.generation)return;this.fetchState={kind:"error",message:this.localize(isResourceLimitError(error)?"documentPreviewResourceTooLarge":"documentPreviewFailedToLoad")},this.emit("lr-render-error",{error})}}cellHighlightsForRow(rawRow,currentSheetName){const seen=new Set;return this.highlights.filter(highlight=>seen.has(highlight.id)?!1:(seen.add(highlight.id),!0)).flatMap(highlight=>{if(highlight.anchor.kind!=="cell-range")return[];const parsed=parseCellRange(highlight.anchor.range);if(!parsed)return[];const sheetName=highlight.anchor.sheet??parsed.sheet;return sheetName!==void 0&&sheetName!==currentSheetName?[]:rawRow-1>=parsed.startRow&&rawRow-1<=parsed.endRow?[{highlight,parsed}]:[]})}renderCell(value,colIndex,rowHighlights,role){const text=cell(value,this.effectiveLocale),colHighlights=rowHighlights.filter(entry=>colIndex>=entry.parsed.startCol&&colIndex<=entry.parsed.endCol);if(!colHighlights.length)return html`<div part="cell" role=${role}>${text}</div>`;const active=colHighlights.find(entry=>entry.highlight.id===this.activeHighlightId),primary=active??colHighlights[0],accessibleLabel=primary.highlight.label?this.localize("cellHighlightWithLabel",void 0,{value:text,label:primary.highlight.label}):this.localize("highlightWithLabel",void 0,{label:text});return html`<div
|
|
1
|
+
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};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{srOnly}from"../../../internal/a11y.js";import{assertTableSize,isAbortError,isResourceLimitError,LyraResourceLimitError,LyraUserFacingError,readResponseArrayBuffer,resolveOwnerFetchTarget}from"../../../internal/resource-loader.js";import{sanitizeCssLength}from"../../../internal/safe-css.js";import{prefersReducedMotion}from"../../../internal/motion.js";import{DocumentAnchorTarget}from"../../../internal/anchor-target.js";import{parseCellRange}from"../../../internal/cell-range.js";import{loadSheetJsCached}from"./spreadsheet-loader.js";import{styles}from"./spreadsheet-viewer.styles.js";import{assertXlsxArchiveWithinLimits}from"./xlsx-resource-guard.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{ViewerAnnouncementController}from"../viewer-announcements.js";import{viewerSemanticLabel,viewerSemanticRole}from"../viewer-semantic-owner.js";import{renderViewerLoading,viewerLoadingStyles}from"../viewer-loading.js";import{boundedViewerSearchQuery,ViewerSearchWorkBudget}from"../viewer-search-limits.js";import{LYRA_DEFAULT_anchorJumped,LYRA_DEFAULT_anchorJumpedToPage,LYRA_DEFAULT_anchorNotFound,LYRA_DEFAULT_cellHighlightWithLabel,LYRA_DEFAULT_documentPreviewEmpty,LYRA_DEFAULT_documentPreviewFailedToLoad,LYRA_DEFAULT_documentPreviewResourceTooLarge,LYRA_DEFAULT_documentPreviewTypeDocument,LYRA_DEFAULT_documentPreviewUrlNotAllowed,LYRA_DEFAULT_highlightWithLabel,LYRA_DEFAULT_loadingDocument,LYRA_DEFAULT_noData,LYRA_DEFAULT_spreadsheetViewerLabel,LYRA_DEFAULT_spreadsheetViewerUnavailable}from"../../../internal/default-strings.generated.js";const MAX_SPREADSHEET_SHEETS=256,MAX_SPREADSHEET_CELLS=1e6,MAX_SEARCH_MATCHES=1e3;function columns(rows){return rows.reduce((max,row)=>Math.max(max,row.length),0)}function cell(value,locale){return value==null?"":typeof value=="number"?getNumberFormat(locale).format(value):String(value)}class LyraSpreadsheetViewerBase extends LyraElement{}class LyraSpreadsheetViewer extends DocumentAnchorTarget(LyraSpreadsheetViewerBase){constructor(){super(...arguments),this.src="",this.name="",this.maxHeight="",this.anchorKinds=["cell-range"],this.fetchState={kind:"idle"},this.activeSheetIndex=0,this.activeRowKey="",this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1,this.searchQuery="",this.lastSearchLocale="",this.pendingSearchResetEvent=!1,this.generation=0,this.loadLibrary=loadSheetJsCached,this.lastLoadSrc="",this.announcements=new ViewerAnnouncementController(this),this.pendingAnimationFrames=new Set,this.virtualListKeyFunction=(_item,bodyIndex)=>bodyIndex,this.onTabsChange=e=>{e.stopPropagation();const match=/^sheet-(\d+)$/.exec(e.detail.name);match&&(this.activeSheetIndex=Number(match[1]))},this.stopInternalEvent=event=>{event.stopPropagation()}}static{this.defaultStrings={...super.defaultStrings,anchorJumped:LYRA_DEFAULT_anchorJumped,anchorJumpedToPage:LYRA_DEFAULT_anchorJumpedToPage,anchorNotFound:LYRA_DEFAULT_anchorNotFound,cellHighlightWithLabel:LYRA_DEFAULT_cellHighlightWithLabel,documentPreviewEmpty:LYRA_DEFAULT_documentPreviewEmpty,documentPreviewFailedToLoad:LYRA_DEFAULT_documentPreviewFailedToLoad,documentPreviewResourceTooLarge:LYRA_DEFAULT_documentPreviewResourceTooLarge,documentPreviewTypeDocument:LYRA_DEFAULT_documentPreviewTypeDocument,documentPreviewUrlNotAllowed:LYRA_DEFAULT_documentPreviewUrlNotAllowed,highlightWithLabel:LYRA_DEFAULT_highlightWithLabel,loadingDocument:LYRA_DEFAULT_loadingDocument,noData:LYRA_DEFAULT_noData,spreadsheetViewerLabel:LYRA_DEFAULT_spreadsheetViewerLabel,spreadsheetViewerUnavailable:LYRA_DEFAULT_spreadsheetViewerUnavailable}}static{this.styles=[LyraElement.styles,styles,viewerLoadingStyles,srOnly]}connectedCallback(){super.connectedCallback(),this.announcements.connect(),this.hasUpdated&&this.src&&this.src===this.lastLoadSrc&&this.scheduleAfterUpdate(()=>{this.load()})}disconnectedCallback(){this.generation++,this.cancelPendingAnimationFrames(),this.fetchState={kind:"idle"},this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1,this.activeRowKey="",this.activeSheetIndex=0,this.announcements.disconnect(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.cancelPendingAnimationFrames(),this.announcements.adopted()}waitForOwnerAnimationFrame(){const owner=this.ownerDocument.defaultView;return!owner||!this.isConnected?Promise.resolve(!1):new Promise(resolve=>{const pending={owner,resolve};this.pendingAnimationFrames.add(pending),pending.handle=owner.requestAnimationFrame(()=>{this.pendingAnimationFrames.delete(pending)&&resolve(this.isConnected&&this.ownerDocument.defaultView===owner)})})}cancelPendingAnimationFrames(){const pendingFrames=[...this.pendingAnimationFrames];this.pendingAnimationFrames.clear();for(const pending of pendingFrames)pending.handle!==void 0&&pending.owner.cancelAnimationFrame(pending.handle),pending.resolve(!1)}willUpdate(changed){super.willUpdate(changed),changed.has("src")&&(this.pendingSearchResetEvent||=this.searchQuery!==""||this.searchMatches.length>0||!this.searchMatchCountExact||this.searchActiveIndex!==-1,this.searchQuery="",this.searchMatches=[],this.searchMatchCountExact=!0,this.searchActiveIndex=-1,this.activeRowKey="",this.activeSheetIndex=0)}updated(changed){super.updated(changed),this.announcements.transition("load",this.fetchState.kind,this.fetchState.kind==="error"?this.fetchState.message:this.localize("loadingDocument")),changed.has("src")&&this.scheduleAfterUpdate(()=>{this.load()}),changed.has("src")&&this.pendingSearchResetEvent&&(this.pendingSearchResetEvent=!1,this.emitSearchChange());const locale=this.effectiveLocale;if(locale!==this.lastSearchLocale){const shouldRecompute=!!this.searchQuery;this.lastSearchLocale=locale,shouldRecompute&&this.scheduleAfterUpdate(()=>{this.search(this.searchQuery)},"search")}}async load(){this.lastLoadSrc=this.src;const generation=++this.generation,signal=this.beginAbortableLoad();if(!this.src){this.fetchState={kind:"idle"};return}const fetchTarget=resolveOwnerFetchTarget(this,this.src);if(!fetchTarget){const error=new LyraUserFacingError(this.localize("documentPreviewUrlNotAllowed"));this.fetchState={kind:"error",message:error.message},this.emit("lr-render-error",{error});return}this.fetchState={kind:"loading"};try{const response=await fetchTarget.view.fetch(fetchTarget.url,signal?{signal}:void 0);if(!this.isConnected||generation!==this.generation)return;if(!response.ok)throw new Error(`${response.status} ${response.statusText}`);const library=await this.loadLibrary();if(!this.isConnected||generation!==this.generation)return;if(!library){const error=new LyraUserFacingError(this.localize("spreadsheetViewerUnavailable"));this.fetchState={kind:"error",message:error.message},this.emit("lr-render-error",{error});return}const source=await readResponseArrayBuffer(response);if(!this.isConnected||generation!==this.generation||(await assertXlsxArchiveWithinLimits(source,void 0,void 0,{signal}),!this.isConnected||generation!==this.generation))return;const workbook=library.read(source,{type:"array"});if(!this.isConnected||generation!==this.generation)return;const sheetNames=workbook.SheetNames;if(!Array.isArray(sheetNames)||!sheetNames.every(name=>typeof name=="string"))throw new Error("The xlsx peer returned a malformed workbook.");if(sheetNames.length>MAX_SPREADSHEET_SHEETS)throw new LyraResourceLimitError("The spreadsheet contains too many sheets.");const sheets=[];let totalCells=0;for(const name of sheetNames){const rows=library.utils.sheet_to_json(workbook.Sheets[name],{header:1});if(assertTableSize(rows),totalCells+=rows.reduce((sum,row)=>sum+row.length,0),totalCells>MAX_SPREADSHEET_CELLS)throw new LyraResourceLimitError("The spreadsheet contains too many expanded cells.");sheets.push({name,rows})}this.isConnected&&generation===this.generation&&(this.fetchState={kind:"loaded",sheets},this.searchQuery&&await this.search(this.searchQuery))}catch(error){if(isAbortError(error)||!this.isConnected||generation!==this.generation)return;this.fetchState={kind:"error",message:this.localize(isResourceLimitError(error)?"documentPreviewResourceTooLarge":"documentPreviewFailedToLoad")},this.emit("lr-render-error",{error})}}cellHighlightsForRow(rawRow,currentSheetName){const seen=new Set;return this.highlights.filter(highlight=>seen.has(highlight.id)?!1:(seen.add(highlight.id),!0)).flatMap(highlight=>{if(highlight.anchor.kind!=="cell-range")return[];const parsed=parseCellRange(highlight.anchor.range);if(!parsed)return[];const sheetName=highlight.anchor.sheet??parsed.sheet;return sheetName!==void 0&&sheetName!==currentSheetName?[]:rawRow-1>=parsed.startRow&&rawRow-1<=parsed.endRow?[{highlight,parsed}]:[]})}renderCell(value,colIndex,rowHighlights,role){const text=cell(value,this.effectiveLocale),colHighlights=rowHighlights.filter(entry=>colIndex>=entry.parsed.startCol&&colIndex<=entry.parsed.endCol);if(!colHighlights.length)return html`<div part="cell" role=${role}>${text}</div>`;const active=colHighlights.find(entry=>entry.highlight.id===this.activeHighlightId),primary=active??colHighlights[0],accessibleLabel=primary.highlight.label?this.localize("cellHighlightWithLabel",void 0,{value:text,label:primary.highlight.label}):this.localize("highlightWithLabel",void 0,{label:text});return html`<div
|
|
2
2
|
part="cell cell-highlight"
|
|
3
3
|
role=${role}
|
|
4
4
|
?data-active=${!!active}
|
|
@@ -30,9 +30,9 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
30
30
|
part="rows"
|
|
31
31
|
exportparts="data-row:data-row, cell:cell, cell-highlight:cell-highlight, cell-highlight-action:cell-highlight-action"
|
|
32
32
|
data-sheet-index=${index}
|
|
33
|
-
.items=${body}
|
|
33
|
+
.items=${guard([sheet.rows],()=>body)}
|
|
34
34
|
.renderItem=${(row,bodyIndex)=>this.renderRow(row,count,"data-row",bodyIndex+2,sheet.name)}
|
|
35
|
-
.keyFunction=${
|
|
35
|
+
.keyFunction=${this.virtualListKeyFunction}
|
|
36
36
|
.activeItemId=${index===this.activeSheetIndex?this.activeRowKey:""}
|
|
37
37
|
item-role="row"
|
|
38
38
|
row-index-offset="1"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{css}from"lit";const styles=css`:host{min-inline-size:0;display:block}[part=base]{max-block-size:var(--lr-xml-viewer-max-height,none);border:var(--lr-border-width-thin) solid var(--lr-color-border);border-radius:var(--lr-radius);background:var(--lr-color-surface);font-family:var(--lr-font-mono);font-size:var(--lr-font-size-sm);flex-direction:column;display:flex;overflow:auto}[part=toolbar]{padding:var(--lr-space-xs) var(--lr-space-s);border-block-end:var(--lr-border-width-thin) solid var(--lr-color-border);background:var(--lr-color-surface);justify-content:flex-end;display:flex}[part=tree]{padding:var(--lr-space-xs)}.row{align-items:baseline;gap:var(--lr-space-2xs);padding-block:var(--lr-size-0-125rem);border-radius:var(--lr-radius);flex-wrap:wrap;min-inline-size:0;display:flex}[part=node][data-match]{outline:var(--lr-border-width-thin) dashed var(--lr-xml-viewer-match-color,var(--lr-color-warning))}[part=node][data-active-match]{outline:var(--lr-border-width-medium) solid var(--lr-xml-viewer-active-match-color,var(--lr-color-warning))}[part=node][data-highlight]{--_lr-xml-viewer-highlight-background:var(--lr-xml-viewer-highlight-accent-background,var(--lr-color-brand-quiet));background:var(--_lr-xml-viewer-highlight-background)}[part=node][data-highlight=success]{--_lr-xml-viewer-highlight-background:var(--lr-xml-viewer-highlight-success-background,var(--lr-color-success-quiet))}[part=node][data-highlight=warning]{--_lr-xml-viewer-highlight-background:var(--lr-xml-viewer-highlight-warning-background,var(--lr-color-warning-quiet))}[part=node][data-highlight=danger]{--_lr-xml-viewer-highlight-background:var(--lr-xml-viewer-highlight-danger-background,var(--lr-color-danger-quiet))}[part=node][data-highlight=neutral]{--_lr-xml-viewer-highlight-background:var(--lr-xml-viewer-highlight-neutral-background,var(--lr-color-surface-raised))}[part=node][data-active-highlight]{outline:var(--lr-border-width-medium) solid var(--lr-xml-viewer-highlight-active-outline,var(--lr-color-brand));outline-offset:var(--lr-focus-ring-offset)}[part=highlight-action]{min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);border:var(--lr-border-width-thin) solid var(--lr-color-border);border-radius:var(--lr-radius);background:var(--lr-color-surface);color:var(--lr-color-text);cursor:pointer;font:inherit;font-size:var(--lr-font-size-xs);padding:var(--lr-size-0-125rem) var(--lr-space-xs);margin-inline-start:var(--lr-space-xs)}[part=highlight-action]:hover{background:var(--_lr-xml-viewer-highlight-background)}[part=highlight-action]:active{background:color-mix(in oklab, var(--_lr-xml-viewer-highlight-background), var(--lr-color-mix-partner) var(--lr-color-mix-active))}[part=highlight-action]:focus-visible{outline:var(--lr-focus-ring);outline-offset:var(--lr-focus-ring-offset)}[part=attribute][data-active]{outline:var(--lr-border-width-medium) solid var(--lr-xml-viewer-active-attribute-color,var(--lr-color-brand));border-radius:var(--lr-size-0-1875rem)}[part=tag]{color:var(--lr-color-brand);font-weight:var(--lr-font-weight-semibold)}[part=attribute-name]{color:var(--lr-color-chart-1)}[part=attribute-value]{color:var(--lr-color-success);overflow-wrap:anywhere}[part=tag][data-match],[part=attribute-value][data-match]{background:var(--lr-xml-viewer-match-bg,var(--lr-color-warning-quiet));border-radius:var(--lr-size-0-1875rem)}[part=text]{color:var(--lr-color-text);overflow-wrap:anywhere;white-space:pre-wrap}[part=text][data-match]{background:color-mix(in srgb, var(--lr-xml-viewer-match-color,var(--lr-color-warning)) 30%, transparent);border-radius:var(--lr-size-0-1875rem)}[part=comment],[part=cdata],[part=pi]{color:var(--lr-color-text-quiet);overflow-wrap:anywhere;white-space:pre-wrap;font-style:italic}.preview{color:var(--lr-color-text-quiet);margin-inline:var(--lr-space-xs);font-style:italic}[part=toggle],[part=toggle-placeholder]{inline-size:var(--lr-size-1-25rem);block-size:var(--lr-size-1-25rem);min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);color:var(--lr-color-text-quiet);border-radius:var(--lr-radius);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}[part=toggle]{cursor:pointer}[part=toggle] .chevron{transition:transform var(--lr-transition-fast);display:inline-flex;transform:rotate(0)}[part=toggle][aria-expanded=true] .chevron{transform:rotate(90deg)}:host(:dir(rtl)) [part=toggle][aria-expanded=false] .chevron{transform:rotate(180deg)}[part=toggle]:hover{background:var(--lr-color-brand-quiet);color:var(--lr-color-brand)}[part=toggle]: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-brand)}[part=toggle]:focus-visible,[part=copy-button]:focus-visible{outline:var(--lr-focus-ring);outline-offset:var(--lr-focus-ring-offset)}[part=copy-button]{border:var(--lr-border-width-thin) solid var(--lr-color-border);border-radius:var(--lr-radius);background:var(--lr-color-surface);color:var(--lr-color-text-quiet);cursor:pointer;font:inherit;font-size:var(--lr-font-size-xs);padding:var(--lr-size-0-125rem) var(--lr-space-xs)}[part=copy-button]:hover{background:var(--lr-color-brand-quiet);color:var(--lr-color-brand)}[part=copy-button]: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-brand)}.row [part=copy-button]{opacity:0;margin-inline-start:auto}.row:hover [part=copy-button],.row:focus-within [part=copy-button]{opacity:1}[part=error]{color:var(--lr-color-danger);padding:var(--lr-space-l);text-align:center}.empty-note{padding:var(--lr-space-l);color:var(--lr-color-text-quiet);text-align:center;margin:0}[part=spinner]{padding:var(--lr-space-l);text-align:center;color:var(--lr-color-text-quiet)}@media (prefers-reduced-motion:reduce){[part=toggle] .chevron{transition:none!important}}`;export{styles};
|
|
1
|
+
import{css}from"lit";const styles=css`:host{min-inline-size:0;display:block}[part=base]{max-block-size:var(--lr-xml-viewer-max-height,none);border:var(--lr-border-width-thin) solid var(--lr-color-border);border-radius:var(--lr-radius);background:var(--lr-color-surface);font-family:var(--lr-font-mono);font-size:var(--lr-font-size-sm);flex-direction:column;display:flex;overflow:auto}[part=toolbar]{padding:var(--lr-space-xs) var(--lr-space-s);border-block-end:var(--lr-border-width-thin) solid var(--lr-color-border);background:var(--lr-color-surface);justify-content:flex-end;display:flex}[part=tree]{padding:var(--lr-space-xs)}.row{align-items:baseline;gap:var(--lr-space-2xs);padding-block:var(--lr-size-0-125rem);border-radius:var(--lr-radius);flex-wrap:wrap;min-inline-size:0;display:flex}[part=node][data-match]{outline:var(--lr-border-width-thin) dashed var(--lr-xml-viewer-match-color,var(--lr-color-warning))}[part=node][data-active-match]{outline:var(--lr-border-width-medium) solid var(--lr-xml-viewer-active-match-color,var(--lr-color-warning))}[part=node][data-highlight]{--_lr-xml-viewer-highlight-background:var(--lr-xml-viewer-highlight-accent-background,var(--lr-color-brand-quiet));background:var(--_lr-xml-viewer-highlight-background)}[part=node][data-highlight=success]{--_lr-xml-viewer-highlight-background:var(--lr-xml-viewer-highlight-success-background,var(--lr-color-success-quiet))}[part=node][data-highlight=warning]{--_lr-xml-viewer-highlight-background:var(--lr-xml-viewer-highlight-warning-background,var(--lr-color-warning-quiet))}[part=node][data-highlight=danger]{--_lr-xml-viewer-highlight-background:var(--lr-xml-viewer-highlight-danger-background,var(--lr-color-danger-quiet))}[part=node][data-highlight=neutral]{--_lr-xml-viewer-highlight-background:var(--lr-xml-viewer-highlight-neutral-background,var(--lr-color-surface-raised))}[part=node][data-active-highlight]{outline:var(--lr-border-width-medium) solid var(--lr-xml-viewer-highlight-active-outline,var(--lr-color-brand));outline-offset:var(--lr-focus-ring-offset)}[part=highlight-action]{min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);border:var(--lr-border-width-thin) solid var(--lr-color-border);border-radius:var(--lr-radius);background:var(--lr-color-surface);color:var(--lr-color-text);cursor:pointer;font:inherit;font-size:var(--lr-font-size-xs);padding:var(--lr-size-0-125rem) var(--lr-space-xs);margin-inline-start:var(--lr-space-xs)}[part=highlight-action]:hover{background:var(--_lr-xml-viewer-highlight-background)}[part=highlight-action]:active{background:color-mix(in oklab, var(--_lr-xml-viewer-highlight-background), var(--lr-color-mix-partner) var(--lr-color-mix-active))}[part=highlight-action]:focus-visible{outline:var(--lr-focus-ring);outline-offset:var(--lr-focus-ring-offset)}[part=attribute][data-active]{outline:var(--lr-border-width-medium) solid var(--lr-xml-viewer-active-attribute-color,var(--lr-color-brand));border-radius:var(--lr-size-0-1875rem)}[part=tag]{color:var(--lr-color-brand);font-weight:var(--lr-font-weight-semibold)}[part=attribute-name]{color:var(--lr-color-chart-1)}[part=attribute-value]{color:var(--lr-color-success);overflow-wrap:anywhere}[part=tag][data-match],[part=attribute-value][data-match]{background:var(--lr-xml-viewer-match-bg,var(--lr-color-warning-quiet));border-radius:var(--lr-size-0-1875rem)}[part=text]{color:var(--lr-color-text);overflow-wrap:anywhere;white-space:pre-wrap}[part=text][data-match]{background:color-mix(in srgb, var(--lr-xml-viewer-match-color,var(--lr-color-warning)) 30%, transparent);border-radius:var(--lr-size-0-1875rem)}[part=comment],[part=cdata],[part=pi]{color:var(--lr-color-text-quiet);overflow-wrap:anywhere;white-space:pre-wrap;font-style:italic}.preview{color:var(--lr-color-text-quiet);margin-inline:var(--lr-space-xs);font-style:italic}[part=toggle],[part=toggle-placeholder]{inline-size:var(--lr-size-1-25rem);block-size:var(--lr-size-1-25rem);min-inline-size:var(--lr-icon-button-size);min-block-size:var(--lr-icon-button-size);color:var(--lr-color-text-quiet);border-radius:var(--lr-radius);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}[part=toggle]{cursor:pointer}[part=toggle] .chevron{transition:transform var(--lr-transition-fast);display:inline-flex;transform:rotate(0)}[part=toggle][aria-expanded=true] .chevron{transform:rotate(90deg)}:host(:dir(rtl)) [part=toggle][aria-expanded=false] .chevron{transform:rotate(180deg)}[part=toggle]:hover{background:var(--lr-color-brand-quiet);color:var(--lr-color-brand)}[part=toggle]: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-brand)}[part=toggle]:focus-visible,[part=copy-button]:focus-visible{outline:var(--lr-focus-ring);outline-offset:var(--lr-focus-ring-offset)}[part=copy-button]{border:var(--lr-border-width-thin) solid var(--lr-color-border);border-radius:var(--lr-radius);background:var(--lr-color-surface);color:var(--lr-color-text-quiet);cursor:pointer;font:inherit;font-size:var(--lr-font-size-xs);padding:var(--lr-size-0-125rem) var(--lr-space-xs)}[part=copy-button]:hover{background:var(--lr-color-brand-quiet);color:var(--lr-color-brand)}[part=copy-button]: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-brand)}.row [part=copy-button]{opacity:0;margin-inline-start:auto}.row:hover [part=copy-button],.row:focus-within [part=copy-button]{opacity:1}@media (hover:none),(pointer:coarse){.row [part=copy-button]{opacity:1}}[part=error]{color:var(--lr-color-danger);padding:var(--lr-space-l);text-align:center}.empty-note{padding:var(--lr-space-l);color:var(--lr-color-text-quiet);text-align:center;margin:0}[part=spinner]{padding:var(--lr-space-l);text-align:center;color:var(--lr-color-text-quiet)}@media (prefers-reduced-motion:reduce){[part=toggle] .chevron{transition:none!important}}`;export{styles};
|