@propbinder/mobile-design 0.2.10 → 0.2.12

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.
@@ -7,12 +7,13 @@ import { Router, NavigationEnd } from '@angular/router';
7
7
  import * as i1 from '@ionic/angular/standalone';
8
8
  import { IonHeader, IonToolbar, IonTitle, IonContent, IonButtons, ModalController, Platform, IonRefresher, IonRefresherContent, IonPopover, IonTabBar, IonTabButton, IonLabel, IonTabs, IonTab, IonSpinner, IonInfiniteScroll, IonInfiniteScrollContent, IonButton } from '@ionic/angular/standalone';
9
9
  import { ImpactStyle, Haptics } from '@capacitor/haptics';
10
- import { DsIconButtonComponent, DsIconComponent, DsButtonComponent, DsAvatarComponent, DsShapeIndicatorComponent, DsTextareaComponent, DsBadgeComponent } from '@propbinder/design-system';
10
+ import { DsIconButtonComponent, DsIconComponent, DsButtonComponent, DsAvatarComponent, DsShapeIndicatorComponent, DsTextareaComponent, DsTileComponent, DsTileSectionComponent, DsBadgeComponent } from '@propbinder/design-system';
11
11
  import { StatusBar } from '@capacitor/status-bar';
12
12
  import * as i1$1 from '@angular/forms';
13
13
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
14
14
  import { Keyboard } from '@capacitor/keyboard';
15
15
  import { Camera, CameraSource, CameraResultType } from '@capacitor/camera';
16
+ import { Subject } from 'rxjs';
16
17
  import { createAnimation } from '@ionic/core';
17
18
  import { filter } from 'rxjs/operators';
18
19
  import { Share } from '@capacitor/share';
@@ -20,6 +21,7 @@ import Swiper from 'swiper';
20
21
  import { Filesystem, Directory } from '@capacitor/filesystem';
21
22
  import { Browser } from '@capacitor/browser';
22
23
  import { Capacitor } from '@capacitor/core';
24
+ import { Pagination } from 'swiper/modules';
23
25
 
24
26
  const DEFAULT_CONFIG = {
25
27
  logoUrl: '/Assets/logos/propbinder-logomark.svg',
@@ -1077,17 +1079,17 @@ class DsMobileActionListItemComponent {
1077
1079
  [enableLongPress]="false"
1078
1080
  [showDivider]="showDivider()"
1079
1081
  [disabled]="disabled()"
1080
- (itemClick)="itemClick.emit()">
1081
-
1082
+ (itemClick)="itemClick.emit()"
1083
+ >
1082
1084
  <div class="action-icon-wrapper" content-leading>
1083
1085
  <ng-content select="[action-icon]" />
1084
1086
  </div>
1085
-
1087
+
1086
1088
  <div content-trailing>
1087
1089
  <ng-content select="[content-trailing]" />
1088
1090
  </div>
1089
1091
  </ds-mobile-list-item>
1090
- `, isInline: true, styles: [":host ::ng-deep ds-mobile-list-item .list-item-inner{align-items:center}:host ::ng-deep ds-mobile-list-item .content-leading{align-items:center;justify-content:center}:host ::ng-deep .action-icon-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}:host ::ng-deep ds-mobile-list-item .content-main{gap:0;justify-content:center}\n"], dependencies: [{ kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
1092
+ `, isInline: true, styles: [":host ::ng-deep ds-mobile-list-item .list-item-inner{align-items:center}:host ::ng-deep ds-mobile-list-item .content-leading{align-items:center;justify-content:center}:host ::ng-deep .action-icon-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}:host ::ng-deep ds-mobile-list-item .content-main{gap:0;justify-content:center}:host{outline:none;--background-focused: transparent;--background-activated: transparent;-webkit-tap-highlight-color:transparent}:host ::ng-deep ds-mobile-list-item{outline:none}\n"], dependencies: [{ kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
1091
1093
  }
1092
1094
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileActionListItemComponent, decorators: [{
1093
1095
  type: Component,
@@ -1098,17 +1100,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
1098
1100
  [enableLongPress]="false"
1099
1101
  [showDivider]="showDivider()"
1100
1102
  [disabled]="disabled()"
1101
- (itemClick)="itemClick.emit()">
1102
-
1103
+ (itemClick)="itemClick.emit()"
1104
+ >
1103
1105
  <div class="action-icon-wrapper" content-leading>
1104
1106
  <ng-content select="[action-icon]" />
1105
1107
  </div>
1106
-
1108
+
1107
1109
  <div content-trailing>
1108
1110
  <ng-content select="[content-trailing]" />
1109
1111
  </div>
1110
1112
  </ds-mobile-list-item>
1111
- `, styles: [":host ::ng-deep ds-mobile-list-item .list-item-inner{align-items:center}:host ::ng-deep ds-mobile-list-item .content-leading{align-items:center;justify-content:center}:host ::ng-deep .action-icon-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}:host ::ng-deep ds-mobile-list-item .content-main{gap:0;justify-content:center}\n"] }]
1113
+ `, styles: [":host ::ng-deep ds-mobile-list-item .list-item-inner{align-items:center}:host ::ng-deep ds-mobile-list-item .content-leading{align-items:center;justify-content:center}:host ::ng-deep .action-icon-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}:host ::ng-deep ds-mobile-list-item .content-main{gap:0;justify-content:center}:host{outline:none;--background-focused: transparent;--background-activated: transparent;-webkit-tap-highlight-color:transparent}:host ::ng-deep ds-mobile-list-item{outline:none}\n"] }]
1112
1114
  }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], showDivider: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDivider", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }] } });
1113
1115
 
1114
1116
  /**
@@ -1224,15 +1226,15 @@ class DsMobileActionsBottomSheetComponent {
1224
1226
  action: 'edit',
1225
1227
  title: 'Rediger',
1226
1228
  icon: 'remixEditLine',
1227
- destructive: false
1229
+ destructive: false,
1228
1230
  },
1229
1231
  {
1230
1232
  action: 'delete',
1231
1233
  title: 'Slet',
1232
1234
  icon: 'remixDeleteBinLine',
1233
- destructive: true
1234
- }
1235
- ]
1235
+ destructive: true,
1236
+ },
1237
+ ],
1236
1238
  },
1237
1239
  {
1238
1240
  actions: [
@@ -1240,16 +1242,16 @@ class DsMobileActionsBottomSheetComponent {
1240
1242
  action: 'like',
1241
1243
  title: 'Synes om',
1242
1244
  icon: 'remixHeart3Line',
1243
- destructive: false
1245
+ destructive: false,
1244
1246
  },
1245
1247
  {
1246
1248
  action: 'reply',
1247
1249
  title: 'Svar',
1248
1250
  icon: 'remixReplyLine',
1249
- destructive: false
1250
- }
1251
- ]
1252
- }
1251
+ destructive: false,
1252
+ },
1253
+ ],
1254
+ },
1253
1255
  ];
1254
1256
  }
1255
1257
  else {
@@ -1261,16 +1263,16 @@ class DsMobileActionsBottomSheetComponent {
1261
1263
  action: 'like',
1262
1264
  title: 'Synes om',
1263
1265
  icon: 'remixHeart3Line',
1264
- destructive: false
1266
+ destructive: false,
1265
1267
  },
1266
1268
  {
1267
1269
  action: 'reply',
1268
1270
  title: 'Svar',
1269
1271
  icon: 'remixReplyLine',
1270
- destructive: false
1271
- }
1272
- ]
1273
- }
1272
+ destructive: false,
1273
+ },
1274
+ ],
1275
+ },
1274
1276
  ];
1275
1277
  }
1276
1278
  }, ...(ngDevMode ? [{ debugName: "actionGroups" }] : []));
@@ -1289,64 +1291,73 @@ class DsMobileActionsBottomSheetComponent {
1289
1291
  <!-- Actions List -->
1290
1292
  <div class="actions-list">
1291
1293
  @for (group of actionGroups(); track $index; let isLast = $last) {
1292
- <!-- Action Group -->
1293
- <div class="action-group">
1294
- @for (actionItem of group.actions; track actionItem.action; let isLastInGroup = $last) {
1295
- <ds-mobile-action-list-item
1296
- [title]="actionItem.title"
1297
- [showDivider]="!isLastInGroup"
1298
- [class.destructive]="actionItem.destructive"
1299
- (itemClick)="selectAction(actionItem.action)">
1300
- <ds-icon
1301
- action-icon
1302
- [name]="actionItem.icon"
1303
- size="20px"
1304
- [class.destructive-icon]="actionItem.destructive" />
1305
- </ds-mobile-action-list-item>
1306
- }
1307
- </div>
1308
-
1309
- <!-- Full-width divider between groups -->
1310
- @if (!isLast) {
1311
- <div class="action-group-divider"></div>
1294
+ <!-- Action Group -->
1295
+ <div class="action-group">
1296
+ @for (actionItem of group.actions; track actionItem.action; let
1297
+ isLastInGroup = $last) {
1298
+ <ds-mobile-action-list-item
1299
+ [title]="actionItem.title"
1300
+ [showDivider]="!isLastInGroup"
1301
+ [class.destructive]="actionItem.destructive"
1302
+ (itemClick)="selectAction(actionItem.action)"
1303
+ >
1304
+ <ds-icon
1305
+ action-icon
1306
+ [name]="actionItem.icon"
1307
+ size="20px"
1308
+ [class.destructive-icon]="actionItem.destructive"
1309
+ />
1310
+ </ds-mobile-action-list-item>
1312
1311
  }
1313
- }
1312
+ </div>
1313
+
1314
+ <!-- Full-width divider between groups -->
1315
+ @if (!isLast) {
1316
+ <div class="action-group-divider"></div>
1317
+ } }
1314
1318
  </div>
1315
1319
  </ds-mobile-bottom-sheet-wrapper>
1316
- `, isInline: true, styles: [":host{display:block}.actions-list{display:flex;flex-direction:column;padding-top:16px}.action-group{display:flex;flex-direction:column;padding:0 16px}::ng-deep ds-mobile-action-list-item ds-mobile-list-item{--color-background-primary: transparent;--color-background-neutral-primary-hover: var(--color-background-neutral-secondary, #f5f5f5)}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .list-item-inner:before{z-index:0!important}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-leading,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-main,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-trailing{position:relative;z-index:1}ds-mobile-action-list-item:last-of-type{--divider-display: none}ds-mobile-action-list-item.destructive{--text-color-default-primary: var(--color-error-base, #ef4444)}.destructive-icon{color:var(--color-error-base, #ef4444)}.action-group-divider{height:1px;background:var(--color-border-subtle, #e5e5e5);margin:8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsMobileActionListItemComponent, selector: "ds-mobile-action-list-item", inputs: ["title", "showDivider", "disabled"], outputs: ["itemClick"] }, { kind: "component", type: DsMobileBottomSheetWrapperComponent, selector: "ds-mobile-bottom-sheet-wrapper" }] });
1320
+ `, isInline: true, styles: [":host{display:block;height:auto}.actions-list{display:flex;flex-direction:column;padding-top:16px}.action-group{display:flex;flex-direction:column;padding:0 16px}::ng-deep ds-mobile-action-list-item ds-mobile-list-item{--color-background-primary: transparent;--color-background-neutral-primary-hover: var( --color-background-neutral-secondary, #f5f5f5 )}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .list-item-inner:before{z-index:0!important}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-leading,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-main,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-trailing{position:relative;z-index:1}ds-mobile-action-list-item:last-of-type{--divider-display: none}ds-mobile-action-list-item.destructive{--text-color-default-primary: var(--color-error-base, #ef4444)}.destructive-icon{color:var(--color-error-base, #ef4444)}.action-group-divider{height:1px;background:var(--color-border-subtle, #e5e5e5);margin:8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsMobileActionListItemComponent, selector: "ds-mobile-action-list-item", inputs: ["title", "showDivider", "disabled"], outputs: ["itemClick"] }, { kind: "component", type: DsMobileBottomSheetWrapperComponent, selector: "ds-mobile-bottom-sheet-wrapper" }] });
1317
1321
  }
1318
1322
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileActionsBottomSheetComponent, decorators: [{
1319
1323
  type: Component,
1320
- args: [{ selector: 'ds-mobile-actions-bottom-sheet', standalone: true, imports: [CommonModule, DsIconComponent, DsMobileActionListItemComponent, DsMobileBottomSheetWrapperComponent], template: `
1324
+ args: [{ selector: 'ds-mobile-actions-bottom-sheet', standalone: true, imports: [
1325
+ CommonModule,
1326
+ DsIconComponent,
1327
+ DsMobileActionListItemComponent,
1328
+ DsMobileBottomSheetWrapperComponent,
1329
+ ], template: `
1321
1330
  <ds-mobile-bottom-sheet-wrapper>
1322
1331
  <!-- Actions List -->
1323
1332
  <div class="actions-list">
1324
1333
  @for (group of actionGroups(); track $index; let isLast = $last) {
1325
- <!-- Action Group -->
1326
- <div class="action-group">
1327
- @for (actionItem of group.actions; track actionItem.action; let isLastInGroup = $last) {
1328
- <ds-mobile-action-list-item
1329
- [title]="actionItem.title"
1330
- [showDivider]="!isLastInGroup"
1331
- [class.destructive]="actionItem.destructive"
1332
- (itemClick)="selectAction(actionItem.action)">
1333
- <ds-icon
1334
- action-icon
1335
- [name]="actionItem.icon"
1336
- size="20px"
1337
- [class.destructive-icon]="actionItem.destructive" />
1338
- </ds-mobile-action-list-item>
1339
- }
1340
- </div>
1341
-
1342
- <!-- Full-width divider between groups -->
1343
- @if (!isLast) {
1344
- <div class="action-group-divider"></div>
1334
+ <!-- Action Group -->
1335
+ <div class="action-group">
1336
+ @for (actionItem of group.actions; track actionItem.action; let
1337
+ isLastInGroup = $last) {
1338
+ <ds-mobile-action-list-item
1339
+ [title]="actionItem.title"
1340
+ [showDivider]="!isLastInGroup"
1341
+ [class.destructive]="actionItem.destructive"
1342
+ (itemClick)="selectAction(actionItem.action)"
1343
+ >
1344
+ <ds-icon
1345
+ action-icon
1346
+ [name]="actionItem.icon"
1347
+ size="20px"
1348
+ [class.destructive-icon]="actionItem.destructive"
1349
+ />
1350
+ </ds-mobile-action-list-item>
1345
1351
  }
1346
- }
1352
+ </div>
1353
+
1354
+ <!-- Full-width divider between groups -->
1355
+ @if (!isLast) {
1356
+ <div class="action-group-divider"></div>
1357
+ } }
1347
1358
  </div>
1348
1359
  </ds-mobile-bottom-sheet-wrapper>
1349
- `, styles: [":host{display:block}.actions-list{display:flex;flex-direction:column;padding-top:16px}.action-group{display:flex;flex-direction:column;padding:0 16px}::ng-deep ds-mobile-action-list-item ds-mobile-list-item{--color-background-primary: transparent;--color-background-neutral-primary-hover: var(--color-background-neutral-secondary, #f5f5f5)}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .list-item-inner:before{z-index:0!important}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-leading,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-main,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-trailing{position:relative;z-index:1}ds-mobile-action-list-item:last-of-type{--divider-display: none}ds-mobile-action-list-item.destructive{--text-color-default-primary: var(--color-error-base, #ef4444)}.destructive-icon{color:var(--color-error-base, #ef4444)}.action-group-divider{height:1px;background:var(--color-border-subtle, #e5e5e5);margin:8px 0}\n"] }]
1360
+ `, styles: [":host{display:block;height:auto}.actions-list{display:flex;flex-direction:column;padding-top:16px}.action-group{display:flex;flex-direction:column;padding:0 16px}::ng-deep ds-mobile-action-list-item ds-mobile-list-item{--color-background-primary: transparent;--color-background-neutral-primary-hover: var( --color-background-neutral-secondary, #f5f5f5 )}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .list-item-inner:before{z-index:0!important}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-leading,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-main,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-trailing{position:relative;z-index:1}ds-mobile-action-list-item:last-of-type{--divider-display: none}ds-mobile-action-list-item.destructive{--text-color-default-primary: var(--color-error-base, #ef4444)}.destructive-icon{color:var(--color-error-base, #ef4444)}.action-group-divider{height:1px;background:var(--color-border-subtle, #e5e5e5);margin:8px 0}\n"] }]
1350
1361
  }], ctorParameters: () => [{ type: i1.ModalController }], propDecorators: { customActionGroups: [{
1351
1362
  type: Input
1352
1363
  }], isOwnContent: [{
@@ -1999,17 +2010,43 @@ class DsMobileProfileActionsSheetComponent {
1999
2010
  * Check if language has changed
2000
2011
  */
2001
2012
  hasLanguageChanged = computed(() => {
2002
- return this.selectedLanguage() !== this.initialLanguage && this.selectedLanguage() !== '';
2013
+ return (this.selectedLanguage() !== this.initialLanguage &&
2014
+ this.selectedLanguage() !== '');
2003
2015
  }, ...(ngDevMode ? [{ debugName: "hasLanguageChanged" }] : []));
2004
2016
  /**
2005
2017
  * Available languages for selection
2006
2018
  */
2007
2019
  availableLanguages = [
2008
- { code: 'da', nativeName: 'Dansk', englishName: 'Danish', flagIcon: '/Assets/country-flags/denmark.svg' },
2009
- { code: 'en', nativeName: 'English', englishName: 'English', flagIcon: '/Assets/country-flags/united kingdom.svg' },
2010
- { code: 'sv', nativeName: 'Svenska', englishName: 'Swedish', flagIcon: '/Assets/country-flags/sweden.svg' },
2011
- { code: 'no', nativeName: 'Norsk', englishName: 'Norwegian', flagIcon: '/Assets/country-flags/norway.svg' },
2012
- { code: 'de', nativeName: 'Deutsch', englishName: 'German', flagIcon: '/Assets/country-flags/germany.svg' }
2020
+ {
2021
+ code: 'da',
2022
+ nativeName: 'Dansk',
2023
+ englishName: 'Danish',
2024
+ flagIcon: '/Assets/country-flags/denmark.svg',
2025
+ },
2026
+ {
2027
+ code: 'en',
2028
+ nativeName: 'English',
2029
+ englishName: 'English',
2030
+ flagIcon: '/Assets/country-flags/united kingdom.svg',
2031
+ },
2032
+ {
2033
+ code: 'sv',
2034
+ nativeName: 'Svenska',
2035
+ englishName: 'Swedish',
2036
+ flagIcon: '/Assets/country-flags/sweden.svg',
2037
+ },
2038
+ {
2039
+ code: 'no',
2040
+ nativeName: 'Norsk',
2041
+ englishName: 'Norwegian',
2042
+ flagIcon: '/Assets/country-flags/norway.svg',
2043
+ },
2044
+ {
2045
+ code: 'de',
2046
+ nativeName: 'Deutsch',
2047
+ englishName: 'German',
2048
+ flagIcon: '/Assets/country-flags/germany.svg',
2049
+ },
2013
2050
  ];
2014
2051
  /**
2015
2052
  * Current view state
@@ -2084,7 +2121,7 @@ class DsMobileProfileActionsSheetComponent {
2084
2121
  * Get current language flag icon
2085
2122
  */
2086
2123
  getCurrentLanguageFlag() {
2087
- const language = this.availableLanguages.find(lang => lang.code === this.currentLanguage);
2124
+ const language = this.availableLanguages.find((lang) => lang.code === this.currentLanguage);
2088
2125
  return language?.flagIcon || '';
2089
2126
  }
2090
2127
  /**
@@ -2172,7 +2209,7 @@ class DsMobileProfileActionsSheetComponent {
2172
2209
  * Helper to create delay promise
2173
2210
  */
2174
2211
  delay(ms) {
2175
- return new Promise(resolve => setTimeout(resolve, ms));
2212
+ return new Promise((resolve) => setTimeout(resolve, ms));
2176
2213
  }
2177
2214
  /**
2178
2215
  * Handle regular action selection
@@ -2185,58 +2222,64 @@ class DsMobileProfileActionsSheetComponent {
2185
2222
  <ds-mobile-bottom-sheet-wrapper>
2186
2223
  <div class="profile-sheet-content" #sheetWrapper>
2187
2224
  <!-- View Container with CSS Animation -->
2188
- <div
2189
- class="view-container"
2225
+ <div
2226
+ class="view-container"
2190
2227
  #viewContainer
2191
2228
  [class.show-language]="currentView() === 'language'"
2192
- [style.height.px]="containerHeight()">
2193
-
2229
+ [style.height.px]="containerHeight()"
2230
+ >
2194
2231
  <!-- Main Actions View -->
2195
2232
  <div class="view main-view">
2196
2233
  <div class="actions-list">
2197
2234
  @for (group of actionGroups; track $index; let isLast = $last) {
2198
- <!-- Action Group -->
2199
- <div class="action-group">
2200
- @for (actionItem of group.actions; track actionItem.action; let isLastInGroup = $last) {
2201
- <ds-mobile-action-list-item
2202
- [title]="actionItem.title"
2203
- [showDivider]="!isLastInGroup"
2204
- [class.destructive]="actionItem.destructive"
2205
- (itemClick)="handleActionClick(actionItem)">
2206
- <ds-icon
2207
- action-icon
2208
- [name]="actionItem.icon"
2209
- size="20px"
2210
- [class.destructive-icon]="actionItem.destructive" />
2211
-
2212
- @if (actionItem.showChevron || actionItem.subtitle || actionItem.flagIcon) {
2213
- <div content-trailing class="trailing-content">
2214
- @if (actionItem.flagIcon) {
2215
- <img
2216
- [src]="actionItem.flagIcon"
2217
- [alt]="actionItem.title + ' flag'"
2218
- class="subtitle-flag" />
2219
- }
2220
- @if (actionItem.subtitle) {
2221
- <span class="subtitle">{{ actionItem.subtitle }}</span>
2222
- }
2223
- @if (actionItem.showChevron) {
2224
- <ds-icon name="remixArrowRightSLine" size="20px" class="chevron-icon" />
2225
- }
2226
- </div>
2227
- }
2228
- </ds-mobile-action-list-item>
2235
+ <!-- Action Group -->
2236
+ <div class="action-group">
2237
+ @for (actionItem of group.actions; track actionItem.action; let
2238
+ isLastInGroup = $last) {
2239
+ <ds-mobile-action-list-item
2240
+ [title]="actionItem.title"
2241
+ [showDivider]="!isLastInGroup"
2242
+ [class.destructive]="actionItem.destructive"
2243
+ (itemClick)="handleActionClick(actionItem)"
2244
+ >
2245
+ <ds-icon
2246
+ action-icon
2247
+ [name]="actionItem.icon"
2248
+ size="20px"
2249
+ [class.destructive-icon]="actionItem.destructive"
2250
+ />
2251
+
2252
+ @if (actionItem.showChevron || actionItem.subtitle ||
2253
+ actionItem.flagIcon) {
2254
+ <div content-trailing class="trailing-content">
2255
+ @if (actionItem.flagIcon) {
2256
+ <img
2257
+ [src]="actionItem.flagIcon"
2258
+ [alt]="actionItem.title + ' flag'"
2259
+ class="subtitle-flag"
2260
+ />
2261
+ } @if (actionItem.subtitle) {
2262
+ <span class="subtitle">{{ actionItem.subtitle }}</span>
2263
+ } @if (actionItem.showChevron) {
2264
+ <ds-icon
2265
+ name="remixArrowRightSLine"
2266
+ size="20px"
2267
+ class="chevron-icon"
2268
+ />
2269
+ }
2270
+ </div>
2229
2271
  }
2230
- </div>
2231
-
2232
- <!-- Full-width divider between groups -->
2233
- @if (!isLast) {
2234
- <div class="action-group-divider"></div>
2272
+ </ds-mobile-action-list-item>
2235
2273
  }
2236
- }
2274
+ </div>
2275
+
2276
+ <!-- Full-width divider between groups -->
2277
+ @if (!isLast) {
2278
+ <div class="action-group-divider"></div>
2279
+ } }
2237
2280
  </div>
2238
2281
  </div>
2239
-
2282
+
2240
2283
  <!-- Language Selection View -->
2241
2284
  <div class="view language-view">
2242
2285
  <!-- Header with back and done buttons -->
@@ -2246,7 +2289,8 @@ class DsMobileProfileActionsSheetComponent {
2246
2289
  <ds-button
2247
2290
  variant="secondary"
2248
2291
  size="sm"
2249
- (clicked)="navigateBack()">
2292
+ (clicked)="navigateBack()"
2293
+ >
2250
2294
  Tilbage
2251
2295
  </ds-button>
2252
2296
  </ion-buttons>
@@ -2256,101 +2300,123 @@ class DsMobileProfileActionsSheetComponent {
2256
2300
  variant="primary"
2257
2301
  size="sm"
2258
2302
  [disabled]="!hasLanguageChanged()"
2259
- (clicked)="confirmLanguageSelection()">
2303
+ (clicked)="confirmLanguageSelection()"
2304
+ >
2260
2305
  Færdig
2261
2306
  </ds-button>
2262
2307
  </ion-buttons>
2263
2308
  </ion-toolbar>
2264
2309
  </ion-header>
2265
-
2310
+
2266
2311
  <!-- Language Options -->
2267
2312
  <div class="language-list">
2268
- @for (language of availableLanguages; track language.code; let isLast = $last) {
2269
- <ds-mobile-action-list-item
2270
- [title]="language.nativeName"
2271
- [showDivider]="!isLast"
2272
- (itemClick)="selectLanguage(language.code)">
2273
- <!-- Country Flag -->
2274
- <img
2275
- action-icon
2276
- [src]="language.flagIcon"
2277
- [alt]="language.englishName + ' flag'"
2278
- class="language-flag" />
2279
-
2280
- <!-- Radio Indicator in trailing slot -->
2281
- <div content-trailing class="radio-wrapper">
2282
- <div class="radio-indicator" [class.radio-checked]="language.code === selectedLanguage()">
2283
- <div class="radio-inner"></div>
2284
- </div>
2313
+ @for (language of availableLanguages; track language.code; let
2314
+ isLast = $last) {
2315
+ <ds-mobile-action-list-item
2316
+ [title]="language.nativeName"
2317
+ [showDivider]="!isLast"
2318
+ (itemClick)="selectLanguage(language.code)"
2319
+ >
2320
+ <!-- Country Flag -->
2321
+ <img
2322
+ action-icon
2323
+ [src]="language.flagIcon"
2324
+ [alt]="language.englishName + ' flag'"
2325
+ class="language-flag"
2326
+ />
2327
+
2328
+ <!-- Radio Indicator in trailing slot -->
2329
+ <div content-trailing class="radio-wrapper">
2330
+ <div
2331
+ class="radio-indicator"
2332
+ [class.radio-checked]="language.code === selectedLanguage()"
2333
+ >
2334
+ <div class="radio-inner"></div>
2285
2335
  </div>
2286
- </ds-mobile-action-list-item>
2336
+ </div>
2337
+ </ds-mobile-action-list-item>
2287
2338
  }
2288
2339
  </div>
2289
2340
  </div>
2290
-
2291
2341
  </div>
2292
2342
  </div>
2293
2343
  </ds-mobile-bottom-sheet-wrapper>
2294
- `, isInline: true, styles: [":host{display:block}.profile-sheet-content{overflow:hidden;width:100%}.view-container{display:grid;grid-template-columns:50% 50%;width:200%;transform:translate(0);transition:transform .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1),opacity .15s ease-in-out;overflow:hidden}.view-container.show-language{transform:translate(-50%)}.view{width:100%}.main-view{padding-top:16px}.actions-list{display:flex;flex-direction:column}.action-group{display:flex;flex-direction:column;padding:0 16px}.language-view{display:flex;flex-direction:column}ion-header{box-shadow:none}:host ::ng-deep .header-ios ion-toolbar:last-of-type{--border-width: 0 !important}ion-toolbar{--background: var(--color-background-neutral-primary, #ffffff);--border-width: 0 !important;--border-color: var(--color-border-default, #e5e7eb) !important;--padding-top: 12px;--padding-bottom: 8px;--min-height: 56px;border-bottom:1px solid var(--color-border-default, #e5e7eb)!important}ion-toolbar::part(native){border-bottom:1px solid var(--color-border-default, #e5e7eb)!important}ion-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:22px;letter-spacing:-.4px;color:var(--color-text-primary, #1a1a1a)}ion-buttons[slot=start] ds-button{--border-radius: 100px}ion-buttons[slot=start] ds-button::ng-deep button{border-radius:100px}ion-buttons[slot=end] ds-button{--border-radius: 100px}ion-buttons[slot=end] ds-button::ng-deep button{border-radius:100px}.language-list{padding:8px 16px}.language-flag{width:24px;height:24px;object-fit:cover}.radio-wrapper{display:flex;align-items:center;justify-content:center}.radio-indicator{width:20px;height:20px;border:2px solid var(--color-border-default, #d1d5db);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.radio-indicator.radio-checked{border-color:var(--color-brand-base, #7c3aed)}.radio-inner{width:10px;height:10px;border-radius:50%;background:transparent;transition:background .2s ease}.radio-checked .radio-inner{background:var(--color-brand-base, #7c3aed)}.trailing-content{display:flex;align-items:center;gap:8px}.subtitle-flag{width:16px;height:16px;object-fit:cover;border-radius:2px}.subtitle{font-size:15px;color:var(--color-text-subtle, #6b7280);line-height:20px}.chevron-icon{color:var(--color-text-secondary, #737373)}.check-icon{color:var(--color-primary-base, #7c3aed)}::ng-deep ds-mobile-action-list-item ds-mobile-list-item{--color-background-primary: transparent;--color-background-neutral-primary-hover: var(--color-background-neutral-secondary, #f5f5f5)}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .list-item-inner:before{z-index:0!important}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-leading,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-main,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-trailing{position:relative;z-index:1}ds-mobile-action-list-item.destructive{--text-color-default-primary: var(--color-error-base, #ef4444)}.destructive-icon{color:var(--color-error-base, #ef4444)}.action-group-divider{height:1px;background:var(--color-border-subtle, #e5e5e5);margin:8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsMobileActionListItemComponent, selector: "ds-mobile-action-list-item", inputs: ["title", "showDivider", "disabled"], outputs: ["itemClick"] }, { kind: "component", type: DsButtonComponent, selector: "ds-button", inputs: ["variant", "size", "disabled", "loading", "pressed", "expanded", "leadingIcon", "trailingIcon", "ariaLabel", "iconOnly"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: DsMobileBottomSheetWrapperComponent, selector: "ds-mobile-bottom-sheet-wrapper" }] });
2344
+ `, isInline: true, styles: [":host{display:block;height:auto}.profile-sheet-content{overflow:hidden;width:100%}.view-container{display:grid;grid-template-columns:50% 50%;width:200%;transform:translate(0);transition:transform .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1),opacity .15s ease-in-out;overflow:hidden}.view-container.show-language{transform:translate(-50%)}.view{width:100%}.main-view{padding-top:16px}.actions-list{display:flex;flex-direction:column}.action-group{display:flex;flex-direction:column;padding:0 16px}.language-view{display:flex;flex-direction:column}ion-header{box-shadow:none}:host ::ng-deep .header-ios ion-toolbar:last-of-type{--border-width: 0 !important}ion-toolbar{--background: var(--color-background-neutral-primary, #ffffff);--border-width: 0 !important;--border-color: var(--color-border-default, #e5e7eb) !important;--padding-top: 12px;--padding-bottom: 8px;--min-height: 56px;border-bottom:1px solid var(--color-border-default, #e5e7eb)!important}ion-toolbar::part(native){border-bottom:1px solid var(--color-border-default, #e5e7eb)!important}ion-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:22px;letter-spacing:-.4px;color:var(--color-text-primary, #1a1a1a)}ion-buttons[slot=start] ds-button{--border-radius: 100px}ion-buttons[slot=start] ds-button::ng-deep button{border-radius:100px}ion-buttons[slot=end] ds-button{--border-radius: 100px}ion-buttons[slot=end] ds-button::ng-deep button{border-radius:100px}.language-list{padding:8px 16px}.language-flag{width:24px;height:24px;object-fit:cover}.radio-wrapper{display:flex;align-items:center;justify-content:center}.radio-indicator{width:20px;height:20px;border:2px solid var(--color-border-default, #d1d5db);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.radio-indicator.radio-checked{border-color:var(--color-brand-base, #7c3aed)}.radio-inner{width:10px;height:10px;border-radius:50%;background:transparent;transition:background .2s ease}.radio-checked .radio-inner{background:var(--color-brand-base, #7c3aed)}.trailing-content{display:flex;align-items:center;gap:8px}.subtitle-flag{width:16px;height:16px;object-fit:cover;border-radius:2px}.subtitle{font-size:15px;color:var(--color-text-subtle, #6b7280);line-height:20px}.chevron-icon{color:var(--color-text-secondary, #737373)}.check-icon{color:var(--color-primary-base, #7c3aed)}::ng-deep ds-mobile-action-list-item ds-mobile-list-item{--color-background-primary: transparent;--color-background-neutral-primary-hover: var( --color-background-neutral-secondary, #f5f5f5 )}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .list-item-inner:before{z-index:0!important}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-leading,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-main,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-trailing{position:relative;z-index:1}ds-mobile-action-list-item.destructive{--text-color-default-primary: var(--color-error-base, #ef4444)}.destructive-icon{color:var(--color-error-base, #ef4444)}.action-group-divider{height:1px;background:var(--color-border-subtle, #e5e5e5);margin:8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsMobileActionListItemComponent, selector: "ds-mobile-action-list-item", inputs: ["title", "showDivider", "disabled"], outputs: ["itemClick"] }, { kind: "component", type: DsButtonComponent, selector: "ds-button", inputs: ["variant", "size", "disabled", "loading", "pressed", "expanded", "leadingIcon", "trailingIcon", "ariaLabel", "iconOnly"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: DsMobileBottomSheetWrapperComponent, selector: "ds-mobile-bottom-sheet-wrapper" }] });
2295
2345
  }
2296
2346
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileProfileActionsSheetComponent, decorators: [{
2297
2347
  type: Component,
2298
- args: [{ selector: 'ds-mobile-profile-actions-sheet', standalone: true, imports: [CommonModule, DsIconComponent, DsMobileActionListItemComponent, DsButtonComponent, IonHeader, IonToolbar, IonTitle, IonButtons, DsMobileBottomSheetWrapperComponent], template: `
2348
+ args: [{ selector: 'ds-mobile-profile-actions-sheet', standalone: true, imports: [
2349
+ CommonModule,
2350
+ DsIconComponent,
2351
+ DsMobileActionListItemComponent,
2352
+ DsButtonComponent,
2353
+ IonHeader,
2354
+ IonToolbar,
2355
+ IonTitle,
2356
+ IonButtons,
2357
+ DsMobileBottomSheetWrapperComponent,
2358
+ ], template: `
2299
2359
  <ds-mobile-bottom-sheet-wrapper>
2300
2360
  <div class="profile-sheet-content" #sheetWrapper>
2301
2361
  <!-- View Container with CSS Animation -->
2302
- <div
2303
- class="view-container"
2362
+ <div
2363
+ class="view-container"
2304
2364
  #viewContainer
2305
2365
  [class.show-language]="currentView() === 'language'"
2306
- [style.height.px]="containerHeight()">
2307
-
2366
+ [style.height.px]="containerHeight()"
2367
+ >
2308
2368
  <!-- Main Actions View -->
2309
2369
  <div class="view main-view">
2310
2370
  <div class="actions-list">
2311
2371
  @for (group of actionGroups; track $index; let isLast = $last) {
2312
- <!-- Action Group -->
2313
- <div class="action-group">
2314
- @for (actionItem of group.actions; track actionItem.action; let isLastInGroup = $last) {
2315
- <ds-mobile-action-list-item
2316
- [title]="actionItem.title"
2317
- [showDivider]="!isLastInGroup"
2318
- [class.destructive]="actionItem.destructive"
2319
- (itemClick)="handleActionClick(actionItem)">
2320
- <ds-icon
2321
- action-icon
2322
- [name]="actionItem.icon"
2323
- size="20px"
2324
- [class.destructive-icon]="actionItem.destructive" />
2325
-
2326
- @if (actionItem.showChevron || actionItem.subtitle || actionItem.flagIcon) {
2327
- <div content-trailing class="trailing-content">
2328
- @if (actionItem.flagIcon) {
2329
- <img
2330
- [src]="actionItem.flagIcon"
2331
- [alt]="actionItem.title + ' flag'"
2332
- class="subtitle-flag" />
2333
- }
2334
- @if (actionItem.subtitle) {
2335
- <span class="subtitle">{{ actionItem.subtitle }}</span>
2336
- }
2337
- @if (actionItem.showChevron) {
2338
- <ds-icon name="remixArrowRightSLine" size="20px" class="chevron-icon" />
2339
- }
2340
- </div>
2341
- }
2342
- </ds-mobile-action-list-item>
2372
+ <!-- Action Group -->
2373
+ <div class="action-group">
2374
+ @for (actionItem of group.actions; track actionItem.action; let
2375
+ isLastInGroup = $last) {
2376
+ <ds-mobile-action-list-item
2377
+ [title]="actionItem.title"
2378
+ [showDivider]="!isLastInGroup"
2379
+ [class.destructive]="actionItem.destructive"
2380
+ (itemClick)="handleActionClick(actionItem)"
2381
+ >
2382
+ <ds-icon
2383
+ action-icon
2384
+ [name]="actionItem.icon"
2385
+ size="20px"
2386
+ [class.destructive-icon]="actionItem.destructive"
2387
+ />
2388
+
2389
+ @if (actionItem.showChevron || actionItem.subtitle ||
2390
+ actionItem.flagIcon) {
2391
+ <div content-trailing class="trailing-content">
2392
+ @if (actionItem.flagIcon) {
2393
+ <img
2394
+ [src]="actionItem.flagIcon"
2395
+ [alt]="actionItem.title + ' flag'"
2396
+ class="subtitle-flag"
2397
+ />
2398
+ } @if (actionItem.subtitle) {
2399
+ <span class="subtitle">{{ actionItem.subtitle }}</span>
2400
+ } @if (actionItem.showChevron) {
2401
+ <ds-icon
2402
+ name="remixArrowRightSLine"
2403
+ size="20px"
2404
+ class="chevron-icon"
2405
+ />
2406
+ }
2407
+ </div>
2343
2408
  }
2344
- </div>
2345
-
2346
- <!-- Full-width divider between groups -->
2347
- @if (!isLast) {
2348
- <div class="action-group-divider"></div>
2409
+ </ds-mobile-action-list-item>
2349
2410
  }
2350
- }
2411
+ </div>
2412
+
2413
+ <!-- Full-width divider between groups -->
2414
+ @if (!isLast) {
2415
+ <div class="action-group-divider"></div>
2416
+ } }
2351
2417
  </div>
2352
2418
  </div>
2353
-
2419
+
2354
2420
  <!-- Language Selection View -->
2355
2421
  <div class="view language-view">
2356
2422
  <!-- Header with back and done buttons -->
@@ -2360,7 +2426,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
2360
2426
  <ds-button
2361
2427
  variant="secondary"
2362
2428
  size="sm"
2363
- (clicked)="navigateBack()">
2429
+ (clicked)="navigateBack()"
2430
+ >
2364
2431
  Tilbage
2365
2432
  </ds-button>
2366
2433
  </ion-buttons>
@@ -2370,42 +2437,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
2370
2437
  variant="primary"
2371
2438
  size="sm"
2372
2439
  [disabled]="!hasLanguageChanged()"
2373
- (clicked)="confirmLanguageSelection()">
2440
+ (clicked)="confirmLanguageSelection()"
2441
+ >
2374
2442
  Færdig
2375
2443
  </ds-button>
2376
2444
  </ion-buttons>
2377
2445
  </ion-toolbar>
2378
2446
  </ion-header>
2379
-
2447
+
2380
2448
  <!-- Language Options -->
2381
2449
  <div class="language-list">
2382
- @for (language of availableLanguages; track language.code; let isLast = $last) {
2383
- <ds-mobile-action-list-item
2384
- [title]="language.nativeName"
2385
- [showDivider]="!isLast"
2386
- (itemClick)="selectLanguage(language.code)">
2387
- <!-- Country Flag -->
2388
- <img
2389
- action-icon
2390
- [src]="language.flagIcon"
2391
- [alt]="language.englishName + ' flag'"
2392
- class="language-flag" />
2393
-
2394
- <!-- Radio Indicator in trailing slot -->
2395
- <div content-trailing class="radio-wrapper">
2396
- <div class="radio-indicator" [class.radio-checked]="language.code === selectedLanguage()">
2397
- <div class="radio-inner"></div>
2398
- </div>
2450
+ @for (language of availableLanguages; track language.code; let
2451
+ isLast = $last) {
2452
+ <ds-mobile-action-list-item
2453
+ [title]="language.nativeName"
2454
+ [showDivider]="!isLast"
2455
+ (itemClick)="selectLanguage(language.code)"
2456
+ >
2457
+ <!-- Country Flag -->
2458
+ <img
2459
+ action-icon
2460
+ [src]="language.flagIcon"
2461
+ [alt]="language.englishName + ' flag'"
2462
+ class="language-flag"
2463
+ />
2464
+
2465
+ <!-- Radio Indicator in trailing slot -->
2466
+ <div content-trailing class="radio-wrapper">
2467
+ <div
2468
+ class="radio-indicator"
2469
+ [class.radio-checked]="language.code === selectedLanguage()"
2470
+ >
2471
+ <div class="radio-inner"></div>
2399
2472
  </div>
2400
- </ds-mobile-action-list-item>
2473
+ </div>
2474
+ </ds-mobile-action-list-item>
2401
2475
  }
2402
2476
  </div>
2403
2477
  </div>
2404
-
2405
2478
  </div>
2406
2479
  </div>
2407
2480
  </ds-mobile-bottom-sheet-wrapper>
2408
- `, styles: [":host{display:block}.profile-sheet-content{overflow:hidden;width:100%}.view-container{display:grid;grid-template-columns:50% 50%;width:200%;transform:translate(0);transition:transform .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1),opacity .15s ease-in-out;overflow:hidden}.view-container.show-language{transform:translate(-50%)}.view{width:100%}.main-view{padding-top:16px}.actions-list{display:flex;flex-direction:column}.action-group{display:flex;flex-direction:column;padding:0 16px}.language-view{display:flex;flex-direction:column}ion-header{box-shadow:none}:host ::ng-deep .header-ios ion-toolbar:last-of-type{--border-width: 0 !important}ion-toolbar{--background: var(--color-background-neutral-primary, #ffffff);--border-width: 0 !important;--border-color: var(--color-border-default, #e5e7eb) !important;--padding-top: 12px;--padding-bottom: 8px;--min-height: 56px;border-bottom:1px solid var(--color-border-default, #e5e7eb)!important}ion-toolbar::part(native){border-bottom:1px solid var(--color-border-default, #e5e7eb)!important}ion-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:22px;letter-spacing:-.4px;color:var(--color-text-primary, #1a1a1a)}ion-buttons[slot=start] ds-button{--border-radius: 100px}ion-buttons[slot=start] ds-button::ng-deep button{border-radius:100px}ion-buttons[slot=end] ds-button{--border-radius: 100px}ion-buttons[slot=end] ds-button::ng-deep button{border-radius:100px}.language-list{padding:8px 16px}.language-flag{width:24px;height:24px;object-fit:cover}.radio-wrapper{display:flex;align-items:center;justify-content:center}.radio-indicator{width:20px;height:20px;border:2px solid var(--color-border-default, #d1d5db);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.radio-indicator.radio-checked{border-color:var(--color-brand-base, #7c3aed)}.radio-inner{width:10px;height:10px;border-radius:50%;background:transparent;transition:background .2s ease}.radio-checked .radio-inner{background:var(--color-brand-base, #7c3aed)}.trailing-content{display:flex;align-items:center;gap:8px}.subtitle-flag{width:16px;height:16px;object-fit:cover;border-radius:2px}.subtitle{font-size:15px;color:var(--color-text-subtle, #6b7280);line-height:20px}.chevron-icon{color:var(--color-text-secondary, #737373)}.check-icon{color:var(--color-primary-base, #7c3aed)}::ng-deep ds-mobile-action-list-item ds-mobile-list-item{--color-background-primary: transparent;--color-background-neutral-primary-hover: var(--color-background-neutral-secondary, #f5f5f5)}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .list-item-inner:before{z-index:0!important}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-leading,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-main,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-trailing{position:relative;z-index:1}ds-mobile-action-list-item.destructive{--text-color-default-primary: var(--color-error-base, #ef4444)}.destructive-icon{color:var(--color-error-base, #ef4444)}.action-group-divider{height:1px;background:var(--color-border-subtle, #e5e5e5);margin:8px 0}\n"] }]
2481
+ `, styles: [":host{display:block;height:auto}.profile-sheet-content{overflow:hidden;width:100%}.view-container{display:grid;grid-template-columns:50% 50%;width:200%;transform:translate(0);transition:transform .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1),opacity .15s ease-in-out;overflow:hidden}.view-container.show-language{transform:translate(-50%)}.view{width:100%}.main-view{padding-top:16px}.actions-list{display:flex;flex-direction:column}.action-group{display:flex;flex-direction:column;padding:0 16px}.language-view{display:flex;flex-direction:column}ion-header{box-shadow:none}:host ::ng-deep .header-ios ion-toolbar:last-of-type{--border-width: 0 !important}ion-toolbar{--background: var(--color-background-neutral-primary, #ffffff);--border-width: 0 !important;--border-color: var(--color-border-default, #e5e7eb) !important;--padding-top: 12px;--padding-bottom: 8px;--min-height: 56px;border-bottom:1px solid var(--color-border-default, #e5e7eb)!important}ion-toolbar::part(native){border-bottom:1px solid var(--color-border-default, #e5e7eb)!important}ion-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:22px;letter-spacing:-.4px;color:var(--color-text-primary, #1a1a1a)}ion-buttons[slot=start] ds-button{--border-radius: 100px}ion-buttons[slot=start] ds-button::ng-deep button{border-radius:100px}ion-buttons[slot=end] ds-button{--border-radius: 100px}ion-buttons[slot=end] ds-button::ng-deep button{border-radius:100px}.language-list{padding:8px 16px}.language-flag{width:24px;height:24px;object-fit:cover}.radio-wrapper{display:flex;align-items:center;justify-content:center}.radio-indicator{width:20px;height:20px;border:2px solid var(--color-border-default, #d1d5db);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.radio-indicator.radio-checked{border-color:var(--color-brand-base, #7c3aed)}.radio-inner{width:10px;height:10px;border-radius:50%;background:transparent;transition:background .2s ease}.radio-checked .radio-inner{background:var(--color-brand-base, #7c3aed)}.trailing-content{display:flex;align-items:center;gap:8px}.subtitle-flag{width:16px;height:16px;object-fit:cover;border-radius:2px}.subtitle{font-size:15px;color:var(--color-text-subtle, #6b7280);line-height:20px}.chevron-icon{color:var(--color-text-secondary, #737373)}.check-icon{color:var(--color-primary-base, #7c3aed)}::ng-deep ds-mobile-action-list-item ds-mobile-list-item{--color-background-primary: transparent;--color-background-neutral-primary-hover: var( --color-background-neutral-secondary, #f5f5f5 )}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .list-item-inner:before{z-index:0!important}::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-leading,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-main,::ng-deep ds-mobile-action-list-item ds-mobile-list-item .content-trailing{position:relative;z-index:1}ds-mobile-action-list-item.destructive{--text-color-default-primary: var(--color-error-base, #ef4444)}.destructive-icon{color:var(--color-error-base, #ef4444)}.action-group-divider{height:1px;background:var(--color-border-subtle, #e5e5e5);margin:8px 0}\n"] }]
2409
2482
  }], ctorParameters: () => [{ type: i1.ModalController }, { type: i0.Injector }], propDecorators: { actionGroups: [{
2410
2483
  type: Input
2411
2484
  }], currentLanguage: [{
@@ -2435,6 +2508,9 @@ class UserService {
2435
2508
  avatarType = this._avatarType.asReadonly();
2436
2509
  avatarSrc = this._avatarSrc.asReadonly();
2437
2510
  profileMenuItems = this._profileMenuItems.asReadonly();
2511
+ // Profile action selection notification
2512
+ profileActionSelectedSubject = new Subject();
2513
+ profileActionSelected$ = this.profileActionSelectedSubject.asObservable();
2438
2514
  /**
2439
2515
  * Update avatar configuration
2440
2516
  */
@@ -2455,13 +2531,19 @@ class UserService {
2455
2531
  setProfileMenuItems(items) {
2456
2532
  this._profileMenuItems.set(items);
2457
2533
  }
2534
+ /**
2535
+ * Notify subscribers that a profile action was selected
2536
+ */
2537
+ notifyProfileAction(result) {
2538
+ this.profileActionSelectedSubject.next(result);
2539
+ }
2458
2540
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: UserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2459
2541
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: UserService, providedIn: 'root' });
2460
2542
  }
