@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
@@ -91,9 +91,10 @@
91
91
  position: relative;
92
92
  display: flex;
93
93
  align-items: center;
94
- block-size: max(28px, var(--et-slider-thumb-size));
94
+ block-size: max(44px, var(--et-slider-thumb-size));
95
95
  /* thumbs overhang the rail by half their size at the extremes — keep them inside the box */
96
96
  margin-inline: calc(var(--et-slider-thumb-size) / 2);
97
+ container-type: inline-size;
97
98
  cursor: pointer;
98
99
  }
99
100
 
@@ -131,7 +132,8 @@
131
132
  /* not `:focus-visible` alone: the track focuses the thumb programmatically on a press, and
132
133
  Chrome matches `:focus-visible` for that - the ring then stayed on after every click */
133
134
  &:focus-visible:not([data-pointer-focused]) {
134
- outline: 2px solid var(--et-theme-color-primary-solid, currentColor);
135
+ outline: 2px solid
136
+ light-dark(var(--et-theme-color-ink-solid, currentColor), var(--et-theme-color-primary-solid, currentColor));
135
137
  outline-offset: 2px;
136
138
  }
137
139
 
@@ -168,7 +170,13 @@
168
170
  left: 50%;
169
171
  /* clear the thumb (which overhangs the tick by half the size difference), then add the gap */
170
172
  inset-block-start: calc(100% + (var(--et-slider-thumb-size) - var(--et-slider-mark-size)) / 2 + 6px);
171
- translate: -50% 0;
173
+ --_et-slider-edge-x: calc(var(--_et-slider-mark-position, 0) * 1cqi);
174
+ translate: clamp(
175
+ -1 * (var(--_et-slider-edge-x) + var(--et-slider-thumb-size) / 2),
176
+ -50%,
177
+ 100cqi - var(--_et-slider-edge-x) + var(--et-slider-thumb-size) / 2 - 100%
178
+ )
179
+ 0;
172
180
  inline-size: max-content;
173
181
  font-size: var(--et-slider-mark-label-font-size);
174
182
  line-height: 1.2;
@@ -189,7 +197,13 @@
189
197
  /* physical centering is direction-safe — 50% of the thumb is 50% in both directions */
190
198
  left: 50%;
191
199
  bottom: calc(100% + 8px);
192
- translate: -50% 0;
200
+ --_et-slider-edge-x: calc(var(--_et-slider-thumb-position, 0) * 1cqi);
201
+ translate: clamp(
202
+ -1 * (var(--_et-slider-edge-x) + var(--et-slider-thumb-size) / 2),
203
+ -50%,
204
+ 100cqi - var(--_et-slider-edge-x) + var(--et-slider-thumb-size) / 2 - 100%
205
+ )
206
+ 0;
193
207
  inline-size: max-content;
194
208
  padding: 2px 8px;
195
209
  border-radius: 6px;
@@ -203,6 +217,21 @@
203
217
  user-select: none;
204
218
  }
205
219
 
220
+ .et-range-slider-mark-label:dir(rtl) {
221
+ --_et-slider-edge-x: calc((100 - var(--_et-slider-mark-position, 0)) * 1cqi);
222
+ }
223
+
224
+ .et-range-slider-thumb-value:dir(rtl) {
225
+ --_et-slider-edge-x: calc((100 - var(--_et-slider-thumb-position, 0)) * 1cqi);
226
+ }
227
+
228
+ &:where([data-thumb-value]) .et-range-slider-interaction {
229
+ margin-block-start: calc(
230
+ var(--et-slider-thumb-value-font-size) * 1.4 + 14px -
231
+ (max(44px, var(--et-slider-thumb-size)) - var(--et-slider-thumb-size)) / 2
232
+ );
233
+ }
234
+
206
235
  /* an unresolved bulk-edit range parks both thumbs at the track start — the dashed accent rail
207
236
  (not a muted/grey one, which would read as disabled) makes that read as "provisional /
208
237
  values differ", not "minimum". The fill is already zero-width while mixed. Consumers
@@ -261,11 +290,12 @@
261
290
  .et-range-slider-interaction {
262
291
  flex-direction: column;
263
292
  align-items: center;
264
- inline-size: max(28px, var(--et-slider-thumb-size));
293
+ inline-size: max(44px, var(--et-slider-thumb-size));
265
294
  block-size: var(--et-slider-vertical-size);
266
295
  margin-inline: 0;
267
296
  /* thumbs overhang the rail by half their size at the extremes — keep them inside the box */
