@ethlete/components 1.0.0-next.77 → 1.0.0-next.79

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 (318) hide show
  1. package/CHANGELOG.md +119 -0
  2. package/design/accordion.ts +73 -0
  3. package/design/avatar.ts +90 -0
  4. package/design/badge.ts +48 -0
  5. package/design/banner.ts +77 -0
  6. package/design/bracket.ts +457 -0
  7. package/design/breadcrumb.ts +145 -0
  8. package/design/button.ts +49 -0
  9. package/design/calendar.ts +306 -0
  10. package/design/card.ts +92 -0
  11. package/design/carousel.ts +240 -0
  12. package/design/chart.ts +512 -0
  13. package/design/checkbox.ts +275 -0
  14. package/design/chip.ts +64 -0
  15. package/design/config.json +22 -0
  16. package/design/control.ts +19 -0
  17. package/design/copy-button.ts +59 -0
  18. package/design/description-list.ts +41 -0
  19. package/design/dialog.ts +214 -0
  20. package/design/divider.ts +27 -0
  21. package/design/empty-state.ts +45 -0
  22. package/design/floating-action.ts +55 -0
  23. package/design/form-field.ts +40 -1
  24. package/design/grid.ts +148 -0
  25. package/design/icon-set.ts +19 -0
  26. package/design/icon.ts +9 -0
  27. package/design/input.ts +86 -0
  28. package/design/kbd.ts +19 -0
  29. package/design/loader.ts +152 -0
  30. package/design/masonry.ts +115 -0
  31. package/design/match.ts +131 -0
  32. package/design/menu.ts +143 -0
  33. package/design/notification.ts +129 -0
  34. package/design/otp-input.ts +107 -0
  35. package/design/pagination.ts +120 -0
  36. package/design/picture.ts +80 -0
  37. package/design/progress-steps.ts +79 -0
  38. package/design/query-error.ts +60 -0
  39. package/design/radio-group.ts +132 -0
  40. package/design/scheduler.ts +369 -0
  41. package/design/scrollable.ts +218 -0
  42. package/design/scrollbar.ts +47 -0
  43. package/design/sdk/assets/fallback.svg +1 -0
  44. package/design/sdk/assets/tall.svg +1 -0
  45. package/design/sdk/assets/wide.svg +1 -0
  46. package/design/sdk/components/accent-on-light/accent-on-light.css +35 -0
  47. package/design/sdk/components/accent-on-light/accent-on-light.ts +10 -0
  48. package/design/sdk/components/accent-on-light/shared/controls.ts +46 -0
  49. package/design/sdk/components/accordion/accordion.css +17 -0
  50. package/design/sdk/components/accordion/accordion.ts +64 -0
  51. package/design/sdk/components/avatar/avatar.css +14 -0
  52. package/design/sdk/components/avatar/avatar.ts +78 -0
  53. package/design/sdk/components/badge/badge.css +13 -0
  54. package/design/sdk/components/badge/badge.ts +52 -0
  55. package/design/sdk/components/banner/banner.css +18 -0
  56. package/design/sdk/components/banner/banner.ts +87 -0
  57. package/design/sdk/components/bracket/bracket.css +59 -0
  58. package/design/sdk/components/bracket/bracket.ts +143 -0
  59. package/design/sdk/components/breadcrumb/breadcrumb.css +25 -0
  60. package/design/sdk/components/breadcrumb/breadcrumb.ts +81 -0
  61. package/design/sdk/components/button/button.css +33 -0
  62. package/design/sdk/components/button/button.ts +82 -0
  63. package/design/sdk/components/calendar/calendar.css +33 -0
  64. package/design/sdk/components/calendar/calendar.ts +96 -0
  65. package/design/sdk/components/card/card.css +19 -0
  66. package/design/sdk/components/card/card.ts +61 -0
  67. package/design/sdk/components/carousel/carousel.css +44 -0
  68. package/design/sdk/components/carousel/carousel.ts +74 -0
  69. package/design/sdk/components/chart/chart.css +56 -0
  70. package/design/sdk/components/chart/chart.ts +98 -0
  71. package/design/sdk/components/chip/chip.css +18 -0
  72. package/design/sdk/components/chip/chip.ts +76 -0
  73. package/design/sdk/components/copy-button/copy-button.css +14 -0
  74. package/design/sdk/components/copy-button/copy-button.ts +59 -0
  75. package/design/sdk/components/description-list/description-list.css +7 -0
  76. package/design/sdk/components/description-list/description-list.ts +53 -0
  77. package/design/sdk/components/dialog/dialog.css +29 -0
  78. package/design/sdk/components/dialog/dialog.ts +78 -0
  79. package/design/sdk/components/divider/divider.css +26 -0
  80. package/design/sdk/components/divider/divider.ts +43 -0
  81. package/design/sdk/components/empty-state/empty-state.css +15 -0
  82. package/design/sdk/components/empty-state/empty-state.ts +56 -0
  83. package/design/sdk/components/floating-action/floating-action.css +51 -0
  84. package/design/sdk/components/floating-action/floating-action.ts +63 -0
  85. package/design/sdk/components/form-field/form-field.ts +118 -0
  86. package/design/sdk/components/grid/grid.css +17 -0
  87. package/design/sdk/components/grid/grid.ts +80 -0
  88. package/design/sdk/components/input/input.css +75 -0
  89. package/design/sdk/components/input/input.ts +79 -0
  90. package/design/sdk/components/kbd/kbd.css +25 -0
  91. package/design/sdk/components/kbd/kbd.ts +57 -0
  92. package/design/sdk/components/loader/loader.css +37 -0
  93. package/design/sdk/components/loader/loader.ts +68 -0
  94. package/design/sdk/components/masonry/masonry.css +7 -0
  95. package/design/sdk/components/masonry/masonry.ts +42 -0
  96. package/design/sdk/components/match/match.css +25 -0
  97. package/design/sdk/components/match/match.ts +76 -0
  98. package/design/sdk/components/menu/menu.css +22 -0
  99. package/design/sdk/components/menu/menu.ts +91 -0
  100. package/design/sdk/components/notification/notification.css +32 -0
  101. package/design/sdk/components/notification/notification.ts +106 -0
  102. package/design/sdk/components/otp-input/otp-input.css +35 -0
  103. package/design/sdk/components/otp-input/otp-input.ts +64 -0
  104. package/design/sdk/components/pagination/pagination.css +14 -0
  105. package/design/sdk/components/pagination/pagination.ts +75 -0
  106. package/design/sdk/components/picture/picture.css +37 -0
  107. package/design/sdk/components/picture/picture.ts +96 -0
  108. package/design/sdk/components/progress-steps/progress-steps.css +37 -0
  109. package/design/sdk/components/progress-steps/progress-steps.ts +91 -0
  110. package/design/sdk/components/query-error/query-error.css +33 -0
  111. package/design/sdk/components/query-error/query-error.ts +120 -0
  112. package/design/sdk/components/scheduler/scheduler.css +55 -0
  113. package/design/sdk/components/scheduler/scheduler.ts +239 -0
  114. package/design/sdk/components/scrollable/scrollable.css +58 -0
  115. package/design/sdk/components/scrollable/scrollable.ts +133 -0
  116. package/design/sdk/components/scrollbar/scrollbar.css +78 -0
  117. package/design/sdk/components/scrollbar/scrollbar.ts +123 -0
  118. package/design/sdk/components/select/select.css +5 -0
  119. package/design/sdk/components/select/select.ts +16 -0
  120. package/design/sdk/components/select/shared/select-part.ts +75 -0
  121. package/design/sdk/components/select-panel/select-panel.css +3 -0
  122. package/design/sdk/components/select-panel/select-panel.ts +124 -0
  123. package/design/sdk/components/skeleton/skeleton.css +22 -0
  124. package/design/sdk/components/skeleton/skeleton.ts +50 -0
  125. package/design/sdk/components/slider/slider.css +52 -0
  126. package/design/sdk/components/slider/slider.ts +86 -0
  127. package/design/sdk/components/standings/standings.css +33 -0
  128. package/design/sdk/components/standings/standings.ts +130 -0
  129. package/design/sdk/components/stat-tile/stat-tile.css +15 -0
  130. package/design/sdk/components/stat-tile/stat-tile.ts +84 -0
  131. package/design/sdk/components/stream/stream.css +48 -0
  132. package/design/sdk/components/stream/stream.ts +38 -0
  133. package/design/sdk/components/switch/switch.css +35 -0
  134. package/design/sdk/components/switch/switch.ts +63 -0
  135. package/design/sdk/components/table/table.css +67 -0
  136. package/design/sdk/components/table/table.ts +160 -0
  137. package/design/sdk/components/tabs/tabs.css +13 -0
  138. package/design/sdk/components/tabs/tabs.ts +74 -0
  139. package/design/sdk/components/textarea/textarea.css +116 -0
  140. package/design/sdk/components/textarea/textarea.ts +64 -0
  141. package/design/sdk/components/timeline/timeline.css +30 -0
  142. package/design/sdk/components/timeline/timeline.ts +87 -0
  143. package/design/sdk/components/toolbar/toolbar.css +24 -0
  144. package/design/sdk/components/toolbar/toolbar.ts +87 -0
  145. package/design/sdk/components/tooltip/tooltip.css +15 -0
  146. package/design/sdk/components/tooltip/tooltip.ts +28 -0
  147. package/design/sdk/components/tree/selected-tint.css +15 -0
  148. package/design/sdk/components/tree/tree.ts +70 -0
  149. package/design/sdk/fixtures.ts +0 -0
  150. package/design/sdk/foundations/colors/colors.css +632 -0
  151. package/design/sdk/foundations/colors/colors.ts +188 -0
  152. package/design/sdk/foundations/colors/overrides.json +19 -0
  153. package/design/sdk/foundations/colors/shared/contrast.ts +120 -0
  154. package/design/sdk/foundations/elevation/elevation.css +6 -0
  155. package/design/sdk/foundations/elevation/elevation.ts +11 -0
  156. package/design/sdk/foundations/elevation/shared/elevation/scene.css +101 -0
  157. package/design/sdk/foundations/elevation/shared/elevation/scene.ts +74 -0
  158. package/design/sdk/foundations/icons/icons.ts +119 -0
  159. package/design/select.ts +113 -28
  160. package/design/skeleton.ts +67 -0
  161. package/design/slider.ts +155 -0
  162. package/design/standings.ts +161 -0
  163. package/design/stat-tile.ts +109 -0
  164. package/design/stream.ts +92 -0
  165. package/design/switch.ts +83 -0
  166. package/design/table.ts +302 -0
  167. package/design/tabs.ts +75 -0
  168. package/design/textarea.ts +92 -0
  169. package/design/timeline.ts +52 -0
  170. package/design/toolbar.ts +95 -0
  171. package/design/tooltip.ts +87 -0
  172. package/design/tree.ts +106 -0
  173. package/fesm2022/ethlete-components.mjs +240 -199
  174. package/fesm2022/ethlete-components.mjs.map +1 -1
  175. package/package.json +1 -1
  176. package/src/lib/accordion/accordion.component.css +2 -1
  177. package/src/lib/avatar/avatar.component.css +10 -0
  178. package/src/lib/badge/badge.component.css +2 -2
  179. package/src/lib/banner/banner.component.css +3 -1
  180. package/src/lib/breadcrumb/breadcrumb-outlet.component.css +5 -0
  181. package/src/lib/breadcrumb/breadcrumb.component.css +5 -1
  182. package/src/lib/button/button.component.css +19 -0
  183. package/src/lib/button/icon-button.component.css +19 -20
  184. package/src/lib/button/split-button.component.css +5 -1
  185. package/src/lib/calendar/calendar.component.css +13 -3
  186. package/src/lib/card/card.component.css +4 -0
  187. package/src/lib/carousel/carousel-autoplay-styles.component.css +1 -1
  188. package/src/lib/carousel/carousel.component.css +2 -2
  189. package/src/lib/chart/chart-axis.component.css +3 -3
  190. package/src/lib/chip/chip.component.css +8 -2
  191. package/src/lib/description-list/description-list.component.css +2 -1
  192. package/src/lib/empty-state/empty-state.component.css +4 -0
  193. package/src/lib/floating-action/floating-action-styles.component.css +27 -0
  194. package/src/lib/focus-ring/focus-ring-styles.component.css +4 -1
  195. package/src/lib/forms/checkbox/checkbox.component.css +31 -5
  196. package/src/lib/forms/color-input/color-input.component.css +3 -1
  197. package/src/lib/forms/color-input/color-picker-panel.component.css +6 -2
  198. package/src/lib/forms/date-time/date-input/date-input.component.css +1 -1
  199. package/src/lib/forms/date-time/date-time-input/date-time-input.component.css +1 -1
  200. package/src/lib/forms/date-time/duration-input/duration-input.component.css +1 -1
  201. package/src/lib/forms/date-time/range-input-shell-styles.component.css +1 -1
  202. package/src/lib/forms/date-time/time-input/time-input.component.css +1 -1
  203. package/src/lib/forms/description/description.component.css +7 -0
  204. package/src/lib/forms/dropzone/dropzone.component.css +26 -0
  205. package/src/lib/forms/form-field/form-field-control-suffix-styles.component.css +4 -2
  206. package/src/lib/forms/form-field/form-field-text-shell-styles.component.css +74 -17
  207. package/src/lib/forms/form-field/form-field-textarea-styles.component.css +62 -0
  208. package/src/lib/forms/form-field/form-field.component.css +6 -0
  209. package/src/lib/forms/form-field/headless/label.directive.css +1 -1
  210. package/src/lib/forms/input/input.component.css +6 -2
  211. package/src/lib/forms/input/number-input.component.css +2 -2
  212. package/src/lib/forms/input/password-input.component.css +4 -3
  213. package/src/lib/forms/otp-input/otp-input.component.css +23 -4
  214. package/src/lib/forms/phone-input/phone-input.component.css +4 -3
  215. package/src/lib/forms/rating/rating.component.css +2 -1
  216. package/src/lib/forms/rich-text-editor/rich-text-editor.component.css +1 -1
  217. package/src/lib/forms/select/select-option-styles.component.css +3 -2
  218. package/src/lib/forms/selection-card-styles.component.css +3 -2
  219. package/src/lib/forms/selection-list/checkbox-group/checkbox-group-select-all.component.css +4 -2
  220. package/src/lib/forms/selection-list/checkbox-group/checkbox-option.component.css +4 -2
  221. package/src/lib/forms/selection-list/radio-group/radio.component.css +5 -2
  222. package/src/lib/forms/selection-list/segmented-button-group/segmented-button.component.css +2 -1
  223. package/src/lib/forms/slider/range-slider.component.css +98 -6
  224. package/src/lib/forms/slider/slider.component.css +96 -4
  225. package/src/lib/forms/switch/switch.component.css +47 -4
  226. package/src/lib/forms/tag-input/tag-input.component.css +2 -2
  227. package/src/lib/forms/textarea/textarea-autosize-styles.component.css +2 -3
  228. package/src/lib/forms/textarea/textarea.component.css +7 -2
  229. package/src/lib/grid/grid-item-toolbar.component.css +10 -0
  230. package/src/lib/grid/grid-item.component.css +6 -1
  231. package/src/lib/icon/headless/align-icons.ts +30 -0
  232. package/src/lib/icon/headless/arrow-out-up-right-icon.ts +17 -0
  233. package/src/lib/icon/headless/arrow-right-icon.ts +23 -0
  234. package/src/lib/icon/headless/arrow-up-icon.ts +30 -0
  235. package/src/lib/icon/headless/arrows-left-right-icon.ts +31 -0
  236. package/src/lib/icon/headless/bold-icon.ts +11 -0
  237. package/src/lib/icon/headless/calendar-icon.ts +21 -0
  238. package/src/lib/icon/headless/check-icon.ts +14 -0
  239. package/src/lib/icon/headless/chevron-icon.ts +14 -0
  240. package/src/lib/icon/headless/circle-check-icon.ts +14 -0
  241. package/src/lib/icon/headless/circle-info-icon.ts +14 -0
  242. package/src/lib/icon/headless/clipboard-check-icon.ts +28 -0
  243. package/src/lib/icon/headless/clock-icon.ts +21 -0
  244. package/src/lib/icon/headless/code-block-icon.ts +15 -0
  245. package/src/lib/icon/headless/code-icon.ts +14 -0
  246. package/src/lib/icon/headless/ellipsis-icon.ts +13 -0
  247. package/src/lib/icon/headless/ellipsis-vertical-icon.ts +13 -0
  248. package/src/lib/icon/headless/eye-icons.ts +27 -0
  249. package/src/lib/icon/headless/eyedropper-icon.ts +22 -0
  250. package/src/lib/icon/headless/file-icon.ts +16 -0
  251. package/src/lib/icon/headless/filter-icon.ts +11 -0
  252. package/src/lib/icon/headless/floppy-disk-icon.ts +27 -0
  253. package/src/lib/icon/headless/focus-frame-icon.ts +16 -0
  254. package/src/lib/icon/headless/grid-2x2-icon.ts +17 -0
  255. package/src/lib/icon/headless/heading-1-icon.ts +11 -0
  256. package/src/lib/icon/headless/heading-2-icon.ts +11 -0
  257. package/src/lib/icon/headless/heading-3-icon.ts +11 -0
  258. package/src/lib/icon/headless/icon-definition.ts +14 -0
  259. package/src/lib/icon/headless/image-icon.ts +14 -0
  260. package/src/lib/icon/headless/italic-icon.ts +19 -0
  261. package/src/lib/icon/headless/link-icon.ts +17 -0
  262. package/src/lib/icon/headless/list-bulleted-icon.ts +14 -0
  263. package/src/lib/icon/headless/list-numbered-icon.ts +14 -0
  264. package/src/lib/icon/headless/location-icon.ts +21 -0
  265. package/src/lib/icon/headless/lock-icon.ts +14 -0
  266. package/src/lib/icon/headless/minus-icon.ts +14 -0
  267. package/src/lib/icon/headless/paragraph-icon.ts +11 -0
  268. package/src/lib/icon/headless/pause-icon.ts +11 -0
  269. package/src/lib/icon/headless/pencil-icon.ts +21 -0
  270. package/src/lib/icon/headless/play-icon.ts +10 -0
  271. package/src/lib/icon/headless/plus-icon.ts +21 -0
  272. package/src/lib/icon/headless/quote-icon.ts +15 -0
  273. package/src/lib/icon/headless/rotate-right-icon.ts +16 -0
  274. package/src/lib/icon/headless/star-icon.ts +14 -0
  275. package/src/lib/icon/headless/strikethrough-icon.ts +18 -0
  276. package/src/lib/icon/headless/table-icon.ts +15 -0
  277. package/src/lib/icon/headless/thumbtack-icon.ts +18 -0
  278. package/src/lib/icon/headless/times-icon.ts +14 -0
  279. package/src/lib/icon/headless/trash-icon.ts +24 -0
  280. package/src/lib/icon/headless/triangle-exclamation-icon.ts +14 -0
  281. package/src/lib/icon/headless/trophy-icon.ts +24 -0
  282. package/src/lib/icon/headless/underline-icon.ts +12 -0
  283. package/src/lib/icon/headless/undo-redo-icons.ts +24 -0
  284. package/src/lib/icon/headless/upload-icon.ts +16 -0
  285. package/src/lib/loader/brand-loader/brand-loader.component.css +4 -1
  286. package/src/lib/loader/progress-bar/progress-bar.component.css +1 -1
  287. package/src/lib/loader/spinner/spinner-styles.component.css +1 -1
  288. package/src/lib/match/match-card.component.css +9 -3
  289. package/src/lib/match/match-score.component.css +4 -1
  290. package/src/lib/menu/menu-selection-item.component.css +1 -1
  291. package/src/lib/menu/menu.component.css +5 -0
  292. package/src/lib/overlay/overlay-container.component.css +4 -0
  293. package/src/lib/pagination/pagination.component.css +4 -0
  294. package/src/lib/progress-steps/progress-step.component.css +4 -4
  295. package/src/lib/query-error/query-error.component.css +4 -0
  296. package/src/lib/scheduler/scheduler-appointment-styles.component.css +21 -5
  297. package/src/lib/scheduler/scheduler-month-view.component.css +4 -2
  298. package/src/lib/scheduler/scheduler-time-grid-view.component.css +8 -2
  299. package/src/lib/scrollable/headless/scrollable-navigation.component.css +1 -1
  300. package/src/lib/standings/standings-pick.component.css +1 -1
  301. package/src/lib/standings/standings.component.css +10 -10
  302. package/src/lib/stat-tile/stat-tile-sparkline.component.css +1 -1
  303. package/src/lib/stream/consent/stream-consent.component.css +99 -0
  304. package/src/lib/stream/error/stream-player-error.component.css +100 -0
  305. package/src/lib/stream/loading/stream-player-loading.component.css +16 -0
  306. package/src/lib/stream/pip/pip-slot-placeholder.component.css +68 -0
  307. package/src/lib/stream/stream-player-slot-styles.component.css +4 -0
  308. package/src/lib/table/table-resize-grip.component.css +2 -1
  309. package/src/lib/table/table-select-cell.component.css +45 -15
  310. package/src/lib/table/table.component.css +15 -5
  311. package/src/lib/tabs/tab-bar-styles.component.css +1 -1
  312. package/src/lib/tabs/tabs/tab-group.component.css +111 -0
  313. package/src/lib/time-picker/time-picker.component.css +2 -1
  314. package/src/lib/timeline/timeline-item.component.css +5 -1
  315. package/src/lib/toolbar/toolbar.component.css +4 -0
  316. package/src/lib/tooltip/tooltip.component.css +14 -0
  317. package/src/lib/tree/tree.component.css +2 -2
  318. package/types/ethlete-components.d.ts +62 -53
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ethlete/components",
3
- "version": "1.0.0-next.77",
3
+ "version": "1.0.0-next.79",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ethlete-io/ethdk",
@@ -101,7 +101,8 @@
101
101
  }
