@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":"cg-alert-dialog.js","sources":["../../../src/components/cg-alert-dialog/cg-alert-dialog.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\nimport { FocusTrap } from '../../utils/focus-trap.js';\n\n/**\n * @element cg-alert-dialog\n * Destructive confirmation dialog with alertdialog ARIA role. Uses danger styling\n * for destructive actions and focuses cancel button by default for safety.\n *\n * @example\n * ```html\n * <cg-alert-dialog\n * open\n * title=\"Delete project?\"\n * description=\"This action cannot be undone.\"\n * destructive\n * confirm-label=\"Delete\"\n * ></cg-alert-dialog>\n * ```\n *\n * @slot - Optional body content (overrides description)\n * @slot icon - Optional icon\n * @slot actions - Override default action buttons\n *\n * @fires {CustomEvent} cg-alert-confirm\n * @fires {CustomEvent} cg-alert-cancel\n * @fires {CustomEvent} cg-alert-open\n * @fires {CustomEvent} cg-alert-close\n */\n@customElement('cg-alert-dialog')\nexport class CgAlertDialog extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n display: contents;\n }\n\n .backdrop {\n position: fixed;\n inset: 0;\n z-index: var(--cg-z-index-500);\n background: var(--cg-color-modal-overlay-background);\n backdrop-filter: blur(var(--cg-blur-backdrop));\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n :host([open]) .backdrop {\n opacity: 1;\n pointer-events: auto;\n }\n\n .dialog {\n position: fixed;\n top: 50%;\n left: 50%;\n z-index: var(--cg-z-index-top);\n width: calc(100% - var(--cg-spacing-32));\n max-width: var(--cg-component-alert-dialog-width);\n padding: var(--cg-spacing-24);\n background: var(--cg-color-modal-container-background);\n border: var(--cg-border-width-50) solid var(--cg-color-modal-container-border);\n border-radius: var(--cg-component-alert-dialog-radius);\n box-shadow: var(--cg-shadow-elevation-xl);\n opacity: 0;\n transform: translate(-50%, -48%) scale(0.96);\n pointer-events: none;\n transition:\n opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out);\n }\n :host([open]) .dialog {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n pointer-events: auto;\n }\n\n .header {\n display: flex;\n align-items: flex-start;\n gap: var(--cg-spacing-16);\n margin-bottom: var(--cg-spacing-16);\n }\n .icon-wrap {\n flex-shrink: 0;\n width: var(--cg-spacing-40);\n height: var(--cg-spacing-40);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--cg-border-radius-full);\n background: var(--cg-color-surface-container-background);\n color: var(--cg-color-surface-base-text);\n }\n :host([destructive]) .icon-wrap {\n background: var(--cg-color-status-error-background-default);\n color: var(--cg-color-status-error-text-default);\n }\n\n .title {\n font-size: var(--cg-font-size-base);\n font-weight: var(--cg-font-weight-semibold);\n color: var(--cg-color-surface-base-text);\n margin: 0 0 var(--cg-spacing-4);\n line-height: var(--cg-line-height-snug);\n }\n .description {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-container-outlined);\n margin: 0;\n line-height: var(--cg-line-height-relaxed);\n }\n .header-text { flex: 1; }\n\n .body {\n margin: var(--cg-spacing-16) 0;\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-base-text);\n }\n\n .actions {\n display: flex;\n justify-content: flex-end;\n gap: var(--cg-spacing-8);\n margin-top: var(--cg-spacing-24);\n }\n `];\n\n @property({ type: Boolean, reflect: true }) open = false;\n @property() override title = '';\n @property() description = '';\n @property({ attribute: 'confirm-label' }) confirmLabel = 'Confirm';\n @property({ attribute: 'cancel-label' }) cancelLabel = 'Cancel';\n @property({ type: Boolean, reflect: true }) destructive = false;\n @property({ type: Boolean, reflect: true }) loading = false;\n @property({ type: Boolean }) closable = false;\n\n @query('.dialog') private _dialogEl!: HTMLElement;\n\n private _focusTrap = new FocusTrap();\n private _previousOverflow = '';\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this._focusTrap.deactivate();\n document.body.style.overflow = this._previousOverflow;\n }\n\n override updated(changed: Map<string, unknown>): void {\n if (changed.has('open')) {\n if (this.open) this._onOpen();\n else this._onClose();\n }\n }\n\n private _onOpen(): void {\n this._previousOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n this.dispatchEvent(new CustomEvent('cg-alert-open', { bubbles: true, composed: true }));\n\n requestAnimationFrame(() => {\n if (this._dialogEl) {\n // Focus cancel button by default for safety\n const cancelBtn = this._dialogEl.querySelector<HTMLButtonElement>('[data-cancel]');\n this._focusTrap.activate(this._dialogEl, {\n initialFocus: cancelBtn ?? null,\n handleEscape: this.closable,\n onEscape: this.closable ? () => this._cancel() : undefined,\n });\n }\n });\n }\n\n private _onClose(): void {\n document.body.style.overflow = this._previousOverflow;\n this._focusTrap.deactivate();\n this.dispatchEvent(new CustomEvent('cg-alert-close', { bubbles: true, composed: true }));\n }\n\n private _confirm(): void {\n this.dispatchEvent(new CustomEvent('cg-alert-confirm', { bubbles: true, composed: true }));\n if (!this.loading) this.open = false;\n }\n\n private _cancel(): void {\n this.dispatchEvent(new CustomEvent('cg-alert-cancel', { bubbles: true, composed: true }));\n this.open = false;\n }\n\n override render() {\n return html`\n <div class=\"backdrop\" @click=${() => this.closable && this._cancel()}></div>\n <div\n class=\"dialog\"\n role=\"alertdialog\"\n aria-modal=\"true\"\n aria-labelledby=\"alert-title\"\n aria-describedby=\"alert-description\"\n ?inert=${!this.open}\n >\n <div class=\"header\">\n <slot name=\"icon\">\n ${this.destructive ? html`\n <div class=\"icon-wrap\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M12 9v4M12 17h.01\"/>\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"/>\n </svg>\n </div>\n ` : nothing}\n </slot>\n <div class=\"header-text\">\n ${this.title ? html`<h2 id=\"alert-title\" class=\"title\">${this.title}</h2>` : nothing}\n ${this.description ? html`<p id=\"alert-description\" class=\"description\">${this.description}</p>` : nothing}\n </div>\n </div>\n <div class=\"body\"><slot></slot></div>\n <div class=\"actions\">\n <slot name=\"actions\">\n <cg-button\n variant=\"tertiary\"\n size=\"md\"\n data-cancel\n @click=${this._cancel}\n ?disabled=${this.loading}\n >${this.cancelLabel}</cg-button>\n <cg-button\n variant=\"primary\"\n type=\"${this.destructive ? 'danger' : 'normal'}\"\n size=\"md\"\n data-confirm\n @click=${this._confirm}\n ?loading=${this.loading}\n >${this.confirmLabel}</cg-button>\n </slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-alert-dialog': CgAlertDialog;\n }\n}\n"],"names":["CgAlertDialog","LitElement","FocusTrap","changed","cancelBtn","html","nothing","hostBlock","reducedMotion","css","__decorateClass","property","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"cg-alert-dialog.js","sources":["../../../src/components/cg-alert-dialog/cg-alert-dialog.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\nimport { FocusTrap } from '../../utils/focus-trap.js';\n\n/**\n * @element cg-alert-dialog\n * Destructive confirmation dialog with alertdialog ARIA role. Uses danger styling\n * for destructive actions and focuses cancel button by default for safety.\n *\n * @example\n * ```html\n * <cg-alert-dialog\n * open\n * title=\"Delete project?\"\n * description=\"This action cannot be undone.\"\n * destructive\n * confirm-label=\"Delete\"\n * ></cg-alert-dialog>\n * ```\n *\n * @slot - Optional body content (overrides description)\n * @slot icon - Optional icon\n * @slot actions - Override default action buttons\n *\n * @fires {CustomEvent} cg-alert-confirm\n * @fires {CustomEvent} cg-alert-cancel\n * @fires {CustomEvent} cg-alert-open\n * @fires {CustomEvent} cg-alert-close\n */\n@customElement('cg-alert-dialog')\nexport class CgAlertDialog extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n display: contents;\n }\n\n .backdrop {\n position: fixed;\n inset: 0;\n z-index: var(--cg-z-index-500);\n background: var(--cg-color-modal-overlay-background);\n backdrop-filter: blur(var(--cg-blur-backdrop));\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n :host([open]) .backdrop {\n opacity: 1;\n pointer-events: auto;\n }\n\n .dialog {\n position: fixed;\n top: 50%;\n left: 50%;\n z-index: var(--cg-z-index-top);\n width: calc(100% - var(--cg-spacing-32));\n max-width: var(--cg-component-alert-dialog-width);\n padding: var(--cg-spacing-24);\n background: var(--cg-color-modal-container-background);\n border: var(--cg-border-width-50) solid var(--cg-color-modal-container-border);\n border-radius: var(--cg-component-alert-dialog-radius);\n box-shadow: var(--cg-shadow-elevation-xl);\n opacity: 0;\n transform: translate(-50%, -48%) scale(0.96);\n pointer-events: none;\n transition:\n opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out);\n }\n :host([open]) .dialog {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n pointer-events: auto;\n }\n\n .header {\n display: flex;\n align-items: flex-start;\n gap: var(--cg-spacing-16);\n margin-bottom: var(--cg-spacing-16);\n }\n .icon-wrap {\n flex-shrink: 0;\n width: var(--cg-spacing-40);\n height: var(--cg-spacing-40);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--cg-border-radius-full);\n background: var(--cg-color-surface-container-background);\n color: var(--cg-color-surface-base-text);\n }\n :host([destructive]) .icon-wrap {\n background: var(--cg-color-status-error-background-default);\n color: var(--cg-color-status-error-text-default);\n }\n\n .title {\n font-size: var(--cg-font-size-base);\n font-weight: var(--cg-font-weight-semibold);\n color: var(--cg-color-surface-base-text);\n margin: 0 0 var(--cg-spacing-4);\n line-height: var(--cg-line-height-snug);\n }\n .description {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-container-outlined);\n margin: 0;\n line-height: var(--cg-line-height-relaxed);\n }\n .header-text { flex: 1; }\n\n .body {\n margin: var(--cg-spacing-16) 0;\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-base-text);\n }\n\n .actions {\n display: flex;\n justify-content: flex-end;\n gap: var(--cg-spacing-8);\n margin-top: var(--cg-spacing-24);\n }\n `];\n\n @property({ type: Boolean, reflect: true }) open = false;\n @property() override title = '';\n @property() description = '';\n @property({ attribute: 'confirm-label' }) confirmLabel = 'Confirm';\n @property({ attribute: 'cancel-label' }) cancelLabel = 'Cancel';\n @property({ type: Boolean, reflect: true }) destructive = false;\n @property({ type: Boolean, reflect: true }) loading = false;\n @property({ type: Boolean }) closable = false;\n\n @query('.dialog') private _dialogEl!: HTMLElement;\n\n private _focusTrap = new FocusTrap();\n private _previousOverflow = '';\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this._focusTrap.deactivate();\n document.body.style.overflow = this._previousOverflow;\n }\n\n override updated(changed: Map<string, unknown>): void {\n if (changed.has('open')) {\n if (this.open) this._onOpen();\n else this._onClose();\n }\n }\n\n private _onOpen(): void {\n this._previousOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n this.dispatchEvent(new CustomEvent('cg-alert-open', { bubbles: true, composed: true }));\n\n requestAnimationFrame(() => {\n if (this._dialogEl) {\n // Focus cancel button by default for safety\n const cancelBtn = this._dialogEl.querySelector<HTMLButtonElement>('[data-cancel]');\n this._focusTrap.activate(this._dialogEl, {\n initialFocus: cancelBtn ?? null,\n handleEscape: this.closable,\n onEscape: this.closable ? () => this._cancel() : undefined,\n });\n }\n });\n }\n\n private _onClose(): void {\n document.body.style.overflow = this._previousOverflow;\n this._focusTrap.deactivate();\n this.dispatchEvent(new CustomEvent('cg-alert-close', { bubbles: true, composed: true }));\n }\n\n private _confirm(): void {\n this.dispatchEvent(new CustomEvent('cg-alert-confirm', { bubbles: true, composed: true }));\n if (!this.loading) this.open = false;\n }\n\n private _cancel(): void {\n this.dispatchEvent(new CustomEvent('cg-alert-cancel', { bubbles: true, composed: true }));\n this.open = false;\n }\n\n override render() {\n return html`\n <div class=\"backdrop\" @click=${() => this.closable && this._cancel()}></div>\n <div\n class=\"dialog\"\n role=\"alertdialog\"\n aria-modal=\"true\"\n aria-labelledby=${this.title ? 'alert-title' : nothing}\n aria-describedby=${this.description ? 'alert-description' : nothing}\n ?inert=${!this.open}\n >\n <div class=\"header\">\n <slot name=\"icon\">\n ${this.destructive ? html`\n <div class=\"icon-wrap\">\n <svg aria-hidden=\"true\" focusable=\"false\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M12 9v4M12 17h.01\"/>\n <path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"/>\n </svg>\n </div>\n ` : nothing}\n </slot>\n <div class=\"header-text\">\n ${this.title ? html`<h2 id=\"alert-title\" class=\"title\">${this.title}</h2>` : nothing}\n ${this.description ? html`<p id=\"alert-description\" class=\"description\">${this.description}</p>` : nothing}\n </div>\n </div>\n <div class=\"body\"><slot></slot></div>\n <div class=\"actions\">\n <slot name=\"actions\">\n <cg-button\n variant=\"tertiary\"\n size=\"md\"\n data-cancel\n @click=${this._cancel}\n ?disabled=${this.loading}\n >${this.cancelLabel}</cg-button>\n <cg-button\n variant=\"primary\"\n type=\"${this.destructive ? 'danger' : 'normal'}\"\n size=\"md\"\n data-confirm\n @click=${this._confirm}\n ?loading=${this.loading}\n >${this.confirmLabel}</cg-button>\n </slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-alert-dialog': CgAlertDialog;\n }\n}\n"],"names":["CgAlertDialog","LitElement","FocusTrap","changed","cancelBtn","html","nothing","hostBlock","reducedMotion","css","__decorateClass","property","query","customElement"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cg-aspect-ratio.d.ts","sourceRoot":"","sources":["../../../src/components/cg-aspect-ratio/cg-aspect-ratio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBACa,aAAc,SAAQ,UAAU;IAC3C,OAAgB,MAAM,4BAYnB;IAEH,6EAA6E;IAChD,KAAK,EAAE,MAAM,CAAU;IAEpD,4EAA4E;IAC/C,GAAG,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAAW;IAExF,MAAM;CAUhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,aAAa,CAAC;KAClC;CACF"}
1
+ {"version":3,"file":"cg-aspect-ratio.d.ts","sourceRoot":"","sources":["../../../src/components/cg-aspect-ratio/cg-aspect-ratio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAK5C;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBACa,aAAc,SAAQ,UAAU;IAC3C,OAAgB,MAAM,4BAYnB;IAEH,6EAA6E;IAChD,KAAK,EAAE,MAAM,CAAU;IAEpD,4EAA4E;IAC/C,GAAG,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAAW;IAExF,MAAM;CAiBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,aAAa,CAAC;KAClC;CACF"}
@@ -1,47 +1,51 @@
1
- import { css as n, LitElement as f, html as m } from "lit";
2
- import { property as l, customElement as v } from "lit/decorators.js";
3
- import { h } from "../../chunks/premium.css-9I4kHrsl.js";
4
- var u = Object.defineProperty, d = Object.getOwnPropertyDescriptor, p = (s, e, a, o) => {
5
- for (var t = o > 1 ? void 0 : o ? d(e, a) : e, c = s.length - 1, i; c >= 0; c--)
6
- (i = s[c]) && (t = (o ? i(e, a, t) : i(t)) || t);
7
- return o && t && u(e, a, t), t;
1
+ import { css as f, LitElement as d, html as m } from "lit";
2
+ import { property as l, customElement as n } from "lit/decorators.js";
3
+ import { styleMap as v } from "lit/directives/style-map.js";
4
+ import { h } from "../../chunks/premium.css-DHekUEUt.js";
5
+ var _ = Object.defineProperty, u = Object.getOwnPropertyDescriptor, c = (r, e, s, i) => {
6
+ for (var t = i > 1 ? void 0 : i ? u(e, s) : e, a = r.length - 1, p; a >= 0; a--)
7
+ (p = r[a]) && (t = (i ? p(e, s, t) : p(t)) || t);
8
+ return i && t && _(e, s, t), t;
8
9
  };
9
- let r = class extends f {
10
+ let o = class extends d {
10
11
  constructor() {
11
12
  super(...arguments), this.ratio = "16/9", this.fit = "cover";
12
13
  }
13
14
  render() {
14
- const e = `--cg-component-aspect-ratio-value: ${this.ratio.replace("/", " / ")}; --cg-component-aspect-ratio-fit: ${this.fit};`;
15
+ const r = (this.ratio ?? "").trim(), s = /^\d+(\.\d+)?\s*\/\s*\d+(\.\d+)?$/.test(r) ? r.replace(/\s*\/\s*/g, " / ") : "16 / 9";
15
16
  return m`
16
- <div class="wrap" style=${e}>
17
+ <div
18
+ class="wrap"
19
+ style=${v({ "--_aspect-ratio": s, "--_aspect-fit": this.fit })}
20
+ >
17
21
  <slot></slot>
18
22
  </div>
19
23
  `;
20
24
  }
21
25
  };
22
- r.styles = [h, n`
26
+ o.styles = [h, f`
23
27
  .wrap {
24
28
  width: 100%;
25
- aspect-ratio: var(--cg-component-aspect-ratio-value);
29
+ aspect-ratio: var(--_aspect-ratio);
26
30
  overflow: hidden;
27
31
  }
28
32
  .wrap ::slotted(*) {
29
33
  width: 100%;
30
34
  height: 100%;
31
- object-fit: var(--cg-component-aspect-ratio-fit);
35
+ object-fit: var(--_aspect-fit);
32
36
  display: block;
33
37
  }
34
38
  `];
35
- p([
39
+ c([
36
40
  l({ reflect: !0 })
37
- ], r.prototype, "ratio", 2);
38
- p([
41
+ ], o.prototype, "ratio", 2);
42
+ c([
39
43
  l({ reflect: !0 })
40
- ], r.prototype, "fit", 2);
41
- r = p([
42
- v("cg-aspect-ratio")
43
- ], r);
44
+ ], o.prototype, "fit", 2);
45
+ o = c([
46
+ n("cg-aspect-ratio")
47
+ ], o);
44
48
  export {
45
- r as CgAspectRatio
49
+ o as CgAspectRatio
46
50
  };
47
51
  //# sourceMappingURL=cg-aspect-ratio.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cg-aspect-ratio.js","sources":["../../../src/components/cg-aspect-ratio/cg-aspect-ratio.ts"],"sourcesContent":["import { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { hostBlock } from '../../styles/index.js';\n\n/**\n * @element cg-aspect-ratio\n * Layout primitive that constrains its slotted child to a fixed aspect ratio.\n * The slotted element is sized to fill the box — pick `fit` to control how it\n * fills (default `cover` crops to fill; `contain` letterboxes; `fill` stretches).\n *\n * @example\n * ```html\n * <cg-aspect-ratio ratio=\"16/9\">\n * <img src=\"hero.jpg\" alt=\"Hero\" />\n * </cg-aspect-ratio>\n *\n * <cg-aspect-ratio ratio=\"1/1\" fit=\"contain\">\n * <img src=\"logo.svg\" alt=\"Logo\" />\n * </cg-aspect-ratio>\n * ```\n *\n * @slot - Content (usually an `<img>`, `<video>`, `<picture>`, or `<iframe>`).\n */\n@customElement('cg-aspect-ratio')\nexport class CgAspectRatio extends LitElement {\n static override styles = [hostBlock, css`\n .wrap {\n width: 100%;\n aspect-ratio: var(--cg-component-aspect-ratio-value);\n overflow: hidden;\n }\n .wrap ::slotted(*) {\n width: 100%;\n height: 100%;\n object-fit: var(--cg-component-aspect-ratio-fit);\n display: block;\n }\n `];\n\n /** Aspect ratio expressed as `\"W/H\"` (e.g. `\"16/9\"`, `\"1/1\"`, `\"4 / 3\"`). */\n @property({ reflect: true }) ratio: string = '16/9';\n\n /** How the slotted element fills the box. Defaults to `cover` (cropped). */\n @property({ reflect: true }) fit: 'cover' | 'contain' | 'fill' | 'none' | 'scale-down' = 'cover';\n\n override render() {\n // Accept \"16/9\" or \"16 / 9\" and normalize to CSS aspect-ratio syntax.\n const normalized = this.ratio.replace('/', ' / ');\n const styleVars = `--cg-component-aspect-ratio-value: ${normalized}; --cg-component-aspect-ratio-fit: ${this.fit};`;\n return html`\n <div class=\"wrap\" style=${styleVars}>\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-aspect-ratio': CgAspectRatio;\n }\n}\n"],"names":["CgAspectRatio","LitElement","styleVars","html","hostBlock","css","__decorateClass","property","customElement"],"mappings":";;;;;;;;AAwBO,IAAMA,IAAN,cAA4BC,EAAW;AAAA,EAAvC,cAAA;AAAA,UAAA,GAAA,SAAA,GAgBwB,KAAA,QAAgB,QAGhB,KAAA,MAA4D;AAAA,EAAA;AAAA,EAEhF,SAAS;AAGhB,UAAMC,IAAY,sCADC,KAAK,MAAM,QAAQ,KAAK,KAAK,CACkB,sCAAsC,KAAK,GAAG;AAChH,WAAOC;AAAA,gCACqBD,CAAS;AAAA;AAAA;AAAA;AAAA,EAIvC;AACF;AA/BaF,EACK,SAAS,CAACI,GAAWC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYpC;AAG4BC,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAhBhBP,EAgBkB,WAAA,SAAA,CAAA;AAGAM,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAnBhBP,EAmBkB,WAAA,OAAA,CAAA;AAnBlBA,IAANM,EAAA;AAAA,EADNE,EAAc,iBAAiB;AAAA,GACnBR,CAAA;"}
1
+ {"version":3,"file":"cg-aspect-ratio.js","sources":["../../../src/components/cg-aspect-ratio/cg-aspect-ratio.ts"],"sourcesContent":["import { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { hostBlock } from '../../styles/index.js';\n\n/**\n * @element cg-aspect-ratio\n * Layout primitive that constrains its slotted child to a fixed aspect ratio.\n * The slotted element is sized to fill the box — pick `fit` to control how it\n * fills (default `cover` crops to fill; `contain` letterboxes; `fill` stretches).\n *\n * @example\n * ```html\n * <cg-aspect-ratio ratio=\"16/9\">\n * <img src=\"hero.jpg\" alt=\"Hero\" />\n * </cg-aspect-ratio>\n *\n * <cg-aspect-ratio ratio=\"1/1\" fit=\"contain\">\n * <img src=\"logo.svg\" alt=\"Logo\" />\n * </cg-aspect-ratio>\n * ```\n *\n * @slot - Content (usually an `<img>`, `<video>`, `<picture>`, or `<iframe>`).\n */\n@customElement('cg-aspect-ratio')\nexport class CgAspectRatio extends LitElement {\n static override styles = [hostBlock, css`\n .wrap {\n width: 100%;\n aspect-ratio: var(--_aspect-ratio);\n overflow: hidden;\n }\n .wrap ::slotted(*) {\n width: 100%;\n height: 100%;\n object-fit: var(--_aspect-fit);\n display: block;\n }\n `];\n\n /** Aspect ratio expressed as `\"W/H\"` (e.g. `\"16/9\"`, `\"1/1\"`, `\"4 / 3\"`). */\n @property({ reflect: true }) ratio: string = '16/9';\n\n /** How the slotted element fills the box. Defaults to `cover` (cropped). */\n @property({ reflect: true }) fit: 'cover' | 'contain' | 'fill' | 'none' | 'scale-down' = 'cover';\n\n override render() {\n // Accept \"16/9\" or \"16 / 9\" and normalize to CSS aspect-ratio syntax.\n // Validate against W/H to (a) avoid a collapsed 0-height box on garbage\n // input and (b) prevent CSS injection — styleMap binds the value as a\n // discrete property value, never a parsed declaration string.\n const raw = (this.ratio ?? '').trim();\n const valid = /^\\d+(\\.\\d+)?\\s*\\/\\s*\\d+(\\.\\d+)?$/.test(raw);\n const normalized = valid ? raw.replace(/\\s*\\/\\s*/g, ' / ') : '16 / 9';\n return html`\n <div\n class=\"wrap\"\n style=${styleMap({ '--_aspect-ratio': normalized, '--_aspect-fit': this.fit })}\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-aspect-ratio': CgAspectRatio;\n }\n}\n"],"names":["CgAspectRatio","LitElement","raw","normalized","html","styleMap","hostBlock","css","__decorateClass","property","customElement"],"mappings":";;;;;;;;;AAyBO,IAAMA,IAAN,cAA4BC,EAAW;AAAA,EAAvC,cAAA;AAAA,UAAA,GAAA,SAAA,GAgBwB,KAAA,QAAgB,QAGhB,KAAA,MAA4D;AAAA,EAAA;AAAA,EAEhF,SAAS;AAKhB,UAAMC,KAAO,KAAK,SAAS,IAAI,KAAA,GAEzBC,IADQ,mCAAmC,KAAKD,CAAG,IAC9BA,EAAI,QAAQ,aAAa,KAAK,IAAI;AAC7D,WAAOE;AAAA;AAAA;AAAA,gBAGKC,EAAS,EAAE,mBAAmBF,GAAY,iBAAiB,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpF;AACF;AAtCaH,EACK,SAAS,CAACM,GAAWC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYpC;AAG4BC,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAhBhBT,EAgBkB,WAAA,SAAA,CAAA;AAGAQ,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAnBhBT,EAmBkB,WAAA,OAAA,CAAA;AAnBlBA,IAANQ,EAAA;AAAA,EADNE,EAAc,iBAAiB;AAAA,GACnBV,CAAA;"}
@@ -34,6 +34,7 @@ export declare class CgAutocomplete extends LitElement {
34
34
  private _focused;
35
35
  private _activeIndex;
36
36
  private _input;
37
+ private _uid;
37
38
  private get _filtered();
38
39
  private _onInput;
39
40
  private _select;
@@ -1 +1 @@
1
- {"version":3,"file":"cg-autocomplete.d.ts","sourceRoot":"","sources":["../../../src/components/cg-autocomplete/cg-autocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,qBACa,cAAe,SAAQ,UAAU;IAC5C,OAAgB,MAAM,4BAqJnB;IAEwB,OAAO,EAAE,kBAAkB,EAAE,CAAM;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAQ;IACtE,KAAK,SAAM;IACX,WAAW,SAAM;IACjB,KAAK,SAAM;IACM,QAAQ,UAAS;IACF,KAAK,UAAS;IAC7B,SAAS,UAAS;IAEtC,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAM;IAEnB,OAAO,CAAC,MAAM,CAAoB;IAElD,OAAO,KAAK,SAAS,GAIpB;IAED,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,eAAe;IAUd,MAAM;CA4ChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,cAAc,CAAC;KACnC;CACF"}
1
+ {"version":3,"file":"cg-autocomplete.d.ts","sourceRoot":"","sources":["../../../src/components/cg-autocomplete/cg-autocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;GAcG;AACH,qBACa,cAAe,SAAQ,UAAU;IAC5C,OAAgB,MAAM,4BAqJnB;IAEwB,OAAO,EAAE,kBAAkB,EAAE,CAAM;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAQ;IACtE,KAAK,SAAM;IACX,WAAW,SAAM;IACjB,KAAK,SAAM;IACM,QAAQ,UAAS;IACF,KAAK,UAAS;IAC7B,SAAS,UAAS;IAEtC,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAM;IAEnB,OAAO,CAAC,MAAM,CAAoB;IAIlD,OAAO,CAAC,IAAI,CAAqD;IAEjE,OAAO,KAAK,SAAS,GAIpB;IAED,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,OAAO;YAOD,UAAU;IAyBxB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,eAAe;IAUd,MAAM;CAgDhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,cAAc,CAAC;KACnC;CACF"}
@@ -1,18 +1,18 @@
1
- import { css as g, LitElement as h, html as s, nothing as d } from "lit";
1
+ import { css as g, LitElement as h, html as s, nothing as l } from "lit";
2
2
  import { property as c, state as u, query as v, customElement as f } from "lit/decorators.js";
3
- import { h as b, r as m } from "../../chunks/premium.css-9I4kHrsl.js";
4
- var _ = Object.defineProperty, y = Object.getOwnPropertyDescriptor, o = (e, r, a, n) => {
5
- for (var i = n > 1 ? void 0 : n ? y(r, a) : r, l = e.length - 1, p; l >= 0; l--)
6
- (p = e[l]) && (i = (n ? p(r, a, i) : p(i)) || i);
7
- return n && i && _(r, a, i), i;
3
+ import { h as b, r as m } from "../../chunks/premium.css-DHekUEUt.js";
4
+ var _ = Object.defineProperty, y = Object.getOwnPropertyDescriptor, o = (e, t, a, n) => {
5
+ for (var i = n > 1 ? void 0 : n ? y(t, a) : t, d = e.length - 1, p; d >= 0; d--)
6
+ (p = e[d]) && (i = (n ? p(t, a, i) : p(i)) || i);
7
+ return n && i && _(t, a, i), i;
8
8
  };
9
- let t = class extends h {
9
+ let r = class extends h {
10
10
  constructor() {
11
- super(...arguments), this.options = [], this.rounded = "lg", this.value = "", this.placeholder = "", this.label = "", this.disabled = !1, this.error = !1, this.clearable = !1, this._query = "", this._open = !1, this._focused = !1, this._activeIndex = -1;
11
+ super(...arguments), this.options = [], this.rounded = "lg", this.value = "", this.placeholder = "", this.label = "", this.disabled = !1, this.error = !1, this.clearable = !1, this._query = "", this._open = !1, this._focused = !1, this._activeIndex = -1, this._uid = `cg-ac-${Math.random().toString(36).slice(2, 9)}`;
12
12
  }
13
13
  get _filtered() {
14
14
  const e = this._query.toLowerCase();
15
- return e ? this.options.filter((r) => r.label.toLowerCase().includes(e)) : this.options;
15
+ return e ? this.options.filter((t) => t.label.toLowerCase().includes(e)) : this.options;
16
16
  }
17
17
  _onInput(e) {
18
18
  this._query = e.target.value, this._open = !0, this._activeIndex = -1, this.dispatchEvent(new CustomEvent("cg-autocomplete-input", { detail: { query: this._query }, bubbles: !0, composed: !0 }));
@@ -20,31 +20,46 @@ let t = class extends h {
20
20
  _select(e) {
21
21
  this.value = e.value, this._query = e.label, this._open = !1, this.dispatchEvent(new CustomEvent("cg-autocomplete-select", { detail: { value: e.value, label: e.label }, bubbles: !0, composed: !0 }));
22
22
  }
23
- _onKeyDown(e) {
24
- const r = this._filtered;
25
- e.key === "ArrowDown" ? (e.preventDefault(), this._open = !0, this._activeIndex = Math.min(this._activeIndex + 1, r.length - 1)) : e.key === "ArrowUp" ? (e.preventDefault(), this._activeIndex = Math.max(this._activeIndex - 1, 0)) : e.key === "Enter" && this._activeIndex >= 0 && r[this._activeIndex] ? (e.preventDefault(), this._select(r[this._activeIndex])) : e.key === "Escape" && (this._open = !1);
23
+ async _onKeyDown(e) {
24
+ const t = this._filtered;
25
+ if (e.key === "ArrowDown")
26
+ e.preventDefault(), this._open = !0, this._activeIndex = Math.min(this._activeIndex + 1, t.length - 1);
27
+ else if (e.key === "ArrowUp")
28
+ e.preventDefault(), this._open = !0, this._activeIndex = Math.max(this._activeIndex - 1, 0);
29
+ else if (e.key === "Enter" && this._activeIndex >= 0 && t[this._activeIndex]) {
30
+ e.preventDefault(), this._select(t[this._activeIndex]);
31
+ return;
32
+ } else if (e.key === "Escape") {
33
+ this._open = !1;
34
+ return;
35
+ } else
36
+ return;
37
+ await this.updateComplete, this.renderRoot.querySelector(".option.active")?.scrollIntoView({ block: "nearest" });
26
38
  }
27
39
  _clear() {
28
40
  this.value = "", this._query = "", this._input.focus(), this.dispatchEvent(new CustomEvent("cg-autocomplete-select", { detail: { value: "", label: "" }, bubbles: !0, composed: !0 }));
29
41
  }
30
42
  _highlightMatch(e) {
31
- const r = this._query.toLowerCase(), a = e.toLowerCase().indexOf(r);
32
- if (a < 0 || !r) return e;
33
- const n = e.slice(0, a), i = e.slice(a, a + r.length), l = e.slice(a + r.length);
34
- return s`${n}<span class="match">${i}</span>${l}`;
43
+ const t = this._query.toLowerCase(), a = e.toLowerCase().indexOf(t);
44
+ if (a < 0 || !t) return e;
45
+ const n = e.slice(0, a), i = e.slice(a, a + t.length), d = e.slice(a + t.length);
46
+ return s`${n}<span class="match">${i}</span>${d}`;
35
47
  }
36
48
  render() {
37
49
  const e = this._filtered;
38
50
  return s`
39
- ${this.label ? s`<span class="label">${this.label}</span>` : d}
51
+ ${this.label ? s`<span class="label">${this.label}</span>` : l}
40
52
  <div class="input-wrap ${this._focused ? "focused" : ""} ${this.disabled ? "disabled" : ""}">
41
53
  <input
42
54
  .value=${this._query}
43
- placeholder=${this.placeholder || d}
55
+ placeholder=${this.placeholder || l}
44
56
  ?disabled=${this.disabled}
45
57
  role="combobox"
46
58
  aria-expanded=${this._open}
47
59
  aria-autocomplete="list"
60
+ aria-controls=${`${this._uid}-listbox`}
61
+ aria-activedescendant=${this._open && this._activeIndex >= 0 ? `${this._uid}-opt-${this._activeIndex}` : l}
62
+ aria-invalid=${this.error ? "true" : l}
48
63
  aria-label=${this.label || "Autocomplete"}
49
64
  @input=${this._onInput}
50
65
  @keydown=${this._onKeyDown}
@@ -56,32 +71,33 @@ let t = class extends h {
56
71
  }}
57
72
  />
58
73
  ${this.clearable && this._query ? s`
59
- <button class="clear" @mousedown=${(r) => r.preventDefault()} @click=${this._clear} aria-label="Clear">
74
+ <button class="clear" @mousedown=${(t) => t.preventDefault()} @click=${this._clear} aria-label="Clear">
60
75
  <cg-icon name="x" size="xs"></cg-icon>
61
76
  </button>
62
- ` : d}
77
+ ` : l}
63
78
  <span class="chevron ${this._open ? "open" : ""}">
64
79
  <cg-icon name="chevron-down" size="sm"></cg-icon>
65
80
  </span>
66
81
  </div>
67
82
  ${this._open ? s`
68
- <div class="dropdown" role="listbox">
69
- ${e.length === 0 ? s`<div class="empty">No results found</div>` : e.map((r, a) => s`
83
+ <div class="dropdown" role="listbox" id=${`${this._uid}-listbox`}>
84
+ ${e.length === 0 ? s`<div class="empty">No results found</div>` : e.map((t, a) => s`
70
85
  <div class="option ${a === this._activeIndex ? "active" : ""}"
71
86
  role="option"
87
+ id=${`${this._uid}-opt-${a}`}
72
88
  aria-selected=${a === this._activeIndex}
73
89
  @mousedown=${(n) => n.preventDefault()}
74
- @click=${() => this._select(r)}>
75
- ${r.icon ? s`<cg-icon name="${r.icon}" size="sm"></cg-icon>` : d}
76
- <span>${this._highlightMatch(r.label)}</span>
90
+ @click=${() => this._select(t)}>
91
+ ${t.icon ? s`<cg-icon name="${t.icon}" size="sm"></cg-icon>` : l}
92
+ <span>${this._highlightMatch(t.label)}</span>
77
93
  </div>
78
94
  `)}
79
95
  </div>
80
- ` : d}
96
+ ` : l}
81
97
  `;
82
98
  }
83
99
  };
84
- t.styles = [b, m, g`
100
+ r.styles = [b, m, g`
85
101
  :host {
86
102
  position: relative;
87
103
  }
@@ -233,47 +249,47 @@ t.styles = [b, m, g`
233
249
  `];
234
250
  o([
235
251
  c({ type: Array })
236
- ], t.prototype, "options", 2);
252
+ ], r.prototype, "options", 2);
237
253
  o([
238
254
  c({ reflect: !0 })
239
- ], t.prototype, "rounded", 2);
255
+ ], r.prototype, "rounded", 2);
240
256
  o([
241
257
  c()
242
- ], t.prototype, "value", 2);
258
+ ], r.prototype, "value", 2);
243
259
  o([
244
260
  c()
245
- ], t.prototype, "placeholder", 2);
261
+ ], r.prototype, "placeholder", 2);
246
262
  o([
247
263
  c()
248
- ], t.prototype, "label", 2);
264
+ ], r.prototype, "label", 2);
249
265
  o([
250
266
  c({ type: Boolean })
251
- ], t.prototype, "disabled", 2);
267
+ ], r.prototype, "disabled", 2);
252
268
  o([
253
269
  c({ type: Boolean, reflect: !0 })
254
- ], t.prototype, "error", 2);
270
+ ], r.prototype, "error", 2);
255
271
  o([
256
272
  c({ type: Boolean })
257
- ], t.prototype, "clearable", 2);
273
+ ], r.prototype, "clearable", 2);
258
274
  o([
259
275
  u()
260
- ], t.prototype, "_query", 2);
276
+ ], r.prototype, "_query", 2);
261
277
  o([
262
278
  u()
263
- ], t.prototype, "_open", 2);
279
+ ], r.prototype, "_open", 2);
264
280
  o([
265
281
  u()
266
- ], t.prototype, "_focused", 2);
282
+ ], r.prototype, "_focused", 2);
267
283
  o([
268
284
  u()
269
- ], t.prototype, "_activeIndex", 2);
285
+ ], r.prototype, "_activeIndex", 2);
270
286
  o([
271
287
  v("input")
272
- ], t.prototype, "_input", 2);
273
- t = o([
288
+ ], r.prototype, "_input", 2);
289
+ r = o([
274
290
  f("cg-autocomplete")
275
- ], t);
291
+ ], r);
276
292
  export {
277
- t as CgAutocomplete
293
+ r as CgAutocomplete
278
294
  };
279
295
  //# sourceMappingURL=cg-autocomplete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cg-autocomplete.js","sources":["../../../src/components/cg-autocomplete/cg-autocomplete.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\nexport interface AutocompleteOption {\n value: string;\n label: string;\n icon?: string;\n}\n\n/**\n * <cg-autocomplete> — Combobox input with filtered dropdown suggestions.\n *\n * @example\n * ```html\n * <cg-autocomplete label=\"Country\" placeholder=\"Search...\" .options=${countries}></cg-autocomplete>\n * ```\n *\n * @fires {CustomEvent<{query: string}>} cg-autocomplete-input - On input change\n * @fires {CustomEvent<{value: string, label: string}>} cg-autocomplete-select - On option select\n *\n * @cssprop --cg-component-input-radius - Input border radius\n * @cssprop --cg-component-input-height-md - Input height\n * @cssprop --cg-color-input-border-default - Default border color\n */\n@customElement('cg-autocomplete')\nexport class CgAutocomplete extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n position: relative;\n }\n\n .label {\n display: block;\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-medium);\n color: var(--cg-color-surface-container-text);\n margin-bottom: var(--cg-spacing-6);\n }\n\n .input-wrap {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n padding: 0 var(--cg-spacing-12);\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n border-radius: var(--cg-component-input-radius);\n background: var(--cg-color-input-background-default);\n min-height: var(--cg-component-input-height-md);\n transition:\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .input-wrap:hover:not(.disabled) {\n border-color: var(--cg-color-input-border-hover);\n }\n .input-wrap.focused {\n border-color: var(--cg-color-input-border-focus);\n box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong);\n }\n .input-wrap.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--cg-color-input-background-disabled);\n border-color: var(--cg-color-input-border-disabled);\n }\n\n /* ── Error state ── */\n :host([error]) .input-wrap {\n border-color: var(--cg-color-input-border-error);\n }\n :host([error]) .input-wrap.focused {\n border-color: var(--cg-color-status-error-text-default);\n box-shadow: 0 0 0 3px var(--cg-shadow-focus-error);\n }\n\n input {\n flex: 1;\n border: none;\n outline: none;\n background: transparent;\n font: inherit;\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-input-text-default);\n min-width: 0;\n padding: var(--cg-spacing-8) 0;\n }\n input::placeholder { color: var(--cg-color-input-text-placeholder); }\n input:disabled { cursor: not-allowed; }\n\n .clear {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--cg-spacing-20);\n height: var(--cg-spacing-20);\n border: none;\n padding: 0;\n background: var(--cg-color-action-tertiary-background-hover);\n color: var(--cg-color-surface-container-outlined);\n border-radius: var(--cg-border-radius-full);\n cursor: pointer;\n flex-shrink: 0;\n transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .clear:hover {\n background: var(--cg-color-action-secondary-background-hover);\n color: var(--cg-color-surface-container-text);\n }\n\n .chevron {\n flex-shrink: 0;\n color: var(--cg-color-input-icon-default);\n transition: transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .chevron.open { transform: rotate(180deg); }\n\n .dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n margin-top: var(--cg-spacing-4);\n background: var(--cg-color-modal-container-background);\n border: var(--cg-border-width-50) solid var(--cg-color-modal-container-border);\n border-radius: var(--cg-border-radius-100);\n box-shadow: var(--cg-elevation-3);\n max-height: 280px;\n overflow-y: auto;\n z-index: var(--cg-z-index-400);\n padding: var(--cg-spacing-6);\n animation: dropIn var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n\n @keyframes dropIn {\n from { opacity: 0; transform: scale(0.96) translateY(calc(var(--cg-spacing-4) * -1)); }\n to { opacity: 1; transform: scale(1) translateY(0); }\n }\n\n .option {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n padding: var(--cg-spacing-8) var(--cg-spacing-12);\n border-radius: var(--cg-border-radius-50);\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-container-text);\n cursor: pointer;\n transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .option:hover, .option.active {\n background: var(--cg-color-action-tertiary-background-hover);\n }\n .option .match {\n color: var(--cg-color-action-primary-background-default);\n font-weight: var(--cg-font-weight-semibold);\n }\n\n .empty {\n padding: var(--cg-spacing-16);\n text-align: center;\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-container-outlined);\n }\n\n /* Rounded variants */\n :host([rounded=\"none\"]) .input-wrap { border-radius: 0; }\n :host([rounded=\"sm\"]) .input-wrap { border-radius: var(--cg-border-radius-50); }\n :host([rounded=\"md\"]) .input-wrap { border-radius: var(--cg-border-radius-100); }\n :host([rounded=\"lg\"]) .input-wrap { border-radius: var(--cg-component-input-radius); }\n :host([rounded=\"full\"]) .input-wrap { border-radius: var(--cg-border-radius-full); }\n\n /* Reduced motion */\n @media (prefers-reduced-motion: reduce) {\n .dropdown { animation: none; }\n }\n `];\n\n @property({ type: Array }) options: AutocompleteOption[] = [];\n @property({ reflect: true }) rounded: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'lg';\n @property() value = '';\n @property() placeholder = '';\n @property() label = '';\n @property({ type: Boolean }) disabled = false;\n @property({ type: Boolean, reflect: true }) error = false;\n @property({ type: Boolean }) clearable = false;\n\n @state() private _query = '';\n @state() private _open = false;\n @state() private _focused = false;\n @state() private _activeIndex = -1;\n\n @query('input') private _input!: HTMLInputElement;\n\n private get _filtered(): AutocompleteOption[] {\n const q = this._query.toLowerCase();\n if (!q) return this.options;\n return this.options.filter(o => o.label.toLowerCase().includes(q));\n }\n\n private _onInput(e: Event) {\n this._query = (e.target as HTMLInputElement).value;\n this._open = true;\n this._activeIndex = -1;\n this.dispatchEvent(new CustomEvent('cg-autocomplete-input', { detail: { query: this._query }, bubbles: true, composed: true }));\n }\n\n private _select(opt: AutocompleteOption) {\n this.value = opt.value;\n this._query = opt.label;\n this._open = false;\n this.dispatchEvent(new CustomEvent('cg-autocomplete-select', { detail: { value: opt.value, label: opt.label }, bubbles: true, composed: true }));\n }\n\n private _onKeyDown(e: KeyboardEvent) {\n const list = this._filtered;\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n this._open = true;\n this._activeIndex = Math.min(this._activeIndex + 1, list.length - 1);\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n this._activeIndex = Math.max(this._activeIndex - 1, 0);\n } else if (e.key === 'Enter' && this._activeIndex >= 0 && list[this._activeIndex]) {\n e.preventDefault();\n this._select(list[this._activeIndex]!);\n } else if (e.key === 'Escape') {\n this._open = false;\n }\n }\n\n private _clear() {\n this.value = '';\n this._query = '';\n this._input.focus();\n this.dispatchEvent(new CustomEvent('cg-autocomplete-select', { detail: { value: '', label: '' }, bubbles: true, composed: true }));\n }\n\n private _highlightMatch(label: string): unknown {\n const q = this._query.toLowerCase();\n const idx = label.toLowerCase().indexOf(q);\n if (idx < 0 || !q) return label;\n const before = label.slice(0, idx);\n const match = label.slice(idx, idx + q.length);\n const after = label.slice(idx + q.length);\n return html`${before}<span class=\"match\">${match}</span>${after}`;\n }\n\n override render() {\n const filtered = this._filtered;\n return html`\n ${this.label ? html`<span class=\"label\">${this.label}</span>` : nothing}\n <div class=\"input-wrap ${this._focused ? 'focused' : ''} ${this.disabled ? 'disabled' : ''}\">\n <input\n .value=${this._query}\n placeholder=${this.placeholder || nothing}\n ?disabled=${this.disabled}\n role=\"combobox\"\n aria-expanded=${this._open}\n aria-autocomplete=\"list\"\n aria-label=${this.label || 'Autocomplete'}\n @input=${this._onInput}\n @keydown=${this._onKeyDown}\n @focus=${() => { this._focused = true; this._open = true; }}\n @blur=${() => { this._focused = false; this._open = false; }}\n />\n ${this.clearable && this._query ? html`\n <button class=\"clear\" @mousedown=${(e: Event) => e.preventDefault()} @click=${this._clear} aria-label=\"Clear\">\n <cg-icon name=\"x\" size=\"xs\"></cg-icon>\n </button>\n ` : nothing}\n <span class=\"chevron ${this._open ? 'open' : ''}\">\n <cg-icon name=\"chevron-down\" size=\"sm\"></cg-icon>\n </span>\n </div>\n ${this._open ? html`\n <div class=\"dropdown\" role=\"listbox\">\n ${filtered.length === 0 ? html`<div class=\"empty\">No results found</div>` :\n filtered.map((opt, i) => html`\n <div class=\"option ${i === this._activeIndex ? 'active' : ''}\"\n role=\"option\"\n aria-selected=${i === this._activeIndex}\n @mousedown=${(e: Event) => e.preventDefault()}\n @click=${() => this._select(opt)}>\n ${opt.icon ? html`<cg-icon name=\"${opt.icon}\" size=\"sm\"></cg-icon>` : nothing}\n <span>${this._highlightMatch(opt.label)}</span>\n </div>\n `)}\n </div>\n ` : nothing}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-autocomplete': CgAutocomplete;\n }\n}\n"],"names":["CgAutocomplete","LitElement","q","o","opt","list","label","idx","before","match","after","html","filtered","nothing","e","i","hostBlock","reducedMotion","css","__decorateClass","property","state","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"cg-autocomplete.js","sources":["../../../src/components/cg-autocomplete/cg-autocomplete.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\nexport interface AutocompleteOption {\n value: string;\n label: string;\n icon?: string;\n}\n\n/**\n * <cg-autocomplete> — Combobox input with filtered dropdown suggestions.\n *\n * @example\n * ```html\n * <cg-autocomplete label=\"Country\" placeholder=\"Search...\" .options=${countries}></cg-autocomplete>\n * ```\n *\n * @fires {CustomEvent<{query: string}>} cg-autocomplete-input - On input change\n * @fires {CustomEvent<{value: string, label: string}>} cg-autocomplete-select - On option select\n *\n * @cssprop --cg-component-input-radius - Input border radius\n * @cssprop --cg-component-input-height-md - Input height\n * @cssprop --cg-color-input-border-default - Default border color\n */\n@customElement('cg-autocomplete')\nexport class CgAutocomplete extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n position: relative;\n }\n\n .label {\n display: block;\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-medium);\n color: var(--cg-color-surface-container-text);\n margin-bottom: var(--cg-spacing-6);\n }\n\n .input-wrap {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n padding: 0 var(--cg-spacing-12);\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n border-radius: var(--cg-component-input-radius);\n background: var(--cg-color-input-background-default);\n min-height: var(--cg-component-input-height-md);\n transition:\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .input-wrap:hover:not(.disabled) {\n border-color: var(--cg-color-input-border-hover);\n }\n .input-wrap.focused {\n border-color: var(--cg-color-input-border-focus);\n box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong);\n }\n .input-wrap.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--cg-color-input-background-disabled);\n border-color: var(--cg-color-input-border-disabled);\n }\n\n /* ── Error state ── */\n :host([error]) .input-wrap {\n border-color: var(--cg-color-input-border-error);\n }\n :host([error]) .input-wrap.focused {\n border-color: var(--cg-color-status-error-text-default);\n box-shadow: 0 0 0 3px var(--cg-shadow-focus-error);\n }\n\n input {\n flex: 1;\n border: none;\n outline: none;\n background: transparent;\n font: inherit;\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-input-text-default);\n min-width: 0;\n padding: var(--cg-spacing-8) 0;\n }\n input::placeholder { color: var(--cg-color-input-text-placeholder); }\n input:disabled { cursor: not-allowed; }\n\n .clear {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--cg-spacing-20);\n height: var(--cg-spacing-20);\n border: none;\n padding: 0;\n background: var(--cg-color-action-tertiary-background-hover);\n color: var(--cg-color-surface-container-outlined);\n border-radius: var(--cg-border-radius-full);\n cursor: pointer;\n flex-shrink: 0;\n transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .clear:hover {\n background: var(--cg-color-action-secondary-background-hover);\n color: var(--cg-color-surface-container-text);\n }\n\n .chevron {\n flex-shrink: 0;\n color: var(--cg-color-input-icon-default);\n transition: transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .chevron.open { transform: rotate(180deg); }\n\n .dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n margin-top: var(--cg-spacing-4);\n background: var(--cg-color-modal-container-background);\n border: var(--cg-border-width-50) solid var(--cg-color-modal-container-border);\n border-radius: var(--cg-border-radius-100);\n box-shadow: var(--cg-elevation-3);\n max-height: 280px;\n overflow-y: auto;\n z-index: var(--cg-z-index-400);\n padding: var(--cg-spacing-6);\n animation: dropIn var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n\n @keyframes dropIn {\n from { opacity: 0; transform: scale(0.96) translateY(calc(var(--cg-spacing-4) * -1)); }\n to { opacity: 1; transform: scale(1) translateY(0); }\n }\n\n .option {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n padding: var(--cg-spacing-8) var(--cg-spacing-12);\n border-radius: var(--cg-border-radius-50);\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-container-text);\n cursor: pointer;\n transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .option:hover, .option.active {\n background: var(--cg-color-action-tertiary-background-hover);\n }\n .option .match {\n color: var(--cg-color-action-primary-background-default);\n font-weight: var(--cg-font-weight-semibold);\n }\n\n .empty {\n padding: var(--cg-spacing-16);\n text-align: center;\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-container-outlined);\n }\n\n /* Rounded variants */\n :host([rounded=\"none\"]) .input-wrap { border-radius: 0; }\n :host([rounded=\"sm\"]) .input-wrap { border-radius: var(--cg-border-radius-50); }\n :host([rounded=\"md\"]) .input-wrap { border-radius: var(--cg-border-radius-100); }\n :host([rounded=\"lg\"]) .input-wrap { border-radius: var(--cg-component-input-radius); }\n :host([rounded=\"full\"]) .input-wrap { border-radius: var(--cg-border-radius-full); }\n\n /* Reduced motion */\n @media (prefers-reduced-motion: reduce) {\n .dropdown { animation: none; }\n }\n `];\n\n @property({ type: Array }) options: AutocompleteOption[] = [];\n @property({ reflect: true }) rounded: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'lg';\n @property() value = '';\n @property() placeholder = '';\n @property() label = '';\n @property({ type: Boolean }) disabled = false;\n @property({ type: Boolean, reflect: true }) error = false;\n @property({ type: Boolean }) clearable = false;\n\n @state() private _query = '';\n @state() private _open = false;\n @state() private _focused = false;\n @state() private _activeIndex = -1;\n\n @query('input') private _input!: HTMLInputElement;\n\n // Per-instance id prefix so aria-controls / aria-activedescendant references\n // never collide across multiple autocompletes on the same page.\n private _uid = `cg-ac-${Math.random().toString(36).slice(2, 9)}`;\n\n private get _filtered(): AutocompleteOption[] {\n const q = this._query.toLowerCase();\n if (!q) return this.options;\n return this.options.filter(o => o.label.toLowerCase().includes(q));\n }\n\n private _onInput(e: Event) {\n this._query = (e.target as HTMLInputElement).value;\n this._open = true;\n this._activeIndex = -1;\n this.dispatchEvent(new CustomEvent('cg-autocomplete-input', { detail: { query: this._query }, bubbles: true, composed: true }));\n }\n\n private _select(opt: AutocompleteOption) {\n this.value = opt.value;\n this._query = opt.label;\n this._open = false;\n this.dispatchEvent(new CustomEvent('cg-autocomplete-select', { detail: { value: opt.value, label: opt.label }, bubbles: true, composed: true }));\n }\n\n private async _onKeyDown(e: KeyboardEvent) {\n const list = this._filtered;\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n this._open = true;\n this._activeIndex = Math.min(this._activeIndex + 1, list.length - 1);\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n this._open = true;\n this._activeIndex = Math.max(this._activeIndex - 1, 0);\n } else if (e.key === 'Enter' && this._activeIndex >= 0 && list[this._activeIndex]) {\n e.preventDefault();\n this._select(list[this._activeIndex]!);\n return;\n } else if (e.key === 'Escape') {\n this._open = false;\n return;\n } else {\n return;\n }\n // Keep the active option visible when navigating past the scroll window.\n await this.updateComplete;\n this.renderRoot.querySelector('.option.active')?.scrollIntoView({ block: 'nearest' });\n }\n\n private _clear() {\n this.value = '';\n this._query = '';\n this._input.focus();\n this.dispatchEvent(new CustomEvent('cg-autocomplete-select', { detail: { value: '', label: '' }, bubbles: true, composed: true }));\n }\n\n private _highlightMatch(label: string): unknown {\n const q = this._query.toLowerCase();\n const idx = label.toLowerCase().indexOf(q);\n if (idx < 0 || !q) return label;\n const before = label.slice(0, idx);\n const match = label.slice(idx, idx + q.length);\n const after = label.slice(idx + q.length);\n return html`${before}<span class=\"match\">${match}</span>${after}`;\n }\n\n override render() {\n const filtered = this._filtered;\n return html`\n ${this.label ? html`<span class=\"label\">${this.label}</span>` : nothing}\n <div class=\"input-wrap ${this._focused ? 'focused' : ''} ${this.disabled ? 'disabled' : ''}\">\n <input\n .value=${this._query}\n placeholder=${this.placeholder || nothing}\n ?disabled=${this.disabled}\n role=\"combobox\"\n aria-expanded=${this._open}\n aria-autocomplete=\"list\"\n aria-controls=${`${this._uid}-listbox`}\n aria-activedescendant=${this._open && this._activeIndex >= 0 ? `${this._uid}-opt-${this._activeIndex}` : nothing}\n aria-invalid=${this.error ? 'true' : nothing}\n aria-label=${this.label || 'Autocomplete'}\n @input=${this._onInput}\n @keydown=${this._onKeyDown}\n @focus=${() => { this._focused = true; this._open = true; }}\n @blur=${() => { this._focused = false; this._open = false; }}\n />\n ${this.clearable && this._query ? html`\n <button class=\"clear\" @mousedown=${(e: Event) => e.preventDefault()} @click=${this._clear} aria-label=\"Clear\">\n <cg-icon name=\"x\" size=\"xs\"></cg-icon>\n </button>\n ` : nothing}\n <span class=\"chevron ${this._open ? 'open' : ''}\">\n <cg-icon name=\"chevron-down\" size=\"sm\"></cg-icon>\n </span>\n </div>\n ${this._open ? html`\n <div class=\"dropdown\" role=\"listbox\" id=${`${this._uid}-listbox`}>\n ${filtered.length === 0 ? html`<div class=\"empty\">No results found</div>` :\n filtered.map((opt, i) => html`\n <div class=\"option ${i === this._activeIndex ? 'active' : ''}\"\n role=\"option\"\n id=${`${this._uid}-opt-${i}`}\n aria-selected=${i === this._activeIndex}\n @mousedown=${(e: Event) => e.preventDefault()}\n @click=${() => this._select(opt)}>\n ${opt.icon ? html`<cg-icon name=\"${opt.icon}\" size=\"sm\"></cg-icon>` : nothing}\n <span>${this._highlightMatch(opt.label)}</span>\n </div>\n `)}\n </div>\n ` : nothing}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-autocomplete': CgAutocomplete;\n }\n}\n"],"names":["CgAutocomplete","LitElement","q","o","opt","list","label","idx","before","match","after","html","filtered","nothing","e","i","hostBlock","reducedMotion","css","__decorateClass","property","state","query","customElement"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cg-avatar.d.ts","sourceRoot":"","sources":["../../../src/components/cg-avatar/cg-avatar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,KAAK,CAAC;AAI1D;;;;;;;;;;;GAWG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,OAAgB,MAAM,4BA6FnB;IAES,GAAG,SAAM;IACT,GAAG,SAAM;IACT,IAAI,SAAM;IACO,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAC9C,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAY;IACtC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAQ;IAC7D,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAQ;IACnC,YAAY,SAAM;IAEnD,OAAO,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,OAAO;IAIN,MAAM;CA2BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"cg-avatar.d.ts","sourceRoot":"","sources":["../../../src/components/cg-avatar/cg-avatar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,KAAK,CAAC;AAI1D;;;;;;;;;;;GAWG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,OAAgB,MAAM,4BA6FnB;IAES,GAAG,SAAM;IACT,GAAG,SAAM;IACT,IAAI,SAAM;IACO,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAC9C,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAY;IACtC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAQ;IAC7D,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAQ;IACnC,YAAY,SAAM;IAEnD,OAAO,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,OAAO;IAIN,MAAM;CA+BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -1,17 +1,17 @@
1
- import { css as g, LitElement as d, svg as v, nothing as u, html as n } from "lit";
2
- import { property as r, state as p, customElement as f } from "lit/decorators.js";
3
- import { a as m, r as b } from "../../chunks/premium.css-9I4kHrsl.js";
4
- var z = Object.defineProperty, x = Object.getOwnPropertyDescriptor, a = (s, e, c, i) => {
5
- for (var o = i > 1 ? void 0 : i ? x(e, c) : e, l = s.length - 1, h; l >= 0; l--)
6
- (h = s[l]) && (o = (i ? h(e, c, o) : h(o)) || o);
7
- return i && o && z(e, c, o), o;
1
+ import { css as g, LitElement as d, svg as v, nothing as u, html as l } from "lit";
2
+ import { property as o, state as p, customElement as f } from "lit/decorators.js";
3
+ import { a as m, r as b } from "../../chunks/premium.css-DHekUEUt.js";
4
+ var z = Object.defineProperty, x = Object.getOwnPropertyDescriptor, a = (e, r, c, i) => {
5
+ for (var s = i > 1 ? void 0 : i ? x(r, c) : r, n = e.length - 1, h; n >= 0; n--)
6
+ (h = e[n]) && (s = (i ? h(r, c, s) : h(s)) || s);
7
+ return i && s && z(r, c, s), s;
8
8
  };
9
9
  let t = class extends d {
10
10
  constructor() {
11
11
  super(...arguments), this.src = "", this.alt = "", this.name = "", this.size = "md", this.shape = "circle", this.status = null, this.type = null, this.fallbackIcon = "", this._imgFailed = !1;
12
12
  }
13
- _getInitials(s) {
14
- return s ? s.trim().split(/\s+/).slice(0, 2).map((e) => e[0] || "").join("").toUpperCase() : "";
13
+ _getInitials(e) {
14
+ return e ? e.trim().split(/\s+/).slice(0, 2).map((r) => r[0] || "").join("").toUpperCase() : "";
15
15
  }
16
16
  _onError() {
17
17
  this._imgFailed = !0;
@@ -20,24 +20,24 @@ let t = class extends d {
20
20
  this._imgFailed = !1;
21
21
  }
22
22
  render() {
23
- const s = this._getInitials(this.name), e = this.src && !this._imgFailed, c = this.alt || this.name || "Avatar", i = v`
23
+ const e = this._getInitials(this.name), r = this.src && !this._imgFailed, c = this.type ? `${this.type} ` : "", i = this.status ? `, ${this.status}` : "", s = `${c}${this.alt || this.name || "Avatar"}${i}`, n = v`
24
24
  <svg class="fallback-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round">
25
25
  <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path>
26
26
  <circle cx="12" cy="7" r="4"></circle>
27
27
  </svg>
28
28
  `;
29
- return n`
30
- <div class="avatar" role="img" aria-label=${c}>
31
- ${e ? n`
29
+ return l`
30
+ <div class="avatar" role="img" aria-label=${s}>
31
+ ${r ? l`
32
32
  <img
33
33
  src=${this.src}
34
34
  alt=${this.alt || this.name || ""}
35
35
  @error=${this._onError}
36
36
  @load=${this._onLoad}
37
37
  />
38
- ` : s ? n`<span class="initials">${s}</span>` : n`<slot name="fallback">${i}</slot>`}
38
+ ` : e ? l`<span class="initials">${e}</span>` : l`<slot name="fallback">${n}</slot>`}
39
39
  </div>
40
- ${this.status ? n`<span class="status ${this.status}" aria-hidden="true"></span>` : u}
40
+ ${this.status ? l`<span class="status ${this.status}" aria-hidden="true"></span>` : u}
41
41
  `;
42
42
  }
43
43
  };
@@ -57,7 +57,7 @@ t.styles = [m, b, g`
57
57
  align-items: center;
58
58
  justify-content: center;
59
59
  background: var(--cg-color-action-secondary-background-default);
60
- color: var(--cg-color-surface-container-text);
60
+ color: var(--cg-color-action-secondary-text-default);
61
61
  overflow: hidden;
62
62
  border-radius: var(--cg-border-radius-full);
63
63
  font-weight: var(--cg-font-weight-semibold);
@@ -136,28 +136,28 @@ t.styles = [m, b, g`
136
136
  }
137
137
  `];
138
138
  a([
139
- r()
139
+ o()
140
140
  ], t.prototype, "src", 2);
141
141
  a([
142
- r()
142
+ o()
143
143
  ], t.prototype, "alt", 2);
144
144
  a([
145
- r()
145
+ o()
146
146
  ], t.prototype, "name", 2);
147
147
  a([
148
- r({ reflect: !0 })
148
+ o({ reflect: !0 })
149
149
  ], t.prototype, "size", 2);
150
150
  a([
151
- r({ reflect: !0 })
151
+ o({ reflect: !0 })
152
152
  ], t.prototype, "shape", 2);
153
153
  a([
154
- r({ reflect: !0 })
154
+ o({ reflect: !0 })
155
155
  ], t.prototype, "status", 2);
156
156
  a([
157
- r({ reflect: !0 })
157
+ o({ reflect: !0 })
158
158
  ], t.prototype, "type", 2);
159
159
  a([
160
- r({ attribute: "fallback-icon" })
160
+ o({ attribute: "fallback-icon" })
161
161
  ], t.prototype, "fallbackIcon", 2);
162
162
  a([
163
163
  p()