@the-portland-company/shell 0.70.0 → 0.71.0
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 +9 -0
- package/dist/app-chrome.cjs +19 -17
- package/dist/app-chrome.cjs.map +1 -1
- package/dist/app-chrome.js +3 -3
- package/dist/app-chrome.js.map +1 -1
- package/dist/chrome.css +2 -2
- package/dist/{chunk-CZI66JVG.js → chunk-B2AQL37X.js} +21 -19
- package/dist/chunk-B2AQL37X.js.map +1 -0
- package/dist/native.cjs +18 -16
- package/dist/native.cjs.map +1 -1
- package/dist/native.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-CZI66JVG.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## 0.71.0
|
|
2
|
+
|
|
3
|
+
Rail and top bar match the Specs/Left-Navigation Design.
|
|
4
|
+
- Org card logo band is 70px tall with 10px padding under it, and the org block sits 7px lower.
|
|
5
|
+
- Mode switcher buttons are compact and left-aligned on desktop.
|
|
6
|
+
- Top bar icon buttons have no border.
|
|
7
|
+
- The Dev notes button uses the notebook-pen icon.
|
|
8
|
+
- Footer links are centered and separated by a middle dot.
|
|
9
|
+
|
|
1
10
|
## 0.70.0 — 2026-10-06
|
|
2
11
|
|
|
3
12
|
The top bar and left rail match Specs/Left-Navigation and Reference/UI-Platform.
|
package/dist/app-chrome.cjs
CHANGED
|
@@ -305,7 +305,7 @@ function topBarIconButtonClass(tone = "default") {
|
|
|
305
305
|
const toneClass = tone === "danger" || tone === "warning" ? "text-[color:var(--chrome-danger)] hover:text-[color:var(--chrome-danger)]" : "text-[color:var(--topbar-icon-color,var(--muted))] hover:text-[color:var(--topbar-icon-hover-color,var(--foreground))] hover:bg-[color:var(--topbar-icon-hover-bg,transparent)]";
|
|
306
306
|
return [
|
|
307
307
|
// `group/tbtip` powers the shared <TopBarTooltip> rendered inside the trigger.
|
|
308
|
-
"group/tbtip relative flex items-center justify-center rounded-[var(--topbar-icon-button-radius,5px)] border border-
|
|
308
|
+
"group/tbtip relative flex items-center justify-center rounded-[var(--topbar-icon-button-radius,5px)] border border-transparent transition",
|
|
309
309
|
"h-[var(--topbar-icon-button-size,34px)] w-[var(--topbar-icon-button-size,34px)]",
|
|
310
310
|
toneClass
|
|
311
311
|
].join(" ");
|
|
@@ -2469,7 +2469,7 @@ function NavSidebar({
|
|
|
2469
2469
|
}
|
|
2470
2470
|
),
|
|
2471
2471
|
org ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: rc("max-md:flex max-md:justify-center"), children: [
|
|
2472
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `mb-[7px] flex items-center justify-between ${rc("max-md:hidden")}`, children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: NAV_EYEBROW_CLASS, children: "Organization" }) }),
|
|
2472
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `mb-[7px] mt-[7px] flex items-center justify-between ${rc("max-md:hidden")}`, children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: NAV_EYEBROW_CLASS, children: "Organization" }) }),
|
|
2473
2473
|
org.loading ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex w-full items-center gap-2.5 rounded-md border border-[color:var(--line)] bg-[color:var(--panel-elevated)] px-2.5 py-2 shadow-sm ${rc("max-md:w-auto max-md:border-0 max-md:bg-transparent max-md:p-0 max-md:shadow-none")}`, children: [
|
|
2474
2474
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2475
2475
|
"span",
|
|
@@ -2495,7 +2495,7 @@ function NavSidebar({
|
|
|
2495
2495
|
className: `flex w-full cursor-pointer list-none flex-col overflow-hidden rounded-[5px] border border-[color:var(--sidebar-card-border,var(--sidebar-line,var(--line)))] bg-[color:var(--sidebar-card-bg,var(--panel-elevated))] text-left text-[color:var(--sidebar-text,var(--foreground))] transition hover:bg-[color:var(--sidebar-row-hover-bg,var(--panel))] [&::-webkit-details-marker]:hidden ${rc("max-md:w-auto max-md:items-center max-md:overflow-visible max-md:border-0 max-md:bg-transparent")}`,
|
|
2496
2496
|
children: [
|
|
2497
2497
|
/* @__PURE__ */ jsxRuntime.jsx(OrgIconMark, { org, logoSrc: orgLogoSrc }),
|
|
2498
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: `relative flex h-[var(--sidebar-org-band-height,
|
|
2498
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: `relative flex h-[var(--sidebar-org-band-height,70px)] w-full items-center justify-center bg-[#FFFFFF] px-3 py-[7px] ${rc("max-md:hidden")}`, children: [
|
|
2499
2499
|
orgLogoSrc ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: orgLogoSrc, alt: "", className: "max-h-full max-w-[132px] object-contain" }) : org.canUploadLogo ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2500
2500
|
"a",
|
|
2501
2501
|
{
|
|
@@ -2507,7 +2507,7 @@ function NavSidebar({
|
|
|
2507
2507
|
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm font-semibold text-neutral-800", children: org.name ?? "Organization" }),
|
|
2508
2508
|
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: "absolute inset-x-0 bottom-0 h-[3px]", style: { backgroundImage: orgGradient } })
|
|
2509
2509
|
] }),
|
|
2510
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: `flex w-full min-w-0 items-center justify-between gap-[9px] px-[10px] py-
|
|
2510
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: `flex w-full min-w-0 items-center justify-between gap-[9px] px-[10px] py-[10px] ${rc("max-md:hidden")}`, children: [
|
|
2511
2511
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-col", children: [
|
|
2512
2512
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2513
2513
|
"span",
|
|
@@ -2597,7 +2597,7 @@ function NavSidebar({
|
|
|
2597
2597
|
className: `flex w-full flex-col overflow-hidden rounded-[5px] border border-[color:var(--sidebar-card-border,var(--sidebar-line,var(--line)))] bg-[color:var(--sidebar-card-bg,var(--panel-elevated))] text-left text-[color:var(--sidebar-text,var(--foreground))] transition hover:bg-[color:var(--sidebar-row-hover-bg,var(--panel))] ${rc("max-md:w-auto max-md:items-center max-md:overflow-visible max-md:border-0 max-md:bg-transparent")}`,
|
|
2598
2598
|
children: [
|
|
2599
2599
|
/* @__PURE__ */ jsxRuntime.jsx(OrgIconMark, { org, logoSrc: orgLogoSrc }),
|
|
2600
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: `relative flex h-[var(--sidebar-org-band-height,
|
|
2600
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: `relative flex h-[var(--sidebar-org-band-height,70px)] w-full items-center justify-center bg-[#FFFFFF] px-3 py-[7px] ${rc("max-md:hidden")}`, children: [
|
|
2601
2601
|
orgLogoSrc ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: orgLogoSrc, alt: "", className: "max-h-full max-w-[132px] object-contain" }) : org.canUploadLogo ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2602
2602
|
"a",
|
|
2603
2603
|
{
|
|
@@ -2609,7 +2609,7 @@ function NavSidebar({
|
|
|
2609
2609
|
) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-sm font-semibold text-neutral-800", children: org.name ?? "Organization" }),
|
|
2610
2610
|
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: "absolute inset-x-0 bottom-0 h-[3px]", style: { backgroundImage: orgGradient } })
|
|
2611
2611
|
] }),
|
|
2612
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: `flex w-full min-w-0 items-center justify-between gap-[9px] px-[10px] py-
|
|
2612
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: `flex w-full min-w-0 items-center justify-between gap-[9px] px-[10px] py-[10px] ${rc("max-md:hidden")}`, children: [
|
|
2613
2613
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-col", children: [
|
|
2614
2614
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2615
2615
|
"span",
|
|
@@ -2654,7 +2654,7 @@ function NavSidebar({
|
|
|
2654
2654
|
},
|
|
2655
2655
|
disabled: !available,
|
|
2656
2656
|
className: [
|
|
2657
|
-
|
|
2657
|
+
`flex flex-none items-center justify-center rounded-[5px] px-[9px] py-[6px] transition ${rc("max-md:flex-1")}`,
|
|
2658
2658
|
!available ? "cursor-not-allowed text-[color:var(--sidebar-text-muted,var(--muted))] opacity-35" : selected ? "bg-[color:var(--sidebar-mode-selected-bg,var(--mode-accent,var(--color-accent)))] text-[color:var(--mode-on-accent,white)]" : "text-[color:var(--sidebar-text-muted,var(--muted))] hover:bg-[#FFFFFF]/5 hover:text-[color:var(--sidebar-text,var(--foreground))]"
|
|
2659
2659
|
].join(" "),
|
|
2660
2660
|
children: OptIcon ? /* @__PURE__ */ jsxRuntime.jsx(OptIcon, { size: 15, className: "shrink-0" }) : null
|
|
@@ -2744,15 +2744,17 @@ function NavSidebar({
|
|
|
2744
2744
|
onSignOut: footer.onSignOut
|
|
2745
2745
|
}
|
|
2746
2746
|
) : null,
|
|
2747
|
-
footer.links && footer.links.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex flex-wrap items-center gap-[
|
|
2748
|
-
"
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2747
|
+
footer.links && footer.links.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex flex-wrap items-center justify-center gap-[6px] text-[11px] leading-[1.2] ${footer.user ? "mt-3" : ""} ${rc("max-md:hidden")}`, children: footer.links.map((l, i) => /* @__PURE__ */ jsxRuntime.jsxs(react.Fragment, { children: [
|
|
2748
|
+
i > 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: "text-[color:var(--sidebar-caption,var(--sidebar-text-muted,var(--muted)))]", children: "\xB7" }) : null,
|
|
2749
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2750
|
+
"a",
|
|
2751
|
+
{
|
|
2752
|
+
href: safeHref(l.href),
|
|
2753
|
+
className: "text-[color:var(--sidebar-caption,var(--sidebar-text-muted,var(--muted)))] hover:text-[color:var(--sidebar-text,var(--foreground))] hover:underline",
|
|
2754
|
+
children: l.label
|
|
2755
|
+
}
|
|
2756
|
+
)
|
|
2757
|
+
] }, l.label)) }) : null,
|
|
2756
2758
|
footer.envLabel && footer.envLabel.trim().toLowerCase() !== "production" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2757
2759
|
"div",
|
|
2758
2760
|
{
|
|
@@ -5197,7 +5199,7 @@ function ChromeTopBarActions() {
|
|
|
5197
5199
|
function ChromeDevNotesMenu() {
|
|
5198
5200
|
const { ready, openTasks, activate } = react.useContext(DevNotesTasksContext);
|
|
5199
5201
|
if (!ready) return null;
|
|
5200
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "contents" }, onPointerDownCapture: activate, onFocusCapture: activate, onKeyDownCapture: activate, children: /* @__PURE__ */ jsxRuntime.jsx(devnotes.DevNotesMenu, { position: "top-right", onViewTasks: openTasks }) });
|
|
5202
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "contents" }, onPointerDownCapture: activate, onFocusCapture: activate, onKeyDownCapture: activate, children: /* @__PURE__ */ jsxRuntime.jsx(devnotes.DevNotesMenu, { position: "top-right", icon: lu.LuNotebookPen, onViewTasks: openTasks }) });
|
|
5201
5203
|
}
|
|
5202
5204
|
function useIsSuperAdmin() {
|
|
5203
5205
|
const state = useChromeState();
|