102
102
 
103
103
  &:focus-visible {
104
- outline: 2px solid var(--et-theme-color-primary-solid, currentColor);
104
+ outline: 2px solid
105
+ light-dark(var(--et-theme-color-ink-solid, currentColor), var(--et-theme-color-primary-solid, currentColor));
105
106
  outline-offset: -2px;
106
107
  }
107
108
 
@@ -19,6 +19,7 @@
19
19
 
20
20
  .et-avatar {
21
21
  --_et-avatar-size: 40px;
22
+ --_et-avatar-icon-size: 2rem;
22
23
  --et-theme-color-primary-opacity: 1;
23
24
 
24
25
  display: inline-flex;
@@ -43,21 +44,25 @@
43
44
 
44
45
  &:where([data-size='xs']) {
45
46
  --_et-avatar-size: 24px;
47
+ --_et-avatar-icon-size: 1.4rem;
46
48
  --et-avatar-font-size: 10px;
47
49
  }
48
50
 
49
51
  &:where([data-size='sm']) {
50
52
  --_et-avatar-size: 32px;
53
+ --_et-avatar-icon-size: 1.8rem;
51
54
  --et-avatar-font-size: 12px;
52
55
  }
53
56
 
54
57
  &:where([data-size='lg']) {
55
58
  --_et-avatar-size: 48px;
59
+ --_et-avatar-icon-size: 2.4rem;
56
60
  --et-avatar-font-size: 16px;
57
61
  }
58
62
 
59
63
  &:where([data-size='xl']) {
60
64
  --_et-avatar-size: 64px;
65
+ --_et-avatar-icon-size: 2.8rem;
61
66
  --et-avatar-font-size: 20px;
62
67
  }
63
68
 
@@ -66,6 +71,11 @@
66
71
  }