2461
2543
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: UserService, decorators: [{
2462
2544
  type: Injectable,
2463
2545
  args: [{
2464
- providedIn: 'root'
2546
+ providedIn: 'root',
2465
2547
  }]
2466
2548
  }] });
2467
2549
 
@@ -3191,22 +3273,42 @@ class DsMobilePageMainComponent extends MobilePageBase {
3191
3273
  // Emit the event for any parent listeners
3192
3274
  this.avatarClick.emit();
3193
3275
  // Use input if provided, otherwise fall back to service, otherwise use default menu
3194
- const menuItems = this.profileMenuItems() || this.userService.profileMenuItems() || [
3276
+ const menuItems = this.profileMenuItems() ||
3277
+ this.userService.profileMenuItems() || [
3195
3278
  {
3196
3279
  actions: [
3197
3280
  {
3198
3281
  action: 'profile',
3199
3282
  title: 'Min profil',
3200
3283
  icon: 'remixUser3Line',
3201
- destructive: false
3284
+ destructive: false,
3202
3285
  },
3203
3286
  {
3204
3287
  action: 'settings',
3205
3288
  title: 'Indstillinger',
3206
3289
  icon: 'remixSettings3Line',
3207
- destructive: false
3208
- }
3209
- ]
3290
+ destructive: false,
3291
+ },
3292
+ {
3293
+ action: 'appearance',
3294
+ title: 'Udseende',
3295
+ icon: 'remixPaletteLine',
3296
+ destructive: false,
3297
+ },
3298
+ ],
3299
+ },
3300
+ {
3301
+ actions: [
3302
+ {
3303
+ action: 'language',
3304
+ title: 'Sprog',
3305
+ subtitle: 'Dansk',
3306
+ flagIcon: '/Assets/country-flags/denmark.svg',
3307
+ icon: 'remixGlobalLine',
3308
+ destructive: false,
3309
+ showChevron: true,
3310
+ },
3311
+ ],
3210
3312
  },
3211
3313
  {
3212
3314
  actions: [
@@ -3214,10 +3316,10 @@ class DsMobilePageMainComponent extends MobilePageBase {
3214
3316
  action: 'logout',
3215
3317
  title: 'Log ud',
3216
3318
  icon: 'remixLogoutBoxLine',
3217
- destructive: true
3218
- }
3219
- ]
3220
- }
3319
+ destructive: true,
3320
+ },
3321
+ ],
3322
+ },
3221
3323
  ];
3222
3324
  // If no menu items configured, just emit and return
3223
3325
  if (!menuItems || menuItems.length === 0) {
@@ -3229,23 +3331,49 @@ class DsMobilePageMainComponent extends MobilePageBase {
3229
3331
  actionGroups: menuItems,
3230
3332
  currentLanguage: 'da', // TODO: Get from language service
3231
3333
  availableLanguages: [
3232
- { code: 'da', nativeName: 'Dansk', englishName: 'Danish', flagIcon: '/Assets/country-flags/denmark.svg' },
3233
- { code: 'en', nativeName: 'English', englishName: 'English', flagIcon: '/Assets/country-flags/united kingdom.svg' },
3234
- { code: 'sv', nativeName: 'Svenska', englishName: 'Swedish', flagIcon: '/Assets/country-flags/sweden.svg' },
3235
- { code: 'no', nativeName: 'Norsk', englishName: 'Norwegian', flagIcon: '/Assets/country-flags/norway.svg' },
3236
- { code: 'de', nativeName: 'Deutsch', englishName: 'German', flagIcon: '/Assets/country-flags/germany.svg' }
3237
- ]
3334
+ {
3335
+ code: 'da',
3336
+ nativeName: 'Dansk',
3337
+ englishName: 'Danish',
3338
+ flagIcon: '/Assets/country-flags/denmark.svg',
3339
+ },
3340
+ {
3341
+ code: 'en',
3342
+ nativeName: 'English',
3343
+ englishName: 'English',
3344
+ flagIcon: '/Assets/country-flags/united kingdom.svg',
3345
+ },
3346
+ {
3347
+ code: 'sv',
3348
+ nativeName: 'Svenska',
3349
+ englishName: 'Swedish',
3350
+ flagIcon: '/Assets/country-flags/sweden.svg',
3351
+ },
3352
+ {
3353
+ code: 'no',
3354
+ nativeName: 'Norsk',
3355
+ englishName: 'Norwegian',
3356
+ flagIcon: '/Assets/country-flags/norway.svg',
3357
+ },
3358
+ {
3359
+ code: 'de',
3360
+ nativeName: 'Deutsch',
3361
+ englishName: 'German',
3362
+ flagIcon: '/Assets/country-flags/germany.svg',
3363
+ },
3364
+ ],
3238
3365
  },
3239
3366
  breakpoints: [0, 1],
3240
3367
  initialBreakpoint: 1,
3241
3368
  handle: true,
3242
- cssClass: ['ds-bottom-sheet', 'auto-height']
3369
+ cssClass: ['ds-bottom-sheet', 'auto-height'],
3243
3370
  });
3244
3371
  await sheet.present();
3245
3372
  const result = await sheet.onWillDismiss();
3246
3373
  if (result.data?.action) {
3247
- // Handle whitelabel-demo action internally (works on all pages)
3248
- if (result.data.action === 'whitelabel-demo') {
3374
+ // Handle appearance/whitelabel-demo action internally (works on all pages)
3375
+ if (result.data.action === 'appearance' ||
3376
+ result.data.action === 'whitelabel-demo') {
3249
3377
  console.log('Opening whitelabel demo...');
3250
3378
  // Small delay to ensure bottom sheet is fully dismissed
3251
3379
  setTimeout(async () => {
@@ -3259,6 +3387,8 @@ class DsMobilePageMainComponent extends MobilePageBase {
3259
3387
  }
3260
3388
  // Emit the selected action to parent (for other actions)
3261
3389
  this.profileActionSelected.emit(result.data);
3390
+ // Also notify globally via UserService
3391
+ this.userService.notifyProfileAction(result.data);
3262
3392
  }
3263
3393
  }
3264
3394
  /**
@@ -3317,10 +3447,10 @@ class DsMobilePageMainComponent extends MobilePageBase {
3317
3447
  <div class="header-main">
3318
3448
  <!-- Whitelabel Logomark -->
3319
3449
  <ds-logo variant="mark" size="lg" />
3320
-
3450
+
3321
3451
  <!-- Title - fades in on scroll -->
3322
3452
  <ion-title class="header-main__title">{{ title() }}</ion-title>
3323
-
3453
+
3324
3454
  <!-- Avatar -->
3325
3455
  <div class="header-main__actions">
3326
3456
  <ds-avatar
@@ -3341,39 +3471,43 @@ class DsMobilePageMainComponent extends MobilePageBase {
3341
3471
  <ion-content [scrollEvents]="true" (ionScroll)="handleScroll($event)">
3342
3472
  <!-- Condensed header for Ionic scroll effects -->
3343
3473
  @if (showCondensedHeader()) {
3344
- <ion-header collapse="condense">
3345
- <ion-toolbar>
3346
- <ion-title size="large">{{ title() }}</ion-title>
3347
- </ion-toolbar>
3348
- </ion-header>
3474
+ <ion-header collapse="condense">
3475
+ <ion-toolbar>
3476
+ <ion-title size="large">{{ title() }}</ion-title>
3477
+ </ion-toolbar>
3478
+ </ion-header>
3349
3479
  }
3350
3480
 
3351
3481
  <!-- Pull to refresh (only on native iOS/Android) -->
3352
3482
  @if (showRefresh() && isNativePlatform()) {
3353
- <ion-refresher
3354
- slot="fixed"
3355
- (ionRefresh)="handleRefresh($event)"
3356
- [pullFactor]="0.4"
3357
- [pullMin]="80"
3358
- [pullMax]="240"
3359
- closeDuration="600ms">
3360
- <ion-refresher-content
3361
- pullingIcon="remixArrowDownS"
3362
- refreshingSpinner="crescent">
3363
- </ion-refresher-content>
3364
- </ion-refresher>
3483
+ <ion-refresher
3484
+ slot="fixed"
3485
+ (ionRefresh)="handleRefresh($event)"
3486
+ [pullFactor]="0.4"
3487
+ [pullMin]="80"
3488
+ [pullMax]="240"
3489
+ closeDuration="600ms"
3490
+ >
3491
+ <ion-refresher-content
3492
+ pullingIcon="remixArrowDownS"
3493
+ refreshingSpinner="crescent"
3494
+ >
3495
+ </ion-refresher-content>
3496
+ </ion-refresher>
3365
3497
  }
3366
3498
 
3367
3499
  <!-- Expandable header section (purple background) -->
3368
3500
  <div class="header-expandable">
3369
3501
  <div class="header-expandable-inner">
3370
3502
  <div class="header-expandable__text">
3371
- <h1 class="header-expandable__title">{{ headerTitle() || title() }}</h1>
3503
+ <h1 class="header-expandable__title">
3504
+ {{ headerTitle() || title() }}
3505
+ </h1>
3372
3506
  @if (headerSubtitle()) {
3373
- <p class="header-expandable__subtitle">{{ headerSubtitle() }}</p>
3507
+ <p class="header-expandable__subtitle">{{ headerSubtitle() }}</p>
3374
3508
  }
3375
3509
  </div>
3376
-
3510
+
3377
3511
  <!-- Slot for custom header content (e.g., property tiles) -->
3378
3512
  <ng-content select="[header-content]"></ng-content>
3379
3513
  </div>
@@ -3400,7 +3534,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
3400
3534
  IonRefresher,
3401
3535
  IonRefresherContent,
3402
3536
  DsAvatarComponent,
3403
- DsLogoComponent
3537
+ DsLogoComponent,
3404
3538
  ], template: `
3405
3539
  <!-- Fixed header at top -->
3406
3540
  <ion-header>
@@ -3408,10 +3542,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
3408
3542
  <div class="header-main">
3409
3543
  <!-- Whitelabel Logomark -->
3410
3544
  <ds-logo variant="mark" size="lg" />
3411
-
3545
+
3412
3546
  <!-- Title - fades in on scroll -->
3413
3547
  <ion-title class="header-main__title">{{ title() }}</ion-title>
3414
-
3548
+
3415
3549
  <!-- Avatar -->
3416
3550
  <div class="header-main__actions">
3417
3551
  <ds-avatar
@@ -3432,39 +3566,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
3432
3566
  <ion-content [scrollEvents]="true" (ionScroll)="handleScroll($event)">
3433
3567
  <!-- Condensed header for Ionic scroll effects -->
3434
3568
  @if (showCondensedHeader()) {
3435
- <ion-header collapse="condense">
3436
- <ion-toolbar>
3437
- <ion-title size="large">{{ title() }}</ion-title>
3438
- </ion-toolbar>
3439
- </ion-header>
3569
+ <ion-header collapse="condense">
3570
+ <ion-toolbar>
3571
+ <ion-title size="large">{{ title() }}</ion-title>
3572
+ </ion-toolbar>
3573
+ </ion-header>
3440
3574
  }
3441
3575
 
3442
3576
  <!-- Pull to refresh (only on native iOS/Android) -->
3443
3577
  @if (showRefresh() && isNativePlatform()) {
3444
- <ion-refresher
3445
- slot="fixed"
3446
- (ionRefresh)="handleRefresh($event)"
3447
- [pullFactor]="0.4"
3448
- [pullMin]="80"
3449
- [pullMax]="240"
3450
- closeDuration="600ms">
3451
- <ion-refresher-content
3452
- pullingIcon="remixArrowDownS"
3453
- refreshingSpinner="crescent">
3454
- </ion-refresher-content>
3455
- </ion-refresher>
3578
+ <ion-refresher
3579
+ slot="fixed"
3580
+ (ionRefresh)="handleRefresh($event)"
3581
+ [pullFactor]="0.4"
3582
+ [pullMin]="80"
3583
+ [pullMax]="240"
3584
+ closeDuration="600ms"
3585
+ >
3586
+ <ion-refresher-content
3587
+ pullingIcon="remixArrowDownS"
3588
+ refreshingSpinner="crescent"
3589
+ >
3590
+ </ion-refresher-content>
3591
+ </ion-refresher>
3456
3592
  }
3457
3593
 
3458
3594
  <!-- Expandable header section (purple background) -->
3459
3595
  <div class="header-expandable">
3460
3596
  <div class="header-expandable-inner">
3461
3597
  <div class="header-expandable__text">
3462
- <h1 class="header-expandable__title">{{ headerTitle() || title() }}</h1>
3598
+ <h1 class="header-expandable__title">
3599
+ {{ headerTitle() || title() }}
3600
+ </h1>
3463
3601
  @if (headerSubtitle()) {
3464
- <p class="header-expandable__subtitle">{{ headerSubtitle() }}</p>
3602
+ <p class="header-expandable__subtitle">{{ headerSubtitle() }}</p>
3465
3603
  }
3466
3604
  </div>
3467
-
3605
+
3468
3606
  <!-- Slot for custom header content (e.g., property tiles) -->
3469
3607
  <ng-content select="[header-content]"></ng-content>
3470
3608
  </div>
@@ -4493,7 +4631,7 @@ class DsMobileCommentComponent {
4493
4631
  }
4494
4632
  </div>
4495
4633
  </div>
4496
- `, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ":host{display:flex;gap:12px;padding:8px;position:relative;border-radius:16px;transition:all .2s ease;background:var(--color-background-primary, #ffffff);margin-bottom:8px;margin-left:-8px;margin-right:-8px}:host:last-child{margin-bottom:0}:host:after{content:\"\";position:absolute;bottom:-4px;left:44px;right:8px;height:1px;background:var(--border-color-default)}:host:last-child:after{display:none}:host.clickable{cursor:pointer}:host.clickable:active{background:var(--color-background-neutral-primary-hover, #f5f5f5)}.avatar-wrapper{position:relative;display:flex;align-items:flex-start;justify-content:center;flex-shrink:0}.comment-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.comment-header{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.header-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.desktop-more-button::ng-deep button{border-radius:50%!important}.action-like{display:flex;align-items:center;gap:2px;color:var(--color-text-secondary, #737373);cursor:pointer;transition:color .2s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:18px}.like-count{opacity:1}.like-count.hidden{opacity:0}.action-like.active{color:#f91880}.icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.icon-pulse{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none}.icon-pulse.animating{animation:pulse .4s cubic-bezier(.4,0,.2,1)}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.8}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.comment-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:22px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:pre-wrap;word-wrap:break-word}.comment-text ::ng-deep .mention{color:var(--color-brand-base, #6b5ff5)!important;font-weight:600}.comment-actions{display:flex;align-items:center;gap:12px;margin-top:4px}.action-reply{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-text-secondary, #737373);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:color .2s ease}.action-reply:hover{color:var(--color-text-primary, #1a1a1a)}.action-edit{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-text-secondary, #737373);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:color .2s ease}.action-edit:hover{color:var(--color-text-primary, #1a1a1a)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsIconButtonComponent, selector: "ds-icon-button", inputs: ["variant", "size", "icon", "disabled", "loading", "pressed", "expanded", "ariaLabel", "tooltip", "tooltipDisabled", "tooltipPlacement"], outputs: ["clicked", "focused", "blurred"] }] });
4634
+ `, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ":host{display:flex;gap:12px;padding:8px;position:relative;border-radius:16px;transition:all .2s ease;background:var(--color-background-primary, #ffffff);margin-bottom:8px;margin-left:-8px;margin-right:-8px}:host:last-child{margin-bottom:0}:host:after{content:\"\";position:absolute;bottom:-4px;left:44px;right:8px;height:1px;background:var(--border-color-default)}:host:last-child:after{display:none}:host.clickable{cursor:pointer}:host.clickable:active{background:var(--color-background-neutral-primary-hover, #f5f5f5)}.avatar-wrapper{position:relative;display:flex;align-items:flex-start;justify-content:center;flex-shrink:0}.comment-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.comment-header{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.header-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.desktop-more-button::ng-deep button{border-radius:50%!important}.action-like{display:flex;align-items:center;gap:2px;color:var(--color-text-secondary, #737373);cursor:pointer;transition:color .2s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:18px}.like-count{opacity:1}.like-count.hidden{opacity:0}.action-like.active{color:#f91880}.icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.icon-pulse{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none}.icon-pulse.animating{animation:pulse .4s cubic-bezier(.4,0,.2,1)}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.8}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.comment-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:22px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:pre-wrap;word-wrap:break-word}.comment-text ::ng-deep .mention{color:var(--color-brand-base, #6b5ff5)!important;font-weight:600}.comment-actions{display:flex;align-items:center;gap:12px;margin-top:4px}.action-reply{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-text-secondary, #737373);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:color .2s ease}.action-reply:hover{color:var(--color-text-primary, #1a1a1a)}.action-edit{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-text-secondary, #737373);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:color .2s ease}.action-edit:hover{color:var(--color-text-primary, #1a1a1a)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsIconButtonComponent, selector: "ds-icon-button", inputs: ["variant", "size", "icon", "disabled", "loading", "pressed", "expanded", "ariaLabel", "tooltip", "tooltipDisabled", "tooltipPlacement"], outputs: ["clicked", "focused", "blurred"] }] });
4497
4635
  }
4498
4636
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileCommentComponent, decorators: [{
4499
4637
  type: Component,
@@ -4541,7 +4679,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
4541
4679
  }
4542
4680
  </div>
4543
4681
  </div>
4544
- `, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ":host{display:flex;gap:12px;padding:8px;position:relative;border-radius:16px;transition:all .2s ease;background:var(--color-background-primary, #ffffff);margin-bottom:8px;margin-left:-8px;margin-right:-8px}:host:last-child{margin-bottom:0}:host:after{content:\"\";position:absolute;bottom:-4px;left:44px;right:8px;height:1px;background:var(--border-color-default)}:host:last-child:after{display:none}:host.clickable{cursor:pointer}:host.clickable:active{background:var(--color-background-neutral-primary-hover, #f5f5f5)}.avatar-wrapper{position:relative;display:flex;align-items:flex-start;justify-content:center;flex-shrink:0}.comment-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.comment-header{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.header-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.desktop-more-button::ng-deep button{border-radius:50%!important}.action-like{display:flex;align-items:center;gap:2px;color:var(--color-text-secondary, #737373);cursor:pointer;transition:color .2s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:18px}.like-count{opacity:1}.like-count.hidden{opacity:0}.action-like.active{color:#f91880}.icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.icon-pulse{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none}.icon-pulse.animating{animation:pulse .4s cubic-bezier(.4,0,.2,1)}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.8}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.comment-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:22px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:pre-wrap;word-wrap:break-word}.comment-text ::ng-deep .mention{color:var(--color-brand-base, #6b5ff5)!important;font-weight:600}.comment-actions{display:flex;align-items:center;gap:12px;margin-top:4px}.action-reply{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-text-secondary, #737373);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:color .2s ease}.action-reply:hover{color:var(--color-text-primary, #1a1a1a)}.action-edit{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-text-secondary, #737373);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:color .2s ease}.action-edit:hover{color:var(--color-text-primary, #1a1a1a)}\n"] }]
4682
+ `, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ":host{display:flex;gap:12px;padding:8px;position:relative;border-radius:16px;transition:all .2s ease;background:var(--color-background-primary, #ffffff);margin-bottom:8px;margin-left:-8px;margin-right:-8px}:host:last-child{margin-bottom:0}:host:after{content:\"\";position:absolute;bottom:-4px;left:44px;right:8px;height:1px;background:var(--border-color-default)}:host:last-child:after{display:none}:host.clickable{cursor:pointer}:host.clickable:active{background:var(--color-background-neutral-primary-hover, #f5f5f5)}.avatar-wrapper{position:relative;display:flex;align-items:flex-start;justify-content:center;flex-shrink:0}.comment-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.comment-header{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.header-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.desktop-more-button::ng-deep button{border-radius:50%!important}.action-like{display:flex;align-items:center;gap:2px;color:var(--color-text-secondary, #737373);cursor:pointer;transition:color .2s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:18px}.like-count{opacity:1}.like-count.hidden{opacity:0}.action-like.active{color:#f91880}.icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.icon-pulse{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none}.icon-pulse.animating{animation:pulse .4s cubic-bezier(.4,0,.2,1)}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.8}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.comment-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:22px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:pre-wrap;word-wrap:break-word}.comment-text ::ng-deep .mention{color:var(--color-brand-base, #6b5ff5)!important;font-weight:600}.comment-actions{display:flex;align-items:center;gap:12px;margin-top:4px}.action-reply{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-text-secondary, #737373);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:color .2s ease}.action-reply:hover{color:var(--color-text-primary, #1a1a1a)}.action-edit{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-text-secondary, #737373);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:color .2s ease}.action-edit:hover{color:var(--color-text-primary, #1a1a1a)}\n"] }]
4545
4683
  }], ctorParameters: () => [], propDecorators: { authorName: [{ type: i0.Input, args: [{ isSignal: true, alias: "authorName", required: true }] }], authorRole: [{ type: i0.Input, args: [{ isSignal: true, alias: "authorRole", required: true }] }], timestamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "timestamp", required: true }] }], content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: true }] }], avatarInitials: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarInitials", required: false }] }], avatarType: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarType", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], isOwnComment: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOwnComment", required: false }] }], isLiked: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLiked", required: false }] }], likeToggled: [{ type: i0.Output, args: ["likeToggled"] }], likeCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "likeCount", required: false }] }], commentClick: [{ type: i0.Output, args: ["commentClick"] }], replyClick: [{ type: i0.Output, args: ["replyClick"] }], editClick: [{ type: i0.Output, args: ["editClick"] }], longPress: [{ type: i0.Output, args: ["longPress"] }] } });
4546
4684
 
4547
4685
  /**
@@ -6533,6 +6671,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
6533
6671
  * [timestamp]="'2h ago'"
6534
6672
  * [avatarInitials]="'JD'"
6535
6673
  * [clickable]="true"
6674
+ * [enableLongPress]="true"
6536
6675
  * (postClick)="openPost()">
6537
6676
  *
6538
6677
  * <post-content>
@@ -6589,6 +6728,13 @@ class DsMobileInteractiveListItemPostComponent {
6589
6728
  * Whether the post card is clickable
6590
6729
  */
6591
6730
  clickable = input(false, ...(ngDevMode ? [{ debugName: "clickable" }] : []));
6731
+ /**
6732
+ * Enable long-press interaction when clickable is true
6733
+ * Set to false to disable long-press but keep click
6734
+ * Also controls visibility of desktop "more" button
6735
+ * @default true
6736
+ */
6737
+ enableLongPress = input(true, ...(ngDevMode ? [{ debugName: "enableLongPress" }] : []));
6592
6738
  /**
6593
6739
  * Emits when the post card is clicked (if clickable)
6594
6740
  */
@@ -6616,11 +6762,12 @@ class DsMobileInteractiveListItemPostComponent {
6616
6762
  this.longPress.emit();
6617
6763
  }
6618
6764
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileInteractiveListItemPostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6619
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: DsMobileInteractiveListItemPostComponent, isStandalone: true, selector: "ds-mobile-interactive-list-item-post", inputs: { authorName: { classPropertyName: "authorName", publicName: "authorName", isSignal: true, isRequired: true, transformFunction: null }, authorRole: { classPropertyName: "authorRole", publicName: "authorRole", isSignal: true, isRequired: true, transformFunction: null }, timestamp: { classPropertyName: "timestamp", publicName: "timestamp", isSignal: true, isRequired: true, transformFunction: null }, avatarInitials: { classPropertyName: "avatarInitials", publicName: "avatarInitials", isSignal: true, isRequired: false, transformFunction: null }, avatarType: { classPropertyName: "avatarType", publicName: "avatarType", isSignal: true, isRequired: false, transformFunction: null }, avatarSrc: { classPropertyName: "avatarSrc", publicName: "avatarSrc", isSignal: true, isRequired: false, transformFunction: null }, avatarIconName: { classPropertyName: "avatarIconName", publicName: "avatarIconName", isSignal: true, isRequired: false, transformFunction: null }, showBadge: { classPropertyName: "showBadge", publicName: "showBadge", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { postClick: "postClick", commentClick: "commentClick", longPress: "longPress" }, ngImport: i0, template: `
6765
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: DsMobileInteractiveListItemPostComponent, isStandalone: true, selector: "ds-mobile-interactive-list-item-post", inputs: { authorName: { classPropertyName: "authorName", publicName: "authorName", isSignal: true, isRequired: true, transformFunction: null }, authorRole: { classPropertyName: "authorRole", publicName: "authorRole", isSignal: true, isRequired: true, transformFunction: null }, timestamp: { classPropertyName: "timestamp", publicName: "timestamp", isSignal: true, isRequired: true, transformFunction: null }, avatarInitials: { classPropertyName: "avatarInitials", publicName: "avatarInitials", isSignal: true, isRequired: false, transformFunction: null }, avatarType: { classPropertyName: "avatarType", publicName: "avatarType", isSignal: true, isRequired: false, transformFunction: null }, avatarSrc: { classPropertyName: "avatarSrc", publicName: "avatarSrc", isSignal: true, isRequired: false, transformFunction: null }, avatarIconName: { classPropertyName: "avatarIconName", publicName: "avatarIconName", isSignal: true, isRequired: false, transformFunction: null }, showBadge: { classPropertyName: "showBadge", publicName: "showBadge", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, enableLongPress: { classPropertyName: "enableLongPress", publicName: "enableLongPress", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { postClick: "postClick", commentClick: "commentClick", longPress: "longPress" }, ngImport: i0, template: `
6620
6766
  <ds-mobile-list-item
6621
6767
  [leadingSize]="'32px'"
6622
6768
  [variant]="variant()"
6623
6769
  [interactive]="clickable()"
6770
+ [enableLongPress]="enableLongPress()"
6624
6771
  (itemClick)="handlePostClick()"
6625
6772
  (longPress)="handleLongPress()"
6626
6773
  (moreButtonClick)="handleMoreButtonClick($event)">
@@ -6653,7 +6800,7 @@ class DsMobileInteractiveListItemPostComponent {
6653
6800
  <ng-content select="post-actions" />
6654
6801
  </div>
6655
6802
  </ds-mobile-list-item>
6656
- `, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.post-header{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:8px}.author-details{display:flex;flex-direction:column;justify-content:center;gap:2px;flex:1;min-width:0}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-tertiary, #626B78);display:flex;align-items:center;gap:6px}.menu-slot{flex-shrink:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsAvatarWithBadgeComponent, selector: "ds-avatar-with-badge", inputs: ["type", "size", "initials", "src", "iconName", "showBadge", "badgePosition"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
6803
+ `, isInline: true, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.post-header{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:8px}.menu-slot{flex-shrink:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsAvatarWithBadgeComponent, selector: "ds-avatar-with-badge", inputs: ["type", "size", "initials", "src", "iconName", "showBadge", "badgePosition"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
6657
6804
  }
6658
6805
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileInteractiveListItemPostComponent, decorators: [{
6659
6806
  type: Component,
@@ -6662,6 +6809,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
6662
6809
  [leadingSize]="'32px'"
6663
6810
  [variant]="variant()"
6664
6811
  [interactive]="clickable()"
6812
+ [enableLongPress]="enableLongPress()"
6665
6813
  (itemClick)="handlePostClick()"
6666
6814
  (longPress)="handleLongPress()"
6667
6815
  (moreButtonClick)="handleMoreButtonClick($event)">
@@ -6694,8 +6842,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
6694
6842
  <ng-content select="post-actions" />
6695
6843
  </div>
6696
6844
  </ds-mobile-list-item>
6697
- `, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.post-header{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:8px}.author-details{display:flex;flex-direction:column;justify-content:center;gap:2px;flex:1;min-width:0}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-tertiary, #626B78);display:flex;align-items:center;gap:6px}.menu-slot{flex-shrink:0}\n"] }]
6698
- }], propDecorators: { authorName: [{ type: i0.Input, args: [{ isSignal: true, alias: "authorName", required: true }] }], authorRole: [{ type: i0.Input, args: [{ isSignal: true, alias: "authorRole", required: true }] }], timestamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "timestamp", required: true }] }], avatarInitials: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarInitials", required: false }] }], avatarType: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarType", required: false }] }], avatarSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarSrc", required: false }] }], avatarIconName: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarIconName", required: false }] }], showBadge: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBadge", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], postClick: [{ type: i0.Output, args: ["postClick"] }], commentClick: [{ type: i0.Output, args: ["commentClick"] }], longPress: [{ type: i0.Output, args: ["longPress"] }] } });
6845
+ `, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.post-header{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:8px}.menu-slot{flex-shrink:0}\n"] }]
6846
+ }], propDecorators: { authorName: [{ type: i0.Input, args: [{ isSignal: true, alias: "authorName", required: true }] }], authorRole: [{ type: i0.Input, args: [{ isSignal: true, alias: "authorRole", required: true }] }], timestamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "timestamp", required: true }] }], avatarInitials: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarInitials", required: false }] }], avatarType: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarType", required: false }] }], avatarSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarSrc", required: false }] }], avatarIconName: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarIconName", required: false }] }], showBadge: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBadge", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], enableLongPress: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableLongPress", required: false }] }], postClick: [{ type: i0.Output, args: ["postClick"] }], commentClick: [{ type: i0.Output, args: ["commentClick"] }], longPress: [{ type: i0.Output, args: ["longPress"] }] } });
6699
6847
  /**
6700
6848
  * PostContentComponent
6701
6849
  *
@@ -6999,6 +7147,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
6999
7147
  * [timestamp]="'12 days ago'"
7000
7148
  * [iconName]="'remixCalendarLine'"
7001
7149
  * [clickable]="true"
7150
+ * [enableLongPress]="true"
7002
7151
  * (inquiryClick)="openInquiry()">
7003
7152
  * </ds-mobile-interactive-list-item-inquiry>
7004
7153
  * ```
@@ -7046,6 +7195,13 @@ class DsMobileInteractiveListItemInquiryComponent {
7046
7195
  * Whether to show chevron icon
7047
7196
  */
