@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.
Files changed (879) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/dist/ai.d.ts +102 -0
  4. package/dist/ai.d.ts.map +1 -0
  5. package/dist/ai.js +181 -0
  6. package/dist/ai.js.map +1 -0
  7. package/dist/bias.d.ts +21 -0
  8. package/dist/bias.d.ts.map +1 -0
  9. package/dist/bias.js +15 -0
  10. package/dist/bias.js.map +1 -0
  11. package/dist/chunks/floating-DfsaYJnh.js +103 -0
  12. package/dist/chunks/floating-DfsaYJnh.js.map +1 -0
  13. package/dist/chunks/focus-trap-BdRNhSPD.js +53 -0
  14. package/dist/chunks/focus-trap-BdRNhSPD.js.map +1 -0
  15. package/dist/chunks/outside-click-CP1P1fK3.js +15 -0
  16. package/dist/chunks/outside-click-CP1P1fK3.js.map +1 -0
  17. package/dist/chunks/premium.css-9I4kHrsl.js +466 -0
  18. package/dist/chunks/premium.css-9I4kHrsl.js.map +1 -0
  19. package/dist/chunks/roving-index-BuO0tTba.js +31 -0
  20. package/dist/chunks/roving-index-BuO0tTba.js.map +1 -0
  21. package/dist/cognivo.min.js +33066 -0
  22. package/dist/cognivo.min.js.map +1 -0
  23. package/dist/components/ai-ab-test/ai-ab-test.d.ts +22 -0
  24. package/dist/components/ai-ab-test/ai-ab-test.d.ts.map +1 -0
  25. package/dist/components/ai-ab-test/ai-ab-test.js +173 -0
  26. package/dist/components/ai-ab-test/ai-ab-test.js.map +1 -0
  27. package/dist/components/ai-accessibility-report/ai-accessibility-report.d.ts +33 -0
  28. package/dist/components/ai-accessibility-report/ai-accessibility-report.d.ts.map +1 -0
  29. package/dist/components/ai-accessibility-report/ai-accessibility-report.js +380 -0
  30. package/dist/components/ai-accessibility-report/ai-accessibility-report.js.map +1 -0
  31. package/dist/components/ai-action-preview/ai-action-preview.d.ts +32 -0
  32. package/dist/components/ai-action-preview/ai-action-preview.d.ts.map +1 -0
  33. package/dist/components/ai-action-preview/ai-action-preview.js +295 -0
  34. package/dist/components/ai-action-preview/ai-action-preview.js.map +1 -0
  35. package/dist/components/ai-agent-card/ai-agent-card.d.ts +18 -0
  36. package/dist/components/ai-agent-card/ai-agent-card.d.ts.map +1 -0
  37. package/dist/components/ai-agent-card/ai-agent-card.js +267 -0
  38. package/dist/components/ai-agent-card/ai-agent-card.js.map +1 -0
  39. package/dist/components/ai-agent-steps/ai-agent-steps.d.ts +53 -0
  40. package/dist/components/ai-agent-steps/ai-agent-steps.d.ts.map +1 -0
  41. package/dist/components/ai-agent-steps/ai-agent-steps.js +297 -0
  42. package/dist/components/ai-agent-steps/ai-agent-steps.js.map +1 -0
  43. package/dist/components/ai-alert-card/ai-alert-card.d.ts +25 -0
  44. package/dist/components/ai-alert-card/ai-alert-card.d.ts.map +1 -0
  45. package/dist/components/ai-alert-card/ai-alert-card.js +235 -0
  46. package/dist/components/ai-alert-card/ai-alert-card.js.map +1 -0
  47. package/dist/components/ai-analytics-chart/ai-analytics-chart.d.ts +51 -0
  48. package/dist/components/ai-analytics-chart/ai-analytics-chart.d.ts.map +1 -0
  49. package/dist/components/ai-analytics-chart/ai-analytics-chart.js +334 -0
  50. package/dist/components/ai-analytics-chart/ai-analytics-chart.js.map +1 -0
  51. package/dist/components/ai-annotation/ai-annotation.d.ts +34 -0
  52. package/dist/components/ai-annotation/ai-annotation.d.ts.map +1 -0
  53. package/dist/components/ai-annotation/ai-annotation.js +254 -0
  54. package/dist/components/ai-annotation/ai-annotation.js.map +1 -0
  55. package/dist/components/ai-api-key-manager/ai-api-key-manager.d.ts +35 -0
  56. package/dist/components/ai-api-key-manager/ai-api-key-manager.d.ts.map +1 -0
  57. package/dist/components/ai-api-key-manager/ai-api-key-manager.js +443 -0
  58. package/dist/components/ai-api-key-manager/ai-api-key-manager.js.map +1 -0
  59. package/dist/components/ai-app-sidebar/ai-app-sidebar.d.ts +26 -0
  60. package/dist/components/ai-app-sidebar/ai-app-sidebar.d.ts.map +1 -0
  61. package/dist/components/ai-app-sidebar/ai-app-sidebar.js +206 -0
  62. package/dist/components/ai-app-sidebar/ai-app-sidebar.js.map +1 -0
  63. package/dist/components/ai-assistant-widget/ai-assistant-widget.d.ts +28 -0
  64. package/dist/components/ai-assistant-widget/ai-assistant-widget.d.ts.map +1 -0
  65. package/dist/components/ai-assistant-widget/ai-assistant-widget.js +335 -0
  66. package/dist/components/ai-assistant-widget/ai-assistant-widget.js.map +1 -0
  67. package/dist/components/ai-audio-player/ai-audio-player.d.ts +31 -0
  68. package/dist/components/ai-audio-player/ai-audio-player.d.ts.map +1 -0
  69. package/dist/components/ai-audio-player/ai-audio-player.js +274 -0
  70. package/dist/components/ai-audio-player/ai-audio-player.js.map +1 -0
  71. package/dist/components/ai-avatar/ai-avatar.d.ts +20 -0
  72. package/dist/components/ai-avatar/ai-avatar.d.ts.map +1 -0
  73. package/dist/components/ai-avatar/ai-avatar.js +77 -0
  74. package/dist/components/ai-avatar/ai-avatar.js.map +1 -0
  75. package/dist/components/ai-badge/ai-badge.d.ts +20 -0
  76. package/dist/components/ai-badge/ai-badge.d.ts.map +1 -0
  77. package/dist/components/ai-badge/ai-badge.js +69 -0
  78. package/dist/components/ai-badge/ai-badge.js.map +1 -0
  79. package/dist/components/ai-batch-progress/ai-batch-progress.d.ts +21 -0
  80. package/dist/components/ai-batch-progress/ai-batch-progress.d.ts.map +1 -0
  81. package/dist/components/ai-batch-progress/ai-batch-progress.js +334 -0
  82. package/dist/components/ai-batch-progress/ai-batch-progress.js.map +1 -0
  83. package/dist/components/ai-cache-indicator/ai-cache-indicator.d.ts +31 -0
  84. package/dist/components/ai-cache-indicator/ai-cache-indicator.d.ts.map +1 -0
  85. package/dist/components/ai-cache-indicator/ai-cache-indicator.js +314 -0
  86. package/dist/components/ai-cache-indicator/ai-cache-indicator.js.map +1 -0
  87. package/dist/components/ai-capture-flow/ai-capture-flow.d.ts +33 -0
  88. package/dist/components/ai-capture-flow/ai-capture-flow.d.ts.map +1 -0
  89. package/dist/components/ai-capture-flow/ai-capture-flow.js +336 -0
  90. package/dist/components/ai-capture-flow/ai-capture-flow.js.map +1 -0
  91. package/dist/components/ai-changelog/ai-changelog.d.ts +24 -0
  92. package/dist/components/ai-changelog/ai-changelog.d.ts.map +1 -0
  93. package/dist/components/ai-changelog/ai-changelog.js +292 -0
  94. package/dist/components/ai-changelog/ai-changelog.js.map +1 -0
  95. package/dist/components/ai-chart-summary/ai-chart-summary.d.ts +30 -0
  96. package/dist/components/ai-chart-summary/ai-chart-summary.d.ts.map +1 -0
  97. package/dist/components/ai-chart-summary/ai-chart-summary.js +269 -0
  98. package/dist/components/ai-chart-summary/ai-chart-summary.js.map +1 -0
  99. package/dist/components/ai-chat/ai-chat.d.ts +70 -0
  100. package/dist/components/ai-chat/ai-chat.d.ts.map +1 -0
  101. package/dist/components/ai-chat/ai-chat.js +707 -0
  102. package/dist/components/ai-chat/ai-chat.js.map +1 -0
  103. package/dist/components/ai-citation/ai-citation.d.ts +27 -0
  104. package/dist/components/ai-citation/ai-citation.d.ts.map +1 -0
  105. package/dist/components/ai-citation/ai-citation.js +277 -0
  106. package/dist/components/ai-citation/ai-citation.js.map +1 -0
  107. package/dist/components/ai-collaborative-editor/ai-collaborative-editor.d.ts +54 -0
  108. package/dist/components/ai-collaborative-editor/ai-collaborative-editor.d.ts.map +1 -0
  109. package/dist/components/ai-collaborative-editor/ai-collaborative-editor.js +387 -0
  110. package/dist/components/ai-collaborative-editor/ai-collaborative-editor.js.map +1 -0
  111. package/dist/components/ai-command-palette/ai-command-palette.d.ts +34 -0
  112. package/dist/components/ai-command-palette/ai-command-palette.d.ts.map +1 -0
  113. package/dist/components/ai-command-palette/ai-command-palette.js +119 -0
  114. package/dist/components/ai-command-palette/ai-command-palette.js.map +1 -0
  115. package/dist/components/ai-confidence-badge/ai-confidence-badge.d.ts +31 -0
  116. package/dist/components/ai-confidence-badge/ai-confidence-badge.d.ts.map +1 -0
  117. package/dist/components/ai-confidence-badge/ai-confidence-badge.js +200 -0
  118. package/dist/components/ai-confidence-badge/ai-confidence-badge.js.map +1 -0
  119. package/dist/components/ai-confidence-slider/ai-confidence-slider.d.ts +16 -0
  120. package/dist/components/ai-confidence-slider/ai-confidence-slider.d.ts.map +1 -0
  121. package/dist/components/ai-confidence-slider/ai-confidence-slider.js +212 -0
  122. package/dist/components/ai-confidence-slider/ai-confidence-slider.js.map +1 -0
  123. package/dist/components/ai-consent-manager/ai-consent-manager.d.ts +26 -0
  124. package/dist/components/ai-consent-manager/ai-consent-manager.d.ts.map +1 -0
  125. package/dist/components/ai-consent-manager/ai-consent-manager.js +169 -0
  126. package/dist/components/ai-consent-manager/ai-consent-manager.js.map +1 -0
  127. package/dist/components/ai-context-window/ai-context-window.d.ts +20 -0
  128. package/dist/components/ai-context-window/ai-context-window.d.ts.map +1 -0
  129. package/dist/components/ai-context-window/ai-context-window.js +201 -0
  130. package/dist/components/ai-context-window/ai-context-window.js.map +1 -0
  131. package/dist/components/ai-copy-button/ai-copy-button.d.ts +23 -0
  132. package/dist/components/ai-copy-button/ai-copy-button.d.ts.map +1 -0
  133. package/dist/components/ai-copy-button/ai-copy-button.js +193 -0
  134. package/dist/components/ai-copy-button/ai-copy-button.js.map +1 -0
  135. package/dist/components/ai-cost-dashboard/ai-cost-dashboard.d.ts +28 -0
  136. package/dist/components/ai-cost-dashboard/ai-cost-dashboard.d.ts.map +1 -0
  137. package/dist/components/ai-cost-dashboard/ai-cost-dashboard.js +328 -0
  138. package/dist/components/ai-cost-dashboard/ai-cost-dashboard.js.map +1 -0
  139. package/dist/components/ai-data-card/ai-data-card.d.ts +50 -0
  140. package/dist/components/ai-data-card/ai-data-card.d.ts.map +1 -0
  141. package/dist/components/ai-data-card/ai-data-card.js +358 -0
  142. package/dist/components/ai-data-card/ai-data-card.js.map +1 -0
  143. package/dist/components/ai-data-lineage/ai-data-lineage.d.ts +28 -0
  144. package/dist/components/ai-data-lineage/ai-data-lineage.d.ts.map +1 -0
  145. package/dist/components/ai-data-lineage/ai-data-lineage.js +200 -0
  146. package/dist/components/ai-data-lineage/ai-data-lineage.js.map +1 -0
  147. package/dist/components/ai-data-preview/ai-data-preview.d.ts +31 -0
  148. package/dist/components/ai-data-preview/ai-data-preview.d.ts.map +1 -0
  149. package/dist/components/ai-data-preview/ai-data-preview.js +415 -0
  150. package/dist/components/ai-data-preview/ai-data-preview.js.map +1 -0
  151. package/dist/components/ai-data-table/ai-data-table.d.ts +62 -0
  152. package/dist/components/ai-data-table/ai-data-table.d.ts.map +1 -0
  153. package/dist/components/ai-data-table/ai-data-table.js +388 -0
  154. package/dist/components/ai-data-table/ai-data-table.js.map +1 -0
  155. package/dist/components/ai-debug-console/ai-debug-console.d.ts +39 -0
  156. package/dist/components/ai-debug-console/ai-debug-console.d.ts.map +1 -0
  157. package/dist/components/ai-debug-console/ai-debug-console.js +517 -0
  158. package/dist/components/ai-debug-console/ai-debug-console.js.map +1 -0
  159. package/dist/components/ai-detection-canvas/ai-detection-canvas.d.ts +26 -0
  160. package/dist/components/ai-detection-canvas/ai-detection-canvas.d.ts.map +1 -0
  161. package/dist/components/ai-detection-canvas/ai-detection-canvas.js +233 -0
  162. package/dist/components/ai-detection-canvas/ai-detection-canvas.js.map +1 -0
  163. package/dist/components/ai-diff-panel/ai-diff-panel.d.ts +35 -0
  164. package/dist/components/ai-diff-panel/ai-diff-panel.d.ts.map +1 -0
  165. package/dist/components/ai-diff-panel/ai-diff-panel.js +374 -0
  166. package/dist/components/ai-diff-panel/ai-diff-panel.js.map +1 -0
  167. package/dist/components/ai-embedding-viz/ai-embedding-viz.d.ts +31 -0
  168. package/dist/components/ai-embedding-viz/ai-embedding-viz.d.ts.map +1 -0
  169. package/dist/components/ai-embedding-viz/ai-embedding-viz.js +256 -0
  170. package/dist/components/ai-embedding-viz/ai-embedding-viz.js.map +1 -0
  171. package/dist/components/ai-empty-state/ai-empty-state.d.ts +18 -0
  172. package/dist/components/ai-empty-state/ai-empty-state.d.ts.map +1 -0
  173. package/dist/components/ai-empty-state/ai-empty-state.js +58 -0
  174. package/dist/components/ai-empty-state/ai-empty-state.js.map +1 -0
  175. package/dist/components/ai-error-boundary/ai-error-boundary.d.ts +17 -0
  176. package/dist/components/ai-error-boundary/ai-error-boundary.d.ts.map +1 -0
  177. package/dist/components/ai-error-boundary/ai-error-boundary.js +212 -0
  178. package/dist/components/ai-error-boundary/ai-error-boundary.js.map +1 -0
  179. package/dist/components/ai-eval-scorecard/ai-eval-scorecard.d.ts +19 -0
  180. package/dist/components/ai-eval-scorecard/ai-eval-scorecard.d.ts.map +1 -0
  181. package/dist/components/ai-eval-scorecard/ai-eval-scorecard.js +199 -0
  182. package/dist/components/ai-eval-scorecard/ai-eval-scorecard.js.map +1 -0
  183. package/dist/components/ai-feature-flag/ai-feature-flag.d.ts +43 -0
  184. package/dist/components/ai-feature-flag/ai-feature-flag.d.ts.map +1 -0
  185. package/dist/components/ai-feature-flag/ai-feature-flag.js +457 -0
  186. package/dist/components/ai-feature-flag/ai-feature-flag.js.map +1 -0
  187. package/dist/components/ai-feedback/ai-feedback.d.ts +28 -0
  188. package/dist/components/ai-feedback/ai-feedback.d.ts.map +1 -0
  189. package/dist/components/ai-feedback/ai-feedback.js +478 -0
  190. package/dist/components/ai-feedback/ai-feedback.js.map +1 -0
  191. package/dist/components/ai-file-upload/ai-file-upload.d.ts +18 -0
  192. package/dist/components/ai-file-upload/ai-file-upload.d.ts.map +1 -0
  193. package/dist/components/ai-file-upload/ai-file-upload.js +70 -0
  194. package/dist/components/ai-file-upload/ai-file-upload.js.map +1 -0
  195. package/dist/components/ai-form-generator/ai-form-generator.d.ts +39 -0
  196. package/dist/components/ai-form-generator/ai-form-generator.d.ts.map +1 -0
  197. package/dist/components/ai-form-generator/ai-form-generator.js +225 -0
  198. package/dist/components/ai-form-generator/ai-form-generator.js.map +1 -0
  199. package/dist/components/ai-guardrail/ai-guardrail.d.ts +22 -0
  200. package/dist/components/ai-guardrail/ai-guardrail.d.ts.map +1 -0
  201. package/dist/components/ai-guardrail/ai-guardrail.js +229 -0
  202. package/dist/components/ai-guardrail/ai-guardrail.js.map +1 -0
  203. package/dist/components/ai-heatmap/ai-heatmap.d.ts +38 -0
  204. package/dist/components/ai-heatmap/ai-heatmap.d.ts.map +1 -0
  205. package/dist/components/ai-heatmap/ai-heatmap.js +250 -0
  206. package/dist/components/ai-heatmap/ai-heatmap.js.map +1 -0
  207. package/dist/components/ai-insight-card/ai-insight-card.d.ts +28 -0
  208. package/dist/components/ai-insight-card/ai-insight-card.d.ts.map +1 -0
  209. package/dist/components/ai-insight-card/ai-insight-card.js +319 -0
  210. package/dist/components/ai-insight-card/ai-insight-card.js.map +1 -0
  211. package/dist/components/ai-json-viewer/ai-json-viewer.d.ts +24 -0
  212. package/dist/components/ai-json-viewer/ai-json-viewer.d.ts.map +1 -0
  213. package/dist/components/ai-json-viewer/ai-json-viewer.js +173 -0
  214. package/dist/components/ai-json-viewer/ai-json-viewer.js.map +1 -0
  215. package/dist/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.d.ts +25 -0
  216. package/dist/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.d.ts.map +1 -0
  217. package/dist/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.js +240 -0
  218. package/dist/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.js.map +1 -0
  219. package/dist/components/ai-kpi-grid/ai-kpi-grid.d.ts +26 -0
  220. package/dist/components/ai-kpi-grid/ai-kpi-grid.d.ts.map +1 -0
  221. package/dist/components/ai-kpi-grid/ai-kpi-grid.js +180 -0
  222. package/dist/components/ai-kpi-grid/ai-kpi-grid.js.map +1 -0
  223. package/dist/components/ai-labeling-board/ai-labeling-board.d.ts +31 -0
  224. package/dist/components/ai-labeling-board/ai-labeling-board.d.ts.map +1 -0
  225. package/dist/components/ai-labeling-board/ai-labeling-board.js +393 -0
  226. package/dist/components/ai-labeling-board/ai-labeling-board.js.map +1 -0
  227. package/dist/components/ai-memory-panel/ai-memory-panel.d.ts +24 -0
  228. package/dist/components/ai-memory-panel/ai-memory-panel.d.ts.map +1 -0
  229. package/dist/components/ai-memory-panel/ai-memory-panel.js +238 -0
  230. package/dist/components/ai-memory-panel/ai-memory-panel.js.map +1 -0
  231. package/dist/components/ai-model-comparison/ai-model-comparison.d.ts +25 -0
  232. package/dist/components/ai-model-comparison/ai-model-comparison.d.ts.map +1 -0
  233. package/dist/components/ai-model-comparison/ai-model-comparison.js +321 -0
  234. package/dist/components/ai-model-comparison/ai-model-comparison.js.map +1 -0
  235. package/dist/components/ai-model-selector/ai-model-selector.d.ts +29 -0
  236. package/dist/components/ai-model-selector/ai-model-selector.d.ts.map +1 -0
  237. package/dist/components/ai-model-selector/ai-model-selector.js +200 -0
  238. package/dist/components/ai-model-selector/ai-model-selector.js.map +1 -0
  239. package/dist/components/ai-notification-center/ai-notification-center.d.ts +34 -0
  240. package/dist/components/ai-notification-center/ai-notification-center.d.ts.map +1 -0
  241. package/dist/components/ai-notification-center/ai-notification-center.js +334 -0
  242. package/dist/components/ai-notification-center/ai-notification-center.js.map +1 -0
  243. package/dist/components/ai-onboarding/ai-onboarding.d.ts +35 -0
  244. package/dist/components/ai-onboarding/ai-onboarding.d.ts.map +1 -0
  245. package/dist/components/ai-onboarding/ai-onboarding.js +375 -0
  246. package/dist/components/ai-onboarding/ai-onboarding.js.map +1 -0
  247. package/dist/components/ai-permission-gate/ai-permission-gate.d.ts +27 -0
  248. package/dist/components/ai-permission-gate/ai-permission-gate.d.ts.map +1 -0
  249. package/dist/components/ai-permission-gate/ai-permission-gate.js +193 -0
  250. package/dist/components/ai-permission-gate/ai-permission-gate.js.map +1 -0
  251. package/dist/components/ai-personalization-dash/ai-personalization-dash.d.ts +27 -0
  252. package/dist/components/ai-personalization-dash/ai-personalization-dash.d.ts.map +1 -0
  253. package/dist/components/ai-personalization-dash/ai-personalization-dash.js +181 -0
  254. package/dist/components/ai-personalization-dash/ai-personalization-dash.js.map +1 -0
  255. package/dist/components/ai-presence/ai-presence.d.ts +27 -0
  256. package/dist/components/ai-presence/ai-presence.d.ts.map +1 -0
  257. package/dist/components/ai-presence/ai-presence.js +261 -0
  258. package/dist/components/ai-presence/ai-presence.js.map +1 -0
  259. package/dist/components/ai-progress-steps/ai-progress-steps.d.ts +20 -0
  260. package/dist/components/ai-progress-steps/ai-progress-steps.d.ts.map +1 -0
  261. package/dist/components/ai-progress-steps/ai-progress-steps.js +201 -0
  262. package/dist/components/ai-progress-steps/ai-progress-steps.js.map +1 -0
  263. package/dist/components/ai-prompt-editor/ai-prompt-editor.d.ts +25 -0
  264. package/dist/components/ai-prompt-editor/ai-prompt-editor.d.ts.map +1 -0
  265. package/dist/components/ai-prompt-editor/ai-prompt-editor.js +294 -0
  266. package/dist/components/ai-prompt-editor/ai-prompt-editor.js.map +1 -0
  267. package/dist/components/ai-prompt-template/ai-prompt-template.d.ts +20 -0
  268. package/dist/components/ai-prompt-template/ai-prompt-template.d.ts.map +1 -0
  269. package/dist/components/ai-prompt-template/ai-prompt-template.js +288 -0
  270. package/dist/components/ai-prompt-template/ai-prompt-template.js.map +1 -0
  271. package/dist/components/ai-rag-panel/ai-rag-panel.d.ts +24 -0
  272. package/dist/components/ai-rag-panel/ai-rag-panel.d.ts.map +1 -0
  273. package/dist/components/ai-rag-panel/ai-rag-panel.js +226 -0
  274. package/dist/components/ai-rag-panel/ai-rag-panel.js.map +1 -0
  275. package/dist/components/ai-reasoning-tree/ai-reasoning-tree.d.ts +20 -0
  276. package/dist/components/ai-reasoning-tree/ai-reasoning-tree.d.ts.map +1 -0
  277. package/dist/components/ai-reasoning-tree/ai-reasoning-tree.js +180 -0
  278. package/dist/components/ai-reasoning-tree/ai-reasoning-tree.js.map +1 -0
  279. package/dist/components/ai-result-panel/ai-result-panel.d.ts +35 -0
  280. package/dist/components/ai-result-panel/ai-result-panel.d.ts.map +1 -0
  281. package/dist/components/ai-result-panel/ai-result-panel.js +412 -0
  282. package/dist/components/ai-result-panel/ai-result-panel.js.map +1 -0
  283. package/dist/components/ai-reveal-animation/ai-reveal-animation.d.ts +28 -0
  284. package/dist/components/ai-reveal-animation/ai-reveal-animation.d.ts.map +1 -0
  285. package/dist/components/ai-reveal-animation/ai-reveal-animation.js +146 -0
  286. package/dist/components/ai-reveal-animation/ai-reveal-animation.js.map +1 -0
  287. package/dist/components/ai-reward-signal/ai-reward-signal.d.ts +22 -0
  288. package/dist/components/ai-reward-signal/ai-reward-signal.d.ts.map +1 -0
  289. package/dist/components/ai-reward-signal/ai-reward-signal.js +231 -0
  290. package/dist/components/ai-reward-signal/ai-reward-signal.js.map +1 -0
  291. package/dist/components/ai-rich-message/ai-rich-message.d.ts +38 -0
  292. package/dist/components/ai-rich-message/ai-rich-message.d.ts.map +1 -0
  293. package/dist/components/ai-rich-message/ai-rich-message.js +285 -0
  294. package/dist/components/ai-rich-message/ai-rich-message.js.map +1 -0
  295. package/dist/components/ai-scenario-panel/ai-scenario-panel.d.ts +19 -0
  296. package/dist/components/ai-scenario-panel/ai-scenario-panel.d.ts.map +1 -0
  297. package/dist/components/ai-scenario-panel/ai-scenario-panel.js +182 -0
  298. package/dist/components/ai-scenario-panel/ai-scenario-panel.js.map +1 -0
  299. package/dist/components/ai-search/ai-search.d.ts +38 -0
  300. package/dist/components/ai-search/ai-search.d.ts.map +1 -0
  301. package/dist/components/ai-search/ai-search.js +397 -0
  302. package/dist/components/ai-search/ai-search.js.map +1 -0
  303. package/dist/components/ai-segmentation-viewer/ai-segmentation-viewer.d.ts +21 -0
  304. package/dist/components/ai-segmentation-viewer/ai-segmentation-viewer.d.ts.map +1 -0
  305. package/dist/components/ai-segmentation-viewer/ai-segmentation-viewer.js +185 -0
  306. package/dist/components/ai-segmentation-viewer/ai-segmentation-viewer.js.map +1 -0
  307. package/dist/components/ai-sidebar/ai-sidebar.d.ts +19 -0
  308. package/dist/components/ai-sidebar/ai-sidebar.d.ts.map +1 -0
  309. package/dist/components/ai-sidebar/ai-sidebar.js +59 -0
  310. package/dist/components/ai-sidebar/ai-sidebar.js.map +1 -0
  311. package/dist/components/ai-similarity-card/ai-similarity-card.d.ts +23 -0
  312. package/dist/components/ai-similarity-card/ai-similarity-card.d.ts.map +1 -0
  313. package/dist/components/ai-similarity-card/ai-similarity-card.js +224 -0
  314. package/dist/components/ai-similarity-card/ai-similarity-card.js.map +1 -0
  315. package/dist/components/ai-source-graph/ai-source-graph.d.ts +19 -0
  316. package/dist/components/ai-source-graph/ai-source-graph.d.ts.map +1 -0
  317. package/dist/components/ai-source-graph/ai-source-graph.js +226 -0
  318. package/dist/components/ai-source-graph/ai-source-graph.js.map +1 -0
  319. package/dist/components/ai-status-page/ai-status-page.d.ts +32 -0
  320. package/dist/components/ai-status-page/ai-status-page.d.ts.map +1 -0
  321. package/dist/components/ai-status-page/ai-status-page.js +304 -0
  322. package/dist/components/ai-status-page/ai-status-page.js.map +1 -0
  323. package/dist/components/ai-streaming-text/ai-streaming-text.d.ts +23 -0
  324. package/dist/components/ai-streaming-text/ai-streaming-text.d.ts.map +1 -0
  325. package/dist/components/ai-streaming-text/ai-streaming-text.js +80 -0
  326. package/dist/components/ai-streaming-text/ai-streaming-text.js.map +1 -0
  327. package/dist/components/ai-test-runner/ai-test-runner.d.ts +37 -0
  328. package/dist/components/ai-test-runner/ai-test-runner.d.ts.map +1 -0
  329. package/dist/components/ai-test-runner/ai-test-runner.js +448 -0
  330. package/dist/components/ai-test-runner/ai-test-runner.js.map +1 -0
  331. package/dist/components/ai-thinking/ai-thinking.d.ts +33 -0
  332. package/dist/components/ai-thinking/ai-thinking.d.ts.map +1 -0
  333. package/dist/components/ai-thinking/ai-thinking.js +371 -0
  334. package/dist/components/ai-thinking/ai-thinking.js.map +1 -0
  335. package/dist/components/ai-timeline/ai-timeline.d.ts +28 -0
  336. package/dist/components/ai-timeline/ai-timeline.d.ts.map +1 -0
  337. package/dist/components/ai-timeline/ai-timeline.js +378 -0
  338. package/dist/components/ai-timeline/ai-timeline.js.map +1 -0
  339. package/dist/components/ai-toast/ai-toast.d.ts +27 -0
  340. package/dist/components/ai-toast/ai-toast.d.ts.map +1 -0
  341. package/dist/components/ai-toast/ai-toast.js +68 -0
  342. package/dist/components/ai-toast/ai-toast.js.map +1 -0
  343. package/dist/components/ai-token-tracker/ai-token-tracker.d.ts +20 -0
  344. package/dist/components/ai-token-tracker/ai-token-tracker.d.ts.map +1 -0
  345. package/dist/components/ai-token-tracker/ai-token-tracker.js +235 -0
  346. package/dist/components/ai-token-tracker/ai-token-tracker.js.map +1 -0
  347. package/dist/components/ai-tool-card-resolver/ai-tool-card-resolver.d.ts +31 -0
  348. package/dist/components/ai-tool-card-resolver/ai-tool-card-resolver.d.ts.map +1 -0
  349. package/dist/components/ai-tool-card-resolver/ai-tool-card-resolver.js +225 -0
  350. package/dist/components/ai-tool-card-resolver/ai-tool-card-resolver.js.map +1 -0
  351. package/dist/components/ai-tool-indicator/ai-tool-indicator.d.ts +18 -0
  352. package/dist/components/ai-tool-indicator/ai-tool-indicator.d.ts.map +1 -0
  353. package/dist/components/ai-tool-indicator/ai-tool-indicator.js +186 -0
  354. package/dist/components/ai-tool-indicator/ai-tool-indicator.js.map +1 -0
  355. package/dist/components/ai-transform-slider/ai-transform-slider.d.ts +21 -0
  356. package/dist/components/ai-transform-slider/ai-transform-slider.d.ts.map +1 -0
  357. package/dist/components/ai-transform-slider/ai-transform-slider.js +270 -0
  358. package/dist/components/ai-transform-slider/ai-transform-slider.js.map +1 -0
  359. package/dist/components/ai-translation-panel/ai-translation-panel.d.ts +24 -0
  360. package/dist/components/ai-translation-panel/ai-translation-panel.d.ts.map +1 -0
  361. package/dist/components/ai-translation-panel/ai-translation-panel.js +347 -0
  362. package/dist/components/ai-translation-panel/ai-translation-panel.js.map +1 -0
  363. package/dist/components/ai-usage-meter/ai-usage-meter.d.ts +33 -0
  364. package/dist/components/ai-usage-meter/ai-usage-meter.d.ts.map +1 -0
  365. package/dist/components/ai-usage-meter/ai-usage-meter.js +286 -0
  366. package/dist/components/ai-usage-meter/ai-usage-meter.js.map +1 -0
  367. package/dist/components/ai-validation-checklist/ai-validation-checklist.d.ts +35 -0
  368. package/dist/components/ai-validation-checklist/ai-validation-checklist.d.ts.map +1 -0
  369. package/dist/components/ai-validation-checklist/ai-validation-checklist.js +360 -0
  370. package/dist/components/ai-validation-checklist/ai-validation-checklist.js.map +1 -0
  371. package/dist/components/ai-version-selector/ai-version-selector.d.ts +28 -0
  372. package/dist/components/ai-version-selector/ai-version-selector.d.ts.map +1 -0
  373. package/dist/components/ai-version-selector/ai-version-selector.js +326 -0
  374. package/dist/components/ai-version-selector/ai-version-selector.js.map +1 -0
  375. package/dist/components/ai-voice-panel/ai-voice-panel.d.ts +46 -0
  376. package/dist/components/ai-voice-panel/ai-voice-panel.d.ts.map +1 -0
  377. package/dist/components/ai-voice-panel/ai-voice-panel.js +363 -0
  378. package/dist/components/ai-voice-panel/ai-voice-panel.js.map +1 -0
  379. package/dist/components/ai-webhook-config/ai-webhook-config.d.ts +46 -0
  380. package/dist/components/ai-webhook-config/ai-webhook-config.d.ts.map +1 -0
  381. package/dist/components/ai-webhook-config/ai-webhook-config.js +358 -0
  382. package/dist/components/ai-webhook-config/ai-webhook-config.js.map +1 -0
  383. package/dist/components/ai-workflow-builder/ai-workflow-builder.d.ts +26 -0
  384. package/dist/components/ai-workflow-builder/ai-workflow-builder.d.ts.map +1 -0
  385. package/dist/components/ai-workflow-builder/ai-workflow-builder.js +179 -0
  386. package/dist/components/ai-workflow-builder/ai-workflow-builder.js.map +1 -0
  387. package/dist/components/bias-anchoring/bias-anchoring.d.ts +35 -0
  388. package/dist/components/bias-anchoring/bias-anchoring.d.ts.map +1 -0
  389. package/dist/components/bias-anchoring/bias-anchoring.js +107 -0
  390. package/dist/components/bias-anchoring/bias-anchoring.js.map +1 -0
  391. package/dist/components/bias-authority/bias-authority.d.ts +31 -0
  392. package/dist/components/bias-authority/bias-authority.d.ts.map +1 -0
  393. package/dist/components/bias-authority/bias-authority.js +97 -0
  394. package/dist/components/bias-authority/bias-authority.js.map +1 -0
  395. package/dist/components/bias-commitment/bias-commitment.d.ts +39 -0
  396. package/dist/components/bias-commitment/bias-commitment.d.ts.map +1 -0
  397. package/dist/components/bias-commitment/bias-commitment.js +115 -0
  398. package/dist/components/bias-commitment/bias-commitment.js.map +1 -0
  399. package/dist/components/bias-reciprocity/bias-reciprocity.d.ts +30 -0
  400. package/dist/components/bias-reciprocity/bias-reciprocity.d.ts.map +1 -0
  401. package/dist/components/bias-reciprocity/bias-reciprocity.js +86 -0
  402. package/dist/components/bias-reciprocity/bias-reciprocity.js.map +1 -0
  403. package/dist/components/bias-scarcity/bias-scarcity.d.ts +39 -0
  404. package/dist/components/bias-scarcity/bias-scarcity.d.ts.map +1 -0
  405. package/dist/components/bias-scarcity/bias-scarcity.js +120 -0
  406. package/dist/components/bias-scarcity/bias-scarcity.js.map +1 -0
  407. package/dist/components/bias-social-proof/bias-social-proof.d.ts +37 -0
  408. package/dist/components/bias-social-proof/bias-social-proof.d.ts.map +1 -0
  409. package/dist/components/bias-social-proof/bias-social-proof.js +112 -0
  410. package/dist/components/bias-social-proof/bias-social-proof.js.map +1 -0
  411. package/dist/components/cg-accordion/cg-accordion.d.ts +34 -0
  412. package/dist/components/cg-accordion/cg-accordion.d.ts.map +1 -0
  413. package/dist/components/cg-accordion/cg-accordion.js +219 -0
  414. package/dist/components/cg-accordion/cg-accordion.js.map +1 -0
  415. package/dist/components/cg-alert-dialog/cg-alert-dialog.d.ts +53 -0
  416. package/dist/components/cg-alert-dialog/cg-alert-dialog.d.ts.map +1 -0
  417. package/dist/components/cg-alert-dialog/cg-alert-dialog.js +220 -0
  418. package/dist/components/cg-alert-dialog/cg-alert-dialog.js.map +1 -0
  419. package/dist/components/cg-app-shell/cg-app-shell.d.ts +54 -0
  420. package/dist/components/cg-app-shell/cg-app-shell.d.ts.map +1 -0
  421. package/dist/components/cg-app-shell/cg-app-shell.js +135 -0
  422. package/dist/components/cg-app-shell/cg-app-shell.js.map +1 -0
  423. package/dist/components/cg-aspect-ratio/cg-aspect-ratio.d.ts +34 -0
  424. package/dist/components/cg-aspect-ratio/cg-aspect-ratio.d.ts.map +1 -0
  425. package/dist/components/cg-aspect-ratio/cg-aspect-ratio.js +47 -0
  426. package/dist/components/cg-aspect-ratio/cg-aspect-ratio.js.map +1 -0
  427. package/dist/components/cg-auth-shell/cg-auth-shell.d.ts +61 -0
  428. package/dist/components/cg-auth-shell/cg-auth-shell.d.ts.map +1 -0
  429. package/dist/components/cg-auth-shell/cg-auth-shell.js +163 -0
  430. package/dist/components/cg-auth-shell/cg-auth-shell.js.map +1 -0
  431. package/dist/components/cg-autocomplete/cg-autocomplete.d.ts +50 -0
  432. package/dist/components/cg-autocomplete/cg-autocomplete.d.ts.map +1 -0
  433. package/dist/components/cg-autocomplete/cg-autocomplete.js +279 -0
  434. package/dist/components/cg-autocomplete/cg-autocomplete.js.map +1 -0
  435. package/dist/components/cg-avatar/cg-avatar.d.ts +35 -0
  436. package/dist/components/cg-avatar/cg-avatar.d.ts.map +1 -0
  437. package/dist/components/cg-avatar/cg-avatar.js +171 -0
  438. package/dist/components/cg-avatar/cg-avatar.js.map +1 -0
  439. package/dist/components/cg-avatar-group/cg-avatar-group.d.ts +39 -0
  440. package/dist/components/cg-avatar-group/cg-avatar-group.d.ts.map +1 -0
  441. package/dist/components/cg-avatar-group/cg-avatar-group.js +218 -0
  442. package/dist/components/cg-avatar-group/cg-avatar-group.js.map +1 -0
  443. package/dist/components/cg-badge/cg-badge.d.ts +37 -0
  444. package/dist/components/cg-badge/cg-badge.d.ts.map +1 -0
  445. package/dist/components/cg-badge/cg-badge.js +125 -0
  446. package/dist/components/cg-badge/cg-badge.js.map +1 -0
  447. package/dist/components/cg-badge-group/cg-badge-group.d.ts +28 -0
  448. package/dist/components/cg-badge-group/cg-badge-group.d.ts.map +1 -0
  449. package/dist/components/cg-badge-group/cg-badge-group.js +78 -0
  450. package/dist/components/cg-badge-group/cg-badge-group.js.map +1 -0
  451. package/dist/components/cg-breadcrumbs/cg-breadcrumbs.d.ts +52 -0
  452. package/dist/components/cg-breadcrumbs/cg-breadcrumbs.d.ts.map +1 -0
  453. package/dist/components/cg-breadcrumbs/cg-breadcrumbs.js +286 -0
  454. package/dist/components/cg-breadcrumbs/cg-breadcrumbs.js.map +1 -0
  455. package/dist/components/cg-button/cg-button.d.ts +106 -0
  456. package/dist/components/cg-button/cg-button.d.ts.map +1 -0
  457. package/dist/components/cg-button/cg-button.js +355 -0
  458. package/dist/components/cg-button/cg-button.js.map +1 -0
  459. package/dist/components/cg-button-group/cg-button-group.d.ts +25 -0
  460. package/dist/components/cg-button-group/cg-button-group.d.ts.map +1 -0
  461. package/dist/components/cg-button-group/cg-button-group.js +89 -0
  462. package/dist/components/cg-button-group/cg-button-group.js.map +1 -0
  463. package/dist/components/cg-calendar/cg-calendar.d.ts +52 -0
  464. package/dist/components/cg-calendar/cg-calendar.d.ts.map +1 -0
  465. package/dist/components/cg-calendar/cg-calendar.js +346 -0
  466. package/dist/components/cg-calendar/cg-calendar.js.map +1 -0
  467. package/dist/components/cg-callout/cg-callout.d.ts +32 -0
  468. package/dist/components/cg-callout/cg-callout.d.ts.map +1 -0
  469. package/dist/components/cg-callout/cg-callout.js +197 -0
  470. package/dist/components/cg-callout/cg-callout.js.map +1 -0
  471. package/dist/components/cg-card/cg-card.d.ts +60 -0
  472. package/dist/components/cg-card/cg-card.d.ts.map +1 -0
  473. package/dist/components/cg-card/cg-card.js +207 -0
  474. package/dist/components/cg-card/cg-card.js.map +1 -0
  475. package/dist/components/cg-carousel/cg-carousel.d.ts +52 -0
  476. package/dist/components/cg-carousel/cg-carousel.d.ts.map +1 -0
  477. package/dist/components/cg-carousel/cg-carousel.js +262 -0
  478. package/dist/components/cg-carousel/cg-carousel.js.map +1 -0
  479. package/dist/components/cg-chart/cg-chart.d.ts +55 -0
  480. package/dist/components/cg-chart/cg-chart.d.ts.map +1 -0
  481. package/dist/components/cg-chart/cg-chart.js +381 -0
  482. package/dist/components/cg-chart/cg-chart.js.map +1 -0
  483. package/dist/components/cg-checkbox/cg-checkbox.d.ts +50 -0
  484. package/dist/components/cg-checkbox/cg-checkbox.d.ts.map +1 -0
  485. package/dist/components/cg-checkbox/cg-checkbox.js +294 -0
  486. package/dist/components/cg-checkbox/cg-checkbox.js.map +1 -0
  487. package/dist/components/cg-chip/cg-chip.d.ts +36 -0
  488. package/dist/components/cg-chip/cg-chip.d.ts.map +1 -0
  489. package/dist/components/cg-chip/cg-chip.js +256 -0
  490. package/dist/components/cg-chip/cg-chip.js.map +1 -0
  491. package/dist/components/cg-code-block/cg-code-block.d.ts +23 -0
  492. package/dist/components/cg-code-block/cg-code-block.d.ts.map +1 -0
  493. package/dist/components/cg-code-block/cg-code-block.js +327 -0
  494. package/dist/components/cg-code-block/cg-code-block.js.map +1 -0
  495. package/dist/components/cg-collapsible/cg-collapsible.d.ts +34 -0
  496. package/dist/components/cg-collapsible/cg-collapsible.d.ts.map +1 -0
  497. package/dist/components/cg-collapsible/cg-collapsible.js +160 -0
  498. package/dist/components/cg-collapsible/cg-collapsible.js.map +1 -0
  499. package/dist/components/cg-color-picker/cg-color-picker.d.ts +51 -0
  500. package/dist/components/cg-color-picker/cg-color-picker.d.ts.map +1 -0
  501. package/dist/components/cg-color-picker/cg-color-picker.js +492 -0
  502. package/dist/components/cg-color-picker/cg-color-picker.js.map +1 -0
  503. package/dist/components/cg-combobox/cg-combobox.d.ts +56 -0
  504. package/dist/components/cg-combobox/cg-combobox.d.ts.map +1 -0
  505. package/dist/components/cg-combobox/cg-combobox.js +374 -0
  506. package/dist/components/cg-combobox/cg-combobox.js.map +1 -0
  507. package/dist/components/cg-command/cg-command.d.ts +65 -0
  508. package/dist/components/cg-command/cg-command.d.ts.map +1 -0
  509. package/dist/components/cg-command/cg-command.js +339 -0
  510. package/dist/components/cg-command/cg-command.js.map +1 -0
  511. package/dist/components/cg-context-menu/cg-context-menu.d.ts +66 -0
  512. package/dist/components/cg-context-menu/cg-context-menu.d.ts.map +1 -0
  513. package/dist/components/cg-context-menu/cg-context-menu.js +165 -0
  514. package/dist/components/cg-context-menu/cg-context-menu.js.map +1 -0
  515. package/dist/components/cg-date-picker/cg-date-picker.d.ts +44 -0
  516. package/dist/components/cg-date-picker/cg-date-picker.d.ts.map +1 -0
  517. package/dist/components/cg-date-picker/cg-date-picker.js +240 -0
  518. package/dist/components/cg-date-picker/cg-date-picker.js.map +1 -0
  519. package/dist/components/cg-date-range-picker/cg-date-range-picker.d.ts +45 -0
  520. package/dist/components/cg-date-range-picker/cg-date-range-picker.d.ts.map +1 -0
  521. package/dist/components/cg-date-range-picker/cg-date-range-picker.js +266 -0
  522. package/dist/components/cg-date-range-picker/cg-date-range-picker.js.map +1 -0
  523. package/dist/components/cg-date-time-picker/cg-date-time-picker.d.ts +66 -0
  524. package/dist/components/cg-date-time-picker/cg-date-time-picker.d.ts.map +1 -0
  525. package/dist/components/cg-date-time-picker/cg-date-time-picker.js +521 -0
  526. package/dist/components/cg-date-time-picker/cg-date-time-picker.js.map +1 -0
  527. package/dist/components/cg-definition-list/cg-definition-list.d.ts +99 -0
  528. package/dist/components/cg-definition-list/cg-definition-list.d.ts.map +1 -0
  529. package/dist/components/cg-definition-list/cg-definition-list.js +332 -0
  530. package/dist/components/cg-definition-list/cg-definition-list.js.map +1 -0
  531. package/dist/components/cg-draggable/cg-draggable.d.ts +53 -0
  532. package/dist/components/cg-draggable/cg-draggable.d.ts.map +1 -0
  533. package/dist/components/cg-draggable/cg-draggable.js +136 -0
  534. package/dist/components/cg-draggable/cg-draggable.js.map +1 -0
  535. package/dist/components/cg-drawer/cg-drawer.d.ts +57 -0
  536. package/dist/components/cg-drawer/cg-drawer.d.ts.map +1 -0
  537. package/dist/components/cg-drawer/cg-drawer.js +421 -0
  538. package/dist/components/cg-drawer/cg-drawer.js.map +1 -0
  539. package/dist/components/cg-dropdown/cg-dropdown.d.ts +63 -0
  540. package/dist/components/cg-dropdown/cg-dropdown.d.ts.map +1 -0
  541. package/dist/components/cg-dropdown/cg-dropdown.js +232 -0
  542. package/dist/components/cg-dropdown/cg-dropdown.js.map +1 -0
  543. package/dist/components/cg-droppable/cg-droppable.d.ts +57 -0
  544. package/dist/components/cg-droppable/cg-droppable.d.ts.map +1 -0
  545. package/dist/components/cg-droppable/cg-droppable.js +114 -0
  546. package/dist/components/cg-droppable/cg-droppable.js.map +1 -0
  547. package/dist/components/cg-empty-state/cg-empty-state.d.ts +54 -0
  548. package/dist/components/cg-empty-state/cg-empty-state.d.ts.map +1 -0
  549. package/dist/components/cg-empty-state/cg-empty-state.js +201 -0
  550. package/dist/components/cg-empty-state/cg-empty-state.js.map +1 -0
  551. package/dist/components/cg-file-input/cg-file-input.d.ts +101 -0
  552. package/dist/components/cg-file-input/cg-file-input.d.ts.map +1 -0
  553. package/dist/components/cg-file-input/cg-file-input.js +684 -0
  554. package/dist/components/cg-file-input/cg-file-input.js.map +1 -0
  555. package/dist/components/cg-filter-bar/cg-filter-bar.d.ts +50 -0
  556. package/dist/components/cg-filter-bar/cg-filter-bar.d.ts.map +1 -0
  557. package/dist/components/cg-filter-bar/cg-filter-bar.js +115 -0
  558. package/dist/components/cg-filter-bar/cg-filter-bar.js.map +1 -0
  559. package/dist/components/cg-filter-chip/cg-filter-chip.d.ts +55 -0
  560. package/dist/components/cg-filter-chip/cg-filter-chip.d.ts.map +1 -0
  561. package/dist/components/cg-filter-chip/cg-filter-chip.js +213 -0
  562. package/dist/components/cg-filter-chip/cg-filter-chip.js.map +1 -0
  563. package/dist/components/cg-focus-scope/cg-focus-scope.d.ts +38 -0
  564. package/dist/components/cg-focus-scope/cg-focus-scope.d.ts.map +1 -0
  565. package/dist/components/cg-focus-scope/cg-focus-scope.js +47 -0
  566. package/dist/components/cg-focus-scope/cg-focus-scope.js.map +1 -0
  567. package/dist/components/cg-follow-up/cg-follow-up.d.ts +32 -0
  568. package/dist/components/cg-follow-up/cg-follow-up.d.ts.map +1 -0
  569. package/dist/components/cg-follow-up/cg-follow-up.js +233 -0
  570. package/dist/components/cg-follow-up/cg-follow-up.js.map +1 -0
  571. package/dist/components/cg-form/cg-form.d.ts +32 -0
  572. package/dist/components/cg-form/cg-form.d.ts.map +1 -0
  573. package/dist/components/cg-form/cg-form.js +109 -0
  574. package/dist/components/cg-form/cg-form.js.map +1 -0
  575. package/dist/components/cg-hover-card/cg-hover-card.d.ts +49 -0
  576. package/dist/components/cg-hover-card/cg-hover-card.d.ts.map +1 -0
  577. package/dist/components/cg-hover-card/cg-hover-card.js +149 -0
  578. package/dist/components/cg-hover-card/cg-hover-card.js.map +1 -0
  579. package/dist/components/cg-icon/cg-icon.d.ts +28 -0
  580. package/dist/components/cg-icon/cg-icon.d.ts.map +1 -0
  581. package/dist/components/cg-icon/cg-icon.js +339 -0
  582. package/dist/components/cg-icon/cg-icon.js.map +1 -0
  583. package/dist/components/cg-icon/solar-icons.d.ts +12 -0
  584. package/dist/components/cg-icon/solar-icons.d.ts.map +1 -0
  585. package/dist/components/cg-image/cg-image.d.ts +31 -0
  586. package/dist/components/cg-image/cg-image.d.ts.map +1 -0
  587. package/dist/components/cg-image/cg-image.js +168 -0
  588. package/dist/components/cg-image/cg-image.js.map +1 -0
  589. package/dist/components/cg-image-block/cg-image-block.d.ts +36 -0
  590. package/dist/components/cg-image-block/cg-image-block.d.ts.map +1 -0
  591. package/dist/components/cg-image-block/cg-image-block.js +214 -0
  592. package/dist/components/cg-image-block/cg-image-block.js.map +1 -0
  593. package/dist/components/cg-image-gallery/cg-image-gallery.d.ts +34 -0
  594. package/dist/components/cg-image-gallery/cg-image-gallery.d.ts.map +1 -0
  595. package/dist/components/cg-image-gallery/cg-image-gallery.js +158 -0
  596. package/dist/components/cg-image-gallery/cg-image-gallery.js.map +1 -0
  597. package/dist/components/cg-input/cg-input.d.ts +65 -0
  598. package/dist/components/cg-input/cg-input.d.ts.map +1 -0
  599. package/dist/components/cg-input/cg-input.js +425 -0
  600. package/dist/components/cg-input/cg-input.js.map +1 -0
  601. package/dist/components/cg-kanban/cg-kanban.d.ts +44 -0
  602. package/dist/components/cg-kanban/cg-kanban.d.ts.map +1 -0
  603. package/dist/components/cg-kanban/cg-kanban.js +86 -0
  604. package/dist/components/cg-kanban/cg-kanban.js.map +1 -0
  605. package/dist/components/cg-kanban-column/cg-kanban-column.d.ts +58 -0
  606. package/dist/components/cg-kanban-column/cg-kanban-column.d.ts.map +1 -0
  607. package/dist/components/cg-kanban-column/cg-kanban-column.js +144 -0
  608. package/dist/components/cg-kanban-column/cg-kanban-column.js.map +1 -0
  609. package/dist/components/cg-kbd/cg-kbd.d.ts +27 -0
  610. package/dist/components/cg-kbd/cg-kbd.d.ts.map +1 -0
  611. package/dist/components/cg-kbd/cg-kbd.js +91 -0
  612. package/dist/components/cg-kbd/cg-kbd.js.map +1 -0
  613. package/dist/components/cg-label/cg-label.d.ts +26 -0
  614. package/dist/components/cg-label/cg-label.d.ts.map +1 -0
  615. package/dist/components/cg-label/cg-label.js +89 -0
  616. package/dist/components/cg-label/cg-label.js.map +1 -0
  617. package/dist/components/cg-link/cg-link.d.ts +27 -0
  618. package/dist/components/cg-link/cg-link.d.ts.map +1 -0
  619. package/dist/components/cg-link/cg-link.js +152 -0
  620. package/dist/components/cg-link/cg-link.js.map +1 -0
  621. package/dist/components/cg-list/cg-list.d.ts +37 -0
  622. package/dist/components/cg-list/cg-list.d.ts.map +1 -0
  623. package/dist/components/cg-list/cg-list.js +314 -0
  624. package/dist/components/cg-list/cg-list.js.map +1 -0
  625. package/dist/components/cg-listbox/cg-listbox.d.ts +38 -0
  626. package/dist/components/cg-listbox/cg-listbox.d.ts.map +1 -0
  627. package/dist/components/cg-listbox/cg-listbox.js +258 -0
  628. package/dist/components/cg-listbox/cg-listbox.js.map +1 -0
  629. package/dist/components/cg-markdown/cg-markdown.d.ts +41 -0
  630. package/dist/components/cg-markdown/cg-markdown.d.ts.map +1 -0
  631. package/dist/components/cg-markdown/cg-markdown.js +542 -0
  632. package/dist/components/cg-markdown/cg-markdown.js.map +1 -0
  633. package/dist/components/cg-menubar/cg-menubar.d.ts +64 -0
  634. package/dist/components/cg-menubar/cg-menubar.d.ts.map +1 -0
  635. package/dist/components/cg-menubar/cg-menubar.js +338 -0
  636. package/dist/components/cg-menubar/cg-menubar.js.map +1 -0
  637. package/dist/components/cg-meter/cg-meter.d.ts +36 -0
  638. package/dist/components/cg-meter/cg-meter.d.ts.map +1 -0
  639. package/dist/components/cg-meter/cg-meter.js +204 -0
  640. package/dist/components/cg-meter/cg-meter.js.map +1 -0
  641. package/dist/components/cg-metric-card/cg-metric-card.d.ts +51 -0
  642. package/dist/components/cg-metric-card/cg-metric-card.d.ts.map +1 -0
  643. package/dist/components/cg-metric-card/cg-metric-card.js +312 -0
  644. package/dist/components/cg-metric-card/cg-metric-card.js.map +1 -0
  645. package/dist/components/cg-mfa-prompt/cg-mfa-prompt.d.ts +77 -0
  646. package/dist/components/cg-mfa-prompt/cg-mfa-prompt.d.ts.map +1 -0
  647. package/dist/components/cg-mfa-prompt/cg-mfa-prompt.js +245 -0
  648. package/dist/components/cg-mfa-prompt/cg-mfa-prompt.js.map +1 -0
  649. package/dist/components/cg-modal/cg-modal.d.ts +55 -0
  650. package/dist/components/cg-modal/cg-modal.d.ts.map +1 -0
  651. package/dist/components/cg-modal/cg-modal.js +409 -0
  652. package/dist/components/cg-modal/cg-modal.js.map +1 -0
  653. package/dist/components/cg-navbar/cg-navbar.d.ts +87 -0
  654. package/dist/components/cg-navbar/cg-navbar.d.ts.map +1 -0
  655. package/dist/components/cg-navbar/cg-navbar.js +473 -0
  656. package/dist/components/cg-navbar/cg-navbar.js.map +1 -0
  657. package/dist/components/cg-navigation-menu/cg-navigation-menu.d.ts +46 -0
  658. package/dist/components/cg-navigation-menu/cg-navigation-menu.d.ts.map +1 -0
  659. package/dist/components/cg-navigation-menu/cg-navigation-menu.js +257 -0
  660. package/dist/components/cg-navigation-menu/cg-navigation-menu.js.map +1 -0
  661. package/dist/components/cg-number-input/cg-number-input.d.ts +47 -0
  662. package/dist/components/cg-number-input/cg-number-input.d.ts.map +1 -0
  663. package/dist/components/cg-number-input/cg-number-input.js +266 -0
  664. package/dist/components/cg-number-input/cg-number-input.js.map +1 -0
  665. package/dist/components/cg-otp-input/cg-otp-input.d.ts +44 -0
  666. package/dist/components/cg-otp-input/cg-otp-input.d.ts.map +1 -0
  667. package/dist/components/cg-otp-input/cg-otp-input.js +188 -0
  668. package/dist/components/cg-otp-input/cg-otp-input.js.map +1 -0
  669. package/dist/components/cg-pagination/cg-pagination.d.ts +34 -0
  670. package/dist/components/cg-pagination/cg-pagination.d.ts.map +1 -0
  671. package/dist/components/cg-pagination/cg-pagination.js +232 -0
  672. package/dist/components/cg-pagination/cg-pagination.js.map +1 -0
  673. package/dist/components/cg-password-input/cg-password-input.d.ts +43 -0
  674. package/dist/components/cg-password-input/cg-password-input.d.ts.map +1 -0
  675. package/dist/components/cg-password-input/cg-password-input.js +261 -0
  676. package/dist/components/cg-password-input/cg-password-input.js.map +1 -0
  677. package/dist/components/cg-phone-input/cg-phone-input.d.ts +93 -0
  678. package/dist/components/cg-phone-input/cg-phone-input.d.ts.map +1 -0
  679. package/dist/components/cg-phone-input/cg-phone-input.js +972 -0
  680. package/dist/components/cg-phone-input/cg-phone-input.js.map +1 -0
  681. package/dist/components/cg-phone-input/countries.d.ts +38 -0
  682. package/dist/components/cg-phone-input/countries.d.ts.map +1 -0
  683. package/dist/components/cg-popover/cg-popover.d.ts +53 -0
  684. package/dist/components/cg-popover/cg-popover.d.ts.map +1 -0
  685. package/dist/components/cg-popover/cg-popover.js +215 -0
  686. package/dist/components/cg-popover/cg-popover.js.map +1 -0
  687. package/dist/components/cg-portal/cg-portal.d.ts +73 -0
  688. package/dist/components/cg-portal/cg-portal.d.ts.map +1 -0
  689. package/dist/components/cg-portal/cg-portal.js +80 -0
  690. package/dist/components/cg-portal/cg-portal.js.map +1 -0
  691. package/dist/components/cg-progress-bar/cg-progress-bar.d.ts +51 -0
  692. package/dist/components/cg-progress-bar/cg-progress-bar.d.ts.map +1 -0
  693. package/dist/components/cg-progress-bar/cg-progress-bar.js +267 -0
  694. package/dist/components/cg-progress-bar/cg-progress-bar.js.map +1 -0
  695. package/dist/components/cg-radio/cg-radio.d.ts +43 -0
  696. package/dist/components/cg-radio/cg-radio.d.ts.map +1 -0
  697. package/dist/components/cg-radio/cg-radio.js +268 -0
  698. package/dist/components/cg-radio/cg-radio.js.map +1 -0
  699. package/dist/components/cg-radio-group/cg-radio-group.d.ts +49 -0
  700. package/dist/components/cg-radio-group/cg-radio-group.d.ts.map +1 -0
  701. package/dist/components/cg-radio-group/cg-radio-group.js +142 -0
  702. package/dist/components/cg-radio-group/cg-radio-group.js.map +1 -0
  703. package/dist/components/cg-rating/cg-rating.d.ts +41 -0
  704. package/dist/components/cg-rating/cg-rating.d.ts.map +1 -0
  705. package/dist/components/cg-rating/cg-rating.js +201 -0
  706. package/dist/components/cg-rating/cg-rating.js.map +1 -0
  707. package/dist/components/cg-resizable/cg-resizable.d.ts +33 -0
  708. package/dist/components/cg-resizable/cg-resizable.d.ts.map +1 -0
  709. package/dist/components/cg-resizable/cg-resizable.js +236 -0
  710. package/dist/components/cg-resizable/cg-resizable.js.map +1 -0
  711. package/dist/components/cg-scroll-area/cg-scroll-area.d.ts +27 -0
  712. package/dist/components/cg-scroll-area/cg-scroll-area.d.ts.map +1 -0
  713. package/dist/components/cg-scroll-area/cg-scroll-area.js +111 -0
  714. package/dist/components/cg-scroll-area/cg-scroll-area.js.map +1 -0
  715. package/dist/components/cg-search-input/cg-search-input.d.ts +62 -0
  716. package/dist/components/cg-search-input/cg-search-input.d.ts.map +1 -0
  717. package/dist/components/cg-search-input/cg-search-input.js +106 -0
  718. package/dist/components/cg-search-input/cg-search-input.js.map +1 -0
  719. package/dist/components/cg-segmented-control/cg-segmented-control.d.ts +52 -0
  720. package/dist/components/cg-segmented-control/cg-segmented-control.d.ts.map +1 -0
  721. package/dist/components/cg-segmented-control/cg-segmented-control.js +182 -0
  722. package/dist/components/cg-segmented-control/cg-segmented-control.js.map +1 -0
  723. package/dist/components/cg-select/cg-select.d.ts +67 -0
  724. package/dist/components/cg-select/cg-select.d.ts.map +1 -0
  725. package/dist/components/cg-select/cg-select.js +302 -0
  726. package/dist/components/cg-select/cg-select.js.map +1 -0
  727. package/dist/components/cg-separator/cg-separator.d.ts +25 -0
  728. package/dist/components/cg-separator/cg-separator.d.ts.map +1 -0
  729. package/dist/components/cg-separator/cg-separator.js +105 -0
  730. package/dist/components/cg-separator/cg-separator.js.map +1 -0
  731. package/dist/components/cg-sheet/cg-sheet.d.ts +39 -0
  732. package/dist/components/cg-sheet/cg-sheet.d.ts.map +1 -0
  733. package/dist/components/cg-sheet/cg-sheet.js +211 -0
  734. package/dist/components/cg-sheet/cg-sheet.js.map +1 -0
  735. package/dist/components/cg-sidebar/cg-sidebar.d.ts +56 -0
  736. package/dist/components/cg-sidebar/cg-sidebar.d.ts.map +1 -0
  737. package/dist/components/cg-sidebar/cg-sidebar.js +266 -0
  738. package/dist/components/cg-sidebar/cg-sidebar.js.map +1 -0
  739. package/dist/components/cg-skeleton/cg-skeleton.d.ts +31 -0
  740. package/dist/components/cg-skeleton/cg-skeleton.d.ts.map +1 -0
  741. package/dist/components/cg-skeleton/cg-skeleton.js +136 -0
  742. package/dist/components/cg-skeleton/cg-skeleton.js.map +1 -0
  743. package/dist/components/cg-slider/cg-slider.d.ts +51 -0
  744. package/dist/components/cg-slider/cg-slider.d.ts.map +1 -0
  745. package/dist/components/cg-slider/cg-slider.js +375 -0
  746. package/dist/components/cg-slider/cg-slider.js.map +1 -0
  747. package/dist/components/cg-sortable/cg-sortable.d.ts +72 -0
  748. package/dist/components/cg-sortable/cg-sortable.d.ts.map +1 -0
  749. package/dist/components/cg-sortable/cg-sortable.js +177 -0
  750. package/dist/components/cg-sortable/cg-sortable.js.map +1 -0
  751. package/dist/components/cg-spinner/cg-spinner.d.ts +28 -0
  752. package/dist/components/cg-spinner/cg-spinner.d.ts.map +1 -0
  753. package/dist/components/cg-spinner/cg-spinner.js +119 -0
  754. package/dist/components/cg-spinner/cg-spinner.js.map +1 -0
  755. package/dist/components/cg-split-button/cg-split-button.d.ts +66 -0
  756. package/dist/components/cg-split-button/cg-split-button.d.ts.map +1 -0
  757. package/dist/components/cg-split-button/cg-split-button.js +330 -0
  758. package/dist/components/cg-split-button/cg-split-button.js.map +1 -0
  759. package/dist/components/cg-stack/cg-stack.d.ts +25 -0
  760. package/dist/components/cg-stack/cg-stack.d.ts.map +1 -0
  761. package/dist/components/cg-stack/cg-stack.js +85 -0
  762. package/dist/components/cg-stack/cg-stack.js.map +1 -0
  763. package/dist/components/cg-steps/cg-steps.d.ts +37 -0
  764. package/dist/components/cg-steps/cg-steps.d.ts.map +1 -0
  765. package/dist/components/cg-steps/cg-steps.js +251 -0
  766. package/dist/components/cg-steps/cg-steps.js.map +1 -0
  767. package/dist/components/cg-switch/cg-switch.d.ts +38 -0
  768. package/dist/components/cg-switch/cg-switch.d.ts.map +1 -0
  769. package/dist/components/cg-switch/cg-switch.js +210 -0
  770. package/dist/components/cg-switch/cg-switch.js.map +1 -0
  771. package/dist/components/cg-table/cg-table.d.ts +67 -0
  772. package/dist/components/cg-table/cg-table.d.ts.map +1 -0
  773. package/dist/components/cg-table/cg-table.js +395 -0
  774. package/dist/components/cg-table/cg-table.js.map +1 -0
  775. package/dist/components/cg-tabs/cg-tabs.d.ts +39 -0
  776. package/dist/components/cg-tabs/cg-tabs.d.ts.map +1 -0
  777. package/dist/components/cg-tabs/cg-tabs.js +241 -0
  778. package/dist/components/cg-tabs/cg-tabs.js.map +1 -0
  779. package/dist/components/cg-tag-input/cg-tag-input.d.ts +50 -0
  780. package/dist/components/cg-tag-input/cg-tag-input.d.ts.map +1 -0
  781. package/dist/components/cg-tag-input/cg-tag-input.js +307 -0
  782. package/dist/components/cg-tag-input/cg-tag-input.js.map +1 -0
  783. package/dist/components/cg-text/cg-text.d.ts +30 -0
  784. package/dist/components/cg-text/cg-text.d.ts.map +1 -0
  785. package/dist/components/cg-text/cg-text.js +126 -0
  786. package/dist/components/cg-text/cg-text.js.map +1 -0
  787. package/dist/components/cg-textarea/cg-textarea.d.ts +57 -0
  788. package/dist/components/cg-textarea/cg-textarea.d.ts.map +1 -0
  789. package/dist/components/cg-textarea/cg-textarea.js +295 -0
  790. package/dist/components/cg-textarea/cg-textarea.js.map +1 -0
  791. package/dist/components/cg-theme/cg-theme.d.ts +82 -0
  792. package/dist/components/cg-theme/cg-theme.d.ts.map +1 -0
  793. package/dist/components/cg-theme/cg-theme.js +91 -0
  794. package/dist/components/cg-theme/cg-theme.js.map +1 -0
  795. package/dist/components/cg-theme-editor/cg-theme-editor.d.ts +98 -0
  796. package/dist/components/cg-theme-editor/cg-theme-editor.d.ts.map +1 -0
  797. package/dist/components/cg-theme-editor/cg-theme-editor.js +341 -0
  798. package/dist/components/cg-theme-editor/cg-theme-editor.js.map +1 -0
  799. package/dist/components/cg-time-picker/cg-time-picker.d.ts +55 -0
  800. package/dist/components/cg-time-picker/cg-time-picker.d.ts.map +1 -0
  801. package/dist/components/cg-time-picker/cg-time-picker.js +417 -0
  802. package/dist/components/cg-time-picker/cg-time-picker.js.map +1 -0
  803. package/dist/components/cg-timeline/cg-timeline.d.ts +70 -0
  804. package/dist/components/cg-timeline/cg-timeline.d.ts.map +1 -0
  805. package/dist/components/cg-timeline/cg-timeline.js +131 -0
  806. package/dist/components/cg-timeline/cg-timeline.js.map +1 -0
  807. package/dist/components/cg-timeline-event/cg-timeline-event.d.ts +59 -0
  808. package/dist/components/cg-timeline-event/cg-timeline-event.d.ts.map +1 -0
  809. package/dist/components/cg-timeline-event/cg-timeline-event.js +190 -0
  810. package/dist/components/cg-timeline-event/cg-timeline-event.js.map +1 -0
  811. package/dist/components/cg-toaster/cg-toaster.d.ts +44 -0
  812. package/dist/components/cg-toaster/cg-toaster.d.ts.map +1 -0
  813. package/dist/components/cg-toaster/cg-toaster.js +226 -0
  814. package/dist/components/cg-toaster/cg-toaster.js.map +1 -0
  815. package/dist/components/cg-toggle/cg-toggle.d.ts +38 -0
  816. package/dist/components/cg-toggle/cg-toggle.d.ts.map +1 -0
  817. package/dist/components/cg-toggle/cg-toggle.js +204 -0
  818. package/dist/components/cg-toggle/cg-toggle.js.map +1 -0
  819. package/dist/components/cg-toggle-group/cg-toggle-group.d.ts +39 -0
  820. package/dist/components/cg-toggle-group/cg-toggle-group.d.ts.map +1 -0
  821. package/dist/components/cg-toggle-group/cg-toggle-group.js +112 -0
  822. package/dist/components/cg-toggle-group/cg-toggle-group.js.map +1 -0
  823. package/dist/components/cg-tooltip/cg-tooltip.d.ts +59 -0
  824. package/dist/components/cg-tooltip/cg-tooltip.d.ts.map +1 -0
  825. package/dist/components/cg-tooltip/cg-tooltip.js +277 -0
  826. package/dist/components/cg-tooltip/cg-tooltip.js.map +1 -0
  827. package/dist/components/cg-tree-view/cg-tree-view.d.ts +42 -0
  828. package/dist/components/cg-tree-view/cg-tree-view.d.ts.map +1 -0
  829. package/dist/components/cg-tree-view/cg-tree-view.js +244 -0
  830. package/dist/components/cg-tree-view/cg-tree-view.js.map +1 -0
  831. package/dist/components/cg-visually-hidden/cg-visually-hidden.d.ts +42 -0
  832. package/dist/components/cg-visually-hidden/cg-visually-hidden.d.ts.map +1 -0
  833. package/dist/components/cg-visually-hidden/cg-visually-hidden.js +40 -0
  834. package/dist/components/cg-visually-hidden/cg-visually-hidden.js.map +1 -0
  835. package/dist/foundation.d.ts +116 -0
  836. package/dist/foundation.d.ts.map +1 -0
  837. package/dist/foundation.js +211 -0
  838. package/dist/foundation.js.map +1 -0
  839. package/dist/index.d.ts +228 -0
  840. package/dist/index.d.ts.map +1 -0
  841. package/dist/index.js +407 -0
  842. package/dist/index.js.map +1 -0
  843. package/dist/lazy.d.ts +9 -0
  844. package/dist/lazy.d.ts.map +1 -0
  845. package/dist/lazy.js +38 -0
  846. package/dist/lazy.js.map +1 -0
  847. package/dist/styles/ai-effects.css.d.ts +11 -0
  848. package/dist/styles/ai-effects.css.d.ts.map +1 -0
  849. package/dist/styles/base.css.d.ts +12 -0
  850. package/dist/styles/base.css.d.ts.map +1 -0
  851. package/dist/styles/elevation.css.d.ts +11 -0
  852. package/dist/styles/elevation.css.d.ts.map +1 -0
  853. package/dist/styles/focus.css.d.ts +11 -0
  854. package/dist/styles/focus.css.d.ts.map +1 -0
  855. package/dist/styles/index.d.ts +8 -0
  856. package/dist/styles/index.d.ts.map +1 -0
  857. package/dist/styles/menu.css.d.ts +14 -0
  858. package/dist/styles/menu.css.d.ts.map +1 -0
  859. package/dist/styles/motion.css.d.ts +41 -0
  860. package/dist/styles/motion.css.d.ts.map +1 -0
  861. package/dist/styles/premium.css.d.ts +75 -0
  862. package/dist/styles/premium.css.d.ts.map +1 -0
  863. package/dist/utils/drag-manager.d.ts +40 -0
  864. package/dist/utils/drag-manager.d.ts.map +1 -0
  865. package/dist/utils/floating.d.ts +55 -0
  866. package/dist/utils/floating.d.ts.map +1 -0
  867. package/dist/utils/focus-trap.d.ts +37 -0
  868. package/dist/utils/focus-trap.d.ts.map +1 -0
  869. package/dist/utils/lazy.d.ts +47 -0
  870. package/dist/utils/lazy.d.ts.map +1 -0
  871. package/dist/utils/outside-click.d.ts +24 -0
  872. package/dist/utils/outside-click.d.ts.map +1 -0
  873. package/dist/utils/roving-index.d.ts +54 -0
  874. package/dist/utils/roving-index.d.ts.map +1 -0
  875. package/dist/utils/sanitize.d.ts +7 -0
  876. package/dist/utils/sanitize.d.ts.map +1 -0
  877. package/dist/utils/text-scramble.d.ts +144 -0
  878. package/dist/utils/text-scramble.d.ts.map +1 -0
  879. package/package.json +887 -0
