@franzzemen/brokenstock-shell 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@franzzemen/brokenstock-shell",
3
- "version": "0.8.1",
3
+ "version": "0.9.0",
4
4
  "description": "Shared Angular shell library for Brokenstock applications",
5
5
  "author": "Franz Zemen",
6
6
  "license": "UNLICENSED",
@@ -8,7 +8,7 @@ import { BearerToken } from '@franzzemen/utility';
8
8
  import { UserSession, SessionSummary, Credentials } from '@franzzemen/identity';
9
9
  import * as _franzzemen_brokenstock_shell from '@franzzemen/brokenstock-shell';
10
10
  import { AutofillEvent } from '@angular/cdk/text-field';
11
- import { MatDialogRef } from '@angular/material/dialog';
11
+ import { MatDialogRef, MatDialog } from '@angular/material/dialog';
12
12
 
13
13
  type Severity = 'error' | 'warning' | 'info';
14
14
  interface CommandResult {
@@ -800,12 +800,12 @@ declare class ThemeService {
800
800
  * Asks the command box to take the cursor. Called by the shell after most
801
801
  * actions (rail choices, Log Out, ?, ⧉, Escape, sign-in) and by apps.
802
802
  *
803
- * ⚠ A NO-OP ON A PHONE (scanner-phone-display E11). The console is not rendered
804
- * below 820px, and the one place every focus request passes through is here, so
805
- * this is where it is refused: focusing a text box on a phone raises the
806
- * on-screen keyboard over the screen the user just opened. Refusing it at the
807
- * source also means a request made on a phone is not left counted up, waiting to
808
- * be acted on when the console appears after a rotation.
803
+ * ⚠ A NO-OP ON A PHONE (scanner-phone-display D10/E11). The console is shown
804
+ * below 820px, but nothing may put the cursor in it there: focusing a text box
805
+ * on a phone raises the on-screen keyboard over the screen the user just opened.
806
+ * The one place every focus request passes through is here, so this is where it
807
+ * is refused. Refusing it at the source also means a request made on a phone is
808
+ * not left counted up, to be acted on after a rotation to a wider screen.
809
809
  */
810
810
  declare class TerminalFocusService {
811
811
  #private;
@@ -937,6 +937,48 @@ declare class KeyboardShortcutService {
937
937
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<KeyboardShortcutService>;
938
938
  }
939
939
 
940
+ /** The `reason` the auth worker puts on every authenticator refusal. */
941
+ type AuthenticatorReason = 'code-required' | 'invalid-code' | 'too-many-attempts' | 'authenticator-not-set-up' | 'setup-required';
942
+ /** Which extra step the sign-in screen is on, after the password was accepted. */
943
+ type SignInCodeStep = 'none' | 'code' | 'setup';
944
+ /** GET {login}/authenticator. */
945
+ type AuthenticatorStatus = {
946
+ enrolled: boolean;
947
+ recoveryCodesLeft: number;
948
+ /** Yes/no only — the server never sends when it ends (D12). */
949
+ bypassActive: boolean;
950
+ codeRequired: boolean;
951
+ };
952
+ /** What a code-bearing request carries: a 6-digit code or a recovery code. */
953
+ type CodeEntry = {
954
+ code?: string;
955
+ recoveryCode?: string;
956
+ };
957
+ /** The QR shown once during setup, and the same secret as text for typing in by hand. */
958
+ type SetupChallenge = {
959
+ qr: string;
960
+ key: string;
961
+ };
962
+ /**
963
+ * The one message for a pause (D8). The server sends no time and the screen invents none.
964
+ */
965
+ declare const TOO_MANY_ATTEMPTS = "Too many attempts.";
966
+ /** Plain words for each refusal, shown on the sign-in screen and in the code dialog. */
967
+ declare function authenticatorMessage(reason: AuthenticatorReason | undefined): string;
968
+ /** The text file the Download button saves (D7). */
969
+ declare function recoveryCodesFile(appName: string, username: string | undefined, codes: readonly string[], now?: Date): string;
970
+
971
+ /**
972
+ * A refusal from an authenticator route, carrying the server's `reason`
973
+ * (authenticator-sign-in.prd.md). `message` is plain words for the screen.
974
+ */
975
+ declare class AuthenticatorError extends Error {
976
+ readonly reason: AuthenticatorReason | undefined;
977
+ readonly status: number;
978
+ constructor(reason: AuthenticatorReason | undefined, message: string, status: number);
979
+ }
980
+ /** Sign-in rejected because the next step is a code (or setting one up), not because anything failed. */
981
+ declare const CODE_STEP = "code-step";
940
982
  /**
941
983
  * What the user decided about sessions they already hold, sent on the SECOND
942
984
  * sign-in attempt (multiple-devices D2/D6).
@@ -949,7 +991,20 @@ type LoginChoice = {
949
991
  additional?: boolean;
950
992
  /** Identifiers read off the refusal. The server acts on them only after the password verifies, and only for that user's own sessions. */
951
993
  endSessionIds?: string[];
994
+ /** The 6-digit authenticator code (authenticator-sign-in.prd.md). */
995
+ code?: string;
996
+ /** A one-time recovery code, in place of `code`. */
997
+ recoveryCode?: string;
952
998
  };
999
+ /**
1000
+ * The sign-in request body, exactly as sent (multiple-devices E8, authenticator-sign-in.prd.md).
1001
+ *
1002
+ * Fields appear only when they carry a decision: the route's body schema is strict,
1003
+ * and `additional: false` on a first attempt would be a statement where silence is
1004
+ * meant. A code typed now wins; otherwise a ticket from a 409 that followed a
1005
+ * correct code stands in for it (the server accepts a code only once, D20).
1006
+ */
1007
+ declare function buildLoginBody(credentials: Credentials, force: boolean, options: LoginChoice, signInTicket?: string): Record<string, unknown>;
953
1008
  declare class AuthenticationService {
954
1009
  #private;
955
1010
  readonly authenticated: _angular_core.WritableSignal<boolean>;
@@ -968,6 +1023,19 @@ declare class AuthenticationService {
968
1023
  */
969
1024
  readonly additionalSignInAllowed: _angular_core.WritableSignal<boolean>;
970
1025
  readonly pendingCredentials: _angular_core.WritableSignal<Credentials | undefined>;
1026
+ /** The extra step the sign-in screen is on after the password was accepted. */
1027
+ readonly codeStep: _angular_core.WritableSignal<SignInCodeStep>;
1028
+ /** Inside an AWS-opened setup window: the QR and key to show (D9, D10). */
1029
+ readonly setupChallenge: _angular_core.WritableSignal<SetupChallenge | undefined>;
1030
+ /** New recovery codes to show ONCE, with a Download button (D7). Cleared when acknowledged. */
1031
+ readonly recoveryCodesToShow: _angular_core.WritableSignal<string[] | undefined>;
1032
+ /** Recovery codes left, from the last sign-in or status read. */
1033
+ readonly recoveryCodesLeft: _angular_core.WritableSignal<number | undefined>;
1034
+ /**
1035
+ * Whether the AWS-set bypass is on for this account (D12). Drives the banner on
1036
+ * every screen. Yes/no only: the server never says when it ends.
1037
+ */
1038
+ readonly bypassActive: _angular_core.WritableSignal<boolean>;
971
1039
  constructor();
972
1040
  /**
973
1041
  * The bearer for outbound calls.
@@ -984,6 +1052,10 @@ declare class AuthenticationService {
984
1052
  get auth(): BearerToken;
985
1053
  refresh(): Promise<boolean>;
986
1054
  clearConflict(): void;
1055
+ /** Back to the password form from the code or setup step. */
1056
+ cancelCodeStep(): void;
1057
+ /** The new recovery codes have been seen (and, we hope, downloaded). */
1058
+ acknowledgeRecoveryCodes(): void;
987
1059
  /**
988
1060
  * The session is gone and cannot be recovered — renewal failed permanently,
989
1061
  * or another window signed out.
@@ -1010,6 +1082,20 @@ declare class AuthenticationService {
1010
1082
  * refused once and said what was live.
1011
1083
  */
1012
1084
  login(credentials: Credentials, force?: boolean, options?: LoginChoice): Promise<void>;
1085
+ /** Whether an authenticator is set up, codes left, and whether the bypass is on. Refreshes the banner. */
1086
+ authenticatorStatus(): Promise<AuthenticatorStatus>;
1087
+ /** Begin setting up (or replacing) the authenticator: the password again, plus a current code when replacing (D5). */
1088
+ startAuthenticatorSetup(password: string, current?: CodeEntry): Promise<SetupChallenge>;
1089
+ /** Finish setup with the first code from the newly scanned app. Returns the 10 recovery codes, once. */
1090
+ confirmAuthenticatorSetup(code: string): Promise<string[]>;
1091
+ /** Ten new recovery codes; the old ones stop working (D7). Needs a current code. */
1092
+ reissueRecoveryCodes(code: string): Promise<string[]>;
1093
+ /**
1094
+ * The on-demand check (D15): proves the code again on this session and returns
1095
+ * when it was recorded. `purpose` is a short label for the log, e.g.
1096
+ * 'arm-live-trading' — it changes nothing. The bypass never satisfies this.
1097
+ */
1098
+ verifyCode(entry: CodeEntry, purpose?: string): Promise<number>;
1013
1099
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AuthenticationService, never>;
1014
1100
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AuthenticationService>;
1015
1101
  }
@@ -1099,30 +1185,24 @@ declare class Shell {
1099
1185
  readonly isPhone: _angular_core.Signal<boolean>;
1100
1186
  readonly phoneMenuOpen: _angular_core.Signal<boolean>;
1101
1187
  /**
1102
- * Whether the console (command box, output, and the resize bar above it) is
1103
- * shown, and whether it takes the cursor when it appears.
1188
+ * Whether the command box takes the cursor when the console appears: on a
1189
+ * desktop yes, on a phone never (scanner-phone-display D10, Franz 2026-10-17).
1104
1190
  *
1105
- * `show`: never on a phone — Franz, 2026-10-16 (scanner-phone-display E11).
1106
- * The user's show/hide choice is kept untouched, so rotating to a width of
1107
- * 820px or more brings the console back exactly as it was left. Commands do
1108
- * not depend on the console: `CommandService.execute` runs from any button
1109
- * whether or not it is on screen.
1191
+ * The console is shown on a phone again (reversing 0.8.1), but nothing may
1192
+ * put the cursor in its box there — the on-screen keyboard would cover the
1193
+ * screen. That includes the user turning the console ON from the ☰ menu: a
1194
+ * show is not a request to type, and the keyboard rising over the console the
1195
+ * moment it appears would hide the output the user wanted to see. Tapping the
1196
+ * box is the only way it gets the cursor on a phone.
1110
1197
  *
1111
- * `focusOnAppear`: false only when the console is appearing because the
1112
- * screen widened past 820px (see CommandTerminal.focusOnAppear); true at
1113
- * start-up and after the user turns the console on.
1114
- *
1115
- * ⚠ ONE SIGNAL, READ UNCONDITIONALLY BY THE TEMPLATE (`[class.terminal-hidden]`),
1116
- * and that is load-bearing. The focus decision needs the PREVIOUS layout to
1117
- * tell "widened from a phone" apart from "turned on". A linkedSignal only sees
1118
- * the state as of its last read, so a value read only inside the console's
1119
- * `@if` — never read while on a phone — would miss the phone state entirely
1120
- * and grab the cursor on rotation.
1198
+ * Rotating across 820px never mounts or unmounts the console (its visibility
1199
+ * is the user's choice alone), so this is only read when the user turns it on
1200
+ * or at start-up. CommandTerminal.focusInput also refuses on a phone, as a
1201
+ * second guard.
1121
1202
  */
1122
- readonly consoleState: _angular_core.WritableSignal<{
1123
- show: boolean;
1124
- focusOnAppear: boolean;
1125
- }>;
1203
+ readonly consoleFocusOnAppear: _angular_core.Signal<boolean>;
1204
+ /** "Sign-in code check is off." on every screen while the bypass is on (D12). */
1205
+ readonly bypassActive: _angular_core.WritableSignal<boolean>;
1126
1206
  closePhoneMenu(): void;
1127
1207
  dismissHelp(): void;
1128
1208
  readonly terminalHeight: _angular_core.WritableSignal<string>;
@@ -1150,13 +1230,11 @@ declare class SideMenu {
1150
1230
  * untouched — they are document-level listeners and work from a hardware
1151
1231
  * keyboard whatever the layout.
1152
1232
  *
1153
- * The console show/hide button is left out too: the console is not rendered
1154
- * on a phone at all (Franz, 2026-10-16, scanner-phone-display E11), so the
1155
- * button would have nothing to show.
1233
+ * The console show/hide button stays (Franz, 2026-10-17: the console is back
1234
+ * on phones, reversing 0.8.1). Turning the console ON from here does not put
1235
+ * the cursor in the command box on a phone — see CommandTerminal.focusOnAppear.
1156
1236
  */
1157
1237
  readonly drawer: _angular_core.InputSignal<boolean>;
1158
- /** The console show/hide button — the icon column only (see `drawer`). */
1159
- readonly showConsoleToggle: _angular_core.Signal<boolean>;
1160
1238
  readonly menuItems: _angular_core.Signal<MenuItem[]>;
1161
1239
  /**
1162
1240
  * Readiness, not entitlement — an unentitled item never reaches here, having
@@ -1235,11 +1313,11 @@ declare class CommandTerminal {
1235
1313
  /**
1236
1314
  * Whether the command box takes the cursor when the console first appears.
1237
1315
  *
1238
- * True for a standalone console and for the console showing at start-up or
1239
- * after the user turns it back on. The shell passes false when the console
1240
- * appears because the screen widened past 820px (a tablet or phone rotated to
1241
- * landscape): a layout change is not the user asking to type, and taking the
1242
- * cursor there would pull it out of whatever they were doing.
1316
+ * True for a standalone console. The shell passes false on a phone (below
1317
+ * 820px), including when the user turns the console on from the ☰ menu:
1318
+ * showing the console is not a request to type, and focusing the box would
1319
+ * raise the on-screen keyboard over it (scanner-phone-display D10). On a
1320
+ * phone, focusInput() refuses anyway; this keeps the intent explicit.
1243
1321
  */
1244
1322
  readonly focusOnAppear: _angular_core.InputSignal<boolean>;
1245
1323
  readonly history: _angular_core.Signal<_franzzemen_brokenstock_shell.CommandHistoryEntry[]>;
@@ -1256,9 +1334,11 @@ declare class CommandTerminal {
1256
1334
  onTab(event: KeyboardEvent): void;
1257
1335
  getSeverityClass(result: CommandResult): string;
1258
1336
  /**
1259
- * ⚠ A no-op on a phone (scanner-phone-display E11). The shell does not render
1260
- * the console there at all; this guard covers an app that mounts the console
1261
- * itself, so nothing on a phone can raise the on-screen keyboard unasked.
1337
+ * ⚠ A no-op on a phone (scanner-phone-display D10/E11). The console is shown
1338
+ * there, but only the user tapping the box may give it the cursor; every
1339
+ * programmatic path (first appearance, a finished command, a focus request,
1340
+ * an app calling this) ends here and is refused, so nothing on a phone can
1341
+ * raise the on-screen keyboard unasked.
1262
1342
  */
1263
1343
  focusInput(): void;
1264
1344
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommandTerminal, never>;
@@ -1287,6 +1367,10 @@ declare class Login {
1287
1367
  * here, on the screen that lists what is actually running.
1288
1368
  */
1289
1369
  readonly selected: _angular_core.WritableSignal<ReadonlySet<string>>;
1370
+ /** The code or recovery code typed on the code step (authenticator-sign-in.prd.md). */
1371
+ codeText: string;
1372
+ /** Typing a recovery code instead of the 6-digit code. */
1373
+ readonly useRecovery: _angular_core.WritableSignal<boolean>;
1290
1374
  protected readonly USERNAME_REGEX: RegExp;
1291
1375
  protected readonly PASSWORD_REGEX: RegExp;
1292
1376
  protected readonly appName: string;
@@ -1311,11 +1395,81 @@ declare class Login {
1311
1395
  onTakeOver(): void;
1312
1396
  onSignInAsWell(): void;
1313
1397
  onEndSelected(): void;
1398
+ /** The code step: the 6-digit code (or a recovery code), with the credentials already accepted. */
1399
+ onSubmitCode(event: Event): void;
1400
+ onToggleRecovery(): void;
1401
+ /** Back to the password form. */
1402
+ onCancelCode(): void;
1403
+ /** New recovery codes were shown after sign-in; now go where sign-in was going. */
1404
+ onRecoveryCodesSaved(): void;
1314
1405
  onCancelConflict(): void;
1315
1406
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Login, never>;
1316
1407
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<Login, "shell-login", never, {}, {}, never, never, true, never>;
1317
1408
  }
1318
1409
 
1410
+ declare class RecoveryCodes {
1411
+ readonly codes: _angular_core.InputSignal<readonly string[]>;
1412
+ readonly appName: _angular_core.InputSignal<string>;
1413
+ readonly username: _angular_core.InputSignal<string | undefined>;
1414
+ readonly done: _angular_core.OutputEmitterRef<void>;
1415
+ protected readonly copied: _angular_core.WritableSignal<boolean>;
1416
+ download(): void;
1417
+ copy(): void;
1418
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RecoveryCodes, never>;
1419
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RecoveryCodes, "shell-recovery-codes", never, { "codes": { "alias": "codes"; "required": true; "isSignal": true; }; "appName": { "alias": "appName"; "required": false; "isSignal": true; }; "username": { "alias": "username"; "required": false; "isSignal": true; }; }, { "done": "done"; }, never, never, true, never>;
1420
+ }
1421
+
1422
+ type Mode = 'view' | 'password' | 'scan' | 'reissue' | 'codes';
1423
+ declare class AuthenticatorSettings implements OnInit {
1424
+ #private;
1425
+ protected readonly appName: string;
1426
+ protected readonly status: _angular_core.WritableSignal<AuthenticatorStatus | undefined>;
1427
+ protected readonly mode: _angular_core.WritableSignal<Mode>;
1428
+ protected readonly busy: _angular_core.WritableSignal<boolean>;
1429
+ protected readonly error: _angular_core.WritableSignal<string | undefined>;
1430
+ protected readonly challenge: _angular_core.WritableSignal<SetupChallenge | undefined>;
1431
+ protected readonly codes: _angular_core.WritableSignal<string[] | undefined>;
1432
+ protected readonly useRecovery: _angular_core.WritableSignal<boolean>;
1433
+ password: string;
1434
+ code: string;
1435
+ ngOnInit(): void;
1436
+ begin(mode: 'password' | 'reissue'): void;
1437
+ cancel(): void;
1438
+ toggleRecovery(): void;
1439
+ /** Password (and current code when replacing) → QR. */
1440
+ start(event: Event): Promise<void>;
1441
+ /** The first code from the newly scanned app → recovery codes. */
1442
+ confirm(event: Event): Promise<void>;
1443
+ reissue(event: Event): Promise<void>;
1444
+ codesSaved(): Promise<void>;
1445
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AuthenticatorSettings, never>;
1446
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AuthenticatorSettings, "shell-authenticator-settings", never, {}, {}, never, never, true, never>;
1447
+ }
1448
+
1449
+ interface CodeDialogData {
1450
+ title: string;
1451
+ /** One line under the title saying what the code is for. */
1452
+ message?: string;
1453
+ /** Short lowercase label for the log, e.g. 'arm-live-trading' (D17). Changes nothing. */
1454
+ purpose?: string;
1455
+ confirmLabel?: string;
1456
+ }
1457
+ declare class CodeDialog {
1458
+ #private;
1459
+ readonly data: CodeDialogData;
1460
+ readonly dialogRef: MatDialogRef<any, any>;
1461
+ text: string;
1462
+ protected readonly useRecovery: _angular_core.WritableSignal<boolean>;
1463
+ protected readonly busy: _angular_core.WritableSignal<boolean>;
1464
+ protected readonly error: _angular_core.WritableSignal<string | undefined>;
1465
+ toggleRecovery(): void;
1466
+ submit(event: Event): Promise<void>;
1467
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CodeDialog, never>;
1468
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CodeDialog, "shell-code-dialog", never, {}, {}, never, never, true, never>;
1469
+ }
1470
+ /** Opens the dialog; resolves with the recorded time (epoch ms), or undefined when cancelled. */
1471
+ declare function openCodeDialog(dialog: MatDialog, data: CodeDialogData): Promise<number | undefined>;
1472
+
1319
1473
  interface ConfirmDialogData {
1320
1474
  title: string;
1321
1475
  message: string;
@@ -1330,6 +1484,6 @@ declare class ConfirmDialog {
1330
1484
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConfirmDialog, "shell-confirm-dialog", never, {}, {}, never, never, true, never>;
1331
1485
  }
1332
1486
 
1333
- export { AuthenticationService, CLEAR_USAGE, CommandRegistryService, CommandService, CommandTerminal, ConfirmDialog, FAQ_CONTENT_LOADER, FAQ_DEV_EDITOR, FAQ_DEV_MODE, FAQ_DEV_WORKSPACE_ROOT, FAQ_PUBLIC_PUBLISHER, FAQ_PUBLIC_SITE_BASE_URL, FaqAuthoringPanel, FaqHistoryService, FaqMarkdownRendererService, FaqModal, FaqService, HELP_USAGE, HttpFaqContentLoader, KeyboardShortcutService, Login, MainContent, PhoneLayoutService, PublicFaqIndex, PublicFaqPage, PublicFaqToc, RegexValidatorDirective, SESSION_TOKEN_KEY, SHELL_APP_NAME, SHELL_AUTH_URLS, SHELL_COMMANDS, SHELL_MENU_ITEMS, SHELL_PHONE_MEDIA_QUERY, SHELL_POST_LOGIN_ROUTE, SHELL_SHARED_SESSION, SessionTokenStore, Shell, SideMenu, StatusBar, TerminalFocusService, TerminalVisibilityService, ThemeService, ThinkingService, audienceAllowed, authGuard, authInterceptor, buildFallbackChain, decideRenewal, guestGuard, matchesRoute, provideShellConfig, tokenize };
1334
- export type { CommandAlias, CommandAvailability, CommandDefinition, CommandHistoryEntry, CommandLexiconEntry, CommandResult, CommandScope, ConfirmDialogData, FaqAudience, FaqContentLoader, FaqDevEditor, FaqEntry, FaqFrontmatter, FaqManifest, FaqPublicPublisher, FaqRegistrationHandle, FaqRenderContext, FaqRenderOptions, FaqResolution, LoginChoice, MenuItem, ParsedFaq, RenewalDecision, ResolvedCommand, RouteScope, Severity, ShellAuthUrls, ShellConfig, ShortcutRegistration, ThemeMode };
1487
+ export { AuthenticationService, AuthenticatorError, AuthenticatorSettings, CLEAR_USAGE, CODE_STEP, CodeDialog, CommandRegistryService, CommandService, CommandTerminal, ConfirmDialog, FAQ_CONTENT_LOADER, FAQ_DEV_EDITOR, FAQ_DEV_MODE, FAQ_DEV_WORKSPACE_ROOT, FAQ_PUBLIC_PUBLISHER, FAQ_PUBLIC_SITE_BASE_URL, FaqAuthoringPanel, FaqHistoryService, FaqMarkdownRendererService, FaqModal, FaqService, HELP_USAGE, HttpFaqContentLoader, KeyboardShortcutService, Login, MainContent, PhoneLayoutService, PublicFaqIndex, PublicFaqPage, PublicFaqToc, RecoveryCodes, RegexValidatorDirective, SESSION_TOKEN_KEY, SHELL_APP_NAME, SHELL_AUTH_URLS, SHELL_COMMANDS, SHELL_MENU_ITEMS, SHELL_PHONE_MEDIA_QUERY, SHELL_POST_LOGIN_ROUTE, SHELL_SHARED_SESSION, SessionTokenStore, Shell, SideMenu, StatusBar, TOO_MANY_ATTEMPTS, TerminalFocusService, TerminalVisibilityService, ThemeService, ThinkingService, audienceAllowed, authGuard, authInterceptor, authenticatorMessage, buildFallbackChain, buildLoginBody, decideRenewal, guestGuard, matchesRoute, openCodeDialog, provideShellConfig, recoveryCodesFile, tokenize };
1488
+ export type { AuthenticatorReason, AuthenticatorStatus, CodeDialogData, CodeEntry, CommandAlias, CommandAvailability, CommandDefinition, CommandHistoryEntry, CommandLexiconEntry, CommandResult, CommandScope, ConfirmDialogData, FaqAudience, FaqContentLoader, FaqDevEditor, FaqEntry, FaqFrontmatter, FaqManifest, FaqPublicPublisher, FaqRegistrationHandle, FaqRenderContext, FaqRenderOptions, FaqResolution, LoginChoice, MenuItem, ParsedFaq, RenewalDecision, ResolvedCommand, RouteScope, SetupChallenge, Severity, ShellAuthUrls, ShellConfig, ShortcutRegistration, SignInCodeStep, ThemeMode };
1335
1489
  //# sourceMappingURL=franzzemen-brokenstock-shell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"franzzemen-brokenstock-shell.d.ts","sources":["../../src/lib/types/command.types.ts","../../src/lib/types/menu.types.ts","../../src/lib/tokens/shell-tokens.ts","../../src/lib/provide-shell-config.ts","../../src/lib/guards/auth.guard.ts","../../src/lib/guards/guest.guard.ts","../../src/lib/interceptors/auth.interceptor.ts","../../src/lib/directives/regex-validator.directive.ts","../../src/lib/faq/faq.types.ts","../../src/lib/faq/faq-content-loader.token.ts","../../src/lib/faq/faq-markdown-renderer.service.ts","../../src/lib/faq/http-faq-content-loader.service.ts","../../src/lib/faq/faq.service.ts","../../src/lib/faq/faq-history.service.ts","../../src/lib/faq/faq-modal/faq-modal.ts","../../src/lib/faq/faq-dev-mode.token.ts","../../src/lib/faq/faq-authoring-panel/faq-authoring-panel.ts","../../src/lib/faq/public-faq-index/public-faq-index.ts","../../src/lib/faq/public-faq-page/public-faq-page.ts","../../src/lib/faq/public-faq-toc/public-faq-toc.ts","../../src/lib/faq/faq-seo.tokens.ts","../../src/lib/services/thinking.service.ts","../../src/lib/services/session-token-store.ts","../../src/lib/services/renewal-decision.ts","../../src/lib/services/theme.service.ts","../../src/lib/services/terminal-focus.service.ts","../../src/lib/services/terminal-visibility.service.ts","../../src/lib/services/phone-layout.service.ts","../../src/lib/services/keyboard-shortcut.service.ts","../../src/lib/services/authentication.service.ts","../../src/lib/services/command-registry.service.ts","../../src/lib/services/command.service.ts","../../src/lib/commands/command.utils.ts","../../src/lib/components/shell/shell.ts","../../src/lib/components/side-menu/side-menu.ts","../../src/lib/components/status-bar/status-bar.ts","../../src/lib/components/main-content/main-content.ts","../../src/lib/components/command-terminal/command-terminal.ts","../../src/lib/components/login/login.ts","../../src/lib/components/confirm-dialog/confirm-dialog.ts"],"mappings":"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","names":["CategoryGroup"]}
1
+ {"version":3,"file":"franzzemen-brokenstock-shell.d.ts","sources":["../../src/lib/types/command.types.ts","../../src/lib/types/menu.types.ts","../../src/lib/tokens/shell-tokens.ts","../../src/lib/provide-shell-config.ts","../../src/lib/guards/auth.guard.ts","../../src/lib/guards/guest.guard.ts","../../src/lib/interceptors/auth.interceptor.ts","../../src/lib/directives/regex-validator.directive.ts","../../src/lib/faq/faq.types.ts","../../src/lib/faq/faq-content-loader.token.ts","../../src/lib/faq/faq-markdown-renderer.service.ts","../../src/lib/faq/http-faq-content-loader.service.ts","../../src/lib/faq/faq.service.ts","../../src/lib/faq/faq-history.service.ts","../../src/lib/faq/faq-modal/faq-modal.ts","../../src/lib/faq/faq-dev-mode.token.ts","../../src/lib/faq/faq-authoring-panel/faq-authoring-panel.ts","../../src/lib/faq/public-faq-index/public-faq-index.ts","../../src/lib/faq/public-faq-page/public-faq-page.ts","../../src/lib/faq/public-faq-toc/public-faq-toc.ts","../../src/lib/faq/faq-seo.tokens.ts","../../src/lib/services/thinking.service.ts","../../src/lib/services/session-token-store.ts","../../src/lib/services/renewal-decision.ts","../../src/lib/services/theme.service.ts","../../src/lib/services/terminal-focus.service.ts","../../src/lib/services/terminal-visibility.service.ts","../../src/lib/services/phone-layout.service.ts","../../src/lib/services/keyboard-shortcut.service.ts","../../src/lib/services/authenticator.types.ts","../../src/lib/services/authentication.service.ts","../../src/lib/services/command-registry.service.ts","../../src/lib/services/command.service.ts","../../src/lib/commands/command.utils.ts","../../src/lib/components/shell/shell.ts","../../src/lib/components/side-menu/side-menu.ts","../../src/lib/components/status-bar/status-bar.ts","../../src/lib/components/main-content/main-content.ts","../../src/lib/components/command-terminal/command-terminal.ts","../../src/lib/components/login/login.ts","../../src/lib/components/recovery-codes/recovery-codes.ts","../../src/lib/components/authenticator-settings/authenticator-settings.ts","../../src/lib/components/code-dialog/code-dialog.ts","../../src/lib/components/confirm-dialog/confirm-dialog.ts"],"mappings":";;;;;;;;;;;;AAMM,KAAM,QAAQ;UAEH,aAAa;;;eAGjB,IAAI;eACJ,QAAQ;;AAEpB;UAEgB,mBAAmB;;YAE1B,aAAa;;AAEtB;AAGD;;;;;;;;;;;;;;;AAeG;UACc,YAAY;AAC3B;AACA;AACD;AAED;;;;;;;;;;AAUG;UACc,UAAU;;AAEzB;;AAEA;AACA;AACD;KAEW,YAAY,cAAc,UAAU;AAEhD;;;;;AAKG;AACH,iBAAgB,YAAY;AAU5B;;;AAGG;UACc,mBAAmB;AAClC;AACA;AACA;AACA;AACA,yBAAqB,CAAC,CAAC,OAAO;;AAE9B,oBAAgB,YAAY;;AAE5B,gCAA4B,YAAY;AACxC;AACD;AAED;;;;;AAKG;UACc,mBAAmB;;;AAGnC;AAED;;AAEG;AACG,UAAW,iBAAkB,SAAQ,mBAAmB;AAC5D;;;;;;;;;;;AAWG;oBACa,mBAAmB;AAEnC,6BAAyB,aAAa,GAAG,OAAO,CAAC,aAAa;AAC/D;;UChIgB,QAAQ;;;;;AAKvB;;;AAGG;AACH;AACA;;;;;;;;;;AAUG;AACH;AACA;;;;AAIG;AACH;AACD;;UCxBgB,aAAa;;;;AAI7B;AAED,cAAa,cAAc,EAAA,cAAA;AAC3B,cAAa,gBAAgB,EAAA,cAAA,CAAA,QAAA;AAC7B,cAAa,eAAe,EAAA,cAAA,CAAA,aAAA;AAE5B;;;AAGG;AACH,cAAa,cAAc,EAAA,cAAA,CAAA,iBAAA;AAE3B,cAAa,sBAAsB,EAAA,cAAA;AAEnC;;;;;;;;;;AAUG;AACH,cAAa,oBAAoB,EAAA,cAAA;;UC5BhB,WAAW;;eAEf,QAAQ;cACT,aAAa;AACvB,eAAW,iBAAiB;AAC5B;;;AAGG;;AAEJ;AAED,iBAAgB,kBAAkB,SAAS,WAAW,GAAG,oBAAoB;;ACR7E,cAAa,SAAS,EAAE,aAavB;;ACjBD,cAAa,UAAU,EAAE,aASxB;;ACPD,cAAa,eAAe,EAAE,iBA+B7B;;ACnCD,cAIa,uBAAwB,YAAW,SAAS;AACvD,WAAK,aAAA,CAAA,WAAA,CAAA,MAAA;AAEL,sBAAkB,eAAe,GAAG,gBAAgB;oDAHzC,uBAAuB;sDAAvB,uBAAuB;AASnC;;AChBD;;;;;AAKG;KAES,WAAW;KACX,gBAAgB;AAE5B;UACiB,cAAc;;;;eAIlB,WAAW;;;;AAIvB;AAED;UACiB,QAAQ;;;;;;cAMb,WAAW;;;;AAIrB;;;;AAIG;;AAEJ;UAEgB,WAAW;;;aAGjB,QAAQ;AAClB;UAEgB,SAAS;iBACX,cAAc;;AAE5B;UAEgB,gBAAgB;aACtB,gBAAgB;AACzB;;;AAGG;;AAEJ;;ACvDD;;;;;;;AAOG;UACc,gBAAgB;;AAE/B,oBAAgB,OAAO,CAAC,WAAW;AAEnC;;;AAGG;8BACuB,OAAO;AAClC;AAED,cAAa,kBAAkB,EAAA,cAAA,CAAA,gBAAA;;AChB/B;;;;;;;;;;;;;;;AAeG;AACH,cACa,0BAA0B;AACrC,wBAAoB,SAAS;+BAQF,gBAAgB;AAO3C;oDAhBW,0BAA0B;wDAA1B,0BAA0B;AA+DtC;;AChFD;;;;;;AAMG;AACH,cACa,oBAAqB,YAAW,gBAAgB;AAC3D;;AAEA;AAEA,oBAAgB,OAAO,CAAC,WAAW;8BAYH,OAAO;oDAjB5B,oBAAoB;wDAApB,oBAAoB;AA+BhC;;UCtCgB,qBAAqB;;;AAGrC;UAEgB,aAAa;;AAE5B;;AAEA;;AAEA,WAAO,QAAQ;AACf;;;AAGG;;AAEJ;AAED;;;;;;;;;AASG;AACH,cACa,UAAU;AACrB;AACA;AACA;AACA;AAEA;;4BAEsB,aAAA,CAAA,MAAA;AAEtB;uBACiB,aAAA,CAAA,MAAA,CAAA,WAAA;sBACD,aAAA,CAAA,MAAA,CAAA,QAAA;AAGhB;wBACkB,aAAA,CAAA,MAAA;AAElB;0BACoB,aAAA,CAAA,MAAA,CAAA,QAAA;AAEpB;4BACsB,aAAA,CAAA,MAAA;AAEtB;8BACwB,aAAA,CAAA,MAAA;AAExB;yBACmB,aAAA,CAAA,MAAA;AAGnB;gCAC0B,aAAA,CAAA,MAAA;;AAG1B;wBAIkB,aAAA,CAAA,MAAA;2BACG,aAAA,CAAA,MAAA;;AAMrB;;;AAGG;AACH,sBAAkB,OAAO,CAAC,WAAW;AAiBrC;;;;;AAKG;AACG,8DAGH,OAAO,CAAC,aAAa;AAiBxB;;;;AAIG;AACH,2BAAuB,qBAAqB;AAS5C;;;;;AAKG;;;QAIA,OAAO;AA+CV;;;;AAIG;6BAC4B,OAAO;AAUtC;AAGA;AAIA;;;AAGG;AACH;AAKA;;oDAlMW,UAAU;wDAAV,UAAU;AAoNtB;AAED,iBAAgB,kBAAkB;AAYlC,iBAAgB,eAAe,WACnB,WAAW;;ACtQvB;;;;;;;;;;;;;;;;;;AAkBG;AACH,cACa,iBAAiB;AAC5B;AACA;oBACc,aAAA,CAAA,MAAA;uBACG,aAAA,CAAA,MAAA;;;;;;;;AAWjB;;;;AAIG;AACH;;AAcA;AAUA;AAIA;;AAKA;AAKA;;;AAUA;;;;AAIG;AACH;AAgBA;AAWA;AAIA;AAMA;AAMA;oDApHW,iBAAiB;wDAAjB,iBAAiB;AA4I7B;;AC5ID,UAAU,QAAQ;;aAEP,QAAQ;AAClB;AAED,UAAU,YAAY;;;;;AAKrB;AAqBD;;;;;;;;;;AAUG;AACH,cASa,QAAQ;;AAGnB;AACA;AACA;AACA;AACA;mBAEa,aAAA,CAAA,MAAA;yBACM,aAAA,CAAA,MAAA;0BACC,aAAA,CAAA,MAAA,CAAA,QAAA;wBACF,aAAA,CAAA,MAAA;wBACA,aAAA,CAAA,MAAA;2BACG,aAAA,CAAA,MAAA;+BAEI,aAAA,CAAA,cAAA;yBACN,aAAA,CAAA,cAAA;0BACC,aAAA,CAAA,cAAA;4BACE,aAAA,CAAA,cAAA;4BACA,aAAA,CAAA,cAAA,CAAA,YAAA;;;2BAKD,aAAA,CAAA,MAAA;kBAWT,aAAA,CAAA,MAAA,CAAA,QAAA;AAuBc,qBAAiB,UAAU,CAAC,cAAc;;AAoCpE;AAIA;AAIA;AAIA,2BAAuB,KAAK;AAI5B;AAIA;AAIA;AAIA;AAIA;AAQA,yBAAqB,KAAK;AAM1B;AAIA;;AA4CA;AAiBA;;;AAGG;AACH,0BAAsB,UAAU;oDAlNrB,QAAQ;sDAAR,QAAQ;AA+PpB;;ACtUD;;;;;;;;;;AAUG;AACH,cAAa,YAAY,EAAA,cAAA;AAKzB;;;;;AAKG;AACH,cAAa,sBAAsB,EAAA,cAAA;AAKnC;;;AAGG;KACS,YAAY;AACxB,cAAa,cAAc,EAAA,cAAA,CAAA,YAAA;;ACjB3B;;;;;;;;;;;AAWG;AACH,cAQa,iBAAiB;AAC5B;AACA;AACA;;mBAGa,aAAA,CAAA,WAAA;AACb;;;AAGG;kBACS,aAAA,CAAA,WAAA;;wBAEM,aAAA,CAAA,WAAA;;oBAEJ,aAAA,CAAA,WAAA,CAAA,QAAA;uBAEG,aAAA,CAAA,cAAA;2BACI,aAAA,CAAA,cAAA;wBACH,aAAA,CAAA,cAAA;sBAEF,aAAA,CAAA,MAAA;sBAMA,aAAA,CAAA,MAAA;yBAKG,aAAA,CAAA,MAAA;0BAMC,aAAA,CAAA,MAAA;0BAIA,aAAA,CAAA,MAAA;kCAEQ,aAAA,CAAA,MAAA;yBAoBT,aAAA,CAAA,MAAA,CAAA,QAAA;AAEnB,0BAAoB,aAAA,CAAA,MAAA;;;AAGjB;AAEH;AAIA;AAIM,uCAAmC,OAAO;oDA/ErC,iBAAiB;sDAAjB,iBAAiB;AA0F7B;;ACnHD,UAAUA,eAAa;;aAEZ,QAAQ;AAClB;AAED;;;;;;;;;AASG;AACH,cAoFa,cAAe,YAAW,MAAM;AAC3C;AACA;AACA;AACA;AACA;AAEA;sBACgB,aAAA,CAAA,cAAA;6BAEO,aAAA,CAAA,MAAA,CAAA,QAAA;qBAIR,aAAA,CAAA,MAAA,CAAAA,eAAA;qBAiBA,aAAA,CAAA,MAAA;AAgCT,gBAAY,OAAO;AAUzB;oDAzEW,cAAc;sDAAd,cAAc;AA2F1B;;AC7LD;;;;;;;;;;;;;AAaG;AACH,cA2Ea,aAAc,YAAW,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;oBAEc,aAAA,CAAA,cAAA,CAAA,QAAA;mBACD,aAAA,CAAA,cAAA;sBACG,aAAA,CAAA,cAAA;yBAEG,aAAA,CAAA,MAAA;2BAEE,aAAA,CAAA,MAAA;qBAYN,aAAA,CAAA,MAAA;AAyBT,gBAAY,OAAO;AA8BzB;AAkBA;AAKA;oDAzGW,aAAa;sDAAb,aAAa;AA6GzB;;ACrMD,UAAU,aAAa;;aAEZ,QAAQ;AAClB;AAED;;;;;;;;AAQG;AACH,cAkFa,YAAa,YAAW,MAAM;AACzC;;yBAGmB,aAAA,CAAA,WAAA;AAEnB;qBAEe,aAAA,CAAA,MAAA,CAAA,aAAA;AAmBT,gBAAY,OAAO;oDA3Bd,YAAY;sDAAZ,YAAY;AA+BxB;;AC3ID;;;;;;AAMG;AACH,cAAa,wBAAwB,EAAA,cAAA;AAKrC;;;;;AAKG;UACc,kBAAkB;;;;AAIlC;AAED,cAAa,oBAAoB,EAAA,cAAA,CAAA,kBAAA;;ACxBjC,cACa,eAAe;;yBAGP,aAAA,CAAA,MAAA;AAEnB;AAIA;AAIA;oDAbW,eAAe;wDAAf,eAAe;AAgB3B;;ACSD;AACA,cAAa,iBAAiB;AAE9B,cACa,iBAAiB;;;AAQ5B;;;;;;AAMG;YACK,WAAW;AAmBnB;;;;AAIG;AACH,iBAAa,WAAW;AAYxB;AAUA;;;;;;;;;AASG;AACH,sCAAkC,WAAW;oDAvElC,iBAAiB;wDAAjB,iBAAiB;AAgF7B;;KC7FW,eAAe;AACzB;AACE;AACF;;AAEA;AACE;AAEJ;;;AAGG;AACH,iBAAgB,aAAa,SACnB,WAAW,uBACV,WAAW,eACnB,eAAe;;AChCZ,KAAM,SAAS;AAErB,cACa,YAAY;mBACV,aAAA,CAAA,cAAA;qBACE,aAAA,CAAA,MAAA;oDAFJ,YAAY;wDAAZ,YAAY;AAGxB;;ACLD;;;;;;;;;;AAUG;AACH,cACa,oBAAoB;;6BAER,aAAA,CAAA,cAAA;AAEvB;oDAJW,oBAAoB;wDAApB,oBAAoB;AAQhC;;ACTD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;AACH,cACa,yBAAyB;;;AAIpC,sBAAkB,MAAM;AAExB;oDANW,yBAAyB;wDAAzB,yBAAyB;AA4CrC;;ACjFD;;;;;;;;;;;AAWG;AACH,cAAa,uBAAuB;AAEpC;;;;;AAKG;AACH,cACa,kBAAkB;;;AAM7B,sBAAkB,MAAM;;AAGxB,uBAAmB,MAAM;;AAgBzB;AAIA;oDA7BW,kBAAkB;wDAAlB,kBAAkB;AAgC9B;;AC3DD;;;;;;;;;;AAUG;UACc,oBAAoB;;;AAGnC;;;AAGG;;AAEH;;;AAGD;AAUD,cACa,uBAAuB;;0BAQd,aAAA,CAAA,cAAA;AAEpB;;;;;;;;;AASG;yBACgB,aAAA,CAAA,cAAA;AAEnB,8BAAwB,aAAA,CAAA,MAAA;;;AAMrB;;8CAmCuC,oBAAoB;AAW9D;AAQA;oDAlFW,uBAAuB;wDAAvB,uBAAuB;AAmKnC;;ACjMD;AACM,KAAM,mBAAmB;AAO/B;AACM,KAAM,cAAc;AAE1B;AACM,KAAM,mBAAmB;;;;;;;AAQ/B;AACM,KAAM,SAAS;;;;AAErB;AACM,KAAM,cAAc;;;;AAE1B;;AAEG;AACH,cAAa,iBAAiB;AAE9B;AACA,iBAAgB,oBAAoB,SAAS,mBAAmB;AAWhE;AACA,iBAAgB,iBAAiB,gFAA6E,IAAa;;AC/B3H;;;AAGG;AACH,cAAa,kBAAmB,SAAQ,KAAK;AAC/B,qBAAiB,mBAAmB;;wBAAnB,mBAAmB;AAIjD;AAED;AACA,cAAa,SAAS;AAEtB;;;;;;;AAOG;AACG,KAAM,WAAW;;;AAGrB;;;;;;AAOF;;;;;;;AAOG;AACH,iBAAgB,cAAc,cACf,WAAW,2BAEf,WAAW,0BAEnB,MAAM;AAwBT,cACa,qBAAqB;;4BACV,aAAA,CAAA,cAAA;6BACC,aAAA,CAAA,cAAA;0BACH,aAAA,CAAA,cAAA,CAAA,WAAA;+BACK,aAAA,CAAA,cAAA,CAAA,cAAA;AACzB;;;;;;;;;AASG;sCAC6B,aAAA,CAAA,cAAA;iCACL,aAAA,CAAA,cAAA,CAAA,WAAA;;uBAIV,aAAA,CAAA,cAAA,CAAA,cAAA;;6BAEM,aAAA,CAAA,cAAA,CAAA,cAAA;;kCAEK,aAAA,CAAA,cAAA;;gCAEF,aAAA,CAAA,cAAA;AAC1B;;;AAGG;2BACkB,aAAA,CAAA,cAAA;;AAyCrB;;;;;;;;;;;AAWG;gBACS,WAAW;AAoCvB,eAAW,OAAO;AAQlB;;AAQA;;AAQA;AAIA;;;;;;;;;;;;AAYG;AACH;AAKA;AAoBA;;;;;;;;;AASG;AACH,uBAAmB,WAAW,6BAA0B,WAAgB,GAAG,OAAO;;AA+G5E,2BAAuB,OAAO,CAAC,mBAAmB;;AAQxD,wDAAmD,SAAc,GAAG,OAAO,CAAC,cAAc;;6CAK3C,OAAO;;wCAOZ,OAAO;AAMjD;;;;AAIG;AACG,sBAAkB,SAAS,qBAAqB,OAAO;oDAlVlD,qBAAqB;wDAArB,qBAAqB;AAkejC;;ACvjBD;;;AAGG;UACc,eAAe;AAC9B,sBAAkB,iBAAiB;AACnC;AACD;AASD,cACa,sBAAsB;;AACjC;AACA;;AAaA;;;;;;;;;;AAUG;AACH,sBAAkB,iBAAiB;AAkBnC;;;;;;;;AAQG;AACH,2BAAuB,eAAe;AAMtC,uBAAmB,iBAAiB;cAI1B,iBAAiB;AAI3B;;;AAGG;;oDAtEQ,sBAAsB;wDAAtB,sBAAsB;AAuFlC;;ACjGD,cACa,cAAc;;sBACT,aAAA,CAAA,cAAA,CAAA,mBAAA;2BACK,aAAA,CAAA,cAAA;2BACA,aAAA,CAAA,cAAA;0BACD,aAAA,CAAA,cAAA;AAEpB;AACA;AACA;;yBAUmB,aAAA,CAAA,MAAA,CAAA,aAAA;AAKnB;AAIA;;;kBAS4D,QAAQ;AAAE;AAYtE;oDAhDW,cAAc;wDAAd,cAAc;AAsQ1B;;ACnRD;;AAEG;AACH,iBAAgB,QAAQ;AAIxB,cAAa,WAAW;AAKxB,cAAa,UAAU;;ACWvB,cAOa,KAAK;;yBAKG,aAAA,CAAA,MAAA;8BACK,aAAA,CAAA,cAAA;0BACJ,aAAA,CAAA,cAAA;8BAEI,aAAA,CAAA,MAAA;;sBAER,aAAA,CAAA,MAAA;4BACM,aAAA,CAAA,MAAA;AAEtB;;;;;;;;;;;;;;;AAeG;mCAC0B,aAAA,CAAA,MAAA;;2BAGR,aAAA,CAAA,cAAA;AAcrB;AAIA;6BAGuB,aAAA,CAAA,cAAA;yBACJ,aAAA,CAAA,cAAA;AAoBnB,yBAAqB,UAAU;AAwB/B,8BAA0B,UAAU;oDAnGzB,KAAK;sDAAL,KAAK;AA6GjB;;AC7HD,cAOa,QAAQ;;AAKnB,2BAAqB,aAAA,CAAA,MAAA;;;AAAyC;8BAEtC,aAAA,CAAA,MAAA;AAExB;;;;;;;;;;;;;AAaG;qBACY,aAAA,CAAA,WAAA;wBAIG,aAAA,CAAA,MAAA,CAAA,QAAA;AAIlB;;;;;AAKG;AACH,oBAAgB,QAAQ;AAIxB,4BAAwB,QAAQ;AAIhC,sBAAkB,QAAQ;AAc1B;AAIA;oDA/DW,QAAQ;sDAAR,QAAQ;AAqEpB;;AC9ED,cAOa,SAAS;;8BASI,aAAA,CAAA,cAAA;;6BAGD,aAAA,CAAA,MAAA;uBACN,aAAA,CAAA,MAAA;AAEjB;;;;;;;;;AASG;wBACe,aAAA,CAAA,MAAA;0BACE,aAAA,CAAA,MAAA;AAQpB;AAMA;;;;;;;;;;;;AAYG;AACH;AAUA;AAIA;oDAnEW,SAAS;sDAAT,SAAS;AAuErB;;ACpFD,cAOa,WAAW;;yBAGH,aAAA,CAAA,MAAA;kCACS,aAAA,CAAA,cAAA;AAC5B,8BAAwB,aAAA,CAAA,MAAA;;;AAAyC;AAEjE;AAQA;oDAfW,WAAW;sDAAX,WAAW;AAkBvB;;ACtBD,cAOa,eAAe;;AAC1B;AACA;AACA;AACA;AAGA;;;;;;;;AAQG;4BACmB,aAAA,CAAA,WAAA;sBAEN,aAAA,CAAA,MAAA,CAAA,6BAAA,CAAA,mBAAA;2BACK,aAAA,CAAA,cAAA;2BACA,aAAA,CAAA,cAAA;AAErB;;;wBAKkB,aAAA,CAAA,MAAA;;AAwClB;AASA;AASA;AAIA,iBAAa,aAAa;AA8B1B,6BAAyB,aAAa;AAOtC;;;;;;AAMG;AACH;oDArIW,eAAe;sDAAf,eAAe;AAyI3B;;ACtID,cAoBa,KAAK;;qCAkCmB,qBAAqB;sBACpC,MAAM;WAlCnB,WAAW;AAClB;AACA,UAAI,aAAA,CAAA,cAAA;AACJ;;;AAAwC;AAExC;;;;;;;;;AASG;uBACc,aAAA,CAAA,cAAA,CAAA,WAAA;;AAGjB;;0BAEoB,aAAA,CAAA,cAAA;AAEpB,uCAAiC,MAAA;AACjC,uCAAiC,MAAA;AACjC;AASY,uCAAuB,qBAAqB,UACpC,MAAM;sBAiBR,aAAa,WAAW,gBAAgB;AAS1D,sBAAkB,UAAU;AAK5B,oBAAgB,KAAK;;AAsBrB;AAIA,wBAAoB,cAAc;4BAIV,cAAc;AAOtC;AAIA;;;;;;;AAOG;AACH,yBAAqB,cAAc;AAInC;AAWA;AAMA;;AAQA,wBAAoB,KAAK;AASzB;;AAOA;;AASA;AAOA;oDAhLW,KAAK;sDAAL,KAAK;AAmNjB;;AC5OD,cAmCa,aAAa;oBACV,aAAA,CAAA,WAAA;sBACE,aAAA,CAAA,WAAA;uBACC,aAAA,CAAA,WAAA;mBACJ,aAAA,CAAA,gBAAA;AACb,+BAAyB,aAAA,CAAA,cAAA;AAEzB;AAUA;oDAjBW,aAAa;sDAAb,aAAa;AAoBzB;;AC5CD,KAAK,IAAI;AAET,cAOa,qBAAsB,YAAW,MAAM;;AAElD;AAEA,+BAAyB,aAAA,CAAA,cAAA,CAAA,mBAAA;AACzB,6BAAuB,aAAA,CAAA,cAAA,CAAA,IAAA;AACvB,6BAAuB,aAAA,CAAA,cAAA;AACvB,8BAAwB,aAAA,CAAA,cAAA;AACxB,kCAA4B,aAAA,CAAA,cAAA,CAAA,cAAA;AAC5B,8BAAwB,aAAA,CAAA,cAAA;AACxB,oCAA8B,aAAA,CAAA,cAAA;AAE9B;AACA;AAEA;AAYA;AAKA;AAKA;;iBAMmB,KAAK,GAAG,OAAO;;mBAeb,KAAK,GAAG,OAAO;mBAUf,KAAK,GAAG,OAAO;AAS9B,kBAAc,OAAO;oDA7EhB,qBAAqB;sDAArB,qBAAqB;AAwGjC;;UCpHgB,cAAc;;;;;;;AAO9B;AAED,cAgCa,UAAU;;mBACR,cAAA;wBACK,YAAA;AAElB;AACA,oCAA8B,aAAA,CAAA,cAAA;AAC9B,6BAAuB,aAAA,CAAA,cAAA;AACvB,8BAAwB,aAAA,CAAA,cAAA;AAExB;kBAMoB,KAAK,GAAG,OAAO;oDAfxB,UAAU;sDAAV,UAAU;AA+BtB;AAED;AACA,iBAAgB,cAAc,SAAS,SAAS,QAAQ,cAAc,GAAG,OAAO;;UC7F/D,iBAAiB;;;;;;AAMjC;AAED,cAsBa,aAAa;mBACX,iBAAA;wBACK,YAAA;oDAFP,aAAa;sDAAb,aAAa;AAGzB;;;;","names":["CategoryGroup"]}