7048
7197
  showChevron = input(true, ...(ngDevMode ? [{ debugName: "showChevron" }] : []));
7198
+ /**
7199
+ * Enable long-press interaction when clickable is true
7200
+ * Set to false to disable long-press but keep click
7201
+ * Also controls visibility of desktop "more" button
7202
+ * @default true
7203
+ */
7204
+ enableLongPress = input(true, ...(ngDevMode ? [{ debugName: "enableLongPress" }] : []));
7049
7205
  /**
7050
7206
  * Emits when the inquiry item is clicked (if clickable)
7051
7207
  */
@@ -7074,11 +7230,12 @@ class DsMobileInteractiveListItemInquiryComponent {
7074
7230
  this.longPress.emit();
7075
7231
  }
7076
7232
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileInteractiveListItemInquiryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7077
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: DsMobileInteractiveListItemInquiryComponent, isStandalone: true, selector: "ds-mobile-interactive-list-item-inquiry", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, statusLabel: { classPropertyName: "statusLabel", publicName: "statusLabel", isSignal: true, isRequired: false, transformFunction: null }, timestamp: { classPropertyName: "timestamp", publicName: "timestamp", isSignal: true, isRequired: true, transformFunction: null }, iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: false, transformFunction: null }, iconColor: { classPropertyName: "iconColor", publicName: "iconColor", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, showChevron: { classPropertyName: "showChevron", publicName: "showChevron", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { inquiryClick: "inquiryClick", longPress: "longPress" }, ngImport: i0, template: `
7233
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: DsMobileInteractiveListItemInquiryComponent, isStandalone: true, selector: "ds-mobile-interactive-list-item-inquiry", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, statusLabel: { classPropertyName: "statusLabel", publicName: "statusLabel", isSignal: true, isRequired: false, transformFunction: null }, timestamp: { classPropertyName: "timestamp", publicName: "timestamp", isSignal: true, isRequired: true, transformFunction: null }, iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: false, transformFunction: null }, iconColor: { classPropertyName: "iconColor", publicName: "iconColor", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, showChevron: { classPropertyName: "showChevron", publicName: "showChevron", isSignal: true, isRequired: false, transformFunction: null }, enableLongPress: { classPropertyName: "enableLongPress", publicName: "enableLongPress", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { inquiryClick: "inquiryClick", longPress: "longPress" }, ngImport: i0, template: `
7078
7234
  <ds-mobile-list-item
7079
7235
  [leadingSize]="'32px'"
7080
7236
  [variant]="variant()"
7081
7237
  [interactive]="clickable()"
7238
+ [enableLongPress]="enableLongPress()"
7082
7239
  (itemClick)="handleInquiryClick()"
7083
7240
  (longPress)="handleLongPress()"
7084
7241
  (moreButtonClick)="handleMoreButtonClick($event)">
@@ -7126,7 +7283,7 @@ class DsMobileInteractiveListItemInquiryComponent {
7126
7283
  </div>
7127
7284
  }
7128
7285
  </ds-mobile-list-item>
7129
- `, isInline: true, styles: [":root .inquiry-name,.inquiry-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:root .inquiry-meta,.inquiry-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-tertiary, #626B78);display:flex;align-items:center;gap:6px}:root .inquiry-meta .separator,.inquiry-meta .separator{color:var(--text-color-default-tertiary, #626B78)}:root .lightbox-context .inquiry-name,.lightbox-context .inquiry-name,:root .overlay-context .inquiry-name,.overlay-context .inquiry-name{color:#fffffff2}:root .lightbox-context .inquiry-meta,.lightbox-context .inquiry-meta,:root .overlay-context .inquiry-meta,.overlay-context .inquiry-meta{color:#ffffffb3}:root .lightbox-context .inquiry-meta .separator,.lightbox-context .inquiry-meta .separator,:root .overlay-context .inquiry-meta .separator,.overlay-context .inquiry-meta .separator{color:#ffffff80}\n", ":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.inquiry-avatar{flex-shrink:0}.inquiry-avatar:not(.closed)::ng-deep .avatar--icon{background-color:var(--color-primary-surface, #5d5fef)!important}.inquiry-avatar:not(.closed)::ng-deep .avatar--icon ds-icon,.inquiry-avatar:not(.closed)::ng-deep .avatar--icon ds-icon::ng-deep svg{color:var(--color-primary-content, #ffffff)!important;fill:var(--color-primary-content, #ffffff)!important}.inquiry-avatar.closed::ng-deep .avatar--icon{background-color:var(--text-color-default-tertiary, #737373)!important}.inquiry-avatar.closed::ng-deep .avatar--icon ds-icon,.inquiry-avatar.closed::ng-deep .avatar--icon ds-icon::ng-deep svg{color:#fff!important;fill:#fff!important}.inquiry-content{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.inquiry-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inquiry-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545B66);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.inquiry-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66);display:flex;align-items:center;gap:8px;margin-top:4px}.inquiry-status{display:flex;align-items:center;gap:6px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.inquiry-status.open,.inquiry-status.closed{color:var(--text-color-default-tertiary, #737373)}.inquiry-timestamp{display:flex;align-items:center;gap:4px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.inquiry-trailing{display:flex;align-items:center;color:var(--color-text-tertiary, #a3a3a3)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsShapeIndicatorComponent, selector: "ds-shape-indicator", inputs: ["shape", "variant", "label"] }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
7286
+ `, isInline: true, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.inquiry-avatar{flex-shrink:0}.inquiry-avatar:not(.closed)::ng-deep .avatar--icon{background-color:var(--color-primary-surface, #5d5fef)!important}.inquiry-avatar:not(.closed)::ng-deep .avatar--icon ds-icon,.inquiry-avatar:not(.closed)::ng-deep .avatar--icon ds-icon::ng-deep svg{color:var(--color-primary-content, #ffffff)!important;fill:var(--color-primary-content, #ffffff)!important}.inquiry-avatar.closed::ng-deep .avatar--icon{background-color:var(--text-color-default-tertiary, #737373)!important}.inquiry-avatar.closed::ng-deep .avatar--icon ds-icon,.inquiry-avatar.closed::ng-deep .avatar--icon ds-icon::ng-deep svg{color:#fff!important;fill:#fff!important}.inquiry-content{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.inquiry-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inquiry-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545B66);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.inquiry-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs, 12px);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66);display:flex;align-items:center;gap:8px;margin-top:4px}.inquiry-status{display:flex;align-items:center;gap:6px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.inquiry-status.open,.inquiry-status.closed{color:var(--text-color-default-tertiary, #737373)}.inquiry-timestamp{display:flex;align-items:center;gap:4px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.inquiry-trailing{display:flex;align-items:center;color:var(--color-text-tertiary, #a3a3a3)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsShapeIndicatorComponent, selector: "ds-shape-indicator", inputs: ["shape", "variant", "label"] }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
7130
7287
  }
7131
7288
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileInteractiveListItemInquiryComponent, decorators: [{
7132
7289
  type: Component,
@@ -7135,6 +7292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
7135
7292
  [leadingSize]="'32px'"
7136
7293
  [variant]="variant()"
7137
7294
  [interactive]="clickable()"
7295
+ [enableLongPress]="enableLongPress()"
7138
7296
  (itemClick)="handleInquiryClick()"
7139
7297
  (longPress)="handleLongPress()"
7140
7298
  (moreButtonClick)="handleMoreButtonClick($event)">
@@ -7182,8 +7340,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
7182
7340
  </div>
7183
7341
  }
7184
7342
  </ds-mobile-list-item>
7185
- `, styles: [":root .inquiry-name,.inquiry-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:root .inquiry-meta,.inquiry-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-tertiary, #626B78);display:flex;align-items:center;gap:6px}:root .inquiry-meta .separator,.inquiry-meta .separator{color:var(--text-color-default-tertiary, #626B78)}:root .lightbox-context .inquiry-name,.lightbox-context .inquiry-name,:root .overlay-context .inquiry-name,.overlay-context .inquiry-name{color:#fffffff2}:root .lightbox-context .inquiry-meta,.lightbox-context .inquiry-meta,:root .overlay-context .inquiry-meta,.overlay-context .inquiry-meta{color:#ffffffb3}:root .lightbox-context .inquiry-meta .separator,.lightbox-context .inquiry-meta .separator,:root .overlay-context .inquiry-meta .separator,.overlay-context .inquiry-meta .separator{color:#ffffff80}\n", ":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.inquiry-avatar{flex-shrink:0}.inquiry-avatar:not(.closed)::ng-deep .avatar--icon{background-color:var(--color-primary-surface, #5d5fef)!important}.inquiry-avatar:not(.closed)::ng-deep .avatar--icon ds-icon,.inquiry-avatar:not(.closed)::ng-deep .avatar--icon ds-icon::ng-deep svg{color:var(--color-primary-content, #ffffff)!important;fill:var(--color-primary-content, #ffffff)!important}.inquiry-avatar.closed::ng-deep .avatar--icon{background-color:var(--text-color-default-tertiary, #737373)!important}.inquiry-avatar.closed::ng-deep .avatar--icon ds-icon,.inquiry-avatar.closed::ng-deep .avatar--icon ds-icon::ng-deep svg{color:#fff!important;fill:#fff!important}.inquiry-content{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.inquiry-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inquiry-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545B66);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.inquiry-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66);display:flex;align-items:center;gap:8px;margin-top:4px}.inquiry-status{display:flex;align-items:center;gap:6px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.inquiry-status.open,.inquiry-status.closed{color:var(--text-color-default-tertiary, #737373)}.inquiry-timestamp{display:flex;align-items:center;gap:4px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.inquiry-trailing{display:flex;align-items:center;color:var(--color-text-tertiary, #a3a3a3)}\n"] }]
7186
- }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], statusLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "statusLabel", required: false }] }], timestamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "timestamp", required: true }] }], iconName: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconName", required: false }] }], iconColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconColor", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], showChevron: [{ type: i0.Input, args: [{ isSignal: true, alias: "showChevron", required: false }] }], inquiryClick: [{ type: i0.Output, args: ["inquiryClick"] }], longPress: [{ type: i0.Output, args: ["longPress"] }] } });
7343
+ `, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.inquiry-avatar{flex-shrink:0}.inquiry-avatar:not(.closed)::ng-deep .avatar--icon{background-color:var(--color-primary-surface, #5d5fef)!important}.inquiry-avatar:not(.closed)::ng-deep .avatar--icon ds-icon,.inquiry-avatar:not(.closed)::ng-deep .avatar--icon ds-icon::ng-deep svg{color:var(--color-primary-content, #ffffff)!important;fill:var(--color-primary-content, #ffffff)!important}.inquiry-avatar.closed::ng-deep .avatar--icon{background-color:var(--text-color-default-tertiary, #737373)!important}.inquiry-avatar.closed::ng-deep .avatar--icon ds-icon,.inquiry-avatar.closed::ng-deep .avatar--icon ds-icon::ng-deep svg{color:#fff!important;fill:#fff!important}.inquiry-content{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.inquiry-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inquiry-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545B66);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.inquiry-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs, 12px);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66);display:flex;align-items:center;gap:8px;margin-top:4px}.inquiry-status{display:flex;align-items:center;gap:6px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.inquiry-status.open,.inquiry-status.closed{color:var(--text-color-default-tertiary, #737373)}.inquiry-timestamp{display:flex;align-items:center;gap:4px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.inquiry-trailing{display:flex;align-items:center;color:var(--color-text-tertiary, #a3a3a3)}\n"] }]
7344
+ }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], statusLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "statusLabel", required: false }] }], timestamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "timestamp", required: true }] }], iconName: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconName", required: false }] }], iconColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconColor", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], showChevron: [{ type: i0.Input, args: [{ isSignal: true, alias: "showChevron", required: false }] }], enableLongPress: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableLongPress", required: false }] }], inquiryClick: [{ type: i0.Output, args: ["inquiryClick"] }], longPress: [{ type: i0.Output, args: ["longPress"] }] } });
7187
7345
 
