@ethlete/components 1.0.0-next.68 → 1.0.0-next.70

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 (239) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/design/button.ts +57 -0
  3. package/design/form-field.ts +210 -0
  4. package/design/select.ts +110 -0
  5. package/fesm2022/ethlete-components-testing.mjs +3 -1
  6. package/fesm2022/ethlete-components-testing.mjs.map +1 -1
  7. package/fesm2022/ethlete-components.mjs +1543 -352
  8. package/fesm2022/ethlete-components.mjs.map +1 -1
  9. package/package.json +20 -14
  10. package/src/lib/accordion/accordion-group.component.css +12 -0
  11. package/src/lib/accordion/accordion.component.css +185 -0
  12. package/src/lib/avatar/avatar-group.component.css +31 -0
  13. package/src/lib/avatar/avatar.component.css +75 -0
  14. package/src/lib/badge/badge.component.css +111 -0
  15. package/src/lib/banner/banner.component.css +94 -0
  16. package/src/lib/bracket/bracket-default-continue.component.css +29 -0
  17. package/src/lib/bracket/bracket-default-final-match.component.css +76 -0
  18. package/src/lib/bracket/bracket-default-match.component.css +21 -0
  19. package/src/lib/bracket/bracket-default-round-header.component.css +36 -0
  20. package/src/lib/bracket/bracket-participants.component.css +13 -0
  21. package/src/lib/bracket/bracket-pick-card.component.css +232 -0
  22. package/src/lib/bracket/bracket-rounds-list.component.css +75 -0
  23. package/src/lib/bracket/bracket-skeleton.component.css +55 -0
  24. package/src/lib/bracket/bracket.component.css +102 -0
  25. package/src/lib/bracket/layouts/swiss/bracket-swiss-styles.component.css +10 -0
  26. package/src/lib/breadcrumb/breadcrumb-overflow.component.css +38 -0
  27. package/src/lib/breadcrumb/breadcrumb.component.css +120 -0
  28. package/src/lib/button/button-properties-styles.component.css +143 -0
  29. package/src/lib/button/button.component.css +196 -0
  30. package/src/lib/button/fab.component.css +252 -0
  31. package/src/lib/button/icon-button.component.css +143 -0
  32. package/src/lib/button/split-button.component.css +77 -0
  33. package/src/lib/button/text-button.component.css +140 -0
  34. package/src/lib/button/window-control-button.component.css +158 -0
  35. package/src/lib/calendar/calendar-coarse-grid-styles.component.css +29 -0
  36. package/src/lib/calendar/calendar-comparison-band-styles.component.css +36 -0
  37. package/src/lib/calendar/calendar-week-numbers-styles.component.css +32 -0
  38. package/src/lib/calendar/calendar.component.css +366 -0
  39. package/src/lib/card/card.component.css +39 -0
  40. package/src/lib/carousel/carousel-autoplay-styles.component.css +166 -0
  41. package/src/lib/carousel/carousel-transition-styles.component.css +179 -0
  42. package/src/lib/carousel/carousel.component.css +142 -0
  43. package/src/lib/chart/bar-chart.component.css +176 -0
  44. package/src/lib/chart/chart-axis.component.css +40 -0
  45. package/src/lib/chart/chart-grid.component.css +6 -0
  46. package/src/lib/chart/chart-legend.component.css +46 -0
  47. package/src/lib/chart/chart-tooltip.component.css +34 -0
  48. package/src/lib/chart/line-chart-tooltip.component.css +51 -0
  49. package/src/lib/chart/line-chart.component.css +234 -0
  50. package/src/lib/chart/pie-chart.component.css +176 -0
  51. package/src/lib/chart/sankey-chart.component.css +221 -0
  52. package/src/lib/chip/chip.component.css +155 -0
  53. package/src/lib/command-palette/command-palette-item.component.css +94 -0
  54. package/src/lib/command-palette/command-palette.component.css +100 -0
  55. package/src/lib/description-list/description-list.component.css +77 -0
  56. package/src/lib/divider/divider.component.css +36 -0
  57. package/src/lib/empty-state/empty-state.component.css +73 -0
  58. package/src/lib/floating-action/floating-action-styles.component.css +78 -0
  59. package/src/lib/focus-ring/focus-ring-styles.component.css +13 -0
  60. package/src/lib/forms/cascader/cascader-breadcrumb-styles.component.css +98 -0
  61. package/src/lib/forms/cascader/cascader-panel.component.css +386 -0
  62. package/src/lib/forms/cascader/cascader-sheet-styles.component.css +241 -0
  63. package/src/lib/forms/cascader/cascader.component.css +52 -0
  64. package/src/lib/forms/checkbox/checkbox.component.css +247 -0
  65. package/src/lib/forms/choice-field/choice-field-card-styles.component.css +59 -0
  66. package/src/lib/forms/choice-field/choice-field.component.css +186 -0
  67. package/src/lib/forms/color-input/color-input.component.css +108 -0
  68. package/src/lib/forms/color-input/color-picker-panel.component.css +349 -0
  69. package/src/lib/forms/date-time/date-input/date-input.component.css +35 -0
  70. package/src/lib/forms/date-time/date-picker-panel.component.css +115 -0
  71. package/src/lib/forms/date-time/date-range-input/date-range-input.component.css +16 -0
  72. package/src/lib/forms/date-time/date-range-presets.component.css +60 -0
  73. package/src/lib/forms/date-time/date-time-input/date-time-input.component.css +151 -0
  74. package/src/lib/forms/date-time/date-time-range-input/date-time-range-input.component.css +121 -0
  75. package/src/lib/forms/date-time/duration-input/duration-input.component.css +88 -0
  76. package/src/lib/forms/date-time/range-input-shell-styles.component.css +55 -0
  77. package/src/lib/forms/date-time/time-input/time-input.component.css +35 -0
  78. package/src/lib/forms/date-time/time-range-input/time-range-input.component.css +16 -0
  79. package/src/lib/forms/dropzone/dropzone-item.component.css +51 -0
  80. package/src/lib/forms/dropzone/dropzone-preview-styles.component.css +67 -0
  81. package/src/lib/forms/dropzone/dropzone-readonly-styles.component.css +34 -0
  82. package/src/lib/forms/dropzone/dropzone.component.css +267 -0
  83. package/src/lib/forms/form-field/counter.component.css +25 -0
  84. package/src/lib/forms/form-field/form-field-control-suffix-styles.component.css +116 -0
  85. package/src/lib/forms/form-field/form-field-rich-text-styles.component.css +31 -0
  86. package/src/lib/forms/form-field/form-field-suffix-overlap-styles.component.css +66 -0
  87. package/src/lib/forms/form-field/form-field-text-shell-styles.component.css +312 -0
  88. package/src/lib/forms/form-field/form-field-textarea-styles.component.css +32 -0
  89. package/src/lib/forms/form-field/form-field.component.css +328 -0
  90. package/src/lib/forms/form-field/form-support-styles.component.css +102 -0
  91. package/src/lib/forms/form-field/headless/label.directive.css +25 -0
  92. package/src/lib/forms/form-field/hint.component.css +20 -0
  93. package/src/lib/forms/input/input.component.css +49 -0
  94. package/src/lib/forms/input/number-input.component.css +128 -0
  95. package/src/lib/forms/input/password-input.component.css +103 -0
  96. package/src/lib/forms/multi-language-rich-text-editor/multi-language-rich-text-editor.component.css +8 -0
  97. package/src/lib/forms/multi-language-rich-text-editor/tools/multi-language-rich-text-editor-language-tool.component.css +104 -0
  98. package/src/lib/forms/otp-input/otp-input.component.css +194 -0
  99. package/src/lib/forms/phone-input/phone-input.component.css +126 -0
  100. package/src/lib/forms/rating/rating.component.css +197 -0
  101. package/src/lib/forms/rich-text-editor/rich-text-content-styles.component.css +234 -0
  102. package/src/lib/forms/rich-text-editor/rich-text-editor-floating-toolbar.component.css +90 -0
  103. package/src/lib/forms/rich-text-editor/rich-text-editor-image-editor.component.css +172 -0
  104. package/src/lib/forms/rich-text-editor/rich-text-editor-link-editor.component.css +149 -0
  105. package/src/lib/forms/rich-text-editor/rich-text-editor-token-palette.component.css +18 -0
  106. package/src/lib/forms/rich-text-editor/rich-text-editor-token-popup.component.css +199 -0
  107. package/src/lib/forms/rich-text-editor/rich-text-editor.component.css +175 -0
  108. package/src/lib/forms/rich-text-editor/rich-text-viewer.component.css +6 -0
  109. package/src/lib/forms/rich-text-editor/tools/rich-text-editor-align-tool.component.css +5 -0
  110. package/src/lib/forms/rich-text-editor/tools/rich-text-editor-heading-tool.component.css +5 -0
  111. package/src/lib/forms/rich-text-editor/tools/rich-text-editor-image-styles.component.css +109 -0
  112. package/src/lib/forms/rich-text-editor/tools/rich-text-editor-table-styles.component.css +21 -0
  113. package/src/lib/forms/rich-text-editor/tools/rich-text-editor-table-tool.component.css +44 -0
  114. package/src/lib/forms/select/select-all-option.component.css +14 -0
  115. package/src/lib/forms/select/select-extras-styles.component.css +143 -0
  116. package/src/lib/forms/select/select-option-group.component.css +35 -0
  117. package/src/lib/forms/select/select-option-styles.component.css +137 -0
  118. package/src/lib/forms/select/select-panel.component.css +112 -0
  119. package/src/lib/forms/select/select.component.css +180 -0
  120. package/src/lib/forms/selection-card-styles.component.css +136 -0
  121. package/src/lib/forms/selection-list/checkbox-group/checkbox-group-select-all.component.css +89 -0
  122. package/src/lib/forms/selection-list/checkbox-group/checkbox-group.component.css +142 -0
  123. package/src/lib/forms/selection-list/checkbox-group/checkbox-option.component.css +153 -0
  124. package/src/lib/forms/selection-list/radio-group/radio-group.component.css +134 -0
  125. package/src/lib/forms/selection-list/radio-group/radio.component.css +137 -0
  126. package/src/lib/forms/selection-list/segmented-button-group/segmented-button-group.component.css +149 -0
  127. package/src/lib/forms/selection-list/segmented-button-group/segmented-button.component.css +180 -0
  128. package/src/lib/forms/slider/range-slider.component.css +348 -0
  129. package/src/lib/forms/slider/slider.component.css +342 -0
  130. package/src/lib/forms/switch/switch.component.css +187 -0
  131. package/src/lib/forms/tag-input/tag-input.component.css +54 -0
  132. package/src/lib/forms/textarea/textarea-autosize-styles.component.css +17 -0
  133. package/src/lib/forms/textarea/textarea.component.css +40 -0
  134. package/src/lib/grid/grid-debug.component.css +130 -0
  135. package/src/lib/grid/grid-item-default-actions.component.css +11 -0
  136. package/src/lib/grid/grid-item.component.css +172 -0
  137. package/src/lib/grid/grid.component.css +56 -0
  138. package/src/lib/icon/headless/icon-styles.component.css +7 -0
  139. package/src/lib/kbd/kbd.component.css +62 -0
  140. package/src/lib/loader/brand-loader/brand-loader.component.css +130 -0
  141. package/src/lib/loader/progress-bar/progress-bar.component.css +176 -0
  142. package/src/lib/loader/spinner/spinner.component.css +216 -0
  143. package/src/lib/masonry/masonry-styles.component.css +84 -0
  144. package/src/lib/match/match-card.component.css +441 -0
  145. package/src/lib/match/match-participant.component.css +137 -0
  146. package/src/lib/match/match-score.component.css +74 -0
  147. package/src/lib/menu/menu-group-label.component.css +12 -0
  148. package/src/lib/menu/menu-item-shortcut.component.css +10 -0
  149. package/src/lib/menu/menu-item-submenu-icon.component.css +18 -0
  150. package/src/lib/menu/menu-item.component.css +32 -0
  151. package/src/lib/menu/menu-search-styles.component.css +56 -0
  152. package/src/lib/menu/menu-selection-item.component.css +88 -0
  153. package/src/lib/menu/menu-separator.component.css +9 -0
  154. package/src/lib/menu/menu.component.css +296 -0
  155. package/src/lib/notification/notification-stack.component.css +114 -0
  156. package/src/lib/notification/notification.component.css +271 -0
  157. package/src/lib/overlay/alert-dialog/alert-dialog.component.css +45 -0
  158. package/src/lib/overlay/floating-panel-styles.component.css +71 -0
  159. package/src/lib/overlay/floating-tip-styles.component.css +78 -0
  160. package/src/lib/overlay/overlay-container.component.css +167 -0
  161. package/src/lib/overlay/overlay-main-styles.component.css +105 -0
  162. package/src/lib/overlay/overlay-template-host.component.css +7 -0
  163. package/src/lib/overlay/routing/overlay-route-header-template-outlet.component.css +36 -0
  164. package/src/lib/overlay/routing/overlay-router-outlet.component.css +207 -0
  165. package/src/lib/overlay/routing/overlay-shared-route-template-outlet.component.css +5 -0
  166. package/src/lib/overlay/sidebar/overlay-sidebar.component.css +16 -0
  167. package/src/lib/overlay/strategies/anchored-dialog-styles.component.css +51 -0
  168. package/src/lib/overlay/strategies/dialog-styles.component.css +50 -0
  169. package/src/lib/overlay/strategies/full-screen-dialog-styles.component.css +83 -0
  170. package/src/lib/overlay/strategies/overlay-arrow-styles.component.css +112 -0
  171. package/src/lib/overlay/strategies/overlay-origin-clone.component.css +63 -0
  172. package/src/lib/overlay/strategies/sheet-styles.component.css +143 -0
  173. package/src/lib/pagination/page-size-select.component.css +102 -0
  174. package/src/lib/pagination/pagination.component.css +192 -0
  175. package/src/lib/picture/picture.component.css +66 -0
  176. package/src/lib/progress-steps/progress-step.component.css +187 -0
  177. package/src/lib/progress-steps/progress-steps.component.css +26 -0
  178. package/src/lib/query-error/query-error.component.css +21 -0
  179. package/src/lib/scheduler/scheduler-agenda-view.component.css +97 -0
  180. package/src/lib/scheduler/scheduler-appointment-drag-styles.component.css +56 -0
  181. package/src/lib/scheduler/scheduler-appointment-styles.component.css +111 -0
  182. package/src/lib/scheduler/scheduler-edit-color.component.css +16 -0
  183. package/src/lib/scheduler/scheduler-edit-surface-actions.component.css +14 -0
  184. package/src/lib/scheduler/scheduler-edit-surface-breadcrumb.component.css +26 -0
  185. package/src/lib/scheduler/scheduler-edit-surface-children.component.css +57 -0
  186. package/src/lib/scheduler/scheduler-edit-surface-fields.component.css +11 -0
  187. package/src/lib/scheduler/scheduler-edit-surface-footer.component.css +7 -0
  188. package/src/lib/scheduler/scheduler-edit-surface-header.component.css +15 -0
  189. package/src/lib/scheduler/scheduler-edit-time-range.component.css +11 -0
  190. package/src/lib/scheduler/scheduler-month-view.component.css +143 -0
  191. package/src/lib/scheduler/scheduler-time-grid-view.component.css +260 -0
  192. package/src/lib/scheduler/scheduler.component.css +87 -0
  193. package/src/lib/scrollable/headless/scrollable-buttons.component.css +122 -0
  194. package/src/lib/scrollable/headless/scrollable-footer.css +25 -0
  195. package/src/lib/scrollable/headless/scrollable-masks.component.css +112 -0
  196. package/src/lib/scrollable/headless/scrollable-navigation.component.css +94 -0
  197. package/src/lib/scrollable/scrollable.component.css +192 -0
  198. package/src/lib/scrollbar/scrollbar.component.css +110 -0
  199. package/src/lib/skeleton/skeleton.component.css +108 -0
  200. package/src/lib/standings/standings-pick.component.css +172 -0
  201. package/src/lib/standings/standings.component.css +201 -0
  202. package/src/lib/stat-tile/stat-tile-sparkline.component.css +49 -0
  203. package/src/lib/stat-tile/stat-tile.component.css +111 -0
  204. package/src/lib/stream/pip/pip-chrome.component.css +96 -0
  205. package/src/lib/stream/pip/pip-player.component.css +40 -0
  206. package/src/lib/stream/pip/pip-window.component.css +222 -0
  207. package/src/lib/stream/stream-manager-styles.component.css +10 -0
  208. package/src/lib/stream/stream-overlay-card-styles.component.css +43 -0
  209. package/src/lib/stream/stream-player-slot-styles.component.css +14 -0
  210. package/src/lib/table/table-column-chooser.component.css +17 -0
  211. package/src/lib/table/table-column-menu-trigger.component.css +31 -0
  212. package/src/lib/table/table-detail-styles.component.css +103 -0
  213. package/src/lib/table/table-drag-scroll-styles.component.css +18 -0
  214. package/src/lib/table/table-expander-cell.component.css +58 -0
  215. package/src/lib/table/table-filter-trigger.component.css +44 -0
  216. package/src/lib/table/table-group-header-row.component.css +38 -0
  217. package/src/lib/table/table-inline-edit-styles.component.css +20 -0
  218. package/src/lib/table/table-page-sticky-header-styles.component.css +77 -0
  219. package/src/lib/table/table-reorder-overlay.component.css +42 -0
  220. package/src/lib/table/table-resize-grip.component.css +65 -0
  221. package/src/lib/table/table-row-box-styles.component.css +260 -0
  222. package/src/lib/table/table-select-cell.component.css +89 -0
  223. package/src/lib/table/table-skeleton-rows.component.css +19 -0
  224. package/src/lib/table/table-sort-priority-styles.component.css +15 -0
  225. package/src/lib/table/table-sticky-columns-styles.component.css +80 -0
  226. package/src/lib/table/table-virtual-scroll-styles.component.css +9 -0
  227. package/src/lib/table/table.component.css +829 -0
  228. package/src/lib/tabs/nav-tabs/nav-tab-link-styles.component.css +33 -0
  229. package/src/lib/tabs/tab-bar-styles.component.css +173 -0
  230. package/src/lib/tabs/tab-scale-styles.component.css +61 -0
  231. package/src/lib/time-picker/time-picker.component.css +220 -0
  232. package/src/lib/timeline/timeline-item.component.css +116 -0
  233. package/src/lib/timeline/timeline.component.css +7 -0
  234. package/src/lib/toggletip/toggletip.component.css +83 -0
  235. package/src/lib/toolbar/toolbar.component.css +40 -0
  236. package/src/lib/tooltip/tooltip.component.css +64 -0
  237. package/src/lib/tree/tree.component.css +221 -0
  238. package/types/ethlete-components-testing.d.ts +1 -1
  239. package/types/ethlete-components.d.ts +275 -36
