pptx-angular-viewer 1.10.0 → 1.11.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.
@@ -4,6 +4,7 @@ import { InjectionToken, input, output, computed, ChangeDetectionStrategy, Compo
4
4
  import { TranslatePipe, translate, TranslateService } from '@ngx-translate/core';
5
5
  import { guideEmuToPx, getShapeClipPath, getAdjustmentAwareShapeClipPath, getShapeClipPathFromPreset, getCloudPathForRendering, hasShapeProperties, applyDrawingColorTransforms as applyDrawingColorTransforms$1, hslToRgb as hslToRgb$1, PRESET_COLOR_MAP, isImageLikeElement, hasTextProperties, MIN_ELEMENT_SIZE as MIN_ELEMENT_SIZE$2, THEME_COLOR_SCHEME_KEYS, getLinkedTextBoxSegments, svgPathToPolygons, deobfuscateFont, detectFontFormat, getSubstituteFontFamily, checkMissingAltText, checkMissingSlideTitle, checkLowContrast, checkComplexTables, checkBlankSlide, checkDuplicateTitles, createChartElement, formatCommentTimestamp as formatCommentTimestamp$1, PptxHandler, EncryptedFileError, parseSignatureXml, updateSmartArtNodeText, setSmartArtNodeStyle, setChartTitle, setChartLegend, setChartDataLabels, setChartAxis, setChartSeriesTrendline, setChartSeriesErrorBars, setChartDataPointLabel, setChartAxisLogScale, setChartAxisTitleStyle, setChartAxisGridlineStyle, setChartSeriesMarker, setChartSeriesChartType, setChartDataPointFill, setChartDataPointExplosion, chartDataAddSeries, chartDataRemoveSeries, chartDataAddCategory, chartDataRemoveCategory, chartDataUpdatePoint, chartDataChangeType, addSmartArtNodeAsChild, removeSmartArtNode, promoteSmartArtNode, demoteSmartArtNode, reorderSmartArtNode, switchSmartArtLayout, SWITCHABLE_LAYOUT_TYPES, isInkElement, parseDataUrlToBytes, isZoomElement, THEME_PRESETS, applyThemeToData, getAnimationPresetInfo } from 'pptx-viewer-core';
6
6
  import DOMPurify from 'dompurify';
7
+ import { LucideX, LucideSquare, LucideCircle, LucideSlash, LucideCopy, LucideTrash2, LucideChevronsUp, LucideChevronsDown, LucideArrowUp, LucideArrowDown, LucideGroup, LucideUngroup, LucideTextAlignStart, LucideTextAlignCenter, LucideTextAlignEnd, LucideChevronUp, LucideChevronDown, LucideAlignHorizontalSpaceAround, LucideAlignVerticalSpaceAround, LucideChevronRight, LucidePenTool, LucideHighlighter, LucideEraser, LucideMousePointer2, LucideChevronLeft, LucidePlay, LucideSparkles, LucidePanelRight, LucideMoveRight, LucidePencil, LucideType, LucideMinus, LucideSpline, LucideAArrowUp, LucideAArrowDown, LucideRemoveFormatting, LucideList, LucideListOrdered, LucideListIndentDecrease, LucideListIndentIncrease, LucideTextAlignJustify, LucidePlus, LucideImage, LucideVideo, LucideDatabase, LucideLayers, LucidePanelLeft, LucideMessageSquare, LucideEllipsis, LucideShare2, LucideEye, LucideEyeOff, LucideStickyNote, LucideMonitor, LucideColumns2, LucidePresentation, LucideCheck, LucideSave, LucideUndo, LucideRedo, LucideSearch } from '@lucide/angular';
7
8
  import { jsPDF } from 'jspdf';
8
9
  import html2canvasPro from 'html2canvas-pro';
9
10
  import { DomSanitizer } from '@angular/platform-browser';
@@ -37356,7 +37357,7 @@ class CustomShowsComponent {
37356
37357
  [attr.aria-label]="'pptx.customShows.closeDialog' | translate"
37357
37358
  (click)="close.emit()"
37358
37359
  >
37359
-
37360
+ <svg lucideX class="h-4 w-4"></svg>
37360
37361
  </button>
37361
37362
  </header>
37362
37363
 
@@ -37519,11 +37520,11 @@ class CustomShowsComponent {
37519
37520
  </footer>
37520
37521
  </div>
37521
37522
  }
37522
- `, isInline: true, styles: [":host{display:contents}.pptx-ng-cs-backdrop{position:fixed;inset:0;background:#00000080;z-index:200}.pptx-ng-cs-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:201;width:min(540px,94vw);max-height:80vh;display:flex;flex-direction:column;background:var(--pptx-card, #111827);color:var(--pptx-foreground, #f3f4f6);border:1px solid var(--pptx-border, #374151);border-radius:12px;box-shadow:0 20px 60px #0009;font-family:system-ui,sans-serif}.pptx-ng-cs-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--pptx-border, #374151);flex-shrink:0}.pptx-ng-cs-title{margin:0;font-size:15px;font-weight:600}.pptx-ng-cs-close{background:transparent;border:none;color:var(--pptx-muted-foreground, #9ca3af);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px}.pptx-ng-cs-close:hover{background:var(--pptx-accent, #1f2937);color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-cs-body{flex:1 1 auto;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:20px;min-height:0}.pptx-ng-cs-section{display:flex;flex-direction:column;gap:10px}.pptx-ng-cs-section-title{margin:0;font-size:13px;font-weight:600;color:var(--pptx-muted-foreground, #9ca3af);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:6px}.pptx-ng-cs-badge{background:var(--pptx-primary, #6366f1);color:#fff;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:700}.pptx-ng-cs-show-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.pptx-ng-cs-show-row{padding:10px 12px;border:1px solid var(--pptx-border, #374151);border-radius:8px;display:flex;flex-direction:column;gap:8px}.pptx-ng-cs-show-row--active{border-color:var(--pptx-primary, #6366f1);background:color-mix(in srgb,var(--pptx-primary, #6366f1) 10%,transparent)}.pptx-ng-cs-show-info{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.pptx-ng-cs-show-name{font-size:13px;font-weight:600}.pptx-ng-cs-show-meta{font-size:11px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-cs-show-actions{display:flex;gap:6px;flex-wrap:wrap}.pptx-ng-cs-edit-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.pptx-ng-cs-input{flex:1 1 auto;min-width:120px;padding:6px 10px;border-radius:6px;border:1px solid var(--pptx-border, #374151);background:var(--pptx-background, #030712);color:inherit;font:inherit;font-size:13px}.pptx-ng-cs-slide-picker{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto;padding:6px 8px;border:1px solid var(--pptx-border, #374151);border-radius:6px;background:var(--pptx-background, #030712)}.pptx-ng-cs-slide-option{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;padding:2px 0}.pptx-ng-cs-empty{font-size:13px;color:var(--pptx-muted-foreground, #9ca3af);margin:0}.pptx-ng-cs-create-form{display:flex;flex-direction:column;gap:10px}.pptx-ng-cs-btn{font-size:12px;padding:5px 12px;border-radius:6px;border:1px solid var(--pptx-border, #374151);background:transparent;color:inherit;cursor:pointer;white-space:nowrap}.pptx-ng-cs-btn:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-cs-btn--primary{background:var(--pptx-primary, #6366f1);border-color:var(--pptx-primary, #6366f1);color:#fff;align-self:flex-start}.pptx-ng-cs-btn--primary:hover:not(:disabled){opacity:.9}.pptx-ng-cs-btn--primary:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-cs-btn--danger{color:#f87171;border-color:#f87171}.pptx-ng-cs-btn--danger:hover{background:#f871711a}.pptx-ng-cs-btn--active{background:color-mix(in srgb,var(--pptx-primary, #6366f1) 20%,transparent);border-color:var(--pptx-primary, #6366f1);color:var(--pptx-primary, #6366f1)}.pptx-ng-cs-btn:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-cs-footer{display:flex;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--pptx-border, #374151);flex-shrink:0}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37523
+ `, isInline: true, styles: [":host{display:contents}.pptx-ng-cs-backdrop{position:fixed;inset:0;background:#00000080;z-index:200}.pptx-ng-cs-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:201;width:min(540px,94vw);max-height:80vh;display:flex;flex-direction:column;background:var(--pptx-card, #111827);color:var(--pptx-foreground, #f3f4f6);border:1px solid var(--pptx-border, #374151);border-radius:12px;box-shadow:0 20px 60px #0009;font-family:system-ui,sans-serif}.pptx-ng-cs-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--pptx-border, #374151);flex-shrink:0}.pptx-ng-cs-title{margin:0;font-size:15px;font-weight:600}.pptx-ng-cs-close{background:transparent;border:none;color:var(--pptx-muted-foreground, #9ca3af);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px}.pptx-ng-cs-close:hover{background:var(--pptx-accent, #1f2937);color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-cs-body{flex:1 1 auto;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:20px;min-height:0}.pptx-ng-cs-section{display:flex;flex-direction:column;gap:10px}.pptx-ng-cs-section-title{margin:0;font-size:13px;font-weight:600;color:var(--pptx-muted-foreground, #9ca3af);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:6px}.pptx-ng-cs-badge{background:var(--pptx-primary, #6366f1);color:#fff;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:700}.pptx-ng-cs-show-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.pptx-ng-cs-show-row{padding:10px 12px;border:1px solid var(--pptx-border, #374151);border-radius:8px;display:flex;flex-direction:column;gap:8px}.pptx-ng-cs-show-row--active{border-color:var(--pptx-primary, #6366f1);background:color-mix(in srgb,var(--pptx-primary, #6366f1) 10%,transparent)}.pptx-ng-cs-show-info{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.pptx-ng-cs-show-name{font-size:13px;font-weight:600}.pptx-ng-cs-show-meta{font-size:11px;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-cs-show-actions{display:flex;gap:6px;flex-wrap:wrap}.pptx-ng-cs-edit-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.pptx-ng-cs-input{flex:1 1 auto;min-width:120px;padding:6px 10px;border-radius:6px;border:1px solid var(--pptx-border, #374151);background:var(--pptx-background, #030712);color:inherit;font:inherit;font-size:13px}.pptx-ng-cs-slide-picker{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto;padding:6px 8px;border:1px solid var(--pptx-border, #374151);border-radius:6px;background:var(--pptx-background, #030712)}.pptx-ng-cs-slide-option{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;padding:2px 0}.pptx-ng-cs-empty{font-size:13px;color:var(--pptx-muted-foreground, #9ca3af);margin:0}.pptx-ng-cs-create-form{display:flex;flex-direction:column;gap:10px}.pptx-ng-cs-btn{font-size:12px;padding:5px 12px;border-radius:6px;border:1px solid var(--pptx-border, #374151);background:transparent;color:inherit;cursor:pointer;white-space:nowrap}.pptx-ng-cs-btn:hover{background:var(--pptx-accent, #1f2937)}.pptx-ng-cs-btn--primary{background:var(--pptx-primary, #6366f1);border-color:var(--pptx-primary, #6366f1);color:#fff;align-self:flex-start}.pptx-ng-cs-btn--primary:hover:not(:disabled){opacity:.9}.pptx-ng-cs-btn--primary:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-cs-btn--danger{color:#f87171;border-color:#f87171}.pptx-ng-cs-btn--danger:hover{background:#f871711a}.pptx-ng-cs-btn--active{background:color-mix(in srgb,var(--pptx-primary, #6366f1) 20%,transparent);border-color:var(--pptx-primary, #6366f1);color:var(--pptx-primary, #6366f1)}.pptx-ng-cs-btn:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-cs-footer{display:flex;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--pptx-border, #374151);flex-shrink:0}\n"], dependencies: [{ kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37523
37524
  }
37524
37525
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CustomShowsComponent, decorators: [{
37525
37526
  type: Component,
37526
- args: [{ selector: 'pptx-custom-shows', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe], template: `
37527
+ args: [{ selector: 'pptx-custom-shows', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe, LucideX], template: `
37527
37528
  @if (open()) {
37528
37529
  <!-- Backdrop -->
37529
37530
  <div class="pptx-ng-cs-backdrop" aria-hidden="true" (click)="close.emit()"></div>
@@ -37545,7 +37546,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
37545
37546
  [attr.aria-label]="'pptx.customShows.closeDialog' | translate"
37546
37547
  (click)="close.emit()"
37547
37548
  >
37548
-
37549
+ <svg lucideX class="h-4 w-4"></svg>
37549
37550
  </button>
37550
37551
  </header>
37551
37552
 
@@ -39124,7 +39125,7 @@ class EditorToolbarComponent {
39124
39125
  [title]="'pptx.editorToolbar.insertRectangle' | translate"
39125
39126
  (click)="onInsertShape('rect')"
39126
39127
  >
39127
-
39128
+ <svg lucideSquare class="h-4 w-4"></svg>
39128
39129
  </button>
39129
39130
 
39130
39131
  <button
@@ -39133,7 +39134,7 @@ class EditorToolbarComponent {
39133
39134
  [title]="'pptx.editorToolbar.insertEllipse' | translate"
39134
39135
  (click)="onInsertShape('ellipse')"
39135
39136
  >
39136
-
39137
+ <svg lucideCircle class="h-4 w-4"></svg>
39137
39138
  </button>
39138
39139
 
39139
39140
  <button
@@ -39142,7 +39143,7 @@ class EditorToolbarComponent {
39142
39143
  [title]="'pptx.editorToolbar.insertLine' | translate"
39143
39144
  (click)="onInsertShape('line')"
39144
39145
  >
39145
-
39146
+ <svg lucideSlash class="h-4 w-4"></svg>
39146
39147
  </button>
39147
39148
  </div>
39148
39149
 
@@ -39166,7 +39167,7 @@ class EditorToolbarComponent {
39166
39167
  [disabled]="!editor.hasSelection()"
39167
39168
  (click)="editor.duplicateSelected(slideIndex())"
39168
39169
  >
39169
-
39170
+ <svg lucideCopy class="h-4 w-4"></svg>
39170
39171
  </button>
39171
39172
 
39172
39173
  <button
@@ -39176,7 +39177,7 @@ class EditorToolbarComponent {
39176
39177
  [disabled]="!editor.hasSelection()"
39177
39178
  (click)="editor.deleteSelected(slideIndex())"
39178
39179
  >
39179
-
39180
+ <svg lucideTrash2 class="h-4 w-4"></svg>
39180
39181
  </button>
39181
39182
 
39182
39183
  <button
@@ -39186,7 +39187,7 @@ class EditorToolbarComponent {
39186
39187
  [disabled]="!editor.hasSelection()"
39187
39188
  (click)="editor.bringSelectedToFront(slideIndex())"
39188
39189
  >
39189
-
39190
+ <svg lucideChevronsUp class="h-4 w-4"></svg>
39190
39191
  </button>
39191
39192
 
39192
39193
  <button
@@ -39196,7 +39197,7 @@ class EditorToolbarComponent {
39196
39197
  [disabled]="!editor.hasSelection()"
39197
39198
  (click)="editor.sendSelectedToBack(slideIndex())"
39198
39199
  >
39199
-
39200
+ <svg lucideChevronsDown class="h-4 w-4"></svg>
39200
39201
  </button>
39201
39202
 
39202
39203
  <button
@@ -39206,7 +39207,7 @@ class EditorToolbarComponent {
39206
39207
  [disabled]="!editor.hasSelection()"
39207
39208
  (click)="editor.bringSelectedForward(slideIndex())"
39208
39209
  >
39209
-
39210
+ <svg lucideArrowUp class="h-4 w-4"></svg>
39210
39211
  </button>
39211
39212
 
39212
39213
  <button
@@ -39216,7 +39217,7 @@ class EditorToolbarComponent {
39216
39217
  [disabled]="!editor.hasSelection()"
39217
39218
  (click)="editor.sendSelectedBackward(slideIndex())"
39218
39219
  >
39219
-
39220
+ <svg lucideArrowDown class="h-4 w-4"></svg>
39220
39221
  </button>
39221
39222
  <button
39222
39223
  type="button"
@@ -39225,7 +39226,7 @@ class EditorToolbarComponent {
39225
39226
  [disabled]="!canGroup()"
39226
39227
  (click)="editor.groupSelected(slideIndex())"
39227
39228
  >
39228
-
39229
+ <svg lucideGroup class="h-4 w-4"></svg>
39229
39230
  </button>
39230
39231
  <button
39231
39232
  type="button"
@@ -39234,7 +39235,7 @@ class EditorToolbarComponent {
39234
39235
  [disabled]="!canUngroup()"
39235
39236
  (click)="editor.ungroupSelected(slideIndex())"
39236
39237
  >
39237
-
39238
+ <svg lucideUngroup class="h-4 w-4"></svg>
39238
39239
  </button>
39239
39240
  </div>
39240
39241
 
@@ -39255,7 +39256,7 @@ class EditorToolbarComponent {
39255
39256
  [disabled]="!canAlign()"
39256
39257
  (click)="editor.alignSelected(slideIndex(), 'left')"
39257
39258
  >
39258
-
39259
+ <svg lucideTextAlignStart class="h-4 w-4"></svg>
39259
39260
  </button>
39260
39261
  <button
39261
39262
  type="button"
@@ -39264,7 +39265,7 @@ class EditorToolbarComponent {
39264
39265
  [disabled]="!canAlign()"
39265
39266
  (click)="editor.alignSelected(slideIndex(), 'centerH')"
39266
39267
  >
39267
-
39268
+ <svg lucideTextAlignCenter class="h-4 w-4"></svg>
39268
39269
  </button>
39269
39270
  <button
39270
39271
  type="button"
@@ -39273,7 +39274,7 @@ class EditorToolbarComponent {
39273
39274
  [disabled]="!canAlign()"
39274
39275
  (click)="editor.alignSelected(slideIndex(), 'right')"
39275
39276
  >
39276
-
39277
+ <svg lucideTextAlignEnd class="h-4 w-4"></svg>
39277
39278
  </button>
39278
39279
  <button
39279
39280
  type="button"
@@ -39282,7 +39283,7 @@ class EditorToolbarComponent {
39282
39283
  [disabled]="!canAlign()"
39283
39284
  (click)="editor.alignSelected(slideIndex(), 'top')"
39284
39285
  >
39285
-
39286
+ <svg lucideChevronUp class="h-4 w-4"></svg>
39286
39287
  </button>
39287
39288
  <button
39288
39289
  type="button"
@@ -39291,7 +39292,7 @@ class EditorToolbarComponent {
39291
39292
  [disabled]="!canAlign()"
39292
39293
  (click)="editor.alignSelected(slideIndex(), 'middle')"
39293
39294
  >
39294
-
39295
+ <svg lucideTextAlignCenter class="h-4 w-4 rotate-90"></svg>
39295
39296
  </button>
39296
39297
  <button
39297
39298
  type="button"
@@ -39300,7 +39301,7 @@ class EditorToolbarComponent {
39300
39301
  [disabled]="!canAlign()"
39301
39302
  (click)="editor.alignSelected(slideIndex(), 'bottom')"
39302
39303
  >
39303
-
39304
+ <svg lucideChevronDown class="h-4 w-4"></svg>
39304
39305
  </button>
39305
39306
  <button
39306
39307
  type="button"
@@ -39309,7 +39310,7 @@ class EditorToolbarComponent {
39309
39310
  [disabled]="!canDistribute()"
39310
39311
  (click)="editor.distributeSelected(slideIndex(), 'horizontal')"
39311
39312
  >
39312
-
39313
+ <svg lucideAlignHorizontalSpaceAround class="h-4 w-4"></svg>
39313
39314
  </button>
39314
39315
  <button
39315
39316
  type="button"
@@ -39318,15 +39319,35 @@ class EditorToolbarComponent {
39318
39319
  [disabled]="!canDistribute()"
39319
39320
  (click)="editor.distributeSelected(slideIndex(), 'vertical')"
39320
39321
  >
39321
-
39322
+ <svg lucideAlignVerticalSpaceAround class="h-4 w-4"></svg>
39322
39323
  </button>
39323
39324
  </div>
39324
39325
  </div>
39325
- `, isInline: true, styles: [".pptx-ng-toolbar{display:flex;flex-direction:row;align-items:center;gap:0;padding:4px 8px;background:var(--pptx-toolbar-bg, #1e1e1e);color:var(--pptx-toolbar-fg, #e0e0e0);border-bottom:1px solid var(--pptx-toolbar-border, #333);min-height:36px;-webkit-user-select:none;user-select:none}.pptx-ng-toolbar__group{display:flex;flex-direction:row;align-items:center;gap:4px}.pptx-ng-toolbar__group-label{font-size:10px;color:var(--pptx-toolbar-muted, #888);text-transform:uppercase;letter-spacing:.05em;padding:0 6px 0 4px;flex-shrink:0}.pptx-ng-toolbar__divider{width:1px;height:20px;background:var(--pptx-toolbar-border, #444);margin:0 4px;flex-shrink:0}.pptx-ng-toolbar__btn{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:2px 8px;background:transparent;border:1px solid transparent;border-radius:4px;color:inherit;font-size:14px;cursor:pointer;transition:background .1s;flex-shrink:0}.pptx-ng-toolbar__btn:hover:not(:disabled){background:var(--pptx-toolbar-hover, #3a3a3a)}.pptx-ng-toolbar__btn:active:not(:disabled){background:var(--pptx-toolbar-active-bg, #2a2a2a);transform:scale(.95);opacity:.8}.pptx-ng-toolbar__btn:disabled{opacity:.4;cursor:not-allowed}.pptx-ng-toolbar__btn--danger:not(:disabled){color:var(--pptx-toolbar-danger, #f47c7c)}.pptx-ng-toolbar__btn--danger:hover:not(:disabled){background:var(--pptx-toolbar-danger-hover, #4a1a1a)}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
39326
+ `, isInline: true, styles: [".pptx-ng-toolbar{display:flex;flex-direction:row;align-items:center;gap:0;padding:4px 8px;background:var(--pptx-toolbar-bg, #1e1e1e);color:var(--pptx-toolbar-fg, #e0e0e0);border-bottom:1px solid var(--pptx-toolbar-border, #333);min-height:36px;-webkit-user-select:none;user-select:none}.pptx-ng-toolbar__group{display:flex;flex-direction:row;align-items:center;gap:4px}.pptx-ng-toolbar__group-label{font-size:10px;color:var(--pptx-toolbar-muted, #888);text-transform:uppercase;letter-spacing:.05em;padding:0 6px 0 4px;flex-shrink:0}.pptx-ng-toolbar__divider{width:1px;height:20px;background:var(--pptx-toolbar-border, #444);margin:0 4px;flex-shrink:0}.pptx-ng-toolbar__btn{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:2px 8px;background:transparent;border:1px solid transparent;border-radius:4px;color:inherit;font-size:14px;cursor:pointer;transition:background .1s;flex-shrink:0}.pptx-ng-toolbar__btn:hover:not(:disabled){background:var(--pptx-toolbar-hover, #3a3a3a)}.pptx-ng-toolbar__btn:active:not(:disabled){background:var(--pptx-toolbar-active-bg, #2a2a2a);transform:scale(.95);opacity:.8}.pptx-ng-toolbar__btn:disabled{opacity:.4;cursor:not-allowed}.pptx-ng-toolbar__btn--danger:not(:disabled){color:var(--pptx-toolbar-danger, #f47c7c)}.pptx-ng-toolbar__btn--danger:hover:not(:disabled){background:var(--pptx-toolbar-danger-hover, #4a1a1a)}\n"], dependencies: [{ kind: "component", type: LucideSquare, selector: "svg[lucideSquare]" }, { kind: "component", type: LucideCircle, selector: "svg[lucideCircle]" }, { kind: "component", type: LucideSlash, selector: "svg[lucideSlash]" }, { kind: "component", type: LucideCopy, selector: "svg[lucideCopy]" }, { kind: "component", type: LucideTrash2, selector: "svg[lucideTrash2]" }, { kind: "component", type: LucideChevronsUp, selector: "svg[lucideChevronsUp]" }, { kind: "component", type: LucideChevronsDown, selector: "svg[lucideChevronsDown]" }, { kind: "component", type: LucideArrowUp, selector: "svg[lucideArrowUp]" }, { kind: "component", type: LucideArrowDown, selector: "svg[lucideArrowDown]" }, { kind: "component", type: LucideGroup, selector: "svg[lucideGroup]" }, { kind: "component", type: LucideUngroup, selector: "svg[lucideUngroup]" }, { kind: "component", type: LucideTextAlignStart, selector: "svg[lucideTextAlignStart], svg[lucideText], svg[lucideAlignLeft]" }, { kind: "component", type: LucideTextAlignCenter, selector: "svg[lucideTextAlignCenter], svg[lucideAlignCenter]" }, { kind: "component", type: LucideTextAlignEnd, selector: "svg[lucideTextAlignEnd], svg[lucideAlignRight]" }, { kind: "component", type: LucideChevronUp, selector: "svg[lucideChevronUp]" }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "component", type: LucideAlignHorizontalSpaceAround, selector: "svg[lucideAlignHorizontalSpaceAround]" }, { kind: "component", type: LucideAlignVerticalSpaceAround, selector: "svg[lucideAlignVerticalSpaceAround]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
39326
39327
  }
39327
39328
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EditorToolbarComponent, decorators: [{
39328
39329
  type: Component,
39329
- args: [{ selector: 'pptx-editor-toolbar', standalone: true, imports: [TranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: `
39330
+ args: [{ selector: 'pptx-editor-toolbar', standalone: true, imports: [
39331
+ TranslatePipe,
39332
+ LucideSquare,
39333
+ LucideCircle,
39334
+ LucideSlash,
39335
+ LucideCopy,
39336
+ LucideTrash2,
39337
+ LucideChevronsUp,
39338
+ LucideChevronsDown,
39339
+ LucideArrowUp,
39340
+ LucideArrowDown,
39341
+ LucideGroup,
39342
+ LucideUngroup,
39343
+ LucideTextAlignStart,
39344
+ LucideTextAlignCenter,
39345
+ LucideTextAlignEnd,
39346
+ LucideChevronUp,
39347
+ LucideChevronDown,
39348
+ LucideAlignHorizontalSpaceAround,
39349
+ LucideAlignVerticalSpaceAround,
39350
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: `
39330
39351
  <div
39331
39352
  class="pptx-ng-toolbar"
39332
39353
  role="toolbar"
@@ -39357,7 +39378,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39357
39378
  [title]="'pptx.editorToolbar.insertRectangle' | translate"
39358
39379
  (click)="onInsertShape('rect')"
39359
39380
  >
39360
-
39381
+ <svg lucideSquare class="h-4 w-4"></svg>
39361
39382
  </button>
39362
39383
 
39363
39384
  <button
@@ -39366,7 +39387,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39366
39387
  [title]="'pptx.editorToolbar.insertEllipse' | translate"
39367
39388
  (click)="onInsertShape('ellipse')"
39368
39389
  >
39369
-
39390
+ <svg lucideCircle class="h-4 w-4"></svg>
39370
39391
  </button>
39371
39392
 
39372
39393
  <button
@@ -39375,7 +39396,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39375
39396
  [title]="'pptx.editorToolbar.insertLine' | translate"
39376
39397
  (click)="onInsertShape('line')"
39377
39398
  >
39378
-
39399
+ <svg lucideSlash class="h-4 w-4"></svg>
39379
39400
  </button>
39380
39401
  </div>
39381
39402
 
@@ -39399,7 +39420,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39399
39420
  [disabled]="!editor.hasSelection()"
39400
39421
  (click)="editor.duplicateSelected(slideIndex())"
39401
39422
  >
39402
-
39423
+ <svg lucideCopy class="h-4 w-4"></svg>
39403
39424
  </button>
39404
39425
 
39405
39426
  <button
@@ -39409,7 +39430,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39409
39430
  [disabled]="!editor.hasSelection()"
39410
39431
  (click)="editor.deleteSelected(slideIndex())"
39411
39432
  >
39412
-
39433
+ <svg lucideTrash2 class="h-4 w-4"></svg>
39413
39434
  </button>
39414
39435
 
39415
39436
  <button
@@ -39419,7 +39440,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39419
39440
  [disabled]="!editor.hasSelection()"
39420
39441
  (click)="editor.bringSelectedToFront(slideIndex())"
39421
39442
  >
39422
-
39443
+ <svg lucideChevronsUp class="h-4 w-4"></svg>
39423
39444
  </button>
39424
39445
 
39425
39446
  <button
@@ -39429,7 +39450,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39429
39450
  [disabled]="!editor.hasSelection()"
39430
39451
  (click)="editor.sendSelectedToBack(slideIndex())"
39431
39452
  >
39432
-
39453
+ <svg lucideChevronsDown class="h-4 w-4"></svg>
39433
39454
  </button>
39434
39455
 
39435
39456
  <button
@@ -39439,7 +39460,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39439
39460
  [disabled]="!editor.hasSelection()"
39440
39461
  (click)="editor.bringSelectedForward(slideIndex())"
39441
39462
  >
39442
-
39463
+ <svg lucideArrowUp class="h-4 w-4"></svg>
39443
39464
  </button>
39444
39465
 
39445
39466
  <button
@@ -39449,7 +39470,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39449
39470
  [disabled]="!editor.hasSelection()"
39450
39471
  (click)="editor.sendSelectedBackward(slideIndex())"
39451
39472
  >
39452
-
39473
+ <svg lucideArrowDown class="h-4 w-4"></svg>
39453
39474
  </button>
39454
39475
  <button
39455
39476
  type="button"
@@ -39458,7 +39479,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39458
39479
  [disabled]="!canGroup()"
39459
39480
  (click)="editor.groupSelected(slideIndex())"
39460
39481
  >
39461
-
39482
+ <svg lucideGroup class="h-4 w-4"></svg>
39462
39483
  </button>
39463
39484
  <button
39464
39485
  type="button"
@@ -39467,7 +39488,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39467
39488
  [disabled]="!canUngroup()"
39468
39489
  (click)="editor.ungroupSelected(slideIndex())"
39469
39490
  >
39470
-
39491
+ <svg lucideUngroup class="h-4 w-4"></svg>
39471
39492
  </button>
39472
39493
  </div>
39473
39494
 
@@ -39488,7 +39509,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39488
39509
  [disabled]="!canAlign()"
39489
39510
  (click)="editor.alignSelected(slideIndex(), 'left')"
39490
39511
  >
39491
-
39512
+ <svg lucideTextAlignStart class="h-4 w-4"></svg>
39492
39513
  </button>
39493
39514
  <button
39494
39515
  type="button"
@@ -39497,7 +39518,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39497
39518
  [disabled]="!canAlign()"
39498
39519
  (click)="editor.alignSelected(slideIndex(), 'centerH')"
39499
39520
  >
39500
-
39521
+ <svg lucideTextAlignCenter class="h-4 w-4"></svg>
39501
39522
  </button>
39502
39523
  <button
39503
39524
  type="button"
@@ -39506,7 +39527,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39506
39527
  [disabled]="!canAlign()"
39507
39528
  (click)="editor.alignSelected(slideIndex(), 'right')"
39508
39529
  >
39509
-
39530
+ <svg lucideTextAlignEnd class="h-4 w-4"></svg>
39510
39531
  </button>
39511
39532
  <button
39512
39533
  type="button"
@@ -39515,7 +39536,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39515
39536
  [disabled]="!canAlign()"
39516
39537
  (click)="editor.alignSelected(slideIndex(), 'top')"
39517
39538
  >
39518
-
39539
+ <svg lucideChevronUp class="h-4 w-4"></svg>
39519
39540
  </button>
39520
39541
  <button
39521
39542
  type="button"
@@ -39524,7 +39545,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39524
39545
  [disabled]="!canAlign()"
39525
39546
  (click)="editor.alignSelected(slideIndex(), 'middle')"
39526
39547
  >
39527
-
39548
+ <svg lucideTextAlignCenter class="h-4 w-4 rotate-90"></svg>
39528
39549
  </button>
39529
39550
  <button
39530
39551
  type="button"
@@ -39533,7 +39554,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39533
39554
  [disabled]="!canAlign()"
39534
39555
  (click)="editor.alignSelected(slideIndex(), 'bottom')"
39535
39556
  >
39536
-
39557
+ <svg lucideChevronDown class="h-4 w-4"></svg>
39537
39558
  </button>
39538
39559
  <button
39539
39560
  type="button"
@@ -39542,7 +39563,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39542
39563
  [disabled]="!canDistribute()"
39543
39564
  (click)="editor.distributeSelected(slideIndex(), 'horizontal')"
39544
39565
  >
39545
-
39566
+ <svg lucideAlignHorizontalSpaceAround class="h-4 w-4"></svg>
39546
39567
  </button>
39547
39568
  <button
39548
39569
  type="button"
@@ -39551,7 +39572,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39551
39572
  [disabled]="!canDistribute()"
39552
39573
  (click)="editor.distributeSelected(slideIndex(), 'vertical')"
39553
39574
  >
39554
-
39575
+ <svg lucideAlignVerticalSpaceAround class="h-4 w-4"></svg>
39555
39576
  </button>
39556
39577
  </div>
39557
39578
  </div>
@@ -43742,11 +43763,11 @@ class AnimationAuthorPanelComponent {
43742
43763
  @if (currentHasAnimation()) {
43743
43764
  <button
43744
43765
  type="button"
43745
- class="pptx-ng-anim__remove-btn"
43766
+ class="pptx-ng-anim__remove-btn inline-flex items-center gap-1"
43746
43767
  [title]="'pptx.animations.removeFromElement' | translate"
43747
43768
  (click)="onRemove()"
43748
43769
  >
43749
- {{ 'pptx.animations.remove' | translate }}
43770
+ <svg lucideX class="h-3.5 w-3.5"></svg> {{ 'pptx.animations.remove' | translate }}
43750
43771
  </button>
43751
43772
  }
43752
43773
  </div>
@@ -44004,32 +44025,34 @@ class AnimationAuthorPanelComponent {
44004
44025
  <div class="pptx-ng-anim__row">
44005
44026
  <button
44006
44027
  type="button"
44007
- class="pptx-ng-anim__order-btn"
44028
+ class="pptx-ng-anim__order-btn inline-flex items-center gap-1"
44008
44029
  [disabled]="!canEdit()"
44009
44030
  [title]="'pptx.animations.moveEarlier' | translate"
44010
44031
  (click)="onMoveUp()"
44011
44032
  >
44012
- {{ 'pptx.animations.earlier' | translate }}
44033
+ <svg lucideArrowUp class="h-3.5 w-3.5"></svg>
44034
+ {{ 'pptx.animations.earlier' | translate }}
44013
44035
  </button>
44014
44036
  <button
44015
44037
  type="button"
44016
- class="pptx-ng-anim__order-btn"
44038
+ class="pptx-ng-anim__order-btn inline-flex items-center gap-1"
44017
44039
  [disabled]="!canEdit()"
44018
44040
  [title]="'pptx.animations.moveLater' | translate"
44019
44041
  (click)="onMoveDown()"
44020
44042
  >
44021
- {{ 'pptx.animations.later' | translate }}
44043
+ <svg lucideArrowDown class="h-3.5 w-3.5"></svg>
44044
+ {{ 'pptx.animations.later' | translate }}
44022
44045
  </button>
44023
44046
  </div>
44024
44047
  </section>
44025
44048
  }
44026
44049
  <!-- end @if (currentHasAnimation()) -->
44027
44050
  </aside>
44028
- `, isInline: true, styles: [".pptx-ng-anim{display:flex;flex-direction:column;gap:0;padding:.5rem;background:var(--pptx-inspector-bg, #1e1e1e);color:var(--pptx-inspector-fg, #e0e0e0);font-size:12px;min-width:220px;overflow-y:auto}.pptx-ng-anim__header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.4rem;border-bottom:1px solid var(--pptx-inspector-border, #333);margin-bottom:.35rem}.pptx-ng-anim__title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888)}.pptx-ng-anim__subheading{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888);padding:.4rem 0 .2rem;border-top:1px solid var(--pptx-inspector-border, #333);margin-top:.2rem}.pptx-ng-anim__section{padding:.25rem 0;border-bottom:1px solid var(--pptx-inspector-border, #2a2a2a)}.pptx-ng-anim__section:last-child{border-bottom:none}.pptx-ng-anim__label{display:block;font-size:10px;color:var(--pptx-inspector-muted, #888);margin-bottom:.2rem}.pptx-ng-anim__select,.pptx-ng-anim__input{width:100%;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;padding:3px 6px;font-size:12px;box-sizing:border-box}.pptx-ng-anim__select:disabled,.pptx-ng-anim__input:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-anim__direction-grid{display:flex;flex-wrap:wrap;gap:.25rem}.pptx-ng-anim__dir-btn{width:30px;height:30px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}.pptx-ng-anim__dir-btn.is-active{background:var(--pptx-inspector-active, #0078d4);border-color:var(--pptx-inspector-active, #0078d4);color:#fff}.pptx-ng-anim__dir-btn:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-anim__row{display:flex;gap:.35rem}.pptx-ng-anim__order-btn{flex:1;padding:3px 6px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;font-size:11px;white-space:nowrap}.pptx-ng-anim__order-btn:hover:not(:disabled){background:var(--pptx-inspector-hover, #3a3a3a)}.pptx-ng-anim__order-btn:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-anim__remove-btn{padding:2px 6px;background:transparent;border:1px solid var(--pptx-inspector-danger-border, #6b2a2a);color:var(--pptx-inspector-danger, #f47c7c);border-radius:3px;cursor:pointer;font-size:10px}.pptx-ng-anim__remove-btn:hover{background:var(--pptx-inspector-danger-hover, #4a1a1a)}@media(pointer:coarse),(max-width:640px){.pptx-ng-anim{width:100%;min-width:0;box-sizing:border-box;font-size:14px}.pptx-ng-anim__select,.pptx-ng-anim__input{min-height:40px;font-size:16px;padding:6px 8px}.pptx-ng-anim__dir-btn{width:40px;height:40px}.pptx-ng-anim__order-btn{min-height:40px;font-size:13px}}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
44051
+ `, isInline: true, styles: [".pptx-ng-anim{display:flex;flex-direction:column;gap:0;padding:.5rem;background:var(--pptx-inspector-bg, #1e1e1e);color:var(--pptx-inspector-fg, #e0e0e0);font-size:12px;min-width:220px;overflow-y:auto}.pptx-ng-anim__header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.4rem;border-bottom:1px solid var(--pptx-inspector-border, #333);margin-bottom:.35rem}.pptx-ng-anim__title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888)}.pptx-ng-anim__subheading{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888);padding:.4rem 0 .2rem;border-top:1px solid var(--pptx-inspector-border, #333);margin-top:.2rem}.pptx-ng-anim__section{padding:.25rem 0;border-bottom:1px solid var(--pptx-inspector-border, #2a2a2a)}.pptx-ng-anim__section:last-child{border-bottom:none}.pptx-ng-anim__label{display:block;font-size:10px;color:var(--pptx-inspector-muted, #888);margin-bottom:.2rem}.pptx-ng-anim__select,.pptx-ng-anim__input{width:100%;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;padding:3px 6px;font-size:12px;box-sizing:border-box}.pptx-ng-anim__select:disabled,.pptx-ng-anim__input:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-anim__direction-grid{display:flex;flex-wrap:wrap;gap:.25rem}.pptx-ng-anim__dir-btn{width:30px;height:30px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}.pptx-ng-anim__dir-btn.is-active{background:var(--pptx-inspector-active, #0078d4);border-color:var(--pptx-inspector-active, #0078d4);color:#fff}.pptx-ng-anim__dir-btn:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-anim__row{display:flex;gap:.35rem}.pptx-ng-anim__order-btn{flex:1;padding:3px 6px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;font-size:11px;white-space:nowrap}.pptx-ng-anim__order-btn:hover:not(:disabled){background:var(--pptx-inspector-hover, #3a3a3a)}.pptx-ng-anim__order-btn:disabled{opacity:.5;cursor:not-allowed}.pptx-ng-anim__remove-btn{padding:2px 6px;background:transparent;border:1px solid var(--pptx-inspector-danger-border, #6b2a2a);color:var(--pptx-inspector-danger, #f47c7c);border-radius:3px;cursor:pointer;font-size:10px}.pptx-ng-anim__remove-btn:hover{background:var(--pptx-inspector-danger-hover, #4a1a1a)}@media(pointer:coarse),(max-width:640px){.pptx-ng-anim{width:100%;min-width:0;box-sizing:border-box;font-size:14px}.pptx-ng-anim__select,.pptx-ng-anim__input{min-height:40px;font-size:16px;padding:6px 8px}.pptx-ng-anim__dir-btn{width:40px;height:40px}.pptx-ng-anim__order-btn{min-height:40px;font-size:13px}}\n"], dependencies: [{ kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "component", type: LucideArrowUp, selector: "svg[lucideArrowUp]" }, { kind: "component", type: LucideArrowDown, selector: "svg[lucideArrowDown]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
44029
44052
  }
44030
44053
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AnimationAuthorPanelComponent, decorators: [{
44031
44054
  type: Component,
44032
- args: [{ selector: 'pptx-animation-author-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe], template: `
44055
+ args: [{ selector: 'pptx-animation-author-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe, LucideX, LucideArrowUp, LucideArrowDown], template: `
44033
44056
  <aside class="pptx-ng-anim" [attr.aria-label]="'pptx.animations.propertiesLabel' | translate">
44034
44057
  <!-- ── Header ───────────────────────────────────────────────────── -->
44035
44058
  <div class="pptx-ng-anim__header">
@@ -44037,11 +44060,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
44037
44060
  @if (currentHasAnimation()) {
44038
44061
  <button
44039
44062
  type="button"
44040
- class="pptx-ng-anim__remove-btn"
44063
+ class="pptx-ng-anim__remove-btn inline-flex items-center gap-1"
44041
44064
  [title]="'pptx.animations.removeFromElement' | translate"
44042
44065
  (click)="onRemove()"
44043
44066
  >
44044
- {{ 'pptx.animations.remove' | translate }}
44067
+ <svg lucideX class="h-3.5 w-3.5"></svg> {{ 'pptx.animations.remove' | translate }}
44045
44068
  </button>
44046
44069
  }
44047
44070
  </div>
@@ -44299,21 +44322,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
44299
44322
  <div class="pptx-ng-anim__row">
44300
44323
  <button
44301
44324
  type="button"
44302
- class="pptx-ng-anim__order-btn"
44325
+ class="pptx-ng-anim__order-btn inline-flex items-center gap-1"
44303
44326
  [disabled]="!canEdit()"
44304
44327
  [title]="'pptx.animations.moveEarlier' | translate"
44305
44328
  (click)="onMoveUp()"
44306
44329
  >
44307
- {{ 'pptx.animations.earlier' | translate }}
44330
+ <svg lucideArrowUp class="h-3.5 w-3.5"></svg>
44331
+ {{ 'pptx.animations.earlier' | translate }}
44308
44332
  </button>
44309
44333
  <button
44310
44334
  type="button"
44311
- class="pptx-ng-anim__order-btn"
44335
+ class="pptx-ng-anim__order-btn inline-flex items-center gap-1"
44312
44336
  [disabled]="!canEdit()"
44313
44337
  [title]="'pptx.animations.moveLater' | translate"
44314
44338
  (click)="onMoveDown()"
44315
44339
  >
44316
- {{ 'pptx.animations.later' | translate }}
44340
+ <svg lucideArrowDown class="h-3.5 w-3.5"></svg>
44341
+ {{ 'pptx.animations.later' | translate }}
44317
44342
  </button>
44318
44343
  </div>
44319
44344
  </section>
@@ -51896,7 +51921,7 @@ class InspectorPanelComponent {
51896
51921
  [title]="'pptx.contextMenu.bringForward' | translate"
51897
51922
  (click)="editor.bringSelectedForward(slideIndex())"
51898
51923
  >
51899
-
51924
+ <svg lucideArrowUp class="h-3.5 w-3.5"></svg>
51900
51925
  </button>
51901
51926
  <button
51902
51927
  type="button"
@@ -51904,7 +51929,7 @@ class InspectorPanelComponent {
51904
51929
  [title]="'pptx.contextMenu.sendBackward' | translate"
51905
51930
  (click)="editor.sendSelectedBackward(slideIndex())"
51906
51931
  >
51907
-
51932
+ <svg lucideArrowDown class="h-3.5 w-3.5"></svg>
51908
51933
  </button>
51909
51934
  </div>
51910
51935
  </section>
@@ -52016,7 +52041,7 @@ class InspectorPanelComponent {
52016
52041
  </div>
52017
52042
  </section>
52018
52043
  </aside>
52019
- `, isInline: true, styles: [".pptx-ng-inspector{display:flex;flex-direction:column;gap:0;padding:.5rem;background:var(--pptx-inspector-bg, #1e1e1e);color:var(--pptx-inspector-fg, #e0e0e0);font-size:12px;min-width:220px;overflow-y:auto}.pptx-ng-inspector__section{padding:.5rem 0;border-bottom:1px solid var(--pptx-inspector-border, #333)}.pptx-ng-inspector__section:last-child{border-bottom:none}.pptx-ng-inspector__heading{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888);margin:0 0 .35rem}.pptx-ng-inspector__details{border-bottom:1px solid var(--pptx-inspector-border, #333)}.pptx-ng-inspector__summary{padding:.5rem 0;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888);cursor:pointer;-webkit-user-select:none;user-select:none}.pptx-ng-inspector__row{display:flex;align-items:center;gap:.35rem;margin-bottom:.35rem}.pptx-ng-inspector__row:last-child{margin-bottom:0}.pptx-ng-inspector__row--toggles{gap:.25rem}.pptx-ng-inspector__label{font-size:10px;color:var(--pptx-inspector-muted, #888);min-width:32px;text-align:right;flex-shrink:0}.pptx-ng-inspector__input{background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;padding:2px 4px;font-size:12px}.pptx-ng-inspector__input--number{width:62px;text-align:right}.pptx-ng-inspector__color{width:32px;height:22px;border:1px solid var(--pptx-inspector-border, #444);border-radius:3px;padding:1px;cursor:pointer;background:transparent;flex-shrink:0}.pptx-ng-inspector__toggle{width:26px;height:22px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px}.pptx-ng-inspector.is-mobile{width:100%;min-width:0;box-sizing:border-box;font-size:14px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__row{flex-wrap:wrap;gap:.5rem}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__label{min-width:28px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__input{flex:1 1 auto;min-height:40px;font-size:16px;padding:6px 8px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__input--number{width:auto;min-width:72px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__color{width:44px;height:40px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__toggle{min-width:44px;width:auto;flex:1 1 auto;height:40px;font-size:15px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__btn{min-height:40px;padding:8px 10px;font-size:13px}@media(pointer:coarse),(max-width:767px){.pptx-ng-inspector{width:100%;min-width:0;box-sizing:border-box;font-size:14px}.pptx-ng-inspector__row{flex-wrap:wrap;gap:.5rem}.pptx-ng-inspector__label{min-width:28px}.pptx-ng-inspector__input{flex:1 1 auto;min-height:40px;font-size:16px;padding:6px 8px}.pptx-ng-inspector__input--number{width:auto;min-width:72px}.pptx-ng-inspector__color{width:44px;height:40px}.pptx-ng-inspector__toggle{min-width:44px;width:auto;flex:1 1 auto;height:40px;font-size:15px}.pptx-ng-inspector__btn{min-height:40px;padding:8px 10px;font-size:13px}}.pptx-ng-inspector__toggle.is-active{background:var(--pptx-inspector-active, #0078d4);border-color:var(--pptx-inspector-active, #0078d4);color:#fff}.pptx-ng-inspector__btn{flex:1;padding:3px 6px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;font-size:11px;white-space:nowrap}.pptx-ng-inspector__btn:hover{background:var(--pptx-inspector-hover, #3a3a3a)}.pptx-ng-inspector__btn--danger{color:var(--pptx-inspector-danger, #f47c7c);border-color:var(--pptx-inspector-danger-border, #6b2a2a)}.pptx-ng-inspector__btn--danger:hover{background:var(--pptx-inspector-danger-hover, #4a1a1a)}\n"], dependencies: [{ kind: "component", type: GradientPickerComponent, selector: "pptx-gradient-picker", inputs: ["element"], outputs: ["patch"] }, { kind: "component", type: EffectsPanelComponent, selector: "pptx-effects-panel", inputs: ["element"], outputs: ["patch"] }, { kind: "component", type: TextAdvancedPanelComponent, selector: "pptx-text-advanced-panel", inputs: ["element"], outputs: ["patch"] }, { kind: "component", type: TableDataEditorComponent, selector: "pptx-table-data-editor", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: TablePropertiesComponent, selector: "pptx-table-properties", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: TableCellFormattingComponent, selector: "pptx-table-cell-formatting", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: ChartDataEditorComponent, selector: "pptx-chart-data-editor", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: SmartArtPropertiesComponent, selector: "pptx-smart-art-properties", inputs: ["smartArtData", "canEdit"], outputs: ["smartArtDataChange"] }, { kind: "component", type: AnimationAuthorPanelComponent, selector: "pptx-animation-author-panel", inputs: ["element", "slideIndex", "animations", "canEdit"], outputs: ["animationsChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52044
+ `, isInline: true, styles: [".pptx-ng-inspector{display:flex;flex-direction:column;gap:0;padding:.5rem;background:var(--pptx-inspector-bg, #1e1e1e);color:var(--pptx-inspector-fg, #e0e0e0);font-size:12px;min-width:220px;overflow-y:auto}.pptx-ng-inspector__section{padding:.5rem 0;border-bottom:1px solid var(--pptx-inspector-border, #333)}.pptx-ng-inspector__section:last-child{border-bottom:none}.pptx-ng-inspector__heading{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888);margin:0 0 .35rem}.pptx-ng-inspector__details{border-bottom:1px solid var(--pptx-inspector-border, #333)}.pptx-ng-inspector__summary{padding:.5rem 0;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--pptx-inspector-muted, #888);cursor:pointer;-webkit-user-select:none;user-select:none}.pptx-ng-inspector__row{display:flex;align-items:center;gap:.35rem;margin-bottom:.35rem}.pptx-ng-inspector__row:last-child{margin-bottom:0}.pptx-ng-inspector__row--toggles{gap:.25rem}.pptx-ng-inspector__label{font-size:10px;color:var(--pptx-inspector-muted, #888);min-width:32px;text-align:right;flex-shrink:0}.pptx-ng-inspector__input{background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;padding:2px 4px;font-size:12px}.pptx-ng-inspector__input--number{width:62px;text-align:right}.pptx-ng-inspector__color{width:32px;height:22px;border:1px solid var(--pptx-inspector-border, #444);border-radius:3px;padding:1px;cursor:pointer;background:transparent;flex-shrink:0}.pptx-ng-inspector__toggle{width:26px;height:22px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px}.pptx-ng-inspector.is-mobile{width:100%;min-width:0;box-sizing:border-box;font-size:14px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__row{flex-wrap:wrap;gap:.5rem}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__label{min-width:28px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__input{flex:1 1 auto;min-height:40px;font-size:16px;padding:6px 8px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__input--number{width:auto;min-width:72px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__color{width:44px;height:40px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__toggle{min-width:44px;width:auto;flex:1 1 auto;height:40px;font-size:15px}.pptx-ng-inspector.is-mobile .pptx-ng-inspector__btn{min-height:40px;padding:8px 10px;font-size:13px}@media(pointer:coarse),(max-width:767px){.pptx-ng-inspector{width:100%;min-width:0;box-sizing:border-box;font-size:14px}.pptx-ng-inspector__row{flex-wrap:wrap;gap:.5rem}.pptx-ng-inspector__label{min-width:28px}.pptx-ng-inspector__input{flex:1 1 auto;min-height:40px;font-size:16px;padding:6px 8px}.pptx-ng-inspector__input--number{width:auto;min-width:72px}.pptx-ng-inspector__color{width:44px;height:40px}.pptx-ng-inspector__toggle{min-width:44px;width:auto;flex:1 1 auto;height:40px;font-size:15px}.pptx-ng-inspector__btn{min-height:40px;padding:8px 10px;font-size:13px}}.pptx-ng-inspector__toggle.is-active{background:var(--pptx-inspector-active, #0078d4);border-color:var(--pptx-inspector-active, #0078d4);color:#fff}.pptx-ng-inspector__btn{flex:1;padding:3px 6px;background:var(--pptx-inspector-input-bg, #2d2d2d);border:1px solid var(--pptx-inspector-border, #444);color:inherit;border-radius:3px;cursor:pointer;font-size:11px;white-space:nowrap}.pptx-ng-inspector__btn:hover{background:var(--pptx-inspector-hover, #3a3a3a)}.pptx-ng-inspector__btn--danger{color:var(--pptx-inspector-danger, #f47c7c);border-color:var(--pptx-inspector-danger-border, #6b2a2a)}.pptx-ng-inspector__btn--danger:hover{background:var(--pptx-inspector-danger-hover, #4a1a1a)}\n"], dependencies: [{ kind: "component", type: GradientPickerComponent, selector: "pptx-gradient-picker", inputs: ["element"], outputs: ["patch"] }, { kind: "component", type: EffectsPanelComponent, selector: "pptx-effects-panel", inputs: ["element"], outputs: ["patch"] }, { kind: "component", type: TextAdvancedPanelComponent, selector: "pptx-text-advanced-panel", inputs: ["element"], outputs: ["patch"] }, { kind: "component", type: TableDataEditorComponent, selector: "pptx-table-data-editor", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: TablePropertiesComponent, selector: "pptx-table-properties", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: TableCellFormattingComponent, selector: "pptx-table-cell-formatting", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: ChartDataEditorComponent, selector: "pptx-chart-data-editor", inputs: ["element", "canEdit"], outputs: ["elementChange"] }, { kind: "component", type: SmartArtPropertiesComponent, selector: "pptx-smart-art-properties", inputs: ["smartArtData", "canEdit"], outputs: ["smartArtDataChange"] }, { kind: "component", type: AnimationAuthorPanelComponent, selector: "pptx-animation-author-panel", inputs: ["element", "slideIndex", "animations", "canEdit"], outputs: ["animationsChange"] }, { kind: "component", type: LucideArrowUp, selector: "svg[lucideArrowUp]" }, { kind: "component", type: LucideArrowDown, selector: "svg[lucideArrowDown]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52020
52045
  }
52021
52046
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: InspectorPanelComponent, decorators: [{
52022
52047
  type: Component,
@@ -52031,6 +52056,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
52031
52056
  SmartArtPropertiesComponent,
52032
52057
  AnimationAuthorPanelComponent,
52033
52058
  TranslatePipe,
52059
+ LucideArrowUp,
52060
+ LucideArrowDown,
52034
52061
  ], providers: [IsMobileService], template: `
52035
52062
  <!--
52036
52063
  NOTE (mobile-safe inputs): every numeric / colour input is keyed on the
@@ -52272,7 +52299,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
52272
52299
  [title]="'pptx.contextMenu.bringForward' | translate"
52273
52300
  (click)="editor.bringSelectedForward(slideIndex())"
52274
52301
  >
52275
-
52302
+ <svg lucideArrowUp class="h-3.5 w-3.5"></svg>
52276
52303
  </button>
52277
52304
  <button
52278
52305
  type="button"
@@ -52280,7 +52307,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
52280
52307
  [title]="'pptx.contextMenu.sendBackward' | translate"
52281
52308
  (click)="editor.sendSelectedBackward(slideIndex())"
52282
52309
  >
52283
-
52310
+ <svg lucideArrowDown class="h-3.5 w-3.5"></svg>
52284
52311
  </button>
52285
52312
  </div>
52286
52313
  </section>
@@ -61930,7 +61957,13 @@ class NotesPanelComponent {
61930
61957
  (click)="toggle()"
61931
61958
  >
61932
61959
  <span class="pptx-ng-notes-label">{{ 'pptx.notes.speakerNotes' | translate }}</span>
61933
- <span class="pptx-ng-notes-chevron" aria-hidden="true">{{ collapsed() ? '▸' : '▾' }}</span>
61960
+ <span class="pptx-ng-notes-chevron" aria-hidden="true">
61961
+ @if (collapsed()) {
61962
+ <svg lucideChevronRight class="h-4 w-4"></svg>
61963
+ } @else {
61964
+ <svg lucideChevronDown class="h-4 w-4"></svg>
61965
+ }
61966
+ </span>
61934
61967
  </button>
61935
61968
 
61936
61969
  @if (!collapsed()) {
@@ -61981,11 +62014,11 @@ class NotesPanelComponent {
61981
62014
  </div>
61982
62015
  }
61983
62016
  </section>
61984
- `, isInline: true, styles: [":host{display:block}.pptx-ng-notes-panel{display:flex;flex-direction:column;border-top:1px solid var(--pptx-border, rgba(0, 0, 0, .1));background:var(--pptx-background, #ffffff);color:var(--pptx-foreground, #111827)}.pptx-ng-notes-header{display:flex;width:100%;align-items:center;justify-content:space-between;padding:.5rem .75rem;border:none;background:transparent;font-size:.8125rem;font-weight:600;color:var(--pptx-muted-foreground, #6b7280);cursor:pointer}.pptx-ng-notes-header:hover{color:var(--pptx-foreground, #111827)}.pptx-ng-notes-body{padding:0 .75rem .75rem}.pptx-ng-notes-rich,.pptx-ng-notes-textarea{box-sizing:border-box;width:100%;min-height:5rem;padding:.5rem;border:1px solid rgba(0,0,0,.15);border-radius:.375rem;background:#00000008;font:inherit;font-size:.8125rem;line-height:1.5;color:#111827}.pptx-ng-notes-rich{overflow:auto;resize:vertical}.pptx-ng-notes-textarea{resize:vertical}.pptx-ng-notes-rich:focus,.pptx-ng-notes-textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 1px #6366f14d}.pptx-ng-notes-textarea:disabled{cursor:not-allowed;opacity:.6}\n"], dependencies: [{ kind: "component", type: NotesToolbarComponent, selector: "pptx-notes-toolbar", inputs: ["isRichEnabled", "showLinkPopover", "savedSelectionText"], outputs: ["inline", "paragraph", "linkButtonClick", "insertLink", "closeLinkPopover", "print", "toggleRich"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
62017
+ `, isInline: true, styles: [":host{display:block}.pptx-ng-notes-panel{display:flex;flex-direction:column;border-top:1px solid var(--pptx-border, rgba(0, 0, 0, .1));background:var(--pptx-background, #ffffff);color:var(--pptx-foreground, #111827)}.pptx-ng-notes-header{display:flex;width:100%;align-items:center;justify-content:space-between;padding:.5rem .75rem;border:none;background:transparent;font-size:.8125rem;font-weight:600;color:var(--pptx-muted-foreground, #6b7280);cursor:pointer}.pptx-ng-notes-header:hover{color:var(--pptx-foreground, #111827)}.pptx-ng-notes-body{padding:0 .75rem .75rem}.pptx-ng-notes-rich,.pptx-ng-notes-textarea{box-sizing:border-box;width:100%;min-height:5rem;padding:.5rem;border:1px solid rgba(0,0,0,.15);border-radius:.375rem;background:#00000008;font:inherit;font-size:.8125rem;line-height:1.5;color:#111827}.pptx-ng-notes-rich{overflow:auto;resize:vertical}.pptx-ng-notes-textarea{resize:vertical}.pptx-ng-notes-rich:focus,.pptx-ng-notes-textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 1px #6366f14d}.pptx-ng-notes-textarea:disabled{cursor:not-allowed;opacity:.6}\n"], dependencies: [{ kind: "component", type: NotesToolbarComponent, selector: "pptx-notes-toolbar", inputs: ["isRichEnabled", "showLinkPopover", "savedSelectionText"], outputs: ["inline", "paragraph", "linkButtonClick", "insertLink", "closeLinkPopover", "print", "toggleRich"] }, { kind: "component", type: LucideChevronRight, selector: "svg[lucideChevronRight]" }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
61985
62018
  }
61986
62019
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NotesPanelComponent, decorators: [{
61987
62020
  type: Component,
61988
- args: [{ selector: 'pptx-notes-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NotesToolbarComponent, TranslatePipe], template: `
62021
+ args: [{ selector: 'pptx-notes-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NotesToolbarComponent, TranslatePipe, LucideChevronRight, LucideChevronDown], template: `
61989
62022
  <section class="pptx-ng-notes-panel" [attr.data-collapsed]="collapsed()">
61990
62023
  <button
61991
62024
  type="button"
@@ -61994,7 +62027,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
61994
62027
  (click)="toggle()"
61995
62028
  >
61996
62029
  <span class="pptx-ng-notes-label">{{ 'pptx.notes.speakerNotes' | translate }}</span>
61997
- <span class="pptx-ng-notes-chevron" aria-hidden="true">{{ collapsed() ? '▸' : '▾' }}</span>
62030
+ <span class="pptx-ng-notes-chevron" aria-hidden="true">
62031
+ @if (collapsed()) {
62032
+ <svg lucideChevronRight class="h-4 w-4"></svg>
62033
+ } @else {
62034
+ <svg lucideChevronDown class="h-4 w-4"></svg>
62035
+ }
62036
+ </span>
61998
62037
  </button>
61999
62038
 
62000
62039
  @if (!collapsed()) {
@@ -64123,7 +64162,7 @@ class PresentationOverlayComponent {
64123
64162
  (click)="selectTool('pen')"
64124
64163
  [attr.aria-label]="'pptx.presentation.pen' | translate"
64125
64164
  >
64126
-
64165
+ <svg lucidePenTool class="h-4 w-4"></svg>
64127
64166
  </button>
64128
64167
  <button
64129
64168
  type="button"
@@ -64131,7 +64170,7 @@ class PresentationOverlayComponent {
64131
64170
  (click)="selectTool('highlighter')"
64132
64171
  [attr.aria-label]="'pptx.presentation.highlighter' | translate"
64133
64172
  >
64134
-
64173
+ <svg lucideHighlighter class="h-4 w-4"></svg>
64135
64174
  </button>
64136
64175
  <button
64137
64176
  type="button"
@@ -64139,7 +64178,7 @@ class PresentationOverlayComponent {
64139
64178
  (click)="selectTool('eraser')"
64140
64179
  [attr.aria-label]="'pptx.presentation.eraser' | translate"
64141
64180
  >
64142
-
64181
+ <svg lucideEraser class="h-4 w-4"></svg>
64143
64182
  </button>
64144
64183
  <button
64145
64184
  type="button"
@@ -64147,14 +64186,14 @@ class PresentationOverlayComponent {
64147
64186
  (click)="selectTool('laser')"
64148
64187
  [attr.aria-label]="'pptx.presentation.laserPointer' | translate"
64149
64188
  >
64150
-
64189
+ <svg lucideMousePointer2 class="h-4 w-4"></svg>
64151
64190
  </button>
64152
64191
  <button
64153
64192
  type="button"
64154
64193
  (click)="annotations.clearAnnotations()"
64155
64194
  [attr.aria-label]="'pptx.presentation.clearAnnotations' | translate"
64156
64195
  >
64157
- 🗑
64196
+ <svg lucideTrash2 class="h-4 w-4"></svg>
64158
64197
  </button>
64159
64198
  <button
64160
64199
  type="button"
@@ -64175,7 +64214,7 @@ class PresentationOverlayComponent {
64175
64214
  (touchend)="onCloseTouch($event)"
64176
64215
  [attr.aria-label]="'pptx.presenter.endPresentation' | translate"
64177
64216
  >
64178
- &#x2715;
64217
+ <svg lucideX class="h-5 w-5"></svg>
64179
64218
  </button>
64180
64219
 
64181
64220
  <!-- Edge navigation buttons (vertically centred, touch-friendly). -->
@@ -64187,7 +64226,7 @@ class PresentationOverlayComponent {
64187
64226
  (touchend)="onPrevTouch($event)"
64188
64227
  [attr.aria-label]="'pptx.presenter.previousSlide' | translate"
64189
64228
  >
64190
- &#x2039;
64229
+ <svg lucideChevronLeft class="h-6 w-6"></svg>
64191
64230
  </button>
64192
64231
  <button
64193
64232
  type="button"
@@ -64197,10 +64236,10 @@ class PresentationOverlayComponent {
64197
64236
  (touchend)="onNextTouch($event)"
64198
64237
  [attr.aria-label]="'pptx.presenter.nextSlide' | translate"
64199
64238
  >
64200
- &#x203A;
64239
+ <svg lucideChevronRight class="h-6 w-6"></svg>
64201
64240
  </button>
64202
64241
  </div>
64203
- `, isInline: true, styles: [":host{display:block;position:fixed;inset:0;z-index:10000;background:#000;cursor:pointer;-webkit-user-select:none;user-select:none}.pptx-ng-presentation-root{position:absolute;inset:0;touch-action:pan-y}.pptx-ng-presentation-close:hover,.pptx-ng-presentation-nav:hover{background:#000000bf}.pptx-ng-presentation-tools{position:absolute;bottom:max(1rem,env(safe-area-inset-bottom));left:1rem;display:flex;gap:.25rem;padding:.25rem;border-radius:.5rem;background:#0000008c;z-index:80}.pptx-ng-presentation-tools button{width:2rem;height:2rem;border:none;border-radius:.35rem;background:transparent;color:#fff;font-size:1rem;cursor:pointer}.pptx-ng-presentation-tools button:hover{background:#ffffff26}.pptx-ng-presentation-tools button.is-active{background:#ffffff4d}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SlideCanvasComponent, selector: "pptx-slide-canvas", inputs: ["slide", "canvasSize", "mediaDataUrls", "zoom", "editable", "showGrid", "showRulers", "showGuides", "snapToGrid", "snapToGuides", "autoFit", "interactive", "selectedIds", "editingId", "editTemplateMode", "templateElements", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }, { kind: "component", type: PresentationTransitionOverlayComponent, selector: "pptx-presentation-transition-overlay", inputs: ["outgoingSlide", "canvasSize", "transition", "templateElements", "mediaDataUrls", "durationMs"], outputs: ["complete"] }, { kind: "component", type: PresentationAnnotationOverlayComponent, selector: "pptx-presentation-annotation-overlay", inputs: ["canvasSize", "zoom"] }, { kind: "component", type: PresentationSubtitleBarComponent, selector: "pptx-presentation-subtitle-bar", inputs: ["visible"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
64242
+ `, isInline: true, styles: [":host{display:block;position:fixed;inset:0;z-index:10000;background:#000;cursor:pointer;-webkit-user-select:none;user-select:none}.pptx-ng-presentation-root{position:absolute;inset:0;touch-action:pan-y}.pptx-ng-presentation-close:hover,.pptx-ng-presentation-nav:hover{background:#000000bf}.pptx-ng-presentation-tools{position:absolute;bottom:max(1rem,env(safe-area-inset-bottom));left:1rem;display:flex;gap:.25rem;padding:.25rem;border-radius:.5rem;background:#0000008c;z-index:80}.pptx-ng-presentation-tools button{width:2rem;height:2rem;border:none;border-radius:.35rem;background:transparent;color:#fff;font-size:1rem;cursor:pointer}.pptx-ng-presentation-tools button:hover{background:#ffffff26}.pptx-ng-presentation-tools button.is-active{background:#ffffff4d}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SlideCanvasComponent, selector: "pptx-slide-canvas", inputs: ["slide", "canvasSize", "mediaDataUrls", "zoom", "editable", "showGrid", "showRulers", "showGuides", "snapToGrid", "snapToGuides", "autoFit", "interactive", "selectedIds", "editingId", "editTemplateMode", "templateElements", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }, { kind: "component", type: PresentationTransitionOverlayComponent, selector: "pptx-presentation-transition-overlay", inputs: ["outgoingSlide", "canvasSize", "transition", "templateElements", "mediaDataUrls", "durationMs"], outputs: ["complete"] }, { kind: "component", type: PresentationAnnotationOverlayComponent, selector: "pptx-presentation-annotation-overlay", inputs: ["canvasSize", "zoom"] }, { kind: "component", type: PresentationSubtitleBarComponent, selector: "pptx-presentation-subtitle-bar", inputs: ["visible"] }, { kind: "component", type: LucidePenTool, selector: "svg[lucidePenTool]" }, { kind: "component", type: LucideHighlighter, selector: "svg[lucideHighlighter]" }, { kind: "component", type: LucideEraser, selector: "svg[lucideEraser]" }, { kind: "component", type: LucideMousePointer2, selector: "svg[lucideMousePointer2]" }, { kind: "component", type: LucideTrash2, selector: "svg[lucideTrash2]" }, { kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "component", type: LucideChevronLeft, selector: "svg[lucideChevronLeft]" }, { kind: "component", type: LucideChevronRight, selector: "svg[lucideChevronRight]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
64204
64243
  }
64205
64244
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PresentationOverlayComponent, decorators: [{
64206
64245
  type: Component,
@@ -64211,6 +64250,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
64211
64250
  PresentationAnnotationOverlayComponent,
64212
64251
  PresentationSubtitleBarComponent,
64213
64252
  TranslatePipe,
64253
+ LucidePenTool,
64254
+ LucideHighlighter,
64255
+ LucideEraser,
64256
+ LucideMousePointer2,
64257
+ LucideTrash2,
64258
+ LucideX,
64259
+ LucideChevronLeft,
64260
+ LucideChevronRight,
64214
64261
  ], providers: [AnimationPlaybackService, PresentationAnnotationsService, ZoomNavigationService], template: `
64215
64262
  <div #root class="pptx-ng-presentation-root">
64216
64263
  <!--
@@ -64268,7 +64315,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
64268
64315
  (click)="selectTool('pen')"
64269
64316
  [attr.aria-label]="'pptx.presentation.pen' | translate"
64270
64317
  >
64271
-
64318
+ <svg lucidePenTool class="h-4 w-4"></svg>
64272
64319
  </button>
64273
64320
  <button
64274
64321
  type="button"
@@ -64276,7 +64323,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
64276
64323
  (click)="selectTool('highlighter')"
64277
64324
  [attr.aria-label]="'pptx.presentation.highlighter' | translate"
64278
64325
  >
64279
-
64326
+ <svg lucideHighlighter class="h-4 w-4"></svg>
64280
64327
  </button>
64281
64328
  <button
64282
64329
  type="button"
@@ -64284,7 +64331,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
64284
64331
  (click)="selectTool('eraser')"
64285
64332
  [attr.aria-label]="'pptx.presentation.eraser' | translate"
64286
64333
  >
64287
-
64334
+ <svg lucideEraser class="h-4 w-4"></svg>
64288
64335
  </button>
64289
64336
  <button
64290
64337
  type="button"
@@ -64292,14 +64339,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
64292
64339
  (click)="selectTool('laser')"
64293
64340
  [attr.aria-label]="'pptx.presentation.laserPointer' | translate"
64294
64341
  >
64295
-
64342
+ <svg lucideMousePointer2 class="h-4 w-4"></svg>
64296
64343
  </button>
64297
64344
  <button
64298
64345
  type="button"
64299
64346
  (click)="annotations.clearAnnotations()"
64300
64347
  [attr.aria-label]="'pptx.presentation.clearAnnotations' | translate"
64301
64348
  >
64302
- 🗑
64349
+ <svg lucideTrash2 class="h-4 w-4"></svg>
64303
64350
  </button>
64304
64351
  <button
64305
64352
  type="button"
@@ -64320,7 +64367,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
64320
64367
  (touchend)="onCloseTouch($event)"
64321
64368
  [attr.aria-label]="'pptx.presenter.endPresentation' | translate"
64322
64369
  >
64323
- &#x2715;
64370
+ <svg lucideX class="h-5 w-5"></svg>
64324
64371
  </button>
64325
64372
 
64326
64373
  <!-- Edge navigation buttons (vertically centred, touch-friendly). -->
@@ -64332,7 +64379,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
64332
64379
  (touchend)="onPrevTouch($event)"
64333
64380
  [attr.aria-label]="'pptx.presenter.previousSlide' | translate"
64334
64381
  >
64335
- &#x2039;
64382
+ <svg lucideChevronLeft class="h-6 w-6"></svg>
64336
64383
  </button>
64337
64384
  <button
64338
64385
  type="button"
@@ -64342,7 +64389,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
64342
64389
  (touchend)="onNextTouch($event)"
64343
64390
  [attr.aria-label]="'pptx.presenter.nextSlide' | translate"
64344
64391
  >
64345
- &#x203A;
64392
+ <svg lucideChevronRight class="h-6 w-6"></svg>
64346
64393
  </button>
64347
64394
  </div>
64348
64395
  `, styles: [":host{display:block;position:fixed;inset:0;z-index:10000;background:#000;cursor:pointer;-webkit-user-select:none;user-select:none}.pptx-ng-presentation-root{position:absolute;inset:0;touch-action:pan-y}.pptx-ng-presentation-close:hover,.pptx-ng-presentation-nav:hover{background:#000000bf}.pptx-ng-presentation-tools{position:absolute;bottom:max(1rem,env(safe-area-inset-bottom));left:1rem;display:flex;gap:.25rem;padding:.25rem;border-radius:.5rem;background:#0000008c;z-index:80}.pptx-ng-presentation-tools button{width:2rem;height:2rem;border:none;border-radius:.35rem;background:transparent;color:#fff;font-size:1rem;cursor:pointer}.pptx-ng-presentation-tools button:hover{background:#ffffff26}.pptx-ng-presentation-tools button.is-active{background:#ffffff4d}\n"] }]
@@ -66443,7 +66490,7 @@ class RibbonAnimationsSectionComponent {
66443
66490
  [title]="'pptx.animations.previewTooltip' | translate"
66444
66491
  (click)="present.emit()"
66445
66492
  >
66446
- {{ 'pptx.animations.preview' | translate }}
66493
+ <svg lucidePlay class="h-4 w-4"></svg> {{ 'pptx.animations.preview' | translate }}
66447
66494
  </button>
66448
66495
  <span class="pptx-rb-sep"></span>
66449
66496
  <!-- Add Animation dropdown (hover-reveal, mirrors React pattern) -->
@@ -66454,7 +66501,9 @@ class RibbonAnimationsSectionComponent {
66454
66501
  [disabled]="!hasSel()"
66455
66502
  [title]="'pptx.animations.addTooltip' | translate"
66456
66503
  >
66457
- {{ 'pptx.animations.addAnimation' | translate }} ▾
66504
+ <svg lucideSparkles class="h-4 w-4"></svg>
66505
+ {{ 'pptx.animations.addAnimation' | translate }}
66506
+ <svg lucideChevronDown class="h-3 w-3"></svg>
66458
66507
  </button>
66459
66508
  <!-- Dropdown panel: shown on group hover -->
66460
66509
  <div class="absolute left-0 top-full z-50 hidden w-44 pt-1 group-hover:block">
@@ -66522,7 +66571,7 @@ class RibbonAnimationsSectionComponent {
66522
66571
  [title]="'pptx.animations.removeTooltip' | translate"
66523
66572
  (click)="removeAnim()"
66524
66573
  >
66525
- {{ 'pptx.ribbon.removeAnimation' | translate }}
66574
+ <svg lucideTrash2 class="h-4 w-4"></svg> {{ 'pptx.ribbon.removeAnimation' | translate }}
66526
66575
  </button>
66527
66576
  <span class="pptx-rb-sep"></span>
66528
66577
  <!-- Animation Panel -->
@@ -66532,9 +66581,10 @@ class RibbonAnimationsSectionComponent {
66532
66581
  [title]="'pptx.animations.openPanelTooltip' | translate"
66533
66582
  (click)="toggleInspector.emit()"
66534
66583
  >
66535
- {{ 'pptx.animations.animationPanel' | translate }}
66584
+ <svg lucidePanelRight class="h-4 w-4"></svg>
66585
+ {{ 'pptx.animations.animationPanel' | translate }}
66536
66586
  </button>
66537
- `, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
66587
+ `, isInline: true, dependencies: [{ kind: "component", type: LucidePlay, selector: "svg[lucidePlay]" }, { kind: "component", type: LucideSparkles, selector: "svg[lucideSparkles], svg[lucideStars]" }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "component", type: LucideTrash2, selector: "svg[lucideTrash2]" }, { kind: "component", type: LucidePanelRight, selector: "svg[lucidePanelRight]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
66538
66588
  }
66539
66589
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonAnimationsSectionComponent, decorators: [{
66540
66590
  type: Component,
@@ -66543,7 +66593,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
66543
66593
  standalone: true,
66544
66594
  changeDetection: ChangeDetectionStrategy.OnPush,
66545
66595
  host: { class: 'contents' },
66546
- imports: [TranslatePipe],
66596
+ imports: [
66597
+ TranslatePipe,
66598
+ LucidePlay,
66599
+ LucideSparkles,
66600
+ LucideChevronDown,
66601
+ LucideTrash2,
66602
+ LucidePanelRight,
66603
+ ],
66547
66604
  template: `
66548
66605
  <!-- Preview: plays presentation from this slide; no element-only preview API yet -->
66549
66606
  <button
@@ -66553,7 +66610,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
66553
66610
  [title]="'pptx.animations.previewTooltip' | translate"
66554
66611
  (click)="present.emit()"
66555
66612
  >
66556
- {{ 'pptx.animations.preview' | translate }}
66613
+ <svg lucidePlay class="h-4 w-4"></svg> {{ 'pptx.animations.preview' | translate }}
66557
66614
  </button>
66558
66615
  <span class="pptx-rb-sep"></span>
66559
66616
  <!-- Add Animation dropdown (hover-reveal, mirrors React pattern) -->
@@ -66564,7 +66621,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
66564
66621
  [disabled]="!hasSel()"
66565
66622
  [title]="'pptx.animations.addTooltip' | translate"
66566
66623
  >
66567
- {{ 'pptx.animations.addAnimation' | translate }} ▾
66624
+ <svg lucideSparkles class="h-4 w-4"></svg>
66625
+ {{ 'pptx.animations.addAnimation' | translate }}
66626
+ <svg lucideChevronDown class="h-3 w-3"></svg>
66568
66627
  </button>
66569
66628
  <!-- Dropdown panel: shown on group hover -->
66570
66629
  <div class="absolute left-0 top-full z-50 hidden w-44 pt-1 group-hover:block">
@@ -66632,7 +66691,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
66632
66691
  [title]="'pptx.animations.removeTooltip' | translate"
66633
66692
  (click)="removeAnim()"
66634
66693
  >
66635
- {{ 'pptx.ribbon.removeAnimation' | translate }}
66694
+ <svg lucideTrash2 class="h-4 w-4"></svg> {{ 'pptx.ribbon.removeAnimation' | translate }}
66636
66695
  </button>
66637
66696
  <span class="pptx-rb-sep"></span>
66638
66697
  <!-- Animation Panel -->
@@ -66642,7 +66701,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
66642
66701
  [title]="'pptx.animations.openPanelTooltip' | translate"
66643
66702
  (click)="toggleInspector.emit()"
66644
66703
  >
66645
- {{ 'pptx.animations.animationPanel' | translate }}
66704
+ <svg lucidePanelRight class="h-4 w-4"></svg>
66705
+ {{ 'pptx.animations.animationPanel' | translate }}
66646
66706
  </button>
66647
66707
  `,
66648
66708
  }]
@@ -66738,7 +66798,7 @@ class RibbonArrangeSectionComponent {
66738
66798
  [title]="'pptx.ribbon.alignLeft' | translate"
66739
66799
  (click)="editor.alignSelected(slideIndex(), 'left')"
66740
66800
  >
66741
-
66801
+ <svg lucideTextAlignStart class="h-4 w-4"></svg>
66742
66802
  </button>
66743
66803
  <button
66744
66804
  type="button"
@@ -66747,7 +66807,7 @@ class RibbonArrangeSectionComponent {
66747
66807
  [title]="'pptx.ribbon.alignCenter' | translate"
66748
66808
  (click)="editor.alignSelected(slideIndex(), 'centerH')"
66749
66809
  >
66750
-
66810
+ <svg lucideTextAlignCenter class="h-4 w-4"></svg>
66751
66811
  </button>
66752
66812
  <button
66753
66813
  type="button"
@@ -66756,7 +66816,7 @@ class RibbonArrangeSectionComponent {
66756
66816
  [title]="'pptx.ribbon.alignRight' | translate"
66757
66817
  (click)="editor.alignSelected(slideIndex(), 'right')"
66758
66818
  >
66759
-
66819
+ <svg lucideTextAlignEnd class="h-4 w-4"></svg>
66760
66820
  </button>
66761
66821
  <button
66762
66822
  type="button"
@@ -66765,7 +66825,7 @@ class RibbonArrangeSectionComponent {
66765
66825
  [title]="'pptx.ribbon.alignTop' | translate"
66766
66826
  (click)="editor.alignSelected(slideIndex(), 'top')"
66767
66827
  >
66768
-
66828
+ <svg lucideChevronUp class="h-4 w-4"></svg>
66769
66829
  </button>
66770
66830
  <button
66771
66831
  type="button"
@@ -66774,7 +66834,7 @@ class RibbonArrangeSectionComponent {
66774
66834
  [title]="'pptx.ribbon.alignMiddle' | translate"
66775
66835
  (click)="editor.alignSelected(slideIndex(), 'middle')"
66776
66836
  >
66777
-
66837
+ <svg lucideTextAlignCenter class="h-4 w-4 rotate-90"></svg>
66778
66838
  </button>
66779
66839
  <button
66780
66840
  type="button"
@@ -66783,7 +66843,7 @@ class RibbonArrangeSectionComponent {
66783
66843
  [title]="'pptx.ribbon.alignBottom' | translate"
66784
66844
  (click)="editor.alignSelected(slideIndex(), 'bottom')"
66785
66845
  >
66786
-
66846
+ <svg lucideChevronDown class="h-4 w-4"></svg>
66787
66847
  </button>
66788
66848
  </div>
66789
66849
  <span class="pptx-rb-sep"></span>
@@ -66796,7 +66856,7 @@ class RibbonArrangeSectionComponent {
66796
66856
  [title]="'pptx.ribbon.distributeHorizontally' | translate"
66797
66857
  (click)="editor.distributeSelected(slideIndex(), 'horizontal')"
66798
66858
  >
66799
- &#x2194; H
66859
+ <svg lucideAlignHorizontalSpaceAround class="h-4 w-4"></svg>
66800
66860
  </button>
66801
66861
  <button
66802
66862
  type="button"
@@ -66805,7 +66865,7 @@ class RibbonArrangeSectionComponent {
66805
66865
  [title]="'pptx.ribbon.distributeVertically' | translate"
66806
66866
  (click)="editor.distributeSelected(slideIndex(), 'vertical')"
66807
66867
  >
66808
- &#x2195; V
66868
+ <svg lucideAlignVerticalSpaceAround class="h-4 w-4"></svg>
66809
66869
  </button>
66810
66870
  </div>
66811
66871
  <span class="pptx-rb-sep"></span>
@@ -66912,7 +66972,7 @@ class RibbonArrangeSectionComponent {
66912
66972
  {{ 'pptx.arrange.delete' | translate }}
66913
66973
  </button>
66914
66974
  </div>
66915
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
66975
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucideTextAlignStart, selector: "svg[lucideTextAlignStart], svg[lucideText], svg[lucideAlignLeft]" }, { kind: "component", type: LucideTextAlignCenter, selector: "svg[lucideTextAlignCenter], svg[lucideAlignCenter]" }, { kind: "component", type: LucideTextAlignEnd, selector: "svg[lucideTextAlignEnd], svg[lucideAlignRight]" }, { kind: "component", type: LucideChevronUp, selector: "svg[lucideChevronUp]" }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "component", type: LucideAlignHorizontalSpaceAround, selector: "svg[lucideAlignHorizontalSpaceAround]" }, { kind: "component", type: LucideAlignVerticalSpaceAround, selector: "svg[lucideAlignVerticalSpaceAround]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
66916
66976
  }
66917
66977
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonArrangeSectionComponent, decorators: [{
66918
66978
  type: Component,
@@ -66921,7 +66981,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
66921
66981
  standalone: true,
66922
66982
  changeDetection: ChangeDetectionStrategy.OnPush,
66923
66983
  host: { class: 'contents' },
66924
- imports: [NgClass, TranslatePipe],
66984
+ imports: [
66985
+ NgClass,
66986
+ TranslatePipe,
66987
+ LucideTextAlignStart,
66988
+ LucideTextAlignCenter,
66989
+ LucideTextAlignEnd,
66990
+ LucideChevronUp,
66991
+ LucideChevronDown,
66992
+ LucideAlignHorizontalSpaceAround,
66993
+ LucideAlignVerticalSpaceAround,
66994
+ ],
66925
66995
  template: `
66926
66996
  <!-- Order -->
66927
66997
  <div class="pptx-rb-grp">
@@ -66972,7 +67042,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
66972
67042
  [title]="'pptx.ribbon.alignLeft' | translate"
66973
67043
  (click)="editor.alignSelected(slideIndex(), 'left')"
66974
67044
  >
66975
-
67045
+ <svg lucideTextAlignStart class="h-4 w-4"></svg>
66976
67046
  </button>
66977
67047
  <button
66978
67048
  type="button"
@@ -66981,7 +67051,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
66981
67051
  [title]="'pptx.ribbon.alignCenter' | translate"
66982
67052
  (click)="editor.alignSelected(slideIndex(), 'centerH')"
66983
67053
  >
66984
-
67054
+ <svg lucideTextAlignCenter class="h-4 w-4"></svg>
66985
67055
  </button>
66986
67056
  <button
66987
67057
  type="button"
@@ -66990,7 +67060,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
66990
67060
  [title]="'pptx.ribbon.alignRight' | translate"
66991
67061
  (click)="editor.alignSelected(slideIndex(), 'right')"
66992
67062
  >
66993
-
67063
+ <svg lucideTextAlignEnd class="h-4 w-4"></svg>
66994
67064
  </button>
66995
67065
  <button
66996
67066
  type="button"
@@ -66999,7 +67069,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
66999
67069
  [title]="'pptx.ribbon.alignTop' | translate"
67000
67070
  (click)="editor.alignSelected(slideIndex(), 'top')"
67001
67071
  >
67002
-
67072
+ <svg lucideChevronUp class="h-4 w-4"></svg>
67003
67073
  </button>
67004
67074
  <button
67005
67075
  type="button"
@@ -67008,7 +67078,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
67008
67078
  [title]="'pptx.ribbon.alignMiddle' | translate"
67009
67079
  (click)="editor.alignSelected(slideIndex(), 'middle')"
67010
67080
  >
67011
-
67081
+ <svg lucideTextAlignCenter class="h-4 w-4 rotate-90"></svg>
67012
67082
  </button>
67013
67083
  <button
67014
67084
  type="button"
@@ -67017,7 +67087,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
67017
67087
  [title]="'pptx.ribbon.alignBottom' | translate"
67018
67088
  (click)="editor.alignSelected(slideIndex(), 'bottom')"
67019
67089
  >
67020
-
67090
+ <svg lucideChevronDown class="h-4 w-4"></svg>
67021
67091
  </button>
67022
67092
  </div>
67023
67093
  <span class="pptx-rb-sep"></span>
@@ -67030,7 +67100,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
67030
67100
  [title]="'pptx.ribbon.distributeHorizontally' | translate"
67031
67101
  (click)="editor.distributeSelected(slideIndex(), 'horizontal')"
67032
67102
  >
67033
- &#x2194; H
67103
+ <svg lucideAlignHorizontalSpaceAround class="h-4 w-4"></svg>
67034
67104
  </button>
67035
67105
  <button
67036
67106
  type="button"
@@ -67039,7 +67109,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
67039
67109
  [title]="'pptx.ribbon.distributeVertically' | translate"
67040
67110
  (click)="editor.distributeSelected(slideIndex(), 'vertical')"
67041
67111
  >
67042
- &#x2195; V
67112
+ <svg lucideAlignVerticalSpaceAround class="h-4 w-4"></svg>
67043
67113
  </button>
67044
67114
  </div>
67045
67115
  <span class="pptx-rb-sep"></span>
@@ -67260,11 +67330,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
67260
67330
  * {@link DrawToolState} the parent re-broadcasts as `drawToolChange`.
67261
67331
  */
67262
67332
  const DRAW_TOOLS = [
67263
- { id: 'select', labelKey: 'pptx.ribbon.tool.select', icon: '↖' },
67264
- { id: 'pen', labelKey: 'pptx.ribbon.tool.pen', icon: '✏' },
67265
- { id: 'highlighter', labelKey: 'pptx.ribbon.tool.highlighter', icon: 'Hl' },
67266
- { id: 'eraser', labelKey: 'pptx.ribbon.tool.eraser', icon: '⌫' },
67267
- { id: 'freeform', labelKey: 'pptx.ribbon.tool.freeform', icon: '∿' },
67333
+ { id: 'select', labelKey: 'pptx.ribbon.tool.select' },
67334
+ { id: 'pen', labelKey: 'pptx.ribbon.tool.pen' },
67335
+ { id: 'highlighter', labelKey: 'pptx.ribbon.tool.highlighter' },
67336
+ { id: 'eraser', labelKey: 'pptx.ribbon.tool.eraser' },
67337
+ { id: 'freeform', labelKey: 'pptx.ribbon.tool.freeform' },
67268
67338
  ];
67269
67339
  class RibbonDrawSectionComponent {
67270
67340
  activeTool = input('select', /* @ts-ignore */
@@ -67304,7 +67374,23 @@ class RibbonDrawSectionComponent {
67304
67374
  [title]="tool.labelKey | translate"
67305
67375
  (click)="selectTool(tool.id)"
67306
67376
  >
67307
- {{ tool.icon }}
67377
+ @switch (tool.id) {
67378
+ @case ('select') {
67379
+ <svg lucideMoveRight class="h-4 w-4"></svg>
67380
+ }
67381
+ @case ('pen') {
67382
+ <svg lucidePencil class="h-4 w-4"></svg>
67383
+ }
67384
+ @case ('highlighter') {
67385
+ <svg lucideType class="h-4 w-4"></svg>
67386
+ }
67387
+ @case ('eraser') {
67388
+ <svg lucideMinus class="h-4 w-4"></svg>
67389
+ }
67390
+ @case ('freeform') {
67391
+ <svg lucideSpline class="h-4 w-4"></svg>
67392
+ }
67393
+ }
67308
67394
  </button>
67309
67395
  }
67310
67396
  </div>
@@ -67338,7 +67424,7 @@ class RibbonDrawSectionComponent {
67338
67424
  />
67339
67425
  <span class="w-4 text-right text-foreground">{{ drawingWidth() }}</span>
67340
67426
  </label>
67341
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
67427
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucideMoveRight, selector: "svg[lucideMoveRight]" }, { kind: "component", type: LucidePencil, selector: "svg[lucidePencil]" }, { kind: "component", type: LucideType, selector: "svg[lucideType]" }, { kind: "component", type: LucideMinus, selector: "svg[lucideMinus]" }, { kind: "component", type: LucideSpline, selector: "svg[lucideSpline]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
67342
67428
  }
67343
67429
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonDrawSectionComponent, decorators: [{
67344
67430
  type: Component,
@@ -67347,7 +67433,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
67347
67433
  standalone: true,
67348
67434
  changeDetection: ChangeDetectionStrategy.OnPush,
67349
67435
  host: { class: 'contents' },
67350
- imports: [NgClass, TranslatePipe],
67436
+ imports: [
67437
+ NgClass,
67438
+ TranslatePipe,
67439
+ LucideMoveRight,
67440
+ LucidePencil,
67441
+ LucideType,
67442
+ LucideMinus,
67443
+ LucideSpline,
67444
+ ],
67351
67445
  template: `
67352
67446
  <!--
67353
67447
  Draw tool state is held in the parent ribbon and pushed up via
@@ -67365,7 +67459,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
67365
67459
  [title]="tool.labelKey | translate"
67366
67460
  (click)="selectTool(tool.id)"
67367
67461
  >
67368
- {{ tool.icon }}
67462
+ @switch (tool.id) {
67463
+ @case ('select') {
67464
+ <svg lucideMoveRight class="h-4 w-4"></svg>
67465
+ }
67466
+ @case ('pen') {
67467
+ <svg lucidePencil class="h-4 w-4"></svg>
67468
+ }
67469
+ @case ('highlighter') {
67470
+ <svg lucideType class="h-4 w-4"></svg>
67471
+ }
67472
+ @case ('eraser') {
67473
+ <svg lucideMinus class="h-4 w-4"></svg>
67474
+ }
67475
+ @case ('freeform') {
67476
+ <svg lucideSpline class="h-4 w-4"></svg>
67477
+ }
67478
+ }
67369
67479
  </button>
67370
67480
  }
67371
67481
  </div>
@@ -67452,12 +67562,12 @@ class RibbonDrawingGroupComponent {
67452
67562
  <div class="relative">
67453
67563
  <button
67454
67564
  type="button"
67455
- class="pptx-rb-gb"
67565
+ class="pptx-rb-gb gap-1.5"
67456
67566
  [disabled]="!canEdit()"
67457
67567
  [title]="'pptx.ribbon.shapes' | translate"
67458
67568
  (click)="shapesOpen.set(!shapesOpen())"
67459
67569
  >
67460
- {{ 'pptx.ribbon.shapes' | translate }}
67570
+ {{ 'pptx.ribbon.shapes' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
67461
67571
  </button>
67462
67572
  @if (shapesOpen()) {
67463
67573
  <div
@@ -67479,12 +67589,12 @@ class RibbonDrawingGroupComponent {
67479
67589
  <div class="relative">
67480
67590
  <button
67481
67591
  type="button"
67482
- class="pptx-rb-gb"
67592
+ class="pptx-rb-gb gap-1.5"
67483
67593
  [disabled]="!canEdit()"
67484
67594
  [title]="'pptx.arrange.arrange' | translate"
67485
67595
  (click)="arrangeOpen.set(!arrangeOpen())"
67486
67596
  >
67487
- {{ 'pptx.arrange.arrange' | translate }}
67597
+ {{ 'pptx.arrange.arrange' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
67488
67598
  </button>
67489
67599
  @if (arrangeOpen()) {
67490
67600
  <div
@@ -67544,7 +67654,7 @@ class RibbonDrawingGroupComponent {
67544
67654
  {{ 'pptx.ribbon.shapeStyles' | translate }}
67545
67655
  </span>
67546
67656
  </div>
67547
- `, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
67657
+ `, isInline: true, dependencies: [{ kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
67548
67658
  }
67549
67659
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonDrawingGroupComponent, decorators: [{
67550
67660
  type: Component,
@@ -67553,7 +67663,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
67553
67663
  standalone: true,
67554
67664
  changeDetection: ChangeDetectionStrategy.OnPush,
67555
67665
  host: { class: 'contents' },
67556
- imports: [TranslatePipe],
67666
+ imports: [TranslatePipe, LucideChevronDown],
67557
67667
  template: `
67558
67668
  <!-- Shapes -->
67559
67669
  <div class="flex flex-col items-center gap-0.5">
@@ -67561,12 +67671,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
67561
67671
  <div class="relative">
67562
67672
  <button
67563
67673
  type="button"
67564
- class="pptx-rb-gb"
67674
+ class="pptx-rb-gb gap-1.5"
67565
67675
  [disabled]="!canEdit()"
67566
67676
  [title]="'pptx.ribbon.shapes' | translate"
67567
67677
  (click)="shapesOpen.set(!shapesOpen())"
67568
67678
  >
67569
- {{ 'pptx.ribbon.shapes' | translate }}
67679
+ {{ 'pptx.ribbon.shapes' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
67570
67680
  </button>
67571
67681
  @if (shapesOpen()) {
67572
67682
  <div
@@ -67588,12 +67698,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
67588
67698
  <div class="relative">
67589
67699
  <button
67590
67700
  type="button"
67591
- class="pptx-rb-gb"
67701
+ class="pptx-rb-gb gap-1.5"
67592
67702
  [disabled]="!canEdit()"
67593
67703
  [title]="'pptx.arrange.arrange' | translate"
67594
67704
  (click)="arrangeOpen.set(!arrangeOpen())"
67595
67705
  >
67596
- {{ 'pptx.arrange.arrange' | translate }}
67706
+ {{ 'pptx.arrange.arrange' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
67597
67707
  </button>
67598
67708
  @if (arrangeOpen()) {
67599
67709
  <div
@@ -68208,7 +68318,7 @@ class RibbonFontControlsComponent {
68208
68318
  [title]="'pptx.ribbon.growFont' | translate"
68209
68319
  (click)="stepFontSize(1)"
68210
68320
  >
68211
- A▴
68321
+ <svg lucideAArrowUp class="h-4 w-4"></svg>
68212
68322
  </button>
68213
68323
  <button
68214
68324
  type="button"
@@ -68217,7 +68327,7 @@ class RibbonFontControlsComponent {
68217
68327
  [title]="'pptx.ribbon.shrinkFont' | translate"
68218
68328
  (click)="stepFontSize(-1)"
68219
68329
  >
68220
- A▾
68330
+ <svg lucideAArrowDown class="h-4 w-4"></svg>
68221
68331
  </button>
68222
68332
  <button
68223
68333
  type="button"
@@ -68226,7 +68336,7 @@ class RibbonFontControlsComponent {
68226
68336
  [title]="'pptx.ribbon.clearFormatting' | translate"
68227
68337
  (click)="clearFormatting()"
68228
68338
  >
68229
-
68339
+ <svg lucideRemoveFormatting class="h-4 w-4"></svg>
68230
68340
  </button>
68231
68341
  </div>
68232
68342
  <div class="pptx-rb-grp">
@@ -68337,9 +68447,9 @@ class RibbonFontControlsComponent {
68337
68447
  swatchAriaKey="pptx.ribbon.highlightColourValue"
68338
68448
  (pick)="setHighlight($event)"
68339
68449
  >
68340
- <span class="font-bold">🖍</span>
68450
+ <svg lucideHighlighter class="h-3.5 w-3.5"></svg>
68341
68451
  </pptx-ribbon-color-popover>
68342
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: RibbonColorPopoverComponent, selector: "pptx-ribbon-color-popover", inputs: ["current", "presets", "disabled", "titleKey", "swatchAriaKey"], outputs: ["pick"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68452
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: RibbonColorPopoverComponent, selector: "pptx-ribbon-color-popover", inputs: ["current", "presets", "disabled", "titleKey", "swatchAriaKey"], outputs: ["pick"] }, { kind: "component", type: LucideAArrowUp, selector: "svg[lucideAArrowUp]" }, { kind: "component", type: LucideAArrowDown, selector: "svg[lucideAArrowDown]" }, { kind: "component", type: LucideRemoveFormatting, selector: "svg[lucideRemoveFormatting]" }, { kind: "component", type: LucideHighlighter, selector: "svg[lucideHighlighter]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68343
68453
  }
68344
68454
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonFontControlsComponent, decorators: [{
68345
68455
  type: Component,
@@ -68348,7 +68458,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68348
68458
  standalone: true,
68349
68459
  changeDetection: ChangeDetectionStrategy.OnPush,
68350
68460
  host: { class: 'contents' },
68351
- imports: [NgClass, TranslatePipe, RibbonColorPopoverComponent],
68461
+ imports: [
68462
+ NgClass,
68463
+ TranslatePipe,
68464
+ RibbonColorPopoverComponent,
68465
+ LucideAArrowUp,
68466
+ LucideAArrowDown,
68467
+ LucideRemoveFormatting,
68468
+ LucideHighlighter,
68469
+ ],
68352
68470
  template: `
68353
68471
  <div class="flex items-center gap-1">
68354
68472
  <select
@@ -68380,7 +68498,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68380
68498
  [title]="'pptx.ribbon.growFont' | translate"
68381
68499
  (click)="stepFontSize(1)"
68382
68500
  >
68383
- A▴
68501
+ <svg lucideAArrowUp class="h-4 w-4"></svg>
68384
68502
  </button>
68385
68503
  <button
68386
68504
  type="button"
@@ -68389,7 +68507,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68389
68507
  [title]="'pptx.ribbon.shrinkFont' | translate"
68390
68508
  (click)="stepFontSize(-1)"
68391
68509
  >
68392
- A▾
68510
+ <svg lucideAArrowDown class="h-4 w-4"></svg>
68393
68511
  </button>
68394
68512
  <button
68395
68513
  type="button"
@@ -68398,7 +68516,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68398
68516
  [title]="'pptx.ribbon.clearFormatting' | translate"
68399
68517
  (click)="clearFormatting()"
68400
68518
  >
68401
-
68519
+ <svg lucideRemoveFormatting class="h-4 w-4"></svg>
68402
68520
  </button>
68403
68521
  </div>
68404
68522
  <div class="pptx-rb-grp">
@@ -68509,7 +68627,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68509
68627
  swatchAriaKey="pptx.ribbon.highlightColourValue"
68510
68628
  (pick)="setHighlight($event)"
68511
68629
  >
68512
- <span class="font-bold">🖍</span>
68630
+ <svg lucideHighlighter class="h-3.5 w-3.5"></svg>
68513
68631
  </pptx-ribbon-color-popover>
68514
68632
  `,
68515
68633
  }]
@@ -68672,7 +68790,7 @@ class RibbonParagraphControlsComponent {
68672
68790
  [title]="'pptx.ribbon.bulletList' | translate"
68673
68791
  (click)="toggleList('bullet')"
68674
68792
  >
68675
- •≡
68793
+ <svg lucideList class="h-4 w-4"></svg>
68676
68794
  </button>
68677
68795
  <button
68678
68796
  type="button"
@@ -68682,7 +68800,7 @@ class RibbonParagraphControlsComponent {
68682
68800
  [title]="'pptx.notes.numberedList' | translate"
68683
68801
  (click)="toggleList('numbered')"
68684
68802
  >
68685
- 1.≡
68803
+ <svg lucideListOrdered class="h-4 w-4"></svg>
68686
68804
  </button>
68687
68805
  </div>
68688
68806
  <!-- Indent: outdent + indent -->
@@ -68694,7 +68812,7 @@ class RibbonParagraphControlsComponent {
68694
68812
  [title]="'pptx.notes.outdent' | translate"
68695
68813
  (click)="changeIndent(-24)"
68696
68814
  >
68697
-
68815
+ <svg lucideListIndentDecrease class="h-4 w-4"></svg>
68698
68816
  </button>
68699
68817
  <button
68700
68818
  type="button"
@@ -68703,7 +68821,7 @@ class RibbonParagraphControlsComponent {
68703
68821
  [title]="'pptx.notes.indent' | translate"
68704
68822
  (click)="changeIndent(24)"
68705
68823
  >
68706
-
68824
+ <svg lucideListIndentIncrease class="h-4 w-4"></svg>
68707
68825
  </button>
68708
68826
  </div>
68709
68827
  <!-- Alignment -->
@@ -68716,7 +68834,7 @@ class RibbonParagraphControlsComponent {
68716
68834
  [title]="'pptx.ribbon.alignLeft' | translate"
68717
68835
  (click)="setAlign('left')"
68718
68836
  >
68719
-
68837
+ <svg lucideTextAlignStart class="h-4 w-4"></svg>
68720
68838
  </button>
68721
68839
  <button
68722
68840
  type="button"
@@ -68726,7 +68844,7 @@ class RibbonParagraphControlsComponent {
68726
68844
  [title]="'pptx.ribbon.alignCenter' | translate"
68727
68845
  (click)="setAlign('center')"
68728
68846
  >
68729
-
68847
+ <svg lucideTextAlignCenter class="h-4 w-4"></svg>
68730
68848
  </button>
68731
68849
  <button
68732
68850
  type="button"
@@ -68736,7 +68854,7 @@ class RibbonParagraphControlsComponent {
68736
68854
  [title]="'pptx.ribbon.alignRight' | translate"
68737
68855
  (click)="setAlign('right')"
68738
68856
  >
68739
-
68857
+ <svg lucideTextAlignEnd class="h-4 w-4"></svg>
68740
68858
  </button>
68741
68859
  <button
68742
68860
  type="button"
@@ -68746,7 +68864,7 @@ class RibbonParagraphControlsComponent {
68746
68864
  [title]="'pptx.ribbon.justify' | translate"
68747
68865
  (click)="setAlign('justify')"
68748
68866
  >
68749
-
68867
+ <svg lucideTextAlignJustify class="h-4 w-4"></svg>
68750
68868
  </button>
68751
68869
  </div>
68752
68870
  <!-- Line Spacing -->
@@ -68784,7 +68902,7 @@ class RibbonParagraphControlsComponent {
68784
68902
  <option [value]="c" [selected]="c === curColumns()">{{ c }}</option>
68785
68903
  }
68786
68904
  </select>
68787
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68905
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucideList, selector: "svg[lucideList]" }, { kind: "component", type: LucideListOrdered, selector: "svg[lucideListOrdered]" }, { kind: "component", type: LucideListIndentDecrease, selector: "svg[lucideListIndentDecrease], svg[lucideOutdent], svg[lucideIndentDecrease]" }, { kind: "component", type: LucideListIndentIncrease, selector: "svg[lucideListIndentIncrease], svg[lucideIndent], svg[lucideIndentIncrease]" }, { kind: "component", type: LucideTextAlignStart, selector: "svg[lucideTextAlignStart], svg[lucideText], svg[lucideAlignLeft]" }, { kind: "component", type: LucideTextAlignCenter, selector: "svg[lucideTextAlignCenter], svg[lucideAlignCenter]" }, { kind: "component", type: LucideTextAlignEnd, selector: "svg[lucideTextAlignEnd], svg[lucideAlignRight]" }, { kind: "component", type: LucideTextAlignJustify, selector: "svg[lucideTextAlignJustify], svg[lucideAlignJustify]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68788
68906
  }
68789
68907
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonParagraphControlsComponent, decorators: [{
68790
68908
  type: Component,
@@ -68793,7 +68911,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68793
68911
  standalone: true,
68794
68912
  changeDetection: ChangeDetectionStrategy.OnPush,
68795
68913
  host: { class: 'contents' },
68796
- imports: [NgClass, TranslatePipe],
68914
+ imports: [
68915
+ NgClass,
68916
+ TranslatePipe,
68917
+ LucideList,
68918
+ LucideListOrdered,
68919
+ LucideListIndentDecrease,
68920
+ LucideListIndentIncrease,
68921
+ LucideTextAlignStart,
68922
+ LucideTextAlignCenter,
68923
+ LucideTextAlignEnd,
68924
+ LucideTextAlignJustify,
68925
+ ],
68797
68926
  template: `
68798
68927
  <!-- List style: bullets + numbering -->
68799
68928
  <div class="pptx-rb-grp">
@@ -68805,7 +68934,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68805
68934
  [title]="'pptx.ribbon.bulletList' | translate"
68806
68935
  (click)="toggleList('bullet')"
68807
68936
  >
68808
- •≡
68937
+ <svg lucideList class="h-4 w-4"></svg>
68809
68938
  </button>
68810
68939
  <button
68811
68940
  type="button"
@@ -68815,7 +68944,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68815
68944
  [title]="'pptx.notes.numberedList' | translate"
68816
68945
  (click)="toggleList('numbered')"
68817
68946
  >
68818
- 1.≡
68947
+ <svg lucideListOrdered class="h-4 w-4"></svg>
68819
68948
  </button>
68820
68949
  </div>
68821
68950
  <!-- Indent: outdent + indent -->
@@ -68827,7 +68956,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68827
68956
  [title]="'pptx.notes.outdent' | translate"
68828
68957
  (click)="changeIndent(-24)"
68829
68958
  >
68830
-
68959
+ <svg lucideListIndentDecrease class="h-4 w-4"></svg>
68831
68960
  </button>
68832
68961
  <button
68833
68962
  type="button"
@@ -68836,7 +68965,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68836
68965
  [title]="'pptx.notes.indent' | translate"
68837
68966
  (click)="changeIndent(24)"
68838
68967
  >
68839
-
68968
+ <svg lucideListIndentIncrease class="h-4 w-4"></svg>
68840
68969
  </button>
68841
68970
  </div>
68842
68971
  <!-- Alignment -->
@@ -68849,7 +68978,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68849
68978
  [title]="'pptx.ribbon.alignLeft' | translate"
68850
68979
  (click)="setAlign('left')"
68851
68980
  >
68852
-
68981
+ <svg lucideTextAlignStart class="h-4 w-4"></svg>
68853
68982
  </button>
68854
68983
  <button
68855
68984
  type="button"
@@ -68859,7 +68988,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68859
68988
  [title]="'pptx.ribbon.alignCenter' | translate"
68860
68989
  (click)="setAlign('center')"
68861
68990
  >
68862
-
68991
+ <svg lucideTextAlignCenter class="h-4 w-4"></svg>
68863
68992
  </button>
68864
68993
  <button
68865
68994
  type="button"
@@ -68869,7 +68998,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68869
68998
  [title]="'pptx.ribbon.alignRight' | translate"
68870
68999
  (click)="setAlign('right')"
68871
69000
  >
68872
-
69001
+ <svg lucideTextAlignEnd class="h-4 w-4"></svg>
68873
69002
  </button>
68874
69003
  <button
68875
69004
  type="button"
@@ -68879,7 +69008,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
68879
69008
  [title]="'pptx.ribbon.justify' | translate"
68880
69009
  (click)="setAlign('justify')"
68881
69010
  >
68882
-
69011
+ <svg lucideTextAlignJustify class="h-4 w-4"></svg>
68883
69012
  </button>
68884
69013
  </div>
68885
69014
  <!-- Line Spacing -->
@@ -69011,11 +69140,11 @@ class RibbonHomeSectionComponent {
69011
69140
  <div class="pptx-rb-grp">
69012
69141
  <button
69013
69142
  type="button"
69014
- class="pptx-rb-gb"
69143
+ class="pptx-rb-gb gap-1.5"
69015
69144
  [title]="'pptx.ribbon.newSlide' | translate"
69016
69145
  (click)="editor.addSlide(slideIndex())"
69017
69146
  >
69018
- {{ 'pptx.ribbon.slide' | translate }}
69147
+ <svg lucidePlus class="h-4 w-4"></svg> {{ 'pptx.ribbon.slide' | translate }}
69019
69148
  </button>
69020
69149
  <button
69021
69150
  type="button"
@@ -69091,7 +69220,7 @@ class RibbonHomeSectionComponent {
69091
69220
  {{ 'pptx.ribbon.editing' | translate }}
69092
69221
  </span>
69093
69222
  </div>
69094
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: RibbonFontControlsComponent, selector: "pptx-ribbon-font-controls", inputs: ["slideIndex", "selectedElement"] }, { kind: "component", type: RibbonParagraphControlsComponent, selector: "pptx-ribbon-paragraph-controls", inputs: ["slideIndex", "selectedElement"] }, { kind: "component", type: RibbonEditingSectionComponent, selector: "pptx-ribbon-editing-section", outputs: ["toggleFindReplace", "selectAll"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69223
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucidePlus, selector: "svg[lucidePlus]" }, { kind: "component", type: RibbonFontControlsComponent, selector: "pptx-ribbon-font-controls", inputs: ["slideIndex", "selectedElement"] }, { kind: "component", type: RibbonParagraphControlsComponent, selector: "pptx-ribbon-paragraph-controls", inputs: ["slideIndex", "selectedElement"] }, { kind: "component", type: RibbonEditingSectionComponent, selector: "pptx-ribbon-editing-section", outputs: ["toggleFindReplace", "selectAll"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69095
69224
  }
69096
69225
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonHomeSectionComponent, decorators: [{
69097
69226
  type: Component,
@@ -69103,6 +69232,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
69103
69232
  imports: [
69104
69233
  NgClass,
69105
69234
  TranslatePipe,
69235
+ LucidePlus,
69106
69236
  RibbonFontControlsComponent,
69107
69237
  RibbonParagraphControlsComponent,
69108
69238
  RibbonEditingSectionComponent,
@@ -69160,11 +69290,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
69160
69290
  <div class="pptx-rb-grp">
69161
69291
  <button
69162
69292
  type="button"
69163
- class="pptx-rb-gb"
69293
+ class="pptx-rb-gb gap-1.5"
69164
69294
  [title]="'pptx.ribbon.newSlide' | translate"
69165
69295
  (click)="editor.addSlide(slideIndex())"
69166
69296
  >
69167
- {{ 'pptx.ribbon.slide' | translate }}
69297
+ <svg lucidePlus class="h-4 w-4"></svg> {{ 'pptx.ribbon.slide' | translate }}
69168
69298
  </button>
69169
69299
  <button
69170
69300
  type="button"
@@ -69422,7 +69552,7 @@ class RibbonInsertFieldsComponent {
69422
69552
  <rect x="3" y="3" width="18" height="18" rx="2" />
69423
69553
  <path d="M13 7l4 5-4 5" />
69424
69554
  </svg>
69425
- {{ 'pptx.ribbon.action' | translate }}
69555
+ {{ 'pptx.ribbon.action' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
69426
69556
  </button>
69427
69557
  <div class="absolute left-0 top-full z-50 hidden w-44 pt-1 group-hover:block">
69428
69558
  <div class="rounded-lg border border-border bg-card py-1 shadow-2xl">
@@ -69466,7 +69596,7 @@ class RibbonInsertFieldsComponent {
69466
69596
  <path d="M4 7h16M4 12h10M4 17h12" />
69467
69597
  <circle cx="19" cy="15" r="3" />
69468
69598
  </svg>
69469
- {{ 'pptx.field.field' | translate }}
69599
+ {{ 'pptx.field.field' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
69470
69600
  </button>
69471
69601
  <div class="absolute left-0 top-full z-50 hidden w-44 pt-1 group-hover:block">
69472
69602
  <div class="rounded-lg border border-border bg-card py-1 shadow-2xl">
@@ -69553,7 +69683,7 @@ class RibbonInsertFieldsComponent {
69553
69683
  </div>
69554
69684
  </div>
69555
69685
  }
69556
- `, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69686
+ `, isInline: true, dependencies: [{ kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69557
69687
  }
69558
69688
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonInsertFieldsComponent, decorators: [{
69559
69689
  type: Component,
@@ -69562,7 +69692,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
69562
69692
  standalone: true,
69563
69693
  changeDetection: ChangeDetectionStrategy.OnPush,
69564
69694
  host: { class: 'contents' },
69565
- imports: [TranslatePipe],
69695
+ imports: [TranslatePipe, LucideChevronDown],
69566
69696
  template: `
69567
69697
  <!-- Action Buttons dropdown (hover-reveal, mirrors React/Vue) -->
69568
69698
  <div class="group relative">
@@ -69583,7 +69713,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
69583
69713
  <rect x="3" y="3" width="18" height="18" rx="2" />
69584
69714
  <path d="M13 7l4 5-4 5" />
69585
69715
  </svg>
69586
- {{ 'pptx.ribbon.action' | translate }}
69716
+ {{ 'pptx.ribbon.action' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
69587
69717
  </button>
69588
69718
  <div class="absolute left-0 top-full z-50 hidden w-44 pt-1 group-hover:block">
69589
69719
  <div class="rounded-lg border border-border bg-card py-1 shadow-2xl">
@@ -69627,7 +69757,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
69627
69757
  <path d="M4 7h16M4 12h10M4 17h12" />
69628
69758
  <circle cx="19" cy="15" r="3" />
69629
69759
  </svg>
69630
- {{ 'pptx.field.field' | translate }}
69760
+ {{ 'pptx.field.field' | translate }} <svg lucideChevronDown class="h-3 w-3"></svg>
69631
69761
  </button>
69632
69762
  <div class="absolute left-0 top-full z-50 hidden w-44 pt-1 group-hover:block">
69633
69763
  <div class="rounded-lg border border-border bg-card py-1 shadow-2xl">
@@ -69854,43 +69984,43 @@ class RibbonInsertSectionComponent {
69854
69984
  </button>
69855
69985
  <button
69856
69986
  type="button"
69857
- class="pptx-rb-gb"
69987
+ class="pptx-rb-gb gap-1.5"
69858
69988
  (click)="insertShape('rect')"
69859
69989
  [title]="'pptx.ribbon.rectangle' | translate"
69860
69990
  >
69861
- {{ 'pptx.ribbon.rect' | translate }}
69991
+ <svg lucideSquare class="h-4 w-4"></svg> {{ 'pptx.ribbon.rect' | translate }}
69862
69992
  </button>
69863
69993
  <button
69864
69994
  type="button"
69865
- class="pptx-rb-gb"
69995
+ class="pptx-rb-gb gap-1.5"
69866
69996
  (click)="insertShape('ellipse')"
69867
69997
  [title]="'pptx.ribbon.ellipse' | translate"
69868
69998
  >
69869
- {{ 'pptx.ribbon.ellipse' | translate }}
69999
+ <svg lucideCircle class="h-4 w-4"></svg> {{ 'pptx.ribbon.ellipse' | translate }}
69870
70000
  </button>
69871
70001
  <button
69872
70002
  type="button"
69873
- class="pptx-rb-gb"
70003
+ class="pptx-rb-gb gap-1.5"
69874
70004
  (click)="insertShape('line')"
69875
70005
  [title]="'pptx.ribbon.line' | translate"
69876
70006
  >
69877
- {{ 'pptx.ribbon.line' | translate }}
70007
+ <svg lucideSlash class="h-4 w-4"></svg> {{ 'pptx.ribbon.line' | translate }}
69878
70008
  </button>
69879
70009
  <button
69880
70010
  type="button"
69881
- class="pptx-rb-gb"
70011
+ class="pptx-rb-gb gap-1.5"
69882
70012
  (click)="insertImage()"
69883
70013
  [title]="'pptx.ribbon.insertImage' | translate"
69884
70014
  >
69885
- 🖼 {{ 'pptx.ribbon.image' | translate }}
70015
+ <svg lucideImage class="h-4 w-4"></svg> {{ 'pptx.ribbon.image' | translate }}
69886
70016
  </button>
69887
70017
  <button
69888
70018
  type="button"
69889
- class="pptx-rb-gl"
70019
+ class="pptx-rb-gl gap-1.5"
69890
70020
  (click)="insertMedia()"
69891
70021
  [title]="'pptx.ribbon.insertMedia' | translate"
69892
70022
  >
69893
- 🎬 {{ 'pptx.ribbon.media' | translate }}
70023
+ <svg lucideVideo class="h-4 w-4"></svg> {{ 'pptx.ribbon.media' | translate }}
69894
70024
  </button>
69895
70025
  </div>
69896
70026
  <span class="pptx-rb-sep"></span>
@@ -69898,19 +70028,19 @@ class RibbonInsertSectionComponent {
69898
70028
  <div class="pptx-rb-grp">
69899
70029
  <button
69900
70030
  type="button"
69901
- class="pptx-rb-gb"
70031
+ class="pptx-rb-gb gap-1.5"
69902
70032
  (click)="insertTable()"
69903
70033
  [title]="'pptx.ribbon.insertTable' | translate"
69904
70034
  >
69905
- {{ 'pptx.ribbon.table' | translate }}
70035
+ <svg lucideDatabase class="h-4 w-4"></svg> {{ 'pptx.ribbon.table' | translate }}
69906
70036
  </button>
69907
70037
  <button
69908
70038
  type="button"
69909
- class="pptx-rb-gb"
70039
+ class="pptx-rb-gb gap-1.5"
69910
70040
  (click)="openSmartArtDialog.emit()"
69911
70041
  [title]="'pptx.ribbon.insertSmartArt' | translate"
69912
70042
  >
69913
- {{ 'pptx.ribbon.smartArt' | translate }}
70043
+ <svg lucideLayers class="h-4 w-4"></svg> {{ 'pptx.ribbon.smartArt' | translate }}
69914
70044
  </button>
69915
70045
  <select
69916
70046
  class="pptx-rb-gl"
@@ -69924,25 +70054,50 @@ class RibbonInsertSectionComponent {
69924
70054
  </select>
69925
70055
  <button
69926
70056
  type="button"
69927
- class="pptx-rb-gb"
70057
+ class="pptx-rb-gb gap-1.5"
69928
70058
  (click)="insertChart()"
69929
70059
  [title]="'pptx.ribbon.insertChart' | translate"
69930
70060
  >
69931
- ▥ {{ 'pptx.ribbon.chart' | translate }}
70061
+ <svg
70062
+ class="h-4 w-4"
70063
+ viewBox="0 0 24 24"
70064
+ fill="none"
70065
+ stroke="currentColor"
70066
+ stroke-width="2"
70067
+ stroke-linecap="round"
70068
+ stroke-linejoin="round"
70069
+ >
70070
+ <path d="M3 3v18h18" />
70071
+ <rect x="7" y="11" width="3" height="6" />
70072
+ <rect x="12" y="7" width="3" height="10" />
70073
+ <rect x="17" y="13" width="3" height="4" />
70074
+ </svg>
70075
+ {{ 'pptx.ribbon.chart' | translate }}
69932
70076
  </button>
69933
70077
  <button
69934
70078
  type="button"
69935
- class="pptx-rb-gl"
70079
+ class="pptx-rb-gl gap-1.5"
69936
70080
  (click)="openEquationDialog.emit()"
69937
70081
  [title]="'pptx.ribbon.insertEquation' | translate"
69938
70082
  >
69939
- ∑ {{ 'pptx.ribbon.equation' | translate }}
70083
+ <svg
70084
+ class="h-4 w-4"
70085
+ viewBox="0 0 24 24"
70086
+ fill="none"
70087
+ stroke="currentColor"
70088
+ stroke-width="2"
70089
+ stroke-linecap="round"
70090
+ stroke-linejoin="round"
70091
+ >
70092
+ <path d="M4 17h6M7 14v6M14 7l4.5 10M15.5 14h5" />
70093
+ </svg>
70094
+ {{ 'pptx.ribbon.equation' | translate }}
69940
70095
  </button>
69941
70096
  </div>
69942
70097
  <span class="pptx-rb-sep"></span>
69943
70098
  <!-- Action button + Field dropdowns -->
69944
70099
  <pptx-ribbon-insert-fields [slideIndex]="slideIndex()" />
69945
- `, isInline: true, dependencies: [{ kind: "component", type: RibbonInsertFieldsComponent, selector: "pptx-ribbon-insert-fields", inputs: ["slideIndex"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
70100
+ `, isInline: true, dependencies: [{ kind: "component", type: RibbonInsertFieldsComponent, selector: "pptx-ribbon-insert-fields", inputs: ["slideIndex"] }, { kind: "component", type: LucideSquare, selector: "svg[lucideSquare]" }, { kind: "component", type: LucideCircle, selector: "svg[lucideCircle]" }, { kind: "component", type: LucideSlash, selector: "svg[lucideSlash]" }, { kind: "component", type: LucideImage, selector: "svg[lucideImage]" }, { kind: "component", type: LucideVideo, selector: "svg[lucideVideo]" }, { kind: "component", type: LucideDatabase, selector: "svg[lucideDatabase]" }, { kind: "component", type: LucideLayers, selector: "svg[lucideLayers], svg[lucideLayers3]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
69946
70101
  }
69947
70102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonInsertSectionComponent, decorators: [{
69948
70103
  type: Component,
@@ -69951,7 +70106,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
69951
70106
  standalone: true,
69952
70107
  changeDetection: ChangeDetectionStrategy.OnPush,
69953
70108
  host: { class: 'contents' },
69954
- imports: [TranslatePipe, RibbonInsertFieldsComponent],
70109
+ imports: [
70110
+ TranslatePipe,
70111
+ RibbonInsertFieldsComponent,
70112
+ LucideSquare,
70113
+ LucideCircle,
70114
+ LucideSlash,
70115
+ LucideImage,
70116
+ LucideVideo,
70117
+ LucideDatabase,
70118
+ LucideLayers,
70119
+ ],
69955
70120
  template: `
69956
70121
  <!-- Shapes group -->
69957
70122
  <div class="pptx-rb-grp">
@@ -69965,43 +70130,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
69965
70130
  </button>
69966
70131
  <button
69967
70132
  type="button"
69968
- class="pptx-rb-gb"
70133
+ class="pptx-rb-gb gap-1.5"
69969
70134
  (click)="insertShape('rect')"
69970
70135
  [title]="'pptx.ribbon.rectangle' | translate"
69971
70136
  >
69972
- {{ 'pptx.ribbon.rect' | translate }}
70137
+ <svg lucideSquare class="h-4 w-4"></svg> {{ 'pptx.ribbon.rect' | translate }}
69973
70138
  </button>
69974
70139
  <button
69975
70140
  type="button"
69976
- class="pptx-rb-gb"
70141
+ class="pptx-rb-gb gap-1.5"
69977
70142
  (click)="insertShape('ellipse')"
69978
70143
  [title]="'pptx.ribbon.ellipse' | translate"
69979
70144
  >
69980
- {{ 'pptx.ribbon.ellipse' | translate }}
70145
+ <svg lucideCircle class="h-4 w-4"></svg> {{ 'pptx.ribbon.ellipse' | translate }}
69981
70146
  </button>
69982
70147
  <button
69983
70148
  type="button"
69984
- class="pptx-rb-gb"
70149
+ class="pptx-rb-gb gap-1.5"
69985
70150
  (click)="insertShape('line')"
69986
70151
  [title]="'pptx.ribbon.line' | translate"
69987
70152
  >
69988
- {{ 'pptx.ribbon.line' | translate }}
70153
+ <svg lucideSlash class="h-4 w-4"></svg> {{ 'pptx.ribbon.line' | translate }}
69989
70154
  </button>
69990
70155
  <button
69991
70156
  type="button"
69992
- class="pptx-rb-gb"
70157
+ class="pptx-rb-gb gap-1.5"
69993
70158
  (click)="insertImage()"
69994
70159
  [title]="'pptx.ribbon.insertImage' | translate"
69995
70160
  >
69996
- 🖼 {{ 'pptx.ribbon.image' | translate }}
70161
+ <svg lucideImage class="h-4 w-4"></svg> {{ 'pptx.ribbon.image' | translate }}
69997
70162
  </button>
69998
70163
  <button
69999
70164
  type="button"
70000
- class="pptx-rb-gl"
70165
+ class="pptx-rb-gl gap-1.5"
70001
70166
  (click)="insertMedia()"
70002
70167
  [title]="'pptx.ribbon.insertMedia' | translate"
70003
70168
  >
70004
- 🎬 {{ 'pptx.ribbon.media' | translate }}
70169
+ <svg lucideVideo class="h-4 w-4"></svg> {{ 'pptx.ribbon.media' | translate }}
70005
70170
  </button>
70006
70171
  </div>
70007
70172
  <span class="pptx-rb-sep"></span>
@@ -70009,19 +70174,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70009
70174
  <div class="pptx-rb-grp">
70010
70175
  <button
70011
70176
  type="button"
70012
- class="pptx-rb-gb"
70177
+ class="pptx-rb-gb gap-1.5"
70013
70178
  (click)="insertTable()"
70014
70179
  [title]="'pptx.ribbon.insertTable' | translate"
70015
70180
  >
70016
- {{ 'pptx.ribbon.table' | translate }}
70181
+ <svg lucideDatabase class="h-4 w-4"></svg> {{ 'pptx.ribbon.table' | translate }}
70017
70182
  </button>
70018
70183
  <button
70019
70184
  type="button"
70020
- class="pptx-rb-gb"
70185
+ class="pptx-rb-gb gap-1.5"
70021
70186
  (click)="openSmartArtDialog.emit()"
70022
70187
  [title]="'pptx.ribbon.insertSmartArt' | translate"
70023
70188
  >
70024
- {{ 'pptx.ribbon.smartArt' | translate }}
70189
+ <svg lucideLayers class="h-4 w-4"></svg> {{ 'pptx.ribbon.smartArt' | translate }}
70025
70190
  </button>
70026
70191
  <select
70027
70192
  class="pptx-rb-gl"
@@ -70035,19 +70200,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70035
70200
  </select>
70036
70201
  <button
70037
70202
  type="button"
70038
- class="pptx-rb-gb"
70203
+ class="pptx-rb-gb gap-1.5"
70039
70204
  (click)="insertChart()"
70040
70205
  [title]="'pptx.ribbon.insertChart' | translate"
70041
70206
  >
70042
- ▥ {{ 'pptx.ribbon.chart' | translate }}
70207
+ <svg
70208
+ class="h-4 w-4"
70209
+ viewBox="0 0 24 24"
70210
+ fill="none"
70211
+ stroke="currentColor"
70212
+ stroke-width="2"
70213
+ stroke-linecap="round"
70214
+ stroke-linejoin="round"
70215
+ >
70216
+ <path d="M3 3v18h18" />
70217
+ <rect x="7" y="11" width="3" height="6" />
70218
+ <rect x="12" y="7" width="3" height="10" />
70219
+ <rect x="17" y="13" width="3" height="4" />
70220
+ </svg>
70221
+ {{ 'pptx.ribbon.chart' | translate }}
70043
70222
  </button>
70044
70223
  <button
70045
70224
  type="button"
70046
- class="pptx-rb-gl"
70225
+ class="pptx-rb-gl gap-1.5"
70047
70226
  (click)="openEquationDialog.emit()"
70048
70227
  [title]="'pptx.ribbon.insertEquation' | translate"
70049
70228
  >
70050
- ∑ {{ 'pptx.ribbon.equation' | translate }}
70229
+ <svg
70230
+ class="h-4 w-4"
70231
+ viewBox="0 0 24 24"
70232
+ fill="none"
70233
+ stroke="currentColor"
70234
+ stroke-width="2"
70235
+ stroke-linecap="round"
70236
+ stroke-linejoin="round"
70237
+ >
70238
+ <path d="M4 17h6M7 14v6M14 7l4.5 10M15.5 14h5" />
70239
+ </svg>
70240
+ {{ 'pptx.ribbon.equation' | translate }}
70051
70241
  </button>
70052
70242
  </div>
70053
70243
  <span class="pptx-rb-sep"></span>
@@ -70158,7 +70348,7 @@ class RibbonPrimaryRowComponent {
70158
70348
  [attr.aria-label]="'pptx.toolbar.toggleSlidesPanel' | translate"
70159
70349
  (click)="toggleSidebar.emit()"
70160
70350
  >
70161
-
70351
+ <svg lucidePanelLeft class="h-4 w-4"></svg>
70162
70352
  </button>
70163
70353
 
70164
70354
  <!-- Center spacer -->
@@ -70173,7 +70363,7 @@ class RibbonPrimaryRowComponent {
70173
70363
  [attr.aria-label]="'pptx.toolbar.comments' | translate"
70174
70364
  (click)="toggleComments.emit()"
70175
70365
  >
70176
- 💬
70366
+ <svg lucideMessageSquare class="h-3.5 w-3.5"></svg>
70177
70367
  @if (commentCount() > 0) {
70178
70368
  <span
70179
70369
  class="absolute -right-0.5 -top-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-primary text-[8px] leading-none text-white"
@@ -70190,7 +70380,7 @@ class RibbonPrimaryRowComponent {
70190
70380
  [disabled]="slideCount() === 0"
70191
70381
  (click)="present.emit()"
70192
70382
  >
70193
- {{ 'pptx.toolbar.present' | translate }}
70383
+ <svg lucidePlay class="h-3.5 w-3.5"></svg> {{ 'pptx.toolbar.present' | translate }}
70194
70384
  </button>
70195
70385
  <button
70196
70386
  type="button"
@@ -70200,7 +70390,7 @@ class RibbonPrimaryRowComponent {
70200
70390
  [attr.aria-label]="'pptx.ribbon.slideShowOptions' | translate"
70201
70391
  (click)="presentMenuOpen.set(!presentMenuOpen())"
70202
70392
  >
70203
-
70393
+ <svg lucideChevronDown class="h-3 w-3"></svg>
70204
70394
  </button>
70205
70395
  @if (presentMenuOpen()) {
70206
70396
  <div class="absolute right-0 top-full z-50 w-48 pt-1">
@@ -70240,7 +70430,7 @@ class RibbonPrimaryRowComponent {
70240
70430
  [attr.aria-label]="'pptx.ribbon.customShows' | translate"
70241
70431
  (click)="openCustomShows.emit()"
70242
70432
  >
70243
- {{ 'pptx.ribbon.show' | translate }}
70433
+ <svg lucidePlus class="h-3.5 w-3.5"></svg> {{ 'pptx.ribbon.show' | translate }}
70244
70434
  </button>
70245
70435
 
70246
70436
  <span class="mx-1 h-5 w-px self-center bg-border/50"></span>
@@ -70253,7 +70443,7 @@ class RibbonPrimaryRowComponent {
70253
70443
  [attr.aria-label]="'pptx.toolbar.toggleInspector' | translate"
70254
70444
  (click)="toggleInspector.emit()"
70255
70445
  >
70256
-
70446
+ <svg lucidePanelRight class="h-4 w-4"></svg>
70257
70447
  </button>
70258
70448
 
70259
70449
  <!-- Overflow menu -->
@@ -70266,7 +70456,7 @@ class RibbonPrimaryRowComponent {
70266
70456
  [attr.aria-label]="'pptx.ribbon.moreActions' | translate"
70267
70457
  (click)="overflowOpen.set(!overflowOpen())"
70268
70458
  >
70269
-
70459
+ <svg lucideEllipsis class="h-3.5 w-3.5"></svg>
70270
70460
  </button>
70271
70461
  @if (overflowOpen()) {
70272
70462
  <div class="absolute right-0 top-full z-50 w-52 pt-1">
@@ -70290,7 +70480,7 @@ class RibbonPrimaryRowComponent {
70290
70480
  }
70291
70481
  </div>
70292
70482
  </div>
70293
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
70483
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucidePanelLeft, selector: "svg[lucidePanelLeft], svg[lucideSidebar]" }, { kind: "component", type: LucidePanelRight, selector: "svg[lucidePanelRight]" }, { kind: "component", type: LucideMessageSquare, selector: "svg[lucideMessageSquare]" }, { kind: "component", type: LucidePlay, selector: "svg[lucidePlay]" }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "component", type: LucidePlus, selector: "svg[lucidePlus]" }, { kind: "component", type: LucideEllipsis, selector: "svg[lucideEllipsis], svg[lucideMoreHorizontal]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
70294
70484
  }
70295
70485
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonPrimaryRowComponent, decorators: [{
70296
70486
  type: Component,
@@ -70298,7 +70488,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70298
70488
  selector: 'pptx-ribbon-primary-row',
70299
70489
  standalone: true,
70300
70490
  changeDetection: ChangeDetectionStrategy.OnPush,
70301
- imports: [NgClass, TranslatePipe],
70491
+ imports: [
70492
+ NgClass,
70493
+ TranslatePipe,
70494
+ LucidePanelLeft,
70495
+ LucidePanelRight,
70496
+ LucideMessageSquare,
70497
+ LucidePlay,
70498
+ LucideChevronDown,
70499
+ LucidePlus,
70500
+ LucideEllipsis,
70501
+ ],
70302
70502
  template: `
70303
70503
  <div class="flex items-center gap-0.5 px-1.5 py-0.5">
70304
70504
  <!-- Left: slides pane toggle (undo/redo/find moved to the title bar) -->
@@ -70310,7 +70510,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70310
70510
  [attr.aria-label]="'pptx.toolbar.toggleSlidesPanel' | translate"
70311
70511
  (click)="toggleSidebar.emit()"
70312
70512
  >
70313
-
70513
+ <svg lucidePanelLeft class="h-4 w-4"></svg>
70314
70514
  </button>
70315
70515
 
70316
70516
  <!-- Center spacer -->
@@ -70325,7 +70525,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70325
70525
  [attr.aria-label]="'pptx.toolbar.comments' | translate"
70326
70526
  (click)="toggleComments.emit()"
70327
70527
  >
70328
- 💬
70528
+ <svg lucideMessageSquare class="h-3.5 w-3.5"></svg>
70329
70529
  @if (commentCount() > 0) {
70330
70530
  <span
70331
70531
  class="absolute -right-0.5 -top-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-primary text-[8px] leading-none text-white"
@@ -70342,7 +70542,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70342
70542
  [disabled]="slideCount() === 0"
70343
70543
  (click)="present.emit()"
70344
70544
  >
70345
- {{ 'pptx.toolbar.present' | translate }}
70545
+ <svg lucidePlay class="h-3.5 w-3.5"></svg> {{ 'pptx.toolbar.present' | translate }}
70346
70546
  </button>
70347
70547
  <button
70348
70548
  type="button"
@@ -70352,7 +70552,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70352
70552
  [attr.aria-label]="'pptx.ribbon.slideShowOptions' | translate"
70353
70553
  (click)="presentMenuOpen.set(!presentMenuOpen())"
70354
70554
  >
70355
-
70555
+ <svg lucideChevronDown class="h-3 w-3"></svg>
70356
70556
  </button>
70357
70557
  @if (presentMenuOpen()) {
70358
70558
  <div class="absolute right-0 top-full z-50 w-48 pt-1">
@@ -70392,7 +70592,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70392
70592
  [attr.aria-label]="'pptx.ribbon.customShows' | translate"
70393
70593
  (click)="openCustomShows.emit()"
70394
70594
  >
70395
- {{ 'pptx.ribbon.show' | translate }}
70595
+ <svg lucidePlus class="h-3.5 w-3.5"></svg> {{ 'pptx.ribbon.show' | translate }}
70396
70596
  </button>
70397
70597
 
70398
70598
  <span class="mx-1 h-5 w-px self-center bg-border/50"></span>
@@ -70405,7 +70605,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70405
70605
  [attr.aria-label]="'pptx.toolbar.toggleInspector' | translate"
70406
70606
  (click)="toggleInspector.emit()"
70407
70607
  >
70408
-
70608
+ <svg lucidePanelRight class="h-4 w-4"></svg>
70409
70609
  </button>
70410
70610
 
70411
70611
  <!-- Overflow menu -->
@@ -70418,7 +70618,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70418
70618
  [attr.aria-label]="'pptx.ribbon.moreActions' | translate"
70419
70619
  (click)="overflowOpen.set(!overflowOpen())"
70420
70620
  >
70421
-
70621
+ <svg lucideEllipsis class="h-3.5 w-3.5"></svg>
70422
70622
  </button>
70423
70623
  @if (overflowOpen()) {
70424
70624
  <div class="absolute right-0 top-full z-50 w-52 pt-1">
@@ -70737,7 +70937,7 @@ class RibbonTransitionsSectionComponent {
70737
70937
  [title]="'pptx.ribbon.previewTransition' | translate"
70738
70938
  (click)="present.emit()"
70739
70939
  >
70740
- {{ 'pptx.ribbon.preview' | translate }}
70940
+ <svg lucidePlay class="h-4 w-4"></svg> {{ 'pptx.ribbon.preview' | translate }}
70741
70941
  </button>
70742
70942
  <span class="pptx-rb-sep"></span>
70743
70943
  <!-- Preset gallery -->
@@ -70833,9 +71033,9 @@ class RibbonTransitionsSectionComponent {
70833
71033
  [title]="'pptx.ribbon.openInspectorTransitions' | translate"
70834
71034
  (click)="toggleInspector.emit()"
70835
71035
  >
70836
- {{ 'pptx.ribbon.inspector' | translate }}
71036
+ <svg lucidePanelRight class="h-4 w-4"></svg> {{ 'pptx.ribbon.inspector' | translate }}
70837
71037
  </button>
70838
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
71038
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucidePlay, selector: "svg[lucidePlay]" }, { kind: "component", type: LucidePanelRight, selector: "svg[lucidePanelRight]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
70839
71039
  }
70840
71040
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonTransitionsSectionComponent, decorators: [{
70841
71041
  type: Component,
@@ -70844,7 +71044,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70844
71044
  standalone: true,
70845
71045
  changeDetection: ChangeDetectionStrategy.OnPush,
70846
71046
  host: { class: 'contents' },
70847
- imports: [NgClass, TranslatePipe],
71047
+ imports: [NgClass, TranslatePipe, LucidePlay, LucidePanelRight],
70848
71048
  template: `
70849
71049
  <!-- Preview (fires existing presentation present path; no separate preview API yet) -->
70850
71050
  <button
@@ -70853,7 +71053,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70853
71053
  [title]="'pptx.ribbon.previewTransition' | translate"
70854
71054
  (click)="present.emit()"
70855
71055
  >
70856
- {{ 'pptx.ribbon.preview' | translate }}
71056
+ <svg lucidePlay class="h-4 w-4"></svg> {{ 'pptx.ribbon.preview' | translate }}
70857
71057
  </button>
70858
71058
  <span class="pptx-rb-sep"></span>
70859
71059
  <!-- Preset gallery -->
@@ -70949,7 +71149,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
70949
71149
  [title]="'pptx.ribbon.openInspectorTransitions' | translate"
70950
71150
  (click)="toggleInspector.emit()"
70951
71151
  >
70952
- {{ 'pptx.ribbon.inspector' | translate }}
71152
+ <svg lucidePanelRight class="h-4 w-4"></svg> {{ 'pptx.ribbon.inspector' | translate }}
70953
71153
  </button>
70954
71154
  `,
70955
71155
  }]
@@ -71431,24 +71631,28 @@ class RibbonComponent {
71431
71631
 
71432
71632
  <!-- ── Tab bar ───────────────────────────────────────────────────── -->
71433
71633
  <div class="flex items-center border-b border-border/60 px-1">
71434
- @for (t of tabs; track t.id) {
71435
- <button
71436
- type="button"
71437
- (click)="activeTab.set(t.id)"
71438
- class="relative whitespace-nowrap px-3.5 py-2 text-[12px] font-medium transition-colors"
71439
- [ngClass]="
71440
- activeTab() === t.id
71441
- ? 'text-foreground after:absolute after:-bottom-px after:left-0 after:right-0 after:h-[2.5px] after:bg-primary'
71442
- : 'text-muted-foreground hover:bg-accent/30 hover:text-foreground'
71443
- "
71444
- >
71445
- {{ t.labelKey | translate }}
71446
- </button>
71447
- }
71448
- <div class="flex-1"></div>
71634
+ <!-- Scrollable tab strip: on narrow widths the tabs scroll instead of
71635
+ clipping (mirrors React's max-md:overflow-x-auto scrollbar-none),
71636
+ while the Record/Share actions and collapse toggle stay pinned. -->
71637
+ <div class="flex min-w-0 flex-1 items-center overflow-x-auto pptx-scrollbar-none">
71638
+ @for (t of tabs; track t.id) {
71639
+ <button
71640
+ type="button"
71641
+ (click)="activeTab.set(t.id)"
71642
+ class="relative whitespace-nowrap px-3.5 py-2 text-[12px] font-medium transition-colors"
71643
+ [ngClass]="
71644
+ activeTab() === t.id
71645
+ ? 'text-foreground after:absolute after:-bottom-px after:left-0 after:right-0 after:h-[2.5px] after:bg-primary'
71646
+ : 'text-muted-foreground hover:bg-accent/30 hover:text-foreground'
71647
+ "
71648
+ >
71649
+ {{ t.labelKey | translate }}
71650
+ </button>
71651
+ }
71652
+ </div>
71449
71653
 
71450
71654
  <!-- Tab-row right actions (Record + Share), mirroring React's TabRowActions -->
71451
- <div class="flex items-center gap-1 pr-1">
71655
+ <div class="flex shrink-0 items-center gap-1 pr-1">
71452
71656
  @if (canEdit()) {
71453
71657
  <button
71454
71658
  type="button"
@@ -71477,7 +71681,7 @@ class RibbonComponent {
71477
71681
  [attr.aria-label]="'pptx.toolbar.share' | translate"
71478
71682
  (click)="share.emit()"
71479
71683
  >
71480
-
71684
+ <svg lucideShare2 class="h-3.5 w-3.5"></svg>
71481
71685
  <span>{{
71482
71686
  collabConnected()
71483
71687
  ? ('pptx.toolbar.sharingCount' | translate: { count: connectedCount() })
@@ -71488,7 +71692,7 @@ class RibbonComponent {
71488
71692
 
71489
71693
  <button
71490
71694
  type="button"
71491
- class="mr-1 rounded px-2 py-1 text-[11px] text-muted-foreground transition-colors hover:text-foreground"
71695
+ class="mr-1 shrink-0 rounded px-2 py-1 text-[11px] text-muted-foreground transition-colors hover:text-foreground"
71492
71696
  [attr.aria-pressed]="!ribbonExpanded()"
71493
71697
  [title]="
71494
71698
  (ribbonExpanded() ? 'pptx.ribbon.collapseRibbon' : 'pptx.ribbon.expandRibbon')
@@ -71496,7 +71700,11 @@ class RibbonComponent {
71496
71700
  "
71497
71701
  (click)="ribbonExpanded.set(!ribbonExpanded())"
71498
71702
  >
71499
- {{ ribbonExpanded() ? '▴' : '▾' }}
71703
+ @if (ribbonExpanded()) {
71704
+ <svg lucideChevronUp class="h-3.5 w-3.5"></svg>
71705
+ } @else {
71706
+ <svg lucideChevronDown class="h-3.5 w-3.5"></svg>
71707
+ }
71500
71708
  </button>
71501
71709
  </div>
71502
71710
 
@@ -71667,7 +71875,7 @@ class RibbonComponent {
71667
71875
  }
71668
71876
  </div>
71669
71877
  </div>
71670
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: RibbonPrimaryRowComponent, selector: "pptx-ribbon-primary-row", inputs: ["slideCount", "sidebarCollapsed", "inspectorOpen", "commentsOpen", "commentCount"], outputs: ["toggleSidebar", "toggleComments", "present", "presenter", "broadcast", "openCustomShows", "toggleInspector", "exportPng", "exportPdf", "exportGif", "exportVideo", "print", "info", "a11y", "save"] }, { kind: "component", type: RibbonFileSectionComponent, selector: "pptx-ribbon-file-section", inputs: ["slideCount", "exporting"], outputs: ["openFile", "save", "exportPng", "exportPdf", "exportGif", "exportVideo", "print", "info", "signatures", "replace", "openPassword", "openFontEmbedding", "openVersionHistory"] }, { kind: "component", type: RibbonHomeSectionComponent, selector: "pptx-ribbon-home-section", inputs: ["slideIndex", "selectedElement", "formatPainterActive", "canActivateFormatPainter"], outputs: ["toggleFormatPainter", "findReplace", "applyLayout", "resetSlide", "addSection"] }, { kind: "component", type: RibbonInsertSectionComponent, selector: "pptx-ribbon-insert-section", inputs: ["slideIndex", "newChartType"], outputs: ["openSmartArtDialog", "openEquationDialog", "chartTypeChange"] }, { kind: "component", type: RibbonFontControlsComponent, selector: "pptx-ribbon-font-controls", inputs: ["slideIndex", "selectedElement"] }, { kind: "component", type: RibbonParagraphControlsComponent, selector: "pptx-ribbon-paragraph-controls", inputs: ["slideIndex", "selectedElement"] }, { kind: "component", type: RibbonArrangeSectionComponent, selector: "pptx-ribbon-arrange-section", inputs: ["slideIndex", "formatPainterActive", "canActivateFormatPainter"], outputs: ["toggleFormatPainter"] }, { kind: "component", type: RibbonSlideshowSectionComponent, selector: "pptx-ribbon-slideshow-section", inputs: ["slideCount"], outputs: ["present", "presenter", "broadcast", "openCustomShows", "openSetUpSlideShow"] }, { kind: "component", type: RibbonReviewSectionComponent, selector: "pptx-ribbon-review-section", outputs: ["comments", "spelling", "a11y", "openCompare", "language", "link"] }, { kind: "component", type: RibbonViewSectionComponent, selector: "pptx-ribbon-view-section", inputs: ["canEdit", "showGrid", "showRulers", "showGuides", "snapToGrid", "eyedropperActive"], outputs: ["openSorter", "toggleNotes", "print", "openShortcuts", "toggleGrid", "toggleRulers", "toggleGuides", "toggleSelectionPane", "toggleSnapToGrid", "toggleEyedropper"] }, { kind: "component", type: RibbonDrawSectionComponent, selector: "pptx-ribbon-draw-section", inputs: ["activeTool", "drawingColor", "drawingWidth"], outputs: ["drawToolChange"] }, { kind: "component", type: RibbonDrawingGroupComponent, selector: "pptx-ribbon-drawing-group", inputs: ["canEdit"], outputs: ["shapeInsert", "moveLayer", "moveLayerToEdge"] }, { kind: "component", type: RibbonDesignSectionComponent, selector: "pptx-ribbon-design-section", inputs: ["themeGalleryOpen"], outputs: ["toggleThemeGallery", "info", "toggleInspector"] }, { kind: "component", type: RibbonTransitionsSectionComponent, selector: "pptx-ribbon-transitions-section", inputs: ["slideIndex", "selectedTransition", "transitionDurationSec"], outputs: ["present", "toggleInspector", "transitionChange", "durationChange"] }, { kind: "component", type: RibbonAnimationsSectionComponent, selector: "pptx-ribbon-animations-section", inputs: ["slideIndex", "selectedElement"], outputs: ["present", "toggleInspector"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
71878
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucideShare2, selector: "svg[lucideShare2]" }, { kind: "component", type: LucideChevronUp, selector: "svg[lucideChevronUp]" }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "component", type: RibbonPrimaryRowComponent, selector: "pptx-ribbon-primary-row", inputs: ["slideCount", "sidebarCollapsed", "inspectorOpen", "commentsOpen", "commentCount"], outputs: ["toggleSidebar", "toggleComments", "present", "presenter", "broadcast", "openCustomShows", "toggleInspector", "exportPng", "exportPdf", "exportGif", "exportVideo", "print", "info", "a11y", "save"] }, { kind: "component", type: RibbonFileSectionComponent, selector: "pptx-ribbon-file-section", inputs: ["slideCount", "exporting"], outputs: ["openFile", "save", "exportPng", "exportPdf", "exportGif", "exportVideo", "print", "info", "signatures", "replace", "openPassword", "openFontEmbedding", "openVersionHistory"] }, { kind: "component", type: RibbonHomeSectionComponent, selector: "pptx-ribbon-home-section", inputs: ["slideIndex", "selectedElement", "formatPainterActive", "canActivateFormatPainter"], outputs: ["toggleFormatPainter", "findReplace", "applyLayout", "resetSlide", "addSection"] }, { kind: "component", type: RibbonInsertSectionComponent, selector: "pptx-ribbon-insert-section", inputs: ["slideIndex", "newChartType"], outputs: ["openSmartArtDialog", "openEquationDialog", "chartTypeChange"] }, { kind: "component", type: RibbonFontControlsComponent, selector: "pptx-ribbon-font-controls", inputs: ["slideIndex", "selectedElement"] }, { kind: "component", type: RibbonParagraphControlsComponent, selector: "pptx-ribbon-paragraph-controls", inputs: ["slideIndex", "selectedElement"] }, { kind: "component", type: RibbonArrangeSectionComponent, selector: "pptx-ribbon-arrange-section", inputs: ["slideIndex", "formatPainterActive", "canActivateFormatPainter"], outputs: ["toggleFormatPainter"] }, { kind: "component", type: RibbonSlideshowSectionComponent, selector: "pptx-ribbon-slideshow-section", inputs: ["slideCount"], outputs: ["present", "presenter", "broadcast", "openCustomShows", "openSetUpSlideShow"] }, { kind: "component", type: RibbonReviewSectionComponent, selector: "pptx-ribbon-review-section", outputs: ["comments", "spelling", "a11y", "openCompare", "language", "link"] }, { kind: "component", type: RibbonViewSectionComponent, selector: "pptx-ribbon-view-section", inputs: ["canEdit", "showGrid", "showRulers", "showGuides", "snapToGrid", "eyedropperActive"], outputs: ["openSorter", "toggleNotes", "print", "openShortcuts", "toggleGrid", "toggleRulers", "toggleGuides", "toggleSelectionPane", "toggleSnapToGrid", "toggleEyedropper"] }, { kind: "component", type: RibbonDrawSectionComponent, selector: "pptx-ribbon-draw-section", inputs: ["activeTool", "drawingColor", "drawingWidth"], outputs: ["drawToolChange"] }, { kind: "component", type: RibbonDrawingGroupComponent, selector: "pptx-ribbon-drawing-group", inputs: ["canEdit"], outputs: ["shapeInsert", "moveLayer", "moveLayerToEdge"] }, { kind: "component", type: RibbonDesignSectionComponent, selector: "pptx-ribbon-design-section", inputs: ["themeGalleryOpen"], outputs: ["toggleThemeGallery", "info", "toggleInspector"] }, { kind: "component", type: RibbonTransitionsSectionComponent, selector: "pptx-ribbon-transitions-section", inputs: ["slideIndex", "selectedTransition", "transitionDurationSec"], outputs: ["present", "toggleInspector", "transitionChange", "durationChange"] }, { kind: "component", type: RibbonAnimationsSectionComponent, selector: "pptx-ribbon-animations-section", inputs: ["slideIndex", "selectedElement"], outputs: ["present", "toggleInspector"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
71671
71879
  }
71672
71880
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RibbonComponent, decorators: [{
71673
71881
  type: Component,
@@ -71678,6 +71886,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
71678
71886
  imports: [
71679
71887
  NgClass,
71680
71888
  TranslatePipe,
71889
+ LucideShare2,
71890
+ LucideChevronUp,
71891
+ LucideChevronDown,
71681
71892
  RibbonPrimaryRowComponent,
71682
71893
  RibbonFileSectionComponent,
71683
71894
  RibbonHomeSectionComponent,
@@ -71726,24 +71937,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
71726
71937
 
71727
71938
  <!-- ── Tab bar ───────────────────────────────────────────────────── -->
71728
71939
  <div class="flex items-center border-b border-border/60 px-1">
71729
- @for (t of tabs; track t.id) {
71730
- <button
71731
- type="button"
71732
- (click)="activeTab.set(t.id)"
71733
- class="relative whitespace-nowrap px-3.5 py-2 text-[12px] font-medium transition-colors"
71734
- [ngClass]="
71735
- activeTab() === t.id
71736
- ? 'text-foreground after:absolute after:-bottom-px after:left-0 after:right-0 after:h-[2.5px] after:bg-primary'
71737
- : 'text-muted-foreground hover:bg-accent/30 hover:text-foreground'
71738
- "
71739
- >
71740
- {{ t.labelKey | translate }}
71741
- </button>
71742
- }
71743
- <div class="flex-1"></div>
71940
+ <!-- Scrollable tab strip: on narrow widths the tabs scroll instead of
71941
+ clipping (mirrors React's max-md:overflow-x-auto scrollbar-none),
71942
+ while the Record/Share actions and collapse toggle stay pinned. -->
71943
+ <div class="flex min-w-0 flex-1 items-center overflow-x-auto pptx-scrollbar-none">
71944
+ @for (t of tabs; track t.id) {
71945
+ <button
71946
+ type="button"
71947
+ (click)="activeTab.set(t.id)"
71948
+ class="relative whitespace-nowrap px-3.5 py-2 text-[12px] font-medium transition-colors"
71949
+ [ngClass]="
71950
+ activeTab() === t.id
71951
+ ? 'text-foreground after:absolute after:-bottom-px after:left-0 after:right-0 after:h-[2.5px] after:bg-primary'
71952
+ : 'text-muted-foreground hover:bg-accent/30 hover:text-foreground'
71953
+ "
71954
+ >
71955
+ {{ t.labelKey | translate }}
71956
+ </button>
71957
+ }
71958
+ </div>
71744
71959
 
71745
71960
  <!-- Tab-row right actions (Record + Share), mirroring React's TabRowActions -->
71746
- <div class="flex items-center gap-1 pr-1">
71961
+ <div class="flex shrink-0 items-center gap-1 pr-1">
71747
71962
  @if (canEdit()) {
71748
71963
  <button
71749
71964
  type="button"
@@ -71772,7 +71987,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
71772
71987
  [attr.aria-label]="'pptx.toolbar.share' | translate"
71773
71988
  (click)="share.emit()"
71774
71989
  >
71775
-
71990
+ <svg lucideShare2 class="h-3.5 w-3.5"></svg>
71776
71991
  <span>{{
71777
71992
  collabConnected()
71778
71993
  ? ('pptx.toolbar.sharingCount' | translate: { count: connectedCount() })
@@ -71783,7 +71998,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
71783
71998
 
71784
71999
  <button
71785
72000
  type="button"
71786
- class="mr-1 rounded px-2 py-1 text-[11px] text-muted-foreground transition-colors hover:text-foreground"
72001
+ class="mr-1 shrink-0 rounded px-2 py-1 text-[11px] text-muted-foreground transition-colors hover:text-foreground"
71787
72002
  [attr.aria-pressed]="!ribbonExpanded()"
71788
72003
  [title]="
71789
72004
  (ribbonExpanded() ? 'pptx.ribbon.collapseRibbon' : 'pptx.ribbon.expandRibbon')
@@ -71791,7 +72006,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
71791
72006
  "
71792
72007
  (click)="ribbonExpanded.set(!ribbonExpanded())"
71793
72008
  >
71794
- {{ ribbonExpanded() ? '▴' : '▾' }}
72009
+ @if (ribbonExpanded()) {
72010
+ <svg lucideChevronUp class="h-3.5 w-3.5"></svg>
72011
+ } @else {
72012
+ <svg lucideChevronDown class="h-3.5 w-3.5"></svg>
72013
+ }
71795
72014
  </button>
71796
72015
  </div>
71797
72016
 
@@ -72068,7 +72287,11 @@ class SelectionPaneComponent {
72068
72287
  "
72069
72288
  (click)="toggleHidden.emit(el.id)"
72070
72289
  >
72071
- {{ el.hidden ? '🙈' : '👁' }}
72290
+ @if (el.hidden) {
72291
+ <svg lucideEyeOff class="h-3.5 w-3.5"></svg>
72292
+ } @else {
72293
+ <svg lucideEye class="h-3.5 w-3.5"></svg>
72294
+ }
72072
72295
  </button>
72073
72296
  <button
72074
72297
  type="button"
@@ -72077,7 +72300,7 @@ class SelectionPaneComponent {
72077
72300
  [title]="'pptx.arrange.bringForward' | translate"
72078
72301
  (click)="bringForward.emit(el.id)"
72079
72302
  >
72080
-
72303
+ <svg lucideArrowUp class="h-3.5 w-3.5"></svg>
72081
72304
  </button>
72082
72305
  <button
72083
72306
  type="button"
@@ -72086,7 +72309,7 @@ class SelectionPaneComponent {
72086
72309
  [title]="'pptx.arrange.sendBackward' | translate"
72087
72310
  (click)="sendBackward.emit(el.id)"
72088
72311
  >
72089
-
72312
+ <svg lucideArrowDown class="h-3.5 w-3.5"></svg>
72090
72313
  </button>
72091
72314
  </div>
72092
72315
  </li>
@@ -72096,11 +72319,11 @@ class SelectionPaneComponent {
72096
72319
  <p class="pptx-ng-sel-pane__empty">{{ 'pptx.selectionPane.empty' | translate }}</p>
72097
72320
  }
72098
72321
  </aside>
72099
- `, 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 });
72322
+ `, 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: "component", type: LucideEye, selector: "svg[lucideEye]" }, { kind: "component", type: LucideEyeOff, selector: "svg[lucideEyeOff]" }, { kind: "component", type: LucideArrowUp, selector: "svg[lucideArrowUp]" }, { kind: "component", type: LucideArrowDown, selector: "svg[lucideArrowDown]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
72100
72323
  }
72101
72324
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SelectionPaneComponent, decorators: [{
72102
72325
  type: Component,
72103
- args: [{ selector: 'pptx-selection-pane', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe], template: `
72326
+ args: [{ selector: 'pptx-selection-pane', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe, LucideEye, LucideEyeOff, LucideArrowUp, LucideArrowDown], template: `
72104
72327
  <aside class="pptx-ng-sel-pane" [attr.aria-label]="'pptx.selectionPane.title' | translate">
72105
72328
  <header class="pptx-ng-sel-pane__header">
72106
72329
  <h2 class="pptx-ng-sel-pane__title">{{ 'pptx.selectionPane.title' | translate }}</h2>
@@ -72139,7 +72362,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
72139
72362
  "
72140
72363
  (click)="toggleHidden.emit(el.id)"
72141
72364
  >
72142
- {{ el.hidden ? '🙈' : '👁' }}
72365
+ @if (el.hidden) {
72366
+ <svg lucideEyeOff class="h-3.5 w-3.5"></svg>
72367
+ } @else {
72368
+ <svg lucideEye class="h-3.5 w-3.5"></svg>
72369
+ }
72143
72370
  </button>
72144
72371
  <button
72145
72372
  type="button"
@@ -72148,7 +72375,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
72148
72375
  [title]="'pptx.arrange.bringForward' | translate"
72149
72376
  (click)="bringForward.emit(el.id)"
72150
72377
  >
72151
-
72378
+ <svg lucideArrowUp class="h-3.5 w-3.5"></svg>
72152
72379
  </button>
72153
72380
  <button
72154
72381
  type="button"
@@ -72157,7 +72384,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
72157
72384
  [title]="'pptx.arrange.sendBackward' | translate"
72158
72385
  (click)="sendBackward.emit(el.id)"
72159
72386
  >
72160
-
72387
+ <svg lucideArrowDown class="h-3.5 w-3.5"></svg>
72161
72388
  </button>
72162
72389
  </div>
72163
72390
  </li>
@@ -73256,7 +73483,7 @@ class SlidesPanelComponent {
73256
73483
  [attr.aria-label]="'pptx.arrange.duplicate' | translate"
73257
73484
  (click)="onDuplicate(i)"
73258
73485
  >
73259
-
73486
+ <svg lucideCopy class="h-3.5 w-3.5"></svg>
73260
73487
  </button>
73261
73488
  <button
73262
73489
  type="button"
@@ -73266,7 +73493,7 @@ class SlidesPanelComponent {
73266
73493
  [disabled]="editor.slides().length <= 1"
73267
73494
  (click)="onDelete(i)"
73268
73495
  >
73269
-
73496
+ <svg lucideTrash2 class="h-3.5 w-3.5"></svg>
73270
73497
  </button>
73271
73498
  <button
73272
73499
  type="button"
@@ -73276,7 +73503,7 @@ class SlidesPanelComponent {
73276
73503
  [disabled]="i === 0"
73277
73504
  (click)="onMoveUp(i)"
73278
73505
  >
73279
-
73506
+ <svg lucideArrowUp class="h-3.5 w-3.5"></svg>
73280
73507
  </button>
73281
73508
  <button
73282
73509
  type="button"
@@ -73286,7 +73513,7 @@ class SlidesPanelComponent {
73286
73513
  [disabled]="i === editor.slides().length - 1"
73287
73514
  (click)="onMoveDown(i)"
73288
73515
  >
73289
-
73516
+ <svg lucideArrowDown class="h-3.5 w-3.5"></svg>
73290
73517
  </button>
73291
73518
  </div>
73292
73519
  </div>
@@ -73301,15 +73528,24 @@ class SlidesPanelComponent {
73301
73528
  [attr.aria-label]="'pptx.sections.addSlide' | translate"
73302
73529
  (click)="onAddSlide()"
73303
73530
  >
73304
- {{ 'pptx.sections.addSlide' | translate }}
73531
+ <svg lucidePlus class="h-3.5 w-3.5"></svg> {{ 'pptx.sections.addSlide' | translate }}
73305
73532
  </button>
73306
73533
  </footer>
73307
73534
  </div>
73308
- `, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%;overflow:hidden}.pptx-ng-spanel{display:flex;flex-direction:column;height:100%;background:#1e1e1e;color:#e5e5e5;border-right:1px solid rgba(255,255,255,.08);overflow:hidden}.pptx-ng-spanel-scroll{flex:1;overflow-y:auto;padding:.5rem .375rem;display:flex;flex-direction:column;gap:.375rem}.pptx-ng-spanel-card{position:relative;border-radius:.375rem;border:2px solid transparent;background:transparent;transition:border-color .15s,background .15s}.pptx-ng-spanel-card:hover,.pptx-ng-spanel-card:focus-within{background:#ffffff0d;border-color:#ffffff26}.pptx-ng-spanel-card.is-active{border-color:#3b82f6;background:#3b82f61a}.pptx-ng-spanel-thumb-btn{display:block;width:100%;padding:.375rem .375rem 0;border:none;background:transparent;cursor:pointer;color:inherit;line-height:0}.pptx-ng-spanel-thumb-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:.25rem}.pptx-ng-spanel-clip{overflow:hidden;border-radius:2px}.pptx-ng-spanel-clip ::ng-deep .pptx-ng-canvas-wrapper{margin:0!important}.pptx-ng-spanel-num{display:block;text-align:center;font-size:.625rem;line-height:1.6;color:#ffffff73;-webkit-user-select:none;user-select:none;padding-bottom:.25rem}.pptx-ng-spanel-actions{position:absolute;top:.25rem;right:.25rem;display:flex;flex-direction:column;gap:.125rem;opacity:0;pointer-events:none;transition:opacity .12s}.pptx-ng-spanel-card:hover .pptx-ng-spanel-actions,.pptx-ng-spanel-card:focus-within .pptx-ng-spanel-actions{opacity:1;pointer-events:auto}.pptx-ng-spanel-action{display:flex;align-items:center;justify-content:center;width:1.375rem;height:1.375rem;padding:0;border:none;border-radius:.25rem;background:#1e1e1ed9;color:#e5e5e5;font-size:.6875rem;cursor:pointer;transition:background .12s;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.pptx-ng-spanel-action:hover:not([disabled]){background:#3b82f6bf}.pptx-ng-spanel-action[disabled]{opacity:.3;cursor:not-allowed}.pptx-ng-spanel-footer{flex-shrink:0;padding:.5rem .375rem;border-top:1px solid rgba(255,255,255,.08)}.pptx-ng-spanel-add{display:block;width:100%;padding:.4375rem 0;border:1px dashed rgba(255,255,255,.2);border-radius:.375rem;background:transparent;color:#fff9;font-size:.75rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.pptx-ng-spanel-add:hover{background:#3b82f626;border-color:#3b82f6;color:#e5e5e5}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SlideCanvasComponent, selector: "pptx-slide-canvas", inputs: ["slide", "canvasSize", "mediaDataUrls", "zoom", "editable", "showGrid", "showRulers", "showGuides", "snapToGrid", "snapToGuides", "autoFit", "interactive", "selectedIds", "editingId", "editTemplateMode", "templateElements", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73535
+ `, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%;overflow:hidden}.pptx-ng-spanel{display:flex;flex-direction:column;height:100%;background:#1e1e1e;color:#e5e5e5;border-right:1px solid rgba(255,255,255,.08);overflow:hidden}.pptx-ng-spanel-scroll{flex:1;overflow-y:auto;padding:.5rem .375rem;display:flex;flex-direction:column;gap:.375rem}.pptx-ng-spanel-card{position:relative;border-radius:.375rem;border:2px solid transparent;background:transparent;transition:border-color .15s,background .15s}.pptx-ng-spanel-card:hover,.pptx-ng-spanel-card:focus-within{background:#ffffff0d;border-color:#ffffff26}.pptx-ng-spanel-card.is-active{border-color:#3b82f6;background:#3b82f61a}.pptx-ng-spanel-thumb-btn{display:block;width:100%;padding:.375rem .375rem 0;border:none;background:transparent;cursor:pointer;color:inherit;line-height:0}.pptx-ng-spanel-thumb-btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:.25rem}.pptx-ng-spanel-clip{overflow:hidden;border-radius:2px}.pptx-ng-spanel-clip ::ng-deep .pptx-ng-canvas-wrapper{margin:0!important}.pptx-ng-spanel-num{display:block;text-align:center;font-size:.625rem;line-height:1.6;color:#ffffff73;-webkit-user-select:none;user-select:none;padding-bottom:.25rem}.pptx-ng-spanel-actions{position:absolute;top:.25rem;right:.25rem;display:flex;flex-direction:column;gap:.125rem;opacity:0;pointer-events:none;transition:opacity .12s}.pptx-ng-spanel-card:hover .pptx-ng-spanel-actions,.pptx-ng-spanel-card:focus-within .pptx-ng-spanel-actions{opacity:1;pointer-events:auto}.pptx-ng-spanel-action{display:flex;align-items:center;justify-content:center;width:1.375rem;height:1.375rem;padding:0;border:none;border-radius:.25rem;background:#1e1e1ed9;color:#e5e5e5;font-size:.6875rem;cursor:pointer;transition:background .12s;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.pptx-ng-spanel-action:hover:not([disabled]){background:#3b82f6bf}.pptx-ng-spanel-action[disabled]{opacity:.3;cursor:not-allowed}.pptx-ng-spanel-footer{flex-shrink:0;padding:.5rem .375rem;border-top:1px solid rgba(255,255,255,.08)}.pptx-ng-spanel-add{display:block;width:100%;padding:.4375rem 0;border:1px dashed rgba(255,255,255,.2);border-radius:.375rem;background:transparent;color:#fff9;font-size:.75rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.pptx-ng-spanel-add:hover{background:#3b82f626;border-color:#3b82f6;color:#e5e5e5}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SlideCanvasComponent, selector: "pptx-slide-canvas", inputs: ["slide", "canvasSize", "mediaDataUrls", "zoom", "editable", "showGrid", "showRulers", "showGuides", "snapToGrid", "snapToGuides", "autoFit", "interactive", "selectedIds", "editingId", "editTemplateMode", "templateElements", "drawTool", "drawColor", "drawWidth"], outputs: ["elementSelect", "backgroundClick", "transformStart", "transformUpdate", "contextMenu", "textEditStart", "textCommit", "textCancel", "textFormat", "rotateUpdate", "marqueeSelect", "inkStrokeComplete", "eraserHit", "cellCommit", "tableChange"] }, { kind: "component", type: LucideCopy, selector: "svg[lucideCopy]" }, { kind: "component", type: LucideTrash2, selector: "svg[lucideTrash2]" }, { kind: "component", type: LucideArrowUp, selector: "svg[lucideArrowUp]" }, { kind: "component", type: LucideArrowDown, selector: "svg[lucideArrowDown]" }, { kind: "component", type: LucidePlus, selector: "svg[lucidePlus]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73309
73536
  }
73310
73537
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SlidesPanelComponent, decorators: [{
73311
73538
  type: Component,
73312
- args: [{ selector: 'pptx-slides-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgStyle, SlideCanvasComponent, TranslatePipe], template: `
73539
+ args: [{ selector: 'pptx-slides-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
73540
+ NgStyle,
73541
+ SlideCanvasComponent,
73542
+ TranslatePipe,
73543
+ LucideCopy,
73544
+ LucideTrash2,
73545
+ LucideArrowUp,
73546
+ LucideArrowDown,
73547
+ LucidePlus,
73548
+ ], template: `
73313
73549
  <div class="pptx-ng-spanel">
73314
73550
  <!-- Scrollable slide list -->
73315
73551
  <div
@@ -73363,7 +73599,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
73363
73599
  [attr.aria-label]="'pptx.arrange.duplicate' | translate"
73364
73600
  (click)="onDuplicate(i)"
73365
73601
  >
73366
-
73602
+ <svg lucideCopy class="h-3.5 w-3.5"></svg>
73367
73603
  </button>
73368
73604
  <button
73369
73605
  type="button"
@@ -73373,7 +73609,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
73373
73609
  [disabled]="editor.slides().length <= 1"
73374
73610
  (click)="onDelete(i)"
73375
73611
  >
73376
-
73612
+ <svg lucideTrash2 class="h-3.5 w-3.5"></svg>
73377
73613
  </button>
73378
73614
  <button
73379
73615
  type="button"
@@ -73383,7 +73619,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
73383
73619
  [disabled]="i === 0"
73384
73620
  (click)="onMoveUp(i)"
73385
73621
  >
73386
-
73622
+ <svg lucideArrowUp class="h-3.5 w-3.5"></svg>
73387
73623
  </button>
73388
73624
  <button
73389
73625
  type="button"
@@ -73393,7 +73629,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
73393
73629
  [disabled]="i === editor.slides().length - 1"
73394
73630
  (click)="onMoveDown(i)"
73395
73631
  >
73396
-
73632
+ <svg lucideArrowDown class="h-3.5 w-3.5"></svg>
73397
73633
  </button>
73398
73634
  </div>
73399
73635
  </div>
@@ -73408,7 +73644,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
73408
73644
  [attr.aria-label]="'pptx.sections.addSlide' | translate"
73409
73645
  (click)="onAddSlide()"
73410
73646
  >
73411
- {{ 'pptx.sections.addSlide' | translate }}
73647
+ <svg lucidePlus class="h-3.5 w-3.5"></svg> {{ 'pptx.sections.addSlide' | translate }}
73412
73648
  </button>
73413
73649
  </footer>
73414
73650
  </div>
@@ -73529,7 +73765,7 @@ class StatusBarComponent {
73529
73765
  [attr.aria-label]="'pptx.statusBar.toggleNotes' | translate"
73530
73766
  (click)="toggleNotes.emit()"
73531
73767
  >
73532
- <span aria-hidden="true">🗒</span>
73768
+ <svg lucideStickyNote class="h-3 w-3"></svg>
73533
73769
  <span>{{ 'pptx.notes.title' | translate }}</span>
73534
73770
  </button>
73535
73771
 
@@ -73545,7 +73781,7 @@ class StatusBarComponent {
73545
73781
  [attr.aria-label]="'pptx.statusBar.normalView' | translate"
73546
73782
  (click)="normalView.emit()"
73547
73783
  >
73548
- <span aria-hidden="true">🖵</span>
73784
+ <svg lucideMonitor class="h-3.5 w-3.5"></svg>
73549
73785
  </button>
73550
73786
  <button
73551
73787
  type="button"
@@ -73555,7 +73791,7 @@ class StatusBarComponent {
73555
73791
  [attr.aria-label]="'pptx.statusBar.slideSorter' | translate"
73556
73792
  (click)="openSorter.emit()"
73557
73793
  >
73558
- <span aria-hidden="true">▦</span>
73794
+ <svg lucideColumns2 class="h-3.5 w-3.5"></svg>
73559
73795
  </button>
73560
73796
  <button
73561
73797
  type="button"
@@ -73566,7 +73802,7 @@ class StatusBarComponent {
73566
73802
  [attr.aria-label]="'pptx.statusBar.slideShow' | translate"
73567
73803
  (click)="slideShow.emit()"
73568
73804
  >
73569
- <span aria-hidden="true">▶</span>
73805
+ <svg lucidePresentation class="h-3.5 w-3.5"></svg>
73570
73806
  </button>
73571
73807
  </div>
73572
73808
 
@@ -73580,7 +73816,7 @@ class StatusBarComponent {
73580
73816
  [attr.aria-label]="'pptx.statusBar.zoomOut' | translate"
73581
73817
  (click)="zoomOut.emit()"
73582
73818
  >
73583
- <span aria-hidden="true">−</span>
73819
+ <svg lucideMinus class="h-3 w-3"></svg>
73584
73820
  </button>
73585
73821
  <button
73586
73822
  type="button"
@@ -73597,11 +73833,11 @@ class StatusBarComponent {
73597
73833
  [attr.aria-label]="'pptx.statusBar.zoomIn' | translate"
73598
73834
  (click)="zoomIn.emit()"
73599
73835
  >
73600
- <span aria-hidden="true">+</span>
73836
+ <svg lucidePlus class="h-3 w-3"></svg>
73601
73837
  </button>
73602
73838
  </div>
73603
73839
  </div>
73604
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73840
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucideStickyNote, selector: "svg[lucideStickyNote]" }, { kind: "component", type: LucideMonitor, selector: "svg[lucideMonitor]" }, { kind: "component", type: LucideColumns2, selector: "svg[lucideColumns2], svg[lucideColumns]" }, { kind: "component", type: LucidePresentation, selector: "svg[lucidePresentation]" }, { kind: "component", type: LucideMinus, selector: "svg[lucideMinus]" }, { kind: "component", type: LucidePlus, selector: "svg[lucidePlus]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73605
73841
  }
73606
73842
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: StatusBarComponent, decorators: [{
73607
73843
  type: Component,
@@ -73609,7 +73845,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
73609
73845
  selector: 'pptx-status-bar',
73610
73846
  standalone: true,
73611
73847
  changeDetection: ChangeDetectionStrategy.OnPush,
73612
- imports: [NgClass, TranslatePipe],
73848
+ imports: [
73849
+ NgClass,
73850
+ TranslatePipe,
73851
+ LucideStickyNote,
73852
+ LucideMonitor,
73853
+ LucideColumns2,
73854
+ LucidePresentation,
73855
+ LucideMinus,
73856
+ LucidePlus,
73857
+ ],
73613
73858
  template: `
73614
73859
  <div
73615
73860
  class="flex w-full items-center gap-1 border-t border-border bg-secondary/50 px-2 py-0.5 text-[10px] text-muted-foreground"
@@ -73644,7 +73889,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
73644
73889
  [attr.aria-label]="'pptx.statusBar.toggleNotes' | translate"
73645
73890
  (click)="toggleNotes.emit()"
73646
73891
  >
73647
- <span aria-hidden="true">🗒</span>
73892
+ <svg lucideStickyNote class="h-3 w-3"></svg>
73648
73893
  <span>{{ 'pptx.notes.title' | translate }}</span>
73649
73894
  </button>
73650
73895
 
@@ -73660,7 +73905,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
73660
73905
  [attr.aria-label]="'pptx.statusBar.normalView' | translate"
73661
73906
  (click)="normalView.emit()"
73662
73907
  >
73663
- <span aria-hidden="true">🖵</span>
73908
+ <svg lucideMonitor class="h-3.5 w-3.5"></svg>
73664
73909
  </button>
73665
73910
  <button
73666
73911
  type="button"
@@ -73670,7 +73915,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
73670
73915
  [attr.aria-label]="'pptx.statusBar.slideSorter' | translate"
73671
73916
  (click)="openSorter.emit()"
73672
73917
  >
73673
- <span aria-hidden="true">▦</span>
73918
+ <svg lucideColumns2 class="h-3.5 w-3.5"></svg>
73674
73919
  </button>
73675
73920
  <button
73676
73921
  type="button"
@@ -73681,7 +73926,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
73681
73926
  [attr.aria-label]="'pptx.statusBar.slideShow' | translate"
73682
73927
  (click)="slideShow.emit()"
73683
73928
  >
73684
- <span aria-hidden="true">▶</span>
73929
+ <svg lucidePresentation class="h-3.5 w-3.5"></svg>
73685
73930
  </button>
73686
73931
  </div>
73687
73932
 
@@ -73695,7 +73940,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
73695
73940
  [attr.aria-label]="'pptx.statusBar.zoomOut' | translate"
73696
73941
  (click)="zoomOut.emit()"
73697
73942
  >
73698
- <span aria-hidden="true">−</span>
73943
+ <svg lucideMinus class="h-3 w-3"></svg>
73699
73944
  </button>
73700
73945
  <button
73701
73946
  type="button"
@@ -73712,7 +73957,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
73712
73957
  [attr.aria-label]="'pptx.statusBar.zoomIn' | translate"
73713
73958
  (click)="zoomIn.emit()"
73714
73959
  >
73715
- <span aria-hidden="true">+</span>
73960
+ <svg lucidePlus class="h-3 w-3"></svg>
73716
73961
  </button>
73717
73962
  </div>
73718
73963
  </div>
@@ -73930,7 +74175,7 @@ class ThemeGalleryComponent {
73930
74175
  (click)="close.emit()"
73931
74176
  aria-label="Close theme gallery"
73932
74177
  >
73933
-
74178
+ <svg lucideX class="h-4 w-4"></svg>
73934
74179
  </button>
73935
74180
  </div>
73936
74181
 
@@ -73980,8 +74225,8 @@ class ThemeGalleryComponent {
73980
74225
  <span
73981
74226
  class="absolute right-1 top-1 flex h-4 w-4 items-center justify-center rounded-full bg-primary text-[10px] font-bold text-white"
73982
74227
  aria-label="Selected theme"
73983
- >✓</span
73984
- >
74228
+ ><svg lucideCheck class="h-2.5 w-2.5"></svg
74229
+ ></span>
73985
74230
  }
73986
74231
  </button>
73987
74232
  }
@@ -74002,7 +74247,7 @@ class ThemeGalleryComponent {
74002
74247
  </div>
74003
74248
  </div>
74004
74249
  }
74005
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
74250
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "component", type: LucideCheck, selector: "svg[lucideCheck]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
74006
74251
  }
74007
74252
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ThemeGalleryComponent, decorators: [{
74008
74253
  type: Component,
@@ -74010,7 +74255,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
74010
74255
  selector: 'pptx-theme-gallery',
74011
74256
  standalone: true,
74012
74257
  changeDetection: ChangeDetectionStrategy.OnPush,
74013
- imports: [NgClass],
74258
+ imports: [NgClass, LucideX, LucideCheck],
74014
74259
  template: `
74015
74260
  @if (open()) {
74016
74261
  <!-- Backdrop -->
@@ -74038,7 +74283,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
74038
74283
  (click)="close.emit()"
74039
74284
  aria-label="Close theme gallery"
74040
74285
  >
74041
-
74286
+ <svg lucideX class="h-4 w-4"></svg>
74042
74287
  </button>
74043
74288
  </div>
74044
74289
 
@@ -74088,8 +74333,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
74088
74333
  <span
74089
74334
  class="absolute right-1 top-1 flex h-4 w-4 items-center justify-center rounded-full bg-primary text-[10px] font-bold text-white"
74090
74335
  aria-label="Selected theme"
74091
- >✓</span
74092
- >
74336
+ ><svg lucideCheck class="h-2.5 w-2.5"></svg
74337
+ ></span>
74093
74338
  }
74094
74339
  </button>
74095
74340
  }
@@ -74266,7 +74511,7 @@ class TitleBarComponent {
74266
74511
  [attr.aria-label]="'pptx.titleBar.save' | translate"
74267
74512
  (click)="save.emit()"
74268
74513
  >
74269
- 💾
74514
+ <svg lucideSave class="h-3.5 w-3.5"></svg>
74270
74515
  </button>
74271
74516
  <button
74272
74517
  type="button"
@@ -74280,7 +74525,7 @@ class TitleBarComponent {
74280
74525
  [attr.aria-label]="'pptx.toolbar.undo' | translate"
74281
74526
  (click)="undo.emit()"
74282
74527
  >
74283
-
74528
+ <svg lucideUndo class="h-3.5 w-3.5"></svg>
74284
74529
  </button>
74285
74530
  <button
74286
74531
  type="button"
@@ -74294,7 +74539,7 @@ class TitleBarComponent {
74294
74539
  [attr.aria-label]="'pptx.toolbar.redo' | translate"
74295
74540
  (click)="redo.emit()"
74296
74541
  >
74297
-
74542
+ <svg lucideRedo class="h-3.5 w-3.5"></svg>
74298
74543
  </button>
74299
74544
 
74300
74545
  <div [class]="tb.separator"></div>
@@ -74319,7 +74564,9 @@ class TitleBarComponent {
74319
74564
  searchFocused() || findReplaceOpen() ? 'text-foreground bg-background' : ''
74320
74565
  "
74321
74566
  >
74322
- <span [class]="tb.searchIcon" aria-hidden="true">⌕</span>
74567
+ <span [class]="tb.searchIcon" aria-hidden="true"
74568
+ ><svg lucideSearch class="h-3.5 w-3.5"></svg
74569
+ ></span>
74323
74570
  <input
74324
74571
  type="text"
74325
74572
  [value]="searchQuery()"
@@ -74365,7 +74612,7 @@ class TitleBarComponent {
74365
74612
  class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent transition-colors"
74366
74613
  (mousedown)="openFindReplace()"
74367
74614
  >
74368
- <span aria-hidden="true">⌕</span>
74615
+ <svg lucideSearch class="h-3.5 w-3.5"></svg>
74369
74616
  <span
74370
74617
  >{{ 'pptx.titleBar.searchContent' | translate }} &ldquo;{{
74371
74618
  searchQuery()
@@ -74381,7 +74628,7 @@ class TitleBarComponent {
74381
74628
 
74382
74629
  <span [class]="tb.rightSpacer"></span>
74383
74630
  </div>
74384
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
74631
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LucideSave, selector: "svg[lucideSave]" }, { kind: "component", type: LucideUndo, selector: "svg[lucideUndo]" }, { kind: "component", type: LucideRedo, selector: "svg[lucideRedo]" }, { kind: "component", type: LucideSearch, selector: "svg[lucideSearch]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
74385
74632
  }
74386
74633
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TitleBarComponent, decorators: [{
74387
74634
  type: Component,
@@ -74389,7 +74636,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
74389
74636
  selector: 'pptx-title-bar',
74390
74637
  standalone: true,
74391
74638
  changeDetection: ChangeDetectionStrategy.OnPush,
74392
- imports: [NgClass, TranslatePipe],
74639
+ imports: [NgClass, TranslatePipe, LucideSave, LucideUndo, LucideRedo, LucideSearch],
74393
74640
  template: `
74394
74641
  <div [class]="tb.container" data-pptx-title-bar>
74395
74642
  <span [class]="tb.logo" aria-hidden="true">P</span>
@@ -74427,7 +74674,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
74427
74674
  [attr.aria-label]="'pptx.titleBar.save' | translate"
74428
74675
  (click)="save.emit()"
74429
74676
  >
74430
- 💾
74677
+ <svg lucideSave class="h-3.5 w-3.5"></svg>
74431
74678
  </button>
74432
74679
  <button
74433
74680
  type="button"
@@ -74441,7 +74688,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
74441
74688
  [attr.aria-label]="'pptx.toolbar.undo' | translate"
74442
74689
  (click)="undo.emit()"
74443
74690
  >
74444
-
74691
+ <svg lucideUndo class="h-3.5 w-3.5"></svg>
74445
74692
  </button>
74446
74693
  <button
74447
74694
  type="button"
@@ -74455,7 +74702,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
74455
74702
  [attr.aria-label]="'pptx.toolbar.redo' | translate"
74456
74703
  (click)="redo.emit()"
74457
74704
  >
74458
-
74705
+ <svg lucideRedo class="h-3.5 w-3.5"></svg>
74459
74706
  </button>
74460
74707
 
74461
74708
  <div [class]="tb.separator"></div>
@@ -74480,7 +74727,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
74480
74727
  searchFocused() || findReplaceOpen() ? 'text-foreground bg-background' : ''
74481
74728
  "
74482
74729
  >
74483
- <span [class]="tb.searchIcon" aria-hidden="true">⌕</span>
74730
+ <span [class]="tb.searchIcon" aria-hidden="true"
74731
+ ><svg lucideSearch class="h-3.5 w-3.5"></svg
74732
+ ></span>
74484
74733
  <input
74485
74734
  type="text"
74486
74735
  [value]="searchQuery()"
@@ -74526,7 +74775,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
74526
74775
  class="flex w-full items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent transition-colors"
74527
74776
  (mousedown)="openFindReplace()"
74528
74777
  >
74529
- <span aria-hidden="true">⌕</span>
74778
+ <svg lucideSearch class="h-3.5 w-3.5"></svg>
74530
74779
  <span
74531
74780
  >{{ 'pptx.titleBar.searchContent' | translate }} &ldquo;{{
74532
74781
  searchQuery()
@@ -76183,7 +76432,13 @@ class SlideDiffRowComponent {
76183
76432
  <div class="pptx-ng-diff-row" [class.is-resolved]="isResolved()">
76184
76433
  <!-- Header (toggles expand) -->
76185
76434
  <button type="button" class="pptx-ng-diff-head" (click)="toggle()">
76186
- <span class="pptx-ng-diff-chevron">{{ expanded() ? '▾' : '▸' }}</span>
76435
+ <span class="pptx-ng-diff-chevron inline-flex items-center">
76436
+ @if (expanded()) {
76437
+ <svg lucideChevronDown class="h-3.5 w-3.5"></svg>
76438
+ } @else {
76439
+ <svg lucideChevronRight class="h-3.5 w-3.5"></svg>
76440
+ }
76441
+ </span>
76187
76442
  <span class="pptx-ng-diff-slide">{{
76188
76443
  'pptx.compare.slideNumber' | translate: { number: slideNumber() }
76189
76444
  }}</span>
@@ -76218,17 +76473,18 @@ class SlideDiffRowComponent {
76218
76473
  <div class="pptx-ng-diff-actions">
76219
76474
  <button
76220
76475
  type="button"
76221
- class="pptx-ng-diff-btn is-accept"
76476
+ class="pptx-ng-diff-btn is-accept inline-flex items-center gap-1"
76222
76477
  (click)="accept.emit(diffIndex())"
76223
76478
  >
76224
- {{ 'pptx.compare.accept' | translate }}
76479
+ <svg lucideCheck class="h-3.5 w-3.5"></svg>
76480
+ {{ 'pptx.compare.accept' | translate }}
76225
76481
  </button>
76226
76482
  <button
76227
76483
  type="button"
76228
- class="pptx-ng-diff-btn is-reject"
76484
+ class="pptx-ng-diff-btn is-reject inline-flex items-center gap-1"
76229
76485
  (click)="reject.emit(diffIndex())"
76230
76486
  >
76231
- {{ 'pptx.compare.reject' | translate }}
76487
+ <svg lucideX class="h-3.5 w-3.5"></svg> {{ 'pptx.compare.reject' | translate }}
76232
76488
  </button>
76233
76489
  </div>
76234
76490
  }
@@ -76236,16 +76492,30 @@ class SlideDiffRowComponent {
76236
76492
  }
76237
76493
  </div>
76238
76494
  }
76239
- `, isInline: true, styles: [".pptx-ng-diff-row{border:1px solid var(--pptx-border, #374151);border-radius:.5rem;background:var(--pptx-background, #030712)}.pptx-ng-diff-row.is-resolved{opacity:.6;background:var(--pptx-card, #111827)}.pptx-ng-diff-head{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;text-align:left;border:none;background:transparent;color:var(--pptx-foreground, #f3f4f6);cursor:pointer}.pptx-ng-diff-chevron{flex-shrink:0;color:var(--pptx-muted-foreground, #9ca3af);font-size:.75rem}.pptx-ng-diff-slide{font-size:.75rem}.pptx-ng-diff-pill{border-radius:9999px;padding:.0625rem .5rem;font-size:.625rem;font-weight:500;color:var(--pptx-muted-foreground, #9ca3af);background:#6b728033}.pptx-ng-diff-pill[data-status=added]{color:#4ade80;background:#14532d4d}.pptx-ng-diff-pill[data-status=removed]{color:#f87171;background:#7f1d1d4d}.pptx-ng-diff-pill[data-status=changed]{color:#fbbf24;background:#78350f4d}.pptx-ng-diff-count{font-size:.625rem;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-diff-spacer{flex:1}.pptx-ng-diff-tag{font-size:.625rem;font-weight:500;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-diff-tag.is-accepted{color:#4ade80}.pptx-ng-diff-body{display:flex;flex-direction:column;gap:.5rem;padding:0 .75rem .75rem}.pptx-ng-diff-actions{display:flex;gap:.5rem;padding-top:.25rem}.pptx-ng-diff-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;border:none;border-radius:.25rem;font-size:.6875rem;cursor:pointer}.pptx-ng-diff-btn.is-accept{background:#15803dcc;color:#f0fdf4}.pptx-ng-diff-btn.is-accept:hover{background:#16a34a}.pptx-ng-diff-btn.is-reject{background:var(--pptx-card, #111827);color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-diff-btn.is-reject:hover{filter:brightness(1.2)}\n"], dependencies: [{ kind: "component", type: SlideDiffThumbnailsComponent, selector: "pptx-slide-diff-thumbnails", inputs: ["diff", "canvasSize", "mediaDataUrls"] }, { kind: "component", type: SlideDiffChangesComponent, selector: "pptx-slide-diff-changes", inputs: ["changes"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
76495
+ `, isInline: true, styles: [".pptx-ng-diff-row{border:1px solid var(--pptx-border, #374151);border-radius:.5rem;background:var(--pptx-background, #030712)}.pptx-ng-diff-row.is-resolved{opacity:.6;background:var(--pptx-card, #111827)}.pptx-ng-diff-head{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;text-align:left;border:none;background:transparent;color:var(--pptx-foreground, #f3f4f6);cursor:pointer}.pptx-ng-diff-chevron{flex-shrink:0;color:var(--pptx-muted-foreground, #9ca3af);font-size:.75rem}.pptx-ng-diff-slide{font-size:.75rem}.pptx-ng-diff-pill{border-radius:9999px;padding:.0625rem .5rem;font-size:.625rem;font-weight:500;color:var(--pptx-muted-foreground, #9ca3af);background:#6b728033}.pptx-ng-diff-pill[data-status=added]{color:#4ade80;background:#14532d4d}.pptx-ng-diff-pill[data-status=removed]{color:#f87171;background:#7f1d1d4d}.pptx-ng-diff-pill[data-status=changed]{color:#fbbf24;background:#78350f4d}.pptx-ng-diff-count{font-size:.625rem;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-diff-spacer{flex:1}.pptx-ng-diff-tag{font-size:.625rem;font-weight:500;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-diff-tag.is-accepted{color:#4ade80}.pptx-ng-diff-body{display:flex;flex-direction:column;gap:.5rem;padding:0 .75rem .75rem}.pptx-ng-diff-actions{display:flex;gap:.5rem;padding-top:.25rem}.pptx-ng-diff-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .625rem;border:none;border-radius:.25rem;font-size:.6875rem;cursor:pointer}.pptx-ng-diff-btn.is-accept{background:#15803dcc;color:#f0fdf4}.pptx-ng-diff-btn.is-accept:hover{background:#16a34a}.pptx-ng-diff-btn.is-reject{background:var(--pptx-card, #111827);color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-diff-btn.is-reject:hover{filter:brightness(1.2)}\n"], dependencies: [{ kind: "component", type: SlideDiffThumbnailsComponent, selector: "pptx-slide-diff-thumbnails", inputs: ["diff", "canvasSize", "mediaDataUrls"] }, { kind: "component", type: SlideDiffChangesComponent, selector: "pptx-slide-diff-changes", inputs: ["changes"] }, { kind: "component", type: LucideChevronDown, selector: "svg[lucideChevronDown]" }, { kind: "component", type: LucideChevronRight, selector: "svg[lucideChevronRight]" }, { kind: "component", type: LucideCheck, selector: "svg[lucideCheck]" }, { kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
76240
76496
  }
76241
76497
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SlideDiffRowComponent, decorators: [{
76242
76498
  type: Component,
76243
- args: [{ selector: 'pptx-slide-diff-row', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [SlideDiffThumbnailsComponent, SlideDiffChangesComponent, TranslatePipe], template: `
76499
+ args: [{ selector: 'pptx-slide-diff-row', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
76500
+ SlideDiffThumbnailsComponent,
76501
+ SlideDiffChangesComponent,
76502
+ TranslatePipe,
76503
+ LucideChevronDown,
76504
+ LucideChevronRight,
76505
+ LucideCheck,
76506
+ LucideX,
76507
+ ], template: `
76244
76508
  @if (diff().status !== 'unchanged') {
76245
76509
  <div class="pptx-ng-diff-row" [class.is-resolved]="isResolved()">
76246
76510
  <!-- Header (toggles expand) -->
76247
76511
  <button type="button" class="pptx-ng-diff-head" (click)="toggle()">
76248
- <span class="pptx-ng-diff-chevron">{{ expanded() ? '▾' : '▸' }}</span>
76512
+ <span class="pptx-ng-diff-chevron inline-flex items-center">
76513
+ @if (expanded()) {
76514
+ <svg lucideChevronDown class="h-3.5 w-3.5"></svg>
76515
+ } @else {
76516
+ <svg lucideChevronRight class="h-3.5 w-3.5"></svg>
76517
+ }
76518
+ </span>
76249
76519
  <span class="pptx-ng-diff-slide">{{
76250
76520
  'pptx.compare.slideNumber' | translate: { number: slideNumber() }
76251
76521
  }}</span>
@@ -76280,17 +76550,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
76280
76550
  <div class="pptx-ng-diff-actions">
76281
76551
  <button
76282
76552
  type="button"
76283
- class="pptx-ng-diff-btn is-accept"
76553
+ class="pptx-ng-diff-btn is-accept inline-flex items-center gap-1"
76284
76554
  (click)="accept.emit(diffIndex())"
76285
76555
  >
76286
- {{ 'pptx.compare.accept' | translate }}
76556
+ <svg lucideCheck class="h-3.5 w-3.5"></svg>
76557
+ {{ 'pptx.compare.accept' | translate }}
76287
76558
  </button>
76288
76559
  <button
76289
76560
  type="button"
76290
- class="pptx-ng-diff-btn is-reject"
76561
+ class="pptx-ng-diff-btn is-reject inline-flex items-center gap-1"
76291
76562
  (click)="reject.emit(diffIndex())"
76292
76563
  >
76293
- {{ 'pptx.compare.reject' | translate }}
76564
+ <svg lucideX class="h-3.5 w-3.5"></svg> {{ 'pptx.compare.reject' | translate }}
76294
76565
  </button>
76295
76566
  </div>
76296
76567
  }
@@ -76402,15 +76673,19 @@ class ComparePanelComponent {
76402
76673
  [attr.aria-label]="'pptx.compare.closePanel' | translate"
76403
76674
  (click)="close.emit()"
76404
76675
  >
76405
-
76676
+ <svg lucideX class="h-4 w-4"></svg>
76406
76677
  </button>
76407
76678
  </div>
76408
76679
 
76409
76680
  <!-- Accept all -->
76410
76681
  @if (nonTrivialCount() > 0) {
76411
76682
  <div class="pptx-ng-compare-acceptall">
76412
- <button type="button" class="pptx-ng-compare-acceptall-btn" (click)="handleAcceptAll()">
76413
- ✓ {{ 'pptx.compare.acceptAll' | translate }}
76683
+ <button
76684
+ type="button"
76685
+ class="pptx-ng-compare-acceptall-btn inline-flex items-center gap-1"
76686
+ (click)="handleAcceptAll()"
76687
+ >
76688
+ <svg lucideCheck class="h-3.5 w-3.5"></svg> {{ 'pptx.compare.acceptAll' | translate }}
76414
76689
  </button>
76415
76690
  </div>
76416
76691
  }
@@ -76436,11 +76711,11 @@ class ComparePanelComponent {
76436
76711
  </div>
76437
76712
  </div>
76438
76713
  }
76439
- `, isInline: true, styles: [".pptx-ng-compare{position:fixed;inset-block:0;right:0;z-index:50;display:flex;flex-direction:column;width:440px;max-width:100%;border-left:1px solid var(--pptx-border, #374151);background:var(--pptx-popover, #0b1220);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:-12px 0 40px #00000080}.pptx-ng-compare-head{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--pptx-border, #374151)}.pptx-ng-compare-title{margin:0;font-size:.875rem;font-weight:500;color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-compare-summary{margin:.125rem 0 0;font-size:.6875rem;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-compare-close{padding:.375rem;border:none;border-radius:.25rem;background:transparent;color:var(--pptx-muted-foreground, #9ca3af);cursor:pointer;transition:background .15s ease}.pptx-ng-compare-close:hover{background:var(--pptx-muted, #1f2937);color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-compare-acceptall{padding:.5rem 1rem;border-bottom:1px solid var(--pptx-border, #374151)}.pptx-ng-compare-acceptall-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:none;border-radius:.25rem;background:#15803dcc;color:#f0fdf4;font-size:.75rem;cursor:pointer;transition:background .15s ease}.pptx-ng-compare-acceptall-btn:hover{background:#16a34a}.pptx-ng-compare-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:.75rem}.pptx-ng-compare-empty{padding:2rem 0;text-align:center;font-size:.75rem;color:var(--pptx-muted-foreground, #9ca3af)}\n"], dependencies: [{ kind: "component", type: SlideDiffRowComponent, selector: "pptx-slide-diff-row", inputs: ["diff", "diffIndex", "canvasSize", "mediaDataUrls", "accepted", "rejected"], outputs: ["accept", "reject"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
76714
+ `, isInline: true, styles: [".pptx-ng-compare{position:fixed;inset-block:0;right:0;z-index:50;display:flex;flex-direction:column;width:440px;max-width:100%;border-left:1px solid var(--pptx-border, #374151);background:var(--pptx-popover, #0b1220);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:-12px 0 40px #00000080}.pptx-ng-compare-head{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--pptx-border, #374151)}.pptx-ng-compare-title{margin:0;font-size:.875rem;font-weight:500;color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-compare-summary{margin:.125rem 0 0;font-size:.6875rem;color:var(--pptx-muted-foreground, #9ca3af)}.pptx-ng-compare-close{padding:.375rem;border:none;border-radius:.25rem;background:transparent;color:var(--pptx-muted-foreground, #9ca3af);cursor:pointer;transition:background .15s ease}.pptx-ng-compare-close:hover{background:var(--pptx-muted, #1f2937);color:var(--pptx-foreground, #f3f4f6)}.pptx-ng-compare-acceptall{padding:.5rem 1rem;border-bottom:1px solid var(--pptx-border, #374151)}.pptx-ng-compare-acceptall-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:none;border-radius:.25rem;background:#15803dcc;color:#f0fdf4;font-size:.75rem;cursor:pointer;transition:background .15s ease}.pptx-ng-compare-acceptall-btn:hover{background:#16a34a}.pptx-ng-compare-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:.75rem}.pptx-ng-compare-empty{padding:2rem 0;text-align:center;font-size:.75rem;color:var(--pptx-muted-foreground, #9ca3af)}\n"], dependencies: [{ kind: "component", type: SlideDiffRowComponent, selector: "pptx-slide-diff-row", inputs: ["diff", "diffIndex", "canvasSize", "mediaDataUrls", "accepted", "rejected"], outputs: ["accept", "reject"] }, { kind: "component", type: LucideCheck, selector: "svg[lucideCheck]" }, { kind: "component", type: LucideX, selector: "svg[lucideX]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
76440
76715
  }
76441
76716
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ComparePanelComponent, decorators: [{
76442
76717
  type: Component,
76443
- args: [{ selector: 'pptx-compare-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [SlideDiffRowComponent, TranslatePipe], template: `
76718
+ args: [{ selector: 'pptx-compare-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [SlideDiffRowComponent, TranslatePipe, LucideCheck, LucideX], template: `
76444
76719
  @if (open() && compareResult(); as result) {
76445
76720
  <div class="pptx-ng-compare">
76446
76721
  <!-- Header -->
@@ -76466,15 +76741,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
76466
76741
  [attr.aria-label]="'pptx.compare.closePanel' | translate"
76467
76742
  (click)="close.emit()"
76468
76743
  >
76469
-
76744
+ <svg lucideX class="h-4 w-4"></svg>
76470
76745
  </button>
76471
76746
  </div>
76472
76747
 
76473
76748
  <!-- Accept all -->
76474
76749
  @if (nonTrivialCount() > 0) {
76475
76750
  <div class="pptx-ng-compare-acceptall">
76476
- <button type="button" class="pptx-ng-compare-acceptall-btn" (click)="handleAcceptAll()">
76477
- ✓ {{ 'pptx.compare.acceptAll' | translate }}
76751
+ <button
76752
+ type="button"
76753
+ class="pptx-ng-compare-acceptall-btn inline-flex items-center gap-1"
76754
+ (click)="handleAcceptAll()"
76755
+ >
76756
+ <svg lucideCheck class="h-3.5 w-3.5"></svg> {{ 'pptx.compare.acceptAll' | translate }}
76478
76757
  </button>
76479
76758
  </div>
76480
76759
  }