@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,23 +1,23 @@
1
- import { css as h, LitElement as g, nothing as u, html as c } from "lit";
2
- import { property as s, customElement as b } from "lit/decorators.js";
3
- import { a as p, r as f } from "../../chunks/premium.css-9I4kHrsl.js";
4
- var v = Object.defineProperty, k = Object.getOwnPropertyDescriptor, a = (t, o, n, i) => {
5
- for (var r = i > 1 ? void 0 : i ? k(o, n) : o, l = t.length - 1, d; l >= 0; l--)
6
- (d = t[l]) && (r = (i ? d(o, n, r) : d(r)) || r);
7
- return i && r && v(o, n, r), r;
1
+ import { css as g, LitElement as u, nothing as d, html as c } from "lit";
2
+ import { property as r, customElement as b } from "lit/decorators.js";
3
+ import { a as p, r as f } from "../../chunks/premium.css-DHekUEUt.js";
4
+ var v = Object.defineProperty, k = Object.getOwnPropertyDescriptor, a = (e, o, l, i) => {
5
+ for (var s = i > 1 ? void 0 : i ? k(o, l) : o, n = e.length - 1, h; n >= 0; n--)
6
+ (h = e[n]) && (s = (i ? h(o, l, s) : h(s)) || s);
7
+ return i && s && v(o, l, s), s;
8
8
  };
9
- let e = class extends g {
9
+ let t = class extends u {
10
10
  constructor() {
11
- super(), this.label = "", this.checked = !1, this.disabled = !1, this.error = !1, this.success = !1, this.loading = !1, this.name = "", typeof this.attachInternals == "function" && (this._internals = this.attachInternals());
11
+ super(), this.label = "", this.ariaLabel = null, this.checked = !1, this.disabled = !1, this.error = !1, this.success = !1, this.loading = !1, this.name = "", typeof this.attachInternals == "function" && (this._internals = this.attachInternals());
12
12
  }
13
- updated(t) {
14
- super.updated(t), t.has("checked") && this._internals?.setFormValue(this.checked ? "on" : null);
13
+ updated(e) {
14
+ super.updated(e), e.has("checked") && this._internals?.setFormValue(this.checked ? "on" : null);
15
15
  }
16
16
  formResetCallback() {
17
17
  this.checked = this.hasAttribute("checked");
18
18
  }
19
- formStateRestoreCallback(t) {
20
- this.checked = t === "on";
19
+ formStateRestoreCallback(e) {
20
+ this.checked = e === "on";
21
21
  }
22
22
  _toggle() {
23
23
  this.disabled || this.loading || (this.checked = !this.checked, this.dispatchEvent(new CustomEvent("cg-change", {
@@ -31,31 +31,28 @@ let e = class extends g {
31
31
  <label
32
32
  tabindex=${this.disabled ? "-1" : "0"}
33
33
  role="switch"
34
+ aria-label=${!this.label && this.ariaLabel ? this.ariaLabel : d}
34
35
  aria-checked=${String(this.checked)}
35
36
  aria-disabled=${String(this.disabled)}
36
37
  aria-invalid=${this.error ? "true" : "false"}
37
38
  aria-busy=${this.loading ? "true" : "false"}
38
39
  @click=${this._toggle}
39
- @keydown=${(t) => {
40
- (t.key === " " || t.key === "Enter") && (t.preventDefault(), this._toggle());
40
+ @keydown=${(e) => {
41
+ (e.key === " " || e.key === "Enter") && (e.preventDefault(), this._toggle());
41
42
  }}
42
43
  >
43
- <input type="checkbox" .checked=${this.checked}
44
- ?disabled=${this.disabled} tabindex="-1" aria-hidden="true"
45
- @click=${(t) => t.stopPropagation()} />
46
-
47
44
  ${this.loading ? c`<span class="loading-spinner" aria-hidden="true"></span>` : c`
48
45
  <span class="track ${this.checked ? "checked" : ""}">
49
46
  <span class="thumb"></span>
50
47
  </span>`}
51
48
 
52
- ${this.label ? c`<span class="label-text">${this.label}</span>` : u}
49
+ ${this.label ? c`<span class="label-text">${this.label}</span>` : d}
53
50
  </label>
54
51
  `;
55
52
  }
56
53
  };
57
- e.formAssociated = !0;
58
- e.styles = [p, f, h`
54
+ t.formAssociated = !0;
55
+ t.styles = [p, f, g`
59
56
  label {
60
57
  display: inline-flex;
61
58
  align-items: center;
@@ -163,14 +160,6 @@ e.styles = [p, f, h`
163
160
  to { transform: rotate(360deg); }
164
161
  }
165
162
 
166
- /* Hidden native input */
167
- input {
168
- position: absolute;
169
- opacity: 0;
170
- width: 0;
171
- height: 0;
172
- pointer-events: none;
173
- }
174
163
 
175
164
  /* Label text */
176
165
  .label-text {
@@ -181,30 +170,33 @@ e.styles = [p, f, h`
181
170
  }
182
171
  `];
183
172
  a([
184
- s()
185
- ], e.prototype, "label", 2);
173
+ r()
174
+ ], t.prototype, "label", 2);
175
+ a([
176
+ r({ attribute: "aria-label" })
177
+ ], t.prototype, "ariaLabel", 2);
186
178
  a([
187
- s({ type: Boolean })
188
- ], e.prototype, "checked", 2);
179
+ r({ type: Boolean })
180
+ ], t.prototype, "checked", 2);
189
181
  a([
190
- s({ type: Boolean, reflect: !0 })
191
- ], e.prototype, "disabled", 2);
182
+ r({ type: Boolean, reflect: !0 })
183
+ ], t.prototype, "disabled", 2);
192
184
  a([
193
- s({ type: Boolean, reflect: !0 })
194
- ], e.prototype, "error", 2);
185
+ r({ type: Boolean, reflect: !0 })
186
+ ], t.prototype, "error", 2);
195
187
  a([
196
- s({ type: Boolean, reflect: !0 })
197
- ], e.prototype, "success", 2);
188
+ r({ type: Boolean, reflect: !0 })
189
+ ], t.prototype, "success", 2);
198
190
  a([
199
- s({ type: Boolean, reflect: !0 })
200
- ], e.prototype, "loading", 2);
191
+ r({ type: Boolean, reflect: !0 })
192
+ ], t.prototype, "loading", 2);
201
193
  a([
202
- s()
203
- ], e.prototype, "name", 2);
204
- e = a([
194
+ r()
195
+ ], t.prototype, "name", 2);
196
+ t = a([
205
197
  b("cg-switch")
206
- ], e);
198
+ ], t);
207
199
  export {
208
- e as CgSwitch
200
+ t as CgSwitch
209
201
  };
