@nucleus-suite-pe/core 2.2.0 → 2.3.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.2.0",
3
+ "version": "2.3.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",
package/styles/tokens.css CHANGED
@@ -1,3 +1,5 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&display=swap');
2
+
1
3
  :root {
2
4
  --ac-bg: #050508;
3
5
  --ac-surface: #0d0d15;
@@ -8,12 +10,12 @@
8
10
  --ac-accent: #7c6cf5;
9
11
  --ac-on-accent: #ffffff;
10
12
 
11
- --ns-frame-bg: #16132b;
12
- --ns-frame-raised: #241f42;
13
+ --ns-frame-bg: #1f1646;
14
+ --ns-frame-raised: #2c2160;
13
15
  --ns-frame-ink: #ece9fb;
14
- --ns-frame-muted: #9d95c6;
15
- --ns-frame-line: #302a54;
16
- --ns-frame-glow: #8c7ff0;
16
+ --ns-frame-muted: #9690af;
17
+ --ns-frame-line: #403863;
18
+ --ns-frame-glow: #a78bfa;
17
19
  --ns-frame-on-glow: #101014;
18
20
 
19
21
  --ns-success: #5bd98a;
@@ -37,7 +39,10 @@
37
39
  --ns-form-gap-y: calc(18px * var(--ns-density));
38
40
  --ns-control-y: calc(0.55rem * var(--ns-density));
39
41
 
40
- --ac-font: 'IBM Plex Sans', 'Segoe UI', system-ui, sans-serif;
42
+ --ac-font: 'Figtree', 'Segoe UI', system-ui, sans-serif;
43
+ --ns-weight-text: 400;
44
+ --ns-weight-emphasis: 500;
45
+ --ns-weight-heading: 600;
41
46
  --ac-radius-pill: 999px;
42
47
  --ac-radius-box: 4px;
43
48
  }
@@ -197,7 +202,7 @@ input {
197
202
  background: var(--ns-header-bg);
198
203
  color: var(--ns-header-ink);
199
204
  font-size: 11px;
200
- font-weight: 600;
205
+ font-weight: var(--ns-weight-heading);
201
206
  letter-spacing: 0.07em;
202
207
  text-transform: uppercase;
203
208
  }
