@aceshooting/lyra-ui 2.2.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/custom-elements.json +18746 -12825
- package/dist/components/app-rail/app-rail-item.class.d.ts +16 -1
- package/dist/components/app-rail/app-rail-item.class.d.ts.map +1 -1
- package/dist/components/app-rail/app-rail-item.class.js +52 -1
- package/dist/components/app-rail/app-rail-item.class.js.map +1 -1
- package/dist/components/app-rail/app-rail-item.styles.d.ts.map +1 -1
- package/dist/components/app-rail/app-rail-item.styles.js +11 -0
- package/dist/components/app-rail/app-rail-item.styles.js.map +1 -1
- package/dist/components/app-rail/app-rail.class.d.ts +13 -1
- package/dist/components/app-rail/app-rail.class.d.ts.map +1 -1
- package/dist/components/app-rail/app-rail.class.js +23 -1
- package/dist/components/app-rail/app-rail.class.js.map +1 -1
- package/dist/components/app-rail/app-rail.styles.d.ts.map +1 -1
- package/dist/components/app-rail/app-rail.styles.js +6 -0
- package/dist/components/app-rail/app-rail.styles.js.map +1 -1
- package/dist/components/attachment-chip/attachment-chip.class.d.ts +15 -1
- package/dist/components/attachment-chip/attachment-chip.class.d.ts.map +1 -1
- package/dist/components/attachment-chip/attachment-chip.class.js +27 -4
- package/dist/components/attachment-chip/attachment-chip.class.js.map +1 -1
- package/dist/components/attachment-chip/attachment-chip.styles.d.ts.map +1 -1
- package/dist/components/attachment-chip/attachment-chip.styles.js +7 -0
- package/dist/components/attachment-chip/attachment-chip.styles.js.map +1 -1
- package/dist/components/attachment-trigger/attachment-trigger.class.d.ts +6 -3
- package/dist/components/attachment-trigger/attachment-trigger.class.d.ts.map +1 -1
- package/dist/components/attachment-trigger/attachment-trigger.class.js +51 -0
- package/dist/components/attachment-trigger/attachment-trigger.class.js.map +1 -1
- package/dist/components/attachment-trigger/attachment-trigger.styles.d.ts.map +1 -1
- package/dist/components/attachment-trigger/attachment-trigger.styles.js +10 -0
- package/dist/components/attachment-trigger/attachment-trigger.styles.js.map +1 -1
- package/dist/components/avatar/avatar.class.d.ts +43 -0
- package/dist/components/avatar/avatar.class.d.ts.map +1 -0
- package/dist/components/avatar/avatar.class.js +75 -0
- package/dist/components/avatar/avatar.class.js.map +1 -0
- package/dist/components/avatar/avatar.d.ts +2 -0
- package/dist/components/avatar/avatar.d.ts.map +1 -0
- package/dist/components/avatar/avatar.js +5 -0
- package/dist/components/avatar/avatar.js.map +1 -0
- package/dist/components/avatar/avatar.styles.d.ts +2 -0
- package/dist/components/avatar/avatar.styles.d.ts.map +1 -0
- package/dist/components/avatar/avatar.styles.js +55 -0
- package/dist/components/avatar/avatar.styles.js.map +1 -0
- package/dist/components/card/card.class.d.ts +52 -0
- package/dist/components/card/card.class.d.ts.map +1 -0
- package/dist/components/card/card.class.js +111 -0
- package/dist/components/card/card.class.js.map +1 -0
- package/dist/components/card/card.d.ts +2 -0
- package/dist/components/card/card.d.ts.map +1 -0
- package/dist/components/card/card.js +5 -0
- package/dist/components/card/card.js.map +1 -0
- package/dist/components/card/card.styles.d.ts +2 -0
- package/dist/components/card/card.styles.d.ts.map +1 -0
- package/dist/components/card/card.styles.js +77 -0
- package/dist/components/card/card.styles.js.map +1 -0
- package/dist/components/chart/chart.class.d.ts +11 -11
- package/dist/components/chart/chart.class.d.ts.map +1 -1
- package/dist/components/chart/chart.class.js +44 -3
- package/dist/components/chart/chart.class.js.map +1 -1
- package/dist/components/chart/lite-chart.class.d.ts +16 -9
- package/dist/components/chart/lite-chart.class.d.ts.map +1 -1
- package/dist/components/chart/lite-chart.class.js +99 -11
- package/dist/components/chart/lite-chart.class.js.map +1 -1
- package/dist/components/chart/lite-chart.styles.d.ts.map +1 -1
- package/dist/components/chart/lite-chart.styles.js +4 -0
- package/dist/components/chart/lite-chart.styles.js.map +1 -1
- package/dist/components/chat-composer/chat-composer.class.d.ts +18 -13
- package/dist/components/chat-composer/chat-composer.class.d.ts.map +1 -1
- package/dist/components/chat-composer/chat-composer.class.js +69 -4
- package/dist/components/chat-composer/chat-composer.class.js.map +1 -1
- package/dist/components/chat-message/chat-message.class.d.ts +3 -3
- package/dist/components/chat-message/chat-message.class.d.ts.map +1 -1
- package/dist/components/chat-message/chat-message.class.js +71 -8
- package/dist/components/chat-message/chat-message.class.js.map +1 -1
- package/dist/components/checkbox/checkbox.class.d.ts +5 -5
- package/dist/components/checkbox/checkbox.class.d.ts.map +1 -1
- package/dist/components/checkbox/checkbox.class.js +24 -0
- package/dist/components/checkbox/checkbox.class.js.map +1 -1
- package/dist/components/chip/chip-group.class.d.ts.map +1 -1
- package/dist/components/chip/chip-group.class.js +4 -2
- package/dist/components/chip/chip-group.class.js.map +1 -1
- package/dist/components/chip/chip.class.d.ts +18 -0
- package/dist/components/chip/chip.class.d.ts.map +1 -1
- package/dist/components/chip/chip.class.js +38 -1
- package/dist/components/chip/chip.class.js.map +1 -1
- package/dist/components/chip/chip.styles.d.ts.map +1 -1
- package/dist/components/chip/chip.styles.js +19 -1
- package/dist/components/chip/chip.styles.js.map +1 -1
- package/dist/components/code-block/code-block-core.class.d.ts +111 -0
- package/dist/components/code-block/code-block-core.class.d.ts.map +1 -0
- package/dist/components/code-block/code-block-core.class.js +363 -0
- package/dist/components/code-block/code-block-core.class.js.map +1 -0
- package/dist/components/code-block/code-block-core.d.ts +3 -0
- package/dist/components/code-block/code-block-core.d.ts.map +1 -0
- package/dist/components/code-block/code-block-core.js +6 -0
- package/dist/components/code-block/code-block-core.js.map +1 -0
- package/dist/components/code-block/code-block.class.d.ts +5 -5
- package/dist/components/code-block/code-block.class.d.ts.map +1 -1
- package/dist/components/code-block/code-block.class.js +75 -3
- package/dist/components/code-block/code-block.class.js.map +1 -1
- package/dist/components/combobox/combobox.class.d.ts +5 -5
- package/dist/components/combobox/combobox.class.d.ts.map +1 -1
- package/dist/components/combobox/combobox.class.js +38 -0
- package/dist/components/combobox/combobox.class.js.map +1 -1
- package/dist/components/conversation-item/conversation-item.class.d.ts +3 -3
- package/dist/components/conversation-item/conversation-item.class.d.ts.map +1 -1
- package/dist/components/conversation-item/conversation-item.class.js +69 -0
- package/dist/components/conversation-item/conversation-item.class.js.map +1 -1
- package/dist/components/copy-button/copy-button.class.d.ts +5 -5
- package/dist/components/copy-button/copy-button.class.d.ts.map +1 -1
- package/dist/components/copy-button/copy-button.class.js +13 -0
- package/dist/components/copy-button/copy-button.class.js.map +1 -1
- package/dist/components/date-picker/date-input.class.d.ts +10 -10
- package/dist/components/date-picker/date-input.class.d.ts.map +1 -1
- package/dist/components/date-picker/date-input.class.js +28 -0
- package/dist/components/date-picker/date-input.class.js.map +1 -1
- package/dist/components/date-picker/date-picker.class.d.ts +4 -4
- package/dist/components/date-picker/date-picker.class.d.ts.map +1 -1
- package/dist/components/date-picker/date-picker.class.js +28 -0
- package/dist/components/date-picker/date-picker.class.js.map +1 -1
- package/dist/components/dialog/dialog.class.d.ts +3 -3
- package/dist/components/dialog/dialog.class.js +3 -3
- package/dist/components/dialog/dialog.styles.d.ts.map +1 -1
- package/dist/components/dialog/dialog.styles.js +9 -2
- package/dist/components/dialog/dialog.styles.js.map +1 -1
- package/dist/components/diff-view/diff-line-diff.d.ts +13 -0
- package/dist/components/diff-view/diff-line-diff.d.ts.map +1 -0
- package/dist/components/diff-view/diff-line-diff.js +45 -0
- package/dist/components/diff-view/diff-line-diff.js.map +1 -0
- package/dist/components/diff-view/diff-view.class.d.ts +40 -0
- package/dist/components/diff-view/diff-view.class.d.ts.map +1 -0
- package/dist/components/diff-view/diff-view.class.js +73 -0
- package/dist/components/diff-view/diff-view.class.js.map +1 -0
- package/dist/components/diff-view/diff-view.d.ts +2 -0
- package/dist/components/diff-view/diff-view.d.ts.map +1 -0
- package/dist/components/diff-view/diff-view.js +5 -0
- package/dist/components/diff-view/diff-view.js.map +1 -0
- package/dist/components/diff-view/diff-view.styles.d.ts +2 -0
- package/dist/components/diff-view/diff-view.styles.d.ts.map +1 -0
- package/dist/components/diff-view/diff-view.styles.js +49 -0
- package/dist/components/diff-view/diff-view.styles.js.map +1 -0
- package/dist/components/document-preview/document-preview.class.d.ts +9 -9
- package/dist/components/document-preview/document-preview.class.d.ts.map +1 -1
- package/dist/components/document-preview/document-preview.class.js +83 -0
- package/dist/components/document-preview/document-preview.class.js.map +1 -1
- package/dist/components/empty/empty.class.d.ts +6 -0
- package/dist/components/empty/empty.class.d.ts.map +1 -1
- package/dist/components/empty/empty.class.js +28 -2
- package/dist/components/empty/empty.class.js.map +1 -1
- package/dist/components/empty/empty.styles.js +2 -2
- package/dist/components/export-button/export-button.class.d.ts +8 -8
- package/dist/components/export-button/export-button.class.d.ts.map +1 -1
- package/dist/components/export-button/export-button.class.js +13 -0
- package/dist/components/export-button/export-button.class.js.map +1 -1
- package/dist/components/file-input/file-input.class.d.ts +6 -6
- package/dist/components/file-input/file-input.class.d.ts.map +1 -1
- package/dist/components/file-input/file-input.class.js +16 -2
- package/dist/components/file-input/file-input.class.js.map +1 -1
- package/dist/components/generation-status/generation-status.class.d.ts +3 -3
- package/dist/components/generation-status/generation-status.class.d.ts.map +1 -1
- package/dist/components/generation-status/generation-status.class.js +66 -0
- package/dist/components/generation-status/generation-status.class.js.map +1 -1
- package/dist/components/graph/graph.class.d.ts +14 -9
- package/dist/components/graph/graph.class.d.ts.map +1 -1
- package/dist/components/graph/graph.class.js +68 -3
- package/dist/components/graph/graph.class.js.map +1 -1
- package/dist/components/graph/graph.styles.d.ts.map +1 -1
- package/dist/components/graph/graph.styles.js +4 -0
- package/dist/components/graph/graph.styles.js.map +1 -1
- package/dist/components/heatmap/heatmap.class.d.ts +22 -11
- package/dist/components/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/heatmap/heatmap.class.js +86 -2
- package/dist/components/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/json-viewer/json-viewer.class.d.ts +5 -5
- package/dist/components/json-viewer/json-viewer.class.d.ts.map +1 -1
- package/dist/components/json-viewer/json-viewer.class.js +29 -2
- package/dist/components/json-viewer/json-viewer.class.js.map +1 -1
- package/dist/components/map/map.class.d.ts +7 -7
- package/dist/components/map/map.class.d.ts.map +1 -1
- package/dist/components/map/map.class.js +27 -0
- package/dist/components/map/map.class.js.map +1 -1
- package/dist/components/markdown/markdown.class.d.ts +17 -9
- package/dist/components/markdown/markdown.class.d.ts.map +1 -1
- package/dist/components/markdown/markdown.class.js +74 -1
- package/dist/components/markdown/markdown.class.js.map +1 -1
- package/dist/components/mention-popover/mention-popover.class.d.ts +3 -3
- package/dist/components/mention-popover/mention-popover.class.d.ts.map +1 -1
- package/dist/components/mention-popover/mention-popover.class.js +113 -0
- package/dist/components/mention-popover/mention-popover.class.js.map +1 -1
- package/dist/components/menu/menu-item.class.d.ts +7 -7
- package/dist/components/menu/menu-item.class.d.ts.map +1 -1
- package/dist/components/menu/menu-item.class.js +55 -0
- package/dist/components/menu/menu-item.class.js.map +1 -1
- package/dist/components/menu/menu.class.d.ts +5 -5
- package/dist/components/menu/menu.class.d.ts.map +1 -1
- package/dist/components/menu/menu.class.js +84 -0
- package/dist/components/menu/menu.class.js.map +1 -1
- package/dist/components/model-select/model-select.class.d.ts +6 -6
- package/dist/components/model-select/model-select.class.d.ts.map +1 -1
- package/dist/components/model-select/model-select.class.js +33 -1
- package/dist/components/model-select/model-select.class.js.map +1 -1
- package/dist/components/playback/playback.class.d.ts +7 -7
- package/dist/components/playback/playback.class.d.ts.map +1 -1
- package/dist/components/playback/playback.class.js +13 -0
- package/dist/components/playback/playback.class.js.map +1 -1
- package/dist/components/poll-status/poll-status.class.d.ts +54 -0
- package/dist/components/poll-status/poll-status.class.d.ts.map +1 -0
- package/dist/components/poll-status/poll-status.class.js +150 -0
- package/dist/components/poll-status/poll-status.class.js.map +1 -0
- package/dist/components/poll-status/poll-status.d.ts +3 -0
- package/dist/components/poll-status/poll-status.d.ts.map +1 -0
- package/dist/components/poll-status/poll-status.js +6 -0
- package/dist/components/poll-status/poll-status.js.map +1 -0
- package/dist/components/poll-status/poll-status.styles.d.ts +2 -0
- package/dist/components/poll-status/poll-status.styles.d.ts.map +1 -0
- package/dist/components/poll-status/poll-status.styles.js +53 -0
- package/dist/components/poll-status/poll-status.styles.js.map +1 -0
- package/dist/components/segmented/segmented.class.d.ts +44 -0
- package/dist/components/segmented/segmented.class.d.ts.map +1 -0
- package/dist/components/segmented/segmented.class.js +100 -0
- package/dist/components/segmented/segmented.class.js.map +1 -0
- package/dist/components/segmented/segmented.d.ts +2 -0
- package/dist/components/segmented/segmented.d.ts.map +1 -0
- package/dist/components/segmented/segmented.js +5 -0
- package/dist/components/segmented/segmented.js.map +1 -0
- package/dist/components/segmented/segmented.styles.d.ts +2 -0
- package/dist/components/segmented/segmented.styles.d.ts.map +1 -0
- package/dist/components/segmented/segmented.styles.js +38 -0
- package/dist/components/segmented/segmented.styles.js.map +1 -0
- package/dist/components/select/select.class.d.ts +6 -6
- package/dist/components/select/select.class.d.ts.map +1 -1
- package/dist/components/select/select.class.js +57 -0
- package/dist/components/select/select.class.js.map +1 -1
- package/dist/components/select/select.styles.d.ts.map +1 -1
- package/dist/components/select/select.styles.js +6 -1
- package/dist/components/select/select.styles.js.map +1 -1
- package/dist/components/slider/slider.class.d.ts +11 -11
- package/dist/components/slider/slider.class.d.ts.map +1 -1
- package/dist/components/slider/slider.class.js +35 -0
- package/dist/components/slider/slider.class.js.map +1 -1
- package/dist/components/source-card/source-card.class.d.ts.map +1 -1
- package/dist/components/source-card/source-card.class.js +4 -2
- package/dist/components/source-card/source-card.class.js.map +1 -1
- package/dist/components/split/split.class.d.ts +3 -3
- package/dist/components/split/split.class.d.ts.map +1 -1
- package/dist/components/split/split.class.js +109 -3
- package/dist/components/split/split.class.js.map +1 -1
- package/dist/components/stat/stat.styles.d.ts.map +1 -1
- package/dist/components/stat/stat.styles.js +2 -0
- package/dist/components/stat/stat.styles.js.map +1 -1
- package/dist/components/stepper/stepper.class.d.ts +52 -0
- package/dist/components/stepper/stepper.class.d.ts.map +1 -0
- package/dist/components/stepper/stepper.class.js +138 -0
- package/dist/components/stepper/stepper.class.js.map +1 -0
- package/dist/components/stepper/stepper.d.ts +2 -0
- package/dist/components/stepper/stepper.d.ts.map +1 -0
- package/dist/components/stepper/stepper.js +5 -0
- package/dist/components/stepper/stepper.js.map +1 -0
- package/dist/components/stepper/stepper.styles.d.ts +2 -0
- package/dist/components/stepper/stepper.styles.d.ts.map +1 -0
- package/dist/components/stepper/stepper.styles.js +67 -0
- package/dist/components/stepper/stepper.styles.js.map +1 -0
- package/dist/components/stream-status/stream-status.class.d.ts +4 -4
- package/dist/components/stream-status/stream-status.class.d.ts.map +1 -1
- package/dist/components/stream-status/stream-status.class.js +79 -0
- package/dist/components/stream-status/stream-status.class.js.map +1 -1
- package/dist/components/switch/switch.class.d.ts +5 -5
- package/dist/components/switch/switch.class.d.ts.map +1 -1
- package/dist/components/switch/switch.class.js +24 -0
- package/dist/components/switch/switch.class.js.map +1 -1
- package/dist/components/table/table.class.d.ts +30 -17
- package/dist/components/table/table.class.d.ts.map +1 -1
- package/dist/components/table/table.class.js +101 -7
- package/dist/components/table/table.class.js.map +1 -1
- package/dist/components/table/table.styles.d.ts.map +1 -1
- package/dist/components/table/table.styles.js +23 -0
- package/dist/components/table/table.styles.js.map +1 -1
- package/dist/components/tabs/tabs.class.d.ts +5 -5
- package/dist/components/tabs/tabs.class.d.ts.map +1 -1
- package/dist/components/tabs/tabs.class.js +38 -0
- package/dist/components/tabs/tabs.class.js.map +1 -1
- package/dist/components/tabs/tabs.styles.d.ts.map +1 -1
- package/dist/components/tabs/tabs.styles.js +1 -0
- package/dist/components/tabs/tabs.styles.js.map +1 -1
- package/dist/components/time-range/time-range.class.d.ts +10 -10
- package/dist/components/time-range/time-range.class.d.ts.map +1 -1
- package/dist/components/time-range/time-range.class.js +28 -0
- package/dist/components/time-range/time-range.class.js.map +1 -1
- package/dist/components/toast/toast-item.class.d.ts +6 -6
- package/dist/components/toast/toast-item.class.d.ts.map +1 -1
- package/dist/components/toast/toast-item.class.js +17 -0
- package/dist/components/toast/toast-item.class.js.map +1 -1
- package/dist/components/tool-approval-dialog/tool-approval-dialog.class.d.ts +3 -3
- package/dist/components/tool-approval-dialog/tool-approval-dialog.class.d.ts.map +1 -1
- package/dist/components/tool-approval-dialog/tool-approval-dialog.class.js +71 -0
- package/dist/components/tool-approval-dialog/tool-approval-dialog.class.js.map +1 -1
- package/dist/components/tool-param-form/tool-param-form.class.d.ts +9 -9
- package/dist/components/tool-param-form/tool-param-form.class.d.ts.map +1 -1
- package/dist/components/tool-param-form/tool-param-form.class.js +61 -0
- package/dist/components/tool-param-form/tool-param-form.class.js.map +1 -1
- package/dist/components/tool-result-dialog/tool-result-dialog.class.d.ts.map +1 -1
- package/dist/components/tool-result-dialog/tool-result-dialog.class.js +16 -4
- package/dist/components/tool-result-dialog/tool-result-dialog.class.js.map +1 -1
- package/dist/components/tool-result-view/tool-result-view.class.d.ts +6 -6
- package/dist/components/tool-result-view/tool-result-view.class.d.ts.map +1 -1
- package/dist/components/tool-result-view/tool-result-view.class.js +27 -0
- package/dist/components/tool-result-view/tool-result-view.class.js.map +1 -1
- package/dist/components/tree/tree-node.class.d.ts +9 -9
- package/dist/components/tree/tree-node.class.d.ts.map +1 -1
- package/dist/components/tree/tree-node.class.js +19 -0
- package/dist/components/tree/tree-node.class.js.map +1 -1
- package/dist/components/virtual-list/virtual-list.class.d.ts +4 -4
- package/dist/components/virtual-list/virtual-list.class.d.ts.map +1 -1
- package/dist/components/virtual-list/virtual-list.class.js +89 -0
- package/dist/components/virtual-list/virtual-list.class.js.map +1 -1
- package/dist/components/widget/widget.class.d.ts +34 -4
- package/dist/components/widget/widget.class.d.ts.map +1 -1
- package/dist/components/widget/widget.class.js +106 -3
- package/dist/components/widget/widget.class.js.map +1 -1
- package/dist/components/widget/widget.styles.d.ts.map +1 -1
- package/dist/components/widget/widget.styles.js +41 -1
- package/dist/components/widget/widget.styles.js.map +1 -1
- package/dist/components/word-cloud/word-cloud.class.d.ts +7 -7
- package/dist/components/word-cloud/word-cloud.class.d.ts.map +1 -1
- package/dist/components/word-cloud/word-cloud.class.js +29 -1
- package/dist/components/word-cloud/word-cloud.class.js.map +1 -1
- package/dist/internal/localization.d.ts +1 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +42 -0
- 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 +7 -0
- package/dist/internal/root-registration-allowlist.js.map +1 -1
- package/dist/lyra.d.ts +24 -0
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +15 -0
- package/dist/lyra.js.map +1 -1
- package/dist/testing/happy-dom-shims.d.ts +40 -0
- package/dist/testing/happy-dom-shims.d.ts.map +1 -0
- package/dist/testing/happy-dom-shims.js +52 -0
- package/dist/testing/happy-dom-shims.js.map +1 -0
- package/llms-full.txt +617 -35
- package/llms.txt +3 -1
- package/package.json +17 -2
|
@@ -10,6 +10,9 @@ export interface AttachmentPickDetail {
|
|
|
10
10
|
capability: FileBackedCapability;
|
|
11
11
|
files: FileList;
|
|
12
12
|
}
|
|
13
|
+
export interface LyraAttachmentTriggerEventMap {
|
|
14
|
+
'lyra-camera-request': CustomEvent<undefined>;
|
|
15
|
+
}
|
|
13
16
|
/**
|
|
14
17
|
* `<lyra-attachment-trigger>` — a compact attach affordance designed for a
|
|
15
18
|
* chat composer's leading slot (see `<lyra-chat-composer>`'s own `leading`
|
|
@@ -52,14 +55,14 @@ export interface AttachmentPickDetail {
|
|
|
52
55
|
* @csspart menu - The `<lyra-menu>` wrapper. Only rendered when `capabilities.length > 1`.
|
|
53
56
|
* @csspart menu-trigger - The multi-capability button slotted into `<lyra-menu>`'s own `trigger` slot. Only rendered when `capabilities.length > 1`.
|
|
54
57
|
* @csspart expand-icon - The disclosure chevron inside the multi-capability trigger button. Only rendered when `capabilities.length > 1`.
|
|
58
|
+
* @csspart hidden-input - The internal native `<input type="file">` that actually opens the OS file
|
|
59
|
+
* picker. Hidden (`display: none`) by default; exposed as a part only so a consumer can override
|
|
60
|
+
* that with `::part(hidden-input)` in the unlikely case their integration needs to.
|
|
55
61
|
*
|
|
56
62
|
* `triggerLabel` lets a host override the single-capability trigger button's
|
|
57
63
|
* `aria-label` (i18n) — see that property's own doc for exactly what it
|
|
58
64
|
* does and doesn't affect.
|
|
59
65
|
*/
|
|
60
|
-
export interface LyraAttachmentTriggerEventMap {
|
|
61
|
-
'lyra-camera-request': CustomEvent<undefined>;
|
|
62
|
-
}
|
|
63
66
|
export declare class LyraAttachmentTrigger extends LyraElement<LyraAttachmentTriggerEventMap> {
|
|
64
67
|
static styles: import("lit").CSSResultGroup[];
|
|
65
68
|
/** Which attachment capabilities to offer, in display order. A single
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-trigger.class.d.ts","sourceRoot":"","sources":["../../../src/components/attachment-trigger/attachment-trigger.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAA0B,MAAM,KAAK,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,OAAO,uBAAuB,CAAC;AAC/B,OAAO,4BAA4B,CAAC;AAEpC,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhE;2EAC2E;AAC3E,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAE3E,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,oBAAoB,CAAC;IACjC,KAAK,EAAE,QAAQ,CAAC;CACjB;AAsED
|
|
1
|
+
{"version":3,"file":"attachment-trigger.class.d.ts","sourceRoot":"","sources":["../../../src/components/attachment-trigger/attachment-trigger.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,cAAc,EAA0B,MAAM,KAAK,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAI7D,OAAO,uBAAuB,CAAC;AAC/B,OAAO,4BAA4B,CAAC;AAEpC,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhE;2EAC2E;AAC3E,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAE3E,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,oBAAoB,CAAC;IACjC,KAAK,EAAE,QAAQ,CAAC;CACjB;AAsED,MAAM,WAAW,6BAA6B;IAC5C,qBAAqB,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CAC/C;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,qBAAa,qBAAsB,SAAQ,WAAW,CAAC,6BAA6B,CAAC;IACnF,MAAM,CAAC,MAAM,iCAAgC;IAE7C;sEACkE;IAClC,YAAY,EAAE,oBAAoB,EAAE,CAAa;IAEjF;;iFAE6E;IACjE,MAAM,SAAM;IAExB;;;;;kFAK8E;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEhE;;;;wCAIoC;IACM,YAAY,CAAC,EAAE,MAAM,CAAC;IAEhE,qEAAqE;IACzB,QAAQ,UAAQ;IAEhB,QAAQ,UAAS;IAEhC,OAAO,CAAC,OAAO,CAAC,CAAmB;IAMhE,OAAO,CAAC,iBAAiB,CAAiC;IAE1D,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,aAAa,CA0BnB;IAEF,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,UAAU;IA4BlB,MAAM,IAAI,cAAc,CAQvB;CACF;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,yBAAyB,EAAE,qBAAqB,CAAC;KAClD;CACF"}
|
|
@@ -64,6 +64,56 @@ const CAPABILITY_META = {
|
|
|
64
64
|
image: { icon: imageIcon, triggerLabel: 'Attach an image', menuLabel: 'Upload a photo' },
|
|
65
65
|
camera: { icon: cameraIcon, triggerLabel: 'Use camera', menuLabel: 'Take a photo' },
|
|
66
66
|
};
|
|
67
|
+
/**
|
|
68
|
+
* `<lyra-attachment-trigger>` — a compact attach affordance designed for a
|
|
69
|
+
* chat composer's leading slot (see `<lyra-chat-composer>`'s own `leading`
|
|
70
|
+
* slot, which this drops straight into, though this component has no code
|
|
71
|
+
* dependency on it). Its shape adapts to how many attachment `capabilities`
|
|
72
|
+
* are configured:
|
|
73
|
+
* - Exactly one capability: a single plain icon button ([part='trigger']).
|
|
74
|
+
* Activating it performs that capability's action directly.
|
|
75
|
+
* - More than one: a small anchored menu ([part='menu'], composed from
|
|
76
|
+
* `<lyra-menu>`/`<lyra-menu-item>`) listing each capability as a row.
|
|
77
|
+
*
|
|
78
|
+
* Two of the three capabilities (`files`, `image`) are file-picker-backed:
|
|
79
|
+
* activating them opens a hidden native `<input type="file">` via a
|
|
80
|
+
* synthetic `.click()`, and the resulting selection is re-emitted as
|
|
81
|
+
* `lyra-pick`. `accept` is shared across both — `image` defaults it to
|
|
82
|
+
* `'image/*'` unless the `accept` prop overrides it, `files` always uses
|
|
83
|
+
* `accept` as-is (empty means "any file type", matching a bare native
|
|
84
|
+
* `<input type="file">` with no `accept` attribute).
|
|
85
|
+
*
|
|
86
|
+
* **`camera` is scope-limited by design.** This component does not
|
|
87
|
+
* implement any camera capture UI itself — no `getUserMedia`, no
|
|
88
|
+
* `<input capture>` — because that's entirely a host/browser concern with
|
|
89
|
+
* no single right answer (a desktop web app, a mobile PWA, and a native
|
|
90
|
+
* wrapper all want different things here). Activating the `camera`
|
|
91
|
+
* capability only fires `lyra-camera-request`; the host owns everything
|
|
92
|
+
* from that point on (opening its own capture UI, then presumably handing
|
|
93
|
+
* the resulting `File` back to something like `<lyra-attachment-chip>`).
|
|
94
|
+
*
|
|
95
|
+
* @customElement lyra-attachment-trigger
|
|
96
|
+
* @event lyra-pick - A file-backed capability's hidden file input produced a
|
|
97
|
+
* real selection. `detail: { capability: 'files' | 'image', files }` — a
|
|
98
|
+
* real `FileList` (not a plain array), matching the native input's own
|
|
99
|
+
* `.files` shape, but an independent snapshot rather than that same live
|
|
100
|
+
* object — see `onInputChange`'s own doc for why a live reference would be
|
|
101
|
+
* unsafe to hand out here.
|
|
102
|
+
* @event lyra-camera-request - The `camera` capability was activated. No
|
|
103
|
+
* detail payload — see the class doc's scope note; the host implements the
|
|
104
|
+
* actual capture flow.
|
|
105
|
+
* @csspart trigger - The single-capability icon button. Only rendered when `capabilities.length === 1`.
|
|
106
|
+
* @csspart menu - The `<lyra-menu>` wrapper. Only rendered when `capabilities.length > 1`.
|
|
107
|
+
* @csspart menu-trigger - The multi-capability button slotted into `<lyra-menu>`'s own `trigger` slot. Only rendered when `capabilities.length > 1`.
|
|
108
|
+
* @csspart expand-icon - The disclosure chevron inside the multi-capability trigger button. Only rendered when `capabilities.length > 1`.
|
|
109
|
+
* @csspart hidden-input - The internal native `<input type="file">` that actually opens the OS file
|
|
110
|
+
* picker. Hidden (`display: none`) by default; exposed as a part only so a consumer can override
|
|
111
|
+
* that with `::part(hidden-input)` in the unlikely case their integration needs to.
|
|
112
|
+
*
|
|
113
|
+
* `triggerLabel` lets a host override the single-capability trigger button's
|
|
114
|
+
* `aria-label` (i18n) — see that property's own doc for exactly what it
|
|
115
|
+
* does and doesn't affect.
|
|
116
|
+
*/
|
|
67
117
|
export class LyraAttachmentTrigger extends LyraElement {
|
|
68
118
|
constructor() {
|
|
69
119
|
super(...arguments);
|
|
@@ -141,6 +191,7 @@ export class LyraAttachmentTrigger extends LyraElement {
|
|
|
141
191
|
renderHiddenInput() {
|
|
142
192
|
return html `
|
|
143
193
|
<input
|
|
194
|
+
part="hidden-input"
|
|
144
195
|
type="file"
|
|
145
196
|
tabindex="-1"
|
|
146
197
|
aria-hidden="true"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-trigger.class.js","sourceRoot":"","sources":["../../../src/components/attachment-trigger/attachment-trigger.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAA+C,MAAM,KAAK,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAExD,OAAO,uBAAuB,CAAC;AAC/B,OAAO,4BAA4B,CAAC;AAapC,2DAA2D;AAC3D,4EAA4E;AAC5E,yEAAyE;AACzE,wEAAwE;AACxE,2EAA2E;AAC3E,0DAA0D;AAC1D,MAAM,aAAa,GAAG,WAAW,CAAC;AAClC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEjC,SAAS,IAAI,CAAC,KAAwB;IACpC,OAAO,GAAG,CAAA;;;;gBAII,aAAa;;;qBAGR,iBAAiB;;;;;OAK/B,KAAK;GACT,CAAC;AACJ,CAAC;AAED;;;wCAGwC;AACxC,SAAS,aAAa;IACpB,OAAO,IAAI,CAAC,GAAG,CAAA;;GAEd,CAAC,CAAC;AACL,CAAC;AAED,wDAAwD;AACxD,SAAS,SAAS;IAChB,OAAO,IAAI,CAAC,GAAG,CAAA;;;;GAId,CAAC,CAAC;AACL,CAAC;AAED,uDAAuD;AACvD,SAAS,UAAU;IACjB,OAAO,IAAI,CAAC,GAAG,CAAA;;;GAGd,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,eAAe,GAAiD;IACpE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE;IACvF,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE;IACxF,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE;CACpF,CAAC;
|
|
1
|
+
{"version":3,"file":"attachment-trigger.class.js","sourceRoot":"","sources":["../../../src/components/attachment-trigger/attachment-trigger.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-trigger.styles.d.ts","sourceRoot":"","sources":["../../../src/components/attachment-trigger/attachment-trigger.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"attachment-trigger.styles.d.ts","sourceRoot":"","sources":["../../../src/components/attachment-trigger/attachment-trigger.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAsGlB,CAAC"}
|
|
@@ -10,6 +10,16 @@ export const styles = css `
|
|
|
10
10
|
display: contents;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
/* The internal native file input never has a visible surface of its own --
|
|
14
|
+
the trigger button/menu above are the only affordance a user interacts
|
|
15
|
+
with; this input exists purely so its synthetic .click() can open the OS
|
|
16
|
+
file picker. Exposed as a part (see the class doc's @csspart) only so a
|
|
17
|
+
consumer's ::part(hidden-input) can override this in the unlikely case
|
|
18
|
+
their integration needs to. */
|
|
19
|
+
[part='hidden-input'] {
|
|
20
|
+
display: none;
|
|
21
|
+
}
|
|
22
|
+
|
|
13
23
|
/* Shared visual treatment for both the single-capability button
|
|
14
24
|
([part='trigger']) and the multi-capability button ([part='menu-trigger'])
|
|
15
25
|
slotted into lyra-menu's own trigger slot -- the latter can't reuse
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-trigger.styles.js","sourceRoot":"","sources":["../../../src/components/attachment-trigger/attachment-trigger.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"attachment-trigger.styles.js","sourceRoot":"","sources":["../../../src/components/attachment-trigger/attachment-trigger.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsGxB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type TemplateResult } from 'lit';
|
|
2
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
3
|
+
export type AvatarSize = 'sm' | 'md' | 'lg';
|
|
4
|
+
export type AvatarShape = 'circle' | 'square';
|
|
5
|
+
export type AvatarTone = 'neutral' | 'brand' | 'success' | 'warning' | 'danger';
|
|
6
|
+
/**
|
|
7
|
+
* `<lyra-avatar>` — a small, fixed-size identity marker: an image, or an initials fallback when
|
|
8
|
+
* no image is set (or the image fails to load). First-party invention (no Web Awesome
|
|
9
|
+
* equivalent) -- purely presentational, no built-in interactivity; a consumer wraps it in their
|
|
10
|
+
* own `<button>`/`<lyra-menu>` trigger for a user-menu affordance.
|
|
11
|
+
*
|
|
12
|
+
* @customElement lyra-avatar
|
|
13
|
+
* @csspart base - The outer circle/square container.
|
|
14
|
+
* @csspart image - The `<img>`, only rendered while `src` is set and has not failed to load.
|
|
15
|
+
* @csspart initials - The fallback initials text, rendered whenever `image` isn't.
|
|
16
|
+
*/
|
|
17
|
+
export declare class LyraAvatar extends LyraElement {
|
|
18
|
+
static styles: import("lit").CSSResultGroup[];
|
|
19
|
+
/** Fallback text (typically 1-2 characters) shown when no image is set, or the image fails to
|
|
20
|
+
* load. */
|
|
21
|
+
initials: string;
|
|
22
|
+
/** Image URL. Takes priority over `initials` when set and loads successfully; falls back to
|
|
23
|
+
* `initials` on a load error. */
|
|
24
|
+
src?: string;
|
|
25
|
+
/** Image alt text -- required alongside `src` for accessibility. */
|
|
26
|
+
alt: string;
|
|
27
|
+
/** Visual size. `'md'` (the default) matches `--lyra-icon-button-size` (2.5rem). */
|
|
28
|
+
size: AvatarSize;
|
|
29
|
+
/** `'circle'` (the default) or `'square'`. */
|
|
30
|
+
shape: AvatarShape;
|
|
31
|
+
/** Recolors the initials-fallback background/text, mirroring `lyra-chip`'s `tone` vocabulary.
|
|
32
|
+
* `'neutral'` (the default) reads as a plain, unaccented circle. */
|
|
33
|
+
tone: AvatarTone;
|
|
34
|
+
private imageFailed;
|
|
35
|
+
private onImageError;
|
|
36
|
+
render(): TemplateResult;
|
|
37
|
+
}
|
|
38
|
+
declare global {
|
|
39
|
+
interface HTMLElementTagNameMap {
|
|
40
|
+
'lyra-avatar': LyraAvatar;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=avatar.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.class.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/avatar.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG7D,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5C,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC9C,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEhF;;;;;;;;;;GAUG;AACH,qBAAa,UAAW,SAAQ,WAAW;IACzC,MAAM,CAAC,MAAM,iCAAgC;IAE7C;gBACY;IACA,QAAQ,SAAM;IAE1B;sCACkC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEzB,oEAAoE;IACxD,GAAG,SAAM;IAErB,oFAAoF;IACvD,IAAI,EAAE,UAAU,CAAQ;IAErD,8CAA8C;IACjB,KAAK,EAAE,WAAW,CAAY;IAE3D;yEACqE;IACxC,IAAI,EAAE,UAAU,CAAa;IAEjD,OAAO,CAAC,WAAW,CAAS;IAErC,OAAO,CAAC,YAAY,CAElB;IAEF,MAAM,IAAI,cAAc,CASvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html, nothing } from 'lit';
|
|
8
|
+
import { property, state } from 'lit/decorators.js';
|
|
9
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
10
|
+
import { styles } from './avatar.styles.js';
|
|
11
|
+
/**
|
|
12
|
+
* `<lyra-avatar>` — a small, fixed-size identity marker: an image, or an initials fallback when
|
|
13
|
+
* no image is set (or the image fails to load). First-party invention (no Web Awesome
|
|
14
|
+
* equivalent) -- purely presentational, no built-in interactivity; a consumer wraps it in their
|
|
15
|
+
* own `<button>`/`<lyra-menu>` trigger for a user-menu affordance.
|
|
16
|
+
*
|
|
17
|
+
* @customElement lyra-avatar
|
|
18
|
+
* @csspart base - The outer circle/square container.
|
|
19
|
+
* @csspart image - The `<img>`, only rendered while `src` is set and has not failed to load.
|
|
20
|
+
* @csspart initials - The fallback initials text, rendered whenever `image` isn't.
|
|
21
|
+
*/
|
|
22
|
+
export class LyraAvatar extends LyraElement {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
/** Fallback text (typically 1-2 characters) shown when no image is set, or the image fails to
|
|
26
|
+
* load. */
|
|
27
|
+
this.initials = '';
|
|
28
|
+
/** Image alt text -- required alongside `src` for accessibility. */
|
|
29
|
+
this.alt = '';
|
|
30
|
+
/** Visual size. `'md'` (the default) matches `--lyra-icon-button-size` (2.5rem). */
|
|
31
|
+
this.size = 'md';
|
|
32
|
+
/** `'circle'` (the default) or `'square'`. */
|
|
33
|
+
this.shape = 'circle';
|
|
34
|
+
/** Recolors the initials-fallback background/text, mirroring `lyra-chip`'s `tone` vocabulary.
|
|
35
|
+
* `'neutral'` (the default) reads as a plain, unaccented circle. */
|
|
36
|
+
this.tone = 'neutral';
|
|
37
|
+
this.imageFailed = false;
|
|
38
|
+
this.onImageError = () => {
|
|
39
|
+
this.imageFailed = true;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
static { this.styles = [LyraElement.styles, styles]; }
|
|
43
|
+
render() {
|
|
44
|
+
const showImage = !!this.src && !this.imageFailed;
|
|
45
|
+
return html `
|
|
46
|
+
<span part="base">
|
|
47
|
+
${showImage
|
|
48
|
+
? html `<img part="image" src=${this.src} alt=${this.alt} @error=${this.onImageError} />`
|
|
49
|
+
: html `<span part="initials" aria-hidden=${this.alt ? 'true' : nothing}>${this.initials}</span>`}
|
|
50
|
+
</span>
|
|
51
|
+
`;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
__decorate([
|
|
55
|
+
property()
|
|
56
|
+
], LyraAvatar.prototype, "initials", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
property()
|
|
59
|
+
], LyraAvatar.prototype, "src", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
property()
|
|
62
|
+
], LyraAvatar.prototype, "alt", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
property({ reflect: true })
|
|
65
|
+
], LyraAvatar.prototype, "size", void 0);
|
|
66
|
+
__decorate([
|
|
67
|
+
property({ reflect: true })
|
|
68
|
+
], LyraAvatar.prototype, "shape", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
property({ reflect: true })
|
|
71
|
+
], LyraAvatar.prototype, "tone", void 0);
|
|
72
|
+
__decorate([
|
|
73
|
+
state()
|
|
74
|
+
], LyraAvatar.prototype, "imageFailed", void 0);
|
|
75
|
+
//# sourceMappingURL=avatar.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.class.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAM5C;;;;;;;;;;GAUG;AACH,MAAM,OAAO,UAAW,SAAQ,WAAW;IAA3C;;QAGE;oBACY;QACA,aAAQ,GAAG,EAAE,CAAC;QAM1B,oEAAoE;QACxD,QAAG,GAAG,EAAE,CAAC;QAErB,oFAAoF;QACvD,SAAI,GAAe,IAAI,CAAC;QAErD,8CAA8C;QACjB,UAAK,GAAgB,QAAQ,CAAC;QAE3D;6EACqE;QACxC,SAAI,GAAe,SAAS,CAAC;QAEzC,gBAAW,GAAG,KAAK,CAAC;QAE7B,iBAAY,GAAG,GAAS,EAAE;YAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC,CAAC;IAYJ,CAAC;aAvCQ,WAAM,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,AAA/B,CAAgC;IA6B7C,MAAM;QACJ,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAClD,OAAO,IAAI,CAAA;;UAEL,SAAS;YACT,CAAC,CAAC,IAAI,CAAA,yBAAyB,IAAI,CAAC,GAAI,QAAQ,IAAI,CAAC,GAAG,WAAW,IAAI,CAAC,YAAY,KAAK;YACzF,CAAC,CAAC,IAAI,CAAA,qCAAqC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,SAAS;;KAErG,CAAC;IACJ,CAAC;CACF;AAnCa;IAAX,QAAQ,EAAE;4CAAe;AAId;IAAX,QAAQ,EAAE;uCAAc;AAGb;IAAX,QAAQ,EAAE;uCAAU;AAGQ;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAAyB;AAGxB;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;yCAA+B;AAI9B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAA8B;AAEzC;IAAhB,KAAK,EAAE;+CAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/avatar.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.styles.d.ts","sourceRoot":"","sources":["../../../src/components/avatar/avatar.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAoDlB,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `
|
|
3
|
+
:host {
|
|
4
|
+
display: inline-flex;
|
|
5
|
+
vertical-align: middle;
|
|
6
|
+
--lyra-avatar-size: var(--lyra-size-2rem);
|
|
7
|
+
--lyra-avatar-bg: var(--lyra-color-surface-alt, var(--lyra-color-border));
|
|
8
|
+
--lyra-avatar-color: var(--lyra-color-text);
|
|
9
|
+
}
|
|
10
|
+
:host([size='sm']) {
|
|
11
|
+
--lyra-avatar-size: var(--lyra-size-1-5rem);
|
|
12
|
+
}
|
|
13
|
+
:host([size='lg']) {
|
|
14
|
+
--lyra-avatar-size: var(--lyra-size-2-5rem);
|
|
15
|
+
}
|
|
16
|
+
:host([tone='brand']) {
|
|
17
|
+
--lyra-avatar-bg: var(--lyra-color-brand-quiet);
|
|
18
|
+
--lyra-avatar-color: var(--lyra-color-brand);
|
|
19
|
+
}
|
|
20
|
+
:host([tone='success']) {
|
|
21
|
+
--lyra-avatar-bg: var(--lyra-color-success-quiet);
|
|
22
|
+
--lyra-avatar-color: var(--lyra-color-success);
|
|
23
|
+
}
|
|
24
|
+
:host([tone='warning']) {
|
|
25
|
+
--lyra-avatar-bg: var(--lyra-color-warning-quiet);
|
|
26
|
+
--lyra-avatar-color: var(--lyra-color-warning);
|
|
27
|
+
}
|
|
28
|
+
:host([tone='danger']) {
|
|
29
|
+
--lyra-avatar-bg: var(--lyra-color-danger-quiet);
|
|
30
|
+
--lyra-avatar-color: var(--lyra-color-danger);
|
|
31
|
+
}
|
|
32
|
+
[part='base'] {
|
|
33
|
+
display: inline-flex;
|
|
34
|
+
align-items: center;
|
|
35
|
+
justify-content: center;
|
|
36
|
+
inline-size: var(--lyra-avatar-size);
|
|
37
|
+
block-size: var(--lyra-avatar-size);
|
|
38
|
+
overflow: hidden;
|
|
39
|
+
border-radius: var(--lyra-radius-pill);
|
|
40
|
+
background: var(--lyra-avatar-bg);
|
|
41
|
+
color: var(--lyra-avatar-color);
|
|
42
|
+
font-size: var(--lyra-font-size-sm);
|
|
43
|
+
font-weight: var(--lyra-font-weight-semibold);
|
|
44
|
+
flex: 0 0 auto;
|
|
45
|
+
}
|
|
46
|
+
:host([shape='square']) [part='base'] {
|
|
47
|
+
border-radius: var(--lyra-radius);
|
|
48
|
+
}
|
|
49
|
+
[part='image'] {
|
|
50
|
+
inline-size: 100%;
|
|
51
|
+
block-size: 100%;
|
|
52
|
+
object-fit: cover;
|
|
53
|
+
}
|
|
54
|
+
`;
|
|
55
|
+
//# sourceMappingURL=avatar.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.styles.js","sourceRoot":"","sources":["../../../src/components/avatar/avatar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDxB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type TemplateResult, type PropertyValues } from 'lit';
|
|
2
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
3
|
+
export type CardAppearance = 'accent' | 'filled' | 'outlined' | 'filled-outlined' | 'plain';
|
|
4
|
+
/**
|
|
5
|
+
* `<lyra-card>` — a generic, styled bordered content container: the "small bordered surface with
|
|
6
|
+
* padding" idiom common to hero highlights, clickable grid tiles, and management-list items. A
|
|
7
|
+
* direct `<lyra-*>` counterpart to `<wa-card>`'s contract, staying slot-compatible with
|
|
8
|
+
* `lyra-result-card` where they overlap.
|
|
9
|
+
*
|
|
10
|
+
* @customElement lyra-card
|
|
11
|
+
* @slot - The card body.
|
|
12
|
+
* @slot header - Header row content, rendered above the body.
|
|
13
|
+
* @slot media - Media content (e.g. an image), rendered above the header.
|
|
14
|
+
* @slot footer - Footer content, rendered below the body.
|
|
15
|
+
* @slot actions - Small header controls, rendered alongside the header content.
|
|
16
|
+
* @csspart base - The outer container (a `<div>`, or an `<a>` when `href` is set).
|
|
17
|
+
* @csspart media - Wrapper around the `media` slot. Hidden entirely when empty.
|
|
18
|
+
* @csspart header - Wrapper around the `header` slot and `actions`. Hidden entirely when both are empty.
|
|
19
|
+
* @csspart actions - Wrapper around the `actions` slot. Hidden entirely when empty.
|
|
20
|
+
* @csspart body - Wrapper around the default slot.
|
|
21
|
+
* @csspart footer - Wrapper around the `footer` slot. Hidden entirely when empty.
|
|
22
|
+
*/
|
|
23
|
+
export declare class LyraCard extends LyraElement {
|
|
24
|
+
static styles: import("lit").CSSResultGroup[];
|
|
25
|
+
/** Visual treatment, mirroring `wa-card`'s `appearance` vocabulary. `'outlined'` (the default)
|
|
26
|
+
* is a bordered surface -- the common "small bordered surface with padding" idiom. */
|
|
27
|
+
appearance: CardAppearance;
|
|
28
|
+
/** Opt-in hover/focus-visible treatment (border-color shift, cursor: pointer) for a card used
|
|
29
|
+
* as a clickable tile -- purely visual; this component takes no position on what "activate"
|
|
30
|
+
* means unless `href` is also set. `false` (the default) reproduces today's exact static
|
|
31
|
+
* output. */
|
|
32
|
+
interactive: boolean;
|
|
33
|
+
/** When set, the card's root renders as a real `<a href=...>` instead of a `<div>` -- for a
|
|
34
|
+
* whole-card link (e.g. a wide CTA tile). Unset (the default) renders a plain `<div>`. */
|
|
35
|
+
href?: string;
|
|
36
|
+
private hasHeaderSlot;
|
|
37
|
+
private hasMediaSlot;
|
|
38
|
+
private hasFooterSlot;
|
|
39
|
+
private hasActionsSlot;
|
|
40
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
41
|
+
private onHeaderSlotChange;
|
|
42
|
+
private onMediaSlotChange;
|
|
43
|
+
private onFooterSlotChange;
|
|
44
|
+
private onActionsSlotChange;
|
|
45
|
+
render(): TemplateResult;
|
|
46
|
+
}
|
|
47
|
+
declare global {
|
|
48
|
+
interface HTMLElementTagNameMap {
|
|
49
|
+
'lyra-card': LyraCard;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=card.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.class.d.ts","sourceRoot":"","sources":["../../../src/components/card/card.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG7D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,iBAAiB,GAAG,OAAO,CAAC;AAE5F;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,QAAS,SAAQ,WAAW;IACvC,MAAM,CAAC,MAAM,iCAAgC;IAE7C;2FACuF;IAC1D,UAAU,EAAE,cAAc,CAAc;IAErE;;;kBAGc;IAC8B,WAAW,UAAS;IAEhE;+FAC2F;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;IAEjB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;IAExC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAQlD;IAED,OAAO,CAAC,kBAAkB,CAExB;IACF,OAAO,CAAC,iBAAiB,CAEvB;IACF,OAAO,CAAC,kBAAkB,CAExB;IACF,OAAO,CAAC,mBAAmB,CAEzB;IAEF,MAAM,IAAI,cAAc,CAoBvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html } from 'lit';
|
|
8
|
+
import { property, state } from 'lit/decorators.js';
|
|
9
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
10
|
+
import { styles } from './card.styles.js';
|
|
11
|
+
/**
|
|
12
|
+
* `<lyra-card>` — a generic, styled bordered content container: the "small bordered surface with
|
|
13
|
+
* padding" idiom common to hero highlights, clickable grid tiles, and management-list items. A
|
|
14
|
+
* direct `<lyra-*>` counterpart to `<wa-card>`'s contract, staying slot-compatible with
|
|
15
|
+
* `lyra-result-card` where they overlap.
|
|
16
|
+
*
|
|
17
|
+
* @customElement lyra-card
|
|
18
|
+
* @slot - The card body.
|
|
19
|
+
* @slot header - Header row content, rendered above the body.
|
|
20
|
+
* @slot media - Media content (e.g. an image), rendered above the header.
|
|
21
|
+
* @slot footer - Footer content, rendered below the body.
|
|
22
|
+
* @slot actions - Small header controls, rendered alongside the header content.
|
|
23
|
+
* @csspart base - The outer container (a `<div>`, or an `<a>` when `href` is set).
|
|
24
|
+
* @csspart media - Wrapper around the `media` slot. Hidden entirely when empty.
|
|
25
|
+
* @csspart header - Wrapper around the `header` slot and `actions`. Hidden entirely when both are empty.
|
|
26
|
+
* @csspart actions - Wrapper around the `actions` slot. Hidden entirely when empty.
|
|
27
|
+
* @csspart body - Wrapper around the default slot.
|
|
28
|
+
* @csspart footer - Wrapper around the `footer` slot. Hidden entirely when empty.
|
|
29
|
+
*/
|
|
30
|
+
export class LyraCard extends LyraElement {
|
|
31
|
+
constructor() {
|
|
32
|
+
super(...arguments);
|
|
33
|
+
/** Visual treatment, mirroring `wa-card`'s `appearance` vocabulary. `'outlined'` (the default)
|
|
34
|
+
* is a bordered surface -- the common "small bordered surface with padding" idiom. */
|
|
35
|
+
this.appearance = 'outlined';
|
|
36
|
+
/** Opt-in hover/focus-visible treatment (border-color shift, cursor: pointer) for a card used
|
|
37
|
+
* as a clickable tile -- purely visual; this component takes no position on what "activate"
|
|
38
|
+
* means unless `href` is also set. `false` (the default) reproduces today's exact static
|
|
39
|
+
* output. */
|
|
40
|
+
this.interactive = false;
|
|
41
|
+
this.hasHeaderSlot = false;
|
|
42
|
+
this.hasMediaSlot = false;
|
|
43
|
+
this.hasFooterSlot = false;
|
|
44
|
+
this.hasActionsSlot = false;
|
|
45
|
+
this.onHeaderSlotChange = (e) => {
|
|
46
|
+
this.hasHeaderSlot = e.target.assignedElements({ flatten: true }).length > 0;
|
|
47
|
+
};
|
|
48
|
+
this.onMediaSlotChange = (e) => {
|
|
49
|
+
this.hasMediaSlot = e.target.assignedElements({ flatten: true }).length > 0;
|
|
50
|
+
};
|
|
51
|
+
this.onFooterSlotChange = (e) => {
|
|
52
|
+
this.hasFooterSlot = e.target.assignedElements({ flatten: true }).length > 0;
|
|
53
|
+
};
|
|
54
|
+
this.onActionsSlotChange = (e) => {
|
|
55
|
+
this.hasActionsSlot = e.target.assignedElements({ flatten: true }).length > 0;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
static { this.styles = [LyraElement.styles, styles]; }
|
|
59
|
+
willUpdate(changed) {
|
|
60
|
+
if (!this.hasUpdated) {
|
|
61
|
+
this.hasHeaderSlot = Array.from(this.children).some((el) => el.getAttribute('slot') === 'header');
|
|
62
|
+
this.hasMediaSlot = Array.from(this.children).some((el) => el.getAttribute('slot') === 'media');
|
|
63
|
+
this.hasFooterSlot = Array.from(this.children).some((el) => el.getAttribute('slot') === 'footer');
|
|
64
|
+
this.hasActionsSlot = Array.from(this.children).some((el) => el.getAttribute('slot') === 'actions');
|
|
65
|
+
}
|
|
66
|
+
void changed;
|
|
67
|
+
}
|
|
68
|
+
render() {
|
|
69
|
+
const hasHeader = this.hasHeaderSlot || this.hasActionsSlot;
|
|
70
|
+
const body = html `
|
|
71
|
+
<div part="media" ?hidden=${!this.hasMediaSlot}>
|
|
72
|
+
<slot name="media" @slotchange=${this.onMediaSlotChange}></slot>
|
|
73
|
+
</div>
|
|
74
|
+
<div part="header" ?hidden=${!hasHeader}>
|
|
75
|
+
<slot name="header" @slotchange=${this.onHeaderSlotChange}></slot>
|
|
76
|
+
<div part="actions" ?hidden=${!this.hasActionsSlot}>
|
|
77
|
+
<slot name="actions" @slotchange=${this.onActionsSlotChange}></slot>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
<div part="body"><slot></slot></div>
|
|
81
|
+
<div part="footer" ?hidden=${!this.hasFooterSlot}>
|
|
82
|
+
<slot name="footer" @slotchange=${this.onFooterSlotChange}></slot>
|
|
83
|
+
</div>
|
|
84
|
+
`;
|
|
85
|
+
return this.href
|
|
86
|
+
? html `<a part="base" href=${this.href}>${body}</a>`
|
|
87
|
+
: html `<div part="base">${body}</div>`;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
__decorate([
|
|
91
|
+
property({ reflect: true })
|
|
92
|
+
], LyraCard.prototype, "appearance", void 0);
|
|
93
|
+
__decorate([
|
|
94
|
+
property({ type: Boolean, reflect: true })
|
|
95
|
+
], LyraCard.prototype, "interactive", void 0);
|
|
96
|
+
__decorate([
|
|
97
|
+
property()
|
|
98
|
+
], LyraCard.prototype, "href", void 0);
|
|
99
|
+
__decorate([
|
|
100
|
+
state()
|
|
101
|
+
], LyraCard.prototype, "hasHeaderSlot", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
state()
|
|
104
|
+
], LyraCard.prototype, "hasMediaSlot", void 0);
|
|
105
|
+
__decorate([
|
|
106
|
+
state()
|
|
107
|
+
], LyraCard.prototype, "hasFooterSlot", void 0);
|
|
108
|
+
__decorate([
|
|
109
|
+
state()
|
|
110
|
+
], LyraCard.prototype, "hasActionsSlot", void 0);
|
|
111
|
+
//# sourceMappingURL=card.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.class.js","sourceRoot":"","sources":["../../../src/components/card/card.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/components/card/card.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/components/card/card.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.styles.d.ts","sourceRoot":"","sources":["../../../src/components/card/card.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA0ElB,CAAC"}
|