7188
7346
  /**
7189
7347
  * DsMobileInteractiveListItemMessageComponent
@@ -7296,7 +7454,7 @@ class DsMobileInteractiveListItemMessageComponent {
7296
7454
  <p class="message-preview">{{ message() }}</p>
7297
7455
  </div>
7298
7456
  </ds-mobile-list-item>
7299
- `, isInline: true, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.message-header{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:8px}.sender-details{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1;min-width:0}.sender-name-row{display:flex;align-items:center;gap:6px;flex-shrink:0}.sender-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.sender-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-tertiary, #737373);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;display:flex;align-items:center;gap:4px}.meta-separator{color:var(--text-color-default-tertiary, #737373);opacity:.5}.unread-indicator{width:8px;height:8px;border-radius:50%;background:var(--color-brand-primary, #5d5fef);flex-shrink:0}.message-preview{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545B66);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsAvatarWithBadgeComponent, selector: "ds-avatar-with-badge", inputs: ["type", "size", "initials", "src", "iconName", "showBadge", "badgePosition"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
7457
+ `, isInline: true, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.message-header{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:8px}.sender-details{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1;min-width:0}.sender-name-row{display:flex;align-items:center;gap:6px;flex-shrink:0}.sender-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.sender-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs, 12px);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-tertiary, #737373);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;display:flex;align-items:center;gap:4px}.meta-separator{color:var(--text-color-default-tertiary, #737373);opacity:.5}.unread-indicator{width:8px;height:8px;border-radius:50%;background:var(--color-brand-primary, #5d5fef);flex-shrink:0}.message-preview{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545B66);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsAvatarWithBadgeComponent, selector: "ds-avatar-with-badge", inputs: ["type", "size", "initials", "src", "iconName", "showBadge", "badgePosition"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
7300
7458
  }
7301
7459
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileInteractiveListItemMessageComponent, decorators: [{
7302
7460
  type: Component,
@@ -7338,7 +7496,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
7338
7496
  <p class="message-preview">{{ message() }}</p>
7339
7497
  </div>
7340
7498
  </ds-mobile-list-item>
7341
- `, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.message-header{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:8px}.sender-details{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1;min-width:0}.sender-name-row{display:flex;align-items:center;gap:6px;flex-shrink:0}.sender-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.sender-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-tertiary, #737373);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;display:flex;align-items:center;gap:4px}.meta-separator{color:var(--text-color-default-tertiary, #737373);opacity:.5}.unread-indicator{width:8px;height:8px;border-radius:50%;background:var(--color-brand-primary, #5d5fef);flex-shrink:0}.message-preview{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545B66);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}\n"] }]
7499
+ `, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.message-header{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:8px}.sender-details{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1;min-width:0}.sender-name-row{display:flex;align-items:center;gap:6px;flex-shrink:0}.sender-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.sender-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs, 12px);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-tertiary, #737373);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;display:flex;align-items:center;gap:4px}.meta-separator{color:var(--text-color-default-tertiary, #737373);opacity:.5}.unread-indicator{width:8px;height:8px;border-radius:50%;background:var(--color-brand-primary, #5d5fef);flex-shrink:0}.message-preview{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545B66);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}\n"] }]
7342
7500
  }], propDecorators: { senderName: [{ type: i0.Input, args: [{ isSignal: true, alias: "senderName", required: true }] }], senderRole: [{ type: i0.Input, args: [{ isSignal: true, alias: "senderRole", required: true }] }], timestamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "timestamp", required: false }] }], message: [{ type: i0.Input, args: [{ isSignal: true, alias: "message", required: true }] }], avatarInitials: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarInitials", required: false }] }], avatarType: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarType", required: false }] }], avatarSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarSrc", required: false }] }], unread: [{ type: i0.Input, args: [{ isSignal: true, alias: "unread", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], messageClick: [{ type: i0.Output, args: ["messageClick"] }], longPress: [{ type: i0.Output, args: ["longPress"] }] } });
7343
7501
 
7344
7502
  /**
@@ -7580,19 +7738,19 @@ class DsMobileTabBarComponent {
7580
7738
  this.setupBreakpointDetection();
7581
7739
  // Debug: Log initial state
7582
7740
  setTimeout(() => {
7583
- console.log('[ds-mobile-tab-bar] Initial state:', {
7584
- isDesktop: this.isDesktop(),
7585
- windowWidth: window.innerWidth,
7586
- mediaQuery: this.mediaQuery?.matches,
7587
- userAgent: navigator.userAgent
7588
- });
7741
+ // console.log('[ds-mobile-tab-bar] Initial state:', {
7742
+ // isDesktop: this.isDesktop(),
7743
+ // windowWidth: window.innerWidth,
7744
+ // mediaQuery: this.mediaQuery?.matches,
7745
+ // userAgent: navigator.userAgent
7746
+ // });
7589
7747
  }, 100);
7590
7748
  // Watch for isDesktop changes and update slot reactively
7591
7749
  // effect() must be called in constructor (injection context)
7592
7750
  effect(() => {
7593
7751
  // This effect runs whenever isDesktop() changes
7594
7752
  const _ = this.isDesktop(); // Read the signal to create dependency
7595
- console.log('[ds-mobile-tab-bar] effect() triggered, isDesktop:', this.isDesktop());
7753
+ // console.log('[ds-mobile-tab-bar] effect() triggered, isDesktop:', this.isDesktop());
7596
7754
  if (this.elementRef.nativeElement) {
7597
7755
  // Use setTimeout to ensure DOM is ready
7598
7756
  setTimeout(() => this.updateSlot(), 0);
@@ -7603,7 +7761,7 @@ class DsMobileTabBarComponent {
7603
7761
  // Listen to router events to detect active tab from URL
7604
7762
  if (this.router) {
7605
7763
  this.routerSubscription = this.router.events
7606
- .pipe(filter(event => event instanceof NavigationEnd))
7764
+ .pipe(filter((event) => event instanceof NavigationEnd))
7607
7765
  .subscribe((event) => {
7608
7766
  const url = event.urlAfterRedirects || event.url;
7609
7767
  // Extract the route segment (e.g., /tab-bar-test/home -> home)
@@ -7611,7 +7769,7 @@ class DsMobileTabBarComponent {
7611
7769
  const lastSegment = segments[segments.length - 1];
7612
7770
  // Find matching tab by route
7613
7771
  if (this.tabs && lastSegment) {
7614
- const matchingTab = this.tabs.find(tab => tab.route === lastSegment);
7772
+ const matchingTab = this.tabs.find((tab) => tab.route === lastSegment);
7615
7773
  if (matchingTab) {
7616
7774
  this.activeTab.set(matchingTab.route);
7617
7775
  }
@@ -7643,14 +7801,14 @@ class DsMobileTabBarComponent {
7643
7801
  const hostSlotValue = this.isDesktop() ? 'top' : 'bottom';
7644
7802
  const currentHostSlot = hostElement.getAttribute('slot');
7645
7803
  if (currentHostSlot !== hostSlotValue) {
7646
- console.log('[ds-mobile-tab-bar] updateSlot: Setting HOST slot from', currentHostSlot, 'to', hostSlotValue);
7804
+ // console.log('[ds-mobile-tab-bar] updateSlot: Setting HOST slot from', currentHostSlot, 'to', hostSlotValue);
7647
7805
  hostElement.setAttribute('slot', hostSlotValue);
7648
7806
  hostElement.slot = hostSlotValue;
7649
7807
  }
7650
7808
  // Get the ion-tab-bar element
7651
7809
  const tabBar = this.elementRef.nativeElement.querySelector('ion-tab-bar');
7652
7810
  if (!tabBar) {
7653
- console.log('[ds-mobile-tab-bar] updateSlot: tabBar not found, retrying...');
7811
+ // console.log('[ds-mobile-tab-bar] updateSlot: tabBar not found, retrying...');
7654
7812
  // Retry if element not found yet
7655
7813
  setTimeout(() => this.updateSlot(), 50);
7656
7814
  return;
@@ -7659,26 +7817,26 @@ class DsMobileTabBarComponent {
7659
7817
  const currentSlot = tabBar.getAttribute('slot');
7660
7818
  const currentSlotProperty = tabBar.slot;
7661
7819
  // Debug logging
7662
- console.log('[ds-mobile-tab-bar] updateSlot:', {
7663
- isDesktop: this.isDesktop(),
7664
- windowWidth: window.innerWidth,
7665
- slotValue,
7666
- currentSlotAttribute: currentSlot,
7667
- currentSlotProperty: currentSlotProperty,
7668
- tabBarElement: tabBar,
7669
- tabBarParent: tabBar.parentElement?.tagName,
7670
- tabBarInIonTabs: tabBar.closest('ion-tabs') !== null
7671
- });
7820
+ // console.log('[ds-mobile-tab-bar] updateSlot:', {
7821
+ // isDesktop: this.isDesktop(),
7822
+ // windowWidth: window.innerWidth,
7823
+ // slotValue,
7824
+ // currentSlotAttribute: currentSlot,
7825
+ // currentSlotProperty: currentSlotProperty,
7826
+ // tabBarElement: tabBar,
7827
+ // tabBarParent: tabBar.parentElement?.tagName,
7828
+ // tabBarInIonTabs: tabBar.closest('ion-tabs') !== null
7829
+ // });
7672
7830
  // Only update if different to avoid unnecessary DOM manipulation
7673
7831
  if (currentSlot !== slotValue || currentSlotProperty !== slotValue) {
7674
- console.log('[ds-mobile-tab-bar] updateSlot: Setting slot from', currentSlot, 'to', slotValue);
7832
+ // console.log('[ds-mobile-tab-bar] updateSlot: Setting slot from', currentSlot, 'to', slotValue);
7675
7833
  // Set both attribute and property to ensure it works
7676
7834
  tabBar.setAttribute('slot', slotValue);
7677
7835
  tabBar.slot = slotValue;
7678
7836
  // Also try setting it on the parent ion-tabs
7679
7837
  const parentIonTabs = tabBar.closest('ion-tabs');
7680
7838
  if (parentIonTabs) {
7681
- console.log('[ds-mobile-tab-bar] updateSlot: Found parent ion-tabs');
7839
+ // console.log('[ds-mobile-tab-bar] updateSlot: Found parent ion-tabs');
7682
7840
  // Force Ionic to recognize the slot change
7683
7841
  parentIonTabs.forceUpdate?.();
7684
7842
  }
@@ -7687,143 +7845,150 @@ class DsMobileTabBarComponent {
7687
7845
  // Verify it was set
7688
7846
  const verifySlot = tabBar.getAttribute('slot');
7689
7847
  const verifySlotProperty = tabBar.slot;
7690
- console.log('[ds-mobile-tab-bar] updateSlot: After update, slot attribute:', verifySlot, 'slot property:', verifySlotProperty);
7848
+ // console.log('[ds-mobile-tab-bar] updateSlot: After update, slot attribute:', verifySlot, 'slot property:', verifySlotProperty);
7691
7849
  // Check computed styles
7692
7850
  const computedStyle = window.getComputedStyle(tabBar);
7693
- const parentComputedStyle = tabBar.parentElement ? window.getComputedStyle(tabBar.parentElement) : null;
7851
+ const parentComputedStyle = tabBar.parentElement
7852
+ ? window.getComputedStyle(tabBar.parentElement)
7853
+ : null;
7694
7854
  const ionTabsForStyles = tabBar.closest('ion-tabs');
7695
- const ionTabsComputedStyle = ionTabsForStyles ? window.getComputedStyle(ionTabsForStyles) : null;
7696
- console.log('[ds-mobile-tab-bar] updateSlot: Computed styles:', {
7697
- tabBar: {
7698
- position: computedStyle.position,
7699
- top: computedStyle.top,
7700
- bottom: computedStyle.bottom,
7701
- order: computedStyle.order,
7702
- display: computedStyle.display,
7703
- zIndex: computedStyle.zIndex,
7704
- transform: computedStyle.transform
7705
- },
7706
- parent: parentComputedStyle ? {
7707
- display: parentComputedStyle.display,
7708
- flexDirection: parentComputedStyle.flexDirection,
7709
- gridTemplateRows: parentComputedStyle.gridTemplateRows
7710
- } : null,
7711
- ionTabs: ionTabsComputedStyle ? {
7712
- display: ionTabsComputedStyle.display,
7713
- flexDirection: ionTabsComputedStyle.flexDirection,
7714
- gridTemplateRows: ionTabsComputedStyle.gridTemplateRows,
7715
- position: ionTabsComputedStyle.position
7716
- } : null,
7717
- tabBarRect: tabBar.getBoundingClientRect(),
7718
- windowHeight: window.innerHeight
7719
- });
7855
+ const ionTabsComputedStyle = ionTabsForStyles
7856
+ ? window.getComputedStyle(ionTabsForStyles)
7857
+ : null;
7858
+ // console.log('[ds-mobile-tab-bar] updateSlot: Computed styles:', {
7859
+ // tabBar: {
7860
+ // position: computedStyle.position,
7861
+ // top: computedStyle.top,
7862
+ // bottom: computedStyle.bottom,
7863
+ // order: computedStyle.order,
7864
+ // display: computedStyle.display,
7865
+ // zIndex: computedStyle.zIndex,
7866
+ // transform: computedStyle.transform
7867
+ // },
7868
+ // parent: parentComputedStyle ? {
7869
+ // display: parentComputedStyle.display,
7870
+ // flexDirection: parentComputedStyle.flexDirection,
7871
+ // gridTemplateRows: parentComputedStyle.gridTemplateRows
7872
+ // } : null,
7873
+ // ionTabs: ionTabsComputedStyle ? {
7874
+ // display: ionTabsComputedStyle.display,
7875
+ // flexDirection: ionTabsComputedStyle.flexDirection,
7876
+ // gridTemplateRows: ionTabsComputedStyle.gridTemplateRows,
7877
+ // position: ionTabsComputedStyle.position
7878
+ // } : null,
7879
+ // tabBarRect: tabBar.getBoundingClientRect(),
7880
+ // windowHeight: window.innerHeight
7881
+ // });
7720
7882
  }
7721
7883
  else {
7722
- console.log('[ds-mobile-tab-bar] updateSlot: Slot already correct, no update needed');
7884
+ // console.log('[ds-mobile-tab-bar] updateSlot: Slot already correct, no update needed');
7723
7885
  // Even if slot is correct, check computed styles to see why it's not at top
7724
7886
  const computedStyle = window.getComputedStyle(tabBar);
7725
7887
  const ionTabsForStyles = tabBar.closest('ion-tabs');
7726
- const ionTabsComputedStyle = ionTabsForStyles ? window.getComputedStyle(ionTabsForStyles) : null;
7888
+ const ionTabsComputedStyle = ionTabsForStyles
7889
+ ? window.getComputedStyle(ionTabsForStyles)
7890
+ : null;
7727
7891
  const tabBarRect = tabBar.getBoundingClientRect();
7728
7892
  // Log key values directly so they're always visible
7729
- console.log('[ds-mobile-tab-bar] KEY VALUES:');
7730
- console.log(' tabBar.position:', computedStyle.position);
7731
- console.log(' tabBar.top:', computedStyle.top);
7732
- console.log(' tabBar.bottom:', computedStyle.bottom);
7733
- console.log(' tabBar.order:', computedStyle.order);
7734
- console.log(' tabBar.display:', computedStyle.display);
7735
- console.log(' tabBarRect.top:', tabBarRect.top, 'px from top');
7736
- console.log(' tabBarRect.bottom:', tabBarRect.bottom, 'px from top');
7737
- console.log(' window.innerHeight:', window.innerHeight);
7893
+ // console.log('[ds-mobile-tab-bar] KEY VALUES:');
7894
+ // console.log(' tabBar.position:', computedStyle.position);
7895
+ // console.log(' tabBar.top:', computedStyle.top);
7896
+ // console.log(' tabBar.bottom:', computedStyle.bottom);
7897
+ // console.log(' tabBar.order:', computedStyle.order);
7898
+ // console.log(' tabBar.display:', computedStyle.display);
7899
+ // console.log(' tabBarRect.top:', tabBarRect.top, 'px from top');
7900
+ // console.log(' tabBarRect.bottom:', tabBarRect.bottom, 'px from top');
7901
+ // console.log(' window.innerHeight:', window.innerHeight);
7738
7902
  if (ionTabsComputedStyle) {
7739
- console.log(' ionTabs.display:', ionTabsComputedStyle.display);
7740
- console.log(' ionTabs.flexDirection:', ionTabsComputedStyle.flexDirection);
7741
- console.log(' ionTabs.gridTemplateRows:', ionTabsComputedStyle.gridTemplateRows);
7903
+ // console.log(' ionTabs.display:', ionTabsComputedStyle.display);
7904
+ // console.log(' ionTabs.flexDirection:', ionTabsComputedStyle.flexDirection);
7905
+ // console.log(' ionTabs.gridTemplateRows:', ionTabsComputedStyle.gridTemplateRows);
7742
7906
  }
7743
7907
  if (ionTabsForStyles) {
7744
7908
  const children = Array.from(ionTabsForStyles.children);
7745
- console.log(' ionTabs children count:', children.length);
7909
+ // console.log(' ionTabs children count:', children.length);
7746
7910
  children.forEach((child, index) => {
7747
- console.log(` [${index}] ${child.tagName} slot="${child.getAttribute('slot')}" order="${window.getComputedStyle(child).order}"`);
7911
+ // console.log(` [${index}] ${child.tagName} slot="${child.getAttribute('slot')}" order="${window.getComputedStyle(child).order}"`);
7748
7912
  });
7749
7913
  }
7750
- console.log('[ds-mobile-tab-bar] updateSlot: Computed styles (slot correct but visually wrong):', {
7751
- tabBar: {
7752
- position: computedStyle.position,
7753
- top: computedStyle.top,
7754
- bottom: computedStyle.bottom,
7755
- order: computedStyle.order,
7756
- display: computedStyle.display,
7757
- zIndex: computedStyle.zIndex,
7758
- transform: computedStyle.transform,
7759
- marginTop: computedStyle.marginTop,
7760
- marginBottom: computedStyle.marginBottom,
7761
- width: computedStyle.width,
7762
- height: computedStyle.height
7763
- },
7764
- ionTabs: ionTabsComputedStyle ? {
7765
- display: ionTabsComputedStyle.display,
7766
- flexDirection: ionTabsComputedStyle.flexDirection,
7767
- gridTemplateRows: ionTabsComputedStyle.gridTemplateRows,
7768
- gridTemplateColumns: ionTabsComputedStyle.gridTemplateColumns,
7769
- position: ionTabsComputedStyle.position,
7770
- alignItems: ionTabsComputedStyle.alignItems,
7771
- justifyContent: ionTabsComputedStyle.justifyContent,
7772
- height: ionTabsComputedStyle.height,
7773
- minHeight: ionTabsComputedStyle.minHeight
7774
- } : null,
7775
- tabBarRect: {
7776
- top: tabBarRect.top,
7777
- bottom: tabBarRect.bottom,
7778
- height: tabBarRect.height,
7779
- y: tabBarRect.y,
7780
- left: tabBarRect.left,
7781
- right: tabBarRect.right,
7782
- width: tabBarRect.width
7783
- },
7784
- windowHeight: window.innerHeight,
7785
- distanceFromTop: tabBarRect.top,
7786
- distanceFromBottom: window.innerHeight - tabBarRect.bottom,
7787
- // Check if tab bar is actually in the DOM at the right position
7788
- tabBarParent: tabBar.parentElement?.tagName,
7789
- tabBarNextSibling: tabBar.nextElementSibling?.tagName,
7790
- tabBarPreviousSibling: tabBar.previousElementSibling?.tagName,
7791
- // Check all children of ion-tabs to see DOM order
7792
- ionTabsChildren: ionTabsForStyles ? Array.from(ionTabsForStyles.children).map((child) => ({
7793
- tagName: child.tagName,
7794
- slot: child.getAttribute('slot'),
7795
- order: window.getComputedStyle(child).order
7796
- })) : null
7797
- });
7914
+ // console.log('[ds-mobile-tab-bar] updateSlot: Computed styles (slot correct but visually wrong):', {
7915
+ // tabBar: {
7916
+ // position: computedStyle.position,
7917
+ // top: computedStyle.top,
7918
+ // bottom: computedStyle.bottom,
7919
+ // order: computedStyle.order,
7920
+ // display: computedStyle.display,
7921
+ // zIndex: computedStyle.zIndex,
7922
+ // transform: computedStyle.transform,
7923
+ // marginTop: computedStyle.marginTop,
7924
+ // marginBottom: computedStyle.marginBottom,
7925
+ // width: computedStyle.width,
7926
+ // height: computedStyle.height
7927
+ // },
7928
+ // ionTabs: ionTabsComputedStyle ? {
7929
+ // display: ionTabsComputedStyle.display,
7930
+ // flexDirection: ionTabsComputedStyle.flexDirection,
7931
+ // gridTemplateRows: ionTabsComputedStyle.gridTemplateRows,
7932
+ // gridTemplateColumns: ionTabsComputedStyle.gridTemplateColumns,
7933
+ // position: ionTabsComputedStyle.position,
7934
+ // alignItems: ionTabsComputedStyle.alignItems,
7935
+ // justifyContent: ionTabsComputedStyle.justifyContent,
7936
+ // height: ionTabsComputedStyle.height,
7937
+ // minHeight: ionTabsComputedStyle.minHeight
7938
+ // } : null,
7939
+ // tabBarRect: {
7940
+ // top: tabBarRect.top,
7941
+ // bottom: tabBarRect.bottom,
7942
+ // height: tabBarRect.height,
7943
+ // y: tabBarRect.y,
7944
+ // left: tabBarRect.left,
7945
+ // right: tabBarRect.right,
7946
+ // width: tabBarRect.width
7947
+ // },
7948
+ // windowHeight: window.innerHeight,
7949
+ // distanceFromTop: tabBarRect.top,
7950
+ // distanceFromBottom: window.innerHeight - tabBarRect.bottom,
7951
+ // // Check if tab bar is actually in the DOM at the right position
7952
+ // tabBarParent: tabBar.parentElement?.tagName,
7953
+ // tabBarNextSibling: tabBar.nextElementSibling?.tagName,
7954
+ // tabBarPreviousSibling: tabBar.previousElementSibling?.tagName,
7955
+ // // Check all children of ion-tabs to see DOM order
7956
+ // ionTabsChildren: ionTabsForStyles ? Array.from(ionTabsForStyles.children).map((child: any) => ({
7957
+ // tagName: child.tagName,
7958
+ // slot: child.getAttribute('slot'),
7959
+ // order: window.getComputedStyle(child).order
7960
+ // })) : null
7961
+ // });
7798
7962
  }
7799
7963
  }
7800
7964
  setupSlotEnforcement() {
7801
7965
  const hostElement = this.elementRef.nativeElement;
7802
7966
  const tabBar = this.elementRef.nativeElement.querySelector('ion-tab-bar');
7803
7967
  if (!tabBar) {
7804
- console.log('[ds-mobile-tab-bar] setupSlotEnforcement: tabBar not found, retrying...');
7968
+ // console.log('[ds-mobile-tab-bar] setupSlotEnforcement: tabBar not found, retrying...');
7805
7969
  // Retry if element not found yet
7806
7970
  setTimeout(() => this.setupSlotEnforcement(), 50);
7807
7971
  return;
7808
7972
  }
7809
- console.log('[ds-mobile-tab-bar] setupSlotEnforcement: Setting up MutationObserver');
7973
+ // console.log('[ds-mobile-tab-bar] setupSlotEnforcement: Setting up MutationObserver');
7810
7974
  const observer = new MutationObserver((mutations) => {
7811
7975
  mutations.forEach((mutation) => {
7812
- if (mutation.type === 'attributes' && mutation.attributeName === 'slot') {
7976
+ if (mutation.type === 'attributes' &&
7977
+ mutation.attributeName === 'slot') {
7813
7978
  const target = mutation.target;
7814
7979
  const expectedSlot = this.isDesktop() ? 'top' : 'bottom';
7815
7980
  // Check both host element and tab bar
7816
7981
  if (target === hostElement || target === tabBar) {
7817
7982
  const currentSlot = target.getAttribute('slot');
7818
- console.log('[ds-mobile-tab-bar] Slot changed by external source:', {
7819
- target: target.tagName,
7820
- currentSlot,
7821
- expectedSlot,
7822
- isDesktop: this.isDesktop()
7823
- });
7983
+ // console.log('[ds-mobile-tab-bar] Slot changed by external source:', {
7984
+ // target: target.tagName,
7985
+ // currentSlot,
7986
+ // expectedSlot,
7987
+ // isDesktop: this.isDesktop()
7988
+ // });
7824
7989
  // If Ionic or something else changed it, force it back
7825
7990
  if (currentSlot !== expectedSlot) {
7826
- console.log('[ds-mobile-tab-bar] Enforcing slot back to:', expectedSlot);
7991
+ // console.log('[ds-mobile-tab-bar] Enforcing slot back to:', expectedSlot);
7827
7992
  // Use requestAnimationFrame to avoid infinite loops
7828
7993
  requestAnimationFrame(() => {
7829
7994
  target.setAttribute('slot', expectedSlot);
@@ -7837,11 +8002,11 @@ class DsMobileTabBarComponent {
7837
8002
  // Observe both host element and tab bar for slot changes
7838
8003
  observer.observe(hostElement, {
7839
8004
  attributes: true,
7840
- attributeFilter: ['slot']
8005
+ attributeFilter: ['slot'],
7841
8006
  });
7842
8007
  observer.observe(tabBar, {
7843
8008
  attributes: true,
7844
- attributeFilter: ['slot']
8009
+ attributeFilter: ['slot'],
7845
8010
  });
7846
8011
  // Store observer for cleanup
7847
8012
  this.slotEnforcementObserver = observer;
@@ -7868,11 +8033,11 @@ class DsMobileTabBarComponent {
7868
8033
  this.mediaQuery.addEventListener('change', this.handleBreakpointChange);
7869
8034
  }
7870
8035
  handleBreakpointChange = (e) => {
7871
- console.log('[ds-mobile-tab-bar] handleBreakpointChange:', {
7872
- matches: e.matches,
7873
- windowWidth: window.innerWidth,
7874
- previousIsDesktop: this.isDesktop()
7875
- });
8036
+ // console.log('[ds-mobile-tab-bar] handleBreakpointChange:', {
8037
+ // matches: e.matches,
8038
+ // windowWidth: window.innerWidth,
8039
+ // previousIsDesktop: this.isDesktop()
8040
+ // });
7876
8041
  this.isDesktop.set(e.matches);
7877
8042
  // Force update the slot when breakpoint changes
7878
8043
  this.updateSlot();
@@ -7882,13 +8047,15 @@ class DsMobileTabBarComponent {
7882
8047
  attributes: true,
7883
8048
  attributeFilter: ['title'],
7884
8049
  subtree: true,
7885
- childList: true
8050
+ childList: true,
7886
8051
  };
7887
8052
  this.mutationObserver = new MutationObserver((mutations) => {
7888
8053
  mutations.forEach((mutation) => {
7889
- if (mutation.type === 'attributes' && mutation.attributeName === 'title') {
8054
+ if (mutation.type === 'attributes' &&
8055
+ mutation.attributeName === 'title') {
7890
8056
  const target = mutation.target;
7891
- if (target.tagName === 'ION-TAB-BUTTON' && target.hasAttribute('title')) {
8057
+ if (target.tagName === 'ION-TAB-BUTTON' &&
8058
+ target.hasAttribute('title')) {
7892
8059
  target.removeAttribute('title');
7893
8060
  }
7894
8061
  }
@@ -7946,13 +8113,13 @@ class DsMobileTabBarComponent {
7946
8113
  attributes: true,
7947
8114
  attributeFilter: ['selected', 'tab'],
7948
8115
  subtree: true,
7949
- childList: true
8116
+ childList: true,
7950
8117
  });
7951
8118
  // Also watch the parent ion-tabs for changes
7952
8119
  observer.observe(ionTabs, {
7953
8120
  attributes: true,
7954
8121
  attributeFilter: ['selected', 'tab'],
7955
- subtree: true
8122
+ subtree: true,
7956
8123
  });
7957
8124
  // Periodic check as fallback (in case events don't fire)
7958
8125
  setInterval(() => {
@@ -8032,55 +8199,83 @@ class DsMobileTabBarComponent {
8032
8199
  actionGroups: menuItems,
8033
8200
  currentLanguage: 'da', // TODO: Get from language service
8034
8201
  availableLanguages: [
8035
- { code: 'da', nativeName: 'Dansk', englishName: 'Danish', flagIcon: '/Assets/country-flags/denmark.svg' },
8036
- { code: 'en', nativeName: 'English', englishName: 'English', flagIcon: '/Assets/country-flags/united kingdom.svg' },
8037
- { code: 'sv', nativeName: 'Svenska', englishName: 'Swedish', flagIcon: '/Assets/country-flags/sweden.svg' },
8038
- { code: 'no', nativeName: 'Norsk', englishName: 'Norwegian', flagIcon: '/Assets/country-flags/norway.svg' },
8039
- { code: 'de', nativeName: 'Deutsch', englishName: 'German', flagIcon: '/Assets/country-flags/germany.svg' }
8040
- ]
8202
+ {
8203
+ code: 'da',
8204
+ nativeName: 'Dansk',
8205
+ englishName: 'Danish',
8206
+ flagIcon: '/Assets/country-flags/denmark.svg',
8207
+ },
8208
+ {
8209
+ code: 'en',
8210
+ nativeName: 'English',
8211
+ englishName: 'English',
8212
+ flagIcon: '/Assets/country-flags/united kingdom.svg',
8213
+ },
8214
+ {
8215
+ code: 'sv',
8216
+ nativeName: 'Svenska',
8217
+ englishName: 'Swedish',
8218
+ flagIcon: '/Assets/country-flags/sweden.svg',
8219
+ },
8220
+ {
8221
+ code: 'no',
8222
+ nativeName: 'Norsk',
8223
+ englishName: 'Norwegian',
8224
+ flagIcon: '/Assets/country-flags/norway.svg',
8225
+ },
8226
+ {
8227
+ code: 'de',
8228
+ nativeName: 'Deutsch',
8229
+ englishName: 'German',
8230
+ flagIcon: '/Assets/country-flags/germany.svg',
8231
+ },
8232
+ ],
8041
8233
  },
8042
8234
  breakpoints: [0, 1],
8043
8235
  initialBreakpoint: 1,
8044
8236
  handle: true,
8045
- cssClass: ['ds-bottom-sheet', 'auto-height']
8237
+ cssClass: ['ds-bottom-sheet', 'auto-height'],
8046
8238
  });
8047
8239
  await sheet.present();
8048
8240
  const result = await sheet.onWillDismiss();
8049
8241
  if (result.data?.action) {
8050
8242
  // Emit the selected action to parent
8051
8243
  this.profileActionSelected.emit(result.data);
8244
+ // Also notify globally via UserService
8245
+ this.userService.notifyProfileAction(result.data);
8052
8246
  }
8053
8247
  }
8054
8248
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileTabBarComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
8055
8249
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: DsMobileTabBarComponent, isStandalone: true, selector: "ds-mobile-tab-bar", inputs: { tabs: "tabs", avatarType: "avatarType", avatarInitials: "avatarInitials", avatarSrc: "avatarSrc", avatarIconName: "avatarIconName", profileMenuItems: "profileMenuItems" }, outputs: { avatarClick: "avatarClick", profileActionSelected: "profileActionSelected" }, ngImport: i0, template: `
8056
- <ion-tab-bar
8057
- [attr.slot]="isDesktop() ? 'top' : 'bottom'"
8250
+ <ion-tab-bar
8251
+ [attr.slot]="isDesktop() ? 'top' : 'bottom'"
8058
8252
  class="ds-tab-bar"
8059
- [class.ds-tab-bar--desktop]="isDesktop()">
8060
-
8253
+ [class.ds-tab-bar--desktop]="isDesktop()"
8254
+ >
8061
8255
  <!-- Logo (desktop only, positioned via CSS) -->
8062
8256
  <div class="ds-tab-bar__logo">
8063
8257
  <ds-logo variant="mark" size="lg" />
8064
8258
  </div>
8065
-
8259
+
8066
8260
  <!-- Tab buttons container -->
8067
8261
  <div class="ds-tab-bar__tabs" *ngIf="tabs">
8068
- <ion-tab-button
8262
+ <ion-tab-button
8069
8263
  *ngFor="let tab of tabs; trackBy: trackByTabId"
8070
8264
  [tab]="tab.route"
8071
8265
  [attr.data-icon]="tab.icon"
8072
8266
  [attr.data-icon-active]="tab.iconActive"
8073
8267
  [attr.aria-label]="tab.label"
8074
8268
  class="ds-tab-button ion-activatable"
8075
- [class.tab-selected]="isTabActive(tab.route)">
8269
+ [class.tab-selected]="isTabActive(tab.route)"
8270
+ >
8076
8271
  <div class="tab-icon-ripple"></div>
8077
8272
  <div class="tab-icon-wrapper">
8078
- <ds-icon
8273
+ <ds-icon
8079
8274
  [name]="tab.icon"
8080
8275
  [size]="isDesktop() ? '20px' : '24px'"
8081
8276
  class="tab-icon-inactive"
8082
8277
  />
8083
- <ds-icon
8278
+ <ds-icon
8084
8279
  [name]="tab.iconActive"
8085
8280
  [size]="isDesktop() ? '20px' : '24px'"
8086
8281
  class="tab-icon-active"
@@ -8089,7 +8284,7 @@ class DsMobileTabBarComponent {
8089
8284
  <ion-label [attr.aria-hidden]="true">{{ tab.label }}</ion-label>
8090
8285
  </ion-tab-button>
8091
8286
  </div>
8092
-
8287
+
8093
8288
  <!-- Avatar (desktop only, positioned via CSS) -->
8094
8289
  <div class="ds-tab-bar__actions">
8095
8290
  <ds-avatar
@@ -8113,36 +8308,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
8113
8308
  IonLabel,
8114
8309
  DsIconComponent,
8115
8310
  DsAvatarComponent,
8116
- DsLogoComponent
8311
+ DsLogoComponent,
8117
8312
  ], template: `
8118
- <ion-tab-bar
8119
- [attr.slot]="isDesktop() ? 'top' : 'bottom'"
8313
+ <ion-tab-bar
8314
+ [attr.slot]="isDesktop() ? 'top' : 'bottom'"
8120
8315
  class="ds-tab-bar"
8121
- [class.ds-tab-bar--desktop]="isDesktop()">
8122
-
8316
+ [class.ds-tab-bar--desktop]="isDesktop()"
8317
+ >
8123
8318
  <!-- Logo (desktop only, positioned via CSS) -->
8124
8319
  <div class="ds-tab-bar__logo">
8125
8320
  <ds-logo variant="mark" size="lg" />
8126
8321
  </div>
8127
-
8322
+
8128
8323
  <!-- Tab buttons container -->
8129
8324
  <div class="ds-tab-bar__tabs" *ngIf="tabs">
8130
- <ion-tab-button
8325
+ <ion-tab-button
8131
8326
  *ngFor="let tab of tabs; trackBy: trackByTabId"
8132
8327
  [tab]="tab.route"
8133
8328
  [attr.data-icon]="tab.icon"
8134
8329
  [attr.data-icon-active]="tab.iconActive"
8135
8330
  [attr.aria-label]="tab.label"
8136
8331
  class="ds-tab-button ion-activatable"
8137
- [class.tab-selected]="isTabActive(tab.route)">
8332
+ [class.tab-selected]="isTabActive(tab.route)"
8333
+ >
8138
8334
  <div class="tab-icon-ripple"></div>
8139
8335
  <div class="tab-icon-wrapper">
8140
- <ds-icon
8336
+ <ds-icon
8141
8337
  [name]="tab.icon"
8142
8338
  [size]="isDesktop() ? '20px' : '24px'"
8143
8339
  class="tab-icon-inactive"
8144
8340
  />
8145
- <ds-icon
8341
+ <ds-icon
8146
8342
  [name]="tab.iconActive"
8147
8343
  [size]="isDesktop() ? '20px' : '24px'"
8148
8344
  class="tab-icon-active"
@@ -8151,7 +8347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
8151
8347
  <ion-label [attr.aria-hidden]="true">{{ tab.label }}</ion-label>
8152
8348
  </ion-tab-button>
8153
8349
  </div>
8154
-
8350
+
8155
8351
  <!-- Avatar (desktop only, positioned via CSS) -->
8156
8352
  <div class="ds-tab-bar__actions">
8157
8353
  <ds-avatar
@@ -8353,7 +8549,7 @@ class DsMobileLightboxHeaderComponent {
8353
8549
  </div>
8354
8550
  </div>
8355
8551
  </div>
8356
- `, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ".lightbox-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:0 16px;background:linear-gradient(to bottom,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 80%,transparent 100%);pointer-events:none}.header-content{display:flex;align-items:center;justify-content:flex-end;gap:12px;pointer-events:auto}.post-author-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0;margin-right:auto}.author-details{display:flex;flex-direction:column;min-width:0;flex:1}.author-name{color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px}.author-meta{color:#ffffffb3;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;display:flex;align-items:center;gap:6px}.author-meta .separator{color:#ffffff80}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.close-button,.share-button{pointer-events:auto;flex-shrink:0;border-radius:50%}.close-button::ng-deep button,.share-button::ng-deep button{color:#fff!important;background:#ffffff1a!important;border-radius:50%;transition:background .2s ease;border:none;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.close-button::ng-deep button:hover,.share-button::ng-deep button:hover{background:#ffffff26!important}.close-button::ng-deep button:active,.share-button::ng-deep button:active{background:#ffffff26!important}.close-button::ng-deep svg,.share-button::ng-deep svg{color:#fff!important;fill:#fff!important}@supports (padding-top: env(safe-area-inset-top)){.lightbox-header{padding-top:calc(16px + env(safe-area-inset-top))}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconButtonComponent, selector: "ds-icon-button", inputs: ["variant", "size", "icon", "disabled", "loading", "pressed", "expanded", "ariaLabel", "tooltip", "tooltipDisabled", "tooltipPlacement"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }] });
8552
+ `, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ".lightbox-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:0 16px;background:linear-gradient(to bottom,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 80%,transparent 100%);pointer-events:none}.header-content{display:flex;align-items:center;justify-content:flex-end;gap:12px;pointer-events:auto}.post-author-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0;margin-right:auto}.author-details{display:flex;flex-direction:column;min-width:0;flex:1}.author-name{color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px}.author-meta{color:#ffffffb3;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;display:flex;align-items:center;gap:6px}.author-meta .separator{color:#ffffff80}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.close-button,.share-button{pointer-events:auto;flex-shrink:0;border-radius:50%}.close-button::ng-deep button,.share-button::ng-deep button{color:#fff!important;background:#ffffff1a!important;border-radius:50%;transition:background .2s ease;border:none;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.close-button::ng-deep button:hover,.share-button::ng-deep button:hover{background:#ffffff26!important}.close-button::ng-deep button:active,.share-button::ng-deep button:active{background:#ffffff26!important}.close-button::ng-deep svg,.share-button::ng-deep svg{color:#fff!important;fill:#fff!important}@supports (padding-top: env(safe-area-inset-top)){.lightbox-header{padding-top:calc(16px + env(safe-area-inset-top))}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconButtonComponent, selector: "ds-icon-button", inputs: ["variant", "size", "icon", "disabled", "loading", "pressed", "expanded", "ariaLabel", "tooltip", "tooltipDisabled", "tooltipPlacement"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }] });
8357
8553
  }
8358
8554
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileLightboxHeaderComponent, decorators: [{
8359
8555
  type: Component,
@@ -8408,7 +8604,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
8408
8604
  </div>
8409
8605
  </div>
8410
8606
  </div>
8411
- `, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ".lightbox-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:0 16px;background:linear-gradient(to bottom,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 80%,transparent 100%);pointer-events:none}.header-content{display:flex;align-items:center;justify-content:flex-end;gap:12px;pointer-events:auto}.post-author-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0;margin-right:auto}.author-details{display:flex;flex-direction:column;min-width:0;flex:1}.author-name{color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px}.author-meta{color:#ffffffb3;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;display:flex;align-items:center;gap:6px}.author-meta .separator{color:#ffffff80}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.close-button,.share-button{pointer-events:auto;flex-shrink:0;border-radius:50%}.close-button::ng-deep button,.share-button::ng-deep button{color:#fff!important;background:#ffffff1a!important;border-radius:50%;transition:background .2s ease;border:none;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.close-button::ng-deep button:hover,.share-button::ng-deep button:hover{background:#ffffff26!important}.close-button::ng-deep button:active,.share-button::ng-deep button:active{background:#ffffff26!important}.close-button::ng-deep svg,.share-button::ng-deep svg{color:#fff!important;fill:#fff!important}@supports (padding-top: env(safe-area-inset-top)){.lightbox-header{padding-top:calc(16px + env(safe-area-inset-top))}}\n"] }]
8607
+ `, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ".lightbox-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:0 16px;background:linear-gradient(to bottom,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 80%,transparent 100%);pointer-events:none}.header-content{display:flex;align-items:center;justify-content:flex-end;gap:12px;pointer-events:auto}.post-author-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0;margin-right:auto}.author-details{display:flex;flex-direction:column;min-width:0;flex:1}.author-name{color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px}.author-meta{color:#ffffffb3;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;display:flex;align-items:center;gap:6px}.author-meta .separator{color:#ffffff80}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.close-button,.share-button{pointer-events:auto;flex-shrink:0;border-radius:50%}.close-button::ng-deep button,.share-button::ng-deep button{color:#fff!important;background:#ffffff1a!important;border-radius:50%;transition:background .2s ease;border:none;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.close-button::ng-deep button:hover,.share-button::ng-deep button:hover{background:#ffffff26!important}.close-button::ng-deep button:active,.share-button::ng-deep button:active{background:#ffffff26!important}.close-button::ng-deep svg,.share-button::ng-deep svg{color:#fff!important;fill:#fff!important}@supports (padding-top: env(safe-area-inset-top)){.lightbox-header{padding-top:calc(16px + env(safe-area-inset-top))}}\n"] }]
8412
8608
  }], propDecorators: { author: [{ type: i0.Input, args: [{ isSignal: true, alias: "author", required: false }] }], closeClick: [{ type: i0.Output, args: ["closeClick"] }], shareClick: [{ type: i0.Output, args: ["shareClick"] }] } });
8413
8609
 
8414
8610
  /**
@@ -8995,7 +9191,7 @@ class DsMobileLightboxImageComponent {
8995
9191
  />
8996
9192
  </div>
8997
9193
  </div>
8998
- `, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}:host{display:block;position:fixed;inset:0;width:100vw;height:100vh;z-index:10000}.lightbox-overlay{position:fixed;inset:0;width:100vw;height:100vh;background:#000000fa;z-index:10000;display:flex;flex-direction:column;touch-action:none;animation:fadeIn .2s ease-out}.lightbox-overlay.zoomed{overflow:hidden}.lightbox-content{display:block;height:100vh;width:100vw;position:absolute;inset:0}.lightbox-content::part(scroll){display:flex;flex-direction:column;height:100%;overflow:hidden}.lightbox-wrapper{position:absolute;inset:0;display:flex;flex-direction:column;width:100%;height:100%}.lightbox-content.zoomed{overflow:hidden}.lightbox-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:0 16px;background:linear-gradient(to bottom,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 80%,transparent 100%);pointer-events:none}.header-content{display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:auto}.post-author-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.author-details{display:flex;flex-direction:column;min-width:0;flex:1}.author-name{color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px}.author-meta{color:#ffffffb3;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;display:flex;align-items:center;gap:6px}.author-meta .separator{color:#ffffff80}.close-button{pointer-events:auto;flex-shrink:0;border-radius:50%}.close-button::ng-deep button{color:#fff!important;background:#ffffff1a!important;border-radius:50%;transition:background .2s ease;border:none;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.close-button::ng-deep button:hover{background:#ffffff26!important}.close-button::ng-deep button:active{background:#ffffff26!important}.close-button::ng-deep svg{color:#fff!important;fill:#fff!important}.swiper-container{position:absolute;inset:0;width:100%;height:100%;z-index:1}.swiper-wrapper{width:100%;height:100%}.swiper-slide{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.image-zoom-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.lightbox-image{max-width:min(640px,100%);max-height:100%;width:auto;height:auto;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;transition:transform .3s ease-out;transform-origin:center center}.lightbox-overlay.zoomed .swiper-container{touch-action:none}.loading-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10}.loading-spinner ion-spinner{--color: rgba(255, 255, 255, .8);width:48px;height:48px}.error-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;text-align:center;color:#fffc;font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:500;padding:20px;background:#00000080;border-radius:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.lightbox-bottom-section{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;flex-direction:column;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.6) 50%,rgba(0,0,0,.4) 75%,transparent 100%);pointer-events:none}.lightbox-controls{display:flex;align-items:center;justify-content:center;gap:24px;padding:16px 20px 12px;pointer-events:none}.nav-button,.counter{pointer-events:auto}.nav-button{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .2s ease;padding:0;margin:0;outline:none}.nav-button:hover:not(:disabled){background:#fff3;transform:scale(1.05)}.nav-button:active:not(:disabled){transform:scale(.95)}.nav-button:disabled{opacity:.3;cursor:not-allowed}.nav-button svg{width:24px;height:24px}.counter{color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:1;padding:10px 16px;background:#00000080;border-radius:100px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap}@supports (padding-bottom: env(safe-area-inset-bottom)){.lightbox-bottom-section{padding-bottom:env(safe-area-inset-bottom)}}.lightbox-footer{display:flex;padding:12px 20px 20px;pointer-events:none}.footer-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:auto}.action-buttons-left{display:flex;align-items:center;gap:16px}.action-button-like::ng-deep button,.action-button-comment::ng-deep button,.action-button-with-count::ng-deep button,.action-button-share::ng-deep button{background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;color:#fff!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .2s ease}.action-button-like::ng-deep button:hover,.action-button-comment::ng-deep button:hover,.action-button-with-count::ng-deep button:hover,.action-button-share::ng-deep button:hover{background:#fff3!important;transform:scale(1.02)}.action-button-like::ng-deep button:active,.action-button-comment::ng-deep button:active,.action-button-with-count::ng-deep button:active,.action-button-share::ng-deep button:active{transform:scale(.98)}.action-button-like::ng-deep button svg,.action-button-comment::ng-deep button svg,.action-button-with-count::ng-deep button svg,.action-button-share::ng-deep button svg,.action-button-like::ng-deep button .btn__icon,.action-button-comment::ng-deep button .btn__icon,.action-button-with-count::ng-deep button .btn__icon,.action-button-share::ng-deep button .btn__icon,.action-button-like::ng-deep button .btn__content,.action-button-comment::ng-deep button .btn__content,.action-button-with-count::ng-deep button .btn__content{color:#fff!important;fill:#fff!important}.action-button-like::ng-deep button .btn__icon svg,.action-button-comment::ng-deep button .btn__icon svg,.action-button-with-count::ng-deep button .btn__icon svg,.action-button-share::ng-deep button .btn__icon svg{color:#fff!important;fill:#fff!important;display:block!important;opacity:1!important;visibility:visible!important;width:20px!important;height:20px!important}.action-button-like::ng-deep button .btn__icon,.action-button-comment::ng-deep button .btn__icon,.action-button-with-count::ng-deep button .btn__icon,.action-button-share::ng-deep button .btn__icon{display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important}.action-button-like[data-liked=true]::ng-deep button svg{fill:#f91880!important;color:#f91880!important}.action-button-like[data-liked=true]::ng-deep button{border-color:#f918804d!important}.action-button-like,.action-button-comment,.action-button-share{flex-shrink:0;border-radius:50%}.action-button-like::ng-deep button,.action-button-comment::ng-deep button,.action-button-share::ng-deep button{border-radius:50%!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}@media (min-width: 768px){.lightbox-header{padding:24px}.close-button{width:48px;height:48px}.lightbox-controls{padding:20px 24px 16px}.nav-button{width:48px;height:48px}.counter{font-size:var(--font-size-base);padding:12px 20px}.lightbox-footer{padding:16px 24px 24px}.action-button-like::ng-deep button,.action-button-comment::ng-deep button{height:48px;padding:0 20px}.action-button-share::ng-deep button{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes zoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.image-wrapper,.nav-button,.lightbox-caption{transition:none}}.nav-button:focus-visible{outline:2px solid white;outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: DsMobileLightboxHeaderComponent, selector: "ds-mobile-lightbox-header", inputs: ["author"], outputs: ["closeClick", "shareClick"] }, { kind: "component", type: DsMobileLightboxFooterComponent, selector: "ds-mobile-lightbox-footer", inputs: ["showNavigation", "currentIndex", "totalImages", "showActions", "isLiked", "likeCount", "commentCount"], outputs: ["prevClick", "nextClick", "likeClick", "commentClick"] }] });
9194
+ `, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}:host{display:block;position:fixed;inset:0;width:100vw;height:100vh;z-index:10000}.lightbox-overlay{position:fixed;inset:0;width:100vw;height:100vh;background:#000000fa;z-index:10000;display:flex;flex-direction:column;touch-action:none;animation:fadeIn .2s ease-out}.lightbox-overlay.zoomed{overflow:hidden}.lightbox-content{display:block;height:100vh;width:100vw;position:absolute;inset:0}.lightbox-content::part(scroll){display:flex;flex-direction:column;height:100%;overflow:hidden}.lightbox-wrapper{position:absolute;inset:0;display:flex;flex-direction:column;width:100%;height:100%}.lightbox-content.zoomed{overflow:hidden}.lightbox-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:0 16px;background:linear-gradient(to bottom,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 80%,transparent 100%);pointer-events:none}.header-content{display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:auto}.post-author-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.author-details{display:flex;flex-direction:column;min-width:0;flex:1}.author-name{color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px}.author-meta{color:#ffffffb3;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;display:flex;align-items:center;gap:6px}.author-meta .separator{color:#ffffff80}.close-button{pointer-events:auto;flex-shrink:0;border-radius:50%}.close-button::ng-deep button{color:#fff!important;background:#ffffff1a!important;border-radius:50%;transition:background .2s ease;border:none;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.close-button::ng-deep button:hover{background:#ffffff26!important}.close-button::ng-deep button:active{background:#ffffff26!important}.close-button::ng-deep svg{color:#fff!important;fill:#fff!important}.swiper-container{position:absolute;inset:0;width:100%;height:100%;z-index:1}.swiper-wrapper{width:100%;height:100%}.swiper-slide{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.image-zoom-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.lightbox-image{max-width:min(640px,100%);max-height:100%;width:auto;height:auto;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;transition:transform .3s ease-out;transform-origin:center center}.lightbox-overlay.zoomed .swiper-container{touch-action:none}.loading-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10}.loading-spinner ion-spinner{--color: rgba(255, 255, 255, .8);width:48px;height:48px}.error-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;text-align:center;color:#fffc;font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:500;padding:20px;background:#00000080;border-radius:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.lightbox-bottom-section{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;flex-direction:column;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.6) 50%,rgba(0,0,0,.4) 75%,transparent 100%);pointer-events:none}.lightbox-controls{display:flex;align-items:center;justify-content:center;gap:24px;padding:16px 20px 12px;pointer-events:none}.nav-button,.counter{pointer-events:auto}.nav-button{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .2s ease;padding:0;margin:0;outline:none}.nav-button:hover:not(:disabled){background:#fff3;transform:scale(1.05)}.nav-button:active:not(:disabled){transform:scale(.95)}.nav-button:disabled{opacity:.3;cursor:not-allowed}.nav-button svg{width:24px;height:24px}.counter{color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:1;padding:10px 16px;background:#00000080;border-radius:100px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap}@supports (padding-bottom: env(safe-area-inset-bottom)){.lightbox-bottom-section{padding-bottom:env(safe-area-inset-bottom)}}.lightbox-footer{display:flex;padding:12px 20px 20px;pointer-events:none}.footer-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:auto}.action-buttons-left{display:flex;align-items:center;gap:16px}.action-button-like::ng-deep button,.action-button-comment::ng-deep button,.action-button-with-count::ng-deep button,.action-button-share::ng-deep button{background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;color:#fff!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .2s ease}.action-button-like::ng-deep button:hover,.action-button-comment::ng-deep button:hover,.action-button-with-count::ng-deep button:hover,.action-button-share::ng-deep button:hover{background:#fff3!important;transform:scale(1.02)}.action-button-like::ng-deep button:active,.action-button-comment::ng-deep button:active,.action-button-with-count::ng-deep button:active,.action-button-share::ng-deep button:active{transform:scale(.98)}.action-button-like::ng-deep button svg,.action-button-comment::ng-deep button svg,.action-button-with-count::ng-deep button svg,.action-button-share::ng-deep button svg,.action-button-like::ng-deep button .btn__icon,.action-button-comment::ng-deep button .btn__icon,.action-button-with-count::ng-deep button .btn__icon,.action-button-share::ng-deep button .btn__icon,.action-button-like::ng-deep button .btn__content,.action-button-comment::ng-deep button .btn__content,.action-button-with-count::ng-deep button .btn__content{color:#fff!important;fill:#fff!important}.action-button-like::ng-deep button .btn__icon svg,.action-button-comment::ng-deep button .btn__icon svg,.action-button-with-count::ng-deep button .btn__icon svg,.action-button-share::ng-deep button .btn__icon svg{color:#fff!important;fill:#fff!important;display:block!important;opacity:1!important;visibility:visible!important;width:20px!important;height:20px!important}.action-button-like::ng-deep button .btn__icon,.action-button-comment::ng-deep button .btn__icon,.action-button-with-count::ng-deep button .btn__icon,.action-button-share::ng-deep button .btn__icon{display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important}.action-button-like[data-liked=true]::ng-deep button svg{fill:#f91880!important;color:#f91880!important}.action-button-like[data-liked=true]::ng-deep button{border-color:#f918804d!important}.action-button-like,.action-button-comment,.action-button-share{flex-shrink:0;border-radius:50%}.action-button-like::ng-deep button,.action-button-comment::ng-deep button,.action-button-share::ng-deep button{border-radius:50%!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}@media (min-width: 768px){.lightbox-header{padding:24px}.close-button{width:48px;height:48px}.lightbox-controls{padding:20px 24px 16px}.nav-button{width:48px;height:48px}.counter{font-size:var(--font-size-base);padding:12px 20px}.lightbox-footer{padding:16px 24px 24px}.action-button-like::ng-deep button,.action-button-comment::ng-deep button{height:48px;padding:0 20px}.action-button-share::ng-deep button{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes zoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.image-wrapper,.nav-button,.lightbox-caption{transition:none}}.nav-button:focus-visible{outline:2px solid white;outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: DsMobileLightboxHeaderComponent, selector: "ds-mobile-lightbox-header", inputs: ["author"], outputs: ["closeClick", "shareClick"] }, { kind: "component", type: DsMobileLightboxFooterComponent, selector: "ds-mobile-lightbox-footer", inputs: ["showNavigation", "currentIndex", "totalImages", "showActions", "isLiked", "likeCount", "commentCount"], outputs: ["prevClick", "nextClick", "likeClick", "commentClick"] }] });
8999
9195
  }
9000
9196
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileLightboxImageComponent, decorators: [{
9001
9197
  type: Component,
@@ -9057,7 +9253,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
9057
9253
  />
9058
9254
  </div>
9059
9255
  </div>
9060
- `, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}:host{display:block;position:fixed;inset:0;width:100vw;height:100vh;z-index:10000}.lightbox-overlay{position:fixed;inset:0;width:100vw;height:100vh;background:#000000fa;z-index:10000;display:flex;flex-direction:column;touch-action:none;animation:fadeIn .2s ease-out}.lightbox-overlay.zoomed{overflow:hidden}.lightbox-content{display:block;height:100vh;width:100vw;position:absolute;inset:0}.lightbox-content::part(scroll){display:flex;flex-direction:column;height:100%;overflow:hidden}.lightbox-wrapper{position:absolute;inset:0;display:flex;flex-direction:column;width:100%;height:100%}.lightbox-content.zoomed{overflow:hidden}.lightbox-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:0 16px;background:linear-gradient(to bottom,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 80%,transparent 100%);pointer-events:none}.header-content{display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:auto}.post-author-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.author-details{display:flex;flex-direction:column;min-width:0;flex:1}.author-name{color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px}.author-meta{color:#ffffffb3;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;display:flex;align-items:center;gap:6px}.author-meta .separator{color:#ffffff80}.close-button{pointer-events:auto;flex-shrink:0;border-radius:50%}.close-button::ng-deep button{color:#fff!important;background:#ffffff1a!important;border-radius:50%;transition:background .2s ease;border:none;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.close-button::ng-deep button:hover{background:#ffffff26!important}.close-button::ng-deep button:active{background:#ffffff26!important}.close-button::ng-deep svg{color:#fff!important;fill:#fff!important}.swiper-container{position:absolute;inset:0;width:100%;height:100%;z-index:1}.swiper-wrapper{width:100%;height:100%}.swiper-slide{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.image-zoom-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.lightbox-image{max-width:min(640px,100%);max-height:100%;width:auto;height:auto;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;transition:transform .3s ease-out;transform-origin:center center}.lightbox-overlay.zoomed .swiper-container{touch-action:none}.loading-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10}.loading-spinner ion-spinner{--color: rgba(255, 255, 255, .8);width:48px;height:48px}.error-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;text-align:center;color:#fffc;font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:500;padding:20px;background:#00000080;border-radius:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.lightbox-bottom-section{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;flex-direction:column;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.6) 50%,rgba(0,0,0,.4) 75%,transparent 100%);pointer-events:none}.lightbox-controls{display:flex;align-items:center;justify-content:center;gap:24px;padding:16px 20px 12px;pointer-events:none}.nav-button,.counter{pointer-events:auto}.nav-button{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .2s ease;padding:0;margin:0;outline:none}.nav-button:hover:not(:disabled){background:#fff3;transform:scale(1.05)}.nav-button:active:not(:disabled){transform:scale(.95)}.nav-button:disabled{opacity:.3;cursor:not-allowed}.nav-button svg{width:24px;height:24px}.counter{color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:1;padding:10px 16px;background:#00000080;border-radius:100px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap}@supports (padding-bottom: env(safe-area-inset-bottom)){.lightbox-bottom-section{padding-bottom:env(safe-area-inset-bottom)}}.lightbox-footer{display:flex;padding:12px 20px 20px;pointer-events:none}.footer-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:auto}.action-buttons-left{display:flex;align-items:center;gap:16px}.action-button-like::ng-deep button,.action-button-comment::ng-deep button,.action-button-with-count::ng-deep button,.action-button-share::ng-deep button{background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;color:#fff!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .2s ease}.action-button-like::ng-deep button:hover,.action-button-comment::ng-deep button:hover,.action-button-with-count::ng-deep button:hover,.action-button-share::ng-deep button:hover{background:#fff3!important;transform:scale(1.02)}.action-button-like::ng-deep button:active,.action-button-comment::ng-deep button:active,.action-button-with-count::ng-deep button:active,.action-button-share::ng-deep button:active{transform:scale(.98)}.action-button-like::ng-deep button svg,.action-button-comment::ng-deep button svg,.action-button-with-count::ng-deep button svg,.action-button-share::ng-deep button svg,.action-button-like::ng-deep button .btn__icon,.action-button-comment::ng-deep button .btn__icon,.action-button-with-count::ng-deep button .btn__icon,.action-button-share::ng-deep button .btn__icon,.action-button-like::ng-deep button .btn__content,.action-button-comment::ng-deep button .btn__content,.action-button-with-count::ng-deep button .btn__content{color:#fff!important;fill:#fff!important}.action-button-like::ng-deep button .btn__icon svg,.action-button-comment::ng-deep button .btn__icon svg,.action-button-with-count::ng-deep button .btn__icon svg,.action-button-share::ng-deep button .btn__icon svg{color:#fff!important;fill:#fff!important;display:block!important;opacity:1!important;visibility:visible!important;width:20px!important;height:20px!important}.action-button-like::ng-deep button .btn__icon,.action-button-comment::ng-deep button .btn__icon,.action-button-with-count::ng-deep button .btn__icon,.action-button-share::ng-deep button .btn__icon{display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important}.action-button-like[data-liked=true]::ng-deep button svg{fill:#f91880!important;color:#f91880!important}.action-button-like[data-liked=true]::ng-deep button{border-color:#f918804d!important}.action-button-like,.action-button-comment,.action-button-share{flex-shrink:0;border-radius:50%}.action-button-like::ng-deep button,.action-button-comment::ng-deep button,.action-button-share::ng-deep button{border-radius:50%!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}@media (min-width: 768px){.lightbox-header{padding:24px}.close-button{width:48px;height:48px}.lightbox-controls{padding:20px 24px 16px}.nav-button{width:48px;height:48px}.counter{font-size:var(--font-size-base);padding:12px 20px}.lightbox-footer{padding:16px 24px 24px}.action-button-like::ng-deep button,.action-button-comment::ng-deep button{height:48px;padding:0 20px}.action-button-share::ng-deep button{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes zoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.image-wrapper,.nav-button,.lightbox-caption{transition:none}}.nav-button:focus-visible{outline:2px solid white;outline-offset:2px}\n"] }]
9256
+ `, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}:host{display:block;position:fixed;inset:0;width:100vw;height:100vh;z-index:10000}.lightbox-overlay{position:fixed;inset:0;width:100vw;height:100vh;background:#000000fa;z-index:10000;display:flex;flex-direction:column;touch-action:none;animation:fadeIn .2s ease-out}.lightbox-overlay.zoomed{overflow:hidden}.lightbox-content{display:block;height:100vh;width:100vw;position:absolute;inset:0}.lightbox-content::part(scroll){display:flex;flex-direction:column;height:100%;overflow:hidden}.lightbox-wrapper{position:absolute;inset:0;display:flex;flex-direction:column;width:100%;height:100%}.lightbox-content.zoomed{overflow:hidden}.lightbox-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:0 16px;background:linear-gradient(to bottom,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 80%,transparent 100%);pointer-events:none}.header-content{display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:auto}.post-author-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.author-details{display:flex;flex-direction:column;min-width:0;flex:1}.author-name{color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px}.author-meta{color:#ffffffb3;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;display:flex;align-items:center;gap:6px}.author-meta .separator{color:#ffffff80}.close-button{pointer-events:auto;flex-shrink:0;border-radius:50%}.close-button::ng-deep button{color:#fff!important;background:#ffffff1a!important;border-radius:50%;transition:background .2s ease;border:none;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.close-button::ng-deep button:hover{background:#ffffff26!important}.close-button::ng-deep button:active{background:#ffffff26!important}.close-button::ng-deep svg{color:#fff!important;fill:#fff!important}.swiper-container{position:absolute;inset:0;width:100%;height:100%;z-index:1}.swiper-wrapper{width:100%;height:100%}.swiper-slide{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.image-zoom-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.lightbox-image{max-width:min(640px,100%);max-height:100%;width:auto;height:auto;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;transition:transform .3s ease-out;transform-origin:center center}.lightbox-overlay.zoomed .swiper-container{touch-action:none}.loading-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10}.loading-spinner ion-spinner{--color: rgba(255, 255, 255, .8);width:48px;height:48px}.error-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;text-align:center;color:#fffc;font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:500;padding:20px;background:#00000080;border-radius:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.lightbox-bottom-section{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;flex-direction:column;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.6) 50%,rgba(0,0,0,.4) 75%,transparent 100%);pointer-events:none}.lightbox-controls{display:flex;align-items:center;justify-content:center;gap:24px;padding:16px 20px 12px;pointer-events:none}.nav-button,.counter{pointer-events:auto}.nav-button{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .2s ease;padding:0;margin:0;outline:none}.nav-button:hover:not(:disabled){background:#fff3;transform:scale(1.05)}.nav-button:active:not(:disabled){transform:scale(.95)}.nav-button:disabled{opacity:.3;cursor:not-allowed}.nav-button svg{width:24px;height:24px}.counter{color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:1;padding:10px 16px;background:#00000080;border-radius:100px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);white-space:nowrap}@supports (padding-bottom: env(safe-area-inset-bottom)){.lightbox-bottom-section{padding-bottom:env(safe-area-inset-bottom)}}.lightbox-footer{display:flex;padding:12px 20px 20px;pointer-events:none}.footer-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:auto}.action-buttons-left{display:flex;align-items:center;gap:16px}.action-button-like::ng-deep button,.action-button-comment::ng-deep button,.action-button-with-count::ng-deep button,.action-button-share::ng-deep button{background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;color:#fff!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .2s ease}.action-button-like::ng-deep button:hover,.action-button-comment::ng-deep button:hover,.action-button-with-count::ng-deep button:hover,.action-button-share::ng-deep button:hover{background:#fff3!important;transform:scale(1.02)}.action-button-like::ng-deep button:active,.action-button-comment::ng-deep button:active,.action-button-with-count::ng-deep button:active,.action-button-share::ng-deep button:active{transform:scale(.98)}.action-button-like::ng-deep button svg,.action-button-comment::ng-deep button svg,.action-button-with-count::ng-deep button svg,.action-button-share::ng-deep button svg,.action-button-like::ng-deep button .btn__icon,.action-button-comment::ng-deep button .btn__icon,.action-button-with-count::ng-deep button .btn__icon,.action-button-share::ng-deep button .btn__icon,.action-button-like::ng-deep button .btn__content,.action-button-comment::ng-deep button .btn__content,.action-button-with-count::ng-deep button .btn__content{color:#fff!important;fill:#fff!important}.action-button-like::ng-deep button .btn__icon svg,.action-button-comment::ng-deep button .btn__icon svg,.action-button-with-count::ng-deep button .btn__icon svg,.action-button-share::ng-deep button .btn__icon svg{color:#fff!important;fill:#fff!important;display:block!important;opacity:1!important;visibility:visible!important;width:20px!important;height:20px!important}.action-button-like::ng-deep button .btn__icon,.action-button-comment::ng-deep button .btn__icon,.action-button-with-count::ng-deep button .btn__icon,.action-button-share::ng-deep button .btn__icon{display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important}.action-button-like[data-liked=true]::ng-deep button svg{fill:#f91880!important;color:#f91880!important}.action-button-like[data-liked=true]::ng-deep button{border-color:#f918804d!important}.action-button-like,.action-button-comment,.action-button-share{flex-shrink:0;border-radius:50%}.action-button-like::ng-deep button,.action-button-comment::ng-deep button,.action-button-share::ng-deep button{border-radius:50%!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}@media (min-width: 768px){.lightbox-header{padding:24px}.close-button{width:48px;height:48px}.lightbox-controls{padding:20px 24px 16px}.nav-button{width:48px;height:48px}.counter{font-size:var(--font-size-base);padding:12px 20px}.lightbox-footer{padding:16px 24px 24px}.action-button-like::ng-deep button,.action-button-comment::ng-deep button{height:48px;padding:0 20px}.action-button-share::ng-deep button{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes zoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.image-wrapper,.nav-button,.lightbox-caption{transition:none}}.nav-button:focus-visible{outline:2px solid white;outline-offset:2px}\n"] }]
9061
9257
  }], ctorParameters: () => [{ type: i1.GestureController }], propDecorators: { swiperContainer: [{
9062
9258
  type: ViewChild,
9063
9259
  args: ['swiperContainer', { read: ElementRef }]
@@ -9370,7 +9566,7 @@ class DsMobileLightboxPdfComponent {
9370
9566
  />
9371
9567
  </div>
9372
9568
  </ion-content>
9373
- `, isInline: true, styles: [".author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}:host{display:block;height:100%;width:100%}.lightbox-content.pdf-viewer{--background: rgba(0, 0, 0, 1);display:block;height:100vh;width:100vw;position:absolute;inset:0}.lightbox-content.pdf-viewer::part(scroll){display:flex;flex-direction:column;height:100%;overflow:hidden}.lightbox-wrapper{position:absolute;inset:0;display:flex;flex-direction:column;width:100%;height:100%}.lightbox-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:12px 16px;display:flex;flex-direction:column;gap:8px;background:linear-gradient(to bottom,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 80%,transparent 100%);pointer-events:none}.header-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:auto}.share-button,.close-button{pointer-events:auto;flex-shrink:0;border-radius:50%}.share-button::ng-deep button,.close-button::ng-deep button{color:#fff!important;background:#ffffff1a!important;border-radius:50%;transition:background .2s ease;border:none;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.share-button::ng-deep button:hover,.close-button::ng-deep button:hover{background:#ffffff26!important}.share-button::ng-deep button:disabled{opacity:.5!important;cursor:not-allowed!important}.share-button::ng-deep svg,.close-button::ng-deep svg{color:#fff!important;fill:#fff!important}@supports (padding-top: env(safe-area-inset-top)){.lightbox-header{padding-top:calc(16px + env(safe-area-inset-top))}}.pdf-container{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 24px 24px;overflow-y:auto;-webkit-overflow-scrolling:touch}.pdf-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:400px;width:100%;gap:16px}.pdf-content::ng-deep .avatar--icon{background-color:#ff5757!important}.pdf-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-xl);font-weight:600;line-height:1.3;letter-spacing:-.3px;color:#fff;margin:0;word-break:break-word}.pdf-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:#fff9;text-transform:uppercase}.open-pdf-button{margin-top:16px}.open-pdf-button::ng-deep button{background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:100px!important;color:#fff!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .2s ease;padding:16px!important}.open-pdf-button::ng-deep button:hover{background:#fff3!important;transform:scale(1.02)}.open-pdf-button::ng-deep button:active{transform:scale(.98)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:40px}.loading-state ion-spinner{--color: rgba(255, 255, 255, .8);width:48px;height:48px}.loading-state p{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:500;color:#fffc;margin:0}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;max-width:400px}.error-state svg{color:#ff6464cc;margin-bottom:24px}.error-state h3{font-family:Brockmann,sans-serif;font-size:var(--font-size-xl);font-weight:600;color:#fff;margin:0 0 12px}.error-state p{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:400;line-height:1.5;color:#ffffffb3;margin:0 0 24px}.retry-button{padding:12px 24px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .2s ease}.retry-button:hover{background:#ffffff26;border-color:#ffffff4d}.pdf-author-info{position:fixed;bottom:20px;left:20px;right:20px;display:flex;align-items:center;gap:12px;padding:16px;background:#000000b3;border-radius:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:50}.author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{color:#fff}.author-meta{color:#ffffffb3}.author-meta .separator{color:#ffffff80}@supports (padding-bottom: env(safe-area-inset-bottom)){.pdf-author-info{bottom:calc(20px + env(safe-area-inset-bottom))}.pdf-container{padding-bottom:calc(120px + env(safe-area-inset-bottom))}}@media (min-width: 768px){.lightbox-header{padding:24px}.pdf-container{padding:120px 40px 40px}.pdf-title{font-size:var(--font-size-3xl)}.pdf-description{font-size:var(--font-size-base)}.open-pdf-button{padding:18px 40px;font-size:var(--font-size-lg)}}@media (prefers-reduced-motion: reduce){.open-pdf-button,.retry-button{transition:none}}.open-pdf-button:focus-visible,.retry-button:focus-visible{outline:2px solid white;outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: DsButtonComponent, selector: "ds-button", inputs: ["variant", "size", "disabled", "loading", "pressed", "expanded", "leadingIcon", "trailingIcon", "ariaLabel", "iconOnly"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsMobileLightboxHeaderComponent, selector: "ds-mobile-lightbox-header", inputs: ["author"], outputs: ["closeClick", "shareClick"] }, { kind: "component", type: DsMobileLightboxFooterComponent, selector: "ds-mobile-lightbox-footer", inputs: ["showNavigation", "currentIndex", "totalImages", "showActions", "isLiked", "likeCount", "commentCount"], outputs: ["prevClick", "nextClick", "likeClick", "commentClick"] }] });
9569
+ `, isInline: true, styles: [".author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}:host{display:block;height:100%;width:100%}.lightbox-content.pdf-viewer{--background: rgba(0, 0, 0, 1);display:block;height:100vh;width:100vw;position:absolute;inset:0}.lightbox-content.pdf-viewer::part(scroll){display:flex;flex-direction:column;height:100%;overflow:hidden}.lightbox-wrapper{position:absolute;inset:0;display:flex;flex-direction:column;width:100%;height:100%}.lightbox-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:12px 16px;display:flex;flex-direction:column;gap:8px;background:linear-gradient(to bottom,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 80%,transparent 100%);pointer-events:none}.header-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:auto}.share-button,.close-button{pointer-events:auto;flex-shrink:0;border-radius:50%}.share-button::ng-deep button,.close-button::ng-deep button{color:#fff!important;background:#ffffff1a!important;border-radius:50%;transition:background .2s ease;border:none;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.share-button::ng-deep button:hover,.close-button::ng-deep button:hover{background:#ffffff26!important}.share-button::ng-deep button:disabled{opacity:.5!important;cursor:not-allowed!important}.share-button::ng-deep svg,.close-button::ng-deep svg{color:#fff!important;fill:#fff!important}@supports (padding-top: env(safe-area-inset-top)){.lightbox-header{padding-top:calc(16px + env(safe-area-inset-top))}}.pdf-container{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 24px 24px;overflow-y:auto;-webkit-overflow-scrolling:touch}.pdf-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:400px;width:100%;gap:16px}.pdf-content::ng-deep .avatar--icon{background-color:#ff5757!important}.pdf-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-xl);font-weight:600;line-height:1.3;letter-spacing:-.3px;color:#fff;margin:0;word-break:break-word}.pdf-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:#fff9;text-transform:uppercase}.open-pdf-button{margin-top:16px}.open-pdf-button::ng-deep button{background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:100px!important;color:#fff!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .2s ease;padding:16px!important}.open-pdf-button::ng-deep button:hover{background:#fff3!important;transform:scale(1.02)}.open-pdf-button::ng-deep button:active{transform:scale(.98)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:40px}.loading-state ion-spinner{--color: rgba(255, 255, 255, .8);width:48px;height:48px}.loading-state p{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:500;color:#fffc;margin:0}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;max-width:400px}.error-state svg{color:#ff6464cc;margin-bottom:24px}.error-state h3{font-family:Brockmann,sans-serif;font-size:var(--font-size-xl);font-weight:600;color:#fff;margin:0 0 12px}.error-state p{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:400;line-height:1.5;color:#ffffffb3;margin:0 0 24px}.retry-button{padding:12px 24px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .2s ease}.retry-button:hover{background:#ffffff26;border-color:#ffffff4d}.pdf-author-info{position:fixed;bottom:20px;left:20px;right:20px;display:flex;align-items:center;gap:12px;padding:16px;background:#000000b3;border-radius:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:50}.author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{color:#fff}.author-meta{color:#ffffffb3}.author-meta .separator{color:#ffffff80}@supports (padding-bottom: env(safe-area-inset-bottom)){.pdf-author-info{bottom:calc(20px + env(safe-area-inset-bottom))}.pdf-container{padding-bottom:calc(120px + env(safe-area-inset-bottom))}}@media (min-width: 768px){.lightbox-header{padding:24px}.pdf-container{padding:120px 40px 40px}.pdf-title{font-size:var(--font-size-3xl)}.pdf-description{font-size:var(--font-size-base)}.open-pdf-button{padding:18px 40px;font-size:var(--font-size-lg)}}@media (prefers-reduced-motion: reduce){.open-pdf-button,.retry-button{transition:none}}.open-pdf-button:focus-visible,.retry-button:focus-visible{outline:2px solid white;outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: DsButtonComponent, selector: "ds-button", inputs: ["variant", "size", "disabled", "loading", "pressed", "expanded", "leadingIcon", "trailingIcon", "ariaLabel", "iconOnly"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsMobileLightboxHeaderComponent, selector: "ds-mobile-lightbox-header", inputs: ["author"], outputs: ["closeClick", "shareClick"] }, { kind: "component", type: DsMobileLightboxFooterComponent, selector: "ds-mobile-lightbox-footer", inputs: ["showNavigation", "currentIndex", "totalImages", "showActions", "isLiked", "likeCount", "commentCount"], outputs: ["prevClick", "nextClick", "likeClick", "commentClick"] }] });
9374
9570
  }
9375
9571
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileLightboxPdfComponent, decorators: [{
9376
9572
  type: Component,
@@ -9452,7 +9648,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
9452
9648
  />
9453
9649
  </div>
9454
9650
  </ion-content>
9455
- `, styles: [".author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}:host{display:block;height:100%;width:100%}.lightbox-content.pdf-viewer{--background: rgba(0, 0, 0, 1);display:block;height:100vh;width:100vw;position:absolute;inset:0}.lightbox-content.pdf-viewer::part(scroll){display:flex;flex-direction:column;height:100%;overflow:hidden}.lightbox-wrapper{position:absolute;inset:0;display:flex;flex-direction:column;width:100%;height:100%}.lightbox-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:12px 16px;display:flex;flex-direction:column;gap:8px;background:linear-gradient(to bottom,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 80%,transparent 100%);pointer-events:none}.header-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:auto}.share-button,.close-button{pointer-events:auto;flex-shrink:0;border-radius:50%}.share-button::ng-deep button,.close-button::ng-deep button{color:#fff!important;background:#ffffff1a!important;border-radius:50%;transition:background .2s ease;border:none;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.share-button::ng-deep button:hover,.close-button::ng-deep button:hover{background:#ffffff26!important}.share-button::ng-deep button:disabled{opacity:.5!important;cursor:not-allowed!important}.share-button::ng-deep svg,.close-button::ng-deep svg{color:#fff!important;fill:#fff!important}@supports (padding-top: env(safe-area-inset-top)){.lightbox-header{padding-top:calc(16px + env(safe-area-inset-top))}}.pdf-container{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 24px 24px;overflow-y:auto;-webkit-overflow-scrolling:touch}.pdf-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:400px;width:100%;gap:16px}.pdf-content::ng-deep .avatar--icon{background-color:#ff5757!important}.pdf-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-xl);font-weight:600;line-height:1.3;letter-spacing:-.3px;color:#fff;margin:0;word-break:break-word}.pdf-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:#fff9;text-transform:uppercase}.open-pdf-button{margin-top:16px}.open-pdf-button::ng-deep button{background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:100px!important;color:#fff!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .2s ease;padding:16px!important}.open-pdf-button::ng-deep button:hover{background:#fff3!important;transform:scale(1.02)}.open-pdf-button::ng-deep button:active{transform:scale(.98)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:40px}.loading-state ion-spinner{--color: rgba(255, 255, 255, .8);width:48px;height:48px}.loading-state p{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:500;color:#fffc;margin:0}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;max-width:400px}.error-state svg{color:#ff6464cc;margin-bottom:24px}.error-state h3{font-family:Brockmann,sans-serif;font-size:var(--font-size-xl);font-weight:600;color:#fff;margin:0 0 12px}.error-state p{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:400;line-height:1.5;color:#ffffffb3;margin:0 0 24px}.retry-button{padding:12px 24px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .2s ease}.retry-button:hover{background:#ffffff26;border-color:#ffffff4d}.pdf-author-info{position:fixed;bottom:20px;left:20px;right:20px;display:flex;align-items:center;gap:12px;padding:16px;background:#000000b3;border-radius:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:50}.author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{color:#fff}.author-meta{color:#ffffffb3}.author-meta .separator{color:#ffffff80}@supports (padding-bottom: env(safe-area-inset-bottom)){.pdf-author-info{bottom:calc(20px + env(safe-area-inset-bottom))}.pdf-container{padding-bottom:calc(120px + env(safe-area-inset-bottom))}}@media (min-width: 768px){.lightbox-header{padding:24px}.pdf-container{padding:120px 40px 40px}.pdf-title{font-size:var(--font-size-3xl)}.pdf-description{font-size:var(--font-size-base)}.open-pdf-button{padding:18px 40px;font-size:var(--font-size-lg)}}@media (prefers-reduced-motion: reduce){.open-pdf-button,.retry-button{transition:none}}.open-pdf-button:focus-visible,.retry-button:focus-visible{outline:2px solid white;outline-offset:2px}\n"] }]
9651
+ `, styles: [".author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}:host{display:block;height:100%;width:100%}.lightbox-content.pdf-viewer{--background: rgba(0, 0, 0, 1);display:block;height:100vh;width:100vw;position:absolute;inset:0}.lightbox-content.pdf-viewer::part(scroll){display:flex;flex-direction:column;height:100%;overflow:hidden}.lightbox-wrapper{position:absolute;inset:0;display:flex;flex-direction:column;width:100%;height:100%}.lightbox-header{position:fixed;top:0;left:0;right:0;z-index:1000;padding:12px 16px;display:flex;flex-direction:column;gap:8px;background:linear-gradient(to bottom,rgba(0,0,0,.8) 0%,rgba(0,0,0,.4) 80%,transparent 100%);pointer-events:none}.header-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:auto}.share-button,.close-button{pointer-events:auto;flex-shrink:0;border-radius:50%}.share-button::ng-deep button,.close-button::ng-deep button{color:#fff!important;background:#ffffff1a!important;border-radius:50%;transition:background .2s ease;border:none;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.share-button::ng-deep button:hover,.close-button::ng-deep button:hover{background:#ffffff26!important}.share-button::ng-deep button:disabled{opacity:.5!important;cursor:not-allowed!important}.share-button::ng-deep svg,.close-button::ng-deep svg{color:#fff!important;fill:#fff!important}@supports (padding-top: env(safe-area-inset-top)){.lightbox-header{padding-top:calc(16px + env(safe-area-inset-top))}}.pdf-container{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 24px 24px;overflow-y:auto;-webkit-overflow-scrolling:touch}.pdf-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:400px;width:100%;gap:16px}.pdf-content::ng-deep .avatar--icon{background-color:#ff5757!important}.pdf-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-xl);font-weight:600;line-height:1.3;letter-spacing:-.3px;color:#fff;margin:0;word-break:break-word}.pdf-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:#fff9;text-transform:uppercase}.open-pdf-button{margin-top:16px}.open-pdf-button::ng-deep button{background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:100px!important;color:#fff!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .2s ease;padding:16px!important}.open-pdf-button::ng-deep button:hover{background:#fff3!important;transform:scale(1.02)}.open-pdf-button::ng-deep button:active{transform:scale(.98)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:40px}.loading-state ion-spinner{--color: rgba(255, 255, 255, .8);width:48px;height:48px}.loading-state p{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:500;color:#fffc;margin:0}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px;max-width:400px}.error-state svg{color:#ff6464cc;margin-bottom:24px}.error-state h3{font-family:Brockmann,sans-serif;font-size:var(--font-size-xl);font-weight:600;color:#fff;margin:0 0 12px}.error-state p{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:400;line-height:1.5;color:#ffffffb3;margin:0 0 24px}.retry-button{padding:12px 24px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .2s ease}.retry-button:hover{background:#ffffff26;border-color:#ffffff4d}.pdf-author-info{position:fixed;bottom:20px;left:20px;right:20px;display:flex;align-items:center;gap:12px;padding:16px;background:#000000b3;border-radius:12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:50}.author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{color:#fff}.author-meta{color:#ffffffb3}.author-meta .separator{color:#ffffff80}@supports (padding-bottom: env(safe-area-inset-bottom)){.pdf-author-info{bottom:calc(20px + env(safe-area-inset-bottom))}.pdf-container{padding-bottom:calc(120px + env(safe-area-inset-bottom))}}@media (min-width: 768px){.lightbox-header{padding:24px}.pdf-container{padding:120px 40px 40px}.pdf-title{font-size:var(--font-size-3xl)}.pdf-description{font-size:var(--font-size-base)}.open-pdf-button{padding:18px 40px;font-size:var(--font-size-lg)}}@media (prefers-reduced-motion: reduce){.open-pdf-button,.retry-button{transition:none}}.open-pdf-button:focus-visible,.retry-button:focus-visible{outline:2px solid white;outline-offset:2px}\n"] }]
9456
9652
  }], ctorParameters: () => [] });
9457
9653
 
9458
9654
  /**
@@ -11303,7 +11499,7 @@ class DsMobilePostDetailModalComponent {
11303
11499
  </div>
11304
11500
  </div>
11305
11501
  </ds-mobile-modal-base>
11306
- `, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ".post-detail-container{display:flex;flex-direction:column;gap:16px;width:100%;padding:0}.post-section{width:100%;border-bottom:1px solid var(--border-color-default);padding:20px}.post-content-only{font-size:var(--font-size-sm);line-height:24px;color:var(--color-text-primary, #1a1a1a);margin-bottom:16px}.post-content-only post-media{margin-top:16px}.post-actions{display:flex;align-items:center;gap:16px}.clickable-image{cursor:pointer;transition:transform .2s ease,opacity .2s ease;border-radius:8px;display:block;width:100%;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover}.clickable-image:active{transform:scale(.98);opacity:.9}.comments-section{display:flex;flex-direction:column;margin-left:0;margin-right:0;padding:0 20px}.comments-header{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:24px;color:var(--color-text-primary, #1a1a1a);margin:0 0 16px;padding-left:0;padding-right:0}.comments-list{display:flex;flex-direction:column}.comment-composer{pointer-events:auto;background:var(--color-background-neutral-primary, #ffffff);border-top:1px solid var(--border-color-default);padding:12px 16px;width:100%;display:flex;flex-direction:column;gap:8px}.edit-indicator{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--color-background-brand-subtle, #f0edfe);border-radius:8px;animation:slideDown .2s ease-out}.edit-indicator-content{display:flex;align-items:center;gap:8px;color:var(--color-brand-base, #6b5ff5);flex:1;min-width:0}.edit-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-brand-base, #6b5ff5)}.cancel-edit{background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-brand-base, #6b5ff5);border-radius:4px;transition:background .2s ease;flex-shrink:0}.cancel-edit:active{background:var(--color-brand-subtle, #e0dbfe)}.reply-indicator{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--color-background-neutral-secondary, #f5f5f5);border-radius:8px;animation:slideDown .2s ease-out}.reply-indicator-content{display:flex;align-items:center;gap:4px;color:var(--color-text-secondary, #737373);flex:1;min-width:0}.reply-to-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:18px;color:var(--color-text-secondary, #737373);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-author{color:var(--color-brand-base, #6b5ff5);font-weight:600}.cancel-reply{background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary, #737373);border-radius:4px;transition:background .2s ease;flex-shrink:0}.cancel-reply:active{background:var(--color-background-neutral-secondary, #f5f5f5)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.composer-content{display:flex;align-items:flex-start;gap:12px;width:100%;position:relative}.composer-content ds-avatar{position:relative;top:6px}.composer-input-wrapper{flex:1;display:flex;align-items:flex-start;gap:8px;background:var(--color-background-neutral-secondary, #f5f5f5);border-radius:24px;padding:12px 48px 12px 16px;min-height:44px;position:relative}.mention-menu{position:absolute;bottom:100%;left:0;right:0;background:var(--color-background-neutral-primary, #ffffff);border-radius:12px;box-shadow:0 4px 12px #00000026;margin-bottom:8px;max-height:200px;overflow-y:auto;z-index:10;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.mention-menu-item{display:flex;align-items:center;gap:12px;padding:12px;border:none;background:none;width:100%;text-align:left;cursor:pointer;transition:background .2s ease;border-bottom:1px solid var(--border-color-default)}.mention-menu-item:last-child{border-bottom:none}.mention-menu-item:active{background:var(--color-background-neutral-secondary, #f5f5f5)}.mention-user-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.mention-user-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:20px;color:var(--color-text-primary, #1a1a1a)}.mention-user-role{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:18px;color:var(--color-text-secondary, #737373)}.composer-input{flex:1;border:none;background:transparent;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:20px;color:var(--color-text-primary, #1a1a1a);outline:none;resize:none;min-height:20px;max-height:120px;overflow-y:auto;overflow-x:hidden;padding:0;margin:0}.composer-input::-moz-placeholder{color:var(--color-text-tertiary, #a0a0a0);font-size:var(--font-size-sm)}.composer-input::placeholder{color:var(--color-text-tertiary, #a0a0a0);font-size:var(--font-size-sm)}.send-button-fixed{position:absolute;top:6px;right:6px;z-index:10;flex-shrink:0;opacity:0;transform:translate(20px) scale(.8);pointer-events:none;transition:opacity .15s ease-in,transform .15s ease-in}.send-button-fixed.show{opacity:1;transform:translate(0) scale(1);pointer-events:auto;animation:slideInFromRight var(--spring-bouncy)}@media (prefers-reduced-motion: no-preference){.send-button-fixed{transition:opacity .15s ease-in,transform .15s ease-in}}.send-button-fixed::ng-deep button{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;padding:0!important;border-radius:50%!important}@keyframes slideInFromRight{0%{opacity:0;transform:translate(20px) scale(.8)}to{opacity:1;transform:translate(0) scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsIconButtonComponent, selector: "ds-icon-button", inputs: ["variant", "size", "icon", "disabled", "loading", "pressed", "expanded", "ariaLabel", "tooltip", "tooltipDisabled", "tooltipPlacement"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostMediaComponent, selector: "post-media" }, { kind: "component", type: ActionLikeComponent, selector: "action-like", inputs: ["active", "count"], outputs: ["activeChange", "countChange", "likeClick"] }, { kind: "component", type: ActionCommentComponent, selector: "action-comment", inputs: ["count"], outputs: ["commentClick"] }, { kind: "component", type: DsMobileCommentComponent, selector: "ds-mobile-comment", inputs: ["authorName", "authorRole", "timestamp", "content", "avatarInitials", "avatarType", "clickable", "isOwnComment", "isLiked", "likeCount"], outputs: ["likeToggled", "commentClick", "replyClick", "editClick", "longPress"] }, { kind: "component", type: DsMobileModalBaseComponent, selector: "ds-mobile-modal-base", inputs: ["showHeader"] }, { kind: "component", type: DsMobileEmptyStateComponent, selector: "ds-mobile-empty-state", inputs: ["imageSrc", "imageAlt", "title", "description"] }] });
11502
+ `, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ".post-detail-container{display:flex;flex-direction:column;gap:16px;width:100%;padding:0}.post-section{width:100%;border-bottom:1px solid var(--border-color-default);padding:20px}.post-content-only{font-size:var(--font-size-sm);line-height:24px;color:var(--color-text-primary, #1a1a1a);margin-bottom:16px}.post-content-only post-media{margin-top:16px}.post-actions{display:flex;align-items:center;gap:16px}.clickable-image{cursor:pointer;transition:transform .2s ease,opacity .2s ease;border-radius:8px;display:block;width:100%;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover}.clickable-image:active{transform:scale(.98);opacity:.9}.comments-section{display:flex;flex-direction:column;margin-left:0;margin-right:0;padding:0 20px}.comments-header{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:24px;color:var(--color-text-primary, #1a1a1a);margin:0 0 16px;padding-left:0;padding-right:0}.comments-list{display:flex;flex-direction:column}.comment-composer{pointer-events:auto;background:var(--color-background-neutral-primary, #ffffff);border-top:1px solid var(--border-color-default);padding:12px 16px;width:100%;display:flex;flex-direction:column;gap:8px}.edit-indicator{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--color-background-brand-subtle, #f0edfe);border-radius:8px;animation:slideDown .2s ease-out}.edit-indicator-content{display:flex;align-items:center;gap:8px;color:var(--color-brand-base, #6b5ff5);flex:1;min-width:0}.edit-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-brand-base, #6b5ff5)}.cancel-edit{background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-brand-base, #6b5ff5);border-radius:4px;transition:background .2s ease;flex-shrink:0}.cancel-edit:active{background:var(--color-brand-subtle, #e0dbfe)}.reply-indicator{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--color-background-neutral-secondary, #f5f5f5);border-radius:8px;animation:slideDown .2s ease-out}.reply-indicator-content{display:flex;align-items:center;gap:4px;color:var(--color-text-secondary, #737373);flex:1;min-width:0}.reply-to-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:18px;color:var(--color-text-secondary, #737373);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-author{color:var(--color-brand-base, #6b5ff5);font-weight:600}.cancel-reply{background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary, #737373);border-radius:4px;transition:background .2s ease;flex-shrink:0}.cancel-reply:active{background:var(--color-background-neutral-secondary, #f5f5f5)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.composer-content{display:flex;align-items:flex-start;gap:12px;width:100%;position:relative}.composer-content ds-avatar{position:relative;top:6px}.composer-input-wrapper{flex:1;display:flex;align-items:flex-start;gap:8px;background:var(--color-background-neutral-secondary, #f5f5f5);border-radius:24px;padding:12px 48px 12px 16px;min-height:44px;position:relative}.mention-menu{position:absolute;bottom:100%;left:0;right:0;background:var(--color-background-neutral-primary, #ffffff);border-radius:12px;box-shadow:0 4px 12px #00000026;margin-bottom:8px;max-height:200px;overflow-y:auto;z-index:10;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.mention-menu-item{display:flex;align-items:center;gap:12px;padding:12px;border:none;background:none;width:100%;text-align:left;cursor:pointer;transition:background .2s ease;border-bottom:1px solid var(--border-color-default)}.mention-menu-item:last-child{border-bottom:none}.mention-menu-item:active{background:var(--color-background-neutral-secondary, #f5f5f5)}.mention-user-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.mention-user-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:20px;color:var(--color-text-primary, #1a1a1a)}.mention-user-role{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:18px;color:var(--color-text-secondary, #737373)}.composer-input{flex:1;border:none;background:transparent;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:20px;color:var(--color-text-primary, #1a1a1a);outline:none;resize:none;min-height:20px;max-height:120px;overflow-y:auto;overflow-x:hidden;padding:0;margin:0}.composer-input::-moz-placeholder{color:var(--color-text-tertiary, #a0a0a0);font-size:var(--font-size-sm)}.composer-input::placeholder{color:var(--color-text-tertiary, #a0a0a0);font-size:var(--font-size-sm)}.send-button-fixed{position:absolute;top:6px;right:6px;z-index:10;flex-shrink:0;opacity:0;transform:translate(20px) scale(.8);pointer-events:none;transition:opacity .15s ease-in,transform .15s ease-in}.send-button-fixed.show{opacity:1;transform:translate(0) scale(1);pointer-events:auto;animation:slideInFromRight var(--spring-bouncy)}@media (prefers-reduced-motion: no-preference){.send-button-fixed{transition:opacity .15s ease-in,transform .15s ease-in}}.send-button-fixed::ng-deep button{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;padding:0!important;border-radius:50%!important}@keyframes slideInFromRight{0%{opacity:0;transform:translate(20px) scale(.8)}to{opacity:1;transform:translate(0) scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsIconButtonComponent, selector: "ds-icon-button", inputs: ["variant", "size", "icon", "disabled", "loading", "pressed", "expanded", "ariaLabel", "tooltip", "tooltipDisabled", "tooltipPlacement"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostMediaComponent, selector: "post-media" }, { kind: "component", type: ActionLikeComponent, selector: "action-like", inputs: ["active", "count"], outputs: ["activeChange", "countChange", "likeClick"] }, { kind: "component", type: ActionCommentComponent, selector: "action-comment", inputs: ["count"], outputs: ["commentClick"] }, { kind: "component", type: DsMobileCommentComponent, selector: "ds-mobile-comment", inputs: ["authorName", "authorRole", "timestamp", "content", "avatarInitials", "avatarType", "clickable", "isOwnComment", "isLiked", "likeCount"], outputs: ["likeToggled", "commentClick", "replyClick", "editClick", "longPress"] }, { kind: "component", type: DsMobileModalBaseComponent, selector: "ds-mobile-modal-base", inputs: ["showHeader"] }, { kind: "component", type: DsMobileEmptyStateComponent, selector: "ds-mobile-empty-state", inputs: ["imageSrc", "imageAlt", "title", "description"] }] });
11307
11503
  }
11308
11504
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobilePostDetailModalComponent, decorators: [{
11309
11505
  type: Component,
@@ -11445,7 +11641,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
11445
11641
  </div>
11446
11642
  </div>
11447
11643
  </ds-mobile-modal-base>
11448
- `, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ".post-detail-container{display:flex;flex-direction:column;gap:16px;width:100%;padding:0}.post-section{width:100%;border-bottom:1px solid var(--border-color-default);padding:20px}.post-content-only{font-size:var(--font-size-sm);line-height:24px;color:var(--color-text-primary, #1a1a1a);margin-bottom:16px}.post-content-only post-media{margin-top:16px}.post-actions{display:flex;align-items:center;gap:16px}.clickable-image{cursor:pointer;transition:transform .2s ease,opacity .2s ease;border-radius:8px;display:block;width:100%;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover}.clickable-image:active{transform:scale(.98);opacity:.9}.comments-section{display:flex;flex-direction:column;margin-left:0;margin-right:0;padding:0 20px}.comments-header{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:24px;color:var(--color-text-primary, #1a1a1a);margin:0 0 16px;padding-left:0;padding-right:0}.comments-list{display:flex;flex-direction:column}.comment-composer{pointer-events:auto;background:var(--color-background-neutral-primary, #ffffff);border-top:1px solid var(--border-color-default);padding:12px 16px;width:100%;display:flex;flex-direction:column;gap:8px}.edit-indicator{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--color-background-brand-subtle, #f0edfe);border-radius:8px;animation:slideDown .2s ease-out}.edit-indicator-content{display:flex;align-items:center;gap:8px;color:var(--color-brand-base, #6b5ff5);flex:1;min-width:0}.edit-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-brand-base, #6b5ff5)}.cancel-edit{background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-brand-base, #6b5ff5);border-radius:4px;transition:background .2s ease;flex-shrink:0}.cancel-edit:active{background:var(--color-brand-subtle, #e0dbfe)}.reply-indicator{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--color-background-neutral-secondary, #f5f5f5);border-radius:8px;animation:slideDown .2s ease-out}.reply-indicator-content{display:flex;align-items:center;gap:4px;color:var(--color-text-secondary, #737373);flex:1;min-width:0}.reply-to-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:18px;color:var(--color-text-secondary, #737373);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-author{color:var(--color-brand-base, #6b5ff5);font-weight:600}.cancel-reply{background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary, #737373);border-radius:4px;transition:background .2s ease;flex-shrink:0}.cancel-reply:active{background:var(--color-background-neutral-secondary, #f5f5f5)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.composer-content{display:flex;align-items:flex-start;gap:12px;width:100%;position:relative}.composer-content ds-avatar{position:relative;top:6px}.composer-input-wrapper{flex:1;display:flex;align-items:flex-start;gap:8px;background:var(--color-background-neutral-secondary, #f5f5f5);border-radius:24px;padding:12px 48px 12px 16px;min-height:44px;position:relative}.mention-menu{position:absolute;bottom:100%;left:0;right:0;background:var(--color-background-neutral-primary, #ffffff);border-radius:12px;box-shadow:0 4px 12px #00000026;margin-bottom:8px;max-height:200px;overflow-y:auto;z-index:10;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.mention-menu-item{display:flex;align-items:center;gap:12px;padding:12px;border:none;background:none;width:100%;text-align:left;cursor:pointer;transition:background .2s ease;border-bottom:1px solid var(--border-color-default)}.mention-menu-item:last-child{border-bottom:none}.mention-menu-item:active{background:var(--color-background-neutral-secondary, #f5f5f5)}.mention-user-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.mention-user-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:20px;color:var(--color-text-primary, #1a1a1a)}.mention-user-role{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:18px;color:var(--color-text-secondary, #737373)}.composer-input{flex:1;border:none;background:transparent;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:20px;color:var(--color-text-primary, #1a1a1a);outline:none;resize:none;min-height:20px;max-height:120px;overflow-y:auto;overflow-x:hidden;padding:0;margin:0}.composer-input::-moz-placeholder{color:var(--color-text-tertiary, #a0a0a0);font-size:var(--font-size-sm)}.composer-input::placeholder{color:var(--color-text-tertiary, #a0a0a0);font-size:var(--font-size-sm)}.send-button-fixed{position:absolute;top:6px;right:6px;z-index:10;flex-shrink:0;opacity:0;transform:translate(20px) scale(.8);pointer-events:none;transition:opacity .15s ease-in,transform .15s ease-in}.send-button-fixed.show{opacity:1;transform:translate(0) scale(1);pointer-events:auto;animation:slideInFromRight var(--spring-bouncy)}@media (prefers-reduced-motion: no-preference){.send-button-fixed{transition:opacity .15s ease-in,transform .15s ease-in}}.send-button-fixed::ng-deep button{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;padding:0!important;border-radius:50%!important}@keyframes slideInFromRight{0%{opacity:0;transform:translate(20px) scale(.8)}to{opacity:1;transform:translate(0) scale(1)}}\n"] }]
11644
+ `, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ".post-detail-container{display:flex;flex-direction:column;gap:16px;width:100%;padding:0}.post-section{width:100%;border-bottom:1px solid var(--border-color-default);padding:20px}.post-content-only{font-size:var(--font-size-sm);line-height:24px;color:var(--color-text-primary, #1a1a1a);margin-bottom:16px}.post-content-only post-media{margin-top:16px}.post-actions{display:flex;align-items:center;gap:16px}.clickable-image{cursor:pointer;transition:transform .2s ease,opacity .2s ease;border-radius:8px;display:block;width:100%;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover}.clickable-image:active{transform:scale(.98);opacity:.9}.comments-section{display:flex;flex-direction:column;margin-left:0;margin-right:0;padding:0 20px}.comments-header{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:24px;color:var(--color-text-primary, #1a1a1a);margin:0 0 16px;padding-left:0;padding-right:0}.comments-list{display:flex;flex-direction:column}.comment-composer{pointer-events:auto;background:var(--color-background-neutral-primary, #ffffff);border-top:1px solid var(--border-color-default);padding:12px 16px;width:100%;display:flex;flex-direction:column;gap:8px}.edit-indicator{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--color-background-brand-subtle, #f0edfe);border-radius:8px;animation:slideDown .2s ease-out}.edit-indicator-content{display:flex;align-items:center;gap:8px;color:var(--color-brand-base, #6b5ff5);flex:1;min-width:0}.edit-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-brand-base, #6b5ff5)}.cancel-edit{background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-brand-base, #6b5ff5);border-radius:4px;transition:background .2s ease;flex-shrink:0}.cancel-edit:active{background:var(--color-brand-subtle, #e0dbfe)}.reply-indicator{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--color-background-neutral-secondary, #f5f5f5);border-radius:8px;animation:slideDown .2s ease-out}.reply-indicator-content{display:flex;align-items:center;gap:4px;color:var(--color-text-secondary, #737373);flex:1;min-width:0}.reply-to-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:18px;color:var(--color-text-secondary, #737373);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-author{color:var(--color-brand-base, #6b5ff5);font-weight:600}.cancel-reply{background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary, #737373);border-radius:4px;transition:background .2s ease;flex-shrink:0}.cancel-reply:active{background:var(--color-background-neutral-secondary, #f5f5f5)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.composer-content{display:flex;align-items:flex-start;gap:12px;width:100%;position:relative}.composer-content ds-avatar{position:relative;top:6px}.composer-input-wrapper{flex:1;display:flex;align-items:flex-start;gap:8px;background:var(--color-background-neutral-secondary, #f5f5f5);border-radius:24px;padding:12px 48px 12px 16px;min-height:44px;position:relative}.mention-menu{position:absolute;bottom:100%;left:0;right:0;background:var(--color-background-neutral-primary, #ffffff);border-radius:12px;box-shadow:0 4px 12px #00000026;margin-bottom:8px;max-height:200px;overflow-y:auto;z-index:10;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.mention-menu-item{display:flex;align-items:center;gap:12px;padding:12px;border:none;background:none;width:100%;text-align:left;cursor:pointer;transition:background .2s ease;border-bottom:1px solid var(--border-color-default)}.mention-menu-item:last-child{border-bottom:none}.mention-menu-item:active{background:var(--color-background-neutral-secondary, #f5f5f5)}.mention-user-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.mention-user-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:20px;color:var(--color-text-primary, #1a1a1a)}.mention-user-role{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:18px;color:var(--color-text-secondary, #737373)}.composer-input{flex:1;border:none;background:transparent;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:20px;color:var(--color-text-primary, #1a1a1a);outline:none;resize:none;min-height:20px;max-height:120px;overflow-y:auto;overflow-x:hidden;padding:0;margin:0}.composer-input::-moz-placeholder{color:var(--color-text-tertiary, #a0a0a0);font-size:var(--font-size-sm)}.composer-input::placeholder{color:var(--color-text-tertiary, #a0a0a0);font-size:var(--font-size-sm)}.send-button-fixed{position:absolute;top:6px;right:6px;z-index:10;flex-shrink:0;opacity:0;transform:translate(20px) scale(.8);pointer-events:none;transition:opacity .15s ease-in,transform .15s ease-in}.send-button-fixed.show{opacity:1;transform:translate(0) scale(1);pointer-events:auto;animation:slideInFromRight var(--spring-bouncy)}@media (prefers-reduced-motion: no-preference){.send-button-fixed{transition:opacity .15s ease-in,transform .15s ease-in}}.send-button-fixed::ng-deep button{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;padding:0!important;border-radius:50%!important}@keyframes slideInFromRight{0%{opacity:0;transform:translate(20px) scale(.8)}to{opacity:1;transform:translate(0) scale(1)}}\n"] }]
11449
11645
  }], ctorParameters: () => [{ type: DsMobileLightboxService }, { type: DsMobileBottomSheetService }], propDecorators: { postData: [{
11450
11646
  type: Input
11451
11647
  }], currentUserName: [{
@@ -12966,7 +13162,7 @@ class DsMobileChatModalComponent {
12966
13162
  </ds-mobile-message-composer>
12967
13163
  </div>
12968
13164
  </ds-mobile-modal-base>
12969
- `, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ":host ::ng-deep .modal-content-container{padding-top:0}.chat-messages-container{display:flex;flex-direction:column;width:100%}.chat-avatar-section{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 20px 0;background:var(--color-background-neutral-primary, #ffffff)}.chat-avatar-info{display:flex;flex-direction:column;align-items:center;gap:4px}.chat-avatar-name{display:flex;align-items:center;gap:6px;font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--color-text-primary, #1a1a1a)}.chat-avatar-role{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;color:var(--color-text-secondary, #666666)}.chat-avatar-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:4px}.messages-list{display:flex;flex-direction:column;width:100%;padding:16px 20px 0;align-items:stretch}.messages-list ds-mobile-message-bubble{width:100%;display:flex}.timestamp-header{display:flex;justify-content:center;margin:16px 0 8px}.timestamp-text{font-family:Brockmann,sans-serif;font-size:12px;font-weight:400;color:var(--color-text-secondary);padding:4px 12px}.message-file-attachments{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;padding:0 20px 0 60px;max-width:100%}.message-file-attachments.own-message{padding:0 0 0 96px;align-items:flex-end}.message-file-attachments ds-mobile-card-inline-file{max-width:280px;width:100%}.message-image-attachment{width:96px;height:96px;cursor:pointer;border-radius:12px;overflow:hidden;position:relative;transition:transform .2s ease;border:1px solid var(--border-color-default, #e5e5e5)}.message-image-attachment:active{transform:scale(.98)}.message-image-attachment .inline-image{width:100%;height:100%;display:block;-o-object-fit:cover;object-fit:cover}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsAvatarWithBadgeComponent, selector: "ds-avatar-with-badge", inputs: ["type", "size", "initials", "src", "iconName", "showBadge", "badgePosition"] }, { kind: "component", type: DsMobileMessageComposerComponent, selector: "ds-mobile-message-composer", inputs: ["avatarInitials", "avatarType", "avatarSrc", "placeholder", "sendButtonLabel", "attachmentButtonLabel", "showAttachmentButton", "editIndicatorText", "replyIndicatorText", "enableMentions", "mentionUsers", "autoFocus"], outputs: ["messageSent", "editCancelled", "replyCancelled", "mentionSelected", "attachmentClicked", "attachmentsChanged"] }, { kind: "component", type: DsMobileMessageBubbleComponent, selector: "ds-mobile-message-bubble", inputs: ["content", "isOwnMessage", "senderName", "timestamp", "showTimestamp", "avatarInitials", "avatarType", "avatarSrc", "showAvatar", "clusterPosition", "attachments", "clickable", "isNewMessage"], outputs: ["attachmentClick", "longPress", "messageClick"] }, { kind: "component", type: DsMobileModalBaseComponent, selector: "ds-mobile-modal-base", inputs: ["showHeader"] }, { kind: "component", type: DsMobileCardInlineFileComponent, selector: "ds-mobile-card-inline-file", inputs: ["fileName", "fileSize", "variant", "layout", "fileUrl"], outputs: ["fileClick"] }, { kind: "component", type: DsMobileSystemMessageBannerComponent, selector: "ds-mobile-system-message-banner", inputs: ["message", "iconName", "afterTimestamp"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }] });
13165
+ `, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ":host ::ng-deep .modal-content-container{padding-top:0}.chat-messages-container{display:flex;flex-direction:column;width:100%}.chat-avatar-section{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 20px 0;background:var(--color-background-neutral-primary, #ffffff)}.chat-avatar-info{display:flex;flex-direction:column;align-items:center;gap:4px}.chat-avatar-name{display:flex;align-items:center;gap:6px;font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--color-text-primary, #1a1a1a)}.chat-avatar-role{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;color:var(--color-text-secondary, #666666)}.chat-avatar-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:4px}.messages-list{display:flex;flex-direction:column;width:100%;padding:16px 20px 0;align-items:stretch}.messages-list ds-mobile-message-bubble{width:100%;display:flex}.timestamp-header{display:flex;justify-content:center;margin:16px 0 8px}.timestamp-text{font-family:Brockmann,sans-serif;font-size:12px;font-weight:400;color:var(--color-text-secondary);padding:4px 12px}.message-file-attachments{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;padding:0 20px 0 60px;max-width:100%}.message-file-attachments.own-message{padding:0 0 0 96px;align-items:flex-end}.message-file-attachments ds-mobile-card-inline-file{max-width:280px;width:100%}.message-image-attachment{width:96px;height:96px;cursor:pointer;border-radius:12px;overflow:hidden;position:relative;transition:transform .2s ease;border:1px solid var(--border-color-default, #e5e5e5)}.message-image-attachment:active{transform:scale(.98)}.message-image-attachment .inline-image{width:100%;height:100%;display:block;-o-object-fit:cover;object-fit:cover}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsAvatarWithBadgeComponent, selector: "ds-avatar-with-badge", inputs: ["type", "size", "initials", "src", "iconName", "showBadge", "badgePosition"] }, { kind: "component", type: DsMobileMessageComposerComponent, selector: "ds-mobile-message-composer", inputs: ["avatarInitials", "avatarType", "avatarSrc", "placeholder", "sendButtonLabel", "attachmentButtonLabel", "showAttachmentButton", "editIndicatorText", "replyIndicatorText", "enableMentions", "mentionUsers", "autoFocus"], outputs: ["messageSent", "editCancelled", "replyCancelled", "mentionSelected", "attachmentClicked", "attachmentsChanged"] }, { kind: "component", type: DsMobileMessageBubbleComponent, selector: "ds-mobile-message-bubble", inputs: ["content", "isOwnMessage", "senderName", "timestamp", "showTimestamp", "avatarInitials", "avatarType", "avatarSrc", "showAvatar", "clusterPosition", "attachments", "clickable", "isNewMessage"], outputs: ["attachmentClick", "longPress", "messageClick"] }, { kind: "component", type: DsMobileModalBaseComponent, selector: "ds-mobile-modal-base", inputs: ["showHeader"] }, { kind: "component", type: DsMobileCardInlineFileComponent, selector: "ds-mobile-card-inline-file", inputs: ["fileName", "fileSize", "variant", "layout", "fileUrl"], outputs: ["fileClick"] }, { kind: "component", type: DsMobileSystemMessageBannerComponent, selector: "ds-mobile-system-message-banner", inputs: ["message", "iconName", "afterTimestamp"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }] });
12970
13166
  }
12971
13167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileChatModalComponent, decorators: [{
12972
13168
  type: Component,
@@ -13136,7 +13332,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
13136
13332
  </ds-mobile-message-composer>
13137
13333
  </div>
13138
13334
  </ds-mobile-modal-base>
13139
- `, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ":host ::ng-deep .modal-content-container{padding-top:0}.chat-messages-container{display:flex;flex-direction:column;width:100%}.chat-avatar-section{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 20px 0;background:var(--color-background-neutral-primary, #ffffff)}.chat-avatar-info{display:flex;flex-direction:column;align-items:center;gap:4px}.chat-avatar-name{display:flex;align-items:center;gap:6px;font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--color-text-primary, #1a1a1a)}.chat-avatar-role{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;color:var(--color-text-secondary, #666666)}.chat-avatar-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:4px}.messages-list{display:flex;flex-direction:column;width:100%;padding:16px 20px 0;align-items:stretch}.messages-list ds-mobile-message-bubble{width:100%;display:flex}.timestamp-header{display:flex;justify-content:center;margin:16px 0 8px}.timestamp-text{font-family:Brockmann,sans-serif;font-size:12px;font-weight:400;color:var(--color-text-secondary);padding:4px 12px}.message-file-attachments{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;padding:0 20px 0 60px;max-width:100%}.message-file-attachments.own-message{padding:0 0 0 96px;align-items:flex-end}.message-file-attachments ds-mobile-card-inline-file{max-width:280px;width:100%}.message-image-attachment{width:96px;height:96px;cursor:pointer;border-radius:12px;overflow:hidden;position:relative;transition:transform .2s ease;border:1px solid var(--border-color-default, #e5e5e5)}.message-image-attachment:active{transform:scale(.98)}.message-image-attachment .inline-image{width:100%;height:100%;display:block;-o-object-fit:cover;object-fit:cover}\n"] }]
13335
+ `, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ":host ::ng-deep .modal-content-container{padding-top:0}.chat-messages-container{display:flex;flex-direction:column;width:100%}.chat-avatar-section{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 20px 0;background:var(--color-background-neutral-primary, #ffffff)}.chat-avatar-info{display:flex;flex-direction:column;align-items:center;gap:4px}.chat-avatar-name{display:flex;align-items:center;gap:6px;font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--color-text-primary, #1a1a1a)}.chat-avatar-role{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;color:var(--color-text-secondary, #666666)}.chat-avatar-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:4px}.messages-list{display:flex;flex-direction:column;width:100%;padding:16px 20px 0;align-items:stretch}.messages-list ds-mobile-message-bubble{width:100%;display:flex}.timestamp-header{display:flex;justify-content:center;margin:16px 0 8px}.timestamp-text{font-family:Brockmann,sans-serif;font-size:12px;font-weight:400;color:var(--color-text-secondary);padding:4px 12px}.message-file-attachments{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;padding:0 20px 0 60px;max-width:100%}.message-file-attachments.own-message{padding:0 0 0 96px;align-items:flex-end}.message-file-attachments ds-mobile-card-inline-file{max-width:280px;width:100%}.message-image-attachment{width:96px;height:96px;cursor:pointer;border-radius:12px;overflow:hidden;position:relative;transition:transform .2s ease;border:1px solid var(--border-color-default, #e5e5e5)}.message-image-attachment:active{transform:scale(.98)}.message-image-attachment .inline-image{width:100%;height:100%;display:block;-o-object-fit:cover;object-fit:cover}\n"] }]
13140
13336
  }], ctorParameters: () => [{ type: DsMobileLightboxService }], propDecorators: { chatData: [{
13141
13337
  type: Input
13142
13338
  }], loading: [{
@@ -13587,7 +13783,7 @@ class DsMobileNewInquiryModalComponent {
13587
13783
  </div>
13588
13784
  </div>
13589
13785
  </ds-mobile-modal-base>
13590
- `, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ".inquiry-form{display:flex;flex-direction:column;gap:8px;padding:8px;flex:1;min-height:0}.inquiry-title-input{flex:0 0 auto}.inquiry-title-input ::ng-deep .textarea-container{flex:0 0 auto}.inquiry-title-input ::ng-deep textarea{font-size:var(--font-size-2xl);font-weight:400;line-height:1.2;max-height:200px;overflow-y:auto;resize:none;box-sizing:border-box}.fixed-bottom-container{background:var(--color-background-neutral-primary);border-top:1px solid var(--border-color-default)}.attachment-previews-section{padding:16px 20px;border-bottom:1px solid var(--border-color-default)}.image-previews{display:flex;flex-wrap:wrap;gap:8px}.submit-container{padding:16px 20px}.submit-content{display:flex;align-items:center;justify-content:space-between;gap:16px}.upload-actions{display:flex;align-items:center;gap:8px}.upload-actions ds-icon-button::ng-deep button{width:44px;height:44px;border-radius:50%}.submit-content ds-button::ng-deep button{border-radius:100px}.inquiry-form ds-textarea:not(.inquiry-title-input){display:flex;flex:1;min-height:0}.inquiry-form ds-textarea:not(.inquiry-title-input) ::ng-deep .textarea-container{display:flex;flex:1;min-height:0}.inquiry-form ds-textarea:not(.inquiry-title-input) ::ng-deep textarea{flex:1;min-height:200px;resize:none}@media (min-width: 768px){.inquiry-form{padding:24px 32px}.submit-container{padding:20px 32px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: DsButtonComponent, selector: "ds-button", inputs: ["variant", "size", "disabled", "loading", "pressed", "expanded", "leadingIcon", "trailingIcon", "ariaLabel", "iconOnly"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsTextareaComponent, selector: "ds-textarea", inputs: ["variant", "placeholder", "disabled", "readonly", "required", "ghost", "rows", "cols", "maxlength", "minlength", "ariaLabel", "ariaDescribedBy", "ariaLabelledBy"], outputs: ["valueChange", "focused", "blurred"] }, { kind: "component", type: DsIconButtonComponent, selector: "ds-icon-button", inputs: ["variant", "size", "icon", "disabled", "loading", "pressed", "expanded", "ariaLabel", "tooltip", "tooltipDisabled", "tooltipPlacement"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsMobileModalBaseComponent, selector: "ds-mobile-modal-base", inputs: ["showHeader"] }, { kind: "component", type: DsMobileAttachmentPreviewComponent, selector: "ds-mobile-attachment-preview", inputs: ["attachment"], outputs: ["remove"] }] });
13786
+ `, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ".inquiry-form{display:flex;flex-direction:column;gap:8px;padding:8px;flex:1;min-height:0}.inquiry-title-input{flex:0 0 auto}.inquiry-title-input ::ng-deep .textarea-container{flex:0 0 auto}.inquiry-title-input ::ng-deep textarea{font-size:var(--font-size-2xl);font-weight:400;line-height:1.2;max-height:200px;overflow-y:auto;resize:none;box-sizing:border-box}.fixed-bottom-container{background:var(--color-background-neutral-primary);border-top:1px solid var(--border-color-default)}.attachment-previews-section{padding:16px 20px;border-bottom:1px solid var(--border-color-default)}.image-previews{display:flex;flex-wrap:wrap;gap:8px}.submit-container{padding:16px 20px}.submit-content{display:flex;align-items:center;justify-content:space-between;gap:16px}.upload-actions{display:flex;align-items:center;gap:8px}.upload-actions ds-icon-button::ng-deep button{width:44px;height:44px;border-radius:50%}.submit-content ds-button::ng-deep button{border-radius:100px}.inquiry-form ds-textarea:not(.inquiry-title-input){display:flex;flex:1;min-height:0}.inquiry-form ds-textarea:not(.inquiry-title-input) ::ng-deep .textarea-container{display:flex;flex:1;min-height:0}.inquiry-form ds-textarea:not(.inquiry-title-input) ::ng-deep textarea{flex:1;min-height:200px;resize:none}@media (min-width: 768px){.inquiry-form{padding:24px 32px}.submit-container{padding:20px 32px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: DsButtonComponent, selector: "ds-button", inputs: ["variant", "size", "disabled", "loading", "pressed", "expanded", "leadingIcon", "trailingIcon", "ariaLabel", "iconOnly"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsTextareaComponent, selector: "ds-textarea", inputs: ["variant", "placeholder", "disabled", "readonly", "required", "ghost", "rows", "cols", "maxlength", "minlength", "ariaLabel", "ariaDescribedBy", "ariaLabelledBy"], outputs: ["valueChange", "focused", "blurred"] }, { kind: "component", type: DsIconButtonComponent, selector: "ds-icon-button", inputs: ["variant", "size", "icon", "disabled", "loading", "pressed", "expanded", "ariaLabel", "tooltip", "tooltipDisabled", "tooltipPlacement"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsMobileModalBaseComponent, selector: "ds-mobile-modal-base", inputs: ["showHeader"] }, { kind: "component", type: DsMobileAttachmentPreviewComponent, selector: "ds-mobile-attachment-preview", inputs: ["attachment"], outputs: ["remove"] }] });
13591
13787
  }
13592
13788
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileNewInquiryModalComponent, decorators: [{
13593
13789
  type: Component,
@@ -13695,7 +13891,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
13695
13891
  </div>
13696
13892
  </div>
13697
13893
  </ds-mobile-modal-base>
13698
- `, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ".inquiry-form{display:flex;flex-direction:column;gap:8px;padding:8px;flex:1;min-height:0}.inquiry-title-input{flex:0 0 auto}.inquiry-title-input ::ng-deep .textarea-container{flex:0 0 auto}.inquiry-title-input ::ng-deep textarea{font-size:var(--font-size-2xl);font-weight:400;line-height:1.2;max-height:200px;overflow-y:auto;resize:none;box-sizing:border-box}.fixed-bottom-container{background:var(--color-background-neutral-primary);border-top:1px solid var(--border-color-default)}.attachment-previews-section{padding:16px 20px;border-bottom:1px solid var(--border-color-default)}.image-previews{display:flex;flex-wrap:wrap;gap:8px}.submit-container{padding:16px 20px}.submit-content{display:flex;align-items:center;justify-content:space-between;gap:16px}.upload-actions{display:flex;align-items:center;gap:8px}.upload-actions ds-icon-button::ng-deep button{width:44px;height:44px;border-radius:50%}.submit-content ds-button::ng-deep button{border-radius:100px}.inquiry-form ds-textarea:not(.inquiry-title-input){display:flex;flex:1;min-height:0}.inquiry-form ds-textarea:not(.inquiry-title-input) ::ng-deep .textarea-container{display:flex;flex:1;min-height:0}.inquiry-form ds-textarea:not(.inquiry-title-input) ::ng-deep textarea{flex:1;min-height:200px;resize:none}@media (min-width: 768px){.inquiry-form{padding:24px 32px}.submit-container{padding:20px 32px}}\n"] }]
13894
+ `, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ".inquiry-form{display:flex;flex-direction:column;gap:8px;padding:8px;flex:1;min-height:0}.inquiry-title-input{flex:0 0 auto}.inquiry-title-input ::ng-deep .textarea-container{flex:0 0 auto}.inquiry-title-input ::ng-deep textarea{font-size:var(--font-size-2xl);font-weight:400;line-height:1.2;max-height:200px;overflow-y:auto;resize:none;box-sizing:border-box}.fixed-bottom-container{background:var(--color-background-neutral-primary);border-top:1px solid var(--border-color-default)}.attachment-previews-section{padding:16px 20px;border-bottom:1px solid var(--border-color-default)}.image-previews{display:flex;flex-wrap:wrap;gap:8px}.submit-container{padding:16px 20px}.submit-content{display:flex;align-items:center;justify-content:space-between;gap:16px}.upload-actions{display:flex;align-items:center;gap:8px}.upload-actions ds-icon-button::ng-deep button{width:44px;height:44px;border-radius:50%}.submit-content ds-button::ng-deep button{border-radius:100px}.inquiry-form ds-textarea:not(.inquiry-title-input){display:flex;flex:1;min-height:0}.inquiry-form ds-textarea:not(.inquiry-title-input) ::ng-deep .textarea-container{display:flex;flex:1;min-height:0}.inquiry-form ds-textarea:not(.inquiry-title-input) ::ng-deep textarea{flex:1;min-height:200px;resize:none}@media (min-width: 768px){.inquiry-form{padding:24px 32px}.submit-container{padding:20px 32px}}\n"] }]
13699
13895
  }], propDecorators: { titleInputRef: [{
13700
13896
  type: ViewChild,
13701
13897
  args: ['titleInput', { read: ElementRef }]
@@ -13918,6 +14114,10 @@ class DsMobileSwiperComponent {
13918
14114
  * Gap between slides in pixels
13919
14115
  */
