@aceshooting/lyra-ui 4.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/custom-elements.json +49430 -32305
- package/dist/ai/types.contract.d.ts +2 -0
- package/dist/ai/types.contract.d.ts.map +1 -0
- package/dist/ai/types.contract.js +139 -0
- package/dist/ai/types.contract.js.map +1 -0
- package/dist/ai/types.d.ts +199 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +2 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/components/agent-run/agent-run.class.d.ts +158 -0
- package/dist/components/agent-run/agent-run.class.d.ts.map +1 -0
- package/dist/components/agent-run/agent-run.class.js +400 -0
- package/dist/components/agent-run/agent-run.class.js.map +1 -0
- package/dist/components/agent-run/agent-run.d.ts +2 -0
- package/dist/components/agent-run/agent-run.d.ts.map +1 -0
- package/dist/components/agent-run/agent-run.js +5 -0
- package/dist/components/agent-run/agent-run.js.map +1 -0
- package/dist/components/agent-run/agent-run.styles.d.ts +2 -0
- package/dist/components/agent-run/agent-run.styles.d.ts.map +1 -0
- package/dist/components/agent-run/agent-run.styles.js +143 -0
- package/dist/components/agent-run/agent-run.styles.js.map +1 -0
- package/dist/components/agent-trace/agent-trace.class.d.ts +111 -0
- package/dist/components/agent-trace/agent-trace.class.d.ts.map +1 -0
- package/dist/components/agent-trace/agent-trace.class.js +221 -0
- package/dist/components/agent-trace/agent-trace.class.js.map +1 -0
- package/dist/components/agent-trace/agent-trace.d.ts +5 -0
- package/dist/components/agent-trace/agent-trace.d.ts.map +1 -0
- package/dist/components/agent-trace/agent-trace.js +8 -0
- package/dist/components/agent-trace/agent-trace.js.map +1 -0
- package/dist/components/agent-trace/agent-trace.styles.d.ts +2 -0
- package/dist/components/agent-trace/agent-trace.styles.d.ts.map +1 -0
- package/dist/components/agent-trace/agent-trace.styles.js +61 -0
- package/dist/components/agent-trace/agent-trace.styles.js.map +1 -0
- package/dist/components/app-rail/app-rail.styles.d.ts.map +1 -1
- package/dist/components/app-rail/app-rail.styles.js +4 -0
- package/dist/components/app-rail/app-rail.styles.js.map +1 -1
- package/dist/components/chat-message/chat-message.class.d.ts +37 -3
- package/dist/components/chat-message/chat-message.class.d.ts.map +1 -1
- package/dist/components/chat-message/chat-message.class.js +89 -7
- package/dist/components/chat-message/chat-message.class.js.map +1 -1
- package/dist/components/chat-message/chat-message.styles.d.ts.map +1 -1
- package/dist/components/chat-message/chat-message.styles.js +14 -0
- package/dist/components/chat-message/chat-message.styles.js.map +1 -1
- package/dist/components/context-inspector/context-inspector.class.d.ts +114 -0
- package/dist/components/context-inspector/context-inspector.class.d.ts.map +1 -0
- package/dist/components/context-inspector/context-inspector.class.js +222 -0
- package/dist/components/context-inspector/context-inspector.class.js.map +1 -0
- package/dist/components/context-inspector/context-inspector.d.ts +7 -0
- package/dist/components/context-inspector/context-inspector.d.ts.map +1 -0
- package/dist/components/context-inspector/context-inspector.js +10 -0
- package/dist/components/context-inspector/context-inspector.js.map +1 -0
- package/dist/components/context-inspector/context-inspector.styles.d.ts +2 -0
- package/dist/components/context-inspector/context-inspector.styles.d.ts.map +1 -0
- package/dist/components/context-inspector/context-inspector.styles.js +98 -0
- package/dist/components/context-inspector/context-inspector.styles.js.map +1 -0
- package/dist/components/dashboard-grid/dashboard-grid.class.d.ts +162 -0
- package/dist/components/dashboard-grid/dashboard-grid.class.d.ts.map +1 -0
- package/dist/components/dashboard-grid/dashboard-grid.class.js +570 -0
- package/dist/components/dashboard-grid/dashboard-grid.class.js.map +1 -0
- package/dist/components/dashboard-grid/dashboard-grid.d.ts +6 -0
- package/dist/components/dashboard-grid/dashboard-grid.d.ts.map +1 -0
- package/dist/components/dashboard-grid/dashboard-grid.js +9 -0
- package/dist/components/dashboard-grid/dashboard-grid.js.map +1 -0
- package/dist/components/dashboard-grid/dashboard-grid.styles.d.ts +2 -0
- package/dist/components/dashboard-grid/dashboard-grid.styles.d.ts.map +1 -0
- package/dist/components/dashboard-grid/dashboard-grid.styles.js +86 -0
- package/dist/components/dashboard-grid/dashboard-grid.styles.js.map +1 -0
- package/dist/components/dashboard-grid/layout.d.ts +103 -0
- package/dist/components/dashboard-grid/layout.d.ts.map +1 -0
- package/dist/components/dashboard-grid/layout.js +94 -0
- package/dist/components/dashboard-grid/layout.js.map +1 -0
- package/dist/components/date-picker/date-input.class.d.ts +8 -0
- package/dist/components/date-picker/date-input.class.d.ts.map +1 -1
- package/dist/components/date-picker/date-input.class.js +10 -0
- package/dist/components/date-picker/date-input.class.js.map +1 -1
- package/dist/components/date-picker/date-input.styles.d.ts.map +1 -1
- package/dist/components/date-picker/date-input.styles.js +39 -2
- package/dist/components/date-picker/date-input.styles.js.map +1 -1
- package/dist/components/document-compare/document-compare.class.d.ts +131 -0
- package/dist/components/document-compare/document-compare.class.d.ts.map +1 -0
- package/dist/components/document-compare/document-compare.class.js +214 -0
- package/dist/components/document-compare/document-compare.class.js.map +1 -0
- package/dist/components/document-compare/document-compare.d.ts +2 -0
- package/dist/components/document-compare/document-compare.d.ts.map +1 -0
- package/dist/components/document-compare/document-compare.js +5 -0
- package/dist/components/document-compare/document-compare.js.map +1 -0
- package/dist/components/document-compare/document-compare.styles.d.ts +2 -0
- package/dist/components/document-compare/document-compare.styles.d.ts.map +1 -0
- package/dist/components/document-compare/document-compare.styles.js +65 -0
- package/dist/components/document-compare/document-compare.styles.js.map +1 -0
- package/dist/components/document-library/document-library.class.d.ts +154 -0
- package/dist/components/document-library/document-library.class.d.ts.map +1 -0
- package/dist/components/document-library/document-library.class.js +399 -0
- package/dist/components/document-library/document-library.class.js.map +1 -0
- package/dist/components/document-library/document-library.d.ts +9 -0
- package/dist/components/document-library/document-library.d.ts.map +1 -0
- package/dist/components/document-library/document-library.js +12 -0
- package/dist/components/document-library/document-library.js.map +1 -0
- package/dist/components/document-library/document-library.styles.d.ts +2 -0
- package/dist/components/document-library/document-library.styles.d.ts.map +1 -0
- package/dist/components/document-library/document-library.styles.js +77 -0
- package/dist/components/document-library/document-library.styles.js.map +1 -0
- package/dist/components/drilldown-panel/drilldown-panel.class.d.ts +148 -0
- package/dist/components/drilldown-panel/drilldown-panel.class.d.ts.map +1 -0
- package/dist/components/drilldown-panel/drilldown-panel.class.js +241 -0
- package/dist/components/drilldown-panel/drilldown-panel.class.js.map +1 -0
- package/dist/components/drilldown-panel/drilldown-panel.d.ts +9 -0
- package/dist/components/drilldown-panel/drilldown-panel.d.ts.map +1 -0
- package/dist/components/drilldown-panel/drilldown-panel.js +12 -0
- package/dist/components/drilldown-panel/drilldown-panel.js.map +1 -0
- package/dist/components/drilldown-panel/drilldown-panel.styles.d.ts +2 -0
- package/dist/components/drilldown-panel/drilldown-panel.styles.d.ts.map +1 -0
- package/dist/components/drilldown-panel/drilldown-panel.styles.js +49 -0
- package/dist/components/drilldown-panel/drilldown-panel.styles.js.map +1 -0
- package/dist/components/entity-dossier/entity-dossier.class.d.ts +132 -0
- package/dist/components/entity-dossier/entity-dossier.class.d.ts.map +1 -0
- package/dist/components/entity-dossier/entity-dossier.class.js +187 -0
- package/dist/components/entity-dossier/entity-dossier.class.js.map +1 -0
- package/dist/components/entity-dossier/entity-dossier.d.ts +9 -0
- package/dist/components/entity-dossier/entity-dossier.d.ts.map +1 -0
- package/dist/components/entity-dossier/entity-dossier.js +12 -0
- package/dist/components/entity-dossier/entity-dossier.js.map +1 -0
- package/dist/components/entity-dossier/entity-dossier.styles.d.ts +2 -0
- package/dist/components/entity-dossier/entity-dossier.styles.d.ts.map +1 -0
- package/dist/components/entity-dossier/entity-dossier.styles.js +30 -0
- package/dist/components/entity-dossier/entity-dossier.styles.js.map +1 -0
- package/dist/components/eval-dataset/eval-dataset.class.d.ts +145 -0
- package/dist/components/eval-dataset/eval-dataset.class.d.ts.map +1 -0
- package/dist/components/eval-dataset/eval-dataset.class.js +307 -0
- package/dist/components/eval-dataset/eval-dataset.class.js.map +1 -0
- package/dist/components/eval-dataset/eval-dataset.d.ts +7 -0
- package/dist/components/eval-dataset/eval-dataset.d.ts.map +1 -0
- package/dist/components/eval-dataset/eval-dataset.js +10 -0
- package/dist/components/eval-dataset/eval-dataset.js.map +1 -0
- package/dist/components/eval-dataset/eval-dataset.styles.d.ts +2 -0
- package/dist/components/eval-dataset/eval-dataset.styles.d.ts.map +1 -0
- package/dist/components/eval-dataset/eval-dataset.styles.js +76 -0
- package/dist/components/eval-dataset/eval-dataset.styles.js.map +1 -0
- package/dist/components/eval-result/eval-result.class.d.ts +115 -0
- package/dist/components/eval-result/eval-result.class.d.ts.map +1 -0
- package/dist/components/eval-result/eval-result.class.js +165 -0
- package/dist/components/eval-result/eval-result.class.js.map +1 -0
- package/dist/components/eval-result/eval-result.d.ts +5 -0
- package/dist/components/eval-result/eval-result.d.ts.map +1 -0
- package/dist/components/eval-result/eval-result.js +8 -0
- package/dist/components/eval-result/eval-result.js.map +1 -0
- package/dist/components/eval-result/eval-result.styles.d.ts +2 -0
- package/dist/components/eval-result/eval-result.styles.d.ts.map +1 -0
- package/dist/components/eval-result/eval-result.styles.js +47 -0
- package/dist/components/eval-result/eval-result.styles.js.map +1 -0
- package/dist/components/evaluation-run/evaluation-run.class.d.ts +168 -0
- package/dist/components/evaluation-run/evaluation-run.class.d.ts.map +1 -0
- package/dist/components/evaluation-run/evaluation-run.class.js +329 -0
- package/dist/components/evaluation-run/evaluation-run.class.js.map +1 -0
- package/dist/components/evaluation-run/evaluation-run.d.ts +2 -0
- package/dist/components/evaluation-run/evaluation-run.d.ts.map +1 -0
- package/dist/components/evaluation-run/evaluation-run.js +5 -0
- package/dist/components/evaluation-run/evaluation-run.js.map +1 -0
- package/dist/components/evaluation-run/evaluation-run.styles.d.ts +2 -0
- package/dist/components/evaluation-run/evaluation-run.styles.d.ts.map +1 -0
- package/dist/components/evaluation-run/evaluation-run.styles.js +73 -0
- package/dist/components/evaluation-run/evaluation-run.styles.js.map +1 -0
- package/dist/components/filter-bar/filter-bar.class.d.ts +200 -0
- package/dist/components/filter-bar/filter-bar.class.d.ts.map +1 -0
- package/dist/components/filter-bar/filter-bar.class.js +322 -0
- package/dist/components/filter-bar/filter-bar.class.js.map +1 -0
- package/dist/components/filter-bar/filter-bar.d.ts +10 -0
- package/dist/components/filter-bar/filter-bar.d.ts.map +1 -0
- package/dist/components/filter-bar/filter-bar.js +13 -0
- package/dist/components/filter-bar/filter-bar.js.map +1 -0
- package/dist/components/filter-bar/filter-bar.styles.d.ts +2 -0
- package/dist/components/filter-bar/filter-bar.styles.d.ts.map +1 -0
- package/dist/components/filter-bar/filter-bar.styles.js +37 -0
- package/dist/components/filter-bar/filter-bar.styles.js.map +1 -0
- package/dist/components/graph-query-builder/graph-query-builder.class.d.ts +242 -0
- package/dist/components/graph-query-builder/graph-query-builder.class.d.ts.map +1 -0
- package/dist/components/graph-query-builder/graph-query-builder.class.js +511 -0
- package/dist/components/graph-query-builder/graph-query-builder.class.js.map +1 -0
- package/dist/components/graph-query-builder/graph-query-builder.d.ts +7 -0
- package/dist/components/graph-query-builder/graph-query-builder.d.ts.map +1 -0
- package/dist/components/graph-query-builder/graph-query-builder.js +10 -0
- package/dist/components/graph-query-builder/graph-query-builder.js.map +1 -0
- package/dist/components/graph-query-builder/graph-query-builder.styles.d.ts +2 -0
- package/dist/components/graph-query-builder/graph-query-builder.styles.d.ts.map +1 -0
- package/dist/components/graph-query-builder/graph-query-builder.styles.js +170 -0
- package/dist/components/graph-query-builder/graph-query-builder.styles.js.map +1 -0
- package/dist/components/grounding-summary/grounding-summary.class.d.ts +80 -0
- package/dist/components/grounding-summary/grounding-summary.class.d.ts.map +1 -0
- package/dist/components/grounding-summary/grounding-summary.class.js +182 -0
- package/dist/components/grounding-summary/grounding-summary.class.js.map +1 -0
- package/dist/components/grounding-summary/grounding-summary.d.ts +5 -0
- package/dist/components/grounding-summary/grounding-summary.d.ts.map +1 -0
- package/dist/components/grounding-summary/grounding-summary.js +8 -0
- package/dist/components/grounding-summary/grounding-summary.js.map +1 -0
- package/dist/components/grounding-summary/grounding-summary.styles.d.ts +2 -0
- package/dist/components/grounding-summary/grounding-summary.styles.d.ts.map +1 -0
- package/dist/components/grounding-summary/grounding-summary.styles.js +88 -0
- package/dist/components/grounding-summary/grounding-summary.styles.js.map +1 -0
- package/dist/components/ingestion-queue/ingestion-queue.class.d.ts +125 -0
- package/dist/components/ingestion-queue/ingestion-queue.class.d.ts.map +1 -0
- package/dist/components/ingestion-queue/ingestion-queue.class.js +276 -0
- package/dist/components/ingestion-queue/ingestion-queue.class.js.map +1 -0
- package/dist/components/ingestion-queue/ingestion-queue.d.ts +2 -0
- package/dist/components/ingestion-queue/ingestion-queue.d.ts.map +1 -0
- package/dist/components/ingestion-queue/ingestion-queue.js +5 -0
- package/dist/components/ingestion-queue/ingestion-queue.js.map +1 -0
- package/dist/components/ingestion-queue/ingestion-queue.styles.d.ts +2 -0
- package/dist/components/ingestion-queue/ingestion-queue.styles.d.ts.map +1 -0
- package/dist/components/ingestion-queue/ingestion-queue.styles.js +138 -0
- package/dist/components/ingestion-queue/ingestion-queue.styles.js.map +1 -0
- package/dist/components/knowledge-base/knowledge-base.class.d.ts +136 -0
- package/dist/components/knowledge-base/knowledge-base.class.d.ts.map +1 -0
- package/dist/components/knowledge-base/knowledge-base.class.js +360 -0
- package/dist/components/knowledge-base/knowledge-base.class.js.map +1 -0
- package/dist/components/knowledge-base/knowledge-base.d.ts +7 -0
- package/dist/components/knowledge-base/knowledge-base.d.ts.map +1 -0
- package/dist/components/knowledge-base/knowledge-base.js +10 -0
- package/dist/components/knowledge-base/knowledge-base.js.map +1 -0
- package/dist/components/knowledge-base/knowledge-base.styles.d.ts +2 -0
- package/dist/components/knowledge-base/knowledge-base.styles.d.ts.map +1 -0
- package/dist/components/knowledge-base/knowledge-base.styles.js +94 -0
- package/dist/components/knowledge-base/knowledge-base.styles.js.map +1 -0
- package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +196 -0
- package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts.map +1 -0
- package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.class.js +477 -0
- package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.class.js.map +1 -0
- package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.d.ts +11 -0
- package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.d.ts.map +1 -0
- package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.js +14 -0
- package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.js.map +1 -0
- package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.styles.d.ts +2 -0
- package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.styles.d.ts.map +1 -0
- package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.styles.js +76 -0
- package/dist/components/knowledge-graph-explorer/knowledge-graph-explorer.styles.js.map +1 -0
- package/dist/components/memory-panel/memory-panel.class.d.ts +146 -0
- package/dist/components/memory-panel/memory-panel.class.d.ts.map +1 -0
- package/dist/components/memory-panel/memory-panel.class.js +303 -0
- package/dist/components/memory-panel/memory-panel.class.js.map +1 -0
- package/dist/components/memory-panel/memory-panel.d.ts +5 -0
- package/dist/components/memory-panel/memory-panel.d.ts.map +1 -0
- package/dist/components/memory-panel/memory-panel.js +8 -0
- package/dist/components/memory-panel/memory-panel.js.map +1 -0
- package/dist/components/memory-panel/memory-panel.styles.d.ts +2 -0
- package/dist/components/memory-panel/memory-panel.styles.d.ts.map +1 -0
- package/dist/components/memory-panel/memory-panel.styles.js +139 -0
- package/dist/components/memory-panel/memory-panel.styles.js.map +1 -0
- package/dist/components/overlay/popover.class.d.ts +39 -0
- package/dist/components/overlay/popover.class.d.ts.map +1 -1
- package/dist/components/overlay/popover.class.js +53 -3
- package/dist/components/overlay/popover.class.js.map +1 -1
- package/dist/components/overlay/tooltip.class.d.ts +43 -0
- package/dist/components/overlay/tooltip.class.d.ts.map +1 -1
- package/dist/components/overlay/tooltip.class.js +66 -4
- package/dist/components/overlay/tooltip.class.js.map +1 -1
- package/dist/components/policy-summary/policy-summary.class.d.ts +76 -0
- package/dist/components/policy-summary/policy-summary.class.d.ts.map +1 -0
- package/dist/components/policy-summary/policy-summary.class.js +125 -0
- package/dist/components/policy-summary/policy-summary.class.js.map +1 -0
- package/dist/components/policy-summary/policy-summary.d.ts +6 -0
- package/dist/components/policy-summary/policy-summary.d.ts.map +1 -0
- package/dist/components/policy-summary/policy-summary.js +9 -0
- package/dist/components/policy-summary/policy-summary.js.map +1 -0
- package/dist/components/policy-summary/policy-summary.styles.d.ts +2 -0
- package/dist/components/policy-summary/policy-summary.styles.d.ts.map +1 -0
- package/dist/components/policy-summary/policy-summary.styles.js +68 -0
- package/dist/components/policy-summary/policy-summary.styles.js.map +1 -0
- package/dist/components/query-builder/query-builder.class.d.ts +180 -0
- package/dist/components/query-builder/query-builder.class.d.ts.map +1 -0
- package/dist/components/query-builder/query-builder.class.js +415 -0
- package/dist/components/query-builder/query-builder.class.js.map +1 -0
- package/dist/components/query-builder/query-builder.d.ts +9 -0
- package/dist/components/query-builder/query-builder.d.ts.map +1 -0
- package/dist/components/query-builder/query-builder.js +12 -0
- package/dist/components/query-builder/query-builder.js.map +1 -0
- package/dist/components/query-builder/query-builder.styles.d.ts +2 -0
- package/dist/components/query-builder/query-builder.styles.d.ts.map +1 -0
- package/dist/components/query-builder/query-builder.styles.js +77 -0
- package/dist/components/query-builder/query-builder.styles.js.map +1 -0
- package/dist/components/retrieval-results/retrieval-results.class.d.ts +151 -0
- package/dist/components/retrieval-results/retrieval-results.class.d.ts.map +1 -0
- package/dist/components/retrieval-results/retrieval-results.class.js +340 -0
- package/dist/components/retrieval-results/retrieval-results.class.js.map +1 -0
- package/dist/components/retrieval-results/retrieval-results.d.ts +7 -0
- package/dist/components/retrieval-results/retrieval-results.d.ts.map +1 -0
- package/dist/components/retrieval-results/retrieval-results.js +10 -0
- package/dist/components/retrieval-results/retrieval-results.js.map +1 -0
- package/dist/components/retrieval-results/retrieval-results.styles.d.ts +2 -0
- package/dist/components/retrieval-results/retrieval-results.styles.d.ts.map +1 -0
- package/dist/components/retrieval-results/retrieval-results.styles.js +94 -0
- package/dist/components/retrieval-results/retrieval-results.styles.js.map +1 -0
- package/dist/components/retrieval-search/retrieval-search.class.d.ts +127 -0
- package/dist/components/retrieval-search/retrieval-search.class.d.ts.map +1 -0
- package/dist/components/retrieval-search/retrieval-search.class.js +266 -0
- package/dist/components/retrieval-search/retrieval-search.class.js.map +1 -0
- package/dist/components/retrieval-search/retrieval-search.d.ts +8 -0
- package/dist/components/retrieval-search/retrieval-search.d.ts.map +1 -0
- package/dist/components/retrieval-search/retrieval-search.js +11 -0
- package/dist/components/retrieval-search/retrieval-search.js.map +1 -0
- package/dist/components/retrieval-search/retrieval-search.styles.d.ts +2 -0
- package/dist/components/retrieval-search/retrieval-search.styles.d.ts.map +1 -0
- package/dist/components/retrieval-search/retrieval-search.styles.js +75 -0
- package/dist/components/retrieval-search/retrieval-search.styles.js.map +1 -0
- package/dist/components/retrieval-trace/retrieval-trace.class.d.ts +101 -0
- package/dist/components/retrieval-trace/retrieval-trace.class.d.ts.map +1 -0
- package/dist/components/retrieval-trace/retrieval-trace.class.js +215 -0
- package/dist/components/retrieval-trace/retrieval-trace.class.js.map +1 -0
- package/dist/components/retrieval-trace/retrieval-trace.d.ts +4 -0
- package/dist/components/retrieval-trace/retrieval-trace.d.ts.map +1 -0
- package/dist/components/retrieval-trace/retrieval-trace.js +7 -0
- package/dist/components/retrieval-trace/retrieval-trace.js.map +1 -0
- package/dist/components/retrieval-trace/retrieval-trace.styles.d.ts +2 -0
- package/dist/components/retrieval-trace/retrieval-trace.styles.d.ts.map +1 -0
- package/dist/components/retrieval-trace/retrieval-trace.styles.js +116 -0
- package/dist/components/retrieval-trace/retrieval-trace.styles.js.map +1 -0
- package/dist/components/thread-list/thread-list.class.d.ts +19 -1
- package/dist/components/thread-list/thread-list.class.d.ts.map +1 -1
- package/dist/components/thread-list/thread-list.class.js +9 -2
- package/dist/components/thread-list/thread-list.class.js.map +1 -1
- package/dist/components/tool-timeline/tool-timeline.class.d.ts +140 -0
- package/dist/components/tool-timeline/tool-timeline.class.d.ts.map +1 -0
- package/dist/components/tool-timeline/tool-timeline.class.js +293 -0
- package/dist/components/tool-timeline/tool-timeline.class.js.map +1 -0
- package/dist/components/tool-timeline/tool-timeline.d.ts +2 -0
- package/dist/components/tool-timeline/tool-timeline.d.ts.map +1 -0
- package/dist/components/tool-timeline/tool-timeline.js +5 -0
- package/dist/components/tool-timeline/tool-timeline.js.map +1 -0
- package/dist/components/tool-timeline/tool-timeline.styles.d.ts +2 -0
- package/dist/components/tool-timeline/tool-timeline.styles.d.ts.map +1 -0
- package/dist/components/tool-timeline/tool-timeline.styles.js +148 -0
- package/dist/components/tool-timeline/tool-timeline.styles.js.map +1 -0
- package/dist/internal/localization.d.ts +1 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +224 -0
- package/dist/internal/localization.js.map +1 -1
- package/dist/internal/positioner.d.ts +28 -1
- package/dist/internal/positioner.d.ts.map +1 -1
- package/dist/internal/positioner.js +12 -1
- package/dist/internal/positioner.js.map +1 -1
- package/dist/internal/root-registration-allowlist.d.ts +2 -2
- package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
- package/dist/internal/root-registration-allowlist.js +24 -0
- package/dist/internal/root-registration-allowlist.js.map +1 -1
- package/dist/internal/tokens.styles.d.ts.map +1 -1
- package/dist/internal/tokens.styles.js +2 -0
- package/dist/internal/tokens.styles.js.map +1 -1
- package/dist/lyra.d.ts +48 -1
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +47 -0
- package/dist/lyra.js.map +1 -1
- package/llms-full.txt +462 -9
- package/llms.txt +7 -0
- package/package.json +50 -1
- package/vscode-css-data.json +21 -0
- package/vscode-html-data.json +1103 -47
- package/web-types.json +1131 -47
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
2
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
3
|
+
import type { DocumentRef } from '../../ai/types.js';
|
|
4
|
+
import type { LyraAnchor, LyraHighlight } from '../document-viewer/anchors.js';
|
|
5
|
+
import type { ShikiLanguageInput } from '../code-block/code-loader.js';
|
|
6
|
+
import '../document-preview/document-preview.js';
|
|
7
|
+
import '../diff-view/diff-view.js';
|
|
8
|
+
export interface LyraDocumentCompareEventMap {
|
|
9
|
+
/** Bubbles unchanged from the internal `<lr-diff-view>` while `view="diff"`. `detail: { text }` — the full unified-diff text. */
|
|
10
|
+
'lr-copy': CustomEvent<{
|
|
11
|
+
text: string;
|
|
12
|
+
}>;
|
|
13
|
+
/** Bubbles unchanged from whichever pane's `<lr-document-preview>` it originated in, while `view="side-by-side"`. `detail: { id }`. Activating a highlight that shares its `id` with a highlight on the *other* version also scrolls that pane to the matching highlight -- see the class doc's "Synchronized anchors" section. */
|
|
14
|
+
'lr-highlight-activate': CustomEvent<{
|
|
15
|
+
id: string;
|
|
16
|
+
}>;
|
|
17
|
+
/** Bubbles unchanged from whichever pane's `<lr-document-preview>` it originated in. `detail: { src, filename }`. */
|
|
18
|
+
'lr-download': CustomEvent<{
|
|
19
|
+
src: string;
|
|
20
|
+
filename: string;
|
|
21
|
+
}>;
|
|
22
|
+
/** Bubbles unchanged from whichever pane's `<lr-document-preview>` it originated in (a failed `text/*` fetch). `detail: { error }`. */
|
|
23
|
+
'lr-render-error': CustomEvent<{
|
|
24
|
+
error: unknown;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* One document version to compare. Extends the shared `DocumentRef` (`id`/`name`/`mimeType`/
|
|
29
|
+
* `uri`/`version`) with the two fields a comparison needs that a bare document reference doesn't
|
|
30
|
+
* carry: the literal `text` an `<lr-diff-view>` diffs directly, and this version's own
|
|
31
|
+
* `<lr-document-preview>` region `highlights` (see "Synchronized anchors" below). `uri` (from
|
|
32
|
+
* `DocumentRef`) maps onto `<lr-document-preview>`'s own `src` property, and `mimeType` maps onto
|
|
33
|
+
* its `mimeType` property field-for-field; `name` maps onto its differently-named `filename`
|
|
34
|
+
* property (per `DocumentRef`'s own doc comment, `name` matches `<lr-attachment-chip>`'s property
|
|
35
|
+
* name, not `<lr-document-preview>`'s).
|
|
36
|
+
*/
|
|
37
|
+
export interface DocumentCompareVersion extends DocumentRef {
|
|
38
|
+
/** Literal text content for this version -- diffed directly by `view="diff"` (no fetch involved), unlike `<lr-document-preview>`'s own text-format dispatch which fetches `uri`. */
|
|
39
|
+
text?: string;
|
|
40
|
+
/** Region highlights rendered over this version's own `<lr-document-preview>` pane (image format only -- see that component's own scope). An id shared between `oldVersion.highlights` and `newVersion.highlights` is what "synchronized anchors" resolves against. */
|
|
41
|
+
highlights?: LyraHighlight[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* `<lr-document-compare>` — side-by-side or inline comparison of two document versions, composed
|
|
45
|
+
* entirely from two existing primitives rather than reimplementing either: `<lr-diff-view>` is the
|
|
46
|
+
* real two-string line diff (`view="diff"`, the default), and `<lr-document-preview>` renders each
|
|
47
|
+
* version's own actual content in `view="side-by-side"`.
|
|
48
|
+
*
|
|
49
|
+
* **Synchronized anchors.** `<lr-diff-view>`'s own `layout="split"` needs no scroll-sync of its
|
|
50
|
+
* own -- both columns already live inside one shared scrolling container, so they move together
|
|
51
|
+
* for free. `view="side-by-side"` is different: it renders two *independent*
|
|
52
|
+
* `<lr-document-preview>` panes, each with its own scrollbar, so nothing keeps them aligned on its
|
|
53
|
+
* own. This component adds exactly two minimal, purpose-built coordination mechanisms for that
|
|
54
|
+
* case (mirroring `<lr-compare-panel>`'s own proven proportional-scroll algorithm rather than
|
|
55
|
+
* inventing a new one):
|
|
56
|
+
* - **Continuous scroll sync** (`syncScroll`, default `true`): scrolling either pane
|
|
57
|
+
* proportionally scrolls the other to the same *fraction* of its own scrollable range, not the
|
|
58
|
+
* same pixel offset -- the two versions can have very different lengths. A re-entrancy guard
|
|
59
|
+
* stops the mirrored write from bouncing back.
|
|
60
|
+
* - **Highlight-anchor sync**: activating a region highlight in one pane (`lr-highlight-activate`)
|
|
61
|
+
* that shares its `id` with a highlight in the *other* version's `highlights` scrolls that pane
|
|
62
|
+
* to its own matching highlight via `<lr-document-preview>`'s own `scrollToAnchor()`. The
|
|
63
|
+
* `lr-highlight-activate` event itself still bubbles through unchanged (`detail: { id }`, no
|
|
64
|
+
* side discriminator) so an existing listener contract stays exactly what
|
|
65
|
+
* `<lr-document-preview>` already documents.
|
|
66
|
+
* - A shared `anchor` property (same declarative shape as `<lr-document-viewer>`'s own `anchor`)
|
|
67
|
+
* drives both panes to the same target at once via their own `scrollToAnchor()`.
|
|
68
|
+
*
|
|
69
|
+
* @customElement lr-document-compare
|
|
70
|
+
* @event lr-copy - See `LyraDocumentCompareEventMap`.
|
|
71
|
+
* @event lr-highlight-activate - See `LyraDocumentCompareEventMap`.
|
|
72
|
+
* @event lr-download - See `LyraDocumentCompareEventMap`.
|
|
73
|
+
* @event lr-render-error - See `LyraDocumentCompareEventMap`.
|
|
74
|
+
* @csspart base - The root wrapper.
|
|
75
|
+
* @csspart diff - The internal `<lr-diff-view>`, rendered while `view="diff"`.
|
|
76
|
+
* @csspart panes - The row (or, under 640px, column) wrapping both panes, rendered while `view="side-by-side"`.
|
|
77
|
+
* @csspart pane-old - The first (old/before) version's labeled, independently-scrollable pane.
|
|
78
|
+
* @csspart pane-new - The second (new/after) version's labeled, independently-scrollable pane.
|
|
79
|
+
* @csspart pane-header - A pane's visible label.
|
|
80
|
+
* @csspart pane-empty - The placeholder shown in a pane whose version is unset.
|
|
81
|
+
* @cssprop [--lr-document-compare-pane-max-height=24rem] - Maximum block size of a side-by-side pane before it scrolls internally.
|
|
82
|
+
*/
|
|
83
|
+
export declare class LyraDocumentCompare extends LyraElement<LyraDocumentCompareEventMap> {
|
|
84
|
+
static styles: import("lit").CSSResultGroup[];
|
|
85
|
+
/** `'diff'` (the default) renders one inline `<lr-diff-view>`; `'side-by-side'` renders two
|
|
86
|
+
* independently-scrollable `<lr-document-preview>` panes -- see the class doc's "Synchronized
|
|
87
|
+
* anchors" section for how the two panes are kept in sync. */
|
|
88
|
+
view: 'diff' | 'side-by-side';
|
|
89
|
+
/** The "before" version. */
|
|
90
|
+
oldVersion?: DocumentCompareVersion;
|
|
91
|
+
/** The "after" version. */
|
|
92
|
+
newVersion?: DocumentCompareVersion;
|
|
93
|
+
/** Forwarded to the internal `<lr-diff-view>`'s own `layout` property while `view="diff"`. */
|
|
94
|
+
diffLayout: 'unified' | 'split';
|
|
95
|
+
/** Forwarded to the internal `<lr-diff-view>`'s own `copyable` property while `view="diff"`. */
|
|
96
|
+
copyable: boolean;
|
|
97
|
+
/** Forwarded to the internal `<lr-diff-view>`'s own `language` property while `view="diff"`. */
|
|
98
|
+
language: string;
|
|
99
|
+
/** Forwarded to the internal `<lr-diff-view>`'s own `languages` property while `view="diff"`. */
|
|
100
|
+
languages?: Record<string, ShikiLanguageInput>;
|
|
101
|
+
/** Whether scrolling one `view="side-by-side"` pane proportionally scrolls the other. See the
|
|
102
|
+
* class doc's "Synchronized anchors" section. */
|
|
103
|
+
syncScroll: boolean;
|
|
104
|
+
/** A shared scroll-to-anchor target forwarded to both `view="side-by-side"` panes'
|
|
105
|
+
* `scrollToAnchor()`. `hasChanged: () => true` so re-assigning the same value (e.g. re-clicking
|
|
106
|
+
* the same source reference) still re-fires, mirroring `<lr-document-viewer>`'s identical
|
|
107
|
+
* property. */
|
|
108
|
+
anchor: LyraAnchor | string | null;
|
|
109
|
+
private paneOldEl?;
|
|
110
|
+
private paneNewEl?;
|
|
111
|
+
private previewOldEl?;
|
|
112
|
+
private previewNewEl?;
|
|
113
|
+
private suppressSync;
|
|
114
|
+
protected updated(changed: PropertyValues): void;
|
|
115
|
+
private onPaneScroll;
|
|
116
|
+
/** Handles a pane's own `lr-highlight-activate` (not re-emitted -- the event bubbles through
|
|
117
|
+
* unchanged, see the class doc). When the other version has a highlight sharing this `id`,
|
|
118
|
+
* scrolls that pane to it too. */
|
|
119
|
+
private onHighlightActivate;
|
|
120
|
+
private versionLabel;
|
|
121
|
+
private renderDiff;
|
|
122
|
+
private renderVersionPane;
|
|
123
|
+
private renderSideBySide;
|
|
124
|
+
render(): TemplateResult;
|
|
125
|
+
}
|
|
126
|
+
declare global {
|
|
127
|
+
interface HTMLElementTagNameMap {
|
|
128
|
+
'lr-document-compare': LyraDocumentCompare;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=document-compare.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-compare.class.d.ts","sourceRoot":"","sources":["../../../src/components/document-compare/document-compare.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,yCAAyC,CAAC;AACjD,OAAO,2BAA2B,CAAC;AAGnC,MAAM,WAAW,2BAA2B;IAC1C,iIAAiI;IACjI,SAAS,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzC,mUAAmU;IACnU,uBAAuB,EAAE,WAAW,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,qHAAqH;IACrH,aAAa,EAAE,WAAW,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9D,uIAAuI;IACvI,iBAAiB,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACpD;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,oLAAoL;IACpL,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uQAAuQ;IACvQ,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,mBAAoB,SAAQ,WAAW,CAAC,2BAA2B,CAAC;IAC/E,MAAM,CAAC,MAAM,iCAAgC;IAE7C;;mEAE+D;IAClC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAU;IAEpE,4BAA4B;IACI,UAAU,CAAC,EAAE,sBAAsB,CAAC;IAEpE,2BAA2B;IACK,UAAU,CAAC,EAAE,sBAAsB,CAAC;IAEpE,8FAA8F;IACvC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAa;IAEnG,gGAAgG;IACnE,QAAQ,UAAS;IAE9C,gGAAgG;IACpF,QAAQ,SAAM;IAE1B,iGAAiG;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAE/E;sDACkD;IACK,UAAU,UAAQ;IAEzE;;;oBAGgB;IACwC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAAQ;IAEtE,OAAO,CAAC,SAAS,CAAC,CAAc;IAChC,OAAO,CAAC,SAAS,CAAC,CAAc;IACZ,OAAO,CAAC,YAAY,CAAC,CAAsB;IAC3C,OAAO,CAAC,YAAY,CAAC,CAAsB;IAK3F,OAAO,CAAC,YAAY,CAAS;IAE7B,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAQ/C;IAED,OAAO,CAAC,YAAY,CAgBlB;IAEF;;uCAEmC;IACnC,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,gBAAgB;IAiBxB,MAAM,IAAI,cAAc,CAMvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,mBAAmB,CAAC;KAC5C;CACF"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html } from 'lit';
|
|
8
|
+
import { property, query } from 'lit/decorators.js';
|
|
9
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
10
|
+
import '../document-preview/document-preview.js';
|
|
11
|
+
import '../diff-view/diff-view.js';
|
|
12
|
+
import { styles } from './document-compare.styles.js';
|
|
13
|
+
/**
|
|
14
|
+
* `<lr-document-compare>` — side-by-side or inline comparison of two document versions, composed
|
|
15
|
+
* entirely from two existing primitives rather than reimplementing either: `<lr-diff-view>` is the
|
|
16
|
+
* real two-string line diff (`view="diff"`, the default), and `<lr-document-preview>` renders each
|
|
17
|
+
* version's own actual content in `view="side-by-side"`.
|
|
18
|
+
*
|
|
19
|
+
* **Synchronized anchors.** `<lr-diff-view>`'s own `layout="split"` needs no scroll-sync of its
|
|
20
|
+
* own -- both columns already live inside one shared scrolling container, so they move together
|
|
21
|
+
* for free. `view="side-by-side"` is different: it renders two *independent*
|
|
22
|
+
* `<lr-document-preview>` panes, each with its own scrollbar, so nothing keeps them aligned on its
|
|
23
|
+
* own. This component adds exactly two minimal, purpose-built coordination mechanisms for that
|
|
24
|
+
* case (mirroring `<lr-compare-panel>`'s own proven proportional-scroll algorithm rather than
|
|
25
|
+
* inventing a new one):
|
|
26
|
+
* - **Continuous scroll sync** (`syncScroll`, default `true`): scrolling either pane
|
|
27
|
+
* proportionally scrolls the other to the same *fraction* of its own scrollable range, not the
|
|
28
|
+
* same pixel offset -- the two versions can have very different lengths. A re-entrancy guard
|
|
29
|
+
* stops the mirrored write from bouncing back.
|
|
30
|
+
* - **Highlight-anchor sync**: activating a region highlight in one pane (`lr-highlight-activate`)
|
|
31
|
+
* that shares its `id` with a highlight in the *other* version's `highlights` scrolls that pane
|
|
32
|
+
* to its own matching highlight via `<lr-document-preview>`'s own `scrollToAnchor()`. The
|
|
33
|
+
* `lr-highlight-activate` event itself still bubbles through unchanged (`detail: { id }`, no
|
|
34
|
+
* side discriminator) so an existing listener contract stays exactly what
|
|
35
|
+
* `<lr-document-preview>` already documents.
|
|
36
|
+
* - A shared `anchor` property (same declarative shape as `<lr-document-viewer>`'s own `anchor`)
|
|
37
|
+
* drives both panes to the same target at once via their own `scrollToAnchor()`.
|
|
38
|
+
*
|
|
39
|
+
* @customElement lr-document-compare
|
|
40
|
+
* @event lr-copy - See `LyraDocumentCompareEventMap`.
|
|
41
|
+
* @event lr-highlight-activate - See `LyraDocumentCompareEventMap`.
|
|
42
|
+
* @event lr-download - See `LyraDocumentCompareEventMap`.
|
|
43
|
+
* @event lr-render-error - See `LyraDocumentCompareEventMap`.
|
|
44
|
+
* @csspart base - The root wrapper.
|
|
45
|
+
* @csspart diff - The internal `<lr-diff-view>`, rendered while `view="diff"`.
|
|
46
|
+
* @csspart panes - The row (or, under 640px, column) wrapping both panes, rendered while `view="side-by-side"`.
|
|
47
|
+
* @csspart pane-old - The first (old/before) version's labeled, independently-scrollable pane.
|
|
48
|
+
* @csspart pane-new - The second (new/after) version's labeled, independently-scrollable pane.
|
|
49
|
+
* @csspart pane-header - A pane's visible label.
|
|
50
|
+
* @csspart pane-empty - The placeholder shown in a pane whose version is unset.
|
|
51
|
+
* @cssprop [--lr-document-compare-pane-max-height=24rem] - Maximum block size of a side-by-side pane before it scrolls internally.
|
|
52
|
+
*/
|
|
53
|
+
export class LyraDocumentCompare extends LyraElement {
|
|
54
|
+
constructor() {
|
|
55
|
+
super(...arguments);
|
|
56
|
+
/** `'diff'` (the default) renders one inline `<lr-diff-view>`; `'side-by-side'` renders two
|
|
57
|
+
* independently-scrollable `<lr-document-preview>` panes -- see the class doc's "Synchronized
|
|
58
|
+
* anchors" section for how the two panes are kept in sync. */
|
|
59
|
+
this.view = 'diff';
|
|
60
|
+
/** Forwarded to the internal `<lr-diff-view>`'s own `layout` property while `view="diff"`. */
|
|
61
|
+
this.diffLayout = 'unified';
|
|
62
|
+
/** Forwarded to the internal `<lr-diff-view>`'s own `copyable` property while `view="diff"`. */
|
|
63
|
+
this.copyable = false;
|
|
64
|
+
/** Forwarded to the internal `<lr-diff-view>`'s own `language` property while `view="diff"`. */
|
|
65
|
+
this.language = '';
|
|
66
|
+
/** Whether scrolling one `view="side-by-side"` pane proportionally scrolls the other. See the
|
|
67
|
+
* class doc's "Synchronized anchors" section. */
|
|
68
|
+
this.syncScroll = true;
|
|
69
|
+
/** A shared scroll-to-anchor target forwarded to both `view="side-by-side"` panes'
|
|
70
|
+
* `scrollToAnchor()`. `hasChanged: () => true` so re-assigning the same value (e.g. re-clicking
|
|
71
|
+
* the same source reference) still re-fires, mirroring `<lr-document-viewer>`'s identical
|
|
72
|
+
* property. */
|
|
73
|
+
this.anchor = null;
|
|
74
|
+
// Guards the fraction-based mirrored scrollTop write below from re-triggering its own 'scroll'
|
|
75
|
+
// listener on the pane it just wrote to -- same guard `<lr-compare-panel>`'s own
|
|
76
|
+
// onPaneScroll() uses.
|
|
77
|
+
this.suppressSync = false;
|
|
78
|
+
this.onPaneScroll = (source) => {
|
|
79
|
+
return () => {
|
|
80
|
+
if (!this.syncScroll || this.suppressSync)
|
|
81
|
+
return;
|
|
82
|
+
const from = source === 'old' ? this.paneOldEl : this.paneNewEl;
|
|
83
|
+
const to = source === 'old' ? this.paneNewEl : this.paneOldEl;
|
|
84
|
+
if (!from || !to)
|
|
85
|
+
return;
|
|
86
|
+
const fromMax = from.scrollHeight - from.clientHeight;
|
|
87
|
+
const toMax = to.scrollHeight - to.clientHeight;
|
|
88
|
+
if (fromMax <= 0)
|
|
89
|
+
return;
|
|
90
|
+
const fraction = from.scrollTop / fromMax;
|
|
91
|
+
this.suppressSync = true;
|
|
92
|
+
to.scrollTop = fraction * toMax;
|
|
93
|
+
requestAnimationFrame(() => {
|
|
94
|
+
this.suppressSync = false;
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
static { this.styles = [LyraElement.styles, styles]; }
|
|
100
|
+
updated(changed) {
|
|
101
|
+
super.updated(changed);
|
|
102
|
+
const anchor = this.anchor;
|
|
103
|
+
if (anchor == null)
|
|
104
|
+
return;
|
|
105
|
+
const shouldJump = changed.has('anchor') || (changed.has('view') && this.view === 'side-by-side');
|
|
106
|
+
if (!shouldJump)
|
|
107
|
+
return;
|
|
108
|
+
void this.previewOldEl?.scrollToAnchor(anchor);
|
|
109
|
+
void this.previewNewEl?.scrollToAnchor(anchor);
|
|
110
|
+
}
|
|
111
|
+
/** Handles a pane's own `lr-highlight-activate` (not re-emitted -- the event bubbles through
|
|
112
|
+
* unchanged, see the class doc). When the other version has a highlight sharing this `id`,
|
|
113
|
+
* scrolls that pane to it too. */
|
|
114
|
+
onHighlightActivate(side, event) {
|
|
115
|
+
const { id } = event.detail;
|
|
116
|
+
const otherVersion = side === 'old' ? this.newVersion : this.oldVersion;
|
|
117
|
+
if (!otherVersion?.highlights?.some((h) => h.id === id))
|
|
118
|
+
return;
|
|
119
|
+
const otherPreview = side === 'old' ? this.previewNewEl : this.previewOldEl;
|
|
120
|
+
void otherPreview?.scrollToAnchor(id);
|
|
121
|
+
}
|
|
122
|
+
versionLabel(version, fallbackKey) {
|
|
123
|
+
return version?.name || version?.version || this.localize(fallbackKey);
|
|
124
|
+
}
|
|
125
|
+
renderDiff() {
|
|
126
|
+
return html `
|
|
127
|
+
<lr-diff-view
|
|
128
|
+
part="diff"
|
|
129
|
+
.oldText=${this.oldVersion?.text ?? ''}
|
|
130
|
+
.newText=${this.newVersion?.text ?? ''}
|
|
131
|
+
layout=${this.diffLayout}
|
|
132
|
+
?copyable=${this.copyable}
|
|
133
|
+
language=${this.language}
|
|
134
|
+
.languages=${this.languages}
|
|
135
|
+
></lr-diff-view>
|
|
136
|
+
`;
|
|
137
|
+
}
|
|
138
|
+
renderVersionPane(version, side) {
|
|
139
|
+
if (!version)
|
|
140
|
+
return html `<p part="pane-empty">${this.localize('documentCompareNoVersion')}</p>`;
|
|
141
|
+
return html `
|
|
142
|
+
<lr-document-preview
|
|
143
|
+
filename=${version.name ?? ''}
|
|
144
|
+
mime-type=${version.mimeType ?? ''}
|
|
145
|
+
src=${version.uri ?? ''}
|
|
146
|
+
.highlights=${version.highlights ?? []}
|
|
147
|
+
@lr-highlight-activate=${(e) => this.onHighlightActivate(side, e)}
|
|
148
|
+
></lr-document-preview>
|
|
149
|
+
`;
|
|
150
|
+
}
|
|
151
|
+
renderSideBySide() {
|
|
152
|
+
const oldLabel = this.versionLabel(this.oldVersion, 'documentCompareOldVersion');
|
|
153
|
+
const newLabel = this.versionLabel(this.newVersion, 'documentCompareNewVersion');
|
|
154
|
+
return html `
|
|
155
|
+
<div part="panes">
|
|
156
|
+
<div part="pane-old" role="region" aria-label=${oldLabel} tabindex="0" @scroll=${this.onPaneScroll('old')}>
|
|
157
|
+
<div part="pane-header">${oldLabel}</div>
|
|
158
|
+
${this.renderVersionPane(this.oldVersion, 'old')}
|
|
159
|
+
</div>
|
|
160
|
+
<div part="pane-new" role="region" aria-label=${newLabel} tabindex="0" @scroll=${this.onPaneScroll('new')}>
|
|
161
|
+
<div part="pane-header">${newLabel}</div>
|
|
162
|
+
${this.renderVersionPane(this.newVersion, 'new')}
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
`;
|
|
166
|
+
}
|
|
167
|
+
render() {
|
|
168
|
+
return html `
|
|
169
|
+
<div part="base" role="group" aria-label=${this.getAttribute('aria-label') || this.localize('documentCompareLabel')}>
|
|
170
|
+
${this.view === 'side-by-side' ? this.renderSideBySide() : this.renderDiff()}
|
|
171
|
+
</div>
|
|
172
|
+
`;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
__decorate([
|
|
176
|
+
property({ reflect: true })
|
|
177
|
+
], LyraDocumentCompare.prototype, "view", void 0);
|
|
178
|
+
__decorate([
|
|
179
|
+
property({ attribute: false })
|
|
180
|
+
], LyraDocumentCompare.prototype, "oldVersion", void 0);
|
|
181
|
+
__decorate([
|
|
182
|
+
property({ attribute: false })
|
|
183
|
+
], LyraDocumentCompare.prototype, "newVersion", void 0);
|
|
184
|
+
__decorate([
|
|
185
|
+
property({ attribute: 'diff-layout', reflect: true })
|
|
186
|
+
], LyraDocumentCompare.prototype, "diffLayout", void 0);
|
|
187
|
+
__decorate([
|
|
188
|
+
property({ type: Boolean })
|
|
189
|
+
], LyraDocumentCompare.prototype, "copyable", void 0);
|
|
190
|
+
__decorate([
|
|
191
|
+
property()
|
|
192
|
+
], LyraDocumentCompare.prototype, "language", void 0);
|
|
193
|
+
__decorate([
|
|
194
|
+
property({ attribute: false })
|
|
195
|
+
], LyraDocumentCompare.prototype, "languages", void 0);
|
|
196
|
+
__decorate([
|
|
197
|
+
property({ type: Boolean, attribute: 'sync-scroll' })
|
|
198
|
+
], LyraDocumentCompare.prototype, "syncScroll", void 0);
|
|
199
|
+
__decorate([
|
|
200
|
+
property({ attribute: false, hasChanged: () => true })
|
|
201
|
+
], LyraDocumentCompare.prototype, "anchor", void 0);
|
|
202
|
+
__decorate([
|
|
203
|
+
query('[part="pane-old"]')
|
|
204
|
+
], LyraDocumentCompare.prototype, "paneOldEl", void 0);
|
|
205
|
+
__decorate([
|
|
206
|
+
query('[part="pane-new"]')
|
|
207
|
+
], LyraDocumentCompare.prototype, "paneNewEl", void 0);
|
|
208
|
+
__decorate([
|
|
209
|
+
query('[part="pane-old"] lr-document-preview')
|
|
210
|
+
], LyraDocumentCompare.prototype, "previewOldEl", void 0);
|
|
211
|
+
__decorate([
|
|
212
|
+
query('[part="pane-new"] lr-document-preview')
|
|
213
|
+
], LyraDocumentCompare.prototype, "previewNewEl", void 0);
|
|
214
|
+
//# sourceMappingURL=document-compare.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-compare.class.js","sourceRoot":"","sources":["../../../src/components/document-compare/document-compare.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-compare.d.ts","sourceRoot":"","sources":["../../../src/components/document-compare/document-compare.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './document-compare.class.js';
|
|
2
|
+
import { LyraDocumentCompare } from './document-compare.class.js';
|
|
3
|
+
import { defineElement } from '../../internal/prefix.js';
|
|
4
|
+
defineElement('document-compare', LyraDocumentCompare);
|
|
5
|
+
//# sourceMappingURL=document-compare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-compare.js","sourceRoot":"","sources":["../../../src/components/document-compare/document-compare.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,aAAa,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-compare.styles.d.ts","sourceRoot":"","sources":["../../../src/components/document-compare/document-compare.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA8DlB,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `
|
|
3
|
+
:host {
|
|
4
|
+
display: block;
|
|
5
|
+
container-type: inline-size;
|
|
6
|
+
--lr-document-compare-pane-max-height: var(--lr-size-24rem);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
[part='base'] {
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
gap: var(--lr-space-m);
|
|
13
|
+
color: var(--lr-color-text);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
[part='diff'] {
|
|
17
|
+
display: block;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
[part='panes'] {
|
|
21
|
+
display: flex;
|
|
22
|
+
gap: var(--lr-space-m);
|
|
23
|
+
align-items: stretch;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
[part='pane-old'],
|
|
27
|
+
[part='pane-new'] {
|
|
28
|
+
flex: 1 1 0;
|
|
29
|
+
min-inline-size: 0;
|
|
30
|
+
display: flex;
|
|
31
|
+
flex-direction: column;
|
|
32
|
+
gap: var(--lr-space-xs);
|
|
33
|
+
border: var(--lr-border-width-thin) solid var(--lr-color-border);
|
|
34
|
+
border-radius: var(--lr-radius);
|
|
35
|
+
padding: var(--lr-space-m);
|
|
36
|
+
max-block-size: var(--lr-document-compare-pane-max-height);
|
|
37
|
+
overflow-y: auto;
|
|
38
|
+
}
|
|
39
|
+
[part='pane-old']:focus-visible,
|
|
40
|
+
[part='pane-new']:focus-visible {
|
|
41
|
+
outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color);
|
|
42
|
+
outline-offset: calc(-1 * var(--lr-focus-ring-width));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
[part='pane-header'] {
|
|
46
|
+
font-weight: var(--lr-font-weight-semibold);
|
|
47
|
+
font-size: var(--lr-font-size-xs);
|
|
48
|
+
color: var(--lr-color-text-quiet);
|
|
49
|
+
text-transform: uppercase;
|
|
50
|
+
letter-spacing: var(--lr-size-0-02em);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
[part='pane-empty'] {
|
|
54
|
+
margin: 0;
|
|
55
|
+
color: var(--lr-color-text-quiet);
|
|
56
|
+
font-size: var(--lr-font-size-sm);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@container (max-inline-size: 639.98px) {
|
|
60
|
+
[part='panes'] {
|
|
61
|
+
flex-direction: column;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
`;
|
|
65
|
+
//# sourceMappingURL=document-compare.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-compare.styles.js","sourceRoot":"","sources":["../../../src/components/document-compare/document-compare.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DxB,CAAC"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
2
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
3
|
+
import type { DocumentRef } from '../../ai/types.js';
|
|
4
|
+
import '../table/table.js';
|
|
5
|
+
import '../checkbox/checkbox.js';
|
|
6
|
+
import '../chip/chip.js';
|
|
7
|
+
import '../chip/chip-group.js';
|
|
8
|
+
import '../file-icon/file-icon.js';
|
|
9
|
+
import '../input/input.js';
|
|
10
|
+
import '../combobox/combobox.js';
|
|
11
|
+
/** How recently a document's content was verified/updated, consumer-computed (this component
|
|
12
|
+
* performs no staleness calculation of its own -- it only renders whichever bucket the host
|
|
13
|
+
* already assigned). Ordered fresh -> aging -> stale for `freshness`-column sorting. */
|
|
14
|
+
export type LibraryDocumentFreshness = 'fresh' | 'aging' | 'stale';
|
|
15
|
+
/**
|
|
16
|
+
* One inventory row. Extends the shared `DocumentRef` (`src/ai/types.ts`) -- `id`/`name`/
|
|
17
|
+
* `mimeType`/`uri`/`version` assign directly onto/from it with no adapter -- with the
|
|
18
|
+
* version/tags/owner/freshness fields the roadmap's document-library surface needs that the
|
|
19
|
+
* provider-neutral `DocumentRef` deliberately doesn't carry (those concepts are specific to an
|
|
20
|
+
* inventory view, not to "a reference to a document" in general). `updatedAt` reuses
|
|
21
|
+
* `ChatMessage.timestamp`'s own `Date | string` shape from the same `src/ai/types.ts` module for
|
|
22
|
+
* consistency across this component family.
|
|
23
|
+
*/
|
|
24
|
+
export interface LibraryDocument extends DocumentRef {
|
|
25
|
+
tags?: string[];
|
|
26
|
+
owner?: string;
|
|
27
|
+
/** Last-updated timestamp. `Date | string` (ISO-8601), matching `ChatMessage.timestamp`. */
|
|
28
|
+
updatedAt?: Date | string;
|
|
29
|
+
freshness?: LibraryDocumentFreshness;
|
|
30
|
+
}
|
|
31
|
+
/** Column keys `sortKey` accepts. Not every column is sortable (`type`/`tags`/`select` are not). */
|
|
32
|
+
export type LibraryDocumentSortKey = 'name' | 'version' | 'owner' | 'freshness' | 'updatedAt';
|
|
33
|
+
export interface DocumentLibraryFilterChangeDetail {
|
|
34
|
+
text: string;
|
|
35
|
+
tags: string[];
|
|
36
|
+
matchCount: number;
|
|
37
|
+
}
|
|
38
|
+
export interface DocumentLibrarySortDetail {
|
|
39
|
+
key: LibraryDocumentSortKey;
|
|
40
|
+
direction: 'ascending' | 'descending';
|
|
41
|
+
}
|
|
42
|
+
export interface DocumentLibrarySelectionChangeDetail {
|
|
43
|
+
ids: string[];
|
|
44
|
+
}
|
|
45
|
+
export interface DocumentLibraryOpenDetail {
|
|
46
|
+
id: string;
|
|
47
|
+
}
|
|
48
|
+
export interface LyraDocumentLibraryEventMap {
|
|
49
|
+
'lr-filter-change': CustomEvent<DocumentLibraryFilterChangeDetail>;
|
|
50
|
+
'lr-sort': CustomEvent<DocumentLibrarySortDetail>;
|
|
51
|
+
'lr-selection-change': CustomEvent<DocumentLibrarySelectionChangeDetail>;
|
|
52
|
+
'lr-open': CustomEvent<DocumentLibraryOpenDetail>;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* `<lr-document-library>` — a searchable, filterable inventory of documents with versions, tags,
|
|
56
|
+
* owners, freshness, and bulk selection. A controlled data view: it performs no upload, sync, or
|
|
57
|
+
* mutation of its own, only presents `documents` and emits request/notification events, mirroring
|
|
58
|
+
* this package's other orchestration-level list surfaces (`<lr-thread-list>`'s
|
|
59
|
+
* `lr-thread-pin`/`-archive`/`-delete` convention).
|
|
60
|
+
*
|
|
61
|
+
* Composes `<lr-table>` (not `<lr-data-grid>`) for the inventory grid itself: `<lr-data-grid>`
|
|
62
|
+
* only supports a single `selectedKey` and stringifies every cell value (`String(value)`), so it
|
|
63
|
+
* cannot host the checkbox/chip/icon content bulk selection, tags, and per-row type icons need.
|
|
64
|
+
* `<lr-table>` supports arbitrary `cell()`/`headerCell()` content and `priority`-driven responsive
|
|
65
|
+
* column hiding, which this component relies on for its 320px-allocation behavior. Search
|
|
66
|
+
* (`<lr-input type="search">`) and the tag facet (`<lr-combobox multiple>`) are both self-managed
|
|
67
|
+
* (client-side filtering against `documents`, like `<lr-thread-list>`'s own `searchable` field) —
|
|
68
|
+
* override matching entirely via `filter`. Row selection uses `<lr-checkbox>` per cell rather than
|
|
69
|
+
* `<lr-table>`'s own built-in `selectionMode`, since that mode's click-anywhere-in-the-row toggle
|
|
70
|
+
* would conflict with the row's own name button opening the document; `<lr-table>`'s
|
|
71
|
+
* `selectedKeys` is still fed from `selectedIds` purely for its `aria-selected` row styling.
|
|
72
|
+
*
|
|
73
|
+
* @customElement lr-document-library
|
|
74
|
+
* @event lr-filter-change - The search text or tag facet changed. `detail: { text, tags, matchCount }`.
|
|
75
|
+
* @event lr-sort - A sortable column header was activated. `detail: { key, direction }`.
|
|
76
|
+
* @event lr-selection-change - The bulk selection changed (a row checkbox, the header
|
|
77
|
+
* select-all checkbox, or "Clear selection"). `detail: { ids }`.
|
|
78
|
+
* @event lr-open - A document was activated (its name, or Enter/Space/click elsewhere on its
|
|
79
|
+
* row). `detail: { id }`.
|
|
80
|
+
* @csspart base - The root region.
|
|
81
|
+
* @csspart toolbar - Wraps the search field and tag filter.
|
|
82
|
+
* @csspart search - The `<lr-input>` search field.
|
|
83
|
+
* @csspart tag-filter - The `<lr-combobox>` tag facet filter. Only rendered while at least one
|
|
84
|
+
* document declares a `tags` entry.
|
|
85
|
+
* @csspart selection-bar - The "N selected" / "Clear selection" bar. Only rendered while
|
|
86
|
+
* `selectedIds` is non-empty.
|
|
87
|
+
* @csspart selection-count - The selected-count text inside `selection-bar`.
|
|
88
|
+
* @csspart clear-selection - The "Clear selection" button inside `selection-bar`.
|
|
89
|
+
* @csspart table - The `<lr-table>` inventory grid.
|
|
90
|
+
* @csspart document-name - Each row's clickable document-name button.
|
|
91
|
+
* @csspart row - Exported from `<lr-table>`'s own `row` part.
|
|
92
|
+
* @csspart cell - Exported from `<lr-table>`'s own `cell` part.
|
|
93
|
+
* @csspart header-cell - Exported from `<lr-table>`'s own `header-cell` part.
|
|
94
|
+
*/
|
|
95
|
+
export declare class LyraDocumentLibrary extends LyraElement<LyraDocumentLibraryEventMap> {
|
|
96
|
+
static styles: import("lit").CSSResultGroup[];
|
|
97
|
+
/** The full, unfiltered/unsorted inventory. */
|
|
98
|
+
documents: LibraryDocument[];
|
|
99
|
+
/** Bulk-selected document ids. Settable up front (pre-selection) and mutated internally by the
|
|
100
|
+
* row/select-all checkboxes and "Clear selection" — read it back, or listen for
|
|
101
|
+
* `lr-selection-change`, to persist the current selection. Automatically pruned of any id no
|
|
102
|
+
* longer present in `documents` (no event fires for that pruning -- only an actual selection
|
|
103
|
+
* interaction does, mirroring `<lr-chip-group>`'s identical silent-resync convention for its
|
|
104
|
+
* own `expanded` state). */
|
|
105
|
+
selectedIds: string[];
|
|
106
|
+
/** Currently-applied tag facet (`AND` semantics -- a document must carry every listed tag).
|
|
107
|
+
* Settable up front and mutated internally by the tag filter combobox. */
|
|
108
|
+
tagFilter: string[];
|
|
109
|
+
/** Overrides the default case-insensitive name/owner/tag substring match. Receives the already
|
|
110
|
+
* trimmed, lowercased search text, mirroring `<lr-thread-list>`'s identical `filter` contract. */
|
|
111
|
+
filter?: (document: LibraryDocument, query: string) => boolean;
|
|
112
|
+
sortKey: LibraryDocumentSortKey;
|
|
113
|
+
sortDirection: 'ascending' | 'descending';
|
|
114
|
+
loading: boolean;
|
|
115
|
+
/** Accessible name for the region and the inner grid. Defaults to the localized
|
|
116
|
+
* `documentLibraryLabel`. */
|
|
117
|
+
label: string;
|
|
118
|
+
private searchText;
|
|
119
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
120
|
+
private normalizeDate;
|
|
121
|
+
private defaultFilter;
|
|
122
|
+
private matchesTagFilter;
|
|
123
|
+
private compareDocuments;
|
|
124
|
+
/** The current search+tag-facet-filtered, sorted view of `documents`. */
|
|
125
|
+
private get visibleDocuments();
|
|
126
|
+
/** Every distinct tag across `documents`, sorted for stable combobox ordering. Empty when no
|
|
127
|
+
* document declares any tag -- the tag-filter combobox itself is only rendered while this is
|
|
128
|
+
* non-empty. */
|
|
129
|
+
private get allTags();
|
|
130
|
+
private emitFilterChange;
|
|
131
|
+
private onSearchInput;
|
|
132
|
+
private onTagFilterChange;
|
|
133
|
+
private onSort;
|
|
134
|
+
private openDocument;
|
|
135
|
+
private setSelected;
|
|
136
|
+
private toggleSelection;
|
|
137
|
+
private toggleSelectAll;
|
|
138
|
+
private clearSelection;
|
|
139
|
+
private freshnessLabel;
|
|
140
|
+
private renderSelectAllCheckbox;
|
|
141
|
+
private renderRowCheckbox;
|
|
142
|
+
private renderNameCell;
|
|
143
|
+
private renderTagsCell;
|
|
144
|
+
private renderFreshnessCell;
|
|
145
|
+
private renderUpdatedCell;
|
|
146
|
+
private buildColumns;
|
|
147
|
+
render(): TemplateResult;
|
|
148
|
+
}
|
|
149
|
+
declare global {
|
|
150
|
+
interface HTMLElementTagNameMap {
|
|
151
|
+
'lr-document-library': LyraDocumentLibrary;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=document-library.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-library.class.d.ts","sourceRoot":"","sources":["../../../src/components/document-library/document-library.class.ts"],"names":[],"mappings":"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"}
|