@redvars/peacock 3.3.3 → 3.4.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 (155) 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/bottom-sheet.js +238 -0
  6. package/dist/bottom-sheet.js.map +1 -0
  7. package/dist/{button-ClzS8JLq.js → button-COYCtuA8.js} +306 -149
  8. package/dist/button-COYCtuA8.js.map +1 -0
  9. package/dist/button-group-DsXquZQn.js +440 -0
  10. package/dist/button-group-DsXquZQn.js.map +1 -0
  11. package/dist/button-group.js +6 -4
  12. package/dist/button-group.js.map +1 -1
  13. package/dist/button.js +5 -3
  14. package/dist/button.js.map +1 -1
  15. package/dist/card-content.js +29 -0
  16. package/dist/card-content.js.map +1 -0
  17. package/dist/card.js +418 -44
  18. package/dist/card.js.map +1 -1
  19. package/dist/{chart-bar-DbnXQgvS.js → chart-bar-cn6rrna-.js} +2 -2
  20. package/dist/{chart-bar-DbnXQgvS.js.map → chart-bar-cn6rrna-.js.map} +1 -1
  21. package/dist/chart-bar.js +4 -3
  22. package/dist/chart-bar.js.map +1 -1
  23. package/dist/chart-doughnut.js +2 -1
  24. package/dist/chart-doughnut.js.map +1 -1
  25. package/dist/chart-pie.js +2 -1
  26. package/dist/chart-pie.js.map +1 -1
  27. package/dist/chart-stacked-bar.js +4 -3
  28. package/dist/chart-stacked-bar.js.map +1 -1
  29. package/dist/{class-map-59YGWLnx.js → class-map-3TAnCMAX.js} +3 -9
  30. package/dist/class-map-3TAnCMAX.js.map +1 -0
  31. package/dist/clock.js +2 -1
  32. package/dist/clock.js.map +1 -1
  33. package/dist/code-editor.js +6 -4
  34. package/dist/code-editor.js.map +1 -1
  35. package/dist/code-highlighter.js +5 -3
  36. package/dist/code-highlighter.js.map +1 -1
  37. package/dist/custom-elements-jsdocs.json +2458 -2753
  38. package/dist/custom-elements.json +2742 -757
  39. package/dist/dispatch-event-utils-B4odODQf.js.map +1 -1
  40. package/dist/index.js +14 -10
  41. package/dist/index.js.map +1 -1
  42. package/dist/number-counter.js +3 -2
  43. package/dist/number-counter.js.map +1 -1
  44. package/dist/{observe-theme-change-pALI5fmV.js → observe-theme-change-DKAIv5BB.js} +3 -2
  45. package/dist/observe-theme-change-DKAIv5BB.js.map +1 -0
  46. package/dist/peacock-loader.js +34 -8
  47. package/dist/peacock-loader.js.map +1 -1
  48. package/dist/property-1psGvXOq.js +10 -0
  49. package/dist/property-1psGvXOq.js.map +1 -0
  50. package/dist/{radio-b70_Ie9n.js → select-C3XAzenC.js} +1706 -192
  51. package/dist/select-C3XAzenC.js.map +1 -0
  52. package/dist/side-sheet.js +186 -0
  53. package/dist/side-sheet.js.map +1 -0
  54. package/dist/src/bottom-sheet/bottom-sheet.d.ts +42 -0
  55. package/dist/src/bottom-sheet/index.d.ts +1 -0
  56. package/dist/src/button/BaseButton.d.ts +4 -3
  57. package/dist/src/button/button/button.d.ts +4 -0
  58. package/dist/src/button/button-group/button-group.d.ts +32 -3
  59. package/dist/src/button/icon-button/icon-button.d.ts +4 -0
  60. package/dist/src/card/card-content.d.ts +15 -0
  61. package/dist/src/card/card.d.ts +37 -3
  62. package/dist/src/card/index.d.ts +1 -0
  63. package/dist/src/container/container.d.ts +1 -1
  64. package/dist/src/empty-state/empty-state.d.ts +1 -1
  65. package/dist/src/focus-ring/focus-ring.d.ts +4 -1
  66. package/dist/src/index.d.ts +6 -1
  67. package/dist/src/menu/menu/menu.d.ts +1 -0
  68. package/dist/src/menu/menu-item/menu-item.d.ts +0 -1
  69. package/dist/src/ripple/ripple.d.ts +19 -3
  70. package/dist/src/segmented-button/index.d.ts +2 -0
  71. package/dist/src/segmented-button/segmented-button-group.d.ts +46 -0
  72. package/dist/src/segmented-button/segmented-button.d.ts +65 -0
  73. package/dist/src/select/index.d.ts +3 -0
  74. package/dist/src/select/option.d.ts +55 -0
  75. package/dist/src/select/select.d.ts +116 -0
  76. package/dist/src/side-sheet/index.d.ts +1 -0
  77. package/dist/src/side-sheet/side-sheet.d.ts +41 -0
  78. package/dist/src/tabs/tab-group.d.ts +0 -1
  79. package/dist/src/tabs/tab.d.ts +8 -2
  80. package/dist/src/tabs/tabs.d.ts +13 -1
  81. package/dist/state-DwbEjqVk.js +10 -0
  82. package/dist/state-DwbEjqVk.js.map +1 -0
  83. package/dist/{style-map-DcB52w-l.js → style-map-CRFEoCEg.js} +2 -2
  84. package/dist/{style-map-DcB52w-l.js.map → style-map-CRFEoCEg.js.map} +1 -1
  85. package/dist/tsconfig.tsbuildinfo +1 -1
  86. package/dist/{unsafe-html-C2r3PyzF.js → unsafe-html-D3GHRaGQ.js} +2 -2
  87. package/dist/{unsafe-html-C2r3PyzF.js.map → unsafe-html-D3GHRaGQ.js.map} +1 -1
  88. package/package.json +1 -1
  89. package/readme.md +2 -2
  90. package/src/bottom-sheet/bottom-sheet.scss +88 -0
  91. package/src/bottom-sheet/bottom-sheet.ts +135 -0
  92. package/src/bottom-sheet/index.ts +1 -0
  93. package/src/button/BaseButton.ts +16 -7
  94. package/src/button/button/button-colors.scss +76 -5
  95. package/src/button/button/button-sizes.scss +39 -19
  96. package/src/button/button/button.scss +117 -116
  97. package/src/button/button/button.ts +23 -1
  98. package/src/button/button-group/button-group.scss +25 -22
  99. package/src/button/button-group/button-group.ts +121 -4
  100. package/src/button/icon-button/icon-button-sizes.scss +35 -15
  101. package/src/button/icon-button/icon-button.ts +21 -1
  102. package/src/card/card-colors.scss +10 -0
  103. package/src/card/card-content.ts +26 -0
  104. package/src/card/card.scss +221 -41
  105. package/src/card/card.ts +240 -7
  106. package/src/card/index.ts +1 -0
  107. package/src/code-editor/code-editor.ts +1 -1
  108. package/src/container/container.ts +1 -1
  109. package/src/empty-state/empty-state.scss +8 -0
  110. package/src/empty-state/empty-state.ts +2 -2
  111. package/src/focus-ring/focus-ring.ts +37 -19
  112. package/src/index.ts +7 -1
  113. package/src/menu/menu/menu.scss +24 -3
  114. package/src/menu/menu/menu.ts +23 -2
  115. package/src/menu/menu-item/menu-item.scss +1 -0
  116. package/src/menu/menu-item/menu-item.ts +1 -9
  117. package/src/peacock-loader.ts +28 -0
  118. package/src/ripple/ripple.ts +19 -3
  119. package/src/segmented-button/index.ts +2 -0
  120. package/src/segmented-button/segmented-button-group.scss +21 -0
  121. package/src/segmented-button/segmented-button-group.ts +110 -0
  122. package/src/segmented-button/segmented-button.scss +115 -0
  123. package/src/segmented-button/segmented-button.ts +175 -0
  124. package/src/select/index.ts +3 -0
  125. package/src/select/option.ts +109 -0
  126. package/src/select/select.scss +120 -0
  127. package/src/select/select.ts +486 -0
  128. package/src/side-sheet/index.ts +1 -0
  129. package/src/side-sheet/side-sheet.scss +79 -0
  130. package/src/side-sheet/side-sheet.ts +100 -0
  131. package/src/slider/slider.scss +0 -1
  132. package/src/tabs/demo/index.html +90 -0
  133. package/src/tabs/tab-group.ts +0 -3
  134. package/src/tabs/tab.scss +237 -25
  135. package/src/tabs/tab.ts +85 -11
  136. package/src/tabs/tabs.scss +37 -3
  137. package/src/tabs/tabs.ts +118 -2
  138. package/src/utils/dispatch-event-utils.ts +1 -0
  139. package/dist/IndividualComponent-Dt5xirYG.js +0 -73
  140. package/dist/IndividualComponent-Dt5xirYG.js.map +0 -1
  141. package/dist/button-ClzS8JLq.js.map +0 -1
  142. package/dist/button-group-BMS5WvaF.js +0 -292
  143. package/dist/button-group-BMS5WvaF.js.map +0 -1
  144. package/dist/chart-donut.js +0 -309
  145. package/dist/chart-donut.js.map +0 -1
  146. package/dist/class-map-59YGWLnx.js.map +0 -1
  147. package/dist/observe-theme-change-pALI5fmV.js.map +0 -1
  148. package/dist/radio-b70_Ie9n.js.map +0 -1
  149. package/dist/src/chart-donut/chart-donut.d.ts +0 -53
  150. package/dist/src/chart-donut/index.d.ts +0 -1
  151. package/dist/test/card.test.d.ts +0 -1
  152. package/src/chart-donut/chart-donut.scss +0 -37
  153. package/src/chart-donut/chart-donut.ts +0 -287
  154. package/src/chart-donut/demo/index.html +0 -51
  155. package/src/chart-donut/index.ts +0 -1