@@ -253,7 +258,7 @@ input {
253
258
  .ns-crumbs .p-breadcrumb-item:last-child .p-breadcrumb-item-label {
254
259
  color: var(--ac-text);
255
260
  font-size: 15px;
256
- font-weight: 600;
261
+ font-weight: var(--ns-weight-emphasis);
257
262
  }
258
263
 
259
264
  .ns-crumbs .p-breadcrumb-separator {
@@ -478,7 +483,7 @@ nucleus-chart {
478
483
  background: color-mix(in srgb, var(--ns-status) 13%, transparent);
479
484
  color: var(--ns-status);
480
485
  font-size: 12px;
481
- font-weight: 600;
486
+ font-weight: var(--ns-weight-emphasis);
482
487
  line-height: 1.5;
483
488
  white-space: nowrap;
484
489
  }
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, EnvironmentProviders, Signal, TemplateRef, OnDestroy, ElementRef } from '@angular/core';
2
+ import { InjectionToken, EnvironmentProviders, Signal, PipeTransform, TemplateRef, OnDestroy, ElementRef } from '@angular/core';
3
3
  import { HttpContextToken, HttpInterceptorFn } from '@angular/common/http';
4
4
  import { CanActivateFn } from '@angular/router';
5
5
  import * as _nucleus_suite_pe_core from '@nucleus-suite-pe/core';
@@ -133,6 +133,7 @@ interface CompanySummary {
133
133
  readonly countryName: string | null;
134
134
  readonly logoPath: string | null;
135
135
  readonly status: number;
136
+ readonly isActive: boolean;
136
137
  readonly isOwner: boolean;
137
138
  readonly ownerUserId: string;
138
139
  readonly siteCount: number;
@@ -349,6 +350,25 @@ declare function isOnOrBeforeToday(value: string | null | undefined): boolean;
349
350
  declare function startOfDayUtc(value: string): string;
350
351
  declare function endOfDayUtc(value: string): string;
351
352
 
353
+ declare function compactNumber(value: number): string;
354
+ declare function compactBytes(value: number): string;
355
+ declare function compactMegabytes(value: number): string;
356
+ declare class NucleusCompact implements PipeTransform {
357
+ transform(value: number | string | null | undefined, fallback?: string): string;
358
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusCompact, never>;
359
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<NucleusCompact, "nucleusCompact", true>;
360
+ }
361
+ declare class NucleusBytes implements PipeTransform {
362
+ transform(value: number | string | null | undefined, fallback?: string): string;
363
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusBytes, never>;
364
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<NucleusBytes, "nucleusBytes", true>;
365
+ }
366
+ declare class NucleusMegabytes implements PipeTransform {
367
+ transform(value: number | string | null | undefined, fallback?: string): string;
368
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusMegabytes, never>;
369
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<NucleusMegabytes, "nucleusMegabytes", true>;
370
+ }
371
+
352
372
  declare const FIELD_TARGETS: string;
353
373
  declare function isReachable(element: HTMLElement): boolean;
354
374
  declare function fieldsIn(root: HTMLElement): HTMLElement[];
@@ -503,10 +523,10 @@ declare function mixHex(foreground: string, background: string, ratio: number):
503
523
  declare function meetsContrast(foreground: string, background: string, required: number): boolean;
504
524
  declare function contrastIssue(scope: string, pair: string, foreground: string, background: string, required: number): ContrastIssue | null;
505
525
 
506
- type FrameId = 'nucleus' | 'ember' | 'forest' | 'plum' | 'midnight' | 'slate' | 'ocean' | 'sand' | 'ink' | 'graphite' | 'paper' | 'mist' | 'studio';
526
+ type FrameId = 'nucleus' | 'ember' | 'forest' | 'plum' | 'midnight' | 'slate' | 'ocean' | 'sand' | 'ink' | 'graphite' | 'paper' | 'mist' | 'studio' | 'sage' | 'sky' | 'lavender';
507
527
  type CanvasId = 'light' | 'soft' | 'dim' | 'dark';
508
528
  type CanvasPreference = CanvasId | 'system';
509
- type AccentId = 'violet' | 'blue' | 'cyan' | 'green' | 'lime' | 'amber' | 'orange' | 'rose' | 'red';
529
+ type AccentId = 'violet' | 'blue' | 'cyan' | 'green' | 'lime' | 'amber' | 'orange' | 'rose' | 'red' | 'indigo' | 'teal' | 'plum' | 'slate' | 'graphite';
510
530
  type AccentPreference = AccentId | 'auto';
511
531
  type DensityId = 'comfortable' | 'compact';
512
532
  interface FrameTokens {
@@ -684,10 +704,12 @@ declare class NucleusMetric {
684
704
  readonly hint: _angular_core.InputSignal<string>;
685
705
  readonly link: _angular_core.InputSignal<string | unknown[]>;
686
706
  readonly tone: _angular_core.InputSignal<MetricTone>;
707
+ readonly progress: _angular_core.InputSignal<number | null>;
708
+ protected readonly bar: _angular_core.Signal<number | null>;
687
709
  readonly loading: _angular_core.InputSignal<boolean | null>;
688
710
  protected readonly busy: _angular_core.Signal<boolean>;
689
711
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusMetric, never>;
690
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusMetric, "nucleus-metric", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "link": { "alias": "link"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
712
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusMetric, "nucleus-metric", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "link": { "alias": "link"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
691
713
  }
692
714
 
693
715
  interface TabItem {
@@ -1051,6 +1073,7 @@ declare class NucleusViewport {
1051
1073
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<NucleusViewport>;
1052
1074
  }
1053
1075
 
1076
+ type MenuLayout = 'list' | 'grid';
1054
1077
  interface MenuTile {
1055
1078
  readonly label: string;
1056
1079
  readonly icon: string | null;
@@ -1087,9 +1110,14 @@ declare class NucleusMenu {
1087
1110
  readonly emptyText: _angular_core.InputSignal<string>;
1088
1111
  readonly keyboardHint: _angular_core.InputSignal<string>;
1089
1112
  readonly width: _angular_core.InputSignal<number>;
1113
+ readonly layout: _angular_core.InputSignal<MenuLayout>;
1114
+ readonly columns: _angular_core.InputSignal<number>;
1090
1115
  readonly select: _angular_core.OutputEmitterRef<MenuRow>;
1091
1116
  readonly dismiss: _angular_core.OutputEmitterRef<void>;
1092
1117
  protected readonly term: _angular_core.WritableSignal<string>;
1118
+ protected readonly grid: _angular_core.Signal<boolean>;
1119
+ private readonly keyed;
1120
+ private readonly pointed;
1093
1121
  private readonly searchBox;
1094
1122
  private readonly root;
1095
1123
  protected readonly visible: _angular_core.Signal<readonly MenuSection[]>;
@@ -1103,11 +1131,13 @@ declare class NucleusMenu {
1103
1131
  protected onTerm(value: string): void;
1104
1132
  protected choose(row: MenuRow): void;
1105
1133
  protected onKeydown(event: KeyboardEvent): void;
1134
+ private moveOf;
1106
1135
  private step;
1136
+ private landing;
1107
1137
  private scrollIntoView;
1108
1138
  private focusEntry;
1109
1139
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NucleusMenu, never>;
1110
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusMenu, "nucleus-menu", never, { "sections": { "alias": "sections"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "keyboardHint": { "alias": "keyboardHint"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, { "select": "select"; "dismiss": "dismiss"; }, never, never, true, never>;
1140
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NucleusMenu, "nucleus-menu", never, { "sections": { "alias": "sections"; "required": false; "isSignal": true; }; "heading": { "alias": "heading"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "keyboardHint": { "alias": "keyboardHint"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; }, { "select": "select"; "dismiss": "dismiss"; }, never, never, true, never>;
1111
1141
  }
1112
1142
 
1113
1143
  declare class NucleusRecentApps {
@@ -1146,9 +1176,8 @@ interface ShellCopy {
1146
1176
  readonly appsSwitch: string;
1147
1177
  readonly appsSearch: string;
1148
1178
  readonly appsNoMatch: string;
1149
- readonly appsRecent: string;
1150
- readonly appsAll: string;
1151
1179
  readonly appsAvailable: string;
1180
+ readonly appsUpcoming: string;
1152
1181
  readonly appsHere: string;
1153
1182
  readonly keyboardHint: string;
1154
1183
  readonly accountSwitchHint: string;
@@ -1250,7 +1279,6 @@ declare class NucleusShell {
1250
1279
  protected readonly words: _angular_core.Signal<_nucleus_suite_pe_core.CommonCopy>;
1251
1280
  protected readonly hasSiteContext: _angular_core.Signal<boolean>;
1252
1281
  protected readonly launcherRich: _angular_core.Signal<boolean>;
1253
- protected readonly launcherCount: _angular_core.Signal<string | null>;
1254
1282
  protected readonly launcherSections: _angular_core.Signal<MenuSection[]>;
1255
1283
  protected readonly accountSections: _angular_core.Signal<MenuSection[]>;
1256
1284
  protected readonly accountContext: _angular_core.Signal<string>;
@@ -1286,5 +1314,5 @@ declare class NucleusShell {
1286
1314
  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>;
1287
1315
  }
1288
1316
 
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 };
1317
+ 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, NucleusBytes, NucleusCache, NucleusCard, NucleusCell, NucleusColorPicker, NucleusCompact, NucleusEnterAdvance, NucleusFeedback, NucleusForm, NucleusGeo, NucleusGeoSelect, NucleusIconPicker, NucleusLanguage, NucleusLink, NucleusList, NucleusLordicon, NucleusMark, NucleusMegabytes, 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, compactBytes, compactMegabytes, compactNumber, 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 };
1318
+ 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, MenuLayout, MenuNode, MenuPermissions, MenuRow, MenuSection, MenuTile, MetricTone, NucleusConfig, NucleusIdentity, NucleusLang, NucleusLinkTarget, SessionTicket, ShellCopy, ShellNavItem, ShortcutBinding, Site, SiteAccess, Subscription, TabItem, ThemeCopy, TreeRow, UserProfile };