67
72
  }
68
73
 
74
+ .et-avatar .et-icon {
75
+ inline-size: var(--_et-avatar-icon-size);
76
+ block-size: var(--_et-avatar-icon-size);
77
+ }
78
+
69
79
  .et-avatar-image {
70
80
  display: block;
71
81
  inline-size: 100%;
@@ -64,12 +64,12 @@
64
64
  &:where([data-variant='filled']) {
65
65
  --et-theme-color-primary-opacity: 1;
66
66
  --_et-badge-color: var(--et-theme-color-on-primary);
67
- --_et-badge-border-color: transparent;
67
+ --_et-badge-border-color: var(--et-theme-color-ink-solid);
68
68
  }
69
69
 
70
70
  &:where([data-variant='tonal']) {
71
71
  --et-theme-color-primary-opacity: 0.16;
72
- --_et-badge-border-color: transparent;
72
+ --_et-badge-border-color: var(--et-theme-color-ink-solid);
73
73
  }
74
74
 
75
75
  &:where([data-variant='outline']) {
@@ -50,7 +50,7 @@
50
50
  /* The tint is whatever type/color resolved onto this host's color scope, so the banner reads as its
51
51
  type without a hardcoded color - including a neutral `currentColor` tint for `info` with nothing forced. */
52
52
  background: color-mix(in srgb, var(--et-theme-color-primary-solid, currentColor) 8%, transparent);
53
- border: 1px solid color-mix(in srgb, var(--et-theme-color-primary-solid, currentColor) 24%, transparent);
53
+ border: 1px solid var(--et-theme-color-ink-solid);
54
54
 
55
55
  > .et-icon {
56
56
  flex-shrink: 0;
@@ -74,6 +74,7 @@
74
74
  font-size: var(--et-banner-heading-size);
75
75
  font-weight: var(--et-banner-heading-weight);
76
76
  color: var(--et-surface-color-solid, currentColor);
77
+ overflow-wrap: anywhere;
77
78
  }
78
79
 
79
80
  .et-banner-description,
@@ -81,6 +82,7 @@
81
82
  margin: 0;
82
83
  font-size: var(--et-banner-description-size);
83
84
  color: var(--et-surface-color-muted-solid, currentColor);
85
+ overflow-wrap: anywhere;
84
86
  }
85
87
 
86
88
  [etBannerAction] {
@@ -0,0 +1,5 @@
1
+ @layer components {
2
+ .et-breadcrumb-outlet {
3
+ display: block;
4
+ }
5
+ }
@@ -28,6 +28,9 @@
28
28
  /* The clip that makes overflow measurable — `scroll.width > client.width` is the directive's
29
29
  "doesn't fit" signal. Never `auto`: a scrollbar would defeat the collapsing it drives. */
30
30
  overflow: hidden;
31
+ /* Room for the focus ring (the overflow trigger's 2px outline + 3px offset) inside the clip; the negative margin keeps the layout height. */
32
+ padding-block: 5px;
33
+ margin-block: -5px;
31
34
  color: var(--et-surface-color-muted-solid, GrayText);
32
35
  }
33
36
 
@@ -91,7 +94,8 @@
91
94
  }
