@the-portland-company/shell 0.16.2 → 0.16.4

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/dist/native.d.cts CHANGED
@@ -18,6 +18,13 @@ declare function TopBarTooltip({ title, description, }: {
18
18
  title: string;
19
19
  description?: ReactNode;
20
20
  }): react_jsx_runtime.JSX.Element;
21
+ /**
22
+ * The up-pointing arrow every top-bar panel renders, anchored under its
23
+ * trigger icon (panels are right-aligned, so the arrow sits at the trigger's
24
+ * center: 16px in from the panel's right edge). One definition — every menu
25
+ * points at its own icon identically.
26
+ */
27
+ declare function TopBarPanelArrow(): react_jsx_runtime.JSX.Element;
21
28
  /**
22
29
  * Wrapper for third-party top-bar widgets that ship their own launcher button
23
30
  * (e.g. DevNotes). Normalizes the trigger to the universal 32px circular slot
@@ -264,8 +271,10 @@ declare function NavSidebar({ pathname, brand, nav, org, mode, footer, linkCompo
264
271
  type NavUser = {
265
272
  name: string | null;
266
273
  email?: string | null;
267
- /** Avatar image URL; falls back to initials on the brand color. */
274
+ /** Profile PHOTO url — highest-precedence avatar source. */
268
275
  avatarUrl?: string | null;
276
+ /** Memoji url — used when no photo is set; falls back to initials. */
277
+ memojiUrl?: string | null;
269
278
  tier?: string | null;
270
279
  role?: string | null;
271
280
  };
@@ -390,4 +399,4 @@ type NavAppShellProps = {
390
399
  */
391
400
  declare function NavAppShell({ sidebar, topBar, children }: NavAppShellProps): react_jsx_runtime.JSX.Element;
392
401
 
393
- export { type ChromeNotificationAlert, type ChromeNotificationReply, type ChromeNotificationsPayload, type ChromeOrgSummary, type CommunicationsFuelStatus, FuelAction, type FuelChannelStatus, NavAppShell, type NavAppShellProps, type NavBrand, type NavChromeFetcher, NavChromeProvider, NavDisplayAction, type NavDisplayMode, type NavFooter, type NavFooterLink, type NavIcon, type NavItem, type NavLinkComponent, type NavLinkProps, type NavLinkedAccount, type NavMode, type NavOrg, type NavOrgOption, type NavRoleBadge, NavSidebar, type NavSidebarProps, type NavTab, NavTabStrip, type NavTabStripProps, NavThemeControl, NavTopBar, type NavTopBarAction, type NavTopBarProps, type NavUser, type NavUserMenu, NotificationsAction, type StandardNavIconKey, type StandardNavOptions, SupportAction, type ThemePreference, TopBarCountBadge, TopBarTooltip, TopBarWidgetSlot, envChipClasses, isNavItemActive, standardPolitogyNav, topBarIconButtonClass, useChromeOrgs, useThemePreference };
402
+ export { type ChromeNotificationAlert, type ChromeNotificationReply, type ChromeNotificationsPayload, type ChromeOrgSummary, type CommunicationsFuelStatus, FuelAction, type FuelChannelStatus, NavAppShell, type NavAppShellProps, type NavBrand, type NavChromeFetcher, NavChromeProvider, NavDisplayAction, type NavDisplayMode, type NavFooter, type NavFooterLink, type NavIcon, type NavItem, type NavLinkComponent, type NavLinkProps, type NavLinkedAccount, type NavMode, type NavOrg, type NavOrgOption, type NavRoleBadge, NavSidebar, type NavSidebarProps, type NavTab, NavTabStrip, type NavTabStripProps, NavThemeControl, NavTopBar, type NavTopBarAction, type NavTopBarProps, type NavUser, type NavUserMenu, NotificationsAction, type StandardNavIconKey, type StandardNavOptions, SupportAction, type ThemePreference, TopBarCountBadge, TopBarPanelArrow, TopBarTooltip, TopBarWidgetSlot, envChipClasses, isNavItemActive, standardPolitogyNav, topBarIconButtonClass, useChromeOrgs, useThemePreference };
package/dist/native.d.ts CHANGED
@@ -18,6 +18,13 @@ declare function TopBarTooltip({ title, description, }: {
18
18
  title: string;
19
19
  description?: ReactNode;
20
20
  }): react_jsx_runtime.JSX.Element;
21
+ /**
22
+ * The up-pointing arrow every top-bar panel renders, anchored under its
23
+ * trigger icon (panels are right-aligned, so the arrow sits at the trigger's
24
+ * center: 16px in from the panel's right edge). One definition — every menu
25
+ * points at its own icon identically.
26
+ */
27
+ declare function TopBarPanelArrow(): react_jsx_runtime.JSX.Element;
21
28
  /**
22
29
  * Wrapper for third-party top-bar widgets that ship their own launcher button
23
30
  * (e.g. DevNotes). Normalizes the trigger to the universal 32px circular slot
@@ -264,8 +271,10 @@ declare function NavSidebar({ pathname, brand, nav, org, mode, footer, linkCompo
264
271
  type NavUser = {
265
272
  name: string | null;
266
273
  email?: string | null;
267
- /** Avatar image URL; falls back to initials on the brand color. */
274
+ /** Profile PHOTO url — highest-precedence avatar source. */
268
275
  avatarUrl?: string | null;
276
+ /** Memoji url — used when no photo is set; falls back to initials. */
277
+ memojiUrl?: string | null;
269
278
  tier?: string | null;
270
279
  role?: string | null;
271
280
  };
