@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,277 @@
|
|
|
1
|
+
import { css as p, LitElement as d, nothing as h, html as f } from "lit";
|
|
2
|
+
import { property as s, state as g, customElement as u } from "lit/decorators.js";
|
|
3
|
+
var v = Object.defineProperty, m = Object.getOwnPropertyDescriptor, i = (r, e, n, a) => {
|
|
4
|
+
for (var t = a > 1 ? void 0 : a ? m(e, n) : e, c = r.length - 1, l; c >= 0; c--)
|
|
5
|
+
(l = r[c]) && (t = (a ? l(e, n, t) : l(t)) || t);
|
|
6
|
+
return a && t && v(e, n, t), t;
|
|
7
|
+
};
|
|
8
|
+
let o = class extends d {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments), this.content = "", this.rounded = "md", this.variant = "default", this.position = "top", this.delay = 300, this.disabled = !1, this._visible = !1, this._closing = !1, this._effectivePosition = "top", this._showTimeout = null, this._hideTimeout = null, this._tooltipId = `tooltip-${Math.random().toString(36).slice(2, 9)}`, this._escapeHandler = this._handleEscape.bind(this);
|
|
11
|
+
}
|
|
12
|
+
/** Check if the tooltip has rich slot content (named "content" slot). */
|
|
13
|
+
get _hasContent() {
|
|
14
|
+
return !!this.content || !!this.querySelector('[slot="content"]');
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Adjusts the effective position based on viewport edge detection.
|
|
18
|
+
* Called after the tooltip becomes visible so we can measure its bounding rect.
|
|
19
|
+
*/
|
|
20
|
+
_adjustPosition() {
|
|
21
|
+
const r = this.shadowRoot?.querySelector(".tooltip");
|
|
22
|
+
if (!r) return;
|
|
23
|
+
const e = r.getBoundingClientRect(), n = window.innerWidth, a = window.innerHeight;
|
|
24
|
+
let t = this.position;
|
|
25
|
+
this.position === "top" && e.top < 0 ? t = "bottom" : this.position === "bottom" && e.bottom > a ? t = "top" : this.position === "left" && e.left < 0 ? t = "right" : this.position === "right" && e.right > n && (t = "left"), t !== this._effectivePosition && (this._effectivePosition = t);
|
|
26
|
+
}
|
|
27
|
+
_show() {
|
|
28
|
+
this.disabled || !this._hasContent || (this._hideTimeout && (clearTimeout(this._hideTimeout), this._hideTimeout = null, this._closing = !1), this._effectivePosition = this.position, this._showTimeout = setTimeout(() => {
|
|
29
|
+
this._visible = !0, document.addEventListener("keydown", this._escapeHandler), requestAnimationFrame(() => {
|
|
30
|
+
this._adjustPosition();
|
|
31
|
+
});
|
|
32
|
+
}, this.delay));
|
|
33
|
+
}
|
|
34
|
+
_handleEscape(r) {
|
|
35
|
+
r.key === "Escape" && this._hide();
|
|
36
|
+
}
|
|
37
|
+
_hide() {
|
|
38
|
+
this._showTimeout && (clearTimeout(this._showTimeout), this._showTimeout = null), this._visible && (document.removeEventListener("keydown", this._escapeHandler), this._closing = !0, this._hideTimeout = setTimeout(() => {
|
|
39
|
+
this._closing = !1, this._visible = !1, this._effectivePosition = this.position;
|
|
40
|
+
}, 100));
|
|
41
|
+
}
|
|
42
|
+
disconnectedCallback() {
|
|
43
|
+
super.disconnectedCallback(), document.removeEventListener("keydown", this._escapeHandler), this._showTimeout && clearTimeout(this._showTimeout), this._hideTimeout && clearTimeout(this._hideTimeout);
|
|
44
|
+
}
|
|
45
|
+
render() {
|
|
46
|
+
return f`
|
|
47
|
+
<div
|
|
48
|
+
class="trigger-wrap"
|
|
49
|
+
@mouseenter="${this._show}"
|
|
50
|
+
@mouseleave="${this._hide}"
|
|
51
|
+
@focusin="${this._show}"
|
|
52
|
+
@focusout="${this._hide}"
|
|
53
|
+
aria-describedby="${this._tooltipId}"
|
|
54
|
+
>
|
|
55
|
+
<slot></slot>
|
|
56
|
+
</div>
|
|
57
|
+
<div
|
|
58
|
+
class="tooltip ${this._closing ? "closing" : ""}"
|
|
59
|
+
id="${this._tooltipId}"
|
|
60
|
+
role="tooltip"
|
|
61
|
+
aria-hidden=${this._visible ? h : "true"}
|
|
62
|
+
>
|
|
63
|
+
<span class="arrow"></span>
|
|
64
|
+
<span class="tooltip-content">
|
|
65
|
+
<slot name="content">${this.content}</slot>
|
|
66
|
+
</span>
|
|
67
|
+
</div>
|
|
68
|
+
`;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
o.styles = p`
|
|
72
|
+
:host {
|
|
73
|
+
transition: color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
|
|
74
|
+
display: inline-block;
|
|
75
|
+
position: relative;
|
|
76
|
+
font-family: var(--cg-font-family-primary);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.trigger-wrap {
|
|
80
|
+
display: inline-flex;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.tooltip {
|
|
84
|
+
position: absolute;
|
|
85
|
+
z-index: 10000;
|
|
86
|
+
padding: var(--cg-spacing-6) var(--cg-spacing-12);
|
|
87
|
+
background: var(--cg-color-tooltip-background);
|
|
88
|
+
color: var(--cg-color-tooltip-text);
|
|
89
|
+
font-size: var(--cg-font-size-xs);
|
|
90
|
+
font-weight: var(--cg-font-weight-medium);
|
|
91
|
+
line-height: var(--cg-line-height-snug);
|
|
92
|
+
border-radius: var(--cg-component-tooltip-radius);
|
|
93
|
+
border: var(--cg-border-width-50) solid var(--cg-color-surface-tooltip-border);
|
|
94
|
+
white-space: nowrap;
|
|
95
|
+
max-width: 280px;
|
|
96
|
+
pointer-events: none;
|
|
97
|
+
|
|
98
|
+
/* Animation — fade+scale with pop */
|
|
99
|
+
opacity: 0;
|
|
100
|
+
transform: scale(0.92);
|
|
101
|
+
transition:
|
|
102
|
+
opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),
|
|
103
|
+
transform var(--cg-transition-duration-slow) var(--cg-transition-easing-spring);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* Rich content slot may contain block elements */
|
|
107
|
+
.tooltip-content ::slotted(*) {
|
|
108
|
+
white-space: normal;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
:host([_visible]) .tooltip {
|
|
112
|
+
opacity: 1;
|
|
113
|
+
transform: scale(1);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* ── Closing animation ── */
|
|
117
|
+
@keyframes tooltip-exit {
|
|
118
|
+
from { opacity: 1; transform: scale(1); }
|
|
119
|
+
to { opacity: 0; transform: scale(0.92); }
|
|
120
|
+
}
|
|
121
|
+
.tooltip.closing {
|
|
122
|
+
animation: tooltip-exit var(--cg-transition-duration-fast) var(--cg-transition-easing-ease-in) forwards;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
@media (prefers-reduced-motion: reduce) {
|
|
126
|
+
.tooltip {
|
|
127
|
+
transition: opacity var(--cg-transition-duration-fast) ease;
|
|
128
|
+
transform: scale(1) !important;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* ── Arrow ── */
|
|
133
|
+
.arrow {
|
|
134
|
+
position: absolute;
|
|
135
|
+
width: var(--cg-spacing-8);
|
|
136
|
+
height: var(--cg-spacing-8);
|
|
137
|
+
background: var(--cg-color-tooltip-arrow);
|
|
138
|
+
transform: rotate(45deg);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* ── Top position (default) ── */
|
|
142
|
+
:host([_effective-position="top"]) .tooltip {
|
|
143
|
+
bottom: 100%;
|
|
144
|
+
left: 50%;
|
|
145
|
+
transform-origin: bottom center;
|
|
146
|
+
margin-bottom: var(--cg-spacing-8);
|
|
147
|
+
}
|
|
148
|
+
:host([_effective-position="top"][_visible]) .tooltip {
|
|
149
|
+
transform: scale(1) translateX(-50%);
|
|
150
|
+
}
|
|
151
|
+
:host([_effective-position="top"]) .tooltip:not([style]) {
|
|
152
|
+
transform: scale(0.92) translateX(-50%);
|
|
153
|
+
}
|
|
154
|
+
:host([_effective-position="top"]) .arrow {
|
|
155
|
+
bottom: calc(var(--cg-spacing-4) * -1);
|
|
156
|
+
left: 50%;
|
|
157
|
+
margin-left: calc(var(--cg-spacing-4) * -1);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/* ── Bottom position ── */
|
|
161
|
+
:host([_effective-position="bottom"]) .tooltip {
|
|
162
|
+
top: 100%;
|
|
163
|
+
left: 50%;
|
|
164
|
+
transform-origin: top center;
|
|
165
|
+
margin-top: var(--cg-spacing-8);
|
|
166
|
+
}
|
|
167
|
+
:host([_effective-position="bottom"][_visible]) .tooltip {
|
|
168
|
+
transform: scale(1) translateX(-50%);
|
|
169
|
+
}
|
|
170
|
+
:host([_effective-position="bottom"]) .tooltip:not([style]) {
|
|
171
|
+
transform: scale(0.92) translateX(-50%);
|
|
172
|
+
}
|
|
173
|
+
:host([_effective-position="bottom"]) .arrow {
|
|
174
|
+
top: calc(var(--cg-spacing-4) * -1);
|
|
175
|
+
left: 50%;
|
|
176
|
+
margin-left: calc(var(--cg-spacing-4) * -1);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/* ── Left position ── */
|
|
180
|
+
:host([_effective-position="left"]) .tooltip {
|
|
181
|
+
right: 100%;
|
|
182
|
+
top: 50%;
|
|
183
|
+
transform-origin: right center;
|
|
184
|
+
margin-right: var(--cg-spacing-8);
|
|
185
|
+
}
|
|
186
|
+
:host([_effective-position="left"][_visible]) .tooltip {
|
|
187
|
+
transform: scale(1) translateY(-50%);
|
|
188
|
+
}
|
|
189
|
+
:host([_effective-position="left"]) .tooltip:not([style]) {
|
|
190
|
+
transform: scale(0.92) translateY(-50%);
|
|
191
|
+
}
|
|
192
|
+
:host([_effective-position="left"]) .arrow {
|
|
193
|
+
right: calc(var(--cg-spacing-4) * -1);
|
|
194
|
+
top: 50%;
|
|
195
|
+
margin-top: calc(var(--cg-spacing-4) * -1);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/* ── Right position ── */
|
|
199
|
+
:host([_effective-position="right"]) .tooltip {
|
|
200
|
+
left: 100%;
|
|
201
|
+
top: 50%;
|
|
202
|
+
transform-origin: left center;
|
|
203
|
+
margin-left: var(--cg-spacing-8);
|
|
204
|
+
}
|
|
205
|
+
:host([_effective-position="right"][_visible]) .tooltip {
|
|
206
|
+
transform: scale(1) translateY(-50%);
|
|
207
|
+
}
|
|
208
|
+
:host([_effective-position="right"]) .tooltip:not([style]) {
|
|
209
|
+
transform: scale(0.92) translateY(-50%);
|
|
210
|
+
}
|
|
211
|
+
:host([_effective-position="right"]) .arrow {
|
|
212
|
+
left: calc(var(--cg-spacing-4) * -1);
|
|
213
|
+
top: 50%;
|
|
214
|
+
margin-top: calc(var(--cg-spacing-4) * -1);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/* ── Variant: error ── */
|
|
218
|
+
:host([variant="error"]) .tooltip {
|
|
219
|
+
background: var(--cg-color-status-error-background-default);
|
|
220
|
+
border: var(--cg-border-width-50) solid var(--cg-color-status-error-border-default);
|
|
221
|
+
color: var(--cg-color-status-error-text-default);
|
|
222
|
+
}
|
|
223
|
+
:host([variant="error"]) .arrow {
|
|
224
|
+
background: var(--cg-color-status-error-background-default);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/* ── Variant: success ── */
|
|
228
|
+
:host([variant="success"]) .tooltip {
|
|
229
|
+
background: var(--cg-color-status-success-background-default);
|
|
230
|
+
border: var(--cg-border-width-50) solid var(--cg-color-status-success-border-default);
|
|
231
|
+
color: var(--cg-color-status-success-text-default);
|
|
232
|
+
}
|
|
233
|
+
:host([variant="success"]) .arrow {
|
|
234
|
+
background: var(--cg-color-status-success-background-default);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/* Rounded variants */
|
|
238
|
+
:host([rounded="none"]) .tooltip { border-radius: 0; }
|
|
239
|
+
:host([rounded="sm"]) .tooltip { border-radius: var(--cg-border-radius-50); }
|
|
240
|
+
:host([rounded="md"]) .tooltip { border-radius: var(--cg-component-tooltip-radius); }
|
|
241
|
+
:host([rounded="lg"]) .tooltip { border-radius: var(--cg-border-radius-150); }
|
|
242
|
+
:host([rounded="full"]) .tooltip { border-radius: var(--cg-border-radius-full); }
|
|
243
|
+
`;
|
|
244
|
+
i([
|
|
245
|
+
s({ type: String })
|
|
246
|
+
], o.prototype, "content", 2);
|
|
247
|
+
i([
|
|
248
|
+
s({ reflect: !0 })
|
|
249
|
+
], o.prototype, "rounded", 2);
|
|
250
|
+
i([
|
|
251
|
+
s({ type: String, reflect: !0 })
|
|
252
|
+
], o.prototype, "variant", 2);
|
|
253
|
+
i([
|
|
254
|
+
s({ type: String, reflect: !0 })
|
|
255
|
+
], o.prototype, "position", 2);
|
|
256
|
+
i([
|
|
257
|
+
s({ type: Number })
|
|
258
|
+
], o.prototype, "delay", 2);
|
|
259
|
+
i([
|
|
260
|
+
s({ type: Boolean })
|
|
261
|
+
], o.prototype, "disabled", 2);
|
|
262
|
+
i([
|
|
263
|
+
s({ type: Boolean, reflect: !0, attribute: "_visible" })
|
|
264
|
+
], o.prototype, "_visible", 2);
|
|
265
|
+
i([
|
|
266
|
+
g()
|
|
267
|
+
], o.prototype, "_closing", 2);
|
|
268
|
+
i([
|
|
269
|
+
s({ type: String, reflect: !0, attribute: "_effective-position" })
|
|
270
|
+
], o.prototype, "_effectivePosition", 2);
|
|
271
|
+
o = i([
|
|
272
|
+
u("cg-tooltip")
|
|
273
|
+
], o);
|
|
274
|
+
export {
|
|
275
|
+
o as CgTooltip
|
|
276
|
+
};
|
|
277
|
+
//# sourceMappingURL=cg-tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cg-tooltip.js","sources":["../../../src/components/cg-tooltip/cg-tooltip.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\n/**\n * @element cg-tooltip\n * Hover/focus tooltip with arrow, viewport-aware positioning, and fade+scale animation.\n *\n * @example\n * ```html\n * <cg-tooltip content=\"Save your work\" position=\"top\">\n * <cg-button>Save</cg-button>\n * </cg-tooltip>\n * <cg-tooltip position=\"bottom\">\n * <cg-button>Rich</cg-button>\n * <div slot=\"content\"><strong>Bold</strong> tooltip</div>\n * </cg-tooltip>\n * ```\n *\n * @slot - Default slot for the trigger element\n * @slot content - Rich HTML tooltip content (alternative to `content` property)\n *\n * @cssprop --cg-color-tooltip-background - Tooltip background\n * @cssprop --cg-font-size-xs - Tooltip font size (12px)\n * @cssprop --cg-component-tooltip-radius - Tooltip border radius\n * @cssprop --cg-transition-duration-slow - Fade+scale animation duration (250ms)\n */\n@customElement('cg-tooltip')\nexport class CgTooltip extends LitElement {\n static override styles = css`\n :host {\n transition: color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n display: inline-block;\n position: relative;\n font-family: var(--cg-font-family-primary);\n }\n\n .trigger-wrap {\n display: inline-flex;\n }\n\n .tooltip {\n position: absolute;\n z-index: 10000;\n padding: var(--cg-spacing-6) var(--cg-spacing-12);\n background: var(--cg-color-tooltip-background);\n color: var(--cg-color-tooltip-text);\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-medium);\n line-height: var(--cg-line-height-snug);\n border-radius: var(--cg-component-tooltip-radius);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-tooltip-border);\n white-space: nowrap;\n max-width: 280px;\n pointer-events: none;\n\n /* Animation — fade+scale with pop */\n opacity: 0;\n transform: scale(0.92);\n transition:\n opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-slow) var(--cg-transition-easing-spring);\n }\n\n /* Rich content slot may contain block elements */\n .tooltip-content ::slotted(*) {\n white-space: normal;\n }\n\n :host([_visible]) .tooltip {\n opacity: 1;\n transform: scale(1);\n }\n\n /* ── Closing animation ── */\n @keyframes tooltip-exit {\n from { opacity: 1; transform: scale(1); }\n to { opacity: 0; transform: scale(0.92); }\n }\n .tooltip.closing {\n animation: tooltip-exit var(--cg-transition-duration-fast) var(--cg-transition-easing-ease-in) forwards;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .tooltip {\n transition: opacity var(--cg-transition-duration-fast) ease;\n transform: scale(1) !important;\n }\n }\n\n /* ── Arrow ── */\n .arrow {\n position: absolute;\n width: var(--cg-spacing-8);\n height: var(--cg-spacing-8);\n background: var(--cg-color-tooltip-arrow);\n transform: rotate(45deg);\n }\n\n /* ── Top position (default) ── */\n :host([_effective-position=\"top\"]) .tooltip {\n bottom: 100%;\n left: 50%;\n transform-origin: bottom center;\n margin-bottom: var(--cg-spacing-8);\n }\n :host([_effective-position=\"top\"][_visible]) .tooltip {\n transform: scale(1) translateX(-50%);\n }\n :host([_effective-position=\"top\"]) .tooltip:not([style]) {\n transform: scale(0.92) translateX(-50%);\n }\n :host([_effective-position=\"top\"]) .arrow {\n bottom: calc(var(--cg-spacing-4) * -1);\n left: 50%;\n margin-left: calc(var(--cg-spacing-4) * -1);\n }\n\n /* ── Bottom position ── */\n :host([_effective-position=\"bottom\"]) .tooltip {\n top: 100%;\n left: 50%;\n transform-origin: top center;\n margin-top: var(--cg-spacing-8);\n }\n :host([_effective-position=\"bottom\"][_visible]) .tooltip {\n transform: scale(1) translateX(-50%);\n }\n :host([_effective-position=\"bottom\"]) .tooltip:not([style]) {\n transform: scale(0.92) translateX(-50%);\n }\n :host([_effective-position=\"bottom\"]) .arrow {\n top: calc(var(--cg-spacing-4) * -1);\n left: 50%;\n margin-left: calc(var(--cg-spacing-4) * -1);\n }\n\n /* ── Left position ── */\n :host([_effective-position=\"left\"]) .tooltip {\n right: 100%;\n top: 50%;\n transform-origin: right center;\n margin-right: var(--cg-spacing-8);\n }\n :host([_effective-position=\"left\"][_visible]) .tooltip {\n transform: scale(1) translateY(-50%);\n }\n :host([_effective-position=\"left\"]) .tooltip:not([style]) {\n transform: scale(0.92) translateY(-50%);\n }\n :host([_effective-position=\"left\"]) .arrow {\n right: calc(var(--cg-spacing-4) * -1);\n top: 50%;\n margin-top: calc(var(--cg-spacing-4) * -1);\n }\n\n /* ── Right position ── */\n :host([_effective-position=\"right\"]) .tooltip {\n left: 100%;\n top: 50%;\n transform-origin: left center;\n margin-left: var(--cg-spacing-8);\n }\n :host([_effective-position=\"right\"][_visible]) .tooltip {\n transform: scale(1) translateY(-50%);\n }\n :host([_effective-position=\"right\"]) .tooltip:not([style]) {\n transform: scale(0.92) translateY(-50%);\n }\n :host([_effective-position=\"right\"]) .arrow {\n left: calc(var(--cg-spacing-4) * -1);\n top: 50%;\n margin-top: calc(var(--cg-spacing-4) * -1);\n }\n\n /* ── Variant: error ── */\n :host([variant=\"error\"]) .tooltip {\n background: var(--cg-color-status-error-background-default);\n border: var(--cg-border-width-50) solid var(--cg-color-status-error-border-default);\n color: var(--cg-color-status-error-text-default);\n }\n :host([variant=\"error\"]) .arrow {\n background: var(--cg-color-status-error-background-default);\n }\n\n /* ── Variant: success ── */\n :host([variant=\"success\"]) .tooltip {\n background: var(--cg-color-status-success-background-default);\n border: var(--cg-border-width-50) solid var(--cg-color-status-success-border-default);\n color: var(--cg-color-status-success-text-default);\n }\n :host([variant=\"success\"]) .arrow {\n background: var(--cg-color-status-success-background-default);\n }\n\n /* Rounded variants */\n :host([rounded=\"none\"]) .tooltip { border-radius: 0; }\n :host([rounded=\"sm\"]) .tooltip { border-radius: var(--cg-border-radius-50); }\n :host([rounded=\"md\"]) .tooltip { border-radius: var(--cg-component-tooltip-radius); }\n :host([rounded=\"lg\"]) .tooltip { border-radius: var(--cg-border-radius-150); }\n :host([rounded=\"full\"]) .tooltip { border-radius: var(--cg-border-radius-full); }\n `;\n\n @property({ type: String }) content = '';\n @property({ reflect: true }) rounded: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'md';\n @property({ type: String, reflect: true }) variant: 'default' | 'error' | 'success' = 'default';\n @property({ type: String, reflect: true }) position: 'top' | 'bottom' | 'left' | 'right' = 'top';\n @property({ type: Number }) delay = 300;\n @property({ type: Boolean }) disabled = false;\n\n @property({ type: Boolean, reflect: true, attribute: '_visible' })\n private _visible = false;\n\n @state() private _closing = false;\n\n /** Effective position after viewport edge detection (may differ from `position` prop). */\n @property({ type: String, reflect: true, attribute: '_effective-position' })\n private _effectivePosition: 'top' | 'bottom' | 'left' | 'right' = 'top';\n\n private _showTimeout: ReturnType<typeof setTimeout> | null = null;\n private _hideTimeout: ReturnType<typeof setTimeout> | null = null;\n private _tooltipId = `tooltip-${Math.random().toString(36).slice(2, 9)}`;\n private _escapeHandler = this._handleEscape.bind(this);\n\n /** Check if the tooltip has rich slot content (named \"content\" slot). */\n private get _hasContent(): boolean {\n return !!this.content || !!this.querySelector('[slot=\"content\"]');\n }\n\n /**\n * Adjusts the effective position based on viewport edge detection.\n * Called after the tooltip becomes visible so we can measure its bounding rect.\n */\n private _adjustPosition() {\n const tooltipEl = this.shadowRoot?.querySelector('.tooltip') as HTMLElement | null;\n if (!tooltipEl) return;\n\n const rect = tooltipEl.getBoundingClientRect();\n const vw = window.innerWidth;\n const vh = window.innerHeight;\n let adjusted = this.position;\n\n if (this.position === 'top' && rect.top < 0) {\n adjusted = 'bottom';\n } else if (this.position === 'bottom' && rect.bottom > vh) {\n adjusted = 'top';\n } else if (this.position === 'left' && rect.left < 0) {\n adjusted = 'right';\n } else if (this.position === 'right' && rect.right > vw) {\n adjusted = 'left';\n }\n\n if (adjusted !== this._effectivePosition) {\n this._effectivePosition = adjusted;\n }\n }\n\n private _show() {\n if (this.disabled || !this._hasContent) return;\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = null;\n this._closing = false;\n }\n // Reset effective position to the declared position before showing\n this._effectivePosition = this.position;\n this._showTimeout = setTimeout(() => {\n this._visible = true;\n document.addEventListener('keydown', this._escapeHandler);\n // Adjust position after layout is calculated\n requestAnimationFrame(() => {\n this._adjustPosition();\n });\n }, this.delay);\n }\n\n private _handleEscape(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n this._hide();\n }\n }\n\n private _hide() {\n if (this._showTimeout) {\n clearTimeout(this._showTimeout);\n this._showTimeout = null;\n }\n if (!this._visible) return;\n document.removeEventListener('keydown', this._escapeHandler);\n this._closing = true;\n this._hideTimeout = setTimeout(() => {\n this._closing = false;\n this._visible = false;\n // Reset effective position when hidden\n this._effectivePosition = this.position;\n }, 100);\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('keydown', this._escapeHandler);\n if (this._showTimeout) {\n clearTimeout(this._showTimeout);\n }\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n }\n }\n\n override render() {\n return html`\n <div\n class=\"trigger-wrap\"\n @mouseenter=\"${this._show}\"\n @mouseleave=\"${this._hide}\"\n @focusin=\"${this._show}\"\n @focusout=\"${this._hide}\"\n aria-describedby=\"${this._tooltipId}\"\n >\n <slot></slot>\n </div>\n <div\n class=\"tooltip ${this._closing ? 'closing' : ''}\"\n id=\"${this._tooltipId}\"\n role=\"tooltip\"\n aria-hidden=${!this._visible ? 'true' : nothing}\n >\n <span class=\"arrow\"></span>\n <span class=\"tooltip-content\">\n <slot name=\"content\">${this.content}</slot>\n </span>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-tooltip': CgTooltip;\n }\n}\n// Mon Apr 13 18:30:49 AEST 2026\n// Mon Apr 13 18:31:30 AEST 2026\n"],"names":["CgTooltip","LitElement","tooltipEl","rect","vw","vh","adjusted","e","html","nothing","css","__decorateClass","property","state","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export interface TreeItem {
|
|
3
|
+
label: string;
|
|
4
|
+
value?: string;
|
|
5
|
+
icon?: string;
|
|
6
|
+
children?: TreeItem[];
|
|
7
|
+
expanded?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @element cg-tree-view
|
|
12
|
+
* Hierarchical tree with keyboard navigation and multi-select.
|
|
13
|
+
*
|
|
14
|
+
* @fires {CustomEvent<{value:string|string[]}>} cg-tree-select
|
|
15
|
+
* @fires {CustomEvent<{path:string}>} cg-tree-expand
|
|
16
|
+
* @fires {CustomEvent<{path:string}>} cg-tree-collapse
|
|
17
|
+
*/
|
|
18
|
+
export declare class CgTreeView extends LitElement {
|
|
19
|
+
static styles: import('lit').CSSResult[];
|
|
20
|
+
items: TreeItem[];
|
|
21
|
+
multiple: boolean;
|
|
22
|
+
selected: string[];
|
|
23
|
+
private _expanded;
|
|
24
|
+
private _focusedPath;
|
|
25
|
+
connectedCallback(): void;
|
|
26
|
+
willUpdate(changed: Map<string, unknown>): void;
|
|
27
|
+
private _seedExpanded;
|
|
28
|
+
private _flatten;
|
|
29
|
+
private _toggle;
|
|
30
|
+
private _select;
|
|
31
|
+
private _onNodeClick;
|
|
32
|
+
private _onKeydown;
|
|
33
|
+
private _focusPath;
|
|
34
|
+
private _isSelected;
|
|
35
|
+
render(): import('lit').TemplateResult<1>;
|
|
36
|
+
}
|
|
37
|
+
declare global {
|
|
38
|
+
interface HTMLElementTagNameMap {
|
|
39
|
+
'cg-tree-view': CgTreeView;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=cg-tree-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cg-tree-view.d.ts","sourceRoot":"","sources":["../../../src/components/cg-tree-view/cg-tree-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAWD;;;;;;;GAOG;AACH,qBACa,UAAW,SAAQ,UAAU;IACxC,OAAgB,MAAM,4BAiGnB;IAEwB,KAAK,EAAE,QAAQ,EAAE,CAAM;IACrB,QAAQ,UAAS;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAM;IAE1C,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,YAAY,CAAuB;IAE3C,iBAAiB,IAAI,IAAI;IAKzB,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAOxD,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,UAAU;IA8ClB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAKV,MAAM;CA8BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,UAAU,CAAC;KAC5B;CACF"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import { css as v, LitElement as m, nothing as h, html as c } from "lit";
|
|
2
|
+
import { property as p, state as f, customElement as b } from "lit/decorators.js";
|
|
3
|
+
import { h as _, r as x } from "../../chunks/premium.css-9I4kHrsl.js";
|
|
4
|
+
var w = Object.defineProperty, y = Object.getOwnPropertyDescriptor, l = (t, e, a, r) => {
|
|
5
|
+
for (var s = r > 1 ? void 0 : r ? y(e, a) : e, i = t.length - 1, o; i >= 0; i--)
|
|
6
|
+
(o = t[i]) && (s = (r ? o(e, a, s) : o(s)) || s);
|
|
7
|
+
return r && s && w(e, a, s), s;
|
|
8
|
+
};
|
|
9
|
+
let n = class extends m {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments), this.items = [], this.multiple = !1, this.selected = [], this._expanded = /* @__PURE__ */ new Set(), this._focusedPath = null;
|
|
12
|
+
}
|
|
13
|
+
connectedCallback() {
|
|
14
|
+
super.connectedCallback(), this._seedExpanded(this.items, "");
|
|
15
|
+
}
|
|
16
|
+
willUpdate(t) {
|
|
17
|
+
t.has("items") && (this._expanded.clear(), this._seedExpanded(this.items, ""));
|
|
18
|
+
}
|
|
19
|
+
_seedExpanded(t, e) {
|
|
20
|
+
t.forEach((a, r) => {
|
|
21
|
+
const s = e ? `${e}.${r}` : `${r}`;
|
|
22
|
+
a.expanded && this._expanded.add(s), a.children && this._seedExpanded(a.children, s);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
_flatten() {
|
|
26
|
+
const t = [], e = (a, r, s) => {
|
|
27
|
+
a.forEach((i, o) => {
|
|
28
|
+
const d = s ? `${s}.${o}` : `${o}`, u = !!(i.children && i.children.length), g = this._expanded.has(d);
|
|
29
|
+
t.push({ item: i, level: r, path: d, hasChildren: u, expanded: g, parentPath: s }), u && g && e(i.children, r + 1, d);
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
return e(this.items, 0, null), t;
|
|
33
|
+
}
|
|
34
|
+
_toggle(t) {
|
|
35
|
+
t.hasChildren && (this._expanded.has(t.path) ? (this._expanded.delete(t.path), this.dispatchEvent(new CustomEvent("cg-tree-collapse", { bubbles: !0, composed: !0, detail: { path: t.path } }))) : (this._expanded.add(t.path), this.dispatchEvent(new CustomEvent("cg-tree-expand", { bubbles: !0, composed: !0, detail: { path: t.path } }))), this.requestUpdate());
|
|
36
|
+
}
|
|
37
|
+
_select(t) {
|
|
38
|
+
if (t.item.disabled) return;
|
|
39
|
+
const e = t.item.value ?? t.path;
|
|
40
|
+
let a;
|
|
41
|
+
this.multiple ? a = this.selected.includes(e) ? this.selected.filter((r) => r !== e) : [...this.selected, e] : a = [e], this.selected = a, this.dispatchEvent(new CustomEvent("cg-tree-select", {
|
|
42
|
+
bubbles: !0,
|
|
43
|
+
composed: !0,
|
|
44
|
+
detail: { value: this.multiple ? a : a[0] ?? "" }
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
_onNodeClick(t) {
|
|
48
|
+
t.hasChildren && this._toggle(t), this._select(t), this._focusedPath = t.path;
|
|
49
|
+
}
|
|
50
|
+
_onKeydown(t, e) {
|
|
51
|
+
const a = this._flatten(), r = a.findIndex((s) => s.path === e.path);
|
|
52
|
+
switch (t.key) {
|
|
53
|
+
case "ArrowDown": {
|
|
54
|
+
t.preventDefault();
|
|
55
|
+
const s = a[r + 1];
|
|
56
|
+
s && this._focusPath(s.path);
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
case "ArrowUp": {
|
|
60
|
+
t.preventDefault();
|
|
61
|
+
const s = a[r - 1];
|
|
62
|
+
s && this._focusPath(s.path);
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
case "ArrowRight": {
|
|
66
|
+
t.preventDefault(), e.hasChildren && !e.expanded && this._toggle(e);
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
case "ArrowLeft": {
|
|
70
|
+
t.preventDefault(), e.hasChildren && e.expanded ? this._toggle(e) : e.parentPath && this._focusPath(e.parentPath);
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
case "Home":
|
|
74
|
+
t.preventDefault(), a[0] && this._focusPath(a[0].path);
|
|
75
|
+
break;
|
|
76
|
+
case "End":
|
|
77
|
+
t.preventDefault(), a[a.length - 1] && this._focusPath(a[a.length - 1].path);
|
|
78
|
+
break;
|
|
79
|
+
case "Enter":
|
|
80
|
+
case " ":
|
|
81
|
+
t.preventDefault(), this._select(e);
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
_focusPath(t) {
|
|
86
|
+
this._focusedPath = t, this.updateComplete.then(() => {
|
|
87
|
+
this.shadowRoot?.querySelector(`[data-path="${t}"]`)?.focus();
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
_isSelected(t) {
|
|
91
|
+
const e = t.item.value ?? t.path;
|
|
92
|
+
return this.selected.includes(e);
|
|
93
|
+
}
|
|
94
|
+
render() {
|
|
95
|
+
const t = this._flatten();
|
|
96
|
+
return c`
|
|
97
|
+
<ul role="tree" aria-multiselectable=${this.multiple ? "true" : "false"}>
|
|
98
|
+
${t.map((e) => c`
|
|
99
|
+
<li role="none">
|
|
100
|
+
<div
|
|
101
|
+
class="node ${this._isSelected(e) ? "selected" : ""} ${e.item.disabled ? "disabled" : ""}"
|
|
102
|
+
role="treeitem"
|
|
103
|
+
data-path=${e.path}
|
|
104
|
+
tabindex=${this._focusedPath === e.path || this._focusedPath === null && e === t[0] ? "0" : "-1"}
|
|
105
|
+
style="--cg-tree-level: ${e.level};"
|
|
106
|
+
aria-level=${e.level + 1}
|
|
107
|
+
aria-expanded=${e.hasChildren ? e.expanded ? "true" : "false" : h}
|
|
108
|
+
aria-selected=${this._isSelected(e) ? "true" : "false"}
|
|
109
|
+
aria-disabled=${e.item.disabled ? "true" : "false"}
|
|
110
|
+
@click=${() => this._onNodeClick(e)}
|
|
111
|
+
@keydown=${(a) => this._onKeydown(a, e)}
|
|
112
|
+
>
|
|
113
|
+
<span class="toggle ${e.hasChildren ? "" : "placeholder"} ${e.expanded ? "expanded" : ""}" aria-hidden="true">
|
|
114
|
+
${e.hasChildren ? c`<cg-icon name="alt-arrow-right-linear" size="sm"></cg-icon>` : h}
|
|
115
|
+
</span>
|
|
116
|
+
${e.item.icon ? c`<cg-icon class="leading-icon" name=${e.item.icon} size="sm" aria-hidden="true"></cg-icon>` : h}
|
|
117
|
+
<span class="label">${e.item.label}</span>
|
|
118
|
+
</div>
|
|
119
|
+
</li>
|
|
120
|
+
`)}
|
|
121
|
+
</ul>
|
|
122
|
+
`;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
n.styles = [_, x, v`
|
|
126
|
+
:host {
|
|
127
|
+
display: block;
|
|
128
|
+
color: var(--cg-color-surface-container-text);
|
|
129
|
+
font-size: var(--cg-font-size-sm);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
ul {
|
|
133
|
+
list-style: none;
|
|
134
|
+
padding: 0;
|
|
135
|
+
margin: 0;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.node {
|
|
139
|
+
position: relative;
|
|
140
|
+
display: flex;
|
|
141
|
+
align-items: center;
|
|
142
|
+
gap: var(--cg-spacing-8);
|
|
143
|
+
padding: var(--cg-spacing-6) var(--cg-spacing-8);
|
|
144
|
+
/* Indentation per nesting level — read from the inline custom property
|
|
145
|
+
set by the renderer. Keeps the calc out of the markup. */
|
|
146
|
+
padding-left: calc(var(--cg-spacing-8) + var(--cg-spacing-20) * var(--cg-tree-level));
|
|
147
|
+
min-height: var(--cg-spacing-32);
|
|
148
|
+
border: var(--cg-border-width-50) solid transparent;
|
|
149
|
+
border-radius: var(--cg-border-radius-100);
|
|
150
|
+
cursor: pointer;
|
|
151
|
+
user-select: none;
|
|
152
|
+
color: var(--cg-color-surface-container-text);
|
|
153
|
+
transition:
|
|
154
|
+
background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),
|
|
155
|
+
border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),
|
|
156
|
+
color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/* Hover and selected share the same chrome for now — list-row bg shift
|
|
160
|
+
(theme-aware via surface-cards tokens) plus a 1px container outline.
|
|
161
|
+
The transparent border at rest prevents any layout shift. */
|
|
162
|
+
.node:hover:not(.disabled),
|
|
163
|
+
.node.selected {
|
|
164
|
+
background: var(--cg-color-surface-cards-active-background);
|
|
165
|
+
border-color: var(--cg-color-surface-container-border);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.node.disabled {
|
|
169
|
+
opacity: 0.5;
|
|
170
|
+
cursor: not-allowed;
|
|
171
|
+
}
|
|
172
|
+
.node:focus-visible {
|
|
173
|
+
outline: none;
|
|
174
|
+
box-shadow:
|
|
175
|
+
0 0 0 var(--cg-focus-ring-offset) var(--cg-color-focus-ring-offset),
|
|
176
|
+
0 0 0 calc(var(--cg-focus-ring-offset) + var(--cg-focus-ring-width)) var(--cg-color-focus-ring);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.toggle {
|
|
180
|
+
display: inline-flex;
|
|
181
|
+
align-items: center;
|
|
182
|
+
justify-content: center;
|
|
183
|
+
width: var(--cg-spacing-16);
|
|
184
|
+
height: var(--cg-spacing-16);
|
|
185
|
+
flex-shrink: 0;
|
|
186
|
+
color: var(--cg-color-surface-container-outlined);
|
|
187
|
+
opacity: 0.7;
|
|
188
|
+
transition:
|
|
189
|
+
transform var(--cg-transition-duration-default) var(--cg-transition-easing-default),
|
|
190
|
+
opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),
|
|
191
|
+
color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
|
|
192
|
+
}
|
|
193
|
+
.toggle.expanded { transform: rotate(90deg); }
|
|
194
|
+
.node:hover .toggle,
|
|
195
|
+
.node.selected .toggle { opacity: 1; color: var(--cg-color-surface-base-text); }
|
|
196
|
+
.toggle.placeholder { visibility: hidden; }
|
|
197
|
+
|
|
198
|
+
/* Optional leading icon next to the label. Muted at rest, full color on
|
|
199
|
+
hover/selected so the row feels alive but doesn't compete with text. */
|
|
200
|
+
.leading-icon {
|
|
201
|
+
flex-shrink: 0;
|
|
202
|
+
color: var(--cg-color-surface-container-outlined);
|
|
203
|
+
width: var(--cg-spacing-16);
|
|
204
|
+
height: var(--cg-spacing-16);
|
|
205
|
+
opacity: 0.85;
|
|
206
|
+
transition:
|
|
207
|
+
opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),
|
|
208
|
+
color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
|
|
209
|
+
}
|
|
210
|
+
.node:hover .leading-icon,
|
|
211
|
+
.node.selected .leading-icon {
|
|
212
|
+
color: var(--cg-color-action-primary-background-default);
|
|
213
|
+
opacity: 1;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.label {
|
|
217
|
+
flex: 1;
|
|
218
|
+
overflow: hidden;
|
|
219
|
+
text-overflow: ellipsis;
|
|
220
|
+
white-space: nowrap;
|
|
221
|
+
}
|
|
222
|
+
`];
|
|
223
|
+
l([
|
|
224
|
+
p({ type: Array })
|
|
225
|
+
], n.prototype, "items", 2);
|
|
226
|
+
l([
|
|
227
|
+
p({ type: Boolean })
|
|
228
|
+
], n.prototype, "multiple", 2);
|
|
229
|
+
l([
|
|
230
|
+
p({ type: Array })
|
|
231
|
+
], n.prototype, "selected", 2);
|
|
232
|
+
l([
|
|
233
|
+
f()
|
|
234
|
+
], n.prototype, "_expanded", 2);
|
|
235
|
+
l([
|
|
236
|
+
f()
|
|
237
|
+
], n.prototype, "_focusedPath", 2);
|
|
238
|
+
n = l([
|
|
239
|
+
b("cg-tree-view")
|
|
240
|
+
], n);
|
|
241
|
+
export {
|
|
242
|
+
n as CgTreeView
|
|
243
|
+
};
|
|
244
|
+
//# sourceMappingURL=cg-tree-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cg-tree-view.js","sources":["../../../src/components/cg-tree-view/cg-tree-view.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\nexport interface TreeItem {\n label: string;\n value?: string;\n icon?: string;\n children?: TreeItem[];\n expanded?: boolean;\n disabled?: boolean;\n}\n\ninterface FlatNode {\n item: TreeItem;\n level: number;\n path: string;\n hasChildren: boolean;\n expanded: boolean;\n parentPath: string | null;\n}\n\n/**\n * @element cg-tree-view\n * Hierarchical tree with keyboard navigation and multi-select.\n *\n * @fires {CustomEvent<{value:string|string[]}>} cg-tree-select\n * @fires {CustomEvent<{path:string}>} cg-tree-expand\n * @fires {CustomEvent<{path:string}>} cg-tree-collapse\n */\n@customElement('cg-tree-view')\nexport class CgTreeView extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n display: block;\n color: var(--cg-color-surface-container-text);\n font-size: var(--cg-font-size-sm);\n }\n\n ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n\n .node {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n padding: var(--cg-spacing-6) var(--cg-spacing-8);\n /* Indentation per nesting level — read from the inline custom property\n set by the renderer. Keeps the calc out of the markup. */\n padding-left: calc(var(--cg-spacing-8) + var(--cg-spacing-20) * var(--cg-tree-level));\n min-height: var(--cg-spacing-32);\n border: var(--cg-border-width-50) solid transparent;\n border-radius: var(--cg-border-radius-100);\n cursor: pointer;\n user-select: none;\n color: var(--cg-color-surface-container-text);\n transition:\n background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n\n /* Hover and selected share the same chrome for now — list-row bg shift\n (theme-aware via surface-cards tokens) plus a 1px container outline.\n The transparent border at rest prevents any layout shift. */\n .node:hover:not(.disabled),\n .node.selected {\n background: var(--cg-color-surface-cards-active-background);\n border-color: var(--cg-color-surface-container-border);\n }\n\n .node.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n .node:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 var(--cg-focus-ring-offset) var(--cg-color-focus-ring-offset),\n 0 0 0 calc(var(--cg-focus-ring-offset) + var(--cg-focus-ring-width)) var(--cg-color-focus-ring);\n }\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 flex-shrink: 0;\n color: var(--cg-color-surface-container-outlined);\n opacity: 0.7;\n transition:\n transform var(--cg-transition-duration-default) var(--cg-transition-easing-default),\n opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .toggle.expanded { transform: rotate(90deg); }\n .node:hover .toggle,\n .node.selected .toggle { opacity: 1; color: var(--cg-color-surface-base-text); }\n .toggle.placeholder { visibility: hidden; }\n\n /* Optional leading icon next to the label. Muted at rest, full color on\n hover/selected so the row feels alive but doesn't compete with text. */\n .leading-icon {\n flex-shrink: 0;\n color: var(--cg-color-surface-container-outlined);\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n opacity: 0.85;\n transition:\n opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .node:hover .leading-icon,\n .node.selected .leading-icon {\n color: var(--cg-color-action-primary-background-default);\n opacity: 1;\n }\n\n .label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n `];\n\n @property({ type: Array }) items: TreeItem[] = [];\n @property({ type: Boolean }) multiple = false;\n @property({ type: Array }) selected: string[] = [];\n\n @state() private _expanded = new Set<string>();\n @state() private _focusedPath: string | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._seedExpanded(this.items, '');\n }\n\n override willUpdate(changed: Map<string, unknown>): void {\n if (changed.has('items')) {\n this._expanded.clear();\n this._seedExpanded(this.items, '');\n }\n }\n\n private _seedExpanded(items: TreeItem[], parentPath: string): void {\n items.forEach((item, i) => {\n const path = parentPath ? `${parentPath}.${i}` : `${i}`;\n if (item.expanded) this._expanded.add(path);\n if (item.children) this._seedExpanded(item.children, path);\n });\n }\n\n private _flatten(): FlatNode[] {\n const out: FlatNode[] = [];\n const walk = (items: TreeItem[], level: number, parentPath: string | null) => {\n items.forEach((item, i) => {\n const path = parentPath ? `${parentPath}.${i}` : `${i}`;\n const hasChildren = !!(item.children && item.children.length);\n const expanded = this._expanded.has(path);\n out.push({ item, level, path, hasChildren, expanded, parentPath });\n if (hasChildren && expanded) walk(item.children!, level + 1, path);\n });\n };\n walk(this.items, 0, null);\n return out;\n }\n\n private _toggle(node: FlatNode): void {\n if (!node.hasChildren) return;\n if (this._expanded.has(node.path)) {\n this._expanded.delete(node.path);\n this.dispatchEvent(new CustomEvent('cg-tree-collapse', { bubbles: true, composed: true, detail: { path: node.path } }));\n } else {\n this._expanded.add(node.path);\n this.dispatchEvent(new CustomEvent('cg-tree-expand', { bubbles: true, composed: true, detail: { path: node.path } }));\n }\n this.requestUpdate();\n }\n\n private _select(node: FlatNode): void {\n if (node.item.disabled) return;\n const v = node.item.value ?? node.path;\n let next: string[];\n if (this.multiple) {\n next = this.selected.includes(v) ? this.selected.filter(x => x !== v) : [...this.selected, v];\n } else {\n next = [v];\n }\n this.selected = next;\n this.dispatchEvent(new CustomEvent('cg-tree-select', {\n bubbles: true, composed: true,\n detail: { value: this.multiple ? next : next[0] ?? '' },\n }));\n }\n\n private _onNodeClick(node: FlatNode): void {\n if (node.hasChildren) this._toggle(node);\n this._select(node);\n this._focusedPath = node.path;\n }\n\n private _onKeydown(e: KeyboardEvent, node: FlatNode): void {\n const flat = this._flatten();\n const idx = flat.findIndex(n => n.path === node.path);\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n const next = flat[idx + 1];\n if (next) this._focusPath(next.path);\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n const prev = flat[idx - 1];\n if (prev) this._focusPath(prev.path);\n break;\n }\n case 'ArrowRight': {\n e.preventDefault();\n if (node.hasChildren && !node.expanded) this._toggle(node);\n break;\n }\n case 'ArrowLeft': {\n e.preventDefault();\n if (node.hasChildren && node.expanded) {\n this._toggle(node);\n } else if (node.parentPath) {\n this._focusPath(node.parentPath);\n }\n break;\n }\n case 'Home':\n e.preventDefault();\n if (flat[0]) this._focusPath(flat[0].path);\n break;\n case 'End':\n e.preventDefault();\n if (flat[flat.length - 1]) this._focusPath(flat[flat.length - 1]!.path);\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n this._select(node);\n break;\n }\n }\n\n private _focusPath(path: string): void {\n this._focusedPath = path;\n this.updateComplete.then(() => {\n const el = this.shadowRoot?.querySelector<HTMLElement>(`[data-path=\"${path}\"]`);\n el?.focus();\n });\n }\n\n private _isSelected(node: FlatNode): boolean {\n const v = node.item.value ?? node.path;\n return this.selected.includes(v);\n }\n\n override render() {\n const flat = this._flatten();\n return html`\n <ul role=\"tree\" aria-multiselectable=${this.multiple ? 'true' : 'false'}>\n ${flat.map(node => html`\n <li role=\"none\">\n <div\n class=\"node ${this._isSelected(node) ? 'selected' : ''} ${node.item.disabled ? 'disabled' : ''}\"\n role=\"treeitem\"\n data-path=${node.path}\n tabindex=${this._focusedPath === node.path || (this._focusedPath === null && node === flat[0]) ? '0' : '-1'}\n style=\"--cg-tree-level: ${node.level};\"\n aria-level=${node.level + 1}\n aria-expanded=${node.hasChildren ? (node.expanded ? 'true' : 'false') : nothing}\n aria-selected=${this._isSelected(node) ? 'true' : 'false'}\n aria-disabled=${node.item.disabled ? 'true' : 'false'}\n @click=${() => this._onNodeClick(node)}\n @keydown=${(e: KeyboardEvent) => this._onKeydown(e, node)}\n >\n <span class=\"toggle ${node.hasChildren ? '' : 'placeholder'} ${node.expanded ? 'expanded' : ''}\" aria-hidden=\"true\">\n ${node.hasChildren ? html`<cg-icon name=\"alt-arrow-right-linear\" size=\"sm\"></cg-icon>` : nothing}\n </span>\n ${node.item.icon ? html`<cg-icon class=\"leading-icon\" name=${node.item.icon} size=\"sm\" aria-hidden=\"true\"></cg-icon>` : nothing}\n <span class=\"label\">${node.item.label}</span>\n </div>\n </li>\n `)}\n </ul>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-tree-view': CgTreeView;\n }\n}\n"],"names":["CgTreeView","LitElement","changed","items","parentPath","item","i","path","out","walk","level","hasChildren","expanded","node","v","next","x","e","flat","idx","n","prev","html","nothing","hostBlock","reducedMotion","css","__decorateClass","property","state","customElement"],"mappings":"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"}
|