13920
14116
  gap = input(16, ...(ngDevMode ? [{ debugName: "gap" }] : []));
14117
+ /**
14118
+ * Enable pagination dots
14119
+ */
14120
+ pagination = input(false, ...(ngDevMode ? [{ debugName: "pagination" }] : []));
13921
14121
  swiperContainer;
13922
14122
  swiperInstance = null;
13923
14123
  ngAfterViewInit() {
@@ -13933,7 +14133,7 @@ class DsMobileSwiperComponent {
13933
14133
  slides.forEach((slide) => {
13934
14134
  slide.style.width = this.slideWidth();
13935
14135
  });
13936
- this.swiperInstance = new Swiper(this.swiperContainer.nativeElement, {
14136
+ const config = {
13937
14137
  slidesPerView: 'auto',
13938
14138
  spaceBetween: this.gap(),
13939
14139
  centeredSlides: true,
@@ -13941,7 +14141,17 @@ class DsMobileSwiperComponent {
13941
14141
  speed: 300,
13942
14142
  resistance: true,
13943
14143
  resistanceRatio: 0.85,
13944
- });
14144
+ };
14145
+ // Add pagination if enabled
14146
+ if (this.pagination()) {
14147
+ config.modules = [Pagination];
14148
+ config.pagination = {
14149
+ el: '.swiper-pagination',
14150
+ clickable: true,
14151
+ dynamicBullets: false,
14152
+ };
14153
+ }
14154
+ this.swiperInstance = new Swiper(this.swiperContainer.nativeElement, config);
13945
14155
  }
13946
14156
  ngOnDestroy() {
13947
14157
  if (this.swiperInstance) {
@@ -13950,13 +14160,16 @@ class DsMobileSwiperComponent {
13950
14160
  }
13951
14161
  }
13952
14162
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileSwiperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13953
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: DsMobileSwiperComponent, isStandalone: true, selector: "ds-mobile-swiper", inputs: { slideWidth: { classPropertyName: "slideWidth", publicName: "slideWidth", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "swiperContainer", first: true, predicate: ["swiperContainer"], descendants: true }], ngImport: i0, template: `
14163
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: DsMobileSwiperComponent, isStandalone: true, selector: "ds-mobile-swiper", inputs: { slideWidth: { classPropertyName: "slideWidth", publicName: "slideWidth", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "swiperContainer", first: true, predicate: ["swiperContainer"], descendants: true }], ngImport: i0, template: `
13954
14164
  <div class="swiper-container" #swiperContainer>
13955
14165
  <div class="swiper-wrapper">
13956
14166
  <ng-content></ng-content>
13957
14167
  </div>
14168
+ @if (pagination()) {
14169
+ <div class="swiper-pagination"></div>
14170
+ }
13958
14171
  </div>
13959
- `, isInline: true, styles: [":host{display:block;width:100%}.swiper-container{width:100%;position:relative;overflow:hidden;border-radius:12px}.swiper-wrapper{display:flex;transition-property:transform;box-sizing:content-box}:host ::ng-deep .swiper-slide{flex-shrink:0;height:100%;position:relative;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
14172
+ `, isInline: true, styles: [":host{display:block;width:100%}.swiper-container{width:100%;position:relative;overflow:visible}.swiper-wrapper{display:flex;transition-property:transform;box-sizing:content-box}:host ::ng-deep .swiper-slide{flex-shrink:0;height:100%;position:relative;display:flex;align-items:center;justify-content:center}.swiper-pagination{position:relative;text-align:center;display:flex;justify-content:center;margin-top:20px;margin-bottom:-16px}:host ::ng-deep .swiper-pagination-bullet{width:6px;height:6px;border-radius:50%;background:var(--color-primary-surface);opacity:.25;transition:all .3s ease;cursor:pointer}:host ::ng-deep .swiper-pagination-bullet-active{opacity:1;background:var(--color-primary-surface);width:20px;border-radius:3px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
13960
14173
  }
13961
14174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileSwiperComponent, decorators: [{
13962
14175
  type: Component,
@@ -13965,9 +14178,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
13965
14178
  <div class="swiper-wrapper">
13966
14179
  <ng-content></ng-content>
13967
14180
  </div>
14181
+ @if (pagination()) {
14182
+ <div class="swiper-pagination"></div>
14183
+ }
13968
14184
  </div>
13969
- `, styles: [":host{display:block;width:100%}.swiper-container{width:100%;position:relative;overflow:hidden;border-radius:12px}.swiper-wrapper{display:flex;transition-property:transform;box-sizing:content-box}:host ::ng-deep .swiper-slide{flex-shrink:0;height:100%;position:relative;display:flex;align-items:center;justify-content:center}\n"] }]
13970
- }], propDecorators: { slideWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideWidth", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], swiperContainer: [{
14185
+ `, styles: [":host{display:block;width:100%}.swiper-container{width:100%;position:relative;overflow:visible}.swiper-wrapper{display:flex;transition-property:transform;box-sizing:content-box}:host ::ng-deep .swiper-slide{flex-shrink:0;height:100%;position:relative;display:flex;align-items:center;justify-content:center}.swiper-pagination{position:relative;text-align:center;display:flex;justify-content:center;margin-top:20px;margin-bottom:-16px}:host ::ng-deep .swiper-pagination-bullet{width:6px;height:6px;border-radius:50%;background:var(--color-primary-surface);opacity:.25;transition:all .3s ease;cursor:pointer}:host ::ng-deep .swiper-pagination-bullet-active{opacity:1;background:var(--color-primary-surface);width:20px;border-radius:3px}\n"] }]
14186
+ }], propDecorators: { slideWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "slideWidth", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], pagination: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagination", required: false }] }], swiperContainer: [{
13971
14187
  type: ViewChild,
13972
14188
  args: ['swiperContainer', { static: false }]
13973
14189
  }] } });