@@ -390,4 +399,4 @@ type NavAppShellProps = {
390
399
  */
391
400
  declare function NavAppShell({ sidebar, topBar, children }: NavAppShellProps): react_jsx_runtime.JSX.Element;
392
401
 
393
- export { type ChromeNotificationAlert, type ChromeNotificationReply, type ChromeNotificationsPayload, type ChromeOrgSummary, type CommunicationsFuelStatus, FuelAction, type FuelChannelStatus, NavAppShell, type NavAppShellProps, type NavBrand, type NavChromeFetcher, NavChromeProvider, NavDisplayAction, type NavDisplayMode, type NavFooter, type NavFooterLink, type NavIcon, type NavItem, type NavLinkComponent, type NavLinkProps, type NavLinkedAccount, type NavMode, type NavOrg, type NavOrgOption, type NavRoleBadge, NavSidebar, type NavSidebarProps, type NavTab, NavTabStrip, type NavTabStripProps, NavThemeControl, NavTopBar, type NavTopBarAction, type NavTopBarProps, type NavUser, type NavUserMenu, NotificationsAction, type StandardNavIconKey, type StandardNavOptions, SupportAction, type ThemePreference, TopBarCountBadge, TopBarTooltip, TopBarWidgetSlot, envChipClasses, isNavItemActive, standardPolitogyNav, topBarIconButtonClass, useChromeOrgs, useThemePreference };
402
+ export { type ChromeNotificationAlert, type ChromeNotificationReply, type ChromeNotificationsPayload, type ChromeOrgSummary, type CommunicationsFuelStatus, FuelAction, type FuelChannelStatus, NavAppShell, type NavAppShellProps, type NavBrand, type NavChromeFetcher, NavChromeProvider, NavDisplayAction, type NavDisplayMode, type NavFooter, type NavFooterLink, type NavIcon, type NavItem, type NavLinkComponent, type NavLinkProps, type NavLinkedAccount, type NavMode, type NavOrg, type NavOrgOption, type NavRoleBadge, NavSidebar, type NavSidebarProps, type NavTab, NavTabStrip, type NavTabStripProps, NavThemeControl, NavTopBar, type NavTopBarAction, type NavTopBarProps, type NavUser, type NavUserMenu, NotificationsAction, type StandardNavIconKey, type StandardNavOptions, SupportAction, type ThemePreference, TopBarCountBadge, TopBarPanelArrow, TopBarTooltip, TopBarWidgetSlot, envChipClasses, isNavItemActive, standardPolitogyNav, topBarIconButtonClass, useChromeOrgs, useThemePreference };
package/dist/native.js CHANGED
@@ -41,6 +41,15 @@ function TopBarTooltip({
41
41
  }
42
42
  );
43
43
  }
44
+ function TopBarPanelArrow() {
45
+ return /* @__PURE__ */ jsx(
46
+ "span",
47
+ {
48
+ "aria-hidden": true,
49
+ className: "absolute -top-[5px] right-[11px] h-2.5 w-2.5 rotate-45 border-l border-t border-[color:var(--line)] bg-[color:var(--panel-elevated)]"
50
+ }
51
+ );
52
+ }
44
53
  function TopBarWidgetSlot({
45
54
  title,
46
55
  description,
@@ -199,14 +208,17 @@ function TopBarPopover({
199
208
  ]
200
209
  }
201
210
  ),
202
- open ? /* @__PURE__ */ jsx(
211
+ open ? /* @__PURE__ */ jsxs(
203
212
  "div",
204
213
  {
205
214
  className: [
206
- "absolute right-0 z-40 mt-2 overflow-hidden rounded-xl border border-[color:var(--line)] bg-[color:var(--panel-elevated)] shadow-[var(--shadow-soft)]",
215
+ "absolute right-0 z-40 mt-2 rounded-xl border border-[color:var(--line)] bg-[color:var(--panel-elevated)] shadow-[var(--shadow-soft)]",
207
216
  panelClassName ?? "w-80"
208
217
  ].join(" "),
209
- children
218
+ children: [
219
+ /* @__PURE__ */ jsx(TopBarPanelArrow, {}),
220
+ /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-xl", children })
221
+ ]
210
222
  }
211
223
  ) : null
212
224
  ] });
