@streamoid/ui 0.6.26 → 0.6.28

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.
@@ -164,7 +164,7 @@ theme-aware (dark on `:root`, light override) — never hardcode a colour.
164
164
 
165
165
  - **`CreditWarningBanner`** — use when you need the "you're nearly out of credits" nudge in a sidebar rail, in either expanded or collapsed form.
166
166
  - **`ScAppSwitchPanel`** — use when you need the "go to another Streamoid product" list — in `StreamoidSidebar`'s `switchPanel`, or in your own portalled flyout.
167
- - also documented here: `ScAppSwitchRow`, `createStreamoidAppSwitchUtilities`, `STREAMOID_CHANGELOG_URL`, `STREAMOID_STATUS_PAGE_URL`
167
+ - also documented here: `ScAppSwitchRow`, `createStreamoidAppSwitchUtilities`, `streamoidAppSwitchTagline`, `streamoidChangelogUrl`, `STREAMOID_CHANGELOG_URLS`, `STREAMOID_CHANGELOG_URL`, `STREAMOID_STATUS_PAGE_URL`
168
168
  - **`ScArtifaxSidebar`** — use when you are working on the Artifax (or Tactix) shell, or you need a sidebar whose sections the user can collapse.
169
169
  - **`ScAskAgentButton`** — use when you need the assistant-panel CTA **outside** a DS sidebar. Inside one, use the sidebar's `assistantCta` prop instead.
170
170
  - also documented here: `ScAskAgentSlot`, `AssistantCta`
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  component: ScAppSwitchPanel
3
- also_exports: [ScAppSwitchRow, createStreamoidAppSwitchUtilities, STREAMOID_CHANGELOG_URL, STREAMOID_STATUS_PAGE_URL]
3
+ also_exports: [ScAppSwitchRow, createStreamoidAppSwitchUtilities, streamoidAppSwitchTagline, streamoidChangelogUrl, STREAMOID_CHANGELOG_URLS, STREAMOID_CHANGELOG_URL, STREAMOID_STATUS_PAGE_URL]
4
4
  package: "@streamoid/ui"
5
5
  category: sidebar
6
6
  status: stable
@@ -30,8 +30,9 @@ card, no border and no background: the surrounding sidebar or flyout supplies th
30
30
  - **Four things that will bite you:**
31
31
  1. It **re-sorts your array** into a canonical product order. Your ordering is
32
32
  discarded.
