lm-web-controls 1.4.21 → 1.4.22

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,2 +1,2 @@
1
1
  "use client";
2
- import{__awaiter as e,__generator as a,__assign as t}from"../../_virtual/_tslib.js";import r,{useState as n,useEffect as i}from"react";import{Formik as l,Form as o,ErrorMessage as m}from"formik";import*as c from"yup";import{toast as s}from"react-toastify";var u=/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/,p=/^(\+91[\-\s]?)?[0]?(91)?[6789]\d{9}$/,d=c.object().shape({name:c.string().required("Please enter your name").min(3),email:c.string().required("Please enter your email").email("Please enter a valid email").matches(u,"Please enter a valid email"),mobile:c.string().required("Please enter your mobile number").matches(p,"Please enter a valid mobile number"),resume:c.mixed().required("Please upload your resume").test("fileSize","File size should be less than 5MB",function(e){return!e||e.size<=5242880}).test("fileType","Only PDF, DOC, and DOCX files are allowed",function(e){return!e||["application/pdf","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document"].includes(e.type)})});function f(c){var u=this,p=c.closeIcon,f=c.jobId,b=c.jobTitle,v=c.onSubmit,E=c.title,N=c.description,g=c.triggerAttribute,h=void 0===g?"data-career-apply":g,y=c.classNames,w=void 0===y?{}:y,C=n(!1),P=C[0],S=C[1],B=n(""),D=B[0],F=B[1],j=function(e,a){return a||e};i(function(){var e=function(e){e.target.closest("[".concat(h,"]"))&&(e.preventDefault(),e.stopPropagation(),S(!0))};return document.addEventListener("click",e),function(){document.removeEventListener("click",e)}},[h]);return P?r.createElement("div",{className:j("career-modal-wrapper",w.modal)},r.createElement("div",{className:j("career-modal-container",w.container)},r.createElement("button",{className:j("career-modal-close-button",w.closeButton),onClick:function(){S(!1),F("")},title:"Close"},p),r.createElement("h2",{className:j("career-modal-title",w.title)},E||(b?"Apply for ".concat(b):"Submit Your Application")),N&&r.createElement("p",{className:j("career-modal-description",w.description)},N),r.createElement("div",{className:"career-modal-form-wrapper"},r.createElement(l,{validationSchema:d,onSubmit:function(r,n){return e(u,[r,n],void 0,function(e,r){var n,i=r.setSubmitting,l=r.resetForm;return a(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,3,4]),n=new FormData,f&&n.append("jobId",f),n.append("name",e.name),n.append("email",e.email),n.append("mobile",e.mobile),n.append("resume",e.resume),"undefined"!=typeof window&&window.dataLayer&&window.dataLayer.push(t(t({event:f?"career_application_submit":"candidate_application_submit"},f&&{jobId:f,jobTitle:b||"Unknown Position"}),{applicantName:e.name})),[4,v(n)];case 1:return a.sent(),s.success("Application submitted successfully!"),l(),F(""),S(!1),[3,4];case 2:return a.sent(),s.error("Failed to submit application. Please try again."),[3,4];case 3:return i(!1),[7];case 4:return[2]}})})},initialValues:{name:"",email:"",mobile:"",resume:null}},function(e){var a=e.handleSubmit,t=e.handleChange,n=e.handleBlur,i=e.setFieldValue,l=e.values,c=e.isSubmitting;return r.createElement(o,{className:j("career-modal-form",w.form),noValidate:!0,onSubmit:a},r.createElement("div",{className:j("career-input-container",w.inputContainer)},r.createElement("input",{className:j("career-form-input",w.input),placeholder:"Full Name*",name:"name",onChange:t,onBlur:n,value:l.name}),r.createElement(m,{name:"name",component:"div",className:j("career-form-error-message",w.errorMessage)})),r.createElement("div",{className:j("career-input-container",w.inputContainer)},r.createElement("input",{className:j("career-form-input",w.input),placeholder:"Email*",name:"email",type:"email",onChange:t,onBlur:n,value:l.email}),r.createElement(m,{name:"email",component:"div",className:j("career-form-error-message",w.errorMessage)})),r.createElement("div",{className:j("career-input-container",w.inputContainer)},r.createElement("input",{className:j("career-form-input",w.input),placeholder:"Mobile Number*",name:"mobile",onChange:t,onBlur:n,value:l.mobile}),r.createElement(m,{name:"mobile",component:"div",className:j("career-form-error-message",w.errorMessage)})),r.createElement("div",{className:j("career-input-container",w.inputContainer)},r.createElement("label",{className:j("career-file-label",w.fileLabel)},r.createElement("input",{type:"file",name:"resume",accept:".pdf,.doc,.docx",onChange:function(e){return function(e,a){var t,r=null===(t=e.target.files)||void 0===t?void 0:t[0];r&&(a("resume",r),F(r.name))}(e,i)},onBlur:n,className:j("career-file-input",w.fileInput)}),r.createElement("span",{className:"career-file-button"},D||"Upload Resume (PDF, DOC, DOCX)*")),r.createElement(m,{name:"resume",component:"div",className:j("career-form-error-message",w.errorMessage)})),r.createElement("div",{className:"career-form-button-container"},r.createElement("button",{className:j("career-form-submit-button",w.submitButton),type:"submit",disabled:c},c?"Submitting...":"Submit Application")))})))):null}export{f as CareerApplicationForm};
2
+ import{__awaiter as e,__generator as a,__assign as t}from"../../_virtual/_tslib.js";import r,{useState as n,useEffect as i}from"react";import{Formik as l,Form as o,ErrorMessage as m}from"formik";import*as c from"yup";import{toast as s}from"react-toastify";var u=/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/,p=/^(\+91[\-\s]?)?[0]?(91)?[6789]\d{9}$/,d=c.object().shape({name:c.string().required("Please enter your name").min(3),email:c.string().required("Please enter your email").email("Please enter a valid email").matches(u,"Please enter a valid email"),mobile:c.string().required("Please enter your mobile number").matches(p,"Please enter a valid mobile number"),resume:c.mixed().required("Please upload your resume").test("fileSize","File size should be less than 5MB",function(e){return!e||e.size<=5242880}).test("fileType","Only PDF, DOC, and DOCX files are allowed",function(e){return!e||["application/pdf","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document"].includes(e.type)})});function f(c){var u=this,p=c.closeIcon,f=c.jobId,b=c.jobTitle,v=c.onSubmit,E=c.title,N=c.description,g=c.triggerAttribute,h=void 0===g?"data-career-apply":g,y=c.classNames,w=void 0===y?{}:y,C=n(!1),P=C[0],S=C[1],B=n(""),j=B[0],D=B[1],F=function(e,a){return a||e};i(function(){var e=function(e){e.target.closest("[".concat(h,"]"))&&(e.preventDefault(),e.stopPropagation(),S(!0))};return document.addEventListener("click",e),function(){document.removeEventListener("click",e)}},[h]);return P?r.createElement("div",{className:F("career-modal-wrapper",w.modal)},r.createElement("div",{className:F("career-modal-container",w.container)},r.createElement("button",{className:F("career-modal-close-button",w.closeButton),onClick:function(){S(!1),D("")},title:"Close"},p),r.createElement("h2",{className:F("career-modal-title",w.title)},E||(b?"Apply for ".concat(b):"Submit Your Application")),N&&r.createElement("p",{className:F("career-modal-description",w.description)},N),r.createElement("div",{className:"career-modal-form-wrapper"},r.createElement(l,{validationSchema:d,onSubmit:function(r,n){return e(u,[r,n],void 0,function(e,r){var n=r.setSubmitting,i=r.resetForm;return a(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,3,4]),"undefined"!=typeof window&&window.dataLayer&&window.dataLayer.push(t(t({event:f?"career_application_submit":"candidate_application_submit"},f&&{jobId:f,jobTitle:b||"Unknown Position"}),{applicantName:e.name})),[4,v(t(t({},f&&{jobId:f}),{name:e.name,email:e.email,mobile:e.mobile,resume:e.resume}))];case 1:return a.sent(),s.success("Application submitted successfully!"),i(),D(""),S(!1),[3,4];case 2:return a.sent(),s.error("Failed to submit application. Please try again."),[3,4];case 3:return n(!1),[7];case 4:return[2]}})})},initialValues:{name:"",email:"",mobile:"",resume:null}},function(e){var a=e.handleSubmit,t=e.handleChange,n=e.handleBlur,i=e.setFieldValue,l=e.values,c=e.isSubmitting;return r.createElement(o,{className:F("career-modal-form",w.form),noValidate:!0,onSubmit:a},r.createElement("div",{className:F("career-input-container",w.inputContainer)},r.createElement("input",{className:F("career-form-input",w.input),placeholder:"Full Name*",name:"name",onChange:t,onBlur:n,value:l.name}),r.createElement(m,{name:"name",component:"div",className:F("career-form-error-message",w.errorMessage)})),r.createElement("div",{className:F("career-input-container",w.inputContainer)},r.createElement("input",{className:F("career-form-input",w.input),placeholder:"Email*",name:"email",type:"email",onChange:t,onBlur:n,value:l.email}),r.createElement(m,{name:"email",component:"div",className:F("career-form-error-message",w.errorMessage)})),r.createElement("div",{className:F("career-input-container",w.inputContainer)},r.createElement("input",{className:F("career-form-input",w.input),placeholder:"Mobile Number*",name:"mobile",onChange:t,onBlur:n,value:l.mobile}),r.createElement(m,{name:"mobile",component:"div",className:F("career-form-error-message",w.errorMessage)})),r.createElement("div",{className:F("career-input-container",w.inputContainer)},r.createElement("label",{className:F("career-file-label",w.fileLabel)},r.createElement("input",{type:"file",name:"resume",accept:".pdf,.doc,.docx",onChange:function(e){return function(e,a){var t,r=null===(t=e.target.files)||void 0===t?void 0:t[0];r&&(a("resume",r),D(r.name))}(e,i)},onBlur:n,className:F("career-file-input",w.fileInput)}),r.createElement("span",{className:"career-file-button"},j||"Upload Resume (PDF, DOC, DOCX)*")),r.createElement(m,{name:"resume",component:"div",className:F("career-form-error-message",w.errorMessage)})),r.createElement("div",{className:"career-form-button-container"},r.createElement("button",{className:F("career-form-submit-button",w.submitButton),type:"submit",disabled:c},c?"Submitting...":"Submit Application")))})))):null}export{f as CareerApplicationForm};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lm-web-controls",
3
- "version": "1.4.21",
3
+ "version": "1.4.22",
4
4
  "description": "leadmetrics-lm-web-controls",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.es.js",