@@ -1120,7 +1132,14 @@ function NavTopBar({
1120
1132
  themeToggle,
1121
1133
  /* @__PURE__ */ jsxs("details", { className: "group/acct relative", children: [
1122
1134
  /* @__PURE__ */ jsxs("summary", { className: "group/tbtip relative flex cursor-pointer list-none items-center gap-2.5 rounded-full py-1 pl-1 pr-2 transition hover:bg-[color:var(--panel-elevated)] [&::-webkit-details-marker]:hidden", children: [
1123
- /* @__PURE__ */ jsx("span", { className: "flex h-9 w-9 items-center justify-center overflow-hidden rounded-full bg-[color:var(--color-race-red)] text-xs font-bold text-white", children: user?.avatarUrl ? /* @__PURE__ */ jsx("img", { src: user.avatarUrl, alt: "", className: "h-full w-full object-cover" }) : initials }),
1135
+ /* @__PURE__ */ jsx("span", { className: "flex h-[var(--topbar-icon-button-size,32px)] w-[var(--topbar-icon-button-size,32px)] items-center justify-center overflow-hidden rounded-full bg-[color:var(--color-race-red)] text-xs font-bold text-white", children: user?.avatarUrl || user?.memojiUrl ? /* @__PURE__ */ jsx(
1136
+ "img",
1137
+ {
1138
+ src: user.avatarUrl || user.memojiUrl,
1139
+ alt: "",
1140
+ className: "h-full w-full object-cover"
1141
+ }
1142
+ ) : initials }),
1124
1143
  /* @__PURE__ */ jsxs("span", { className: "hidden flex-col leading-tight md:flex", children: [
1125
1144
  /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold text-[color:var(--foreground)]", children: user?.name ?? "Signed in" }),
1126
1145
  /* @__PURE__ */ jsx("span", { className: "text-xs text-[color:var(--muted)]", children: secondary })
@@ -1142,7 +1161,8 @@ function NavTopBar({
1142
1161
  }
1143
1162
  ) })
1144
1163
  ] }),
1145
- /* @__PURE__ */ jsxs("div", { className: "absolute right-0 z-30 mt-2 w-72 overflow-hidden rounded-xl border border-[color:var(--line)] bg-[color:var(--panel-elevated)] py-1 shadow-[var(--shadow-soft)]", children: [
1164
+ /* @__PURE__ */ jsxs("div", { className: "absolute right-0 z-30 mt-2 w-72 rounded-xl border border-[color:var(--line)] bg-[color:var(--panel-elevated)] py-1 shadow-[var(--shadow-soft)]", children: [
1165
+ /* @__PURE__ */ jsx(TopBarPanelArrow, {}),
1146
1166
  userMenu?.myProfileHref ? /* @__PURE__ */ jsxs(
1147
1167
  "a",
1148
1168
  {
@@ -1452,6 +1472,6 @@ function NavAppShell({ sidebar, topBar, children }) {
1452
1472
  ] });
1453
1473
  }
1454
1474
 
1455
- export { FuelAction, NavAppShell, NavChromeProvider, NavDisplayAction, NavSidebar, NavTabStrip, NavThemeControl, NavTopBar, NotificationsAction, SupportAction, TopBarCountBadge, TopBarTooltip, TopBarWidgetSlot, envChipClasses, isNavItemActive, standardPolitogyNav, topBarIconButtonClass, useChromeOrgs, useThemePreference };
1475
+ export { FuelAction, NavAppShell, NavChromeProvider, NavDisplayAction, NavSidebar, NavTabStrip, NavThemeControl, NavTopBar, NotificationsAction, SupportAction, TopBarCountBadge, TopBarPanelArrow, TopBarTooltip, TopBarWidgetSlot, envChipClasses, isNavItemActive, standardPolitogyNav, topBarIconButtonClass, useChromeOrgs, useThemePreference };
1456
1476
  //# sourceMappingURL=native.js.map
1457
1477
  //# sourceMappingURL=native.js.map