33
- 2. If a product matches an embedded wordmark, `name` **and** `description` are
34
- **not rendered at all** the wordmark replaces them.
33
+ 2. Known products render the **canonical tagline** (e.g. "for buyers and
34
+ planners"), not `description` and not the product `name`. Do not copy that
35
+ map into a host.
35
36
  3. Matching is a **substring** test over `` `${key} ${name}`.toLowerCase() ``. A key
36
37
  containing `"cxo"` or `"streamoid"` gets the Streamoid wordmark.
37
38
  4. It does **not** exclude the current app. That's the host's job.
@@ -90,19 +91,19 @@ import "@streamoid/ui/dist/index.css"; // once, at your app root
90
91
  |---|---|---|
91
92
  | `key` | `string` | React key **and** half of the wordmark-matching string. |
92
93
  | `name` | `string` | Matching input, and the fallback label. ⚠️ **Not rendered** when a wordmark matches. Always used for the row's `aria-label` (`"Switch to {name}"`). |
93
- | `description` | `string` | Optional tagline. ⚠️ **Only rendered for products with no embedded wordmark.** |
94
+ | `description` | `string` | Optional. Ignored for known products (the panel uses the canonical tagline). Shown only for unknown products. |
94
95
  | `onSelect` | `() => void` | Row click. |
95
96
 
96
97
  ### Wordmark matching + canonical order
97
98
 
98
99
  | Order | Matches (substring, case-insensitive, on `key + " " + name`) | Renders |
99
100
  |---|---|---|
100
- | 1 | `tactix` | Tactix wordmark (100×34) |
101
- | 2 | `artifax`, `design studio` | Artifax wordmark (116×32) |
102
- | 3 | `photogenix`, `photo studio` | Photogenix wordmark (142×36) |
103
- | 4 | `catalogix`, `catalog studio` | Catalogix wordmark (94×36) |
104
- | 5 | `streamoid`, `cxo` | Streamoid wordmark (110×34) |
105
- | last | anything else | `name` (16px semibold) + `description` (14px tertiary) |
101
+ | 1 | `tactix` | Tactix wordmark + "for buyers and planners" |
102
+ | 2 | `artifax`, `design studio` | Artifax wordmark + "for design and development" |
103
+ | 3 | `photogenix`, `photo studio` | Photogenix wordmark + "for studio and content" |
104
+ | 4 | `catalogix`, `catalog studio` | Catalogix wordmark + "for catalog and ecommerce" |
105
+ | 5 | `streamoid`, `cxo` | Streamoid wordmark + "for CXOs" |
106
+ | last | anything else | `name` (16px semibold) + host `description` (14px tertiary) |
106
107
 
107
108
  ### Recipes
108
109
 
@@ -121,7 +122,7 @@ const apps: ScAppSwitchItem[] = serviceCatalog
121
122
  .map((s) => ({
122
123
  key: s.key,
123
124
  name: s.name,
124
- description: s.desc, // only shows for unknown products
125
+ description: s.desc, // ignored for known products; used only for unknowns
125
126
  onSelect: () => window.open(s.pageUrl, "_blank"),
126
127
  }));
127
128
 
@@ -198,8 +199,9 @@ createPortal(
198
199
  - **No chrome, deliberately.** Because it ships no card or border, the identical panel
199
200
  drops into a sidebar drop-down, a 240px collapsed flyout and a portalled overlay
200
201
  without fighting the host's surface.
201
- - **One place to add a product.** New product ⇒ one entry in the `WORDMARKS` table,
202
- and it appears, in the right position, in all four apps.
202
+ - **One place to add a product.** New product ⇒ one entry in `PRODUCT_BRANDS`
203
+ (match keys, wordmark, tagline) and it appears, in the right position, with
204
+ the right subtitle, in every app.
203
205
 
204
206
  ---
205
207
 
@@ -208,14 +210,15 @@ createPortal(
208
210
  **1. Your order is discarded.** `ordered = [...apps].sort((a, b) => orderIndex(a) - orderIndex(b))`.
209
211
  Sorting the array before passing it is wasted work; you cannot pin a product to the top.
210
212
 
211
- **2. A matched wordmark hides `name` and `description`.** The row renders either the
212
- mask wordmark **or** the name/description block, never both.
213
+ **2. Known products ignore host `description`.** The row shows the wordmark plus
214
+ the canonical tagline. CMS copy like "Design generation" is discarded. Pass
215
+ `description` only for products that are not in the brand table.
213
216
 
214
217
  ```tsx
215
- // POINTLESS — "Design generation" is never shown; "artifax" matches the wordmark
218
+ // "Design generation" is ignored; the row shows "for design and development"
216
219
  <ScAppSwitchPanel apps={[{ key: "artifax", name: "Artifax", description: "Design generation", onSelect }]} />
217
220
 
218
- // description only surfaces for products with no embedded mark
221
+ // unknown product host description is shown
219
222
  <ScAppSwitchPanel apps={[{ key: "insights", name: "Insights", description: "Reporting", onSelect }]} />
220
223
  ```
221
224
 
@@ -162,6 +162,9 @@
162
162
  "alsoExports": [
163
163
  "ScAppSwitchRow",
164
164
  "createStreamoidAppSwitchUtilities",
165
+ "streamoidAppSwitchTagline",
166
+ "streamoidChangelogUrl",
167
+ "STREAMOID_CHANGELOG_URLS",
165
168
  "STREAMOID_CHANGELOG_URL",
166
169
  "STREAMOID_STATUS_PAGE_URL"
167
170
  ],
@@ -4867,6 +4870,18 @@
4867
4870
  "documentedIn": "ScAppSwitchPanel",
4868
4871
  "doc": "ScAppSwitchPanel.md"
4869
4872
  },
4873
+ "streamoidAppSwitchTagline": {
4874
+ "documentedIn": "ScAppSwitchPanel",
4875
+ "doc": "ScAppSwitchPanel.md"
4876
+ },
4877
+ "streamoidChangelogUrl": {
4878
+ "documentedIn": "ScAppSwitchPanel",
4879
+ "doc": "ScAppSwitchPanel.md"
4880
+ },
4881
+ "STREAMOID_CHANGELOG_URLS": {
4882
+ "documentedIn": "ScAppSwitchPanel",
4883
+ "doc": "ScAppSwitchPanel.md"
4884
+ },
4870
4885
  "STREAMOID_CHANGELOG_URL": {
4871
4886
  "documentedIn": "ScAppSwitchPanel",
4872
4887
  "doc": "ScAppSwitchPanel.md"
package/dist/index.d.mts CHANGED
@@ -55,7 +55,8 @@ interface ScAppSwitchItem {
55
55
  key: string;
56
56
  /** Product name — used to match the product wordmark (and as fallback text). */
57
57
  name: string;
58
- /** Editable subtitle supplied by the host app or its CMS. */
58
+ /** Subtitle under the wordmark. Known products ignore this and use the
59
+ * canonical tagline from `PRODUCT_BRANDS`. Unknown products render it. */
59
60
  description?: string;
60
61
  onSelect: () => void;
61
62
  }
@@ -68,6 +69,7 @@ interface ScAppSwitchSystemItem {
68
69
  external?: boolean;
69
70
  onSelect: () => void;
70
71
  }
72
+ type StreamoidAppSwitchProduct = "tactix" | "artifax" | "photogenix" | "catalogix" | "cxo" | "streamoid";
71
73
  interface ScAppSwitchUtilities {
72
74
  /** Version of the host application, shown beside Changelog. */
73
75
  appVersion: string;
@@ -75,6 +77,8 @@ interface ScAppSwitchUtilities {
75
77
  onHelpAndSupport: () => void;
76
78
  /** Called before any utility action, normally to close the app switcher. */
77
79
  onClose?: () => void;
80
+ /** Current product. Selects the canonical changelog URL when `changelogUrl` is omitted. */
81
+ product?: StreamoidAppSwitchProduct;
78
82
  changelogUrl?: string;
79
83
  statusPageUrl?: string;
80
84
  }
@@ -91,11 +95,17 @@ interface IScAppSwitchPanelProps {
91
95
  className?: string;
92
96
  style?: CSSProperties;
93
97
  }
94
- declare const STREAMOID_CHANGELOG_URL = "https://doc.clickup.com/3414296/p/h/3868r-26044/13a22b6f796b2c8";
95
- declare const STREAMOID_STATUS_PAGE_URL = "https://status.streamoid.com/";
98
+ declare const STREAMOID_CHANGELOG_URLS: Record<StreamoidAppSwitchProduct, string>;
99
+ /** @deprecated Use `STREAMOID_CHANGELOG_URLS` / `product` on utilities. */
100
+ declare const STREAMOID_CHANGELOG_URL: string;
101
+ declare const STREAMOID_STATUS_PAGE_URL = "https://streamoid.com/status";
102
+ declare function streamoidChangelogUrl(product?: StreamoidAppSwitchProduct | string): string | undefined;
96
103
  /** Builds the utility rows shared by every Streamoid app switcher. */
97
104
  declare function createStreamoidAppSwitchUtilities(utilities: ScAppSwitchUtilities): ScAppSwitchSystemItem[];
98
- /** One switch row: product-only wordmark + the host-supplied subtitle. */
105
+ /** Canonical switcher tagline for a known product. Hosts should not copy this
106
+ * map — `ScAppSwitchRow` applies it. Unknown products return undefined. */
107
+ declare function streamoidAppSwitchTagline(key: string, name: string): string | undefined;
108
+ /** One switch row: product wordmark + canonical tagline. */
99
109
  declare const ScAppSwitchRow: ({ item, }: {
100
110
  item: ScAppSwitchItem;
101
111
  }) => JSX.Element;
@@ -2049,4 +2059,4 @@ interface IScProfilePopupProps extends React.HTMLAttributes<HTMLDivElement> {
2049
2059
  */
2050
2060
  declare const ScProfilePopup: React$1.ForwardRefExoticComponent<IScProfilePopupProps & React$1.RefAttributes<HTMLDivElement>>;
2051
2061
 
2052
- export { type AppcardProduct, type ArtifaxMenuItem, type ArtifaxSection, type ArtifaxSidebarAppIdentity, type ArtifaxSidebarAssistantCta, type ArtifaxSidebarCreditWarning, type ArtifaxSidebarIconContext, type ArtifaxSidebarIconMap, type ArtifaxSidebarIconRenderer, type ArtifaxSidebarProfile, type AssistantCta, type CatalogixNavItem, type CatalogixSidebarCreditWarning, type CatalogixSidebarIconContext, type CatalogixSidebarIconMap, type CatalogixSidebarIconRenderer, type CatalogixSidebarProfile, type CatalogixSwitchApp, CreditWarningBanner, type CreditWarningBannerProps, type DescriptionVisibility, type IInvoiceHistoryMobileProps, type IScAccessProps, type IScAppCardForCopilotProps, type IScAppCardProps, type IScAppCardV3Props, type IScAppFieldProps, type IScAppListingCardProps, type IScAppSwitchPanelProps, type IScAppcardLogosProps, type IScArtifaxInviteProps, type IScArtifaxSidebarProps, type IScAskAgentButtonProps, type IScBadgesProps, type IScBeaconProps, type IScBillingHistoryHeaderProps, type IScBillingHistoryTableListProps, type IScBillingLogsTableHeaderProps, type IScBillingLogsTableListProps, type IScBriefCardProps, type IScButtonProps, type IScCalendarDateCompsProps, type IScCalendarProps, type IScCatalogixInviteProps, type IScCatalogixSidebarProps, type IScCatalogixStoreHeaderProps, type IScCatalogixStoreTableListProps, type IScCheckFieldProps, type IScCheckboxProps, type IScCounterProps, type IScCreditsUsageCardMobileProps, type IScCreditsUsageCardProps, type IScCxoCopilotLogoProps, type IScDefaultCardProps, type IScDrawerProps, type IScFieldButtonProps, type IScFileFieldProps, type IScGoogleSignInProps, type IScGuideProps, type IScHDividerProps, type IScHeaderProps, type IScImageFieldProps, type IScInChatListProps, type IScInChatMessageProps, type IScInfoPopupProps, type IScIntialProfileCoverProps, type IScLogoUnitProps, type IScMappingCardProps, type IScMediaApprovalProps, type IScMediaSelectProps, type IScMenuOptionsProps, type IScMobileBottomActionProps, type IScMobileTopNavProps, type IScModalProps, type IScOnlyFieldProps, type IScOnlyIconProps, type IScPaginationProps, type IScPairtextProps, type IScPendingActionProps, type IScPhtogenixInviteProps, type IScPlanCardProps, type IScPlanComparisonProps, type IScPlanDetailsCardMobileProps, type IScPlanDetailsCardProps, type IScPopUpMenuProps, type IScProfileImageUpdateProps, type IScProfileOptionsProps, type IScProfilePopupProps, type IScProfileProps, type IScProfileSettingsCompProps, type IScProfileV2MobileProps, type IScProgressBarProps, type IScQuickPromptProps, type IScRadioProps, type IScReferralCardMobileProps, type IScReferralTableHeaderProps, type IScReferralTableListProps, type IScRoleMobileProps, type IScRoleProps, type IScSelectOption, type IScSelectProps, type IScSelectionListProps, type IScSelectionPillGroupProps, type IScSelectionPillOption, type IScSelectionPillProps, type IScSelectionProps, type IScSettingsNavProps, type IScSettingsTabCompProps, type IScSideBarLogoUnitProps, type IScSidebarIconsProps, type IScSidebarMenuProps, type IScSidebarProfileProps, type IScSidebarProps, type IScSidebarSwitchMenuProps, type IScSliderProps, type IScStoreCardProps, type IScStrLogoProps, type IScStreamoidMascotProps, type IScStreamoidWordmarkProps, type IScSubAgentProps, type IScTabCompProps, type IScTabFieldProps, type IScTabSwitcherProps, type IScTableHeaderProps, type IScTableListMobileProps, type IScTableListProps, type IScTabsProps, type IScTaxonomyPillProps, type IScTextAreaProps, type IScTextFieldProps, type IScThinkingStepIconProps, type IScTodoItem, type IScTodoListProps, type IScToggleSwitchProps, type IScVDividerProps, type IScValueMappingL1Props, type IScVersionProps, type IScWorkspaceCardProps, type IScWorkspaceSettingsMobileProps, type IScWorkspaceSwitchMobileProps, type IScWorkspaceSwitchMobileV2Props, type IUsageHistoryMobileProps, type IcListIconState, InvoiceHistoryMobile, NscWorkspaceSwitch, type PlanComparisonRow, type PlanComparisonSection, type PlanFeatureSection, ProductCollapsedMark, ProductWordmark, SIDEBAR_RESIZE_THRESHOLD_PX, STREAMOID_CHANGELOG_URL, STREAMOID_STATUS_PAGE_URL, ScAccess, ScAppCard, ScAppCardForCopilot, ScAppCardV3, ScAppField, ScAppListingCard, type ScAppSwitchItem, ScAppSwitchPanel, ScAppSwitchRow, type ScAppSwitchSystemItem, type ScAppSwitchUtilities, ScAppcardLogos, ScArtifaxInvite, ScArtifaxSidebar, ScAskAgentButton, ScAskAgentSlot, ScBadges, ScBeacon, type ScBeaconTone, ScBillingHistoryHeader, ScBillingHistoryTableList, ScBillingLogsTableHeader, ScBillingLogsTableList, ScBriefCard, ScButton, ScCalendar, ScCalendarDateComps, ScCatalogixInvite, ScCatalogixSidebar, ScCatalogixStoreHeader, ScCatalogixStoreTableList, ScCheckField, ScCheckbox, ScCounter, ScCreditsUsageCard, ScCreditsUsageCardMobile, ScCxoCopilotLogo, ScDefaultCard, ScDp, type ScDpProps, ScDrawer, ScFieldButton, ScFileField, ScGoogleSignIn, ScGuide, ScHDivider, ScHeader, ScImageField, ScInChatList, ScInChatMessage, ScInfoPopup, ScIntialProfileCover, ScLogoUnit, ScMappingCard, ScMediaApproval, ScMediaSelect, ScMenuOptions, ScMobileBottomAction, ScMobileTopNav, ScModal, ScOnlyField, ScOnlyIcon, ScPagination, ScPairtext, ScPendingAction, ScPhtogenixInvite, ScPlanCard, ScPlanComparison, ScPlanDetailsCard, ScPlanDetailsCardMobile, ScPopUpMenu, ScProfile, ScProfileImageUpdate, ScProfileOptions, ScProfilePopup, type ScProfilePopupThemeMode, ScProfileSettingsComp, ScProfileV2Mobile, ScProgressBar, ScQuickPrompt, ScRadio, ScReferralCardMobile, ScReferralTableHeader, ScReferralTableList, ScRole, ScRoleMobile, ScSelect, ScSelection, ScSelectionList, ScSelectionPill, ScSelectionPillGroup, ScSettingsNav, ScSettingsTabComp, type ScShellThemeMode, ScSideBarLogoUnit, ScSidebar, ScSidebarAppIdentity, type ScSidebarAppIdentityProps, ScSidebarIcons, ScSidebarMenu, ScSidebarProfile, ScSidebarResizeHandle, type ScSidebarResizeHandleProps, ScSidebarSearchTrigger, type ScSidebarSearchTriggerProps, ScSidebarSwitchMenu, ScSidebarWorkspaceTrigger, type ScSidebarWorkspaceTriggerProps, ScSlider, ScStoreCard, ScStrLogo, ScStreamoidMascot, ScStreamoidWordmark, ScSubAgent, type ScTab, ScTabComp, ScTabField, ScTabSwitcher, ScTableHeader, ScTableList, ScTableListMobile, ScTabs, ScTaxonomyPill, ScTextArea, ScTextField, ScThinkingStepIcon, ScTodoList, ScToggleSwitch, ScVDivider, ScValueMappingL1, ScVersion, ScWorkspaceAccountMenu, type ScWorkspaceAccountMenuProps, ScWorkspaceCard, ScWorkspaceSettingsMobile, ScWorkspaceSwitchCard, type ScWorkspaceSwitchCardProps, ScWorkspaceSwitchMobile, ScWorkspaceSwitchMobileV2, type SelectionListState, type SidebarAppIdentityConfig, type SidebarConfig, type SidebarIconContext, type SidebarIconMap, type SidebarIconRenderer, type SidebarMenuItemConfig, type SidebarProduct, type SidebarProfileConfig, type SidebarResizeGestureResult, type SidebarResizeGestureState, type SidebarSectionConfig, StreamoidSidebar, type StreamoidSidebarPopoverPlacement, type StreamoidSidebarPopoverPosition, type StreamoidSidebarPopoverPositionOptions, type StreamoidSidebarPreferenceOptions, type StreamoidSidebarPreferenceState, type StreamoidSidebarProps, type StreamoidThemePreferenceOptions, type StreamoidThemePreferenceState, StreamoidWorkspaceSwitcher, type StreamoidWorkspaceSwitcherProps, UsageHistoryMobile, type WorkspaceSwitcherConfig, type WorkspaceSwitcherItem, advanceSidebarResizeGesture, createStreamoidAppSwitchUtilities, formatSubAgentLabel, hasCollapsedMark, useStreamoidSidebarPopoverPosition, useStreamoidSidebarPreference, useStreamoidThemePreference };
2062
+ export { type AppcardProduct, type ArtifaxMenuItem, type ArtifaxSection, type ArtifaxSidebarAppIdentity, type ArtifaxSidebarAssistantCta, type ArtifaxSidebarCreditWarning, type ArtifaxSidebarIconContext, type ArtifaxSidebarIconMap, type ArtifaxSidebarIconRenderer, type ArtifaxSidebarProfile, type AssistantCta, type CatalogixNavItem, type CatalogixSidebarCreditWarning, type CatalogixSidebarIconContext, type CatalogixSidebarIconMap, type CatalogixSidebarIconRenderer, type CatalogixSidebarProfile, type CatalogixSwitchApp, CreditWarningBanner, type CreditWarningBannerProps, type DescriptionVisibility, type IInvoiceHistoryMobileProps, type IScAccessProps, type IScAppCardForCopilotProps, type IScAppCardProps, type IScAppCardV3Props, type IScAppFieldProps, type IScAppListingCardProps, type IScAppSwitchPanelProps, type IScAppcardLogosProps, type IScArtifaxInviteProps, type IScArtifaxSidebarProps, type IScAskAgentButtonProps, type IScBadgesProps, type IScBeaconProps, type IScBillingHistoryHeaderProps, type IScBillingHistoryTableListProps, type IScBillingLogsTableHeaderProps, type IScBillingLogsTableListProps, type IScBriefCardProps, type IScButtonProps, type IScCalendarDateCompsProps, type IScCalendarProps, type IScCatalogixInviteProps, type IScCatalogixSidebarProps, type IScCatalogixStoreHeaderProps, type IScCatalogixStoreTableListProps, type IScCheckFieldProps, type IScCheckboxProps, type IScCounterProps, type IScCreditsUsageCardMobileProps, type IScCreditsUsageCardProps, type IScCxoCopilotLogoProps, type IScDefaultCardProps, type IScDrawerProps, type IScFieldButtonProps, type IScFileFieldProps, type IScGoogleSignInProps, type IScGuideProps, type IScHDividerProps, type IScHeaderProps, type IScImageFieldProps, type IScInChatListProps, type IScInChatMessageProps, type IScInfoPopupProps, type IScIntialProfileCoverProps, type IScLogoUnitProps, type IScMappingCardProps, type IScMediaApprovalProps, type IScMediaSelectProps, type IScMenuOptionsProps, type IScMobileBottomActionProps, type IScMobileTopNavProps, type IScModalProps, type IScOnlyFieldProps, type IScOnlyIconProps, type IScPaginationProps, type IScPairtextProps, type IScPendingActionProps, type IScPhtogenixInviteProps, type IScPlanCardProps, type IScPlanComparisonProps, type IScPlanDetailsCardMobileProps, type IScPlanDetailsCardProps, type IScPopUpMenuProps, type IScProfileImageUpdateProps, type IScProfileOptionsProps, type IScProfilePopupProps, type IScProfileProps, type IScProfileSettingsCompProps, type IScProfileV2MobileProps, type IScProgressBarProps, type IScQuickPromptProps, type IScRadioProps, type IScReferralCardMobileProps, type IScReferralTableHeaderProps, type IScReferralTableListProps, type IScRoleMobileProps, type IScRoleProps, type IScSelectOption, type IScSelectProps, type IScSelectionListProps, type IScSelectionPillGroupProps, type IScSelectionPillOption, type IScSelectionPillProps, type IScSelectionProps, type IScSettingsNavProps, type IScSettingsTabCompProps, type IScSideBarLogoUnitProps, type IScSidebarIconsProps, type IScSidebarMenuProps, type IScSidebarProfileProps, type IScSidebarProps, type IScSidebarSwitchMenuProps, type IScSliderProps, type IScStoreCardProps, type IScStrLogoProps, type IScStreamoidMascotProps, type IScStreamoidWordmarkProps, type IScSubAgentProps, type IScTabCompProps, type IScTabFieldProps, type IScTabSwitcherProps, type IScTableHeaderProps, type IScTableListMobileProps, type IScTableListProps, type IScTabsProps, type IScTaxonomyPillProps, type IScTextAreaProps, type IScTextFieldProps, type IScThinkingStepIconProps, type IScTodoItem, type IScTodoListProps, type IScToggleSwitchProps, type IScVDividerProps, type IScValueMappingL1Props, type IScVersionProps, type IScWorkspaceCardProps, type IScWorkspaceSettingsMobileProps, type IScWorkspaceSwitchMobileProps, type IScWorkspaceSwitchMobileV2Props, type IUsageHistoryMobileProps, type IcListIconState, InvoiceHistoryMobile, NscWorkspaceSwitch, type PlanComparisonRow, type PlanComparisonSection, type PlanFeatureSection, ProductCollapsedMark, ProductWordmark, SIDEBAR_RESIZE_THRESHOLD_PX, STREAMOID_CHANGELOG_URL, STREAMOID_CHANGELOG_URLS, STREAMOID_STATUS_PAGE_URL, ScAccess, ScAppCard, ScAppCardForCopilot, ScAppCardV3, ScAppField, ScAppListingCard, type ScAppSwitchItem, ScAppSwitchPanel, ScAppSwitchRow, type ScAppSwitchSystemItem, type ScAppSwitchUtilities, ScAppcardLogos, ScArtifaxInvite, ScArtifaxSidebar, ScAskAgentButton, ScAskAgentSlot, ScBadges, ScBeacon, type ScBeaconTone, ScBillingHistoryHeader, ScBillingHistoryTableList, ScBillingLogsTableHeader, ScBillingLogsTableList, ScBriefCard, ScButton, ScCalendar, ScCalendarDateComps, ScCatalogixInvite, ScCatalogixSidebar, ScCatalogixStoreHeader, ScCatalogixStoreTableList, ScCheckField, ScCheckbox, ScCounter, ScCreditsUsageCard, ScCreditsUsageCardMobile, ScCxoCopilotLogo, ScDefaultCard, ScDp, type ScDpProps, ScDrawer, ScFieldButton, ScFileField, ScGoogleSignIn, ScGuide, ScHDivider, ScHeader, ScImageField, ScInChatList, ScInChatMessage, ScInfoPopup, ScIntialProfileCover, ScLogoUnit, ScMappingCard, ScMediaApproval, ScMediaSelect, ScMenuOptions, ScMobileBottomAction, ScMobileTopNav, ScModal, ScOnlyField, ScOnlyIcon, ScPagination, ScPairtext, ScPendingAction, ScPhtogenixInvite, ScPlanCard, ScPlanComparison, ScPlanDetailsCard, ScPlanDetailsCardMobile, ScPopUpMenu, ScProfile, ScProfileImageUpdate, ScProfileOptions, ScProfilePopup, type ScProfilePopupThemeMode, ScProfileSettingsComp, ScProfileV2Mobile, ScProgressBar, ScQuickPrompt, ScRadio, ScReferralCardMobile, ScReferralTableHeader, ScReferralTableList, ScRole, ScRoleMobile, ScSelect, ScSelection, ScSelectionList, ScSelectionPill, ScSelectionPillGroup, ScSettingsNav, ScSettingsTabComp, type ScShellThemeMode, ScSideBarLogoUnit, ScSidebar, ScSidebarAppIdentity, type ScSidebarAppIdentityProps, ScSidebarIcons, ScSidebarMenu, ScSidebarProfile, ScSidebarResizeHandle, type ScSidebarResizeHandleProps, ScSidebarSearchTrigger, type ScSidebarSearchTriggerProps, ScSidebarSwitchMenu, ScSidebarWorkspaceTrigger, type ScSidebarWorkspaceTriggerProps, ScSlider, ScStoreCard, ScStrLogo, ScStreamoidMascot, ScStreamoidWordmark, ScSubAgent, type ScTab, ScTabComp, ScTabField, ScTabSwitcher, ScTableHeader, ScTableList, ScTableListMobile, ScTabs, ScTaxonomyPill, ScTextArea, ScTextField, ScThinkingStepIcon, ScTodoList, ScToggleSwitch, ScVDivider, ScValueMappingL1, ScVersion, ScWorkspaceAccountMenu, type ScWorkspaceAccountMenuProps, ScWorkspaceCard, ScWorkspaceSettingsMobile, ScWorkspaceSwitchCard, type ScWorkspaceSwitchCardProps, ScWorkspaceSwitchMobile, ScWorkspaceSwitchMobileV2, type SelectionListState, type SidebarAppIdentityConfig, type SidebarConfig, type SidebarIconContext, type SidebarIconMap, type SidebarIconRenderer, type SidebarMenuItemConfig, type SidebarProduct, type SidebarProfileConfig, type SidebarResizeGestureResult, type SidebarResizeGestureState, type SidebarSectionConfig, type StreamoidAppSwitchProduct, StreamoidSidebar, type StreamoidSidebarPopoverPlacement, type StreamoidSidebarPopoverPosition, type StreamoidSidebarPopoverPositionOptions, type StreamoidSidebarPreferenceOptions, type StreamoidSidebarPreferenceState, type StreamoidSidebarProps, type StreamoidThemePreferenceOptions, type StreamoidThemePreferenceState, StreamoidWorkspaceSwitcher, type StreamoidWorkspaceSwitcherProps, UsageHistoryMobile, type WorkspaceSwitcherConfig, type WorkspaceSwitcherItem, advanceSidebarResizeGesture, createStreamoidAppSwitchUtilities, formatSubAgentLabel, hasCollapsedMark, streamoidAppSwitchTagline, streamoidChangelogUrl, useStreamoidSidebarPopoverPosition, useStreamoidSidebarPreference, useStreamoidThemePreference };
package/dist/index.d.ts CHANGED
@@ -55,7 +55,8 @@ interface ScAppSwitchItem {
55
55
  key: string;
56
56
  /** Product name — used to match the product wordmark (and as fallback text). */
57
57
  name: string;
58
- /** Editable subtitle supplied by the host app or its CMS. */
58
+ /** Subtitle under the wordmark. Known products ignore this and use the
59
+ * canonical tagline from `PRODUCT_BRANDS`. Unknown products render it. */
59
60
  description?: string;
60
61
  onSelect: () => void;
61
62
  }
@@ -68,6 +69,7 @@ interface ScAppSwitchSystemItem {
68
69
  external?: boolean;
69
70
  onSelect: () => void;
70
71
  }
72
+ type StreamoidAppSwitchProduct = "tactix" | "artifax" | "photogenix" | "catalogix" | "cxo" | "streamoid";
71
73
  interface ScAppSwitchUtilities {
72
74
  /** Version of the host application, shown beside Changelog. */
73
75
  appVersion: string;
@@ -75,6 +77,8 @@ interface ScAppSwitchUtilities {
75
77
  onHelpAndSupport: () => void;
76
78
  /** Called before any utility action, normally to close the app switcher. */
77
79
  onClose?: () => void;
80
+ /** Current product. Selects the canonical changelog URL when `changelogUrl` is omitted. */
81
+ product?: StreamoidAppSwitchProduct;
78
82
  changelogUrl?: string;
79
83
  statusPageUrl?: string;
80
84
  }
@@ -91,11 +95,17 @@ interface IScAppSwitchPanelProps {
91
95
  className?: string;
92
96
  style?: CSSProperties;
93
97
  }
94
- declare const STREAMOID_CHANGELOG_URL = "https://doc.clickup.com/3414296/p/h/3868r-26044/13a22b6f796b2c8";
95
- declare const STREAMOID_STATUS_PAGE_URL = "https://status.streamoid.com/";
98
+ declare const STREAMOID_CHANGELOG_URLS: Record<StreamoidAppSwitchProduct, string>;
99
+ /** @deprecated Use `STREAMOID_CHANGELOG_URLS` / `product` on utilities. */
100
+ declare const STREAMOID_CHANGELOG_URL: string;
101
+ declare const STREAMOID_STATUS_PAGE_URL = "https://streamoid.com/status";
102
+ declare function streamoidChangelogUrl(product?: StreamoidAppSwitchProduct | string): string | undefined;
96
103
  /** Builds the utility rows shared by every Streamoid app switcher. */
97
104
  declare function createStreamoidAppSwitchUtilities(utilities: ScAppSwitchUtilities): ScAppSwitchSystemItem[];
98
- /** One switch row: product-only wordmark + the host-supplied subtitle. */
105
+ /** Canonical switcher tagline for a known product. Hosts should not copy this
106
+ * map — `ScAppSwitchRow` applies it. Unknown products return undefined. */
107
+ declare function streamoidAppSwitchTagline(key: string, name: string): string | undefined;
108
+ /** One switch row: product wordmark + canonical tagline. */
99
109
  declare const ScAppSwitchRow: ({ item, }: {
100
110
  item: ScAppSwitchItem;
101
111
  }) => JSX.Element;
@@ -2049,4 +2059,4 @@ interface IScProfilePopupProps extends React.HTMLAttributes<HTMLDivElement> {
2049
2059
  */
2050
2060
  declare const ScProfilePopup: React$1.ForwardRefExoticComponent<IScProfilePopupProps & React$1.RefAttributes<HTMLDivElement>>;
2051
2061
 
2052
- export { type AppcardProduct, type ArtifaxMenuItem, type ArtifaxSection, type ArtifaxSidebarAppIdentity, type ArtifaxSidebarAssistantCta, type ArtifaxSidebarCreditWarning, type ArtifaxSidebarIconContext, type ArtifaxSidebarIconMap, type ArtifaxSidebarIconRenderer, type ArtifaxSidebarProfile, type AssistantCta, type CatalogixNavItem, type CatalogixSidebarCreditWarning, type CatalogixSidebarIconContext, type CatalogixSidebarIconMap, type CatalogixSidebarIconRenderer, type CatalogixSidebarProfile, type CatalogixSwitchApp, CreditWarningBanner, type CreditWarningBannerProps, type DescriptionVisibility, type IInvoiceHistoryMobileProps, type IScAccessProps, type IScAppCardForCopilotProps, type IScAppCardProps, type IScAppCardV3Props, type IScAppFieldProps, type IScAppListingCardProps, type IScAppSwitchPanelProps, type IScAppcardLogosProps, type IScArtifaxInviteProps, type IScArtifaxSidebarProps, type IScAskAgentButtonProps, type IScBadgesProps, type IScBeaconProps, type IScBillingHistoryHeaderProps, type IScBillingHistoryTableListProps, type IScBillingLogsTableHeaderProps, type IScBillingLogsTableListProps, type IScBriefCardProps, type IScButtonProps, type IScCalendarDateCompsProps, type IScCalendarProps, type IScCatalogixInviteProps, type IScCatalogixSidebarProps, type IScCatalogixStoreHeaderProps, type IScCatalogixStoreTableListProps, type IScCheckFieldProps, type IScCheckboxProps, type IScCounterProps, type IScCreditsUsageCardMobileProps, type IScCreditsUsageCardProps, type IScCxoCopilotLogoProps, type IScDefaultCardProps, type IScDrawerProps, type IScFieldButtonProps, type IScFileFieldProps, type IScGoogleSignInProps, type IScGuideProps, type IScHDividerProps, type IScHeaderProps, type IScImageFieldProps, type IScInChatListProps, type IScInChatMessageProps, type IScInfoPopupProps, type IScIntialProfileCoverProps, type IScLogoUnitProps, type IScMappingCardProps, type IScMediaApprovalProps, type IScMediaSelectProps, type IScMenuOptionsProps, type IScMobileBottomActionProps, type IScMobileTopNavProps, type IScModalProps, type IScOnlyFieldProps, type IScOnlyIconProps, type IScPaginationProps, type IScPairtextProps, type IScPendingActionProps, type IScPhtogenixInviteProps, type IScPlanCardProps, type IScPlanComparisonProps, type IScPlanDetailsCardMobileProps, type IScPlanDetailsCardProps, type IScPopUpMenuProps, type IScProfileImageUpdateProps, type IScProfileOptionsProps, type IScProfilePopupProps, type IScProfileProps, type IScProfileSettingsCompProps, type IScProfileV2MobileProps, type IScProgressBarProps, type IScQuickPromptProps, type IScRadioProps, type IScReferralCardMobileProps, type IScReferralTableHeaderProps, type IScReferralTableListProps, type IScRoleMobileProps, type IScRoleProps, type IScSelectOption, type IScSelectProps, type IScSelectionListProps, type IScSelectionPillGroupProps, type IScSelectionPillOption, type IScSelectionPillProps, type IScSelectionProps, type IScSettingsNavProps, type IScSettingsTabCompProps, type IScSideBarLogoUnitProps, type IScSidebarIconsProps, type IScSidebarMenuProps, type IScSidebarProfileProps, type IScSidebarProps, type IScSidebarSwitchMenuProps, type IScSliderProps, type IScStoreCardProps, type IScStrLogoProps, type IScStreamoidMascotProps, type IScStreamoidWordmarkProps, type IScSubAgentProps, type IScTabCompProps, type IScTabFieldProps, type IScTabSwitcherProps, type IScTableHeaderProps, type IScTableListMobileProps, type IScTableListProps, type IScTabsProps, type IScTaxonomyPillProps, type IScTextAreaProps, type IScTextFieldProps, type IScThinkingStepIconProps, type IScTodoItem, type IScTodoListProps, type IScToggleSwitchProps, type IScVDividerProps, type IScValueMappingL1Props, type IScVersionProps, type IScWorkspaceCardProps, type IScWorkspaceSettingsMobileProps, type IScWorkspaceSwitchMobileProps, type IScWorkspaceSwitchMobileV2Props, type IUsageHistoryMobileProps, type IcListIconState, InvoiceHistoryMobile, NscWorkspaceSwitch, type PlanComparisonRow, type PlanComparisonSection, type PlanFeatureSection, ProductCollapsedMark, ProductWordmark, SIDEBAR_RESIZE_THRESHOLD_PX, STREAMOID_CHANGELOG_URL, STREAMOID_STATUS_PAGE_URL, ScAccess, ScAppCard, ScAppCardForCopilot, ScAppCardV3, ScAppField, ScAppListingCard, type ScAppSwitchItem, ScAppSwitchPanel, ScAppSwitchRow, type ScAppSwitchSystemItem, type ScAppSwitchUtilities, ScAppcardLogos, ScArtifaxInvite, ScArtifaxSidebar, ScAskAgentButton, ScAskAgentSlot, ScBadges, ScBeacon, type ScBeaconTone, ScBillingHistoryHeader, ScBillingHistoryTableList, ScBillingLogsTableHeader, ScBillingLogsTableList, ScBriefCard, ScButton, ScCalendar, ScCalendarDateComps, ScCatalogixInvite, ScCatalogixSidebar, ScCatalogixStoreHeader, ScCatalogixStoreTableList, ScCheckField, ScCheckbox, ScCounter, ScCreditsUsageCard, ScCreditsUsageCardMobile, ScCxoCopilotLogo, ScDefaultCard, ScDp, type ScDpProps, ScDrawer, ScFieldButton, ScFileField, ScGoogleSignIn, ScGuide, ScHDivider, ScHeader, ScImageField, ScInChatList, ScInChatMessage, ScInfoPopup, ScIntialProfileCover, ScLogoUnit, ScMappingCard, ScMediaApproval, ScMediaSelect, ScMenuOptions, ScMobileBottomAction, ScMobileTopNav, ScModal, ScOnlyField, ScOnlyIcon, ScPagination, ScPairtext, ScPendingAction, ScPhtogenixInvite, ScPlanCard, ScPlanComparison, ScPlanDetailsCard, ScPlanDetailsCardMobile, ScPopUpMenu, ScProfile, ScProfileImageUpdate, ScProfileOptions, ScProfilePopup, type ScProfilePopupThemeMode, ScProfileSettingsComp, ScProfileV2Mobile, ScProgressBar, ScQuickPrompt, ScRadio, ScReferralCardMobile, ScReferralTableHeader, ScReferralTableList, ScRole, ScRoleMobile, ScSelect, ScSelection, ScSelectionList, ScSelectionPill, ScSelectionPillGroup, ScSettingsNav, ScSettingsTabComp, type ScShellThemeMode, ScSideBarLogoUnit, ScSidebar, ScSidebarAppIdentity, type ScSidebarAppIdentityProps, ScSidebarIcons, ScSidebarMenu, ScSidebarProfile, ScSidebarResizeHandle, type ScSidebarResizeHandleProps, ScSidebarSearchTrigger, type ScSidebarSearchTriggerProps, ScSidebarSwitchMenu, ScSidebarWorkspaceTrigger, type ScSidebarWorkspaceTriggerProps, ScSlider, ScStoreCard, ScStrLogo, ScStreamoidMascot, ScStreamoidWordmark, ScSubAgent, type ScTab, ScTabComp, ScTabField, ScTabSwitcher, ScTableHeader, ScTableList, ScTableListMobile, ScTabs, ScTaxonomyPill, ScTextArea, ScTextField, ScThinkingStepIcon, ScTodoList, ScToggleSwitch, ScVDivider, ScValueMappingL1, ScVersion, ScWorkspaceAccountMenu, type ScWorkspaceAccountMenuProps, ScWorkspaceCard, ScWorkspaceSettingsMobile, ScWorkspaceSwitchCard, type ScWorkspaceSwitchCardProps, ScWorkspaceSwitchMobile, ScWorkspaceSwitchMobileV2, type SelectionListState, type SidebarAppIdentityConfig, type SidebarConfig, type SidebarIconContext, type SidebarIconMap, type SidebarIconRenderer, type SidebarMenuItemConfig, type SidebarProduct, type SidebarProfileConfig, type SidebarResizeGestureResult, type SidebarResizeGestureState, type SidebarSectionConfig, StreamoidSidebar, type StreamoidSidebarPopoverPlacement, type StreamoidSidebarPopoverPosition, type StreamoidSidebarPopoverPositionOptions, type StreamoidSidebarPreferenceOptions, type StreamoidSidebarPreferenceState, type StreamoidSidebarProps, type StreamoidThemePreferenceOptions, type StreamoidThemePreferenceState, StreamoidWorkspaceSwitcher, type StreamoidWorkspaceSwitcherProps, UsageHistoryMobile, type WorkspaceSwitcherConfig, type WorkspaceSwitcherItem, advanceSidebarResizeGesture, createStreamoidAppSwitchUtilities, formatSubAgentLabel, hasCollapsedMark, useStreamoidSidebarPopoverPosition, useStreamoidSidebarPreference, useStreamoidThemePreference };
2062
+ export { type AppcardProduct, type ArtifaxMenuItem, type ArtifaxSection, type ArtifaxSidebarAppIdentity, type ArtifaxSidebarAssistantCta, type ArtifaxSidebarCreditWarning, type ArtifaxSidebarIconContext, type ArtifaxSidebarIconMap, type ArtifaxSidebarIconRenderer, type ArtifaxSidebarProfile, type AssistantCta, type CatalogixNavItem, type CatalogixSidebarCreditWarning, type CatalogixSidebarIconContext, type CatalogixSidebarIconMap, type CatalogixSidebarIconRenderer, type CatalogixSidebarProfile, type CatalogixSwitchApp, CreditWarningBanner, type CreditWarningBannerProps, type DescriptionVisibility, type IInvoiceHistoryMobileProps, type IScAccessProps, type IScAppCardForCopilotProps, type IScAppCardProps, type IScAppCardV3Props, type IScAppFieldProps, type IScAppListingCardProps, type IScAppSwitchPanelProps, type IScAppcardLogosProps, type IScArtifaxInviteProps, type IScArtifaxSidebarProps, type IScAskAgentButtonProps, type IScBadgesProps, type IScBeaconProps, type IScBillingHistoryHeaderProps, type IScBillingHistoryTableListProps, type IScBillingLogsTableHeaderProps, type IScBillingLogsTableListProps, type IScBriefCardProps, type IScButtonProps, type IScCalendarDateCompsProps, type IScCalendarProps, type IScCatalogixInviteProps, type IScCatalogixSidebarProps, type IScCatalogixStoreHeaderProps, type IScCatalogixStoreTableListProps, type IScCheckFieldProps, type IScCheckboxProps, type IScCounterProps, type IScCreditsUsageCardMobileProps, type IScCreditsUsageCardProps, type IScCxoCopilotLogoProps, type IScDefaultCardProps, type IScDrawerProps, type IScFieldButtonProps, type IScFileFieldProps, type IScGoogleSignInProps, type IScGuideProps, type IScHDividerProps, type IScHeaderProps, type IScImageFieldProps, type IScInChatListProps, type IScInChatMessageProps, type IScInfoPopupProps, type IScIntialProfileCoverProps, type IScLogoUnitProps, type IScMappingCardProps, type IScMediaApprovalProps, type IScMediaSelectProps, type IScMenuOptionsProps, type IScMobileBottomActionProps, type IScMobileTopNavProps, type IScModalProps, type IScOnlyFieldProps, type IScOnlyIconProps, type IScPaginationProps, type IScPairtextProps, type IScPendingActionProps, type IScPhtogenixInviteProps, type IScPlanCardProps, type IScPlanComparisonProps, type IScPlanDetailsCardMobileProps, type IScPlanDetailsCardProps, type IScPopUpMenuProps, type IScProfileImageUpdateProps, type IScProfileOptionsProps, type IScProfilePopupProps, type IScProfileProps, type IScProfileSettingsCompProps, type IScProfileV2MobileProps, type IScProgressBarProps, type IScQuickPromptProps, type IScRadioProps, type IScReferralCardMobileProps, type IScReferralTableHeaderProps, type IScReferralTableListProps, type IScRoleMobileProps, type IScRoleProps, type IScSelectOption, type IScSelectProps, type IScSelectionListProps, type IScSelectionPillGroupProps, type IScSelectionPillOption, type IScSelectionPillProps, type IScSelectionProps, type IScSettingsNavProps, type IScSettingsTabCompProps, type IScSideBarLogoUnitProps, type IScSidebarIconsProps, type IScSidebarMenuProps, type IScSidebarProfileProps, type IScSidebarProps, type IScSidebarSwitchMenuProps, type IScSliderProps, type IScStoreCardProps, type IScStrLogoProps, type IScStreamoidMascotProps, type IScStreamoidWordmarkProps, type IScSubAgentProps, type IScTabCompProps, type IScTabFieldProps, type IScTabSwitcherProps, type IScTableHeaderProps, type IScTableListMobileProps, type IScTableListProps, type IScTabsProps, type IScTaxonomyPillProps, type IScTextAreaProps, type IScTextFieldProps, type IScThinkingStepIconProps, type IScTodoItem, type IScTodoListProps, type IScToggleSwitchProps, type IScVDividerProps, type IScValueMappingL1Props, type IScVersionProps, type IScWorkspaceCardProps, type IScWorkspaceSettingsMobileProps, type IScWorkspaceSwitchMobileProps, type IScWorkspaceSwitchMobileV2Props, type IUsageHistoryMobileProps, type IcListIconState, InvoiceHistoryMobile, NscWorkspaceSwitch, type PlanComparisonRow, type PlanComparisonSection, type PlanFeatureSection, ProductCollapsedMark, ProductWordmark, SIDEBAR_RESIZE_THRESHOLD_PX, STREAMOID_CHANGELOG_URL, STREAMOID_CHANGELOG_URLS, STREAMOID_STATUS_PAGE_URL, ScAccess, ScAppCard, ScAppCardForCopilot, ScAppCardV3, ScAppField, ScAppListingCard, type ScAppSwitchItem, ScAppSwitchPanel, ScAppSwitchRow, type ScAppSwitchSystemItem, type ScAppSwitchUtilities, ScAppcardLogos, ScArtifaxInvite, ScArtifaxSidebar, ScAskAgentButton, ScAskAgentSlot, ScBadges, ScBeacon, type ScBeaconTone, ScBillingHistoryHeader, ScBillingHistoryTableList, ScBillingLogsTableHeader, ScBillingLogsTableList, ScBriefCard, ScButton, ScCalendar, ScCalendarDateComps, ScCatalogixInvite, ScCatalogixSidebar, ScCatalogixStoreHeader, ScCatalogixStoreTableList, ScCheckField, ScCheckbox, ScCounter, ScCreditsUsageCard, ScCreditsUsageCardMobile, ScCxoCopilotLogo, ScDefaultCard, ScDp, type ScDpProps, ScDrawer, ScFieldButton, ScFileField, ScGoogleSignIn, ScGuide, ScHDivider, ScHeader, ScImageField, ScInChatList, ScInChatMessage, ScInfoPopup, ScIntialProfileCover, ScLogoUnit, ScMappingCard, ScMediaApproval, ScMediaSelect, ScMenuOptions, ScMobileBottomAction, ScMobileTopNav, ScModal, ScOnlyField, ScOnlyIcon, ScPagination, ScPairtext, ScPendingAction, ScPhtogenixInvite, ScPlanCard, ScPlanComparison, ScPlanDetailsCard, ScPlanDetailsCardMobile, ScPopUpMenu, ScProfile, ScProfileImageUpdate, ScProfileOptions, ScProfilePopup, type ScProfilePopupThemeMode, ScProfileSettingsComp, ScProfileV2Mobile, ScProgressBar, ScQuickPrompt, ScRadio, ScReferralCardMobile, ScReferralTableHeader, ScReferralTableList, ScRole, ScRoleMobile, ScSelect, ScSelection, ScSelectionList, ScSelectionPill, ScSelectionPillGroup, ScSettingsNav, ScSettingsTabComp, type ScShellThemeMode, ScSideBarLogoUnit, ScSidebar, ScSidebarAppIdentity, type ScSidebarAppIdentityProps, ScSidebarIcons, ScSidebarMenu, ScSidebarProfile, ScSidebarResizeHandle, type ScSidebarResizeHandleProps, ScSidebarSearchTrigger, type ScSidebarSearchTriggerProps, ScSidebarSwitchMenu, ScSidebarWorkspaceTrigger, type ScSidebarWorkspaceTriggerProps, ScSlider, ScStoreCard, ScStrLogo, ScStreamoidMascot, ScStreamoidWordmark, ScSubAgent, type ScTab, ScTabComp, ScTabField, ScTabSwitcher, ScTableHeader, ScTableList, ScTableListMobile, ScTabs, ScTaxonomyPill, ScTextArea, ScTextField, ScThinkingStepIcon, ScTodoList, ScToggleSwitch, ScVDivider, ScValueMappingL1, ScVersion, ScWorkspaceAccountMenu, type ScWorkspaceAccountMenuProps, ScWorkspaceCard, ScWorkspaceSettingsMobile, ScWorkspaceSwitchCard, type ScWorkspaceSwitchCardProps, ScWorkspaceSwitchMobile, ScWorkspaceSwitchMobileV2, type SelectionListState, type SidebarAppIdentityConfig, type SidebarConfig, type SidebarIconContext, type SidebarIconMap, type SidebarIconRenderer, type SidebarMenuItemConfig, type SidebarProduct, type SidebarProfileConfig, type SidebarResizeGestureResult, type SidebarResizeGestureState, type SidebarSectionConfig, type StreamoidAppSwitchProduct, StreamoidSidebar, type StreamoidSidebarPopoverPlacement, type StreamoidSidebarPopoverPosition, type StreamoidSidebarPopoverPositionOptions, type StreamoidSidebarPreferenceOptions, type StreamoidSidebarPreferenceState, type StreamoidSidebarProps, type StreamoidThemePreferenceOptions, type StreamoidThemePreferenceState, StreamoidWorkspaceSwitcher, type StreamoidWorkspaceSwitcherProps, UsageHistoryMobile, type WorkspaceSwitcherConfig, type WorkspaceSwitcherItem, advanceSidebarResizeGesture, createStreamoidAppSwitchUtilities, formatSubAgentLabel, hasCollapsedMark, streamoidAppSwitchTagline, streamoidChangelogUrl, useStreamoidSidebarPopoverPosition, useStreamoidSidebarPreference, useStreamoidThemePreference };
package/dist/index.js CHANGED
@@ -27,6 +27,7 @@ __export(index_exports, {
27
27
  ProductWordmark: () => ProductWordmark,
28
28
  SIDEBAR_RESIZE_THRESHOLD_PX: () => SIDEBAR_RESIZE_THRESHOLD_PX,
29
29
  STREAMOID_CHANGELOG_URL: () => STREAMOID_CHANGELOG_URL,
30
+ STREAMOID_CHANGELOG_URLS: () => STREAMOID_CHANGELOG_URLS,
30
31
  STREAMOID_STATUS_PAGE_URL: () => STREAMOID_STATUS_PAGE_URL,
31
32
  ScAccess: () => ScAccess,
32
33
  ScAppCard: () => ScAppCard,
@@ -160,6 +161,8 @@ __export(index_exports, {
160
161
  createStreamoidAppSwitchUtilities: () => createStreamoidAppSwitchUtilities,
161
162
  formatSubAgentLabel: () => formatSubAgentLabel,
162
163
  hasCollapsedMark: () => hasCollapsedMark,
164
+ streamoidAppSwitchTagline: () => streamoidAppSwitchTagline,
165
+ streamoidChangelogUrl: () => streamoidChangelogUrl,
163
166
  useStreamoidSidebarPopoverPosition: () => useStreamoidSidebarPopoverPosition,
164
167
  useStreamoidSidebarPreference: () => useStreamoidSidebarPreference,
165
168
  useStreamoidThemePreference: () => useStreamoidThemePreference
@@ -383,8 +386,21 @@ function ScStreamoidMascot({
383
386
 
384
387
  // src/SC-AppSwitch/ScAppSwitchPanel.tsx
385
388
  var import_jsx_runtime5 = require("react/jsx-runtime");
386
- var STREAMOID_CHANGELOG_URL = "https://doc.clickup.com/3414296/p/h/3868r-26044/13a22b6f796b2c8";
387
- var STREAMOID_STATUS_PAGE_URL = "https://status.streamoid.com/";
389
+ var STREAMOID_CHANGELOG_URLS = {
390
+ tactix: "https://streamoid.com/tactix/changelog",
391
+ artifax: "https://streamoid.com/artifax/changelog",
392
+ photogenix: "https://streamoid.com/photogenix/changelog",
393
+ catalogix: "https://streamoid.com/catalogix/changelog",
394
+ cxo: "https://streamoid.com/cxo/changelog",
395
+ streamoid: "https://streamoid.com/cxo/changelog"
396
+ };
397
+ var STREAMOID_CHANGELOG_URL = STREAMOID_CHANGELOG_URLS.cxo;
398
+ var STREAMOID_STATUS_PAGE_URL = "https://streamoid.com/status";
399
+ function streamoidChangelogUrl(product) {
400
+ if (!product) return void 0;
401
+ const key = product.toLowerCase();
402
+ return STREAMOID_CHANGELOG_URLS[key];
403
+ }
388
404
  function openExternal(url) {
389
405
  if (typeof window !== "undefined") {
390
406
  window.open(url, "_blank", "noopener,noreferrer");
@@ -395,23 +411,21 @@ function createStreamoidAppSwitchUtilities(utilities) {
395
411
  utilities.onClose?.();
396
412
  action();
397
413
  };
414
+ const changelog = utilities.changelogUrl ?? streamoidChangelogUrl(utilities.product) ?? STREAMOID_CHANGELOG_URL;
415
+ const status = utilities.statusPageUrl ?? STREAMOID_STATUS_PAGE_URL;
398
416
  return [
399
417
  {
400
418
  key: "changelog",
401
419
  label: "Changelog",
402
420
  trailingText: utilities.appVersion,
403
421
  external: true,
404
- onSelect: before(
405
- () => openExternal(utilities.changelogUrl ?? STREAMOID_CHANGELOG_URL)
406
- )
422
+ onSelect: before(() => openExternal(changelog))
407
423
  },
408
424
  {
409
425
  key: "status",
410
426
  label: "Status Page",
411
427
  external: true,
412
- onSelect: before(
413
- () => openExternal(utilities.statusPageUrl ?? STREAMOID_STATUS_PAGE_URL)
414
- )
428
+ onSelect: before(() => openExternal(status))
415
429
  },
416
430
  {
417
431
  key: "support",
@@ -427,11 +441,23 @@ var T = {
427
441
  font: "var(--font-family-font-family-body, 'Inter', sans-serif)"
428
442
  };
429
443
  var PRODUCT_BRANDS = [
430
- { match: ["tactix"], product: "tactix" },
431
- { match: ["artifax", "design studio"], product: "artifax" },
432
- { match: ["photogenix", "photo studio"], product: "photogenix" },
433
- { match: ["catalogix", "catalog studio"], product: "catalogix" },
434
- { match: ["streamoid", "cxo"], streamoid: true }
444
+ { match: ["tactix"], product: "tactix", tagline: "for buyers and planners" },
445
+ {
446
+ match: ["artifax", "design studio"],
447
+ product: "artifax",
448
+ tagline: "for design and development"
449
+ },
450
+ {
451
+ match: ["photogenix", "photo studio"],
452
+ product: "photogenix",
453
+ tagline: "for studio and content"
454
+ },
455
+ {
456
+ match: ["catalogix", "catalog studio"],
457
+ product: "catalogix",
458
+ tagline: "for catalog and ecommerce"
459
+ },
460
+ { match: ["streamoid", "cxo"], streamoid: true, tagline: "for CXOs" }
435
461
  ];
436
462
  function productBrandIndex(key, name) {
437
463
  const k = `${key} ${name}`.toLowerCase();
@@ -443,6 +469,12 @@ function matchProductBrand(key, name) {
443
469
  const index = productBrandIndex(key, name);
444
470
  return index === -1 ? null : PRODUCT_BRANDS[index];
445
471
  }
472
+ function streamoidAppSwitchTagline(key, name) {
473
+ return matchProductBrand(key, name)?.tagline;
474
+ }
475
+ function rowDescription(item, brand) {
476
+ return brand?.tagline ?? item.description;
477
+ }
446
478
  function orderIndex(item) {
447
479
  const index = productBrandIndex(item.key, item.name);
448
480
  return index === -1 ? PRODUCT_BRANDS.length : index;
@@ -454,6 +486,7 @@ var ScAppSwitchRow = ({
454
486
  const [focused, setFocused] = (0, import_react2.useState)(false);
455
487
  const interactive = hover || focused;
456
488
  const brand = matchProductBrand(item.key, item.name);
489
+ const description = rowDescription(item, brand);
457
490
  const labelColor = interactive ? T.primary : T.secondary;
458
491
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
459
492
  "button",
@@ -523,7 +556,7 @@ var ScAppSwitchRow = ({
523
556
  ) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ScStreamoidWordmark, { width: 110, height: 16, color: labelColor })
524
557
  }
525
558
  ),
526
- item.description ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
559
+ description ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
527
560
  "span",
528
561
  {
529
562
  style: {
@@ -532,7 +565,7 @@ var ScAppSwitchRow = ({
532
565
  lineHeight: "var(--line-height-line-height-xs, 16px)",
533
566
  whiteSpace: "nowrap"
534
567
  },
535
- children: item.description
568
+ children: description
536
569
  }
537
570
  ) : null
538
571
  ]
@@ -550,7 +583,7 @@ var ScAppSwitchRow = ({
550
583
  children: item.name
551
584
  }
552
585
  ),
553
- item.description ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
586
+ description ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
554
587
  "span",
555
588
  {
556
589
  style: {
@@ -558,7 +591,7 @@ var ScAppSwitchRow = ({
558
591
  fontSize: "var(--font-size-font-size-sm, 14px)",
559
592
  lineHeight: "var(--line-height-line-height-sm, 20px)"
560
593
  },
561
- children: item.description
594
+ children: description
562
595
  }
563
596
  ) : null
564
597
  ] })
package/dist/index.mjs CHANGED
@@ -215,8 +215,21 @@ function ScStreamoidMascot({
215
215
 
216
216
  // src/SC-AppSwitch/ScAppSwitchPanel.tsx
217
217
  import { Fragment, jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
218
- var STREAMOID_CHANGELOG_URL = "https://doc.clickup.com/3414296/p/h/3868r-26044/13a22b6f796b2c8";
219
- var STREAMOID_STATUS_PAGE_URL = "https://status.streamoid.com/";
218
+ var STREAMOID_CHANGELOG_URLS = {
219
+ tactix: "https://streamoid.com/tactix/changelog",
220
+ artifax: "https://streamoid.com/artifax/changelog",
221
+ photogenix: "https://streamoid.com/photogenix/changelog",
222
+ catalogix: "https://streamoid.com/catalogix/changelog",
223
+ cxo: "https://streamoid.com/cxo/changelog",
224
+ streamoid: "https://streamoid.com/cxo/changelog"
225
+ };
226
+ var STREAMOID_CHANGELOG_URL = STREAMOID_CHANGELOG_URLS.cxo;
227
+ var STREAMOID_STATUS_PAGE_URL = "https://streamoid.com/status";
228
+ function streamoidChangelogUrl(product) {
229
+ if (!product) return void 0;
230
+ const key = product.toLowerCase();
231
+ return STREAMOID_CHANGELOG_URLS[key];
232
+ }
220
233
  function openExternal(url) {
221
234
  if (typeof window !== "undefined") {
222
235
  window.open(url, "_blank", "noopener,noreferrer");
@@ -227,23 +240,21 @@ function createStreamoidAppSwitchUtilities(utilities) {
227
240
  utilities.onClose?.();
228
241
  action();
229
242
  };
243
+ const changelog = utilities.changelogUrl ?? streamoidChangelogUrl(utilities.product) ?? STREAMOID_CHANGELOG_URL;
244
+ const status = utilities.statusPageUrl ?? STREAMOID_STATUS_PAGE_URL;
230
245
  return [
231
246
  {
232
247
  key: "changelog",
233
248
  label: "Changelog",
234
249
  trailingText: utilities.appVersion,
235
250
  external: true,
236
- onSelect: before(
237
- () => openExternal(utilities.changelogUrl ?? STREAMOID_CHANGELOG_URL)
238
- )
251
+ onSelect: before(() => openExternal(changelog))
239
252
  },
240
253
  {
241
254
  key: "status",
242
255
  label: "Status Page",
243
256
  external: true,
244
- onSelect: before(
245
- () => openExternal(utilities.statusPageUrl ?? STREAMOID_STATUS_PAGE_URL)
246
- )
257
+ onSelect: before(() => openExternal(status))
247
258
  },
248
259
  {
249
260
  key: "support",
@@ -259,11 +270,23 @@ var T = {
259
270
  font: "var(--font-family-font-family-body, 'Inter', sans-serif)"
260
271
  };
261
272
  var PRODUCT_BRANDS = [
262
- { match: ["tactix"], product: "tactix" },
263
- { match: ["artifax", "design studio"], product: "artifax" },
264
- { match: ["photogenix", "photo studio"], product: "photogenix" },
265
- { match: ["catalogix", "catalog studio"], product: "catalogix" },
266
- { match: ["streamoid", "cxo"], streamoid: true }
273
+ { match: ["tactix"], product: "tactix", tagline: "for buyers and planners" },
274
+ {
275
+ match: ["artifax", "design studio"],
276
+ product: "artifax",
277
+ tagline: "for design and development"
278
+ },
279
+ {
280
+ match: ["photogenix", "photo studio"],
281
+ product: "photogenix",
282
+ tagline: "for studio and content"
283
+ },
284
+ {
285
+ match: ["catalogix", "catalog studio"],
286
+ product: "catalogix",
287
+ tagline: "for catalog and ecommerce"
288
+ },
289
+ { match: ["streamoid", "cxo"], streamoid: true, tagline: "for CXOs" }
267
290
  ];
268
291
  function productBrandIndex(key, name) {
269
292
  const k = `${key} ${name}`.toLowerCase();
@@ -275,6 +298,12 @@ function matchProductBrand(key, name) {
275
298
  const index = productBrandIndex(key, name);
276
299
  return index === -1 ? null : PRODUCT_BRANDS[index];
277
300
  }
301
+ function streamoidAppSwitchTagline(key, name) {
302
+ return matchProductBrand(key, name)?.tagline;
303
+ }
304
+ function rowDescription(item, brand) {
305
+ return brand?.tagline ?? item.description;
306
+ }
278
307
  function orderIndex(item) {
279
308
  const index = productBrandIndex(item.key, item.name);
280
309
  return index === -1 ? PRODUCT_BRANDS.length : index;
@@ -286,6 +315,7 @@ var ScAppSwitchRow = ({
286
315
  const [focused, setFocused] = useState(false);
287
316
  const interactive = hover || focused;
288
317
  const brand = matchProductBrand(item.key, item.name);
318
+ const description = rowDescription(item, brand);
289
319
  const labelColor = interactive ? T.primary : T.secondary;
290
320
  return /* @__PURE__ */ jsxs4(
291
321
  "button",
@@ -355,7 +385,7 @@ var ScAppSwitchRow = ({
355
385
  ) : /* @__PURE__ */ jsx5(ScStreamoidWordmark, { width: 110, height: 16, color: labelColor })
356
386
  }
357
387
  ),
358
- item.description ? /* @__PURE__ */ jsx5(
388
+ description ? /* @__PURE__ */ jsx5(
359
389
  "span",
360
390
  {
361
391
  style: {
@@ -364,7 +394,7 @@ var ScAppSwitchRow = ({
364
394
  lineHeight: "var(--line-height-line-height-xs, 16px)",
365
395
  whiteSpace: "nowrap"
366
396
  },
367
- children: item.description
397
+ children: description
368
398
  }
369
399
  ) : null
370
400
  ]
@@ -382,7 +412,7 @@ var ScAppSwitchRow = ({
382
412
  children: item.name
383
413
  }
384
414
  ),
385
- item.description ? /* @__PURE__ */ jsx5(
415
+ description ? /* @__PURE__ */ jsx5(
386
416
  "span",
387
417
  {
388
418
  style: {
@@ -390,7 +420,7 @@ var ScAppSwitchRow = ({
390
420
  fontSize: "var(--font-size-font-size-sm, 14px)",
391
421
  lineHeight: "var(--line-height-line-height-sm, 20px)"
392
422
  },
393
- children: item.description
423
+ children: description
394
424
  }
395
425
  ) : null
396
426
  ] })
@@ -11854,6 +11884,7 @@ export {
11854
11884
  ProductWordmark,
11855
11885
  SIDEBAR_RESIZE_THRESHOLD_PX,
11856
11886
  STREAMOID_CHANGELOG_URL,
11887
+ STREAMOID_CHANGELOG_URLS,
11857
11888
  STREAMOID_STATUS_PAGE_URL,
11858
11889
  ScAccess,
11859
11890
  ScAppCard,
@@ -11987,6 +12018,8 @@ export {
11987
12018
  createStreamoidAppSwitchUtilities,
11988
12019
  formatSubAgentLabel,
11989
12020
  hasCollapsedMark,
12021
+ streamoidAppSwitchTagline,
12022
+ streamoidChangelogUrl,
11990
12023
  useStreamoidSidebarPopoverPosition,
11991
12024
  useStreamoidSidebarPreference,
11992
12025
  useStreamoidThemePreference
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@streamoid/ui",
3
- "version": "0.6.26",
3
+ "version": "0.6.28",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",