210
202
  //# sourceMappingURL=cg-switch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cg-switch.js","sources":["../../../src/components/cg-switch/cg-switch.ts"],"sourcesContent":["import { LitElement, html, css, nothing, type PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { hostBase, reducedMotion } from '../../styles/index.js';\n\n/**\n * @element cg-switch\n * Toggle switch with spring-animated thumb.\n *\n * @example\n * ```html\n * <cg-switch label=\"Dark mode\" checked></cg-switch>\n * <cg-switch label=\"Notifications\"></cg-switch>\n * <cg-switch disabled label=\"Locked\"></cg-switch>\n * ```\n *\n * @fires {CustomEvent<{checked: boolean}>} cg-change - When toggled on/off\n */\n@customElement('cg-switch')\nexport class CgSwitch extends LitElement {\n static formAssociated = true;\n private _internals: ElementInternals | undefined;\n\n constructor() {\n super();\n if (typeof this.attachInternals === 'function') {\n this._internals = this.attachInternals();\n }\n }\n\n static override styles = [hostBase, reducedMotion, css`\n label {\n display: inline-flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n cursor: pointer;\n min-height: 44px;\n -webkit-tap-highlight-color: transparent;\n user-select: none;\n }\n :host([disabled]) label { pointer-events: none; }\n :host([disabled]) .track {\n background: var(--cg-color-toggle-background-disabled);\n }\n :host([disabled]) .thumb {\n background: var(--cg-color-toggle-thumb-disabled);\n }\n\n /* ── Track ── */\n .track {\n position: relative;\n width: var(--cg-component-switch-width);\n height: var(--cg-component-switch-height);\n border-radius: var(--cg-border-radius-full);\n background: var(--cg-color-toggle-background-off);\n transition: background var(--cg-transition-duration-fast) var(--cg-transition-easing-default), box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n flex-shrink: 0;\n }\n\n /* Track checked */\n .track.checked {\n background: var(--cg-color-toggle-background-on);\n }\n\n /* ── Thumb ── */\n .thumb {\n position: absolute;\n width: var(--cg-spacing-20);\n height: var(--cg-spacing-20);\n border-radius: var(--cg-border-radius-full);\n background: var(--cg-color-toggle-thumb-off);\n top: var(--cg-spacing-2);\n left: var(--cg-spacing-2);\n transition: transform var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out), width var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n box-shadow: var(--cg-elevation-1);\n }\n\n /* Thumb checked — slide right */\n .track.checked .thumb {\n background: var(--cg-color-toggle-thumb-on);\n transform: translateX(var(--cg-spacing-20));\n }\n\n /* ── Hover — thumb grows slightly ── */\n :host(:not([disabled])) label:hover .thumb {\n box-shadow: var(--cg-elevation-2);\n transform: scale(1.05);\n }\n :host(:not([disabled])) label:hover .track.checked .thumb {\n transform: translateX(var(--cg-spacing-20)) scale(1.05);\n }\n\n /* ── Press — thumb stretches horizontally ── */\n :host(:not([disabled])) label:active .thumb {\n width: var(--cg-spacing-24);\n transform: none;\n }\n :host(:not([disabled])) label:active .track.checked .thumb {\n width: var(--cg-spacing-24);\n transform: translateX(var(--cg-spacing-16));\n }\n\n /* ── Focus ring ── */\n label:focus-visible .track {\n box-shadow: 0 0 0 2px var(--cg-color-focus-ring-offset), 0 0 0 4px var(--cg-color-focus-ring);\n }\n\n /* ── Error state ── */\n :host([error]) .track.checked {\n background: var(--cg-color-status-error-text-default);\n }\n :host([error]) .label-text {\n color: var(--cg-color-status-error-text-default);\n }\n\n /* ── Success state ── */\n :host([success]) .track.checked {\n background: var(--cg-color-status-success-text-default);\n }\n :host([success]) .label-text {\n color: var(--cg-color-status-success-text-default);\n }\n\n /* ── Loading state ── */\n :host([loading]) label { pointer-events: none; opacity: 0.5; }\n .loading-spinner {\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n border: var(--cg-border-width-100) solid var(--cg-color-loading-spinner-secondary);\n border-top-color: var(--cg-color-loading-spinner-primary);\n border-radius: var(--cg-border-radius-full);\n animation: cg-switch-spin var(--cg-transition-duration-slow) linear infinite;\n flex-shrink: 0;\n }\n @keyframes cg-switch-spin {\n to { transform: rotate(360deg); }\n }\n\n /* Hidden native input */\n input {\n position: absolute;\n opacity: 0;\n width: 0;\n height: 0;\n pointer-events: none;\n }\n\n /* Label text */\n .label-text {\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-medium);\n color: var(--cg-color-surface-base-text);\n line-height: var(--cg-line-height-snug);\n }\n `];\n\n @property() label = '';\n @property({ type: Boolean }) checked = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) error = false;\n @property({ type: Boolean, reflect: true }) success = false;\n @property({ type: Boolean, reflect: true }) loading = false;\n @property() name = '';\n\n override updated(changed: PropertyValues) {\n super.updated(changed);\n if (changed.has('checked')) {\n this._internals?.setFormValue(this.checked ? 'on' : null);\n }\n }\n\n formResetCallback() {\n this.checked = this.hasAttribute('checked');\n }\n\n formStateRestoreCallback(state: string) {\n this.checked = state === 'on';\n }\n\n private _toggle() {\n if (this.disabled || this.loading) return;\n this.checked = !this.checked;\n this.dispatchEvent(new CustomEvent('cg-change', {\n detail: { checked: this.checked },\n bubbles: true, composed: true,\n }));\n }\n\n override render() {\n return html`\n <label\n tabindex=${this.disabled ? '-1' : '0'}\n role=\"switch\"\n aria-checked=${String(this.checked)}\n aria-disabled=${String(this.disabled)}\n aria-invalid=${this.error ? 'true' : 'false'}\n aria-busy=${this.loading ? 'true' : 'false'}\n @click=${this._toggle}\n @keydown=${(e: KeyboardEvent) => { if (e.key === ' ' || e.key === 'Enter') { e.preventDefault(); this._toggle(); } }}\n >\n <input type=\"checkbox\" .checked=${this.checked}\n ?disabled=${this.disabled} tabindex=\"-1\" aria-hidden=\"true\"\n @click=${(e: Event) => e.stopPropagation()} />\n\n ${this.loading ? html`<span class=\"loading-spinner\" aria-hidden=\"true\"></span>` : html`\n <span class=\"track ${this.checked ? 'checked' : ''}\">\n <span class=\"thumb\"></span>\n </span>`}\n\n ${this.label ? html`<span class=\"label-text\">${this.label}</span>` : nothing}\n </label>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap { 'cg-switch': CgSwitch; }\n}\n"],"names":["CgSwitch","LitElement","changed","state","html","e","nothing","hostBase","reducedMotion","css","__decorateClass","property","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"cg-switch.js","sources":["../../../src/components/cg-switch/cg-switch.ts"],"sourcesContent":["import { LitElement, html, css, nothing, type PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { hostBase, reducedMotion } from '../../styles/index.js';\n\n/**\n * @element cg-switch\n * Toggle switch with spring-animated thumb.\n *\n * @example\n * ```html\n * <cg-switch label=\"Dark mode\" checked></cg-switch>\n * <cg-switch label=\"Notifications\"></cg-switch>\n * <cg-switch disabled label=\"Locked\"></cg-switch>\n * ```\n *\n * @fires {CustomEvent<{checked: boolean}>} cg-change - When toggled on/off\n */\n@customElement('cg-switch')\nexport class CgSwitch extends LitElement {\n static formAssociated = true;\n private _internals: ElementInternals | undefined;\n\n constructor() {\n super();\n if (typeof this.attachInternals === 'function') {\n this._internals = this.attachInternals();\n }\n }\n\n static override styles = [hostBase, reducedMotion, css`\n label {\n display: inline-flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n cursor: pointer;\n min-height: 44px;\n -webkit-tap-highlight-color: transparent;\n user-select: none;\n }\n :host([disabled]) label { pointer-events: none; }\n :host([disabled]) .track {\n background: var(--cg-color-toggle-background-disabled);\n }\n :host([disabled]) .thumb {\n background: var(--cg-color-toggle-thumb-disabled);\n }\n\n /* ── Track ── */\n .track {\n position: relative;\n width: var(--cg-component-switch-width);\n height: var(--cg-component-switch-height);\n border-radius: var(--cg-border-radius-full);\n background: var(--cg-color-toggle-background-off);\n transition: background var(--cg-transition-duration-fast) var(--cg-transition-easing-default), box-shadow var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n flex-shrink: 0;\n }\n\n /* Track checked */\n .track.checked {\n background: var(--cg-color-toggle-background-on);\n }\n\n /* ── Thumb ── */\n .thumb {\n position: absolute;\n width: var(--cg-spacing-20);\n height: var(--cg-spacing-20);\n border-radius: var(--cg-border-radius-full);\n background: var(--cg-color-toggle-thumb-off);\n top: var(--cg-spacing-2);\n left: var(--cg-spacing-2);\n transition: transform var(--cg-transition-duration-default) var(--cg-transition-easing-ease-out), width var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n box-shadow: var(--cg-elevation-1);\n }\n\n /* Thumb checked — slide right */\n .track.checked .thumb {\n background: var(--cg-color-toggle-thumb-on);\n transform: translateX(var(--cg-spacing-20));\n }\n\n /* ── Hover — thumb grows slightly ── */\n :host(:not([disabled])) label:hover .thumb {\n box-shadow: var(--cg-elevation-2);\n transform: scale(1.05);\n }\n :host(:not([disabled])) label:hover .track.checked .thumb {\n transform: translateX(var(--cg-spacing-20)) scale(1.05);\n }\n\n /* ── Press — thumb stretches horizontally ── */\n :host(:not([disabled])) label:active .thumb {\n width: var(--cg-spacing-24);\n transform: none;\n }\n :host(:not([disabled])) label:active .track.checked .thumb {\n width: var(--cg-spacing-24);\n transform: translateX(var(--cg-spacing-16));\n }\n\n /* ── Focus ring ── */\n label:focus-visible .track {\n box-shadow: 0 0 0 2px var(--cg-color-focus-ring-offset), 0 0 0 4px var(--cg-color-focus-ring);\n }\n\n /* ── Error state ── */\n :host([error]) .track.checked {\n background: var(--cg-color-status-error-text-default);\n }\n :host([error]) .label-text {\n color: var(--cg-color-status-error-text-default);\n }\n\n /* ── Success state ── */\n :host([success]) .track.checked {\n background: var(--cg-color-status-success-text-default);\n }\n :host([success]) .label-text {\n color: var(--cg-color-status-success-text-default);\n }\n\n /* ── Loading state ── */\n :host([loading]) label { pointer-events: none; opacity: 0.5; }\n .loading-spinner {\n width: var(--cg-spacing-16);\n height: var(--cg-spacing-16);\n border: var(--cg-border-width-100) solid var(--cg-color-loading-spinner-secondary);\n border-top-color: var(--cg-color-loading-spinner-primary);\n border-radius: var(--cg-border-radius-full);\n animation: cg-switch-spin var(--cg-transition-duration-slow) linear infinite;\n flex-shrink: 0;\n }\n @keyframes cg-switch-spin {\n to { transform: rotate(360deg); }\n }\n\n\n /* Label text */\n .label-text {\n font-size: var(--cg-font-size-sm);\n font-weight: var(--cg-font-weight-medium);\n color: var(--cg-color-surface-base-text);\n line-height: var(--cg-line-height-snug);\n }\n `];\n\n @property() label = '';\n /** Accessible name when no visible label is rendered (host aria-label is\n * forwarded to the internal switch, which carries the role). */\n @property({ attribute: 'aria-label' }) override ariaLabel: string | null = null;\n @property({ type: Boolean }) checked = false;\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) error = false;\n @property({ type: Boolean, reflect: true }) success = false;\n @property({ type: Boolean, reflect: true }) loading = false;\n @property() name = '';\n\n override updated(changed: PropertyValues) {\n super.updated(changed);\n if (changed.has('checked')) {\n this._internals?.setFormValue(this.checked ? 'on' : null);\n }\n }\n\n formResetCallback() {\n this.checked = this.hasAttribute('checked');\n }\n\n formStateRestoreCallback(state: string) {\n this.checked = state === 'on';\n }\n\n private _toggle() {\n if (this.disabled || this.loading) return;\n this.checked = !this.checked;\n this.dispatchEvent(new CustomEvent('cg-change', {\n detail: { checked: this.checked },\n bubbles: true, composed: true,\n }));\n }\n\n override render() {\n return html`\n <label\n tabindex=${this.disabled ? '-1' : '0'}\n role=\"switch\"\n aria-label=${!this.label && this.ariaLabel ? this.ariaLabel : nothing}\n aria-checked=${String(this.checked)}\n aria-disabled=${String(this.disabled)}\n aria-invalid=${this.error ? 'true' : 'false'}\n aria-busy=${this.loading ? 'true' : 'false'}\n @click=${this._toggle}\n @keydown=${(e: KeyboardEvent) => { if (e.key === ' ' || e.key === 'Enter') { e.preventDefault(); this._toggle(); } }}\n >\n ${this.loading ? html`<span class=\"loading-spinner\" aria-hidden=\"true\"></span>` : html`\n <span class=\"track ${this.checked ? 'checked' : ''}\">\n <span class=\"thumb\"></span>\n </span>`}\n\n ${this.label ? html`<span class=\"label-text\">${this.label}</span>` : nothing}\n </label>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap { 'cg-switch': CgSwitch; }\n}\n"],"names":["CgSwitch","LitElement","changed","state","html","nothing","hostBase","reducedMotion","css","__decorateClass","property","customElement"],"mappings":"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"}
