@cognivo/components 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) hide show
  1. package/dist/chunks/focus-trap-vlQwKK-3.js +82 -0
  2. package/dist/chunks/focus-trap-vlQwKK-3.js.map +1 -0
  3. package/dist/chunks/{premium.css-9I4kHrsl.js → premium.css-DHekUEUt.js} +25 -25
  4. package/dist/chunks/{premium.css-9I4kHrsl.js.map → premium.css-DHekUEUt.js.map} +1 -1
  5. package/dist/cognivo.min.js +3375 -5270
  6. package/dist/cognivo.min.js.map +1 -1
  7. package/dist/components/ai-ab-test/ai-ab-test.js +1 -1
  8. package/dist/components/ai-accessibility-report/ai-accessibility-report.d.ts.map +1 -1
  9. package/dist/components/ai-accessibility-report/ai-accessibility-report.js +14 -13
  10. package/dist/components/ai-accessibility-report/ai-accessibility-report.js.map +1 -1
  11. package/dist/components/ai-action-preview/ai-action-preview.d.ts.map +1 -1
  12. package/dist/components/ai-action-preview/ai-action-preview.js +15 -14
  13. package/dist/components/ai-action-preview/ai-action-preview.js.map +1 -1
  14. package/dist/components/ai-agent-card/ai-agent-card.js +1 -1
  15. package/dist/components/ai-agent-steps/ai-agent-steps.d.ts +8 -21
  16. package/dist/components/ai-agent-steps/ai-agent-steps.d.ts.map +1 -1
  17. package/dist/components/ai-agent-steps/ai-agent-steps.js +85 -139
  18. package/dist/components/ai-agent-steps/ai-agent-steps.js.map +1 -1
  19. package/dist/components/ai-alert-card/ai-alert-card.js +5 -5
  20. package/dist/components/ai-alert-card/ai-alert-card.js.map +1 -1
  21. package/dist/components/ai-analytics-chart/ai-analytics-chart.d.ts +0 -13
  22. package/dist/components/ai-analytics-chart/ai-analytics-chart.d.ts.map +1 -1
  23. package/dist/components/ai-analytics-chart/ai-analytics-chart.js +75 -125
  24. package/dist/components/ai-analytics-chart/ai-analytics-chart.js.map +1 -1
  25. package/dist/components/ai-annotation/ai-annotation.js +2 -2
  26. package/dist/components/ai-annotation/ai-annotation.js.map +1 -1
  27. package/dist/components/ai-api-key-manager/ai-api-key-manager.d.ts +0 -9
  28. package/dist/components/ai-api-key-manager/ai-api-key-manager.d.ts.map +1 -1
  29. package/dist/components/ai-api-key-manager/ai-api-key-manager.js +115 -276
  30. package/dist/components/ai-api-key-manager/ai-api-key-manager.js.map +1 -1
  31. package/dist/components/ai-app-sidebar/ai-app-sidebar.js +13 -13
  32. package/dist/components/ai-app-sidebar/ai-app-sidebar.js.map +1 -1
  33. package/dist/components/ai-assistant-widget/ai-assistant-widget.d.ts.map +1 -1
  34. package/dist/components/ai-assistant-widget/ai-assistant-widget.js +5 -2
  35. package/dist/components/ai-assistant-widget/ai-assistant-widget.js.map +1 -1
  36. package/dist/components/ai-audio-player/ai-audio-player.d.ts.map +1 -1
  37. package/dist/components/ai-audio-player/ai-audio-player.js +23 -19
  38. package/dist/components/ai-audio-player/ai-audio-player.js.map +1 -1
  39. package/dist/components/ai-avatar/ai-avatar.js +1 -1
  40. package/dist/components/ai-badge/ai-badge.js +1 -1
  41. package/dist/components/ai-batch-progress/ai-batch-progress.js +6 -6
  42. package/dist/components/ai-batch-progress/ai-batch-progress.js.map +1 -1
  43. package/dist/components/ai-cache-indicator/ai-cache-indicator.d.ts +0 -13
  44. package/dist/components/ai-cache-indicator/ai-cache-indicator.d.ts.map +1 -1
  45. package/dist/components/ai-cache-indicator/ai-cache-indicator.js +90 -185
  46. package/dist/components/ai-cache-indicator/ai-cache-indicator.js.map +1 -1
  47. package/dist/components/ai-capture-flow/ai-capture-flow.js +21 -21
  48. package/dist/components/ai-capture-flow/ai-capture-flow.js.map +1 -1
  49. package/dist/components/ai-changelog/ai-changelog.js +26 -26
  50. package/dist/components/ai-changelog/ai-changelog.js.map +1 -1
  51. package/dist/components/ai-chart-summary/ai-chart-summary.d.ts +0 -6
  52. package/dist/components/ai-chart-summary/ai-chart-summary.d.ts.map +1 -1
  53. package/dist/components/ai-chart-summary/ai-chart-summary.js +100 -103
  54. package/dist/components/ai-chart-summary/ai-chart-summary.js.map +1 -1
  55. package/dist/components/ai-chat/ai-chat.d.ts.map +1 -1
  56. package/dist/components/ai-chat/ai-chat.js +9 -3
  57. package/dist/components/ai-chat/ai-chat.js.map +1 -1
  58. package/dist/components/ai-citation/ai-citation.d.ts +0 -6
  59. package/dist/components/ai-citation/ai-citation.d.ts.map +1 -1
  60. package/dist/components/ai-citation/ai-citation.js +64 -90
  61. package/dist/components/ai-citation/ai-citation.js.map +1 -1
  62. package/dist/components/ai-collaborative-editor/ai-collaborative-editor.d.ts +1 -27
  63. package/dist/components/ai-collaborative-editor/ai-collaborative-editor.d.ts.map +1 -1
  64. package/dist/components/ai-collaborative-editor/ai-collaborative-editor.js +114 -260
  65. package/dist/components/ai-collaborative-editor/ai-collaborative-editor.js.map +1 -1
  66. package/dist/components/ai-command-palette/ai-command-palette.js +1 -1
  67. package/dist/components/ai-confidence-badge/ai-confidence-badge.d.ts +11 -9
  68. package/dist/components/ai-confidence-badge/ai-confidence-badge.d.ts.map +1 -1
  69. package/dist/components/ai-confidence-badge/ai-confidence-badge.js +183 -101
  70. package/dist/components/ai-confidence-badge/ai-confidence-badge.js.map +1 -1
  71. package/dist/components/ai-confidence-slider/ai-confidence-slider.js +27 -27
  72. package/dist/components/ai-confidence-slider/ai-confidence-slider.js.map +1 -1
  73. package/dist/components/ai-consent-manager/ai-consent-manager.js +2 -2
  74. package/dist/components/ai-consent-manager/ai-consent-manager.js.map +1 -1
  75. package/dist/components/ai-context-window/ai-context-window.js +19 -19
  76. package/dist/components/ai-context-window/ai-context-window.js.map +1 -1
  77. package/dist/components/ai-copy-button/ai-copy-button.js +4 -4
  78. package/dist/components/ai-copy-button/ai-copy-button.js.map +1 -1
  79. package/dist/components/ai-cost-dashboard/ai-cost-dashboard.js +14 -14
  80. package/dist/components/ai-cost-dashboard/ai-cost-dashboard.js.map +1 -1
  81. package/dist/components/ai-data-card/ai-data-card.js +2 -2
  82. package/dist/components/ai-data-card/ai-data-card.js.map +1 -1
  83. package/dist/components/ai-data-lineage/ai-data-lineage.js +6 -6
  84. package/dist/components/ai-data-lineage/ai-data-lineage.js.map +1 -1
  85. package/dist/components/ai-data-preview/ai-data-preview.d.ts +0 -7
  86. package/dist/components/ai-data-preview/ai-data-preview.d.ts.map +1 -1
  87. package/dist/components/ai-data-preview/ai-data-preview.js +130 -267
  88. package/dist/components/ai-data-preview/ai-data-preview.js.map +1 -1
  89. package/dist/components/ai-data-table/ai-data-table.js +9 -9
  90. package/dist/components/ai-data-table/ai-data-table.js.map +1 -1
  91. package/dist/components/ai-debug-console/ai-debug-console.d.ts +1 -13
  92. package/dist/components/ai-debug-console/ai-debug-console.d.ts.map +1 -1
  93. package/dist/components/ai-debug-console/ai-debug-console.js +134 -340
  94. package/dist/components/ai-debug-console/ai-debug-console.js.map +1 -1
  95. package/dist/components/ai-detection-canvas/ai-detection-canvas.js +2 -2
  96. package/dist/components/ai-detection-canvas/ai-detection-canvas.js.map +1 -1
  97. package/dist/components/ai-diff-panel/ai-diff-panel.js +1 -1
  98. package/dist/components/ai-embedding-viz/ai-embedding-viz.js +4 -4
  99. package/dist/components/ai-embedding-viz/ai-embedding-viz.js.map +1 -1
  100. package/dist/components/ai-empty-state/ai-empty-state.js +1 -1
  101. package/dist/components/ai-error-boundary/ai-error-boundary.d.ts.map +1 -1
  102. package/dist/components/ai-error-boundary/ai-error-boundary.js +26 -21
  103. package/dist/components/ai-error-boundary/ai-error-boundary.js.map +1 -1
  104. package/dist/components/ai-eval-scorecard/ai-eval-scorecard.js +5 -5
  105. package/dist/components/ai-eval-scorecard/ai-eval-scorecard.js.map +1 -1
  106. package/dist/components/ai-feature-flag/ai-feature-flag.d.ts +0 -14
  107. package/dist/components/ai-feature-flag/ai-feature-flag.d.ts.map +1 -1
  108. package/dist/components/ai-feature-flag/ai-feature-flag.js +181 -322
  109. package/dist/components/ai-feature-flag/ai-feature-flag.js.map +1 -1
  110. package/dist/components/ai-feedback/ai-feedback.d.ts.map +1 -1
  111. package/dist/components/ai-feedback/ai-feedback.js +10 -5
  112. package/dist/components/ai-feedback/ai-feedback.js.map +1 -1
  113. package/dist/components/ai-file-upload/ai-file-upload.js +1 -1
  114. package/dist/components/ai-form-generator/ai-form-generator.js +1 -1
  115. package/dist/components/ai-guardrail/ai-guardrail.js +2 -2
  116. package/dist/components/ai-guardrail/ai-guardrail.js.map +1 -1
  117. package/dist/components/ai-heatmap/ai-heatmap.js +1 -1
  118. package/dist/components/ai-insight-card/ai-insight-card.js +4 -4
  119. package/dist/components/ai-insight-card/ai-insight-card.js.map +1 -1
  120. package/dist/components/ai-json-viewer/ai-json-viewer.js +13 -13
  121. package/dist/components/ai-json-viewer/ai-json-viewer.js.map +1 -1
  122. package/dist/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.js +24 -24
  123. package/dist/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.js.map +1 -1
  124. package/dist/components/ai-kpi-grid/ai-kpi-grid.js +2 -2
  125. package/dist/components/ai-kpi-grid/ai-kpi-grid.js.map +1 -1
  126. package/dist/components/ai-labeling-board/ai-labeling-board.js +11 -11
  127. package/dist/components/ai-labeling-board/ai-labeling-board.js.map +1 -1
  128. package/dist/components/ai-memory-panel/ai-memory-panel.js +7 -7
  129. package/dist/components/ai-memory-panel/ai-memory-panel.js.map +1 -1
  130. package/dist/components/ai-model-comparison/ai-model-comparison.js +2 -2
  131. package/dist/components/ai-model-comparison/ai-model-comparison.js.map +1 -1
  132. package/dist/components/ai-model-selector/ai-model-selector.js +7 -7
  133. package/dist/components/ai-model-selector/ai-model-selector.js.map +1 -1
  134. package/dist/components/ai-notification-center/ai-notification-center.js +27 -27
  135. package/dist/components/ai-notification-center/ai-notification-center.js.map +1 -1
  136. package/dist/components/ai-onboarding/ai-onboarding.js +5 -5
  137. package/dist/components/ai-onboarding/ai-onboarding.js.map +1 -1
  138. package/dist/components/ai-permission-gate/ai-permission-gate.js +1 -1
  139. package/dist/components/ai-personalization-dash/ai-personalization-dash.js +1 -1
  140. package/dist/components/ai-presence/ai-presence.js +25 -25
  141. package/dist/components/ai-presence/ai-presence.js.map +1 -1
  142. package/dist/components/ai-progress-steps/ai-progress-steps.js +11 -11
  143. package/dist/components/ai-progress-steps/ai-progress-steps.js.map +1 -1
  144. package/dist/components/ai-prompt-editor/ai-prompt-editor.js +1 -1
  145. package/dist/components/ai-prompt-template/ai-prompt-template.js +29 -29
  146. package/dist/components/ai-prompt-template/ai-prompt-template.js.map +1 -1
  147. package/dist/components/ai-rag-panel/ai-rag-panel.js +4 -4
  148. package/dist/components/ai-rag-panel/ai-rag-panel.js.map +1 -1
  149. package/dist/components/ai-reasoning-tree/ai-reasoning-tree.js +16 -16
  150. package/dist/components/ai-reasoning-tree/ai-reasoning-tree.js.map +1 -1
  151. package/dist/components/ai-result-panel/ai-result-panel.js +1 -1
  152. package/dist/components/ai-reveal-animation/ai-reveal-animation.js +3 -3
  153. package/dist/components/ai-reveal-animation/ai-reveal-animation.js.map +1 -1
  154. package/dist/components/ai-reward-signal/ai-reward-signal.js +1 -1
  155. package/dist/components/ai-rich-message/ai-rich-message.d.ts.map +1 -1
  156. package/dist/components/ai-rich-message/ai-rich-message.js +37 -30
  157. package/dist/components/ai-rich-message/ai-rich-message.js.map +1 -1
  158. package/dist/components/ai-scenario-panel/ai-scenario-panel.js +10 -10
  159. package/dist/components/ai-scenario-panel/ai-scenario-panel.js.map +1 -1
  160. package/dist/components/ai-search/ai-search.js +1 -1
  161. package/dist/components/ai-segmentation-viewer/ai-segmentation-viewer.js +3 -3
  162. package/dist/components/ai-segmentation-viewer/ai-segmentation-viewer.js.map +1 -1
  163. package/dist/components/ai-sidebar/ai-sidebar.js +1 -1
  164. package/dist/components/ai-similarity-card/ai-similarity-card.js +1 -1
  165. package/dist/components/ai-source-graph/ai-source-graph.js +2 -2
  166. package/dist/components/ai-source-graph/ai-source-graph.js.map +1 -1
  167. package/dist/components/ai-status-page/ai-status-page.js +15 -15
  168. package/dist/components/ai-status-page/ai-status-page.js.map +1 -1
  169. package/dist/components/ai-streaming-text/ai-streaming-text.js +1 -1
  170. package/dist/components/ai-test-runner/ai-test-runner.d.ts +0 -8
  171. package/dist/components/ai-test-runner/ai-test-runner.d.ts.map +1 -1
  172. package/dist/components/ai-test-runner/ai-test-runner.js +100 -257
  173. package/dist/components/ai-test-runner/ai-test-runner.js.map +1 -1
  174. package/dist/components/ai-thinking/ai-thinking.js +1 -1
  175. package/dist/components/ai-timeline/ai-timeline.js +2 -2
  176. package/dist/components/ai-timeline/ai-timeline.js.map +1 -1
  177. package/dist/components/ai-token-tracker/ai-token-tracker.js +3 -3
  178. package/dist/components/ai-token-tracker/ai-token-tracker.js.map +1 -1
  179. package/dist/components/ai-tool-card-resolver/ai-tool-card-resolver.js +23 -23
  180. package/dist/components/ai-tool-card-resolver/ai-tool-card-resolver.js.map +1 -1
  181. package/dist/components/ai-tool-indicator/ai-tool-indicator.js +3 -3
  182. package/dist/components/ai-tool-indicator/ai-tool-indicator.js.map +1 -1
  183. package/dist/components/ai-transform-slider/ai-transform-slider.js +1 -1
  184. package/dist/components/ai-translation-panel/ai-translation-panel.js +2 -2
  185. package/dist/components/ai-translation-panel/ai-translation-panel.js.map +1 -1
  186. package/dist/components/ai-usage-meter/ai-usage-meter.js +1 -1
  187. package/dist/components/ai-validation-checklist/ai-validation-checklist.d.ts +1 -11
  188. package/dist/components/ai-validation-checklist/ai-validation-checklist.d.ts.map +1 -1
  189. package/dist/components/ai-validation-checklist/ai-validation-checklist.js +133 -187
  190. package/dist/components/ai-validation-checklist/ai-validation-checklist.js.map +1 -1
  191. package/dist/components/ai-version-selector/ai-version-selector.d.ts +0 -4
  192. package/dist/components/ai-version-selector/ai-version-selector.d.ts.map +1 -1
  193. package/dist/components/ai-version-selector/ai-version-selector.js +189 -210
  194. package/dist/components/ai-version-selector/ai-version-selector.js.map +1 -1
  195. package/dist/components/ai-voice-panel/ai-voice-panel.js +28 -28
  196. package/dist/components/ai-voice-panel/ai-voice-panel.js.map +1 -1
  197. package/dist/components/ai-webhook-config/ai-webhook-config.d.ts +0 -17
  198. package/dist/components/ai-webhook-config/ai-webhook-config.d.ts.map +1 -1
  199. package/dist/components/ai-webhook-config/ai-webhook-config.js +281 -221
  200. package/dist/components/ai-webhook-config/ai-webhook-config.js.map +1 -1
  201. package/dist/components/ai-workflow-builder/ai-workflow-builder.js +2 -2
  202. package/dist/components/ai-workflow-builder/ai-workflow-builder.js.map +1 -1
  203. package/dist/components/bias-anchoring/bias-anchoring.js +1 -1
  204. package/dist/components/bias-authority/bias-authority.js +1 -1
  205. package/dist/components/bias-commitment/bias-commitment.js +1 -1
  206. package/dist/components/bias-reciprocity/bias-reciprocity.js +1 -1
  207. package/dist/components/bias-scarcity/bias-scarcity.js +1 -1
  208. package/dist/components/bias-social-proof/bias-social-proof.js +1 -1
  209. package/dist/components/cg-accordion/cg-accordion.d.ts.map +1 -1
  210. package/dist/components/cg-accordion/cg-accordion.js +51 -43
  211. package/dist/components/cg-accordion/cg-accordion.js.map +1 -1
  212. package/dist/components/cg-alert-dialog/cg-alert-dialog.js +18 -18
  213. package/dist/components/cg-alert-dialog/cg-alert-dialog.js.map +1 -1
  214. package/dist/components/cg-aspect-ratio/cg-aspect-ratio.d.ts.map +1 -1
  215. package/dist/components/cg-aspect-ratio/cg-aspect-ratio.js +25 -21
  216. package/dist/components/cg-aspect-ratio/cg-aspect-ratio.js.map +1 -1
  217. package/dist/components/cg-autocomplete/cg-autocomplete.d.ts +1 -0
  218. package/dist/components/cg-autocomplete/cg-autocomplete.d.ts.map +1 -1
  219. package/dist/components/cg-autocomplete/cg-autocomplete.js +59 -43
  220. package/dist/components/cg-autocomplete/cg-autocomplete.js.map +1 -1
  221. package/dist/components/cg-avatar/cg-avatar.d.ts.map +1 -1
  222. package/dist/components/cg-avatar/cg-avatar.js +24 -24
  223. package/dist/components/cg-avatar/cg-avatar.js.map +1 -1
  224. package/dist/components/cg-avatar-group/cg-avatar-group.d.ts.map +1 -1
  225. package/dist/components/cg-avatar-group/cg-avatar-group.js +18 -12
  226. package/dist/components/cg-avatar-group/cg-avatar-group.js.map +1 -1
  227. package/dist/components/cg-badge/cg-badge.d.ts.map +1 -1
  228. package/dist/components/cg-badge/cg-badge.js +26 -20
  229. package/dist/components/cg-badge/cg-badge.js.map +1 -1
  230. package/dist/components/cg-badge-group/cg-badge-group.d.ts +0 -1
  231. package/dist/components/cg-badge-group/cg-badge-group.d.ts.map +1 -1
  232. package/dist/components/cg-badge-group/cg-badge-group.js +31 -29
  233. package/dist/components/cg-badge-group/cg-badge-group.js.map +1 -1
  234. package/dist/components/cg-breadcrumbs/cg-breadcrumbs.js +21 -21
  235. package/dist/components/cg-breadcrumbs/cg-breadcrumbs.js.map +1 -1
  236. package/dist/components/cg-button/cg-button.d.ts +5 -71
  237. package/dist/components/cg-button/cg-button.d.ts.map +1 -1
  238. package/dist/components/cg-button/cg-button.js +63 -172
  239. package/dist/components/cg-button/cg-button.js.map +1 -1
  240. package/dist/components/cg-button-group/cg-button-group.d.ts +2 -0
  241. package/dist/components/cg-button-group/cg-button-group.d.ts.map +1 -1
  242. package/dist/components/cg-button-group/cg-button-group.js +43 -29
  243. package/dist/components/cg-button-group/cg-button-group.js.map +1 -1
  244. package/dist/components/cg-calendar/cg-calendar.d.ts +4 -0
  245. package/dist/components/cg-calendar/cg-calendar.d.ts.map +1 -1
  246. package/dist/components/cg-calendar/cg-calendar.js +28 -12
  247. package/dist/components/cg-calendar/cg-calendar.js.map +1 -1
  248. package/dist/components/cg-callout/cg-callout.d.ts.map +1 -1
  249. package/dist/components/cg-callout/cg-callout.js +49 -48
  250. package/dist/components/cg-callout/cg-callout.js.map +1 -1
  251. package/dist/components/cg-card/cg-card.d.ts +9 -22
  252. package/dist/components/cg-card/cg-card.d.ts.map +1 -1
  253. package/dist/components/cg-card/cg-card.js +28 -56
  254. package/dist/components/cg-card/cg-card.js.map +1 -1
  255. package/dist/components/cg-carousel/cg-carousel.d.ts.map +1 -1
  256. package/dist/components/cg-carousel/cg-carousel.js +19 -13
  257. package/dist/components/cg-carousel/cg-carousel.js.map +1 -1
  258. package/dist/components/cg-chart/cg-chart.d.ts.map +1 -1
  259. package/dist/components/cg-chart/cg-chart.js +63 -58
  260. package/dist/components/cg-chart/cg-chart.js.map +1 -1
  261. package/dist/components/cg-checkbox/cg-checkbox.d.ts +0 -6
  262. package/dist/components/cg-checkbox/cg-checkbox.d.ts.map +1 -1
  263. package/dist/components/cg-checkbox/cg-checkbox.js +51 -51
  264. package/dist/components/cg-checkbox/cg-checkbox.js.map +1 -1
  265. package/dist/components/cg-chip/cg-chip.js +31 -31
  266. package/dist/components/cg-chip/cg-chip.js.map +1 -1
  267. package/dist/components/cg-code-block/cg-code-block.d.ts.map +1 -1
  268. package/dist/components/cg-code-block/cg-code-block.js +36 -34
  269. package/dist/components/cg-code-block/cg-code-block.js.map +1 -1
  270. package/dist/components/cg-collapsible/cg-collapsible.d.ts.map +1 -1
  271. package/dist/components/cg-collapsible/cg-collapsible.js +23 -18
  272. package/dist/components/cg-collapsible/cg-collapsible.js.map +1 -1
  273. package/dist/components/cg-color-picker/cg-color-picker.d.ts +3 -0
  274. package/dist/components/cg-color-picker/cg-color-picker.d.ts.map +1 -1
  275. package/dist/components/cg-color-picker/cg-color-picker.js +189 -91
  276. package/dist/components/cg-color-picker/cg-color-picker.js.map +1 -1
  277. package/dist/components/cg-combobox/cg-combobox.d.ts.map +1 -1
  278. package/dist/components/cg-combobox/cg-combobox.js +13 -6
  279. package/dist/components/cg-combobox/cg-combobox.js.map +1 -1
  280. package/dist/components/cg-command/cg-command.d.ts.map +1 -1
  281. package/dist/components/cg-command/cg-command.js +52 -45
  282. package/dist/components/cg-command/cg-command.js.map +1 -1
  283. package/dist/components/cg-context-menu/cg-context-menu.js +1 -1
  284. package/dist/components/cg-date-picker/cg-date-picker.d.ts.map +1 -1
  285. package/dist/components/cg-date-picker/cg-date-picker.js +36 -34
  286. package/dist/components/cg-date-picker/cg-date-picker.js.map +1 -1
  287. package/dist/components/cg-date-range-picker/cg-date-range-picker.d.ts +2 -0
  288. package/dist/components/cg-date-range-picker/cg-date-range-picker.d.ts.map +1 -1
  289. package/dist/components/cg-date-range-picker/cg-date-range-picker.js +12 -8
  290. package/dist/components/cg-date-range-picker/cg-date-range-picker.js.map +1 -1
  291. package/dist/components/cg-date-time-picker/cg-date-time-picker.d.ts.map +1 -1
  292. package/dist/components/cg-date-time-picker/cg-date-time-picker.js +3 -1
  293. package/dist/components/cg-date-time-picker/cg-date-time-picker.js.map +1 -1
  294. package/dist/components/cg-drawer/cg-drawer.js +3 -3
  295. package/dist/components/cg-drawer/cg-drawer.js.map +1 -1
  296. package/dist/components/cg-dropdown/cg-dropdown.d.ts.map +1 -1
  297. package/dist/components/cg-dropdown/cg-dropdown.js +1 -2
  298. package/dist/components/cg-dropdown/cg-dropdown.js.map +1 -1
  299. package/dist/components/cg-empty-state/cg-empty-state.d.ts +3 -24
  300. package/dist/components/cg-empty-state/cg-empty-state.d.ts.map +1 -1
  301. package/dist/components/cg-empty-state/cg-empty-state.js +51 -74
  302. package/dist/components/cg-empty-state/cg-empty-state.js.map +1 -1
  303. package/dist/components/cg-file-input/cg-file-input.d.ts.map +1 -1
  304. package/dist/components/cg-file-input/cg-file-input.js +9 -10
  305. package/dist/components/cg-file-input/cg-file-input.js.map +1 -1
  306. package/dist/components/cg-focus-scope/cg-focus-scope.js +1 -1
  307. package/dist/components/cg-follow-up/cg-follow-up.d.ts.map +1 -1
  308. package/dist/components/cg-follow-up/cg-follow-up.js +6 -7
  309. package/dist/components/cg-follow-up/cg-follow-up.js.map +1 -1
  310. package/dist/components/cg-form/cg-form.js +17 -17
  311. package/dist/components/cg-form/cg-form.js.map +1 -1
  312. package/dist/components/cg-hover-card/cg-hover-card.d.ts +1 -0
  313. package/dist/components/cg-hover-card/cg-hover-card.d.ts.map +1 -1
  314. package/dist/components/cg-hover-card/cg-hover-card.js +37 -32
  315. package/dist/components/cg-hover-card/cg-hover-card.js.map +1 -1
  316. package/dist/components/cg-icon/cg-icon.d.ts.map +1 -1
  317. package/dist/components/cg-icon/cg-icon.js +44 -37
  318. package/dist/components/cg-icon/cg-icon.js.map +1 -1
  319. package/dist/components/cg-image/cg-image.js +2 -2
  320. package/dist/components/cg-image/cg-image.js.map +1 -1
  321. package/dist/components/cg-image-block/cg-image-block.js +3 -3
  322. package/dist/components/cg-image-block/cg-image-block.js.map +1 -1
  323. package/dist/components/cg-image-gallery/cg-image-gallery.js +20 -20
  324. package/dist/components/cg-image-gallery/cg-image-gallery.js.map +1 -1
  325. package/dist/components/cg-input/cg-input.js +3 -3
  326. package/dist/components/cg-input/cg-input.js.map +1 -1
  327. package/dist/components/cg-kbd/cg-kbd.d.ts.map +1 -1
  328. package/dist/components/cg-kbd/cg-kbd.js +26 -24
  329. package/dist/components/cg-kbd/cg-kbd.js.map +1 -1
  330. package/dist/components/cg-label/cg-label.d.ts +4 -1
  331. package/dist/components/cg-label/cg-label.d.ts.map +1 -1
  332. package/dist/components/cg-label/cg-label.js +44 -41
  333. package/dist/components/cg-label/cg-label.js.map +1 -1
  334. package/dist/components/cg-link/cg-link.js +23 -23
  335. package/dist/components/cg-link/cg-link.js.map +1 -1
  336. package/dist/components/cg-list/cg-list.js +5 -5
  337. package/dist/components/cg-list/cg-list.js.map +1 -1
  338. package/dist/components/cg-listbox/cg-listbox.d.ts.map +1 -1
  339. package/dist/components/cg-listbox/cg-listbox.js +46 -40
  340. package/dist/components/cg-listbox/cg-listbox.js.map +1 -1
  341. package/dist/components/cg-markdown/cg-markdown.d.ts +2 -0
  342. package/dist/components/cg-markdown/cg-markdown.d.ts.map +1 -1
  343. package/dist/components/cg-markdown/cg-markdown.js +171 -121
  344. package/dist/components/cg-markdown/cg-markdown.js.map +1 -1
  345. package/dist/components/cg-menubar/cg-menubar.d.ts +6 -0
  346. package/dist/components/cg-menubar/cg-menubar.d.ts.map +1 -1
  347. package/dist/components/cg-menubar/cg-menubar.js +59 -47
  348. package/dist/components/cg-menubar/cg-menubar.js.map +1 -1
  349. package/dist/components/cg-meter/cg-meter.d.ts.map +1 -1
  350. package/dist/components/cg-meter/cg-meter.js +76 -76
  351. package/dist/components/cg-meter/cg-meter.js.map +1 -1
  352. package/dist/components/cg-metric-card/cg-metric-card.d.ts.map +1 -1
  353. package/dist/components/cg-metric-card/cg-metric-card.js +65 -68
  354. package/dist/components/cg-metric-card/cg-metric-card.js.map +1 -1
  355. package/dist/components/cg-modal/cg-modal.d.ts +3 -0
  356. package/dist/components/cg-modal/cg-modal.d.ts.map +1 -1
  357. package/dist/components/cg-modal/cg-modal.js +82 -83
  358. package/dist/components/cg-modal/cg-modal.js.map +1 -1
  359. package/dist/components/cg-navbar/cg-navbar.d.ts +1 -1
  360. package/dist/components/cg-navbar/cg-navbar.d.ts.map +1 -1
  361. package/dist/components/cg-navbar/cg-navbar.js +64 -55
  362. package/dist/components/cg-navbar/cg-navbar.js.map +1 -1
  363. package/dist/components/cg-navigation-menu/cg-navigation-menu.d.ts +3 -0
  364. package/dist/components/cg-navigation-menu/cg-navigation-menu.d.ts.map +1 -1
  365. package/dist/components/cg-navigation-menu/cg-navigation-menu.js +38 -26
  366. package/dist/components/cg-navigation-menu/cg-navigation-menu.js.map +1 -1
  367. package/dist/components/cg-number-input/cg-number-input.d.ts +1 -0
  368. package/dist/components/cg-number-input/cg-number-input.d.ts.map +1 -1
  369. package/dist/components/cg-number-input/cg-number-input.js +90 -77
  370. package/dist/components/cg-number-input/cg-number-input.js.map +1 -1
  371. package/dist/components/cg-otp-input/cg-otp-input.d.ts.map +1 -1
  372. package/dist/components/cg-otp-input/cg-otp-input.js +70 -60
  373. package/dist/components/cg-otp-input/cg-otp-input.js.map +1 -1
  374. package/dist/components/cg-pagination/cg-pagination.d.ts +2 -0
  375. package/dist/components/cg-pagination/cg-pagination.d.ts.map +1 -1
  376. package/dist/components/cg-pagination/cg-pagination.js +50 -49
  377. package/dist/components/cg-pagination/cg-pagination.js.map +1 -1
  378. package/dist/components/cg-password-input/cg-password-input.d.ts.map +1 -1
  379. package/dist/components/cg-password-input/cg-password-input.js +42 -34
  380. package/dist/components/cg-password-input/cg-password-input.js.map +1 -1
  381. package/dist/components/cg-phone-input/cg-phone-input.d.ts.map +1 -1
  382. package/dist/components/cg-phone-input/cg-phone-input.js +18 -14
  383. package/dist/components/cg-phone-input/cg-phone-input.js.map +1 -1
  384. package/dist/components/cg-popover/cg-popover.d.ts +12 -2
  385. package/dist/components/cg-popover/cg-popover.d.ts.map +1 -1
  386. package/dist/components/cg-popover/cg-popover.js +90 -63
  387. package/dist/components/cg-popover/cg-popover.js.map +1 -1
  388. package/dist/components/cg-portal/cg-portal.d.ts.map +1 -1
  389. package/dist/components/cg-portal/cg-portal.js +42 -41
  390. package/dist/components/cg-portal/cg-portal.js.map +1 -1
  391. package/dist/components/cg-progress-bar/cg-progress-bar.d.ts.map +1 -1
  392. package/dist/components/cg-progress-bar/cg-progress-bar.js +25 -25
  393. package/dist/components/cg-progress-bar/cg-progress-bar.js.map +1 -1
  394. package/dist/components/cg-radio/cg-radio.d.ts +10 -0
  395. package/dist/components/cg-radio/cg-radio.d.ts.map +1 -1
  396. package/dist/components/cg-radio/cg-radio.js +59 -48
  397. package/dist/components/cg-radio/cg-radio.js.map +1 -1
  398. package/dist/components/cg-radio-group/cg-radio-group.d.ts +6 -0
  399. package/dist/components/cg-radio-group/cg-radio-group.d.ts.map +1 -1
  400. package/dist/components/cg-radio-group/cg-radio-group.js +50 -37
  401. package/dist/components/cg-radio-group/cg-radio-group.js.map +1 -1
  402. package/dist/components/cg-rating/cg-rating.d.ts.map +1 -1
  403. package/dist/components/cg-rating/cg-rating.js +56 -54
  404. package/dist/components/cg-rating/cg-rating.js.map +1 -1
  405. package/dist/components/cg-resizable/cg-resizable.d.ts +4 -1
  406. package/dist/components/cg-resizable/cg-resizable.d.ts.map +1 -1
  407. package/dist/components/cg-resizable/cg-resizable.js +45 -35
  408. package/dist/components/cg-resizable/cg-resizable.js.map +1 -1
  409. package/dist/components/cg-scroll-area/cg-scroll-area.d.ts +8 -0
  410. package/dist/components/cg-scroll-area/cg-scroll-area.d.ts.map +1 -1
  411. package/dist/components/cg-scroll-area/cg-scroll-area.js +64 -21
  412. package/dist/components/cg-scroll-area/cg-scroll-area.js.map +1 -1
  413. package/dist/components/cg-segmented-control/cg-segmented-control.d.ts +4 -0
  414. package/dist/components/cg-segmented-control/cg-segmented-control.d.ts.map +1 -1
  415. package/dist/components/cg-segmented-control/cg-segmented-control.js +75 -39
  416. package/dist/components/cg-segmented-control/cg-segmented-control.js.map +1 -1
  417. package/dist/components/cg-select/cg-select.d.ts +4 -2
  418. package/dist/components/cg-select/cg-select.d.ts.map +1 -1
  419. package/dist/components/cg-select/cg-select.js +96 -58
  420. package/dist/components/cg-select/cg-select.js.map +1 -1
  421. package/dist/components/cg-separator/cg-separator.d.ts +1 -2
  422. package/dist/components/cg-separator/cg-separator.d.ts.map +1 -1
  423. package/dist/components/cg-separator/cg-separator.js +5 -8
  424. package/dist/components/cg-separator/cg-separator.js.map +1 -1
  425. package/dist/components/cg-sheet/cg-sheet.d.ts +4 -0
  426. package/dist/components/cg-sheet/cg-sheet.d.ts.map +1 -1
  427. package/dist/components/cg-sheet/cg-sheet.js +80 -43
  428. package/dist/components/cg-sheet/cg-sheet.js.map +1 -1
  429. package/dist/components/cg-sidebar/cg-sidebar.d.ts.map +1 -1
  430. package/dist/components/cg-sidebar/cg-sidebar.js +82 -19
  431. package/dist/components/cg-sidebar/cg-sidebar.js.map +1 -1
  432. package/dist/components/cg-skeleton/cg-skeleton.d.ts +7 -1
  433. package/dist/components/cg-skeleton/cg-skeleton.d.ts.map +1 -1
  434. package/dist/components/cg-skeleton/cg-skeleton.js +61 -63
  435. package/dist/components/cg-skeleton/cg-skeleton.js.map +1 -1
  436. package/dist/components/cg-slider/cg-slider.d.ts.map +1 -1
  437. package/dist/components/cg-slider/cg-slider.js +80 -73
  438. package/dist/components/cg-slider/cg-slider.js.map +1 -1
  439. package/dist/components/cg-spinner/cg-spinner.d.ts.map +1 -1
  440. package/dist/components/cg-spinner/cg-spinner.js +10 -19
  441. package/dist/components/cg-spinner/cg-spinner.js.map +1 -1
  442. package/dist/components/cg-split-button/cg-split-button.d.ts.map +1 -1
  443. package/dist/components/cg-split-button/cg-split-button.js +64 -50
  444. package/dist/components/cg-split-button/cg-split-button.js.map +1 -1
  445. package/dist/components/cg-stack/cg-stack.js +1 -1
  446. package/dist/components/cg-steps/cg-steps.js +1 -1
  447. package/dist/components/cg-switch/cg-switch.d.ts +3 -0
  448. package/dist/components/cg-switch/cg-switch.d.ts.map +1 -1
  449. package/dist/components/cg-switch/cg-switch.js +39 -47
  450. package/dist/components/cg-switch/cg-switch.js.map +1 -1
  451. package/dist/components/cg-table/cg-table.d.ts +0 -7
  452. package/dist/components/cg-table/cg-table.d.ts.map +1 -1
  453. package/dist/components/cg-table/cg-table.js +50 -47
  454. package/dist/components/cg-table/cg-table.js.map +1 -1
  455. package/dist/components/cg-tabs/cg-tabs.js +1 -1
  456. package/dist/components/cg-tag-input/cg-tag-input.js +1 -1
  457. package/dist/components/cg-text/cg-text.js +1 -1
  458. package/dist/components/cg-textarea/cg-textarea.js +1 -1
  459. package/dist/components/cg-time-picker/cg-time-picker.js +1 -1
  460. package/dist/components/cg-toaster/cg-toaster.js +3 -3
  461. package/dist/components/cg-toaster/cg-toaster.js.map +1 -1
  462. package/dist/components/cg-toggle/cg-toggle.js +1 -1
  463. package/dist/components/cg-toggle-group/cg-toggle-group.js +1 -1
  464. package/dist/components/cg-tree-view/cg-tree-view.js +1 -1
  465. package/dist/foundation.d.ts +0 -16
  466. package/dist/foundation.d.ts.map +1 -1
  467. package/dist/foundation.js +174 -206
  468. package/dist/foundation.js.map +1 -1
  469. package/dist/index.d.ts +1 -17
  470. package/dist/index.d.ts.map +1 -1
  471. package/dist/index.js +100 -132
  472. package/dist/index.js.map +1 -1
  473. package/dist/utils/focus-trap.d.ts +19 -2
  474. package/dist/utils/focus-trap.d.ts.map +1 -1
  475. package/package.json +6 -810
  476. package/dist/chunks/focus-trap-BdRNhSPD.js +0 -53
  477. package/dist/chunks/focus-trap-BdRNhSPD.js.map +0 -1
  478. package/dist/components/cg-app-shell/cg-app-shell.d.ts +0 -54
  479. package/dist/components/cg-app-shell/cg-app-shell.d.ts.map +0 -1
  480. package/dist/components/cg-app-shell/cg-app-shell.js +0 -135
  481. package/dist/components/cg-app-shell/cg-app-shell.js.map +0 -1
  482. package/dist/components/cg-auth-shell/cg-auth-shell.d.ts +0 -61
  483. package/dist/components/cg-auth-shell/cg-auth-shell.d.ts.map +0 -1
  484. package/dist/components/cg-auth-shell/cg-auth-shell.js +0 -163
  485. package/dist/components/cg-auth-shell/cg-auth-shell.js.map +0 -1
  486. package/dist/components/cg-definition-list/cg-definition-list.d.ts +0 -99
  487. package/dist/components/cg-definition-list/cg-definition-list.d.ts.map +0 -1
  488. package/dist/components/cg-definition-list/cg-definition-list.js +0 -332
  489. package/dist/components/cg-definition-list/cg-definition-list.js.map +0 -1
  490. package/dist/components/cg-draggable/cg-draggable.d.ts +0 -53
  491. package/dist/components/cg-draggable/cg-draggable.d.ts.map +0 -1
  492. package/dist/components/cg-draggable/cg-draggable.js +0 -136
  493. package/dist/components/cg-draggable/cg-draggable.js.map +0 -1
  494. package/dist/components/cg-droppable/cg-droppable.d.ts +0 -57
  495. package/dist/components/cg-droppable/cg-droppable.d.ts.map +0 -1
  496. package/dist/components/cg-droppable/cg-droppable.js +0 -114
  497. package/dist/components/cg-droppable/cg-droppable.js.map +0 -1
  498. package/dist/components/cg-filter-bar/cg-filter-bar.d.ts +0 -50
  499. package/dist/components/cg-filter-bar/cg-filter-bar.d.ts.map +0 -1
  500. package/dist/components/cg-filter-bar/cg-filter-bar.js +0 -115
  501. package/dist/components/cg-filter-bar/cg-filter-bar.js.map +0 -1
  502. package/dist/components/cg-filter-chip/cg-filter-chip.d.ts +0 -55
  503. package/dist/components/cg-filter-chip/cg-filter-chip.d.ts.map +0 -1
  504. package/dist/components/cg-filter-chip/cg-filter-chip.js +0 -213
  505. package/dist/components/cg-filter-chip/cg-filter-chip.js.map +0 -1
  506. package/dist/components/cg-kanban/cg-kanban.d.ts +0 -44
  507. package/dist/components/cg-kanban/cg-kanban.d.ts.map +0 -1
  508. package/dist/components/cg-kanban/cg-kanban.js +0 -86
  509. package/dist/components/cg-kanban/cg-kanban.js.map +0 -1
  510. package/dist/components/cg-kanban-column/cg-kanban-column.d.ts +0 -58
  511. package/dist/components/cg-kanban-column/cg-kanban-column.d.ts.map +0 -1
  512. package/dist/components/cg-kanban-column/cg-kanban-column.js +0 -144
  513. package/dist/components/cg-kanban-column/cg-kanban-column.js.map +0 -1
  514. package/dist/components/cg-mfa-prompt/cg-mfa-prompt.d.ts +0 -77
  515. package/dist/components/cg-mfa-prompt/cg-mfa-prompt.d.ts.map +0 -1
  516. package/dist/components/cg-mfa-prompt/cg-mfa-prompt.js +0 -245
  517. package/dist/components/cg-mfa-prompt/cg-mfa-prompt.js.map +0 -1
  518. package/dist/components/cg-search-input/cg-search-input.d.ts +0 -62
  519. package/dist/components/cg-search-input/cg-search-input.d.ts.map +0 -1
  520. package/dist/components/cg-search-input/cg-search-input.js +0 -106
  521. package/dist/components/cg-search-input/cg-search-input.js.map +0 -1
  522. package/dist/components/cg-sortable/cg-sortable.d.ts +0 -72
  523. package/dist/components/cg-sortable/cg-sortable.d.ts.map +0 -1
  524. package/dist/components/cg-sortable/cg-sortable.js +0 -177
  525. package/dist/components/cg-sortable/cg-sortable.js.map +0 -1
  526. package/dist/components/cg-theme/cg-theme.d.ts +0 -82
  527. package/dist/components/cg-theme/cg-theme.d.ts.map +0 -1
  528. package/dist/components/cg-theme/cg-theme.js +0 -91
  529. package/dist/components/cg-theme/cg-theme.js.map +0 -1
  530. package/dist/components/cg-theme-editor/cg-theme-editor.d.ts +0 -98
  531. package/dist/components/cg-theme-editor/cg-theme-editor.d.ts.map +0 -1
  532. package/dist/components/cg-theme-editor/cg-theme-editor.js +0 -341
  533. package/dist/components/cg-theme-editor/cg-theme-editor.js.map +0 -1
  534. package/dist/components/cg-timeline/cg-timeline.d.ts +0 -70
  535. package/dist/components/cg-timeline/cg-timeline.d.ts.map +0 -1
  536. package/dist/components/cg-timeline/cg-timeline.js +0 -131
  537. package/dist/components/cg-timeline/cg-timeline.js.map +0 -1
  538. package/dist/components/cg-timeline-event/cg-timeline-event.d.ts +0 -59
  539. package/dist/components/cg-timeline-event/cg-timeline-event.d.ts.map +0 -1
  540. package/dist/components/cg-timeline-event/cg-timeline-event.js +0 -190
  541. package/dist/components/cg-timeline-event/cg-timeline-event.js.map +0 -1
  542. package/dist/utils/drag-manager.d.ts +0 -40
  543. package/dist/utils/drag-manager.d.ts.map +0 -1
