@trebired/frontend 12.10.0 → 12.10.1

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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,28 @@ All notable changes to `@trebired/frontend` will be documented here.
4
4
 
5
5
  This project follows semantic versioning once published.
6
6
 
7
+ ## 12.10.1
8
+
9
+ ### Fixed
10
+
11
+ - `.card-row[role="button"]` (the select-card layout used by `select()`, e.g. "Empty
12
+ repository" / "Upload or import" / "Clone repository" mode pickers) never showed
13
+ `cursor: pointer` despite being interactive — plain `cursor: auto` throughout. Added
14
+ `cursor: pointer` (and `cursor: not-allowed` for the `aria-disabled="true"` case).
15
+ - The static dropdown's options panel could render far from its trigger when flipped to
16
+ open *above* it, worse the more times the same dropdown was opened/closed. Root cause:
17
+ `.dropdown-list li` uses `content-visibility: auto` (a real perf win for long lists), but
18
+ right after the panel goes from collapsed to measured/shown, the browser doesn't always
19
+ have an up-to-date relevance check yet, so `positionStaticOptions()`'s
20
+ `getBoundingClientRect()` measurement could read a stale/placeholder height instead of
21
+ the option list's true rendered height — worse and inconsistent on repeated opens of the
22
+ same dropdown. The flip-above offset is computed directly from that height, so a wrong
23
+ measurement lands the panel well off from the trigger once flipped, overlapping whatever
24
+ else is on the page above it. Fixed by forcing `content-visibility: visible` on the list
25
+ items specifically while the panel is being measured or is shown (`data-dropdown-measuring`
26
+ / `data-dropdown-show`), leaving `auto` deferral in place for the collapsed/hidden state
27
+ where it doesn't matter because nothing is visible anyway.
28
+
7
29
  ## 12.10.0
8
30
 
9
31
  ### Fixed
@@ -107,6 +107,25 @@
107
107
  contain-intrinsic-height: auto var(--height-input);
108
108
  }
109
109
 
110
+ /**
111
+ * `content-visibility: auto` above defers layout of off-screen options for
112
+ * long lists, using `contain-intrinsic-height` as a placeholder size. Right
113
+ * after the panel goes from collapsed (see the zero-size rule below) to
114
+ * either being measured or shown, the browser hasn't always run the
115
+ * relevance check that would make it lay these out for real yet — so
116
+ * `getBoundingClientRect()` on the panel during `positionStaticOptions()`
117
+ * can read the placeholder-based (wrong, and inconsistent run to run) height
118
+ * instead of the true one, landing the panel far from its trigger once
119
+ * flipped above it. Forcing full layout only while genuinely measuring or
120
+ * shown keeps the (still real, list can be scrolled) auto behavior for the
121
+ * collapsed/hidden state, where it doesn't matter because nothing is visible
122
+ * anyway.
123
+ */
124
+ .options[data-dropdown-portaled="true"][data-dropdown-measuring="true"] .dropdown-list li,
125
+ .options[data-dropdown-portaled="true"][data-dropdown-show="true"] .dropdown-list li {
126
+ content-visibility: visible;
127
+ }
128
+
110
129
  .options[data-dropdown-portaled="true"] .dropdown-list li:hover {
111
130
  background: var(#{ns.css-var("ui-dropdown-option-state-hover-bg")}, var(--background-surface-2, transparent));
112
131
  }
@@ -37,6 +37,14 @@
37
37
  > * {
38
38
  min-width: 0;
39
39
  }
40
+
41
+ &[role="button"] {
42
+ cursor: pointer;
43
+
44
+ &[aria-disabled="true"] {
45
+ cursor: not-allowed;
46
+ }
47
+ }
40
48
  }
41
49
 
42
50
  @media (hover: hover) and (pointer: fine) {
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  }
9
9
  },
10
10
  "name": "@trebired/frontend",
11
- "version": "12.10.0",
11
+ "version": "12.10.1",
12
12
  "description": "Generic browser runtime systems for Trebired frontend packages and applications.",
13
13
  "type": "module",
14
14
  "private": false,