@redvars/peacock 3.3.2 → 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 (160) 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 +3185 -777
  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 +37 -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/{snackbar-74YCdMPL.js → select-C3XAzenC.js} +2158 -191
  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 +7 -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/radio/index.d.ts +1 -0
  70. package/dist/src/radio/radio.d.ts +73 -0
  71. package/dist/src/ripple/ripple.d.ts +19 -3
  72. package/dist/src/segmented-button/index.d.ts +2 -0
  73. package/dist/src/segmented-button/segmented-button-group.d.ts +46 -0
  74. package/dist/src/segmented-button/segmented-button.d.ts +65 -0
  75. package/dist/src/select/index.d.ts +3 -0
  76. package/dist/src/select/option.d.ts +55 -0
  77. package/dist/src/select/select.d.ts +116 -0
  78. package/dist/src/side-sheet/index.d.ts +1 -0
  79. package/dist/src/side-sheet/side-sheet.d.ts +41 -0
  80. package/dist/src/tabs/tab-group.d.ts +0 -1
  81. package/dist/src/tabs/tab.d.ts +8 -2
  82. package/dist/src/tabs/tabs.d.ts +13 -1
  83. package/dist/state-DwbEjqVk.js +10 -0
  84. package/dist/state-DwbEjqVk.js.map +1 -0
  85. package/dist/{style-map-DcB52w-l.js → style-map-CRFEoCEg.js} +2 -2
  86. package/dist/{style-map-DcB52w-l.js.map → style-map-CRFEoCEg.js.map} +1 -1
  87. package/dist/tsconfig.tsbuildinfo +1 -1
  88. package/dist/{unsafe-html-C2r3PyzF.js → unsafe-html-D3GHRaGQ.js} +2 -2
  89. package/dist/{unsafe-html-C2r3PyzF.js.map → unsafe-html-D3GHRaGQ.js.map} +1 -1
  90. package/package.json +1 -1
  91. package/readme.md +2 -2
  92. package/src/bottom-sheet/bottom-sheet.scss +88 -0
  93. package/src/bottom-sheet/bottom-sheet.ts +135 -0
  94. package/src/bottom-sheet/index.ts +1 -0
  95. package/src/button/BaseButton.ts +16 -7
  96. package/src/button/button/button-colors.scss +76 -5
  97. package/src/button/button/button-sizes.scss +39 -19
  98. package/src/button/button/button.scss +117 -116
  99. package/src/button/button/button.ts +23 -1
  100. package/src/button/button-group/button-group.scss +25 -22
  101. package/src/button/button-group/button-group.ts +121 -4
  102. package/src/button/icon-button/icon-button-sizes.scss +35 -15
  103. package/src/button/icon-button/icon-button.ts +21 -1
  104. package/src/card/card-colors.scss +10 -0
  105. package/src/card/card-content.ts +26 -0
  106. package/src/card/card.scss +221 -41
  107. package/src/card/card.ts +240 -7
  108. package/src/card/index.ts +1 -0
  109. package/src/code-editor/code-editor.ts +1 -1
  110. package/src/container/container.ts +1 -1
  111. package/src/empty-state/empty-state.scss +8 -0
  112. package/src/empty-state/empty-state.ts +2 -2
  113. package/src/focus-ring/focus-ring.ts +37 -19
  114. package/src/index.ts +8 -1
  115. package/src/menu/menu/menu.scss +24 -3
  116. package/src/menu/menu/menu.ts +23 -2
  117. package/src/menu/menu-item/menu-item.scss +1 -0
  118. package/src/menu/menu-item/menu-item.ts +1 -9
  119. package/src/peacock-loader.ts +32 -0
  120. package/src/radio/index.ts +1 -0
  121. package/src/radio/radio.scss +181 -0
  122. package/src/radio/radio.ts +362 -0
  123. package/src/ripple/ripple.ts +19 -3
  124. package/src/segmented-button/index.ts +2 -0
  125. package/src/segmented-button/segmented-button-group.scss +21 -0
  126. package/src/segmented-button/segmented-button-group.ts +110 -0
  127. package/src/segmented-button/segmented-button.scss +115 -0
  128. package/src/segmented-button/segmented-button.ts +175 -0
  129. package/src/select/index.ts +3 -0
  130. package/src/select/option.ts +109 -0
  131. package/src/select/select.scss +120 -0
  132. package/src/select/select.ts +486 -0
  133. package/src/side-sheet/index.ts +1 -0
  134. package/src/side-sheet/side-sheet.scss +79 -0
  135. package/src/side-sheet/side-sheet.ts +100 -0
  136. package/src/slider/slider.scss +0 -1
  137. package/src/tabs/demo/index.html +90 -0
  138. package/src/tabs/tab-group.ts +0 -3
  139. package/src/tabs/tab.scss +237 -25
  140. package/src/tabs/tab.ts +86 -12
  141. package/src/tabs/tabs.scss +37 -3
  142. package/src/tabs/tabs.ts +118 -2
  143. package/src/utils/dispatch-event-utils.ts +1 -0
  144. package/dist/IndividualComponent-Dt5xirYG.js +0 -73
  145. package/dist/IndividualComponent-Dt5xirYG.js.map +0 -1
  146. package/dist/button-ClzS8JLq.js.map +0 -1
  147. package/dist/button-group-BMS5WvaF.js +0 -292
  148. package/dist/button-group-BMS5WvaF.js.map +0 -1
  149. package/dist/chart-donut.js +0 -309
  150. package/dist/chart-donut.js.map +0 -1
  151. package/dist/class-map-59YGWLnx.js.map +0 -1
  152. package/dist/observe-theme-change-pALI5fmV.js.map +0 -1
  153. package/dist/snackbar-74YCdMPL.js.map +0 -1
  154. package/dist/src/chart-donut/chart-donut.d.ts +0 -53
  155. package/dist/src/chart-donut/index.d.ts +0 -1
  156. package/dist/test/card.test.d.ts +0 -1
  157. package/src/chart-donut/chart-donut.scss +0 -37
  158. package/src/chart-donut/chart-donut.ts +0 -287
  159. package/src/chart-donut/demo/index.html +0 -51
  160. package/src/chart-donut/index.ts +0 -1
