@redvars/peacock 3.3.3 → 3.5.0

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 (280) hide show
  1. package/dist/IndividualComponent-DUINtMGK.js +67 -0
  2. package/dist/IndividualComponent-DUINtMGK.js.map +1 -0
  3. package/dist/assets/images/empty-state/no-document.svg +11 -12
  4. package/dist/assets/images/empty-state/page.svg +15 -9
  5. package/dist/assets/styles.css +1 -1
  6. package/dist/assets/styles.css.map +1 -1
  7. package/dist/banner.js +202 -0
  8. package/dist/banner.js.map +1 -0
  9. package/dist/bottom-sheet.js +238 -0
  10. package/dist/bottom-sheet.js.map +1 -0
  11. package/dist/{button-ClzS8JLq.js → button-DMN1dPAg.js} +358 -218
  12. package/dist/button-DMN1dPAg.js.map +1 -0
  13. package/dist/button-group-CX9CUUXk.js +435 -0
  14. package/dist/button-group-CX9CUUXk.js.map +1 -0
  15. package/dist/button-group.js +11 -6
  16. package/dist/button-group.js.map +1 -1
  17. package/dist/button.js +10 -5
  18. package/dist/button.js.map +1 -1
  19. package/dist/card-content.js +29 -0
  20. package/dist/card-content.js.map +1 -0
  21. package/dist/card.js +428 -44
  22. package/dist/card.js.map +1 -1
  23. package/dist/{chart-bar-DbnXQgvS.js → chart-bar-cn6rrna-.js} +2 -2
  24. package/dist/{chart-bar-DbnXQgvS.js.map → chart-bar-cn6rrna-.js.map} +1 -1
  25. package/dist/chart-bar.js +5 -4
  26. package/dist/chart-bar.js.map +1 -1
  27. package/dist/chart-doughnut.js +2 -1
  28. package/dist/chart-doughnut.js.map +1 -1
  29. package/dist/chart-pie.js +2 -1
  30. package/dist/chart-pie.js.map +1 -1
  31. package/dist/chart-stacked-bar.js +5 -4
  32. package/dist/chart-stacked-bar.js.map +1 -1
  33. package/dist/{class-map-59YGWLnx.js → class-map-YU7g0o3B.js} +4 -10
  34. package/dist/class-map-YU7g0o3B.js.map +1 -0
  35. package/dist/clock.js +2 -1
  36. package/dist/clock.js.map +1 -1
  37. package/dist/code-editor.js +8 -6
  38. package/dist/code-editor.js.map +1 -1
  39. package/dist/code-highlighter.js +6 -4
  40. package/dist/code-highlighter.js.map +1 -1
  41. package/dist/custom-elements-jsdocs.json +6270 -5026
  42. package/dist/custom-elements.json +5763 -2049
  43. package/dist/directive-ZPhl09Yt.js +9 -0
  44. package/dist/directive-ZPhl09Yt.js.map +1 -0
  45. package/dist/dispatch-event-utils-CuEqjlPT.js +127 -0
  46. package/dist/dispatch-event-utils-CuEqjlPT.js.map +1 -0
  47. package/dist/fab-C5Nzxk0E.js +497 -0
  48. package/dist/fab-C5Nzxk0E.js.map +1 -0
  49. package/dist/fab.js +11 -0
  50. package/dist/fab.js.map +1 -0
  51. package/dist/index.js +24 -12
  52. package/dist/index.js.map +1 -1
  53. package/dist/{observe-theme-change-pALI5fmV.js → is-dark-mode-DicqGkCJ.js} +8 -3
  54. package/dist/is-dark-mode-DicqGkCJ.js.map +1 -0
  55. package/dist/notification.js +417 -0
  56. package/dist/notification.js.map +1 -0
  57. package/dist/number-counter.js +4 -3
  58. package/dist/number-counter.js.map +1 -1
  59. package/dist/observe-slot-change-BGJfgg2E.js +31 -0
  60. package/dist/observe-slot-change-BGJfgg2E.js.map +1 -0
  61. package/dist/peacock-loader.js +59 -10
  62. package/dist/peacock-loader.js.map +1 -1
  63. package/dist/property-1psGvXOq.js +10 -0
  64. package/dist/property-1psGvXOq.js.map +1 -0
  65. package/dist/search.js +452 -0
  66. package/dist/search.js.map +1 -0
  67. package/dist/{radio-b70_Ie9n.js → select-4pl4XBj7.js} +2439 -521
  68. package/dist/select-4pl4XBj7.js.map +1 -0
  69. package/dist/side-sheet.js +186 -0
  70. package/dist/side-sheet.js.map +1 -0
  71. package/dist/spread-B5cgadZl.js +32 -0
  72. package/dist/spread-B5cgadZl.js.map +1 -0
  73. package/dist/src/__base_element/BaseHyperlink.d.ts +20 -0
  74. package/dist/src/__utils/cache-fetch.d.ts +1 -0
  75. package/dist/src/__utils/is-dark-mode.d.ts +1 -0
  76. package/dist/src/__utils/is-in-viewport.d.ts +1 -0
  77. package/dist/src/__utils/observe-slot-change.d.ts +1 -0
  78. package/dist/src/__utils/sanitize-svg.d.ts +1 -0
  79. package/dist/src/__utils/throttle.d.ts +4 -0
  80. package/dist/src/accordion/accordion-item.d.ts +33 -9
  81. package/dist/src/accordion/accordion.d.ts +21 -5
  82. package/dist/src/banner/banner.d.ts +47 -0
  83. package/dist/src/banner/index.d.ts +1 -0
  84. package/dist/src/bottom-sheet/bottom-sheet.d.ts +42 -0
  85. package/dist/src/bottom-sheet/index.d.ts +1 -0
  86. package/dist/src/button/BaseButton.d.ts +7 -13
  87. package/dist/src/button/button/button.d.ts +4 -0
  88. package/dist/src/button/button-group/button-group.d.ts +32 -3
  89. package/dist/src/button/icon-button/icon-button.d.ts +4 -0
  90. package/dist/src/card/card-content.d.ts +15 -0
  91. package/dist/src/card/card.d.ts +37 -3
  92. package/dist/src/card/index.d.ts +1 -0
  93. package/dist/src/container/container.d.ts +1 -1
  94. package/dist/src/empty-state/empty-state.d.ts +1 -1
  95. package/dist/src/fab/fab.d.ts +111 -0
  96. package/dist/src/fab/index.d.ts +1 -0
  97. package/dist/src/focus-ring/focus-ring.d.ts +4 -1
  98. package/dist/src/index.d.ts +11 -1
  99. package/dist/src/link/link.d.ts +3 -10
  100. package/dist/src/menu/menu/menu.d.ts +4 -2
  101. package/dist/src/menu/menu-item/menu-item.d.ts +0 -1
  102. package/dist/src/menu/sub-menu/sub-menu.d.ts +1 -0
  103. package/dist/src/notification/index.d.ts +1 -0
  104. package/dist/src/notification/notification.d.ts +69 -0
  105. package/dist/src/pagination/pagination.d.ts +8 -1
  106. package/dist/src/ripple/ripple.d.ts +19 -3
  107. package/dist/src/search/index.d.ts +1 -0
  108. package/dist/src/search/search.d.ts +76 -0
  109. package/dist/src/segmented-button/index.d.ts +2 -0
  110. package/dist/src/segmented-button/segmented-button-group.d.ts +46 -0
  111. package/dist/src/segmented-button/segmented-button.d.ts +65 -0
  112. package/dist/src/select/index.d.ts +3 -0
  113. package/dist/src/select/option.d.ts +55 -0
  114. package/dist/src/select/select.d.ts +114 -0
  115. package/dist/src/side-sheet/index.d.ts +1 -0
  116. package/dist/src/side-sheet/side-sheet.d.ts +41 -0
  117. package/dist/src/slider/slider.d.ts +4 -0
  118. package/dist/src/snackbar/snackbar.d.ts +14 -1
  119. package/dist/src/tabs/tab-group.d.ts +0 -1
  120. package/dist/src/tabs/tab.d.ts +8 -2
  121. package/dist/src/tabs/tabs.d.ts +13 -1
  122. package/dist/src/toolbar/index.d.ts +1 -0
  123. package/dist/src/toolbar/toolbar.d.ts +86 -0
  124. package/dist/state-DwbEjqVk.js +10 -0
  125. package/dist/state-DwbEjqVk.js.map +1 -0
  126. package/dist/{style-map-DcB52w-l.js → style-map-DVmWOuYy.js} +3 -3
  127. package/dist/{style-map-DcB52w-l.js.map → style-map-DVmWOuYy.js.map} +1 -1
  128. package/dist/test/search.test.d.ts +1 -0
  129. package/dist/test/toolbar.test.d.ts +1 -0
  130. package/dist/throttle-C7ZAPqtu.js +24 -0
  131. package/dist/throttle-C7ZAPqtu.js.map +1 -0
  132. package/dist/toolbar.js +306 -0
  133. package/dist/toolbar.js.map +1 -0
  134. package/dist/tsconfig.tsbuildinfo +1 -1
  135. package/dist/{unsafe-html-C2r3PyzF.js → unsafe-html-BsGUjx94.js} +3 -3
  136. package/dist/{unsafe-html-C2r3PyzF.js.map → unsafe-html-BsGUjx94.js.map} +1 -1
  137. package/package.json +1 -1
  138. package/readme.md +2 -2
  139. package/scss/styles.scss +4 -0
  140. package/src/__base_element/BaseHyperlink.ts +42 -0
  141. package/src/__base_element/README.md +19 -0
  142. package/src/__utils/cache-fetch.ts +65 -0
  143. package/src/{utils → __utils}/dispatch-event-utils.ts +1 -0
  144. package/src/__utils/is-dark-mode.ts +3 -0
  145. package/src/__utils/is-in-viewport.ts +6 -0
  146. package/src/__utils/observe-slot-change.ts +38 -0
  147. package/src/__utils/sanitize-svg.ts +27 -0
  148. package/src/__utils/throttle.ts +27 -0
  149. package/src/accordion/accordion-item.scss +136 -65
  150. package/src/accordion/accordion-item.ts +117 -44
  151. package/src/accordion/accordion.scss +24 -5
  152. package/src/accordion/accordion.ts +29 -23
  153. package/src/accordion/demo/index.html +74 -35
  154. package/src/banner/banner.scss +87 -0
  155. package/src/banner/banner.ts +107 -0
  156. package/src/banner/index.ts +1 -0
  157. package/src/bottom-sheet/bottom-sheet.scss +88 -0
  158. package/src/bottom-sheet/bottom-sheet.ts +135 -0
  159. package/src/bottom-sheet/index.ts +1 -0
  160. package/src/button/BaseButton.ts +26 -30
  161. package/src/button/button/button-colors.scss +90 -19
  162. package/src/button/button/button-sizes.scss +39 -19
  163. package/src/button/button/button.scss +117 -116
  164. package/src/button/button/button.ts +29 -6
  165. package/src/button/button-group/button-group.scss +25 -22
  166. package/src/button/button-group/button-group.ts +122 -5
  167. package/src/button/icon-button/icon-button-sizes.scss +35 -15
  168. package/src/button/icon-button/icon-button.ts +25 -12
  169. package/src/card/card-colors.scss +10 -0
  170. package/src/card/card-content.ts +26 -0
  171. package/src/card/card.scss +221 -41
  172. package/src/card/card.ts +251 -8
  173. package/src/card/index.ts +1 -0
  174. package/src/chart-bar/chart-bar.ts +1 -1
  175. package/src/chart-bar/chart-stacked-bar.ts +3 -1
  176. package/src/chart-doughnut/chart-doughnut.ts +1 -1
  177. package/src/chart-pie/chart-pie.ts +1 -1
  178. package/src/checkbox/checkbox.ts +1 -1
  179. package/src/clock/clock.ts +1 -1
  180. package/src/code-editor/code-editor.ts +5 -5
  181. package/src/code-highlighter/code-highlighter.ts +2 -2
  182. package/src/container/container.ts +1 -1
  183. package/src/date-picker/date-picker.ts +5 -2
  184. package/src/divider/divider.ts +3 -1
  185. package/src/empty-state/empty-state.scss +9 -3
  186. package/src/empty-state/empty-state.ts +2 -2
  187. package/src/fab/fab-colors.scss +49 -0
  188. package/src/fab/fab-sizes.scss +47 -0
  189. package/src/fab/fab.scss +137 -0
  190. package/src/fab/fab.ts +285 -0
  191. package/src/fab/index.ts +1 -0
  192. package/src/field/field.ts +3 -1
  193. package/src/focus-ring/focus-ring.ts +37 -19
  194. package/src/icon/datasource.ts +1 -1
  195. package/src/icon/icon.ts +3 -1
  196. package/src/image/image.ts +3 -2
  197. package/src/index.ts +12 -1
  198. package/src/input/input.ts +5 -2
  199. package/src/link/link.ts +2 -15
  200. package/src/menu/menu/menu.scss +31 -3
  201. package/src/menu/menu/menu.ts +30 -6
  202. package/src/menu/menu-item/menu-item.scss +1 -0
  203. package/src/menu/menu-item/menu-item.ts +1 -9
  204. package/src/menu/sub-menu/sub-menu.ts +1 -0
  205. package/src/notification/index.ts +1 -0
  206. package/src/notification/notification.scss +201 -0
  207. package/src/notification/notification.ts +206 -0
  208. package/src/number-counter/number-counter.ts +3 -1
  209. package/src/number-field/number-field.ts +4 -2
  210. package/src/pagination/pagination.scss +33 -24
  211. package/src/pagination/pagination.ts +113 -60
  212. package/src/peacock-loader.ts +48 -0
  213. package/src/radio/radio.ts +3 -1
  214. package/src/ripple/ripple.ts +19 -3
  215. package/src/search/index.ts +1 -0
  216. package/src/search/search-colors.scss +14 -0
  217. package/src/search/search.scss +204 -0
  218. package/src/search/search.ts +240 -0
  219. package/src/segmented-button/index.ts +2 -0
  220. package/src/segmented-button/segmented-button-group.scss +21 -0
  221. package/src/segmented-button/segmented-button-group.ts +110 -0
  222. package/src/segmented-button/segmented-button.scss +115 -0
  223. package/src/segmented-button/segmented-button.ts +175 -0
  224. package/src/select/index.ts +3 -0
  225. package/src/select/option.ts +109 -0
  226. package/src/select/select.scss +125 -0
  227. package/src/select/select.ts +520 -0
  228. package/src/side-sheet/index.ts +1 -0
  229. package/src/side-sheet/side-sheet.scss +79 -0
  230. package/src/side-sheet/side-sheet.ts +100 -0
  231. package/src/slider/slider.scss +19 -1
  232. package/src/slider/slider.ts +30 -19
  233. package/src/snackbar/snackbar.scss +62 -31
  234. package/src/snackbar/snackbar.ts +92 -12
  235. package/src/switch/switch.ts +3 -1
  236. package/src/table/table.ts +3 -1
  237. package/src/tabs/demo/index.html +90 -0
  238. package/src/tabs/tab-group.ts +0 -3
  239. package/src/tabs/tab.scss +237 -25
  240. package/src/tabs/tab.ts +91 -14
  241. package/src/tabs/tabs.scss +37 -3
  242. package/src/tabs/tabs.ts +118 -2
  243. package/src/textarea/textarea.ts +4 -2
  244. package/src/time-picker/time-picker.ts +4 -2
  245. package/src/toolbar/index.ts +1 -0
  246. package/src/toolbar/toolbar-colors.scss +16 -0
  247. package/src/toolbar/toolbar.scss +165 -0
  248. package/src/toolbar/toolbar.ts +137 -0
  249. package/dist/IndividualComponent-Dt5xirYG.js +0 -73
  250. package/dist/IndividualComponent-Dt5xirYG.js.map +0 -1
  251. package/dist/button-ClzS8JLq.js.map +0 -1
  252. package/dist/button-group-BMS5WvaF.js +0 -292
  253. package/dist/button-group-BMS5WvaF.js.map +0 -1
  254. package/dist/chart-donut.js +0 -309
  255. package/dist/chart-donut.js.map +0 -1
  256. package/dist/class-map-59YGWLnx.js.map +0 -1
  257. package/dist/directive-Cuw6h7YA.js +0 -9
  258. package/dist/directive-Cuw6h7YA.js.map +0 -1
  259. package/dist/dispatch-event-utils-B4odODQf.js +0 -277
  260. package/dist/dispatch-event-utils-B4odODQf.js.map +0 -1
  261. package/dist/observe-theme-change-pALI5fmV.js.map +0 -1
  262. package/dist/radio-b70_Ie9n.js.map +0 -1
  263. package/dist/src/chart-donut/chart-donut.d.ts +0 -53
  264. package/dist/src/chart-donut/index.d.ts +0 -1
  265. package/dist/src/styleMixins.css.d.ts +0 -9
  266. package/dist/src/utils.d.ts +0 -9
  267. package/src/chart-donut/chart-donut.scss +0 -37
  268. package/src/chart-donut/chart-donut.ts +0 -287
  269. package/src/chart-donut/demo/index.html +0 -51
  270. package/src/chart-donut/index.ts +0 -1
  271. package/src/styleMixins.css.ts +0 -55
  272. package/src/utils.ts +0 -193
  273. /package/dist/src/{spread.d.ts → __directive/spread.d.ts} +0 -0
  274. /package/dist/src/{utils → __utils}/copy-to-clipboard.d.ts +0 -0
  275. /package/dist/src/{utils → __utils}/dispatch-event-utils.d.ts +0 -0
  276. /package/dist/src/{utils → __utils}/observe-theme-change.d.ts +0 -0
  277. /package/dist/test/{card.test.d.ts → banner.test.d.ts} +0 -0
  278. /package/src/{spread.ts → __directive/spread.ts} +0 -0
  279. /package/src/{utils → __utils}/copy-to-clipboard.ts +0 -0
  280. /package/src/{utils → __utils}/observe-theme-change.ts +0 -0
