@cognivo/components 0.8.0 → 0.8.2
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/dist/chunks/focus-trap-vlQwKK-3.js +82 -0
- package/dist/chunks/focus-trap-vlQwKK-3.js.map +1 -0
- package/dist/chunks/{premium.css-9I4kHrsl.js → premium.css-DHekUEUt.js} +25 -25
- package/dist/chunks/{premium.css-9I4kHrsl.js.map → premium.css-DHekUEUt.js.map} +1 -1
- package/dist/cognivo.min.js +3375 -5270
- package/dist/cognivo.min.js.map +1 -1
- package/dist/components/ai-ab-test/ai-ab-test.js +1 -1
- package/dist/components/ai-accessibility-report/ai-accessibility-report.d.ts.map +1 -1
- package/dist/components/ai-accessibility-report/ai-accessibility-report.js +14 -13
- package/dist/components/ai-accessibility-report/ai-accessibility-report.js.map +1 -1
- package/dist/components/ai-action-preview/ai-action-preview.d.ts.map +1 -1
- package/dist/components/ai-action-preview/ai-action-preview.js +15 -14
- package/dist/components/ai-action-preview/ai-action-preview.js.map +1 -1
- package/dist/components/ai-agent-card/ai-agent-card.js +1 -1
- package/dist/components/ai-agent-steps/ai-agent-steps.d.ts +8 -21
- package/dist/components/ai-agent-steps/ai-agent-steps.d.ts.map +1 -1
- package/dist/components/ai-agent-steps/ai-agent-steps.js +85 -139
- package/dist/components/ai-agent-steps/ai-agent-steps.js.map +1 -1
- package/dist/components/ai-alert-card/ai-alert-card.js +5 -5
- package/dist/components/ai-alert-card/ai-alert-card.js.map +1 -1
- package/dist/components/ai-analytics-chart/ai-analytics-chart.d.ts +0 -13
- package/dist/components/ai-analytics-chart/ai-analytics-chart.d.ts.map +1 -1
- package/dist/components/ai-analytics-chart/ai-analytics-chart.js +75 -125
- package/dist/components/ai-analytics-chart/ai-analytics-chart.js.map +1 -1
- package/dist/components/ai-annotation/ai-annotation.js +2 -2
- package/dist/components/ai-annotation/ai-annotation.js.map +1 -1
- package/dist/components/ai-api-key-manager/ai-api-key-manager.d.ts +0 -9
- package/dist/components/ai-api-key-manager/ai-api-key-manager.d.ts.map +1 -1
- package/dist/components/ai-api-key-manager/ai-api-key-manager.js +115 -276
- package/dist/components/ai-api-key-manager/ai-api-key-manager.js.map +1 -1
- package/dist/components/ai-app-sidebar/ai-app-sidebar.js +13 -13
- package/dist/components/ai-app-sidebar/ai-app-sidebar.js.map +1 -1
- package/dist/components/ai-assistant-widget/ai-assistant-widget.d.ts.map +1 -1
- package/dist/components/ai-assistant-widget/ai-assistant-widget.js +5 -2
- package/dist/components/ai-assistant-widget/ai-assistant-widget.js.map +1 -1
- package/dist/components/ai-audio-player/ai-audio-player.d.ts.map +1 -1
- package/dist/components/ai-audio-player/ai-audio-player.js +23 -19
- package/dist/components/ai-audio-player/ai-audio-player.js.map +1 -1
- package/dist/components/ai-avatar/ai-avatar.js +1 -1
- package/dist/components/ai-badge/ai-badge.js +1 -1
- package/dist/components/ai-batch-progress/ai-batch-progress.js +6 -6
- package/dist/components/ai-batch-progress/ai-batch-progress.js.map +1 -1
- package/dist/components/ai-cache-indicator/ai-cache-indicator.d.ts +0 -13
- package/dist/components/ai-cache-indicator/ai-cache-indicator.d.ts.map +1 -1
- package/dist/components/ai-cache-indicator/ai-cache-indicator.js +90 -185
- package/dist/components/ai-cache-indicator/ai-cache-indicator.js.map +1 -1
- package/dist/components/ai-capture-flow/ai-capture-flow.js +21 -21
- package/dist/components/ai-capture-flow/ai-capture-flow.js.map +1 -1
- package/dist/components/ai-changelog/ai-changelog.js +26 -26
- package/dist/components/ai-changelog/ai-changelog.js.map +1 -1
- package/dist/components/ai-chart-summary/ai-chart-summary.d.ts +0 -6
- package/dist/components/ai-chart-summary/ai-chart-summary.d.ts.map +1 -1
- package/dist/components/ai-chart-summary/ai-chart-summary.js +100 -103
- package/dist/components/ai-chart-summary/ai-chart-summary.js.map +1 -1
- package/dist/components/ai-chat/ai-chat.d.ts.map +1 -1
- package/dist/components/ai-chat/ai-chat.js +9 -3
- package/dist/components/ai-chat/ai-chat.js.map +1 -1
- package/dist/components/ai-citation/ai-citation.d.ts +0 -6
- package/dist/components/ai-citation/ai-citation.d.ts.map +1 -1
- package/dist/components/ai-citation/ai-citation.js +64 -90
- package/dist/components/ai-citation/ai-citation.js.map +1 -1
- package/dist/components/ai-collaborative-editor/ai-collaborative-editor.d.ts +1 -27
- package/dist/components/ai-collaborative-editor/ai-collaborative-editor.d.ts.map +1 -1
- package/dist/components/ai-collaborative-editor/ai-collaborative-editor.js +114 -260
- package/dist/components/ai-collaborative-editor/ai-collaborative-editor.js.map +1 -1
- package/dist/components/ai-command-palette/ai-command-palette.js +1 -1
- package/dist/components/ai-confidence-badge/ai-confidence-badge.d.ts +11 -9
- package/dist/components/ai-confidence-badge/ai-confidence-badge.d.ts.map +1 -1
- package/dist/components/ai-confidence-badge/ai-confidence-badge.js +183 -101
- package/dist/components/ai-confidence-badge/ai-confidence-badge.js.map +1 -1
- package/dist/components/ai-confidence-slider/ai-confidence-slider.js +27 -27
- package/dist/components/ai-confidence-slider/ai-confidence-slider.js.map +1 -1
- package/dist/components/ai-consent-manager/ai-consent-manager.js +2 -2
- package/dist/components/ai-consent-manager/ai-consent-manager.js.map +1 -1
- package/dist/components/ai-context-window/ai-context-window.js +19 -19
- package/dist/components/ai-context-window/ai-context-window.js.map +1 -1
- package/dist/components/ai-copy-button/ai-copy-button.js +4 -4
- package/dist/components/ai-copy-button/ai-copy-button.js.map +1 -1
- package/dist/components/ai-cost-dashboard/ai-cost-dashboard.js +14 -14
- package/dist/components/ai-cost-dashboard/ai-cost-dashboard.js.map +1 -1
- package/dist/components/ai-data-card/ai-data-card.js +2 -2
- package/dist/components/ai-data-card/ai-data-card.js.map +1 -1
- package/dist/components/ai-data-lineage/ai-data-lineage.js +6 -6
- package/dist/components/ai-data-lineage/ai-data-lineage.js.map +1 -1
- package/dist/components/ai-data-preview/ai-data-preview.d.ts +0 -7
- package/dist/components/ai-data-preview/ai-data-preview.d.ts.map +1 -1
- package/dist/components/ai-data-preview/ai-data-preview.js +130 -267
- package/dist/components/ai-data-preview/ai-data-preview.js.map +1 -1
- package/dist/components/ai-data-table/ai-data-table.js +9 -9
- package/dist/components/ai-data-table/ai-data-table.js.map +1 -1
- package/dist/components/ai-debug-console/ai-debug-console.d.ts +1 -13
- package/dist/components/ai-debug-console/ai-debug-console.d.ts.map +1 -1
- package/dist/components/ai-debug-console/ai-debug-console.js +134 -340
- package/dist/components/ai-debug-console/ai-debug-console.js.map +1 -1
- package/dist/components/ai-detection-canvas/ai-detection-canvas.js +2 -2
- package/dist/components/ai-detection-canvas/ai-detection-canvas.js.map +1 -1
- package/dist/components/ai-diff-panel/ai-diff-panel.js +1 -1
- package/dist/components/ai-embedding-viz/ai-embedding-viz.js +4 -4
- package/dist/components/ai-embedding-viz/ai-embedding-viz.js.map +1 -1
- package/dist/components/ai-empty-state/ai-empty-state.js +1 -1
- package/dist/components/ai-error-boundary/ai-error-boundary.d.ts.map +1 -1
- package/dist/components/ai-error-boundary/ai-error-boundary.js +26 -21
- package/dist/components/ai-error-boundary/ai-error-boundary.js.map +1 -1
- package/dist/components/ai-eval-scorecard/ai-eval-scorecard.js +5 -5
- package/dist/components/ai-eval-scorecard/ai-eval-scorecard.js.map +1 -1
- package/dist/components/ai-feature-flag/ai-feature-flag.d.ts +0 -14
- package/dist/components/ai-feature-flag/ai-feature-flag.d.ts.map +1 -1
- package/dist/components/ai-feature-flag/ai-feature-flag.js +181 -322
- package/dist/components/ai-feature-flag/ai-feature-flag.js.map +1 -1
- package/dist/components/ai-feedback/ai-feedback.d.ts.map +1 -1
- package/dist/components/ai-feedback/ai-feedback.js +10 -5
- package/dist/components/ai-feedback/ai-feedback.js.map +1 -1
- package/dist/components/ai-file-upload/ai-file-upload.js +1 -1
- package/dist/components/ai-form-generator/ai-form-generator.js +1 -1
- package/dist/components/ai-guardrail/ai-guardrail.js +2 -2
- package/dist/components/ai-guardrail/ai-guardrail.js.map +1 -1
- package/dist/components/ai-heatmap/ai-heatmap.js +1 -1
- package/dist/components/ai-insight-card/ai-insight-card.js +4 -4
- package/dist/components/ai-insight-card/ai-insight-card.js.map +1 -1
- package/dist/components/ai-json-viewer/ai-json-viewer.js +13 -13
- package/dist/components/ai-json-viewer/ai-json-viewer.js.map +1 -1
- package/dist/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.js +24 -24
- package/dist/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.js.map +1 -1
- package/dist/components/ai-kpi-grid/ai-kpi-grid.js +2 -2
- package/dist/components/ai-kpi-grid/ai-kpi-grid.js.map +1 -1
- package/dist/components/ai-labeling-board/ai-labeling-board.js +11 -11
- package/dist/components/ai-labeling-board/ai-labeling-board.js.map +1 -1
- package/dist/components/ai-memory-panel/ai-memory-panel.js +7 -7
- package/dist/components/ai-memory-panel/ai-memory-panel.js.map +1 -1
- package/dist/components/ai-model-comparison/ai-model-comparison.js +2 -2
- package/dist/components/ai-model-comparison/ai-model-comparison.js.map +1 -1
- package/dist/components/ai-model-selector/ai-model-selector.js +7 -7
- package/dist/components/ai-model-selector/ai-model-selector.js.map +1 -1
- package/dist/components/ai-notification-center/ai-notification-center.js +27 -27
- package/dist/components/ai-notification-center/ai-notification-center.js.map +1 -1
- package/dist/components/ai-onboarding/ai-onboarding.js +5 -5
- package/dist/components/ai-onboarding/ai-onboarding.js.map +1 -1
- package/dist/components/ai-permission-gate/ai-permission-gate.js +1 -1
- package/dist/components/ai-personalization-dash/ai-personalization-dash.js +1 -1
- package/dist/components/ai-presence/ai-presence.js +25 -25
- package/dist/components/ai-presence/ai-presence.js.map +1 -1
- package/dist/components/ai-progress-steps/ai-progress-steps.js +11 -11
- package/dist/components/ai-progress-steps/ai-progress-steps.js.map +1 -1
- package/dist/components/ai-prompt-editor/ai-prompt-editor.js +1 -1
- package/dist/components/ai-prompt-template/ai-prompt-template.js +29 -29
- package/dist/components/ai-prompt-template/ai-prompt-template.js.map +1 -1
- package/dist/components/ai-rag-panel/ai-rag-panel.js +4 -4
- package/dist/components/ai-rag-panel/ai-rag-panel.js.map +1 -1
- package/dist/components/ai-reasoning-tree/ai-reasoning-tree.js +16 -16
- package/dist/components/ai-reasoning-tree/ai-reasoning-tree.js.map +1 -1
- package/dist/components/ai-result-panel/ai-result-panel.js +1 -1
- package/dist/components/ai-reveal-animation/ai-reveal-animation.js +3 -3
- package/dist/components/ai-reveal-animation/ai-reveal-animation.js.map +1 -1
- package/dist/components/ai-reward-signal/ai-reward-signal.js +1 -1
- package/dist/components/ai-rich-message/ai-rich-message.d.ts.map +1 -1
- package/dist/components/ai-rich-message/ai-rich-message.js +37 -30
- package/dist/components/ai-rich-message/ai-rich-message.js.map +1 -1
- package/dist/components/ai-scenario-panel/ai-scenario-panel.js +10 -10
- package/dist/components/ai-scenario-panel/ai-scenario-panel.js.map +1 -1
- package/dist/components/ai-search/ai-search.js +1 -1
- package/dist/components/ai-segmentation-viewer/ai-segmentation-viewer.js +3 -3
- package/dist/components/ai-segmentation-viewer/ai-segmentation-viewer.js.map +1 -1
- package/dist/components/ai-sidebar/ai-sidebar.js +1 -1
- package/dist/components/ai-similarity-card/ai-similarity-card.js +1 -1
- package/dist/components/ai-source-graph/ai-source-graph.js +2 -2
- package/dist/components/ai-source-graph/ai-source-graph.js.map +1 -1
- package/dist/components/ai-status-page/ai-status-page.js +15 -15
- package/dist/components/ai-status-page/ai-status-page.js.map +1 -1
- package/dist/components/ai-streaming-text/ai-streaming-text.js +1 -1
- package/dist/components/ai-test-runner/ai-test-runner.d.ts +0 -8
- package/dist/components/ai-test-runner/ai-test-runner.d.ts.map +1 -1
- package/dist/components/ai-test-runner/ai-test-runner.js +100 -257
- package/dist/components/ai-test-runner/ai-test-runner.js.map +1 -1
- package/dist/components/ai-thinking/ai-thinking.js +1 -1
- package/dist/components/ai-timeline/ai-timeline.js +2 -2
- package/dist/components/ai-timeline/ai-timeline.js.map +1 -1
- package/dist/components/ai-token-tracker/ai-token-tracker.js +3 -3
- package/dist/components/ai-token-tracker/ai-token-tracker.js.map +1 -1
- package/dist/components/ai-tool-card-resolver/ai-tool-card-resolver.js +23 -23
- package/dist/components/ai-tool-card-resolver/ai-tool-card-resolver.js.map +1 -1
- package/dist/components/ai-tool-indicator/ai-tool-indicator.js +3 -3
- package/dist/components/ai-tool-indicator/ai-tool-indicator.js.map +1 -1
- package/dist/components/ai-transform-slider/ai-transform-slider.js +1 -1
- package/dist/components/ai-translation-panel/ai-translation-panel.js +2 -2
- package/dist/components/ai-translation-panel/ai-translation-panel.js.map +1 -1
- package/dist/components/ai-usage-meter/ai-usage-meter.js +1 -1
- package/dist/components/ai-validation-checklist/ai-validation-checklist.d.ts +1 -11
- package/dist/components/ai-validation-checklist/ai-validation-checklist.d.ts.map +1 -1
- package/dist/components/ai-validation-checklist/ai-validation-checklist.js +133 -187
- package/dist/components/ai-validation-checklist/ai-validation-checklist.js.map +1 -1
- package/dist/components/ai-version-selector/ai-version-selector.d.ts +0 -4
- package/dist/components/ai-version-selector/ai-version-selector.d.ts.map +1 -1
- package/dist/components/ai-version-selector/ai-version-selector.js +189 -210
- package/dist/components/ai-version-selector/ai-version-selector.js.map +1 -1
- package/dist/components/ai-voice-panel/ai-voice-panel.js +28 -28
- package/dist/components/ai-voice-panel/ai-voice-panel.js.map +1 -1
- package/dist/components/ai-webhook-config/ai-webhook-config.d.ts +0 -17
- package/dist/components/ai-webhook-config/ai-webhook-config.d.ts.map +1 -1
- package/dist/components/ai-webhook-config/ai-webhook-config.js +281 -221
- package/dist/components/ai-webhook-config/ai-webhook-config.js.map +1 -1
- package/dist/components/ai-workflow-builder/ai-workflow-builder.js +2 -2
- package/dist/components/ai-workflow-builder/ai-workflow-builder.js.map +1 -1
- package/dist/components/bias-anchoring/bias-anchoring.js +1 -1
- package/dist/components/bias-authority/bias-authority.js +1 -1
- package/dist/components/bias-commitment/bias-commitment.js +1 -1
- package/dist/components/bias-reciprocity/bias-reciprocity.js +1 -1
- package/dist/components/bias-scarcity/bias-scarcity.js +1 -1
- package/dist/components/bias-social-proof/bias-social-proof.js +1 -1
- package/dist/components/cg-accordion/cg-accordion.d.ts.map +1 -1
- package/dist/components/cg-accordion/cg-accordion.js +51 -43
- package/dist/components/cg-accordion/cg-accordion.js.map +1 -1
- package/dist/components/cg-alert-dialog/cg-alert-dialog.js +18 -18
- package/dist/components/cg-alert-dialog/cg-alert-dialog.js.map +1 -1
- package/dist/components/cg-aspect-ratio/cg-aspect-ratio.d.ts.map +1 -1
- package/dist/components/cg-aspect-ratio/cg-aspect-ratio.js +25 -21
- package/dist/components/cg-aspect-ratio/cg-aspect-ratio.js.map +1 -1
- package/dist/components/cg-autocomplete/cg-autocomplete.d.ts +1 -0
- package/dist/components/cg-autocomplete/cg-autocomplete.d.ts.map +1 -1
- package/dist/components/cg-autocomplete/cg-autocomplete.js +59 -43
- package/dist/components/cg-autocomplete/cg-autocomplete.js.map +1 -1
- package/dist/components/cg-avatar/cg-avatar.d.ts.map +1 -1
- package/dist/components/cg-avatar/cg-avatar.js +24 -24
- package/dist/components/cg-avatar/cg-avatar.js.map +1 -1
- package/dist/components/cg-avatar-group/cg-avatar-group.d.ts.map +1 -1
- package/dist/components/cg-avatar-group/cg-avatar-group.js +18 -12
- package/dist/components/cg-avatar-group/cg-avatar-group.js.map +1 -1
- package/dist/components/cg-badge/cg-badge.d.ts.map +1 -1
- package/dist/components/cg-badge/cg-badge.js +26 -20
- package/dist/components/cg-badge/cg-badge.js.map +1 -1
- package/dist/components/cg-badge-group/cg-badge-group.d.ts +0 -1
- package/dist/components/cg-badge-group/cg-badge-group.d.ts.map +1 -1
- package/dist/components/cg-badge-group/cg-badge-group.js +31 -29
- package/dist/components/cg-badge-group/cg-badge-group.js.map +1 -1
- package/dist/components/cg-breadcrumbs/cg-breadcrumbs.js +21 -21
- package/dist/components/cg-breadcrumbs/cg-breadcrumbs.js.map +1 -1
- package/dist/components/cg-button/cg-button.d.ts +5 -71
- package/dist/components/cg-button/cg-button.d.ts.map +1 -1
- package/dist/components/cg-button/cg-button.js +63 -172
- package/dist/components/cg-button/cg-button.js.map +1 -1
- package/dist/components/cg-button-group/cg-button-group.d.ts +2 -0
- package/dist/components/cg-button-group/cg-button-group.d.ts.map +1 -1
- package/dist/components/cg-button-group/cg-button-group.js +43 -29
- package/dist/components/cg-button-group/cg-button-group.js.map +1 -1
- package/dist/components/cg-calendar/cg-calendar.d.ts +4 -0
- package/dist/components/cg-calendar/cg-calendar.d.ts.map +1 -1
- package/dist/components/cg-calendar/cg-calendar.js +28 -12
- package/dist/components/cg-calendar/cg-calendar.js.map +1 -1
- package/dist/components/cg-callout/cg-callout.d.ts.map +1 -1
- package/dist/components/cg-callout/cg-callout.js +49 -48
- package/dist/components/cg-callout/cg-callout.js.map +1 -1
- package/dist/components/cg-card/cg-card.d.ts +9 -22
- package/dist/components/cg-card/cg-card.d.ts.map +1 -1
- package/dist/components/cg-card/cg-card.js +28 -56
- package/dist/components/cg-card/cg-card.js.map +1 -1
- package/dist/components/cg-carousel/cg-carousel.d.ts.map +1 -1
- package/dist/components/cg-carousel/cg-carousel.js +19 -13
- package/dist/components/cg-carousel/cg-carousel.js.map +1 -1
- package/dist/components/cg-chart/cg-chart.d.ts.map +1 -1
- package/dist/components/cg-chart/cg-chart.js +63 -58
- package/dist/components/cg-chart/cg-chart.js.map +1 -1
- package/dist/components/cg-checkbox/cg-checkbox.d.ts +0 -6
- package/dist/components/cg-checkbox/cg-checkbox.d.ts.map +1 -1
- package/dist/components/cg-checkbox/cg-checkbox.js +51 -51
- package/dist/components/cg-checkbox/cg-checkbox.js.map +1 -1
- package/dist/components/cg-chip/cg-chip.js +31 -31
- package/dist/components/cg-chip/cg-chip.js.map +1 -1
- package/dist/components/cg-code-block/cg-code-block.d.ts.map +1 -1
- package/dist/components/cg-code-block/cg-code-block.js +36 -34
- package/dist/components/cg-code-block/cg-code-block.js.map +1 -1
- package/dist/components/cg-collapsible/cg-collapsible.d.ts.map +1 -1
- package/dist/components/cg-collapsible/cg-collapsible.js +23 -18
- package/dist/components/cg-collapsible/cg-collapsible.js.map +1 -1
- package/dist/components/cg-color-picker/cg-color-picker.d.ts +3 -0
- package/dist/components/cg-color-picker/cg-color-picker.d.ts.map +1 -1
- package/dist/components/cg-color-picker/cg-color-picker.js +189 -91
- package/dist/components/cg-color-picker/cg-color-picker.js.map +1 -1
- package/dist/components/cg-combobox/cg-combobox.d.ts.map +1 -1
- package/dist/components/cg-combobox/cg-combobox.js +13 -6
- package/dist/components/cg-combobox/cg-combobox.js.map +1 -1
- package/dist/components/cg-command/cg-command.d.ts.map +1 -1
- package/dist/components/cg-command/cg-command.js +52 -45
- package/dist/components/cg-command/cg-command.js.map +1 -1
- package/dist/components/cg-context-menu/cg-context-menu.js +1 -1
- package/dist/components/cg-date-picker/cg-date-picker.d.ts.map +1 -1
- package/dist/components/cg-date-picker/cg-date-picker.js +36 -34
- package/dist/components/cg-date-picker/cg-date-picker.js.map +1 -1
- package/dist/components/cg-date-range-picker/cg-date-range-picker.d.ts +2 -0
- package/dist/components/cg-date-range-picker/cg-date-range-picker.d.ts.map +1 -1
- package/dist/components/cg-date-range-picker/cg-date-range-picker.js +12 -8
- package/dist/components/cg-date-range-picker/cg-date-range-picker.js.map +1 -1
- package/dist/components/cg-date-time-picker/cg-date-time-picker.d.ts.map +1 -1
- package/dist/components/cg-date-time-picker/cg-date-time-picker.js +3 -1
- package/dist/components/cg-date-time-picker/cg-date-time-picker.js.map +1 -1
- package/dist/components/cg-drawer/cg-drawer.js +3 -3
- package/dist/components/cg-drawer/cg-drawer.js.map +1 -1
- package/dist/components/cg-dropdown/cg-dropdown.d.ts.map +1 -1
- package/dist/components/cg-dropdown/cg-dropdown.js +1 -2
- package/dist/components/cg-dropdown/cg-dropdown.js.map +1 -1
- package/dist/components/cg-empty-state/cg-empty-state.d.ts +3 -24
- package/dist/components/cg-empty-state/cg-empty-state.d.ts.map +1 -1
- package/dist/components/cg-empty-state/cg-empty-state.js +51 -74
- package/dist/components/cg-empty-state/cg-empty-state.js.map +1 -1
- package/dist/components/cg-file-input/cg-file-input.d.ts.map +1 -1
- package/dist/components/cg-file-input/cg-file-input.js +9 -10
- package/dist/components/cg-file-input/cg-file-input.js.map +1 -1
- package/dist/components/cg-focus-scope/cg-focus-scope.js +1 -1
- package/dist/components/cg-follow-up/cg-follow-up.d.ts.map +1 -1
- package/dist/components/cg-follow-up/cg-follow-up.js +6 -7
- package/dist/components/cg-follow-up/cg-follow-up.js.map +1 -1
- package/dist/components/cg-form/cg-form.js +17 -17
- package/dist/components/cg-form/cg-form.js.map +1 -1
- package/dist/components/cg-hover-card/cg-hover-card.d.ts +1 -0
- package/dist/components/cg-hover-card/cg-hover-card.d.ts.map +1 -1
- package/dist/components/cg-hover-card/cg-hover-card.js +37 -32
- package/dist/components/cg-hover-card/cg-hover-card.js.map +1 -1
- package/dist/components/cg-icon/cg-icon.d.ts.map +1 -1
- package/dist/components/cg-icon/cg-icon.js +44 -37
- package/dist/components/cg-icon/cg-icon.js.map +1 -1
- package/dist/components/cg-image/cg-image.js +2 -2
- package/dist/components/cg-image/cg-image.js.map +1 -1
- package/dist/components/cg-image-block/cg-image-block.js +3 -3
- package/dist/components/cg-image-block/cg-image-block.js.map +1 -1
- package/dist/components/cg-image-gallery/cg-image-gallery.js +20 -20
- package/dist/components/cg-image-gallery/cg-image-gallery.js.map +1 -1
- package/dist/components/cg-input/cg-input.js +3 -3
- package/dist/components/cg-input/cg-input.js.map +1 -1
- package/dist/components/cg-kbd/cg-kbd.d.ts.map +1 -1
- package/dist/components/cg-kbd/cg-kbd.js +26 -24
- package/dist/components/cg-kbd/cg-kbd.js.map +1 -1
- package/dist/components/cg-label/cg-label.d.ts +4 -1
- package/dist/components/cg-label/cg-label.d.ts.map +1 -1
- package/dist/components/cg-label/cg-label.js +44 -41
- package/dist/components/cg-label/cg-label.js.map +1 -1
- package/dist/components/cg-link/cg-link.js +23 -23
- package/dist/components/cg-link/cg-link.js.map +1 -1
- package/dist/components/cg-list/cg-list.js +5 -5
- package/dist/components/cg-list/cg-list.js.map +1 -1
- package/dist/components/cg-listbox/cg-listbox.d.ts.map +1 -1
- package/dist/components/cg-listbox/cg-listbox.js +46 -40
- package/dist/components/cg-listbox/cg-listbox.js.map +1 -1
- package/dist/components/cg-markdown/cg-markdown.d.ts +2 -0
- package/dist/components/cg-markdown/cg-markdown.d.ts.map +1 -1
- package/dist/components/cg-markdown/cg-markdown.js +171 -121
- package/dist/components/cg-markdown/cg-markdown.js.map +1 -1
- package/dist/components/cg-menubar/cg-menubar.d.ts +6 -0
- package/dist/components/cg-menubar/cg-menubar.d.ts.map +1 -1
- package/dist/components/cg-menubar/cg-menubar.js +59 -47
- package/dist/components/cg-menubar/cg-menubar.js.map +1 -1
- package/dist/components/cg-meter/cg-meter.d.ts.map +1 -1
- package/dist/components/cg-meter/cg-meter.js +76 -76
- package/dist/components/cg-meter/cg-meter.js.map +1 -1
- package/dist/components/cg-metric-card/cg-metric-card.d.ts.map +1 -1
- package/dist/components/cg-metric-card/cg-metric-card.js +65 -68
- package/dist/components/cg-metric-card/cg-metric-card.js.map +1 -1
- package/dist/components/cg-modal/cg-modal.d.ts +3 -0
- package/dist/components/cg-modal/cg-modal.d.ts.map +1 -1
- package/dist/components/cg-modal/cg-modal.js +82 -83
- package/dist/components/cg-modal/cg-modal.js.map +1 -1
- package/dist/components/cg-navbar/cg-navbar.d.ts +1 -1
- package/dist/components/cg-navbar/cg-navbar.d.ts.map +1 -1
- package/dist/components/cg-navbar/cg-navbar.js +64 -55
- package/dist/components/cg-navbar/cg-navbar.js.map +1 -1
- package/dist/components/cg-navigation-menu/cg-navigation-menu.d.ts +3 -0
- package/dist/components/cg-navigation-menu/cg-navigation-menu.d.ts.map +1 -1
- package/dist/components/cg-navigation-menu/cg-navigation-menu.js +38 -26
- package/dist/components/cg-navigation-menu/cg-navigation-menu.js.map +1 -1
- package/dist/components/cg-number-input/cg-number-input.d.ts +1 -0
- package/dist/components/cg-number-input/cg-number-input.d.ts.map +1 -1
- package/dist/components/cg-number-input/cg-number-input.js +90 -77
- package/dist/components/cg-number-input/cg-number-input.js.map +1 -1
- package/dist/components/cg-otp-input/cg-otp-input.d.ts.map +1 -1
- package/dist/components/cg-otp-input/cg-otp-input.js +70 -60
- package/dist/components/cg-otp-input/cg-otp-input.js.map +1 -1
- package/dist/components/cg-pagination/cg-pagination.d.ts +2 -0
- package/dist/components/cg-pagination/cg-pagination.d.ts.map +1 -1
- package/dist/components/cg-pagination/cg-pagination.js +50 -49
- package/dist/components/cg-pagination/cg-pagination.js.map +1 -1
- package/dist/components/cg-password-input/cg-password-input.d.ts.map +1 -1
- package/dist/components/cg-password-input/cg-password-input.js +42 -34
- package/dist/components/cg-password-input/cg-password-input.js.map +1 -1
- package/dist/components/cg-phone-input/cg-phone-input.d.ts.map +1 -1
- package/dist/components/cg-phone-input/cg-phone-input.js +18 -14
- package/dist/components/cg-phone-input/cg-phone-input.js.map +1 -1
- package/dist/components/cg-popover/cg-popover.d.ts +12 -2
- package/dist/components/cg-popover/cg-popover.d.ts.map +1 -1
- package/dist/components/cg-popover/cg-popover.js +90 -63
- package/dist/components/cg-popover/cg-popover.js.map +1 -1
- package/dist/components/cg-portal/cg-portal.d.ts.map +1 -1
- package/dist/components/cg-portal/cg-portal.js +42 -41
- package/dist/components/cg-portal/cg-portal.js.map +1 -1
- package/dist/components/cg-progress-bar/cg-progress-bar.d.ts.map +1 -1
- package/dist/components/cg-progress-bar/cg-progress-bar.js +25 -25
- package/dist/components/cg-progress-bar/cg-progress-bar.js.map +1 -1
- package/dist/components/cg-radio/cg-radio.d.ts +10 -0
- package/dist/components/cg-radio/cg-radio.d.ts.map +1 -1
- package/dist/components/cg-radio/cg-radio.js +59 -48
- package/dist/components/cg-radio/cg-radio.js.map +1 -1
- package/dist/components/cg-radio-group/cg-radio-group.d.ts +6 -0
- package/dist/components/cg-radio-group/cg-radio-group.d.ts.map +1 -1
- package/dist/components/cg-radio-group/cg-radio-group.js +50 -37
- package/dist/components/cg-radio-group/cg-radio-group.js.map +1 -1
- package/dist/components/cg-rating/cg-rating.d.ts.map +1 -1
- package/dist/components/cg-rating/cg-rating.js +56 -54
- package/dist/components/cg-rating/cg-rating.js.map +1 -1
- package/dist/components/cg-resizable/cg-resizable.d.ts +4 -1
- package/dist/components/cg-resizable/cg-resizable.d.ts.map +1 -1
- package/dist/components/cg-resizable/cg-resizable.js +45 -35
- package/dist/components/cg-resizable/cg-resizable.js.map +1 -1
- package/dist/components/cg-scroll-area/cg-scroll-area.d.ts +8 -0
- package/dist/components/cg-scroll-area/cg-scroll-area.d.ts.map +1 -1
- package/dist/components/cg-scroll-area/cg-scroll-area.js +64 -21
- package/dist/components/cg-scroll-area/cg-scroll-area.js.map +1 -1
- package/dist/components/cg-segmented-control/cg-segmented-control.d.ts +4 -0
- package/dist/components/cg-segmented-control/cg-segmented-control.d.ts.map +1 -1
- package/dist/components/cg-segmented-control/cg-segmented-control.js +75 -39
- package/dist/components/cg-segmented-control/cg-segmented-control.js.map +1 -1
- package/dist/components/cg-select/cg-select.d.ts +4 -2
- package/dist/components/cg-select/cg-select.d.ts.map +1 -1
- package/dist/components/cg-select/cg-select.js +96 -58
- package/dist/components/cg-select/cg-select.js.map +1 -1
- package/dist/components/cg-separator/cg-separator.d.ts +1 -2
- package/dist/components/cg-separator/cg-separator.d.ts.map +1 -1
- package/dist/components/cg-separator/cg-separator.js +5 -8
- package/dist/components/cg-separator/cg-separator.js.map +1 -1
- package/dist/components/cg-sheet/cg-sheet.d.ts +4 -0
- package/dist/components/cg-sheet/cg-sheet.d.ts.map +1 -1
- package/dist/components/cg-sheet/cg-sheet.js +80 -43
- package/dist/components/cg-sheet/cg-sheet.js.map +1 -1
- package/dist/components/cg-sidebar/cg-sidebar.d.ts.map +1 -1
- package/dist/components/cg-sidebar/cg-sidebar.js +82 -19
- package/dist/components/cg-sidebar/cg-sidebar.js.map +1 -1
- package/dist/components/cg-skeleton/cg-skeleton.d.ts +7 -1
- package/dist/components/cg-skeleton/cg-skeleton.d.ts.map +1 -1
- package/dist/components/cg-skeleton/cg-skeleton.js +61 -63
- package/dist/components/cg-skeleton/cg-skeleton.js.map +1 -1
- package/dist/components/cg-slider/cg-slider.d.ts.map +1 -1
- package/dist/components/cg-slider/cg-slider.js +80 -73
- package/dist/components/cg-slider/cg-slider.js.map +1 -1
- package/dist/components/cg-spinner/cg-spinner.d.ts.map +1 -1
- package/dist/components/cg-spinner/cg-spinner.js +10 -19
- package/dist/components/cg-spinner/cg-spinner.js.map +1 -1
- package/dist/components/cg-split-button/cg-split-button.d.ts.map +1 -1
- package/dist/components/cg-split-button/cg-split-button.js +64 -50
- package/dist/components/cg-split-button/cg-split-button.js.map +1 -1
- package/dist/components/cg-stack/cg-stack.js +1 -1
- package/dist/components/cg-steps/cg-steps.js +1 -1
- package/dist/components/cg-switch/cg-switch.d.ts +3 -0
- package/dist/components/cg-switch/cg-switch.d.ts.map +1 -1
- package/dist/components/cg-switch/cg-switch.js +39 -47
- package/dist/components/cg-switch/cg-switch.js.map +1 -1
- package/dist/components/cg-table/cg-table.d.ts +0 -7
- package/dist/components/cg-table/cg-table.d.ts.map +1 -1
- package/dist/components/cg-table/cg-table.js +50 -47
- package/dist/components/cg-table/cg-table.js.map +1 -1
- package/dist/components/cg-tabs/cg-tabs.js +1 -1
- package/dist/components/cg-tag-input/cg-tag-input.js +1 -1
- package/dist/components/cg-text/cg-text.js +1 -1
- package/dist/components/cg-textarea/cg-textarea.js +1 -1
- package/dist/components/cg-time-picker/cg-time-picker.js +1 -1
- package/dist/components/cg-toaster/cg-toaster.js +3 -3
- package/dist/components/cg-toaster/cg-toaster.js.map +1 -1
- package/dist/components/cg-toggle/cg-toggle.js +1 -1
- package/dist/components/cg-toggle-group/cg-toggle-group.js +1 -1
- package/dist/components/cg-tree-view/cg-tree-view.js +1 -1
- package/dist/foundation.d.ts +0 -16
- package/dist/foundation.d.ts.map +1 -1
- package/dist/foundation.js +174 -206
- package/dist/foundation.js.map +1 -1
- package/dist/index.d.ts +1 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +100 -132
- package/dist/index.js.map +1 -1
- package/dist/utils/focus-trap.d.ts +19 -2
- package/dist/utils/focus-trap.d.ts.map +1 -1
- package/package.json +6 -810
- package/dist/chunks/focus-trap-BdRNhSPD.js +0 -53
- package/dist/chunks/focus-trap-BdRNhSPD.js.map +0 -1
- package/dist/components/cg-app-shell/cg-app-shell.d.ts +0 -54
- package/dist/components/cg-app-shell/cg-app-shell.d.ts.map +0 -1
- package/dist/components/cg-app-shell/cg-app-shell.js +0 -135
- package/dist/components/cg-app-shell/cg-app-shell.js.map +0 -1
- package/dist/components/cg-auth-shell/cg-auth-shell.d.ts +0 -61
- package/dist/components/cg-auth-shell/cg-auth-shell.d.ts.map +0 -1
- package/dist/components/cg-auth-shell/cg-auth-shell.js +0 -163
- package/dist/components/cg-auth-shell/cg-auth-shell.js.map +0 -1
- package/dist/components/cg-definition-list/cg-definition-list.d.ts +0 -99
- package/dist/components/cg-definition-list/cg-definition-list.d.ts.map +0 -1
- package/dist/components/cg-definition-list/cg-definition-list.js +0 -332
- package/dist/components/cg-definition-list/cg-definition-list.js.map +0 -1
- package/dist/components/cg-draggable/cg-draggable.d.ts +0 -53
- package/dist/components/cg-draggable/cg-draggable.d.ts.map +0 -1
- package/dist/components/cg-draggable/cg-draggable.js +0 -136
- package/dist/components/cg-draggable/cg-draggable.js.map +0 -1
- package/dist/components/cg-droppable/cg-droppable.d.ts +0 -57
- package/dist/components/cg-droppable/cg-droppable.d.ts.map +0 -1
- package/dist/components/cg-droppable/cg-droppable.js +0 -114
- package/dist/components/cg-droppable/cg-droppable.js.map +0 -1
- package/dist/components/cg-filter-bar/cg-filter-bar.d.ts +0 -50
- package/dist/components/cg-filter-bar/cg-filter-bar.d.ts.map +0 -1
- package/dist/components/cg-filter-bar/cg-filter-bar.js +0 -115
- package/dist/components/cg-filter-bar/cg-filter-bar.js.map +0 -1
- package/dist/components/cg-filter-chip/cg-filter-chip.d.ts +0 -55
- package/dist/components/cg-filter-chip/cg-filter-chip.d.ts.map +0 -1
- package/dist/components/cg-filter-chip/cg-filter-chip.js +0 -213
- package/dist/components/cg-filter-chip/cg-filter-chip.js.map +0 -1
- package/dist/components/cg-kanban/cg-kanban.d.ts +0 -44
- package/dist/components/cg-kanban/cg-kanban.d.ts.map +0 -1
- package/dist/components/cg-kanban/cg-kanban.js +0 -86
- package/dist/components/cg-kanban/cg-kanban.js.map +0 -1
- package/dist/components/cg-kanban-column/cg-kanban-column.d.ts +0 -58
- package/dist/components/cg-kanban-column/cg-kanban-column.d.ts.map +0 -1
- package/dist/components/cg-kanban-column/cg-kanban-column.js +0 -144
- package/dist/components/cg-kanban-column/cg-kanban-column.js.map +0 -1
- package/dist/components/cg-mfa-prompt/cg-mfa-prompt.d.ts +0 -77
- package/dist/components/cg-mfa-prompt/cg-mfa-prompt.d.ts.map +0 -1
- package/dist/components/cg-mfa-prompt/cg-mfa-prompt.js +0 -245
- package/dist/components/cg-mfa-prompt/cg-mfa-prompt.js.map +0 -1
- package/dist/components/cg-search-input/cg-search-input.d.ts +0 -62
- package/dist/components/cg-search-input/cg-search-input.d.ts.map +0 -1
- package/dist/components/cg-search-input/cg-search-input.js +0 -106
- package/dist/components/cg-search-input/cg-search-input.js.map +0 -1
- package/dist/components/cg-sortable/cg-sortable.d.ts +0 -72
- package/dist/components/cg-sortable/cg-sortable.d.ts.map +0 -1
- package/dist/components/cg-sortable/cg-sortable.js +0 -177
- package/dist/components/cg-sortable/cg-sortable.js.map +0 -1
- package/dist/components/cg-theme/cg-theme.d.ts +0 -82
- package/dist/components/cg-theme/cg-theme.d.ts.map +0 -1
- package/dist/components/cg-theme/cg-theme.js +0 -91
- package/dist/components/cg-theme/cg-theme.js.map +0 -1
- package/dist/components/cg-theme-editor/cg-theme-editor.d.ts +0 -98
- package/dist/components/cg-theme-editor/cg-theme-editor.d.ts.map +0 -1
- package/dist/components/cg-theme-editor/cg-theme-editor.js +0 -341
- package/dist/components/cg-theme-editor/cg-theme-editor.js.map +0 -1
- package/dist/components/cg-timeline/cg-timeline.d.ts +0 -70
- package/dist/components/cg-timeline/cg-timeline.d.ts.map +0 -1
- package/dist/components/cg-timeline/cg-timeline.js +0 -131
- package/dist/components/cg-timeline/cg-timeline.js.map +0 -1
- package/dist/components/cg-timeline-event/cg-timeline-event.d.ts +0 -59
- package/dist/components/cg-timeline-event/cg-timeline-event.d.ts.map +0 -1
- package/dist/components/cg-timeline-event/cg-timeline-event.js +0 -190
- package/dist/components/cg-timeline-event/cg-timeline-event.js.map +0 -1
- package/dist/utils/drag-manager.d.ts +0 -40
- package/dist/utils/drag-manager.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cg-follow-up.js","sources":["../../../src/components/cg-follow-up/cg-follow-up.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, shimmerKeyframes } from '../../styles/index.js';\n\n/**\n * <cg-follow-up> — Suggestion chips for chat conversations.\n *\n * @fires {CustomEvent<{text: string}>} cg-follow-up-click - When a suggestion is clicked\n */\n\nexport interface FollowUpItem {\n text: string;\n icon?: string;\n}\n\n@customElement('cg-follow-up')\nexport class CgFollowUp extends LitElement {\n static override styles = [hostBlock, reducedMotion, shimmerKeyframes, css`\n :host {\n display: block;\n font-family: var(--cg-font-family-primary);\n }\n\n .header {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-4);\n margin-bottom: var(--cg-spacing-8);\n }\n .header-icon {\n color: var(--cg-color-action-primary-background-default);\n }\n .label {\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-bold);\n color: var(--cg-color-action-primary-background-default);\n text-transform: uppercase;\n letter-spacing: 0.06em;\n }\n\n .chips {\n display: flex;\n flex-wrap: wrap;\n gap: var(--cg-spacing-8);\n }\n\n /* ── Chip variant (default) ── */\n button {\n padding: var(--cg-spacing-8) var(--cg-spacing-16);\n border-radius: var(--cg-border-radius-full);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-container-border);\n background: var(--cg-color-surface-container-background);\n color: var(--cg-color-surface-base-text);\n font: inherit;\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-medium);\n cursor: pointer;\n transition:\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n white-space: nowrap;\n line-height: var(--cg-line-height-snug);\n display: inline-flex;\n align-items: center;\n gap: var(--cg-spacing-6);\n animation: fadeIn var(--cg-transition-duration-fast) var(--cg-transition-easing-ease-out) both;\n animation-delay: calc(var(--item-index, 0) * 60ms);\n }\n\n @keyframes fadeIn {\n from { opacity: 0; transform: translateY(var(--cg-spacing-6)); }\n to { opacity: 1; transform: translateY(0); }\n }\n\n button:hover:not(:disabled) {\n border-color: var(--cg-color-action-primary-background-default);\n color: var(--cg-color-action-primary-background-default);\n background: var(--cg-color-action-tertiary-background-hover);\n }\n button:active:not(:disabled) { transform: scale(var(--cg-interaction-press-scale)); }\n button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong);\n }\n button:disabled { opacity: 0.4; cursor: not-allowed; }\n\n .icon {\n color: var(--cg-color-surface-container-outlined);\n }\n button:hover:not(:disabled) .icon {\n color: var(--cg-color-action-primary-background-default);\n }\n\n /* ── Card variant ── */\n :host([variant=\"cards\"]) button {\n border-radius: var(--cg-border-radius-100);\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n flex-direction: column;\n align-items: flex-start;\n gap: var(--cg-spacing-4);\n white-space: normal;\n text-align: left;\n min-width: 140px;\n }\n :host([variant=\"cards\"]) .icon {\n color: var(--cg-color-action-primary-background-default);\n opacity: 0.7;\n }\n\n /* ── Button variant ── */\n :host([variant=\"buttons\"]) button {\n border-radius: var(--cg-border-radius-100);\n padding: var(--cg-spacing-6) var(--cg-spacing-16);\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-semibold);\n }\n\n /* ── Overflow \"+N more\" ── */\n .more-badge {\n padding: var(--cg-spacing-8) var(--cg-spacing-16);\n border-radius: var(--cg-border-radius-full);\n border: var(--cg-border-width-50) dashed var(--cg-color-surface-container-border);\n background: transparent;\n color: var(--cg-color-surface-container-outlined);\n font: inherit;\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-semibold);\n cursor: pointer;\n transition:\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .more-badge:hover {\n border-color: var(--cg-color-action-primary-background-default);\n color: var(--cg-color-action-primary-background-default);\n }\n\n /* ── Loading shimmer ── */\n .shimmer {\n height: var(--cg-spacing-40);\n border-radius: var(--cg-border-radius-full);\n background: linear-gradient(\n 90deg,\n var(--cg-color-surface-container-background) 25%,\n var(--cg-color-surface-container-border) 50%,\n var(--cg-color-surface-container-background) 75%\n );\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n }\n `];\n\n @property({ type: Array }) items: (string | FollowUpItem)[] = [];\n @property() label = 'Suggested';\n @property({ type: Boolean }) disabled = false;\n @property({ type: Boolean }) loading = false;\n @property({ type: Boolean }) hideLabel = false;\n @property({ type: String, reflect: true }) variant: 'chips' | 'cards' | 'buttons' = 'chips';\n @property({ type: Number }) maxVisible: number = 0;\n\n @state() private _showAll = false;\n\n private _getText(item: string | FollowUpItem): string {\n return typeof item === 'string' ? item : item.text;\n }\n\n private _getIcon(item: string | FollowUpItem): string | undefined {\n return typeof item === 'string' ? undefined : item.icon;\n }\n\n private _handleClick(item: string | FollowUpItem) {\n if (this.disabled) return;\n this.dispatchEvent(new CustomEvent('cg-follow-up-click', {\n detail: { text: this._getText(item) },\n bubbles: true,\n composed: true,\n }));\n }\n\n private _handleShowAll() {\n this._showAll = true;\n }\n\n override render() {\n const visibleItems = this.maxVisible > 0 && !this._showAll\n ? this.items.slice(0, this.maxVisible)\n : this.items;\n const remaining = this.maxVisible > 0 && !this._showAll\n ? this.items.length - this.maxVisible\n : 0;\n\n const shimmerWidths = [150, 190, 130, 170, 120];\n\n return html`\n ${!this.hideLabel ? html`\n <div class=\"header\">\n <cg-icon class=\"header-icon\" name=\"sparkle\" size=\"sm\"></cg-icon>\n <span class=\"label\">${this.label}</span>\n </div>\n ` : nothing}\n\n <div class=\"chips\" role=\"group\" aria-label=${this.label}>\n ${this.loading\n ? shimmerWidths.slice(0, this.maxVisible || 3).map(w => html`\n <div class=\"shimmer\" style=\"width: ${w}px\"></div>\n `)\n : html`\n ${visibleItems.map((item, i) => {\n const text = this._getText(item);\n const icon = this._getIcon(item);\n return html`\n <button\n style=\"--item-index: ${i}\"\n ?disabled=${this.disabled}\n aria-label=\"Suggestion: ${text}\"\n @click=${() => this._handleClick(item)}\n >\n ${icon ? html`<cg-icon class=\"icon\" name=\"${icon}\" size=\"sm\" aria-hidden=\"true\"></cg-icon>` : nothing}\n ${text}\n </button>\n `;\n })}\n ${remaining > 0 ? html`\n <button class=\"more-badge\" @click=${this._handleShowAll} aria-label=\"Show ${remaining} more suggestions\">\n +${remaining} more\n </button>\n ` : nothing}\n `\n }\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap { 'cg-follow-up': CgFollowUp; }\n}\n"],"names":["CgFollowUp","LitElement","item","visibleItems","remaining","shimmerWidths","html","nothing","w","i","text","icon","hostBlock","reducedMotion","shimmerKeyframes","css","__decorateClass","property","state","customElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cg-follow-up.js","sources":["../../../src/components/cg-follow-up/cg-follow-up.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, shimmerKeyframes, focusRingSingle } from '../../styles/index.js';\n\n/**\n * <cg-follow-up> — Suggestion chips for chat conversations.\n *\n * @fires {CustomEvent<{text: string}>} cg-follow-up-click - When a suggestion is clicked\n */\n\nexport interface FollowUpItem {\n text: string;\n icon?: string;\n}\n\n@customElement('cg-follow-up')\nexport class CgFollowUp extends LitElement {\n static override styles = [hostBlock, reducedMotion, shimmerKeyframes, css`\n :host {\n display: block;\n font-family: var(--cg-font-family-primary);\n }\n\n .header {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-4);\n margin-bottom: var(--cg-spacing-8);\n }\n .header-icon {\n color: var(--cg-color-action-primary-background-default);\n }\n .label {\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-bold);\n color: var(--cg-color-action-primary-background-default);\n text-transform: uppercase;\n letter-spacing: 0.06em;\n }\n\n .chips {\n display: flex;\n flex-wrap: wrap;\n gap: var(--cg-spacing-8);\n }\n\n /* ── Chip variant (default) ── */\n button {\n padding: var(--cg-spacing-8) var(--cg-spacing-16);\n border-radius: var(--cg-border-radius-full);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-container-border);\n background: var(--cg-color-surface-container-background);\n color: var(--cg-color-surface-base-text);\n font: inherit;\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-medium);\n cursor: pointer;\n transition:\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n white-space: nowrap;\n line-height: var(--cg-line-height-snug);\n display: inline-flex;\n align-items: center;\n gap: var(--cg-spacing-6);\n animation: fadeIn var(--cg-transition-duration-fast) var(--cg-transition-easing-ease-out) both;\n animation-delay: calc(var(--item-index, 0) * 60ms);\n }\n\n @keyframes fadeIn {\n from { opacity: 0; transform: translateY(var(--cg-spacing-6)); }\n to { opacity: 1; transform: translateY(0); }\n }\n\n button:hover:not(:disabled) {\n border-color: var(--cg-color-action-primary-background-default);\n color: var(--cg-color-action-primary-background-default);\n background: var(--cg-color-action-tertiary-background-hover);\n }\n button:active:not(:disabled) { transform: scale(var(--cg-interaction-press-scale)); }\n button:focus-visible {\n ${focusRingSingle}\n }\n button:disabled { opacity: 0.4; cursor: not-allowed; }\n\n .icon {\n color: var(--cg-color-surface-container-outlined);\n }\n button:hover:not(:disabled) .icon {\n color: var(--cg-color-action-primary-background-default);\n }\n\n /* ── Card variant ── */\n :host([variant=\"cards\"]) button {\n border-radius: var(--cg-border-radius-100);\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n flex-direction: column;\n align-items: flex-start;\n gap: var(--cg-spacing-4);\n white-space: normal;\n text-align: left;\n min-width: 140px;\n }\n :host([variant=\"cards\"]) .icon {\n color: var(--cg-color-action-primary-background-default);\n opacity: 0.7;\n }\n\n /* ── Button variant ── */\n :host([variant=\"buttons\"]) button {\n border-radius: var(--cg-border-radius-100);\n padding: var(--cg-spacing-6) var(--cg-spacing-16);\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-semibold);\n }\n\n /* ── Overflow \"+N more\" ── */\n .more-badge {\n padding: var(--cg-spacing-8) var(--cg-spacing-16);\n border-radius: var(--cg-border-radius-full);\n border: var(--cg-border-width-50) dashed var(--cg-color-surface-container-border);\n background: transparent;\n color: var(--cg-color-surface-container-outlined);\n font: inherit;\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-semibold);\n cursor: pointer;\n transition:\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .more-badge:hover {\n border-color: var(--cg-color-action-primary-background-default);\n color: var(--cg-color-action-primary-background-default);\n }\n\n /* ── Loading shimmer ── */\n .shimmer {\n height: var(--cg-spacing-40);\n border-radius: var(--cg-border-radius-full);\n background: linear-gradient(\n 90deg,\n var(--cg-color-surface-container-background) 25%,\n var(--cg-color-surface-container-border) 50%,\n var(--cg-color-surface-container-background) 75%\n );\n background-size: 200% 100%;\n animation: shimmer 1.5s infinite;\n }\n `];\n\n @property({ type: Array }) items: (string | FollowUpItem)[] = [];\n @property() label = 'Suggested';\n @property({ type: Boolean }) disabled = false;\n @property({ type: Boolean }) loading = false;\n @property({ type: Boolean }) hideLabel = false;\n @property({ type: String, reflect: true }) variant: 'chips' | 'cards' | 'buttons' = 'chips';\n @property({ type: Number }) maxVisible: number = 0;\n\n @state() private _showAll = false;\n\n private _getText(item: string | FollowUpItem): string {\n return typeof item === 'string' ? item : item.text;\n }\n\n private _getIcon(item: string | FollowUpItem): string | undefined {\n return typeof item === 'string' ? undefined : item.icon;\n }\n\n private _handleClick(item: string | FollowUpItem) {\n if (this.disabled) return;\n this.dispatchEvent(new CustomEvent('cg-follow-up-click', {\n detail: { text: this._getText(item) },\n bubbles: true,\n composed: true,\n }));\n }\n\n private _handleShowAll() {\n this._showAll = true;\n }\n\n override render() {\n const visibleItems = this.maxVisible > 0 && !this._showAll\n ? this.items.slice(0, this.maxVisible)\n : this.items;\n const remaining = this.maxVisible > 0 && !this._showAll\n ? this.items.length - this.maxVisible\n : 0;\n\n const shimmerWidths = [150, 190, 130, 170, 120];\n\n return html`\n ${!this.hideLabel ? html`\n <div class=\"header\">\n <cg-icon class=\"header-icon\" name=\"sparkle\" size=\"sm\"></cg-icon>\n <span class=\"label\">${this.label}</span>\n </div>\n ` : nothing}\n\n <div class=\"chips\" role=\"group\" aria-label=${this.label} aria-busy=${this.loading}>\n ${this.loading\n ? shimmerWidths.slice(0, this.maxVisible || 3).map(w => html`\n <div class=\"shimmer\" style=\"width: ${w}px\"></div>\n `)\n : html`\n ${visibleItems.map((item, i) => {\n const text = this._getText(item);\n const icon = this._getIcon(item);\n return html`\n <button\n style=\"--item-index: ${i}\"\n ?disabled=${this.disabled}\n aria-label=\"Suggestion: ${text}\"\n @click=${() => this._handleClick(item)}\n >\n ${icon ? html`<cg-icon class=\"icon\" name=\"${icon}\" size=\"sm\" aria-hidden=\"true\"></cg-icon>` : nothing}\n ${text}\n </button>\n `;\n })}\n ${remaining > 0 ? html`\n <button class=\"more-badge\" @click=${this._handleShowAll} aria-label=\"Show ${remaining} more suggestions\">\n +${remaining} more\n </button>\n ` : nothing}\n `\n }\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap { 'cg-follow-up': CgFollowUp; }\n}\n"],"names":["CgFollowUp","LitElement","item","visibleItems","remaining","shimmerWidths","html","nothing","w","i","text","icon","hostBlock","reducedMotion","shimmerKeyframes","css","focusRingSingle","__decorateClass","property","state","customElement"],"mappings":"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"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { css as g, LitElement as f, nothing as
|
|
2
|
-
import { property as i, customElement as
|
|
3
|
-
import { h as
|
|
4
|
-
var v = Object.defineProperty, b = Object.getOwnPropertyDescriptor, l = (
|
|
5
|
-
for (var r =
|
|
6
|
-
(c =
|
|
7
|
-
return
|
|
1
|
+
import { css as g, LitElement as f, nothing as d, html as m } from "lit";
|
|
2
|
+
import { property as i, customElement as p } from "lit/decorators.js";
|
|
3
|
+
import { h as u, r as h } from "../../chunks/premium.css-DHekUEUt.js";
|
|
4
|
+
var v = Object.defineProperty, b = Object.getOwnPropertyDescriptor, l = (t, s, a, e) => {
|
|
5
|
+
for (var r = e > 1 ? void 0 : e ? b(s, a) : s, n = t.length - 1, c; n >= 0; n--)
|
|
6
|
+
(c = t[n]) && (r = (e ? c(s, a, r) : c(r)) || r);
|
|
7
|
+
return e && r && v(s, a, r), r;
|
|
8
8
|
};
|
|
9
9
|
let o = class extends f {
|
|
10
10
|
constructor() {
|
|
11
11
|
super(...arguments), this.name = "", this.gap = "md", this.loading = !1, this.errors = [];
|
|
12
12
|
}
|
|
13
|
-
_handleSubmit(
|
|
14
|
-
|
|
13
|
+
_handleSubmit(t) {
|
|
14
|
+
t.preventDefault(), !this.loading && this.dispatchEvent(new CustomEvent("cg-submit", {
|
|
15
15
|
detail: { name: this.name },
|
|
16
16
|
bubbles: !0,
|
|
17
17
|
composed: !0
|
|
@@ -21,8 +21,8 @@ let o = class extends f {
|
|
|
21
21
|
reset() {
|
|
22
22
|
this.shadowRoot?.querySelector("form")?.reset();
|
|
23
23
|
const a = this.shadowRoot?.querySelector("slot")?.assignedElements({ flatten: !0 }) ?? [];
|
|
24
|
-
for (const
|
|
25
|
-
typeof
|
|
24
|
+
for (const e of a)
|
|
25
|
+
typeof e.formResetCallback == "function" && e.formResetCallback(), e.querySelectorAll("*").forEach((r) => {
|
|
26
26
|
typeof r.formResetCallback == "function" && r.formResetCallback();
|
|
27
27
|
});
|
|
28
28
|
this.dispatchEvent(new CustomEvent("cg-reset", { bubbles: !0, composed: !0 }));
|
|
@@ -35,17 +35,17 @@ let o = class extends f {
|
|
|
35
35
|
aria-busy=${this.loading ? "true" : "false"}
|
|
36
36
|
>
|
|
37
37
|
${this.errors.length > 0 ? m`
|
|
38
|
-
<div class="error-summary" role="alert">
|
|
39
|
-
<strong>Please fix the following:</strong>
|
|
40
|
-
<ul>${this.errors.map((
|
|
38
|
+
<div class="error-summary" role="alert" aria-labelledby="cg-form-error-heading">
|
|
39
|
+
<strong id="cg-form-error-heading" role="heading" aria-level="2">Please fix the following:</strong>
|
|
40
|
+
<ul>${this.errors.map((t) => m`<li>${t}</li>`)}</ul>
|
|
41
41
|
</div>
|
|
42
|
-
` :
|
|
42
|
+
` : d}
|
|
43
43
|
<slot></slot>
|
|
44
44
|
</form>
|
|
45
45
|
`;
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
-
o.styles = [
|
|
48
|
+
o.styles = [u, h, g`
|
|
49
49
|
:host {
|
|
50
50
|
display: block;
|
|
51
51
|
font-family: var(--cg-font-family-primary);
|
|
@@ -101,7 +101,7 @@ l([
|
|
|
101
101
|
i({ type: Array })
|
|
102
102
|
], o.prototype, "errors", 2);
|
|
103
103
|
o = l([
|
|
104
|
-
|
|
104
|
+
p("cg-form")
|
|
105
105
|
], o);
|
|
106
106
|
export {
|
|
107
107
|
o as CgForm
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cg-form.js","sources":["../../../src/components/cg-form/cg-form.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\n/**\n * <cg-form> — Form container with submit handling, loading state, and field gap control.\n *\n * Features:\n * - Prevents default submit, emits cg-submit with form name\n * - Loading state disables submit\n * - Configurable gap between fields\n * - Reset method\n * - Keyboard submit on Enter\n */\n@customElement('cg-form')\nexport class CgForm extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n display: block;\n font-family: var(--cg-font-family-primary);\n }\n\n form {\n display: flex;\n flex-direction: column;\n }\n\n /* All slotted children stretch to full width */\n ::slotted(*) {\n width: 100%;\n }\n\n :host([gap=\"sm\"]) form { gap: var(--cg-spacing-8); }\n :host([gap=\"md\"]) form { gap: var(--cg-spacing-16); }\n :host([gap=\"lg\"]) form { gap: var(--cg-spacing-24); }\n\n :host([loading]) form {\n opacity: 0.6;\n pointer-events: none;\n }\n\n .error-summary {\n padding: var(--cg-spacing-12);\n background: var(--cg-color-status-error-background-default);\n border: var(--cg-border-width-50) solid var(--cg-color-status-error-border-default);\n border-radius: var(--cg-border-radius-100);\n color: var(--cg-color-status-error-text-default);\n font-size: var(--cg-font-size-sm);\n line-height: var(--cg-line-height-normal);\n }\n\n .error-summary ul {\n margin: var(--cg-spacing-4) 0 0;\n padding-left: var(--cg-spacing-16);\n }\n .error-summary li {\n margin: var(--cg-spacing-2) 0;\n }\n `];\n\n /** Form name identifier. */\n @property() name = '';\n\n /** Gap between form fields. */\n @property({ reflect: true }) gap: 'sm' | 'md' | 'lg' = 'md';\n\n /** Loading state — disables interactions. */\n @property({ type: Boolean, reflect: true }) loading = false;\n\n /** List of error messages to show in summary. */\n @property({ type: Array }) errors: string[] = [];\n\n private _handleSubmit(e: Event) {\n e.preventDefault();\n if (this.loading) return;\n this.dispatchEvent(new CustomEvent('cg-submit', {\n detail: { name: this.name },\n bubbles: true,\n composed: true,\n }));\n }\n\n /** Programmatic reset — clears inputs via native form reset and slotted custom elements. */\n reset() {\n const form = this.shadowRoot?.querySelector('form');\n form?.reset();\n\n // Reset slotted form-associated custom elements via formResetCallback\n const slot = this.shadowRoot?.querySelector('slot');\n const slotted = slot?.assignedElements({ flatten: true }) ?? [];\n for (const el of slotted) {\n if (typeof (el as any).formResetCallback === 'function') {\n (el as any).formResetCallback();\n }\n // Also check nested children (e.g., wrapper divs containing custom elements)\n el.querySelectorAll('*').forEach((child: Element) => {\n if (typeof (child as any).formResetCallback === 'function') {\n (child as any).formResetCallback();\n }\n });\n }\n\n this.dispatchEvent(new CustomEvent('cg-reset', { bubbles: true, composed: true }));\n }\n\n override render() {\n return html`\n <form\n @submit=${this._handleSubmit}\n novalidate\n aria-busy=${this.loading ? 'true' : 'false'}\n >\n ${this.errors.length > 0 ? html`\n <div class=\"error-summary\" role=\"alert\">\n <strong>Please fix the following:</strong>\n <ul>${this.errors.map(e => html`<li>${e}</li>`)}</ul>\n </div>\n ` : nothing}\n <slot></slot>\n </form>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap { 'cg-form': CgForm; }\n}\n"],"names":["CgForm","LitElement","slotted","el","child","html","nothing","hostBlock","reducedMotion","css","__decorateClass","property","customElement"],"mappings":";;;;;;;;AAeO,IAAMA,IAAN,cAAqBC,EAAW;AAAA,EAAhC,cAAA;AAAA,UAAA,GAAA,SAAA,GA8CO,KAAA,OAAO,IAGU,KAAA,MAA0B,MAGX,KAAA,UAAU,IAG3B,KAAA,SAAmB,CAAA;AAAA,EAAC;AAAA,EAEvC,
|
|
1
|
+
{"version":3,"file":"cg-form.js","sources":["../../../src/components/cg-form/cg-form.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\n/**\n * <cg-form> — Form container with submit handling, loading state, and field gap control.\n *\n * Features:\n * - Prevents default submit, emits cg-submit with form name\n * - Loading state disables submit\n * - Configurable gap between fields\n * - Reset method\n * - Keyboard submit on Enter\n */\n@customElement('cg-form')\nexport class CgForm extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n display: block;\n font-family: var(--cg-font-family-primary);\n }\n\n form {\n display: flex;\n flex-direction: column;\n }\n\n /* All slotted children stretch to full width */\n ::slotted(*) {\n width: 100%;\n }\n\n :host([gap=\"sm\"]) form { gap: var(--cg-spacing-8); }\n :host([gap=\"md\"]) form { gap: var(--cg-spacing-16); }\n :host([gap=\"lg\"]) form { gap: var(--cg-spacing-24); }\n\n :host([loading]) form {\n opacity: 0.6;\n pointer-events: none;\n }\n\n .error-summary {\n padding: var(--cg-spacing-12);\n background: var(--cg-color-status-error-background-default);\n border: var(--cg-border-width-50) solid var(--cg-color-status-error-border-default);\n border-radius: var(--cg-border-radius-100);\n color: var(--cg-color-status-error-text-default);\n font-size: var(--cg-font-size-sm);\n line-height: var(--cg-line-height-normal);\n }\n\n .error-summary ul {\n margin: var(--cg-spacing-4) 0 0;\n padding-left: var(--cg-spacing-16);\n }\n .error-summary li {\n margin: var(--cg-spacing-2) 0;\n }\n `];\n\n /** Form name identifier. */\n @property() name = '';\n\n /** Gap between form fields. */\n @property({ reflect: true }) gap: 'sm' | 'md' | 'lg' = 'md';\n\n /** Loading state — disables interactions. */\n @property({ type: Boolean, reflect: true }) loading = false;\n\n /** List of error messages to show in summary. */\n @property({ type: Array }) errors: string[] = [];\n\n private _handleSubmit(e: Event) {\n e.preventDefault();\n if (this.loading) return;\n this.dispatchEvent(new CustomEvent('cg-submit', {\n detail: { name: this.name },\n bubbles: true,\n composed: true,\n }));\n }\n\n /** Programmatic reset — clears inputs via native form reset and slotted custom elements. */\n reset() {\n const form = this.shadowRoot?.querySelector('form');\n form?.reset();\n\n // Reset slotted form-associated custom elements via formResetCallback\n const slot = this.shadowRoot?.querySelector('slot');\n const slotted = slot?.assignedElements({ flatten: true }) ?? [];\n for (const el of slotted) {\n if (typeof (el as any).formResetCallback === 'function') {\n (el as any).formResetCallback();\n }\n // Also check nested children (e.g., wrapper divs containing custom elements)\n el.querySelectorAll('*').forEach((child: Element) => {\n if (typeof (child as any).formResetCallback === 'function') {\n (child as any).formResetCallback();\n }\n });\n }\n\n this.dispatchEvent(new CustomEvent('cg-reset', { bubbles: true, composed: true }));\n }\n\n override render() {\n return html`\n <form\n @submit=${this._handleSubmit}\n novalidate\n aria-busy=${this.loading ? 'true' : 'false'}\n >\n ${this.errors.length > 0 ? html`\n <div class=\"error-summary\" role=\"alert\" aria-labelledby=\"cg-form-error-heading\">\n <strong id=\"cg-form-error-heading\" role=\"heading\" aria-level=\"2\">Please fix the following:</strong>\n <ul>${this.errors.map(e => html`<li>${e}</li>`)}</ul>\n </div>\n ` : nothing}\n <slot></slot>\n </form>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap { 'cg-form': CgForm; }\n}\n"],"names":["CgForm","LitElement","e","slotted","el","child","html","nothing","hostBlock","reducedMotion","css","__decorateClass","property","customElement"],"mappings":";;;;;;;;AAeO,IAAMA,IAAN,cAAqBC,EAAW;AAAA,EAAhC,cAAA;AAAA,UAAA,GAAA,SAAA,GA8CO,KAAA,OAAO,IAGU,KAAA,MAA0B,MAGX,KAAA,UAAU,IAG3B,KAAA,SAAmB,CAAA;AAAA,EAAC;AAAA,EAEvC,cAAcC,GAAU;AAE9B,IADAA,EAAE,eAAA,GACE,MAAK,WACT,KAAK,cAAc,IAAI,YAAY,aAAa;AAAA,MAC9C,QAAQ,EAAE,MAAM,KAAK,KAAA;AAAA,MACrB,SAAS;AAAA,MACT,UAAU;AAAA,IAAA,CACX,CAAC;AAAA,EACJ;AAAA;AAAA,EAGA,QAAQ;AAEN,IADa,KAAK,YAAY,cAAc,MAAM,GAC5C,MAAA;AAIN,UAAMC,IADO,KAAK,YAAY,cAAc,MAAM,GAC5B,iBAAiB,EAAE,SAAS,GAAA,CAAM,KAAK,CAAA;AAC7D,eAAWC,KAAMD;AACf,MAAI,OAAQC,EAAW,qBAAsB,cAC1CA,EAAW,kBAAA,GAGdA,EAAG,iBAAiB,GAAG,EAAE,QAAQ,CAACC,MAAmB;AACnD,QAAI,OAAQA,EAAc,qBAAsB,cAC7CA,EAAc,kBAAA;AAAA,MAEnB,CAAC;AAGH,SAAK,cAAc,IAAI,YAAY,YAAY,EAAE,SAAS,IAAM,UAAU,GAAA,CAAM,CAAC;AAAA,EACnF;AAAA,EAES,SAAS;AAChB,WAAOC;AAAA;AAAA,kBAEO,KAAK,aAAa;AAAA;AAAA,oBAEhB,KAAK,UAAU,SAAS,OAAO;AAAA;AAAA,UAEzC,KAAK,OAAO,SAAS,IAAIA;AAAA;AAAA;AAAA,kBAGjB,KAAK,OAAO,IAAI,OAAKA,QAAWJ,CAAC,OAAO,CAAC;AAAA;AAAA,YAE/CK,CAAO;AAAA;AAAA;AAAA;AAAA,EAIjB;AACF;AA3GaP,EACK,SAAS,CAACQ,GAAWC,GAAeC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA0CnD;AAGWC,EAAA;AAAA,EAAXC,EAAA;AAAS,GA9CCZ,EA8CC,WAAA,QAAA,CAAA;AAGiBW,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAjDhBZ,EAiDkB,WAAA,OAAA,CAAA;AAGeW,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GApD/BZ,EAoDiC,WAAA,WAAA,CAAA;AAGjBW,EAAA;AAAA,EAA1BC,EAAS,EAAE,MAAM,MAAA,CAAO;AAAA,GAvDdZ,EAuDgB,WAAA,UAAA,CAAA;AAvDhBA,IAANW,EAAA;AAAA,EADNE,EAAc,SAAS;AAAA,GACXb,CAAA;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cg-hover-card.d.ts","sourceRoot":"","sources":["../../../src/components/cg-hover-card/cg-hover-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEtF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,4BAyDnB;IAEyC,IAAI,UAAS;IAC7C,SAAS,EAAE,SAAS,CAAS;IACb,MAAM,SAAM;IACa,SAAS,SAAO;IACf,UAAU,SAAO;IAEvD,OAAO,CAAC,OAAO,CAAe;IAC3B,OAAO,CAAC,UAAU,CAAe;IAEpD,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,kBAAkB,CAA6B;IAE9C,oBAAoB,IAAI,IAAI;IAO5B,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAiBrD,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"cg-hover-card.d.ts","sourceRoot":"","sources":["../../../src/components/cg-hover-card/cg-hover-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEtF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,4BAyDnB;IAEyC,IAAI,UAAS;IAC7C,SAAS,EAAE,SAAS,CAAS;IACb,MAAM,SAAM;IACa,SAAS,SAAO;IACf,UAAU,SAAO;IAEvD,OAAO,CAAC,OAAO,CAAe;IAC3B,OAAO,CAAC,UAAU,CAAe;IAEpD,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,kBAAkB,CAA6B;IAE9C,oBAAoB,IAAI,IAAI;IAO5B,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAiBrD,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,UAAU,CAIhB;IAEO,MAAM;CAyBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,WAAW,CAAC;KAC9B;CACF"}
|
|
@@ -1,29 +1,31 @@
|
|
|
1
|
-
import { css as
|
|
1
|
+
import { css as d, LitElement as p, html as u } from "lit";
|
|
2
2
|
import { property as n, query as h, customElement as g } from "lit/decorators.js";
|
|
3
|
-
import { h as m, r as f } from "../../chunks/premium.css-
|
|
3
|
+
import { h as m, r as f } from "../../chunks/premium.css-DHekUEUt.js";
|
|
4
4
|
import { b as v, c as _ } from "../../chunks/floating-DfsaYJnh.js";
|
|
5
|
-
var y = Object.defineProperty, b = Object.getOwnPropertyDescriptor,
|
|
6
|
-
for (var i = a > 1 ? void 0 : a ? b(
|
|
7
|
-
(c =
|
|
8
|
-
return a && i && y(
|
|
5
|
+
var y = Object.defineProperty, b = Object.getOwnPropertyDescriptor, o = (e, r, s, a) => {
|
|
6
|
+
for (var i = a > 1 ? void 0 : a ? b(r, s) : r, l = e.length - 1, c; l >= 0; l--)
|
|
7
|
+
(c = e[l]) && (i = (a ? c(r, s, i) : c(i)) || i);
|
|
8
|
+
return a && i && y(r, s, i), i;
|
|
9
9
|
};
|
|
10
|
-
let
|
|
10
|
+
let t = class extends p {
|
|
11
11
|
constructor() {
|
|
12
|
-
super(...arguments), this.open = !1, this.placement = "top", this.offset = 12, this.openDelay = 700, this.closeDelay = 300, this._openTimer = null, this._closeTimer = null, this._cleanupAutoUpdate = null
|
|
12
|
+
super(...arguments), this.open = !1, this.placement = "top", this.offset = 12, this.openDelay = 700, this.closeDelay = 300, this._openTimer = null, this._closeTimer = null, this._cleanupAutoUpdate = null, this._onKeydown = (e) => {
|
|
13
|
+
e.key === "Escape" && this.open && (this.open = !1);
|
|
14
|
+
};
|
|
13
15
|
}
|
|
14
16
|
disconnectedCallback() {
|
|
15
17
|
super.disconnectedCallback(), this._openTimer && clearTimeout(this._openTimer), this._closeTimer && clearTimeout(this._closeTimer), this._cleanupAutoUpdate?.();
|
|
16
18
|
}
|
|
17
|
-
updated(
|
|
18
|
-
|
|
19
|
+
updated(e) {
|
|
20
|
+
e.has("open") && (this.open ? (this.dispatchEvent(new CustomEvent("cg-hover-card-open", { bubbles: !0, composed: !0 })), requestAnimationFrame(() => {
|
|
19
21
|
this._triggerEl && this._cardEl && (this._cleanupAutoUpdate = v(this._triggerEl, this._cardEl, () => this._updatePosition()));
|
|
20
22
|
})) : (this.dispatchEvent(new CustomEvent("cg-hover-card-close", { bubbles: !0, composed: !0 })), this._cleanupAutoUpdate?.(), this._cleanupAutoUpdate = null));
|
|
21
23
|
}
|
|
22
24
|
_updatePosition() {
|
|
23
25
|
if (!this._triggerEl || !this._cardEl) return;
|
|
24
|
-
const
|
|
25
|
-
{ top:
|
|
26
|
-
{ width:
|
|
26
|
+
const e = this._triggerEl.getBoundingClientRect(), r = this._cardEl.getBoundingClientRect(), s = _(
|
|
27
|
+
{ top: e.top, left: e.left, width: e.width, height: e.height },
|
|
28
|
+
{ width: r.width, height: r.height },
|
|
27
29
|
{ placement: this.placement, offset: this.offset, flip: !0, shift: !0 }
|
|
28
30
|
);
|
|
29
31
|
this._cardEl.style.top = `${s.y}px`, this._cardEl.style.left = `${s.x}px`;
|
|
@@ -46,22 +48,25 @@ let e = class extends d {
|
|
|
46
48
|
@mouseleave=${this._scheduleClose}
|
|
47
49
|
@focusin=${this._scheduleOpen}
|
|
48
50
|
@focusout=${this._scheduleClose}
|
|
51
|
+
@keydown=${this._onKeydown}
|
|
49
52
|
>
|
|
50
53
|
<slot></slot>
|
|
51
54
|
</div>
|
|
52
55
|
<div
|
|
53
56
|
class="card"
|
|
54
|
-
role="
|
|
57
|
+
role="dialog"
|
|
58
|
+
aria-modal="false"
|
|
55
59
|
?inert=${!this.open}
|
|
56
60
|
@mouseenter=${this._scheduleOpen}
|
|
57
61
|
@mouseleave=${this._scheduleClose}
|
|
62
|
+
@keydown=${this._onKeydown}
|
|
58
63
|
>
|
|
59
64
|
<slot name="content"></slot>
|
|
60
65
|
</div>
|
|
61
66
|
`;
|
|
62
67
|
}
|
|
63
68
|
};
|
|
64
|
-
|
|
69
|
+
t.styles = [m, f, d`
|
|
65
70
|
:host {
|
|
66
71
|
display: inline-block;
|
|
67
72
|
position: relative;
|
|
@@ -119,31 +124,31 @@ e.styles = [m, f, p`
|
|
|
119
124
|
filter: brightness(1.05);
|
|
120
125
|
}
|
|
121
126
|
`];
|
|
122
|
-
|
|
127
|
+
o([
|
|
123
128
|
n({ type: Boolean, reflect: !0 })
|
|
124
|
-
],
|
|
125
|
-
|
|
129
|
+
], t.prototype, "open", 2);
|
|
130
|
+
o([
|
|
126
131
|
n()
|
|
127
|
-
],
|
|
128
|
-
|
|
132
|
+
], t.prototype, "placement", 2);
|
|
133
|
+
o([
|
|
129
134
|
n({ type: Number })
|
|
130
|
-
],
|
|
131
|
-
|
|
135
|
+
], t.prototype, "offset", 2);
|
|
136
|
+
o([
|
|
132
137
|
n({ type: Number, attribute: "open-delay" })
|
|
133
|
-
],
|
|
134
|
-
|
|
138
|
+
], t.prototype, "openDelay", 2);
|
|
139
|
+
o([
|
|
135
140
|
n({ type: Number, attribute: "close-delay" })
|
|
136
|
-
],
|
|
137
|
-
|
|
141
|
+
], t.prototype, "closeDelay", 2);
|
|
142
|
+
o([
|
|
138
143
|
h(".card")
|
|
139
|
-
],
|
|
140
|
-
|
|
144
|
+
], t.prototype, "_cardEl", 2);
|
|
145
|
+
o([
|
|
141
146
|
h(".trigger")
|
|
142
|
-
],
|
|
143
|
-
|
|
147
|
+
], t.prototype, "_triggerEl", 2);
|
|
148
|
+
t = o([
|
|
144
149
|
g("cg-hover-card")
|
|
145
|
-
],
|
|
150
|
+
], t);
|
|
146
151
|
export {
|
|
147
|
-
|
|
152
|
+
t as CgHoverCard
|
|
148
153
|
};
|
|
149
154
|
//# sourceMappingURL=cg-hover-card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cg-hover-card.js","sources":["../../../src/components/cg-hover-card/cg-hover-card.ts"],"sourcesContent":["import { LitElement, html, css } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\nimport { computePosition, autoUpdate, type Placement } from '../../utils/floating.js';\n\n/**\n * @element cg-hover-card\n * Rich hover preview with configurable open/close delays. Useful for user cards,\n * link previews, or any content that benefits from non-intrusive hover.\n *\n * @example\n * ```html\n * <cg-hover-card placement=\"top\">\n * <a href=\"#\">@alice</a>\n * <div slot=\"content\">\n * <strong>Alice Johnson</strong>\n * <p>Senior Engineer</p>\n * </div>\n * </cg-hover-card>\n * ```\n *\n * @slot - Trigger element\n * @slot content - Hover card content\n *\n * @fires {CustomEvent} cg-hover-card-open\n * @fires {CustomEvent} cg-hover-card-close\n */\n@customElement('cg-hover-card')\nexport class CgHoverCard extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n display: inline-block;\n position: relative;\n }\n\n .trigger {\n display: inline-flex;\n }\n\n .card {\n position: fixed;\n z-index: var(--cg-z-index-500);\n width: var(--cg-component-hover-card-width);\n padding: var(--cg-component-hover-card-padding);\n background: var(--cg-color-modal-container-background);\n border: var(--cg-border-width-50) solid var(--cg-color-action-secondary-border-default);\n border-radius: var(--cg-component-hover-card-radius);\n color: var(--cg-color-surface-container-text);\n /* Hover-card sits between popover (sm) and modal (xl) on the elevation scale.\n Lg gives it presence without feeling weighty — matches GitHub/Linear/Vercel norms. */\n box-shadow: var(--cg-shadow-elevation-lg);\n opacity: 0;\n transform: scale(0.94) translateY(var(--cg-spacing-6));\n pointer-events: none;\n will-change: transform, opacity;\n transition:\n opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-default) var(--cg-transition-easing-spring);\n }\n\n :host([open]) .card {\n opacity: 1;\n transform: scale(1) translateY(0);\n pointer-events: auto;\n }\n\n /* Stagger the inner content slightly behind the card chrome so the entrance\n reads as \"card lands, then content settles in\" — feels premium without\n being slow. */\n .card ::slotted(*) {\n opacity: 0;\n transform: translateY(var(--cg-spacing-2));\n transition:\n opacity var(--cg-transition-duration-default) var(--cg-transition-easing-default) 60ms,\n transform var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out) 60ms;\n }\n :host([open]) .card ::slotted(*) {\n opacity: 1;\n transform: translateY(0);\n }\n\n /* Subtle border highlight on hover of the trigger — telegraphs that the\n trigger has a richer interaction beyond a normal link. */\n .trigger:hover ::slotted(*) {\n filter: brightness(1.05);\n }\n `];\n\n @property({ type: Boolean, reflect: true }) open = false;\n @property() placement: Placement = 'top';\n @property({ type: Number }) offset = 12;\n @property({ type: Number, attribute: 'open-delay' }) openDelay = 700;\n @property({ type: Number, attribute: 'close-delay' }) closeDelay = 300;\n\n @query('.card') private _cardEl!: HTMLElement;\n @query('.trigger') private _triggerEl!: HTMLElement;\n\n private _openTimer: number | null = null;\n private _closeTimer: number | null = null;\n private _cleanupAutoUpdate: (() => void) | null = null;\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this._openTimer) clearTimeout(this._openTimer);\n if (this._closeTimer) clearTimeout(this._closeTimer);\n this._cleanupAutoUpdate?.();\n }\n\n override updated(changed: Map<string, unknown>): void {\n if (changed.has('open')) {\n if (this.open) {\n this.dispatchEvent(new CustomEvent('cg-hover-card-open', { bubbles: true, composed: true }));\n requestAnimationFrame(() => {\n if (this._triggerEl && this._cardEl) {\n this._cleanupAutoUpdate = autoUpdate(this._triggerEl, this._cardEl, () => this._updatePosition());\n }\n });\n } else {\n this.dispatchEvent(new CustomEvent('cg-hover-card-close', { bubbles: true, composed: true }));\n this._cleanupAutoUpdate?.();\n this._cleanupAutoUpdate = null;\n }\n }\n }\n\n private _updatePosition(): void {\n if (!this._triggerEl || !this._cardEl) return;\n const triggerRect = this._triggerEl.getBoundingClientRect();\n const cardRect = this._cardEl.getBoundingClientRect();\n const result = computePosition(\n { top: triggerRect.top, left: triggerRect.left, width: triggerRect.width, height: triggerRect.height },\n { width: cardRect.width, height: cardRect.height },\n { placement: this.placement, offset: this.offset, flip: true, shift: true }\n );\n this._cardEl.style.top = `${result.y}px`;\n this._cardEl.style.left = `${result.x}px`;\n }\n\n private _scheduleOpen(): void {\n if (this._closeTimer) { clearTimeout(this._closeTimer); this._closeTimer = null; }\n if (this.open) return;\n this._openTimer = window.setTimeout(() => { this.open = true; }, this.openDelay);\n }\n\n private _scheduleClose(): void {\n if (this._openTimer) { clearTimeout(this._openTimer); this._openTimer = null; }\n if (!this.open) return;\n this._closeTimer = window.setTimeout(() => { this.open = false; }, this.closeDelay);\n }\n\n override render() {\n return html`\n <div\n class=\"trigger\"\n @mouseenter=${this._scheduleOpen}\n @mouseleave=${this._scheduleClose}\n @focusin=${this._scheduleOpen}\n @focusout=${this._scheduleClose}\n >\n <slot></slot>\n </div>\n <div\n class=\"card\"\n role=\"
|
|
1
|
+
{"version":3,"file":"cg-hover-card.js","sources":["../../../src/components/cg-hover-card/cg-hover-card.ts"],"sourcesContent":["import { LitElement, html, css } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\nimport { computePosition, autoUpdate, type Placement } from '../../utils/floating.js';\n\n/**\n * @element cg-hover-card\n * Rich hover preview with configurable open/close delays. Useful for user cards,\n * link previews, or any content that benefits from non-intrusive hover.\n *\n * @example\n * ```html\n * <cg-hover-card placement=\"top\">\n * <a href=\"#\">@alice</a>\n * <div slot=\"content\">\n * <strong>Alice Johnson</strong>\n * <p>Senior Engineer</p>\n * </div>\n * </cg-hover-card>\n * ```\n *\n * @slot - Trigger element\n * @slot content - Hover card content\n *\n * @fires {CustomEvent} cg-hover-card-open\n * @fires {CustomEvent} cg-hover-card-close\n */\n@customElement('cg-hover-card')\nexport class CgHoverCard extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n display: inline-block;\n position: relative;\n }\n\n .trigger {\n display: inline-flex;\n }\n\n .card {\n position: fixed;\n z-index: var(--cg-z-index-500);\n width: var(--cg-component-hover-card-width);\n padding: var(--cg-component-hover-card-padding);\n background: var(--cg-color-modal-container-background);\n border: var(--cg-border-width-50) solid var(--cg-color-action-secondary-border-default);\n border-radius: var(--cg-component-hover-card-radius);\n color: var(--cg-color-surface-container-text);\n /* Hover-card sits between popover (sm) and modal (xl) on the elevation scale.\n Lg gives it presence without feeling weighty — matches GitHub/Linear/Vercel norms. */\n box-shadow: var(--cg-shadow-elevation-lg);\n opacity: 0;\n transform: scale(0.94) translateY(var(--cg-spacing-6));\n pointer-events: none;\n will-change: transform, opacity;\n transition:\n opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-default) var(--cg-transition-easing-spring);\n }\n\n :host([open]) .card {\n opacity: 1;\n transform: scale(1) translateY(0);\n pointer-events: auto;\n }\n\n /* Stagger the inner content slightly behind the card chrome so the entrance\n reads as \"card lands, then content settles in\" — feels premium without\n being slow. */\n .card ::slotted(*) {\n opacity: 0;\n transform: translateY(var(--cg-spacing-2));\n transition:\n opacity var(--cg-transition-duration-default) var(--cg-transition-easing-default) 60ms,\n transform var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out) 60ms;\n }\n :host([open]) .card ::slotted(*) {\n opacity: 1;\n transform: translateY(0);\n }\n\n /* Subtle border highlight on hover of the trigger — telegraphs that the\n trigger has a richer interaction beyond a normal link. */\n .trigger:hover ::slotted(*) {\n filter: brightness(1.05);\n }\n `];\n\n @property({ type: Boolean, reflect: true }) open = false;\n @property() placement: Placement = 'top';\n @property({ type: Number }) offset = 12;\n @property({ type: Number, attribute: 'open-delay' }) openDelay = 700;\n @property({ type: Number, attribute: 'close-delay' }) closeDelay = 300;\n\n @query('.card') private _cardEl!: HTMLElement;\n @query('.trigger') private _triggerEl!: HTMLElement;\n\n private _openTimer: number | null = null;\n private _closeTimer: number | null = null;\n private _cleanupAutoUpdate: (() => void) | null = null;\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this._openTimer) clearTimeout(this._openTimer);\n if (this._closeTimer) clearTimeout(this._closeTimer);\n this._cleanupAutoUpdate?.();\n }\n\n override updated(changed: Map<string, unknown>): void {\n if (changed.has('open')) {\n if (this.open) {\n this.dispatchEvent(new CustomEvent('cg-hover-card-open', { bubbles: true, composed: true }));\n requestAnimationFrame(() => {\n if (this._triggerEl && this._cardEl) {\n this._cleanupAutoUpdate = autoUpdate(this._triggerEl, this._cardEl, () => this._updatePosition());\n }\n });\n } else {\n this.dispatchEvent(new CustomEvent('cg-hover-card-close', { bubbles: true, composed: true }));\n this._cleanupAutoUpdate?.();\n this._cleanupAutoUpdate = null;\n }\n }\n }\n\n private _updatePosition(): void {\n if (!this._triggerEl || !this._cardEl) return;\n const triggerRect = this._triggerEl.getBoundingClientRect();\n const cardRect = this._cardEl.getBoundingClientRect();\n const result = computePosition(\n { top: triggerRect.top, left: triggerRect.left, width: triggerRect.width, height: triggerRect.height },\n { width: cardRect.width, height: cardRect.height },\n { placement: this.placement, offset: this.offset, flip: true, shift: true }\n );\n this._cardEl.style.top = `${result.y}px`;\n this._cardEl.style.left = `${result.x}px`;\n }\n\n private _scheduleOpen(): void {\n if (this._closeTimer) { clearTimeout(this._closeTimer); this._closeTimer = null; }\n if (this.open) return;\n this._openTimer = window.setTimeout(() => { this.open = true; }, this.openDelay);\n }\n\n private _scheduleClose(): void {\n if (this._openTimer) { clearTimeout(this._openTimer); this._openTimer = null; }\n if (!this.open) return;\n this._closeTimer = window.setTimeout(() => { this.open = false; }, this.closeDelay);\n }\n\n private _onKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && this.open) {\n this.open = false;\n }\n };\n\n override render() {\n return html`\n <div\n class=\"trigger\"\n @mouseenter=${this._scheduleOpen}\n @mouseleave=${this._scheduleClose}\n @focusin=${this._scheduleOpen}\n @focusout=${this._scheduleClose}\n @keydown=${this._onKeydown}\n >\n <slot></slot>\n </div>\n <div\n class=\"card\"\n role=\"dialog\"\n aria-modal=\"false\"\n ?inert=${!this.open}\n @mouseenter=${this._scheduleOpen}\n @mouseleave=${this._scheduleClose}\n @keydown=${this._onKeydown}\n >\n <slot name=\"content\"></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-hover-card': CgHoverCard;\n }\n}\n"],"names":["CgHoverCard","LitElement","changed","autoUpdate","triggerRect","cardRect","result","computePosition","html","hostBlock","reducedMotion","css","__decorateClass","property","query","customElement"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cg-icon.d.ts","sourceRoot":"","sources":["../../../src/components/cg-icon/cg-icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA0B,OAAO,EAAE,MAAM,KAAK,CAAC;AAmKlE,qBACa,MAAO,SAAQ,UAAU;IACpC,OAAgB,MAAM,
|
|
1
|
+
{"version":3,"file":"cg-icon.d.ts","sourceRoot":"","sources":["../../../src/components/cg-icon/cg-icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA0B,OAAO,EAAE,MAAM,KAAK,CAAC;AAmKlE,qBACa,MAAO,SAAQ,UAAU;IACpC,OAAgB,MAAM,4BA+CnB;IAEH,8HAA8H;IACjG,IAAI,SAAM;IAEvC,mBAAmB;IACU,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAE3E,oBAAoB;IACS,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAa;IAE3H,yCAAyC;IAC7B,KAAK,SAAM;IAEd,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAW9C,kCAAkC;IAClC,OAAO,CAAC,WAAW;IAInB,wDAAwD;IACxD,OAAO,CAAC,SAAS;IAajB,yCAAyC;YAC3B,aAAa;IA8BlB,MAAM;CA4DhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
|
|
@@ -2,7 +2,7 @@ import { css as z, LitElement as S, nothing as M, svg as C, html as d } from "li
|
|
|
2
2
|
import { property as k, state as b, customElement as L } from "lit/decorators.js";
|
|
3
3
|
import { unsafeSVG as x } from "lit/directives/unsafe-svg.js";
|
|
4
4
|
import { unsafeHTML as A } from "lit/directives/unsafe-html.js";
|
|
5
|
-
import { a as V, r as Z, c as H } from "../../chunks/premium.css-
|
|
5
|
+
import { a as V, r as Z, c as H } from "../../chunks/premium.css-DHekUEUt.js";
|
|
6
6
|
const _ = {
|
|
7
7
|
"home-2-linear": { body: '<g fill="none" stroke="currentColor" stroke-width="1.5"><path d="M2 12.204c0-2.289 0-3.433.52-4.381c.518-.949 1.467-1.537 3.364-2.715l2-1.241C9.889 2.622 10.892 2 12 2s2.11.622 4.116 1.867l2 1.241c1.897 1.178 2.846 1.766 3.365 2.715S22 9.915 22 12.203v1.522c0 3.9 0 5.851-1.172 7.063S17.771 22 14 22h-4c-3.771 0-5.657 0-6.828-1.212S2 17.626 2 13.725z"/><path stroke-linecap="round" d="M12 15v3"/></g>', width: 24, height: 24 },
|
|
8
8
|
"home-2-bold": { body: '<path fill="currentColor" fill-rule="evenodd" d="M2.52 7.823C2 8.77 2 9.915 2 12.203v1.522c0 3.9 0 5.851 1.172 7.063S6.229 22 10 22h4c3.771 0 5.657 0 6.828-1.212S22 17.626 22 13.725v-1.521c0-2.289 0-3.433-.52-4.381c-.518-.949-1.467-1.537-3.364-2.715l-2-1.241C14.111 2.622 13.108 2 12 2s-2.11.622-4.116 1.867l-2 1.241C3.987 6.286 3.038 6.874 2.519 7.823M11.25 18a.75.75 0 0 0 1.5 0v-3a.75.75 0 0 0-1.5 0z" clip-rule="evenodd"/>', width: 24, height: 24 },
|
|
@@ -85,10 +85,10 @@ const _ = {
|
|
|
85
85
|
"bug-linear": { body: '<g fill="none" stroke="currentColor" stroke-width="1.5"><path d="M19 15v-3.062A3.94 3.94 0 0 0 15.063 8H8.936A3.94 3.94 0 0 0 5 11.938V15a7 7 0 1 0 14 0Z"/><path d="M16.5 8.5v-1a4.5 4.5 0 1 0-9 0v1"/><path stroke-linecap="round" d="M19 14h3M5 14H2M14.5 3.5L17 2M9.5 3.5L7 2m13.5 18l-2-.8m2-11.2l-2 .8M3.5 20l2-.8M3.5 8l2 .8M12 21.5V15"/></g>', width: 24, height: 24 },
|
|
86
86
|
"command-linear": { body: '<path fill="none" stroke="currentColor" stroke-width="1.5" d="M8 8h8v8H8zm8 8.001h3a3 3 0 1 1-3 3zm-7.999 0h-3a3 3 0 1 0 3 3zM16 8h3a3 3 0 1 0-3-3zM8.001 8h-3a3 3 0 1 1 3-3z"/>', width: 24, height: 24 }
|
|
87
87
|
};
|
|
88
|
-
var j = Object.defineProperty, $ = Object.getOwnPropertyDescriptor, c = (r, e, l,
|
|
89
|
-
for (var
|
|
90
|
-
(n = r[
|
|
91
|
-
return
|
|
88
|
+
var j = Object.defineProperty, $ = Object.getOwnPropertyDescriptor, c = (r, e, l, o) => {
|
|
89
|
+
for (var t = o > 1 ? void 0 : o ? $(e, l) : e, i = r.length - 1, n; i >= 0; i--)
|
|
90
|
+
(n = r[i]) && (t = (o ? n(e, l, t) : n(t)) || t);
|
|
91
|
+
return o && t && j(e, l, t), t;
|
|
92
92
|
};
|
|
93
93
|
const q = {
|
|
94
94
|
"chevron-down": "M6 9l6 6 6-6",
|
|
@@ -123,7 +123,7 @@ const q = {
|
|
|
123
123
|
"more-vertical": [[12, 5], [12, 12], [12, 19]],
|
|
124
124
|
"more-horizontal": [[5, 12], [12, 12], [19, 12]],
|
|
125
125
|
grip: [[9, 5], [9, 12], [9, 19], [15, 5], [15, 12], [15, 19]]
|
|
126
|
-
},
|
|
126
|
+
}, g = {
|
|
127
127
|
home: "home-2-linear",
|
|
128
128
|
trash: "trash-bin-trash-linear",
|
|
129
129
|
edit: "pen-new-square-linear",
|
|
@@ -180,20 +180,20 @@ function O(r) {
|
|
|
180
180
|
return null;
|
|
181
181
|
}
|
|
182
182
|
if (e.querySelector("parsererror")) return null;
|
|
183
|
-
const
|
|
184
|
-
return
|
|
185
|
-
|
|
186
|
-
const h =
|
|
183
|
+
const o = e.querySelector("svg");
|
|
184
|
+
return o ? (((i) => {
|
|
185
|
+
i.querySelectorAll("script, iframe, object, embed, form, style, foreignObject, use").forEach((s) => s.remove());
|
|
186
|
+
const h = i.querySelectorAll("*"), u = (s) => {
|
|
187
187
|
const y = Array.from(s.attributes);
|
|
188
188
|
for (const p of y) {
|
|
189
|
-
const
|
|
190
|
-
(
|
|
189
|
+
const m = p.name.toLowerCase();
|
|
190
|
+
(m.startsWith("on") || m === "formaction") && s.removeAttribute(p.name);
|
|
191
191
|
const w = p.value.trim().toLowerCase();
|
|
192
|
-
(
|
|
192
|
+
(m === "href" || m === "xlink:href") && (w.startsWith("javascript:") || w.startsWith("data:")) && s.removeAttribute(p.name);
|
|
193
193
|
}
|
|
194
194
|
};
|
|
195
|
-
u(
|
|
196
|
-
})(
|
|
195
|
+
u(i), h.forEach(u);
|
|
196
|
+
})(o), o.outerHTML) : null;
|
|
197
197
|
}
|
|
198
198
|
const f = /* @__PURE__ */ new Map();
|
|
199
199
|
let a = class extends S {
|
|
@@ -210,34 +210,35 @@ let a = class extends S {
|
|
|
210
210
|
/** Check bundled Solar icons (with alias resolution) */
|
|
211
211
|
_getSolar() {
|
|
212
212
|
let r = this.name;
|
|
213
|
-
r.startsWith("solar:") ? r = r.slice(6) :
|
|
213
|
+
r.startsWith("solar:") ? r = r.slice(6) : g[r] && (r = g[r]);
|
|
214
214
|
const e = _[r];
|
|
215
215
|
return e ? { body: e.body, width: e.width || 24, height: e.height || 24 } : null;
|
|
216
216
|
}
|
|
217
217
|
/** Fetch from Iconify API as fallback */
|
|
218
218
|
async _fetchFromApi() {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
219
|
+
const r = this.name;
|
|
220
|
+
let e = r;
|
|
221
|
+
if (e.startsWith("solar:") ? e = e.slice(6) : g[e] && (e = g[e]), f.has(e)) {
|
|
222
|
+
this._apiSvg = f.get(e);
|
|
222
223
|
return;
|
|
223
224
|
}
|
|
224
225
|
this._loading = !0;
|
|
225
226
|
try {
|
|
226
|
-
const
|
|
227
|
-
if (
|
|
228
|
-
const
|
|
229
|
-
t && (f.set(
|
|
227
|
+
const l = await fetch(`https://api.iconify.design/solar/${e}.svg?height=24`);
|
|
228
|
+
if (l.ok) {
|
|
229
|
+
const o = await l.text(), t = O(o);
|
|
230
|
+
t && (f.set(e, t), this.name === r && (this._apiSvg = t));
|
|
230
231
|
}
|
|
231
232
|
} catch {
|
|
232
233
|
} finally {
|
|
233
|
-
this._loading = !1;
|
|
234
|
+
this.name === r && (this._loading = !1);
|
|
234
235
|
}
|
|
235
236
|
}
|
|
236
237
|
render() {
|
|
237
238
|
if (!this.name) return M;
|
|
238
|
-
const r = this.label ? "img" : "presentation", e = this.label || M, l = this.label ? "false" : "true",
|
|
239
|
-
if (
|
|
240
|
-
const n =
|
|
239
|
+
const r = this.label ? "img" : "presentation", e = this.label || M, l = this.label ? "false" : "true", o = this._getBuiltin();
|
|
240
|
+
if (o) {
|
|
241
|
+
const n = o.split(/(?=M)/).map(
|
|
241
242
|
(h) => C`<path d="${h.trim()}"></path>`
|
|
242
243
|
);
|
|
243
244
|
return d`
|
|
@@ -248,9 +249,9 @@ let a = class extends S {
|
|
|
248
249
|
</svg>
|
|
249
250
|
`;
|
|
250
251
|
}
|
|
251
|
-
const
|
|
252
|
-
if (
|
|
253
|
-
const n =
|
|
252
|
+
const t = v[this.name];
|
|
253
|
+
if (t) {
|
|
254
|
+
const n = t.map(
|
|
254
255
|
([h, u]) => C`<circle cx="${h}" cy="${u}" r="2"></circle>`
|
|
255
256
|
);
|
|
256
257
|
return d`
|
|
@@ -260,14 +261,14 @@ let a = class extends S {
|
|
|
260
261
|
</svg>
|
|
261
262
|
`;
|
|
262
263
|
}
|
|
263
|
-
const
|
|
264
|
-
return
|
|
265
|
-
<svg viewBox="0 0 ${
|
|
264
|
+
const i = this._getSolar();
|
|
265
|
+
return i ? d`
|
|
266
|
+
<svg viewBox="0 0 ${i.width} ${i.height}"
|
|
266
267
|
role="${r}" aria-label="${e}" aria-hidden="${l}">
|
|
267
|
-
${x(
|
|
268
|
+
${x(i.body)}
|
|
268
269
|
</svg>
|
|
269
|
-
` : this._apiSvg ? d`<span role="${r}" aria-label="${e}"
|
|
270
|
-
|
|
270
|
+
` : this._apiSvg ? d`<span class="api-icon" role="${r}" aria-label="${e}"
|
|
271
|
+
aria-hidden="${l}">${A(this._apiSvg)}</span>` : this._loading ? d`<div class="placeholder" aria-hidden="true"></div>` : M;
|
|
271
272
|
}
|
|
272
273
|
};
|
|
273
274
|
a.styles = [V, Z, H, z`
|
|
@@ -289,7 +290,7 @@ a.styles = [V, Z, H, z`
|
|
|
289
290
|
:host([size="xl"]) { font-size: var(--cg-icon-size-300); }
|
|
290
291
|
|
|
291
292
|
:host([color="muted"]) { color: var(--cg-color-surface-container-outlined); }
|
|
292
|
-
:host([color="accent"]) { color: var(--cg-color-
|
|
293
|
+
:host([color="accent"]) { color: var(--cg-color-accent-text); }
|
|
293
294
|
:host([color="success"]) { color: var(--cg-color-status-success-text-default); }
|
|
294
295
|
:host([color="warning"]) { color: var(--cg-color-status-warning-text-default); }
|
|
295
296
|
:host([color="danger"]) { color: var(--cg-color-status-error-text-default); }
|
|
@@ -305,6 +306,12 @@ a.styles = [V, Z, H, z`
|
|
|
305
306
|
animation: spin var(--cg-transition-duration-slow) linear infinite;
|
|
306
307
|
}
|
|
307
308
|
|
|
309
|
+
.api-icon {
|
|
310
|
+
display: inline-flex;
|
|
311
|
+
width: 100%;
|
|
312
|
+
height: 100%;
|
|
313
|
+
}
|
|
314
|
+
|
|
308
315
|
.placeholder {
|
|
309
316
|
width: 100%;
|
|
310
317
|
height: 100%;
|