92
95
 
93
96
  &:where(a, button):focus-visible {
94
- outline: 2px solid var(--et-theme-color-primary-solid, currentColor);
97
+ outline: 2px solid
98
+ light-dark(var(--et-theme-color-ink-solid, currentColor), var(--et-theme-color-primary-solid, currentColor));
95
99
  outline-offset: 2px;
96
100
  }
97
101
 
@@ -135,6 +135,25 @@
135
135
  --_et-button-border-color: transparent;
136
136
  }
137
137
 
138
+ &:where([data-variant='filled']) {
139
+ @media (hover: hover) {
140
+ &:hover {
141
+ --et-theme-color-primary-rgb: var(
142
+ --et-color-primary-active,
143
+ var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)))
144
+ );
145
+ }
146
+ }
147
+
148
+ &:active {
149
+ --_et-button-background: color-mix(
150
+ in srgb,
151
+ var(--et-theme-color-primary-solid) 84%,
152
+ var(--et-theme-color-on-primary-solid)
153
+ );
154
+ }
155
+ }
156
+
138
157
  &[data-pressed='true']:where([data-pressed-variant='filled']) {
139
158
  --et-theme-color-primary-opacity: 1;
140
159
  --_et-button-background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));
@@ -18,7 +18,10 @@
18
18
  justify-content: center;
