@streamoid/ui 0.6.47 → 0.6.49

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.
@@ -1,6 +1,6 @@
1
1
  # @streamoid/ui — component router (for AI agents)
2
2
 
3
- 126 components. Full docs for each live beside this file as `<ScName>.md`;
3
+ 127 components. Full docs for each live beside this file as `<ScName>.md`;
4
4
  the same metadata is machine-readable in `components.json`.
5
5
 
6
6
  **How to use this file:** scan for the job you need below, then open only that
@@ -136,6 +136,7 @@ theme-aware (dark on `:root`, light override) — never hardcode a colour.
136
136
  - **`ScBadges`** — use when you need to state a status, a count or a tag next to something — "Revoked", "Active", "1,240 credits", "Needs attention".
137
137
  - **`ScBeacon`** — use when a row or card needs a colour-coded state marker that sits beside a text label ("● Live", "● Needs attention").
138
138
  - **`ScDrawer`** — use when you need a create/edit panel or a detail pane that slides in from the screen edge and stays full height.
139
+ - **`ScErrorBoundary`** — use when you are wrapping an app, a route, or any subtree whose crash would otherwise blank the page.
139
140
  - **`ScGuide`** — use when you are building a product walkthrough / coachmark sequence and need the step card.
140
141
  - **`ScInfoPopup`** — use when a label or a table header needs a short explanation, and you want the standard ⓘ affordance next to it.
141
142
  - **`ScMenuOptions`** — use when you need a row in a profile flyout, an account/settings menu, or a kebab/overflow menu.
@@ -227,6 +228,7 @@ theme-aware (dark on `:root`, light override) — never hardcode a colour.
227
228
  | `ScDefaultCard` | `ScAppListingCard`, `ScStoreCard`, `ScMappingCard`, `ScBriefCard`, `ScRadio` |
228
229
  | `ScDp` | `ScIntialProfileCover`, `ScProfileImageUpdate`, `ScProfile` |
229
230
  | `ScDrawer` | `ScModal`, `ScSidebar`, `StreamoidSidebar`, `ScProfilePopup` |
231
+ | `ScErrorBoundary` | `ScBadges`, `ScToast` |
230
232
  | `ScGoogleSignIn` | `ScButton`, `ScAppSwitchPanel`, `ScAppCard` |
231
233
  | `ScGuide` | `ScInfoPopup`, `ScModal`, `ScDrawer`, `ScBeacon`, `ScPopUpMenu` |
232
234
  | `ScHDivider` | `ScVDivider` |
