@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,104 +1,106 @@
1
- import { css as c, LitElement as d, nothing as v, html as u } from "lit";
2
- import { property as n, state as f, customElement as p } from "lit/decorators.js";
3
- import { a as g, r as m } from "../../chunks/premium.css-9I4kHrsl.js";
4
- var y = Object.defineProperty, w = Object.getOwnPropertyDescriptor, o = (e, r, t, i) => {
5
- for (var a = i > 1 ? void 0 : i ? w(r, t) : r, l = e.length - 1, h; l >= 0; l--)
6
- (h = e[l]) && (a = (i ? h(r, t, a) : h(a)) || a);
7
- return i && a && y(r, t, a), a;
1
+ import { css as d, LitElement as v, nothing as c, html as u } from "lit";
2
+ import { property as n, state as g, customElement as f } from "lit/decorators.js";
3
+ import { a as p, r as m } from "../../chunks/premium.css-DHekUEUt.js";
4
+ var y = Object.defineProperty, w = Object.getOwnPropertyDescriptor, o = (t, r, e, i) => {
5
+ for (var a = i > 1 ? void 0 : i ? w(r, e) : r, l = t.length - 1, h; l >= 0; l--)
6
+ (h = t[l]) && (a = (i ? h(r, e, a) : h(a)) || a);
7
+ return i && a && y(r, e, a), a;
8
8
  };
9
- let s = class extends d {
9
+ let s = class extends v {
10
10
  constructor() {
11
11
  super(), this.value = 0, this.max = 5, this.precision = 1, this.readonly = !1, this.disabled = !1, this.size = "md", this.name = "", this._hoverValue = 0, typeof this.attachInternals == "function" && (this._internals = this.attachInternals());
12
12
  }
13
- updated(e) {
14
- e.has("value") && this._internals?.setFormValue(String(this.value));
13
+ updated(t) {
14
+ t.has("value") && this._internals?.setFormValue(String(this.value));
15
15
  }
16
16
  _displayValue() {
17
17
  return this._hoverValue || this.value;
18
18
  }
19
- _getFillType(e) {
20
- const r = this._displayValue(), t = e + 1;
21
- return r >= t ? "full" : r >= t - 0.5 && this.precision === 0.5 ? "half" : "empty";
19
+ _getFillType(t) {
20
+ const r = this._displayValue(), e = t + 1;
21
+ return r >= e ? "full" : r >= e - 0.5 && this.precision === 0.5 ? "half" : "empty";
22
22
  }
23
- _handleClick(e, r) {
23
+ _handleClick(t, r) {
24
24
  if (this.readonly || this.disabled) return;
25
- let t = e + 1;
25
+ let e = t + 1;
26
26
  if (this.precision === 0.5) {
27
27
  const a = r.currentTarget.getBoundingClientRect();
28
- r.clientX - a.left < a.width / 2 && (t = e + 0.5);
28
+ r.clientX - a.left < a.width / 2 && (e = t + 0.5);
29
29
  }
30
- t === this.value && (t = 0), this.value = t, this.dispatchEvent(new CustomEvent("cg-rating-change", {
31
- detail: { value: t },
30
+ e === this.value && (e = 0), this.value = e, this.dispatchEvent(new CustomEvent("cg-rating-change", {
31
+ detail: { value: e },
32
32
  bubbles: !0,
33
33
  composed: !0
34
34
  }));
35
35
  }
36
- _handleMouseMove(e, r) {
36
+ _handleMouseMove(t, r) {
37
37
  if (!(this.readonly || this.disabled))
38
38
  if (this.precision === 0.5) {
39
39
  const i = r.currentTarget.getBoundingClientRect(), a = r.clientX - i.left < i.width / 2;
40
- this._hoverValue = e + (a ? 0.5 : 1);
40
+ this._hoverValue = t + (a ? 0.5 : 1);
41
41
  } else
42
- this._hoverValue = e + 1;
42
+ this._hoverValue = t + 1;
43
43
  }
44
44
  _handleMouseLeave() {
45
45
  this._hoverValue = 0;
46
46
  }
47
- _handleKeydown(e) {
47
+ _handleKeydown(t) {
48
48
  if (this.readonly || this.disabled) return;
49
49
  const r = this.precision;
50
- let t = this.value;
51
- if (e.key === "ArrowRight" || e.key === "ArrowUp")
52
- e.preventDefault(), t = Math.min(this.max, this.value + r);
53
- else if (e.key === "ArrowLeft" || e.key === "ArrowDown")
54
- e.preventDefault(), t = Math.max(0, this.value - r);
55
- else if (e.key === "Home")
56
- e.preventDefault(), t = 0;
57
- else if (e.key === "End")
58
- e.preventDefault(), t = this.max;
50
+ let e = this.value;
51
+ if (t.key === "ArrowRight" || t.key === "ArrowUp")
52
+ t.preventDefault(), e = Math.min(this.max, this.value + r);
53
+ else if (t.key === "ArrowLeft" || t.key === "ArrowDown")
54
+ t.preventDefault(), e = Math.max(0, this.value - r);
55
+ else if (t.key === "Home")
56
+ t.preventDefault(), e = 0;
57
+ else if (t.key === "End")
58
+ t.preventDefault(), e = this.max;
59
59
  else
60
60
  return;
61
- t !== this.value && (this.value = t, this.dispatchEvent(new CustomEvent("cg-rating-change", {
62
- detail: { value: t },
61
+ e !== this.value && (this.value = e, this.dispatchEvent(new CustomEvent("cg-rating-change", {
62
+ detail: { value: e },
63
63
  bubbles: !0,
64
64
  composed: !0
65
65
  })));
66
66
  }
67
67
  render() {
68
- const e = "M12 2l2.5 7.5h7.5l-6 4.5 2.5 7.5-6.5-4.5-6.5 4.5 2.5-7.5-6-4.5h7.5z";
68
+ const t = "M12 2l2.5 7.5h7.5l-6 4.5 2.5 7.5-6.5-4.5-6.5 4.5 2.5-7.5-6-4.5h7.5z";
69
69
  return u`
70
70
  <div
71
71
  class="rating"
72
- role="radiogroup"
73
- tabindex="0"
74
- aria-label=${`Rated ${this.value} of ${this.max}`}
72
+ role="slider"
73
+ tabindex=${this.disabled ? "-1" : "0"}
74
+ aria-label="Rating"
75
75
  aria-valuenow=${this.value}
76
76
  aria-valuemin="0"
77
77
  aria-valuemax=${this.max}
78
+ aria-valuetext=${`${this.value} of ${this.max} stars`}
79
+ aria-disabled=${this.disabled ? "true" : c}
80
+ aria-readonly=${this.readonly ? "true" : c}
78
81
  @keydown=${this._handleKeydown}
79
82
  @mouseleave=${this._handleMouseLeave}
80
83
  >
81
- ${Array.from({ length: this.max }, (r, t) => {
82
- const i = this._getFillType(t);
84
+ ${Array.from({ length: this.max }, (r, e) => {
85
+ const i = this._getFillType(e);
83
86
  return u`
84
87
  <div
85
88
  class="star"
86
89
  data-filled=${i}
87
- role="radio"
88
- aria-checked=${t + 1 <= this.value ? "true" : "false"}
89
- @click=${(a) => this._handleClick(t, a)}
90
- @mousemove=${(a) => this._handleMouseMove(t, a)}
90
+ aria-hidden="true"
91
+ @click=${(a) => this._handleClick(e, a)}
92
+ @mousemove=${(a) => this._handleMouseMove(e, a)}
91
93
  >
92
94
  <svg viewBox="0 0 24 24" fill=${i === "full" ? "currentColor" : "none"} stroke="currentColor" stroke-width="1.5" stroke-linejoin="round">
93
- <path d=${e}/>
95
+ <path d=${t}/>
94
96
  </svg>
95
97
  ${i === "half" ? u`
96
98
  <div class="half">
97
99
  <svg viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round">
98
- <path d=${e}/>
100
+ <path d=${t}/>
99
101
  </svg>
100
102
  </div>
101
- ` : v}
103
+ ` : c}
102
104
  </div>
103
105
  `;
104
106
  })}
@@ -106,7 +108,7 @@ let s = class extends d {
106
108
  `;
107
109
  }
108
110
  };
109
- s.styles = [g, m, c`
111
+ s.styles = [p, m, d`
110
112
  :host {
111
113
  display: inline-flex;
112
114
  }
@@ -123,13 +125,13 @@ s.styles = [g, m, c`
123
125
  width: var(--cg-component-rating-size-md);
124
126
  height: var(--cg-component-rating-size-md);
125
127
  cursor: pointer;
126
- color: var(--cg-color-surface-container-border);
128
+ color: var(--cg-color-surface-container-outlined);
127
129
  transition:
128
130
  color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),
129
131
  transform var(--cg-transition-duration-fast) var(--cg-transition-easing-spring);
130
132
  }
131
133
  .star:hover { transform: scale(1.15); }
132
- .star:active { transform: scale(0.95); }
134
+ .star:active { transform: scale(var(--cg-interaction-press-scale)); }
133
135
  .star[data-filled="full"] { color: var(--cg-color-status-warning-text-default); }
134
136
  .star[data-filled="half"] { color: var(--cg-color-status-warning-text-default); }
135
137
 
@@ -157,13 +159,13 @@ s.styles = [g, m, c`
157
159
 
158
160
  :host([readonly]) .star { cursor: default; }
159
161
  :host([readonly]) .star:hover { transform: none; }
160
- :host([disabled]) .rating { opacity: 0.45; pointer-events: none; }
162
+ :host([disabled]) .rating { opacity: var(--cg-opacity-50); pointer-events: none; }
161
163
 
162
164
  .rating:focus-visible {
163
165
  outline: none;
164
166
  box-shadow:
165
- 0 0 0 2px var(--cg-color-focus-ring-offset),
166
- 0 0 0 4px var(--cg-color-focus-ring);
167
+ 0 0 0 var(--cg-focus-ring-offset) var(--cg-color-focus-ring-offset),
168
+ 0 0 0 calc(var(--cg-focus-ring-offset) + var(--cg-focus-ring-width)) var(--cg-color-focus-ring);
167
169
  border-radius: var(--cg-border-radius-50);
168
170
  }
169
171
  `];
@@ -190,10 +192,10 @@ o([
190
192
  n()
191
193
  ], s.prototype, "name", 2);
192
194
  o([
193
- f()
195
+ g()
194
196
  ], s.prototype, "_hoverValue", 2);
195
197
  s = o([
196
- p("cg-rating")
198
+ f("cg-rating")
197
199
  ], s);
198
200
  export {
199
201
  s as CgRating
@@ -1 +1 @@
1
- {"version":3,"file":"cg-rating.js","sources":["../../../src/components/cg-rating/cg-rating.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBase, reducedMotion } from '../../styles/index.js';\n\n/**\n * @element cg-rating\n * Star rating input with keyboard navigation, half-star precision, and clear.\n *\n * @example\n * ```html\n * <cg-rating value=\"4\" max=\"5\"></cg-rating>\n * <cg-rating value=\"3.5\" precision=\"0.5\"></cg-rating>\n * ```\n *\n * @fires {CustomEvent<{value: number}>} cg-rating-change\n */\n@customElement('cg-rating')\nexport class CgRating extends LitElement {\n static override styles = [hostBase, reducedMotion, css`\n :host {\n display: inline-flex;\n }\n\n .rating {\n display: inline-flex;\n align-items: center;\n gap: var(--cg-component-rating-gap);\n outline: none;\n }\n\n .star {\n position: relative;\n width: var(--cg-component-rating-size-md);\n height: var(--cg-component-rating-size-md);\n cursor: pointer;\n color: var(--cg-color-surface-container-border);\n transition:\n color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-spring);\n }\n .star:hover { transform: scale(1.15); }\n .star:active { transform: scale(0.95); }\n .star[data-filled=\"full\"] { color: var(--cg-color-status-warning-text-default); }\n .star[data-filled=\"half\"] { color: var(--cg-color-status-warning-text-default); }\n\n .star svg { width: 100%; height: 100%; }\n\n .star .half {\n position: absolute;\n top: 0;\n left: 0;\n width: 50%;\n height: 100%;\n overflow: hidden;\n }\n .star .half svg { width: 200%; }\n\n /* Sizes */\n :host([size=\"sm\"]) .star {\n width: var(--cg-component-rating-size-sm);\n height: var(--cg-component-rating-size-sm);\n }\n :host([size=\"lg\"]) .star {\n width: var(--cg-component-rating-size-lg);\n height: var(--cg-component-rating-size-lg);\n }\n\n :host([readonly]) .star { cursor: default; }\n :host([readonly]) .star:hover { transform: none; }\n :host([disabled]) .rating { opacity: 0.45; pointer-events: none; }\n\n .rating:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 2px var(--cg-color-focus-ring-offset),\n 0 0 0 4px var(--cg-color-focus-ring);\n border-radius: var(--cg-border-radius-50);\n }\n `];\n\n static formAssociated = true;\n private _internals?: ElementInternals;\n\n constructor() {\n super();\n if (typeof this.attachInternals === 'function') {\n this._internals = this.attachInternals();\n }\n }\n\n @property({ type: Number }) value = 0;\n @property({ type: Number }) max = 5;\n @property({ type: Number }) precision: 0.5 | 1 = 1;\n @property({ type: Boolean, reflect: true }) readonly = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ reflect: true }) size: 'sm' | 'md' | 'lg' = 'md';\n @property() name = '';\n\n @state() private _hoverValue = 0;\n\n override updated(changed: Map<string, unknown>): void {\n if (changed.has('value')) {\n this._internals?.setFormValue(String(this.value));\n }\n }\n\n private _displayValue(): number {\n return this._hoverValue || this.value;\n }\n\n private _getFillType(starIndex: number): 'full' | 'half' | 'empty' {\n const display = this._displayValue();\n const starValue = starIndex + 1;\n if (display >= starValue) return 'full';\n if (display >= starValue - 0.5 && this.precision === 0.5) return 'half';\n return 'empty';\n }\n\n private _handleClick(starIndex: number, e: MouseEvent): void {\n if (this.readonly || this.disabled) return;\n let newValue = starIndex + 1;\n if (this.precision === 0.5) {\n const target = e.currentTarget as HTMLElement;\n const rect = target.getBoundingClientRect();\n const half = e.clientX - rect.left < rect.width / 2;\n if (half) newValue = starIndex + 0.5;\n }\n // Clear on click of same value\n if (newValue === this.value) newValue = 0;\n this.value = newValue;\n this.dispatchEvent(new CustomEvent('cg-rating-change', {\n detail: { value: newValue },\n bubbles: true,\n composed: true,\n }));\n }\n\n private _handleMouseMove(starIndex: number, e: MouseEvent): void {\n if (this.readonly || this.disabled) return;\n if (this.precision === 0.5) {\n const target = e.currentTarget as HTMLElement;\n const rect = target.getBoundingClientRect();\n const half = e.clientX - rect.left < rect.width / 2;\n this._hoverValue = starIndex + (half ? 0.5 : 1);\n } else {\n this._hoverValue = starIndex + 1;\n }\n }\n\n private _handleMouseLeave(): void {\n this._hoverValue = 0;\n }\n\n private _handleKeydown(e: KeyboardEvent): void {\n if (this.readonly || this.disabled) return;\n const step = this.precision;\n let newValue = this.value;\n if (e.key === 'ArrowRight' || e.key === 'ArrowUp') {\n e.preventDefault();\n newValue = Math.min(this.max, this.value + step);\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowDown') {\n e.preventDefault();\n newValue = Math.max(0, this.value - step);\n } else if (e.key === 'Home') {\n e.preventDefault();\n newValue = 0;\n } else if (e.key === 'End') {\n e.preventDefault();\n newValue = this.max;\n } else {\n return;\n }\n if (newValue !== this.value) {\n this.value = newValue;\n this.dispatchEvent(new CustomEvent('cg-rating-change', {\n detail: { value: newValue },\n bubbles: true,\n composed: true,\n }));\n }\n }\n\n override render() {\n const starPath = 'M12 2l2.5 7.5h7.5l-6 4.5 2.5 7.5-6.5-4.5-6.5 4.5 2.5-7.5-6-4.5h7.5z';\n return html`\n <div\n class=\"rating\"\n role=\"radiogroup\"\n tabindex=\"0\"\n aria-label=${`Rated ${this.value} of ${this.max}`}\n aria-valuenow=${this.value}\n aria-valuemin=\"0\"\n aria-valuemax=${this.max}\n @keydown=${this._handleKeydown}\n @mouseleave=${this._handleMouseLeave}\n >\n ${Array.from({ length: this.max }, (_, i) => {\n const fill = this._getFillType(i);\n return html`\n <div\n class=\"star\"\n data-filled=${fill}\n role=\"radio\"\n aria-checked=${i + 1 <= this.value ? 'true' : 'false'}\n @click=${(e: MouseEvent) => this._handleClick(i, e)}\n @mousemove=${(e: MouseEvent) => this._handleMouseMove(i, e)}\n >\n <svg viewBox=\"0 0 24 24\" fill=${fill === 'full' ? 'currentColor' : 'none'} stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\">\n <path d=${starPath}/>\n </svg>\n ${fill === 'half' ? html`\n <div class=\"half\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\">\n <path d=${starPath}/>\n </svg>\n </div>\n ` : nothing}\n </div>\n `;\n })}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-rating': CgRating;\n }\n}\n"],"names":["CgRating","LitElement","changed","starIndex","display","starValue","e","newValue","rect","half","step","starPath","html","_","i","fill","nothing","hostBase","reducedMotion","css","__decorateClass","property","state","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"cg-rating.js","sources":["../../../src/components/cg-rating/cg-rating.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBase, reducedMotion } from '../../styles/index.js';\n\n/**\n * @element cg-rating\n * Star rating input with keyboard navigation, half-star precision, and clear.\n *\n * @example\n * ```html\n * <cg-rating value=\"4\" max=\"5\"></cg-rating>\n * <cg-rating value=\"3.5\" precision=\"0.5\"></cg-rating>\n * ```\n *\n * @fires {CustomEvent<{value: number}>} cg-rating-change\n */\n@customElement('cg-rating')\nexport class CgRating extends LitElement {\n static override styles = [hostBase, reducedMotion, css`\n :host {\n display: inline-flex;\n }\n\n .rating {\n display: inline-flex;\n align-items: center;\n gap: var(--cg-component-rating-gap);\n outline: none;\n }\n\n .star {\n position: relative;\n width: var(--cg-component-rating-size-md);\n height: var(--cg-component-rating-size-md);\n cursor: pointer;\n color: var(--cg-color-surface-container-outlined);\n transition:\n color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n transform var(--cg-transition-duration-fast) var(--cg-transition-easing-spring);\n }\n .star:hover { transform: scale(1.15); }\n .star:active { transform: scale(var(--cg-interaction-press-scale)); }\n .star[data-filled=\"full\"] { color: var(--cg-color-status-warning-text-default); }\n .star[data-filled=\"half\"] { color: var(--cg-color-status-warning-text-default); }\n\n .star svg { width: 100%; height: 100%; }\n\n .star .half {\n position: absolute;\n top: 0;\n left: 0;\n width: 50%;\n height: 100%;\n overflow: hidden;\n }\n .star .half svg { width: 200%; }\n\n /* Sizes */\n :host([size=\"sm\"]) .star {\n width: var(--cg-component-rating-size-sm);\n height: var(--cg-component-rating-size-sm);\n }\n :host([size=\"lg\"]) .star {\n width: var(--cg-component-rating-size-lg);\n height: var(--cg-component-rating-size-lg);\n }\n\n :host([readonly]) .star { cursor: default; }\n :host([readonly]) .star:hover { transform: none; }\n :host([disabled]) .rating { opacity: var(--cg-opacity-50); pointer-events: none; }\n\n .rating:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 var(--cg-focus-ring-offset) var(--cg-color-focus-ring-offset),\n 0 0 0 calc(var(--cg-focus-ring-offset) + var(--cg-focus-ring-width)) var(--cg-color-focus-ring);\n border-radius: var(--cg-border-radius-50);\n }\n `];\n\n static formAssociated = true;\n private _internals?: ElementInternals;\n\n constructor() {\n super();\n if (typeof this.attachInternals === 'function') {\n this._internals = this.attachInternals();\n }\n }\n\n @property({ type: Number }) value = 0;\n @property({ type: Number }) max = 5;\n @property({ type: Number }) precision: 0.5 | 1 = 1;\n @property({ type: Boolean, reflect: true }) readonly = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ reflect: true }) size: 'sm' | 'md' | 'lg' = 'md';\n @property() name = '';\n\n @state() private _hoverValue = 0;\n\n override updated(changed: Map<string, unknown>): void {\n if (changed.has('value')) {\n this._internals?.setFormValue(String(this.value));\n }\n }\n\n private _displayValue(): number {\n return this._hoverValue || this.value;\n }\n\n private _getFillType(starIndex: number): 'full' | 'half' | 'empty' {\n const display = this._displayValue();\n const starValue = starIndex + 1;\n if (display >= starValue) return 'full';\n if (display >= starValue - 0.5 && this.precision === 0.5) return 'half';\n return 'empty';\n }\n\n private _handleClick(starIndex: number, e: MouseEvent): void {\n if (this.readonly || this.disabled) return;\n let newValue = starIndex + 1;\n if (this.precision === 0.5) {\n const target = e.currentTarget as HTMLElement;\n const rect = target.getBoundingClientRect();\n const half = e.clientX - rect.left < rect.width / 2;\n if (half) newValue = starIndex + 0.5;\n }\n // Clear on click of same value\n if (newValue === this.value) newValue = 0;\n this.value = newValue;\n this.dispatchEvent(new CustomEvent('cg-rating-change', {\n detail: { value: newValue },\n bubbles: true,\n composed: true,\n }));\n }\n\n private _handleMouseMove(starIndex: number, e: MouseEvent): void {\n if (this.readonly || this.disabled) return;\n if (this.precision === 0.5) {\n const target = e.currentTarget as HTMLElement;\n const rect = target.getBoundingClientRect();\n const half = e.clientX - rect.left < rect.width / 2;\n this._hoverValue = starIndex + (half ? 0.5 : 1);\n } else {\n this._hoverValue = starIndex + 1;\n }\n }\n\n private _handleMouseLeave(): void {\n this._hoverValue = 0;\n }\n\n private _handleKeydown(e: KeyboardEvent): void {\n if (this.readonly || this.disabled) return;\n const step = this.precision;\n let newValue = this.value;\n if (e.key === 'ArrowRight' || e.key === 'ArrowUp') {\n e.preventDefault();\n newValue = Math.min(this.max, this.value + step);\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowDown') {\n e.preventDefault();\n newValue = Math.max(0, this.value - step);\n } else if (e.key === 'Home') {\n e.preventDefault();\n newValue = 0;\n } else if (e.key === 'End') {\n e.preventDefault();\n newValue = this.max;\n } else {\n return;\n }\n if (newValue !== this.value) {\n this.value = newValue;\n this.dispatchEvent(new CustomEvent('cg-rating-change', {\n detail: { value: newValue },\n bubbles: true,\n composed: true,\n }));\n }\n }\n\n override render() {\n const starPath = 'M12 2l2.5 7.5h7.5l-6 4.5 2.5 7.5-6.5-4.5-6.5 4.5 2.5-7.5-6-4.5h7.5z';\n return html`\n <div\n class=\"rating\"\n role=\"slider\"\n tabindex=${this.disabled ? '-1' : '0'}\n aria-label=\"Rating\"\n aria-valuenow=${this.value}\n aria-valuemin=\"0\"\n aria-valuemax=${this.max}\n aria-valuetext=${`${this.value} of ${this.max} stars`}\n aria-disabled=${this.disabled ? 'true' : nothing}\n aria-readonly=${this.readonly ? 'true' : nothing}\n @keydown=${this._handleKeydown}\n @mouseleave=${this._handleMouseLeave}\n >\n ${Array.from({ length: this.max }, (_, i) => {\n const fill = this._getFillType(i);\n return html`\n <div\n class=\"star\"\n data-filled=${fill}\n aria-hidden=\"true\"\n @click=${(e: MouseEvent) => this._handleClick(i, e)}\n @mousemove=${(e: MouseEvent) => this._handleMouseMove(i, e)}\n >\n <svg viewBox=\"0 0 24 24\" fill=${fill === 'full' ? 'currentColor' : 'none'} stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\">\n <path d=${starPath}/>\n </svg>\n ${fill === 'half' ? html`\n <div class=\"half\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\">\n <path d=${starPath}/>\n </svg>\n </div>\n ` : nothing}\n </div>\n `;\n })}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-rating': CgRating;\n }\n}\n"],"names":["CgRating","LitElement","changed","starIndex","display","starValue","e","newValue","rect","half","step","starPath","html","nothing","_","i","fill","hostBase","reducedMotion","css","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { LitElement } from 'lit';
1
+ import { LitElement, PropertyValues } from 'lit';
2
2
  /**
3
3
  * @element cg-resizable
4
4
  * Two-pane split container with a draggable handle.
@@ -14,7 +14,10 @@ export declare class CgResizable extends LitElement {
14
14
  defaultSize: number;
15
15
  min: number;
16
16
  max: number;
17
+ /** Accessible name for the resize handle (window-splitter pattern). */
18
+ handleLabel: string;
17
19
  private _size;
20
+ protected willUpdate(changed: PropertyValues<this>): void;
18
21
  private _activeMove;
19
22
  private _activeUp;
20
23
  connectedCallback(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"cg-resizable.d.ts","sourceRoot":"","sources":["../../../src/components/cg-resizable/cg-resizable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C;;;;;;;;GAQG;AACH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,4BA6HnB;IAE0B,SAAS,EAAE,YAAY,GAAG,UAAU,CAAgB;IACrD,WAAW,SAAO;IAClB,GAAG,SAAO;IACV,GAAG,SAAO;IAE7B,OAAO,CAAC,KAAK,CAAO;IAE7B,OAAO,CAAC,WAAW,CAA6C;IAChE,OAAO,CAAC,SAAS,CAA6B;IAErC,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IASrC,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,cAAc;IA8BtB,OAAO,CAAC,UAAU;IAmCT,MAAM;CAyBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
1
+ {"version":3,"file":"cg-resizable.d.ts","sourceRoot":"","sources":["../../../src/components/cg-resizable/cg-resizable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAIjE;;;;;;;;GAQG;AACH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,4BA8HnB;IAE0B,SAAS,EAAE,YAAY,GAAG,UAAU,CAAgB;IACrD,WAAW,SAAO;IAClB,GAAG,SAAO;IACV,GAAG,SAAO;IACtC,uEAAuE;IAC9B,WAAW,SAAkB;IAE7D,OAAO,CAAC,KAAK,CAAO;cAEV,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAMlE,OAAO,CAAC,WAAW,CAA6C;IAChE,OAAO,CAAC,SAAS,CAA6B;IAErC,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IASrC,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,UAAU;IAmCT,MAAM;CA0BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
@@ -1,14 +1,17 @@
1
1
  import { css as h, LitElement as v, html as g } from "lit";
2
2
  import { property as l, state as u, customElement as p } from "lit/decorators.js";
3
- import { h as b, r as f } from "../../chunks/premium.css-9I4kHrsl.js";
4
- var m = Object.defineProperty, w = Object.getOwnPropertyDescriptor, s = (e, t, i, o) => {
5
- for (var r = o > 1 ? void 0 : o ? w(t, i) : t, a = e.length - 1, c; a >= 0; a--)
6
- (c = e[a]) && (r = (o ? c(t, i, r) : c(r)) || r);
7
- return o && r && m(t, i, r), r;
3
+ import { h as b, r as f } from "../../chunks/premium.css-DHekUEUt.js";
4
+ var m = Object.defineProperty, w = Object.getOwnPropertyDescriptor, c = (e, t, o, i) => {
5
+ for (var r = i > 1 ? void 0 : i ? w(t, o) : t, a = e.length - 1, s; a >= 0; a--)
6
+ (s = e[a]) && (r = (i ? s(t, o, r) : s(r)) || r);
7
+ return i && r && m(t, o, r), r;
8
8
  };
9
9
  let n = class extends v {
10
10
  constructor() {
11
- super(...arguments), this.direction = "horizontal", this.defaultSize = 0.5, this.min = 0.1, this.max = 0.9, this._size = 0.5, this._activeMove = null, this._activeUp = null;
11
+ super(...arguments), this.direction = "horizontal", this.defaultSize = 0.5, this.min = 0.1, this.max = 0.9, this.handleLabel = "Resize panes", this._size = 0.5, this._activeMove = null, this._activeUp = null;
12
+ }
13
+ willUpdate(e) {
14
+ (e.has("min") || e.has("max")) && (this._size = this._clamp(this._size));
12
15
  }
13
16
  connectedCallback() {
14
17
  super.connectedCallback(), this._size = this._clamp(this.defaultSize);
@@ -29,15 +32,17 @@ let n = class extends v {
29
32
  }
30
33
  _onPointerDown(e) {
31
34
  e.preventDefault();
32
- const t = e.currentTarget, i = e.pointerId;
33
- t.setPointerCapture?.(i), t.setAttribute("data-dragging", "");
34
- const o = this.getBoundingClientRect(), r = (c) => {
35
- const d = this.direction === "horizontal" ? (c.clientX - o.left) / o.width : (c.clientY - o.top) / o.height;
35
+ const t = e.currentTarget;
36
+ t.focus();
37
+ const o = e.pointerId;
38
+ t.setPointerCapture?.(o), t.setAttribute("data-dragging", "");
39
+ const i = this.getBoundingClientRect(), r = (s) => {
40
+ const d = this.direction === "horizontal" ? (s.clientX - i.left) / i.width : (s.clientY - i.top) / i.height;
36
41
  this._setSize(d);
37
42
  }, a = () => {
38
43
  window.removeEventListener("pointermove", r), window.removeEventListener("pointerup", a), window.removeEventListener("pointercancel", a);
39
44
  try {
40
- t.releasePointerCapture?.(i);
45
+ t.releasePointerCapture?.(o);
41
46
  } catch {
42
47
  }
43
48
  t.removeAttribute("data-dragging"), this._activeMove = null, this._activeUp = null;
@@ -45,13 +50,13 @@ let n = class extends v {
45
50
  this._activeMove = r, this._activeUp = a, window.addEventListener("pointermove", r), window.addEventListener("pointerup", a), window.addEventListener("pointercancel", a);
46
51
  }
47
52
  _onKeydown(e) {
48
- const i = e.shiftKey ? 0.1 : 0.05, o = this.direction === "horizontal", r = o ? "ArrowLeft" : "ArrowUp", a = o ? "ArrowRight" : "ArrowDown";
53
+ const o = e.shiftKey ? 0.1 : 0.05, i = this.direction === "horizontal", r = i ? "ArrowLeft" : "ArrowUp", a = i ? "ArrowRight" : "ArrowDown";
49
54
  switch (e.key) {
50
55
  case r:
51
- e.preventDefault(), this._setSize(this._size - i);
56
+ e.preventDefault(), this._setSize(this._size - o);
52
57
  break;
53
58
  case a:
54
- e.preventDefault(), this._setSize(this._size + i);
59
+ e.preventDefault(), this._setSize(this._size + o);
55
60
  break;
56
61
  case "PageUp":
57
62
  e.preventDefault(), this._setSize(this._size - 0.1);
@@ -68,13 +73,14 @@ let n = class extends v {
68
73
  }
69
74
  }
70
75
  render() {
71
- const e = this.direction === "horizontal", t = e ? `width: ${this._size * 100}%; height: 100%;` : `height: ${this._size * 100}%; width: 100%;`, i = e ? `width: ${(1 - this._size) * 100}%; height: 100%;` : `height: ${(1 - this._size) * 100}%; width: 100%;`;
76
+ const e = this.direction === "horizontal", t = e ? `width: ${this._size * 100}%; height: 100%;` : `height: ${this._size * 100}%; width: 100%;`, o = e ? `width: ${(1 - this._size) * 100}%; height: 100%;` : `height: ${(1 - this._size) * 100}%; width: 100%;`;
72
77
  return g`
73
78
  <div class="pane" style=${t}><slot name="start"></slot></div>
74
79
  <div
75
80
  class="handle"
76
81
  role="separator"
77
82
  tabindex="0"
83
+ aria-label=${this.handleLabel}
78
84
  aria-orientation=${e ? "vertical" : "horizontal"}
79
85
  aria-valuenow=${Math.round(this._size * 100)}
80
86
  aria-valuemin=${Math.round(this.min * 100)}
@@ -82,7 +88,7 @@ let n = class extends v {
82
88
  @pointerdown=${this._onPointerDown}
83
89
  @keydown=${this._onKeydown}
84
90
  ></div>
85
- <div class="pane" style=${i}><slot name="end"></slot></div>
91
+ <div class="pane" style=${o}><slot name="end"></slot></div>
86
92
  `;
87
93
  }
88
94
  };
@@ -104,7 +110,10 @@ n.styles = [b, f, h`
104
110
  .handle {
105
111
  flex-shrink: 0;
106
112
  position: relative;
107
- transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
113
+ z-index: var(--cg-z-index-100);
114
+ transition:
115
+ background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),
116
+ border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
108
117
  }
109
118
  :host([direction="horizontal"]) .handle {
110
119
  width: var(--cg-spacing-6);
@@ -145,12 +154,10 @@ n.styles = [b, f, h`
145
154
  top: 50%;
146
155
  left: 50%;
147
156
  transform: translate(-50%, -50%);
148
- background:
149
- var(--cg-color-surface-container-outlined),
150
- var(--cg-color-surface-container-outlined),
151
- var(--cg-color-surface-container-outlined);
152
157
  pointer-events: none;
153
- transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
158
+ transition:
159
+ background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),
160
+ box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default);
154
161
  }
155
162
  :host([direction="horizontal"]) .handle::before {
156
163
  width: var(--cg-border-width-50);
@@ -174,31 +181,31 @@ n.styles = [b, f, h`
174
181
  :host([direction="horizontal"]) .handle:focus-visible {
175
182
  border-left-color: var(--cg-color-action-primary-border-default);
176
183
  border-right-color: var(--cg-color-action-primary-border-default);
177
- background: color-mix(in srgb, var(--cg-color-action-primary-background-default) 20%, transparent);
184
+ background: var(--cg-overlay-accent-medium);
178
185
  outline: none;
179
186
  }
180
187
  :host([direction="vertical"]) .handle:hover,
181
188
  :host([direction="vertical"]) .handle:focus-visible {
182
189
  border-top-color: var(--cg-color-action-primary-border-default);
183
190
  border-bottom-color: var(--cg-color-action-primary-border-default);
184
- background: color-mix(in srgb, var(--cg-color-action-primary-background-default) 20%, transparent);
191
+ background: var(--cg-overlay-accent-medium);
185
192
  outline: none;
186
193
  }
187
194
  .handle:hover::before,
188
195
  .handle:focus-visible::before {
189
- background: var(--cg-color-action-primary-text-default);
196
+ background: var(--cg-color-accent-text);
190
197
  }
191
198
  :host([direction="horizontal"]) .handle:hover::before,
192
199
  :host([direction="horizontal"]) .handle:focus-visible::before {
193
200
  box-shadow:
194
- calc(var(--cg-spacing-4) * -1) 0 0 0 var(--cg-color-action-primary-text-default),
195
- var(--cg-spacing-4) 0 0 0 var(--cg-color-action-primary-text-default);
201
+ calc(var(--cg-spacing-4) * -1) 0 0 0 var(--cg-color-accent-text),
202
+ var(--cg-spacing-4) 0 0 0 var(--cg-color-accent-text);
196
203
  }
197
204
  :host([direction="vertical"]) .handle:hover::before,
198
205
  :host([direction="vertical"]) .handle:focus-visible::before {
199
206
  box-shadow:
200
- 0 calc(var(--cg-spacing-4) * -1) 0 0 var(--cg-color-action-primary-text-default),
201
- 0 var(--cg-spacing-4) 0 0 var(--cg-color-action-primary-text-default);
207
+ 0 calc(var(--cg-spacing-4) * -1) 0 0 var(--cg-color-accent-text),
208
+ 0 var(--cg-spacing-4) 0 0 var(--cg-color-accent-text);
202
209
  }
203
210
 
204
211
  /* Active drag — stronger tint while pointer is down. */
@@ -212,22 +219,25 @@ n.styles = [b, f, h`
212
219
  0 0 0 calc(var(--cg-focus-ring-offset) + var(--cg-focus-ring-width)) var(--cg-color-focus-ring);
213
220
  }
214
221
  `];
215
- s([
222
+ c([
216
223
  l({ reflect: !0 })
217
224
  ], n.prototype, "direction", 2);
218
- s([
225
+ c([
219
226
  l({ type: Number })
220
227
  ], n.prototype, "defaultSize", 2);
221
- s([
228
+ c([
222
229
  l({ type: Number })
223
230
  ], n.prototype, "min", 2);
224
- s([
231
+ c([
225
232
  l({ type: Number })
226
233
  ], n.prototype, "max", 2);
227
- s([
234
+ c([
235
+ l({ attribute: "handle-label" })
236
+ ], n.prototype, "handleLabel", 2);
237
+ c([
228
238
  u()
229
239
  ], n.prototype, "_size", 2);
230
- n = s([
240
+ n = c([
231
241
  p("cg-resizable")
232
242
  ], n);
233
243
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"cg-resizable.js","sources":["../../../src/components/cg-resizable/cg-resizable.ts"],"sourcesContent":["import { LitElement, html, css } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\n/**\n * @element cg-resizable\n * Two-pane split container with a draggable handle.\n *\n * @slot start - First pane (left or top).\n * @slot end - Second pane (right or bottom).\n *\n * @fires {CustomEvent<{size:number}>} cg-resize - When the split ratio changes.\n */\n@customElement('cg-resizable')\nexport class CgResizable extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n display: flex;\n width: 100%;\n height: 100%;\n min-height: var(--cg-spacing-160);\n overflow: hidden;\n }\n :host([direction=\"vertical\"]) { flex-direction: column; }\n\n .pane {\n overflow: auto;\n position: relative;\n }\n\n .handle {\n flex-shrink: 0;\n position: relative;\n transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n :host([direction=\"horizontal\"]) .handle {\n width: var(--cg-spacing-6);\n cursor: col-resize;\n background: transparent;\n border-left: var(--cg-border-width-50) solid var(--cg-color-surface-container-border);\n border-right: var(--cg-border-width-50) solid var(--cg-color-surface-container-border);\n }\n :host([direction=\"vertical\"]) .handle {\n height: var(--cg-spacing-6);\n cursor: row-resize;\n background: transparent;\n border-top: var(--cg-border-width-50) solid var(--cg-color-surface-container-border);\n border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-container-border);\n }\n\n /* Invisible hit area — extends the handle on the perpendicular axis to\n hit the WCAG 2.5.5 / Cognivo 44px minimum touch-target requirement. */\n .handle::after {\n content: '';\n position: absolute;\n inset: 0;\n }\n :host([direction=\"horizontal\"]) .handle::after {\n left: calc(var(--cg-spacing-20) * -1);\n right: calc(var(--cg-spacing-20) * -1);\n }\n :host([direction=\"vertical\"]) .handle::after {\n top: calc(var(--cg-spacing-20) * -1);\n bottom: calc(var(--cg-spacing-20) * -1);\n }\n\n /* Visible grip glyph — three small bars centered on the handle so users\n see it's draggable. */\n .handle::before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background:\n var(--cg-color-surface-container-outlined),\n var(--cg-color-surface-container-outlined),\n var(--cg-color-surface-container-outlined);\n pointer-events: none;\n transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n :host([direction=\"horizontal\"]) .handle::before {\n width: var(--cg-border-width-50);\n height: var(--cg-spacing-24);\n background: var(--cg-color-surface-container-outlined);\n box-shadow:\n calc(var(--cg-spacing-4) * -1) 0 0 0 var(--cg-color-surface-container-outlined),\n var(--cg-spacing-4) 0 0 0 var(--cg-color-surface-container-outlined);\n }\n :host([direction=\"vertical\"]) .handle::before {\n width: var(--cg-spacing-24);\n height: var(--cg-border-width-50);\n background: var(--cg-color-surface-container-outlined);\n box-shadow:\n 0 calc(var(--cg-spacing-4) * -1) 0 0 var(--cg-color-surface-container-outlined),\n 0 var(--cg-spacing-4) 0 0 var(--cg-color-surface-container-outlined);\n }\n\n /* Hover + focus-visible — brand-accent borders + tinted fill. */\n :host([direction=\"horizontal\"]) .handle:hover,\n :host([direction=\"horizontal\"]) .handle:focus-visible {\n border-left-color: var(--cg-color-action-primary-border-default);\n border-right-color: var(--cg-color-action-primary-border-default);\n background: color-mix(in srgb, var(--cg-color-action-primary-background-default) 20%, transparent);\n outline: none;\n }\n :host([direction=\"vertical\"]) .handle:hover,\n :host([direction=\"vertical\"]) .handle:focus-visible {\n border-top-color: var(--cg-color-action-primary-border-default);\n border-bottom-color: var(--cg-color-action-primary-border-default);\n background: color-mix(in srgb, var(--cg-color-action-primary-background-default) 20%, transparent);\n outline: none;\n }\n .handle:hover::before,\n .handle:focus-visible::before {\n background: var(--cg-color-action-primary-text-default);\n }\n :host([direction=\"horizontal\"]) .handle:hover::before,\n :host([direction=\"horizontal\"]) .handle:focus-visible::before {\n box-shadow:\n calc(var(--cg-spacing-4) * -1) 0 0 0 var(--cg-color-action-primary-text-default),\n var(--cg-spacing-4) 0 0 0 var(--cg-color-action-primary-text-default);\n }\n :host([direction=\"vertical\"]) .handle:hover::before,\n :host([direction=\"vertical\"]) .handle:focus-visible::before {\n box-shadow:\n 0 calc(var(--cg-spacing-4) * -1) 0 0 var(--cg-color-action-primary-text-default),\n 0 var(--cg-spacing-4) 0 0 var(--cg-color-action-primary-text-default);\n }\n\n /* Active drag — stronger tint while pointer is down. */\n .handle[data-dragging] {\n background: color-mix(in srgb, var(--cg-color-action-primary-background-default) 35%, transparent);\n }\n\n .handle:focus-visible {\n box-shadow:\n 0 0 0 var(--cg-focus-ring-offset) var(--cg-color-focus-ring-offset),\n 0 0 0 calc(var(--cg-focus-ring-offset) + var(--cg-focus-ring-width)) var(--cg-color-focus-ring);\n }\n `];\n\n @property({ reflect: true }) direction: 'horizontal' | 'vertical' = 'horizontal';\n @property({ type: Number }) defaultSize = 0.5;\n @property({ type: Number }) min = 0.1;\n @property({ type: Number }) max = 0.9;\n\n @state() private _size = 0.5;\n\n private _activeMove: ((ev: PointerEvent) => void) | null = null;\n private _activeUp: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._size = this._clamp(this.defaultSize);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n // Drop any in-progress drag listeners so an unmount mid-drag doesn't leak.\n if (this._activeMove) window.removeEventListener('pointermove', this._activeMove);\n if (this._activeUp) window.removeEventListener('pointerup', this._activeUp);\n this._activeMove = null;\n this._activeUp = null;\n }\n\n private _clamp(v: number): number {\n return Math.max(this.min, Math.min(this.max, v));\n }\n\n private _setSize(v: number): void {\n const next = this._clamp(v);\n if (next === this._size) return;\n this._size = next;\n this.dispatchEvent(new CustomEvent('cg-resize', {\n bubbles: true,\n composed: true,\n detail: { size: next },\n }));\n }\n\n private _onPointerDown(e: PointerEvent): void {\n e.preventDefault();\n const handle = e.currentTarget as HTMLElement;\n const pointerId = e.pointerId;\n handle.setPointerCapture?.(pointerId);\n handle.setAttribute('data-dragging', '');\n const rect = this.getBoundingClientRect();\n const move = (ev: PointerEvent) => {\n const fraction =\n this.direction === 'horizontal'\n ? (ev.clientX - rect.left) / rect.width\n : (ev.clientY - rect.top) / rect.height;\n this._setSize(fraction);\n };\n const up = () => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n window.removeEventListener('pointercancel', up);\n try { handle.releasePointerCapture?.(pointerId); } catch { /* already released */ }\n handle.removeAttribute('data-dragging');\n this._activeMove = null;\n this._activeUp = null;\n };\n this._activeMove = move;\n this._activeUp = up;\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n window.addEventListener('pointercancel', up);\n }\n\n private _onKeydown(e: KeyboardEvent): void {\n // 5% per arrow press, 10% with Shift, 10% on PageUp/PageDown.\n const baseStep = 0.05;\n const step = e.shiftKey ? baseStep * 2 : baseStep;\n const horizontal = this.direction === 'horizontal';\n const decreaseKey = horizontal ? 'ArrowLeft' : 'ArrowUp';\n const increaseKey = horizontal ? 'ArrowRight' : 'ArrowDown';\n switch (e.key) {\n case decreaseKey:\n e.preventDefault();\n this._setSize(this._size - step);\n break;\n case increaseKey:\n e.preventDefault();\n this._setSize(this._size + step);\n break;\n case 'PageUp':\n e.preventDefault();\n this._setSize(this._size - 0.1);\n break;\n case 'PageDown':\n e.preventDefault();\n this._setSize(this._size + 0.1);\n break;\n case 'Home':\n e.preventDefault();\n this._setSize(this.min);\n break;\n case 'End':\n e.preventDefault();\n this._setSize(this.max);\n break;\n }\n }\n\n override render() {\n const horizontal = this.direction === 'horizontal';\n const startStyle = horizontal\n ? `width: ${this._size * 100}%; height: 100%;`\n : `height: ${this._size * 100}%; width: 100%;`;\n const endStyle = horizontal\n ? `width: ${(1 - this._size) * 100}%; height: 100%;`\n : `height: ${(1 - this._size) * 100}%; width: 100%;`;\n\n return html`\n <div class=\"pane\" style=${startStyle}><slot name=\"start\"></slot></div>\n <div\n class=\"handle\"\n role=\"separator\"\n tabindex=\"0\"\n aria-orientation=${horizontal ? 'vertical' : 'horizontal'}\n aria-valuenow=${Math.round(this._size * 100)}\n aria-valuemin=${Math.round(this.min * 100)}\n aria-valuemax=${Math.round(this.max * 100)}\n @pointerdown=${this._onPointerDown}\n @keydown=${this._onKeydown}\n ></div>\n <div class=\"pane\" style=${endStyle}><slot name=\"end\"></slot></div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-resizable': CgResizable;\n }\n}\n"],"names":["CgResizable","LitElement","v","next","handle","pointerId","rect","move","ev","fraction","up","step","horizontal","decreaseKey","increaseKey","startStyle","endStyle","html","hostBlock","reducedMotion","css","__decorateClass","property","state","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"cg-resizable.js","sources":["../../../src/components/cg-resizable/cg-resizable.ts"],"sourcesContent":["import { LitElement, html, css, type PropertyValues } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\n/**\n * @element cg-resizable\n * Two-pane split container with a draggable handle.\n *\n * @slot start - First pane (left or top).\n * @slot end - Second pane (right or bottom).\n *\n * @fires {CustomEvent<{size:number}>} cg-resize - When the split ratio changes.\n */\n@customElement('cg-resizable')\nexport class CgResizable extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n :host {\n display: flex;\n width: 100%;\n height: 100%;\n min-height: var(--cg-spacing-160);\n overflow: hidden;\n }\n :host([direction=\"vertical\"]) { flex-direction: column; }\n\n .pane {\n overflow: auto;\n position: relative;\n }\n\n .handle {\n flex-shrink: 0;\n position: relative;\n z-index: var(--cg-z-index-100);\n transition:\n background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n border-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n :host([direction=\"horizontal\"]) .handle {\n width: var(--cg-spacing-6);\n cursor: col-resize;\n background: transparent;\n border-left: var(--cg-border-width-50) solid var(--cg-color-surface-container-border);\n border-right: var(--cg-border-width-50) solid var(--cg-color-surface-container-border);\n }\n :host([direction=\"vertical\"]) .handle {\n height: var(--cg-spacing-6);\n cursor: row-resize;\n background: transparent;\n border-top: var(--cg-border-width-50) solid var(--cg-color-surface-container-border);\n border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-container-border);\n }\n\n /* Invisible hit area — extends the handle on the perpendicular axis to\n hit the WCAG 2.5.5 / Cognivo 44px minimum touch-target requirement. */\n .handle::after {\n content: '';\n position: absolute;\n inset: 0;\n }\n :host([direction=\"horizontal\"]) .handle::after {\n left: calc(var(--cg-spacing-20) * -1);\n right: calc(var(--cg-spacing-20) * -1);\n }\n :host([direction=\"vertical\"]) .handle::after {\n top: calc(var(--cg-spacing-20) * -1);\n bottom: calc(var(--cg-spacing-20) * -1);\n }\n\n /* Visible grip glyph — three small bars centered on the handle so users\n see it's draggable. */\n .handle::before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n transition:\n background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default),\n box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n :host([direction=\"horizontal\"]) .handle::before {\n width: var(--cg-border-width-50);\n height: var(--cg-spacing-24);\n background: var(--cg-color-surface-container-outlined);\n box-shadow:\n calc(var(--cg-spacing-4) * -1) 0 0 0 var(--cg-color-surface-container-outlined),\n var(--cg-spacing-4) 0 0 0 var(--cg-color-surface-container-outlined);\n }\n :host([direction=\"vertical\"]) .handle::before {\n width: var(--cg-spacing-24);\n height: var(--cg-border-width-50);\n background: var(--cg-color-surface-container-outlined);\n box-shadow:\n 0 calc(var(--cg-spacing-4) * -1) 0 0 var(--cg-color-surface-container-outlined),\n 0 var(--cg-spacing-4) 0 0 var(--cg-color-surface-container-outlined);\n }\n\n /* Hover + focus-visible — brand-accent borders + tinted fill. */\n :host([direction=\"horizontal\"]) .handle:hover,\n :host([direction=\"horizontal\"]) .handle:focus-visible {\n border-left-color: var(--cg-color-action-primary-border-default);\n border-right-color: var(--cg-color-action-primary-border-default);\n background: var(--cg-overlay-accent-medium);\n outline: none;\n }\n :host([direction=\"vertical\"]) .handle:hover,\n :host([direction=\"vertical\"]) .handle:focus-visible {\n border-top-color: var(--cg-color-action-primary-border-default);\n border-bottom-color: var(--cg-color-action-primary-border-default);\n background: var(--cg-overlay-accent-medium);\n outline: none;\n }\n .handle:hover::before,\n .handle:focus-visible::before {\n background: var(--cg-color-accent-text);\n }\n :host([direction=\"horizontal\"]) .handle:hover::before,\n :host([direction=\"horizontal\"]) .handle:focus-visible::before {\n box-shadow:\n calc(var(--cg-spacing-4) * -1) 0 0 0 var(--cg-color-accent-text),\n var(--cg-spacing-4) 0 0 0 var(--cg-color-accent-text);\n }\n :host([direction=\"vertical\"]) .handle:hover::before,\n :host([direction=\"vertical\"]) .handle:focus-visible::before {\n box-shadow:\n 0 calc(var(--cg-spacing-4) * -1) 0 0 var(--cg-color-accent-text),\n 0 var(--cg-spacing-4) 0 0 var(--cg-color-accent-text);\n }\n\n /* Active drag — stronger tint while pointer is down. */\n .handle[data-dragging] {\n background: color-mix(in srgb, var(--cg-color-action-primary-background-default) 35%, transparent);\n }\n\n .handle:focus-visible {\n box-shadow:\n 0 0 0 var(--cg-focus-ring-offset) var(--cg-color-focus-ring-offset),\n 0 0 0 calc(var(--cg-focus-ring-offset) + var(--cg-focus-ring-width)) var(--cg-color-focus-ring);\n }\n `];\n\n @property({ reflect: true }) direction: 'horizontal' | 'vertical' = 'horizontal';\n @property({ type: Number }) defaultSize = 0.5;\n @property({ type: Number }) min = 0.1;\n @property({ type: Number }) max = 0.9;\n /** Accessible name for the resize handle (window-splitter pattern). */\n @property({ attribute: 'handle-label' }) handleLabel = 'Resize panes';\n\n @state() private _size = 0.5;\n\n protected override willUpdate(changed: PropertyValues<this>): void {\n if (changed.has('min') || changed.has('max')) {\n this._size = this._clamp(this._size);\n }\n }\n\n private _activeMove: ((ev: PointerEvent) => void) | null = null;\n private _activeUp: (() => void) | null = null;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._size = this._clamp(this.defaultSize);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n // Drop any in-progress drag listeners so an unmount mid-drag doesn't leak.\n if (this._activeMove) window.removeEventListener('pointermove', this._activeMove);\n if (this._activeUp) window.removeEventListener('pointerup', this._activeUp);\n this._activeMove = null;\n this._activeUp = null;\n }\n\n private _clamp(v: number): number {\n return Math.max(this.min, Math.min(this.max, v));\n }\n\n private _setSize(v: number): void {\n const next = this._clamp(v);\n if (next === this._size) return;\n this._size = next;\n this.dispatchEvent(new CustomEvent('cg-resize', {\n bubbles: true,\n composed: true,\n detail: { size: next },\n }));\n }\n\n private _onPointerDown(e: PointerEvent): void {\n e.preventDefault();\n const handle = e.currentTarget as HTMLElement;\n handle.focus();\n const pointerId = e.pointerId;\n handle.setPointerCapture?.(pointerId);\n handle.setAttribute('data-dragging', '');\n const rect = this.getBoundingClientRect();\n const move = (ev: PointerEvent) => {\n const fraction =\n this.direction === 'horizontal'\n ? (ev.clientX - rect.left) / rect.width\n : (ev.clientY - rect.top) / rect.height;\n this._setSize(fraction);\n };\n const up = () => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n window.removeEventListener('pointercancel', up);\n try { handle.releasePointerCapture?.(pointerId); } catch { /* already released */ }\n handle.removeAttribute('data-dragging');\n this._activeMove = null;\n this._activeUp = null;\n };\n this._activeMove = move;\n this._activeUp = up;\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n window.addEventListener('pointercancel', up);\n }\n\n private _onKeydown(e: KeyboardEvent): void {\n // 5% per arrow press, 10% with Shift, 10% on PageUp/PageDown.\n const baseStep = 0.05;\n const step = e.shiftKey ? baseStep * 2 : baseStep;\n const horizontal = this.direction === 'horizontal';\n const decreaseKey = horizontal ? 'ArrowLeft' : 'ArrowUp';\n const increaseKey = horizontal ? 'ArrowRight' : 'ArrowDown';\n switch (e.key) {\n case decreaseKey:\n e.preventDefault();\n this._setSize(this._size - step);\n break;\n case increaseKey:\n e.preventDefault();\n this._setSize(this._size + step);\n break;\n case 'PageUp':\n e.preventDefault();\n this._setSize(this._size - 0.1);\n break;\n case 'PageDown':\n e.preventDefault();\n this._setSize(this._size + 0.1);\n break;\n case 'Home':\n e.preventDefault();\n this._setSize(this.min);\n break;\n case 'End':\n e.preventDefault();\n this._setSize(this.max);\n break;\n }\n }\n\n override render() {\n const horizontal = this.direction === 'horizontal';\n const startStyle = horizontal\n ? `width: ${this._size * 100}%; height: 100%;`\n : `height: ${this._size * 100}%; width: 100%;`;\n const endStyle = horizontal\n ? `width: ${(1 - this._size) * 100}%; height: 100%;`\n : `height: ${(1 - this._size) * 100}%; width: 100%;`;\n\n return html`\n <div class=\"pane\" style=${startStyle}><slot name=\"start\"></slot></div>\n <div\n class=\"handle\"\n role=\"separator\"\n tabindex=\"0\"\n aria-label=${this.handleLabel}\n aria-orientation=${horizontal ? 'vertical' : 'horizontal'}\n aria-valuenow=${Math.round(this._size * 100)}\n aria-valuemin=${Math.round(this.min * 100)}\n aria-valuemax=${Math.round(this.max * 100)}\n @pointerdown=${this._onPointerDown}\n @keydown=${this._onKeydown}\n ></div>\n <div class=\"pane\" style=${endStyle}><slot name=\"end\"></slot></div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-resizable': CgResizable;\n }\n}\n"],"names":["CgResizable","LitElement","changed","v","next","handle","pointerId","rect","move","ev","fraction","up","step","horizontal","decreaseKey","increaseKey","startStyle","endStyle","html","hostBlock","reducedMotion","css","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -17,6 +17,14 @@ export declare class CgScrollArea extends LitElement {
17
17
  static styles: import('lit').CSSResult[];
18
18
  orientation: 'vertical' | 'horizontal' | 'both';
19
19
  type: 'auto' | 'always' | 'hover';
20
+ /** Accessible name for the scroll region (role="region" is only emitted
21
+ * when named — an anonymous focusable container is an AT dead stop). */
22
+ label: string;
23
+ private _scrollable;
24
+ private _resizeObserver;
25
+ firstUpdated(): void;
26
+ disconnectedCallback(): void;
27
+ private _updateScrollable;
20
28
  render(): import('lit').TemplateResult<1>;
21
29
  }
22
30
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"cg-scroll-area.d.ts","sourceRoot":"","sources":["../../../src/components/cg-scroll-area/cg-scroll-area.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAI5C;;;;;;;;;;;;;GAaG;AACH,qBACa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,4BA6EnB;IAE0B,WAAW,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAc;IAC7D,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAW;IAEhE,MAAM;CAOhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
1
+ {"version":3,"file":"cg-scroll-area.d.ts","sourceRoot":"","sources":["../../../src/components/cg-scroll-area/cg-scroll-area.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD;;;;;;;;;;;;;GAaG;AACH,qBACa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,4BAgGnB;IAE0B,WAAW,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAc;IAC7D,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAW;IACzE;6EACyE;IAC7D,KAAK,SAAM;IAEd,OAAO,CAAC,WAAW,CAAS;IAErC,OAAO,CAAC,eAAe,CAA6B;IAE3C,YAAY,IAAI,IAAI;IAQpB,oBAAoB,IAAI,IAAI;IAMrC,OAAO,CAAC,iBAAiB;IAMhB,MAAM;CAehB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}