@propbinder/mobile-design 0.0.2 → 0.0.21

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.
Files changed (123) hide show
  1. package/fesm2022/propbinder-mobile-design.mjs +12596 -0
  2. package/fesm2022/propbinder-mobile-design.mjs.map +1 -0
  3. package/index.d.ts +3214 -0
  4. package/package.json +39 -12
  5. package/ng-package.json +0 -7
  6. package/src/animations/page-transitions.ts +0 -86
  7. package/src/assets/fonts/Brockmann-Bold.otf +0 -0
  8. package/src/assets/fonts/Brockmann-BoldItalic.otf +0 -0
  9. package/src/assets/fonts/Brockmann-Medium.otf +0 -0
  10. package/src/assets/fonts/Brockmann-MediumItalic.otf +0 -0
  11. package/src/assets/fonts/Brockmann-Regular.otf +0 -0
  12. package/src/assets/fonts/Brockmann-RegularItalic.otf +0 -0
  13. package/src/assets/fonts/Brockmann-SemiBold.otf +0 -0
  14. package/src/assets/fonts/Brockmann-SemiBoldItalic.otf +0 -0
  15. package/src/assets/fonts/Brockmann_desktop_license.pdf +0 -0
  16. package/src/assets/fonts/brockmann-medium-webfont.woff2 +0 -0
  17. package/src/assets/fonts/brockmann-regular-webfont.woff2 +0 -0
  18. package/src/assets/fonts/brockmann-semibold-webfont.woff2 +0 -0
  19. package/src/components/action-list-item/ds-mobile-action-list-item.ts +0 -83
  20. package/src/components/action-list-item/index.ts +0 -2
  21. package/src/components/app-layout/ds-mobile-app-layout.css +0 -343
  22. package/src/components/app-layout/ds-mobile-app-layout.ts +0 -271
  23. package/src/components/app-layout/index.ts +0 -2
  24. package/src/components/avatar-with-badge/ds-avatar-with-badge.ts +0 -130
  25. package/src/components/avatar-with-badge/index.ts +0 -2
  26. package/src/components/bottom-sheet/ds-mobile-actions-bottom-sheet.ts +0 -273
  27. package/src/components/bottom-sheet/ds-mobile-bottom-sheet.css +0 -110
  28. package/src/components/bottom-sheet/ds-mobile-bottom-sheet.service.ts +0 -167
  29. package/src/components/bottom-sheet/ds-mobile-post-create-bottom-sheet.ts +0 -656
  30. package/src/components/bottom-sheet/index.ts +0 -3
  31. package/src/components/comment/ds-mobile-comment.ts +0 -516
  32. package/src/components/comment/index.ts +0 -2
  33. package/src/components/contact-list-item/ds-mobile-contact-list-item.ts +0 -182
  34. package/src/components/contact-list-item/index.ts +0 -2
  35. package/src/components/content/ds-mobile-content.ts +0 -158
  36. package/src/components/content/index.ts +0 -2
  37. package/src/components/ds-mobile-tabs.css +0 -372
  38. package/src/components/ds-mobile-tabs.ts +0 -217
  39. package/src/components/file-attachment/ds-mobile-file-attachment.ts +0 -164
  40. package/src/components/file-attachment/index.ts +0 -2
  41. package/src/components/handbook-detail-modal/ds-mobile-handbook-detail-modal.service.ts +0 -98
  42. package/src/components/handbook-detail-modal/ds-mobile-handbook-detail-modal.ts +0 -514
  43. package/src/components/handbook-detail-modal/index.ts +0 -3
  44. package/src/components/handbook-folder/ds-mobile-handbook-folder-mini.ts +0 -130
  45. package/src/components/handbook-folder/ds-mobile-handbook-folder.ts +0 -444
  46. package/src/components/handbook-folder/index.ts +0 -4
  47. package/src/components/header-content/ds-mobile-header-content.ts +0 -211
  48. package/src/components/header-content/index.ts +0 -2
  49. package/src/components/index.ts +0 -45
  50. package/src/components/inline-photo/ds-mobile-inline-photo.ts +0 -269
  51. package/src/components/inline-photo/index.ts +0 -1
  52. package/src/components/interactive-list-item-inquiry/ds-mobile-interactive-list-item-inquiry.css +0 -60
  53. package/src/components/interactive-list-item-inquiry/ds-mobile-interactive-list-item-inquiry.ts +0 -280
  54. package/src/components/interactive-list-item-inquiry/index.ts +0 -2
  55. package/src/components/interactive-list-item-message/ds-mobile-interactive-list-item-message.ts +0 -197
  56. package/src/components/interactive-list-item-message/index.ts +0 -2
  57. package/src/components/interactive-list-item-post/ds-mobile-interactive-list-item-post.css +0 -70
  58. package/src/components/interactive-list-item-post/ds-mobile-interactive-list-item-post.ts +0 -594
  59. package/src/components/interactive-list-item-post/ds-mobile-post-pdf-attachment.ts +0 -124
  60. package/src/components/interactive-list-item-post/index.ts +0 -13
  61. package/src/components/lightbox/ds-mobile-lightbox-footer.ts +0 -331
  62. package/src/components/lightbox/ds-mobile-lightbox-header.ts +0 -173
  63. package/src/components/lightbox/ds-mobile-lightbox-image.ts +0 -464
  64. package/src/components/lightbox/ds-mobile-lightbox-pdf.css +0 -375
  65. package/src/components/lightbox/ds-mobile-lightbox-pdf.ts +0 -374
  66. package/src/components/lightbox/ds-mobile-lightbox.css +0 -587
  67. package/src/components/lightbox/ds-mobile-lightbox.service.ts +0 -293
  68. package/src/components/lightbox/ds-mobile-lightbox.ts +0 -529
  69. package/src/components/lightbox/index.ts +0 -22
  70. package/src/components/list-item/ds-mobile-list-item.ts +0 -499
  71. package/src/components/list-item/index.ts +0 -2
  72. package/src/components/list-item-static/ds-mobile-list-item-static.ts +0 -133
  73. package/src/components/list-item-static/index.ts +0 -2
  74. package/src/components/logo/ds-logo.ts +0 -85
  75. package/src/components/logo/index.ts +0 -2
  76. package/src/components/modal/ds-mobile-modal.css +0 -163
  77. package/src/components/modal/ds-mobile-modal.service.ts +0 -329
  78. package/src/components/modal/index.ts +0 -8
  79. package/src/components/page-details/ds-mobile-page-details.css +0 -285
  80. package/src/components/page-details/ds-mobile-page-details.ts +0 -128
  81. package/src/components/page-details/index.ts +0 -2
  82. package/src/components/page-main/ds-mobile-page-main.css +0 -346
  83. package/src/components/page-main/ds-mobile-page-main.ts +0 -331
  84. package/src/components/page-main/index.ts +0 -2
  85. package/src/components/post-card/ds-mobile-post-card.ts +0 -685
  86. package/src/components/post-card/ds-mobile-post-pdf-attachment.ts +0 -124
  87. package/src/components/post-card/index.ts +0 -11
  88. package/src/components/post-composer/ds-mobile-post-composer.ts +0 -140
  89. package/src/components/post-composer/index.ts +0 -2
  90. package/src/components/post-detail-modal/ds-mobile-post-detail-modal.service.ts +0 -104
  91. package/src/components/post-detail-modal/ds-mobile-post-detail-modal.ts +0 -1273
  92. package/src/components/post-detail-modal/index.ts +0 -9
  93. package/src/components/shared/directives/index.ts +0 -2
  94. package/src/components/shared/directives/long-press.directive.ts +0 -208
  95. package/src/components/shared/index.ts +0 -3
  96. package/src/components/shared/mobile-common.css +0 -94
  97. package/src/components/shared/mobile-page-base.css +0 -315
  98. package/src/components/shared/mobile-page-base.ts +0 -70
  99. package/src/components/swiper/ds-mobile-swiper.ts +0 -123
  100. package/src/components/swiper/index.ts +0 -2
  101. package/src/components/tab-bar/ds-mobile-tab-bar.ts +0 -132
  102. package/src/components/tab-bar/index.ts +0 -2
  103. package/src/components/tabs/ds-mobile-tabs.css +0 -405
  104. package/src/components/tabs/ds-mobile-tabs.ts +0 -204
  105. package/src/components/tabs/index.ts +0 -2
  106. package/src/pages/community.page.ts +0 -768
  107. package/src/pages/handbook.page.ts +0 -298
  108. package/src/pages/home.page.ts +0 -192
  109. package/src/pages/index.ts +0 -9
  110. package/src/pages/inquiries.example.ts +0 -212
  111. package/src/pages/inquiry-detail.example.css +0 -434
  112. package/src/pages/inquiry-detail.example.ts +0 -416
  113. package/src/pages/mobile-tabs-example.component.ts +0 -146
  114. package/src/pages/post-create.page.ts +0 -311
  115. package/src/pages/post-detail.page.ts +0 -295
  116. package/src/pages/whitelabel-demo.page.ts +0 -548
  117. package/src/public-api.ts +0 -5
  118. package/src/services/user.service.ts +0 -35
  119. package/src/services/whitelabel.service.ts +0 -171
  120. package/src/styles/ionic.css +0 -673
  121. package/tsconfig.lib.json +0 -17
  122. package/tsconfig.lib.prod.json +0 -9
  123. package/tsconfig.spec.json +0 -13
