@praxisui/core 9.0.4-rc.39 → 9.0.4-rc.40

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,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-08-10T02:36:18.987Z",
3
+ "generatedAt": "2026-08-10T11:49:21.807Z",
4
4
  "packageName": "@praxisui/core",
5
- "packageVersion": "9.0.4-rc.39",
5
+ "packageVersion": "9.0.4-rc.40",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 4,
@@ -31643,6 +31643,12 @@ class WidgetShellComponent {
31643
31643
  dragSurfacePointerDown = new EventEmitter();
31644
31644
  dragSurfaceKeydown = new EventEmitter();
31645
31645
  loader;
31646
+ shellText(value, fallback = '') {
31647
+ return this.i18n.resolve(value, fallback);
31648
+ }
31649
+ actionText(value, fallback = '') {
31650
+ return this.i18n.resolve(value, fallback);
31651
+ }
31646
31652
  get appearance() {
31647
31653
  const base = this.resolvePresetAppearance();
31648
31654
  const override = this.shell?.appearance;
@@ -31896,9 +31902,9 @@ class WidgetShellComponent {
31896
31902
  <mat-icon [praxisIcon]="shell?.icon"></mat-icon>
31897
31903
  }
31898
31904
  <div class="pdx-shell-text">
31899
- <div class="pdx-shell-title-text">{{ shell?.title }}</div>
31905
+ <div class="pdx-shell-title-text">{{ shellText(shell?.title) }}</div>
31900
31906
  @if (shell?.subtitle) {
31901
- <div class="pdx-shell-subtitle">{{ shell?.subtitle }}</div>
31907
+ <div class="pdx-shell-subtitle">{{ shellText(shell?.subtitle) }}</div>
31902
31908
  }
31903
31909
  </div>
31904
31910
  </div>
@@ -31909,7 +31915,7 @@ class WidgetShellComponent {
31909
31915
  @if (action.variant !== 'icon') {
31910
31916
  <button
31911
31917
  [disabled]="action.disabled"
31912
- [matTooltip]="action.tooltip || ''"
31918
+ [matTooltip]="actionText(action.tooltip)"
31913
31919
  matTooltipPosition="above"
31914
31920
  [ngClass]="action.variant === 'outlined' ? 'pdx-action-outlined' : 'pdx-action-text'"
31915
31921
  [class.pdx-shell-action--pressed]="action.pressed === true"
@@ -31921,7 +31927,7 @@ class WidgetShellComponent {
31921
31927
  @if (displayActionIcon(action); as actionIcon) {
31922
31928
  <mat-icon [praxisIcon]="actionIcon"></mat-icon>
31923
31929
  }
31924
- <span class="pdx-action-label">{{ action.label }}</span>
31930
+ <span class="pdx-action-label">{{ actionText(action.label) }}</span>
31925
31931
  </button>
31926
31932
  }
31927
31933
  @if (action.variant === 'icon') {
@@ -31931,9 +31937,9 @@ class WidgetShellComponent {
31931
31937
  size="compact"
31932
31938
  [pressed]="actionPressedState(action)"
31933
31939
  [disabled]="action.disabled"
31934
- [matTooltip]="action.tooltip || action.label || ''"
31940
+ [matTooltip]="actionText(action.tooltip, actionText(action.label))"
31935
31941
  matTooltipPosition="above"
31936
- [attr.aria-label]="action.label || action.tooltip || action.id"
31942
+ [attr.aria-label]="actionText(action.label, actionText(action.tooltip, action.id))"
31937
31943
  type="button"
31938
31944
  (click)="onAction(action, $event)"
31939
31945
  ></button>
@@ -31963,9 +31969,9 @@ class WidgetShellComponent {
31963
31969
  size="compact"
31964
31970
  [pressed]="actionPressedState(action)"
31965
31971
  [disabled]="action.disabled"
31966
- [matTooltip]="action.tooltip || action.label || ''"
31972
+ [matTooltip]="actionText(action.tooltip, actionText(action.label))"
31967
31973
  matTooltipPosition="above"
31968
- [attr.aria-label]="action.label || action.tooltip || action.id"
31974
+ [attr.aria-label]="actionText(action.label, actionText(action.tooltip, action.id))"
31969
31975
  type="button"
31970
31976
  (click)="onAction(action, $event)"
31971
31977
  ></button>
@@ -31984,7 +31990,7 @@ class WidgetShellComponent {
31984
31990
  @if (displayActionIcon(action); as actionIcon) {
31985
31991
  <mat-icon [praxisIcon]="actionIcon"></mat-icon>
31986
31992
  }
31987
- <span>{{ action.label || action.id }}</span>
31993
+ <span>{{ actionText(action.label, action.id) }}</span>
31988
31994
  </button>
31989
31995
  }
31990
31996
  </mat-menu>
@@ -32042,9 +32048,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
32042
32048
  <mat-icon [praxisIcon]="shell?.icon"></mat-icon>
32043
32049
  }
32044
32050
  <div class="pdx-shell-text">
32045
- <div class="pdx-shell-title-text">{{ shell?.title }}</div>
32051
+ <div class="pdx-shell-title-text">{{ shellText(shell?.title) }}</div>
32046
32052
  @if (shell?.subtitle) {
32047
- <div class="pdx-shell-subtitle">{{ shell?.subtitle }}</div>
32053
+ <div class="pdx-shell-subtitle">{{ shellText(shell?.subtitle) }}</div>
32048
32054
  }
32049
32055
  </div>
32050
32056
  </div>
@@ -32055,7 +32061,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
32055
32061
  @if (action.variant !== 'icon') {
32056
32062
  <button
32057
32063
  [disabled]="action.disabled"
32058
- [matTooltip]="action.tooltip || ''"
32064
+ [matTooltip]="actionText(action.tooltip)"
32059
32065
  matTooltipPosition="above"
32060
32066
  [ngClass]="action.variant === 'outlined' ? 'pdx-action-outlined' : 'pdx-action-text'"
32061
32067
  [class.pdx-shell-action--pressed]="action.pressed === true"
@@ -32067,7 +32073,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
32067
32073
  @if (displayActionIcon(action); as actionIcon) {
32068
32074
  <mat-icon [praxisIcon]="actionIcon"></mat-icon>
32069
32075
  }
32070
- <span class="pdx-action-label">{{ action.label }}</span>
32076
+ <span class="pdx-action-label">{{ actionText(action.label) }}</span>
32071
32077
  </button>
32072
32078
  }
32073
32079
  @if (action.variant === 'icon') {
@@ -32077,9 +32083,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
32077
32083
  size="compact"
32078
32084
  [pressed]="actionPressedState(action)"
32079
32085
  [disabled]="action.disabled"
32080
- [matTooltip]="action.tooltip || action.label || ''"
32086
+ [matTooltip]="actionText(action.tooltip, actionText(action.label))"
32081
32087
  matTooltipPosition="above"
32082
- [attr.aria-label]="action.label || action.tooltip || action.id"
32088
+ [attr.aria-label]="actionText(action.label, actionText(action.tooltip, action.id))"
32083
32089
  type="button"
32084
32090
  (click)="onAction(action, $event)"
32085
32091
  ></button>
@@ -32109,9 +32115,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
32109
32115
  size="compact"
32110
32116
  [pressed]="actionPressedState(action)"
32111
32117
  [disabled]="action.disabled"
32112
- [matTooltip]="action.tooltip || action.label || ''"
32118
+ [matTooltip]="actionText(action.tooltip, actionText(action.label))"
32113
32119
  matTooltipPosition="above"
32114
- [attr.aria-label]="action.label || action.tooltip || action.id"
32120
+ [attr.aria-label]="actionText(action.label, actionText(action.tooltip, action.id))"
32115
32121
  type="button"
32116
32122
  (click)="onAction(action, $event)"
32117
32123
  ></button>
@@ -32130,7 +32136,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
32130
32136
  @if (displayActionIcon(action); as actionIcon) {
32131
32137
  <mat-icon [praxisIcon]="actionIcon"></mat-icon>
32132
32138
  }
32133
- <span>{{ action.label || action.id }}</span>
32139
+ <span>{{ actionText(action.label, action.id) }}</span>
32134
32140
  </button>
32135
32141
  }
32136
32142
  </mat-menu>
@@ -37941,7 +37947,7 @@ class DynamicWidgetPageComponent {
37941
37947
  return shell;
37942
37948
  }
37943
37949
  resolveWidgetDisplayName(widget) {
37944
- const shellTitle = String(widget.shell?.title || '').trim();
37950
+ const shellTitle = this.i18n.resolve(widget.shell?.title, '').trim();
37945
37951
  if (shellTitle)
37946
37952
  return shellTitle;
37947
37953
  const componentId = widget.definition?.id || '';
@@ -38412,7 +38418,7 @@ class DynamicWidgetPageComponent {
38412
38418
  if (!widget) {
38413
38419
  return;
38414
38420
  }
38415
- const title = widget.shell?.title || widget.definition?.id || widgetKey;
38421
+ const title = this.i18n.resolve(widget.shell?.title, widget.definition?.id || widgetKey);
38416
38422
  const confirmation = await this.globalActions.execute('dialog.confirm', {
38417
38423
  title: this.t('controls.widgetRemoveConfirmTitle', 'Excluir widget?'),
38418
38424
  message: this.t('controls.widgetRemoveConfirmMessage', 'O widget "{{widget}}" será removido da página. Conexões e posições vinculadas também serão limpas.', { widget: title }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@praxisui/core",
3
- "version": "9.0.4-rc.39",
3
+ "version": "9.0.4-rc.40",
4
4
  "description": "Core library for Praxis UI Workspace: types, tokens, services and utilities shared across @praxisui/* packages.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
@@ -13183,11 +13183,11 @@ interface WidgetShellAction {
13183
13183
  /** Unique action id used for tracking and default emit name. */
13184
13184
  id: string;
13185
13185
  /** Optional label for text or outlined buttons. */
13186
- label?: string;
13186
+ label?: PraxisTextValue;
13187
13187
  /** Optional icon name (Material or Praxis icon registry). */
13188
13188
  icon?: string;
13189
13189
  /** Tooltip text for the action. */
13190
- tooltip?: string;
13190
+ tooltip?: PraxisTextValue;
13191
13191
  /** Visual style of the action button. */
13192
13192
  variant?: 'icon' | 'text' | 'outlined';
13193
13193
  /** Optional icon rendered when the action is pressed. Falls back to `icon`. */
@@ -13222,9 +13222,9 @@ interface WidgetShellConfig {
13222
13222
  /** Header icon name. */
13223
13223
  icon?: string;
13224
13224
  /** Header title. */
13225
- title?: string;
13225
+ title?: PraxisTextValue;
13226
13226
  /** Header subtitle. */
13227
- subtitle?: string;
13227
+ subtitle?: PraxisTextValue;
13228
13228
  /** Whether to show the header; defaults to true when title/icon/actions exist. */
13229
13229
  showHeader?: boolean;
13230
13230
  /** Header + window actions. */
@@ -15085,6 +15085,8 @@ declare class WidgetShellComponent implements OnChanges {
15085
15085
  dragSurfacePointerDown: EventEmitter<PointerEvent>;
15086
15086
  dragSurfaceKeydown: EventEmitter<KeyboardEvent>;
15087
15087
  loader?: DynamicWidgetLoaderDirective;
15088
+ shellText(value: PraxisTextValue | null | undefined, fallback?: string): string;
15089
+ actionText(value: PraxisTextValue | null | undefined, fallback?: string): string;
15088
15090
  get appearance(): WidgetShellConfig['appearance'];
15089
15091
  collapsed: boolean;
15090
15092
  expanded: boolean;