@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,6 +1,6 @@
1
1
  import { css as g, LitElement as p, html as v } from "lit";
2
2
  import { property as c, state as l, customElement as b } from "lit/decorators.js";
3
- import { h as u, r as h } from "../../chunks/premium.css-9I4kHrsl.js";
3
+ import { h as u, r as h } from "../../chunks/premium.css-DHekUEUt.js";
4
4
  var w = Object.defineProperty, m = Object.getOwnPropertyDescriptor, a = (e, s, n, i) => {
5
5
  for (var t = i > 1 ? void 0 : i ? m(s, n) : s, o = e.length - 1, d; o >= 0; o--)
6
6
  (d = e[o]) && (t = (i ? d(s, n, t) : d(t)) || t);
@@ -1 +1 @@
1
- {"version":3,"file":"ai-accessibility-report.d.ts","sourceRoot":"","sources":["../../../src/components/ai-accessibility-report/ai-accessibility-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAGrD,OAAO,uBAAuB,CAAC;AAC/B,OAAO,uBAAuB,CAAC;AAE/B,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC;IAC1B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBACa,qBAAsB,SAAQ,UAAU;IACnD,OAAgB,MAAM,4BA+OnB;IAEwB,MAAM,EAAE,SAAS,EAAE,CAAM;IACxB,KAAK,SAAK;IACD,KAAK,SAA0B;IACpE,wFAAwF;IACjC,WAAW,SAAK;IAE9D,OAAO,CAAC,SAAS,CAAqB;IAE/C,OAAO,KAAK,WAAW,GAAqE;IAC5F,OAAO,KAAK,aAAa,GAAuE;IAChG,OAAO,KAAK,UAAU,GAAoE;IAE1F,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,QAAQ;IAUP,MAAM;CA6EhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,yBAAyB,EAAE,qBAAqB,CAAC;KAClD;CACF"}
1
+ {"version":3,"file":"ai-accessibility-report.d.ts","sourceRoot":"","sources":["../../../src/components/ai-accessibility-report/ai-accessibility-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAGrD,OAAO,uBAAuB,CAAC;AAC/B,OAAO,uBAAuB,CAAC;AAE/B,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC;IAC1B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBACa,qBAAsB,SAAQ,UAAU;IACnD,OAAgB,MAAM,4BAgPnB;IAEwB,MAAM,EAAE,SAAS,EAAE,CAAM;IACxB,KAAK,SAAK;IACD,KAAK,SAA0B;IACpE,wFAAwF;IACjC,WAAW,SAAK;IAE9D,OAAO,CAAC,SAAS,CAAqB;IAE/C,OAAO,KAAK,WAAW,GAAqE;IAC5F,OAAO,KAAK,aAAa,GAAuE;IAChG,OAAO,KAAK,UAAU,GAAoE;IAE1F,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,QAAQ;IAUP,MAAM;CA6EhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,yBAAyB,EAAE,qBAAqB,CAAC;KAClD;CACF"}
@@ -1,12 +1,12 @@
1
1
  import { css as v, LitElement as u, html as t, nothing as g } from "lit";
2
2
  import { property as d, state as f, customElement as p } from "lit/decorators.js";
3
- import { h, r as b, f as m } from "../../chunks/premium.css-9I4kHrsl.js";
3
+ import { h, r as b, f as m } from "../../chunks/premium.css-DHekUEUt.js";
4
4
  import "../cg-card/cg-card.js";
5
5
  import "../cg-icon/cg-icon.js";
6
- var x = Object.defineProperty, w = Object.getOwnPropertyDescriptor, l = (e, r, o, i) => {
7
- for (var a = i > 1 ? void 0 : i ? w(r, o) : r, s = e.length - 1, n; s >= 0; s--)
8
- (n = e[s]) && (a = (i ? n(r, o, a) : n(a)) || a);
9
- return i && a && x(r, o, a), a;
6
+ var x = Object.defineProperty, w = Object.getOwnPropertyDescriptor, l = (e, r, i, o) => {
7
+ for (var a = o > 1 ? void 0 : o ? w(r, i) : r, s = e.length - 1, n; s >= 0; s--)
8
+ (n = e[s]) && (a = (o ? n(r, i, a) : n(a)) || a);
9
+ return o && a && x(r, i, a), a;
10
10
  };
11
11
  let c = class extends u {
12
12
  constructor() {
@@ -40,11 +40,11 @@ let c = class extends u {
40
40
  error: "error",
41
41
  warning: "warning",
42
42
  info: "info"
43
- }, o = `sev-icon sev-icon-${e}`;
44
- return t`<span class=${o} aria-hidden="true"><cg-icon name="${r[e] ?? "info"}" size="sm"></cg-icon></span>`;
43
+ }, i = `sev-icon sev-icon-${e}`;
44
+ return t`<span class=${i} aria-hidden="true"><cg-icon name="${r[e] ?? "info"}" size="sm"></cg-icon></span>`;
45
45
  }
46
46
  render() {
47
- const e = 2 * Math.PI * 27, r = e - this.score / 100 * e, o = this._getScoreColor(), i = this.totalChecks > 0 ? this.totalChecks : this.issues.length, a = Math.max(0, i - this.issues.length);
47
+ const e = 2 * Math.PI * 27, r = e - this.score / 100 * e, i = this._getScoreColor(), o = this.totalChecks > 0 ? this.totalChecks : this.issues.length, a = Math.max(0, o - this.issues.length);
48
48
  return t`
49
49
  <cg-card>
50
50
  <div class="header">
@@ -53,16 +53,16 @@ let c = class extends u {
53
53
  <svg viewBox="0 0 64 64" aria-hidden="true">
54
54
  <circle class="score-bg" cx="32" cy="32" r="27" />
55
55
  <circle class="score-fg" cx="32" cy="32" r="27"
56
- stroke="${o}"
56
+ stroke="${i}"
57
57
  stroke-dasharray="${e}"
58
58
  stroke-dashoffset="${r}" />
59
59
  </svg>
60
- <div class="score-text" style="color:${o}">${this.score}</div>
60
+ <div class="score-text" style="color:${i}">${this.score}</div>
61
61
  </div>
62
62
  <div class="header-info">
63
63
  <h3 class="title">${this.title}</h3>
64
- ${i > 0 ? t`
65
- <p class="pass-count">${a} of ${i} checks passed</p>
64
+ ${o > 0 ? t`
65
+ <p class="pass-count">${a} of ${o} checks passed</p>
66
66
  ` : g}
67
67
  <div class="breakdown">
68
68
  <span class="breakdown-item">
@@ -231,6 +231,7 @@ c.styles = [h, b, m, v`
231
231
  align-items: center;
232
232
  gap: var(--cg-spacing-8);
233
233
  padding: var(--cg-spacing-8) var(--cg-spacing-12);
234
+ min-height: var(--cg-spacing-40);
234
235
  cursor: pointer;
235
236
  background: transparent;
236
237
  border: none;
@@ -302,7 +303,7 @@ c.styles = [h, b, m, v`
302
303
  .issue-details {
303
304
  padding: var(--cg-spacing-8) var(--cg-spacing-12) var(--cg-spacing-12) var(--cg-spacing-32);
304
305
  border-top: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);
305
- font-size: var(--cg-font-size-xs);
306
+ font-size: var(--cg-font-size-sm);
306
307
  display: flex;
307
308
  flex-direction: column;
308
309
  gap: var(--cg-spacing-8);
@@ -1 +1 @@
1
- {"version":3,"file":"ai-accessibility-report.js","sources":["../../../src/components/ai-accessibility-report/ai-accessibility-report.ts"],"sourcesContent":["/**\n * @element ai-accessibility-report\n * WCAG compliance report with score circle, severity breakdown, and expandable\n * issue list with optional \"How to fix\" suggestions per issue. Modeled after\n * Lighthouse / axe DevTools / Accessibility Insights.\n *\n * @example\n * ```html\n * <ai-accessibility-report\n * .issues=${[{rule:'color-contrast', level:'AA', severity:'error',\n * description:'Low contrast ratio', fix:'Increase contrast to at least 4.5:1'}]}\n * score=\"72\"\n * title=\"Page Audit\"\n * ></ai-accessibility-report>\n * ```\n *\n * @fires {CustomEvent<{issue: A11yIssue, index: number}>} ai-a11y-issue-click - Issue row clicked/expanded\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, fadeSlideInKeyframes } from '../../styles/index.js';\nimport '../cg-card/cg-card.js';\nimport '../cg-icon/cg-icon.js';\n\nexport interface A11yIssue {\n rule: string;\n level: 'A' | 'AA' | 'AAA';\n severity: 'error' | 'warning' | 'info';\n element?: string;\n description: string;\n /** Optional fix suggestion (axe DevTools / Lighthouse pattern) */\n fix?: string;\n}\n\n@customElement('ai-accessibility-report')\nexport class AiAccessibilityReport extends LitElement {\n static override styles = [hostBlock, reducedMotion, fadeSlideInKeyframes, css`\n :host {\n display: block;\n animation: fadeSlideIn var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out) both;\n }\n :host([hidden]) { display: none; }\n\n .header {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-16);\n padding-bottom: var(--cg-spacing-12);\n border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n margin-bottom: var(--cg-spacing-16);\n }\n\n .score-circle {\n position: relative;\n width: var(--cg-spacing-64);\n height: var(--cg-spacing-64);\n flex-shrink: 0;\n }\n\n .score-circle svg {\n width: var(--cg-spacing-64);\n height: var(--cg-spacing-64);\n transform: rotate(-90deg);\n }\n\n .score-bg {\n fill: none;\n stroke: var(--cg-color-surface-cards-border);\n stroke-width: 5;\n }\n\n .score-fg {\n fill: none;\n stroke-width: 5;\n stroke-linecap: round;\n transition: stroke-dashoffset var(--cg-transition-duration-slow) var(--cg-transition-easing-default);\n }\n\n .score-text {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--cg-font-size-lg);\n font-weight: var(--cg-font-weight-bold);\n }\n\n .header-info {\n flex: 1;\n min-width: 0;\n }\n\n .title {\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-semibold);\n margin: 0 0 var(--cg-spacing-4) 0;\n color: var(--cg-color-surface-base-text);\n }\n\n .pass-count {\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-outlined);\n margin: 0 0 var(--cg-spacing-6) 0;\n }\n\n .breakdown {\n display: flex;\n flex-wrap: wrap;\n gap: var(--cg-spacing-12);\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-outlined);\n }\n\n .breakdown-item {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-4);\n }\n\n .sev-dot {\n width: var(--cg-spacing-8);\n height: var(--cg-spacing-8);\n border-radius: var(--cg-border-radius-full);\n }\n\n .sev-error { background: var(--cg-color-status-error-text-default); }\n .sev-warning { background: var(--cg-color-status-warning-text-default); }\n .sev-info { background: var(--cg-color-status-info-text-default); }\n\n .issue-list {\n display: flex;\n flex-direction: column;\n gap: var(--cg-spacing-6);\n }\n\n .issue-item {\n border-radius: var(--cg-border-radius-100);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n overflow: hidden;\n transition: border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .issue-item:hover {\n border-color: var(--cg-color-surface-cards-hover-border);\n }\n\n .issue-header {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n padding: var(--cg-spacing-8) var(--cg-spacing-12);\n cursor: pointer;\n background: transparent;\n border: none;\n color: inherit;\n width: 100%;\n font-family: inherit;\n font-size: var(--cg-font-size-sm);\n text-align: left;\n transition:\n background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .issue-header:hover {\n background: var(--cg-color-surface-cards-hover-background);\n }\n .issue-header:active { transform: scale(var(--cg-interaction-press-scale)); }\n .issue-header:focus-visible {\n outline: none;\n box-shadow: inset 0 0 0 var(--cg-border-width-100) var(--cg-color-focus-ring);\n }\n\n .sev-icon {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n }\n .sev-icon-error { color: var(--cg-color-status-error-text-default); }\n .sev-icon-warning { color: var(--cg-color-status-warning-text-default); }\n .sev-icon-info { color: var(--cg-color-status-info-text-default); }\n\n .issue-rule {\n flex: 1;\n font-weight: var(--cg-font-weight-medium);\n color: var(--cg-color-surface-base-text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .chevron {\n color: var(--cg-color-surface-container-outlined);\n transition: transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .issue-header[aria-expanded=\"true\"] .chevron {\n transform: rotate(180deg);\n }\n\n .level-badge {\n display: inline-flex;\n padding: var(--cg-spacing-2) var(--cg-spacing-6);\n border-radius: var(--cg-border-radius-50);\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-bold);\n flex-shrink: 0;\n }\n .level-A {\n background: var(--cg-color-status-info-background-default);\n color: var(--cg-color-status-info-text-default);\n }\n .level-AA {\n background: var(--cg-color-status-warning-background-default);\n color: var(--cg-color-status-warning-text-default);\n }\n .level-AAA {\n background: var(--cg-overlay-accent-subtle);\n color: var(--cg-color-accent-text);\n }\n\n .issue-details {\n padding: var(--cg-spacing-8) var(--cg-spacing-12) var(--cg-spacing-12) var(--cg-spacing-32);\n border-top: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n font-size: var(--cg-font-size-xs);\n display: flex;\n flex-direction: column;\n gap: var(--cg-spacing-8);\n }\n\n .issue-desc {\n color: var(--cg-color-surface-container-outlined);\n line-height: var(--cg-line-height-normal);\n }\n\n .issue-element {\n display: inline-block;\n align-self: flex-start;\n padding: var(--cg-spacing-2) var(--cg-spacing-8);\n background: var(--cg-color-action-tertiary-background-hover);\n border-radius: var(--cg-border-radius-50);\n font-family: var(--cg-font-family-mono);\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-base-text);\n word-break: break-all;\n }\n\n .issue-fix {\n display: flex;\n align-items: flex-start;\n gap: var(--cg-spacing-6);\n padding: var(--cg-spacing-6) var(--cg-spacing-8);\n background: var(--cg-overlay-accent-subtle);\n border: var(--cg-border-width-50) solid var(--cg-overlay-accent-strong);\n border-radius: var(--cg-border-radius-50);\n color: var(--cg-color-surface-base-text);\n line-height: var(--cg-line-height-normal);\n }\n .issue-fix-label {\n font-weight: var(--cg-font-weight-semibold);\n color: var(--cg-color-accent-text);\n flex-shrink: 0;\n }\n\n .empty {\n text-align: center;\n padding: var(--cg-spacing-24);\n color: var(--cg-color-surface-container-outlined);\n font-size: var(--cg-font-size-sm);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--cg-spacing-8);\n }\n .empty cg-icon {\n color: var(--cg-color-status-success-text-default);\n }\n `];\n\n @property({ type: Array }) issues: A11yIssue[] = [];\n @property({ type: Number }) score = 0;\n @property({ type: String }) override title = 'Accessibility Report';\n /** Total checks run (for \"X of Y passed\" display). Defaults to issues.length when 0. */\n @property({ type: Number, attribute: 'total-checks' }) totalChecks = 0;\n\n @state() private _expanded = new Set<number>();\n\n private get _errorCount() { return this.issues.filter(i => i.severity === 'error').length; }\n private get _warningCount() { return this.issues.filter(i => i.severity === 'warning').length; }\n private get _infoCount() { return this.issues.filter(i => i.severity === 'info').length; }\n\n private _getScoreColor(): string {\n if (this.score >= 90) return 'var(--cg-color-status-success-text-default)';\n if (this.score >= 70) return 'var(--cg-color-status-warning-text-default)';\n if (this.score >= 50) return 'var(--cg-color-status-warning-text-default)';\n return 'var(--cg-color-status-error-text-default)';\n }\n\n private _toggle(idx: number): void {\n const next = new Set(this._expanded);\n if (next.has(idx)) next.delete(idx); else next.add(idx);\n this._expanded = next;\n }\n\n private _onClick(issue: A11yIssue, idx: number): void {\n this._toggle(idx);\n this.dispatchEvent(new CustomEvent('ai-a11y-issue-click', {\n bubbles: true, composed: true,\n detail: { issue, index: idx },\n }));\n }\n\n private _sevIcon(severity: string) {\n const map: Record<string, string> = {\n error: 'error',\n warning: 'warning',\n info: 'info',\n };\n const cls = `sev-icon sev-icon-${severity}`;\n return html`<span class=${cls} aria-hidden=\"true\"><cg-icon name=\"${map[severity] ?? 'info'}\" size=\"sm\"></cg-icon></span>`;\n }\n\n override render() {\n const circumference = 2 * Math.PI * 27;\n const offset = circumference - (this.score / 100) * circumference;\n const scoreColor = this._getScoreColor();\n const total = this.totalChecks > 0 ? this.totalChecks : this.issues.length;\n const passed = Math.max(0, total - this.issues.length);\n\n return html`\n <cg-card>\n <div class=\"header\">\n <div class=\"score-circle\" role=\"meter\" aria-valuenow=${this.score}\n aria-valuemin=\"0\" aria-valuemax=\"100\" aria-label=\"Accessibility score ${this.score} out of 100\">\n <svg viewBox=\"0 0 64 64\" aria-hidden=\"true\">\n <circle class=\"score-bg\" cx=\"32\" cy=\"32\" r=\"27\" />\n <circle class=\"score-fg\" cx=\"32\" cy=\"32\" r=\"27\"\n stroke=\"${scoreColor}\"\n stroke-dasharray=\"${circumference}\"\n stroke-dashoffset=\"${offset}\" />\n </svg>\n <div class=\"score-text\" style=\"color:${scoreColor}\">${this.score}</div>\n </div>\n <div class=\"header-info\">\n <h3 class=\"title\">${this.title}</h3>\n ${total > 0 ? html`\n <p class=\"pass-count\">${passed} of ${total} checks passed</p>\n ` : nothing}\n <div class=\"breakdown\">\n <span class=\"breakdown-item\">\n <span class=\"sev-dot sev-error\"></span> ${this._errorCount} ${this._errorCount === 1 ? 'error' : 'errors'}\n </span>\n <span class=\"breakdown-item\">\n <span class=\"sev-dot sev-warning\"></span> ${this._warningCount} ${this._warningCount === 1 ? 'warning' : 'warnings'}\n </span>\n <span class=\"breakdown-item\">\n <span class=\"sev-dot sev-info\"></span> ${this._infoCount} info\n </span>\n </div>\n </div>\n </div>\n ${this.issues.length === 0 ? html`\n <div class=\"empty\" role=\"status\">\n <cg-icon name=\"success\" size=\"lg\"></cg-icon>\n <span>No accessibility issues found.</span>\n </div>\n ` : html`\n <div class=\"issue-list\" role=\"list\" aria-label=\"Accessibility issues\">\n ${this.issues.map((issue, i) => html`\n <div class=\"issue-item\" role=\"listitem\">\n <button class=\"issue-header\"\n @click=${() => this._onClick(issue, i)}\n aria-expanded=${this._expanded.has(i) ? 'true' : 'false'}>\n ${this._sevIcon(issue.severity)}\n <span class=\"issue-rule\">${issue.rule}</span>\n <span class=\"level-badge level-${issue.level}\">WCAG ${issue.level}</span>\n <cg-icon class=\"chevron\" name=\"chevron-down\" size=\"xs\"></cg-icon>\n </button>\n ${this._expanded.has(i) ? html`\n <div class=\"issue-details\">\n <div class=\"issue-desc\">${issue.description}</div>\n ${issue.element ? html`\n <code class=\"issue-element\">${issue.element}</code>\n ` : nothing}\n ${issue.fix ? html`\n <div class=\"issue-fix\">\n <span class=\"issue-fix-label\">Fix:</span>\n <span>${issue.fix}</span>\n </div>\n ` : nothing}\n </div>\n ` : nothing}\n </div>\n `)}\n </div>\n `}\n </cg-card>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ai-accessibility-report': AiAccessibilityReport;\n }\n}\n"],"names":["AiAccessibilityReport","LitElement","i","idx","next","issue","severity","map","cls","html","circumference","offset","scoreColor","total","passed","nothing","hostBlock","reducedMotion","fadeSlideInKeyframes","css","__decorateClass","property","state","customElement"],"mappings":";;;;;;;;;;AAmCO,IAAMA,IAAN,cAAoCC,EAAW;AAAA,EAA/C,cAAA;AAAA,UAAA,GAAA,SAAA,GAkPsB,KAAA,SAAsB,CAAA,GACrB,KAAA,QAAQ,GACR,KAAS,QAAQ,wBAEU,KAAA,cAAc,GAE5D,KAAQ,gCAAgB,IAAA;AAAA,EAAY;AAAA,EAE7C,IAAY,cAAc;AAAE,WAAO,KAAK,OAAO,OAAO,OAAKC,EAAE,aAAa,OAAO,EAAE;AAAA,EAAQ;AAAA,EAC3F,IAAY,gBAAgB;AAAE,WAAO,KAAK,OAAO,OAAO,OAAKA,EAAE,aAAa,SAAS,EAAE;AAAA,EAAQ;AAAA,EAC/F,IAAY,aAAa;AAAE,WAAO,KAAK,OAAO,OAAO,OAAKA,EAAE,aAAa,MAAM,EAAE;AAAA,EAAQ;AAAA,EAEjF,iBAAyB;AAC/B,WAAI,KAAK,SAAS,KAAW,gDACzB,KAAK,SAAS,MACd,KAAK,SAAS,KAAW,gDACtB;AAAA,EACT;AAAA,EAEQ,QAAQC,GAAmB;AACjC,UAAMC,IAAO,IAAI,IAAI,KAAK,SAAS;AACnC,IAAIA,EAAK,IAAID,CAAG,IAAGC,EAAK,OAAOD,CAAG,IAAQC,EAAK,IAAID,CAAG,GACtD,KAAK,YAAYC;AAAA,EACnB;AAAA,EAEQ,SAASC,GAAkBF,GAAmB;AACpD,SAAK,QAAQA,CAAG,GAChB,KAAK,cAAc,IAAI,YAAY,uBAAuB;AAAA,MACxD,SAAS;AAAA,MAAM,UAAU;AAAA,MACzB,QAAQ,EAAE,OAAAE,GAAO,OAAOF,EAAA;AAAA,IAAI,CAC7B,CAAC;AAAA,EACJ;AAAA,EAEQ,SAASG,GAAkB;AACjC,UAAMC,IAA8B;AAAA,MAClC,OAAO;AAAA,MACP,SAAS;AAAA,MACT,MAAM;AAAA,IAAA,GAEFC,IAAM,qBAAqBF,CAAQ;AACzC,WAAOG,gBAAmBD,CAAG,sCAAsCD,EAAID,CAAQ,KAAK,MAAM;AAAA,EAC5F;AAAA,EAES,SAAS;AAChB,UAAMI,IAAgB,IAAI,KAAK,KAAK,IAC9BC,IAASD,IAAiB,KAAK,QAAQ,MAAOA,GAC9CE,IAAa,KAAK,eAAA,GAClBC,IAAQ,KAAK,cAAc,IAAI,KAAK,cAAc,KAAK,OAAO,QAC9DC,IAAS,KAAK,IAAI,GAAGD,IAAQ,KAAK,OAAO,MAAM;AAErD,WAAOJ;AAAA;AAAA;AAAA,iEAGsD,KAAK,KAAK;AAAA,uFACY,KAAK,KAAK;AAAA;AAAA;AAAA;AAAA,gCAIjEG,CAAU;AAAA,0CACAF,CAAa;AAAA,2CACZC,CAAM;AAAA;AAAA,mDAEEC,CAAU,KAAK,KAAK,KAAK;AAAA;AAAA;AAAA,gCAG5C,KAAK,KAAK;AAAA,cAC5BC,IAAQ,IAAIJ;AAAA,sCACYK,CAAM,OAAOD,CAAK;AAAA,gBACxCE,CAAO;AAAA;AAAA;AAAA,0DAGmC,KAAK,WAAW,IAAI,KAAK,gBAAgB,IAAI,UAAU,QAAQ;AAAA;AAAA;AAAA,4DAG7D,KAAK,aAAa,IAAI,KAAK,kBAAkB,IAAI,YAAY,UAAU;AAAA;AAAA;AAAA,yDAG1E,KAAK,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,UAK9D,KAAK,OAAO,WAAW,IAAIN;AAAA;AAAA;AAAA;AAAA;AAAA,YAKzBA;AAAA;AAAA,cAEE,KAAK,OAAO,IAAI,CAACJ,GAAOH,MAAMO;AAAA;AAAA;AAAA,iCAGX,MAAM,KAAK,SAASJ,GAAOH,CAAC,CAAC;AAAA,wCACtB,KAAK,UAAU,IAAIA,CAAC,IAAI,SAAS,OAAO;AAAA,oBAC5D,KAAK,SAASG,EAAM,QAAQ,CAAC;AAAA,6CACJA,EAAM,IAAI;AAAA,mDACJA,EAAM,KAAK,UAAUA,EAAM,KAAK;AAAA;AAAA;AAAA,kBAGjE,KAAK,UAAU,IAAIH,CAAC,IAAIO;AAAA;AAAA,8CAEIJ,EAAM,WAAW;AAAA,sBACzCA,EAAM,UAAUI;AAAA,oDACcJ,EAAM,OAAO;AAAA,wBACzCU,CAAO;AAAA,sBACTV,EAAM,MAAMI;AAAA;AAAA;AAAA,gCAGFJ,EAAM,GAAG;AAAA;AAAA,wBAEjBU,CAAO;AAAA;AAAA,oBAEXA,CAAO;AAAA;AAAA,aAEd,CAAC;AAAA;AAAA,SAEL;AAAA;AAAA;AAAA,EAGP;AACF;AA1Waf,EACK,SAAS,CAACgB,GAAWC,GAAeC,GAAsBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA+OzE;AAE0BC,EAAA;AAAA,EAA1BC,EAAS,EAAE,MAAM,MAAA,CAAO;AAAA,GAlPdrB,EAkPgB,WAAA,UAAA,CAAA;AACCoB,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAnPfrB,EAmPiB,WAAA,SAAA,CAAA;AACSoB,EAAA;AAAA,EAApCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GApPfrB,EAoP0B,WAAA,SAAA,CAAA;AAEkBoB,EAAA;AAAA,EAAtDC,EAAS,EAAE,MAAM,QAAQ,WAAW,gBAAgB;AAAA,GAtP1CrB,EAsP4C,WAAA,eAAA,CAAA;AAEtCoB,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAxPItB,EAwPM,WAAA,aAAA,CAAA;AAxPNA,IAANoB,EAAA;AAAA,EADNG,EAAc,yBAAyB;AAAA,GAC3BvB,CAAA;"}
1
+ {"version":3,"file":"ai-accessibility-report.js","sources":["../../../src/components/ai-accessibility-report/ai-accessibility-report.ts"],"sourcesContent":["/**\n * @element ai-accessibility-report\n * WCAG compliance report with score circle, severity breakdown, and expandable\n * issue list with optional \"How to fix\" suggestions per issue. Modeled after\n * Lighthouse / axe DevTools / Accessibility Insights.\n *\n * @example\n * ```html\n * <ai-accessibility-report\n * .issues=${[{rule:'color-contrast', level:'AA', severity:'error',\n * description:'Low contrast ratio', fix:'Increase contrast to at least 4.5:1'}]}\n * score=\"72\"\n * title=\"Page Audit\"\n * ></ai-accessibility-report>\n * ```\n *\n * @fires {CustomEvent<{issue: A11yIssue, index: number}>} ai-a11y-issue-click - Issue row clicked/expanded\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, fadeSlideInKeyframes } from '../../styles/index.js';\nimport '../cg-card/cg-card.js';\nimport '../cg-icon/cg-icon.js';\n\nexport interface A11yIssue {\n rule: string;\n level: 'A' | 'AA' | 'AAA';\n severity: 'error' | 'warning' | 'info';\n element?: string;\n description: string;\n /** Optional fix suggestion (axe DevTools / Lighthouse pattern) */\n fix?: string;\n}\n\n@customElement('ai-accessibility-report')\nexport class AiAccessibilityReport extends LitElement {\n static override styles = [hostBlock, reducedMotion, fadeSlideInKeyframes, css`\n :host {\n display: block;\n animation: fadeSlideIn var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out) both;\n }\n :host([hidden]) { display: none; }\n\n .header {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-16);\n padding-bottom: var(--cg-spacing-12);\n border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n margin-bottom: var(--cg-spacing-16);\n }\n\n .score-circle {\n position: relative;\n width: var(--cg-spacing-64);\n height: var(--cg-spacing-64);\n flex-shrink: 0;\n }\n\n .score-circle svg {\n width: var(--cg-spacing-64);\n height: var(--cg-spacing-64);\n transform: rotate(-90deg);\n }\n\n .score-bg {\n fill: none;\n stroke: var(--cg-color-surface-cards-border);\n stroke-width: 5;\n }\n\n .score-fg {\n fill: none;\n stroke-width: 5;\n stroke-linecap: round;\n transition: stroke-dashoffset var(--cg-transition-duration-slow) var(--cg-transition-easing-default);\n }\n\n .score-text {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--cg-font-size-lg);\n font-weight: var(--cg-font-weight-bold);\n }\n\n .header-info {\n flex: 1;\n min-width: 0;\n }\n\n .title {\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-semibold);\n margin: 0 0 var(--cg-spacing-4) 0;\n color: var(--cg-color-surface-base-text);\n }\n\n .pass-count {\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-outlined);\n margin: 0 0 var(--cg-spacing-6) 0;\n }\n\n .breakdown {\n display: flex;\n flex-wrap: wrap;\n gap: var(--cg-spacing-12);\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-outlined);\n }\n\n .breakdown-item {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-4);\n }\n\n .sev-dot {\n width: var(--cg-spacing-8);\n height: var(--cg-spacing-8);\n border-radius: var(--cg-border-radius-full);\n }\n\n .sev-error { background: var(--cg-color-status-error-text-default); }\n .sev-warning { background: var(--cg-color-status-warning-text-default); }\n .sev-info { background: var(--cg-color-status-info-text-default); }\n\n .issue-list {\n display: flex;\n flex-direction: column;\n gap: var(--cg-spacing-6);\n }\n\n .issue-item {\n border-radius: var(--cg-border-radius-100);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n overflow: hidden;\n transition: border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .issue-item:hover {\n border-color: var(--cg-color-surface-cards-hover-border);\n }\n\n .issue-header {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n padding: var(--cg-spacing-8) var(--cg-spacing-12);\n min-height: var(--cg-spacing-40);\n cursor: pointer;\n background: transparent;\n border: none;\n color: inherit;\n width: 100%;\n font-family: inherit;\n font-size: var(--cg-font-size-sm);\n text-align: left;\n transition:\n background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .issue-header:hover {\n background: var(--cg-color-surface-cards-hover-background);\n }\n .issue-header:active { transform: scale(var(--cg-interaction-press-scale)); }\n .issue-header:focus-visible {\n outline: none;\n box-shadow: inset 0 0 0 var(--cg-border-width-100) var(--cg-color-focus-ring);\n }\n\n .sev-icon {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n }\n .sev-icon-error { color: var(--cg-color-status-error-text-default); }\n .sev-icon-warning { color: var(--cg-color-status-warning-text-default); }\n .sev-icon-info { color: var(--cg-color-status-info-text-default); }\n\n .issue-rule {\n flex: 1;\n font-weight: var(--cg-font-weight-medium);\n color: var(--cg-color-surface-base-text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .chevron {\n color: var(--cg-color-surface-container-outlined);\n transition: transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .issue-header[aria-expanded=\"true\"] .chevron {\n transform: rotate(180deg);\n }\n\n .level-badge {\n display: inline-flex;\n padding: var(--cg-spacing-2) var(--cg-spacing-6);\n border-radius: var(--cg-border-radius-50);\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-bold);\n flex-shrink: 0;\n }\n .level-A {\n background: var(--cg-color-status-info-background-default);\n color: var(--cg-color-status-info-text-default);\n }\n .level-AA {\n background: var(--cg-color-status-warning-background-default);\n color: var(--cg-color-status-warning-text-default);\n }\n .level-AAA {\n background: var(--cg-overlay-accent-subtle);\n color: var(--cg-color-accent-text);\n }\n\n .issue-details {\n padding: var(--cg-spacing-8) var(--cg-spacing-12) var(--cg-spacing-12) var(--cg-spacing-32);\n border-top: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n font-size: var(--cg-font-size-sm);\n display: flex;\n flex-direction: column;\n gap: var(--cg-spacing-8);\n }\n\n .issue-desc {\n color: var(--cg-color-surface-container-outlined);\n line-height: var(--cg-line-height-normal);\n }\n\n .issue-element {\n display: inline-block;\n align-self: flex-start;\n padding: var(--cg-spacing-2) var(--cg-spacing-8);\n background: var(--cg-color-action-tertiary-background-hover);\n border-radius: var(--cg-border-radius-50);\n font-family: var(--cg-font-family-mono);\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-base-text);\n word-break: break-all;\n }\n\n .issue-fix {\n display: flex;\n align-items: flex-start;\n gap: var(--cg-spacing-6);\n padding: var(--cg-spacing-6) var(--cg-spacing-8);\n background: var(--cg-overlay-accent-subtle);\n border: var(--cg-border-width-50) solid var(--cg-overlay-accent-strong);\n border-radius: var(--cg-border-radius-50);\n color: var(--cg-color-surface-base-text);\n line-height: var(--cg-line-height-normal);\n }\n .issue-fix-label {\n font-weight: var(--cg-font-weight-semibold);\n color: var(--cg-color-accent-text);\n flex-shrink: 0;\n }\n\n .empty {\n text-align: center;\n padding: var(--cg-spacing-24);\n color: var(--cg-color-surface-container-outlined);\n font-size: var(--cg-font-size-sm);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--cg-spacing-8);\n }\n .empty cg-icon {\n color: var(--cg-color-status-success-text-default);\n }\n `];\n\n @property({ type: Array }) issues: A11yIssue[] = [];\n @property({ type: Number }) score = 0;\n @property({ type: String }) override title = 'Accessibility Report';\n /** Total checks run (for \"X of Y passed\" display). Defaults to issues.length when 0. */\n @property({ type: Number, attribute: 'total-checks' }) totalChecks = 0;\n\n @state() private _expanded = new Set<number>();\n\n private get _errorCount() { return this.issues.filter(i => i.severity === 'error').length; }\n private get _warningCount() { return this.issues.filter(i => i.severity === 'warning').length; }\n private get _infoCount() { return this.issues.filter(i => i.severity === 'info').length; }\n\n private _getScoreColor(): string {\n if (this.score >= 90) return 'var(--cg-color-status-success-text-default)';\n if (this.score >= 70) return 'var(--cg-color-status-warning-text-default)';\n if (this.score >= 50) return 'var(--cg-color-status-warning-text-default)';\n return 'var(--cg-color-status-error-text-default)';\n }\n\n private _toggle(idx: number): void {\n const next = new Set(this._expanded);\n if (next.has(idx)) next.delete(idx); else next.add(idx);\n this._expanded = next;\n }\n\n private _onClick(issue: A11yIssue, idx: number): void {\n this._toggle(idx);\n this.dispatchEvent(new CustomEvent('ai-a11y-issue-click', {\n bubbles: true, composed: true,\n detail: { issue, index: idx },\n }));\n }\n\n private _sevIcon(severity: string) {\n const map: Record<string, string> = {\n error: 'error',\n warning: 'warning',\n info: 'info',\n };\n const cls = `sev-icon sev-icon-${severity}`;\n return html`<span class=${cls} aria-hidden=\"true\"><cg-icon name=\"${map[severity] ?? 'info'}\" size=\"sm\"></cg-icon></span>`;\n }\n\n override render() {\n const circumference = 2 * Math.PI * 27;\n const offset = circumference - (this.score / 100) * circumference;\n const scoreColor = this._getScoreColor();\n const total = this.totalChecks > 0 ? this.totalChecks : this.issues.length;\n const passed = Math.max(0, total - this.issues.length);\n\n return html`\n <cg-card>\n <div class=\"header\">\n <div class=\"score-circle\" role=\"meter\" aria-valuenow=${this.score}\n aria-valuemin=\"0\" aria-valuemax=\"100\" aria-label=\"Accessibility score ${this.score} out of 100\">\n <svg viewBox=\"0 0 64 64\" aria-hidden=\"true\">\n <circle class=\"score-bg\" cx=\"32\" cy=\"32\" r=\"27\" />\n <circle class=\"score-fg\" cx=\"32\" cy=\"32\" r=\"27\"\n stroke=\"${scoreColor}\"\n stroke-dasharray=\"${circumference}\"\n stroke-dashoffset=\"${offset}\" />\n </svg>\n <div class=\"score-text\" style=\"color:${scoreColor}\">${this.score}</div>\n </div>\n <div class=\"header-info\">\n <h3 class=\"title\">${this.title}</h3>\n ${total > 0 ? html`\n <p class=\"pass-count\">${passed} of ${total} checks passed</p>\n ` : nothing}\n <div class=\"breakdown\">\n <span class=\"breakdown-item\">\n <span class=\"sev-dot sev-error\"></span> ${this._errorCount} ${this._errorCount === 1 ? 'error' : 'errors'}\n </span>\n <span class=\"breakdown-item\">\n <span class=\"sev-dot sev-warning\"></span> ${this._warningCount} ${this._warningCount === 1 ? 'warning' : 'warnings'}\n </span>\n <span class=\"breakdown-item\">\n <span class=\"sev-dot sev-info\"></span> ${this._infoCount} info\n </span>\n </div>\n </div>\n </div>\n ${this.issues.length === 0 ? html`\n <div class=\"empty\" role=\"status\">\n <cg-icon name=\"success\" size=\"lg\"></cg-icon>\n <span>No accessibility issues found.</span>\n </div>\n ` : html`\n <div class=\"issue-list\" role=\"list\" aria-label=\"Accessibility issues\">\n ${this.issues.map((issue, i) => html`\n <div class=\"issue-item\" role=\"listitem\">\n <button class=\"issue-header\"\n @click=${() => this._onClick(issue, i)}\n aria-expanded=${this._expanded.has(i) ? 'true' : 'false'}>\n ${this._sevIcon(issue.severity)}\n <span class=\"issue-rule\">${issue.rule}</span>\n <span class=\"level-badge level-${issue.level}\">WCAG ${issue.level}</span>\n <cg-icon class=\"chevron\" name=\"chevron-down\" size=\"xs\"></cg-icon>\n </button>\n ${this._expanded.has(i) ? html`\n <div class=\"issue-details\">\n <div class=\"issue-desc\">${issue.description}</div>\n ${issue.element ? html`\n <code class=\"issue-element\">${issue.element}</code>\n ` : nothing}\n ${issue.fix ? html`\n <div class=\"issue-fix\">\n <span class=\"issue-fix-label\">Fix:</span>\n <span>${issue.fix}</span>\n </div>\n ` : nothing}\n </div>\n ` : nothing}\n </div>\n `)}\n </div>\n `}\n </cg-card>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ai-accessibility-report': AiAccessibilityReport;\n }\n}\n"],"names":["AiAccessibilityReport","LitElement","i","idx","next","issue","severity","map","cls","html","circumference","offset","scoreColor","total","passed","nothing","hostBlock","reducedMotion","fadeSlideInKeyframes","css","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-action-preview.d.ts","sourceRoot":"","sources":["../../../src/components/ai-action-preview/ai-action-preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,KAAK,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAEvD,qBACa,eAAgB,SAAQ,UAAU;IAC7C,OAAgB,MAAM,4BA6JnB;IACyB,OAAO,SAAM;IACb,WAAW,SAAM;IACjB,MAAM,SAAM;IACZ,QAAQ,EAAE,QAAQ,CAAS;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IACzC,YAAY,SAAa;IACzB,WAAW,SAAY;IACvB,SAAS,SAAK;IAEjC,OAAO,CAAC,UAAU,CAAK;IAChC,OAAO,CAAC,MAAM,CAAC,CAA6C;IAEnD,iBAAiB;IAKjB,oBAAoB;IAKpB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAI9C,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,aAAa;IAOZ,MAAM;CAmDhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,eAAe,CAAC;KACtC;CACF"}
1
+ {"version":3,"file":"ai-action-preview.d.ts","sourceRoot":"","sources":["../../../src/components/ai-action-preview/ai-action-preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,KAAK,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAEvD,qBACa,eAAgB,SAAQ,UAAU;IAC7C,OAAgB,MAAM,4BA8JnB;IACyB,OAAO,SAAM;IACb,WAAW,SAAM;IACjB,MAAM,SAAM;IACZ,QAAQ,EAAE,QAAQ,CAAS;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IACzC,YAAY,SAAa;IACzB,WAAW,SAAY;IACvB,SAAS,SAAK;IAEjC,OAAO,CAAC,UAAU,CAAK;IAChC,OAAO,CAAC,MAAM,CAAC,CAA6C;IAEnD,iBAAiB;IAKjB,oBAAoB;IAKpB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAI9C,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,aAAa;IAOZ,MAAM;CAmDhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,eAAe,CAAC;KACtC;CACF"}
@@ -1,10 +1,10 @@
1
- import { css as u, LitElement as v, nothing as g, html as s } from "lit";
1
+ import { css as u, LitElement as v, nothing as g, html as n } from "lit";
2
2
  import { property as a, state as p, customElement as f } from "lit/decorators.js";
3
- import { h as b, r as h, p as m, f as y } from "../../chunks/premium.css-9I4kHrsl.js";
4
- var w = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, t = (e, o, c, n) => {
5
- for (var i = n > 1 ? void 0 : n ? _(o, c) : o, l = e.length - 1, d; l >= 0; l--)
6
- (d = e[l]) && (i = (n ? d(o, c, i) : d(i)) || i);
7
- return n && i && w(o, c, i), i;
3
+ import { h as b, r as h, p as m, f as y } from "../../chunks/premium.css-DHekUEUt.js";
4
+ var w = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, t = (e, o, c, s) => {
5
+ for (var i = s > 1 ? void 0 : s ? _(o, c) : o, l = e.length - 1, d; l >= 0; l--)
6
+ (d = e[l]) && (i = (s ? d(o, c, i) : d(i)) || i);
7
+ return s && i && w(o, c, i), i;
8
8
  };
9
9
  let r = class extends v {
10
10
  constructor() {
@@ -51,7 +51,7 @@ let r = class extends v {
51
51
  }
52
52
  render() {
53
53
  const e = Object.entries(this.details);
54
- return s`
54
+ return n`
55
55
  <div
56
56
  class="card ${this.severity === "critical" ? "critical" : ""}"
57
57
  role="alertdialog"
@@ -66,11 +66,11 @@ let r = class extends v {
66
66
  </span>
67
67
  </div>
68
68
 
69
- ${this.description ? s`<div class="description">${this.description}</div>` : g}
69
+ ${this.description ? n`<div class="description">${this.description}</div>` : g}
70
70
 
71
- ${e.length > 0 ? s`
71
+ ${e.length > 0 ? n`
72
72
  <div class="details" role="list" aria-label="Action details">
73
- ${e.map(([o, c]) => s`
73
+ ${e.map(([o, c]) => n`
74
74
  <div class="detail-row" role="listitem">
75
75
  <span class="detail-key">${o}</span>
76
76
  <span class="detail-value">${c}</span>
@@ -79,7 +79,7 @@ let r = class extends v {
79
79
  </div>
80
80
  ` : g}
81
81
 
82
- ${this._remaining > 0 ? s`
82
+ ${this._remaining > 0 ? n`
83
83
  <div class="countdown" aria-live="polite">
84
84
  Auto-confirming in <span class="countdown-num">${this._remaining}s</span>
85
85
  </div>
@@ -116,7 +116,7 @@ r.styles = [b, h, m, y, u`
116
116
  }
117
117
  .card.critical {
118
118
  border-color: var(--cg-color-status-error-text-default);
119
- animation: pulse-border 2s ease-in-out infinite;
119
+ animation: pulse-border var(--cg-transition-duration-slow) var(--cg-transition-easing-ease-in-out) infinite;
120
120
  }
121
121
 
122
122
  /* ── Header ── */
@@ -155,7 +155,7 @@ r.styles = [b, h, m, y, u`
155
155
  }
156
156
  .severity.high {
157
157
  background: var(--cg-color-status-error-background-default);
158
- color: var(--cg-color-chart-5);
158
+ color: var(--cg-color-status-error-text-default);
159
159
  }
160
160
  .severity.critical {
161
161
  background: var(--cg-color-status-error-background-default);
@@ -216,6 +216,7 @@ r.styles = [b, h, m, y, u`
216
216
  }
217
217
  button {
218
218
  flex: 1;
219
+ min-height: var(--cg-component-button-height-md);
219
220
  padding: var(--cg-spacing-8) var(--cg-spacing-16);
220
221
  border-radius: var(--cg-border-radius-100);
221
222
  font-size: var(--cg-font-size-sm);
@@ -229,7 +230,7 @@ r.styles = [b, h, m, y, u`
229
230
  }
230
231
  button:focus-visible {
231
232
  outline: none;
232
- box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong);
233
+ box-shadow: 0 0 0 var(--cg-border-width-300) var(--cg-color-focus-ring);
233
234
  }
234
235
  button:active {
235
236
  transform: scale(0.97);
@@ -1 +1 @@
1
- {"version":3,"file":"ai-action-preview.js","sources":["../../../src/components/ai-action-preview/ai-action-preview.ts"],"sourcesContent":["/**\n * @element ai-action-preview\n * Confirmation card for dangerous or irreversible AI actions with severity badge and optional countdown.\n *\n * @example\n * ```html\n * <ai-action-preview\n * heading=\"Delete training data\"\n * severity=\"critical\"\n * .details=${{Dataset: 'prod-v2', Rows: '14,200'}}\n * countdown=\"10\"\n * ></ai-action-preview>\n * ```\n *\n * @fires {CustomEvent<{action: string, details: Record<string,string>}>} ai-action-confirm - User confirmed\n * @fires {CustomEvent<{action: string}>} ai-action-cancel - User cancelled\n *\n * @cssprop [--cg-brand-ai-accent=#dfff61] - Confirm button and focus ring color\n * @cssprop [--cg-red-400=#f87171] - Critical severity border and pulse\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, pulseKeyframes, fadeSlideInKeyframes } from '../../styles/index.js';\n\ntype Severity = 'low' | 'medium' | 'high' | 'critical';\n\n@customElement('ai-action-preview')\nexport class AiActionPreview extends LitElement {\n static override styles = [hostBlock, reducedMotion, pulseKeyframes, fadeSlideInKeyframes, css`\n :host {\n animation: fadeSlideIn var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out) both;\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);\n position: relative;\n overflow: hidden;\n }\n .card.critical {\n border-color: var(--cg-color-status-error-text-default);\n animation: pulse-border 2s ease-in-out infinite;\n }\n\n /* ── Header ── */\n .header {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n margin-bottom: var(--cg-spacing-16);\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 flex: 1;\n }\n\n /* ── Severity badge ── */\n .severity {\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-bold);\n text-transform: uppercase;\n letter-spacing: var(--cg-letter-spacing-wide);\n }\n .severity.low {\n background: var(--cg-color-status-success-background-default);\n color: var(--cg-color-status-success-text-default);\n }\n .severity.medium {\n background: var(--cg-color-status-warning-background-default);\n color: var(--cg-color-status-warning-text-default);\n }\n .severity.high {\n background: var(--cg-color-status-error-background-default);\n color: var(--cg-color-chart-5);\n }\n .severity.critical {\n background: var(--cg-color-status-error-background-default);\n color: var(--cg-color-status-error-text-default);\n }\n\n /* ── Description ── */\n .description {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-input-text-placeholder);\n line-height: 1.5;\n margin-bottom: var(--cg-spacing-16);\n }\n\n /* ── Details key-value list ── */\n .details {\n display: flex;\n flex-direction: column;\n gap: var(--cg-spacing-8);\n margin-bottom: var(--cg-spacing-16);\n padding: var(--cg-spacing-12);\n background: var(--cg-color-surface-base-background);\n border-radius: var(--cg-border-radius-100);\n }\n .detail-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: var(--cg-font-size-sm);\n }\n .detail-key {\n color: var(--cg-color-input-text-placeholder);\n font-weight: var(--cg-font-weight-medium);\n }\n .detail-value {\n color: var(--cg-color-surface-base-text);\n font-weight: var(--cg-font-weight-semibold);\n }\n\n /* ── Countdown ── */\n .countdown {\n text-align: center;\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-input-text-placeholder);\n margin-bottom: var(--cg-spacing-12);\n }\n .countdown-num {\n font-weight: var(--cg-font-weight-bold);\n color: var(--cg-color-surface-base-text);\n }\n\n /* ── Actions ── */\n .actions {\n padding-top: var(--cg-spacing-12);\n border-top: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n display: flex;\n gap: var(--cg-spacing-8);\n }\n button {\n flex: 1;\n padding: var(--cg-spacing-8) var(--cg-spacing-16);\n border-radius: var(--cg-border-radius-100);\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-semibold);\n cursor: pointer;\n transition: background var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n filter var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n border: none;\n }\n button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong);\n }\n button:active {\n transform: scale(0.97);\n }\n .btn-cancel {\n background: var(--cg-color-surface-container-background);\n color: var(--cg-color-surface-base-text);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n }\n .btn-cancel:hover { background: var(--cg-color-surface-cards-border); }\n .btn-confirm {\n background: var(--cg-color-action-primary-background-default);\n color: var(--cg-color-surface-base-background);\n }\n .btn-confirm:hover { filter: brightness(0.9); }\n .btn-confirm.critical {\n background: var(--cg-color-status-error-text-default);\n color: var(--cg-color-surface-base-text);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .card.critical { animation: none; }\n }\n\n @keyframes pulse-border {\n 0%, 100% { border-color: var(--cg-color-status-error-text-default); }\n 50% { border-color: var(--cg-color-status-error-border-default); }\n }\n `];\n @property({ type: String }) heading = '';\n @property({ type: String }) description = '';\n @property({ type: String }) action = '';\n @property({ type: String }) severity: Severity = 'low';\n @property({ attribute: false }) details: Record<string, string> = {};\n @property({ type: String }) confirmLabel = 'Confirm';\n @property({ type: String }) cancelLabel = 'Cancel';\n @property({ type: Number }) countdown = 0;\n\n @state() private _remaining = 0;\n private _timer?: ReturnType<typeof setInterval> | undefined;\n\n override connectedCallback() {\n super.connectedCallback();\n this._startCountdown();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this._clearTimer();\n }\n\n override updated(changed: Map<string, unknown>) {\n if (changed.has('countdown')) this._startCountdown();\n }\n\n private _clearTimer() {\n if (this._timer !== undefined) { clearInterval(this._timer); this._timer = undefined; }\n }\n\n private _startCountdown() {\n this._clearTimer();\n if (this.countdown > 0) {\n this._remaining = this.countdown;\n this._timer = setInterval(() => {\n this._remaining--;\n if (this._remaining <= 0) {\n this._clearTimer();\n this._handleConfirm();\n }\n }, 1000);\n }\n }\n\n private _confirmed = false;\n\n private _handleConfirm() {\n if (this._confirmed) return; // Guard double-fire\n this._confirmed = true;\n this._clearTimer();\n this.dispatchEvent(new CustomEvent('ai-action-confirm', {\n bubbles: true, composed: true,\n detail: { action: this.action, details: this.details },\n }));\n }\n\n private _handleCancel() {\n this._clearTimer();\n this.dispatchEvent(new CustomEvent('ai-action-cancel', {\n bubbles: true, composed: true,\n detail: { action: this.action },\n }));\n }\n\n private _severityIcon(): string {\n const icons: Record<Severity, string> = {\n low: '\\u2713', medium: '\\u26A0', high: '\\u26A0', critical: '\\u2716',\n };\n return icons[this.severity];\n }\n\n override render() {\n const entries = Object.entries(this.details);\n return html`\n <div\n class=\"card ${this.severity === 'critical' ? 'critical' : ''}\"\n role=\"alertdialog\"\n aria-label=\"Action preview: ${this.heading}\"\n tabindex=\"0\"\n >\n <div class=\"header\">\n <span class=\"title\">${this.heading}</span>\n <span class=\"severity ${this.severity}\" aria-label=\"Severity: ${this.severity}\">\n <span aria-hidden=\"true\">${this._severityIcon()}</span>\n ${this.severity}\n </span>\n </div>\n\n ${this.description ? html`<div class=\"description\">${this.description}</div>` : nothing}\n\n ${entries.length > 0 ? html`\n <div class=\"details\" role=\"list\" aria-label=\"Action details\">\n ${entries.map(([k, v]) => html`\n <div class=\"detail-row\" role=\"listitem\">\n <span class=\"detail-key\">${k}</span>\n <span class=\"detail-value\">${v}</span>\n </div>\n `)}\n </div>\n ` : nothing}\n\n ${this._remaining > 0 ? html`\n <div class=\"countdown\" aria-live=\"polite\">\n Auto-confirming in <span class=\"countdown-num\">${this._remaining}s</span>\n </div>\n ` : nothing}\n\n <div class=\"actions\">\n <button\n class=\"btn-cancel\"\n @click=${this._handleCancel}\n aria-label=\"${this.cancelLabel}\"\n >${this.cancelLabel}</button>\n <button\n class=\"btn-confirm ${this.severity === 'critical' ? 'critical' : ''}\"\n @click=${this._handleConfirm}\n aria-label=\"${this.confirmLabel}\"\n >${this.confirmLabel}</button>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ai-action-preview': AiActionPreview;\n }\n}\n"],"names":["AiActionPreview","LitElement","changed","entries","html","nothing","k","v","hostBlock","reducedMotion","pulseKeyframes","fadeSlideInKeyframes","css","__decorateClass","property","state","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"ai-action-preview.js","sources":["../../../src/components/ai-action-preview/ai-action-preview.ts"],"sourcesContent":["/**\n * @element ai-action-preview\n * Confirmation card for dangerous or irreversible AI actions with severity badge and optional countdown.\n *\n * @example\n * ```html\n * <ai-action-preview\n * heading=\"Delete training data\"\n * severity=\"critical\"\n * .details=${{Dataset: 'prod-v2', Rows: '14,200'}}\n * countdown=\"10\"\n * ></ai-action-preview>\n * ```\n *\n * @fires {CustomEvent<{action: string, details: Record<string,string>}>} ai-action-confirm - User confirmed\n * @fires {CustomEvent<{action: string}>} ai-action-cancel - User cancelled\n *\n * @cssprop [--cg-brand-ai-accent=#dfff61] - Confirm button and focus ring color\n * @cssprop [--cg-red-400=#f87171] - Critical severity border and pulse\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, pulseKeyframes, fadeSlideInKeyframes } from '../../styles/index.js';\n\ntype Severity = 'low' | 'medium' | 'high' | 'critical';\n\n@customElement('ai-action-preview')\nexport class AiActionPreview extends LitElement {\n static override styles = [hostBlock, reducedMotion, pulseKeyframes, fadeSlideInKeyframes, css`\n :host {\n animation: fadeSlideIn var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out) both;\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);\n position: relative;\n overflow: hidden;\n }\n .card.critical {\n border-color: var(--cg-color-status-error-text-default);\n animation: pulse-border var(--cg-transition-duration-slow) var(--cg-transition-easing-ease-in-out) infinite;\n }\n\n /* ── Header ── */\n .header {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n margin-bottom: var(--cg-spacing-16);\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 flex: 1;\n }\n\n /* ── Severity badge ── */\n .severity {\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-bold);\n text-transform: uppercase;\n letter-spacing: var(--cg-letter-spacing-wide);\n }\n .severity.low {\n background: var(--cg-color-status-success-background-default);\n color: var(--cg-color-status-success-text-default);\n }\n .severity.medium {\n background: var(--cg-color-status-warning-background-default);\n color: var(--cg-color-status-warning-text-default);\n }\n .severity.high {\n background: var(--cg-color-status-error-background-default);\n color: var(--cg-color-status-error-text-default);\n }\n .severity.critical {\n background: var(--cg-color-status-error-background-default);\n color: var(--cg-color-status-error-text-default);\n }\n\n /* ── Description ── */\n .description {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-input-text-placeholder);\n line-height: 1.5;\n margin-bottom: var(--cg-spacing-16);\n }\n\n /* ── Details key-value list ── */\n .details {\n display: flex;\n flex-direction: column;\n gap: var(--cg-spacing-8);\n margin-bottom: var(--cg-spacing-16);\n padding: var(--cg-spacing-12);\n background: var(--cg-color-surface-base-background);\n border-radius: var(--cg-border-radius-100);\n }\n .detail-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: var(--cg-font-size-sm);\n }\n .detail-key {\n color: var(--cg-color-input-text-placeholder);\n font-weight: var(--cg-font-weight-medium);\n }\n .detail-value {\n color: var(--cg-color-surface-base-text);\n font-weight: var(--cg-font-weight-semibold);\n }\n\n /* ── Countdown ── */\n .countdown {\n text-align: center;\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-input-text-placeholder);\n margin-bottom: var(--cg-spacing-12);\n }\n .countdown-num {\n font-weight: var(--cg-font-weight-bold);\n color: var(--cg-color-surface-base-text);\n }\n\n /* ── Actions ── */\n .actions {\n padding-top: var(--cg-spacing-12);\n border-top: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n display: flex;\n gap: var(--cg-spacing-8);\n }\n button {\n flex: 1;\n min-height: var(--cg-component-button-height-md);\n padding: var(--cg-spacing-8) var(--cg-spacing-16);\n border-radius: var(--cg-border-radius-100);\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-semibold);\n cursor: pointer;\n transition: background var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n filter var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n border: none;\n }\n button:focus-visible {\n outline: none;\n box-shadow: 0 0 0 var(--cg-border-width-300) var(--cg-color-focus-ring);\n }\n button:active {\n transform: scale(0.97);\n }\n .btn-cancel {\n background: var(--cg-color-surface-container-background);\n color: var(--cg-color-surface-base-text);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n }\n .btn-cancel:hover { background: var(--cg-color-surface-cards-border); }\n .btn-confirm {\n background: var(--cg-color-action-primary-background-default);\n color: var(--cg-color-surface-base-background);\n }\n .btn-confirm:hover { filter: brightness(0.9); }\n .btn-confirm.critical {\n background: var(--cg-color-status-error-text-default);\n color: var(--cg-color-surface-base-text);\n }\n\n @media (prefers-reduced-motion: reduce) {\n .card.critical { animation: none; }\n }\n\n @keyframes pulse-border {\n 0%, 100% { border-color: var(--cg-color-status-error-text-default); }\n 50% { border-color: var(--cg-color-status-error-border-default); }\n }\n `];\n @property({ type: String }) heading = '';\n @property({ type: String }) description = '';\n @property({ type: String }) action = '';\n @property({ type: String }) severity: Severity = 'low';\n @property({ attribute: false }) details: Record<string, string> = {};\n @property({ type: String }) confirmLabel = 'Confirm';\n @property({ type: String }) cancelLabel = 'Cancel';\n @property({ type: Number }) countdown = 0;\n\n @state() private _remaining = 0;\n private _timer?: ReturnType<typeof setInterval> | undefined;\n\n override connectedCallback() {\n super.connectedCallback();\n this._startCountdown();\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this._clearTimer();\n }\n\n override updated(changed: Map<string, unknown>) {\n if (changed.has('countdown')) this._startCountdown();\n }\n\n private _clearTimer() {\n if (this._timer !== undefined) { clearInterval(this._timer); this._timer = undefined; }\n }\n\n private _startCountdown() {\n this._clearTimer();\n if (this.countdown > 0) {\n this._remaining = this.countdown;\n this._timer = setInterval(() => {\n this._remaining--;\n if (this._remaining <= 0) {\n this._clearTimer();\n this._handleConfirm();\n }\n }, 1000);\n }\n }\n\n private _confirmed = false;\n\n private _handleConfirm() {\n if (this._confirmed) return; // Guard double-fire\n this._confirmed = true;\n this._clearTimer();\n this.dispatchEvent(new CustomEvent('ai-action-confirm', {\n bubbles: true, composed: true,\n detail: { action: this.action, details: this.details },\n }));\n }\n\n private _handleCancel() {\n this._clearTimer();\n this.dispatchEvent(new CustomEvent('ai-action-cancel', {\n bubbles: true, composed: true,\n detail: { action: this.action },\n }));\n }\n\n private _severityIcon(): string {\n const icons: Record<Severity, string> = {\n low: '\\u2713', medium: '\\u26A0', high: '\\u26A0', critical: '\\u2716',\n };\n return icons[this.severity];\n }\n\n override render() {\n const entries = Object.entries(this.details);\n return html`\n <div\n class=\"card ${this.severity === 'critical' ? 'critical' : ''}\"\n role=\"alertdialog\"\n aria-label=\"Action preview: ${this.heading}\"\n tabindex=\"0\"\n >\n <div class=\"header\">\n <span class=\"title\">${this.heading}</span>\n <span class=\"severity ${this.severity}\" aria-label=\"Severity: ${this.severity}\">\n <span aria-hidden=\"true\">${this._severityIcon()}</span>\n ${this.severity}\n </span>\n </div>\n\n ${this.description ? html`<div class=\"description\">${this.description}</div>` : nothing}\n\n ${entries.length > 0 ? html`\n <div class=\"details\" role=\"list\" aria-label=\"Action details\">\n ${entries.map(([k, v]) => html`\n <div class=\"detail-row\" role=\"listitem\">\n <span class=\"detail-key\">${k}</span>\n <span class=\"detail-value\">${v}</span>\n </div>\n `)}\n </div>\n ` : nothing}\n\n ${this._remaining > 0 ? html`\n <div class=\"countdown\" aria-live=\"polite\">\n Auto-confirming in <span class=\"countdown-num\">${this._remaining}s</span>\n </div>\n ` : nothing}\n\n <div class=\"actions\">\n <button\n class=\"btn-cancel\"\n @click=${this._handleCancel}\n aria-label=\"${this.cancelLabel}\"\n >${this.cancelLabel}</button>\n <button\n class=\"btn-confirm ${this.severity === 'critical' ? 'critical' : ''}\"\n @click=${this._handleConfirm}\n aria-label=\"${this.confirmLabel}\"\n >${this.confirmLabel}</button>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ai-action-preview': AiActionPreview;\n }\n}\n"],"names":["AiActionPreview","LitElement","changed","entries","html","nothing","k","v","hostBlock","reducedMotion","pulseKeyframes","fadeSlideInKeyframes","css","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { css as h, LitElement as p, nothing as c, html as e } from "lit";
2
2
  import { property as d, customElement as f } from "lit/decorators.js";
3
- import { h as u, r as v, f as b } from "../../chunks/premium.css-9I4kHrsl.js";
3
+ import { h as u, r as v, f as b } from "../../chunks/premium.css-DHekUEUt.js";
4
4
  var m = Object.defineProperty, y = Object.getOwnPropertyDescriptor, i = (a, s, g, l) => {
5
5
  for (var r = l > 1 ? void 0 : l ? y(s, g) : s, o = a.length - 1, n; o >= 0; o--)
6
6
  (n = a[o]) && (r = (l ? n(s, g, r) : n(r)) || r);
@@ -1,48 +1,35 @@
1
1
  import { LitElement, nothing } from 'lit';
2
- /** Optional classification used to pick the completed-step icon. */
3
- export type StepKind = 'llm' | 'tool' | 'retrieval' | 'decision';
4
2
  /** Step definition for ai-agent-steps. */
5
3
  export interface AgentStep {
6
4
  label: string;
7
5
  status: 'pending' | 'loading' | 'complete' | 'error';
8
6
  detail?: string;
9
- /** Optional duration in ms — rendered right-aligned for completed steps. */
10
- duration?: number;
11
- /** Optional step kind — drives the icon for completed steps. */
12
- kind?: StepKind;
13
7
  }
14
8
  /**
15
- * <ai-agent-steps> — Live agent task feed. Status icons (pending / running /
16
- * complete / error), shimmering label on the active step, connecting thread
17
- * line under the icons, optional per-step duration and kind (LLM call / tool
18
- * call / retrieval / decision). Modeled on LangGraph / Langfuse trace
19
- * viewers and the Cursor / Claude Code agent step lists.
9
+ * <ai-agent-steps> — Live task feed showing AI agent operations in progress.
20
10
  *
21
11
  * @example
22
12
  * ```html
23
13
  * <ai-agent-steps
24
14
  * .steps=${[
25
- * { label: 'Search the web', status: 'complete', duration: 1240, kind: 'tool' },
26
- * { label: 'Read 3 results', status: 'complete', duration: 880, kind: 'retrieval' },
27
- * { label: 'Analyse content', status: 'loading' },
28
- * { label: 'Generate summary', status: 'pending', kind: 'llm' },
15
+ * { label: 'Searching the web', status: 'complete' },
16
+ * { label: 'Reading 3 results', status: 'complete' },
17
+ * { label: 'Analyzing content', status: 'loading' },
18
+ * { label: 'Generating summary', status: 'pending' },
29
19
  * ]}
30
20
  * ></ai-agent-steps>
31
21
  * ```
32
22
  *
33
- * @fires {CustomEvent<{index: number, step: AgentStep}>} ai-step-click - Completed/errored step activated
23
+ * @fires {CustomEvent<{index: number}>} ai-step-click - When a completed step is clicked
34
24
  */
35
25
  export declare class AiAgentSteps extends LitElement {
36
26
  static styles: import('lit').CSSResult[];
37
- /** Steps array — each with label, status, optional detail / duration / kind. */
27
+ /** Steps array — each with label, status, and optional detail */
38
28
  steps: AgentStep[];
39
- /** Wrap in a card container. */
29
+ /** Wrap in a card container */
40
30
  contained: boolean;
41
- private _isInteractive;
42
- private _formatDuration;
43
31
  private _handleStepClick;
44
32
  private _renderStatusIcon;
45
- private _renderKindIcon;
46
33
  render(): import('lit').TemplateResult<1> | typeof nothing;
47
34
  }
48
35
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"ai-agent-steps.d.ts","sourceRoot":"","sources":["../../../src/components/ai-agent-steps/ai-agent-steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAO,MAAM,KAAK,CAAC;AAI1D,oEAAoE;AACpE,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;AAEjE,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBACa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,4BAuMnB;IAEH,gFAAgF;IACrD,KAAK,EAAE,SAAS,EAAE,CAAM;IAEnD,gCAAgC;IACY,SAAS,UAAS;IAI9D,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,eAAe;IAoBd,MAAM;CAiDhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAAG,gBAAgB,EAAE,YAAY,CAAC;KAAE;CACpE"}
1
+ {"version":3,"file":"ai-agent-steps.d.ts","sourceRoot":"","sources":["../../../src/components/ai-agent-steps/ai-agent-steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAIrD,0CAA0C;AAC1C,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,4BA+KnB;IAEH,iEAAiE;IACtC,KAAK,EAAE,SAAS,EAAE,CAAM;IAEnD,+BAA+B;IACa,SAAS,UAAS;IAE9D,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,iBAAiB;IAahB,MAAM;CAwBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAAG,gBAAgB,EAAE,YAAY,CAAC;KAAE;CACpE"}