@veltdev/types 5.0.0-beta.8 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -54,6 +54,8 @@ export type CommentVisibilityType = 'public' | 'organization' | 'self';
54
54
  export interface CommentVisibilityConfig {
55
55
  /** The type of visibility for the comment */
56
56
  type: CommentVisibilityType;
57
+ /** Annotation ID for the comment to update visibility */
58
+ annotationId?: string;
57
59
  /** Organization ID for 'organization' type visibility */
58
60
  organizationId?: string;
59
61
  /** User IDs for 'self' type visibility - array of user IDs who can see the comment */
@@ -81,6 +83,24 @@ export interface DeleteCommentAnnotationRequest {
81
83
  annotationId: string;
82
84
  options?: RequestOptions;
83
85
  }
86
+ /**
87
+ * Query parameters for fetching comment annotation counts.
88
+ *
89
+ * @property organizationId - Filter by organization (enables org-wide aggregation when used alone)
90
+ * @property documentIds - Filter by specific document IDs
91
+ * @property locationIds - Filter by location IDs within documents
92
+ * @property statusIds - Filter by comment status IDs (e.g., "open", "resolved")
93
+ * @property folderId - Filter by folder ID (use with allDocuments for folder-wide counts)
94
+ * @property allDocuments - When true with folderId, aggregates all documents in folder
95
+ * @property locationId - Single location filter (deprecated, use locationIds)
96
+ * @property aggregateDocuments - When true, combines all documentIds into single count
97
+ * @property filterGhostComments - When true, excludes orphaned/deleted comments from counts
98
+ * @property batchedPerDocument - When true, uses efficient batched listeners (4 instead of 100)
99
+ * but still returns per-document counts. Best for large document lists (50+).
100
+ * Trade-off: slight delay on updates due to debouncing.
101
+ * @property debounceMs - Debounce time in milliseconds for batchedPerDocument mode (default: 5000ms).
102
+ * Prevents rapid re-fetches when multiple documents update in quick succession.
103
+ */
84
104
  export interface CommentRequestQuery {
85
105
  organizationId?: string;
86
106
  documentIds?: string[];
@@ -91,6 +111,10 @@ export interface CommentRequestQuery {
91
111
  locationId?: string;
92
112
  aggregateDocuments?: boolean;
93
113
  filterGhostComments?: boolean;
114
+ /** Enable batched listeners with per-document counts. Uses 4 listeners instead of N listeners. */
115
+ batchedPerDocument?: boolean;
116
+ /** Debounce time in ms for batchedPerDocument mode (default: 5000). */
117
+ debounceMs?: number;
94
118
  }
95
119
  export interface SubscribeCommentAnnotationRequest {
96
120
  annotationId: string;
@@ -190,6 +214,32 @@ export interface ToggleReactionRequest {
190
214
  };
191
215
  options?: RequestOptions;
192
216
  }
217
+ export interface SubmitCommentRequest {
218
+ targetComposerElementId: string;
219
+ }
220
+ export interface ClearComposerRequest {
221
+ targetComposerElementId: string;
222
+ }
223
+ export interface GetComposerDataRequest {
224
+ targetComposerElementId: string;
225
+ }
226
+ /**
227
+ * FormatConfig - Configuration for format options
228
+ */
229
+ export interface FormatConfig {
230
+ bold?: {
231
+ enable: boolean;
232
+ };
233
+ italic?: {
234
+ enable: boolean;
235
+ };
236
+ underline?: {
237
+ enable: boolean;
238
+ };
239
+ strikethrough?: {
240
+ enable: boolean;
241
+ };
242
+ }
193
243
  export interface FetchCommentAnnotationsRequest {
194
244
  createdAfter?: number;
195
245
  createdBefore?: number;
@@ -184,6 +184,7 @@ export declare class CommentAnnotation {
184
184
  unsubscribedUsers?: CommentAnnotationUnsubscribedUsers;
185
185
  subscribedGroups?: CommentAnnotationSubscribedGroups;
186
186
  resolvedByUserId?: string | null;
187
+ resolvedByUser?: User | null;
187
188
  multiThreadAnnotationId?: string;
188
189
  isDraft?: boolean;
189
190
  sourceId?: string;
@@ -1,4 +1,4 @@
1
- import { CommentAccessMode, CommentEventTypes, CommentStatus } from "../../utils/enums";
1
+ import { AssignToType, CommentAccessMode, CommentEventTypes, CommentStatus } from "../../utils/enums";
2
2
  import { Attachment } from "./attachment.model";
3
3
  import { VeltButtonClickEvent } from "./button.data.model";
4
4
  import { AddAttachmentResponse } from "./comment-actions.data.model";
@@ -84,6 +84,8 @@ export type CommentEventTypesMap = {
84
84
  [CommentEventTypes.LINK_CLICKED]: LinkClickedEvent;
85
85
  [CommentEventTypes.COMMENT_PIN_CLICKED]: CommentPinClickedEvent;
86
86
  [CommentEventTypes.COMMENT_BUBBLE_CLICKED]: CommentBubbleClickedEvent;
87
+ [CommentEventTypes.COMMENT_TOOL_CLICK]: CommentToolClickEvent;
88
+ [CommentEventTypes.SIDEBAR_BUTTON_CLICK]: SidebarButtonClickEvent;
87
89
  };
88
90
  export interface AddAttachmentEvent {
89
91
  annotationId: string;
@@ -278,5 +280,26 @@ export interface CommentBubbleClickedEvent {
278
280
  }
279
281
  export interface ComposerTextChangeEvent {
280
282
  text: string;
283
+ annotation: CommentAnnotation;
284
+ targetComposerElementId: string;
285
+ metadata?: VeltEventMetadata;
286
+ }
287
+ export interface AssignToConfig {
288
+ type: AssignToType;
289
+ }
290
+ export interface PageModeComposerConfig {
291
+ context?: {
292
+ [key: string]: any;
293
+ } | null;
294
+ targetElementId?: string | null;
295
+ }
296
+ export interface CommentToolClickEvent {
297
+ context: {
298
+ [key: string]: any;
299
+ } | null;
300
+ targetElementId?: string | null;
301
+ metadata?: VeltEventMetadata;
302
+ }
303
+ export interface SidebarButtonClickEvent {
281
304
  metadata?: VeltEventMetadata;
282
305
  }
@@ -74,3 +74,6 @@ export interface DisableLogsConfig {
74
74
  warnings?: boolean;
75
75
  suppressAll?: boolean;
76
76
  }
77
+ export interface GetProjectConfigResponse {
78
+ isPrivateCommentsEnabled: boolean;
79
+ }
@@ -1,13 +1,13 @@
1
1
  // @ts-nocheck
2
2
  import { Observable } from "rxjs";
3
- import { CommentSidebarSystemFiltersOperator, SidebarButtonCountType } from "../../utils/enums";
3
+ import { AssignToType, CommentSidebarSystemFiltersOperator, SidebarButtonCountType } from "../../utils/enums";
4
4
  import { UploadFileData } from "../data/attachment.model";
5
5
  import { AutocompleteData } from "../data/autocomplete.data.model";
6
- import { AcceptCommentAnnotationRequest, AddAttachmentRequest, AddAttachmentResponse, AddCommentAnnotationRequest, AddCommentRequest, AddReactionRequest, ApproveCommentAnnotationRequest, AssignUserEvent, AssignUserRequest, CommentRequestQuery, CommentVisibilityConfig, CopyLinkRequest, DeleteAttachmentRequest, DeleteCommentAnnotationRequest, DeleteCommentRequest, DeleteReactionRequest, DeleteRecordingRequest, FetchCommentAnnotationsRequest, GetAttachmentRequest, GetCommentRequest, GetLinkRequest, GetRecordingRequest, RejectCommentAnnotationRequest, ResolveCommentAnnotationRequest, SubscribeCommentAnnotationRequest, ToggleReactionRequest, UnsubscribeCommentAnnotationRequest, UpdateAccessRequest, UpdateCommentRequest, UpdatePriorityRequest, UpdateStatusRequest } from "../data/comment-actions.data.model";
6
+ import { AcceptCommentAnnotationRequest, AddAttachmentRequest, AddAttachmentResponse, AddCommentAnnotationRequest, AddCommentRequest, AddReactionRequest, ApproveCommentAnnotationRequest, AssignUserEvent, AssignUserRequest, CommentRequestQuery, CommentVisibilityConfig, ClearComposerRequest, CopyLinkRequest, DeleteAttachmentRequest, DeleteCommentAnnotationRequest, DeleteCommentRequest, DeleteReactionRequest, DeleteRecordingRequest, FetchCommentAnnotationsRequest, GetAttachmentRequest, GetCommentRequest, GetComposerDataRequest, GetLinkRequest, GetRecordingRequest, RejectCommentAnnotationRequest, ResolveCommentAnnotationRequest, SubmitCommentRequest, SubscribeCommentAnnotationRequest, ToggleReactionRequest, UnsubscribeCommentAnnotationRequest, UpdateAccessRequest, UpdateCommentRequest, UpdatePriorityRequest, UpdateStatusRequest } from "../data/comment-actions.data.model";
7
7
  import { CommentAnnotation, CommentOnElementConfig, CommentSelectionChangeData, ManualCommentAnnotationConfig, UpdateContextConfig } from "../data/comment-annotation.data.model";
8
- import { AcceptCommentAnnotationEvent, AddCommentAnnotationEvent, AddCommentEvent, AddReactionEvent, ApproveCommentAnnotationEvent, CommentAddEventData, CommentEventTypesMap, CommentUpdateEventData, CopyLinkEvent, DeleteAttachmentEvent, DeleteCommentAnnotationEvent, DeleteCommentEvent, DeleteReactionEvent, DeleteRecordingEvent, FetchCommentAnnotationsResponse, GetCommentAnnotationsCountResponse, GetCommentAnnotationsResponse, GetLinkEvent, RejectCommentAnnotationEvent, ToggleReactionEvent, UpdateAccessEvent, UpdateCommentEvent, UpdatePriorityEvent, UpdateStatusEvent } from "../data/comment-events.data.model";
8
+ import { AcceptCommentAnnotationEvent, AddCommentAnnotationEvent, AddCommentEvent, AddReactionEvent, ApproveCommentAnnotationEvent, AssignToConfig, CommentAddEventData, CommentEventTypesMap, CommentUpdateEventData, ComposerTextChangeEvent, CopyLinkEvent, DeleteAttachmentEvent, DeleteCommentAnnotationEvent, DeleteCommentEvent, DeleteReactionEvent, DeleteRecordingEvent, FetchCommentAnnotationsResponse, GetCommentAnnotationsCountResponse, GetCommentAnnotationsResponse, GetLinkEvent, PageModeComposerConfig, RejectCommentAnnotationEvent, ToggleReactionEvent, UpdateAccessEvent, UpdateCommentEvent, UpdatePriorityEvent, UpdateStatusEvent } from "../data/comment-events.data.model";
9
9
  import { CommentSidebarCustomActionEventData, CommentSidebarData, CommentSidebarDataOptions } from "../data/comment-sidebar-config.model";
10
- import { CommentContextProvider, TransformContext, UnreadCommentsCount } from "../data/comment-utils.data.model";
10
+ import { CommentContextProvider, FormatConfig, TransformContext, UnreadCommentsCount } from "../data/comment-utils.data.model";
11
11
  import { CustomAnnotationDropdownData } from "../data/custom-chip-dropdown.data.model";
12
12
  import { CustomCategory, CustomPriority, CustomStatus } from "../data/custom-filter.data.model";
13
13
  export { ReactionMap } from '../data/reaction-annotation.data.model';
@@ -85,6 +85,39 @@ export declare class CommentElement {
85
85
  */
86
86
  toggleCommentSidebar: () => any;
87
87
 
88
+ /**
89
+ * To enable context in page mode composer feature
90
+ * When enabled, clicking comment tool will open sidebar with page mode composer and pass context
91
+ */
92
+ enableContextInPageModeComposer: () => void;
93
+
94
+ /**
95
+ * To disable context in page mode composer feature
96
+ */
97
+ disableContextInPageModeComposer: () => void;
98
+
99
+ /**
100
+ * To clear page mode composer context
101
+ */
102
+ clearPageModeComposerContext: () => void;
103
+
104
+ /**
105
+ * To set context in page mode composer
106
+ * @param config The page mode composer config containing context and targetElementId
107
+ */
108
+ setContextInPageModeComposer: (config: PageModeComposerConfig | null) => void;
109
+
110
+ /**
111
+ * To focus the page mode composer input
112
+ */
113
+ focusPageModeComposer: () => void;
114
+
115
+ /**
116
+ * To set assign to type for comment dialog
117
+ * @param config The assign to config containing type
118
+ */
119
+ setAssignToType: (config: AssignToConfig) => void;
120
+
88
121
  /**
89
122
  * To enable moderator mode
90
123
  */
@@ -465,11 +498,13 @@ export declare class CommentElement {
465
498
  /**
466
499
  * To enable private comment mode to add private comments.
467
500
  * This mode can be enabled for admin users only.
501
+ * @deprecated
468
502
  */
469
503
  public enablePrivateCommentMode: () => void;
470
504
 
471
505
  /**
472
506
  * To disable private comment mode.
507
+ * @deprecated
473
508
  */
474
509
  public disablePrivateCommentMode: () => void;
475
510
 
@@ -825,11 +860,10 @@ export declare class CommentElement {
825
860
 
826
861
  /**
827
862
  * Updates the visibility of a comment annotation.
828
- * @param annotationId Annotation Id
829
- * @param visibility Visibility configuration (public, organization, or self)
863
+ * @param visibility Visibility configuration (public, organization, or self) including annotationId
830
864
  * @returns Promise<any>
831
865
  */
832
- public updateVisibility: (annotationId: string, visibility: CommentVisibilityConfig) => Promise<any>;
866
+ public updateVisibility: (visibility: CommentVisibilityConfig) => Promise<any>;
833
867
 
834
868
  /**
835
869
  * Subscribe to selected comments
@@ -1019,6 +1053,7 @@ export declare class CommentElement {
1019
1053
 
1020
1054
  /**
1021
1055
  * To update access
1056
+ * @deprecated
1022
1057
  */
1023
1058
  public updateAccess: (request: UpdateAccessRequest) => Promise<UpdateAccessEvent | null>;
1024
1059
 
@@ -1272,13 +1307,6 @@ export declare class CommentElement {
1272
1307
  */
1273
1308
  public disableScreenshot: () => void;
1274
1309
 
1275
- /**
1276
- * To programmatically submit a comment from a velt-comment-composer.
1277
- * Finds the composer within the element identified by referenceId and submits its content.
1278
- * @param referenceId The ID of the HTML element containing the velt-comment-composer
1279
- */
1280
- public submitComment: (referenceId: string) => void;
1281
-
1282
1310
  /**
1283
1311
  * To enable paginated contact list
1284
1312
  */
@@ -1289,6 +1317,42 @@ export declare class CommentElement {
1289
1317
  */
1290
1318
  public disablePaginatedContactList: () => void;
1291
1319
 
1320
+ /**
1321
+ * To enable format options (bold, italic, underline, strikethrough)
1322
+ */
1323
+ public enableFormatOptions: () => void;
1324
+
1325
+ /**
1326
+ * To disable format options
1327
+ */
1328
+ public disableFormatOptions: () => void;
1329
+
1330
+ /**
1331
+ * Set format config to control which format options are enabled
1332
+ * @param config FormatConfig with enable flags for each format type
1333
+ */
1334
+ public setFormatConfig: (config: FormatConfig) => void;
1335
+
1336
+ /**
1337
+ * Programmatically trigger comment submission for a composer with the given targetComposerElementId
1338
+ * @param request SubmitCommentRequest containing targetComposerElementId
1339
+ */
1340
+ public submitComment: (request: SubmitCommentRequest) => void;
1341
+
1342
+ /**
1343
+ * Programmatically clear the composer state for the given targetComposerElementId
1344
+ * @param request ClearComposerRequest containing targetComposerElementId
1345
+ */
1346
+ public clearComposer: (request: ClearComposerRequest) => void;
1347
+
1348
+ /**
1349
+ * Get the current composer data for a given targetComposerElementId
1350
+ * Returns the same data as COMPOSER_TEXT_CHANGE event but as a one-time fetch
1351
+ * @param request GetComposerDataRequest containing targetComposerElementId
1352
+ * @returns The composer data or null if not found
1353
+ */
1354
+ public getComposerData: (request: GetComposerDataRequest) => ComposerTextChangeEvent | null;
1355
+
1292
1356
  constructor();
1293
1357
  /**
1294
1358
  * Subscribe to comments on the current document.
@@ -2549,11 +2613,68 @@ export declare class CommentElement {
2549
2613
  * To disable paginated contact list
2550
2614
  */
2551
2615
  private _disablePaginatedContactList;
2616
+ /**
2617
+ * To enable format options (bold, italic, underline, strikethrough)
2618
+ */
2619
+ private _enableFormatOptions;
2620
+ /**
2621
+ * To disable format options
2622
+ */
2623
+ private _disableFormatOptions;
2624
+ /**
2625
+ * To set format config to control which format options are enabled
2626
+ * @param config FormatConfig with enable flags for each format type
2627
+ */
2628
+ private _setFormatConfig;
2552
2629
 
2553
2630
  /**
2554
- * To programmatically submit a comment from a velt-comment-composer.
2555
- * Finds the composer within the element identified by referenceId and submits its content.
2556
- * @param referenceId The ID of the HTML element containing the velt-comment-composer
2631
+ * Programmatically trigger comment submission for a composer with the given targetComposerElementId
2632
+ * @param request SubmitCommentRequest containing targetComposerElementId
2557
2633
  */
2558
2634
  private _submitComment;
2635
+
2636
+ /**
2637
+ * Programmatically clear the composer state for the given targetComposerElementId
2638
+ * @param request ClearComposerRequest containing targetComposerElementId
2639
+ */
2640
+ private _clearComposer;
2641
+
2642
+ /**
2643
+ * Get the current composer data for a given targetComposerElementId
2644
+ * Returns the same data as COMPOSER_TEXT_CHANGE event but as a one-time fetch
2645
+ * @param request GetComposerDataRequest containing targetComposerElementId
2646
+ * @returns The composer data or null if not found
2647
+ */
2648
+ private _getComposerData;
2649
+
2650
+ /**
2651
+ * To enable context in page mode composer feature
2652
+ */
2653
+ private _enableContextInPageModeComposer;
2654
+
2655
+ /**
2656
+ * To disable context in page mode composer feature
2657
+ */
2658
+ private _disableContextInPageModeComposer;
2659
+
2660
+ /**
2661
+ * To clear page mode composer context
2662
+ */
2663
+ private _clearPageModeComposerContext;
2664
+
2665
+ /**
2666
+ * To set context in page mode composer
2667
+ */
2668
+ private _setContextInPageModeComposer;
2669
+
2670
+ /**
2671
+ * To focus the page mode composer input
2672
+ */
2673
+ private _focusPageModeComposer;
2674
+
2675
+ /**
2676
+ * To set assign to type for comment dialog
2677
+ * @param type 'dropdown' | 'checkbox'
2678
+ */
2679
+ private _setAssignToType;
2559
2680
  }
@@ -68,6 +68,16 @@ export declare class NotificationElement {
68
68
  */
69
69
  getSettings: () => Observable<NotificationSettingsConfig | null>;
70
70
 
71
+ /**
72
+ * To enable settings config by organization
73
+ */
74
+ enableSettingsAtOrganizationLevel: () => void;
75
+
76
+ /**
77
+ * To disable settings config by organization
78
+ */
79
+ disableSettingsAtOrganizationLevel: () => void;
80
+
71
81
  /**
72
82
  * To mute all notifications
73
83
  */
@@ -200,6 +210,16 @@ export declare class NotificationElement {
200
210
  */
201
211
  private _disableSettings;
202
212
 
213
+ /**
214
+ * To enable settings config by organization
215
+ */
216
+ private _enableSettingsAtOrganizationLevel;
217
+
218
+ /**
219
+ * To disable settings config by organization
220
+ */
221
+ private _disableSettingsAtOrganizationLevel;
222
+
203
223
  /**
204
224
  * To enable self notifications
205
225
  */
@@ -59,6 +59,8 @@ export declare const CommentEventTypes: {
59
59
  readonly LINK_CLICKED: "linkClicked";
60
60
  readonly COMMENT_PIN_CLICKED: "commentPinClicked";
61
61
  readonly COMMENT_BUBBLE_CLICKED: "commentBubbleClicked";
62
+ readonly COMMENT_TOOL_CLICK: "commentToolClick";
63
+ readonly SIDEBAR_BUTTON_CLICK: "sidebarButtonClick";
62
64
  };
63
65
  export declare const RecorderEventTypes: {
64
66
  readonly TRANSCRIPTION_DONE: "transcriptionDone";
@@ -187,6 +189,7 @@ export declare enum AnalyticsFeatures {
187
189
  COMMENT_SIDEBAR = "commentSidebar"
188
190
  }
189
191
  export type FeatureType = 'area' | 'arrow' | 'audioHuddle' | 'comment' | 'cursor' | 'huddle' | 'liveStateSync' | 'presence' | 'recorder' | 'rewriter' | 'tag' | 'liveSelection' | 'notification' | 'reaction' | 'multiThread';
192
+ export type AssignToType = 'dropdown' | 'checkbox';
190
193
  export declare enum DeviceType {
191
194
  DESKTOP = "Desktop",
192
195
  MOBILE = "Mobile",
@@ -279,10 +282,10 @@ export type OverlayOriginY = 'top' | 'center' | 'bottom';
279
282
  export type OverlayOriginX = 'start' | 'center' | 'end';
280
283
  export type SubtitlesMode = 'floating' | 'embed';
281
284
  export type RecorderVariant = 'default' | 'embed';
282
- export type ReactionPinType = 'timeline' | 'comment';
285
+ export type ReactionPinType = 'timeline' | 'comment' | 'standalone';
283
286
  export type SidebarPosition = 'left' | 'right';
284
287
  export type SidebarSortingCriteria = 'date' | 'unread' | null;
285
- export type SidebarFilterCriteria = 'all' | 'read' | 'unread' | 'resolved' | 'open' | 'reset' | null;
288
+ export type SidebarFilterCriteria = 'all' | 'read' | 'unread' | 'resolved' | 'open' | 'assignedToMe' | 'reset' | null;
286
289
  export type SidebarFilterSearchType = 'people' | 'assigned' | 'tagged' | 'involved' | 'pages' | 'documents' | 'statuses' | 'priorities' | 'categories' | 'versions' | string;
287
290
  export type InlineSortingCriteria = 'createdFirst' | 'createdLast' | 'updatedFirst' | 'updatedLast';
288
291
  export type NotificationPanelMode = 'popover' | 'sidebar';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veltdev/types",
3
- "version": "5.0.0-beta.8",
3
+ "version": "5.0.0",
4
4
  "description": "Velt is an SDK to add collaborative features to your product within minutes. Example: Comments like Figma, Frame.io, Google docs or sheets, Recording like Loom, Huddles like Slack and much more.",
5
5
  "homepage": "https://velt.dev",
6
6
  "keywords": [