package/dist/card.js CHANGED
@@ -1,67 +1,233 @@
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-3TAnCMAX.js';
6
+ import { i as isActivationClick, d as dispatchActivationClick, t as throttle, o as observerSlotChangesWithCallback } from './dispatch-event-utils-B4odODQf.js';
7
+ import './directive-Cuw6h7YA.js';
2
8
 
3
- var css_248z = i`:host {
9
+ var css_248z$1 = i`* {
10
+ box-sizing: border-box;
11
+ }
12
+
13
+ .screen-reader-only {
14
+ display: none !important;
15
+ }
16
+
17
+ :host {
4
18
  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
19
  --card-gap: 0;
20
+ --card-padding: 0;
21
+ --card-container-shape: var(--shape-corner-large);
22
+ --card-container-shape-start-start: unset;
23
+ --card-container-shape-start-end: unset;
24
+ --card-container-shape-end-start: unset;
25
+ --card-container-shape-end-end: unset;
26
+ }
27
+
28
+ /*
29
+ * Reset native button/link styles
30
+ */
31
+ .card {
32
+ background: transparent;
33
+ border: none;
34
+ appearance: none;
35
+ margin: 0;
36
+ outline: none;
37
+ text-decoration: none;
38
+ text-align: unset;
11
39
  }