@@ -0,0 +1,160 @@
1
+ ---
2
+ component: ScErrorBoundary
3
+ package: "@streamoid/ui"
4
+ category: overlays
5
+ status: stable
6
+ renders: div[role="alert"]
7
+ tags: [error, boundary, crash, white-screen, report, exception, telemetry, posthog]
8
+ related: [ScBadges, ScToast]
9
+ do_not_confuse_with: [ScBadges, ScToast]
10
+ ---
11
+
12
+ # ScErrorBoundary
13
+
14
+ **The only place a white screen can be observed.** A render crash produces no
15
+ request — no span, no access-log line, no status code — so every server-side
16
+ signal we have is blind to it. This catches it, shows the user the reference the
17
+ server already minted, and gives them a way to say what happened.
18
+
19
+ ## TL;DR for agents
20
+
21
+ - **Reach for it when:** you are wrapping an app, a route, or any subtree whose
22
+ crash would otherwise blank the page.
23
+ - **Don't reach for it when:** you want to show a handled API failure inline
24
+ (→ a toast or inline message; a boundary only catches *render* errors), or you
25
+ need to catch errors in an event handler or a promise — React boundaries do
26
+ not see those.
27
+ - **Three things that will bite you:**
28
+ 1. It does **not** depend on `posthog-js`, and never will. You pass the client
29
+ in. Nothing is reported until you supply a `reporter`.
30
+ 2. Where a failure never reached a server there is **no reference**, and none
31
+ is invented — the reference line is simply absent.
32
+ 3. Error boundaries must be class components. There is no hook equivalent, so
33
+ this cannot be wrapped in one.
34
+
35
+ ---
36
+
37
+ ## 1. How to use it
38
+
39
+ ### Import
40
+
41
+ ```tsx
42
+ import { ScErrorBoundary, scCreatePostHogReporter } from "@streamoid/ui";
43
+ ```
44
+
45
+ ### Minimal usage
46
+
47
+ ```tsx
48
+ <ScErrorBoundary>
49
+ <App />
50
+ </ScErrorBoundary>
51
+ ```
52
+
53
+ That catches the crash and shows the fallback. It reports nothing — supply a
54
+ `reporter` for that.
55
+
56
+ ```tsx
57
+ <ScErrorBoundary
58
+ service="unified-admin-dashboard"
59
+ reporter={scCreatePostHogReporter(posthog)}
60
+ >
61
+ <App />
62
+ </ScErrorBoundary>
63
+ ```
64
+
65
+ ### Props
66
+
67
+ | Prop | Type | Required | Notes |
68
+ |---|---|---|---|
69
+ | `children` | `ReactNode` | yes | The subtree to guard |
70
+ | `reporter` | `(report: IScErrorReport) => void` | no | Called once on catch, and again if the user submits a note |
71
+ | `service` | `string` | no | The id from `deployment/service.yaml`, recorded on the report so it routes itself |
72
+ | `route` | `string` | no | Defaults to `window.location.pathname` |
73
+ | `fallback` | `({ error, errorRef, report }) => ReactNode` | no | Replaces the default surface entirely |
74
+
75
+ ### Recipes
76
+
77
+ **Report somewhere other than PostHog.** The signature is the whole contract:
78
+
79
+ ```tsx
80
+ <ScErrorBoundary reporter={(report) => myLogger.error(report)}>
81
+ ```
82
+
83
+ **Keep the page usable around a broken panel** by scoping the boundary rather
84
+ than wrapping the whole app:
85
+
86
+ ```tsx
87
+ <ScErrorBoundary route="/billing/invoices" fallback={({ errorRef }) => (
88
+ <InlineNotice>Invoices are unavailable. Reference {errorRef ?? "none"}.</InlineNotice>
89
+ )}>
90
+ <InvoiceTable />
91
+ </ScErrorBoundary>
92
+ ```
93
+
94
+ ## 2. Where to use it
95
+
96
+ At the root of an application, and around any subtree that is worth keeping
97
+ independently alive — a dashboard panel, a table that renders third-party data,
98
+ an editor. Scoping it narrowly is what turns a blank page into a single broken
99
+ card.
100
+
101
+ ## 3. When to use it
102
+
103
+ ### Use it when
104
+
105
+ - A crash in this subtree would otherwise show the user nothing at all.
106
+ - You want the user's own account of what they were doing attached to the error.
107
+
108
+ ### Don't use it — reach for this instead
109
+
110
+ - A handled API error you want to show inline → a toast or an inline message.
111
+ - An error thrown in an event handler or an unawaited promise → React boundaries
112
+ never see these; catch them where they are thrown.
113
+
114
+ ### Don't confuse with
115
+
116
+ - **ScBadges** — a status label, not an error surface.
117
+ - **ScToast** — transient feedback for something that was handled.
118
+
119
+ ## 4. Why to use it
120
+
121
+ Because the failure it catches is the one nothing else can see. A 5xx leaves a
122
+ span, a log line and a status code. A render crash leaves a blank rectangle and a
123
+ user who closes the tab.
124
+
125
+ It also carries the reference forward. The fallback shows `ERR-` plus the first
126
+ twelve characters of the server's trace id, which the request wrapper attached to
127
+ the failing response — so the string the user reads out is the same string that
128
+ finds the trace in SigNoz, with no lookup table in between.
129
+
130
+ ## Gotchas
131
+
132
+ - **No `posthog-js` dependency, deliberately.** This package has five consuming
133
+ applications, and a dependency added here arrives in all of them on the next
134
+ version bump whether they want it or not. A shared component library is the
135
+ wrong place to decide that a product ships an analytics SDK. The host passes
136
+ in the client it already created;`scCreatePostHogReporter` accepts anything
137
+ with a `capture` method and emits PostHog's own `$exception` event, so reports
138
+ land in its error tracking rather than a bespoke event with no view.
139
+ - **A missing reference is a real answer.** A 502 from the edge never reached the
140
+ application, so there is no trace to point at. Showing an invented id sends
141
+ whoever reads it hunting for something that does not exist.
142
+ - **Reporting cannot cause a second failure.** The `reporter` call is wrapped in
143
+ its own try/catch and its errors are swallowed.
144
+ - **The reference is `user-select: all`.** The one thing a person is expected to
145
+ do with this surface is copy that string.
146
+ - **`prompt()` is used for the note.** It is synchronous and unstyled, and the
147
+ trade is deliberate: a custom modal inside an error boundary is more code
148
+ running in a subtree that has already proven it can crash.
149
+
150
+ ## In the wild
151
+
152
+ **No host render site found** — this component is new in `@streamoid/ui@0.6.48`
153
+ and nothing consumes it yet. The first will be `unified-admin-dashboard`, whose
154
+ `utils/request.js` already annotates failures with the `errorRef` this reads.
155
+
156
+ ## Related
157
+
158
+ - `scGetErrorRef(error)` — the reference off an annotated error, exported
159
+ alongside for code that needs it outside a boundary.
160
+ - `scCreatePostHogReporter(client, { service })` — the PostHog adapter.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "package": "@streamoid/ui",
3
- "count": 126,
3
+ "count": 127,
4
4
  "components": {
5
5
  "ScAccess": {
6
6
  "doc": "ScAccess.md",
@@ -1073,6 +1073,37 @@
1073
1073
  "alsoExports": [],
1074
1074
  "exported": true
1075
1075
  },
1076
+ "ScErrorBoundary": {
1077
+ "doc": "ScErrorBoundary.md",
1078
+ "source": "src/SC-ErrorBoundary",
1079
+ "category": "overlays",
1080
+ "status": "stable",
1081
+ "renders": "div[role=\"alert\"]",
1082
+ "summary": "The only place a white screen can be observed.",
1083
+ "reachForWhen": "you are wrapping an app, a route, or any subtree whose crash would otherwise blank the page.",
1084
+ "tags": [
1085
+ "error",
1086
+ "boundary",
1087
+ "crash",
1088
+ "white-screen",
1089
+ "report",
1090
+ "exception",
1091
+ "telemetry",
1092
+ "posthog"
1093
+ ],
1094
+ "related": [
1095
+ "ScBadges",
1096
+ "ScToast"
1097
+ ],
1098
+ "doNotConfuseWith": [
1099
+ "ScBadges",
1100
+ "ScToast"
1101
+ ],
1102
+ "requiredProps": [],
1103
+ "usedBy": [],
1104
+ "alsoExports": [],
1105
+ "exported": true
1106
+ },
1076
1107
  "ScGoogleSignIn": {
1077
1108
  "doc": "ScGoogleSignIn.md",
1078
1109
  "source": "src/SC-Google sign in",
package/dist/index.css CHANGED
@@ -2194,6 +2194,76 @@
2194
2194
  position: relative;
2195
2195
  }
2196
2196
 
2197
+ /* src/SC-ErrorBoundary/ScErrorBoundary.module.css */
2198
+ .ScErrorBoundary_scErrorBoundary,
2199
+ .ScErrorBoundary_scErrorBoundary * {
2200
+ box-sizing: border-box;
2201
+ }
2202
+ .ScErrorBoundary_scErrorBoundary {
2203
+ background: var(--alias-surface-primary, #1a1a1a);
2204
+ border: 1px solid var(--alias-border-default, #3a3a3a);
2205
+ border-radius: var(--radius-md, 0.5rem);
2206
+ padding: var(--spacing-2xl, 1.5rem);
2207
+ display: flex;
2208
+ flex-direction: column;
2209
+ gap: var(--spacing-md, 0.5rem);
2210
+ align-items: flex-start;
2211
+ position: relative;
2212
+ }
2213
+ .ScErrorBoundary_title {
2214
+ color: var(--alias-text---icons-primary, var(--alias-text-and-icons-primary, #f5f5f5));
2215
+ font-family: var(--text-text-md-semibold-font-family, "Inter-SemiBold", sans-serif);
2216
+ font-size: var(--text-text-md-semibold-font-size, 1rem);
2217
+ font-weight: 600;
2218
+ text-align: left;
2219
+ }
2220
+ .ScErrorBoundary_body {
2221
+ color: var(--alias-text---icons-secondary, var(--alias-text-and-icons-secondary, #a3a3a3));
2222
+ font-family: var(--text-text-sm-regular-font-family, "Inter-Regular", sans-serif);
2223
+ font-size: var(--text-text-sm-regular-font-size, 0.875rem);
2224
+ max-width: 52ch;
2225
+ }
2226
+ .ScErrorBoundary_reference {
2227
+ color: var(--alias-text---icons-secondary, var(--alias-text-and-icons-secondary, #a3a3a3));
2228
+ font-family: var(--text-text-xs-regular-font-family, "Inter-Regular", sans-serif);
2229
+ font-size: var(--text-text-xs-regular-font-size, 0.75rem);
2230
+ }
2231
+ .ScErrorBoundary_code {
2232
+ font-family: var(--text-code-font-family, ui-monospace, "SFMono-Regular", monospace);
2233
+ background: var(--alias-fill-neutral-neutral, #262626);
2234
+ border-radius: var(--radius-sm, 0.25rem);
2235
+ padding: 0.1em 0.4em;
2236
+ user-select: all;
2237
+ }
2238
+ .ScErrorBoundary_actions {
2239
+ display: flex;
2240
+ flex-direction: row;
2241
+ gap: var(--spacing-md, 0.5rem);
2242
+ align-items: center;
2243
+ margin-top: var(--spacing-xs, 0.25rem);
2244
+ }
2245
+ .ScErrorBoundary_primary,
2246
+ .ScErrorBoundary_secondary {
2247
+ border-radius: var(--radius-sm, 0.25rem);
2248
+ padding: var(--spacing-sm, 0.375rem) var(--spacing-lg, 0.75rem);
2249
+ font-family: var(--text-text-sm-medium-font-family, "Inter-Medium", sans-serif);
2250
+ font-size: var(--text-text-sm-medium-font-size, 0.875rem);
2251
+ cursor: pointer;
2252
+ border: 1px solid var(--alias-border-default, #3a3a3a);
2253
+ }
2254
+ .ScErrorBoundary_primary {
2255
+ background: var(--alias-fill-base-base, #f5f5f5);
2256
+ color: var(--alias-text---icons-inverse, #1a1a1a);
2257
+ }
2258
+ .ScErrorBoundary_secondary {
2259
+ background: transparent;
2260
+ color: var(--alias-text---icons-primary, var(--alias-text-and-icons-primary, #f5f5f5));
2261
+ }
2262
+ .ScErrorBoundary_secondary:disabled {
2263
+ cursor: default;
2264
+ opacity: 0.6;
2265
+ }
2266
+
2197
2267
  /* src/SC-Dp/ScDp.module.css */
2198
2268
  .ScDp_scDp,
2199
2269
  .ScDp_scDp * {
@@ -4157,11 +4227,11 @@ button.ScSidebarShell_actionRow:hover {
4157
4227
  }
4158
4228
  .ScArtifaxSidebar_container.ScArtifaxSidebar_expanded {
4159
4229
  border-radius: var(--radius-3xl, 1rem);
4160
- width: 16rem;
4230
+ width: 256px;
4161
4231
  }
4162
4232
  .ScArtifaxSidebar_container.ScArtifaxSidebar_collapsed {
4163
4233
  align-items: center;
4164
- width: 3.5rem;
4234
+ width: 56px;
4165
4235
  border-radius: var(--radius-3xl, 1rem);
4166
4236
  }
4167
4237
  .ScArtifaxSidebar_borderOverlayExpanded {
@@ -4203,8 +4273,8 @@ button.ScSidebarShell_actionRow:hover {
4203
4273
  align-items: center;
4204
4274
  justify-content: center;
4205
4275
  padding: var(--spacing-md, 0.5rem);
4206
- width: 3rem;
4207
- height: 3rem;
4276
+ width: 48px;
4277
+ height: 48px;
4208
4278
  flex-shrink: 0;
4209
4279
  }
4210
4280
  .ScArtifaxSidebar_sectionContainer {
@@ -4233,7 +4303,7 @@ button.ScSidebarShell_actionRow:hover {
4233
4303
  cursor: pointer;
4234
4304
  width: 100%;
4235
4305
  text-align: left;
4236
- height: 1.75rem;
4306
+ height: 28px;
4237
4307
  }
4238
4308
  .ScArtifaxSidebar_sectionHeader:disabled {
4239
4309
  cursor: default;
@@ -4243,8 +4313,8 @@ button.ScSidebarShell_actionRow:hover {
4243
4313
  min-width: 0;
4244
4314
  color: var(--alias-text---icons-tertiary, var(--alias-text---icons-tertiary, var(--alias-text-and-icons-tertiary, #9e9e9e)));
4245
4315
  font-family: var(--sc-rail-font-family, Inter, ui-sans-serif, system-ui, sans-serif);
4246
- font-size: 0.625rem;
4247
- line-height: 1.25rem;
4316
+ font-size: 10px;
4317
+ line-height: 20px;
4248
4318
  letter-spacing: 1px;
4249
4319
  text-transform: uppercase;
4250
4320
  font-weight: 400;
@@ -4253,8 +4323,8 @@ button.ScSidebarShell_actionRow:hover {
4253
4323
  white-space: nowrap;
4254
4324
  }
4255
4325
  .ScArtifaxSidebar_sectionChevron {
4256
- width: 1rem;
4257
- height: 1rem;
4326
+ width: 16px;
4327
+ height: 16px;
4258
4328
  flex-shrink: 0;
4259
4329
  color: var(--alias-text---icons-tertiary, var(--alias-text---icons-tertiary, var(--alias-text-and-icons-tertiary, #9e9e9e)));
4260
4330
  }
@@ -4286,7 +4356,7 @@ button.ScSidebarShell_actionRow:hover {
4286
4356
  flex: 1 1 0;
4287
4357
  width: 100%;
4288
4358
  min-width: 0;
4289
- min-height: 3rem;
4359
+ min-height: 48px;
4290
4360
  align-items: center;
4291
4361
  padding: var(--spacing-md, 0.5rem) var(--spacing-xl, 0.75rem);
4292
4362
  border: none;
@@ -4301,8 +4371,8 @@ button.ScSidebarShell_actionRow:hover {
4301
4371
  }
4302
4372
  .ScArtifaxSidebar_appIdentityCollapsed {
4303
4373
  display: flex;
4304
- width: 3rem;
4305
- height: 3rem;
4374
+ width: 48px;
4375
+ height: 48px;
4306
4376
  flex-shrink: 0;
4307
4377
  align-items: center;
4308
4378
  justify-content: center;
@@ -4323,15 +4393,15 @@ button.ScSidebarShell_actionRow:hover {
4323
4393
  flex-shrink: 0;
4324
4394
  background: transparent;
4325
4395
  border: none;
4326
- width: 3rem;
4327
- height: 3rem;
4396
+ width: 48px;
4397
+ height: 48px;
4328
4398
  }
4329
4399
  .ScArtifaxSidebar_profileRowCollapsed:hover {
4330
4400
  background: var(--alias-fill-neutral-neutral, #1a1a1a);
4331
4401
  }
4332
4402
  .ScArtifaxSidebar_profileAvatar {
4333
- width: 2rem;
4334
- height: 2rem;
4403
+ width: 32px;
4404
+ height: 32px;
4335
4405
  border-radius: var(--radius-full, 999px);
4336
4406
  overflow: hidden;
4337
4407
  flex-shrink: 0;
@@ -4353,9 +4423,9 @@ button.ScSidebarShell_actionRow:hover {
4353
4423
  }
4354
4424
  .ScArtifaxSidebar_profileName {
4355
4425
  font-family: var(--sc-rail-font-family, Inter, ui-sans-serif, system-ui, sans-serif);
4356
- font-size: 0.875rem;
4426
+ font-size: 14px;
4357
4427
  font-weight: 500;
4358
- line-height: 1.25rem;
4428
+ line-height: 20px;
4359
4429
  color: var(--alias-text---icons-primary, var(--alias-text---icons-primary, var(--alias-text-and-icons-primary, #f5f5f5)));
4360
4430
  overflow: hidden;
4361
4431
  text-overflow: ellipsis;
@@ -4363,9 +4433,9 @@ button.ScSidebarShell_actionRow:hover {
4363
4433
  }
4364
4434
  .ScArtifaxSidebar_profileSubtitle {
4365
4435
  font-family: var(--sc-rail-font-family, Inter, ui-sans-serif, system-ui, sans-serif);
4366
- font-size: 0.75rem;
4436
+ font-size: 12px;
4367
4437
  font-weight: 400;
4368
- line-height: 1.125rem;
4438
+ line-height: 18px;
4369
4439
  color: var(--alias-text---icons-tertiary, var(--alias-text---icons-tertiary, var(--alias-text-and-icons-tertiary, #9e9e9e)));
4370
4440
  overflow: hidden;
4371
4441
  text-overflow: ellipsis;
@@ -4394,8 +4464,8 @@ button.ScSidebarShell_actionRow:hover {
4394
4464
  background: var(--alias-fill-neutral-neutral, #1a1a1a);
4395
4465
  }
4396
4466
  .ScArtifaxSidebar_footerToggle > * {
4397
- width: 1.5rem;
4398
- height: 1.5rem;
4467
+ width: 24px;
4468
+ height: 24px;
4399
4469
  }
4400
4470
  .ScArtifaxSidebar_footerCollapsed {
4401
4471
  display: flex;
@@ -4407,8 +4477,8 @@ button.ScSidebarShell_actionRow:hover {
4407
4477
  flex-shrink: 0;
4408
4478
  }
4409
4479
  .ScArtifaxSidebar_placeholderIcon {
4410
- width: 1.25rem;
4411
- height: 1.25rem;
4480
+ width: 20px;
4481
+ height: 20px;
4412
4482
  flex-shrink: 0;
4413
4483
  display: inline-flex;
4414
4484
  align-items: center;
@@ -4416,16 +4486,16 @@ button.ScSidebarShell_actionRow:hover {
4416
4486
  }
4417
4487
  .ScArtifaxSidebar_placeholderIcon::before {
4418
4488
  content: "";
4419
- width: 0.625rem;
4420
- height: 0.625rem;
4489
+ width: 10px;
4490
+ height: 10px;
4421
4491
  border: 1px dashed var(--alias-text---icons-tertiary, var(--alias-text---icons-tertiary, var(--alias-text-and-icons-tertiary, #9e9e9e)));
4422
4492
  border-radius: var(--radius-full, 999px);
4423
4493
  }
4424
4494
  .ScArtifaxSidebar_versionText {
4425
4495
  margin: 0;
4426
4496
  padding: var(--spacing-xxs, 0.125rem) var(--spacing-md, 0.5rem);
4427
- font-size: 0.75rem;
4428
- line-height: 1rem;
4497
+ font-size: 12px;
4498
+ line-height: 16px;
4429
4499
  text-align: center;
4430
4500
  color: var(--alias-text---icons-muted, #7a7a7a);
4431
4501
  overflow: hidden;
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from 'react';
2
- import React__default, { CSSProperties, HTMLAttributes, ReactNode, RefObject } from 'react';
2
+ import React__default, { CSSProperties, HTMLAttributes, ReactNode, Component, ErrorInfo, RefObject } from 'react';
3
3
 
4
4
  interface IScAccessProps {
5
5
  component?: React.JSX.Element;
@@ -433,6 +433,88 @@ interface CreditWarningBannerProps {
433
433
  }
434
434
  declare function CreditWarningBanner({ availableCredits, remainingPct, level, onBuyCredits, onDismiss, expanded, onCollapsedClick, }: CreditWarningBannerProps): React$1.JSX.Element | null;
435
435
 
436
+ /** A failure the request wrapper has annotated. */
437
+ interface IScAnnotatedError {
438
+ /** `ERR-XXXXXXXXXXXX`, the first twelve characters of the server's trace id. */
439
+ errorRef?: string | null;
440
+ status?: number | null;
441
+ message?: string;
442
+ }
443
+ /** Anything shaped enough like PostHog to report through. */
444
+ interface IScErrorReporterClient {
445
+ capture?: (event: string, properties?: Record<string, unknown>) => void;
446
+ }
447
+ interface IScErrorReport {
448
+ /** The reference shown to the user, when the failure carried one. */
449
+ errorRef: string | null;
450
+ /** What the user typed, when they were asked. */
451
+ note?: string;
452
+ message: string;
453
+ componentStack?: string;
454
+ route: string;
455
+ service?: string;
456
+ }
457
+ type ScErrorReporter = (report: IScErrorReport) => void;
458
+ /** The server's reference for a failure, or null when it has none.
459
+ *
460
+ * Null is a real answer and not a gap to fill: a 502 from the edge never
461
+ * reached the application, so there is no trace to point at. Inventing a
462
+ * reference sends whoever reads it looking for something that does not exist.
463
+ */
464
+ declare const scGetErrorRef: (error: unknown) => string | null;
465
+ /** Report through a PostHog instance the host already created.
466
+ *
467
+ * `$exception` is PostHog's own exception event, so these land in its error
468
+ * tracking rather than in a bespoke event nobody has a view for.
469
+ */
470
+ declare const scCreatePostHogReporter: (client: IScErrorReporterClient | null | undefined, options?: {
471
+ service?: string;
472
+ }) => ScErrorReporter;
473
+
474
+ interface IScErrorBoundaryProps {
475
+ children: ReactNode;
476
+ /** Where this is mounted, recorded on the report. Defaults to the URL path. */
477
+ route?: string;
478
+ /** The service id from deployment/service.yaml, so a report routes itself. */
479
+ service?: string;
480
+ /** Called once per caught error, before anything is rendered. */
481
+ reporter?: ScErrorReporter;
482
+ /** Replaces the default fallback entirely. */
483
+ fallback?: (state: {
484
+ error: unknown;
485
+ errorRef: string | null;
486
+ report: () => void;
487
+ }) => ReactNode;
488
+ }
489
+ interface IScErrorBoundaryState {
490
+ error: unknown;
491
+ errorRef: string | null;
492
+ componentStack?: string;
493
+ reported: boolean;
494
+ }
495
+ /**
496
+ * Catches a render error, shows the user something better than a white screen,
497
+ * and gives them a way to say what happened.
498
+ *
499
+ * A white screen produces no request, so it is invisible to every server-side
500
+ * signal: no span, no access-log line, no status code. The only place it can be
501
+ * observed is here.
502
+ *
503
+ * The reference shown is the one the server minted for the failing request,
504
+ * derived from its trace id — so the string a user reads out is the same string
505
+ * that finds the trace. Where the failure never reached a server, there is no
506
+ * reference and none is invented.
507
+ */
508
+ declare class ScErrorBoundary extends Component<IScErrorBoundaryProps, IScErrorBoundaryState> {
509
+ state: IScErrorBoundaryState;
510
+ static getDerivedStateFromError(error: unknown): Partial<IScErrorBoundaryState>;
511
+ componentDidCatch(error: unknown, info: ErrorInfo): void;
512
+ private buildReport;
513
+ private send;
514
+ private handleReport;
515
+ render(): ReactNode;
516
+ }
517
+
436
518
  interface ScDpProps {
437
519
  /** "initial" shows initials text, "image" shows an image. */
438
520
  type?: "initial" | "image";
@@ -2489,4 +2571,4 @@ interface IScProfilePopupProps extends React.HTMLAttributes<HTMLDivElement> {
2489
2571
  */
2490
2572
  declare const ScProfilePopup: React$1.ForwardRefExoticComponent<IScProfilePopupProps & React$1.RefAttributes<HTMLDivElement>>;
2491
2573
 
2492
- export { type AppSidebarAppIdentity, type AppSidebarAssistantCta, type AppSidebarCreditWarning, type AppSidebarHeader, type AppSidebarIconContext, type AppSidebarIconMap, type AppSidebarIconRenderer, type AppSidebarMenuItem, type AppSidebarProfile, type AppSidebarSection, 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 IScAppSidebarProps, 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 IScCxoWordmarkProps, 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 IScPanelResizeHandleProps, type IScPendingActionProps, type IScPhtogenixInviteProps, type IScPlanCardProps, type IScPlanComparisonProps, type IScPlanDetailsCardMobileProps, type IScPlanDetailsCardProps, type IScPopUpMenuProps, type IScPopoverArrowProps, 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 IScSidebarPopoverProps, 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, PANEL_RESIZE_STEP_PX, type PanelResizeEdge, type PanelResizeGesture, type PanelWidthBounds, 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, ScAppSidebar, 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, ScCxoWordmark, 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, ScPanelResizeHandle, ScPendingAction, ScPhtogenixInvite, ScPlanCard, ScPlanComparison, ScPlanDetailsCard, ScPlanDetailsCardMobile, ScPopUpMenu, ScPopoverArrow, 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, ScSidebarPopover, 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 StreamoidAnchorRect, type StreamoidAnchoredPopover, type StreamoidAnchoredPopoverArrow, type StreamoidAnchoredPopoverGeometry, type StreamoidAnchoredPopoverPosition, type StreamoidAnchoredPopoverPositionOptions, type StreamoidAppSwitchGroup, type StreamoidAppSwitchOptions, type StreamoidAppSwitchProduct, type StreamoidPanelWidthOptions, type StreamoidPanelWidthState, 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, clampPanelWidth, createStreamoidAppSwitchUtilities, formatStreamoidAppVersion, formatSubAgentLabel, hasCollapsedMark, resolveAnchoredPopoverArrow, resolveAnchoredPopoverPosition, resolvePanelResize, resolvePanelResizeKey, scAppSwitchOrder, streamoidAppSwitchGroups, streamoidAppSwitchTagline, streamoidChangelogUrl, useStreamoidAnchoredPopover, useStreamoidAnchoredPopoverPosition, useStreamoidPanelWidth, useStreamoidSidebarPopoverPosition, useStreamoidSidebarPreference, useStreamoidThemePreference };
2574
+ export { type AppSidebarAppIdentity, type AppSidebarAssistantCta, type AppSidebarCreditWarning, type AppSidebarHeader, type AppSidebarIconContext, type AppSidebarIconMap, type AppSidebarIconRenderer, type AppSidebarMenuItem, type AppSidebarProfile, type AppSidebarSection, 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 IScAnnotatedError, type IScAppCardForCopilotProps, type IScAppCardProps, type IScAppCardV3Props, type IScAppFieldProps, type IScAppListingCardProps, type IScAppSidebarProps, 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 IScCxoWordmarkProps, type IScDefaultCardProps, type IScDrawerProps, type IScErrorBoundaryProps, type IScErrorReport, type IScErrorReporterClient, 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 IScPanelResizeHandleProps, type IScPendingActionProps, type IScPhtogenixInviteProps, type IScPlanCardProps, type IScPlanComparisonProps, type IScPlanDetailsCardMobileProps, type IScPlanDetailsCardProps, type IScPopUpMenuProps, type IScPopoverArrowProps, 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 IScSidebarPopoverProps, 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, PANEL_RESIZE_STEP_PX, type PanelResizeEdge, type PanelResizeGesture, type PanelWidthBounds, 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, ScAppSidebar, 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, ScCxoWordmark, ScDefaultCard, ScDp, type ScDpProps, ScDrawer, ScErrorBoundary, type ScErrorReporter, ScFieldButton, ScFileField, ScGoogleSignIn, ScGuide, ScHDivider, ScHeader, ScImageField, ScInChatList, ScInChatMessage, ScInfoPopup, ScIntialProfileCover, ScLogoUnit, ScMappingCard, ScMediaApproval, ScMediaSelect, ScMenuOptions, ScMobileBottomAction, ScMobileTopNav, ScModal, ScOnlyField, ScOnlyIcon, ScPagination, ScPairtext, ScPanelResizeHandle, ScPendingAction, ScPhtogenixInvite, ScPlanCard, ScPlanComparison, ScPlanDetailsCard, ScPlanDetailsCardMobile, ScPopUpMenu, ScPopoverArrow, 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, ScSidebarPopover, 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 StreamoidAnchorRect, type StreamoidAnchoredPopover, type StreamoidAnchoredPopoverArrow, type StreamoidAnchoredPopoverGeometry, type StreamoidAnchoredPopoverPosition, type StreamoidAnchoredPopoverPositionOptions, type StreamoidAppSwitchGroup, type StreamoidAppSwitchOptions, type StreamoidAppSwitchProduct, type StreamoidPanelWidthOptions, type StreamoidPanelWidthState, 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, clampPanelWidth, createStreamoidAppSwitchUtilities, formatStreamoidAppVersion, formatSubAgentLabel, hasCollapsedMark, resolveAnchoredPopoverArrow, resolveAnchoredPopoverPosition, resolvePanelResize, resolvePanelResizeKey, scAppSwitchOrder, scCreatePostHogReporter, scGetErrorRef, streamoidAppSwitchGroups, streamoidAppSwitchTagline, streamoidChangelogUrl, useStreamoidAnchoredPopover, useStreamoidAnchoredPopoverPosition, useStreamoidPanelWidth, useStreamoidSidebarPopoverPosition, useStreamoidSidebarPreference, useStreamoidThemePreference };