@bigbinary/neeto-molecules 1.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.
Files changed (45) hide show
  1. package/README.md +36 -0
  2. package/dist/BrowserSupport.cjs.js +1468 -0
  3. package/dist/BrowserSupport.js +1462 -0
  4. package/dist/Columns.cjs.js +183 -0
  5. package/dist/Columns.js +177 -0
  6. package/dist/CustomDomain.cjs.js +758 -0
  7. package/dist/CustomDomain.js +732 -0
  8. package/dist/DateRangeFilter.cjs.js +214 -0
  9. package/dist/DateRangeFilter.js +207 -0
  10. package/dist/EmailPreview.cjs.js +32409 -0
  11. package/dist/EmailPreview.js +32383 -0
  12. package/dist/ErrorPage.cjs.js +135 -0
  13. package/dist/ErrorPage.js +111 -0
  14. package/dist/IpRestriction.cjs.js +3578 -0
  15. package/dist/IpRestriction.js +3552 -0
  16. package/dist/KeyboardShortcuts.cjs.js +2212 -0
  17. package/dist/KeyboardShortcuts.js +2205 -0
  18. package/dist/LoginPage.cjs.js +598 -0
  19. package/dist/LoginPage.js +573 -0
  20. package/dist/NeetoWidget.cjs.js +86969 -0
  21. package/dist/NeetoWidget.js +86943 -0
  22. package/dist/PublishBlock.cjs.js +188 -0
  23. package/dist/PublishBlock.js +182 -0
  24. package/dist/Schedule.cjs.js +949 -0
  25. package/dist/Schedule.js +918 -0
  26. package/dist/ShareViaLink.cjs.js +1247 -0
  27. package/dist/ShareViaLink.js +1241 -0
  28. package/dist/Sidebar.cjs.js +222 -0
  29. package/dist/Sidebar.js +195 -0
  30. package/package.json +149 -0
  31. package/src/translations/en.json +244 -0
  32. package/types/BrowserSupport.d.ts +20 -0
  33. package/types/Columns.d.ts +22 -0
  34. package/types/CustomDomain.d.ts +7 -0
  35. package/types/DateRangeFilter.d.ts +17 -0
  36. package/types/EmailPreview.d.ts +11 -0
  37. package/types/ErrorPage.d.ts +8 -0
  38. package/types/IpRestriction.d.ts +5 -0
  39. package/types/KeyboardShortcuts.d.ts +21 -0
  40. package/types/LoginPage.d.ts +12 -0
  41. package/types/NeetoWidget.d.ts +17 -0
  42. package/types/PublishBlock.d.ts +20 -0
  43. package/types/Schedule.d.ts +15 -0
  44. package/types/ShareViaLink.d.ts +17 -0
  45. package/types/Sidebar.d.ts +28 -0
