@broberg/app-shell 0.22.1 → 0.22.2
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/README.md +5 -0
- package/css/app-shell.css +6 -0
- package/dist/preact.cjs +9 -6
- package/dist/preact.cjs.map +1 -1
- package/dist/preact.js +9 -6
- package/dist/preact.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -191,6 +191,11 @@ with Enter from a keyboard-focused anchor, or any key in the menu, shows it. ↑
|
|
|
191
191
|
ellipses; the label only once the value is gone. The menu now sizes to its content between 240 and 320px
|
|
192
192
|
(`--bas-menu-min-width` / `--bas-menu-max-width`, never wider than the viewport − 16px) instead of a fixed 240px.
|
|
193
193
|
|
|
194
|
+
**0.22.2** — sidebar user menu (F092.34, scout #2855): when the menu is taller than the space above the button and
|
|
195
|
+
scrolls, only the middle scrolls — the head (name/e-mail) and «Log ud» stay pinned in view. «Log ud» now sits in its
|
|
196
|
+
own `.bas-menu__foot` block. The menu button shows a focus ring only for keyboard focus, also when the app has its
|
|
197
|
+
own global `button:focus` outline.
|
|
198
|
+
|
|
194
199
|
## 0.11.1 — the palette list floats over the menu (F001.25)
|
|
195
200
|
|
|
196
201
|
Christian 10/10: «Kunne denne ikke være en pop-over ting så dialogen ikke bliver
|
package/css/app-shell.css
CHANGED
|
@@ -344,6 +344,9 @@ button.bas-group__label:hover { color: var(--bas-group-label-color, var(--fg-mut
|
|
|
344
344
|
transition: background var(--bas-dur) var(--bas-ease);
|
|
345
345
|
}
|
|
346
346
|
.bas-userbtn:hover, .bas-userbtn.is-open { background: var(--active); }
|
|
347
|
+
/* F092.34 — a ring for keyboard focus only; beats an app's global button:focus rule by specificity. */
|
|
348
|
+
.bas-userbtn:focus:not(:focus-visible) { outline: none; }
|
|
349
|
+
.bas-userbtn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
347
350
|
.bas-userbtn__name { font-size: calc(13px * var(--bas-font-scale, 1)); font-weight: 500; }
|
|
348
351
|
.bas-avatar { border-radius: 50%; object-fit: cover; flex: none; }
|
|
349
352
|
.bas-avatar--initials {
|
|
@@ -551,6 +554,9 @@ button.bas-group__label:hover { color: var(--bas-group-label-color, var(--fg-mut
|
|
|
551
554
|
.bas-sidebar.is-railed .bas-userbtn.is-sidebar { justify-content: center; padding: 6px 0; }
|
|
552
555
|
/* Positioned as position:fixed from the button by the component (the sidebar clips overflow). */
|
|
553
556
|
.bas-menu.is-up { top: auto; right: auto; max-width: none; overflow-y: auto; }
|
|
557
|
+
/* F092.34 — when the sidebar menu scrolls, only the middle does: the head and «Log ud» stay in view. */
|
|
558
|
+
.bas-menu.is-up > .bas-menu__who { position: sticky; top: 0; z-index: 1; background: var(--bg-card); }
|
|
559
|
+
.bas-menu.is-up > .bas-menu__foot { position: sticky; bottom: 0; z-index: 1; background: var(--bg-card); }
|
|
554
560
|
.bas-menu__sub { font-size: calc(12px * var(--bas-font-scale, 1)); color: var(--fg-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
555
561
|
/* F092.27 — the organisation line (menu top only). */
|
|
556
562
|
.bas-menu__org { display: flex; align-items: center; gap: 6px; margin-top: 4px; font-size: calc(13px * var(--bas-font-scale, 1)); color: var(--fg-muted); min-width: 0; }
|
package/dist/preact.cjs
CHANGED
|
@@ -1484,13 +1484,16 @@ function UserMenu(p) {
|
|
|
1484
1484
|
] })
|
|
1485
1485
|
] }) })
|
|
1486
1486
|
] }) : null,
|
|
1487
|
-
p.onSignOut ?
|
|
1488
|
-
|
|
1489
|
-
/* @__PURE__ */ jsxRuntime.jsxs("
|
|
1490
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1491
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1487
|
+
p.onSignOut ? (
|
|
1488
|
+
// F092.34 — its own block, so the sidebar menu can pin it to the bottom while the middle scrolls.
|
|
1489
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { class: "bas-menu__foot", children: [
|
|
1490
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { class: "bas-sep" }),
|
|
1491
|
+
/* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", class: "bas-mi is-danger", role: "menuitem", "data-testid": "topbar-sign-out", disabled: busy, onClick: () => void signOut(), children: [
|
|
1492
|
+
/* @__PURE__ */ jsxRuntime.jsx(IconLogOut, {}),
|
|
1493
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: t.signOut })
|
|
1494
|
+
] })
|
|
1492
1495
|
] })
|
|
1493
|
-
|
|
1496
|
+
) : null
|
|
1494
1497
|
] }) : null
|
|
1495
1498
|
] });
|
|
1496
1499
|
}
|