@rtsee/ngx 0.0.87 → 0.0.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnInit, AfterViewInit, ElementRef, EventEmitter, ViewContainerRef, ComponentFactoryResolver, ChangeDetectorRef, OnDestroy } from '@angular/core';
2
+ import { OnInit, AfterViewInit, ElementRef, EventEmitter, OutputEmitterRef, ViewContainerRef, ComponentFactoryResolver, ChangeDetectorRef, OnDestroy } from '@angular/core';
3
3
  import { RTSeeConference, RTSeePeerConnection } from '@rtsee/conference';
4
4
  import { RTSeeMessenger, RTSeeMessengerSearch, RTSeeMessage, RTSeeChat, RTSeeChatMember } from '@rtsee/messenger';
5
5
  import { IPeer, RTSeeTextLabelKeys, IRTSeeCall } from '@rtsee/core';
@@ -8,12 +8,14 @@ import { RTSeeAuth, RTSeeAuthConfiguration, IRtseeSignInRequestOptions, IRTSeeSi
8
8
  import { Observable, Subscription } from 'rxjs';
9
9
  import * as i47 from '@angular/router';
10
10
  import { Router, ActivatedRoute } from '@angular/router';
11
- import { IRTSeePaymentProduct, IRTSeePaymentPriceItem, IRTSeeChat, RTSeeChatTypes, IMessageThumbnail } from '@rtsee/common';
11
+ import { IRTSeePaymentProduct, IRTSeePaymentPriceItem, IRTSeeTag, IRTSeeChat, RTSeeChatTypes, IMessageThumbnail } from '@rtsee/common';
12
12
  import { RTSeeEventsDashboard, RTSeeDashboardClientSession, RTSeeDashboardEvent, RTSeeDashboardClient } from '@rtsee/events-dashboard';
13
13
  import { RTSee, INavigationConfig, IRouteConfig } from '@rtsee/factory';
14
14
  import { RTSeePresentation, RTSeeStory, RTSeePresentationSettings, RTSeeStorySlide } from '@rtsee/presentation';
15
+ import { RTSeeTag, RTSeeManageTags, RecursiveSelect, RTSeeTagGroup, RTSeeManageTagGroups, RTSeeEntityConfiguration, RTSeeManageEntityConfigurations, RTSeeEntity, RTSeeManageEntities } from '@rtsee/utilities-ui';
15
16
  import * as i44 from '@angular/forms';
16
- import { FormArray, FormGroup, FormControl, FormBuilder } from '@angular/forms';
17
+ import { FormGroup, FormBuilder, FormControl, FormArray } from '@angular/forms';
18
+ import { RTSeeManageEntities as RTSeeManageEntities$1 } from '@rtsee/utilities-ui/dist/utilities-ui/src/entities/models/manage/RTSeeManageEntities';
17
19
  import * as i43 from '@angular/common';
18
20
  import { ViewportScroller } from '@angular/common';
19
21
  import * as i45 from 'ngx-autosize';
@@ -165,6 +167,173 @@ declare class PresentationComponent {
165
167
  static ɵcmp: i0.ɵɵComponentDeclaration<PresentationComponent, "rtsee-presentation", never, { "presentation": { "alias": "presentation"; "required": false; }; "messenger": { "alias": "messenger"; "required": false; }; }, {}, never, never, true, never>;
166
168
  }
167
169
 
170
+ interface IAccordionItem {
171
+ label: string;
172
+ icon?: string;
173
+ command?: () => void;
174
+ items?: IAccordionItem[];
175
+ url?: string;
176
+ isSelected: boolean;
177
+ }
178
+ declare class RtseeTagsAccordionMenuComponent implements OnInit {
179
+ items: IAccordionItem[];
180
+ onTagClicked: OutputEmitterRef<RTSeeTag>;
181
+ manageTags: RTSeeManageTags;
182
+ ngOnInit(): void;
183
+ private tagsToItems;
184
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtseeTagsAccordionMenuComponent, never>;
185
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtseeTagsAccordionMenuComponent, "rtsee-tags-accordion", never, { "manageTags": { "alias": "manageTags"; "required": false; }; }, { "onTagClicked": "onTagClicked"; }, never, never, true, never>;
186
+ }
187
+
188
+ type RTSeeTagForm = {
189
+ name: string | null;
190
+ description: string | null;
191
+ iconClass: string | null;
192
+ value: string | null;
193
+ };
194
+ declare class RtseeTagManageComponent implements OnInit {
195
+ private formBuilder;
196
+ tagForm: FormGroup;
197
+ tagsRecursiveSelect: RecursiveSelect<IRTSeeTag> | null;
198
+ manageTags: RTSeeManageTags;
199
+ constructor(formBuilder: FormBuilder);
200
+ ngOnInit(): void;
201
+ private presetParent;
202
+ submit(): Promise<void>;
203
+ cancel(): void;
204
+ private presetFields;
205
+ private getTagForm;
206
+ get nameField(): FormControl<string>;
207
+ get descriptionField(): FormControl<string>;
208
+ get iconClassField(): FormControl<string>;
209
+ get valueField(): FormControl<string>;
210
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtseeTagManageComponent, never>;
211
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtseeTagManageComponent, "rtsee-rtsee-tag-manage", never, { "manageTags": { "alias": "manageTags"; "required": false; }; }, {}, never, never, true, never>;
212
+ }
213
+
214
+ declare class RtseeTagGroupsManageComponent implements OnInit {
215
+ items: IAccordionItem[];
216
+ selectedTagGroup: RTSeeTagGroup | undefined;
217
+ onTagGroupClicked: OutputEmitterRef<RTSeeTagGroup>;
218
+ manageTagGroups: RTSeeManageTagGroups;
219
+ ngOnInit(): void;
220
+ private tagGroupsToItems;
221
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtseeTagGroupsManageComponent, never>;
222
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtseeTagGroupsManageComponent, "rtsee-rtsee-tag-groups-manage", never, { "manageTagGroups": { "alias": "manageTagGroups"; "required": false; }; }, { "onTagGroupClicked": "onTagGroupClicked"; }, never, never, true, never>;
223
+ }
224
+
225
+ type RTSeeTagGroupForm = {
226
+ name: string | null;
227
+ description: string | null;
228
+ };
229
+ declare class RtseeTagGroupManageComponent implements OnInit {
230
+ private formBuilder;
231
+ tagGroupForm: FormGroup;
232
+ manageTagGroups: RTSeeManageTagGroups;
233
+ constructor(formBuilder: FormBuilder);
234
+ ngOnInit(): void;
235
+ submit(): Promise<void>;
236
+ cancel(): void;
237
+ private presetFields;
238
+ private getTagGroupForm;
239
+ get nameField(): FormControl<string>;
240
+ get descriptionField(): FormControl<string>;
241
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtseeTagGroupManageComponent, never>;
242
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtseeTagGroupManageComponent, "rtsee-rtsee-tag-group-manage", never, { "manageTagGroups": { "alias": "manageTagGroups"; "required": false; }; }, {}, never, never, true, never>;
243
+ }
244
+
245
+ declare class EntitiesConfigurationsListComponent {
246
+ items: IAccordionItem[];
247
+ selectedEntityConfiguration?: RTSeeEntityConfiguration;
248
+ onConfigurationClicked: OutputEmitterRef<RTSeeEntityConfiguration>;
249
+ manageEntityConfigurations: RTSeeManageEntityConfigurations;
250
+ ngOnInit(): void;
251
+ private configurationsToItems;
252
+ static ɵfac: i0.ɵɵFactoryDeclaration<EntitiesConfigurationsListComponent, never>;
253
+ static ɵcmp: i0.ɵɵComponentDeclaration<EntitiesConfigurationsListComponent, "rtsee-entities-configurations-list", never, { "manageEntityConfigurations": { "alias": "manageEntityConfigurations"; "required": false; }; }, { "onConfigurationClicked": "onConfigurationClicked"; }, never, never, true, never>;
254
+ }
255
+
256
+ type RTSeeEntityConfigurationForm = {
257
+ name: string | null;
258
+ description: string | null;
259
+ taggingEnabled: boolean | null;
260
+ commentsEnabled: boolean | null;
261
+ ratingEnabled: boolean | null;
262
+ };
263
+ declare class ManageEntityConfigurationComponent {
264
+ private formBuilder;
265
+ entityConfigurationForm: FormGroup;
266
+ manageEntityConfigurations: RTSeeManageEntityConfigurations;
267
+ constructor(formBuilder: FormBuilder);
268
+ ngOnInit(): void;
269
+ submit(): Promise<void>;
270
+ cancel(): void;
271
+ private presetFields;
272
+ private getEntityConfigurationForm;
273
+ get nameField(): FormControl<string>;
274
+ get descriptionField(): FormControl<string>;
275
+ get taggingEnabledField(): FormControl<boolean>;
276
+ get commentsEnabledField(): FormControl<boolean>;
277
+ get ratingEnabledField(): FormControl<boolean>;
278
+ static ɵfac: i0.ɵɵFactoryDeclaration<ManageEntityConfigurationComponent, never>;
279
+ static ɵcmp: i0.ɵɵComponentDeclaration<ManageEntityConfigurationComponent, "rtsee-manage-entity-configuration", never, { "manageEntityConfigurations": { "alias": "manageEntityConfigurations"; "required": false; }; }, {}, never, never, true, never>;
280
+ }
281
+
282
+ declare class EntitiesListComponent {
283
+ items: IAccordionItem[];
284
+ selectedEntity?: RTSeeEntity;
285
+ onEntityClicked: OutputEmitterRef<RTSeeEntity>;
286
+ manageEntities: RTSeeManageEntities;
287
+ ngOnInit(): void;
288
+ private entitiesToItems;
289
+ static ɵfac: i0.ɵɵFactoryDeclaration<EntitiesListComponent, never>;
290
+ static ɵcmp: i0.ɵɵComponentDeclaration<EntitiesListComponent, "rtsee-entities-list", never, { "manageEntities": { "alias": "manageEntities"; "required": false; }; }, { "onEntityClicked": "onEntityClicked"; }, never, never, true, never>;
291
+ }
292
+
293
+ type RTSeeEntityForm = {
294
+ name: string | null;
295
+ configurationId: string | null;
296
+ imageUrl: string | null;
297
+ };
298
+ declare class ManageEntityComponent {
299
+ private formBuilder;
300
+ entityForm: FormGroup;
301
+ manageEntities: RTSeeManageEntities$1;
302
+ constructor(formBuilder: FormBuilder);
303
+ ngOnInit(): void;
304
+ submit(): Promise<void>;
305
+ configurationInputChanged(): void;
306
+ cancel(): void;
307
+ private presetFields;
308
+ private getEntityForm;
309
+ get nameField(): FormControl<string>;
310
+ get imageUrlField(): FormControl<string>;
311
+ get configurationIdField(): FormControl<string>;
312
+ static ɵfac: i0.ɵɵFactoryDeclaration<ManageEntityComponent, never>;
313
+ static ɵcmp: i0.ɵɵComponentDeclaration<ManageEntityComponent, "rtsee-manage-entity", never, { "manageEntities": { "alias": "manageEntities"; "required": false; }; }, {}, never, never, true, never>;
314
+ }
315
+
316
+ declare class RtseeEntityCommentsComponent {
317
+ messenger: RTSeeMessenger;
318
+ chat: IRTSeeChat;
319
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtseeEntityCommentsComponent, never>;
320
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtseeEntityCommentsComponent, "rtsee-entity-comments", never, { "messenger": { "alias": "messenger"; "required": false; }; "chat": { "alias": "chat"; "required": false; }; }, {}, never, never, true, never>;
321
+ }
322
+
323
+ declare class RtseeEntityTagsComponent {
324
+ entity: RTSeeEntity;
325
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtseeEntityTagsComponent, never>;
326
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtseeEntityTagsComponent, "rtsee-entity-tags", never, { "entity": { "alias": "entity"; "required": false; }; }, {}, never, never, true, never>;
327
+ }
328
+
329
+ declare class RtseeEntityPreviewComponent implements OnInit {
330
+ entity: RTSeeEntity;
331
+ messenger: RTSeeMessenger;
332
+ ngOnInit(): void;
333
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtseeEntityPreviewComponent, never>;
334
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtseeEntityPreviewComponent, "rtsee-entity-preview", never, { "entity": { "alias": "entity"; "required": false; }; "messenger": { "alias": "messenger"; "required": false; }; }, {}, never, never, true, never>;
335
+ }
336
+
168
337
  declare class RTSeeAuthComponent implements OnInit {
169
338
  authService: RTSeeAuthService;
170
339
  auth: RTSeeAuth<any>;
@@ -655,4 +824,5 @@ declare class RTSeeModule {
655
824
  static ɵinj: i0.ɵɵInjectorDeclaration<RTSeeModule>;
656
825
  }
657
826
 
658
- export { MessengerComponent, NgxService, PaymentProductSnippetComponent, PresentationComponent, ProfileComponent, RTSeeAuthComponent, RTSeeConferenceComponent, RTSeeContainerComponent, RTSeeControlsComponent, RTSeeModule, RtseeEventsDashboardComponent, RtseePeerComponent, RtseeSettingsComponent };
827
+ export { EntitiesConfigurationsListComponent, EntitiesListComponent, ManageEntityComponent, ManageEntityConfigurationComponent, MessengerComponent, NgxService, PaymentProductSnippetComponent, PresentationComponent, ProfileComponent, RTSeeAuthComponent, RTSeeConferenceComponent, RTSeeContainerComponent, RTSeeControlsComponent, RTSeeModule, RtseeEntityCommentsComponent, RtseeEntityPreviewComponent, RtseeEntityTagsComponent, RtseeEventsDashboardComponent, RtseePeerComponent, RtseeSettingsComponent, RtseeTagGroupManageComponent, RtseeTagGroupsManageComponent, RtseeTagManageComponent, RtseeTagsAccordionMenuComponent };
828
+ export type { IAccordionItem, RTSeeEntityConfigurationForm, RTSeeEntityForm, RTSeeTagForm, RTSeeTagGroupForm };
@@ -1,3 +1,4 @@
1
1
  @import "./image-uploader";
2
2
  @import "./preloader";
3
3
  @import "./ordered-list";
4
+ @import "./rating";
@@ -0,0 +1,31 @@
1
+ @import "../common-variables";
2
+
3
+ .rtsee-rating {
4
+ display: flex;
5
+ align-items: center;
6
+ gap: 1px;
7
+
8
+ .rtsee-rating-star {
9
+ font-size: 12px;
10
+ line-height: 1;
11
+
12
+ &.rtsee-rating-star-full {
13
+ color: $ai-rating-star-color;
14
+ }
15
+
16
+ &.rtsee-rating-star-half {
17
+ color: $ai-rating-star-color;
18
+ opacity: 0.5;
19
+ }
20
+
21
+ &.rtsee-rating-star-empty {
22
+ color: $ai-rating-star-empty-color;
23
+ }
24
+ }
25
+
26
+ .rtsee-rating-number {
27
+ font-size: 11px;
28
+ color: $ai-text-color-secondary;
29
+ margin-left: 4px;
30
+ }
31
+ }
@@ -108,3 +108,19 @@ $rts-header-height-m: 45px;
108
108
  $rts-bottom-nav-height: 75px;
109
109
 
110
110
  // end of new design-variables
111
+
112
+ // ai design
113
+ // ui-gen
114
+ $ai-background-color: #0e0e10;
115
+ $ai-background-gradient: linear-gradient(135deg, #1b0533 0%, #0e0e10 60%, #0a1628 100%);
116
+ $ai-text-color-primary: #e5e5e7;
117
+ $ai-text-color-secondary: #8e8e93;
118
+
119
+ $ai-large-screen-side-padding: $rts-offset-md * 3;
120
+ $ai-panel-background-color: #1a1a1e;
121
+ $ai-default-border-radius: 12px;
122
+ $ai-icon-highlight-color: #bf8bff;
123
+ $ai-icon-highlight-color-dim: rgba(191, 139, 255, 0.15);;
124
+
125
+ $ai-rating-star-color: #f5c518;
126
+ $ai-rating-star-empty-color: #3a3a3d;;
@@ -5,3 +5,8 @@
5
5
  .rtsee-messenger, .rtsee-events-dashboard {
6
6
  font-family: "Work Sans", Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;
7
7
  }
8
+
9
+ ul {
10
+ margin: 0;
11
+ padding: 0;
12
+ }
@@ -2,6 +2,8 @@
2
2
 
3
3
  .rtsee-presentation {
4
4
  padding-bottom: $rts-bottom-nav-height + $rts-offset-sm;
5
+ background-color: $ai-background-color;
6
+ color: $ai-text-color-primary;
5
7
 
6
8
  @media screen and (min-width: $rts-break-md) {
7
9
  padding-bottom: 0;
@@ -10,7 +12,6 @@
10
12
 
11
13
  .rtsee-presentation-header {
12
14
  transition: bottom 0.5s ease-in-out;
13
- background-color: #ffffff;
14
15
  width: 100%;
15
16
 
16
17
  &.rtsee-presentation-header-convertable {
@@ -24,6 +25,49 @@
24
25
  bottom: 0;
25
26
  }
26
27
 
28
+ .rtsee-presentations-header-title {
29
+ position: relative;
30
+ height: 105px;
31
+ display: flex;
32
+ align-items: flex-end;
33
+ padding: 0 $rts-offset-md $rts-offset-md;
34
+ background: $ai-background-gradient;
35
+ overflow: hidden;
36
+
37
+ &::before {
38
+ content: '';
39
+ position: absolute;
40
+ inset: 0;
41
+ background: radial-gradient(ellipse at 30% 20%, rgba(191, 139, 255, 0.12) 0%, transparent 60%),
42
+ radial-gradient(ellipse at 80% 60%, rgba(100, 149, 237, 0.08) 0%, transparent 50%);
43
+ }
44
+
45
+ .rtsee-presentations-header-title-overlay {
46
+ position: absolute;
47
+ inset: 0;
48
+ background: linear-gradient(to top, $ai-background-color 0%, transparent 40%);
49
+ }
50
+
51
+ .rtsee-presentations-header-title-content {
52
+ position: relative;
53
+ z-index: 1;
54
+
55
+ h1 {
56
+ font-size: 36px;
57
+ font-weight: 700;
58
+ letter-spacing: -0.5px;
59
+ margin: 0 0 6px;
60
+ }
61
+
62
+ .rtsee-presentations-header-title-subtitle {
63
+ font-size: 15px;
64
+ color: $ai-text-color-secondary;
65
+ margin: 0;
66
+ font-weight: 400;
67
+ }
68
+ }
69
+ }
70
+
27
71
  .rtsee-presentation-header-active-story-info {
28
72
  position: relative;
29
73
  padding: 0 $presentation-dashboard-header-height;
@@ -76,12 +120,28 @@
76
120
  }
77
121
 
78
122
  .rtsee-presentation-room-block {
79
- padding: $rts-offset-sm;
123
+ padding: $rts-offset-md $rts-offset-md $rts-offset-lg $rts-offset-md;
124
+ display: inline-block;
80
125
  }
81
126
 
82
127
  @media screen and (min-width: $rts-break-md) {
83
128
  &.rtsee-presentation-header-convertable {
84
129
  position: static;
85
130
  }
131
+
132
+ .rtsee-presentations-header-title {
133
+ padding: 0 $ai-large-screen-side-padding $rts-offset-md;
134
+
135
+ .rtsee-presentations-header-title-content {
136
+ h1 {
137
+ font-size: 28px;
138
+ }
139
+ }
140
+ }
141
+
142
+ .rtsee-presentation-room-block {
143
+ padding-bottom: $rts-offset-md * 2;
144
+ padding-left: $ai-large-screen-side-padding;
145
+ }
86
146
  }
87
147
  }
@@ -1,35 +1,66 @@
1
1
  @import "./variables";
2
2
 
3
3
  .rtsee-presentation-categories-list {
4
- .rtsee-presentation-category-name {
5
- margin: 0;
6
- padding: $rts-offset-sm $rts-offset-sm 0 $rts-offset-sm;
7
- font-size: 18px;
8
- color: $rts-font-color-light;
4
+ color: $ai-text-color-primary;
5
+
6
+ .rtsee-presentation-category-header {
7
+ display: flex;
8
+ align-items: baseline;
9
+ gap: 12px;
10
+ padding: 0 $rts-offset-md;
11
+
12
+ .rtsee-presentation-category-name {
13
+ font-size: 18px;
14
+ font-weight: 600;
15
+ margin: 0;
16
+ letter-spacing: -0.2px;
17
+ }
18
+
19
+ .rtsee-presentation-category-description {
20
+ font-size: 13px;
21
+ color: $ai-text-color-secondary;
22
+ }
9
23
  }
10
- }
11
24
 
25
+ @media screen and (min-width: $rts-break-md) {
26
+ .rtsee-presentation-category-header {
27
+ padding: 0 $ai-large-screen-side-padding;
28
+ }
29
+ }
30
+ }
12
31
 
13
32
  .rtsee-presentation-stories-list {
14
33
  overflow-x: auto;
15
34
  overflow-y: hidden;
16
35
  white-space: nowrap;
17
- padding: $rts-offset-sm $rts-offset-xsm;
36
+ padding: $rts-offset-md;
37
+ display: flex;
38
+ gap: 16px;
39
+ scroll-behavior: smooth;
40
+
41
+ // Hide scrollbar
42
+ -ms-overflow-style: none;
43
+ scrollbar-width: none;
44
+
45
+ &::-webkit-scrollbar {
46
+ display: none;
47
+ }
18
48
 
19
49
  .rtsee-presentation-story-thumbnail-container {
20
- display: inline-block;
21
- width: $story-thumb-width;
22
- vertical-align: top;
23
- padding: $rts-offset-xsm;
50
+ flex: 0 0 $story-thumb-width;
24
51
  border-radius: $rts-default-border-radius;
52
+ background: $ai-panel-background-color;
25
53
  overflow: hidden;
54
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
55
+ user-select: none;
56
+
57
+ //padding: $rts-offset-xsm;
26
58
 
27
59
  &:hover {
28
60
  cursor: pointer;
29
61
  background-color: rgba(0,0,0,0.1);
30
62
  }
31
63
 
32
-
33
64
  // saving this for dnip.io here
34
65
  //.rtsee-story-book-thumbnail {
35
66
  // background: linear-gradient(to right, rgb(60, 13, 20) 3px, rgba(255, 255, 255, 0.5) 5px, rgba(255, 255, 255, 0.25) 7px, rgba(255, 255, 255, 0.25) 10px, transparent 12px, transparent 16px, rgba(255, 255, 255, 0.25) 17px, transparent 22px), url(https://images-na.ssl-images-amazon.com/images/I/51pnouuPO5L.jpg);
@@ -41,17 +72,31 @@
41
72
  //}
42
73
 
43
74
  .rtsee-story-thumbnail {
75
+ border-radius: $ai-default-border-radius;
44
76
  overflow: hidden;
45
- color: #334155;
77
+
78
+ &:hover {
79
+ .rtsee-story-thumbnail-image-container {
80
+ .rtsee-story-thumbnail-image {
81
+ transform: scale(1.03);
82
+ }
83
+ }
84
+ }
46
85
 
47
86
  .rtsee-story-thumbnail-image-container {
48
87
  position: relative;
49
- padding-bottom: $story-thumb-image-padding;
50
- background-size: cover;
51
- background-position: center center;
52
- background-repeat: no-repeat;
88
+ width: 100%;
89
+ aspect-ratio: 4 / 3;
53
90
  overflow: hidden;
54
- border-radius: $rts-default-border-radius;
91
+ background: #222;
92
+
93
+ .rtsee-story-thumbnail-image {
94
+ width: 100%;
95
+ height: 100%;
96
+ object-fit: cover;
97
+ display: block;
98
+ transition: transform 0.3s ease;
99
+ }
55
100
 
56
101
  .rtsee-story-thumbnail-progress-bar-container {
57
102
  $rts-progress-bar-height: 5px;
@@ -80,21 +125,47 @@
80
125
  }
81
126
 
82
127
  .rtsee-story-thumbnail-body-container {
83
- padding: $rts-offset-sm;
84
-
85
- .rtsee-story-thumbnail-title-container {
86
- .rtsee-story-thumbnail-title {
87
- margin: 0 0 $rts-offset-sm 0;
88
- white-space: normal;
89
- color: #334155;
90
- font-weight: 500;
91
- }
128
+ padding: 10px 12px 12px;
129
+
130
+ .rtsee-story-thumbnail-title {
131
+ font-size: 13px;
132
+ font-weight: 500;
133
+ margin: 0 0 6px;
134
+ line-height: 1.3;
135
+ display: -webkit-box;
136
+ -webkit-line-clamp: 2;
137
+ line-clamp: 2;
138
+ -webkit-box-orient: vertical;
139
+ overflow: hidden;
140
+ white-space: normal;
92
141
  }
93
142
 
94
- .rtsee-story-thumbnail-info-container {
95
- .rtsee-story-thumbnail-info-time-icon {
143
+ .rtsee-story-thumbnail-body-meta {
144
+ display: flex;
145
+ align-items: center;
146
+ justify-content: space-between;
147
+ margin-bottom: 6px;
148
+
149
+ .rtsee-story-thumbnail-time-container {
150
+ display: flex;
151
+ align-items: center;
152
+ gap: 4px;
96
153
  font-size: 11px;
97
- color: #334155;
154
+ color: $ai-text-color-secondary;
155
+
156
+ .rtsee-story-thumbnail-info-time-icon {
157
+ opacity: 0.6;
158
+ font-size: 13px;
159
+ }
160
+ }
161
+
162
+ .rtsee-story-thumbnail-label-container {
163
+ font-size: 10px;
164
+ font-weight: 600;
165
+ color: $ai-icon-highlight-color;
166
+ background: $ai-icon-highlight-color-dim;
167
+ padding: 2px 6px;
168
+ border-radius: 4px;
98
169
  }
99
170
  }
100
171
  }
@@ -106,6 +177,10 @@
106
177
  display: block;
107
178
  clear: both;
108
179
  }
180
+
181
+ @media screen and (min-width: $rts-break-md) {
182
+ padding: $rts-offset-md $ai-large-screen-side-padding;
183
+ }
109
184
  }
110
185
 
111
186
 
@@ -20,4 +20,7 @@ $presentation-dashboard-ol-height: calc(100vh - $presentation-dashboard-preoccup
20
20
 
21
21
  $stories-player-height-dvh: calc(100dvh - $rts-bottom-nav-height);
22
22
  $stories-player-height-wide-screen-dvh: calc(100dvh - $presentation-dashboard-header-height);
23
- $presentation-dashboard-ol-height-dvh: calc(100dvh - $presentation-dashboard-preoccupied-height)
23
+ $presentation-dashboard-ol-height-dvh: calc(100dvh - $presentation-dashboard-preoccupied-height);
24
+
25
+
26
+
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.87",
2
+ "version": "0.0.89",
3
3
  "name": "@rtsee/ngx",
4
4
  "module": "./dist/ngx/fesm2022/rtsee-ngx.mjs",
5
5
  "types": "./dist/ngx/index.d.ts",
@@ -40,15 +40,15 @@
40
40
  "@angular/platform-browser-dynamic": "^20.1.2",
41
41
  "@angular/router": "^20.1.2",
42
42
  "@primeuix/themes": "^1.2.3",
43
- "@rtsee/common": "^0.0.58",
44
- "@rtsee/conference": "^0.0.59",
45
- "@rtsee/core": "^0.0.102",
46
- "@rtsee/events-dashboard": "^0.0.92",
47
- "@rtsee/factory": "^0.0.101",
48
- "@rtsee/messenger": "^0.0.92",
49
- "@rtsee/presentation": "^0.0.91",
50
- "@rtsee/signaling-client": "^0.0.105",
51
- "@rtsee/utilities-ui": "^0.0.23",
43
+ "@rtsee/common": "^0.0.60",
44
+ "@rtsee/conference": "^0.0.61",
45
+ "@rtsee/core": "^0.0.104",
46
+ "@rtsee/events-dashboard": "^0.0.94",
47
+ "@rtsee/factory": "^0.0.103",
48
+ "@rtsee/messenger": "^0.0.94",
49
+ "@rtsee/presentation": "^0.0.93",
50
+ "@rtsee/signaling-client": "^0.0.107",
51
+ "@rtsee/utilities-ui": "^0.0.25",
52
52
  "@stripe/stripe-js": "^8.6.1",
53
53
  "@types/node": "~24.0.14",
54
54
  "dayjs": "^1.11.9",
@@ -70,5 +70,5 @@
70
70
  "publishConfig": {
71
71
  "access": "public"
72
72
  },
73
- "gitHead": "4107b1c5904d0c2cd8667a09ed783f8a25514089"
73
+ "gitHead": "1b642ce33ceebb6a75cb755ad7bcf9335b15a43a"
74
74
  }