268
297
  margin-block: calc(var(--et-slider-thumb-size) / 2);
298
+ container-type: normal;
269
299
  }
270
300
 
271
301
  .et-range-slider-rail {
@@ -296,7 +326,17 @@
296
326
  bottom: auto;
297
327
  inset-block-start: 50%;
298
328
  inset-inline-start: calc(100% + 8px);
299
- translate: 0 -50%;
329
+ translate: 0
330
+ clamp(
331
+ -1 *
332
+ (
333
+ (100 - var(--_et-slider-thumb-position, 0)) * var(--et-slider-vertical-size) / 100 +
334
+ var(--et-slider-thumb-size) / 2
335
+ ),
336
+ -50%,
337
+ var(--_et-slider-thumb-position, 0) * var(--et-slider-vertical-size) / 100 + var(--et-slider-thumb-size) /
338
+ 2 - 100%
339
+ );
300
340
  }
301
341
 
302
342
  .et-range-slider-mark {
@@ -315,6 +355,58 @@
315
355
  translate: 0 -50%;
316
356
  }
317
357
 
358
+ &:where([data-mark-labels]) {
359
+ .et-range-slider-interaction {
360
+ display: grid;
361
+ grid-template-columns: auto max(44px, var(--et-slider-thumb-size));
362
+ align-self: flex-start;
363
+ inline-size: auto;
364
+ }
365
+
366
+ .et-range-slider-rail {
367
+ grid-area: 1 / 2;
368
+ justify-self: center;
369
+ }
370
+
371
+ .et-range-slider-fill,
372
+ .et-range-slider-thumb {
373
+ grid-area: 1 / 2;
374
+ }
375
+
376
+ .et-range-slider-marks,
377
+ .et-range-slider-mark {
378
+ display: contents;
379
+ }
380
+
381
+ .et-range-slider-mark::before {
382
+ content: '';
383
+ position: absolute;
384
+ grid-area: 1 / 2;
385
+ left: 50%;
386
+ bottom: calc(var(--_et-slider-mark-position, 0) * 1% - var(--et-slider-mark-size) / 2);
387
+ translate: -50% 0;
388
+ inline-size: var(--et-slider-mark-size);
389
+ block-size: var(--et-slider-mark-size);
390
+ border-radius: 50%;
391
+ background: inherit;
392
+ }
393
+
394
+ .et-range-slider-mark-label {
395
+ position: relative;
396
+ grid-area: 1 / 1;
397
+ justify-self: end;
398
+ align-self: end;
399
+ inset: auto;
400
+ bottom: clamp(
401
+ var(--et-slider-thumb-size) / -2,
402
+ var(--_et-slider-mark-position, 0) * 1% - var(--et-slider-mark-label-font-size) * 0.6,
403
+ 100% + var(--et-slider-thumb-size) / 2 - var(--et-slider-mark-label-font-size) * 1.2
404
+ );
405
+ translate: none;
406
+ margin-inline-end: calc(var(--et-slider-thumb-size) / 2 + 6px - max(44px, var(--et-slider-thumb-size)) / 2);
407
+ }
408
+ }
409
+
318
410
  &[data-mixed] {
319
411
  .et-range-slider-rail {
320
412
  background: repeating-linear-gradient(
@@ -93,6 +93,7 @@
93
93
  block-size: max(44px, var(--et-slider-thumb-size));
94
94
  /* thumbs overhang the rail by half their size at the extremes — keep them inside the box */
95
95
  margin-inline: calc(var(--et-slider-thumb-size) / 2);
96
+ container-type: inline-size;
96
97
  cursor: pointer;
97
98
  }
98
99
 
@@ -130,7 +131,8 @@
130
131
  /* not `:focus-visible` alone: the track focuses the thumb programmatically on a press, and
131
132
  Chrome matches `:focus-visible` for that - the ring then stayed on after every click */
132
133
  &:focus-visible:not([data-pointer-focused]) {
133
- outline: 2px solid var(--et-theme-color-primary-solid, currentColor);
134
+ outline: 2px solid
135
+ light-dark(var(--et-theme-color-ink-solid, currentColor), var(--et-theme-color-primary-solid, currentColor));
134
136
  outline-offset: 2px;
135
137
  }
136
138
  }
@@ -162,7 +164,13 @@
162
164
  left: 50%;
163
165
  /* clear the thumb (which overhangs the tick by half the size difference), then add the gap */
164
166
  inset-block-start: calc(100% + (var(--et-slider-thumb-size) - var(--et-slider-mark-size)) / 2 + 6px);
165
- translate: -50% 0;
167
+ --_et-slider-edge-x: calc(var(--_et-slider-mark-position, 0) * 1cqi);
168
+ translate: clamp(
169
+ -1 * (var(--_et-slider-edge-x) + var(--et-slider-thumb-size) / 2),
170
+ -50%,
171
+ 100cqi - var(--_et-slider-edge-x) + var(--et-slider-thumb-size) / 2 - 100%
172
+ )
173
+ 0;
166
174
  inline-size: max-content;
167
175
  font-size: var(--et-slider-mark-label-font-size);
168
176
  line-height: 1.2;
@@ -183,7 +191,13 @@
183
191
  /* physical centering is direction-safe — 50% of the thumb is 50% in both directions */
184
192
  left: 50%;
185
193
  bottom: calc(100% + 8px);
186
- translate: -50% 0;
194
+ --_et-slider-edge-x: calc(var(--_et-slider-thumb-position, 0) * 1cqi);
195
+ translate: clamp(
196
+ -1 * (var(--_et-slider-edge-x) + var(--et-slider-thumb-size) / 2),
197
+ -50%,
198
+ 100cqi - var(--_et-slider-edge-x) + var(--et-slider-thumb-size) / 2 - 100%
199
+ )
200
+ 0;
187
201
  inline-size: max-content;
188
202
  padding: 2px 8px;
189
203
  border-radius: 6px;
@@ -197,6 +211,21 @@
197
211
  user-select: none;
198
212
  }
