@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,332 +0,0 @@
1
- import { css as h, LitElement as g, html as a, nothing as p } from "lit";
2
- import { property as d, state as f, customElement as u } from "lit/decorators.js";
3
- import { h as m, r as v } from "../../chunks/premium.css-9I4kHrsl.js";
4
- import "../cg-icon/cg-icon.js";
5
- import "../cg-tooltip/cg-tooltip.js";
6
- var b = Object.defineProperty, y = Object.getOwnPropertyDescriptor, r = (t, e, i, n) => {
7
- for (var s = n > 1 ? void 0 : n ? y(e, i) : e, c = t.length - 1, l; c >= 0; c--)
8
- (l = t[c]) && (s = (n ? l(e, i, s) : l(s)) || s);
9
- return n && s && b(e, i, s), s;
10
- };
11
- let o = class extends g {
12
- constructor() {
13
- super(...arguments), this.direction = "horizontal", this.align = "start", this.size = "md", this.bordered = !1, this.striped = !1, this.compact = !1, this.label = "", this.items = [], this._copiedIndex = -1;
14
- }
15
- async _copy(t, e) {
16
- if (e)
17
- try {
18
- await navigator.clipboard.writeText(e), this._copiedIndex = t, this.dispatchEvent(new CustomEvent("cg-definition-copy", {
19
- bubbles: !0,
20
- composed: !0,
21
- detail: { term: this.items[t]?.term, value: e }
22
- })), setTimeout(() => {
23
- this._copiedIndex = -1;
24
- }, 1500);
25
- } catch {
26
- }
27
- }
28
- _renderItem(t, e) {
29
- const i = t.definition == null ? "" : String(t.definition), n = t.tooltip ? a`<cg-tooltip content=${t.tooltip} position="top"><span>${t.term}</span></cg-tooltip>` : t.term;
30
- return a`
31
- <div class="row">
32
- <dt part="term">${n}</dt>
33
- <dd part="value">
34
- <span class="dd-content">
35
- <span class="dd-value ${i ? "" : "dd-empty"}">${i || "—"}</span>
36
- ${t.copyable && i ? a`
37
- <button
38
- type="button"
39
- class="copy-btn ${this._copiedIndex === e ? "copied" : ""}"
40
- part="copy-button"
41
- aria-label="Copy ${t.term}"
42
- @click=${() => this._copy(e, i)}
43
- >
44
- <cg-icon name=${this._copiedIndex === e ? "check" : "copy"} size="xs"></cg-icon>
45
- </button>
46
- ` : p}
47
- </span>
48
- </dd>
49
- </div>
50
- `;
51
- }
52
- render() {
53
- return a`
54
- <dl part="list" aria-label=${this.label || p}>
55
- ${this.items.map((t, e) => this._renderItem(t, e))}
56
- <slot></slot>
57
- </dl>
58
- `;
59
- }
60
- };
61
- o.styles = [m, v, h`
62
- :host { display: block; }
63
-
64
- dl {
65
- display: grid;
66
- /* Term column: minimum 128px so short labels (MRR, Plan) get the
67
- same breathing room as long labels (Account ID, Member since).
68
- Caps at max-content so a really long label can still expand the
69
- column. Gives a consistent visual rail between term and value. */
70
- grid-template-columns: minmax(var(--cg-component-definition-list-term-width, var(--cg-spacing-128)), max-content) 1fr;
71
- column-gap: var(--cg-spacing-24);
72
- row-gap: var(--cg-spacing-8);
73
- margin: 0;
74
- padding: 0;
75
- }
76
-
77
- :host([direction="vertical"]) dl {
78
- grid-template-columns: 1fr;
79
- row-gap: var(--cg-spacing-4);
80
- }
81
-
82
- /* Density via size — controls row gap + column-gap + font-size.
83
- compact is a legacy alias for size="sm" gaps but keeps font-size. */
84
- :host([size="sm"]) dl { row-gap: var(--cg-spacing-4); column-gap: var(--cg-spacing-16); }
85
- :host([size="lg"]) dl { row-gap: var(--cg-spacing-12); column-gap: var(--cg-spacing-32); }
86
- :host([compact]) dl { row-gap: var(--cg-spacing-4); column-gap: var(--cg-spacing-16); }
87
-
88
- /* Bordered variant — wraps the dl in a card-like container with
89
- 24px padding and row dividers. */
90
- :host([bordered]) dl {
91
- border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);
92
- border-radius: var(--cg-component-card-radius);
93
- background: var(--cg-color-surface-cards-background);
94
- padding: var(--cg-component-definition-list-padding, var(--cg-spacing-24));
95
- row-gap: 0;
96
- /* CRITICAL: column-gap must be 0 so the row dividers (border-top
97
- on each dt and each dd) touch in the middle and form ONE
98
- continuous line across the row. The horizontal space between
99
- term and value comes from per-cell padding instead. */
100
- column-gap: 0;
101
- }
102
-
103
- /* Per-cell padding takes over from grid gap. dt gets right padding
104
- (the visual gap between term and value, matching the non-bordered
105
- column-gap of 24px); both get vertical padding for breathing room
106
- around the divider line.
107
- Note: items[] path now wraps each pair in <div class="row">, so
108
- :first-of-type / :nth-of-type selectors on dt/dd no longer
109
- distinguish rows (every dt is the only-of-type inside its row).
110
- For the items[] path we target .row:first-child / :last-child /
111
- :not(:first-child) instead. Slotted path has no wrapper, so the
112
- original :first-of-type rules still work for it. */
113
- :host([bordered]) dt,
114
- :host([bordered]) ::slotted(dt) {
115
- padding: var(--cg-spacing-12) var(--cg-spacing-24) var(--cg-spacing-12) 0;
116
- }
117
- :host([bordered]) dd,
118
- :host([bordered]) ::slotted(dd) {
119
- padding: var(--cg-spacing-12) 0;
120
- }
121
- /* First row sits flush with the card's top padding. Use
122
- :first-of-type/:last-of-type on .row (matches first/last <div>
123
- sibling regardless of the trailing <slot>). */
124
- :host([bordered]) .row:first-of-type > dt,
125
- :host([bordered]) .row:first-of-type > dd,
126
- :host([bordered]) ::slotted(dt:first-of-type),
127
- :host([bordered]) ::slotted(dd:first-of-type) {
128
- padding-top: 0;
129
- }
130
- /* Last row sits flush with the card's bottom padding. */
131
- :host([bordered]) .row:last-of-type > dt,
132
- :host([bordered]) .row:last-of-type > dd,
133
- :host([bordered]) ::slotted(dt:last-of-type),
134
- :host([bordered]) ::slotted(dd:last-of-type) {
135
- padding-bottom: 0;
136
- }
137
- /* The divider — drawn on every dt + dd EXCEPT the first row.
138
- With column-gap:0 the two cell borders meet exactly, reading as
139
- one continuous hairline spanning the full row. */
140
- :host([bordered]) .row:not(:first-of-type) > dt,
141
- :host([bordered]) .row:not(:first-of-type) > dd,
142
- :host([bordered]) ::slotted(dt:not(:first-of-type)),
143
- :host([bordered]) ::slotted(dd:not(:first-of-type)) {
144
- border-top: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);
145
- }
146
-
147
- /* align="between" — term hard-left, value hard-right (price-list).
148
- MUST use max-content for both columns: plain "auto" tracks grow
149
- to fill available space (auto = minmax(min-content, max-content)
150
- with stretching), defeating justify-content:space-between.
151
- max-content locks each column to its content's natural width, so
152
- leftover container space distributes between them.
153
- The visual right-alignment of the value comes from text-align:
154
- right on dd (works regardless of how the column resolves). */
155
- :host([align="between"][direction="horizontal"]) dl {
156
- grid-template-columns: max-content max-content;
157
- justify-content: space-between;
158
- }
159
- :host([align="between"][direction="horizontal"]) dd,
160
- :host([align="between"][direction="horizontal"]) ::slotted(dd) {
161
- text-align: right;
162
- }
163
- :host([align="between"][direction="horizontal"]) .dd-content {
164
- justify-content: flex-end;
165
- }
166
-
167
- /* Striped — alternating row backgrounds. Both render paths target
168
- even-indexed rows (rows 2, 4, 6 in 1-indexed = rows 1, 3, 5 in
169
- 0-indexed) so they stay consistent.
170
- Items[] path: .row:nth-child(even) > dt/dd (the .row wrapper is
171
- a direct child of dl, so :nth-child(even) IS row 2/4/6).
172
- Slotted path: ::slotted(dt:nth-of-type(even)) — among slotted dt
173
- siblings, the even-position ones (2nd/4th/6th dt) = rows 2/4/6. */
174
- :host([striped]:not([bordered])) .row:nth-of-type(even) > dt,
175
- :host([striped]:not([bordered])) .row:nth-of-type(even) > dd,
176
- :host([striped]:not([bordered])) ::slotted(dt:nth-of-type(even)),
177
- :host([striped]:not([bordered])) ::slotted(dd:nth-of-type(even)) {
178
- background: var(--cg-color-surface-cards-emphasis);
179
- }
180
- :host([striped]:not([bordered])) ::slotted(dt),
181
- :host([striped]:not([bordered])) ::slotted(dd),
182
- :host([striped]:not([bordered])) dt,
183
- :host([striped]:not([bordered])) dd {
184
- padding: var(--cg-spacing-6) var(--cg-spacing-8);
185
- border-radius: var(--cg-border-radius-50);
186
- }
187
- /* When both bordered + striped, keep bordered's padding (already
188
- set above) and only paint the alternating background. The dividers
189
- still work because we're not overriding the border-top rules. */
190
- :host([bordered][striped]) .row:nth-of-type(even) > dt,
191
- :host([bordered][striped]) .row:nth-of-type(even) > dd,
192
- :host([bordered][striped]) ::slotted(dt:nth-of-type(even)),
193
- :host([bordered][striped]) ::slotted(dd:nth-of-type(even)) {
194
- background: var(--cg-color-surface-cards-emphasis);
195
- }
196
-
197
- /* Term + value typography — applies to both slotted dt/dd AND
198
- internally rendered dt/dd from the items[] prop. */
199
- ::slotted(dt),
200
- dt {
201
- color: var(--cg-color-input-text-placeholder);
202
- font-size: var(--cg-font-size-sm);
203
- font-weight: var(--cg-font-weight-medium);
204
- line-height: var(--cg-line-height-snug);
205
- margin: 0;
206
- width: var(--cg-component-definition-list-term-width, auto);
207
- }
208
-
209
- ::slotted(dd),
210
- dd {
211
- color: var(--cg-color-surface-cards-text);
212
- font-size: var(--cg-font-size-sm);
213
- line-height: var(--cg-line-height-snug);
214
- margin: 0;
215
- min-width: 0;
216
- word-break: break-word;
217
- }
218
-
219
- :host([size="sm"]) ::slotted(dt),
220
- :host([size="sm"]) dt,
221
- :host([size="sm"]) ::slotted(dd),
222
- :host([size="sm"]) dd { font-size: var(--cg-font-size-xs); }
223
-
224
- :host([size="lg"]) ::slotted(dt),
225
- :host([size="lg"]) dt,
226
- :host([size="lg"]) ::slotted(dd),
227
- :host([size="lg"]) dd { font-size: var(--cg-font-size-md); }
228
-
229
- /* Vertical layout: extra spacing between pairs. Uses gap from grid
230
- row-gap PLUS a margin-top on every dt that isn't the first one,
231
- so each pair is visually grouped (dt right above its dd) with a
232
- larger gap before the next dt. Applies to both render paths. */
233
- :host([direction="vertical"]) dt:not(:first-of-type),
234
- :host([direction="vertical"]) ::slotted(dt:not(:first-child)) {
235
- margin-top: var(--cg-spacing-8);
236
- }
237
-
238
- /* Row wrapper — used by the items[] render path to group each
239
- term+value pair into one logical row. display:contents keeps it
240
- invisible to grid layout (dt and dd act as direct grid children),
241
- while still giving us a sibling element to target for first/last
242
- row treatment via .row:first-of-type / :last-of-type / :nth-of-
243
- type(even). HTML5 allows <div> wrapping <dt><dd> pairs inside
244
- <dl> since 2020. */
245
- .row {
246
- display: contents;
247
- }
248
-
249
- /* dd in items[] path may contain a copy button + the value */
250
- .dd-content {
251
- display: inline-flex;
252
- align-items: center;
253
- gap: var(--cg-spacing-6);
254
- max-width: 100%;
255
- }
256
- .dd-value {
257
- flex: 1 1 auto;
258
- min-width: 0;
259
- }
260
- .dd-empty {
261
- color: var(--cg-color-input-text-placeholder);
262
- }
263
-
264
- /* Copy button — visible on the SAME row's hover or focus (clean by
265
- default). Per-row reveal via .dd-content:hover scoping; previously
266
- used dl:hover which lit up every button when any part of the dl
267
- was hovered. */
268
- .copy-btn {
269
- flex: 0 0 auto;
270
- display: inline-flex;
271
- align-items: center;
272
- justify-content: center;
273
- width: var(--cg-spacing-20);
274
- height: var(--cg-spacing-20);
275
- padding: 0;
276
- border: none;
277
- background: transparent;
278
- color: var(--cg-color-input-text-placeholder);
279
- border-radius: var(--cg-border-radius-50);
280
- cursor: pointer;
281
- opacity: 0;
282
- transition:
283
- opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),
284
- color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),
285
- background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
286
- }
287
- dd:hover .copy-btn,
288
- .copy-btn:focus-visible { opacity: 1; }
289
- .copy-btn:hover {
290
- color: var(--cg-color-surface-cards-text);
291
- background: var(--cg-color-action-tertiary-background-hover);
292
- }
293
- .copy-btn:focus-visible {
294
- outline: none;
295
- box-shadow: 0 0 0 var(--cg-border-width-300) var(--cg-color-focus-ring);
296
- }
297
- .copy-btn.copied { color: var(--cg-color-status-success-text-default); opacity: 1; }
298
- `];
299
- r([
300
- d({ reflect: !0 })
301
- ], o.prototype, "direction", 2);
302
- r([
303
- d({ reflect: !0 })
304
- ], o.prototype, "align", 2);
305
- r([
306
- d({ reflect: !0 })
307
- ], o.prototype, "size", 2);
308
- r([
309
- d({ type: Boolean, reflect: !0 })
310
- ], o.prototype, "bordered", 2);
311
- r([
312
- d({ type: Boolean, reflect: !0 })
313
- ], o.prototype, "striped", 2);
314
- r([
315
- d({ type: Boolean, reflect: !0 })
316
- ], o.prototype, "compact", 2);
317
- r([
318
- d()
319
- ], o.prototype, "label", 2);
320
- r([
321
- d({ type: Array })
322
- ], o.prototype, "items", 2);
323
- r([
324
- f()
325
- ], o.prototype, "_copiedIndex", 2);
326
- o = r([
327
- u("cg-definition-list")
328
- ], o);
329
- export {
330
- o as CgDefinitionList
331
- };
332
- //# sourceMappingURL=cg-definition-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cg-definition-list.js","sources":["../../../src/components/cg-definition-list/cg-definition-list.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\nimport '../cg-icon/cg-icon.js';\nimport '../cg-tooltip/cg-tooltip.js';\n\ninterface DefinitionItem {\n /** Term (label) shown on the left / above. */\n term: string;\n /** Definition value. Strings render as text; consumers wanting markup should use the slot API instead. */\n definition?: unknown;\n /** Show a copy-to-clipboard button next to the value. Visible on row hover. */\n copyable?: boolean;\n /** Optional tooltip on the term (helpful for shorthand specs like SLA, MAU). */\n tooltip?: string;\n}\n\n/**\n * @element cg-definition-list\n * Semantic key/value list rendered as a real `<dl>` so screen readers\n * expose proper term/definition pairing. Supports two render paths:\n *\n * 1. Slot in `<dt>` and `<dd>` directly (rich values, full control):\n * ```html\n * <cg-definition-list bordered>\n * <dt>Plan</dt>\n * <dd><cg-badge variant=\"accent\">Pro</cg-badge></dd>\n * <dt>Status</dt>\n * <dd><cg-badge variant=\"success\">Active</cg-badge></dd>\n * </cg-definition-list>\n * ```\n *\n * 2. Pass `.items=[...]` for quick data-driven render with built-in\n * copy buttons + label tooltips:\n * ```html\n * <cg-definition-list bordered .items=${[\n * { term: 'Plan', definition: 'Pro' },\n * { term: 'Email', definition: 'alice@example.com', copyable: true },\n * { term: 'API key', definition: 'sk_live_abc', copyable: true, tooltip: 'Read-write key' },\n * ]}></cg-definition-list>\n * ```\n *\n * Two layouts (`direction`):\n * - `horizontal` (default) — term : value side-by-side (spec sheet)\n * - `vertical` — term above value (form / detail view)\n *\n * For tag-chip / metadata-line use cases (e.g. \"CPU: 8 cores · RAM: 32 GB\"),\n * compose <cg-chip> or <cg-text> directly — they give finer control than\n * a description list pretending to be a chip strip.\n *\n * Two alignments (`align`, horizontal mode only):\n * - `start` (default) — term and value sit adjacent on the left\n * - `between` — term hard-left, value hard-right (price-list)\n *\n * Variants: `bordered` (outer card + 24px padding + row dividers),\n * `striped` (alternating row backgrounds for long lists), `size`\n * (sm/md/lg density).\n *\n * @slot - `<dt>` and `<dd>` pairs.\n *\n * @csspart list - The inner `<dl>` element\n * @csspart term - Each `<dt>` rendered from items[] (slotted dt/dd cannot be parted from outside the shadow boundary; use ::slotted() or wrap them)\n * @csspart value - Each `<dd>` rendered from items[]\n * @csspart copy-button - The copy-to-clipboard button on copyable items\n *\n * @fires {CustomEvent<{term, value}>} cg-definition-copy - Fired when a copyable item is copied.\n *\n * @cssprop --cg-component-definition-list-padding - Wrapper padding when bordered (default 24px)\n * @cssprop --cg-component-definition-list-term-width - Term column width in horizontal mode (default auto)\n */\n@customElement('cg-definition-list')\nexport class CgDefinitionList extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host { display: block; }\n\n dl {\n display: grid;\n /* Term column: minimum 128px so short labels (MRR, Plan) get the\n same breathing room as long labels (Account ID, Member since).\n Caps at max-content so a really long label can still expand the\n column. Gives a consistent visual rail between term and value. */\n grid-template-columns: minmax(var(--cg-component-definition-list-term-width, var(--cg-spacing-128)), max-content) 1fr;\n column-gap: var(--cg-spacing-24);\n row-gap: var(--cg-spacing-8);\n margin: 0;\n padding: 0;\n }\n\n :host([direction=\"vertical\"]) dl {\n grid-template-columns: 1fr;\n row-gap: var(--cg-spacing-4);\n }\n\n /* Density via size — controls row gap + column-gap + font-size.\n compact is a legacy alias for size=\"sm\" gaps but keeps font-size. */\n :host([size=\"sm\"]) dl { row-gap: var(--cg-spacing-4); column-gap: var(--cg-spacing-16); }\n :host([size=\"lg\"]) dl { row-gap: var(--cg-spacing-12); column-gap: var(--cg-spacing-32); }\n :host([compact]) dl { row-gap: var(--cg-spacing-4); column-gap: var(--cg-spacing-16); }\n\n /* Bordered variant — wraps the dl in a card-like container with\n 24px padding and row dividers. */\n :host([bordered]) dl {\n border: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n border-radius: var(--cg-component-card-radius);\n background: var(--cg-color-surface-cards-background);\n padding: var(--cg-component-definition-list-padding, var(--cg-spacing-24));\n row-gap: 0;\n /* CRITICAL: column-gap must be 0 so the row dividers (border-top\n on each dt and each dd) touch in the middle and form ONE\n continuous line across the row. The horizontal space between\n term and value comes from per-cell padding instead. */\n column-gap: 0;\n }\n\n /* Per-cell padding takes over from grid gap. dt gets right padding\n (the visual gap between term and value, matching the non-bordered\n column-gap of 24px); both get vertical padding for breathing room\n around the divider line.\n Note: items[] path now wraps each pair in <div class=\"row\">, so\n :first-of-type / :nth-of-type selectors on dt/dd no longer\n distinguish rows (every dt is the only-of-type inside its row).\n For the items[] path we target .row:first-child / :last-child /\n :not(:first-child) instead. Slotted path has no wrapper, so the\n original :first-of-type rules still work for it. */\n :host([bordered]) dt,\n :host([bordered]) ::slotted(dt) {\n padding: var(--cg-spacing-12) var(--cg-spacing-24) var(--cg-spacing-12) 0;\n }\n :host([bordered]) dd,\n :host([bordered]) ::slotted(dd) {\n padding: var(--cg-spacing-12) 0;\n }\n /* First row sits flush with the card's top padding. Use\n :first-of-type/:last-of-type on .row (matches first/last <div>\n sibling regardless of the trailing <slot>). */\n :host([bordered]) .row:first-of-type > dt,\n :host([bordered]) .row:first-of-type > dd,\n :host([bordered]) ::slotted(dt:first-of-type),\n :host([bordered]) ::slotted(dd:first-of-type) {\n padding-top: 0;\n }\n /* Last row sits flush with the card's bottom padding. */\n :host([bordered]) .row:last-of-type > dt,\n :host([bordered]) .row:last-of-type > dd,\n :host([bordered]) ::slotted(dt:last-of-type),\n :host([bordered]) ::slotted(dd:last-of-type) {\n padding-bottom: 0;\n }\n /* The divider — drawn on every dt + dd EXCEPT the first row.\n With column-gap:0 the two cell borders meet exactly, reading as\n one continuous hairline spanning the full row. */\n :host([bordered]) .row:not(:first-of-type) > dt,\n :host([bordered]) .row:not(:first-of-type) > dd,\n :host([bordered]) ::slotted(dt:not(:first-of-type)),\n :host([bordered]) ::slotted(dd:not(:first-of-type)) {\n border-top: var(--cg-border-width-50) solid var(--cg-color-surface-cards-border);\n }\n\n /* align=\"between\" — term hard-left, value hard-right (price-list).\n MUST use max-content for both columns: plain \"auto\" tracks grow\n to fill available space (auto = minmax(min-content, max-content)\n with stretching), defeating justify-content:space-between.\n max-content locks each column to its content's natural width, so\n leftover container space distributes between them.\n The visual right-alignment of the value comes from text-align:\n right on dd (works regardless of how the column resolves). */\n :host([align=\"between\"][direction=\"horizontal\"]) dl {\n grid-template-columns: max-content max-content;\n justify-content: space-between;\n }\n :host([align=\"between\"][direction=\"horizontal\"]) dd,\n :host([align=\"between\"][direction=\"horizontal\"]) ::slotted(dd) {\n text-align: right;\n }\n :host([align=\"between\"][direction=\"horizontal\"]) .dd-content {\n justify-content: flex-end;\n }\n\n /* Striped — alternating row backgrounds. Both render paths target\n even-indexed rows (rows 2, 4, 6 in 1-indexed = rows 1, 3, 5 in\n 0-indexed) so they stay consistent.\n Items[] path: .row:nth-child(even) > dt/dd (the .row wrapper is\n a direct child of dl, so :nth-child(even) IS row 2/4/6).\n Slotted path: ::slotted(dt:nth-of-type(even)) — among slotted dt\n siblings, the even-position ones (2nd/4th/6th dt) = rows 2/4/6. */\n :host([striped]:not([bordered])) .row:nth-of-type(even) > dt,\n :host([striped]:not([bordered])) .row:nth-of-type(even) > dd,\n :host([striped]:not([bordered])) ::slotted(dt:nth-of-type(even)),\n :host([striped]:not([bordered])) ::slotted(dd:nth-of-type(even)) {\n background: var(--cg-color-surface-cards-emphasis);\n }\n :host([striped]:not([bordered])) ::slotted(dt),\n :host([striped]:not([bordered])) ::slotted(dd),\n :host([striped]:not([bordered])) dt,\n :host([striped]:not([bordered])) dd {\n padding: var(--cg-spacing-6) var(--cg-spacing-8);\n border-radius: var(--cg-border-radius-50);\n }\n /* When both bordered + striped, keep bordered's padding (already\n set above) and only paint the alternating background. The dividers\n still work because we're not overriding the border-top rules. */\n :host([bordered][striped]) .row:nth-of-type(even) > dt,\n :host([bordered][striped]) .row:nth-of-type(even) > dd,\n :host([bordered][striped]) ::slotted(dt:nth-of-type(even)),\n :host([bordered][striped]) ::slotted(dd:nth-of-type(even)) {\n background: var(--cg-color-surface-cards-emphasis);\n }\n\n /* Term + value typography — applies to both slotted dt/dd AND\n internally rendered dt/dd from the items[] prop. */\n ::slotted(dt),\n dt {\n color: var(--cg-color-input-text-placeholder);\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-medium);\n line-height: var(--cg-line-height-snug);\n margin: 0;\n width: var(--cg-component-definition-list-term-width, auto);\n }\n\n ::slotted(dd),\n dd {\n color: var(--cg-color-surface-cards-text);\n font-size: var(--cg-font-size-sm);\n line-height: var(--cg-line-height-snug);\n margin: 0;\n min-width: 0;\n word-break: break-word;\n }\n\n :host([size=\"sm\"]) ::slotted(dt),\n :host([size=\"sm\"]) dt,\n :host([size=\"sm\"]) ::slotted(dd),\n :host([size=\"sm\"]) dd { font-size: var(--cg-font-size-xs); }\n\n :host([size=\"lg\"]) ::slotted(dt),\n :host([size=\"lg\"]) dt,\n :host([size=\"lg\"]) ::slotted(dd),\n :host([size=\"lg\"]) dd { font-size: var(--cg-font-size-md); }\n\n /* Vertical layout: extra spacing between pairs. Uses gap from grid\n row-gap PLUS a margin-top on every dt that isn't the first one,\n so each pair is visually grouped (dt right above its dd) with a\n larger gap before the next dt. Applies to both render paths. */\n :host([direction=\"vertical\"]) dt:not(:first-of-type),\n :host([direction=\"vertical\"]) ::slotted(dt:not(:first-child)) {\n margin-top: var(--cg-spacing-8);\n }\n\n /* Row wrapper — used by the items[] render path to group each\n term+value pair into one logical row. display:contents keeps it\n invisible to grid layout (dt and dd act as direct grid children),\n while still giving us a sibling element to target for first/last\n row treatment via .row:first-of-type / :last-of-type / :nth-of-\n type(even). HTML5 allows <div> wrapping <dt><dd> pairs inside\n <dl> since 2020. */\n .row {\n display: contents;\n }\n\n /* dd in items[] path may contain a copy button + the value */\n .dd-content {\n display: inline-flex;\n align-items: center;\n gap: var(--cg-spacing-6);\n max-width: 100%;\n }\n .dd-value {\n flex: 1 1 auto;\n min-width: 0;\n }\n .dd-empty {\n color: var(--cg-color-input-text-placeholder);\n }\n\n /* Copy button — visible on the SAME row's hover or focus (clean by\n default). Per-row reveal via .dd-content:hover scoping; previously\n used dl:hover which lit up every button when any part of the dl\n was hovered. */\n .copy-btn {\n flex: 0 0 auto;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--cg-spacing-20);\n height: var(--cg-spacing-20);\n padding: 0;\n border: none;\n background: transparent;\n color: var(--cg-color-input-text-placeholder);\n border-radius: var(--cg-border-radius-50);\n cursor: pointer;\n opacity: 0;\n transition:\n opacity var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n dd:hover .copy-btn,\n .copy-btn:focus-visible { opacity: 1; }\n .copy-btn:hover {\n color: var(--cg-color-surface-cards-text);\n background: var(--cg-color-action-tertiary-background-hover);\n }\n .copy-btn:focus-visible {\n outline: none;\n box-shadow: 0 0 0 var(--cg-border-width-300) var(--cg-color-focus-ring);\n }\n .copy-btn.copied { color: var(--cg-color-status-success-text-default); opacity: 1; }\n `];\n\n /** Layout direction. */\n @property({ reflect: true }) direction: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Term/value alignment in horizontal mode:\n * start (default) — term and value sit adjacent on the left (spec sheet)\n * between — term on the far left, value pushed to the far right (price-list)\n * No-op outside horizontal direction.\n */\n @property({ reflect: true }) align: 'start' | 'between' = 'start';\n\n /** Density. */\n @property({ reflect: true }) size: 'sm' | 'md' | 'lg' = 'md';\n\n /** Show outer card border + 24px wrapper padding + row dividers. */\n @property({ type: Boolean, reflect: true }) bordered = false;\n\n /** Alternating row backgrounds for long lists. */\n @property({ type: Boolean, reflect: true }) striped = false;\n\n /** Legacy: tighter gaps. Prefer `size=\"sm\"`. */\n @property({ type: Boolean, reflect: true }) compact = false;\n\n /** Accessible label announced on the <dl>. */\n @property() label = '';\n\n /** Optional data-driven items. Slotted dt/dd still render after these. */\n @property({ type: Array }) items: DefinitionItem[] = [];\n\n @state() private _copiedIndex = -1;\n\n private async _copy(index: number, value: string) {\n if (!value) return;\n try {\n await navigator.clipboard.writeText(value);\n this._copiedIndex = index;\n this.dispatchEvent(new CustomEvent('cg-definition-copy', {\n bubbles: true, composed: true,\n detail: { term: this.items[index]?.term, value },\n }));\n setTimeout(() => { this._copiedIndex = -1; }, 1500);\n } catch {\n // Clipboard blocked — silent fail.\n }\n }\n\n private _renderItem(it: DefinitionItem, i: number) {\n const valueText = it.definition == null ? '' : String(it.definition);\n const term = it.tooltip\n ? html`<cg-tooltip content=${it.tooltip} position=\"top\"><span>${it.term}</span></cg-tooltip>`\n : it.term;\n /* Wrapper div is display:contents in grid modes (transparent to the\n grid; dt/dd act as direct grid children), and inline-flex chip in\n inline mode. HTML5 allows <div> wrapping dt/dd pairs inside <dl>.\n Striped + bordered styling targets .row:nth-child() since each\n .row is a direct child of dl. */\n return html`\n <div class=\"row\">\n <dt part=\"term\">${term}</dt>\n <dd part=\"value\">\n <span class=\"dd-content\">\n <span class=\"dd-value ${valueText ? '' : 'dd-empty'}\">${valueText || '—'}</span>\n ${it.copyable && valueText ? html`\n <button\n type=\"button\"\n class=\"copy-btn ${this._copiedIndex === i ? 'copied' : ''}\"\n part=\"copy-button\"\n aria-label=\"Copy ${it.term}\"\n @click=${() => this._copy(i, valueText)}\n >\n <cg-icon name=${this._copiedIndex === i ? 'check' : 'copy'} size=\"xs\"></cg-icon>\n </button>\n ` : nothing}\n </span>\n </dd>\n </div>\n `;\n }\n\n override render() {\n return html`\n <dl part=\"list\" aria-label=${this.label || nothing}>\n ${this.items.map((it, i) => this._renderItem(it, i))}\n <slot></slot>\n </dl>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-definition-list': CgDefinitionList;\n }\n}\n"],"names":["CgDefinitionList","LitElement","index","value","it","i","valueText","term","html","nothing","hostBlock","reducedMotion","css","__decorateClass","property","state","customElement"],"mappings":";;;;;;;;;;AAuEO,IAAMA,IAAN,cAA+BC,EAAW;AAAA,EAA1C,cAAA;AAAA,UAAA,GAAA,SAAA,GAiPwB,KAAA,YAAuC,cAQvC,KAAA,QAA6B,SAG7B,KAAA,OAA2B,MAGZ,KAAA,WAAW,IAGX,KAAA,UAAU,IAGV,KAAA,UAAU,IAG1C,KAAA,QAAQ,IAGO,KAAA,QAA0B,CAAA,GAE5C,KAAQ,eAAe;AAAA,EAAA;AAAA,EAEhC,MAAc,MAAMC,GAAeC,GAAe;AAChD,QAAKA;AACL,UAAI;AACF,cAAM,UAAU,UAAU,UAAUA,CAAK,GACzC,KAAK,eAAeD,GACpB,KAAK,cAAc,IAAI,YAAY,sBAAsB;AAAA,UACvD,SAAS;AAAA,UAAM,UAAU;AAAA,UACzB,QAAQ,EAAE,MAAM,KAAK,MAAMA,CAAK,GAAG,MAAM,OAAAC,EAAA;AAAA,QAAM,CAChD,CAAC,GACF,WAAW,MAAM;AAAE,eAAK,eAAe;AAAA,QAAI,GAAG,IAAI;AAAA,MACpD,QAAQ;AAAA,MAER;AAAA,EACF;AAAA,EAEQ,YAAYC,GAAoBC,GAAW;AACjD,UAAMC,IAAYF,EAAG,cAAc,OAAO,KAAK,OAAOA,EAAG,UAAU,GAC7DG,IAAOH,EAAG,UACZI,wBAA2BJ,EAAG,OAAO,yBAAyBA,EAAG,IAAI,yBACrEA,EAAG;AAMP,WAAOI;AAAA;AAAA,0BAEeD,CAAI;AAAA;AAAA;AAAA,oCAGMD,IAAY,KAAK,UAAU,KAAKA,KAAa,GAAG;AAAA,cACtEF,EAAG,YAAYE,IAAYE;AAAA;AAAA;AAAA,kCAGP,KAAK,iBAAiBH,IAAI,WAAW,EAAE;AAAA;AAAA,mCAEtCD,EAAG,IAAI;AAAA,yBACjB,MAAM,KAAK,MAAMC,GAAGC,CAAS,CAAC;AAAA;AAAA,gCAEvB,KAAK,iBAAiBD,IAAI,UAAU,MAAM;AAAA;AAAA,gBAE1DI,CAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB;AAAA,EAES,SAAS;AAChB,WAAOD;AAAA,mCACwB,KAAK,SAASC,CAAO;AAAA,UAC9C,KAAK,MAAM,IAAI,CAACL,GAAIC,MAAM,KAAK,YAAYD,GAAIC,CAAC,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,EAI1D;AACF;AAvUaL,EACK,SAAS,CAACU,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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GA6OnD;AAG4BC,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAjPhBd,EAiPkB,WAAA,aAAA,CAAA;AAQAa,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GAzPhBd,EAyPkB,WAAA,SAAA,CAAA;AAGAa,EAAA;AAAA,EAA5BC,EAAS,EAAE,SAAS,GAAA,CAAM;AAAA,GA5PhBd,EA4PkB,WAAA,QAAA,CAAA;AAGea,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GA/P/Bd,EA+PiC,WAAA,YAAA,CAAA;AAGAa,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAlQ/Bd,EAkQiC,WAAA,WAAA,CAAA;AAGAa,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GArQ/Bd,EAqQiC,WAAA,WAAA,CAAA;AAGhCa,EAAA;AAAA,EAAXC,EAAA;AAAS,GAxQCd,EAwQC,WAAA,SAAA,CAAA;AAGea,EAAA;AAAA,EAA1BC,EAAS,EAAE,MAAM,MAAA,CAAO;AAAA,GA3Qdd,EA2QgB,WAAA,SAAA,CAAA;AAEVa,EAAA;AAAA,EAAhBE,EAAA;AAAM,GA7QIf,EA6QM,WAAA,gBAAA,CAAA;AA7QNA,IAANa,EAAA;AAAA,EADNG,EAAc,oBAAoB;AAAA,GACtBhB,CAAA;"}
@@ -1,53 +0,0 @@
1
- import { LitElement } from 'lit';
2
- /**
3
- * @element cg-draggable
4
- * Wraps content that can be picked up with a pointer and dropped on a
5
- * matching `<cg-droppable>`. Pointer-event-based — works on mouse, touch,
6
- * and stylus.
7
- *
8
- * Carries an opaque `payload` (object reference is preserved across the
9
- * drag) and a `type` tag that the droppable filters on. The dragged
10
- * element is visually translated under the pointer; a `dragging` attribute
11
- * on the host lets consumers style the source state.
12
- *
13
- * @example
14
- * ```html
15
- * <cg-draggable type="card" .payload=${cardData}>
16
- * <cg-card>…</cg-card>
17
- * </cg-draggable>
18
- * ```
19
- *
20
- * @slot - The draggable content.
21
- *
22
- * @fires {CustomEvent<{type: string, payload: unknown}>} cg-drag-start - Drag begins
23
- * @fires {CustomEvent<{type: string, payload: unknown, dropped: boolean}>} cg-drag-end - Drag ends (with or without a successful drop)
24
- */
25
- export declare class CgDraggable extends LitElement {
26
- static styles: import('lit').CSSResult[];
27
- /** Identifier matched against cg-droppable.accepts. */
28
- type: string;
29
- /** Application payload passed to the droppable on drop. */
30
- payload: unknown;
31
- /** Disable picking up. */
32
- disabled: boolean;
33
- /** Reflects while a drag from this element is active. */
34
- dragging: boolean;
35
- private _origin;
36
- private _pointerId;
37
- private _onPointerDown;
38
- private _onPointerMove;
39
- private _onPointerUp;
40
- private _onPointerCancel;
41
- private _onKeyDown;
42
- private _finishDrag;
43
- private _cleanupAfterDrag;
44
- connectedCallback(): void;
45
- disconnectedCallback(): void;
46
- render(): import('lit').TemplateResult<1>;
47
- }
48
- declare global {
49
- interface HTMLElementTagNameMap {
50
- 'cg-draggable': CgDraggable;
51
- }
52
- }
53
- //# sourceMappingURL=cg-draggable.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cg-draggable.d.ts","sourceRoot":"","sources":["../../../src/components/cg-draggable/cg-draggable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAK5C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,4BAenB;IAEH,uDAAuD;IAC3C,IAAI,SAAM;IAEtB,2DAA2D;IAC3B,OAAO,EAAE,OAAO,CAAQ;IAExD,0BAA0B;IACkB,QAAQ,UAAS;IAE7D,yDAAyD;IACb,QAAQ,UAAS;IAEpD,OAAO,CAAC,OAAO,CAAyC;IAEjE,OAAO,CAAC,UAAU,CAAuB;IAEzC,OAAO,CAAC,cAAc,CAepB;IAEF,OAAO,CAAC,cAAc,CAMpB;IAEF,OAAO,CAAC,YAAY,CAGlB;IAEF,OAAO,CAAC,gBAAgB,CAGtB;IAEF,OAAO,CAAC,UAAU,CAMhB;IAEF,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,iBAAiB;IAehB,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;IAS5B,MAAM;CAGhB;AAmBD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
@@ -1,136 +0,0 @@
1
- import { css as h, LitElement as u, html as g } from "lit";
2
- import { property as l, state as f, customElement as v } from "lit/decorators.js";
3
- import { h as _, r as y } from "../../chunks/premium.css-9I4kHrsl.js";
4
- let r = null;
5
- function m() {
6
- return r !== null;
7
- }
8
- function E(t, e, n) {
9
- r || (r = t, document.dispatchEvent(new CustomEvent("cg-drag-start", {
10
- detail: { ...t, clientX: e, clientY: n }
11
- })));
12
- }
13
- function b(t, e) {
14
- r && document.dispatchEvent(new CustomEvent("cg-drag-move", {
15
- detail: { ...r, clientX: t, clientY: e }
16
- }));
17
- }
18
- function D(t, e, n) {
19
- if (!r) return null;
20
- const i = r;
21
- return document.dispatchEvent(new CustomEvent("cg-drag-end", {
22
- detail: { ...i, clientX: t, clientY: e, dropped: n }
23
- })), r = null, i;
24
- }
25
- function p() {
26
- r && (document.dispatchEvent(new CustomEvent("cg-drag-end", {
27
- detail: { ...r, clientX: -1, clientY: -1, dropped: !1 }
28
- })), r = null);
29
- }
30
- var w = Object.defineProperty, P = Object.getOwnPropertyDescriptor, a = (t, e, n, i) => {
31
- for (var s = i > 1 ? void 0 : i ? P(e, n) : e, c = t.length - 1, d; c >= 0; c--)
32
- (d = t[c]) && (s = (i ? d(e, n, s) : d(s)) || s);
33
- return i && s && w(e, n, s), s;
34
- };
35
- let o = class extends u {
36
- constructor() {
37
- super(...arguments), this.type = "", this.payload = null, this.disabled = !1, this.dragging = !1, this._origin = null, this._pointerId = null, this._onPointerDown = (t) => {
38
- if (!(this.disabled || m()) && !(t.button !== void 0 && t.button !== 0)) {
39
- this._pointerId = t.pointerId, this._origin = { x: t.clientX, y: t.clientY }, this.dragging = !0;
40
- try {
41
- this.setPointerCapture(t.pointerId);
42
- } catch {
43
- }
44
- E({ payload: this.payload, type: this.type, source: this }, t.clientX, t.clientY), this.dispatchEvent(new CustomEvent("cg-drag-start", {
45
- detail: { type: this.type, payload: this.payload },
46
- bubbles: !0,
47
- composed: !0
48
- }));
49
- }
50
- }, this._onPointerMove = (t) => {
51
- if (!this.dragging || t.pointerId !== this._pointerId || !this._origin) return;
52
- const e = t.clientX - this._origin.x, n = t.clientY - this._origin.y;
53
- this.style.transform = `translate(${e}px, ${n}px)`, b(t.clientX, t.clientY);
54
- }, this._onPointerUp = (t) => {
55
- !this.dragging || t.pointerId !== this._pointerId || this._finishDrag(t.clientX, t.clientY, !1);
56
- }, this._onPointerCancel = (t) => {
57
- !this.dragging || t.pointerId !== this._pointerId || this._finishDrag(t.clientX, t.clientY, !0);
58
- }, this._onKeyDown = (t) => {
59
- t.key === "Escape" && this.dragging && (t.preventDefault(), p(), this._cleanupAfterDrag(!1));
60
- };
61
- }
62
- _finishDrag(t, e, n) {
63
- if (n) {
64
- p(), this._cleanupAfterDrag(!1);
65
- return;
66
- }
67
- const i = C(t, e);
68
- this._cleanupAfterDrag(i);
69
- }
70
- _cleanupAfterDrag(t) {
71
- if (this.style.transform = "", this._pointerId !== null)
72
- try {
73
- this.releasePointerCapture(this._pointerId);
74
- } catch {
75
- }
76
- this.dragging = !1, this._pointerId = null, this._origin = null, this.dispatchEvent(new CustomEvent("cg-drag-end", {
77
- detail: { type: this.type, payload: this.payload, dropped: t },
78
- bubbles: !0,
79
- composed: !0
80
- }));
81
- }
82
- connectedCallback() {
83
- super.connectedCallback(), this.addEventListener("pointerdown", this._onPointerDown), this.addEventListener("pointermove", this._onPointerMove), this.addEventListener("pointerup", this._onPointerUp), this.addEventListener("pointercancel", this._onPointerCancel), this.addEventListener("keydown", this._onKeyDown);
84
- }
85
- disconnectedCallback() {
86
- super.disconnectedCallback(), this.removeEventListener("pointerdown", this._onPointerDown), this.removeEventListener("pointermove", this._onPointerMove), this.removeEventListener("pointerup", this._onPointerUp), this.removeEventListener("pointercancel", this._onPointerCancel), this.removeEventListener("keydown", this._onKeyDown);
87
- }
88
- render() {
89
- return g`<slot></slot>`;
90
- }
91
- };
92
- o.styles = [_, y, h`
93
- :host {
94
- display: block;
95
- touch-action: none;
96
- cursor: grab;
97
- }
98
- :host([disabled]) {
99
- cursor: default;
100
- touch-action: auto;
101
- }
102
- :host([dragging]) {
103
- cursor: grabbing;
104
- opacity: var(--cg-component-draggable-opacity, 0.6);
105
- z-index: 1;
106
- }
107
- `];
108
- a([
109
- l()
110
- ], o.prototype, "type", 2);
111
- a([
112
- l({ attribute: !1 })
113
- ], o.prototype, "payload", 2);
114
- a([
115
- l({ type: Boolean, reflect: !0 })
116
- ], o.prototype, "disabled", 2);
117
- a([
118
- l({ type: Boolean, reflect: !0 })
119
- ], o.prototype, "dragging", 2);
120
- a([
121
- f()
122
- ], o.prototype, "_origin", 2);
123
- o = a([
124
- v("cg-draggable")
125
- ], o);
126
- function C(t, e) {
127
- let n = !1;
128
- const i = () => {
129
- n = !0;
130
- };
131
- return document.addEventListener("cg-drop", i, { once: !0 }), D(t, e, !1), document.removeEventListener("cg-drop", i), n;
132
- }
133
- export {
134
- o as CgDraggable
135
- };
136
- //# sourceMappingURL=cg-draggable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cg-draggable.js","sources":["../../../src/utils/drag-manager.ts","../../../src/components/cg-draggable/cg-draggable.ts"],"sourcesContent":["/**\n * Module-scope drag coordinator shared between cg-draggable and cg-droppable.\n *\n * Pointer-event-based drag/drop works uniformly across mouse, touch, and\n * stylus and survives modern bundling. Each active drag broadcasts on the\n * document so any cg-droppable in any subtree can opt in.\n */\n\nexport type DragType = string;\n\nexport interface DragSession {\n /** Application-defined payload. cg-droppable receives this on cg-drop. */\n payload: unknown;\n /** Type tag — cg-droppable.accepts is matched against this. */\n type: DragType;\n /** Source element that initiated the drag. */\n source: HTMLElement;\n}\n\nexport interface DragMoveDetail extends DragSession {\n clientX: number;\n clientY: number;\n}\n\nexport interface DragEndDetail extends DragMoveDetail {\n /** If true, the drop landed on a registered droppable. */\n dropped: boolean;\n}\n\nlet active: DragSession | null = null;\n\n/** True while a drag is in progress. */\nexport function isDragging(): boolean {\n return active !== null;\n}\n\n/** Start a drag session. Idempotent: a second start while active is ignored. */\nexport function startDrag(session: DragSession, x: number, y: number): void {\n if (active) return;\n active = session;\n document.dispatchEvent(new CustomEvent<DragMoveDetail>('cg-drag-start', {\n detail: { ...session, clientX: x, clientY: y },\n }));\n}\n\n/** Broadcast a move during the current drag. */\nexport function moveDrag(x: number, y: number): void {\n if (!active) return;\n document.dispatchEvent(new CustomEvent<DragMoveDetail>('cg-drag-move', {\n detail: { ...active, clientX: x, clientY: y },\n }));\n}\n\n/**\n * End the current drag session. Returns the session that was active so\n * cg-draggable can fire its own end event with the same payload.\n */\nexport function endDrag(x: number, y: number, dropped: boolean): DragSession | null {\n if (!active) return null;\n const finished = active;\n document.dispatchEvent(new CustomEvent<DragEndDetail>('cg-drag-end', {\n detail: { ...finished, clientX: x, clientY: y, dropped },\n }));\n active = null;\n return finished;\n}\n\n/** Cancel any in-progress drag without firing a drop. Useful for Escape key handling. */\nexport function cancelDrag(): void {\n if (!active) return;\n document.dispatchEvent(new CustomEvent<DragEndDetail>('cg-drag-end', {\n detail: { ...active, clientX: -1, clientY: -1, dropped: false },\n }));\n active = null;\n}\n\n/** Inspect the current session without ending it. Returns null when no drag is active. */\nexport function currentSession(): DragSession | null {\n return active;\n}\n","import { LitElement, html, css } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\nimport { startDrag, moveDrag, endDrag, cancelDrag, isDragging } from '../../utils/drag-manager.js';\n\n/**\n * @element cg-draggable\n * Wraps content that can be picked up with a pointer and dropped on a\n * matching `<cg-droppable>`. Pointer-event-based — works on mouse, touch,\n * and stylus.\n *\n * Carries an opaque `payload` (object reference is preserved across the\n * drag) and a `type` tag that the droppable filters on. The dragged\n * element is visually translated under the pointer; a `dragging` attribute\n * on the host lets consumers style the source state.\n *\n * @example\n * ```html\n * <cg-draggable type=\"card\" .payload=${cardData}>\n * <cg-card>…</cg-card>\n * </cg-draggable>\n * ```\n *\n * @slot - The draggable content.\n *\n * @fires {CustomEvent<{type: string, payload: unknown}>} cg-drag-start - Drag begins\n * @fires {CustomEvent<{type: string, payload: unknown, dropped: boolean}>} cg-drag-end - Drag ends (with or without a successful drop)\n */\n@customElement('cg-draggable')\nexport class CgDraggable extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n display: block;\n touch-action: none;\n cursor: grab;\n }\n :host([disabled]) {\n cursor: default;\n touch-action: auto;\n }\n :host([dragging]) {\n cursor: grabbing;\n opacity: var(--cg-component-draggable-opacity, 0.6);\n z-index: 1;\n }\n `];\n\n /** Identifier matched against cg-droppable.accepts. */\n @property() type = '';\n\n /** Application payload passed to the droppable on drop. */\n @property({ attribute: false }) payload: unknown = null;\n\n /** Disable picking up. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Reflects while a drag from this element is active. */\n @property({ type: Boolean, reflect: true }) dragging = false;\n\n @state() private _origin: { x: number; y: number } | null = null;\n\n private _pointerId: number | null = null;\n\n private _onPointerDown = (e: PointerEvent): void => {\n if (this.disabled || isDragging()) return;\n if (e.button !== undefined && e.button !== 0) return;\n\n this._pointerId = e.pointerId;\n this._origin = { x: e.clientX, y: e.clientY };\n this.dragging = true;\n try { this.setPointerCapture(e.pointerId); } catch { /* happy-dom */ }\n\n startDrag({ payload: this.payload, type: this.type, source: this }, e.clientX, e.clientY);\n\n this.dispatchEvent(new CustomEvent('cg-drag-start', {\n detail: { type: this.type, payload: this.payload },\n bubbles: true, composed: true,\n }));\n };\n\n private _onPointerMove = (e: PointerEvent): void => {\n if (!this.dragging || e.pointerId !== this._pointerId || !this._origin) return;\n const dx = e.clientX - this._origin.x;\n const dy = e.clientY - this._origin.y;\n this.style.transform = `translate(${dx}px, ${dy}px)`;\n moveDrag(e.clientX, e.clientY);\n };\n\n private _onPointerUp = (e: PointerEvent): void => {\n if (!this.dragging || e.pointerId !== this._pointerId) return;\n this._finishDrag(e.clientX, e.clientY, false);\n };\n\n private _onPointerCancel = (e: PointerEvent): void => {\n if (!this.dragging || e.pointerId !== this._pointerId) return;\n this._finishDrag(e.clientX, e.clientY, true);\n };\n\n private _onKeyDown = (e: KeyboardEvent): void => {\n if (e.key === 'Escape' && this.dragging) {\n e.preventDefault();\n cancelDrag();\n this._cleanupAfterDrag(false);\n }\n };\n\n private _finishDrag(x: number, y: number, cancelled: boolean): void {\n if (cancelled) {\n cancelDrag();\n this._cleanupAfterDrag(false);\n return;\n }\n // The droppable hit-test happens inside the drag-manager event flow:\n // listening cg-droppables snapshot whether they were under (x,y) when\n // cg-drag-end fires. We expose `dropped: true` if any droppable accepted.\n const dropped = endDragAndDetectDrop(x, y);\n this._cleanupAfterDrag(dropped);\n }\n\n private _cleanupAfterDrag(dropped: boolean): void {\n this.style.transform = '';\n if (this._pointerId !== null) {\n try { this.releasePointerCapture(this._pointerId); } catch { /* ignore */ }\n }\n this.dragging = false;\n this._pointerId = null;\n this._origin = null;\n\n this.dispatchEvent(new CustomEvent('cg-drag-end', {\n detail: { type: this.type, payload: this.payload, dropped },\n bubbles: true, composed: true,\n }));\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('pointerdown', this._onPointerDown);\n this.addEventListener('pointermove', this._onPointerMove);\n this.addEventListener('pointerup', this._onPointerUp);\n this.addEventListener('pointercancel', this._onPointerCancel);\n this.addEventListener('keydown', this._onKeyDown);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('pointerdown', this._onPointerDown);\n this.removeEventListener('pointermove', this._onPointerMove);\n this.removeEventListener('pointerup', this._onPointerUp);\n this.removeEventListener('pointercancel', this._onPointerCancel);\n this.removeEventListener('keydown', this._onKeyDown);\n }\n\n override render() {\n return html`<slot></slot>`;\n }\n}\n\n/**\n * Hit-test against registered droppables at (x, y). Walks up from the\n * topmost element under the point looking for the closest cg-droppable\n * with a matching `accepts` type. Returns true if a drop is dispatched.\n */\nfunction endDragAndDetectDrop(x: number, y: number): boolean {\n // The drag-manager's endDrag broadcasts cg-drag-end with the coords; each\n // cg-droppable listens and decides for itself. We just call endDrag and\n // observe the dropped flag through a shared mutable cell.\n let dropped = false;\n const onDrop = () => { dropped = true; };\n document.addEventListener('cg-drop', onDrop, { once: true });\n endDrag(x, y, false);\n document.removeEventListener('cg-drop', onDrop);\n return dropped;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-draggable': CgDraggable;\n }\n}\n"],"names":["active","isDragging","startDrag","session","x","y","moveDrag","endDrag","dropped","finished","cancelDrag","CgDraggable","LitElement","e","dx","dy","cancelled","endDragAndDetectDrop","html","hostBlock","reducedMotion","css","__decorateClass","property","state","customElement","onDrop"],"mappings":";;;AA6BA,IAAIA,IAA6B;AAG1B,SAASC,IAAsB;AACpC,SAAOD,MAAW;AACpB;AAGO,SAASE,EAAUC,GAAsBC,GAAWC,GAAiB;AAC1E,EAAIL,MACJA,IAASG,GACT,SAAS,cAAc,IAAI,YAA4B,iBAAiB;AAAA,IACtE,QAAQ,EAAE,GAAGA,GAAS,SAASC,GAAG,SAASC,EAAA;AAAA,EAAE,CAC9C,CAAC;AACJ;AAGO,SAASC,EAASF,GAAWC,GAAiB;AACnD,EAAKL,KACL,SAAS,cAAc,IAAI,YAA4B,gBAAgB;AAAA,IACrE,QAAQ,EAAE,GAAGA,GAAQ,SAASI,GAAG,SAASC,EAAA;AAAA,EAAE,CAC7C,CAAC;AACJ;AAMO,SAASE,EAAQH,GAAWC,GAAWG,GAAsC;AAClF,MAAI,CAACR,EAAQ,QAAO;AACpB,QAAMS,IAAWT;AACjB,kBAAS,cAAc,IAAI,YAA2B,eAAe;AAAA,IACnE,QAAQ,EAAE,GAAGS,GAAU,SAASL,GAAG,SAASC,GAAG,SAAAG,EAAA;AAAA,EAAQ,CACxD,CAAC,GACFR,IAAS,MACFS;AACT;AAGO,SAASC,IAAmB;AACjC,EAAKV,MACL,SAAS,cAAc,IAAI,YAA2B,eAAe;AAAA,IACnE,QAAQ,EAAE,GAAGA,GAAQ,SAAS,IAAI,SAAS,IAAI,SAAS,GAAA;AAAA,EAAM,CAC/D,CAAC,GACFA,IAAS;AACX;;;;;;AC7CO,IAAMW,IAAN,cAA0BC,EAAW;AAAA,EAArC,cAAA;AAAA,UAAA,GAAA,SAAA,GAmBO,KAAA,OAAO,IAGa,KAAA,UAAmB,MAGP,KAAA,WAAW,IAGX,KAAA,WAAW,IAE9C,KAAQ,UAA2C,MAE5D,KAAQ,aAA4B,MAEpC,KAAQ,iBAAiB,CAACC,MAA0B;AAClD,UAAI,OAAK,YAAYZ,QACjB,EAAAY,EAAE,WAAW,UAAaA,EAAE,WAAW,IAE3C;AAAA,aAAK,aAAaA,EAAE,WACpB,KAAK,UAAU,EAAE,GAAGA,EAAE,SAAS,GAAGA,EAAE,QAAA,GACpC,KAAK,WAAW;AAChB,YAAI;AAAE,eAAK,kBAAkBA,EAAE,SAAS;AAAA,QAAG,QAAQ;AAAA,QAAkB;AAErE,QAAAX,EAAU,EAAE,SAAS,KAAK,SAAS,MAAM,KAAK,MAAM,QAAQ,KAAA,GAAQW,EAAE,SAASA,EAAE,OAAO,GAExF,KAAK,cAAc,IAAI,YAAY,iBAAiB;AAAA,UAClD,QAAQ,EAAE,MAAM,KAAK,MAAM,SAAS,KAAK,QAAA;AAAA,UACzC,SAAS;AAAA,UAAM,UAAU;AAAA,QAAA,CAC1B,CAAC;AAAA;AAAA,IACJ,GAEA,KAAQ,iBAAiB,CAACA,MAA0B;AAClD,UAAI,CAAC,KAAK,YAAYA,EAAE,cAAc,KAAK,cAAc,CAAC,KAAK,QAAS;AACxE,YAAMC,IAAKD,EAAE,UAAU,KAAK,QAAQ,GAC9BE,IAAKF,EAAE,UAAU,KAAK,QAAQ;AACpC,WAAK,MAAM,YAAY,aAAaC,CAAE,OAAOC,CAAE,OAC/CT,EAASO,EAAE,SAASA,EAAE,OAAO;AAAA,IAC/B,GAEA,KAAQ,eAAe,CAACA,MAA0B;AAChD,MAAI,CAAC,KAAK,YAAYA,EAAE,cAAc,KAAK,cAC3C,KAAK,YAAYA,EAAE,SAASA,EAAE,SAAS,EAAK;AAAA,IAC9C,GAEA,KAAQ,mBAAmB,CAACA,MAA0B;AACpD,MAAI,CAAC,KAAK,YAAYA,EAAE,cAAc,KAAK,cAC3C,KAAK,YAAYA,EAAE,SAASA,EAAE,SAAS,EAAI;AAAA,IAC7C,GAEA,KAAQ,aAAa,CAACA,MAA2B;AAC/C,MAAIA,EAAE,QAAQ,YAAY,KAAK,aAC7BA,EAAE,eAAA,GACFH,EAAA,GACA,KAAK,kBAAkB,EAAK;AAAA,IAEhC;AAAA,EAAA;AAAA,EAEQ,YAAYN,GAAWC,GAAWW,GAA0B;AAClE,QAAIA,GAAW;AACb,MAAAN,EAAA,GACA,KAAK,kBAAkB,EAAK;AAC5B;AAAA,IACF;AAIA,UAAMF,IAAUS,EAAqBb,GAAGC,CAAC;AACzC,SAAK,kBAAkBG,CAAO;AAAA,EAChC;AAAA,EAEQ,kBAAkBA,GAAwB;AAEhD,QADA,KAAK,MAAM,YAAY,IACnB,KAAK,eAAe;AACtB,UAAI;AAAE,aAAK,sBAAsB,KAAK,UAAU;AAAA,MAAG,QAAQ;AAAA,MAAe;AAE5E,SAAK,WAAW,IAChB,KAAK,aAAa,MAClB,KAAK,UAAU,MAEf,KAAK,cAAc,IAAI,YAAY,eAAe;AAAA,MAChD,QAAQ,EAAE,MAAM,KAAK,MAAM,SAAS,KAAK,SAAS,SAAAA,EAAA;AAAA,MAClD,SAAS;AAAA,MAAM,UAAU;AAAA,IAAA,CAC1B,CAAC;AAAA,EACJ;AAAA,EAES,oBAA0B;AACjC,UAAM,kBAAA,GACN,KAAK,iBAAiB,eAAe,KAAK,cAAc,GACxD,KAAK,iBAAiB,eAAe,KAAK,cAAc,GACxD,KAAK,iBAAiB,aAAa,KAAK,YAAY,GACpD,KAAK,iBAAiB,iBAAiB,KAAK,gBAAgB,GAC5D,KAAK,iBAAiB,WAAW,KAAK,UAAU;AAAA,EAClD;AAAA,EAES,uBAA6B;AACpC,UAAM,qBAAA,GACN,KAAK,oBAAoB,eAAe,KAAK,cAAc,GAC3D,KAAK,oBAAoB,eAAe,KAAK,cAAc,GAC3D,KAAK,oBAAoB,aAAa,KAAK,YAAY,GACvD,KAAK,oBAAoB,iBAAiB,KAAK,gBAAgB,GAC/D,KAAK,oBAAoB,WAAW,KAAK,UAAU;AAAA,EACrD;AAAA,EAES,SAAS;AAChB,WAAOU;AAAA,EACT;AACF;AA9HaP,EACK,SAAS,CAACQ,GAAWC,GAAeC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAenD;AAGWC,EAAA;AAAA,EAAXC,EAAA;AAAS,GAnBCZ,EAmBC,WAAA,QAAA,CAAA;AAGoBW,EAAA;AAAA,EAA/BC,EAAS,EAAE,WAAW,GAAA,CAAO;AAAA,GAtBnBZ,EAsBqB,WAAA,WAAA,CAAA;AAGYW,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GAzB/BZ,EAyBiC,WAAA,YAAA,CAAA;AAGAW,EAAA;AAAA,EAA3CC,EAAS,EAAE,MAAM,SAAS,SAAS,IAAM;AAAA,GA5B/BZ,EA4BiC,WAAA,YAAA,CAAA;AAE3BW,EAAA;AAAA,EAAhBE,EAAA;AAAM,GA9BIb,EA8BM,WAAA,WAAA,CAAA;AA9BNA,IAANW,EAAA;AAAA,EADNG,EAAc,cAAc;AAAA,GAChBd,CAAA;AAqIb,SAASM,EAAqBb,GAAWC,GAAoB;AAI3D,MAAIG,IAAU;AACd,QAAMkB,IAAS,MAAM;AAAE,IAAAlB,IAAU;AAAA,EAAM;AACvC,kBAAS,iBAAiB,WAAWkB,GAAQ,EAAE,MAAM,IAAM,GAC3DnB,EAAQH,GAAGC,GAAG,EAAK,GACnB,SAAS,oBAAoB,WAAWqB,CAAM,GACvClB;AACT;"}
@@ -1,57 +0,0 @@
1
- import { LitElement } from 'lit';
2
- /**
3
- * @element cg-droppable
4
- * Drop zone that pairs with `<cg-draggable>`. Listens to the active drag
5
- * session (broadcast on `document` by the drag-manager) and fires
6
- * `cg-drop` when a draggable of an accepted type is released over its
7
- * bounding box.
8
- *
9
- * The `over` boolean attribute reflects while a valid drag hovers, so
10
- * consumers can style the hover state via attribute selectors. The
11
- * `invalid-over` attribute reflects when an out-of-type drag hovers.
12
- *
13
- * @example
14
- * ```html
15
- * <cg-droppable accepts="card" @cg-drop=${onDrop}>
16
- * <div class="column">Drop cards here</div>
17
- * </cg-droppable>
18
- * ```
19
- *
20
- * @example Multiple accepted types
21
- * ```html
22
- * <cg-droppable accepts="card task" @cg-drop=${onDrop}>…</cg-droppable>
23
- * ```
24
- *
25
- * @slot - The drop-zone content.
26
- *
27
- * @fires {CustomEvent<{type: string, payload: unknown, clientX: number, clientY: number}>} cg-drop - A draggable of an accepted type was dropped over this zone.
28
- * @fires {CustomEvent<{type: string, payload: unknown}>} cg-drop-enter - A valid drag entered the zone
29
- * @fires {CustomEvent<{type: string, payload: unknown}>} cg-drop-leave - A valid drag left the zone
30
- */
31
- export declare class CgDroppable extends LitElement {
32
- static styles: import('lit').CSSResult[];
33
- /** Space-separated list of accepted draggable types. Empty = accept any. */
34
- accepts: string;
35
- /** Disable the drop zone (still listens but never accepts). */
36
- disabled: boolean;
37
- /** Reflects while a valid drag hovers. */
38
- over: boolean;
39
- /** Reflects while an out-of-type drag hovers. */
40
- invalidOver: boolean;
41
- private _wasOver;
42
- private _onDragStart;
43
- private _onDragMove;
44
- private _onDragEnd;
45
- private _evaluateHover;
46
- private _pointInside;
47
- private _accepts;
48
- connectedCallback(): void;
49
- disconnectedCallback(): void;
50
- render(): import('lit').TemplateResult<1>;
51
- }
52
- declare global {
53
- interface HTMLElementTagNameMap {
54
- 'cg-droppable': CgDroppable;
55
- }
56
- }
57
- //# sourceMappingURL=cg-droppable.d.ts.map