@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 +1 @@
1
- {"version":3,"file":"ai-capture-flow.js","sources":["../../../src/components/ai-capture-flow/ai-capture-flow.ts"],"sourcesContent":["/**\n * @element ai-capture-flow\n * Multi-step capture wizard: upload, preview, processing, and result with step indicator.\n *\n * @example\n * ```html\n * <ai-capture-flow\n * step=\"upload\"\n * accept=\".pdf,.jpg,.png\"\n * heading=\"Document Scan\"\n * ></ai-capture-flow>\n * ```\n *\n * @fires {CustomEvent<{file: File}>} ai-capture-file - File selected or dropped\n * @fires {CustomEvent} ai-capture-confirm - User confirmed the preview\n * @fires {CustomEvent} ai-capture-retry - User chose to retake/retry\n * @fires {CustomEvent} ai-capture-complete - User clicked Done on the result\n *\n * @cssprop [--cg-brand-ai-accent=#dfff61] - Step dots, progress fill, and primary button color\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, fadeSlideInKeyframes } from '../../styles/index.js';\n\ntype Step = 'upload' | 'preview' | 'processing' | 'complete' | 'error';\nconst STEPS: Step[] = ['upload', 'preview', 'processing', 'complete'];\n\n@customElement('ai-capture-flow')\nexport class AiCaptureFlow extends LitElement {\n static override styles = [hostBlock, reducedMotion, fadeSlideInKeyframes, css`\n :host {\n animation: fadeSlideIn 200ms 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 }\n\n /* ── Title ── */\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 margin-bottom: var(--cg-spacing-16);\n }\n\n /* ── Step indicator ── */\n .steps {\n display: flex;\n align-items: center;\n gap: 0;\n margin-bottom: var(--cg-spacing-16);\n }\n .step-dot {\n width: var(--cg-spacing-24);\n height: var(--cg-spacing-24);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-bold);\n flex-shrink: 0;\n transition: opacity var(--cg-transition-duration-default) var(--cg-transition-easing-default);\n }\n .step-dot.done {\n background: var(--cg-color-action-primary-background-default);\n color: var(--cg-color-surface-base-background);\n }\n .step-dot.active {\n background: var(--cg-color-action-primary-background-default);\n color: var(--cg-color-surface-base-background);\n }\n .step-dot.pending {\n background: var(--cg-color-surface-container-background);\n color: var(--cg-color-input-text-placeholder);\n }\n .step-line {\n flex: 1;\n height: 2px;\n background: var(--cg-color-surface-container-background);\n transition: background var(--cg-transition-duration-default) var(--cg-transition-easing-default);\n }\n .step-line.done { background: var(--cg-color-action-primary-background-default); }\n\n /* ── Upload zone ── */\n .upload-zone {\n border: 2px dashed var(--cg-color-surface-cards-border);\n border-radius: var(--cg-border-radius-100);\n padding: var(--cg-spacing-24) var(--cg-spacing-16);\n text-align: center;\n cursor: pointer;\n transition: opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .upload-zone:hover, .upload-zone.drag-over {\n border-color: var(--cg-color-surface-base-text);\n background: var(--cg-overlay-accent-subtle);\n }\n .upload-zone:focus-visible {\n outline: 2px solid var(--cg-overlay-accent-strong);\n outline-offset: var(--cg-outline-offset-default);\n }\n .upload-icon { font-size: var(--cg-font-size-3xl); margin-bottom: var(--cg-spacing-8); }\n .upload-text {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-input-text-placeholder);\n line-height: 1.5;\n }\n .upload-hint {\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-input-text-placeholder);\n margin-top: var(--cg-spacing-6);\n }\n input[type=\"file\"] { display: none; }\n\n /* ── Preview ── */\n .preview { text-align: center; }\n .preview-img {\n max-width: 100%;\n max-height: var(240px);\n border-radius: var(--cg-border-radius-100);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n margin-bottom: var(--cg-spacing-16);\n object-fit: contain;\n }\n\n /* ── Progress ── */\n .processing { text-align: center; }\n .progress-label {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-input-text-placeholder);\n margin-bottom: var(--cg-spacing-12);\n }\n .progress-bar {\n width: 100%;\n height: var(--cg-spacing-6);\n background: var(--cg-color-surface-container-background);\n border-radius: var(--cg-border-radius-25);\n overflow: hidden;\n margin-bottom: var(--cg-spacing-8);\n }\n .progress-fill {\n height: 100%;\n background: var(--cg-color-action-primary-background-default);\n border-radius: var(--cg-border-radius-25);\n transition: width var(--cg-transition-duration-slow) var(--cg-transition-easing-default);\n }\n .progress-pct {\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-semibold);\n color: var(--cg-color-surface-base-text);\n }\n\n /* ── Result ── */\n .result { text-align: center; }\n .result-icon {\n font-size: var(--cg-font-size-2xl);\n margin-bottom: var(--cg-spacing-8);\n color: var(--cg-color-status-success-text-default);\n }\n .result-text {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-base-text);\n line-height: 1.5;\n margin-bottom: var(--cg-spacing-16);\n white-space: pre-wrap;\n }\n\n /* ── Error ── */\n .error-icon { color: var(--cg-color-status-error-text-default); }\n .error-text { color: var(--cg-color-status-error-text-default); }\n\n /* ── Buttons ── */\n .btn-row {\n display: flex;\n gap: var(--cg-spacing-8);\n justify-content: center;\n margin-top: var(--cg-spacing-16);\n }\n .btn-row button {\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 border: none;\n font-family: inherit;\n transition: filter var(--cg-transition-duration-fast) var(--cg-transition-easing-default), background var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .btn-row button:focus-visible {\n outline: 2px solid var(--cg-overlay-accent-strong);\n outline-offset: var(--cg-outline-offset-default);\n }\n .btn-primary {\n background: var(--cg-color-action-primary-background-default);\n color: var(--cg-color-surface-base-background);\n }\n .btn-primary:hover { filter: brightness(0.9); }\n .btn-secondary {\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-secondary:hover { background: var(--cg-color-surface-cards-border); }\n `];\n @property({ type: String }) step: Step = 'upload';\n @property({ type: String }) accept = '.pdf,.jpg,.png';\n @property({ type: String }) previewUrl = '';\n @property({ type: String }) result = '';\n @property({ type: Number }) progress = 0;\n @property({ type: String }) heading = 'Capture';\n\n @state() private _dragOver = false;\n\n private _dispatch(name: string, detail?: unknown) {\n this.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail }));\n }\n\n private _onDragOver(e: DragEvent) {\n e.preventDefault();\n this._dragOver = true;\n }\n\n private _onDragLeave() { this._dragOver = false; }\n\n private _onDrop(e: DragEvent) {\n e.preventDefault();\n this._dragOver = false;\n const file = e.dataTransfer?.files[0];\n if (file) this._dispatch('ai-capture-file', { file });\n }\n\n private _onFileInput(e: Event) {\n const input = e.target as HTMLInputElement;\n const file = input.files?.[0];\n if (file) this._dispatch('ai-capture-file', { file });\n input.value = '';\n }\n\n private _triggerFileInput() {\n this.shadowRoot?.querySelector<HTMLInputElement>('#file-input')?.click();\n }\n\n private _stepIndex(): number {\n if (this.step === 'error') return -1;\n return STEPS.indexOf(this.step);\n }\n\n private _renderSteps() {\n const current = this._stepIndex();\n const labels = ['Upload', 'Preview', 'Process', 'Done'];\n return html`\n <div class=\"steps\" role=\"navigation\" aria-label=\"Capture progress\">\n ${labels.map((label, i) => {\n const cls = i < current ? 'done' : i === current ? 'active' : 'pending';\n return html`\n ${i > 0 ? html`<div class=\"step-line ${i <= current ? 'done' : ''}\"></div>` : nothing}\n <div class=\"step-dot ${cls}\" aria-label=\"${label}: ${cls}\" title=\"${label}\">\n ${i < current ? '\\u2713' : i + 1}\n </div>\n `;\n })}\n </div>\n `;\n }\n\n private _renderUpload() {\n return html`\n <div\n class=\"upload-zone ${this._dragOver ? 'drag-over' : ''}\"\n role=\"button\"\n tabindex=\"0\"\n aria-label=\"Upload file\"\n @click=${this._triggerFileInput}\n @keydown=${(e: KeyboardEvent) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); this._triggerFileInput(); } }}\n @dragover=${this._onDragOver}\n @dragleave=${this._onDragLeave}\n @drop=${this._onDrop}\n >\n <div class=\"upload-icon\" aria-hidden=\"true\">&#128206;</div>\n <div class=\"upload-text\">Drop file here or click to browse</div>\n <div class=\"upload-hint\">Accepted: ${this.accept}</div>\n </div>\n <input type=\"file\" id=\"file-input\" accept=${this.accept} @change=${this._onFileInput}>\n `;\n }\n\n private _renderPreview() {\n return html`\n <div class=\"preview\">\n ${this.previewUrl\n ? html`<img class=\"preview-img\" src=${this.previewUrl} alt=\"File preview\">`\n : html`<div class=\"upload-text\">No preview available</div>`}\n <div class=\"btn-row\">\n <button class=\"btn-secondary\" @click=${() => this._dispatch('ai-capture-retry')}>Retake</button>\n <button class=\"btn-primary\" @click=${() => this._dispatch('ai-capture-confirm')}>Confirm</button>\n </div>\n </div>\n `;\n }\n\n private _renderProcessing() {\n return html`\n <div class=\"processing\">\n <div class=\"progress-label\">Processing...</div>\n <div class=\"progress-bar\" role=\"progressbar\" aria-valuenow=${this.progress} aria-valuemin=\"0\" aria-valuemax=\"100\">\n <div class=\"progress-fill\" style=\"width:${Math.min(this.progress, 100)}%\"></div>\n </div>\n <div class=\"progress-pct\">${Math.round(this.progress)}%</div>\n </div>\n `;\n }\n\n private _renderComplete() {\n return html`\n <div class=\"result\">\n <div class=\"result-icon\" aria-hidden=\"true\">&#10003;</div>\n <div class=\"result-text\">${this.result || 'Processing complete'}</div>\n <div class=\"btn-row\">\n <button class=\"btn-primary\" @click=${() => this._dispatch('ai-capture-complete')}>Done</button>\n </div>\n </div>\n `;\n }\n\n private _renderError() {\n return html`\n <div class=\"result\">\n <div class=\"result-icon error-icon\" aria-hidden=\"true\">&#10007;</div>\n <div class=\"result-text error-text\">${this.result || 'An error occurred'}</div>\n <div class=\"btn-row\">\n <button class=\"btn-secondary\" @click=${() => this._dispatch('ai-capture-retry')}>Retry</button>\n </div>\n </div>\n `;\n }\n\n override render() {\n return html`\n <div class=\"card\" role=\"region\" aria-label=\"${this.heading}\">\n ${this.heading ? html`<div class=\"title\">${this.heading}</div>` : nothing}\n ${this._renderSteps()}\n ${this.step === 'upload' ? this._renderUpload()\n : this.step === 'preview' ? this._renderPreview()\n : this.step === 'processing' ? this._renderProcessing()\n : this.step === 'complete' ? this._renderComplete()\n : this._renderError()}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ai-capture-flow': AiCaptureFlow;\n }\n}\n"],"names":["STEPS","AiCaptureFlow","LitElement","name","detail","e","file","input","current","html","label","i","cls","nothing","hostBlock","reducedMotion","fadeSlideInKeyframes","css","__decorateClass","property","state","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"ai-capture-flow.js","sources":["../../../src/components/ai-capture-flow/ai-capture-flow.ts"],"sourcesContent":["/**\n * @element ai-capture-flow\n * Multi-step capture wizard: upload, preview, processing, and result with step indicator.\n *\n * @example\n * ```html\n * <ai-capture-flow\n * step=\"upload\"\n * accept=\".pdf,.jpg,.png\"\n * heading=\"Document Scan\"\n * ></ai-capture-flow>\n * ```\n *\n * @fires {CustomEvent<{file: File}>} ai-capture-file - File selected or dropped\n * @fires {CustomEvent} ai-capture-confirm - User confirmed the preview\n * @fires {CustomEvent} ai-capture-retry - User chose to retake/retry\n * @fires {CustomEvent} ai-capture-complete - User clicked Done on the result\n *\n * @cssprop [--cg-brand-ai-accent=#dfff61] - Step dots, progress fill, and primary button color\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, fadeSlideInKeyframes } from '../../styles/index.js';\n\ntype Step = 'upload' | 'preview' | 'processing' | 'complete' | 'error';\nconst STEPS: Step[] = ['upload', 'preview', 'processing', 'complete'];\n\n@customElement('ai-capture-flow')\nexport class AiCaptureFlow extends LitElement {\n static override styles = [hostBlock, reducedMotion, 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 }\n\n /* ── Title ── */\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 margin-bottom: var(--cg-spacing-16);\n }\n\n /* ── Step indicator ── */\n .steps {\n display: flex;\n align-items: center;\n gap: 0;\n margin-bottom: var(--cg-spacing-16);\n }\n .step-dot {\n width: var(--cg-spacing-24);\n height: var(--cg-spacing-24);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-bold);\n flex-shrink: 0;\n transition: opacity var(--cg-transition-duration-default) var(--cg-transition-easing-default);\n }\n .step-dot.done {\n background: var(--cg-color-action-primary-background-default);\n color: var(--cg-color-surface-base-background);\n }\n .step-dot.active {\n background: var(--cg-color-action-primary-background-default);\n color: var(--cg-color-surface-base-background);\n }\n .step-dot.pending {\n background: var(--cg-color-surface-container-background);\n color: var(--cg-color-input-text-placeholder);\n }\n .step-line {\n flex: 1;\n height: var(--cg-spacing-2);\n background: var(--cg-color-surface-container-background);\n transition: background var(--cg-transition-duration-default) var(--cg-transition-easing-default);\n }\n .step-line.done { background: var(--cg-color-action-primary-background-default); }\n\n /* ── Upload zone ── */\n .upload-zone {\n border: var(--cg-border-width-100) dashed var(--cg-color-surface-cards-border);\n border-radius: var(--cg-border-radius-100);\n padding: var(--cg-spacing-24) var(--cg-spacing-16);\n text-align: center;\n cursor: pointer;\n transition: opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .upload-zone:hover, .upload-zone.drag-over {\n border-color: var(--cg-color-surface-base-text);\n background: var(--cg-overlay-accent-subtle);\n }\n .upload-zone:focus-visible {\n outline: var(--cg-border-width-100) solid var(--cg-color-focus-ring);\n outline-offset: var(--cg-outline-offset-default);\n }\n .upload-icon { font-size: var(--cg-font-size-3xl); margin-bottom: var(--cg-spacing-8); }\n .upload-text {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-input-text-placeholder);\n line-height: var(--cg-line-height-normal);\n }\n .upload-hint {\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-input-text-placeholder);\n margin-top: var(--cg-spacing-6);\n }\n input[type=\"file\"] { display: none; }\n\n /* ── Preview ── */\n .preview { text-align: center; }\n .preview-img {\n max-width: 100%;\n max-height: var(--cg-spacing-256);\n border-radius: var(--cg-border-radius-100);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n margin-bottom: var(--cg-spacing-16);\n object-fit: contain;\n }\n\n /* ── Progress ── */\n .processing { text-align: center; }\n .progress-label {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-input-text-placeholder);\n margin-bottom: var(--cg-spacing-12);\n }\n .progress-bar {\n width: 100%;\n height: var(--cg-spacing-6);\n background: var(--cg-color-surface-container-background);\n border-radius: var(--cg-border-radius-50);\n overflow: hidden;\n margin-bottom: var(--cg-spacing-8);\n }\n .progress-fill {\n height: 100%;\n background: var(--cg-color-action-primary-background-default);\n border-radius: var(--cg-border-radius-50);\n transition: width var(--cg-transition-duration-slow) var(--cg-transition-easing-default);\n }\n .progress-pct {\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-semibold);\n color: var(--cg-color-surface-base-text);\n }\n\n /* ── Result ── */\n .result { text-align: center; }\n .result-icon {\n font-size: var(--cg-font-size-2xl);\n margin-bottom: var(--cg-spacing-8);\n color: var(--cg-color-ai-complete-text);\n }\n .result-text {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-base-text);\n line-height: var(--cg-line-height-normal);\n margin-bottom: var(--cg-spacing-16);\n white-space: pre-wrap;\n }\n\n /* ── Error ── */\n .error-icon { color: var(--cg-color-ai-error-text); }\n .error-text { color: var(--cg-color-ai-error-text); }\n\n /* ── Buttons ── */\n .btn-row {\n display: flex;\n gap: var(--cg-spacing-8);\n justify-content: center;\n margin-top: var(--cg-spacing-16);\n }\n .btn-row button {\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 border: none;\n font-family: inherit;\n transition: filter var(--cg-transition-duration-fast) var(--cg-transition-easing-default), background var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .btn-row button:focus-visible {\n outline: var(--cg-border-width-100) solid var(--cg-color-focus-ring);\n outline-offset: var(--cg-outline-offset-default);\n }\n .btn-primary {\n background: var(--cg-color-action-primary-background-default);\n color: var(--cg-color-surface-base-background);\n }\n .btn-primary:hover { filter: brightness(0.9); }\n .btn-secondary {\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-secondary:hover { background: var(--cg-color-surface-cards-border); }\n `];\n @property({ type: String }) step: Step = 'upload';\n @property({ type: String }) accept = '.pdf,.jpg,.png';\n @property({ type: String }) previewUrl = '';\n @property({ type: String }) result = '';\n @property({ type: Number }) progress = 0;\n @property({ type: String }) heading = 'Capture';\n\n @state() private _dragOver = false;\n\n private _dispatch(name: string, detail?: unknown) {\n this.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail }));\n }\n\n private _onDragOver(e: DragEvent) {\n e.preventDefault();\n this._dragOver = true;\n }\n\n private _onDragLeave() { this._dragOver = false; }\n\n private _onDrop(e: DragEvent) {\n e.preventDefault();\n this._dragOver = false;\n const file = e.dataTransfer?.files[0];\n if (file) this._dispatch('ai-capture-file', { file });\n }\n\n private _onFileInput(e: Event) {\n const input = e.target as HTMLInputElement;\n const file = input.files?.[0];\n if (file) this._dispatch('ai-capture-file', { file });\n input.value = '';\n }\n\n private _triggerFileInput() {\n this.shadowRoot?.querySelector<HTMLInputElement>('#file-input')?.click();\n }\n\n private _stepIndex(): number {\n if (this.step === 'error') return -1;\n return STEPS.indexOf(this.step);\n }\n\n private _renderSteps() {\n const current = this._stepIndex();\n const labels = ['Upload', 'Preview', 'Process', 'Done'];\n return html`\n <div class=\"steps\" role=\"navigation\" aria-label=\"Capture progress\">\n ${labels.map((label, i) => {\n const cls = i < current ? 'done' : i === current ? 'active' : 'pending';\n return html`\n ${i > 0 ? html`<div class=\"step-line ${i <= current ? 'done' : ''}\"></div>` : nothing}\n <div class=\"step-dot ${cls}\" aria-label=\"${label}: ${cls}\" title=\"${label}\">\n ${i < current ? '\\u2713' : i + 1}\n </div>\n `;\n })}\n </div>\n `;\n }\n\n private _renderUpload() {\n return html`\n <div\n class=\"upload-zone ${this._dragOver ? 'drag-over' : ''}\"\n role=\"button\"\n tabindex=\"0\"\n aria-label=\"Upload file\"\n @click=${this._triggerFileInput}\n @keydown=${(e: KeyboardEvent) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); this._triggerFileInput(); } }}\n @dragover=${this._onDragOver}\n @dragleave=${this._onDragLeave}\n @drop=${this._onDrop}\n >\n <div class=\"upload-icon\" aria-hidden=\"true\">&#128206;</div>\n <div class=\"upload-text\">Drop file here or click to browse</div>\n <div class=\"upload-hint\">Accepted: ${this.accept}</div>\n </div>\n <input type=\"file\" id=\"file-input\" accept=${this.accept} @change=${this._onFileInput}>\n `;\n }\n\n private _renderPreview() {\n return html`\n <div class=\"preview\">\n ${this.previewUrl\n ? html`<img class=\"preview-img\" src=${this.previewUrl} alt=\"File preview\">`\n : html`<div class=\"upload-text\">No preview available</div>`}\n <div class=\"btn-row\">\n <button class=\"btn-secondary\" @click=${() => this._dispatch('ai-capture-retry')}>Retake</button>\n <button class=\"btn-primary\" @click=${() => this._dispatch('ai-capture-confirm')}>Confirm</button>\n </div>\n </div>\n `;\n }\n\n private _renderProcessing() {\n return html`\n <div class=\"processing\">\n <div class=\"progress-label\">Processing...</div>\n <div class=\"progress-bar\" role=\"progressbar\" aria-valuenow=${this.progress} aria-valuemin=\"0\" aria-valuemax=\"100\">\n <div class=\"progress-fill\" style=\"width:${Math.min(this.progress, 100)}%\"></div>\n </div>\n <div class=\"progress-pct\">${Math.round(this.progress)}%</div>\n </div>\n `;\n }\n\n private _renderComplete() {\n return html`\n <div class=\"result\">\n <div class=\"result-icon\" aria-hidden=\"true\">&#10003;</div>\n <div class=\"result-text\">${this.result || 'Processing complete'}</div>\n <div class=\"btn-row\">\n <button class=\"btn-primary\" @click=${() => this._dispatch('ai-capture-complete')}>Done</button>\n </div>\n </div>\n `;\n }\n\n private _renderError() {\n return html`\n <div class=\"result\">\n <div class=\"result-icon error-icon\" aria-hidden=\"true\">&#10007;</div>\n <div class=\"result-text error-text\">${this.result || 'An error occurred'}</div>\n <div class=\"btn-row\">\n <button class=\"btn-secondary\" @click=${() => this._dispatch('ai-capture-retry')}>Retry</button>\n </div>\n </div>\n `;\n }\n\n override render() {\n return html`\n <div class=\"card\" role=\"region\" aria-label=\"${this.heading}\">\n ${this.heading ? html`<div class=\"title\">${this.heading}</div>` : nothing}\n ${this._renderSteps()}\n ${this.step === 'upload' ? this._renderUpload()\n : this.step === 'preview' ? this._renderPreview()\n : this.step === 'processing' ? this._renderProcessing()\n : this.step === 'complete' ? this._renderComplete()\n : this._renderError()}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ai-capture-flow': AiCaptureFlow;\n }\n}\n"],"names":["STEPS","AiCaptureFlow","LitElement","name","detail","e","file","input","current","html","label","i","cls","nothing","hostBlock","reducedMotion","fadeSlideInKeyframes","css","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -1,18 +1,18 @@
1
- import { css as l, LitElement as p, html as i, nothing as v } from "lit";
1
+ import { css as g, LitElement as p, html as n, nothing as v } from "lit";
2
2
  import { property as u, state as b, customElement as f } from "lit/decorators.js";
3
- import { h, r as m, f as x } from "../../chunks/premium.css-9I4kHrsl.js";
3
+ import { h, r as m, f as x } from "../../chunks/premium.css-DHekUEUt.js";
4
4
  var y = Object.defineProperty, k = Object.getOwnPropertyDescriptor, d = (a, t, c, o) => {
5
5
  for (var r = o > 1 ? void 0 : o ? k(t, c) : t, e = a.length - 1, s; e >= 0; e--)
6
6
  (s = a[e]) && (r = (o ? s(t, c, r) : s(r)) || r);
7
7
  return o && r && y(t, c, r), r;
8
8
  };
9
- const g = {
9
+ const l = {
10
10
  model: "type-model",
11
11
  prompt: "type-prompt",
12
12
  config: "type-config",
13
13
  data: "type-data"
14
14
  };
15
- let n = class extends p {
15
+ let i = class extends p {
16
16
  constructor() {
17
17
  super(...arguments), this.entries = [], this._expandedSet = /* @__PURE__ */ new Set();
18
18
  }
@@ -34,14 +34,14 @@ let n = class extends p {
34
34
  }));
35
35
  }
36
36
  render() {
37
- return this.entries.length ? i`
37
+ return this.entries.length ? n`
38
38
  <div class="container" role="region" aria-label="Changelog">
39
39
  <div class="header">Changelog</div>
40
40
 
41
41
  <div class="timeline" role="list" aria-label="Version history">
42
42
  ${this.entries.map((a, t) => {
43
- const c = `${a.version}-${t}`, o = this._expandedSet.has(c), r = g[a.type] || g.config;
44
- return i`
43
+ const c = `${a.version}-${t}`, o = this._expandedSet.has(c), r = l[a.type] || l.config;
44
+ return n`
45
45
  <div class="entry" role="listitem">
46
46
  <div class="entry-dot ${r}" aria-hidden="true"></div>
47
47
  <div
@@ -62,7 +62,7 @@ let n = class extends p {
62
62
 
63
63
  <div class="entry-meta">
64
64
  <span>${a.date}</span>
65
- ${a.author ? i`<span>${a.author}</span>` : v}
65
+ ${a.author ? n`<span>${a.author}</span>` : v}
66
66
  </div>
67
67
 
68
68
  <div class="changes-preview ${o ? "expanded" : ""}">
@@ -93,10 +93,10 @@ let n = class extends p {
93
93
  })}
94
94
  </div>
95
95
  </div>
96
- ` : i`<div class="container"><div class="empty-state" role="status">No changelog entries</div></div>`;
96
+ ` : n`<div class="container"><div class="empty-state" role="status">No changelog entries</div></div>`;
97
97
  }
98
98
  };
99
- n.styles = [h, m, x, l`
99
+ i.styles = [h, m, x, g`
100
100
  :host {
101
101
  animation: fadeSlideIn var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out) both;
102
102
  }
@@ -138,7 +138,7 @@ n.styles = [h, m, x, l`
138
138
 
139
139
  .entry-dot {
140
140
  position: absolute;
141
- left: calc(-1 * var(--cg-spacing-20);
141
+ left: calc(-1 * var(--cg-spacing-20));
142
142
  top: var(--cg-spacing-6);
143
143
  width: var(--cg-spacing-8);
144
144
  height: var(--cg-spacing-8);
@@ -194,7 +194,7 @@ n.styles = [h, m, x, l`
194
194
  }
195
195
  .type-badge.type-config {
196
196
  background: var(--cg-overlay-accent-light);
197
- color: var(--cg-color-chart-7);
197
+ color: var(--cg-color-chart-7-stroke);
198
198
  }
199
199
  .type-badge.type-data {
200
200
  background: var(--cg-color-status-success-background-default);
@@ -203,22 +203,22 @@ n.styles = [h, m, x, l`
203
203
 
204
204
  .entry-dot.type-model { background: var(--cg-color-status-info-text-default); }
205
205
  .entry-dot.type-prompt { background: var(--cg-color-action-primary-background-default); }
206
- .entry-dot.type-config { background: var(--cg-color-chart-7); }
206
+ .entry-dot.type-config { background: var(--cg-color-chart-7-stroke); }
207
207
  .entry-dot.type-data { background: var(--cg-color-status-success-text-default); }
208
208
 
209
209
  .entry-meta {
210
210
  display: flex;
211
211
  gap: var(--cg-spacing-8);
212
212
  font-size: var(--cg-font-size-xs);
213
- color: var(--cg-color-input-border-hover);
213
+ color: var(--cg-color-input-text-placeholder);
214
214
  margin-top: var(--cg-spacing-4);
215
215
  }
216
216
 
217
217
  .changes-preview {
218
- font-size: var(--cg-font-size-xs);
218
+ font-size: var(--cg-font-size-sm);
219
219
  color: var(--cg-color-input-text-placeholder);
220
220
  margin-top: var(--cg-spacing-6);
221
- line-height: 1.5;
221
+ line-height: var(--cg-line-height-normal);
222
222
  overflow: hidden;
223
223
  max-height: var(--cg-spacing-40);
224
224
  transition: max-height var(--cg-transition-duration-default) var(--cg-transition-easing-default);
@@ -239,7 +239,7 @@ n.styles = [h, m, x, l`
239
239
  }
240
240
  .expand-toggle:hover { color: var(--cg-color-surface-base-text); }
241
241
  .expand-toggle:focus-visible {
242
- outline: 2px solid var(--cg-overlay-accent-strong);
242
+ outline: var(--cg-border-width-100) solid var(--cg-color-focus-ring);
243
243
  outline-offset: var(--cg-outline-offset-default);
244
244
  }
245
245
 
@@ -262,31 +262,31 @@ n.styles = [h, m, x, l`
262
262
  }
263
263
  .rollback-btn:active { transform: scale(var(--cg-interaction-press-scale)); }
264
264
  .rollback-btn:hover {
265
- border-color: var(--cg-color-status-warning-text);
266
- color: var(--cg-color-status-warning-text);
265
+ border-color: var(--cg-color-status-warning-text-default);
266
+ color: var(--cg-color-status-warning-text-default);
267
267
  }
268
268
  .rollback-btn:focus-visible {
269
- outline: 2px solid var(--cg-overlay-accent-strong);
269
+ outline: var(--cg-border-width-100) solid var(--cg-color-focus-ring);
270
270
  outline-offset: var(--cg-outline-offset-default);
271
271
  }
272
272
 
273
273
  .empty-state {
274
274
  text-align: center;
275
- color: var(--cg-color-input-border-hover);
275
+ color: var(--cg-color-empty-state-text-secondary);
276
276
  font-size: var(--cg-font-size-sm);
277
277
  padding: var(--cg-spacing-24) 0;
278
278
  }
279
279
  `];
280
280
  d([
281
281
  u({ type: Array })
282
- ], n.prototype, "entries", 2);
282
+ ], i.prototype, "entries", 2);
283
283
  d([
284
284
  b()
285
- ], n.prototype, "_expandedSet", 2);
286
- n = d([
285
+ ], i.prototype, "_expandedSet", 2);
286
+ i = d([
287
287
  f("ai-changelog")
288
- ], n);
288
+ ], i);
289
289
  export {
290
- n as AiChangelog
290
+ i as AiChangelog
291
291
  };
