@redvars/peacock 3.6.2 → 3.7.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 (200) hide show
  1. package/dist/ButtonConstants-D06bY4uy.js +114 -0
  2. package/dist/ButtonConstants-D06bY4uy.js.map +1 -0
  3. package/dist/{BaseHyperlinkMixin-BNuwbiEf.js → NativeHyperlinkMixin-DrYXyfMQ.js} +8 -10
  4. package/dist/NativeHyperlinkMixin-DrYXyfMQ.js.map +1 -0
  5. package/dist/assets/components.css +1 -1
  6. package/dist/assets/components.css.map +1 -1
  7. package/dist/assets/styles.css +1 -1
  8. package/dist/assets/styles.css.map +1 -1
  9. package/dist/button-colors-Dwnez1tR.js +586 -0
  10. package/dist/button-colors-Dwnez1tR.js.map +1 -0
  11. package/dist/button-group.js +8 -8
  12. package/dist/button-group.js.map +1 -1
  13. package/dist/button.js +236 -133
  14. package/dist/button.js.map +1 -1
  15. package/dist/calendar-column-view.js +0 -1
  16. package/dist/calendar-column-view.js.map +1 -1
  17. package/dist/calendar-month-view.js +0 -1
  18. package/dist/calendar-month-view.js.map +1 -1
  19. package/dist/canvas.js +126 -107
  20. package/dist/canvas.js.map +1 -1
  21. package/dist/card-content.js +0 -1
  22. package/dist/card-content.js.map +1 -1
  23. package/dist/card.js +96 -90
  24. package/dist/card.js.map +1 -1
  25. package/dist/cb-compound-expression.js +4 -1
  26. package/dist/cb-compound-expression.js.map +1 -1
  27. package/dist/cb-divider.js +0 -1
  28. package/dist/cb-divider.js.map +1 -1
  29. package/dist/cb-expression.js +0 -2
  30. package/dist/cb-expression.js.map +1 -1
  31. package/dist/cb-predicate.js +0 -1
  32. package/dist/cb-predicate.js.map +1 -1
  33. package/dist/code-highlighter.js +23 -6
  34. package/dist/code-highlighter.js.map +1 -1
  35. package/dist/custom-elements-jsdocs.json +5079 -17882
  36. package/dist/custom-elements.json +19272 -19314
  37. package/dist/fab.js +181 -117
  38. package/dist/fab.js.map +1 -1
  39. package/dist/flow-designer.js +4 -4
  40. package/dist/icon-button-DJ0kZXYr.js +318 -0
  41. package/dist/icon-button-DJ0kZXYr.js.map +1 -0
  42. package/dist/index.js +7 -7
  43. package/dist/{navigation-rail-CD7IrqbN.js → navigation-rail-CM_svs5_.js} +1311 -730
  44. package/dist/navigation-rail-CM_svs5_.js.map +1 -0
  45. package/dist/observe-slot-change-D8Xg-kSS.js +60 -0
  46. package/dist/observe-slot-change-D8Xg-kSS.js.map +1 -0
  47. package/dist/peacock-loader.js +10 -7
  48. package/dist/peacock-loader.js.map +1 -1
  49. package/dist/popover-content.js +0 -1
  50. package/dist/popover-content.js.map +1 -1
  51. package/dist/search.js +15 -15
  52. package/dist/search.js.map +1 -1
  53. package/dist/src/__controllers/attachable-controller.d.ts +109 -0
  54. package/dist/src/__mixins/{BaseButtonMixin.d.ts → NativeButtonMixin.d.ts} +3 -3
  55. package/dist/src/__mixins/{BaseHyperlinkMixin.d.ts → NativeHyperlinkMixin.d.ts} +3 -4
  56. package/dist/src/__utils/is-link.d.ts +1 -0
  57. package/dist/src/__utils/observe-slot-change.d.ts +1 -1
  58. package/dist/src/accordion/accordion-item.d.ts +0 -1
  59. package/dist/src/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +0 -1
  60. package/dist/src/button/ButtonConstants.d.ts +1 -0
  61. package/dist/src/button/GroupButtonInterface.d.ts +4 -0
  62. package/dist/src/button/button/button.d.ts +32 -7
  63. package/dist/src/button/button-group/button-group.d.ts +2 -1
  64. package/dist/src/button/icon-button/icon-button.d.ts +26 -5
  65. package/dist/src/button/index.d.ts +1 -1
  66. package/dist/src/calendar/calendar-column-view.d.ts +0 -1
  67. package/dist/src/calendar/calendar-month-view.d.ts +0 -1
  68. package/dist/src/canvas/canvas.d.ts +3 -3
  69. package/dist/src/card/card-content.d.ts +0 -1
  70. package/dist/src/card/card.d.ts +9 -6
  71. package/dist/src/chip/chip/chip.d.ts +22 -3
  72. package/dist/src/condition-builder/cb-compound-expression.d.ts +0 -1
  73. package/dist/src/condition-builder/cb-divider.d.ts +0 -1
  74. package/dist/src/condition-builder/cb-expression.d.ts +0 -1
  75. package/dist/src/condition-builder/cb-predicate.d.ts +0 -1
  76. package/dist/src/fab/fab.d.ts +20 -6
  77. package/dist/src/field/field.d.ts +1 -0
  78. package/dist/src/focus-ring/focus-ring.d.ts +26 -20
  79. package/dist/src/image/image.d.ts +2 -2
  80. package/dist/src/index.d.ts +1 -0
  81. package/dist/src/input/input.d.ts +1 -3
  82. package/dist/src/item/index.d.ts +1 -0
  83. package/dist/src/item/item.d.ts +49 -0
  84. package/dist/src/link/link.d.ts +1 -1
  85. package/dist/src/list/list-item.d.ts +1 -2
  86. package/dist/src/menu/menu-item/menu-item.d.ts +9 -11
  87. package/dist/src/menu/sub-menu/sub-menu.d.ts +1 -1
  88. package/dist/src/navigation-rail/navigation-rail-item.d.ts +0 -2
  89. package/dist/src/navigation-rail/navigation-rail.d.ts +2 -6
  90. package/dist/src/popover/popover-content.d.ts +0 -1
  91. package/dist/src/ripple/ripple.d.ts +9 -1
  92. package/dist/src/search/search.d.ts +2 -6
  93. package/dist/src/segmented-button/segmented-button.d.ts +0 -1
  94. package/dist/src/select/option.d.ts +0 -1
  95. package/dist/src/sidebar-menu/sidebar-menu-item.d.ts +0 -1
  96. package/dist/src/sidebar-menu/sidebar-sub-menu.d.ts +0 -1
  97. package/dist/src/tabs/tab-panel.d.ts +0 -1
  98. package/dist/src/tabs/tab.d.ts +4 -6
  99. package/dist/test/item.test.d.ts +1 -0
  100. package/dist/tsconfig.tsbuildinfo +1 -1
  101. package/package.json +4 -2
  102. package/readme.md +2 -2
  103. package/scss/components.scss +0 -1
  104. package/scss/mixin.scss +33 -13
  105. package/scss/styles.scss +1 -3
  106. package/src/__controllers/attachable-controller.ts +198 -0
  107. package/src/__mixins/NativeButtonMixin.ts +87 -0
  108. package/src/__mixins/{BaseHyperlinkMixin.ts → NativeHyperlinkMixin.ts} +15 -15
  109. package/src/__utils/is-link.ts +3 -0
  110. package/src/__utils/observe-slot-change.ts +46 -14
  111. package/src/accordion/accordion-item.scss +1 -1
  112. package/src/accordion/accordion-item.ts +0 -1
  113. package/src/breadcrumb/breadcrumb-item/breadcrumb-item.ts +0 -1
  114. package/src/button/ButtonConstants.ts +1 -0
  115. package/src/button/GroupButtonInterface.ts +4 -0
  116. package/src/button/button/button-colors.scss +2 -2
  117. package/src/button/button/button-layers.scss +124 -0
  118. package/src/button/button/button-sizes.scss +31 -53
  119. package/src/button/button/button.scss +139 -262
  120. package/src/button/button/button.ts +260 -106
  121. package/src/button/button/only-button.scss +13 -0
  122. package/src/button/button-group/button-group.ts +59 -17
  123. package/src/button/icon-button/icon-button-sizes.scss +12 -27
  124. package/src/button/icon-button/icon-button.ts +191 -83
  125. package/src/button/index.ts +1 -1
  126. package/src/calendar/calendar-column-view.ts +0 -1
  127. package/src/calendar/calendar-month-view.ts +0 -1
  128. package/src/canvas/canvas.scss +18 -6
  129. package/src/canvas/canvas.ts +125 -103
  130. package/src/card/card-content.ts +2 -3
  131. package/src/card/card.scss +87 -95
  132. package/src/card/card.ts +62 -60
  133. package/src/chip/chip/chip.scss +66 -71
  134. package/src/chip/chip/chip.ts +155 -56
  135. package/src/code-highlighter/code-highlighter.scss +1 -1
  136. package/src/code-highlighter/code-highlighter.ts +20 -5
  137. package/src/condition-builder/cb-compound-expression.scss +4 -0
  138. package/src/condition-builder/cb-compound-expression.ts +0 -1
  139. package/src/condition-builder/cb-divider.ts +0 -1
  140. package/src/condition-builder/cb-expression.scss +0 -1
  141. package/src/condition-builder/cb-expression.ts +0 -1
  142. package/src/condition-builder/cb-predicate.ts +0 -1
  143. package/src/elevation/elevation.scss +5 -1
  144. package/src/empty-state/empty-state.scss +1 -0
  145. package/src/fab/fab-colors.scss +2 -2
  146. package/src/fab/fab-sizes.scss +24 -34
  147. package/src/fab/fab.scss +77 -71
  148. package/src/fab/fab.ts +141 -65
  149. package/src/field/field.ts +6 -0
  150. package/src/focus-ring/focus-ring.ts +81 -72
  151. package/src/image/image.scss +21 -16
  152. package/src/image/image.ts +13 -14
  153. package/src/index.ts +1 -0
  154. package/src/input/input.ts +16 -25
  155. package/src/item/index.ts +1 -0
  156. package/src/item/item.scss +195 -0
  157. package/src/item/item.ts +362 -0
  158. package/src/link/link.scss +1 -10
  159. package/src/link/link.ts +4 -2
  160. package/src/list/list-item.ts +8 -8
  161. package/src/menu/menu/menu.ts +5 -9
  162. package/src/menu/menu-item/menu-item.scss +30 -108
  163. package/src/menu/menu-item/menu-item.ts +102 -133
  164. package/src/menu/sub-menu/sub-menu.ts +6 -3
  165. package/src/navigation-rail/navigation-rail-item.scss +5 -0
  166. package/src/navigation-rail/navigation-rail-item.ts +10 -15
  167. package/src/navigation-rail/navigation-rail.ts +2 -6
  168. package/src/peacock-loader.ts +5 -1
  169. package/src/popover/popover-content.ts +0 -1
  170. package/src/ripple/ripple.ts +52 -20
  171. package/src/search/search.scss +3 -0
  172. package/src/search/search.ts +11 -16
  173. package/src/segmented-button/segmented-button.ts +0 -1
  174. package/src/select/option.ts +1 -2
  175. package/src/select/select.scss +1 -10
  176. package/src/select/select.ts +2 -0
  177. package/src/sidebar-menu/sidebar-menu-item.ts +0 -1
  178. package/src/sidebar-menu/sidebar-sub-menu.ts +0 -1
  179. package/src/skeleton/skeleton.scss +5 -1
  180. package/src/tabs/tab-panel.ts +0 -1
  181. package/src/tabs/tab.ts +60 -70
  182. package/src/text/text.css-component.scss +3 -21
  183. package/src/tooltip/tooltip.scss +5 -8
  184. package/src/tooltip/tooltip.ts +1 -2
  185. package/dist/BaseButton-BNFAYn-S.js +0 -219
  186. package/dist/BaseButton-BNFAYn-S.js.map +0 -1
  187. package/dist/BaseHyperlinkMixin-BNuwbiEf.js.map +0 -1
  188. package/dist/button-colors-AvGh22Zn.js +0 -561
  189. package/dist/button-colors-AvGh22Zn.js.map +0 -1
  190. package/dist/icon-button-ohxHhy4t.js +0 -247
  191. package/dist/icon-button-ohxHhy4t.js.map +0 -1
  192. package/dist/navigation-rail-CD7IrqbN.js.map +0 -1
  193. package/dist/observe-slot-change-BGJfgg2E.js +0 -31
  194. package/dist/observe-slot-change-BGJfgg2E.js.map +0 -1
  195. package/dist/src/button/BaseButton.d.ts +0 -28
  196. package/dist/src/focus-ring/FocusAttachableController.d.ts +0 -8
  197. package/src/__mixins/BaseButtonMixin.ts +0 -83
  198. package/src/button/BaseButton.ts +0 -113
  199. package/src/focus-ring/FocusAttachableController.ts +0 -28
  200. package/src/popover/tooltip.css-component.scss +0 -19