19
19
  width: var(--et-icon-button-size);
20
20
  height: var(--et-icon-button-size);
21
- background: rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity));
21
+ background: var(
22
+ --_et-icon-button-background,
23
+ rgb(var(--et-theme-color-primary-rgb) / var(--et-theme-color-primary-opacity))
24
+ );
22
25
  color: var(--et-theme-color-ink-solid);
23
26
  border: none;
24
27
  border-radius: var(--et-icon-button-border-radius, 9999px);
@@ -74,13 +77,20 @@
74
77
  pointer-events: none;
75
78
  }
76
79
 
77
- &:where([data-variant='filled']) {
80
+ &:where([data-variant='filled']):not([data-pressed='true']),
81
+ &[data-pressed='true']:where([data-pressed-variant='filled']) {
78
82
  --et-theme-color-primary-opacity: 1;
83
+ --et-button-shadow: inset 0 0 0 1px light-dark(var(--et-theme-color-ink-solid), transparent);
79
84
  color: var(--et-theme-color-on-primary);
85
+ box-shadow: var(--et-button-shadow, none);
80
86
 
81
87
  @media (hover: hover) {
82
88
  &:hover {
83
- --et-theme-color-primary-opacity: calc(1 - var(--et-button-variant-opacity-hover-delta));
89
+ --et-theme-color-primary-opacity: 1;
90
+ --et-theme-color-primary-rgb: var(
91
+ --et-color-primary-active,
92
+ var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)))
93
+ );
84
94
  }
85
95
  }
86
96
 
@@ -89,7 +99,11 @@
89
99
  }
90
100
 
91
101
  &:active {
92
- --et-theme-color-primary-opacity: calc(1 - var(--et-button-variant-opacity-active-delta));
102
+ --_et-icon-button-background: color-mix(
103
+ in srgb,
104
+ var(--et-theme-color-primary-solid) 84%,
105
+ var(--et-theme-color-on-primary-solid)
106
+ );
93
107
  }
94
108
  }
95
109
 
@@ -98,22 +112,7 @@
98
112
  }
99
113
 