@@ -0,0 +1,186 @@
1
+ import { a as i, _ as __decorate, I as IndividualComponent, i as i$1, A, b } from './IndividualComponent-DUINtMGK.js';
2
+ import { n } from './property-1psGvXOq.js';
3
+ import { e } from './class-map-3TAnCMAX.js';
4
+ import './directive-Cuw6h7YA.js';
5
+
6
+ var css_248z = i`* {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ .screen-reader-only {
11
+ display: none !important;
12
+ }
13
+
14
+ :host {
15
+ display: contents;
16
+ --side-sheet-container-color: var(--color-surface-container-low, #f7f2fa);
17
+ --side-sheet-scrim-color: rgba(0, 0, 0, 0.32);
18
+ --side-sheet-shape: var(--shape-corner-extra-large, 28px);
19
+ --side-sheet-width: 360px;
20
+ --side-sheet-transition-duration: var(--duration-medium2, 300ms);
21
+ --side-sheet-transition-easing: var(--easing-standard, cubic-bezier(0.2, 0, 0, 1));
22
+ }
23
+
24
+ .scrim {
25
+ inset: 0;
26
+ position: fixed;
27
+ background-color: var(--side-sheet-scrim-color);
28
+ opacity: 0;
29
+ pointer-events: none;
30
+ transition: opacity var(--side-sheet-transition-duration) var(--side-sheet-transition-easing);
31
+ z-index: 1000;
32
+ }
33
+
34
+ .scrim.visible {
35
+ opacity: 1;
36
+ pointer-events: auto;
37
+ }
38
+
39
+ .sheet {
40
+ background-color: var(--side-sheet-container-color);
41
+ bottom: 0;
42
+ display: flex;
43
+ flex-direction: column;
44
+ max-width: 100%;
45
+ overflow: hidden;
46
+ position: fixed;
47
+ top: 0;
48
+ transition: transform var(--side-sheet-transition-duration) var(--side-sheet-transition-easing);
49
+ width: var(--side-sheet-width);
50
+ will-change: transform;
51
+ z-index: 1001;
52
+ }
53
+
54
+ .sheet.variant-standard {
55
+ position: relative;
56
+ z-index: 1;
57
+ }
58
+
59
+ /* Position: right */
60
+ .sheet.position-right {
61
+ border-radius: var(--side-sheet-shape) 0 0 var(--side-sheet-shape);
62
+ right: 0;
63
+ transform: translateX(100%);
64
+ }
65
+
66
+ .sheet.position-right.open {
67
+ transform: translateX(0);
68
+ }
69
+
70
+ /* Position: left */
71
+ .sheet.position-left {
72
+ border-radius: 0 var(--side-sheet-shape) var(--side-sheet-shape) 0;
73
+ left: 0;
74
+ transform: translateX(-100%);
75
+ }
76
+
77
+ .sheet.position-left.open {
78
+ transform: translateX(0);
79
+ }
80
+
81
+ .content {
82
+ flex: 1 1 auto;
83
+ overflow-y: auto;
84
+ padding: var(--spacing-300, 1.5rem);
85
+ }`;
86
+
87
+ /**
88
+ * @label Side Sheet
89
+ * @tag wc-side-sheet
90
+ * @rawTag side-sheet
91
+ * @summary Side sheets slide in from the edge of the screen to reveal supplemental content. Supports standard and modal variants per Material Design 3.
92
+ *
93
+ * @cssprop --side-sheet-container-color - Background color of the sheet container.
94
+ * @cssprop --side-sheet-scrim-color - Color of the modal scrim overlay.
95
+ * @cssprop --side-sheet-shape - Corner radius of the leading edge.
96
+ * @cssprop --side-sheet-width - Width of the side sheet.
97
+ *
98
+ * @example
99
+ * ```html
100
+ * Side Sheet
101
+
102
+ * ```
103
+ * @tags navigation, overlay
104
+ */
105
+ let SideSheet = class SideSheet extends i$1 {
106
+ constructor() {
107
+ super(...arguments);
108
+ /** Whether the sheet is visible. */
109
+ this.open = false;
110
+ /**
111
+ * Sheet variant.
112
+ * - `"standard"`: Coexists with page content; no scrim.
113
+ * - `"modal"`: Overlays page content with a scrim backdrop.
114
+ */
115
+ this.variant = 'modal';
116
+ /**
117
+ * Side from which the sheet slides in.
118
+ * - `"left"`: Sheet opens from the left edge.
119
+ * - `"right"`: Sheet opens from the right edge.
120
+ */
121
+ this.position = 'right';
122
+ }
123
+ show() {
124
+ this.open = true;
125
+ }
126
+ hide() {
127
+ this._close('programmatic');
128
+ }
129
+ _close(reason) {
130
+ if (!this.open)
131
+ return;
132
+ this.open = false;
133
+ this.dispatchEvent(new CustomEvent('side-sheet-close', {
134
+ detail: { reason },
135
+ bubbles: true,
136
+ composed: true,
137
+ }));
138
+ }
139
+ _handleScrimClick() {
140
+ if (this.variant === 'modal') {
141
+ this._close('scrim');
142
+ }
143
+ }
144
+ render() {
145
+ return b `
146
+ ${this.variant === 'modal'
147
+ ? b `<div
148
+ class=${e({ scrim: true, visible: this.open })}
149
+ @click=${this._handleScrimClick}
150
+ ></div>`
151
+ : A}
152
+
153
+ <div
154
+ class=${e({
155
+ sheet: true,
156
+ open: this.open,
157
+ [`variant-${this.variant}`]: true,
158
+ [`position-${this.position}`]: true,
159
+ })}
160
+ role="dialog"
161
+ aria-modal=${this.variant === 'modal' ? 'true' : 'false'}
162
+ aria-hidden=${!this.open ? 'true' : 'false'}
163
+ >
164
+ <div class="content">
165
+ <slot></slot>
166
+ </div>
167
+ </div>
168
+ `;
169
+ }
170
+ };
171
+ SideSheet.styles = [css_248z];
172
+ __decorate([
173
+ n({ type: Boolean, reflect: true })
174
+ ], SideSheet.prototype, "open", void 0);
175
+ __decorate([
176
+ n({ type: String, reflect: true })
177
+ ], SideSheet.prototype, "variant", void 0);
178
+ __decorate([
179
+ n({ type: String, reflect: true })
180
+ ], SideSheet.prototype, "position", void 0);
181
+ SideSheet = __decorate([
182
+ IndividualComponent
183
+ ], SideSheet);
184
+
185
+ export { SideSheet };
186
+ //# sourceMappingURL=side-sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-sheet.js","sources":["../../src/side-sheet/side-sheet.ts"],"sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport IndividualComponent from '../IndividualComponent.js';\nimport styles from './side-sheet.scss';\n\n/**\n * @label Side Sheet\n * @tag wc-side-sheet\n * @rawTag side-sheet\n * @summary Side sheets slide in from the edge of the screen to reveal supplemental content. Supports standard and modal variants per Material Design 3.\n *\n * @cssprop --side-sheet-container-color - Background color of the sheet container.\n * @cssprop --side-sheet-scrim-color - Color of the modal scrim overlay.\n * @cssprop --side-sheet-shape - Corner radius of the leading edge.\n * @cssprop --side-sheet-width - Width of the side sheet.\n *\n * @example\n * ```html\n * Side Sheet\n\n * ```\n * @tags navigation, overlay\n */\n@IndividualComponent\nexport class SideSheet extends LitElement {\n static styles = [styles];\n\n /** Whether the sheet is visible. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * Sheet variant.\n * - `\"standard\"`: Coexists with page content; no scrim.\n * - `\"modal\"`: Overlays page content with a scrim backdrop.\n */\n @property({ type: String, reflect: true }) variant: 'standard' | 'modal' =\n 'modal';\n\n /**\n * Side from which the sheet slides in.\n * - `\"left\"`: Sheet opens from the left edge.\n * - `\"right\"`: Sheet opens from the right edge.\n */\n @property({ type: String, reflect: true }) position: 'left' | 'right' =\n 'right';\n\n show() {\n this.open = true;\n }\n\n hide() {\n this._close('programmatic');\n }\n\n private _close(reason: string) {\n if (!this.open) return;\n this.open = false;\n this.dispatchEvent(\n new CustomEvent('side-sheet-close', {\n detail: { reason },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _handleScrimClick() {\n if (this.variant === 'modal') {\n this._close('scrim');\n }\n }\n\n render() {\n return html`\n ${this.variant === 'modal'\n ? html`<div\n class=${classMap({ scrim: true, visible: this.open })}\n @click=${this._handleScrimClick}\n ></div>`\n : nothing}\n\n <div\n class=${classMap({\n sheet: true,\n open: this.open,\n [`variant-${this.variant}`]: true,\n [`position-${this.position}`]: true,\n })}\n role=\"dialog\"\n aria-modal=${this.variant === 'modal' ? 'true' : 'false'}\n aria-hidden=${!this.open ? 'true' : 'false'}\n >\n <div class=\"content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n}\n"],"names":["LitElement","html","classMap","nothing","styles","property"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;;;;;;;;;;;;;;;;;AAiBG;AAEI,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQA,GAAU,CAAA;AAAlC,IAAA,WAAA,GAAA;;;QAIuC,IAAA,CAAA,IAAI,GAAG,KAAK;AAExD;;;;AAIG;QACwC,IAAA,CAAA,OAAO,GAChD,OAAO;AAET;;;;AAIG;QACwC,IAAA,CAAA,QAAQ,GACjD,OAAO;IAsDX;IApDE,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;IAC7B;AAEQ,IAAA,MAAM,CAAC,MAAc,EAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE;AAChB,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK;AACjB,QAAA,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,kBAAkB,EAAE;YAClC,MAAM,EAAE,EAAE,MAAM,EAAE;AAClB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC,CACH;IACH;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACtB;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,OAAOC,CAAI,CAAA;QACP,IAAI,CAAC,OAAO,KAAK;cACfA,CAAI,CAAA,CAAA;AACM,kBAAA,EAAAC,CAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAC5C,mBAAA,EAAA,IAAI,CAAC,iBAAiB;AACzB,iBAAA;AACV,cAAEC,CAAO;;;AAGD,cAAA,EAAAD,CAAQ,CAAC;AACf,YAAA,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,CAAC,WAAW,IAAI,CAAC,OAAO,CAAA,CAAE,GAAG,IAAI;AACjC,YAAA,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAA,CAAE,GAAG,IAAI;SACpC,CAAC;;qBAEW,IAAI,CAAC,OAAO,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO;sBAC1C,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO;;;;;;KAM9C;IACH;;AAxEO,SAAA,CAAA,MAAM,GAAG,CAACE,QAAM,CAAC;AAGoB,UAAA,CAAA;IAA3CC,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAAe,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAOd,UAAA,CAAA;IAA1CA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AAC/B,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAOiC,UAAA,CAAA;IAA1CA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AAC/B,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AApBC,SAAS,GAAA,UAAA,CAAA;IADrB;AACY,CAAA,EAAA,SAAS,CA0ErB;;;;"}
@@ -0,0 +1,42 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * @label Bottom Sheet
4
+ * @tag wc-bottom-sheet
5
+ * @rawTag bottom-sheet
6
+ * @summary Bottom sheets slide up from the bottom of the screen to reveal additional content. Supports standard and modal variants per Material Design 3.
7
+ *
8
+ * @cssprop --bottom-sheet-container-color - Background color of the sheet container.
9
+ * @cssprop --bottom-sheet-scrim-color - Color of the modal scrim overlay.
10
+ * @cssprop --bottom-sheet-shape - Corner radius of the top edge.
11
+ * @cssprop --bottom-sheet-max-height - Maximum height of the sheet.
12
+ *
13
+ * @example
14
+ * ```html
15
+ * Bottom Sheet
16
+ * ```
17
+ * @tags navigation, overlay
18
+ */
19
+ export declare class BottomSheet extends LitElement {
20
+ static styles: import("lit").CSSResultGroup[];
21
+ /** Whether the sheet is visible. */
22
+ open: boolean;
23
+ /**
24
+ * Sheet variant.
25
+ * - `"standard"`: Coexists with page content; no scrim.
26
+ * - `"modal"`: Overlays page content with a scrim backdrop.
27
+ */
28
+ variant: 'standard' | 'modal';
29
+ /** Whether to show the drag handle. */
30
+ showHandle: boolean;
31
+ private _dragging;
32
+ private _dragStartY;
33
+ private _dragOffsetY;
34
+ show(): void;
35
+ hide(): void;
36
+ private _close;
37
+ private _handleScrimClick;
38
+ private _handleDragStart;
39
+ private _handleDragMove;
40
+ private _handleDragEnd;
41
+ render(): import("lit-html").TemplateResult<1>;
42
+ }
@@ -0,0 +1 @@
1
+ export { BottomSheet } from './bottom-sheet.js';
@@ -44,13 +44,14 @@ export declare class BaseButton extends LitElement {
44
44
  * Hyperlink to navigate to on click.
45
45
  */
46
46
  href?: string;
47
- configAria?: {
48
- [key: string]: any;
49
- };
50
47
  /**
51
48
  * Sets or retrieves the window or frame at which to target content.
52
49
  */
53
50
  target: string;
51
+ configAria?: {
52
+ [key: string]: any;
53
+ };
54
+ toggle: boolean;
54
55
  selected: boolean;
55
56
  /**
56
57
  * Sets the delay for throttle in milliseconds. Defaults to 200 milliseconds.
@@ -50,6 +50,10 @@ export declare class Button extends BaseButton {
50
50
  */
51
51
  iconAlign: 'start' | 'end';
52
52
  private slotHasContent;
53
+ focus(): void;
54
+ blur(): void;
55
+ connectedCallback(): void;
56
+ disconnectedCallback(): void;
53
57
  firstUpdated(): void;
54
58
  render(): import("lit-html").TemplateResult<1>;
55
59
  renderButtonContent(): import("lit-html").TemplateResult<1>;
@@ -10,9 +10,9 @@ import { IconButton } from '../icon-button/icon-button.js';
10
10
 
11
11
  * @example
12
12
  * ```html
13
- * <wc-button-group>
14
- * <wc-icon-button name="home"></wc-icon-button>
15
- * <wc-icon-button name="alarm"></wc-icon-button>
13
+ * <wc-button-group variant="connected">
14
+ * <wc-icon-button name="home" toggle selected></wc-icon-button>
15
+ * <wc-icon-button name="alarm" toggle></wc-icon-button>
16
16
  * </wc-button-group>
17
17
  * ```
18
18
  *
@@ -27,5 +27,34 @@ export declare class ButtonGroup extends LitElement {
27
27
  * Possible values are `"sm"`, `"md"`, `"lg"`. Defaults to `"md"`.
28
28
  */
29
29
  size: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
30
+ /**
31
+ * Layout variant of the button group.
32
+ * `"standard"` shows buttons with a small gap between them.
33
+ * `"connected"` places buttons with a 2px gap; in horizontal orientation outer buttons have fully
34
+ * rounded outer corners and middle buttons keep standard rounded corners. In vertical orientation
35
+ * all buttons keep their default corner shape.
36
+ * Defaults to `"standard"`.
37
+ */
38
+ variant: 'standard' | 'connected';
39
+ /**
40
+ * Orientation of the button group.
41
+ * `"horizontal"` lays buttons out in a row.
42
+ * `"vertical"` stacks buttons in a column.
43
+ * Defaults to `"horizontal"`.
44
+ */
45
+ orientation: 'horizontal' | 'vertical';
46
+ /**
47
+ * Color applied to all buttons in the group.
48
+ * Possible values are `"primary"`, `"success"`, `"danger"`, `"warning"`, `"light"`, `"dark"`.
49
+ */
50
+ color?: 'primary' | 'success' | 'danger' | 'warning' | 'light' | 'dark';
51
+ /**
52
+ * Visual style applied to all buttons in the group.
53
+ * Possible values are `"filled"`, `"tonal"`, `"outlined"`.
54
+ */
55
+ buttonVariant?: 'filled' | 'tonal' | 'outlined';
56
+ updated(): void;
57
+ private _getSlottedElements;
58
+ private _syncChildren;
30
59
  render(): import("lit-html").TemplateResult<1>;
31
60
  }
@@ -49,6 +49,10 @@ export declare class IconButton extends BaseButton {
49
49
  name?: string;
50
50
  src?: string;
51
51
  provider: IconProvider;
52
+ focus(): void;
53
+ blur(): void;
54
+ connectedCallback(): void;
55
+ disconnectedCallback(): void;
52
56
  firstUpdated(): void;
53
57
  render(): import("lit-html").TemplateResult<1>;
54
58
  renderButtonContent(): import("lit-html").TemplateResult<1>;
@@ -0,0 +1,15 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * @label Card Content
4
+ * @tag wc-card-content
5
+ * @rawTag card-content
6
+ * @parentRawTag
7
+ *
8
+ * @cssprop --card-content-padding - Inner padding for the card container. Defaults to 1rem.
9
+ *
10
+ * ```
11
+ */
12
+ export declare class CardContent extends LitElement {
13
+ static styles: import("lit").CSSResult;
14
+ render(): import("lit-html").TemplateResult<1>;
15
+ }
@@ -1,6 +1,5 @@
1
- import { LitElement } from 'lit';
1
+ import { LitElement, nothing, PropertyValues } from 'lit';
2
2
  type CardVariant = 'elevated' | 'filled' | 'outlined';
3
- type CardElevation = 0 | 1 | 2 | 3 | 4 | 5;
4
3
  /**
5
4
  * @label Card
6
5
  * @tag wc-card
@@ -19,9 +18,44 @@ type CardElevation = 0 | 1 | 2 | 3 | 4 | 5;
19
18
  * ```
20
19
  */
21
20
  export declare class Card extends LitElement {
21
+ #private;
22
22
  static styles: import("lit").CSSResultGroup[];
23
23
  variant: CardVariant;
24
- elevation: CardElevation;
24
+ disabled: boolean;
25
+ actionable: boolean;
26
+ /**
27
+ * If button is disabled, the reason why it is disabled.
28
+ */
29
+ disabledReason: string;
30
+ /**
31
+ * Hyperlink to navigate to on click.
32
+ */
33
+ href?: string;
34
+ /**
35
+ * Sets or retrieves the window or frame at which to target content.
36
+ */
37
+ target: string;
38
+ /**
39
+ * Sets the delay for throttle in milliseconds. Defaults to 200 milliseconds.
40
+ */
41
+ throttleDelay: number;
42
+ /**
43
+ * States
44
+ */
45
+ isPressed: boolean;
46
+ private slotHasContent;
47
+ readonly cardElement: HTMLElement | null;
48
+ readonly contentSlot: HTMLSlotElement | null;
49
+ firstUpdated(): void;
50
+ updated(changedProperties: PropertyValues<this>): void;
51
+ __syncSlottedChildrenTabIndex(): void;
52
+ __dispatchClickWithThrottle: (event: MouseEvent | KeyboardEvent) => void;
53
+ __dispatchClick: (event: MouseEvent | KeyboardEvent) => void;
54
+ __isLink(): boolean;
55
+ __getDisabledReasonID(): string | typeof nothing;
56
+ __renderDisabledReason(): typeof nothing | import("lit-html").TemplateResult<1>;
57
+ __handlePress: (event: KeyboardEvent | MouseEvent) => void;
25
58
  render(): import("lit-html").TemplateResult<1>;
59
+ renderCardContent(): import("lit-html").TemplateResult<1>;
26
60
  }
27
61
  export {};
@@ -1 +1,2 @@
1
1
  export { Card } from './card.js';
2
+ export { CardContent } from './card-content.js';
@@ -11,7 +11,7 @@ type ContainerSize = 'max' | 'xl' | 'lg' | 'md' | 'sm' | 'full';
11
11
  *
12
12
  * @example
13
13
  * ```html
14
- * <wc-container size="lg">Content</wc-container>
14
+ * <wc-container style="width: 80%; border: 1px dotted black;" size="md">Content</wc-container>
15
15
  * ```
16
16
  */
17
17
  export declare class Container extends LitElement {
@@ -8,7 +8,7 @@ import { LitElement, nothing } from 'lit';
8
8
  *
9
9
  * @example
10
10
  * ```html
11
- * <wc-empty-state headline="No items found"></wc-empty-state>
11
+ * <wc-empty-state width="80%" headline="No items found"></wc-empty-state>
12
12
  * ```
13
13
  */
14
14
  export declare class EmptyState extends LitElement {
@@ -13,16 +13,19 @@ import { LitElement } from 'lit';
13
13
  export declare class FocusRing extends LitElement {
14
14
  static styles: import("lit").CSSResultGroup[];
15
15
  visible: boolean;
16
- element: string;
16
+ for: string;
17
17
  render(): symbol;
18
18
  _control?: HTMLElement;
19
+ _focusTarget?: HTMLElement;
19
20
  get control(): HTMLElement | null;
20
21
  set control(control: HTMLElement | null);
22
+ set forElement(value: HTMLElement | null);
21
23
  connectedCallback(): void;
22
24
  disconnectedCallback(): void;
23
25
  __focusin(): void;
24
26
  __focusout(): void;
25
27
  __pointerdown(): void;
28
+ __getFocusTarget(): HTMLElement | undefined;
26
29
  attach(): void;
27
30
  detach(): void;
28
31
  }
@@ -5,6 +5,7 @@ export { Divider } from './divider/index.js';
5
5
  export { Clock } from './clock/index.js';
6
6
  export { Elevation } from './elevation/index.js';
7
7
  export { Button, ButtonGroup, IconButton } from './button/index.js';
8
+ export { SegmentedButton, SegmentedButtonGroup } from './segmented-button/index.js';
8
9
  export { FocusRing } from './focus-ring/index.js';
9
10
  export { Ripple } from './ripple/index.js';
10
11
  export { Accordion } from './accordion/index.js';
@@ -34,7 +35,6 @@ export { CodeEditor } from './code-editor/index.js';
34
35
  export { Image } from './image/index.js';
35
36
  export { Tab, TabGroup, TabPanel, Tabs } from './tabs/index.js';
36
37
  export { Slider } from './slider/index.js';
37
- export { ChartDonut } from './chart-donut/index.js';
38
38
  export { ChartDoughnut } from './chart-doughnut/index.js';
39
39
  export { ChartPie } from './chart-pie/index.js';
40
40
  export { ChartBar, ChartStackedBar } from './chart-bar/index.js';
@@ -43,3 +43,9 @@ export { Pagination } from './pagination/index.js';
43
43
  export { TreeView, TreeNode } from './tree-view/index.js';
44
44
  export { Card } from './card/index.js';
45
45
  export { Snackbar } from './snackbar/index.js';
46
+ export { Radio } from './radio/index.js';
47
+ export { BottomSheet } from './bottom-sheet/index.js';
48
+ export { SideSheet } from './side-sheet/index.js';
49
+ export { Select } from './select/index.js';
50
+ export type { SelectOption } from './select/index.js';
51
+ export { SelectOptionElement } from './select/index.js';
@@ -59,6 +59,7 @@ export declare class Menu extends LitElement {
59
59
  private _setBoundaryActive;
60
60
  private _getActiveItem;
61
61
  private _getFirstEnabledItem;
62
+ private _ownsKeyboardEvent;
62
63
  private _onItemActivate;
63
64
  private _onItemRequestClose;
64
65
  private _onKeyDown;
@@ -34,7 +34,6 @@ export declare class MenuItem extends LitElement {
34
34
  private _handleKeyDown;
35
35
  private _handleClick;
36
36
  __isLink(): boolean;
37
- get focusTarget(): this;
38
37
  render(): import("lit-html").TemplateResult<1>;
39
38
  renderContent(): import("lit-html").TemplateResult<1>;
40
39
  }
@@ -0,0 +1 @@
1
+ export { Radio } from './radio.js';
@@ -0,0 +1,73 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class Radio extends LitElement {
3
+ private static readonly DIRECTION_NEXT;
4
+ private static readonly DIRECTION_PREVIOUS;
5
+ static styles: import("lit").CSSResultGroup[];
6
+ /**
7
+ * The input field name for grouping radios.
8
+ */
9
+ name: string;
10
+ /**
11
+ * The submitted value when this radio is selected.
12
+ */
13
+ value: string;
14
+ /**
15
+ * The radio label.
16
+ */
17
+ label: string;
18
+ /**
19
+ * Whether the radio is selected.
20
+ */
21
+ checked: boolean;
22
+ /**
23
+ * If true, required icon is shown. Defaults to `false`.
24
+ */
25
+ required: boolean;
26
+ /**
27
+ * If true, the radio is readonly. Defaults to `false`.
28
+ */
29
+ readonly: boolean;
30
+ /**
31
+ * If true, the user cannot interact with the radio. Defaults to `false`.
32
+ */
33
+ disabled: boolean;
34
+ /**
35
+ * Configuration object for aria attributes.
36
+ */
37
+ configAria: Record<string, string>;
38
+ private hasFocus;
39
+ private isActive;
40
+ private slotHasContent;
41
+ private isGroupFocusTarget;
42
+ private containerElement?;
43
+ private nativeElement?;
44
+ private tabindex?;
45
+ connectedCallback(): void;
46
+ disconnectedCallback(): void;
47
+ firstUpdated(): void;
48
+ updated(changedProps: Map<string, unknown>): void;
49
+ private handleInitialAttributes;
50
+ private windowMouseUp;
51
+ private windowKeyUp;
52
+ private mouseDownHandler;
53
+ private keyDownHandler;
54
+ private clickHandler;
55
+ private blurHandler;
56
+ private focusHandler;
57
+ private selectRadio;
58
+ private dispatchChange;
59
+ private uncheckSiblings;
60
+ private getGroupRadios;
61
+ private isRadioEnabled;
62
+ private updateGroupFocusTarget;
63
+ private navigateGroup;
64
+ /**
65
+ * Sets focus on the radio.
66
+ */
67
+ focus(): void;
68
+ /**
69
+ * Removes focus from the radio.
70
+ */
71
+ blur(): void;
72
+ render(): import("lit-html").TemplateResult<1>;
73
+ }
@@ -10,10 +10,26 @@ import { LitElement, PropertyValues } from 'lit';
10
10
  *
11
11
  * @example
12
12
  * ```html
13
- * <button style="position: relative;">
13
+ * <style>
14
+ * .ripple-surface {
15
+ * position: relative;
16
+ * display: inline-flex;
17
+ * align-items: center;
18
+ * justify-content: center;
19
+ * width: 220px;
20
+ * height: 64px;
21
+ * border-radius: 12px;
22
+ * background: var(--color-surface-container-high);
23
+ * color: var(--color-on-surface);
24
+ * overflow: hidden;
25
+ * cursor: pointer;
26
+ * user-select: none;
27
+ * }
28
+ * </style>
29
+ * <div class="ripple-surface">
14
30
  * <wc-ripple></wc-ripple>
15
- * Click me
16
- * </button>
31
+ * Ripple Effect
32
+ * </div>
17
33
  * ```
18
34
  * @tags display
19
35
  */
@@ -0,0 +1,2 @@
1
+ export { SegmentedButton } from './segmented-button.js';
2
+ export { SegmentedButtonGroup } from './segmented-button-group.js';
@@ -0,0 +1,46 @@
1
+ import { LitElement } from 'lit';
2
+ import { SegmentedButton } from './segmented-button.js';
3
+ /**
4
+ * @label Segmented Button Group
5
+ * @tag wc-segmented-button-group
6
+ * @rawTag segmented-button-group
7
+ * @summary A container for segmented buttons following Material Design 3.
8
+ * @overview
9
+ * <p>Segmented buttons help people select options, switch views, or sort elements. They follow the Material Design 3 specification.</p>
10
+ * <p>Use <code>multi-select</code> to allow more than one segment to be selected at a time. By default only one segment can be active (single-select).</p>
11
+ *
12
+ * @cssprop --segmented-button-group-shape: Border-radius of the group container.
13
+ *
14
+ * @fires {CustomEvent} change - Dispatched when the selection changes. Detail contains <code>{ value, values }</code>.
15
+ *
16
+ * @example
17
+ * ```html
18
+ * <wc-segmented-button-group>
19
+ * <wc-segmented-button value="day">Day</wc-segmented-button>
20
+ * <wc-segmented-button value="week" selected>Week</wc-segmented-button>
21
+ * <wc-segmented-button value="month">Month</wc-segmented-button>
22
+ * </wc-segmented-button-group>
23
+ * ```
24
+ *
25
+ * @tags controls
26
+ */
27
+ export declare class SegmentedButtonGroup extends LitElement {
28
+ static styles: import("lit").CSSResultGroup[];
29
+ static SegmentedButton: typeof SegmentedButton;
30
+ /**
31
+ * When true, multiple segments can be selected simultaneously.
32
+ * Defaults to single-select mode.
33
+ */
34
+ multiSelect: boolean;
35
+ /**
36
+ * When true, in single-select mode the currently selected segment can be
37
+ * deselected by clicking it again (allowing an empty selection).
38
+ * Defaults to `false`.
39
+ */
40
+ nullable: boolean;
41
+ connectedCallback(): void;
42
+ disconnectedCallback(): void;
43
+ private _getSegments;
44
+ private _onSegmentChange;
45
+ render(): import("lit-html").TemplateResult<1>;
46
+ }