12
40
 
13
41
  .card {
42
+ position: relative;
43
+ display: flex;
44
+ height: 100%;
45
+ width: 100%;
46
+ --_container-shape-start-start: var(--card-container-shape-start-start, var(--card-container-shape));
47
+ --_container-shape-start-end: var(--card-container-shape-start-end, var(--card-container-shape));
48
+ --_container-shape-end-start: var(--card-container-shape-end-start, var(--card-container-shape));
49
+ --_container-shape-end-end: var(--card-container-shape-end-end, var(--card-container-shape));
50
+ }
51
+ .card .card-content {
52
+ z-index: 0;
53
+ width: 100%;
54
+ height: 100%;
55
+ overflow: hidden;
56
+ padding: var(--card-padding);
57
+ border: 1px solid transparent; /* Fixes overflow issues with border */
58
+ border-start-start-radius: var(--_container-shape-start-start);
59
+ border-start-end-radius: var(--_container-shape-start-end);
60
+ border-end-start-radius: var(--_container-shape-end-start);
61
+ border-end-end-radius: var(--_container-shape-end-end);
62
+ color: var(--_label-text-color);
63
+ opacity: var(--_label-text-opacity, 1);
64
+ --icon-color: var(--_label-text-color);
65
+ }
66
+ .card .card-content .slot-container {
14
67
  display: flex;
15
68
  flex-direction: column;
16
69
  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;
70
+ width: 100%;
71
+ height: 100%;
24
72
  }
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));
73
+ .card {
74
+ /*
75
+ Background layers
76
+ */
29
77
  }
