@aceshooting/lyra-ui 19.0.1 → 20.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +159 -0
- package/custom-elements.json +1 -1
- package/dist/cli/migration-contract.json +1 -1
- package/dist/components/agent-tools/activity-feed/activity-feed.class.d.ts +14 -4
- package/dist/components/agent-tools/activity-feed/activity-feed.styles.js +1 -1
- package/dist/components/agent-tools/approval-queue/approval-queue.class.d.ts +1 -0
- package/dist/components/agent-tools/approval-queue/approval-queue.class.js +4 -3
- package/dist/components/agent-tools/approval-queue/approval-queue.styles.js +1 -1
- package/dist/components/agent-tools/artifact-panel/artifact-panel.class.d.ts +3 -1
- package/dist/components/agent-tools/context-inspector/context-inspector.class.d.ts +1 -0
- package/dist/components/agent-tools/context-inspector/context-inspector.class.js +4 -3
- package/dist/components/agent-tools/context-inspector/context-inspector.styles.js +1 -1
- package/dist/components/agent-tools/eval-dataset/eval-dataset.class.js +1 -1
- package/dist/components/agent-tools/eval-result/eval-result.class.js +1 -1
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.d.ts +1 -0
- package/dist/components/agent-tools/evaluation-run/evaluation-run.class.js +4 -3
- package/dist/components/agent-tools/evaluation-run/evaluation-run.styles.js +1 -1
- package/dist/components/agent-tools/policy-summary/policy-summary.class.d.ts +1 -0
- package/dist/components/agent-tools/policy-summary/policy-summary.class.js +4 -3
- package/dist/components/agent-tools/policy-summary/policy-summary.styles.js +1 -1
- package/dist/components/agent-tools/prompt-studio/prompt-studio.class.js +1 -1
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.d.ts +10 -1
- package/dist/components/agent-tools/schema-viewer/schema-viewer.class.js +3 -3
- package/dist/components/agent-tools/subagent-panel/subagent-panel.class.js +1 -1
- package/dist/components/agent-tools/thinking-panel/thinking-panel.class.d.ts +6 -3
- package/dist/components/agent-tools/thinking-panel/thinking-panel.styles.js +1 -1
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.d.ts +14 -3
- package/dist/components/agent-tools/tool-call-chip/tool-call-chip.class.js +2 -2
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.d.ts +12 -2
- package/dist/components/agent-tools/tool-param-form/tool-param-form.class.js +3 -1
- package/dist/components/charts/chart/box-plot.class.d.ts +15 -3
- package/dist/components/charts/chart/box-plot.class.js +3 -3
- package/dist/components/charts/chart/box-plot.styles.js +1 -1
- package/dist/components/charts/chart/chart.class.d.ts +23 -5
- package/dist/components/charts/chart/chart.class.js +2 -2
- package/dist/components/charts/chart/chart.styles.js +1 -1
- package/dist/components/charts/chart/lite-chart.class.js +1 -1
- package/dist/components/charts/chart/lite-chart.styles.js +1 -1
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.d.ts +4 -2
- package/dist/components/conversation/audio-visualizer/audio-visualizer.class.js +1 -1
- package/dist/components/conversation/branch-picker/branch-picker.class.d.ts +4 -2
- package/dist/components/conversation/branch-picker/branch-picker.class.js +1 -1
- package/dist/components/conversation/chat-viewport/chat-viewport.class.d.ts +4 -3
- package/dist/components/conversation/chat-viewport/chat-viewport.class.js +1 -1
- package/dist/components/conversation/code-block/code-block-core.class.d.ts +6 -11
- package/dist/components/conversation/code-block/code-block-core.class.js +1 -1
- package/dist/components/conversation/code-block/code-block-shared.d.ts +29 -1
- package/dist/components/conversation/code-block/code-block-shared.js +1 -1
- package/dist/components/conversation/code-block/code-block.class.d.ts +6 -11
- package/dist/components/conversation/code-block/code-block.class.js +1 -1
- package/dist/components/conversation/markdown/markdown-shared.js +2 -2
- package/dist/components/conversation/message-actions/message-actions.class.d.ts +4 -2
- package/dist/components/conversation/message-actions/message-actions.class.js +2 -2
- package/dist/components/conversation/message-parts/message-parts.class.d.ts +17 -2
- package/dist/components/conversation/model-select/model-select.class.js +1 -0
- package/dist/components/conversation/model-select/model-select.styles.js +1 -1
- package/dist/components/conversation/prompt-input/prompt-input.class.d.ts +5 -1
- package/dist/components/conversation/prompt-input/prompt-input.class.js +2 -2
- package/dist/components/conversation/prompt-queue/prompt-queue.class.d.ts +6 -1
- package/dist/components/conversation/prompt-queue/prompt-queue.class.js +2 -2
- package/dist/components/conversation/realtime-session/realtime-session.class.d.ts +5 -1
- package/dist/components/conversation/realtime-session/realtime-session.class.js +1 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.d.ts +5 -1
- package/dist/components/conversation/selection-toolbar/selection-toolbar.class.js +1 -1
- package/dist/components/conversation/voice-picker/voice-picker.class.d.ts +13 -2
- package/dist/components/conversation/voice-picker/voice-picker.class.js +5 -3
- package/dist/components/conversation/voice-picker/voice-picker.styles.js +1 -1
- package/dist/components/data/calendar/calendar.class.d.ts +9 -0
- package/dist/components/data/calendar/calendar.class.js +2 -2
- package/dist/components/data/calendar/calendar.styles.js +1 -1
- package/dist/components/data/condition-builder/condition-builder.class.d.ts +5 -1
- package/dist/components/data/context-meter/context-meter.class.d.ts +4 -0
- package/dist/components/data/context-meter/context-meter.styles.js +1 -1
- package/dist/components/data/data-grid/data-grid.class.d.ts +8 -2
- package/dist/components/data/data-grid/data-grid.class.js +1 -2
- package/dist/components/data/flow-node/flow-node.class.d.ts +7 -4
- package/dist/components/data/flow-node/flow-node.styles.js +1 -1
- package/dist/components/data/funnel/funnel.class.d.ts +5 -0
- package/dist/components/data/funnel/funnel.class.js +4 -3
- package/dist/components/data/funnel/funnel.styles.js +1 -1
- package/dist/components/data/gauge/gauge.class.d.ts +12 -1
- package/dist/components/data/gauge/gauge.styles.js +1 -1
- package/dist/components/data/graph-query-builder/graph-query-builder.class.d.ts +50 -13
- package/dist/components/data/graph-query-builder/graph-query-builder.class.js +2 -2
- package/dist/components/data/graph-query-builder/graph-query-builder.styles.js +1 -1
- package/dist/components/data/heatmap/heatmap.class.d.ts +27 -9
- package/dist/components/data/heatmap/heatmap.class.js +5 -3
- package/dist/components/data/sequence-strip/sequence-strip.class.d.ts +2 -0
- package/dist/components/data/sequence-strip/sequence-strip.styles.js +1 -1
- package/dist/components/data/table/table.class.d.ts +8 -0
- package/dist/components/data/table/table.class.js +2 -1
- package/dist/components/data/tree/tree.class.d.ts +20 -1
- package/dist/components/data/tree/tree.class.js +1 -1
- package/dist/components/data/word-cloud/word-cloud.class.d.ts +4 -1
- package/dist/components/data/word-cloud/word-cloud.class.js +2 -2
- package/dist/components/forms/button/button.class.js +1 -1
- package/dist/components/forms/checkbox/checkbox.class.d.ts +11 -8
- package/dist/components/forms/checkbox/checkbox.class.js +1 -1
- package/dist/components/forms/checkbox/checkbox.styles.js +1 -1
- package/dist/components/forms/checkbox-group/checkbox-group.class.d.ts +2 -2
- package/dist/components/forms/checkbox-group/checkbox-group.class.js +1 -1
- package/dist/components/forms/code-editor/code-editor.class.d.ts +2 -0
- package/dist/components/forms/code-editor/code-editor.class.js +1 -1
- package/dist/components/forms/code-editor/code-editor.styles.js +1 -1
- package/dist/components/forms/color-picker/color-picker.class.d.ts +11 -1
- package/dist/components/forms/color-picker/color-picker.class.js +4 -3
- package/dist/components/forms/combobox/combobox.class.d.ts +67 -18
- package/dist/components/forms/combobox/combobox.class.js +7 -6
- package/dist/components/forms/combobox/combobox.styles.js +1 -1
- package/dist/components/forms/date-picker/date-input.class.d.ts +22 -2
- package/dist/components/forms/date-picker/date-input.class.js +4 -2
- package/dist/components/forms/date-picker/date-input.styles.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-data-loader.d.ts +18 -4
- package/dist/components/forms/emoji-picker/emoji-data-loader.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.class.d.ts +18 -4
- package/dist/components/forms/emoji-picker/emoji-picker.class.js +1 -1
- package/dist/components/forms/emoji-picker/emoji-picker.styles.js +1 -1
- package/dist/components/forms/icon-button/icon-button.class.d.ts +1 -1
- package/dist/components/forms/input/time-input.class.d.ts +11 -1
- package/dist/components/forms/input/time-input.class.js +4 -3
- package/dist/components/forms/input/time-input.styles.js +1 -1
- package/dist/components/forms/locale-picker/locale-picker.class.d.ts +17 -3
- package/dist/components/forms/locale-picker/locale-picker.class.js +3 -2
- package/dist/components/forms/locale-picker/locale-picker.styles.js +1 -1
- package/dist/components/forms/otp-input/otp-input.class.d.ts +13 -5
- package/dist/components/forms/otp-input/otp-input.class.js +2 -2
- package/dist/components/forms/otp-input/otp-input.styles.js +1 -1
- package/dist/components/forms/phone-input/phone-input.class.d.ts +10 -3
- package/dist/components/forms/phone-input/phone-input.class.js +6 -2
- package/dist/components/forms/phone-input/phone-input.styles.js +1 -1
- package/dist/components/forms/radio/radio-group.class.d.ts +1 -1
- package/dist/components/forms/radio/radio-group.class.js +2 -2
- package/dist/components/forms/rubric-form/rubric-form.class.d.ts +9 -1
- package/dist/components/forms/rubric-form/rubric-form.class.js +5 -3
- package/dist/components/forms/select/select.class.d.ts +4 -0
- package/dist/components/forms/select/select.styles.js +1 -1
- package/dist/components/forms/slider/slider.class.d.ts +5 -1
- package/dist/components/forms/slider/slider.class.js +3 -3
- package/dist/components/forms/switch/switch.class.d.ts +6 -5
- package/dist/components/forms/switch/switch.class.js +1 -1
- package/dist/components/forms/time-range/time-range.class.d.ts +2 -2
- package/dist/components/forms/token-input/token-input.class.d.ts +13 -3
- package/dist/components/forms/token-input/token-input.class.js +3 -1
- package/dist/components/layout/carousel/carousel.class.d.ts +4 -1
- package/dist/components/layout/carousel/carousel.class.js +1 -1
- package/dist/components/layout/command-palette/command-palette.class.d.ts +8 -2
- package/dist/components/layout/command-palette/command-palette.class.js +1 -1
- package/dist/components/layout/command-palette/command-palette.styles.js +1 -1
- package/dist/components/layout/details/accordion.class.js +1 -1
- package/dist/components/layout/dock-panel/dock-panel.class.d.ts +10 -7
- package/dist/components/layout/dock-panel/dock-panel.class.js +2 -2
- package/dist/components/layout/dock-panel/dock-panel.styles.js +1 -1
- package/dist/components/layout/menu/menu.class.d.ts +13 -3
- package/dist/components/layout/menu/menu.class.js +4 -3
- package/dist/components/layout/menu/menu.styles.js +1 -1
- package/dist/components/layout/page/page.class.d.ts +7 -1
- package/dist/components/layout/reorder-list/reorder-list.class.d.ts +1 -1
- package/dist/components/layout/reorder-list/reorder-list.class.js +1 -1
- package/dist/components/layout/segmented/segmented.class.d.ts +2 -0
- package/dist/components/layout/segmented/segmented.styles.js +1 -1
- package/dist/components/layout/virtual-list/virtual-list.styles.js +1 -1
- package/dist/components/layout/widget/widget.class.d.ts +15 -2
- package/dist/components/layout/widget/widget.class.js +1 -1
- package/dist/components/layout/widget/widget.styles.js +1 -1
- package/dist/components/media/avatar/avatar.class.d.ts +4 -0
- package/dist/components/media/avatar/avatar.styles.js +1 -1
- package/dist/components/media/avatar-group/avatar-group.class.d.ts +8 -1
- package/dist/components/media/avatar-group/avatar-group.styles.js +1 -1
- package/dist/components/media/drop-zone/drop-zone.class.d.ts +10 -4
- package/dist/components/media/drop-zone/drop-zone.class.js +2 -2
- package/dist/components/media/drop-zone/drop-zone.styles.js +1 -1
- package/dist/components/media/flag/flag.class.js +1 -1
- package/dist/components/media/map/map.class.d.ts +19 -5
- package/dist/components/media/map/map.class.js +3 -3
- package/dist/components/media/video-playlist/video-playlist.class.d.ts +6 -3
- package/dist/components/media/video-playlist/video-playlist.class.js +1 -1
- package/dist/components/overlays/callout/callout.class.d.ts +4 -1
- package/dist/components/overlays/dialog/dialog.class.d.ts +4 -1
- package/dist/components/overlays/overlay/overlay.styles.js +1 -1
- package/dist/components/overlays/overlay/popover.class.d.ts +9 -1
- package/dist/components/overlays/overlay/popover.class.js +3 -2
- package/dist/components/overlays/overlay/tooltip.class.d.ts +14 -4
- package/dist/components/overlays/overlay/tooltip.class.js +3 -2
- package/dist/components/overlays/popup/popup.class.d.ts +15 -1
- package/dist/components/overlays/popup/popup.class.js +3 -3
- package/dist/components/overlays/popup/popup.styles.js +1 -1
- package/dist/components/overlays/progress/progress-bar.class.d.ts +2 -0
- package/dist/components/overlays/progress/progress.styles.js +1 -1
- package/dist/components/retrieval/citation-badge/citation-badge.class.d.ts +4 -2
- package/dist/components/retrieval/citation-badge/citation-badge.class.js +1 -1
- package/dist/components/retrieval/claim-evidence/claim-evidence.class.d.ts +4 -0
- package/dist/components/retrieval/claim-evidence/claim-evidence.class.js +4 -3
- package/dist/components/retrieval/claim-evidence/claim-evidence.styles.js +1 -1
- package/dist/components/retrieval/community-card/community-card.class.d.ts +6 -1
- package/dist/components/retrieval/community-card/community-card.styles.js +1 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.d.ts +9 -1
- package/dist/components/retrieval/embedding-explorer/embedding-explorer.class.js +4 -3
- package/dist/components/retrieval/entity-card/entity-card.styles.js +1 -1
- package/dist/components/retrieval/entity-chip/entity-chip.class.d.ts +4 -2
- package/dist/components/retrieval/entity-chip/entity-chip.class.js +1 -1
- package/dist/components/retrieval/entity-dossier/entity-dossier.class.js +2 -2
- package/dist/components/retrieval/graph-legend/graph-legend.class.d.ts +18 -4
- package/dist/components/retrieval/graph-legend/graph-legend.class.js +2 -2
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.d.ts +7 -0
- package/dist/components/retrieval/grounding-summary/grounding-summary.class.js +4 -3
- package/dist/components/retrieval/grounding-summary/grounding-summary.styles.js +1 -1
- package/dist/components/retrieval/memory-panel/memory-panel.class.d.ts +6 -0
- package/dist/components/retrieval/memory-panel/memory-panel.class.js +4 -3
- package/dist/components/retrieval/memory-panel/memory-panel.styles.js +1 -1
- package/dist/components/retrieval/mind-map/mind-map-layout.d.ts +17 -1
- package/dist/components/retrieval/mind-map/mind-map-layout.js +1 -1
- package/dist/components/retrieval/mind-map/mind-map.class.d.ts +8 -1
- package/dist/components/retrieval/mind-map/mind-map.class.js +3 -2
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.d.ts +5 -0
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.class.js +6 -5
- package/dist/components/retrieval/rag-eval-dashboard/rag-eval-dashboard.styles.js +1 -1
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.class.js +5 -5
- package/dist/components/retrieval/retrieval-compare/retrieval-compare.styles.js +1 -1
- package/dist/components/retrieval/source-list/source-list.class.d.ts +21 -2
- package/dist/components/retrieval/source-list/source-list.class.js +2 -2
- package/dist/components/retrieval/source-list/source-list.styles.js +1 -1
- package/dist/components/retrieval/source-picker/source-picker.class.d.ts +3 -1
- package/dist/components/retrieval/source-picker/source-picker.class.js +2 -2
- package/dist/components/utility/diff-view/diff-view.class.d.ts +105 -8
- package/dist/components/utility/diff-view/diff-view.class.js +21 -5
- package/dist/components/utility/diff-view/diff-view.styles.js +1 -1
- package/dist/components/utility/export-button/export-button.class.d.ts +26 -2
- package/dist/components/utility/export-button/export-button.class.js +4 -2
- package/dist/components/utility/export-button/export-button.styles.js +1 -1
- package/dist/components/utility/mention-popover/mention-popover.class.d.ts +19 -1
- package/dist/components/utility/mention-popover/mention-popover.class.js +3 -2
- package/dist/components/utility/mention-popover/mention-popover.styles.js +1 -1
- package/dist/components/utility/tour/tour.class.d.ts +1 -3
- package/dist/components/utility/tour/tour.class.js +1 -1
- package/dist/components/viewers/archive-viewer/archive-viewer.class.d.ts +20 -3
- package/dist/components/viewers/archive-viewer/archive-viewer.class.js +1 -1
- package/dist/components/viewers/ebook-viewer/ebook-viewer.class.js +1 -1
- package/dist/components/viewers/geojson-view/geojson-view.styles.js +1 -1
- package/dist/components/viewers/geojson-view/geojson-viewer.class.d.ts +5 -0
- package/dist/components/viewers/geojson-view/geojson-viewer.class.js +6 -3
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.d.ts +7 -1
- package/dist/components/viewers/pdf-viewer/pdf-viewer.class.js +1 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.d.ts +7 -1
- package/dist/components/viewers/pptx-viewer/pptx-viewer.class.js +1 -1
- package/dist/components/viewers/xml-viewer/xml-viewer.class.d.ts +5 -0
- package/dist/components/viewers/xml-viewer/xml-viewer.class.js +1 -1
- package/dist/custom-elements-jsx.d.ts +1 -1
- package/dist/events.d.ts +79 -30
- package/dist/internal/accessibility-visibility.js +1 -1
- package/dist/internal/aria-reflection.js +1 -1
- package/dist/internal/catalog-picker.d.ts +14 -3
- package/dist/internal/catalog-picker.js +1 -1
- package/dist/internal/default-strings.generated.d.ts +1 -1
- package/dist/internal/default-strings.generated.js +2 -2
- package/dist/internal/localization-types.d.ts +1 -1
- package/dist/internal/localization.js +2 -2
- package/dist/internal/lyra-element.d.ts +17 -0
- package/dist/internal/lyra-element.js +2 -2
- package/dist/internal/package-metadata.d.ts +1 -1
- package/dist/internal/package-metadata.js +1 -1
- package/dist/svelte.d.ts +1 -1
- package/dist/testing/lyra-tag-event-map.js +1 -1
- package/dist/translations/ar/agent-tools.js +1 -1
- package/dist/translations/ar/data.js +1 -1
- package/dist/translations/ar/retrieval.js +1 -1
- package/dist/translations/ar/shared.js +1 -1
- package/dist/translations/ar/viewers.js +1 -1
- package/dist/translations/de/agent-tools.js +1 -1
- package/dist/translations/de/data.js +1 -1
- package/dist/translations/de/retrieval.js +1 -1
- package/dist/translations/de/shared.js +1 -1
- package/dist/translations/de/viewers.js +1 -1
- package/dist/translations/es/agent-tools.js +1 -1
- package/dist/translations/es/data.js +1 -1
- package/dist/translations/es/retrieval.js +1 -1
- package/dist/translations/es/shared.js +1 -1
- package/dist/translations/es/viewers.js +1 -1
- package/dist/translations/fa/agent-tools.js +1 -1
- package/dist/translations/fa/data.js +1 -1
- package/dist/translations/fa/retrieval.js +1 -1
- package/dist/translations/fa/shared.js +1 -1
- package/dist/translations/fa/viewers.js +1 -1
- package/dist/translations/fr/agent-tools.js +1 -1
- package/dist/translations/fr/data.js +1 -1
- package/dist/translations/fr/retrieval.js +1 -1
- package/dist/translations/fr/shared.js +1 -1
- package/dist/translations/fr/viewers.js +1 -1
- package/dist/translations/he/agent-tools.js +1 -1
- package/dist/translations/he/data.js +1 -1
- package/dist/translations/he/retrieval.js +1 -1
- package/dist/translations/he/shared.js +1 -1
- package/dist/translations/he/viewers.js +1 -1
- package/dist/translations/it/agent-tools.js +1 -1
- package/dist/translations/it/data.js +1 -1
- package/dist/translations/it/retrieval.js +1 -1
- package/dist/translations/it/shared.js +1 -1
- package/dist/translations/it/viewers.js +1 -1
- package/dist/translations/ja/agent-tools.js +1 -1
- package/dist/translations/ja/data.js +1 -1
- package/dist/translations/ja/retrieval.js +1 -1
- package/dist/translations/ja/shared.js +1 -1
- package/dist/translations/ja/viewers.js +1 -1
- package/dist/translations/pt-BR/agent-tools.js +1 -1
- package/dist/translations/pt-BR/data.js +1 -1
- package/dist/translations/pt-BR/retrieval.js +1 -1
- package/dist/translations/pt-BR/shared.js +1 -1
- package/dist/translations/pt-BR/viewers.js +1 -1
- package/dist/translations/ro/agent-tools.js +1 -1
- package/dist/translations/ro/data.js +1 -1
- package/dist/translations/ro/retrieval.js +1 -1
- package/dist/translations/ro/shared.js +1 -1
- package/dist/translations/ro/viewers.js +1 -1
- package/dist/translations/ru/agent-tools.js +1 -1
- package/dist/translations/ru/data.js +1 -1
- package/dist/translations/ru/retrieval.js +1 -1
- package/dist/translations/ru/shared.js +1 -1
- package/dist/translations/ru/viewers.js +1 -1
- package/dist/translations/zh-CN/agent-tools.js +1 -1
- package/dist/translations/zh-CN/data.js +1 -1
- package/dist/translations/zh-CN/retrieval.js +1 -1
- package/dist/translations/zh-CN/shared.js +1 -1
- package/dist/translations/zh-CN/viewers.js +1 -1
- package/dist/vue.d.ts +1 -1
- package/llms/components/lr-activity-feed.md +20 -9
- package/llms/components/lr-approval-queue.md +3 -2
- package/llms/components/lr-archive-viewer.md +8 -1
- package/llms/components/lr-artifact-panel.md +3 -1
- package/llms/components/lr-audio-visualizer.md +3 -1
- package/llms/components/lr-avatar-group.md +13 -6
- package/llms/components/lr-avatar.md +6 -2
- package/llms/components/lr-bar-chart.md +6 -3
- package/llms/components/lr-box-plot.md +6 -2
- package/llms/components/lr-branch-picker.md +3 -1
- package/llms/components/lr-bubble-chart.md +6 -3
- package/llms/components/lr-calendar.md +10 -3
- package/llms/components/lr-carousel.md +4 -2
- package/llms/components/lr-chart.md +12 -4
- package/llms/components/lr-chat-viewport.md +3 -2
- package/llms/components/lr-checkbox.md +8 -5
- package/llms/components/lr-citation-badge.md +2 -0
- package/llms/components/lr-claim-evidence.md +6 -2
- package/llms/components/lr-code-editor.md +3 -1
- package/llms/components/lr-color-picker.md +20 -8
- package/llms/components/lr-combobox.md +26 -3
- package/llms/components/lr-command-palette.md +6 -3
- package/llms/components/lr-community-card.md +7 -4
- package/llms/components/lr-context-inspector.md +3 -2
- package/llms/components/lr-context-meter.md +13 -5
- package/llms/components/lr-data-grid.md +2 -0
- package/llms/components/lr-date-input.md +12 -3
- package/llms/components/lr-date-picker.md +11 -2
- package/llms/components/lr-diff-view.md +46 -5
- package/llms/components/lr-doughnut-chart.md +6 -3
- package/llms/components/lr-drop-zone.md +7 -3
- package/llms/components/lr-embedding-explorer.md +8 -2
- package/llms/components/lr-emoji-picker.md +5 -1
- package/llms/components/lr-entity-chip.md +2 -0
- package/llms/components/lr-eval-run.md +3 -2
- package/llms/components/lr-export-button.md +5 -2
- package/llms/components/lr-flow-node.md +7 -4
- package/llms/components/lr-funnel.md +7 -2
- package/llms/components/lr-gauge.md +7 -2
- package/llms/components/lr-geojson-view.md +10 -2
- package/llms/components/lr-geojson-viewer.md +10 -2
- package/llms/components/lr-graph-legend.md +6 -3
- package/llms/components/lr-graph-query-builder.md +21 -11
- package/llms/components/lr-grounding-summary.md +8 -2
- package/llms/components/lr-heatmap.md +5 -2
- package/llms/components/lr-histogram.md +4 -2
- package/llms/components/lr-json-schema-viewer.md +7 -5
- package/llms/components/lr-line-chart.md +6 -3
- package/llms/components/lr-locale-picker.md +4 -1
- package/llms/components/lr-map.md +5 -3
- package/llms/components/lr-memory-panel.md +6 -2
- package/llms/components/lr-mention-popover.md +7 -4
- package/llms/components/lr-message-actions.md +3 -1
- package/llms/components/lr-message-parts.md +8 -2
- package/llms/components/lr-mind-map.md +11 -2
- package/llms/components/lr-option.md +25 -2
- package/llms/components/lr-otp-input.md +3 -1
- package/llms/components/lr-phone-input.md +9 -5
- package/llms/components/lr-pie-chart.md +6 -3
- package/llms/components/lr-polar-area-chart.md +6 -3
- package/llms/components/lr-policy-summary.md +3 -2
- package/llms/components/lr-progress-bar.md +4 -1
- package/llms/components/lr-prompt-input.md +4 -1
- package/llms/components/lr-prompt-queue.md +5 -2
- package/llms/components/lr-radar-chart.md +6 -3
- package/llms/components/lr-rag-eval-dashboard.md +7 -2
- package/llms/components/lr-realtime-session.md +3 -1
- package/llms/components/lr-rubric-form.md +6 -1
- package/llms/components/lr-scatter-chart.md +6 -3
- package/llms/components/lr-segmented.md +3 -1
- package/llms/components/lr-select.md +7 -1
- package/llms/components/lr-selection-toolbar.md +4 -1
- package/llms/components/lr-sequence-strip.md +7 -3
- package/llms/components/lr-source-card.md +16 -1
- package/llms/components/lr-source-list.md +17 -2
- package/llms/components/lr-source-picker.md +3 -1
- package/llms/components/lr-subagent-panel.md +6 -3
- package/llms/components/lr-switch.md +4 -3
- package/llms/components/lr-table.md +6 -1
- package/llms/components/lr-thinking-panel.md +8 -5
- package/llms/components/lr-token-input.md +15 -1
- package/llms/components/lr-tool-call-chip.md +2 -0
- package/llms/components/lr-tool-param-form.md +15 -4
- package/llms/components/lr-tooltip.md +8 -4
- package/llms/components/lr-trace-tree.md +7 -4
- package/llms/components/lr-video-playlist.md +7 -5
- package/llms/components/lr-voice-picker.md +7 -4
- package/llms/components/lr-widget.md +15 -2
- package/llms/migration.md +4 -4
- package/llms-full.txt +552 -159
- package/package.json +11 -9
- package/registrations.json +1 -1
- package/vscode-css-data.json +1 -1
- package/vscode-html-data.json +1 -1
- package/web-types.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,query,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{LyraElement}from"../../../internal/lyra-element.js";import{FormAssociated,isBarredFromValidation}from"../../../internal/form-associated.js";import{SET_ANCHORED_VALIDITY}from"../../../internal/anchored-validity.js";import{acquireResolvedAriaRelationship}from"../../../internal/aria-controls.js";import{finiteInteger,finiteNumber}from"../../../internal/numbers.js";import{activeElementIn}from"../../../internal/active-element.js";import{styles}from"./code-editor.styles.js";import{presenceTrueDefaultBooleanConverter as trueDefaultBooleanConverter}from"../../../internal/converters.js";import{sanitizeCssResize}from"../../../internal/safe-css.js";import{autocorrectConverter,normalizeAutocorrect}from"../../../internal/converters.js";import{lengthViolations}from"../../../internal/length-constraints.js";import{dispatchNativeInputEvent,relayNativeEvent}from"../../../internal/native-event-relay.js";import{LYRA_DEFAULT_codeEditorLabel,LYRA_DEFAULT_fieldRequired,LYRA_DEFAULT_valueInvalid}from"../../../internal/default-strings.generated.js";class LyraCodeEditorBase extends LyraElement{}class LyraCodeEditor extends FormAssociated(LyraCodeEditorBase){constructor(){super(...arguments),this.language="",this.lineNumbers=!0,this._tabSize=2,this.tabSizeAssigned=!1,this.label="",this.hint="",this.errorText="",this.placeholder="",this.readonly=!1,this._rows=4,this.cols=20,this.resize="both",this.size="m",this.wrapValue="off",this.spellcheck=!1,this.autofocus=!1,this.title="",this.autocapitalize="off",this.autocomplete="",this.inputMode="",this.enterKeyHint="",this.autocorrectValue=!1,this.accessibleLabel="",this.touched=!1,this.hasLabelSlot=!1,this.hasHintSlot=!1,this.hasErrorSlot=!1,this.gutterWindowStart=0,this.caretOffset=0,this.onInput=event=>{if(this.liveDisabled){event.stopPropagation();return}this.value=event.target.value,this.syncCaretOffset(),this.fitToContent(),relayNativeEvent(this,event),this.emit("lr-input",{value:this.value})},this.onChange=event=>{if(this.liveDisabled){event.stopPropagation();return}this.value=event.target.value,relayNativeEvent(this,event),this.emit("lr-change",{value:this.value})},this.onFocus=event=>{if(this.liveDisabled){event.stopPropagation();return}const textarea=event.target;queueMicrotask(()=>{this.isConnected&&this.textarea===textarea&&activeElementIn(this.shadowRoot)===textarea&&this.syncCaretOffset()}),relayNativeEvent(this,event)},this.onBlur=event=>{this.liveDisabled||(this.touched=!0),this.tabBypassArmed=!1,relayNativeEvent(this,event)},this.tabBypassArmed=!1,this.onKeyDown=event=>{if(!this.liveDisabled){if(event.key==="Escape"){this.tabBypassArmed=!0;return}if(event.key==="Tab"){if(event.shiftKey)return;if(this.tabBypassArmed){this.tabBypassArmed=!1;return}if(this.readonly)return;event.preventDefault();const target=event.target,start=target.selectionStart;target.setRangeText(" ".repeat(this.indentWidth),start,target.selectionEnd,"end"),this.value=target.value,dispatchNativeInputEvent(this,{data:" ".repeat(this.indentWidth),inputType:"insertText"}),this.emit("lr-input",{value:this.value});return}this.tabBypassArmed=!1}},this.onCaretChange=()=>{this.syncCaretOffset()},this.onLabelSlotChange=e=>{this.hasLabelSlot=e.target.assignedElements({flatten:!0}).length>0},this.onHintSlotChange=e=>{this.hasHintSlot=e.target.assignedElements({flatten:!0}).length>0},this.onErrorSlotChange=e=>{this.hasErrorSlot=e.target.assignedElements({flatten:!0}).length>0},this.onEditorScroll=()=>{if(this.syncGutterInlinePosition(),!this.lineNumbers||!this.editor||!this.textarea)return;const computed=this.ownerDocument.defaultView?.getComputedStyle(this.textarea),lineHeight=computed?Number.parseFloat(computed.lineHeight):Number.NaN;if(!Number.isFinite(lineHeight)||lineHeight<=0)return;let firstVisible=Math.floor(this.editor.scrollTop/lineHeight);if(this.wrapsText){const offsets=this.lineStarts();let low=0,high=offsets.length-1;for(;low<high;){const middle=Math.ceil((low+high)/2);this.wrappedLineOffset(offsets[middle])<=this.editor.scrollTop?low=middle:high=middle-1}firstVisible=low}const next=Math.max(0,firstVisible-20);next!==this.gutterWindowStart&&(this.gutterWindowStart=next)}}static{this.defaultStrings={...super.defaultStrings,codeEditorLabel:LYRA_DEFAULT_codeEditorLabel,fieldRequired:LYRA_DEFAULT_fieldRequired,valueInvalid:LYRA_DEFAULT_valueInvalid}}static{this.styles=[LyraElement.styles,styles]}get tabSize(){return this._tabSize}set tabSize(value){const old=this._tabSize;this.tabSizeAssigned=value!=null,this._tabSize=finiteInteger(value,2,1,16),this.requestUpdate("tabSize",old)}get indentWidth(){if(this.tabSizeAssigned||!this.textarea)return this._tabSize;const resolved=getComputedStyle(this.textarea).tabSize.trim();return/^\d+(?:\.\d+)?$/.test(resolved)?finiteInteger(Number(resolved),this._tabSize,1,16):this._tabSize}get rows(){return this._rows}set rows(next){const previous=this._rows;this._rows=finiteInteger(next,4,1),this.requestUpdate("rows",previous)}get minlength(){return this._minlength}set minlength(next){const previous=this._minlength;this._minlength=next!==void 0&&Number.isFinite(next)&&next>=0?finiteInteger(next,0,0):void 0,this.requestUpdate("minlength",previous)}get maxlength(){return this._maxlength}set maxlength(next){const previous=this._maxlength;this._maxlength=next!==void 0&&Number.isFinite(next)&&next>=0?finiteInteger(next,0,0):void 0,this.requestUpdate("maxlength",previous)}get wrap(){return this.wrapValue}set wrap(next){const old=this.wrapValue;this.wrapValue=next==="soft"||next==="hard"?next:"off",this.syncSubmissionValue(),this.requestUpdate("wrap",old)}get autocorrect(){return this.autocorrectValue}set autocorrect(next){this.autocorrectValue=normalizeAutocorrect(next),this.requestUpdate()}get inputmode(){return this.inputMode}set inputmode(next){this.inputMode=next??""}get enterkeyhint(){return this.enterKeyHint}set enterkeyhint(next){this.enterKeyHint=next??""}connectedCallback(){super.connectedCallback(),this.hasUpdated&&(this.syncExternalDescription(),this.observeTextGeometry())}disconnectedCallback(){this.textGeometryObserver?.disconnect(),this.textGeometryObserver=void 0,this.releaseExternalDescription(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.releaseExternalDescription(),this.textGeometryObserver?.disconnect(),this.textGeometryObserver=void 0,this.isConnected&&this.hasUpdated&&(this.syncExternalDescription(),this.observeTextGeometry())}syncExternalDescription(){if(!this.isConnected)return;const owner=this.textarea;owner&&(this.externalDescriptionLease?this.externalDescriptionLease.update(owner):this.externalDescriptionLease=acquireResolvedAriaRelationship(this,owner,"aria-describedby"))}releaseExternalDescription(){this.externalDescriptionLease?.release(),this.externalDescriptionLease=void 0}formResetCallback(){super.formResetCallback(),this.touched=!1}get value(){return super.value}set value(next){super.value=this.normalizeLineEndings(next),this.syncSubmissionValue()}get defaultValue(){return super.defaultValue}set defaultValue(next){super.defaultValue=this.normalizeLineEndings(next),this.syncSubmissionValue()}normalizeLineEndings(value){return String(value??"").replace(/\r\n?/g,`
|
|
2
2
|
`)}submissionValue(){if(this.wrap!=="hard")return this.value;const view=this.ownerDocument?.defaultView;if(!view?.FormData)return this.value;const form=this.ownerDocument.createElement("form"),textarea=this.ownerDocument.createElement("textarea");textarea.name="value",textarea.wrap="hard",textarea.cols=finiteInteger(this.cols,20,1,1e6),textarea.value=this.value,form.append(textarea),(this.isConnected?this.ownerDocument.body:null)?.append(form);try{const serialized=new view.FormData(form).get("value");return typeof serialized=="string"?serialized:this.value}catch{return this.value}finally{form.remove()}}syncSubmissionValue(){this.internals&&this.internals.setFormValue(this.submissionValue(),this.value)}get input(){return this.textarea??null}get liveDisabled(){return this.effectiveDisabled||this.matches(":disabled")}click(){this.liveDisabled||this.textarea?.click()}focus(options){this.liveDisabled||this.textarea?.focus(options)}blur(){this.textarea?.blur()}select(){this.textarea?.select(),this.syncCaretOffset()}get selectionStart(){return this.textarea?.selectionStart??null}set selectionStart(value){this.textarea&&(this.textarea.selectionStart=value??0,this.syncCaretOffset())}get selectionEnd(){return this.textarea?.selectionEnd??null}set selectionEnd(value){this.textarea&&(this.textarea.selectionEnd=value??0,this.syncCaretOffset())}get selectionDirection(){return this.textarea?.selectionDirection??null}set selectionDirection(value){this.textarea&&(this.textarea.selectionDirection=value??"none",this.syncCaretOffset())}setSelectionRange(start,end,direction){this.textarea?.setSelectionRange(start,end,direction),this.syncCaretOffset()}setRangeText(replacement,start,end,selectionMode){const textarea=this.textarea;textarea&&(textarea.setRangeText(replacement,start??textarea.selectionStart,end??textarea.selectionEnd,selectionMode),this.value=textarea.value,this.syncCaretOffset(),this.fitToContent())}scrollPosition(position){const editor=this.editor;if(editor){if(position===void 0)return{top:editor.scrollTop,left:editor.scrollLeft};position.top!==void 0&&(editor.scrollTop=finiteNumber(position.top,editor.scrollTop)),position.left!==void 0&&(editor.scrollLeft=finiteNumber(position.left,editor.scrollLeft)),this.syncGutterInlinePosition()}}syncCaretOffset(){const textarea=this.textarea;if(!textarea)return;const next=finiteInteger(textarea.selectionEnd,0,0,this.value.length);if(next===this.caretOffset){this.scrollCaretIntoView();return}this.caretOffset=next}scrollCaretIntoView(){const editor=this.editor,marker=this.caretMeasure;if(!editor||!marker)return;const frame=editor.getBoundingClientRect();let caret=marker.getBoundingClientRect(),text=marker.nextSibling;for(;text&&(text.nodeType!==3||!text.textContent);)text=text.nextSibling;if(text){const range=this.ownerDocument.createRange();range.setStart(text,0),text.textContent?.startsWith(`
|
|
3
|
-
`)?range.setEnd(text,1):range.collapse(!0);const measured=range.getBoundingClientRect();measured.height>0&&(caret=measured)}const gutterWidth=this.gutter?.getBoundingClientRect().width??0,viewportLeft=frame.left+editor.clientLeft,viewportTop=frame.top+editor.clientTop,textLeft=viewportLeft+(this.effectiveDirection==="rtl"?0:gutterWidth),textRight=viewportLeft+editor.clientWidth-(this.effectiveDirection==="rtl"?gutterWidth:0),viewportBottom=viewportTop+editor.clientHeight,left=caret.left<textLeft?caret.left-textLeft:caret.right>textRight?caret.right-textRight:0,top=caret.top<viewportTop?caret.top-viewportTop:caret.bottom>viewportBottom?caret.bottom-viewportBottom:0;left===0&&top===0||(editor.scrollBy({left:finiteNumber(left,0),top:finiteNumber(top,0)}),this.syncGutterInlinePosition())}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||(this.hasLabelSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="label"),this.hasHintSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="hint"),this.hasErrorSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="error"))}updated(changed){super.updated(changed),this.syncExternalDescription(),this.textarea&&this.textarea.value!==this.value&&(this.textarea.value=this.value),(changed.has("touched")||changed.has("required")||changed.has("value")||changed.has("minlength")||changed.has("maxlength")||changed.has("readonly"))&&(this.updateValidity(),this.toggleAttribute("data-invalid",this.touched&&!this.internals.validity.valid)),(changed.has("wrap")||changed.has("cols"))&&this.syncSubmissionValue(),(changed.has("resize")||changed.has("value")||changed.has("rows")||changed.has("cols"))&&this.fitToContent(),this.syncGutterInlinePosition(),this.observeTextGeometry(),this.syncGutterGeometry(),(changed.has("caretOffset")||changed.has("value"))&&this.scrollCaretIntoView()}updateValidity(){if(isBarredFromValidation(this,this.internals)){this[SET_ANCHORED_VALIDITY]({});return}if(this.required&&this.value===""){this[SET_ANCHORED_VALIDITY]({valueMissing:!0},this.localize("fieldRequired"));return}const native=this.textarea;native&&native.value!==this.value&&(native.value=this.value);const own=lengthViolations(this.value,this.minlength,this.maxlength),tooShort=!!native?.validity.tooShort||own.tooShort,tooLong=!!native?.validity.tooLong||own.tooLong;this[SET_ANCHORED_VALIDITY](tooShort||tooLong?{tooShort,tooLong}:{},tooShort||tooLong?native?.validationMessage||this.localize("valueInvalid"):"")}countLines(){if(!this.lineNumbers)return 0;let count=1;for(let index=0;index<this.value.length;index++)this.value.charCodeAt(index)===10&&count++;return count}syncGutterInlinePosition(){const editor=this.editor,gutter=this.gutter;!editor||!gutter||gutter.style.setProperty("--_lr-code-editor-gutter-scroll-translation",`${finiteNumber(editor.scrollLeft,0)}px`)}get wrapsText(){return this.wrap==="soft"||this.wrap==="hard"}lineStarts(){if(this.wrappedLineStarts?.value===this.value)return this.wrappedLineStarts.offsets;const offsets=[0];for(let index=0;index<this.value.length;index++)this.value.charCodeAt(index)===10&&offsets.push(index+1);return this.wrappedLineStarts={value:this.value,offsets},offsets}wrappedLineOffset(offset){const measure=this.renderRoot.querySelector(".editor-measure");if(!measure)return 0;const nodes=Array.from(measure.childNodes).filter(node=>node.nodeType===3),range=this.ownerDocument.createRange(),first=nodes.find(node=>(node.textContent?.length??0)>0);if(!first)return 0;range.setStart(first,0),range.setEnd(first,1);const firstTop=range.getBoundingClientRect().top;let remaining=offset;for(const node of nodes){const length=node.textContent?.length??0;if(remaining<length)return range.setStart(node,remaining),range.setEnd(node,remaining+1),range.getBoundingClientRect().top-firstTop;remaining-=length}return 0}syncGutterGeometry(){if(!this.lineNumbers)return;const lines=this.renderRoot.querySelectorAll(".gutter-line"),start=Math.min(this.gutterWindowStart,Math.max(0,this.countLines()-1)),offsets=this.wrapsText?this.lineStarts():void 0,positions=offsets?Array.from(lines,(_line,index)=>this.wrappedLineOffset(offsets[start+index]??0)):void 0,height=this.renderRoot.querySelector(".editor-measure")?.getBoundingClientRect().height;height!==void 0&&this.gutter?.style.setProperty("block-size",`${height}px`),lines.forEach((line,index)=>{line.style.insetBlockStart=positions?`${positions[index]}px`:`calc(var(--lr-code-editor-line-height, var(--_lr-code-editor-line-height)) * ${start+index}em)`})}observeTextGeometry(){if(!this.lineNumbers||!this.isConnected){this.textGeometryObserver?.disconnect(),this.textGeometryObserver=void 0;return}if(this.textGeometryObserver)return;const measure=this.renderRoot.querySelector(".editor-measure"),ownerDocument=this.ownerDocument,Observer=ownerDocument.defaultView?.ResizeObserver;if(!measure||!Observer)return;const observer=new Observer(()=>{!this.isConnected||this.ownerDocument!==ownerDocument||this.textGeometryObserver!==observer||(this.onEditorScroll(),this.syncGutterGeometry())});this.textGeometryObserver=observer,observer.observe(measure)}gutterRows(lineCount){const start=Math.min(this.gutterWindowStart,Math.max(0,lineCount-1)),end=Math.min(lineCount,start+200),rows=Array.from({length:end-start},(_value,offset)=>{const index=start+offset;return html`<span
|
|
3
|
+
`)?range.setEnd(text,1):range.collapse(!0);const measured=range.getBoundingClientRect();measured.height>0&&(caret=measured)}const gutterWidth=this.gutter?.getBoundingClientRect().width??0,viewportLeft=frame.left+editor.clientLeft,viewportTop=frame.top+editor.clientTop,textLeft=viewportLeft+(this.effectiveDirection==="rtl"?0:gutterWidth),textRight=viewportLeft+editor.clientWidth-(this.effectiveDirection==="rtl"?gutterWidth:0),viewportBottom=viewportTop+editor.clientHeight,left=caret.left<textLeft?caret.left-textLeft:caret.right>textRight?caret.right-textRight:0,top=caret.top<viewportTop?caret.top-viewportTop:caret.bottom>viewportBottom?caret.bottom-viewportBottom:0;left===0&&top===0||(editor.scrollBy({left:finiteNumber(left,0),top:finiteNumber(top,0)}),this.syncGutterInlinePosition())}willUpdate(changed){super.willUpdate(changed),this.hasUpdated||this.seedFirstRenderState(()=>{this.hasLabelSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="label"),this.hasHintSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="hint"),this.hasErrorSlot=Array.from(this.children??[]).some(el=>el.getAttribute("slot")==="error")})}updated(changed){super.updated(changed),this.syncExternalDescription(),this.textarea&&this.textarea.value!==this.value&&(this.textarea.value=this.value),(changed.has("touched")||changed.has("required")||changed.has("value")||changed.has("minlength")||changed.has("maxlength")||changed.has("readonly"))&&(this.updateValidity(),this.toggleAttribute("data-invalid",this.touched&&!this.internals.validity.valid)),(changed.has("wrap")||changed.has("cols"))&&this.syncSubmissionValue(),(changed.has("resize")||changed.has("value")||changed.has("rows")||changed.has("cols"))&&this.fitToContent(),this.syncGutterInlinePosition(),this.observeTextGeometry(),this.syncGutterGeometry(),(changed.has("caretOffset")||changed.has("value"))&&this.scrollCaretIntoView()}updateValidity(){if(isBarredFromValidation(this,this.internals)){this[SET_ANCHORED_VALIDITY]({});return}if(this.required&&this.value===""){this[SET_ANCHORED_VALIDITY]({valueMissing:!0},this.localize("fieldRequired"));return}const native=this.textarea;native&&native.value!==this.value&&(native.value=this.value);const own=lengthViolations(this.value,this.minlength,this.maxlength),tooShort=!!native?.validity.tooShort||own.tooShort,tooLong=!!native?.validity.tooLong||own.tooLong;this[SET_ANCHORED_VALIDITY](tooShort||tooLong?{tooShort,tooLong}:{},tooShort||tooLong?native?.validationMessage||this.localize("valueInvalid"):"")}countLines(){if(!this.lineNumbers)return 0;let count=1;for(let index=0;index<this.value.length;index++)this.value.charCodeAt(index)===10&&count++;return count}syncGutterInlinePosition(){const editor=this.editor,gutter=this.gutter;!editor||!gutter||gutter.style.setProperty("--_lr-code-editor-gutter-scroll-translation",`${finiteNumber(editor.scrollLeft,0)}px`)}get wrapsText(){return this.wrap==="soft"||this.wrap==="hard"}lineStarts(){if(this.wrappedLineStarts?.value===this.value)return this.wrappedLineStarts.offsets;const offsets=[0];for(let index=0;index<this.value.length;index++)this.value.charCodeAt(index)===10&&offsets.push(index+1);return this.wrappedLineStarts={value:this.value,offsets},offsets}wrappedLineOffset(offset){const measure=this.renderRoot.querySelector(".editor-measure");if(!measure)return 0;const nodes=Array.from(measure.childNodes).filter(node=>node.nodeType===3),range=this.ownerDocument.createRange(),first=nodes.find(node=>(node.textContent?.length??0)>0);if(!first)return 0;range.setStart(first,0),range.setEnd(first,1);const firstTop=range.getBoundingClientRect().top;let remaining=offset;for(const node of nodes){const length=node.textContent?.length??0;if(remaining<length)return range.setStart(node,remaining),range.setEnd(node,remaining+1),range.getBoundingClientRect().top-firstTop;remaining-=length}return 0}syncGutterGeometry(){if(!this.lineNumbers)return;const lines=this.renderRoot.querySelectorAll(".gutter-line"),start=Math.min(this.gutterWindowStart,Math.max(0,this.countLines()-1)),offsets=this.wrapsText?this.lineStarts():void 0,positions=offsets?Array.from(lines,(_line,index)=>this.wrappedLineOffset(offsets[start+index]??0)):void 0,height=this.renderRoot.querySelector(".editor-measure")?.getBoundingClientRect().height;height!==void 0&&this.gutter?.style.setProperty("block-size",`${height}px`),lines.forEach((line,index)=>{line.style.insetBlockStart=positions?`${positions[index]}px`:`calc(var(--lr-code-editor-line-height, var(--_lr-code-editor-line-height)) * ${start+index}em)`})}observeTextGeometry(){if(!this.lineNumbers||!this.isConnected){this.textGeometryObserver?.disconnect(),this.textGeometryObserver=void 0;return}if(this.textGeometryObserver)return;const measure=this.renderRoot.querySelector(".editor-measure"),ownerDocument=this.ownerDocument,Observer=ownerDocument.defaultView?.ResizeObserver;if(!measure||!Observer)return;const observer=new Observer(()=>{!this.isConnected||this.ownerDocument!==ownerDocument||this.textGeometryObserver!==observer||(this.onEditorScroll(),this.syncGutterGeometry())});this.textGeometryObserver=observer,observer.observe(measure)}gutterRows(lineCount){const start=Math.min(this.gutterWindowStart,Math.max(0,lineCount-1)),end=Math.min(lineCount,start+200),rows=Array.from({length:end-start},(_value,offset)=>{const index=start+offset;return html`<span
|
|
4
4
|
class="gutter-line"
|
|
5
5
|
style=${styleMap({insetBlockStart:`calc(var(--lr-code-editor-line-height, var(--_lr-code-editor-line-height)) * ${index}em)`})}
|
|
6
6
|
>${index+1}</span
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/form-control.styles.js";const styles=css` :host { display: block; block-size: 100%; --_lr-code-editor-min-block-size: var(--lr-size-8rem); --_lr-code-editor-padding: var(--lr-space-s); --_lr-code-editor-font-size: var(--lr-font-size-m); --_lr-code-editor-line-height: 1.5; --_lr-code-editor-tab-size: 2; } :host([size='2xs']) { --_lr-code-editor-min-block-size: var(--lr-size-4rem); --_lr-code-editor-padding: var(--lr-space-2xs); --_lr-code-editor-font-size: var(--lr-font-size-2xs); } :host([size='xs']) { --_lr-code-editor-min-block-size: var(--lr-size-5rem); --_lr-code-editor-padding: var(--lr-space-xs); --_lr-code-editor-font-size: var(--lr-font-size-xs); } :host([size='s']), :host([size='small']) { --_lr-code-editor-min-block-size: var(--lr-size-6rem); --_lr-code-editor-padding: var(--lr-size-0-375rem); --_lr-code-editor-font-size: var(--lr-font-size-sm); } :host([size='medium']) { --_lr-code-editor-min-block-size: var(--lr-size-8rem); --_lr-code-editor-padding: var(--lr-space-s); --_lr-code-editor-font-size: var(--lr-font-size-m); } :host([size='l']), :host([size='large']) { --_lr-code-editor-min-block-size: var(--lr-size-10rem); --_lr-code-editor-padding: var(--lr-space-m); --_lr-code-editor-font-size: var(--lr-font-size-lg); } :host([size='xl']) { --_lr-code-editor-min-block-size: var(--lr-size-12rem); --_lr-code-editor-padding: var(--lr-space-l); --_lr-code-editor-font-size: var(--lr-font-size-xl); } [part='form-control'] { display: flex; flex-direction: column; block-size: 100%; gap: var(--lr-space-xs); } [part~='label'] { color: var(--lr-color-text); font-weight: var(--lr-font-weight-semibold); } ${formControlRequiredMarker} [part='editor'] { display: grid; flex: 1 1 auto; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); block-size: 100%; contain: size; contain-intrinsic-block-size: var( --lr-code-editor-min-block-size, var(--_lr-code-editor-min-block-size) ); overflow: auto; scrollbar-width: var(--lr-theme-scrollbar-width, auto); scrollbar-gutter: var(--lr-theme-scrollbar-gutter, auto); min-block-size: var( --lr-code-editor-min-block-size, var(--_lr-code-editor-min-block-size) ); border: var(--lr-border-width-thin) solid var(--lr-code-editor-border, var(--lr-color-border)); border-radius: var(--lr-radius); background: var(--lr-code-editor-fill, var(--lr-color-surface)); transition: border-color var(--lr-transition-fast); } [part='gutter'] { box-sizing: border-box; grid-area: 1 / 1; min-block-size: 100%; align-self: start; position: relative; transform: translateX( var(--_lr-code-editor-gutter-scroll-translation, 0) ); z-index: var(--lr-layer-content); padding: var(--lr-code-editor-padding, var(--_lr-code-editor-padding)) var(--lr-space-xs); border-inline-end: var(--lr-border-width-thin) solid var(--lr-color-border); background: var(--lr-color-surface); color: var(--lr-color-text-quiet); text-align: end; white-space: pre; user-select: none; font: inherit; font-family: var(--lr-font-mono); font-size: var( --lr-code-editor-font-size, var(--_lr-code-editor-font-size) ); line-height: var( --lr-code-editor-line-height, var(--_lr-code-editor-line-height) ); } .editor-content { grid-area: 1 / 2; position: relative; align-self: start; box-sizing: border-box; inline-size: max-content; min-inline-size: 100%; block-size: 100%; min-block-size: 0; } :host(:not([resize='auto'])) .editor-content { block-size: max-content; min-block-size: 100%; } .editor-measure { display: block; box-sizing: border-box; inline-size: max-content; block-size: max-content; min-inline-size: 100%; padding: var(--lr-code-editor-padding, var(--_lr-code-editor-padding)); color: transparent; font: inherit; font-family: var(--lr-font-mono); font-size: var( --lr-code-editor-font-size, var(--_lr-code-editor-font-size) ); line-height: var( --lr-code-editor-line-height, var(--_lr-code-editor-line-height) ); tab-size: var(--lr-code-editor-tab-size, var(--_lr-code-editor-tab-size)); white-space: pre; pointer-events: none; user-select: none; opacity: 0; } .editor-content:where([data-wrap='soft'], [data-wrap='hard']) { inline-size: 100%; block-size: max-content; min-block-size: 100%; } .editor-measure:where([data-wrap='soft'], [data-wrap='hard']) { inline-size: 100%; overflow-wrap: anywhere; white-space: pre-wrap; } .editor-caret-measure { display: inline-block; inline-size: 0; block-size: var(--lr-size-1em); } .gutter-measure { visibility: hidden; } .gutter-window { position: absolute; inset-block-start: var( --lr-code-editor-padding, var(--_lr-code-editor-padding) ); inset-inline: var(--lr-space-xs); display: block; } .gutter-line { position: absolute; inset-inline: 0; } [part='textarea'] { display: block; position: absolute; inset: 0; box-sizing: border-box; inline-size: 100%; min-inline-size: 0; block-size: 100%; min-block-size: 0; overflow: hidden; padding: var(--lr-code-editor-padding, var(--_lr-code-editor-padding)); resize: both; border: 0; outline: 0; background: transparent; color: var(--lr-color-text); font: inherit; font-family: var(--lr-font-mono); font-size: var( --lr-code-editor-font-size, var(--_lr-code-editor-font-size) ); line-height: var( --lr-code-editor-line-height, var(--_lr-code-editor-line-height) ); tab-size: var(--lr-code-editor-tab-size, var(--_lr-code-editor-tab-size)); } [part='textarea']:focus-visible { outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color); outline-offset: calc(var(--lr-focus-ring-offset) * -1); } [part='textarea']::placeholder { color: var(--lr-color-text-quiet); } :host(:not(:disabled)) [part='editor']:hover { border-color: var(--lr-code-editor-hover-border, var(--lr-color-brand)); } [part='hint'], [part='error'] { color: var(--lr-color-text-quiet); font-size: var(--lr-font-size-sm); } [part='error'] { color: var(--lr-color-danger); } :host([data-invalid]) [part='editor'] { border-color: var(--lr-code-editor-invalid-border, var(--lr-color-danger)); } :host(:disabled) { opacity: var(--lr-opacity-disabled); cursor: not-allowed; } [part='form-control'], [part~='form-control-label'], [part='hint'], [part='error'] { min-inline-size: 0; max-inline-size: 100%; overflow-wrap: anywhere; } `;export{styles};
|
|
1
|
+
import{css}from"lit";import{formControlRequiredMarker}from"../../../internal/form-control.styles.js";const styles=css` :host { display: block; block-size: 100%; --_lr-code-editor-min-block-size: var(--lr-size-8rem); --_lr-code-editor-padding: var(--lr-space-s); --_lr-code-editor-font-size: var(--lr-font-size-m); --_lr-code-editor-line-height: 1.5; --_lr-code-editor-tab-size: 2; } :host([size='2xs']) { --_lr-code-editor-min-block-size: var(--lr-size-4rem); --_lr-code-editor-padding: var(--lr-space-2xs); --_lr-code-editor-font-size: var(--lr-font-size-2xs); } :host([size='xs']) { --_lr-code-editor-min-block-size: var(--lr-size-5rem); --_lr-code-editor-padding: var(--lr-space-xs); --_lr-code-editor-font-size: var(--lr-font-size-xs); } :host([size='s']), :host([size='small']) { --_lr-code-editor-min-block-size: var(--lr-size-6rem); --_lr-code-editor-padding: var(--lr-size-0-375rem); --_lr-code-editor-font-size: var(--lr-font-size-sm); } :host([size='medium']) { --_lr-code-editor-min-block-size: var(--lr-size-8rem); --_lr-code-editor-padding: var(--lr-space-s); --_lr-code-editor-font-size: var(--lr-font-size-m); } :host([size='l']), :host([size='large']) { --_lr-code-editor-min-block-size: var(--lr-size-10rem); --_lr-code-editor-padding: var(--lr-space-m); --_lr-code-editor-font-size: var(--lr-font-size-lg); } :host([size='xl']) { --_lr-code-editor-min-block-size: var(--lr-size-12rem); --_lr-code-editor-padding: var(--lr-space-l); --_lr-code-editor-font-size: var(--lr-font-size-xl); } [part='form-control'] { display: flex; flex-direction: column; block-size: 100%; gap: var(--lr-space-xs); } [part~='label'] { color: var(--lr-color-text); font-weight: var(--lr-font-weight-semibold); } ${formControlRequiredMarker} [part='editor'] { display: grid; flex: 1 1 auto; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); block-size: 100%; contain: size; contain-intrinsic-block-size: var( --lr-code-editor-min-block-size, var(--_lr-code-editor-min-block-size) ); overflow: auto; scrollbar-width: var(--lr-theme-scrollbar-width, auto); scrollbar-gutter: var(--lr-theme-scrollbar-gutter, auto); min-block-size: var( --lr-code-editor-min-block-size, var(--_lr-code-editor-min-block-size) ); border: var(--lr-border-width-thin) solid var(--lr-code-editor-border, var(--lr-color-border)); border-radius: var(--lr-code-editor-radius, var(--lr-radius)); background: var(--lr-code-editor-fill, var(--lr-color-surface)); transition: border-color var(--lr-transition-fast); } [part='gutter'] { box-sizing: border-box; grid-area: 1 / 1; min-block-size: 100%; align-self: start; position: relative; transform: translateX( var(--_lr-code-editor-gutter-scroll-translation, 0) ); z-index: var(--lr-layer-content); padding: var(--lr-code-editor-padding, var(--_lr-code-editor-padding)) var(--lr-space-xs); border-inline-end: var(--lr-border-width-thin) solid var(--lr-color-border); background: var(--lr-color-surface); color: var(--lr-color-text-quiet); text-align: end; white-space: pre; user-select: none; font: inherit; font-family: var(--lr-font-mono); font-size: var( --lr-code-editor-font-size, var(--_lr-code-editor-font-size) ); line-height: var( --lr-code-editor-line-height, var(--_lr-code-editor-line-height) ); } .editor-content { grid-area: 1 / 2; position: relative; align-self: start; box-sizing: border-box; inline-size: max-content; min-inline-size: 100%; block-size: 100%; min-block-size: 0; } :host(:not([resize='auto'])) .editor-content { block-size: max-content; min-block-size: 100%; } .editor-measure { display: block; box-sizing: border-box; inline-size: max-content; block-size: max-content; min-inline-size: 100%; padding: var(--lr-code-editor-padding, var(--_lr-code-editor-padding)); color: transparent; font: inherit; font-family: var(--lr-font-mono); font-size: var( --lr-code-editor-font-size, var(--_lr-code-editor-font-size) ); line-height: var( --lr-code-editor-line-height, var(--_lr-code-editor-line-height) ); tab-size: var(--lr-code-editor-tab-size, var(--_lr-code-editor-tab-size)); white-space: pre; pointer-events: none; user-select: none; opacity: 0; } .editor-content:where([data-wrap='soft'], [data-wrap='hard']) { inline-size: 100%; block-size: max-content; min-block-size: 100%; } .editor-measure:where([data-wrap='soft'], [data-wrap='hard']) { inline-size: 100%; overflow-wrap: anywhere; white-space: pre-wrap; } .editor-caret-measure { display: inline-block; inline-size: 0; block-size: var(--lr-size-1em); } .gutter-measure { visibility: hidden; } .gutter-window { position: absolute; inset-block-start: var( --lr-code-editor-padding, var(--_lr-code-editor-padding) ); inset-inline: var(--lr-space-xs); display: block; } .gutter-line { position: absolute; inset-inline: 0; } [part='textarea'] { display: block; position: absolute; inset: 0; box-sizing: border-box; inline-size: 100%; min-inline-size: 0; block-size: 100%; min-block-size: 0; overflow: hidden; padding: var(--lr-code-editor-padding, var(--_lr-code-editor-padding)); resize: both; border: 0; outline: 0; background: transparent; color: var(--lr-color-text); font: inherit; font-family: var(--lr-font-mono); font-size: var( --lr-code-editor-font-size, var(--_lr-code-editor-font-size) ); line-height: var( --lr-code-editor-line-height, var(--_lr-code-editor-line-height) ); tab-size: var(--lr-code-editor-tab-size, var(--_lr-code-editor-tab-size)); } [part='textarea']:focus-visible { outline: var(--lr-focus-ring-width) solid var(--lr-focus-ring-color); outline-offset: calc(var(--lr-focus-ring-offset) * -1); } [part='textarea']::placeholder { color: var(--lr-color-text-quiet); } :host(:not(:disabled)) [part='editor']:hover { border-color: var(--lr-code-editor-hover-border, var(--lr-color-brand)); } [part='hint'], [part='error'] { color: var(--lr-color-text-quiet); font-size: var(--lr-font-size-sm); } [part='error'] { color: var(--lr-color-danger); } :host([data-invalid]) [part='editor'] { border-color: var(--lr-code-editor-invalid-border, var(--lr-color-danger)); } :host(:disabled) { opacity: var(--lr-opacity-disabled); cursor: not-allowed; } [part='form-control'], [part~='form-control-label'], [part='hint'], [part='error'] { min-inline-size: 0; max-inline-size: 100%; overflow-wrap: anywhere; } `;export{styles};
|
|
@@ -8,7 +8,11 @@ export interface LyraColorPickerSwatch{color:string;label?:string;
|
|
|
8
8
|
* `disabled`/`effectiveDisabled` -- this swatch alone stays inert even while every other swatch
|
|
9
9
|
* remains pickable. Omitted or `false` renders the swatch exactly as before this field existed.
|
|
10
10
|
*/
|
|
11
|
-
disabled?:boolean;
|
|
11
|
+
disabled?:boolean;
|
|
12
|
+
/** Optional decorative custom shape rendered in place of the plain filled circle -- e.g. a gem
|
|
13
|
+
* or a status glyph. Its rendered subtree is inert and aria-hidden, matching
|
|
14
|
+
* `<lr-swatch-picker>`'s identical `SwatchPickerItem.icon` field. */
|
|
15
|
+
icon?:unknown;}export interface LyraColorPickerEventMap{'lr-invalid':CustomEvent<null>;'lr-input':CustomEvent<null>;input:InputEvent;change:Event;blur:FocusEvent;focus:FocusEvent;'lr-change':CustomEvent<{value:string;}>;'lr-show':CustomEvent<null>;'lr-after-show':CustomEvent<null>;'lr-hide':CustomEvent<null>;'lr-after-hide':CustomEvent<null>;}declare class ColorPickerBase extends LyraElement<LyraColorPickerEventMap>{}declare const LyraColorPicker_base:typeof ColorPickerBase&(new(...args:any[])=>import("../../../lyra.js").FormAssociatedInterface<string> &import("../../../internal/form-associated.js").FormAssociatedSubclassInterface<string>);
|
|
12
16
|
/**
|
|
13
17
|
* `<lr-color-picker>` — a form-associated colour picker: a compact swatch trigger that opens a
|
|
14
18
|
* popover with a saturation/brightness grid, a hue slider, an optional alpha slider, a text field
|
|
@@ -188,6 +192,12 @@ static get validators():LyraFormValidator<LyraColorPicker>[];static styles:impor
|
|
|
188
192
|
withLabel:boolean;
|
|
189
193
|
/** Server-rendering hint that the `hint` slot is populated before client slot observation. */
|
|
190
194
|
withHint:boolean;errorText:string;accessibleLabel:string;
|
|
195
|
+
/** Forwards native read-only behavior to the internal value field and blocks every other
|
|
196
|
+
* value-committing affordance (the popup panel opening, the saturation/hue/opacity handles,
|
|
197
|
+
* palette swatches, the eyedropper, and Enter/blur-driven text commits) while leaving the
|
|
198
|
+
* control focusable, its value selectable/copyable, and its current value submitted with the
|
|
199
|
+
* form -- mirroring `lr-input`'s `readonly`. */
|
|
200
|
+
readonly:boolean;
|
|
191
201
|
/** Visible-swatch size — the library-wide `2xs`–`xl` ladder shared with `lr-input`/`lr-select`.
|
|
192
202
|
* The interactive trigger retains the shared `--lr-icon-button-size` minimum target even when
|
|
193
203
|
* the visible swatch is denser. The Web Awesome / Shoelace spellings `small`/`medium`/`large`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{live}from"lit/directives/live.js";import{LyraElement}from"../../../internal/lyra-element.js";import{FormAssociated}from"../../../internal/form-associated.js";import{hostAriaLabel,nextId,srOnly}from"../../../internal/a11y.js";import{deferredPlaceReady as place}from"../../../internal/anchored-overlay-runtime.js";import{isRtl,rtlAwarePlacement}from"../../../internal/rtl.js";import{optionalLiteralSetConverter}from"../../../internal/converters.js";import{resolveEffectivePositioningStrategy}from"../../../internal/positioning-strategy.js";import{activateNonmodalOverlay,composedContains}from"../../../internal/nonmodal-overlay-manager.js";import{relayNativeEvent}from"../../../internal/native-event-relay.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{finiteRange}from"../../../internal/numbers.js";import{activeElementIn}from"../../../internal/active-element.js";import{acquireNativeControlDescription}from"../../../internal/native-control-description.js";import{getOwnDataDescriptor,MISSING_OWN_DATA_DESCRIPTOR,UNSAFE_OWN_DATA_DESCRIPTOR}from"../../../internal/data-descriptors.js";import{eyeIcon}from"../../../internal/icons.js";import{dispatchNativeEvent,dispatchNativeInputEvent}from"../../../internal/native-event-relay.js";import{cssColor,formatColor,hsva,parseColor,sameColor,withAlphaFormat}from"./color-core.js";import{sizes}from"../../../internal/sizes.styles.js";import{styles}from"./color-picker.styles.js";import{currentValidityValidator}from"../form-validator.js";import{LYRA_DEFAULT_colorPicker,LYRA_DEFAULT_colorPickerCurrentValue,LYRA_DEFAULT_colorPickerEyeDropper,LYRA_DEFAULT_colorPickerHue,LYRA_DEFAULT_colorPickerHueValue,LYRA_DEFAULT_colorPickerOpacity,LYRA_DEFAULT_colorPickerOpacityValue,LYRA_DEFAULT_colorPickerSaturationBrightness,LYRA_DEFAULT_colorPickerSaturationBrightnessValue,LYRA_DEFAULT_colorPickerSwatch,LYRA_DEFAULT_colorPickerSwatches,LYRA_DEFAULT_colorPickerToggleFormat,LYRA_DEFAULT_colorPickerValueField,LYRA_DEFAULT_fieldRequired}from"../../../internal/default-strings.generated.js";const POSITIONING_STRATEGY=optionalLiteralSetConverter(["absolute","fixed"]),SMALL_STEP=1,LARGE_STEP_MULTIPLIER=10,FORMAT_CYCLE=["hex","rgb","hsl","hsv"],MAX_COLOR_PICKER_SWATCHES=1e4,EMPTY_COLOR_PICKER_SWATCHES=Object.freeze([]);function projectColorPickerSwatches(value){try{if(typeof value=="string")return Object.freeze(value.split(";").slice(0,MAX_COLOR_PICKER_SWATCHES).flatMap(entry=>{const color=entry.trim();return color?[Object.freeze({color})]:[]}));if(!Array.isArray(value))return EMPTY_COLOR_PICKER_SWATCHES;const length=getOwnDataDescriptor(value,"length");if(length===MISSING_OWN_DATA_DESCRIPTOR||length===UNSAFE_OWN_DATA_DESCRIPTOR||typeof length.value!="number"||!Number.isSafeInteger(length.value)||length.value<0)return EMPTY_COLOR_PICKER_SWATCHES;const swatches=[];for(let index=0;index<Math.min(length.value,MAX_COLOR_PICKER_SWATCHES);index+=1){const entry=getOwnDataDescriptor(value,String(index));if(entry===MISSING_OWN_DATA_DESCRIPTOR||entry===UNSAFE_OWN_DATA_DESCRIPTOR)continue;if(typeof entry.value=="string"){const color2=entry.value.trim();color2&&swatches.push(Object.freeze({color:color2}));continue}if(entry.value===null||typeof entry.value!="object"||Array.isArray(entry.value))continue;const color=getOwnDataDescriptor(entry.value,"color"),label=getOwnDataDescriptor(entry.value,"label"),disabled=getOwnDataDescriptor(entry.value,"disabled");if(color===MISSING_OWN_DATA_DESCRIPTOR||color===UNSAFE_OWN_DATA_DESCRIPTOR||typeof color.value!="string"||color.value.trim()==="")continue;const labelValue=label===MISSING_OWN_DATA_DESCRIPTOR||label===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:typeof label.value=="string"&&label.value.trim()?label.value:void 0,disabledValue=disabled===MISSING_OWN_DATA_DESCRIPTOR||disabled===UNSAFE_OWN_DATA_DESCRIPTOR||typeof disabled.value!="boolean"?void 0:disabled.value;swatches.push(Object.freeze({color:color.value.trim(),...labelValue===void 0?{}:{label:labelValue},...disabledValue===void 0?{}:{disabled:disabledValue}}))}return Object.freeze(swatches)}catch{return EMPTY_COLOR_PICKER_SWATCHES}}function eyeDropperConstructor(ownerWindow){return ownerWindow?.EyeDropper}function isNodeValue(value){if(value===null||typeof value!="object")return!1;const candidate=value;return typeof candidate.nodeType=="number"&&typeof candidate.getRootNode=="function"}function isElementValue(value){return!isNodeValue(value)||value.nodeType!==1?!1:typeof value.matches=="function"}class ColorPickerBase extends LyraElement{}class LyraColorPicker extends FormAssociated(ColorPickerBase){static{this.defaultStrings={...super.defaultStrings,colorPicker:LYRA_DEFAULT_colorPicker,colorPickerCurrentValue:LYRA_DEFAULT_colorPickerCurrentValue,colorPickerEyeDropper:LYRA_DEFAULT_colorPickerEyeDropper,colorPickerHue:LYRA_DEFAULT_colorPickerHue,colorPickerHueValue:LYRA_DEFAULT_colorPickerHueValue,colorPickerOpacity:LYRA_DEFAULT_colorPickerOpacity,colorPickerOpacityValue:LYRA_DEFAULT_colorPickerOpacityValue,colorPickerSaturationBrightness:LYRA_DEFAULT_colorPickerSaturationBrightness,colorPickerSaturationBrightnessValue:LYRA_DEFAULT_colorPickerSaturationBrightnessValue,colorPickerSwatch:LYRA_DEFAULT_colorPickerSwatch,colorPickerSwatches:LYRA_DEFAULT_colorPickerSwatches,colorPickerToggleFormat:LYRA_DEFAULT_colorPickerToggleFormat,colorPickerValueField:LYRA_DEFAULT_colorPickerValueField,fieldRequired:LYRA_DEFAULT_fieldRequired}}static get validators(){return[currentValidityValidator("required","disabled","value")]}static{this.styles=[LyraElement.styles,srOnly,sizes,styles]}get positioningStrategy(){return this._positioningStrategy??"absolute"}set positioningStrategy(next){const normalized=POSITIONING_STRATEGY.normalize(next)??"absolute",old=this.positioningStrategy;this._positioningStrategy=normalized,normalized!==old&&(this.requestUpdate("positioningStrategy",old),old==="fixed"!=(normalized==="fixed")&&this.requestUpdate("hoist",old==="fixed"))}get hoist(){return this.positioningStrategy==="fixed"}set hoist(next){this.positioningStrategy=next?"fixed":"absolute"}get open(){return this._open}set open(next){const normalized=!!next&&!this.effectiveDisabled;if(normalized!==this._open){if(!this.hasRenderedOnce||!this.isConnected){this.applyOpenState(normalized);return}if(this.emit(normalized?"lr-show":"lr-hide",null,{cancelable:!0}).defaultPrevented){this.toggleAttribute("open",this._open);return}this.applyOpenState(normalized)}}applyOpenState(next){const old=this._open;this._open=next,this.requestUpdate("open",old)}get liveDisabled(){return this.effectiveDisabled||typeof this.matches=="function"&&this.matches(":disabled")}syncExternalDescription(){const target=this.isConnected?this.triggerEl():null;if(!target){this.releaseExternalDescription();return}this.externalDescriptionLease?this.externalDescriptionLease.update(target):this.externalDescriptionLease=acquireNativeControlDescription(this,target,()=>this.localDescriptionIds)}releaseExternalDescription(){this.externalDescriptionLease?.release(),this.externalDescriptionLease=void 0}constructor(){super(),this.label="",this.hint="",this.withLabel=!1,this.withHint=!1,this.errorText="",this.accessibleLabel="",this.size="m",this.format="hex",this.opacity=!1,this.uppercase=!1,this.swatches="",this.withoutFormatToggle=!1,this.noFormatToggle=!1,this.inline=!1,this.placement="bottom-start",this._open=!1,this.hasLabel=!1,this.hasHint=!1,this.hasError=!1,this.hasEyeDropper=!1,this.color=hsva(0,0,0,1),this.valueNeedsParse=!1,this.localDescriptionIds="",this.hintId=nextId("color-picker-hint"),this.errorId=nextId("color-picker-error"),this.labelId=nextId("color-picker-label"),this.valueTextId=nextId("color-picker-value"),this.triggerId=nextId("color-picker-trigger"),this.panelId=nextId("color-picker-panel"),this.dragChanged=!1,this.keyboardChanged=!1,this.restoreFocusOnClose=!0,this.eyeDropperGeneration=0,this.suppressDisconnectedClose=!1,this.pendingPlacementEffects=0,this.interactionGeneration=0,this.hasRenderedOnce=!1,this.projectedSwatches=EMPTY_COLOR_PICKER_SWATCHES,this.onDocumentPointerDown=event=>{const target=event.composedPath()[0];if(!(isElementValue(target)&&composedContains(this,target))){if(this.overlayHandle?.isActive()){this.overlayHandle.dismissBackdrop();return}this.restoreFocusOnClose=!1,this.hide()}},this.onTriggerClick=()=>{this.effectiveDisabled||(this.open=!this.open)},this.onPointerMove=event=>{if(this.drag?.pointerId===event.pointerId){if(this.effectiveDisabled){this.cancelDrag();return}this.applyPointer(event)}},this.onPointerUp=event=>{if(this.drag?.pointerId!==event.pointerId)return;if(this.effectiveDisabled){this.cancelDrag();return}this.applyPointer(event);const changed=this.dragChanged;this.endDrag(),changed&&this.emitCommit()},this.onPointerCancel=event=>{this.drag?.pointerId===event.pointerId&&this.cancelDrag()},this.onGridKeyDown=event=>{if(this.effectiveDisabled)return;const step=SMALL_STEP*(event.shiftKey?LARGE_STEP_MULTIPLIER:1),inline=this.inlineStep(event);let next;inline!==null?next=hsva(this.color.h,this.color.s+inline,this.color.v,this.color.a):event.key==="ArrowUp"?next=hsva(this.color.h,this.color.s,this.color.v+step,this.color.a):event.key==="ArrowDown"?next=hsva(this.color.h,this.color.s,this.color.v-step,this.color.a):event.key==="Home"?next=hsva(this.color.h,0,this.color.v,this.color.a):event.key==="End"&&(next=hsva(this.color.h,100,this.color.v,this.color.a)),next&&(event.preventDefault(),this.applyKeyboardColor(next))},this.onHueKeyDown=event=>{if(this.effectiveDisabled)return;const step=SMALL_STEP*(event.shiftKey?LARGE_STEP_MULTIPLIER:1),inline=this.inlineStep(event);let hue;inline!==null?hue=this.color.h+inline:event.key==="ArrowUp"?hue=this.color.h+step:event.key==="ArrowDown"?hue=this.color.h-step:event.key==="Home"?hue=0:event.key==="End"&&(hue=360),hue!==void 0&&(event.preventDefault(),this.applyKeyboardColor(hsva(finiteRange(hue,0,0,360),this.color.s,this.color.v,this.color.a)))},this.onAlphaKeyDown=event=>{if(this.effectiveDisabled)return;const step=SMALL_STEP*(event.shiftKey?LARGE_STEP_MULTIPLIER:1)/100,inline=this.inlineStep(event);let alpha;inline!==null?alpha=this.color.a+inline/100:event.key==="ArrowUp"?alpha=this.color.a+step:event.key==="ArrowDown"?alpha=this.color.a-step:event.key==="Home"?alpha=0:event.key==="End"&&(alpha=1),alpha!==void 0&&(event.preventDefault(),this.applyKeyboardColor(hsva(this.color.h,this.color.s,this.color.v,alpha)))},this.onControlKeyUp=()=>{this.keyboardChanged&&(this.keyboardChanged=!1,this.emitCommit())},this.onFieldInput=event=>{if(event.stopPropagation(),this.liveDisabled){this.pendingInput=void 0,this.requestUpdate();return}this.pendingInput=event.target.value},this.onFieldChange=event=>{event.stopPropagation();const field=event.target;if(this.liveDisabled){this.pendingInput=void 0,this.requestUpdate();return}const parsed=parseColor(field.value);parsed&&this.commitColor(parsed),this.pendingInput=void 0,this.requestUpdate()},this.onFieldKeyDown=event=>{this.liveDisabled||event.key==="Enter"&&(event.preventDefault(),this.onFieldChange(event))},this.onFormatClick=()=>{if(this.liveDisabled)return;const index=FORMAT_CYCLE.indexOf(this.format);this.format=FORMAT_CYCLE[(index+1)%FORMAT_CYCLE.length]},this.onEyeDropperClick=()=>{const ownerWindow=this.ownerDocument.defaultView;if(!this.isConnected||!ownerWindow)return;const Constructor=eyeDropperConstructor(ownerWindow);if(!Constructor||this.effectiveDisabled)return;this.cancelEyeDropper();const generation=this.eyeDropperGeneration,controller=new ownerWindow.AbortController;this.eyeDropperAbort=controller,new Constructor().open({signal:controller.signal}).then(result=>{if(controller.signal.aborted||generation!==this.eyeDropperGeneration||!this.isConnected||this.ownerDocument.defaultView!==ownerWindow||this.effectiveDisabled)return;const parsed=parseColor(result?.sRGBHex??"");parsed&&this.commitColor(this.opacity?hsva(parsed.h,parsed.s,parsed.v,this.color.a):parsed)}).catch(()=>{}).finally(()=>{generation===this.eyeDropperGeneration&&(this.eyeDropperAbort=void 0)})},this.onControlFocus=event=>{event.stopPropagation();const previous=event.relatedTarget;isNodeValue(previous)&&this.renderRoot.contains(previous)||relayNativeEvent(this,event)},this.onControlBlur=event=>{event.stopPropagation();const next=event.relatedTarget;isNodeValue(next)&&this.renderRoot.contains(next)||(relayNativeEvent(this,event),this.requestUpdate())},this.controlFocusListener={capture:!0,handleEvent:event=>this.onControlFocus(event)},this.controlBlurListener={capture:!0,handleEvent:event=>this.onControlBlur(event)},this.onSlotChange=event=>{const slot=event.target,assigned=Array.from(this.children).some(el=>el.getAttribute("slot")===slot.name);slot.name==="label"&&(this.hasLabel=assigned),slot.name==="hint"&&(this.hasHint=assigned),slot.name==="error"&&(this.hasError=assigned)},this.addEventListener("focusout",()=>this.requestUpdate())}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.syncExternalDescription();const seedEnvironmentState=()=>{const hasSlot=name=>Array.from(this.children).some(el=>el.getAttribute("slot")===name);this.hasLabel=hasSlot("label"),this.hasHint=hasSlot("hint"),this.hasError=hasSlot("error"),this.hasEyeDropper=!!eyeDropperConstructor(this.ownerDocument.defaultView)};this.hasUpdated?seedEnvironmentState():this.seedFirstRenderState(seedEnvironmentState)}disconnectedCallback(){this.releaseExternalDescription(),this.suppressDisconnectedClose=this.open,this.open=!1,this.teardownOverlay(!1),this.cancelEyeDropper(),this.interactionGeneration+=1,this.keyboardChanged=!1,this.cancelDrag(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.releaseExternalDescription(),this.isConnected&&this.hasUpdated&&this.syncExternalDescription(),this.cancelDrag(),this.cancelEyeDropper()}get value(){return super.value}set value(next){this.endDrag(),super.value=next??"",this.valueNeedsParse=!0}willUpdate(changed){super.willUpdate(changed);const formatChanged=changed.has("format")||changed.has("opacity")||changed.has("uppercase");if(formatChanged&&this.cancelDrag(),this.liveDisabled&&(this.open&&this.applyOpenState(!1),this.pendingInput=void 0,this.keyboardChanged=!1,this.cancelDrag()),!this.valueNeedsParse&&!formatChanged)return;const shouldReserialize=formatChanged;if(this.valueNeedsParse){this.valueNeedsParse=!1;const parsed=parseColor(super.value);if(parsed){this.color=parsed,this.writeSerializedValue();return}}shouldReserialize&&parseColor(super.value)!==null&&this.writeSerializedValue()}updated(changed){if(super.updated(changed),this.syncExternalDescription(),changed.has("open")){const suppressClose=!this.open&&this.suppressDisconnectedClose;this.suppressDisconnectedClose=!1;const announceOpen=this.open&&this.hasRenderedOnce&&this.isConnected;this.open&&!this.inline?(this.pendingPlacementEffects=announceOpen?3:2,this.activatePanel()):(this.pendingPlacementEffects=0,this.teardownOverlay(this.restoreFocusOnClose),this.pendingInput=void 0),this.hasRenderedOnce&&this.isConnected&&!suppressClose&&(this.open&&this.inline?this.emit("lr-after-show"):this.open||this.emit("lr-after-hide"))}else if(changed.has("inline"))if(this.inline){this.teardownOverlay(),this.panelEl()?.style.removeProperty("position");const announceOpen=(this.pendingPlacementEffects&1)!==0;this.pendingPlacementEffects=0,announceOpen&&this.emit("lr-after-show")}else this.open&&this.activatePanel();else this.open&&!this.inline&&(changed.has("placement")||changed.has("size")||changed.has("positioningStrategy"))&&this.positionPanel();this.hasRenderedOnce=!0}show(){this.open=!0}hide(){this.open=!1}getFormattedValue(format="hex"){return formatColor(this.color,format,this.uppercase)}getHexString(hue,saturation,brightness,alpha=100){const normalizedAlpha=finiteRange(alpha,100,0,100);return formatColor(hsva(hue,saturation,brightness,normalizedAlpha/100),normalizedAlpha<100?"hexa":"hex",this.uppercase)}click(){this.effectiveDisabled||(this.inline?this.renderRoot?.querySelector('[part~="input"]')?.click():this.triggerEl()?.click())}focus(options){this.effectiveDisabled||(this.inline?this.renderRoot?.querySelector('[part~="grid-handle"]')?.focus(options):this.triggerEl()?.focus(options))}blur(){const active=activeElementIn(this.shadowRoot);active&&typeof active.blur=="function"&&active.blur()}reportValidity(){const valid=super.reportValidity();return this.requestUpdate(),valid}setCustomValidity(message){super.setCustomValidity(message),this.requestUpdate()}resetValidity(){super.resetValidity(),this.requestUpdate()}activeFormat(){return withAlphaFormat(this.format,this.opacity)}writeSerializedValue(){const serialized=formatColor(this.color,this.activeFormat(),this.uppercase);return serialized===super.value?!1:(super.value=serialized,!0)}applyColor(next){next.h===this.color.h&&next.s===this.color.s&&next.v===this.color.v&&next.a===this.color.a||(this.color=next);const changed=this.writeSerializedValue();return changed&&(dispatchNativeInputEvent(this),this.emit("lr-input")),changed}emitCommit(){dispatchNativeEvent(this,"change"),this.emit("lr-change",{value:this.value})}commitColor(next){const changed=this.applyColor(next);return changed&&this.emitCommit(),changed}normalizedSwatches(){const source=this.swatches;return source!==this.swatchSource&&(this.swatchSource=source,this.projectedSwatches=projectColorPickerSwatches(source)),this.projectedSwatches}triggerEl(){return this.renderRoot?.querySelector('[part~="trigger"]')}panelEl(){return this.renderRoot?.querySelector('[part~="panel"]')}positionPanel(){this.cleanupPositioner?.(),this.cleanupPositioner=void 0;const anchor=this.triggerEl(),panel=this.panelEl();if(!anchor||!panel)return;const handle=place(anchor,panel,{placement:rtlAwarePlacement(this.placement,this),strategy:resolveEffectivePositioningStrategy(this,this._positioningStrategy,"absolute")});this.cleanupPositioner=handle,handle.ready.then(positioned=>{if(this.cleanupPositioner!==handle||!this.open||this.inline||!this.isConnected)return;if(!positioned){this.pendingPlacementEffects=0,this.suppressDisconnectedClose=!0,this.applyOpenState(!1);return}const effects=this.pendingPlacementEffects;this.pendingPlacementEffects=0,effects&2&&this.overlayHandle?.focusInitial(),effects&1&&this.emit("lr-after-show")})}activatePanel(){!this.isConnected||this.inline||(this.pendingPlacementEffects|=2,this.positionPanel(),this.restoreFocusOnClose=!0,this.overlayHandle=activateNonmodalOverlay({host:this,panel:()=>this.panelEl(),onEscape:()=>this.hide(),onBackdrop:()=>{this.restoreFocusOnClose=!1,this.hide(),this.open&&(this.restoreFocusOnClose=!0)},restoreFocusTo:this.triggerEl()}),this.lightDismissDocument=this.ownerDocument,this.lightDismissDocument.addEventListener("pointerdown",this.onDocumentPointerDown,!0))}teardownOverlay(restoreFocus=!0){this.cleanupPositioner?.(),this.cleanupPositioner=void 0,this.overlayHandle?.deactivate({restoreFocus}),this.overlayHandle=void 0,this.lightDismissDocument?.removeEventListener("pointerdown",this.onDocumentPointerDown,!0),this.lightDismissDocument=void 0,this.restoreFocusOnClose=!0}beginDrag(event,track,box){const dragWindow=box.ownerDocument.defaultView;if(!this.isConnected||!dragWindow||this.effectiveDisabled||this.drag!==void 0||event.pointerType==="mouse"&&event.button!==0)return;const rect=box.getBoundingClientRect();this.drag={pointerId:event.pointerId,track,rect,rtl:isRtl(this),startColor:{...this.color},startValue:this.captureLiveValueCheckpoint()},this.dragChanged=!1;try{box.setPointerCapture(event.pointerId)}catch{}this.dragWindow=dragWindow,dragWindow.addEventListener("pointermove",this.onPointerMove),dragWindow.addEventListener("pointerup",this.onPointerUp),dragWindow.addEventListener("pointercancel",this.onPointerCancel),dragWindow.addEventListener("lostpointercapture",this.onPointerCancel),this.applyPointer(event)}applyPointer(event){const drag=this.drag;if(!drag)return;const{rect,rtl,track}=drag,rawX=rect.width===0?0:(event.clientX-rect.left)/rect.width,ratioX=finiteRange(rtl?1-rawX:rawX,0,0,1);let next;if(track==="grid"){const rawY=rect.height===0?0:(event.clientY-rect.top)/rect.height,ratioY=finiteRange(rawY,0,0,1);next=hsva(this.color.h,ratioX*100,(1-ratioY)*100,this.color.a)}else track==="hue"?next=hsva(ratioX*360,this.color.s,this.color.v,this.color.a):next=hsva(this.color.h,this.color.s,this.color.v,ratioX);this.dragChanged=this.applyColor(next)||this.dragChanged}cancelDrag(){const drag=this.drag;drag&&(this.endDrag(),this.color=drag.startColor,this.restoreLiveValueCheckpoint(drag.startValue),this.valueNeedsParse=!1)}endDrag(){this.drag=void 0,this.dragChanged=!1;const dragWindow=this.dragWindow;this.dragWindow=void 0,dragWindow?.removeEventListener("pointermove",this.onPointerMove),dragWindow?.removeEventListener("pointerup",this.onPointerUp),dragWindow?.removeEventListener("pointercancel",this.onPointerCancel),dragWindow?.removeEventListener("lostpointercapture",this.onPointerCancel)}inlineStep(event){const rtl=isRtl(this),forward=rtl?"ArrowLeft":"ArrowRight",backward=rtl?"ArrowRight":"ArrowLeft",step=SMALL_STEP*(event.shiftKey?LARGE_STEP_MULTIPLIER:1);return event.key===forward?step:event.key===backward?-step:null}applyKeyboardColor(next){const generation=this.interactionGeneration,changed=this.applyColor(next);generation===this.interactionGeneration&&(this.keyboardChanged=changed||this.keyboardChanged)}onSwatchClick(swatch){if(this.liveDisabled||swatch.disabled)return;const parsed=parseColor(swatch.color);parsed&&this.commitColor(this.opacity?parsed:hsva(parsed.h,parsed.s,parsed.v,1))}cancelEyeDropper(){this.eyeDropperGeneration+=1,this.eyeDropperAbort?.abort(),this.eyeDropperAbort=void 0}formatNumber(value){return getNumberFormat(this.effectiveLocale,{maximumFractionDigits:0}).format(value)}renderGrid(){const saturation=Math.round(this.color.s),brightness=Math.round(this.color.v);return html`<div
|
|
1
|
+
var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3?target:desc===null?desc=Object.getOwnPropertyDescriptor(target,key):desc,d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r};import{html,nothing}from"lit";import{property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{live}from"lit/directives/live.js";import{LyraElement}from"../../../internal/lyra-element.js";import{FormAssociated}from"../../../internal/form-associated.js";import{hostAriaLabel,nextId,srOnly}from"../../../internal/a11y.js";import{renderInertPresentation}from"../../../internal/inert-presentation.js";import{deferredPlaceReady as place}from"../../../internal/anchored-overlay-runtime.js";import{isRtl,rtlAwarePlacement}from"../../../internal/rtl.js";import{optionalLiteralSetConverter}from"../../../internal/converters.js";import{resolveEffectivePositioningStrategy}from"../../../internal/positioning-strategy.js";import{activateNonmodalOverlay,composedContains}from"../../../internal/nonmodal-overlay-manager.js";import{relayNativeEvent}from"../../../internal/native-event-relay.js";import{getNumberFormat}from"../../../internal/intl-cache.js";import{finiteRange}from"../../../internal/numbers.js";import{activeElementIn}from"../../../internal/active-element.js";import{acquireNativeControlDescription}from"../../../internal/native-control-description.js";import{getOwnDataDescriptor,MISSING_OWN_DATA_DESCRIPTOR,UNSAFE_OWN_DATA_DESCRIPTOR}from"../../../internal/data-descriptors.js";import{eyeIcon}from"../../../internal/icons.js";import{dispatchNativeEvent,dispatchNativeInputEvent}from"../../../internal/native-event-relay.js";import{cssColor,formatColor,hsva,parseColor,sameColor,withAlphaFormat}from"./color-core.js";import{sizes}from"../../../internal/sizes.styles.js";import{styles}from"./color-picker.styles.js";import{currentValidityValidator}from"../form-validator.js";import{LYRA_DEFAULT_colorPicker,LYRA_DEFAULT_colorPickerCurrentValue,LYRA_DEFAULT_colorPickerEyeDropper,LYRA_DEFAULT_colorPickerHue,LYRA_DEFAULT_colorPickerHueValue,LYRA_DEFAULT_colorPickerOpacity,LYRA_DEFAULT_colorPickerOpacityValue,LYRA_DEFAULT_colorPickerSaturationBrightness,LYRA_DEFAULT_colorPickerSaturationBrightnessValue,LYRA_DEFAULT_colorPickerSwatch,LYRA_DEFAULT_colorPickerSwatches,LYRA_DEFAULT_colorPickerToggleFormat,LYRA_DEFAULT_colorPickerValueField,LYRA_DEFAULT_fieldRequired}from"../../../internal/default-strings.generated.js";const POSITIONING_STRATEGY=optionalLiteralSetConverter(["absolute","fixed"]),SMALL_STEP=1,LARGE_STEP_MULTIPLIER=10,FORMAT_CYCLE=["hex","rgb","hsl","hsv"],MAX_COLOR_PICKER_SWATCHES=1e4,EMPTY_COLOR_PICKER_SWATCHES=Object.freeze([]);function projectColorPickerSwatches(value){try{if(typeof value=="string")return Object.freeze(value.split(";").slice(0,MAX_COLOR_PICKER_SWATCHES).flatMap(entry=>{const color=entry.trim();return color?[Object.freeze({color})]:[]}));if(!Array.isArray(value))return EMPTY_COLOR_PICKER_SWATCHES;const length=getOwnDataDescriptor(value,"length");if(length===MISSING_OWN_DATA_DESCRIPTOR||length===UNSAFE_OWN_DATA_DESCRIPTOR||typeof length.value!="number"||!Number.isSafeInteger(length.value)||length.value<0)return EMPTY_COLOR_PICKER_SWATCHES;const swatches=[];for(let index=0;index<Math.min(length.value,MAX_COLOR_PICKER_SWATCHES);index+=1){const entry=getOwnDataDescriptor(value,String(index));if(entry===MISSING_OWN_DATA_DESCRIPTOR||entry===UNSAFE_OWN_DATA_DESCRIPTOR)continue;if(typeof entry.value=="string"){const color2=entry.value.trim();color2&&swatches.push(Object.freeze({color:color2}));continue}if(entry.value===null||typeof entry.value!="object"||Array.isArray(entry.value))continue;const color=getOwnDataDescriptor(entry.value,"color"),label=getOwnDataDescriptor(entry.value,"label"),disabled=getOwnDataDescriptor(entry.value,"disabled"),icon=getOwnDataDescriptor(entry.value,"icon");if(color===MISSING_OWN_DATA_DESCRIPTOR||color===UNSAFE_OWN_DATA_DESCRIPTOR||typeof color.value!="string"||color.value.trim()==="")continue;const labelValue=label===MISSING_OWN_DATA_DESCRIPTOR||label===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:typeof label.value=="string"&&label.value.trim()?label.value:void 0,disabledValue=disabled===MISSING_OWN_DATA_DESCRIPTOR||disabled===UNSAFE_OWN_DATA_DESCRIPTOR||typeof disabled.value!="boolean"?void 0:disabled.value,iconValue=icon===MISSING_OWN_DATA_DESCRIPTOR||icon===UNSAFE_OWN_DATA_DESCRIPTOR?void 0:icon.value;swatches.push(Object.freeze({color:color.value.trim(),...labelValue===void 0?{}:{label:labelValue},...disabledValue===void 0?{}:{disabled:disabledValue},...iconValue===void 0?{}:{icon:iconValue}}))}return Object.freeze(swatches)}catch{return EMPTY_COLOR_PICKER_SWATCHES}}function eyeDropperConstructor(ownerWindow){return ownerWindow?.EyeDropper}function isNodeValue(value){if(value===null||typeof value!="object")return!1;const candidate=value;return typeof candidate.nodeType=="number"&&typeof candidate.getRootNode=="function"}function isElementValue(value){return!isNodeValue(value)||value.nodeType!==1?!1:typeof value.matches=="function"}class ColorPickerBase extends LyraElement{}class LyraColorPicker extends FormAssociated(ColorPickerBase){static{this.defaultStrings={...super.defaultStrings,colorPicker:LYRA_DEFAULT_colorPicker,colorPickerCurrentValue:LYRA_DEFAULT_colorPickerCurrentValue,colorPickerEyeDropper:LYRA_DEFAULT_colorPickerEyeDropper,colorPickerHue:LYRA_DEFAULT_colorPickerHue,colorPickerHueValue:LYRA_DEFAULT_colorPickerHueValue,colorPickerOpacity:LYRA_DEFAULT_colorPickerOpacity,colorPickerOpacityValue:LYRA_DEFAULT_colorPickerOpacityValue,colorPickerSaturationBrightness:LYRA_DEFAULT_colorPickerSaturationBrightness,colorPickerSaturationBrightnessValue:LYRA_DEFAULT_colorPickerSaturationBrightnessValue,colorPickerSwatch:LYRA_DEFAULT_colorPickerSwatch,colorPickerSwatches:LYRA_DEFAULT_colorPickerSwatches,colorPickerToggleFormat:LYRA_DEFAULT_colorPickerToggleFormat,colorPickerValueField:LYRA_DEFAULT_colorPickerValueField,fieldRequired:LYRA_DEFAULT_fieldRequired}}static get validators(){return[currentValidityValidator("required","disabled","readonly","value")]}static{this.styles=[LyraElement.styles,srOnly,sizes,styles]}get positioningStrategy(){return this._positioningStrategy??"absolute"}set positioningStrategy(next){const normalized=POSITIONING_STRATEGY.normalize(next)??"absolute",old=this.positioningStrategy;this._positioningStrategy=normalized,normalized!==old&&(this.requestUpdate("positioningStrategy",old),old==="fixed"!=(normalized==="fixed")&&this.requestUpdate("hoist",old==="fixed"))}get hoist(){return this.positioningStrategy==="fixed"}set hoist(next){this.positioningStrategy=next?"fixed":"absolute"}get open(){return this._open}set open(next){const normalized=!!next&&!this.effectiveDisabled&&!this.readonly;if(normalized!==this._open){if(!this.hasRenderedOnce||!this.isConnected){this.applyOpenState(normalized);return}if(this.emit(normalized?"lr-show":"lr-hide",null,{cancelable:!0}).defaultPrevented){this.toggleAttribute("open",this._open);return}this.applyOpenState(normalized)}}applyOpenState(next){const old=this._open;this._open=next,this.requestUpdate("open",old)}get liveDisabled(){return this.effectiveDisabled||typeof this.matches=="function"&&this.matches(":disabled")}syncExternalDescription(){const target=this.isConnected?this.triggerEl():null;if(!target){this.releaseExternalDescription();return}this.externalDescriptionLease?this.externalDescriptionLease.update(target):this.externalDescriptionLease=acquireNativeControlDescription(this,target,()=>this.localDescriptionIds)}releaseExternalDescription(){this.externalDescriptionLease?.release(),this.externalDescriptionLease=void 0}constructor(){super(),this.label="",this.hint="",this.withLabel=!1,this.withHint=!1,this.errorText="",this.accessibleLabel="",this.readonly=!1,this.size="m",this.format="hex",this.opacity=!1,this.uppercase=!1,this.swatches="",this.withoutFormatToggle=!1,this.noFormatToggle=!1,this.inline=!1,this.placement="bottom-start",this._open=!1,this.hasLabel=!1,this.hasHint=!1,this.hasError=!1,this.hasEyeDropper=!1,this.color=hsva(0,0,0,1),this.valueNeedsParse=!1,this.localDescriptionIds="",this.hintId=nextId("color-picker-hint"),this.errorId=nextId("color-picker-error"),this.labelId=nextId("color-picker-label"),this.valueTextId=nextId("color-picker-value"),this.triggerId=nextId("color-picker-trigger"),this.panelId=nextId("color-picker-panel"),this.dragChanged=!1,this.keyboardChanged=!1,this.restoreFocusOnClose=!0,this.eyeDropperGeneration=0,this.suppressDisconnectedClose=!1,this.pendingPlacementEffects=0,this.interactionGeneration=0,this.hasRenderedOnce=!1,this.projectedSwatches=EMPTY_COLOR_PICKER_SWATCHES,this.onDocumentPointerDown=event=>{const target=event.composedPath()[0];if(!(isElementValue(target)&&composedContains(this,target))){if(this.overlayHandle?.isActive()){this.overlayHandle.dismissBackdrop();return}this.restoreFocusOnClose=!1,this.hide()}},this.onTriggerClick=()=>{this.effectiveDisabled||(this.open=!this.open)},this.onPointerMove=event=>{if(this.drag?.pointerId===event.pointerId){if(this.effectiveDisabled||this.readonly){this.cancelDrag();return}this.applyPointer(event)}},this.onPointerUp=event=>{if(this.drag?.pointerId!==event.pointerId)return;if(this.effectiveDisabled||this.readonly){this.cancelDrag();return}this.applyPointer(event);const changed=this.dragChanged;this.endDrag(),changed&&this.emitCommit()},this.onPointerCancel=event=>{this.drag?.pointerId===event.pointerId&&this.cancelDrag()},this.onGridKeyDown=event=>{if(this.effectiveDisabled||this.readonly)return;const step=SMALL_STEP*(event.shiftKey?LARGE_STEP_MULTIPLIER:1),inline=this.inlineStep(event);let next;inline!==null?next=hsva(this.color.h,this.color.s+inline,this.color.v,this.color.a):event.key==="ArrowUp"?next=hsva(this.color.h,this.color.s,this.color.v+step,this.color.a):event.key==="ArrowDown"?next=hsva(this.color.h,this.color.s,this.color.v-step,this.color.a):event.key==="Home"?next=hsva(this.color.h,0,this.color.v,this.color.a):event.key==="End"&&(next=hsva(this.color.h,100,this.color.v,this.color.a)),next&&(event.preventDefault(),this.applyKeyboardColor(next))},this.onHueKeyDown=event=>{if(this.effectiveDisabled||this.readonly)return;const step=SMALL_STEP*(event.shiftKey?LARGE_STEP_MULTIPLIER:1),inline=this.inlineStep(event);let hue;inline!==null?hue=this.color.h+inline:event.key==="ArrowUp"?hue=this.color.h+step:event.key==="ArrowDown"?hue=this.color.h-step:event.key==="Home"?hue=0:event.key==="End"&&(hue=360),hue!==void 0&&(event.preventDefault(),this.applyKeyboardColor(hsva(finiteRange(hue,0,0,360),this.color.s,this.color.v,this.color.a)))},this.onAlphaKeyDown=event=>{if(this.effectiveDisabled||this.readonly)return;const step=SMALL_STEP*(event.shiftKey?LARGE_STEP_MULTIPLIER:1)/100,inline=this.inlineStep(event);let alpha;inline!==null?alpha=this.color.a+inline/100:event.key==="ArrowUp"?alpha=this.color.a+step:event.key==="ArrowDown"?alpha=this.color.a-step:event.key==="Home"?alpha=0:event.key==="End"&&(alpha=1),alpha!==void 0&&(event.preventDefault(),this.applyKeyboardColor(hsva(this.color.h,this.color.s,this.color.v,alpha)))},this.onControlKeyUp=()=>{this.keyboardChanged&&(this.keyboardChanged=!1,this.emitCommit())},this.onFieldInput=event=>{if(event.stopPropagation(),this.liveDisabled||this.readonly){this.pendingInput=void 0,this.requestUpdate();return}this.pendingInput=event.target.value},this.onFieldChange=event=>{event.stopPropagation();const field=event.target;if(this.liveDisabled||this.readonly){this.pendingInput=void 0,this.requestUpdate();return}const parsed=parseColor(field.value);parsed&&this.commitColor(parsed),this.pendingInput=void 0,this.requestUpdate()},this.onFieldKeyDown=event=>{this.liveDisabled||this.readonly||event.key==="Enter"&&(event.preventDefault(),this.onFieldChange(event))},this.onFormatClick=()=>{if(this.liveDisabled)return;const index=FORMAT_CYCLE.indexOf(this.format);this.format=FORMAT_CYCLE[(index+1)%FORMAT_CYCLE.length]},this.onEyeDropperClick=()=>{const ownerWindow=this.ownerDocument.defaultView;if(!this.isConnected||!ownerWindow)return;const Constructor=eyeDropperConstructor(ownerWindow);if(!Constructor||this.effectiveDisabled||this.readonly)return;this.cancelEyeDropper();const generation=this.eyeDropperGeneration,controller=new ownerWindow.AbortController;this.eyeDropperAbort=controller,new Constructor().open({signal:controller.signal}).then(result=>{if(controller.signal.aborted||generation!==this.eyeDropperGeneration||!this.isConnected||this.ownerDocument.defaultView!==ownerWindow||this.effectiveDisabled||this.readonly)return;const parsed=parseColor(result?.sRGBHex??"");parsed&&this.commitColor(this.opacity?hsva(parsed.h,parsed.s,parsed.v,this.color.a):parsed)}).catch(()=>{}).finally(()=>{generation===this.eyeDropperGeneration&&(this.eyeDropperAbort=void 0)})},this.onControlFocus=event=>{event.stopPropagation();const previous=event.relatedTarget;isNodeValue(previous)&&this.renderRoot.contains(previous)||relayNativeEvent(this,event)},this.onControlBlur=event=>{event.stopPropagation();const next=event.relatedTarget;isNodeValue(next)&&this.renderRoot.contains(next)||(relayNativeEvent(this,event),this.requestUpdate())},this.controlFocusListener={capture:!0,handleEvent:event=>this.onControlFocus(event)},this.controlBlurListener={capture:!0,handleEvent:event=>this.onControlBlur(event)},this.onSlotChange=event=>{const slot=event.target,assigned=Array.from(this.children).some(el=>el.getAttribute("slot")===slot.name);slot.name==="label"&&(this.hasLabel=assigned),slot.name==="hint"&&(this.hasHint=assigned),slot.name==="error"&&(this.hasError=assigned)},this.addEventListener("focusout",()=>this.requestUpdate())}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.syncExternalDescription();const seedEnvironmentState=()=>{const hasSlot=name=>Array.from(this.children).some(el=>el.getAttribute("slot")===name);this.hasLabel=hasSlot("label"),this.hasHint=hasSlot("hint"),this.hasError=hasSlot("error"),this.hasEyeDropper=!!eyeDropperConstructor(this.ownerDocument.defaultView)};this.hasUpdated?seedEnvironmentState():this.seedFirstRenderState(seedEnvironmentState)}disconnectedCallback(){this.releaseExternalDescription(),this.suppressDisconnectedClose=this.open,this.open=!1,this.teardownOverlay(!1),this.cancelEyeDropper(),this.interactionGeneration+=1,this.keyboardChanged=!1,this.cancelDrag(),super.disconnectedCallback()}adoptedCallback(){super.adoptedCallback(),this.releaseExternalDescription(),this.isConnected&&this.hasUpdated&&this.syncExternalDescription(),this.cancelDrag(),this.cancelEyeDropper()}get value(){return super.value}set value(next){this.endDrag(),super.value=next??"",this.valueNeedsParse=!0}willUpdate(changed){super.willUpdate(changed);const formatChanged=changed.has("format")||changed.has("opacity")||changed.has("uppercase");if(formatChanged&&this.cancelDrag(),(this.liveDisabled||this.readonly)&&(this.open&&this.applyOpenState(!1),this.pendingInput=void 0,this.keyboardChanged=!1,this.cancelDrag()),!this.valueNeedsParse&&!formatChanged)return;const shouldReserialize=formatChanged;if(this.valueNeedsParse){this.valueNeedsParse=!1;const parsed=parseColor(super.value);if(parsed){this.color=parsed,this.writeSerializedValue();return}}shouldReserialize&&parseColor(super.value)!==null&&this.writeSerializedValue()}updated(changed){if(super.updated(changed),this.syncExternalDescription(),changed.has("readonly")&&this.checkValidity(),changed.has("open")){const suppressClose=!this.open&&this.suppressDisconnectedClose;this.suppressDisconnectedClose=!1;const announceOpen=this.open&&this.hasRenderedOnce&&this.isConnected;this.open&&!this.inline?(this.pendingPlacementEffects=announceOpen?3:2,this.activatePanel()):(this.pendingPlacementEffects=0,this.teardownOverlay(this.restoreFocusOnClose),this.pendingInput=void 0),this.hasRenderedOnce&&this.isConnected&&!suppressClose&&(this.open&&this.inline?this.emit("lr-after-show"):this.open||this.emit("lr-after-hide"))}else if(changed.has("inline"))if(this.inline){this.teardownOverlay(),this.panelEl()?.style.removeProperty("position");const announceOpen=(this.pendingPlacementEffects&1)!==0;this.pendingPlacementEffects=0,announceOpen&&this.emit("lr-after-show")}else this.open&&this.activatePanel();else this.open&&!this.inline&&(changed.has("placement")||changed.has("size")||changed.has("positioningStrategy"))&&this.positionPanel();this.hasRenderedOnce=!0}show(){this.open=!0}hide(){this.open=!1}getFormattedValue(format="hex"){return formatColor(this.color,format,this.uppercase)}getHexString(hue,saturation,brightness,alpha=100){const normalizedAlpha=finiteRange(alpha,100,0,100);return formatColor(hsva(hue,saturation,brightness,normalizedAlpha/100),normalizedAlpha<100?"hexa":"hex",this.uppercase)}click(){this.effectiveDisabled||(this.inline?this.renderRoot?.querySelector('[part~="input"]')?.click():this.triggerEl()?.click())}focus(options){this.effectiveDisabled||(this.inline?this.renderRoot?.querySelector('[part~="grid-handle"]')?.focus(options):this.triggerEl()?.focus(options))}blur(){const active=activeElementIn(this.shadowRoot);active&&typeof active.blur=="function"&&active.blur()}reportValidity(){const valid=super.reportValidity();return this.requestUpdate(),valid}setCustomValidity(message){super.setCustomValidity(message),this.requestUpdate()}resetValidity(){super.resetValidity(),this.requestUpdate()}activeFormat(){return withAlphaFormat(this.format,this.opacity)}writeSerializedValue(){const serialized=formatColor(this.color,this.activeFormat(),this.uppercase);return serialized===super.value?!1:(super.value=serialized,!0)}applyColor(next){next.h===this.color.h&&next.s===this.color.s&&next.v===this.color.v&&next.a===this.color.a||(this.color=next);const changed=this.writeSerializedValue();return changed&&(dispatchNativeInputEvent(this),this.emit("lr-input")),changed}emitCommit(){dispatchNativeEvent(this,"change"),this.emit("lr-change",{value:this.value})}commitColor(next){const changed=this.applyColor(next);return changed&&this.emitCommit(),changed}normalizedSwatches(){const source=this.swatches;return source!==this.swatchSource&&(this.swatchSource=source,this.projectedSwatches=projectColorPickerSwatches(source)),this.projectedSwatches}triggerEl(){return this.renderRoot?.querySelector('[part~="trigger"]')}panelEl(){return this.renderRoot?.querySelector('[part~="panel"]')}positionPanel(){this.cleanupPositioner?.(),this.cleanupPositioner=void 0;const anchor=this.triggerEl(),panel=this.panelEl();if(!anchor||!panel)return;const handle=place(anchor,panel,{placement:rtlAwarePlacement(this.placement,this),strategy:resolveEffectivePositioningStrategy(this,this._positioningStrategy,"absolute")});this.cleanupPositioner=handle,handle.ready.then(positioned=>{if(this.cleanupPositioner!==handle||!this.open||this.inline||!this.isConnected)return;if(!positioned){this.pendingPlacementEffects=0,this.suppressDisconnectedClose=!0,this.applyOpenState(!1);return}const effects=this.pendingPlacementEffects;this.pendingPlacementEffects=0,effects&2&&this.overlayHandle?.focusInitial(),effects&1&&this.emit("lr-after-show")})}activatePanel(){!this.isConnected||this.inline||(this.pendingPlacementEffects|=2,this.positionPanel(),this.restoreFocusOnClose=!0,this.overlayHandle=activateNonmodalOverlay({host:this,panel:()=>this.panelEl(),onEscape:()=>this.hide(),onBackdrop:()=>{this.restoreFocusOnClose=!1,this.hide(),this.open&&(this.restoreFocusOnClose=!0)},restoreFocusTo:this.triggerEl()}),this.lightDismissDocument=this.ownerDocument,this.lightDismissDocument.addEventListener("pointerdown",this.onDocumentPointerDown,!0))}teardownOverlay(restoreFocus=!0){this.cleanupPositioner?.(),this.cleanupPositioner=void 0,this.overlayHandle?.deactivate({restoreFocus}),this.overlayHandle=void 0,this.lightDismissDocument?.removeEventListener("pointerdown",this.onDocumentPointerDown,!0),this.lightDismissDocument=void 0,this.restoreFocusOnClose=!0}beginDrag(event,track,box){const dragWindow=box.ownerDocument.defaultView;if(!this.isConnected||!dragWindow||this.effectiveDisabled||this.readonly||this.drag!==void 0||event.pointerType==="mouse"&&event.button!==0)return;const rect=box.getBoundingClientRect();this.drag={pointerId:event.pointerId,track,rect,rtl:isRtl(this),startColor:{...this.color},startValue:this.captureLiveValueCheckpoint()},this.dragChanged=!1;try{box.setPointerCapture(event.pointerId)}catch{}this.dragWindow=dragWindow,dragWindow.addEventListener("pointermove",this.onPointerMove),dragWindow.addEventListener("pointerup",this.onPointerUp),dragWindow.addEventListener("pointercancel",this.onPointerCancel),dragWindow.addEventListener("lostpointercapture",this.onPointerCancel),this.applyPointer(event)}applyPointer(event){const drag=this.drag;if(!drag)return;const{rect,rtl,track}=drag,rawX=rect.width===0?0:(event.clientX-rect.left)/rect.width,ratioX=finiteRange(rtl?1-rawX:rawX,0,0,1);let next;if(track==="grid"){const rawY=rect.height===0?0:(event.clientY-rect.top)/rect.height,ratioY=finiteRange(rawY,0,0,1);next=hsva(this.color.h,ratioX*100,(1-ratioY)*100,this.color.a)}else track==="hue"?next=hsva(ratioX*360,this.color.s,this.color.v,this.color.a):next=hsva(this.color.h,this.color.s,this.color.v,ratioX);this.dragChanged=this.applyColor(next)||this.dragChanged}cancelDrag(){const drag=this.drag;drag&&(this.endDrag(),this.color=drag.startColor,this.restoreLiveValueCheckpoint(drag.startValue),this.valueNeedsParse=!1)}endDrag(){this.drag=void 0,this.dragChanged=!1;const dragWindow=this.dragWindow;this.dragWindow=void 0,dragWindow?.removeEventListener("pointermove",this.onPointerMove),dragWindow?.removeEventListener("pointerup",this.onPointerUp),dragWindow?.removeEventListener("pointercancel",this.onPointerCancel),dragWindow?.removeEventListener("lostpointercapture",this.onPointerCancel)}inlineStep(event){const rtl=isRtl(this),forward=rtl?"ArrowLeft":"ArrowRight",backward=rtl?"ArrowRight":"ArrowLeft",step=SMALL_STEP*(event.shiftKey?LARGE_STEP_MULTIPLIER:1);return event.key===forward?step:event.key===backward?-step:null}applyKeyboardColor(next){const generation=this.interactionGeneration,changed=this.applyColor(next);generation===this.interactionGeneration&&(this.keyboardChanged=changed||this.keyboardChanged)}onSwatchClick(swatch){if(this.liveDisabled||this.readonly||swatch.disabled)return;const parsed=parseColor(swatch.color);parsed&&this.commitColor(this.opacity?parsed:hsva(parsed.h,parsed.s,parsed.v,1))}cancelEyeDropper(){this.eyeDropperGeneration+=1,this.eyeDropperAbort?.abort(),this.eyeDropperAbort=void 0}formatNumber(value){return getNumberFormat(this.effectiveLocale,{maximumFractionDigits:0}).format(value)}renderGrid(){const saturation=Math.round(this.color.s),brightness=Math.round(this.color.v);return html`<div
|
|
2
2
|
part="grid"
|
|
3
3
|
style=${styleMap({"--lr-color-picker-grid-hue":cssColor(hsva(this.color.h,100,100,1))})}
|
|
4
4
|
@pointerdown=${event=>this.beginDrag(event,"grid",event.currentTarget)}
|
|
@@ -72,7 +72,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
72
72
|
?disabled=${this.effectiveDisabled||entry.disabled===!0}
|
|
73
73
|
style=${styleMap(parsed?{"--lr-color-picker-swatch-color":cssColor(parsed)}:{})}
|
|
74
74
|
@click=${()=>this.onSwatchClick(entry)}
|
|
75
|
-
|
|
75
|
+
>${entry.icon==null?nothing:renderInertPresentation(entry.icon,{part:"swatch-icon"})}</button>
|
|
76
76
|
`})}
|
|
77
77
|
</div>`}renderPanel(name,labelledBy,describedBy,invalid){const entries=this.normalizedSwatches(),fieldValue=this.pendingInput??this.getFormattedValue(this.activeFormat());return html`<div
|
|
78
78
|
id=${this.panelId}
|
|
@@ -104,6 +104,7 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
104
104
|
aria-required=${this.required?"true":"false"}
|
|
105
105
|
aria-invalid=${invalid?"true":"false"}
|
|
106
106
|
?disabled=${this.effectiveDisabled}
|
|
107
|
+
?readonly=${this.readonly}
|
|
107
108
|
@input=${this.onFieldInput}
|
|
108
109
|
@change=${this.onFieldChange}
|
|
109
110
|
@keydown=${this.onFieldKeyDown}
|
|
@@ -167,4 +168,4 @@ var __decorate=function(decorators,target,key,desc){var c=arguments.length,r=c<3
|
|
|
167
168
|
<div id=${this.hintId} part="hint" ?hidden=${!hasHint}
|
|
168
169
|
>${this.hint}<slot name="hint" @slotchange=${this.onSlotChange}></slot
|
|
169
170
|
></div>
|
|
170
|
-
</div>`}}__decorate([property()],LyraColorPicker.prototype,"label",void 0),__decorate([property()],LyraColorPicker.prototype,"hint",void 0),__decorate([property({type:Boolean,attribute:"with-label",reflect:!0})],LyraColorPicker.prototype,"withLabel",void 0),__decorate([property({type:Boolean,attribute:"with-hint",reflect:!0})],LyraColorPicker.prototype,"withHint",void 0),__decorate([property({attribute:"error-text"})],LyraColorPicker.prototype,"errorText",void 0),__decorate([property({attribute:"aria-label"})],LyraColorPicker.prototype,"accessibleLabel",void 0),__decorate([property({reflect:!0})],LyraColorPicker.prototype,"size",void 0),__decorate([property()],LyraColorPicker.prototype,"format",void 0),__decorate([property({type:Boolean})],LyraColorPicker.prototype,"opacity",void 0),__decorate([property({type:Boolean})],LyraColorPicker.prototype,"uppercase",void 0),__decorate([property()],LyraColorPicker.prototype,"swatches",void 0),__decorate([property({type:Boolean,attribute:"without-format-toggle"})],LyraColorPicker.prototype,"withoutFormatToggle",void 0),__decorate([property({type:Boolean,attribute:"no-format-toggle",reflect:!0})],LyraColorPicker.prototype,"noFormatToggle",void 0),__decorate([property({type:Boolean,reflect:!0})],LyraColorPicker.prototype,"inline",void 0),__decorate([property({attribute:"positioning-strategy",reflect:!0,converter:POSITIONING_STRATEGY})],LyraColorPicker.prototype,"positioningStrategy",null),__decorate([property({type:Boolean,reflect:!0})],LyraColorPicker.prototype,"hoist",null),__decorate([property({reflect:!0})],LyraColorPicker.prototype,"placement",void 0),__decorate([property({type:Boolean,reflect:!0})],LyraColorPicker.prototype,"open",null),__decorate([state()],LyraColorPicker.prototype,"hasLabel",void 0),__decorate([state()],LyraColorPicker.prototype,"hasHint",void 0),__decorate([state()],LyraColorPicker.prototype,"hasError",void 0),__decorate([state()],LyraColorPicker.prototype,"hasEyeDropper",void 0),__decorate([state()],LyraColorPicker.prototype,"color",void 0);export{LyraColorPicker};
|
|
171
|
+
</div>`}}__decorate([property()],LyraColorPicker.prototype,"label",void 0),__decorate([property()],LyraColorPicker.prototype,"hint",void 0),__decorate([property({type:Boolean,attribute:"with-label",reflect:!0})],LyraColorPicker.prototype,"withLabel",void 0),__decorate([property({type:Boolean,attribute:"with-hint",reflect:!0})],LyraColorPicker.prototype,"withHint",void 0),__decorate([property({attribute:"error-text"})],LyraColorPicker.prototype,"errorText",void 0),__decorate([property({attribute:"aria-label"})],LyraColorPicker.prototype,"accessibleLabel",void 0),__decorate([property({type:Boolean,reflect:!0})],LyraColorPicker.prototype,"readonly",void 0),__decorate([property({reflect:!0})],LyraColorPicker.prototype,"size",void 0),__decorate([property()],LyraColorPicker.prototype,"format",void 0),__decorate([property({type:Boolean})],LyraColorPicker.prototype,"opacity",void 0),__decorate([property({type:Boolean})],LyraColorPicker.prototype,"uppercase",void 0),__decorate([property()],LyraColorPicker.prototype,"swatches",void 0),__decorate([property({type:Boolean,attribute:"without-format-toggle"})],LyraColorPicker.prototype,"withoutFormatToggle",void 0),__decorate([property({type:Boolean,attribute:"no-format-toggle",reflect:!0})],LyraColorPicker.prototype,"noFormatToggle",void 0),__decorate([property({type:Boolean,reflect:!0})],LyraColorPicker.prototype,"inline",void 0),__decorate([property({attribute:"positioning-strategy",reflect:!0,converter:POSITIONING_STRATEGY})],LyraColorPicker.prototype,"positioningStrategy",null),__decorate([property({type:Boolean,reflect:!0})],LyraColorPicker.prototype,"hoist",null),__decorate([property({reflect:!0})],LyraColorPicker.prototype,"placement",void 0),__decorate([property({type:Boolean,reflect:!0})],LyraColorPicker.prototype,"open",null),__decorate([state()],LyraColorPicker.prototype,"hasLabel",void 0),__decorate([state()],LyraColorPicker.prototype,"hasHint",void 0),__decorate([state()],LyraColorPicker.prototype,"hasError",void 0),__decorate([state()],LyraColorPicker.prototype,"hasEyeDropper",void 0),__decorate([state()],LyraColorPicker.prototype,"color",void 0);export{LyraColorPicker};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement,type LyraEventDetailSnapshot}from'../../../internal/lyra-element.js';import type{LyraSize}from'../../../internal/variants.js';import type{LyraSelectionDirection}from'../../../internal/shared-unions.js';import type{LyraOption}from'./option.class.js';import'./option.class.js';import type{PlaceStrategy,PlaceSync}from'../../../internal/positioner.js';import{type FormOwnerValue}from'../../../internal/form-associated.js';import type{LyraPickerDetailValue,LyraPickerValue}from'../../../internal/picker-value.js';export type OptionFilter=(option:LyraOption,query:string)=>boolean;export type LyraComboboxPlacement='top'|'bottom';export type LyraComboboxTagRenderer=(option:LyraOption,index:number)=>unknown;
|
|
1
|
+
import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement,type LyraEventDetailSnapshot}from'../../../internal/lyra-element.js';import type{LyraAppearance,LyraSize}from'../../../internal/variants.js';import type{LyraSelectionDirection}from'../../../internal/shared-unions.js';import type{LyraOption}from'./option.class.js';import'./option.class.js';import type{PlaceStrategy,PlaceSync}from'../../../internal/positioner.js';import{type FormOwnerValue}from'../../../internal/form-associated.js';import type{LyraPickerDetailValue,LyraPickerValue}from'../../../internal/picker-value.js';export type OptionFilter=(option:LyraOption,query:string)=>boolean;export type LyraComboboxPlacement='top'|'bottom';export type LyraComboboxTagRenderer=(option:LyraOption,index:number)=>unknown;
|
|
2
2
|
/** What a `validators` entry may return: nothing/`true` passes, a string is the message, `false` is
|
|
3
3
|
* a generic failure, and an object of {@linkcode ValidityStateFlags} names the flags to raise. */
|
|
4
4
|
export type LyraComboboxValidatorResult=void|boolean|string|ValidityStateFlags;
|
|
@@ -86,11 +86,12 @@ export type LyraComboboxChangeEvent<Multiple extends boolean=boolean> =LyraCombo
|
|
|
86
86
|
* a typo) still commits rather than being dropped, but renders with a dashed/italic
|
|
87
87
|
* `[part='unknown-value']` badge instead of silently passing the raw string off as an ordinary
|
|
88
88
|
* label -- see `isUnknownValue()`. Suppressed while an async `source` fetch has never yet resolved
|
|
89
|
-
* for this element,
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
* value
|
|
89
|
+
* for this element, or while the public `loading` property is set (for a consumer mounting
|
|
90
|
+
* `<lr-option>` children asynchronously itself, with no `source` involved), and never shown for an
|
|
91
|
+
* `allowCustomValue` commit, which is a sanctioned unmatched value, not a stale one. Over that same
|
|
92
|
+
* unresolved window the raw value itself is withheld too -- the trigger (and any `multiple`-mode
|
|
93
|
+
* tag for the same value) shows the `loadingText` placeholder instead of the raw string, since it
|
|
94
|
+
* is not yet knowable whether the value is even unmatched.
|
|
94
95
|
*
|
|
95
96
|
* @customElement lr-combobox
|
|
96
97
|
* @slot - `<lr-option>` elements.
|
|
@@ -211,6 +212,8 @@ export type LyraComboboxChangeEvent<Multiple extends boolean=boolean> =LyraCombo
|
|
|
211
212
|
* @csspart retry-button - The retry control inside the failed-load state.
|
|
212
213
|
* @csspart hint - The hint message.
|
|
213
214
|
* @cssprop --lr-combobox-trigger-padding - Padding inside the input container.
|
|
215
|
+
* @cssprop [--lr-combobox-text-color=inherit] - Trigger text color. Defaults to the inherited text
|
|
216
|
+
* color, and to `--lr-color-on-brand` under `appearance="accent"`.
|
|
214
217
|
* @cssprop [--lr-combobox-trigger-min-height=var(--lr-form-control-height)] - Minimum
|
|
215
218
|
* input-container block size. Reads the shared form-control height ladder, so retuning
|
|
216
219
|
* `--lr-theme-form-control-height-*` moves this control and every sibling field together.
|
|
@@ -225,6 +228,10 @@ export type LyraComboboxChangeEvent<Multiple extends boolean=boolean> =LyraCombo
|
|
|
225
228
|
* shared form-control size ladder.
|
|
226
229
|
* @cssprop --lr-combobox-tag-padding - Selected-tag padding.
|
|
227
230
|
* @cssprop --lr-combobox-tag-font-size - Selected-tag text size.
|
|
231
|
+
* @cssprop [--lr-combobox-tag-bg=var(--lr-color-brand-quiet)] - Selected-tag background. Scoped
|
|
232
|
+
* independently of every other use of the shared `--lr-color-brand-quiet` token in this file.
|
|
233
|
+
* @cssprop [--lr-combobox-tag-color=var(--lr-color-text)] - Selected-tag text color.
|
|
234
|
+
* @cssprop [--lr-combobox-tag-radius=var(--lr-radius)] - Selected-tag corner radius.
|
|
228
235
|
* @cssprop [--lr-combobox-unknown-value-border-style=dashed] - Border style of a `multiple`-mode
|
|
229
236
|
* tag whose committed value matches no current option/row.
|
|
230
237
|
* @cssprop [--lr-combobox-unknown-value-border-color=var(--lr-color-border)] - Border color of the
|
|
@@ -306,8 +313,8 @@ export declare class LyraCombobox<Multiple extends boolean=boolean>extends LyraE
|
|
|
306
313
|
/** `data` carries opaque per-row caller payload -- preserve each item's identity through the
|
|
307
314
|
* frozen event envelope instead of recursively cloning unknown data, the same policy
|
|
308
315
|
* `<lr-prompt-queue>`'s `lr-queue-change` detail uses for its own `items`. */
|
|
309
|
-
protected static readonly identityEventDetailCollectionItems:Readonly<{'lr-change':readonly string[];input:readonly string[];change:readonly string[];}>;static formAssociated:boolean;static styles:import("lit").CSSResultGroup[];static properties:{customError:{attribute:string;reflect:boolean;noAccessor:boolean;};multiple:{type:BooleanConstructor;reflect:boolean;noAccessor:boolean;};disabled:{type:BooleanConstructor;reflect:boolean;noAccessor:boolean;};required:{type:BooleanConstructor;reflect:boolean;noAccessor:boolean;};value:{noAccessor:boolean;};name:{reflect:boolean;noAccessor:boolean;converter:import("lit").ComplexAttributeConverter<string,unknown>;};maxOptionsVisible:{type:NumberConstructor;attribute:string;noAccessor:boolean;};maxRender:{type:NumberConstructor;attribute:string;noAccessor:boolean;};sourceDelay:{type:NumberConstructor;attribute:string;noAccessor:boolean;};};placeholder:string;label:string;hint:string;errorText:string;
|
|
310
|
-
/** Whether the listbox is open.
|
|
316
|
+
protected static readonly identityEventDetailCollectionItems:Readonly<{'lr-change':readonly string[];input:readonly string[];change:readonly string[];}>;static formAssociated:boolean;static styles:import("lit").CSSResultGroup[];static properties:{customError:{attribute:string;reflect:boolean;noAccessor:boolean;};multiple:{type:BooleanConstructor;reflect:boolean;noAccessor:boolean;};disabled:{type:BooleanConstructor;reflect:boolean;noAccessor:boolean;};required:{type:BooleanConstructor;reflect:boolean;noAccessor:boolean;};readonly:{type:BooleanConstructor;reflect:boolean;noAccessor:boolean;};value:{noAccessor:boolean;};name:{reflect:boolean;noAccessor:boolean;converter:import("lit").ComplexAttributeConverter<string,unknown>;};maxOptionsVisible:{type:NumberConstructor;attribute:string;noAccessor:boolean;};maxRender:{type:NumberConstructor;attribute:string;noAccessor:boolean;};sourceDelay:{type:NumberConstructor;attribute:string;noAccessor:boolean;};};placeholder:string;label:string;hint:string;errorText:string;
|
|
317
|
+
/** Whether the listbox is open. Disabled or readonly controls reject direct reopen attempts,
|
|
311
318
|
* including a synchronous fieldset cascade. */
|
|
312
319
|
get open():boolean;set open(next:boolean);
|
|
313
320
|
/** Allows a nonmatching query to be created as a new option through the cancelable `lr-create`
|
|
@@ -336,12 +343,35 @@ showUnknownOption:boolean;
|
|
|
336
343
|
* tag, and the synthetic listbox row -- and is used only while the value is genuinely unmatched,
|
|
337
344
|
* so it can never override a real option's own label. A blank return falls back to the raw
|
|
338
345
|
* value, exactly as no hook at all would. Caller-supplied text: it is not localized here. Not
|
|
339
|
-
* consulted while an async `source` fetch has never yet resolved for this element
|
|
340
|
-
* is not yet known to be unmatched at all, so `loadingText`
|
|
346
|
+
* consulted while an async `source` fetch has never yet resolved for this element, or while
|
|
347
|
+
* `loading` is `true` -- the value is not yet known to be unmatched at all, so `loadingText`
|
|
348
|
+
* renders instead (see `isUnknownValue()`).
|
|
341
349
|
*/
|
|
342
350
|
getUnknownLabel?:(value:string)=>string;
|
|
343
|
-
/**
|
|
344
|
-
|
|
351
|
+
/**
|
|
352
|
+
* Whether a committed value's real label may still be pending -- e.g. the `<lr-option>` catalog
|
|
353
|
+
* behind it is still being fetched/mounted asynchronously (with no `source` involved) and simply
|
|
354
|
+
* hasn't arrived yet. Mirrors `<lr-select>`'s own `loading` property. While `true`, a committed
|
|
355
|
+
* value that currently matches no option/row (the same condition `isUnknownValue()` tests)
|
|
356
|
+
* renders the localized `loadingText` placeholder in the trigger label or the relevant `multiple`
|
|
357
|
+
* tag instead of the raw value, and is not flagged with the dashed/italic
|
|
358
|
+
* `notInCatalog`/`[part='unknown-value']` badge a genuinely unmatched value gets -- "not yet
|
|
359
|
+
* resolved" is a different state from "known to be missing". The open listbox shows the same
|
|
360
|
+
* loading row a `source` fetch in flight shows. Independent of `source`'s own async lifecycle:
|
|
361
|
+
* either condition alone is enough to suppress the unknown-value presentation. Never mutates
|
|
362
|
+
* `value`/`selectedOptions` itself, and does not itself disable the trigger. Reflected so
|
|
363
|
+
* `:host([loading])` is available as a styling hook.
|
|
364
|
+
* @default false
|
|
365
|
+
*/
|
|
366
|
+
loading:boolean;private _appearance;
|
|
367
|
+
/**
|
|
368
|
+
* Visual treatment shared with other Lyra form controls -- the full five-value `LyraAppearance`
|
|
369
|
+
* vocabulary, matching `<lr-select>`'s trigger (its nearest sibling, sharing `<lr-option>`
|
|
370
|
+
* children). A raw attribute/property write outside this set, including a typo, clamps to the
|
|
371
|
+
* `'outlined'` default rather than silently rendering unstyled.
|
|
372
|
+
* @default 'outlined'
|
|
373
|
+
*/
|
|
374
|
+
get appearance():LyraAppearance;set appearance(next:LyraAppearance);
|
|
345
375
|
/** Preferred vertical side for the floating listbox. */
|
|
346
376
|
placement:LyraComboboxPlacement;
|
|
347
377
|
/**
|
|
@@ -432,7 +462,10 @@ get inputmode():string;set inputmode(next:string);get enterkeyhint():string;set
|
|
|
432
462
|
get inputValue():string;set inputValue(next:string);private query;
|
|
433
463
|
/** Public `inputValue` and `setRangeText()` writes remain visible while closed; stale user filter
|
|
434
464
|
* text left behind by a direct `open = false` write does not. */
|
|
435
|
-
private explicitInputValue;private activeIndex;private options;private touched;private validityRevision;private validatorAttributeObserver?;private readonly slotPresence;
|
|
465
|
+
private explicitInputValue;private activeIndex;private options;private touched;private validityRevision;private validatorAttributeObserver?;private readonly slotPresence;
|
|
466
|
+
/** True while a `source` fetch is actively in flight. Distinct from the public {@link loading}
|
|
467
|
+
* property, which a consumer sets directly; combined with it wherever a loading state is read. */
|
|
468
|
+
private sourceLoading;
|
|
436
469
|
/**
|
|
437
470
|
* True while the last `source` call rejected and the popup shows the retry state instead of rows.
|
|
438
471
|
*
|
|
@@ -472,7 +505,7 @@ private pendingSelectedRowValues?;private _rowsByValue;private internals;private
|
|
|
472
505
|
customError:string|null;private _fieldsetDisabled;private listId;private inputId;private cleanup?;private listboxPositioned;private positioningGeneration;private positioningReady;private resolvePositioningReady?;private overlayHandle?;private restoreFocusOnClose;private restoringOverlayFocus;private pointerListenerDocument?;private pointerListener?;private listboxHidden;private _isFirstUpdate;private openVetoed;
|
|
473
506
|
/** Set only by `hide()`. Cleanup is applied in `willUpdate()` after `lr-hide` accepts the close,
|
|
474
507
|
* so a veto remains an atomic no-op for the query, active row, and async result set. */
|
|
475
|
-
private closeCleanupPending;private transitionToken;private transitionWaiters;private _selected;private singleSelectedOption?;private readonly sourceOptionsByRow;private _valueDirty;private _multiple;private _disabled;private _required;private _defaultSelected;private _defaultCaptured;private _restoredStateActive;private _name;private validationTargetOverride?;
|
|
508
|
+
private closeCleanupPending;private transitionToken;private transitionWaiters;private _selected;private singleSelectedOption?;private readonly sourceOptionsByRow;private _valueDirty;private _multiple;private _disabled;private _required;private _readonly;private _defaultSelected;private _defaultCaptured;private _restoredStateActive;private _name;private validationTargetOverride?;
|
|
476
509
|
/**
|
|
477
510
|
* Bounds the popup to roughly this many option rows, leaving the rest reachable by scrolling.
|
|
478
511
|
*
|
|
@@ -519,6 +552,13 @@ get disabled():boolean;set disabled(next:boolean);
|
|
|
519
552
|
/** Requires at least one committed selection.
|
|
520
553
|
* @default false */
|
|
521
554
|
get required():boolean;set required(next:boolean);
|
|
555
|
+
/** Forwards native read-only behavior to the internal filter input: the committed value stays
|
|
556
|
+
* fixed and still submits with the form, the control remains focusable, selectable and
|
|
557
|
+
* copyable, but no popup opens and no edit -- typed, picked, or a tag/clear-button removal --
|
|
558
|
+
* can change it. Mirrors `<lr-input>`'s own `readonly`; bars constraint validation exactly like
|
|
559
|
+
* `disabled` -- see `isBarredFromValidation()`.
|
|
560
|
+
* @default false */
|
|
561
|
+
get readonly():boolean;set readonly(next:boolean);
|
|
522
562
|
/** The selected value(s): a string in single mode, a string[] in `multiple` mode.
|
|
523
563
|
*
|
|
524
564
|
* Assigning `undefined` or `null` clears the selection -- the documented "unset" contract.
|
|
@@ -641,9 +681,11 @@ private collectOptionsFromSlot;private refreshOptionDefaults;private optionRefre
|
|
|
641
681
|
* Suppressed entirely until a `source` combobox's async fetch has settled at least once (see
|
|
642
682
|
* `sourceEverSettled`): from mount through the debounce delay and the in-flight call itself,
|
|
643
683
|
* simply hasn't had a chance to populate `asyncRows` yet, which is "not yet known", not
|
|
644
|
-
* "genuinely unknown" -- `
|
|
645
|
-
* even starts, which is exactly the window `labelFor()`'s own
|
|
646
|
-
* this to agree with.
|
|
684
|
+
* "genuinely unknown" -- the private `sourceLoading` flag alone would miss the debounce-delay
|
|
685
|
+
* span before the request even starts, which is exactly the window `labelFor()`'s own
|
|
686
|
+
* loading-placeholder fallback needs this to agree with. Also suppressed while the public
|
|
687
|
+
* `loading` property is `true`, for a consumer mounting `<lr-option>` children asynchronously
|
|
688
|
+
* itself with no `source` involved -- see `loading`.
|
|
647
689
|
*
|
|
648
690
|
* Checked against the same four sources as `labelFor()`, but as a plain existence test rather
|
|
649
691
|
* than a label lookup, so a real match with a deliberately blank label is never misreported as
|
|
@@ -751,7 +793,14 @@ private assignValue;
|
|
|
751
793
|
/** Runs the cancelable option-creation contract, then performs its default append/select behavior. */
|
|
752
794
|
private createOption;
|
|
753
795
|
/** Commits arbitrary text in the single-select custom-value mode without adding an option. */
|
|
754
|
-
private commitCustomValue;private pickRow;
|
|
796
|
+
private commitCustomValue;private pickRow;
|
|
797
|
+
/**
|
|
798
|
+
* Removes exactly the occurrence at `index`, never every row sharing its public string value --
|
|
799
|
+
* `multiple` mode's committed `value` can legitimately hold a repeated string (the `value`
|
|
800
|
+
* setter never dedupes), and `shownTags` renders one tag per occurrence, so a value-keyed removal
|
|
801
|
+
* would delete every duplicate in one click. Mirrors `<lr-select>`'s `removeValueAt()`.
|
|
802
|
+
*/
|
|
803
|
+
private removeValueAt;
|
|
755
804
|
/**
|
|
756
805
|
* The clear button clears both axes the control owns — the committed selection and the
|
|
757
806
|
* in-progress filter text — but each announces only its own change. A query-only clear must stay
|