@cognivo/components 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) hide show
  1. package/dist/chunks/focus-trap-vlQwKK-3.js +82 -0
  2. package/dist/chunks/focus-trap-vlQwKK-3.js.map +1 -0
  3. package/dist/chunks/{premium.css-9I4kHrsl.js → premium.css-DHekUEUt.js} +25 -25
  4. package/dist/chunks/{premium.css-9I4kHrsl.js.map → premium.css-DHekUEUt.js.map} +1 -1
  5. package/dist/cognivo.min.js +3375 -5270
  6. package/dist/cognivo.min.js.map +1 -1
  7. package/dist/components/ai-ab-test/ai-ab-test.js +1 -1
  8. package/dist/components/ai-accessibility-report/ai-accessibility-report.d.ts.map +1 -1
  9. package/dist/components/ai-accessibility-report/ai-accessibility-report.js +14 -13
  10. package/dist/components/ai-accessibility-report/ai-accessibility-report.js.map +1 -1
  11. package/dist/components/ai-action-preview/ai-action-preview.d.ts.map +1 -1
  12. package/dist/components/ai-action-preview/ai-action-preview.js +15 -14
  13. package/dist/components/ai-action-preview/ai-action-preview.js.map +1 -1
  14. package/dist/components/ai-agent-card/ai-agent-card.js +1 -1
  15. package/dist/components/ai-agent-steps/ai-agent-steps.d.ts +8 -21
  16. package/dist/components/ai-agent-steps/ai-agent-steps.d.ts.map +1 -1
  17. package/dist/components/ai-agent-steps/ai-agent-steps.js +85 -139
  18. package/dist/components/ai-agent-steps/ai-agent-steps.js.map +1 -1
  19. package/dist/components/ai-alert-card/ai-alert-card.js +5 -5
  20. package/dist/components/ai-alert-card/ai-alert-card.js.map +1 -1
  21. package/dist/components/ai-analytics-chart/ai-analytics-chart.d.ts +0 -13
  22. package/dist/components/ai-analytics-chart/ai-analytics-chart.d.ts.map +1 -1
  23. package/dist/components/ai-analytics-chart/ai-analytics-chart.js +75 -125
  24. package/dist/components/ai-analytics-chart/ai-analytics-chart.js.map +1 -1
  25. package/dist/components/ai-annotation/ai-annotation.js +2 -2
  26. package/dist/components/ai-annotation/ai-annotation.js.map +1 -1
  27. package/dist/components/ai-api-key-manager/ai-api-key-manager.d.ts +0 -9
  28. package/dist/components/ai-api-key-manager/ai-api-key-manager.d.ts.map +1 -1
  29. package/dist/components/ai-api-key-manager/ai-api-key-manager.js +115 -276
  30. package/dist/components/ai-api-key-manager/ai-api-key-manager.js.map +1 -1
  31. package/dist/components/ai-app-sidebar/ai-app-sidebar.js +13 -13
  32. package/dist/components/ai-app-sidebar/ai-app-sidebar.js.map +1 -1
  33. package/dist/components/ai-assistant-widget/ai-assistant-widget.d.ts.map +1 -1
  34. package/dist/components/ai-assistant-widget/ai-assistant-widget.js +5 -2
  35. package/dist/components/ai-assistant-widget/ai-assistant-widget.js.map +1 -1
  36. package/dist/components/ai-audio-player/ai-audio-player.d.ts.map +1 -1
  37. package/dist/components/ai-audio-player/ai-audio-player.js +23 -19
  38. package/dist/components/ai-audio-player/ai-audio-player.js.map +1 -1
  39. package/dist/components/ai-avatar/ai-avatar.js +1 -1
  40. package/dist/components/ai-badge/ai-badge.js +1 -1
  41. package/dist/components/ai-batch-progress/ai-batch-progress.js +6 -6
  42. package/dist/components/ai-batch-progress/ai-batch-progress.js.map +1 -1
  43. package/dist/components/ai-cache-indicator/ai-cache-indicator.d.ts +0 -13
  44. package/dist/components/ai-cache-indicator/ai-cache-indicator.d.ts.map +1 -1
  45. package/dist/components/ai-cache-indicator/ai-cache-indicator.js +90 -185
  46. package/dist/components/ai-cache-indicator/ai-cache-indicator.js.map +1 -1
  47. package/dist/components/ai-capture-flow/ai-capture-flow.js +21 -21
  48. package/dist/components/ai-capture-flow/ai-capture-flow.js.map +1 -1
  49. package/dist/components/ai-changelog/ai-changelog.js +26 -26
  50. package/dist/components/ai-changelog/ai-changelog.js.map +1 -1
  51. package/dist/components/ai-chart-summary/ai-chart-summary.d.ts +0 -6
  52. package/dist/components/ai-chart-summary/ai-chart-summary.d.ts.map +1 -1
  53. package/dist/components/ai-chart-summary/ai-chart-summary.js +100 -103
  54. package/dist/components/ai-chart-summary/ai-chart-summary.js.map +1 -1
  55. package/dist/components/ai-chat/ai-chat.d.ts.map +1 -1
  56. package/dist/components/ai-chat/ai-chat.js +9 -3
  57. package/dist/components/ai-chat/ai-chat.js.map +1 -1
  58. package/dist/components/ai-citation/ai-citation.d.ts +0 -6
  59. package/dist/components/ai-citation/ai-citation.d.ts.map +1 -1
  60. package/dist/components/ai-citation/ai-citation.js +64 -90
  61. package/dist/components/ai-citation/ai-citation.js.map +1 -1
  62. package/dist/components/ai-collaborative-editor/ai-collaborative-editor.d.ts +1 -27
  63. package/dist/components/ai-collaborative-editor/ai-collaborative-editor.d.ts.map +1 -1
  64. package/dist/components/ai-collaborative-editor/ai-collaborative-editor.js +114 -260
  65. package/dist/components/ai-collaborative-editor/ai-collaborative-editor.js.map +1 -1
  66. package/dist/components/ai-command-palette/ai-command-palette.js +1 -1
  67. package/dist/components/ai-confidence-badge/ai-confidence-badge.d.ts +11 -9
  68. package/dist/components/ai-confidence-badge/ai-confidence-badge.d.ts.map +1 -1
  69. package/dist/components/ai-confidence-badge/ai-confidence-badge.js +183 -101
  70. package/dist/components/ai-confidence-badge/ai-confidence-badge.js.map +1 -1
  71. package/dist/components/ai-confidence-slider/ai-confidence-slider.js +27 -27
  72. package/dist/components/ai-confidence-slider/ai-confidence-slider.js.map +1 -1
  73. package/dist/components/ai-consent-manager/ai-consent-manager.js +2 -2
  74. package/dist/components/ai-consent-manager/ai-consent-manager.js.map +1 -1
  75. package/dist/components/ai-context-window/ai-context-window.js +19 -19
  76. package/dist/components/ai-context-window/ai-context-window.js.map +1 -1
  77. package/dist/components/ai-copy-button/ai-copy-button.js +4 -4
  78. package/dist/components/ai-copy-button/ai-copy-button.js.map +1 -1
  79. package/dist/components/ai-cost-dashboard/ai-cost-dashboard.js +14 -14
  80. package/dist/components/ai-cost-dashboard/ai-cost-dashboard.js.map +1 -1
  81. package/dist/components/ai-data-card/ai-data-card.js +2 -2
  82. package/dist/components/ai-data-card/ai-data-card.js.map +1 -1
  83. package/dist/components/ai-data-lineage/ai-data-lineage.js +6 -6
  84. package/dist/components/ai-data-lineage/ai-data-lineage.js.map +1 -1
  85. package/dist/components/ai-data-preview/ai-data-preview.d.ts +0 -7
  86. package/dist/components/ai-data-preview/ai-data-preview.d.ts.map +1 -1
  87. package/dist/components/ai-data-preview/ai-data-preview.js +130 -267
  88. package/dist/components/ai-data-preview/ai-data-preview.js.map +1 -1
  89. package/dist/components/ai-data-table/ai-data-table.js +9 -9
  90. package/dist/components/ai-data-table/ai-data-table.js.map +1 -1
  91. package/dist/components/ai-debug-console/ai-debug-console.d.ts +1 -13
  92. package/dist/components/ai-debug-console/ai-debug-console.d.ts.map +1 -1
  93. package/dist/components/ai-debug-console/ai-debug-console.js +134 -340
  94. package/dist/components/ai-debug-console/ai-debug-console.js.map +1 -1
  95. package/dist/components/ai-detection-canvas/ai-detection-canvas.js +2 -2
  96. package/dist/components/ai-detection-canvas/ai-detection-canvas.js.map +1 -1
  97. package/dist/components/ai-diff-panel/ai-diff-panel.js +1 -1
  98. package/dist/components/ai-embedding-viz/ai-embedding-viz.js +4 -4
  99. package/dist/components/ai-embedding-viz/ai-embedding-viz.js.map +1 -1
  100. package/dist/components/ai-empty-state/ai-empty-state.js +1 -1
  101. package/dist/components/ai-error-boundary/ai-error-boundary.d.ts.map +1 -1
  102. package/dist/components/ai-error-boundary/ai-error-boundary.js +26 -21
  103. package/dist/components/ai-error-boundary/ai-error-boundary.js.map +1 -1
  104. package/dist/components/ai-eval-scorecard/ai-eval-scorecard.js +5 -5
  105. package/dist/components/ai-eval-scorecard/ai-eval-scorecard.js.map +1 -1
  106. package/dist/components/ai-feature-flag/ai-feature-flag.d.ts +0 -14
  107. package/dist/components/ai-feature-flag/ai-feature-flag.d.ts.map +1 -1
  108. package/dist/components/ai-feature-flag/ai-feature-flag.js +181 -322
  109. package/dist/components/ai-feature-flag/ai-feature-flag.js.map +1 -1
  110. package/dist/components/ai-feedback/ai-feedback.d.ts.map +1 -1
  111. package/dist/components/ai-feedback/ai-feedback.js +10 -5
  112. package/dist/components/ai-feedback/ai-feedback.js.map +1 -1
  113. package/dist/components/ai-file-upload/ai-file-upload.js +1 -1
  114. package/dist/components/ai-form-generator/ai-form-generator.js +1 -1
  115. package/dist/components/ai-guardrail/ai-guardrail.js +2 -2
  116. package/dist/components/ai-guardrail/ai-guardrail.js.map +1 -1
  117. package/dist/components/ai-heatmap/ai-heatmap.js +1 -1
  118. package/dist/components/ai-insight-card/ai-insight-card.js +4 -4
  119. package/dist/components/ai-insight-card/ai-insight-card.js.map +1 -1
  120. package/dist/components/ai-json-viewer/ai-json-viewer.js +13 -13
  121. package/dist/components/ai-json-viewer/ai-json-viewer.js.map +1 -1
  122. package/dist/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.js +24 -24
  123. package/dist/components/ai-keyboard-shortcuts/ai-keyboard-shortcuts.js.map +1 -1
  124. package/dist/components/ai-kpi-grid/ai-kpi-grid.js +2 -2
  125. package/dist/components/ai-kpi-grid/ai-kpi-grid.js.map +1 -1
  126. package/dist/components/ai-labeling-board/ai-labeling-board.js +11 -11
  127. package/dist/components/ai-labeling-board/ai-labeling-board.js.map +1 -1
  128. package/dist/components/ai-memory-panel/ai-memory-panel.js +7 -7
  129. package/dist/components/ai-memory-panel/ai-memory-panel.js.map +1 -1
  130. package/dist/components/ai-model-comparison/ai-model-comparison.js +2 -2
  131. package/dist/components/ai-model-comparison/ai-model-comparison.js.map +1 -1
  132. package/dist/components/ai-model-selector/ai-model-selector.js +7 -7
  133. package/dist/components/ai-model-selector/ai-model-selector.js.map +1 -1
  134. package/dist/components/ai-notification-center/ai-notification-center.js +27 -27
  135. package/dist/components/ai-notification-center/ai-notification-center.js.map +1 -1
  136. package/dist/components/ai-onboarding/ai-onboarding.js +5 -5
  137. package/dist/components/ai-onboarding/ai-onboarding.js.map +1 -1
  138. package/dist/components/ai-permission-gate/ai-permission-gate.js +1 -1
  139. package/dist/components/ai-personalization-dash/ai-personalization-dash.js +1 -1
  140. package/dist/components/ai-presence/ai-presence.js +25 -25
  141. package/dist/components/ai-presence/ai-presence.js.map +1 -1
  142. package/dist/components/ai-progress-steps/ai-progress-steps.js +11 -11
  143. package/dist/components/ai-progress-steps/ai-progress-steps.js.map +1 -1
  144. package/dist/components/ai-prompt-editor/ai-prompt-editor.js +1 -1
  145. package/dist/components/ai-prompt-template/ai-prompt-template.js +29 -29
  146. package/dist/components/ai-prompt-template/ai-prompt-template.js.map +1 -1
  147. package/dist/components/ai-rag-panel/ai-rag-panel.js +4 -4
  148. package/dist/components/ai-rag-panel/ai-rag-panel.js.map +1 -1
  149. package/dist/components/ai-reasoning-tree/ai-reasoning-tree.js +16 -16
  150. package/dist/components/ai-reasoning-tree/ai-reasoning-tree.js.map +1 -1
  151. package/dist/components/ai-result-panel/ai-result-panel.js +1 -1
  152. package/dist/components/ai-reveal-animation/ai-reveal-animation.js +3 -3
  153. package/dist/components/ai-reveal-animation/ai-reveal-animation.js.map +1 -1
  154. package/dist/components/ai-reward-signal/ai-reward-signal.js +1 -1
  155. package/dist/components/ai-rich-message/ai-rich-message.d.ts.map +1 -1
  156. package/dist/components/ai-rich-message/ai-rich-message.js +37 -30
  157. package/dist/components/ai-rich-message/ai-rich-message.js.map +1 -1
  158. package/dist/components/ai-scenario-panel/ai-scenario-panel.js +10 -10
  159. package/dist/components/ai-scenario-panel/ai-scenario-panel.js.map +1 -1
  160. package/dist/components/ai-search/ai-search.js +1 -1
  161. package/dist/components/ai-segmentation-viewer/ai-segmentation-viewer.js +3 -3
  162. package/dist/components/ai-segmentation-viewer/ai-segmentation-viewer.js.map +1 -1
  163. package/dist/components/ai-sidebar/ai-sidebar.js +1 -1
  164. package/dist/components/ai-similarity-card/ai-similarity-card.js +1 -1
  165. package/dist/components/ai-source-graph/ai-source-graph.js +2 -2
  166. package/dist/components/ai-source-graph/ai-source-graph.js.map +1 -1
  167. package/dist/components/ai-status-page/ai-status-page.js +15 -15
  168. package/dist/components/ai-status-page/ai-status-page.js.map +1 -1
  169. package/dist/components/ai-streaming-text/ai-streaming-text.js +1 -1
  170. package/dist/components/ai-test-runner/ai-test-runner.d.ts +0 -8
  171. package/dist/components/ai-test-runner/ai-test-runner.d.ts.map +1 -1
  172. package/dist/components/ai-test-runner/ai-test-runner.js +100 -257
  173. package/dist/components/ai-test-runner/ai-test-runner.js.map +1 -1
  174. package/dist/components/ai-thinking/ai-thinking.js +1 -1
  175. package/dist/components/ai-timeline/ai-timeline.js +2 -2
  176. package/dist/components/ai-timeline/ai-timeline.js.map +1 -1
  177. package/dist/components/ai-token-tracker/ai-token-tracker.js +3 -3
  178. package/dist/components/ai-token-tracker/ai-token-tracker.js.map +1 -1
  179. package/dist/components/ai-tool-card-resolver/ai-tool-card-resolver.js +23 -23
  180. package/dist/components/ai-tool-card-resolver/ai-tool-card-resolver.js.map +1 -1
  181. package/dist/components/ai-tool-indicator/ai-tool-indicator.js +3 -3
  182. package/dist/components/ai-tool-indicator/ai-tool-indicator.js.map +1 -1
  183. package/dist/components/ai-transform-slider/ai-transform-slider.js +1 -1
  184. package/dist/components/ai-translation-panel/ai-translation-panel.js +2 -2
  185. package/dist/components/ai-translation-panel/ai-translation-panel.js.map +1 -1
  186. package/dist/components/ai-usage-meter/ai-usage-meter.js +1 -1
  187. package/dist/components/ai-validation-checklist/ai-validation-checklist.d.ts +1 -11
  188. package/dist/components/ai-validation-checklist/ai-validation-checklist.d.ts.map +1 -1
  189. package/dist/components/ai-validation-checklist/ai-validation-checklist.js +133 -187
  190. package/dist/components/ai-validation-checklist/ai-validation-checklist.js.map +1 -1
  191. package/dist/components/ai-version-selector/ai-version-selector.d.ts +0 -4
  192. package/dist/components/ai-version-selector/ai-version-selector.d.ts.map +1 -1
  193. package/dist/components/ai-version-selector/ai-version-selector.js +189 -210
  194. package/dist/components/ai-version-selector/ai-version-selector.js.map +1 -1
  195. package/dist/components/ai-voice-panel/ai-voice-panel.js +28 -28
  196. package/dist/components/ai-voice-panel/ai-voice-panel.js.map +1 -1
  197. package/dist/components/ai-webhook-config/ai-webhook-config.d.ts +0 -17
  198. package/dist/components/ai-webhook-config/ai-webhook-config.d.ts.map +1 -1
  199. package/dist/components/ai-webhook-config/ai-webhook-config.js +281 -221
  200. package/dist/components/ai-webhook-config/ai-webhook-config.js.map +1 -1
  201. package/dist/components/ai-workflow-builder/ai-workflow-builder.js +2 -2
  202. package/dist/components/ai-workflow-builder/ai-workflow-builder.js.map +1 -1
  203. package/dist/components/bias-anchoring/bias-anchoring.js +1 -1
  204. package/dist/components/bias-authority/bias-authority.js +1 -1
  205. package/dist/components/bias-commitment/bias-commitment.js +1 -1
  206. package/dist/components/bias-reciprocity/bias-reciprocity.js +1 -1
  207. package/dist/components/bias-scarcity/bias-scarcity.js +1 -1
  208. package/dist/components/bias-social-proof/bias-social-proof.js +1 -1
  209. package/dist/components/cg-accordion/cg-accordion.d.ts.map +1 -1
  210. package/dist/components/cg-accordion/cg-accordion.js +51 -43
  211. package/dist/components/cg-accordion/cg-accordion.js.map +1 -1
  212. package/dist/components/cg-alert-dialog/cg-alert-dialog.js +18 -18
  213. package/dist/components/cg-alert-dialog/cg-alert-dialog.js.map +1 -1
  214. package/dist/components/cg-aspect-ratio/cg-aspect-ratio.d.ts.map +1 -1
  215. package/dist/components/cg-aspect-ratio/cg-aspect-ratio.js +25 -21
  216. package/dist/components/cg-aspect-ratio/cg-aspect-ratio.js.map +1 -1
  217. package/dist/components/cg-autocomplete/cg-autocomplete.d.ts +1 -0
  218. package/dist/components/cg-autocomplete/cg-autocomplete.d.ts.map +1 -1
  219. package/dist/components/cg-autocomplete/cg-autocomplete.js +59 -43
  220. package/dist/components/cg-autocomplete/cg-autocomplete.js.map +1 -1
  221. package/dist/components/cg-avatar/cg-avatar.d.ts.map +1 -1
  222. package/dist/components/cg-avatar/cg-avatar.js +24 -24
  223. package/dist/components/cg-avatar/cg-avatar.js.map +1 -1
  224. package/dist/components/cg-avatar-group/cg-avatar-group.d.ts.map +1 -1
  225. package/dist/components/cg-avatar-group/cg-avatar-group.js +18 -12
  226. package/dist/components/cg-avatar-group/cg-avatar-group.js.map +1 -1
  227. package/dist/components/cg-badge/cg-badge.d.ts.map +1 -1
  228. package/dist/components/cg-badge/cg-badge.js +26 -20
  229. package/dist/components/cg-badge/cg-badge.js.map +1 -1
  230. package/dist/components/cg-badge-group/cg-badge-group.d.ts +0 -1
  231. package/dist/components/cg-badge-group/cg-badge-group.d.ts.map +1 -1
  232. package/dist/components/cg-badge-group/cg-badge-group.js +31 -29
  233. package/dist/components/cg-badge-group/cg-badge-group.js.map +1 -1
  234. package/dist/components/cg-breadcrumbs/cg-breadcrumbs.js +21 -21
  235. package/dist/components/cg-breadcrumbs/cg-breadcrumbs.js.map +1 -1
  236. package/dist/components/cg-button/cg-button.d.ts +5 -71
  237. package/dist/components/cg-button/cg-button.d.ts.map +1 -1
  238. package/dist/components/cg-button/cg-button.js +63 -172
  239. package/dist/components/cg-button/cg-button.js.map +1 -1
  240. package/dist/components/cg-button-group/cg-button-group.d.ts +2 -0
  241. package/dist/components/cg-button-group/cg-button-group.d.ts.map +1 -1
  242. package/dist/components/cg-button-group/cg-button-group.js +43 -29
  243. package/dist/components/cg-button-group/cg-button-group.js.map +1 -1
  244. package/dist/components/cg-calendar/cg-calendar.d.ts +4 -0
  245. package/dist/components/cg-calendar/cg-calendar.d.ts.map +1 -1
  246. package/dist/components/cg-calendar/cg-calendar.js +28 -12
  247. package/dist/components/cg-calendar/cg-calendar.js.map +1 -1
  248. package/dist/components/cg-callout/cg-callout.d.ts.map +1 -1
  249. package/dist/components/cg-callout/cg-callout.js +49 -48
  250. package/dist/components/cg-callout/cg-callout.js.map +1 -1
  251. package/dist/components/cg-card/cg-card.d.ts +9 -22
  252. package/dist/components/cg-card/cg-card.d.ts.map +1 -1
  253. package/dist/components/cg-card/cg-card.js +28 -56
  254. package/dist/components/cg-card/cg-card.js.map +1 -1
  255. package/dist/components/cg-carousel/cg-carousel.d.ts.map +1 -1
  256. package/dist/components/cg-carousel/cg-carousel.js +19 -13
  257. package/dist/components/cg-carousel/cg-carousel.js.map +1 -1
  258. package/dist/components/cg-chart/cg-chart.d.ts.map +1 -1
  259. package/dist/components/cg-chart/cg-chart.js +63 -58
  260. package/dist/components/cg-chart/cg-chart.js.map +1 -1
  261. package/dist/components/cg-checkbox/cg-checkbox.d.ts +0 -6
  262. package/dist/components/cg-checkbox/cg-checkbox.d.ts.map +1 -1
  263. package/dist/components/cg-checkbox/cg-checkbox.js +51 -51
  264. package/dist/components/cg-checkbox/cg-checkbox.js.map +1 -1
  265. package/dist/components/cg-chip/cg-chip.js +31 -31
  266. package/dist/components/cg-chip/cg-chip.js.map +1 -1
  267. package/dist/components/cg-code-block/cg-code-block.d.ts.map +1 -1
  268. package/dist/components/cg-code-block/cg-code-block.js +36 -34
  269. package/dist/components/cg-code-block/cg-code-block.js.map +1 -1
  270. package/dist/components/cg-collapsible/cg-collapsible.d.ts.map +1 -1
  271. package/dist/components/cg-collapsible/cg-collapsible.js +23 -18
  272. package/dist/components/cg-collapsible/cg-collapsible.js.map +1 -1
  273. package/dist/components/cg-color-picker/cg-color-picker.d.ts +3 -0
  274. package/dist/components/cg-color-picker/cg-color-picker.d.ts.map +1 -1
  275. package/dist/components/cg-color-picker/cg-color-picker.js +189 -91
  276. package/dist/components/cg-color-picker/cg-color-picker.js.map +1 -1
  277. package/dist/components/cg-combobox/cg-combobox.d.ts.map +1 -1
  278. package/dist/components/cg-combobox/cg-combobox.js +13 -6
  279. package/dist/components/cg-combobox/cg-combobox.js.map +1 -1
  280. package/dist/components/cg-command/cg-command.d.ts.map +1 -1
  281. package/dist/components/cg-command/cg-command.js +52 -45
  282. package/dist/components/cg-command/cg-command.js.map +1 -1
  283. package/dist/components/cg-context-menu/cg-context-menu.js +1 -1
  284. package/dist/components/cg-date-picker/cg-date-picker.d.ts.map +1 -1
  285. package/dist/components/cg-date-picker/cg-date-picker.js +36 -34
  286. package/dist/components/cg-date-picker/cg-date-picker.js.map +1 -1
  287. package/dist/components/cg-date-range-picker/cg-date-range-picker.d.ts +2 -0
  288. package/dist/components/cg-date-range-picker/cg-date-range-picker.d.ts.map +1 -1
  289. package/dist/components/cg-date-range-picker/cg-date-range-picker.js +12 -8
  290. package/dist/components/cg-date-range-picker/cg-date-range-picker.js.map +1 -1
  291. package/dist/components/cg-date-time-picker/cg-date-time-picker.d.ts.map +1 -1
  292. package/dist/components/cg-date-time-picker/cg-date-time-picker.js +3 -1
  293. package/dist/components/cg-date-time-picker/cg-date-time-picker.js.map +1 -1
  294. package/dist/components/cg-drawer/cg-drawer.js +3 -3
  295. package/dist/components/cg-drawer/cg-drawer.js.map +1 -1
  296. package/dist/components/cg-dropdown/cg-dropdown.d.ts.map +1 -1
  297. package/dist/components/cg-dropdown/cg-dropdown.js +1 -2
  298. package/dist/components/cg-dropdown/cg-dropdown.js.map +1 -1
  299. package/dist/components/cg-empty-state/cg-empty-state.d.ts +3 -24
  300. package/dist/components/cg-empty-state/cg-empty-state.d.ts.map +1 -1
  301. package/dist/components/cg-empty-state/cg-empty-state.js +51 -74
  302. package/dist/components/cg-empty-state/cg-empty-state.js.map +1 -1
  303. package/dist/components/cg-file-input/cg-file-input.d.ts.map +1 -1
  304. package/dist/components/cg-file-input/cg-file-input.js +9 -10
  305. package/dist/components/cg-file-input/cg-file-input.js.map +1 -1
  306. package/dist/components/cg-focus-scope/cg-focus-scope.js +1 -1
  307. package/dist/components/cg-follow-up/cg-follow-up.d.ts.map +1 -1
  308. package/dist/components/cg-follow-up/cg-follow-up.js +6 -7
  309. package/dist/components/cg-follow-up/cg-follow-up.js.map +1 -1
  310. package/dist/components/cg-form/cg-form.js +17 -17
  311. package/dist/components/cg-form/cg-form.js.map +1 -1
  312. package/dist/components/cg-hover-card/cg-hover-card.d.ts +1 -0
  313. package/dist/components/cg-hover-card/cg-hover-card.d.ts.map +1 -1
  314. package/dist/components/cg-hover-card/cg-hover-card.js +37 -32
  315. package/dist/components/cg-hover-card/cg-hover-card.js.map +1 -1
  316. package/dist/components/cg-icon/cg-icon.d.ts.map +1 -1
  317. package/dist/components/cg-icon/cg-icon.js +44 -37
  318. package/dist/components/cg-icon/cg-icon.js.map +1 -1
  319. package/dist/components/cg-image/cg-image.js +2 -2
  320. package/dist/components/cg-image/cg-image.js.map +1 -1
  321. package/dist/components/cg-image-block/cg-image-block.js +3 -3
  322. package/dist/components/cg-image-block/cg-image-block.js.map +1 -1
  323. package/dist/components/cg-image-gallery/cg-image-gallery.js +20 -20
  324. package/dist/components/cg-image-gallery/cg-image-gallery.js.map +1 -1
  325. package/dist/components/cg-input/cg-input.js +3 -3
  326. package/dist/components/cg-input/cg-input.js.map +1 -1
  327. package/dist/components/cg-kbd/cg-kbd.d.ts.map +1 -1
  328. package/dist/components/cg-kbd/cg-kbd.js +26 -24
  329. package/dist/components/cg-kbd/cg-kbd.js.map +1 -1
  330. package/dist/components/cg-label/cg-label.d.ts +4 -1
  331. package/dist/components/cg-label/cg-label.d.ts.map +1 -1
  332. package/dist/components/cg-label/cg-label.js +44 -41
  333. package/dist/components/cg-label/cg-label.js.map +1 -1
  334. package/dist/components/cg-link/cg-link.js +23 -23
  335. package/dist/components/cg-link/cg-link.js.map +1 -1
  336. package/dist/components/cg-list/cg-list.js +5 -5
  337. package/dist/components/cg-list/cg-list.js.map +1 -1
  338. package/dist/components/cg-listbox/cg-listbox.d.ts.map +1 -1
  339. package/dist/components/cg-listbox/cg-listbox.js +46 -40
  340. package/dist/components/cg-listbox/cg-listbox.js.map +1 -1
  341. package/dist/components/cg-markdown/cg-markdown.d.ts +2 -0
  342. package/dist/components/cg-markdown/cg-markdown.d.ts.map +1 -1
  343. package/dist/components/cg-markdown/cg-markdown.js +171 -121
  344. package/dist/components/cg-markdown/cg-markdown.js.map +1 -1
  345. package/dist/components/cg-menubar/cg-menubar.d.ts +6 -0
  346. package/dist/components/cg-menubar/cg-menubar.d.ts.map +1 -1
  347. package/dist/components/cg-menubar/cg-menubar.js +59 -47
  348. package/dist/components/cg-menubar/cg-menubar.js.map +1 -1
  349. package/dist/components/cg-meter/cg-meter.d.ts.map +1 -1
  350. package/dist/components/cg-meter/cg-meter.js +76 -76
  351. package/dist/components/cg-meter/cg-meter.js.map +1 -1
  352. package/dist/components/cg-metric-card/cg-metric-card.d.ts.map +1 -1
  353. package/dist/components/cg-metric-card/cg-metric-card.js +65 -68
  354. package/dist/components/cg-metric-card/cg-metric-card.js.map +1 -1
  355. package/dist/components/cg-modal/cg-modal.d.ts +3 -0
  356. package/dist/components/cg-modal/cg-modal.d.ts.map +1 -1
  357. package/dist/components/cg-modal/cg-modal.js +82 -83
  358. package/dist/components/cg-modal/cg-modal.js.map +1 -1
  359. package/dist/components/cg-navbar/cg-navbar.d.ts +1 -1
  360. package/dist/components/cg-navbar/cg-navbar.d.ts.map +1 -1
  361. package/dist/components/cg-navbar/cg-navbar.js +64 -55
  362. package/dist/components/cg-navbar/cg-navbar.js.map +1 -1
  363. package/dist/components/cg-navigation-menu/cg-navigation-menu.d.ts +3 -0
  364. package/dist/components/cg-navigation-menu/cg-navigation-menu.d.ts.map +1 -1
  365. package/dist/components/cg-navigation-menu/cg-navigation-menu.js +38 -26
  366. package/dist/components/cg-navigation-menu/cg-navigation-menu.js.map +1 -1
  367. package/dist/components/cg-number-input/cg-number-input.d.ts +1 -0
  368. package/dist/components/cg-number-input/cg-number-input.d.ts.map +1 -1
  369. package/dist/components/cg-number-input/cg-number-input.js +90 -77
  370. package/dist/components/cg-number-input/cg-number-input.js.map +1 -1
  371. package/dist/components/cg-otp-input/cg-otp-input.d.ts.map +1 -1
  372. package/dist/components/cg-otp-input/cg-otp-input.js +70 -60
  373. package/dist/components/cg-otp-input/cg-otp-input.js.map +1 -1
  374. package/dist/components/cg-pagination/cg-pagination.d.ts +2 -0
  375. package/dist/components/cg-pagination/cg-pagination.d.ts.map +1 -1
  376. package/dist/components/cg-pagination/cg-pagination.js +50 -49
  377. package/dist/components/cg-pagination/cg-pagination.js.map +1 -1
  378. package/dist/components/cg-password-input/cg-password-input.d.ts.map +1 -1
  379. package/dist/components/cg-password-input/cg-password-input.js +42 -34
  380. package/dist/components/cg-password-input/cg-password-input.js.map +1 -1
  381. package/dist/components/cg-phone-input/cg-phone-input.d.ts.map +1 -1
  382. package/dist/components/cg-phone-input/cg-phone-input.js +18 -14
  383. package/dist/components/cg-phone-input/cg-phone-input.js.map +1 -1
  384. package/dist/components/cg-popover/cg-popover.d.ts +12 -2
  385. package/dist/components/cg-popover/cg-popover.d.ts.map +1 -1
  386. package/dist/components/cg-popover/cg-popover.js +90 -63
  387. package/dist/components/cg-popover/cg-popover.js.map +1 -1
  388. package/dist/components/cg-portal/cg-portal.d.ts.map +1 -1
  389. package/dist/components/cg-portal/cg-portal.js +42 -41
  390. package/dist/components/cg-portal/cg-portal.js.map +1 -1
  391. package/dist/components/cg-progress-bar/cg-progress-bar.d.ts.map +1 -1
  392. package/dist/components/cg-progress-bar/cg-progress-bar.js +25 -25
  393. package/dist/components/cg-progress-bar/cg-progress-bar.js.map +1 -1
  394. package/dist/components/cg-radio/cg-radio.d.ts +10 -0
  395. package/dist/components/cg-radio/cg-radio.d.ts.map +1 -1
  396. package/dist/components/cg-radio/cg-radio.js +59 -48
  397. package/dist/components/cg-radio/cg-radio.js.map +1 -1
  398. package/dist/components/cg-radio-group/cg-radio-group.d.ts +6 -0
  399. package/dist/components/cg-radio-group/cg-radio-group.d.ts.map +1 -1
  400. package/dist/components/cg-radio-group/cg-radio-group.js +50 -37
  401. package/dist/components/cg-radio-group/cg-radio-group.js.map +1 -1
  402. package/dist/components/cg-rating/cg-rating.d.ts.map +1 -1
  403. package/dist/components/cg-rating/cg-rating.js +56 -54
  404. package/dist/components/cg-rating/cg-rating.js.map +1 -1
  405. package/dist/components/cg-resizable/cg-resizable.d.ts +4 -1
  406. package/dist/components/cg-resizable/cg-resizable.d.ts.map +1 -1
  407. package/dist/components/cg-resizable/cg-resizable.js +45 -35
  408. package/dist/components/cg-resizable/cg-resizable.js.map +1 -1
  409. package/dist/components/cg-scroll-area/cg-scroll-area.d.ts +8 -0
  410. package/dist/components/cg-scroll-area/cg-scroll-area.d.ts.map +1 -1
  411. package/dist/components/cg-scroll-area/cg-scroll-area.js +64 -21
  412. package/dist/components/cg-scroll-area/cg-scroll-area.js.map +1 -1
  413. package/dist/components/cg-segmented-control/cg-segmented-control.d.ts +4 -0
  414. package/dist/components/cg-segmented-control/cg-segmented-control.d.ts.map +1 -1
  415. package/dist/components/cg-segmented-control/cg-segmented-control.js +75 -39
  416. package/dist/components/cg-segmented-control/cg-segmented-control.js.map +1 -1
  417. package/dist/components/cg-select/cg-select.d.ts +4 -2
  418. package/dist/components/cg-select/cg-select.d.ts.map +1 -1
  419. package/dist/components/cg-select/cg-select.js +96 -58
  420. package/dist/components/cg-select/cg-select.js.map +1 -1
  421. package/dist/components/cg-separator/cg-separator.d.ts +1 -2
  422. package/dist/components/cg-separator/cg-separator.d.ts.map +1 -1
  423. package/dist/components/cg-separator/cg-separator.js +5 -8
  424. package/dist/components/cg-separator/cg-separator.js.map +1 -1
  425. package/dist/components/cg-sheet/cg-sheet.d.ts +4 -0
  426. package/dist/components/cg-sheet/cg-sheet.d.ts.map +1 -1
  427. package/dist/components/cg-sheet/cg-sheet.js +80 -43
  428. package/dist/components/cg-sheet/cg-sheet.js.map +1 -1
  429. package/dist/components/cg-sidebar/cg-sidebar.d.ts.map +1 -1
  430. package/dist/components/cg-sidebar/cg-sidebar.js +82 -19
  431. package/dist/components/cg-sidebar/cg-sidebar.js.map +1 -1
  432. package/dist/components/cg-skeleton/cg-skeleton.d.ts +7 -1
  433. package/dist/components/cg-skeleton/cg-skeleton.d.ts.map +1 -1
  434. package/dist/components/cg-skeleton/cg-skeleton.js +61 -63
  435. package/dist/components/cg-skeleton/cg-skeleton.js.map +1 -1
  436. package/dist/components/cg-slider/cg-slider.d.ts.map +1 -1
  437. package/dist/components/cg-slider/cg-slider.js +80 -73
  438. package/dist/components/cg-slider/cg-slider.js.map +1 -1
  439. package/dist/components/cg-spinner/cg-spinner.d.ts.map +1 -1
  440. package/dist/components/cg-spinner/cg-spinner.js +10 -19
  441. package/dist/components/cg-spinner/cg-spinner.js.map +1 -1
  442. package/dist/components/cg-split-button/cg-split-button.d.ts.map +1 -1
  443. package/dist/components/cg-split-button/cg-split-button.js +64 -50
  444. package/dist/components/cg-split-button/cg-split-button.js.map +1 -1
  445. package/dist/components/cg-stack/cg-stack.js +1 -1
  446. package/dist/components/cg-steps/cg-steps.js +1 -1
  447. package/dist/components/cg-switch/cg-switch.d.ts +3 -0
  448. package/dist/components/cg-switch/cg-switch.d.ts.map +1 -1
  449. package/dist/components/cg-switch/cg-switch.js +39 -47
  450. package/dist/components/cg-switch/cg-switch.js.map +1 -1
  451. package/dist/components/cg-table/cg-table.d.ts +0 -7
  452. package/dist/components/cg-table/cg-table.d.ts.map +1 -1
  453. package/dist/components/cg-table/cg-table.js +50 -47
  454. package/dist/components/cg-table/cg-table.js.map +1 -1
  455. package/dist/components/cg-tabs/cg-tabs.js +1 -1
  456. package/dist/components/cg-tag-input/cg-tag-input.js +1 -1
  457. package/dist/components/cg-text/cg-text.js +1 -1
  458. package/dist/components/cg-textarea/cg-textarea.js +1 -1
  459. package/dist/components/cg-time-picker/cg-time-picker.js +1 -1
  460. package/dist/components/cg-toaster/cg-toaster.js +3 -3
  461. package/dist/components/cg-toaster/cg-toaster.js.map +1 -1
  462. package/dist/components/cg-toggle/cg-toggle.js +1 -1
  463. package/dist/components/cg-toggle-group/cg-toggle-group.js +1 -1
  464. package/dist/components/cg-tree-view/cg-tree-view.js +1 -1
  465. package/dist/foundation.d.ts +0 -16
  466. package/dist/foundation.d.ts.map +1 -1
  467. package/dist/foundation.js +174 -206
  468. package/dist/foundation.js.map +1 -1
  469. package/dist/index.d.ts +1 -17
  470. package/dist/index.d.ts.map +1 -1
  471. package/dist/index.js +100 -132
  472. package/dist/index.js.map +1 -1
  473. package/dist/utils/focus-trap.d.ts +19 -2
  474. package/dist/utils/focus-trap.d.ts.map +1 -1
  475. package/package.json +6 -810
  476. package/dist/chunks/focus-trap-BdRNhSPD.js +0 -53
  477. package/dist/chunks/focus-trap-BdRNhSPD.js.map +0 -1
  478. package/dist/components/cg-app-shell/cg-app-shell.d.ts +0 -54
  479. package/dist/components/cg-app-shell/cg-app-shell.d.ts.map +0 -1
  480. package/dist/components/cg-app-shell/cg-app-shell.js +0 -135
  481. package/dist/components/cg-app-shell/cg-app-shell.js.map +0 -1
  482. package/dist/components/cg-auth-shell/cg-auth-shell.d.ts +0 -61
  483. package/dist/components/cg-auth-shell/cg-auth-shell.d.ts.map +0 -1
  484. package/dist/components/cg-auth-shell/cg-auth-shell.js +0 -163
  485. package/dist/components/cg-auth-shell/cg-auth-shell.js.map +0 -1
  486. package/dist/components/cg-definition-list/cg-definition-list.d.ts +0 -99
  487. package/dist/components/cg-definition-list/cg-definition-list.d.ts.map +0 -1
  488. package/dist/components/cg-definition-list/cg-definition-list.js +0 -332
  489. package/dist/components/cg-definition-list/cg-definition-list.js.map +0 -1
  490. package/dist/components/cg-draggable/cg-draggable.d.ts +0 -53
  491. package/dist/components/cg-draggable/cg-draggable.d.ts.map +0 -1
  492. package/dist/components/cg-draggable/cg-draggable.js +0 -136
  493. package/dist/components/cg-draggable/cg-draggable.js.map +0 -1
  494. package/dist/components/cg-droppable/cg-droppable.d.ts +0 -57
  495. package/dist/components/cg-droppable/cg-droppable.d.ts.map +0 -1
  496. package/dist/components/cg-droppable/cg-droppable.js +0 -114
  497. package/dist/components/cg-droppable/cg-droppable.js.map +0 -1
  498. package/dist/components/cg-filter-bar/cg-filter-bar.d.ts +0 -50
  499. package/dist/components/cg-filter-bar/cg-filter-bar.d.ts.map +0 -1
  500. package/dist/components/cg-filter-bar/cg-filter-bar.js +0 -115
  501. package/dist/components/cg-filter-bar/cg-filter-bar.js.map +0 -1
  502. package/dist/components/cg-filter-chip/cg-filter-chip.d.ts +0 -55
  503. package/dist/components/cg-filter-chip/cg-filter-chip.d.ts.map +0 -1
  504. package/dist/components/cg-filter-chip/cg-filter-chip.js +0 -213
  505. package/dist/components/cg-filter-chip/cg-filter-chip.js.map +0 -1
  506. package/dist/components/cg-kanban/cg-kanban.d.ts +0 -44
  507. package/dist/components/cg-kanban/cg-kanban.d.ts.map +0 -1
  508. package/dist/components/cg-kanban/cg-kanban.js +0 -86
  509. package/dist/components/cg-kanban/cg-kanban.js.map +0 -1
  510. package/dist/components/cg-kanban-column/cg-kanban-column.d.ts +0 -58
  511. package/dist/components/cg-kanban-column/cg-kanban-column.d.ts.map +0 -1
  512. package/dist/components/cg-kanban-column/cg-kanban-column.js +0 -144
  513. package/dist/components/cg-kanban-column/cg-kanban-column.js.map +0 -1
  514. package/dist/components/cg-mfa-prompt/cg-mfa-prompt.d.ts +0 -77
  515. package/dist/components/cg-mfa-prompt/cg-mfa-prompt.d.ts.map +0 -1
  516. package/dist/components/cg-mfa-prompt/cg-mfa-prompt.js +0 -245
  517. package/dist/components/cg-mfa-prompt/cg-mfa-prompt.js.map +0 -1
  518. package/dist/components/cg-search-input/cg-search-input.d.ts +0 -62
  519. package/dist/components/cg-search-input/cg-search-input.d.ts.map +0 -1
  520. package/dist/components/cg-search-input/cg-search-input.js +0 -106
  521. package/dist/components/cg-search-input/cg-search-input.js.map +0 -1
  522. package/dist/components/cg-sortable/cg-sortable.d.ts +0 -72
  523. package/dist/components/cg-sortable/cg-sortable.d.ts.map +0 -1
  524. package/dist/components/cg-sortable/cg-sortable.js +0 -177
  525. package/dist/components/cg-sortable/cg-sortable.js.map +0 -1
  526. package/dist/components/cg-theme/cg-theme.d.ts +0 -82
  527. package/dist/components/cg-theme/cg-theme.d.ts.map +0 -1
  528. package/dist/components/cg-theme/cg-theme.js +0 -91
  529. package/dist/components/cg-theme/cg-theme.js.map +0 -1
  530. package/dist/components/cg-theme-editor/cg-theme-editor.d.ts +0 -98
  531. package/dist/components/cg-theme-editor/cg-theme-editor.d.ts.map +0 -1
  532. package/dist/components/cg-theme-editor/cg-theme-editor.js +0 -341
  533. package/dist/components/cg-theme-editor/cg-theme-editor.js.map +0 -1
  534. package/dist/components/cg-timeline/cg-timeline.d.ts +0 -70
  535. package/dist/components/cg-timeline/cg-timeline.d.ts.map +0 -1
  536. package/dist/components/cg-timeline/cg-timeline.js +0 -131
  537. package/dist/components/cg-timeline/cg-timeline.js.map +0 -1
  538. package/dist/components/cg-timeline-event/cg-timeline-event.d.ts +0 -59
  539. package/dist/components/cg-timeline-event/cg-timeline-event.d.ts.map +0 -1
  540. package/dist/components/cg-timeline-event/cg-timeline-event.js +0 -190
  541. package/dist/components/cg-timeline-event/cg-timeline-event.js.map +0 -1
  542. package/dist/utils/drag-manager.d.ts +0 -40
  543. package/dist/utils/drag-manager.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cg-color-picker.js","sources":["../../../src/components/cg-color-picker/cg-color-picker.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\nconst PRESET_COLORS = [\n '#ef4444', '#f97316', '#f59e0b', '#84cc16', '#22c55e', '#06b6d4',\n '#3b82f6', '#8b5cf6', '#d946ef', '#ec4899', '#ffffff', '#18181b',\n];\n\ninterface HSV { h: number; s: number; v: number; a: number; }\n\nfunction hsvToHex(hsv: HSV): string {\n const { h, s, v } = hsv;\n const c = v * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = v - c;\n let r = 0, g = 0, b = 0;\n if (h < 60) { r = c; g = x; } else if (h < 120) { r = x; g = c; }\n else if (h < 180) { g = c; b = x; } else if (h < 240) { g = x; b = c; }\n else if (h < 300) { r = x; b = c; } else { r = c; b = x; }\n const toHex = (n: number) => Math.round((n + m) * 255).toString(16).padStart(2, '0');\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nfunction hexToHsv(hex: string): HSV {\n const h = hex.replace('#', '');\n const r = parseInt(h.substring(0, 2), 16) / 255;\n const g = parseInt(h.substring(2, 4), 16) / 255;\n const b = parseInt(h.substring(4, 6), 16) / 255;\n const max = Math.max(r, g, b), min = Math.min(r, g, b), d = max - min;\n let hue = 0;\n if (d !== 0) {\n if (max === r) hue = ((g - b) / d + 6) % 6 * 60;\n else if (max === g) hue = ((b - r) / d + 2) * 60;\n else hue = ((r - g) / d + 4) * 60;\n }\n return { h: hue, s: max === 0 ? 0 : d / max, v: max, a: 1 };\n}\n\nfunction hsvToRgb(hsv: HSV): { r: number; g: number; b: number } {\n const { h, s, v } = hsv;\n const c = v * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = v - c;\n let r = 0, g = 0, b = 0;\n if (h < 60) { r = c; g = x; } else if (h < 120) { r = x; g = c; }\n else if (h < 180) { g = c; b = x; } else if (h < 240) { g = x; b = c; }\n else if (h < 300) { r = x; b = c; } else { r = c; b = x; }\n return { r: Math.round((r + m) * 255), g: Math.round((g + m) * 255), b: Math.round((b + m) * 255) };\n}\n\n/**\n * @element cg-color-picker\n * Color picker with trigger swatch + dropdown panel containing spectrum area,\n * hue slider, hex/RGB inputs, and preset swatches.\n *\n * @fires {CustomEvent<{color: string, hex: string}>} cg-color-change - When color changes\n */\n@customElement('cg-color-picker')\nexport class CgColorPicker extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host { position: relative; display: inline-block; }\n\n /* ── Label ── */\n .label {\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-text);\n margin-bottom: var(--cg-spacing-4);\n font-weight: var(--cg-font-weight-medium);\n display: block;\n }\n\n /* ── Trigger ── */\n .trigger {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n padding: 0 var(--cg-spacing-12);\n height: var(--cg-component-input-height-md);\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n border-radius: var(--cg-component-input-radius);\n background: var(--cg-color-input-background-default);\n color: var(--cg-color-input-text-default);\n font: inherit;\n font-size: var(--cg-font-size-sm);\n cursor: pointer;\n outline: none;\n min-width: 180px;\n transition:\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .trigger:hover:not(.disabled) { border-color: var(--cg-color-input-border-hover); }\n .trigger:focus-visible { border-color: var(--cg-color-input-border-focus); box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong); }\n .trigger.open { border-color: var(--cg-color-input-border-focus); box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong); }\n .trigger.disabled { opacity: 0.5; pointer-events: none; background: var(--cg-color-input-background-disabled); border-color: var(--cg-color-input-border-disabled); }\n\n .trigger-swatch {\n width: var(--cg-spacing-24);\n height: var(--cg-spacing-24);\n border-radius: var(--cg-border-radius-full);\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n flex-shrink: 0;\n }\n .trigger-text {\n flex: 1;\n font-family: var(--cg-font-family-mono);\n font-size: var(--cg-font-size-sm);\n }\n .trigger-chevron {\n width: var(--cg-icon-size-100);\n height: var(--cg-icon-size-100);\n color: var(--cg-color-input-text-placeholder);\n flex-shrink: 0;\n transition: transform var(--cg-transition-duration-default) var(--cg-transition-easing-default);\n }\n .trigger.open .trigger-chevron { transform: rotate(180deg); }\n\n /* ── Dropdown ── */\n .dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: var(--cg-z-index-200);\n width: 272px;\n margin-top: var(--cg-spacing-4);\n padding: var(--cg-spacing-16);\n background: var(--cg-color-modal-container-background);\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n border-radius: var(--cg-component-input-radius);\n opacity: 0;\n transform: translateY(calc(-1 * var(--cg-spacing-4))) scale(0.98);\n pointer-events: none;\n transition:\n opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .dropdown.open { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }\n\n /* ── Color area ── */\n .color-area {\n position: relative;\n width: 100%;\n height: 150px;\n border-radius: var(--cg-border-radius-50);\n cursor: crosshair;\n overflow: hidden;\n touch-action: none;\n }\n .color-area-bg, .color-area-white, .color-area-black {\n position: absolute;\n inset: 0;\n border-radius: var(--cg-border-radius-50);\n }\n .color-area-white { background: linear-gradient(to right, var(--cg-component-color-picker-spectrum-white), transparent); }\n .color-area-black { background: linear-gradient(to top, var(--cg-component-color-picker-spectrum-black), transparent); }\n .color-area-thumb {\n position: absolute;\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n border: var(--cg-border-width-100) solid var(--cg-component-color-picker-thumb-border);\n border-radius: var(--cg-border-radius-full);\n transform: translate(-50%, -50%);\n pointer-events: none;\n box-shadow: 0 0 0 1px var(--cg-overlay-dark-medium), inset 0 0 0 1px var(--cg-overlay-dark-light);\n }\n\n /* ── Sliders ── */\n .slider-row { display: flex; align-items: center; margin-top: var(--cg-spacing-12); }\n .slider-track {\n flex: 1;\n height: var(--cg-spacing-12);\n border-radius: var(--cg-border-radius-full);\n position: relative;\n cursor: pointer;\n touch-action: none;\n }\n .hue-track {\n background: linear-gradient(\n to right,\n var(--cg-component-color-picker-hue-stop-0),\n var(--cg-component-color-picker-hue-stop-60),\n var(--cg-component-color-picker-hue-stop-120),\n var(--cg-component-color-picker-hue-stop-180),\n var(--cg-component-color-picker-hue-stop-240),\n var(--cg-component-color-picker-hue-stop-300),\n var(--cg-component-color-picker-hue-stop-0)\n );\n }\n .alpha-track {\n background: repeating-conic-gradient(var(--cg-component-color-picker-checker-color) 0% 25%, transparent 0% 50%) 50% / 8px 8px;\n overflow: hidden;\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n }\n .alpha-gradient { position: absolute; inset: 0; border-radius: var(--cg-border-radius-full); }\n .slider-thumb {\n position: absolute;\n top: 50%;\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n border: var(--cg-border-width-100) solid var(--cg-component-color-picker-thumb-border);\n border-radius: var(--cg-border-radius-full);\n transform: translate(-50%, -50%);\n pointer-events: none;\n box-shadow: 0 0 0 1px var(--cg-overlay-dark-medium);\n }\n\n /* ── Hex + copy row ── */\n .inputs-row {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n margin-top: var(--cg-spacing-12);\n }\n .preview-dot {\n width: var(--cg-spacing-24);\n height: var(--cg-spacing-24);\n border-radius: var(--cg-border-radius-full);\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n flex-shrink: 0;\n }\n .hex-input {\n flex: 1; min-width: 0;\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n border-radius: var(--cg-border-radius-50);\n background: var(--cg-color-input-background-default);\n color: var(--cg-color-input-text-default);\n font-family: var(--cg-font-family-mono);\n font-size: var(--cg-font-size-xs);\n padding: var(--cg-spacing-6) var(--cg-spacing-8);\n outline: none;\n transition:\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .hex-input:focus { border-color: var(--cg-color-input-border-focus); box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong); }\n .copy-btn {\n display: flex; align-items: center; justify-content: center;\n width: var(--cg-spacing-32); height: var(--cg-spacing-32);\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n border-radius: var(--cg-border-radius-50);\n background: transparent; color: var(--cg-color-surface-container-text);\n cursor: pointer; flex-shrink: 0;\n transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .copy-btn:hover { background: var(--cg-color-action-secondary-background-hover); }\n .copy-btn:active { transform: scale(var(--cg-interaction-press-scale)); }\n .copy-btn svg { width: var(--cg-icon-size-100); height: var(--cg-icon-size-100); }\n\n /* ── RGB inputs ── */\n .rgb-row { display: flex; gap: var(--cg-spacing-4); margin-top: var(--cg-spacing-8); }\n .rgb-field { flex: 1; display: flex; flex-direction: column; gap: var(--cg-spacing-2); }\n .rgb-label {\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-input-text-placeholder);\n text-align: center; text-transform: uppercase;\n font-weight: var(--cg-font-weight-medium);\n }\n .rgb-input {\n width: 100%; text-align: center;\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n border-radius: var(--cg-border-radius-50);\n background: var(--cg-color-input-background-default);\n color: var(--cg-color-input-text-default);\n font-family: var(--cg-font-family-mono);\n font-size: var(--cg-font-size-xs);\n padding: var(--cg-spacing-4) var(--cg-spacing-2);\n outline: none;\n }\n .rgb-input:focus { border-color: var(--cg-color-input-border-focus); box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong); }\n\n /* ── Presets ── */\n .presets {\n display: flex; flex-wrap: wrap; gap: var(--cg-spacing-4);\n margin-top: var(--cg-spacing-12); padding-top: var(--cg-spacing-12);\n border-top: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n }\n .preset {\n width: var(--cg-spacing-20); height: var(--cg-spacing-20);\n border-radius: var(--cg-border-radius-50);\n border: var(--cg-border-width-50) solid var(--cg-overlay-dark-subtle);\n cursor: pointer; padding: 0;\n transition: transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .preset:hover { transform: scale(1.2); }\n .preset:active { transform: scale(var(--cg-interaction-press-scale)); }\n .preset.active { border-color: var(--cg-color-input-border-focus); box-shadow: 0 0 0 2px var(--cg-overlay-accent-strong); }\n .preset:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--cg-overlay-accent-strong); }\n `];\n\n @property() value = '#3b82f6';\n @property() label = '';\n @property({ type: Array }) colors: string[] = PRESET_COLORS;\n @property({ type: Boolean }) showAlpha = false;\n @property({ type: Boolean }) showRgb = true;\n @property({ type: Boolean }) showPresets = true;\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n @state() private _open = false;\n @state() private _hsv: HSV = { h: 217, s: 0.77, v: 0.96, a: 1 };\n @state() private _hexInput = '#3b82f6';\n @state() private _copied = false;\n private _dragging = false;\n\n override willUpdate(changed: Map<string, unknown>) {\n if (changed.has('value') && !this._dragging) {\n if (/^#([0-9a-fA-F]{3}){1,2}$/.test(this.value)) {\n const full = this.value.length === 4\n ? '#' + this.value[1]! + this.value[1]! + this.value[2]! + this.value[2]! + this.value[3]! + this.value[3]!\n : this.value;\n this._hsv = hexToHsv(full);\n this._hexInput = full;\n }\n }\n }\n\n private _toggle() { if (!this.disabled) this._open = !this._open; }\n private _close() { this._open = false; }\n\n private _emit() {\n const hex = hsvToHex(this._hsv);\n this.value = hex;\n this._hexInput = hex;\n this.dispatchEvent(new CustomEvent('cg-color-change', { detail: { color: hex, hex }, bubbles: true, composed: true }));\n }\n\n // ── Color area ──\n private _onAreaPointerDown(e: PointerEvent) {\n this._dragging = true;\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n this._updateArea(e, e.currentTarget as HTMLElement);\n }\n private _onAreaPointerMove(e: PointerEvent) { if (this._dragging) this._updateArea(e, e.currentTarget as HTMLElement); }\n private _onPointerUp() { this._dragging = false; }\n private _updateArea(e: PointerEvent, el: HTMLElement) {\n const r = el.getBoundingClientRect();\n this._hsv = { ...this._hsv, s: Math.max(0, Math.min(1, (e.clientX - r.left) / r.width)), v: Math.max(0, Math.min(1, 1 - (e.clientY - r.top) / r.height)) };\n this._emit();\n }\n\n // ── Hue ──\n private _onHuePointerDown(e: PointerEvent) {\n this._dragging = true;\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n this._updateHue(e, e.currentTarget as HTMLElement);\n }\n private _onHuePointerMove(e: PointerEvent) { if (this._dragging) this._updateHue(e, e.currentTarget as HTMLElement); }\n private _updateHue(e: PointerEvent, el: HTMLElement) {\n const r = el.getBoundingClientRect();\n this._hsv = { ...this._hsv, h: Math.max(0, Math.min(360, ((e.clientX - r.left) / r.width) * 360)) };\n this._emit();\n }\n\n // ── Alpha ──\n private _onAlphaPointerDown(e: PointerEvent) {\n this._dragging = true;\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n this._updateAlpha(e, e.currentTarget as HTMLElement);\n }\n private _onAlphaPointerMove(e: PointerEvent) { if (this._dragging) this._updateAlpha(e, e.currentTarget as HTMLElement); }\n private _updateAlpha(e: PointerEvent, el: HTMLElement) {\n const r = el.getBoundingClientRect();\n this._hsv = { ...this._hsv, a: Math.max(0, Math.min(1, (e.clientX - r.left) / r.width)) };\n this._emit();\n }\n\n // ── Inputs ──\n private _onHexInput(e: Event) {\n let val = (e.target as HTMLInputElement).value.trim();\n this._hexInput = val;\n if (!val.startsWith('#')) val = '#' + val;\n if (/^#([0-9a-fA-F]{3}){1,2}$/.test(val)) {\n const full = val.length === 4 ? '#' + val[1]! + val[1]! + val[2]! + val[2]! + val[3]! + val[3]! : val;\n this._hsv = hexToHsv(full);\n this._emit();\n }\n }\n private _onRgbInput(ch: 'r' | 'g' | 'b', e: Event) {\n const v = Math.max(0, Math.min(255, parseInt((e.target as HTMLInputElement).value) || 0));\n const rgb = hsvToRgb(this._hsv);\n rgb[ch] = v;\n const hex = `#${rgb.r.toString(16).padStart(2, '0')}${rgb.g.toString(16).padStart(2, '0')}${rgb.b.toString(16).padStart(2, '0')}`;\n this._hsv = hexToHsv(hex);\n this._emit();\n }\n\n private async _copy() {\n await navigator.clipboard.writeText(this.value);\n this._copied = true;\n setTimeout(() => { this._copied = false; this.requestUpdate(); }, 1500);\n }\n\n private _handleClickOutside = (e: Event) => { if (!e.composedPath().includes(this)) this._close(); };\n private _handleKeydown(e: KeyboardEvent) {\n if (e.key === 'Escape') { this._close(); return; }\n if ((e.key === 'Enter' || e.key === ' ') && !this._open) { e.preventDefault(); this._toggle(); }\n }\n\n override connectedCallback() { super.connectedCallback(); document.removeEventListener('click', this._handleClickOutside); document.addEventListener('click', this._handleClickOutside); }\n override disconnectedCallback() { super.disconnectedCallback(); document.removeEventListener('click', this._handleClickOutside); }\n\n override render() {\n const hueColor = hsvToHex({ h: this._hsv.h, s: 1, v: 1, a: 1 });\n const currentHex = hsvToHex(this._hsv);\n const rgb = hsvToRgb(this._hsv);\n\n return html`\n ${this.label ? html`<span class=\"label\">${this.label}</span>` : nothing}\n\n <div class=\"trigger ${this._open ? 'open' : ''} ${this.disabled ? 'disabled' : ''}\"\n tabindex=${this.disabled ? '-1' : '0'}\n role=\"combobox\" aria-expanded=${this._open} aria-haspopup=\"dialog\"\n aria-label=${this.label || 'Color picker'}\n @click=${this._toggle} @keydown=${this._handleKeydown}\n >\n <div class=\"trigger-swatch\" style=\"background:${currentHex}\"></div>\n <span class=\"trigger-text\">${currentHex}</span>\n <svg class=\"trigger-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"><path d=\"M6 9l6 6 6-6\"></path></svg>\n </div>\n\n <div class=\"dropdown ${this._open ? 'open' : ''}\" role=\"dialog\" aria-label=\"Color picker\">\n <!-- Spectrum -->\n <div class=\"color-area\"\n @pointerdown=${this._onAreaPointerDown}\n @pointermove=${this._onAreaPointerMove}\n @pointerup=${this._onPointerUp}\n >\n <div class=\"color-area-bg\" style=\"background:${hueColor}\"></div>\n <div class=\"color-area-white\"></div>\n <div class=\"color-area-black\"></div>\n <div class=\"color-area-thumb\" style=\"left:${this._hsv.s * 100}%;top:${(1 - this._hsv.v) * 100}%;background:${currentHex}\"></div>\n </div>\n\n <!-- Hue -->\n <div class=\"slider-row\">\n <div class=\"slider-track hue-track\"\n @pointerdown=${this._onHuePointerDown}\n @pointermove=${this._onHuePointerMove}\n @pointerup=${this._onPointerUp}\n ><div class=\"slider-thumb\" style=\"left:${(this._hsv.h / 360) * 100}%;background:${hueColor}\"></div></div>\n </div>\n\n <!-- Alpha -->\n ${this.showAlpha ? html`\n <div class=\"slider-row\">\n <div class=\"slider-track alpha-track\"\n @pointerdown=${this._onAlphaPointerDown}\n @pointermove=${this._onAlphaPointerMove}\n @pointerup=${this._onPointerUp}\n ><div class=\"alpha-gradient\" style=\"background:linear-gradient(to right,transparent,${currentHex})\"></div>\n <div class=\"slider-thumb\" style=\"left:${this._hsv.a * 100}%;background:${currentHex}\"></div></div>\n </div>\n ` : nothing}\n\n <!-- Hex + copy -->\n <div class=\"inputs-row\">\n <div class=\"preview-dot\" style=\"background:${currentHex}\"></div>\n <input class=\"hex-input\" type=\"text\" .value=${this._hexInput} aria-label=\"Hex color\" @input=${this._onHexInput} />\n <button class=\"copy-btn\" @click=${this._copy} aria-label=\"Copy color\">\n ${this._copied ? html`\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M20 6L9 17l-5-5\"></path></svg>\n ` : html`\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"></rect><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"></path>\n </svg>\n `}\n </button>\n </div>\n\n <!-- RGB -->\n ${this.showRgb ? html`\n <div class=\"rgb-row\">\n ${(['r', 'g', 'b'] as const).map(ch => html`\n <div class=\"rgb-field\">\n <input class=\"rgb-input\" type=\"number\" min=\"0\" max=\"255\" .value=${String(rgb[ch])} @input=${(e: Event) => this._onRgbInput(ch, e)} aria-label=${ch.toUpperCase()} />\n <span class=\"rgb-label\">${ch.toUpperCase()}</span>\n </div>\n `)}\n </div>\n ` : nothing}\n\n <!-- Presets -->\n ${this.showPresets && this.colors.length > 0 ? html`\n <div class=\"presets\" role=\"radiogroup\" aria-label=\"Preset colors\">\n ${this.colors.map(c => html`\n <button class=\"preset ${this.value === c ? 'active' : ''}\" style=\"background:${c}\"\n role=\"radio\" aria-checked=${this.value === c} aria-label=${c}\n @click=${() => { this._hsv = hexToHsv(c); this._emit(); }}\n ></button>\n `)}\n </div>\n ` : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap { 'cg-color-picker': CgColorPicker; }\n}\n"],"names":["PRESET_COLORS","hsvToHex","hsv","h","s","v","c","x","m","r","g","b","toHex","n","hexToHsv","hex","max","min","d","hue","hsvToRgb","CgColorPicker","LitElement","e","changed","full","el","val","ch","rgb","hueColor","currentHex","html","nothing","hostBlock","reducedMotion","css","__decorateClass","property","state","customElement"],"mappings":";;;;;;;;AAIA,MAAMA,IAAgB;AAAA,EACpB;AAAA,EAAW;AAAA,EAAW;AAAA,EAAW;AAAA,EAAW;AAAA,EAAW;AAAA,EACvD;AAAA,EAAW;AAAA,EAAW;AAAA,EAAW;AAAA,EAAW;AAAA,EAAW;AACzD;AAIA,SAASC,EAASC,GAAkB;AAClC,QAAM,EAAE,GAAAC,GAAG,GAAAC,GAAG,GAAAC,EAAA,IAAMH,GACdI,IAAID,IAAID,GACRG,IAAID,KAAK,IAAI,KAAK,IAAMH,IAAI,KAAM,IAAK,CAAC,IACxCK,IAAIH,IAAIC;AACd,MAAIG,IAAI,GAAGC,IAAI,GAAGC,IAAI;AACtB,EAAIR,IAAI,MAAMM,IAAIH,GAAGI,IAAIH,KAAcJ,IAAI,OAAOM,IAAIF,GAAGG,IAAIJ,KACpDH,IAAI,OAAOO,IAAIJ,GAAGK,IAAIJ,KAAcJ,IAAI,OAAOO,IAAIH,GAAGI,IAAIL,KAC1DH,IAAI,OAAOM,IAAIF,GAAGI,IAAIL,MAAYG,IAAIH,GAAGK,IAAIJ;AACtD,QAAMK,IAAQ,CAACC,MAAc,KAAK,OAAOA,IAAIL,KAAK,GAAG,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AACnF,SAAO,IAAII,EAAMH,CAAC,CAAC,GAAGG,EAAMF,CAAC,CAAC,GAAGE,EAAMD,CAAC,CAAC;AAC3C;AAEA,SAASG,EAASC,GAAkB;AAClC,QAAMZ,IAAIY,EAAI,QAAQ,KAAK,EAAE,GACvBN,IAAI,SAASN,EAAE,UAAU,GAAG,CAAC,GAAG,EAAE,IAAI,KACtCO,IAAI,SAASP,EAAE,UAAU,GAAG,CAAC,GAAG,EAAE,IAAI,KACtCQ,IAAI,SAASR,EAAE,UAAU,GAAG,CAAC,GAAG,EAAE,IAAI,KACtCa,IAAM,KAAK,IAAIP,GAAGC,GAAGC,CAAC,GAAGM,IAAM,KAAK,IAAIR,GAAGC,GAAGC,CAAC,GAAGO,IAAIF,IAAMC;AAClE,MAAIE,IAAM;AACV,SAAID,MAAM,MACJF,MAAQP,IAAGU,MAAQT,IAAIC,KAAKO,IAAI,KAAK,IAAI,KACpCF,MAAQN,IAAGS,MAAQR,IAAIF,KAAKS,IAAI,KAAK,KACzCC,MAAQV,IAAIC,KAAKQ,IAAI,KAAK,KAE1B,EAAE,GAAGC,GAAK,GAAGH,MAAQ,IAAI,IAAIE,IAAIF,GAAK,GAAGA,GAAK,GAAG,EAAA;AAC1D;AAEA,SAASI,EAASlB,GAA+C;AAC/D,QAAM,EAAE,GAAAC,GAAG,GAAAC,GAAG,GAAAC,EAAA,IAAMH,GACdI,IAAID,IAAID,GACRG,IAAID,KAAK,IAAI,KAAK,IAAMH,IAAI,KAAM,IAAK,CAAC,IACxCK,IAAIH,IAAIC;AACd,MAAIG,IAAI,GAAGC,IAAI,GAAGC,IAAI;AACtB,SAAIR,IAAI,MAAMM,IAAIH,GAAGI,IAAIH,KAAcJ,IAAI,OAAOM,IAAIF,GAAGG,IAAIJ,KACpDH,IAAI,OAAOO,IAAIJ,GAAGK,IAAIJ,KAAcJ,IAAI,OAAOO,IAAIH,GAAGI,IAAIL,KAC1DH,IAAI,OAAOM,IAAIF,GAAGI,IAAIL,MAAYG,IAAIH,GAAGK,IAAIJ,IAC/C,EAAE,GAAG,KAAK,OAAOE,IAAID,KAAK,GAAG,GAAG,GAAG,KAAK,OAAOE,IAAIF,KAAK,GAAG,GAAG,GAAG,KAAK,OAAOG,IAAIH,KAAK,GAAG,EAAA;AAClG;AAUO,IAAMa,IAAN,cAA4BC,EAAW;AAAA,EAAvC,cAAA;AAAA,UAAA,GAAA,SAAA,GAuOO,KAAA,QAAQ,WACR,KAAA,QAAQ,IACO,KAAA,SAAmBtB,GACjB,KAAA,YAAY,IACZ,KAAA,UAAU,IACV,KAAA,cAAc,IACC,KAAA,WAAW,IAE9C,KAAQ,QAAQ,IAChB,KAAQ,OAAY,EAAE,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,EAAA,GACnD,KAAQ,YAAY,WACpB,KAAQ,UAAU,IAC3B,KAAQ,YAAY,IA0FpB,KAAQ,sBAAsB,CAACuB,MAAa;AAAE,MAAKA,EAAE,aAAA,EAAe,SAAS,IAAI,UAAQ,OAAA;AAAA,IAAU;AAAA,EAAA;AAAA,EAxF1F,WAAWC,GAA+B;AACjD,QAAIA,EAAQ,IAAI,OAAO,KAAK,CAAC,KAAK,aAC5B,2BAA2B,KAAK,KAAK,KAAK,GAAG;AAC/C,YAAMC,IAAO,KAAK,MAAM,WAAW,IAC/B,MAAM,KAAK,MAAM,CAAC,IAAK,KAAK,MAAM,CAAC,IAAK,KAAK,MAAM,CAAC,IAAK,KAAK,MAAM,CAAC,IAAK,KAAK,MAAM,CAAC,IAAK,KAAK,MAAM,CAAC,IACvG,KAAK;AACT,WAAK,OAAOX,EAASW,CAAI,GACzB,KAAK,YAAYA;AAAA,IACnB;AAAA,EAEJ;AAAA,EAEQ,UAAU;AAAE,IAAK,KAAK,aAAU,KAAK,QAAQ,CAAC,KAAK;AAAA,EAAO;AAAA,EAC1D,SAAS;AAAE,SAAK,QAAQ;AAAA,EAAO;AAAA,EAE/B,QAAQ;AACd,UAAMV,IAAMd,EAAS,KAAK,IAAI;AAC9B,SAAK,QAAQc,GACb,KAAK,YAAYA,GACjB,KAAK,cAAc,IAAI,YAAY,mBAAmB,EAAE,QAAQ,EAAE,OAAOA,GAAK,KAAAA,EAAA,GAAO,SAAS,IAAM,UAAU,GAAA,CAAM,CAAC;AAAA,EACvH;AAAA;AAAA,EAGQ,mBAAmBQ,GAAiB;AAC1C,SAAK,YAAY,IAChBA,EAAE,cAA8B,kBAAkBA,EAAE,SAAS,GAC9D,KAAK,YAAYA,GAAGA,EAAE,aAA4B;AAAA,EACpD;AAAA,EACQ,mBAAmBA,GAAiB;AAAE,IAAI,KAAK,aAAW,KAAK,YAAYA,GAAGA,EAAE,aAA4B;AAAA,EAAG;AAAA,EAC/G,eAAe;AAAE,SAAK,YAAY;AAAA,EAAO;AAAA,EACzC,YAAYA,GAAiBG,GAAiB;AACpD,UAAMjB,IAAIiB,EAAG,sBAAA;AACb,SAAK,OAAO,EAAE,GAAG,KAAK,MAAM,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,IAAIH,EAAE,UAAUd,EAAE,QAAQA,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAKc,EAAE,UAAUd,EAAE,OAAOA,EAAE,MAAM,CAAC,EAAA,GACvJ,KAAK,MAAA;AAAA,EACP;AAAA;AAAA,EAGQ,kBAAkBc,GAAiB;AACzC,SAAK,YAAY,IAChBA,EAAE,cAA8B,kBAAkBA,EAAE,SAAS,GAC9D,KAAK,WAAWA,GAAGA,EAAE,aAA4B;AAAA,EACnD;AAAA,EACQ,kBAAkBA,GAAiB;AAAE,IAAI,KAAK,aAAW,KAAK,WAAWA,GAAGA,EAAE,aAA4B;AAAA,EAAG;AAAA,EAC7G,WAAWA,GAAiBG,GAAiB;AACnD,UAAMjB,IAAIiB,EAAG,sBAAA;AACb,SAAK,OAAO,EAAE,GAAG,KAAK,MAAM,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,MAAOH,EAAE,UAAUd,EAAE,QAAQA,EAAE,QAAS,GAAG,CAAC,EAAA,GAChG,KAAK,MAAA;AAAA,EACP;AAAA;AAAA,EAGQ,oBAAoBc,GAAiB;AAC3C,SAAK,YAAY,IAChBA,EAAE,cAA8B,kBAAkBA,EAAE,SAAS,GAC9D,KAAK,aAAaA,GAAGA,EAAE,aAA4B;AAAA,EACrD;AAAA,EACQ,oBAAoBA,GAAiB;AAAE,IAAI,KAAK,aAAW,KAAK,aAAaA,GAAGA,EAAE,aAA4B;AAAA,EAAG;AAAA,EACjH,aAAaA,GAAiBG,GAAiB;AACrD,UAAMjB,IAAIiB,EAAG,sBAAA;AACb,SAAK,OAAO,EAAE,GAAG,KAAK,MAAM,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,IAAIH,EAAE,UAAUd,EAAE,QAAQA,EAAE,KAAK,CAAC,EAAA,GACtF,KAAK,MAAA;AAAA,EACP;AAAA;AAAA,EAGQ,YAAYc,GAAU;AAC5B,QAAII,IAAOJ,EAAE,OAA4B,MAAM,KAAA;AAG/C,QAFA,KAAK,YAAYI,GACZA,EAAI,WAAW,GAAG,UAAS,MAAMA,IAClC,2BAA2B,KAAKA,CAAG,GAAG;AACxC,YAAMF,IAAOE,EAAI,WAAW,IAAI,MAAMA,EAAI,CAAC,IAAKA,EAAI,CAAC,IAAKA,EAAI,CAAC,IAAKA,EAAI,CAAC,IAAKA,EAAI,CAAC,IAAKA,EAAI,CAAC,IAAKA;AAClG,WAAK,OAAOb,EAASW,CAAI,GACzB,KAAK,MAAA;AAAA,IACP;AAAA,EACF;AAAA,EACQ,YAAYG,GAAqBL,GAAU;AACjD,UAAMlB,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,SAAUkB,EAAE,OAA4B,KAAK,KAAK,CAAC,CAAC,GAClFM,IAAMT,EAAS,KAAK,IAAI;AAC9B,IAAAS,EAAID,CAAE,IAAIvB;AACV,UAAMU,IAAM,IAAIc,EAAI,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,GAAGA,EAAI,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,GAAGA,EAAI,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC;AAC/H,SAAK,OAAOf,EAASC,CAAG,GACxB,KAAK,MAAA;AAAA,EACP;AAAA,EAEA,MAAc,QAAQ;AACpB,UAAM,UAAU,UAAU,UAAU,KAAK,KAAK,GAC9C,KAAK,UAAU,IACf,WAAW,MAAM;AAAE,WAAK,UAAU,IAAO,KAAK,cAAA;AAAA,IAAiB,GAAG,IAAI;AAAA,EACxE;AAAA,EAGQ,eAAeQ,GAAkB;AACvC,QAAIA,EAAE,QAAQ,UAAU;AAAE,WAAK,OAAA;AAAU;AAAA,IAAQ;AACjD,KAAKA,EAAE,QAAQ,WAAWA,EAAE,QAAQ,QAAQ,CAAC,KAAK,UAASA,EAAE,eAAA,GAAkB,KAAK,QAAA;AAAA,EACtF;AAAA,EAES,oBAAoB;AAAE,UAAM,kBAAA,GAAqB,SAAS,oBAAoB,SAAS,KAAK,mBAAmB,GAAG,SAAS,iBAAiB,SAAS,KAAK,mBAAmB;AAAA,EAAG;AAAA,EAChL,uBAAuB;AAAE,UAAM,qBAAA,GAAwB,SAAS,oBAAoB,SAAS,KAAK,mBAAmB;AAAA,EAAG;AAAA,EAExH,SAAS;AAChB,UAAMO,IAAW7B,EAAS,EAAE,GAAG,KAAK,KAAK,GAAG,GAAG,GAAG,GAAG,EAAQ,CAAC,GACxD8B,IAAa9B,EAAS,KAAK,IAAI,GAC/B4B,IAAMT,EAAS,KAAK,IAAI;AAE9B,WAAOY;AAAA,QACH,KAAK,QAAQA,wBAA2B,KAAK,KAAK,YAAYC,CAAO;AAAA;AAAA,4BAEjD,KAAK,QAAQ,SAAS,EAAE,IAAI,KAAK,WAAW,aAAa,EAAE;AAAA,mBACpE,KAAK,WAAW,OAAO,GAAG;AAAA,wCACL,KAAK,KAAK;AAAA,qBAC7B,KAAK,SAAS,cAAc;AAAA,iBAChC,KAAK,OAAO,aAAa,KAAK,cAAc;AAAA;AAAA,wDAELF,CAAU;AAAA,qCAC7BA,CAAU;AAAA;AAAA;AAAA;AAAA,6BAIlB,KAAK,QAAQ,SAAS,EAAE;AAAA;AAAA;AAAA,yBAG5B,KAAK,kBAAkB;AAAA,yBACvB,KAAK,kBAAkB;AAAA,uBACzB,KAAK,YAAY;AAAA;AAAA,yDAEiBD,CAAQ;AAAA;AAAA;AAAA,sDAGX,KAAK,KAAK,IAAI,GAAG,UAAU,IAAI,KAAK,KAAK,KAAK,GAAG,gBAAgBC,CAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAMtG,KAAK,iBAAiB;AAAA,2BACtB,KAAK,iBAAiB;AAAA,yBACxB,KAAK,YAAY;AAAA,mDACU,KAAK,KAAK,IAAI,MAAO,GAAG,gBAAgBD,CAAQ;AAAA;AAAA;AAAA;AAAA,UAI1F,KAAK,YAAYE;AAAA;AAAA;AAAA,6BAGE,KAAK,mBAAmB;AAAA,6BACxB,KAAK,mBAAmB;AAAA,2BAC1B,KAAK,YAAY;AAAA,kGACsDD,CAAU;AAAA,oDACxD,KAAK,KAAK,IAAI,GAAG,gBAAgBA,CAAU;AAAA;AAAA,YAEnFE,CAAO;AAAA;AAAA;AAAA;AAAA,uDAIoCF,CAAU;AAAA,wDACT,KAAK,SAAS,kCAAkC,KAAK,WAAW;AAAA,4CAC5E,KAAK,KAAK;AAAA,cACxC,KAAK,UAAUC;AAAA;AAAA,gBAEbA;AAAA;AAAA;AAAA;AAAA,aAIH;AAAA;AAAA;AAAA;AAAA;AAAA,UAKH,KAAK,UAAUA;AAAA;AAAA,cAEV,CAAC,KAAK,KAAK,GAAG,EAAY,IAAI,CAAAJ,MAAMI;AAAA;AAAA,kFAE+B,OAAOH,EAAID,CAAE,CAAC,CAAC,WAAW,CAAC,MAAa,KAAK,YAAYA,GAAI,CAAC,CAAC,eAAeA,EAAG,aAAa;AAAA,0CACtIA,EAAG,aAAa;AAAA;AAAA,aAE7C,CAAC;AAAA;AAAA,YAEFK,CAAO;AAAA;AAAA;AAAA,UAGT,KAAK,eAAe,KAAK,OAAO,SAAS,IAAID;AAAA;AAAA,cAEzC,KAAK,OAAO,IAAI,CAAA1B,MAAK0B;AAAA,sCACG,KAAK,UAAU1B,IAAI,WAAW,EAAE,uBAAuBA,CAAC;AAAA,4CAClD,KAAK,UAAUA,CAAC,eAAeA,CAAC;AAAA,yBACnD,MAAM;AAAE,WAAK,OAAOQ,EAASR,CAAC,GAAG,KAAK,MAAA;AAAA,IAAS,CAAC;AAAA;AAAA,aAE5D,CAAC;AAAA;AAAA,YAEF2B,CAAO;AAAA;AAAA;AAAA,EAGjB;AACF;AApbaZ,EACK,SAAS,CAACa,GAAWC,GAAeC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAoOnD;AAEWC,EAAA;AAAA,EAAXC,EAAA;AAAS,GAvOCjB,EAuOC,WAAA,SAAA,CAAA;AACAgB,EAAA;AAAA,EAAXC,EAAA;AAAS,GAxOCjB,EAwOC,WAAA,SAAA,CAAA;AACegB,EAAA;AAAA,EAA1BC,EAAS,EAAE,MAAM,MAAA,CAAO;AAAA,GAzOdjB,EAyOgB,WAAA,UAAA,CAAA;AACEgB,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,QAAA,CAAS;AAAA,GA1OhBjB,EA0OkB,WAAA,aAAA,CAAA;AACAgB,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,QAAA,CAAS;AAAA,GA3OhBjB,EA2OkB,WAAA,WAAA,CAAA;AACAgB,EAAA;AAAA,EAA5BC,EAAS,EAAE,MAAM,QAAA,CAAS;AAAA,GA5OhBjB,EA4OkB,WAAA,eAAA,CAAA;AACegB,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GA7O/BjB,EA6OiC,WAAA,YAAA,CAAA;AAE3BgB,EAAA;AAAA,EAAhBE,EAAA;AAAM,GA/OIlB,EA+OM,WAAA,SAAA,CAAA;AACAgB,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAhPIlB,EAgPM,WAAA,QAAA,CAAA;AACAgB,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAjPIlB,EAiPM,WAAA,aAAA,CAAA;AACAgB,EAAA;AAAA,EAAhBE,EAAA;AAAM,GAlPIlB,EAkPM,WAAA,WAAA,CAAA;AAlPNA,IAANgB,EAAA;AAAA,EADNG,EAAc,iBAAiB;AAAA,GACnBnB,CAAA;"}