30
-
31
- :host([variant=filled]) {
32
- --card-background: var(--color-surface-container-highest, #f5f5f5);
33
- --card-shadow: none;
78
+ .card .focus-ring {
79
+ z-index: 2;
80
+ display: none;
81
+ --focus-ring-container-shape-start-start: var(--_container-shape-start-start);
82
+ --focus-ring-container-shape-start-end: var(--_container-shape-start-end);
83
+ --focus-ring-container-shape-end-start: var(--_container-shape-end-start);
84
+ --focus-ring-container-shape-end-end: var(--_container-shape-end-end);
85
+ --focus-ring-container-shape-variant: var(--_container-corner-shape-variant);
34
86
  }
35
-
36
- :host([variant=outlined]) {
37
- --card-border-color: var(--color-outline, rgba(0, 0, 0, 0.12));
38
- --card-shadow: none;
87
+ .card .ripple {
88
+ display: none;
89
+ border-start-start-radius: var(--_container-shape-start-start);
90
+ border-start-end-radius: var(--_container-shape-start-end);
91
+ border-end-start-radius: var(--_container-shape-end-start);
92
+ border-end-end-radius: var(--_container-shape-end-end);
93
+ corner-shape: var(--_container-corner-shape-variant);
94
+ --ripple-state-opacity: var(--_container-state-opacity, 0);
95
+ --ripple-pressed-color: var(--_container-state-color);
39
96
  }
40
-
41
- :host([elevation="0"]) {
42
- --card-shadow: none;
97
+ .card .background {
98
+ z-index: 0;
99
+ display: block;
100
+ position: absolute;
101
+ top: 0;
102
+ left: 0;
103
+ width: 100%;
104
+ height: 100%;
105
+ background-color: var(--_container-color);
106
+ opacity: var(--_container-opacity, 1);
107
+ border-start-start-radius: var(--_container-shape-start-start);
108
+ border-start-end-radius: var(--_container-shape-start-end);
109
+ border-end-start-radius: var(--_container-shape-end-start);
110
+ border-end-end-radius: var(--_container-shape-end-end);
111
+ corner-shape: var(--_container-corner-shape-variant);
112
+ pointer-events: none;
113
+ }
114
+ .card .elevation {
115
+ --elevation-level: var(--_container-elevation-level);
116
+ transition-duration: 280ms;
117
+ --elevation-container-shape-start-start: var(--_container-shape-start-start);
118
+ --elevation-container-shape-start-end: var(--_container-shape-start-end);
119
+ --elevation-container-shape-end-start: var(--_container-shape-end-start);
120
+ --elevation-container-shape-end-end: var(--_container-shape-end-end);
121
+ --elevation-container-shape-variant: var(--_container-corner-shape-variant);
122
+ }
123
+ .card .outline {
124
+ z-index: 0;
125
+ display: none;
126
+ position: absolute;
127
+ left: 0;
128
+ top: 0;
129
+ width: 100%;
130
+ height: 100%;
131
+ pointer-events: none;
132
+ border: var(--_outline-width) solid var(--_outline-color);
133
+ opacity: var(--_outline-opacity, 1);
134
+ border-start-start-radius: var(--_container-shape-start-start);
135
+ border-start-end-radius: var(--_container-shape-start-end);
136
+ border-end-start-radius: var(--_container-shape-end-start);
137
+ border-end-end-radius: var(--_container-shape-end-end);
138
+ corner-shape: var(--_container-corner-shape-variant);
43
139
  }
44
140
 
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));
141
+ .card.actionable .focus-ring,
142
+ .card.actionable .ripple {
143
+ display: block;
144
+ }
145
+ .card.actionable .card-content {
146
+ pointer-events: none;
47
147
  }
48
148
 
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));
149
+ .card.variant-elevated {
150
+ --_container-color: var(--elevated-card-container-color);
151
+ --_label-text-color: var(--elevated-card-label-text-color);
152
+ --_container-elevation-level: 1;
153
+ --_container-state-color: var(--_label-text-color);
154
+ }
155
+ .card.variant-elevated:hover:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
156
+ --_container-elevation-level: 2;
157
+ --_container-state-opacity: 0.08;
158
+ }
159
+ .card.variant-elevated.pressed:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
160
+ --_container-elevation-level: 1;
161
+ --_container-state-opacity: 0.12;
162
+ }
163
+ .card.variant-elevated.disabled {
164
+ --_container-color: var(--color-on-surface);
165
+ --_container-opacity: 0.1;
166
+ --_label-text-color: var(--color-on-surface);
167
+ --_label-text-opacity: 0.38;
168
+ }
169
+ .card.variant-elevated.disabled .ripple {
170
+ display: none;
51
171
  }
52
172
 
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));
173
+ .card.variant-filled {
174
+ --_container-color: var(--filled-card-container-color);
175
+ --_label-text-color: var(--filled-card-label-text-color);
176
+ --_container-state-color: var(--_label-text-color);
177
+ }
178
+ .card.variant-filled:hover:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
179
+ --_container-elevation-level: 1;
180
+ --_container-state-opacity: 0.08;
181
+ }
182
+ .card.variant-filled.pressed:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
183
+ --_container-elevation-level: 0;
184
+ --_container-state-opacity: 0.1;
185
+ }
186
+ .card.variant-filled.disabled {
187
+ --_container-color: var(--color-on-surface);
188
+ --_container-opacity: 0.1;
189
+ --_label-text-color: var(--color-on-surface);
190
+ --_label-text-opacity: 0.38;
191
+ }
192
+ .card.variant-filled.disabled .ripple {
193
+ display: none;
55
194
  }
56
195
 
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));
196
+ .card.variant-outlined {
197
+ --_outline-width: var(--outlined-card-outline-width, 0.0675rem);
198
+ --_outline-color: var(--outlined-card-outline-color);
199
+ --_label-text-color: var(--outlined-card-label-text-color);
200
+ --_container-state-color: var(--_label-text-color);
201
+ }
202
+ .card.variant-outlined .outline {
203
+ display: block;
204
+ }
205
+ .card.variant-outlined:hover:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
206
+ --_container-state-opacity: 0.08;
207
+ }
208
+ .card.variant-outlined.pressed:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
209
+ --_container-state-opacity: 0.12;
210
+ }
211
+ .card.variant-outlined.disabled {
212
+ --_outline-color: var(--color-on-surface);
213
+ --_label-text-color: var(--color-on-surface);
214
+ --_label-text-opacity: 0.38;
215
+ --_outline-opacity: 0.12;
59
216
  }
