@nucleus-suite-pe/core 2.0.0 → 2.2.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": "@nucleus-suite-pe/core",
3
- "version": "2.0.0",
3
+ "version": "2.2.0",
4
4
  "description": "Capa compartida de la suite Nucleus: sesión única, permisos, tema y marco de aplicación para Angular.",
5
5
  "keywords": [
6
6
  "angular",
@@ -27,7 +27,8 @@
27
27
  "@angular/router": "^21.2.0",
28
28
  "@angular/forms": "^21.2.0",
29
29
  "primeicons": "^8.0.0",
30
- "chart.js": "^4.4.0"
30
+ "chart.js": "^4.4.0",
31
+ "@angular/cdk": "^21.2.0"
31
32
  },
32
33
  "dependencies": {
33
34
  "tslib": "^2.3.0"
package/styles/tokens.css CHANGED
@@ -16,6 +16,10 @@
16
16
  --ns-frame-glow: #8c7ff0;
17
17
  --ns-frame-on-glow: #101014;
18
18
 
19
+ --ns-success: #5bd98a;
20
+ --ns-danger: #f87171;
21
+ --ns-warning: #e0a33a;
22
+
19
23
  --ns-shadow-1: 0 1px 2px rgb(0 0 0 / 28%);
20
24
  --ns-shadow-2: 0 10px 34px rgb(0 0 0 / 45%);
21
25
  --ns-accent-wash: #1d1a2b;
@@ -461,3 +465,84 @@ nucleus-metric .value,
461
465
  nucleus-chart {
462
466
  font-variant-numeric: tabular-nums;
463
467
  }
468
+
469
+ :root .p-tag {
470
+ --ns-status: color-mix(in srgb, var(--ac-text) 58%, transparent);
471
+
472
+ display: inline-flex;
473
+ align-items: center;
474
+ gap: 7px;
475
+ padding: 3px 11px 3px 9px;
476
+ border: 1px solid color-mix(in srgb, var(--ns-status) 38%, transparent);
477
+ border-radius: var(--ac-radius-pill);
478
+ background: color-mix(in srgb, var(--ns-status) 13%, transparent);
479
+ color: var(--ns-status);
480
+ font-size: 12px;
481
+ font-weight: 600;
482
+ line-height: 1.5;
483
+ white-space: nowrap;
484
+ }
485
+
486
+ :root .p-tag::before {
487
+ width: 6px;
488
+ height: 6px;
489
+ flex: none;
490
+ border-radius: 50%;
491
+ background: var(--ns-status);
492
+ content: '';
493
+ }
494
+
495
+ :root .p-tag-success {
496
+ --ns-status: var(--ns-success);
497
+ }
498
+
499
+ :root .p-tag-danger {
500
+ --ns-status: var(--ns-danger);
501
+ }
502
+
503
+ :root .p-tag-warn {
504
+ --ns-status: var(--ns-warning);
505
+ }
506
+
507
+ :root .p-tag-info {
508
+ --ns-status: var(--ac-accent);
509
+ }
510
+
511
+ .cdk-drag-preview {
512
+ border: 1px solid var(--ac-accent);
513
+ border-radius: 12px;
514
+ background: var(--ac-surface);
515
+ box-shadow: var(--ns-shadow-2);
516
+ opacity: 0.96;
517
+ }
518
+
519
+ .cdk-drag-preview .grip {
520
+ color: var(--ac-accent);
521
+ }
522
+
523
+ :root .card-actions .p-button-text.p-button-secondary,
524
+ :root .actions .p-button-text.p-button-secondary {
525
+ color: var(--ac-text-muted);
526
+ }
527
+
528
+ :root .card-actions .p-button-text.p-button-secondary:not(:disabled):hover,
529
+ :root .actions .p-button-text.p-button-secondary:not(:disabled):hover {
530
+ background: color-mix(in srgb, var(--ac-text) 10%, transparent);
531
+ color: var(--ac-text);
532
+ }
533
+
534
+ :root .card-actions .p-button-text.p-button-danger,
535
+ :root .actions .p-button-text.p-button-danger {
536
+ color: var(--ns-danger);
537
+ }
538
+
539
+ :root .card-actions .p-button-text.p-button-danger:not(:disabled):hover,
540
+ :root .actions .p-button-text.p-button-danger:not(:disabled):hover {
541
+ background: color-mix(in srgb, var(--ns-danger) 14%, transparent);
542
+ color: var(--ns-danger);
543
+ }
544
+
545
+ :root .card-actions .p-button:disabled,
546
+ :root .actions .p-button:disabled {
547
+ opacity: 0.38;
548
+ }
@@ -1,10 +1,12 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken, EnvironmentProviders, Signal, TemplateRef, OnDestroy, ElementRef } from '@angular/core';
3
3
  import { HttpContextToken, HttpInterceptorFn } from '@angular/common/http';