@@ -14163,7 +14379,7 @@ class DsMobileHandbookDetailModalComponent {
14163
14379
  }
14164
14380
  </div>
14165
14381
  </ds-mobile-modal-base>
14166
- `, isInline: true, styles: [".handbook-detail-container{display:flex;flex-direction:column;width:100%;flex:1}.handbook-item{width:100%;display:flex;flex-direction:column;gap:24px;padding:24px 20px;border-bottom:1px solid var(--border-color-default)}.handbook-item.last-item{border-bottom:none}.item-text-group{display:flex;flex-direction:column;gap:8px}.item-title{font-family:Brockmann,sans-serif;font-size:16px;font-weight:600;line-height:24px;color:var(--color-text-primary, #1a1a1a);margin:0}.item-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:20px;color:var(--color-text-primary, #1a1a1a);margin:0}.item-image{width:100%;max-width:100%;height:280px;-o-object-fit:cover;object-fit:cover;border-radius:12px;display:block}.contacts-list,.attachments-list{display:flex;flex-direction:column;gap:8px}.handbook-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state-image{width:96px;height:96px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--color-text-primary, #1a1a1a)}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--color-text-secondary, #737373)}@supports (padding: env(safe-area-inset-bottom)){.handbook-detail-container{padding-bottom:calc(20px + env(safe-area-inset-bottom))}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsMobileHandbookFolderMiniComponent, selector: "ds-mobile-handbook-folder-mini", inputs: ["variant", "iconName"] }, { kind: "component", type: DsMobileCardInlineFileComponent, selector: "ds-mobile-card-inline-file", inputs: ["fileName", "fileSize", "variant", "layout", "fileUrl"], outputs: ["fileClick"] }, { kind: "component", type: DsMobileCardInlineContactComponent, selector: "ds-mobile-card-inline-contact", inputs: ["name", "initials", "contactPerson", "phoneNumber", "layout", "clickable", "showChevron"], outputs: ["contactClick"] }, { kind: "component", type: DsMobileSwiperComponent, selector: "ds-mobile-swiper", inputs: ["slideWidth", "gap"] }, { kind: "component", type: DsMobileModalBaseComponent, selector: "ds-mobile-modal-base", inputs: ["showHeader"] }] });
14382
+ `, isInline: true, styles: [".handbook-detail-container{display:flex;flex-direction:column;width:100%;flex:1}.handbook-item{width:100%;display:flex;flex-direction:column;gap:24px;padding:24px 20px;border-bottom:1px solid var(--border-color-default)}.handbook-item.last-item{border-bottom:none}.item-text-group{display:flex;flex-direction:column;gap:8px}.item-title{font-family:Brockmann,sans-serif;font-size:16px;font-weight:600;line-height:24px;color:var(--color-text-primary, #1a1a1a);margin:0}.item-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:20px;color:var(--color-text-primary, #1a1a1a);margin:0}.item-image{width:100%;max-width:100%;height:280px;-o-object-fit:cover;object-fit:cover;border-radius:12px;display:block}.contacts-list,.attachments-list{display:flex;flex-direction:column;gap:8px}.handbook-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state-image{width:96px;height:96px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--color-text-primary, #1a1a1a)}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--color-text-secondary, #737373)}@supports (padding: env(safe-area-inset-bottom)){.handbook-detail-container{padding-bottom:calc(20px + env(safe-area-inset-bottom))}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsMobileHandbookFolderMiniComponent, selector: "ds-mobile-handbook-folder-mini", inputs: ["variant", "iconName"] }, { kind: "component", type: DsMobileCardInlineFileComponent, selector: "ds-mobile-card-inline-file", inputs: ["fileName", "fileSize", "variant", "layout", "fileUrl"], outputs: ["fileClick"] }, { kind: "component", type: DsMobileCardInlineContactComponent, selector: "ds-mobile-card-inline-contact", inputs: ["name", "initials", "contactPerson", "phoneNumber", "layout", "clickable", "showChevron"], outputs: ["contactClick"] }, { kind: "component", type: DsMobileSwiperComponent, selector: "ds-mobile-swiper", inputs: ["slideWidth", "gap", "pagination"] }, { kind: "component", type: DsMobileModalBaseComponent, selector: "ds-mobile-modal-base", inputs: ["showHeader"] }] });
14167
14383
  }