217
+ .card.variant-outlined.disabled .ripple {
218
+ display: none;
219
+ }`;
60
220
 
61
- :host([elevation="5"]) {
62
- --card-shadow: var(--shadow-xxl, 0px 24px 48px -12px rgba(16, 24, 40, 0.18));
221
+ var css_248z = i`:host {
222
+ --filled-card-container-color: var(--color-surface-container-highest);
223
+ --filled-card-label-text-color: var(--color-on-surface);
224
+ --elevated-card-container-color: var(--color-surface-container-low);
225
+ --elevated-card-label-text-color: var(--color-on-surface);
226
+ --outlined-card-outline-color: var(--color-outline-variant);
227
+ --outlined-card-label-text-color: var(--color-on-surface);
63
228
  }`;
64
229
 
230
+ var _Card_id, _Card_tabindex, _Card_slottedTabIndexMap;
65
231
  /**
66
232
  * @label Card
67
233
  * @tag wc-card
@@ -82,20 +248,228 @@ var css_248z = i`:host {
82
248
  let Card = class Card extends i$1 {
83
249
  constructor() {
84
250
  super(...arguments);
251
+ _Card_id.set(this, crypto.randomUUID());
85
252
  this.variant = 'elevated';
86
- this.elevation = 1;
253
+ this.disabled = false;
254
+ this.actionable = false;
255
+ /**
256
+ * If button is disabled, the reason why it is disabled.
257
+ */
258
+ this.disabledReason = '';
259
+ /**
260
+ * Sets or retrieves the window or frame at which to target content.
261
+ */
262
+ this.target = '_self';
263
+ /**
264
+ * Sets the delay for throttle in milliseconds. Defaults to 200 milliseconds.
265
+ */
266
+ this.throttleDelay = 200;
267
+ /**
268
+ * States
269
+ */
270
+ this.isPressed = false;
271
+ this.slotHasContent = false;
272
+ _Card_tabindex.set(this, 0);
273
+ _Card_slottedTabIndexMap.set(this, new WeakMap());
274
+ this.__dispatchClickWithThrottle = event => {
275
+ this.__dispatchClick(event);
276
+ };
277
+ this.__dispatchClick = (event) => {
278
+ // If the button is soft-disabled or a disabled link, we need to explicitly
279
+ // prevent the click from propagating to other event listeners as well as
280
+ // prevent the default action.
281
+ if (this.disabled && this.href) {
282
+ event.stopImmediatePropagation();
283
+ event.preventDefault();
284
+ return;
285
+ }
286
+ if (!isActivationClick(event) || !this.cardElement) {
287
+ return;
288
+ }
289
+ this.focus();
290
+ dispatchActivationClick(this.cardElement);
291
+ };
292
+ this.__handlePress = (event) => {
293
+ if (this.disabled)
294
+ return;
295
+ if (event instanceof KeyboardEvent &&
296
+ event.type === 'keydown' &&
297
+ (event.key === 'Enter' || event.key === ' ')) {
298
+ this.isPressed = true;
299
+ }
300
+ else if (event.type === 'mousedown') {
301
+ this.isPressed = true;
302
+ }
303
+ else {
304
+ this.isPressed = false;
305
+ }
306
+ };
307
+ }
308
+ firstUpdated() {
309
+ this.__dispatchClickWithThrottle = throttle(this.__dispatchClick, this.throttleDelay);
310
+ observerSlotChangesWithCallback(this.renderRoot.querySelector('slot'), hasContent => {
311
+ this.slotHasContent = hasContent;
312
+ this.__syncSlottedChildrenTabIndex();
313
+ this.requestUpdate();
314
+ });
315
+ this.__syncSlottedChildrenTabIndex();
316
+ }
317
+ updated(changedProperties) {
318
+ if (changedProperties.has('actionable') || changedProperties.has('href')) {
319
+ this.__syncSlottedChildrenTabIndex();
320
+ }
321
+ }
322
+ __syncSlottedChildrenTabIndex() {
323
+ if (!this.contentSlot)
324
+ return;
325
+ const shouldDisableTabbing = this.actionable || this.__isLink();
326
+ const assignedChildren = this.contentSlot.assignedElements({ flatten: true });
327
+ assignedChildren.forEach(node => {
328
+ if (!(node instanceof HTMLElement))
329
+ return;
330
+ if (shouldDisableTabbing) {
331
+ if (!__classPrivateFieldGet(this, _Card_slottedTabIndexMap, "f").has(node)) {
332
+ __classPrivateFieldGet(this, _Card_slottedTabIndexMap, "f").set(node, node.getAttribute('tabindex'));
333
+ }
334
+ if (node.getAttribute('tabindex') !== '-1') {
335
+ node.setAttribute('tabindex', '-1');
336
+ }
337
+ return;
338
+ }
339
+ const originalTabIndex = __classPrivateFieldGet(this, _Card_slottedTabIndexMap, "f").get(node);
340
+ if (originalTabIndex === null) {
341
+ if (node.hasAttribute('tabindex')) {
342
+ node.removeAttribute('tabindex');
343
+ }
344
+ }
345
+ else if (originalTabIndex !== undefined) {
346
+ if (node.getAttribute('tabindex') !== originalTabIndex) {
347
+ node.setAttribute('tabindex', originalTabIndex);
348
+ }
349
+ }
350
+ __classPrivateFieldGet(this, _Card_slottedTabIndexMap, "f").delete(node);
351
+ });
352
+ }
353
+ __isLink() {
354
+ return !!this.href;
355
+ }
356
+ __getDisabledReasonID() {
357
+ return this.disabled && this.disabledReason
358
+ ? `disabled-reason-${__classPrivateFieldGet(this, _Card_id, "f")}`
359
+ : A;
360
+ }
361
+ __renderDisabledReason() {
362
+ const disabledReasonID = this.__getDisabledReasonID();
363
+ if (disabledReasonID)
364
+ return b `<div
365
+ id="disabled-reason-${__classPrivateFieldGet(this, _Card_id, "f")}"
366
+ role="tooltip"
367
+ aria-label=${this.disabledReason}
368
+ class="screen-reader-only"
369
+ >
370
+ ${this.disabledReason}
371
+ </div>`;
372
+ return A;
87
373
  }
88
374
  render() {
89
- return b `<div class="card"><slot></slot></div>`;
375
+ const isLink = this.__isLink();
376
+ const cssClasses = {
377
+ card: true,
378
+ 'card-element': true,
379
+ [`variant-${this.variant}`]: true,
380
+ actionable: (this.actionable && !this.disabled) || isLink,
381
+ disabled: this.disabled,
382
+ pressed: this.isPressed,
383
+ 'has-content': this.slotHasContent,
384
+ };
385
+ if (!isLink) {
386
+ return b `<button
387
+ class=${e$1(cssClasses)}
388
+ id="button"
389
+ tabindex=${__classPrivateFieldGet(this, _Card_tabindex, "f")}
390
+ @click=${this.__dispatchClickWithThrottle}
391
+ @mousedown=${this.__handlePress}
392
+ @keydown=${this.__handlePress}
393
+ @keyup=${this.__handlePress}
394
+ ?aria-describedby=${this.__getDisabledReasonID()}
395
+ aria-disabled=${`${this.disabled}`}
396
+ ?disabled=${this.disabled}
397
+ >
398
+ ${this.renderCardContent()}
399
+ </button>`;
400
+ }
401
+ return b `<a
402
+ class=${e$1(cssClasses)}
403
+ id="button"
404
+ tabindex=${__classPrivateFieldGet(this, _Card_tabindex, "f")}
405
+ href=${this.href}
406
+ target=${this.target}
407
+ @click=${this.__dispatchClickWithThrottle}
408
+ @mousedown=${this.__handlePress}
409
+ @keydown=${this.__handlePress}
410
+ @keyup=${this.__handlePress}
411
+ role="button"
412
+ ?aria-describedby=${this.__getDisabledReasonID()}
413
+ aria-disabled=${`${this.disabled}`}
414
+ >
415
+ ${this.renderCardContent()}
416
+ </a>`;
417
+ }
418
+ renderCardContent() {
419
+ return b `
420
+ <wc-focus-ring class="focus-ring" .control=${this} .forElement=${this.cardElement}></wc-focus-ring>
421
+ <wc-elevation class="elevation"></wc-elevation>
422
+ <div class="background"></div>
423
+ <div class="outline"></div>
424
+ <wc-ripple class="ripple"></wc-ripple>
425
+
426
+ <div class="card-content">
427
+
428
+ <div class="slot-container">
429
+ <slot @slotchange=${this.__syncSlottedChildrenTabIndex}></slot>
430
+ </div>
431
+
432
+ </div>
433
+ `;
90
434
  }
91
435
  };
92
- Card.styles = [css_248z];
436
+ _Card_id = new WeakMap();
437
+ _Card_tabindex = new WeakMap();
438
+ _Card_slottedTabIndexMap = new WeakMap();
439
+ Card.styles = [css_248z$1, css_248z];
93
440
  __decorate([
94
441
  n({ type: String, reflect: true })
95
442
  ], Card.prototype, "variant", void 0);
96
443
  __decorate([
97
- n({ type: Number, reflect: true })
98
- ], Card.prototype, "elevation", void 0);
444
+ n({ type: Boolean, reflect: true })
445
+ ], Card.prototype, "disabled", void 0);
446
+ __decorate([
447
+ n({ type: Boolean, reflect: true })
448
+ ], Card.prototype, "actionable", void 0);
449
+ __decorate([
450
+ n({ attribute: 'disabled-reason' })
451
+ ], Card.prototype, "disabledReason", void 0);
452
+ __decorate([
453
+ n({ reflect: true })
454
+ ], Card.prototype, "href", void 0);
455
+ __decorate([
456
+ n()
457
+ ], Card.prototype, "target", void 0);
458
+ __decorate([
459
+ n()
460
+ ], Card.prototype, "throttleDelay", void 0);
461
+ __decorate([
462
+ r()
463
+ ], Card.prototype, "isPressed", void 0);
464
+ __decorate([
465
+ r()
466
+ ], Card.prototype, "slotHasContent", void 0);
467
+ __decorate([
468
+ e('.card')
469
+ ], Card.prototype, "cardElement", void 0);
470
+ __decorate([
471
+ e('slot')
472
+ ], Card.prototype, "contentSlot", void 0);
99
473
  Card = __decorate([
100
474
  IndividualComponent
101
475
  ], 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, throttle } from '../utils.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 (!isLink) {\n return html`<button\n class=${classMap(cssClasses)}\n id=\"button\"\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=\"button\"\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA;;;;;;;;;;;;;;;;AAgBG;AAEI,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQA,GAAU,CAAA;AAA7B,IAAA,WAAA,GAAA;;AAGJ,QAAA,QAAA,CAAA,GAAA,CAAA,IAAA,EAAM,MAAM,CAAC,UAAU,EAAE,CAAA;QAG1B,IAAA,CAAA,OAAO,GAAgB,UAAU;QAGjC,IAAA,CAAA,QAAQ,GAAY,KAAK;QAGzB,IAAA,CAAA,UAAU,GAAY,KAAK;AAE1B;;AAEE;QAEH,IAAA,CAAA,cAAc,GAAW,EAAE;AAO3B;;AAEG;QACS,IAAA,CAAA,MAAM,GAAW,OAAO;AAGpC;;AAEG;QACS,IAAA,CAAA,aAAa,GAAG,GAAG;AAE/B;;AAEG;QAEH,IAAA,CAAA,SAAS,GAAG,KAAK;QAGT,IAAA,CAAA,cAAc,GAAG,KAAK;AAO9B,QAAA,cAAA,CAAA,GAAA,CAAA,IAAA,EAAqB,CAAC,CAAA;QAEtB,wBAAA,CAAA,GAAA,CAAA,IAAA,EAAsB,IAAI,OAAO,EAA8B,CAAA;QA2D/D,IAAA,CAAA,2BAA2B,GACzB,KAAK,IAAG;AACN,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AAC7B,QAAA,CAAC;AAEH,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,KAAiC,KAAI;;;;YAIpD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;gBAC9B,KAAK,CAAC,wBAAwB,EAAE;gBAChC,KAAK,CAAC,cAAc,EAAE;gBACtB;YACF;YAEA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBAClD;YACF;YAEA,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC;AAC3C,QAAA,CAAC;AA0BH,QAAA,IAAA,CAAA,aAAa,GAAG,CAAC,KAAiC,KAAI;YACpD,IAAI,IAAI,CAAC,QAAQ;gBAAE;YACnB,IACE,KAAK,YAAY,aAAa;gBAC9B,KAAK,CAAC,IAAI,KAAK,SAAS;AACxB,iBAAC,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,EAC5C;AACA,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACvB;AAAO,iBAAA,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;AACrC,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACvB;iBAAO;AACL,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;YACxB;AACF,QAAA,CAAC;IAsEH;IA3LW,YAAY,GAAA;AACnB,QAAA,IAAI,CAAC,2BAA2B,GAAG,QAAQ,CACzC,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,aAAa,CACnB;AACD,QAAA,+BAA+B,CAC7B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,EACrC,UAAU,IAAG;AACX,YAAA,IAAI,CAAC,cAAc,GAAG,UAAU;YAChC,IAAI,CAAC,6BAA6B,EAAE;YACpC,IAAI,CAAC,aAAa,EAAE;AACtB,QAAA,CAAC,CACF;QACD,IAAI,CAAC,6BAA6B,EAAE;IACtC;AAES,IAAA,OAAO,CAAC,iBAAuC,EAAA;AACtD,QAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACxE,IAAI,CAAC,6BAA6B,EAAE;QACtC;IACF;IAEA,6BAA6B,GAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE;QAEvB,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/D,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAE7E,QAAA,gBAAgB,CAAC,OAAO,CAAC,IAAI,IAAG;AAC9B,YAAA,IAAI,EAAE,IAAI,YAAY,WAAW,CAAC;gBAAE;YAEpC,IAAI,oBAAoB,EAAE;gBACxB,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACvC,oBAAA,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBACnE;gBAEA,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;AAC1C,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;gBACrC;gBACA;YACF;YAEA,MAAM,gBAAgB,GAAG,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3D,YAAA,IAAI,gBAAgB,KAAK,IAAI,EAAE;AAC7B,gBAAA,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;AACjC,oBAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;gBAClC;YACF;AAAO,iBAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;gBACzC,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,gBAAgB,EAAE;AACtD,oBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,gBAAgB,CAAC;gBACjD;YACF;AAEA,YAAA,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAoB,CAAC,MAAM,CAAC,IAAI,CAAC;AACvC,QAAA,CAAC,CAAC;IACJ;IAyBA,QAAQ,GAAA;AACN,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI;IACpB;IAEA,qBAAqB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;AAC3B,cAAE,CAAA,gBAAA,EAAmB,sBAAA,CAAA,IAAI,gBAAI,CAAA;cAC3BC,CAAO;IACb;IAEA,sBAAsB,GAAA;AACpB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,EAAE;AACrD,QAAA,IAAI,gBAAgB;AAClB,YAAA,OAAOC,CAAI,CAAA,CAAA;AACa,4BAAA,EAAA,sBAAA,CAAA,IAAI,EAAA,QAAA,EAAA,GAAA,CAAI,CAAA;;AAEjB,mBAAA,EAAA,IAAI,CAAC,cAAc;;;AAG9B,QAAA,EAAA,IAAI,CAAC,cAAc;aAChB;AACT,QAAA,OAAOD,CAAO;IAChB;IAoBA,MAAM,GAAA;AAEJ,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE;AAE9B,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,CAAC,WAAW,IAAI,CAAC,OAAO,CAAA,CAAE,GAAG,IAAI;AACjC,YAAA,UAAU,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM;YACzD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,SAAS;YACvB,aAAa,EAAE,IAAI,CAAC,cAAc;SACnC;QAED,IAAI,CAAC,MAAM,EAAE;AACP,YAAA,OAAOC,CAAI,CAAA,CAAA;sBACCC,GAAQ,CAAC,UAAU,CAAC;;AAEjB,uBAAA,EAAA,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAU;AAChB,qBAAA,EAAA,IAAI,CAAC,2BAA2B;AAC5B,yBAAA,EAAA,IAAI,CAAC,aAAa;AACpB,uBAAA,EAAA,IAAI,CAAC,aAAa;AACpB,qBAAA,EAAA,IAAI,CAAC,aAAa;kCACP,IAAI,CAAC,qBAAqB,EAAE;8BAChC,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,CAAE;AACtB,wBAAA,EAAA,IAAI,CAAC,QAAQ;;gBAEvB,IAAI,CAAC,iBAAiB,EAAE;sBAClB;QACd;AACA,QAAA,OAAOD,CAAI,CAAA,CAAA;oBACCC,GAAQ,CAAC,UAAU,CAAC;;AAEjB,qBAAA,EAAA,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAU;AAClB,iBAAA,EAAA,IAAI,CAAC,IAAI;AACP,mBAAA,EAAA,IAAI,CAAC,MAAM;AACT,qBAAA,EAAA,IAAI,CAAC,2BAA2B;AAC9B,uBAAA,EAAA,IAAI,CAAC,aAAa;AACpB,qBAAA,EAAA,IAAI,CAAC,aAAa;AACpB,mBAAA,EAAA,IAAI,CAAC,aAAa;;gCAEP,IAAI,CAAC,qBAAqB,EAAE;4BAChC,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAA,CAAE;;cAEhC,IAAI,CAAC,iBAAiB,EAAE;eACvB;IACb;IAEA,iBAAiB,GAAA;AACf,QAAA,OAAOD,CAAI,CAAA;iDACkC,IAAI,CAAA,aAAA,EAAgB,IAAI,CAAC,WAAW,CAAA;;;;;;;;;AASvD,4BAAA,EAAA,IAAI,CAAC,6BAA6B,CAAA;;;;OAIzD;IACL;;;;;AA/OO,IAAA,CAAA,MAAM,GAAG,CAACE,UAAM,EAAEC,QAAW,CAAC;AAKrC,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,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC;AACd,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAG1B,UAAA,CAAA;IADCA,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACd,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;AAM5B,UAAA,CAAA;AADC,IAAAA,CAAQ,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE;AACd,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,CAAA;AAKC,UAAA,CAAA;AAA5B,IAAAA,CAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAAgB,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAK/B,UAAA,CAAA;AAAX,IAAAA,CAAQ;AAA4B,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AAMzB,UAAA,CAAA;AAAX,IAAAA,CAAQ;AAAuB,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,eAAA,EAAA,MAAA,CAAA;AAMhC,UAAA,CAAA;AADC,IAAAC,CAAK;AACY,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAGV,UAAA,CAAA;AADP,IAAAA,CAAK;AACyB,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,MAAA,CAAA;AAGN,UAAA,CAAA;IAAxBC,CAAK,CAAC,OAAO;AAA4C,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAElC,UAAA,CAAA;IAAvBA,CAAK,CAAC,MAAM;AAAgD,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAhDlD,IAAI,GAAA,UAAA,CAAA;IADhB;AACY,CAAA,EAAA,IAAI,CAiPhB;;;;"}
@@ -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