@@ -1,89 +1,61 @@
1
- import { css as u, LitElement as v, html as n, svg as i, nothing as c } from "lit";
2
- import { property as p, customElement as h } from "lit/decorators.js";
3
- import { h as f, r as b } from "../../chunks/premium.css-9I4kHrsl.js";
4
- var m = Object.defineProperty, k = Object.getOwnPropertyDescriptor, d = (t, e, o, a) => {
5
- for (var r = a > 1 ? void 0 : a ? k(e, o) : e, l = t.length - 1, g; l >= 0; l--)
6
- (g = t[l]) && (r = (a ? g(e, o, r) : g(r)) || r);
7
- return a && r && m(e, o, r), r;
1
+ import { css as d, LitElement as u, html as a, nothing as g } from "lit";
2
+ import { property as p, customElement as v } from "lit/decorators.js";
3
+ import { h, r as m } from "../../chunks/premium.css-DHekUEUt.js";
4
+ var f = Object.defineProperty, b = Object.getOwnPropertyDescriptor, l = (e, t, i, s) => {
5
+ for (var r = s > 1 ? void 0 : s ? b(t, i) : t, n = e.length - 1, c; n >= 0; n--)
6
+ (c = e[n]) && (r = (s ? c(t, i, r) : c(r)) || r);
7
+ return s && r && f(t, i, r), r;
8
8
  };
9
- let s = class extends v {
9
+ let o = class extends u {
10
10
  constructor() {
11
11
  super(...arguments), this.steps = [], this.contained = !1;
12
12
  }
13
- // ─── Helpers ────────────────────────────────────────────────────────────
14
- _isInteractive(t) {
15
- return t.status === "complete" || t.status === "error";
16
- }
17
- _formatDuration(t) {
18
- return t < 1e3 ? `${Math.round(t)} ms` : t < 6e4 ? `${(t / 1e3).toFixed(1)} s` : `${Math.floor(t / 6e4)}m ${Math.round(t % 6e4 / 1e3)}s`;
19
- }
20
- _handleStepClick(t) {
21
- const e = this.steps[t];
22
- !e || !this._isInteractive(e) || this.dispatchEvent(new CustomEvent("ai-step-click", {
23
- detail: { index: t, step: e },
13
+ _handleStepClick(e) {
14
+ this.steps[e]?.status === "complete" && this.dispatchEvent(new CustomEvent("ai-step-click", {
15
+ detail: { index: e },
24
16
  bubbles: !0,
25
17
  composed: !0
26
18
  }));
27
19
  }
28
- // ─── Status / kind icons ────────────────────────────────────────────────
29
- _renderStatusIcon(t) {
30
- return t.status === "loading" ? n`<div class="spinner"></div>` : t.status === "pending" ? i`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="8"/></svg>` : t.status === "error" ? i`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6L6 18M6 6l12 12"/></svg>` : this._renderKindIcon(t.kind);
31
- }
32
- _renderKindIcon(t) {
33
- switch (t) {
34
- case "tool":
35
- return i`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a4 4 0 1 1 5 5l-9 9-5 1 1-5z"/></svg>`;
36
- case "retrieval":
37
- return i`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="6" y="4" width="13" height="14" rx="2"/><path d="M3 8v11a2 2 0 0 0 2 2h11"/></svg>`;
38
- case "decision":
39
- return i`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="3" r="2"/><circle cx="6" cy="21" r="2"/><circle cx="18" cy="6" r="2"/><path d="M6 5v14M6 12c6 0 6-6 12-6"/></svg>`;
40
- case "llm":
41
- return i`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3l1.8 5.4L19 10l-5.2 1.6L12 17l-1.8-5.4L5 10l5.2-1.6z"/></svg>`;
20
+ _renderStatusIcon(e) {
21
+ switch (e) {
22
+ case "complete":
23
+ return a`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg>`;
24
+ case "error":
25
+ return a`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6L6 18M6 6l12 12"/></svg>`;
26
+ case "loading":
27
+ return a`<div class="spinner"></div>`;
42
28
  default:
43
- return i`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"/></svg>`;
29
+ return a`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="8"/></svg>`;
44
30
  }
45
31
  }
46
32
  render() {
47
- return this.steps.length === 0 ? c : n`
33
+ return this.steps.length === 0 ? g : a`
48
34
  <div class="steps" role="list" aria-label="Agent steps">
49
- ${this.steps.map((t, e) => {
50
- const o = this._isInteractive(t), a = `step ${t.status} ${o ? "is-interactive" : ""}`, r = n`
51
- <span class="status-icon ${t.status}" aria-hidden="true">
52
- ${this._renderStatusIcon(t)}
35
+ ${this.steps.map((e, t) => a`
36
+ <div
37
+ class="step ${e.status}"
38
+ role="listitem"
39
+ style="--step-index: ${t}"
40
+ @click=${() => this._handleStepClick(t)}
41
+ >
42
+ <span class="status-icon ${e.status}">
43
+ ${this._renderStatusIcon(e.status)}
53
44
  </span>
54
45
  <div class="step-body">
55
- <div class="step-label-row">
56
- <span class="step-label">${t.label}</span>
57
- ${t.duration != null && t.status !== "pending" ? n`
58
- <span class="step-duration">${this._formatDuration(t.duration)}</span>
59
- ` : c}
60
- </div>
61
- ${t.detail ? n`<span class="step-detail">${t.detail}</span>` : c}
46
+ <span class="step-label">${e.label}</span>
47
+ ${e.detail ? a`<span class="step-detail">${e.detail}</span>` : g}
62
48
  </div>
63
- `;
64
- return o ? n`
65
- <button
66
- class=${a}
67
- type="button"
68
- role="listitem"
69
- style="--step-index: ${e}"
70
- @click=${() => this._handleStepClick(e)}
71
- >${r}</button>
72
- ` : n`
73
- <div
74
- class=${a}
75
- role="listitem"
76
- aria-current=${t.status === "loading" ? "step" : c}
77
- style="--step-index: ${e}"
78
- >${r}</div>
79
- `;
80
- })}
49
+ </div>
50
+ `)}
81
51
  </div>
82
52
  `;
83
53
  }
84
54
  };
85
- s.styles = [f, b, u`
86
- :host { display: block; }
55
+ o.styles = [h, m, d`
56
+ :host {
57
+ display: block;
58
+ }
87
59
 
88
60
  .steps {
89
61
  display: flex;
@@ -91,36 +63,20 @@ s.styles = [f, b, u`
91
63
  gap: var(--cg-spacing-2);
92
64
  }
93
65
 
94
- /* ── Step row (interactive when clickable) ── */
66
+ /* ── Step row ── */
95
67
  .step {
96
68
  display: flex;
97
69
  align-items: flex-start;
98
70
  gap: var(--cg-spacing-12);
99
71
  padding: var(--cg-spacing-12) var(--cg-spacing-16);
100
72
  border-radius: var(--cg-border-radius-100);
101
- background: transparent;
102
- border: none;
103
- width: 100%;
104
- text-align: left;
105
- font: inherit;
106
- color: inherit;
107
73
  animation: stepIn var(--cg-transition-duration-slow) var(--cg-transition-easing-ease-out) both;
108
74
  animation-delay: calc(var(--step-index, 0) * 60ms);
109
- transition: background var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
110
75
  }
111
76
 
112
- /* Interactive: only complete + error steps are clickable. */
113
- .step.is-interactive { cursor: pointer; }
114
- .step.is-interactive:hover { background: var(--cg-color-action-tertiary-background-hover); }
115
- .step.is-interactive:focus-visible {
116
- outline: none;
117
- box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong);
118
- }
119
- button.step { display: flex; }
120
-
121
77
  @keyframes stepIn {
122
78
  from { opacity: 0; transform: translateX(calc(-1 * var(--cg-spacing-8))); }
123
- to { opacity: 1; transform: translateX(0); }
79
+ to { opacity: 1; transform: translateX(0); }
124
80
  }
125
81
 
126
82
  /* ── Status icon ── */
@@ -134,6 +90,7 @@ s.styles = [f, b, u`
134
90
  margin-top: var(--cg-spacing-1);
135
91
  }
136
92
 
93
+ /* Pending — empty circle */
137
94
  .status-icon.pending {
138
95
  color: var(--cg-color-surface-container-outlined);
139
96
  }
@@ -143,8 +100,9 @@ s.styles = [f, b, u`
143
100
  opacity: 0.4;
144
101
  }
145
102
 
103
+ /* Loading — spinning ring */
146
104
  .status-icon.loading {
147
- color: var(--cg-color-action-primary-background-default);
105
+ color: var(--cg-color-ai-thinking-text);
148
106
  }
149
107
  .status-icon.loading .spinner {
150
108
  width: var(--cg-spacing-16);
@@ -155,19 +113,26 @@ s.styles = [f, b, u`
155
113
  animation: spin 0.8s linear infinite;
156
114
  }
157
115
 
158
- .status-icon.complete { color: var(--cg-color-status-success-text-default); }
116
+ /* Complete checkmark */
117
+ .status-icon.complete {
118
+ color: var(--cg-color-ai-complete-text);
119
+ }
159
120
  .status-icon.complete svg {
160
121
  width: var(--cg-spacing-16);
161
122
  height: var(--cg-spacing-16);
162
123
  animation: checkPop var(--cg-transition-duration-slow) var(--cg-transition-easing-ease-out) both;
163
124
  }
125
+
164
126
  @keyframes checkPop {
165
127
  from { transform: scale(0); }
166
- 50% { transform: scale(1.2); }
167
- to { transform: scale(1); }
128
+ 50% { transform: scale(1.2); }
129
+ to { transform: scale(1); }
168
130
  }
169
131
 
170
- .status-icon.error { color: var(--cg-color-status-error-text-default); }
132
+ /* Error X icon */
133
+ .status-icon.error {
134
+ color: var(--cg-color-ai-error-text);
135
+ }
171
136
  .status-icon.error svg {
172
137
  width: var(--cg-spacing-16);
173
138
  height: var(--cg-spacing-16);
@@ -180,35 +145,26 @@ s.styles = [f, b, u`
180
145
  padding-top: var(--cg-spacing-2);
181
146
  }
182
147
 
183
- .step-label-row {
184
- display: flex;
185
- align-items: baseline;
186
- gap: var(--cg-spacing-8);
187
- }
188
-
189
148
  .step-label {
190
149
  font-size: var(--cg-font-size-sm);
191
150
  font-weight: var(--cg-font-weight-medium);
192
151
  line-height: var(--cg-line-height-snug);
193
- flex: 1;
194
- min-width: 0;
195
- }
196
-
197
- .step-duration {
198
- flex-shrink: 0;
199
- font-size: var(--cg-font-size-xs);
200
- color: var(--cg-color-surface-container-outlined);
201
- font-variant-numeric: tabular-nums;
202
152
  }
203
153
 
204
154
  /* Status-based label colors */
205
- .step.pending .step-label {
155
+ .step.pending .step-label {
206
156
  color: var(--cg-color-surface-container-outlined);
207
157
  opacity: 0.5;
208
158
  }
209
- .step.loading .step-label { color: var(--cg-color-surface-base-text); }
210
- .step.complete .step-label { color: var(--cg-color-surface-container-outlined); }
211
- .step.error .step-label { color: var(--cg-color-status-error-text-default); }
159
+ .step.loading .step-label {
160
+ color: var(--cg-color-surface-base-text);
161
+ }
162
+ .step.complete .step-label {
163
+ color: var(--cg-color-surface-container-outlined);
164
+ }
165
+ .step.error .step-label {
166
+ color: var(--cg-color-ai-error-text);
167
+ }
212
168
 
213
169
  .step-detail {
214
170
  font-size: var(--cg-font-size-xs);
@@ -217,14 +173,12 @@ s.styles = [f, b, u`
217
173
  margin-top: var(--cg-spacing-2);
218
174
  }
219
175
 
220
- /* Loading step shimmer accent-text for the highlight is the
221
- semantic match (the text is being highlighted, not given a
222
- background). */
176
+ /* Loading step shimmer on label */
223
177
  .step.loading .step-label {
224
178
  background: linear-gradient(
225
179
  110deg,
226
180
  var(--cg-color-surface-base-text) 35%,
227
- var(--cg-color-accent-text) 50%,
181
+ var(--cg-color-ai-streaming-text) 50%,
228
182
  var(--cg-color-surface-base-text) 65%
229
183
  );
230
184
  background-size: 300% 100%;
@@ -233,32 +187,27 @@ s.styles = [f, b, u`
233
187
  -webkit-text-fill-color: transparent;
234
188
  animation: textSweep 1.8s var(--cg-transition-easing-default) infinite;
235
189
  }
190
+
236
191
  @keyframes textSweep {
237
- 0% { background-position: 100% 50%; }
192
+ 0% { background-position: 100% 50%; }
238
193
  100% { background-position: 0% 50%; }
239
194
  }
240
195
 
241
- /* ── Connecting line between steps ──
242
- Centered under the icon column. Icon left edge sits at
243
- padding-left (spacing-16); icon width is spacing-20, so its
244
- horizontal center is padding-left + (icon-width / 2) =
245
- spacing-16 + spacing-20 / 2. (spacing-10 does NOT exist in the
246
- scale — building the half-icon math via calc with real tokens.)
247
- Top: padding-top (12) + icon margin-top (1) + icon-height (20)
248
- + 2 px gap before the line begins. */
249
- .step:not(:last-child) { position: relative; }
196
+ /* ── Connecting line between steps ── */
197
+ .step:not(:last-child) {
198
+ position: relative;
199
+ }
250
200
  .step:not(:last-child)::after {
251
201
  content: '';
252
202
  position: absolute;
253
- left: calc(var(--cg-spacing-16) + var(--cg-spacing-20) / 2);
254
- top: calc(var(--cg-spacing-12) + var(--cg-spacing-1) + var(--cg-spacing-20) + var(--cg-spacing-2));
203
+ left: var(--cg-spacing-16);
204
+ top: var(--cg-spacing-32);
255
205
  bottom: calc(-1 * var(--cg-spacing-2));
256
206
  width: var(--cg-border-width-50);
257
- background: var(--cg-color-surface-cards-divider);
258
- transform: translateX(calc(-1 * var(--cg-border-width-50) / 2));
207
+ background: var(--cg-color-surface-base-divider);
259
208
  }
260
209
  .step.complete:not(:last-child)::after {
261
- background: var(--cg-color-status-success-text-default);
210
+ background: var(--cg-color-ai-complete-text);
262
211
  opacity: 0.3;
263
212
  }
264
213
 
@@ -276,22 +225,19 @@ s.styles = [f, b, u`
276
225
  .step { animation: none; }
277
226
  .status-icon.loading .spinner { animation: none; }
278
227
  .status-icon.complete svg { animation: none; }
279
- .step.loading .step-label {
280
- animation: none;
281
- -webkit-text-fill-color: currentColor;
282
- }
228
+ .step.loading .step-label { animation: none; -webkit-text-fill-color: currentColor; }
283
229
  }
284
230
  `];
285
- d([
231
+ l([
286
232
  p({ type: Array })
287
- ], s.prototype, "steps", 2);
288
- d([
233
+ ], o.prototype, "steps", 2);
234
+ l([
289
235
  p({ type: Boolean, reflect: !0 })
290
- ], s.prototype, "contained", 2);
291
- s = d([
292
- h("ai-agent-steps")
293
- ], s);
236
+ ], o.prototype, "contained", 2);
237
+ o = l([
238
+ v("ai-agent-steps")
239
+ ], o);
294
240
  export {
295
- s as AiAgentSteps
241
+ o as AiAgentSteps
296
242
  };
297
243
  //# sourceMappingURL=ai-agent-steps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-agent-steps.js","sources":["../../../src/components/ai-agent-steps/ai-agent-steps.ts"],"sourcesContent":["import { LitElement, html, css, nothing, svg } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\n/** Optional classification used to pick the completed-step icon. */\nexport type StepKind = 'llm' | 'tool' | 'retrieval' | 'decision';\n\n/** Step definition for ai-agent-steps. */\nexport interface AgentStep {\n label: string;\n status: 'pending' | 'loading' | 'complete' | 'error';\n detail?: string;\n /** Optional duration in ms — rendered right-aligned for completed steps. */\n duration?: number;\n /** Optional step kind — drives the icon for completed steps. */\n kind?: StepKind;\n}\n\n/**\n * <ai-agent-steps> — Live agent task feed. Status icons (pending / running /\n * complete / error), shimmering label on the active step, connecting thread\n * line under the icons, optional per-step duration and kind (LLM call / tool\n * call / retrieval / decision). Modeled on LangGraph / Langfuse trace\n * viewers and the Cursor / Claude Code agent step lists.\n *\n * @example\n * ```html\n * <ai-agent-steps\n * .steps=${[\n * { label: 'Search the web', status: 'complete', duration: 1240, kind: 'tool' },\n * { label: 'Read 3 results', status: 'complete', duration: 880, kind: 'retrieval' },\n * { label: 'Analyse content', status: 'loading' },\n * { label: 'Generate summary', status: 'pending', kind: 'llm' },\n * ]}\n * ></ai-agent-steps>\n * ```\n *\n * @fires {CustomEvent<{index: number, step: AgentStep}>} ai-step-click - Completed/errored step activated\n */\n@customElement('ai-agent-steps')\nexport class AiAgentSteps extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host { display: block; }\n\n .steps {\n display: flex;\n flex-direction: column;\n gap: var(--cg-spacing-2);\n }\n\n /* ── Step row (interactive when clickable) ── */\n .step {\n display: flex;\n align-items: flex-start;\n gap: var(--cg-spacing-12);\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n border-radius: var(--cg-border-radius-100);\n background: transparent;\n border: none;\n width: 100%;\n text-align: left;\n font: inherit;\n color: inherit;\n animation: stepIn var(--cg-transition-duration-slow) var(--cg-transition-easing-ease-out) both;\n animation-delay: calc(var(--step-index, 0) * 60ms);\n transition: background var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n\n /* Interactive: only complete + error steps are clickable. */\n .step.is-interactive { cursor: pointer; }\n .step.is-interactive:hover { background: var(--cg-color-action-tertiary-background-hover); }\n .step.is-interactive:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong);\n }\n button.step { display: flex; }\n\n @keyframes stepIn {\n from { opacity: 0; transform: translateX(calc(-1 * var(--cg-spacing-8))); }\n to { opacity: 1; transform: translateX(0); }\n }\n\n /* ── Status icon ── */\n .status-icon {\n width: var(--cg-spacing-20);\n height: var(--cg-spacing-20);\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-top: var(--cg-spacing-1);\n }\n\n .status-icon.pending {\n color: var(--cg-color-surface-container-outlined);\n }\n .status-icon.pending svg {\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n opacity: 0.4;\n }\n\n .status-icon.loading {\n color: var(--cg-color-action-primary-background-default);\n }\n .status-icon.loading .spinner {\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n border: var(--cg-border-width-100) solid var(--cg-color-loading-spinner-secondary);\n border-top-color: var(--cg-color-loading-spinner-primary);\n border-radius: var(--cg-border-radius-full);\n animation: spin 0.8s linear infinite;\n }\n\n .status-icon.complete { color: var(--cg-color-status-success-text-default); }\n .status-icon.complete svg {\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n animation: checkPop var(--cg-transition-duration-slow) var(--cg-transition-easing-ease-out) both;\n }\n @keyframes checkPop {\n from { transform: scale(0); }\n 50% { transform: scale(1.2); }\n to { transform: scale(1); }\n }\n\n .status-icon.error { color: var(--cg-color-status-error-text-default); }\n .status-icon.error svg {\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n }\n\n /* ── Step text ── */\n .step-body {\n flex: 1;\n min-width: 0;\n padding-top: var(--cg-spacing-2);\n }\n\n .step-label-row {\n display: flex;\n align-items: baseline;\n gap: var(--cg-spacing-8);\n }\n\n .step-label {\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-medium);\n line-height: var(--cg-line-height-snug);\n flex: 1;\n min-width: 0;\n }\n\n .step-duration {\n flex-shrink: 0;\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-outlined);\n font-variant-numeric: tabular-nums;\n }\n\n /* Status-based label colors */\n .step.pending .step-label {\n color: var(--cg-color-surface-container-outlined);\n opacity: 0.5;\n }\n .step.loading .step-label { color: var(--cg-color-surface-base-text); }\n .step.complete .step-label { color: var(--cg-color-surface-container-outlined); }\n .step.error .step-label { color: var(--cg-color-status-error-text-default); }\n\n .step-detail {\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-outlined);\n line-height: var(--cg-line-height-snug);\n margin-top: var(--cg-spacing-2);\n }\n\n /* Loading step shimmer — accent-text for the highlight is the\n semantic match (the text is being highlighted, not given a\n background). */\n .step.loading .step-label {\n background: linear-gradient(\n 110deg,\n var(--cg-color-surface-base-text) 35%,\n var(--cg-color-accent-text) 50%,\n var(--cg-color-surface-base-text) 65%\n );\n background-size: 300% 100%;\n background-clip: text;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n animation: textSweep 1.8s var(--cg-transition-easing-default) infinite;\n }\n @keyframes textSweep {\n 0% { background-position: 100% 50%; }\n 100% { background-position: 0% 50%; }\n }\n\n /* ── Connecting line between steps ──\n Centered under the icon column. Icon left edge sits at\n padding-left (spacing-16); icon width is spacing-20, so its\n horizontal center is padding-left + (icon-width / 2) =\n spacing-16 + spacing-20 / 2. (spacing-10 does NOT exist in the\n scale — building the half-icon math via calc with real tokens.)\n Top: padding-top (12) + icon margin-top (1) + icon-height (20)\n + 2 px gap before the line begins. */\n .step:not(:last-child) { position: relative; }\n .step:not(:last-child)::after {\n content: '';\n position: absolute;\n left: calc(var(--cg-spacing-16) + var(--cg-spacing-20) / 2);\n top: calc(var(--cg-spacing-12) + var(--cg-spacing-1) + var(--cg-spacing-20) + var(--cg-spacing-2));\n bottom: calc(-1 * var(--cg-spacing-2));\n width: var(--cg-border-width-50);\n background: var(--cg-color-surface-cards-divider);\n transform: translateX(calc(-1 * var(--cg-border-width-50) / 2));\n }\n .step.complete:not(:last-child)::after {\n background: var(--cg-color-status-success-text-default);\n opacity: 0.3;\n }\n\n /* ── Contained variant ── */\n :host([contained]) {\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-component-card-radius);\n background: var(--cg-color-surface-cards-background);\n padding: var(--cg-spacing-16);\n }\n\n @keyframes spin { to { transform: rotate(360deg); } }\n\n @media (prefers-reduced-motion: reduce) {\n .step { animation: none; }\n .status-icon.loading .spinner { animation: none; }\n .status-icon.complete svg { animation: none; }\n .step.loading .step-label {\n animation: none;\n -webkit-text-fill-color: currentColor;\n }\n }\n `];\n\n /** Steps array — each with label, status, optional detail / duration / kind. */\n @property({ type: Array }) steps: AgentStep[] = [];\n\n /** Wrap in a card container. */\n @property({ type: Boolean, reflect: true }) contained = false;\n\n // ─── Helpers ────────────────────────────────────────────────────────────\n\n private _isInteractive(step: AgentStep): boolean {\n return step.status === 'complete' || step.status === 'error';\n }\n\n private _formatDuration(ms: number): string {\n if (ms < 1000) return `${Math.round(ms)} ms`;\n if (ms < 60_000) return `${(ms / 1000).toFixed(1)} s`;\n return `${Math.floor(ms / 60_000)}m ${Math.round((ms % 60_000) / 1000)}s`;\n }\n\n private _handleStepClick(index: number): void {\n const step = this.steps[index];\n if (!step || !this._isInteractive(step)) return;\n this.dispatchEvent(new CustomEvent('ai-step-click', {\n detail: { index, step },\n bubbles: true, composed: true,\n }));\n }\n\n // ─── Status / kind icons ────────────────────────────────────────────────\n\n private _renderStatusIcon(step: AgentStep) {\n if (step.status === 'loading') {\n return html`<div class=\"spinner\"></div>`;\n }\n if (step.status === 'pending') {\n return svg`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><circle cx=\"12\" cy=\"12\" r=\"8\"/></svg>`;\n }\n if (step.status === 'error') {\n return svg`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6L6 18M6 6l12 12\"/></svg>`;\n }\n // Complete — pick a kind-specific icon when provided.\n return this._renderKindIcon(step.kind);\n }\n\n private _renderKindIcon(kind?: StepKind) {\n switch (kind) {\n case 'tool':\n // Wrench\n return svg`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14.7 6.3a4 4 0 1 1 5 5l-9 9-5 1 1-5z\"/></svg>`;\n case 'retrieval':\n // Stack of docs\n return svg`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"6\" y=\"4\" width=\"13\" height=\"14\" rx=\"2\"/><path d=\"M3 8v11a2 2 0 0 0 2 2h11\"/></svg>`;\n case 'decision':\n // Branch fork\n return svg`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"6\" cy=\"3\" r=\"2\"/><circle cx=\"6\" cy=\"21\" r=\"2\"/><circle cx=\"18\" cy=\"6\" r=\"2\"/><path d=\"M6 5v14M6 12c6 0 6-6 12-6\"/></svg>`;\n case 'llm':\n // Sparkle\n return svg`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3l1.8 5.4L19 10l-5.2 1.6L12 17l-1.8-5.4L5 10l5.2-1.6z\"/></svg>`;\n default:\n // Default check mark\n return svg`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 6L9 17l-5-5\"/></svg>`;\n }\n }\n\n override render() {\n if (this.steps.length === 0) return nothing;\n\n return html`\n <div class=\"steps\" role=\"list\" aria-label=\"Agent steps\">\n ${this.steps.map((step, i) => {\n const interactive = this._isInteractive(step);\n const classes = `step ${step.status} ${interactive ? 'is-interactive' : ''}`;\n\n const body = html`\n <span class=\"status-icon ${step.status}\" aria-hidden=\"true\">\n ${this._renderStatusIcon(step)}\n </span>\n <div class=\"step-body\">\n <div class=\"step-label-row\">\n <span class=\"step-label\">${step.label}</span>\n ${step.duration != null && step.status !== 'pending' ? html`\n <span class=\"step-duration\">${this._formatDuration(step.duration)}</span>\n ` : nothing}\n </div>\n ${step.detail ? html`<span class=\"step-detail\">${step.detail}</span>` : nothing}\n </div>\n `;\n\n // Interactive rows are real <button>s for native focus + Enter/Space.\n // Non-interactive rows stay as <div>s so they don't pollute the tab order.\n if (interactive) {\n return html`\n <button\n class=${classes}\n type=\"button\"\n role=\"listitem\"\n style=\"--step-index: ${i}\"\n @click=${() => this._handleStepClick(i)}\n >${body}</button>\n `;\n }\n return html`\n <div\n class=${classes}\n role=\"listitem\"\n aria-current=${step.status === 'loading' ? 'step' : nothing}\n style=\"--step-index: ${i}\"\n >${body}</div>\n `;\n })}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap { 'ai-agent-steps': AiAgentSteps; }\n}\n"],"names":["AiAgentSteps","LitElement","step","ms","index","html","svg","kind","nothing","i","interactive","classes","body","hostBlock","reducedMotion","css","__decorateClass","property","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"ai-agent-steps.js","sources":["../../../src/components/ai-agent-steps/ai-agent-steps.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\n/** Step definition for ai-agent-steps. */\nexport interface AgentStep {\n label: string;\n status: 'pending' | 'loading' | 'complete' | 'error';\n detail?: string;\n}\n\n/**\n * <ai-agent-steps> — Live task feed showing AI agent operations in progress.\n *\n * @example\n * ```html\n * <ai-agent-steps\n * .steps=${[\n * { label: 'Searching the web', status: 'complete' },\n * { label: 'Reading 3 results', status: 'complete' },\n * { label: 'Analyzing content', status: 'loading' },\n * { label: 'Generating summary', status: 'pending' },\n * ]}\n * ></ai-agent-steps>\n * ```\n *\n * @fires {CustomEvent<{index: number}>} ai-step-click - When a completed step is clicked\n */\n@customElement('ai-agent-steps')\nexport class AiAgentSteps extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n display: block;\n }\n\n .steps {\n display: flex;\n flex-direction: column;\n gap: var(--cg-spacing-2);\n }\n\n /* ── Step row ── */\n .step {\n display: flex;\n align-items: flex-start;\n gap: var(--cg-spacing-12);\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n border-radius: var(--cg-border-radius-100);\n animation: stepIn var(--cg-transition-duration-slow) var(--cg-transition-easing-ease-out) both;\n animation-delay: calc(var(--step-index, 0) * 60ms);\n }\n\n @keyframes stepIn {\n from { opacity: 0; transform: translateX(calc(-1 * var(--cg-spacing-8))); }\n to { opacity: 1; transform: translateX(0); }\n }\n\n /* ── Status icon ── */\n .status-icon {\n width: var(--cg-spacing-20);\n height: var(--cg-spacing-20);\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-top: var(--cg-spacing-1);\n }\n\n /* Pending — empty circle */\n .status-icon.pending {\n color: var(--cg-color-surface-container-outlined);\n }\n .status-icon.pending svg {\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n opacity: 0.4;\n }\n\n /* Loading — spinning ring */\n .status-icon.loading {\n color: var(--cg-color-ai-thinking-text);\n }\n .status-icon.loading .spinner {\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n border: var(--cg-border-width-100) solid var(--cg-color-loading-spinner-secondary);\n border-top-color: var(--cg-color-loading-spinner-primary);\n border-radius: var(--cg-border-radius-full);\n animation: spin 0.8s linear infinite;\n }\n\n /* Complete — checkmark */\n .status-icon.complete {\n color: var(--cg-color-ai-complete-text);\n }\n .status-icon.complete svg {\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n animation: checkPop var(--cg-transition-duration-slow) var(--cg-transition-easing-ease-out) both;\n }\n\n @keyframes checkPop {\n from { transform: scale(0); }\n 50% { transform: scale(1.2); }\n to { transform: scale(1); }\n }\n\n /* Error — X icon */\n .status-icon.error {\n color: var(--cg-color-ai-error-text);\n }\n .status-icon.error svg {\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n }\n\n /* ── Step text ── */\n .step-body {\n flex: 1;\n min-width: 0;\n padding-top: var(--cg-spacing-2);\n }\n\n .step-label {\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-medium);\n line-height: var(--cg-line-height-snug);\n }\n\n /* Status-based label colors */\n .step.pending .step-label {\n color: var(--cg-color-surface-container-outlined);\n opacity: 0.5;\n }\n .step.loading .step-label {\n color: var(--cg-color-surface-base-text);\n }\n .step.complete .step-label {\n color: var(--cg-color-surface-container-outlined);\n }\n .step.error .step-label {\n color: var(--cg-color-ai-error-text);\n }\n\n .step-detail {\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-outlined);\n line-height: var(--cg-line-height-snug);\n margin-top: var(--cg-spacing-2);\n }\n\n /* Loading step shimmer on label */\n .step.loading .step-label {\n background: linear-gradient(\n 110deg,\n var(--cg-color-surface-base-text) 35%,\n var(--cg-color-ai-streaming-text) 50%,\n var(--cg-color-surface-base-text) 65%\n );\n background-size: 300% 100%;\n background-clip: text;\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n animation: textSweep 1.8s var(--cg-transition-easing-default) infinite;\n }\n\n @keyframes textSweep {\n 0% { background-position: 100% 50%; }\n 100% { background-position: 0% 50%; }\n }\n\n /* ── Connecting line between steps ── */\n .step:not(:last-child) {\n position: relative;\n }\n .step:not(:last-child)::after {\n content: '';\n position: absolute;\n left: var(--cg-spacing-16);\n top: var(--cg-spacing-32);\n bottom: calc(-1 * var(--cg-spacing-2));\n width: var(--cg-border-width-50);\n background: var(--cg-color-surface-base-divider);\n }\n .step.complete:not(:last-child)::after {\n background: var(--cg-color-ai-complete-text);\n opacity: 0.3;\n }\n\n /* ── Contained variant ── */\n :host([contained]) {\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-component-card-radius);\n background: var(--cg-color-surface-cards-background);\n padding: var(--cg-spacing-16);\n }\n\n @keyframes spin { to { transform: rotate(360deg); } }\n\n @media (prefers-reduced-motion: reduce) {\n .step { animation: none; }\n .status-icon.loading .spinner { animation: none; }\n .status-icon.complete svg { animation: none; }\n .step.loading .step-label { animation: none; -webkit-text-fill-color: currentColor; }\n }\n `];\n\n /** Steps array — each with label, status, and optional detail */\n @property({ type: Array }) steps: AgentStep[] = [];\n\n /** Wrap in a card container */\n @property({ type: Boolean, reflect: true }) contained = false;\n\n private _handleStepClick(index: number) {\n if (this.steps[index]?.status === 'complete') {\n this.dispatchEvent(new CustomEvent('ai-step-click', {\n detail: { index },\n bubbles: true,\n composed: true,\n }));\n }\n }\n\n private _renderStatusIcon(status: string) {\n switch (status) {\n case 'complete':\n return html`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M20 6L9 17l-5-5\"/></svg>`;\n case 'error':\n return html`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M18 6L6 18M6 6l12 12\"/></svg>`;\n case 'loading':\n return html`<div class=\"spinner\"></div>`;\n default: // pending\n return html`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><circle cx=\"12\" cy=\"12\" r=\"8\"/></svg>`;\n }\n }\n\n override render() {\n if (this.steps.length === 0) return nothing;\n\n return html`\n <div class=\"steps\" role=\"list\" aria-label=\"Agent steps\">\n ${this.steps.map((step, i) => html`\n <div\n class=\"step ${step.status}\"\n role=\"listitem\"\n style=\"--step-index: ${i}\"\n @click=${() => this._handleStepClick(i)}\n >\n <span class=\"status-icon ${step.status}\">\n ${this._renderStatusIcon(step.status)}\n </span>\n <div class=\"step-body\">\n <span class=\"step-label\">${step.label}</span>\n ${step.detail ? html`<span class=\"step-detail\">${step.detail}</span>` : nothing}\n </div>\n </div>\n `)}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap { 'ai-agent-steps': AiAgentSteps; }\n}\n"],"names":["AiAgentSteps","LitElement","index","status","html","nothing","step","i","hostBlock","reducedMotion","css","__decorateClass","property","customElement"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { css as u, LitElement as h, html as e, nothing as c } from "lit";
2
2
  import { property as a, state as v, customElement as p } from "lit/decorators.js";
3
- import { h as f, r as m, f as b, p as y } from "../../chunks/premium.css-9I4kHrsl.js";
3
+ import { h as f, r as m, f as b, p as y } from "../../chunks/premium.css-DHekUEUt.js";
4
4
  var w = Object.defineProperty, x = Object.getOwnPropertyDescriptor, t = (s, o, d, n) => {
5
5
  for (var i = n > 1 ? void 0 : n ? x(o, d) : o, l = s.length - 1, g; l >= 0; l--)
6
6
  (g = s[l]) && (i = (n ? g(o, d, i) : g(i)) || i);
@@ -95,7 +95,7 @@ r.styles = [f, m, b, y, u`
95
95
  align-items: flex-start;
96
96
  gap: var(--cg-spacing-12);
97
97
  position: relative;
98
- border-left: var(--cg-border-width-200) solid transparent;
98
+ border-left: var(--cg-border-width-300) solid transparent;
99
99
  transition:
100
100
  box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default),
101
101
  transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
@@ -113,11 +113,11 @@ r.styles = [f, m, b, y, u`
113
113
  outline: none;
114
114
  box-shadow:
115
115
  0 0 0 2px var(--cg-color-surface-base-background),
116
- 0 0 0 3px var(--cg-overlay-accent-strong);
116
+ 0 0 0 3px var(--cg-color-focus-ring);
117
117
  }
118
118
  .card.critical {
119
119
  border-left-color: var(--cg-color-status-error-text-default);
120
- animation: pulse-glow var(--cg-transition-duration-slower) var(--cg-transition-easing-default) infinite;
120
+ animation: pulse-glow var(--cg-transition-duration-slow) var(--cg-transition-easing-default) infinite;
121
121
  }
122
122
 
123
123
  /* ── Dismiss exit ── */
@@ -170,7 +170,7 @@ r.styles = [f, m, b, y, u`
170
170
 
171
171
  .message {
172
172
  font-size: var(--cg-font-size-sm);
173
- color: var(--cg-color-input-text-placeholder);
173
+ color: var(--cg-color-surface-cards-subtle);
174
174
  line-height: var(--cg-line-height-normal);
175
175
  padding-bottom: var(--cg-spacing-12);
176
176
  margin-bottom: var(--cg-spacing-12);
@@ -1 +1 @@
1
- {"version":3,"file":"ai-alert-card.js","sources":["../../../src/components/ai-alert-card/ai-alert-card.ts"],"sourcesContent":["/**\n * @element ai-alert-card\n * Priority alert card with urgency-colored border, deadline badge, action button, and dismissal.\n *\n * @example\n * ```html\n * <ai-alert-card\n * title=\"Token budget exceeded\"\n * urgency=\"urgent\"\n * message=\"Context window is at 98% capacity.\"\n * deadline=\"2h remaining\"\n * actionLabel=\"Truncate\"\n * ></ai-alert-card>\n * ```\n *\n * @fires {CustomEvent<{title: string, urgency: string}>} ai-alert-action - Action button clicked\n * @fires {CustomEvent<{title: string}>} ai-alert-dismiss - Dismiss button clicked\n *\n * @cssprop --cg-color-status-error-text-default - Critical urgency pulse and border\n * @cssprop --cg-color-focus-ring - Focus ring color\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, fadeSlideInKeyframes, pulseKeyframes } from '../../styles/index.js';\n\ntype Urgency = 'info' | 'warning' | 'urgent' | 'critical';\n\n@customElement('ai-alert-card')\nexport class AiAlertCard extends LitElement {\n static override styles = [hostBlock, reducedMotion, fadeSlideInKeyframes, pulseKeyframes, css`\n :host {\n animation: fadeSlideIn var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n\n .card {\n background: var(--cg-color-surface-cards-background);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-border-radius-200);\n padding: var(--cg-spacing-16) var(--cg-spacing-16) var(--cg-spacing-16) var(--cg-spacing-20);\n display: flex;\n align-items: flex-start;\n gap: var(--cg-spacing-12);\n position: relative;\n border-left: var(--cg-border-width-200) solid transparent;\n transition:\n box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .card:hover {\n transform: translateY(-1px);\n box-shadow: var(--cg-elevation-2);\n }\n\n /* ── Urgency left border ── */\n .card.info { border-left-color: var(--cg-color-status-info-text-default); }\n .card.warning { border-left-color: var(--cg-color-status-warning-text-default); }\n .card.urgent { border-left-color: var(--cg-color-status-error-border-default); }\n .card:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 2px var(--cg-color-surface-base-background),\n 0 0 0 3px var(--cg-overlay-accent-strong);\n }\n .card.critical {\n border-left-color: var(--cg-color-status-error-text-default);\n animation: pulse-glow var(--cg-transition-duration-slower) var(--cg-transition-easing-default) infinite;\n }\n\n /* ── Dismiss exit ── */\n @keyframes alertExit {\n from { opacity: 1; transform: translateY(0); }\n to { opacity: 0; transform: translateY(-8px) scale(0.97); }\n }\n .card.dismissing {\n animation: alertExit var(--cg-transition-duration-default) var(--cg-transition-easing-ease-in) forwards;\n pointer-events: none;\n }\n\n /* ── Icon ── */\n .icon {\n font-size: var(--cg-font-size-xl);\n flex-shrink: 0;\n margin-top: var(--cg-spacing-2);\n }\n .icon.info { color: var(--cg-color-status-info-text-default); }\n .icon.warning { color: var(--cg-color-status-warning-text-default); }\n .icon.urgent { color: var(--cg-color-status-error-border-default); }\n .icon.critical { color: var(--cg-color-status-error-text-default); }\n\n /* ── Body ── */\n .body { flex: 1; min-width: 0; }\n\n .header {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n margin-bottom: var(--cg-spacing-6);\n }\n .title {\n font-size: var(--cg-font-size-base);\n font-weight: var(--cg-font-weight-bold);\n color: var(--cg-color-surface-base-text);\n }\n .deadline {\n display: inline-flex;\n align-items: center;\n gap: var(--cg-spacing-4);\n padding: var(--cg-spacing-2) var(--cg-spacing-8);\n border-radius: var(--cg-border-radius-full);\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-semibold);\n background: var(--cg-overlay-dark-subtle);\n color: var(--cg-color-surface-base-text);\n white-space: nowrap;\n }\n\n .message {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-input-text-placeholder);\n line-height: var(--cg-line-height-normal);\n padding-bottom: var(--cg-spacing-12);\n margin-bottom: var(--cg-spacing-12);\n border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-cards-divider);\n }\n\n /* ── Dismiss (positioned cg-button) ── */\n .dismiss {\n position: absolute;\n top: var(--cg-spacing-8);\n right: var(--cg-spacing-8);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .card:hover { transform: none; }\n .card.critical { animation: none; }\n .card.dismissing { animation: none; opacity: 0; }\n }\n\n @keyframes pulse-glow {\n 0%, 100% { border-left-color: var(--cg-color-status-error-text-default); }\n 50% { border-left-color: var(--cg-color-status-error-border-default); }\n }\n\n /* ── Rounded variants ── */\n :host([rounded=\"none\"]) .card { border-radius: 0; }\n :host([rounded=\"sm\"]) .card { border-radius: var(--cg-border-radius-50); }\n :host([rounded=\"md\"]) .card { border-radius: var(--cg-border-radius-100); }\n :host([rounded=\"lg\"]) .card { border-radius: var(--cg-border-radius-200); }\n :host([rounded=\"full\"]) .card { border-radius: var(--cg-border-radius-full); }\n `];\n\n @property({ reflect: true }) rounded: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'lg';\n @property({ type: String }) override title = '';\n @property({ type: String }) message = '';\n @property({ type: String }) urgency: Urgency = 'info';\n @property({ type: String }) deadline = '';\n @property({ type: String }) actionLabel = '';\n @property({ type: Boolean }) dismissible = true;\n\n @state() private _dismissing = false;\n\n private _urgencyIcon(): unknown {\n if (this.urgency === 'info') return html`<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4m0-4h.01\"/></svg>`;\n if (this.urgency === 'warning') return html`<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M12 9v4m0 4h.01M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z\"/></svg>`;\n if (this.urgency === 'urgent') return html`<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M13 2L3 14h9l-1 8 10-12h-9l1-8z\"/></svg>`;\n return html`<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\"><path d=\"M18 6L6 18M6 6l12 12\"/></svg>`;\n }\n\n private _handleAction() {\n this.dispatchEvent(new CustomEvent('ai-alert-action', {\n bubbles: true, composed: true,\n detail: { title: this.title, urgency: this.urgency },\n }));\n }\n\n private _handleDismiss() {\n this._dismissing = true;\n this.dispatchEvent(new CustomEvent('ai-alert-dismiss', {\n bubbles: true, composed: true,\n detail: { title: this.title },\n }));\n setTimeout(() => { this._dismissing = false; this.remove(); }, 250);\n }\n\n private _handleKeyDown(e: KeyboardEvent) {\n if (e.key === 'Escape' && this.dismissible) {\n e.preventDefault();\n this._handleDismiss();\n }\n }\n\n override render() {\n return html`\n <div\n class=\"card ${this.urgency} ${this._dismissing ? 'dismissing' : ''}\"\n role=\"alert\"\n aria-label=\"${this.urgency} alert: ${this.title}\"\n tabindex=\"0\"\n @keydown=${this._handleKeyDown}\n >\n <span class=\"icon ${this.urgency}\" aria-hidden=\"true\">${this._urgencyIcon()}</span>\n\n <div class=\"body\">\n <div class=\"header\">\n <span class=\"title\">${this.title}</span>\n ${this.deadline ? html`\n <span class=\"deadline\" aria-label=\"Deadline: ${this.deadline}\">\n <span aria-hidden=\"true\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><polyline points=\"12 6 12 12 16 14\"/></svg></span>\n ${this.deadline}\n </span>\n ` : nothing}\n </div>\n\n ${this.message ? html`<div class=\"message\">${this.message}</div>` : nothing}\n\n ${this.actionLabel ? html`\n <cg-button\n variant=${this.urgency === 'critical' ? 'primary' : 'secondary'}\n size=\"sm\"\n type=${this.urgency === 'urgent' || this.urgency === 'critical' ? 'danger' : 'normal'}\n @click=${this._handleAction}\n label=\"${this.actionLabel}\"\n >${this.actionLabel}</cg-button>\n ` : nothing}\n </div>\n\n ${this.dismissible ? html`\n <cg-button\n class=\"dismiss\"\n variant=\"tertiary\"\n size=\"sm\"\n rounded=\"full\"\n label=\"Dismiss alert\"\n @click=${this._handleDismiss}\n ><cg-icon name=\"close\" size=\"xs\"></cg-icon></cg-button>\n ` : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ai-alert-card': AiAlertCard;\n }\n}\n"],"names":["AiAlertCard","LitElement","html","e","nothing","hostBlock","reducedMotion","fadeSlideInKeyframes","pulseKeyframes","css","__decorateClass","property","state","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"ai-alert-card.js","sources":["../../../src/components/ai-alert-card/ai-alert-card.ts"],"sourcesContent":["/**\n * @element ai-alert-card\n * Priority alert card with urgency-colored border, deadline badge, action button, and dismissal.\n *\n * @example\n * ```html\n * <ai-alert-card\n * title=\"Token budget exceeded\"\n * urgency=\"urgent\"\n * message=\"Context window is at 98% capacity.\"\n * deadline=\"2h remaining\"\n * actionLabel=\"Truncate\"\n * ></ai-alert-card>\n * ```\n *\n * @fires {CustomEvent<{title: string, urgency: string}>} ai-alert-action - Action button clicked\n * @fires {CustomEvent<{title: string}>} ai-alert-dismiss - Dismiss button clicked\n *\n * @cssprop --cg-color-status-error-text-default - Critical urgency pulse and border\n * @cssprop --cg-color-focus-ring - Focus ring color\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, fadeSlideInKeyframes, pulseKeyframes } from '../../styles/index.js';\n\ntype Urgency = 'info' | 'warning' | 'urgent' | 'critical';\n\n@customElement('ai-alert-card')\nexport class AiAlertCard extends LitElement {\n static override styles = [hostBlock, reducedMotion, fadeSlideInKeyframes, pulseKeyframes, css`\n :host {\n animation: fadeSlideIn var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n\n .card {\n background: var(--cg-color-surface-cards-background);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-border-radius-200);\n padding: var(--cg-spacing-16) var(--cg-spacing-16) var(--cg-spacing-16) var(--cg-spacing-20);\n display: flex;\n align-items: flex-start;\n gap: var(--cg-spacing-12);\n position: relative;\n border-left: var(--cg-border-width-300) solid transparent;\n transition:\n box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .card:hover {\n transform: translateY(-1px);\n box-shadow: var(--cg-elevation-2);\n }\n\n /* ── Urgency left border ── */\n .card.info { border-left-color: var(--cg-color-status-info-text-default); }\n .card.warning { border-left-color: var(--cg-color-status-warning-text-default); }\n .card.urgent { border-left-color: var(--cg-color-status-error-border-default); }\n .card:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 2px var(--cg-color-surface-base-background),\n 0 0 0 3px var(--cg-color-focus-ring);\n }\n .card.critical {\n border-left-color: var(--cg-color-status-error-text-default);\n animation: pulse-glow var(--cg-transition-duration-slow) var(--cg-transition-easing-default) infinite;\n }\n\n /* ── Dismiss exit ── */\n @keyframes alertExit {\n from { opacity: 1; transform: translateY(0); }\n to { opacity: 0; transform: translateY(-8px) scale(0.97); }\n }\n .card.dismissing {\n animation: alertExit var(--cg-transition-duration-default) var(--cg-transition-easing-ease-in) forwards;\n pointer-events: none;\n }\n\n /* ── Icon ── */\n .icon {\n font-size: var(--cg-font-size-xl);\n flex-shrink: 0;\n margin-top: var(--cg-spacing-2);\n }\n .icon.info { color: var(--cg-color-status-info-text-default); }\n .icon.warning { color: var(--cg-color-status-warning-text-default); }\n .icon.urgent { color: var(--cg-color-status-error-border-default); }\n .icon.critical { color: var(--cg-color-status-error-text-default); }\n\n /* ── Body ── */\n .body { flex: 1; min-width: 0; }\n\n .header {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n margin-bottom: var(--cg-spacing-6);\n }\n .title {\n font-size: var(--cg-font-size-base);\n font-weight: var(--cg-font-weight-bold);\n color: var(--cg-color-surface-base-text);\n }\n .deadline {\n display: inline-flex;\n align-items: center;\n gap: var(--cg-spacing-4);\n padding: var(--cg-spacing-2) var(--cg-spacing-8);\n border-radius: var(--cg-border-radius-full);\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-semibold);\n background: var(--cg-overlay-dark-subtle);\n color: var(--cg-color-surface-base-text);\n white-space: nowrap;\n }\n\n .message {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-cards-subtle);\n line-height: var(--cg-line-height-normal);\n padding-bottom: var(--cg-spacing-12);\n margin-bottom: var(--cg-spacing-12);\n border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-cards-divider);\n }\n\n /* ── Dismiss (positioned cg-button) ── */\n .dismiss {\n position: absolute;\n top: var(--cg-spacing-8);\n right: var(--cg-spacing-8);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .card:hover { transform: none; }\n .card.critical { animation: none; }\n .card.dismissing { animation: none; opacity: 0; }\n }\n\n @keyframes pulse-glow {\n 0%, 100% { border-left-color: var(--cg-color-status-error-text-default); }\n 50% { border-left-color: var(--cg-color-status-error-border-default); }\n }\n\n /* ── Rounded variants ── */\n :host([rounded=\"none\"]) .card { border-radius: 0; }\n :host([rounded=\"sm\"]) .card { border-radius: var(--cg-border-radius-50); }\n :host([rounded=\"md\"]) .card { border-radius: var(--cg-border-radius-100); }\n :host([rounded=\"lg\"]) .card { border-radius: var(--cg-border-radius-200); }\n :host([rounded=\"full\"]) .card { border-radius: var(--cg-border-radius-full); }\n `];\n\n @property({ reflect: true }) rounded: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'lg';\n @property({ type: String }) override title = '';\n @property({ type: String }) message = '';\n @property({ type: String }) urgency: Urgency = 'info';\n @property({ type: String }) deadline = '';\n @property({ type: String }) actionLabel = '';\n @property({ type: Boolean }) dismissible = true;\n\n @state() private _dismissing = false;\n\n private _urgencyIcon(): unknown {\n if (this.urgency === 'info') return html`<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><path d=\"M12 16v-4m0-4h.01\"/></svg>`;\n if (this.urgency === 'warning') return html`<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M12 9v4m0 4h.01M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z\"/></svg>`;\n if (this.urgency === 'urgent') return html`<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M13 2L3 14h9l-1 8 10-12h-9l1-8z\"/></svg>`;\n return html`<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\"><path d=\"M18 6L6 18M6 6l12 12\"/></svg>`;\n }\n\n private _handleAction() {\n this.dispatchEvent(new CustomEvent('ai-alert-action', {\n bubbles: true, composed: true,\n detail: { title: this.title, urgency: this.urgency },\n }));\n }\n\n private _handleDismiss() {\n this._dismissing = true;\n this.dispatchEvent(new CustomEvent('ai-alert-dismiss', {\n bubbles: true, composed: true,\n detail: { title: this.title },\n }));\n setTimeout(() => { this._dismissing = false; this.remove(); }, 250);\n }\n\n private _handleKeyDown(e: KeyboardEvent) {\n if (e.key === 'Escape' && this.dismissible) {\n e.preventDefault();\n this._handleDismiss();\n }\n }\n\n override render() {\n return html`\n <div\n class=\"card ${this.urgency} ${this._dismissing ? 'dismissing' : ''}\"\n role=\"alert\"\n aria-label=\"${this.urgency} alert: ${this.title}\"\n tabindex=\"0\"\n @keydown=${this._handleKeyDown}\n >\n <span class=\"icon ${this.urgency}\" aria-hidden=\"true\">${this._urgencyIcon()}</span>\n\n <div class=\"body\">\n <div class=\"header\">\n <span class=\"title\">${this.title}</span>\n ${this.deadline ? html`\n <span class=\"deadline\" aria-label=\"Deadline: ${this.deadline}\">\n <span aria-hidden=\"true\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><polyline points=\"12 6 12 12 16 14\"/></svg></span>\n ${this.deadline}\n </span>\n ` : nothing}\n </div>\n\n ${this.message ? html`<div class=\"message\">${this.message}</div>` : nothing}\n\n ${this.actionLabel ? html`\n <cg-button\n variant=${this.urgency === 'critical' ? 'primary' : 'secondary'}\n size=\"sm\"\n type=${this.urgency === 'urgent' || this.urgency === 'critical' ? 'danger' : 'normal'}\n @click=${this._handleAction}\n label=\"${this.actionLabel}\"\n >${this.actionLabel}</cg-button>\n ` : nothing}\n </div>\n\n ${this.dismissible ? html`\n <cg-button\n class=\"dismiss\"\n variant=\"tertiary\"\n size=\"sm\"\n rounded=\"full\"\n label=\"Dismiss alert\"\n @click=${this._handleDismiss}\n ><cg-icon name=\"close\" size=\"xs\"></cg-icon></cg-button>\n ` : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ai-alert-card': AiAlertCard;\n }\n}\n"],"names":["AiAlertCard","LitElement","html","e","nothing","hostBlock","reducedMotion","fadeSlideInKeyframes","pulseKeyframes","css","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -20,25 +20,12 @@ export declare class AiAnalyticsChart extends LitElement {
20
20
  disconnectedCallback(): void;
21
21
  private get _margin();
22
22
  private get _allY();
23
- /**
24
- * X-axis values in the order the consumer passed them. Set's insertion order
25
- * is preserved, so points appear in the order of the first series. Sorting
26
- * alphabetically (the previous behavior) breaks any non-alphabetic axis —
27
- * e.g. days of the week ended up Fri, Mon, Sat, Sun, Thu, Tue, Wed and lines
28
- * zig-zagged between non-adjacent days.
29
- */
30
23
  private get _allX();
31
24
  private get _yMin();
32
25
  private get _yMax();
33
26
  private _scaleX;
34
27
  private _scaleY;
35
28
  private _buildPath;
36
- /** Closed area under the line for the gradient fill. */
37
- private _buildArea;
38
- /** Stable id-safe slug for a series name (used by SVG gradient refs). */
39
- private _seriesId;
40
- /** Format a y-tick value: integer for ranges ≥ 10, one decimal otherwise. */
41
- private _formatTick;
42
29
  private _onPointHover;
43
30
  private _onMouseLeave;
44
31
  render(): import('lit').TemplateResult<1>;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-analytics-chart.d.ts","sourceRoot":"","sources":["../../../src/components/ai-analytics-chart/ai-analytics-chart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,UAAU,EAA2B,MAAM,KAAK,CAAC;AAI1D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClC;AAWD,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,OAAgB,MAAM,4BAiInB;IACwB,MAAM,EAAE,eAAe,EAAE,CAAM;IACrB,KAAK,SAAM;IACpB,MAAM,SAAM;IACZ,MAAM,SAAO;IAEhC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,MAAM,CAAO;IAE9B,OAAO,CAAC,GAAG,CAAC,CAAiB;IAEpB,iBAAiB,IAAI,IAAI;IAWzB,oBAAoB,IAAI,IAAI;IAKrC,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,KAAK,KAAK,GAEhB;IAED;;;;;;OAMG;IACH,OAAO,KAAK,KAAK,GAIhB;IAED,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,UAAU;IAQlB,wDAAwD;IACxD,OAAO,CAAC,UAAU;IAUlB,yEAAyE;IACzE,OAAO,CAAC,SAAS;IAIjB,6EAA6E;IAC7E,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,aAAa;IAIZ,MAAM;CAsFhB;AAgCD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,gBAAgB,CAAC;KACxC;CACF"}
1
+ {"version":3,"file":"ai-analytics-chart.d.ts","sourceRoot":"","sources":["../../../src/components/ai-analytics-chart/ai-analytics-chart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAClC;AAWD,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,OAAgB,MAAM,4BA0HnB;IACwB,MAAM,EAAE,eAAe,EAAE,CAAM;IACrB,KAAK,SAAM;IACpB,MAAM,SAAM;IACZ,MAAM,SAAO;IAEhC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,MAAM,CAAO;IAE9B,OAAO,CAAC,GAAG,CAAC,CAAiB;IAEpB,iBAAiB,IAAI,IAAI;IAWzB,oBAAoB,IAAI,IAAI;IAKrC,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,KAAK,KAAK,GAIhB;IAED,OAAO,KAAK,KAAK,GAAyC;IAC1D,OAAO,KAAK,KAAK,GAAyC;IAE1D,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,aAAa;IAIZ,MAAM;CAyEhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,gBAAgB,CAAC;KACxC;CACF"}