@@ -6,12 +6,6 @@ export interface TableColumn {
6
6
  align?: 'left' | 'center' | 'right';
7
7
  sortable?: boolean;
8
8
  width?: string;
9
- /**
10
- * Optional cell renderer. Receives the raw value at row[index], the full
11
- * row, and the row index. Return anything Lit can render — string, number,
12
- * Node, TemplateResult. When omitted, the value is string-interpolated.
13
- */
14
- render?: (value: unknown, row: unknown[], rowIdx: number) => unknown;
15
9
  }
16
10
  /**
17
11
  * <cg-table> — Data table with sorting, selection, loading, and pagination.
@@ -55,7 +49,6 @@ export declare class CgTable extends LitElement {
55
49
  private _toggleAll;
56
50
  private _handleRowClick;
57
51
  private _handleFooterSlotChange;
58
- private _renderCell;
59
52
  private _getSortedRows;
60
53
  render(): import('lit').TemplateResult<1>;
61
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cg-table.d.ts","sourceRoot":"","sources":["../../../src/components/cg-table/cg-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CACtE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBACa,OAAQ,SAAQ,UAAU;IACrC,OAAgB,MAAM,4BAkNnB;IAEwB,OAAO,EAAE,WAAW,EAAE,CAAM;IAC5B,IAAI,EAAE,OAAO,EAAE,EAAE,CAAM;IACN,OAAO,UAAS;IAChB,OAAO,UAAS;IAChB,SAAS,UAAS;IAClB,UAAU,UAAS;IACnB,OAAO,UAAS;IAChC,WAAW,SAAK;IAChC,SAAS,SAAa;IACL,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhE,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,cAAc;IAab,MAAM;CA4EhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
1
+ {"version":3,"file":"cg-table.d.ts","sourceRoot":"","sources":["../../../src/components/cg-table/cg-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBACa,OAAQ,SAAQ,UAAU;IACrC,OAAgB,MAAM,4BAyNnB;IAEwB,OAAO,EAAE,WAAW,EAAE,CAAM;IAC5B,IAAI,EAAE,OAAO,EAAE,EAAE,CAAM;IACN,OAAO,UAAS;IAChB,OAAO,UAAS;IAChB,SAAS,UAAS;IAClB,UAAU,UAAS;IACnB,OAAO,UAAS;IAChC,WAAW,SAAK;IAChC,SAAS,SAAa;IACL,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhE,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,cAAc;IAab,MAAM;CA4EhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
@@ -1,71 +1,67 @@
1
- import { css as b, LitElement as p, nothing as h, html as c } from "lit";
1
+ import { css as b, LitElement as p, nothing as h, html as d } from "lit";
2
2
  import { property as l, state as g, customElement as u } from "lit/decorators.js";
3
- import { h as v, r as f } from "../../chunks/premium.css-9I4kHrsl.js";
4
- var y = Object.defineProperty, m = Object.getOwnPropertyDescriptor, a = (r, o, d, t) => {
5
- for (var e = t > 1 ? void 0 : t ? m(o, d) : o, i = r.length - 1, n; i >= 0; i--)
6
- (n = r[i]) && (e = (t ? n(o, d, e) : n(e)) || e);
7
- return t && e && y(o, d, e), e;
3
+ import { h as v, r as f } from "../../chunks/premium.css-DHekUEUt.js";
4
+ var y = Object.defineProperty, m = Object.getOwnPropertyDescriptor, a = (e, o, c, t) => {
5
+ for (var r = t > 1 ? void 0 : t ? m(o, c) : o, i = e.length - 1, n; i >= 0; i--)
6
+ (n = e[i]) && (r = (t ? n(o, c, r) : n(r)) || r);
7
+ return t && r && y(o, c, r), r;
8
8
  };
9
9
  let s = class extends p {
10
10
  constructor() {
11
11
  super(...arguments), this.columns = [], this.rows = [], this.striped = !1, this.compact = !1, this.clickable = !1, this.selectable = !1, this.loading = !1, this.loadingRows = 5, this.emptyText = "No data", this.rounded = "lg", this._sortKey = "", this._sortDir = "asc", this._selected = /* @__PURE__ */ new Set(), this._hasFooter = !1;
12
12
  }
