@cognivo/components 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +119 -0
- package/dist/ai.d.ts +102 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +181 -0
- package/dist/ai.js.map +1 -0
- package/dist/bias.d.ts +21 -0
- package/dist/bias.d.ts.map +1 -0
- package/dist/bias.js +15 -0
- package/dist/bias.js.map +1 -0
- package/dist/chunks/floating-DfsaYJnh.js +103 -0
- package/dist/chunks/floating-DfsaYJnh.js.map +1 -0
- package/dist/chunks/focus-trap-BdRNhSPD.js +53 -0
- package/dist/chunks/focus-trap-BdRNhSPD.js.map +1 -0
- package/dist/chunks/outside-click-CP1P1fK3.js +15 -0
- package/dist/chunks/outside-click-CP1P1fK3.js.map +1 -0
- package/dist/chunks/premium.css-9I4kHrsl.js +466 -0
- package/dist/chunks/premium.css-9I4kHrsl.js.map +1 -0
- package/dist/chunks/roving-index-BuO0tTba.js +31 -0
- package/dist/chunks/roving-index-BuO0tTba.js.map +1 -0
- package/dist/cognivo.min.js +33066 -0
- package/dist/cognivo.min.js.map +1 -0
- package/dist/components/ai-ab-test/ai-ab-test.d.ts +22 -0
- package/dist/components/ai-ab-test/ai-ab-test.d.ts.map +1 -0
- package/dist/components/ai-ab-test/ai-ab-test.js +173 -0
- package/dist/components/ai-ab-test/ai-ab-test.js.map +1 -0
- package/dist/components/ai-accessibility-report/ai-accessibility-report.d.ts +33 -0
- package/dist/components/ai-accessibility-report/ai-accessibility-report.d.ts.map +1 -0
- package/dist/components/ai-accessibility-report/ai-accessibility-report.js +380 -0
- package/dist/components/ai-accessibility-report/ai-accessibility-report.js.map +1 -0
- package/dist/components/ai-action-preview/ai-action-preview.d.ts +32 -0
- package/dist/components/ai-action-preview/ai-action-preview.d.ts.map +1 -0
- package/dist/components/ai-action-preview/ai-action-preview.js +295 -0
- package/dist/components/ai-action-preview/ai-action-preview.js.map +1 -0
- package/dist/components/ai-agent-card/ai-agent-card.d.ts +18 -0
- package/dist/components/ai-agent-card/ai-agent-card.d.ts.map +1 -0
- package/dist/components/ai-agent-card/ai-agent-card.js +267 -0
- package/dist/components/ai-agent-card/ai-agent-card.js.map +1 -0
- package/dist/components/ai-agent-steps/ai-agent-steps.d.ts +53 -0
- package/dist/components/ai-agent-steps/ai-agent-steps.d.ts.map +1 -0
- package/dist/components/ai-agent-steps/ai-agent-steps.js +297 -0
- package/dist/components/ai-agent-steps/ai-agent-steps.js.map +1 -0
- package/dist/components/ai-alert-card/ai-alert-card.d.ts +25 -0
- package/dist/components/ai-alert-card/ai-alert-card.d.ts.map +1 -0
- package/dist/components/ai-alert-card/ai-alert-card.js +235 -0
- package/dist/components/ai-alert-card/ai-alert-card.js.map +1 -0
- package/dist/components/ai-analytics-chart/ai-analytics-chart.d.ts +51 -0
- package/dist/components/ai-analytics-chart/ai-analytics-chart.d.ts.map +1 -0
- package/dist/components/ai-analytics-chart/ai-analytics-chart.js +334 -0
- package/dist/components/ai-analytics-chart/ai-analytics-chart.js.map +1 -0
- package/dist/components/ai-annotation/ai-annotation.d.ts +34 -0
- package/dist/components/ai-annotation/ai-annotation.d.ts.map +1 -0
- package/dist/components/ai-annotation/ai-annotation.js +254 -0
- package/dist/components/ai-annotation/ai-annotation.js.map +1 -0
- package/dist/components/ai-api-key-manager/ai-api-key-manager.d.ts +35 -0
- package/dist/components/ai-api-key-manager/ai-api-key-manager.d.ts.map +1 -0
- package/dist/components/ai-api-key-manager/ai-api-key-manager.js +443 -0
- package/dist/components/ai-api-key-manager/ai-api-key-manager.js.map +1 -0
- package/dist/components/ai-app-sidebar/ai-app-sidebar.d.ts +26 -0
- package/dist/components/ai-app-sidebar/ai-app-sidebar.d.ts.map +1 -0
- package/dist/components/ai-app-sidebar/ai-app-sidebar.js +206 -0
- package/dist/components/ai-app-sidebar/ai-app-sidebar.js.map +1 -0
- package/dist/components/ai-assistant-widget/ai-assistant-widget.d.ts +28 -0
- package/dist/components/ai-assistant-widget/ai-assistant-widget.d.ts.map +1 -0
- package/dist/components/ai-assistant-widget/ai-assistant-widget.js +335 -0
- package/dist/components/ai-assistant-widget/ai-assistant-widget.js.map +1 -0
- package/dist/components/ai-audio-player/ai-audio-player.d.ts +31 -0
- package/dist/components/ai-audio-player/ai-audio-player.d.ts.map +1 -0
- package/dist/components/ai-audio-player/ai-audio-player.js +274 -0
- package/dist/components/ai-audio-player/ai-audio-player.js.map +1 -0
- package/dist/components/ai-avatar/ai-avatar.d.ts +20 -0
- package/dist/components/ai-avatar/ai-avatar.d.ts.map +1 -0
- package/dist/components/ai-avatar/ai-avatar.js +77 -0
- package/dist/components/ai-avatar/ai-avatar.js.map +1 -0
- package/dist/components/ai-badge/ai-badge.d.ts +20 -0
- package/dist/components/ai-badge/ai-badge.d.ts.map +1 -0
- package/dist/components/ai-badge/ai-badge.js +69 -0
- package/dist/components/ai-badge/ai-badge.js.map +1 -0
- package/dist/components/ai-batch-progress/ai-batch-progress.d.ts +21 -0
- package/dist/components/ai-batch-progress/ai-batch-progress.d.ts.map +1 -0
- package/dist/components/ai-batch-progress/ai-batch-progress.js +334 -0
- package/dist/components/ai-batch-progress/ai-batch-progress.js.map +1 -0
- package/dist/components/ai-cache-indicator/ai-cache-indicator.d.ts +31 -0
- package/dist/components/ai-cache-indicator/ai-cache-indicator.d.ts.map +1 -0
- package/dist/components/ai-cache-indicator/ai-cache-indicator.js +314 -0
- package/dist/components/ai-cache-indicator/ai-cache-indicator.js.map +1 -0
- package/dist/components/ai-capture-flow/ai-capture-flow.d.ts +33 -0
- package/dist/components/ai-capture-flow/ai-capture-flow.d.ts.map +1 -0
- package/dist/components/ai-capture-flow/ai-capture-flow.js +336 -0
- package/dist/components/ai-capture-flow/ai-capture-flow.js.map +1 -0
- package/dist/components/ai-changelog/ai-changelog.d.ts +24 -0
- package/dist/components/ai-changelog/ai-changelog.d.ts.map +1 -0
- package/dist/components/ai-changelog/ai-changelog.js +292 -0
- package/dist/components/ai-changelog/ai-changelog.js.map +1 -0
- package/dist/components/ai-chart-summary/ai-chart-summary.d.ts +30 -0
- package/dist/components/ai-chart-summary/ai-chart-summary.d.ts.map +1 -0
- package/dist/components/ai-chart-summary/ai-chart-summary.js +269 -0
- package/dist/components/ai-chart-summary/ai-chart-summary.js.map +1 -0
- package/dist/components/ai-chat/ai-chat.d.ts +70 -0
- package/dist/components/ai-chat/ai-chat.d.ts.map +1 -0
- package/dist/components/ai-chat/ai-chat.js +707 -0
- package/dist/components/ai-chat/ai-chat.js.map +1 -0
- package/dist/components/ai-citation/ai-citation.d.ts +27 -0
- package/dist/components/ai-citation/ai-citation.d.ts.map +1 -0
- package/dist/components/ai-citation/ai-citation.js +277 -0
- package/dist/components/ai-citation/ai-citation.js.map +1 -0
- package/dist/components/ai-collaborative-editor/ai-collaborative-editor.d.ts +54 -0
- package/dist/components/ai-collaborative-editor/ai-collaborative-editor.d.ts.map +1 -0
- package/dist/components/ai-collaborative-editor/ai-collaborative-editor.js +387 -0
- package/dist/components/ai-collaborative-editor/ai-collaborative-editor.js.map +1 -0
- package/dist/components/ai-command-palette/ai-command-palette.d.ts +34 -0
- package/dist/components/ai-command-palette/ai-command-palette.d.ts.map +1 -0
- package/dist/components/ai-command-palette/ai-command-palette.js +119 -0
- package/dist/components/ai-command-palette/ai-command-palette.js.map +1 -0
- package/dist/components/ai-confidence-badge/ai-confidence-badge.d.ts +31 -0
- package/dist/components/ai-confidence-badge/ai-confidence-badge.d.ts.map +1 -0
- package/dist/components/ai-confidence-badge/ai-confidence-badge.js +200 -0
- package/dist/components/ai-confidence-badge/ai-confidence-badge.js.map +1 -0
- package/dist/components/ai-confidence-slider/ai-confidence-slider.d.ts +16 -0
- package/dist/components/ai-confidence-slider/ai-confidence-slider.d.ts.map +1 -0
- package/dist/components/ai-confidence-slider/ai-confidence-slider.js +212 -0
- package/dist/components/ai-confidence-slider/ai-confidence-slider.js.map +1 -0
- package/dist/components/ai-consent-manager/ai-consent-manager.d.ts +26 -0
- package/dist/components/ai-consent-manager/ai-consent-manager.d.ts.map +1 -0
- package/dist/components/ai-consent-manager/ai-consent-manager.js +169 -0
- package/dist/components/ai-consent-manager/ai-consent-manager.js.map +1 -0
- package/dist/components/ai-context-window/ai-context-window.d.ts +20 -0
- package/dist/components/ai-context-window/ai-context-window.d.ts.map +1 -0
- package/dist/components/ai-context-window/ai-context-window.js +201 -0
- package/dist/components/ai-context-window/ai-context-window.js.map +1 -0
- package/dist/components/ai-copy-button/ai-copy-button.d.ts +23 -0
- package/dist/components/ai-copy-button/ai-copy-button.d.ts.map +1 -0
- package/dist/components/ai-copy-button/ai-copy-button.js +193 -0
- package/dist/components/ai-copy-button/ai-copy-button.js.map +1 -0
- package/dist/components/ai-cost-dashboard/ai-cost-dashboard.d.ts +28 -0
- package/dist/components/ai-cost-dashboard/ai-cost-dashboard.d.ts.map +1 -0
- package/dist/components/ai-cost-dashboard/ai-cost-dashboard.js +328 -0
- package/dist/components/ai-cost-dashboard/ai-cost-dashboard.js.map +1 -0
- package/dist/components/ai-data-card/ai-data-card.d.ts +50 -0
- package/dist/components/ai-data-card/ai-data-card.d.ts.map +1 -0
- package/dist/components/ai-data-card/ai-data-card.js +358 -0
- package/dist/components/ai-data-card/ai-data-card.js.map +1 -0
- package/dist/components/ai-data-lineage/ai-data-lineage.d.ts +28 -0
- package/dist/components/ai-data-lineage/ai-data-lineage.d.ts.map +1 -0
- package/dist/components/ai-data-lineage/ai-data-lineage.js +200 -0
- package/dist/components/ai-data-lineage/ai-data-lineage.js.map +1 -0
- package/dist/components/ai-data-preview/ai-data-preview.d.ts +31 -0
- package/dist/components/ai-data-preview/ai-data-preview.d.ts.map +1 -0
- package/dist/components/ai-data-preview/ai-data-preview.js +415 -0
- package/dist/components/ai-data-preview/ai-data-preview.js.map +1 -0
- package/dist/components/ai-data-table/ai-data-table.d.ts +62 -0
- package/dist/components/ai-data-table/ai-data-table.d.ts.map +1 -0
- package/dist/components/ai-data-table/ai-data-table.js +388 -0
- package/dist/components/ai-data-table/ai-data-table.js.map +1 -0
- package/dist/components/ai-debug-console/ai-debug-console.d.ts +39 -0
- package/dist/components/ai-debug-console/ai-debug-console.d.ts.map +1 -0
- package/dist/components/ai-debug-console/ai-debug-console.js +517 -0
- package/dist/components/ai-debug-console/ai-debug-console.js.map +1 -0
- package/dist/components/ai-detection-canvas/ai-detection-canvas.d.ts +26 -0
- package/dist/components/ai-detection-canvas/ai-detection-canvas.d.ts.map +1 -0
- package/dist/components/ai-detection-canvas/ai-detection-canvas.js +233 -0
- package/dist/components/ai-detection-canvas/ai-detection-canvas.js.map +1 -0
- package/dist/components/ai-diff-panel/ai-diff-panel.d.ts +35 -0
- package/dist/components/ai-diff-panel/ai-diff-panel.d.ts.map +1 -0
- package/dist/components/ai-diff-panel/ai-diff-panel.js +374 -0
- package/dist/components/ai-diff-panel/ai-diff-panel.js.map +1 -0
- package/dist/components/ai-embedding-viz/ai-embedding-viz.d.ts +31 -0
- package/dist/components/ai-embedding-viz/ai-embedding-viz.d.ts.map +1 -0
- package/dist/components/ai-embedding-viz/ai-embedding-viz.js +256 -0
- package/dist/components/ai-embedding-viz/ai-embedding-viz.js.map +1 -0
- package/dist/components/ai-empty-state/ai-empty-state.d.ts +18 -0
- package/dist/components/ai-empty-state/ai-empty-state.d.ts.map +1 -0
- package/dist/components/ai-empty-state/ai-empty-state.js +58 -0
- package/dist/components/ai-empty-state/ai-empty-state.js.map +1 -0
- package/dist/components/ai-error-boundary/ai-error-boundary.d.ts +17 -0
- package/dist/components/ai-error-boundary/ai-error-boundary.d.ts.map +1 -0
- package/dist/components/ai-error-boundary/ai-error-boundary.js +212 -0
- package/dist/components/ai-error-boundary/ai-error-boundary.js.map +1 -0
- package/dist/components/ai-eval-scorecard/ai-eval-scorecard.d.ts +19 -0
- package/dist/components/ai-eval-scorecard/ai-eval-scorecard.d.ts.map +1 -0
- package/dist/components/ai-eval-scorecard/ai-eval-scorecard.js +199 -0
- package/dist/components/ai-eval-scorecard/ai-eval-scorecard.js.map +1 -0
- package/dist/components/ai-feature-flag/ai-feature-flag.d.ts +43 -0
- package/dist/components/ai-feature-flag/ai-feature-flag.d.ts.map +1 -0
- package/dist/components/ai-feature-flag/ai-feature-flag.js +457 -0
- package/dist/components/ai-feature-flag/ai-feature-flag.js.map +1 -0
- package/dist/components/ai-feedback/ai-feedback.d.ts +28 -0
- package/dist/components/ai-feedback/ai-feedback.d.ts.map +1 -0
- package/dist/components/ai-feedback/ai-feedback.js +478 -0
- package/dist/components/ai-feedback/ai-feedback.js.map +1 -0
- package/dist/components/ai-file-upload/ai-file-upload.d.ts +18 -0
- package/dist/components/ai-file-upload/ai-file-upload.d.ts.map +1 -0
- package/dist/components/ai-file-upload/ai-file-upload.js +70 -0
- package/dist/components/ai-file-upload/ai-file-upload.js.map +1 -0
- package/dist/components/ai-form-generator/ai-form-generator.d.ts +39 -0
- package/dist/components/ai-form-generator/ai-form-generator.d.ts.map +1 -0
- package/dist/components/ai-form-generator/ai-form-generator.js +225 -0
- package/dist/components/ai-form-generator/ai-form-generator.js.map +1 -0
- package/dist/components/ai-guardrail/ai-guardrail.d.ts +22 -0
- package/dist/components/ai-guardrail/ai-guardrail.d.ts.map +1 -0
- package/dist/components/ai-guardrail/ai-guardrail.js +229 -0
- package/dist/components/ai-guardrail/ai-guardrail.js.map +1 -0
- package/dist/components/ai-heatmap/ai-heatmap.d.ts +38 -0
- package/dist/components/ai-heatmap/ai-heatmap.d.ts.map +1 -0
- package/dist/components/ai-heatmap/ai-heatmap.js +250 -0
- package/dist/components/ai-heatmap/ai-heatmap.js.map +1 -0
- package/dist/components/ai-insight-card/ai-insight-card.d.ts +28 -0
- package/dist/components/ai-insight-card/ai-insight-card.d.ts.map +1 -0
- package/dist/components/ai-insight-card/ai-insight-card.js +319 -0
- package/dist/components/ai-insight-card/ai-insight-card.js.map +1 -0
- package/dist/components/ai-json-viewer/ai-json-viewer.d.ts +24 -0
- package/dist/components/ai-json-viewer/ai-json-viewer.d.ts.map +1 -0
- package/dist/components/ai-json-viewer/ai-json-viewer.js +173 -0
- package/dist/components/ai-json-viewer/ai-json-viewer.js.map +1 -0
- package/dist/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.d.ts +25 -0
- package/dist/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.d.ts.map +1 -0
- package/dist/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.js +240 -0
- package/dist/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.js.map +1 -0
- package/dist/components/ai-kpi-grid/ai-kpi-grid.d.ts +26 -0
- package/dist/components/ai-kpi-grid/ai-kpi-grid.d.ts.map +1 -0
- package/dist/components/ai-kpi-grid/ai-kpi-grid.js +180 -0
- package/dist/components/ai-kpi-grid/ai-kpi-grid.js.map +1 -0
- package/dist/components/ai-labeling-board/ai-labeling-board.d.ts +31 -0
- package/dist/components/ai-labeling-board/ai-labeling-board.d.ts.map +1 -0
- package/dist/components/ai-labeling-board/ai-labeling-board.js +393 -0
- package/dist/components/ai-labeling-board/ai-labeling-board.js.map +1 -0
- package/dist/components/ai-memory-panel/ai-memory-panel.d.ts +24 -0
- package/dist/components/ai-memory-panel/ai-memory-panel.d.ts.map +1 -0
- package/dist/components/ai-memory-panel/ai-memory-panel.js +238 -0
- package/dist/components/ai-memory-panel/ai-memory-panel.js.map +1 -0
- package/dist/components/ai-model-comparison/ai-model-comparison.d.ts +25 -0
- package/dist/components/ai-model-comparison/ai-model-comparison.d.ts.map +1 -0
- package/dist/components/ai-model-comparison/ai-model-comparison.js +321 -0
- package/dist/components/ai-model-comparison/ai-model-comparison.js.map +1 -0
- package/dist/components/ai-model-selector/ai-model-selector.d.ts +29 -0
- package/dist/components/ai-model-selector/ai-model-selector.d.ts.map +1 -0
- package/dist/components/ai-model-selector/ai-model-selector.js +200 -0
- package/dist/components/ai-model-selector/ai-model-selector.js.map +1 -0
- package/dist/components/ai-notification-center/ai-notification-center.d.ts +34 -0
- package/dist/components/ai-notification-center/ai-notification-center.d.ts.map +1 -0
- package/dist/components/ai-notification-center/ai-notification-center.js +334 -0
- package/dist/components/ai-notification-center/ai-notification-center.js.map +1 -0
- package/dist/components/ai-onboarding/ai-onboarding.d.ts +35 -0
- package/dist/components/ai-onboarding/ai-onboarding.d.ts.map +1 -0
- package/dist/components/ai-onboarding/ai-onboarding.js +375 -0
- package/dist/components/ai-onboarding/ai-onboarding.js.map +1 -0
- package/dist/components/ai-permission-gate/ai-permission-gate.d.ts +27 -0
- package/dist/components/ai-permission-gate/ai-permission-gate.d.ts.map +1 -0
- package/dist/components/ai-permission-gate/ai-permission-gate.js +193 -0
- package/dist/components/ai-permission-gate/ai-permission-gate.js.map +1 -0
- package/dist/components/ai-personalization-dash/ai-personalization-dash.d.ts +27 -0
- package/dist/components/ai-personalization-dash/ai-personalization-dash.d.ts.map +1 -0
- package/dist/components/ai-personalization-dash/ai-personalization-dash.js +181 -0
- package/dist/components/ai-personalization-dash/ai-personalization-dash.js.map +1 -0
- package/dist/components/ai-presence/ai-presence.d.ts +27 -0
- package/dist/components/ai-presence/ai-presence.d.ts.map +1 -0
- package/dist/components/ai-presence/ai-presence.js +261 -0
- package/dist/components/ai-presence/ai-presence.js.map +1 -0
- package/dist/components/ai-progress-steps/ai-progress-steps.d.ts +20 -0
- package/dist/components/ai-progress-steps/ai-progress-steps.d.ts.map +1 -0
- package/dist/components/ai-progress-steps/ai-progress-steps.js +201 -0
- package/dist/components/ai-progress-steps/ai-progress-steps.js.map +1 -0
- package/dist/components/ai-prompt-editor/ai-prompt-editor.d.ts +25 -0
- package/dist/components/ai-prompt-editor/ai-prompt-editor.d.ts.map +1 -0
- package/dist/components/ai-prompt-editor/ai-prompt-editor.js +294 -0
- package/dist/components/ai-prompt-editor/ai-prompt-editor.js.map +1 -0
- package/dist/components/ai-prompt-template/ai-prompt-template.d.ts +20 -0
- package/dist/components/ai-prompt-template/ai-prompt-template.d.ts.map +1 -0
- package/dist/components/ai-prompt-template/ai-prompt-template.js +288 -0
- package/dist/components/ai-prompt-template/ai-prompt-template.js.map +1 -0
- package/dist/components/ai-rag-panel/ai-rag-panel.d.ts +24 -0
- package/dist/components/ai-rag-panel/ai-rag-panel.d.ts.map +1 -0
- package/dist/components/ai-rag-panel/ai-rag-panel.js +226 -0
- package/dist/components/ai-rag-panel/ai-rag-panel.js.map +1 -0
- package/dist/components/ai-reasoning-tree/ai-reasoning-tree.d.ts +20 -0
- package/dist/components/ai-reasoning-tree/ai-reasoning-tree.d.ts.map +1 -0
- package/dist/components/ai-reasoning-tree/ai-reasoning-tree.js +180 -0
- package/dist/components/ai-reasoning-tree/ai-reasoning-tree.js.map +1 -0
- package/dist/components/ai-result-panel/ai-result-panel.d.ts +35 -0
- package/dist/components/ai-result-panel/ai-result-panel.d.ts.map +1 -0
- package/dist/components/ai-result-panel/ai-result-panel.js +412 -0
- package/dist/components/ai-result-panel/ai-result-panel.js.map +1 -0
- package/dist/components/ai-reveal-animation/ai-reveal-animation.d.ts +28 -0
- package/dist/components/ai-reveal-animation/ai-reveal-animation.d.ts.map +1 -0
- package/dist/components/ai-reveal-animation/ai-reveal-animation.js +146 -0
- package/dist/components/ai-reveal-animation/ai-reveal-animation.js.map +1 -0
- package/dist/components/ai-reward-signal/ai-reward-signal.d.ts +22 -0
- package/dist/components/ai-reward-signal/ai-reward-signal.d.ts.map +1 -0
- package/dist/components/ai-reward-signal/ai-reward-signal.js +231 -0
- package/dist/components/ai-reward-signal/ai-reward-signal.js.map +1 -0
- package/dist/components/ai-rich-message/ai-rich-message.d.ts +38 -0
- package/dist/components/ai-rich-message/ai-rich-message.d.ts.map +1 -0
- package/dist/components/ai-rich-message/ai-rich-message.js +285 -0
- package/dist/components/ai-rich-message/ai-rich-message.js.map +1 -0
- package/dist/components/ai-scenario-panel/ai-scenario-panel.d.ts +19 -0
- package/dist/components/ai-scenario-panel/ai-scenario-panel.d.ts.map +1 -0
- package/dist/components/ai-scenario-panel/ai-scenario-panel.js +182 -0
- package/dist/components/ai-scenario-panel/ai-scenario-panel.js.map +1 -0
- package/dist/components/ai-search/ai-search.d.ts +38 -0
- package/dist/components/ai-search/ai-search.d.ts.map +1 -0
- package/dist/components/ai-search/ai-search.js +397 -0
- package/dist/components/ai-search/ai-search.js.map +1 -0
- package/dist/components/ai-segmentation-viewer/ai-segmentation-viewer.d.ts +21 -0
- package/dist/components/ai-segmentation-viewer/ai-segmentation-viewer.d.ts.map +1 -0
- package/dist/components/ai-segmentation-viewer/ai-segmentation-viewer.js +185 -0
- package/dist/components/ai-segmentation-viewer/ai-segmentation-viewer.js.map +1 -0
- package/dist/components/ai-sidebar/ai-sidebar.d.ts +19 -0
- package/dist/components/ai-sidebar/ai-sidebar.d.ts.map +1 -0
- package/dist/components/ai-sidebar/ai-sidebar.js +59 -0
- package/dist/components/ai-sidebar/ai-sidebar.js.map +1 -0
- package/dist/components/ai-similarity-card/ai-similarity-card.d.ts +23 -0
- package/dist/components/ai-similarity-card/ai-similarity-card.d.ts.map +1 -0
- package/dist/components/ai-similarity-card/ai-similarity-card.js +224 -0
- package/dist/components/ai-similarity-card/ai-similarity-card.js.map +1 -0
- package/dist/components/ai-source-graph/ai-source-graph.d.ts +19 -0
- package/dist/components/ai-source-graph/ai-source-graph.d.ts.map +1 -0
- package/dist/components/ai-source-graph/ai-source-graph.js +226 -0
- package/dist/components/ai-source-graph/ai-source-graph.js.map +1 -0
- package/dist/components/ai-status-page/ai-status-page.d.ts +32 -0
- package/dist/components/ai-status-page/ai-status-page.d.ts.map +1 -0
- package/dist/components/ai-status-page/ai-status-page.js +304 -0
- package/dist/components/ai-status-page/ai-status-page.js.map +1 -0
- package/dist/components/ai-streaming-text/ai-streaming-text.d.ts +23 -0
- package/dist/components/ai-streaming-text/ai-streaming-text.d.ts.map +1 -0
- package/dist/components/ai-streaming-text/ai-streaming-text.js +80 -0
- package/dist/components/ai-streaming-text/ai-streaming-text.js.map +1 -0
- package/dist/components/ai-test-runner/ai-test-runner.d.ts +37 -0
- package/dist/components/ai-test-runner/ai-test-runner.d.ts.map +1 -0
- package/dist/components/ai-test-runner/ai-test-runner.js +448 -0
- package/dist/components/ai-test-runner/ai-test-runner.js.map +1 -0
- package/dist/components/ai-thinking/ai-thinking.d.ts +33 -0
- package/dist/components/ai-thinking/ai-thinking.d.ts.map +1 -0
- package/dist/components/ai-thinking/ai-thinking.js +371 -0
- package/dist/components/ai-thinking/ai-thinking.js.map +1 -0
- package/dist/components/ai-timeline/ai-timeline.d.ts +28 -0
- package/dist/components/ai-timeline/ai-timeline.d.ts.map +1 -0
- package/dist/components/ai-timeline/ai-timeline.js +378 -0
- package/dist/components/ai-timeline/ai-timeline.js.map +1 -0
- package/dist/components/ai-toast/ai-toast.d.ts +27 -0
- package/dist/components/ai-toast/ai-toast.d.ts.map +1 -0
- package/dist/components/ai-toast/ai-toast.js +68 -0
- package/dist/components/ai-toast/ai-toast.js.map +1 -0
- package/dist/components/ai-token-tracker/ai-token-tracker.d.ts +20 -0
- package/dist/components/ai-token-tracker/ai-token-tracker.d.ts.map +1 -0
- package/dist/components/ai-token-tracker/ai-token-tracker.js +235 -0
- package/dist/components/ai-token-tracker/ai-token-tracker.js.map +1 -0
- package/dist/components/ai-tool-card-resolver/ai-tool-card-resolver.d.ts +31 -0
- package/dist/components/ai-tool-card-resolver/ai-tool-card-resolver.d.ts.map +1 -0
- package/dist/components/ai-tool-card-resolver/ai-tool-card-resolver.js +225 -0
- package/dist/components/ai-tool-card-resolver/ai-tool-card-resolver.js.map +1 -0
- package/dist/components/ai-tool-indicator/ai-tool-indicator.d.ts +18 -0
- package/dist/components/ai-tool-indicator/ai-tool-indicator.d.ts.map +1 -0
- package/dist/components/ai-tool-indicator/ai-tool-indicator.js +186 -0
- package/dist/components/ai-tool-indicator/ai-tool-indicator.js.map +1 -0
- package/dist/components/ai-transform-slider/ai-transform-slider.d.ts +21 -0
- package/dist/components/ai-transform-slider/ai-transform-slider.d.ts.map +1 -0
- package/dist/components/ai-transform-slider/ai-transform-slider.js +270 -0
- package/dist/components/ai-transform-slider/ai-transform-slider.js.map +1 -0
- package/dist/components/ai-translation-panel/ai-translation-panel.d.ts +24 -0
- package/dist/components/ai-translation-panel/ai-translation-panel.d.ts.map +1 -0
- package/dist/components/ai-translation-panel/ai-translation-panel.js +347 -0
- package/dist/components/ai-translation-panel/ai-translation-panel.js.map +1 -0
- package/dist/components/ai-usage-meter/ai-usage-meter.d.ts +33 -0
- package/dist/components/ai-usage-meter/ai-usage-meter.d.ts.map +1 -0
- package/dist/components/ai-usage-meter/ai-usage-meter.js +286 -0
- package/dist/components/ai-usage-meter/ai-usage-meter.js.map +1 -0
- package/dist/components/ai-validation-checklist/ai-validation-checklist.d.ts +35 -0
- package/dist/components/ai-validation-checklist/ai-validation-checklist.d.ts.map +1 -0
- package/dist/components/ai-validation-checklist/ai-validation-checklist.js +360 -0
- package/dist/components/ai-validation-checklist/ai-validation-checklist.js.map +1 -0
- package/dist/components/ai-version-selector/ai-version-selector.d.ts +28 -0
- package/dist/components/ai-version-selector/ai-version-selector.d.ts.map +1 -0
- package/dist/components/ai-version-selector/ai-version-selector.js +326 -0
- package/dist/components/ai-version-selector/ai-version-selector.js.map +1 -0
- package/dist/components/ai-voice-panel/ai-voice-panel.d.ts +46 -0
- package/dist/components/ai-voice-panel/ai-voice-panel.d.ts.map +1 -0
- package/dist/components/ai-voice-panel/ai-voice-panel.js +363 -0
- package/dist/components/ai-voice-panel/ai-voice-panel.js.map +1 -0
- package/dist/components/ai-webhook-config/ai-webhook-config.d.ts +46 -0
- package/dist/components/ai-webhook-config/ai-webhook-config.d.ts.map +1 -0
- package/dist/components/ai-webhook-config/ai-webhook-config.js +358 -0
- package/dist/components/ai-webhook-config/ai-webhook-config.js.map +1 -0
- package/dist/components/ai-workflow-builder/ai-workflow-builder.d.ts +26 -0
- package/dist/components/ai-workflow-builder/ai-workflow-builder.d.ts.map +1 -0
- package/dist/components/ai-workflow-builder/ai-workflow-builder.js +179 -0
- package/dist/components/ai-workflow-builder/ai-workflow-builder.js.map +1 -0
- package/dist/components/bias-anchoring/bias-anchoring.d.ts +35 -0
- package/dist/components/bias-anchoring/bias-anchoring.d.ts.map +1 -0
- package/dist/components/bias-anchoring/bias-anchoring.js +107 -0
- package/dist/components/bias-anchoring/bias-anchoring.js.map +1 -0
- package/dist/components/bias-authority/bias-authority.d.ts +31 -0
- package/dist/components/bias-authority/bias-authority.d.ts.map +1 -0
- package/dist/components/bias-authority/bias-authority.js +97 -0
- package/dist/components/bias-authority/bias-authority.js.map +1 -0
- package/dist/components/bias-commitment/bias-commitment.d.ts +39 -0
- package/dist/components/bias-commitment/bias-commitment.d.ts.map +1 -0
- package/dist/components/bias-commitment/bias-commitment.js +115 -0
- package/dist/components/bias-commitment/bias-commitment.js.map +1 -0
- package/dist/components/bias-reciprocity/bias-reciprocity.d.ts +30 -0
- package/dist/components/bias-reciprocity/bias-reciprocity.d.ts.map +1 -0
- package/dist/components/bias-reciprocity/bias-reciprocity.js +86 -0
- package/dist/components/bias-reciprocity/bias-reciprocity.js.map +1 -0
- package/dist/components/bias-scarcity/bias-scarcity.d.ts +39 -0
- package/dist/components/bias-scarcity/bias-scarcity.d.ts.map +1 -0
- package/dist/components/bias-scarcity/bias-scarcity.js +120 -0
- package/dist/components/bias-scarcity/bias-scarcity.js.map +1 -0
- package/dist/components/bias-social-proof/bias-social-proof.d.ts +37 -0
- package/dist/components/bias-social-proof/bias-social-proof.d.ts.map +1 -0
- package/dist/components/bias-social-proof/bias-social-proof.js +112 -0
- package/dist/components/bias-social-proof/bias-social-proof.js.map +1 -0
- package/dist/components/cg-accordion/cg-accordion.d.ts +34 -0
- package/dist/components/cg-accordion/cg-accordion.d.ts.map +1 -0
- package/dist/components/cg-accordion/cg-accordion.js +219 -0
- package/dist/components/cg-accordion/cg-accordion.js.map +1 -0
- package/dist/components/cg-alert-dialog/cg-alert-dialog.d.ts +53 -0
- package/dist/components/cg-alert-dialog/cg-alert-dialog.d.ts.map +1 -0
- package/dist/components/cg-alert-dialog/cg-alert-dialog.js +220 -0
- package/dist/components/cg-alert-dialog/cg-alert-dialog.js.map +1 -0
- package/dist/components/cg-app-shell/cg-app-shell.d.ts +54 -0
- package/dist/components/cg-app-shell/cg-app-shell.d.ts.map +1 -0
- package/dist/components/cg-app-shell/cg-app-shell.js +135 -0
- package/dist/components/cg-app-shell/cg-app-shell.js.map +1 -0
- package/dist/components/cg-aspect-ratio/cg-aspect-ratio.d.ts +34 -0
- package/dist/components/cg-aspect-ratio/cg-aspect-ratio.d.ts.map +1 -0
- package/dist/components/cg-aspect-ratio/cg-aspect-ratio.js +47 -0
- package/dist/components/cg-aspect-ratio/cg-aspect-ratio.js.map +1 -0
- package/dist/components/cg-auth-shell/cg-auth-shell.d.ts +61 -0
- package/dist/components/cg-auth-shell/cg-auth-shell.d.ts.map +1 -0
- package/dist/components/cg-auth-shell/cg-auth-shell.js +163 -0
- package/dist/components/cg-auth-shell/cg-auth-shell.js.map +1 -0
- package/dist/components/cg-autocomplete/cg-autocomplete.d.ts +50 -0
- package/dist/components/cg-autocomplete/cg-autocomplete.d.ts.map +1 -0
- package/dist/components/cg-autocomplete/cg-autocomplete.js +279 -0
- package/dist/components/cg-autocomplete/cg-autocomplete.js.map +1 -0
- package/dist/components/cg-avatar/cg-avatar.d.ts +35 -0
- package/dist/components/cg-avatar/cg-avatar.d.ts.map +1 -0
- package/dist/components/cg-avatar/cg-avatar.js +171 -0
- package/dist/components/cg-avatar/cg-avatar.js.map +1 -0
- package/dist/components/cg-avatar-group/cg-avatar-group.d.ts +39 -0
- package/dist/components/cg-avatar-group/cg-avatar-group.d.ts.map +1 -0
- package/dist/components/cg-avatar-group/cg-avatar-group.js +218 -0
- package/dist/components/cg-avatar-group/cg-avatar-group.js.map +1 -0
- package/dist/components/cg-badge/cg-badge.d.ts +37 -0
- package/dist/components/cg-badge/cg-badge.d.ts.map +1 -0
- package/dist/components/cg-badge/cg-badge.js +125 -0
- package/dist/components/cg-badge/cg-badge.js.map +1 -0
- package/dist/components/cg-badge-group/cg-badge-group.d.ts +28 -0
- package/dist/components/cg-badge-group/cg-badge-group.d.ts.map +1 -0
- package/dist/components/cg-badge-group/cg-badge-group.js +78 -0
- package/dist/components/cg-badge-group/cg-badge-group.js.map +1 -0
- package/dist/components/cg-breadcrumbs/cg-breadcrumbs.d.ts +52 -0
- package/dist/components/cg-breadcrumbs/cg-breadcrumbs.d.ts.map +1 -0
- package/dist/components/cg-breadcrumbs/cg-breadcrumbs.js +286 -0
- package/dist/components/cg-breadcrumbs/cg-breadcrumbs.js.map +1 -0
- package/dist/components/cg-button/cg-button.d.ts +106 -0
- package/dist/components/cg-button/cg-button.d.ts.map +1 -0
- package/dist/components/cg-button/cg-button.js +355 -0
- package/dist/components/cg-button/cg-button.js.map +1 -0
- package/dist/components/cg-button-group/cg-button-group.d.ts +25 -0
- package/dist/components/cg-button-group/cg-button-group.d.ts.map +1 -0
- package/dist/components/cg-button-group/cg-button-group.js +89 -0
- package/dist/components/cg-button-group/cg-button-group.js.map +1 -0
- package/dist/components/cg-calendar/cg-calendar.d.ts +52 -0
- package/dist/components/cg-calendar/cg-calendar.d.ts.map +1 -0
- package/dist/components/cg-calendar/cg-calendar.js +346 -0
- package/dist/components/cg-calendar/cg-calendar.js.map +1 -0
- package/dist/components/cg-callout/cg-callout.d.ts +32 -0
- package/dist/components/cg-callout/cg-callout.d.ts.map +1 -0
- package/dist/components/cg-callout/cg-callout.js +197 -0
- package/dist/components/cg-callout/cg-callout.js.map +1 -0
- package/dist/components/cg-card/cg-card.d.ts +60 -0
- package/dist/components/cg-card/cg-card.d.ts.map +1 -0
- package/dist/components/cg-card/cg-card.js +207 -0
- package/dist/components/cg-card/cg-card.js.map +1 -0
- package/dist/components/cg-carousel/cg-carousel.d.ts +52 -0
- package/dist/components/cg-carousel/cg-carousel.d.ts.map +1 -0
- package/dist/components/cg-carousel/cg-carousel.js +262 -0
- package/dist/components/cg-carousel/cg-carousel.js.map +1 -0
- package/dist/components/cg-chart/cg-chart.d.ts +55 -0
- package/dist/components/cg-chart/cg-chart.d.ts.map +1 -0
- package/dist/components/cg-chart/cg-chart.js +381 -0
- package/dist/components/cg-chart/cg-chart.js.map +1 -0
- package/dist/components/cg-checkbox/cg-checkbox.d.ts +50 -0
- package/dist/components/cg-checkbox/cg-checkbox.d.ts.map +1 -0
- package/dist/components/cg-checkbox/cg-checkbox.js +294 -0
- package/dist/components/cg-checkbox/cg-checkbox.js.map +1 -0
- package/dist/components/cg-chip/cg-chip.d.ts +36 -0
- package/dist/components/cg-chip/cg-chip.d.ts.map +1 -0
- package/dist/components/cg-chip/cg-chip.js +256 -0
- package/dist/components/cg-chip/cg-chip.js.map +1 -0
- package/dist/components/cg-code-block/cg-code-block.d.ts +23 -0
- package/dist/components/cg-code-block/cg-code-block.d.ts.map +1 -0
- package/dist/components/cg-code-block/cg-code-block.js +327 -0
- package/dist/components/cg-code-block/cg-code-block.js.map +1 -0
- package/dist/components/cg-collapsible/cg-collapsible.d.ts +34 -0
- package/dist/components/cg-collapsible/cg-collapsible.d.ts.map +1 -0
- package/dist/components/cg-collapsible/cg-collapsible.js +160 -0
- package/dist/components/cg-collapsible/cg-collapsible.js.map +1 -0
- package/dist/components/cg-color-picker/cg-color-picker.d.ts +51 -0
- package/dist/components/cg-color-picker/cg-color-picker.d.ts.map +1 -0
- package/dist/components/cg-color-picker/cg-color-picker.js +492 -0
- package/dist/components/cg-color-picker/cg-color-picker.js.map +1 -0
- package/dist/components/cg-combobox/cg-combobox.d.ts +56 -0
- package/dist/components/cg-combobox/cg-combobox.d.ts.map +1 -0
- package/dist/components/cg-combobox/cg-combobox.js +374 -0
- package/dist/components/cg-combobox/cg-combobox.js.map +1 -0
- package/dist/components/cg-command/cg-command.d.ts +65 -0
- package/dist/components/cg-command/cg-command.d.ts.map +1 -0
- package/dist/components/cg-command/cg-command.js +339 -0
- package/dist/components/cg-command/cg-command.js.map +1 -0
- package/dist/components/cg-context-menu/cg-context-menu.d.ts +66 -0
- package/dist/components/cg-context-menu/cg-context-menu.d.ts.map +1 -0
- package/dist/components/cg-context-menu/cg-context-menu.js +165 -0
- package/dist/components/cg-context-menu/cg-context-menu.js.map +1 -0
- package/dist/components/cg-date-picker/cg-date-picker.d.ts +44 -0
- package/dist/components/cg-date-picker/cg-date-picker.d.ts.map +1 -0
- package/dist/components/cg-date-picker/cg-date-picker.js +240 -0
- package/dist/components/cg-date-picker/cg-date-picker.js.map +1 -0
- package/dist/components/cg-date-range-picker/cg-date-range-picker.d.ts +45 -0
- package/dist/components/cg-date-range-picker/cg-date-range-picker.d.ts.map +1 -0
- package/dist/components/cg-date-range-picker/cg-date-range-picker.js +266 -0
- package/dist/components/cg-date-range-picker/cg-date-range-picker.js.map +1 -0
- package/dist/components/cg-date-time-picker/cg-date-time-picker.d.ts +66 -0
- package/dist/components/cg-date-time-picker/cg-date-time-picker.d.ts.map +1 -0
- package/dist/components/cg-date-time-picker/cg-date-time-picker.js +521 -0
- package/dist/components/cg-date-time-picker/cg-date-time-picker.js.map +1 -0
- package/dist/components/cg-definition-list/cg-definition-list.d.ts +99 -0
- package/dist/components/cg-definition-list/cg-definition-list.d.ts.map +1 -0
- package/dist/components/cg-definition-list/cg-definition-list.js +332 -0
- package/dist/components/cg-definition-list/cg-definition-list.js.map +1 -0
- package/dist/components/cg-draggable/cg-draggable.d.ts +53 -0
- package/dist/components/cg-draggable/cg-draggable.d.ts.map +1 -0
- package/dist/components/cg-draggable/cg-draggable.js +136 -0
- package/dist/components/cg-draggable/cg-draggable.js.map +1 -0
- package/dist/components/cg-drawer/cg-drawer.d.ts +57 -0
- package/dist/components/cg-drawer/cg-drawer.d.ts.map +1 -0
- package/dist/components/cg-drawer/cg-drawer.js +421 -0
- package/dist/components/cg-drawer/cg-drawer.js.map +1 -0
- package/dist/components/cg-dropdown/cg-dropdown.d.ts +63 -0
- package/dist/components/cg-dropdown/cg-dropdown.d.ts.map +1 -0
- package/dist/components/cg-dropdown/cg-dropdown.js +232 -0
- package/dist/components/cg-dropdown/cg-dropdown.js.map +1 -0
- package/dist/components/cg-droppable/cg-droppable.d.ts +57 -0
- package/dist/components/cg-droppable/cg-droppable.d.ts.map +1 -0
- package/dist/components/cg-droppable/cg-droppable.js +114 -0
- package/dist/components/cg-droppable/cg-droppable.js.map +1 -0
- package/dist/components/cg-empty-state/cg-empty-state.d.ts +54 -0
- package/dist/components/cg-empty-state/cg-empty-state.d.ts.map +1 -0
- package/dist/components/cg-empty-state/cg-empty-state.js +201 -0
- package/dist/components/cg-empty-state/cg-empty-state.js.map +1 -0
- package/dist/components/cg-file-input/cg-file-input.d.ts +101 -0
- package/dist/components/cg-file-input/cg-file-input.d.ts.map +1 -0
- package/dist/components/cg-file-input/cg-file-input.js +684 -0
- package/dist/components/cg-file-input/cg-file-input.js.map +1 -0
- package/dist/components/cg-filter-bar/cg-filter-bar.d.ts +50 -0
- package/dist/components/cg-filter-bar/cg-filter-bar.d.ts.map +1 -0
- package/dist/components/cg-filter-bar/cg-filter-bar.js +115 -0
- package/dist/components/cg-filter-bar/cg-filter-bar.js.map +1 -0
- package/dist/components/cg-filter-chip/cg-filter-chip.d.ts +55 -0
- package/dist/components/cg-filter-chip/cg-filter-chip.d.ts.map +1 -0
- package/dist/components/cg-filter-chip/cg-filter-chip.js +213 -0
- package/dist/components/cg-filter-chip/cg-filter-chip.js.map +1 -0
- package/dist/components/cg-focus-scope/cg-focus-scope.d.ts +38 -0
- package/dist/components/cg-focus-scope/cg-focus-scope.d.ts.map +1 -0
- package/dist/components/cg-focus-scope/cg-focus-scope.js +47 -0
- package/dist/components/cg-focus-scope/cg-focus-scope.js.map +1 -0
- package/dist/components/cg-follow-up/cg-follow-up.d.ts +32 -0
- package/dist/components/cg-follow-up/cg-follow-up.d.ts.map +1 -0
- package/dist/components/cg-follow-up/cg-follow-up.js +233 -0
- package/dist/components/cg-follow-up/cg-follow-up.js.map +1 -0
- package/dist/components/cg-form/cg-form.d.ts +32 -0
- package/dist/components/cg-form/cg-form.d.ts.map +1 -0
- package/dist/components/cg-form/cg-form.js +109 -0
- package/dist/components/cg-form/cg-form.js.map +1 -0
- package/dist/components/cg-hover-card/cg-hover-card.d.ts +49 -0
- package/dist/components/cg-hover-card/cg-hover-card.d.ts.map +1 -0
- package/dist/components/cg-hover-card/cg-hover-card.js +149 -0
- package/dist/components/cg-hover-card/cg-hover-card.js.map +1 -0
- package/dist/components/cg-icon/cg-icon.d.ts +28 -0
- package/dist/components/cg-icon/cg-icon.d.ts.map +1 -0
- package/dist/components/cg-icon/cg-icon.js +339 -0
- package/dist/components/cg-icon/cg-icon.js.map +1 -0
- package/dist/components/cg-icon/solar-icons.d.ts +12 -0
- package/dist/components/cg-icon/solar-icons.d.ts.map +1 -0
- package/dist/components/cg-image/cg-image.d.ts +31 -0
- package/dist/components/cg-image/cg-image.d.ts.map +1 -0
- package/dist/components/cg-image/cg-image.js +168 -0
- package/dist/components/cg-image/cg-image.js.map +1 -0
- package/dist/components/cg-image-block/cg-image-block.d.ts +36 -0
- package/dist/components/cg-image-block/cg-image-block.d.ts.map +1 -0
- package/dist/components/cg-image-block/cg-image-block.js +214 -0
- package/dist/components/cg-image-block/cg-image-block.js.map +1 -0
- package/dist/components/cg-image-gallery/cg-image-gallery.d.ts +34 -0
- package/dist/components/cg-image-gallery/cg-image-gallery.d.ts.map +1 -0
- package/dist/components/cg-image-gallery/cg-image-gallery.js +158 -0
- package/dist/components/cg-image-gallery/cg-image-gallery.js.map +1 -0
- package/dist/components/cg-input/cg-input.d.ts +65 -0
- package/dist/components/cg-input/cg-input.d.ts.map +1 -0
- package/dist/components/cg-input/cg-input.js +425 -0
- package/dist/components/cg-input/cg-input.js.map +1 -0
- package/dist/components/cg-kanban/cg-kanban.d.ts +44 -0
- package/dist/components/cg-kanban/cg-kanban.d.ts.map +1 -0
- package/dist/components/cg-kanban/cg-kanban.js +86 -0
- package/dist/components/cg-kanban/cg-kanban.js.map +1 -0
- package/dist/components/cg-kanban-column/cg-kanban-column.d.ts +58 -0
- package/dist/components/cg-kanban-column/cg-kanban-column.d.ts.map +1 -0
- package/dist/components/cg-kanban-column/cg-kanban-column.js +144 -0
- package/dist/components/cg-kanban-column/cg-kanban-column.js.map +1 -0
- package/dist/components/cg-kbd/cg-kbd.d.ts +27 -0
- package/dist/components/cg-kbd/cg-kbd.d.ts.map +1 -0
- package/dist/components/cg-kbd/cg-kbd.js +91 -0
- package/dist/components/cg-kbd/cg-kbd.js.map +1 -0
- package/dist/components/cg-label/cg-label.d.ts +26 -0
- package/dist/components/cg-label/cg-label.d.ts.map +1 -0
- package/dist/components/cg-label/cg-label.js +89 -0
- package/dist/components/cg-label/cg-label.js.map +1 -0
- package/dist/components/cg-link/cg-link.d.ts +27 -0
- package/dist/components/cg-link/cg-link.d.ts.map +1 -0
- package/dist/components/cg-link/cg-link.js +152 -0
- package/dist/components/cg-link/cg-link.js.map +1 -0
- package/dist/components/cg-list/cg-list.d.ts +37 -0
- package/dist/components/cg-list/cg-list.d.ts.map +1 -0
- package/dist/components/cg-list/cg-list.js +314 -0
- package/dist/components/cg-list/cg-list.js.map +1 -0
- package/dist/components/cg-listbox/cg-listbox.d.ts +38 -0
- package/dist/components/cg-listbox/cg-listbox.d.ts.map +1 -0
- package/dist/components/cg-listbox/cg-listbox.js +258 -0
- package/dist/components/cg-listbox/cg-listbox.js.map +1 -0
- package/dist/components/cg-markdown/cg-markdown.d.ts +41 -0
- package/dist/components/cg-markdown/cg-markdown.d.ts.map +1 -0
- package/dist/components/cg-markdown/cg-markdown.js +542 -0
- package/dist/components/cg-markdown/cg-markdown.js.map +1 -0
- package/dist/components/cg-menubar/cg-menubar.d.ts +64 -0
- package/dist/components/cg-menubar/cg-menubar.d.ts.map +1 -0
- package/dist/components/cg-menubar/cg-menubar.js +338 -0
- package/dist/components/cg-menubar/cg-menubar.js.map +1 -0
- package/dist/components/cg-meter/cg-meter.d.ts +36 -0
- package/dist/components/cg-meter/cg-meter.d.ts.map +1 -0
- package/dist/components/cg-meter/cg-meter.js +204 -0
- package/dist/components/cg-meter/cg-meter.js.map +1 -0
- package/dist/components/cg-metric-card/cg-metric-card.d.ts +51 -0
- package/dist/components/cg-metric-card/cg-metric-card.d.ts.map +1 -0
- package/dist/components/cg-metric-card/cg-metric-card.js +312 -0
- package/dist/components/cg-metric-card/cg-metric-card.js.map +1 -0
- package/dist/components/cg-mfa-prompt/cg-mfa-prompt.d.ts +77 -0
- package/dist/components/cg-mfa-prompt/cg-mfa-prompt.d.ts.map +1 -0
- package/dist/components/cg-mfa-prompt/cg-mfa-prompt.js +245 -0
- package/dist/components/cg-mfa-prompt/cg-mfa-prompt.js.map +1 -0
- package/dist/components/cg-modal/cg-modal.d.ts +55 -0
- package/dist/components/cg-modal/cg-modal.d.ts.map +1 -0
- package/dist/components/cg-modal/cg-modal.js +409 -0
- package/dist/components/cg-modal/cg-modal.js.map +1 -0
- package/dist/components/cg-navbar/cg-navbar.d.ts +87 -0
- package/dist/components/cg-navbar/cg-navbar.d.ts.map +1 -0
- package/dist/components/cg-navbar/cg-navbar.js +473 -0
- package/dist/components/cg-navbar/cg-navbar.js.map +1 -0
- package/dist/components/cg-navigation-menu/cg-navigation-menu.d.ts +46 -0
- package/dist/components/cg-navigation-menu/cg-navigation-menu.d.ts.map +1 -0
- package/dist/components/cg-navigation-menu/cg-navigation-menu.js +257 -0
- package/dist/components/cg-navigation-menu/cg-navigation-menu.js.map +1 -0
- package/dist/components/cg-number-input/cg-number-input.d.ts +47 -0
- package/dist/components/cg-number-input/cg-number-input.d.ts.map +1 -0
- package/dist/components/cg-number-input/cg-number-input.js +266 -0
- package/dist/components/cg-number-input/cg-number-input.js.map +1 -0
- package/dist/components/cg-otp-input/cg-otp-input.d.ts +44 -0
- package/dist/components/cg-otp-input/cg-otp-input.d.ts.map +1 -0
- package/dist/components/cg-otp-input/cg-otp-input.js +188 -0
- package/dist/components/cg-otp-input/cg-otp-input.js.map +1 -0
- package/dist/components/cg-pagination/cg-pagination.d.ts +34 -0
- package/dist/components/cg-pagination/cg-pagination.d.ts.map +1 -0
- package/dist/components/cg-pagination/cg-pagination.js +232 -0
- package/dist/components/cg-pagination/cg-pagination.js.map +1 -0
- package/dist/components/cg-password-input/cg-password-input.d.ts +43 -0
- package/dist/components/cg-password-input/cg-password-input.d.ts.map +1 -0
- package/dist/components/cg-password-input/cg-password-input.js +261 -0
- package/dist/components/cg-password-input/cg-password-input.js.map +1 -0
- package/dist/components/cg-phone-input/cg-phone-input.d.ts +93 -0
- package/dist/components/cg-phone-input/cg-phone-input.d.ts.map +1 -0
- package/dist/components/cg-phone-input/cg-phone-input.js +972 -0
- package/dist/components/cg-phone-input/cg-phone-input.js.map +1 -0
- package/dist/components/cg-phone-input/countries.d.ts +38 -0
- package/dist/components/cg-phone-input/countries.d.ts.map +1 -0
- package/dist/components/cg-popover/cg-popover.d.ts +53 -0
- package/dist/components/cg-popover/cg-popover.d.ts.map +1 -0
- package/dist/components/cg-popover/cg-popover.js +215 -0
- package/dist/components/cg-popover/cg-popover.js.map +1 -0
- package/dist/components/cg-portal/cg-portal.d.ts +73 -0
- package/dist/components/cg-portal/cg-portal.d.ts.map +1 -0
- package/dist/components/cg-portal/cg-portal.js +80 -0
- package/dist/components/cg-portal/cg-portal.js.map +1 -0
- package/dist/components/cg-progress-bar/cg-progress-bar.d.ts +51 -0
- package/dist/components/cg-progress-bar/cg-progress-bar.d.ts.map +1 -0
- package/dist/components/cg-progress-bar/cg-progress-bar.js +267 -0
- package/dist/components/cg-progress-bar/cg-progress-bar.js.map +1 -0
- package/dist/components/cg-radio/cg-radio.d.ts +43 -0
- package/dist/components/cg-radio/cg-radio.d.ts.map +1 -0
- package/dist/components/cg-radio/cg-radio.js +268 -0
- package/dist/components/cg-radio/cg-radio.js.map +1 -0
- package/dist/components/cg-radio-group/cg-radio-group.d.ts +49 -0
- package/dist/components/cg-radio-group/cg-radio-group.d.ts.map +1 -0
- package/dist/components/cg-radio-group/cg-radio-group.js +142 -0
- package/dist/components/cg-radio-group/cg-radio-group.js.map +1 -0
- package/dist/components/cg-rating/cg-rating.d.ts +41 -0
- package/dist/components/cg-rating/cg-rating.d.ts.map +1 -0
- package/dist/components/cg-rating/cg-rating.js +201 -0
- package/dist/components/cg-rating/cg-rating.js.map +1 -0
- package/dist/components/cg-resizable/cg-resizable.d.ts +33 -0
- package/dist/components/cg-resizable/cg-resizable.d.ts.map +1 -0
- package/dist/components/cg-resizable/cg-resizable.js +236 -0
- package/dist/components/cg-resizable/cg-resizable.js.map +1 -0
- package/dist/components/cg-scroll-area/cg-scroll-area.d.ts +27 -0
- package/dist/components/cg-scroll-area/cg-scroll-area.d.ts.map +1 -0
- package/dist/components/cg-scroll-area/cg-scroll-area.js +111 -0
- package/dist/components/cg-scroll-area/cg-scroll-area.js.map +1 -0
- package/dist/components/cg-search-input/cg-search-input.d.ts +62 -0
- package/dist/components/cg-search-input/cg-search-input.d.ts.map +1 -0
- package/dist/components/cg-search-input/cg-search-input.js +106 -0
- package/dist/components/cg-search-input/cg-search-input.js.map +1 -0
- package/dist/components/cg-segmented-control/cg-segmented-control.d.ts +52 -0
- package/dist/components/cg-segmented-control/cg-segmented-control.d.ts.map +1 -0
- package/dist/components/cg-segmented-control/cg-segmented-control.js +182 -0
- package/dist/components/cg-segmented-control/cg-segmented-control.js.map +1 -0
- package/dist/components/cg-select/cg-select.d.ts +67 -0
- package/dist/components/cg-select/cg-select.d.ts.map +1 -0
- package/dist/components/cg-select/cg-select.js +302 -0
- package/dist/components/cg-select/cg-select.js.map +1 -0
- package/dist/components/cg-separator/cg-separator.d.ts +25 -0
- package/dist/components/cg-separator/cg-separator.d.ts.map +1 -0
- package/dist/components/cg-separator/cg-separator.js +105 -0
- package/dist/components/cg-separator/cg-separator.js.map +1 -0
- package/dist/components/cg-sheet/cg-sheet.d.ts +39 -0
- package/dist/components/cg-sheet/cg-sheet.d.ts.map +1 -0
- package/dist/components/cg-sheet/cg-sheet.js +211 -0
- package/dist/components/cg-sheet/cg-sheet.js.map +1 -0
- package/dist/components/cg-sidebar/cg-sidebar.d.ts +56 -0
- package/dist/components/cg-sidebar/cg-sidebar.d.ts.map +1 -0
- package/dist/components/cg-sidebar/cg-sidebar.js +266 -0
- package/dist/components/cg-sidebar/cg-sidebar.js.map +1 -0
- package/dist/components/cg-skeleton/cg-skeleton.d.ts +31 -0
- package/dist/components/cg-skeleton/cg-skeleton.d.ts.map +1 -0
- package/dist/components/cg-skeleton/cg-skeleton.js +136 -0
- package/dist/components/cg-skeleton/cg-skeleton.js.map +1 -0
- package/dist/components/cg-slider/cg-slider.d.ts +51 -0
- package/dist/components/cg-slider/cg-slider.d.ts.map +1 -0
- package/dist/components/cg-slider/cg-slider.js +375 -0
- package/dist/components/cg-slider/cg-slider.js.map +1 -0
- package/dist/components/cg-sortable/cg-sortable.d.ts +72 -0
- package/dist/components/cg-sortable/cg-sortable.d.ts.map +1 -0
- package/dist/components/cg-sortable/cg-sortable.js +177 -0
- package/dist/components/cg-sortable/cg-sortable.js.map +1 -0
- package/dist/components/cg-spinner/cg-spinner.d.ts +28 -0
- package/dist/components/cg-spinner/cg-spinner.d.ts.map +1 -0
- package/dist/components/cg-spinner/cg-spinner.js +119 -0
- package/dist/components/cg-spinner/cg-spinner.js.map +1 -0
- package/dist/components/cg-split-button/cg-split-button.d.ts +66 -0
- package/dist/components/cg-split-button/cg-split-button.d.ts.map +1 -0
- package/dist/components/cg-split-button/cg-split-button.js +330 -0
- package/dist/components/cg-split-button/cg-split-button.js.map +1 -0
- package/dist/components/cg-stack/cg-stack.d.ts +25 -0
- package/dist/components/cg-stack/cg-stack.d.ts.map +1 -0
- package/dist/components/cg-stack/cg-stack.js +85 -0
- package/dist/components/cg-stack/cg-stack.js.map +1 -0
- package/dist/components/cg-steps/cg-steps.d.ts +37 -0
- package/dist/components/cg-steps/cg-steps.d.ts.map +1 -0
- package/dist/components/cg-steps/cg-steps.js +251 -0
- package/dist/components/cg-steps/cg-steps.js.map +1 -0
- package/dist/components/cg-switch/cg-switch.d.ts +38 -0
- package/dist/components/cg-switch/cg-switch.d.ts.map +1 -0
- package/dist/components/cg-switch/cg-switch.js +210 -0
- package/dist/components/cg-switch/cg-switch.js.map +1 -0
- package/dist/components/cg-table/cg-table.d.ts +67 -0
- package/dist/components/cg-table/cg-table.d.ts.map +1 -0
- package/dist/components/cg-table/cg-table.js +395 -0
- package/dist/components/cg-table/cg-table.js.map +1 -0
- package/dist/components/cg-tabs/cg-tabs.d.ts +39 -0
- package/dist/components/cg-tabs/cg-tabs.d.ts.map +1 -0
- package/dist/components/cg-tabs/cg-tabs.js +241 -0
- package/dist/components/cg-tabs/cg-tabs.js.map +1 -0
- package/dist/components/cg-tag-input/cg-tag-input.d.ts +50 -0
- package/dist/components/cg-tag-input/cg-tag-input.d.ts.map +1 -0
- package/dist/components/cg-tag-input/cg-tag-input.js +307 -0
- package/dist/components/cg-tag-input/cg-tag-input.js.map +1 -0
- package/dist/components/cg-text/cg-text.d.ts +30 -0
- package/dist/components/cg-text/cg-text.d.ts.map +1 -0
- package/dist/components/cg-text/cg-text.js +126 -0
- package/dist/components/cg-text/cg-text.js.map +1 -0
- package/dist/components/cg-textarea/cg-textarea.d.ts +57 -0
- package/dist/components/cg-textarea/cg-textarea.d.ts.map +1 -0
- package/dist/components/cg-textarea/cg-textarea.js +295 -0
- package/dist/components/cg-textarea/cg-textarea.js.map +1 -0
- package/dist/components/cg-theme/cg-theme.d.ts +82 -0
- package/dist/components/cg-theme/cg-theme.d.ts.map +1 -0
- package/dist/components/cg-theme/cg-theme.js +91 -0
- package/dist/components/cg-theme/cg-theme.js.map +1 -0
- package/dist/components/cg-theme-editor/cg-theme-editor.d.ts +98 -0
- package/dist/components/cg-theme-editor/cg-theme-editor.d.ts.map +1 -0
- package/dist/components/cg-theme-editor/cg-theme-editor.js +341 -0
- package/dist/components/cg-theme-editor/cg-theme-editor.js.map +1 -0
- package/dist/components/cg-time-picker/cg-time-picker.d.ts +55 -0
- package/dist/components/cg-time-picker/cg-time-picker.d.ts.map +1 -0
- package/dist/components/cg-time-picker/cg-time-picker.js +417 -0
- package/dist/components/cg-time-picker/cg-time-picker.js.map +1 -0
- package/dist/components/cg-timeline/cg-timeline.d.ts +70 -0
- package/dist/components/cg-timeline/cg-timeline.d.ts.map +1 -0
- package/dist/components/cg-timeline/cg-timeline.js +131 -0
- package/dist/components/cg-timeline/cg-timeline.js.map +1 -0
- package/dist/components/cg-timeline-event/cg-timeline-event.d.ts +59 -0
- package/dist/components/cg-timeline-event/cg-timeline-event.d.ts.map +1 -0
- package/dist/components/cg-timeline-event/cg-timeline-event.js +190 -0
- package/dist/components/cg-timeline-event/cg-timeline-event.js.map +1 -0
- package/dist/components/cg-toaster/cg-toaster.d.ts +44 -0
- package/dist/components/cg-toaster/cg-toaster.d.ts.map +1 -0
- package/dist/components/cg-toaster/cg-toaster.js +226 -0
- package/dist/components/cg-toaster/cg-toaster.js.map +1 -0
- package/dist/components/cg-toggle/cg-toggle.d.ts +38 -0
- package/dist/components/cg-toggle/cg-toggle.d.ts.map +1 -0
- package/dist/components/cg-toggle/cg-toggle.js +204 -0
- package/dist/components/cg-toggle/cg-toggle.js.map +1 -0
- package/dist/components/cg-toggle-group/cg-toggle-group.d.ts +39 -0
- package/dist/components/cg-toggle-group/cg-toggle-group.d.ts.map +1 -0
- package/dist/components/cg-toggle-group/cg-toggle-group.js +112 -0
- package/dist/components/cg-toggle-group/cg-toggle-group.js.map +1 -0
- package/dist/components/cg-tooltip/cg-tooltip.d.ts +59 -0
- package/dist/components/cg-tooltip/cg-tooltip.d.ts.map +1 -0
- package/dist/components/cg-tooltip/cg-tooltip.js +277 -0
- package/dist/components/cg-tooltip/cg-tooltip.js.map +1 -0
- package/dist/components/cg-tree-view/cg-tree-view.d.ts +42 -0
- package/dist/components/cg-tree-view/cg-tree-view.d.ts.map +1 -0
- package/dist/components/cg-tree-view/cg-tree-view.js +244 -0
- package/dist/components/cg-tree-view/cg-tree-view.js.map +1 -0
- package/dist/components/cg-visually-hidden/cg-visually-hidden.d.ts +42 -0
- package/dist/components/cg-visually-hidden/cg-visually-hidden.d.ts.map +1 -0
- package/dist/components/cg-visually-hidden/cg-visually-hidden.js +40 -0
- package/dist/components/cg-visually-hidden/cg-visually-hidden.js.map +1 -0
- package/dist/foundation.d.ts +116 -0
- package/dist/foundation.d.ts.map +1 -0
- package/dist/foundation.js +211 -0
- package/dist/foundation.js.map +1 -0
- package/dist/index.d.ts +228 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +407 -0
- package/dist/index.js.map +1 -0
- package/dist/lazy.d.ts +9 -0
- package/dist/lazy.d.ts.map +1 -0
- package/dist/lazy.js +38 -0
- package/dist/lazy.js.map +1 -0
- package/dist/styles/ai-effects.css.d.ts +11 -0
- package/dist/styles/ai-effects.css.d.ts.map +1 -0
- package/dist/styles/base.css.d.ts +12 -0
- package/dist/styles/base.css.d.ts.map +1 -0
- package/dist/styles/elevation.css.d.ts +11 -0
- package/dist/styles/elevation.css.d.ts.map +1 -0
- package/dist/styles/focus.css.d.ts +11 -0
- package/dist/styles/focus.css.d.ts.map +1 -0
- package/dist/styles/index.d.ts +8 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/styles/menu.css.d.ts +14 -0
- package/dist/styles/menu.css.d.ts.map +1 -0
- package/dist/styles/motion.css.d.ts +41 -0
- package/dist/styles/motion.css.d.ts.map +1 -0
- package/dist/styles/premium.css.d.ts +75 -0
- package/dist/styles/premium.css.d.ts.map +1 -0
- package/dist/utils/drag-manager.d.ts +40 -0
- package/dist/utils/drag-manager.d.ts.map +1 -0
- package/dist/utils/floating.d.ts +55 -0
- package/dist/utils/floating.d.ts.map +1 -0
- package/dist/utils/focus-trap.d.ts +37 -0
- package/dist/utils/focus-trap.d.ts.map +1 -0
- package/dist/utils/lazy.d.ts +47 -0
- package/dist/utils/lazy.d.ts.map +1 -0
- package/dist/utils/outside-click.d.ts +24 -0
- package/dist/utils/outside-click.d.ts.map +1 -0
- package/dist/utils/roving-index.d.ts +54 -0
- package/dist/utils/roving-index.d.ts.map +1 -0
- package/dist/utils/sanitize.d.ts +7 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/text-scramble.d.ts +144 -0
- package/dist/utils/text-scramble.d.ts.map +1 -0
- package/package.json +887 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-insight-card.js","sources":["../../../src/components/ai-insight-card/ai-insight-card.ts"],"sourcesContent":["/**\n * @element ai-insight-card\n * Actionable AI insight card with type icons, expandable detail, sources, and status.\n *\n * @fires {CustomEvent<{type, text}>} ai-insight-click\n * @fires {CustomEvent<{type, text, expanded}>} ai-insight-expand\n * @fires {CustomEvent<{type, text}>} ai-insight-dismiss\n * @fires {CustomEvent<{type, text}>} ai-insight-bookmark\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { property, customElement } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, shimmerKeyframes } from '../../styles/index.js';\n\ninterface Source {\n title: string;\n url?: string;\n relevance?: number;\n}\n\n@customElement('ai-insight-card')\nexport class AiInsightCard extends LitElement {\n static override styles = [hostBlock, reducedMotion, shimmerKeyframes, css`\n :host { display: block; }\n\n .card {\n display: flex;\n gap: var(--cg-spacing-16);\n padding: var(--cg-spacing-20);\n background: var(--cg-color-surface-cards-background);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-component-card-radius);\n cursor: pointer;\n position: relative;\n transition:\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .card:hover {\n border-color: var(--cg-color-surface-cards-hover-border);\n transform: translateY(-1px);\n }\n .card:active { transform: scale(var(--cg-interaction-press-scale)); }\n .card:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong);\n }\n .card:focus-within .actions { opacity: 1; }\n .card.selected {\n border-color: var(--cg-color-action-primary-background-default);\n background: var(--cg-overlay-accent-subtle);\n }\n\n /* ── Status dot ── */\n .status-dot {\n position: absolute;\n top: var(--cg-spacing-12);\n right: var(--cg-spacing-12);\n width: var(--cg-spacing-6);\n height: var(--cg-spacing-6);\n border-radius: var(--cg-border-radius-full);\n }\n .status-dot.new { background: var(--cg-color-action-primary-background-default); }\n .status-dot.read { background: var(--cg-color-input-text-placeholder); }\n\n /* ── Icon ── */\n .icon-area {\n width: var(--cg-spacing-40);\n height: var(--cg-spacing-40);\n border-radius: var(--cg-border-radius-full);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n .icon-area svg { width: var(--cg-icon-size-100); height: var(--cg-icon-size-100); }\n .icon-area.explanation { background: var(--cg-color-status-info-background-default); border: var(--cg-border-width-50) solid var(--cg-color-status-info-border-default); color: var(--cg-color-status-info-text-default); }\n .icon-area.forecast { background: var(--cg-overlay-accent-light); border: var(--cg-border-width-50) solid var(--cg-overlay-accent-medium); color: var(--cg-color-surface-base-text); }\n .icon-area.anomaly { background: var(--cg-color-status-error-background-default); border: var(--cg-border-width-50) solid var(--cg-color-status-error-border-default); color: var(--cg-color-status-error-text-default); }\n .icon-area.optimization { background: var(--cg-color-status-warning-background-default); border: var(--cg-border-width-50) solid var(--cg-color-status-warning-border-default); color: var(--cg-color-status-warning-text-default); }\n .icon-area.classification { background: var(--cg-color-status-success-background-default); border: var(--cg-border-width-50) solid var(--cg-color-status-success-border-default); color: var(--cg-color-status-success-text-default); }\n\n .content { flex: 1; min-width: 0; }\n\n .type-label {\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-medium);\n text-transform: uppercase;\n letter-spacing: var(--cg-letter-spacing-wide);\n color: var(--cg-color-input-text-placeholder);\n margin-bottom: var(--cg-spacing-4);\n }\n\n .insight-text {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-base-text);\n line-height: var(--cg-line-height-normal);\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n .card.expanded .insight-text {\n -webkit-line-clamp: unset;\n display: block;\n }\n\n /* ── Meta row ── */\n .meta {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n margin-top: var(--cg-spacing-12);\n padding-top: var(--cg-spacing-8);\n border-top: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-input-text-placeholder);\n }\n .meta-dot {\n width: var(--cg-spacing-2);\n height: var(--cg-spacing-2);\n border-radius: var(--cg-border-radius-full);\n background: var(--cg-color-input-text-placeholder);\n }\n .confidence { font-weight: var(--cg-font-weight-medium); }\n\n /* ── Expanded detail ── */\n .detail {\n margin-top: var(--cg-spacing-12);\n padding-top: var(--cg-spacing-12);\n border-top: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n animation: detailReveal var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out) both;\n }\n @keyframes detailReveal {\n from { opacity: 0; transform: translateY(-4px); }\n to { opacity: 1; transform: translateY(0); }\n }\n .sources-label {\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-medium);\n color: var(--cg-color-input-text-placeholder);\n margin-bottom: var(--cg-spacing-8);\n text-transform: uppercase;\n letter-spacing: var(--cg-letter-spacing-wide);\n }\n .source {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-6);\n padding: var(--cg-spacing-4) 0;\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-input-text-placeholder);\n }\n .source a {\n color: var(--cg-color-surface-base-text);\n text-decoration: none;\n font-weight: var(--cg-font-weight-medium);\n }\n .source a:hover { text-decoration: underline; }\n .source a:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong);\n border-radius: var(--cg-border-radius-50);\n }\n .source-dot { width: var(--cg-spacing-4); height: var(--cg-spacing-4); border-radius: var(--cg-border-radius-full); flex-shrink: 0; }\n .source-dot.high { background: var(--cg-color-status-success-text-default); }\n .source-dot.medium { background: var(--cg-color-status-warning-text-default); }\n .source-dot.low { background: var(--cg-color-input-text-placeholder); }\n\n /* ── Action buttons ── */\n .actions {\n display: flex;\n gap: var(--cg-spacing-4);\n position: absolute;\n top: var(--cg-spacing-8);\n right: var(--cg-spacing-8);\n opacity: 0;\n transition: opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .card:hover .actions { opacity: 1; }\n\n /* ── Skeleton ── */\n .skeleton {\n display: flex;\n gap: var(--cg-spacing-16);\n padding: var(--cg-spacing-20);\n background: var(--cg-color-surface-cards-background);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-component-card-radius);\n }\n .skel-icon {\n width: var(--cg-spacing-40); height: var(--cg-spacing-40);\n border-radius: var(--cg-border-radius-50);\n background: linear-gradient(90deg, var(--cg-color-surface-container-background) 25%, var(--cg-color-surface-container-border) 50%, var(--cg-color-surface-container-background) 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s linear infinite;\n }\n .skel-lines { flex: 1; display: flex; flex-direction: column; gap: var(--cg-spacing-8); }\n .skel-line {\n height: var(--cg-spacing-8);\n border-radius: var(--cg-border-radius-50);\n background: linear-gradient(90deg, var(--cg-color-surface-container-background) 25%, var(--cg-color-surface-container-border) 50%, var(--cg-color-surface-container-background) 75%);\n background-size: 200% 100%;\n animation: shimmer 1.5s linear infinite;\n }\n .skel-line:nth-child(1) { width: 40%; }\n .skel-line:nth-child(2) { width: 90%; }\n .skel-line:nth-child(3) { width: 60%; }\n\n @media (prefers-reduced-motion: reduce) {\n .card:hover { transform: none; }\n .detail { animation: none; }\n }\n `];\n\n @property() type: 'explanation' | 'forecast' | 'anomaly' | 'optimization' | 'classification' = 'explanation';\n @property() text = '';\n @property({ type: Number }) confidence = 0;\n @property() timestamp = '';\n @property({ type: Boolean }) expandable = false;\n @property({ type: Boolean }) expanded = false;\n @property({ type: Array }) sources: Source[] = [];\n @property() status: 'new' | 'read' | 'dismissed' | '' = '';\n @property({ type: Boolean }) loading = false;\n @property({ type: Boolean }) selected = false;\n\n private _getIconName(): string {\n const icons: Record<string, string> = {\n explanation: 'info',\n forecast: 'chart',\n anomaly: 'warning',\n optimization: 'sparkle',\n classification: 'filter',\n };\n return icons[this.type] || 'info';\n }\n\n private _handleClick() {\n if (this.expandable) {\n this.expanded = !this.expanded;\n this.dispatchEvent(new CustomEvent('ai-insight-expand', { bubbles: true, composed: true, detail: { expanded: this.expanded, type: this.type } }));\n }\n this.dispatchEvent(new CustomEvent('ai-insight-click', { bubbles: true, composed: true, detail: { type: this.type, text: this.text, confidence: this.confidence } }));\n }\n\n private _handleDismiss(e: Event) {\n e.stopPropagation();\n this.dispatchEvent(new CustomEvent('ai-insight-dismiss', { bubbles: true, composed: true, detail: { type: this.type, text: this.text } }));\n }\n\n private _handleBookmark(e: Event) {\n e.stopPropagation();\n this.dispatchEvent(new CustomEvent('ai-insight-bookmark', { bubbles: true, composed: true, detail: { type: this.type, text: this.text } }));\n }\n\n private _handleKeyDown(e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); this._handleClick(); }\n }\n\n private _relevanceClass(r?: number): string {\n if (!r) return 'low';\n return r >= 0.7 ? 'high' : r >= 0.4 ? 'medium' : 'low';\n }\n\n override render() {\n if (this.loading) {\n return html`\n <div class=\"skeleton\" aria-label=\"Loading insight\">\n <div class=\"skel-icon\"></div>\n <div class=\"skel-lines\"><div class=\"skel-line\"></div><div class=\"skel-line\"></div><div class=\"skel-line\"></div></div>\n </div>\n `;\n }\n if (!this.text) return nothing;\n\n return html`\n <div class=\"card ${this.expanded ? 'expanded' : ''} ${this.selected ? 'selected' : ''}\"\n role=\"article\" tabindex=\"0\" aria-label=\"${this.type} insight\"\n aria-expanded=${this.expandable ? String(this.expanded) : nothing}\n @click=${this._handleClick} @keydown=${this._handleKeyDown}>\n\n ${this.status && this.status !== 'dismissed' ? html`<div class=\"status-dot ${this.status}\" aria-hidden=\"true\"></div>` : nothing}\n\n <div class=\"actions\">\n <cg-button variant=\"tertiary\" size=\"sm\" rounded=\"full\" label=\"Bookmark\" @click=${this._handleBookmark}>\n <cg-icon name=\"star\" size=\"xs\"></cg-icon>\n </cg-button>\n <cg-button variant=\"tertiary\" size=\"sm\" rounded=\"full\" label=\"Dismiss\" @click=${this._handleDismiss}>\n <cg-icon name=\"close\" size=\"xs\"></cg-icon>\n </cg-button>\n </div>\n\n <div class=\"icon-area ${this.type}\" aria-hidden=\"true\"><cg-icon name=\"${this._getIconName()}\" size=\"sm\"></cg-icon></div>\n\n <div class=\"content\">\n <div class=\"type-label\">${this.type}</div>\n <div class=\"insight-text\">${this.text}</div>\n\n <div class=\"meta\">\n ${this.confidence > 0 ? html`<span class=\"confidence\">${Math.round(this.confidence * 100)}%</span>` : nothing}\n ${this.confidence > 0 && this.timestamp ? html`<span class=\"meta-dot\"></span>` : nothing}\n ${this.timestamp ? html`<span>${this.timestamp}</span>` : nothing}\n ${(this.confidence > 0 || this.timestamp) && this.sources.length > 0 ? html`<span class=\"meta-dot\"></span>` : nothing}\n ${this.sources.length > 0 ? html`<span>${this.sources.length} source${this.sources.length > 1 ? 's' : ''}</span>` : nothing}\n </div>\n\n ${this.expanded && this.sources.length > 0 ? html`\n <div class=\"detail\">\n <div class=\"sources-label\">Sources</div>\n ${this.sources.map(s => html`\n <div class=\"source\">\n <div class=\"source-dot ${this._relevanceClass(s.relevance)}\"></div>\n ${s.url ? html`<a href=\"${s.url}\" target=\"_blank\" rel=\"noopener\">${s.title}</a>` : html`<span>${s.title}</span>`}\n </div>\n `)}\n </div>\n ` : nothing}\n </div>\n </div>\n `;\n }\n}\n"],"names":["AiInsightCard","LitElement","r","html","nothing","s","hostBlock","reducedMotion","shimmerKeyframes","css","__decorateClass","property","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export declare class AiJsonViewer extends LitElement {
|
|
3
|
+
static styles: import('lit').CSSResult[];
|
|
4
|
+
rounded: 'none' | 'sm' | 'md' | 'lg' | 'full';
|
|
5
|
+
data: unknown;
|
|
6
|
+
expanded: boolean;
|
|
7
|
+
maxDepth: number;
|
|
8
|
+
private _collapsed;
|
|
9
|
+
private _isCollapsed;
|
|
10
|
+
private _togglePath;
|
|
11
|
+
private _emitPathClick;
|
|
12
|
+
private _countItems;
|
|
13
|
+
private _seen;
|
|
14
|
+
private _renderValue;
|
|
15
|
+
private _renderArray;
|
|
16
|
+
private _renderObject;
|
|
17
|
+
render(): import('lit').TemplateResult<1>;
|
|
18
|
+
}
|
|
19
|
+
declare global {
|
|
20
|
+
interface HTMLElementTagNameMap {
|
|
21
|
+
'ai-json-viewer': AiJsonViewer;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=ai-json-viewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-json-viewer.d.ts","sourceRoot":"","sources":["../../../src/components/ai-json-viewer/ai-json-viewer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,qBACa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,4BAuFnB;IAC0B,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAQ;IAClD,IAAI,EAAE,OAAO,CAAQ;IACxB,QAAQ,UAAQ;IACO,QAAQ,SAAK;IAExD,OAAO,CAAC,UAAU,CAA0B;IAErD,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,KAAK,CAAiB;IAE9B,OAAO,CAAC,YAAY;IAkCpB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,aAAa;IAuBZ,MAAM;CAQhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { css as v, LitElement as y, html as a } from "lit";
|
|
2
|
+
import { property as p, state as $, customElement as x } from "lit/decorators.js";
|
|
3
|
+
import { h as _, r as m, f as k } from "../../chunks/premium.css-9I4kHrsl.js";
|
|
4
|
+
var w = Object.defineProperty, C = Object.getOwnPropertyDescriptor, d = (e, t, s, o) => {
|
|
5
|
+
for (var r = o > 1 ? void 0 : o ? C(t, s) : t, n = e.length - 1, i; n >= 0; n--)
|
|
6
|
+
(i = e[n]) && (r = (o ? i(t, s, r) : i(r)) || r);
|
|
7
|
+
return o && r && w(t, s, r), r;
|
|
8
|
+
};
|
|
9
|
+
let l = class extends y {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments), this.rounded = "lg", this.data = null, this.expanded = !0, this.maxDepth = 5, this._collapsed = /* @__PURE__ */ new Set(), this._seen = /* @__PURE__ */ new WeakSet();
|
|
12
|
+
}
|
|
13
|
+
_isCollapsed(e) {
|
|
14
|
+
return this.expanded ? this._collapsed.has(e) : !this._collapsed.has(e);
|
|
15
|
+
}
|
|
16
|
+
_togglePath(e) {
|
|
17
|
+
const t = new Set(this._collapsed);
|
|
18
|
+
t.has(e) ? t.delete(e) : t.add(e), this._collapsed = t;
|
|
19
|
+
}
|
|
20
|
+
_emitPathClick(e) {
|
|
21
|
+
this.dispatchEvent(new CustomEvent("ai-json-path-click", {
|
|
22
|
+
detail: { path: e },
|
|
23
|
+
bubbles: !0,
|
|
24
|
+
composed: !0
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
_countItems(e) {
|
|
28
|
+
return Array.isArray(e) ? e.length : e && typeof e == "object" ? Object.keys(e).length : 0;
|
|
29
|
+
}
|
|
30
|
+
_renderValue(e, t, s, o) {
|
|
31
|
+
const r = o ? "" : ",";
|
|
32
|
+
if (e !== null && typeof e == "object") {
|
|
33
|
+
if (this._seen.has(e))
|
|
34
|
+
return a`<span class="null">[Circular]</span>${r}`;
|
|
35
|
+
this._seen.add(e);
|
|
36
|
+
}
|
|
37
|
+
return e === null ? a`<span class="null">null</span>${r}` : typeof e == "string" ? a`<span class="string">"${e}"</span>${r}` : typeof e == "number" ? a`<span class="number">${e}</span>${r}` : typeof e == "boolean" ? a`<span class="boolean">${e}</span>${r}` : Array.isArray(e) ? this._renderArray(e, t, s, r) : typeof e == "object" ? this._renderObject(e, t, s, r) : a`<span class="string">${String(e)}</span>${r}`;
|
|
38
|
+
}
|
|
39
|
+
_renderArray(e, t, s, o) {
|
|
40
|
+
const r = this._isCollapsed(t), n = e.length, i = " ".repeat(s), g = " ".repeat(s + 1);
|
|
41
|
+
return n === 0 ? a`<span class="bracket">[]</span>${o}` : r || s >= this.maxDepth ? a`<button class="toggle" tabindex="0" aria-label="Expand array" @click=${() => this._togglePath(t)}>\u25B6</button><span class="bracket">[</span><span class="collapsed-hint"> ${n} items </span><span class="bracket">]</span>${o}` : a`<button class="toggle" tabindex="0" aria-label="Collapse array" @click=${() => this._togglePath(t)}>\u25BC</button><span class="bracket">[</span>
|
|
42
|
+
${e.map((b, c) => a`<div class="line">${g}${this._renderValue(b, `${t}[${c}]`, s + 1, c === n - 1)}</div>`)}
|
|
43
|
+
<div class="line">${i}<span class="bracket">]</span>${o}<span class="line-count">// ${n} items</span></div>`;
|
|
44
|
+
}
|
|
45
|
+
_renderObject(e, t, s, o) {
|
|
46
|
+
const r = this._isCollapsed(t), n = Object.keys(e), i = n.length, g = " ".repeat(s), b = " ".repeat(s + 1);
|
|
47
|
+
return i === 0 ? a`<span class="bracket">{}</span>${o}` : r || s >= this.maxDepth ? a`<button class="toggle" tabindex="0" aria-label="Expand object" @click=${() => this._togglePath(t)}>\u25B6</button><span class="bracket">{</span><span class="collapsed-hint"> ${i} keys </span><span class="bracket">}</span>${o}` : a`<button class="toggle" tabindex="0" aria-label="Collapse object" @click=${() => this._togglePath(t)}>\u25BC</button><span class="bracket">{</span>
|
|
48
|
+
${n.map((c, f) => {
|
|
49
|
+
const u = t ? `${t}.${c}` : c;
|
|
50
|
+
return a`<div class="line">${b}<span class="key" tabindex="0" role="button" aria-label="Copy path: ${u}" @click=${() => this._emitPathClick(u)} @keydown=${(h) => {
|
|
51
|
+
h.key === "Enter" && this._emitPathClick(u);
|
|
52
|
+
}}>"${c}"</span>: ${this._renderValue(e[c], u, s + 1, f === i - 1)}</div>`;
|
|
53
|
+
})}
|
|
54
|
+
<div class="line">${g}<span class="bracket">}</span>${o}<span class="line-count">// ${i} keys</span></div>`;
|
|
55
|
+
}
|
|
56
|
+
render() {
|
|
57
|
+
return this._seen = /* @__PURE__ */ new WeakSet(), a`
|
|
58
|
+
<div class="root" role="tree" aria-label="JSON viewer">
|
|
59
|
+
<div class="line">${this._renderValue(this.data, "$", 0, !0)}</div>
|
|
60
|
+
</div>
|
|
61
|
+
`;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
l.styles = [_, m, k, v`
|
|
65
|
+
:host {
|
|
66
|
+
font-family: var(--cg-font-family-mono);
|
|
67
|
+
font-size: var(--cg-font-size-sm);
|
|
68
|
+
line-height: 1.6;
|
|
69
|
+
color: var(--cg-color-surface-base-text);
|
|
70
|
+
animation: fadeSlideIn var(--cg-transition-duration-fast) var(--cg-transition-easing-ease-out) both;
|
|
71
|
+
}
|
|
72
|
+
:host([hidden]) { display: none; }
|
|
73
|
+
|
|
74
|
+
.root {
|
|
75
|
+
background: var(--cg-color-surface-cards-background);
|
|
76
|
+
border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);
|
|
77
|
+
border-radius: var(--cg-border-radius-100);
|
|
78
|
+
padding: var(--cg-spacing-12) var(--cg-spacing-16);
|
|
79
|
+
overflow-x: auto;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.line {
|
|
83
|
+
white-space: pre;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.key {
|
|
87
|
+
color: var(--cg-color-status-info-text);
|
|
88
|
+
cursor: pointer;
|
|
89
|
+
}
|
|
90
|
+
.key:hover {
|
|
91
|
+
text-decoration: underline;
|
|
92
|
+
}
|
|
93
|
+
.key:focus-visible {
|
|
94
|
+
outline: 2px solid var(--cg-overlay-accent-strong);
|
|
95
|
+
outline-offset: 1px;
|
|
96
|
+
border-radius: var(--cg-border-radius-25);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.string { color: var(--cg-color-status-success-text-default); }
|
|
100
|
+
.number { color: var(--cg-color-surface-base-text); }
|
|
101
|
+
.boolean { color: var(--cg-color-status-success-text-default); }
|
|
102
|
+
.null { color: var(--cg-color-input-text-placeholder); font-style: italic; }
|
|
103
|
+
|
|
104
|
+
.toggle {
|
|
105
|
+
display: inline-flex;
|
|
106
|
+
align-items: center;
|
|
107
|
+
justify-content: center;
|
|
108
|
+
width: var(--cg-spacing-16);
|
|
109
|
+
height: var(--cg-spacing-16);
|
|
110
|
+
background: none;
|
|
111
|
+
border: none;
|
|
112
|
+
color: var(--cg-color-input-text-placeholder);
|
|
113
|
+
cursor: pointer;
|
|
114
|
+
padding: 0;
|
|
115
|
+
font-size: var(--cg-font-size-xs);
|
|
116
|
+
vertical-align: middle;
|
|
117
|
+
border-radius: var(--cg-border-radius-25);
|
|
118
|
+
transition: color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
|
|
119
|
+
}
|
|
120
|
+
.toggle:hover {
|
|
121
|
+
color: var(--cg-color-surface-base-text);
|
|
122
|
+
}
|
|
123
|
+
.toggle:focus-visible {
|
|
124
|
+
outline: 2px solid var(--cg-overlay-accent-strong);
|
|
125
|
+
outline-offset: 1px;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.collapsed-hint {
|
|
129
|
+
color: var(--cg-color-input-text-placeholder);
|
|
130
|
+
font-style: italic;
|
|
131
|
+
font-size: var(--cg-font-size-xs);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.line-count {
|
|
135
|
+
display: inline;
|
|
136
|
+
color: var(--cg-color-input-text-placeholder);
|
|
137
|
+
font-size: var(--cg-font-size-xs);
|
|
138
|
+
margin-left: var(--cg-spacing-4);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.bracket {
|
|
142
|
+
color: var(--cg-color-input-text-placeholder);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* ── Rounded variants ── */
|
|
146
|
+
:host([rounded="none"]) .root { border-radius: 0; }
|
|
147
|
+
:host([rounded="sm"]) .root { border-radius: var(--cg-border-radius-50); }
|
|
148
|
+
:host([rounded="md"]) .root { border-radius: var(--cg-border-radius-100); }
|
|
149
|
+
:host([rounded="lg"]) .root { border-radius: var(--cg-border-radius-150); }
|
|
150
|
+
:host([rounded="full"]) .root { border-radius: var(--cg-border-radius-full); }
|
|
151
|
+
`];
|
|
152
|
+
d([
|
|
153
|
+
p({ reflect: !0 })
|
|
154
|
+
], l.prototype, "rounded", 2);
|
|
155
|
+
d([
|
|
156
|
+
p({ attribute: !1 })
|
|
157
|
+
], l.prototype, "data", 2);
|
|
158
|
+
d([
|
|
159
|
+
p({ type: Boolean })
|
|
160
|
+
], l.prototype, "expanded", 2);
|
|
161
|
+
d([
|
|
162
|
+
p({ type: Number, attribute: "max-depth" })
|
|
163
|
+
], l.prototype, "maxDepth", 2);
|
|
164
|
+
d([
|
|
165
|
+
$()
|
|
166
|
+
], l.prototype, "_collapsed", 2);
|
|
167
|
+
l = d([
|
|
168
|
+
x("ai-json-viewer")
|
|
169
|
+
], l);
|
|
170
|
+
export {
|
|
171
|
+
l as AiJsonViewer
|
|
172
|
+
};
|
|
173
|
+
//# sourceMappingURL=ai-json-viewer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-json-viewer.js","sources":["../../../src/components/ai-json-viewer/ai-json-viewer.ts"],"sourcesContent":["/**\n * @element ai-json-viewer\n * Interactive JSON tree viewer with collapsible nodes, syntax highlighting,\n * and circular reference detection. Supports nested objects and arrays\n * with expand/collapse per node and item counts.\n *\n * @example\n * ```html\n * <ai-json-viewer .data=${{ name: 'Claude', version: 3 }} expanded max-depth=\"4\"></ai-json-viewer>\n * ```\n *\n * @prop {unknown} data - JSON-serializable data to display\n * @prop {boolean} expanded - Whether nodes start expanded (default true)\n * @prop {number} maxDepth - Maximum nesting depth before auto-collapse (default 5)\n *\n * @fires {CustomEvent<{path: string}>} ai-json-path-click - When a key label is clicked\n *\n * @cssprop [--cg-font-family-mono] - Monospace font for the viewer\n * @cssprop [--cg-color-surface] - Background color of the root container\n * @cssprop [--cg-color-accent] - Accent color for number values\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, fadeSlideInKeyframes } from '../../styles/index.js';\n\n@customElement('ai-json-viewer')\nexport class AiJsonViewer extends LitElement {\n static override styles = [hostBlock, reducedMotion, fadeSlideInKeyframes, css`\n :host {\n font-family: var(--cg-font-family-mono);\n font-size: var(--cg-font-size-sm);\n line-height: 1.6;\n color: var(--cg-color-surface-base-text);\n animation: fadeSlideIn var(--cg-transition-duration-fast) var(--cg-transition-easing-ease-out) both;\n }\n :host([hidden]) { display: none; }\n\n .root {\n background: var(--cg-color-surface-cards-background);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-border-radius-100);\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n overflow-x: auto;\n }\n\n .line {\n white-space: pre;\n }\n\n .key {\n color: var(--cg-color-status-info-text);\n cursor: pointer;\n }\n .key:hover {\n text-decoration: underline;\n }\n .key:focus-visible {\n outline: 2px solid var(--cg-overlay-accent-strong);\n outline-offset: 1px;\n border-radius: var(--cg-border-radius-25);\n }\n\n .string { color: var(--cg-color-status-success-text-default); }\n .number { color: var(--cg-color-surface-base-text); }\n .boolean { color: var(--cg-color-status-success-text-default); }\n .null { color: var(--cg-color-input-text-placeholder); font-style: italic; }\n\n .toggle {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n background: none;\n border: none;\n color: var(--cg-color-input-text-placeholder);\n cursor: pointer;\n padding: 0;\n font-size: var(--cg-font-size-xs);\n vertical-align: middle;\n border-radius: var(--cg-border-radius-25);\n transition: color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .toggle:hover {\n color: var(--cg-color-surface-base-text);\n }\n .toggle:focus-visible {\n outline: 2px solid var(--cg-overlay-accent-strong);\n outline-offset: 1px;\n }\n\n .collapsed-hint {\n color: var(--cg-color-input-text-placeholder);\n font-style: italic;\n font-size: var(--cg-font-size-xs);\n }\n\n .line-count {\n display: inline;\n color: var(--cg-color-input-text-placeholder);\n font-size: var(--cg-font-size-xs);\n margin-left: var(--cg-spacing-4);\n }\n\n .bracket {\n color: var(--cg-color-input-text-placeholder);\n }\n\n /* ── Rounded variants ── */\n :host([rounded=\"none\"]) .root { border-radius: 0; }\n :host([rounded=\"sm\"]) .root { border-radius: var(--cg-border-radius-50); }\n :host([rounded=\"md\"]) .root { border-radius: var(--cg-border-radius-100); }\n :host([rounded=\"lg\"]) .root { border-radius: var(--cg-border-radius-150); }\n :host([rounded=\"full\"]) .root { border-radius: var(--cg-border-radius-full); }\n `];\n @property({ reflect: true }) rounded: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'lg';\n @property({ attribute: false }) data: unknown = null;\n @property({ type: Boolean }) expanded = true;\n @property({ type: Number, attribute: 'max-depth' }) maxDepth = 5;\n\n @state() private _collapsed: Set<string> = new Set();\n\n private _isCollapsed(path: string): boolean {\n if (this.expanded) {\n return this._collapsed.has(path);\n }\n return !this._collapsed.has(path);\n }\n\n private _togglePath(path: string): void {\n const next = new Set(this._collapsed);\n if (next.has(path)) {\n next.delete(path);\n } else {\n next.add(path);\n }\n this._collapsed = next;\n }\n\n private _emitPathClick(path: string): void {\n this.dispatchEvent(new CustomEvent('ai-json-path-click', {\n detail: { path },\n bubbles: true,\n composed: true,\n }));\n }\n\n private _countItems(val: unknown): number {\n if (Array.isArray(val)) return val.length;\n if (val && typeof val === 'object') return Object.keys(val).length;\n return 0;\n }\n\n private _seen = new WeakSet();\n\n private _renderValue(val: unknown, path: string, depth: number, isLast: boolean): unknown {\n const comma = isLast ? '' : ',';\n\n // Circular reference detection\n if (val !== null && typeof val === 'object') {\n if (this._seen.has(val as object)) {\n return html`<span class=\"null\">[Circular]</span>${comma}`;\n }\n this._seen.add(val as object);\n }\n\n if (val === null) {\n return html`<span class=\"null\">null</span>${comma}`;\n }\n if (typeof val === 'string') {\n return html`<span class=\"string\">\"${val}\"</span>${comma}`;\n }\n if (typeof val === 'number') {\n return html`<span class=\"number\">${val}</span>${comma}`;\n }\n if (typeof val === 'boolean') {\n return html`<span class=\"boolean\">${val}</span>${comma}`;\n }\n\n if (Array.isArray(val)) {\n return this._renderArray(val, path, depth, comma);\n }\n if (typeof val === 'object') {\n return this._renderObject(val as Record<string, unknown>, path, depth, comma);\n }\n\n return html`<span class=\"string\">${String(val)}</span>${comma}`;\n }\n\n private _renderArray(arr: unknown[], path: string, depth: number, comma: string): unknown {\n const collapsed = this._isCollapsed(path);\n const count = arr.length;\n const indent = ' '.repeat(depth);\n const childIndent = ' '.repeat(depth + 1);\n\n if (count === 0) {\n return html`<span class=\"bracket\">[]</span>${comma}`;\n }\n\n if (collapsed || depth >= this.maxDepth) {\n return html`<button class=\"toggle\" tabindex=\"0\" aria-label=\"Expand array\" @click=${() => this._togglePath(path)}>\\u25B6</button><span class=\"bracket\">[</span><span class=\"collapsed-hint\"> ${count} items </span><span class=\"bracket\">]</span>${comma}`;\n }\n\n return html`<button class=\"toggle\" tabindex=\"0\" aria-label=\"Collapse array\" @click=${() => this._togglePath(path)}>\\u25BC</button><span class=\"bracket\">[</span>\n${arr.map((item, i) => html`<div class=\"line\">${childIndent}${this._renderValue(item, `${path}[${i}]`, depth + 1, i === count - 1)}</div>`)}\n<div class=\"line\">${indent}<span class=\"bracket\">]</span>${comma}<span class=\"line-count\">// ${count} items</span></div>`;\n }\n\n private _renderObject(obj: Record<string, unknown>, path: string, depth: number, comma: string): unknown {\n const collapsed = this._isCollapsed(path);\n const keys = Object.keys(obj);\n const count = keys.length;\n const indent = ' '.repeat(depth);\n const childIndent = ' '.repeat(depth + 1);\n\n if (count === 0) {\n return html`<span class=\"bracket\">{}</span>${comma}`;\n }\n\n if (collapsed || depth >= this.maxDepth) {\n return html`<button class=\"toggle\" tabindex=\"0\" aria-label=\"Expand object\" @click=${() => this._togglePath(path)}>\\u25B6</button><span class=\"bracket\">{</span><span class=\"collapsed-hint\"> ${count} keys </span><span class=\"bracket\">}</span>${comma}`;\n }\n\n return html`<button class=\"toggle\" tabindex=\"0\" aria-label=\"Collapse object\" @click=${() => this._togglePath(path)}>\\u25BC</button><span class=\"bracket\">{</span>\n${keys.map((key, i) => {\n const childPath = path ? `${path}.${key}` : key;\n return html`<div class=\"line\">${childIndent}<span class=\"key\" tabindex=\"0\" role=\"button\" aria-label=\"Copy path: ${childPath}\" @click=${() => this._emitPathClick(childPath)} @keydown=${(e: KeyboardEvent) => { if (e.key === 'Enter') this._emitPathClick(childPath); }}>\"${key}\"</span>: ${this._renderValue(obj[key], childPath, depth + 1, i === count - 1)}</div>`;\n})}\n<div class=\"line\">${indent}<span class=\"bracket\">}</span>${comma}<span class=\"line-count\">// ${count} keys</span></div>`;\n }\n\n override render() {\n this._seen = new WeakSet(); // Reset cycle detection each render\n return html`\n <div class=\"root\" role=\"tree\" aria-label=\"JSON viewer\">\n <div class=\"line\">${this._renderValue(this.data, '$', 0, true)}</div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ai-json-viewer': AiJsonViewer;\n }\n}\n"],"names":["AiJsonViewer","LitElement","path","next","val","depth","isLast","comma","html","arr","collapsed","count","indent","childIndent","item","i","obj","keys","key","childPath","e","hostBlock","reducedMotion","fadeSlideInKeyframes","css","__decorateClass","property","state","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { LitElement, nothing } from 'lit';
|
|
2
|
+
export interface ShortcutEntry {
|
|
3
|
+
keys: string[];
|
|
4
|
+
description: string;
|
|
5
|
+
category?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class AiKeyboardShortcuts extends LitElement {
|
|
8
|
+
static styles: import('lit').CSSResult[];
|
|
9
|
+
shortcuts: ShortcutEntry[];
|
|
10
|
+
open: boolean;
|
|
11
|
+
private _search;
|
|
12
|
+
private _handleKeyDown;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
disconnectedCallback(): void;
|
|
15
|
+
private _close;
|
|
16
|
+
private _filtered;
|
|
17
|
+
private _grouped;
|
|
18
|
+
render(): import('lit').TemplateResult<1> | typeof nothing;
|
|
19
|
+
}
|
|
20
|
+
declare global {
|
|
21
|
+
interface HTMLElementTagNameMap {
|
|
22
|
+
'ai-keyboard-shortcuts': AiKeyboardShortcuts;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ai-keyboard-shortcuts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-keyboard-shortcuts.d.ts","sourceRoot":"","sources":["../../../src/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAIrD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,mBAAoB,SAAQ,UAAU;IACjD,OAAgB,MAAM,4BA8InB;IACwB,SAAS,EAAE,aAAa,EAAE,CAAM;IACf,IAAI,UAAS;IAEhD,OAAO,CAAC,OAAO,CAAM;IAE9B,OAAO,CAAC,cAAc,CAIpB;IAEO,iBAAiB;IAKjB,oBAAoB;IAK7B,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,QAAQ;IAUP,MAAM;CA0ChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,uBAAuB,EAAE,mBAAmB,CAAC;KAC9C;CACF"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import { css as p, LitElement as u, nothing as d, html as a } from "lit";
|
|
2
|
+
import { property as g, state as h, customElement as v } from "lit/decorators.js";
|
|
3
|
+
import { h as f, r as b, f as m } from "../../chunks/premium.css-9I4kHrsl.js";
|
|
4
|
+
var y = Object.defineProperty, x = Object.getOwnPropertyDescriptor, l = (t, e, r, o) => {
|
|
5
|
+
for (var s = o > 1 ? void 0 : o ? x(e, r) : e, i = t.length - 1, n; i >= 0; i--)
|
|
6
|
+
(n = t[i]) && (s = (o ? n(e, r, s) : n(s)) || s);
|
|
7
|
+
return o && s && y(e, r, s), s;
|
|
8
|
+
};
|
|
9
|
+
let c = class extends u {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments), this.shortcuts = [], this.open = !1, this._search = "", this._handleKeyDown = (t) => {
|
|
12
|
+
t.key === "Escape" && this.open && this._close();
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
connectedCallback() {
|
|
16
|
+
super.connectedCallback(), document.addEventListener("keydown", this._handleKeyDown);
|
|
17
|
+
}
|
|
18
|
+
disconnectedCallback() {
|
|
19
|
+
super.disconnectedCallback(), document.removeEventListener("keydown", this._handleKeyDown);
|
|
20
|
+
}
|
|
21
|
+
_close() {
|
|
22
|
+
this.open = !1, this._search = "", this.dispatchEvent(new CustomEvent("ai-shortcuts-close", { bubbles: !0, composed: !0 }));
|
|
23
|
+
}
|
|
24
|
+
_filtered() {
|
|
25
|
+
if (!this._search) return this.shortcuts;
|
|
26
|
+
const t = this._search.toLowerCase();
|
|
27
|
+
return this.shortcuts.filter(
|
|
28
|
+
(e) => e.description.toLowerCase().includes(t) || e.keys.some((r) => r.toLowerCase().includes(t)) || e.category?.toLowerCase().includes(t)
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
_grouped(t) {
|
|
32
|
+
const e = /* @__PURE__ */ new Map();
|
|
33
|
+
for (const r of t) {
|
|
34
|
+
const o = r.category || "General";
|
|
35
|
+
e.has(o) || e.set(o, []), e.get(o).push(r);
|
|
36
|
+
}
|
|
37
|
+
return e;
|
|
38
|
+
}
|
|
39
|
+
render() {
|
|
40
|
+
if (!this.open) return d;
|
|
41
|
+
const t = this._filtered(), e = this._grouped(t);
|
|
42
|
+
return a`
|
|
43
|
+
<div class="overlay" @click=${(r) => {
|
|
44
|
+
r.target === r.currentTarget && this._close();
|
|
45
|
+
}}>
|
|
46
|
+
<div class="modal" role="dialog" aria-label="Keyboard shortcuts" aria-modal="true">
|
|
47
|
+
<div class="modal-header">
|
|
48
|
+
<span class="modal-title">Keyboard Shortcuts</span>
|
|
49
|
+
<button class="close-btn" aria-label="Close shortcuts" @click=${this._close}><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round"><path d="M18 6L6 18M6 6l12 12"/></svg></button>
|
|
50
|
+
</div>
|
|
51
|
+
<input
|
|
52
|
+
class="search-input"
|
|
53
|
+
type="text"
|
|
54
|
+
placeholder="Search shortcuts..."
|
|
55
|
+
.value=${this._search}
|
|
56
|
+
@input=${(r) => {
|
|
57
|
+
this._search = r.target.value;
|
|
58
|
+
}}
|
|
59
|
+
aria-label="Search shortcuts"
|
|
60
|
+
/>
|
|
61
|
+
<div class="shortcuts-list" role="list">
|
|
62
|
+
${t.length === 0 ? a`<div class="no-results">No shortcuts found</div>` : Array.from(e.entries()).map(([r, o]) => a`
|
|
63
|
+
<div class="category-label">${r}</div>
|
|
64
|
+
${o.map((s) => a`
|
|
65
|
+
<div class="shortcut-row" role="listitem">
|
|
66
|
+
<span class="shortcut-desc">${s.description}</span>
|
|
67
|
+
<span class="key-group">
|
|
68
|
+
${s.keys.map((i, n) => a`
|
|
69
|
+
${n > 0 ? a`<span class="key-plus">+</span>` : d}
|
|
70
|
+
<span class="key-badge">${i}</span>
|
|
71
|
+
`)}
|
|
72
|
+
</span>
|
|
73
|
+
</div>
|
|
74
|
+
`)}
|
|
75
|
+
`)}
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
`;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
c.styles = [f, b, m, p`
|
|
83
|
+
:host {
|
|
84
|
+
animation: fadeSlideIn var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out) both;
|
|
85
|
+
}
|
|
86
|
+
:host([hidden]) { display: none; }
|
|
87
|
+
|
|
88
|
+
.overlay {
|
|
89
|
+
position: fixed;
|
|
90
|
+
inset: 0;
|
|
91
|
+
background: var(--cg-overlay-dark-strong);
|
|
92
|
+
backdrop-filter: blur(2px);
|
|
93
|
+
display: flex;
|
|
94
|
+
align-items: center;
|
|
95
|
+
justify-content: center;
|
|
96
|
+
z-index: var(--cg-z-index-top);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.modal {
|
|
100
|
+
background: var(--cg-color-surface-base-background);
|
|
101
|
+
border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);
|
|
102
|
+
border-radius: var(--cg-border-radius-150);
|
|
103
|
+
padding: var(--cg-spacing-24);
|
|
104
|
+
max-width: 520px;
|
|
105
|
+
width: 90vw;
|
|
106
|
+
max-height: 70vh;
|
|
107
|
+
display: flex;
|
|
108
|
+
flex-direction: column;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.modal-header {
|
|
112
|
+
display: flex;
|
|
113
|
+
align-items: center;
|
|
114
|
+
justify-content: space-between;
|
|
115
|
+
margin-bottom: var(--cg-spacing-16);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.modal-title {
|
|
119
|
+
color: var(--cg-color-surface-base-text);
|
|
120
|
+
font-size: var(--cg-font-size-lg);
|
|
121
|
+
font-weight: var(--cg-font-weight-bold);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.close-btn {
|
|
125
|
+
background: none;
|
|
126
|
+
border: none;
|
|
127
|
+
color: var(--cg-color-input-text-placeholder);
|
|
128
|
+
font-size: var(--cg-font-size-xl);
|
|
129
|
+
cursor: pointer;
|
|
130
|
+
padding: var(--cg-spacing-4);
|
|
131
|
+
border-radius: var(--cg-border-radius-50);
|
|
132
|
+
line-height: 1;
|
|
133
|
+
}
|
|
134
|
+
.close-btn:hover { color: var(--cg-color-surface-base-text); }
|
|
135
|
+
.close-btn:focus-visible {
|
|
136
|
+
outline: 2px solid var(--cg-overlay-accent-strong);
|
|
137
|
+
outline-offset: var(--cg-outline-offset-default);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.search-input {
|
|
141
|
+
width: 100%;
|
|
142
|
+
padding: var(--cg-spacing-8) var(--cg-spacing-12);
|
|
143
|
+
border-radius: var(--cg-border-radius-100);
|
|
144
|
+
border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);
|
|
145
|
+
background: var(--cg-color-surface-container-background);
|
|
146
|
+
color: var(--cg-color-surface-base-text);
|
|
147
|
+
font-size: var(--cg-font-size-sm);
|
|
148
|
+
font-family: inherit;
|
|
149
|
+
margin-bottom: var(--cg-spacing-16);
|
|
150
|
+
box-sizing: border-box;
|
|
151
|
+
}
|
|
152
|
+
.search-input::placeholder {
|
|
153
|
+
color: var(--cg-color-input-text-placeholder);
|
|
154
|
+
}
|
|
155
|
+
.search-input:focus-visible {
|
|
156
|
+
outline: 2px solid var(--cg-overlay-accent-strong);
|
|
157
|
+
outline-offset: var(--cg-outline-offset-default);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.shortcuts-list {
|
|
161
|
+
overflow-y: auto;
|
|
162
|
+
flex: 1;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.category-label {
|
|
166
|
+
color: var(--cg-color-input-text-placeholder);
|
|
167
|
+
font-size: var(--cg-font-size-xs);
|
|
168
|
+
font-weight: var(--cg-font-weight-bold);
|
|
169
|
+
text-transform: uppercase;
|
|
170
|
+
letter-spacing: 0.5px;
|
|
171
|
+
padding: var(--cg-spacing-8) 0 var(--cg-spacing-6);
|
|
172
|
+
border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);
|
|
173
|
+
margin-bottom: var(--cg-spacing-4);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.shortcut-row {
|
|
177
|
+
display: flex;
|
|
178
|
+
align-items: center;
|
|
179
|
+
justify-content: space-between;
|
|
180
|
+
padding: var(--cg-spacing-8) var(--cg-spacing-4);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.shortcut-desc {
|
|
184
|
+
color: var(--cg-color-surface-base-text);
|
|
185
|
+
font-size: var(--cg-font-size-sm);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.key-group {
|
|
189
|
+
display: flex;
|
|
190
|
+
align-items: center;
|
|
191
|
+
gap: var(--cg-spacing-4);
|
|
192
|
+
flex-shrink: 0;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.key-badge {
|
|
196
|
+
display: inline-flex;
|
|
197
|
+
align-items: center;
|
|
198
|
+
justify-content: center;
|
|
199
|
+
min-width: var(--cg-spacing-24);
|
|
200
|
+
height: var(--cg-spacing-24);
|
|
201
|
+
padding: 0 var(--cg-spacing-6);
|
|
202
|
+
background: var(--cg-color-surface-container-background);
|
|
203
|
+
border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);
|
|
204
|
+
border-bottom-width: 3px;
|
|
205
|
+
border-radius: var(--cg-border-radius-50);
|
|
206
|
+
color: var(--cg-color-surface-base-text);
|
|
207
|
+
font-size: var(--cg-font-size-xs);
|
|
208
|
+
font-weight: var(--cg-font-weight-bold);
|
|
209
|
+
font-family: var(--cg-font-family-mono);
|
|
210
|
+
white-space: nowrap;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.key-plus {
|
|
214
|
+
color: var(--cg-color-input-text-placeholder);
|
|
215
|
+
font-size: var(--cg-font-size-xs);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.no-results {
|
|
219
|
+
color: var(--cg-color-input-text-placeholder);
|
|
220
|
+
font-size: var(--cg-font-size-sm);
|
|
221
|
+
text-align: center;
|
|
222
|
+
padding: var(--cg-spacing-16);
|
|
223
|
+
}
|
|
224
|
+
`];
|
|
225
|
+
l([
|
|
226
|
+
g({ type: Array })
|
|
227
|
+
], c.prototype, "shortcuts", 2);
|
|
228
|
+
l([
|
|
229
|
+
g({ type: Boolean, reflect: !0 })
|
|
230
|
+
], c.prototype, "open", 2);
|
|
231
|
+
l([
|
|
232
|
+
h()
|
|
233
|
+
], c.prototype, "_search", 2);
|
|
234
|
+
c = l([
|
|
235
|
+
v("ai-keyboard-shortcuts")
|
|
236
|
+
], c);
|
|
237
|
+
export {
|
|
238
|
+
c as AiKeyboardShortcuts
|
|
239
|
+
};
|
|
240
|
+
//# sourceMappingURL=ai-keyboard-shortcuts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-keyboard-shortcuts.js","sources":["../../../src/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.ts"],"sourcesContent":["/**\n * @element ai-keyboard-shortcuts\n * Modal overlay displaying grouped keyboard shortcuts with searchable\n * key badge UI. Closes on Escape or backdrop click.\n *\n * @example\n * ```html\n * <ai-keyboard-shortcuts\n * .shortcuts=${[{ keys: ['Ctrl', 'K'], description: 'Open search', category: 'Navigation' }]}\n * open\n * ></ai-keyboard-shortcuts>\n * ```\n *\n * @prop {ShortcutEntry[]} shortcuts - Array of shortcut definitions with keys, description, category\n * @prop {boolean} open - Whether the modal is visible\n *\n * @fires ai-shortcuts-close - When the modal is dismissed\n *\n * @cssprop [--cg-font-family-mono] - Font for key badges\n * @cssprop [--cg-color-bg-primary] - Modal background color\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { property, state, customElement } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, fadeSlideInKeyframes } from '../../styles/index.js';\n\nexport interface ShortcutEntry {\n keys: string[];\n description: string;\n category?: string;\n}\n\n@customElement('ai-keyboard-shortcuts')\nexport class AiKeyboardShortcuts extends LitElement {\n static override styles = [hostBlock, reducedMotion, fadeSlideInKeyframes, css`\n :host {\n animation: fadeSlideIn var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out) both;\n }\n :host([hidden]) { display: none; }\n\n .overlay {\n position: fixed;\n inset: 0;\n background: var(--cg-overlay-dark-strong);\n backdrop-filter: blur(2px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: var(--cg-z-index-top);\n }\n\n .modal {\n background: var(--cg-color-surface-base-background);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-border-radius-150);\n padding: var(--cg-spacing-24);\n max-width: 520px;\n width: 90vw;\n max-height: 70vh;\n display: flex;\n flex-direction: column;\n }\n\n .modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: var(--cg-spacing-16);\n }\n\n .modal-title {\n color: var(--cg-color-surface-base-text);\n font-size: var(--cg-font-size-lg);\n font-weight: var(--cg-font-weight-bold);\n }\n\n .close-btn {\n background: none;\n border: none;\n color: var(--cg-color-input-text-placeholder);\n font-size: var(--cg-font-size-xl);\n cursor: pointer;\n padding: var(--cg-spacing-4);\n border-radius: var(--cg-border-radius-50);\n line-height: 1;\n }\n .close-btn:hover { color: var(--cg-color-surface-base-text); }\n .close-btn:focus-visible {\n outline: 2px solid var(--cg-overlay-accent-strong);\n outline-offset: var(--cg-outline-offset-default);\n }\n\n .search-input {\n width: 100%;\n padding: var(--cg-spacing-8) var(--cg-spacing-12);\n border-radius: var(--cg-border-radius-100);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n background: var(--cg-color-surface-container-background);\n color: var(--cg-color-surface-base-text);\n font-size: var(--cg-font-size-sm);\n font-family: inherit;\n margin-bottom: var(--cg-spacing-16);\n box-sizing: border-box;\n }\n .search-input::placeholder {\n color: var(--cg-color-input-text-placeholder);\n }\n .search-input:focus-visible {\n outline: 2px solid var(--cg-overlay-accent-strong);\n outline-offset: var(--cg-outline-offset-default);\n }\n\n .shortcuts-list {\n overflow-y: auto;\n flex: 1;\n }\n\n .category-label {\n color: var(--cg-color-input-text-placeholder);\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-bold);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n padding: var(--cg-spacing-8) 0 var(--cg-spacing-6);\n border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n margin-bottom: var(--cg-spacing-4);\n }\n\n .shortcut-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--cg-spacing-8) var(--cg-spacing-4);\n }\n\n .shortcut-desc {\n color: var(--cg-color-surface-base-text);\n font-size: var(--cg-font-size-sm);\n }\n\n .key-group {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-4);\n flex-shrink: 0;\n }\n\n .key-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: var(--cg-spacing-24);\n height: var(--cg-spacing-24);\n padding: 0 var(--cg-spacing-6);\n background: var(--cg-color-surface-container-background);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-bottom-width: 3px;\n border-radius: var(--cg-border-radius-50);\n color: var(--cg-color-surface-base-text);\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-bold);\n font-family: var(--cg-font-family-mono);\n white-space: nowrap;\n }\n\n .key-plus {\n color: var(--cg-color-input-text-placeholder);\n font-size: var(--cg-font-size-xs);\n }\n\n .no-results {\n color: var(--cg-color-input-text-placeholder);\n font-size: var(--cg-font-size-sm);\n text-align: center;\n padding: var(--cg-spacing-16);\n }\n `];\n @property({ type: Array }) shortcuts: ShortcutEntry[] = [];\n @property({ type: Boolean, reflect: true }) open = false;\n\n @state() private _search = '';\n\n private _handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && this.open) {\n this._close();\n }\n };\n\n override connectedCallback() {\n super.connectedCallback();\n document.addEventListener('keydown', this._handleKeyDown);\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('keydown', this._handleKeyDown);\n }\n\n private _close() {\n this.open = false;\n this._search = '';\n this.dispatchEvent(new CustomEvent('ai-shortcuts-close', { bubbles: true, composed: true }));\n }\n\n private _filtered(): ShortcutEntry[] {\n if (!this._search) return this.shortcuts;\n const q = this._search.toLowerCase();\n return this.shortcuts.filter(s =>\n s.description.toLowerCase().includes(q) ||\n s.keys.some(k => k.toLowerCase().includes(q)) ||\n (s.category?.toLowerCase().includes(q))\n );\n }\n\n private _grouped(items: ShortcutEntry[]): Map<string, ShortcutEntry[]> {\n const map = new Map<string, ShortcutEntry[]>();\n for (const item of items) {\n const cat = item.category || 'General';\n if (!map.has(cat)) map.set(cat, []);\n map.get(cat)!.push(item);\n }\n return map;\n }\n\n override render() {\n if (!this.open) return nothing;\n const filtered = this._filtered();\n const grouped = this._grouped(filtered);\n\n return html`\n <div class=\"overlay\" @click=${(e: Event) => { if (e.target === e.currentTarget) this._close(); }}>\n <div class=\"modal\" role=\"dialog\" aria-label=\"Keyboard shortcuts\" aria-modal=\"true\">\n <div class=\"modal-header\">\n <span class=\"modal-title\">Keyboard Shortcuts</span>\n <button class=\"close-btn\" aria-label=\"Close shortcuts\" @click=${this._close}><svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\"><path d=\"M18 6L6 18M6 6l12 12\"/></svg></button>\n </div>\n <input\n class=\"search-input\"\n type=\"text\"\n placeholder=\"Search shortcuts...\"\n .value=${this._search}\n @input=${(e: Event) => { this._search = (e.target as HTMLInputElement).value; }}\n aria-label=\"Search shortcuts\"\n />\n <div class=\"shortcuts-list\" role=\"list\">\n ${filtered.length === 0\n ? html`<div class=\"no-results\">No shortcuts found</div>`\n : Array.from(grouped.entries()).map(([cat, items]) => html`\n <div class=\"category-label\">${cat}</div>\n ${items.map(s => html`\n <div class=\"shortcut-row\" role=\"listitem\">\n <span class=\"shortcut-desc\">${s.description}</span>\n <span class=\"key-group\">\n ${s.keys.map((k, i) => html`\n ${i > 0 ? html`<span class=\"key-plus\">+</span>` : nothing}\n <span class=\"key-badge\">${k}</span>\n `)}\n </span>\n </div>\n `)}\n `)}\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ai-keyboard-shortcuts': AiKeyboardShortcuts;\n }\n}\n"],"names":["AiKeyboardShortcuts","LitElement","e","q","s","k","items","map","item","cat","nothing","filtered","grouped","html","i","hostBlock","reducedMotion","fadeSlideInKeyframes","css","__decorateClass","property","state","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
interface KpiItem {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
delta?: string;
|
|
6
|
+
trend?: 'up' | 'down' | 'neutral';
|
|
7
|
+
icon?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class AiKpiGrid extends LitElement {
|
|
10
|
+
static styles: import('lit').CSSResult[];
|
|
11
|
+
title: string;
|
|
12
|
+
kpis: KpiItem[];
|
|
13
|
+
columns: number;
|
|
14
|
+
loading: boolean;
|
|
15
|
+
private _handleKpiClick;
|
|
16
|
+
private _trendArrow;
|
|
17
|
+
private _renderSkeleton;
|
|
18
|
+
render(): import('lit').TemplateResult<1>;
|
|
19
|
+
}
|
|
20
|
+
declare global {
|
|
21
|
+
interface HTMLElementTagNameMap {
|
|
22
|
+
'ai-kpi-grid': AiKpiGrid;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=ai-kpi-grid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-kpi-grid.d.ts","sourceRoot":"","sources":["../../../src/components/ai-kpi-grid/ai-kpi-grid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,UAAU,OAAO;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBACa,SAAU,SAAQ,UAAU;IACvC,OAAgB,MAAM,4BAkGnB;IACkC,KAAK,SAAM;IAChB,IAAI,EAAE,OAAO,EAAE,CAAM;IACV,OAAO,SAAK;IAC1B,OAAO,UAAS;IAE7C,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,eAAe;IAWd,MAAM;CA4BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,SAAS,CAAC;KAC1B;CACF"}
|