@the-portland-company/shell 0.97.0 → 0.97.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/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as PageHeaderProps, B as BreadcrumbBarProps, N as NavItem } from './index-BaUIPQpN.cjs';
2
- export { A as AI_CREDITS_STATE_TITLES, a as AiCreditsState, b as AiCreditsStateKind, C as Card, c as CommsNotification, d as CommsNotificationKind, F as FormColumn, H as HeaderTabBar, e as HeaderTabBarItem, K as KNOWN_TAB_GLYPHS, f as NotificationsAdapter, g as NotificationsFeed, R as RowMenu, h as RowMenuItem, i as RowMenuPlacement, T as TabGlyphComponent, j as aiCreditsWalletUrl, k as createCommsNotificationsAdapter, l as emptyNotificationsFeed, n as normalizeNotificationsFeed, r as resolveTabGlyph, m as rowMenuPosition } from './index-BaUIPQpN.cjs';
1
+ import { P as PageHeaderProps, B as BreadcrumbBarProps, N as NavItem } from './index-SHcw15A4.cjs';
2
+ export { A as AI_CREDITS_STATE_TITLES, a as AiCreditsState, b as AiCreditsStateKind, C as Card, c as CommsNotification, d as CommsNotificationKind, F as FormColumn, H as HeaderTabBar, e as HeaderTabBarItem, K as KNOWN_TAB_GLYPHS, f as NotificationsAdapter, g as NotificationsFeed, R as RowMenu, h as RowMenuItem, i as RowMenuPlacement, T as TabGlyphComponent, j as aiCreditsWalletUrl, k as createCommsNotificationsAdapter, l as emptyNotificationsFeed, n as normalizeNotificationsFeed, r as resolveTabGlyph, m as rowMenuPosition } from './index-SHcw15A4.cjs';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import * as react from 'react';
5
5
  import { ReactNode, CSSProperties } from 'react';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as PageHeaderProps, B as BreadcrumbBarProps, N as NavItem } from './index-BEMGfLpI.js';
2
- export { A as AI_CREDITS_STATE_TITLES, a as AiCreditsState, b as AiCreditsStateKind, C as Card, c as CommsNotification, d as CommsNotificationKind, F as FormColumn, H as HeaderTabBar, e as HeaderTabBarItem, K as KNOWN_TAB_GLYPHS, f as NotificationsAdapter, g as NotificationsFeed, R as RowMenu, h as RowMenuItem, i as RowMenuPlacement, T as TabGlyphComponent, j as aiCreditsWalletUrl, k as createCommsNotificationsAdapter, l as emptyNotificationsFeed, n as normalizeNotificationsFeed, r as resolveTabGlyph, m as rowMenuPosition } from './index-BEMGfLpI.js';
1
+ import { P as PageHeaderProps, B as BreadcrumbBarProps, N as NavItem } from './index-smsLP_tM.js';
2
+ export { A as AI_CREDITS_STATE_TITLES, a as AiCreditsState, b as AiCreditsStateKind, C as Card, c as CommsNotification, d as CommsNotificationKind, F as FormColumn, H as HeaderTabBar, e as HeaderTabBarItem, K as KNOWN_TAB_GLYPHS, f as NotificationsAdapter, g as NotificationsFeed, R as RowMenu, h as RowMenuItem, i as RowMenuPlacement, T as TabGlyphComponent, j as aiCreditsWalletUrl, k as createCommsNotificationsAdapter, l as emptyNotificationsFeed, n as normalizeNotificationsFeed, r as resolveTabGlyph, m as rowMenuPosition } from './index-smsLP_tM.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import * as react from 'react';
5
5
  import { ReactNode, CSSProperties } from 'react';
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { PageHeaderView, warnDeprecated, BreadcrumbBarView } from './chunk-VAQNZD37.js';
2
- export { AI_CREDITS_STATE_TITLES, AiCreditsState, Card, FormColumn, HeaderTabBar, KNOWN_TAB_GLYPHS, RowMenu, RowMenuItem, SpeculationRulesScript, aiCreditsWalletUrl, buildNavSpeculationRules, buildSpeculationRules, collectSiblingAppUrls, createCommsNotificationsAdapter, emptyNotificationsFeed, normalizeNotificationsFeed, resolveTabGlyph, rowMenuPosition } from './chunk-VAQNZD37.js';
1
+ import { PageHeaderView, warnDeprecated, BreadcrumbBarView } from './chunk-XPTC47TY.js';
2
+ export { AI_CREDITS_STATE_TITLES, AiCreditsState, Card, FormColumn, HeaderTabBar, KNOWN_TAB_GLYPHS, RowMenu, RowMenuItem, SpeculationRulesScript, aiCreditsWalletUrl, buildNavSpeculationRules, buildSpeculationRules, collectSiblingAppUrls, createCommsNotificationsAdapter, emptyNotificationsFeed, normalizeNotificationsFeed, resolveTabGlyph, rowMenuPosition } from './chunk-XPTC47TY.js';
3
3
  import { readResolvedTheme } from './chunk-BHRVZPZ7.js';