13
- _handleSort(r) {
14
- r.sortable && (this._sortKey === r.key ? this._sortDir = this._sortDir === "asc" ? "desc" : "asc" : (this._sortKey = r.key, this._sortDir = "asc"), this.dispatchEvent(new CustomEvent("cg-sort", {
13
+ _handleSort(e) {
14
+ e.sortable && (this._sortKey === e.key ? this._sortDir = this._sortDir === "asc" ? "desc" : "asc" : (this._sortKey = e.key, this._sortDir = "asc"), this.dispatchEvent(new CustomEvent("cg-sort", {
15
15
  detail: { key: this._sortKey, direction: this._sortDir },
16
16
  bubbles: !0,
17
17
  composed: !0
18
18
  })));
19
19
  }
20
- _toggleRow(r) {
20
+ _toggleRow(e) {
21
21
  const o = new Set(this._selected);
22
- o.has(r) ? o.delete(r) : o.add(r), this._selected = o, this.dispatchEvent(new CustomEvent("cg-select", {
22
+ o.has(e) ? o.delete(e) : o.add(e), this._selected = o, this.dispatchEvent(new CustomEvent("cg-select", {
23
23
  detail: { indices: [...o] },
24
24
  bubbles: !0,
25
25
  composed: !0
26
26
  }));
27
27
  }
28
28
  _toggleAll() {
29
- this._selected.size === this.rows.length ? this._selected = /* @__PURE__ */ new Set() : this._selected = new Set(this.rows.map((r, o) => o)), this.dispatchEvent(new CustomEvent("cg-select", {
29
+ this._selected.size === this.rows.length ? this._selected = /* @__PURE__ */ new Set() : this._selected = new Set(this.rows.map((e, o) => o)), this.dispatchEvent(new CustomEvent("cg-select", {
30
30
  detail: { indices: [...this._selected] },
31
31
  bubbles: !0,
32
32
  composed: !0
33
33
  }));
34
34
  }
35
- _handleRowClick(r, o) {
35
+ _handleRowClick(e, o) {
36
36
  this.clickable && this.dispatchEvent(new CustomEvent("cg-row-click", {
37
- detail: { index: r, row: o },
37
+ detail: { index: e, row: o },
38
38
  bubbles: !0,
39
39
  composed: !0
40
40
  }));
41
41
  }
42
- _handleFooterSlotChange(r) {
43
- const o = r.target;
42
+ _handleFooterSlotChange(e) {
43
+ const o = e.target;
44
44
  this._hasFooter = o.assignedNodes({ flatten: !0 }).length > 0;
45
45
  }
46
- _renderCell(r, o, d, t) {
47
- const e = o[t];
48
- return r.render ? r.render(e, o, d) : e ?? "";
49
- }
50
46
  _getSortedRows() {
51
47
  if (!this._sortKey) return this.rows;
52
- const r = this.columns.findIndex((d) => d.key === this._sortKey);
53
- if (r === -1) return this.rows;
54
- const o = [...this.rows].sort((d, t) => {
55
- const e = d[r], i = t[r];
56
- return typeof e == "number" && typeof i == "number" ? e - i : String(e ?? "").localeCompare(String(i ?? ""));
48
+ const e = this.columns.findIndex((c) => c.key === this._sortKey);
49
+ if (e === -1) return this.rows;
50
+ const o = [...this.rows].sort((c, t) => {
51
+ const r = c[e], i = t[e];
52
+ return typeof r == "number" && typeof i == "number" ? r - i : String(r ?? "").localeCompare(String(i ?? ""));
57
53
  });
58
54
  return this._sortDir === "desc" ? o.reverse() : o;
59
55
  }
60
56
  render() {
61
- const r = this._getSortedRows(), o = this.rows.length > 0 && this._selected.size === this.rows.length, d = ["short", "long", "med", "short"];
62
- return c`
57
+ const e = this._getSortedRows(), o = this.rows.length > 0 && this._selected.size === this.rows.length, c = ["short", "long", "med", "short"];
58
+ return d`
63
59
  <div class="table-wrapper">
64
60
  <div class="table-scroll">
65
61
  <table role="table">
66
62
  <thead>
67
63
  <tr>
68
- ${this.selectable ? c`
64
+ ${this.selectable ? d`
69
65
  <th class="select-col">
70
66
  <cg-checkbox size="sm"
71
67
  ?checked=${o}
@@ -74,52 +70,52 @@ let s = class extends p {
74
70
  aria-label="Select all rows"></cg-checkbox>
75
71
  </th>
76
72
  ` : h}
77
- ${this.columns.map((t) => c`
73
+ ${this.columns.map((t) => d`
78
74
  <th
79
75
  class="${t.sortable ? "sortable" : ""} ${this._sortKey === t.key ? "sorted" : ""}"
80
76
  data-align=${t.align ?? "left"}
81
77
  style=${t.width ? `width: ${t.width}` : ""}
82
78
  tabindex=${t.sortable ? "0" : h}
83
79
  @click=${() => this._handleSort(t)}
84
- @keydown=${(e) => {
85
- t.sortable && (e.key === "Enter" || e.key === " ") && (e.preventDefault(), this._handleSort(t));
80
+ @keydown=${(r) => {
81
+ t.sortable && (r.key === "Enter" || r.key === " ") && (r.preventDefault(), this._handleSort(t));
86
82
  }}
87
83
  aria-sort=${this._sortKey === t.key ? this._sortDir === "asc" ? "ascending" : "descending" : h}
88
84
  >
89
85
  ${t.label}
90
- ${t.sortable ? c`<span class="sort-icon"><cg-icon name="${this._sortKey === t.key ? this._sortDir === "asc" ? "arrow-up" : "arrow-down" : "sort"}" size="xs"></cg-icon></span>` : h}
86
+ ${t.sortable ? d`<span class="sort-icon"><cg-icon name="${this._sortKey === t.key ? this._sortDir === "asc" ? "arrow-up" : "arrow-down" : "sort"}" size="xs"></cg-icon></span>` : h}
91
87
  </th>
92
88
  `)}
93
89
  </tr>
94
90
  </thead>
95
91
  <tbody>
96
- ${this.loading ? Array.from({ length: this.loadingRows }, (t, e) => c`
92
+ ${this.loading ? Array.from({ length: this.loadingRows }, (t, r) => d`
97
93
  <tr class="loading-row">
98
- ${this.selectable ? c`<td class="select-col"><div class="loading-bar short" style="width:16px;height:16px;border-radius:4px;margin:0 auto;"></div></td>` : h}
99
- ${this.columns.map((i, n) => c`
100
- <td><div class="loading-bar ${d[n % d.length]}"></div></td>
94
+ ${this.selectable ? d`<td class="select-col"><div class="loading-bar short" style="width:16px;height:16px;border-radius:4px;margin:0 auto;"></div></td>` : h}
95
+ ${this.columns.map((i, n) => d`
96
+ <td><div class="loading-bar ${c[n % c.length]}"></div></td>
101
97
  `)}
102
98
  </tr>
103
- `) : r.length === 0 ? c`
99
+ `) : e.length === 0 ? d`
104
100
  <tr>
105
- <td colspan=${this.columns.length + (this.selectable ? 1 : 0)}>
101
+ <td class="empty-cell" colspan=${this.columns.length + (this.selectable ? 1 : 0)}>
106
102
  <div class="empty-state">${this.emptyText}</div>
107
103
  </td>
108
104
  </tr>
109
- ` : r.map((t, e) => c`
110
- <tr class="${this._selected.has(e) ? "selected" : ""}"
111
- @click=${() => this._handleRowClick(e, t)}>
112
- ${this.selectable ? c`
105
+ ` : e.map((t, r) => d`
106
+ <tr class="${this._selected.has(r) ? "selected" : ""}"
107
+ @click=${() => this._handleRowClick(r, t)}>
108
+ ${this.selectable ? d`
113
109
  <td class="select-col" @click=${(i) => i.stopPropagation()}>
114
110
  <cg-checkbox size="sm"
115
- ?checked=${this._selected.has(e)}
116
- @cg-change=${() => this._toggleRow(e)}
111
+ ?checked=${this._selected.has(r)}
112
+ @cg-change=${() => this._toggleRow(r)}
117
113
  label=""
118
- aria-label=${`Select row ${e + 1}`}></cg-checkbox>
114
+ aria-label=${`Select row ${r + 1}`}></cg-checkbox>
119
115
  </td>
120
116
  ` : h}
121
- ${this.columns.map((i, n) => c`
122
- <td data-align=${i.align ?? "left"}>${this._renderCell(i, t, e, n)}</td>
117
+ ${this.columns.map((i, n) => d`
118
+ <td data-align=${i.align ?? "left"}>${t[n] ?? ""}</td>
123
119
  `)}
124
120
  </tr>
125
121
  `)}
@@ -298,8 +294,15 @@ s.styles = [v, f, b`
298
294
  }
299
295
 
300
296
  /* ── Empty state ── */
297
+ /* The empty-state cell controls its own spacing — strip the row's td
298
+ padding so it doesn't stack on top, which made the vertical gap read
299
+ larger than the left/right. Even padding keeps it centered in the
300
+ inner container on all four sides. */
301
+ td.empty-cell {
302
+ padding: 0;
303
+ }
301
304
  .empty-state {
302
- padding: var(--cg-spacing-32) var(--cg-spacing-24);
305
+ padding: var(--cg-spacing-32);
303
306
  text-align: center;
304
307
  font-size: var(--cg-font-size-sm);
305
308
  color: var(--cg-color-surface-container-outlined);
@@ -1 +1 @@
1
- {"version":3,"file":"cg-table.js","sources":["../../../src/components/cg-table/cg-table.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\n/** Column definition for cg-table. */\nexport interface TableColumn {\n key: string;\n label: string;\n align?: 'left' | 'center' | 'right';\n sortable?: boolean;\n width?: string;\n /**\n * Optional cell renderer. Receives the raw value at row[index], the full\n * row, and the row index. Return anything Lit can render — string, number,\n * Node, TemplateResult. When omitted, the value is string-interpolated.\n */\n render?: (value: unknown, row: unknown[], rowIdx: number) => unknown;\n}\n\n/**\n * <cg-table> — Data table with sorting, selection, loading, and pagination.\n *\n * @example\n * ```html\n * <cg-table\n * .columns=${[{key:'name',label:'Name',sortable:true},{key:'role',label:'Role'}]}\n * .rows=${[['Alice','Designer'],['Bob','Developer']]}\n * selectable striped\n * ></cg-table>\n * ```\n *\n * @slot footer - Footer area for pagination or summary\n *\n * @fires {CustomEvent<{key, direction}>} cg-sort - Column sorted\n * @fires {CustomEvent<{indices: number[]}>} cg-select - Row selection changed\n * @fires {CustomEvent<{index, row}>} cg-row-click - Row clicked\n *\n * @cssprop --cg-component-table-radius - Table border radius\n * @cssprop --cg-color-surface-table-header-background - Header background\n */\n@customElement('cg-table')\nexport class CgTable extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n .table-wrapper {\n overflow: hidden;\n background: var(--cg-color-surface-container-background);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-table-divider);\n border-radius: var(--cg-component-table-radius);\n padding: var(--cg-spacing-4) 0;\n }\n\n .table-scroll {\n overflow-x: auto;\n }\n\n /* Body area — slightly darker inset with inner rounding + border */\n tbody {\n background: var(--cg-overlay-dark-subtle);\n }\n tbody tr:first-child td {\n border-top: var(--cg-border-width-50) solid var(--cg-color-surface-table-divider);\n }\n tbody tr:last-child td {\n border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-table-divider);\n }\n tbody td:first-child {\n border-left: var(--cg-border-width-50) solid var(--cg-color-surface-table-divider);\n }\n tbody td:last-child {\n border-right: var(--cg-border-width-50) solid var(--cg-color-surface-table-divider);\n }\n tbody tr:first-child td:first-child {\n border-top-left-radius: var(--cg-border-radius-150);\n }\n tbody tr:first-child td:last-child {\n border-top-right-radius: var(--cg-border-radius-150);\n }\n tbody tr:last-child td:first-child {\n border-bottom-left-radius: var(--cg-border-radius-150);\n }\n tbody tr:last-child td:last-child {\n border-bottom-right-radius: var(--cg-border-radius-150);\n }\n\n /* Rounded variants — outer wrapper + inner tbody corners */\n :host([rounded=\"none\"]) .table-wrapper { border-radius: 0; }\n :host([rounded=\"none\"]) tbody tr:first-child td:first-child,\n :host([rounded=\"none\"]) tbody tr:first-child td:last-child,\n :host([rounded=\"none\"]) tbody tr:last-child td:first-child,\n :host([rounded=\"none\"]) tbody tr:last-child td:last-child { border-radius: 0; }\n\n :host([rounded=\"sm\"]) .table-wrapper { border-radius: var(--cg-border-radius-100); }\n :host([rounded=\"sm\"]) tbody tr:first-child td:first-child { border-top-left-radius: var(--cg-border-radius-50); }\n :host([rounded=\"sm\"]) tbody tr:first-child td:last-child { border-top-right-radius: var(--cg-border-radius-50); }\n :host([rounded=\"sm\"]) tbody tr:last-child td:first-child { border-bottom-left-radius: var(--cg-border-radius-50); }\n :host([rounded=\"sm\"]) tbody tr:last-child td:last-child { border-bottom-right-radius: var(--cg-border-radius-50); }\n\n :host([rounded=\"md\"]) .table-wrapper { border-radius: var(--cg-border-radius-150); }\n :host([rounded=\"md\"]) tbody tr:first-child td:first-child { border-top-left-radius: var(--cg-border-radius-100); }\n :host([rounded=\"md\"]) tbody tr:first-child td:last-child { border-top-right-radius: var(--cg-border-radius-100); }\n :host([rounded=\"md\"]) tbody tr:last-child td:first-child { border-bottom-left-radius: var(--cg-border-radius-100); }\n :host([rounded=\"md\"]) tbody tr:last-child td:last-child { border-bottom-right-radius: var(--cg-border-radius-100); }\n\n :host([rounded=\"lg\"]) .table-wrapper { border-radius: var(--cg-component-table-radius); }\n\n table {\n width: calc(100% - var(--cg-spacing-8) * 2);\n margin: 0 var(--cg-spacing-8);\n border-collapse: separate;\n border-spacing: 0;\n font-size: var(--cg-font-size-sm);\n }\n :host([compact]) table { font-size: var(--cg-font-size-xs); }\n\n /* ── Header ── */\n thead { position: sticky; top: 0; z-index: 1; }\n\n th {\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n text-align: left;\n font-weight: var(--cg-font-weight-medium);\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-outlined);\n background: transparent;\n border-bottom: none;\n white-space: nowrap;\n user-select: none;\n }\n :host([compact]) th {\n padding: var(--cg-spacing-6) var(--cg-spacing-12);\n }\n\n th.sortable { cursor: pointer; }\n th.sortable:hover { color: var(--cg-color-action-primary-background-default); }\n th.sortable:active {\n transform: scale(0.98);\n transition: transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n th.sortable:focus-visible {\n outline: none;\n box-shadow: inset 0 0 0 2px var(--cg-color-action-primary-background-default);\n }\n\n th .sort-icon {\n display: inline-flex;\n margin-left: var(--cg-spacing-4);\n opacity: 0.4;\n vertical-align: middle;\n }\n th.sorted .sort-icon {\n opacity: 1;\n color: var(--cg-color-action-primary-background-default);\n }\n\n th[data-align=\"center\"] { text-align: center; }\n th[data-align=\"right\"] { text-align: right; }\n\n /* ── Selection checkbox column ── */\n th.select-col, td.select-col {\n width: var(--cg-spacing-48);\n padding: 0 var(--cg-spacing-12);\n }\n th.select-col cg-checkbox,\n td.select-col cg-checkbox {\n min-height: 0;\n transform: scale(0.85);\n }\n\n /* ── Cells ── */\n td {\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n color: var(--cg-color-surface-table-text);\n border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-table-divider);\n vertical-align: middle;\n }\n :host([compact]) td {\n padding: var(--cg-spacing-6) var(--cg-spacing-12);\n }\n\n td[data-align=\"center\"] { text-align: center; }\n td[data-align=\"right\"] { text-align: right; }\n\n /* Row dividers — last row keeps its content border from the tbody border rules */\n\n /* ── Row states ── */\n tbody tr {\n transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n tbody tr:hover td {\n background: var(--cg-color-action-tertiary-background-hover);\n }\n tbody tr.selected td {\n background: var(--cg-color-action-tertiary-background-hover);\n }\n :host([clickable]) tbody tr {\n cursor: pointer;\n }\n\n /* ── Striped ── */\n :host([striped]) tbody tr:nth-child(even) td {\n background: var(--cg-color-action-tertiary-background-hover);\n }\n :host([striped]) tbody tr:nth-child(even):hover td {\n background: var(--cg-color-action-tertiary-background-hover);\n }\n\n /* ── Empty state ── */\n .empty-state {\n padding: var(--cg-spacing-32) var(--cg-spacing-24);\n text-align: center;\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-container-outlined);\n }\n\n /* ── Loading ── */\n .loading-row td {\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n }\n .loading-bar {\n height: var(--cg-spacing-12);\n border-radius: var(--cg-border-radius-50);\n background: var(--cg-color-action-secondary-background-hover);\n animation: tablePulse 2s ease-in-out infinite;\n }\n .loading-bar.short { width: 60%; }\n .loading-bar.med { width: 80%; }\n .loading-bar.long { width: 95%; }\n\n @keyframes tablePulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.4; }\n }\n\n /* ── Footer ── */\n .table-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-outlined);\n }\n .table-footer ::slotted(*) {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n }\n\n /* Reduced motion */\n @media (prefers-reduced-motion: reduce) {\n .loading-bar { animation: none; opacity: 0.6; }\n }\n `];\n\n @property({ type: Array }) columns: TableColumn[] = [];\n @property({ type: Array }) rows: unknown[][] = [];\n @property({ type: Boolean, reflect: true }) striped = false;\n @property({ type: Boolean, reflect: true }) compact = false;\n @property({ type: Boolean, reflect: true }) clickable = false;\n @property({ type: Boolean, reflect: true }) selectable = false;\n @property({ type: Boolean, reflect: true }) loading = false;\n @property({ type: Number }) loadingRows = 5;\n @property() emptyText = 'No data';\n @property({ reflect: true }) rounded: 'none' | 'sm' | 'md' | 'lg' = 'lg';\n\n @state() private _sortKey = '';\n @state() private _sortDir: 'asc' | 'desc' = 'asc';\n @state() private _selected = new Set<number>();\n @state() private _hasFooter = false;\n\n private _handleSort(col: TableColumn) {\n if (!col.sortable) return;\n if (this._sortKey === col.key) {\n this._sortDir = this._sortDir === 'asc' ? 'desc' : 'asc';\n } else {\n this._sortKey = col.key;\n this._sortDir = 'asc';\n }\n this.dispatchEvent(new CustomEvent('cg-sort', {\n detail: { key: this._sortKey, direction: this._sortDir },\n bubbles: true, composed: true,\n }));\n }\n\n private _toggleRow(index: number) {\n const next = new Set(this._selected);\n if (next.has(index)) next.delete(index);\n else next.add(index);\n this._selected = next;\n this.dispatchEvent(new CustomEvent('cg-select', {\n detail: { indices: [...next] },\n bubbles: true, composed: true,\n }));\n }\n\n private _toggleAll() {\n if (this._selected.size === this.rows.length) {\n this._selected = new Set();\n } else {\n this._selected = new Set(this.rows.map((_, i) => i));\n }\n this.dispatchEvent(new CustomEvent('cg-select', {\n detail: { indices: [...this._selected] },\n bubbles: true, composed: true,\n }));\n }\n\n private _handleRowClick(index: number, row: unknown[]) {\n if (this.clickable) {\n this.dispatchEvent(new CustomEvent('cg-row-click', {\n detail: { index, row },\n bubbles: true, composed: true,\n }));\n }\n }\n\n private _handleFooterSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this._hasFooter = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n private _renderCell(col: TableColumn, row: unknown[], rowIdx: number, i: number): unknown {\n const value = row[i];\n return col.render ? col.render(value, row, rowIdx) : (value ?? '');\n }\n\n private _getSortedRows(): unknown[][] {\n if (!this._sortKey) return this.rows;\n const idx = this.columns.findIndex(c => c.key === this._sortKey);\n if (idx === -1) return this.rows;\n const sorted = [...this.rows].sort((a, b) => {\n const va = (a as unknown[])[idx];\n const vb = (b as unknown[])[idx];\n if (typeof va === 'number' && typeof vb === 'number') return va - vb;\n return String(va ?? '').localeCompare(String(vb ?? ''));\n });\n return this._sortDir === 'desc' ? sorted.reverse() : sorted;\n }\n\n override render() {\n const sortedRows = this._getSortedRows();\n const allSelected = this.rows.length > 0 && this._selected.size === this.rows.length;\n const widths = ['short', 'long', 'med', 'short'];\n\n return html`\n <div class=\"table-wrapper\">\n <div class=\"table-scroll\">\n <table role=\"table\">\n <thead>\n <tr>\n ${this.selectable ? html`\n <th class=\"select-col\">\n <cg-checkbox size=\"sm\"\n ?checked=${allSelected}\n @cg-change=${this._toggleAll}\n label=\"\"\n aria-label=\"Select all rows\"></cg-checkbox>\n </th>\n ` : nothing}\n ${this.columns.map(col => html`\n <th\n class=\"${col.sortable ? 'sortable' : ''} ${this._sortKey === col.key ? 'sorted' : ''}\"\n data-align=${col.align ?? 'left'}\n style=${col.width ? `width: ${col.width}` : ''}\n tabindex=${col.sortable ? '0' : nothing}\n @click=${() => this._handleSort(col)}\n @keydown=${(e: KeyboardEvent) => { if (col.sortable && (e.key === 'Enter' || e.key === ' ')) { e.preventDefault(); this._handleSort(col); } }}\n aria-sort=${this._sortKey === col.key ? (this._sortDir === 'asc' ? 'ascending' : 'descending') : nothing}\n >\n ${col.label}\n ${col.sortable ? html`<span class=\"sort-icon\"><cg-icon name=\"${this._sortKey === col.key ? (this._sortDir === 'asc' ? 'arrow-up' : 'arrow-down') : 'sort'}\" size=\"xs\"></cg-icon></span>` : nothing}\n </th>\n `)}\n </tr>\n </thead>\n <tbody>\n ${this.loading ? Array.from({ length: this.loadingRows }, (_, ri) => html`\n <tr class=\"loading-row\">\n ${this.selectable ? html`<td class=\"select-col\"><div class=\"loading-bar short\" style=\"width:16px;height:16px;border-radius:4px;margin:0 auto;\"></div></td>` : nothing}\n ${this.columns.map((_, ci) => html`\n <td><div class=\"loading-bar ${widths[ci % widths.length]}\"></div></td>\n `)}\n </tr>\n `) : sortedRows.length === 0 ? html`\n <tr>\n <td colspan=${this.columns.length + (this.selectable ? 1 : 0)}>\n <div class=\"empty-state\">${this.emptyText}</div>\n </td>\n </tr>\n ` : sortedRows.map((row, rowIdx) => html`\n <tr class=\"${this._selected.has(rowIdx) ? 'selected' : ''}\"\n @click=${() => this._handleRowClick(rowIdx, row as unknown[])}>\n ${this.selectable ? html`\n <td class=\"select-col\" @click=${(e: Event) => e.stopPropagation()}>\n <cg-checkbox size=\"sm\"\n ?checked=${this._selected.has(rowIdx)}\n @cg-change=${() => this._toggleRow(rowIdx)}\n label=\"\"\n aria-label=${`Select row ${rowIdx + 1}`}></cg-checkbox>\n </td>\n ` : nothing}\n ${this.columns.map((col, i) => html`\n <td data-align=${col.align ?? 'left'}>${this._renderCell(col, row as unknown[], rowIdx, i)}</td>\n `)}\n </tr>\n `)}\n </tbody>\n </table>\n </div>\n <div class=\"table-footer\" ?hidden=${!this._hasFooter}>\n <slot name=\"footer\" @slotchange=${this._handleFooterSlotChange}></slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-table': CgTable;\n }\n}\n"],"names":["CgTable","LitElement","col","index","next","_","i","row","e","slot","rowIdx","value","idx","c","sorted","a","b","va","vb","sortedRows","allSelected","widths","html","nothing","ri","ci","hostBlock","reducedMotion","css","__decorateClass","property","state","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"cg-table.js","sources":["../../../src/components/cg-table/cg-table.ts"],"sourcesContent":["import { LitElement, html, css, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { hostBlock, reducedMotion } from '../../styles/index.js';\n\n/** Column definition for cg-table. */\nexport interface TableColumn {\n key: string;\n label: string;\n align?: 'left' | 'center' | 'right';\n sortable?: boolean;\n width?: string;\n}\n\n/**\n * <cg-table> — Data table with sorting, selection, loading, and pagination.\n *\n * @example\n * ```html\n * <cg-table\n * .columns=${[{key:'name',label:'Name',sortable:true},{key:'role',label:'Role'}]}\n * .rows=${[['Alice','Designer'],['Bob','Developer']]}\n * selectable striped\n * ></cg-table>\n * ```\n *\n * @slot footer - Footer area for pagination or summary\n *\n * @fires {CustomEvent<{key, direction}>} cg-sort - Column sorted\n * @fires {CustomEvent<{indices: number[]}>} cg-select - Row selection changed\n * @fires {CustomEvent<{index, row}>} cg-row-click - Row clicked\n *\n * @cssprop --cg-component-table-radius - Table border radius\n * @cssprop --cg-color-surface-table-header-background - Header background\n */\n@customElement('cg-table')\nexport class CgTable extends LitElement {\n static override styles = [hostBlock, reducedMotion, css`\n .table-wrapper {\n overflow: hidden;\n background: var(--cg-color-surface-container-background);\n border: var(--cg-border-width-50) solid var(--cg-color-surface-table-divider);\n border-radius: var(--cg-component-table-radius);\n padding: var(--cg-spacing-4) 0;\n }\n\n .table-scroll {\n overflow-x: auto;\n }\n\n /* Body area — slightly darker inset with inner rounding + border */\n tbody {\n background: var(--cg-overlay-dark-subtle);\n }\n tbody tr:first-child td {\n border-top: var(--cg-border-width-50) solid var(--cg-color-surface-table-divider);\n }\n tbody tr:last-child td {\n border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-table-divider);\n }\n tbody td:first-child {\n border-left: var(--cg-border-width-50) solid var(--cg-color-surface-table-divider);\n }\n tbody td:last-child {\n border-right: var(--cg-border-width-50) solid var(--cg-color-surface-table-divider);\n }\n tbody tr:first-child td:first-child {\n border-top-left-radius: var(--cg-border-radius-150);\n }\n tbody tr:first-child td:last-child {\n border-top-right-radius: var(--cg-border-radius-150);\n }\n tbody tr:last-child td:first-child {\n border-bottom-left-radius: var(--cg-border-radius-150);\n }\n tbody tr:last-child td:last-child {\n border-bottom-right-radius: var(--cg-border-radius-150);\n }\n\n /* Rounded variants — outer wrapper + inner tbody corners */\n :host([rounded=\"none\"]) .table-wrapper { border-radius: 0; }\n :host([rounded=\"none\"]) tbody tr:first-child td:first-child,\n :host([rounded=\"none\"]) tbody tr:first-child td:last-child,\n :host([rounded=\"none\"]) tbody tr:last-child td:first-child,\n :host([rounded=\"none\"]) tbody tr:last-child td:last-child { border-radius: 0; }\n\n :host([rounded=\"sm\"]) .table-wrapper { border-radius: var(--cg-border-radius-100); }\n :host([rounded=\"sm\"]) tbody tr:first-child td:first-child { border-top-left-radius: var(--cg-border-radius-50); }\n :host([rounded=\"sm\"]) tbody tr:first-child td:last-child { border-top-right-radius: var(--cg-border-radius-50); }\n :host([rounded=\"sm\"]) tbody tr:last-child td:first-child { border-bottom-left-radius: var(--cg-border-radius-50); }\n :host([rounded=\"sm\"]) tbody tr:last-child td:last-child { border-bottom-right-radius: var(--cg-border-radius-50); }\n\n :host([rounded=\"md\"]) .table-wrapper { border-radius: var(--cg-border-radius-150); }\n :host([rounded=\"md\"]) tbody tr:first-child td:first-child { border-top-left-radius: var(--cg-border-radius-100); }\n :host([rounded=\"md\"]) tbody tr:first-child td:last-child { border-top-right-radius: var(--cg-border-radius-100); }\n :host([rounded=\"md\"]) tbody tr:last-child td:first-child { border-bottom-left-radius: var(--cg-border-radius-100); }\n :host([rounded=\"md\"]) tbody tr:last-child td:last-child { border-bottom-right-radius: var(--cg-border-radius-100); }\n\n :host([rounded=\"lg\"]) .table-wrapper { border-radius: var(--cg-component-table-radius); }\n\n table {\n width: calc(100% - var(--cg-spacing-8) * 2);\n margin: 0 var(--cg-spacing-8);\n border-collapse: separate;\n border-spacing: 0;\n font-size: var(--cg-font-size-sm);\n }\n :host([compact]) table { font-size: var(--cg-font-size-xs); }\n\n /* ── Header ── */\n thead { position: sticky; top: 0; z-index: 1; }\n\n th {\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n text-align: left;\n font-weight: var(--cg-font-weight-medium);\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-outlined);\n background: transparent;\n border-bottom: none;\n white-space: nowrap;\n user-select: none;\n }\n :host([compact]) th {\n padding: var(--cg-spacing-6) var(--cg-spacing-12);\n }\n\n th.sortable { cursor: pointer; }\n th.sortable:hover { color: var(--cg-color-action-primary-background-default); }\n th.sortable:active {\n transform: scale(0.98);\n transition: transform var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n th.sortable:focus-visible {\n outline: none;\n box-shadow: inset 0 0 0 2px var(--cg-color-action-primary-background-default);\n }\n\n th .sort-icon {\n display: inline-flex;\n margin-left: var(--cg-spacing-4);\n opacity: 0.4;\n vertical-align: middle;\n }\n th.sorted .sort-icon {\n opacity: 1;\n color: var(--cg-color-action-primary-background-default);\n }\n\n th[data-align=\"center\"] { text-align: center; }\n th[data-align=\"right\"] { text-align: right; }\n\n /* ── Selection checkbox column ── */\n th.select-col, td.select-col {\n width: var(--cg-spacing-48);\n padding: 0 var(--cg-spacing-12);\n }\n th.select-col cg-checkbox,\n td.select-col cg-checkbox {\n min-height: 0;\n transform: scale(0.85);\n }\n\n /* ── Cells ── */\n td {\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n color: var(--cg-color-surface-table-text);\n border-bottom: var(--cg-border-width-50) solid var(--cg-color-surface-table-divider);\n vertical-align: middle;\n }\n :host([compact]) td {\n padding: var(--cg-spacing-6) var(--cg-spacing-12);\n }\n\n td[data-align=\"center\"] { text-align: center; }\n td[data-align=\"right\"] { text-align: right; }\n\n /* Row dividers — last row keeps its content border from the tbody border rules */\n\n /* ── Row states ── */\n tbody tr {\n transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);\n }\n tbody tr:hover td {\n background: var(--cg-color-action-tertiary-background-hover);\n }\n tbody tr.selected td {\n background: var(--cg-color-action-tertiary-background-hover);\n }\n :host([clickable]) tbody tr {\n cursor: pointer;\n }\n\n /* ── Striped ── */\n :host([striped]) tbody tr:nth-child(even) td {\n background: var(--cg-color-action-tertiary-background-hover);\n }\n :host([striped]) tbody tr:nth-child(even):hover td {\n background: var(--cg-color-action-tertiary-background-hover);\n }\n\n /* ── Empty state ── */\n /* The empty-state cell controls its own spacing — strip the row's td\n padding so it doesn't stack on top, which made the vertical gap read\n larger than the left/right. Even padding keeps it centered in the\n inner container on all four sides. */\n td.empty-cell {\n padding: 0;\n }\n .empty-state {\n padding: var(--cg-spacing-32);\n text-align: center;\n font-size: var(--cg-font-size-sm);\n color: var(--cg-color-surface-container-outlined);\n }\n\n /* ── Loading ── */\n .loading-row td {\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n }\n .loading-bar {\n height: var(--cg-spacing-12);\n border-radius: var(--cg-border-radius-50);\n background: var(--cg-color-action-secondary-background-hover);\n animation: tablePulse 2s ease-in-out infinite;\n }\n .loading-bar.short { width: 60%; }\n .loading-bar.med { width: 80%; }\n .loading-bar.long { width: 95%; }\n\n @keyframes tablePulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.4; }\n }\n\n /* ── Footer ── */\n .table-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--cg-spacing-12) var(--cg-spacing-16);\n font-size: var(--cg-font-size-xs);\n color: var(--cg-color-surface-container-outlined);\n }\n .table-footer ::slotted(*) {\n display: flex;\n align-items: center;\n gap: var(--cg-spacing-8);\n }\n\n /* Reduced motion */\n @media (prefers-reduced-motion: reduce) {\n .loading-bar { animation: none; opacity: 0.6; }\n }\n `];\n\n @property({ type: Array }) columns: TableColumn[] = [];\n @property({ type: Array }) rows: unknown[][] = [];\n @property({ type: Boolean, reflect: true }) striped = false;\n @property({ type: Boolean, reflect: true }) compact = false;\n @property({ type: Boolean, reflect: true }) clickable = false;\n @property({ type: Boolean, reflect: true }) selectable = false;\n @property({ type: Boolean, reflect: true }) loading = false;\n @property({ type: Number }) loadingRows = 5;\n @property() emptyText = 'No data';\n @property({ reflect: true }) rounded: 'none' | 'sm' | 'md' | 'lg' = 'lg';\n\n @state() private _sortKey = '';\n @state() private _sortDir: 'asc' | 'desc' = 'asc';\n @state() private _selected = new Set<number>();\n @state() private _hasFooter = false;\n\n private _handleSort(col: TableColumn) {\n if (!col.sortable) return;\n if (this._sortKey === col.key) {\n this._sortDir = this._sortDir === 'asc' ? 'desc' : 'asc';\n } else {\n this._sortKey = col.key;\n this._sortDir = 'asc';\n }\n this.dispatchEvent(new CustomEvent('cg-sort', {\n detail: { key: this._sortKey, direction: this._sortDir },\n bubbles: true, composed: true,\n }));\n }\n\n private _toggleRow(index: number) {\n const next = new Set(this._selected);\n if (next.has(index)) next.delete(index);\n else next.add(index);\n this._selected = next;\n this.dispatchEvent(new CustomEvent('cg-select', {\n detail: { indices: [...next] },\n bubbles: true, composed: true,\n }));\n }\n\n private _toggleAll() {\n if (this._selected.size === this.rows.length) {\n this._selected = new Set();\n } else {\n this._selected = new Set(this.rows.map((_, i) => i));\n }\n this.dispatchEvent(new CustomEvent('cg-select', {\n detail: { indices: [...this._selected] },\n bubbles: true, composed: true,\n }));\n }\n\n private _handleRowClick(index: number, row: unknown[]) {\n if (this.clickable) {\n this.dispatchEvent(new CustomEvent('cg-row-click', {\n detail: { index, row },\n bubbles: true, composed: true,\n }));\n }\n }\n\n private _handleFooterSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this._hasFooter = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n private _getSortedRows(): unknown[][] {\n if (!this._sortKey) return this.rows;\n const idx = this.columns.findIndex(c => c.key === this._sortKey);\n if (idx === -1) return this.rows;\n const sorted = [...this.rows].sort((a, b) => {\n const va = (a as unknown[])[idx];\n const vb = (b as unknown[])[idx];\n if (typeof va === 'number' && typeof vb === 'number') return va - vb;\n return String(va ?? '').localeCompare(String(vb ?? ''));\n });\n return this._sortDir === 'desc' ? sorted.reverse() : sorted;\n }\n\n override render() {\n const sortedRows = this._getSortedRows();\n const allSelected = this.rows.length > 0 && this._selected.size === this.rows.length;\n const widths = ['short', 'long', 'med', 'short'];\n\n return html`\n <div class=\"table-wrapper\">\n <div class=\"table-scroll\">\n <table role=\"table\">\n <thead>\n <tr>\n ${this.selectable ? html`\n <th class=\"select-col\">\n <cg-checkbox size=\"sm\"\n ?checked=${allSelected}\n @cg-change=${this._toggleAll}\n label=\"\"\n aria-label=\"Select all rows\"></cg-checkbox>\n </th>\n ` : nothing}\n ${this.columns.map(col => html`\n <th\n class=\"${col.sortable ? 'sortable' : ''} ${this._sortKey === col.key ? 'sorted' : ''}\"\n data-align=${col.align ?? 'left'}\n style=${col.width ? `width: ${col.width}` : ''}\n tabindex=${col.sortable ? '0' : nothing}\n @click=${() => this._handleSort(col)}\n @keydown=${(e: KeyboardEvent) => { if (col.sortable && (e.key === 'Enter' || e.key === ' ')) { e.preventDefault(); this._handleSort(col); } }}\n aria-sort=${this._sortKey === col.key ? (this._sortDir === 'asc' ? 'ascending' : 'descending') : nothing}\n >\n ${col.label}\n ${col.sortable ? html`<span class=\"sort-icon\"><cg-icon name=\"${this._sortKey === col.key ? (this._sortDir === 'asc' ? 'arrow-up' : 'arrow-down') : 'sort'}\" size=\"xs\"></cg-icon></span>` : nothing}\n </th>\n `)}\n </tr>\n </thead>\n <tbody>\n ${this.loading ? Array.from({ length: this.loadingRows }, (_, ri) => html`\n <tr class=\"loading-row\">\n ${this.selectable ? html`<td class=\"select-col\"><div class=\"loading-bar short\" style=\"width:16px;height:16px;border-radius:4px;margin:0 auto;\"></div></td>` : nothing}\n ${this.columns.map((_, ci) => html`\n <td><div class=\"loading-bar ${widths[ci % widths.length]}\"></div></td>\n `)}\n </tr>\n `) : sortedRows.length === 0 ? html`\n <tr>\n <td class=\"empty-cell\" colspan=${this.columns.length + (this.selectable ? 1 : 0)}>\n <div class=\"empty-state\">${this.emptyText}</div>\n </td>\n </tr>\n ` : sortedRows.map((row, rowIdx) => html`\n <tr class=\"${this._selected.has(rowIdx) ? 'selected' : ''}\"\n @click=${() => this._handleRowClick(rowIdx, row as unknown[])}>\n ${this.selectable ? html`\n <td class=\"select-col\" @click=${(e: Event) => e.stopPropagation()}>\n <cg-checkbox size=\"sm\"\n ?checked=${this._selected.has(rowIdx)}\n @cg-change=${() => this._toggleRow(rowIdx)}\n label=\"\"\n aria-label=${`Select row ${rowIdx + 1}`}></cg-checkbox>\n </td>\n ` : nothing}\n ${this.columns.map((col, i) => html`\n <td data-align=${col.align ?? 'left'}>${(row as unknown[])[i] ?? ''}</td>\n `)}\n </tr>\n `)}\n </tbody>\n </table>\n </div>\n <div class=\"table-footer\" ?hidden=${!this._hasFooter}>\n <slot name=\"footer\" @slotchange=${this._handleFooterSlotChange}></slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cg-table': CgTable;\n }\n}\n"],"names":["CgTable","LitElement","col","index","next","_","i","row","slot","idx","sorted","a","b","va","vb","sortedRows","allSelected","widths","html","nothing","e","ri","ci","rowIdx","hostBlock","reducedMotion","css","__decorateClass","property","state","customElement"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { css as u, LitElement as v, nothing as b, html as d } from "lit";
2
2
  import { property as n, state as g, query as p, customElement as h } from "lit/decorators.js";
3
- import { h as f, r as w } from "../../chunks/premium.css-9I4kHrsl.js";
3
+ import { h as f, r as w } from "../../chunks/premium.css-DHekUEUt.js";
4
4
  var _ = Object.defineProperty, m = Object.getOwnPropertyDescriptor, o = (a, i, s, e) => {
5
5
  for (var t = e > 1 ? void 0 : e ? m(i, s) : i, c = a.length - 1, l; c >= 0; c--)
6
6
  (l = a[c]) && (t = (e ? l(i, s, t) : l(t)) || t);
@@ -1,6 +1,6 @@
1
1
  import { css as d, LitElement as h, nothing as p, html as c } from "lit";
2
2
  import { property as r, state as g, query as v, customElement as f } from "lit/decorators.js";
3
- import { h as b, r as m } from "../../chunks/premium.css-9I4kHrsl.js";
3
+ import { h as b, r as m } from "../../chunks/premium.css-DHekUEUt.js";
4
4
  var y = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, a = (e, o, n, s) => {
5
5
  for (var i = s > 1 ? void 0 : s ? _(o, n) : o, l = e.length - 1, u; l >= 0; l--)
6
6
  (u = e[l]) && (i = (s ? u(o, n, i) : u(i)) || i);
@@ -1,6 +1,6 @@
1
1
  import { css as g, LitElement as f, html as r } from "lit";
2
2
  import { property as i, customElement as p } from "lit/decorators.js";
3
- import { h as u, r as m } from "../../chunks/premium.css-9I4kHrsl.js";
3
+ import { h as u, r as m } from "../../chunks/premium.css-DHekUEUt.js";
4
4
  var v = Object.defineProperty, d = Object.getOwnPropertyDescriptor, o = (t, l, n, h) => {
5
5
  for (var s = h > 1 ? void 0 : h ? d(l, n) : l, c = t.length - 1, a; c >= 0; c--)
6
6
  (a = t[c]) && (s = (h ? a(l, n, s) : a(s)) || s);
@@ -1,6 +1,6 @@
1
1
  import { css as p, LitElement as g, nothing as s, html as l } from "lit";
2
2
  import { property as r, state as h, query as f, customElement as v } from "lit/decorators.js";
3
- import { h as b, r as x } from "../../chunks/premium.css-9I4kHrsl.js";
3
+ import { h as b, r as x } from "../../chunks/premium.css-DHekUEUt.js";
4
4
  var y = Object.defineProperty, m = Object.getOwnPropertyDescriptor, t = (a, o, c, n) => {
5
5
  for (var i = n > 1 ? void 0 : n ? m(o, c) : o, d = a.length - 1, u; d >= 0; d--)
6
6
  (u = a[d]) && (i = (n ? u(o, c, i) : u(i)) || i);
@@ -1,6 +1,6 @@
1
1
  import { css as u, LitElement as h, nothing as p, html as n } from "lit";
2
2
  import { property as a, state as l, customElement as v } from "lit/decorators.js";
3
- import { h as f, r as b } from "../../chunks/premium.css-9I4kHrsl.js";
3
+ import { h as f, r as b } from "../../chunks/premium.css-DHekUEUt.js";
4
4
  var m = Object.defineProperty, _ = Object.getOwnPropertyDescriptor, o = (e, i, c, t) => {
5
5
  for (var s = t > 1 ? void 0 : t ? _(i, c) : i, d = e.length - 1, g; d >= 0; d--)
6
6
  (g = e[d]) && (s = (t ? g(i, c, s) : g(s)) || s);
@@ -1,6 +1,6 @@
1
1
  import { css as m, LitElement as f, svg as c, nothing as g, html as l } from "lit";
2
2
  import { property as u, state as p, customElement as v } from "lit/decorators.js";
3
- import { r as h } from "../../chunks/premium.css-9I4kHrsl.js";
3
+ import { r as h } from "../../chunks/premium.css-DHekUEUt.js";
4
4
  var b = Object.defineProperty, w = Object.getOwnPropertyDescriptor, d = (t, r, a, s) => {
5
5
  for (var o = s > 1 ? void 0 : s ? w(r, a) : r, n = t.length - 1, i; n >= 0; n--)
6
6
  (i = t[n]) && (o = (s ? i(r, a, o) : i(o)) || o);
@@ -156,7 +156,7 @@ e.styles = [h, m`
156
156
  .toast.error { border-color: var(--cg-color-status-error-border-default); }
157
157
  .toast.info { border-color: var(--cg-color-status-info-border-default); }
158
158
  .toast.ai {
159
- border-left: var(--cg-border-width-200) solid var(--cg-color-action-primary-background-default);
159
+ border-left: var(--cg-border-width-300) solid var(--cg-color-action-primary-border-default);
160
160
  }
161
161
 
162
162
  /* Status icon — colored per variant to match the border + give the toast
@@ -196,7 +196,7 @@ e.styles = [h, m`
196
196
  font: inherit;
197
197
  font-size: var(--cg-font-size-xs);
198
198
  font-weight: var(--cg-font-weight-medium);
199
- padding: var(--cg-spacing-6) var(--cg-spacing-10);
199
+ padding: var(--cg-spacing-6) var(--cg-spacing-8);
200
200
  border-radius: var(--cg-border-radius-50);
201
201
  cursor: pointer;
202
202
  transition: background-color var(--cg-transition-duration-fast) var(--cg-transition-easing-default);