@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,28 +1,33 @@
1
- import { css as v, LitElement as u, nothing as i, html as s } from "lit";
2
- import { property as t, state as p, customElement as m } from "lit/decorators.js";
3
- import { c as h, r as f } from "../../chunks/premium.css-9I4kHrsl.js";
4
- import { F as b } from "../../chunks/focus-trap-BdRNhSPD.js";
5
- var y = Object.defineProperty, x = Object.getOwnPropertyDescriptor, a = (e, n, l, c) => {
6
- for (var r = c > 1 ? void 0 : c ? x(n, l) : n, d = e.length - 1, g; d >= 0; d--)
7
- (g = e[d]) && (r = (c ? g(n, l, r) : g(r)) || r);
8
- return c && r && y(n, l, r), r;
1
+ import { css as u, LitElement as v, nothing as t, html as s } from "lit";
2
+ import { property as r, state as p, customElement as h } from "lit/decorators.js";
3
+ import { c as m, r as f } from "../../chunks/premium.css-DHekUEUt.js";
4
+ import { F as b } from "../../chunks/focus-trap-vlQwKK-3.js";
5
+ var y = Object.defineProperty, x = Object.getOwnPropertyDescriptor, e = (o, i, l, c) => {
6
+ for (var n = c > 1 ? void 0 : c ? x(i, l) : i, d = o.length - 1, g; d >= 0; d--)
7
+ (g = o[d]) && (n = (c ? g(i, l, n) : g(n)) || n);
8
+ return c && n && y(i, l, n), n;
9
9
  };
10
- let o = class extends u {
10
+ let a = class extends v {
11
11
  constructor() {
12
12
  super(...arguments), this.open = !1, this.title = "", this.icon = "", this.size = "md", this.rounded = "lg", this.closable = !0, this.persistent = !1, this.loading = !1, this.error = "", this._hasFooter = !1, this._closing = !1, this._previousOverflow = "", this._focusTrap = new b();
13
13
  }
14
14
  disconnectedCallback() {
15
15
  super.disconnectedCallback(), this.open && (document.body.style.overflow = this._previousOverflow || ""), this._focusTrap.deactivate();
16
16
  }
17
- updated(e) {
18
- e.has("open") && (this.open ? this._onOpen() : (e.get("open") === !0 && (this._closing = !0, setTimeout(() => {
19
- this._closing = !1;
20
- }, 150)), this._onClose()));
17
+ updated(o) {
18
+ if (o.has("open")) {
19
+ if (o.get("open") === void 0 && !this.open) return;
20
+ this.open ? this._onOpen() : (o.get("open") === !0 && (this._closing = !0, this.shadowRoot?.querySelector(".modal")?.addEventListener("animationend", () => {
21
+ this._closing = !1;
22
+ }, { once: !0 }), setTimeout(() => {
23
+ this._closing = !1;
24
+ }, 300)), this._onClose());
25
+ }
21
26
  }
22
27
  _onOpen() {
23
28
  this._previousOverflow = document.body.style.overflow, document.body.style.overflow = "hidden", this.dispatchEvent(new CustomEvent("cg-modal-open", { bubbles: !0, composed: !0 }));
24
- const e = this.shadowRoot?.querySelector(".modal-container");
25
- e && this._focusTrap.activate(e, {
29
+ const o = this.shadowRoot?.querySelector(".modal-container");
30
+ o && this._focusTrap.activate(o, {
26
31
  returnFocus: !0,
27
32
  handleEscape: this.closable,
28
33
  onEscape: () => this._requestClose()
@@ -34,27 +39,31 @@ let o = class extends u {
34
39
  _handleBackdropClick() {
35
40
  !this.persistent && this.closable && this._requestClose();
36
41
  }
42
+ /** The container covers the backdrop (higher z-index), so outside-clicks
43
+ * land here — only dismiss when the click is on the container itself. */
44
+ _handleContainerClick(o) {
45
+ o.target === o.currentTarget && this._handleBackdropClick();
46
+ }
37
47
  _requestClose() {
38
48
  this.open = !1;
39
49
  }
40
- _handleFooterSlotChange(e) {
41
- const n = e.target;
42
- this._hasFooter = n.assignedNodes({ flatten: !0 }).length > 0;
50
+ _handleFooterSlotChange(o) {
51
+ const i = o.target;
52
+ this._hasFooter = i.assignedNodes({ flatten: !0 }).length > 0;
43
53
  }
44
54
  render() {
45
55
  return s`
46
56
  <div
47
57
  class="backdrop ${this._closing ? "closing" : ""}"
48
- @click="${this._handleBackdropClick}"
49
58
  aria-hidden="true"
50
59
  ></div>
51
- <div class="modal-container">
60
+ <div class="modal-container" @click="${this._handleContainerClick}">
52
61
  <div
53
62
  class="modal ${this._closing ? "closing" : ""}"
54
63
  role="dialog"
55
64
  aria-modal="true"
56
- aria-label="${this.title ? i : "Dialog"}"
57
- aria-labelledby="${this.title ? "modal-title" : i}"
65
+ aria-label="${this.title ? t : "Dialog"}"
66
+ aria-labelledby="${this.title ? "modal-title" : t}"
58
67
  tabindex="-1"
59
68
  >
60
69
  ${this.title || this.closable || this.icon ? s`
@@ -64,8 +73,8 @@ let o = class extends u {
64
73
  <div class="modal-icon">
65
74
  <slot name="icon"><cg-icon name="${this.icon}" size="md"></cg-icon></slot>
66
75
  </div>
67
- ` : i}
68
- <h2 class="modal-title" id="modal-title">${this.title}</h2>
76
+ ` : t}
77
+ ${this.title ? s`<h2 class="modal-title" id="modal-title">${this.title}</h2>` : t}
69
78
  </div>
70
79
  ${this.closable ? s`
71
80
  <button
@@ -75,25 +84,25 @@ let o = class extends u {
75
84
  >
76
85
  <cg-icon name="x" size="xs"></cg-icon>
77
86
  </button>
78
- ` : i}
87
+ ` : t}
79
88
  </div>
80
- ` : i}
89
+ ` : t}
81
90
 
82
91
  ${this.error ? s`
83
92
  <div class="modal-error-banner" role="alert">
84
93
  <cg-icon class="modal-error-icon" name="warning" size="sm" color="danger"></cg-icon>
85
94
  <span>${this.error}</span>
86
95
  </div>
87
- ` : i}
96
+ ` : t}
88
97
 
89
- <div class="modal-body">
98
+ <div class="modal-body" aria-busy="${this.loading ? "true" : t}">
90
99
  <slot></slot>
91
100
  ${this.loading ? s`
92
- <div class="modal-loading-overlay" aria-busy="true" aria-label="Loading">
101
+ <div class="modal-loading-overlay" role="status" aria-live="polite">
93
102
  <span class="modal-spinner"></span>
94
103
  <span class="modal-loading-text">Loading...</span>
95
104
  </div>
96
- ` : i}
105
+ ` : t}
97
106
  </div>
98
107
 
99
108
  <div class="modal-footer" ?hidden=${!this._hasFooter}>
@@ -104,9 +113,8 @@ let o = class extends u {
104
113
  `;
105
114
  }
106
115
  };
107
- o.styles = [h, f, v`
116
+ a.styles = [m, f, u`
108
117
  :host {
109
- transition: color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
110
118
  display: contents;
111
119
  font-family: var(--cg-font-family-primary);
112
120
  }
@@ -188,7 +196,7 @@ o.styles = [h, f, v`
188
196
  @media (prefers-reduced-motion: reduce) {
189
197
  .backdrop,
190
198
  .modal {
191
- transition: opacity var(--cg-transition-duration-fast) ease;
199
+ transition: opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
192
200
  }
193
201
  .modal {
194
202
  transform: scale(1) !important;
@@ -225,7 +233,7 @@ o.styles = [h, f, v`
225
233
  width: var(--cg-spacing-40);
226
234
  height: var(--cg-spacing-40);
227
235
  border-radius: var(--cg-border-radius-100);
228
- background: var(--cg-color-action-tertiary-background-hover);
236
+ background: var(--cg-color-accent-background);
229
237
  color: var(--cg-color-accent-text);
230
238
  font-size: var(--cg-icon-size-200);
231
239
  }
@@ -251,7 +259,7 @@ o.styles = [h, f, v`
251
259
  height: var(--cg-spacing-32);
252
260
  border: none;
253
261
  border-radius: var(--cg-border-radius-full);
254
- background: var(--cg-color-action-tertiary-background-hover);
262
+ background: var(--cg-color-action-tertiary-background-default);
255
263
  color: var(--cg-color-surface-container-outlined);
256
264
  cursor: pointer;
257
265
  font-size: var(--cg-font-size-sm);
@@ -265,18 +273,19 @@ o.styles = [h, f, v`
265
273
  }
266
274
 
267
275
  .close-btn:hover {
268
- background: var(--cg-color-action-secondary-background-hover);
276
+ background: var(--cg-color-action-tertiary-background-hover);
269
277
  color: var(--cg-color-surface-container-text);
270
278
  }
271
279
 
272
280
  .close-btn:active {
281
+ background: var(--cg-color-action-tertiary-background-active);
273
282
  transform: scale(var(--cg-interaction-press-scale));
274
283
  }
275
284
 
276
285
  .close-btn:focus-visible {
277
286
  box-shadow:
278
- 0 0 0 2px var(--cg-color-focus-ring-offset),
279
- 0 0 0 calc(2px + 2px) var(--cg-color-focus-ring);
287
+ 0 0 0 var(--cg-focus-ring-offset) var(--cg-color-focus-ring-offset),
288
+ 0 0 0 calc(var(--cg-focus-ring-offset) + var(--cg-focus-ring-width)) var(--cg-color-focus-ring);
280
289
  outline: none;
281
290
  }
282
291
 
@@ -304,16 +313,6 @@ o.styles = [h, f, v`
304
313
  gap: var(--cg-spacing-12);
305
314
  }
306
315
 
307
- .modal-footer:empty,
308
- .modal-footer ::slotted(:empty) {
309
- display: none;
310
- }
311
-
312
- /* Hidden state for footer slot check */
313
- .footer-wrapper {
314
- display: contents;
315
- }
316
-
317
316
  /* Rounded variants */
318
317
  :host([rounded="none"]) .modal { border-radius: 0; }
319
318
  :host([rounded="sm"]) .modal { border-radius: var(--cg-border-radius-100); }
@@ -367,43 +366,43 @@ o.styles = [h, f, v`
367
366
  font-size: var(--cg-font-size-md);
368
367
  }
369
368
  `];
370
- a([
371
- t({ type: Boolean, reflect: !0 })
372
- ], o.prototype, "open", 2);
373
- a([
374
- t({ type: String })
375
- ], o.prototype, "title", 2);
376
- a([
377
- t({ type: String })
378
- ], o.prototype, "icon", 2);
379
- a([
380
- t({ type: String, reflect: !0 })
381
- ], o.prototype, "size", 2);
382
- a([
383
- t({ reflect: !0 })
384
- ], o.prototype, "rounded", 2);
385
- a([
386
- t({ type: Boolean })
387
- ], o.prototype, "closable", 2);
388
- a([
389
- t({ type: Boolean })
390
- ], o.prototype, "persistent", 2);
391
- a([
392
- t({ type: Boolean, reflect: !0 })
393
- ], o.prototype, "loading", 2);
394
- a([
395
- t({ type: String })
396
- ], o.prototype, "error", 2);
397
- a([
369
+ e([
370
+ r({ type: Boolean, reflect: !0 })
371
+ ], a.prototype, "open", 2);
372
+ e([
373
+ r({ type: String })
374
+ ], a.prototype, "title", 2);
375
+ e([
376
+ r({ type: String })
377
+ ], a.prototype, "icon", 2);
378
+ e([
379
+ r({ type: String, reflect: !0 })
380
+ ], a.prototype, "size", 2);
381
+ e([
382
+ r({ reflect: !0 })
383
+ ], a.prototype, "rounded", 2);
384
+ e([
385
+ r({ type: Boolean })
386
+ ], a.prototype, "closable", 2);
387
+ e([
388
+ r({ type: Boolean })
389
+ ], a.prototype, "persistent", 2);
390
+ e([
391
+ r({ type: Boolean, reflect: !0 })
392
+ ], a.prototype, "loading", 2);
393
+ e([
394
+ r({ type: String })
395
+ ], a.prototype, "error", 2);
396
+ e([
398
397
  p()
399
- ], o.prototype, "_hasFooter", 2);
400
- a([
398
+ ], a.prototype, "_hasFooter", 2);
399
+ e([
401
400
  p()
402
- ], o.prototype, "_closing", 2);
403
- o = a([
404
- m("cg-modal")
405
- ], o);
401
+ ], a.prototype, "_closing", 2);
402
+ a = e([
403
+ h("cg-modal")
404
+ ], a);
406
405
  export {
407
- o as CgModal
406
+ a as CgModal
408
407
  };
409
408
  //# sourceMappingURL=cg-modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cg-modal.js","sources":["../../../src/components/cg-modal/cg-modal.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { spinKeyframes, reducedMotion } from '../../styles/index.js';\nimport { FocusTrap } from '../../utils/focus-trap.js';\n\n/**\n * @element cg-modal\n * Modal dialog with backdrop blur, scale animation, focus trap, and scroll lock.\n *\n * @example\n * ```html\n * <cg-modal title=\"Confirm\" open size=\"sm\">\n * <p>Are you sure?</p>\n * <div slot=\"footer\"><cg-button>OK</cg-button></div>\n * </cg-modal>\n * ```\n *\n * @slot - Default slot for modal body content\n * @slot icon - Icon displayed above the title\n * @slot footer - Action buttons area below the body\n *\n * @fires {CustomEvent} cg-modal-open - When the modal opens\n * @fires {CustomEvent} cg-modal-close - When the modal closes\n *\n * @cssprop --cg-color-modal-container-background - Modal background\n * @cssprop --cg-component-modal-radius - Modal border radius\n * @cssprop --cg-transition-easing-ease-out - Open animation easing\n * @cssprop --cg-color-focus-ring - Close button focus ring\n */\n@customElement('cg-modal')\nexport class CgModal extends LitElement {\n static override styles = [spinKeyframes, reducedMotion, css`\n :host {\n transition: color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n display: contents;\n font-family: var(--cg-font-family-primary);\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)) saturate(150%);\n -webkit-backdrop-filter: blur(var(--cg-blur-backdrop)) saturate(150%);\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n\n :host([open]) .backdrop {\n opacity: 1;\n pointer-events: auto;\n }\n\n .modal-container {\n position: fixed;\n inset: 0;\n z-index: var(--cg-z-index-top);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--cg-spacing-16);\n pointer-events: none;\n }\n\n :host([open]) .modal-container {\n pointer-events: auto;\n }\n\n .modal {\n position: relative;\n isolation: isolate;\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - var(--cg-spacing-48) * 2);\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-modal-radius);\n box-shadow: var(--cg-elevation-4);\n overflow: hidden;\n\n /* Animation */\n opacity: 0;\n transform: scale(0.95);\n transition:\n opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-slow) var(--cg-transition-easing-ease-out);\n }\n\n :host([open]) .modal {\n opacity: 1;\n transform: scale(1);\n }\n\n /* ── Closing animation ── */\n @keyframes modal-exit {\n from { opacity: 1; transform: scale(1); }\n to { opacity: 0; transform: scale(0.95); }\n }\n @keyframes backdrop-exit {\n from { opacity: 1; }\n to { opacity: 0; }\n }\n .modal.closing {\n animation: modal-exit var(--cg-transition-duration-fast) var(--cg-transition-easing-ease-in) forwards;\n }\n .backdrop.closing {\n pointer-events: auto;\n animation: backdrop-exit var(--cg-transition-duration-fast) var(--cg-transition-easing-ease-in) forwards;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .backdrop,\n .modal {\n transition: opacity var(--cg-transition-duration-fast) ease;\n }\n .modal {\n transform: scale(1) !important;\n }\n }\n\n /* ── Sizes ── */\n :host([size=\"sm\"]) .modal { width: var(--cg-component-modal-width-sm); max-width: 100%; }\n :host([size=\"md\"]) .modal { width: var(--cg-component-modal-width-md); max-width: 100%; }\n :host([size=\"lg\"]) .modal { width: var(--cg-component-modal-width-lg); max-width: 100%; }\n :host([size=\"xl\"]) .modal { width: var(--cg-component-modal-width-xl); max-width: 100%; }\n\n /* ── Header ── */\n .modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: var(--cg-spacing-24) var(--cg-spacing-24) var(--cg-spacing-4);\n flex-shrink: 0;\n }\n\n .modal-header-content {\n display: flex;\n flex-direction: column;\n gap: var(--cg-spacing-12);\n flex: 1;\n min-width: 0;\n }\n\n .modal-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--cg-spacing-40);\n height: var(--cg-spacing-40);\n border-radius: var(--cg-border-radius-100);\n background: var(--cg-color-action-tertiary-background-hover);\n color: var(--cg-color-accent-text);\n font-size: var(--cg-icon-size-200);\n }\n\n .modal-title {\n font-size: var(--cg-font-size-md);\n font-weight: var(--cg-font-weight-semibold);\n color: var(--cg-color-modal-header-text);\n margin: 0;\n line-height: var(--cg-line-height-snug);\n }\n\n /* When no icon — align title with close button */\n .modal-header-content:not(:has(.modal-icon)) .modal-title {\n padding-top: var(--cg-spacing-4);\n }\n\n .close-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--cg-spacing-32);\n height: var(--cg-spacing-32);\n border: none;\n border-radius: var(--cg-border-radius-full);\n background: var(--cg-color-action-tertiary-background-hover);\n color: var(--cg-color-surface-container-outlined);\n cursor: pointer;\n font-size: var(--cg-font-size-sm);\n line-height: 1;\n padding: 0;\n flex-shrink: 0;\n transition:\n background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n\n .close-btn:hover {\n background: var(--cg-color-action-secondary-background-hover);\n color: var(--cg-color-surface-container-text);\n }\n\n .close-btn:active {\n transform: scale(var(--cg-interaction-press-scale));\n }\n\n .close-btn:focus-visible {\n box-shadow:\n 0 0 0 2px var(--cg-color-focus-ring-offset),\n 0 0 0 calc(2px + 2px) var(--cg-color-focus-ring);\n outline: none;\n }\n\n /* ── Body ── */\n .modal-body {\n position: relative;\n padding: var(--cg-spacing-16) var(--cg-spacing-24) var(--cg-spacing-24);\n overflow-y: auto;\n flex: 1;\n color: var(--cg-color-surface-container-outlined);\n font-size: var(--cg-font-size-sm);\n line-height: var(--cg-line-height-relaxed);\n }\n\n /* ── Footer ── */\n .modal-footer {\n padding: var(--cg-spacing-12) var(--cg-spacing-24) var(--cg-spacing-24);\n flex-shrink: 0;\n }\n\n .modal-footer ::slotted(*) {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--cg-spacing-12);\n }\n\n .modal-footer:empty,\n .modal-footer ::slotted(:empty) {\n display: none;\n }\n\n /* Hidden state for footer slot check */\n .footer-wrapper {\n display: contents;\n }\n\n /* Rounded variants */\n :host([rounded=\"none\"]) .modal { border-radius: 0; }\n :host([rounded=\"sm\"]) .modal { border-radius: var(--cg-border-radius-100); }\n :host([rounded=\"md\"]) .modal { border-radius: var(--cg-border-radius-150); }\n :host([rounded=\"lg\"]) .modal { border-radius: var(--cg-component-modal-radius); }\n :host([rounded=\"full\"]) .modal { border-radius: var(--cg-border-radius-full); }\n\n /* ── Loading overlay ── */\n .modal-loading-overlay {\n position: absolute;\n inset: 0;\n z-index: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--cg-spacing-12);\n background: var(--cg-color-modal-container-background);\n border-radius: inherit;\n }\n .modal-spinner {\n width: var(--cg-spacing-24);\n height: var(--cg-spacing-24);\n border: var(--cg-border-width-100) solid var(--cg-color-surface-base-border);\n border-top-color: var(--cg-color-surface-container-text);\n border-radius: var(--cg-border-radius-full);\n animation: spin var(--cg-transition-duration-slow) linear infinite;\n }\n .modal-loading-text {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-container-outlined);\n }\n\n /* ── Error banner ── */\n .modal-error-banner {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n margin: 0 var(--cg-spacing-24);\n margin-top: var(--cg-spacing-16);\n background: var(--cg-color-status-error-background-default);\n border: var(--cg-border-width-50) solid var(--cg-color-status-error-border-default);\n border-radius: var(--cg-border-radius-100);\n color: var(--cg-color-status-error-text-default);\n font-size: var(--cg-font-size-sm);\n line-height: var(--cg-line-height-snug);\n }\n .modal-error-icon {\n flex-shrink: 0;\n font-size: var(--cg-font-size-md);\n }\n `];\n\n @property({ type: Boolean, reflect: true }) open = false;\n @property({ type: String }) override title = '';\n @property({ type: String }) icon = '';\n @property({ type: String, reflect: true }) size: 'sm' | 'md' | 'lg' | 'xl' = 'md';\n @property({ reflect: true }) rounded: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'lg';\n @property({ type: Boolean }) closable = true;\n @property({ type: Boolean }) persistent = false;\n @property({ type: Boolean, reflect: true }) loading = false;\n @property({ type: String }) error = '';\n\n @state() private _hasFooter = false;\n @state() private _closing = false;\n\n private _previousOverflow = '';\n private _focusTrap = new FocusTrap();\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n // Always restore body scroll if destroyed while open\n if (this.open) {\n document.body.style.overflow = this._previousOverflow || '';\n }\n this._focusTrap.deactivate();\n }\n\n override updated(changed: Map<string, unknown>) {\n if (changed.has('open')) {\n if (this.open) {\n this._onOpen();\n } else {\n if (changed.get('open') === true) {\n this._closing = true;\n setTimeout(() => { this._closing = false; }, 150);\n }\n this._onClose();\n }\n }\n }\n\n private _onOpen() {\n this._previousOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n\n this.dispatchEvent(new CustomEvent('cg-modal-open', { bubbles: true, composed: true }));\n\n const container = this.shadowRoot?.querySelector<HTMLElement>('.modal-container');\n if (container) {\n this._focusTrap.activate(container, {\n returnFocus: true,\n handleEscape: this.closable,\n onEscape: () => this._requestClose(),\n });\n }\n }\n\n private _onClose() {\n document.body.style.overflow = this._previousOverflow;\n this._focusTrap.deactivate();\n this.dispatchEvent(new CustomEvent('cg-modal-close', { bubbles: true, composed: true }));\n }\n\n private _handleBackdropClick() {\n if (!this.persistent && this.closable) {\n this._requestClose();\n }\n }\n\n private _requestClose() {\n this.open = false;\n }\n\n private _handleFooterSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this._hasFooter = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n override render() {\n return html`\n <div\n class=\"backdrop ${this._closing ? 'closing' : ''}\"\n @click=\"${this._handleBackdropClick}\"\n aria-hidden=\"true\"\n ></div>\n <div class=\"modal-container\">\n <div\n class=\"modal ${this._closing ? 'closing' : ''}\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"${this.title ? nothing : 'Dialog'}\"\n aria-labelledby=\"${this.title ? 'modal-title' : nothing}\"\n tabindex=\"-1\"\n >\n ${this.title || this.closable || this.icon ? html`\n <div class=\"modal-header\">\n <div class=\"modal-header-content\">\n ${this.icon ? html`\n <div class=\"modal-icon\">\n <slot name=\"icon\"><cg-icon name=\"${this.icon}\" size=\"md\"></cg-icon></slot>\n </div>\n ` : nothing}\n <h2 class=\"modal-title\" id=\"modal-title\">${this.title}</h2>\n </div>\n ${this.closable ? html`\n <button\n class=\"close-btn\"\n aria-label=\"Close dialog\"\n @click=\"${this._requestClose}\"\n >\n <cg-icon name=\"x\" size=\"xs\"></cg-icon>\n </button>\n ` : nothing}\n </div>\n ` : nothing}\n\n ${this.error ? html`\n <div class=\"modal-error-banner\" role=\"alert\">\n <cg-icon class=\"modal-error-icon\" name=\"warning\" size=\"sm\" color=\"danger\"></cg-icon>\n <span>${this.error}</span>\n </div>\n ` : nothing}\n\n <div class=\"modal-body\">\n <slot></slot>\n ${this.loading ? html`\n <div class=\"modal-loading-overlay\" aria-busy=\"true\" aria-label=\"Loading\">\n <span class=\"modal-spinner\"></span>\n <span class=\"modal-loading-text\">Loading...</span>\n </div>\n ` : nothing}\n </div>\n\n <div class=\"modal-footer\" ?hidden=${!this._hasFooter}>\n <slot name=\"footer\" @slotchange=\"${this._handleFooterSlotChange}\"></slot>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-modal': CgModal;\n }\n}\n"],"names":["CgModal","LitElement","FocusTrap","changed","container","slot","html","nothing","spinKeyframes","reducedMotion","css","__decorateClass","property","state","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"cg-modal.js","sources":["../../../src/components/cg-modal/cg-modal.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { spinKeyframes, reducedMotion } from '../../styles/index.js';\nimport { FocusTrap } from '../../utils/focus-trap.js';\n\n/**\n * @element cg-modal\n * Modal dialog with backdrop blur, scale animation, focus trap, and scroll lock.\n *\n * @example\n * ```html\n * <cg-modal title=\"Confirm\" open size=\"sm\">\n * <p>Are you sure?</p>\n * <div slot=\"footer\"><cg-button>OK</cg-button></div>\n * </cg-modal>\n * ```\n *\n * @slot - Default slot for modal body content\n * @slot icon - Icon displayed above the title\n * @slot footer - Action buttons area below the body\n *\n * @fires {CustomEvent} cg-modal-open - When the modal opens\n * @fires {CustomEvent} cg-modal-close - When the modal closes\n *\n * @cssprop --cg-color-modal-container-background - Modal background\n * @cssprop --cg-component-modal-radius - Modal border radius\n * @cssprop --cg-transition-easing-ease-out - Open animation easing\n * @cssprop --cg-color-focus-ring - Close button focus ring\n */\n@customElement('cg-modal')\nexport class CgModal extends LitElement {\n static override styles = [spinKeyframes, reducedMotion, css`\n :host {\n display: contents;\n font-family: var(--cg-font-family-primary);\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)) saturate(150%);\n -webkit-backdrop-filter: blur(var(--cg-blur-backdrop)) saturate(150%);\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n\n :host([open]) .backdrop {\n opacity: 1;\n pointer-events: auto;\n }\n\n .modal-container {\n position: fixed;\n inset: 0;\n z-index: var(--cg-z-index-top);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--cg-spacing-16);\n pointer-events: none;\n }\n\n :host([open]) .modal-container {\n pointer-events: auto;\n }\n\n .modal {\n position: relative;\n isolation: isolate;\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - var(--cg-spacing-48) * 2);\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-modal-radius);\n box-shadow: var(--cg-elevation-4);\n overflow: hidden;\n\n /* Animation */\n opacity: 0;\n transform: scale(0.95);\n transition:\n opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-slow) var(--cg-transition-easing-ease-out);\n }\n\n :host([open]) .modal {\n opacity: 1;\n transform: scale(1);\n }\n\n /* ── Closing animation ── */\n @keyframes modal-exit {\n from { opacity: 1; transform: scale(1); }\n to { opacity: 0; transform: scale(0.95); }\n }\n @keyframes backdrop-exit {\n from { opacity: 1; }\n to { opacity: 0; }\n }\n .modal.closing {\n animation: modal-exit var(--cg-transition-duration-fast) var(--cg-transition-easing-ease-in) forwards;\n }\n .backdrop.closing {\n pointer-events: auto;\n animation: backdrop-exit var(--cg-transition-duration-fast) var(--cg-transition-easing-ease-in) forwards;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .backdrop,\n .modal {\n transition: opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .modal {\n transform: scale(1) !important;\n }\n }\n\n /* ── Sizes ── */\n :host([size=\"sm\"]) .modal { width: var(--cg-component-modal-width-sm); max-width: 100%; }\n :host([size=\"md\"]) .modal { width: var(--cg-component-modal-width-md); max-width: 100%; }\n :host([size=\"lg\"]) .modal { width: var(--cg-component-modal-width-lg); max-width: 100%; }\n :host([size=\"xl\"]) .modal { width: var(--cg-component-modal-width-xl); max-width: 100%; }\n\n /* ── Header ── */\n .modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: var(--cg-spacing-24) var(--cg-spacing-24) var(--cg-spacing-4);\n flex-shrink: 0;\n }\n\n .modal-header-content {\n display: flex;\n flex-direction: column;\n gap: var(--cg-spacing-12);\n flex: 1;\n min-width: 0;\n }\n\n .modal-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--cg-spacing-40);\n height: var(--cg-spacing-40);\n border-radius: var(--cg-border-radius-100);\n background: var(--cg-color-accent-background);\n color: var(--cg-color-accent-text);\n font-size: var(--cg-icon-size-200);\n }\n\n .modal-title {\n font-size: var(--cg-font-size-md);\n font-weight: var(--cg-font-weight-semibold);\n color: var(--cg-color-modal-header-text);\n margin: 0;\n line-height: var(--cg-line-height-snug);\n }\n\n /* When no icon — align title with close button */\n .modal-header-content:not(:has(.modal-icon)) .modal-title {\n padding-top: var(--cg-spacing-4);\n }\n\n .close-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--cg-spacing-32);\n height: var(--cg-spacing-32);\n border: none;\n border-radius: var(--cg-border-radius-full);\n background: var(--cg-color-action-tertiary-background-default);\n color: var(--cg-color-surface-container-outlined);\n cursor: pointer;\n font-size: var(--cg-font-size-sm);\n line-height: 1;\n padding: 0;\n flex-shrink: 0;\n transition:\n background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n\n .close-btn:hover {\n background: var(--cg-color-action-tertiary-background-hover);\n color: var(--cg-color-surface-container-text);\n }\n\n .close-btn:active {\n background: var(--cg-color-action-tertiary-background-active);\n transform: scale(var(--cg-interaction-press-scale));\n }\n\n .close-btn:focus-visible {\n box-shadow:\n 0 0 0 var(--cg-focus-ring-offset) var(--cg-color-focus-ring-offset),\n 0 0 0 calc(var(--cg-focus-ring-offset) + var(--cg-focus-ring-width)) var(--cg-color-focus-ring);\n outline: none;\n }\n\n /* ── Body ── */\n .modal-body {\n position: relative;\n padding: var(--cg-spacing-16) var(--cg-spacing-24) var(--cg-spacing-24);\n overflow-y: auto;\n flex: 1;\n color: var(--cg-color-surface-container-outlined);\n font-size: var(--cg-font-size-sm);\n line-height: var(--cg-line-height-relaxed);\n }\n\n /* ── Footer ── */\n .modal-footer {\n padding: var(--cg-spacing-12) var(--cg-spacing-24) var(--cg-spacing-24);\n flex-shrink: 0;\n }\n\n .modal-footer ::slotted(*) {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--cg-spacing-12);\n }\n\n /* Rounded variants */\n :host([rounded=\"none\"]) .modal { border-radius: 0; }\n :host([rounded=\"sm\"]) .modal { border-radius: var(--cg-border-radius-100); }\n :host([rounded=\"md\"]) .modal { border-radius: var(--cg-border-radius-150); }\n :host([rounded=\"lg\"]) .modal { border-radius: var(--cg-component-modal-radius); }\n :host([rounded=\"full\"]) .modal { border-radius: var(--cg-border-radius-full); }\n\n /* ── Loading overlay ── */\n .modal-loading-overlay {\n position: absolute;\n inset: 0;\n z-index: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--cg-spacing-12);\n background: var(--cg-color-modal-container-background);\n border-radius: inherit;\n }\n .modal-spinner {\n width: var(--cg-spacing-24);\n height: var(--cg-spacing-24);\n border: var(--cg-border-width-100) solid var(--cg-color-surface-base-border);\n border-top-color: var(--cg-color-surface-container-text);\n border-radius: var(--cg-border-radius-full);\n animation: spin var(--cg-transition-duration-slow) linear infinite;\n }\n .modal-loading-text {\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-container-outlined);\n }\n\n /* ── Error banner ── */\n .modal-error-banner {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n margin: 0 var(--cg-spacing-24);\n margin-top: var(--cg-spacing-16);\n background: var(--cg-color-status-error-background-default);\n border: var(--cg-border-width-50) solid var(--cg-color-status-error-border-default);\n border-radius: var(--cg-border-radius-100);\n color: var(--cg-color-status-error-text-default);\n font-size: var(--cg-font-size-sm);\n line-height: var(--cg-line-height-snug);\n }\n .modal-error-icon {\n flex-shrink: 0;\n font-size: var(--cg-font-size-md);\n }\n `];\n\n @property({ type: Boolean, reflect: true }) open = false;\n @property({ type: String }) override title = '';\n @property({ type: String }) icon = '';\n @property({ type: String, reflect: true }) size: 'sm' | 'md' | 'lg' | 'xl' = 'md';\n @property({ reflect: true }) rounded: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'lg';\n @property({ type: Boolean }) closable = true;\n @property({ type: Boolean }) persistent = false;\n @property({ type: Boolean, reflect: true }) loading = false;\n @property({ type: String }) error = '';\n\n @state() private _hasFooter = false;\n @state() private _closing = false;\n\n private _previousOverflow = '';\n private _focusTrap = new FocusTrap();\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n // Always restore body scroll if destroyed while open\n if (this.open) {\n document.body.style.overflow = this._previousOverflow || '';\n }\n this._focusTrap.deactivate();\n }\n\n override updated(changed: Map<string, unknown>) {\n if (changed.has('open')) {\n // First render with open=false is NOT a close — don't fire a spurious\n // cg-modal-close or clobber document.body.style.overflow on mount.\n if (changed.get('open') === undefined && !this.open) return;\n if (this.open) {\n this._onOpen();\n } else {\n if (changed.get('open') === true) {\n this._closing = true;\n // Clear when the exit animation actually ends; the timeout stays\n // only as a reduced-motion / detached-node fallback.\n const modal = this.shadowRoot?.querySelector('.modal');\n modal?.addEventListener('animationend', () => { this._closing = false; }, { once: true });\n setTimeout(() => { this._closing = false; }, 300);\n }\n this._onClose();\n }\n }\n }\n\n private _onOpen() {\n this._previousOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n\n this.dispatchEvent(new CustomEvent('cg-modal-open', { bubbles: true, composed: true }));\n\n const container = this.shadowRoot?.querySelector<HTMLElement>('.modal-container');\n if (container) {\n this._focusTrap.activate(container, {\n returnFocus: true,\n handleEscape: this.closable,\n onEscape: () => this._requestClose(),\n });\n }\n }\n\n private _onClose() {\n document.body.style.overflow = this._previousOverflow;\n this._focusTrap.deactivate();\n this.dispatchEvent(new CustomEvent('cg-modal-close', { bubbles: true, composed: true }));\n }\n\n private _handleBackdropClick() {\n if (!this.persistent && this.closable) {\n this._requestClose();\n }\n }\n\n /** The container covers the backdrop (higher z-index), so outside-clicks\n * land here — only dismiss when the click is on the container itself. */\n private _handleContainerClick(e: MouseEvent) {\n if (e.target === e.currentTarget) this._handleBackdropClick();\n }\n\n private _requestClose() {\n this.open = false;\n }\n\n private _handleFooterSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this._hasFooter = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n override render() {\n return html`\n <div\n class=\"backdrop ${this._closing ? 'closing' : ''}\"\n aria-hidden=\"true\"\n ></div>\n <div class=\"modal-container\" @click=\"${this._handleContainerClick}\">\n <div\n class=\"modal ${this._closing ? 'closing' : ''}\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"${this.title ? nothing : 'Dialog'}\"\n aria-labelledby=\"${this.title ? 'modal-title' : nothing}\"\n tabindex=\"-1\"\n >\n ${this.title || this.closable || this.icon ? html`\n <div class=\"modal-header\">\n <div class=\"modal-header-content\">\n ${this.icon ? html`\n <div class=\"modal-icon\">\n <slot name=\"icon\"><cg-icon name=\"${this.icon}\" size=\"md\"></cg-icon></slot>\n </div>\n ` : nothing}\n ${this.title ? html`<h2 class=\"modal-title\" id=\"modal-title\">${this.title}</h2>` : nothing}\n </div>\n ${this.closable ? html`\n <button\n class=\"close-btn\"\n aria-label=\"Close dialog\"\n @click=\"${this._requestClose}\"\n >\n <cg-icon name=\"x\" size=\"xs\"></cg-icon>\n </button>\n ` : nothing}\n </div>\n ` : nothing}\n\n ${this.error ? html`\n <div class=\"modal-error-banner\" role=\"alert\">\n <cg-icon class=\"modal-error-icon\" name=\"warning\" size=\"sm\" color=\"danger\"></cg-icon>\n <span>${this.error}</span>\n </div>\n ` : nothing}\n\n <div class=\"modal-body\" aria-busy=\"${this.loading ? 'true' : nothing}\">\n <slot></slot>\n ${this.loading ? html`\n <div class=\"modal-loading-overlay\" role=\"status\" aria-live=\"polite\">\n <span class=\"modal-spinner\"></span>\n <span class=\"modal-loading-text\">Loading...</span>\n </div>\n ` : nothing}\n </div>\n\n <div class=\"modal-footer\" ?hidden=${!this._hasFooter}>\n <slot name=\"footer\" @slotchange=\"${this._handleFooterSlotChange}\"></slot>\n </div>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-modal': CgModal;\n }\n}\n"],"names":["CgModal","LitElement","FocusTrap","changed","container","e","slot","html","nothing","spinKeyframes","reducedMotion","css","__decorateClass","property","state","customElement"],"mappings":"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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA4PvD;AAE2CC,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GA/P/Bb,EA+PiC,WAAA,QAAA,CAAA;AACPY,EAAA;AAAA,EAApCC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAhQfb,EAgQ0B,WAAA,SAAA,CAAA;AACTY,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAjQfb,EAiQiB,WAAA,QAAA,CAAA;AACeY,EAAA;AAAA,EAA1CC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAlQ9Bb,EAkQgC,WAAA,QAAA,CAAA;AACdY,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAnQhBb,EAmQkB,WAAA,WAAA,CAAA;AACAY,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,QAAA,CAAS;AAAA,GApQhBb,EAoQkB,WAAA,YAAA,CAAA;AACAY,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,QAAA,CAAS;AAAA,GArQhBb,EAqQkB,WAAA,cAAA,CAAA;AACeY,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAtQ/Bb,EAsQiC,WAAA,WAAA,CAAA;AAChBY,EAAA;AAAA,EAA3BC,EAAS,EAAE,MAAM,OAAA,CAAQ;AAAA,GAvQfb,EAuQiB,WAAA,SAAA,CAAA;AAEXY,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAzQId,EAyQM,WAAA,cAAA,CAAA;AACAY,EAAA;AAAA,EAAhBE,EAAA;AAAM,GA1QId,EA0QM,WAAA,YAAA,CAAA;AA1QNA,IAANY,EAAA;AAAA,EADNG,EAAc,UAAU;AAAA,GACZf,CAAA;"}
@@ -42,7 +42,7 @@ export interface NavItem {
42
42
  * ```
43
43
  *
44
44
  * @slot brand - Brand area (leftmost). Logo + name.
45
- * @slot center - Optional center content (search, breadcrumbs). Hidden below mobileBreakpoint.
45
+ * @slot center - Optional center content (search, breadcrumbs). Hidden below 768px.
46
46
  * @slot end - Right region for actions, profile, theme toggle.
47
47
  * @slot mobile-menu - Optional override for the mobile panel content.
48
48
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cg-navbar.d.ts","sourceRoot":"","sources":["../../../src/components/cg-navbar/cg-navbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1E,MAAM,WAAW,OAAO;IACtB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,OAAgB,MAAM,4BAkSnB;IAIwB,KAAK,EAAE,OAAO,EAAE,CAAM;IACrC,MAAM,SAAM;IACK,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,CAAW;IACnC,MAAM,UAAS;IACf,QAAQ,UAAS;IACe,eAAe,UAAS;IAC9B,UAAU,UAAS;IAC7E,SAAS,SAAM;IAIlB,OAAO,CAAC,SAAS,CAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,CAAc;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAc;IAC1C,OAAO,CAAC,MAAM,CAAC,CAAc;IAE3C,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,SAAS,CAOf;IACF,OAAO,CAAC,WAAW,CAGjB;IACF,OAAO,CAAC,UAAU,CAIhB;IAIO,iBAAiB,IAAI,IAAI;IAWzB,oBAAoB,IAAI,IAAI;IAS5B,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAMtC,YAAY,IAAI,IAAI;IAM7B,eAAe,IAAI,IAAI;IAUvB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,WAAW;IA0BV,MAAM;CAsChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"cg-navbar.d.ts","sourceRoot":"","sources":["../../../src/components/cg-navbar/cg-navbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1E,MAAM,WAAW,OAAO;IACtB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,OAAgB,MAAM,4BA6SnB;IAIwB,KAAK,EAAE,OAAO,EAAE,CAAM;IACrC,MAAM,SAAM;IACK,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,CAAW;IACnC,MAAM,UAAS;IACf,QAAQ,UAAS;IACe,eAAe,UAAS;IAC9B,UAAU,UAAS;IAC7E,SAAS,SAAM;IAIlB,OAAO,CAAC,SAAS,CAAS;IAElB,OAAO,CAAC,QAAQ,CAAC,CAAc;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAc;IAC1C,OAAO,CAAC,MAAM,CAAC,CAAc;IAE3C,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,SAAS,CAOf;IACF,OAAO,CAAC,WAAW,CAGjB;IACF,OAAO,CAAC,UAAU,CAQhB;IAIO,iBAAiB,IAAI,IAAI;IAWzB,oBAAoB,IAAI,IAAI;IAS5B,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAMtC,YAAY,IAAI,IAAI;IAM7B,eAAe,IAAI,IAAI;IAUvB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,cAAc;IA8BtB,OAAO,CAAC,WAAW;IA0BV,MAAM;CAsChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -1,12 +1,12 @@
1
- import { css as u, LitElement as p, nothing as g, html as l } from "lit";
2
- import { property as d, state as b, query as v, customElement as f } from "lit/decorators.js";
3
- import { h, r as m } from "../../chunks/premium.css-9I4kHrsl.js";
1
+ import { css as u, LitElement as b, nothing as d, html as l } from "lit";
2
+ import { property as g, state as p, query as v, customElement as f } from "lit/decorators.js";
3
+ import { h, r as m } from "../../chunks/premium.css-DHekUEUt.js";
4
4
  var y = Object.defineProperty, w = Object.getOwnPropertyDescriptor, n = (e, a, t, s) => {
5
- for (var r = s > 1 ? void 0 : s ? w(a, t) : a, i = e.length - 1, c; i >= 0; i--)
6
- (c = e[i]) && (r = (s ? c(a, t, r) : c(r)) || r);
5
+ for (var r = s > 1 ? void 0 : s ? w(a, t) : a, o = e.length - 1, c; o >= 0; o--)
6
+ (c = e[o]) && (r = (s ? c(a, t, r) : c(r)) || r);
7
7
  return s && r && y(a, t, r), r;
8
8
  };
9
- let o = class extends p {
9
+ let i = class extends b {
10
10
  constructor() {
11
11
  super(...arguments), this.items = [], this.active = "", this.variant = "solid", this.sticky = !1, this.bordered = !1, this.compactOnScroll = !1, this.mobileOpen = !1, this.brandHref = "", this._scrolled = !1, this._resizeObserver = null, this._onScroll = () => {
12
12
  if (!this.compactOnScroll) return;
@@ -15,7 +15,7 @@ let o = class extends p {
15
15
  }, this._onDocClick = (e) => {
16
16
  this.mobileOpen && (e.composedPath().includes(this) || this.closeMobileMenu());
17
17
  }, this._onKeydown = (e) => {
18
- e.key === "Escape" && this.mobileOpen && this.closeMobileMenu();
18
+ e.key === "Escape" && this.mobileOpen && (this.closeMobileMenu(), this.updateComplete.then(() => this.renderRoot.querySelector(".menu-btn")?.focus()));
19
19
  };
20
20
  }
21
21
  // ─── Lifecycle ──────────────────────────────────────────────────
@@ -70,36 +70,34 @@ let o = class extends p {
70
70
  }));
71
71
  }
72
72
  _onItemKeydown(e, a) {
73
- const t = this.items.map((i, c) => ({ it: i, i: c })).filter(({ it: i }) => !i.disabled), s = t.findIndex(({ i }) => i === a);
73
+ const t = this.items.map((o, c) => ({ it: o, i: c })).filter(({ it: o }) => !o.disabled), s = t.findIndex(({ i: o }) => o === a);
74
74
  let r = s;
75
75
  if (e.key === "ArrowLeft" || e.key === "ArrowUp" ? (e.preventDefault(), r = (s - 1 + t.length) % t.length) : e.key === "ArrowRight" || e.key === "ArrowDown" ? (e.preventDefault(), r = (s + 1) % t.length) : e.key === "Home" ? (e.preventDefault(), r = 0) : e.key === "End" && (e.preventDefault(), r = t.length - 1), r !== s) {
76
- const i = t[r];
77
- i && (this._selectItem(i.it, e), this.updateComplete.then(() => {
78
- this._itemsEl?.querySelectorAll(".item")?.[i.i]?.focus();
79
- }));
76
+ const o = t[r];
77
+ o && this._itemsEl?.querySelectorAll(".item")?.[o.i]?.focus();
80
78
  }
81
79
  }
82
80
  // ─── Render helpers ─────────────────────────────────────────────
83
81
  _renderItem(e, a, t = !1) {
84
- const s = e.value === this.active, r = t ? "mobile-item" : "item", i = t ? `--idx:${a};animation-delay:calc(${a} * 50ms);` : "";
82
+ const s = e.value === this.active, r = t ? "mobile-item" : "item", o = t ? `animation-delay:calc(${a} * var(--cg-transition-duration-fast) / 2);` : "";
85
83
  return l`
86
84
  <a
87
85
  class=${r}
88
86
  href=${e.href}
89
- target=${e.external ? "_blank" : g}
90
- rel=${e.external ? "noopener noreferrer" : g}
91
- role=${t ? "menuitem" : "tab"}
87
+ target=${e.external ? "_blank" : d}
88
+ rel=${e.external ? "noopener noreferrer" : d}
89
+ role=${t ? d : "tab"}
92
90
  aria-selected=${s ? "true" : "false"}
93
91
  aria-disabled=${e.disabled ? "true" : "false"}
94
92
  tabindex=${s || t ? "0" : "-1"}
95
- style=${i}
93
+ style=${o}
96
94
  @click=${(c) => this._selectItem(e, c)}
97
95
  @keydown=${(c) => !t && this._onItemKeydown(c, a)}
98
96
  >
99
- ${e.icon ? l`<span class="item-icon" aria-hidden="true" .innerHTML=${e.icon}></span>` : g}
97
+ ${e.icon ? l`<span class="item-icon" aria-hidden="true" .innerHTML=${e.icon}></span>` : d}
100
98
  <span>${e.label}</span>
101
- ${e.badge ? l`<span class="item-badge">${e.badge}</span>` : g}
102
- ${e.kbd ? l`<span class="item-kbd">${e.kbd}</span>` : g}
99
+ ${e.badge ? l`<span class="item-badge">${e.badge}</span>` : d}
100
+ ${e.kbd ? l`<span class="item-kbd">${e.kbd}</span>` : d}
103
101
  </a>
104
102
  `;
105
103
  }
@@ -113,7 +111,7 @@ let o = class extends p {
113
111
  <span class="indicator" data-ready="false"></span>
114
112
  ${this.items.map((a, t) => this._renderItem(a, t, !1))}
115
113
  </div>
116
- ` : g}
114
+ ` : d}
117
115
  <div class="center"><slot name="center"></slot></div>
118
116
  <div class="end">
119
117
  <slot name="end"></slot>
@@ -128,16 +126,16 @@ let o = class extends p {
128
126
  ${this.mobileOpen ? l`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M18 6L6 18M6 6l12 12"/></svg>` : l`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M3 12h18M3 6h18M3 18h18"/></svg>`}
129
127
  </button>
130
128
  </div>
131
- <div id="cg-navbar-mobile-panel" class="mobile-panel" role="menu">
129
+ <div id="cg-navbar-mobile-panel" class="mobile-panel">
132
130
  <slot name="mobile-menu">
133
- ${e ? this.items.map((a, t) => this._renderItem(a, t, !0)) : g}
131
+ ${e ? this.items.map((a, t) => this._renderItem(a, t, !0)) : d}
134
132
  </slot>
135
133
  </div>
136
134
  </nav>
137
135
  `;
138
136
  }
139
137
  };
140
- o.styles = [h, m, u`
138
+ i.styles = [h, m, u`
141
139
  :host {
142
140
  display: block;
143
141
  width: 100%;
@@ -179,8 +177,8 @@ o.styles = [h, m, u`
179
177
  /* Variant: glass — translucent + blur */
180
178
  :host([variant="glass"]) nav {
181
179
  background: color-mix(in srgb, var(--cg-color-surface-base-background) 72%, transparent);
182
- backdrop-filter: saturate(180%) blur(20px);
183
- -webkit-backdrop-filter: saturate(180%) blur(20px);
180
+ backdrop-filter: saturate(180%) blur(var(--cg-blur-backdrop));
181
+ -webkit-backdrop-filter: saturate(180%) blur(var(--cg-blur-backdrop));
184
182
  border-bottom: var(--cg-border-width-50) solid var(--cg-color-action-secondary-border-default);
185
183
  }
186
184
 
@@ -190,8 +188,8 @@ o.styles = [h, m, u`
190
188
  height: calc(var(--cg-component-navbar-height) - 2 * var(--cg-component-navbar-floating-margin));
191
189
  padding: 0 var(--cg-spacing-20);
192
190
  background: color-mix(in srgb, var(--cg-color-surface-base-background) 80%, transparent);
193
- backdrop-filter: saturate(180%) blur(20px);
194
- -webkit-backdrop-filter: saturate(180%) blur(20px);
191
+ backdrop-filter: saturate(180%) blur(var(--cg-blur-backdrop));
192
+ -webkit-backdrop-filter: saturate(180%) blur(var(--cg-blur-backdrop));
195
193
  border: var(--cg-border-width-50) solid var(--cg-color-action-secondary-border-default);
196
194
  border-radius: var(--cg-border-radius-full);
197
195
  box-shadow: var(--cg-shadow-elevation-lg);
@@ -207,7 +205,7 @@ o.styles = [h, m, u`
207
205
  gap: var(--cg-spacing-8);
208
206
  font-size: var(--cg-font-size-base);
209
207
  font-weight: var(--cg-font-weight-semibold);
210
- letter-spacing: -0.01em;
208
+ letter-spacing: var(--cg-letter-spacing-tight);
211
209
  flex-shrink: 0;
212
210
  color: var(--cg-color-surface-base-text);
213
211
  text-decoration: none;
@@ -319,7 +317,7 @@ o.styles = [h, m, u`
319
317
  border-radius: var(--cg-border-radius-full);
320
318
  font-size: var(--cg-font-size-xs);
321
319
  font-weight: var(--cg-font-weight-semibold);
322
- letter-spacing: 0.02em;
320
+ letter-spacing: var(--cg-letter-spacing-wide);
323
321
  }
324
322
 
325
323
  .item-kbd {
@@ -400,10 +398,21 @@ o.styles = [h, m, u`
400
398
  font-weight: var(--cg-font-weight-medium);
401
399
  text-decoration: none;
402
400
  border-radius: var(--cg-border-radius-100);
403
- transition: background var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
401
+ transition:
402
+ background var(--cg-transition-duration-fast) var(--cg-transition-easing-default),
403
+ transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
404
404
  animation: itemIn var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out) backwards;
405
405
  }
406
406
  .mobile-item:hover { background: var(--cg-color-action-tertiary-background-hover); }
407
+ .mobile-item:focus-visible {
408
+ outline: none;
409
+ box-shadow:
410
+ 0 0 0 var(--cg-focus-ring-offset) var(--cg-color-focus-ring-offset),
411
+ 0 0 0 calc(var(--cg-focus-ring-offset) + var(--cg-focus-ring-width)) var(--cg-color-focus-ring);
412
+ }
413
+ .mobile-item:active:not([aria-disabled="true"]) {
414
+ transform: scale(var(--cg-interaction-press-scale));
415
+ }
407
416
  .mobile-item[aria-selected="true"] {
408
417
  background: var(--cg-color-surface-container-background);
409
418
  box-shadow: var(--cg-shadow-elevation-sm);
@@ -429,45 +438,45 @@ o.styles = [h, m, u`
429
438
  }
430
439
  `];
431
440
  n([
432
- d({ type: Array })
433
- ], o.prototype, "items", 2);
441
+ g({ type: Array })
442
+ ], i.prototype, "items", 2);
434
443
  n([
435
- d()
436
- ], o.prototype, "active", 2);
444
+ g()
445
+ ], i.prototype, "active", 2);
437
446
  n([
438
- d({ reflect: !0 })
439
- ], o.prototype, "variant", 2);
447
+ g({ reflect: !0 })
448
+ ], i.prototype, "variant", 2);
440
449
  n([
441
- d({ type: Boolean, reflect: !0 })
442
- ], o.prototype, "sticky", 2);
450
+ g({ type: Boolean, reflect: !0 })
451
+ ], i.prototype, "sticky", 2);
443
452
  n([
444
- d({ type: Boolean, reflect: !0 })
445
- ], o.prototype, "bordered", 2);
453
+ g({ type: Boolean, reflect: !0 })
454
+ ], i.prototype, "bordered", 2);
446
455
  n([
447
- d({ type: Boolean, reflect: !0, attribute: "compact-on-scroll" })
448
- ], o.prototype, "compactOnScroll", 2);
456
+ g({ type: Boolean, reflect: !0, attribute: "compact-on-scroll" })
457
+ ], i.prototype, "compactOnScroll", 2);
449
458
  n([
450
- d({ type: Boolean, reflect: !0, attribute: "mobile-open" })
451
- ], o.prototype, "mobileOpen", 2);
459
+ g({ type: Boolean, reflect: !0, attribute: "mobile-open" })
460
+ ], i.prototype, "mobileOpen", 2);
452
461
  n([
453
- d()
454
- ], o.prototype, "brandHref", 2);
462
+ g()
463
+ ], i.prototype, "brandHref", 2);
455
464
  n([
456
- b()
457
- ], o.prototype, "_scrolled", 2);
465
+ p()
466
+ ], i.prototype, "_scrolled", 2);
458
467
  n([
459
468
  v(".items")
460
- ], o.prototype, "_itemsEl", 2);
469
+ ], i.prototype, "_itemsEl", 2);
461
470
  n([
462
471
  v(".indicator")
463
- ], o.prototype, "_indicatorEl", 2);
472
+ ], i.prototype, "_indicatorEl", 2);
464
473
  n([
465
474
  v("nav")
466
- ], o.prototype, "_navEl", 2);
467
- o = n([
475
+ ], i.prototype, "_navEl", 2);
476
+ i = n([
468
477
  f("cg-navbar")
469
- ], o);
478
+ ], i);
470
479
  export {
471
- o as CgNavbar
480
+ i as CgNavbar
472
481
  };
473
482
  //# sourceMappingURL=cg-navbar.js.map