@the-portland-company/shell 0.96.2 → 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.
@@ -4,7 +4,7 @@ import { createContext, useState, useRef, useCallback, useEffect, useLayoutEffec
4
4
  import { createPortal } from 'react-dom';
5
5
  import clsx2 from 'clsx';
6
6
  import { FiUser, FiSettings, FiMessageSquare, FiMail, FiInfo, FiSun, FiMoon, FiHelpCircle, FiLifeBuoy, FiAlertCircle, FiAlertTriangle, FiBell, FiGrid, FiZap, FiBatteryCharging, FiBattery } from 'react-icons/fi';
7
- import { LuGitBranch, LuWorkflow, LuNetwork, LuHandshake, LuBriefcase, LuAward, LuBadgeCheck, LuSignpost, LuDoorOpen, LuTriangleAlert, LuInfo, LuCircleHelp, LuTrash2, LuArchive, LuRocket, LuZap, LuWrench, LuKanban, LuNewspaper, LuLandmark, LuVote, LuKey, LuLock, LuEye, LuPrinter, LuMic, LuVideo, LuImage, LuLink, LuGlobe, LuSearch, LuFilter, LuTag, LuHandHeart, LuHeart, LuStar, LuHouse, LuBell, LuMailOpen, LuMail, LuDollarSign, LuReceipt, LuWallet, LuCreditCard, LuPalette, LuBuilding2, LuShare2, LuInbox, LuSlidersHorizontal, LuSettings, LuFlaskConical, LuTarget, LuSparkles, LuPencil, LuSmartphone, LuHistory, LuRefreshCw, LuRotateCcw, LuCircleCheck, LuSquareCheck, LuVoicemail, LuRadio, LuNotebookPen, LuBookOpen, LuPhoneCall, LuPhone, LuShieldCheck, LuShield, LuMegaphone, LuTrendingUp, LuListTodo, LuListOrdered, LuListChecks, LuList, LuFolderLock, LuFolder, LuFiles, LuFile, LuFileText, LuSplit, LuGauge, LuSend, LuMessageCircle, LuMessageSquare, LuMessagesSquare, LuBot, LuRoute, LuScale, LuLayers, LuCalendar, LuClock, LuTimer, LuClipboardCheck, LuClipboardList, LuBrain, LuFootprints, LuMapPin, LuMap, LuCrosshair, LuLightbulb, LuChartNoAxesCombined, LuChartArea, LuChartBar, LuChartLine, LuChartColumn, LuChartPie, LuTable2, LuActivity, LuFlagTriangleRight, LuFlag, LuLibrary, LuCopy, LuDownload, LuUpload, LuSquareUser, LuUserCheck, LuUserPlus, LuUser, LuUsersRound, LuUsers, LuLayoutTemplate, LuLayoutGrid, LuLayoutList, LuLayoutDashboard } from 'react-icons/lu';
7
+ import { LuGitBranch, LuWorkflow, LuNetwork, LuHandshake, LuBriefcase, LuAward, LuBadgeCheck, LuSignpost, LuDoorOpen, LuTriangleAlert, LuInfo, LuCircleHelp, LuTrash2, LuArchive, LuRocket, LuZap, LuWrench, LuKanban, LuNewspaper, LuLandmark, LuVote, LuKey, LuLock, LuEye, LuPrinter, LuMic, LuVideo, LuImage, LuLink, LuGlobe, LuSearch, LuFilter, LuTag, LuHandHeart, LuHeart, LuStar, LuHouse, LuBell, LuMailOpen, LuMail, LuDollarSign, LuReceipt, LuWallet, LuCreditCard, LuPalette, LuBuilding2, LuShare2, LuInbox, LuSlidersHorizontal, LuSettings, LuFlaskConical, LuTarget, LuSparkles, LuPencil, LuSmartphone, LuHistory, LuRefreshCw, LuRotateCcw, LuCircleCheck, LuSquareCheck, LuVoicemail, LuRadio, LuNotebookPen, LuBookOpen, LuPhoneCall, LuPhone, LuShieldCheck, LuShield, LuMegaphone, LuTrendingUp, LuListTodo, LuListOrdered, LuListChecks, LuList, LuFolderLock, LuFolder, LuFiles, LuFile, LuFileText, LuSplit, LuGauge, LuSend, LuMessageCircle, LuMessageSquare, LuMessagesSquare, LuBot, LuRoute, LuScale, LuLayers, LuCalendar, LuClock, LuTimer, LuClipboardCheck, LuClipboardList, LuBrain, LuFootprints, LuMapPin, LuMap, LuCrosshair, LuLightbulb, LuChartNoAxesCombined, LuChartArea, LuChartBar, LuChartLine, LuChartColumn, LuChartPie, LuTable2, LuActivity, LuFlagTriangleRight, LuFlag, LuLibrary, LuCopy, LuDownload, LuUpload, LuSquareUser, LuUserCheck, LuUserPlus, LuUser, LuUsersRound, LuUsers, LuLayoutTemplate, LuLayoutGrid, LuLayoutList, LuLayoutDashboard, LuCircleUser } from 'react-icons/lu';
8
8
 
9
9
  function Card({
10
10
  title,
@@ -609,19 +609,26 @@ function TopBarCountBadge({ count }) {
609
609
  }
610
610
  function TopBarTooltip({
611
611
  title,
612
- description
612
+ description,
613
+ align = "center"
613
614
  }) {
615
+ const bodyPosition = align === "end" ? "right-0" : "left-1/2 -translate-x-1/2";
616
+ const arrowPosition = align === "end" ? "" : "left-1/2 -translate-x-1/2";
617
+ const arrowStyle = align === "end" ? { right: "calc(var(--topbar-icon-button-size, 34px) / 2 - 5px)" } : void 0;
614
618
  return /* @__PURE__ */ jsxs(
615
619
  "span",
616
620
  {
617
621
  role: "tooltip",
618
- 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",
622
+ "data-tooltip-align": align,
623
+ 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`,
619
624
  children: [
620
625
  /* @__PURE__ */ jsx(
621
626
  "span",
622
627
  {
623
628
  "aria-hidden": true,
624
- 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)]"
629
+ "data-tooltip-arrow": true,
630
+ style: arrowStyle,
631
+ 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)]`
625
632
  }
626
633
  ),
627
634
  /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold text-[color:var(--app-btn-tooltip-fg,#FFFFFF)]", children: title }),
@@ -2291,6 +2298,34 @@ function useThemePreference() {
2291
2298
  );
2292
2299
  return { value, setValue };
2293
2300
  }
2301
+ function TopBarLinkAction({ label, description, href, icon: Icon }) {
2302
+ return /* @__PURE__ */ jsxs("a", { href, "aria-label": label, className: topBarIconButtonClass(), children: [
2303
+ /* @__PURE__ */ jsx(Icon, { size: TOPBAR_GLYPH_SIZE, className: "text-current" }),
2304
+ /* @__PURE__ */ jsx(TopBarTooltip, { title: label, description, align: "end" })
2305
+ ] });
2306
+ }
2307
+ function OrganizationSettingsAction({ href }) {
2308
+ return /* @__PURE__ */ jsx(
2309
+ TopBarLinkAction,
2310
+ {
2311
+ label: "Organization settings",
2312
+ description: "Users, Brand Kit, modes and billing for this organization.",
2313
+ href,
2314
+ icon: LuSettings
2315
+ }
2316
+ );
2317
+ }
2318
+ function MyProfileAction({ href }) {
2319
+ return /* @__PURE__ */ jsx(
2320
+ TopBarLinkAction,
2321
+ {
2322
+ label: "My profile",
2323
+ description: "Your photo, organizations, security and notifications.",
2324
+ href,
2325
+ icon: LuCircleUser
2326
+ }
2327
+ );
2328
+ }
2294
2329
  function HeaderTabBar({
2295
2330
  items,
2296
2331
  activeId,
@@ -2698,6 +2733,6 @@ function BreadcrumbBarView({
2698
2733
  );
2699
2734
  }
2700
2735
 
2701
- export { AI_CREDITS_STATE_TITLES, AiCreditsState, BreadcrumbBarView, CORE_APP_ORIGIN, CORE_BILLING_PATH, CREDIT_TYPE_LABELS, CREDIT_TYPE_ORDER, Card, CreditsAction, FormColumn, FuelAction, HeaderTabBar, KNOWN_TAB_GLYPHS, NAV_DISPLAY_OPTIONS, NavChromeProvider, NavDisplayAction, NavThemeControl, NotificationsAction, PageHeaderView, RowMenu, RowMenuItem, SPECS_ORIGIN, SpecOverlayAction, SpeculationRulesScript, SupportAction, TOPBAR_GLYPH_SIZE, TopBarCountBadge, TopBarPanelArrow, TopBarPopover, TopBarTooltip, TopBarWidgetSlot, aiCreditsWalletUrl, buildNavSpeculationRules, buildSpeculationRules, collectSiblingAppUrls, createCommsNotificationsAdapter, creditGaugeRatio, creditStateWord, creditTooltipLine, creditsAriaLabel, creditsIconState, emptyNotificationsFeed, normalizeNotificationsFeed, resolveBrandGlyph, resolveOrgLogoUrl, resolveTabGlyph, rowMenuPosition, topBarIconButtonClass, useChromeMe, useChromeOrgs, useNavChromeDedupedFetch, useNavChromeFetcher, useThemePreference, useTopBarIconSlotGlyph, warnDeprecated };
2702
- //# sourceMappingURL=chunk-537NZZVP.js.map
2703
- //# sourceMappingURL=chunk-537NZZVP.js.map
2736
+ export { AI_CREDITS_STATE_TITLES, AiCreditsState, BreadcrumbBarView, CORE_APP_ORIGIN, CORE_BILLING_PATH, CREDIT_TYPE_LABELS, CREDIT_TYPE_ORDER, Card, CreditsAction, FormColumn, FuelAction, HeaderTabBar, KNOWN_TAB_GLYPHS, MyProfileAction, NAV_DISPLAY_OPTIONS, NavChromeProvider, NavDisplayAction, NavThemeControl, NotificationsAction, OrganizationSettingsAction, PageHeaderView, RowMenu, RowMenuItem, SPECS_ORIGIN, SpecOverlayAction, SpeculationRulesScript, SupportAction, TOPBAR_GLYPH_SIZE, TopBarCountBadge, TopBarLinkAction, TopBarPanelArrow, TopBarPopover, TopBarTooltip, TopBarWidgetSlot, aiCreditsWalletUrl, buildNavSpeculationRules, buildSpeculationRules, collectSiblingAppUrls, createCommsNotificationsAdapter, creditGaugeRatio, creditStateWord, creditTooltipLine, creditsAriaLabel, creditsIconState, emptyNotificationsFeed, normalizeNotificationsFeed, resolveBrandGlyph, resolveOrgLogoUrl, resolveTabGlyph, rowMenuPosition, topBarIconButtonClass, useChromeMe, useChromeOrgs, useNavChromeDedupedFetch, useNavChromeFetcher, useThemePreference, useTopBarIconSlotGlyph, warnDeprecated };
2737
+ //# sourceMappingURL=chunk-XPTC47TY.js.map
2738
+ //# sourceMappingURL=chunk-XPTC47TY.js.map