4
4
  export { BRAND_APPLE_ICON_LINK_ID, BRAND_FAVICON_LINK_ID, BrandFavicon, applyBrandFavicon, watchBrandFavicon } from './chunk-BMR5WAWH.js';
5
5
  import { extendTheme, ChakraProvider, useColorMode } from '@chakra-ui/react';
package/dist/native.cjs CHANGED
@@ -694,19 +694,26 @@ function TopBarCountBadge({ count }) {
694
694
  }
695
695
  function TopBarTooltip({
696
696
  title,
697
- description
697
+ description,
698
+ align = "center"
698
699
  }) {
700
+ const bodyPosition = align === "end" ? "right-0" : "left-1/2 -translate-x-1/2";
701
+ const arrowPosition = align === "end" ? "" : "left-1/2 -translate-x-1/2";
702
+ const arrowStyle = align === "end" ? { right: "calc(var(--topbar-icon-button-size, 34px) / 2 - 5px)" } : void 0;
699
703
  return /* @__PURE__ */ jsxRuntime.jsxs(
700
704
  "span",
701
705
  {
702
706
  role: "tooltip",
703
- className: "pointer-events-none absolute left-1/2 top-full z-50 mt-2 hidden w-max max-w-56 -translate-x-1/2 flex-col rounded-lg border border-[color:var(--app-btn-tooltip-bg,#2F3136)] bg-[color:var(--app-btn-tooltip-bg,#2F3136)] px-3 py-2 text-left shadow-[var(--shadow-soft)] group-hover/tbtip:flex group-focus-visible/tbtip:flex",
707
+ "data-tooltip-align": align,
708
+ className: `pointer-events-none absolute ${bodyPosition} top-full z-50 mt-2 hidden w-max max-w-56 flex-col rounded-lg border border-[color:var(--app-btn-tooltip-bg,#2F3136)] bg-[color:var(--app-btn-tooltip-bg,#2F3136)] px-3 py-2 text-left shadow-[var(--shadow-soft)] group-hover/tbtip:flex group-focus-visible/tbtip:flex`,
704
709
  children: [
705
710
  /* @__PURE__ */ jsxRuntime.jsx(
706
711
  "span",
707
712
  {
708
713
  "aria-hidden": true,
709
- className: "absolute -top-[5px] left-1/2 h-2.5 w-2.5 -translate-x-1/2 rotate-45 border-l border-t border-[color:var(--app-btn-tooltip-bg,#2F3136)] bg-[color:var(--app-btn-tooltip-bg,#2F3136)]"
714
+ "data-tooltip-arrow": true,
715
+ style: arrowStyle,
716
+ className: `absolute -top-[5px] ${arrowPosition} h-2.5 w-2.5 rotate-45 border-l border-t border-[color:var(--app-btn-tooltip-bg,#2F3136)] bg-[color:var(--app-btn-tooltip-bg,#2F3136)]`
710
717
  }
711
718
  ),
712
719
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-semibold text-[color:var(--app-btn-tooltip-fg,#FFFFFF)]", children: title }),
@@ -2379,7 +2386,7 @@ function useThemePreference() {
2379
2386
  function TopBarLinkAction({ label, description, href, icon: Icon }) {
2380
2387
  return /* @__PURE__ */ jsxRuntime.jsxs("a", { href, "aria-label": label, className: topBarIconButtonClass(), children: [
2381
2388
  /* @__PURE__ */ jsxRuntime.jsx(Icon, { size: TOPBAR_GLYPH_SIZE, className: "text-current" }),
2382
- /* @__PURE__ */ jsxRuntime.jsx(TopBarTooltip, { title: label, description })
2389
+ /* @__PURE__ */ jsxRuntime.jsx(TopBarTooltip, { title: label, description, align: "end" })
2383
2390
  ] });
2384
2391
  }
2385
2392
  function OrganizationSettingsAction({ href }) {
@@ -3424,6 +3431,33 @@ function shortEnvLabel(label) {
3424
3431
  if (l === "development") return "dev";
3425
3432
  return l;
3426
3433
  }
3434
+ function buildLineParts(meta) {
3435
+ const version = meta.version ? `v${meta.version.replace(/^v/, "")}` : null;
3436
+ const parsed = meta.commitDate ? new Date(meta.commitDate) : null;
3437
+ const date = parsed && !Number.isNaN(parsed.getTime()) ? parsed.toLocaleDateString(void 0, { month: "short", day: "numeric" }) : null;
3438
+ const line = [version, date].filter(Boolean).join(" \xB7 ");
3439
+ const detail2 = [
3440
+ meta.envLabel ? shortEnvLabel(meta.envLabel) : null,
3441
+ meta.commit ? meta.commit.slice(0, 12) : null,
3442
+ version,
3443
+ date,
3444
+ meta.commitAuthor ? meta.commitAuthor.split(/\s+/)[0] : null
3445
+ ].filter(Boolean).join(" | ");
3446
+ return { line, detail: detail2 };
3447
+ }
3448
+ function ShellBuildLine({ footer, hidden }) {
3449
+ const { line, detail: detail2 } = buildLineParts(footer);
3450
+ if (!line && !detail2) return null;
3451
+ return /* @__PURE__ */ jsxRuntime.jsx(
3452
+ "div",
3453
+ {
3454
+ "data-shell-meta": true,
3455
+ title: detail2,
3456
+ className: `mt-1.5 truncate text-center font-[family-name:var(--font-mono,ui-monospace,monospace)] text-[10px] leading-[1.2] text-[color:var(--sidebar-row-text,rgba(255,255,255,0.66))] ${hidden}`,
3457
+ children: line || detail2
3458
+ }
3459
+ );
3460
+ }
3427
3461
  function envChipClasses(label) {
3428
3462
  const l = label.toLowerCase();
3429
3463
  if (l === "production" || l === "prod")
@@ -3926,31 +3960,7 @@ function NavSidebar({
3926
3960
  }
3927
3961
  )
3928
3962
  ] }, l.label)) }) : null,
3929
- footer.envLabel || footer.commit || footer.version ? /* @__PURE__ */ jsxRuntime.jsxs(
3930
- "div",
3931
- {
3932
- "data-shell-meta": true,
3933
- className: `mt-1.5 flex flex-col items-center gap-0.5 font-[family-name:var(--font-mono,ui-monospace,monospace)] text-[11px] text-[color:var(--sidebar-meta-text,rgba(255,255,255,0.72))] ${rc("max-md:hidden")}`,
3934
- children: [
3935
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-1.5", children: [
3936
- footer.envLabel ? shortEnvLabel(footer.envLabel) : null,
3937
- footer.commit ? footer.commit.slice(-4) : null,
3938
- footer.version ? `v${footer.version.replace(/^v/, "")}` : null
3939
- ].filter((v) => Boolean(v)).map((v, i) => /* @__PURE__ */ jsxRuntime.jsxs(react.Fragment, { children: [
3940
- i > 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: "|" }) : null,
3941
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: v })
3942
- ] }, i)) }),
3943
- footer.commitDate || footer.commitAuthor ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
3944
- footer.commitDate ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: new Date(footer.commitDate).toLocaleDateString(void 0, {
3945
- month: "short",
3946
- day: "numeric"
3947
- }) }) : null,
3948
- footer.commitDate && footer.commitAuthor ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: "|" }) : null,
3949
- footer.commitAuthor ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: footer.commitAuthor.split(/\s+/)[0] }) : null
3950
- ] }) : null
3951
- ]
3952
- }
3953
- ) : null
3963
+ footer.envLabel || footer.commit || footer.version ? /* @__PURE__ */ jsxRuntime.jsx(ShellBuildLine, { footer, hidden: rc("max-md:hidden") }) : null
3954
3964
  ] }) : null
3955
3965
  ]
3956
3966
  }
@@ -5011,6 +5021,7 @@ exports.TopBarTooltip = TopBarTooltip;
5011
5021
  exports.TopBarWidgetSlot = TopBarWidgetSlot;
5012
5022
  exports.aiCreditsWalletUrl = aiCreditsWalletUrl;
5013
5023
  exports.applyBrandFavicon = applyBrandFavicon;
5024
+ exports.buildLineParts = buildLineParts;
5014
5025
  exports.clearBetaBannerDismissal = clearBetaBannerDismissal;
5015
5026
  exports.creditGaugeRatio = creditGaugeRatio;
5016
5027
  exports.creditStateWord = creditStateWord;