100
114
  &[data-pressed='true']:where([data-pressed-variant='filled']) {
101
- --et-theme-color-primary-opacity: 1;
102
- color: var(--et-theme-color-on-primary);
103
-
104
- @media (hover: hover) {
105
- &:hover {
106
- --et-theme-color-primary-opacity: calc(1 - var(--et-button-variant-opacity-hover-delta));
107
- }
108
- }
109
-
110
- &:focus-visible {
111
- --et-theme-color-primary-opacity: calc(1 - var(--et-button-variant-opacity-focus-delta));
112
- }
113
-
114
- &:active {
115
- --et-theme-color-primary-opacity: calc(1 - var(--et-button-variant-opacity-active-delta));
116
- }
115
+ border: none;
117
116
  }
118
117
 
119
118
  .et-icon-button-icon {
@@ -87,7 +87,11 @@
87
87
  z-index: 1;
88
88
 
89
89
  &:where([data-variant='filled']) {
90
- --et-theme-color-primary-opacity: calc(1 - var(--et-button-variant-opacity-hover-delta));
90
+ --et-theme-color-primary-opacity: 1;
91
+ --et-theme-color-primary-rgb: var(
92
+ --et-color-primary-active,
93
+ var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)))
94
+ );
91
95
  }
92
96
 
93
97
  &:where([data-variant='outline'], [data-variant='transparent']) {
@@ -48,7 +48,8 @@
48
48
  }
49
49
 
50
50
  &:focus-visible {
51
- outline: 2px solid var(--et-theme-color-primary-solid);
51
+ outline: 2px solid
52
+ light-dark(var(--et-theme-color-ink-solid, currentColor), var(--et-theme-color-primary-solid, currentColor));
52
53
  outline-offset: 1px;
53
54
  }
54
55
  }
@@ -204,7 +205,10 @@
204
205
  inset-block: 4px;
205
206
  inset-inline: 0;
206
207
  display: none;
207
- background: color-mix(in srgb, var(--et-theme-color-primary-solid) 12%, transparent);
208
+ background: light-dark(
209
+ color-mix(in srgb, var(--et-theme-color-primary-solid) 32%, transparent),
210
+ color-mix(in srgb, var(--et-theme-color-primary-solid) 12%, transparent)
211
+ );
208
212
  }
209
213
 
210
214
  &:where([data-band])::before {
@@ -242,7 +246,8 @@
242
246
  outline: none;
243
247
 
244
248
  .et-calendar-cell-content {
245
- outline: 2px solid var(--et-theme-color-primary-solid);
249
+ outline: 2px solid
250
+ light-dark(var(--et-theme-color-ink-solid, currentColor), var(--et-theme-color-primary-solid, currentColor));
246
251
  outline-offset: 1px;
247
252
  }
248
253
  }
@@ -255,6 +260,11 @@
255
260
  box-shadow: inset 0 0 0 1px var(--et-theme-color-ink-solid);
256
261
  }
257
262
 
263
+ &:where([data-selected], [data-band='start'], [data-band='end']):where(:not([data-disabled], [data-today]))
264
+ .et-calendar-cell-content {
265
+ box-shadow: inset 0 0 0 1px light-dark(var(--et-theme-color-ink-solid), transparent);
266
+ }
267
+
258
268
  &:where([data-band='start'], [data-band='end']):where(:not([data-selected])) {
259
269
  color: var(--et-theme-color-on-primary);
260
270
 
@@ -36,4 +36,8 @@
36
36
  box-shadow: 0 4px 16px rgb(var(--et-shadow-color-rgb, 0 0 0) / 0.12);
37
37
  }
38
38
  }
39
+
40
+ .et-card .et-button:where([data-variant='filled']) {
41
+ --et-button-shadow: inset 0 0 0 1px light-dark(var(--et-theme-color-ink-solid), transparent);
42
+ }
39
43
  }
@@ -51,7 +51,7 @@
51
51
  content: '';
52
52
  position: absolute;
53
53
  inset: 0;
54
- background: var(--et-theme-color-primary-solid, currentColor);
54
+ background: light-dark(var(--et-theme-color-ink-solid), var(--et-theme-color-primary-solid));
55
55
  rotate: -180deg;
56
56
  /* At -180deg the flat edge lies on this half's clip edge, and at a fractional device pixel ratio the
57
57
  anti-aliasing of the two leaks a one-pixel line. The sweep keyframes show it again. */
@@ -144,13 +144,13 @@
144
144
  }
145
145
 
146
146
  &:where([data-active])::before {
147
- background: var(--et-theme-color-primary-solid, currentColor);
147
+ background: light-dark(var(--et-theme-color-ink-solid), var(--et-theme-color-primary-solid));
148
148
  }
149
149
 
150
150
  /* Spelled out because the plain `:hover` above outranks a `:where()`-flattened selector, so without this
151
151
  the accent dot went grey under the pointer — the one dot that must never look unselected. */
152
152
  &:where([data-active]):hover::before {
153
- background: var(--et-theme-color-primary-solid, currentColor);
153
+ background: light-dark(var(--et-theme-color-ink-solid), var(--et-theme-color-primary-solid));
154
154
  }
155
155
  }
156
156
 
@@ -12,6 +12,7 @@
12
12
  }
13
13
 
14
14
  &:where([data-orientation='horizontal']) {
15
+ container-type: inline-size;
15
16
  justify-items: start;
16
17
 
17
18
  .et-chart-axis-label {
@@ -20,10 +21,9 @@
20
21
 
21
22
  .et-chart-axis-label:where([data-extent]) {
22
23
  box-sizing: border-box;
23
- inline-size: var(--_et-chart-axis-extent);
24
+ max-inline-size: var(--_et-chart-axis-extent);
24
25
  padding-inline: 2px;
25
- text-align: center;
26
- translate: calc(var(--_et-chart-axis-position) - var(--_et-chart-axis-extent) / 2) 0;
26
+ translate: clamp(0px, calc(var(--_et-chart-axis-position) - 50%), calc(100cqi - 100%)) 0;
27
27
  }
28
28
  }
29
29
 
@@ -80,7 +80,8 @@
80
80
  }
81
81
 
