@aceshooting/lyra-ui 5.2.0 → 6.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 +3979 -0
- package/README.md +6 -5
- package/custom-elements.json +3580 -1047
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.d.ts +4 -2
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.d.ts.map +1 -1
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.js.map +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.class.d.ts +7 -3
- package/dist/components/agent-tools/browser-frame/browser-frame.class.d.ts.map +1 -1
- package/dist/components/agent-tools/browser-frame/browser-frame.class.js.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts +36 -4
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.d.ts.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js +68 -19
- package/dist/components/agent-tools/confirm-bar/confirm-bar.class.js.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.d.ts +1 -0
- package/dist/components/agent-tools/confirm-bar/confirm-bar.d.ts.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.js +1 -0
- package/dist/components/agent-tools/confirm-bar/confirm-bar.js.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/confirm-bar/confirm-bar.styles.js +10 -29
- package/dist/components/agent-tools/confirm-bar/confirm-bar.styles.js.map +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts +7 -7
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.d.ts.map +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js +14 -13
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js.map +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.d.ts +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.d.ts.map +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.js +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.js.map +1 -1
- package/dist/components/agent-tools/eval-result/eval-result.class.d.ts +11 -9
- package/dist/components/agent-tools/eval-result/eval-result.class.d.ts.map +1 -1
- package/dist/components/agent-tools/eval-result/eval-result.class.js +9 -7
- package/dist/components/agent-tools/eval-result/eval-result.class.js.map +1 -1
- package/dist/components/agent-tools/eval-result/eval-result.d.ts +1 -1
- package/dist/components/agent-tools/eval-result/eval-result.d.ts.map +1 -1
- package/dist/components/agent-tools/eval-result/eval-result.js +1 -1
- package/dist/components/agent-tools/eval-result/eval-result.js.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +47 -5
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js +90 -15
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.d.ts +2 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.js +2 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.js.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.styles.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.styles.js +6 -26
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.styles.js.map +1 -1
- package/dist/components/charts/chart/chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/chart.class.js.map +1 -1
- package/dist/components/charts/chart/lite-chart.class.d.ts +5 -1
- package/dist/components/charts/chart/lite-chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/lite-chart.class.js.map +1 -1
- package/dist/components/conversation/code-block/greycat-language.d.ts +5 -0
- package/dist/components/conversation/code-block/greycat-language.d.ts.map +1 -1
- package/dist/components/conversation/code-block/greycat-language.js +48 -6
- package/dist/components/conversation/code-block/greycat-language.js.map +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.class.d.ts +5 -3
- package/dist/components/conversation/message-feedback/message-feedback.class.d.ts.map +1 -1
- package/dist/components/conversation/message-feedback/message-feedback.class.js.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.d.ts +16 -3
- package/dist/components/conversation/thread-list/thread-list.class.d.ts.map +1 -1
- package/dist/components/conversation/thread-list/thread-list.class.js +13 -3
- package/dist/components/conversation/thread-list/thread-list.class.js.map +1 -1
- package/dist/components/data/calendar/calendar.class.d.ts +3 -1
- package/dist/components/data/calendar/calendar.class.d.ts.map +1 -1
- package/dist/components/data/calendar/calendar.class.js.map +1 -1
- package/dist/components/data/calendar/calendar.styles.js +3 -3
- package/dist/components/data/document-library/document-library.class.d.ts +6 -5
- package/dist/components/data/document-library/document-library.class.d.ts.map +1 -1
- package/dist/components/data/document-library/document-library.class.js +2 -3
- package/dist/components/data/document-library/document-library.class.js.map +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +8 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.d.ts.map +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.js +5 -0
- package/dist/components/data/flow-canvas/flow-canvas.class.js.map +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.styles.d.ts.map +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.styles.js +2 -1
- package/dist/components/data/flow-canvas/flow-canvas.styles.js.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +6 -2
- package/dist/components/data/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/data/table/table.class.d.ts +16 -4
- package/dist/components/data/table/table.class.d.ts.map +1 -1
- package/dist/components/data/table/table.class.js.map +1 -1
- package/dist/components/data/tree/tree.class.d.ts +3 -1
- package/dist/components/data/tree/tree.class.d.ts.map +1 -1
- package/dist/components/data/tree/tree.class.js.map +1 -1
- package/dist/components/data/word-cloud/word-cloud-layout.d.ts +7 -2
- package/dist/components/data/word-cloud/word-cloud-layout.d.ts.map +1 -1
- package/dist/components/data/word-cloud/word-cloud-layout.js.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.d.ts +3 -3
- package/dist/components/data/word-cloud/word-cloud.class.d.ts.map +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.js.map +1 -1
- package/dist/components/forms/button/button.class.d.ts +5 -0
- package/dist/components/forms/button/button.class.d.ts.map +1 -1
- package/dist/components/forms/button/button.class.js +5 -0
- package/dist/components/forms/button/button.class.js.map +1 -1
- package/dist/components/forms/button/button.styles.d.ts.map +1 -1
- package/dist/components/forms/button/button.styles.js +6 -2
- package/dist/components/forms/button/button.styles.js.map +1 -1
- package/dist/components/forms/color-picker/color-picker.class.d.ts +4 -0
- package/dist/components/forms/color-picker/color-picker.class.d.ts.map +1 -1
- package/dist/components/forms/color-picker/color-picker.class.js +6 -0
- package/dist/components/forms/color-picker/color-picker.class.js.map +1 -1
- package/dist/components/forms/color-picker/color-picker.styles.d.ts.map +1 -1
- package/dist/components/forms/color-picker/color-picker.styles.js +20 -2
- package/dist/components/forms/color-picker/color-picker.styles.js.map +1 -1
- package/dist/components/forms/combobox/combobox.class.d.ts +2 -2
- package/dist/components/forms/combobox/combobox.class.d.ts.map +1 -1
- package/dist/components/forms/combobox/combobox.class.js +1 -1
- package/dist/components/forms/combobox/combobox.class.js.map +1 -1
- package/dist/components/forms/combobox/combobox.styles.d.ts.map +1 -1
- package/dist/components/forms/combobox/combobox.styles.js +8 -0
- package/dist/components/forms/combobox/combobox.styles.js.map +1 -1
- package/dist/components/forms/date-picker/date-picker.class.d.ts +4 -0
- package/dist/components/forms/date-picker/date-picker.class.d.ts.map +1 -1
- package/dist/components/forms/date-picker/date-picker.class.js +6 -0
- package/dist/components/forms/date-picker/date-picker.class.js.map +1 -1
- package/dist/components/forms/date-picker/date-picker.styles.d.ts.map +1 -1
- package/dist/components/forms/date-picker/date-picker.styles.js +15 -0
- package/dist/components/forms/date-picker/date-picker.styles.js.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +9 -2
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.js +11 -2
- package/dist/components/forms/emoji-picker/emoji-picker.class.js.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.styles.d.ts.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js +30 -7
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js.map +1 -1
- package/dist/components/forms/icon-button/icon-button.class.d.ts +20 -3
- package/dist/components/forms/icon-button/icon-button.class.d.ts.map +1 -1
- package/dist/components/forms/icon-button/icon-button.class.js +84 -4
- package/dist/components/forms/icon-button/icon-button.class.js.map +1 -1
- package/dist/components/forms/icon-button/icon-button.styles.d.ts.map +1 -1
- package/dist/components/forms/icon-button/icon-button.styles.js +4 -0
- package/dist/components/forms/icon-button/icon-button.styles.js.map +1 -1
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts +221 -0
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts.map +1 -0
- package/dist/components/forms/locale-picker/locale-picker.class.js +630 -0
- package/dist/components/forms/locale-picker/locale-picker.class.js.map +1 -0
- package/dist/components/forms/locale-picker/locale-picker.d.ts +3 -0
- package/dist/components/forms/locale-picker/locale-picker.d.ts.map +1 -0
- package/dist/components/forms/locale-picker/locale-picker.js +6 -0
- package/dist/components/forms/locale-picker/locale-picker.js.map +1 -0
- package/dist/components/forms/locale-picker/locale-picker.styles.d.ts +2 -0
- package/dist/components/forms/locale-picker/locale-picker.styles.d.ts.map +1 -0
- package/dist/components/forms/locale-picker/locale-picker.styles.js +213 -0
- package/dist/components/forms/locale-picker/locale-picker.styles.js.map +1 -0
- package/dist/components/forms/phone-input/phone-input.class.d.ts +11 -0
- package/dist/components/forms/phone-input/phone-input.class.d.ts.map +1 -1
- package/dist/components/forms/phone-input/phone-input.class.js +13 -0
- package/dist/components/forms/phone-input/phone-input.class.js.map +1 -1
- package/dist/components/forms/phone-input/phone-input.styles.d.ts.map +1 -1
- package/dist/components/forms/phone-input/phone-input.styles.js +39 -3
- package/dist/components/forms/phone-input/phone-input.styles.js.map +1 -1
- package/dist/components/forms/select/select.class.d.ts +2 -2
- package/dist/components/forms/select/select.class.d.ts.map +1 -1
- package/dist/components/forms/select/select.class.js +1 -1
- package/dist/components/forms/select/select.class.js.map +1 -1
- package/dist/components/forms/select/select.styles.d.ts.map +1 -1
- package/dist/components/forms/select/select.styles.js +6 -0
- package/dist/components/forms/select/select.styles.js.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +12 -3
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.js +14 -3
- package/dist/components/forms/swatch-picker/swatch-picker.class.js.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.styles.d.ts.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.styles.js +32 -9
- package/dist/components/forms/swatch-picker/swatch-picker.styles.js.map +1 -1
- package/dist/components/forms/time-range/time-range.class.d.ts +8 -0
- package/dist/components/forms/time-range/time-range.class.d.ts.map +1 -1
- package/dist/components/forms/time-range/time-range.class.js +10 -0
- package/dist/components/forms/time-range/time-range.class.js.map +1 -1
- package/dist/components/forms/time-range/time-range.styles.d.ts.map +1 -1
- package/dist/components/forms/time-range/time-range.styles.js +42 -13
- package/dist/components/forms/time-range/time-range.styles.js.map +1 -1
- package/dist/components/forms/token-input/token-input.class.d.ts +11 -0
- package/dist/components/forms/token-input/token-input.class.d.ts.map +1 -1
- package/dist/components/forms/token-input/token-input.class.js +13 -0
- package/dist/components/forms/token-input/token-input.class.js.map +1 -1
- package/dist/components/forms/token-input/token-input.styles.d.ts.map +1 -1
- package/dist/components/forms/token-input/token-input.styles.js +36 -2
- package/dist/components/forms/token-input/token-input.styles.js.map +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +6 -2
- package/dist/components/layout/app-rail/app-rail.class.d.ts.map +1 -1
- package/dist/components/layout/app-rail/app-rail.class.js.map +1 -1
- package/dist/components/layout/control-group/control-group.class.d.ts +16 -0
- package/dist/components/layout/control-group/control-group.class.d.ts.map +1 -1
- package/dist/components/layout/control-group/control-group.class.js +19 -0
- package/dist/components/layout/control-group/control-group.class.js.map +1 -1
- package/dist/components/layout/control-group/control-group.styles.d.ts.map +1 -1
- package/dist/components/layout/control-group/control-group.styles.js +8 -3
- package/dist/components/layout/control-group/control-group.styles.js.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts +3 -0
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js +3 -0
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.d.ts.map +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js +2 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.styles.js.map +1 -1
- package/dist/components/layout/reorder-list/reorder-item.class.d.ts +59 -0
- package/dist/components/layout/reorder-list/reorder-item.class.d.ts.map +1 -0
- package/dist/components/layout/reorder-list/reorder-item.class.js +110 -0
- package/dist/components/layout/reorder-list/reorder-item.class.js.map +1 -0
- package/dist/components/layout/reorder-list/reorder-item.d.ts +2 -0
- package/dist/components/layout/reorder-list/reorder-item.d.ts.map +1 -0
- package/dist/components/layout/reorder-list/reorder-item.js +5 -0
- package/dist/components/layout/reorder-list/reorder-item.js.map +1 -0
- package/dist/components/{data/data-grid/data-grid.styles.d.ts → layout/reorder-list/reorder-item.styles.d.ts} +1 -1
- package/dist/components/layout/reorder-list/reorder-item.styles.d.ts.map +1 -0
- package/dist/components/layout/reorder-list/reorder-item.styles.js +62 -0
- package/dist/components/layout/reorder-list/reorder-item.styles.js.map +1 -0
- package/dist/components/layout/reorder-list/reorder-list.class.d.ts +77 -0
- package/dist/components/layout/reorder-list/reorder-list.class.d.ts.map +1 -0
- package/dist/components/layout/reorder-list/reorder-list.class.js +197 -0
- package/dist/components/layout/reorder-list/reorder-list.class.js.map +1 -0
- package/dist/components/layout/reorder-list/reorder-list.d.ts +3 -0
- package/dist/components/layout/reorder-list/reorder-list.d.ts.map +1 -0
- package/dist/components/layout/reorder-list/reorder-list.js +6 -0
- package/dist/components/layout/reorder-list/reorder-list.js.map +1 -0
- package/dist/components/layout/reorder-list/reorder-list.styles.d.ts +2 -0
- package/dist/components/layout/reorder-list/reorder-list.styles.d.ts.map +1 -0
- package/dist/components/layout/reorder-list/reorder-list.styles.js +12 -0
- package/dist/components/layout/reorder-list/reorder-list.styles.js.map +1 -0
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts +7 -1
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.js +3 -0
- package/dist/components/layout/virtual-list/virtual-list.class.js.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.styles.d.ts.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.styles.js +2 -1
- package/dist/components/layout/virtual-list/virtual-list.styles.js.map +1 -1
- package/dist/components/overlays/chip/chip.class.d.ts +2 -2
- package/dist/components/overlays/chip/chip.class.d.ts.map +1 -1
- package/dist/components/overlays/chip/chip.class.js +1 -1
- package/dist/components/overlays/chip/chip.styles.d.ts.map +1 -1
- package/dist/components/overlays/chip/chip.styles.js +10 -0
- package/dist/components/overlays/chip/chip.styles.js.map +1 -1
- package/dist/components/overlays/overlay/popover.class.d.ts +3 -1
- package/dist/components/overlays/overlay/popover.class.d.ts.map +1 -1
- package/dist/components/overlays/overlay/popover.class.js.map +1 -1
- package/dist/components/retrieval/graph/graph.class.d.ts +7 -3
- package/dist/components/retrieval/graph/graph.class.d.ts.map +1 -1
- package/dist/components/retrieval/graph/graph.class.js.map +1 -1
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts +6 -3
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.d.ts.map +1 -1
- package/dist/components/retrieval/knowledge-graph-explorer/knowledge-graph-explorer.class.js.map +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts +4 -2
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-results/retrieval-results.class.js.map +1 -1
- package/dist/components/utility/diff-view/diff-view.class.d.ts +4 -1
- package/dist/components/utility/diff-view/diff-view.class.d.ts.map +1 -1
- package/dist/components/utility/diff-view/diff-view.class.js.map +1 -1
- package/dist/components/utility/format/relative-time.class.d.ts.map +1 -1
- package/dist/components/utility/format/relative-time.class.js +4 -1
- package/dist/components/utility/format/relative-time.class.js.map +1 -1
- package/dist/components/viewers/document-compare/document-compare.class.d.ts +9 -2
- package/dist/components/viewers/document-compare/document-compare.class.d.ts.map +1 -1
- package/dist/components/viewers/document-compare/document-compare.class.js.map +1 -1
- package/dist/components/viewers/geojson-view/geojson-view.class.d.ts +6 -0
- package/dist/components/viewers/geojson-view/geojson-view.class.d.ts.map +1 -1
- package/dist/components/viewers/geojson-view/geojson-view.class.js.map +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/notebook-viewer/notebook-viewer.class.js.map +1 -1
- package/dist/internal/localization.d.ts +11 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +24 -1
- package/dist/internal/localization.js.map +1 -1
- package/dist/internal/root-registration-allowlist.d.ts +1 -1
- package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
- package/dist/internal/root-registration-allowlist.js +3 -1
- 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 +1 -0
- package/dist/internal/tokens.styles.js.map +1 -1
- package/dist/lyra.d.ts +11 -5
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +7 -3
- package/dist/lyra.js.map +1 -1
- package/dist/theme.css +1 -0
- package/llms/components/lr-button.md +4 -1
- package/llms/components/lr-chip-group.md +1 -1
- package/llms/components/lr-chip.md +1 -1
- package/llms/components/lr-color-picker.md +7 -1
- package/llms/components/lr-combobox.md +1 -1
- package/llms/components/lr-confirm-bar.md +31 -4
- package/llms/components/lr-control-group.md +12 -4
- package/llms/components/lr-dashboard-grid.md +4 -1
- package/llms/components/lr-date-input.md +5 -1
- package/llms/components/lr-date-picker.md +5 -1
- package/llms/components/lr-emoji-picker.md +11 -6
- package/llms/components/lr-eval-dataset.md +1 -1
- package/llms/components/lr-eval-result.md +4 -4
- package/llms/components/lr-flag.md +9 -5
- package/llms/components/lr-flow-canvas.md +7 -1
- package/llms/components/lr-icon-button.md +10 -5
- package/llms/components/lr-locale-picker.md +86 -0
- package/llms/components/lr-option.md +1 -1
- package/llms/components/lr-phone-input.md +10 -3
- package/llms/components/lr-reorder-item.md +81 -0
- package/llms/components/lr-reorder-list.md +81 -0
- package/llms/components/lr-select.md +2 -2
- package/llms/components/lr-swatch-picker.md +15 -9
- package/llms/components/lr-thread-list.md +11 -6
- package/llms/components/lr-time-range.md +8 -0
- package/llms/components/lr-token-input.md +14 -6
- package/llms/components/lr-tool-approval-dialog.md +30 -6
- package/llms/components/lr-virtual-list.md +5 -1
- package/llms/index.md +7 -5
- package/llms/shared.md +13 -4
- package/llms/tokens.md +4 -2
- package/llms-full.txt +362 -120
- package/llms.txt +4 -4
- package/package.json +8 -3
- package/vscode-css-data.json +183 -8
- package/vscode-html-data.json +521 -366
- package/web-types.json +810 -96
- package/dist/components/data/data-grid/data-grid.class.d.ts +0 -69
- package/dist/components/data/data-grid/data-grid.class.d.ts.map +0 -1
- package/dist/components/data/data-grid/data-grid.class.js +0 -123
- package/dist/components/data/data-grid/data-grid.class.js.map +0 -1
- package/dist/components/data/data-grid/data-grid.d.ts +0 -2
- package/dist/components/data/data-grid/data-grid.d.ts.map +0 -1
- package/dist/components/data/data-grid/data-grid.js +0 -5
- package/dist/components/data/data-grid/data-grid.js.map +0 -1
- package/dist/components/data/data-grid/data-grid.styles.d.ts.map +0 -1
- package/dist/components/data/data-grid/data-grid.styles.js +0 -15
- package/dist/components/data/data-grid/data-grid.styles.js.map +0 -1
- package/llms/components/lr-data-grid.md +0 -55
package/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@aceshooting/lyra-ui",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "6.0.0",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
@@ -701,7 +701,7 @@
|
|
|
701
701
|
},
|
|
702
702
|
{
|
|
703
703
|
"name": "preferred-mode",
|
|
704
|
-
"description": "Manually prefers `'full'` or `'icon-only'` for the non-mobile breakpoint axis, while the\n`mobile-breakpoint` continues to be tracked automatically regardless — e.g. a user's manual\ncollapse toggle that should still yield to a genuinely too-narrow-for-any-inline-rail\nviewport. Only consulted while `mode` isn't force-pinned via its own accessor (see the class\ndoc) — that continues to take full priority, unchanged. Unset (the default, `null`)\nreproduces today's exact breakpoint-only behavior.\n\nType: `
|
|
704
|
+
"description": "Manually prefers `'full'` or `'icon-only'` for the non-mobile breakpoint axis, while the\n`mobile-breakpoint` continues to be tracked automatically regardless — e.g. a user's manual\ncollapse toggle that should still yield to a genuinely too-narrow-for-any-inline-rail\nviewport. Only consulted while `mode` isn't force-pinned via its own accessor (see the class\ndoc) — that continues to take full priority, unchanged. Unset (the default, `null`)\nreproduces today's exact breakpoint-only behavior.\n\nType: `AppRailPreferredMode | null | undefined`"
|
|
705
705
|
},
|
|
706
706
|
{
|
|
707
707
|
"name": "rail-width-px",
|
|
@@ -884,7 +884,12 @@
|
|
|
884
884
|
},
|
|
885
885
|
{
|
|
886
886
|
"name": "view",
|
|
887
|
-
"description": "Which slot is currently visible.\n\nType: `
|
|
887
|
+
"description": "Which slot is currently visible.\n\nType: `ArtifactPanelView` \nDefault: `'preview'`",
|
|
888
|
+
"value": {
|
|
889
|
+
"type": [
|
|
890
|
+
"ArtifactPanelView"
|
|
891
|
+
]
|
|
892
|
+
}
|
|
888
893
|
}
|
|
889
894
|
]
|
|
890
895
|
},
|
|
@@ -1732,7 +1737,12 @@
|
|
|
1732
1737
|
"attributes": [
|
|
1733
1738
|
{
|
|
1734
1739
|
"name": "controller",
|
|
1735
|
-
"description": "Type: `
|
|
1740
|
+
"description": "Type: `BrowserFrameController` \nDefault: `'agent'`",
|
|
1741
|
+
"value": {
|
|
1742
|
+
"type": [
|
|
1743
|
+
"BrowserFrameController"
|
|
1744
|
+
]
|
|
1745
|
+
}
|
|
1736
1746
|
},
|
|
1737
1747
|
{
|
|
1738
1748
|
"name": "controls",
|
|
@@ -1763,7 +1773,12 @@
|
|
|
1763
1773
|
},
|
|
1764
1774
|
{
|
|
1765
1775
|
"name": "status",
|
|
1766
|
-
"description": "Type: `
|
|
1776
|
+
"description": "Type: `BrowserFrameStatus` \nDefault: `'idle'`",
|
|
1777
|
+
"value": {
|
|
1778
|
+
"type": [
|
|
1779
|
+
"BrowserFrameStatus"
|
|
1780
|
+
]
|
|
1781
|
+
}
|
|
1767
1782
|
},
|
|
1768
1783
|
{
|
|
1769
1784
|
"name": "url",
|
|
@@ -1928,7 +1943,7 @@
|
|
|
1928
1943
|
},
|
|
1929
1944
|
{
|
|
1930
1945
|
"name": "lr-button",
|
|
1931
|
-
"description": "`<lr-button>` — a generic action-button primitive. Renders an internal native\n`<button part=\"base\">`. `type=\"submit\"`/`type=\"reset\"`\nare handled by this component itself via the host's own `closest('form')` — a shadow-internal\nnative `<button type=\"submit\">` does not participate in an ancestor light-DOM form's submission\non its own, since form-submitter semantics don't cross the shadow boundary.\n\nA host `aria-label` is forwarded to the internal button as a literal string (for an icon-only\nbutton with no visible label); external `aria-labelledby`/`aria-describedby` idrefs are not\ncopied across the shadow boundary.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Default slot: the button's label content. |\n| `end` | Trailing icon/content, rendered after the label. |\n| `start` | Leading icon/content, rendered before the label. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The internal native `<button>`. |\n| `end` | The `end` slot wrapper. |\n| `label` | The default-slot label wrapper. |\n| `spinner` | The loading spinner, present only while `loading` is `true`. |\n| `start` | The `start` slot wrapper. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-button-width` (default: `100%`) — Inline size of the internal button. The host defaults it to `100%` so the native button follows the host's own width; override to `auto` (or any other value) for a compact inline composition.\n- `--lr-button-hover-brightness` (default: `1.08`) — `filter: brightness()` multiplier applied while hovering a non-disabled button.\n- `--lr-button-active-scale` (default: `0.9875`) — `transform: scale()` factor applied while a non-disabled button is pressed.\n- `--lr-button-spinner-duration` (default: `1s`) — Rotation period of the `loading` spinner.\n- `--lr-button-accent` (default: `var(--lr-color-text)`) — Text/glyph color for the chrome-less appearances (`outlined`, `plain`, `link`). Swapped per `variant` to that variant's semantic color.\n- `--lr-button-fill` (default: `var(--lr-color-surface)`) — Background of `appearance=\"filled\"`. Swapped per `variant` to that variant's semantic color.\n- `--lr-button-on-fill` (default: `var(--lr-color-text)`) — Text color on top of `--lr-button-fill`. Swapped per `variant` to that variant's `on-*` color.\n- `--lr-button-accent-fill` (default: `var(--lr-color-neutral)`) — Background of `appearance=\"accent\"` (and its border color). Swapped per `variant` to that variant's semantic color.\n- `--lr-button-accent-on-fill` (default: `var(--lr-color-on-neutral)`) — Text color on top of `--lr-button-accent-fill`. Swapped per `variant` to that variant's `on-*` color.\n- `--lr-button-border` (default: `var(--lr-color-border)`) — Border color of the internal button. Swapped per `variant` to that variant's semantic color.\n- `--lr-button-outlined-border` (default: `var(--lr-color-border-strong)`) — Border color of `appearance=\"outlined\"`, which overrides `--lr-button-border`.\n- `--lr-button-outlined-fill` (default: `transparent`) — Background of `appearance=\"outlined\"`. Transparent by default; set it to tint the button (e.g. a faint surface wash behind the outline) without a `::part(base)` rule. Like `--lr-button-quiet-*`, it is deliberately *not* swapped per `variant`. Note that the `:hover` `filter: brightness()` applies to whatever fill is set, so a tinted outlined button now visibly brightens on hover where a transparent one did not.\n- `--lr-button-quiet-border` (default: `var(--lr-color-border)`) — Border color of `appearance=\"quiet\"`.\n- `--lr-button-quiet-text` (default: `var(--lr-color-text-quiet)`) — Text color of `appearance=\"quiet\"`.\n- `--lr-button-size-2xs` (default: `var(--lr-size-1-25rem)`) — `min-block-size` at `size=\"2xs\"`.\n- `--lr-button-size-xs` (default: `var(--lr-size-1-5rem)`) — `min-block-size` at `size=\"xs\"`.\n- `--lr-button-size-s` (default: `var(--lr-size-1-875rem)`) — `min-block-size` at `size=\"s\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own `size=\"s\"` control height.\n- `--lr-button-size-m` (default: `var(--lr-size-2-5rem)`) — `min-block-size` at `size=\"m\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own default control height, so a default-size button sitting next to a default-size input/select/combobox in the same row lines up.\n- `--lr-button-size-l` (default: `var(--lr-size-3rem)`) — `min-block-size` at `size=\"l\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own `size=\"l\"` control height.\n- `--lr-button-size-xl` (default: `var(--lr-size-3-5rem)`) — `min-block-size` at `size=\"xl\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own `size=\"xl\"` control height.\n- `--lr-button-padding-block` (default: `var(--lr-space-xs)`) — Block padding of the internal button, re-assigned per `size` tier (the default is the `m` tier's value). Override it to retune a tier without a `::part(base)` rule; `appearance=\"link\"` ignores it (it renders with zero padding).\n- `--lr-button-padding-inline` (default: `var(--lr-space-m)`) — Inline padding of the internal button, re-assigned per `size` tier (the default is the `m` tier's value). `appearance=\"link\"` ignores it.\n- `--lr-button-font-size` (default: `var(--lr-font-size-m)`) — Font size of the internal button, re-assigned per `size` tier (the default is the `m` tier's value). `appearance=\"link\"` ignores it and inherits the ambient font instead.\n- `--lr-button-min-height` (default: `var(--lr-button-size-m)`) — The active tier's `min-block-size` floor. Re-assigned per `size` tier to that tier's own `--lr-button-size-*` token, and used as the fallback when `--lr-button-height` is unset.\n- `--lr-button-height` — Exact height of the internal button. **Undeclared by default** — so the button keeps the active tier's `min-block-size` floor and an `auto` height, exactly as before. Set it (e.g. to pin the button to a fixed toolbar row) to both floor *and* cap the height. Never declare it as `auto`: a declared value wins over the `var()` fallback arm and would make every tier's floor dead code. `appearance=\"link\"` ignores it.",
|
|
1946
|
+
"description": "`<lr-button>` — a generic action-button primitive. Renders an internal native\n`<button part=\"base\">`. `type=\"submit\"`/`type=\"reset\"`\nare handled by this component itself via the host's own `closest('form')` — a shadow-internal\nnative `<button type=\"submit\">` does not participate in an ancestor light-DOM form's submission\non its own, since form-submitter semantics don't cross the shadow boundary.\n\nA host `aria-label` is forwarded to the internal button as a literal string (for an icon-only\nbutton with no visible label); external `aria-labelledby`/`aria-describedby` idrefs are not\ncopied across the shadow boundary.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Default slot: the button's label content. |\n| `end` | Trailing icon/content, rendered after the label. |\n| `start` | Leading icon/content, rendered before the label. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The internal native `<button>`. |\n| `end` | The `end` slot wrapper. |\n| `label` | The default-slot label wrapper. |\n| `spinner` | The loading spinner, present only while `loading` is `true`. |\n| `start` | The `start` slot wrapper. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-button-width` (default: `100%`) — Inline size of the internal button. The host defaults it to `100%` so the native button follows the host's own width; override to `auto` (or any other value) for a compact inline composition.\n- `--lr-button-hover-brightness` (default: `1.08`) — `filter: brightness()` multiplier applied while hovering a non-disabled button.\n- `--lr-button-active-scale` (default: `0.9875`) — `transform: scale()` factor applied while a non-disabled button is pressed.\n- `--lr-button-spinner-duration` (default: `1s`) — Rotation period of the `loading` spinner.\n- `--lr-button-accent` (default: `var(--lr-color-text)`) — Text/glyph color for the chrome-less appearances (`outlined`, `plain`, `link`). Swapped per `variant` to that variant's semantic color.\n- `--lr-button-fill` (default: `var(--lr-color-surface)`) — Background of `appearance=\"filled\"`. Swapped per `variant` to that variant's semantic color.\n- `--lr-button-on-fill` (default: `var(--lr-color-text)`) — Text color on top of `--lr-button-fill`. Swapped per `variant` to that variant's `on-*` color.\n- `--lr-button-accent-fill` (default: `var(--lr-color-neutral)`) — Background of `appearance=\"accent\"` (and its border color). Swapped per `variant` to that variant's semantic color.\n- `--lr-button-accent-on-fill` (default: `var(--lr-color-on-neutral)`) — Text color on top of `--lr-button-accent-fill`. Swapped per `variant` to that variant's `on-*` color.\n- `--lr-button-border` (default: `var(--lr-color-border)`) — Border color of the internal button. Swapped per `variant` to that variant's semantic color.\n- `--lr-button-outlined-border` (default: `var(--lr-color-border-strong)`) — Border color of `appearance=\"outlined\"`, which overrides `--lr-button-border`.\n- `--lr-button-outlined-fill` (default: `transparent`) — Background of `appearance=\"outlined\"`. Transparent by default; set it to tint the button (e.g. a faint surface wash behind the outline) without a `::part(base)` rule. Like `--lr-button-quiet-*`, it is deliberately *not* swapped per `variant`. Note that the `:hover` `filter: brightness()` applies to whatever fill is set, so a tinted outlined button now visibly brightens on hover where a transparent one did not.\n- `--lr-button-quiet-border` (default: `var(--lr-color-border)`) — Border color of `appearance=\"quiet\"`.\n- `--lr-button-quiet-text` (default: `var(--lr-color-text-quiet)`) — Text color of `appearance=\"quiet\"`.\n- `--lr-button-size-2xs` (default: `var(--lr-size-1-25rem)`) — `min-block-size` at `size=\"2xs\"`.\n- `--lr-button-size-xs` (default: `var(--lr-size-1-5rem)`) — `min-block-size` at `size=\"xs\"`.\n- `--lr-button-size-s` (default: `var(--lr-size-1-875rem)`) — `min-block-size` at `size=\"s\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own `size=\"s\"` control height.\n- `--lr-button-size-m` (default: `var(--lr-size-2-5rem)`) — `min-block-size` at `size=\"m\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own default control height, so a default-size button sitting next to a default-size input/select/combobox in the same row lines up.\n- `--lr-button-size-l` (default: `var(--lr-size-3rem)`) — `min-block-size` at `size=\"l\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own `size=\"l\"` control height.\n- `--lr-button-size-xl` (default: `var(--lr-size-3-5rem)`) — `min-block-size` at `size=\"xl\"`. Matches `lr-input`/`lr-select`/`lr-combobox`'s own `size=\"xl\"` control height.\n- `--lr-button-padding-block` (default: `var(--lr-space-xs)`) — Block padding of the internal button, re-assigned per `size` tier (the default is the `m` tier's value). Override it to retune a tier without a `::part(base)` rule; `appearance=\"link\"` ignores it (it renders with zero padding).\n- `--lr-button-padding-inline` (default: `var(--lr-space-m)`) — Inline padding of the internal button, re-assigned per `size` tier (the default is the `m` tier's value). `appearance=\"link\"` ignores it.\n- `--lr-button-font-size` (default: `var(--lr-font-size-m)`) — Font size of the internal button, re-assigned per `size` tier (the default is the `m` tier's value). `appearance=\"link\"` ignores it and inherits the ambient font instead.\n- `--lr-button-min-height` (default: `var(--lr-button-size-m)`) — The active tier's `min-block-size` floor. Re-assigned per `size` tier to that tier's own `--lr-button-size-*` token, and used as the fallback when `--lr-button-height` is unset.\n- `--lr-button-height` — Exact height of the internal button. **Undeclared by default** — so the button keeps the active tier's `min-block-size` floor and an `auto` height, exactly as before. Set it (e.g. to pin the button to a fixed toolbar row) to both floor *and* cap the height. Never declare it as `auto`: a declared value wins over the `var()` fallback arm and would make every tier's floor dead code. `appearance=\"link\"` ignores it.\n- `--lr-button-gap` (default: `var(--lr-space-2xs)`) — Gap between the icon/label and any slotted content in the internal button. Unlike the size knobs above it does not vary by `size` tier. Override it to retune without a `::part(base)` rule.\n- `--lr-button-radius` (default: `var(--lr-radius)`) — Corner radius of the internal button. Does not vary by `size` tier. `appearance=\"link\"` ignores it (it renders with zero radius).",
|
|
1932
1947
|
"attributes": [
|
|
1933
1948
|
{
|
|
1934
1949
|
"name": "appearance",
|
|
@@ -2070,7 +2085,12 @@
|
|
|
2070
2085
|
},
|
|
2071
2086
|
{
|
|
2072
2087
|
"name": "view",
|
|
2073
|
-
"description": "Type: `
|
|
2088
|
+
"description": "Type: `CalendarView` \nDefault: `'month'`",
|
|
2089
|
+
"value": {
|
|
2090
|
+
"type": [
|
|
2091
|
+
"CalendarView"
|
|
2092
|
+
]
|
|
2093
|
+
}
|
|
2074
2094
|
},
|
|
2075
2095
|
{
|
|
2076
2096
|
"name": "view-date"
|
|
@@ -2507,6 +2527,15 @@
|
|
|
2507
2527
|
]
|
|
2508
2528
|
}
|
|
2509
2529
|
},
|
|
2530
|
+
{
|
|
2531
|
+
"name": "disabled",
|
|
2532
|
+
"description": "Type: `boolean`",
|
|
2533
|
+
"value": {
|
|
2534
|
+
"type": [
|
|
2535
|
+
"boolean"
|
|
2536
|
+
]
|
|
2537
|
+
}
|
|
2538
|
+
},
|
|
2510
2539
|
{
|
|
2511
2540
|
"name": "enterkeyhint",
|
|
2512
2541
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -2552,6 +2581,15 @@
|
|
|
2552
2581
|
]
|
|
2553
2582
|
}
|
|
2554
2583
|
},
|
|
2584
|
+
{
|
|
2585
|
+
"name": "name",
|
|
2586
|
+
"description": "Type: `string`",
|
|
2587
|
+
"value": {
|
|
2588
|
+
"type": [
|
|
2589
|
+
"string"
|
|
2590
|
+
]
|
|
2591
|
+
}
|
|
2592
|
+
},
|
|
2555
2593
|
{
|
|
2556
2594
|
"name": "placeholder",
|
|
2557
2595
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -2561,6 +2599,15 @@
|
|
|
2561
2599
|
]
|
|
2562
2600
|
}
|
|
2563
2601
|
},
|
|
2602
|
+
{
|
|
2603
|
+
"name": "required",
|
|
2604
|
+
"description": "Type: `boolean`",
|
|
2605
|
+
"value": {
|
|
2606
|
+
"type": [
|
|
2607
|
+
"boolean"
|
|
2608
|
+
]
|
|
2609
|
+
}
|
|
2610
|
+
},
|
|
2564
2611
|
{
|
|
2565
2612
|
"name": "spellcheck",
|
|
2566
2613
|
"description": "Forwarded to the internal `<textarea>`'s own `spellcheck`. Defaults to `true`, matching the\nnative element's own default. Uses trueDefaultBooleanConverter rather than Lit's\ndefault presence-based `type: Boolean` handling, so a plain-HTML consumer with no way to write\na `.spellcheck` property binding can still turn this off with `spellcheck=\"false\"`; a Lit\ntemplate can do the same with either that attribute string or a `.spellcheck=${false}`\nproperty binding.\n\nType: `boolean` \nDefault: `true`",
|
|
@@ -2958,7 +3005,7 @@
|
|
|
2958
3005
|
},
|
|
2959
3006
|
{
|
|
2960
3007
|
"name": "lr-chip",
|
|
2961
|
-
"description": "`<lr-chip>` — a small, content-agnostic pill for a short label: a tag, an\nactive-filter/scope indicator, etc. Distinct from `<lr-attachment-chip>`\n(specifically file-shaped, with a thumbnail/size/upload-progress) — this\none carries no domain assumptions at all, just a label and an optional\nleading icon/dot.\n\n`tone` tints the whole pill using the same loud-color-on-quiet-tint\nconvention `<lr-tool-call-chip>`/`<lr-citation-badge>` already\nestablish for status coloring: background is the tone's `-quiet` tint,\ntext/icon is the tone's loud color. `neutral` (the default) has no\ndedicated token pair of its own, so it falls back to a plain\nbordered-surface look — the same \"no signal\" treatment\n`<lr-citation-badge>`'s `default` status and `<lr-tool-call-chip>`'s\n`pending` status already use.\n\nThis is a controlled component: clicking the remove (×) button only fires\n`lr-remove` — the chip never removes itself from the DOM on its own\ninteraction, the same contract `<lr-attachment-chip>`/\n`<lr-conversation-item>` already follow. A consumer owns the underlying\nlist and decides whether/how the click actually removes anything.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | The chip's label content. |\n| `icon` | Optional leading icon or status dot. Nothing is reserved for it (no extra gap) when left empty. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The pill's root container. |\n| `icon` | Wrapper around the `icon` slot. Hidden entirely while empty. |\n| `label` | Wrapper around the default slot. |\n| `remove-button` | The remove (×) affordance, only rendered while `removable`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-chip-accent` (default: `var(--lr-color-text)`) — Text/icon color of the pill. Each `tone` sets it to that tone's loud color.\n- `--lr-chip-bg` (default: `var(--lr-color-surface)`) — Background of the pill. Each `tone` sets it to that tone's `-quiet` tint.\n- `--lr-chip-border` (default: `var(--lr-color-border)`) — Border color of the pill. Every non-neutral `tone` sets it to `transparent`.\n- `--lr-chip-font-size` (default: `var(--lr-font-size-sm)`) — Label font size. Each `size` sets it to that step's font size.\n- `--lr-chip-gap` (default: `var(--lr-space-xs)`) — Gap between the icon, label, and remove button. Each `size` sets it to that step's gap.\n- `--lr-chip-icon-size` (default: `var(--lr-font-size-sm)`) — Font size of the `icon` slot wrapper. Each `size` sets it to that step's icon size.\n- `--lr-chip-padding-block` (default: `var(--lr-size-0-25rem)`) — Block padding of the pill. Each `size` sets it to that step's block padding.\n- `--lr-chip-padding-inline` (default: `var(--lr-space-s)`) — Inline padding of the pill. Each `size` sets it to that step's inline padding.\n- `--lr-chip-min-height` (default: `var(--lr-size-1-5rem)`) — Minimum block size of an interactive (`removable`/`toggleable`) chip's tap target. `size` keeps `2xs`/`xs`/`s`/`m` at the `1.5rem` (24px) WCAG 2.2 SC 2.5.8 minimum and raises `l` to `var(--lr-size-1-75rem)` and `xl` to `var(--lr-size-2rem)`. Non-interactive display chips are unaffected by this floor.\n- `--lr-chip-height` — Exact block size of the chip. Undeclared by default, so the chip grows to fit its content (floored by `--lr-chip-min-height` when interactive). Set it to pin a fixed height. A value below the 24px interactive target is for non-interactive chips only.\n- `--lr-chip-pressed-bg` (default: `var(--lr-chip-bg)`) — Background while a toggleable chip is selected, independently themeable from its resting background.\n- `--lr-chip-pressed-border` (default: `var(--lr-chip-accent)`) — Border color while a toggleable chip is selected, independently themeable from the label/icon color.",
|
|
3008
|
+
"description": "`<lr-chip>` — a small, content-agnostic pill for a short label: a tag, an\nactive-filter/scope indicator, etc. Distinct from `<lr-attachment-chip>`\n(specifically file-shaped, with a thumbnail/size/upload-progress) — this\none carries no domain assumptions at all, just a label and an optional\nleading icon/dot.\n\n`tone` tints the whole pill using the same loud-color-on-quiet-tint\nconvention `<lr-tool-call-chip>`/`<lr-citation-badge>` already\nestablish for status coloring: background is the tone's `-quiet` tint,\ntext/icon is the tone's loud color. `neutral` (the default) has no\ndedicated token pair of its own, so it falls back to a plain\nbordered-surface look — the same \"no signal\" treatment\n`<lr-citation-badge>`'s `default` status and `<lr-tool-call-chip>`'s\n`pending` status already use.\n\nThis is a controlled component: clicking the remove (×) button only fires\n`lr-remove` — the chip never removes itself from the DOM on its own\ninteraction, the same contract `<lr-attachment-chip>`/\n`<lr-conversation-item>` already follow. A consumer owns the underlying\nlist and decides whether/how the click actually removes anything.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | The chip's label content. |\n| `icon` | Optional leading icon or status dot. Nothing is reserved for it (no extra gap) when left empty. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The pill's root container. |\n| `icon` | Wrapper around the `icon` slot. Hidden entirely while empty. |\n| `label` | Wrapper around the default slot. |\n| `remove-button` | The remove (×) affordance, only rendered while `removable`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-chip-accent` (default: `var(--lr-color-text)`) — Text/icon color of the pill. Each `tone` sets it to that tone's loud color.\n- `--lr-chip-bg` (default: `var(--lr-color-surface)`) — Background of the pill. Each `tone` sets it to that tone's `-quiet` tint.\n- `--lr-chip-border` (default: `var(--lr-color-border)`) — Border color of the pill. Every non-neutral `tone` sets it to `transparent`.\n- `--lr-chip-font-size` (default: `var(--lr-font-size-sm)`) — Label font size. Each `size` sets it to that step's font size.\n- `--lr-chip-gap` (default: `var(--lr-space-xs)`) — Gap between the icon, label, and remove button. Each `size` sets it to that step's gap.\n- `--lr-chip-icon-size` (default: `var(--lr-font-size-sm)`) — Font size of the `icon` slot wrapper. Each `size` sets it to that step's icon size.\n- `--lr-chip-padding-block` (default: `var(--lr-size-0-25rem)`) — Block padding of the pill. Each `size` sets it to that step's block padding.\n- `--lr-chip-padding-inline` (default: `var(--lr-space-s)`) — Inline padding of the pill. Each `size` sets it to that step's inline padding.\n- `--lr-chip-min-height` (default: `var(--lr-size-1-5rem)`) — Minimum block size of an interactive (`removable`/`toggleable`) chip's tap target. `size` keeps `3xs`/`2xs`/`xs`/`s`/`m` at the `1.5rem` (24px) WCAG 2.2 SC 2.5.8 minimum and raises `l` to `var(--lr-size-1-75rem)` and `xl` to `var(--lr-size-2rem)`. Non-interactive display chips are unaffected by this floor.\n- `--lr-chip-height` — Exact block size of the chip. Undeclared by default, so the chip grows to fit its content (floored by `--lr-chip-min-height` when interactive). Set it to pin a fixed height. A value below the 24px interactive target is for non-interactive chips only.\n- `--lr-chip-pressed-bg` (default: `var(--lr-chip-bg)`) — Background while a toggleable chip is selected, independently themeable from its resting background.\n- `--lr-chip-pressed-border` (default: `var(--lr-chip-accent)`) — Border color while a toggleable chip is selected, independently themeable from the label/icon color.",
|
|
2962
3009
|
"attributes": [
|
|
2963
3010
|
{
|
|
2964
3011
|
"name": "locale",
|
|
@@ -3430,6 +3477,15 @@
|
|
|
3430
3477
|
]
|
|
3431
3478
|
}
|
|
3432
3479
|
},
|
|
3480
|
+
{
|
|
3481
|
+
"name": "disabled",
|
|
3482
|
+
"description": "Type: `boolean`",
|
|
3483
|
+
"value": {
|
|
3484
|
+
"type": [
|
|
3485
|
+
"boolean"
|
|
3486
|
+
]
|
|
3487
|
+
}
|
|
3488
|
+
},
|
|
3433
3489
|
{
|
|
3434
3490
|
"name": "error-text",
|
|
3435
3491
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -3484,6 +3540,15 @@
|
|
|
3484
3540
|
]
|
|
3485
3541
|
}
|
|
3486
3542
|
},
|
|
3543
|
+
{
|
|
3544
|
+
"name": "name",
|
|
3545
|
+
"description": "Type: `string`",
|
|
3546
|
+
"value": {
|
|
3547
|
+
"type": [
|
|
3548
|
+
"string"
|
|
3549
|
+
]
|
|
3550
|
+
}
|
|
3551
|
+
},
|
|
3487
3552
|
{
|
|
3488
3553
|
"name": "placeholder",
|
|
3489
3554
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -3502,6 +3567,15 @@
|
|
|
3502
3567
|
]
|
|
3503
3568
|
}
|
|
3504
3569
|
},
|
|
3570
|
+
{
|
|
3571
|
+
"name": "required",
|
|
3572
|
+
"description": "Type: `boolean`",
|
|
3573
|
+
"value": {
|
|
3574
|
+
"type": [
|
|
3575
|
+
"boolean"
|
|
3576
|
+
]
|
|
3577
|
+
}
|
|
3578
|
+
},
|
|
3505
3579
|
{
|
|
3506
3580
|
"name": "resize",
|
|
3507
3581
|
"description": "Type: `'none' | 'both' | 'horizontal' | 'vertical'` \nDefault: `'both'`"
|
|
@@ -3532,7 +3606,7 @@
|
|
|
3532
3606
|
},
|
|
3533
3607
|
{
|
|
3534
3608
|
"name": "lr-color-picker",
|
|
3535
|
-
"description": "`<lr-color-picker>` — a form-associated native color picker with label, hint and error chrome.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom validation-error content. |\n| `hint` | Supporting text. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | The validation message. |\n| `form-control` | The field wrapper. |\n| `form-control-label` | The label. Also carries the `label` part token for back-compat. |\n| `hint` | Supporting text. |\n| `input` | The native color input. |\n| `label` | Alias of `form-control-label`, kept for back-compat.
|
|
3609
|
+
"description": "`<lr-color-picker>` — a form-associated native color picker with label, hint and error chrome.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom validation-error content. |\n| `hint` | Supporting text. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | The validation message. |\n| `form-control` | The field wrapper. |\n| `form-control-label` | The label. Also carries the `label` part token for back-compat. |\n| `hint` | Supporting text. |\n| `input` | The native color input. |\n| `label` | Alias of `form-control-label`, kept for back-compat. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-color-picker-swatch-size` — The swatch's inline and block size, scaled by `size`.",
|
|
3536
3610
|
"attributes": [
|
|
3537
3611
|
{
|
|
3538
3612
|
"name": "aria-label",
|
|
@@ -3543,6 +3617,15 @@
|
|
|
3543
3617
|
]
|
|
3544
3618
|
}
|
|
3545
3619
|
},
|
|
3620
|
+
{
|
|
3621
|
+
"name": "disabled",
|
|
3622
|
+
"description": "Type: `boolean`",
|
|
3623
|
+
"value": {
|
|
3624
|
+
"type": [
|
|
3625
|
+
"boolean"
|
|
3626
|
+
]
|
|
3627
|
+
}
|
|
3628
|
+
},
|
|
3546
3629
|
{
|
|
3547
3630
|
"name": "error-text",
|
|
3548
3631
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -3578,6 +3661,33 @@
|
|
|
3578
3661
|
"string"
|
|
3579
3662
|
]
|
|
3580
3663
|
}
|
|
3664
|
+
},
|
|
3665
|
+
{
|
|
3666
|
+
"name": "name",
|
|
3667
|
+
"description": "Type: `string`",
|
|
3668
|
+
"value": {
|
|
3669
|
+
"type": [
|
|
3670
|
+
"string"
|
|
3671
|
+
]
|
|
3672
|
+
}
|
|
3673
|
+
},
|
|
3674
|
+
{
|
|
3675
|
+
"name": "required",
|
|
3676
|
+
"description": "Type: `boolean`",
|
|
3677
|
+
"value": {
|
|
3678
|
+
"type": [
|
|
3679
|
+
"boolean"
|
|
3680
|
+
]
|
|
3681
|
+
}
|
|
3682
|
+
},
|
|
3683
|
+
{
|
|
3684
|
+
"name": "size",
|
|
3685
|
+
"description": "Visual size — same `2xs`–`xl` scale as `lr-input`/`lr-select`'s own `size`.\n\nType: `LyraColorPickerSize` \nDefault: `'m'`",
|
|
3686
|
+
"value": {
|
|
3687
|
+
"type": [
|
|
3688
|
+
"LyraColorPickerSize"
|
|
3689
|
+
]
|
|
3690
|
+
}
|
|
3581
3691
|
}
|
|
3582
3692
|
]
|
|
3583
3693
|
},
|
|
@@ -3776,7 +3886,7 @@
|
|
|
3776
3886
|
},
|
|
3777
3887
|
{
|
|
3778
3888
|
"name": "size",
|
|
3779
|
-
"description": "Visual size — same `
|
|
3889
|
+
"description": "Visual size — same `2xs`–`xl` scale as `lr-select`'s `size`.\n\nType: `LyraComboboxSize` \nDefault: `'m'`",
|
|
3780
3890
|
"value": {
|
|
3781
3891
|
"type": [
|
|
3782
3892
|
"LyraComboboxSize"
|
|
@@ -4053,7 +4163,7 @@
|
|
|
4053
4163
|
},
|
|
4054
4164
|
{
|
|
4055
4165
|
"name": "lr-confirm-bar",
|
|
4056
|
-
"description": "`<lr-confirm-bar>` — an inline, non-modal approve/deny block for one proposed action: the\nin-flow sibling of `<lr-tool-approval-dialog>` for confirmations that should sit in the\ntranscript instead of hijacking focus. Same `lr-approve`/`lr-deny` event shapes as the dialog,\nand the same `toolApprovalHeading`/`toolApprovalArgsLabel`/`deny`/`approve` localization keys, so\nthe two always translate in lockstep.\n\nNon-modal by contract: no focus trap, no scroll lock, no Escape/backdrop semantics, and it never\nsteals focus when it appears in the transcript. DOM and tab order put Deny before Approve (the\ndialog's safe-action-first rationale). On activation, focus moves synchronously to `[part=\"status\"]`\n(an always-rendered, `tabindex=\"-1\"` element) *before* the Deny/Approve buttons unmount, so focus\nnever has a gap where it would otherwise fall back to `<body>`.\n\nNo argument editing (escalate to `<lr-tool-approval-dialog>`'s `editable` when edit-before-approve\nmatters); no blocking/modality guarantee (a user can scroll past); no decision persistence or\n\"remember choice\" logic (the `footer` slot + host own that).\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Supplementary body content between the heading and the actions (e.g. a `lr-diff-view` of the proposed change). |\n| `footer` | Extra content at the start of the action row (e.g. a \"remember this choice\" checkbox), mirroring `lr-tool-approval-dialog`'s own `footer` slot. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `approve-button` | Named identically to the dialog's part. |\n| `args` | The `lr-details` + `lr-json-viewer` wrapper. Only rendered when `args` is defined. |\n| `base` | The root (`role=\"group\"`). |\n| `body` | The default-slot wrapper. |\n| `deny-button` | Named identically to the dialog's part. |\n| `footer` | The action row. |\n| `heading` | The heading. |\n| `status` | The decided-state text. Always present in the DOM (`tabindex=\"-1\"`) so focus has a stable, synchronous landing spot on activation. |\n| `tool-name` | The tool-name span within the heading. Only rendered when `heading` is unset. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-confirm-bar-compact-padding` (default: `0`) — Padding of `[part='base']` while `compact`. Accepts any padding shorthand.\n- `--lr-confirm-bar-compact-gap` (default: `var(--lr-space-s)`) — Gap between the row's items while `compact`.\n- `--lr-confirm-bar-compact-border` (default: `none`) — Border of `[part='base']` while `compact`. Accepts any `border` shorthand.\n- `--lr-confirm-bar-compact-radius` (default: `0`) — Border radius of `[part='base']` while `compact` (only visible once `--lr-confirm-bar-compact-border`/`-background` are set).\n- `--lr-confirm-bar-compact-background` (default: `transparent`) — Background of `[part='base']` while `compact`.",
|
|
4166
|
+
"description": "`<lr-confirm-bar>` — an inline, non-modal approve/deny block for one proposed action: the\nin-flow sibling of `<lr-tool-approval-dialog>` for confirmations that should sit in the\ntranscript instead of hijacking focus. Same `lr-approve`/`lr-deny` event shapes as the dialog,\nand the same `toolApprovalHeading`/`toolApprovalArgsLabel`/`deny`/`approve` localization keys, so\nthe two always translate in lockstep.\n\nNon-modal by contract: no focus trap, no scroll lock, no Escape/backdrop semantics, and it never\nsteals focus when it appears in the transcript. DOM and tab order put Deny before Approve (the\ndialog's safe-action-first rationale). On activation, focus moves synchronously to `[part=\"status\"]`\n(an always-rendered, `tabindex=\"-1\"` element) *before* the Deny/Approve buttons unmount, so focus\nnever has a gap where it would otherwise fall back to `<body>`.\n\nNo argument editing (escalate to `<lr-tool-approval-dialog>`'s `editable` when edit-before-approve\nmatters); no blocking/modality guarantee (a user can scroll past); no decision persistence or\n\"remember choice\" logic (the `footer` slot + host own that).\n\nDeny/Approve are `<lr-button>`s (`variant=\"neutral\"`/`\"brand\"`, `\"danger\"` under `tone=\"danger\"`),\nre-exporting `lr-button`'s own `base`/`label`/`start`/`end`/`spinner` parts under\n`{deny,approve}-button-{base,label,start,end,spinner}` so `--lr-button-*` theming and a consumer's\nexisting `lr-button` style fragments reach them like every other button in an app. An\n`lr-approve`/`lr-deny` listener can call `preventDefault()` to keep the decision open while its own\nasync work (e.g. a network call) is in flight: `pending` is set to the decision being made, showing\n`loading` on that button and `disabled` on the other, until the host finalizes by setting `.decision`\nor bounces back by clearing `.pending` to `null`.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Supplementary body content between the heading and the actions (e.g. a `lr-diff-view` of the proposed change). |\n| `footer` | Extra content at the start of the action row (e.g. a \"remember this choice\" checkbox), mirroring `lr-tool-approval-dialog`'s own `footer` slot. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `approve-button` | The built-in Approve `<lr-button>`. Named identically to the dialog's part. |\n| `approve-button-base` | Forwarded from the internal Approve `<lr-button>`'s own `base` part. |\n| `approve-button-end` | Forwarded from the internal Approve `<lr-button>`'s own `end` part. |\n| `approve-button-label` | Forwarded from the internal Approve `<lr-button>`'s own `label` part. |\n| `approve-button-spinner` | Forwarded from the internal Approve `<lr-button>`'s own `spinner` part, present only while `pending` is `'approved'`. |\n| `approve-button-start` | Forwarded from the internal Approve `<lr-button>`'s own `start` part. |\n| `args` | The `lr-details` + `lr-json-viewer` wrapper. Only rendered when `args` is defined. |\n| `base` | The root (`role=\"group\"`). |\n| `body` | The default-slot wrapper. |\n| `deny-button` | The built-in Deny `<lr-button>`. Named identically to the dialog's part. |\n| `deny-button-base` | Forwarded from the internal Deny `<lr-button>`'s own `base` part. |\n| `deny-button-end` | Forwarded from the internal Deny `<lr-button>`'s own `end` part. |\n| `deny-button-label` | Forwarded from the internal Deny `<lr-button>`'s own `label` part. |\n| `deny-button-spinner` | Forwarded from the internal Deny `<lr-button>`'s own `spinner` part, present only while `pending` is `'denied'`. |\n| `deny-button-start` | Forwarded from the internal Deny `<lr-button>`'s own `start` part. |\n| `footer` | The action row. |\n| `heading` | The heading. |\n| `status` | The decided-state text. Always present in the DOM (`tabindex=\"-1\"`) so focus has a stable, synchronous landing spot on activation. |\n| `tool-name` | The tool-name span within the heading. Only rendered when `heading` is unset. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-confirm-bar-compact-padding` (default: `0`) — Padding of `[part='base']` while `compact`. Accepts any padding shorthand.\n- `--lr-confirm-bar-compact-gap` (default: `var(--lr-space-s)`) — Gap between the row's items while `compact`.\n- `--lr-confirm-bar-compact-border` (default: `none`) — Border of `[part='base']` while `compact`. Accepts any `border` shorthand.\n- `--lr-confirm-bar-compact-radius` (default: `0`) — Border radius of `[part='base']` while `compact` (only visible once `--lr-confirm-bar-compact-border`/`-background` are set).\n- `--lr-confirm-bar-compact-background` (default: `transparent`) — Background of `[part='base']` while `compact`.",
|
|
4057
4167
|
"attributes": [
|
|
4058
4168
|
{
|
|
4059
4169
|
"name": "compact",
|
|
@@ -4091,6 +4201,15 @@
|
|
|
4091
4201
|
]
|
|
4092
4202
|
}
|
|
4093
4203
|
},
|
|
4204
|
+
{
|
|
4205
|
+
"name": "pending",
|
|
4206
|
+
"description": "Which decision is awaiting host resolution, while an lr-approve/lr-deny listener has called\npreventDefault(). Host-writable: set back to null to bounce back to the undecided state (e.g.\non failure, so the user can retry), or set `decision` to finalize.\n\nType: `ConfirmBarDecision` \nDefault: `null`",
|
|
4207
|
+
"value": {
|
|
4208
|
+
"type": [
|
|
4209
|
+
"ConfirmBarDecision"
|
|
4210
|
+
]
|
|
4211
|
+
}
|
|
4212
|
+
},
|
|
4094
4213
|
{
|
|
4095
4214
|
"name": "tone",
|
|
4096
4215
|
"description": "Token-mapped emphasis for destructive proposals.\n\nType: `ConfirmBarTone` \nDefault: `'neutral'`",
|
|
@@ -4239,7 +4358,7 @@
|
|
|
4239
4358
|
},
|
|
4240
4359
|
{
|
|
4241
4360
|
"name": "lr-control-group",
|
|
4242
|
-
"description": "`<lr-control-group>` — a responsive layout primitive for a row of mixed form\ncontrols and action buttons (e.g. a segmented metric switcher beside a compact\nselect and an export button in a dashboard toolbar). Unlike `<lr-button-group>`\n(a uniform-height row of `<lr-button>`s that stretches every child to the row's\nfull height), this centers children of differing intrinsic heights and does not\nassume any particular child type.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Form controls, buttons, or any other action content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The group wrapper (`role=\"group\"`). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-control-group-gap` (default: `var(--lr-space-xs)`) — Gap between grouped controls.",
|
|
4361
|
+
"description": "`<lr-control-group>` — a responsive layout primitive for a row of mixed form\ncontrols and action buttons (e.g. a segmented metric switcher beside a compact\nselect and an export button in a dashboard toolbar). Unlike `<lr-button-group>`\n(a uniform-height row of `<lr-button>`s that stretches every child to the row's\nfull height), this centers children of differing intrinsic heights and does not\nassume any particular child type.\n\n`container-type: inline-size` (needed for the `@container` breakpoint below) is opt-in via\n`responsive`, not automatic: unconditionally applying it made the group collapse to 0 inline\nsize whenever it sat as an ordinary flex-basis:auto child of a shrink-to-fit flex row -- exactly\nthis component's own toolbar-row use case. Set `responsive` when this group's own size instead\ncomes from a percentage width, grid track, or block-level parent.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Form controls, buttons, or any other action content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The group wrapper (`role=\"group\"`). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-control-group-gap` (default: `var(--lr-space-xs)`) — Gap between grouped controls.",
|
|
4243
4362
|
"attributes": [
|
|
4244
4363
|
{
|
|
4245
4364
|
"name": "label",
|
|
@@ -4258,6 +4377,15 @@
|
|
|
4258
4377
|
"string"
|
|
4259
4378
|
]
|
|
4260
4379
|
}
|
|
4380
|
+
},
|
|
4381
|
+
{
|
|
4382
|
+
"name": "responsive",
|
|
4383
|
+
"description": "Opts into the group's own `@container` narrow-allocation breakpoint (see the class doc) by\nmaking the host a CSS size-query container. Left unset (the default), the host uses\n`container-type: normal` instead: `container-type: inline-size` forces this element's own\nauto/content-based inline size to be computed as if it had no content, which silently\ncollapses it to 0 width whenever it sits as an ordinary (`flex-basis: auto`) child of a\nshrink-to-fit flex row — exactly this component's own stated primary use case (a toolbar\nrow of mixed controls). Set `responsive` only when the group's own size instead comes from\nsomewhere else (a percentage width, a grid track, a block-level parent), where that failure\nmode does not apply and the narrow-allocation breakpoint is wanted.\n\nType: `boolean` \nDefault: `false`",
|
|
4384
|
+
"value": {
|
|
4385
|
+
"type": [
|
|
4386
|
+
"boolean"
|
|
4387
|
+
]
|
|
4388
|
+
}
|
|
4261
4389
|
}
|
|
4262
4390
|
]
|
|
4263
4391
|
},
|
|
@@ -4442,7 +4570,7 @@
|
|
|
4442
4570
|
},
|
|
4443
4571
|
{
|
|
4444
4572
|
"name": "lr-dashboard-grid",
|
|
4445
|
-
"description": "`<lr-dashboard-grid>` — a responsive, keyboard-accessible widget grid: positions `layout`\nentries (`DashboardCell`: `x`/`y`/`w`/`h` grid units + a widget descriptor) on a CSS Grid,\ncomposing `<lr-widget>` + `<lr-widget-renderer>` for each cell's default content, and owns all\ndrag/resize/collision interaction as controlled events -- it never mutates `layout` itself, nor\never touches `localStorage`/network; the host applies (or ignores) every emitted event and owns\npersistence entirely, mirroring `lr-flow-canvas`/`lr-table`'s own controlled-component\nconvention. Readonly (viewer) by default; opt into editor gestures individually via\n`cells-draggable`/`cells-resizable`, or lock the whole grid via `locked`.\n\nCell content: a `layout` entry with no matching light-DOM child (matched by `cell-id`) gets a\ndefault `<lr-widget label=\"...\">` wrapping an `<lr-widget-renderer .tree=${cell.widget}>`\nauto-created and adopted into `slot=\"cell-{id}\"` -- this component's own job is the grid\nlayout/drag/resize/collision/persistence-event mechanics *around* that content, not widget\nrendering itself (see `lr-widget-renderer`'s own doc for its declarative-tree contract). A\nconsumer wanting full control over one cell's markup can instead author\n`<div cell-id=\"...\">...</div>` as a direct child; it is adopted in place of the default cell.\n\nKeyboard: cells share one roving tabindex, in row-major (`sortSpatial`) order. Arrow\nkeys/Home/End move the roving focus (RTL-aware: physical Left/Right always match what the\ncursor visually does, matching `lr-flow-canvas`'s own convention). While a cell has focus,\nCtrl/Cmd+Arrow moves it by one grid unit and Ctrl/Cmd+Shift+Arrow resizes it by one grid unit\n(Right/Down grow, Left/Up shrink) -- the full keyboard-operable equivalent of the pointer\ndrag/resize gestures below, per this library's accessibility bar (no pointer-only interaction).\n\nCollision: every move/resize request -- pointer or keyboard -- is resolved through `collision`\n(`'reject'` the default, `'push'`, or `'overlap'`; see `resolvePlacement()` in `layout.ts` for\nthe exact rule). A rejected request leaves `layout` untouched and only announces; an accepted\none emits `lr-cell-move`/`lr-cell-resize` plus a `lr-layout-change` snapshot of the full\nproposed layout (including any `'push'` cascade) -- the host's one persistence hook: listen for\nit and persist `event.detail.layout` however it likes (`localStorage`, a network call, neither).\n\nResponsive: below a ~40rem container allocation (`@container`, not the viewport -- a dashboard\ngrid is commonly embedded in a panel of varying width), cells stack into a single flowing\ncolumn in the same row-major order the grid itself renders them in, instead of overflowing or\nshrinking columns unreadably.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `cell-{id}` | A `layout` entry's cell content; auto-populated by a default composed `<lr-widget>`/`<lr-widget-renderer>` pair unless a light-DOM `[cell-id=\"{id}\"]` child is authored instead. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The grid root. |\n| `cell` | A single cell's positioned wrapper. |\n| `empty` | The `lr-empty` shown when `layout` is empty. |\n| `live-region` | The current move/resize/collision announcement. |\n| `resize-handle` | The pointer resize grip in a cell's trailing/bottom corner (only rendered while `cells-resizable`); the Ctrl/Cmd+Shift+Arrow keyboard path is the resize handle's full accessible equivalent, so the handle itself is `aria-hidden`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-dashboard-grid-columns` (default: `12`) — Column count of the underlying CSS Grid. Written inline on `[part=\"base\"]` from the `columns` property on every render, so the fallback only applies to a `[part=\"base\"]` this component has not rendered yet.\n- `--lr-dashboard-grid-row-height` (default: `var(--lr-size-5rem)`) — Row track height. Written inline on `[part=\"base\"]` from the `rowHeight` property (in px) on every render.\n- `--lr-dashboard-grid-gap` (default: `var(--lr-space-m)`) — Gap between cells on both axes. Written inline on `[part=\"base\"]` from the `gap` property (in px) on every render.",
|
|
4573
|
+
"description": "`<lr-dashboard-grid>` — a responsive, keyboard-accessible widget grid: positions `layout`\nentries (`DashboardCell`: `x`/`y`/`w`/`h` grid units + a widget descriptor) on a CSS Grid,\ncomposing `<lr-widget>` + `<lr-widget-renderer>` for each cell's default content, and owns all\ndrag/resize/collision interaction as controlled events -- it never mutates `layout` itself, nor\never touches `localStorage`/network; the host applies (or ignores) every emitted event and owns\npersistence entirely, mirroring `lr-flow-canvas`/`lr-table`'s own controlled-component\nconvention. Readonly (viewer) by default; opt into editor gestures individually via\n`cells-draggable`/`cells-resizable`, or lock the whole grid via `locked`.\n\nCell content: a `layout` entry with no matching light-DOM child (matched by `cell-id`) gets a\ndefault `<lr-widget label=\"...\">` wrapping an `<lr-widget-renderer .tree=${cell.widget}>`\nauto-created and adopted into `slot=\"cell-{id}\"` -- this component's own job is the grid\nlayout/drag/resize/collision/persistence-event mechanics *around* that content, not widget\nrendering itself (see `lr-widget-renderer`'s own doc for its declarative-tree contract). A\nconsumer wanting full control over one cell's markup can instead author\n`<div cell-id=\"...\">...</div>` as a direct child; it is adopted in place of the default cell.\n\nKeyboard: cells share one roving tabindex, in row-major (`sortSpatial`) order. Arrow\nkeys/Home/End move the roving focus (RTL-aware: physical Left/Right always match what the\ncursor visually does, matching `lr-flow-canvas`'s own convention). While a cell has focus,\nCtrl/Cmd+Arrow moves it by one grid unit and Ctrl/Cmd+Shift+Arrow resizes it by one grid unit\n(Right/Down grow, Left/Up shrink) -- the full keyboard-operable equivalent of the pointer\ndrag/resize gestures below, per this library's accessibility bar (no pointer-only interaction).\n\nCollision: every move/resize request -- pointer or keyboard -- is resolved through `collision`\n(`'reject'` the default, `'push'`, or `'overlap'`; see `resolvePlacement()` in `layout.ts` for\nthe exact rule). A rejected request leaves `layout` untouched and only announces; an accepted\none emits `lr-cell-move`/`lr-cell-resize` plus a `lr-layout-change` snapshot of the full\nproposed layout (including any `'push'` cascade) -- the host's one persistence hook: listen for\nit and persist `event.detail.layout` however it likes (`localStorage`, a network call, neither).\n\nResponsive: below a ~40rem container allocation (`@container`, not the viewport -- a dashboard\ngrid is commonly embedded in a panel of varying width), cells stack into a single flowing\ncolumn in the same row-major order the grid itself renders them in, instead of overflowing or\nshrinking columns unreadably.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `cell-{id}` | A `layout` entry's cell content; auto-populated by a default composed `<lr-widget>`/`<lr-widget-renderer>` pair unless a light-DOM `[cell-id=\"{id}\"]` child is authored instead. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The grid root. |\n| `cell` | A single cell's positioned wrapper. |\n| `empty` | The `lr-empty` shown when `layout` is empty. |\n| `live-region` | The current move/resize/collision announcement. |\n| `resize-handle` | The pointer resize grip in a cell's trailing/bottom corner (only rendered while `cells-resizable`); the Ctrl/Cmd+Shift+Arrow keyboard path is the resize handle's full accessible equivalent, so the handle itself is `aria-hidden`. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-dashboard-grid-columns` (default: `12`) — Column count of the underlying CSS Grid. Written inline on `[part=\"base\"]` from the `columns` property on every render, so the fallback only applies to a `[part=\"base\"]` this component has not rendered yet.\n- `--lr-dashboard-grid-row-height` (default: `var(--lr-size-5rem)`) — Row track height. Written inline on `[part=\"base\"]` from the `rowHeight` property (in px) on every render.\n- `--lr-dashboard-grid-gap` (default: `var(--lr-space-m)`) — Gap between cells on both axes. Written inline on `[part=\"base\"]` from the `gap` property (in px) on every render.\n- `--lr-dashboard-grid-cell-hover-outline-color` (default: `var(--lr-color-border-strong)`) — Outline color of a cell's mouse-hover preview of its own `:focus-visible` ring (shown because every cell is a real focusable, draggable/resizable target). Set to `transparent` to opt out.",
|
|
4446
4574
|
"attributes": [
|
|
4447
4575
|
{
|
|
4448
4576
|
"name": "aria-label",
|
|
@@ -4522,48 +4650,6 @@
|
|
|
4522
4650
|
}
|
|
4523
4651
|
]
|
|
4524
4652
|
},
|
|
4525
|
-
{
|
|
4526
|
-
"name": "lr-data-grid",
|
|
4527
|
-
"description": "`<lr-data-grid>` — keyboard-navigable, responsive data grid with sortable columns.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `cell` | Body cell. |\n| `empty` | The single full-width cell rendered in place of body rows while `loading`, or when `rows` is empty. |\n| `grid` | Native table grid. |\n| `header` | Header cell. |\n| `row` | Body row. |\n| `viewport` | Scrollable grid viewport. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-data-grid-row-selected-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the selected row's cells. Shadow Parts forbids an attribute selector after `::part()`, so `::part(row)[aria-selected]` is invalid CSS and the selected row could otherwise only be restyled by hijacking the library-wide `--lr-color-brand-quiet` token.",
|
|
4528
|
-
"attributes": [
|
|
4529
|
-
{
|
|
4530
|
-
"name": "aria-label",
|
|
4531
|
-
"description": "Type: `string` \nDefault: `''`",
|
|
4532
|
-
"value": {
|
|
4533
|
-
"type": [
|
|
4534
|
-
"string"
|
|
4535
|
-
]
|
|
4536
|
-
}
|
|
4537
|
-
},
|
|
4538
|
-
{
|
|
4539
|
-
"name": "empty-text",
|
|
4540
|
-
"description": "Type: `string` \nDefault: `''`",
|
|
4541
|
-
"value": {
|
|
4542
|
-
"type": [
|
|
4543
|
-
"string"
|
|
4544
|
-
]
|
|
4545
|
-
}
|
|
4546
|
-
},
|
|
4547
|
-
{
|
|
4548
|
-
"name": "loading",
|
|
4549
|
-
"description": "Type: `boolean` \nDefault: `false`",
|
|
4550
|
-
"value": {
|
|
4551
|
-
"type": [
|
|
4552
|
-
"boolean"
|
|
4553
|
-
]
|
|
4554
|
-
}
|
|
4555
|
-
},
|
|
4556
|
-
{
|
|
4557
|
-
"name": "locale",
|
|
4558
|
-
"description": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`",
|
|
4559
|
-
"value": {
|
|
4560
|
-
"type": [
|
|
4561
|
-
"string"
|
|
4562
|
-
]
|
|
4563
|
-
}
|
|
4564
|
-
}
|
|
4565
|
-
]
|
|
4566
|
-
},
|
|
4567
4653
|
{
|
|
4568
4654
|
"name": "lr-dataset-viewer",
|
|
4569
4655
|
"description": "Fetches delimited text and renders a virtualized, accessible data table: a `role=\"table\"`\ncontainer with a sticky `role=\"row\"` header, composed with `<lr-virtual-list item-role=\"row\">`\nfor the body so files far larger than a real synchronous `<table>` can render without locking the\nmain thread.\n\nAdopts `DocumentAnchorTarget`: a `cell-range` anchor addresses the raw file grid, 1-based, with\nthe header row always occupying row 1 (this component always parses with PapaParse's `header:\ntrue`, so the first row is never part of the virtualized body) -- `scrollToAnchor()` scrolls the\naddressed row into view via the virtualized list's `active-id`. A `sheet`-qualified anchor never\nresolves here -- this viewer has no sheets. `highlights` paint as a `part=\"cell-highlight\"` cell\nwrapping a focusable `part=\"cell-highlight-action\"` native button (keeping the ARIA table tree\nintact) on membership, recomputed per row inside `renderRow()` so a row scrolled out and back\nin reconstructs its highlight for free, with no persistent DOM to keep in sync. `search()` is a\ncase-insensitive substring match over every body cell's raw string value, ordered row then column.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root wrapper. |\n| `body` | The scrollable body wrapper. |\n| `cell` | One rendered cell (`role=\"cell\"`). |\n| `cell-highlight` | A cell (`role=\"cell\"`) covered by a `highlights` entry; wraps the `cell-highlight-action` button. |\n| `cell-highlight-action` | The native button filling a highlighted cell -- focusable, emits `lr-highlight-activate` on click or Enter/Space. |\n| `data-row` | One virtualized data row. |\n| `error` | The error message region. |\n| `header-cell` | A header cell (`role=\"columnheader\"`). |\n| `header-row` | The sticky header row (`role=\"row\"`). |\n| `spinner` | The loading status region. |\n| `table` | The `role=\"table\"` container. Its accessible name is `name` when set, otherwise a host `aria-label`, otherwise a localized row-count caption. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-dataset-viewer-max-height` (default: `none`) — Maximum block size of `[part=\"body\"]` before it scrolls internally. The `maxHeight` property sets this token inline on `[part=\"base\"]`.\n- `--lr-dataset-viewer-highlight-color` (default: `var(--lr-color-brand)`) — Outline color of a highlighted cell. The active highlight sets it inline to `var(--lr-color-warning, var(--lr-color-brand))`.",
|
|
@@ -4677,6 +4763,15 @@
|
|
|
4677
4763
|
]
|
|
4678
4764
|
}
|
|
4679
4765
|
},
|
|
4766
|
+
{
|
|
4767
|
+
"name": "disabled",
|
|
4768
|
+
"description": "Type: `boolean`",
|
|
4769
|
+
"value": {
|
|
4770
|
+
"type": [
|
|
4771
|
+
"boolean"
|
|
4772
|
+
]
|
|
4773
|
+
}
|
|
4774
|
+
},
|
|
4680
4775
|
{
|
|
4681
4776
|
"name": "enterkeyhint",
|
|
4682
4777
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -4766,6 +4861,15 @@
|
|
|
4766
4861
|
"name": "months",
|
|
4767
4862
|
"description": "Type: `1 | 2` \nDefault: `1`"
|
|
4768
4863
|
},
|
|
4864
|
+
{
|
|
4865
|
+
"name": "name",
|
|
4866
|
+
"description": "Type: `string`",
|
|
4867
|
+
"value": {
|
|
4868
|
+
"type": [
|
|
4869
|
+
"string"
|
|
4870
|
+
]
|
|
4871
|
+
}
|
|
4872
|
+
},
|
|
4769
4873
|
{
|
|
4770
4874
|
"name": "open",
|
|
4771
4875
|
"description": "Type: `boolean` \nDefault: `false`",
|
|
@@ -4802,6 +4906,15 @@
|
|
|
4802
4906
|
]
|
|
4803
4907
|
}
|
|
4804
4908
|
},
|
|
4909
|
+
{
|
|
4910
|
+
"name": "required",
|
|
4911
|
+
"description": "Type: `boolean`",
|
|
4912
|
+
"value": {
|
|
4913
|
+
"type": [
|
|
4914
|
+
"boolean"
|
|
4915
|
+
]
|
|
4916
|
+
}
|
|
4917
|
+
},
|
|
4805
4918
|
{
|
|
4806
4919
|
"name": "size",
|
|
4807
4920
|
"description": "Visual size — same `2xs`–`xl` scale as `lr-input`/`lr-select`/`lr-combobox`'s own `size`.\n`'2xs'` is the tightest tier, for dense toolbar-embedded fields.\n\nType: `LyraDateInputSize` \nDefault: `'m'`",
|
|
@@ -4956,6 +5069,15 @@
|
|
|
4956
5069
|
]
|
|
4957
5070
|
}
|
|
4958
5071
|
},
|
|
5072
|
+
{
|
|
5073
|
+
"name": "size",
|
|
5074
|
+
"description": "Visual size — scales `--lr-cell-size` proportionally; not pixel-matched to\n`lr-input`'s row-height scale (a calendar cell isn't a text row).\n\nType: `LyraDatePickerSize` \nDefault: `'m'`",
|
|
5075
|
+
"value": {
|
|
5076
|
+
"type": [
|
|
5077
|
+
"LyraDatePickerSize"
|
|
5078
|
+
]
|
|
5079
|
+
}
|
|
5080
|
+
},
|
|
4959
5081
|
{
|
|
4960
5082
|
"name": "value",
|
|
4961
5083
|
"description": "ISO value: `YYYY-MM-DD` or `YYYY-MM-DD/YYYY-MM-DD`.\n\nType: `string` \nDefault: `''`",
|
|
@@ -5114,7 +5236,12 @@
|
|
|
5114
5236
|
},
|
|
5115
5237
|
{
|
|
5116
5238
|
"name": "layout",
|
|
5117
|
-
"description": "`'unified'` (the default) renders today's single interleaved `<pre>`; `'split'` renders two\nside-by-side columns derived from the same `DiffOp[]` (see `pairOpsForSplit()`).\n\nType: `
|
|
5239
|
+
"description": "`'unified'` (the default) renders today's single interleaved `<pre>`; `'split'` renders two\nside-by-side columns derived from the same `DiffOp[]` (see `pairOpsForSplit()`).\n\nType: `LyraDiffViewLayout` \nDefault: `'unified'`",
|
|
5240
|
+
"value": {
|
|
5241
|
+
"type": [
|
|
5242
|
+
"LyraDiffViewLayout"
|
|
5243
|
+
]
|
|
5244
|
+
}
|
|
5118
5245
|
},
|
|
5119
5246
|
{
|
|
5120
5247
|
"name": "locale",
|
|
@@ -5244,7 +5371,12 @@
|
|
|
5244
5371
|
},
|
|
5245
5372
|
{
|
|
5246
5373
|
"name": "diff-layout",
|
|
5247
|
-
"description": "Forwarded to the internal `<lr-diff-view>`'s own `layout` property while `view=\"diff\"`.\n\nType: `
|
|
5374
|
+
"description": "Forwarded to the internal `<lr-diff-view>`'s own `layout` property while `view=\"diff\"`.\n\nType: `LyraDiffViewLayout` \nDefault: `'unified'`",
|
|
5375
|
+
"value": {
|
|
5376
|
+
"type": [
|
|
5377
|
+
"LyraDiffViewLayout"
|
|
5378
|
+
]
|
|
5379
|
+
}
|
|
5248
5380
|
},
|
|
5249
5381
|
{
|
|
5250
5382
|
"name": "language",
|
|
@@ -5275,13 +5407,18 @@
|
|
|
5275
5407
|
},
|
|
5276
5408
|
{
|
|
5277
5409
|
"name": "view",
|
|
5278
|
-
"description": "`'diff'` (the default) renders one inline `<lr-diff-view>`; `'side-by-side'` renders two\nindependently-scrollable `<lr-document-preview>` panes -- see the class doc's \"Synchronized\nanchors\" section for how the two panes are kept in sync.\n\nType: `
|
|
5410
|
+
"description": "`'diff'` (the default) renders one inline `<lr-diff-view>`; `'side-by-side'` renders two\nindependently-scrollable `<lr-document-preview>` panes -- see the class doc's \"Synchronized\nanchors\" section for how the two panes are kept in sync.\n\nType: `LyraDocumentCompareView` \nDefault: `'diff'`",
|
|
5411
|
+
"value": {
|
|
5412
|
+
"type": [
|
|
5413
|
+
"LyraDocumentCompareView"
|
|
5414
|
+
]
|
|
5415
|
+
}
|
|
5279
5416
|
}
|
|
5280
5417
|
]
|
|
5281
5418
|
},
|
|
5282
5419
|
{
|
|
5283
5420
|
"name": "lr-document-library",
|
|
5284
|
-
"description": "`<lr-document-library>` — a searchable, filterable inventory of documents with versions, tags,\nowners, freshness, and bulk selection. A controlled data view: it performs no upload, sync, or\nmutation of its own, only presents `documents` and emits request/notification events, mirroring\nthis package's other orchestration-level list surfaces (`<lr-thread-list>`'s\n`lr-thread-pin`/`-archive`/`-delete` convention).\n\nComposes `<lr-table>`
|
|
5421
|
+
"description": "`<lr-document-library>` — a searchable, filterable inventory of documents with versions, tags,\nowners, freshness, and bulk selection. A controlled data view: it performs no upload, sync, or\nmutation of its own, only presents `documents` and emits request/notification events, mirroring\nthis package's other orchestration-level list surfaces (`<lr-thread-list>`'s\n`lr-thread-pin`/`-archive`/`-delete` convention).\n\nComposes `<lr-table>` for the inventory grid itself, since bulk selection, tags, and per-row\ntype icons all need arbitrary cell content rather than a stringified value.\n`<lr-table>` supports arbitrary `cell()`/`headerCell()` content and `priority`-driven responsive\ncolumn hiding, which this component relies on for its 320px-allocation behavior. Search\n(`<lr-input type=\"search\">`) and the tag facet (`<lr-combobox multiple>`) are both self-managed\n(client-side filtering against `documents`, like `<lr-thread-list>`'s own `searchable` field) —\noverride matching entirely via `filter`. Row selection uses `<lr-checkbox>` per cell rather than\n`<lr-table>`'s own built-in `selectionMode`, since that mode's click-anywhere-in-the-row toggle\nwould conflict with the row's own name button opening the document; `<lr-table>`'s\n`selectedKeys` is still fed from `selectedIds` purely for its `aria-selected` row styling.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root region. |\n| `cell` | Exported from `<lr-table>`'s own `cell` part. |\n| `clear-selection` | The \"Clear selection\" button inside `selection-bar`. |\n| `document-name` | Each row's clickable document-name button. |\n| `header-cell` | Exported from `<lr-table>`'s own `header-cell` part. |\n| `row` | Exported from `<lr-table>`'s own `row` part. |\n| `search` | The `<lr-input>` search field. |\n| `selection-bar` | The \"N selected\" / \"Clear selection\" bar. Only rendered while `selectedIds` is non-empty. |\n| `selection-count` | The selected-count text inside `selection-bar`. |\n| `table` | The `<lr-table>` inventory grid. |\n| `tag-filter` | The `<lr-combobox>` tag facet filter. Only rendered while at least one document declares a `tags` entry. |\n| `toolbar` | Wraps the search field and tag filter. |",
|
|
5285
5422
|
"attributes": [
|
|
5286
5423
|
{
|
|
5287
5424
|
"name": "label",
|
|
@@ -5312,7 +5449,12 @@
|
|
|
5312
5449
|
},
|
|
5313
5450
|
{
|
|
5314
5451
|
"name": "sort-direction",
|
|
5315
|
-
"description": "Type: `
|
|
5452
|
+
"description": "Type: `DocumentLibrarySortDirection` \nDefault: `'ascending'`",
|
|
5453
|
+
"value": {
|
|
5454
|
+
"type": [
|
|
5455
|
+
"DocumentLibrarySortDirection"
|
|
5456
|
+
]
|
|
5457
|
+
}
|
|
5316
5458
|
},
|
|
5317
5459
|
{
|
|
5318
5460
|
"name": "sort-key",
|
|
@@ -5818,7 +5960,12 @@
|
|
|
5818
5960
|
},
|
|
5819
5961
|
{
|
|
5820
5962
|
"name": "popup-role",
|
|
5821
|
-
"description": "Semantic role used by the popup. Dropdown subclasses set this to `menu`.\n\nType: `
|
|
5963
|
+
"description": "Semantic role used by the popup. Dropdown subclasses set this to `menu`.\n\nType: `LyraPopupRole` \nDefault: `'dialog'`",
|
|
5964
|
+
"value": {
|
|
5965
|
+
"type": [
|
|
5966
|
+
"LyraPopupRole"
|
|
5967
|
+
]
|
|
5968
|
+
}
|
|
5822
5969
|
}
|
|
5823
5970
|
]
|
|
5824
5971
|
},
|
|
@@ -5986,7 +6133,7 @@
|
|
|
5986
6133
|
},
|
|
5987
6134
|
{
|
|
5988
6135
|
"name": "lr-emoji-picker",
|
|
5989
|
-
"description": "`<lr-emoji-picker>` — a searchable, keyboard-navigable, form-associated emoji picker. In the\nsame \"zero/optional-peer dependency\" spirit as `<lr-lite-chart>`/`<lr-heatmap>`: `groups` is\nfully consumer-suppliable (this component ships no emoji data of its own), with an *optional*\nconvenience auto-loader for a default set — see `emoji-data-loader.ts` and the class doc there for\nexactly what that covers.\n\nKeyboard model: the grid is a roving-tabindex listbox (a single Tab stop — only the active emoji\nis tabbable). Arrow keys move the active option (Left/Right follow reading direction and swap\nunder RTL; Up/Down move by one visual row, measured from the live wrap layout), Home/End jump to\nthe first/last option, and Enter/Space picks. The search input doubles as a `role=\"combobox\"`\nover the same listbox: the arrow keys and Enter also work there while focus stays in the input,\nwith `aria-activedescendant` tracking the active option. Large data sets automatically window\ntheir visible rows so scrolling does not create one button per supplied emoji in the DOM.\n\nShips the same opt-in `label`/`hint`/`errorText` form-control chrome as `<lr-select>`/\n`<lr-color-picker>` (props + matching named slots + `form-control`/`form-control-label`/`hint`/\n`error` parts) — left unset, the chrome stays hidden. When `label` (or the `label` slot) is set\nand `aria-label`/`accessibleLabel` is not, the grid's accessible name switches from the\nlocalized default to `aria-labelledby` pointing at the visible label, mirroring\n`<lr-checkbox-group>`'s identical `accessibleLabel`-wins-over-`aria-labelledby` precedence.\n\n`disabled` (from the `FormAssociated` mixin) gates every self-rendered interactive\nsub-control — the search input and every emoji button — not just one of them.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The wrapper around the search input and grid. |\n| `emoji` | Each emoji's own `<button>`;
|
|
6136
|
+
"description": "`<lr-emoji-picker>` — a searchable, keyboard-navigable, form-associated emoji picker. In the\nsame \"zero/optional-peer dependency\" spirit as `<lr-lite-chart>`/`<lr-heatmap>`: `groups` is\nfully consumer-suppliable (this component ships no emoji data of its own), with an *optional*\nconvenience auto-loader for a default set — see `emoji-data-loader.ts` and the class doc there for\nexactly what that covers.\n\nKeyboard model: the grid is a roving-tabindex listbox (a single Tab stop — only the active emoji\nis tabbable). Arrow keys move the active option (Left/Right follow reading direction and swap\nunder RTL; Up/Down move by one visual row, measured from the live wrap layout), Home/End jump to\nthe first/last option, and Enter/Space picks. The search input doubles as a `role=\"combobox\"`\nover the same listbox: the arrow keys and Enter also work there while focus stays in the input,\nwith `aria-activedescendant` tracking the active option. Large data sets automatically window\ntheir visible rows so scrolling does not create one button per supplied emoji in the DOM.\n\nShips the same opt-in `label`/`hint`/`errorText` form-control chrome as `<lr-select>`/\n`<lr-color-picker>` (props + matching named slots + `form-control`/`form-control-label`/`hint`/\n`error` parts) — left unset, the chrome stays hidden. When `label` (or the `label` slot) is set\nand `aria-label`/`accessibleLabel` is not, the grid's accessible name switches from the\nlocalized default to `aria-labelledby` pointing at the visible label, mirroring\n`<lr-checkbox-group>`'s identical `accessibleLabel`-wins-over-`aria-labelledby` precedence.\n\n`disabled` (from the `FormAssociated` mixin) gates every self-rendered interactive\nsub-control — the search input and every emoji button — not just one of them.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The wrapper around the search input and grid. |\n| `emoji` | Each emoji's own `<button>`; its box and glyph both scale with the `size` property (`--lr-emoji-picker-item-size`/`-glyph-size`), with the hit area floored at a flat 24px (WCAG 2.5.8) rather than the shared `--lr-icon-button-size`. |\n| `empty` | The empty-state message, shown when the search matches nothing. |\n| `error` | The error message. |\n| `form-control` | The outer wrapper around label, base, error and hint. |\n| `form-control-label` | The visible label. |\n| `grid` | The keyboard-navigable emoji grid. |\n| `group-label` | Each group's heading, rendered above its emojis. |\n| `hint` | The hint message. |\n| `search` | The search/filter `<input>` (`role=\"combobox\"` over the grid). |\n| `virtual-items` | The flex row holding one windowed row's emoji buttons. |\n| `virtual-label` | The `aria-hidden` placeholder that reserves a row's group-label band when that row has no label, keeping every row the same height. Rendered on the windowed path only. |\n| `virtual-row` | One windowed row, absolutely positioned at the `--lr-emoji-picker-row-height` pitch. Rendered on the windowed path only. |\n| `virtual-spacer` | The full-height scroll spacer that gives the grid its scrollbar while only the visible rows exist in the DOM. Rendered on the windowed path only. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-emoji-picker-item-size` (default: `var(--lr-icon-button-size)`) — Each emoji button's box. Clamped up to `--lr-icon-button-size`: a smaller value does not shrink the button.\n- `--lr-emoji-picker-glyph-size` (default: `var(--lr-font-size-lg)`) — Font size of the emoji glyph, scaled by the `size` property to keep the glyph proportional to the item box.\n- `--lr-emoji-picker-gap` (default: `var(--lr-space-2xs)`) — Gap between emoji within a windowed row.\n- `--lr-emoji-picker-row-height` (default: `calc(var(--lr-emoji-picker-item-size) + var(--lr-space-l))`) — One windowed row's height. Must stay at or above the item size plus the group-label band, or consecutive absolutely-positioned rows overlap.\n- `--lr-emoji-picker-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of the keyboard-active (`data-active`) **and** hovered emoji button — the two share a single rule, so this one hook retints both consistently. Declared as an inline `var()` fallback (never on `:host`), so setting it on the element or an ancestor recolors only the emoji highlight without hijacking the library-wide `--lr-color-brand-quiet` token.",
|
|
5990
6137
|
"attributes": [
|
|
5991
6138
|
{
|
|
5992
6139
|
"name": "aria-label",
|
|
@@ -5997,6 +6144,15 @@
|
|
|
5997
6144
|
]
|
|
5998
6145
|
}
|
|
5999
6146
|
},
|
|
6147
|
+
{
|
|
6148
|
+
"name": "disabled",
|
|
6149
|
+
"description": "Type: `boolean`",
|
|
6150
|
+
"value": {
|
|
6151
|
+
"type": [
|
|
6152
|
+
"boolean"
|
|
6153
|
+
]
|
|
6154
|
+
}
|
|
6155
|
+
},
|
|
6000
6156
|
{
|
|
6001
6157
|
"name": "error-text",
|
|
6002
6158
|
"description": "Validation-error text rendered below the hint.\n\nType: `string` \nDefault: `''`",
|
|
@@ -6032,6 +6188,33 @@
|
|
|
6032
6188
|
"string"
|
|
6033
6189
|
]
|
|
6034
6190
|
}
|
|
6191
|
+
},
|
|
6192
|
+
{
|
|
6193
|
+
"name": "name",
|
|
6194
|
+
"description": "Type: `string`",
|
|
6195
|
+
"value": {
|
|
6196
|
+
"type": [
|
|
6197
|
+
"string"
|
|
6198
|
+
]
|
|
6199
|
+
}
|
|
6200
|
+
},
|
|
6201
|
+
{
|
|
6202
|
+
"name": "required",
|
|
6203
|
+
"description": "Type: `boolean`",
|
|
6204
|
+
"value": {
|
|
6205
|
+
"type": [
|
|
6206
|
+
"boolean"
|
|
6207
|
+
]
|
|
6208
|
+
}
|
|
6209
|
+
},
|
|
6210
|
+
{
|
|
6211
|
+
"name": "size",
|
|
6212
|
+
"description": "Visual size — scales the emoji grid item box proportionally, floored at 24px\n(WCAG 2.5.8); not pixel-matched to `lr-input`'s row-height scale.\n\nType: `LyraEmojiPickerSize` \nDefault: `'m'`",
|
|
6213
|
+
"value": {
|
|
6214
|
+
"type": [
|
|
6215
|
+
"LyraEmojiPickerSize"
|
|
6216
|
+
]
|
|
6217
|
+
}
|
|
6035
6218
|
}
|
|
6036
6219
|
]
|
|
6037
6220
|
},
|
|
@@ -6273,7 +6456,7 @@
|
|
|
6273
6456
|
},
|
|
6274
6457
|
{
|
|
6275
6458
|
"name": "lr-eval-dataset",
|
|
6276
|
-
"description": "`<lr-eval-dataset>` — dataset management for an evaluation suite: a filterable/taggable list of\n`EvalExample` rows, plus add/remove/import/export affordances.\n\nFully controlled, matching this library's established convention for every other\norchestration-level component in this family (e.g. `<lr-thread-list>`'s\n`lr-thread-pin`/`-archive`/`-delete`): `examples` is the host's own data, and this component\nnever mutates it or performs any I/O itself. Every action a user takes -- adding a row,\nremoving the selected row, importing files, exporting to a format -- fires a `*-request` event\ncarrying just enough information to act on; the host decides how (a local mutation, a network\nround-trip, opening its own creation dialog, parsing an imported file's actual contents, writing\nan exported file to disk or a server) and passes an updated `examples` array back in.\n\nComposes `<lr-
|
|
6459
|
+
"description": "`<lr-eval-dataset>` — dataset management for an evaluation suite: a filterable/taggable list of\n`EvalExample` rows, plus add/remove/import/export affordances.\n\nFully controlled, matching this library's established convention for every other\norchestration-level component in this family (e.g. `<lr-thread-list>`'s\n`lr-thread-pin`/`-archive`/`-delete`): `examples` is the host's own data, and this component\nnever mutates it or performs any I/O itself. Every action a user takes -- adding a row,\nremoving the selected row, importing files, exporting to a format -- fires a `*-request` event\ncarrying just enough information to act on; the host decides how (a local mutation, a network\nround-trip, opening its own creation dialog, parsing an imported file's actual contents, writing\nan exported file to disk or a server) and passes an updated `examples` array back in.\n\nComposes `<lr-table>` for the row list (columns for `input`/`expectedOutput`/joined\n`tags`), `<lr-chip>`/`<lr-chip-group>` as a tag-based browse filter (one toggleable chip per\ndistinct tag currently present across `examples`; multiple active tags OR together, matching\nthe common \"browse by any of these tags\" idiom rather than requiring every tag to match),\n`<lr-file-input>` for the import affordance, and `<lr-export-button>` for the export affordance\n-- its own built-in client-side CSV/JSON download is deliberately suppressed\n(`event.preventDefault()` on its `lr-export`) since `<lr-export-button>`'s flat `rows`/`columns`\nCSV/JSON builder can't preserve an `EvalExample`'s own `tags`/`metadata` shape faithfully, and\nproducing the actual exported file/API-call either way is the host's job per this component's\nown controlled contract; this keeps `lr-export-request` the single source of truth for every\nconfigured format rather than one format silently downloading locally while every other format\ndoes nothing.\n\nRow sorting is *not* re-implemented here: `<lr-table>`'s own `lr-sort` bubbles through\n(composed events cross a shadow boundary automatically) for a host that wants to reorder\n`examples` and hand back a resorted array -- the same \"the host owns the actual data\" contract\nas every other mutation this component surfaces.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `add-button` | The \"Add example\" button. |\n| `base` | The root. |\n| `export` | The internal `<lr-export-button>`. |\n| `grid` | The internal `<lr-table>`. |\n| `import` | The internal `<lr-file-input>`. |\n| `remove-button` | The \"Remove\" button, disabled while nothing is selected. |\n| `search` | The search field's wrapper. Only rendered while `searchable`. |\n| `search-input` | The `<input type=\"search\">`. Only rendered while `searchable`. |\n| `tag-filter` | The tag-filter chip group's wrapper. Only rendered while `examples` carries at least one tag. |\n| `toolbar` | The row of add/remove/import/export controls. |",
|
|
6277
6460
|
"attributes": [
|
|
6278
6461
|
{
|
|
6279
6462
|
"name": "accept",
|
|
@@ -6324,7 +6507,7 @@
|
|
|
6324
6507
|
},
|
|
6325
6508
|
{
|
|
6326
6509
|
"name": "lr-eval-result",
|
|
6327
|
-
"description": "`<lr-eval-result>` — rubric scoring, human review, and comparison across a single evaluation\nexample's runs (one per model or prompt version), LangSmith/Arize-eval-result style.\n\nComposes three existing primitives directly rather than re-deriving any of their behavior:\n`<lr-
|
|
6510
|
+
"description": "`<lr-eval-result>` — rubric scoring, human review, and comparison across a single evaluation\nexample's runs (one per model or prompt version), LangSmith/Arize-eval-result style.\n\nComposes three existing primitives directly rather than re-deriving any of their behavior:\n`<lr-table>` renders the `runs` comparison table (`columns` is a plain pass-through to its\nown `TableColumn[]` shape, the same way `rubricKeys` is a pass-through to\n`<lr-rubric-form>`'s own `keys` -- neither is re-derived here); `<lr-rubric-form>` is the\nhuman-review scoring surface for whichever run is currently selected, reading/writing that\nrun's own `review` value and re-emitting its `lr-input`/`lr-validity-change`/`lr-submit`/\n`lr-skip` events with the run id attached; `<lr-diff-view>` compares the selected run's output\nagainst `baselineRunId`'s output -- `layout=\"split\"` once they resolve to two distinct runs,\n`layout=\"unified\"` (an all-equal diff, i.e. a plain read of the one run's output) once they\nresolve to the same run or no baseline resolves at all -- so there is no separate un-diffed\n\"just show the output\" code path to keep in sync with the comparison one.\n\n`selectedRunId`/`baselineRunId` are both fully controlled: this component never mutates either\nproperty itself. Each one falls back to `runs[0]?.id` purely for *rendering* whenever the\nproperty is unset, so the component renders something useful with zero configuration beyond\n`runs` -- but moving the selection for real requires the host to set `selectedRunId` in\nresponse to `lr-run-select`, the same shape `<lr-rubric-form>`'s own `itemId` already uses. A\n`selectedRunId`/`baselineRunId` that doesn't match any entry in `runs` degrades gracefully: the\ncomparison grid still renders, and the review/diff sections simply don't (no error, no crash).\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The outer wrapper. |\n| `diff` | The wrapper around the diff caption and `<lr-diff-view>`. |\n| `diff-label-new` | The selected run's caption. |\n| `diff-label-old` | The baseline run's caption. |\n| `diff-labels` | The caption row naming the two compared runs (only rendered while comparing two distinct runs). |\n| `diff-view` | The `<lr-diff-view>` comparing the baseline and selected runs' output. |\n| `empty` | The message shown when `runs` has no entries. |\n| `grid` | The `<lr-table>` comparison table. |\n| `review` | The `<lr-rubric-form>` scoring the selected run. |",
|
|
6328
6511
|
"attributes": [
|
|
6329
6512
|
{
|
|
6330
6513
|
"name": "baseline-run-id",
|
|
@@ -6782,7 +6965,7 @@
|
|
|
6782
6965
|
},
|
|
6783
6966
|
{
|
|
6784
6967
|
"name": "lr-flow-canvas",
|
|
6785
|
-
"description": "`<lr-flow-canvas>` — a pannable/zoomable DAG workflow canvas: positions HTML node cards, draws\nSVG edges between their handles, runs a shared layered auto-layout for unpositioned nodes, and owns\nall selection/drag/connect interaction as controlled events. Readonly (viewer) by default; opt into\neditor gestures individually via `nodes-draggable`, `connectable`, `droppable`. Never mutates `nodes`\nor `edges` itself — every edit intent is an event the host applies, mirroring `lr-stepper`/\n`lr-table`'s controlled-component contract.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | `lr-flow-node` children to adopt by `node-id`; non-matching children are ignored with a console warning. |\n| `bottom-end` | Floating corner overlay (e.g. `lr-flow-minimap`). |\n| `bottom-start` | Floating corner overlay (e.g. `lr-flow-controls`). |\n| `top-end` | Floating corner overlay. |\n| `top-start` | Floating corner overlay (e.g. `lr-flow-run-overlay`). |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `arrowhead` | The shared directed-edge arrowhead marker. |\n| `background` | The dotted background grid. |\n| `base` | The root wrapper. |\n| `connection-line` | The in-progress connect-gesture path. |\n| `edge` | A single edge path. |\n| `edge-label` | An edge's drawn label. |\n| `edge-list` | A visually hidden list of every edge. |\n| `edges` | The edges SVG. |\n| `empty` | The `lr-empty` shown when `nodes` is empty. |\n| `live-region` | The current item/gesture announcement. |\n| `node` | A node's positioned wrapper. |\n| `stub` | A dangling-edge stub line. |\n| `viewport` | The focusable pan/zoom surface. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-flow-canvas-grid-size` (default: `var(--lr-size-0-5rem)`) — Dotted background spacing. The canvas also writes it inline as `${grid}px` from the `grid` property, which wins over the stylesheet fallback whenever a grid is in effect.\n- `--lr-flow-canvas-march-duration` (default: `var(--lr-transition-ambient)`) — Running-edge march animation duration.\n- `--lr-flow-canvas-node-current-outline-color` (default: `var(--lr-color-brand)`) — Outline color of the current (`aria-current`) node. Shadow Parts forbids an attribute selector after `::part()`, so the current node could otherwise only be restyled by hijacking the library-wide `--lr-color-brand` token.\n- `--lr-flow-canvas-node-connect-invalid-outline-color` (default: `var(--lr-color-danger)`) — Outline color of a node that is an invalid connect-gesture drop target. Same `::part()` attribute-selector restriction as `--lr-flow-canvas-node-current-outline-color` above.\n- `--lr-flow-canvas-node-connect-target-outline-color` (default: `var(--lr-color-brand)`) — Outline color of a node that is a valid connect-gesture drop target.\n- `--lr-flow-canvas-drop-active-outline-color` (default: `var(--lr-color-brand)`) — Outline color of the viewport while a palette item is dragged over it (`droppable`).",
|
|
6968
|
+
"description": "`<lr-flow-canvas>` — a pannable/zoomable DAG workflow canvas: positions HTML node cards, draws\nSVG edges between their handles, runs a shared layered auto-layout for unpositioned nodes, and owns\nall selection/drag/connect interaction as controlled events. Readonly (viewer) by default; opt into\neditor gestures individually via `nodes-draggable`, `connectable`, `droppable`. Never mutates `nodes`\nor `edges` itself — every edit intent is an event the host applies, mirroring `lr-stepper`/\n`lr-table`'s controlled-component contract.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | `lr-flow-node` children to adopt by `node-id`; non-matching children are ignored with a console warning. |\n| `bottom-end` | Floating corner overlay (e.g. `lr-flow-minimap`). |\n| `bottom-start` | Floating corner overlay (e.g. `lr-flow-controls`). |\n| `top-end` | Floating corner overlay. |\n| `top-start` | Floating corner overlay (e.g. `lr-flow-run-overlay`). |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `arrowhead` | The shared directed-edge arrowhead marker. |\n| `background` | The dotted background grid. |\n| `base` | The root wrapper. |\n| `connection-line` | The in-progress connect-gesture path. |\n| `edge` | A single edge path. |\n| `edge-label` | An edge's drawn label. |\n| `edge-list` | A visually hidden list of every edge. |\n| `edges` | The edges SVG. |\n| `empty` | The `lr-empty` shown when `nodes` is empty. |\n| `live-region` | The current item/gesture announcement. |\n| `node` | A node's positioned wrapper. |\n| `stub` | A dangling-edge stub line. |\n| `viewport` | The focusable pan/zoom surface. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-flow-canvas-grid-size` (default: `var(--lr-size-0-5rem)`) — Dotted background spacing. The canvas also writes it inline as `${grid}px` from the `grid` property, which wins over the stylesheet fallback whenever a grid is in effect.\n- `--lr-flow-canvas-march-duration` (default: `var(--lr-transition-ambient)`) — Running-edge march animation duration.\n- `--lr-flow-canvas-node-current-outline-color` (default: `var(--lr-color-brand)`) — Outline color of the current (`aria-current`) node. Shadow Parts forbids an attribute selector after `::part()`, so the current node could otherwise only be restyled by hijacking the library-wide `--lr-color-brand` token.\n- `--lr-flow-canvas-node-connect-invalid-outline-color` (default: `var(--lr-color-danger)`) — Outline color of a node that is an invalid connect-gesture drop target. Same `::part()` attribute-selector restriction as `--lr-flow-canvas-node-current-outline-color` above.\n- `--lr-flow-canvas-node-connect-target-outline-color` (default: `var(--lr-color-brand)`) — Outline color of a node that is a valid connect-gesture drop target.\n- `--lr-flow-canvas-drop-active-outline-color` (default: `var(--lr-color-brand)`) — Outline color of the viewport while a palette item is dragged over it (`droppable`).\n- `--lr-flow-canvas-node-hover-outline-color` (default: `var(--lr-color-border-strong)`) — Outline color of a node's mouse-hover preview of its own `:focus-visible` ring. Unlike the four state-scoped colors above this one is `:hover`-gated rather than attribute-gated, so a `::part(node):hover` override would lose to this rule's own higher internal specificity rather than to the `::part()[attr]` restriction those four work around. Set to `transparent` to opt out.",
|
|
6786
6969
|
"attributes": [
|
|
6787
6970
|
{
|
|
6788
6971
|
"name": "aria-label",
|
|
@@ -7389,7 +7572,12 @@
|
|
|
7389
7572
|
},
|
|
7390
7573
|
{
|
|
7391
7574
|
"name": "layout",
|
|
7392
|
-
"description": "`'force'` (default) runs the existing d3-force simulation, untouched. `'layered'` computes a\ndeterministic Sugiyama-lite layout (`src/internal/layered-layout.ts`, a shared,\ndependency-free util suitable for any future layered-diagram consumer) instead -- no settle\nanimation, node drag disabled (dragging would fight a computed layout), `chargeStrength` a\ndocumented no-op, `linkDistance` retunes the layer gap. Switching at runtime repositions\nwithout a tween.\n\nType: `
|
|
7575
|
+
"description": "`'force'` (default) runs the existing d3-force simulation, untouched. `'layered'` computes a\ndeterministic Sugiyama-lite layout (`src/internal/layered-layout.ts`, a shared,\ndependency-free util suitable for any future layered-diagram consumer) instead -- no settle\nanimation, node drag disabled (dragging would fight a computed layout), `chargeStrength` a\ndocumented no-op, `linkDistance` retunes the layer gap. Switching at runtime repositions\nwithout a tween.\n\nType: `GraphLayout` \nDefault: `'force'`",
|
|
7576
|
+
"value": {
|
|
7577
|
+
"type": [
|
|
7578
|
+
"GraphLayout"
|
|
7579
|
+
]
|
|
7580
|
+
}
|
|
7393
7581
|
},
|
|
7394
7582
|
{
|
|
7395
7583
|
"name": "link-distance",
|
|
@@ -7429,7 +7617,12 @@
|
|
|
7429
7617
|
},
|
|
7430
7618
|
{
|
|
7431
7619
|
"name": "renderer",
|
|
7432
|
-
"description": "`'svg'` (default, unchanged) renders the existing per-node/per-link DOM. `'canvas'` swaps to\na single `<canvas part=\"canvas\">` -- the scale path (an honest ceiling for `'svg'`: dozens to\nlow hundreds of nodes; `'canvas'` targets roughly 5,000 nodes / 10,000 links). Feature-reduced\nby design: no `::part(node)`/`::part(link)` styling (pixels, not elements -- theme via\ncssprops), no SVG `<title>`, a drawn focus ring instead of a CSS one. All events/methods/\nprops otherwise behave identically across renderers. Runtime changes tear down and rebuild\nthe surface; positions survive via `prevById`/`lastPositionById`.\n\nType: `
|
|
7620
|
+
"description": "`'svg'` (default, unchanged) renders the existing per-node/per-link DOM. `'canvas'` swaps to\na single `<canvas part=\"canvas\">` -- the scale path (an honest ceiling for `'svg'`: dozens to\nlow hundreds of nodes; `'canvas'` targets roughly 5,000 nodes / 10,000 links). Feature-reduced\nby design: no `::part(node)`/`::part(link)` styling (pixels, not elements -- theme via\ncssprops), no SVG `<title>`, a drawn focus ring instead of a CSS one. All events/methods/\nprops otherwise behave identically across renderers. Runtime changes tear down and rebuild\nthe surface; positions survive via `prevById`/`lastPositionById`.\n\nType: `GraphRenderer` \nDefault: `'svg'`",
|
|
7621
|
+
"value": {
|
|
7622
|
+
"type": [
|
|
7623
|
+
"GraphRenderer"
|
|
7624
|
+
]
|
|
7625
|
+
}
|
|
7433
7626
|
},
|
|
7434
7627
|
{
|
|
7435
7628
|
"name": "seed",
|
|
@@ -7437,7 +7630,12 @@
|
|
|
7437
7630
|
},
|
|
7438
7631
|
{
|
|
7439
7632
|
"name": "selection-mode",
|
|
7440
|
-
"description": "`'none'` (default) preserves today's behavior exactly -- no `aria-pressed`/`data-selected`,\nno `lr-selection-change`. Controlled, mirroring `lr-heatmap.selectedCell`: the component\nnever mutates `selectedNodeIds`/`selectedLinkIds` itself, only emits intent; the host assigns\nthem back.\n\nType: `
|
|
7633
|
+
"description": "`'none'` (default) preserves today's behavior exactly -- no `aria-pressed`/`data-selected`,\nno `lr-selection-change`. Controlled, mirroring `lr-heatmap.selectedCell`: the component\nnever mutates `selectedNodeIds`/`selectedLinkIds` itself, only emits intent; the host assigns\nthem back.\n\nType: `GraphSelectionMode` \nDefault: `'none'`",
|
|
7634
|
+
"value": {
|
|
7635
|
+
"type": [
|
|
7636
|
+
"GraphSelectionMode"
|
|
7637
|
+
]
|
|
7638
|
+
}
|
|
7441
7639
|
},
|
|
7442
7640
|
{
|
|
7443
7641
|
"name": "show-edge-labels",
|
|
@@ -7677,11 +7875,21 @@
|
|
|
7677
7875
|
},
|
|
7678
7876
|
{
|
|
7679
7877
|
"name": "mode",
|
|
7680
|
-
"description": "Type: `
|
|
7878
|
+
"description": "Type: `HeatmapMode` \nDefault: `'matrix'`",
|
|
7879
|
+
"value": {
|
|
7880
|
+
"type": [
|
|
7881
|
+
"HeatmapMode"
|
|
7882
|
+
]
|
|
7883
|
+
}
|
|
7681
7884
|
},
|
|
7682
7885
|
{
|
|
7683
7886
|
"name": "scale",
|
|
7684
|
-
"description": "`\"linear\"` (default) maps values linearly to the color ramp in matrix\nmode, and buckets calendar-mode values via `quartileBucket()` — both\nunchanged from before this property governed calendar mode too.\n`\"sqrt\"` compresses via `sqrtStep()`'s square-root magnitude compression\ninstead, in *both* modes, so one heavy cell/day doesn't wash out the\nrest of a skewed dataset.\n\nType: `
|
|
7887
|
+
"description": "`\"linear\"` (default) maps values linearly to the color ramp in matrix\nmode, and buckets calendar-mode values via `quartileBucket()` — both\nunchanged from before this property governed calendar mode too.\n`\"sqrt\"` compresses via `sqrtStep()`'s square-root magnitude compression\ninstead, in *both* modes, so one heavy cell/day doesn't wash out the\nrest of a skewed dataset.\n\nType: `HeatmapScale` \nDefault: `'linear'`",
|
|
7888
|
+
"value": {
|
|
7889
|
+
"type": [
|
|
7890
|
+
"HeatmapScale"
|
|
7891
|
+
]
|
|
7892
|
+
}
|
|
7685
7893
|
},
|
|
7686
7894
|
{
|
|
7687
7895
|
"name": "value-label",
|
|
@@ -7976,7 +8184,7 @@
|
|
|
7976
8184
|
},
|
|
7977
8185
|
{
|
|
7978
8186
|
"name": "lr-icon-button",
|
|
7979
|
-
"description": "`<lr-icon-button>` — an accessible icon-only action button.\n\nSet `icon` for one of `<lr-icon>`'s named glyphs, or slot your own content instead. Slotted\ncontent is a **sibling** of the built-in glyph rather than being piped through `<lr-icon>`, so\nany complete element — an `<svg>`, an `<img>`, an `<lr-flag>` — renders at its own natural\naspect ratio instead of being forced into a 1:1 box. Bare SVG geometry (`<path>`, `<circle
|
|
8187
|
+
"description": "`<lr-icon-button>` — an accessible icon-only action button.\n\nSet `icon` for one of `<lr-icon>`'s named glyphs, or slot your own content instead. Slotted\ncontent is a **sibling** of the built-in glyph rather than being piped through `<lr-icon>`, so\nany complete element — an `<svg>`, an `<img>`, an `<lr-flag>` — renders at its own natural\naspect ratio instead of being forced into a 1:1 box. Bare SVG geometry (`<path>`, `<circle>`,\nand a handful of other raw primitives) with no enclosing `<svg>` of its own is detected and\ncloned into a real, internal SVG-namespaced element so it still paints — the same fallback\n`<lr-icon>`'s own custom-content slot uses, but narrowly scoped so a custom element (e.g. a\nslotted `<lr-flag>`) is never run through it.\n\nForm-associated (mirroring `<lr-button>`'s identical shape): discoverable through\n`form.elements`, and `type=\"submit\"`/`type=\"reset\"` are handled by this component itself via\nthe host's own `closest('form')` — a shadow-internal native `<button type=\"submit\">` does not\nparticipate in an ancestor light-DOM form's submission on its own, since form-submitter\nsemantics don't cross the shadow boundary.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Optional custom icon content, rendered beside (not inside) the `icon` glyph. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `button` | Native button. |\n| `fallback` | The internal SVG-namespaced clone target for slotted bare geometry. Only present in the DOM while at least one top-level slotted element needs it; a complete `<svg>`, `<img>`, or custom element never mounts it. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-icon-button-size` (default: `2.5rem`) — Minimum tappable inline and block size of the native button — a **floor**, not a fixed size: content larger than it grows the button and keeps its own aspect ratio, while a small glyph pads out to it. A library-wide token (declared on `:root` by `tokens.styles.ts`, and the shared minimum tappable size several other components size their icon controls against), so overriding it globally resizes all of them together.",
|
|
7980
8188
|
"attributes": [
|
|
7981
8189
|
{
|
|
7982
8190
|
"name": "aria-label",
|
|
@@ -8289,6 +8497,15 @@
|
|
|
8289
8497
|
]
|
|
8290
8498
|
}
|
|
8291
8499
|
},
|
|
8500
|
+
{
|
|
8501
|
+
"name": "disabled",
|
|
8502
|
+
"description": "Type: `boolean`",
|
|
8503
|
+
"value": {
|
|
8504
|
+
"type": [
|
|
8505
|
+
"boolean"
|
|
8506
|
+
]
|
|
8507
|
+
}
|
|
8508
|
+
},
|
|
8292
8509
|
{
|
|
8293
8510
|
"name": "enterkeyhint",
|
|
8294
8511
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -8351,6 +8568,15 @@
|
|
|
8351
8568
|
"name": "min",
|
|
8352
8569
|
"description": "`type=\"number\"` only — forwarded to the internal native `<input>`'s own `min`/`max`/`step`\nand consulted by that same native input's constraint validation (see `updateValidity()`).\nDefaults to `undefined` (no lower bound). The `min` attribute is parsed as a number here; the\ndeclared type also admits a string so a subclass bound to a non-numeric native input type can\nnarrow the attribute parsing to that type's own literal form (`<lr-time-input>`'s `09:00`)\nwithout redeclaring the whole property surface.\n\nType: `number | string | undefined`"
|
|
8353
8570
|
},
|
|
8571
|
+
{
|
|
8572
|
+
"name": "name",
|
|
8573
|
+
"description": "Type: `string`",
|
|
8574
|
+
"value": {
|
|
8575
|
+
"type": [
|
|
8576
|
+
"string"
|
|
8577
|
+
]
|
|
8578
|
+
}
|
|
8579
|
+
},
|
|
8354
8580
|
{
|
|
8355
8581
|
"name": "password-visible",
|
|
8356
8582
|
"description": "`type=\"password\"` only — whether the field currently reveals its raw text. Toggled by the\nbuilt-in `password-toggle` button; also settable by a consumer up front.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -8378,6 +8604,15 @@
|
|
|
8378
8604
|
]
|
|
8379
8605
|
}
|
|
8380
8606
|
},
|
|
8607
|
+
{
|
|
8608
|
+
"name": "required",
|
|
8609
|
+
"description": "Type: `boolean`",
|
|
8610
|
+
"value": {
|
|
8611
|
+
"type": [
|
|
8612
|
+
"boolean"
|
|
8613
|
+
]
|
|
8614
|
+
}
|
|
8615
|
+
},
|
|
8381
8616
|
{
|
|
8382
8617
|
"name": "size",
|
|
8383
8618
|
"description": "Visual size — same `2xs`–`xl` scale as `lr-select`/`lr-combobox`'s own `size`. `'2xs'` is\nthe tightest tier, for dense toolbar-embedded controls.\n\nType: `LyraInputSize` \nDefault: `'m'`",
|
|
@@ -8571,7 +8806,12 @@
|
|
|
8571
8806
|
},
|
|
8572
8807
|
{
|
|
8573
8808
|
"name": "highlight",
|
|
8574
|
-
"description": "What drives this component's own `dimmedNodeIds`/`dimmedLinkIds` forwarding, on top of the\nalways-active search-match dimming -- see the class doc's dedicated paragraph.\n\nType: `
|
|
8809
|
+
"description": "What drives this component's own `dimmedNodeIds`/`dimmedLinkIds` forwarding, on top of the\nalways-active search-match dimming -- see the class doc's dedicated paragraph.\n\nType: `KnowledgeGraphHighlight` \nDefault: `'selection'`",
|
|
8810
|
+
"value": {
|
|
8811
|
+
"type": [
|
|
8812
|
+
"KnowledgeGraphHighlight"
|
|
8813
|
+
]
|
|
8814
|
+
}
|
|
8575
8815
|
},
|
|
8576
8816
|
{
|
|
8577
8817
|
"name": "label",
|
|
@@ -8593,7 +8833,12 @@
|
|
|
8593
8833
|
},
|
|
8594
8834
|
{
|
|
8595
8835
|
"name": "renderer",
|
|
8596
|
-
"description": "Forwarded to `lr-graph.renderer`. `renderer=\"canvas\"` has no per-node DOM element, which\nnarrows how the node-detail popover anchors and disables its pan/zoom tracking -- see the\nclass doc's anchoring note.\n\nType: `
|
|
8836
|
+
"description": "Forwarded to `lr-graph.renderer`. `renderer=\"canvas\"` has no per-node DOM element, which\nnarrows how the node-detail popover anchors and disables its pan/zoom tracking -- see the\nclass doc's anchoring note.\n\nType: `GraphRenderer` \nDefault: `'svg'`",
|
|
8837
|
+
"value": {
|
|
8838
|
+
"type": [
|
|
8839
|
+
"GraphRenderer"
|
|
8840
|
+
]
|
|
8841
|
+
}
|
|
8597
8842
|
},
|
|
8598
8843
|
{
|
|
8599
8844
|
"name": "selected-node-id",
|
|
@@ -8636,6 +8881,15 @@
|
|
|
8636
8881
|
]
|
|
8637
8882
|
}
|
|
8638
8883
|
},
|
|
8884
|
+
{
|
|
8885
|
+
"name": "disabled",
|
|
8886
|
+
"description": "Type: `boolean`",
|
|
8887
|
+
"value": {
|
|
8888
|
+
"type": [
|
|
8889
|
+
"boolean"
|
|
8890
|
+
]
|
|
8891
|
+
}
|
|
8892
|
+
},
|
|
8639
8893
|
{
|
|
8640
8894
|
"name": "error-text",
|
|
8641
8895
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -8699,6 +8953,15 @@
|
|
|
8699
8953
|
]
|
|
8700
8954
|
}
|
|
8701
8955
|
},
|
|
8956
|
+
{
|
|
8957
|
+
"name": "name",
|
|
8958
|
+
"description": "Type: `string`",
|
|
8959
|
+
"value": {
|
|
8960
|
+
"type": [
|
|
8961
|
+
"string"
|
|
8962
|
+
]
|
|
8963
|
+
}
|
|
8964
|
+
},
|
|
8702
8965
|
{
|
|
8703
8966
|
"name": "readonly",
|
|
8704
8967
|
"description": "Type: `boolean`",
|
|
@@ -8708,6 +8971,15 @@
|
|
|
8708
8971
|
]
|
|
8709
8972
|
}
|
|
8710
8973
|
},
|
|
8974
|
+
{
|
|
8975
|
+
"name": "required",
|
|
8976
|
+
"description": "Type: `boolean`",
|
|
8977
|
+
"value": {
|
|
8978
|
+
"type": [
|
|
8979
|
+
"boolean"
|
|
8980
|
+
]
|
|
8981
|
+
}
|
|
8982
|
+
},
|
|
8711
8983
|
{
|
|
8712
8984
|
"name": "size",
|
|
8713
8985
|
"description": "Type: `LyraKnownDateSize` \nDefault: `'m'`",
|
|
@@ -9067,7 +9339,12 @@
|
|
|
9067
9339
|
},
|
|
9068
9340
|
{
|
|
9069
9341
|
"name": "scale",
|
|
9070
|
-
"description": "`type=\"bar\"` only (no effect on `type=\"line\"`): `'linear'` (default) maps a bar's value to\nheight via the standard `niceDomain`-based fraction, unchanged from before this property\nexisted. `'sqrt'` instead maps via `Math.sqrt(value / domainMax)` (mirroring `lr-heatmap`'s\nmatrix-mode `sqrt` scale), boosting smaller values relative to one dominant value so a skewed\ndataset's smaller bars don't get washed out. Gridlines/tick labels stay on the linear domain\neither way — only the bar marks' own height mapping changes.\n\nType: `
|
|
9342
|
+
"description": "`type=\"bar\"` only (no effect on `type=\"line\"`): `'linear'` (default) maps a bar's value to\nheight via the standard `niceDomain`-based fraction, unchanged from before this property\nexisted. `'sqrt'` instead maps via `Math.sqrt(value / domainMax)` (mirroring `lr-heatmap`'s\nmatrix-mode `sqrt` scale), boosting smaller values relative to one dominant value so a skewed\ndataset's smaller bars don't get washed out. Gridlines/tick labels stay on the linear domain\neither way — only the bar marks' own height mapping changes.\n\nType: `LyraLiteChartScale` \nDefault: `'linear'`",
|
|
9343
|
+
"value": {
|
|
9344
|
+
"type": [
|
|
9345
|
+
"LyraLiteChartScale"
|
|
9346
|
+
]
|
|
9347
|
+
}
|
|
9071
9348
|
},
|
|
9072
9349
|
{
|
|
9073
9350
|
"name": "skip-zero",
|
|
@@ -9149,6 +9426,111 @@
|
|
|
9149
9426
|
}
|
|
9150
9427
|
]
|
|
9151
9428
|
},
|
|
9429
|
+
{
|
|
9430
|
+
"name": "lr-locale-picker",
|
|
9431
|
+
"description": "`<lr-locale-picker>` — a closed-list locale switcher over the library's own locale registry.\n\nWith `locales` left unset (the default), the offered rows are exactly\n`getRegisteredLyraLocales()` — every locale with strings registered via `registerLyraLocale()`,\nplus `'en'` (always available through the library's built-in English fallback) — kept live via\n`subscribeLyraLocaleRegistry()` so a locale registered after mount (e.g. a lazily-loaded\ntranslation pack) appears without a manual refresh. Passing an explicit `locales` array\noverrides the auto-discovered list entirely: a curated subset, a custom order, custom labels,\nor a locale the host wants to offer before its strings are registered.\n\n`value` is the *committed* selection (form-submitted, drives `lr-change`) and starts `''`.\nWhile unset, the trigger displays `effectiveLocale` (the same ancestor-`lang`/registry\nresolution every other component already uses) as a live preview — but that preview is never a\ncommitment: `checkValidity()`/`required` are governed by the real `value`, which stays `''`\nuntil the host sets it or the user actually picks a row. This mirrors a native `<select>`\nrendering its first option's text without that being a committed selection.\n\nBuilt directly on the shared trigger-button/`aria-activedescendant` listbox technique\n`<lr-select>` uses (not composed from it) — a plain closed list, no filter/free-text mode; a\nlocale catalog is realistically dozens of rows, not thousands, so `<lr-combobox>`'s filterable\nmodel would be more surface than the job needs.\n\nSelecting a row sets `value` and emits a cancelable `lr-change` — if a listener doesn't call\n`event.preventDefault()`, the component applies the pick itself via `setLyraLocale()`. A host\nthat wants to intercept the pick (e.g. persist it to a profile first) calls\n`event.preventDefault()`; `value` still updates so the trigger reflects the pick, but the\npage-level locale is untouched until the host calls `setLyraLocale()` itself.\n\nDoes not touch `document.documentElement.lang`/`dir` — applying a picked locale's writing\ndirection to the page is left to the host, which already has everything it needs from\n`lr-change`'s `value` to do that itself.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | The error message. |\n| `expand-icon` | The dropdown indicator. |\n| `form-control` | The outer wrapper around label, trigger, listbox, error and hint. |\n| `form-control-label` | The `<label>` element (only rendered — and only contributes to the accessible name — once `label` is non-empty). |\n| `hint` | The hint message. |\n| `listbox` | The options popover. |\n| `option` | An option row. |\n| `option-flag` | The row's leading `<lr-flag>` (present only while `showFlags` is on). |\n| `option-label` | An option row's label wrapper (native name + tag). |\n| `option-tag` | An option row's secondary line — the raw BCP-47 tag. |\n| `trigger` | The trigger button (positioning anchor). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-locale-picker-trigger-padding` — Trigger padding shorthand, scaled by `size`.\n- `--lr-locale-picker-trigger-min-height` — Trigger block-size floor, scaled by `size`.\n- `--lr-locale-picker-trigger-height` — Exact trigger height. Unset by default (a floor only via `-trigger-min-height`); set a length to both floor and cap the trigger, e.g. to pixel-match a sibling field in the same toolbar row.\n- `--lr-locale-picker-font-size` — Trigger font size, scaled by `size`.\n- `--lr-locale-picker-expand-size` — Decorative expand-icon box size, scaled by `size`.\n- `--lr-locale-picker-option-active-bg` (default: `var(--lr-color-brand-quiet)`) — Background of a hovered or keyboard-active option row.",
|
|
9432
|
+
"attributes": [
|
|
9433
|
+
{
|
|
9434
|
+
"name": "disabled",
|
|
9435
|
+
"description": "Type: `boolean`",
|
|
9436
|
+
"value": {
|
|
9437
|
+
"type": [
|
|
9438
|
+
"boolean"
|
|
9439
|
+
]
|
|
9440
|
+
}
|
|
9441
|
+
},
|
|
9442
|
+
{
|
|
9443
|
+
"name": "error-text",
|
|
9444
|
+
"description": "Type: `string` \nDefault: `''`",
|
|
9445
|
+
"value": {
|
|
9446
|
+
"type": [
|
|
9447
|
+
"string"
|
|
9448
|
+
]
|
|
9449
|
+
}
|
|
9450
|
+
},
|
|
9451
|
+
{
|
|
9452
|
+
"name": "hint",
|
|
9453
|
+
"description": "Type: `string` \nDefault: `''`",
|
|
9454
|
+
"value": {
|
|
9455
|
+
"type": [
|
|
9456
|
+
"string"
|
|
9457
|
+
]
|
|
9458
|
+
}
|
|
9459
|
+
},
|
|
9460
|
+
{
|
|
9461
|
+
"name": "label",
|
|
9462
|
+
"description": "Type: `string` \nDefault: `''`",
|
|
9463
|
+
"value": {
|
|
9464
|
+
"type": [
|
|
9465
|
+
"string"
|
|
9466
|
+
]
|
|
9467
|
+
}
|
|
9468
|
+
},
|
|
9469
|
+
{
|
|
9470
|
+
"name": "locale",
|
|
9471
|
+
"description": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`",
|
|
9472
|
+
"value": {
|
|
9473
|
+
"type": [
|
|
9474
|
+
"string"
|
|
9475
|
+
]
|
|
9476
|
+
}
|
|
9477
|
+
},
|
|
9478
|
+
{
|
|
9479
|
+
"name": "name",
|
|
9480
|
+
"description": "Type: `string`",
|
|
9481
|
+
"value": {
|
|
9482
|
+
"type": [
|
|
9483
|
+
"string"
|
|
9484
|
+
]
|
|
9485
|
+
}
|
|
9486
|
+
},
|
|
9487
|
+
{
|
|
9488
|
+
"name": "open",
|
|
9489
|
+
"description": "Type: `boolean` \nDefault: `false`",
|
|
9490
|
+
"value": {
|
|
9491
|
+
"type": [
|
|
9492
|
+
"boolean"
|
|
9493
|
+
]
|
|
9494
|
+
}
|
|
9495
|
+
},
|
|
9496
|
+
{
|
|
9497
|
+
"name": "required",
|
|
9498
|
+
"description": "Type: `boolean`",
|
|
9499
|
+
"value": {
|
|
9500
|
+
"type": [
|
|
9501
|
+
"boolean"
|
|
9502
|
+
]
|
|
9503
|
+
}
|
|
9504
|
+
},
|
|
9505
|
+
{
|
|
9506
|
+
"name": "show-flags",
|
|
9507
|
+
"description": "Each row's leading `<lr-flag>`. The composition recipe this component supersedes\n(`lr-popover` + `lr-flag`) already pairs a locale switcher with flags by convention --\ndefaulting to `true` keeps that continuity; set `false` for text-only rows.\n\nType: `boolean` \nDefault: `true`",
|
|
9508
|
+
"value": {
|
|
9509
|
+
"type": [
|
|
9510
|
+
"boolean"
|
|
9511
|
+
]
|
|
9512
|
+
}
|
|
9513
|
+
},
|
|
9514
|
+
{
|
|
9515
|
+
"name": "size",
|
|
9516
|
+
"description": "Visual size — same `2xs`–`xl` scale as `lr-select`'s `size`.\n\nType: `LyraLocalePickerSize` \nDefault: `'m'`",
|
|
9517
|
+
"value": {
|
|
9518
|
+
"type": [
|
|
9519
|
+
"LyraLocalePickerSize"
|
|
9520
|
+
]
|
|
9521
|
+
}
|
|
9522
|
+
},
|
|
9523
|
+
{
|
|
9524
|
+
"name": "value",
|
|
9525
|
+
"description": "The current locale tag (empty string when nothing is committed).\n\nType: `string`",
|
|
9526
|
+
"value": {
|
|
9527
|
+
"type": [
|
|
9528
|
+
"string"
|
|
9529
|
+
]
|
|
9530
|
+
}
|
|
9531
|
+
}
|
|
9532
|
+
]
|
|
9533
|
+
},
|
|
9152
9534
|
{
|
|
9153
9535
|
"name": "lr-map",
|
|
9154
9536
|
"description": "`<lr-map>` — a maplibre-gl wrapper with a declarative legend, choropleth\nGeoJSON layer, markers, and additive `dataLayers` GeoJSON overlays\n(arbitrary shapes rendered as a source plus fill/line/circle layers,\nindependent of `choropleth`'s field/stops color-interpolation), plus a raw\n`map` escape hatch. Requires the optional peer dep `maplibre-gl`\n(consumers also import its CSS once).\n\nThe underlying `maplibregl.Map` — and the WebGL context it opens — isn't\nconstructed until this element is first visible in the viewport (tracked\nvia `IntersectionObserver`), even once the `maplibre-gl` peer dependency\nhas finished loading. Browsers hard-cap concurrent WebGL contexts per\npage, so a grid/dashboard of many `<lr-map>` instances only constructs\nthe ones actually on-screen instead of racing to exhaust that budget the\ninstant each one mounts. `map` stays `undefined` (and `lr-map-load`\ndoesn't fire) until construction actually happens.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The map wrapper. |\n| `container` | The maplibre container. |\n| `error` | `role=\"alert\"` message shown instead of `container` if the optional `maplibre-gl` peer dependency fails to load (e.g. not installed). ⚠️ The default `mapStyle` (when unset) uses OpenStreetMap's demo tile server, which is not suitable for production traffic — see the `DEFAULT_STYLE` doc comment above. Always pass an explicit `mapStyle` in production. |\n| `legend` | The map legend. |\n| `legend-swatch` | A legend color swatch. |",
|
|
@@ -9781,7 +10163,12 @@
|
|
|
9781
10163
|
},
|
|
9782
10164
|
{
|
|
9783
10165
|
"name": "value",
|
|
9784
|
-
"description": "Current rating. Host-writable (e.g. to reflect a previously-recorded rating back).\n\nType: `
|
|
10166
|
+
"description": "Current rating. Host-writable (e.g. to reflect a previously-recorded rating back).\n\nType: `MessageFeedbackValue` \nDefault: `null`",
|
|
10167
|
+
"value": {
|
|
10168
|
+
"type": [
|
|
10169
|
+
"MessageFeedbackValue"
|
|
10170
|
+
]
|
|
10171
|
+
}
|
|
9785
10172
|
}
|
|
9786
10173
|
]
|
|
9787
10174
|
},
|
|
@@ -10778,7 +11165,7 @@
|
|
|
10778
11165
|
},
|
|
10779
11166
|
{
|
|
10780
11167
|
"name": "lr-phone-input",
|
|
10781
|
-
"description": "`<lr-phone-input>` — a country-aware telephone field whose form value is\ncanonical E.164. National formatting and numbering-plan validation are\nsupplied through `adapter`; without one, already-international E.164 input\nremains useful and national input stays editable with `incomplete` validity.\n\nUser edits emit native-style `input` and `change` events. Event detail\nexposes both the canonical `value` and editable `inputValue`; programmatic\nproperty changes are silent. Phone-number text is deliberately LTR while\nthe form chrome and country selector follow the inherited direction. A host\n`aria-label` names the internal telephone input and wins over every derived\nor component-specific fallback.\n\nThe country selector keeps the real, fully accessible native `<select>`\n(full country names in its popup, native mobile pickers, type-ahead) but\nrenders it invisibly over a compact visual trigger — selected alpha-2 code\nplus a design-system chevron — so long localized country names never clip\nthe closed control and the calling code isn't shown twice. With `flags`\nset, the trigger also shows the selected country's `<lr-flag>`; actual flag\nartwork still comes from the optional `@aceshooting/lyra-flags` peer,\nregistered by the consumer via `components/media/flag/flag-peer.js`\nexactly as for a standalone `<lr-flag>` (without that registration the\ntrigger simply omits the image). Native `<option>`s cannot contain\nelements, so the open popup remains text-only by platform design.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `country-prefix` | Optional visual displayed before the country selector, such as a flag. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `calling-code` | The selected country's calling code. |\n| `country` | The country selector region (invisible native select over the visual trigger). |\n| `country-code` | The selected alpha-2 code (or placeholder text) inside the trigger. |\n| `country-prefix` | Optional country adornment slot wrapper. |\n| `country-select` | The native country selector, stretched invisibly over the trigger. |\n| `country-trigger` | The visible, decorative closed-state trigger. |\n| `error` | The error or validation message. |\n| `expand-icon` | The dropdown indicator inside the trigger. |\n| `flag` | The selected country's `<lr-flag>` inside the trigger (only with `flags`). |\n| `form-control` | The outer form-control wrapper. |\n| `form-control-label` | The visible label. |\n| `hint` | The hint message. |\n| `input` | The native telephone input. |\n| `input-wrapper` | The country selector and telephone input wrapper.
|
|
11168
|
+
"description": "`<lr-phone-input>` — a country-aware telephone field whose form value is\ncanonical E.164. National formatting and numbering-plan validation are\nsupplied through `adapter`; without one, already-international E.164 input\nremains useful and national input stays editable with `incomplete` validity.\n\nUser edits emit native-style `input` and `change` events. Event detail\nexposes both the canonical `value` and editable `inputValue`; programmatic\nproperty changes are silent. Phone-number text is deliberately LTR while\nthe form chrome and country selector follow the inherited direction. A host\n`aria-label` names the internal telephone input and wins over every derived\nor component-specific fallback.\n\nThe country selector keeps the real, fully accessible native `<select>`\n(full country names in its popup, native mobile pickers, type-ahead) but\nrenders it invisibly over a compact visual trigger — selected alpha-2 code\nplus a design-system chevron — so long localized country names never clip\nthe closed control and the calling code isn't shown twice. With `flags`\nset, the trigger also shows the selected country's `<lr-flag>`; actual flag\nartwork still comes from the optional `@aceshooting/lyra-flags` peer,\nregistered by the consumer via `components/media/flag/flag-peer.js`\nexactly as for a standalone `<lr-flag>` (without that registration the\ntrigger simply omits the image). Native `<option>`s cannot contain\nelements, so the open popup remains text-only by platform design.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `country-prefix` | Optional visual displayed before the country selector, such as a flag. |\n| `error` | Custom error content. |\n| `hint` | Custom hint content. |\n| `label` | Custom label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `calling-code` | The selected country's calling code. |\n| `country` | The country selector region (invisible native select over the visual trigger). |\n| `country-code` | The selected alpha-2 code (or placeholder text) inside the trigger. |\n| `country-prefix` | Optional country adornment slot wrapper. |\n| `country-select` | The native country selector, stretched invisibly over the trigger. |\n| `country-trigger` | The visible, decorative closed-state trigger. |\n| `error` | The error or validation message. |\n| `expand-icon` | The dropdown indicator inside the trigger. |\n| `flag` | The selected country's `<lr-flag>` inside the trigger (only with `flags`). |\n| `form-control` | The outer form-control wrapper. |\n| `form-control-label` | The visible label. |\n| `hint` | The hint message. |\n| `input` | The native telephone input. |\n| `input-wrapper` | The country selector and telephone input wrapper. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-phone-input-padding-block` — Input block-padding, scaled by `size`.\n- `--lr-phone-input-font-size` — Input/flag/country-code/calling-code font size, scaled by `size`.\n- `--lr-phone-input-control-min-height` — Input-wrapper block-size floor, scaled by `size`.\n- `--lr-phone-input-control-height` — Exact input-wrapper height. Unset by default, which leaves `--lr-phone-input-control-min-height` as a floor only; set it to a length to both floor and cap the row (e.g. to pixel-match a sibling field in the same toolbar row). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element.",
|
|
10782
11169
|
"attributes": [
|
|
10783
11170
|
{
|
|
10784
11171
|
"name": "aria-label",
|
|
@@ -10838,6 +11225,15 @@
|
|
|
10838
11225
|
]
|
|
10839
11226
|
}
|
|
10840
11227
|
},
|
|
11228
|
+
{
|
|
11229
|
+
"name": "disabled",
|
|
11230
|
+
"description": "Type: `boolean`",
|
|
11231
|
+
"value": {
|
|
11232
|
+
"type": [
|
|
11233
|
+
"boolean"
|
|
11234
|
+
]
|
|
11235
|
+
}
|
|
11236
|
+
},
|
|
10841
11237
|
{
|
|
10842
11238
|
"name": "enterkeyhint",
|
|
10843
11239
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -10914,6 +11310,15 @@
|
|
|
10914
11310
|
]
|
|
10915
11311
|
}
|
|
10916
11312
|
},
|
|
11313
|
+
{
|
|
11314
|
+
"name": "name",
|
|
11315
|
+
"description": "Type: `string`",
|
|
11316
|
+
"value": {
|
|
11317
|
+
"type": [
|
|
11318
|
+
"string"
|
|
11319
|
+
]
|
|
11320
|
+
}
|
|
11321
|
+
},
|
|
10917
11322
|
{
|
|
10918
11323
|
"name": "phone-label",
|
|
10919
11324
|
"description": "Accessible-name override for the telephone input.\n\nType: `string` \nDefault: `''`",
|
|
@@ -10932,6 +11337,24 @@
|
|
|
10932
11337
|
]
|
|
10933
11338
|
}
|
|
10934
11339
|
},
|
|
11340
|
+
{
|
|
11341
|
+
"name": "required",
|
|
11342
|
+
"description": "Type: `boolean`",
|
|
11343
|
+
"value": {
|
|
11344
|
+
"type": [
|
|
11345
|
+
"boolean"
|
|
11346
|
+
]
|
|
11347
|
+
}
|
|
11348
|
+
},
|
|
11349
|
+
{
|
|
11350
|
+
"name": "size",
|
|
11351
|
+
"description": "Visual size — same `2xs`–`xl` scale as `lr-input`'s own `size`.\n\nType: `LyraPhoneInputSize` \nDefault: `'m'`",
|
|
11352
|
+
"value": {
|
|
11353
|
+
"type": [
|
|
11354
|
+
"LyraPhoneInputSize"
|
|
11355
|
+
]
|
|
11356
|
+
}
|
|
11357
|
+
},
|
|
10935
11358
|
{
|
|
10936
11359
|
"name": "spellcheck",
|
|
10937
11360
|
"description": "Forwarded to the internal `<input>`'s own `spellcheck`. Defaults to `true`, matching the\nnative element's own default. Uses spellcheckConverter rather than Lit's default\npresence-based boolean converter so an explicit `spellcheck=\"false\"` attribute is honored; a\n`.spellcheck=${false}` property binding can still turn this off directly.\n\nType: `boolean` \nDefault: `true`",
|
|
@@ -11410,7 +11833,12 @@
|
|
|
11410
11833
|
},
|
|
11411
11834
|
{
|
|
11412
11835
|
"name": "popup-role",
|
|
11413
|
-
"description": "Semantic role used by the popup. Dropdown subclasses set this to `menu`.\n\nType: `
|
|
11836
|
+
"description": "Semantic role used by the popup. Dropdown subclasses set this to `menu`.\n\nType: `LyraPopupRole` \nDefault: `'dialog'`",
|
|
11837
|
+
"value": {
|
|
11838
|
+
"type": [
|
|
11839
|
+
"LyraPopupRole"
|
|
11840
|
+
]
|
|
11841
|
+
}
|
|
11414
11842
|
}
|
|
11415
11843
|
]
|
|
11416
11844
|
},
|
|
@@ -12224,6 +12652,67 @@
|
|
|
12224
12652
|
}
|
|
12225
12653
|
]
|
|
12226
12654
|
},
|
|
12655
|
+
{
|
|
12656
|
+
"name": "lr-reorder-item",
|
|
12657
|
+
"description": "`<lr-reorder-item>` — one row inside `<lr-reorder-list>`. Renders arbitrary slotted content plus\nmove-up/move-down buttons. This item alone doesn't know whether it's first or last in the list,\nso its boundary-disabled state (`atStart`/`atEnd`) and list-level cascade (`listDisabled`) are\nboth pushed down by the parent `<lr-reorder-list>` after every slot change or move — normally\nset internally, not by consumers.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Arbitrary row content (a label, a mini-form, anything). |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The row's root wrapper. |\n| `content` | Wrapper around the default slot. |\n| `move-down-button` | The move-down button. |\n| `move-up-button` | The move-up button. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-reorder-item-gap` (default: `var(--lr-space-xs)`) — Gap between the move buttons and content.",
|
|
12658
|
+
"attributes": [
|
|
12659
|
+
{
|
|
12660
|
+
"name": "disabled",
|
|
12661
|
+
"description": "Disables this row's own move-up/move-down buttons without removing it or its slotted content\nfrom the DOM. Does not gate the default slot's own content.\n\nType: `boolean` \nDefault: `false`",
|
|
12662
|
+
"value": {
|
|
12663
|
+
"type": [
|
|
12664
|
+
"boolean"
|
|
12665
|
+
]
|
|
12666
|
+
}
|
|
12667
|
+
},
|
|
12668
|
+
{
|
|
12669
|
+
"name": "locale",
|
|
12670
|
+
"description": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`",
|
|
12671
|
+
"value": {
|
|
12672
|
+
"type": [
|
|
12673
|
+
"string"
|
|
12674
|
+
]
|
|
12675
|
+
}
|
|
12676
|
+
},
|
|
12677
|
+
{
|
|
12678
|
+
"name": "value",
|
|
12679
|
+
"description": "Stable identifier included in the parent list's emitted `lr-reorder` order array. Falls back\nto this item's live DOM-position index (stringified) when unset — a consumer that cares about\nstable identity across moves should set this explicitly, since the fallback string changes as\nthe item's position changes.\n\nType: `string | undefined`"
|
|
12680
|
+
}
|
|
12681
|
+
]
|
|
12682
|
+
},
|
|
12683
|
+
{
|
|
12684
|
+
"name": "lr-reorder-list",
|
|
12685
|
+
"description": "`<lr-reorder-list>` — a generic vertical list of `<lr-reorder-item>` rows, reorderable via\nper-row move-up/move-down buttons (always available) or Ctrl/Cmd+ArrowUp/ArrowDown from focus\nanywhere inside a row — the same modifier convention `<lr-tree>`'s `reorderable` and\n`<lr-dashboard-grid>`'s `cells-draggable` already establish.\n\nUnlike `<lr-tree>`'s `reorderable` mode (a *controlled* request — `data` is host-owned and\nnothing moves until the host reassigns it), this list physically moves its own slotted\n`<lr-reorder-item>` light-DOM nodes itself. That is a deliberate difference, not an\ninconsistency: `<lr-tree>` re-derives its child elements from a `data` array prop on every\nrender, so a direct DOM move there would just be overwritten on the next render — it must stay\ncontrolled. This list has no such data-array prop; its children are plain author-authored\nslotted content with nothing to reconcile against, so DOM order genuinely is the source of\ntruth (the same principle `<lr-tree>` relies on for its own children). The `lr-reorder` event\nstill tells the host the resulting order, so it can persist it without hand-rolling its own\nsplice/resort logic.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | `<lr-reorder-item>` elements. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The list's root wrapper (`role=\"list\"`). |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-reorder-list-gap` (default: `var(--lr-space-2xs)`) — Gap between rows.",
|
|
12686
|
+
"attributes": [
|
|
12687
|
+
{
|
|
12688
|
+
"name": "disabled",
|
|
12689
|
+
"description": "Disables every item's move-up/move-down buttons and the Ctrl/Cmd+Arrow shortcut, without\nremoving any item from the DOM or mutating any item's own `disabled` attribute.\n\nType: `boolean` \nDefault: `false`",
|
|
12690
|
+
"value": {
|
|
12691
|
+
"type": [
|
|
12692
|
+
"boolean"
|
|
12693
|
+
]
|
|
12694
|
+
}
|
|
12695
|
+
},
|
|
12696
|
+
{
|
|
12697
|
+
"name": "label",
|
|
12698
|
+
"description": "Accessible name for the list, set as `aria-label` on the internal `role=\"list\"` element. A\nplain `aria-label` attribute on the host itself is honored as a fallback when this is left\nunset, matching `<lr-control-group>`. Native lists don't require an accessible name, so this\nhas no forced fallback string when both are left unset.\n\nType: `string` \nDefault: `''`",
|
|
12699
|
+
"value": {
|
|
12700
|
+
"type": [
|
|
12701
|
+
"string"
|
|
12702
|
+
]
|
|
12703
|
+
}
|
|
12704
|
+
},
|
|
12705
|
+
{
|
|
12706
|
+
"name": "locale",
|
|
12707
|
+
"description": "Optional locale override. Otherwise the nearest `locale`/`lang` ancestor is used.\n\nType: `string` \nDefault: `''`",
|
|
12708
|
+
"value": {
|
|
12709
|
+
"type": [
|
|
12710
|
+
"string"
|
|
12711
|
+
]
|
|
12712
|
+
}
|
|
12713
|
+
}
|
|
12714
|
+
]
|
|
12715
|
+
},
|
|
12227
12716
|
{
|
|
12228
12717
|
"name": "lr-resize-observer",
|
|
12229
12718
|
"description": "`<lr-resize-observer>` — observes the first-party or consumer-owned\nelements in its default slot and emits typed resize entries. The wrapper has\nno visual layout of its own (`display: contents`).\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Elements to observe. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The non-layout wrapper around the observed slot. |",
|
|
@@ -12429,7 +12918,12 @@
|
|
|
12429
12918
|
},
|
|
12430
12919
|
{
|
|
12431
12920
|
"name": "grouping",
|
|
12432
|
-
"description": "`'source'` buckets rows under a header per `source.id` (always rendered through the internal\n`<lr-virtual-list>`, regardless of `virtualize-at`); `'none'` (default) is a flat ranked list.\n\nType: `
|
|
12921
|
+
"description": "`'source'` buckets rows under a header per `source.id` (always rendered through the internal\n`<lr-virtual-list>`, regardless of `virtualize-at`); `'none'` (default) is a flat ranked list.\n\nType: `RetrievalResultsGrouping` \nDefault: `'none'`",
|
|
12922
|
+
"value": {
|
|
12923
|
+
"type": [
|
|
12924
|
+
"RetrievalResultsGrouping"
|
|
12925
|
+
]
|
|
12926
|
+
}
|
|
12433
12927
|
},
|
|
12434
12928
|
{
|
|
12435
12929
|
"name": "has-more",
|
|
@@ -12469,7 +12963,12 @@
|
|
|
12469
12963
|
},
|
|
12470
12964
|
{
|
|
12471
12965
|
"name": "presentation",
|
|
12472
|
-
"description": "`'expanded'` (default) shows each chunk's full `<lr-chunk-inspector>` row (score bar, text\npreview with its own expand toggle) plus any `metadata`; `'compact'` shows title + score bar\nonly, on both.\n\nType: `
|
|
12966
|
+
"description": "`'expanded'` (default) shows each chunk's full `<lr-chunk-inspector>` row (score bar, text\npreview with its own expand toggle) plus any `metadata`; `'compact'` shows title + score bar\nonly, on both.\n\nType: `RetrievalResultsPresentation` \nDefault: `'expanded'`",
|
|
12967
|
+
"value": {
|
|
12968
|
+
"type": [
|
|
12969
|
+
"RetrievalResultsPresentation"
|
|
12970
|
+
]
|
|
12971
|
+
}
|
|
12473
12972
|
},
|
|
12474
12973
|
{
|
|
12475
12974
|
"name": "selectable",
|
|
@@ -13013,7 +13512,7 @@
|
|
|
13013
13512
|
},
|
|
13014
13513
|
{
|
|
13015
13514
|
"name": "size",
|
|
13016
|
-
"description": "Visual size — same `
|
|
13515
|
+
"description": "Visual size — same `2xs`–`xl` scale as `lr-input`/`lr-combobox`/`lr-locale-picker`'s own `size`.\n\nType: `LyraSelectSize` \nDefault: `'m'`",
|
|
13017
13516
|
"value": {
|
|
13018
13517
|
"type": [
|
|
13019
13518
|
"LyraSelectSize"
|
|
@@ -13130,6 +13629,15 @@
|
|
|
13130
13629
|
"name": "lr-slider",
|
|
13131
13630
|
"description": "`<lr-slider>` — a numeric range control (e.g. an LLM \"temperature\"\nsetting), form-associated. Mirrors native `<input type=\"range\">`\nsemantics: `value` is the string form-submitted via `FormAssociated`,\n`valueAsNumber` is the ergonomic numeric accessor (mirroring the native\n`<input type=range>` IDL attribute of the same name) kept in sync with it\nin both directions — reads parse `value`, writes stringify back to it.\n\nUnlike the mixin's other consumers, an unset `value` is eagerly defaulted\n— on connect, and again after `form.reset()` — to the midpoint of\n`[min, max]` snapped to `step`, the same \"range sanitization algorithm\"\ndefault a native range input applies. A slider always represents *some*\nnumber, so `required` (inherited from `FormAssociated`) only has a window\nto block submission before that default lands, matching how `required`\nisn't a meaningful constraint on a native range input either.\n\nClicking anywhere on the track (not just the 16px thumb) jumps the thumb\nto that point and continues the same gesture as a drag, matching native\n`<input type=range>` click-to-seek.\n\nDeliberately no label/hint/error chrome -- `label` here is an accessible-name override, not\nvisible label text; a labeled-field consumer wraps this element in their own layout.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The row wrapping the track and the optional value readout. |\n| `fill` | The filled portion of the track from `min` up to the current value. |\n| `thumb` | The draggable handle (`role=\"slider\"`). |\n| `track` | The full-width background line. |\n| `value` | The visible numeric readout, rendered when `show-value` is true. |",
|
|
13132
13631
|
"attributes": [
|
|
13632
|
+
{
|
|
13633
|
+
"name": "disabled",
|
|
13634
|
+
"description": "Type: `boolean`",
|
|
13635
|
+
"value": {
|
|
13636
|
+
"type": [
|
|
13637
|
+
"boolean"
|
|
13638
|
+
]
|
|
13639
|
+
}
|
|
13640
|
+
},
|
|
13133
13641
|
{
|
|
13134
13642
|
"name": "label",
|
|
13135
13643
|
"description": "Accessible name for the slider, used when no visible label context\nexists around it (e.g. no wrapping `<label>` or adjacent heading). Set\nas `aria-label` on the interactive `role=\"slider\"` element. A plain\n`aria-label` attribute on the host itself is honored as a fallback when\nthis is left unset, matching `<lr-checkbox>`/`<lr-switch>`; with\nneither, the localized generic `sliderLabel` message applies so the\nfocusable thumb is never nameless (the same pattern as\n`<lr-input>`/`<lr-textarea>`'s built-in generic labels).\n\nType: `string` \nDefault: `''`",
|
|
@@ -13166,6 +13674,24 @@
|
|
|
13166
13674
|
]
|
|
13167
13675
|
}
|
|
13168
13676
|
},
|
|
13677
|
+
{
|
|
13678
|
+
"name": "name",
|
|
13679
|
+
"description": "Type: `string`",
|
|
13680
|
+
"value": {
|
|
13681
|
+
"type": [
|
|
13682
|
+
"string"
|
|
13683
|
+
]
|
|
13684
|
+
}
|
|
13685
|
+
},
|
|
13686
|
+
{
|
|
13687
|
+
"name": "required",
|
|
13688
|
+
"description": "Type: `boolean`",
|
|
13689
|
+
"value": {
|
|
13690
|
+
"type": [
|
|
13691
|
+
"boolean"
|
|
13692
|
+
]
|
|
13693
|
+
}
|
|
13694
|
+
},
|
|
13169
13695
|
{
|
|
13170
13696
|
"name": "show-value",
|
|
13171
13697
|
"description": "Whether to render the current numeric value as visible text next to the track. Defaults to\n`true`; uses `trueDefaultBooleanConverter` (like `<lr-agent-run>`'s `show-cancel`/\n`show-retry`) rather than Lit's default presence-based `type: Boolean` converter, so a plain\nHTML `show-value=\"false\"` content attribute actually turns it off, not just a\n`.showValue=${false}` property binding.\n\nType: `boolean` \nDefault: `true`",
|
|
@@ -14009,7 +14535,7 @@
|
|
|
14009
14535
|
},
|
|
14010
14536
|
{
|
|
14011
14537
|
"name": "lr-swatch-picker",
|
|
14012
|
-
"description": "`<lr-swatch-picker>` -- a single-select picker over a small, fixed set of color swatches with\nthe WAI-ARIA APG `radiogroup` contract built in: `role=\"radiogroup\"`/`role=\"radio\"`, roving\ntabindex, automatic activation (click or arrow-key move both select immediately, like a native\nradio group), cyclic Arrow/Home/End navigation. Distinct from `<lr-color-picker>`'s freeform\nnative color input -- this picks exactly one of N designer-chosen named colors, the shape apps\notherwise hand-roll as a row of round accent-color buttons.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The `role=\"radiogroup\"` root. |\n| `swatch` | A single `role=\"radio\"` color swatch's interactive hit target; sized
|
|
14538
|
+
"description": "`<lr-swatch-picker>` -- a single-select picker over a small, fixed set of color swatches with\nthe WAI-ARIA APG `radiogroup` contract built in: `role=\"radiogroup\"`/`role=\"radio\"`, roving\ntabindex, automatic activation (click or arrow-key move both select immediately, like a native\nradio group), cyclic Arrow/Home/End navigation. Distinct from `<lr-color-picker>`'s freeform\nnative color input -- this picks exactly one of N designer-chosen named colors, the shape apps\notherwise hand-roll as a row of round accent-color buttons.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The `role=\"radiogroup\"` root. |\n| `swatch` | A single `role=\"radio\"` color swatch's interactive hit target; sized via `--lr-swatch-picker-hit-size` (defaults to `--lr-size-2-5rem`, swapped per `size` tier and floored at 24px), independent of the smaller visible fill/icon rendered inside it. The selected one is `[part='swatch'][aria-checked='true']`. |\n| `swatch-fill` | The compact filled circle rendered when the option has no custom `icon`. |\n| `swatch-icon` | Optional custom shape supplied by the option's `icon` field; when present it replaces `swatch-fill` and the swatch renders unfilled/unbordered behind it. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-swatch-picker-selected-color` (default: `var(--lr-color-brand)`) — Ring color drawn around the selected swatch, themeable independently of the focus ring and every other ring color.\n- `--lr-swatch-picker-selected-blur` (default: `0`) — Blur radius of that same ring. 0 by default (a crisp ring); set a real length (e.g. 0.4rem) for a soft glow instead.\n- `--lr-swatch-picker-shine-duration` (default: `0s`) — Duration of a rhythmic brighten-and-settle \"shine\" on the selected swatch. `0s` (the default) is a no-op -- today's static look for every existing consumer. Set a real duration (e.g. 1.6s) for a pulsing shine; disabled outright under `prefers-reduced-motion: reduce`. Independent of `--lr-swatch-picker-selected-blur` (a separate `filter: brightness()` animation, not `box-shadow`), so the two compose freely, and works identically for a plain color circle and an icon swatch alike.\n- `--lr-swatch-picker-hit-size` (default: `var(--lr-size-2-5rem)`) — Hit-area size (both min-inline-size and min-block-size) for the swatch button, swapped per tier and floored at 24px.\n- `--lr-swatch-picker-fill-size` (default: `var(--lr-size-1-5rem)`) — Visible fill/icon diameter for the swatch, swapped per tier.",
|
|
14013
14539
|
"attributes": [
|
|
14014
14540
|
{
|
|
14015
14541
|
"name": "label",
|
|
@@ -14029,6 +14555,15 @@
|
|
|
14029
14555
|
]
|
|
14030
14556
|
}
|
|
14031
14557
|
},
|
|
14558
|
+
{
|
|
14559
|
+
"name": "size",
|
|
14560
|
+
"description": "Visual size — scales the swatch hit-area and fill diameter proportionally, hit-area\nfloored at 24px (WCAG 2.5.8); not pixel-matched to `lr-input`'s row-height scale.\n\nType: `LyraSwatchPickerSize` \nDefault: `'m'`",
|
|
14561
|
+
"value": {
|
|
14562
|
+
"type": [
|
|
14563
|
+
"LyraSwatchPickerSize"
|
|
14564
|
+
]
|
|
14565
|
+
}
|
|
14566
|
+
},
|
|
14032
14567
|
{
|
|
14033
14568
|
"name": "value",
|
|
14034
14569
|
"description": "The currently selected option's `value`, or `null` when nothing is selected.\n\nType: `string | null` \nDefault: `null`"
|
|
@@ -14320,7 +14855,12 @@
|
|
|
14320
14855
|
},
|
|
14321
14856
|
{
|
|
14322
14857
|
"name": "selection-mode",
|
|
14323
|
-
"description": "Type: `
|
|
14858
|
+
"description": "Type: `TableSelectionMode` \nDefault: `'none'`",
|
|
14859
|
+
"value": {
|
|
14860
|
+
"type": [
|
|
14861
|
+
"TableSelectionMode"
|
|
14862
|
+
]
|
|
14863
|
+
}
|
|
14324
14864
|
},
|
|
14325
14865
|
{
|
|
14326
14866
|
"name": "show-all-columns",
|
|
@@ -14649,6 +15189,15 @@
|
|
|
14649
15189
|
]
|
|
14650
15190
|
}
|
|
14651
15191
|
},
|
|
15192
|
+
{
|
|
15193
|
+
"name": "disabled",
|
|
15194
|
+
"description": "Type: `boolean`",
|
|
15195
|
+
"value": {
|
|
15196
|
+
"type": [
|
|
15197
|
+
"boolean"
|
|
15198
|
+
]
|
|
15199
|
+
}
|
|
15200
|
+
},
|
|
14652
15201
|
{
|
|
14653
15202
|
"name": "enterkeyhint",
|
|
14654
15203
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -14703,6 +15252,15 @@
|
|
|
14703
15252
|
]
|
|
14704
15253
|
}
|
|
14705
15254
|
},
|
|
15255
|
+
{
|
|
15256
|
+
"name": "name",
|
|
15257
|
+
"description": "Type: `string`",
|
|
15258
|
+
"value": {
|
|
15259
|
+
"type": [
|
|
15260
|
+
"string"
|
|
15261
|
+
]
|
|
15262
|
+
}
|
|
15263
|
+
},
|
|
14706
15264
|
{
|
|
14707
15265
|
"name": "placeholder",
|
|
14708
15266
|
"description": "Type: `string` \nDefault: `''`",
|
|
@@ -14712,6 +15270,15 @@
|
|
|
14712
15270
|
]
|
|
14713
15271
|
}
|
|
14714
15272
|
},
|
|
15273
|
+
{
|
|
15274
|
+
"name": "required",
|
|
15275
|
+
"description": "Type: `boolean`",
|
|
15276
|
+
"value": {
|
|
15277
|
+
"type": [
|
|
15278
|
+
"boolean"
|
|
15279
|
+
]
|
|
15280
|
+
}
|
|
15281
|
+
},
|
|
14715
15282
|
{
|
|
14716
15283
|
"name": "resize",
|
|
14717
15284
|
"description": "Native CSS `resize` behavior for the textarea, plus `'auto'`: a `ResizeObserver`-driven\ngrow-to-content mode with no manual drag handle (mirrors `wa-textarea`'s `resize=\"auto\"`).\n\nType: `TextareaResize` \nDefault: `'vertical'`",
|
|
@@ -14798,7 +15365,7 @@
|
|
|
14798
15365
|
},
|
|
14799
15366
|
{
|
|
14800
15367
|
"name": "lr-thread-list",
|
|
14801
|
-
"description": "`<lr-thread-list>` — the conversation sidebar: a grouped, searchable list of chat sessions with\npin/archive/delete/rename affordances. *Data mode* (non-empty `threads`, or empty `threads` with\nnothing slotted) renders every row as a `<lr-conversation-item>` inside an internal\n`<lr-virtual-list>` — virtualized by construction, scroll position and per-row state survive a\n`threads` replacement; zero rows renders the built-in empty state. *Slotted mode* (empty `threads`\n*and* real slotted content) renders host-supplied `<lr-conversation-item>`s from the default slot\nas-is: no grouping, virtualization, or row actions in that mode — those are data-mode-only by design\n(shadow DOM cannot inject group headers between slotted children).\n\nNo thread CRUD or persistence: every mutation (`lr-thread-pin`/`-archive`/`-delete`/`-rename`) is\na controlled event carrying the *requested* new state — the host mutates `threads`.\n\nData mode: a host needing content with no home in `lr-conversation-item`'s own\n`title`/`excerpt`/`meta`/`actions` surface sets `wrapRow` to wrap the already-built row. For\ncommon row composition, `renderLeading`, `renderMeta`, and `renderRowContent`
|
|
15368
|
+
"description": "`<lr-thread-list>` — the conversation sidebar: a grouped, searchable list of chat sessions with\npin/archive/delete/rename affordances. *Data mode* (non-empty `threads`, or empty `threads` with\nnothing slotted) renders every row as a `<lr-conversation-item>` inside an internal\n`<lr-virtual-list>` — virtualized by construction, scroll position and per-row state survive a\n`threads` replacement; zero rows renders the built-in empty state. *Slotted mode* (empty `threads`\n*and* real slotted content) renders host-supplied `<lr-conversation-item>`s from the default slot\nas-is: no grouping, virtualization, or row actions in that mode — those are data-mode-only by design\n(shadow DOM cannot inject group headers between slotted children).\n\nNo thread CRUD or persistence: every mutation (`lr-thread-pin`/`-archive`/`-delete`/`-rename`) is\na controlled event carrying the *requested* new state — the host mutates `threads`.\n\nData mode: a host needing content with no home in `lr-conversation-item`'s own\n`title`/`excerpt`/`meta`/`actions` surface sets `wrapRow` to wrap the already-built row. For\ncommon row composition, `renderLeading`, `renderExcerpt`, `renderMeta`, and `renderRowContent`\nprovide focused virtualized render hooks -- `renderExcerpt` renders into the row item's own\n`excerpt` slot (winning over the plain-string `excerpt` property) for rich per-row content such\nas a highlighted search snippet. A host needing a fully custom\n`actions` surface itself — beyond `rowActions`'s closed `pin | archive | delete` set, e.g. a\n`<lr-menu>` with Rename/Delete — sets `renderActions` instead; its content is appended after any\nbuilt-in `rowActions` output in the same slot, and `wrapRow` continues to compose around the result.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| (default) | Slotted mode only: host-supplied `lr-conversation-item`s, rendered in order. Each top-level assigned element that doesn't already carry an explicit `role` is given `role=\"listitem\"`, since `[part=\"list\"]` is `role=\"list\"` in this mode and `lr-conversation-item` deliberately doesn't self-apply that role (see its own class doc). |\n| `empty` | Replaces the built-in empty state. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The root. |\n| `empty` | The empty/no-matches state. |\n| `group-header` | A date/custom group header in data mode. |\n| `group-icon` | The decorative expand/collapse glyph. |\n| `group-label` | The group label inside `group-toggle`. |\n| `group-sticky` | `sticky-groups` only: the pinned copy of the current group's header, exported from the internal `lr-virtual-list`'s sticky layer. It wraps a full copy of the `group-header`/`group-toggle`/`group-label`/`group-icon` markup (which therefore styles both the real header row and the pinned copy), and carries `aria-hidden` — style it for the pinned band itself, e.g. a shadow or a border under the band. |\n| `group-toggle` | The controlled group expand/collapse button. |\n| `list` | The list region. |\n| `pin-glyph` | The small pin indicator shown in a pinned row's `meta` slot (data mode). |\n| `row` | Exported from the internal `lr-virtual-list`'s `row` part (data mode). |\n| `row-action` | A built-in pin/archive/delete icon button (data mode, when `rowActions` includes it). |\n| `row-actions` | The wrapper around built-in and `renderActions` output. |\n| `row-content` | The wrapper around `renderRowContent` output. |\n| `row-excerpt` | The wrapper around `renderExcerpt` output, slotted into the row item's own `excerpt` slot. |\n| `row-item-actions` | Data mode: the row item's `actions` wrapper. |\n| `row-item-base` | Data mode: the row `<lr-conversation-item>`'s own `base` part — the box whose padding sets row height. `row-item-*` parts are the item's *internals*; the `row-*` parts above wrap this component's own callback output and are a different surface. Styling row density here replaces the older `::part(row) { --lr-theme-*: … }` workaround, which retheme'd the whole row subtree (`renderActions` popups included). |\n| `row-item-content` | Data mode: the row item's title/excerpt content column. |\n| `row-item-excerpt` | Data mode: the row item's excerpt line. |\n| `row-item-leading` | Data mode: the row item's `leading` wrapper. |\n| `row-item-meta` | Data mode: the row item's `meta` wrapper. |\n| `row-item-option` | Data mode: the row item's selectable `option` region. |\n| `row-item-rename-button` | Data mode: the row item's pencil/rename affordance. |\n| `row-item-timestamp` | Data mode: the row item's `<time>` element. |\n| `row-item-title` | Data mode: the row item's title text. |\n| `row-item-title-input` | Data mode: the row item's in-place rename `<input>`. |\n| `row-leading` | The wrapper around `renderLeading` output. |\n| `row-meta` | A wrapper around built-in or `renderMeta` metadata. |\n| `row-wrapper` | The wrapper around `wrapRow` output (data mode, only when `wrapRow` is set). Row-only: group headers are never passed through `wrapRow`, so they never carry it. |\n| `search` | The search field wrapper. |\n| `search-input` | The `<input type=\"search\">`. |\n| `viewport` | The real scroll container, exported from the internal `lr-virtual-list`. It fills this component's height with no consumer CSS (and falls back to `lr-virtual-list`'s own 24rem `--lr-virtual-list-height` default when the container has no resolvable height). |",
|
|
14802
15369
|
"attributes": [
|
|
14803
15370
|
{
|
|
14804
15371
|
"name": "active-id",
|
|
@@ -14829,7 +15396,12 @@
|
|
|
14829
15396
|
},
|
|
14830
15397
|
{
|
|
14831
15398
|
"name": "grouping",
|
|
14832
|
-
"description": "Data mode: bucket rows under localized date headers, use `groupBy` with `'custom'`, or use\n`'none'` for a flat list in host order.\n\nType: `
|
|
15399
|
+
"description": "Data mode: bucket rows under localized date headers, use `groupBy` with `'custom'`, or use\n`'none'` for a flat list in host order.\n\nType: `ThreadListGrouping` \nDefault: `'date'`",
|
|
15400
|
+
"value": {
|
|
15401
|
+
"type": [
|
|
15402
|
+
"ThreadListGrouping"
|
|
15403
|
+
]
|
|
15404
|
+
}
|
|
14833
15405
|
},
|
|
14834
15406
|
{
|
|
14835
15407
|
"name": "label",
|
|
@@ -15046,7 +15618,7 @@
|
|
|
15046
15618
|
},
|
|
15047
15619
|
{
|
|
15048
15620
|
"name": "lr-time-range",
|
|
15049
|
-
"description": "`<lr-time-range>` — a two-handle brush/scrubber over a numeric domain.\nCallers map their own time axis to `[min, max]`; no date logic lives here\n(matches the no-date-library constraint used elsewhere in this library).\n\nOptionally paired with a row of discrete presets (`presets`) — e.g. \"Last\n7 days\" / \"Last 30 days\" — rendered above the track; picking one is just a\nshortcut that sets both handles at once, the continuous brush underneath\nis unaffected and both interaction modes coexist.\n\nForm-associated only for the `<fieldset disabled>` cascade, not for a\nsubmitted value: it attaches `ElementInternals` (like `<lr-combobox>`'s\nminimal pattern, rather than the single-string-value `FormAssociated`\nmixin, which doesn't fit a two-handle range) purely so an ancestor\n`<fieldset disabled>` disables both handles and every preset button\nthrough `effectiveDisabled`, the same way it would a native `<input>`,\nwithout touching the consumer-facing `disabled` property/attribute itself.\nUnlike `<lr-combobox>`, it never calls `internals.setFormValue()` and\nhas no `name` — the selected range is not included in the owning form's\n`FormData` on submit; read `start`/`end` directly (e.g. from `lr-change`)\ninstead of relying on native form submission.\n\nDeliberately no label/hint/error chrome -- `startLabel`/`endLabel` here are per-handle\naccessible-name overrides, not visible label text, the same carve-out `<lr-slider>` states for\nits own single-handle `label`; a labeled-field consumer wraps this element in their own layout.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The time-range wrapper. |\n| `handle-end` | The end handle. |\n| `handle-start` | The start handle. |\n| `preset-button` | A preset button. |\n| `presets` | The preset controls wrapper. |\n| `range` | The selected range. |\n| `track` | The complete range track. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-time-range-preset-active-bg` (default: `var(--lr-color-brand)`) — Background of the active preset button (`[data-active]`, i.e. the preset whose range matches the current value). Declared as an inline `var()` fallback (never on `:host`), so setting it on the element or an ancestor recolors only the active preset without hijacking the library-wide `--lr-color-brand` token.\n- `--lr-time-range-preset-active-border-color` (default: `var(--lr-color-brand)`) — Border color of the active preset button.\n- `--lr-time-range-preset-active-color` (default: `var(--lr-color-on-brand)`) — Text color of the active preset button.",
|
|
15621
|
+
"description": "`<lr-time-range>` — a two-handle brush/scrubber over a numeric domain.\nCallers map their own time axis to `[min, max]`; no date logic lives here\n(matches the no-date-library constraint used elsewhere in this library).\n\nOptionally paired with a row of discrete presets (`presets`) — e.g. \"Last\n7 days\" / \"Last 30 days\" — rendered above the track; picking one is just a\nshortcut that sets both handles at once, the continuous brush underneath\nis unaffected and both interaction modes coexist.\n\nForm-associated only for the `<fieldset disabled>` cascade, not for a\nsubmitted value: it attaches `ElementInternals` (like `<lr-combobox>`'s\nminimal pattern, rather than the single-string-value `FormAssociated`\nmixin, which doesn't fit a two-handle range) purely so an ancestor\n`<fieldset disabled>` disables both handles and every preset button\nthrough `effectiveDisabled`, the same way it would a native `<input>`,\nwithout touching the consumer-facing `disabled` property/attribute itself.\nUnlike `<lr-combobox>`, it never calls `internals.setFormValue()` and\nhas no `name` — the selected range is not included in the owning form's\n`FormData` on submit; read `start`/`end` directly (e.g. from `lr-change`)\ninstead of relying on native form submission.\n\nDeliberately no label/hint/error chrome -- `startLabel`/`endLabel` here are per-handle\naccessible-name overrides, not visible label text, the same carve-out `<lr-slider>` states for\nits own single-handle `label`; a labeled-field consumer wraps this element in their own layout.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The time-range wrapper. |\n| `handle-end` | The end handle. |\n| `handle-start` | The start handle. |\n| `preset-button` | A preset button. |\n| `presets` | The preset controls wrapper. |\n| `range` | The selected range. |\n| `track` | The complete range track. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-time-range-preset-active-bg` (default: `var(--lr-color-brand)`) — Background of the active preset button (`[data-active]`, i.e. the preset whose range matches the current value). Declared as an inline `var()` fallback (never on `:host`), so setting it on the element or an ancestor recolors only the active preset without hijacking the library-wide `--lr-color-brand` token.\n- `--lr-time-range-preset-active-border-color` (default: `var(--lr-color-brand)`) — Border color of the active preset button.\n- `--lr-time-range-preset-active-color` (default: `var(--lr-color-on-brand)`) — Text color of the active preset button.\n- `--lr-time-range-size-scale` (default: `1`) — Unitless multiplier applied proportionally to the handle, track, and preset-button dimensions based on the current `size` tier; the drag hit-area is floored at 24px (WCAG 2.5.8).",
|
|
15050
15622
|
"attributes": [
|
|
15051
15623
|
{
|
|
15052
15624
|
"name": "disabled",
|
|
@@ -15102,6 +15674,15 @@
|
|
|
15102
15674
|
]
|
|
15103
15675
|
}
|
|
15104
15676
|
},
|
|
15677
|
+
{
|
|
15678
|
+
"name": "size",
|
|
15679
|
+
"description": "Visual size — proportionally scales the handle, track, and preset buttons via a single\nmultiplier; the drag hit-area never shrinks below 24px (WCAG 2.5.8). Not pixel-matched to\n`lr-input`'s row-height scale -- this component's own dimensions aren't on that ladder.\n\nType: `LyraTimeRangeSize` \nDefault: `'m'`",
|
|
15680
|
+
"value": {
|
|
15681
|
+
"type": [
|
|
15682
|
+
"LyraTimeRangeSize"
|
|
15683
|
+
]
|
|
15684
|
+
}
|
|
15685
|
+
},
|
|
15105
15686
|
{
|
|
15106
15687
|
"name": "start",
|
|
15107
15688
|
"description": "Type: `number` \nDefault: `0`",
|
|
@@ -15283,7 +15864,7 @@
|
|
|
15283
15864
|
},
|
|
15284
15865
|
{
|
|
15285
15866
|
"name": "lr-token-input",
|
|
15286
|
-
"description": "`<lr-token-input>` — an editable, form-associated list of removable tokens.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Validation message. |\n| `hint` | Supporting text. |\n| `label` | Visible label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | Validation message. |\n| `form-control` | Outer control wrapper. |\n| `form-control-label` | Label. |\n| `hint` | Supporting text. |\n| `input` | Native text input. |\n| `input-wrapper` | Token and input row. |\n| `remove` | Token remove button. |\n| `token` | Individual token. |\n| `token-editor` | The inline text field replacing a token's text while it is being edited. Rendered only while `editable` is set and that token is open for editing. |\n| `token-label` | The token's text, as the roving-focus edit trigger. Rendered only while `editable` is set. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-token-input-input-inline-size` (default: `var(--lr-size-8rem)`) — `flex-basis` of the native text input within the token row.\n- `--lr-token-input-min-input-inline-size` (default: `var(--lr-size-4rem)`) — Inline-size floor of the native text input, so it stays usable once tokens wrap.\n- `--lr-token-input-editor-inline-size` (default: `var(--lr-size-6rem)`) — Inline size of the inline token editor opened by `editable
|
|
15867
|
+
"description": "`<lr-token-input>` — an editable, form-associated list of removable tokens.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `error` | Validation message. |\n| `hint` | Supporting text. |\n| `label` | Visible label content. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `error` | Validation message. |\n| `form-control` | Outer control wrapper. |\n| `form-control-label` | Label. |\n| `hint` | Supporting text. |\n| `input` | Native text input. |\n| `input-wrapper` | Token and input row. |\n| `remove` | Token remove button. |\n| `token` | Individual token. |\n| `token-editor` | The inline text field replacing a token's text while it is being edited. Rendered only while `editable` is set and that token is open for editing. |\n| `token-label` | The token's text, as the roving-focus edit trigger. Rendered only while `editable` is set. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-token-input-input-inline-size` (default: `var(--lr-size-8rem)`) — `flex-basis` of the native text input within the token row.\n- `--lr-token-input-min-input-inline-size` (default: `var(--lr-size-4rem)`) — Inline-size floor of the native text input, so it stays usable once tokens wrap.\n- `--lr-token-input-editor-inline-size` (default: `var(--lr-size-6rem)`) — Inline size of the inline token editor opened by `editable`.\n- `--lr-token-input-padding` — Input-wrapper padding, scaled by `size`.\n- `--lr-token-input-font-size` — Input-wrapper/token font size, scaled by `size`.\n- `--lr-token-input-control-min-height` — Input-wrapper block-size floor, scaled by `size`.\n- `--lr-token-input-control-height` — Exact input-wrapper height. Unset by default, which leaves `--lr-token-input-control-min-height` as a floor only; set it to a length to both floor and cap the row (e.g. to pixel-match a sibling field in the same toolbar row). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element.",
|
|
15287
15868
|
"attributes": [
|
|
15288
15869
|
{
|
|
15289
15870
|
"name": "allow-duplicates",
|
|
@@ -15387,12 +15968,21 @@
|
|
|
15387
15968
|
"boolean"
|
|
15388
15969
|
]
|
|
15389
15970
|
}
|
|
15971
|
+
},
|
|
15972
|
+
{
|
|
15973
|
+
"name": "size",
|
|
15974
|
+
"description": "Visual size — same `2xs`–`xl` scale as `lr-input`'s own `size`.\n\nType: `LyraTokenInputSize` \nDefault: `'m'`",
|
|
15975
|
+
"value": {
|
|
15976
|
+
"type": [
|
|
15977
|
+
"LyraTokenInputSize"
|
|
15978
|
+
]
|
|
15979
|
+
}
|
|
15390
15980
|
}
|
|
15391
15981
|
]
|
|
15392
15982
|
},
|
|
15393
15983
|
{
|
|
15394
15984
|
"name": "lr-tool-approval-dialog",
|
|
15395
|
-
"description": "`<lr-tool-approval-dialog>` — a human-in-the-loop gate: presents one\nproposed tool/function call (`toolName` + `args`) and blocks an agent from\nexecuting it until a person explicitly approves or denies it, with an\noptional inline \"edit the arguments before approving\" step.\n\nThis renders its own dialog panel rather than nesting a `<lr-dialog>` in\nits shadow template. Shared overlay infrastructure coordinates stacking,\nfocus trapping, Escape/backdrop dismissal, and focus return with every\nother overlay in the same document.\n\nApprove/Deny/Edit are built-in chrome (not a `footer` slot a consumer must\nassemble) — this component's interaction shape is fixed enough (there is\nexactly one correct set of actions for \"approve this call\") that requiring\nevery consumer to re-build it would just be boilerplate. A `footer` slot is\nstill offered for *supplementary* content a consumer wants alongside those\nbuttons (e.g. a \"remember this choice for this tool\" checkbox) — its\ncontent renders to the start of the action row, before Deny/Edit/Approve.\n\nEditing: while `editable`, an Edit button swaps the read-only\n`<lr-json-viewer>` for a plain `<textarea>` pre-filled with\n`JSON.stringify(args, null, 2)`. Every keystroke is re-validated with\n`JSON.parse` — the Approve button is `disabled` for as long as the current\ntextarea content fails to parse, so a malformed edit can never be silently\napproved as either the broken text or a stale copy of the original args.\nThe editor defaults to `spellcheck=\"false\"`, `autocapitalize=\"off\"`,\n`autocorrect=\"off\"`, and `autocomplete=\"off\"` because its content is raw\nJSON, never prose. The corresponding native editing properties remain\nconfigurable for integrations that need different browser behavior.\nThe same button relabels to \"Cancel\" while editing; clicking it discards\nthe draft entirely and returns to the read-only view of the *original*\n`args` — there is no separate \"save\" step independent of Approve itself.\nBoth `editing` and any in-progress draft reset back to the read-only view\nevery time the dialog transitions from closed to open, so a reused\ninstance never leaks one proposal's half-finished edit into the next.\n`editable` flipping to `false` mid-edit does the same (see `willUpdate()`)\nand, if the textarea it unmounts still held focus, `updated()` refocuses\nDeny so the focus trap keeps engaging instead of silently letting focus\nfall through to the document.\n\nInitial focus deliberately does *not* land on Approve:\napproving a tool call is a consequential, potentially irreversible action,\nso a user who opens this dialog and reflexively presses Enter/Space before\nreading anything should deny, not approve. Deny gets the initial focus\ninstead — the same \"focus the safe action\" convention a native destructive-\nconfirmation dialog (delete, discard, etc.) typically follows for its own\nCancel button — rather than the inert dialog panel, which would need an\nextra Tab press before *any* action is reachable at all.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `footer` | Optional supplementary content (e.g. a \"remember this choice\" checkbox), rendered before the built-in Deny/Edit/Approve buttons. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `approve-button` | The built-in Approve button — `disabled` while an in-progress edit is invalid JSON. |\n| `args-editor` | The raw-JSON `<textarea>` shown while editing. |\n| `args-view` | The read-only `<lr-json-viewer>` shown while not editing. |\n| `backdrop` | The full-viewport scrim behind the panel. |\n| `body` | The wrapper around the args view/editor. |\n| `deny-button` | The built-in Deny button. |\n| `edit-button` | The built-in Edit/Cancel toggle button (only rendered while `editable`). |\n| `error` | The inline \"invalid JSON\" message, shown only while editing with unparseable content. |\n| `footer` | The action row wrapping the `footer` slot and the built-in buttons. |\n| `header` | The wrapper around the heading. |\n| `panel` | The dialog panel itself (`role=\"dialog\"` while open). |\n| `tool-name` | The `toolName` text within the heading. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tool-approval-dialog-overlay-color` (default: `var(--lr-color-overlay)`) — Backdrop scrim color.\n- `--lr-tool-approval-dialog-mono-font` (default: `var(--lr-font-mono)`) — Font family for the tool name and the raw-JSON args editor.",
|
|
15985
|
+
"description": "`<lr-tool-approval-dialog>` — a human-in-the-loop gate: presents one\nproposed tool/function call (`toolName` + `args`) and blocks an agent from\nexecuting it until a person explicitly approves or denies it, with an\noptional inline \"edit the arguments before approving\" step.\n\nThis renders its own dialog panel rather than nesting a `<lr-dialog>` in\nits shadow template. Shared overlay infrastructure coordinates stacking,\nfocus trapping, Escape/backdrop dismissal, and focus return with every\nother overlay in the same document.\n\nApprove/Deny/Edit are built-in chrome (not a `footer` slot a consumer must\nassemble) — this component's interaction shape is fixed enough (there is\nexactly one correct set of actions for \"approve this call\") that requiring\nevery consumer to re-build it would just be boilerplate. A `footer` slot is\nstill offered for *supplementary* content a consumer wants alongside those\nbuttons (e.g. a \"remember this choice for this tool\" checkbox) — its\ncontent renders to the start of the action row, before Deny/Edit/Approve.\n\nEditing: while `editable`, an Edit button swaps the read-only\n`<lr-json-viewer>` for a plain `<textarea>` pre-filled with\n`JSON.stringify(args, null, 2)`. Every keystroke is re-validated with\n`JSON.parse` — the Approve button is `disabled` for as long as the current\ntextarea content fails to parse, so a malformed edit can never be silently\napproved as either the broken text or a stale copy of the original args.\nThe editor defaults to `spellcheck=\"false\"`, `autocapitalize=\"off\"`,\n`autocorrect=\"off\"`, and `autocomplete=\"off\"` because its content is raw\nJSON, never prose. The corresponding native editing properties remain\nconfigurable for integrations that need different browser behavior.\nThe same button relabels to \"Cancel\" while editing; clicking it discards\nthe draft entirely and returns to the read-only view of the *original*\n`args` — there is no separate \"save\" step independent of Approve itself.\nBoth `editing` and any in-progress draft reset back to the read-only view\nevery time the dialog transitions from closed to open, so a reused\ninstance never leaks one proposal's half-finished edit into the next.\n`editable` flipping to `false` mid-edit does the same (see `willUpdate()`)\nand, if the textarea it unmounts still held focus, `updated()` refocuses\nDeny so the focus trap keeps engaging instead of silently letting focus\nfall through to the document.\n\nInitial focus deliberately does *not* land on Approve:\napproving a tool call is a consequential, potentially irreversible action,\nso a user who opens this dialog and reflexively presses Enter/Space before\nreading anything should deny, not approve. Deny gets the initial focus\ninstead — the same \"focus the safe action\" convention a native destructive-\nconfirmation dialog (delete, discard, etc.) typically follows for its own\nCancel button — rather than the inert dialog panel, which would need an\nextra Tab press before *any* action is reachable at all.\n\nDeny/Approve are `<lr-button>`s (`variant=\"neutral\"`/`\"brand\"`; this component has no `tone`\nproperty, unlike `<lr-confirm-bar>`), re-exporting `lr-button`'s own `base`/`label`/`start`/\n`end`/`spinner` parts under `{deny,approve}-button-{base,label,start,end,spinner}`. An\n`lr-approve`/`lr-deny` listener can call `preventDefault()` to keep the decision open while its\nown async work (e.g. a network call) is in flight: `pending` is set to `'approve'`/`'deny'`,\nshowing `loading` on that button and `disabled` on the other (and, for Approve, alongside the\nexisting invalid-JSON `disabled` gate), until the host finalizes by calling\n`close('approve'|'deny')` or bounces back by clearing `.pending` to `null`. While `pending` is\nset, Escape and backdrop dismissal are suppressed -- a decision in flight should not be\nabandonable out from under the host mid-request -- and `pending` itself resets to `null` every\ntime the dialog transitions from closed to open, mirroring `editing`'s own reset-on-reopen\ncontract.\n\n---\n\n**Slots**\n\n| Name | Description |\n| --- | --- |\n| `footer` | Optional supplementary content (e.g. a \"remember this choice\" checkbox), rendered before the built-in Deny/Edit/Approve buttons. |\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `approve-button` | The built-in Approve `<lr-button>` — `disabled` while an in-progress edit is invalid JSON (or while Deny is pending). |\n| `approve-button-base` | Forwarded from the internal Approve `<lr-button>`'s own `base` part. |\n| `approve-button-end` | Forwarded from the internal Approve `<lr-button>`'s own `end` part. |\n| `approve-button-label` | Forwarded from the internal Approve `<lr-button>`'s own `label` part. |\n| `approve-button-spinner` | Forwarded from the internal Approve `<lr-button>`'s own `spinner` part, present only while `pending` is `'approve'`. |\n| `approve-button-start` | Forwarded from the internal Approve `<lr-button>`'s own `start` part. |\n| `args-editor` | The raw-JSON `<textarea>` shown while editing. |\n| `args-view` | The read-only `<lr-json-viewer>` shown while not editing. |\n| `backdrop` | The full-viewport scrim behind the panel. |\n| `body` | The wrapper around the args view/editor. |\n| `deny-button` | The built-in Deny `<lr-button>`. |\n| `deny-button-base` | Forwarded from the internal Deny `<lr-button>`'s own `base` part. |\n| `deny-button-end` | Forwarded from the internal Deny `<lr-button>`'s own `end` part. |\n| `deny-button-label` | Forwarded from the internal Deny `<lr-button>`'s own `label` part. |\n| `deny-button-spinner` | Forwarded from the internal Deny `<lr-button>`'s own `spinner` part, present only while `pending` is `'deny'`. |\n| `deny-button-start` | Forwarded from the internal Deny `<lr-button>`'s own `start` part. |\n| `edit-button` | The built-in Edit/Cancel toggle button (only rendered while `editable`). |\n| `error` | The inline \"invalid JSON\" message, shown only while editing with unparseable content. |\n| `footer` | The action row wrapping the `footer` slot and the built-in buttons. |\n| `header` | The wrapper around the heading. |\n| `panel` | The dialog panel itself (`role=\"dialog\"` while open). |\n| `tool-name` | The `toolName` text within the heading. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-tool-approval-dialog-overlay-color` (default: `var(--lr-color-overlay)`) — Backdrop scrim color.\n- `--lr-tool-approval-dialog-mono-font` (default: `var(--lr-font-mono)`) — Font family for the tool name and the raw-JSON args editor.",
|
|
15396
15986
|
"attributes": [
|
|
15397
15987
|
{
|
|
15398
15988
|
"name": "aria-label",
|
|
@@ -15470,6 +16060,15 @@
|
|
|
15470
16060
|
]
|
|
15471
16061
|
}
|
|
15472
16062
|
},
|
|
16063
|
+
{
|
|
16064
|
+
"name": "pending",
|
|
16065
|
+
"description": "Which decision is awaiting host resolution, while an lr-approve/lr-deny listener has called\npreventDefault(). Host-writable: set back to null to bounce back to the undecided state (e.g.\non failure, so the user can retry), or call `close('approve'|'deny')` to finalize. Also reset\nto `null` every time the dialog transitions from closed to open, mirroring\n`editing`/`draftText`/`draftError`'s own reset-on-reopen contract below, so a reused instance\nnever leaks one proposal's stuck pending state into the next. While non-null, Escape/backdrop\ndismissal is suppressed (see `activateOverlay()`).\n\nType: `ToolApprovalDialogPending` \nDefault: `null`",
|
|
16066
|
+
"value": {
|
|
16067
|
+
"type": [
|
|
16068
|
+
"ToolApprovalDialogPending"
|
|
16069
|
+
]
|
|
16070
|
+
}
|
|
16071
|
+
},
|
|
15473
16072
|
{
|
|
15474
16073
|
"name": "spellcheck",
|
|
15475
16074
|
"description": "Native editing-assistance attributes forwarded to the raw-JSON textarea.\n\nType: `boolean` \nDefault: `false`",
|
|
@@ -16244,7 +16843,7 @@
|
|
|
16244
16843
|
},
|
|
16245
16844
|
{
|
|
16246
16845
|
"name": "lr-virtual-list",
|
|
16247
|
-
"description": "`<lr-virtual-list>` — a generic windowed/virtualized list host. Renders\nonly the items within the current viewport (plus `overscan` padding rows\non each side) as real DOM, regardless of how large `items` is, so a\nmulti-thousand-row chat history sidebar or long message thread stays cheap\nto scroll.\n\nContent is entirely caller-supplied: `renderItem(item, index)` returns\nwhatever `lit-html` value should represent that row (typically a\n`TemplateResult`), and `keyFunction(item, index)` gives it a stable\nidentity for `repeat()`'s DOM-reconciliation key, so scroll position and\nany per-row state (e.g. an `<audio>` element's playback position) survive\nan `items` mutation instead of every row remounting from scratch.\n\n**Windowing math.** Every row — in both `row-height` modes — is positioned\nby a `transform: translateY(offset)` computed from a single cumulative\n`offsets` array (`offsets[i]` = the pixel top of row `i`), rather than by\npage flow. This is what lets only a small DOM window exist while the\nscrollbar still reflects the *true* total content height:\n- **`row-height=\"auto\"` (default).** Each currently-rendered row is\n watched by a `ResizeObserver`; its real height lands in a per-key\n `Map`, and any row not yet measured contributes `DEFAULT_ROW_ESTIMATE_PX`\n to the offsets array until it has been. `offsets` is *not* the same\n thing as a page-count-based `padding-top`/`padding-bottom` spacer pair —\n that approach reflows every unmeasured row's position on every new\n measurement, which is exactly what per-row transform offsets avoid: only\n the rows *after* a newly-measured one shift, and even that shift is a\n cheap style recompute, not a layout-affecting padding change.\n- **Fixed numeric `row-height`.** No measurement needed — `offsets[i]` is\n just `i * rowHeightPx`, computed by the exact same cumulative-array code\n path (a dedicated \"single spacer + start-index\" special case was\n considered and would work too, but reusing one code path for both modes\n avoids maintaining two parallel rendering strategies for a difference\n that's otherwise just \"how is row *i*'s height looked up\").\n\nThe `offsets` array is rebuilt only when `items`, `row-height`, or\n`keyFunction` change, or a row's measured height changes -- not on every\nupdate, so a pure scroll-position tick (potentially every rAF while\nscrolling) only re-runs the cheap range/visibility math in\n`computeRange()`, never the `O(n)` offsets rebuild (which, in\n`row-height=\"auto\"` mode, also means a `keyFunction` call per item). For\nthe list sizes this component is meant for (a scrollable history sidebar,\nrealistically hundreds to a few thousand rows) that rebuild is a trivial\n`O(n)` arithmetic loop even when it does run; it is *not* the right\napproach for a hundred-thousand-row list without further work (e.g. a\nFenwick/segment tree for `O(log n)` offset queries+updates), which is out\nof scope here.\n\n**Accessibility.** The scroll container is `role=\"list\"` and each rendered\nrow is `role=\"listitem\"`, deliberately *not* `listbox`/`option` — this\ncomponent only provides windowing, not the roving-tabindex/\n`aria-activedescendant` keyboard-interaction contract ARIA requires\nalongside a real `listbox`. A consumer that wants full single-select\nlistbox semantics on top of this should compose that behavior itself (see\n`<lr-select>`'s pattern), the same way this component's `active-id`\nonly *scrolls* the matching row into view and marks it `aria-current` —\nit never claims to be a selection widget. `aria-setsize`/`aria-posinset`\nare computed from the row's real index in the full `items` array (not its\nposition among the currently-rendered DOM window), so a screen reader\nstill announces e.g. \"item 12 of 340\" correctly. `[part=\"base\"]` itself\ncarries `tabindex=\"0\"` — `renderItem`'s content is caller-supplied and not\nguaranteed to contain a focusable element, and a scrollable region with no\nfocusable content of its own is otherwise unreachable by keyboard (native\narrow/Page Up/Page Down scrolling included).\n\n**Grouping.** When supplied, `groups` renders a labeled group marker at the\ncorresponding `startIndex`. Group markers are positioned independently of\nthe row window, so they remain available when the first row in a group is\noutside the current overscanned range.\n\n**Sticky group headers.** `renderStickyGroup` adds a `[part=\"sticky-group\"]` overlay pinned to the\ntop of the scroll viewport, showing the `groups` entry the viewport is currently inside; as the\nnext group's header arrives it is pushed out by the overlap rather than swapped abruptly. Unset\n(the default) renders no overlay element at all, and the list renders exactly as it does without\nthis feature. Four properties of the overlay matter to a consumer:\n- It is a **visual copy** of content that already exists in the list, so it is `aria-hidden` and\n any ordinary focusable element inside it is forced to `tabindex=\"-1\"`: the real row keeps sole\n ownership of the heading semantics and of the tab order. (`inert` would express this more\n directly but would also block the pointer opt-in below, so it is deliberately not used; a\n focus-delegating custom element rendered into the overlay needs its own `tabindex=\"-1\"`.)\n- It is **`pointer-events: none` by default**; a consumer whose header content is interactive\n opts in with `lr-virtual-list::part(sticky-group) { pointer-events: auto; }`.\n- It is **never measured as a row.** It contributes nothing to `offsets`, so a group header that\n is also a real row is not counted twice in `row-height=\"auto\"` mode.\n- Its measured height becomes a `scroll-padding-block-start` on the scroll container, so both\n `active-id`/`scrollToIndex` and native keyboard scrolling stop *below* the band instead of\n parking the target row behind it. Scrolled above the first group the band shows nothing but\n stays mounted, so that height is known before the first jump rather than after it.\nA host that renders its own group headers as ordinary rows supplies `groups` purely as position\nanchors, with `label: ''` so no duplicate `[part=\"group\"]` marker renders.\n\n**Position queries.** `offsetForIndex(index)` and `indexAtOffset(px)` expose the windowing math\nitself: they translate between an item index and the pixel offset that row renders at, in the same\ncoordinate space as the scroll container's `scrollTop`. A host doing its own scroll-linked layout\n(a pinned group header, a scrollbar minimap, a \"jump to here\" affordance) needs those numbers and\nwould otherwise have to duplicate the offsets array.\n\n**Programmatic scrolling.** `scrollToIndex()` is the public counterpart to `active-id`'s automatic\nscroll-into-view -- used by `<lr-chat-viewport>`'s virtual mode and any other host that needs to\nscroll to a specific row without also changing which row is \"active.\"\n\n**`item-role=\"row\"` mode.** Additive to the default `'listitem'` mapping above: `[part=\"base\"]`\nbecomes `role=\"rowgroup\"`, `[part=\"spacer\"]` becomes `role=\"presentation\"`, and each row becomes\n`role=\"row\"` with `aria-rowindex` (the row's 1-based index plus `row-index-offset`) instead of\n`aria-setsize`/`aria-posinset`. For a consumer composing its own `role=\"table\"` wrapper and header\nrow around this component (see `<lr-dataset-viewer>`), where `row-index-offset=\"1\"` accounts for\nthat external header row occupying `aria-rowindex=\"1\"`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The scrollable container (`role=\"list\"`). |\n| `group` | A positioned group label. Not rendered for a `groups` entry whose `label` is the empty string (a position-anchor-only entry). |\n| `row` | One rendered row's absolutely-positioned wrapper (`role=\"listitem\"`); `renderItem`'s return value renders inside it. |\n| `spacer` | The full-content-height inner element that gives the container its true scrollable extent. |\n| `sticky-group` | The pinned copy of the current group, rendered only while `renderStickyGroup` is set (and showing nothing while the viewport is above the first group, where there is no group to pin). `aria-hidden` and `pointer-events: none` by default — style this part with `pointer-events: auto` to make copied interactive content clickable again. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-virtual-list-height` (default: `var(--lr-size-24rem)`) — The scroll viewport's height. A virtualized list needs a bounded scroll extent, so this ships a default rather than collapsing to zero when a caller does not size the host.",
|
|
16846
|
+
"description": "`<lr-virtual-list>` — a generic windowed/virtualized list host. Renders\nonly the items within the current viewport (plus `overscan` padding rows\non each side) as real DOM, regardless of how large `items` is, so a\nmulti-thousand-row chat history sidebar or long message thread stays cheap\nto scroll.\n\nContent is entirely caller-supplied: `renderItem(item, index)` returns\nwhatever `lit-html` value should represent that row (typically a\n`TemplateResult`), and `keyFunction(item, index)` gives it a stable\nidentity for `repeat()`'s DOM-reconciliation key, so scroll position and\nany per-row state (e.g. an `<audio>` element's playback position) survive\nan `items` mutation instead of every row remounting from scratch.\n\n**Windowing math.** Every row — in both `row-height` modes — is positioned\nby a `transform: translateY(offset)` computed from a single cumulative\n`offsets` array (`offsets[i]` = the pixel top of row `i`), rather than by\npage flow. This is what lets only a small DOM window exist while the\nscrollbar still reflects the *true* total content height:\n- **`row-height=\"auto\"` (default).** Each currently-rendered row is\n watched by a `ResizeObserver`; its real height lands in a per-key\n `Map`, and any row not yet measured contributes `DEFAULT_ROW_ESTIMATE_PX`\n to the offsets array until it has been. `offsets` is *not* the same\n thing as a page-count-based `padding-top`/`padding-bottom` spacer pair —\n that approach reflows every unmeasured row's position on every new\n measurement, which is exactly what per-row transform offsets avoid: only\n the rows *after* a newly-measured one shift, and even that shift is a\n cheap style recompute, not a layout-affecting padding change.\n- **Fixed numeric `row-height`.** No measurement needed — `offsets[i]` is\n just `i * rowHeightPx`, computed by the exact same cumulative-array code\n path (a dedicated \"single spacer + start-index\" special case was\n considered and would work too, but reusing one code path for both modes\n avoids maintaining two parallel rendering strategies for a difference\n that's otherwise just \"how is row *i*'s height looked up\").\n\nThe `offsets` array is rebuilt only when `items`, `row-height`, or\n`keyFunction` change, or a row's measured height changes -- not on every\nupdate, so a pure scroll-position tick (potentially every rAF while\nscrolling) only re-runs the cheap range/visibility math in\n`computeRange()`, never the `O(n)` offsets rebuild (which, in\n`row-height=\"auto\"` mode, also means a `keyFunction` call per item). For\nthe list sizes this component is meant for (a scrollable history sidebar,\nrealistically hundreds to a few thousand rows) that rebuild is a trivial\n`O(n)` arithmetic loop even when it does run; it is *not* the right\napproach for a hundred-thousand-row list without further work (e.g. a\nFenwick/segment tree for `O(log n)` offset queries+updates), which is out\nof scope here.\n\n**Accessibility.** The scroll container is `role=\"list\"` and each rendered\nrow is `role=\"listitem\"`, deliberately *not* `listbox`/`option` — this\ncomponent only provides windowing, not the roving-tabindex/\n`aria-activedescendant` keyboard-interaction contract ARIA requires\nalongside a real `listbox`. A consumer that wants full single-select\nlistbox semantics on top of this should compose that behavior itself (see\n`<lr-select>`'s pattern), the same way this component's `active-id`\nonly *scrolls* the matching row into view and marks it `aria-current` —\nit never claims to be a selection widget. `aria-setsize`/`aria-posinset`\nare computed from the row's real index in the full `items` array (not its\nposition among the currently-rendered DOM window), so a screen reader\nstill announces e.g. \"item 12 of 340\" correctly. `[part=\"base\"]` itself\ncarries `tabindex=\"0\"` — `renderItem`'s content is caller-supplied and not\nguaranteed to contain a focusable element, and a scrollable region with no\nfocusable content of its own is otherwise unreachable by keyboard (native\narrow/Page Up/Page Down scrolling included).\n\n**Grouping.** When supplied, `groups` renders a labeled group marker at the\ncorresponding `startIndex`. Group markers are positioned independently of\nthe row window, so they remain available when the first row in a group is\noutside the current overscanned range.\n\n**Sticky group headers.** `renderStickyGroup` adds a `[part=\"sticky-group\"]` overlay pinned to the\ntop of the scroll viewport, showing the `groups` entry the viewport is currently inside; as the\nnext group's header arrives it is pushed out by the overlap rather than swapped abruptly. Unset\n(the default) renders no overlay element at all, and the list renders exactly as it does without\nthis feature. Four properties of the overlay matter to a consumer:\n- It is a **visual copy** of content that already exists in the list, so it is `aria-hidden` and\n any ordinary focusable element inside it is forced to `tabindex=\"-1\"`: the real row keeps sole\n ownership of the heading semantics and of the tab order. (`inert` would express this more\n directly but would also block the pointer opt-in below, so it is deliberately not used; a\n focus-delegating custom element rendered into the overlay needs its own `tabindex=\"-1\"`.)\n- It is **`pointer-events: none` by default**; a consumer whose header content is interactive\n opts in with `lr-virtual-list::part(sticky-group) { pointer-events: auto; }`.\n- It is **never measured as a row.** It contributes nothing to `offsets`, so a group header that\n is also a real row is not counted twice in `row-height=\"auto\"` mode.\n- Its measured height becomes a `scroll-padding-block-start` on the scroll container, so both\n `active-id`/`scrollToIndex` and native keyboard scrolling stop *below* the band instead of\n parking the target row behind it. Scrolled above the first group the band shows nothing but\n stays mounted, so that height is known before the first jump rather than after it.\nA host that renders its own group headers as ordinary rows supplies `groups` purely as position\nanchors, with `label: ''` so no duplicate `[part=\"group\"]` marker renders.\n\n**Position queries.** `offsetForIndex(index)` and `indexAtOffset(px)` expose the windowing math\nitself: they translate between an item index and the pixel offset that row renders at, in the same\ncoordinate space as the scroll container's `scrollTop`. A host doing its own scroll-linked layout\n(a pinned group header, a scrollbar minimap, a \"jump to here\" affordance) needs those numbers and\nwould otherwise have to duplicate the offsets array.\n\n**Programmatic scrolling.** `scrollToIndex()` is the public counterpart to `active-id`'s automatic\nscroll-into-view -- used by `<lr-chat-viewport>`'s virtual mode and any other host that needs to\nscroll to a specific row without also changing which row is \"active.\"\n\n**`item-role=\"row\"` mode.** Additive to the default `'listitem'` mapping above: `[part=\"base\"]`\nbecomes `role=\"rowgroup\"`, `[part=\"spacer\"]` becomes `role=\"presentation\"`, and each row becomes\n`role=\"row\"` with `aria-rowindex` (the row's 1-based index plus `row-index-offset`) instead of\n`aria-setsize`/`aria-posinset`. For a consumer composing its own `role=\"table\"` wrapper and header\nrow around this component (see `<lr-dataset-viewer>`), where `row-index-offset=\"1\"` accounts for\nthat external header row occupying `aria-rowindex=\"1\"`.\n\n---\n\n**CSS Shadow Parts**\n\n| Name | Description |\n| --- | --- |\n| `base` | The scrollable container (`role=\"list\"`). |\n| `group` | A positioned group label. Not rendered for a `groups` entry whose `label` is the empty string (a position-anchor-only entry). |\n| `row` | One rendered row's absolutely-positioned wrapper (`role=\"listitem\"`); `renderItem`'s return value renders inside it. |\n| `spacer` | The full-content-height inner element that gives the container its true scrollable extent. |\n| `sticky-group` | The pinned copy of the current group, rendered only while `renderStickyGroup` is set (and showing nothing while the viewport is above the first group, where there is no group to pin). `aria-hidden` and `pointer-events: none` by default — style this part with `pointer-events: auto` to make copied interactive content clickable again. |\n\n---\n\n**CSS Custom Properties**\n\n- `--lr-virtual-list-height` (default: `var(--lr-size-24rem)`) — The scroll viewport's height. A virtualized list needs a bounded scroll extent, so this ships a default rather than collapsing to zero when a caller does not size the host.\n- `--lr-virtual-list-hover-outline-color` (default: `var(--lr-color-border-strong)`) — Outline color of the mouse-hover preview on `[part=\"base\"]` (a subtler, always-focusable-target preview of its own `:focus-visible` ring). Set to `transparent` to opt out of the hover treatment entirely.",
|
|
16248
16847
|
"attributes": [
|
|
16249
16848
|
{
|
|
16250
16849
|
"name": "active-id",
|
|
@@ -16261,7 +16860,12 @@
|
|
|
16261
16860
|
},
|
|
16262
16861
|
{
|
|
16263
16862
|
"name": "item-role",
|
|
16264
|
-
"description": "`'listitem'` (default) preserves today's `role=\"list\"`/`role=\"listitem\"` mapping with\n`aria-setsize`/`aria-posinset`. `'row'` maps to `role=\"rowgroup\"`/`role=\"row\"` with\n`aria-rowindex` instead -- for a consumer composing a virtualized `role=\"table\"` (see\n`<lr-dataset-viewer>`).\n\nType: `
|
|
16863
|
+
"description": "`'listitem'` (default) preserves today's `role=\"list\"`/`role=\"listitem\"` mapping with\n`aria-setsize`/`aria-posinset`. `'row'` maps to `role=\"rowgroup\"`/`role=\"row\"` with\n`aria-rowindex` instead -- for a consumer composing a virtualized `role=\"table\"` (see\n`<lr-dataset-viewer>`).\n\nType: `VirtualListItemRole` \nDefault: `'listitem'`",
|
|
16864
|
+
"value": {
|
|
16865
|
+
"type": [
|
|
16866
|
+
"VirtualListItemRole"
|
|
16867
|
+
]
|
|
16868
|
+
}
|
|
16265
16869
|
},
|
|
16266
16870
|
{
|
|
16267
16871
|
"name": "loading",
|
|
@@ -16620,11 +17224,21 @@
|
|
|
16620
17224
|
},
|
|
16621
17225
|
{
|
|
16622
17226
|
"name": "orientations",
|
|
16623
|
-
"description": "`mixed` lets some words render rotated 90° for denser packing.\n\nType: `
|
|
17227
|
+
"description": "`mixed` lets some words render rotated 90° for denser packing.\n\nType: `WordCloudOrientations` \nDefault: `'horizontal'`",
|
|
17228
|
+
"value": {
|
|
17229
|
+
"type": [
|
|
17230
|
+
"WordCloudOrientations"
|
|
17231
|
+
]
|
|
17232
|
+
}
|
|
16624
17233
|
},
|
|
16625
17234
|
{
|
|
16626
17235
|
"name": "scale",
|
|
16627
|
-
"description": "`sqrt` compresses the weight->font-size mapping so one heavy word doesn't dwarf the rest.\n\nType: `
|
|
17236
|
+
"description": "`sqrt` compresses the weight->font-size mapping so one heavy word doesn't dwarf the rest.\n\nType: `WordCloudScale` \nDefault: `'linear'`",
|
|
17237
|
+
"value": {
|
|
17238
|
+
"type": [
|
|
17239
|
+
"WordCloudScale"
|
|
17240
|
+
]
|
|
17241
|
+
}
|
|
16628
17242
|
}
|
|
16629
17243
|
]
|
|
16630
17244
|
},
|
|
@@ -17020,6 +17634,10 @@
|
|
|
17020
17634
|
"name": "--lr-button-font-size",
|
|
17021
17635
|
"description": "**`<lr-button>`** (default: `var(--lr-font-size-m)`) — Font size of the internal button, re-assigned per `size` tier (the default is the `m` tier's value). `appearance=\"link\"` ignores it and inherits the ambient font instead."
|
|
17022
17636
|
},
|
|
17637
|
+
{
|
|
17638
|
+
"name": "--lr-button-gap",
|
|
17639
|
+
"description": "**`<lr-button>`** (default: `var(--lr-space-2xs)`) — Gap between the icon/label and any slotted content in the internal button. Unlike the size knobs above it does not vary by `size` tier. Override it to retune without a `::part(base)` rule."
|
|
17640
|
+
},
|
|
17023
17641
|
{
|
|
17024
17642
|
"name": "--lr-button-group-gap",
|
|
17025
17643
|
"description": "**`<lr-button-group>`** (default: `var(--lr-space-2xs)`) — Gap between grouped controls."
|
|
@@ -17064,6 +17682,10 @@
|
|
|
17064
17682
|
"name": "--lr-button-quiet-text",
|
|
17065
17683
|
"description": "**`<lr-button>`** (default: `var(--lr-color-text-quiet)`) — Text color of `appearance=\"quiet\"`."
|
|
17066
17684
|
},
|
|
17685
|
+
{
|
|
17686
|
+
"name": "--lr-button-radius",
|
|
17687
|
+
"description": "**`<lr-button>`** (default: `var(--lr-radius)`) — Corner radius of the internal button. Does not vary by `size` tier. `appearance=\"link\"` ignores it (it renders with zero radius)."
|
|
17688
|
+
},
|
|
17067
17689
|
{
|
|
17068
17690
|
"name": "--lr-button-size-2xs",
|
|
17069
17691
|
"description": "**`<lr-button>`** (default: `var(--lr-size-1-25rem)`) — `min-block-size` at `size=\"2xs\"`."
|
|
@@ -17238,7 +17860,7 @@
|
|
|
17238
17860
|
},
|
|
17239
17861
|
{
|
|
17240
17862
|
"name": "--lr-chip-min-height",
|
|
17241
|
-
"description": "**`<lr-chip>`** (default: `var(--lr-size-1-5rem)`) — Minimum block size of an interactive (`removable`/`toggleable`) chip's tap target. `size` keeps `2xs`/`xs`/`s`/`m` at the `1.5rem` (24px) WCAG 2.2 SC 2.5.8 minimum and raises `l` to `var(--lr-size-1-75rem)` and `xl` to `var(--lr-size-2rem)`. Non-interactive display chips are unaffected by this floor."
|
|
17863
|
+
"description": "**`<lr-chip>`** (default: `var(--lr-size-1-5rem)`) — Minimum block size of an interactive (`removable`/`toggleable`) chip's tap target. `size` keeps `3xs`/`2xs`/`xs`/`s`/`m` at the `1.5rem` (24px) WCAG 2.2 SC 2.5.8 minimum and raises `l` to `var(--lr-size-1-75rem)` and `xl` to `var(--lr-size-2rem)`. Non-interactive display chips are unaffected by this floor."
|
|
17242
17864
|
},
|
|
17243
17865
|
{
|
|
17244
17866
|
"name": "--lr-chip-padding-block",
|
|
@@ -17304,6 +17926,10 @@
|
|
|
17304
17926
|
"name": "--lr-code-editor-tab-size",
|
|
17305
17927
|
"description": "**`<lr-code-editor>`** (default: `2`) — The textarea's `tab-size`. The single channel for tab width — the class writes this token rather than setting `tab-size` directly."
|
|
17306
17928
|
},
|
|
17929
|
+
{
|
|
17930
|
+
"name": "--lr-color-picker-swatch-size",
|
|
17931
|
+
"description": "**`<lr-color-picker>`** — The swatch's inline and block size, scaled by `size`."
|
|
17932
|
+
},
|
|
17307
17933
|
{
|
|
17308
17934
|
"name": "--lr-combobox-expand-size",
|
|
17309
17935
|
"description": "**`<lr-combobox>`** — Decorative expand-icon box size, scaled by `size`."
|
|
@@ -17424,6 +18050,10 @@
|
|
|
17424
18050
|
"name": "--lr-csv-viewer-max-height",
|
|
17425
18051
|
"description": "**`<lr-csv-viewer>`** (default: `none`) — Maximum block size of `[part=\"body\"]` before it scrolls internally. The `maxHeight` property sets this token inline on `[part=\"base\"]`."
|
|
17426
18052
|
},
|
|
18053
|
+
{
|
|
18054
|
+
"name": "--lr-dashboard-grid-cell-hover-outline-color",
|
|
18055
|
+
"description": "**`<lr-dashboard-grid>`** (default: `var(--lr-color-border-strong)`) — Outline color of a cell's mouse-hover preview of its own `:focus-visible` ring (shown because every cell is a real focusable, draggable/resizable target). Set to `transparent` to opt out."
|
|
18056
|
+
},
|
|
17427
18057
|
{
|
|
17428
18058
|
"name": "--lr-dashboard-grid-columns",
|
|
17429
18059
|
"description": "**`<lr-dashboard-grid>`** (default: `12`) — Column count of the underlying CSS Grid. Written inline on `[part=\"base\"]` from the `columns` property on every render, so the fallback only applies to a `[part=\"base\"]` this component has not rendered yet."
|
|
@@ -17436,10 +18066,6 @@
|
|
|
17436
18066
|
"name": "--lr-dashboard-grid-row-height",
|
|
17437
18067
|
"description": "**`<lr-dashboard-grid>`** (default: `var(--lr-size-5rem)`) — Row track height. Written inline on `[part=\"base\"]` from the `rowHeight` property (in px) on every render."
|
|
17438
18068
|
},
|
|
17439
|
-
{
|
|
17440
|
-
"name": "--lr-data-grid-row-selected-bg",
|
|
17441
|
-
"description": "**`<lr-data-grid>`** (default: `var(--lr-color-brand-quiet)`) — Background of the selected row's cells. Shadow Parts forbids an attribute selector after `::part()`, so `::part(row)[aria-selected]` is invalid CSS and the selected row could otherwise only be restyled by hijacking the library-wide `--lr-color-brand-quiet` token."
|
|
17442
|
-
},
|
|
17443
18069
|
{
|
|
17444
18070
|
"name": "--lr-dataset-viewer-highlight-color",
|
|
17445
18071
|
"description": "**`<lr-dataset-viewer>`** (default: `var(--lr-color-brand)`) — Outline color of a highlighted cell. The active highlight sets it inline to `var(--lr-color-warning, var(--lr-color-brand))`."
|
|
@@ -17548,6 +18174,10 @@
|
|
|
17548
18174
|
"name": "--lr-emoji-picker-gap",
|
|
17549
18175
|
"description": "**`<lr-emoji-picker>`** (default: `var(--lr-space-2xs)`) — Gap between emoji within a windowed row."
|
|
17550
18176
|
},
|
|
18177
|
+
{
|
|
18178
|
+
"name": "--lr-emoji-picker-glyph-size",
|
|
18179
|
+
"description": "**`<lr-emoji-picker>`** (default: `var(--lr-font-size-lg)`) — Font size of the emoji glyph, scaled by the `size` property to keep the glyph proportional to the item box."
|
|
18180
|
+
},
|
|
17551
18181
|
{
|
|
17552
18182
|
"name": "--lr-emoji-picker-item-size",
|
|
17553
18183
|
"description": "**`<lr-emoji-picker>`** (default: `var(--lr-icon-button-size)`) — Each emoji button's box. Clamped up to `--lr-icon-button-size`: a smaller value does not shrink the button."
|
|
@@ -17664,6 +18294,10 @@
|
|
|
17664
18294
|
"name": "--lr-flow-canvas-node-current-outline-color",
|
|
17665
18295
|
"description": "**`<lr-flow-canvas>`** (default: `var(--lr-color-brand)`) — Outline color of the current (`aria-current`) node. Shadow Parts forbids an attribute selector after `::part()`, so the current node could otherwise only be restyled by hijacking the library-wide `--lr-color-brand` token."
|
|
17666
18296
|
},
|
|
18297
|
+
{
|
|
18298
|
+
"name": "--lr-flow-canvas-node-hover-outline-color",
|
|
18299
|
+
"description": "**`<lr-flow-canvas>`** (default: `var(--lr-color-border-strong)`) — Outline color of a node's mouse-hover preview of its own `:focus-visible` ring. Unlike the four state-scoped colors above this one is `:hover`-gated rather than attribute-gated, so a `::part(node):hover` override would lose to this rule's own higher internal specificity rather than to the `::part()[attr]` restriction those four work around. Set to `transparent` to opt out."
|
|
18300
|
+
},
|
|
17667
18301
|
{
|
|
17668
18302
|
"name": "--lr-flow-minimap-block-size",
|
|
17669
18303
|
"description": "**`<lr-flow-minimap>`** (default: `var(--lr-size-8rem)`) — Map block size."
|
|
@@ -17892,6 +18526,30 @@
|
|
|
17892
18526
|
"name": "--lr-lite-chart-selected-outline-color",
|
|
17893
18527
|
"description": "**`<lr-lite-chart>`** (default: `var(--lr-color-brand)`) — Stroke for a bar/point whose category index is in `selectedIndex`."
|
|
17894
18528
|
},
|
|
18529
|
+
{
|
|
18530
|
+
"name": "--lr-locale-picker-expand-size",
|
|
18531
|
+
"description": "**`<lr-locale-picker>`** — Decorative expand-icon box size, scaled by `size`."
|
|
18532
|
+
},
|
|
18533
|
+
{
|
|
18534
|
+
"name": "--lr-locale-picker-font-size",
|
|
18535
|
+
"description": "**`<lr-locale-picker>`** — Trigger font size, scaled by `size`."
|
|
18536
|
+
},
|
|
18537
|
+
{
|
|
18538
|
+
"name": "--lr-locale-picker-option-active-bg",
|
|
18539
|
+
"description": "**`<lr-locale-picker>`** (default: `var(--lr-color-brand-quiet)`) — Background of a hovered or keyboard-active option row."
|
|
18540
|
+
},
|
|
18541
|
+
{
|
|
18542
|
+
"name": "--lr-locale-picker-trigger-height",
|
|
18543
|
+
"description": "**`<lr-locale-picker>`** — Exact trigger height. Unset by default (a floor only via `-trigger-min-height`); set a length to both floor and cap the trigger, e.g. to pixel-match a sibling field in the same toolbar row."
|
|
18544
|
+
},
|
|
18545
|
+
{
|
|
18546
|
+
"name": "--lr-locale-picker-trigger-min-height",
|
|
18547
|
+
"description": "**`<lr-locale-picker>`** — Trigger block-size floor, scaled by `size`."
|
|
18548
|
+
},
|
|
18549
|
+
{
|
|
18550
|
+
"name": "--lr-locale-picker-trigger-padding",
|
|
18551
|
+
"description": "**`<lr-locale-picker>`** — Trigger padding shorthand, scaled by `size`."
|
|
18552
|
+
},
|
|
17895
18553
|
{
|
|
17896
18554
|
"name": "--lr-markdown-font-mono",
|
|
17897
18555
|
"description": "**`<lr-markdown>`** (default: `var(--lr-font-mono)`) — Monospace family for rendered `<code>` inside `content`."
|
|
@@ -18008,6 +18666,22 @@
|
|
|
18008
18666
|
"name": "--lr-pdf-viewer-height",
|
|
18009
18667
|
"description": "**`<lr-pdf-viewer>`** (default: `var(--lr-size-24rem)`) — Block size of the virtualized page list. Also settable via the `max-height` property."
|
|
18010
18668
|
},
|
|
18669
|
+
{
|
|
18670
|
+
"name": "--lr-phone-input-control-height",
|
|
18671
|
+
"description": "**`<lr-phone-input>`** — Exact input-wrapper height. Unset by default, which leaves `--lr-phone-input-control-min-height` as a floor only; set it to a length to both floor and cap the row (e.g. to pixel-match a sibling field in the same toolbar row). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element."
|
|
18672
|
+
},
|
|
18673
|
+
{
|
|
18674
|
+
"name": "--lr-phone-input-control-min-height",
|
|
18675
|
+
"description": "**`<lr-phone-input>`** — Input-wrapper block-size floor, scaled by `size`."
|
|
18676
|
+
},
|
|
18677
|
+
{
|
|
18678
|
+
"name": "--lr-phone-input-font-size",
|
|
18679
|
+
"description": "**`<lr-phone-input>`** — Input/flag/country-code/calling-code font size, scaled by `size`."
|
|
18680
|
+
},
|
|
18681
|
+
{
|
|
18682
|
+
"name": "--lr-phone-input-padding-block",
|
|
18683
|
+
"description": "**`<lr-phone-input>`** — Input block-padding, scaled by `size`."
|
|
18684
|
+
},
|
|
18011
18685
|
{
|
|
18012
18686
|
"name": "--lr-playback-icon-size",
|
|
18013
18687
|
"description": "**`<lr-playback>`** (default: `calc(var(--lr-icon-button-size) * 0.35)`) — Font size of the play/pause glyph, derived from the shared icon-button hit-target size."
|
|
@@ -18076,6 +18750,14 @@
|
|
|
18076
18750
|
"name": "--lr-rating-size",
|
|
18077
18751
|
"description": "**`<lr-rating>`** (default: `var(--lr-font-size-xl)`) — Star size."
|
|
18078
18752
|
},
|
|
18753
|
+
{
|
|
18754
|
+
"name": "--lr-reorder-item-gap",
|
|
18755
|
+
"description": "**`<lr-reorder-item>`** (default: `var(--lr-space-xs)`) — Gap between the move buttons and content."
|
|
18756
|
+
},
|
|
18757
|
+
{
|
|
18758
|
+
"name": "--lr-reorder-list-gap",
|
|
18759
|
+
"description": "**`<lr-reorder-list>`** (default: `var(--lr-space-2xs)`) — Gap between rows."
|
|
18760
|
+
},
|
|
18079
18761
|
{
|
|
18080
18762
|
"name": "--lr-responsive-panel-overlay-color",
|
|
18081
18763
|
"description": "**`<lr-responsive-panel>`** (default: `var(--lr-color-overlay)`) — The overlay presentation's scrim color, applied to `[part=\"backdrop\"]`."
|
|
@@ -18332,6 +19014,14 @@
|
|
|
18332
19014
|
"name": "--lr-svg-viewer-max-height",
|
|
18333
19015
|
"description": "**`<lr-svg-viewer>`** (default: `none`) — Maximum block size of the scrollable body before it scrolls internally. Also settable via the `max-height` property."
|
|
18334
19016
|
},
|
|
19017
|
+
{
|
|
19018
|
+
"name": "--lr-swatch-picker-fill-size",
|
|
19019
|
+
"description": "**`<lr-swatch-picker>`** (default: `var(--lr-size-1-5rem)`) — Visible fill/icon diameter for the swatch, swapped per tier."
|
|
19020
|
+
},
|
|
19021
|
+
{
|
|
19022
|
+
"name": "--lr-swatch-picker-hit-size",
|
|
19023
|
+
"description": "**`<lr-swatch-picker>`** (default: `var(--lr-size-2-5rem)`) — Hit-area size (both min-inline-size and min-block-size) for the swatch button, swapped per tier and floored at 24px."
|
|
19024
|
+
},
|
|
18335
19025
|
{
|
|
18336
19026
|
"name": "--lr-swatch-picker-selected-blur",
|
|
18337
19027
|
"description": "**`<lr-swatch-picker>`** (default: `0`) — Blur radius of that same ring. 0 by default (a crisp ring); set a real length (e.g. 0.4rem) for a soft glow instead."
|
|
@@ -18472,6 +19162,10 @@
|
|
|
18472
19162
|
"name": "--lr-time-range-preset-active-color",
|
|
18473
19163
|
"description": "**`<lr-time-range>`** (default: `var(--lr-color-on-brand)`) — Text color of the active preset button."
|
|
18474
19164
|
},
|
|
19165
|
+
{
|
|
19166
|
+
"name": "--lr-time-range-size-scale",
|
|
19167
|
+
"description": "**`<lr-time-range>`** (default: `1`) — Unitless multiplier applied proportionally to the handle, track, and preset-button dimensions based on the current `size` tier; the drag hit-area is floored at 24px (WCAG 2.5.8)."
|
|
19168
|
+
},
|
|
18475
19169
|
{
|
|
18476
19170
|
"name": "--lr-timeline-gap",
|
|
18477
19171
|
"description": "**`<lr-timeline>`** (default: `var(--lr-space-l)`) — Spacing between consecutive items along the timeline's main axis; also the length each item's own rail visually bridges to reach the next item's marker. Declared here but actually consumed inside each `<lr-timeline-item>`'s own stylesheet, via ordinary CSS custom-property inheritance across the slot boundary."
|
|
@@ -18544,10 +19238,22 @@
|
|
|
18544
19238
|
"name": "--lr-toast-width",
|
|
18545
19239
|
"description": "**`<lr-toast>`** (default: `var(--lr-size-28rem)`) — Inline size of the stack, capped by the viewport minus the placement insets."
|
|
18546
19240
|
},
|
|
19241
|
+
{
|
|
19242
|
+
"name": "--lr-token-input-control-height",
|
|
19243
|
+
"description": "**`<lr-token-input>`** — Exact input-wrapper height. Unset by default, which leaves `--lr-token-input-control-min-height` as a floor only; set it to a length to both floor and cap the row (e.g. to pixel-match a sibling field in the same toolbar row). Because it is never declared by the component itself, it can be set from an ancestor or an outer-tree rule as well as inline on the element."
|
|
19244
|
+
},
|
|
19245
|
+
{
|
|
19246
|
+
"name": "--lr-token-input-control-min-height",
|
|
19247
|
+
"description": "**`<lr-token-input>`** — Input-wrapper block-size floor, scaled by `size`."
|
|
19248
|
+
},
|
|
18547
19249
|
{
|
|
18548
19250
|
"name": "--lr-token-input-editor-inline-size",
|
|
18549
19251
|
"description": "**`<lr-token-input>`** (default: `var(--lr-size-6rem)`) — Inline size of the inline token editor opened by `editable`."
|
|
18550
19252
|
},
|
|
19253
|
+
{
|
|
19254
|
+
"name": "--lr-token-input-font-size",
|
|
19255
|
+
"description": "**`<lr-token-input>`** — Input-wrapper/token font size, scaled by `size`."
|
|
19256
|
+
},
|
|
18551
19257
|
{
|
|
18552
19258
|
"name": "--lr-token-input-input-inline-size",
|
|
18553
19259
|
"description": "**`<lr-token-input>`** (default: `var(--lr-size-8rem)`) — `flex-basis` of the native text input within the token row."
|
|
@@ -18556,6 +19262,10 @@
|
|
|
18556
19262
|
"name": "--lr-token-input-min-input-inline-size",
|
|
18557
19263
|
"description": "**`<lr-token-input>`** (default: `var(--lr-size-4rem)`) — Inline-size floor of the native text input, so it stays usable once tokens wrap."
|
|
18558
19264
|
},
|
|
19265
|
+
{
|
|
19266
|
+
"name": "--lr-token-input-padding",
|
|
19267
|
+
"description": "**`<lr-token-input>`** — Input-wrapper padding, scaled by `size`."
|
|
19268
|
+
},
|
|
18559
19269
|
{
|
|
18560
19270
|
"name": "--lr-tool-approval-dialog-mono-font",
|
|
18561
19271
|
"description": "**`<lr-tool-approval-dialog>`** (default: `var(--lr-font-mono)`) — Font family for the tool name and the raw-JSON args editor."
|
|
@@ -18680,6 +19390,10 @@
|
|
|
18680
19390
|
"name": "--lr-virtual-list-height",
|
|
18681
19391
|
"description": "**`<lr-virtual-list>`** (default: `var(--lr-size-24rem)`) — The scroll viewport's height. A virtualized list needs a bounded scroll extent, so this ships a default rather than collapsing to zero when a caller does not size the host."
|
|
18682
19392
|
},
|
|
19393
|
+
{
|
|
19394
|
+
"name": "--lr-virtual-list-hover-outline-color",
|
|
19395
|
+
"description": "**`<lr-virtual-list>`** (default: `var(--lr-color-border-strong)`) — Outline color of the mouse-hover preview on `[part=\"base\"]` (a subtler, always-focusable-target preview of its own `:focus-visible` ring). Set to `transparent` to opt out of the hover treatment entirely."
|
|
19396
|
+
},
|
|
18683
19397
|
{
|
|
18684
19398
|
"name": "--lr-widget-backdrop-inset",
|
|
18685
19399
|
"description": "**`<lr-widget>`** (default: `var(--lr-widget-fullscreen-inset)`) — The `inset` applied to `[part=\"backdrop\"]`, so the scrim can be pulled back independently of the panel. Also set inline from the `backdrop-inset` attribute (falling back to `fullscreen-inset`). `fullscreen-inset` overrides the default `var(--lr-space-l)` inset applied to `[part=\"base\"]` and `[part=\"backdrop\"]` while fullscreen (e.g. `\"0 0 0 240px\"` to leave a persistent sidebar visible). `compact` tightens header/body padding — same convention as `lr-empty`'s `compact`."
|