pptx-angular-viewer 1.1.60 → 1.1.61

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.
@@ -45389,7 +45389,7 @@ class EffectsPanelComponent {
45389
45389
  (change)="onOuterShadowField('color', $event)"
45390
45390
  />
45391
45391
  <label class="pptx-ng-fx__label" for="fx-os-opacity">{{
45392
- 'pptx.effects.opacity' | translate
45392
+ 'pptx.inspector.opacity' | translate
45393
45393
  }}</label>
45394
45394
  <input
45395
45395
  id="fx-os-opacity"
@@ -45472,7 +45472,7 @@ class EffectsPanelComponent {
45472
45472
  (change)="onInnerShadowField('color', $event)"
45473
45473
  />
45474
45474
  <label class="pptx-ng-fx__label" for="fx-is-opacity">{{
45475
- 'pptx.effects.opacity' | translate
45475
+ 'pptx.inspector.opacity' | translate
45476
45476
  }}</label>
45477
45477
  <input
45478
45478
  id="fx-is-opacity"
@@ -45565,7 +45565,7 @@ class EffectsPanelComponent {
45565
45565
  (change)="onGlowField('radius', $event)"
45566
45566
  />
45567
45567
  <label class="pptx-ng-fx__label" for="fx-glow-opacity">{{
45568
- 'pptx.effects.opacity' | translate
45568
+ 'pptx.inspector.opacity' | translate
45569
45569
  }}</label>
45570
45570
  <input
45571
45571
  id="fx-glow-opacity"
@@ -45727,7 +45727,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
45727
45727
  (change)="onOuterShadowField('color', $event)"
45728
45728
  />
45729
45729
  <label class="pptx-ng-fx__label" for="fx-os-opacity">{{
45730
- 'pptx.effects.opacity' | translate
45730
+ 'pptx.inspector.opacity' | translate
45731
45731
  }}</label>
45732
45732
  <input
45733
45733
  id="fx-os-opacity"
@@ -45810,7 +45810,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
45810
45810
  (change)="onInnerShadowField('color', $event)"
45811
45811
  />
45812
45812
  <label class="pptx-ng-fx__label" for="fx-is-opacity">{{
45813
- 'pptx.effects.opacity' | translate
45813
+ 'pptx.inspector.opacity' | translate
45814
45814
  }}</label>
45815
45815
  <input
45816
45816
  id="fx-is-opacity"
@@ -45903,7 +45903,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
45903
45903
  (change)="onGlowField('radius', $event)"
45904
45904
  />
45905
45905
  <label class="pptx-ng-fx__label" for="fx-glow-opacity">{{
45906
- 'pptx.effects.opacity' | translate
45906
+ 'pptx.inspector.opacity' | translate
45907
45907
  }}</label>
45908
45908
  <input
45909
45909
  id="fx-glow-opacity"
@@ -46790,7 +46790,7 @@ class SmartArtPropertiesComponent {
46790
46790
 
46791
46791
  <!-- ── Layout switcher ──────────────────────────────────────────── -->
46792
46792
  <div class="pptx-sa-props__field">
46793
- <span class="pptx-sa-props__label">{{ 'pptx.smartart.layout' | translate }}</span>
46793
+ <span class="pptx-sa-props__label">{{ 'pptx.master.layout' | translate }}</span>
46794
46794
  <div
46795
46795
  class="pptx-sa-props__layouts"
46796
46796
  role="group"
@@ -46882,7 +46882,7 @@ class SmartArtPropertiesComponent {
46882
46882
  class="pptx-sa-props__node-input"
46883
46883
  [disabled]="!canEdit()"
46884
46884
  [value]="node.text"
46885
- [attr.placeholder]="'pptx.smartart.typeHere' | translate"
46885
+ [attr.placeholder]="'pptx.smartArt.nodePlaceholder' | translate"
46886
46886
  (change)="onNodeText($event, node.id)"
46887
46887
  (keydown)="onNodeKeydown($event, node.id)"
46888
46888
  />
@@ -46891,7 +46891,7 @@ class SmartArtPropertiesComponent {
46891
46891
  <button
46892
46892
  type="button"
46893
46893
  class="pptx-sa-props__icon"
46894
- [title]="'pptx.smartart.addSubItem' | translate"
46894
+ [title]="'pptx.smartArt.addSubItem' | translate"
46895
46895
  [disabled]="!canEdit()"
46896
46896
  (click)="onAddSubItem(node.id)"
46897
46897
  >
@@ -46919,7 +46919,7 @@ class SmartArtPropertiesComponent {
46919
46919
  <button
46920
46920
  type="button"
46921
46921
  class="pptx-sa-props__icon"
46922
- [title]="'pptx.smartart.moveUp' | translate"
46922
+ [title]="'pptx.smartArt.moveUp' | translate"
46923
46923
  [disabled]="!canEdit()"
46924
46924
  (click)="onMoveUp(node.id)"
46925
46925
  >
@@ -46928,7 +46928,7 @@ class SmartArtPropertiesComponent {
46928
46928
  <button
46929
46929
  type="button"
46930
46930
  class="pptx-sa-props__icon"
46931
- [title]="'pptx.smartart.moveDown' | translate"
46931
+ [title]="'pptx.smartArt.moveDown' | translate"
46932
46932
  [disabled]="!canEdit()"
46933
46933
  (click)="onMoveDown(node.id)"
46934
46934
  >
@@ -46940,7 +46940,7 @@ class SmartArtPropertiesComponent {
46940
46940
  [title]="
46941
46941
  !isChild(node) && !canRemoveItem()
46942
46942
  ? boundsHint()
46943
- : ('pptx.smartart.remove' | translate)
46943
+ : ('pptx.smartArt.remove' | translate)
46944
46944
  "
46945
46945
  [disabled]="
46946
46946
  !canEdit() || nodes().length <= 1 || (!isChild(node) && !canRemoveItem())
@@ -46955,7 +46955,7 @@ class SmartArtPropertiesComponent {
46955
46955
  <div class="pptx-sa-props__node-style">
46956
46956
  <label class="pptx-sa-props__swatch" [title]="'pptx.smartart.nodeFill' | translate">
46957
46957
  <span class="pptx-sa-props__swatch-label">{{
46958
- 'pptx.smartart.fill' | translate
46958
+ 'pptx.smartArt.fill' | translate
46959
46959
  }}</span>
46960
46960
  <input
46961
46961
  type="color"
@@ -46967,7 +46967,7 @@ class SmartArtPropertiesComponent {
46967
46967
  </label>
46968
46968
  <label class="pptx-sa-props__swatch" [title]="'pptx.smartart.nodeFont' | translate">
46969
46969
  <span class="pptx-sa-props__swatch-label">{{
46970
- 'pptx.smartart.font' | translate
46970
+ 'pptx.textPanel.font' | translate
46971
46971
  }}</span>
46972
46972
  <input
46973
46973
  type="color"
@@ -46980,7 +46980,7 @@ class SmartArtPropertiesComponent {
46980
46980
  <button
46981
46981
  type="button"
46982
46982
  class="pptx-sa-props__icon pptx-sa-props__style-toggle"
46983
- [title]="'pptx.smartart.bold' | translate"
46983
+ [title]="'pptx.inspector.bold' | translate"
46984
46984
  [class.is-active]="nodeIsBold(node)"
46985
46985
  [attr.aria-pressed]="nodeIsBold(node)"
46986
46986
  [disabled]="!canEdit()"
@@ -46991,7 +46991,7 @@ class SmartArtPropertiesComponent {
46991
46991
  <button
46992
46992
  type="button"
46993
46993
  class="pptx-sa-props__icon pptx-sa-props__style-toggle"
46994
- [title]="'pptx.smartart.italic' | translate"
46994
+ [title]="'pptx.inspector.italic' | translate"
46995
46995
  [class.is-active]="nodeIsItalic(node)"
46996
46996
  [attr.aria-pressed]="nodeIsItalic(node)"
46997
46997
  [disabled]="!canEdit()"
@@ -47016,7 +47016,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
47016
47016
 
47017
47017
  <!-- ── Layout switcher ──────────────────────────────────────────── -->
47018
47018
  <div class="pptx-sa-props__field">
47019
- <span class="pptx-sa-props__label">{{ 'pptx.smartart.layout' | translate }}</span>
47019
+ <span class="pptx-sa-props__label">{{ 'pptx.master.layout' | translate }}</span>
47020
47020
  <div
47021
47021
  class="pptx-sa-props__layouts"
47022
47022
  role="group"
@@ -47108,7 +47108,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
47108
47108
  class="pptx-sa-props__node-input"
47109
47109
  [disabled]="!canEdit()"
47110
47110
  [value]="node.text"
47111
- [attr.placeholder]="'pptx.smartart.typeHere' | translate"
47111
+ [attr.placeholder]="'pptx.smartArt.nodePlaceholder' | translate"
47112
47112
  (change)="onNodeText($event, node.id)"
47113
47113
  (keydown)="onNodeKeydown($event, node.id)"
47114
47114
  />
@@ -47117,7 +47117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
47117
47117
  <button
47118
47118
  type="button"
47119
47119
  class="pptx-sa-props__icon"
47120
- [title]="'pptx.smartart.addSubItem' | translate"
47120
+ [title]="'pptx.smartArt.addSubItem' | translate"
47121
47121
  [disabled]="!canEdit()"
47122
47122
  (click)="onAddSubItem(node.id)"
47123
47123
  >
@@ -47145,7 +47145,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
47145
47145
  <button
47146
47146
  type="button"
47147
47147
  class="pptx-sa-props__icon"
47148
- [title]="'pptx.smartart.moveUp' | translate"
47148
+ [title]="'pptx.smartArt.moveUp' | translate"
47149
47149
  [disabled]="!canEdit()"
47150
47150
  (click)="onMoveUp(node.id)"
47151
47151
  >
@@ -47154,7 +47154,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
47154
47154
  <button
47155
47155
  type="button"
47156
47156
  class="pptx-sa-props__icon"
47157
- [title]="'pptx.smartart.moveDown' | translate"
47157
+ [title]="'pptx.smartArt.moveDown' | translate"
47158
47158
  [disabled]="!canEdit()"
47159
47159
  (click)="onMoveDown(node.id)"
47160
47160
  >
@@ -47166,7 +47166,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
47166
47166
  [title]="
47167
47167
  !isChild(node) && !canRemoveItem()
47168
47168
  ? boundsHint()
47169
- : ('pptx.smartart.remove' | translate)
47169
+ : ('pptx.smartArt.remove' | translate)
47170
47170
  "
47171
47171
  [disabled]="
47172
47172
  !canEdit() || nodes().length <= 1 || (!isChild(node) && !canRemoveItem())
@@ -47181,7 +47181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
47181
47181
  <div class="pptx-sa-props__node-style">
47182
47182
  <label class="pptx-sa-props__swatch" [title]="'pptx.smartart.nodeFill' | translate">
47183
47183
  <span class="pptx-sa-props__swatch-label">{{
47184
- 'pptx.smartart.fill' | translate
47184
+ 'pptx.smartArt.fill' | translate
47185
47185
  }}</span>
47186
47186
  <input
47187
47187
  type="color"
@@ -47193,7 +47193,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
47193
47193
  </label>
47194
47194
  <label class="pptx-sa-props__swatch" [title]="'pptx.smartart.nodeFont' | translate">
47195
47195
  <span class="pptx-sa-props__swatch-label">{{
47196
- 'pptx.smartart.font' | translate
47196
+ 'pptx.textPanel.font' | translate
47197
47197
  }}</span>
47198
47198
  <input
47199
47199
  type="color"
@@ -47206,7 +47206,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
47206
47206
  <button
47207
47207
  type="button"
47208
47208
  class="pptx-sa-props__icon pptx-sa-props__style-toggle"
47209
- [title]="'pptx.smartart.bold' | translate"
47209
+ [title]="'pptx.inspector.bold' | translate"
47210
47210
  [class.is-active]="nodeIsBold(node)"
47211
47211
  [attr.aria-pressed]="nodeIsBold(node)"
47212
47212
  [disabled]="!canEdit()"
@@ -47217,7 +47217,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
47217
47217
  <button
47218
47218
  type="button"
47219
47219
  class="pptx-sa-props__icon pptx-sa-props__style-toggle"
47220
- [title]="'pptx.smartart.italic' | translate"
47220
+ [title]="'pptx.inspector.italic' | translate"
47221
47221
  [class.is-active]="nodeIsItalic(node)"
47222
47222
  [attr.aria-pressed]="nodeIsItalic(node)"
47223
47223
  [disabled]="!canEdit()"
@@ -48023,7 +48023,7 @@ class TableCellFormattingComponent {
48023
48023
  [disabled]="!canEdit()"
48024
48024
  (click)="onMergeRange()"
48025
48025
  >
48026
- {{ 'pptx.table.mergeSelected' | translate }}
48026
+ {{ 'pptx.contextMenu.mergeSelectedCells' | translate }}
48027
48027
  </button>
48028
48028
  }
48029
48029
  </div>
@@ -48169,7 +48169,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
48169
48169
  [disabled]="!canEdit()"
48170
48170
  (click)="onMergeRange()"
48171
48171
  >
48172
- {{ 'pptx.table.mergeSelected' | translate }}
48172
+ {{ 'pptx.contextMenu.mergeSelectedCells' | translate }}
48173
48173
  </button>
48174
48174
  }
48175
48175
  </div>
@@ -55008,7 +55008,7 @@ class SmartArtRendererComponent {
55008
55008
  >
55009
55009
  @if (isEmpty()) {
55010
55010
  <div class="pptx-ng-smartart-placeholder">
55011
- {{ 'pptx.smartart.placeholder' | translate }}
55011
+ {{ 'pptx.smartArt.placeholder' | translate }}
55012
55012
  </div>
55013
55013
  } @else if (hasDrawingShapes()) {
55014
55014
  <svg
@@ -55169,7 +55169,7 @@ class SmartArtRendererComponent {
55169
55169
  </svg>
55170
55170
  } @else {
55171
55171
  <div class="pptx-ng-smartart-placeholder">
55172
- {{ 'pptx.smartart.placeholder' | translate }}
55172
+ {{ 'pptx.smartArt.placeholder' | translate }}
55173
55173
  </div>
55174
55174
  }
55175
55175
 
@@ -55184,7 +55184,7 @@ class SmartArtRendererComponent {
55184
55184
  <button
55185
55185
  type="button"
55186
55186
  class="pptx-ng-smartart-swatch"
55187
- [attr.aria-label]="'pptx.smartart.setFillTo' | translate: { color: color }"
55187
+ [attr.aria-label]="'pptx.smartArt.setFill' | translate: { color: color }"
55188
55188
  [style.background]="color"
55189
55189
  (click)="handleChangeNodeStyle(hoveredNodeId()!, color)"
55190
55190
  ></button>
@@ -55241,7 +55241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
55241
55241
  >
55242
55242
  @if (isEmpty()) {
55243
55243
  <div class="pptx-ng-smartart-placeholder">
55244
- {{ 'pptx.smartart.placeholder' | translate }}
55244
+ {{ 'pptx.smartArt.placeholder' | translate }}
55245
55245
  </div>
55246
55246
  } @else if (hasDrawingShapes()) {
55247
55247
  <svg
@@ -55402,7 +55402,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
55402
55402
  </svg>
55403
55403
  } @else {
55404
55404
  <div class="pptx-ng-smartart-placeholder">
55405
- {{ 'pptx.smartart.placeholder' | translate }}
55405
+ {{ 'pptx.smartArt.placeholder' | translate }}
55406
55406
  </div>
55407
55407
  }
55408
55408
 
@@ -55417,7 +55417,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
55417
55417
  <button
55418
55418
  type="button"
55419
55419
  class="pptx-ng-smartart-swatch"
55420
- [attr.aria-label]="'pptx.smartart.setFillTo' | translate: { color: color }"
55420
+ [attr.aria-label]="'pptx.smartArt.setFill' | translate: { color: color }"
55421
55421
  [style.background]="color"
55422
55422
  (click)="handleChangeNodeStyle(hoveredNodeId()!, color)"
55423
55423
  ></button>
@@ -55706,7 +55706,7 @@ class SmartArt3DRendererComponent {
55706
55706
  [style.height.px]="editState()!.box.height"
55707
55707
  [value]="editState()!.text"
55708
55708
  spellcheck="false"
55709
- [attr.aria-label]="'pptx.smartart.editNodeText' | translate"
55709
+ [attr.aria-label]="'pptx.smartArt.editNodeText' | translate"
55710
55710
  (input)="updateDraft($event)"
55711
55711
  (blur)="commitEdit()"
55712
55712
  (keydown)="onEditorKeydown($event)"
@@ -55748,7 +55748,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
55748
55748
  [style.height.px]="editState()!.box.height"
55749
55749
  [value]="editState()!.text"
55750
55750
  spellcheck="false"
55751
- [attr.aria-label]="'pptx.smartart.editNodeText' | translate"
55751
+ [attr.aria-label]="'pptx.smartArt.editNodeText' | translate"
55752
55752
  (input)="updateDraft($event)"
55753
55753
  (blur)="commitEdit()"
55754
55754
  (keydown)="onEditorKeydown($event)"
@@ -59073,7 +59073,7 @@ class SlideCanvasComponent {
59073
59073
  <div
59074
59074
  class="pptx-ng-rotate-handle"
59075
59075
  role="button"
59076
- [attr.aria-label]="'pptx.canvas.rotate' | translate"
59076
+ [attr.aria-label]="'pptx.selectionOverlay.rotate' | translate"
59077
59077
  [style.left.px]="rh.left"
59078
59078
  [style.top.px]="rh.top"
59079
59079
  [style.width.px]="rh.size"
@@ -59447,7 +59447,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
59447
59447
  <div
59448
59448
  class="pptx-ng-rotate-handle"
59449
59449
  role="button"
59450
- [attr.aria-label]="'pptx.canvas.rotate' | translate"
59450
+ [attr.aria-label]="'pptx.selectionOverlay.rotate' | translate"
59451
59451
  [style.left.px]="rh.left"
59452
59452
  [style.top.px]="rh.top"
59453
59453
  [style.width.px]="rh.size"
@@ -65226,7 +65226,7 @@ class PropertiesDialogComponent {
65226
65226
  <div class="pptx-ng-props-form">
65227
65227
  <div class="pptx-ng-props-field">
65228
65228
  <label for="pptx-ng-props-title" class="pptx-ng-props-label">{{
65229
- 'pptx.documentProperties.summary.title' | translate
65229
+ 'pptx.properties.titleLabel' | translate
65230
65230
  }}</label>
65231
65231
  <input
65232
65232
  id="pptx-ng-props-title"
@@ -65239,7 +65239,7 @@ class PropertiesDialogComponent {
65239
65239
 
65240
65240
  <div class="pptx-ng-props-field">
65241
65241
  <label for="pptx-ng-props-creator" class="pptx-ng-props-label">{{
65242
- 'pptx.documentProperties.summary.author' | translate
65242
+ 'pptx.properties.author' | translate
65243
65243
  }}</label>
65244
65244
  <input
65245
65245
  id="pptx-ng-props-creator"
@@ -65252,7 +65252,7 @@ class PropertiesDialogComponent {
65252
65252
 
65253
65253
  <div class="pptx-ng-props-field">
65254
65254
  <label for="pptx-ng-props-subject" class="pptx-ng-props-label">{{
65255
- 'pptx.documentProperties.summary.subject' | translate
65255
+ 'pptx.properties.subject' | translate
65256
65256
  }}</label>
65257
65257
  <input
65258
65258
  id="pptx-ng-props-subject"
@@ -65265,7 +65265,7 @@ class PropertiesDialogComponent {
65265
65265
 
65266
65266
  <div class="pptx-ng-props-field">
65267
65267
  <label for="pptx-ng-props-keywords" class="pptx-ng-props-label">{{
65268
- 'pptx.documentProperties.summary.keywords' | translate
65268
+ 'pptx.properties.keywords' | translate
65269
65269
  }}</label>
65270
65270
  <input
65271
65271
  id="pptx-ng-props-keywords"
@@ -65318,7 +65318,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
65318
65318
  <div class="pptx-ng-props-form">
65319
65319
  <div class="pptx-ng-props-field">
65320
65320
  <label for="pptx-ng-props-title" class="pptx-ng-props-label">{{
65321
- 'pptx.documentProperties.summary.title' | translate
65321
+ 'pptx.properties.titleLabel' | translate
65322
65322
  }}</label>
65323
65323
  <input
65324
65324
  id="pptx-ng-props-title"
@@ -65331,7 +65331,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
65331
65331
 
65332
65332
  <div class="pptx-ng-props-field">
65333
65333
  <label for="pptx-ng-props-creator" class="pptx-ng-props-label">{{
65334
- 'pptx.documentProperties.summary.author' | translate
65334
+ 'pptx.properties.author' | translate
65335
65335
  }}</label>
65336
65336
  <input
65337
65337
  id="pptx-ng-props-creator"
@@ -65344,7 +65344,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
65344
65344
 
65345
65345
  <div class="pptx-ng-props-field">
65346
65346
  <label for="pptx-ng-props-subject" class="pptx-ng-props-label">{{
65347
- 'pptx.documentProperties.summary.subject' | translate
65347
+ 'pptx.properties.subject' | translate
65348
65348
  }}</label>
65349
65349
  <input
65350
65350
  id="pptx-ng-props-subject"
@@ -65357,7 +65357,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
65357
65357
 
65358
65358
  <div class="pptx-ng-props-field">
65359
65359
  <label for="pptx-ng-props-keywords" class="pptx-ng-props-label">{{
65360
- 'pptx.documentProperties.summary.keywords' | translate
65360
+ 'pptx.properties.keywords' | translate
65361
65361
  }}</label>
65362
65362
  <input
65363
65363
  id="pptx-ng-props-keywords"
@@ -67992,7 +67992,7 @@ class RibbonInsertFieldsComponent {
67992
67992
  class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground transition-colors hover:bg-muted"
67993
67993
  (click)="openDatePicker()"
67994
67994
  >
67995
- {{ 'pptx.field.dateAndTime' | translate }}
67995
+ {{ 'pptx.headerFooter.dateAndTime' | translate }}
67996
67996
  </button>
67997
67997
  <button
67998
67998
  type="button"
@@ -68020,7 +68020,7 @@ class RibbonInsertFieldsComponent {
68020
68020
  >
68021
68021
  <div class="w-72 space-y-3 rounded-lg border border-border bg-card p-4 shadow-2xl">
68022
68022
  <div class="text-sm font-medium text-foreground">
68023
- {{ 'pptx.field.dateAndTime' | translate }}
68023
+ {{ 'pptx.headerFooter.dateAndTime' | translate }}
68024
68024
  </div>
68025
68025
  <input
68026
68026
  type="datetime-local"
@@ -68153,7 +68153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68153
68153
  class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground transition-colors hover:bg-muted"
68154
68154
  (click)="openDatePicker()"
68155
68155
  >
68156
- {{ 'pptx.field.dateAndTime' | translate }}
68156
+ {{ 'pptx.headerFooter.dateAndTime' | translate }}
68157
68157
  </button>
68158
68158
  <button
68159
68159
  type="button"
@@ -68181,7 +68181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68181
68181
  >
68182
68182
  <div class="w-72 space-y-3 rounded-lg border border-border bg-card p-4 shadow-2xl">
68183
68183
  <div class="text-sm font-medium text-foreground">
68184
- {{ 'pptx.field.dateAndTime' | translate }}
68184
+ {{ 'pptx.headerFooter.dateAndTime' | translate }}
68185
68185
  </div>
68186
68186
  <input
68187
68187
  type="datetime-local"
@@ -70448,7 +70448,7 @@ class SelectionPaneComponent {
70448
70448
  }
70449
70449
  </ul>
70450
70450
  } @else {
70451
- <p class="pptx-ng-sel-pane__empty">{{ 'pptx.selectionPane.emptySlide' | translate }}</p>
70451
+ <p class="pptx-ng-sel-pane__empty">{{ 'pptx.selectionPane.empty' | translate }}</p>
70452
70452
  }
70453
70453
  </aside>
70454
70454
  `, isInline: true, styles: [":host{display:block;height:100%;width:100%}.pptx-ng-sel-pane{display:flex;flex-direction:column;min-height:0;height:100%;width:100%;background:var(--pptx-card, #111827);color:var(--pptx-foreground, #f3f4f6);border-left:1px solid var(--pptx-border, #374151);font-family:system-ui,sans-serif}.pptx-ng-sel-pane__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--pptx-border, #374151);flex-shrink:0}.pptx-ng-sel-pane__title{margin:0;font-size:14px;font-weight:600}.pptx-ng-sel-pane__count{font-size:12px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-sel-pane__list{list-style:none;margin:0;padding:8px;overflow-y:auto;flex:1 1 auto;min-height:0}.pptx-ng-sel-pane__row{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;border:1px solid transparent;cursor:pointer;margin-bottom:2px;transition:background .1s;-webkit-user-select:none;user-select:none}.pptx-ng-sel-pane__row:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-sel-pane__row--selected{border-color:var(--pptx-primary, #6366f1);background:color-mix(in srgb,var(--pptx-primary, #6366f1) 15%,transparent)}.pptx-ng-sel-pane__row--hidden{opacity:.5}.pptx-ng-sel-pane__icon{flex-shrink:0;width:20px;text-align:center;font-size:12px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-sel-pane__label{flex:1 1 auto;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.pptx-ng-sel-pane__actions{display:flex;gap:2px;flex-shrink:0}.pptx-ng-sel-pane__btn{background:transparent;border:1px solid var(--pptx-border, #374151);color:inherit;border-radius:4px;padding:2px 5px;font-size:11px;cursor:pointer;line-height:1.2}.pptx-ng-sel-pane__btn:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-sel-pane__empty{padding:16px;font-size:13px;color:var(--pptx-muted-foreground, #9ca3af)}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
@@ -70519,7 +70519,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70519
70519
  }
70520
70520
  </ul>
70521
70521
  } @else {
70522
- <p class="pptx-ng-sel-pane__empty">{{ 'pptx.selectionPane.emptySlide' | translate }}</p>
70522
+ <p class="pptx-ng-sel-pane__empty">{{ 'pptx.selectionPane.empty' | translate }}</p>
70523
70523
  }
70524
70524
  </aside>
70525
70525
  `, styles: [":host{display:block;height:100%;width:100%}.pptx-ng-sel-pane{display:flex;flex-direction:column;min-height:0;height:100%;width:100%;background:var(--pptx-card, #111827);color:var(--pptx-foreground, #f3f4f6);border-left:1px solid var(--pptx-border, #374151);font-family:system-ui,sans-serif}.pptx-ng-sel-pane__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--pptx-border, #374151);flex-shrink:0}.pptx-ng-sel-pane__title{margin:0;font-size:14px;font-weight:600}.pptx-ng-sel-pane__count{font-size:12px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-sel-pane__list{list-style:none;margin:0;padding:8px;overflow-y:auto;flex:1 1 auto;min-height:0}.pptx-ng-sel-pane__row{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;border:1px solid transparent;cursor:pointer;margin-bottom:2px;transition:background .1s;-webkit-user-select:none;user-select:none}.pptx-ng-sel-pane__row:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-sel-pane__row--selected{border-color:var(--pptx-primary, #6366f1);background:color-mix(in srgb,var(--pptx-primary, #6366f1) 15%,transparent)}.pptx-ng-sel-pane__row--hidden{opacity:.5}.pptx-ng-sel-pane__icon{flex-shrink:0;width:20px;text-align:center;font-size:12px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-sel-pane__label{flex:1 1 auto;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.pptx-ng-sel-pane__actions{display:flex;gap:2px;flex-shrink:0}.pptx-ng-sel-pane__btn{background:transparent;border:1px solid var(--pptx-border, #374151);color:inherit;border-radius:4px;padding:2px 5px;font-size:11px;cursor:pointer;line-height:1.2}.pptx-ng-sel-pane__btn:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-sel-pane__empty{padding:16px;font-size:13px;color:var(--pptx-muted-foreground, #9ca3af)}\n"] }]
@@ -70725,9 +70725,7 @@ class ShareDialogComponent {
70725
70725
 
70726
70726
  @if (shareUrl()) {
70727
70727
  <div class="pptx-ng-share-field">
70728
- <label class="pptx-ng-share-label">{{
70729
- 'pptx.share.shareLinkLabel' | translate
70730
- }}</label>
70728
+ <label class="pptx-ng-share-label">{{ 'pptx.share.shareLink' | translate }}</label>
70731
70729
  <div class="pptx-ng-share-link-row">
70732
70730
  <input
70733
70731
  class="pptx-ng-share-input"
@@ -70745,12 +70743,12 @@ class ShareDialogComponent {
70745
70743
  {{ (copied() ? 'pptx.share.copied' : 'pptx.share.copyLinkButton') | translate }}
70746
70744
  </button>
70747
70745
  </div>
70748
- <p class="pptx-ng-share-hint">{{ 'pptx.share.copyLinkHint' | translate }}</p>
70746
+ <p class="pptx-ng-share-hint">{{ 'pptx.share.shareHint' | translate }}</p>
70749
70747
  </div>
70750
70748
  }
70751
70749
 
70752
70750
  <button type="button" class="pptx-ng-share-stop" (click)="handleStop()">
70753
- {{ 'pptx.share.stopSharingButton' | translate }}
70751
+ {{ 'pptx.share.stopSharing' | translate }}
70754
70752
  </button>
70755
70753
  </div>
70756
70754
  } @else {
@@ -70817,7 +70815,7 @@ class ShareDialogComponent {
70817
70815
  [disabled]="!canStart()"
70818
70816
  (click)="handleStart()"
70819
70817
  >
70820
- {{ 'pptx.share.startSharingButton' | translate }}
70818
+ {{ 'pptx.share.startSharing' | translate }}
70821
70819
  </button>
70822
70820
  }
70823
70821
  </div>
@@ -70863,9 +70861,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70863
70861
 
70864
70862
  @if (shareUrl()) {
70865
70863
  <div class="pptx-ng-share-field">
70866
- <label class="pptx-ng-share-label">{{
70867
- 'pptx.share.shareLinkLabel' | translate
70868
- }}</label>
70864
+ <label class="pptx-ng-share-label">{{ 'pptx.share.shareLink' | translate }}</label>
70869
70865
  <div class="pptx-ng-share-link-row">
70870
70866
  <input
70871
70867
  class="pptx-ng-share-input"
@@ -70883,12 +70879,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70883
70879
  {{ (copied() ? 'pptx.share.copied' : 'pptx.share.copyLinkButton') | translate }}
70884
70880
  </button>
70885
70881
  </div>
70886
- <p class="pptx-ng-share-hint">{{ 'pptx.share.copyLinkHint' | translate }}</p>
70882
+ <p class="pptx-ng-share-hint">{{ 'pptx.share.shareHint' | translate }}</p>
70887
70883
  </div>
70888
70884
  }
70889
70885
 
70890
70886
  <button type="button" class="pptx-ng-share-stop" (click)="handleStop()">
70891
- {{ 'pptx.share.stopSharingButton' | translate }}
70887
+ {{ 'pptx.share.stopSharing' | translate }}
70892
70888
  </button>
70893
70889
  </div>
70894
70890
  } @else {
@@ -70955,7 +70951,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70955
70951
  [disabled]="!canStart()"
70956
70952
  (click)="handleStart()"
70957
70953
  >
70958
- {{ 'pptx.share.startSharingButton' | translate }}
70954
+ {{ 'pptx.share.startSharing' | translate }}
70959
70955
  </button>
70960
70956
  }
70961
70957
  </div>
@@ -71137,7 +71133,10 @@ class SignaturesPanelComponent {
71137
71133
  }
71138
71134
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SignaturesPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
71139
71135
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SignaturesPanelComponent, isStandalone: true, selector: "pptx-signatures-panel", inputs: { signatures: { classPropertyName: "signatures", publicName: "signatures", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
71140
- <section class="pptx-ng-signatures" [attr.aria-label]="'pptx.signatures.ariaLabel' | translate">
71136
+ <section
71137
+ class="pptx-ng-signatures"
71138
+ [attr.aria-label]="'pptx.digitalSignatures.ariaLabel' | translate"
71139
+ >
71141
71140
  <header
71142
71141
  class="pptx-ng-signatures__header"
71143
71142
  [class]="'pptx-ng-signatures__header--' + overall()"
@@ -71150,7 +71149,9 @@ class SignaturesPanelComponent {
71150
71149
  </header>
71151
71150
 
71152
71151
  @if (!signed()) {
71153
- <p class="pptx-ng-signatures__empty">{{ 'pptx.signatures.empty' | translate }}</p>
71152
+ <p class="pptx-ng-signatures__empty">
71153
+ {{ 'pptx.digitalSignatures.noSignatures' | translate }}
71154
+ </p>
71154
71155
  } @else {
71155
71156
  <ul class="pptx-ng-signatures__list">
71156
71157
  @for (sig of signatures(); track key(sig, $index)) {
@@ -71167,20 +71168,20 @@ class SignaturesPanelComponent {
71167
71168
 
71168
71169
  <dl class="pptx-ng-signatures__meta">
71169
71170
  @if (sig.certificate?.issuer; as issuer) {
71170
- <dt>{{ 'pptx.signatures.issuer' | translate }}</dt>
71171
+ <dt>{{ 'pptx.digitalSignatures.issuer' | translate }}</dt>
71171
71172
  <dd>{{ issuer }}</dd>
71172
71173
  }
71173
71174
  @if (sig.certificate?.serialNumber; as serial) {
71174
- <dt>{{ 'pptx.signatures.serial' | translate }}</dt>
71175
+ <dt>{{ 'pptx.digitalSignatures.serial' | translate }}</dt>
71175
71176
  <dd>{{ serial }}</dd>
71176
71177
  }
71177
71178
  @if (timestamp(sig); as ts) {
71178
- <dt>{{ 'pptx.signatures.signed' | translate }}</dt>
71179
+ <dt>{{ 'pptx.digitalSignatures.signed' | translate }}</dt>
71179
71180
  <dd>{{ ts }}</dd>
71180
71181
  }
71181
71182
  @if (!sig.certificate) {
71182
- <dt>{{ 'pptx.signatures.certificate' | translate }}</dt>
71183
- <dd>{{ 'pptx.signatures.notAvailable' | translate }}</dd>
71183
+ <dt>{{ 'pptx.digitalSignatures.certificate' | translate }}</dt>
71184
+ <dd>{{ 'pptx.digitalSignatures.notAvailable' | translate }}</dd>
71184
71185
  }
71185
71186
  </dl>
71186
71187
  </li>
@@ -71193,7 +71194,10 @@ class SignaturesPanelComponent {
71193
71194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SignaturesPanelComponent, decorators: [{
71194
71195
  type: Component,
71195
71196
  args: [{ selector: 'pptx-signatures-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe], template: `
71196
- <section class="pptx-ng-signatures" [attr.aria-label]="'pptx.signatures.ariaLabel' | translate">
71197
+ <section
71198
+ class="pptx-ng-signatures"
71199
+ [attr.aria-label]="'pptx.digitalSignatures.ariaLabel' | translate"
71200
+ >
71197
71201
  <header
71198
71202
  class="pptx-ng-signatures__header"
71199
71203
  [class]="'pptx-ng-signatures__header--' + overall()"
@@ -71206,7 +71210,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
71206
71210
  </header>
71207
71211
 
71208
71212
  @if (!signed()) {
71209
- <p class="pptx-ng-signatures__empty">{{ 'pptx.signatures.empty' | translate }}</p>
71213
+ <p class="pptx-ng-signatures__empty">
71214
+ {{ 'pptx.digitalSignatures.noSignatures' | translate }}
71215
+ </p>
71210
71216
  } @else {
71211
71217
  <ul class="pptx-ng-signatures__list">
71212
71218
  @for (sig of signatures(); track key(sig, $index)) {
@@ -71223,20 +71229,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
71223
71229
 
71224
71230
  <dl class="pptx-ng-signatures__meta">
71225
71231
  @if (sig.certificate?.issuer; as issuer) {
71226
- <dt>{{ 'pptx.signatures.issuer' | translate }}</dt>
71232
+ <dt>{{ 'pptx.digitalSignatures.issuer' | translate }}</dt>
71227
71233
  <dd>{{ issuer }}</dd>
71228
71234
  }
71229
71235
  @if (sig.certificate?.serialNumber; as serial) {
71230
- <dt>{{ 'pptx.signatures.serial' | translate }}</dt>
71236
+ <dt>{{ 'pptx.digitalSignatures.serial' | translate }}</dt>
71231
71237
  <dd>{{ serial }}</dd>
71232
71238
  }
71233
71239
  @if (timestamp(sig); as ts) {
71234
- <dt>{{ 'pptx.signatures.signed' | translate }}</dt>
71240
+ <dt>{{ 'pptx.digitalSignatures.signed' | translate }}</dt>
71235
71241
  <dd>{{ ts }}</dd>
71236
71242
  }
71237
71243
  @if (!sig.certificate) {
71238
- <dt>{{ 'pptx.signatures.certificate' | translate }}</dt>
71239
- <dd>{{ 'pptx.signatures.notAvailable' | translate }}</dd>
71244
+ <dt>{{ 'pptx.digitalSignatures.certificate' | translate }}</dt>
71245
+ <dd>{{ 'pptx.digitalSignatures.notAvailable' | translate }}</dd>
71240
71246
  }
71241
71247
  </dl>
71242
71248
  </li>
@@ -71597,12 +71603,12 @@ class SlidesPanelComponent {
71597
71603
  <div
71598
71604
  class="pptx-ng-spanel-actions"
71599
71605
  role="toolbar"
71600
- [attr.aria-label]="'pptx.slidesPanel.slideActions' | translate: { n: i + 1 }"
71606
+ [attr.aria-label]="'pptx.slideMenu.slideActions' | translate: { n: i + 1 }"
71601
71607
  >
71602
71608
  <button
71603
71609
  type="button"
71604
71610
  class="pptx-ng-spanel-action"
71605
- [title]="'pptx.slidesPanel.duplicateSlide' | translate"
71611
+ [title]="'pptx.ribbon.duplicateSlide' | translate"
71606
71612
  [attr.aria-label]="'pptx.arrange.duplicate' | translate"
71607
71613
  (click)="onDuplicate(i)"
71608
71614
  >
@@ -71704,12 +71710,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
71704
71710
  <div
71705
71711
  class="pptx-ng-spanel-actions"
71706
71712
  role="toolbar"
71707
- [attr.aria-label]="'pptx.slidesPanel.slideActions' | translate: { n: i + 1 }"
71713
+ [attr.aria-label]="'pptx.slideMenu.slideActions' | translate: { n: i + 1 }"
71708
71714
  >
71709
71715
  <button
71710
71716
  type="button"
71711
71717
  class="pptx-ng-spanel-action"
71712
- [title]="'pptx.slidesPanel.duplicateSlide' | translate"
71718
+ [title]="'pptx.ribbon.duplicateSlide' | translate"
71713
71719
  [attr.aria-label]="'pptx.arrange.duplicate' | translate"
71714
71720
  (click)="onDuplicate(i)"
71715
71721
  >
@@ -81346,6 +81352,260 @@ const translationsEn = {
81346
81352
  'pptx.animation.sequence.byParagraph': 'By Paragraph',
81347
81353
  'pptx.animation.sequence.byWord': 'By Word',
81348
81354
  'pptx.animation.sequence.byLetter': 'By Letter',
81355
+ // --- 2026-07-03 missing-key sweep: keys used by Vue/Angular with no
81356
+ // existing dictionary entry (React has 0 such gaps and is the ground-
81357
+ // truth reference these were derived from). Appended flat rather than
81358
+ // interleaved into their semantic sections above, to keep this batch
81359
+ // change safe/reviewable as one block.
81360
+ 'pptx.align.toolbarLabel': 'Align and distribute',
81361
+ 'pptx.arrange.deleteSelection': 'Delete selection',
81362
+ 'pptx.arrange.duplicateSelection': 'Duplicate selection',
81363
+ 'pptx.arrange.groupLabel': 'Arrange',
81364
+ 'pptx.canvas.adjustShape': 'Adjust shape',
81365
+ 'pptx.canvas.guideTooltip': 'Drag to move guide, double-click to remove',
81366
+ 'pptx.customShows.none': 'None',
81367
+ 'pptx.customShows.noSlidesYet': 'No slides in this show yet.',
81368
+ 'pptx.customShows.renameNameLabel': 'Show name',
81369
+ 'pptx.customShows.renameShow': 'Rename show',
81370
+ 'pptx.customShows.slidesInShow': 'Slides in show',
81371
+ 'pptx.design.editThemeTooltip': 'Edit presentation theme colors and fonts',
81372
+ 'pptx.design.formatBackgroundTooltip': 'Open inspector to edit slide background',
81373
+ 'pptx.design.slideSizeTooltip': 'Change slide dimensions (16:9, 4:3, custom)',
81374
+ 'pptx.documentProperties.summary.company': 'Company',
81375
+ 'pptx.documentProperties.summary.manager': 'Manager',
81376
+ 'pptx.editorToolbar.addShape': 'Add {{shape}}',
81377
+ 'pptx.editorToolbar.addTextBox': 'Add text box',
81378
+ 'pptx.editorToolbar.history': 'History',
81379
+ 'pptx.editorToolbar.resetZoom': 'Reset zoom',
81380
+ 'pptx.editorToolbar.resetZoomTo100': 'Reset zoom to 100%',
81381
+ 'pptx.effects.innerShadow': 'Inner Shadow',
81382
+ 'pptx.element.linkFallback': 'Link',
81383
+ 'pptx.export.export': 'Export',
81384
+ 'pptx.export.gifAnimated': 'Animated GIF',
81385
+ 'pptx.export.pdfAllSlides': 'PDF (all slides)',
81386
+ 'pptx.export.pngCurrentSlide': 'PNG (current slide)',
81387
+ 'pptx.export.webmVideo': 'WebM video',
81388
+ 'pptx.file.copyImage': 'Copy Image',
81389
+ 'pptx.file.copyImageTooltip': 'Copy Slide as Image',
81390
+ 'pptx.file.fonts': 'Fonts',
81391
+ 'pptx.file.gif': 'GIF',
81392
+ 'pptx.file.package': 'Package',
81393
+ 'pptx.file.packageTooltip': 'Package for Sharing',
81394
+ 'pptx.file.pdf': 'PDF',
81395
+ 'pptx.file.png': 'PNG',
81396
+ 'pptx.file.saveAsPpsx': 'Save .ppsx',
81397
+ 'pptx.file.saveAsPpsxTooltip': 'Save as Slide Show (.ppsx)',
81398
+ 'pptx.file.saveAsPptm': 'Save .pptm',
81399
+ 'pptx.file.saveAsPptmTooltip': 'Save as Macro-Enabled (.pptm)',
81400
+ 'pptx.file.saveAsPptx': 'Save .pptx',
81401
+ 'pptx.file.saveAsPptxTooltip': 'Save as Presentation (.pptx)',
81402
+ 'pptx.file.video': 'Video',
81403
+ 'pptx.fontEmbedding.embedInFile': 'Embed fonts in file',
81404
+ 'pptx.fontEmbedding.noCustomFonts': 'No custom fonts to embed.',
81405
+ 'pptx.guides.dragHint': 'Drag to move guide',
81406
+ 'pptx.handout.cornerDate': 'Date',
81407
+ 'pptx.handout.pageNumber': '#',
81408
+ 'pptx.headerFooter.fixedDate': 'Fixed date',
81409
+ 'pptx.headerFooter.headerText': 'Enter header text…',
81410
+ 'pptx.headerFooter.updateAutomatically': 'Update automatically',
81411
+ 'pptx.home.chooseLayout': 'Choose layout',
81412
+ 'pptx.home.newSlide': 'New Slide',
81413
+ 'pptx.hyperlink.linkTo': 'Link to',
81414
+ 'pptx.hyperlink.urlPlaceholder': 'https://example.com',
81415
+ 'pptx.insert.addShape': 'Add shape',
81416
+ 'pptx.insert.addTextBox': 'Add text box',
81417
+ 'pptx.insert.insertEquation': 'Insert Equation',
81418
+ 'pptx.insert.insertSmartArt': 'Insert SmartArt',
81419
+ 'pptx.insert.insertTable': 'Insert table',
81420
+ 'pptx.insert.shape': 'Shape',
81421
+ 'pptx.insert.shapeType': 'Shape type',
81422
+ 'pptx.mode.closeMasterViewTooltip': 'Close master view',
81423
+ 'pptx.mode.masterView': 'Master View',
81424
+ 'pptx.overflow.closeMenu': 'Close menu',
81425
+ 'pptx.present.optionsTooltip': 'Presentation options',
81426
+ 'pptx.present.presentOnline': 'Present Online',
81427
+ 'pptx.present.presentTooltip': 'Present (fullscreen)',
81428
+ 'pptx.review.spelling': 'Spelling',
81429
+ 'pptx.review.toggleComments': 'Toggle comments panel',
81430
+ 'pptx.review.toggleSpellCheck': 'Toggle spell check',
81431
+ 'pptx.shortcuts.title': 'Keyboard shortcuts',
81432
+ 'pptx.slideInspector.horizontal': 'Horizontal',
81433
+ 'pptx.slideInspector.presentation': 'Presentation',
81434
+ 'pptx.slideInspector.slideTransition': 'Slide transition',
81435
+ 'pptx.slideInspector.themeColours': 'Theme colours',
81436
+ 'pptx.slideInspector.vertical': 'Vertical',
81437
+ 'pptx.slidesPanel.deleteSlide': 'Delete slide',
81438
+ 'pptx.slidesPanel.goToSlide': 'Go to slide {{n}}',
81439
+ 'pptx.smartart.demote': 'Demote',
81440
+ 'pptx.smartart.item': 'Item',
81441
+ 'pptx.smartart.nodeCleared': 'Node cleared',
81442
+ 'pptx.smartart.nodeFill': 'Node fill',
81443
+ 'pptx.smartart.nodeFont': 'Node font',
81444
+ 'pptx.smartart.nodeUpdated': 'Node updated to "{{text}}"',
81445
+ 'pptx.smartart.promote': 'Promote',
81446
+ 'pptx.smartart.subItemShort': 'Sub-item',
81447
+ 'pptx.stroke.dash': 'Dash',
81448
+ 'pptx.stroke.noBorderProperties': 'This element has no border properties.',
81449
+ 'pptx.stroke.widthPx': 'Width (px)',
81450
+ 'pptx.table.columns': 'Columns',
81451
+ 'pptx.table.columnsCount': '{{count}} columns',
81452
+ 'pptx.table.deleteColumn': 'Delete column',
81453
+ 'pptx.table.deleteRow': 'Delete row',
81454
+ 'pptx.table.insertAbove': 'Insert above',
81455
+ 'pptx.table.insertBelow': 'Insert below',
81456
+ 'pptx.table.insertLeft': 'Insert left',
81457
+ 'pptx.table.insertRight': 'Insert right',
81458
+ 'pptx.table.mergeSelected': 'Merge selected',
81459
+ 'pptx.table.noEditableData': 'This table has no editable data.',
81460
+ 'pptx.table.rows': 'Rows',
81461
+ 'pptx.table.rowsCount': '{{count}} rows',
81462
+ 'pptx.table.selectTablePrompt': 'Select a table to edit its properties.',
81463
+ 'pptx.tableCell.backgroundColorAria': 'Background colour',
81464
+ 'pptx.tableCell.edgeBorderColorAria': '{{edge}} border colour',
81465
+ 'pptx.tableCell.textColorAria': 'Text colour',
81466
+ 'pptx.text.bulletList': 'Bullet List',
81467
+ 'pptx.text.clearFormatting': 'Clear Formatting',
81468
+ 'pptx.text.decreaseFontSize': 'Decrease Font Size',
81469
+ 'pptx.text.decreaseIndent': 'Decrease Indent',
81470
+ 'pptx.text.fontColor': 'Font Color',
81471
+ 'pptx.text.highlightColor': 'Text Highlight Color',
81472
+ 'pptx.text.increaseFontSize': 'Increase Font Size',
81473
+ 'pptx.text.increaseIndent': 'Increase Indent',
81474
+ 'pptx.text.numberedList': 'Numbered List',
81475
+ 'pptx.view.addHorizontalGuide': 'Add horizontal guide',
81476
+ 'pptx.view.addVerticalGuide': 'Add vertical guide',
81477
+ 'pptx.view.eyedropperTooltip': 'Eyedropper: sample a colour from the slide',
81478
+ 'pptx.view.hGuide': 'H Guide',
81479
+ 'pptx.view.masterViews': 'Master Views',
81480
+ 'pptx.view.normal': 'Normal',
81481
+ 'pptx.view.presentationViews': 'Presentation Views',
81482
+ 'pptx.view.readingView': 'Reading View',
81483
+ 'pptx.view.selection': 'Selection',
81484
+ 'pptx.view.slideMasterTooltip': 'Edit slide masters and layouts',
81485
+ 'pptx.view.slideSorterTooltip': 'Slide Sorter view',
81486
+ 'pptx.view.spell': 'Spell',
81487
+ 'pptx.view.templateEditingTooltip': 'Toggle template/master element editing',
81488
+ 'pptx.view.toggleSpellCheck': 'Toggle spell check',
81489
+ 'pptx.view.vGuide': 'V Guide',
81490
+ 'pptx.view.zoomToFit': 'Zoom to Fit',
81491
+ 'pptx.view.zoomToFitTooltip': 'Zoom to fit slide in window',
81492
+ // --- 2026-07-03 missing-key sweep, wave 2: keys referenced indirectly
81493
+ // (via a variable/array 'labelKey', not a literal t('...') call - e.g.
81494
+ // shape-preset lists, equation templates, artistic-effect catalogues,
81495
+ // table style-option checkboxes) that the first wave's literal-call
81496
+ // grep could not see. Same appended-flat approach as wave 1.
81497
+ 'pptx.accessibility.severityErrors': 'Errors',
81498
+ 'pptx.accessibility.severityTips': 'Tips',
81499
+ 'pptx.accessibility.severityWarnings': 'Warnings',
81500
+ 'pptx.accessibility.typeBlankSlide': 'Blank slide',
81501
+ 'pptx.accessibility.typeComplexTable': 'Complex table',
81502
+ 'pptx.accessibility.typeDuplicateTitle': 'Duplicate slide title',
81503
+ 'pptx.accessibility.typeLowContrast': 'Low contrast',
81504
+ 'pptx.accessibility.typeMissingAltText': 'Missing alt text',
81505
+ 'pptx.accessibility.typeMissingSlideTitle': 'Missing slide title',
81506
+ 'pptx.align.bottom': 'Align bottom',
81507
+ 'pptx.align.centerH': 'Align center',
81508
+ 'pptx.align.left': 'Align left',
81509
+ 'pptx.align.middle': 'Align middle',
81510
+ 'pptx.align.right': 'Align right',
81511
+ 'pptx.align.top': 'Align top',
81512
+ 'pptx.documentProperties.custom.typeDate': 'Date',
81513
+ 'pptx.documentProperties.custom.typeNumber': 'Number',
81514
+ 'pptx.documentProperties.custom.typeText': 'Text',
81515
+ 'pptx.documentProperties.custom.typeYesNo': 'Yes or No',
81516
+ 'pptx.documentProperties.statistics.elements': 'Elements',
81517
+ 'pptx.documentProperties.statistics.hiddenSlides': 'Hidden Slides',
81518
+ 'pptx.documentProperties.statistics.lastModifiedBy': 'Last Modified By',
81519
+ 'pptx.documentProperties.statistics.notes': 'Notes',
81520
+ 'pptx.documentProperties.statistics.paragraphs': 'Paragraphs',
81521
+ 'pptx.documentProperties.statistics.revision': 'Revision',
81522
+ 'pptx.documentProperties.statistics.slides': 'Slides',
81523
+ 'pptx.documentProperties.statistics.words': 'Words',
81524
+ 'pptx.documentProperties.summary.category': 'Category',
81525
+ 'pptx.documentProperties.summary.description': 'Description',
81526
+ 'pptx.documentProperties.tabs.custom': 'Custom',
81527
+ 'pptx.documentProperties.tabs.general': 'General',
81528
+ 'pptx.documentProperties.tabs.statistics': 'Statistics',
81529
+ 'pptx.editorToolbar.shapeEllipse': 'Ellipse',
81530
+ 'pptx.editorToolbar.shapeRectangle': 'Rectangle',
81531
+ 'pptx.editorToolbar.shapeRoundedRectangle': 'Rounded rectangle',
81532
+ 'pptx.editorToolbar.shapeTriangle': 'Triangle',
81533
+ 'pptx.equation.template.binomial': 'Binomial',
81534
+ 'pptx.equation.template.derivative': 'Derivative',
81535
+ 'pptx.equation.template.euler': "Euler's",
81536
+ 'pptx.equation.template.fraction': 'Fraction',
81537
+ 'pptx.equation.template.integral': 'Integral',
81538
+ 'pptx.equation.template.limit': 'Limit',
81539
+ 'pptx.equation.template.matrix': 'Matrix 2x2',
81540
+ 'pptx.equation.template.pythagorean': 'Pythagorean',
81541
+ 'pptx.equation.template.quadratic': 'Quadratic',
81542
+ 'pptx.equation.template.squareRoot': 'Square Root',
81543
+ 'pptx.equation.template.sum': 'Sum',
81544
+ 'pptx.equation.template.trigIdentity': 'Trig Identity',
81545
+ 'pptx.hyperlink.actionNone': 'None',
81546
+ 'pptx.hyperlink.actionSlide': 'Slide',
81547
+ 'pptx.hyperlink.actionUrl': 'URL',
81548
+ 'pptx.image.duotonePresetBlackWhite': 'Black, White',
81549
+ 'pptx.image.duotonePresetBlueOrange': 'Blue, Orange',
81550
+ 'pptx.image.duotonePresetGreenYellow': 'Green, Yellow',
81551
+ 'pptx.image.duotonePresetNavyGold': 'Navy, Gold',
81552
+ 'pptx.image.duotonePresetPurplePink': 'Purple, Pink',
81553
+ 'pptx.image.duotonePresetRedCream': 'Red, Cream',
81554
+ 'pptx.image.duotonePresetSepiaWarm': 'Sepia, Warm',
81555
+ 'pptx.image.duotonePresetTealWhite': 'Teal, White',
81556
+ 'pptx.image.effectBlur': 'Blur',
81557
+ 'pptx.image.effectCement': 'Cement',
81558
+ 'pptx.image.effectChalk': 'Chalk Sketch',
81559
+ 'pptx.image.effectCrisscross': 'Crisscross Etching',
81560
+ 'pptx.image.effectCutout': 'Cutout',
81561
+ 'pptx.image.effectFilmGrain': 'Film Grain',
81562
+ 'pptx.image.effectGlowDiffused': 'Glow Diffused',
81563
+ 'pptx.image.effectGlowEdges': 'Glow Edges',
81564
+ 'pptx.image.effectGrayscale': 'Grayscale',
81565
+ 'pptx.image.effectLightScreen': 'Light Screen',
81566
+ 'pptx.image.effectLineDrawing': 'Line Drawing',
81567
+ 'pptx.image.effectMarker': 'Marker',
81568
+ 'pptx.image.effectMosaic': 'Mosaic Bubbles',
81569
+ 'pptx.image.effectNone': 'None',
81570
+ 'pptx.image.effectPaint': 'Paint Brush',
81571
+ 'pptx.image.effectPaintStrokes': 'Paint Strokes',
81572
+ 'pptx.image.effectPastels': 'Pastels Smooth',
81573
+ 'pptx.image.effectPencilSketch': 'Pencil Sketch',
81574
+ 'pptx.image.effectPhotocopy': 'Photocopy',
81575
+ 'pptx.image.effectPlasticWrap': 'Plastic Wrap',
81576
+ 'pptx.image.effectSepia': 'Sepia',
81577
+ 'pptx.image.effectSharpen': 'Sharpen',
81578
+ 'pptx.image.effectTexturizer': 'Texturizer',
81579
+ 'pptx.image.effectWatercolor': 'Watercolor Sponge',
81580
+ 'pptx.share.copyLinkButton': 'Copy Link',
81581
+ 'pptx.stroke.dashDash': 'Dash',
81582
+ 'pptx.stroke.dashDashDot': 'Dash Dot',
81583
+ 'pptx.stroke.dashDot': 'Dot',
81584
+ 'pptx.stroke.dashSolid': 'Solid',
81585
+ 'pptx.stroke.dashSysDash': 'System Dash',
81586
+ 'pptx.stroke.dashSysDot': 'System Dot',
81587
+ 'pptx.table.bandedColumns': 'Banded Columns',
81588
+ 'pptx.table.bandedRows': 'Banded Rows',
81589
+ 'pptx.table.borderBottom': 'Bottom',
81590
+ 'pptx.table.borderDiagDown': 'Diagonal Down',
81591
+ 'pptx.table.borderDiagUp': 'Diagonal Up',
81592
+ 'pptx.table.borderLeft': 'Left',
81593
+ 'pptx.table.borderRight': 'Right',
81594
+ 'pptx.table.borderTop': 'Top',
81595
+ 'pptx.table.fillGradient': 'Gradient',
81596
+ 'pptx.table.fillNone': 'None',
81597
+ 'pptx.table.fillPattern': 'Pattern',
81598
+ 'pptx.table.fillSolid': 'Solid',
81599
+ 'pptx.table.firstColumn': 'First Column',
81600
+ 'pptx.table.gradientLinear': 'Linear',
81601
+ 'pptx.table.gradientRadial': 'Radial',
81602
+ 'pptx.table.headerRow': 'Header Row',
81603
+ 'pptx.table.lastColumn': 'Last Column',
81604
+ 'pptx.table.lastRow': 'Last Row',
81605
+ 'pptx.table.marginBottom': 'Bottom',
81606
+ 'pptx.table.marginLeft': 'Left',
81607
+ 'pptx.table.marginRight': 'Right',
81608
+ 'pptx.table.marginTop': 'Top',
81349
81609
  };
81350
81610
  /**
81351
81611
  * Convert a dotted translation key to a human-readable label when no