@@ -0,0 +1,387 @@
1
+ import { css as f, LitElement as m, nothing as p, html as o } from "lit";
2
+ import { property as l, state as h, query as v, customElement as b } from "lit/decorators.js";
3
+ import { h as y, r as w, f as x } from "../../chunks/premium.css-9I4kHrsl.js";
4
+ import "../cg-avatar/cg-avatar.js";
5
+ import "../cg-spinner/cg-spinner.js";
6
+ var _ = Object.defineProperty, $ = Object.getOwnPropertyDescriptor, i = (e, t, s, a) => {
7
+ for (var n = a > 1 ? void 0 : a ? $(t, s) : t, d = e.length - 1, c; d >= 0; d--)
8
+ (c = e[d]) && (n = (a ? c(t, s, n) : c(n)) || n);
9
+ return a && n && _(t, s, n), n;
10
+ };
11
+ let r = class extends m {
12
+ constructor() {
13
+ super(...arguments), this.content = "", this.cursors = [], this.editable = !0, this.placeholder = "Start typing…", this.title = "", this.sync = "idle", this.idleFadeDelay = 2e3, this._charCount = 0, this._wordCount = 0, this._idleUsers = /* @__PURE__ */ new Set(), this._cursorPositions = /* @__PURE__ */ new Map(), this._idleTimers = /* @__PURE__ */ new Map(), this._previousPositions = /* @__PURE__ */ new Map();
14
+ }
15
+ updated(e) {
16
+ e.has("content") && this._updateCounts(), (e.has("content") || e.has("cursors")) && this.updateComplete.then(() => this._measureCursors()), e.has("cursors") && this._handleCursorActivity();
17
+ }
18
+ disconnectedCallback() {
19
+ super.disconnectedCallback();
20
+ for (const e of this._idleTimers.values()) clearTimeout(e);
21
+ this._idleTimers.clear();
22
+ }
23
+ _updateCounts() {
24
+ this._charCount = this.content.length;
25
+ const e = this.content.trim();
26
+ this._wordCount = e ? e.split(/\s+/).length : 0;
27
+ }
28
+ /**
29
+ * For each remote cursor, measure where its caret would render by inserting
30
+ * a zero-width marker at that offset in a hidden mirror element with the
31
+ * same metrics as the textarea, then reading the rect.
32
+ *
33
+ * Replaces the previous `charWidth = 8.4 / lineHeight = 22.4` heuristic
34
+ * which silently drifted under any zoom or font fallback.
35
+ */
36
+ _measureCursors() {
37
+ if (!this._mirror || !this._textarea) return;
38
+ const e = this._textarea.clientWidth;
39
+ this._mirror.style.width = `${e}px`;
40
+ const t = /* @__PURE__ */ new Map();
41
+ for (const s of this.cursors) {
42
+ const a = Math.max(0, Math.min(this.content.length, s.position)), n = this.content.slice(0, a);
43
+ this._mirror.textContent = "";
44
+ const d = document.createTextNode(n), c = document.createElement("span");
45
+ c.textContent = "​", this._mirror.appendChild(d), this._mirror.appendChild(c);
46
+ const u = this._mirror.getBoundingClientRect(), g = c.getBoundingClientRect();
47
+ t.set(s.user, {
48
+ top: g.top - u.top - this._textarea.scrollTop,
49
+ left: g.left - u.left
50
+ });
51
+ }
52
+ this._cursorPositions = t;
53
+ }
54
+ /**
55
+ * When a remote cursor's `position` changes, the user is "active" — clear
56
+ * the idle flag and (re)start a timer that marks them idle after
57
+ * idleFadeDelay ms.
58
+ */
59
+ _handleCursorActivity() {
60
+ if (this.idleFadeDelay <= 0) return;
61
+ const e = /* @__PURE__ */ new Set();
62
+ for (const t of this.cursors)
63
+ if (e.add(t.user), this._previousPositions.get(t.user) !== t.position) {
64
+ this._idleUsers.delete(t.user), this._previousPositions.set(t.user, t.position);
65
+ const a = this._idleTimers.get(t.user);
66
+ a && clearTimeout(a), this._idleTimers.set(t.user, window.setTimeout(() => {
67
+ this._idleUsers.add(t.user), this._idleUsers = new Set(this._idleUsers);
68
+ }, this.idleFadeDelay));
69
+ }
70
+ for (const t of [...this._previousPositions.keys()])
71
+ if (!e.has(t)) {
72
+ this._previousPositions.delete(t);
73
+ const s = this._idleTimers.get(t);
74
+ s && clearTimeout(s), this._idleTimers.delete(t), this._idleUsers.delete(t);
75
+ }
76
+ this.requestUpdate();
77
+ }
78
+ _onInput(e) {
79
+ const t = e.target;
80
+ this.content = t.value, this._updateCounts(), this.dispatchEvent(new CustomEvent("ai-editor-change", {
81
+ bubbles: !0,
82
+ composed: !0,
83
+ detail: { content: this.content }
84
+ }));
85
+ }
86
+ _onSelect(e) {
87
+ const t = e.target;
88
+ this.dispatchEvent(new CustomEvent("ai-editor-cursor-move", {
89
+ bubbles: !0,
90
+ composed: !0,
91
+ detail: {
92
+ position: t.selectionStart,
93
+ selectionStart: t.selectionStart,
94
+ selectionEnd: t.selectionEnd
95
+ }
96
+ }));
97
+ }
98
+ render() {
99
+ const e = this.sync === "saving" ? "Saving…" : this.sync === "saved" ? "Saved" : this.sync === "error" ? "Save failed" : "";
100
+ return o`
101
+ ${this.title || this.cursors.length ? o`
102
+ <div class="header">
103
+ ${this.title ? o`<h3 class="header-title">${this.title}</h3>` : o`<span class="header-title muted">${this.cursors.length} editor${this.cursors.length === 1 ? "" : "s"} present</span>`}
104
+ ${this.cursors.length ? o`
105
+ <div class="avatar-stack" role="list" aria-label="Active editors">
106
+ ${this.cursors.map((t) => o`
107
+ <span class="avatar-ring" role="listitem" style="border-color: ${t.color}; background: ${t.color}" title="${t.user}">
108
+ <cg-avatar size="xs" shape="circle" name=${t.user} status="online"></cg-avatar>
109
+ </span>
110
+ `)}
111
+ </div>
112
+ ` : p}
113
+ </div>
114
+ ` : p}
115
+
116
+ <div class="editor-wrap" role="group" aria-label="Collaborative text editor">
117
+ <textarea
118
+ .value=${this.content}
119
+ ?disabled=${!this.editable}
120
+ placeholder=${this.placeholder}
121
+ @input=${this._onInput}
122
+ @keyup=${this._onSelect}
123
+ @click=${this._onSelect}
124
+ aria-label="Editor content"
125
+ ></textarea>
126
+ <div class="mirror" aria-hidden="true"></div>
127
+ <div class="cursors-overlay" aria-hidden="true">
128
+ ${this.cursors.map((t) => {
129
+ const s = this._cursorPositions.get(t.user);
130
+ if (!s) return p;
131
+ const a = this._idleUsers.has(t.user);
132
+ return o`
133
+ <div
134
+ class="cursor-marker ${a ? "idle" : ""}"
135
+ style="top: ${s.top}px; left: ${s.left}px"
136
+ >
137
+ <div class="cursor-line" style="background: ${t.color}"></div>
138
+ <span class="cursor-label" style="background: ${t.color}">${t.user}</span>
139
+ </div>
140
+ `;
141
+ })}
142
+ </div>
143
+ </div>
144
+
145
+ <div class="footer">
146
+ <div class="stats">
147
+ <span>${this._charCount} chars</span>
148
+ <span>${this._wordCount} words</span>
149
+ </div>
150
+ ${this.sync !== "idle" ? o`
151
+ <div class="sync-state ${this.sync}" role="status" aria-live="polite">
152
+ ${this.sync === "saving" ? o`<cg-spinner size="xs"></cg-spinner>` : o`
153
+ <svg class="sync-icon" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
154
+ ${this.sync === "error" ? o`<path d="M4 4l8 8M12 4l-8 8"/>` : o`<path d="M3 8.5l3 3 7-7"/>`}
155
+ </svg>
156
+ `}
157
+ <span>${e}</span>
158
+ </div>
159
+ ` : p}
160
+ </div>
161
+
162
+ <span class="sr-only" role="status" aria-live="polite" aria-atomic="true">${e}</span>
163
+ `;
164
+ }
165
+ };
166
+ r.styles = [y, w, x, f`
167
+ :host {
168
+ background: var(--cg-color-surface-container-background);
169
+ color: var(--cg-color-surface-base-text);
170
+ border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);
171
+ border-radius: var(--cg-border-radius-150);
172
+ box-shadow: var(--cg-elevation-1);
173
+ overflow: hidden;
174
+ animation: fadeSlideIn var(--cg-transition-duration-fast) var(--cg-transition-easing-ease-out) both;
175
+ }
176
+ :host([hidden]) { display: none; }
177
+
178
+ /* ── Header: title + avatar stack ── */
179
+ .header {
180
+ display: flex;
181
+ align-items: center;
182
+ justify-content: space-between;
183
+ gap: var(--cg-spacing-12);
184
+ padding: var(--cg-spacing-12) var(--cg-spacing-16);
185
+ border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-cards-divider);
186
+ }
187
+ .header-title {
188
+ font-size: var(--cg-font-size-sm);
189
+ font-weight: var(--cg-font-weight-semibold);
190
+ color: var(--cg-color-surface-base-text);
191
+ margin: 0;
192
+ }
193
+ .header-title.muted {
194
+ color: var(--cg-color-input-text-placeholder);
195
+ font-weight: var(--cg-font-weight-medium);
196
+ }
197
+
198
+ /* Stacked avatars — overlap so the row stays compact. */
199
+ .avatar-stack {
200
+ display: inline-flex;
201
+ align-items: center;
202
+ }
203
+ .avatar-ring {
204
+ display: inline-flex;
205
+ border-radius: var(--cg-border-radius-full);
206
+ padding: var(--cg-border-width-100);
207
+ border: var(--cg-border-width-100) solid var(--cg-color-surface-container-background);
208
+ margin-left: calc(-1 * var(--cg-spacing-6));
209
+ transition: transform var(--cg-transition-duration-fast) var(--cg-transition-easing-spring);
210
+ }
211
+ .avatar-ring:first-child { margin-left: 0; }
212
+ .avatar-ring:hover { transform: translateY(calc(-1 * var(--cg-spacing-2))); }
213
+
214
+ /* ── Editor surface ── */
215
+ .editor-wrap {
216
+ position: relative;
217
+ min-height: 200px;
218
+ }
219
+
220
+ textarea {
221
+ display: block;
222
+ width: 100%;
223
+ min-height: 200px;
224
+ background: transparent;
225
+ color: var(--cg-color-surface-base-text);
226
+ border: none;
227
+ outline: none;
228
+ resize: vertical;
229
+ padding: var(--cg-spacing-16);
230
+ font-family: var(--cg-font-family-mono);
231
+ font-size: var(--cg-font-size-sm);
232
+ line-height: var(--cg-line-height-relaxed);
233
+ box-sizing: border-box;
234
+ caret-color: var(--cg-color-action-primary-background-default);
235
+ }
236
+ textarea::placeholder { color: var(--cg-color-input-text-placeholder); }
237
+ textarea:focus-visible {
238
+ box-shadow: inset 0 0 0 3px var(--cg-overlay-accent-strong);
239
+ }
240
+ textarea:disabled {
241
+ opacity: 0.5;
242
+ cursor: not-allowed;
243
+ }
244
+
245
+ /* ── Hidden mirror — exact textarea geometry, used to measure
246
+ per-character coordinates for cursor markers. */
247
+ .mirror {
248
+ position: absolute;
249
+ top: 0;
250
+ left: 0;
251
+ visibility: hidden;
252
+ pointer-events: none;
253
+ white-space: pre-wrap;
254
+ word-wrap: break-word;
255
+ overflow-wrap: break-word;
256
+ font-family: var(--cg-font-family-mono);
257
+ font-size: var(--cg-font-size-sm);
258
+ line-height: var(--cg-line-height-relaxed);
259
+ padding: var(--cg-spacing-16);
260
+ box-sizing: border-box;
261
+ }
262
+
263
+ .cursors-overlay {
264
+ position: absolute;
265
+ top: 0;
266
+ left: 0;
267
+ right: 0;
268
+ bottom: 0;
269
+ pointer-events: none;
270
+ overflow: hidden;
271
+ }
272
+
273
+ /* ── Cursor marker — flag style with smooth transition between
274
+ positions and label fade after inactivity. */
275
+ .cursor-marker {
276
+ position: absolute;
277
+ display: flex;
278
+ flex-direction: column;
279
+ align-items: flex-start;
280
+ pointer-events: none;
281
+ z-index: 2;
282
+ transition:
283
+ top var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out),
284
+ left var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out);
285
+ }
286
+ .cursor-line {
287
+ width: var(--cg-border-width-100);
288
+ height: 1.4em;
289
+ border-radius: var(--cg-border-width-50);
290
+ }
291
+ .cursor-label {
292
+ font-size: var(--cg-font-size-xs);
293
+ font-weight: var(--cg-font-weight-semibold);
294
+ padding: var(--cg-spacing-1) var(--cg-spacing-6);
295
+ border-radius: var(--cg-border-radius-50);
296
+ white-space: nowrap;
297
+ margin-top: calc(-1 * var(--cg-spacing-1));
298
+ color: var(--cg-color-action-primary-text-default);
299
+ transition: opacity var(--cg-transition-duration-default) var(--cg-transition-easing-default);
300
+ transform: translateY(0);
301
+ }
302
+ .cursor-marker.idle .cursor-label {
303
+ opacity: 0;
304
+ pointer-events: none;
305
+ }
306
+
307
+ /* ── Footer ── */
308
+ .footer {
309
+ display: flex;
310
+ justify-content: space-between;
311
+ align-items: center;
312
+ gap: var(--cg-spacing-12);
313
+ padding: var(--cg-spacing-8) var(--cg-spacing-16);
314
+ border-top: var(--cg-border-width-50) solid var(--cg-color-surface-cards-divider);
315
+ font-size: var(--cg-font-size-xs);
316
+ color: var(--cg-color-input-text-placeholder);
317
+ }
318
+ .stats {
319
+ display: flex;
320
+ gap: var(--cg-spacing-12);
321
+ font-variant-numeric: tabular-nums;
322
+ }
323
+ .sync-state {
324
+ display: inline-flex;
325
+ align-items: center;
326
+ gap: var(--cg-spacing-6);
327
+ }
328
+ .sync-state.saved { color: var(--cg-color-status-success-text-default); }
329
+ .sync-state.error { color: var(--cg-color-status-error-text-default); }
330
+ .sync-icon {
331
+ width: var(--cg-spacing-12);
332
+ height: var(--cg-spacing-12);
333
+ }
334
+
335
+ /* Visually-hidden live region. */
336
+ .sr-only {
337
+ position: absolute; width: 1px; height: 1px;
338
+ padding: 0; margin: -1px; overflow: hidden;
339
+ clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
340
+ }
341
+ `];
342
+ i([
343
+ l({ type: String })
344
+ ], r.prototype, "content", 2);
345
+ i([
346
+ l({ type: Array })
347
+ ], r.prototype, "cursors", 2);
348
+ i([
349
+ l({ type: Boolean })
350
+ ], r.prototype, "editable", 2);
351
+ i([
352
+ l({ type: String })
353
+ ], r.prototype, "placeholder", 2);
354
+ i([
355
+ l({ type: String })
356
+ ], r.prototype, "title", 2);
357
+ i([
358
+ l({ reflect: !0 })
359
+ ], r.prototype, "sync", 2);
360
+ i([
361
+ l({ type: Number, attribute: "idle-fade-delay" })
362
+ ], r.prototype, "idleFadeDelay", 2);
363
+ i([
364
+ h()
365
+ ], r.prototype, "_charCount", 2);
366
+ i([
367
+ h()
368
+ ], r.prototype, "_wordCount", 2);
369
+ i([
370
+ h()
371
+ ], r.prototype, "_idleUsers", 2);
372
+ i([
373
+ h()
374
+ ], r.prototype, "_cursorPositions", 2);
375
+ i([
376
+ v("textarea")
377
+ ], r.prototype, "_textarea", 2);
378
+ i([
379
+ v(".mirror")
380
+ ], r.prototype, "_mirror", 2);
381
+ r = i([
382
+ b("ai-collaborative-editor")
383
+ ], r);
384
+ export {
385
+ r as AiCollaborativeEditor
386
+ };
387
+ //# sourceMappingURL=ai-collaborative-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-collaborative-editor.js","sources":["../../../src/components/ai-collaborative-editor/ai-collaborative-editor.ts"],"sourcesContent":["/**\n * @element ai-collaborative-editor\n * Multiplayer monospace editor with live cursor + selection overlays, an\n * avatar-stack presence header (Linear/Figma pattern), word/char counts,\n * smooth cursor transitions, label fade on inactivity, and a Saving…/Saved\n * sync indicator.\n *\n * Cursor positions are measured with a hidden mirror element + per-character\n * Range geometry — accurate across font metrics, zoom level, and word-wrap\n * (the previous hand-rolled char-width math drifted with any font change).\n *\n * @example\n * ```html\n * <ai-collaborative-editor\n * content=\"Hello world\"\n * .cursors=${[{ user: 'Alice', position: 5, color: '#60a5fa' }]}\n * editable\n * ></ai-collaborative-editor>\n * ```\n *\n * @fires {CustomEvent<{content: string}>} ai-editor-change - Content changed\n * @fires {CustomEvent<{position, selectionStart, selectionEnd}>} ai-editor-cursor-move - Cursor moved\n *\n * @cssprop [--cg-color-surface-container-background] - Editor background\n * @cssprop [--cg-font-family-mono] - Editor font family\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, fadeSlideInKeyframes } from '../../styles/index.js';\nimport '../cg-avatar/cg-avatar.js';\nimport '../cg-spinner/cg-spinner.js';\n\nexport interface EditorCursor {\n user: string;\n position: number;\n color: string;\n}\n\n@customElement('ai-collaborative-editor')\nexport class AiCollaborativeEditor extends LitElement {\n static override styles = [hostBlock, reducedMotion, fadeSlideInKeyframes, css`\n :host {\n background: var(--cg-color-surface-container-background);\n color: var(--cg-color-surface-base-text);\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-elevation-1);\n overflow: hidden;\n animation: fadeSlideIn var(--cg-transition-duration-fast) var(--cg-transition-easing-ease-out) both;\n }\n :host([hidden]) { display: none; }\n\n /* ── Header: title + avatar stack ── */\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--cg-spacing-12);\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-cards-divider);\n }\n .header-title {\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-semibold);\n color: var(--cg-color-surface-base-text);\n margin: 0;\n }\n .header-title.muted {\n color: var(--cg-color-input-text-placeholder);\n font-weight: var(--cg-font-weight-medium);\n }\n\n /* Stacked avatars — overlap so the row stays compact. */\n .avatar-stack {\n display: inline-flex;\n align-items: center;\n }\n .avatar-ring {\n display: inline-flex;\n border-radius: var(--cg-border-radius-full);\n padding: var(--cg-border-width-100);\n border: var(--cg-border-width-100) solid var(--cg-color-surface-container-background);\n margin-left: calc(-1 * var(--cg-spacing-6));\n transition: transform var(--cg-transition-duration-fast) var(--cg-transition-easing-spring);\n }\n .avatar-ring:first-child { margin-left: 0; }\n .avatar-ring:hover { transform: translateY(calc(-1 * var(--cg-spacing-2))); }\n\n /* ── Editor surface ── */\n .editor-wrap {\n position: relative;\n min-height: 200px;\n }\n\n textarea {\n display: block;\n width: 100%;\n min-height: 200px;\n background: transparent;\n color: var(--cg-color-surface-base-text);\n border: none;\n outline: none;\n resize: vertical;\n padding: var(--cg-spacing-16);\n font-family: var(--cg-font-family-mono);\n font-size: var(--cg-font-size-sm);\n line-height: var(--cg-line-height-relaxed);\n box-sizing: border-box;\n caret-color: var(--cg-color-action-primary-background-default);\n }\n textarea::placeholder { color: var(--cg-color-input-text-placeholder); }\n textarea:focus-visible {\n box-shadow: inset 0 0 0 3px var(--cg-overlay-accent-strong);\n }\n textarea:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* ── Hidden mirror — exact textarea geometry, used to measure\n per-character coordinates for cursor markers. */\n .mirror {\n position: absolute;\n top: 0;\n left: 0;\n visibility: hidden;\n pointer-events: none;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: break-word;\n font-family: var(--cg-font-family-mono);\n font-size: var(--cg-font-size-sm);\n line-height: var(--cg-line-height-relaxed);\n padding: var(--cg-spacing-16);\n box-sizing: border-box;\n }\n\n .cursors-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n overflow: hidden;\n }\n\n /* ── Cursor marker — flag style with smooth transition between\n positions and label fade after inactivity. */\n .cursor-marker {\n position: absolute;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n pointer-events: none;\n z-index: 2;\n transition:\n top var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out),\n left var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out);\n }\n .cursor-line {\n width: var(--cg-border-width-100);\n height: 1.4em;\n border-radius: var(--cg-border-width-50);\n }\n .cursor-label {\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-semibold);\n padding: var(--cg-spacing-1) var(--cg-spacing-6);\n border-radius: var(--cg-border-radius-50);\n white-space: nowrap;\n margin-top: calc(-1 * var(--cg-spacing-1));\n color: var(--cg-color-action-primary-text-default);\n transition: opacity var(--cg-transition-duration-default) var(--cg-transition-easing-default);\n transform: translateY(0);\n }\n .cursor-marker.idle .cursor-label {\n opacity: 0;\n pointer-events: none;\n }\n\n /* ── Footer ── */\n .footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--cg-spacing-12);\n padding: var(--cg-spacing-8) var(--cg-spacing-16);\n border-top: var(--cg-border-width-50) solid var(--cg-color-surface-cards-divider);\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-input-text-placeholder);\n }\n .stats {\n display: flex;\n gap: var(--cg-spacing-12);\n font-variant-numeric: tabular-nums;\n }\n .sync-state {\n display: inline-flex;\n align-items: center;\n gap: var(--cg-spacing-6);\n }\n .sync-state.saved { color: var(--cg-color-status-success-text-default); }\n .sync-state.error { color: var(--cg-color-status-error-text-default); }\n .sync-icon {\n width: var(--cg-spacing-12);\n height: var(--cg-spacing-12);\n }\n\n /* Visually-hidden live region. */\n .sr-only {\n position: absolute; width: 1px; height: 1px;\n padding: 0; margin: -1px; overflow: hidden;\n clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;\n }\n `];\n\n @property({ type: String }) content = '';\n @property({ type: Array }) cursors: EditorCursor[] = [];\n @property({ type: Boolean }) editable = true;\n @property({ type: String }) placeholder = 'Start typing…';\n @property({ type: String }) override title = '';\n /** Sync state shown in the footer. Consumers flip this during save. */\n @property({ reflect: true }) sync: 'idle' | 'saving' | 'saved' | 'error' = 'idle';\n /** ms of cursor inactivity before the user's label fades out. 0 disables. */\n @property({ type: Number, attribute: 'idle-fade-delay' }) idleFadeDelay = 2000;\n\n @state() private _charCount = 0;\n @state() private _wordCount = 0;\n @state() private _idleUsers = new Set<string>();\n /** Per-cursor screen positions in textarea-relative pixels. */\n @state() private _cursorPositions = new Map<string, { top: number; left: number }>();\n\n @query('textarea') private _textarea!: HTMLTextAreaElement;\n @query('.mirror') private _mirror!: HTMLDivElement;\n\n private _idleTimers = new Map<string, number>();\n private _previousPositions = new Map<string, number>();\n\n override updated(changed: Map<string, unknown>): void {\n if (changed.has('content')) this._updateCounts();\n if (changed.has('content') || changed.has('cursors')) {\n // Recompute cursor screen positions whenever text or remote cursors move.\n this.updateComplete.then(() => this._measureCursors());\n }\n if (changed.has('cursors')) this._handleCursorActivity();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n for (const t of this._idleTimers.values()) clearTimeout(t);\n this._idleTimers.clear();\n }\n\n private _updateCounts(): void {\n this._charCount = this.content.length;\n const trimmed = this.content.trim();\n this._wordCount = trimmed ? trimmed.split(/\\s+/).length : 0;\n }\n\n /**\n * For each remote cursor, measure where its caret would render by inserting\n * a zero-width marker at that offset in a hidden mirror element with the\n * same metrics as the textarea, then reading the rect.\n *\n * Replaces the previous `charWidth = 8.4 / lineHeight = 22.4` heuristic\n * which silently drifted under any zoom or font fallback.\n */\n private _measureCursors(): void {\n if (!this._mirror || !this._textarea) return;\n const mirrorWidth = this._textarea.clientWidth;\n this._mirror.style.width = `${mirrorWidth}px`;\n const next = new Map<string, { top: number; left: number }>();\n for (const c of this.cursors) {\n const pos = Math.max(0, Math.min(this.content.length, c.position));\n const before = this.content.slice(0, pos);\n // Render the text-up-to-cursor + a marker span the mirror can measure.\n this._mirror.textContent = '';\n const beforeNode = document.createTextNode(before);\n const marker = document.createElement('span');\n marker.textContent = '​'; // zero-width space\n this._mirror.appendChild(beforeNode);\n this._mirror.appendChild(marker);\n const wrapRect = this._mirror.getBoundingClientRect();\n const markerRect = marker.getBoundingClientRect();\n next.set(c.user, {\n top: markerRect.top - wrapRect.top - this._textarea.scrollTop,\n left: markerRect.left - wrapRect.left,\n });\n }\n this._cursorPositions = next;\n }\n\n /**\n * When a remote cursor's `position` changes, the user is \"active\" — clear\n * the idle flag and (re)start a timer that marks them idle after\n * idleFadeDelay ms.\n */\n private _handleCursorActivity(): void {\n if (this.idleFadeDelay <= 0) return;\n const seen = new Set<string>();\n for (const c of this.cursors) {\n seen.add(c.user);\n const prev = this._previousPositions.get(c.user);\n if (prev !== c.position) {\n this._idleUsers.delete(c.user);\n this._previousPositions.set(c.user, c.position);\n const existing = this._idleTimers.get(c.user);\n if (existing) clearTimeout(existing);\n this._idleTimers.set(c.user, window.setTimeout(() => {\n this._idleUsers.add(c.user);\n this._idleUsers = new Set(this._idleUsers);\n }, this.idleFadeDelay));\n }\n }\n // Remove disconnected users from tracking.\n for (const user of [...this._previousPositions.keys()]) {\n if (!seen.has(user)) {\n this._previousPositions.delete(user);\n const t = this._idleTimers.get(user); if (t) clearTimeout(t);\n this._idleTimers.delete(user);\n this._idleUsers.delete(user);\n }\n }\n this.requestUpdate();\n }\n\n private _onInput(e: Event): void {\n const target = e.target as HTMLTextAreaElement;\n this.content = target.value;\n this._updateCounts();\n this.dispatchEvent(new CustomEvent('ai-editor-change', {\n bubbles: true, composed: true,\n detail: { content: this.content },\n }));\n }\n\n private _onSelect(e: Event): void {\n const target = e.target as HTMLTextAreaElement;\n this.dispatchEvent(new CustomEvent('ai-editor-cursor-move', {\n bubbles: true, composed: true,\n detail: {\n position: target.selectionStart,\n selectionStart: target.selectionStart,\n selectionEnd: target.selectionEnd,\n },\n }));\n }\n\n override render() {\n const syncLabel =\n this.sync === 'saving' ? 'Saving…' :\n this.sync === 'saved' ? 'Saved' :\n this.sync === 'error' ? 'Save failed' : '';\n\n return html`\n ${this.title || this.cursors.length ? html`\n <div class=\"header\">\n ${this.title\n ? html`<h3 class=\"header-title\">${this.title}</h3>`\n : html`<span class=\"header-title muted\">${this.cursors.length} editor${this.cursors.length === 1 ? '' : 's'} present</span>`}\n ${this.cursors.length ? html`\n <div class=\"avatar-stack\" role=\"list\" aria-label=\"Active editors\">\n ${this.cursors.map(c => html`\n <span class=\"avatar-ring\" role=\"listitem\" style=\"border-color: ${c.color}; background: ${c.color}\" title=\"${c.user}\">\n <cg-avatar size=\"xs\" shape=\"circle\" name=${c.user} status=\"online\"></cg-avatar>\n </span>\n `)}\n </div>\n ` : nothing}\n </div>\n ` : nothing}\n\n <div class=\"editor-wrap\" role=\"group\" aria-label=\"Collaborative text editor\">\n <textarea\n .value=${this.content}\n ?disabled=${!this.editable}\n placeholder=${this.placeholder}\n @input=${this._onInput}\n @keyup=${this._onSelect}\n @click=${this._onSelect}\n aria-label=\"Editor content\"\n ></textarea>\n <div class=\"mirror\" aria-hidden=\"true\"></div>\n <div class=\"cursors-overlay\" aria-hidden=\"true\">\n ${this.cursors.map(c => {\n const pos = this._cursorPositions.get(c.user);\n if (!pos) return nothing;\n const idle = this._idleUsers.has(c.user);\n return html`\n <div\n class=\"cursor-marker ${idle ? 'idle' : ''}\"\n style=\"top: ${pos.top}px; left: ${pos.left}px\"\n >\n <div class=\"cursor-line\" style=\"background: ${c.color}\"></div>\n <span class=\"cursor-label\" style=\"background: ${c.color}\">${c.user}</span>\n </div>\n `;\n })}\n </div>\n </div>\n\n <div class=\"footer\">\n <div class=\"stats\">\n <span>${this._charCount} chars</span>\n <span>${this._wordCount} words</span>\n </div>\n ${this.sync !== 'idle' ? html`\n <div class=\"sync-state ${this.sync}\" role=\"status\" aria-live=\"polite\">\n ${this.sync === 'saving' ? html`<cg-spinner size=\"xs\"></cg-spinner>` : html`\n <svg class=\"sync-icon\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n ${this.sync === 'error'\n ? html`<path d=\"M4 4l8 8M12 4l-8 8\"/>`\n : html`<path d=\"M3 8.5l3 3 7-7\"/>`}\n </svg>\n `}\n <span>${syncLabel}</span>\n </div>\n ` : nothing}\n </div>\n\n <span class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">${syncLabel}</span>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ai-collaborative-editor': AiCollaborativeEditor;\n }\n}\n"],"names":["AiCollaborativeEditor","LitElement","changed","t","trimmed","mirrorWidth","next","c","pos","before","beforeNode","marker","wrapRect","markerRect","seen","existing","user","target","syncLabel","html","nothing","idle","hostBlock","reducedMotion","fadeSlideInKeyframes","css","__decorateClass","property","state","query","customElement"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { LitElement, nothing } from 'lit';
2
+ export interface PaletteCommand {
3
+ id: string;
4
+ label: string;
5
+ shortcut?: string;
6
+ icon?: string;
7
+ category?: string;
8
+ }
9
+ export declare class AiCommandPalette extends LitElement {
10
+ static styles: import('lit').CSSResult[];
11
+ rounded: 'none' | 'sm' | 'md' | 'lg' | 'full';
12
+ commands: PaletteCommand[];
13
+ open: boolean;
14
+ placeholder: string;
15
+ private _query;
16
+ private _readRecent;
17
+ private _writeRecent;
18
+ /** Fuzzy score: substring match (strong), then in-order character match (weak). Returns -1 if no match. */
19
+ private _score;
20
+ /** Map PaletteCommand → CommandItem (category → group). */
21
+ private _toItem;
22
+ /** Build the filtered + ordered + recent-prepended item list to hand to cg-command. */
23
+ private get _items();
24
+ private _onSelect;
25
+ private _onClose;
26
+ private _onInput;
27
+ render(): import('lit').TemplateResult<1> | typeof nothing;
28
+ }
29
+ declare global {
30
+ interface HTMLElementTagNameMap {
31
+ 'ai-command-palette': AiCommandPalette;
32
+ }
33
+ }
34
+ //# sourceMappingURL=ai-command-palette.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-command-palette.d.ts","sourceRoot":"","sources":["../../../src/components/ai-command-palette/ai-command-palette.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAGrD,OAAO,6BAA6B,CAAC;AAGrC,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,OAAgB,MAAM,4BAGnB;IAE0B,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAQ;IACvD,QAAQ,EAAE,cAAc,EAAE,CAAM;IACf,IAAI,UAAS;IAC7B,WAAW,SAA0B;IAExD,OAAO,CAAC,MAAM,CAAM;IAE7B,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IAUpB,2GAA2G;IAC3G,OAAO,CAAC,MAAM;IAmBd,2DAA2D;IAC3D,OAAO,CAAC,OAAO;IAcf,uFAAuF;IACvF,OAAO,KAAK,MAAM,GAyBjB;IAED,OAAO,CAAC,SAAS,CAaf;IAEF,OAAO,CAAC,QAAQ,CAQd;IAEF,OAAO,CAAC,QAAQ,CAId;IAEO,MAAM;CAahB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,gBAAgB,CAAC;KACxC;CACF"}
@@ -0,0 +1,119 @@
1
+ import { css as _, LitElement as g, nothing as y, html as v } from "lit";
2
+ import { property as d, state as b, customElement as w } from "lit/decorators.js";
3
+ import { h as E } from "../../chunks/premium.css-9I4kHrsl.js";
4
+ import "../cg-command/cg-command.js";
5
+ var I = Object.defineProperty, C = Object.getOwnPropertyDescriptor, l = (t, e, n, o) => {
6
+ for (var r = o > 1 ? void 0 : o ? C(e, n) : e, c = t.length - 1, s; c >= 0; c--)
7
+ (s = t[c]) && (r = (o ? s(e, n, r) : s(r)) || r);
8
+ return o && r && I(e, n, r), r;
9
+ };
10
+ const u = "cognivo:ai-command-palette:recent", S = 5;
11
+ let a = class extends g {
12
+ constructor() {
13
+ super(...arguments), this.rounded = "lg", this.commands = [], this.open = !1, this.placeholder = "Type a command…", this._query = "", this._onSelect = (t) => {
14
+ const e = t;
15
+ t.stopPropagation();
16
+ const n = e.detail?.id, o = this.commands.find((r) => r.id === n);
17
+ o && (this._writeRecent(n), this.open = !1, this.dispatchEvent(new CustomEvent("ai-command-select", {
18
+ detail: { id: o.id, label: o.label },
19
+ bubbles: !0,
20
+ composed: !0
21
+ })));
22
+ }, this._onClose = (t) => {
23
+ t.stopPropagation(), this.open && (this.open = !1), this._query = "", this.dispatchEvent(new CustomEvent("ai-command-close", {
24
+ bubbles: !0,
25
+ composed: !0
26
+ }));
27
+ }, this._onInput = (t) => {
28
+ const e = t;
29
+ t.stopPropagation(), this._query = e.detail?.value ?? "";
30
+ };
31
+ }
32
+ _readRecent() {
33
+ try {
34
+ const t = globalThis.localStorage?.getItem(u), e = t ? JSON.parse(t) : [];
35
+ return Array.isArray(e) ? e.filter((n) => typeof n == "string") : [];
36
+ } catch {
37
+ return [];
38
+ }
39
+ }
40
+ _writeRecent(t) {
41
+ try {
42
+ const e = this._readRecent().filter((n) => n !== t);
43
+ e.unshift(t), globalThis.localStorage?.setItem(u, JSON.stringify(e.slice(0, S)));
44
+ } catch {
45
+ }
46
+ }
47
+ /** Fuzzy score: substring match (strong), then in-order character match (weak). Returns -1 if no match. */
48
+ _score(t, e) {
49
+ if (!e) return 0;
50
+ const n = t.toLowerCase(), o = e.toLowerCase(), r = n.indexOf(o);
51
+ if (r !== -1) return 1e3 - r;
52
+ let c = 0, s = 0, i = -1, p = 0;
53
+ for (let h = 0; h < o.length; h++) {
54
+ const f = o[h], m = n.indexOf(f, c);
55
+ if (m === -1) return -1;
56
+ i !== -1 && (p += m - i - 1), i = m, c = m + 1, s++;
57
+ }
58
+ return s === o.length ? 100 - p : -1;
59
+ }
60
+ /** Map PaletteCommand → CommandItem (category → group). */
61
+ _toItem(t, e, n = "") {
62
+ const o = {
63
+ id: t.id,
64
+ label: t.label,
65
+ group: e ?? t.category ?? "General"
66
+ };
67
+ return t.shortcut !== void 0 && (o.shortcut = t.shortcut), t.icon !== void 0 && (o.icon = t.icon), n && (o.keywords = [n]), o;
68
+ }
69
+ /** Build the filtered + ordered + recent-prepended item list to hand to cg-command. */
70
+ get _items() {
71
+ const t = this._query.trim(), e = this.commands, n = t ? [] : this._readRecent(), o = new Map(e.map((s) => [s.id, s])), r = n.map((s) => o.get(s)).filter((s) => !!s).map((s) => this._toItem(s, "Recent", t));
72
+ let c;
73
+ if (t)
74
+ c = e.map((i) => ({ c: i, s: this._score(i.label, t) })).filter((i) => i.s >= 0).sort((i, p) => p.s - i.s).map((i) => i.c);
75
+ else {
76
+ const s = new Set(n);
77
+ c = e.filter((i) => !s.has(i.id));
78
+ }
79
+ return [...r, ...c.map((s) => this._toItem(s, void 0, t))];
80
+ }
81
+ render() {
82
+ return this.open ? v`
83
+ <cg-command
84
+ ?open=${this.open}
85
+ .placeholder=${this.placeholder}
86
+ .commands=${this._items}
87
+ @cg-command-select=${this._onSelect}
88
+ @cg-command-close=${this._onClose}
89
+ @cg-command-input=${this._onInput}
90
+ ></cg-command>
91
+ ` : y;
92
+ }
93
+ };
94
+ a.styles = [E, _`
95
+ :host { display: contents; }
96
+ :host([hidden]) { display: none; }
97
+ `];
98
+ l([
99
+ d({ reflect: !0 })
100
+ ], a.prototype, "rounded", 2);
101
+ l([
102
+ d({ type: Array })
103
+ ], a.prototype, "commands", 2);
104
+ l([
105
+ d({ type: Boolean, reflect: !0 })
106
+ ], a.prototype, "open", 2);
107
+ l([
108
+ d({ type: String })
109
+ ], a.prototype, "placeholder", 2);
110
+ l([
111
+ b()
112
+ ], a.prototype, "_query", 2);
113
+ a = l([
114
+ w("ai-command-palette")
115
+ ], a);
116
+ export {
117
+ a as AiCommandPalette
118
+ };
119
+ //# sourceMappingURL=ai-command-palette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-command-palette.js","sources":["../../../src/components/ai-command-palette/ai-command-palette.ts"],"sourcesContent":["/**\n * @element ai-command-palette\n * AI-flavored command palette — thin wrapper around <cg-command> adding fuzzy\n * search, recent commands history, and category badges.\n *\n * @example\n * ```html\n * <ai-command-palette\n * .commands=${[\n * {id:'new-chat', label:'New Chat', shortcut:'Ctrl+N', category:'AI'},\n * {id:'export', label:'Export Data', icon:'[box icon]', category:'Data'}\n * ]}\n * open\n * ></ai-command-palette>\n * ```\n *\n * @fires {CustomEvent<{id: string, label: string}>} ai-command-select - Command selected\n * @fires {CustomEvent} ai-command-close - Palette closed (Escape or overlay click)\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock } from '../../styles/index.js';\nimport '../cg-command/cg-command.js';\nimport type { CommandItem } from '../cg-command/cg-command.js';\n\nexport interface PaletteCommand {\n id: string;\n label: string;\n shortcut?: string;\n icon?: string;\n category?: string;\n}\n\nconst RECENT_STORAGE_KEY = 'cognivo:ai-command-palette:recent';\nconst RECENT_LIMIT = 5;\n\n@customElement('ai-command-palette')\nexport class AiCommandPalette extends LitElement {\n static override styles = [hostBlock, css`\n :host { display: contents; }\n :host([hidden]) { display: none; }\n `];\n\n @property({ reflect: true }) rounded: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'lg';\n @property({ type: Array }) commands: PaletteCommand[] = [];\n @property({ type: Boolean, reflect: true }) open = false;\n @property({ type: String }) placeholder = 'Type a command\\u2026';\n\n @state() private _query = '';\n\n private _readRecent(): string[] {\n try {\n const raw = globalThis.localStorage?.getItem(RECENT_STORAGE_KEY);\n const parsed = raw ? JSON.parse(raw) : [];\n return Array.isArray(parsed) ? parsed.filter((x): x is string => typeof x === 'string') : [];\n } catch {\n return [];\n }\n }\n\n private _writeRecent(id: string): void {\n try {\n const prev = this._readRecent().filter(x => x !== id);\n prev.unshift(id);\n globalThis.localStorage?.setItem(RECENT_STORAGE_KEY, JSON.stringify(prev.slice(0, RECENT_LIMIT)));\n } catch {\n /* ignore quota / privacy mode */\n }\n }\n\n /** Fuzzy score: substring match (strong), then in-order character match (weak). Returns -1 if no match. */\n private _score(label: string, q: string): number {\n if (!q) return 0;\n const l = label.toLowerCase();\n const needle = q.toLowerCase();\n const idx = l.indexOf(needle);\n if (idx !== -1) return 1000 - idx;\n let li = 0, matched = 0, lastHit = -1, gaps = 0;\n for (let i = 0; i < needle.length; i++) {\n const ch = needle[i]!;\n const found = l.indexOf(ch, li);\n if (found === -1) return -1;\n if (lastHit !== -1) gaps += found - lastHit - 1;\n lastHit = found;\n li = found + 1;\n matched++;\n }\n return matched === needle.length ? 100 - gaps : -1;\n }\n\n /** Map PaletteCommand → CommandItem (category → group). */\n private _toItem(c: PaletteCommand, groupOverride?: string, query = ''): CommandItem {\n // Inject the active query as a keyword so cg-command's internal substring\n // filter passes through items we've already matched via fuzzy scoring.\n const item: CommandItem = {\n id: c.id,\n label: c.label,\n group: groupOverride ?? c.category ?? 'General',\n };\n if (c.shortcut !== undefined) item.shortcut = c.shortcut;\n if (c.icon !== undefined) item.icon = c.icon;\n if (query) item.keywords = [query];\n return item;\n }\n\n /** Build the filtered + ordered + recent-prepended item list to hand to cg-command. */\n private get _items(): CommandItem[] {\n const q = this._query.trim();\n const base = this.commands;\n\n // Recent group (only when no active query)\n const recentIds = q ? [] : this._readRecent();\n const byId = new Map(base.map(c => [c.id, c]));\n const recentItems: CommandItem[] = recentIds\n .map(id => byId.get(id))\n .filter((c): c is PaletteCommand => !!c)\n .map(c => this._toItem(c, 'Recent', q));\n\n let rest: PaletteCommand[];\n if (q) {\n const scored = base\n .map(c => ({ c, s: this._score(c.label, q) }))\n .filter(x => x.s >= 0)\n .sort((a, b) => b.s - a.s);\n rest = scored.map(x => x.c);\n } else {\n const recentSet = new Set(recentIds);\n rest = base.filter(c => !recentSet.has(c.id));\n }\n\n return [...recentItems, ...rest.map(c => this._toItem(c, undefined, q))];\n }\n\n private _onSelect = (e: Event): void => {\n const ev = e as CustomEvent<{ id: string; command: CommandItem }>;\n e.stopPropagation();\n const id = ev.detail?.id;\n const cmd = this.commands.find(c => c.id === id);\n if (!cmd) return;\n this._writeRecent(id);\n this.open = false;\n this.dispatchEvent(new CustomEvent('ai-command-select', {\n detail: { id: cmd.id, label: cmd.label },\n bubbles: true,\n composed: true,\n }));\n };\n\n private _onClose = (e: Event): void => {\n e.stopPropagation();\n if (this.open) this.open = false;\n this._query = '';\n this.dispatchEvent(new CustomEvent('ai-command-close', {\n bubbles: true,\n composed: true,\n }));\n };\n\n private _onInput = (e: Event): void => {\n const ev = e as CustomEvent<{ value: string }>;\n e.stopPropagation();\n this._query = ev.detail?.value ?? '';\n };\n\n override render() {\n if (!this.open) return nothing;\n return html`\n <cg-command\n ?open=${this.open}\n .placeholder=${this.placeholder}\n .commands=${this._items}\n @cg-command-select=${this._onSelect}\n @cg-command-close=${this._onClose}\n @cg-command-input=${this._onInput}\n ></cg-command>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ai-command-palette': AiCommandPalette;\n }\n}\n"],"names":["RECENT_STORAGE_KEY","RECENT_LIMIT","AiCommandPalette","LitElement","e","ev","id","cmd","c","raw","parsed","x","prev","label","q","l","needle","idx","li","matched","lastHit","gaps","i","ch","found","groupOverride","query","item","base","recentIds","byId","recentItems","rest","a","b","recentSet","html","nothing","hostBlock","css","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class AiConfidenceBadge extends LitElement {
3
+ static styles: import('lit').CSSResult[];
4
+ /** Confidence score 0-1. */
5
+ score: number;
6
+ /** Show percentage or level name in the inline label. */
7
+ showPercentage: boolean;
8
+ /** Size variant. */
9
+ size: 'sm' | 'md' | 'lg';
10
+ /** Tooltip explanation text. */
11
+ explanation: string;
12
+ /** History array of scores (0-1) for sparkline. */
13
+ history: number[];
14
+ /** High-confidence threshold (default 0.8). */
15
+ highThreshold: number;
16
+ /** Low-confidence threshold (default 0.5). Below this = "low". */
17
+ lowThreshold: number;
18
+ private _getLevel;
19
+ private _getIconName;
20
+ private _getProgressVariant;
21
+ private _getSparkColor;
22
+ private _renderSparkline;
23
+ private _renderInner;
24
+ render(): import('lit').TemplateResult<1>;
25
+ }
26
+ declare global {
27
+ interface HTMLElementTagNameMap {
28
+ 'ai-confidence-badge': AiConfidenceBadge;
29
+ }
30
+ }
31
+ //# sourceMappingURL=ai-confidence-badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-confidence-badge.d.ts","sourceRoot":"","sources":["../../../src/components/ai-confidence-badge/ai-confidence-badge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAGrD,OAAO,uBAAuB,CAAC;AAC/B,OAAO,6BAA6B,CAAC;AACrC,OAAO,uCAAuC,CAAC;AAE/C,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,4BA+FnB;IAEH,4BAA4B;IACA,KAAK,EAAE,MAAM,CAAQ;IAEjD,yDAAyD;IACE,cAAc,EAAE,OAAO,CAAQ;IAE1F,oBAAoB;IACuB,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAE3E,gCAAgC;IACJ,WAAW,EAAE,MAAM,CAAM;IAErD,mDAAmD;IACxB,OAAO,EAAE,MAAM,EAAE,CAAM;IAElD,+CAA+C;IACU,aAAa,EAAE,MAAM,CAAO;IAErF,kEAAkE;IACV,YAAY,EAAE,MAAM,CAAO;IAInF,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,YAAY;IA+BX,MAAM;CAiBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,iBAAiB,CAAC;KAC1C;CACF"}