292
292
  //# sourceMappingURL=ai-changelog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-changelog.js","sources":["../../../src/components/ai-changelog/ai-changelog.ts"],"sourcesContent":["/**\n * @element ai-changelog\n * Timeline-style version history feed with type badges, expandable details, and rollback buttons.\n *\n * @example\n * ```html\n * <ai-changelog .entries=${[\n * {version:'v2.1', date:'2024-03-15', type:'model', changes:'Upgraded to GPT-4o', author:'ops'},\n * {version:'v2.0', date:'2024-03-01', type:'prompt', changes:'Revised system prompt'}\n * ]}></ai-changelog>\n * ```\n *\n * @fires {CustomEvent<{version, type, date}>} ai-changelog-entry-click - Entry card clicked\n * @fires {CustomEvent<{version, type}>} ai-changelog-rollback - Rollback button clicked\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { property, state, customElement } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, fadeSlideInKeyframes } from '../../styles/index.js';\n\ninterface ChangelogEntry {\n version: string;\n date: string;\n author?: string;\n changes: string;\n type: 'model' | 'prompt' | 'config' | 'data';\n}\n\nconst TYPE_CSS_CLASS: Record<string, string> = {\n model: 'type-model',\n prompt: 'type-prompt',\n config: 'type-config',\n data: 'type-data',\n};\n\n@customElement('ai-changelog')\nexport class AiChangelog extends LitElement {\n static override styles = [hostBlock, reducedMotion, fadeSlideInKeyframes, css`\n :host {\n animation: fadeSlideIn var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out) both;\n }\n :host([hidden]) { display: none; }\n\n .container {\n background: var(--cg-color-surface-container-background);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-border-radius-150);\n padding: var(--cg-spacing-16);\n color: var(--cg-color-surface-base-text);\n }\n\n .header {\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-semibold);\n margin-bottom: var(--cg-spacing-16);\n }\n\n .timeline {\n position: relative;\n padding-left: var(--cg-spacing-20);\n }\n\n .timeline::before {\n content: '';\n position: absolute;\n left: var(--cg-spacing-6);\n top: var(--cg-spacing-4);\n bottom: var(--cg-spacing-4);\n width: var(--cg-spacing-2);\n background: var(--cg-color-surface-cards-border);\n }\n\n .entry {\n position: relative;\n margin-bottom: var(--cg-spacing-12);\n }\n\n .entry-dot {\n position: absolute;\n left: calc(-1 * var(--cg-spacing-20);\n top: var(--cg-spacing-6);\n width: var(--cg-spacing-8);\n height: var(--cg-spacing-8);\n border-radius: 50%;\n background: var(--cg-color-surface-cards-border);\n border: var(--cg-border-width-100) solid var(--cg-color-surface-container-background);\n z-index: 1;\n }\n\n .entry-card {\n background: var(--cg-color-surface-base-background);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-border-radius-100);\n padding: var(--cg-spacing-12);\n cursor: pointer;\n transition: border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .entry-card:hover { border-color: var(--cg-color-surface-cards-border); }\n .entry-card:active { transform: scale(var(--cg-interaction-press-scale)); }\n .entry-card:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong);\n }\n\n .entry-top {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n flex-wrap: wrap;\n }\n\n .version {\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-bold);\n color: var(--cg-color-surface-base-text);\n }\n\n .type-badge {\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 padding: var(--cg-spacing-2) var(--cg-spacing-8);\n border-radius: var(--cg-border-radius-50);\n }\n .type-badge.type-model {\n background: var(--cg-color-status-info-background-default);\n color: var(--cg-color-status-info-text-default);\n }\n .type-badge.type-prompt {\n background: var(--cg-overlay-accent-subtle);\n color: var(--cg-color-surface-base-text);\n }\n .type-badge.type-config {\n background: var(--cg-overlay-accent-light);\n color: var(--cg-color-chart-7);\n }\n .type-badge.type-data {\n background: var(--cg-color-status-success-background-default);\n color: var(--cg-color-status-success-text-default);\n }\n\n .entry-dot.type-model { background: var(--cg-color-status-info-text-default); }\n .entry-dot.type-prompt { background: var(--cg-color-action-primary-background-default); }\n .entry-dot.type-config { background: var(--cg-color-chart-7); }\n .entry-dot.type-data { background: var(--cg-color-status-success-text-default); }\n\n .entry-meta {\n display: flex;\n gap: var(--cg-spacing-8);\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-input-border-hover);\n margin-top: var(--cg-spacing-4);\n }\n\n .changes-preview {\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-input-text-placeholder);\n margin-top: var(--cg-spacing-6);\n line-height: 1.5;\n overflow: hidden;\n max-height: var(--cg-spacing-40);\n transition: max-height var(--cg-transition-duration-default) var(--cg-transition-easing-default);\n }\n .changes-preview.expanded {\n max-height: var(--_ai-changelog-expanded-max-height, 500px);\n }\n\n .expand-toggle {\n background: transparent;\n border: none;\n color: var(--cg-color-input-text-placeholder);\n font-size: var(--cg-font-size-xs);\n cursor: pointer;\n padding: var(--cg-spacing-4) 0;\n margin-top: var(--cg-spacing-4);\n transition: color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .expand-toggle:hover { color: var(--cg-color-surface-base-text); }\n .expand-toggle:focus-visible {\n outline: 2px solid var(--cg-overlay-accent-strong);\n outline-offset: var(--cg-outline-offset-default);\n }\n\n .entry-actions {\n display: flex;\n justify-content: flex-end;\n margin-top: var(--cg-spacing-8);\n }\n\n .rollback-btn {\n background: transparent;\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n color: var(--cg-color-input-text-placeholder);\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-semibold);\n padding: var(--cg-spacing-4) var(--cg-spacing-8);\n border-radius: var(--cg-border-radius-100);\n cursor: pointer;\n transition: border-color var(--cg-transition-duration-default) var(--cg-transition-easing-default), color var(--cg-transition-duration-default) var(--cg-transition-easing-default);\n }\n .rollback-btn:active { transform: scale(var(--cg-interaction-press-scale)); }\n .rollback-btn:hover {\n border-color: var(--cg-color-status-warning-text);\n color: var(--cg-color-status-warning-text);\n }\n .rollback-btn:focus-visible {\n outline: 2px solid var(--cg-overlay-accent-strong);\n outline-offset: var(--cg-outline-offset-default);\n }\n\n .empty-state {\n text-align: center;\n color: var(--cg-color-input-border-hover);\n font-size: var(--cg-font-size-sm);\n padding: var(--cg-spacing-24) 0;\n }\n `];\n @property({ type: Array }) entries: ChangelogEntry[] = [];\n\n @state() private _expandedSet = new Set<string>();\n\n private _toggle(id: string) {\n if (this._expandedSet.has(id)) {\n this._expandedSet.delete(id);\n } else {\n this._expandedSet.add(id);\n }\n this.requestUpdate();\n }\n\n private _handleClick(entry: ChangelogEntry) {\n this.dispatchEvent(new CustomEvent('ai-changelog-entry-click', {\n detail: { version: entry.version, type: entry.type, date: entry.date },\n bubbles: true,\n composed: true,\n }));\n }\n\n private _handleRollback(e: Event, entry: ChangelogEntry) {\n e.stopPropagation();\n this.dispatchEvent(new CustomEvent('ai-changelog-rollback', {\n detail: { version: entry.version, type: entry.type },\n bubbles: true,\n composed: true,\n }));\n }\n\n override render() {\n if (!this.entries.length) {\n return html`<div class=\"container\"><div class=\"empty-state\" role=\"status\">No changelog entries</div></div>`;\n }\n\n return html`\n <div class=\"container\" role=\"region\" aria-label=\"Changelog\">\n <div class=\"header\">Changelog</div>\n\n <div class=\"timeline\" role=\"list\" aria-label=\"Version history\">\n ${this.entries.map((entry, i) => {\n const id = `${entry.version}-${i}`;\n const expanded = this._expandedSet.has(id);\n const typeCls = TYPE_CSS_CLASS[entry.type] || TYPE_CSS_CLASS.config;\n\n return html`\n <div class=\"entry\" role=\"listitem\">\n <div class=\"entry-dot ${typeCls}\" aria-hidden=\"true\"></div>\n <div\n class=\"entry-card\"\n tabindex=\"0\"\n aria-label=\"Version ${entry.version}, ${entry.type} change on ${entry.date}\"\n @click=${() => this._handleClick(entry)}\n @keydown=${(e: KeyboardEvent) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); this._handleClick(entry); } }}\n >\n <div class=\"entry-top\">\n <span class=\"version\">${entry.version}</span>\n <span\n class=\"type-badge ${typeCls}\"\n >${entry.type}</span>\n </div>\n\n <div class=\"entry-meta\">\n <span>${entry.date}</span>\n ${entry.author ? html`<span>${entry.author}</span>` : nothing}\n </div>\n\n <div class=\"changes-preview ${expanded ? 'expanded' : ''}\">\n ${entry.changes}\n </div>\n\n <button\n class=\"expand-toggle\"\n @click=${(e: Event) => { e.stopPropagation(); this._toggle(id); }}\n aria-expanded=${expanded ? 'true' : 'false'}\n aria-label=${expanded ? 'Collapse details' : 'Expand details'}\n tabindex=\"0\"\n >${expanded ? 'Show less' : 'Show more'}</button>\n\n <div class=\"entry-actions\">\n <button\n class=\"rollback-btn\"\n @click=${(e: Event) => this._handleRollback(e, entry)}\n aria-label=\"Rollback to version ${entry.version}\"\n tabindex=\"0\"\n >Rollback</button>\n </div>\n </div>\n </div>\n `;\n })}\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ai-changelog': AiChangelog;\n }\n}\n"],"names":["TYPE_CSS_CLASS","AiChangelog","LitElement","id","entry","e","html","i","expanded","typeCls","nothing","hostBlock","reducedMotion","fadeSlideInKeyframes","css","__decorateClass","property","state","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"ai-changelog.js","sources":["../../../src/components/ai-changelog/ai-changelog.ts"],"sourcesContent":["/**\n * @element ai-changelog\n * Timeline-style version history feed with type badges, expandable details, and rollback buttons.\n *\n * @example\n * ```html\n * <ai-changelog .entries=${[\n * {version:'v2.1', date:'2024-03-15', type:'model', changes:'Upgraded to GPT-4o', author:'ops'},\n * {version:'v2.0', date:'2024-03-01', type:'prompt', changes:'Revised system prompt'}\n * ]}></ai-changelog>\n * ```\n *\n * @fires {CustomEvent<{version, type, date}>} ai-changelog-entry-click - Entry card clicked\n * @fires {CustomEvent<{version, type}>} ai-changelog-rollback - Rollback button clicked\n */\nimport { LitElement, html, css, nothing } from 'lit';\nimport { property, state, customElement } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion, fadeSlideInKeyframes } from '../../styles/index.js';\n\ninterface ChangelogEntry {\n version: string;\n date: string;\n author?: string;\n changes: string;\n type: 'model' | 'prompt' | 'config' | 'data';\n}\n\nconst TYPE_CSS_CLASS: Record<string, string> = {\n model: 'type-model',\n prompt: 'type-prompt',\n config: 'type-config',\n data: 'type-data',\n};\n\n@customElement('ai-changelog')\nexport class AiChangelog extends LitElement {\n static override styles = [hostBlock, reducedMotion, fadeSlideInKeyframes, css`\n :host {\n animation: fadeSlideIn var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out) both;\n }\n :host([hidden]) { display: none; }\n\n .container {\n background: var(--cg-color-surface-container-background);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-border-radius-150);\n padding: var(--cg-spacing-16);\n color: var(--cg-color-surface-base-text);\n }\n\n .header {\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-semibold);\n margin-bottom: var(--cg-spacing-16);\n }\n\n .timeline {\n position: relative;\n padding-left: var(--cg-spacing-20);\n }\n\n .timeline::before {\n content: '';\n position: absolute;\n left: var(--cg-spacing-6);\n top: var(--cg-spacing-4);\n bottom: var(--cg-spacing-4);\n width: var(--cg-spacing-2);\n background: var(--cg-color-surface-cards-border);\n }\n\n .entry {\n position: relative;\n margin-bottom: var(--cg-spacing-12);\n }\n\n .entry-dot {\n position: absolute;\n left: calc(-1 * var(--cg-spacing-20));\n top: var(--cg-spacing-6);\n width: var(--cg-spacing-8);\n height: var(--cg-spacing-8);\n border-radius: 50%;\n background: var(--cg-color-surface-cards-border);\n border: var(--cg-border-width-100) solid var(--cg-color-surface-container-background);\n z-index: 1;\n }\n\n .entry-card {\n background: var(--cg-color-surface-base-background);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-border-radius-100);\n padding: var(--cg-spacing-12);\n cursor: pointer;\n transition: border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .entry-card:hover { border-color: var(--cg-color-surface-cards-border); }\n .entry-card:active { transform: scale(var(--cg-interaction-press-scale)); }\n .entry-card:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong);\n }\n\n .entry-top {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n flex-wrap: wrap;\n }\n\n .version {\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-bold);\n color: var(--cg-color-surface-base-text);\n }\n\n .type-badge {\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 padding: var(--cg-spacing-2) var(--cg-spacing-8);\n border-radius: var(--cg-border-radius-50);\n }\n .type-badge.type-model {\n background: var(--cg-color-status-info-background-default);\n color: var(--cg-color-status-info-text-default);\n }\n .type-badge.type-prompt {\n background: var(--cg-overlay-accent-subtle);\n color: var(--cg-color-surface-base-text);\n }\n .type-badge.type-config {\n background: var(--cg-overlay-accent-light);\n color: var(--cg-color-chart-7-stroke);\n }\n .type-badge.type-data {\n background: var(--cg-color-status-success-background-default);\n color: var(--cg-color-status-success-text-default);\n }\n\n .entry-dot.type-model { background: var(--cg-color-status-info-text-default); }\n .entry-dot.type-prompt { background: var(--cg-color-action-primary-background-default); }\n .entry-dot.type-config { background: var(--cg-color-chart-7-stroke); }\n .entry-dot.type-data { background: var(--cg-color-status-success-text-default); }\n\n .entry-meta {\n display: flex;\n gap: var(--cg-spacing-8);\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-input-text-placeholder);\n margin-top: var(--cg-spacing-4);\n }\n\n .changes-preview {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-input-text-placeholder);\n margin-top: var(--cg-spacing-6);\n line-height: var(--cg-line-height-normal);\n overflow: hidden;\n max-height: var(--cg-spacing-40);\n transition: max-height var(--cg-transition-duration-default) var(--cg-transition-easing-default);\n }\n .changes-preview.expanded {\n max-height: var(--_ai-changelog-expanded-max-height, 500px);\n }\n\n .expand-toggle {\n background: transparent;\n border: none;\n color: var(--cg-color-input-text-placeholder);\n font-size: var(--cg-font-size-xs);\n cursor: pointer;\n padding: var(--cg-spacing-4) 0;\n margin-top: var(--cg-spacing-4);\n transition: color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .expand-toggle:hover { color: var(--cg-color-surface-base-text); }\n .expand-toggle:focus-visible {\n outline: var(--cg-border-width-100) solid var(--cg-color-focus-ring);\n outline-offset: var(--cg-outline-offset-default);\n }\n\n .entry-actions {\n display: flex;\n justify-content: flex-end;\n margin-top: var(--cg-spacing-8);\n }\n\n .rollback-btn {\n background: transparent;\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n color: var(--cg-color-input-text-placeholder);\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-semibold);\n padding: var(--cg-spacing-4) var(--cg-spacing-8);\n border-radius: var(--cg-border-radius-100);\n cursor: pointer;\n transition: border-color var(--cg-transition-duration-default) var(--cg-transition-easing-default), color var(--cg-transition-duration-default) var(--cg-transition-easing-default);\n }\n .rollback-btn:active { transform: scale(var(--cg-interaction-press-scale)); }\n .rollback-btn:hover {\n border-color: var(--cg-color-status-warning-text-default);\n color: var(--cg-color-status-warning-text-default);\n }\n .rollback-btn:focus-visible {\n outline: var(--cg-border-width-100) solid var(--cg-color-focus-ring);\n outline-offset: var(--cg-outline-offset-default);\n }\n\n .empty-state {\n text-align: center;\n color: var(--cg-color-empty-state-text-secondary);\n font-size: var(--cg-font-size-sm);\n padding: var(--cg-spacing-24) 0;\n }\n `];\n @property({ type: Array }) entries: ChangelogEntry[] = [];\n\n @state() private _expandedSet = new Set<string>();\n\n private _toggle(id: string) {\n if (this._expandedSet.has(id)) {\n this._expandedSet.delete(id);\n } else {\n this._expandedSet.add(id);\n }\n this.requestUpdate();\n }\n\n private _handleClick(entry: ChangelogEntry) {\n this.dispatchEvent(new CustomEvent('ai-changelog-entry-click', {\n detail: { version: entry.version, type: entry.type, date: entry.date },\n bubbles: true,\n composed: true,\n }));\n }\n\n private _handleRollback(e: Event, entry: ChangelogEntry) {\n e.stopPropagation();\n this.dispatchEvent(new CustomEvent('ai-changelog-rollback', {\n detail: { version: entry.version, type: entry.type },\n bubbles: true,\n composed: true,\n }));\n }\n\n override render() {\n if (!this.entries.length) {\n return html`<div class=\"container\"><div class=\"empty-state\" role=\"status\">No changelog entries</div></div>`;\n }\n\n return html`\n <div class=\"container\" role=\"region\" aria-label=\"Changelog\">\n <div class=\"header\">Changelog</div>\n\n <div class=\"timeline\" role=\"list\" aria-label=\"Version history\">\n ${this.entries.map((entry, i) => {\n const id = `${entry.version}-${i}`;\n const expanded = this._expandedSet.has(id);\n const typeCls = TYPE_CSS_CLASS[entry.type] || TYPE_CSS_CLASS.config;\n\n return html`\n <div class=\"entry\" role=\"listitem\">\n <div class=\"entry-dot ${typeCls}\" aria-hidden=\"true\"></div>\n <div\n class=\"entry-card\"\n tabindex=\"0\"\n aria-label=\"Version ${entry.version}, ${entry.type} change on ${entry.date}\"\n @click=${() => this._handleClick(entry)}\n @keydown=${(e: KeyboardEvent) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); this._handleClick(entry); } }}\n >\n <div class=\"entry-top\">\n <span class=\"version\">${entry.version}</span>\n <span\n class=\"type-badge ${typeCls}\"\n >${entry.type}</span>\n </div>\n\n <div class=\"entry-meta\">\n <span>${entry.date}</span>\n ${entry.author ? html`<span>${entry.author}</span>` : nothing}\n </div>\n\n <div class=\"changes-preview ${expanded ? 'expanded' : ''}\">\n ${entry.changes}\n </div>\n\n <button\n class=\"expand-toggle\"\n @click=${(e: Event) => { e.stopPropagation(); this._toggle(id); }}\n aria-expanded=${expanded ? 'true' : 'false'}\n aria-label=${expanded ? 'Collapse details' : 'Expand details'}\n tabindex=\"0\"\n >${expanded ? 'Show less' : 'Show more'}</button>\n\n <div class=\"entry-actions\">\n <button\n class=\"rollback-btn\"\n @click=${(e: Event) => this._handleRollback(e, entry)}\n aria-label=\"Rollback to version ${entry.version}\"\n tabindex=\"0\"\n >Rollback</button>\n </div>\n </div>\n </div>\n `;\n })}\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ai-changelog': AiChangelog;\n }\n}\n"],"names":["TYPE_CSS_CLASS","AiChangelog","LitElement","id","entry","e","html","i","expanded","typeCls","nothing","hostBlock","reducedMotion","fadeSlideInKeyframes","css","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -18,13 +18,7 @@ export declare class AiChartSummary extends LitElement {
