@aceshooting/lyra-ui 5.0.0 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -12
- package/custom-elements.json +2150 -220
- package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts +2 -0
- package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts.map +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js +2 -0
- package/dist/components/agent-tools/activity-feed/activity-feed.class.js.map +1 -1
- package/dist/components/agent-tools/agent-run/agent-run.class.d.ts +1 -0
- package/dist/components/agent-tools/agent-run/agent-run.class.d.ts.map +1 -1
- package/dist/components/agent-tools/agent-run/agent-run.class.js +1 -0
- package/dist/components/agent-tools/agent-run/agent-run.class.js.map +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts +2 -0
- package/dist/components/agent-tools/compare-panel/compare-panel.class.d.ts.map +1 -1
- package/dist/components/agent-tools/compare-panel/compare-panel.class.js +2 -0
- package/dist/components/agent-tools/compare-panel/compare-panel.class.js.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts +5 -0
- package/dist/components/agent-tools/stack-trace/stack-trace.class.d.ts.map +1 -1
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js +5 -0
- package/dist/components/agent-tools/stack-trace/stack-trace.class.js.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.d.ts +3 -0
- package/dist/components/agent-tools/terminal/terminal.class.d.ts.map +1 -1
- package/dist/components/agent-tools/terminal/terminal.class.js +3 -0
- package/dist/components/agent-tools/terminal/terminal.class.js.map +1 -1
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.d.ts +2 -0
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.d.ts.map +1 -1
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js +2 -0
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.js.map +1 -1
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.d.ts +2 -0
- 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 +2 -0
- package/dist/components/agent-tools/tool-approval-dialog/tool-approval-dialog.class.js.map +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +3 -0
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +3 -0
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js.map +1 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts +1 -0
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js +1 -0
- package/dist/components/agent-tools/tool-result-view/tool-result-view.class.js.map +1 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts +1 -0
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js +1 -0
- package/dist/components/agent-tools/tool-select-dialog/tool-select-dialog.class.js.map +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts +2 -0
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.d.ts.map +1 -1
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js +2 -0
- package/dist/components/agent-tools/tool-timeline/tool-timeline.class.js.map +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +15 -0
- package/dist/components/charts/chart/chart.class.d.ts.map +1 -1
- package/dist/components/charts/chart/chart.class.js +15 -0
- package/dist/components/charts/chart/chart.class.js.map +1 -1
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts +2 -0
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts.map +1 -1
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js +2 -0
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js.map +1 -1
- package/dist/components/conversation/branch-picker/branch-picker.class.d.ts +2 -0
- package/dist/components/conversation/branch-picker/branch-picker.class.d.ts.map +1 -1
- package/dist/components/conversation/branch-picker/branch-picker.class.js +2 -0
- package/dist/components/conversation/branch-picker/branch-picker.class.js.map +1 -1
- package/dist/components/conversation/chat-message/chat-message.class.d.ts +5 -1
- package/dist/components/conversation/chat-message/chat-message.class.d.ts.map +1 -1
- package/dist/components/conversation/chat-message/chat-message.class.js +5 -1
- package/dist/components/conversation/chat-message/chat-message.class.js.map +1 -1
- package/dist/components/conversation/chat-message/chat-message.styles.d.ts.map +1 -1
- package/dist/components/conversation/chat-message/chat-message.styles.js +15 -2
- package/dist/components/conversation/chat-message/chat-message.styles.js.map +1 -1
- package/dist/components/conversation/code-block/code-block.class.d.ts +4 -0
- package/dist/components/conversation/code-block/code-block.class.d.ts.map +1 -1
- package/dist/components/conversation/code-block/code-block.class.js +4 -0
- package/dist/components/conversation/code-block/code-block.class.js.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.class.d.ts +2 -0
- package/dist/components/conversation/conversation-item/conversation-item.class.d.ts.map +1 -1
- package/dist/components/conversation/conversation-item/conversation-item.class.js +2 -0
- package/dist/components/conversation/conversation-item/conversation-item.class.js.map +1 -1
- package/dist/components/conversation/markdown/markdown.class.d.ts +2 -0
- package/dist/components/conversation/markdown/markdown.class.d.ts.map +1 -1
- package/dist/components/conversation/markdown/markdown.class.js +2 -0
- package/dist/components/conversation/markdown/markdown.class.js.map +1 -1
- package/dist/components/conversation/push-to-talk/push-to-talk.class.d.ts +2 -0
- package/dist/components/conversation/push-to-talk/push-to-talk.class.d.ts.map +1 -1
- package/dist/components/conversation/push-to-talk/push-to-talk.class.js +2 -0
- package/dist/components/conversation/push-to-talk/push-to-talk.class.js.map +1 -1
- package/dist/components/conversation/stream-status/stream-status.class.d.ts +5 -0
- package/dist/components/conversation/stream-status/stream-status.class.d.ts.map +1 -1
- package/dist/components/conversation/stream-status/stream-status.class.js +5 -0
- package/dist/components/conversation/stream-status/stream-status.class.js.map +1 -1
- package/dist/components/conversation/streaming-text/streaming-text.class.d.ts +2 -0
- package/dist/components/conversation/streaming-text/streaming-text.class.d.ts.map +1 -1
- package/dist/components/conversation/streaming-text/streaming-text.class.js +2 -0
- package/dist/components/conversation/streaming-text/streaming-text.class.js.map +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts +1 -0
- package/dist/components/conversation/transcript-feed/transcript-feed.class.d.ts.map +1 -1
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js +1 -0
- package/dist/components/conversation/transcript-feed/transcript-feed.class.js.map +1 -1
- package/dist/components/data/calendar/calendar.class.d.ts +6 -0
- package/dist/components/data/calendar/calendar.class.d.ts.map +1 -1
- package/dist/components/data/calendar/calendar.class.js +6 -0
- package/dist/components/data/calendar/calendar.class.js.map +1 -1
- package/dist/components/data/context-meter/context-meter.class.d.ts +1 -0
- package/dist/components/data/context-meter/context-meter.class.d.ts.map +1 -1
- package/dist/components/data/context-meter/context-meter.class.js +1 -0
- package/dist/components/data/context-meter/context-meter.class.js.map +1 -1
- package/dist/components/data/data-grid/data-grid.class.d.ts +1 -0
- package/dist/components/data/data-grid/data-grid.class.d.ts.map +1 -1
- package/dist/components/data/data-grid/data-grid.class.js +1 -0
- package/dist/components/data/data-grid/data-grid.class.js.map +1 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.d.ts +3 -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 +3 -1
- package/dist/components/data/flow-canvas/flow-canvas.class.js.map +1 -1
- package/dist/components/data/flow-minimap/flow-minimap.class.d.ts +2 -2
- package/dist/components/data/flow-minimap/flow-minimap.class.js +2 -2
- package/dist/components/data/flow-node/flow-node.class.d.ts +1 -1
- package/dist/components/data/flow-node/flow-node.class.js +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +51 -2
- package/dist/components/data/heatmap/heatmap.class.d.ts.map +1 -1
- package/dist/components/data/heatmap/heatmap.class.js +42 -6
- package/dist/components/data/heatmap/heatmap.class.js.map +1 -1
- package/dist/components/data/heatmap/heatmap.styles.d.ts.map +1 -1
- package/dist/components/data/heatmap/heatmap.styles.js +19 -0
- package/dist/components/data/heatmap/heatmap.styles.js.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +20 -0
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.class.js +35 -0
- package/dist/components/data/sequence-strip/sequence-strip.class.js.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.styles.d.ts.map +1 -1
- package/dist/components/data/sequence-strip/sequence-strip.styles.js +29 -0
- package/dist/components/data/sequence-strip/sequence-strip.styles.js.map +1 -1
- package/dist/components/data/table/table.class.d.ts +11 -0
- package/dist/components/data/table/table.class.d.ts.map +1 -1
- package/dist/components/data/table/table.class.js +11 -0
- package/dist/components/data/table/table.class.js.map +1 -1
- package/dist/components/data/timeline/timeline-item.class.d.ts +17 -0
- package/dist/components/data/timeline/timeline-item.class.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline-item.class.js +17 -0
- package/dist/components/data/timeline/timeline-item.class.js.map +1 -1
- package/dist/components/data/timeline/timeline.styles.d.ts.map +1 -1
- package/dist/components/data/timeline/timeline.styles.js +6 -3
- package/dist/components/data/timeline/timeline.styles.js.map +1 -1
- package/dist/components/data/tree/tree-node.class.d.ts +3 -0
- package/dist/components/data/tree/tree-node.class.d.ts.map +1 -1
- package/dist/components/data/tree/tree-node.class.js +3 -0
- package/dist/components/data/tree/tree-node.class.js.map +1 -1
- package/dist/components/forms/button/button.class.d.ts +24 -0
- package/dist/components/forms/button/button.class.d.ts.map +1 -1
- package/dist/components/forms/button/button.class.js +24 -0
- package/dist/components/forms/button/button.class.js.map +1 -1
- package/dist/components/forms/code-editor/code-editor.class.d.ts +28 -12
- package/dist/components/forms/code-editor/code-editor.class.d.ts.map +1 -1
- package/dist/components/forms/code-editor/code-editor.class.js +44 -14
- package/dist/components/forms/code-editor/code-editor.class.js.map +1 -1
- package/dist/components/forms/code-editor/code-editor.styles.d.ts.map +1 -1
- package/dist/components/forms/code-editor/code-editor.styles.js +4 -0
- package/dist/components/forms/code-editor/code-editor.styles.js.map +1 -1
- package/dist/components/forms/combobox/combobox.class.d.ts +10 -0
- package/dist/components/forms/combobox/combobox.class.d.ts.map +1 -1
- package/dist/components/forms/combobox/combobox.class.js +16 -0
- package/dist/components/forms/combobox/combobox.class.js.map +1 -1
- package/dist/components/forms/combobox/option.class.d.ts +3 -3
- package/dist/components/forms/combobox/option.class.d.ts.map +1 -1
- package/dist/components/forms/combobox/option.class.js +9 -0
- package/dist/components/forms/combobox/option.class.js.map +1 -1
- package/dist/components/forms/date-picker/date-input.class.d.ts +3 -0
- package/dist/components/forms/date-picker/date-input.class.d.ts.map +1 -1
- package/dist/components/forms/date-picker/date-input.class.js +3 -0
- package/dist/components/forms/date-picker/date-input.class.js.map +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +37 -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 +113 -10
- 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 -0
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js.map +1 -1
- package/dist/components/forms/icon-button/icon-button.class.d.ts +4 -0
- package/dist/components/forms/icon-button/icon-button.class.d.ts.map +1 -1
- package/dist/components/forms/icon-button/icon-button.class.js +4 -0
- package/dist/components/forms/icon-button/icon-button.class.js.map +1 -1
- package/dist/components/forms/input/input.class.d.ts +11 -3
- package/dist/components/forms/input/input.class.d.ts.map +1 -1
- package/dist/components/forms/input/input.class.js +3 -0
- package/dist/components/forms/input/input.class.js.map +1 -1
- package/dist/components/forms/input/time-input.class.d.ts +12 -0
- package/dist/components/forms/input/time-input.class.d.ts.map +1 -1
- package/dist/components/forms/input/time-input.class.js +27 -0
- package/dist/components/forms/input/time-input.class.js.map +1 -1
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts +7 -0
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts.map +1 -1
- package/dist/components/forms/rubric-form/rubric-form.class.js +7 -0
- package/dist/components/forms/rubric-form/rubric-form.class.js.map +1 -1
- package/dist/components/forms/select/select.class.d.ts +8 -0
- package/dist/components/forms/select/select.class.d.ts.map +1 -1
- package/dist/components/forms/select/select.class.js +8 -0
- package/dist/components/forms/select/select.class.js.map +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.d.ts +1 -1
- package/dist/components/forms/swatch-picker/swatch-picker.class.js +1 -1
- package/dist/components/forms/switch/switch.class.d.ts +6 -0
- package/dist/components/forms/switch/switch.class.d.ts.map +1 -1
- package/dist/components/forms/switch/switch.class.js +6 -0
- package/dist/components/forms/switch/switch.class.js.map +1 -1
- package/dist/components/forms/token-input/token-input.class.d.ts +2 -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 +2 -0
- package/dist/components/forms/token-input/token-input.class.js.map +1 -1
- package/dist/components/layout/app-rail/app-rail.class.d.ts +8 -0
- package/dist/components/layout/app-rail/app-rail.class.d.ts.map +1 -1
- package/dist/components/layout/app-rail/app-rail.class.js +8 -0
- package/dist/components/layout/app-rail/app-rail.class.js.map +1 -1
- package/dist/components/layout/button-group/button-group.class.d.ts +1 -1
- package/dist/components/layout/button-group/button-group.class.js +1 -1
- package/dist/components/layout/command-palette/command-palette.class.d.ts +12 -0
- package/dist/components/layout/command-palette/command-palette.class.d.ts.map +1 -1
- package/dist/components/layout/command-palette/command-palette.class.js +12 -0
- package/dist/components/layout/command-palette/command-palette.class.js.map +1 -1
- package/dist/components/layout/control-group/control-group.class.d.ts +1 -1
- package/dist/components/layout/control-group/control-group.class.js +1 -1
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.d.ts +7 -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 +7 -0
- package/dist/components/layout/dashboard-grid/dashboard-grid.class.js.map +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.d.ts +3 -0
- package/dist/components/layout/dock-panel/dock-panel.class.d.ts.map +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.js +3 -0
- package/dist/components/layout/dock-panel/dock-panel.class.js.map +1 -1
- package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts +2 -0
- package/dist/components/layout/responsive-panel/responsive-panel.class.d.ts.map +1 -1
- package/dist/components/layout/responsive-panel/responsive-panel.class.js +2 -0
- package/dist/components/layout/responsive-panel/responsive-panel.class.js.map +1 -1
- package/dist/components/layout/scroller/scroller.class.d.ts +2 -2
- package/dist/components/layout/scroller/scroller.class.js +2 -2
- package/dist/components/layout/segmented/segmented.class.d.ts +6 -0
- package/dist/components/layout/segmented/segmented.class.d.ts.map +1 -1
- package/dist/components/layout/segmented/segmented.class.js +6 -0
- package/dist/components/layout/segmented/segmented.class.js.map +1 -1
- package/dist/components/layout/split/split.class.d.ts +68 -15
- package/dist/components/layout/split/split.class.d.ts.map +1 -1
- package/dist/components/layout/split/split.class.js +80 -21
- package/dist/components/layout/split/split.class.js.map +1 -1
- package/dist/components/layout/stepper/stepper.class.d.ts +52 -11
- package/dist/components/layout/stepper/stepper.class.d.ts.map +1 -1
- package/dist/components/layout/stepper/stepper.class.js +69 -17
- package/dist/components/layout/stepper/stepper.class.js.map +1 -1
- package/dist/components/layout/virtual-list/virtual-list.class.d.ts +3 -0
- 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/widget/widget.class.d.ts +6 -0
- package/dist/components/layout/widget/widget.class.d.ts.map +1 -1
- package/dist/components/layout/widget/widget.class.js +6 -0
- package/dist/components/layout/widget/widget.class.js.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.d.ts +13 -0
- package/dist/components/media/attachment-chip/attachment-chip.class.d.ts.map +1 -1
- package/dist/components/media/attachment-chip/attachment-chip.class.js +13 -0
- package/dist/components/media/attachment-chip/attachment-chip.class.js.map +1 -1
- package/dist/components/media/avatar/avatar.class.d.ts +6 -0
- package/dist/components/media/avatar/avatar.class.d.ts.map +1 -1
- package/dist/components/media/avatar/avatar.class.js +6 -0
- package/dist/components/media/avatar/avatar.class.js.map +1 -1
- package/dist/components/media/media-card/media-card.class.d.ts +2 -0
- package/dist/components/media/media-card/media-card.class.d.ts.map +1 -1
- package/dist/components/media/media-card/media-card.class.js +2 -0
- package/dist/components/media/media-card/media-card.class.js.map +1 -1
- package/dist/components/media/playback/playback.class.d.ts +2 -0
- package/dist/components/media/playback/playback.class.d.ts.map +1 -1
- package/dist/components/media/playback/playback.class.js +2 -0
- package/dist/components/media/playback/playback.class.js.map +1 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts +3 -0
- package/dist/components/media/zoomable-frame/zoomable-frame.class.d.ts.map +1 -1
- package/dist/components/media/zoomable-frame/zoomable-frame.class.js +3 -0
- package/dist/components/media/zoomable-frame/zoomable-frame.class.js.map +1 -1
- package/dist/components/overlays/badge/badge.class.d.ts +6 -0
- package/dist/components/overlays/badge/badge.class.d.ts.map +1 -1
- package/dist/components/overlays/badge/badge.class.js +6 -0
- package/dist/components/overlays/badge/badge.class.js.map +1 -1
- package/dist/components/overlays/callout/callout.class.d.ts +6 -0
- package/dist/components/overlays/callout/callout.class.d.ts.map +1 -1
- package/dist/components/overlays/callout/callout.class.js +6 -0
- package/dist/components/overlays/callout/callout.class.js.map +1 -1
- package/dist/components/overlays/chip/chip.class.d.ts +18 -0
- package/dist/components/overlays/chip/chip.class.d.ts.map +1 -1
- package/dist/components/overlays/chip/chip.class.js +18 -0
- package/dist/components/overlays/chip/chip.class.js.map +1 -1
- package/dist/components/overlays/dialog/dialog.class.d.ts +6 -0
- package/dist/components/overlays/dialog/dialog.class.d.ts.map +1 -1
- package/dist/components/overlays/dialog/dialog.class.js +6 -0
- package/dist/components/overlays/dialog/dialog.class.js.map +1 -1
- package/dist/components/overlays/drawer/drawer.class.d.ts +6 -0
- package/dist/components/overlays/drawer/drawer.class.d.ts.map +1 -1
- package/dist/components/overlays/drawer/drawer.class.js +6 -0
- package/dist/components/overlays/drawer/drawer.class.js.map +1 -1
- package/dist/components/overlays/progress/progress-ring.class.d.ts +1 -0
- package/dist/components/overlays/progress/progress-ring.class.d.ts.map +1 -1
- package/dist/components/overlays/progress/progress-ring.class.js +1 -0
- package/dist/components/overlays/progress/progress-ring.class.js.map +1 -1
- package/dist/components/overlays/skeleton/skeleton.class.d.ts +2 -0
- package/dist/components/overlays/skeleton/skeleton.class.d.ts.map +1 -1
- package/dist/components/overlays/skeleton/skeleton.class.js +2 -0
- package/dist/components/overlays/skeleton/skeleton.class.js.map +1 -1
- package/dist/components/overlays/spinner/spinner.class.d.ts +4 -0
- package/dist/components/overlays/spinner/spinner.class.d.ts.map +1 -1
- package/dist/components/overlays/spinner/spinner.class.js +4 -0
- package/dist/components/overlays/spinner/spinner.class.js.map +1 -1
- package/dist/components/overlays/toast/toast-item.class.d.ts +11 -0
- package/dist/components/overlays/toast/toast-item.class.d.ts.map +1 -1
- package/dist/components/overlays/toast/toast-item.class.js +11 -0
- package/dist/components/overlays/toast/toast-item.class.js.map +1 -1
- package/dist/components/overlays/toast/toast.class.d.ts +15 -0
- package/dist/components/overlays/toast/toast.class.d.ts.map +1 -1
- package/dist/components/overlays/toast/toast.class.js +15 -0
- package/dist/components/overlays/toast/toast.class.js.map +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +8 -0
- package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts.map +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.class.js +8 -0
- package/dist/components/retrieval/citation-badge/citation-badge.class.js.map +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +1 -0
- package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts.map +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.class.js +1 -0
- package/dist/components/retrieval/entity-chip/entity-chip.class.js.map +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts +2 -0
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.d.ts.map +1 -1
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js +2 -0
- package/dist/components/retrieval/ingestion-queue/ingestion-queue.class.js.map +1 -1
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts +1 -0
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.d.ts.map +1 -1
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js +1 -0
- package/dist/components/retrieval/retrieval-trace/retrieval-trace.class.js.map +1 -1
- package/dist/components/utility/diff-view/diff-view.class.d.ts +1 -0
- package/dist/components/utility/diff-view/diff-view.class.d.ts.map +1 -1
- package/dist/components/utility/diff-view/diff-view.class.js +1 -0
- package/dist/components/utility/diff-view/diff-view.class.js.map +1 -1
- package/dist/components/utility/icon/icon.class.d.ts +1 -0
- package/dist/components/utility/icon/icon.class.d.ts.map +1 -1
- package/dist/components/utility/icon/icon.class.js +1 -0
- package/dist/components/utility/icon/icon.class.js.map +1 -1
- package/dist/components/utility/json-viewer/json-viewer.class.d.ts +3 -0
- package/dist/components/utility/json-viewer/json-viewer.class.d.ts.map +1 -1
- package/dist/components/utility/json-viewer/json-viewer.class.js +3 -0
- package/dist/components/utility/json-viewer/json-viewer.class.js.map +1 -1
- package/dist/components/utility/known-date/known-date.class.d.ts +11 -0
- package/dist/components/utility/known-date/known-date.class.d.ts.map +1 -1
- package/dist/components/utility/known-date/known-date.class.js +11 -0
- package/dist/components/utility/known-date/known-date.class.js.map +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts +2 -0
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js +2 -0
- package/dist/components/viewers/calendar-viewer/calendar-viewer.class.js.map +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts +5 -0
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js +5 -0
- package/dist/components/viewers/dataset-viewer/dataset-viewer.class.js.map +1 -1
- package/dist/components/viewers/document-compare/document-compare.class.d.ts +1 -1
- package/dist/components/viewers/document-compare/document-compare.class.js +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.d.ts +3 -0
- package/dist/components/viewers/document-preview/document-preview.class.d.ts.map +1 -1
- package/dist/components/viewers/document-preview/document-preview.class.js +3 -0
- package/dist/components/viewers/document-preview/document-preview.class.js.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts +2 -0
- package/dist/components/viewers/email-viewer/email-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/email-viewer/email-viewer.class.js +2 -0
- package/dist/components/viewers/email-viewer/email-viewer.class.js.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.d.ts +2 -0
- package/dist/components/viewers/html-viewer/html-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/html-viewer/html-viewer.class.js +2 -0
- package/dist/components/viewers/html-viewer/html-viewer.class.js.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts.map +1 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +41 -9
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js.map +1 -1
- package/dist/internal/css-length.d.ts +40 -0
- package/dist/internal/css-length.d.ts.map +1 -0
- package/dist/internal/css-length.js +72 -0
- package/dist/internal/css-length.js.map +1 -0
- package/dist/internal/orientation-breakpoint.d.ts +12 -0
- package/dist/internal/orientation-breakpoint.d.ts.map +1 -0
- package/dist/internal/orientation-breakpoint.js +127 -0
- package/dist/internal/orientation-breakpoint.js.map +1 -0
- package/dist/lyra.d.ts +2 -2
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js.map +1 -1
- package/llms/components/lr-accordion-item.md +23 -0
- package/llms/components/lr-accordion.md +23 -0
- package/llms/components/lr-activity-feed.md +45 -0
- package/llms/components/lr-agent-run.md +66 -0
- package/llms/components/lr-agent-trace.md +42 -0
- package/llms/components/lr-agent-workspace.md +109 -0
- package/llms/components/lr-animated-image.md +66 -0
- package/llms/components/lr-animation.md +73 -0
- package/llms/components/lr-app-rail-item.md +218 -0
- package/llms/components/lr-app-rail.md +218 -0
- package/llms/components/lr-archive-viewer.md +36 -0
- package/llms/components/lr-artifact-panel.md +60 -0
- package/llms/components/lr-attachment-chip.md +131 -0
- package/llms/components/lr-attachment-trigger.md +90 -0
- package/llms/components/lr-audio-visualizer.md +43 -0
- package/llms/components/lr-av-player.md +50 -0
- package/llms/components/lr-avatar-group.md +69 -0
- package/llms/components/lr-avatar.md +69 -0
- package/llms/components/lr-badge.md +25 -0
- package/llms/components/lr-bar-chart.md +70 -0
- package/llms/components/lr-box-plot.md +67 -0
- package/llms/components/lr-branch-picker.md +32 -0
- package/llms/components/lr-breadcrumb-item.md +30 -0
- package/llms/components/lr-breadcrumb.md +30 -0
- package/llms/components/lr-browser-frame.md +51 -0
- package/llms/components/lr-bubble-chart.md +70 -0
- package/llms/components/lr-button-group.md +30 -0
- package/llms/components/lr-button.md +89 -0
- package/llms/components/lr-calendar-viewer.md +32 -0
- package/llms/components/lr-calendar.md +52 -0
- package/llms/components/lr-callout.md +37 -0
- package/llms/components/lr-card.md +67 -0
- package/llms/components/lr-carousel-item.md +29 -0
- package/llms/components/lr-carousel.md +43 -0
- package/llms/components/lr-chart.md +148 -0
- package/llms/components/lr-chat-composer.md +139 -0
- package/llms/components/lr-chat-message.md +145 -0
- package/llms/components/lr-chat-viewport.md +70 -0
- package/llms/components/lr-checkbox-group.md +21 -0
- package/llms/components/lr-checkbox.md +79 -0
- package/llms/components/lr-checkpoint.md +48 -0
- package/llms/components/lr-chip-group.md +152 -0
- package/llms/components/lr-chip.md +152 -0
- package/llms/components/lr-chunk-inspector.md +66 -0
- package/llms/components/lr-citation-badge.md +102 -0
- package/llms/components/lr-code-block-core.md +113 -0
- package/llms/components/lr-code-block.md +146 -0
- package/llms/components/lr-code-editor.md +72 -0
- package/llms/components/lr-color-picker.md +21 -0
- package/llms/components/lr-combobox.md +196 -0
- package/llms/components/lr-command-palette.md +50 -0
- package/llms/components/lr-commit-card.md +33 -0
- package/llms/components/lr-community-card.md +54 -0
- package/llms/components/lr-compare-panel.md +38 -0
- package/llms/components/lr-confirm-bar.md +48 -0
- package/llms/components/lr-contact-viewer.md +34 -0
- package/llms/components/lr-context-inspector.md +50 -0
- package/llms/components/lr-context-meter.md +92 -0
- package/llms/components/lr-control-group.md +46 -0
- package/llms/components/lr-conversation-item.md +118 -0
- package/llms/components/lr-copy-button.md +52 -0
- package/llms/components/lr-csv-viewer.md +49 -0
- package/llms/components/lr-dashboard-grid.md +34 -0
- package/llms/components/lr-data-grid.md +47 -0
- package/llms/components/lr-dataset-viewer.md +60 -0
- package/llms/components/lr-date-input.md +201 -0
- package/llms/components/lr-date-picker.md +201 -0
- package/llms/components/lr-details.md +23 -0
- package/llms/components/lr-dialog.md +185 -0
- package/llms/components/lr-diff-view.md +86 -0
- package/llms/components/lr-divider.md +28 -0
- package/llms/components/lr-dock-panel.md +110 -0
- package/llms/components/lr-document-compare.md +22 -0
- package/llms/components/lr-document-library.md +21 -0
- package/llms/components/lr-document-preview.md +179 -0
- package/llms/components/lr-document-viewer.md +84 -0
- package/llms/components/lr-docx-viewer.md +63 -0
- package/llms/components/lr-doughnut-chart.md +70 -0
- package/llms/components/lr-drawer.md +48 -0
- package/llms/components/lr-drilldown-panel.md +25 -0
- package/llms/components/lr-dropdown-item.md +171 -0
- package/llms/components/lr-dropdown.md +24 -0
- package/llms/components/lr-ebook-viewer.md +60 -0
- package/llms/components/lr-email-viewer.md +51 -0
- package/llms/components/lr-emoji-picker.md +71 -0
- package/llms/components/lr-empty.md +56 -0
- package/llms/components/lr-entity-card.md +64 -0
- package/llms/components/lr-entity-chip.md +50 -0
- package/llms/components/lr-entity-dossier.md +71 -0
- package/llms/components/lr-env-list.md +27 -0
- package/llms/components/lr-eval-dataset.md +45 -0
- package/llms/components/lr-eval-result.md +45 -0
- package/llms/components/lr-evaluation-run.md +50 -0
- package/llms/components/lr-export-button.md +104 -0
- package/llms/components/lr-file-icon.md +34 -0
- package/llms/components/lr-file-input.md +104 -0
- package/llms/components/lr-file-tree.md +29 -0
- package/llms/components/lr-filter-bar.md +20 -0
- package/llms/components/lr-flag.md +122 -0
- package/llms/components/lr-flow-canvas.md +112 -0
- package/llms/components/lr-flow-controls.md +47 -0
- package/llms/components/lr-flow-minimap.md +52 -0
- package/llms/components/lr-flow-node.md +56 -0
- package/llms/components/lr-flow-run-overlay.md +56 -0
- package/llms/components/lr-format-bytes.md +31 -0
- package/llms/components/lr-format-date.md +33 -0
- package/llms/components/lr-format-number.md +41 -0
- package/llms/components/lr-gauge.md +65 -0
- package/llms/components/lr-generation-status.md +105 -0
- package/llms/components/lr-geojson-view.md +43 -0
- package/llms/components/lr-graph-legend.md +64 -0
- package/llms/components/lr-graph-query-builder.md +27 -0
- package/llms/components/lr-graph.md +224 -0
- package/llms/components/lr-grounding-summary.md +57 -0
- package/llms/components/lr-handoff-divider.md +27 -0
- package/llms/components/lr-heatmap.md +232 -0
- package/llms/components/lr-highlight-layer.md +31 -0
- package/llms/components/lr-histogram.md +69 -0
- package/llms/components/lr-html-viewer.md +30 -0
- package/llms/components/lr-icon-button.md +39 -0
- package/llms/components/lr-icon.md +36 -0
- package/llms/components/lr-image-comparer.md +38 -0
- package/llms/components/lr-image-viewer.md +35 -0
- package/llms/components/lr-include.md +53 -0
- package/llms/components/lr-ingestion-queue.md +60 -0
- package/llms/components/lr-input.md +82 -0
- package/llms/components/lr-intersection-observer.md +25 -0
- package/llms/components/lr-json-viewer.md +98 -0
- package/llms/components/lr-kbd.md +74 -0
- package/llms/components/lr-knowledge-base.md +64 -0
- package/llms/components/lr-knowledge-graph-explorer.md +92 -0
- package/llms/components/lr-known-date.md +84 -0
- package/llms/components/lr-lightbox.md +79 -0
- package/llms/components/lr-line-chart.md +70 -0
- package/llms/components/lr-lite-chart.md +143 -0
- package/llms/components/lr-live-region.md +105 -0
- package/llms/components/lr-map.md +127 -0
- package/llms/components/lr-markdown-core.md +70 -0
- package/llms/components/lr-markdown.md +171 -0
- package/llms/components/lr-media-card.md +106 -0
- package/llms/components/lr-memory-panel.md +67 -0
- package/llms/components/lr-mention-popover.md +139 -0
- package/llms/components/lr-menu-item.md +171 -0
- package/llms/components/lr-menu.md +171 -0
- package/llms/components/lr-message-actions.md +48 -0
- package/llms/components/lr-message-feedback.md +37 -0
- package/llms/components/lr-mind-map.md +64 -0
- package/llms/components/lr-model-select.md +144 -0
- package/llms/components/lr-model-settings-panel.md +99 -0
- package/llms/components/lr-mutation-observer.md +27 -0
- package/llms/components/lr-neighbor-list.md +56 -0
- package/llms/components/lr-node-palette.md +67 -0
- package/llms/components/lr-notebook-viewer.md +65 -0
- package/llms/components/lr-number-input.md +44 -0
- package/llms/components/lr-option.md +196 -0
- package/llms/components/lr-page-rail.md +37 -0
- package/llms/components/lr-pagination.md +88 -0
- package/llms/components/lr-path-strip.md +55 -0
- package/llms/components/lr-pdf-viewer.md +78 -0
- package/llms/components/lr-phone-input.md +162 -0
- package/llms/components/lr-pie-chart.md +70 -0
- package/llms/components/lr-playback.md +74 -0
- package/llms/components/lr-polar-area-chart.md +70 -0
- package/llms/components/lr-policy-summary.md +33 -0
- package/llms/components/lr-poll-status.md +71 -0
- package/llms/components/lr-popover.md +31 -0
- package/llms/components/lr-pptx-viewer.md +35 -0
- package/llms/components/lr-progress-bar.md +22 -0
- package/llms/components/lr-progress-ring.md +26 -0
- package/llms/components/lr-provenance-panel.md +58 -0
- package/llms/components/lr-push-to-talk.md +50 -0
- package/llms/components/lr-qr-code.md +20 -0
- package/llms/components/lr-query-builder.md +21 -0
- package/llms/components/lr-radar-chart.md +70 -0
- package/llms/components/lr-radio-group.md +25 -0
- package/llms/components/lr-radio.md +31 -0
- package/llms/components/lr-random-content.md +62 -0
- package/llms/components/lr-rating.md +21 -0
- package/llms/components/lr-relative-time.md +31 -0
- package/llms/components/lr-resize-observer.md +25 -0
- package/llms/components/lr-responsive-panel.md +112 -0
- package/llms/components/lr-result-card.md +88 -0
- package/llms/components/lr-result-field.md +88 -0
- package/llms/components/lr-retrieval-results.md +84 -0
- package/llms/components/lr-retrieval-search.md +70 -0
- package/llms/components/lr-retrieval-trace.md +59 -0
- package/llms/components/lr-rubric-form.md +37 -0
- package/llms/components/lr-scatter-chart.md +70 -0
- package/llms/components/lr-scroller.md +47 -0
- package/llms/components/lr-segmented.md +74 -0
- package/llms/components/lr-select.md +113 -0
- package/llms/components/lr-sequence-strip.md +95 -0
- package/llms/components/lr-skeleton.md +53 -0
- package/llms/components/lr-slider.md +92 -0
- package/llms/components/lr-source-card.md +131 -0
- package/llms/components/lr-source-list.md +131 -0
- package/llms/components/lr-source-picker.md +63 -0
- package/llms/components/lr-span-waterfall.md +42 -0
- package/llms/components/lr-sparkline.md +60 -0
- package/llms/components/lr-spinner.md +32 -0
- package/llms/components/lr-split.md +191 -0
- package/llms/components/lr-spreadsheet-viewer.md +47 -0
- package/llms/components/lr-stack-trace.md +77 -0
- package/llms/components/lr-stat.md +89 -0
- package/llms/components/lr-stepper.md +118 -0
- package/llms/components/lr-stream-status.md +128 -0
- package/llms/components/lr-streaming-text.md +101 -0
- package/llms/components/lr-suggestion-chips.md +40 -0
- package/llms/components/lr-svg-viewer.md +47 -0
- package/llms/components/lr-swatch-picker.md +91 -0
- package/llms/components/lr-switch.md +82 -0
- package/llms/components/lr-table.md +201 -0
- package/llms/components/lr-tabs.md +80 -0
- package/llms/components/lr-tag.md +25 -0
- package/llms/components/lr-task-list.md +42 -0
- package/llms/components/lr-terminal.md +44 -0
- package/llms/components/lr-test-results.md +38 -0
- package/llms/components/lr-textarea.md +111 -0
- package/llms/components/lr-thinking-panel.md +93 -0
- package/llms/components/lr-thread-list.md +97 -0
- package/llms/components/lr-time-input.md +53 -0
- package/llms/components/lr-time-range.md +91 -0
- package/llms/components/lr-timeline-item.md +65 -0
- package/llms/components/lr-timeline.md +65 -0
- package/llms/components/lr-toast-item.md +123 -0
- package/llms/components/lr-toast.md +123 -0
- package/llms/components/lr-token-input.md +31 -0
- package/llms/components/lr-tool-approval-dialog.md +131 -0
- package/llms/components/lr-tool-call-chip.md +101 -0
- package/llms/components/lr-tool-param-form.md +148 -0
- package/llms/components/lr-tool-result-dialog.md +106 -0
- package/llms/components/lr-tool-result-view.md +162 -0
- package/llms/components/lr-tool-select-dialog.md +124 -0
- package/llms/components/lr-tool-timeline.md +56 -0
- package/llms/components/lr-tooltip.md +47 -0
- package/llms/components/lr-tour.md +100 -0
- package/llms/components/lr-trace-tree.md +35 -0
- package/llms/components/lr-transcript-feed.md +45 -0
- package/llms/components/lr-tree-node.md +133 -0
- package/llms/components/lr-tree.md +133 -0
- package/llms/components/lr-typing-indicator.md +80 -0
- package/llms/components/lr-usage-badge.md +44 -0
- package/llms/components/lr-virtual-list.md +145 -0
- package/llms/components/lr-voice-picker.md +78 -0
- package/llms/components/lr-widget-renderer.md +78 -0
- package/llms/components/lr-widget.md +104 -0
- package/llms/components/lr-word-cloud.md +112 -0
- package/llms/components/lr-xml-viewer.md +58 -0
- package/llms/components/lr-zoomable-frame.md +57 -0
- package/llms/index.md +301 -0
- package/llms/migration.md +86 -0
- package/llms/peers.md +41 -0
- package/llms/shared.md +321 -0
- package/llms/tokens.md +533 -0
- package/llms-full.txt +10731 -8563
- package/llms.txt +64 -121
- package/package.json +14 -2
- package/vscode-css-data.json +1424 -185
- package/vscode-html-data.json +128 -107
- package/web-types.json +853 -118
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/forms.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-date-input`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/forms/date-picker/date-input.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraDateInput`, also available unregistered from `@aceshooting/lyra-ui/components/forms/date-picker/date-input.class.js`
|
|
7
|
+
- **Family** `components/forms/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Documented with** `lr-date-picker` (same section below)
|
|
10
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## `lr-date-picker` / `lr-date-input` (+ `calendar-core.ts`)
|
|
15
|
+
|
|
16
|
+
Mirrors the core `<wa-date-picker>`/`<wa-date-input>` API under `lr-`. **Value is always ISO
|
|
17
|
+
8601**: `YYYY-MM-DD` (single) or `YYYY-MM-DD/YYYY-MM-DD` (range).
|
|
18
|
+
|
|
19
|
+
### `lr-date-picker`
|
|
20
|
+
|
|
21
|
+
Inline month-grid calendar, not form-associated (used standalone or embedded inside
|
|
22
|
+
`lr-date-input`'s popover).
|
|
23
|
+
|
|
24
|
+
**Properties:**
|
|
25
|
+
- `value: string = ''`
|
|
26
|
+
- `mode: 'single'|'range' = 'single'` — unknown runtime values fall back to `single`
|
|
27
|
+
- `min: string = ''`
|
|
28
|
+
- `max: string = ''`
|
|
29
|
+
- `disabled: boolean = false` (reflected)
|
|
30
|
+
- `readonly: boolean = false` (reflected)
|
|
31
|
+
- `months: 1|2 = 1` — finite runtime values are truncated and clamped to `1..2`; non-finite
|
|
32
|
+
values fall back to `1`
|
|
33
|
+
- `locale: string = ''` — malformed locale tags fall back to the platform locale
|
|
34
|
+
- `firstDayOfWeek: string = 'auto'` (attribute `first-day-of-week` — see gotchas)
|
|
35
|
+
- `weekdayFormat: 'narrow'|'short'|'long' = 'short'` (attribute `weekday-format`; unknown runtime
|
|
36
|
+
values fall back to `short`)
|
|
37
|
+
- `disablePast: boolean = false` (attribute `disable-past`)
|
|
38
|
+
- `disableFuture: boolean = false` (attribute `disable-future`)
|
|
39
|
+
- `withOutsideDays: boolean = false` (attribute `with-outside-days`)
|
|
40
|
+
- `previousLabel: string = 'Previous month'` (attribute `previous-label` — accessible label for the
|
|
41
|
+
previous-month nav button; override for a non-English `locale`)
|
|
42
|
+
- `nextLabel: string = 'Next month'` (attribute `next-label` — accessible label for the next-month
|
|
43
|
+
nav button)
|
|
44
|
+
|
|
45
|
+
**Getters:** `selection: { from: Date|null; to: Date|null }`, `valueAsDate: Date | null` (single
|
|
46
|
+
mode only)
|
|
47
|
+
|
|
48
|
+
**Methods:** `clear()`, `goToToday()`, `goToDate(date: string | Date)` (valid dates are clamped to
|
|
49
|
+
`min`/`max` before navigating/focusing; invalid `Date` objects and strings are ignored)
|
|
50
|
+
|
|
51
|
+
**Events:** `input` (during interaction — for range mode, fires after the first click of a pair),
|
|
52
|
+
`change` (committed value)
|
|
53
|
+
|
|
54
|
+
**Slots:** none.
|
|
55
|
+
|
|
56
|
+
**CSS parts:** `base`, `month`, `header`, `title`, `previous`, `next`, `weekdays`, `weekday`,
|
|
57
|
+
`grid`, `week`, `day`, `day-outside`, `day-today`, `day-selected`, `day-range-start`,
|
|
58
|
+
`day-range-end`, `day-range-inner`, `day-placeholder`
|
|
59
|
+
|
|
60
|
+
**Themeable custom properties:** `--lr-cell-size` (default `2.25rem`, controls day-cell/grid-column
|
|
61
|
+
size).
|
|
62
|
+
|
|
63
|
+
**Optional peer deps:** none.
|
|
64
|
+
|
|
65
|
+
### `lr-date-input`
|
|
66
|
+
|
|
67
|
+
Text field + calendar popover, **form-associated** via the shared `FormAssociated` mixin (`name`,
|
|
68
|
+
`value`, `disabled`, `required` all inherited).
|
|
69
|
+
|
|
70
|
+
**Properties (own):**
|
|
71
|
+
- `mode: 'single'|'range' = 'single'`
|
|
72
|
+
- `min: string = ''`
|
|
73
|
+
- `max: string = ''`
|
|
74
|
+
- `readonly: boolean = false` (reflected; preserves the submitted value but bars required and
|
|
75
|
+
date-bound constraint validation until removed)
|
|
76
|
+
- `open: boolean = false` (reflected)
|
|
77
|
+
- `withClear: boolean = false` (attribute `with-clear`)
|
|
78
|
+
- `label: string = ''`
|
|
79
|
+
- `hint: string = ''`
|
|
80
|
+
- `placeholder: string = ''`
|
|
81
|
+
- `locale: string = ''` — malformed locale tags fall back to the platform locale
|
|
82
|
+
- `months: 1|2 = 1` — finite runtime values are truncated and clamped to `1..2`; non-finite
|
|
83
|
+
values fall back to `1`
|
|
84
|
+
- `firstDayOfWeek: string = 'auto'`
|
|
85
|
+
- `weekdayFormat: 'narrow'|'short'|'long' = 'short'` — unknown runtime values fall back to `short`
|
|
86
|
+
- `disablePast: boolean = false` (attribute `disable-past`)
|
|
87
|
+
- `disableFuture: boolean = false` (attribute `disable-future`)
|
|
88
|
+
- `withOutsideDays: boolean = false` (attribute `with-outside-days`)
|
|
89
|
+
|
|
90
|
+
**Properties (own, continued):**
|
|
91
|
+
- `errorText: string = ''` (attribute `error-text` — static error copy; overridden by slotted
|
|
92
|
+
`error` content when provided)
|
|
93
|
+
- `accessibleLabel: string | null = null` (attribute `aria-label`) — overrides the internal
|
|
94
|
+
`<input>`'s computed accessible name; wins over `label`/`placeholder`/the localized `date`
|
|
95
|
+
fallback in that order. Attribute-reflects from a host-level `aria-label` so a plain-markup
|
|
96
|
+
consumer gets ARIA-name forwarding without setting a JS property.
|
|
97
|
+
- `clearLabel: string = 'Clear'` (attribute `clear-label` — accessible label for the clear button)
|
|
98
|
+
- `openLabel: string = 'Open calendar'` (attribute `open-label` — accessible label for the
|
|
99
|
+
calendar-toggle button)
|
|
100
|
+
- `dialogLabel: string = 'Choose date'` (attribute `dialog-label` — accessible name for the
|
|
101
|
+
`role="dialog"` calendar popover)
|
|
102
|
+
- `spellcheck: boolean = true` — forwarded to the internal `<input>`
|
|
103
|
+
- `autocapitalize: string = ''` — forwarded to the internal `<input>`; empty omits the attribute
|
|
104
|
+
- `autoCorrect: string = ''` (attribute `autocorrect`, Safari/WebKit-specific) — forwarded to the
|
|
105
|
+
internal `<input>`; empty omits the attribute. Named `autoCorrect` in JS/TS (not `autocorrect`)
|
|
106
|
+
to dodge a `lib.dom.d.ts` collision with `HTMLElement`'s own boolean `autocorrect` IDL member;
|
|
107
|
+
the wire attribute is still the plain `autocorrect` name
|
|
108
|
+
- `autocomplete: string = ''`, `inputMode: string = ''` (attribute `inputmode`), and
|
|
109
|
+
`enterKeyHint: string = ''` (attribute `enterkeyhint`) — forwarded to the internal date input
|
|
110
|
+
- `autocomplete: string = ''`, `inputMode: string = ''` (`inputmode`), and `enterKeyHint: string = ''`
|
|
111
|
+
(`enterkeyhint`) — forwarded to the internal `<input>`.
|
|
112
|
+
- `size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' = 'm'` (reflected) — visual size, matching
|
|
113
|
+
`lr-input`/`lr-select`/`lr-combobox`'s shared scale. Governs the field's padding and font-size;
|
|
114
|
+
the calendar-toggle and clear buttons keep a constant, accessible touch target at every size.
|
|
115
|
+
The default `m` tier is unchanged from this component's pre-`size` rendering.
|
|
116
|
+
|
|
117
|
+
**Methods:** `show()`, `hide()`, `clear()`, `focus(options?)`, `blur()`, `select()`,
|
|
118
|
+
`setSelectionRange()`, `setRangeText()` (all of the focus/selection methods forward to the internal
|
|
119
|
+
native date `<input>`).
|
|
120
|
+
|
|
121
|
+
**Getters:** `input: HTMLInputElement | undefined` — the internal native `<input>`, for direct DOM
|
|
122
|
+
access.
|
|
123
|
+
|
|
124
|
+
**Selection properties:** `selectionStart`, `selectionEnd`, and `selectionDirection` mirror the
|
|
125
|
+
internal native date input.
|
|
126
|
+
|
|
127
|
+
**Events:** `input`, `change`, `lr-show`, `lr-hide`, `lr-clear`, `blur` (re-dispatched from
|
|
128
|
+
the internal `<input>`'s own `blur`, bubbling and composed unlike the native event), `focus`
|
|
129
|
+
(re-dispatched from the internal `<input>`'s own `focus`, for the same reason as `blur`)
|
|
130
|
+
|
|
131
|
+
**Slots:** `label`, `error` (overrides `errorText`), `hint`
|
|
132
|
+
|
|
133
|
+
**CSS parts:** `form-control`, `form-control-label`, `input-wrapper`, `input`, `clear-button`,
|
|
134
|
+
`expand-button`, `expand-icon`, `popup`, `date-picker`, `error`, `hint`
|
|
135
|
+
|
|
136
|
+
**Themeable custom properties:** `--lr-date-input-padding-block` (default `--lr-space-xs`) and
|
|
137
|
+
`--lr-date-input-padding-inline` (default `--lr-space-s`) — the `input-wrapper`'s padding;
|
|
138
|
+
`--lr-date-input-font-size` (default `inherit`) — the `input` part's font size. All three are
|
|
139
|
+
declared on `:host` and auto-swapped per `size` (`2xs`/`xs`/`s`/`l`/`xl`; `m` keeps the `:host`
|
|
140
|
+
defaults), deliberately matching `lr-input`'s own per-`size` padding/font-size values so a
|
|
141
|
+
same-`size` `lr-input` and `lr-date-input` end up height/density-matched. Plus shared tokens.
|
|
142
|
+
|
|
143
|
+
**Optional peer deps:** none.
|
|
144
|
+
|
|
145
|
+
```html
|
|
146
|
+
<lr-date-input id="di" label="Start date" with-clear name="start"></lr-date-input>
|
|
147
|
+
<script type="module">
|
|
148
|
+
const di = document.getElementById('di');
|
|
149
|
+
di.value = '2026-07-10';
|
|
150
|
+
di.addEventListener('change', () => console.log(di.value)); // ISO string
|
|
151
|
+
</script>
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
`calendar-core.ts` exports the pure date math both components share (**internal — not re-exported
|
|
155
|
+
from the package root**, but worth knowing when reasoning about behavior): `parseISO`, `formatISO`,
|
|
156
|
+
`isSameDay`, `addMonths`, `addMonthsClampingDay(date, n)` (like `addMonths` but clamps the result to
|
|
157
|
+
the target month's last day instead of overflowing into the month after — e.g. Jan 31 + 1 month
|
|
158
|
+
lands on Feb 28/29, not Mar 3; backs `lr-date-picker`'s PageUp/PageDown), `clampDate`,
|
|
159
|
+
`monthMatrix(year, month, firstDayOfWeek)`, `weekdayLabels(firstDayOfWeek, format, locale)`,
|
|
160
|
+
`monthTitle(year, month, locale)`, `resolveFirstDayOfWeek(value, locale?)`,
|
|
161
|
+
`normalizeCalendarMode(value)`, `normalizeCalendarMonths(value)`, `normalizeWeekdayFormat(value)`,
|
|
162
|
+
and `dateTimeFormat(locale, options)`.
|
|
163
|
+
|
|
164
|
+
**Known gotchas:**
|
|
165
|
+
- `first-day-of-week="auto"` now derives from `locale` when the runtime's `Intl.Locale` exposes
|
|
166
|
+
week-info (`weekInfo`/`getWeekInfo()`, still shifting between engines) — `resolveFirstDayOfWeek()`
|
|
167
|
+
only hardcodes Sunday as the fallback when that isn't available or `locale` is unset. A
|
|
168
|
+
French/German-locale user with a supporting runtime now gets the Monday-first grid their OS would
|
|
169
|
+
show; on an older runtime it still falls back to Sunday-first silently. **If you need a guaranteed
|
|
170
|
+
locale-correct week start regardless of runtime**, pass an explicit
|
|
171
|
+
`first-day-of-week="mon"` (accepted values: `sun`/`mon`/`tue`/`wed`/`thu`/`fri`/`sat`).
|
|
172
|
+
- Runtime attribute/property inputs are normalized before calendar math or `Intl` formatting:
|
|
173
|
+
unsupported modes and weekday formats use their documented defaults, month counts cannot exceed
|
|
174
|
+
the two-grid API, malformed locale tags use the platform locale, and invalid `Date` objects do
|
|
175
|
+
not replace the current view.
|
|
176
|
+
- (date-input only) — opening the calendar does not move focus into it: `Alt+ArrowDown` leaves focus
|
|
177
|
+
on the text input, and the expand button keeps focus when clicked. The focused opener is
|
|
178
|
+
remembered. Escape and a finalized calendar selection close the popup and return focus to that
|
|
179
|
+
same connected element; a direct `.open = false` also restores it when focus would otherwise
|
|
180
|
+
remain inside the now-hidden popup. Outside-pointer dismissal deliberately leaves focus at the
|
|
181
|
+
clicked target.
|
|
182
|
+
- (date-input only) — typing an unparseable string and blurring/committing sets `badInput` via
|
|
183
|
+
`internals.setValidity()` and reverts the displayed text to the last valid commit. The visible
|
|
184
|
+
`<input part="input">` mirrors `required` through native `required`/`aria-required` and exposes
|
|
185
|
+
touched outer validity through `aria-invalid`; this includes required, bad-input, and range
|
|
186
|
+
failures owned by the form-associated host. A host `aria-label` is reactively forwarded to the
|
|
187
|
+
input, including later changes/removal, and takes precedence over the component's
|
|
188
|
+
label/placeholder fallback. Native validation attempts reveal `aria-invalid`; `form.reset()`
|
|
189
|
+
clears that touched presentation. A parseable typed date outside an active bound is committed
|
|
190
|
+
instead and reports the precise `rangeUnderflow`/`rangeOverflow` state.
|
|
191
|
+
- (date-input only) — declarative, IDL, reset, and restored values are sanitized to exact ISO dates:
|
|
192
|
+
calendar-invalid or malformed strings become `''` (and therefore `valueMissing` when required),
|
|
193
|
+
while valid dates outside `min`/`max` or `disable-past`/`disable-future` remain submitted and expose
|
|
194
|
+
`rangeUnderflow`/`rangeOverflow`. Changes to these constraints, `mode`, and `readonly` recompute
|
|
195
|
+
validity synchronously; range mode validates both endpoints.
|
|
196
|
+
- The grid keyboard pattern (Arrow/PageUp/PageDown/Home/End navigation with correct focus
|
|
197
|
+
sequencing) is implemented correctly and safe to rely on, as is the selected/range-day text color
|
|
198
|
+
(`--lr-color-on-brand`, not a hardcoded literal — safe to override `--lr-color-brand` without
|
|
199
|
+
losing contrast on selected-day text).
|
|
200
|
+
|
|
201
|
+
---
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/forms.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-date-picker`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/forms/date-picker/date-picker.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraDatePicker`, also available unregistered from `@aceshooting/lyra-ui/components/forms/date-picker/date-picker.class.js`
|
|
7
|
+
- **Family** `components/forms/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Documented with** `lr-date-input` (same section below)
|
|
10
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## `lr-date-picker` / `lr-date-input` (+ `calendar-core.ts`)
|
|
15
|
+
|
|
16
|
+
Mirrors the core `<wa-date-picker>`/`<wa-date-input>` API under `lr-`. **Value is always ISO
|
|
17
|
+
8601**: `YYYY-MM-DD` (single) or `YYYY-MM-DD/YYYY-MM-DD` (range).
|
|
18
|
+
|
|
19
|
+
### `lr-date-picker`
|
|
20
|
+
|
|
21
|
+
Inline month-grid calendar, not form-associated (used standalone or embedded inside
|
|
22
|
+
`lr-date-input`'s popover).
|
|
23
|
+
|
|
24
|
+
**Properties:**
|
|
25
|
+
- `value: string = ''`
|
|
26
|
+
- `mode: 'single'|'range' = 'single'` — unknown runtime values fall back to `single`
|
|
27
|
+
- `min: string = ''`
|
|
28
|
+
- `max: string = ''`
|
|
29
|
+
- `disabled: boolean = false` (reflected)
|
|
30
|
+
- `readonly: boolean = false` (reflected)
|
|
31
|
+
- `months: 1|2 = 1` — finite runtime values are truncated and clamped to `1..2`; non-finite
|
|
32
|
+
values fall back to `1`
|
|
33
|
+
- `locale: string = ''` — malformed locale tags fall back to the platform locale
|
|
34
|
+
- `firstDayOfWeek: string = 'auto'` (attribute `first-day-of-week` — see gotchas)
|
|
35
|
+
- `weekdayFormat: 'narrow'|'short'|'long' = 'short'` (attribute `weekday-format`; unknown runtime
|
|
36
|
+
values fall back to `short`)
|
|
37
|
+
- `disablePast: boolean = false` (attribute `disable-past`)
|
|
38
|
+
- `disableFuture: boolean = false` (attribute `disable-future`)
|
|
39
|
+
- `withOutsideDays: boolean = false` (attribute `with-outside-days`)
|
|
40
|
+
- `previousLabel: string = 'Previous month'` (attribute `previous-label` — accessible label for the
|
|
41
|
+
previous-month nav button; override for a non-English `locale`)
|
|
42
|
+
- `nextLabel: string = 'Next month'` (attribute `next-label` — accessible label for the next-month
|
|
43
|
+
nav button)
|
|
44
|
+
|
|
45
|
+
**Getters:** `selection: { from: Date|null; to: Date|null }`, `valueAsDate: Date | null` (single
|
|
46
|
+
mode only)
|
|
47
|
+
|
|
48
|
+
**Methods:** `clear()`, `goToToday()`, `goToDate(date: string | Date)` (valid dates are clamped to
|
|
49
|
+
`min`/`max` before navigating/focusing; invalid `Date` objects and strings are ignored)
|
|
50
|
+
|
|
51
|
+
**Events:** `input` (during interaction — for range mode, fires after the first click of a pair),
|
|
52
|
+
`change` (committed value)
|
|
53
|
+
|
|
54
|
+
**Slots:** none.
|
|
55
|
+
|
|
56
|
+
**CSS parts:** `base`, `month`, `header`, `title`, `previous`, `next`, `weekdays`, `weekday`,
|
|
57
|
+
`grid`, `week`, `day`, `day-outside`, `day-today`, `day-selected`, `day-range-start`,
|
|
58
|
+
`day-range-end`, `day-range-inner`, `day-placeholder`
|
|
59
|
+
|
|
60
|
+
**Themeable custom properties:** `--lr-cell-size` (default `2.25rem`, controls day-cell/grid-column
|
|
61
|
+
size).
|
|
62
|
+
|
|
63
|
+
**Optional peer deps:** none.
|
|
64
|
+
|
|
65
|
+
### `lr-date-input`
|
|
66
|
+
|
|
67
|
+
Text field + calendar popover, **form-associated** via the shared `FormAssociated` mixin (`name`,
|
|
68
|
+
`value`, `disabled`, `required` all inherited).
|
|
69
|
+
|
|
70
|
+
**Properties (own):**
|
|
71
|
+
- `mode: 'single'|'range' = 'single'`
|
|
72
|
+
- `min: string = ''`
|
|
73
|
+
- `max: string = ''`
|
|
74
|
+
- `readonly: boolean = false` (reflected; preserves the submitted value but bars required and
|
|
75
|
+
date-bound constraint validation until removed)
|
|
76
|
+
- `open: boolean = false` (reflected)
|
|
77
|
+
- `withClear: boolean = false` (attribute `with-clear`)
|
|
78
|
+
- `label: string = ''`
|
|
79
|
+
- `hint: string = ''`
|
|
80
|
+
- `placeholder: string = ''`
|
|
81
|
+
- `locale: string = ''` — malformed locale tags fall back to the platform locale
|
|
82
|
+
- `months: 1|2 = 1` — finite runtime values are truncated and clamped to `1..2`; non-finite
|
|
83
|
+
values fall back to `1`
|
|
84
|
+
- `firstDayOfWeek: string = 'auto'`
|
|
85
|
+
- `weekdayFormat: 'narrow'|'short'|'long' = 'short'` — unknown runtime values fall back to `short`
|
|
86
|
+
- `disablePast: boolean = false` (attribute `disable-past`)
|
|
87
|
+
- `disableFuture: boolean = false` (attribute `disable-future`)
|
|
88
|
+
- `withOutsideDays: boolean = false` (attribute `with-outside-days`)
|
|
89
|
+
|
|
90
|
+
**Properties (own, continued):**
|
|
91
|
+
- `errorText: string = ''` (attribute `error-text` — static error copy; overridden by slotted
|
|
92
|
+
`error` content when provided)
|
|
93
|
+
- `accessibleLabel: string | null = null` (attribute `aria-label`) — overrides the internal
|
|
94
|
+
`<input>`'s computed accessible name; wins over `label`/`placeholder`/the localized `date`
|
|
95
|
+
fallback in that order. Attribute-reflects from a host-level `aria-label` so a plain-markup
|
|
96
|
+
consumer gets ARIA-name forwarding without setting a JS property.
|
|
97
|
+
- `clearLabel: string = 'Clear'` (attribute `clear-label` — accessible label for the clear button)
|
|
98
|
+
- `openLabel: string = 'Open calendar'` (attribute `open-label` — accessible label for the
|
|
99
|
+
calendar-toggle button)
|
|
100
|
+
- `dialogLabel: string = 'Choose date'` (attribute `dialog-label` — accessible name for the
|
|
101
|
+
`role="dialog"` calendar popover)
|
|
102
|
+
- `spellcheck: boolean = true` — forwarded to the internal `<input>`
|
|
103
|
+
- `autocapitalize: string = ''` — forwarded to the internal `<input>`; empty omits the attribute
|
|
104
|
+
- `autoCorrect: string = ''` (attribute `autocorrect`, Safari/WebKit-specific) — forwarded to the
|
|
105
|
+
internal `<input>`; empty omits the attribute. Named `autoCorrect` in JS/TS (not `autocorrect`)
|
|
106
|
+
to dodge a `lib.dom.d.ts` collision with `HTMLElement`'s own boolean `autocorrect` IDL member;
|
|
107
|
+
the wire attribute is still the plain `autocorrect` name
|
|
108
|
+
- `autocomplete: string = ''`, `inputMode: string = ''` (attribute `inputmode`), and
|
|
109
|
+
`enterKeyHint: string = ''` (attribute `enterkeyhint`) — forwarded to the internal date input
|
|
110
|
+
- `autocomplete: string = ''`, `inputMode: string = ''` (`inputmode`), and `enterKeyHint: string = ''`
|
|
111
|
+
(`enterkeyhint`) — forwarded to the internal `<input>`.
|
|
112
|
+
- `size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' = 'm'` (reflected) — visual size, matching
|
|
113
|
+
`lr-input`/`lr-select`/`lr-combobox`'s shared scale. Governs the field's padding and font-size;
|
|
114
|
+
the calendar-toggle and clear buttons keep a constant, accessible touch target at every size.
|
|
115
|
+
The default `m` tier is unchanged from this component's pre-`size` rendering.
|
|
116
|
+
|
|
117
|
+
**Methods:** `show()`, `hide()`, `clear()`, `focus(options?)`, `blur()`, `select()`,
|
|
118
|
+
`setSelectionRange()`, `setRangeText()` (all of the focus/selection methods forward to the internal
|
|
119
|
+
native date `<input>`).
|
|
120
|
+
|
|
121
|
+
**Getters:** `input: HTMLInputElement | undefined` — the internal native `<input>`, for direct DOM
|
|
122
|
+
access.
|
|
123
|
+
|
|
124
|
+
**Selection properties:** `selectionStart`, `selectionEnd`, and `selectionDirection` mirror the
|
|
125
|
+
internal native date input.
|
|
126
|
+
|
|
127
|
+
**Events:** `input`, `change`, `lr-show`, `lr-hide`, `lr-clear`, `blur` (re-dispatched from
|
|
128
|
+
the internal `<input>`'s own `blur`, bubbling and composed unlike the native event), `focus`
|
|
129
|
+
(re-dispatched from the internal `<input>`'s own `focus`, for the same reason as `blur`)
|
|
130
|
+
|
|
131
|
+
**Slots:** `label`, `error` (overrides `errorText`), `hint`
|
|
132
|
+
|
|
133
|
+
**CSS parts:** `form-control`, `form-control-label`, `input-wrapper`, `input`, `clear-button`,
|
|
134
|
+
`expand-button`, `expand-icon`, `popup`, `date-picker`, `error`, `hint`
|
|
135
|
+
|
|
136
|
+
**Themeable custom properties:** `--lr-date-input-padding-block` (default `--lr-space-xs`) and
|
|
137
|
+
`--lr-date-input-padding-inline` (default `--lr-space-s`) — the `input-wrapper`'s padding;
|
|
138
|
+
`--lr-date-input-font-size` (default `inherit`) — the `input` part's font size. All three are
|
|
139
|
+
declared on `:host` and auto-swapped per `size` (`2xs`/`xs`/`s`/`l`/`xl`; `m` keeps the `:host`
|
|
140
|
+
defaults), deliberately matching `lr-input`'s own per-`size` padding/font-size values so a
|
|
141
|
+
same-`size` `lr-input` and `lr-date-input` end up height/density-matched. Plus shared tokens.
|
|
142
|
+
|
|
143
|
+
**Optional peer deps:** none.
|
|
144
|
+
|
|
145
|
+
```html
|
|
146
|
+
<lr-date-input id="di" label="Start date" with-clear name="start"></lr-date-input>
|
|
147
|
+
<script type="module">
|
|
148
|
+
const di = document.getElementById('di');
|
|
149
|
+
di.value = '2026-07-10';
|
|
150
|
+
di.addEventListener('change', () => console.log(di.value)); // ISO string
|
|
151
|
+
</script>
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
`calendar-core.ts` exports the pure date math both components share (**internal — not re-exported
|
|
155
|
+
from the package root**, but worth knowing when reasoning about behavior): `parseISO`, `formatISO`,
|
|
156
|
+
`isSameDay`, `addMonths`, `addMonthsClampingDay(date, n)` (like `addMonths` but clamps the result to
|
|
157
|
+
the target month's last day instead of overflowing into the month after — e.g. Jan 31 + 1 month
|
|
158
|
+
lands on Feb 28/29, not Mar 3; backs `lr-date-picker`'s PageUp/PageDown), `clampDate`,
|
|
159
|
+
`monthMatrix(year, month, firstDayOfWeek)`, `weekdayLabels(firstDayOfWeek, format, locale)`,
|
|
160
|
+
`monthTitle(year, month, locale)`, `resolveFirstDayOfWeek(value, locale?)`,
|
|
161
|
+
`normalizeCalendarMode(value)`, `normalizeCalendarMonths(value)`, `normalizeWeekdayFormat(value)`,
|
|
162
|
+
and `dateTimeFormat(locale, options)`.
|
|
163
|
+
|
|
164
|
+
**Known gotchas:**
|
|
165
|
+
- `first-day-of-week="auto"` now derives from `locale` when the runtime's `Intl.Locale` exposes
|
|
166
|
+
week-info (`weekInfo`/`getWeekInfo()`, still shifting between engines) — `resolveFirstDayOfWeek()`
|
|
167
|
+
only hardcodes Sunday as the fallback when that isn't available or `locale` is unset. A
|
|
168
|
+
French/German-locale user with a supporting runtime now gets the Monday-first grid their OS would
|
|
169
|
+
show; on an older runtime it still falls back to Sunday-first silently. **If you need a guaranteed
|
|
170
|
+
locale-correct week start regardless of runtime**, pass an explicit
|
|
171
|
+
`first-day-of-week="mon"` (accepted values: `sun`/`mon`/`tue`/`wed`/`thu`/`fri`/`sat`).
|
|
172
|
+
- Runtime attribute/property inputs are normalized before calendar math or `Intl` formatting:
|
|
173
|
+
unsupported modes and weekday formats use their documented defaults, month counts cannot exceed
|
|
174
|
+
the two-grid API, malformed locale tags use the platform locale, and invalid `Date` objects do
|
|
175
|
+
not replace the current view.
|
|
176
|
+
- (date-input only) — opening the calendar does not move focus into it: `Alt+ArrowDown` leaves focus
|
|
177
|
+
on the text input, and the expand button keeps focus when clicked. The focused opener is
|
|
178
|
+
remembered. Escape and a finalized calendar selection close the popup and return focus to that
|
|
179
|
+
same connected element; a direct `.open = false` also restores it when focus would otherwise
|
|
180
|
+
remain inside the now-hidden popup. Outside-pointer dismissal deliberately leaves focus at the
|
|
181
|
+
clicked target.
|
|
182
|
+
- (date-input only) — typing an unparseable string and blurring/committing sets `badInput` via
|
|
183
|
+
`internals.setValidity()` and reverts the displayed text to the last valid commit. The visible
|
|
184
|
+
`<input part="input">` mirrors `required` through native `required`/`aria-required` and exposes
|
|
185
|
+
touched outer validity through `aria-invalid`; this includes required, bad-input, and range
|
|
186
|
+
failures owned by the form-associated host. A host `aria-label` is reactively forwarded to the
|
|
187
|
+
input, including later changes/removal, and takes precedence over the component's
|
|
188
|
+
label/placeholder fallback. Native validation attempts reveal `aria-invalid`; `form.reset()`
|
|
189
|
+
clears that touched presentation. A parseable typed date outside an active bound is committed
|
|
190
|
+
instead and reports the precise `rangeUnderflow`/`rangeOverflow` state.
|
|
191
|
+
- (date-input only) — declarative, IDL, reset, and restored values are sanitized to exact ISO dates:
|
|
192
|
+
calendar-invalid or malformed strings become `''` (and therefore `valueMissing` when required),
|
|
193
|
+
while valid dates outside `min`/`max` or `disable-past`/`disable-future` remain submitted and expose
|
|
194
|
+
`rangeUnderflow`/`rangeOverflow`. Changes to these constraints, `mode`, and `readonly` recompute
|
|
195
|
+
validity synchronously; range mode validates both endpoints.
|
|
196
|
+
- The grid keyboard pattern (Arrow/PageUp/PageDown/Home/End navigation with correct focus
|
|
197
|
+
sequencing) is implemented correctly and safe to rely on, as is the selected/range-day text color
|
|
198
|
+
(`--lr-color-on-brand`, not a hardcoded literal — safe to override `--lr-color-brand` without
|
|
199
|
+
losing contrast on selected-day text).
|
|
200
|
+
|
|
201
|
+
---
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/layout.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-details`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/layout/details/details.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraDetails`, also available unregistered from `@aceshooting/lyra-ui/components/layout/details/details.class.js`
|
|
7
|
+
- **Family** `components/layout/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Documented with** `lr-accordion`, `lr-accordion-item` (same section below)
|
|
10
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## `lr-details`, `lr-accordion`, and `lr-accordion-item`
|
|
15
|
+
|
|
16
|
+
`lr-details` is a native-semantics disclosure panel. `lr-accordion` coordinates slotted
|
|
17
|
+
details panels and closes siblings unless `multiple` is true. `lr-accordion-item` is an
|
|
18
|
+
accordion-compatible alias.
|
|
19
|
+
|
|
20
|
+
**Properties:** `open`, `disabled`, and `summary` on details/items; `multiple` on accordion.
|
|
21
|
+
**Events:** `lr-toggle` with `{ open }` from details/items. **Slots:** `summary` and default
|
|
22
|
+
content on details/items; default panels on accordion. **CSS parts:** `base`, `summary`, `content`
|
|
23
|
+
on details/items; `base` on accordion.
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/build-llms.mjs from llms/overlays.md — do not edit this file. -->
|
|
2
|
+
|
|
3
|
+
# `lr-dialog`
|
|
4
|
+
|
|
5
|
+
- **Import** `import '@aceshooting/lyra-ui/components/overlays/dialog/dialog.js';` (registers the tag; side-effect import)
|
|
6
|
+
- **Class** `LyraDialog`, also available unregistered from `@aceshooting/lyra-ui/components/overlays/dialog/dialog.class.js`
|
|
7
|
+
- **Family** `components/overlays/` — see `llms/index.md` for its siblings
|
|
8
|
+
- **Optional peers** none
|
|
9
|
+
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## `lr-dialog` / `confirm()`
|
|
14
|
+
|
|
15
|
+
General-purpose modal/overlay plus a promise-based confirmation helper built on top of it.
|
|
16
|
+
|
|
17
|
+
### `lr-dialog`
|
|
18
|
+
|
|
19
|
+
A modal/overlay: `role="dialog"`, focus-trapped while open, dismissible via Escape or a backdrop
|
|
20
|
+
click, and scroll-locks the document for as long as it's open. Chrome stays minimal by default — no
|
|
21
|
+
built-in title bar or close button; a consumer supplies a heading and any close affordance itself via
|
|
22
|
+
the default/`footer` slots. `heading`/`closable` are an opt-in convenience for the common case where
|
|
23
|
+
hand-building that chrome isn't worth it.
|
|
24
|
+
|
|
25
|
+
**Properties:**
|
|
26
|
+
- `open: boolean = false` (reflected) — there is no separate `show()`/`hide()` pair; set this (or
|
|
27
|
+
call `close()`)
|
|
28
|
+
- `label: string = ''` — accessible name used only when no heading is slotted and `heading` is unset
|
|
29
|
+
(see below)
|
|
30
|
+
- `heading?: string` — visible header text (rendered in `[part="header"]`/`[part="heading"]`), used
|
|
31
|
+
only when no light-DOM heading is slotted into the default slot; has no effect (renders nothing)
|
|
32
|
+
when a heading element *is* slotted, which keeps working completely unchanged either way
|
|
33
|
+
- `closable: boolean = false` (attribute `closable`) — renders a built-in close (X) button in the
|
|
34
|
+
header row (creating one, with no heading text, if `heading` is unset), wired to the same
|
|
35
|
+
`close()` path Escape/backdrop-dismiss already use, with reason `'close-button'`
|
|
36
|
+
- `noLightDismiss: boolean = false` (attribute `no-light-dismiss`) — prevents a backdrop click from
|
|
37
|
+
closing the dialog; Escape and explicit `close()` calls remain available
|
|
38
|
+
|
|
39
|
+
Also settable as a plain `aria-label` attribute (not a public JS property): overrides the panel's
|
|
40
|
+
computed accessible name outright, winning over every other source below (a slotted heading,
|
|
41
|
+
`heading`, `label`) — matching `<lr-date-input>`'s `accessibleLabel` pattern. Left unset, the
|
|
42
|
+
existing three-tier fallback below is unchanged.
|
|
43
|
+
|
|
44
|
+
**Methods:** `close(reason: DialogCloseReason = 'api'): void` — closes the dialog, emits
|
|
45
|
+
`lr-dialog-close` with `reason`, and returns focus to whatever had it right before the dialog
|
|
46
|
+
opened. `DialogCloseReason = 'escape' | 'backdrop' | 'close-button' | 'api' | 'unmount' | string` —
|
|
47
|
+
`'escape'`/`'backdrop'` are emitted by the dialog's own built-in dismiss triggers; `'close-button'`
|
|
48
|
+
by the built-in header close button (rendered when `closable` is set); `'unmount'` is emitted
|
|
49
|
+
automatically if the dialog is removed from the DOM while still `open` by anything other than its
|
|
50
|
+
own `close()` (a consumer's own cleanup code, a parent re-render that drops it); any other string is
|
|
51
|
+
whatever a caller passes (e.g. a footer Cancel button calling `dlg.close('cancel')`, or `confirm()`'s
|
|
52
|
+
own `'confirm'`/`'cancel'`).
|
|
53
|
+
|
|
54
|
+
**Events:** `lr-dialog-close` (`detail: DialogCloseReason`) — fired on every dismissal path
|
|
55
|
+
(Escape, backdrop click, any `close()` call, or an `'unmount'` removal as above).
|
|
56
|
+
|
|
57
|
+
**Stacking:** participates in the shared per-document overlay stack described above. A dialog can be
|
|
58
|
+
stacked with another dialog or any other modal family; only the visually topmost overlay receives
|
|
59
|
+
Escape, Tab trapping, or backdrop dismissal, while overlays beneath remain open until the top one
|
|
60
|
+
closes.
|
|
61
|
+
|
|
62
|
+
**Slots:** default (the dialog body), `footer` (action buttons, rendered in a bottom row, hidden
|
|
63
|
+
entirely when empty)
|
|
64
|
+
|
|
65
|
+
**CSS parts:** `backdrop` (the full-viewport scrim), `panel` (the dialog panel, `role="dialog"`
|
|
66
|
+
while open; its max-inline-size is controlled by `--lr-dialog-max-width`), `header` (the header
|
|
67
|
+
row, rendered when `heading` is set — and no heading is slotted — and/or `closable` is `true`),
|
|
68
|
+
`heading` (the visible `heading`-text element inside `header`, rendered only when `heading` is set
|
|
69
|
+
and no heading is slotted), `close-button` (the built-in close button inside `header`, rendered only
|
|
70
|
+
when `closable` is `true`), `label` (the invisible label-text element used for `aria-labelledby`
|
|
71
|
+
when no heading is slotted and `heading` is unset), `body` (wrapper around the default slot),
|
|
72
|
+
`footer` (wrapper around the `footer` slot)
|
|
73
|
+
|
|
74
|
+
**Themeable custom properties:** `--lr-dialog-overlay-color` (default `rgb(0 0 0 / 0.5)` — the
|
|
75
|
+
backdrop scrim color; component-specific since no shared `--lr-*` overlay token exists),
|
|
76
|
+
`--lr-dialog-width` (default unset/`auto` — the panel shrink-wraps to content, unchanged; set it
|
|
77
|
+
for an assertive width instead), `--lr-dialog-max-width` (default `32rem` — the panel's
|
|
78
|
+
max-inline-size cap, via `min(var(--lr-dialog-max-width, var(--lr-dialog-width, 32rem)), 100%)`;
|
|
79
|
+
when `--lr-dialog-width` is set but `--lr-dialog-max-width` is left at its default, the cap falls
|
|
80
|
+
back to the requested width itself — not the `32rem` default — so an assertive width isn't silently
|
|
81
|
+
clipped; the viewport is still a hard limit either way), plus shared tokens `--lr-space-l/-m/-s`,
|
|
82
|
+
`--lr-color-surface/-border`, `--lr-radius`, `--lr-shadow`.
|
|
83
|
+
|
|
84
|
+
**Optional peer deps:** none.
|
|
85
|
+
|
|
86
|
+
```html
|
|
87
|
+
<lr-dialog id="dlg">
|
|
88
|
+
<h2>Delete item?</h2>
|
|
89
|
+
<p>This cannot be undone.</p>
|
|
90
|
+
<div slot="footer">
|
|
91
|
+
<button id="cancel">Cancel</button>
|
|
92
|
+
<button id="confirm">Delete</button>
|
|
93
|
+
</div>
|
|
94
|
+
</lr-dialog>
|
|
95
|
+
<script type="module">
|
|
96
|
+
const dlg = document.getElementById('dlg');
|
|
97
|
+
dlg.open = true;
|
|
98
|
+
dlg.addEventListener('lr-dialog-close', (e) => console.log('closed:', e.detail));
|
|
99
|
+
document.getElementById('cancel').addEventListener('click', () => dlg.close('cancel'));
|
|
100
|
+
</script>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Accessible name / visible header, in priority order: (0) if the host element itself has an
|
|
104
|
+
`aria-label` attribute set, its value becomes `aria-label` on the panel outright, overriding every
|
|
105
|
+
source below (including a slotted heading) and suppressing the visible header/`heading` row and the
|
|
106
|
+
sr-only `label` element from rendering at all — the standard ARIA convention for a consumer that
|
|
107
|
+
wants full control over the announced name regardless of whatever `heading`/`label` props are also
|
|
108
|
+
set; (1) otherwise, if a heading element (`h1`–`h6` or
|
|
109
|
+
`[role="heading"]`) is a *direct child* (not inside `slot="footer"`), its text content becomes
|
|
110
|
+
`aria-label` on the panel — takes priority over `heading` below so an existing consumer that already
|
|
111
|
+
slots its own heading keeps rendering it exactly as before; (2) otherwise, when `heading` is set, a
|
|
112
|
+
visible header row (`[part="header"]`) renders containing that text (`[part="heading"]`), which
|
|
113
|
+
becomes the `aria-labelledby` target; (3) otherwise, when `label` is set, an invisible (`.sr-only`,
|
|
114
|
+
exposed as the `label` part) element carrying that text is rendered inside the panel and
|
|
115
|
+
`aria-labelledby` points at it instead. Only one of cases 2/3 ever renders at a time. `label` itself
|
|
116
|
+
never renders visible chrome on its own — `::part(label)` can be restyled to make the sr-only text
|
|
117
|
+
visible, or `heading` can be set instead, for visible chrome without slotting a real heading element.
|
|
118
|
+
The slotted-heading case (1) deliberately uses `aria-label` (a copied string) rather than
|
|
119
|
+
`aria-labelledby` pointing at the heading's `id`, because the heading is light-DOM content while
|
|
120
|
+
`[part="panel"]` lives in shadow DOM and an ID-reference attribute can't resolve across that
|
|
121
|
+
boundary; cases 2/3 use `aria-labelledby` safely since their target renders inside the same shadow
|
|
122
|
+
root it labels.
|
|
123
|
+
|
|
124
|
+
**Known gotchas:**
|
|
125
|
+
- `role="dialog"`/`aria-modal="true"` are only present on `[part="panel"]` while `open` is `true` —
|
|
126
|
+
inspecting closed markup won't show them.
|
|
127
|
+
- Heading detection only rescans on `slotchange`, not on every render — mutating an already-slotted
|
|
128
|
+
heading's `textContent` in place (rather than replacing the node) won't retroactively update
|
|
129
|
+
`aria-label`; set `label` instead for a title that needs to change live.
|
|
130
|
+
- Only *direct* children are scanned for a heading — one nested several layers deep, or inside a
|
|
131
|
+
slotted custom element's own shadow root, is left to the consumer to label explicitly via `label`.
|
|
132
|
+
- A reconnect that preserves the same element instance (e.g. a drag-and-drop reparent) resumes its
|
|
133
|
+
shared overlay registration and re-acquires the scroll lock if `open` was still `true` across the
|
|
134
|
+
move — `disconnectedCallback`/`connectedCallback` fire back-to-back with no update in between, so
|
|
135
|
+
`willUpdate()` alone wouldn't otherwise notice.
|
|
136
|
+
- Tab-trap focus order follows the default (body) slot, then the `footer` slot — the same order the
|
|
137
|
+
flattened tree already tabs through — and is resolved shadow-piercingly, so a slotted custom
|
|
138
|
+
element's real focusable target inside its own shadow root is found even though the host tag
|
|
139
|
+
itself isn't a native focusable element.
|
|
140
|
+
|
|
141
|
+
### `confirm()`
|
|
142
|
+
|
|
143
|
+
A drop-in async replacement for `window.confirm()`, built on `<lr-dialog>`.
|
|
144
|
+
|
|
145
|
+
```ts
|
|
146
|
+
import { confirm } from '@aceshooting/lyra-ui/components/overlays/dialog/confirm.js';
|
|
147
|
+
|
|
148
|
+
const ok = await confirm({
|
|
149
|
+
title: 'Delete conversation?',
|
|
150
|
+
description: 'This cannot be undone.',
|
|
151
|
+
confirmLabel: 'Delete',
|
|
152
|
+
tone: 'danger',
|
|
153
|
+
});
|
|
154
|
+
if (ok) deleteConversation();
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
`confirm(options: ConfirmOptions): Promise<boolean>` where
|
|
158
|
+
`ConfirmOptions = { title: string; description?: string; confirmLabel?: string /* = 'Confirm' */; cancelLabel?: string /* = 'Cancel' */; tone?: 'neutral' | 'danger' /* = 'neutral' */ }`.
|
|
159
|
+
|
|
160
|
+
Resolves `true` only when the confirm button is pressed — Escape, a backdrop click, and the cancel
|
|
161
|
+
button all resolve `false`. Mounts a transient `<lr-dialog>` on `document.body` for the duration
|
|
162
|
+
of the call and removes it once settled, rather than reusing a persistent page-level region
|
|
163
|
+
(contrast `lr-toast`'s `toaster.ts`): a confirmation modal has no stacking/queueing concerns —
|
|
164
|
+
only one is ever meant to be open at a time — so a mount-and-remove per call keeps its lifetime
|
|
165
|
+
trivially tied to the returned promise. `title` becomes a slotted `<h2>`, which per `<lr-dialog>`'s
|
|
166
|
+
own heading-detection also drives the dialog's accessible name; `description`, if provided, becomes
|
|
167
|
+
a slotted `<p>`. `tone: 'danger'` fills the confirm button with `--lr-color-danger` instead of
|
|
168
|
+
`--lr-color-brand`, for destructive actions. Confirm/cancel buttons are plain inline-styled
|
|
169
|
+
`<button>` elements (no shared button component exists in this library yet), but every color value
|
|
170
|
+
used is still a `--lr-*` token reference, never a raw literal.
|
|
171
|
+
|
|
172
|
+
**Known gotchas:**
|
|
173
|
+
- Every dismissal path (confirm button, cancel button, Escape, backdrop click) funnels through
|
|
174
|
+
`<lr-dialog>`'s own `close()`/`lr-dialog-close` event, so there is exactly one place that
|
|
175
|
+
resolves the promise and tears the dialog down — a consumer never needs to (and shouldn't) call
|
|
176
|
+
`.remove()` itself.
|
|
177
|
+
- The neutral confirm button pairs `--lr-color-on-brand` with `--lr-color-brand`; the danger
|
|
178
|
+
tone pairs `--lr-color-on-danger` with `--lr-color-danger`. Each token chains through Web
|
|
179
|
+
Awesome's matching `*-on-loud` semantic role and has contrast-tested standalone light/dark
|
|
180
|
+
fallbacks.
|
|
181
|
+
- Importing `confirm` alone is enough to register `<lr-dialog>` — `confirm.ts` imports
|
|
182
|
+
`./dialog.js` for its side effect, so a consumer doesn't need a separate import for the dialog
|
|
183
|
+
element.
|
|
184
|
+
|
|
185
|
+
---
|