@mirantes-micro/foundation-design-system 1.2.39 → 1.2.41

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/dist/index.d.ts CHANGED
@@ -1,39 +1,143 @@
1
1
  import * as React$1 from 'react';
2
- import React__default, { ReactNode, ChangeEvent, KeyboardEvent, FocusEvent } from 'react';
2
+ import React__default, { ReactNode, JSX, RefObject, InputHTMLAttributes, ChangeEvent, KeyboardEvent, FocusEvent } from 'react';
3
+ import * as _tanstack_react_query from '@tanstack/react-query';
3
4
  import { QueryClient } from '@tanstack/react-query';
4
- import { AxiosInstance } from 'axios';
5
+ import { AxiosInstance, GenericAbortSignal } from 'axios';
6
+ import { Socket } from 'socket.io-client';
5
7
  import * as zustand from 'zustand';
8
+ import * as zustand_middleware from 'zustand/middleware';
9
+ export { ErrorResponse, ErrorType } from '@mirantes-micro/errors';
6
10
 
7
- declare function Spinner({ className }: {
11
+ interface ModalProps {
12
+ isOpen: boolean;
13
+ onClose: () => void;
14
+ children: ReactNode;
15
+ showCloseButton?: boolean;
16
+ hideCloseButton?: boolean;
17
+ closeOnClickOutside?: boolean;
8
18
  className?: string;
9
- }): React__default.JSX.Element;
19
+ header?: React__default.ReactNode;
20
+ footer?: React__default.ReactNode;
21
+ disableFullScreen?: boolean;
22
+ isLoading?: boolean;
23
+ size?: "sm" | "md" | "lg" | "xl";
24
+ showOverlay?: boolean;
25
+ asStacked?: boolean;
26
+ asSheet?: boolean;
27
+ }
28
+ declare const MirantesModal: ({ isOpen, onClose, children, showCloseButton, hideCloseButton, closeOnClickOutside, className, header, footer, disableFullScreen, isLoading, size, showOverlay, asStacked, asSheet, }: ModalProps) => React__default.ReactPortal | null;
10
29
 
11
- declare function joinUrlWithPathAndQuery(baseUrl: string, path: string, query?: Record<string, string>): string;
30
+ type ToastProps = {
31
+ title: string;
32
+ message?: ReactNode;
33
+ icon?: ReactNode;
34
+ duration?: number;
35
+ actionLabel?: string;
36
+ onAction?: () => void;
37
+ cancelLabel?: string;
38
+ onCancel?: () => void;
39
+ };
40
+ type ActionToastProps = ToastProps & {
41
+ actionLabel: string;
42
+ onAction: () => void;
43
+ cancelLabel?: string;
44
+ onCancel?: () => void;
45
+ };
46
+ declare function useMirantesToast(): {
47
+ successToast: (props: ToastProps) => string | number;
48
+ errorToast: (props: ToastProps) => string | number;
49
+ infoToast: (props: ToastProps) => string | number;
50
+ warnToast: (props: ToastProps) => string | number;
51
+ actionToast: (props: ActionToastProps) => string | number;
52
+ };
12
53
 
13
- declare function stringToObj<T>(inputString: string, separator: string): T | undefined;
54
+ declare const NoRecruitmentResponsiveIlustration: ({ className, }: {
55
+ className?: string;
56
+ }) => React__default.JSX.Element;
14
57
 
15
- declare function getInitials(fullName: string): string;
58
+ interface IFollowerUser {
59
+ id?: string;
60
+ name?: string;
61
+ avatar?: string;
62
+ }
63
+ interface IFollowerPage {
64
+ id?: string;
65
+ name?: string;
66
+ logo?: string;
67
+ }
68
+ interface IFollowers {
69
+ page?: IFollowerPage[];
70
+ user?: IFollowerUser[];
71
+ }
72
+ interface IPage {
73
+ id?: string;
74
+ name?: string;
75
+ slug?: string;
76
+ logo?: string;
77
+ sector?: string;
78
+ sectorId?: string;
79
+ description?: string;
80
+ aboutUs?: string;
81
+ site?: string;
82
+ organizationSize?: string;
83
+ organizationType?: string;
84
+ pageType?: string;
85
+ isAcademic?: boolean;
86
+ foundedYear?: number;
87
+ address?: {
88
+ city?: string;
89
+ country?: string;
90
+ address?: string;
91
+ };
92
+ phoneNumber?: string;
93
+ followers?: IFollowers;
94
+ followersCount?: number;
95
+ }
16
96
 