18
18
  private _toggle;
19
19
  private _handleTrendClick;
20
20
  private _handleRefresh;
21
- private _trendIcon;
22
21
  render(): import('lit').TemplateResult<1> | typeof nothing;
23
22
  }
24
- declare global {
25
- interface HTMLElementTagNameMap {
26
- 'ai-chart-summary': AiChartSummary;
27
- }
28
- }
29
23
  export {};
30
24
  //# sourceMappingURL=ai-chart-summary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-chart-summary.d.ts","sourceRoot":"","sources":["../../../src/components/ai-chart-summary/ai-chart-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAGrD,OAAO,uBAAuB,CAAC;AAC/B,OAAO,2BAA2B,CAAC;AACnC,OAAO,+CAA+C,CAAC;AAEvD,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBACa,cAAe,SAAQ,UAAU;IAC5C,OAAgB,MAAM,4BAmInB;IAES,OAAO,SAAM;IACE,MAAM,EAAE,KAAK,EAAE,CAAM;IACnB,WAAW,UAAS;IACrB,UAAU,SAAK;IAC/B,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAa;IACpC,OAAO,UAAS;IAC/B,OAAO,UAAS;IACjC,SAAS,SAAM;IAElB,OAAO,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,UAAU;IAMT,MAAM;CA+EhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}
1
+ {"version":3,"file":"ai-chart-summary.d.ts","sourceRoot":"","sources":["../../../src/components/ai-chart-summary/ai-chart-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAIrD,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBACa,cAAe,SAAQ,UAAU;IAC5C,OAAgB,MAAM,4BAkJnB;IAES,OAAO,SAAM;IACE,MAAM,EAAE,KAAK,EAAE,CAAM;IACnB,WAAW,UAAS;IACrB,UAAU,SAAK;IAC/B,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAa;IACpC,OAAO,UAAS;IAC/B,OAAO,UAAS;IACjC,SAAS,SAAM;IAElB,OAAO,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,cAAc;IAIb,MAAM;CAuEhB"}