199
213
 
214
+ .et-slider-mark-label:dir(rtl) {
215
+ --_et-slider-edge-x: calc((100 - var(--_et-slider-mark-position, 0)) * 1cqi);
216
+ }
217
+
218
+ .et-slider-thumb-value:dir(rtl) {
219
+ --_et-slider-edge-x: calc((100 - var(--_et-slider-thumb-position, 0)) * 1cqi);
220
+ }
221
+
222
+ &:where([data-thumb-value]) .et-slider-interaction {
223
+ margin-block-start: calc(
224
+ var(--et-slider-thumb-value-font-size) * 1.4 + 14px -
225
+ (max(44px, var(--et-slider-thumb-size)) - var(--et-slider-thumb-size)) / 2
226
+ );
227
+ }
228
+
200
229
  /* an unresolved bulk-edit value parks the thumb at the track start — the dashed accent rail
201
230
  (not a muted/grey one, which would read as disabled) makes that read as "provisional /
202
231
  values differ", not "minimum". The fill is already zero-width while mixed. Consumers
@@ -260,6 +289,7 @@
260
289
  margin-inline: 0;
261
290
  /* thumbs overhang the rail by half their size at the extremes — keep them inside the box */
262
291
  margin-block: calc(var(--et-slider-thumb-size) / 2);
292
+ container-type: normal;
263
293
  }
264
294
 
265
295
  .et-slider-rail {
@@ -290,7 +320,17 @@
290
320
  bottom: auto;
291
321
  inset-block-start: 50%;
292
322
  inset-inline-start: calc(100% + 8px);
293
- translate: 0 -50%;
323
+ translate: 0
324
+ clamp(
325
+ -1 *
326
+ (
327
+ (100 - var(--_et-slider-thumb-position, 0)) * var(--et-slider-vertical-size) / 100 +
328
+ var(--et-slider-thumb-size) / 2
329
+ ),
330
+ -50%,
331
+ var(--_et-slider-thumb-position, 0) * var(--et-slider-vertical-size) / 100 + var(--et-slider-thumb-size) /
332
+ 2 - 100%
333
+ );
294
334
  }
295
335
 
296
336
  .et-slider-mark {
@@ -309,6 +349,58 @@
309
349
  translate: 0 -50%;
310
350
  }
311
351
 