@@ -0,0 +1,244 @@
1
+ {
2
+ "neetoMolecules": {
3
+ "errorPage": {
4
+ "cantBeFound": "The page you're looking for <br /> can't be found.",
5
+ "unauthorized": "You don't have permissions <br /> to access this page.",
6
+ "internalServerError": "The server encountered an error and <br /> could not complete your request.",
7
+ "backToHome": "Back to home",
8
+ "title": {
9
+ "cantBeFound": "Page not found",
10
+ "unauthorized": "Unauthorized",
11
+ "internalServerError": "Internal server error"
12
+ }
13
+ },
14
+ "sidebar": {
15
+ "myProfile": "My profile",
16
+ "myOrganization": "My organization",
17
+ "logout": "Log out",
18
+ "help": "Help",
19
+ "livechat": "Live chat",
20
+ "keyboardShortcuts": "Keyboard shortcuts"
21
+ },
22
+ "common": {
23
+ "actions": {
24
+ "cancel": "Cancel",
25
+ "save": "Save",
26
+ "edit": "Edit",
27
+ "delete": "Delete",
28
+ "add": "Add {{entity}}",
29
+ "editTitle": "Edit {{entity}}",
30
+ "addNew": "Add new {{entity}}",
31
+ "reset": "Reset",
32
+ "saveChanges": "Save changes",
33
+ "publish": "Publish",
34
+ "draft": "Draft"
35
+ },
36
+ "andSentence": "{{first}} {{and}} {{last}}",
37
+ "and": "and",
38
+ "name": "name",
39
+ "value": "value",
40
+ "search": "Search {{entity}}",
41
+ "notFound": {
42
+ "title": "There are no {{entity}} to show."
43
+ },
44
+ "status": "status",
45
+ "deleteAlert": {
46
+ "title": "Delete {{entity}}?",
47
+ "yes": "Yes, delete",
48
+ "no": "No, cancel"
49
+ }
50
+ },
51
+ "widget": {
52
+ "installation": {
53
+ "snippet": {
54
+ "copied": "Copied to clipboard!",
55
+ "copy": "Copy",
56
+ "sendViaEmail": "Send via email",
57
+ "disabledError": "Please enable atleast 1 widget."
58
+ },
59
+ "instructions": {
60
+ "placement": "Place the embed code in your HTML file. This will embed <fontBold>{{selectedWidgets}}</fontBold> in your website.",
61
+ "userIdentity": "Specify user identity information. This information is used to classify neetoChat conversations and neetoReplay sessions.",
62
+ "sessionContext": "Save contextual data for the neetoReplay sessions. Sessions can be filtered by this data."
63
+ }
64
+ },
65
+ "email": {
66
+ "title": "Widget installation instructions",
67
+ "fields": {
68
+ "emails": {
69
+ "label": "Emails",
70
+ "placeholder": "Enter recipient email",
71
+ "invalidError": "Please enter valid email addresses."
72
+ },
73
+ "subject": {
74
+ "label": "Subject",
75
+ "values": {
76
+ "embedCode": "Widget installation instructions",
77
+ "userIdentity": "neetoWidget user identity object to specify user details",
78
+ "sessionContext": "neetoReplay session context object to save contextual information"
79
+ }
80
+ }
81
+ },
82
+ "body": {
83
+ "values": {
84
+ "embedCode": "<p>Hi,</p> <p>We are going to use {{selectedWidgets}}.</p> <p>Please find the code snippet for the installation of the {{selectedWidgets}} widget.</p> <p>You can find the documentation regarding this at <configureLink>{{neetoKbUrl}}</configureLink>.</p> <p>If you still need help then send an email to <mail>{{helpEmail}}</mail>.</p>",
85
+ "userIdentity": "<p>Hi,</p> <p>This is the object structure that you can use to specify the user identity for neetoWidget.</p> <p>You can find the documentation at <configureLink>{{userIdentityKbUrl}}</configureLink>.</p>",
86
+ "sessionContext": "<p>Hi,</p> <p>This is the object structure that you can use to specify the contextual values for neetoReplay sessions.</p> <p>You can find the documentation at <configureLink>{{sessionContextKbUrl}}</configureLink>.</p>"
87
+ }
88
+ },
89
+ "actions": {
90
+ "send": "Send",
91
+ "cancel": "Cancel"
92
+ }
93
+ }
94
+ },
95
+ "customDomain": {
96
+ "customDomain_one": "Custom domain",
97
+ "customDomain_other": "Custom domains",
98
+ "customDomainWithCount_one": "{{count}} custom domain",
99
+ "customDomainWithCount_other": "{{count}} custom domains",
100
+ "placeholder": "Type domain here...",
101
+ "label": "Enter custom domain",
102
+ "validation": {
103
+ "buttonLabel": {
104
+ "txt": "Validate TXT record entries",
105
+ "cnameAdded": "I’ve added CNAME records",
106
+ "cnameCheck": "Validate CNAME record"
107
+ },
108
+ "desc": "Please add following {{record}} record in your domain’s DNS dashboard and then request for {{record}} validation.",
109
+ "record": "{{record}} record {{type}}"
110
+ },
111
+ "status": {
112
+ "txt": {
113
+ "active": "TXT record validated",
114
+ "pendingCnameValidation": "TXT record validated",
115
+ "pendingTxtValidation": "TXT record validation pending"
116
+ },
117
+ "cname": {
118
+ "active": "CNAME record validated",
119
+ "pendingCnameValidation": "CNAME record validation pending"
120
+ },
121
+ "failed": "Failed"
122
+ },
123
+ "messageBlock": {
124
+ "dnsStatus": "<p>Typically, it will take 2 hours to 24 hours for the new custom domain to start working.</p><br><p> An email will be sent when the custom domain starts working.</p><br>If, after 24 hours, your custom domain is still not working, then please send an email to ",
125
+ "cnameAddedTime": " You added CNAME records {{time}}"
126
+ },
127
+ "alertMessage": "You're about to delete the custom domain <strong>{{hostname}}</strong>. This action will permanently delete the domain and <strong>{{hostname}}</strong> will no longer point to your default domain.",
128
+ "formikValidation": {
129
+ "required": "Custom domain is required",
130
+ "valid": "Please add valid custom domain"
131
+ }
132
+ },
133
+ "schedule": {
134
+ "weeklyHours": "Weekly hours",
135
+ "unavailable": "Unavailable",
136
+ "startTime": "Start time",
137
+ "endTime": "End time",
138
+ "copySchedule": "Copy schedule to..",
139
+ "copyScheduleTooltip": "Copy this schedule to another day",
140
+ "addNewPeriod": "Add new period",
141
+ "days": {
142
+ "monday": "Monday",
143
+ "tuesday": "Tuesday",
144
+ "wednesday": "Wednesday",
145
+ "thursday": "Thursday",
146
+ "friday": "Friday",
147
+ "saturday": "Saturday",
148
+ "sunday": "Sunday"
149
+ },
150
+ "errors": {
151
+ "period": {
152
+ "startTime": "Start time is required",
153
+ "endTime": "End time is required",
154
+ "isBehind": "Period's end time must not be before the start time",
155
+ "overlap": "This period is overlapping with ({{ start }}-{{ end }})",
156
+ "sameTime": "Periods start and end time cannot be same"
157
+ }
158
+ }
159
+ },
160
+ "dateRangeFilter": {
161
+ "timePeriodOptions": {
162
+ "last7Days": "Last 7 days",
163
+ "last30Days": "Last 30 days",
164
+ "last24Hours": "Last 24 hours",
165
+ "thisMonth": "This month",
166
+ "lastMonth": "Last month",
167
+ "thisQuarter": "This quarter",
168
+ "lastQuarter": "Last quarter",
169
+ "thisWeek": "This week",
170
+ "lastWeek": "Last week",
171
+ "allTime": "All time",
172
+ "customDuration": "Custom duration"
173
+ }
174
+ },
175
+ "browserSupport": {
176
+ "unsupportedBrowserVersion": "You are using {{browserName}} {{browserVersion}}. neeto requires {{browserName}} {{requiredMinBrowserVersion}} or later to perform reliably. <downloadLink></downloadLink><contactUs></contactUs>",
177
+ "unsupportedBrowser": "You are using {{browserName}} {{browserVersion}}. neeto requires a modern browser to perform reliably. <contactUs></contactUs>",
178
+ "downloadLink": {
179
+ "main": "Please <button></button> the latest browser.",
180
+ "buttonLabel": "download and install"
181
+ },
182
+ "contactUs": {
183
+ "main": "<button></button> if you need any help.",
184
+ "buttonLabel": "Contact us"
185
+ },
186
+ "unknownBrowserMsg": "an unknown browser"
187
+ },
188
+ "ipRestriction": {
189
+ "switchLabel": "Enable IP restriction",
190
+ "description": "Restrict access to only trusted locations and networks by defining the range of allowed IP addresses",
191
+ "allowedIpRangeTitle": "Allowed IP range",
192
+ "ipStart": "IP start",
193
+ "ipEnd": "IP end",
194
+ "actions": "Actions",
195
+ "allowedIpRangeConfirmation": "This can't be undone. Confirm deletion of IP range {{ipStart}} to {{ipEnd}}",
196
+ "validations": {
197
+ "invalidIp": "Invalid IPv4 address format",
198
+ "ipEndGreaterThanIpStart": "IP end should be greater than or equal to IP start"
199
+ },
200
+ "currentIpTitle": "Your current IP is",
201
+ "currentIpDescription": "Your current IP will be added to the allowed IP range by default. You will not be able to save the IP settings without your current IP address on the list"
202
+ },
203
+ "publishBlock": {
204
+ "viewDraftVersion": "View draft version",
205
+ "deleteDraftVersion": "Delete draft version. It'll not impact the published version",
206
+ "viewPublishedVersion": "View published version"
207
+ },
208
+ "shareViaLink": {
209
+ "title": "Share via link",
210
+ "description": "Your {{entity}} is securely published and ready to use at this address.",
211
+ "copyLink": "Copy link",
212
+ "open": "Open {{entity}}",
213
+ "regenerateUrl": {
214
+ "title": "Regenerate URL",
215
+ "inputLabel": "Your current URL is given below",
216
+ "description": "Once a new URL is generated then the current URL will stop working. You will see the new URL once you click on the 'Yes, regenerate' button.",
217
+ "confirmation": "Are you sure that you want to generate a new URL?",
218
+ "submitButtonLabel": "Yes, regenerate",
219
+ "cancelButtonLabel": "No, cancel"
220
+ },
221
+ "socialMediaShare": {
222
+ "title": "Share via social media",
223
+ "qrCode": "QR code",
224
+ "qrCodeDownload": "Download QR code",
225
+ "qrCodeInfo": "Scan the QR code to open your {{entity}}. You can use the QR code anywhere after downloading it."
226
+ }
227
+ },
228
+ "keyboardShortcuts": {
229
+ "title": "Keyboard shortcuts",
230
+ "global": {
231
+ "categoryName": "GLOBAL",
232
+ "openKeyboardShortcutsPane": "Open the keyboard shortcuts pane",
233
+ "close": "Close modals, panes"
234
+ }
235
+ },
236
+ "emailPreview": {
237
+ "to": "To",
238
+ "from": "From",
239
+ "subject": "Subject",
240
+ "poweredBy": "Powered by neeto",
241
+ "logoAltText": "Logo"
242
+ }
243
+ }
244
+ }
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+
3
+ const BrowserSupport: React.FC<{
4
+ overrides?: {
5
+ Chrome?: number;
6
+ MicrosoftEdge?: number;
7
+ Firefox?: number;
8
+ IE?: number;
9
+ Opera?: number;
10
+ Safari?: number;
11
+ AndroidBrowser?: number;
12
+ OperaMini?: number;
13
+ ChromeMobile?: number;
14
+ FirefoxMobile?: number;
15
+ UCBrowser?: number;
16
+ SamsungInternet?: number;
17
+ };
18
+ }>;
19
+
20
+ export default BrowserSupport;
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ import { CheckboxProps, DropdownProps, InputProps } from "@bigbinary/neetoui";
3
+
4
+ const Columns: React.FC<{
5
+ actionBlock?: React.ReactNode;
6
+ checkboxProps?: CheckboxProps;
7
+ columnData: {
8
+ title: string;
9
+ dataIndex: string;
10
+ key: string;
11
+ [key: string]: any;
12
+ }[];
13
+ dropdownProps?: DropdownProps;
14
+ fixedColumns?: string[];
15
+ isSearchable?: boolean;
16
+ localStorageKey: string;
17
+ noColumnMessage?: string;
18
+ onChange: (columns: any[]) => any[];
19
+ searchProps?: InputProps;
20
+ }>;
21
+
22
+ export default Columns;
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+
3
+ const CustomDomain: React.FC<{
4
+ headerProps: { [key: string]: any };
5
+ }>;
6
+
7
+ export default CustomDomain;
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+
3
+ import { Dayjs } from "dayjs";
4
+
5
+ interface TimePeriodType {
6
+ startDate: Dayjs;
7
+ endDate: Dayjs;
8
+ rangeType: string;
9
+ }
10
+
11
+ const DateRangeFilter: React.FC<{
12
+ timePeriod: TimePeriodType;
13
+ setTimePeriod: React.Dispatch<React.SetStateAction<TimePeriodType>>;
14
+ timePeriodOptions: TimePeriodType[];
15
+ }>;
16
+
17
+ export default DateRangeFilter;
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+
3
+ export const EmailPreview: React.FC<{
4
+ to?: string[];
5
+ subject?: string;
6
+ body?: string;
7
+ from?: string;
8
+ logo?: string;
9
+ productName?: string;
10
+ actionButtonText?: string;
11
+ }>;
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+
3
+ const ErrorPage: React.FC<{
4
+ homeUrl?: string;
5
+ status?: number;
6
+ }>;
7
+
8
+ export default ErrorPage;
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+
3
+ const IpRestriction: React.FC<{}>;
4
+
5
+ export default IpRestriction;
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+
3
+ interface Shortcut {
4
+ sequence: string;
5
+ description: string;
6
+ }
7
+ interface Category {
8
+ [index: string]: Shortcut;
9
+ }
10
+ interface ProductShortcuts {
11
+ [index: any]: Category;
12
+ }
13
+
14
+ const KeyboardShortcutsPane: {
15
+ Pane: React.FC<{
16
+ productShortcuts?: ProductShortcuts;
17
+ }>;
18
+ usePaneState(): [boolean, React.Dispatch<React.SetStateAction<boolean>>];
19
+ };
20
+
21
+ export default KeyboardShortcutsPane;
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+
3
+ const LoginPage: React.FC<{
4
+ handleSubmit: (data: {
5
+ user: {
6
+ email: string;
7
+ password: string;
8
+ };
9
+ }) => any;
10
+ }>;
11
+
12
+ export default LoginPage;
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+
3
+ type EmbedCode = React.FC<{
4
+ primaryApp?: string;
5
+ initialSelectedWidgets?: string[];
6
+ }>;
7
+
8
+ const NeetoWidget: {
9
+ EmbedCode: EmbedCode;
10
+ WIDGET_TYPES: {
11
+ changelog: "changelog";
12
+ chat: "chat";
13
+ replay: "replay";
14
+ };
15
+ };
16
+
17
+ export default NeetoWidget;
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+
3
+ import { AlertProps } from "@bigbinary/neetoui";
4
+
5
+ interface PublishBlockProps {
6
+ renderDraftButtons: (props: {
7
+ ViewDraftButton: JSX.Element;
8
+ ResetDraftButton: JSX.Element;
9
+ }) => React.ReactNode;
10
+ renderPublishButtons: (props: {
11
+ PublishButton: JSX.Element;
12
+ PublishPreviewButton: JSX.Element;
13
+ }) => React.ReactNode;
14
+ }
15
+
16
+ const PublishBlock: React.FC<PublishBlockProps> & {
17
+ Alert: React.FC<AlertProps>;
18
+ };
19
+
20
+ export default PublishBlock;
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+
3
+ const Schedule: React.FC<{
4
+ isEditing?: boolean;
5
+ setIsEditing?: React.Dispatch<React.SetStateAction<boolean>>;
6
+ handleSubmit?: Function;
7
+ handleValuesChanged?: Function;
8
+ showHeader?: boolean;
9
+ periods: {
10
+ [key: string]: Array<any>;
11
+ };
12
+ ref?: React.MutableRefObject;
13
+ }>;
14
+
15
+ export default Schedule;
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+
3
+ const ShareViaLink: React.FC<{
4
+ isRegenerating?: boolean;
5
+ enableRegenerateUrl?: boolean;
6
+ entity: {
7
+ id: string;
8
+ name: string;
9
+ };
10
+ entityName: string;
11
+ handleRegenerate?: Function;
12
+ previewUrl?: string;
13
+ socialMediaPostTitle: string;
14
+ url: string;
15
+ }>;
16
+
17
+ export default ShareViaLink;
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+
3
+ import { AvatarProps } from "@bigbinary/neetoui";
4
+ import { LinkType, NavLinkItemType } from "@bigbinary/neetoui/layouts";
5
+
6
+ const Sidebar: React.FC<{
7
+ navLinks: NavLinkItemType[];
8
+ appName: string;
9
+ profileInfoOverrides?: {
10
+ name?: string;
11
+ email?: string;
12
+ topLinks?: LinkType[];
13
+ bottomLinks?: LinkType[];
14
+ customContent?: React.ReactNode;
15
+ changelogProps?: LinkType;
16
+ helpProps?: LinkType;
17
+ "data-cy"?: string;
18
+ } & AvatarProps;
19
+ organizationInfoOverrides?: {
20
+ logo?: React.ReactNode;
21
+ name?: React.ReactNode;
22
+ subdomain?: React.ReactNode;
23
+ };
24
+ extraTopLinks?: LinkType[];
25
+ showAppSwitcher?: boolean;
26
+ }>;
27
+
28
+ export default Sidebar;