14168
14384
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DsMobileHandbookDetailModalComponent, decorators: [{
14169
14385
  type: Component,
@@ -15494,6 +15710,14 @@ class MobileCommunityPageComponent {
15494
15710
  postsService;
15495
15711
  // Get posts from service (using computed for safe initialization)
15496
15712
  allPosts = computed(() => this.postsService.posts(), ...(ngDevMode ? [{ debugName: "allPosts" }] : []));
15713
+ // Get pinned posts - we'll manually create them since they're special announcements
15714
+ // In a real app, these would have a 'pinned' flag in the database
15715
+ pinnedPosts = computed(() => {
15716
+ // Get all posts from Ejendomsadministrator (property manager)
15717
+ // Only property managers can create pinned posts
15718
+ const allPosts = this.postsService.posts();
15719
+ return allPosts.filter(post => post.authorRole === 'Ejendomsadministrator');
15720
+ }, ...(ngDevMode ? [{ debugName: "pinnedPosts" }] : []));
15497
15721
  // Computed to check if there are any posts to display
15498
15722
  hasAnyPosts = computed(() => {
15499
15723
  return this.allPosts().length > 0;
@@ -15753,43 +15977,66 @@ class MobileCommunityPageComponent {
15753
15977
  <ds-mobile-content role="feed">
15754
15978
  <div class="post-feed">
15755
15979
  <!-- Pinned Posts Section -->
15756
- <div class="pinned-posts-section" role="article">
15757
- <h2 class="section-headline">
15758
- <ds-icon name="remixPushpinFill" size="16px" color="primary" />
15759
- Fastgjorte opslag
15760
- </h2>
15761
-
15762
- <!-- Pinned: Maintenance Announcement -->
15763
- <ds-mobile-interactive-list-item-post
15764
- [authorName]="'Karen Nielsen'"
15765
- [authorRole]="'Ejendomsadministrator'"
15766
- [timestamp]="'2d siden'"
15767
- [avatarInitials]="'KN'"
15768
- [showBadge]="true"
15769
- [clickable]="true"
15770
- (postClick)="openPost('post-4')"
15771
- (commentClick)="openPost('post-4', true)"
15772
- (longPress)="handlePostLongPress('post-4', false)">
15773
-
15774
- <post-content>
15775
- <post-text>📢 Påmindelse: Bygningsvedligeholdelse planlagt til denne lørdag fra kl. 9 til 14. Vandet vil være midlertidigt lukket. Vær venlig at planlægge derefter!</post-text>
15776
-
15777
- <post-attachments>
15778
- <ds-mobile-card-inline-file
15779
- [fileName]="'Husregler.pdf'"
15780
- [fileSize]="'245 KB'"
15781
- [variant]="'pdf'"
15782
- [layout]="'compact'"
15783
- (fileClick)="openHouseRulesPdf()">
15784
- </ds-mobile-card-inline-file>
15785
- </post-attachments>
15786
- </post-content>
15980
+ <div class="content-section">
15981
+ <ds-tile>
15982
+ <ds-tile-section class="header-section">
15983
+ <h2 class="section-headline">
15984
+ <ds-icon name="remixPushpinFill" size="16px" color="primary" />
15985
+ Fastgjorte opslag
15986
+ </h2>
15987
+ </ds-tile-section>
15787
15988
 
15788
- <post-actions>
15789
- <action-like [count]="89" />
15790
- <action-comment [count]="67" (commentClick)="openPost('4', true)" />
15791
- </post-actions>
15792
- </ds-mobile-interactive-list-item-post>
15989
+ <ds-tile-section [padding]="false" class="pinned-posts-swiper-section">
15990
+ <div class="pinned-posts-list">
15991
+ <!-- Swipeable Pinned Posts -->
15992
+ <ds-mobile-swiper
15993
+ class="pinned-posts-swiper"
15994
+ [slideWidth]="'100%'"
15995
+ [gap]="20"
15996
+ [pagination]="true">
15997
+ @for (post of pinnedPosts(); track post.id) {
15998
+ <div class="swiper-slide">
15999
+ <ds-mobile-interactive-list-item-post
16000
+ class="swiper-post-item"
16001
+ [authorName]="post.authorName"
16002
+ [authorRole]="post.authorRole"
16003
+ [timestamp]="post.timestamp"
16004
+ [avatarInitials]="post.avatarInitials || ''"
16005
+ [avatarType]="post.avatarType"
16006
+ [avatarSrc]="post.avatarSrc || ''"
16007
+ [showBadge]="true"
16008
+ [clickable]="true"
16009
+ (postClick)="openPost(post.id)"
16010
+ (commentClick)="openPost(post.id, true)"
16011
+ (longPress)="handlePostLongPress(post.id, false)">
16012
+
16013
+ <post-content>
16014
+ <post-text>{{ post.content }}</post-text>
16015
+
16016
+ @if (post.id === 'post-4') {
16017
+ <post-attachments>
16018
+ <ds-mobile-card-inline-file
16019
+ [fileName]="'Husregler.pdf'"
16020
+ [fileSize]="'245 KB'"
16021
+ [variant]="'pdf'"
16022
+ [layout]="'compact'"
16023
+ (fileClick)="openHouseRulesPdf()">
16024
+ </ds-mobile-card-inline-file>
16025
+ </post-attachments>
16026
+ }
16027
+ </post-content>
16028
+
16029
+ <post-actions>
16030
+ <action-like [count]="post.likeCount" [active]="post.isLiked" />
16031
+ <action-comment [count]="post.commentCount" (commentClick)="openPost(post.id, true)" />
16032
+ </post-actions>
16033
+ </ds-mobile-interactive-list-item-post>
16034
+ </div>
16035
+ }
16036
+ </ds-mobile-swiper>
16037
+ </div>
16038
+ </ds-tile-section>
16039
+ </ds-tile>
15793
16040
  </div>
15794
16041
 
15795
16042
  <!-- All Posts Section -->
@@ -15942,7 +16189,7 @@ class MobileCommunityPageComponent {
15942
16189
  </div>
15943
16190
  </ds-mobile-content>
15944
16191
  </ds-mobile-page-main>
15945
- `, isInline: true, styles: [".post-feed,.post-list-wrapper{display:flex;flex-direction:column}.pinned-posts-section{margin:-12px -12px 12px;padding:0 12px 12px;box-shadow:var(--box-shadow-sm);border-radius:16px;border:1px solid var(--border-color-default)}.clickable-image{cursor:pointer;transition:transform .2s ease,opacity .2s ease;border-radius:8px;display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.clickable-image:active{transform:scale(.98);opacity:.9}.community-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state-image{width:96px;height:96px;margin-bottom:24px}ion-infinite-scroll{--color: var(--color-primary-surface)}ion-infinite-scroll-content{--color: var(--color-primary-surface)}ion-infinite-scroll-content::part(spinner){color:var(--color-primary-surface)}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileContentComponent, selector: "ds-mobile-content", inputs: ["layout"] }, { kind: "component", type: DsMobileInteractiveListItemPostComponent, selector: "ds-mobile-interactive-list-item-post", inputs: ["authorName", "authorRole", "timestamp", "avatarInitials", "avatarType", "avatarSrc", "avatarIconName", "showBadge", "variant", "clickable"], outputs: ["postClick", "commentClick", "longPress"] }, { kind: "component", type: DsMobilePostComposerComponent, selector: "ds-mobile-post-composer", inputs: ["avatarInitials", "avatarType", "avatarSrc", "avatarIconName", "placeholder", "buttonText"], outputs: ["composerClick"] }, { kind: "component", type: PostContentComponent, selector: "post-content" }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostMediaComponent, selector: "post-media" }, { kind: "component", type: PostAttachmentsComponent, selector: "post-attachments" }, { kind: "component", type: PostActionsComponent, selector: "post-actions" }, { kind: "component", type: ActionLikeComponent, selector: "action-like", inputs: ["active", "count"], outputs: ["activeChange", "countChange", "likeClick"] }, { kind: "component", type: ActionCommentComponent, selector: "action-comment", inputs: ["count"], outputs: ["commentClick"] }, { kind: "component", type: DsMobileCardInlineFileComponent, selector: "ds-mobile-card-inline-file", inputs: ["fileName", "fileSize", "variant", "layout", "fileUrl"], outputs: ["fileClick"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsMobileInlinePhotoComponent, selector: "ds-mobile-inline-photo", inputs: ["images", "author", "maxVisible"], outputs: ["photoClick"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }] });
16192
+ `, isInline: true, styles: ["::ng-deep ds-tile .ds-tile{border-radius:20px!important;overflow:visible!important}::ng-deep ds-tile-section{border-bottom:none!important}::ng-deep .header-section{padding:20px 20px 8px!important}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px;padding:0}.content-section{display:flex;flex-direction:column;gap:12px;margin:-8px -8px 12px}.pinned-posts-list{display:flex;flex-direction:column;padding:0 20px 16px;position:relative;z-index:1}::ng-deep .pinned-posts-swiper-section{overflow:hidden!important}::ng-deep .pinned-posts-swiper .swiper-slide{width:100%;max-width:600px;height:auto}.swiper-post-item{width:100%;height:auto}::ng-deep .pinned-posts-swiper .swiper-slide ds-mobile-interactive-list-item-post{height:auto}::ng-deep .pinned-posts-swiper .swiper-wrapper{height:auto}::ng-deep .content-section ds-tile-section{overflow:hidden}.post-feed{display:flex;flex-direction:column;gap:12px}.post-list-wrapper{display:flex;flex-direction:column}.clickable-image{cursor:pointer;transition:transform .2s ease,opacity .2s ease;border-radius:8px;display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.clickable-image:active{transform:scale(.98);opacity:.9}.community-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state-image{width:96px;height:96px;margin-bottom:24px}ion-infinite-scroll{--color: var(--color-primary-surface)}ion-infinite-scroll-content{--color: var(--color-primary-surface)}ion-infinite-scroll-content::part(spinner){color:var(--color-primary-surface)}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileContentComponent, selector: "ds-mobile-content", inputs: ["layout"] }, { kind: "component", type: DsMobileInteractiveListItemPostComponent, selector: "ds-mobile-interactive-list-item-post", inputs: ["authorName", "authorRole", "timestamp", "avatarInitials", "avatarType", "avatarSrc", "avatarIconName", "showBadge", "variant", "clickable", "enableLongPress"], outputs: ["postClick", "commentClick", "longPress"] }, { kind: "component", type: DsMobilePostComposerComponent, selector: "ds-mobile-post-composer", inputs: ["avatarInitials", "avatarType", "avatarSrc", "avatarIconName", "placeholder", "buttonText"], outputs: ["composerClick"] }, { kind: "component", type: DsMobileSwiperComponent, selector: "ds-mobile-swiper", inputs: ["slideWidth", "gap", "pagination"] }, { kind: "component", type: PostContentComponent, selector: "post-content" }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostMediaComponent, selector: "post-media" }, { kind: "component", type: PostAttachmentsComponent, selector: "post-attachments" }, { kind: "component", type: PostActionsComponent, selector: "post-actions" }, { kind: "component", type: ActionLikeComponent, selector: "action-like", inputs: ["active", "count"], outputs: ["activeChange", "countChange", "likeClick"] }, { kind: "component", type: ActionCommentComponent, selector: "action-comment", inputs: ["count"], outputs: ["commentClick"] }, { kind: "component", type: DsMobileCardInlineFileComponent, selector: "ds-mobile-card-inline-file", inputs: ["fileName", "fileSize", "variant", "layout", "fileUrl"], outputs: ["fileClick"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsTileComponent, selector: "ds-tile", inputs: ["orientation"] }, { kind: "component", type: DsTileSectionComponent, selector: "ds-tile-section", inputs: ["padding"] }, { kind: "component", type: DsMobileInlinePhotoComponent, selector: "ds-mobile-inline-photo", inputs: ["images", "author", "maxVisible"], outputs: ["photoClick"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }] });
15946
16193
  }
15947
16194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MobileCommunityPageComponent, decorators: [{
15948
16195
  type: Component,
@@ -15951,6 +16198,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
15951
16198
  DsMobileContentComponent,
15952
16199
  DsMobileInteractiveListItemPostComponent,
15953
16200
  DsMobilePostComposerComponent,
16201
+ DsMobileSwiperComponent,
15954
16202
  PostContentComponent,
15955
16203
  PostTextComponent,
15956
16204
  PostMediaComponent,
@@ -15960,6 +16208,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
15960
16208
  ActionCommentComponent,
15961
16209
  DsMobileCardInlineFileComponent,
15962
16210
  DsIconComponent,
16211
+ DsTileComponent,
16212
+ DsTileSectionComponent,
15963
16213
  DsMobileInlinePhotoComponent,
15964
16214
  IonInfiniteScroll,
15965
16215
  IonInfiniteScrollContent
@@ -15982,43 +16232,66 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
15982
16232
  <ds-mobile-content role="feed">
15983
16233
  <div class="post-feed">
15984
16234
  <!-- Pinned Posts Section -->
15985
- <div class="pinned-posts-section" role="article">
15986
- <h2 class="section-headline">
15987
- <ds-icon name="remixPushpinFill" size="16px" color="primary" />
15988
- Fastgjorte opslag
15989
- </h2>
15990
-
15991
- <!-- Pinned: Maintenance Announcement -->
15992
- <ds-mobile-interactive-list-item-post
15993
- [authorName]="'Karen Nielsen'"
15994
- [authorRole]="'Ejendomsadministrator'"
15995
- [timestamp]="'2d siden'"
15996
- [avatarInitials]="'KN'"
15997
- [showBadge]="true"
15998
- [clickable]="true"
15999
- (postClick)="openPost('post-4')"
16000
- (commentClick)="openPost('post-4', true)"
16001
- (longPress)="handlePostLongPress('post-4', false)">
16235
+ <div class="content-section">
16236
+ <ds-tile>
16237
+ <ds-tile-section class="header-section">
16238
+ <h2 class="section-headline">
16239
+ <ds-icon name="remixPushpinFill" size="16px" color="primary" />
16240
+ Fastgjorte opslag
16241
+ </h2>
16242
+ </ds-tile-section>
16002
16243
 
16003
- <post-content>
16004
- <post-text>📢 Påmindelse: Bygningsvedligeholdelse planlagt til denne lørdag fra kl. 9 til 14. Vandet vil være midlertidigt lukket. Vær venlig at planlægge derefter!</post-text>
16005
-
16006
- <post-attachments>
16007
- <ds-mobile-card-inline-file
16008
- [fileName]="'Husregler.pdf'"
16009
- [fileSize]="'245 KB'"
16010
- [variant]="'pdf'"
16011
- [layout]="'compact'"
16012
- (fileClick)="openHouseRulesPdf()">
16013
- </ds-mobile-card-inline-file>
16014
- </post-attachments>
16015
- </post-content>
16016
-
16017
- <post-actions>
16018
- <action-like [count]="89" />
16019
- <action-comment [count]="67" (commentClick)="openPost('4', true)" />
16020
- </post-actions>
16021
- </ds-mobile-interactive-list-item-post>
16244
+ <ds-tile-section [padding]="false" class="pinned-posts-swiper-section">
16245
+ <div class="pinned-posts-list">
16246
+ <!-- Swipeable Pinned Posts -->
16247
+ <ds-mobile-swiper
16248
+ class="pinned-posts-swiper"
16249
+ [slideWidth]="'100%'"
16250
+ [gap]="20"
16251
+ [pagination]="true">
16252
+ @for (post of pinnedPosts(); track post.id) {
16253
+ <div class="swiper-slide">
16254
+ <ds-mobile-interactive-list-item-post
16255
+ class="swiper-post-item"
16256
+ [authorName]="post.authorName"
16257
+ [authorRole]="post.authorRole"
16258
+ [timestamp]="post.timestamp"
16259
+ [avatarInitials]="post.avatarInitials || ''"
16260
+ [avatarType]="post.avatarType"
16261
+ [avatarSrc]="post.avatarSrc || ''"
16262
+ [showBadge]="true"
16263
+ [clickable]="true"
16264
+ (postClick)="openPost(post.id)"
16265
+ (commentClick)="openPost(post.id, true)"
16266
+ (longPress)="handlePostLongPress(post.id, false)">
16267
+
16268
+ <post-content>
16269
+ <post-text>{{ post.content }}</post-text>
16270
+
16271
+ @if (post.id === 'post-4') {
16272
+ <post-attachments>
16273
+ <ds-mobile-card-inline-file
16274
+ [fileName]="'Husregler.pdf'"
16275
+ [fileSize]="'245 KB'"
16276
+ [variant]="'pdf'"
16277
+ [layout]="'compact'"
16278
+ (fileClick)="openHouseRulesPdf()">
16279
+ </ds-mobile-card-inline-file>
16280
+ </post-attachments>
16281
+ }
16282
+ </post-content>
16283
+
16284
+ <post-actions>
16285
+ <action-like [count]="post.likeCount" [active]="post.isLiked" />
16286
+ <action-comment [count]="post.commentCount" (commentClick)="openPost(post.id, true)" />
16287
+ </post-actions>
16288
+ </ds-mobile-interactive-list-item-post>
16289
+ </div>
16290
+ }
16291
+ </ds-mobile-swiper>
16292
+ </div>
16293
+ </ds-tile-section>
16294
+ </ds-tile>
16022
16295
  </div>
16023
16296
 
16024
16297
  <!-- All Posts Section -->
@@ -16171,7 +16444,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
16171
16444
  </div>
16172
16445
  </ds-mobile-content>
16173
16446
  </ds-mobile-page-main>
16174
- `, styles: [".post-feed,.post-list-wrapper{display:flex;flex-direction:column}.pinned-posts-section{margin:-12px -12px 12px;padding:0 12px 12px;box-shadow:var(--box-shadow-sm);border-radius:16px;border:1px solid var(--border-color-default)}.clickable-image{cursor:pointer;transition:transform .2s ease,opacity .2s ease;border-radius:8px;display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.clickable-image:active{transform:scale(.98);opacity:.9}.community-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state-image{width:96px;height:96px;margin-bottom:24px}ion-infinite-scroll{--color: var(--color-primary-surface)}ion-infinite-scroll-content{--color: var(--color-primary-surface)}ion-infinite-scroll-content::part(spinner){color:var(--color-primary-surface)}\n"] }]
16447
+ `, styles: ["::ng-deep ds-tile .ds-tile{border-radius:20px!important;overflow:visible!important}::ng-deep ds-tile-section{border-bottom:none!important}::ng-deep .header-section{padding:20px 20px 8px!important}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px;padding:0}.content-section{display:flex;flex-direction:column;gap:12px;margin:-8px -8px 12px}.pinned-posts-list{display:flex;flex-direction:column;padding:0 20px 16px;position:relative;z-index:1}::ng-deep .pinned-posts-swiper-section{overflow:hidden!important}::ng-deep .pinned-posts-swiper .swiper-slide{width:100%;max-width:600px;height:auto}.swiper-post-item{width:100%;height:auto}::ng-deep .pinned-posts-swiper .swiper-slide ds-mobile-interactive-list-item-post{height:auto}::ng-deep .pinned-posts-swiper .swiper-wrapper{height:auto}::ng-deep .content-section ds-tile-section{overflow:hidden}.post-feed{display:flex;flex-direction:column;gap:12px}.post-list-wrapper{display:flex;flex-direction:column}.clickable-image{cursor:pointer;transition:transform .2s ease,opacity .2s ease;border-radius:8px;display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.clickable-image:active{transform:scale(.98);opacity:.9}.community-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state-image{width:96px;height:96px;margin-bottom:24px}ion-infinite-scroll{--color: var(--color-primary-surface)}ion-infinite-scroll-content{--color: var(--color-primary-surface)}ion-infinite-scroll-content::part(spinner){color:var(--color-primary-surface)}\n"] }]
16175
16448
  }], ctorParameters: () => [{ type: i1$3.Router }, { type: i1$3.ActivatedRoute }, { type: DsMobileBottomSheetService }, { type: DsMobileLightboxService }, { type: DsMobilePostDetailModalService }, { type: UserService }, { type: PostsService }] });
16176
16449
 
16177
16450
  class MobileHandbookPageComponent {
@@ -16543,11 +16816,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
16543
16816
  }], ctorParameters: () => [{ type: UserService }] });
16544
16817
 