@@ -1,484 +1,536 @@
1
1
  import React, { ReactNode } from "react";
2
2
 
3
+
3
4
  declare module "lm-web-controls" {
4
- type EmailProps = {
5
- value: string;
6
- className?: string;
7
- };
8
-
9
- type CopyrightProps = {
10
- name: string;
11
- className?: string;
12
- };
13
-
14
- type PhoneProps = {
15
- value: string;
16
- country?: string;
17
- className?: string;
18
- };
19
-
20
- type MapProps = {
21
- id?: string;
22
- address: string;
23
- height?: string | number;
24
- width?: string | number;
25
- className?: string;
26
- };
27
-
28
- type InstaFeedProps = {
29
- apiKey: string;
30
- mediaTypes: number;
31
- className?: string;
32
- };
33
-
34
- type BackToTopProps = {
35
- className?: string;
36
- };
37
-
38
- type CopyrightWithUTMProps = {
39
- name: string;
40
- className?: string;
41
- source: string;
42
- medium: string;
43
- };
44
-
45
- type SocialShareButtonProps = {
46
- platform: string;
47
- url: string;
48
- isRound?: boolean;
49
- title?: string;
50
- };
51
-
52
- type ReadingProgressBarProps = {
53
- backgroundColor: string;
54
- };
55
-
56
- type TOCProps = {
57
- contentSelector?: string;
58
- isMinimal?: boolean;
59
- };
60
-
61
- type PostModel = {
62
- slug: string;
63
- isFeatured: boolean;
64
- isActive: boolean;
65
- category: string;
66
- categoryInfo: {
67
- id: string | null;
68
- name: string | null;
69
- slug: string | null;
70
- };
71
- featuredImage: string;
72
- title: string;
73
- previewContent: string;
74
- content: string;
75
- readTime: number;
76
- impressions: number;
77
- views: number;
78
- likes: number;
79
- publishedOn: Date;
80
- tags?: string[];
81
- author?: {
82
- name?: string;
83
- id?: string;
84
- };
85
- seo: {
86
- title: string;
87
- description: string;
88
- keywords: string;
89
- };
90
- };
91
-
92
- type ModalFormProps = {
93
- closeIcon: ReactNode;
94
- title?: string;
95
- slug: string;
96
- };
97
-
98
- type OrganizationSchemaProps = {
99
- schema: {
100
- url: string;
101
- logo: string;
102
- name: string;
103
- description: string;
104
- email: string;
105
- telephone: string;
106
- address: {
107
- streetAddress: string;
108
- addressLocality: string;
109
- addressCountry: string;
110
- addressRegion: string;
111
- postalCode: string;
112
- };
113
- };
114
- };
115
-
116
- type BlogListJsonLDSchemaProps = {
117
- blogs: PostModel[];
118
- nestedUrl?: string;
119
- category?: boolean;
120
- };
121
-
122
- type PostJsonLDSchemaProps = {
123
- post: PostModel;
124
- };
125
-
126
- type PostProps = {
127
- post: PostModel;
128
- ish1?: boolean;
129
- views: number;
130
- categoryUrl?: string;
131
- };
132
-
133
- type FeaturedBlogProps = {
134
- featured: PostModel;
135
- icon: ReactNode;
136
- nestedUrl?: string;
137
- category?: boolean;
138
- categoryUrl?: string;
139
- };
140
-
141
- type RelatedPostProps = {
142
- relatedPosts: PostModel[];
143
- title?: string;
144
- nestedUrl?: string;
145
- category?: boolean;
146
- };
147
-
148
- type FAQItem = {
149
- id: string;
150
- question: string;
151
- answer: string;
152
- createdOn: string;
153
- updatedOn: string | null;
154
- };
155
-
156
- type FAQData = {
157
- description: string;
158
- items: FAQItem[];
159
- publishedOn: string | null;
160
- slug: string;
161
- title: string;
162
- };
163
-
164
- type FaqProps = {
165
- faq: FAQData | FAQItem[];
166
- title?: string;
167
- icon?: string;
168
- addSchema?: boolean;
169
- };
170
-
171
- type FaqSchemaProps = {
172
- faq: FAQData | FAQItem[];
173
- };
174
-
175
- type ExitIntentProps = {
176
- closeIcon: ReactNode;
177
- title: string;
178
- content: string;
179
- remindMeAfter: number;
180
- actionButton?: {
181
- title: string;
182
- href: string;
183
- };
184
- closeButton?: {
185
- title: string;
186
- };
187
- };
188
-
189
- type PagingInfo = {
190
- currentPage: number;
191
- itemsPerPage: number;
192
- hasNextPage: boolean;
193
- totalItems: number;
194
- };
195
-
196
- type SearchResult<T> = {
197
- items: T[];
198
- pagingInfo: PagingInfo;
199
- };
200
-
201
- type BlogListProps = {
202
- data: SearchResult<PostModel>;
203
- icon?: {
204
- grid?: ReactNode;
205
- list?: ReactNode;
206
- link?: ReactNode;
207
- };
208
- title?: string;
209
- nestedUrl?: string;
210
- category?: boolean;
211
- fetchMore: (currentPage: number) => Promise<SearchResult<PostModel>>;
212
- autoFetchCount?: number;
213
- };
214
-
215
- type IdleTimeIntentProps = {
216
- closeIcon?: ReactNode;
217
- icon: {
218
- icon: ReactNode;
219
- href: string;
220
- };
221
- title: string;
222
- message: string;
223
- remindMeAfter: number;
224
- idleTime: number;
225
- audio?: string;
226
- };
227
-
228
- type SliderItem = {
229
- backgroundImage: string;
230
- title: string;
231
- description?: string;
232
- button?: {
233
- text: string;
234
- link: string;
235
- target?: string;
236
- };
237
- };
238
-
239
- type HeroSliderClassNames = {
240
- container?: string;
241
- slide?: string;
242
- overlay?: string;
243
- content?: string;
244
- title?: string;
245
- description?: string;
246
- button?: string;
247
- navigation?: string;
248
- navigationPrev?: string;
249
- navigationNext?: string;
250
- dots?: string;
251
- dot?: string;
252
- dotActive?: string;
253
- };
254
-
255
- type HeroSliderProps = {
256
- items: SliderItem[];
257
- autoPlay?: boolean;
258
- autoPlayInterval?: number;
259
- showDots?: boolean;
260
- showNavigation?: boolean;
261
- animationType?: "fade" | "scroll";
262
- className?: string;
263
- classNames?: HeroSliderClassNames;
264
- height?: string;
265
- icons?: {
266
- prev?: ReactNode;
267
- next?: ReactNode;
268
- };
269
- };
270
-
271
- type AuthorCardProps = {
272
- title?: string;
273
- author: {
274
- name: string;
275
- role?: string;
276
- bio?: string;
277
- avatar?: string;
278
- socialLinks?: {
279
- linkedin?: string;
280
- twitter?: string;
281
- github?: string;
282
- website?: string;
283
- };
284
- };
285
- socialIcons?: {
286
- linkedin?: ReactNode;
287
- twitter?: ReactNode;
288
- github?: ReactNode;
289
- website?: ReactNode;
290
- };
291
- classNames?: {
292
- container?: string;
293
- title?: string;
294
- content?: string;
295
- header?: string;
296
- avatarContainer?: string;
297
- avatar?: string;
298
- avatarPlaceholder?: string;
299
- info?: string;
300
- name?: string;
301
- role?: string;
302
- social?: string;
303
- socialLink?: string;
304
- socialIcon?: string;
305
- bio?: string;
306
- bioText?: string;
307
- };
308
- };
309
-
310
- type PaymentProvider =
311
- | "cashfree"
312
- | "razorpay"
313
- | "stripe"
314
- | "paypal"
315
- | "paytm"
316
- | "phonepe"
317
- | "googlepay"
318
- | "amazonpay"
319
- | "upi"
320
- | "visa"
321
- | "mastercard"
322
- | "amex"
323
- | "discover";
324
-
325
- type PaymentIconsProps = {
326
- providers: PaymentProvider[];
327
- size?: "small" | "medium" | "large";
328
- layout?: "horizontal" | "grid";
329
- className?: string;
330
- showText?: boolean;
331
- title?: string;
332
- // New props for custom icons
333
- customIcons?: {
334
- [key in PaymentProvider]?: {
335
- icon?: ReactNode; // For React icons
336
- image?: string; // For image URLs
337
- name?: string; // Custom name override
338
- };
339
- };
340
- classNames?: {
341
- container?: string;
342
- title?: string;
343
- iconsContainer?: string;
344
- icon?: string;
345
- iconText?: string;
346
- image?: string; // New className for images
347
- };
348
- };
349
-
350
- // Career Types
351
- type JobLocation = {
352
- city: string;
353
- state: string;
354
- country: string;
355
- remote: boolean;
356
- hybrid: boolean;
357
- };
358
-
359
- type JobModel = {
360
- id: string;
361
- title: string;
362
- slug: string;
363
- description: string;
364
- department: string;
365
- employmentType: string;
366
- location: JobLocation;
367
- isActive: boolean;
368
- createdOn: string;
369
- updatedOn?: string;
370
- };
371
-
372
- type JobListProps = {
373
- jobs: JobModel[];
374
- title?: string;
375
- subtitle?: string;
376
- nestedUrl?: string;
377
- emptyMessage?: string;
378
- showGeneralApply?: boolean;
379
- generalApplyText?: string;
380
- icons?: {
381
- location?: ReactNode;
382
- type?: ReactNode;
383
- arrow?: ReactNode;
384
- };
385
- classNames?: {
386
- container?: string;
387
- header?: string;
388
- title?: string;
389
- subtitle?: string;
390
- jobsGrid?: string;
391
- jobCard?: string;
392
- jobTitle?: string;
393
- jobLocation?: string;
394
- jobType?: string;
395
- viewButton?: string;
396
- emptyState?: string;
397
- locationIcon?: string;
398
- typeIcon?: string;
399
- arrowIcon?: string;
400
- generalApplySection?: string;
401
- generalApplyButton?: string;
402
- };
403
- };
404
-
405
- type JobDetailProps = {
406
- job: JobModel;
407
- onApplyClick?: () => void;
408
- classNames?: {
409
- container?: string;
410
- header?: string;
411
- title?: string;
412
- metaInfo?: string;
413
- metaItem?: string;
414
- metaIcon?: string;
415
- metaText?: string;
416
- applyButton?: string;
417
- description?: string;
418
- };
419
- icons?: {
420
- location?: ReactNode;
421
- type?: ReactNode;
422
- department?: ReactNode;
423
- };
424
- };
425
-
426
- type CareerApplicationFormProps = {
427
- closeIcon: ReactNode;
428
- description?: string;
429
- onSubmit: (formData: FormData) => Promise<void>;
430
- classNames?: {
431
- modal?: string;
432
- overlay?: string;
433
- content?: string;
434
- header?: string;
435
- closeButton?: string;
436
- title?: string;
437
- description?: string;
438
- form?: string;
439
- formGroup?: string;
440
- label?: string;
441
- input?: string;
442
- fileInput?: string;
443
- fileName?: string;
444
- errorMessage?: string;
445
- submitButton?: string;
446
- };
447
- };
448
-
449
- export const Email: React.FC<EmailProps>;
450
- export const Copyright: React.FC<CopyrightProps>;
451
- export const Phone: React.FC<PhoneProps>;
452
- export const Map: React.FC<MapProps>;
453
- export const InstaFeed: React.FC<InstaFeedProps>;
454
- export const BackToTop: React.FC<BackToTopProps>;
455
- export const CopyrightWithUTM: React.FC<CopyrightWithUTMProps>;
456
- export const SocialShare: React.FC<SocialShareButtonProps>;
457
- export const ReadingProgressBar: React.FC<ReadingProgressBarProps>;
458
- export const TableOfContents: React.FC<TOCProps>;
459
- export const Faq: React.FC<FaqProps>;
460
- export const FaqSchema: React.FC<FaqSchemaProps>;
461
- export const FeaturedBlog: React.FC<FeaturedBlogProps>;
462
- export const Post: React.FC<PostProps>;
463
- export const RelatedPosts: React.FC<RelatedPostProps>;
464
- export const BlogList: React.FC<BlogListProps>;
465
- export const ModalForm: React.FC<ModalFormProps>;
466
- export const BreadCrumbJsonLD: React.FC;
467
- export const OrganizationJsonLD: React.FC<OrganizationSchemaProps>;
468
- export const PostJsonLD: React.FC<PostJsonLDSchemaProps>;
469
- export const BlogListJsonLD: React.FC<BlogListJsonLDSchemaProps>;
470
- export const ExitIntent: React.FC<ExitIntentProps>;
471
- export const IdleTimeIntent: React.FC<IdleTimeIntentProps>;
472
- export const HeroSlider: React.FC<HeroSliderProps>;
473
- export const AuthorCard: React.FC<AuthorCardProps>;
474
- export const PaymentIcons: React.FC<PaymentIconsProps>;
475
- export const JobList: React.FC<JobListProps>;
476
- export const JobDetail: React.FC<JobDetailProps>;
477
- export const CareerApplicationForm: React.FC<CareerApplicationFormProps>;
478
-
479
- export const INSTA_MEDIA_TYPES: {
480
- readonly IMAGE: 1;
481
- readonly VIDEO: 2;
482
- readonly CAROUSEL_ALBUM: 4;
483
- };
5
+ type EmailProps = {
6
+ value: string;
7
+ className?: string;
8
+ };
9
+
10
+
11
+ type CopyrightProps = {
12
+ name: string;
13
+ className?: string;
14
+ };
15
+
16
+
17
+ type PhoneProps = {
18
+ value: string;
19
+ country?: string;
20
+ className?: string;
21
+ };
22
+
23
+
24
+ type MapProps = {
25
+ id?: string;
26
+ address: string;
27
+ height?: string | number;
28
+ width?: string | number;
29
+ className?: string;
30
+ };
31
+
32
+
33
+ type InstaFeedProps = {
34
+ apiKey: string;
35
+ mediaTypes: number;
36
+ className?: string;
37
+ };
38
+
39
+
40
+ type BackToTopProps = {
41
+ className?: string;
42
+ };
43
+
44
+
45
+ type CopyrightWithUTMProps = {
46
+ name: string;
47
+ className?: string;
48
+ source: string;
49
+ medium: string;
50
+ };
51
+
52
+
53
+ type SocialShareButtonProps = {
54
+ platform: string;
55
+ url: string;
56
+ isRound?: boolean;
57
+ title?: string;
58
+ };
59
+
60
+
61
+ type ReadingProgressBarProps = {
62
+ backgroundColor: string;
63
+ };
64
+
65
+
66
+ type TOCProps = {
67
+ contentSelector?: string;
68
+ isMinimal?: boolean;
69
+ };
70
+
71
+
72
+ type PostModel = {
73
+ slug: string;
74
+ isFeatured: boolean;
75
+ isActive: boolean;
76
+ category: string;
77
+ categoryInfo: {
78
+ id: string | null;
79
+ name: string | null;
80
+ slug: string | null;
81
+ };
82
+ featuredImage: string;
83
+ title: string;
84
+ previewContent: string;
85
+ content: string;
86
+ readTime: number;
87
+ impressions: number;
88
+ views: number;
89
+ likes: number;
90
+ publishedOn: Date;
91
+ tags?: string[];
92
+ author?: {
93
+ name?: string;
94
+ id?: string;
95
+ };
96
+ seo: {
97
+ title: string;
98
+ description: string;
99
+ keywords: string;
100
+ };
101
+ };
102
+
103
+
104
+ type ModalFormProps = {
105
+ closeIcon: ReactNode;
106
+ title?: string;
107
+ slug: string;
108
+ };
109
+
110
+
111
+ type OrganizationSchemaProps = {
112
+ schema: {
113
+ url: string;
114
+ logo: string;
115
+ name: string;
116
+ description: string;
117
+ email: string;
118
+ telephone: string;
119
+ address: {
120
+ streetAddress: string;
121
+ addressLocality: string;
122
+ addressCountry: string;
123
+ addressRegion: string;
124
+ postalCode: string;
125
+ };
126
+ };
127
+ };
128
+
129
+
130
+ type BlogListJsonLDSchemaProps = {
131
+ blogs: PostModel[];
132
+ nestedUrl?: string;
133
+ category?: boolean;
134
+ };
135
+
136
+
137
+ type PostJsonLDSchemaProps = {
138
+ post: PostModel;
139
+ };
140
+
141
+
142
+ type PostProps = {
143
+ post: PostModel;
144
+ ish1?: boolean;
145
+ views: number;
146
+ categoryUrl?: string;
147
+ };
148
+
149
+
150
+ type FeaturedBlogProps = {
151
+ featured: PostModel;
152
+ icon: ReactNode;
153
+ nestedUrl?: string;
154
+ category?: boolean;
155
+ categoryUrl?: string;
156
+ };
157
+
158
+
159
+ type RelatedPostProps = {
160
+ relatedPosts: PostModel[];
161
+ title?: string;
162
+ nestedUrl?: string;
163
+ category?: boolean;
164
+ };
165
+
166
+
167
+ type FAQItem = {
168
+ id: string;
169
+ question: string;
170
+ answer: string;
171
+ createdOn: string;
172
+ updatedOn: string | null;
173
+ };
174
+
175
+
176
+ type FAQData = {
177
+ description: string;
178
+ items: FAQItem[];
179
+ publishedOn: string | null;
180
+ slug: string;
181
+ title: string;
182
+ };
183
+
184
+
185
+ type FaqProps = {
186
+ faq: FAQData | FAQItem[];
187
+ title?: string;
188
+ icon?: string;
189
+ addSchema?: boolean;
190
+ };
191
+
192
+
193
+ type FaqSchemaProps = {
194
+ faq: FAQData | FAQItem[];
195
+ };
196
+
197
+
198
+ type ExitIntentProps = {
199
+ closeIcon: ReactNode;
200
+ title: string;
201
+ content: string;
202
+ remindMeAfter: number;
203
+ actionButton?: {
204
+ title: string;
205
+ href: string;
206
+ };
207
+ closeButton?: {
208
+ title: string;
209
+ };
210
+ };
211
+
212
+
213
+ type PagingInfo = {
214
+ currentPage: number;
215
+ itemsPerPage: number;
216
+ hasNextPage: boolean;
217
+ totalItems: number;
218
+ };
219
+
220
+
221
+ type SearchResult<T> = {
222
+ items: T[];
223
+ pagingInfo: PagingInfo;
224
+ };
225
+
226
+
227
+ type BlogListProps = {
228
+ data: SearchResult<PostModel>;
229
+ icon?: {
230
+ grid?: ReactNode;
231
+ list?: ReactNode;
232
+ link?: ReactNode;
233
+ };
234
+ title?: string;
235
+ nestedUrl?: string;
236
+ category?: boolean;
237
+ fetchMore: (currentPage: number) => Promise<SearchResult<PostModel>>;
238
+ autoFetchCount?: number;
239
+ };
240
+
241
+
242
+ type IdleTimeIntentProps = {
243
+ closeIcon?: ReactNode;
244
+ icon: {
245
+ icon: ReactNode;
246
+ href: string;
247
+ };
248
+ title: string;
249
+ message: string;
250
+ remindMeAfter: number;
251
+ idleTime: number;
252
+ audio?: string;
253
+ };
254
+
255
+
256
+ type SliderItem = {
257
+ backgroundImage: string;
258
+ title: string;
259
+ description?: string;
260
+ button?: {
261
+ text: string;
262
+ link: string;
263
+ target?: string;
264
+ };
265
+ };
266
+
267
+
268
+ type HeroSliderClassNames = {
269
+ container?: string;
270
+ slide?: string;
271
+ overlay?: string;
272
+ content?: string;
273
+ title?: string;
274
+ description?: string;
275
+ button?: string;
276
+ navigation?: string;
277
+ navigationPrev?: string;
278
+ navigationNext?: string;
279
+ dots?: string;
280
+ dot?: string;
281
+ dotActive?: string;
282
+ };
283
+
284
+
285
+ type HeroSliderProps = {
286
+ items: SliderItem[];
287
+ autoPlay?: boolean;
288
+ autoPlayInterval?: number;
289
+ showDots?: boolean;
290
+ showNavigation?: boolean;
291
+ animationType?: "fade" | "scroll";
292
+ className?: string;
293
+ classNames?: HeroSliderClassNames;
294
+ height?: string;
295
+ icons?: {
296
+ prev?: ReactNode;
297
+ next?: ReactNode;
298
+ };
299
+ };
300
+
301
+
302
+ type AuthorCardProps = {
303
+ title?: string;
304
+ author: {
305
+ name: string;
306
+ role?: string;
307
+ bio?: string;
308
+ avatar?: string;
309
+ socialLinks?: {
310
+ linkedin?: string;
311
+ twitter?: string;
312
+ github?: string;
313
+ website?: string;
314
+ };
315
+ };
316
+ socialIcons?: {
317
+ linkedin?: ReactNode;
318
+ twitter?: ReactNode;
319
+ github?: ReactNode;
320
+ website?: ReactNode;
321
+ };
322
+ classNames?: {
323
+ container?: string;
324
+ title?: string;
325
+ content?: string;
326
+ header?: string;
327
+ avatarContainer?: string;
328
+ avatar?: string;
329
+ avatarPlaceholder?: string;
330
+ info?: string;
331
+ name?: string;
332
+ role?: string;
333
+ social?: string;
334
+ socialLink?: string;
335
+ socialIcon?: string;
336
+ bio?: string;
337
+ bioText?: string;
338
+ };
339
+ };
340
+
341
+
342
+ type PaymentProvider =
343
+ | "cashfree"
344
+ | "razorpay"
345
+ | "stripe"
346
+ | "paypal"
347
+ | "paytm"
348
+ | "phonepe"
349
+ | "googlepay"
350
+ | "amazonpay"
351
+ | "upi"
352
+ | "visa"
353
+ | "mastercard"
354
+ | "amex"
355
+ | "discover";
356
+
357
+
358
+ type PaymentIconsProps = {
359
+ providers: PaymentProvider[];
360
+ size?: "small" | "medium" | "large";
361
+ layout?: "horizontal" | "grid";
362
+ className?: string;
363
+ showText?: boolean;
364
+ title?: string;
365
+ // New props for custom icons
366
+ customIcons?: {
367
+ [key in PaymentProvider]?: {
368
+ icon?: ReactNode; // For React icons
369
+ image?: string; // For image URLs
370
+ name?: string; // Custom name override
371
+ };
372
+ };
373
+ classNames?: {
374
+ container?: string;
375
+ title?: string;
376
+ iconsContainer?: string;
377
+ icon?: string;
378
+ iconText?: string;
379
+ image?: string; // New className for images
380
+ };
381
+ };
382
+
383
+
384
+ // Career Types
385
+ type JobLocation = {
386
+ city: string;
387
+ state: string;
388
+ country: string;
389
+ remote: boolean;
390
+ hybrid: boolean;
391
+ };
392
+
393
+
394
+ type JobModel = {
395
+ id: string;
396
+ title: string;
397
+ slug: string;
398
+ description: string;
399
+ department: string;
400
+ employmentType: string;
401
+ location: JobLocation;
402
+ isActive: boolean;
403
+ createdOn: Date | string;
404
+ updatedOn?: Date | string;
405
+ [key: string]: any; // Allow additional properties from SDK
406
+ };
407
+
408
+
409
+ type JobListProps = {
410
+ jobs: JobModel[];
411
+ title?: string;
412
+ subtitle?: string;
413
+ nestedUrl?: string;
414
+ emptyMessage?: string;
415
+ showGeneralApply?: boolean;
416
+ generalApplyText?: string;
417
+ icons?: {
418
+ location?: ReactNode;
419
+ type?: ReactNode;
420
+ arrow?: ReactNode;
421
+ };
422
+ classNames?: {
423
+ container?: string;
424
+ header?: string;
425
+ title?: string;
426
+ subtitle?: string;
427
+ jobsGrid?: string;
428
+ jobCard?: string;
429
+ jobTitle?: string;
430
+ jobLocation?: string;
431
+ jobType?: string;
432
+ viewButton?: string;
433
+ emptyState?: string;
434
+ locationIcon?: string;
435
+ typeIcon?: string;
436
+ arrowIcon?: string;
437
+ generalApplySection?: string;
438
+ generalApplyButton?: string;
439
+ };
440
+ };
441
+
442
+
443
+ type JobDetailProps = {
444
+ job: JobModel;
445
+ onApplyClick?: () => void;
446
+ classNames?: {
447
+ container?: string;
448
+ header?: string;
449
+ title?: string;
450
+ metaInfo?: string;
451
+ metaItem?: string;
452
+ metaIcon?: string;
453
+ metaText?: string;
454
+ applyButton?: string;
455
+ description?: string;
456
+ };
457
+ icons?: {
458
+ location?: ReactNode;
459
+ type?: ReactNode;
460
+ department?: ReactNode;
461
+ };
462
+ };
463
+
464
+
465
+ type CareerApplicationFormProps = {
466
+ closeIcon: ReactNode;
467
+ jobId?: string;
468
+ jobTitle?: string;
469
+ onSubmit: (data: {
470
+ jobId?: string;
471
+ name: string;
472
+ email: string;
473
+ mobile: string;
474
+ resume: File;
475
+ }) => Promise<void>;
476
+ title?: string;
477
+ description?: string;
478
+ triggerAttribute?: string;
479
+ classNames?: {
480
+ modal?: string;
481
+ container?: string;
482
+ closeButton?: string;
483
+ title?: string;
484
+ description?: string;
485
+ form?: string;
486
+ inputContainer?: string;
487
+ input?: string;
488
+ textarea?: string;
489
+ fileInput?: string;
490
+ fileLabel?: string;
491
+ errorMessage?: string;
492
+ submitButton?: string;
493
+ };
494
+ };
495
+
496
+
497
+ export const Email: React.FC<EmailProps>;
498
+ export const Copyright: React.FC<CopyrightProps>;
499
+ export const Phone: React.FC<PhoneProps>;
500
+ export const Map: React.FC<MapProps>;
501
+ export const InstaFeed: React.FC<InstaFeedProps>;
502
+ export const BackToTop: React.FC<BackToTopProps>;
503
+ export const CopyrightWithUTM: React.FC<CopyrightWithUTMProps>;
504
+ export const SocialShare: React.FC<SocialShareButtonProps>;
505
+ export const ReadingProgressBar: React.FC<ReadingProgressBarProps>;
506
+ export const TableOfContents: React.FC<TOCProps>;
507
+ export const Faq: React.FC<FaqProps>;
508
+ export const FaqSchema: React.FC<FaqSchemaProps>;
509
+ export const FeaturedBlog: React.FC<FeaturedBlogProps>;
510
+ export const Post: React.FC<PostProps>;
511
+ export const RelatedPosts: React.FC<RelatedPostProps>;
512
+ export const BlogList: React.FC<BlogListProps>;
513
+ export const ModalForm: React.FC<ModalFormProps>;
514
+ export const BreadCrumbJsonLD: React.FC;
515
+ export const OrganizationJsonLD: React.FC<OrganizationSchemaProps>;
516
+ export const PostJsonLD: React.FC<PostJsonLDSchemaProps>;
517
+ export const BlogListJsonLD: React.FC<BlogListJsonLDSchemaProps>;
518
+ export const ExitIntent: React.FC<ExitIntentProps>;
519
+ export const IdleTimeIntent: React.FC<IdleTimeIntentProps>;
520
+ export const HeroSlider: React.FC<HeroSliderProps>;
521
+ export const AuthorCard: React.FC<AuthorCardProps>;
522
+ export const PaymentIcons: React.FC<PaymentIconsProps>;
523
+ export const JobList: React.FC<JobListProps>;
524
+ export const JobDetail: React.FC<JobDetailProps>;
525
+ export const CareerApplicationForm: React.FC<CareerApplicationFormProps>;
526
+
527
+
528
+ export const INSTA_MEDIA_TYPES: {
529
+ readonly IMAGE: 1;
530
+ readonly VIDEO: 2;
531
+ readonly CAROUSEL_ALBUM: 4;
532
+ };
484
533
  }
534
+
535
+
536
+