4
+ import { CanActivateFn } from '@angular/router';
4
5
  import * as _nucleus_suite_pe_core from '@nucleus-suite-pe/core';
5
6
  import * as _primeuix_themes from '@primeuix/themes';
6
7
  import * as _primeuix_themes_types_base from '@primeuix/themes/types/base';
7
8
  import { Popover } from 'primeng/popover';
9
+ import { CdkDrag, CdkDragDrop } from '@angular/cdk/drag-drop';
8
10
  import { MenuItem } from 'primeng/api';
9
11
 
10
12
  interface NucleusConfig {
@@ -19,6 +21,12 @@ declare function loadNucleusConfig(url?: string): Promise<NucleusConfig>;
19
21
  declare function isNucleusConfigured(config: NucleusConfig): boolean;
20
22
  declare function ownsUrl(config: NucleusConfig, url: string): boolean;
21
23
 
24
+ declare const NUCLEUS_HOME: InjectionToken<string>;
25
+ declare function normalizeHomeRoute(route: string): string;
26
+ declare function provideNucleusHome(route: string): EnvironmentProviders;
27
+ declare function routePath(url: string): string;
28
+ declare function isHomeRoute(home: string, url: string): boolean;
29
+
22
30
  interface NucleusIdentity {
23
31
  readonly uid: string;
24
32
  readonly provider: string;
@@ -94,6 +102,8 @@ declare class UserSyncService {
94
102
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<UserSyncService>;
95
103
  }
96
104
 
105
+ declare const nucleusAccessGuard: CanActivateFn;
106
+
97
107
  interface MenuNode {
98
108
  readonly id: string;
99
109
  readonly label: string;
@@ -221,6 +231,8 @@ interface MenuPermissions {
221
231
  }
222
232
  declare const NO_PERMISSIONS: MenuPermissions;
223
233
  declare function findMenuByRoute(nodes: readonly MenuNode[], route: string): MenuNode | null;
234
+ declare function isUnderRoute(url: string, route: string): boolean;
235
+ declare function matchMenuByRoute(nodes: readonly MenuNode[], url: string): MenuNode | null;
224
236
  declare function permissionsOf(node: MenuNode | null): MenuPermissions;
225
237
 
226
238
  declare class SessionService {
@@ -241,6 +253,7 @@ declare class SessionService {
241
253
  private readonly _switching;
242
254
  private readonly _error;
243
255
  private inFlight;
256
+ private current;
244
257
  private loadedKey;
245
258
  private language;
246
259
  readonly me: _angular_core.Signal<MeResponse | null>;
@@ -261,6 +274,8 @@ declare class SessionService {
261
274
  readonly companyId: _angular_core.Signal<string | null>;
262
275
  readonly companyName: _angular_core.Signal<string | null>;
263
276
  load(language: string, force?: boolean): Promise<void>;
277
+ ready(): Promise<void>;
278
+ private run;
264
279
  signOutToLanding(): Promise<void>;
265
280
  permissionsFor(route: string): MenuPermissions;
266
281
  reload(language: string): Promise<void>;
@@ -294,6 +309,10 @@ interface CommonCopy {
294
309
  readonly noColor: string;
295
310
  readonly searchIcon: string;
296
311
  readonly noMatches: string;
312
+ readonly reorderHandle: string;
313
+ readonly noResults: string;
314
+ readonly viewGrid: string;
315
+ readonly viewRows: string;
297
316
  readonly sessionExpired: string;
298
317
  readonly errorNetwork: string;
299
318
  readonly errorTimeout: string;
@@ -484,8 +503,8 @@ declare function mixHex(foreground: string, background: string, ratio: number):
484
503
  declare function meetsContrast(foreground: string, background: string, required: number): boolean;
485
504
  declare function contrastIssue(scope: string, pair: string, foreground: string, background: string, required: number): ContrastIssue | null;
486
505
 
487
- type FrameId = 'nucleus' | 'ember' | 'forest' | 'plum' | 'midnight' | 'slate' | 'ocean' | 'sand' | 'ink' | 'graphite' | 'paper' | 'mist';
488
- type CanvasId = 'light' | 'dim' | 'dark';
506
+ type FrameId = 'nucleus' | 'ember' | 'forest' | 'plum' | 'midnight' | 'slate' | 'ocean' | 'sand' | 'ink' | 'graphite' | 'paper' | 'mist' | 'studio';
507
+ type CanvasId = 'light' | 'soft' | 'dim' | 'dark';
489
508
  type CanvasPreference = CanvasId | 'system';
490
509
  type AccentId = 'violet' | 'blue' | 'cyan' | 'green' | 'lime' | 'amber' | 'orange' | 'rose' | 'red';
491
510
  type AccentPreference = AccentId | 'auto';
@@ -823,8 +842,23 @@ declare class NucleusForm {
823
842
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusForm, "nucleus-form", never, { "fields": { "alias": "fields"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "autofocus": { "alias": "autofocus"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, [{ directive: typeof NucleusEnterAdvance; inputs: {}; outputs: {}; }]>;
824
843
  }
825
844
 
845
+ interface NucleusLinkTarget {
846
+ readonly route: readonly unknown[];
847
+ readonly queryParams?: Record<string, unknown>;
848
+ }
849
+ declare class NucleusLink {
850
+ readonly route: _angular_core.InputSignal<readonly unknown[] | null>;
851
+ readonly queryParams: _angular_core.InputSignal<Record<string, unknown> | null>;
852
+ readonly href: _angular_core.InputSignal<string | null>;
853
+ readonly hint: _angular_core.InputSignal<string>;
854
+ readonly muted: _angular_core.InputSignal<boolean>;
855
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusLink, never>;
856
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusLink, "nucleus-link", never, { "route": { "alias": "route"; "required": false; "isSignal": true; }; "queryParams": { "alias": "queryParams"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "muted": { "alias": "muted"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
857
+ }
858
+
826
859
  type ListAlign = 'left' | 'center' | 'right';
827
860
  type ListColumnKind = 'text' | 'switch';
861
+ type ListColumnRole = 'identity' | 'status' | 'attribute' | 'hidden';
828
862
  interface ListTag {
829
863
  readonly label: string;
830
864
  readonly severity?: 'success' | 'info' | 'warn' | 'danger' | 'secondary';
@@ -833,6 +867,7 @@ interface ListColumn<T = Record<string, unknown>> {
833
867
  readonly key: string;
834
868
  readonly header: string;
835
869
  readonly kind?: ListColumnKind;
870
+ readonly role?: ListColumnRole;
836
871
  readonly align?: ListAlign;
837
872
  readonly strong?: boolean;
838
873
  readonly width?: string;
@@ -841,6 +876,7 @@ interface ListColumn<T = Record<string, unknown>> {
841
876
  readonly checked?: (row: T) => boolean;
842
877
  readonly disabled?: (row: T) => boolean;
843
878
  readonly hint?: (row: T) => string;
879
+ readonly link?: (row: T) => NucleusLinkTarget | null;
844
880
  }
845
881
  interface ListAction<T = Record<string, unknown>> {
846
882
  readonly id: string;
@@ -878,9 +914,48 @@ declare class NucleusList<T extends object = Record<string, unknown>> {
878
914
  readonly rowClass: _angular_core.InputSignal<(row: T) => string>;
879
915
  readonly pageSize: _angular_core.InputSignal<number>;
880
916
  readonly pageSizes: _angular_core.InputSignal<number[]>;
917
+ readonly cards: _angular_core.InputSignal<boolean>;
918
+ readonly reorderable: _angular_core.InputSignal<boolean>;
919
+ readonly searchable: _angular_core.InputSignal<boolean>;
920
+ readonly reorderGroup: _angular_core.InputSignal<((row: T) => string | null) | null>;
881
921
  readonly action: _angular_core.OutputEmitterRef<ListActionEvent<T>>;
922
+ readonly reorder: _angular_core.OutputEmitterRef<T[]>;
923
+ readonly dragStart: _angular_core.OutputEmitterRef<T>;
882
924
  readonly toggle: _angular_core.OutputEmitterRef<ListToggleEvent<T>>;
883
925
  private readonly cells;
926
+ private readonly language;
927
+ private readonly viewport;
928
+ protected readonly copy: _angular_core.Signal<_nucleus_suite_pe_core.CommonCopy>;
929
+ protected readonly term: _angular_core.WritableSignal<string>;
930
+ private readonly chosenView;
931
+ protected readonly canChooseView: _angular_core.Signal<boolean>;
932
+ protected readonly view: _angular_core.Signal<"grid" | "rows">;
933
+ protected chooseView(value: 'grid' | 'rows'): void;
934
+ protected readonly filtered: _angular_core.Signal<T[]>;
935
+ protected readonly dragLocked: _angular_core.Signal<boolean>;
936
+ protected readonly showNoResults: _angular_core.Signal<boolean>;
937
+ protected onSearch(event: Event): void;
938
+ private readonly firstRow;
939
+ private readonly rowsOverride;
940
+ protected readonly compact: _angular_core.Signal<boolean>;
941
+ protected readonly rowsPerPage: _angular_core.Signal<number>;
942
+ protected readonly identityColumn: _angular_core.Signal<ListColumn<T> | null>;
943
+ protected readonly statusColumn: _angular_core.Signal<ListColumn<T> | null>;
944
+ protected readonly attributeColumns: _angular_core.Signal<readonly ListColumn<T>[]>;
945
+ protected readonly pagedRows: _angular_core.Signal<T[]>;
946
+ private readonly resetPage;
947
+ protected readonly page: _angular_core.Signal<number>;
948
+ protected readonly sortAllowed: (index: number, drag: CdkDrag<T>) => boolean;
949
+ protected onRowReorder(event: {
950
+ dragIndex?: number;
951
+ dropIndex?: number;
952
+ }): void;
953
+ protected onCardDrop(event: CdkDragDrop<unknown>): void;
954
+ private applyMove;
955
+ protected onPage(event: {
956
+ first?: number;
957
+ rows?: number;
958
+ }): void;
884
959
  protected readonly paginate: _angular_core.Signal<boolean>;
885
960
  protected readonly tableStyle: _angular_core.Signal<{
886
961
  'min-width': string;
@@ -891,6 +966,7 @@ declare class NucleusList<T extends object = Record<string, unknown>> {
891
966
  protected skeletonWidth(column: ListColumn<T>): string;
892
967
  protected cellTemplate(key: string): TemplateRef<unknown> | null;
893
968
  protected text(column: ListColumn<T>, row: T): string;
969
+ protected linkOf(column: ListColumn<T>, row: T): NucleusLinkTarget | null;
894
970
  protected tagOf(column: ListColumn<T>, row: T): ListTag | null;
895
971
  protected visibleActions(row: T): readonly ListAction<T>[];
896
972
  protected isActionLocked(entry: ListAction<T>, row: T): boolean;
@@ -900,7 +976,7 @@ declare class NucleusList<T extends object = Record<string, unknown>> {
900
976
  protected hintOf(column: ListColumn<T>, row: T): string;
901
977
  protected flip(column: ListColumn<T>, row: T): void;
902
978
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusList<any>, never>;
903
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusList<any>, "nucleus-list", never, { "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "empty": { "alias": "empty"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; "rowClass": { "alias": "rowClass"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageSizes": { "alias": "pageSizes"; "required": false; "isSignal": true; }; }, { "action": "action"; "toggle": "toggle"; }, ["cells"], ["[nucleusListTitle]", "[nucleusListActions]"], true, never>;
979
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusList<any>, "nucleus-list", never, { "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "empty": { "alias": "empty"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; "rowClass": { "alias": "rowClass"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageSizes": { "alias": "pageSizes"; "required": false; "isSignal": true; }; "cards": { "alias": "cards"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "reorderGroup": { "alias": "reorderGroup"; "required": false; "isSignal": true; }; }, { "action": "action"; "reorder": "reorder"; "dragStart": "dragStart"; "toggle": "toggle"; }, ["cells"], ["[nucleusListTitle]", "[nucleusListActions]"], true, never>;
904
980
  }
905
981
 
906
982
  interface TreeRow {
@@ -965,6 +1041,16 @@ declare class NucleusAppearance {
965
1041
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusAppearance, "nucleus-appearance", never, {}, {}, never, never, true, never>;
966
1042
  }
967
1043
 
1044
+ declare const NUCLEUS_NARROW_QUERY = "(max-width: 720px)";
1045
+ declare class NucleusViewport {
1046
+ private readonly query;
1047
+ private readonly _narrow;
1048
+ readonly narrow: _angular_core.Signal<boolean>;
1049
+ constructor();
1050
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusViewport, never>;
1051
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<NucleusViewport>;
1052
+ }
1053
+
968
1054
  interface MenuTile {
969
1055
  readonly label: string;
970
1056
  readonly icon: string | null;
@@ -1071,6 +1157,7 @@ interface ShellCopy {
1071
1157
  readonly signOut: string;
1072
1158
  readonly accountManage: string;
1073
1159
  readonly accountSwitch: string;
1160
+ readonly homeLabel: string;
1074
1161
  readonly accessLoading: string;
1075
1162
  readonly accessEmpty: string;
1076
1163
  readonly accountScope: string;
@@ -1136,6 +1223,8 @@ declare class NucleusShell {
1136
1223
  protected readonly crumbs: _angular_core.Signal<MenuItem[]>;
1137
1224
  protected readonly copy: _angular_core.Signal<_nucleus_suite_pe_core.ShellCopy>;
1138
1225
  protected readonly starfield: _angular_core.Signal<boolean>;
1226
+ private readonly homeRoute;
1227
+ private readonly currentUrl;
1139
1228
  protected readonly menu: _angular_core.Signal<readonly MenuNode[]>;
1140
1229
  private readonly collapsedIds;
1141
1230
  protected readonly menuLoading: _angular_core.Signal<boolean>;
@@ -1168,6 +1257,8 @@ declare class NucleusShell {
1168
1257
  protected readonly sitePlaceholder: _angular_core.Signal<string>;
1169
1258
  protected readonly topbarHeight: _angular_core.Signal<"100px" | "56px">;
1170
1259
  private readonly syncContext;
1260
+ private lastUid;
1261
+ private readonly watchIdentity;
1171
1262
  private readonly loadSession;
1172
1263
  constructor();
1173
1264
  protected setLang(lang: NucleusLang): void;
@@ -1180,6 +1271,7 @@ declare class NucleusShell {
1180
1271
  protected isSelected(node: MenuNode): boolean;
1181
1272
  protected onCompanyChange(companyId: string | null): Promise<void>;
1182
1273
  protected onSiteChange(siteId: string | null): Promise<void>;
1274
+ private goHome;
1183
1275
  private appRow;
1184
1276
  protected onLauncherSelect(row: MenuRow): void;
1185
1277
  protected onAccountSelect(row: MenuRow): void;
@@ -1194,5 +1286,5 @@ declare class NucleusShell {
1194
1286
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusShell, "nucleus-shell", never, { "brand": { "alias": "brand"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "navItems": { "alias": "navItems"; "required": false; "isSignal": true; }; "activeNavId": { "alias": "activeNavId"; "required": false; "isSignal": true; }; "selectedMenuId": { "alias": "selectedMenuId"; "required": false; "isSignal": true; }; }, { "navSelect": "navSelect"; "menuSelect": "menuSelect"; }, never, ["[nucleusTop]", "*"], true, never>;
1195
1287
  }
1196
1288
 
1197
- export { ACCENTS, CANVASES, COMMON_COPY, CONTROL_CONTRAST, DEFAULT_APPEARANCE, DENSITIES, EMPTY_GEO_VALUE, FIELD_TARGETS, FRAMES, GEO_COPY, LEGACY_THEMES, NO_PERMISSIONS, NUCLEUS_ACCENTS, NUCLEUS_CONFIG, NUCLEUS_DARK_SELECTOR, NUCLEUS_FORCE_BEARER, NUCLEUS_ICONS, NUCLEUS_ICON_CATALOG, NUCLEUS_LANGS, NUCLEUS_LOGOUT_PARAM, NUCLEUS_SKIP_AUTH, NucleusAppearance, NucleusAuth, NucleusCache, NucleusCard, NucleusCell, NucleusColorPicker, NucleusEnterAdvance, NucleusFeedback, NucleusForm, NucleusGeo, NucleusGeoSelect, NucleusIconPicker, NucleusLanguage, NucleusList, NucleusLordicon, NucleusMark, NucleusMenu, NucleusMetric, NucleusMetrics, NucleusPage, NucleusPageActions, NucleusPreset, NucleusRecentApps, NucleusSessionAuth, NucleusShell, NucleusShortcut, NucleusShortcuts, NucleusStarfield, NucleusTabs, SHELL_COPY, SessionService, TEXT_CONTRAST, THEME_COPY, ThemeService, UserSyncService, accentById, accentLabelOf, accentOn, ariaKeysOf, auditAppearance, canvasById, clock, comboOf, commonCopyOf, consumeNucleusLogout, contrastIssue, contrastRatio, day, densityById, endOfDayUtc, fieldsIn, findMenuByRoute, flagOf, foldText, frameById, geoCopyOf, hasChildren, hasModifier, iconClassOf, iconNameOf, integer, isAccentPreference, isApplePlatform, isBeforeToday, isCanvasPreference, isDarkCanvas, isDensityId, isFieldSearchable, isFrameId, isNucleusConfigured, isOnOrBeforeToday, isReachable, isToday, isTypingTarget, isoDay, levelLabel, loadLordicon, loadNucleusConfig, matchesRow, meetsContrast, menuGlyph, menuTile, minutesAsClock, mixHex, money, moveTo, normalizeKeys, nucleusAuthInterceptor, nucleusErrorMessage, nucleusLang, nucleusLogoutUrl, nucleusParseDate, ownsUrl, percent, permissionsOf, provideNucleus, provideNucleusFeedback, provideNucleusTheme, qty, readableOn, relativeLuminance, resolveAccent, resolveFieldSize, searchIcons, selectableRows, shiftDay, shortcutHint, signedMoney, stamp, startOfDayUtc, themeCopyOf, toNumber, toggleCollapsed, visibleTreeRows };
1198
- export type { Accent, AccentId, AccentOption, AccentPreference, AccessScope, AppSummary, AppUser, Appearance, AuthSyncRequest, Canvas, CanvasEffects, CanvasId, CanvasPreference, CanvasTokens, CardSize, CommonCopy, CommonCopySet, CompanyOption, CompanyRelation, CompanySummary, ConfirmRequest, ContrastIssue, Crumb, Density, DensityId, FieldKind, FieldOption, FieldSize, FieldSpan, FormField, FormValue, Frame, FrameId, FrameTokens, GeoCopy, GeoCopySet, GeoCountry, GeoDivision, GeoLevel, GeoPlace, GeoValue, GlobalAccess, LauncherApp, ListAction, ListActionEvent, ListAlign, ListColumn, ListColumnKind, ListTag, ListToggleEvent, MeResponse, MenuNode, MenuPermissions, MenuRow, MenuSection, MenuTile, MetricTone, NucleusConfig, NucleusIdentity, NucleusLang, SessionTicket, ShellCopy, ShellNavItem, ShortcutBinding, Site, SiteAccess, Subscription, TabItem, ThemeCopy, TreeRow, UserProfile };
1289
+ export { ACCENTS, CANVASES, COMMON_COPY, CONTROL_CONTRAST, DEFAULT_APPEARANCE, DENSITIES, EMPTY_GEO_VALUE, FIELD_TARGETS, FRAMES, GEO_COPY, LEGACY_THEMES, NO_PERMISSIONS, NUCLEUS_ACCENTS, NUCLEUS_CONFIG, NUCLEUS_DARK_SELECTOR, NUCLEUS_FORCE_BEARER, NUCLEUS_HOME, NUCLEUS_ICONS, NUCLEUS_ICON_CATALOG, NUCLEUS_LANGS, NUCLEUS_LOGOUT_PARAM, NUCLEUS_NARROW_QUERY, NUCLEUS_SKIP_AUTH, NucleusAppearance, NucleusAuth, NucleusCache, NucleusCard, NucleusCell, NucleusColorPicker, NucleusEnterAdvance, NucleusFeedback, NucleusForm, NucleusGeo, NucleusGeoSelect, NucleusIconPicker, NucleusLanguage, NucleusLink, NucleusList, NucleusLordicon, NucleusMark, NucleusMenu, NucleusMetric, NucleusMetrics, NucleusPage, NucleusPageActions, NucleusPreset, NucleusRecentApps, NucleusSessionAuth, NucleusShell, NucleusShortcut, NucleusShortcuts, NucleusStarfield, NucleusTabs, NucleusViewport, SHELL_COPY, SessionService, TEXT_CONTRAST, THEME_COPY, ThemeService, UserSyncService, accentById, accentLabelOf, accentOn, ariaKeysOf, auditAppearance, canvasById, clock, comboOf, commonCopyOf, consumeNucleusLogout, contrastIssue, contrastRatio, day, densityById, endOfDayUtc, fieldsIn, findMenuByRoute, flagOf, foldText, frameById, geoCopyOf, hasChildren, hasModifier, iconClassOf, iconNameOf, integer, isAccentPreference, isApplePlatform, isBeforeToday, isCanvasPreference, isDarkCanvas, isDensityId, isFieldSearchable, isFrameId, isHomeRoute, isNucleusConfigured, isOnOrBeforeToday, isReachable, isToday, isTypingTarget, isUnderRoute, isoDay, levelLabel, loadLordicon, loadNucleusConfig, matchMenuByRoute, matchesRow, meetsContrast, menuGlyph, menuTile, minutesAsClock, mixHex, money, moveTo, normalizeHomeRoute, normalizeKeys, nucleusAccessGuard, nucleusAuthInterceptor, nucleusErrorMessage, nucleusLang, nucleusLogoutUrl, nucleusParseDate, ownsUrl, percent, permissionsOf, provideNucleus, provideNucleusFeedback, provideNucleusHome, provideNucleusTheme, qty, readableOn, relativeLuminance, resolveAccent, resolveFieldSize, routePath, searchIcons, selectableRows, shiftDay, shortcutHint, signedMoney, stamp, startOfDayUtc, themeCopyOf, toNumber, toggleCollapsed, visibleTreeRows };
1290
+ export type { Accent, AccentId, AccentOption, AccentPreference, AccessScope, AppSummary, AppUser, Appearance, AuthSyncRequest, Canvas, CanvasEffects, CanvasId, CanvasPreference, CanvasTokens, CardSize, CommonCopy, CommonCopySet, CompanyOption, CompanyRelation, CompanySummary, ConfirmRequest, ContrastIssue, Crumb, Density, DensityId, FieldKind, FieldOption, FieldSize, FieldSpan, FormField, FormValue, Frame, FrameId, FrameTokens, GeoCopy, GeoCopySet, GeoCountry, GeoDivision, GeoLevel, GeoPlace, GeoValue, GlobalAccess, LauncherApp, ListAction, ListActionEvent, ListAlign, ListColumn, ListColumnKind, ListColumnRole, ListTag, ListToggleEvent, MeResponse, MenuNode, MenuPermissions, MenuRow, MenuSection, MenuTile, MetricTone, NucleusConfig, NucleusIdentity, NucleusLang, NucleusLinkTarget, SessionTicket, ShellCopy, ShellNavItem, ShortcutBinding, Site, SiteAccess, Subscription, TabItem, ThemeCopy, TreeRow, UserProfile };