@@ -4,10 +4,6 @@
4
4
 
5
5
 
6
6
  :host {
7
- display: inline-flex;
8
-
9
-
10
- --button-height: unset;
11
7
  --button-icon-size: unset;
12
8
  --button-container-padding: unset;
13
9
  --button-container-shape: var(--shape-corner-medium);
@@ -18,231 +14,127 @@
18
14
  --button-container-shape-variant: squircle;
19
15
  }
20
16
 
21
- /**
22
- * Private CSS Variables
23
- * These variables are used internally within the button component
24
- */
25
- slot::slotted(*) {
26
- --icon-size: var(--button-icon-size, var(--_button-icon-size));
27
- --icon-color: var(--_button_label-text-color);
17
+ :host {
18
+ position: relative;
19
+ display: inline-flex;
20
+ min-height: var(--button-height);
21
+
22
+ --private-button-container-shape-start-start: var(--button-container-shape-start-start, var(--button-container-shape));
23
+ --private-button-container-shape-start-end: var(--button-container-shape-start-end, var(--button-container-shape));
24
+ --private-button-container-shape-end-start: var(--button-container-shape-end-start, var(--button-container-shape));
25
+ --private-button-container-shape-end-end: var(--button-container-shape-end-end, var(--button-container-shape));
26
+ --private-button-container-shape-variant: var(--button-container-shape-variant);
28
27
  }
29
28
 
30
29
  /*
31
30
  * Reset native button/link styles
32
31
  */
33
- .button-element {
34
- background: transparent;
35
- border: none;
36
- appearance: none;
37
- margin: 0;
38
- outline: none;
39
- text-decoration: none;
32
+ .native-button {
33
+ @include mixin.reset-button-styles;
34
+ }
35
+ .native-link {
36
+ @include mixin.reset-link-styles;
40
37
  }
41
38
 
42
39
  .button {
43
- position: relative;
44
40
  display: flex;
45
- flex-direction: column;
46
41
  align-items: center;
47
42
  justify-content: center;
48
43
  height: var(--button-height);
49
- padding: 0 var(--button-container-padding, var(--_button_container-padding));
44
+ padding: 0 var(--button-container-padding, var(--private-button-container-padding));
50
45
  width: 100%;
51
- font-family: var(--font-family-sans) !important;
46
+ z-index: 0;
47
+
52
48
  cursor: pointer;
53
49
 
54
- --_button_container-shape-start-start: var(--button-container-shape-start-start, var(--button-container-shape));
55
- --_button_container-shape-start-end: var(--button-container-shape-start-end, var(--button-container-shape));
56
- --_button_container-shape-end-start: var(--button-container-shape-end-start, var(--button-container-shape));
57
- --_button_container-shape-end-end: var(--button-container-shape-end-end, var(--button-container-shape));
58
- --_button_container-corner-shape-variant: var(--button-container-shape-variant);
59
50
 
60
51
 
61
- .button-content {
62
- display: flex;
63
- align-items: center;
64
- justify-content: center;
65
- pointer-events: none;
66
- gap: var(--_button-icon-label-spacing);
67
- width: 100%;
68
- height: 100%;
69
- z-index: 0;
52
+ .label {
53
+ font-family: var(--font-family-sans) !important;
54
+ font-size: var(--private-button-font-size);
55
+ font-weight: var(--private-button-font-weight);
56
+ line-height: var(--private-button-line-height);
57
+ letter-spacing: var(--private-button-letter-spacing);
58
+ color: var(--private-button-label-text-color);
70
59
 
71
- color: var(--_button_label-text-color);
72
- opacity: var(--_button_label-text-opacity, 1);
73
- --icon-size: var(--button-icon-size, var(--_button-icon-size));
74
- --icon-color: var(--_button_label-text-color);
60
+ --icon-size: var(--button-icon-size, var(--private-button-icon-size));
61
+ --icon-color: var(--private-button-label-text-color);
75
62
 
76
- .slot-container {
77
- display: none;
78
- }
79
-
80
- }
81
-
82
- &.disabled {
83
- cursor: not-allowed;
84
- }
85
-
86
- /*
87
- Background layers
88
- */
89
- .focus-ring {
90
- z-index: 2;
91
- --focus-ring-container-shape-start-start: var(--_button_container-shape-start-start);
92
- --focus-ring-container-shape-start-end: var(--_button_container-shape-start-end);
93
- --focus-ring-container-shape-end-start: var(--_button_container-shape-end-start);
94
- --focus-ring-container-shape-end-end: var(--_button_container-shape-end-end);
95
- --focus-ring-container-shape-variant: var(--_button_container-corner-shape-variant);
96
- }
97
-
98
- .ripple {
99
- border-start-start-radius: var(--_button_container-shape-start-start);
100
- border-start-end-radius: var(--_button_container-shape-start-end);
101
- border-end-start-radius: var(--_button_container-shape-end-start);
102
- border-end-end-radius: var(--_button_container-shape-end-end);
103
- corner-shape: var(--_button_container-corner-shape-variant);
104
- --ripple-state-opacity: var(--_button_state-opacity, 0);
105
- --ripple-pressed-color: var(--_button_state-color);
63
+ pointer-events: none;
106
64
  }
107
65
 
108
- .background {
109
- display: block;
66
+ .touch {
110
67
  position: absolute;
111
- left: 0;
112
- width: 100%;
68
+ min-height: 2.5rem;
113
69
  height: 100%;
114
- background-color: var(--_button_container-color);
115
- opacity: var(--_button_container-opacity, 1);
116
-
117
- border-start-start-radius: var(--_button_container-shape-start-start);
118
- border-start-end-radius: var(--_button_container-shape-start-end);
119
- border-end-start-radius: var(--_button_container-shape-end-start);
120
- border-end-end-radius: var(--_button_container-shape-end-end);
121
- corner-shape: var(--_button_container-corner-shape-variant);
122
- pointer-events: none;
123
- }
124
-
125
- .skeleton {
126
- display: none;
127
70
  width: 100%;
128
- height: 100%;
129
- z-index: 2;
130
- position: absolute;
131
- top: 0;
71
+ top: auto;
132
72
  left: 0;
133
- --skeleton-container-shape-start-start: var(--_button_container-shape-start-start);
134
- --skeleton-container-shape-start-end: var(--_button_container-shape-start-end);
135
- --skeleton-container-shape-end-start: var(--_button_container-shape-end-start);
136
- --skeleton-container-shape-end-end: var(--_button_container-shape-end-end);
137
- --skeleton-container-shape-variant: var(--_button_container-corner-shape-variant);
73
+ transform: translateY(-25%);
138
74
  }
139
75
 
140
- .elevation {
141
- --elevation-level: var(--_button_container-elevation-level);
142
- transition-duration: 280ms;
143
- --elevation-container-shape-start-start: var(--_button_container-shape-start-start);
144
- --elevation-container-shape-start-end: var(--_button_container-shape-start-end);
145
- --elevation-container-shape-end-start: var(--_button_container-shape-end-start);
146
- --elevation-container-shape-end-end: var(--_button_container-shape-end-end);
147
- --elevation-container-shape-variant: var(--_button_container-corner-shape-variant);
148
- }
149
-
150
- .neo-background {
151
- display: none;
152
- position: absolute;
153
- background: var(--color-inverse-surface);
154
- border-start-start-radius: var(--_button_container-shape-start-start);
155
- border-start-end-radius: var(--_button_container-shape-start-end);
156
- border-end-start-radius: var(--_button_container-shape-end-start);
157
- border-end-end-radius: var(--_button_container-shape-end-end);
158
- corner-shape: var(--_button_container-corner-shape-variant);
159
- width: 100%;
160
- height: 100%;
76
+ /* make the icon slot itself collapsible so removal animates smoothly */
77
+ .icon-slot {
78
+ display: inline-flex;
79
+ align-items: center;
80
+ overflow: hidden;
161
81
  pointer-events: none;
162
- transform: translateX(0.25rem) translateY(0.25rem);
163
82
  }
164
83
 
165
- .outline {
166
- z-index: 0;
167
- display: none;
168
- position: absolute;
169
- left: 0;
170
- width: 100%;
171
- height: 100%;
172
- pointer-events: none;
173
- border: var(--_button_outline-width) solid var(--_button_outline-color);
174
- opacity: var(--_button_outline-opacity, 1);
175
- border-start-start-radius: var(--_button_container-shape-start-start);
176
- border-start-end-radius: var(--_button_container-shape-start-end);
177
- border-end-start-radius: var(--_button_container-shape-end-start);
178
- border-end-end-radius: var(--_button_container-shape-end-end);
179
- corner-shape: var(--_button_container-corner-shape-variant);
84
+ .icon-slot::slotted(*) {
85
+ --icon-size: var(--button-icon-size, var(--private-button-icon-size));
86
+ --icon-color: var(--private-button-label-text-color);
87
+ opacity: var(--private-button-label-text-opacity, 1);
180
88
  }
181
89
 
90
+ }
182
91
 
183
- &.has-content {
184
- .slot-container {
185
- display: flex;
186
- flex: none;
187
- justify-content: center;
188
- }
189
- }
190
-
191
- &.show-skeleton {
192
- .background {
193
- display: none;
194
- }
195
- .neo-background {
196
- display: none;
197
- &:before {
198
- display: none;
199
- }
200
- }
201
- .ripple {
202
- display: none;
203
- }
204
- .skeleton {
205
- display: block;
206
- }
207
- }
208
92
 
209
- &.icon-align-start .button-content {
210
- flex-direction: row-reverse;
93
+ :host([disabled]) , :host([soft-disabled]) {
94
+ cursor: not-allowed;
95
+ }
211
96
 
97
+ :host(:not([skeleton])) {
98
+ .skeleton {
99
+ display: none;
212
100
  }
101
+ }
213
102
 
214
- &.icon-align-end .button-content {
215
- flex-direction: row;
103
+ :host([skeleton]) {
104
+ .background {
105
+ display: none;
106
+ }
107
+ .ripple {
108
+ display: none;
216
109
  }
217
-
218
110
  }
219
111
 
112
+
220
113
  /**
221
114
  * Button variant definitions
222
115
  */
116
+ :host([variant=elevated]) {
117
+ --private-button-container-color: var(--elevated-button-container-color);
118
+ --private-button-label-text-color: var(--elevated-button-label-text-color);
119
+ --private-button-container-elevation-level: 1;
223
120
 
224
- .button.variant-elevated {
225
- --_button_container-color: var(--elevated-button-container-color);
226
- --_button_label-text-color: var(--elevated-button-label-text-color);
227
- --_button_container-elevation-level: 1;
121
+ --private-button-state-color: var(--private-button-label-text-color);
228
122
 
229
- --_button_state-color: var(--_button_label-text-color);
230
-
231
- &:hover:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
232
- --_button_container-elevation-level: 2;
233
- --_button_state-opacity: 0.08;
123
+ &:host(:hover:not([disabled], [soft-disabled], [skeleton])) {
124
+ --private-button-container-elevation-level: 2;
125
+ --private-button-state-opacity: 0.08;
234
126
  }
235
127
 
236
- &.pressed:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
237
- --_button_container-elevation-level: 1;
238
- --_button_state-opacity: 0.12;
128
+ &:host([pressed]:not([disabled], [soft-disabled], [skeleton])) {
129
+ --private-button-container-elevation-level: 1;
130
+ --private-button-state-opacity: 0.12;
239
131
  }
240
132
 
241
- &.disabled {
242
- --_button_container-color: var(--color-on-surface);
243
- --_button_container-opacity: 0.1;
244
- --_button_label-text-color: var(--color-on-surface);
245
- --_button_label-text-opacity: 0.38;
133
+ &:host([disabled]) {
134
+ --private-button-container-color: var(--color-on-surface);
135
+ --private-button-container-opacity: 0.1;
136
+ --private-button-label-text-color: var(--color-on-surface);
137
+ --private-button-label-text-opacity: 0.38;
246
138
 
247
139
  .ripple {
248
140
  display: none;
@@ -251,27 +143,27 @@ slot::slotted(*) {
251
143
  }
252
144
 
253
145
 
254
- .button.variant-filled {
255
- --_button_container-color: var(--filled-button-container-color);
256
- --_button_label-text-color: var(--filled-button-label-text-color);
257
- --_button_state-color: var(--_button_label-text-color);
146
+ :host([variant=filled]) {
147
+ --private-button-container-color: var(--filled-button-container-color);
148
+ --private-button-label-text-color: var(--filled-button-label-text-color);
149
+ --private-button-state-color: var(--private-button-label-text-color);
258
150
 
259
151
 
260
- &:hover:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
261
- --_button_container-elevation-level: 1;
262
- --_button_state-opacity: 0.08;
152
+ &:host(:hover:not([disabled], [soft-disabled], [skeleton])) {
153
+ --private-button-container-elevation-level: 1;
154
+ --private-button-state-opacity: 0.08;
263
155
  }
264
156
 
265
- &.pressed:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
266
- --_button_container-elevation-level: 0;
267
- --_button_state-opacity: 0.1;
157
+ &:host([pressed]:not([disabled], [soft-disabled], [skeleton])) {
158
+ --private-button-container-elevation-level: 0;
159
+ --private-button-state-opacity: 0.1;
268
160
  }
269
161
 
270
- &.disabled {
271
- --_button_container-color: var(--color-on-surface);
272
- --_button_container-opacity: 0.1;
273
- --_button_label-text-color: var(--color-on-surface);
274
- --_button_label-text-opacity: 0.38;
162
+ &:host([disabled]) {
163
+ --private-button-container-color: var(--color-on-surface);
164
+ --private-button-container-opacity: 0.1;
165
+ --private-button-label-text-color: var(--color-on-surface);
166
+ --private-button-label-text-opacity: 0.38;
275
167
 
276
168
  .ripple {
277
169
  display: none;
@@ -279,28 +171,27 @@ slot::slotted(*) {
279
171
  }
280
172
  }
281
173
 
174
+ :host([variant=tonal]) {
175
+ --private-button-container-color: var(--tonal-button-container-color);
176
+ --private-button-label-text-color: var(--tonal-button-label-text-color);
282
177
 
283
- .button.variant-tonal {
284
- --_button_container-color: var(--tonal-button-container-color);
285
- --_button_label-text-color: var(--tonal-button-label-text-color);
286
-
287
- --_button_state-color: var(--_button_label-text-color);
178
+ --private-button-state-color: var(--private-button-label-text-color);
288
179
 
289
- &:hover:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
290
- --_button_container-elevation-level: 1;
291
- --_button_state-opacity: 0.08;
180
+ &:host(:hover:not([disabled], [soft-disabled], [skeleton])) {
181
+ --private-button-container-elevation-level: 1;
182
+ --private-button-state-opacity: 0.08;
292
183
  }
293
184
 
294
- &.pressed:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
295
- --_button_container-elevation-level: 0;
296
- --_button_state-opacity: 0.12;
185
+ &:host([pressed]:not([disabled], [soft-disabled], [skeleton])) {
186
+ --private-button-container-elevation-level: 0;
187
+ --private-button-state-opacity: 0.12;
297
188
  }
298
189
 
299
- &.disabled {
300
- --_button_container-color: var(--color-on-surface);
301
- --_button_container-opacity: 0.1;
302
- --_button_label-text-color: var(--color-on-surface);
303
- --_button_label-text-opacity: 0.38;
190
+ &:host([disabled]) {
191
+ --private-button-container-color: var(--color-on-surface);
192
+ --private-button-container-opacity: 0.1;
193
+ --private-button-label-text-color: var(--color-on-surface);
194
+ --private-button-label-text-opacity: 0.38;
304
195
 
305
196
  .ripple {
306
197
  display: none;
@@ -308,31 +199,26 @@ slot::slotted(*) {
308
199
  }
309
200
  }
310
201
 
202
+ :host([variant=outlined]) {
203
+ --private-button-outline-width: var(--outlined-button-outline-width, 0.0675rem);
204
+ --private-button-outline-color: var(--outlined-button-outline-color);
205
+ --private-button-label-text-color: var(--outlined-button-label-text-color);
311
206
 
312
- .button.variant-outlined {
313
- --_button_outline-width: var(--outlined-button-outline-width, 0.0675rem);
314
- --_button_outline-color: var(--outlined-button-outline-color);
315
- --_button_label-text-color: var(--outlined-button-label-text-color);
316
-
317
- --_button_state-color: var(--_button_label-text-color);
318
-
319
- .outline {
320
- display: block;
321
- }
207
+ --private-button-state-color: var(--private-button-label-text-color);
322
208
 
323
- &:hover:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
324
- --_button_state-opacity: 0.08;
209
+ &:host(:hover:not([disabled], [soft-disabled], [skeleton])) {
210
+ --private-button-state-opacity: 0.08;
325
211
  }
326
212
 
327
- &.pressed:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
328
- --_button_state-opacity: 0.12;
213
+ &:host([pressed]:not([disabled], [soft-disabled], [skeleton])) {
214
+ --private-button-state-opacity: 0.12;
329
215
  }
330
216
 
331
- &.disabled {
332
- --_button_outline-color: var(--color-on-surface);
333
- --_button_label-text-color: var(--color-on-surface);
334
- --_button_label-text-opacity: 0.38;
335
- --_button_outline-opacity: 0.12;
217
+ &:host([disabled]) {
218
+ --private-button-outline-color: var(--color-on-surface);
219
+ --private-button-label-text-color: var(--color-on-surface);
220
+ --private-button-label-text-opacity: 0.38;
221
+ --private-button-outline-opacity: 0.12;
336
222
 
337
223
  .ripple {
338
224
  display: none;
@@ -340,23 +226,22 @@ slot::slotted(*) {
340
226
  }
341
227
  }
342
228
 
229
+ :host([variant=text]) {
343
230
 
344
- .button.variant-text {
231
+ --private-button-label-text-color: var(--text-button-label-text-color);
232
+ --private-button-state-color: var(--private-button-label-text-color);
345
233
 
346
- --_button_label-text-color: var(--text-button-label-text-color);
347
- --_button_state-color: var(--_button_label-text-color);
348
-
349
- &:hover:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
350
- --_button_state-opacity: 0.08;
234
+ &:host(:hover:not([disabled], [soft-disabled], [skeleton])) {
235
+ --private-button-state-opacity: 0.08;
351
236
  }
352
237
 
353
- &.pressed:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
354
- --_button_state-opacity: 0.12;
238
+ &:host([pressed]:not([disabled], [soft-disabled], [skeleton])) {
239
+ --private-button-state-opacity: 0.12;
355
240
  }
356
241
 
357
- &.disabled {
358
- --_button_label-text-color: var(--color-on-surface);
359
- --_button_label-text-opacity: 0.38;
242
+ &:host([disabled]) {
243
+ --private-button-label-text-color: var(--color-on-surface);
244
+ --private-button-label-text-opacity: 0.38;
360
245
 
361
246
  .ripple {
362
247
  display: none;
@@ -364,21 +249,13 @@ slot::slotted(*) {
364
249
  }
365
250
  }
366
251
 
367
- .button.variant-neo {
368
-
369
- --_button_container-color: var(--neo-button-container-color);
370
- --_button_label-text-color: var(--neo-button-label-text-color);
252
+ :host([variant=neo]) {
371
253
 
372
- --_button_outline-width: var(--outlined-button-outline-width, 0.125rem);
373
- --_button_outline-color: var(--color-inverse-surface);
254
+ --private-button-container-color: var(--neo-button-container-color);
255
+ --private-button-label-text-color: var(--neo-button-label-text-color);
374
256
 
375
- .outline {
376
- display: block;
377
- }
378
-
379
- .neo-background {
380
- display: block;
381
- }
257
+ --private-button-outline-width: var(--outlined-button-outline-width, 0.125rem);
258
+ --private-button-outline-color: var(--color-inverse-surface);
382
259
 
383
260
  .focus-ring {
384
261
  --focus-ring-color: var(--color-primary-container);
@@ -389,18 +266,18 @@ slot::slotted(*) {
389
266
  display: none;
390
267
  }
391
268
 
392
- &.pressed:not(:where(.disabled, .soft-disabled, .show-skeleton)) {
393
- .background, .button-content, .outline, .focus-ring {
269
+ &:host([pressed]:not([disabled], [soft-disabled], [skeleton])) {
270
+ .background, .button, .outline, .focus-ring {
394
271
  transform: translateX(0.25rem) translateY(0.25rem);
395
272
  }
396
273
  }
397
274
 
398
- &.disabled {
399
- --_button_container-color: var(--color-on-surface);
400
- --_button_container-opacity: 0.1;
401
- --_button_label-text-color: var(--color-on-surface);
402
- --_button_label-text-opacity: 0.38;
403
- --_button_outline-opacity: 0.12;
275
+ &:host([disabled]) {
276
+ --private-button-container-color: var(--color-on-surface);
277
+ --private-button-container-opacity: 0.1;
278
+ --private-button-label-text-color: var(--color-on-surface);
279
+ --private-button-label-text-opacity: 0.38;
280
+ --private-button-outline-opacity: 0.12;
404
281
 
405
282
 
406
283
  .ripple {