82
82
  &:focus-visible {
83
- outline: 2px solid var(--et-theme-color-primary-solid, currentColor);
83
+ outline: 2px solid
84
+ light-dark(var(--et-theme-color-ink-solid, currentColor), var(--et-theme-color-primary-solid, currentColor));
84
85
  outline-offset: 1px;
85
86
  }
86
87
 
@@ -95,6 +96,7 @@
95
96
  &:where([aria-checked='true']) {
96
97
  background: color-mix(in srgb, var(--et-theme-color-primary-solid, currentColor) 16%, transparent);
97
98
  color: var(--et-theme-color-ink-solid, currentColor);
99
+ box-shadow: inset 0 0 0 1px light-dark(var(--et-theme-color-ink-solid), transparent);
98
100
 
99
101
  @media (hover: hover) {
100
102
  &:hover:not([data-readonly]) {
@@ -131,6 +133,9 @@
131
133
  color: var(--et-surface-color-muted-solid, currentColor);
132
134
  cursor: pointer;
133
135
  appearance: none;
136
+ transition:
137
+ background 120ms ease,
138
+ color 120ms ease;
134
139
 
135
140
  @media (hover: hover) {
136
141
  &:hover {
@@ -144,7 +149,8 @@
144
149
  }
145
150
 
146
151
  &:focus-visible {
147
- outline: 2px solid var(--et-theme-color-primary-solid, currentColor);
152
+ outline: 2px solid
153
+ light-dark(var(--et-theme-color-ink-solid, currentColor), var(--et-theme-color-primary-solid, currentColor));
148
154
  outline-offset: 1px;
149
155
  }
150
156
 
@@ -37,7 +37,7 @@
37
37
 
38
38
  .et-description-list {
39
39
  display: grid;
40
- grid-template-columns: minmax(var(--et-description-list-term-min-width), max-content) 1fr;
40
+ grid-template-columns: minmax(var(--et-description-list-term-min-width), max-content) minmax(0, 1fr);
41
41
  row-gap: var(--et-description-list-row-gap);
42
42
  column-gap: var(--et-description-list-column-gap);
43
43
  margin: 0;
@@ -55,6 +55,7 @@
55
55
  dd {
56
56
  grid-column: 2;
57
57
  margin: 0;
58
+ overflow-wrap: anywhere;
58
59
  font-size: var(--et-description-list-detail-font-size);
59
60
  color: var(--et-surface-color-solid, currentColor);
60
61
  }
@@ -70,4 +70,8 @@
70
70
  font-size: var(--et-empty-state-description-font-size);
71
71
  color: var(--et-surface-color-muted-solid, currentColor);
72
72
  }
73
+
74
+ .et-empty-state .et-button:where([data-variant='filled']) {
75
+ --et-button-shadow: inset 0 0 0 1px light-dark(var(--et-theme-color-ink-solid), transparent);
76
+ }
73
77
  }
@@ -46,10 +46,37 @@
46
46
  reader cannot see. */
47
47
  visibility: hidden;
48
48
  }
49
+
50
+ .et-floating-action-trigger:where(
51
+ [data-floating-action-state='floating'],
52
+ [data-floating-action-state='hidden']
53
+ )::before {
54
+ content: '';
55
+ position: absolute;
56
+ inset: 0;
57
+ border-radius: inherit;
58
+ pointer-events: none;
59
+ opacity: 0;
60
+ box-shadow:
61
+ 0 0.3rem 0.8rem rgb(var(--et-shadow-color-rgb, 0 0 0) / 0.2),
62
+ 0 0.1rem 0.3rem rgb(var(--et-shadow-color-rgb, 0 0 0) / 0.12);
63
+ }
64
+
65
+ .et-floating-action-trigger:where([data-floating-action-state='floating']) {
66
+ --et-button-shadow: inset 0 0 0 1px light-dark(var(--et-theme-color-ink-solid), transparent);
67
+ }
68
+
69
+ .et-floating-action-trigger:where([data-floating-action-state='floating'])::before {
70
+ opacity: 1;
71
+ }
49
72
  }
50
73
 
51
74
  @media (prefers-reduced-motion: no-preference) {
52
75
  .et-floating-action {
76
+ .et-floating-action-trigger::before {
77
+ transition: opacity var(--et-floating-action-duration) var(--ease-3, ease-out);
78
+ }
79
+
53
80
  /* Scaling *in* is a keyframe rather than a transition: the first time the trigger detaches there is no
54
81
  previous scale to animate from. */
55
82
  .et-floating-action-trigger:where([data-floating-action-state='floating']) {
@@ -2,7 +2,10 @@
2
2
  .et-focus-ring {
3
3
  --_et-focus-ring-offset: 3px;
4
4
  --_et-focus-ring-width: 2px;
5
- --_et-focus-ring-color: var(--et-theme-color-primary-solid, currentColor);
5
+ --_et-focus-ring-color: light-dark(
6
+ var(--et-theme-color-ink-solid, currentColor),
7
+ var(--et-theme-color-primary-solid, currentColor)
8
+ );
6
9
  outline: var(--_et-focus-ring-width) solid transparent;
7
10
  outline-offset: var(--_et-focus-ring-offset);
8
11
  }
@@ -51,12 +51,13 @@
51
51
  }
52
52
 
53
53
  .et-checkbox-box {
54
+ box-sizing: border-box;
54
55
  position: relative;
55
56
  display: grid;
56
57
  place-items: center;
57
58
  width: var(--et-checkbox-size);
58
59
  height: var(--et-checkbox-size);
59
- border: var(--et-checkbox-border-width) solid var(--et-surface-border-solid, currentColor);
60
+ border: var(--et-checkbox-border-width) solid var(--et-surface-interaction-solid, currentColor);
60
61
  border-radius: var(--et-checkbox-border-radius);
61
62
  }
62
63
 
@@ -79,11 +80,33 @@
79
80
  }
80
81
 
81
82
  @media (hover: hover) {
82
- :where(et-choice-field[data-error]) &:hover:not([aria-disabled='true']):not([data-readonly]) .et-checkbox-box,
83
+ :where(et-choice-field[data-error])
84
+ &:hover:not([aria-disabled='true']):not([data-readonly]):not([aria-checked='true']):not([aria-checked='mixed'])
85
+ .et-checkbox-box,
83
86
  :where(et-choice-field[data-error]:has(.et-choice-field-label-area:hover))
84
- &:not([aria-disabled='true']):not([data-readonly])
87
+ &:not([aria-disabled='true']):not([data-readonly]):not([aria-checked='true']):not([aria-checked='mixed'])
85
88
  .et-checkbox-box {
86
- border-color: var(--et-theme-color-primary-solid);
89
+ border-color: light-dark(
90
+ rgb(var(--et-color-primary-hover, var(--et-color-primary))),
91
+ rgb(
92
+ var(
93
+ --et-color-primary-ink-active,
94
+ var(
95
+ --et-color-primary-ink-focus,
96
+ var(
97
+ --et-color-primary-ink-hover,
98
+ var(
99
+ --et-color-primary-ink,
100
+ var(
101
+ --et-color-primary-active,
102
+ var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)))
103
+ )
104
+ )
105
+ )
106
+ )
107
+ )
108
+ )
109
+ );
87
110
  }