package/dist/card.js CHANGED
@@ -1,67 +1,235 @@
1
- import { a as i, _ as __decorate, n, I as IndividualComponent, i as i$1, b } from './IndividualComponent-Dt5xirYG.js';
1
+ import { a as i, _ as __decorate, I as IndividualComponent, i as i$1, c as __classPrivateFieldGet, A, b } from './IndividualComponent-DUINtMGK.js';
2
+ import { n } from './property-1psGvXOq.js';
3
+ import { r } from './state-DwbEjqVk.js';
4
+ import { e } from './query-QBcUV-L_.js';
5
+ import { e as e$1 } from './class-map-YU7g0o3B.js';
6
+ import { i as isActivationClick, d as dispatchActivationClick } from './dispatch-event-utils-CuEqjlPT.js';
7
+ import { o as observerSlotChangesWithCallback } from './observe-slot-change-BGJfgg2E.js';
8
+ import { t as throttle } from './throttle-C7ZAPqtu.js';
9
+ import './directive-ZPhl09Yt.js';
2
10
 
3
- var css_248z = i`:host {
11
+ var css_248z$1 = i`* {
12
+ box-sizing: border-box;
13
+ }
14
+
15
+ .screen-reader-only {
16
+ display: none !important;
17
+ }
18
+
19
+ :host {
4
20
  display: block;
5
- --card-background: var(--color-surface, #ffffff);
6
- --card-border-color: transparent;
7
- --card-shadow: none;
8
- --card-shape: var(--global-shape-corner-large, 1rem);
9
- --card-padding: 1rem;
10
21
  --card-gap: 0;
22
+ --card-padding: 0;
23
+ --card-container-shape: var(--shape-corner-large);
24
+ --card-container-shape-start-start: unset;
25
+ --card-container-shape-start-end: unset;
26
+ --card-container-shape-end-start: unset;
27
+ --card-container-shape-end-end: unset;
28
+ }
29
+
30
+ /*
31
+ * Reset native button/link styles
32
+ */
33
+ .card {
34
+ background: transparent;
35
+ border: none;
36
+ appearance: none;
37
+ margin: 0;
38
+ outline: none;
39
+ text-decoration: none;
40
+ text-align: unset;
11
41
  }
12
42
 
13
43
  .card {
44
+ position: relative;
45
+ display: flex;
46
+ height: 100%;
47
+ width: 100%;
48
+ --_container-shape-start-start: var(--card-container-shape-start-start, var(--card-container-shape));
49
+ --_container-shape-start-end: var(--card-container-shape-start-end, var(--card-container-shape));
50
+ --_container-shape-end-start: var(--card-container-shape-end-start, var(--card-container-shape));
51
+ --_container-shape-end-end: var(--card-container-shape-end-end, var(--card-container-shape));
52
+ }
53
+ .card .card-content {
54
+ z-index: 0;
55
+ width: 100%;
56
+ height: 100%;
57
+ overflow: hidden;
58
+ padding: var(--card-padding);
59
+ border: 1px solid transparent; /* Fixes overflow issues with border */
60
+ border-start-start-radius: var(--_container-shape-start-start);
61
+ border-start-end-radius: var(--_container-shape-start-end);
62
+ border-end-start-radius: var(--_container-shape-end-start);
63
+ border-end-end-radius: var(--_container-shape-end-end);
64
+ color: var(--_label-text-color);
65
+ opacity: var(--_label-text-opacity, 1);
66
+ --icon-color: var(--_label-text-color);
67
+ }
68
+ .card .card-content .slot-container {
14
69
  display: flex;
15
70
  flex-direction: column;
16
71
  gap: var(--card-gap);
17
- background: var(--card-background);
18
- border-radius: var(--card-shape);
19
- border: 1px solid var(--card-border-color);
20
- box-shadow: var(--card-shadow);
21
- color: var(--color-on-surface, inherit);
22
- padding: var(--card-padding);
23
- transition: box-shadow 150ms ease, transform 150ms ease;
72
+ width: 100%;
73
+ height: 100%;
24
74
  }
25
-
26
- :host([variant=elevated]) {
27
- --card-background: var(--color-surface-container-low, #fdfcfe);
28
- --card-shadow: var(--shadow-sm, 0px 1px 3px rgba(16, 24, 40, 0.1), 0px 1px 2px rgba(16, 24, 40, 0.06));
75
+ .card {
76
+ /*
77
+ Background layers
78
+ */
29
79
  }
30
-
31
- :host([variant=filled]) {
32
- --card-background: var(--color-surface-container-highest, #f5f5f5);
33
- --card-shadow: none;
80
+ .card .focus-ring {
81
+ z-index: 2;
82
+ display: none;
83
+ --focus-ring-container-shape-start-start: var(--_container-shape-start-start);
84
+ --focus-ring-container-shape-start-end: var(--_container-shape-start-end);
85
+ --focus-ring-container-shape-end-start: var(--_container-shape-end-start);
86
+ --focus-ring-container-shape-end-end: var(--_container-shape-end-end);
87
+ --focus-ring-container-shape-variant: var(--_container-corner-shape-variant);
34
88
  }
35
-
36
- :host([variant=outlined]) {
37
- --card-border-color: var(--color-outline, rgba(0, 0, 0, 0.12));
38
- --card-shadow: none;
89
+ .card .ripple {
90
+ display: none;
91
+ border-start-start-radius: var(--_container-shape-start-start);
92
+ border-start-end-radius: var(--_container-shape-start-end);
93
+ border-end-start-radius: var(--_container-shape-end-start);
94
+ border-end-end-radius: var(--_container-shape-end-end);
95
+ corner-shape: var(--_container-corner-shape-variant);
96
+ --ripple-state-opacity: var(--_container-state-opacity, 0);
97
+ --ripple-pressed-color: var(--_container-state-color);
39
98
  }
40
-
41
- :host([elevation="0"]) {
42
- --card-shadow: none;
99
+ .card .background {
100
+ z-index: 0;
101
+ display: block;
102
+ position: absolute;
103
+ top: 0;
104
+ left: 0;
105
+ width: 100%;
106
+ height: 100%;
107
+ background-color: var(--_container-color);
108
+ opacity: var(--_container-opacity, 1);
109
+ border-start-start-radius: var(--_container-shape-start-start);
110
+ border-start-end-radius: var(--_container-shape-start-end);
111
+ border-end-start-radius: var(--_container-shape-end-start);
112
+ border-end-end-radius: var(--_container-shape-end-end);
113
+ corner-shape: var(--_container-corner-shape-variant);
114
+ pointer-events: none;
115
+ }
116
+ .card .elevation {
117
+ --elevation-level: var(--_container-elevation-level);
118
+ transition-duration: 280ms;
119
+ --elevation-container-shape-start-start: var(--_container-shape-start-start);
120
+ --elevation-container-shape-start-end: var(--_container-shape-start-end);
121
+ --elevation-container-shape-end-start: var(--_container-shape-end-start);
122
+ --elevation-container-shape-end-end: var(--_container-shape-end-end);
123
+ --elevation-container-shape-variant: var(--_container-corner-shape-variant);
124
+ }
125
+ .card .outline {
126
+ z-index: 0;
127
+ display: none;
128
+ position: absolute;
129
+ left: 0;
130
+ top: 0;
131
+ width: 100%;
132
+ height: 100%;
133
+ pointer-events: none;
134
+ border: var(--_outline-width) solid var(--_outline-color);
135
+ opacity: var(--_outline-opacity, 1);
136
+ border-start-start-radius: var(--_container-shape-start-start);
137
+ border-start-end-radius: var(--_container-shape-start-end);
138
+ border-end-start-radius: var(--_container-shape-end-start);
139
+ border-end-end-radius: var(--_container-shape-end-end);
140
+ corner-shape: var(--_container-corner-shape-variant);
43
141
  }
44
142
 
45
- :host([elevation="1"]) {
46
- --card-shadow: var(--shadow-sm, 0px 1px 3px rgba(16, 24, 40, 0.1), 0px 1px 2px rgba(16, 24, 40, 0.06));
143
+ .card.actionable .focus-ring,
144
+ .card.actionable .ripple {
145
+ display: block;
146
+ }
147
+ .card.actionable .card-content {
148
+ pointer-events: none;
47
149
  }
48
150
 
49
- :host([elevation="2"]) {
50
- --card-shadow: var(--shadow-md, 0px 4px 8px -2px rgba(16, 24, 40, 0.1), 0px 2px 4px -2px rgba(16, 24, 40, 0.06));
151
+ .card.variant-elevated {
152
+ --_container-color: var(--elevated-card-container-color);
153
+ --_label-text-color: var(--elevated-card-label-text-color);
154
+ --_container-elevation-level: 1;
155
+ --_container-state-color: var(--_label-text-color);
156
+ }
157
+ .card.variant-elevated:hover:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
158
+ --_container-elevation-level: 2;
159
+ --_container-state-opacity: 0.08;
160
+ }
161
+ .card.variant-elevated.pressed:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
162
+ --_container-elevation-level: 1;
163
+ --_container-state-opacity: 0.12;
164
+ }
165
+ .card.variant-elevated.disabled {
166
+ --_container-color: var(--color-on-surface);
167
+ --_container-opacity: 0.1;
168
+ --_label-text-color: var(--color-on-surface);
169
+ --_label-text-opacity: 0.38;
170
+ }
171
+ .card.variant-elevated.disabled .ripple {
172
+ display: none;
51
173
  }
52
174
 
53
- :host([elevation="3"]) {
54
- --card-shadow: var(--shadow-lg, 0px 12px 16px -4px rgba(16, 24, 40, 0.08), 0px 4px 6px -2px rgba(16, 24, 40, 0.03));
175
+ .card.variant-filled {
176
+ --_container-color: var(--filled-card-container-color);
177
+ --_label-text-color: var(--filled-card-label-text-color);
178
+ --_container-state-color: var(--_label-text-color);
179
+ }
180
+ .card.variant-filled:hover:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
181
+ --_container-elevation-level: 1;
182
+ --_container-state-opacity: 0.08;
183
+ }
184
+ .card.variant-filled.pressed:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
185
+ --_container-elevation-level: 0;
186
+ --_container-state-opacity: 0.1;
187
+ }
188
+ .card.variant-filled.disabled {
189
+ --_container-color: var(--color-on-surface);
190
+ --_container-opacity: 0.1;
191
+ --_label-text-color: var(--color-on-surface);
192
+ --_label-text-opacity: 0.38;
193
+ }
194
+ .card.variant-filled.disabled .ripple {
195
+ display: none;
55
196
  }
56
197
 
57
- :host([elevation="4"]) {
58
- --card-shadow: var(--shadow-xl, 0px 20px 24px -4px rgba(16, 24, 40, 0.08), 0px 8px 8px -4px rgba(16, 24, 40, 0.03));
198
+ .card.variant-outlined {
199
+ --_outline-width: var(--outlined-card-outline-width, 0.0675rem);
200
+ --_outline-color: var(--outlined-card-outline-color);
201
+ --_label-text-color: var(--outlined-card-label-text-color);
202
+ --_container-state-color: var(--_label-text-color);
203
+ }
204
+ .card.variant-outlined .outline {
205
+ display: block;
206
+ }
207
+ .card.variant-outlined:hover:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
208
+ --_container-state-opacity: 0.08;
209
+ }
210
+ .card.variant-outlined.pressed:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
211
+ --_container-state-opacity: 0.12;
212
+ }
213
+ .card.variant-outlined.disabled {
214
+ --_outline-color: var(--color-on-surface);
215
+ --_label-text-color: var(--color-on-surface);
216
+ --_label-text-opacity: 0.38;
217
+ --_outline-opacity: 0.12;
59
218
  }
219
+ .card.variant-outlined.disabled .ripple {
220
+ display: none;
221
+ }`;
60
222
 
61
- :host([elevation="5"]) {
62
- --card-shadow: var(--shadow-xxl, 0px 24px 48px -12px rgba(16, 24, 40, 0.18));
223
+ var css_248z = i`:host {
224
+ --filled-card-container-color: var(--color-surface-container-highest);
225
+ --filled-card-label-text-color: var(--color-on-surface);
226
+ --elevated-card-container-color: var(--color-surface-container-low);
227
+ --elevated-card-label-text-color: var(--color-on-surface);
228
+ --outlined-card-outline-color: var(--color-outline-variant);
229
+ --outlined-card-label-text-color: var(--color-on-surface);
63
230
  }`;
64
231
 
232
+ var _Card_id, _Card_tabindex, _Card_slottedTabIndexMap;
65
233
  /**
66
234
  * @label Card
67
235
  * @tag wc-card
@@ -82,20 +250,236 @@ var css_248z = i`:host {
82
250
  let Card = class Card extends i$1 {
83
251
  constructor() {
84
252
  super(...arguments);
253
+ _Card_id.set(this, crypto.randomUUID());
85
254
  this.variant = 'elevated';
86
- this.elevation = 1;
255
+ this.disabled = false;
256
+ this.actionable = false;
257
+ /**
258
+ * If button is disabled, the reason why it is disabled.
259
+ */
260
+ this.disabledReason = '';
261
+ /**
262
+ * Sets or retrieves the window or frame at which to target content.
263
+ */
264
+ this.target = '_self';
265
+ /**
266
+ * Sets the delay for throttle in milliseconds. Defaults to 200 milliseconds.
267
+ */
268
+ this.throttleDelay = 200;
269
+ /**
270
+ * States
271
+ */
272
+ this.isPressed = false;
273
+ this.slotHasContent = false;
274
+ _Card_tabindex.set(this, 0);
275
+ _Card_slottedTabIndexMap.set(this, new WeakMap());
276
+ this.__dispatchClickWithThrottle = event => {
277
+ this.__dispatchClick(event);
278
+ };
279
+ this.__dispatchClick = (event) => {
280
+ // If the button is soft-disabled or a disabled link, we need to explicitly
281
+ // prevent the click from propagating to other event listeners as well as
282
+ // prevent the default action.
283
+ if (this.disabled && this.href) {
284
+ event.stopImmediatePropagation();
285
+ event.preventDefault();
286
+ return;
287
+ }
288
+ if (!isActivationClick(event) || !this.cardElement) {
289
+ return;
290
+ }
291
+ this.focus();
292
+ dispatchActivationClick(this.cardElement);
293
+ };
294
+ this.__handlePress = (event) => {
295
+ if (this.disabled)
296
+ return;
297
+ if (event instanceof KeyboardEvent &&
298
+ event.type === 'keydown' &&
299
+ (event.key === 'Enter' || event.key === ' ')) {
300
+ this.isPressed = true;
301
+ }
302
+ else if (event.type === 'mousedown') {
303
+ this.isPressed = true;
304
+ }
305
+ else {
306
+ this.isPressed = false;
307
+ }
308
+ };
309
+ }
310
+ firstUpdated() {
311
+ this.__dispatchClickWithThrottle = throttle(this.__dispatchClick, this.throttleDelay);
312
+ observerSlotChangesWithCallback(this.renderRoot.querySelector('slot'), hasContent => {
313
+ this.slotHasContent = hasContent;
314
+ this.__syncSlottedChildrenTabIndex();
315
+ this.requestUpdate();
316
+ });
317
+ this.__syncSlottedChildrenTabIndex();
318
+ }
319
+ updated(changedProperties) {
320
+ if (changedProperties.has('actionable') || changedProperties.has('href')) {
321
+ this.__syncSlottedChildrenTabIndex();
322
+ }
323
+ }
324
+ __syncSlottedChildrenTabIndex() {
325
+ if (!this.contentSlot)
326
+ return;
327
+ const shouldDisableTabbing = this.actionable || this.__isLink();
328
+ const assignedChildren = this.contentSlot.assignedElements({ flatten: true });
329
+ assignedChildren.forEach(node => {
330
+ if (!(node instanceof HTMLElement))
331
+ return;
332
+ if (shouldDisableTabbing) {
333
+ if (!__classPrivateFieldGet(this, _Card_slottedTabIndexMap, "f").has(node)) {
334
+ __classPrivateFieldGet(this, _Card_slottedTabIndexMap, "f").set(node, node.getAttribute('tabindex'));
335
+ }
336
+ if (node.getAttribute('tabindex') !== '-1') {
337
+ node.setAttribute('tabindex', '-1');
338
+ }
339
+ return;
340
+ }
341
+ const originalTabIndex = __classPrivateFieldGet(this, _Card_slottedTabIndexMap, "f").get(node);
342
+ if (originalTabIndex === null) {
343
+ if (node.hasAttribute('tabindex')) {
344
+ node.removeAttribute('tabindex');
345
+ }
346
+ }
347
+ else if (originalTabIndex !== undefined) {
348
+ if (node.getAttribute('tabindex') !== originalTabIndex) {
349
+ node.setAttribute('tabindex', originalTabIndex);
350
+ }
351
+ }
352
+ __classPrivateFieldGet(this, _Card_slottedTabIndexMap, "f").delete(node);
353
+ });
354
+ }
355
+ __isLink() {
356
+ return !!this.href;
357
+ }
358
+ __getDisabledReasonID() {
359
+ return this.disabled && this.disabledReason
360
+ ? `disabled-reason-${__classPrivateFieldGet(this, _Card_id, "f")}`
361
+ : A;
362
+ }
363
+ __renderDisabledReason() {
364
+ const disabledReasonID = this.__getDisabledReasonID();
365
+ if (disabledReasonID)
366
+ return b `<div
367
+ id="disabled-reason-${__classPrivateFieldGet(this, _Card_id, "f")}"
368
+ role="tooltip"
369
+ aria-label=${this.disabledReason}
370
+ class="screen-reader-only"
371
+ >
372
+ ${this.disabledReason}
373
+ </div>`;
374
+ return A;
87
375
  }
88
376
  render() {
89
- return b `<div class="card"><slot></slot></div>`;
377
+ const isLink = this.__isLink();
378
+ const cssClasses = {
379
+ card: true,
380
+ 'card-element': true,
381
+ [`variant-${this.variant}`]: true,
382
+ actionable: (this.actionable && !this.disabled) || isLink,
383
+ disabled: this.disabled,
384
+ pressed: this.isPressed,
385
+ 'has-content': this.slotHasContent,
386
+ };
387
+ if (!this.actionable && !isLink) {
388
+ return b `<div
389
+ class=${e$1(cssClasses)}
390
+ id="card"
391
+ >
392
+ ${this.renderCardContent()}
393
+ </div>`;
394
+ }
395
+ if (!isLink) {
396
+ return b `<button
397
+ class=${e$1(cssClasses)}
398
+ id="card"
399
+ tabindex=${__classPrivateFieldGet(this, _Card_tabindex, "f")}
400
+ @click=${this.__dispatchClickWithThrottle}
401
+ @mousedown=${this.__handlePress}
402
+ @keydown=${this.__handlePress}
403
+ @keyup=${this.__handlePress}
404
+ ?aria-describedby=${this.__getDisabledReasonID()}
405
+ aria-disabled=${`${this.disabled}`}
406
+ ?disabled=${this.disabled}
407
+ >
408
+ ${this.renderCardContent()}
409
+ </button>`;
410
+ }
411
+ return b `<a
412
+ class=${e$1(cssClasses)}
413
+ id="card"
414
+ tabindex=${__classPrivateFieldGet(this, _Card_tabindex, "f")}
415
+ href=${this.href}
416
+ target=${this.target}
417
+ @click=${this.__dispatchClickWithThrottle}
418
+ @mousedown=${this.__handlePress}
419
+ @keydown=${this.__handlePress}
420
+ @keyup=${this.__handlePress}
421
+ role="button"
422
+ ?aria-describedby=${this.__getDisabledReasonID()}
423
+ aria-disabled=${`${this.disabled}`}
424
+ >
425
+ ${this.renderCardContent()}
426
+ </a>`;
427
+ }
428
+ renderCardContent() {
429
+ return b `
430
+ <wc-focus-ring class="focus-ring" .control=${this} .forElement=${this.cardElement}></wc-focus-ring>
431
+ <wc-elevation class="elevation"></wc-elevation>
432
+ <div class="background"></div>
433
+ <div class="outline"></div>
434
+ <wc-ripple class="ripple"></wc-ripple>
435
+
436
+ <div class="card-content">
437
+
438
+ <div class="slot-container">
439
+ <slot @slotchange=${this.__syncSlottedChildrenTabIndex}></slot>
440
+ </div>
441
+
442
+ </div>
443
+ `;
90
444
  }
91
445
  };
92
- Card.styles = [css_248z];
446
+ _Card_id = new WeakMap();
447
+ _Card_tabindex = new WeakMap();
448
+ _Card_slottedTabIndexMap = new WeakMap();
449
+ Card.styles = [css_248z$1, css_248z];
93
450
  __decorate([
94
451
  n({ type: String, reflect: true })
95
452
  ], Card.prototype, "variant", void 0);
96
453
  __decorate([
97
- n({ type: Number, reflect: true })
98
- ], Card.prototype, "elevation", void 0);
454
+ n({ type: Boolean, reflect: true })
455
+ ], Card.prototype, "disabled", void 0);
456
+ __decorate([
457
+ n({ type: Boolean, reflect: true })
458
+ ], Card.prototype, "actionable", void 0);
459
+ __decorate([
460
+ n({ attribute: 'disabled-reason' })
461
+ ], Card.prototype, "disabledReason", void 0);
462
+ __decorate([
463
+ n({ reflect: true })
464
+ ], Card.prototype, "href", void 0);
465
+ __decorate([
466
+ n()
467
+ ], Card.prototype, "target", void 0);
468
+ __decorate([
469
+ n()
470
+ ], Card.prototype, "throttleDelay", void 0);
471
+ __decorate([
472
+ r()
473
+ ], Card.prototype, "isPressed", void 0);
474
+ __decorate([
475
+ r()
476
+ ], Card.prototype, "slotHasContent", void 0);
477
+ __decorate([
478
+ e('.card')
479
+ ], Card.prototype, "cardElement", void 0);
480
+ __decorate([
481
+ e('slot')
482
+ ], Card.prototype, "contentSlot", void 0);
99
483
  Card = __decorate([
100
484
  IndividualComponent
101
485
  ], Card);
package/dist/card.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","sources":["../../src/card/card.ts"],"sourcesContent":["import { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport IndividualComponent from '../IndividualComponent.js';\nimport styles from './card.scss';\n\ntype CardVariant = 'elevated' | 'filled' | 'outlined';\ntype CardElevation = 0 | 1 | 2 | 3 | 4 | 5;\n/**\n * @label Card\n * @tag wc-card\n * @rawTag card\n * @summary A Material 3 inspired card surface for grouping related content.\n * @cssprop --card-padding - Inner padding for the card container. Defaults to 1rem.\n * @cssprop --card-shape - Corner radius for the card container. Defaults to a large radius.\n * @cssprop --card-gap - Gap between slotted children.\n *\n * @example\n * ```html\n * <wc-card variant=\"outlined\">\n * <h3>Title</h3>\n * <p>Supportive text</p>\n * </wc-card>\n * ```\n */\n@IndividualComponent\nexport class Card extends LitElement {\n static styles = [styles];\n\n @property({ type: String, reflect: true })\n variant: CardVariant = 'elevated';\n\n @property({ type: Number, reflect: true })\n elevation: CardElevation = 1;\n\n render() {\n return html`<div class=\"card\"><slot></slot></div>`;\n }\n}\n"],"names":["LitElement","html","styles","property"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;;;;;;;;;;;;;;;;AAgBG;AAEI,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQA,GAAU,CAAA;AAA7B,IAAA,WAAA,GAAA;;QAIL,IAAA,CAAA,OAAO,GAAgB,UAAU;QAGjC,IAAA,CAAA,SAAS,GAAkB,CAAC;IAK9B;IAHE,MAAM,GAAA;QACJ,OAAOC,CAAI,CAAA,CAAA,qCAAA,CAAuC;IACpD;;AAVO,IAAA,CAAA,MAAM,GAAG,CAACC,QAAM,CAAC;AAGxB,UAAA,CAAA;IADCC,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACP,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAGlC,UAAA,CAAA;IADCA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACZ,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAPlB,IAAI,GAAA,UAAA,CAAA;IADhB;AACY,CAAA,EAAA,IAAI,CAYhB;;;;"}
1
+ {"version":3,"file":"card.js","sources":["../../src/card/card.ts"],"sourcesContent":["import { LitElement, html, nothing, PropertyValues } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { dispatchActivationClick, isActivationClick } from '../__utils/dispatch-event-utils.js';\nimport { observerSlotChangesWithCallback } from '@/__utils/observe-slot-change.js';\nimport { throttle } from '@/__utils/throttle.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport styles from './card.scss';\nimport colorStyles from './card-colors.scss';\n\ntype CardVariant = 'elevated' | 'filled' | 'outlined';\n\n/**\n * @label Card\n * @tag wc-card\n * @rawTag card\n * @summary A Material 3 inspired card surface for grouping related content.\n * @cssprop --card-padding - Inner padding for the card container. Defaults to 1rem.\n * @cssprop --card-shape - Corner radius for the card container. Defaults to a large radius.\n * @cssprop --card-gap - Gap between slotted children.\n *\n * @example\n * ```html\n * <wc-card variant=\"outlined\">\n * <h3>Title</h3>\n * <p>Supportive text</p>\n * </wc-card>\n * ```\n */\n@IndividualComponent\nexport class Card extends LitElement {\n static styles = [styles, colorStyles];\n\n #id = crypto.randomUUID();\n\n @property({ type: String, reflect: true })\n variant: CardVariant = 'elevated';\n\n @property({ type: Boolean, reflect: true })\n disabled: boolean = false;\n\n @property({ type: Boolean, reflect: true })\n actionable: boolean = false;\n\n /**\n * If button is disabled, the reason why it is disabled.\n */\n @property({ attribute: 'disabled-reason' })\n disabledReason: string = '';\n\n /**\n * Hyperlink to navigate to on click.\n */\n @property({ reflect: true }) href?: string;\n\n /**\n * Sets or retrieves the window or frame at which to target content.\n */\n @property() target: string = '_self';\n\n\n /**\n * Sets the delay for throttle in milliseconds. Defaults to 200 milliseconds.\n */\n @property() throttleDelay = 200;\n\n /**\n * States\n */\n @state()\n isPressed = false;\n\n @state()\n private slotHasContent = false;\n\n\n @query('.card') readonly cardElement!: HTMLElement | null;\n\n @query('slot') readonly contentSlot!: HTMLSlotElement | null;\n\n #tabindex?: number = 0;\n\n #slottedTabIndexMap = new WeakMap<HTMLElement, string | null>();\n\n override firstUpdated() {\n this.__dispatchClickWithThrottle = throttle(\n this.__dispatchClick,\n this.throttleDelay,\n );\n observerSlotChangesWithCallback(\n this.renderRoot.querySelector('slot'),\n hasContent => {\n this.slotHasContent = hasContent;\n this.__syncSlottedChildrenTabIndex();\n this.requestUpdate();\n },\n );\n this.__syncSlottedChildrenTabIndex();\n }\n\n override updated(changedProperties: PropertyValues<this>) {\n if (changedProperties.has('actionable') || changedProperties.has('href')) {\n this.__syncSlottedChildrenTabIndex();\n }\n }\n\n __syncSlottedChildrenTabIndex() {\n if (!this.contentSlot) return;\n\n const shouldDisableTabbing = this.actionable || this.__isLink();\n const assignedChildren = this.contentSlot.assignedElements({ flatten: true });\n\n assignedChildren.forEach(node => {\n if (!(node instanceof HTMLElement)) return;\n\n if (shouldDisableTabbing) {\n if (!this.#slottedTabIndexMap.has(node)) {\n this.#slottedTabIndexMap.set(node, node.getAttribute('tabindex'));\n }\n\n if (node.getAttribute('tabindex') !== '-1') {\n node.setAttribute('tabindex', '-1');\n }\n return;\n }\n\n const originalTabIndex = this.#slottedTabIndexMap.get(node);\n if (originalTabIndex === null) {\n if (node.hasAttribute('tabindex')) {\n node.removeAttribute('tabindex');\n }\n } else if (originalTabIndex !== undefined) {\n if (node.getAttribute('tabindex') !== originalTabIndex) {\n node.setAttribute('tabindex', originalTabIndex);\n }\n }\n\n this.#slottedTabIndexMap.delete(node);\n });\n }\n\n __dispatchClickWithThrottle: (event: MouseEvent | KeyboardEvent) => void =\n event => {\n this.__dispatchClick(event);\n };\n\n __dispatchClick = (event: MouseEvent | KeyboardEvent) => {\n // If the button is soft-disabled or a disabled link, we need to explicitly\n // prevent the click from propagating to other event listeners as well as\n // prevent the default action.\n if (this.disabled && this.href) {\n event.stopImmediatePropagation();\n event.preventDefault();\n return;\n }\n\n if (!isActivationClick(event) || !this.cardElement) {\n return;\n }\n\n this.focus();\n dispatchActivationClick(this.cardElement);\n };\n\n __isLink() {\n return !!this.href;\n }\n\n __getDisabledReasonID() {\n return this.disabled && this.disabledReason\n ? `disabled-reason-${this.#id}`\n : nothing;\n }\n\n __renderDisabledReason() {\n const disabledReasonID = this.__getDisabledReasonID();\n if (disabledReasonID)\n return html`<div\n id=\"disabled-reason-${this.#id}\"\n role=\"tooltip\"\n aria-label=${this.disabledReason}\n class=\"screen-reader-only\"\n >\n ${this.disabledReason}\n </div>`;\n return nothing;\n }\n\n __handlePress = (event: KeyboardEvent | MouseEvent) => {\n if (this.disabled) return;\n if (\n event instanceof KeyboardEvent &&\n event.type === 'keydown' &&\n (event.key === 'Enter' || event.key === ' ')\n ) {\n this.isPressed = true;\n } else if (event.type === 'mousedown') {\n this.isPressed = true;\n } else {\n this.isPressed = false;\n }\n };\n\n\n\n\n render() {\n\n const isLink = this.__isLink();\n\n const cssClasses = {\n card: true,\n 'card-element': true,\n [`variant-${this.variant}`]: true,\n actionable: (this.actionable && !this.disabled) || isLink,\n disabled: this.disabled,\n pressed: this.isPressed,\n 'has-content': this.slotHasContent,\n };\n\n if (!this.actionable && !isLink) {\n return html`<div\n class=${classMap(cssClasses)}\n id=\"card\"\n >\n ${this.renderCardContent()}\n </div>`;\n }\n\n if (!isLink) {\n return html`<button\n class=${classMap(cssClasses)}\n id=\"card\"\n tabindex=${this.#tabindex}\n @click=${this.__dispatchClickWithThrottle}\n @mousedown=${this.__handlePress}\n @keydown=${this.__handlePress}\n @keyup=${this.__handlePress}\n ?aria-describedby=${this.__getDisabledReasonID()}\n aria-disabled=${`${this.disabled}`}\n ?disabled=${this.disabled}\n >\n ${this.renderCardContent()}\n </button>`;\n }\n return html`<a\n class=${classMap(cssClasses)}\n id=\"card\"\n tabindex=${this.#tabindex}\n href=${this.href}\n target=${this.target}\n @click=${this.__dispatchClickWithThrottle}\n @mousedown=${this.__handlePress}\n @keydown=${this.__handlePress}\n @keyup=${this.__handlePress}\n role=\"button\"\n ?aria-describedby=${this.__getDisabledReasonID()}\n aria-disabled=${`${this.disabled}`}\n >\n ${this.renderCardContent()}\n </a>`;\n }\n\n renderCardContent() {\n return html`\n <wc-focus-ring class=\"focus-ring\" .control=${this} .forElement=${this.cardElement}></wc-focus-ring>\n <wc-elevation class=\"elevation\"></wc-elevation>\n <div class=\"background\"></div>\n <div class=\"outline\"></div>\n <wc-ripple class=\"ripple\"></wc-ripple> \n\n <div class=\"card-content\">\n\n <div class=\"slot-container\">\n <slot @slotchange=${this.__syncSlottedChildrenTabIndex}></slot>\n </div>\n\n </div>\n `;\n }\n}\n"],"names":["LitElement","nothing","html","classMap","styles","colorStyles","property","state","query"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { a as constant, i as interpolateNumber, b as color, d as interpolateRgb, e as interpolateString, o as ordinal, f as initRange } from './transform-DSwFSqzD.js';
2
- import { a as i } from './IndividualComponent-Dt5xirYG.js';
2
+ import { a as i } from './IndividualComponent-DUINtMGK.js';
3
3
 
4
4
  function ascending(a, b) {
5
5
  return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
@@ -1118,4 +1118,4 @@ svg {
1118
1118
  }`;
1119
1119
 
1120
1120
  export { axisLeft as a, band as b, css_248z as c, axisBottom as d, linear as l, max as m };
1121
- //# sourceMappingURL=chart-bar-DbnXQgvS.js.map
1121
+ //# sourceMappingURL=chart-bar-cn6rrna-.js.map