1
+ {"version":3,"file":"cg-color-picker.js","sources":["../../../src/components/cg-color-picker/cg-color-picker.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\nconst PRESET_COLORS = [\n '#ef4444', '#f97316', '#f59e0b', '#84cc16', '#22c55e', '#06b6d4',\n '#3b82f6', '#8b5cf6', '#d946ef', '#ec4899', '#ffffff', '#18181b',\n];\n\ninterface HSV { h: number; s: number; v: number; a: number; }\n\nfunction hsvToHex(hsv: HSV): string {\n const { h, s, v } = hsv;\n const c = v * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = v - c;\n let r = 0, g = 0, b = 0;\n if (h < 60) { r = c; g = x; } else if (h < 120) { r = x; g = c; }\n else if (h < 180) { g = c; b = x; } else if (h < 240) { g = x; b = c; }\n else if (h < 300) { r = x; b = c; } else { r = c; b = x; }\n const toHex = (n: number) => Math.round((n + m) * 255).toString(16).padStart(2, '0');\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nfunction hexToHsv(hex: string): HSV {\n const h = hex.replace('#', '');\n const r = parseInt(h.substring(0, 2), 16) / 255;\n const g = parseInt(h.substring(2, 4), 16) / 255;\n const b = parseInt(h.substring(4, 6), 16) / 255;\n const max = Math.max(r, g, b), min = Math.min(r, g, b), d = max - min;\n let hue = 0;\n if (d !== 0) {\n if (max === r) hue = ((g - b) / d + 6) % 6 * 60;\n else if (max === g) hue = ((b - r) / d + 2) * 60;\n else hue = ((r - g) / d + 4) * 60;\n }\n return { h: hue, s: max === 0 ? 0 : d / max, v: max, a: 1 };\n}\n\nfunction hsvToRgb(hsv: HSV): { r: number; g: number; b: number } {\n const { h, s, v } = hsv;\n const c = v * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = v - c;\n let r = 0, g = 0, b = 0;\n if (h < 60) { r = c; g = x; } else if (h < 120) { r = x; g = c; }\n else if (h < 180) { g = c; b = x; } else if (h < 240) { g = x; b = c; }\n else if (h < 300) { r = x; b = c; } else { r = c; b = x; }\n return { r: Math.round((r + m) * 255), g: Math.round((g + m) * 255), b: Math.round((b + m) * 255) };\n}\n\n/**\n * @element cg-color-picker\n * Color picker with trigger swatch + dropdown panel containing spectrum area,\n * hue slider, hex/RGB inputs, and preset swatches.\n *\n * @fires {CustomEvent<{color: string, hex: string}>} cg-color-change - When color changes\n */\n@customElement('cg-color-picker')\nexport class CgColorPicker extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host { position: relative; display: inline-block; }\n\n /* ── Label ── */\n .label {\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-text);\n margin-bottom: var(--cg-spacing-4);\n font-weight: var(--cg-font-weight-medium);\n display: block;\n }\n\n /* ── Trigger ── */\n .trigger {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n padding: 0 var(--cg-spacing-12);\n height: var(--cg-component-input-height-md);\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n border-radius: var(--cg-component-input-radius);\n background: var(--cg-color-input-background-default);\n color: var(--cg-color-input-text-default);\n font: inherit;\n font-size: var(--cg-font-size-sm);\n cursor: pointer;\n outline: none;\n min-width: 180px;\n transition:\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .trigger:hover:not(.disabled) { border-color: var(--cg-color-input-border-hover); }\n .trigger:focus-visible { border-color: var(--cg-color-input-border-focus); box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong); }\n .trigger.open { border-color: var(--cg-color-input-border-focus); box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong); }\n .trigger.disabled { opacity: 0.5; pointer-events: none; background: var(--cg-color-input-background-disabled); border-color: var(--cg-color-input-border-disabled); }\n\n .trigger-swatch {\n width: var(--cg-spacing-24);\n height: var(--cg-spacing-24);\n border-radius: var(--cg-border-radius-full);\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n flex-shrink: 0;\n }\n .trigger-text {\n flex: 1;\n font-family: var(--cg-font-family-mono);\n font-size: var(--cg-font-size-sm);\n }\n .trigger-chevron {\n width: var(--cg-icon-size-100);\n height: var(--cg-icon-size-100);\n color: var(--cg-color-input-text-placeholder);\n flex-shrink: 0;\n transition: transform var(--cg-transition-duration-default) var(--cg-transition-easing-default);\n }\n .trigger.open .trigger-chevron { transform: rotate(180deg); }\n\n /* ── Dropdown ── */\n .dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: var(--cg-z-index-200);\n width: 272px;\n margin-top: var(--cg-spacing-4);\n padding: var(--cg-spacing-16);\n background: var(--cg-color-modal-container-background);\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n border-radius: var(--cg-component-input-radius);\n opacity: 0;\n transform: translateY(calc(-1 * var(--cg-spacing-4))) scale(0.98);\n pointer-events: none;\n transition:\n opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .dropdown.open { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }\n\n /* ── Color area ── */\n .color-area {\n position: relative;\n width: 100%;\n height: 150px;\n border-radius: var(--cg-border-radius-50);\n cursor: crosshair;\n overflow: hidden;\n touch-action: none;\n }\n .color-area-bg, .color-area-white, .color-area-black {\n position: absolute;\n inset: 0;\n border-radius: var(--cg-border-radius-50);\n }\n .color-area-white { background: linear-gradient(to right, var(--cg-component-color-picker-spectrum-white), transparent); }\n .color-area-black { background: linear-gradient(to top, var(--cg-component-color-picker-spectrum-black), transparent); }\n .color-area-thumb {\n position: absolute;\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n border: var(--cg-border-width-100) solid var(--cg-component-color-picker-thumb-border);\n border-radius: var(--cg-border-radius-full);\n transform: translate(-50%, -50%);\n pointer-events: none;\n box-shadow: 0 0 0 1px var(--cg-overlay-dark-medium), inset 0 0 0 1px var(--cg-overlay-dark-light);\n }\n\n /* ── Sliders ── */\n .slider-row { display: flex; align-items: center; margin-top: var(--cg-spacing-12); }\n .slider-track {\n flex: 1;\n height: var(--cg-spacing-12);\n border-radius: var(--cg-border-radius-full);\n position: relative;\n cursor: pointer;\n touch-action: none;\n }\n .hue-track {\n background: linear-gradient(\n to right,\n var(--cg-component-color-picker-hue-stop-0),\n var(--cg-component-color-picker-hue-stop-60),\n var(--cg-component-color-picker-hue-stop-120),\n var(--cg-component-color-picker-hue-stop-180),\n var(--cg-component-color-picker-hue-stop-240),\n var(--cg-component-color-picker-hue-stop-300),\n var(--cg-component-color-picker-hue-stop-0)\n );\n }\n .alpha-track {\n background: repeating-conic-gradient(var(--cg-component-color-picker-checker-color) 0% 25%, transparent 0% 50%) 50% / 8px 8px;\n overflow: hidden;\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n }\n .alpha-gradient { position: absolute; inset: 0; border-radius: var(--cg-border-radius-full); }\n .slider-thumb {\n position: absolute;\n top: 50%;\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n border: var(--cg-border-width-100) solid var(--cg-component-color-picker-thumb-border);\n border-radius: var(--cg-border-radius-full);\n transform: translate(-50%, -50%);\n pointer-events: none;\n box-shadow: 0 0 0 1px var(--cg-overlay-dark-medium);\n }\n\n /* ── Hex + copy row ── */\n .inputs-row {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n margin-top: var(--cg-spacing-12);\n }\n .preview-dot {\n width: var(--cg-spacing-24);\n height: var(--cg-spacing-24);\n border-radius: var(--cg-border-radius-full);\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n flex-shrink: 0;\n }\n .hex-input {\n flex: 1; min-width: 0;\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n border-radius: var(--cg-border-radius-50);\n background: var(--cg-color-input-background-default);\n color: var(--cg-color-input-text-default);\n font-family: var(--cg-font-family-mono);\n font-size: var(--cg-font-size-xs);\n padding: var(--cg-spacing-6) var(--cg-spacing-8);\n outline: none;\n transition:\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .hex-input:focus { border-color: var(--cg-color-input-border-focus); box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong); }\n .copy-btn {\n display: flex; align-items: center; justify-content: center;\n width: var(--cg-spacing-32); height: var(--cg-spacing-32);\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n border-radius: var(--cg-border-radius-50);\n background: transparent; color: var(--cg-color-surface-container-text);\n cursor: pointer; flex-shrink: 0;\n transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .copy-btn:hover { background: var(--cg-color-action-secondary-background-hover); }\n .copy-btn:active { transform: scale(var(--cg-interaction-press-scale)); }\n .copy-btn svg { width: var(--cg-icon-size-100); height: var(--cg-icon-size-100); }\n\n /* ── RGB inputs ── */\n .rgb-row { display: flex; gap: var(--cg-spacing-4); margin-top: var(--cg-spacing-8); }\n .rgb-field { flex: 1; display: flex; flex-direction: column; gap: var(--cg-spacing-2); }\n .rgb-label {\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-input-text-placeholder);\n text-align: center; text-transform: uppercase;\n font-weight: var(--cg-font-weight-medium);\n }\n .rgb-input {\n width: 100%; text-align: center;\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n border-radius: var(--cg-border-radius-50);\n background: var(--cg-color-input-background-default);\n color: var(--cg-color-input-text-default);\n font-family: var(--cg-font-family-mono);\n font-size: var(--cg-font-size-xs);\n padding: var(--cg-spacing-4) var(--cg-spacing-2);\n outline: none;\n }\n .rgb-input:focus { border-color: var(--cg-color-input-border-focus); box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong); }\n\n /* ── Presets ── */\n .presets {\n display: flex; flex-wrap: wrap; gap: var(--cg-spacing-4);\n margin-top: var(--cg-spacing-12); padding-top: var(--cg-spacing-12);\n border-top: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n }\n .preset {\n width: var(--cg-spacing-20); height: var(--cg-spacing-20);\n border-radius: var(--cg-border-radius-50);\n border: var(--cg-border-width-50) solid var(--cg-overlay-dark-subtle);\n cursor: pointer; padding: 0;\n transition: transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .preset:hover { transform: scale(1.2); }\n .preset:active { transform: scale(var(--cg-interaction-press-scale)); }\n .preset.active { border-color: var(--cg-color-input-border-focus); box-shadow: 0 0 0 2px var(--cg-overlay-accent-strong); }\n .preset:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--cg-overlay-accent-strong); }\n `];\n\n @property() value = '#3b82f6';\n @property() label = '';\n @property({ type: Array }) colors: string[] = PRESET_COLORS;\n @property({ type: Boolean }) showAlpha = false;\n @property({ type: Boolean }) showRgb = true;\n @property({ type: Boolean }) showPresets = true;\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n @state() private _open = false;\n @state() private _hsv: HSV = { h: 217, s: 0.77, v: 0.96, a: 1 };\n @state() private _hexInput = '#3b82f6';\n @state() private _copied = false;\n private _dragging = false;\n\n override willUpdate(changed: Map<string, unknown>) {\n if (changed.has('value') && !this._dragging) {\n if (/^#([0-9a-fA-F]{3}){1,2}$/.test(this.value)) {\n const full = this.value.length === 4\n ? '#' + this.value[1]! + this.value[1]! + this.value[2]! + this.value[2]! + this.value[3]! + this.value[3]!\n : this.value;\n this._hsv = hexToHsv(full);\n this._hexInput = full;\n }\n }\n }\n\n private _toggle() { if (!this.disabled) this._open = !this._open; }\n private _close() { this._open = false; }\n\n private _emit() {\n const hex = hsvToHex(this._hsv);\n this.value = hex;\n this._hexInput = hex;\n this.dispatchEvent(new CustomEvent('cg-color-change', { detail: { color: hex, hex }, bubbles: true, composed: true }));\n }\n\n // ── Color area ──\n private _onAreaPointerDown(e: PointerEvent) {\n this._dragging = true;\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n this._updateArea(e, e.currentTarget as HTMLElement);\n }\n private _onAreaPointerMove(e: PointerEvent) { if (this._dragging) this._updateArea(e, e.currentTarget as HTMLElement); }\n private _onPointerUp() { this._dragging = false; }\n private _updateArea(e: PointerEvent, el: HTMLElement) {\n const r = el.getBoundingClientRect();\n this._hsv = { ...this._hsv, s: Math.max(0, Math.min(1, (e.clientX - r.left) / r.width)), v: Math.max(0, Math.min(1, 1 - (e.clientY - r.top) / r.height)) };\n this._emit();\n }\n\n // ── Hue ──\n private _onHuePointerDown(e: PointerEvent) {\n this._dragging = true;\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n this._updateHue(e, e.currentTarget as HTMLElement);\n }\n private _onHuePointerMove(e: PointerEvent) { if (this._dragging) this._updateHue(e, e.currentTarget as HTMLElement); }\n private _updateHue(e: PointerEvent, el: HTMLElement) {\n const r = el.getBoundingClientRect();\n this._hsv = { ...this._hsv, h: Math.max(0, Math.min(360, ((e.clientX - r.left) / r.width) * 360)) };\n this._emit();\n }\n\n // ── Alpha ──\n private _onAlphaPointerDown(e: PointerEvent) {\n this._dragging = true;\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n this._updateAlpha(e, e.currentTarget as HTMLElement);\n }\n private _onAlphaPointerMove(e: PointerEvent) { if (this._dragging) this._updateAlpha(e, e.currentTarget as HTMLElement); }\n private _updateAlpha(e: PointerEvent, el: HTMLElement) {\n const r = el.getBoundingClientRect();\n this._hsv = { ...this._hsv, a: Math.max(0, Math.min(1, (e.clientX - r.left) / r.width)) };\n this._emit();\n }\n\n // ── Keyboard (mirrors the pointer handlers so the spectrum + sliders are\n // fully operable without a mouse — they were pointer-only before). ──\n private _onAreaKeydown(e: KeyboardEvent) {\n const step = e.shiftKey ? 0.1 : 0.01;\n let { s, v } = this._hsv;\n switch (e.key) {\n case 'ArrowLeft': s -= step; break;\n case 'ArrowRight': s += step; break;\n case 'ArrowUp': v += step; break;\n case 'ArrowDown': v -= step; break;\n default: return;\n }\n e.preventDefault();\n this._hsv = { ...this._hsv, s: Math.max(0, Math.min(1, s)), v: Math.max(0, Math.min(1, v)) };\n this._emit();\n }\n\n private _onHueKeydown(e: KeyboardEvent) {\n let h = this._hsv.h;\n switch (e.key) {\n case 'ArrowRight': case 'ArrowUp': h += 1; break;\n case 'ArrowLeft': case 'ArrowDown': h -= 1; break;\n case 'PageUp': h += 10; break;\n case 'PageDown': h -= 10; break;\n case 'Home': h = 0; break;\n case 'End': h = 360; break;\n default: return;\n }\n e.preventDefault();\n this._hsv = { ...this._hsv, h: Math.max(0, Math.min(360, h)) };\n this._emit();\n }\n\n private _onAlphaKeydown(e: KeyboardEvent) {\n let a = this._hsv.a;\n switch (e.key) {\n case 'ArrowRight': case 'ArrowUp': a += 0.01; break;\n case 'ArrowLeft': case 'ArrowDown': a -= 0.01; break;\n case 'PageUp': a += 0.1; break;\n case 'PageDown': a -= 0.1; break;\n case 'Home': a = 0; break;\n case 'End': a = 1; break;\n default: return;\n }\n e.preventDefault();\n this._hsv = { ...this._hsv, a: Math.max(0, Math.min(1, a)) };\n this._emit();\n }\n\n // ── Inputs ──\n private _onHexInput(e: Event) {\n let val = (e.target as HTMLInputElement).value.trim();\n this._hexInput = val;\n if (!val.startsWith('#')) val = '#' + val;\n if (/^#([0-9a-fA-F]{3}){1,2}$/.test(val)) {\n const full = val.length === 4 ? '#' + val[1]! + val[1]! + val[2]! + val[2]! + val[3]! + val[3]! : val;\n this._hsv = hexToHsv(full);\n this._emit();\n }\n }\n private _onRgbInput(ch: 'r' | 'g' | 'b', e: Event) {\n const v = Math.max(0, Math.min(255, parseInt((e.target as HTMLInputElement).value) || 0));\n const rgb = hsvToRgb(this._hsv);\n rgb[ch] = v;\n const hex = `#${rgb.r.toString(16).padStart(2, '0')}${rgb.g.toString(16).padStart(2, '0')}${rgb.b.toString(16).padStart(2, '0')}`;\n this._hsv = hexToHsv(hex);\n this._emit();\n }\n\n private async _copy() {\n await navigator.clipboard.writeText(this.value);\n this._copied = true;\n setTimeout(() => { this._copied = false; this.requestUpdate(); }, 1500);\n }\n\n private _handleClickOutside = (e: Event) => { if (!e.composedPath().includes(this)) this._close(); };\n private _handleKeydown(e: KeyboardEvent) {\n if (e.key === 'Escape') { this._close(); return; }\n if ((e.key === 'Enter' || e.key === ' ') && !this._open) { e.preventDefault(); this._toggle(); }\n }\n\n override connectedCallback() { super.connectedCallback(); document.removeEventListener('click', this._handleClickOutside); document.addEventListener('click', this._handleClickOutside); }\n override disconnectedCallback() { super.disconnectedCallback(); document.removeEventListener('click', this._handleClickOutside); }\n\n override render() {\n const hueColor = hsvToHex({ h: this._hsv.h, s: 1, v: 1, a: 1 });\n const currentHex = hsvToHex(this._hsv);\n const rgb = hsvToRgb(this._hsv);\n\n return html`\n ${this.label ? html`<span class=\"label\">${this.label}</span>` : nothing}\n\n <div class=\"trigger ${this._open ? 'open' : ''} ${this.disabled ? 'disabled' : ''}\"\n tabindex=${this.disabled ? '-1' : '0'}\n role=\"combobox\" aria-expanded=${this._open} aria-haspopup=\"dialog\"\n aria-label=${this.label || 'Color picker'}\n @click=${this._toggle} @keydown=${this._handleKeydown}\n >\n <div class=\"trigger-swatch\" style=\"background:${currentHex}\"></div>\n <span class=\"trigger-text\">${currentHex}</span>\n <svg class=\"trigger-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"><path d=\"M6 9l6 6 6-6\"></path></svg>\n </div>\n\n <div class=\"dropdown ${this._open ? 'open' : ''}\" role=\"dialog\" aria-label=\"Color picker\">\n <!-- Spectrum -->\n <div class=\"color-area\"\n tabindex=\"0\"\n role=\"slider\"\n aria-label=\"Saturation and brightness\"\n aria-valuetext=${`Saturation ${Math.round(this._hsv.s * 100)}%, brightness ${Math.round(this._hsv.v * 100)}%, ${currentHex}`}\n @pointerdown=${this._onAreaPointerDown}\n @pointermove=${this._onAreaPointerMove}\n @pointerup=${this._onPointerUp}\n @keydown=${this._onAreaKeydown}\n >\n <div class=\"color-area-bg\" style=\"background:${hueColor}\"></div>\n <div class=\"color-area-white\"></div>\n <div class=\"color-area-black\"></div>\n <div class=\"color-area-thumb\" style=\"left:${this._hsv.s * 100}%;top:${(1 - this._hsv.v) * 100}%;background:${currentHex}\"></div>\n </div>\n\n <!-- Hue -->\n <div class=\"slider-row\">\n <div class=\"slider-track hue-track\"\n tabindex=\"0\"\n role=\"slider\"\n aria-label=\"Hue\"\n aria-valuemin=\"0\"\n aria-valuemax=\"360\"\n aria-valuenow=${Math.round(this._hsv.h)}\n @pointerdown=${this._onHuePointerDown}\n @pointermove=${this._onHuePointerMove}\n @pointerup=${this._onPointerUp}\n @keydown=${this._onHueKeydown}\n ><div class=\"slider-thumb\" style=\"left:${(this._hsv.h / 360) * 100}%;background:${hueColor}\"></div></div>\n </div>\n\n <!-- Alpha -->\n ${this.showAlpha ? html`\n <div class=\"slider-row\">\n <div class=\"slider-track alpha-track\"\n tabindex=\"0\"\n role=\"slider\"\n aria-label=\"Opacity\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow=${Math.round(this._hsv.a * 100)}\n @pointerdown=${this._onAlphaPointerDown}\n @pointermove=${this._onAlphaPointerMove}\n @pointerup=${this._onPointerUp}\n @keydown=${this._onAlphaKeydown}\n ><div class=\"alpha-gradient\" style=\"background:linear-gradient(to right,transparent,${currentHex})\"></div>\n <div class=\"slider-thumb\" style=\"left:${this._hsv.a * 100}%;background:${currentHex}\"></div></div>\n </div>\n ` : nothing}\n\n <!-- Hex + copy -->\n <div class=\"inputs-row\">\n <div class=\"preview-dot\" style=\"background:${currentHex}\"></div>\n <input class=\"hex-input\" type=\"text\" .value=${this._hexInput} aria-label=\"Hex color\" @input=${this._onHexInput} />\n <button class=\"copy-btn\" @click=${this._copy} aria-label=\"Copy color\">\n ${this._copied ? html`\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><path d=\"M20 6L9 17l-5-5\"></path></svg>\n ` : html`\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\"></rect><path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\"></path>\n </svg>\n `}\n </button>\n </div>\n\n <!-- RGB -->\n ${this.showRgb ? html`\n <div class=\"rgb-row\">\n ${(['r', 'g', 'b'] as const).map(ch => html`\n <div class=\"rgb-field\">\n <input class=\"rgb-input\" type=\"number\" min=\"0\" max=\"255\" .value=${String(rgb[ch])} @input=${(e: Event) => this._onRgbInput(ch, e)} aria-label=${ch.toUpperCase()} />\n <span class=\"rgb-label\">${ch.toUpperCase()}</span>\n </div>\n `)}\n </div>\n ` : nothing}\n\n <!-- Presets -->\n ${this.showPresets && this.colors.length > 0 ? html`\n <div class=\"presets\" role=\"radiogroup\" aria-label=\"Preset colors\">\n ${this.colors.map(c => html`\n <button class=\"preset ${this.value === c ? 'active' : ''}\" style=\"background:${c}\"\n role=\"radio\" aria-checked=${this.value === c} aria-label=${c}\n @click=${() => { this._hsv = hexToHsv(c); this._emit(); }}\n ></button>\n `)}\n </div>\n ` : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap { 'cg-color-picker': CgColorPicker; }\n}\n"],"names":["PRESET_COLORS","hsvToHex","hsv","h","s","v","c","x","m","r","g","b","toHex","n","hexToHsv","hex","max","min","d","hue","hsvToRgb","CgColorPicker","LitElement","e","changed","full","el","step","a","val","ch","rgb","hueColor","currentHex","html","nothing","hostBlock","reducedMotion","css","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cg-combobox.d.ts","sourceRoot":"","sources":["../../../src/components/cg-combobox/cg-combobox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,qBACa,UAAW,SAAQ,UAAU;IACxC,MAAM,CAAC,cAAc,UAAQ;IAE7B,OAAgB,MAAM,4BA6KnB;IAEwB,OAAO,EAAE,WAAW,EAAE,CAAM;IAC3C,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAM;IACb,QAAQ,UAAS;IAClC,WAAW,SAAM;IACA,UAAU,UAAQ;IAClB,SAAS,UAAS;IACH,QAAQ,UAAS;IAChC,OAAO,UAAS;IACjC,IAAI,SAAM;IACsB,IAAI,UAAS;IACb,KAAK,UAAS;IACd,OAAO,UAAS;IAC/B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAQ;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhE,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,YAAY,CAAM;IAEnB,OAAO,CAAC,MAAM,CAAoB;IAElD,OAAO,CAAC,UAAU,CAAiC;IAEnD,OAAO,CAAC,eAAe,CAGrB;;IASO,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAK5B,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIrD,OAAO,CAAC,gBAAgB;IAMxB,OAAO,KAAK,OAAO,GAGlB;IAED,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,UAAU;IAuBlB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,SAAS;IAIR,MAAM;CAsDhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
1
+ {"version":3,"file":"cg-combobox.d.ts","sourceRoot":"","sources":["../../../src/components/cg-combobox/cg-combobox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,qBACa,UAAW,SAAQ,UAAU;IACxC,MAAM,CAAC,cAAc,UAAQ;IAE7B,OAAgB,MAAM,4BAkLnB;IAEwB,OAAO,EAAE,WAAW,EAAE,CAAM;IAC3C,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAM;IACb,QAAQ,UAAS;IAClC,WAAW,SAAM;IACA,UAAU,UAAQ;IAClB,SAAS,UAAS;IACH,QAAQ,UAAS;IAChC,OAAO,UAAS;IACjC,IAAI,SAAM;IACsB,IAAI,UAAS;IACb,KAAK,UAAS;IACd,OAAO,UAAS;IAC/B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAQ;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhE,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,YAAY,CAAM;IAEnB,OAAO,CAAC,MAAM,CAAoB;IAElD,OAAO,CAAC,UAAU,CAAiC;IAEnD,OAAO,CAAC,eAAe,CAGrB;;IASO,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAK5B,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIrD,OAAO,CAAC,gBAAgB;IAMxB,OAAO,KAAK,OAAO,GAGlB;IAED,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,SAAS;IAIR,MAAM;CAwDhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
@@ -1,6 +1,6 @@
1
1
  import { css as h, LitElement as g, nothing as p, html as c } from "lit";
2
2
  import { property as i, state as u, query as v, customElement as b } from "lit/decorators.js";
3
- import { h as f, r as m } from "../../chunks/premium.css-9I4kHrsl.js";
3
+ import { h as f, r as m } from "../../chunks/premium.css-DHekUEUt.js";
4
4
  var y = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, a = (e, t, n, o) => {
5
5
  for (var s = o > 1 ? void 0 : o ? _(t, n) : t, l = e.length - 1, d; l >= 0; l--)
6
6
  (d = e[l]) && (s = (o ? d(t, n, s) : d(s)) || s);
@@ -75,7 +75,7 @@ let r = class extends g {
75
75
  this._removeChip(this._values[this._values.length - 1]);
76
76
  return;
77
77
  }
78
- e.key === "ArrowDown" ? (e.preventDefault(), this.open = !0, this._activeIndex = Math.min(t.length - 1, this._activeIndex + 1)) : e.key === "ArrowUp" ? (e.preventDefault(), this._activeIndex = Math.max(0, this._activeIndex - 1)) : e.key === "Enter" ? this.open && t[this._activeIndex] && (e.preventDefault(), this._selectOption(t[this._activeIndex])) : e.key === "Escape" && (this.open = !1);
78
+ e.key === "ArrowDown" ? (e.preventDefault(), this.open = !0, this._activeIndex = Math.min(t.length - 1, this._activeIndex + 1)) : e.key === "ArrowUp" ? (e.preventDefault(), this.open = !0, this._activeIndex = Math.max(0, this._activeIndex - 1)) : e.key === "Enter" ? this.open && t[this._activeIndex] && (e.preventDefault(), this._selectOption(t[this._activeIndex])) : e.key === "Escape" && (this.open = !1);
79
79
  }
80
80
  _onWrapperClick() {
81
81
  this.disabled || (this._input?.focus(), this.open = !0);
@@ -90,7 +90,7 @@ let r = class extends g {
90
90
  ${this.multiple ? t.map((o) => c`
91
91
  <span class="chip">
92
92
  ${this._labelFor(o)}
93
- <button class="chip-remove" aria-label="Remove" @click=${(s) => {
93
+ <button class="chip-remove" aria-label=${`Remove ${this._labelFor(o)}`} @click=${(s) => {
94
94
  s.stopPropagation(), this._removeChip(o);
95
95
  }}>×</button>
96
96
  </span>
@@ -101,6 +101,7 @@ let r = class extends g {
101
101
  aria-expanded=${this.open ? "true" : "false"}
102
102
  aria-autocomplete="list"
103
103
  aria-controls="combobox-listbox"
104
+ aria-haspopup="listbox"
104
105
  aria-activedescendant=${this.open && this._activeIndex >= 0 ? `combobox-opt-${this._activeIndex}` : p}
105
106
  ?disabled=${this.disabled}
106
107
  .value=${this.multiple ? this._query : typeof this.value == "string" ? this._query || this._labelFor(this.value) : this._query}
@@ -112,7 +113,7 @@ let r = class extends g {
112
113
  }}
113
114
  />
114
115
  ${this.clearable && n ? c`
115
- <button class="clear-btn" aria-label="Clear" @click=${(o) => {
116
+ <button class="clear-btn" aria-label="Clear selection" @click=${(o) => {
116
117
  o.stopPropagation(), this._clear();
117
118
  }}>×</button>
118
119
  ` : p}
@@ -122,6 +123,7 @@ let r = class extends g {
122
123
  id="combobox-listbox"
123
124
  role="listbox"
124
125
  aria-multiselectable=${this.multiple ? "true" : "false"}
126
+ aria-busy=${this.loading ? "true" : "false"}
125
127
  >
126
128
  ${this.loading ? c`<div class="empty">Loading…</div>` : e.length === 0 ? c`<div class="empty">No options</div>` : e.map((o, s) => c`
127
129
  <div
@@ -295,10 +297,15 @@ r.styles = [f, m, h`
295
297
  cursor: pointer;
296
298
  transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
297
299
  }
298
- .option:hover,
299
- .option.active {
300
+ .option:hover {
300
301
  background: var(--cg-color-action-tertiary-background-hover);
301
302
  }
303
+ /* Keyboard-active descendant gets a distinct accent so it's not confused
304
+ with a hovered row. */
305
+ .option.active {
306
+ background: var(--cg-overlay-accent-strong);
307
+ box-shadow: inset var(--cg-spacing-2) 0 0 0 var(--cg-color-action-primary-background-default);
308
+ }
302
309
  .option.disabled { opacity: 0.5; cursor: not-allowed; }
303
310
  .option.selected { font-weight: var(--cg-font-weight-medium); }
304
311
  .option.selected::after {
@@ -1 +1 @@
1
- {"version":3,"file":"cg-combobox.js","sources":["../../../src/components/cg-combobox/cg-combobox.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\nexport interface ComboOption {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\n/**\n * @element cg-combobox\n * Typeahead input with optional chips for multi-select.\n *\n * @fires {CustomEvent<{value:string|string[]}>} cg-combobox-change\n */\n@customElement('cg-combobox')\nexport class CgCombobox extends LitElement {\n static formAssociated = true;\n\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n display: inline-block;\n width: 100%;\n max-width: 100%;\n font-family: var(--cg-font-family-primary);\n }\n\n .wrapper {\n position: relative;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--cg-spacing-6);\n min-height: var(--cg-component-input-height-md);\n padding: var(--cg-spacing-8) var(--cg-spacing-12);\n background: var(--cg-color-input-background-default);\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n border-radius: var(--cg-component-input-radius);\n color: var(--cg-color-input-text-default);\n cursor: text;\n transition:\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n\n /* Size variants — match cg-input */\n :host([size=\"lg\"]) .wrapper { min-height: var(--cg-component-input-height-lg); }\n\n /* Rounded variants — match cg-input */\n :host([rounded=\"none\"]) .wrapper { border-radius: 0; }\n :host([rounded=\"sm\"]) .wrapper { border-radius: var(--cg-border-radius-50); }\n :host([rounded=\"md\"]) .wrapper { border-radius: var(--cg-border-radius-100); }\n :host([rounded=\"lg\"]) .wrapper { border-radius: var(--cg-component-input-radius); }\n\n .wrapper:hover { border-color: var(--cg-color-input-border-hover); }\n .wrapper:focus-within {\n border-color: var(--cg-color-input-border-focus);\n box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong);\n }\n\n /* Error state — match cg-input */\n :host([error]) .wrapper {\n border-color: var(--cg-color-input-border-error);\n }\n :host([error]) .wrapper:focus-within {\n border-color: var(--cg-color-status-error-text-default);\n box-shadow: 0 0 0 3px var(--cg-shadow-focus-error);\n }\n\n /* Success state — match cg-input */\n :host([success]) .wrapper {\n border-color: var(--cg-color-input-icon-success);\n }\n :host([success]) .wrapper:focus-within {\n border-color: var(--cg-color-status-success-text-default);\n box-shadow: 0 0 0 3px var(--cg-shadow-focus-success);\n }\n\n :host([disabled]) .wrapper {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n background: var(--cg-color-input-background-disabled);\n border-color: var(--cg-color-input-border-disabled);\n }\n\n .chip {\n display: inline-flex;\n align-items: center;\n gap: var(--cg-spacing-4);\n padding: var(--cg-spacing-4) var(--cg-spacing-4) var(--cg-spacing-4) var(--cg-spacing-8);\n background: var(--cg-color-action-tertiary-background-hover);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n color: var(--cg-color-surface-base-text);\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-medium);\n border-radius: var(--cg-border-radius-full);\n animation: comboChipIn var(--cg-transition-duration-default) var(--cg-transition-easing-spring);\n }\n @keyframes comboChipIn {\n from { opacity: 0; transform: scale(0.8); }\n to { opacity: 1; transform: scale(1); }\n }\n .chip-remove {\n background: none;\n border: none;\n color: inherit;\n font: inherit;\n cursor: pointer;\n padding: 0;\n font-size: var(--cg-font-size-sm);\n line-height: 1;\n }\n\n input {\n flex: 1;\n min-width: var(--cg-spacing-80);\n background: transparent;\n border: none;\n outline: none;\n color: inherit;\n font: inherit;\n font-size: var(--cg-font-size-sm);\n }\n input::placeholder { color: var(--cg-color-input-text-placeholder); }\n\n .clear-btn {\n background: none;\n border: none;\n color: var(--cg-color-surface-container-outlined);\n cursor: pointer;\n padding: var(--cg-spacing-2);\n font-size: var(--cg-font-size-sm);\n line-height: 1;\n }\n\n .listbox {\n position: absolute;\n top: calc(100% + var(--cg-spacing-6));\n left: 0;\n right: 0;\n z-index: var(--cg-z-index-500);\n max-height: var(--cg-component-combobox-listbox-max-height);\n overflow-y: auto;\n padding: var(--cg-spacing-6);\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-card-radius);\n box-shadow: var(--cg-shadow-elevation-xl);\n display: none;\n opacity: 0;\n transform: translateY(calc(var(--cg-spacing-4) * -1));\n transition:\n opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out);\n }\n :host([open]) .listbox {\n display: block;\n opacity: 1;\n transform: translateY(0);\n }\n\n .option {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--cg-spacing-12);\n padding: var(--cg-spacing-8) var(--cg-spacing-12);\n border-radius: var(--cg-border-radius-50);\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-container-text);\n cursor: pointer;\n transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .option:hover,\n .option.active {\n background: var(--cg-color-action-tertiary-background-hover);\n }\n .option.disabled { opacity: 0.5; cursor: not-allowed; }\n .option.selected { font-weight: var(--cg-font-weight-medium); }\n .option.selected::after {\n content: '✓';\n color: var(--cg-color-accent-text);\n font-weight: var(--cg-font-weight-semibold);\n }\n\n .empty {\n padding: var(--cg-spacing-16);\n text-align: center;\n color: var(--cg-color-surface-container-outlined);\n font-size: var(--cg-font-size-sm);\n }\n `];\n\n @property({ type: Array }) options: ComboOption[] = [];\n @property() value: string | string[] = '';\n @property({ type: Boolean }) multiple = false;\n @property() placeholder = '';\n @property({ type: Boolean }) searchable = true;\n @property({ type: Boolean }) clearable = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean }) loading = false;\n @property() name = '';\n @property({ type: Boolean, reflect: true }) open = false;\n @property({ type: Boolean, reflect: true }) error = false;\n @property({ type: Boolean, reflect: true }) success = false;\n @property({ reflect: true }) size: 'md' | 'lg' = 'md';\n @property({ reflect: true }) rounded: 'none' | 'sm' | 'md' | 'lg' = 'lg';\n\n @state() private _query = '';\n @state() private _activeIndex = -1;\n\n @query('input') private _input!: HTMLInputElement;\n\n private _internals: ElementInternals | null = null;\n\n private _outsideHandler = (e: MouseEvent) => {\n if (!this.open) return;\n if (!e.composedPath().includes(this)) this.open = false;\n };\n\n constructor() {\n super();\n if ('attachInternals' in this) {\n try { this._internals = (this as HTMLElement).attachInternals(); } catch { /* ignore */ }\n }\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener('click', this._outsideHandler);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n document.removeEventListener('click', this._outsideHandler);\n }\n\n override updated(changed: Map<string, unknown>): void {\n if (changed.has('value')) this._updateFormValue();\n }\n\n private _updateFormValue(): void {\n if (!this._internals) return;\n const v = Array.isArray(this.value) ? this.value.join(',') : this.value;\n this._internals.setFormValue(v);\n }\n\n private get _values(): string[] {\n if (this.multiple) return Array.isArray(this.value) ? this.value : [];\n return typeof this.value === 'string' && this.value ? [this.value] : [];\n }\n\n private _filteredOptions(): ComboOption[] {\n if (!this._query || !this.searchable) return this.options;\n const q = this._query.toLowerCase();\n return this.options.filter(o => o.label.toLowerCase().includes(q));\n }\n\n private _selectOption(opt: ComboOption): void {\n if (opt.disabled) return;\n if (this.multiple) {\n const cur = this._values;\n const next = cur.includes(opt.value) ? cur.filter(v => v !== opt.value) : [...cur, opt.value];\n this.value = next;\n } else {\n this.value = opt.value;\n this.open = false;\n }\n this._query = '';\n this.dispatchEvent(new CustomEvent('cg-combobox-change', {\n bubbles: true, composed: true, detail: { value: this.value },\n }));\n }\n\n private _removeChip(v: string): void {\n if (!this.multiple) return;\n this.value = this._values.filter(x => x !== v);\n this.dispatchEvent(new CustomEvent('cg-combobox-change', {\n bubbles: true, composed: true, detail: { value: this.value },\n }));\n }\n\n private _clear(): void {\n this.value = this.multiple ? [] : '';\n this._query = '';\n this.dispatchEvent(new CustomEvent('cg-combobox-change', {\n bubbles: true, composed: true, detail: { value: this.value },\n }));\n }\n\n private _onInput(e: Event): void {\n this._query = (e.target as HTMLInputElement).value;\n this.open = true;\n this._activeIndex = 0;\n }\n\n private _onKeydown(e: KeyboardEvent): void {\n const filtered = this._filteredOptions();\n if (e.key === 'Backspace' && !this._query && this.multiple && this._values.length) {\n this._removeChip(this._values[this._values.length - 1]!);\n return;\n }\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n this.open = true;\n this._activeIndex = Math.min(filtered.length - 1, this._activeIndex + 1);\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n this._activeIndex = Math.max(0, this._activeIndex - 1);\n } else if (e.key === 'Enter') {\n if (this.open && filtered[this._activeIndex]) {\n e.preventDefault();\n this._selectOption(filtered[this._activeIndex]!);\n }\n } else if (e.key === 'Escape') {\n this.open = false;\n }\n }\n\n private _onWrapperClick(): void {\n if (this.disabled) return;\n this._input?.focus();\n this.open = true;\n }\n\n private _labelFor(value: string): string {\n return this.options.find(o => o.value === value)?.label ?? value;\n }\n\n override render() {\n const filtered = this._filteredOptions();\n const values = this._values;\n const hasValue = values.length > 0;\n\n return html`\n <div class=\"wrapper\" @click=${this._onWrapperClick}>\n ${this.multiple\n ? values.map(v => html`\n <span class=\"chip\">\n ${this._labelFor(v)}\n <button class=\"chip-remove\" aria-label=\"Remove\" @click=${(e: MouseEvent) => { e.stopPropagation(); this._removeChip(v); }}>×</button>\n </span>\n `)\n : nothing}\n <input\n type=\"text\"\n role=\"combobox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-autocomplete=\"list\"\n aria-controls=\"combobox-listbox\"\n aria-activedescendant=${this.open && this._activeIndex >= 0 ? `combobox-opt-${this._activeIndex}` : nothing}\n ?disabled=${this.disabled}\n .value=${this.multiple ? this._query : (typeof this.value === 'string' ? (this._query || this._labelFor(this.value)) : this._query)}\n placeholder=${this.placeholder}\n @input=${this._onInput}\n @keydown=${this._onKeydown}\n @focus=${() => { this.open = true; }}\n />\n ${this.clearable && hasValue ? html`\n <button class=\"clear-btn\" aria-label=\"Clear\" @click=${(e: MouseEvent) => { e.stopPropagation(); this._clear(); }}>×</button>\n ` : nothing}\n </div>\n <div\n class=\"listbox\"\n id=\"combobox-listbox\"\n role=\"listbox\"\n aria-multiselectable=${this.multiple ? 'true' : 'false'}\n >\n ${this.loading ? html`<div class=\"empty\">Loading…</div>` :\n filtered.length === 0 ? html`<div class=\"empty\">No options</div>` :\n filtered.map((opt, i) => html`\n <div\n class=\"option ${opt.disabled ? 'disabled' : ''} ${values.includes(opt.value) ? 'selected' : ''} ${i === this._activeIndex ? 'active' : ''}\"\n id=${`combobox-opt-${i}`}\n role=\"option\"\n aria-selected=${values.includes(opt.value) ? 'true' : 'false'}\n aria-disabled=${opt.disabled ? 'true' : 'false'}\n @click=${(e: MouseEvent) => { e.stopPropagation(); this._selectOption(opt); }}\n >${opt.label}</div>\n `)}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-combobox': CgCombobox;\n }\n}\n"],"names":["CgCombobox","LitElement","changed","v","q","o","opt","cur","next","x","filtered","value","values","hasValue","html","e","nothing","i","hostBlock","reducedMotion","css","__decorateClass","property","state","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"cg-combobox.js","sources":["../../../src/components/cg-combobox/cg-combobox.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\nexport interface ComboOption {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\n/**\n * @element cg-combobox\n * Typeahead input with optional chips for multi-select.\n *\n * @fires {CustomEvent<{value:string|string[]}>} cg-combobox-change\n */\n@customElement('cg-combobox')\nexport class CgCombobox extends LitElement {\n static formAssociated = true;\n\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n display: inline-block;\n width: 100%;\n max-width: 100%;\n font-family: var(--cg-font-family-primary);\n }\n\n .wrapper {\n position: relative;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--cg-spacing-6);\n min-height: var(--cg-component-input-height-md);\n padding: var(--cg-spacing-8) var(--cg-spacing-12);\n background: var(--cg-color-input-background-default);\n border: var(--cg-border-width-50) solid var(--cg-color-input-border-default);\n border-radius: var(--cg-component-input-radius);\n color: var(--cg-color-input-text-default);\n cursor: text;\n transition:\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n\n /* Size variants — match cg-input */\n :host([size=\"lg\"]) .wrapper { min-height: var(--cg-component-input-height-lg); }\n\n /* Rounded variants — match cg-input */\n :host([rounded=\"none\"]) .wrapper { border-radius: 0; }\n :host([rounded=\"sm\"]) .wrapper { border-radius: var(--cg-border-radius-50); }\n :host([rounded=\"md\"]) .wrapper { border-radius: var(--cg-border-radius-100); }\n :host([rounded=\"lg\"]) .wrapper { border-radius: var(--cg-component-input-radius); }\n\n .wrapper:hover { border-color: var(--cg-color-input-border-hover); }\n .wrapper:focus-within {\n border-color: var(--cg-color-input-border-focus);\n box-shadow: 0 0 0 3px var(--cg-overlay-accent-strong);\n }\n\n /* Error state — match cg-input */\n :host([error]) .wrapper {\n border-color: var(--cg-color-input-border-error);\n }\n :host([error]) .wrapper:focus-within {\n border-color: var(--cg-color-status-error-text-default);\n box-shadow: 0 0 0 3px var(--cg-shadow-focus-error);\n }\n\n /* Success state — match cg-input */\n :host([success]) .wrapper {\n border-color: var(--cg-color-input-icon-success);\n }\n :host([success]) .wrapper:focus-within {\n border-color: var(--cg-color-status-success-text-default);\n box-shadow: 0 0 0 3px var(--cg-shadow-focus-success);\n }\n\n :host([disabled]) .wrapper {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n background: var(--cg-color-input-background-disabled);\n border-color: var(--cg-color-input-border-disabled);\n }\n\n .chip {\n display: inline-flex;\n align-items: center;\n gap: var(--cg-spacing-4);\n padding: var(--cg-spacing-4) var(--cg-spacing-4) var(--cg-spacing-4) var(--cg-spacing-8);\n background: var(--cg-color-action-tertiary-background-hover);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n color: var(--cg-color-surface-base-text);\n font-size: var(--cg-font-size-xs);\n font-weight: var(--cg-font-weight-medium);\n border-radius: var(--cg-border-radius-full);\n animation: comboChipIn var(--cg-transition-duration-default) var(--cg-transition-easing-spring);\n }\n @keyframes comboChipIn {\n from { opacity: 0; transform: scale(0.8); }\n to { opacity: 1; transform: scale(1); }\n }\n .chip-remove {\n background: none;\n border: none;\n color: inherit;\n font: inherit;\n cursor: pointer;\n padding: 0;\n font-size: var(--cg-font-size-sm);\n line-height: 1;\n }\n\n input {\n flex: 1;\n min-width: var(--cg-spacing-80);\n background: transparent;\n border: none;\n outline: none;\n color: inherit;\n font: inherit;\n font-size: var(--cg-font-size-sm);\n }\n input::placeholder { color: var(--cg-color-input-text-placeholder); }\n\n .clear-btn {\n background: none;\n border: none;\n color: var(--cg-color-surface-container-outlined);\n cursor: pointer;\n padding: var(--cg-spacing-2);\n font-size: var(--cg-font-size-sm);\n line-height: 1;\n }\n\n .listbox {\n position: absolute;\n top: calc(100% + var(--cg-spacing-6));\n left: 0;\n right: 0;\n z-index: var(--cg-z-index-500);\n max-height: var(--cg-component-combobox-listbox-max-height);\n overflow-y: auto;\n padding: var(--cg-spacing-6);\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-card-radius);\n box-shadow: var(--cg-shadow-elevation-xl);\n display: none;\n opacity: 0;\n transform: translateY(calc(var(--cg-spacing-4) * -1));\n transition:\n opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out);\n }\n :host([open]) .listbox {\n display: block;\n opacity: 1;\n transform: translateY(0);\n }\n\n .option {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--cg-spacing-12);\n padding: var(--cg-spacing-8) var(--cg-spacing-12);\n border-radius: var(--cg-border-radius-50);\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-container-text);\n cursor: pointer;\n transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n .option:hover {\n background: var(--cg-color-action-tertiary-background-hover);\n }\n /* Keyboard-active descendant gets a distinct accent so it's not confused\n with a hovered row. */\n .option.active {\n background: var(--cg-overlay-accent-strong);\n box-shadow: inset var(--cg-spacing-2) 0 0 0 var(--cg-color-action-primary-background-default);\n }\n .option.disabled { opacity: 0.5; cursor: not-allowed; }\n .option.selected { font-weight: var(--cg-font-weight-medium); }\n .option.selected::after {\n content: '✓';\n color: var(--cg-color-accent-text);\n font-weight: var(--cg-font-weight-semibold);\n }\n\n .empty {\n padding: var(--cg-spacing-16);\n text-align: center;\n color: var(--cg-color-surface-container-outlined);\n font-size: var(--cg-font-size-sm);\n }\n `];\n\n @property({ type: Array }) options: ComboOption[] = [];\n @property() value: string | string[] = '';\n @property({ type: Boolean }) multiple = false;\n @property() placeholder = '';\n @property({ type: Boolean }) searchable = true;\n @property({ type: Boolean }) clearable = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean }) loading = false;\n @property() name = '';\n @property({ type: Boolean, reflect: true }) open = false;\n @property({ type: Boolean, reflect: true }) error = false;\n @property({ type: Boolean, reflect: true }) success = false;\n @property({ reflect: true }) size: 'md' | 'lg' = 'md';\n @property({ reflect: true }) rounded: 'none' | 'sm' | 'md' | 'lg' = 'lg';\n\n @state() private _query = '';\n @state() private _activeIndex = -1;\n\n @query('input') private _input!: HTMLInputElement;\n\n private _internals: ElementInternals | null = null;\n\n private _outsideHandler = (e: MouseEvent) => {\n if (!this.open) return;\n if (!e.composedPath().includes(this)) this.open = false;\n };\n\n constructor() {\n super();\n if ('attachInternals' in this) {\n try { this._internals = (this as HTMLElement).attachInternals(); } catch { /* ignore */ }\n }\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener('click', this._outsideHandler);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n document.removeEventListener('click', this._outsideHandler);\n }\n\n override updated(changed: Map<string, unknown>): void {\n if (changed.has('value')) this._updateFormValue();\n }\n\n private _updateFormValue(): void {\n if (!this._internals) return;\n const v = Array.isArray(this.value) ? this.value.join(',') : this.value;\n this._internals.setFormValue(v);\n }\n\n private get _values(): string[] {\n if (this.multiple) return Array.isArray(this.value) ? this.value : [];\n return typeof this.value === 'string' && this.value ? [this.value] : [];\n }\n\n private _filteredOptions(): ComboOption[] {\n if (!this._query || !this.searchable) return this.options;\n const q = this._query.toLowerCase();\n return this.options.filter(o => o.label.toLowerCase().includes(q));\n }\n\n private _selectOption(opt: ComboOption): void {\n if (opt.disabled) return;\n if (this.multiple) {\n const cur = this._values;\n const next = cur.includes(opt.value) ? cur.filter(v => v !== opt.value) : [...cur, opt.value];\n this.value = next;\n } else {\n this.value = opt.value;\n this.open = false;\n }\n this._query = '';\n this.dispatchEvent(new CustomEvent('cg-combobox-change', {\n bubbles: true, composed: true, detail: { value: this.value },\n }));\n }\n\n private _removeChip(v: string): void {\n if (!this.multiple) return;\n this.value = this._values.filter(x => x !== v);\n this.dispatchEvent(new CustomEvent('cg-combobox-change', {\n bubbles: true, composed: true, detail: { value: this.value },\n }));\n }\n\n private _clear(): void {\n this.value = this.multiple ? [] : '';\n this._query = '';\n this.dispatchEvent(new CustomEvent('cg-combobox-change', {\n bubbles: true, composed: true, detail: { value: this.value },\n }));\n }\n\n private _onInput(e: Event): void {\n this._query = (e.target as HTMLInputElement).value;\n this.open = true;\n this._activeIndex = 0;\n }\n\n private _onKeydown(e: KeyboardEvent): void {\n const filtered = this._filteredOptions();\n if (e.key === 'Backspace' && !this._query && this.multiple && this._values.length) {\n this._removeChip(this._values[this._values.length - 1]!);\n return;\n }\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n this.open = true;\n this._activeIndex = Math.min(filtered.length - 1, this._activeIndex + 1);\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n this.open = true;\n this._activeIndex = Math.max(0, this._activeIndex - 1);\n } else if (e.key === 'Enter') {\n if (this.open && filtered[this._activeIndex]) {\n e.preventDefault();\n this._selectOption(filtered[this._activeIndex]!);\n }\n } else if (e.key === 'Escape') {\n this.open = false;\n }\n }\n\n private _onWrapperClick(): void {\n if (this.disabled) return;\n this._input?.focus();\n this.open = true;\n }\n\n private _labelFor(value: string): string {\n return this.options.find(o => o.value === value)?.label ?? value;\n }\n\n override render() {\n const filtered = this._filteredOptions();\n const values = this._values;\n const hasValue = values.length > 0;\n\n return html`\n <div class=\"wrapper\" @click=${this._onWrapperClick}>\n ${this.multiple\n ? values.map(v => html`\n <span class=\"chip\">\n ${this._labelFor(v)}\n <button class=\"chip-remove\" aria-label=${`Remove ${this._labelFor(v)}`} @click=${(e: MouseEvent) => { e.stopPropagation(); this._removeChip(v); }}>×</button>\n </span>\n `)\n : nothing}\n <input\n type=\"text\"\n role=\"combobox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-autocomplete=\"list\"\n aria-controls=\"combobox-listbox\"\n aria-haspopup=\"listbox\"\n aria-activedescendant=${this.open && this._activeIndex >= 0 ? `combobox-opt-${this._activeIndex}` : nothing}\n ?disabled=${this.disabled}\n .value=${this.multiple ? this._query : (typeof this.value === 'string' ? (this._query || this._labelFor(this.value)) : this._query)}\n placeholder=${this.placeholder}\n @input=${this._onInput}\n @keydown=${this._onKeydown}\n @focus=${() => { this.open = true; }}\n />\n ${this.clearable && hasValue ? html`\n <button class=\"clear-btn\" aria-label=\"Clear selection\" @click=${(e: MouseEvent) => { e.stopPropagation(); this._clear(); }}>×</button>\n ` : nothing}\n </div>\n <div\n class=\"listbox\"\n id=\"combobox-listbox\"\n role=\"listbox\"\n aria-multiselectable=${this.multiple ? 'true' : 'false'}\n aria-busy=${this.loading ? 'true' : 'false'}\n >\n ${this.loading ? html`<div class=\"empty\">Loading…</div>` :\n filtered.length === 0 ? html`<div class=\"empty\">No options</div>` :\n filtered.map((opt, i) => html`\n <div\n class=\"option ${opt.disabled ? 'disabled' : ''} ${values.includes(opt.value) ? 'selected' : ''} ${i === this._activeIndex ? 'active' : ''}\"\n id=${`combobox-opt-${i}`}\n role=\"option\"\n aria-selected=${values.includes(opt.value) ? 'true' : 'false'}\n aria-disabled=${opt.disabled ? 'true' : 'false'}\n @click=${(e: MouseEvent) => { e.stopPropagation(); this._selectOption(opt); }}\n >${opt.label}</div>\n `)}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-combobox': CgCombobox;\n }\n}\n"],"names":["CgCombobox","LitElement","changed","v","q","o","opt","cur","next","x","filtered","value","values","hasValue","html","e","nothing","i","hostBlock","reducedMotion","css","__decorateClass","property","state","query","customElement"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cg-command.d.ts","sourceRoot":"","sources":["../../../src/components/cg-command/cg-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAMrD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBACa,SAAU,SAAQ,UAAU;IACvC,OAAgB,MAAM,4BAqKnB;IAEyC,IAAI,UAAS;IAC7C,WAAW,SAAiC;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAM;IAC5C,KAAK,SAAM;IACgB,SAAS,SAAuB;IAC1C,OAAO,UAAS;IAEpC,OAAO,CAAC,YAAY,CAAK;IAElB,OAAO,CAAC,QAAQ,CAAoB;IACjC,OAAO,CAAC,UAAU,CAAe;IAEpD,OAAO,CAAC,UAAU,CAAmB;IAE5B,oBAAoB,IAAI,IAAI;IAK5B,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAOrD,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,QAAQ;IAKhB,OAAO,KAAK,iBAAiB,GAS5B;IAED,OAAO,KAAK,gBAAgB,GAS3B;IAED,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,OAAO;IAWN,MAAM;CAkEhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
1
+ {"version":3,"file":"cg-command.d.ts","sourceRoot":"","sources":["../../../src/components/cg-command/cg-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAMrD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBACa,SAAU,SAAQ,UAAU;IACvC,OAAgB,MAAM,4BA0KnB;IAEyC,IAAI,UAAS;IAC7C,WAAW,SAAiC;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAM;IAC5C,KAAK,SAAM;IACgB,SAAS,SAAuB;IAC1C,OAAO,UAAS;IAEpC,OAAO,CAAC,YAAY,CAAK;IAElB,OAAO,CAAC,QAAQ,CAAoB;IACjC,OAAO,CAAC,UAAU,CAAe;IAEpD,OAAO,CAAC,UAAU,CAAmB;IAE5B,oBAAoB,IAAI,IAAI;IAK5B,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAOrD,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,QAAQ;IAKhB,OAAO,KAAK,iBAAiB,GAS5B;IAED,OAAO,KAAK,gBAAgB,GAS3B;IAED,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,OAAO;IAWN,MAAM;CAoEhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
@@ -1,14 +1,14 @@
1
- import { css as u, LitElement as m, html as c, nothing as p } from "lit";
1
+ import { css as u, LitElement as m, nothing as p, html as c } from "lit";
2
2
  import { property as d, state as v, query as g, customElement as h } from "lit/decorators.js";
3
- import { h as f, r as b } from "../../chunks/premium.css-9I4kHrsl.js";
4
- import { F as y } from "../../chunks/focus-trap-BdRNhSPD.js";
3
+ import { h as f, r as b } from "../../chunks/premium.css-DHekUEUt.js";
4
+ import { F as y } from "../../chunks/focus-trap-vlQwKK-3.js";
5
5
  import { h as x } from "../../chunks/roving-index-BuO0tTba.js";
6
- var _ = Object.defineProperty, w = Object.getOwnPropertyDescriptor, n = (e, t, o, a) => {
7
- for (var s = a > 1 ? void 0 : a ? w(t, o) : t, i = e.length - 1, l; i >= 0; i--)
8
- (l = e[i]) && (s = (a ? l(t, o, s) : l(s)) || s);
9
- return a && s && _(t, o, s), s;
6
+ var _ = Object.defineProperty, w = Object.getOwnPropertyDescriptor, n = (e, t, a, o) => {
7
+ for (var s = o > 1 ? void 0 : o ? w(t, a) : t, r = e.length - 1, l; r >= 0; r--)
8
+ (l = e[r]) && (s = (o ? l(t, a, s) : l(s)) || s);
9
+ return o && s && _(t, a, s), s;
10
10
  };
11
- let r = class extends m {
11
+ let i = class extends m {
12
12
  constructor() {
13
13
  super(...arguments), this.open = !1, this.placeholder = "Type a command or search...", this.commands = [], this.value = "", this.emptyText = "No results found.", this.loading = !1, this._activeIndex = 0, this._focusTrap = new y();
14
14
  }
@@ -35,17 +35,17 @@ let r = class extends m {
35
35
  const e = this.value.toLowerCase().trim();
36
36
  return e ? this.commands.filter((t) => {
37
37
  if (t.disabled) return !1;
38
- const o = t.label.toLowerCase(), a = (t.keywords || []).join(" ").toLowerCase();
39
- return o.includes(e) || a.includes(e);
38
+ const a = t.label.toLowerCase(), o = (t.keywords || []).join(" ").toLowerCase();
39
+ return a.includes(e) || o.includes(e);
40
40
  }) : this.commands;
41
41
  }
42
42
  get _groupedCommands() {
43
43
  const e = this._filteredCommands, t = /* @__PURE__ */ new Map();
44
- for (const o of e) {
45
- const a = o.group || "";
46
- t.has(a) || t.set(a, []), t.get(a).push(o);
44
+ for (const a of e) {
45
+ const o = a.group || "";
46
+ t.has(o) || t.set(o, []), t.get(o).push(a);
47
47
  }
48
- return Array.from(t.entries()).map(([o, a]) => ({ group: o, items: a }));
48
+ return Array.from(t.entries()).map(([a, o]) => ({ group: a, items: o }));
49
49
  }
50
50
  _handleInput(e) {
51
51
  this.value = e.target.value, this._activeIndex = 0, this.dispatchEvent(new CustomEvent("cg-command-input", {
@@ -56,12 +56,12 @@ let r = class extends m {
56
56
  }
57
57
  _handleKeydown(e) {
58
58
  if (e.key === " ") return;
59
- const { index: t, handled: o } = x(e, {
59
+ const { index: t, handled: a } = x(e, {
60
60
  items: this._filteredCommands,
61
61
  activeIndex: this._activeIndex,
62
- onSelect: (a) => this._select(a)
62
+ onSelect: (o) => this._select(o)
63
63
  });
64
- o && (e.preventDefault(), this._activeIndex = t);
64
+ a && (e.preventDefault(), this._activeIndex = t);
65
65
  }
66
66
  _select(e) {
67
67
  e.disabled || (this.dispatchEvent(new CustomEvent("cg-command-select", {
@@ -72,7 +72,7 @@ let r = class extends m {
72
72
  }
73
73
  render() {
74
74
  const e = this._groupedCommands, t = this._filteredCommands;
75
- let o = -1;
75
+ let a = -1;
76
76
  return c`
77
77
  <div class="backdrop" @click=${() => this.open = !1}></div>
78
78
  <div
@@ -90,6 +90,7 @@ let r = class extends m {
90
90
  role="combobox"
91
91
  aria-expanded=${this.open ? "true" : "false"}
92
92
  aria-controls="command-list"
93
+ aria-activedescendant=${this.open && t.length ? `command-opt-${this._activeIndex}` : p}
93
94
  aria-autocomplete="list"
94
95
  placeholder=${this.placeholder}
95
96
  .value=${this.value}
@@ -97,7 +98,7 @@ let r = class extends m {
97
98
  @keydown=${this._handleKeydown}
98
99
  />
99
100
  </div>
100
- <div class="list" id="command-list" role="listbox">
101
+ <div class="list" id="command-list" role="listbox" aria-label="Commands">
101
102
  ${this.loading ? c`
102
103
  <div class="loading" aria-busy="true">
103
104
  <cg-spinner size="sm"></cg-spinner>
@@ -107,26 +108,27 @@ let r = class extends m {
107
108
  <slot name="empty">
108
109
  <div class="empty">${this.emptyText}</div>
109
110
  </slot>
110
- ` : e.map(({ group: a, items: s }) => c`
111
- ${a ? c`<div class="group-label">${a}</div>` : p}
112
- ${s.map((i) => {
113
- o++;
114
- const l = o === this._activeIndex;
111
+ ` : e.map(({ group: o, items: s }) => c`
112
+ ${o ? c`<div class="group-label">${o}</div>` : p}
113
+ ${s.map((r) => {
114
+ a++;
115
+ const l = a === this._activeIndex;
115
116
  return c`
116
117
  <button
117
118
  class="item"
119
+ id=${`command-opt-${a}`}
118
120
  role="option"
119
- ?disabled=${i.disabled}
121
+ ?disabled=${r.disabled}
120
122
  aria-selected=${l ? "true" : "false"}
121
123
  data-active=${l ? "true" : p}
122
- @click=${() => this._select(i)}
124
+ @click=${() => this._select(r)}
123
125
  @mouseenter=${() => {
124
- this._activeIndex = o;
126
+ this._activeIndex = a;
125
127
  }}
126
128
  >
127
- ${i.icon ? c`<cg-icon class="item-icon" name=${i.icon} size="sm" aria-hidden="true"></cg-icon>` : p}
128
- <span class="item-label">${i.label}</span>
129
- ${i.shortcut ? c`<span class="shortcut">${i.shortcut}</span>` : p}
129
+ ${r.icon ? c`<cg-icon class="item-icon" name=${r.icon} size="sm" aria-hidden="true"></cg-icon>` : p}
130
+ <span class="item-label">${r.label}</span>
131
+ ${r.shortcut ? c`<span class="shortcut">${r.shortcut}</span>` : p}
130
132
  </button>
131
133
  `;
132
134
  })}
@@ -137,7 +139,7 @@ let r = class extends m {
137
139
  `;
138
140
  }
139
141
  };
140
- r.styles = [f, b, u`
142
+ i.styles = [f, b, u`
141
143
  :host {
142
144
  display: contents;
143
145
  }
@@ -250,13 +252,18 @@ r.styles = [f, b, u`
250
252
  background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),
251
253
  color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
252
254
  }
253
- /* Hover (mouse) AND data-active (keyboard) get the same treatment so both
254
- input methods feel instant no waiting for a state-driven re-render. */
255
+ /* Hover (mouse) AND data-active (keyboard) share the background so both
256
+ input methods feel instant. The keyboard-active row additionally gets
257
+ an accent left bar so the item Enter will trigger is unmistakable in a
258
+ palette (a faint gray fill alone was too easy to lose track of). */
255
259
  .item:hover:not([disabled]),
256
260
  .item[data-active]:not([disabled]) {
257
261
  background: var(--cg-color-action-tertiary-background-hover);
258
262
  color: var(--cg-color-surface-base-text);
259
263
  }
264
+ .item[data-active]:not([disabled]) {
265
+ box-shadow: inset var(--cg-spacing-2) 0 0 0 var(--cg-color-action-primary-background-default);
266
+ }
260
267
  .item:active:not([disabled]) {
261
268
  transform: scale(var(--cg-interaction-press-scale));
262
269
  }
@@ -305,35 +312,35 @@ r.styles = [f, b, u`
305
312
  `];
306
313
  n([
307
314
  d({ type: Boolean, reflect: !0 })
308
- ], r.prototype, "open", 2);
315
+ ], i.prototype, "open", 2);
309
316
  n([
310
317
  d()
311
- ], r.prototype, "placeholder", 2);
318
+ ], i.prototype, "placeholder", 2);
312
319
  n([
313
320
  d({ type: Array })
314
- ], r.prototype, "commands", 2);
321
+ ], i.prototype, "commands", 2);
315
322
  n([
316
323
  d()
317
- ], r.prototype, "value", 2);
324
+ ], i.prototype, "value", 2);
318
325
  n([
319
326
  d({ attribute: "empty-text" })
320
- ], r.prototype, "emptyText", 2);
327
+ ], i.prototype, "emptyText", 2);
321
328
  n([
322
329
  d({ type: Boolean })
323
- ], r.prototype, "loading", 2);
330
+ ], i.prototype, "loading", 2);
324
331
  n([
325
332
  v()
326
- ], r.prototype, "_activeIndex", 2);
333
+ ], i.prototype, "_activeIndex", 2);
327
334
  n([
328
335
  g("input")
329
- ], r.prototype, "_inputEl", 2);
336
+ ], i.prototype, "_inputEl", 2);
330
337
  n([
331
338
  g(".palette")
332
- ], r.prototype, "_paletteEl", 2);
333
- r = n([
339
+ ], i.prototype, "_paletteEl", 2);
340
+ i = n([
334
341
  h("cg-command")
335
- ], r);
342
+ ], i);
336
343
  export {
337
- r as CgCommand
344
+ i as CgCommand
338
345
  };
339
346
  //# sourceMappingURL=cg-command.js.map