88
111
  }
89
112
 
@@ -100,7 +123,10 @@
100
123
  }
101
124
 
102
125
  et-choice-field[data-error] &:focus-visible:not([aria-checked='true']):not([aria-checked='mixed']) {
103
- --_et-focus-ring-color: var(--et-theme-color-primary-solid);
126
+ --_et-focus-ring-color: light-dark(
127
+ var(--et-theme-color-ink-solid, currentColor),
128
+ var(--et-theme-color-primary-solid, currentColor)
129
+ );
104
130
  }
105
131
 
106
132
  et-choice-field[data-error]
@@ -47,6 +47,7 @@
47
47
  --_et-color-input-checker: color-mix(in srgb, currentColor 18%, transparent);
48
48
  --_et-color-input-swatch-color: transparent;
49
49
 
50
+ box-sizing: border-box;
50
51
  inline-size: var(--et-color-input-swatch-size);
51
52
  block-size: var(--et-color-input-swatch-size);
52
53
  border-radius: var(--et-color-input-swatch-radius);
@@ -86,7 +87,8 @@
86
87
  outline: none;
87
88
 
88
89
  .et-color-input-swatch {
89
- outline: 2px solid var(--et-theme-color-primary-solid, currentColor);
90
+ outline: 2px solid
91
+ light-dark(var(--et-theme-color-ink-solid, currentColor), var(--et-theme-color-primary-solid, currentColor));
90
92
  outline-offset: 2px;
91
93
  }
92
94
  }
@@ -88,7 +88,8 @@
88
88
  cursor: crosshair;
89
89
 
90
90
  &:has(.et-color-picker-channel:focus-visible) {
91
- outline: 2px solid var(--et-theme-color-primary-solid, currentColor);
91
+ outline: 2px solid
92
+ light-dark(var(--et-theme-color-ink-solid, currentColor), var(--et-theme-color-primary-solid, currentColor));
92
93
  outline-offset: 2px;
93
94
  }
94
95
  }
@@ -99,7 +100,8 @@
99
100
  border-radius: 999px;
100
101
 
101
102
  &:has(.et-color-picker-channel:focus-visible) {
102
- outline: 2px solid var(--et-theme-color-primary-solid, currentColor);
103
+ outline: 2px solid
104
+ light-dark(var(--et-theme-color-ink-solid, currentColor), var(--et-theme-color-primary-solid, currentColor));
103
105
  outline-offset: 2px;
104
106
  }
105
107
  }
@@ -148,6 +150,7 @@
148
150
  choosing, so it has to stay legible over every hue a token could not anticipate */
149
151
  .et-color-picker-area-thumb,
150
152
  .et-color-picker-track-thumb {
153
+ box-sizing: border-box;
151
154
  position: absolute;
152
155
  inline-size: var(--et-color-picker-thumb-size);
153
156
  block-size: var(--et-color-picker-thumb-size);
@@ -227,6 +230,7 @@
227
230
  --_et-color-picker-preview-color: transparent;
228
231
 
229
232
  flex: none;
233
+ box-sizing: border-box;
230
234
  inline-size: 20px;
231
235
  block-size: 20px;
232
236
  border-radius: 4px;
@@ -19,7 +19,7 @@
19
19
  font-variant-numeric: tabular-nums;
20
20
 
21
21
  &::placeholder {
22
- color: color-mix(in srgb, currentColor 46%, transparent);
22
+ color: color-mix(in srgb, currentColor 60%, transparent);
23
23
  }
24
24
 
25
25
  &:disabled {
@@ -19,7 +19,7 @@
19
19
  font-variant-numeric: tabular-nums;
20
20
 
21
21
  &::placeholder {
22
- color: color-mix(in srgb, currentColor 46%, transparent);
22
+ color: color-mix(in srgb, currentColor 60%, transparent);
23
23
  }
24
24
 
25
25
  &:disabled {
@@ -20,7 +20,7 @@
20
20
  font-variant-numeric: tabular-nums;
21
21
 
22
22
  &::placeholder {
23
- color: color-mix(in srgb, currentColor 46%, transparent);
23
+ color: color-mix(in srgb, currentColor 60%, transparent);
24
24
  }
25
25
 
26
26
  &:disabled {
@@ -32,7 +32,7 @@
32
32
  font-variant-numeric: tabular-nums;
33
33
 
34
34
  &::placeholder {
35
- color: color-mix(in srgb, currentColor 46%, transparent);
35
+ color: color-mix(in srgb, currentColor 60%, transparent);
36
36
  }
37
37
 
38
38
  &:disabled {
@@ -19,7 +19,7 @@
19
19
  font-variant-numeric: tabular-nums;
20
20
 
21
21
  &::placeholder {
22
- color: color-mix(in srgb, currentColor 46%, transparent);
22
+ color: color-mix(in srgb, currentColor 60%, transparent);
23
23
  }
24
24
 
25
25
  &:disabled {
@@ -0,0 +1,7 @@
1
+ @layer components {
2
+ et-description {
3
+ display: block;
4
+ font-size: var(--et-description-font-size, 12px);
5
+ color: var(--et-surface-color-muted-solid, currentColor);
6
+ }
7
+ }