@veltdev/react 3.0.35 → 3.0.36
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.
- package/cjs/index.js +59 -5
- package/cjs/index.js.map +1 -1
- package/cjs/types/components/SnippylyCommentsSidebar/SnippylyCommentsSidebar.d.ts +2 -0
- package/cjs/types/components/VeltCommentThread/VeltCommentThread.d.ts +4 -0
- package/cjs/types/components/VeltCommentsSidebarWireframe/VeltCommentsSidebarActionButton/VeltCommentsSidebarActionButton.d.ts +8 -0
- package/cjs/types/components/VeltCommentsSidebarWireframe/VeltCommentsSidebarActionButton/index.d.ts +1 -0
- package/cjs/types/components/VeltCommentsSidebarWireframe/VeltCommentsSidebarWireframe.d.ts +2 -0
- package/cjs/types/constants.d.ts +1 -1
- package/cjs/types/hooks/CommentElement.d.ts +4 -1
- package/cjs/types/hooks/index.d.ts +1 -1
- package/esm/index.js +57 -6
- package/esm/index.js.map +1 -1
- package/esm/types/components/SnippylyCommentsSidebar/SnippylyCommentsSidebar.d.ts +2 -0
- package/esm/types/components/VeltCommentThread/VeltCommentThread.d.ts +4 -0
- package/esm/types/components/VeltCommentsSidebarWireframe/VeltCommentsSidebarActionButton/VeltCommentsSidebarActionButton.d.ts +8 -0
- package/esm/types/components/VeltCommentsSidebarWireframe/VeltCommentsSidebarActionButton/index.d.ts +1 -0
- package/esm/types/components/VeltCommentsSidebarWireframe/VeltCommentsSidebarWireframe.d.ts +2 -0
- package/esm/types/constants.d.ts +1 -1
- package/esm/types/hooks/CommentElement.d.ts +4 -1
- package/esm/types/hooks/index.d.ts +1 -1
- package/index.d.ts +18 -2
- package/package.json +1 -1
|
@@ -35,6 +35,7 @@ export interface IVeltCommentsSidebarProps {
|
|
|
35
35
|
*/
|
|
36
36
|
enableUrlNavigation?: boolean;
|
|
37
37
|
urlNavigation?: boolean;
|
|
38
|
+
queryParamsComments?: boolean;
|
|
38
39
|
pageMode?: boolean;
|
|
39
40
|
currentLocationSuffix?: boolean;
|
|
40
41
|
variant?: string;
|
|
@@ -60,6 +61,7 @@ export interface IVeltCommentsSidebarProps {
|
|
|
60
61
|
darkMode?: boolean;
|
|
61
62
|
position?: "right" | "left";
|
|
62
63
|
filterPanelLayout?: 'menu' | 'bottomSheet';
|
|
64
|
+
customFilterMode?: boolean;
|
|
63
65
|
}
|
|
64
66
|
declare const SnippylyCommentsSidebar: React.FC<IVeltCommentsSidebarProps>;
|
|
65
67
|
export default SnippylyCommentsSidebar;
|
|
@@ -2,6 +2,10 @@ import React from 'react';
|
|
|
2
2
|
export interface IVeltCommentThreadProps {
|
|
3
3
|
annotationId?: string;
|
|
4
4
|
onCommentClick?: Function;
|
|
5
|
+
darkMode?: boolean;
|
|
6
|
+
variant?: string;
|
|
7
|
+
dialogVariant?: string;
|
|
8
|
+
shadowDom?: boolean;
|
|
5
9
|
}
|
|
6
10
|
declare const VeltCommentThread: React.FC<IVeltCommentThreadProps>;
|
|
7
11
|
export default VeltCommentThread;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface IVeltCommentsSidebarActionButtonProps extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> {
|
|
3
|
+
variant?: string;
|
|
4
|
+
type?: 'default' | 'toggle';
|
|
5
|
+
id: string;
|
|
6
|
+
}
|
|
7
|
+
declare const VeltCommentsSidebarActionButton: React.FC<IVeltCommentsSidebarActionButtonProps>;
|
|
8
|
+
export default VeltCommentsSidebarActionButton;
|
package/esm/types/components/VeltCommentsSidebarWireframe/VeltCommentsSidebarActionButton/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from "./VeltCommentsSidebarActionButton";
|
|
@@ -14,6 +14,7 @@ import { IVeltCommentsSidebarSearchProps } from './VeltCommentsSidebarSearch/Vel
|
|
|
14
14
|
import { IVeltCommentsSidebarSkeletonProps } from './VeltCommentsSidebarSkeleton/VeltCommentsSidebarSkeleton';
|
|
15
15
|
import { IVeltCommentsSidebarStatus } from './VeltCommentsSidebarStatus/VeltCommentsSidebarStatus';
|
|
16
16
|
import { IVeltCommentsSidebarResetFilterButtonWireframeProps } from './VeltCommentsSidebarResetFilterButtonWireframe/VeltCommentsSidebarResetFilterButtonWireframe';
|
|
17
|
+
import { IVeltCommentsSidebarActionButtonProps } from './VeltCommentsSidebarActionButton/VeltCommentsSidebarActionButton';
|
|
17
18
|
export interface IVeltCommentsSidebarWireframeProps extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> {
|
|
18
19
|
variant?: string;
|
|
19
20
|
}
|
|
@@ -33,5 +34,6 @@ declare const VeltCommentsSidebarWireframe: React.FC<IVeltCommentsSidebarWirefra
|
|
|
33
34
|
LocationFilterDropdown: IVeltCommentsSidebarLocationFilterDropdown;
|
|
34
35
|
MinimalActionsDropdown: IVeltCommentsSidebarMinimalActionsDropdownWireframe;
|
|
35
36
|
ResetFilterButton: React.FC<IVeltCommentsSidebarResetFilterButtonWireframeProps>;
|
|
37
|
+
ActionButton: React.FC<IVeltCommentsSidebarActionButtonProps>;
|
|
36
38
|
};
|
|
37
39
|
export default VeltCommentsSidebarWireframe;
|
package/esm/types/constants.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CommentAnnotation, CommentElement, Location, CommentSelectionChangeData } from "@veltdev/types";
|
|
1
|
+
import { CommentAnnotation, CommentElement, Location, CommentSelectionChangeData, CommentSidebarDataConfig } from "@veltdev/types";
|
|
2
2
|
export declare function useCommentUtils(): CommentElement | undefined;
|
|
3
3
|
export declare function useCommentAnnotations(documentId?: string, location?: Location): CommentAnnotation[] | null | undefined;
|
|
4
4
|
export declare function useUnreadCommentCountByAnnotationId(annotationId: string): {
|
|
@@ -28,3 +28,6 @@ export declare function useCommentAnnotationById(config: {
|
|
|
28
28
|
annotationId: string;
|
|
29
29
|
documentId?: string;
|
|
30
30
|
}): CommentAnnotation | null | undefined;
|
|
31
|
+
export declare function useCommentSidebarActionButtonClick(): CommentSidebarDataConfig | null;
|
|
32
|
+
export declare function useCommentSidebarInit(): CommentSidebarDataConfig | null;
|
|
33
|
+
export declare function useCommentSidebarData(): CommentSidebarDataConfig | null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { useSetLocation, useSetDocument, useSetDocumentId, useUnsetDocumentId, useIdentify, useClient, useVeltInitState, } from './Client';
|
|
2
|
-
export { useCommentUtils, useCommentAnnotations, useCommentAddHandler, useCommentModeState, useCommentUpdateHandler, useCommentDialogSidebarClickHandler, useCommentSelectionChangeHandler, useUnreadCommentCountByAnnotationId, useUnreadCommentAnnotationCountOnCurrentDocument, useUnreadCommentCountOnCurrentDocument, useUnreadCommentAnnotationCountByLocationId, useUnreadCommentCountByLocationId, useCommentCopyLinkHandler, useCommentAnnotationById } from './CommentElement';
|
|
2
|
+
export { useCommentUtils, useCommentAnnotations, useCommentAddHandler, useCommentModeState, useCommentUpdateHandler, useCommentDialogSidebarClickHandler, useCommentSelectionChangeHandler, useUnreadCommentCountByAnnotationId, useUnreadCommentAnnotationCountOnCurrentDocument, useUnreadCommentCountOnCurrentDocument, useUnreadCommentAnnotationCountByLocationId, useUnreadCommentCountByLocationId, useCommentCopyLinkHandler, useCommentAnnotationById, useCommentSidebarActionButtonClick, useCommentSidebarInit, useCommentSidebarData, } from './CommentElement';
|
|
3
3
|
export { useCursorUtils, useCursorUsers, } from './CursorElement';
|
|
4
4
|
export { useHuddleUtils, } from './HuddleElement';
|
|
5
5
|
export { useLiveStateSyncUtils, useLiveStateData, useSetLiveStateData, useUserEditorState, useEditor, useEditorAccessTimer, useEditorAccessRequestHandler, useServerConnectionStateChangeHandler, useLiveState, } from './LiveStateSyncElement';
|
package/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { Config, Velt, ReactionMap, AutocompleteItem, User, Options, DocumentMetadata, Location as Location$1, CommentElement, CommentAnnotation, CommentSelectionChangeData, CursorElement, CursorUser, LiveStateSyncElement, UserEditorAccess, EditorAccessTimer, ServerConnectionState, PresenceElement, PresenceUser, RecorderElement, RewriterElement, SelectionElement, TagElement, TagAnnotation, ViewsElement, ViewsByUser, ViewsByDate, NotificationElement, Notification, AutocompleteElement, AutocompleteChipData, ContactElement, UserContactSelectedPayload } from '@veltdev/types';
|
|
3
|
+
import { Config, Velt, ReactionMap, AutocompleteItem, User, Options, DocumentMetadata, Location as Location$1, CommentElement, CommentAnnotation, CommentSelectionChangeData, CommentSidebarDataConfig, CursorElement, CursorUser, LiveStateSyncElement, UserEditorAccess, EditorAccessTimer, ServerConnectionState, PresenceElement, PresenceUser, RecorderElement, RewriterElement, SelectionElement, TagElement, TagAnnotation, ViewsElement, ViewsByUser, ViewsByDate, NotificationElement, Notification, AutocompleteElement, AutocompleteChipData, ContactElement, UserContactSelectedPayload } from '@veltdev/types';
|
|
4
4
|
|
|
5
5
|
interface IVeltProps extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> {
|
|
6
6
|
apiKey: string;
|
|
@@ -206,6 +206,7 @@ interface IVeltCommentsSidebarProps {
|
|
|
206
206
|
*/
|
|
207
207
|
enableUrlNavigation?: boolean;
|
|
208
208
|
urlNavigation?: boolean;
|
|
209
|
+
queryParamsComments?: boolean;
|
|
209
210
|
pageMode?: boolean;
|
|
210
211
|
currentLocationSuffix?: boolean;
|
|
211
212
|
variant?: string;
|
|
@@ -231,6 +232,7 @@ interface IVeltCommentsSidebarProps {
|
|
|
231
232
|
darkMode?: boolean;
|
|
232
233
|
position?: "right" | "left";
|
|
233
234
|
filterPanelLayout?: 'menu' | 'bottomSheet';
|
|
235
|
+
customFilterMode?: boolean;
|
|
234
236
|
}
|
|
235
237
|
declare const SnippylyCommentsSidebar: React.FC<IVeltCommentsSidebarProps>;
|
|
236
238
|
|
|
@@ -497,6 +499,10 @@ declare const VeltViewAnalytics: React.FC<IVeltViewAnalyticsProps>;
|
|
|
497
499
|
interface IVeltCommentThreadProps {
|
|
498
500
|
annotationId?: string;
|
|
499
501
|
onCommentClick?: Function;
|
|
502
|
+
darkMode?: boolean;
|
|
503
|
+
variant?: string;
|
|
504
|
+
dialogVariant?: string;
|
|
505
|
+
shadowDom?: boolean;
|
|
500
506
|
}
|
|
501
507
|
declare const VeltCommentThread: React.FC<IVeltCommentThreadProps>;
|
|
502
508
|
|
|
@@ -1736,6 +1742,12 @@ interface IVeltCommentsSidebarResetFilterButtonWireframeProps extends React.Deta
|
|
|
1736
1742
|
variant?: string;
|
|
1737
1743
|
}
|
|
1738
1744
|
|
|
1745
|
+
interface IVeltCommentsSidebarActionButtonProps extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> {
|
|
1746
|
+
variant?: string;
|
|
1747
|
+
type?: 'default' | 'toggle';
|
|
1748
|
+
id: string;
|
|
1749
|
+
}
|
|
1750
|
+
|
|
1739
1751
|
interface IVeltCommentsSidebarWireframeProps extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> {
|
|
1740
1752
|
variant?: string;
|
|
1741
1753
|
}
|
|
@@ -1755,6 +1767,7 @@ declare const VeltCommentsSidebarWireframe: React.FC<IVeltCommentsSidebarWirefra
|
|
|
1755
1767
|
LocationFilterDropdown: IVeltCommentsSidebarLocationFilterDropdown;
|
|
1756
1768
|
MinimalActionsDropdown: IVeltCommentsSidebarMinimalActionsDropdownWireframe;
|
|
1757
1769
|
ResetFilterButton: React.FC<IVeltCommentsSidebarResetFilterButtonWireframeProps>;
|
|
1770
|
+
ActionButton: React.FC<IVeltCommentsSidebarActionButtonProps>;
|
|
1758
1771
|
};
|
|
1759
1772
|
|
|
1760
1773
|
interface IVeltCommentPinGhostCommentIndicatorProps extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement> {
|
|
@@ -2618,6 +2631,9 @@ declare function useCommentAnnotationById(config: {
|
|
|
2618
2631
|
annotationId: string;
|
|
2619
2632
|
documentId?: string;
|
|
2620
2633
|
}): CommentAnnotation | null | undefined;
|
|
2634
|
+
declare function useCommentSidebarActionButtonClick(): CommentSidebarDataConfig | null;
|
|
2635
|
+
declare function useCommentSidebarInit(): CommentSidebarDataConfig | null;
|
|
2636
|
+
declare function useCommentSidebarData(): CommentSidebarDataConfig | null;
|
|
2621
2637
|
|
|
2622
2638
|
declare function useCursorUtils(): CursorElement | undefined;
|
|
2623
2639
|
declare function useCursorUsers(): CursorUser[] | null;
|
|
@@ -2685,4 +2701,4 @@ declare const createLiveStateMiddleware: (config?: LiveStateMiddlewareConfig) =>
|
|
|
2685
2701
|
updateLiveStateDataId: (newId?: string) => void;
|
|
2686
2702
|
};
|
|
2687
2703
|
|
|
2688
|
-
export { SnippylyArrowTool as VeltArrowTool, SnippylyArrows as VeltArrows, VeltAutocomplete, VeltAutocompleteChipTooltipWireframe, VeltAutocompleteOptionWireframe, VeltCanvasComment, VeltChartComment, SnippylyCommentBubble as VeltCommentBubble, VeltCommentBubbleWireframe, VeltCommentComposer, VeltCommentComposerWireframe, VeltCommentDialogOptionsDropdownContentWireframe, VeltCommentDialogOptionsDropdownTriggerWireframe, VeltCommentDialogPriorityDropdownContentWireframe, VeltCommentDialogPriorityDropdownTriggerWireframe, VeltCommentDialogStatusDropdownContentWireframe, VeltCommentDialogStatusDropdownTriggerWireframe, VeltCommentDialogWireframe, VeltCommentPin, VeltCommentPinWireframe, VeltCommentPlayerTimeline, VeltCommentThread, SnippylyCommentTool as VeltCommentTool, VeltCommentToolWireframe, SnippylyComments as VeltComments, VeltCommentsMinimap, SnippylyCommentsSidebar as VeltCommentsSidebar, VeltCommentsSidebarButton, VeltCommentsSidebarStatusDropdownWireframe, VeltCommentsSidebarWireframe, VeltConfirmDialogWireframe, SnippylyCursor as VeltCursor, VeltData, VeltHighChartComments, SnippylyHuddle as VeltHuddle, SnippylyHuddleTool as VeltHuddleTool, VeltIf, VeltInlineCommentsSection, VeltInlineCommentsSectionWireframe, VeltInlineReactionsSection, VeltInlineReactionsSectionWireframe, VeltMultiThreadCommentDialogWireframe, VeltNivoChartComments, VeltNotificationsHistoryPanel, VeltNotificationsPanel, VeltNotificationsPanelWireframe, VeltNotificationsTool, VeltNotificationsToolWireframe, VeltPersistentCommentModeWireframe, SnippylyPresence as VeltPresence, SnippylyProvider as VeltProvider, VeltReactionPinTooltipWireframe, VeltReactionPinWireframe, VeltReactionTool, VeltReactionToolWireframe, VeltReactionsPanelWireframe, SnippylyRecorderControlPanel as VeltRecorderControlPanel, SnippylyRecorderNotes as VeltRecorderNotes, SnippylyRecorderPlayer as VeltRecorderPlayer, SnippylyRecorderTool as VeltRecorderTool, SnippylySidebarButton as VeltSidebarButton, VeltSidebarButtonWireframe, SnippylyTagTool as VeltTagTool, SnippylyTags as VeltTags, VeltTextCommentToolWireframe, VeltTextCommentToolbar as VeltTextCommentToolbarWireframe, SnippylyUserInviteTool as VeltUserInviteTool, SnippylyUserRequestTool as VeltUserRequestTool, VeltUserSelectorDropdown as VeltUserSelectorDropdownWireframe, VeltVideoPlayer, VeltViewAnalytics, VeltWireframe, createLiveStateMiddleware, useAIRewriterUtils, useAutocompleteChipClick, useAutocompleteUtils, useClient, useCommentAddHandler, useCommentAnnotationById, useCommentAnnotations, useCommentCopyLinkHandler, useCommentDialogSidebarClickHandler, useCommentModeState, useCommentSelectionChangeHandler, useCommentUpdateHandler, useCommentUtils, useContactSelected, useContactUtils, useCursorUsers, useCursorUtils, useEditor, useEditorAccessRequestHandler, useEditorAccessTimer, useHuddleUtils, useIdentify, useLiveSelectionUtils, useLiveState, useLiveStateData, useLiveStateSyncUtils, useNotificationUtils, useNotificationsData, usePresenceUsers, usePresenceUtils, useRecorderAddHandler, useRecorderUtils, useServerConnectionStateChangeHandler, useSetDocument, useSetDocumentId, useSetLiveStateData, useSetLocation, useTagAnnotations, useTagUtils, useUniqueViewsByDate, useUniqueViewsByUser, useUnreadCommentAnnotationCountByLocationId, useUnreadCommentAnnotationCountOnCurrentDocument, useUnreadCommentCountByAnnotationId, useUnreadCommentCountByLocationId, useUnreadCommentCountOnCurrentDocument, useUnreadNotificationsCount, useUnsetDocumentId, useUserEditorState, useVeltClient, useVeltInitState, useViewsUtils };
|
|
2704
|
+
export { SnippylyArrowTool as VeltArrowTool, SnippylyArrows as VeltArrows, VeltAutocomplete, VeltAutocompleteChipTooltipWireframe, VeltAutocompleteOptionWireframe, VeltCanvasComment, VeltChartComment, SnippylyCommentBubble as VeltCommentBubble, VeltCommentBubbleWireframe, VeltCommentComposer, VeltCommentComposerWireframe, VeltCommentDialogOptionsDropdownContentWireframe, VeltCommentDialogOptionsDropdownTriggerWireframe, VeltCommentDialogPriorityDropdownContentWireframe, VeltCommentDialogPriorityDropdownTriggerWireframe, VeltCommentDialogStatusDropdownContentWireframe, VeltCommentDialogStatusDropdownTriggerWireframe, VeltCommentDialogWireframe, VeltCommentPin, VeltCommentPinWireframe, VeltCommentPlayerTimeline, VeltCommentThread, SnippylyCommentTool as VeltCommentTool, VeltCommentToolWireframe, SnippylyComments as VeltComments, VeltCommentsMinimap, SnippylyCommentsSidebar as VeltCommentsSidebar, VeltCommentsSidebarButton, VeltCommentsSidebarStatusDropdownWireframe, VeltCommentsSidebarWireframe, VeltConfirmDialogWireframe, SnippylyCursor as VeltCursor, VeltData, VeltHighChartComments, SnippylyHuddle as VeltHuddle, SnippylyHuddleTool as VeltHuddleTool, VeltIf, VeltInlineCommentsSection, VeltInlineCommentsSectionWireframe, VeltInlineReactionsSection, VeltInlineReactionsSectionWireframe, VeltMultiThreadCommentDialogWireframe, VeltNivoChartComments, VeltNotificationsHistoryPanel, VeltNotificationsPanel, VeltNotificationsPanelWireframe, VeltNotificationsTool, VeltNotificationsToolWireframe, VeltPersistentCommentModeWireframe, SnippylyPresence as VeltPresence, SnippylyProvider as VeltProvider, VeltReactionPinTooltipWireframe, VeltReactionPinWireframe, VeltReactionTool, VeltReactionToolWireframe, VeltReactionsPanelWireframe, SnippylyRecorderControlPanel as VeltRecorderControlPanel, SnippylyRecorderNotes as VeltRecorderNotes, SnippylyRecorderPlayer as VeltRecorderPlayer, SnippylyRecorderTool as VeltRecorderTool, SnippylySidebarButton as VeltSidebarButton, VeltSidebarButtonWireframe, SnippylyTagTool as VeltTagTool, SnippylyTags as VeltTags, VeltTextCommentToolWireframe, VeltTextCommentToolbar as VeltTextCommentToolbarWireframe, SnippylyUserInviteTool as VeltUserInviteTool, SnippylyUserRequestTool as VeltUserRequestTool, VeltUserSelectorDropdown as VeltUserSelectorDropdownWireframe, VeltVideoPlayer, VeltViewAnalytics, VeltWireframe, createLiveStateMiddleware, useAIRewriterUtils, useAutocompleteChipClick, useAutocompleteUtils, useClient, useCommentAddHandler, useCommentAnnotationById, useCommentAnnotations, useCommentCopyLinkHandler, useCommentDialogSidebarClickHandler, useCommentModeState, useCommentSelectionChangeHandler, useCommentSidebarActionButtonClick, useCommentSidebarData, useCommentSidebarInit, useCommentUpdateHandler, useCommentUtils, useContactSelected, useContactUtils, useCursorUsers, useCursorUtils, useEditor, useEditorAccessRequestHandler, useEditorAccessTimer, useHuddleUtils, useIdentify, useLiveSelectionUtils, useLiveState, useLiveStateData, useLiveStateSyncUtils, useNotificationUtils, useNotificationsData, usePresenceUsers, usePresenceUtils, useRecorderAddHandler, useRecorderUtils, useServerConnectionStateChangeHandler, useSetDocument, useSetDocumentId, useSetLiveStateData, useSetLocation, useTagAnnotations, useTagUtils, useUniqueViewsByDate, useUniqueViewsByUser, useUnreadCommentAnnotationCountByLocationId, useUnreadCommentAnnotationCountOnCurrentDocument, useUnreadCommentCountByAnnotationId, useUnreadCommentCountByLocationId, useUnreadCommentCountOnCurrentDocument, useUnreadNotificationsCount, useUnsetDocumentId, useUserEditorState, useVeltClient, useVeltInitState, useViewsUtils };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veltdev/react",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.36",
|
|
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": [
|