352
+ &:where([data-mark-labels]) {
353
+ .et-slider-interaction {
354
+ display: grid;
355
+ grid-template-columns: auto max(44px, var(--et-slider-thumb-size));
356
+ align-self: flex-start;
357
+ inline-size: auto;
358
+ }
359
+
360
+ .et-slider-rail {
361
+ grid-area: 1 / 2;
362
+ justify-self: center;
363
+ }
364
+
365
+ .et-slider-fill,
366
+ .et-slider-thumb {
367
+ grid-area: 1 / 2;
368
+ }
369
+
370
+ .et-slider-marks,
371
+ .et-slider-mark {
372
+ display: contents;
373
+ }
374
+
375
+ .et-slider-mark::before {
376
+ content: '';
377
+ position: absolute;
378
+ grid-area: 1 / 2;
379
+ left: 50%;
380
+ bottom: calc(var(--_et-slider-mark-position, 0) * 1% - var(--et-slider-mark-size) / 2);
381
+ translate: -50% 0;
382
+ inline-size: var(--et-slider-mark-size);
383
+ block-size: var(--et-slider-mark-size);
384
+ border-radius: 50%;
385
+ background: inherit;
386
+ }
387
+
388
+ .et-slider-mark-label {
389
+ position: relative;
390
+ grid-area: 1 / 1;
391
+ justify-self: end;
392
+ align-self: end;
393
+ inset: auto;
394
+ bottom: clamp(
395
+ var(--et-slider-thumb-size) / -2,
396
+ var(--_et-slider-mark-position, 0) * 1% - var(--et-slider-mark-label-font-size) * 0.6,
397
+ 100% + var(--et-slider-thumb-size) / 2 - var(--et-slider-mark-label-font-size) * 1.2
398
+ );
399
+ translate: none;
400
+ margin-inline-end: calc(var(--et-slider-thumb-size) / 2 + 6px - max(44px, var(--et-slider-thumb-size)) / 2);
401
+ }
402
+ }
403
+
312
404
  &[data-mixed] {
313
405
  .et-slider-rail {
314
406
  background: repeating-linear-gradient(
@@ -59,6 +59,7 @@
59
59
  height: var(--et-switch-track-height);
60
60
  border-radius: calc(var(--et-switch-track-height) / 2);
61
61
  background-color: color-mix(in srgb, var(--et-surface-interaction-solid, currentColor) 22%, transparent);
62
+ box-shadow: inset 0 0 0 1px var(--et-surface-interaction-solid);
62
63
  }
63
64
 
64
65
  /* hover-capable pointers only — on touch, :hover sticks after a tap */
@@ -69,6 +70,7 @@
69
70
  &:not([aria-disabled='true']):not([data-readonly]):not([aria-checked='true']):not([data-indeterminate])
70
71
  .et-switch-track {
71
72
  background-color: color-mix(in srgb, var(--et-surface-interaction-solid, currentColor) 30%, transparent);
73
+ box-shadow: inset 0 0 0 1px var(--et-surface-interaction-hover-solid);
72
74
  }
73
75
  }
74
76
 
@@ -78,8 +80,45 @@
78
80
  background-color: color-mix(in srgb, var(--et-theme-color-primary-solid) 40%, transparent);
79
81
  }
80
82
 
83
+ @media (hover: hover) {
84
+ :where(et-choice-field[data-error])
85
+ &:hover:not([aria-disabled='true']):not([data-readonly]):not([aria-checked='true']):not([data-indeterminate])
86
+ .et-switch-track,
87
+ :where(et-choice-field[data-error]:has(.et-choice-field-label-area:hover))
88
+ &:not([aria-disabled='true']):not([data-readonly]):not([aria-checked='true']):not([data-indeterminate])
89
+ .et-switch-track {
90
+ background-color: color-mix(
91
+ in srgb,
92
+ light-dark(
93
+ rgb(var(--et-color-primary-hover, var(--et-color-primary))),
94
+ rgb(
95
+ var(
96
+ --et-color-primary-ink-active,
97
+ var(
98
+ --et-color-primary-ink-focus,
99
+ var(
100
+ --et-color-primary-ink-hover,
101
+ var(
102
+ --et-color-primary-ink,
103
+ var(
104
+ --et-color-primary-active,
105
+ var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)))
106
+ )
107
+ )
108
+ )
109
+ )
110
+ )
111
+ )
112
+ )
113
+ 40%,
114
+ transparent
115
+ );
116
+ }
117
+ }
118
+
81
119
  &:focus-visible .et-switch-track {
82
- outline: 2px solid var(--et-theme-color-primary-solid);
120
+ outline: 2px solid
121
+ light-dark(var(--et-theme-color-ink-solid, currentColor), var(--et-theme-color-primary-solid, currentColor));
83
122
  outline-offset: 2px;
84
123
  }