16545
16818
  class MobileHomePageComponent {
16546
- navCtrl;
16819
+ router;
16547
16820
  userService;
16548
- constructor(navCtrl, userService) {
16549
- this.navCtrl = navCtrl;
16821
+ postsService;
16822
+ postModal;
16823
+ // Get recent posts from PostsService - exclude pinned post (post-4) and limit to 3
16824
+ recentPosts = computed(() => this.postsService.posts()
16825
+ .filter(post => post.id !== 'post-4') // Exclude pinned post
16826
+ .slice(0, 3), ...(ngDevMode ? [{ debugName: "recentPosts" }] : []));
16827
+ // Mock inquiry data
16828
+ allInquiries = signal([
16829
+ {
16830
+ id: '1',
16831
+ title: 'Tørretumbler virker ikke',
16832
+ description: 'I de sidste tre dage har jeg oplevet vedvarende problemer med tørretumbleren. Den starter, men stopper efter få minutter.',
16833
+ status: 'open',
16834
+ timestamp: '12 dage siden'
16835
+ },
16836
+ {
16837
+ id: '2',
16838
+ title: 'Problem med vandtryk',
16839
+ description: 'Lavt vandtryk i badeværelseshåndvasken. Det er blevet gradvist værre i løbet af den sidste uge.',
16840
+ status: 'open',
16841
+ timestamp: '5 dage siden'
16842
+ },
16843
+ {
16844
+ id: '3',
16845
+ title: 'Varme virker ikke ordentligt',
16846
+ description: 'Varmesystemet holder ikke den indstillede temperatur. Lejligheden er meget koldere, end den burde være.',
16847
+ status: 'closed',
16848
+ timestamp: '2 måneder siden'
16849
+ }
16850
+ ], ...(ngDevMode ? [{ debugName: "allInquiries" }] : []));
16851
+ // Filter for open inquiries and limit to 3
16852
+ openInquiries = computed(() => this.allInquiries()
16853
+ .filter(inquiry => inquiry.status === 'open')
16854
+ .slice(0, 3), ...(ngDevMode ? [{ debugName: "openInquiries" }] : []));
16855
+ constructor(router, userService, postsService, postModal) {
16856
+ this.router = router;
16550
16857
  this.userService = userService;
16858
+ this.postsService = postsService;
16859
+ this.postModal = postModal;
16551
16860
  console.log('MobileHomePageComponent constructor');
16552
16861
  }
16553
16862
  handleRefresh(event) {
@@ -16557,20 +16866,37 @@ class MobileHomePageComponent {
16557
16866
  event.target.complete();
16558
16867
  }, 1000);
16559
16868
  }
16560
- handlePostClick() {
16561
- console.log('Post clicked');
16562
- // In a real app, this would open the post detail modal
16869
+ async openPost(postId, focusComment = false) {
16870
+ console.log('Opening post:', postId, 'Focus comments:', focusComment);
16871
+ const post = this.postsService.getPostById(postId);
16872
+ if (post) {
16873
+ // Convert Post model to modal format (add postId and focusComment)
16874
+ const postData = {
16875
+ ...post,
16876
+ postId: post.id,
16877
+ avatarType: post.avatarType === 'icon' ? undefined : post.avatarType,
16878
+ focusComment
16879
+ };
16880
+ await this.postModal.open(postData, {
16881
+ currentUserName: 'Lars Mikkelsen',
16882
+ currentUserInitials: this.userService.avatarInitials()
16883
+ });
16884
+ }
16885
+ }
16886
+ openInquiryDetail(inquiryId) {
16887
+ console.log('Opening inquiry:', inquiryId);
16888
+ this.router.navigate(['/inquiry-detail', inquiryId]);
16563
16889
  }
16564
- handleContactClick(contactType) {
16565
- console.log('Contact clicked:', contactType);
16566
- // In a real app, this would open a contact detail modal or initiate a call
16890
+ navigateToCommunity() {
16891
+ console.log('Navigating to community page');
16892
+ this.router.navigate(['/announcements']);
16567
16893
  }
16568
- handleFileClick(fileType) {
16569
- console.log('File clicked:', fileType);
16570
- // In a real app, this would open the file in a PDF viewer/lightbox
16894
+ navigateToInquiries() {
16895
+ console.log('Navigating to inquiries page');
16896
+ this.router.navigate(['/inquiries']);
16571
16897
  }
16572
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MobileHomePageComponent, deps: [{ token: i1.NavController }, { token: UserService }], target: i0.ɵɵFactoryTarget.Component });
16573
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: MobileHomePageComponent, isStandalone: true, selector: "app-home-page", ngImport: i0, template: `
16898
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MobileHomePageComponent, deps: [{ token: i1$3.Router }, { token: UserService }, { token: PostsService }, { token: DsMobilePostDetailModalService }], target: i0.ɵɵFactoryTarget.Component });
16899
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: MobileHomePageComponent, isStandalone: true, selector: "app-home-page", ngImport: i0, template: `
16574
16900
  <ds-mobile-page-main
16575
16901
  title="Hjem"
16576
16902
  headerTitle="Velkommen, Lars"
@@ -16579,157 +16905,177 @@ class MobileHomePageComponent {
16579
16905
  [avatarType]="userService.avatarType()"
16580
16906
  (refresh)="handleRefresh($event)">
16581
16907
 
16582
- <!-- Property info tiles in header -->
16583
- <ds-mobile-header-content header-content>
16584
- <ds-mobile-header-content-tile>
16585
- <tile-icon>
16586
- <ds-icon name="remixHome4Line" size="20px" />
16587
- </tile-icon>
16588
- <tile-content>
16589
- <tile-label>Areal</tile-label>
16590
- <tile-value>120 m²</tile-value>
16591
- </tile-content>
16592
- </ds-mobile-header-content-tile>
16593
-
16594
- <ds-mobile-header-content-tile>
16595
- <tile-icon>
16596
- <ds-icon name="remixCollageLine" size="20px" />
16597
- </tile-icon>
16598
- <tile-content>
16599
- <tile-label>Værelser</tile-label>
16600
- <tile-value>3 værelser</tile-value>
16601
- </tile-content>
16602
- </ds-mobile-header-content-tile>
16603
- </ds-mobile-header-content>
16604
-
16605
16908
  <!-- Main page content -->
16606
16909
  <ds-mobile-content>
16607
- <!-- Pinned Post Section -->
16608
- <div class="pinned-posts-section" role="article">
16609
- <h2 class="section-headline">
16610
- <ds-icon name="remixPushpinFill" size="16px" color="primary" />
16611
- Fastgjorte opslag
16612
- </h2>
16613
-
16614
- <!-- Pinned: Maintenance Announcement -->
16615
- <ds-mobile-interactive-list-item-post
16616
- [authorName]="'Karen Nielsen'"
16617
- [authorRole]="'Ejendomsadministrator'"
16618
- [timestamp]="'2d siden'"
16619
- [avatarInitials]="'KN'"
16620
- [showBadge]="true"
16621
- [clickable]="true"
16622
- (postClick)="handlePostClick()"
16623
- (commentClick)="handlePostClick()">
16910
+ <!-- Recent Community Posts Section -->
16911
+ <div class="content-section">
16912
+ <ds-tile>
16913
+ <ds-tile-section class="header-section">
16914
+ <h2 class="section-headline">Seneste opslag</h2>
16915
+ </ds-tile-section>
16624
16916
 
16625
- <post-content>
16626
- <post-text>📢 Påmindelse: Bygningsvedligeholdelse planlagt til denne lørdag fra kl. 9 til 14. Vandet vil være midlertidigt lukket. Vær venlig at planlægge derefter!</post-text>
16627
-
16628
- <post-attachments>
16629
- <ds-mobile-card-inline-file
16630
- [fileName]="'Husregler.pdf'"
16631
- [fileSize]="'245 KB'"
16632
- [variant]="'pdf'"
16633
- [layout]="'compact'"
16634
- (fileClick)="handleFileClick('house-rules')">
16635
- </ds-mobile-card-inline-file>
16636
- </post-attachments>
16637
- </post-content>
16917
+ <ds-tile-section [padding]="false">
16918
+ <div class="recent-posts-list">
16919
+ @for (post of recentPosts(); track post.id) {
16920
+ <ds-mobile-interactive-list-item-post
16921
+ [authorName]="post.authorName"
16922
+ [authorRole]="post.authorRole"
16923
+ [timestamp]="post.timestamp"
16924
+ [avatarType]="post.avatarType"
16925
+ [avatarSrc]="post.avatarSrc || ''"
16926
+ [avatarInitials]="post.avatarInitials || ''"
16927
+ [showBadge]="post.showBadge || false"
16928
+ [clickable]="true"
16929
+ [enableLongPress]="false"
16930
+ (postClick)="openPost(post.id)"
16931
+ (commentClick)="openPost(post.id, true)">
16932
+
16933
+ <post-content>
16934
+ @if (post.content) {
16935
+ <post-text>{{ post.content }}</post-text>
16936
+ }
16937
+ </post-content>
16938
+
16939
+ <post-actions>
16940
+ <action-like [count]="post.likeCount" [active]="post.isLiked" />
16941
+ <action-comment [count]="post.commentCount" (commentClick)="openPost(post.id, true)" />
16942
+ </post-actions>
16943
+ </ds-mobile-interactive-list-item-post>
16944
+ }
16945
+ </div>
16946
+ </ds-tile-section>
16638
16947
 
16639
- <post-actions>
16640
- <action-like [count]="89" />
16641
- <action-comment [count]="67" (commentClick)="handlePostClick()" />
16642
- </post-actions>
16643
- </ds-mobile-interactive-list-item-post>
16948
+ <ds-tile-section class="view-all-section">
16949
+ <ds-button
16950
+ variant="secondary"
16951
+ trailingIcon="remixArrowRightSLine"
16952
+ (click)="navigateToCommunity()">
16953
+ Se alle opslag
16954
+ </ds-button>
16955
+ </ds-tile-section>
16956
+ </ds-tile>
16644
16957
  </div>
16645
16958
 
16646
- <!-- Contacts Section -->
16959
+ <!-- Recent Community Posts Section (empty state) -->
16647
16960
  <div class="content-section">
16648
- <h2 class="section-headline">Kontakter</h2>
16649
-
16650
- <div class="items-container">
16651
- <ds-mobile-card-inline-contact
16652
- [name]="'Propbinder Demo ApS'"
16653
- [initials]="'PD'"
16654
- [contactPerson]="'Karen Nielsen'"
16655
- [phoneNumber]="'+45 12 34 56 78'"
16656
- (contactClick)="handleContactClick('landlord')">
16657
- </ds-mobile-card-inline-contact>
16658
-
16659
- <ds-mobile-card-inline-contact
16660
- [name]="'Viceværten'"
16661
- [initials]="'V'"
16662
- [contactPerson]="'Erik Sørensen'"
16663
- [phoneNumber]="'+45 56 78 90 12'"
16664
- (contactClick)="handleContactClick('caretaker')">
16665
- </ds-mobile-card-inline-contact>
16961
+ <ds-tile>
16962
+ <ds-tile-section [padding]="false">
16963
+ <div class="empty-state">
16964
+ <ds-avatar
16965
+ type="icon"
16966
+ [iconName]="'remixChat3Line'"
16967
+ size="lg"
16968
+ backgroundColor="var(--color-background-neutral-secondary, #f5f5f5)"
16969
+ iconColor="var(--text-color-default-tertiary, #737373)"
16970
+ />
16971
+ <h3 class="empty-state-title">Ingen opslag endnu</h3>
16972
+ <p class="empty-state-description">Der er ingen opslag i fællesområdet i øjeblikket</p>
16973
+ </div>
16974
+ </ds-tile-section>
16666
16975
 
16667
- <ds-mobile-card-inline-contact
16668
- [name]="'VVS Hansen'"
16669
- [initials]="'VH'"
16670
- [contactPerson]="'Peter Hansen'"
16671
- [phoneNumber]="'+45 34 56 78 90'"
16672
- (contactClick)="handleContactClick('plumber')">
16673
- </ds-mobile-card-inline-contact>
16674
- </div>
16976
+ <ds-tile-section class="view-all-section">
16977
+ <ds-button
16978
+ variant="secondary"
16979
+ trailingIcon="remixArrowRightSLine"
16980
+ (click)="navigateToCommunity()">
16981
+ Gå til fællesområdet
16982
+ </ds-button>
16983
+ </ds-tile-section>
16984
+ </ds-tile>
16675
16985
  </div>
16676
-
16677
- <!-- Important Files Section -->
16986
+
16987
+ <!-- Open Inquiries Section (with content) -->
16678
16988
  <div class="content-section">
16679
- <h2 class="section-headline">Vigtige dokumenter</h2>
16680
-
16681
- <div class="items-container">
16682
- <ds-mobile-card-inline-file
16683
- [fileName]="'Lejekontrakt'"
16684
- [fileSize]="'1.2 MB'"
16685
- [variant]="'pdf'"
16686
- (fileClick)="handleFileClick('lease-contract')">
16687
- </ds-mobile-card-inline-file>
16989
+ <ds-tile>
16990
+ <ds-tile-section class="header-section">
16991
+ <h2 class="section-headline">Åbne henvendelser</h2>
16992
+ </ds-tile-section>
16688
16993
 
16689
- <ds-mobile-card-inline-file
16690
- [fileName]="'Husorden'"
16691
- [fileSize]="'245 KB'"
16692
- [variant]="'pdf'"
16693
- (fileClick)="handleFileClick('house-rules')">
16694
- </ds-mobile-card-inline-file>
16994
+ <ds-tile-section [padding]="false">
16995
+ @if (openInquiries().length > 0) {
16996
+ <div class="inquiries-list">
16997
+ @for (inquiry of openInquiries(); track inquiry.id) {
16998
+ <ds-mobile-interactive-list-item-inquiry
16999
+ [title]="inquiry.title"
17000
+ [description]="inquiry.description"
17001
+ [status]="inquiry.status"
17002
+ [timestamp]="inquiry.timestamp"
17003
+ [iconName]="'remixTodoLine'"
17004
+ [clickable]="true"
17005
+ [showChevron]="false"
17006
+ [enableLongPress]="false"
17007
+ (inquiryClick)="openInquiryDetail(inquiry.id)">
17008
+ </ds-mobile-interactive-list-item-inquiry>
17009
+ }
17010
+ </div>
17011
+ } @else {
17012
+ <!-- Empty state -->
17013
+ <div class="empty-state">
17014
+ <ds-icon name="remixInboxLine" size="48px" color="tertiary" />
17015
+ <h3 class="empty-state-title">Ingen åbne henvendelser</h3>
17016
+ <p class="empty-state-description">Du har ingen åbne henvendelser i øjeblikket</p>
17017
+ </div>
17018
+ }
17019
+ </ds-tile-section>
16695
17020
 
16696
- <ds-mobile-card-inline-file
16697
- [fileName]="'Energimærkning'"
16698
- [fileSize]="'512 KB'"
16699
- [variant]="'pdf'"
16700
- (fileClick)="handleFileClick('energy-label')">
16701
- </ds-mobile-card-inline-file>
17021
+ @if (openInquiries().length > 0) {
17022
+ <ds-tile-section class="view-all-section">
17023
+ <ds-button
17024
+ variant="secondary"
17025
+ trailingIcon="remixArrowRightSLine"
17026
+ (click)="navigateToInquiries()">
17027
+ Se alle henvendelser
17028
+ </ds-button>
17029
+ </ds-tile-section>
17030
+ }
17031
+ </ds-tile>
17032
+ </div>
17033
+
17034
+ <!-- Open Inquiries Section (empty state) -->
17035
+ <div class="content-section">
17036
+ <ds-tile>
17037
+ <ds-tile-section [padding]="false">
17038
+ <div class="empty-state">
17039
+ <ds-avatar
17040
+ type="icon"
17041
+ [iconName]="'remixInboxLine'"
17042
+ size="lg"
17043
+ backgroundColor="var(--color-background-neutral-secondary, #f5f5f5)"
17044
+ iconColor="var(--text-color-default-tertiary, #737373)"
17045
+ />
17046
+ <h3 class="empty-state-title">Ingen åbne henvendelser</h3>
17047
+ <p class="empty-state-description">Du har ingen åbne henvendelser i øjeblikket</p>
17048
+ </div>
17049
+ </ds-tile-section>
16702
17050
 
16703
- <ds-mobile-card-inline-file
16704
- [fileName]="'Forsikringsdokument'"
16705
- [fileSize]="'890 KB'"
16706
- [variant]="'pdf'"
16707
- (fileClick)="handleFileClick('insurance')">
16708
- </ds-mobile-card-inline-file>
16709
- </div>
17051
+ <ds-tile-section class="view-all-section">
17052
+ <ds-button
17053
+ variant="secondary"
17054
+ trailingIcon="remixArrowRightSLine"
17055
+ (click)="navigateToInquiries()">
17056
+ Gå til henvendelser
17057
+ </ds-button>
17058
+ </ds-tile-section>
17059
+ </ds-tile>
16710
17060
  </div>
16711
17061
  </ds-mobile-content>
16712
17062
  </ds-mobile-page-main>
16713
- `, isInline: true, styles: [".section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px;padding:0}.pinned-posts-section{margin:-12px -12px 0;padding:0 12px 12px;box-shadow:var(--box-shadow-sm);border-radius:16px;border:1px solid var(--border-color-default)}.pinned-posts-section .section-headline{padding:16px 0}.content-section{display:flex;flex-direction:column;gap:12px}.items-container{display:flex;flex-direction:column;gap:4px}\n"], dependencies: [{ kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileHeaderContentComponent, selector: "ds-mobile-header-content" }, { kind: "component", type: DsMobileHeaderContentTileComponent, selector: "ds-mobile-header-content-tile" }, { kind: "component", type: TileIconComponent, selector: "tile-icon" }, { kind: "component", type: TileContentComponent, selector: "tile-content" }, { kind: "component", type: TileLabelComponent, selector: "tile-label" }, { kind: "component", type: TileValueComponent, selector: "tile-value" }, { kind: "component", type: DsMobileContentComponent, selector: "ds-mobile-content", inputs: ["layout"] }, { kind: "component", type: DsMobileCardInlineContactComponent, selector: "ds-mobile-card-inline-contact", inputs: ["name", "initials", "contactPerson", "phoneNumber", "layout", "clickable", "showChevron"], outputs: ["contactClick"] }, { kind: "component", type: DsMobileCardInlineFileComponent, selector: "ds-mobile-card-inline-file", inputs: ["fileName", "fileSize", "variant", "layout", "fileUrl"], outputs: ["fileClick"] }, { kind: "component", type: DsMobileInteractiveListItemPostComponent, selector: "ds-mobile-interactive-list-item-post", inputs: ["authorName", "authorRole", "timestamp", "avatarInitials", "avatarType", "avatarSrc", "avatarIconName", "showBadge", "variant", "clickable"], outputs: ["postClick", "commentClick", "longPress"] }, { kind: "component", type: PostContentComponent, selector: "post-content" }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostAttachmentsComponent, selector: "post-attachments" }, { kind: "component", type: PostActionsComponent, selector: "post-actions" }, { kind: "component", type: ActionLikeComponent, selector: "action-like", inputs: ["active", "count"], outputs: ["activeChange", "countChange", "likeClick"] }, { kind: "component", type: ActionCommentComponent, selector: "action-comment", inputs: ["count"], outputs: ["commentClick"] }] });
17063
+ `, isInline: true, styles: ["::ng-deep ds-tile .ds-tile{border-radius:20px!important;overflow:visible!important}::ng-deep ds-tile-section{border-bottom:none!important}::ng-deep .header-section{padding:20px 20px 8px!important}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px;padding:0}.content-section{display:flex;flex-direction:column;gap:12px;margin:-8px}.items-container{display:flex;flex-direction:column;gap:4px}.recent-posts-list,.inquiries-list{display:flex;flex-direction:column;padding:16px 20px;margin-top:-12px;position:relative;z-index:1}.view-all-section{display:block}.view-all-section ds-button{width:100%;display:block}.view-all-section ds-button::ng-deep .btn{width:100%;border-radius:9999px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px 8px;text-align:center}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin:16px 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}\n"], dependencies: [{ kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: DsTileComponent, selector: "ds-tile", inputs: ["orientation"] }, { kind: "component", type: DsTileSectionComponent, selector: "ds-tile-section", inputs: ["padding"] }, { kind: "component", type: DsButtonComponent, selector: "ds-button", inputs: ["variant", "size", "disabled", "loading", "pressed", "expanded", "leadingIcon", "trailingIcon", "ariaLabel", "iconOnly"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileContentComponent, selector: "ds-mobile-content", inputs: ["layout"] }, { kind: "component", type: DsMobileInteractiveListItemPostComponent, selector: "ds-mobile-interactive-list-item-post", inputs: ["authorName", "authorRole", "timestamp", "avatarInitials", "avatarType", "avatarSrc", "avatarIconName", "showBadge", "variant", "clickable", "enableLongPress"], outputs: ["postClick", "commentClick", "longPress"] }, { kind: "component", type: DsMobileInteractiveListItemInquiryComponent, selector: "ds-mobile-interactive-list-item-inquiry", inputs: ["title", "description", "status", "statusLabel", "timestamp", "iconName", "iconColor", "variant", "clickable", "showChevron", "enableLongPress"], outputs: ["inquiryClick", "longPress"] }, { kind: "component", type: PostContentComponent, selector: "post-content" }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostActionsComponent, selector: "post-actions" }, { kind: "component", type: ActionLikeComponent, selector: "action-like", inputs: ["active", "count"], outputs: ["activeChange", "countChange", "likeClick"] }, { kind: "component", type: ActionCommentComponent, selector: "action-comment", inputs: ["count"], outputs: ["commentClick"] }] });
16714
17064
  }
16715
17065
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MobileHomePageComponent, decorators: [{
16716
17066
  type: Component,
16717
17067
  args: [{ selector: 'app-home-page', standalone: true, imports: [
16718
17068
  DsIconComponent,
17069
+ DsAvatarComponent,
17070
+ DsTileComponent,
17071
+ DsTileSectionComponent,
17072
+ DsButtonComponent,
16719
17073
  DsMobilePageMainComponent,
16720
- DsMobileHeaderContentComponent,
16721
- DsMobileHeaderContentTileComponent,
16722
- TileIconComponent,
16723
- TileContentComponent,
16724
- TileLabelComponent,
16725
- TileValueComponent,
16726
17074
  DsMobileContentComponent,
16727
- DsMobileCardInlineContactComponent,
16728
- DsMobileCardInlineFileComponent,
16729
17075
  DsMobileInteractiveListItemPostComponent,
17076
+ DsMobileInteractiveListItemInquiryComponent,
16730
17077
  PostContentComponent,
16731
17078
  PostTextComponent,
16732
- PostAttachmentsComponent,
16733
17079
  PostActionsComponent,
16734
17080
  ActionLikeComponent,
16735
17081
  ActionCommentComponent
@@ -16742,139 +17088,163 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
16742
17088
  [avatarType]="userService.avatarType()"
16743
17089
  (refresh)="handleRefresh($event)">
16744
17090
 
16745
- <!-- Property info tiles in header -->
16746
- <ds-mobile-header-content header-content>
16747
- <ds-mobile-header-content-tile>
16748
- <tile-icon>
16749
- <ds-icon name="remixHome4Line" size="20px" />
16750
- </tile-icon>
16751
- <tile-content>
16752
- <tile-label>Areal</tile-label>
16753
- <tile-value>120 m²</tile-value>
16754
- </tile-content>
16755
- </ds-mobile-header-content-tile>
16756
-
16757
- <ds-mobile-header-content-tile>
16758
- <tile-icon>
16759
- <ds-icon name="remixCollageLine" size="20px" />
16760
- </tile-icon>
16761
- <tile-content>
16762
- <tile-label>Værelser</tile-label>
16763
- <tile-value>3 værelser</tile-value>
16764
- </tile-content>
16765
- </ds-mobile-header-content-tile>
16766
- </ds-mobile-header-content>
16767
-
16768
17091
  <!-- Main page content -->
16769
17092
  <ds-mobile-content>
16770
- <!-- Pinned Post Section -->
16771
- <div class="pinned-posts-section" role="article">
16772
- <h2 class="section-headline">
16773
- <ds-icon name="remixPushpinFill" size="16px" color="primary" />
16774
- Fastgjorte opslag
16775
- </h2>
16776
-
16777
- <!-- Pinned: Maintenance Announcement -->
16778
- <ds-mobile-interactive-list-item-post
16779
- [authorName]="'Karen Nielsen'"
16780
- [authorRole]="'Ejendomsadministrator'"
16781
- [timestamp]="'2d siden'"
16782
- [avatarInitials]="'KN'"
16783
- [showBadge]="true"
16784
- [clickable]="true"
16785
- (postClick)="handlePostClick()"
16786
- (commentClick)="handlePostClick()">
17093
+ <!-- Recent Community Posts Section -->
17094
+ <div class="content-section">
17095
+ <ds-tile>
17096
+ <ds-tile-section class="header-section">
17097
+ <h2 class="section-headline">Seneste opslag</h2>
17098
+ </ds-tile-section>
16787
17099
 
16788
- <post-content>
16789
- <post-text>📢 Påmindelse: Bygningsvedligeholdelse planlagt til denne lørdag fra kl. 9 til 14. Vandet vil være midlertidigt lukket. Vær venlig at planlægge derefter!</post-text>
16790
-
16791
- <post-attachments>
16792
- <ds-mobile-card-inline-file
16793
- [fileName]="'Husregler.pdf'"
16794
- [fileSize]="'245 KB'"
16795
- [variant]="'pdf'"
16796
- [layout]="'compact'"
16797
- (fileClick)="handleFileClick('house-rules')">
16798
- </ds-mobile-card-inline-file>
16799
- </post-attachments>
16800
- </post-content>
17100
+ <ds-tile-section [padding]="false">
17101
+ <div class="recent-posts-list">
17102
+ @for (post of recentPosts(); track post.id) {
17103
+ <ds-mobile-interactive-list-item-post
17104
+ [authorName]="post.authorName"
17105
+ [authorRole]="post.authorRole"
17106
+ [timestamp]="post.timestamp"
17107
+ [avatarType]="post.avatarType"
17108
+ [avatarSrc]="post.avatarSrc || ''"
17109
+ [avatarInitials]="post.avatarInitials || ''"
17110
+ [showBadge]="post.showBadge || false"
17111
+ [clickable]="true"
17112
+ [enableLongPress]="false"
17113
+ (postClick)="openPost(post.id)"
17114
+ (commentClick)="openPost(post.id, true)">
17115
+
17116
+ <post-content>
17117
+ @if (post.content) {
17118
+ <post-text>{{ post.content }}</post-text>
17119
+ }
17120
+ </post-content>
17121
+
17122
+ <post-actions>
17123
+ <action-like [count]="post.likeCount" [active]="post.isLiked" />
17124
+ <action-comment [count]="post.commentCount" (commentClick)="openPost(post.id, true)" />
17125
+ </post-actions>
17126
+ </ds-mobile-interactive-list-item-post>
17127
+ }
17128
+ </div>
17129
+ </ds-tile-section>
16801
17130
 
16802
- <post-actions>
16803
- <action-like [count]="89" />
16804
- <action-comment [count]="67" (commentClick)="handlePostClick()" />
16805
- </post-actions>
16806
- </ds-mobile-interactive-list-item-post>
17131
+ <ds-tile-section class="view-all-section">
17132
+ <ds-button
17133
+ variant="secondary"
17134
+ trailingIcon="remixArrowRightSLine"
17135
+ (click)="navigateToCommunity()">
17136
+ Se alle opslag
17137
+ </ds-button>
17138
+ </ds-tile-section>
17139
+ </ds-tile>
16807
17140
  </div>
16808
17141
 
16809
- <!-- Contacts Section -->
17142
+ <!-- Recent Community Posts Section (empty state) -->
16810
17143
  <div class="content-section">
16811
- <h2 class="section-headline">Kontakter</h2>
16812
-
16813
- <div class="items-container">
16814
- <ds-mobile-card-inline-contact
16815
- [name]="'Propbinder Demo ApS'"
16816
- [initials]="'PD'"
16817
- [contactPerson]="'Karen Nielsen'"
16818
- [phoneNumber]="'+45 12 34 56 78'"
16819
- (contactClick)="handleContactClick('landlord')">
16820
- </ds-mobile-card-inline-contact>
16821
-
16822
- <ds-mobile-card-inline-contact
16823
- [name]="'Viceværten'"
16824
- [initials]="'V'"
16825
- [contactPerson]="'Erik Sørensen'"
16826
- [phoneNumber]="'+45 56 78 90 12'"
16827
- (contactClick)="handleContactClick('caretaker')">
16828
- </ds-mobile-card-inline-contact>
17144
+ <ds-tile>
17145
+ <ds-tile-section [padding]="false">
17146
+ <div class="empty-state">
17147
+ <ds-avatar
17148
+ type="icon"
17149
+ [iconName]="'remixChat3Line'"
17150
+ size="lg"
17151
+ backgroundColor="var(--color-background-neutral-secondary, #f5f5f5)"
17152
+ iconColor="var(--text-color-default-tertiary, #737373)"
17153
+ />
17154
+ <h3 class="empty-state-title">Ingen opslag endnu</h3>
17155
+ <p class="empty-state-description">Der er ingen opslag i fællesområdet i øjeblikket</p>
17156
+ </div>
17157
+ </ds-tile-section>
16829
17158
 
16830
- <ds-mobile-card-inline-contact
16831
- [name]="'VVS Hansen'"
16832
- [initials]="'VH'"
16833
- [contactPerson]="'Peter Hansen'"
16834
- [phoneNumber]="'+45 34 56 78 90'"
16835
- (contactClick)="handleContactClick('plumber')">
16836
- </ds-mobile-card-inline-contact>
16837
- </div>
17159
+ <ds-tile-section class="view-all-section">
17160
+ <ds-button
17161
+ variant="secondary"
17162
+ trailingIcon="remixArrowRightSLine"
17163
+ (click)="navigateToCommunity()">
17164
+ Gå til fællesområdet
17165
+ </ds-button>
17166
+ </ds-tile-section>
17167
+ </ds-tile>
16838
17168
  </div>
16839
-
16840
- <!-- Important Files Section -->
17169
+
17170
+ <!-- Open Inquiries Section (with content) -->
16841
17171
  <div class="content-section">
16842
- <h2 class="section-headline">Vigtige dokumenter</h2>
16843
-
16844
- <div class="items-container">
16845
- <ds-mobile-card-inline-file
16846
- [fileName]="'Lejekontrakt'"
16847
- [fileSize]="'1.2 MB'"
16848
- [variant]="'pdf'"
16849
- (fileClick)="handleFileClick('lease-contract')">
16850
- </ds-mobile-card-inline-file>
17172
+ <ds-tile>
17173
+ <ds-tile-section class="header-section">
17174
+ <h2 class="section-headline">Åbne henvendelser</h2>
17175
+ </ds-tile-section>
16851
17176
 
16852
- <ds-mobile-card-inline-file
16853
- [fileName]="'Husorden'"
16854
- [fileSize]="'245 KB'"
16855
- [variant]="'pdf'"
16856
- (fileClick)="handleFileClick('house-rules')">
16857
- </ds-mobile-card-inline-file>
17177
+ <ds-tile-section [padding]="false">
17178
+ @if (openInquiries().length > 0) {
17179
+ <div class="inquiries-list">
17180
+ @for (inquiry of openInquiries(); track inquiry.id) {
17181
+ <ds-mobile-interactive-list-item-inquiry
17182
+ [title]="inquiry.title"
17183
+ [description]="inquiry.description"
17184
+ [status]="inquiry.status"
17185
+ [timestamp]="inquiry.timestamp"
17186
+ [iconName]="'remixTodoLine'"
17187
+ [clickable]="true"
17188
+ [showChevron]="false"
17189
+ [enableLongPress]="false"
17190
+ (inquiryClick)="openInquiryDetail(inquiry.id)">
17191
+ </ds-mobile-interactive-list-item-inquiry>
17192
+ }
17193
+ </div>
17194
+ } @else {
17195
+ <!-- Empty state -->
17196
+ <div class="empty-state">
17197
+ <ds-icon name="remixInboxLine" size="48px" color="tertiary" />
17198
+ <h3 class="empty-state-title">Ingen åbne henvendelser</h3>
17199
+ <p class="empty-state-description">Du har ingen åbne henvendelser i øjeblikket</p>
17200
+ </div>
17201
+ }
17202
+ </ds-tile-section>
16858
17203
 
16859
- <ds-mobile-card-inline-file
16860
- [fileName]="'Energimærkning'"
16861
- [fileSize]="'512 KB'"
16862
- [variant]="'pdf'"
16863
- (fileClick)="handleFileClick('energy-label')">
16864
- </ds-mobile-card-inline-file>
17204
+ @if (openInquiries().length > 0) {
17205
+ <ds-tile-section class="view-all-section">
17206
+ <ds-button
17207
+ variant="secondary"
17208
+ trailingIcon="remixArrowRightSLine"
17209
+ (click)="navigateToInquiries()">
17210
+ Se alle henvendelser
17211
+ </ds-button>
17212
+ </ds-tile-section>
17213
+ }
17214
+ </ds-tile>
17215
+ </div>
17216
+
17217
+ <!-- Open Inquiries Section (empty state) -->
17218
+ <div class="content-section">
17219
+ <ds-tile>
17220
+ <ds-tile-section [padding]="false">
17221
+ <div class="empty-state">
17222
+ <ds-avatar
17223
+ type="icon"
17224
+ [iconName]="'remixInboxLine'"
17225
+ size="lg"
17226
+ backgroundColor="var(--color-background-neutral-secondary, #f5f5f5)"
17227
+ iconColor="var(--text-color-default-tertiary, #737373)"
17228
+ />
17229
+ <h3 class="empty-state-title">Ingen åbne henvendelser</h3>
17230
+ <p class="empty-state-description">Du har ingen åbne henvendelser i øjeblikket</p>
17231
+ </div>
17232
+ </ds-tile-section>
16865
17233
 
16866
- <ds-mobile-card-inline-file
16867
- [fileName]="'Forsikringsdokument'"
16868
- [fileSize]="'890 KB'"
16869
- [variant]="'pdf'"
16870
- (fileClick)="handleFileClick('insurance')">
16871
- </ds-mobile-card-inline-file>
16872
- </div>
17234
+ <ds-tile-section class="view-all-section">
17235
+ <ds-button
17236
+ variant="secondary"
17237
+ trailingIcon="remixArrowRightSLine"
17238
+ (click)="navigateToInquiries()">
17239
+ Gå til henvendelser
17240
+ </ds-button>
17241
+ </ds-tile-section>
17242
+ </ds-tile>
16873
17243
  </div>
16874
17244
  </ds-mobile-content>
16875
17245
  </ds-mobile-page-main>
16876
- `, styles: [".section-headline{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px;padding:0}.pinned-posts-section{margin:-12px -12px 0;padding:0 12px 12px;box-shadow:var(--box-shadow-sm);border-radius:16px;border:1px solid var(--border-color-default)}.pinned-posts-section .section-headline{padding:16px 0}.content-section{display:flex;flex-direction:column;gap:12px}.items-container{display:flex;flex-direction:column;gap:4px}\n"] }]
16877
- }], ctorParameters: () => [{ type: i1.NavController }, { type: UserService }] });
17246
+ `, styles: ["::ng-deep ds-tile .ds-tile{border-radius:20px!important;overflow:visible!important}::ng-deep ds-tile-section{border-bottom:none!important}::ng-deep .header-section{padding:20px 20px 8px!important}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px;padding:0}.content-section{display:flex;flex-direction:column;gap:12px;margin:-8px}.items-container{display:flex;flex-direction:column;gap:4px}.recent-posts-list,.inquiries-list{display:flex;flex-direction:column;padding:16px 20px;margin-top:-12px;position:relative;z-index:1}.view-all-section{display:block}.view-all-section ds-button{width:100%;display:block}.view-all-section ds-button::ng-deep .btn{width:100%;border-radius:9999px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px 8px;text-align:center}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin:16px 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}\n"] }]
17247
+ }], ctorParameters: () => [{ type: i1$3.Router }, { type: UserService }, { type: PostsService }, { type: DsMobilePostDetailModalService }] });
16878
17248
 
16879
17249
  class MobileInquiriesPageComponent {
16880
17250
  userService;
@@ -17014,8 +17384,8 @@ class MobileInquiriesPageComponent {
17014
17384
  [iconName]="getInquiryIcon(inquiry.category)"
17015
17385
  [clickable]="true"
17016
17386
  [showChevron]="false"
17017
- (inquiryClick)="openInquiryDetail(inquiry.id)"
17018
- (longPress)="showInquiryActions(inquiry.id)">
17387
+ [enableLongPress]="false"
17388
+ (inquiryClick)="openInquiryDetail(inquiry.id)">
17019
17389
  </ds-mobile-interactive-list-item-inquiry>
17020
17390
 
17021
17391
  }
@@ -17047,7 +17417,7 @@ class MobileInquiriesPageComponent {
17047
17417
  ariaLabel="Create new inquiry"
17048
17418
  (fabClick)="createNewInquiry()">
17049
17419
  </ds-mobile-fab>
17050
- `, isInline: true, styles: [".inquiries-container{display:flex;flex-direction:column}.inquiry-list-wrapper{display:flex;flex-direction:column;margin-top:-8px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin:16px 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileContentComponent, selector: "ds-mobile-content", inputs: ["layout"] }, { kind: "component", type: DsMobileInteractiveListItemInquiryComponent, selector: "ds-mobile-interactive-list-item-inquiry", inputs: ["title", "description", "status", "statusLabel", "timestamp", "iconName", "iconColor", "variant", "clickable", "showChevron"], outputs: ["inquiryClick", "longPress"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsMobileInlineTabsComponent, selector: "ds-mobile-inline-tabs", inputs: ["tabs", "activeTab"], outputs: ["tabChange"] }, { kind: "component", type: DsMobileFabComponent, selector: "ds-mobile-fab", inputs: ["icon", "position", "size", "ariaLabel", "disabled"], outputs: ["fabClick"] }] });
17420
+ `, isInline: true, styles: [".inquiries-container{display:flex;flex-direction:column}.inquiry-list-wrapper{display:flex;flex-direction:column;margin-top:-8px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin:16px 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileContentComponent, selector: "ds-mobile-content", inputs: ["layout"] }, { kind: "component", type: DsMobileInteractiveListItemInquiryComponent, selector: "ds-mobile-interactive-list-item-inquiry", inputs: ["title", "description", "status", "statusLabel", "timestamp", "iconName", "iconColor", "variant", "clickable", "showChevron", "enableLongPress"], outputs: ["inquiryClick", "longPress"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsMobileInlineTabsComponent, selector: "ds-mobile-inline-tabs", inputs: ["tabs", "activeTab"], outputs: ["tabChange"] }, { kind: "component", type: DsMobileFabComponent, selector: "ds-mobile-fab", inputs: ["icon", "position", "size", "ariaLabel", "disabled"], outputs: ["fabClick"] }] });
17051
17421
  }
17052
17422
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MobileInquiriesPageComponent, decorators: [{
17053
17423
  type: Component,
@@ -17089,8 +17459,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
17089
17459
  [iconName]="getInquiryIcon(inquiry.category)"
17090
17460
  [clickable]="true"
17091
17461
  [showChevron]="false"
17092
- (inquiryClick)="openInquiryDetail(inquiry.id)"
17093
- (longPress)="showInquiryActions(inquiry.id)">
17462
+ [enableLongPress]="false"
17463
+ (inquiryClick)="openInquiryDetail(inquiry.id)">
17094
17464
  </ds-mobile-interactive-list-item-inquiry>
17095
17465
 
17096
17466
  }
@@ -18216,7 +18586,7 @@ class MobilePostDetailPageComponent {
18216
18586
  </div>
18217
18587
  </div>
18218
18588
  </ds-mobile-page-details>
18219
- `, isInline: true, styles: [".post-detail-container{display:flex;flex-direction:column;gap:16px;max-width:640px}.post-section{border-bottom:1px solid var(--border-color-default);padding-bottom:16px}.clickable-image{cursor:pointer;transition:transform .2s ease,opacity .2s ease;border-radius:8px;display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.clickable-image:active{transform:scale(.98);opacity:.9}.comments-section{display:flex;flex-direction:column;margin-left:-8px;margin-right:-8px}.comments-header{font-family:Brockmann,sans-serif;font-size:18px;font-weight:600;line-height:24px;color:var(--color-text-primary, #1a1a1a);margin-bottom:16px;padding-left:8px;padding-right:8px}.comments-list{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "component", type: DsMobilePageDetailsComponent, selector: "ds-mobile-page-details", inputs: ["title", "backRoute", "tabs", "activeTab", "showRefresh", "scrollThreshold", "headerFadeDistance"], outputs: ["back", "tabChange", "refresh", "scroll"] }, { kind: "component", type: DsMobileInteractiveListItemPostComponent, selector: "ds-mobile-interactive-list-item-post", inputs: ["authorName", "authorRole", "timestamp", "avatarInitials", "avatarType", "avatarSrc", "avatarIconName", "showBadge", "variant", "clickable"], outputs: ["postClick", "commentClick", "longPress"] }, { kind: "component", type: PostContentComponent, selector: "post-content" }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostMediaComponent, selector: "post-media" }, { kind: "component", type: PostActionsComponent, selector: "post-actions" }, { kind: "component", type: ActionLikeComponent, selector: "action-like", inputs: ["active", "count"], outputs: ["activeChange", "countChange", "likeClick"] }, { kind: "component", type: ActionCommentComponent, selector: "action-comment", inputs: ["count"], outputs: ["commentClick"] }, { kind: "component", type: DsMobileCommentComponent, selector: "ds-mobile-comment", inputs: ["authorName", "authorRole", "timestamp", "content", "avatarInitials", "avatarType", "clickable", "isOwnComment", "isLiked", "likeCount"], outputs: ["likeToggled", "commentClick", "replyClick", "editClick", "longPress"] }] });
18589
+ `, isInline: true, styles: [".post-detail-container{display:flex;flex-direction:column;gap:16px;max-width:640px}.post-section{border-bottom:1px solid var(--border-color-default);padding-bottom:16px}.clickable-image{cursor:pointer;transition:transform .2s ease,opacity .2s ease;border-radius:8px;display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.clickable-image:active{transform:scale(.98);opacity:.9}.comments-section{display:flex;flex-direction:column;margin-left:-8px;margin-right:-8px}.comments-header{font-family:Brockmann,sans-serif;font-size:18px;font-weight:600;line-height:24px;color:var(--color-text-primary, #1a1a1a);margin-bottom:16px;padding-left:8px;padding-right:8px}.comments-list{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "component", type: DsMobilePageDetailsComponent, selector: "ds-mobile-page-details", inputs: ["title", "backRoute", "tabs", "activeTab", "showRefresh", "scrollThreshold", "headerFadeDistance"], outputs: ["back", "tabChange", "refresh", "scroll"] }, { kind: "component", type: DsMobileInteractiveListItemPostComponent, selector: "ds-mobile-interactive-list-item-post", inputs: ["authorName", "authorRole", "timestamp", "avatarInitials", "avatarType", "avatarSrc", "avatarIconName", "showBadge", "variant", "clickable", "enableLongPress"], outputs: ["postClick", "commentClick", "longPress"] }, { kind: "component", type: PostContentComponent, selector: "post-content" }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostMediaComponent, selector: "post-media" }, { kind: "component", type: PostActionsComponent, selector: "post-actions" }, { kind: "component", type: ActionLikeComponent, selector: "action-like", inputs: ["active", "count"], outputs: ["activeChange", "countChange", "likeClick"] }, { kind: "component", type: ActionCommentComponent, selector: "action-comment", inputs: ["count"], outputs: ["commentClick"] }, { kind: "component", type: DsMobileCommentComponent, selector: "ds-mobile-comment", inputs: ["authorName", "authorRole", "timestamp", "content", "avatarInitials", "avatarType", "clickable", "isOwnComment", "isLiked", "likeCount"], outputs: ["likeToggled", "commentClick", "replyClick", "editClick", "longPress"] }] });
18220
18590
  }
18221
18591
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: MobilePostDetailPageComponent, decorators: [{
18222
18592
  type: Component,