@@ -0,0 +1,105 @@
1
+ @layer components {
2
+ .et-overlay-main {
3
+ display: grid;
4
+ grid-template-columns: minmax(0, 1fr);
5
+ grid-template-rows: minmax(0, 1fr);
6
+ overflow: auto;
7
+
8
+ &:has(.et-overlay-header):has(.et-overlay-body):has(.et-overlay-footer) {
9
+ grid-template-rows: auto minmax(var(--et-overlay-body-min-block-size), 1fr) auto;
10
+ }
11
+
12
+ &:has(.et-overlay-header):has(.et-overlay-body) {
13
+ grid-template-rows: auto minmax(var(--et-overlay-body-min-block-size), 1fr);
14
+ }
15
+
16
+ &:has(.et-overlay-body):has(.et-overlay-footer) {
17
+ grid-template-rows: minmax(var(--et-overlay-body-min-block-size), 1fr) auto;
18
+ }
19
+
20
+ &:not(:has(.et-overlay-footer)) {
21
+ grid-template-rows: minmax(var(--et-overlay-body-min-block-size), 1fr) auto;
22
+ }
23
+ }
24
+
25
+ .et-overlay-body {
26
+ display: grid;
27
+ overflow: auto;
28
+
29
+ /* Scrolling to either end stays in the overlay: without this, the leftover momentum scrolls the
30
+ page behind the backdrop, and on a sheet it competes with the drag-to-dismiss gesture. */
31
+ overscroll-behavior: contain;
32
+ padding-inline: var(--et-overlay-padding-inline);
33
+ grid-template-columns: minmax(0, 1fr);
34
+ grid-auto-rows: minmax(0, 1fr);
35
+
36
+ &.et-overlay-body--enable-divider-animations {
37
+ transition: border-color 300ms var(--ease-1);
38
+ }
39
+
40
+ &.et-overlay-body--render-dividers {
41
+ .et-overlay-main:has(.et-overlay-header) & {
42
+ border-block-start: 1px solid var(--et-overlay-body-divider-color);
43
+ }
44
+
45
+ .et-overlay-main:has(.et-overlay-footer) & {
46
+ border-block-end: 1px solid var(--et-overlay-body-divider-color);
47
+ }
48
+
49
+ &.et-overlay-body--dynamic-dividers {
50
+ border-color: var(--et-overlay-body-divider-color);
51
+
52
+ &.et-scrollable-body--is-at-start {
53
+ border-block-start-color: transparent;
54
+ }
55
+
56
+ &.et-scrollable-body--is-at-end {
57
+ border-block-end-color: transparent;
58
+ }
59
+ }
60
+ }
61
+
62
+ .et-overlay-body-container {
63
+ position: relative;
64
+ min-block-size: min-content;
65
+
66
+ /* The body's block padding lives on this container, not on the scroll container itself. The body
67
+ lays the container out in a `minmax(0, 1fr)` row, so content taller than the overlay overflows
68
+ that row — and a scroll container's own padding-block-end does not extend the scrollable area
69
+ past an overflowing item, it just gets painted underneath it. Consumers setting
70
+ `--et-overlay-body-padding-block` would see the padding in devtools while scrolling still ended
71
+ flush on the last child, clipping its border and focus ring. The container's padding is part of
72
+ the box the scrollable overflow is measured from, so the space is really reachable. */
73
+ padding-block: var(--et-overlay-body-padding-block);
74
+
75
+ .et-overlay-body-start-element,
76
+ .et-overlay-body-end-element {
77
+ position: absolute;
78
+ block-size: 1px;
79
+ pointer-events: none;
80
+ }
81
+
82
+ .et-overlay-body-start-element {
83
+ inset-inline: 1px;
84
+ inset-block-start: 1px;
85
+ }
86
+
87
+ .et-overlay-body-end-element {
88
+ inset-inline: 1px;
89
+ inset-block-end: 1px;
90
+ }
91
+ }
92
+ }
93
+
94
+ .et-overlay-header {
95
+ padding-block-start: var(--et-overlay-padding-block);
96
+ padding-inline: var(--et-overlay-padding-inline);
97
+ padding-block-end: var(--et-overlay-header-padding-block-end);
98
+ }
99
+
100
+ .et-overlay-footer {
101
+ padding-block-end: var(--et-overlay-padding-block);
102
+ padding-inline: var(--et-overlay-padding-inline);
103
+ padding-block-start: var(--et-overlay-footer-padding-block-start);
104
+ }
105
+ }
@@ -0,0 +1,7 @@
1
+ @layer components {
2
+ .et-overlay-template-host {
3
+ display: block;
4
+ max-width: min(var(--et-overlay-max-width, 100vw), 100%);
5
+ max-height: var(--et-overlay-max-height, 100vh);
6
+ }
7
+ }
@@ -0,0 +1,36 @@
1
+ @layer components {
2
+ .et-overlay-route-header-template-outlet-host {
3
+ --_et-overlay-router-transition-easing: var(--ease-in-out-5);
4
+ }
5
+
6
+ .et-overlay-route-header-template-outlet {
7
+ display: grid;
8
+ grid-template-columns: minmax(0, 1fr);
9
+ grid-template-rows: minmax(0, 1fr);
10
+ overflow-x: hidden;
11
+ }
12
+
13
+ .et-overlay-route-header-template-outlet-item {
14
+ grid-area: 1 / 1 / 2 / 2;
15
+ pointer-events: none;
16
+
17
+ > * {
18
+ pointer-events: auto;
19
+ }
20
+
21
+ &.et-animation-enter-from {
22
+ opacity: 0;
23
+ }
24
+
25
+ &.et-animation-leave-to {
26
+ opacity: 0;
27
+ }
28
+
29
+ &.et-animation-enter-active,
30
+ &.et-animation-leave-active {
31
+ transition:
32
+ transform 300ms var(--_et-overlay-router-transition-easing),
33
+ opacity 300ms var(--_et-overlay-router-transition-easing);
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,207 @@
1
+ @layer components {
2
+ .et-overlay-router-outlet-host {
3
+ --_et-overlay-router-transition-easing: var(--ease-in-out-4);
4
+
5
+ display: block;
6
+ block-size: 100%;
7
+
8
+ &.et-overlay-router-outlet-transition--none {
9
+ .et-overlay-router-outlet-page {
10
+ &.et-animation-enter-from,
11
+ &.et-animation-leave-to {
12
+ opacity: 0;
13
+ }
14
+
15
+ &.et-animation-enter-active,
16
+ &.et-animation-leave-active {
17
+ transition: opacity 0ms linear;
18
+ }
19
+ }
20
+ }
21
+
22
+ &.et-overlay-router-outlet-transition--fade {
23
+ .et-overlay-router-outlet-page {
24
+ &.et-animation-enter-from {
25
+ opacity: 0;
26
+ }
27
+
28
+ &.et-animation-leave-to {
29
+ opacity: 0;
30
+ }
31
+
32
+ &.et-animation-enter-active,
33
+ &.et-animation-leave-active {
34
+ transition: opacity 100ms linear;
35
+ }
36
+ }
37
+ }
38
+
39
+ &.et-overlay-router-outlet-transition--slide {
40
+ --_et-overlay-router-transform-from: translateX(100%);
41
+ --_et-overlay-router-transform-to: translateX(-100%);
42
+
43
+ &.et-overlay-router-outlet-nav-dir--backward {
44
+ --_et-overlay-router-transform-from: translateX(-100%);
45
+ --_et-overlay-router-transform-to: translateX(100%);
46
+ }
47
+
48
+ .et-overlay-router-outlet-page {
49
+ &.et-animation-enter-from {
50
+ transform: var(--_et-overlay-router-transform-from);
51
+ opacity: 0;
52
+ }
53
+
54
+ &.et-animation-leave-to {
55
+ transform: var(--_et-overlay-router-transform-to);
56
+ opacity: 0;
57
+ }
58
+
59
+ &.et-animation-enter-active,
60
+ &.et-animation-leave-active {
61
+ transition:
62
+ transform 300ms var(--_et-overlay-router-transition-easing),
63
+ opacity 300ms var(--_et-overlay-router-transition-easing);
64
+ }
65
+ }
66
+ }
67
+
68
+ &.et-overlay-router-outlet-transition--overlay {
69
+ --_et-overlay-router-transform-from: translateX(100%);
70
+ --_et-overlay-router-transform-to: translateX(-20%);
71
+ --_et-overlay-router-out-page-brightness: 0.8;
72
+
73
+ &.et-overlay-router-outlet-nav-dir--backward {
74
+ --_et-overlay-router-transform-from: translateX(-20%);
75
+ --_et-overlay-router-transform-to: translateX(100%);
76
+
77
+ .et-overlay-router-outlet-page {
78
+ &.et-animation-enter-from {
79
+ filter: brightness(var(--_et-overlay-router-out-page-brightness));
80
+ }
81
+ &.et-animation-leave-to {
82
+ filter: brightness(1);
83
+ }
84
+ &.et-animation-enter-active {
85
+ z-index: 0;
86
+ }
87
+
88
+ &.et-animation-leave-active {
89
+ z-index: 1;
90
+ }
91
+ }
92
+ }
93
+
94
+ .et-overlay-router-outlet-page {
95
+ &.et-animation-enter-from {
96
+ transform: var(--_et-overlay-router-transform-from);
97
+ }
98
+
99
+ &.et-animation-leave-to {
100
+ filter: brightness(var(--_et-overlay-router-out-page-brightness));
101
+ transform: var(--_et-overlay-router-transform-to);
102
+ }
103
+
104
+ &.et-animation-enter-active {
105
+ z-index: 1;
106
+ }
107
+
108
+ &.et-animation-enter-active,
109
+ &.et-animation-leave-active {
110
+ transition:
111
+ transform 225ms var(--_et-overlay-router-transition-easing),
112
+ filter 225ms var(--_et-overlay-router-transition-easing);
113
+ }
114
+ }
115
+ }
116
+
117
+ &.et-overlay-router-outlet-transition--vertical {
118
+ --_et-overlay-router-transform-from: translateY(20%);
119
+ --_et-overlay-router-transform-to: translateY(-20%);
120
+ --_et-overlay-router-out-page-brightness: 0.8;
121
+
122
+ &.et-overlay-router-outlet-nav-dir--backward {
123
+ --_et-overlay-router-transform-from: translateY(-20%);
124
+ --_et-overlay-router-transform-to: translateY(20%);
125
+
126
+ .et-overlay-router-outlet-page {
127
+ &.et-animation-enter-from {
128
+ filter: brightness(var(--_et-overlay-router-out-page-brightness));
129
+ }
130
+ &.et-animation-leave-to {
131
+ filter: brightness(1);
132
+ }
133
+ &.et-animation-enter-active {
134
+ z-index: 0;
135
+ }
136
+
137
+ &.et-animation-leave-active {
138
+ z-index: 1;
139
+ }
140
+ }
141
+ }
142
+
143
+ .et-overlay-router-outlet-page {
144
+ &.et-animation-enter-from {
145
+ transform: var(--_et-overlay-router-transform-from);
146
+ opacity: 0;
147
+ }
148
+
149
+ &.et-animation-leave-to {
150
+ filter: brightness(var(--_et-overlay-router-out-page-brightness));
151
+ transform: var(--_et-overlay-router-transform-to);
152
+ opacity: 0;
153
+ }
154
+
155
+ &.et-animation-enter-active {
156
+ z-index: 1;
157
+ }
158
+
159
+ &.et-animation-enter-active,
160
+ &.et-animation-leave-active {
161
+ transition:
162
+ transform 225ms var(--_et-overlay-router-transition-easing),
163
+ filter 225ms var(--_et-overlay-router-transition-easing),
164
+ opacity 225ms var(--_et-overlay-router-transition-easing);
165
+ }
166
+ }
167
+ }
168
+ }
169
+
170
+ .et-overlay-router-outlet {
171
+ display: grid;
172
+ grid-template-columns: minmax(0, 1fr);
173
+ grid-template-rows: minmax(0, 1fr);
174
+ block-size: 100%;
175
+ overflow: hidden;
176
+ }
177
+
178
+ .et-overlay-router-outlet-page {
179
+ grid-area: 1 / 1 / 2 / 2;
180
+ pointer-events: none;
181
+ overflow: hidden auto;
182
+ outline: none;
183
+
184
+ &:not(:empty) {
185
+ background-color: var(
186
+ --et-overlay-router-outlet-page-background,
187
+ var(--_et-overlay-router-outlet-page-background, transparent)
188
+ );
189
+ }
190
+
191
+ > * {
192
+ pointer-events: auto;
193
+ }
194
+
195
+ &.et-overlay-router-outlet-page--active:not(:empty) {
196
+ pointer-events: auto;
197
+ }
198
+
199
+ > .et-overlay-main {
200
+ block-size: 100%;
201
+ }
202
+ }
203
+
204
+ .et-overlay-router-outlet-disabled-page {
205
+ position: relative;
206
+ }
207
+ }
@@ -0,0 +1,5 @@
1
+ @layer components {
2
+ .et-overlay-shared-route-template-outlet-host {
3
+ display: contents;
4
+ }
5
+ }
@@ -0,0 +1,16 @@
1
+ @layer components {
2
+ .et-overlay-sidebar-host {
3
+ display: none;
4
+ }
5
+
6
+ .et-overlay-sidebar-host.et-overlay-sidebar--visible {
7
+ display: flex;
8
+ flex-direction: column;
9
+ inline-size: var(--et-overlay-sidebar-inline-size, 240px);
10
+ padding-block: var(--et-overlay-padding-block);
11
+ padding-inline: var(--et-overlay-padding-inline);
12
+ border-inline-end: 1px solid var(--et-overlay-body-divider-color);
13
+ overflow-y: auto;
14
+ overscroll-behavior: contain;
15
+ }
16
+ }
@@ -0,0 +1,51 @@
1
+ @layer components {
2
+ .et-overlay.et-with-default-animation {
3
+ &.et-overlay--anchored-dialog {
4
+ /* composes the floating-ui anchor position, which the position strategy writes as custom properties */
5
+ &.et-animation-enter-from {
6
+ transform: translate3d(var(--et-overlay-anchored-x, 0px), var(--et-overlay-anchored-y, 0px), 0) scale(0.85) !important;
7
+ opacity: 0;
8
+ }
9
+
10
+ &.et-animation-leave-to {
11
+ transform: translate3d(var(--et-overlay-anchored-x, 0px), var(--et-overlay-anchored-y, 0px), 0) scale(0.7) !important;
12
+ opacity: 0;
13
+ }
14
+
15
+ &.et-animation-enter-active {
16
+ transition:
17
+ transform 300ms var(--ease-out-5),
18
+ opacity 300ms var(--ease-out-5);
19
+
20
+ @supports (transition-timing-function: linear(0, 1)) {
21
+ transition:
22
+ transform 300ms var(--ease-spring-2),
23
+ opacity 300ms var(--ease-out-5);
24
+ }
25
+ }
26
+
27
+ &.et-animation-leave-active {
28
+ transition:
29
+ transform 150ms var(--ease-out-5),
30
+ opacity 150ms var(--ease-out-5);
31
+ }
32
+ }
33
+ }
34
+
35
+ @media (prefers-reduced-motion: reduce) {
36
+ .et-overlay.et-with-default-animation.et-overlay--anchored-dialog {
37
+ &.et-animation-enter-active {
38
+ transition: opacity 300ms var(--ease-out-5);
39
+ }
40
+
41
+ &.et-animation-leave-active {
42
+ transition: opacity 150ms var(--ease-out-5);
43
+ }
44
+
45
+ &.et-animation-enter-from,
46
+ &.et-animation-leave-to {
47
+ transform: translate3d(var(--et-overlay-anchored-x, 0px), var(--et-overlay-anchored-y, 0px), 0) !important;
48
+ }
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,50 @@
1
+ @layer components {
2
+ .et-overlay.et-with-default-animation {
3
+ &.et-overlay--dialog {
4
+ &.et-animation-enter-from {
5
+ opacity: 0 !important;
6
+ transform: scale(0.85) !important;
7
+ }
8
+
9
+ &.et-animation-leave-to {
10
+ opacity: 0 !important;
11
+ transform: scale(0.7) !important;
12
+ }
13
+
14
+ &.et-animation-enter-active {
15
+ transition:
16
+ transform 300ms var(--ease-out-5),
17
+ opacity 300ms var(--ease-out-5);
18
+
19
+ @supports (transition-timing-function: linear(0, 1)) {
20
+ transition:
21
+ transform 300ms var(--ease-spring-2),
22
+ opacity 300ms var(--ease-out-5);
23
+ }
24
+ }
25
+
26
+ &.et-animation-leave-active {
27
+ transition:
28
+ transform 150ms var(--ease-out-5),
29
+ opacity 150ms var(--ease-out-5);
30
+ }
31
+ }
32
+ }
33
+
34
+ @media (prefers-reduced-motion: reduce) {
35
+ .et-overlay.et-with-default-animation.et-overlay--dialog {
36
+ &.et-animation-enter-active {
37
+ transition: opacity 300ms var(--ease-out-5);
38
+ }
39
+
40
+ &.et-animation-leave-active {
41
+ transition: opacity 150ms var(--ease-out-5);
42
+ }
43
+
44
+ &.et-animation-enter-from,
45
+ &.et-animation-leave-to {
46
+ transform: none !important;
47
+ }
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,83 @@
1
+ @layer components {
2
+ .et-overlay.et-with-default-animation {
3
+ &.et-overlay--full-screen-dialog {
4
+ &.et-animation-enter-from,
5
+ &.et-animation-leave-to {
6
+ transform: translate(var(--origin-translate-x, 0), var(--origin-translate-y, 0))
7
+ scale(var(--origin-scale-x, 0), var(--origin-scale-y, 0)) !important;
8
+ border-radius: min(250px, calc(var(--origin-width, 0px) / 2), calc(var(--origin-height, 0px) / 2));
9
+ opacity: 0;
10
+ }
11
+
12
+ &.et-animation-enter-active {
13
+ transition:
14
+ transform 400ms var(--ease-out-5),
15
+ border-radius 400ms var(--ease-out-5),
16
+ opacity 150ms linear;
17
+
18
+ @supports (transition-timing-function: linear(0, 1)) {
19
+ transition:
20
+ transform 400ms var(--ease-spring-1),
21
+ border-radius 400ms var(--ease-spring-1),
22
+ opacity 150ms linear;
23
+ }
24
+ }
25
+
26
+ &.et-animation-leave-active {
27
+ transition:
28
+ transform 300ms var(--ease-in-out-5),
29
+ border-radius 300ms var(--ease-in-out-5),
30
+ opacity 150ms linear 100ms;
31
+ }
32
+
33
+ &.et-overlay--full-screen-dialog--reduced-animation {
34
+ &.et-animation-enter-active {
35
+ transition:
36
+ transform 300ms var(--ease-out-5),
37
+ border-radius 300ms var(--ease-out-5),
38
+ opacity 150ms linear;
39
+
40
+ @supports (transition-timing-function: linear(0, 1)) {
41
+ transition:
42
+ transform 300ms var(--ease-spring-2),
43
+ opacity 300ms var(--ease-out-5),
44
+ border-radius 300ms var(--ease-spring-2);
45
+ }
46
+ }
47
+
48
+ &.et-animation-leave-active {
49
+ transition:
50
+ transform 150ms var(--ease-in-5),
51
+ border-radius 150ms var(--ease-in-5),
52
+ opacity 150ms var(--ease-in-5);
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ @media (prefers-reduced-motion: reduce) {
59
+ .et-overlay.et-with-default-animation.et-overlay--full-screen-dialog {
60
+ &.et-animation-enter-active {
61
+ transition: opacity 150ms linear;
62
+ }
63
+
64
+ &.et-animation-leave-active {
65
+ transition: opacity 150ms linear 100ms;
66
+ }
67
+
68
+ &.et-overlay--full-screen-dialog--reduced-animation.et-animation-enter-active {
69
+ transition: opacity 150ms linear;
70
+ }
71
+
72
+ &.et-overlay--full-screen-dialog--reduced-animation.et-animation-leave-active {
73
+ transition: opacity 150ms var(--ease-in-5);
74
+ }
75
+
76
+ &.et-animation-enter-from,
77
+ &.et-animation-leave-to {
78
+ transform: none !important;
79
+ border-radius: 0;
80
+ }
81
+ }
82
+ }
83
+ }
@@ -0,0 +1,112 @@
1
+ @layer components {
2
+ .et-overlay:has(> .et-overlay-arrow) {
3
+ overflow: visible;
4
+ }
5
+
6
+ .et-overlay-arrow {
7
+ /* The arrow is painted by rotating a square 45° (see `::before`), so what actually meets the pane
8
+ edge is that square's *diagonal* — the base of the triangle. The diagonal is the primary token
9
+ because it is also the size of this element's box, and floating-ui's arrow middleware measures the
10
+ box when it keeps `arrowPadding` clear of the pane's corners: sized to the square instead, every
11
+ consumer's padding would be ~3px optimistic and the base would ride into a rounded corner. The
12
+ square is derived from it (diagonal / √2), so the base and the arrow's height stay whole pixels. */
13
+ --_et-overlay-arrow-base: 20px;
14
+ --_et-overlay-arrow-size: calc(var(--_et-overlay-arrow-base) / 1.4142136);
15
+ /* Half the box hangs off the pane, so the rotated square's two widest corners land exactly on the
16
+ pane's edge — that is where its bordered sides have to end for the pane's own border line to carry
17
+ on from them. Any deeper and the sides stop short of that line, leaving an unbordered wedge at the
18
+ base of the arrow (which is what this used to do by adding the border width here). */
19
+ --_et-overlay-arrow-overlap: calc(var(--_et-overlay-arrow-base) / 2);
20
+ --_et-overlay-arrow-border-width: var(--_et-overlay-arrow-pane-border-width, 1px);
21
+ /* priority: explicit override → measured pane border → surface theme → static fallback,
22
+ so any anchored overlay (menu, tooltip, toggletip, or a bare arrow overlay) gets a
23
+ themed arrow border without repeating this per component */
24
+ --_et-overlay-arrow-border-color: var(
25
+ --et-overlay-arrow-border,
26
+ var(--_et-overlay-arrow-pane-border-color, var(--et-surface-border-solid, rgb(255 255 255 / 0.1)))
27
+ );
28
+ /* Cut the arrow off at the *inner* edge of the pane's border: everything below the widest corners is
29
+ unbordered silhouette, and the only part of it worth keeping is the sliver that covers the pane's
30
+ border line where the arrow sits on it — without which that line draws straight through the base. */
31
+ --_et-overlay-arrow-clip: calc(var(--_et-overlay-arrow-base) / 2 - var(--_et-overlay-arrow-pane-border-width, 0px));
32
+
33
+ /* priority mirrors the border chain: explicit override → measured pane background →
34
+ surface theme → static fallback, so the arrow paints whatever the pane actually
35
+ renders (custom panelClass, themed pane) instead of re-deriving a possibly-divergent color */
36
+ --_et-overlay-arrow-fill: var(
37
+ --et-overlay-arrow-background,
38
+ var(--_et-overlay-arrow-pane-background, var(--et-surface-background-solid, rgb(32 32 32)))
39
+ );
40
+
41
+ position: absolute;
42
+ z-index: 1;
43
+ inline-size: var(--_et-overlay-arrow-base);
44
+ block-size: var(--_et-overlay-arrow-base);
45
+ transform: var(--et-floating-arrow-translate, translate3d(0, 0, 0));
46
+ pointer-events: none;
47
+
48
+ &::before {
49
+ content: '';
50
+ /* the square that becomes the arrow, centered in the diagonal-sized box above — via auto margins
51
+ rather than a translate, so it stays centered in both writing directions */
52
+ position: absolute;
53
+ inset: 0;
54
+ margin: auto;
55
+ inline-size: var(--_et-overlay-arrow-size);
56
+ block-size: var(--_et-overlay-arrow-size);
57
+ box-sizing: border-box;
58
+ border-radius: 2px;
59
+ border: 0 solid var(--_et-overlay-arrow-border-color);
60
+ /* Never paint this box through its parent's own `background-color` plus a `visibility`
61
+ inversion: WebKit drops a visible `::before` whose parent is both `visibility: hidden`
62
+ and `clip-path`-clipped, which is every arrow here. */
63
+ background-color: var(--_et-overlay-arrow-fill);
64
+ box-shadow: var(--et-overlay-arrow-shadow, none);
65
+ transform: rotate(45deg);
66
+ }
67
+ }
68
+
69
+ [data-overlay-placement^='top'] > .et-overlay-arrow {
70
+ bottom: calc(var(--_et-overlay-arrow-overlap) * -1);
71
+ left: 0;
72
+ clip-path: inset(var(--_et-overlay-arrow-clip) -100% -100% -100%);
73
+
74
+ &::before {
75
+ border-right-width: var(--_et-overlay-arrow-border-width);
76
+ border-bottom-width: var(--_et-overlay-arrow-border-width);
77
+ }
78
+ }
79
+
80
+ [data-overlay-placement^='right'] > .et-overlay-arrow {
81
+ left: calc(var(--_et-overlay-arrow-overlap) * -1);
82
+ top: 0;
83
+ clip-path: inset(-100% var(--_et-overlay-arrow-clip) -100% -100%);
84
+
85
+ &::before {
86
+ border-bottom-width: var(--_et-overlay-arrow-border-width);
87
+ border-left-width: var(--_et-overlay-arrow-border-width);
88
+ }
89
+ }
90
+
91
+ [data-overlay-placement^='bottom'] > .et-overlay-arrow {
92
+ top: calc(var(--_et-overlay-arrow-overlap) * -1);
93
+ left: 0;
94
+ clip-path: inset(-100% -100% var(--_et-overlay-arrow-clip) -100%);
95
+
96
+ &::before {
97
+ border-top-width: var(--_et-overlay-arrow-border-width);
98
+ border-left-width: var(--_et-overlay-arrow-border-width);
99
+ }
100
+ }
101
+
102
+ [data-overlay-placement^='left'] > .et-overlay-arrow {
103
+ right: calc(var(--_et-overlay-arrow-overlap) * -1);
104
+ top: 0;
105
+ clip-path: inset(-100% -100% -100% var(--_et-overlay-arrow-clip));
106
+
107
+ &::before {
108
+ border-top-width: var(--_et-overlay-arrow-border-width);
109
+ border-right-width: var(--_et-overlay-arrow-border-width);
110
+ }
111
+ }
112
+ }