85
124
 
@@ -117,6 +156,7 @@
117
156
  &[aria-checked='true'] {
118
157
  .et-switch-track {
119
158
  background-color: var(--et-theme-color-primary-solid, currentColor);
159
+ box-shadow: inset 0 0 0 1px light-dark(var(--et-theme-color-ink-solid), transparent);
120
160
  }
121
161
 
122
162
  .et-switch-thumb {
@@ -149,25 +189,28 @@
149
189
  &[data-indeterminate] {
150
190
  .et-switch-track {
151
191
  background-color: transparent;
192
+ box-shadow: none;
152
193
 
153
194
  &::before {
154
195
  content: '';
155
196
  position: absolute;
156
197
  inset: 0;
157
198
  border-radius: inherit;
158
- border: 1px dashed var(--et-theme-color-primary-solid, currentColor);
199
+ border: 1px dashed var(--et-theme-color-ink-solid, currentColor);
159
200
  }
160
201
  }
161
202
 
162
203
  .et-switch-thumb {
163
204
  left: calc((var(--et-switch-track-width) - (var(--et-switch-thumb-size) - 4px)) / 2);
164
- background-color: var(--et-theme-color-primary-solid, currentColor);
205
+ background-color: var(--et-theme-color-ink-solid, currentColor);
165
206
  }
166
207
  }
167
208
 
168
209
  &[data-can-animate] {
169
210
  .et-switch-track {
170
- transition: background-color var(--et-switch-transition-duration) ease;
211
+ transition:
212
+ background-color var(--et-switch-transition-duration) ease,
213
+ box-shadow var(--et-switch-transition-duration) ease;
171
214
  }
172
215
 
173
216
  .et-switch-thumb {
@@ -35,7 +35,7 @@
35
35
  caret-color: var(--et-theme-color-primary-solid, currentColor);
36
36
 
37
37
  &::placeholder {
38
- color: color-mix(in srgb, currentColor 46%, transparent);
38
+ color: color-mix(in srgb, currentColor 60%, transparent);
39
39
  }
40
40
 
41
41
  &:disabled {
@@ -44,7 +44,7 @@
44
44
  }
45
45
 
46
46
  /* an unresolved bulk-edit value reads as provisional — the mixedLabel placeholder sits
47
- between committed text (full strength) and the regular placeholder (46%). Consumers
47
+ between committed text (full strength) and the regular placeholder (60%). Consumers
48
48
  restyle via [data-mixed]. */
49
49
  &[data-mixed] .et-tag-input-field::placeholder {
50
50
  font-style: italic;
@@ -4,9 +4,8 @@
4
4
  run at once - the directive skips measuring exactly when this `@supports` condition holds.
5
5
  Delete the fallback once Firefox ESR and iOS Safari 26 both support `field-sizing`.
6
6
 
7
- The row bounds hold only while the native textarea has no block padding: it is a border box,
8
- so any padding on it eats into the clamp, and CSS cannot add the padding back. Pad the form
9
- field's frame instead. */
7
+ The row bounds count only the content: the native textarea is a border box, so a rule that
8
+ pads it must add its block padding to both bounds, as form-field-textarea-styles does. */
10
9
  @supports (field-sizing: content) {
11
10
  textarea[data-et-textarea-autosize] {
12
11
  field-sizing: content;
@@ -18,7 +18,11 @@
18
18
  min-width: 0;
19
19
 
20
20
  &::placeholder {
21
- color: color-mix(in srgb, currentColor 46%, transparent);
21
+ color: color-mix(in srgb, currentColor 60%, transparent);
22
+ }
23
+
24
+ &[rows='1']::placeholder {
25
+ white-space: pre;
22
26
  }
23
27
 
24
28
  &[data-resize='none'] {
@@ -27,11 +31,12 @@
27
31
 
28
32
  &[data-resize='vertical'] {
29
33
  resize: vertical;
34
+ min-block-size: 1lh;
30
35
  }
31
36
  }
32
37
 
33
38
  /* an unresolved bulk-edit value reads as provisional — the mixed label shows as the
34
- placeholder, between a committed value (full strength) and a real placeholder (46%) */
39
+ placeholder, between a committed value (full strength) and a real placeholder (60%) */
35
40
  &[data-mixed] .et-textarea-native::placeholder {
36
41
  font-style: italic;
37
42
  color: color-mix(in srgb, currentColor 72%, transparent);
@@ -0,0 +1,10 @@
1
+ @layer components {
2
+ .et-grid-item-toolbar {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ gap: var(--et-grid-item-toolbar-gap, 4px);
6
+ padding: var(--et-grid-item-toolbar-padding, 4px);
7
+ border-radius: var(--et-grid-item-toolbar-radius, 8px);
8
+ background: var(--et-grid-item-toolbar-background, transparent);
9
+ }
10
+ }
@@ -23,7 +23,8 @@
23
23
  background: var(--et-grid-item-bg, var(--et-surface-background-solid));
24
24
 
25
25
  &:focus-visible {
26
- outline: 2px solid var(--et-theme-color-primary-solid, currentColor);
26
+ outline: 2px solid
27
+ light-dark(var(--et-theme-color-ink-solid, currentColor), var(--et-theme-color-primary-solid, currentColor));
27
28
  outline-offset: -2px;
28
29
  }
29
30
 
@@ -152,6 +153,10 @@
152
153
  min-height: 0;
153
154
  }
154
155
 
156
+ .et-grid-item:has(> .et-grid-item__actions:not(:empty)) > .et-grid-item__content {
157
+ padding-inline-end: var(--et-grid-item-actions-reserve, calc(2.4rem + 12px));
158
+ }
159
+
155
160
  .et-grid:not(.et-grid--readonly) .et-grid-item__content {
156
161
  cursor: grab;
157
162
  user-select: none;
@@ -0,0 +1,30 @@
1
+ import { IconDefinition } from './icon-definition';
2
+
3
+ const svg = (lines: string) =>
4
+ `<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none"
5
+ stroke="currentColor" stroke-width="1.4" stroke-linecap="round">${lines}</svg>`;
6
+
7
+ // Custom icons - horizontal rules representing text-align.
8
+ export const ALIGN_LEFT_ICON: IconDefinition = {
9
+ name: 'et-align-left',
10
+ data: /* @__PURE__ */ svg(`<line x1="2.5" y1="4" x2="13.5" y2="4"/><line x1="2.5" y1="8" x2="9.5" y2="8"/>
11
+ <line x1="2.5" y1="12" x2="12" y2="12"/>`),
12
+ };
13
+
14
+ export const ALIGN_CENTER_ICON: IconDefinition = {
15
+ name: 'et-align-center',
16
+ data: /* @__PURE__ */ svg(`<line x1="2.5" y1="4" x2="13.5" y2="4"/><line x1="4.5" y1="8" x2="11.5" y2="8"/>
17
+ <line x1="3.5" y1="12" x2="12.5" y2="12"/>`),
18
+ };
19
+
20
+ export const ALIGN_RIGHT_ICON: IconDefinition = {
21
+ name: 'et-align-right',
22
+ data: /* @__PURE__ */ svg(`<line x1="2.5" y1="4" x2="13.5" y2="4"/><line x1="6.5" y1="8" x2="13.5" y2="8"/>
23
+ <line x1="4" y1="12" x2="13.5" y2="12"/>`),
24
+ };
25
+
26
+ export const ALIGN_JUSTIFY_ICON: IconDefinition = {
27
+ name: 'et-align-justify',
28
+ data: /* @__PURE__ */ svg(`<line x1="2.5" y1="4" x2="13.5" y2="4"/><line x1="2.5" y1="8" x2="13.5" y2="8"/>
29
+ <line x1="2.5" y1="12" x2="13.5" y2="12"/>`),
30
+ };
@@ -0,0 +1,17 @@
1
+ import { IconDefinition } from './icon-definition';
2
+
3
+ export const ARROW_OUT_UP_RIGHT_ICON: IconDefinition = {
4
+ name: 'et-arrow-out-up-right',
5
+ data: `
6
+ <svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
7
+ <path
8
+ fill="currentColor"
9
+ d="M5 6.75A1.75 1.75 0 0 1 6.75 5h4.5a.75.75 0 0 1 0 1.5h-4.5a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-4.5a.75.75 0 0 1 1.5 0v4.5A1.75 1.75 0 0 1 17.25 19H6.75A1.75 1.75 0 0 1 5 17.25V6.75Z"
10
+ />
11
+ <path
12
+ fill="currentColor"
13
+ d="M11.5 5.75c0-.414.336-.75.75-.75h6c.414 0 .75.336.75.75v6a.75.75 0 0 1-1.5 0V7.56l-6.72 6.72a.75.75 0 1 1-1.06-1.06l6.72-6.72h-4.19a.75.75 0 0 1-.75-.75Z"
14
+ />
15
+ </svg>
16
+ `,
17
+ };
@@ -0,0 +1,23 @@
1
+ import { IconDefinition } from './icon-definition';
2
+
3
+ export const ARROW_RIGHT_ICON: IconDefinition = {
4
+ name: 'et-arrow-right',
5
+ data: `
6
+ <svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none">
7
+ <path
8
+ d="M4 12h14"
9
+ stroke="currentColor"
10
+ stroke-width="1.8"
11
+ stroke-linecap="round"
12
+ stroke-linejoin="round"
13
+ />
14
+ <path
15
+ d="M13 7l5 5-5 5"
16
+ stroke="currentColor"
17
+ stroke-width="1.8"
18
+ stroke-linecap="round"
19
+ stroke-linejoin="round"
20
+ />
21
+ </svg>
22
+ `,
23
+ };
@@ -0,0 +1,30 @@
1
+ import { IconDefinition } from './icon-definition';
2
+
3
+ /**
4
+ * Upward arrow. Rotate it 180° for the downward one - see the table's sort indicator.
5
+ *
6
+ * Drawn to fill its viewBox and sit centred in it (the shaft spans 3.5–20.5 of 24, so the glyph's
7
+ * midpoint is the box's). An arrow inset from its own box renders far smaller than the text it sits
8
+ * beside, and off-centre against it, however carefully the box itself is aligned.
9
+ */
10
+ export const ARROW_UP_ICON: IconDefinition = {
11
+ name: 'et-arrow-up',
12
+ data: `
13
+ <svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none">
14
+ <path
15
+ d="M12 20.5V3.5"
16
+ stroke="currentColor"
17
+ stroke-width="2"
18
+ stroke-linecap="round"
19
+ stroke-linejoin="round"
20
+ />
21
+ <path
22
+ d="M5.5 10L12 3.5 18.5 10"
23
+ stroke="currentColor"
24
+ stroke-width="2"
25
+ stroke-linecap="round"
26
+ stroke-linejoin="round"
27
+ />
28
+ </svg>
29
+ `,
30
+ };
@@ -0,0 +1,31 @@
1
+ import { IconDefinition } from './icon-definition';
2
+
3
+ /** Arrows pointing apart along the inline axis - a "fit to width" action (the table's autosize). */
4
+ export const ARROWS_LEFT_RIGHT_ICON: IconDefinition = {
5
+ name: 'et-arrows-left-right',
6
+ data: `
7
+ <svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none">
8
+ <path
9
+ d="M3.5 12h17"
10
+ stroke="currentColor"
11
+ stroke-width="2"
12
+ stroke-linecap="round"
13
+ stroke-linejoin="round"
14
+ />
15
+ <path
16
+ d="M8 7.5L3.5 12 8 16.5"
17
+ stroke="currentColor"
18
+ stroke-width="2"
19
+ stroke-linecap="round"
20
+ stroke-linejoin="round"
21
+ />
22
+ <path
23
+ d="M16 7.5L20.5 12 16 16.5"
24
+ stroke="currentColor"
25
+ stroke-width="2"
26
+ stroke-linecap="round"
27
+ stroke-linejoin="round"
28
+ />
29
+ </svg>
30
+ `,
31
+ };
@@ -0,0 +1,11 @@
1
+ import { IconDefinition } from './icon-definition';
2
+
3
+ // Custom icon.
4
+ export const BOLD_ICON: IconDefinition = {
5
+ name: 'et-bold',
6
+ data: `
7
+ <svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
8
+ <text x="8" y="12" font-size="12" font-weight="700" text-anchor="middle" fill="currentColor">B</text>
9
+ </svg>
10
+ `,
11
+ };