17
- type TLocale = "pt" | "en" | "fr";
97
+ declare const useApiGetPage: (slug?: string) => {
98
+ page: IPage | null | undefined;
99
+ isGettingPage: boolean;
100
+ };
101
+
102
+ type TLocale$1 = "pt" | "en" | "fr";
18
103
  interface IMirantesFoundationProviderProps {
19
104
  children: ReactNode;
20
105
  Notification?: ReactNode;
21
106
  queryClient?: QueryClient;
22
107
  onOpenCreatePostModal?: () => void;
108
+ commentComponents?: ReactNode | JSX.Element;
109
+ pageTriggerComponents?: ReactNode | JSX.Element;
110
+ createJobButton?: ({ onClick, showLabel, }: {
111
+ onClick?: () => void;
112
+ showLabel?: boolean;
113
+ }) => JSX.Element;
114
+ openCreateJobModal?: () => void;
23
115
  values?: {
24
116
  pageId?: string;
117
+ isPageFeed?: boolean;
118
+ isCommunityFeed?: boolean;
119
+ community?: {
120
+ id?: string;
121
+ name?: string;
122
+ slug?: string;
123
+ image?: string;
124
+ };
25
125
  page?: {
26
126
  id?: string;
27
127
  slug?: string;
28
128
  logo?: string;
29
129
  name?: string;
130
+ sector?: string;
30
131
  };
31
132
  widgetsApi?: string;
32
133
  searchApi?: string;
33
134
  feedApi?: string;
135
+ authV2ApiUrl?: string;
34
136
  environment?: string;
35
137
  profileApiUrl?: string;
138
+ analyticsApiUrl?: string;
36
139
  billingApiUrl?: string;
140
+ assetsApiUrl?: string;
37
141
  multicaixaExpressUrl?: string;
38
142
  stripeKey?: string;
39
143
  socketApiUrl?: string;
@@ -42,10 +146,10 @@ interface IMirantesFoundationProviderProps {
42
146
  mirantesDomain?: string;
43
147
  openCageApiKey?: string;
44
148
  ocpSubscriptionKey?: string;
45
- locale?: TLocale;
149
+ locale?: TLocale$1;
46
150
  Link?: LinkComponent;
47
151
  usePathname?: UsePathname;
48
- user?: User;
152
+ user?: User$4;
49
153
  isGettingUser?: boolean;
50
154
  isGettingStats?: boolean;
51
155
  hostUrl?: string;
@@ -58,26 +162,40 @@ interface IMirantesFoundationProviderProps {
58
162
  interface IMirantesFoundationContext {
59
163
  widgetsApi?: string;
60
164
  feedApi?: string;
165
+ authV2ApiUrl?: string;
61
166
  searchApi?: string;
62
167
  profileApiUrl?: string;
63
168
  chatApiUrl?: string;
64
169
  billingApiUrl?: string;
170
+ analyticsApiUrl?: string;
171
+ assetsApiUrl?: string;
65
172
  multicaixaExpressUrl?: string;
66
173
  stripeKey?: string;
67
174
  chatForPage?: boolean;
68
175
  environment?: string;
69
176
  socketApiUrl?: string;
177
+ socketRef?: RefObject<Socket | null>;
70
178
  mirantesDomain?: string;
71
- locale?: TLocale;
179
+ hostUrl?: string;
180
+ locale?: TLocale$1;
72
181
  Link?: LinkComponent;
73
182
  usePathname?: UsePathname;
183
+ user?: User$4;
184
+ isPageFeed?: boolean;
185
+ isCommunityFeed?: boolean;
186
+ community?: {
187
+ id?: string;
188
+ name?: string;
189
+ slug?: string;
190
+ image?: string;
191
+ };
74
192
  pageId?: string;
75
- user?: User;
76
193
  page?: {
77
194
  id?: string;
78
195
  slug?: string;
79
196
  logo?: string;
80
197
  name?: string;
198
+ sector?: string;
81
199
  };
82
200
  isGettingUser?: boolean;
83
201
  isGettingStats?: boolean;
@@ -89,6 +207,13 @@ interface IMirantesFoundationContext {
89
207
  authApiUrl?: string;
90
208
  queryClient?: QueryClient;
91
209
  onOpenCreatePostModal?: (cb?: () => void) => void;
210
+ openCreateJobModal?: () => void;
211
+ commentComponents?: ReactNode | JSX.Element;
212
+ pageTriggerComponents?: ReactNode | JSX.Element;
213
+ createJobButton?: ({ onClick, showLabel, }: {
214
+ onClick?: () => void;
215
+ showLabel?: boolean;
216
+ }) => JSX.Element;
92
217
  }
93
218
  type CommonLinkProps = {
94
219
  to?: string;
@@ -98,178 +223,361 @@ type CommonLinkProps = {
98
223
  replace?: boolean;
99
224
  [key: string]: any;
100
225
  };
101
- type User = {
226
+ type User$4 = {
102
227
  id: string;
103
228
  name: string;
104
229
  email: string;
105
230
  phone: string;
106
231
  currentCompany?: string;
107
232
  isOpenToWork: boolean;
233
+ isActive: boolean;
108
234
  avatar: string;
109
235
  accessToken: string;
110
236
  refreshToken: string;
111
237
  role?: string;
112
238
  slug: string;
113
239
  isInterestsSynced?: boolean;
240
+ headline?: string;
114
241
  followersCount?: number;
115
242
  followingCount?: number;
243
+ socialStats?: {
244
+ contactsCount?: number;
245
+ followingCount?: number;
246
+ followersCount?: number;
247
+ };
116
248
  postsCount?: number;
117
249
  profileCompletedPercentage?: number;
118
250
  };
119
251
  type LinkComponent = (props: CommonLinkProps) => any;
120
252
  type UsePathname = () => string;
121
253
 
122
- declare function MirantesFoundationProvider({ children, Notification, queryClient, onOpenCreatePostModal, values: { chatApiUrl, chatForPage, locale, Link, usePathname, user, isGettingUser, mirantesDomain, environment, feedApi, searchApi, widgetsApi, hostUrl, isDev, profileApiUrl, isGettingStats, openCageApiKey, pageId, authedApi, authApiUrl, socketApiUrl, uploadFilesApi, page, ocpSubscriptionKey, billingApiUrl, multicaixaExpressUrl, stripeKey }, }: IMirantesFoundationProviderProps): React__default.JSX.Element;
123
-
124
- declare function WorkspacePanel(): React__default.JSX.Element;
125
-
126
- declare function Header({ className }: {
127
- className?: string;
128
- }): React__default.JSX.Element;
254
+ declare function MirantesFoundationProvider({ children, Notification, queryClient, onOpenCreatePostModal, commentComponents, pageTriggerComponents, openCreateJobModal, createJobButton, values: { chatApiUrl, chatForPage, locale, Link, usePathname, user, isGettingUser, mirantesDomain, environment, feedApi, searchApi, widgetsApi, hostUrl, assetsApiUrl, isDev, profileApiUrl, analyticsApiUrl, isGettingStats, openCageApiKey, pageId, authedApi, authApiUrl, socketApiUrl, uploadFilesApi, page, ocpSubscriptionKey, billingApiUrl, multicaixaExpressUrl, stripeKey, isPageFeed, community, isCommunityFeed, authV2ApiUrl, }, }: IMirantesFoundationProviderProps): React__default.JSX.Element;
129
255
 
130
256
  declare function useMirantesFoundation(): IMirantesFoundationContext;
131
257
 
132
- declare function onLogout(callback: () => void): void;
133
- declare function closeLogoutChannel(): void;
258
+ /**
259
+ * Creates a persistent state from localStorage
260
+ * @param key - The localStorage key to use
261
+ * @param defaultValue - The default value if no stored value exists
262
+ * @returns The stored value or defaultValue
263
+ */
264
+ declare function createPersistentState<T>(key: string, defaultValue: T): T;
134
265
 
135
- interface DateInputProps$1 {
136
- label: string;
137
- onChange: (date: Date) => void;
138
- value: Date;
139
- required?: boolean;
140
- className?: string;
141
- error?: string;
142
- disabled?: boolean;
143
- calendarClassName?: string;
144
- triggerClassName?: string;
266
+ /**
267
+ * A hook that persists UI state (views, modals) to localStorage
268
+ * The state is automatically saved when changed and restored on page load
269
+ *
270
+ * @param key - The localStorage key to use for persistence
271
+ * @param defaultValue - The default value if no stored value exists
272
+ * @returns A tuple of [state, setState] similar to useState
273
+ *
274
+ * @example
275
+ * ```tsx
276
+ * // Persist view state
277
+ * const [view, setView] = usePersistentUIState<"home" | "chat">("ui-view", "home");
278
+ *
279
+ * // Persist modal state
280
+ * const [modal, setModal] = usePersistentUIState<string | null>("ui-modal", null);
281
+ * ```
282
+ */
283
+ declare function usePersistentUIState<T>(key: string, defaultValue: T): readonly [T, React$1.Dispatch<React$1.SetStateAction<T>>];
284
+
285
+ interface IUserVisibilitySettings {
286
+ userId?: string;
287
+ profileViewMode?: EProfileViewMode;
288
+ profilePublic?: boolean;
289
+ profilePictureScope?: EPictureVisibility;
290
+ followingVisibility?: EFollowingVisibility;
291
+ notifyMentionsInMedia?: boolean;
292
+ }
293
+ declare enum EProfileViewMode {
294
+ professional = "PROFESSIONAL_IDENTITY",
295
+ sector = "SECTOR_IDENTIFICATION",
296
+ confidential = "CONFIDENTIAL_MODE"
297
+ }
298
+ declare enum EPictureVisibility {
299
+ contacts = "CONTACTS",
300
+ network = "NETWORK",
301
+ public = "PUBLIC"
302
+ }
303
+ declare enum EFollowingVisibility {
304
+ me = "ONLY_ME",
305
+ contacts = "CONTACTS",
306
+ all = "EVERYONE"
145
307
  }
146
- declare function DateInput({ label, onChange, value, required, className, triggerClassName, error, disabled, calendarClassName, }: DateInputProps$1): React$1.JSX.Element;
147
308
 
148
- declare function GradientModal({ onClose, children, isOpen, className, contentClassName, showGradient, }: {
149
- onClose: () => void;
150
- children: React__default.ReactNode;
151
- isOpen: boolean;
152
- className?: string;
153
- contentClassName?: string;
154
- showGradient?: boolean;
155
- }): React__default.JSX.Element;
309
+ type Settings = {
310
+ language: {
311
+ interface: string;
312
+ content: string;
313
+ };
314
+ theme: string;
315
+ feed: {
316
+ preference: string;
317
+ allowMentions: boolean;
318
+ };
319
+ profile: IUserVisibilitySettings;
320
+ };
321
+ declare const getSettingsFromCookie: (cookieName: string) => Settings | null;
322
+ declare const clearSettingsCookie: (cookieName: string, options: {
323
+ domain: string;
324
+ isDev: boolean;
325
+ }) => void;
326
+ declare const useLoadSettings: () => Settings | null;
156
327
 
157
- interface DateInputProps {
158
- value?: Date | string | null;
159
- onChange?: (date: Date | null) => void;
160
- minDate?: Date;
161
- maxDate?: Date;
162
- required?: boolean;
163
- showDateIcon?: boolean;
164
- disabled?: boolean;
165
- readOnly?: boolean;
166
- className?: string;
167
- placeholder?: string;
168
- inputClassName?: string;
169
- label?: string;
170
- "data-testid"?: string;
171
- error?: string;
172
- formattedAsMonthYear?: boolean;
328
+ interface ICreateTelemetryEventInput {
329
+ input?: {
330
+ source?: {
331
+ app?: "mirantes-web" | "mirantes-mobile";
332
+ platform?: "ios" | "android" | "web";
333
+ version?: string;
334
+ environment?: string;
335
+ };
336
+ actor?: {
337
+ user_id?: string;
338
+ anonymous_id?: string;
339
+ session_id?: string;
340
+ };
341
+ context?: {
342
+ route?: string;
343
+ referrer?: string;
344
+ timezone?: string;
345
+ locale?: string;
346
+ country?: string;
347
+ device?: {
348
+ os?: string;
349
+ model?: string;
350
+ };
351
+ browser?: {
352
+ name?: string;
353
+ version?: string;
354
+ };
355
+ };
356
+ events?: ITelemetryEvent[];
357
+ };
173
358
  }
174
- declare function CustomDateInput({ value, error: errorMessage, onChange, minDate, maxDate, required, showDateIcon, disabled, readOnly, className, placeholder, inputClassName, label, "data-testid": testId, formattedAsMonthYear, }: DateInputProps): React__default.JSX.Element;
175
-
176
- interface AddressSuggestion {
177
- country?: string;
178
- city?: string;
179
- latitude?: number;
180
- longitude?: number;
181
- address?: string;
359
+ interface ITelemetryEvent {
360
+ event_id?: string;
361
+ event_type?: "PAGE_VIEW" | "PROFILE_VIEW" | "CLICK_APPLY_JOB" | "SIGNUP_STEP_1" | "SIGNUP_STEP_2" | "SIGNUP_STEP_3" | "PERF_LOAD_TIME";
362
+ occurred_at?: Date;
363
+ metadata?: any;
182
364
  }
183
- interface AddressInputProps {
184
- value: string;
185
- onChange: (props?: AddressSuggestion) => void;
186
- className?: string;
187
- wrapperClassName?: string;
188
- inputClassName?: string;
189
- suggestionsWrapperClassName?: string;
190
- suggestionItemClassName?: string;
191
- selectedItemClassName?: string;
192
- loadingIndicatorClassName?: string;
193
- clearButtonClassName?: string;
194
- error?: string;
195
- errorClassName?: string;
196
- leftElement?: ReactNode;
197
- minChars?: number;
198
- debounceDelay?: number;
199
- placeholder?: string;
200
- noResultsText?: string;
201
- customLoading?: ReactNode;
202
- floatable?: boolean;
365
+ interface ICreateTelemetryEventOutput {
366
+ events?: {
367
+ id?: string;
368
+ }[];
203
369
  }
204
- declare function AddressAutocompleteInput({ value, onChange, className, wrapperClassName, inputClassName, suggestionsWrapperClassName, suggestionItemClassName, selectedItemClassName, loadingIndicatorClassName, clearButtonClassName, errorClassName, error, leftElement, minChars, debounceDelay, placeholder, noResultsText, customLoading, floatable, }: AddressInputProps): React__default.JSX.Element;
205
370
 
206
- interface ICountryInputProps {
207
- locale?: "pt" | "fr" | "en";
208
- value?: string;
209
- onChange?: (value: {
210
- locale: string;
211
- name: string;
212
- }) => void;
213
- className?: string;
214
- defaultCode?: string;
215
- forNationality?: boolean;
216
- }
371
+ declare function useRegisterTracking(): {
372
+ registerEvent: _tanstack_react_query.UseMutateFunction<ICreateTelemetryEventOutput | null, Error, ICreateTelemetryEventInput, unknown>;
373
+ };
217
374
 
218
- interface CountryInputProps extends Omit<ICountryInputProps, "locale" | "onChange"> {
219
- className?: string;
220
- buttonClassName?: string;
221
- inputClassName?: string;
222
- value?: string;
223
- onChange?: (payload: {
224
- code: string;
225
- name: string;
226
- }) => void;
227
- error?: string;
228
- floatable?: boolean;
375
+ type OwnerType = "user" | "organization" | "system" | "chat";
376
+ interface AssetUploadRequest {
377
+ file: File;
378
+ owner_type: OwnerType;
379
+ owner_id?: string;
380
+ is_public: boolean;
229
381
  }
230
- declare function CountryInput({ className, buttonClassName, inputClassName, defaultCode, onChange, value, error, floatable, }: CountryInputProps): React__default.JSX.Element;
231
- declare namespace CountryInput {
232
- var displayName: string;
382
+ interface AssetUploadResponse {
383
+ data: {
384
+ url?: string;
385
+ assetId?: string;
386
+ };
387
+ message: string;
233
388
  }
234
-
235
- interface CountryDisplayProps {
236
- code: string;
237
- locale: "pt" | "fr" | "en";
238
- className?: string;
389
+ interface SignedUrlRequest {
390
+ assetId: string;
391
+ expiry: number;
392
+ version: "small" | "medium" | "large";
239
393
  }
240
- declare function CountryDisplay({ code, locale, className, }: CountryDisplayProps): React__default.JSX.Element | null;
241
- declare namespace CountryDisplay {
242
- var displayName: string;
394
+ interface SignedUrlResponse {
395
+ data: {
396
+ expiresAt: string;
397
+ signedUrl: string;
398
+ version: string;
399
+ };
400
+ message: string;
243
401
  }
244
-
245
- interface SalaryInputWithButtonProps {
246
- label?: string;
247
- value?: {
248
- amount: string;
249
- currency: string;
402
+ type AssetVersionKey = "small" | "medium" | "large";
403
+ interface AssetVersion {
404
+ format: string;
405
+ platforms: string[];
406
+ recommended: boolean;
407
+ url: string;
408
+ }
409
+ interface AssetVersionsResponse {
410
+ mediaID: string;
411
+ platform: string;
412
+ versions: Record<AssetVersionKey, AssetVersion>;
413
+ }
414
+ interface BulkAssetUploadItemSuccess {
415
+ status: "success";
416
+ message: string;
417
+ data: {
418
+ url: string;
419
+ assetId?: string;
250
420
  };
251
- onChange?: (val: {
252
- amount: string;
253
- currency: string;
254
- }) => void;
255
- onGenerate?: () => void;
256
- placeholder?: string;
257
- disabled?: boolean;
258
- className?: string;
259
- buttonLabel?: string;
260
421
  }
261
- declare function SalaryInputWithButton({ label, value, onChange, onGenerate, placeholder, disabled, className, buttonLabel, }: SalaryInputWithButtonProps): React__default.JSX.Element;
262
-
263
- interface CalendarProps {
264
- locale?: "pt" | "fr" | "en";
265
- onMarkAsUnavailable?: () => void;
266
- isModalOpen?: boolean;
267
- onClose?: () => void;
268
- calendarCardClassName?: string;
422
+ interface BulkAssetUploadItemError {
423
+ status: "error";
424
+ message: string;
425
+ data?: null;
426
+ }
427
+ type BulkAssetUploadItem = BulkAssetUploadItemSuccess | BulkAssetUploadItemError;
428
+ interface AssetUploadBulkRequest {
429
+ files: File[];
430
+ owner_type: OwnerType;
431
+ owner_id?: string;
432
+ is_public: boolean;
433
+ signal?: GenericAbortSignal;
434
+ }
435
+ interface AssetUploadBulkResponse {
436
+ results: BulkAssetUploadItem[];
269
437
  }
270
- declare function Calendar({ onMarkAsUnavailable, isModalOpen, onClose, calendarCardClassName, }: CalendarProps): React__default.JSX.Element;
271
438
 
272
- type BaseInputProps = {
439
+ /** POST /assets */
440
+ declare function useUploadAsset(): {
441
+ uploadAssets: _tanstack_react_query.UseMutateFunction<AssetUploadResponse | null, Error, AssetUploadRequest, unknown>;
442
+ isUploadingAsset: boolean;
443
+ };
444
+ /** POST /assets/bulk */
445
+ declare function useUploadAssetsBulk(): {
446
+ uploadAssetsBulk: _tanstack_react_query.UseMutateFunction<AssetUploadBulkResponse | null, Error, AssetUploadBulkRequest, unknown>;
447
+ isUploadingBulk: boolean;
448
+ };
449
+ /** POST /assets/signed-url */
450
+ declare function useSignedUrl(): {
451
+ postSignedUrl: _tanstack_react_query.UseMutateFunction<SignedUrlResponse | null, Error, SignedUrlRequest, unknown>;
452
+ isPostingSignedUrl: boolean;
453
+ };
454
+ /** GET /assets/:id/versions */
455
+ declare function useAssetVersions(assetId?: string): {
456
+ assetVersions: AssetVersionsResponse | null | undefined;
457
+ isGettingAssetVersions: boolean;
458
+ error: Error | null;
459
+ };
460
+ /** Auto-picks best version (large/medium/small) */
461
+ declare function useBestAssetVersion(assetId?: string): {
462
+ url: string | null | undefined;
463
+ isGettingUrl: boolean;
464
+ error: Error | null;
465
+ };
466
+
467
+ declare const dispatchLogoutEvent: () => void;
468
+
469
+ interface LogoutOptions$1 {
470
+ broadcast?: boolean;
471
+ reload?: boolean;
472
+ redirectUrl?: string;
473
+ }
474
+
475
+ interface UseApiLogoutOptions extends LogoutOptions$1 {
476
+ onSuccess?: () => void;
477
+ onError?: (error: unknown) => void;
478
+ }
479
+ declare function useApiLogout(): {
480
+ handleApiLogout: (options?: UseApiLogoutOptions) => Promise<void>;
481
+ };
482
+
483
+ declare function useLogout(): {
484
+ handleLogout: (options?: LogoutOptions$1) => void;
485
+ };
486
+
487
+ interface AutoComponentProps {
488
+ component?: React__default.ElementType;
489
+ render?: (props: {
490
+ isOpen: boolean;
491
+ onClose: () => void;
492
+ }) => React__default.ReactNode;
493
+ componentProps?: Record<string, any>;
494
+ maxShows?: number;
495
+ initialDelayMs?: number;
496
+ intervalMs?: number;
497
+ mobileOnly?: boolean;
498
+ enabled?: boolean;
499
+ storageKey?: string;
500
+ }
501
+ declare const AutoComponent: React__default.FC<AutoComponentProps>;
502
+
503
+ interface AutoDisplayConfig {
504
+ storageKey?: string;
505
+ maxShows?: number;
506
+ initialDelayMs?: number;
507
+ intervalMs?: number;
508
+ mobileOnly?: boolean;
509
+ enabled?: boolean;
510
+ onOpen?: () => void;
511
+ onClose?: () => void;
512
+ }
513
+ declare const useAutoDisplay: (config?: AutoDisplayConfig) => {
514
+ isOpen: boolean;
515
+ open: () => void;
516
+ close: () => void;
517
+ canShow: boolean;
518
+ reset: () => void;
519
+ };
520
+
521
+ interface LogoutOptions {
522
+ broadcast?: boolean;
523
+ reload?: boolean;
524
+ redirectUrl?: string;
525
+ domain?: string;
526
+ secure?: boolean;
527
+ }
528
+ declare function clearUserSession(options?: LogoutOptions): void;
529
+
530
+ declare function ChatView(): React__default.JSX.Element;
531
+
532
+ declare function useSetChatVisibility(): {
533
+ isChatVisible: boolean;
534
+ isToSendMessageToPage: boolean;
535
+ isPageContext: boolean;
536
+ };
537
+
538
+ type ModalVariant = "expanded" | "minimized" | "center";
539
+ interface ModalPosition {
540
+ top?: string;
541
+ bottom?: string;
542
+ left?: string;
543
+ right?: string;
544
+ }
545
+ interface ModalAnimationConfig {
546
+ duration?: number;
547
+ ease?: string | number[];
548
+ exitDuration?: number;
549
+ }
550
+ interface BaseModalProps {
551
+ isOpen: boolean;
552
+ onClose: () => void;
553
+ children: React.ReactNode;
554
+ }
555
+ interface ModalStyleProps {
556
+ className?: string;
557
+ contentClassName?: string;
558
+ overlayClassName?: string;
559
+ }
560
+ interface ModalBehaviorProps {
561
+ closeOnClickOutside?: boolean;
562
+ closeOnEscape?: boolean;
563
+ hideCloseButton?: boolean;
564
+ preventBodyScroll?: boolean;
565
+ showOverlay?: boolean;
566
+ }
567
+ interface ModalConfigProps {
568
+ variant?: ModalVariant;
569
+ position?: ModalPosition;
570
+ animationConfig?: ModalAnimationConfig;
571
+ header?: React.ReactNode;
572
+ zIndex?: number;
573
+ offsetTop?: number;
574
+ }
575
+ interface AnimatedModalProps extends BaseModalProps, ModalStyleProps, ModalBehaviorProps, ModalConfigProps {
576
+ }
577
+
578
+ declare function AnimatedModal({ isOpen, onClose, children, variant, className, contentClassName, overlayClassName, closeOnClickOutside, closeOnEscape, hideCloseButton, showOverlay, position, header, zIndex, offsetTop, preventBodyScroll, }: AnimatedModalProps): React__default.JSX.Element;
579
+
580
+ interface BaseInputProps extends InputHTMLAttributes<HTMLInputElement> {
273
581
  placeholder: string;
274
582
  value: string;
275
583
  onChange: (e: ChangeEvent<HTMLInputElement>) => void;
@@ -279,24 +587,26 @@ type BaseInputProps = {
279
587
  leftIcon?: React__default.ReactNode;
280
588
  label?: string;
281
589
  error?: string;
282
- disabled?: boolean;
283
- type?: string;
284
- name?: string;
285
- id?: string;
286
- className?: string;
287
- children?: React__default.ReactNode;
288
590
  wrapperClassName?: string;
289
- required?: boolean;
290
591
  inputClassName?: string;
291
592
  requiredInPlaceholder?: boolean;
292
- min?: number;
293
- max?: number;
294
593
  placeholderColor?: string;
295
- };
594
+ }
296
595
  declare const BaseInput: React__default.ForwardRefExoticComponent<BaseInputProps & React__default.RefAttributes<HTMLInputElement>>;
297
596
 
298
- declare function CheckBoxInput({ isChecked, onClick, label, disabled, }: {
597
+ type ButtonProps = {
598
+ children: React__default.ReactNode;
599
+ type?: "button" | "submit";
600
+ className?: string;
601
+ onClick?: () => void;
602
+ disabled?: boolean;
603
+ isLoading?: boolean;
604
+ };
605
+ declare function Button({ children, className, disabled, isLoading, onClick, type, }: ButtonProps): React__default.JSX.Element;
606
+
607
+ declare function CheckBoxInput({ isChecked, onClick, label, disabled, isRequired, }: {
299
608
  isChecked?: boolean;
609
+ isRequired?: boolean;
300
610
  onClick?: (e: React__default.MouseEvent<HTMLDivElement> | React__default.KeyboardEvent<HTMLDivElement>) => void;
301
611
  label?: string;
302
612
  disabled?: boolean;
@@ -305,18 +615,34 @@ declare function CheckBoxInput({ isChecked, onClick, label, disabled, }: {
305
615
  type CustomDrawerProps = {
306
616
  children: React__default.ReactNode;
307
617
  footer?: React__default.ReactNode;
618
+ title?: React__default.ReactNode;
308
619
  onClose: () => void;
309
620
  className?: string;
310
621
  isOpen?: boolean;
311
622
  hideCloseBlock?: boolean;
623
+ direction?: 'bottom' | 'right' | 'left';
624
+ hiddenInMobileArticle?: boolean;
312
625
  };
313
- declare function CustomDrawer({ children, footer, onClose, className, isOpen, hideCloseBlock, }: CustomDrawerProps): React__default.JSX.Element;
626
+ declare function CustomDrawer({ children, footer, title, onClose, className, isOpen, hideCloseBlock, direction, hiddenInMobileArticle, }: CustomDrawerProps): React__default.JSX.Element | null;
314
627
 
315
- declare function RadioButtonInput({ label, isSelected, onSelect, }: {
316
- label?: string;
317
- isSelected?: boolean;
318
- onSelect?: () => void;
319
- }): React__default.JSX.Element;
628
+ interface IDropdownProps {
629
+ trigger: React.ReactNode;
630
+ options: IDropdownOption[];
631
+ onSelect: (id: string) => void;
632
+ className?: string;
633
+ itemClassName?: string;
634
+ itemHoverClassName?: string;
635
+ animate?: boolean;
636
+ enableSearch?: boolean;
637
+ }
638
+ interface IDropdownOption {
639
+ id: string;
640
+ label: string;
641
+ value: string;
642
+ icon?: React.ReactNode;
643
+ }
644
+
645
+ declare function CustomDropdown({ trigger, options, onSelect, className, itemClassName, itemHoverClassName, animate, enableSearch, }: IDropdownProps): React__default.JSX.Element;
320
646
 
321
647
  type Option = {
322
648
  id: string;
@@ -326,7 +652,7 @@ type Option = {
326
652
  type CustomSelectInputProps = {
327
653
  options: Option[];
328
654
  value?: string;
329
- onChange?: (option: Option) => void;
655
+ onChange?: (option: Option | null) => void;
330
656
  placeholder?: string;
331
657
  className?: string;
332
658
  enableSearch?: boolean;
@@ -338,18 +664,14 @@ type CustomSelectInputProps = {
338
664
  disabled?: boolean;
339
665
  onSearch?: (query: string) => void;
340
666
  isLoading?: boolean;
667
+ reset?: boolean;
341
668
  };
342
- declare function CustomSelectInput({ options, value, onChange, placeholder, className, enableSearch, floattable, required, showCheck, label, error, disabled, onSearch, isLoading, }: CustomSelectInputProps): React$1.JSX.Element;
669
+ declare function CustomSelectInput({ options, value, onChange, placeholder, className, enableSearch, floattable, required, showCheck, label, error, disabled, onSearch, isLoading, reset, }: CustomSelectInputProps): React$1.JSX.Element;
343
670
 
344
- type ButtonProps = {
345
- children: React__default.ReactNode;
346
- type?: "button" | "submit";
347
- className?: string;
348
- onClick?: () => void;
349
- disabled?: boolean;
350
- isLoading?: boolean;
351
- };
352
- declare function Button({ children, className, disabled, isLoading, onClick, type, }: ButtonProps): React__default.JSX.Element;
671
+ interface EmojiPickerButtonProps {
672
+ onEmojiSelect: (emoji: string) => void;
673
+ }
674
+ declare const EmojiPickerButton: ({ onEmojiSelect, }: EmojiPickerButtonProps) => React__default.JSX.Element;
353
675
 
354
676
  interface IMirantesButton extends React__default.ButtonHTMLAttributes<HTMLButtonElement> {
355
677
  label?: string;
@@ -360,145 +682,1552 @@ interface IMirantesButton extends React__default.ButtonHTMLAttributes<HTMLButton
360
682
  }
361
683
  declare const MirantesButton: React__default.ForwardRefExoticComponent<IMirantesButton & React__default.RefAttributes<HTMLButtonElement>>;
362
684
 
363
- interface IDropdownProps {
364
- trigger: React.ReactNode;
365
- options: IDropdownOption[];
366
- onSelect: (id: string) => void;
685
+ interface MirantesSheetsProps {
686
+ isOpen: boolean;
687
+ onOpenChange: (open: boolean) => void;
688
+ title?: string;
689
+ iconTitle?: ReactNode;
690
+ iconTitleClassName?: string;
691
+ customHeader?: ReactNode;
692
+ children: ReactNode;
693
+ footer?: ReactNode;
694
+ side?: "top" | "bottom" | "left" | "right";
367
695
  className?: string;
368
- itemClassName?: string;
369
- itemHoverClassName?: string;
370
- animate?: boolean;
371
- enableSearch?: boolean;
372
- }
373
- interface IDropdownOption {
374
- id: string;
375
- label: string;
376
- value: string;
377
- icon?: React.ReactNode;
696
+ contentClassName?: string;
697
+ hideCloseButton?: boolean;
698
+ zIndex?: number;
378
699
  }
700
+ declare const MirantesSheets: ({ isOpen, onOpenChange, title, customHeader, children, footer, side, className, contentClassName, hideCloseButton, iconTitle, iconTitleClassName, zIndex, }: MirantesSheetsProps) => React__default.JSX.Element;
379
701
 
380
- declare function CustomDropdown({ trigger, options, onSelect, className, itemClassName, itemHoverClassName, animate, enableSearch, }: IDropdownProps): React__default.JSX.Element;
381
-
382
- declare function ContactsModal({ onClose, slug, }: {
383
- onClose: () => void;
384
- slug?: string;
702
+ declare function RadioButtonInput({ label, isSelected, onSelect, }: {
703
+ label?: string;
704
+ isSelected?: boolean;
705
+ onSelect?: () => void;
385
706
  }): React__default.JSX.Element;
386
707
 
387
- interface IUserVisibilitySettings {
388
- userId?: string;
389
- profileViewMode?: EProfileViewMode;
390
- profilePublic?: boolean;
391
- profilePictureScope?: EPictureVisibility;
392
- followingVisibility?: EFollowingVisibility;
393
- notifyMentionsInMedia?: boolean;
708
+ interface IResponsiveDrawerProps {
709
+ isOpen: boolean;
710
+ onClose: () => void;
711
+ header?: React$1.ReactNode;
712
+ footer?: React$1.ReactNode;
713
+ children: React$1.ReactNode;
714
+ className?: string;
715
+ side?: "right" | "left" | "bottom";
716
+ swipeable?: boolean;
717
+ swipeThreshold?: number;
394
718
  }
395
- declare enum EProfileViewMode {
396
- professional = "PROFESSIONAL_IDENTITY",
397
- sector = "SECTOR_IDENTIFICATION",
398
- confidential = "CONFIDENTIAL_MODE"
719
+
720
+ interface ExtendedDrawerProps extends IResponsiveDrawerProps {
721
+ title?: string;
399
722
  }
400
- declare enum EPictureVisibility {
401
- contacts = "CONTACTS",
402
- network = "NETWORK",
403
- public = "PUBLIC"
723
+ declare function ResponsiveDrawer$1({ isOpen, onClose, title, header, footer, children, className, swipeable, }: ExtendedDrawerProps): React$1.JSX.Element;
724
+
725
+ type Language = "pt" | "en" | "fr";
726
+ interface DateOutput {
727
+ day: string;
728
+ month: string;
729
+ year: string;
730
+ formattedYMD: string | null;
731
+ formattedDMY: string | null;
732
+ isoString: string | null;
404
733
  }
405
- declare enum EFollowingVisibility {
406
- me = "ONLY_ME",
407
- contacts = "CONTACTS",
408
- all = "EVERYONE"
734
+ interface TripleInputDateProps {
735
+ label?: string;
736
+ required?: boolean;
737
+ disabled?: boolean;
738
+ error?: string;
739
+ showDay?: boolean;
740
+ showMonth?: boolean;
741
+ showYear?: boolean;
742
+ lang?: Language;
743
+ value?: Date | string | null;
744
+ minYear?: number;
745
+ maxYear?: number;
746
+ onChange?: (dateData: DateOutput) => void;
747
+ isNewChevronIcon?: boolean;
409
748
  }
749
+ declare const TripleInputDate: ({ label, required, disabled, error, showDay, showMonth, showYear, lang, value, minYear, maxYear, onChange, isNewChevronIcon, }: TripleInputDateProps) => React__default.JSX.Element;
410
750
 
411
- type Settings = {
412
- language: {
413
- interface: string;
414
- content: string;
415
- };
416
- theme: string;
417
- feed: {
418
- preference: string;
419
- allowMentions: boolean;
420
- };
421
- profile: IUserVisibilitySettings;
422
- };
423
- declare const getSettingsFromCookie: (cookieName: string) => Settings | null;
424
- declare const clearSettingsCookie: (cookieName: string, options: {
425
- domain: string;
426
- isDev: boolean;
427
- }) => void;
428
- declare const useLoadSettings: () => Settings | null;
429
-
430
- interface IFollowerUser {
431
- id?: string;
432
- name?: string;
433
- avatar?: string;
434
- }
435
- interface IFollowerPage {
436
- id?: string;
437
- name?: string;
438
- logo?: string;
751
+ interface AddressSuggestion {
752
+ country?: string;
753
+ city?: string;
754
+ latitude?: number;
755
+ longitude?: number;
756
+ address?: string;
439
757
  }
440
- interface IFollowers {
441
- page?: IFollowerPage[];
442
- user?: IFollowerUser[];
758
+ interface AddressInputProps {
759
+ value: string;
760
+ onChange: (props?: AddressSuggestion) => void;
761
+ className?: string;
762
+ wrapperClassName?: string;
763
+ inputClassName?: string;
764
+ suggestionsWrapperClassName?: string;
765
+ suggestionItemClassName?: string;
766
+ selectedItemClassName?: string;
767
+ loadingIndicatorClassName?: string;
768
+ clearButtonClassName?: string;
769
+ error?: string;
770
+ errorClassName?: string;
771
+ leftElement?: ReactNode;
772
+ minChars?: number;
773
+ debounceDelay?: number;
774
+ placeholder?: string;
775
+ noResultsText?: string;
776
+ customLoading?: ReactNode;
777
+ floatable?: boolean;
443
778
  }
444
- interface IPage {
779
+ declare function AddressAutocompleteInput({ value, onChange, className, wrapperClassName, inputClassName, suggestionsWrapperClassName, suggestionItemClassName, selectedItemClassName, loadingIndicatorClassName, clearButtonClassName, errorClassName, error, leftElement, minChars, debounceDelay, placeholder, noResultsText, customLoading, floatable, }: AddressInputProps): React__default.JSX.Element;
780
+
781
+ interface IActivateAccountModalProps {
782
+ isOpen: boolean;
783
+ onClose?: () => void;
784
+ }
785
+
786
+ declare function ActivateAccountModal({ isOpen, onClose, }: IActivateAccountModalProps): React__default.JSX.Element;
787
+
788
+ declare function ChatContacts({ postId, onClose, searchTerm, selectedContacts, setSelectedContacts, }: {
789
+ postId?: string;
790
+ onClose?: () => void;
791
+ searchTerm?: string;
792
+ selectedContacts?: Set<string>;
793
+ setSelectedContacts?: (contacts: Set<string> | ((prev: Set<string>) => Set<string>)) => void;
794
+ }): React__default.JSX.Element;
795
+
796
+ declare function ChatListWrapper({ isChatOpen, isCompactMode }: {
797
+ isChatOpen?: boolean;
798
+ isCompactMode?: boolean;
799
+ }): React__default.JSX.Element;
800
+
801
+ declare function ChatViewDesktopPage(): React__default.JSX.Element;
802
+
803
+ interface TargetEntity$1 {
804
+ id?: string;
805
+ name?: string;
806
+ avatar?: string;
807
+ logo?: string;
808
+ image?: string;
809
+ }
810
+ interface IMessageButtonProps$1 {
811
+ user?: TargetEntity$1;
812
+ page?: TargetEntity$1;
813
+ icon?: React__default.ReactNode;
814
+ label?: string;
815
+ className?: string;
816
+ disabled?: boolean;
817
+ onClick?: () => void;
818
+ isSharing?: boolean;
819
+ link?: string;
820
+ onConversationReady?: (conversationId: string) => void;
821
+ }
822
+ declare function MessageButton({ user, page, icon, label, className, disabled, onClick: customOnClick, isSharing, link, onConversationReady, }: IMessageButtonProps$1): React__default.JSX.Element;
823
+
824
+ interface TargetEntity {
825
+ id?: string;
826
+ name?: string;
827
+ avatar?: string;
828
+ logo?: string;
829
+ image?: string;
830
+ slug?: string;
831
+ }
832
+ interface IMessageButtonProps {
833
+ user?: TargetEntity;
834
+ label?: string;
835
+ className?: string;
836
+ disabled?: boolean;
837
+ onClick?: () => void;
838
+ variant?: "default" | "small";
839
+ onConversationReady?: (conversationId: string) => void;
840
+ }
841
+ declare function MessagesButtonFromPage({ user, label, className, disabled, onClick: customOnClick, variant, }: IMessageButtonProps): React__default.JSX.Element;
842
+
843
+ declare function useRestorePendingChat(): void;
844
+
845
+ interface IMessage {
846
+ id?: string;
847
+ conversationId?: string;
848
+ senderId?: string;
849
+ pageId?: string;
850
+ sender?: {
851
+ name?: string;
852
+ slug?: string;
853
+ avatar?: string;
854
+ id?: string;
855
+ };
856
+ attachments?: {
857
+ type?: string;
858
+ url?: string;
859
+ }[];
860
+ body?: string;
861
+ content?: string;
862
+ actions?: string;
863
+ replyMessageId?: string;
864
+ replyMessage?: IMessage;
865
+ createdAt?: Date;
866
+ updatedAt?: Date;
867
+ totalReactions?: number;
868
+ myReaction?: string | null;
869
+ reactions?: {
870
+ reaction?: string;
871
+ count?: number;
872
+ }[];
873
+ isForwarded?: boolean;
874
+ mentions?: {
875
+ mentionedId: string;
876
+ }[];
877
+ }
878
+
879
+ type MessageApp = {
880
+ id: string;
881
+ component: React__default.ReactNode;
882
+ };
883
+ type TOption = "add-participant" | "select-messages" | "new-group" | "edit-group" | "new-message" | "filter-all" | "filter-unread" | "filter-favorites" | "filter-groups" | "filter-recruitment" | "filter-main" | "filter-archived" | "filter-spam" | "filter-muted" | "filter-pinned" | "options";
884
+ type SelectionMode = "all" | "delete-only" | "forward-only";
885
+ type TMessageSubject = "service-request" | "service-request-demo" | "support" | "careers" | "other";
886
+ type UnreadState = {
887
+ count: number;
888
+ dot: boolean;
889
+ };
890
+ interface IUser {
891
+ id?: string;
892
+ name?: string;
893
+ avatar?: string;
894
+ isOnline?: boolean;
895
+ email?: string;
896
+ role?: string;
897
+ isGroupOwner?: boolean;
898
+ slug?: string;
899
+ conversationId?: string;
900
+ description?: string;
901
+ isGroup?: boolean;
902
+ isMuted?: boolean;
903
+ participants?: IUser[];
904
+ isGroupAdmin?: boolean;
905
+ }
906
+ type TMessage = {
907
+ id: string;
908
+ type: "text" | "audio" | "image" | "video" | "file" | "temporary";
909
+ content: string;
910
+ timestamp: number;
911
+ sender: "me" | "other" | {
912
+ name?: string;
913
+ avatar?: string;
914
+ id?: string;
915
+ slug?: string;
916
+ };
917
+ replyMessageId?: string;
918
+ isTemporary?: boolean;
919
+ attachmentType?: "image" | "audio" | "video" | "gif" | "file";
920
+ body?: string;
921
+ createdAt?: string;
922
+ senderId?: string;
923
+ replyMessage?: any;
924
+ };
925
+ type State = {
926
+ replyMessage?: IMessage | null;
927
+ setReplyMessage?: (message: IMessage | null) => void;
928
+ apps: MessageApp[];
929
+ selectedAppId: string | null;
930
+ setSelectedApp: (id: string) => void;
931
+ chatHeaderOption?: TOption;
932
+ onSelectChatHeaderOption?: (id: TOption) => void;
933
+ subject?: TMessageSubject;
934
+ onSelectMessageSubject?: (id: TMessageSubject) => void;
935
+ searchQuery?: string;
936
+ onSearchQuery?: (value: string) => void;
937
+ searchMessage?: string;
938
+ onSearchMessage?: (value: string) => void;
939
+ selectedChat?: IUser | null;
940
+ onSelectChat?: (user: IUser | null) => void;
941
+ messages: Record<string, TMessage[]>;
942
+ draftMessages: Record<string, string>;
943
+ setDraftMessage: (chatId: string, text: string) => void;
944
+ sendTextMessage: (chatId: string, text: string) => void;
945
+ sendAudioMessage: (chatId: string, blob: Blob) => void;
946
+ addTemporaryMessage: (conversationId: string, content: string, attachmentType?: "image" | "audio" | "video" | "gif" | "file", messageId?: string) => void;
947
+ removeTemporaryMessage: (conversationId: string, messageId: string) => void;
948
+ unreadChats: Record<string, UnreadState>;
949
+ markChatAsRead: (id?: string) => void;
950
+ incrementUnread: (id: string) => void;
951
+ resetUnread: (id?: string) => void;
952
+ clearDot: (id?: string) => void;
953
+ replaceTempConversationId: (tempId: string, realId: string) => void;
954
+ selectedUsers: IUser[];
955
+ addUser: (user: IUser) => void;
956
+ removeUser: (userId: string) => void;
957
+ resetSelectedUsers?: () => void;
958
+ groupToEdit?: {
959
+ id?: string;
960
+ name?: string;
961
+ description?: string;
962
+ participants?: string[];
963
+ image?: string;
964
+ } | null;
965
+ onEditGroup?: (group?: {
966
+ id?: string;
967
+ name?: string;
968
+ description?: string;
969
+ participants?: string[];
970
+ image?: string;
971
+ }) => void;
972
+ resetAll?: () => void;
973
+ selectedMessageIds: string[];
974
+ selectMessage: (id: string) => void;
975
+ clearSelectedMessages: () => void;
976
+ deleteSelectedMessages: () => void;
977
+ selectionMode: SelectionMode;
978
+ setSelectionMode: (mode: SelectionMode) => void;
979
+ mobileSelectedMessageId: string | null;
980
+ setMobileSelectedMessage: (id: string | null) => void;
981
+ forwardMessageIds: string[];
982
+ selectForwardMessage: (id: string) => void;
983
+ clearForwardMessages: () => void;
984
+ forwardTargets: Array<{
985
+ userId?: string;
986
+ conversationId?: string;
987
+ }>;
988
+ selectForwardTarget: (target: {
989
+ userId?: string;
990
+ conversationId?: string;
991
+ }) => void;
992
+ removeForwardTarget: (target: {
993
+ userId?: string;
994
+ conversationId?: string;
995
+ }) => void;
996
+ clearForwardTargets: () => void;
997
+ };
998
+
999
+ declare const useMessageAppStore: zustand.UseBoundStore<zustand.StoreApi<State>>;
1000
+
1001
+ declare function PageChatContent(): React__default.JSX.Element;
1002
+
1003
+ declare function PageChatContentHeader(): React__default.JSX.Element | null;
1004
+
1005
+ declare function PageChatInput(): React__default.JSX.Element;
1006
+
1007
+ declare function PageChatList(): React__default.JSX.Element;
1008
+
1009
+ declare function PageChatListWrapper(): React__default.JSX.Element;
1010
+
1011
+ type PageChatUserSuggestionsProps = {
1012
+ onUserClick?: () => void;
1013
+ };
1014
+ declare const PageChatUserSuggestions: React__default.ForwardRefExoticComponent<PageChatUserSuggestionsProps & React__default.RefAttributes<HTMLDivElement>>;
1015
+
1016
+ declare function PageMessageWrapper({ containerRef: externalContainerRef }: {
1017
+ containerRef?: React__default.RefObject<HTMLDivElement | null>;
1018
+ }): React__default.JSX.Element;
1019
+
1020
+ interface CommunityTriggerState {
1021
+ isCommunitiesOpen: boolean;
1022
+ openCommunity: () => void;
1023
+ closeCommunity: () => void;
1024
+ toggleCommunity: () => void;
1025
+ }
1026
+ declare const useCommunityTriggerStore: zustand.UseBoundStore<zustand.StoreApi<CommunityTriggerState>>;
1027
+
1028
+ type User$3 = {
1029
+ id: string;
1030
+ name: string;
1031
+ slug: string;
1032
+ email: string;
1033
+ avatar: string;
1034
+ isOpenToWork: boolean;
1035
+ isFollowed: boolean;
1036
+ isContact: boolean;
1037
+ headline?: string;
1038
+ };
1039
+
1040
+ type Contact = {
1041
+ id: string;
1042
+ followerId: string;
1043
+ followedId: string;
1044
+ isFollowing: boolean;
1045
+ createdAt: string;
1046
+ updatedAt: string;
1047
+ follower: User$3;
1048
+ followed: User$3;
1049
+ };
1050
+ type ContactsResponse = {
1051
+ contact: {
1052
+ meta: {
1053
+ currentPage: number;
1054
+ perPage: number;
1055
+ lastPage: number;
1056
+ total: number;
1057
+ };
1058
+ data: Contact[];
1059
+ };
1060
+ };
1061
+ type GetFollowersOptions = {
1062
+ page: number;
1063
+ perPage: number;
1064
+ sort: string;
1065
+ sortDir: string;
1066
+ filter?: {
1067
+ name?: string | null;
1068
+ slug?: string | null;
1069
+ };
1070
+ slug?: string;
1071
+ };
1072
+ declare const useApiGetContacts: (options: Omit<GetFollowersOptions, "page">, slug?: string, tabEnabled?: boolean) => {
1073
+ contacts: Contact[];
1074
+ fetchNextPage: (options?: _tanstack_react_query.FetchNextPageOptions) => Promise<_tanstack_react_query.InfiniteQueryObserverResult<_tanstack_react_query.InfiniteData<ContactsResponse, unknown>, Error>>;
1075
+ hasNextPage: boolean;
1076
+ isFetchingNextPage: boolean;
1077
+ isGettingContacts: boolean;
1078
+ meta: {
1079
+ currentPage: number;
1080
+ perPage: number;
1081
+ lastPage: number;
1082
+ total: number;
1083
+ } | undefined;
1084
+ };
1085
+
1086
+ declare function ContactsModal({ onClose, slug, }: {
1087
+ onClose: () => void;
1088
+ slug?: string;
1089
+ }): React__default.JSX.Element;
1090
+
1091
+ interface CountryDisplayProps {
1092
+ code: string;
1093
+ locale: "pt" | "fr" | "en";
1094
+ className?: string;
1095
+ }
1096
+ declare function CountryDisplay({ code, locale, className, }: CountryDisplayProps): React__default.JSX.Element | null;
1097
+ declare namespace CountryDisplay {
1098
+ var displayName: string;
1099
+ }
1100
+
1101
+ interface ICountryInputProps {
1102
+ locale?: "pt" | "fr" | "en";
1103
+ value?: string;
1104
+ onChange?: (value: {
1105
+ locale: string;
1106
+ name: string;
1107
+ }) => void;
1108
+ className?: string;
1109
+ defaultCode?: string;
1110
+ forNationality?: boolean;
1111
+ }
1112
+
1113
+ interface CountryInputProps extends Omit<ICountryInputProps, "locale" | "onChange"> {
1114
+ className?: string;
1115
+ buttonClassName?: string;
1116
+ inputClassName?: string;
1117
+ value?: string;
1118
+ onChange?: (payload: {
1119
+ code: string;
1120
+ name: string;
1121
+ }) => void;
1122
+ error?: string;
1123
+ floatable?: boolean;
1124
+ }
1125
+ declare function CountryInput({ className, buttonClassName, inputClassName, defaultCode, onChange, value, error, floatable, }: CountryInputProps): React__default.JSX.Element;
1126
+ declare namespace CountryInput {
1127
+ var displayName: string;
1128
+ }
1129
+
1130
+ interface DateInputProps$1 {
1131
+ value?: Date | string | null;
1132
+ onChange?: (date: Date | null) => void;
1133
+ minDate?: Date;
1134
+ maxDate?: Date;
1135
+ required?: boolean;
1136
+ showDateIcon?: boolean;
1137
+ disabled?: boolean;
1138
+ readOnly?: boolean;
1139
+ className?: string;
1140
+ placeholder?: string;
1141
+ inputClassName?: string;
1142
+ label?: string;
1143
+ "data-testid"?: string;
1144
+ error?: string;
1145
+ formattedAsMonthYear?: boolean;
1146
+ }
1147
+ declare function CustomDateInput({ value, error: errorMessage, onChange, minDate, maxDate, required, showDateIcon, disabled, readOnly, className, placeholder, inputClassName, label, "data-testid": testId, formattedAsMonthYear, }: DateInputProps$1): React__default.JSX.Element;
1148
+
1149
+ interface DateInputProps {
1150
+ label: string;
1151
+ onChange: (date: Date) => void;
1152
+ value: Date;
1153
+ required?: boolean;
1154
+ className?: string;
1155
+ error?: string;
1156
+ disabled?: boolean;
1157
+ calendarClassName?: string;
1158
+ triggerClassName?: string;
1159
+ mode?: "date" | "time" | "both" | "calendar";
1160
+ setHasError?: (value: boolean) => void;
1161
+ }
1162
+ declare function DateInput({ label, onChange, value, required, className, triggerClassName, error: externalError, disabled, calendarClassName, mode, setHasError, }: DateInputProps): React$1.JSX.Element;
1163
+
1164
+ interface AutoDownloadBannerProps {
1165
+ /** Número máximo de vezes que o banner pode ser mostrado (padrão: 5) */
1166
+ maxShows?: number;
1167
+ /** Delay inicial em milissegundos antes de mostrar o banner pela primeira vez (padrão: 30 segundos) */
1168
+ initialDelayMs?: number;
1169
+ /** Se deve mostrar apenas em dispositivos móveis (padrão: true) */
1170
+ mobileOnly?: boolean;
1171
+ /** Se o banner automático está ativo (padrão: true) */
1172
+ enabled?: boolean;
1173
+ }
1174
+ declare const AutoDownloadBanner: React__default.FC<AutoDownloadBannerProps>;
1175
+
1176
+ declare const DownloadModalTrigger: () => React__default.JSX.Element;
1177
+
1178
+ declare const DownloadMobileVersionBanner: () => React__default.JSX.Element;
1179
+
1180
+ interface BannerConfig {
1181
+ /** Número máximo de vezes que o banner pode ser mostrado (padrão: 5) */
1182
+ maxShows?: number;
1183
+ /** Delay inicial em milissegundos antes de mostrar o banner pela primeira vez (padrão: 5 segundos) */
1184
+ initialDelayMs?: number;
1185
+ /** Se deve mostrar apenas em dispositivos móveis (padrão: true) */
1186
+ mobileOnly?: boolean;
1187
+ }
1188
+ declare const usePeriodicDownloadBanner: (config?: BannerConfig) => {
1189
+ shouldShow: boolean;
1190
+ showBanner: () => void;
1191
+ resetBannerData: () => void;
1192
+ getBannerStats: () => {
1193
+ lastShown: Date | null;
1194
+ showsCount: number;
1195
+ remainingShows: number;
1196
+ canShow: boolean;
1197
+ shownInCurrentSession: boolean;
1198
+ };
1199
+ canShow: boolean;
1200
+ isMobile: boolean;
1201
+ };
1202
+
1203
+ interface ModalState$1 {
1204
+ isDownloadModalOpen: boolean;
1205
+ openDownloadModal: () => void;
1206
+ closeDownloadModal: () => void;
1207
+ toggleDownloadModal: () => void;
1208
+ }
1209
+ declare const useModalStore: zustand.UseBoundStore<zustand.StoreApi<ModalState$1>>;
1210
+
1211
+ interface ArticleContentProps {
1212
+ isOpen: boolean;
1213
+ onClose: () => void;
1214
+ }
1215
+ declare const ArticleContent: ({ isOpen, onClose }: ArticleContentProps) => React__default.JSX.Element;
1216
+
1217
+ type User$2 = {
1218
+ id?: string;
1219
+ name?: string;
1220
+ slug?: string;
1221
+ about?: string;
1222
+ email?: string;
1223
+ phone?: string;
1224
+ isOpenToWork?: boolean;
1225
+ gender?: string;
1226
+ banner?: string;
1227
+ isContact?: boolean;
1228
+ isFollowed?: boolean;
1229
+ isFollowedBy?: boolean;
1230
+ birthDate?: string;
1231
+ nationality?: string;
1232
+ headline?: string;
1233
+ country?: string;
1234
+ city?: string;
1235
+ street?: string;
1236
+ countryCode?: string;
1237
+ profession?: string;
1238
+ addresses?: {
1239
+ country?: string;
1240
+ city?: string;
1241
+ address?: string;
1242
+ }[];
1243
+ address?: {
1244
+ country?: string;
1245
+ city?: string;
1246
+ address?: string;
1247
+ };
1248
+ avatar?: string;
1249
+ avatarDisplay?: string;
1250
+ provider?: string;
1251
+ role?: string;
1252
+ status?: string;
1253
+ createdAt?: string;
1254
+ updatedAt?: string;
1255
+ isPublic?: boolean;
1256
+ currentCompany?: string;
1257
+ person?: IPerson$2;
1258
+ link?: string;
1259
+ links?: string[];
1260
+ };
1261
+ interface IPerson$2 {
1262
+ gender?: string;
1263
+ birthDate?: Date;
1264
+ nationality?: string;
1265
+ maritalStatus?: string;
1266
+ salaryExpectation?: string;
1267
+ countryCode?: string;
1268
+ }
1269
+
1270
+ type PostAttachmentProps$2 = {
1271
+ title?: string;
1272
+ description?: string;
1273
+ imageUrl?: string;
1274
+ url?: string;
1275
+ type: string;
1276
+ };
1277
+ type PostAuthor = {
1278
+ id?: string;
1279
+ name?: string;
1280
+ avatar?: string | null;
1281
+ slug?: string;
1282
+ headline?: string | null;
1283
+ rating?: number;
1284
+ isFollowing?: boolean;
1285
+ };
1286
+ type Post$2 = {
1287
+ user: User$2;
1288
+ /** Timeline / feed-with-go APIs expose publisher as `author` instead of `user`. */
1289
+ author?: PostAuthor;
1290
+ clientId?: string;
1291
+ postType: "NORMAL" | "REEL" | "ARTICLE";
1292
+ id: string;
1293
+ createdAt: string;
1294
+ scheduledAt?: string;
1295
+ bio?: string;
1296
+ content: string;
1297
+ totalShares?: number;
1298
+ totalReactions?: number;
1299
+ currentUserReaction?: string | undefined;
1300
+ totalComments?: number;
1301
+ attachment?: PostAttachmentProps$2;
1302
+ isFollowed?: boolean;
1303
+ isContact?: boolean;
1304
+ isArticle?: boolean;
1305
+ isDraft?: boolean;
1306
+ expiresAt?: string | null;
1307
+ link?: {
1308
+ title: string;
1309
+ description: string;
1310
+ imageUrl: string;
1311
+ url: string;
1312
+ };
1313
+ images: PostAssetProps$2[];
1314
+ videos: PostAssetProps$2[];
1315
+ reactions?: PostReactionsProps$2[];
1316
+ comments?: CommentProps$2[];
1317
+ sharedPostId?: string;
1318
+ page?: {
1319
+ id?: string;
1320
+ name?: string;
1321
+ slug?: string;
1322
+ sector?: string;
1323
+ banner?: string;
1324
+ logo?: string;
1325
+ site?: string;
1326
+ };
1327
+ media?: unknown;
1328
+ linkPreview?: unknown;
1329
+ visibility?: string;
1330
+ sharedPost?: Post$2;
1331
+ title?: string;
1332
+ stats?: {
1333
+ reactionCount?: number;
1334
+ commentCount?: number;
1335
+ shareCount?: number;
1336
+ };
1337
+ sharedContext?: unknown;
1338
+ mention?: {
1339
+ id: string;
1340
+ mentionedId: string;
1341
+ mentioned: User$2;
1342
+ }[];
1343
+ community?: {
1344
+ id: string;
1345
+ visibility?: string;
1346
+ slug: string;
1347
+ banner?: string;
1348
+ createdAt?: string;
1349
+ description?: string;
1350
+ image?: string;
1351
+ location?: string;
1352
+ name: string;
1353
+ owner?: {
1354
+ id: string;
1355
+ name: string;
1356
+ slug: string;
1357
+ email?: string;
1358
+ };
1359
+ ownerId?: string;
1360
+ members?: {
1361
+ userId: string;
1362
+ user: {
1363
+ id: string;
1364
+ name: string;
1365
+ slug: string;
1366
+ };
1367
+ }[];
1368
+ };
1369
+ userId?: string;
1370
+ sharedInCommunity?: {
1371
+ id: string;
1372
+ slug: string;
1373
+ visibility: string;
1374
+ name: string;
1375
+ banner?: string;
1376
+ image?: string;
1377
+ location?: string;
1378
+ ownerId: string;
1379
+ owner: {
1380
+ id: string;
1381
+ slug: string;
1382
+ name: string;
1383
+ };
1384
+ };
1385
+ communityId?: string;
1386
+ };
1387
+ type PostAssetProps$2 = {
1388
+ id: string;
1389
+ url: string;
1390
+ type?: "image" | "video" | "pdf";
1391
+ createdAt?: string;
1392
+ };
1393
+ type PostReactionsProps$2 = {
1394
+ id: string;
1395
+ userId: string;
1396
+ postId: string;
1397
+ reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY" | "AGREE" | "EUREKA" | "NO_COMMENT" | "SUPPORT" | "DISAGREE" | "DISLIKE";
1398
+ createdAt?: string;
1399
+ updatedAt?: string;
1400
+ user?: User$2;
1401
+ };
1402
+ type CommentReactionsProps$2 = {
1403
+ id: string;
1404
+ userId: string;
1405
+ commentId: string;
1406
+ reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY" | "AGREE" | "DISAGREE" | "EUREKA" | "NO_COMMENT" | "SUPPORT" | "DISLIKE";
1407
+ createdAt: string;
1408
+ updatedAt: string;
1409
+ user?: User$2;
1410
+ };
1411
+ type CommentProps$2 = {
1412
+ id: string;
1413
+ userId: string;
1414
+ postId: string;
1415
+ answerId: string;
1416
+ content: string;
1417
+ imageUrl: string;
1418
+ createdAt: string;
1419
+ updatedAt: string;
1420
+ user: User$2;
1421
+ reactions: CommentReactionsProps$2[];
1422
+ totalReactions?: number;
1423
+ answers: CommentProps$2[];
1424
+ totalAnswers: number;
1425
+ page?: {
1426
+ id: string;
1427
+ name: string;
1428
+ slug: string;
1429
+ sector: string;
1430
+ };
1431
+ };
1432
+
1433
+ interface IUserDraft {
1434
+ id: string;
1435
+ content: string;
1436
+ title: string;
1437
+ isArticle: boolean;
1438
+ isDraft: boolean;
1439
+ user: {
1440
+ name: string;
1441
+ slug: string;
1442
+ };
1443
+ }
1444
+
1445
+ type Profile$2 = {
1446
+ id: string;
1447
+ name: string;
1448
+ avatar: string;
1449
+ role?: string;
1450
+ isPage?: boolean;
1451
+ };
1452
+ type ArticleViewMode = "create" | "view";
1453
+ type ArticleStep = "create" | "preview" | "published";
1454
+ type ArticleMedia = {
1455
+ id: string;
1456
+ url: string;
1457
+ type: "image" | "video";
1458
+ file?: File;
1459
+ };
1460
+
1461
+ type ArticleState = {
1462
+ title: string;
1463
+ content: string;
1464
+ post: Post$2 | null;
1465
+ selectedProfile: Profile$2 | null;
1466
+ media: ArticleMedia[];
1467
+ uploadedMedia: string[];
1468
+ isUploading: boolean;
1469
+ selectedHashtags: string[];
1470
+ viewMode: ArticleViewMode;
1471
+ currentStep: ArticleStep;
1472
+ isModalOpen: boolean;
1473
+ isSaved: boolean;
1474
+ isDraft: boolean;
1475
+ isPublishing: boolean;
1476
+ isSavingDraft: boolean;
1477
+ lastSavedAt: Date | null;
1478
+ currentDraftId: string | null;
1479
+ setTitle: (title: string) => void;
1480
+ setContent: (content: string) => void;
1481
+ setPost: (post: Post$2 | null) => void;
1482
+ setSelectedProfile: (profile: Profile$2 | null) => void;
1483
+ addMedia: (media: ArticleMedia) => void;
1484
+ removeMedia: (id: string) => void;
1485
+ setIsUploading: (isUploading: boolean) => void;
1486
+ toggleHashtag: (hashtagId: string) => void;
1487
+ setSelectedHashtags: (hashtags: string[]) => void;
1488
+ loadDraft: (draft: IUserDraft) => void;
1489
+ clearDraft: () => void;
1490
+ setCurrentDraftId: (id: string | null) => void;
1491
+ setViewMode: (mode: ArticleViewMode) => void;
1492
+ setCurrentStep: (step: ArticleStep) => void;
1493
+ openModal: () => void;
1494
+ closeModal: () => void;
1495
+ setIsSaved: (isSaved: boolean) => void;
1496
+ setIsPublishing: (isPublishing: boolean) => void;
1497
+ setIsSavingDraft: (isSavingDraft: boolean) => void;
1498
+ markAsSaved: () => void;
1499
+ resetArticle: () => void;
1500
+ };
1501
+ declare const useArticleStore: zustand.UseBoundStore<zustand.StoreApi<ArticleState>>;
1502
+
1503
+ declare const useArticleNavigation: () => {
1504
+ viewMode: ArticleViewMode;
1505
+ currentStep: ArticleStep;
1506
+ isModalOpen: boolean;
1507
+ goToCreate: () => void;
1508
+ goToPreview: () => void;
1509
+ goToPublished: () => void;
1510
+ openModal: () => void;
1511
+ closeModal: () => void;
1512
+ resetAndClose: () => void;
1513
+ };
1514
+
1515
+ interface ArticleViewerProps {
1516
+ content: string;
1517
+ }
1518
+ declare function ArticleViewer({ content }: ArticleViewerProps): React__default.JSX.Element;
1519
+
1520
+ declare const PostCardArticle: ({ src, title, content, isCompact, classImage, fontSize }: {
1521
+ src?: string;
1522
+ title?: string;
1523
+ content?: string;
1524
+ classImage?: string;
1525
+ fontSize?: string;
1526
+ isCompact?: boolean;
1527
+ }) => React__default.JSX.Element;
1528
+
1529
+ type ModalState = {
1530
+ isOpen: boolean;
1531
+ modalId: string | null;
1532
+ openModal: () => void;
1533
+ closeModal: () => void;
1534
+ toggleModal: () => void;
1535
+ };
1536
+ declare const useModalArticleStore: zustand.UseBoundStore<zustand.StoreApi<ModalState>>;
1537
+
1538
+ declare function CreatePostCard(): React__default.JSX.Element;
1539
+
1540
+ type Profile$1 = {
1541
+ id: string;
1542
+ name: string;
1543
+ avatar: string;
1544
+ role?: string;
1545
+ isPage?: boolean;
1546
+ };
1547
+
1548
+ type ModalStep = 'main' | 'select-profile' | 'schedule' | 'scheduled-posts' | 'post-actions-menu' | 'edit-scheduled-post';
1549
+ interface CreatePostContentProps {
1550
+ readonly currentStep: ModalStep;
1551
+ readonly selectedProfile: Profile$1 | null;
1552
+ readonly scheduledDate: Date | null;
1553
+ readonly selectedPostForAction: string | null;
1554
+ readonly isSubmitting: boolean;
1555
+ readonly isLoading: boolean;
1556
+ readonly onProfileSelect: (profile: Profile$1) => void;
1557
+ readonly onGoToProfileSelection: () => void;
1558
+ readonly onGoToSchedule: () => void;
1559
+ readonly onScheduleSelect: (date: Date) => void;
1560
+ readonly onBackToMain: () => void;
1561
+ readonly onScheduleMore: () => void;
1562
+ readonly onPostActions: (postId: string) => void;
1563
+ readonly onEditScheduledPost: (postId: string) => void;
1564
+ readonly onDeleteScheduledPost: (postId?: string) => void;
1565
+ readonly onEditPostSubmit: (postId: string, updatedDate?: Date | null, shouldUpdateScheduledAt?: boolean) => void;
1566
+ readonly onSubmit: (type: 'REEL' | 'NORMAL') => void;
1567
+ readonly onClose?: () => void;
1568
+ readonly shouldLoadScheduledPosts?: boolean;
1569
+ readonly onPostDeleted?: () => void;
1570
+ readonly onPostUpdated?: () => void;
1571
+ readonly showScheduleOption?: boolean;
1572
+ }
1573
+ declare function CreatePostContent(props: CreatePostContentProps): React__default.JSX.Element;
1574
+
1575
+ type CreatePostFormProps = {
1576
+ readonly onSubmit: (data: {
1577
+ content: string;
1578
+ media: string[];
1579
+ }) => void;
1580
+ readonly onScheduleClick?: () => void;
1581
+ readonly scheduledDate?: Date | null;
1582
+ readonly showScheduleOption?: boolean;
1583
+ readonly onViewScheduledPosts?: () => void;
1584
+ };
1585
+ declare function CreatePostForm({ onSubmit, onScheduleClick, scheduledDate, showScheduleOption, onViewScheduledPosts, }: CreatePostFormProps): React__default.JSX.Element;
1586
+
1587
+ interface IMention {
1588
+ id: string;
1589
+ mentionedId: string;
1590
+ mentionType: string;
1591
+ mentionedCommunity?: {
1592
+ slug: string;
1593
+ name: string;
1594
+ id: string;
1595
+ image: string;
1596
+ };
1597
+ mentionedPage?: {
1598
+ name: string;
1599
+ slug: string;
1600
+ logo: string;
1601
+ id: string;
1602
+ };
1603
+ mentionedUser?: {
1604
+ id: string;
1605
+ name: string;
1606
+ slug: string;
1607
+ avatar: string;
1608
+ };
1609
+ }
1610
+
1611
+ interface CreatePostFormState {
1612
+ content: string;
1613
+ isUploading: boolean;
1614
+ hashtags?: string[];
1615
+ setHashtags: (value?: string[]) => void;
1616
+ mentions?: IMention[];
1617
+ setMentions: (mentions?: IMention[]) => void;
1618
+ mentionedUsers?: User$4[];
1619
+ setMentionedUsers: (users?: User$4[]) => void;
1620
+ uploadedMedia: string[];
1621
+ selectedFiles: File[];
1622
+ currentAssets: {
1623
+ id: string;
1624
+ url: string;
1625
+ }[];
1626
+ assetsToDelete: {
1627
+ id: string;
1628
+ url: string;
1629
+ }[];
1630
+ setCurrentAssets: (assets: {
1631
+ id: string;
1632
+ url: string;
1633
+ }[]) => void;
1634
+ setContent: (content: string) => void;
1635
+ handleMediaUpload: (files: FileList | null, ignore?: boolean) => void;
1636
+ removeMedia: (index: number) => void;
1637
+ replaceMedia: (index: number, file: File) => void;
1638
+ resetForm: () => void;
1639
+ resetFormContent: () => void;
1640
+ isValid: boolean;
1641
+ isCreatingThePost: boolean;
1642
+ setIsCreatingThePost: (isCreatingThePost: boolean) => void;
1643
+ uploadProgress: number;
1644
+ setUploadProgress: (progress: number) => void;
1645
+ isProcessingPost: boolean;
1646
+ setIsProcessingPost: (isProcessing: boolean) => void;
1647
+ progressText: string;
1648
+ setProgressText: (text: string) => void;
1649
+ }
1650
+ declare const useCreatePostFormStore: zustand.UseBoundStore<zustand.StoreApi<CreatePostFormState>>;
1651
+
1652
+ interface CreatePostModalProps {
1653
+ inline?: boolean;
1654
+ }
1655
+ declare function CreatePostModal({ inline }: CreatePostModalProps): React__default.JSX.Element;
1656
+
1657
+ type Profile = {
1658
+ id: string;
1659
+ name: string;
1660
+ avatar: string;
1661
+ role?: string;
1662
+ };
1663
+ type CreatePostModalFiltersProps = {
1664
+ readonly selectedProfile?: Profile | null;
1665
+ readonly onProfileSelectClick: () => void;
1666
+ };
1667
+ declare function CreatePostModalFilters({ selectedProfile, onProfileSelectClick, }: CreatePostModalFiltersProps): React__default.JSX.Element;
1668
+
1669
+ interface CreatePostReelFormProps {
1670
+ onSubmit: (data: {
1671
+ content: string;
1672
+ media: string[];
1673
+ }) => void;
1674
+ }
1675
+ declare function CreatePostReelForm({ onSubmit }: CreatePostReelFormProps): React__default.JSX.Element;
1676
+
1677
+ type CreatePostScheduleStepProps = {
1678
+ readonly onBack: () => void;
1679
+ readonly onScheduleSelect: (scheduledDate: Date) => void;
1680
+ readonly onClose?: () => void;
1681
+ readonly initialDate?: Date;
1682
+ readonly onViewScheduledPosts?: () => void;
1683
+ };
1684
+ declare function CreatePostScheduleStep({ onBack, onScheduleSelect, onClose, initialDate, onViewScheduledPosts, }: CreatePostScheduleStepProps): React__default.JSX.Element;
1685
+
1686
+ type CreatePostToolbarProps = {
1687
+ readonly onMediaSelect?: (files: FileList | null) => void;
1688
+ readonly isForReels?: boolean;
1689
+ readonly onScheduleClick?: () => void;
1690
+ readonly onMentionClick?: () => void;
1691
+ readonly showScheduleOption?: boolean;
1692
+ readonly hasMedia?: boolean;
1693
+ readonly onEmojiSelect?: (emoji: string) => void;
1694
+ readonly onViewScheduledPosts?: () => void;
1695
+ readonly onSubmit?: (type: 'REEL' | 'NORMAL') => void;
1696
+ readonly postType?: string;
1697
+ };
1698
+ declare function CreatePostToolbar({ onMediaSelect, isForReels, onScheduleClick, onMentionClick, hasMedia, onEmojiSelect, onViewScheduledPosts, onSubmit, postType, }: CreatePostToolbarProps): React__default.JSX.Element;
1699
+
1700
+ type User$1 = {
445
1701
  id?: string;
446
1702
  name?: string;
447
1703
  slug?: string;
448
- logo?: string;
449
- sector?: string;
450
- sectorId?: string;
451
- description?: string;
452
- aboutUs?: string;
453
- site?: string;
454
- organizationSize?: string;
455
- organizationType?: string;
456
- pageType?: string;
457
- isAcademic?: boolean;
458
- foundedYear?: number;
459
- address?: {
1704
+ about?: string;
1705
+ email?: string;
1706
+ phone?: string;
1707
+ isOpenToWork?: boolean;
1708
+ gender?: string;
1709
+ banner?: string;
1710
+ isContact?: boolean;
1711
+ isFollowed?: boolean;
1712
+ isFollowedBy?: boolean;
1713
+ birthDate?: string;
1714
+ nationality?: string;
1715
+ headline?: string;
1716
+ country?: string;
1717
+ city?: string;
1718
+ street?: string;
1719
+ countryCode?: string;
1720
+ profession?: string;
1721
+ addresses?: {
1722
+ country?: string;
460
1723
  city?: string;
1724
+ address?: string;
1725
+ }[];
1726
+ address?: {
461
1727
  country?: string;
1728
+ city?: string;
462
1729
  address?: string;
463
1730
  };
464
- phoneNumber?: string;
465
- followers?: IFollowers;
466
- followersCount?: number;
1731
+ avatar?: string;
1732
+ avatarDisplay?: string;
1733
+ provider?: string;
1734
+ role?: string;
1735
+ status?: string;
1736
+ createdAt?: string;
1737
+ updatedAt?: string;
1738
+ isPublic?: boolean;
1739
+ currentCompany?: string;
1740
+ person?: IPerson$1;
1741
+ link?: string;
1742
+ links?: string[];
1743
+ };
1744
+ interface IPerson$1 {
1745
+ gender?: string;
1746
+ birthDate?: Date;
1747
+ nationality?: string;
1748
+ maritalStatus?: string;
1749
+ salaryExpectation?: string;
1750
+ countryCode?: string;
467
1751
  }
468
1752
 
469
- declare const useApiGetPage: (slug?: string) => {
470
- page: IPage | null | undefined;
471
- isGettingPage: boolean;
1753
+ type PostAttachmentProps$1 = {
1754
+ title?: string;
1755
+ description?: string;
1756
+ imageUrl?: string;
1757
+ url?: string;
1758
+ type: string;
1759
+ };
1760
+ type Post$1 = {
1761
+ user: User$1;
1762
+ postType: "NORMAL" | "REEL" | "ARTICLE";
1763
+ id: string;
1764
+ createdAt: string;
1765
+ scheduledAt?: string;
1766
+ bio: string;
1767
+ content: string;
1768
+ totalShares: number;
1769
+ totalReactions?: number;
1770
+ totalComments?: number;
1771
+ attachment?: PostAttachmentProps$1;
1772
+ isFollowed?: boolean;
1773
+ isContact?: boolean;
1774
+ isArticle?: boolean;
1775
+ isDraft?: boolean;
1776
+ expiresAt?: string | null;
1777
+ link: {
1778
+ title: string;
1779
+ description: string;
1780
+ imageUrl: string;
1781
+ url: string;
1782
+ };
1783
+ images: PostAssetProps$1[];
1784
+ videos: PostAssetProps$1[];
1785
+ reactions: PostReactionsProps$1[];
1786
+ comments: CommentProps$1[];
1787
+ sharedPostId: string;
1788
+ pageId?: string;
1789
+ page?: {
1790
+ id?: string;
1791
+ name?: string;
1792
+ slug?: string;
1793
+ sector?: string;
1794
+ banner?: string;
1795
+ logo?: string;
1796
+ site?: string;
1797
+ };
1798
+ media?: unknown;
1799
+ linkPreview?: unknown;
1800
+ visibility?: string;
1801
+ sharedPost: Post$1;
1802
+ currentUserReaction?: string;
1803
+ title?: string;
1804
+ stats?: {
1805
+ reactionCount?: number;
1806
+ commentCount?: number;
1807
+ shareCount?: number;
1808
+ };
1809
+ sharedContext?: unknown;
1810
+ mention?: IMention[];
1811
+ community?: {
1812
+ id: string;
1813
+ visibility: string;
1814
+ slug: string;
1815
+ banner?: string;
1816
+ createdAt?: string;
1817
+ description?: string;
1818
+ image?: string;
1819
+ location?: string;
1820
+ name: string;
1821
+ owner: {
1822
+ id: string;
1823
+ name: string;
1824
+ slug: string;
1825
+ email?: string;
1826
+ };
1827
+ ownerId: string;
1828
+ members?: {
1829
+ userId: string;
1830
+ user: {
1831
+ id: string;
1832
+ name: string;
1833
+ slug: string;
1834
+ };
1835
+ }[];
1836
+ };
1837
+ userId?: string;
1838
+ sharedInCommunity?: {
1839
+ id: string;
1840
+ slug: string;
1841
+ visibility: string;
1842
+ name: string;
1843
+ banner?: string;
1844
+ image?: string;
1845
+ location?: string;
1846
+ ownerId: string;
1847
+ owner: {
1848
+ id: string;
1849
+ slug: string;
1850
+ name: string;
1851
+ };
1852
+ };
1853
+ communityId?: string;
1854
+ };
1855
+ type PostAssetProps$1 = {
1856
+ id: string;
1857
+ url: string;
1858
+ type?: "image" | "video" | "pdf";
1859
+ createdAt?: string;
1860
+ };
1861
+ type PostReactionsProps$1 = {
1862
+ id: string;
1863
+ userId: string;
1864
+ postId: string;
1865
+ reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY" | "AGREE" | "DISAGREE" | "NO_COMMENT" | "EUREKA" | "SUPPORT";
1866
+ createdAt: string;
1867
+ updatedAt: string;
1868
+ user: User$1;
1869
+ };
1870
+ type CommentReactionsProps$1 = {
1871
+ id: string;
1872
+ userId: string;
1873
+ commentId: string;
1874
+ reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY" | "AGREE" | "DISAGREE" | "EUREKA" | "NO_COMMENT" | "SUPPORT" | "DISLIKE";
1875
+ createdAt: string;
1876
+ updatedAt: string;
1877
+ user?: User$1;
1878
+ };
1879
+ type CommentProps$1 = {
1880
+ id: string;
1881
+ userId: string;
1882
+ postId: string;
1883
+ answerId: string;
1884
+ content: string;
1885
+ imageUrl: string;
1886
+ createdAt: string;
1887
+ updatedAt: string;
1888
+ user: User$1;
1889
+ reactions: CommentReactionsProps$1[];
1890
+ totalReactions?: number;
1891
+ answers: CommentProps$1[];
1892
+ totalAnswers: number;
1893
+ page?: {
1894
+ id: string;
1895
+ name: string;
1896
+ slug: string;
1897
+ sector: string;
1898
+ };
472
1899
  };
473
1900
 
474
- declare function useSetChatVisibility(): {
475
- isChatVisible: boolean;
476
- isToSendMessageToPage: boolean;
1901
+ type PostType = "text" | "media" | "job" | "reel" | "schedule" | null;
1902
+ type InitialStep = "main" | "schedule" | "scheduled-posts" | null;
1903
+ interface CreatePostState {
1904
+ isOpen: boolean;
1905
+ post: Post$1 | undefined;
1906
+ setPost: (post: Post$1 | undefined) => void;
1907
+ postType: PostType;
1908
+ initialStep: InitialStep;
1909
+ openModal: (type?: PostType, step?: InitialStep) => void;
1910
+ closeModal: (preserveFormState?: boolean) => void;
1911
+ operation: "create" | "update";
1912
+ setOperation: (operation: "create" | "update") => void;
1913
+ setInitialStep: (step: InitialStep) => void;
1914
+ }
1915
+ declare const useCreatePostStore: zustand.UseBoundStore<zustand.StoreApi<CreatePostState>>;
1916
+
1917
+ type TMentionType = "user" | "page" | "community";
1918
+ type TMentionItem = {
1919
+ id?: string;
1920
+ name?: string;
1921
+ slug?: string;
1922
+ logo?: string;
1923
+ image?: string;
1924
+ avatar?: string;
1925
+ headline?: string;
1926
+ type?: TMentionType;
477
1927
  };
478
1928
 
479
- declare function ChatView(): React__default.JSX.Element;
1929
+ type MentionableItem$1 = {
1930
+ id?: string;
1931
+ name?: string;
1932
+ slug?: string;
1933
+ image?: string;
1934
+ type?: 'user' | 'page' | 'community';
1935
+ originalData?: TMentionItem;
1936
+ };
480
1937
 
481
- declare function ChatViewDesktopPage(): React__default.JSX.Element;
1938
+ declare function injectMentionUIDs(text: string, mentionedItems: MentionableItem$1[]): string;
482
1939
 
483
- interface TargetEntity {
1940
+ type MentionableItem = {
484
1941
  id?: string;
485
1942
  name?: string;
486
- avatar?: string;
487
- logo?: string;
1943
+ slug?: string;
488
1944
  image?: string;
1945
+ type?: "user" | "page" | "community";
1946
+ originalData?: TMentionItem;
1947
+ };
1948
+
1949
+ interface MentionableTextareaRef {
1950
+ insertMention: () => void;
1951
+ focus: () => void;
1952
+ getEditor: () => HTMLDivElement | null;
489
1953
  }
490
- interface IMessageButtonProps {
491
- user?: TargetEntity;
492
- page?: TargetEntity;
493
- icon?: React__default.ReactNode;
494
- label?: string;
1954
+ type MentionableTextareaProps = {
1955
+ value: string;
1956
+ onChange: (value: string) => void;
1957
+ placeholder?: string;
495
1958
  className?: string;
496
1959
  disabled?: boolean;
497
- onClick?: () => void;
498
- isSharing?: boolean;
1960
+ onMentionsChange?: (mentions: IMention[]) => void;
1961
+ onKeyDown?: React__default.KeyboardEventHandler<HTMLDivElement>;
1962
+ minHeight?: number;
1963
+ maxHeight?: number;
1964
+ initialMentions?: MentionableItem[];
1965
+ };
1966
+ declare const MentionableTextarea: React__default.ForwardRefExoticComponent<MentionableTextareaProps & React__default.RefAttributes<MentionableTextareaRef>>;
1967
+
1968
+ type User = {
1969
+ id?: string;
1970
+ name?: string;
1971
+ slug?: string;
1972
+ about?: string;
1973
+ email?: string;
1974
+ phone?: string;
1975
+ isOpenToWork?: boolean;
1976
+ gender?: string;
1977
+ banner?: string;
1978
+ isContact?: boolean;
1979
+ isFollowed?: boolean;
1980
+ isFollowedBy?: boolean;
1981
+ birthDate?: string;
1982
+ nationality?: string;
1983
+ headline?: string;
1984
+ country?: string;
1985
+ city?: string;
1986
+ street?: string;
1987
+ countryCode?: string;
1988
+ profession?: string;
1989
+ addresses?: {
1990
+ country?: string;
1991
+ city?: string;
1992
+ address?: string;
1993
+ }[];
1994
+ address?: {
1995
+ country?: string;
1996
+ city?: string;
1997
+ address?: string;
1998
+ };
1999
+ avatar?: string;
2000
+ avatarDisplay?: string;
2001
+ provider?: string;
2002
+ role?: string;
2003
+ status?: string;
2004
+ createdAt?: string;
2005
+ updatedAt?: string;
2006
+ isPublic?: boolean;
2007
+ currentCompany?: string;
2008
+ person?: IPerson;
499
2009
  link?: string;
2010
+ links?: string[];
2011
+ };
2012
+ interface IPerson {
2013
+ gender?: string;
2014
+ birthDate?: Date;
2015
+ nationality?: string;
2016
+ maritalStatus?: string;
2017
+ salaryExpectation?: string;
2018
+ countryCode?: string;
2019
+ }
2020
+ type PostAttachmentProps = {
2021
+ title?: string;
2022
+ description?: string;
2023
+ imageUrl?: string;
2024
+ url?: string;
2025
+ slug?: string;
2026
+ type: string;
2027
+ };
2028
+ type Post = {
2029
+ user: User;
2030
+ postType: "NORMAL" | "REEL";
2031
+ id: string;
2032
+ slug: string;
2033
+ createdAt: string;
2034
+ scheduledAt?: string;
2035
+ bio: string;
2036
+ content: string;
2037
+ totalShares: number;
2038
+ totalReactions?: number;
2039
+ totalComments?: number;
2040
+ attachment?: PostAttachmentProps;
2041
+ isFollowed?: boolean;
2042
+ isContact?: boolean;
2043
+ isArticle?: boolean;
2044
+ expiresAt?: string | null;
2045
+ link: {
2046
+ title: string;
2047
+ description: string;
2048
+ imageUrl: string;
2049
+ url: string;
2050
+ slug: string;
2051
+ };
2052
+ images: PostAssetProps[];
2053
+ videos: PostAssetProps[];
2054
+ reactions: PostReactionsProps[];
2055
+ comments: CommentProps[];
2056
+ sharedPostId: string;
2057
+ page?: {
2058
+ id?: string;
2059
+ name?: string;
2060
+ slug?: string;
2061
+ sector?: string;
2062
+ banner?: string;
2063
+ logo?: string;
2064
+ site?: string;
2065
+ };
2066
+ media?: unknown;
2067
+ linkPreview?: unknown;
2068
+ visibility?: string;
2069
+ sharedPost: Post;
2070
+ title?: string;
2071
+ stats?: {
2072
+ reactionCount?: number;
2073
+ commentCount?: number;
2074
+ shareCount?: number;
2075
+ };
2076
+ sharedContext?: unknown;
2077
+ mention?: {
2078
+ id: string;
2079
+ mentionedId: string;
2080
+ mentioned: User;
2081
+ }[];
2082
+ community?: {
2083
+ id: string;
2084
+ visibility: string;
2085
+ slug: string;
2086
+ banner?: string;
2087
+ createdAt?: string;
2088
+ description?: string;
2089
+ image?: string;
2090
+ location?: string;
2091
+ name: string;
2092
+ owner: {
2093
+ id: string;
2094
+ name: string;
2095
+ slug: string;
2096
+ email?: string;
2097
+ };
2098
+ ownerId: string;
2099
+ members?: {
2100
+ userId: string;
2101
+ user: {
2102
+ id: string;
2103
+ name: string;
2104
+ slug: string;
2105
+ };
2106
+ }[];
2107
+ };
2108
+ userId?: string;
2109
+ sharedInCommunity?: {
2110
+ id: string;
2111
+ slug: string;
2112
+ visibility: string;
2113
+ name: string;
2114
+ banner?: string;
2115
+ image?: string;
2116
+ location?: string;
2117
+ ownerId: string;
2118
+ owner: {
2119
+ id: string;
2120
+ slug: string;
2121
+ name: string;
2122
+ };
2123
+ };
2124
+ communityId?: string;
2125
+ };
2126
+ type PostAssetProps = {
2127
+ id: string;
2128
+ url: string;
2129
+ type?: "image" | "video" | "pdf";
2130
+ createdAt?: string;
2131
+ };
2132
+ type PostReactionsProps = {
2133
+ id: string;
2134
+ userId: string;
2135
+ postId: string;
2136
+ reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY";
2137
+ createdAt: string;
2138
+ updatedAt: string;
2139
+ user: User;
2140
+ };
2141
+ type CommentReactionsProps = {
2142
+ id: string;
2143
+ userId: string;
2144
+ commentId: string;
2145
+ reaction: "LIKE" | "LOVE" | "HAHA" | "AGREE" | "DISLIKE" | "EUREKA" | "NO_COMMENT" | "SUPPORT";
2146
+ createdAt: string;
2147
+ updatedAt: string;
2148
+ user?: User;
2149
+ };
2150
+ type CommentProps = {
2151
+ id: string;
2152
+ userId: string;
2153
+ postId: string;
2154
+ answerId: string;
2155
+ content: string;
2156
+ imageUrl: string;
2157
+ createdAt: string;
2158
+ updatedAt: string;
2159
+ user: User;
2160
+ reactions: CommentReactionsProps[];
2161
+ totalReactions?: number;
2162
+ answers: CommentProps[];
2163
+ totalAnswers: number;
2164
+ page?: {
2165
+ id: string;
2166
+ name: string;
2167
+ slug: string;
2168
+ sector: string;
2169
+ };
2170
+ };
2171
+
2172
+ interface RepostFlowTriggerProps {
2173
+ post: Post;
2174
+ className?: string;
2175
+ }
2176
+ declare function RepostFlowTrigger({ post, className }: RepostFlowTriggerProps): React__default.JSX.Element;
2177
+
2178
+ interface ShareFlowTriggerProps {
2179
+ post: Post;
2180
+ className?: string;
2181
+ }
2182
+ declare function ShareFlowTrigger({ post, className }: ShareFlowTriggerProps): React__default.JSX.Element;
2183
+
2184
+ interface SavedItemsStoreProps {
2185
+ isOpen: boolean;
2186
+ openModal: () => void;
2187
+ closeModal: () => void;
2188
+ toggleModal: () => void;
2189
+ }
2190
+ declare const useSavedItemsStore: zustand.UseBoundStore<zustand.StoreApi<SavedItemsStoreProps>>;
2191
+
2192
+ declare function GradientModal({ onClose, children, isOpen, className, contentClassName, showGradient, }: {
2193
+ onClose: () => void;
2194
+ children: React__default.ReactNode;
2195
+ isOpen: boolean;
2196
+ className?: string;
2197
+ contentClassName?: string;
2198
+ showGradient?: boolean;
2199
+ }): React__default.JSX.Element;
2200
+
2201
+ type OportunityType = "jobs" | "candidancies" | null;
2202
+ interface OportunitiesState {
2203
+ openType: OportunityType;
2204
+ setOpenType: (type: OportunityType) => void;
2205
+ reset: () => void;
2206
+ }
2207
+ declare const useOportunitiesStore: zustand.UseBoundStore<zustand.StoreApi<OportunitiesState>>;
2208
+
2209
+ interface ICreateCompanyModalProps {
2210
+ isOpen: boolean;
2211
+ onClose: () => void;
2212
+ }
2213
+
2214
+ declare function CreateCompany({ isOpen, onClose }: ICreateCompanyModalProps): React__default.JSX.Element;
2215
+
2216
+ declare function PagesFeedTrigger({ onClick }: {
2217
+ onClick?: (e: React__default.MouseEvent) => void;
2218
+ }): React__default.JSX.Element;
2219
+
2220
+ declare function Header({ className }: {
2221
+ className?: string;
2222
+ }): React__default.JSX.Element;
2223
+
2224
+ interface CandidaciesTriggerState {
2225
+ isCandidaciesOpen: boolean;
2226
+ openCandidacies: () => void;
2227
+ closeCandidacies: () => void;
2228
+ toggleCandidacies: () => void;
500
2229
  }
501
- declare function MessageButton({ user, page, icon, label, className, disabled, onClick: customOnClick, isSharing, link, }: IMessageButtonProps): React__default.JSX.Element;
2230
+ declare const useCandidaciesTriggerStore: zustand.UseBoundStore<zustand.StoreApi<CandidaciesTriggerState>>;
502
2231
 
503
2232
  interface JobTriggerState {
504
2233
  isJobOpen: boolean;
@@ -506,156 +2235,300 @@ interface JobTriggerState {
506
2235
  closeJob: () => void;
507
2236
  toggleJob: () => void;
508
2237
  }
509
- declare const useJobTriggerStore: zustand.UseBoundStore<zustand.StoreApi<JobTriggerState>>;
2238
+ declare const useJobTriggerStore: zustand.UseBoundStore<Omit<zustand.StoreApi<JobTriggerState>, "setState" | "persist"> & {
2239
+ setState(partial: JobTriggerState | Partial<JobTriggerState> | ((state: JobTriggerState) => JobTriggerState | Partial<JobTriggerState>), replace?: false | undefined): unknown;
2240
+ setState(state: JobTriggerState | ((state: JobTriggerState) => JobTriggerState), replace: true): unknown;
2241
+ persist: {
2242
+ setOptions: (options: Partial<zustand_middleware.PersistOptions<JobTriggerState, unknown, unknown>>) => void;
2243
+ clearStorage: () => void;
2244
+ rehydrate: () => Promise<void> | void;
2245
+ hasHydrated: () => boolean;
2246
+ onHydrate: (fn: (state: JobTriggerState) => void) => () => void;
2247
+ onFinishHydration: (fn: (state: JobTriggerState) => void) => () => void;
2248
+ getOptions: () => Partial<zustand_middleware.PersistOptions<JobTriggerState, unknown, unknown>>;
2249
+ };
2250
+ }>;
510
2251
 
511
- interface CandidaciesTriggerState {
512
- isCandidaciesOpen: boolean;
513
- openCandidacies: () => void;
514
- closeCandidacies: () => void;
515
- toggleCandidacies: () => void;
2252
+ type TLocale = "pt" | "en" | "fr";
2253
+ type ToastVariant = "error" | "warning" | "info";
2254
+ interface IMirantesErrorHandlerConfig {
2255
+ onRedirect?: (path: string) => void;
2256
+ onLogout?: () => void;
2257
+ onRetry?: () => void;
2258
+ onCriticalError?: (title: string, message: string) => void;
2259
+ locale?: TLocale;
516
2260
  }
517
- declare const useCandidaciesTriggerStore: zustand.UseBoundStore<zustand.StoreApi<CandidaciesTriggerState>>;
518
2261
 
519
- interface CommunityTriggerState {
520
- isCommunitiesOpen: boolean;
521
- openCommunity: () => void;
522
- closeCommunity: () => void;
523
- toggleCommunity: () => void;
2262
+ interface MirantesErrorBoundaryProps {
2263
+ children: React__default.ReactNode;
2264
+ locale?: TLocale;
2265
+ fallback?: React__default.ReactNode | ((error: Error, reset: () => void) => React__default.ReactNode);
2266
+ onError?: (error: Error, info: React__default.ErrorInfo) => void;
524
2267
  }
525
- declare const useCommunityTriggerStore: zustand.UseBoundStore<zustand.StoreApi<CommunityTriggerState>>;
526
-
527
- type ModalVariant = "expanded" | "minimized" | "center";
528
- interface ModalPosition {
529
- top?: string;
530
- bottom?: string;
531
- left?: string;
532
- right?: string;
2268
+ interface MirantesErrorBoundaryState {
2269
+ hasError: boolean;
2270
+ error: Error | null;
533
2271
  }
534
- interface ModalAnimationConfig {
535
- duration?: number;
536
- ease?: string | number[];
537
- exitDuration?: number;
2272
+ declare class MirantesErrorBoundary extends React__default.Component<MirantesErrorBoundaryProps, MirantesErrorBoundaryState> {
2273
+ constructor(props: MirantesErrorBoundaryProps);
2274
+ static getDerivedStateFromError(error: Error): MirantesErrorBoundaryState;
2275
+ componentDidCatch(error: Error, info: React__default.ErrorInfo): void;
2276
+ handleReset(): void;
2277
+ render(): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | React__default.JSX.Element | null | undefined;
538
2278
  }
539
- interface BaseModalProps {
540
- isOpen: boolean;
541
- onClose: () => void;
542
- children: React.ReactNode;
2279
+
2280
+ declare function setErrorConfig(newConfig: IMirantesErrorHandlerConfig): void;
2281
+ declare function getErrorConfig(): IMirantesErrorHandlerConfig | null;
2282
+ declare function clearErrorConfig(): void;
2283
+
2284
+ declare function handleError(error: unknown, toastFunctions?: {
2285
+ errorToast: (props: {
2286
+ title: string;
2287
+ message?: string;
2288
+ actionLabel?: string;
2289
+ onAction?: () => void;
2290
+ }) => void;
2291
+ warningToast: (props: {
2292
+ title: string;
2293
+ message?: string;
2294
+ }) => void;
2295
+ infoToast: (props: {
2296
+ title: string;
2297
+ message?: string;
2298
+ }) => void;
2299
+ }): void;
2300
+ declare function handleAxiosError(error: any, toastFunctions?: any): void;
2301
+ declare function handleGraphQLError(error: any, toastFunctions?: any): void;
2302
+
2303
+ declare function useErrorHandler(): {
2304
+ handleError: (error: unknown) => void;
2305
+ handleAxiosError: (error: any) => void;
2306
+ handleGraphQLError: (error: any) => void;
2307
+ };
2308
+ declare function useAxiosErrorInterceptor(axiosInstance?: AxiosInstance): void;
2309
+
2310
+ interface MirantesChatButtonProps {
2311
+ forMobile?: boolean;
2312
+ chatForPage?: boolean;
543
2313
  }
544
- interface ModalStyleProps {
545
- className?: string;
546
- contentClassName?: string;
547
- overlayClassName?: string;
2314
+ declare function MirantesChatButton({ forMobile, chatForPage, }: MirantesChatButtonProps): React__default.JSX.Element;
2315
+
2316
+ declare function useOpenChat(): {
2317
+ isChatVisible: boolean;
2318
+ isToSendMessageToPage: boolean;
2319
+ toggleChat: () => void;
2320
+ openChat: (sendMessageToPage?: boolean) => void;
2321
+ closeChat: () => void;
2322
+ };
2323
+
2324
+ interface IndexProps {
2325
+ chatForPage?: boolean;
2326
+ isCompactMode?: boolean;
548
2327
  }
549
- interface ModalBehaviorProps {
550
- closeOnClickOutside?: boolean;
551
- closeOnEscape?: boolean;
552
- hideCloseButton?: boolean;
553
- preventBodyScroll?: boolean;
554
- showOverlay?: boolean;
2328
+ declare const Index: ({ chatForPage, isCompactMode }: IndexProps) => React__default.JSX.Element;
2329
+
2330
+ declare const MirantesPDFViewer: ({ url, className, }: {
2331
+ url?: string;
2332
+ className?: string;
2333
+ }) => React__default.JSX.Element;
2334
+
2335
+ interface CalendarProps {
2336
+ locale?: "pt" | "fr" | "en";
2337
+ onMarkAsUnavailable?: () => void;
2338
+ isModalOpen?: boolean;
2339
+ onClose?: () => void;
2340
+ calendarCardClassName?: string;
555
2341
  }
556
- interface ModalConfigProps {
557
- variant?: ModalVariant;
558
- position?: ModalPosition;
559
- animationConfig?: ModalAnimationConfig;
560
- header?: React.ReactNode;
561
- zIndex?: number;
562
- offsetTop?: number;
2342
+ declare function Calendar({ onMarkAsUnavailable, isModalOpen, onClose, calendarCardClassName, }: CalendarProps): React__default.JSX.Element;
2343
+
2344
+ interface PageFloatFooterProps {
2345
+ /**
2346
+ * Callback chamado quando o botão de adicionar é clicado.
2347
+ * Se fornecido, será usado em vez do comportamento padrão.
2348
+ */
2349
+ onAddClick?: () => void;
563
2350
  }
564
- interface AnimatedModalProps extends BaseModalProps, ModalStyleProps, ModalBehaviorProps, ModalConfigProps {
2351
+ declare function PageFloatFooter({ onAddClick }: PageFloatFooterProps): React__default.JSX.Element;
2352
+
2353
+ interface ControlButtonsProps {
2354
+ onPrevious: () => void;
2355
+ onNext: () => void;
2356
+ canGoPrevious: boolean;
2357
+ canGoNext: boolean;
565
2358
  }
2359
+ declare const ControlButtons: ({ onPrevious, onNext, canGoPrevious, canGoNext }: ControlButtonsProps) => React__default.JSX.Element;
566
2360
 
567
- declare function AnimatedModal({ isOpen, onClose, children, variant, className, contentClassName, overlayClassName, closeOnClickOutside, closeOnEscape, hideCloseButton, showOverlay, position, header, zIndex, offsetTop, preventBodyScroll }: AnimatedModalProps): React__default.JSX.Element;
2361
+ interface PdfFooterProps {
2362
+ currentPage: number;
2363
+ numPages: number;
2364
+ pdfUrl: string;
2365
+ isHovered: boolean;
2366
+ onToggleFullscreen?: () => void;
2367
+ variant?: 'default' | 'fullscreen';
2368
+ zoom?: number;
2369
+ onZoomIn?: () => void;
2370
+ onZoomOut?: () => void;
2371
+ }
2372
+ declare const PdfFooter: ({ currentPage, numPages, pdfUrl, isHovered, onToggleFullscreen, variant, zoom, onZoomIn, onZoomOut }: PdfFooterProps) => React__default.JSX.Element;
568
2373
 
569
- interface IResponsiveDrawerProps {
570
- isOpen: boolean;
2374
+ interface PdfFullscreenViewProps {
2375
+ pdfUrl: string;
2376
+ pdfUrlWithPage: string;
2377
+ currentPage: number;
2378
+ numPages: number;
2379
+ pdfName: string;
2380
+ zoom: number;
571
2381
  onClose: () => void;
572
- header?: React$1.ReactNode;
573
- footer?: React$1.ReactNode;
574
- children: React$1.ReactNode;
2382
+ onDownload: () => void;
2383
+ onOpenAccessibility: () => void;
2384
+ onZoomIn: () => void;
2385
+ onZoomOut: () => void;
2386
+ onPreviousPage: () => void;
2387
+ onNextPage: () => void;
2388
+ canGoPrevious: boolean;
2389
+ canGoNext: boolean;
2390
+ }
2391
+ declare const PdfFullscreenView: ({ pdfUrl, pdfUrlWithPage, currentPage, numPages, pdfName, zoom, onClose, onDownload, onOpenAccessibility, onZoomIn, onZoomOut, onPreviousPage, onNextPage, canGoPrevious, canGoNext, }: PdfFullscreenViewProps) => React__default.ReactPortal | null;
2392
+
2393
+ interface PdfReaderProps {
2394
+ pdfUrl?: string;
2395
+ totalPages?: number;
2396
+ pdfName?: string;
575
2397
  className?: string;
576
- side?: "right" | "left" | "bottom";
577
- swipeable?: boolean;
578
- swipeThreshold?: number;
2398
+ onMaximizeClicked?: () => void;
579
2399
  }
2400
+ declare const PdfReader: ({ pdfUrl, totalPages: initialTotalPages, pdfName: initialPdfName, className, onMaximizeClicked }: PdfReaderProps) => React__default.JSX.Element;
580
2401
 
581
- interface ExtendedDrawerProps extends IResponsiveDrawerProps {
582
- title?: string;
2402
+ interface PdfReaderHeaderProps {
2403
+ pdfName: string;
2404
+ currentPage: number;
2405
+ numPages: number;
2406
+ isHovered: boolean;
2407
+ variant?: 'default' | 'fullscreen';
2408
+ onOpenAccessibility?: () => void;
2409
+ onDownload?: () => void;
2410
+ onClose?: () => void;
583
2411
  }
584
- declare function ResponsiveDrawer({ isOpen, onClose, title, header, footer, children, className, swipeable, }: ExtendedDrawerProps): React$1.JSX.Element;
2412
+ declare const PdfReaderHeader: ({ pdfName, currentPage, numPages, isHovered, variant, onOpenAccessibility, onDownload, onClose }: PdfReaderHeaderProps) => React__default.JSX.Element;
585
2413
 
586
- type OportunityType = "jobs" | "candidancies" | null;
587
- interface OportunitiesState {
588
- openType: OportunityType;
589
- setOpenType: (type: OportunityType) => void;
590
- reset: () => void;
2414
+ interface ProgressBarProps {
2415
+ currentPage: number;
2416
+ totalPages: number;
591
2417
  }
592
- declare const useOportunitiesStore: zustand.UseBoundStore<zustand.StoreApi<OportunitiesState>>;
2418
+ declare const ProgressBar: ({ currentPage, totalPages }: ProgressBarProps) => React__default.JSX.Element;
593
2419
 
594
- declare function ChatContacts({ postId, onClose }: {
595
- postId?: string;
596
- onClose?: () => void;
597
- }): React__default.JSX.Element;
2420
+ declare function OpenClipsButton(): React__default.JSX.Element;
598
2421
 
599
- declare const DownloadMobileVersionBanner: () => React__default.JSX.Element;
2422
+ declare function PostTriggerModal(props: any): React__default.JSX.Element | null;
600
2423
 
601
- declare const DownloadModalTrigger: () => React__default.JSX.Element;
2424
+ declare function PostBackgroundManager({ displayMode, }: {
2425
+ displayMode?: "inline" | "floating";
2426
+ }): React__default.JSX.Element;
602
2427
 
603
- interface AutoDownloadBannerProps {
604
- /** Número máximo de vezes que o banner pode ser mostrado (padrão: 5) */
605
- maxShows?: number;
606
- /** Delay inicial em milissegundos antes de mostrar o banner pela primeira vez (padrão: 30 segundos) */
607
- initialDelayMs?: number;
608
- /** Se deve mostrar apenas em dispositivos móveis (padrão: true) */
609
- mobileOnly?: boolean;
610
- /** Se o banner automático está ativo (padrão: true) */
611
- enabled?: boolean;
612
- }
613
- declare const AutoDownloadBanner: React__default.FC<AutoDownloadBannerProps>;
2428
+ type TActions = "media" | "clips" | "saved-items" | "articles" | "mention" | "create-a-job" | "schedule-a-post";
614
2429
 
615
- interface ModalState {
616
- isDownloadModalOpen: boolean;
617
- openDownloadModal: () => void;
618
- closeDownloadModal: () => void;
619
- toggleDownloadModal: () => void;
620
- }
621
- declare const useModalStore: zustand.UseBoundStore<zustand.StoreApi<ModalState>>;
2430
+ declare function PostTrigger({ community, type: initialType, restrictProfileSelection, optimisticUpdateType, hiddenOptions, onClickAction, processModeDisplay, typeRender, }: {
2431
+ processModeDisplay?: "floating" | "inline";
2432
+ typeRender?: {
2433
+ render?: "input" | "button";
2434
+ buttonClassName?: string;
2435
+ buttonText?: string;
2436
+ };
2437
+ type?: "page" | "user" | "community";
2438
+ restrictProfileSelection?: boolean;
2439
+ optimisticUpdateType: "profile" | "pages" | "community" | "feed" | "feed-with-go";
2440
+ hiddenOptions?: TActions[];
2441
+ onClickAction: (action: "clips" | "saved-items" | "articles") => void;
2442
+ community?: {
2443
+ id?: string;
2444
+ name?: string;
2445
+ logo?: string;
2446
+ sector?: string;
2447
+ };
2448
+ }): React__default.JSX.Element;
622
2449
 
623
- interface BannerConfig {
624
- /** Número máximo de vezes que o banner pode ser mostrado (padrão: 5) */
625
- maxShows?: number;
626
- /** Delay inicial em milissegundos antes de mostrar o banner pela primeira vez (padrão: 5 segundos) */
627
- initialDelayMs?: number;
628
- /** Se deve mostrar apenas em dispositivos móveis (padrão: true) */
629
- mobileOnly?: boolean;
630
- }
631
- declare const usePeriodicDownloadBanner: (config?: BannerConfig) => {
632
- shouldShow: boolean;
633
- showBanner: () => void;
634
- resetBannerData: () => void;
635
- getBannerStats: () => {
636
- lastShown: Date | null;
637
- showsCount: number;
638
- remainingShows: number;
639
- canShow: boolean;
640
- shownInCurrentSession: boolean;
2450
+ declare const useApiCheckRater: ({ userId, pageId, communityId, forAPage, inView, }: {
2451
+ userId?: string;
2452
+ pageId?: string;
2453
+ communityId?: string;
2454
+ forAPage?: boolean;
2455
+ inView?: boolean;
2456
+ }) => {
2457
+ hasRated: boolean;
2458
+ isCheckingRater: boolean;
2459
+ error: Error | null;
2460
+ };
2461
+
2462
+ type AddRatingProps = {
2463
+ enableTitle?: boolean;
2464
+ variantStars?: "large" | "small" | "medium";
2465
+ starSize?: {
2466
+ width: number;
2467
+ height: number;
641
2468
  };
642
- canShow: boolean;
643
- isMobile: boolean;
2469
+ forAPage?: boolean;
2470
+ receiverPageId?: string;
2471
+ receiverUserId?: string;
2472
+ receiverCommunityId?: string;
2473
+ className?: string;
2474
+ isCommunity?: boolean;
2475
+ variant?: "default" | "feed" | "only-one-card";
2476
+ userSlug?: string;
2477
+ pageSlug?: string;
2478
+ communitySlug?: string;
2479
+ align?: "left" | "center" | "right";
2480
+ };
2481
+ declare function AddRating({ enableTitle, variantStars, starSize, forAPage, receiverPageId, receiverUserId, receiverCommunityId, className, isCommunity, variant, userSlug, pageSlug, communitySlug, align, }: AddRatingProps): React__default.JSX.Element;
2482
+
2483
+ type AvatarRatingBadgeProps = {
2484
+ name?: string;
2485
+ src?: string;
2486
+ rating: number;
2487
+ asPage?: boolean;
2488
+ isCommunity?: boolean;
2489
+ className?: string;
2490
+ slug?: string;
644
2491
  };
2492
+ declare function AvatarRatingBadge({ name, asPage, src, rating, isCommunity, className, slug, }: AvatarRatingBadgeProps): React__default.JSX.Element;
645
2493
 
646
- declare function PagesFeedTrigger(): React__default.JSX.Element;
2494
+ declare function RatingReviewsList({ variant, forPage, receiverPageId, receiverUserId, receiverCommunityId, inlinePreview, onOpenAllRatings, externalError, }: {
2495
+ variant?: "maximized" | "minimized";
2496
+ forPage?: boolean;
2497
+ receiverUserId?: string;
2498
+ receiverPageId?: string;
2499
+ receiverCommunityId?: string;
2500
+ inlinePreview?: boolean;
2501
+ onOpenAllRatings?: () => void;
2502
+ externalError?: unknown;
2503
+ }): React__default.JSX.Element | null;
647
2504
 
648
2505
  interface IRatingsCardProps {
649
2506
  isCurrentPageOrProfile?: boolean;
650
2507
  userId?: string;
651
2508
  pageId?: string;
2509
+ communityId?: string;
652
2510
  forAPage?: boolean;
653
2511
  currentUserId?: string;
2512
+ pageSlug?: string;
2513
+ userSlug?: string;
2514
+ communitySlug?: string;
654
2515
  }
2516
+ type TRatingUserCard = {
2517
+ user: {
2518
+ name: string;
2519
+ profession: string;
2520
+ avatar?: string;
2521
+ isOwner?: boolean;
2522
+ slug?: string;
2523
+ };
2524
+ anonymous?: boolean;
2525
+ rating: number;
2526
+ userRating: number;
2527
+ comment: string;
2528
+ createdAt: string | Date;
2529
+ };
655
2530
 
656
- declare function RatingsCard({ isCurrentPageOrProfile, pageId, userId, variant, forAPage, currentUserId, }: IRatingsCardProps & {
657
- variant?: "maximized" | "minimized";
658
- }): React__default.JSX.Element;
2531
+ declare function RatingUserCard({ user, rating, userRating, comment, createdAt, anonymous, }: TRatingUserCard): React__default.JSX.Element;
659
2532
 
660
2533
  interface RattingSuggestionCardProps {
661
2534
  asPage?: boolean;
@@ -677,8 +2550,22 @@ interface RattingSuggestionCardProps {
677
2550
  totalRatings?: number;
678
2551
  };
679
2552
  renderFollowButton?: ReactNode;
2553
+ averageRatingScore?: number;
2554
+ }
2555
+ declare function RattingSuggestionCard({ asPage, page, user, renderFollowButton, averageRatingScore, }: RattingSuggestionCardProps): React__default.JSX.Element;
2556
+
2557
+ declare function RatingsSummary({ variant, asPage, receiverUserId, receiverPageId, receiverCommunityId }: {
2558
+ variant?: "maximized" | "minimized";
2559
+ asPage?: boolean;
2560
+ receiverUserId?: string;
2561
+ receiverPageId?: string;
2562
+ receiverCommunityId?: string;
2563
+ }): React__default.JSX.Element;
2564
+
2565
+ interface ShareProfileDivProps extends RattingSuggestionCardProps {
2566
+ className?: string;
680
2567
  }
681
- declare function RattingSuggestionCard({ asPage, page, user, renderFollowButton, }: RattingSuggestionCardProps): React__default.JSX.Element;
2568
+ declare function ShareProfile({ asPage, page, user, className, }: ShareProfileDivProps): React__default.JSX.Element;
682
2569
 
683
2570
  interface ShareProfileButtonProps {
684
2571
  onClick: () => void;
@@ -689,11 +2576,162 @@ interface ShareProfileModalProps extends RattingSuggestionCardProps {
689
2576
  isOpen: boolean;
690
2577
  onClose: () => void;
691
2578
  }
692
- declare function ShareProfileModal({ asPage, page, user, isOpen, onClose }: ShareProfileModalProps): React__default.JSX.Element;
2579
+ declare function ShareProfileModal({ asPage, page, user, isOpen, onClose, }: ShareProfileModalProps): React__default.JSX.Element;
693
2580
 
694
- interface ShareProfileDivProps extends RattingSuggestionCardProps {
2581
+ declare function RatingsCard({ isCurrentPageOrProfile, pageId, userId, communityId, variant, forAPage, currentUserId, className, userSlug, pageSlug, communitySlug, }: IRatingsCardProps & {
2582
+ variant?: "maximized" | "minimized";
2583
+ className?: string;
2584
+ userSlug?: string;
2585
+ pageSlug?: string;
2586
+ communitySlug?: string;
2587
+ }): React__default.JSX.Element;
2588
+
2589
+ type TReaction = "AGREE" | "SUPPORT" | "EUREKA" | "NO_COMMENT" | "DISAGREE";
2590
+ type TReactionsFor = "feed" | "comments" | "profile" | "pages" | "communities";
2591
+ type TReactionPostSnapshot = {
2592
+ id?: string;
2593
+ totalReactions?: number;
2594
+ currentUserReaction?: string | null;
2595
+ myReaction?: string | null;
2596
+ reactions?: Array<{
2597
+ reaction?: string;
2598
+ userId?: string;
2599
+ }>;
2600
+ metrics?: {
2601
+ reactions?: Array<{
2602
+ type?: string;
2603
+ count?: number;
2604
+ }>;
2605
+ };
2606
+ };
2607
+ type TReactionsButtonProps = {
2608
+ className?: string;
2609
+ currentReaction?: TReaction | null;
2610
+ totalReactions?: number;
2611
+ topReactions?: TReaction[];
2612
+ /** When set (e.g. feed post), totals and top badges are derived from this object and stay in sync after optimistic updates. */
2613
+ post?: TReactionPostSnapshot;
2614
+ reactionsFor?: TReactionsFor;
2615
+ isGettingReactions?: boolean;
2616
+ postId?: string;
2617
+ commentId?: string;
2618
+ /** Profile feed cache (`postsByUser`) when `reactionsFor` is `"profile"`. */
2619
+ profileUserId?: string;
2620
+ /** Page posts cache (`post-page`) when `reactionsFor` is `"pages"`. */
2621
+ pageId?: string;
2622
+ };
2623
+
2624
+ declare function ReactionButton({ reactionsFor, currentReaction, isGettingReactions, topReactions, totalReactions, post, postId, commentId, profileUserId, pageId, className, }: TReactionsButtonProps): React__default.JSX.Element;
2625
+
2626
+ declare function getPostReactionSummary(post: TReactionPostSnapshot, options?: {
2627
+ fallbackTop?: TReaction[];
2628
+ fallbackTotal?: number;
2629
+ userId?: string;
2630
+ }): {
2631
+ totalReactions: number;
2632
+ topReactions: TReaction[];
2633
+ currentReaction: TReaction | null;
2634
+ };
2635
+ declare function applyOptimisticReactionToSnapshot(snapshot: TReactionPostSnapshot, postId: string, reaction: TReaction, userId: string, userInfo: {
2636
+ id: string;
2637
+ name: string;
2638
+ email: string;
2639
+ avatar: string;
2640
+ slug: string;
2641
+ headline: string;
2642
+ }): TReactionPostSnapshot;
2643
+
2644
+ type ReactionType = {
2645
+ emoji: ReactNode;
2646
+ id: string;
2647
+ label: string;
2648
+ };
2649
+
2650
+ type ReactionMetric = {
2651
+ type?: string;
2652
+ count?: number;
2653
+ };
2654
+ type ReactPostButtonProps = {
2655
+ post: Post$2;
2656
+ hideLabel?: boolean;
2657
+ className?: string;
2658
+ orientation?: "vertical" | "horizontal";
2659
+ compact?: boolean;
2660
+ currentReaction?: string | null;
2661
+ totalReactions?: number;
2662
+ reactions?: Post$2["reactions"];
2663
+ optimisticReactions?: PostReactionsProps$2[];
2664
+ topReactions?: ReactionType[];
2665
+ metrics?: {
2666
+ reactions?: ReactionMetric[];
2667
+ } | ReactionMetric[];
2668
+ };
2669
+ declare function ReactPostButton({ post, hideLabel, className, orientation, compact, currentReaction: currentReactionOverride, totalReactions: totalReactionsOverride, reactions: reactionsOverride, optimisticReactions: optimisticReactionsOverride, topReactions: topReactionsOverride, metrics, }: ReactPostButtonProps): JSX.Element;
2670
+
2671
+ type DrawerSide = 'bottom' | 'right';
2672
+ interface ResponsiveDrawerProps {
2673
+ isOpen: boolean;
2674
+ onClose: () => void;
2675
+ children: React__default.ReactNode;
2676
+ className?: string;
2677
+ fullWidth?: boolean;
2678
+ title?: string;
2679
+ header?: React__default.ReactNode;
2680
+ footer?: React__default.ReactNode;
2681
+ side?: DrawerSide;
2682
+ }
2683
+ declare const ResponsiveDrawer: React__default.FC<ResponsiveDrawerProps>;
2684
+
2685
+ declare function Spinner({ className }: {
2686
+ className?: string;
2687
+ }): React__default.JSX.Element;
2688
+
2689
+ interface SalaryInputWithButtonProps {
2690
+ label?: string;
2691
+ value?: {
2692
+ amount: string;
2693
+ currency: string;
2694
+ };
2695
+ onChange?: (val: {
2696
+ amount: string;
2697
+ currency: string;
2698
+ }) => void;
2699
+ onGenerate?: () => void;
2700
+ placeholder?: string;
2701
+ disabled?: boolean;
695
2702
  className?: string;
2703
+ buttonLabel?: string;
2704
+ }
2705
+ declare function SalaryInputWithButton({ label, value, onChange, onGenerate, placeholder, disabled, className, buttonLabel, }: SalaryInputWithButtonProps): React__default.JSX.Element;
2706
+
2707
+ interface SharePostModalProps {
2708
+ isOpen: boolean;
2709
+ onClose: () => void;
2710
+ post: Post;
2711
+ isProfileLink?: boolean;
2712
+ variant?: "share" | "repost";
2713
+ postCardComponent?: React__default.ReactNode | JSX.Element;
696
2714
  }
697
- declare function ShareProfile({ asPage, page, user, className }: ShareProfileDivProps): React__default.JSX.Element;
2715
+ declare const SharePostModal: ({ isOpen, onClose, post, variant, isProfileLink, postCardComponent, }: SharePostModalProps) => JSX.Element;
2716
+
2717
+ declare function getInitials(fullName: string): string;
2718
+
2719
+ declare function joinUrlWithPathAndQuery(baseUrl: string, path: string, query?: Record<string, string>): string;
2720
+
2721
+ declare function broadcastLogout(): void;
2722
+ declare function onLogout(callback: () => void): void;
2723
+ declare function closeLogoutChannel(): void;
2724
+
2725
+ declare function stringToObj<T>(inputString: string, separator: string): T | undefined;
2726
+
2727
+ type MobileWorkspaceBarProps = {
2728
+ onCreatePost?: () => void;
2729
+ onCreateReel?: () => void;
2730
+ onCreateJob?: () => void;
2731
+ onJobsClick?: () => void;
2732
+ };
2733
+ declare function MobileWorkspaceBar({ onCreateJob, }: MobileWorkspaceBarProps): React__default.JSX.Element;
2734
+
2735
+ declare function WorkspacePanel(): React__default.JSX.Element;
698
2736
 
699
- export { AddressAutocompleteInput, AnimatedModal, AutoDownloadBanner, BaseInput, Button, ChatContacts, ChatView, ChatViewDesktopPage, CheckBoxInput, ContactsModal, CountryDisplay, CountryInput, CustomDateInput, CustomDrawer, CustomDropdown, CustomSelectInput, DateInput, DownloadMobileVersionBanner, DownloadModalTrigger, GradientModal, Header, MessageButton, MirantesButton, MirantesFoundationProvider, PagesFeedTrigger, RadioButtonInput, RatingsCard, RattingSuggestionCard, ResponsiveDrawer, SalaryInputWithButton, Calendar as ScheduleCalendar, ShareProfile, ShareProfileButton, ShareProfileModal, Spinner, WorkspacePanel, clearSettingsCookie, closeLogoutChannel, getInitials, getSettingsFromCookie, joinUrlWithPathAndQuery, onLogout, stringToObj, useApiGetPage, useCandidaciesTriggerStore, useCommunityTriggerStore, useJobTriggerStore, useLoadSettings, useMirantesFoundation, useModalStore, useOportunitiesStore, usePeriodicDownloadBanner, useSetChatVisibility };
2737
+ export { ActivateAccountModal, AddRating, AddressAutocompleteInput, AnimatedModal, ArticleContent, ArticleViewer, AutoComponent, AutoDownloadBanner, AvatarRatingBadge, BaseInput, Button, ChatContacts, ChatListWrapper, ChatView, ChatViewDesktopPage, CheckBoxInput, closeLogoutChannel as CloseLogoutChannel, ContactsModal, ControlButtons, CountryDisplay, CountryInput, CreateCompany, CreatePostCard, CreatePostContent, CreatePostForm, CreatePostModal, CreatePostModalFilters, CreatePostReelForm, CreatePostScheduleStep, CreatePostToolbar, CustomDateInput, CustomDrawer, CustomDropdown, MirantesModal as CustomMirantesModal, CustomSelectInput, DateInput, DownloadMobileVersionBanner, DownloadModalTrigger, EmojiPickerButton, GradientModal, Header, type IMirantesErrorHandlerConfig, MentionableTextarea, MessageButton, MessagesButtonFromPage, MirantesButton, Index as MirantesChatApp, MirantesChatButton, MirantesErrorBoundary, MirantesFoundationProvider, MirantesPDFViewer, ResponsiveDrawer as MirantesResponsiveDrawer, MirantesSheets, MobileWorkspaceBar, NoRecruitmentResponsiveIlustration, onLogout as Onlogout, OpenClipsButton, PageChatContent, PageChatContentHeader, PageChatInput, PageChatList, PageChatListWrapper, PageChatUserSuggestions, PageFloatFooter, PageMessageWrapper, PagesFeedTrigger, PdfFooter, PdfFullscreenView, PdfReader, PdfReaderHeader, PostBackgroundManager, PostCardArticle, PostTrigger, PostTriggerModal, ProgressBar, RadioButtonInput, RatingReviewsList, RatingUserCard, RatingsCard, RatingsSummary, RattingSuggestionCard, ReactPostButton, ReactionButton, RepostFlowTrigger, ResponsiveDrawer$1 as ResponsiveDrawer, SalaryInputWithButton, Calendar as ScheduleCalendar, ShareFlowTrigger, SharePostModal, ShareProfile, ShareProfileButton, ShareProfileModal, Spinner, type TReactionPostSnapshot, type ToastVariant, TripleInputDate, PostBackgroundManager as UploadProgressManager, WorkspacePanel, applyOptimisticReactionToSnapshot, broadcastLogout, clearErrorConfig, clearSettingsCookie, clearUserSession, closeLogoutChannel, createPersistentState, dispatchLogoutEvent, getErrorConfig, getInitials, getPostReactionSummary, getSettingsFromCookie, handleAxiosError, handleError, handleGraphQLError, injectMentionUIDs, joinUrlWithPathAndQuery, onLogout, setErrorConfig, stringToObj, useApiCheckRater, useApiGetContacts, useApiGetPage, useApiLogout, useArticleNavigation, useArticleStore, useAssetVersions, useAutoDisplay, useAxiosErrorInterceptor, useBestAssetVersion, useCandidaciesTriggerStore, useCommunityTriggerStore, useCreatePostFormStore, useCreatePostStore, useErrorHandler, useJobTriggerStore, useLoadSettings, useLogout, useMessageAppStore, useMirantesFoundation, useMirantesToast, useModalArticleStore, useModalStore, useOpenChat, useOportunitiesStore, usePeriodicDownloadBanner, usePersistentUIState, useRegisterTracking, useRestorePendingChat, useSavedItemsStore, useSetChatVisibility, useSignedUrl, useUploadAsset, useUploadAssetsBulk };