@@ -1,212 +0,0 @@
1
- import { Component, signal, computed, effect } from '@angular/core';
2
- import { NavController } from '@ionic/angular/standalone';
3
- import { DsMobilePageMainComponent } from '../components/page-main';
4
- import { DsMobileContentComponent } from '../components/content';
5
- import { DsMobileInteractiveListItemInquiryComponent } from '../components/interactive-list-item-inquiry';
6
- import { DsIconComponent } from '@propbinder/design-system';
7
- import { UserService } from '../services/user.service';
8
- import { customPageTransition } from '../animations/page-transitions';
9
- import { DsMobileTabBarComponent, type TabItem } from '../components/tab-bar';
10
-
11
- interface Inquiry {
12
- id: string;
13
- title: string;
14
- description: string;
15
- status: 'open' | 'closed';
16
- timestamp: string;
17
- category: 'maintenance' | 'plumbing' | 'electrical' | 'heating' | 'security' | 'appliance' | 'other';
18
- }
19
-
20
- @Component({
21
- selector: 'app-mobile-inquiries-page',
22
- standalone: true,
23
- imports: [
24
- DsMobilePageMainComponent,
25
- DsMobileContentComponent,
26
- DsMobileInteractiveListItemInquiryComponent,
27
- DsIconComponent,
28
- DsMobileTabBarComponent
29
- ],
30
- host: {
31
- class: 'ion-page'
32
- },
33
- styles: [`
34
- .inquiries-container {
35
- display: flex;
36
- flex-direction: column;
37
- max-width: 640px;
38
- }
39
-
40
- .inquiry-list-wrapper {
41
- display: flex;
42
- flex-direction: column;
43
- }
44
-
45
- /* Remove custom dividers - now handled by ds-mobile-list-item */
46
-
47
- .empty-state {
48
- display: flex;
49
- flex-direction: column;
50
- align-items: center;
51
- justify-content: center;
52
- padding: 60px 20px;
53
- text-align: center;
54
- }
55
-
56
- .empty-state-title {
57
- font-family: 'Brockmann', sans-serif;
58
- font-size: var(--font-size-base);
59
- font-weight: 600;
60
- color: var(--color-text-primary);
61
- margin: 16px 0 8px 0;
62
- }
63
-
64
- .empty-state-description {
65
- font-family: 'Brockmann', sans-serif;
66
- font-size: var(--font-size-sm);
67
- color: var(--color-text-secondary);
68
- margin: 0;
69
- }
70
-
71
-
72
- `],
73
- template: `
74
- <ds-mobile-page-main
75
- title="Henvendelser"
76
- [avatarInitials]="userService.avatarInitials()"
77
- [avatarType]="userService.avatarType()">
78
-
79
- <!-- Filter tabs in header -->
80
- <div header-content>
81
- <ds-mobile-tab-bar
82
- [tabs]="tabItems"
83
- [activeTab]="filterStatus()"
84
- (tabChange)="setFilter($any($event))">
85
- </ds-mobile-tab-bar>
86
- </div>
87
-
88
- <ds-mobile-content>
89
- <div class="inquiries-container">
90
- @if (filteredInquiries().length > 0) {
91
- <div class="inquiry-list-wrapper">
92
- @for (inquiry of filteredInquiries(); track inquiry.id; let idx = $index) {
93
- <ds-mobile-interactive-list-item-inquiry
94
- [title]="inquiry.title"
95
- [description]="inquiry.description"
96
- [status]="inquiry.status"
97
- [timestamp]="inquiry.timestamp"
98
- [iconName]="getInquiryIcon(inquiry.category)"
99
- [clickable]="true"
100
- [showChevron]="false"
101
- (inquiryClick)="openInquiryDetail(inquiry.id)"
102
- (longPress)="showInquiryActions(inquiry.id)">
103
- </ds-mobile-interactive-list-item-inquiry>
104
-
105
- }
106
- </div>
107
- } @else {
108
- <!-- Empty state -->
109
- <div class="empty-state">
110
- <ds-icon name="remixInboxLine" size="48px" color="tertiary" />
111
- <h3 class="empty-state-title">Ingen henvendelser endnu</h3>
112
- <p class="empty-state-description">
113
- @if (filterStatus() === 'open') {
114
- Du har ingen åbne henvendelser
115
- } @else if (filterStatus() === 'closed') {
116
- Du har ingen lukkede henvendelser
117
- } @else {
118
- Du har ikke oprettet nogen henvendelser endnu
119
- }
120
- </p>
121
- </div>
122
- }
123
- </div>
124
- </ds-mobile-content>
125
- </ds-mobile-page-main>
126
- `
127
- })
128
- export class MobileInquiriesPageComponent {
129
- constructor(
130
- public userService: UserService,
131
- private navCtrl: NavController
132
- ) {}
133
-
134
- filterStatus = signal<'all' | 'open' | 'closed'>('all');
135
-
136
- tabItems: TabItem[] = [
137
- { id: 'all', label: 'Alle' },
138
- { id: 'open', label: 'Åben' },
139
- { id: 'closed', label: 'Lukket' }
140
- ];
141
-
142
- inquiries = signal<Inquiry[]>([
143
- {
144
- id: '1',
145
- title: 'Tørretumbler virker ikke',
146
- description: 'I de sidste tre dage har jeg oplevet vedvarende problemer med tørretumbleren. Den starter, men stopper efter få minutter.',
147
- status: 'open',
148
- timestamp: '12 dage siden',
149
- category: 'appliance'
150
- },
151
- {
152
- id: '2',
153
- title: 'Problem med vandtryk',
154
- description: 'Lavt vandtryk i badeværelseshåndvasken. Det er blevet gradvist værre i løbet af den sidste uge.',
155
- status: 'open',
156
- timestamp: '5 dage siden',
157
- category: 'plumbing'
158
- },
159
- {
160
- id: '3',
161
- title: 'Varme virker ikke ordentligt',
162
- description: 'Varmesystemet holder ikke den indstillede temperatur. Lejligheden er meget koldere, end den burde være.',
163
- status: 'closed',
164
- timestamp: '2 måneder siden',
165
- category: 'heating'
166
- }
167
- ]);
168
-
169
- // Computed signals that automatically update when dependencies change
170
- filteredInquiries = computed(() => {
171
- const all = this.inquiries();
172
- const status = this.filterStatus();
173
-
174
- if (status === 'all') {
175
- return all;
176
- } else if (status === 'open') {
177
- return all.filter(i => i.status === 'open');
178
- } else {
179
- return all.filter(i => i.status === 'closed');
180
- }
181
- });
182
-
183
- openInquiries = computed(() => {
184
- return this.inquiries().filter(i => i.status === 'open');
185
- });
186
-
187
- closedInquiries = computed(() => {
188
- return this.inquiries().filter(i => i.status === 'closed');
189
- });
190
-
191
- setFilter(status: 'all' | 'open' | 'closed'): void {
192
- this.filterStatus.set(status);
193
- }
194
-
195
- getInquiryIcon(category: string): string {
196
- return 'remixTodoLine';
197
- }
198
-
199
- openInquiryDetail(inquiryId: string): void {
200
- console.log('Opening inquiry:', inquiryId);
201
- // Navigate to inquiry detail page with custom transition (absolute path outside tabs for animations)
202
- this.navCtrl.navigateForward([`/inquiry-detail/${inquiryId}`], {
203
- animation: customPageTransition
204
- });
205
- }
206
-
207
- showInquiryActions(inquiryId: string): void {
208
- console.log('Showing actions for inquiry:', inquiryId);
209
- // Show bottom sheet with actions (edit, delete, etc.)
210
- }
211
- }
212
-
@@ -1,434 +0,0 @@
1
- /* ============================================
2
- FIXED HEADER
3
- ============================================ */
4
-
5
- ion-header {
6
- --background: var(--color-brand-secondary, #5d5fef);
7
- height: 72px;
8
- min-height: 72px;
9
- }
10
-
11
- ion-toolbar {
12
- --background: var(--color-brand-secondary, #5d5fef);
13
- --color: white;
14
- --padding-top: 0;
15
- --padding-bottom: 0;
16
- --padding-start: 0;
17
- --padding-end: 0;
18
- --min-height: 72px;
19
- height: 100%;
20
- min-height: 72px;
21
- }
22
-
23
- ion-toolbar ion-title {
24
- transition: transform 0.2s ease, opacity 0.2s ease !important;
25
- }
26
-
27
- .header-detail {
28
- display: flex;
29
- align-items: center;
30
- gap: 12px;
31
- padding: 0 20px;
32
- height: 100%;
33
- }
34
-
35
- .back-button {
36
- width: 36px;
37
- height: 36px;
38
- border-radius: 50%;
39
- background: rgba(255, 255, 255, 0.1);
40
- border: none;
41
- display: flex;
42
- align-items: center;
43
- justify-content: center;
44
- cursor: pointer;
45
- transition: background 0.2s ease;
46
- color: white;
47
- padding: 0;
48
- flex-shrink: 0;
49
- }
50
-
51
- .back-button:hover {
52
- background: rgba(255, 255, 255, 0.15);
53
- }
54
-
55
- .back-button:active {
56
- background: rgba(255, 255, 255, 0.15);
57
- }
58
-
59
- .header-detail__title {
60
- position: absolute;
61
- left: 64px;
62
- transform: translateY(-100%);
63
- font-size: var(--font-size-base);
64
- font-weight: 600;
65
- color: white;
66
- opacity: 0 !important;
67
- pointer-events: none;
68
- transition: transform 0.2s ease, opacity 0.2s ease !important;
69
- margin: 0;
70
- padding: 0;
71
- --color: white;
72
- text-align: left !important;
73
- }
74
-
75
- /* Show title when scrolled */
76
- .header-scrolled .header-detail__title {
77
- opacity: 1 !important;
78
- pointer-events: auto;
79
- transform: translateY(0);
80
- }
81
-
82
- @media (min-width: 768px) {
83
- .header-detail {
84
- padding: 16px 24px;
85
- }
86
- }
87
-
88
- /* ============================================
89
- ION-CONTENT
90
- ============================================ */
91
-
92
- ion-content {
93
- --background: var(--color-brand-secondary);
94
- --padding-top: 0;
95
- --padding-start: 0;
96
- --padding-end: 0;
97
- --padding-bottom: 0;
98
- border-radius: 24px 24px 0 0;
99
- overflow: hidden;
100
- }
101
-
102
- /* iOS-specific: White background for bottom overshoot */
103
- .plt-ios ion-content {
104
- --background: var(--color-background-neutral-primary);
105
- }
106
-
107
- /* Desktop only: remove bottom radius */
108
- @media (min-width: 768px) {
109
- ion-content {
110
- border-radius: 24px 24px 0 0;
111
- }
112
- }
113
-
114
- ion-content::part(scroll) {
115
- -webkit-overflow-scrolling: touch;
116
- /* Flex container for content to expand properly */
117
- display: flex;
118
- flex-direction: column;
119
- }
120
-
121
- /* ============================================
122
- REFRESHER
123
- ============================================ */
124
-
125
- ion-refresher {
126
- z-index: 0;
127
- }
128
-
129
- ion-refresher-content {
130
- --color: white;
131
- }
132
-
133
- /* ============================================
134
- HEADER EXPANDABLE - Purple Header Section
135
- ============================================ */
136
-
137
- .header-expandable {
138
- background: var(--color-brand-secondary);
139
- padding: 32px 20px 24px 20px;
140
- color: white;
141
- position: sticky;
142
- top: 0;
143
- z-index: 5;
144
- transition: opacity 0.1s ease-out, transform 0.1s ease-out;
145
- }
146
-
147
- .header-expandable-inner {
148
- display: flex;
149
- flex-direction: column;
150
- gap: 20px;
151
- max-width: 640px;
152
- }
153
-
154
- .header-expandable__text {
155
- margin-bottom: 0;
156
- }
157
-
158
- .header-expandable__title {
159
- font-family: 'Brockmann', sans-serif;
160
- font-size: var(--font-size-2xl);
161
- font-weight: 600;
162
- line-height: 1.2;
163
- letter-spacing: -0.5px;
164
- margin: 0;
165
- color: white;
166
- }
167
-
168
- /* Desktop */
169
- @media (min-width: 768px) {
170
- .header-expandable {
171
- padding: 40px var(--content-padding-md) 32px var(--content-padding-md);
172
- }
173
-
174
- .header-expandable__title {
175
- font-size: var(--font-size-3xl);
176
- }
177
- }
178
-
179
- @media (min-width: 992px) {
180
- .header-expandable {
181
- padding-left: var(--content-padding-lg);
182
- padding-right: var(--content-padding-lg);
183
- }
184
- }
185
-
186
- @media (min-width: 1440px) {
187
- .header-expandable {
188
- padding-left: var(--content-padding-xl);
189
- padding-right: var(--content-padding-xl);
190
- }
191
- }
192
-
193
- @media (min-width: 1768px) {
194
- .header-expandable {
195
- padding-left: var(--content-padding-2xl);
196
- padding-right: var(--content-padding-2xl);
197
- }
198
- }
199
-
200
- @media (min-width: 1920px) {
201
- .header-expandable {
202
- padding-left: var(--content-padding-3xl);
203
- padding-right: var(--content-padding-3xl);
204
- }
205
- }
206
-
207
- /* ============================================
208
- CONTENT WRAPPER - White Rounded Area
209
- ============================================ */
210
-
211
- .content-wrapper {
212
- background: var(--color-background-neutral-primary, white);
213
- border-radius: 24px 24px 0 0;
214
- /* Ensure content fills available space and extends to bottom */
215
- flex: 1 1 auto;
216
- min-height: 100%;
217
- position: relative;
218
- z-index: 10;
219
- /* Extend white background below for iOS overshoot using box-shadow */
220
- box-shadow: 0 200vh 0 0 var(--color-background-neutral-primary);
221
- }
222
-
223
- .content-inner {
224
- padding: 24px 20px 40px 20px;
225
- }
226
-
227
- @media (min-width: 768px) {
228
- .content-inner {
229
- padding: 32px;
230
- }
231
- }
232
-
233
- /* ============================================
234
- TAB CONTENT
235
- ============================================ */
236
-
237
- .activity-list {
238
- display: flex;
239
- flex-direction: column;
240
- gap: 32px;
241
- }
242
-
243
- .activity-item {
244
- display: flex;
245
- gap: 12px;
246
- position: relative;
247
- }
248
-
249
- .activity-item::after {
250
- content: '';
251
- position: absolute;
252
- bottom: -16px;
253
- left: 44px;
254
- right: 8px;
255
- height: 1px;
256
- background: var(--border-color-default, #e5e5e5);
257
- }
258
-
259
- .activity-item:last-child::after {
260
- display: none;
261
- }
262
-
263
- .activity-icon-wrapper {
264
- width: 32px;
265
- height: 32px;
266
- border-radius: 8px;
267
- background: var(--color-background-neutral-secondary, #f5f5f5);
268
- display: flex;
269
- align-items: center;
270
- justify-content: center;
271
- flex-shrink: 0;
272
- }
273
-
274
- .avatar-wrapper {
275
- position: relative;
276
- display: flex;
277
- align-items: start;
278
- justify-content: center;
279
- flex-shrink: 0;
280
- width: 32px;
281
- height: 32px;
282
- }
283
-
284
- .avatar-badge {
285
- position: absolute;
286
- bottom: -6px;
287
- right: -6px;
288
- width: 20px;
289
- height: 20px;
290
- border-radius: 8px;
291
- background: var(--color-brand-secondary, #5d5fef);
292
- display: flex;
293
- align-items: center;
294
- justify-content: center;
295
- border: 2px solid var(--color-background-primary, #ffffff);
296
- }
297
-
298
- .avatar-badge svg {
299
- width: 10px;
300
- position: relative;
301
- top: 1px;
302
- fill: white;
303
- }
304
-
305
- .activity-content {
306
- display: flex;
307
- flex-direction: column;
308
- gap: 4px;
309
- flex: 1;
310
- min-width: 0;
311
- }
312
-
313
- .activity-title {
314
- font-family: 'Brockmann', sans-serif;
315
- font-size: var(--font-size-sm);
316
- font-weight: 500;
317
- line-height: 20px;
318
- letter-spacing: -0.3px;
319
- color: var(--text-color-default-primary, #202227);
320
- margin: 0;
321
- }
322
-
323
- .activity-title .actor-name {
324
- font-weight: 600;
325
- color: var(--text-color-default-primary, #202227);
326
- }
327
-
328
- .activity-title .activity-text {
329
- color: var(--text-color-default-secondary, #545B66);
330
- font-weight: 400;
331
- }
332
-
333
- .activity-description {
334
- font-family: 'Brockmann', sans-serif;
335
- font-size: var(--font-size-sm);
336
- font-weight: 400;
337
- line-height: 20px;
338
- letter-spacing: -0.3px;
339
- color: var(--text-color-default-secondary, #545B66);
340
- margin: 0;
341
- }
342
-
343
- .activity-timestamp {
344
- font-family: 'Brockmann', sans-serif;
345
- font-size: var(--font-size-xs);
346
- font-weight: 400;
347
- line-height: 1.2;
348
- letter-spacing: -0.26px;
349
- color: var(--text-color-default-tertiary, #737373);
350
- display: flex;
351
- align-items: center;
352
- gap: 4px;
353
- margin-top: 2px;
354
- }
355
-
356
- .messages-list {
357
- display: flex;
358
- flex-direction: column;
359
- gap: 8px;
360
- margin: -8px;
361
- }
362
-
363
- .details-list {
364
- display: flex;
365
- flex-direction: column;
366
- gap: 20px;
367
- }
368
-
369
- .detail-label {
370
- font-family: 'Brockmann', sans-serif;
371
- font-size: var(--font-size-sm);
372
- font-weight: 500;
373
- line-height: 20px;
374
- letter-spacing: -0.3px;
375
- color: var(--text-color-default-tertiary, #737373);
376
- }
377
-
378
- .detail-value {
379
- font-family: 'Brockmann', sans-serif;
380
- font-size: var(--font-size-sm);
381
- font-weight: 400;
382
- line-height: 24px;
383
- letter-spacing: -0.3px;
384
- color: var(--text-color-default-primary, #202227);
385
- }
386
-
387
- .detail-value.description-text {
388
- padding: 8px 0;
389
- }
390
-
391
- .detail-tag {
392
- display: inline-flex;
393
- align-items: center;
394
- padding: 4px 12px;
395
- border-radius: 12px;
396
- background: var(--color-background-neutral-secondary, #f5f5f5);
397
- font-family: 'Brockmann', sans-serif;
398
- font-size: var(--font-size-sm);
399
- font-weight: 500;
400
- color: var(--text-color-default-secondary, #525866);
401
- margin-top: 4px;
402
- margin-bottom: 10px;
403
- width: -moz-fit-content;
404
- width: fit-content;
405
- }
406
-
407
- .photo-grid {
408
- display: flex;
409
- gap: 8px;
410
- margin-top: 8px;
411
- overflow-x: auto;
412
- }
413
-
414
- .photo-add {
415
- width: 80px;
416
- height: 80px;
417
- border-radius: 12px;
418
- border: 1px dashed var(--border-color-default, #e5e5e5);
419
- background: var(--color-background-neutral-secondary, #f5f5f5);
420
- display: flex;
421
- align-items: center;
422
- justify-content: center;
423
- cursor: pointer;
424
- flex-shrink: 0;
425
- }
426
-
427
- .photo-item {
428
- width: 80px;
429
- height: 80px;
430
- border-radius: 12px;
431
- background: var(--color-background-neutral-secondary, #e5e5e5);
432
- flex-shrink: 0;
433
- }
434
-