@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,91 @@
|
|
|
1
|
+
import { css as g, LitElement as l, html as m } from "lit";
|
|
2
|
+
import { property as p, customElement as h } from "lit/decorators.js";
|
|
3
|
+
import { h as u, r as d } from "../../chunks/premium.css-9I4kHrsl.js";
|
|
4
|
+
var x = Object.defineProperty, y = Object.getOwnPropertyDescriptor, c = (e, n, s, i) => {
|
|
5
|
+
for (var t = i > 1 ? void 0 : i ? y(n, s) : n, r = e.length - 1, a; r >= 0; r--)
|
|
6
|
+
(a = e[r]) && (t = (i ? a(n, s, t) : a(t)) || t);
|
|
7
|
+
return i && t && x(n, s, t), t;
|
|
8
|
+
};
|
|
9
|
+
let o = class extends l {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments), this.density = "cozy", this.motion = "full", this.contrast = "normal", this.tokens = null;
|
|
12
|
+
}
|
|
13
|
+
_tokensInlineStyle() {
|
|
14
|
+
return this.tokens ? Object.entries(this.tokens).map(([n, s]) => `${n}: ${s};`).join(" ") : "";
|
|
15
|
+
}
|
|
16
|
+
render() {
|
|
17
|
+
const e = this._tokensInlineStyle();
|
|
18
|
+
return m`
|
|
19
|
+
<div class="scope" style=${e || ""}>
|
|
20
|
+
<slot></slot>
|
|
21
|
+
</div>
|
|
22
|
+
`;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
o.styles = [u, d, g`
|
|
26
|
+
:host { display: contents; }
|
|
27
|
+
.scope { display: contents; }
|
|
28
|
+
|
|
29
|
+
/* ── Density bands (token override layers) ──
|
|
30
|
+
Each density rescales only spacing and component sizing. Type and
|
|
31
|
+
color stay constant so density doesn't smuggle in surprise contrast. */
|
|
32
|
+
:host([density="compact"]) .scope {
|
|
33
|
+
--cg-spacing-2: 1px; --cg-spacing-4: 2px; --cg-spacing-6: 4px;
|
|
34
|
+
--cg-spacing-8: 6px; --cg-spacing-12: 8px; --cg-spacing-16: 12px;
|
|
35
|
+
--cg-spacing-24: 16px; --cg-spacing-32: 20px; --cg-spacing-48: 32px;
|
|
36
|
+
--cg-component-input-height-md: 36px;
|
|
37
|
+
--cg-component-input-height-lg: 44px;
|
|
38
|
+
--cg-component-button-height-sm: 28px;
|
|
39
|
+
--cg-component-button-height-md: 36px;
|
|
40
|
+
--cg-component-button-height-lg: 44px;
|
|
41
|
+
}
|
|
42
|
+
:host([density="comfortable"]) .scope {
|
|
43
|
+
--cg-spacing-2: 3px; --cg-spacing-4: 5px; --cg-spacing-6: 7px;
|
|
44
|
+
--cg-spacing-8: 10px; --cg-spacing-12: 14px; --cg-spacing-16: 20px;
|
|
45
|
+
--cg-spacing-24: 28px; --cg-spacing-32: 36px; --cg-spacing-48: 56px;
|
|
46
|
+
--cg-component-input-height-md: 52px;
|
|
47
|
+
--cg-component-input-height-lg: 60px;
|
|
48
|
+
--cg-component-button-height-sm: 40px;
|
|
49
|
+
--cg-component-button-height-md: 56px;
|
|
50
|
+
--cg-component-button-height-lg: 64px;
|
|
51
|
+
}
|
|
52
|
+
/* density="cozy" is the default — no overrides */
|
|
53
|
+
|
|
54
|
+
/* ── Motion bands ── */
|
|
55
|
+
:host([motion="reduced"]) .scope {
|
|
56
|
+
--cg-transition-duration-fast: 80ms;
|
|
57
|
+
--cg-transition-duration-default: 120ms;
|
|
58
|
+
--cg-transition-duration-slow: 180ms;
|
|
59
|
+
}
|
|
60
|
+
:host([motion="none"]) .scope,
|
|
61
|
+
:host([motion="none"]) .scope * {
|
|
62
|
+
animation-duration: 0.001ms !important;
|
|
63
|
+
transition-duration: 0.001ms !important;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* ── Contrast bands ── */
|
|
67
|
+
:host([contrast="high"]) .scope {
|
|
68
|
+
--cg-color-surface-cards-border: var(--cg-color-surface-base-text);
|
|
69
|
+
--cg-color-surface-cards-border-strong: var(--cg-color-surface-base-text);
|
|
70
|
+
--cg-color-input-border-default: var(--cg-color-surface-base-text);
|
|
71
|
+
}
|
|
72
|
+
`];
|
|
73
|
+
c([
|
|
74
|
+
p({ reflect: !0 })
|
|
75
|
+
], o.prototype, "density", 2);
|
|
76
|
+
c([
|
|
77
|
+
p({ reflect: !0 })
|
|
78
|
+
], o.prototype, "motion", 2);
|
|
79
|
+
c([
|
|
80
|
+
p({ reflect: !0 })
|
|
81
|
+
], o.prototype, "contrast", 2);
|
|
82
|
+
c([
|
|
83
|
+
p({ attribute: !1 })
|
|
84
|
+
], o.prototype, "tokens", 2);
|
|
85
|
+
o = c([
|
|
86
|
+
h("cg-theme")
|
|
87
|
+
], o);
|
|
88
|
+
export {
|
|
89
|
+
o as CgTheme
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=cg-theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cg-theme.js","sources":["../../../src/components/cg-theme/cg-theme.ts"],"sourcesContent":["import { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\n/**\n * @element cg-theme\n * Scoping element that applies design-token overrides to its descendants.\n * Wraps any subtree to retheme just that part of the page — without\n * touching the global `:root` declarations.\n *\n * Three runtime preference axes (density, motion, contrast) are exposed\n * as first-class attributes that map to predefined token override sets,\n * so consumers can flip them at runtime without writing CSS:\n *\n * - density: compact | cozy | comfortable\n * - motion: full | reduced | none\n * - contrast: normal | high\n *\n * Plus a `tokens` prop accepting an arbitrary `Record<string, string>` of\n * `--cg-*` overrides for ad-hoc theming (org/workspace/user layers).\n *\n * Nest cg-theme to layer overrides — inner wins. The classic three-tier\n * inheritance pattern (org -> workspace -> user) is just three nested\n * cg-theme elements.\n *\n * @example Brand override\n * ```html\n * <cg-theme .tokens=${{\n * '--cg-color-action-primary-background-default': '#ff00aa',\n * '--cg-color-action-primary-text-default': '#ffffff',\n * }}>\n * <cg-button variant=\"primary\">On-brand button</cg-button>\n * </cg-theme>\n * ```\n *\n * @example Density + motion preference\n * ```html\n * <cg-theme density=\"compact\" motion=\"reduced\">\n * <cg-table .columns=${cols} .rows=${rows}></cg-table>\n * </cg-theme>\n * ```\n *\n * @example Layered inheritance\n * ```html\n * <cg-theme .tokens=${orgPalette}> <!-- org defaults -->\n * <cg-theme .tokens=${workspacePalette}> <!-- workspace overrides -->\n * <cg-theme density=${userDensity}> <!-- user prefs -->\n * <App />\n * </cg-theme>\n * </cg-theme>\n * </cg-theme>\n * ```\n *\n * @slot - The content to retheme.\n *\n * @cssprop --cg-component-theme-density-compact-spacing-step\n * @cssprop --cg-component-theme-density-cozy-spacing-step\n */\n@customElement('cg-theme')\nexport class CgTheme extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host { display: contents; }\n .scope { display: contents; }\n\n /* ── Density bands (token override layers) ──\n Each density rescales only spacing and component sizing. Type and\n color stay constant so density doesn't smuggle in surprise contrast. */\n :host([density=\"compact\"]) .scope {\n --cg-spacing-2: 1px; --cg-spacing-4: 2px; --cg-spacing-6: 4px;\n --cg-spacing-8: 6px; --cg-spacing-12: 8px; --cg-spacing-16: 12px;\n --cg-spacing-24: 16px; --cg-spacing-32: 20px; --cg-spacing-48: 32px;\n --cg-component-input-height-md: 36px;\n --cg-component-input-height-lg: 44px;\n --cg-component-button-height-sm: 28px;\n --cg-component-button-height-md: 36px;\n --cg-component-button-height-lg: 44px;\n }\n :host([density=\"comfortable\"]) .scope {\n --cg-spacing-2: 3px; --cg-spacing-4: 5px; --cg-spacing-6: 7px;\n --cg-spacing-8: 10px; --cg-spacing-12: 14px; --cg-spacing-16: 20px;\n --cg-spacing-24: 28px; --cg-spacing-32: 36px; --cg-spacing-48: 56px;\n --cg-component-input-height-md: 52px;\n --cg-component-input-height-lg: 60px;\n --cg-component-button-height-sm: 40px;\n --cg-component-button-height-md: 56px;\n --cg-component-button-height-lg: 64px;\n }\n /* density=\"cozy\" is the default — no overrides */\n\n /* ── Motion bands ── */\n :host([motion=\"reduced\"]) .scope {\n --cg-transition-duration-fast: 80ms;\n --cg-transition-duration-default: 120ms;\n --cg-transition-duration-slow: 180ms;\n }\n :host([motion=\"none\"]) .scope,\n :host([motion=\"none\"]) .scope * {\n animation-duration: 0.001ms !important;\n transition-duration: 0.001ms !important;\n }\n\n /* ── Contrast bands ── */\n :host([contrast=\"high\"]) .scope {\n --cg-color-surface-cards-border: var(--cg-color-surface-base-text);\n --cg-color-surface-cards-border-strong: var(--cg-color-surface-base-text);\n --cg-color-input-border-default: var(--cg-color-surface-base-text);\n }\n `];\n\n /** Density preset. Maps to spacing + component height overrides. */\n @property({ reflect: true }) density: 'compact' | 'cozy' | 'comfortable' = 'cozy';\n\n /** Motion preset. Maps to transition-duration overrides. */\n @property({ reflect: true }) motion: 'full' | 'reduced' | 'none' = 'full';\n\n /** Contrast preset. Maps to surface/border tokens. */\n @property({ reflect: true }) contrast: 'normal' | 'high' = 'normal';\n\n /**\n * Arbitrary `--cg-*` overrides applied to the descendant tree.\n * Provide as an object whose keys are CSS custom property names\n * (e.g. `--cg-color-action-primary-background-default`) and whose\n * values are valid CSS values (`#hex`, `rgb(...)`, `var(--ref)`).\n *\n * Set to a new object reference to update — mutating in place will\n * not trigger a re-render. Pass null to clear.\n */\n @property({ attribute: false }) tokens: Record<string, string> | null = null;\n\n private _tokensInlineStyle(): string {\n if (!this.tokens) return '';\n const entries = Object.entries(this.tokens);\n return entries.map(([k, v]) => `${k}: ${v};`).join(' ');\n }\n\n override render() {\n const inline = this._tokensInlineStyle();\n return html`\n <div class=\"scope\" style=${inline || ''}>\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-theme': CgTheme;\n }\n}\n"],"names":["CgTheme","LitElement","k","v","inline","html","hostBlock","reducedMotion","css","__decorateClass","property","customElement"],"mappings":";;;;;;;;AA2DO,IAAMA,IAAN,cAAsBC,EAAW;AAAA,EAAjC,cAAA;AAAA,UAAA,GAAA,SAAA,GAmDwB,KAAA,UAA8C,QAG9C,KAAA,SAAsC,QAGtC,KAAA,WAA8B,UAW3B,KAAA,SAAwC;AAAA,EAAA;AAAA,EAEhE,qBAA6B;AACnC,WAAK,KAAK,SACM,OAAO,QAAQ,KAAK,MAAM,EAC3B,IAAI,CAAC,CAACC,GAAGC,CAAC,MAAM,GAAGD,CAAC,KAAKC,CAAC,GAAG,EAAE,KAAK,GAAG,IAF7B;AAAA,EAG3B;AAAA,EAES,SAAS;AAChB,UAAMC,IAAS,KAAK,mBAAA;AACpB,WAAOC;AAAA,iCACsBD,KAAU,EAAE;AAAA;AAAA;AAAA;AAAA,EAI3C;AACF;AApFaJ,EACK,SAAS,CAACM,GAAWC,GAAeC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA+CnD;AAG4BC,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAnDhBV,EAmDkB,WAAA,WAAA,CAAA;AAGAS,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAtDhBV,EAsDkB,WAAA,UAAA,CAAA;AAGAS,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAzDhBV,EAyDkB,WAAA,YAAA,CAAA;AAWGS,EAAA;AAAA,EAA/BC,EAAS,EAAE,WAAW,GAAA,CAAO;AAAA,GApEnBV,EAoEqB,WAAA,UAAA,CAAA;AApErBA,IAANS,EAAA;AAAA,EADNE,EAAc,UAAU;AAAA,GACZX,CAAA;"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* @element cg-theme-editor
|
|
4
|
+
* Live, in-app token editor that drives the closest ancestor
|
|
5
|
+
* `<cg-theme>` element. Drop into your dev/staging build to retune tier-2
|
|
6
|
+
* tokens without rebuilding — color pickers, sliders, and an image-drop
|
|
7
|
+
* zone that runs `themeFromImage()` to extract a palette from a logo.
|
|
8
|
+
*
|
|
9
|
+
* The editor walks up from the host to find a `<cg-theme>` ancestor and
|
|
10
|
+
* mutates its `tokens` prop on every change. There is no global side
|
|
11
|
+
* effect — clearing the editor (or removing it) leaves the theme as it
|
|
12
|
+
* was on the cg-theme element.
|
|
13
|
+
*
|
|
14
|
+
* Pair with the `themeFromImage()` API exported from
|
|
15
|
+
* `@cognivo/theme-generator` for image-driven palette extraction. The
|
|
16
|
+
* editor accepts a `themeFromImage` callback prop; consumers wire it
|
|
17
|
+
* once at mount time so this package stays free of a workspace-wide
|
|
18
|
+
* dependency on theme-generator.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```html
|
|
22
|
+
* <cg-theme>
|
|
23
|
+
* <App />
|
|
24
|
+
* <cg-theme-editor></cg-theme-editor>
|
|
25
|
+
* </cg-theme>
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @example With image extraction wired up
|
|
29
|
+
* ```ts
|
|
30
|
+
* import { themeFromImage, paletteToCssVars } from '@cognivo/theme-generator';
|
|
31
|
+
* editor.themeFromImage = (data) => paletteToCssVars(themeFromImage(data));
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @fires {CustomEvent<{tokens: Record<string,string>}>} cg-theme-change - On every token change.
|
|
35
|
+
*
|
|
36
|
+
* @cssprop --cg-component-theme-editor-width - Panel width (default 280px)
|
|
37
|
+
*/
|
|
38
|
+
export declare class CgThemeEditor extends LitElement {
|
|
39
|
+
static styles: import('lit').CSSResult[];
|
|
40
|
+
/** Where the panel docks. */
|
|
41
|
+
anchor: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
42
|
+
/** Start collapsed. */
|
|
43
|
+
collapsed: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* The set of tokens the editor exposes. Each entry: { name, label, type }.
|
|
46
|
+
* Type "color" renders an `<input type="color">`. Default is the small
|
|
47
|
+
* brand-defining set that maps cleanly to most designs.
|
|
48
|
+
*/
|
|
49
|
+
editableTokens: Array<{
|
|
50
|
+
name: string;
|
|
51
|
+
label: string;
|
|
52
|
+
type: 'color';
|
|
53
|
+
}>;
|
|
54
|
+
/**
|
|
55
|
+
* Optional callback that converts an RGBAImageData into a token override.
|
|
56
|
+
* Wire `themeFromImage` + `paletteToCssVars` here. When unset, the
|
|
57
|
+
* image-drop zone is disabled.
|
|
58
|
+
*/
|
|
59
|
+
themeFromImage: ((image: {
|
|
60
|
+
data: Uint8ClampedArray | Uint8Array | number[];
|
|
61
|
+
width: number;
|
|
62
|
+
height: number;
|
|
63
|
+
}) => Record<string, string>) | null;
|
|
64
|
+
private _values;
|
|
65
|
+
private _showCopied;
|
|
66
|
+
private _dragover;
|
|
67
|
+
connectedCallback(): void;
|
|
68
|
+
/**
|
|
69
|
+
* Read the current resolved value of each editable token from the page
|
|
70
|
+
* so the color inputs start populated. Falls back to "#000000" for
|
|
71
|
+
* unresolvable values; the input still works once the user picks.
|
|
72
|
+
*/
|
|
73
|
+
private _readInitialValues;
|
|
74
|
+
/**
|
|
75
|
+
* Convert any CSS color value into a 6-digit hex form that color inputs
|
|
76
|
+
* accept. Returns null if the value can't be parsed.
|
|
77
|
+
*/
|
|
78
|
+
private _normalizeColor;
|
|
79
|
+
/** Walk up from the host to find a sibling/ancestor `<cg-theme>`. */
|
|
80
|
+
private _findThemeTarget;
|
|
81
|
+
private _applyToTheme;
|
|
82
|
+
private _onColorChange;
|
|
83
|
+
private _onImagePicked;
|
|
84
|
+
private _onImageInputChange;
|
|
85
|
+
private _onDragEnter;
|
|
86
|
+
private _onDragLeave;
|
|
87
|
+
private _onDrop;
|
|
88
|
+
private _onReset;
|
|
89
|
+
private _onCopy;
|
|
90
|
+
private _onToggle;
|
|
91
|
+
render(): import('lit').TemplateResult<1>;
|
|
92
|
+
}
|
|
93
|
+
declare global {
|
|
94
|
+
interface HTMLElementTagNameMap {
|
|
95
|
+
'cg-theme-editor': CgThemeEditor;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=cg-theme-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cg-theme-editor.d.ts","sourceRoot":"","sources":["../../../src/components/cg-theme-editor/cg-theme-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBACa,aAAc,SAAQ,UAAU;IAC3C,OAAgB,MAAM,4BA+InB;IAEH,6BAA6B;IACA,MAAM,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAkB;IAEhH,uBAAuB;IACqB,SAAS,UAAS;IAE9D;;;;OAIG;IAC6B,cAAc,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CASnG;IAEF;;;;OAIG;IAEH,cAAc,EACV,CAAC,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,iBAAiB,GAAG,UAAU,GAAG,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACvH,IAAI,CAAQ;IAEP,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAE1B,iBAAiB,IAAI,IAAI;IAKlC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAgBvB,qEAAqE;IACrE,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,cAAc,CA0BpB;IAEF,OAAO,CAAC,mBAAmB,CAIzB;IAEF,OAAO,CAAC,YAAY,CAGlB;IAEF,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,OAAO,CAKb;IAEF,OAAO,CAAC,QAAQ,CASd;IAEF,OAAO,CAAC,OAAO,CAOb;IAEF,OAAO,CAAC,SAAS,CAEf;IAEO,MAAM;CAoDhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,aAAa,CAAC;KAClC;CACF"}
|
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
import { css as f, LitElement as m, nothing as h, html as c } from "lit";
|
|
2
|
+
import { property as d, state as g, customElement as y } from "lit/decorators.js";
|
|
3
|
+
import { h as _, r as w } from "../../chunks/premium.css-9I4kHrsl.js";
|
|
4
|
+
var x = Object.defineProperty, k = Object.getOwnPropertyDescriptor, n = (e, r, a, t) => {
|
|
5
|
+
for (var o = t > 1 ? void 0 : t ? k(r, a) : r, s = e.length - 1, l; s >= 0; s--)
|
|
6
|
+
(l = e[s]) && (o = (t ? l(r, a, o) : l(o)) || o);
|
|
7
|
+
return t && o && x(r, a, o), o;
|
|
8
|
+
};
|
|
9
|
+
let i = class extends m {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments), this.anchor = "bottom-right", this.collapsed = !1, this.editableTokens = [
|
|
12
|
+
{ name: "--cg-color-action-primary-background-default", label: "Primary", type: "color" },
|
|
13
|
+
{ name: "--cg-color-action-primary-text-default", label: "Primary text", type: "color" },
|
|
14
|
+
{ name: "--cg-color-action-secondary-background-default", label: "Secondary", type: "color" },
|
|
15
|
+
{ name: "--cg-color-accent-text", label: "Accent", type: "color" },
|
|
16
|
+
{ name: "--cg-color-surface-base-background", label: "Surface bg", type: "color" },
|
|
17
|
+
{ name: "--cg-color-surface-base-text", label: "Surface text", type: "color" },
|
|
18
|
+
{ name: "--cg-color-surface-cards-background", label: "Card bg", type: "color" },
|
|
19
|
+
{ name: "--cg-color-surface-cards-border", label: "Border", type: "color" }
|
|
20
|
+
], this.themeFromImage = null, this._values = {}, this._showCopied = !1, this._dragover = !1, this._onImagePicked = (e) => {
|
|
21
|
+
if (!this.themeFromImage) return;
|
|
22
|
+
const r = new Image(), a = URL.createObjectURL(e);
|
|
23
|
+
r.onload = () => {
|
|
24
|
+
const t = document.createElement("canvas");
|
|
25
|
+
t.width = r.naturalWidth, t.height = r.naturalHeight;
|
|
26
|
+
const o = t.getContext("2d");
|
|
27
|
+
if (!o) return;
|
|
28
|
+
o.drawImage(r, 0, 0);
|
|
29
|
+
const s = o.getImageData(0, 0, t.width, t.height), l = this.themeFromImage(s), p = { ...this._values };
|
|
30
|
+
for (const [v, b] of Object.entries(l)) {
|
|
31
|
+
const u = this._normalizeColor(b);
|
|
32
|
+
u && (p[v] = u);
|
|
33
|
+
}
|
|
34
|
+
this._values = p, this._applyToTheme(), URL.revokeObjectURL(a);
|
|
35
|
+
}, r.src = a;
|
|
36
|
+
}, this._onImageInputChange = (e) => {
|
|
37
|
+
const a = e.target.files?.[0];
|
|
38
|
+
a && this._onImagePicked(a);
|
|
39
|
+
}, this._onDragEnter = (e) => {
|
|
40
|
+
e.preventDefault(), this._dragover = !0;
|
|
41
|
+
}, this._onDragLeave = () => {
|
|
42
|
+
this._dragover = !1;
|
|
43
|
+
}, this._onDrop = (e) => {
|
|
44
|
+
e.preventDefault(), this._dragover = !1;
|
|
45
|
+
const r = e.dataTransfer?.files?.[0];
|
|
46
|
+
r && this._onImagePicked(r);
|
|
47
|
+
}, this._onReset = () => {
|
|
48
|
+
const e = this._findThemeTarget();
|
|
49
|
+
e && (e.tokens = null), this._readInitialValues(), this.dispatchEvent(new CustomEvent("cg-theme-change", {
|
|
50
|
+
detail: { tokens: {} },
|
|
51
|
+
bubbles: !0,
|
|
52
|
+
composed: !0
|
|
53
|
+
}));
|
|
54
|
+
}, this._onCopy = () => {
|
|
55
|
+
const e = JSON.stringify(this._values, null, 2);
|
|
56
|
+
navigator.clipboard?.writeText && navigator.clipboard.writeText(e), this._showCopied = !0, setTimeout(() => {
|
|
57
|
+
this._showCopied = !1;
|
|
58
|
+
}, 1200);
|
|
59
|
+
}, this._onToggle = () => {
|
|
60
|
+
this.collapsed = !this.collapsed;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
connectedCallback() {
|
|
64
|
+
super.connectedCallback(), this._readInitialValues();
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Read the current resolved value of each editable token from the page
|
|
68
|
+
* so the color inputs start populated. Falls back to "#000000" for
|
|
69
|
+
* unresolvable values; the input still works once the user picks.
|
|
70
|
+
*/
|
|
71
|
+
_readInitialValues() {
|
|
72
|
+
const r = this._findThemeTarget() ?? this, a = window.getComputedStyle(r), t = {};
|
|
73
|
+
for (const o of this.editableTokens) {
|
|
74
|
+
const s = a.getPropertyValue(o.name).trim();
|
|
75
|
+
t[o.name] = this._normalizeColor(s) ?? "#000000";
|
|
76
|
+
}
|
|
77
|
+
this._values = t;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Convert any CSS color value into a 6-digit hex form that color inputs
|
|
81
|
+
* accept. Returns null if the value can't be parsed.
|
|
82
|
+
*/
|
|
83
|
+
_normalizeColor(e) {
|
|
84
|
+
if (!e) return null;
|
|
85
|
+
const r = e.trim().toLowerCase();
|
|
86
|
+
if (/^#[0-9a-f]{6}$/.test(r)) return r;
|
|
87
|
+
if (/^#[0-9a-f]{3}$/.test(r)) {
|
|
88
|
+
const [t, o, s] = r.slice(1);
|
|
89
|
+
return `#${t}${t}${o}${o}${s}${s}`;
|
|
90
|
+
}
|
|
91
|
+
const a = r.match(/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/);
|
|
92
|
+
if (a) {
|
|
93
|
+
const t = (o) => parseInt(o, 10).toString(16).padStart(2, "0");
|
|
94
|
+
return `#${t(a[1])}${t(a[2])}${t(a[3])}`;
|
|
95
|
+
}
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
/** Walk up from the host to find a sibling/ancestor `<cg-theme>`. */
|
|
99
|
+
_findThemeTarget() {
|
|
100
|
+
let e = this.parentNode;
|
|
101
|
+
for (; e; ) {
|
|
102
|
+
if (e instanceof HTMLElement && e.tagName.toLowerCase() === "cg-theme")
|
|
103
|
+
return e;
|
|
104
|
+
e = e instanceof ShadowRoot ? e.host : e.parentNode;
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
_applyToTheme() {
|
|
109
|
+
const e = this._findThemeTarget();
|
|
110
|
+
e && (e.tokens = { ...this._values });
|
|
111
|
+
}
|
|
112
|
+
_onColorChange(e, r) {
|
|
113
|
+
this._values = { ...this._values, [e]: r }, this._applyToTheme(), this.dispatchEvent(new CustomEvent("cg-theme-change", {
|
|
114
|
+
detail: { tokens: this._values },
|
|
115
|
+
bubbles: !0,
|
|
116
|
+
composed: !0
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
render() {
|
|
120
|
+
return c`
|
|
121
|
+
<div class="panel">
|
|
122
|
+
<header class=${this.collapsed ? "collapsed" : ""} @click=${this._onToggle}>
|
|
123
|
+
<span class="title">Theme</span>
|
|
124
|
+
<button class="toggle" type="button" aria-label=${this.collapsed ? "Expand" : "Collapse"}>
|
|
125
|
+
${this.collapsed ? "+" : "–"}
|
|
126
|
+
</button>
|
|
127
|
+
</header>
|
|
128
|
+
${this.collapsed ? h : c`
|
|
129
|
+
<div class="panel-body">
|
|
130
|
+
${this.editableTokens.map((e) => c`
|
|
131
|
+
<div class="row">
|
|
132
|
+
<label for=${`tok-${e.name}`}>${e.label}</label>
|
|
133
|
+
<input
|
|
134
|
+
id=${`tok-${e.name}`}
|
|
135
|
+
type="color"
|
|
136
|
+
.value=${this._values[e.name] ?? "#000000"}
|
|
137
|
+
@input=${(r) => this._onColorChange(e.name, r.target.value)}
|
|
138
|
+
/>
|
|
139
|
+
</div>
|
|
140
|
+
`)}
|
|
141
|
+
|
|
142
|
+
<label
|
|
143
|
+
class="image-drop ${this._dragover ? "dragover" : ""} ${this.themeFromImage ? "" : "disabled"}"
|
|
144
|
+
@dragenter=${this._onDragEnter}
|
|
145
|
+
@dragover=${(e) => e.preventDefault()}
|
|
146
|
+
@dragleave=${this._onDragLeave}
|
|
147
|
+
@drop=${this._onDrop}
|
|
148
|
+
>
|
|
149
|
+
${this.themeFromImage ? c`Drop a logo or <strong>browse</strong> to extract a palette.` : c`Image extraction not configured.`}
|
|
150
|
+
<input
|
|
151
|
+
type="file"
|
|
152
|
+
accept="image/*"
|
|
153
|
+
?disabled=${!this.themeFromImage}
|
|
154
|
+
@change=${this._onImageInputChange}
|
|
155
|
+
/>
|
|
156
|
+
</label>
|
|
157
|
+
|
|
158
|
+
<div class="footer">
|
|
159
|
+
<button type="button" @click=${this._onCopy}>Copy JSON</button>
|
|
160
|
+
<button type="button" @click=${this._onReset}>Reset</button>
|
|
161
|
+
</div>
|
|
162
|
+
|
|
163
|
+
${this._showCopied ? c`<span class="copied">Copied</span>` : h}
|
|
164
|
+
</div>
|
|
165
|
+
`}
|
|
166
|
+
</div>
|
|
167
|
+
`;
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
i.styles = [_, w, f`
|
|
171
|
+
:host {
|
|
172
|
+
position: fixed;
|
|
173
|
+
bottom: var(--cg-spacing-16);
|
|
174
|
+
right: var(--cg-spacing-16);
|
|
175
|
+
z-index: var(--cg-z-index-top, 1000);
|
|
176
|
+
font-family: var(--cg-font-family-primary, system-ui, sans-serif);
|
|
177
|
+
color: var(--cg-color-surface-base-text);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
:host([anchor="bottom-left"]) { right: auto; left: var(--cg-spacing-16); }
|
|
181
|
+
:host([anchor="top-right"]) { bottom: auto; top: var(--cg-spacing-16); }
|
|
182
|
+
:host([anchor="top-left"]) { right: auto; left: var(--cg-spacing-16); bottom: auto; top: var(--cg-spacing-16); }
|
|
183
|
+
|
|
184
|
+
.panel {
|
|
185
|
+
width: var(--cg-component-theme-editor-width, 280px);
|
|
186
|
+
background: var(--cg-color-surface-container-background);
|
|
187
|
+
border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);
|
|
188
|
+
border-radius: var(--cg-border-radius-150);
|
|
189
|
+
box-shadow: var(--cg-shadow-elevation-md, 0 8px 24px rgba(0, 0, 0, 0.18));
|
|
190
|
+
overflow: hidden;
|
|
191
|
+
transition: transform var(--cg-transition-duration-default) var(--cg-transition-easing-default);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
:host([collapsed]) .panel-body { display: none; }
|
|
195
|
+
|
|
196
|
+
header {
|
|
197
|
+
display: flex;
|
|
198
|
+
align-items: center;
|
|
199
|
+
gap: var(--cg-spacing-8);
|
|
200
|
+
padding: var(--cg-spacing-8) var(--cg-spacing-12);
|
|
201
|
+
background: var(--cg-color-action-tertiary-background-hover);
|
|
202
|
+
cursor: grab;
|
|
203
|
+
user-select: none;
|
|
204
|
+
border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);
|
|
205
|
+
}
|
|
206
|
+
header.collapsed { border-bottom: 0; }
|
|
207
|
+
.title {
|
|
208
|
+
flex: 1 1 auto;
|
|
209
|
+
font-size: var(--cg-font-size-xs);
|
|
210
|
+
font-weight: var(--cg-font-weight-medium);
|
|
211
|
+
letter-spacing: 0.04em;
|
|
212
|
+
text-transform: uppercase;
|
|
213
|
+
color: var(--cg-color-surface-container-outlined);
|
|
214
|
+
}
|
|
215
|
+
.toggle {
|
|
216
|
+
background: transparent;
|
|
217
|
+
border: 0;
|
|
218
|
+
color: var(--cg-color-surface-container-outlined);
|
|
219
|
+
cursor: pointer;
|
|
220
|
+
padding: var(--cg-spacing-2) var(--cg-spacing-4);
|
|
221
|
+
font-size: var(--cg-font-size-xs);
|
|
222
|
+
border-radius: var(--cg-border-radius-50);
|
|
223
|
+
}
|
|
224
|
+
.toggle:hover { color: var(--cg-color-surface-base-text); background: var(--cg-color-action-tertiary-background-hover); }
|
|
225
|
+
|
|
226
|
+
.panel-body {
|
|
227
|
+
padding: var(--cg-spacing-12);
|
|
228
|
+
display: flex;
|
|
229
|
+
flex-direction: column;
|
|
230
|
+
gap: var(--cg-spacing-12);
|
|
231
|
+
max-height: 60vh;
|
|
232
|
+
overflow-y: auto;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.row {
|
|
236
|
+
display: grid;
|
|
237
|
+
grid-template-columns: 1fr auto;
|
|
238
|
+
align-items: center;
|
|
239
|
+
gap: var(--cg-spacing-8);
|
|
240
|
+
}
|
|
241
|
+
.row label {
|
|
242
|
+
font-size: var(--cg-font-size-xs);
|
|
243
|
+
color: var(--cg-color-surface-container-outlined);
|
|
244
|
+
min-width: 0;
|
|
245
|
+
overflow: hidden;
|
|
246
|
+
text-overflow: ellipsis;
|
|
247
|
+
white-space: nowrap;
|
|
248
|
+
}
|
|
249
|
+
.row input[type="color"] {
|
|
250
|
+
width: var(--cg-spacing-32);
|
|
251
|
+
height: var(--cg-spacing-24);
|
|
252
|
+
padding: 0;
|
|
253
|
+
border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);
|
|
254
|
+
border-radius: var(--cg-border-radius-50);
|
|
255
|
+
background: transparent;
|
|
256
|
+
cursor: pointer;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.image-drop {
|
|
260
|
+
display: flex;
|
|
261
|
+
flex-direction: column;
|
|
262
|
+
align-items: center;
|
|
263
|
+
justify-content: center;
|
|
264
|
+
padding: var(--cg-spacing-16);
|
|
265
|
+
border: var(--cg-border-width-50) dashed var(--cg-color-surface-cards-border);
|
|
266
|
+
border-radius: var(--cg-border-radius-100);
|
|
267
|
+
font-size: var(--cg-font-size-xs);
|
|
268
|
+
color: var(--cg-color-surface-container-outlined);
|
|
269
|
+
cursor: pointer;
|
|
270
|
+
text-align: center;
|
|
271
|
+
transition: border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default), background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
|
|
272
|
+
}
|
|
273
|
+
.image-drop:hover, .image-drop.dragover {
|
|
274
|
+
border-color: var(--cg-color-action-primary-border-default);
|
|
275
|
+
background: var(--cg-color-action-tertiary-background-hover);
|
|
276
|
+
}
|
|
277
|
+
.image-drop input { display: none; }
|
|
278
|
+
.image-drop.disabled {
|
|
279
|
+
opacity: 0.5;
|
|
280
|
+
cursor: not-allowed;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.footer {
|
|
284
|
+
display: flex;
|
|
285
|
+
gap: var(--cg-spacing-8);
|
|
286
|
+
padding-top: var(--cg-spacing-8);
|
|
287
|
+
border-top: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);
|
|
288
|
+
}
|
|
289
|
+
.footer button {
|
|
290
|
+
flex: 1 1 0;
|
|
291
|
+
padding: var(--cg-spacing-6) var(--cg-spacing-8);
|
|
292
|
+
background: transparent;
|
|
293
|
+
border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);
|
|
294
|
+
border-radius: var(--cg-border-radius-50);
|
|
295
|
+
font: inherit;
|
|
296
|
+
font-size: var(--cg-font-size-xs);
|
|
297
|
+
color: var(--cg-color-surface-base-text);
|
|
298
|
+
cursor: pointer;
|
|
299
|
+
}
|
|
300
|
+
.footer button:hover { background: var(--cg-color-action-tertiary-background-hover); }
|
|
301
|
+
|
|
302
|
+
.copied {
|
|
303
|
+
position: absolute;
|
|
304
|
+
bottom: calc(100% + var(--cg-spacing-4));
|
|
305
|
+
right: 0;
|
|
306
|
+
padding: var(--cg-spacing-4) var(--cg-spacing-8);
|
|
307
|
+
background: var(--cg-color-action-primary-background-default);
|
|
308
|
+
color: var(--cg-color-action-primary-text-default);
|
|
309
|
+
border-radius: var(--cg-border-radius-50);
|
|
310
|
+
font-size: var(--cg-font-size-xs);
|
|
311
|
+
pointer-events: none;
|
|
312
|
+
}
|
|
313
|
+
`];
|
|
314
|
+
n([
|
|
315
|
+
d({ reflect: !0 })
|
|
316
|
+
], i.prototype, "anchor", 2);
|
|
317
|
+
n([
|
|
318
|
+
d({ type: Boolean, reflect: !0 })
|
|
319
|
+
], i.prototype, "collapsed", 2);
|
|
320
|
+
n([
|
|
321
|
+
d({ attribute: !1 })
|
|
322
|
+
], i.prototype, "editableTokens", 2);
|
|
323
|
+
n([
|
|
324
|
+
d({ attribute: !1 })
|
|
325
|
+
], i.prototype, "themeFromImage", 2);
|
|
326
|
+
n([
|
|
327
|
+
g()
|
|
328
|
+
], i.prototype, "_values", 2);
|
|
329
|
+
n([
|
|
330
|
+
g()
|
|
331
|
+
], i.prototype, "_showCopied", 2);
|
|
332
|
+
n([
|
|
333
|
+
g()
|
|
334
|
+
], i.prototype, "_dragover", 2);
|
|
335
|
+
i = n([
|
|
336
|
+
y("cg-theme-editor")
|
|
337
|
+
], i);
|
|
338
|
+
export {
|
|
339
|
+
i as CgThemeEditor
|
|
340
|
+
};
|
|
341
|
+
//# sourceMappingURL=cg-theme-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cg-theme-editor.js","sources":["../../../src/components/cg-theme-editor/cg-theme-editor.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\n/**\n * @element cg-theme-editor\n * Live, in-app token editor that drives the closest ancestor\n * `<cg-theme>` element. Drop into your dev/staging build to retune tier-2\n * tokens without rebuilding — color pickers, sliders, and an image-drop\n * zone that runs `themeFromImage()` to extract a palette from a logo.\n *\n * The editor walks up from the host to find a `<cg-theme>` ancestor and\n * mutates its `tokens` prop on every change. There is no global side\n * effect — clearing the editor (or removing it) leaves the theme as it\n * was on the cg-theme element.\n *\n * Pair with the `themeFromImage()` API exported from\n * `@cognivo/theme-generator` for image-driven palette extraction. The\n * editor accepts a `themeFromImage` callback prop; consumers wire it\n * once at mount time so this package stays free of a workspace-wide\n * dependency on theme-generator.\n *\n * @example\n * ```html\n * <cg-theme>\n * <App />\n * <cg-theme-editor></cg-theme-editor>\n * </cg-theme>\n * ```\n *\n * @example With image extraction wired up\n * ```ts\n * import { themeFromImage, paletteToCssVars } from '@cognivo/theme-generator';\n * editor.themeFromImage = (data) => paletteToCssVars(themeFromImage(data));\n * ```\n *\n * @fires {CustomEvent<{tokens: Record<string,string>}>} cg-theme-change - On every token change.\n *\n * @cssprop --cg-component-theme-editor-width - Panel width (default 280px)\n */\n@customElement('cg-theme-editor')\nexport class CgThemeEditor extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n position: fixed;\n bottom: var(--cg-spacing-16);\n right: var(--cg-spacing-16);\n z-index: var(--cg-z-index-top, 1000);\n font-family: var(--cg-font-family-primary, system-ui, sans-serif);\n color: var(--cg-color-surface-base-text);\n }\n\n :host([anchor=\"bottom-left\"]) { right: auto; left: var(--cg-spacing-16); }\n :host([anchor=\"top-right\"]) { bottom: auto; top: var(--cg-spacing-16); }\n :host([anchor=\"top-left\"]) { right: auto; left: var(--cg-spacing-16); bottom: auto; top: var(--cg-spacing-16); }\n\n .panel {\n width: var(--cg-component-theme-editor-width, 280px);\n background: var(--cg-color-surface-container-background);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-border-radius-150);\n box-shadow: var(--cg-shadow-elevation-md, 0 8px 24px rgba(0, 0, 0, 0.18));\n overflow: hidden;\n transition: transform var(--cg-transition-duration-default) var(--cg-transition-easing-default);\n }\n\n :host([collapsed]) .panel-body { display: none; }\n\n header {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n padding: var(--cg-spacing-8) var(--cg-spacing-12);\n background: var(--cg-color-action-tertiary-background-hover);\n cursor: grab;\n user-select: none;\n border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n }\n header.collapsed { border-bottom: 0; }\n .title {\n flex: 1 1 auto;\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-medium);\n letter-spacing: 0.04em;\n text-transform: uppercase;\n color: var(--cg-color-surface-container-outlined);\n }\n .toggle {\n background: transparent;\n border: 0;\n color: var(--cg-color-surface-container-outlined);\n cursor: pointer;\n padding: var(--cg-spacing-2) var(--cg-spacing-4);\n font-size: var(--cg-font-size-xs);\n border-radius: var(--cg-border-radius-50);\n }\n .toggle:hover { color: var(--cg-color-surface-base-text); background: var(--cg-color-action-tertiary-background-hover); }\n\n .panel-body {\n padding: var(--cg-spacing-12);\n display: flex;\n flex-direction: column;\n gap: var(--cg-spacing-12);\n max-height: 60vh;\n overflow-y: auto;\n }\n\n .row {\n display: grid;\n grid-template-columns: 1fr auto;\n align-items: center;\n gap: var(--cg-spacing-8);\n }\n .row label {\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-outlined);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .row input[type=\"color\"] {\n width: var(--cg-spacing-32);\n height: var(--cg-spacing-24);\n padding: 0;\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-border-radius-50);\n background: transparent;\n cursor: pointer;\n }\n\n .image-drop {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: var(--cg-spacing-16);\n border: var(--cg-border-width-50) dashed var(--cg-color-surface-cards-border);\n border-radius: var(--cg-border-radius-100);\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-outlined);\n cursor: pointer;\n text-align: center;\n transition: border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default), background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .image-drop:hover, .image-drop.dragover {\n border-color: var(--cg-color-action-primary-border-default);\n background: var(--cg-color-action-tertiary-background-hover);\n }\n .image-drop input { display: none; }\n .image-drop.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .footer {\n display: flex;\n gap: var(--cg-spacing-8);\n padding-top: var(--cg-spacing-8);\n border-top: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n }\n .footer button {\n flex: 1 1 0;\n padding: var(--cg-spacing-6) var(--cg-spacing-8);\n background: transparent;\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-border-radius-50);\n font: inherit;\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-base-text);\n cursor: pointer;\n }\n .footer button:hover { background: var(--cg-color-action-tertiary-background-hover); }\n\n .copied {\n position: absolute;\n bottom: calc(100% + var(--cg-spacing-4));\n right: 0;\n padding: var(--cg-spacing-4) var(--cg-spacing-8);\n background: var(--cg-color-action-primary-background-default);\n color: var(--cg-color-action-primary-text-default);\n border-radius: var(--cg-border-radius-50);\n font-size: var(--cg-font-size-xs);\n pointer-events: none;\n }\n `];\n\n /** Where the panel docks. */\n @property({ reflect: true }) anchor: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left' = 'bottom-right';\n\n /** Start collapsed. */\n @property({ type: Boolean, reflect: true }) collapsed = false;\n\n /**\n * The set of tokens the editor exposes. Each entry: { name, label, type }.\n * Type \"color\" renders an `<input type=\"color\">`. Default is the small\n * brand-defining set that maps cleanly to most designs.\n */\n @property({ attribute: false }) editableTokens: Array<{ name: string; label: string; type: 'color' }> = [\n { name: '--cg-color-action-primary-background-default', label: 'Primary', type: 'color' },\n { name: '--cg-color-action-primary-text-default', label: 'Primary text', type: 'color' },\n { name: '--cg-color-action-secondary-background-default', label: 'Secondary', type: 'color' },\n { name: '--cg-color-accent-text', label: 'Accent', type: 'color' },\n { name: '--cg-color-surface-base-background', label: 'Surface bg', type: 'color' },\n { name: '--cg-color-surface-base-text', label: 'Surface text', type: 'color' },\n { name: '--cg-color-surface-cards-background', label: 'Card bg', type: 'color' },\n { name: '--cg-color-surface-cards-border', label: 'Border', type: 'color' },\n ];\n\n /**\n * Optional callback that converts an RGBAImageData into a token override.\n * Wire `themeFromImage` + `paletteToCssVars` here. When unset, the\n * image-drop zone is disabled.\n */\n @property({ attribute: false })\n themeFromImage:\n | ((image: { data: Uint8ClampedArray | Uint8Array | number[]; width: number; height: number }) => Record<string, string>)\n | null = null;\n\n @state() private _values: Record<string, string> = {};\n @state() private _showCopied = false;\n @state() private _dragover = false;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._readInitialValues();\n }\n\n /**\n * Read the current resolved value of each editable token from the page\n * so the color inputs start populated. Falls back to \"#000000\" for\n * unresolvable values; the input still works once the user picks.\n */\n private _readInitialValues(): void {\n const target = this._findThemeTarget();\n const probe = target ?? this;\n const cs = window.getComputedStyle(probe);\n const next: Record<string, string> = {};\n for (const t of this.editableTokens) {\n const v = cs.getPropertyValue(t.name).trim();\n next[t.name] = this._normalizeColor(v) ?? '#000000';\n }\n this._values = next;\n }\n\n /**\n * Convert any CSS color value into a 6-digit hex form that color inputs\n * accept. Returns null if the value can't be parsed.\n */\n private _normalizeColor(value: string): string | null {\n if (!value) return null;\n const v = value.trim().toLowerCase();\n if (/^#[0-9a-f]{6}$/.test(v)) return v;\n if (/^#[0-9a-f]{3}$/.test(v)) {\n const [r, g, b] = v.slice(1);\n return `#${r}${r}${g}${g}${b}${b}`;\n }\n const rgb = v.match(/^rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)/);\n if (rgb) {\n const to2 = (n: string) => parseInt(n, 10).toString(16).padStart(2, '0');\n return `#${to2(rgb[1]!)}${to2(rgb[2]!)}${to2(rgb[3]!)}`;\n }\n return null;\n }\n\n /** Walk up from the host to find a sibling/ancestor `<cg-theme>`. */\n private _findThemeTarget(): HTMLElement | null {\n let cursor: Node | null = this.parentNode;\n while (cursor) {\n if (cursor instanceof HTMLElement && cursor.tagName.toLowerCase() === 'cg-theme') {\n return cursor;\n }\n cursor = cursor instanceof ShadowRoot ? cursor.host : (cursor as Node).parentNode;\n }\n return null;\n }\n\n private _applyToTheme(): void {\n const target = this._findThemeTarget();\n if (!target) return;\n // Assign a NEW object reference so cg-theme's @property re-renders.\n (target as unknown as { tokens: Record<string, string> | null }).tokens = { ...this._values };\n }\n\n private _onColorChange(name: string, value: string): void {\n this._values = { ...this._values, [name]: value };\n this._applyToTheme();\n this.dispatchEvent(new CustomEvent('cg-theme-change', {\n detail: { tokens: this._values },\n bubbles: true,\n composed: true,\n }));\n }\n\n private _onImagePicked = (file: File): void => {\n if (!this.themeFromImage) return;\n const img = new Image();\n const url = URL.createObjectURL(file);\n img.onload = () => {\n const canvas = document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n ctx.drawImage(img, 0, 0);\n const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n const tokens = this.themeFromImage!(imageData);\n // Merge the extracted tokens into the editor's known values where\n // there's overlap; for non-overlapping tokens, push them through\n // directly so the cg-theme picks them up too.\n const merged = { ...this._values };\n for (const [k, v] of Object.entries(tokens)) {\n const norm = this._normalizeColor(v);\n if (norm) merged[k] = norm;\n }\n this._values = merged;\n this._applyToTheme();\n URL.revokeObjectURL(url);\n };\n img.src = url;\n };\n\n private _onImageInputChange = (e: Event): void => {\n const input = e.target as HTMLInputElement;\n const file = input.files?.[0];\n if (file) this._onImagePicked(file);\n };\n\n private _onDragEnter = (e: DragEvent): void => {\n e.preventDefault();\n this._dragover = true;\n };\n\n private _onDragLeave = (): void => {\n this._dragover = false;\n };\n\n private _onDrop = (e: DragEvent): void => {\n e.preventDefault();\n this._dragover = false;\n const file = e.dataTransfer?.files?.[0];\n if (file) this._onImagePicked(file);\n };\n\n private _onReset = (): void => {\n const target = this._findThemeTarget();\n if (target) (target as unknown as { tokens: Record<string, string> | null }).tokens = null;\n this._readInitialValues();\n this.dispatchEvent(new CustomEvent('cg-theme-change', {\n detail: { tokens: {} },\n bubbles: true,\n composed: true,\n }));\n };\n\n private _onCopy = (): void => {\n const json = JSON.stringify(this._values, null, 2);\n if (navigator.clipboard?.writeText) {\n void navigator.clipboard.writeText(json);\n }\n this._showCopied = true;\n setTimeout(() => { this._showCopied = false; }, 1200);\n };\n\n private _onToggle = (): void => {\n this.collapsed = !this.collapsed;\n };\n\n override render() {\n return html`\n <div class=\"panel\">\n <header class=${this.collapsed ? 'collapsed' : ''} @click=${this._onToggle}>\n <span class=\"title\">Theme</span>\n <button class=\"toggle\" type=\"button\" aria-label=${this.collapsed ? 'Expand' : 'Collapse'}>\n ${this.collapsed ? '+' : '–'}\n </button>\n </header>\n ${this.collapsed ? nothing : html`\n <div class=\"panel-body\">\n ${this.editableTokens.map(t => html`\n <div class=\"row\">\n <label for=${`tok-${t.name}`}>${t.label}</label>\n <input\n id=${`tok-${t.name}`}\n type=\"color\"\n .value=${this._values[t.name] ?? '#000000'}\n @input=${(e: Event) => this._onColorChange(t.name, (e.target as HTMLInputElement).value)}\n />\n </div>\n `)}\n\n <label\n class=\"image-drop ${this._dragover ? 'dragover' : ''} ${this.themeFromImage ? '' : 'disabled'}\"\n @dragenter=${this._onDragEnter}\n @dragover=${(e: Event) => e.preventDefault()}\n @dragleave=${this._onDragLeave}\n @drop=${this._onDrop}\n >\n ${this.themeFromImage\n ? html`Drop a logo or <strong>browse</strong> to extract a palette.`\n : html`Image extraction not configured.`}\n <input\n type=\"file\"\n accept=\"image/*\"\n ?disabled=${!this.themeFromImage}\n @change=${this._onImageInputChange}\n />\n </label>\n\n <div class=\"footer\">\n <button type=\"button\" @click=${this._onCopy}>Copy JSON</button>\n <button type=\"button\" @click=${this._onReset}>Reset</button>\n </div>\n\n ${this._showCopied ? html`<span class=\"copied\">Copied</span>` : nothing}\n </div>\n `}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-theme-editor': CgThemeEditor;\n }\n}\n"],"names":["CgThemeEditor","LitElement","file","img","url","canvas","ctx","imageData","tokens","merged","k","v","norm","target","json","probe","cs","next","t","value","r","g","b","rgb","to2","n","cursor","name","html","nothing","e","hostBlock","reducedMotion","css","__decorateClass","property","state","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* @element cg-time-picker
|
|
4
|
+
* Time picker with hour/minute grid dropdown, following cg-input/cg-select/cg-date-picker styling.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```html
|
|
8
|
+
* <cg-time-picker label="Start time" placeholder="Pick a time"></cg-time-picker>
|
|
9
|
+
* <cg-time-picker label="Meeting" value="14:30" step="15"></cg-time-picker>
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* @fires {CustomEvent<{value: string}>} cg-change - When a time is selected
|
|
13
|
+
*/
|
|
14
|
+
export declare class CgTimePicker extends LitElement {
|
|
15
|
+
static styles: import('lit').CSSResult[];
|
|
16
|
+
label: string;
|
|
17
|
+
value: string;
|
|
18
|
+
placeholder: string;
|
|
19
|
+
name: string;
|
|
20
|
+
helper: string;
|
|
21
|
+
size: 'md' | 'lg';
|
|
22
|
+
rounded: 'none' | 'sm' | 'md' | 'lg';
|
|
23
|
+
disabled: boolean;
|
|
24
|
+
error: boolean;
|
|
25
|
+
success: boolean;
|
|
26
|
+
/** Use 12-hour format with AM/PM toggle */
|
|
27
|
+
use12h: boolean;
|
|
28
|
+
/** Minute step interval (1, 5, 10, 15, 30) */
|
|
29
|
+
step: number;
|
|
30
|
+
private _open;
|
|
31
|
+
private _selectedHour;
|
|
32
|
+
private _selectedMinute;
|
|
33
|
+
private _period;
|
|
34
|
+
private _toggle;
|
|
35
|
+
private _close;
|
|
36
|
+
private _parseValue;
|
|
37
|
+
private _selectHour;
|
|
38
|
+
private _selectMinute;
|
|
39
|
+
private _setPeriod;
|
|
40
|
+
private _emitValue;
|
|
41
|
+
private _formatDisplay;
|
|
42
|
+
private _getHours;
|
|
43
|
+
private _getMinutes;
|
|
44
|
+
private _handleClickOutside;
|
|
45
|
+
private _handleKeydown;
|
|
46
|
+
connectedCallback(): void;
|
|
47
|
+
disconnectedCallback(): void;
|
|
48
|
+
render(): import('lit').TemplateResult<1>;
|
|
49
|
+
}
|
|
50
|
+
declare global {
|
|
51
|
+
interface HTMLElementTagNameMap {
|
|
52
|
+
'cg-time-picker': CgTimePicker;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=cg-time-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cg-time-picker.d.ts","sourceRoot":"","sources":["../../../src/components/cg-time-picker/cg-time-picker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD;;;;;;;;;;;GAWG;AACH,qBACa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,4BAwNnB;IAES,KAAK,SAAM;IACX,KAAK,SAAM;IACX,WAAW,SAAiB;IAC5B,IAAI,SAAM;IACV,MAAM,SAAM;IACK,IAAI,EAAE,IAAI,GAAG,IAAI,CAAQ;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAC5C,QAAQ,UAAS;IACF,KAAK,UAAS;IACd,OAAO,UAAS;IAC5D,2CAA2C;IACd,MAAM,UAAS;IAC5C,8CAA8C;IAClB,IAAI,SAAK;IAE5B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,OAAO,CAAqB;IAE7C,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,mBAAmB,CAEzB;IAEF,OAAO,CAAC,cAAc;IAOb,iBAAiB;IACjB,oBAAoB;IAEpB,MAAM;CAuEhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAAG,gBAAgB,EAAE,YAAY,CAAC;KAAE;CACpE"}
|