@mirantes-micro/foundation-design-system 1.2.244 → 1.2.245

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.d.ts +1214 -1174
  2. package/dist/index.js +2923 -2922
  3. package/package.json +193 -193
package/dist/index.d.ts CHANGED
@@ -7,15 +7,53 @@ import { Socket } from 'socket.io-client';
7
7
  import * as zustand from 'zustand';
8
8
  import * as zustand_middleware from 'zustand/middleware';
9
9
 
10
- declare function Spinner({ className }: {
10
+ declare const NoRecruitmentResponsiveIlustration: ({ className, }: {
11
11
  className?: string;
12
- }): React__default.JSX.Element;
13
-
14
- declare function joinUrlWithPathAndQuery(baseUrl: string, path: string, query?: Record<string, string>): string;
12
+ }) => React__default.JSX.Element;
15
13
 
16
- declare function stringToObj<T>(inputString: string, separator: string): T | undefined;
14
+ interface IFollowerUser {
15
+ id?: string;
16
+ name?: string;
17
+ avatar?: string;
18
+ }
19
+ interface IFollowerPage {
20
+ id?: string;
21
+ name?: string;
22
+ logo?: string;
23
+ }
24
+ interface IFollowers {
25
+ page?: IFollowerPage[];
26
+ user?: IFollowerUser[];
27
+ }
28
+ interface IPage {
29
+ id?: string;
30
+ name?: string;
31
+ slug?: string;
32
+ logo?: string;
33
+ sector?: string;
34
+ sectorId?: string;
35
+ description?: string;
36
+ aboutUs?: string;
37
+ site?: string;
38
+ organizationSize?: string;
39
+ organizationType?: string;
40
+ pageType?: string;
41
+ isAcademic?: boolean;
42
+ foundedYear?: number;
43
+ address?: {
44
+ city?: string;
45
+ country?: string;
46
+ address?: string;
47
+ };
48
+ phoneNumber?: string;
49
+ followers?: IFollowers;
50
+ followersCount?: number;
51
+ }
17
52
 
18
- declare function getInitials(fullName: string): string;
53
+ declare const useApiGetPage: (slug?: string) => {
54
+ page: IPage | null | undefined;
55
+ isGettingPage: boolean;
56
+ };
19
57
 
20
58
  type TLocale = "pt" | "en" | "fr";
21
59
  interface IMirantesFoundationProviderProps {
@@ -161,171 +199,274 @@ type UsePathname = () => string;
161
199
 
162
200
  declare function MirantesFoundationProvider({ children, Notification, queryClient, onOpenCreatePostModal, commentComponents, pageTriggerComponents, openCreateJobModal, 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, }, }: IMirantesFoundationProviderProps): React__default.JSX.Element;
163
201
 
164
- declare function WorkspacePanel(): React__default.JSX.Element;
165
-
166
- type MobileWorkspaceBarProps = {
167
- onCreatePost?: () => void;
168
- onCreateReel?: () => void;
169
- onCreateJob?: () => void;
170
- onJobsClick?: () => void;
171
- };
172
- declare function MobileWorkspaceBar({ onCreateJob, }: MobileWorkspaceBarProps): React__default.JSX.Element;
173
-
174
- declare function Header({ className }: {
175
- className?: string;
176
- }): React__default.JSX.Element;
177
-
178
202
  declare function useMirantesFoundation(): IMirantesFoundationContext;
179
203
 
180
- declare function broadcastLogout(): void;
181
- declare function onLogout(callback: () => void): void;
182
- declare function closeLogoutChannel(): void;
204
+ /**
205
+ * Creates a persistent state from localStorage
206
+ * @param key - The localStorage key to use
207
+ * @param defaultValue - The default value if no stored value exists
208
+ * @returns The stored value or defaultValue
209
+ */
210
+ declare function createPersistentState<T>(key: string, defaultValue: T): T;
183
211
 
184
- interface LogoutOptions {
185
- broadcast?: boolean;
186
- reload?: boolean;
187
- redirectUrl?: string;
188
- domain?: string;
189
- secure?: boolean;
190
- }
191
- declare function clearUserSession(options?: LogoutOptions): void;
212
+ /**
213
+ * A hook that persists UI state (views, modals) to localStorage
214
+ * The state is automatically saved when changed and restored on page load
215
+ *
216
+ * @param key - The localStorage key to use for persistence
217
+ * @param defaultValue - The default value if no stored value exists
218
+ * @returns A tuple of [state, setState] similar to useState
219
+ *
220
+ * @example
221
+ * ```tsx
222
+ * // Persist view state
223
+ * const [view, setView] = usePersistentUIState<"home" | "chat">("ui-view", "home");
224
+ *
225
+ * // Persist modal state
226
+ * const [modal, setModal] = usePersistentUIState<string | null>("ui-modal", null);
227
+ * ```
228
+ */
229
+ declare function usePersistentUIState<T>(key: string, defaultValue: T): readonly [T, React$1.Dispatch<React$1.SetStateAction<T>>];
192
230
 
193
- interface DateInputProps$1 {
194
- label: string;
195
- onChange: (date: Date) => void;
196
- value: Date;
197
- required?: boolean;
198
- className?: string;
199
- error?: string;
200
- disabled?: boolean;
201
- calendarClassName?: string;
202
- triggerClassName?: string;
231
+ interface IUserVisibilitySettings {
232
+ userId?: string;
233
+ profileViewMode?: EProfileViewMode;
234
+ profilePublic?: boolean;
235
+ profilePictureScope?: EPictureVisibility;
236
+ followingVisibility?: EFollowingVisibility;
237
+ notifyMentionsInMedia?: boolean;
238
+ }
239
+ declare enum EProfileViewMode {
240
+ professional = "PROFESSIONAL_IDENTITY",
241
+ sector = "SECTOR_IDENTIFICATION",
242
+ confidential = "CONFIDENTIAL_MODE"
243
+ }
244
+ declare enum EPictureVisibility {
245
+ contacts = "CONTACTS",
246
+ network = "NETWORK",
247
+ public = "PUBLIC"
248
+ }
249
+ declare enum EFollowingVisibility {
250
+ me = "ONLY_ME",
251
+ contacts = "CONTACTS",
252
+ all = "EVERYONE"
203
253
  }
204
- declare function DateInput({ label, onChange, value, required, className, triggerClassName, error, disabled, calendarClassName, }: DateInputProps$1): React$1.JSX.Element;
205
254
 
206
- declare function GradientModal({ onClose, children, isOpen, className, contentClassName, showGradient, }: {
207
- onClose: () => void;
208
- children: React__default.ReactNode;
209
- isOpen: boolean;
210
- className?: string;
211
- contentClassName?: string;
212
- showGradient?: boolean;
213
- }): React__default.JSX.Element;
255
+ type Settings = {
256
+ language: {
257
+ interface: string;
258
+ content: string;
259
+ };
260
+ theme: string;
261
+ feed: {
262
+ preference: string;
263
+ allowMentions: boolean;
264
+ };
265
+ profile: IUserVisibilitySettings;
266
+ };
267
+ declare const getSettingsFromCookie: (cookieName: string) => Settings | null;
268
+ declare const clearSettingsCookie: (cookieName: string, options: {
269
+ domain: string;
270
+ isDev: boolean;
271
+ }) => void;
272
+ declare const useLoadSettings: () => Settings | null;
214
273
 
215
- interface DateInputProps {
216
- value?: Date | string | null;
217
- onChange?: (date: Date | null) => void;
218
- minDate?: Date;
219
- maxDate?: Date;
220
- required?: boolean;
221
- showDateIcon?: boolean;
222
- disabled?: boolean;
223
- readOnly?: boolean;
224
- className?: string;
225
- placeholder?: string;
226
- inputClassName?: string;
227
- label?: string;
228
- "data-testid"?: string;
229
- error?: string;
230
- formattedAsMonthYear?: boolean;
274
+ interface ICreateTelemetryEventInput {
275
+ input?: {
276
+ source?: {
277
+ app?: "mirantes-web" | "mirantes-mobile";
278
+ platform?: "ios" | "android" | "web";
279
+ version?: string;
280
+ environment?: string;
281
+ };
282
+ actor?: {
283
+ user_id?: string;
284
+ anonymous_id?: string;
285
+ session_id?: string;
286
+ };
287
+ context?: {
288
+ route?: string;
289
+ referrer?: string;
290
+ timezone?: string;
291
+ locale?: string;
292
+ country?: string;
293
+ device?: {
294
+ os?: string;
295
+ model?: string;
296
+ };
297
+ browser?: {
298
+ name?: string;
299
+ version?: string;
300
+ };
301
+ };
302
+ events?: ITelemetryEvent[];
303
+ };
231
304
  }
232
- 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;
233
-
234
- interface AddressSuggestion {
235
- country?: string;
236
- city?: string;
237
- latitude?: number;
238
- longitude?: number;
239
- address?: string;
305
+ interface ITelemetryEvent {
306
+ event_id?: string;
307
+ event_type?: "PAGE_VIEW" | "PROFILE_VIEW" | "CLICK_APPLY_JOB" | "SIGNUP_STEP_1" | "SIGNUP_STEP_2" | "SIGNUP_STEP_3" | "PERF_LOAD_TIME";
308
+ occurred_at?: Date;
309
+ metadata?: any;
240
310
  }
241
- interface AddressInputProps {
242
- value: string;
243
- onChange: (props?: AddressSuggestion) => void;
244
- className?: string;
245
- wrapperClassName?: string;
246
- inputClassName?: string;
247
- suggestionsWrapperClassName?: string;
248
- suggestionItemClassName?: string;
249
- selectedItemClassName?: string;
250
- loadingIndicatorClassName?: string;
251
- clearButtonClassName?: string;
252
- error?: string;
253
- errorClassName?: string;
254
- leftElement?: ReactNode;
255
- minChars?: number;
256
- debounceDelay?: number;
257
- placeholder?: string;
258
- noResultsText?: string;
259
- customLoading?: ReactNode;
260
- floatable?: boolean;
311
+ interface ICreateTelemetryEventOutput {
312
+ events?: {
313
+ id?: string;
314
+ }[];
261
315
  }
262
- 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;
263
316
 
264
- interface ICountryInputProps {
265
- locale?: "pt" | "fr" | "en";
266
- value?: string;
267
- onChange?: (value: {
268
- locale: string;
269
- name: string;
270
- }) => void;
271
- className?: string;
272
- defaultCode?: string;
273
- forNationality?: boolean;
274
- }
317
+ declare function useRegisterTracking(): {
318
+ registerEvent: _tanstack_react_query.UseMutateFunction<ICreateTelemetryEventOutput | null, Error, ICreateTelemetryEventInput, unknown>;
319
+ };
275
320
 
276
- interface CountryInputProps extends Omit<ICountryInputProps, "locale" | "onChange"> {
277
- className?: string;
278
- buttonClassName?: string;
279
- inputClassName?: string;
280
- value?: string;
281
- onChange?: (payload: {
282
- code: string;
283
- name: string;
284
- }) => void;
285
- error?: string;
286
- floatable?: boolean;
321
+ type OwnerType = 'user' | 'organization' | 'system' | 'chat';
322
+ interface AssetUploadRequest {
323
+ file: File;
324
+ owner_type: OwnerType;
325
+ owner_id?: string;
326
+ is_public: boolean;
287
327
  }
288
- declare function CountryInput({ className, buttonClassName, inputClassName, defaultCode, onChange, value, error, floatable, }: CountryInputProps): React__default.JSX.Element;
289
- declare namespace CountryInput {
290
- var displayName: string;
328
+ interface AssetUploadResponse {
329
+ data: {
330
+ url?: string;
331
+ assetId?: string;
332
+ };
333
+ message: string;
291
334
  }
292
-
293
- interface CountryDisplayProps {
294
- code: string;
295
- locale: "pt" | "fr" | "en";
296
- className?: string;
335
+ interface SignedUrlRequest {
336
+ assetId: string;
337
+ expiry: number;
338
+ version: 'small' | 'medium' | 'large';
297
339
  }
298
- declare function CountryDisplay({ code, locale, className, }: CountryDisplayProps): React__default.JSX.Element | null;
299
- declare namespace CountryDisplay {
300
- var displayName: string;
340
+ interface SignedUrlResponse {
341
+ data: {
342
+ expiresAt: string;
343
+ signedUrl: string;
344
+ version: string;
345
+ };
346
+ message: string;
301
347
  }
302
-
303
- interface SalaryInputWithButtonProps {
304
- label?: string;
305
- value?: {
306
- amount: string;
307
- currency: string;
348
+ type AssetVersionKey = 'small' | 'medium' | 'large';
349
+ interface AssetVersion {
350
+ format: string;
351
+ platforms: string[];
352
+ recommended: boolean;
353
+ url: string;
354
+ }
355
+ interface AssetVersionsResponse {
356
+ mediaID: string;
357
+ platform: string;
358
+ versions: Record<AssetVersionKey, AssetVersion>;
359
+ }
360
+ interface BulkAssetUploadItemSuccess {
361
+ status: 'success';
362
+ message: string;
363
+ data: {
364
+ url: string;
365
+ assetId?: string;
308
366
  };
309
- onChange?: (val: {
310
- amount: string;
311
- currency: string;
312
- }) => void;
313
- onGenerate?: () => void;
314
- placeholder?: string;
315
- disabled?: boolean;
316
- className?: string;
317
- buttonLabel?: string;
318
367
  }
319
- declare function SalaryInputWithButton({ label, value, onChange, onGenerate, placeholder, disabled, className, buttonLabel, }: SalaryInputWithButtonProps): React__default.JSX.Element;
368
+ interface BulkAssetUploadItemError {
369
+ status: 'error';
370
+ message: string;
371
+ data?: null;
372
+ }
373
+ type BulkAssetUploadItem = BulkAssetUploadItemSuccess | BulkAssetUploadItemError;
374
+ interface AssetUploadBulkRequest {
375
+ files: File[];
376
+ owner_type: OwnerType;
377
+ owner_id?: string;
378
+ is_public: boolean;
379
+ }
380
+ interface AssetUploadBulkResponse {
381
+ results: BulkAssetUploadItem[];
382
+ }
320
383
 
321
- interface CalendarProps {
322
- locale?: "pt" | "fr" | "en";
323
- onMarkAsUnavailable?: () => void;
324
- isModalOpen?: boolean;
325
- onClose?: () => void;
326
- calendarCardClassName?: string;
384
+ /** POST /assets */
385
+ declare function useUploadAsset(): {
386
+ uploadAssets: _tanstack_react_query.UseMutateFunction<AssetUploadResponse | null, Error, AssetUploadRequest, unknown>;
387
+ isUploadingAsset: boolean;
388
+ };
389
+ /** POST /assets/bulk */
390
+ declare function useUploadAssetsBulk(): {
391
+ uploadAssetsBulk: _tanstack_react_query.UseMutateFunction<AssetUploadBulkResponse | null, Error, AssetUploadBulkRequest, unknown>;
392
+ isUploadingBulk: boolean;
393
+ };
394
+ /** POST /assets/signed-url */
395
+ declare function useSignedUrl(): {
396
+ postSignedUrl: _tanstack_react_query.UseMutateFunction<SignedUrlResponse | null, Error, SignedUrlRequest, unknown>;
397
+ isPostingSignedUrl: boolean;
398
+ };
399
+ /** GET /assets/:id/versions */
400
+ declare function useAssetVersions(assetId?: string): {
401
+ assetVersions: AssetVersionsResponse | null | undefined;
402
+ isGettingAssetVersions: boolean;
403
+ error: Error | null;
404
+ };
405
+ /** Auto-picks best version (large/medium/small) */
406
+ declare function useBestAssetVersion(assetId?: string): {
407
+ url: string | null | undefined;
408
+ isGettingUrl: boolean;
409
+ error: Error | null;
410
+ };
411
+
412
+ interface LogoutOptions {
413
+ broadcast?: boolean;
414
+ reload?: boolean;
415
+ redirectUrl?: string;
416
+ domain?: string;
417
+ secure?: boolean;
327
418
  }
328
- declare function Calendar({ onMarkAsUnavailable, isModalOpen, onClose, calendarCardClassName, }: CalendarProps): React__default.JSX.Element;
419
+ declare function clearUserSession(options?: LogoutOptions): void;
420
+
421
+ declare function ChatView(): React__default.JSX.Element;
422
+
423
+ declare function useSetChatVisibility(): {
424
+ isChatVisible: boolean;
425
+ isToSendMessageToPage: boolean;
426
+ isPageContext: boolean;
427
+ };
428
+
429
+ type ModalVariant = "expanded" | "minimized" | "center";
430
+ interface ModalPosition {
431
+ top?: string;
432
+ bottom?: string;
433
+ left?: string;
434
+ right?: string;
435
+ }
436
+ interface ModalAnimationConfig {
437
+ duration?: number;
438
+ ease?: string | number[];
439
+ exitDuration?: number;
440
+ }
441
+ interface BaseModalProps {
442
+ isOpen: boolean;
443
+ onClose: () => void;
444
+ children: React.ReactNode;
445
+ }
446
+ interface ModalStyleProps {
447
+ className?: string;
448
+ contentClassName?: string;
449
+ overlayClassName?: string;
450
+ }
451
+ interface ModalBehaviorProps {
452
+ closeOnClickOutside?: boolean;
453
+ closeOnEscape?: boolean;
454
+ hideCloseButton?: boolean;
455
+ preventBodyScroll?: boolean;
456
+ showOverlay?: boolean;
457
+ }
458
+ interface ModalConfigProps {
459
+ variant?: ModalVariant;
460
+ position?: ModalPosition;
461
+ animationConfig?: ModalAnimationConfig;
462
+ header?: React.ReactNode;
463
+ zIndex?: number;
464
+ offsetTop?: number;
465
+ }
466
+ interface AnimatedModalProps extends BaseModalProps, ModalStyleProps, ModalBehaviorProps, ModalConfigProps {
467
+ }
468
+
469
+ declare function AnimatedModal({ isOpen, onClose, children, variant, className, contentClassName, overlayClassName, closeOnClickOutside, closeOnEscape, hideCloseButton, showOverlay, position, header, zIndex, offsetTop, preventBodyScroll }: AnimatedModalProps): React__default.JSX.Element;
329
470
 
330
471
  interface BaseInputProps extends InputHTMLAttributes<HTMLInputElement> {
331
472
  placeholder: string;
@@ -344,6 +485,16 @@ interface BaseInputProps extends InputHTMLAttributes<HTMLInputElement> {
344
485
  }
345
486
  declare const BaseInput: React__default.ForwardRefExoticComponent<BaseInputProps & React__default.RefAttributes<HTMLInputElement>>;
346
487
 
488
+ type ButtonProps = {
489
+ children: React__default.ReactNode;
490
+ type?: "button" | "submit";
491
+ className?: string;
492
+ onClick?: () => void;
493
+ disabled?: boolean;
494
+ isLoading?: boolean;
495
+ };
496
+ declare function Button({ children, className, disabled, isLoading, onClick, type, }: ButtonProps): React__default.JSX.Element;
497
+
347
498
  declare function CheckBoxInput({ isChecked, onClick, label, disabled, }: {
348
499
  isChecked?: boolean;
349
500
  onClick?: (e: React__default.MouseEvent<HTMLDivElement> | React__default.KeyboardEvent<HTMLDivElement>) => void;
@@ -364,11 +515,24 @@ type CustomDrawerProps = {
364
515
  };
365
516
  declare function CustomDrawer({ children, footer, title, onClose, className, isOpen, hideCloseBlock, direction, hiddenInMobileArticle, }: CustomDrawerProps): React__default.JSX.Element | null;
366
517
 
367
- declare function RadioButtonInput({ label, isSelected, onSelect, }: {
368
- label?: string;
369
- isSelected?: boolean;
370
- onSelect?: () => void;
371
- }): React__default.JSX.Element;
518
+ interface IDropdownProps {
519
+ trigger: React.ReactNode;
520
+ options: IDropdownOption[];
521
+ onSelect: (id: string) => void;
522
+ className?: string;
523
+ itemClassName?: string;
524
+ itemHoverClassName?: string;
525
+ animate?: boolean;
526
+ enableSearch?: boolean;
527
+ }
528
+ interface IDropdownOption {
529
+ id: string;
530
+ label: string;
531
+ value: string;
532
+ icon?: React.ReactNode;
533
+ }
534
+
535
+ declare function CustomDropdown({ trigger, options, onSelect, className, itemClassName, itemHoverClassName, animate, enableSearch, }: IDropdownProps): React__default.JSX.Element;
372
536
 
373
537
  type Option = {
374
538
  id: string;
@@ -393,15 +557,10 @@ type CustomSelectInputProps = {
393
557
  };
394
558
  declare function CustomSelectInput({ options, value, onChange, placeholder, className, enableSearch, floattable, required, showCheck, label, error, disabled, onSearch, isLoading, }: CustomSelectInputProps): React$1.JSX.Element;
395
559
 
396
- type ButtonProps = {
397
- children: React__default.ReactNode;
398
- type?: "button" | "submit";
399
- className?: string;
400
- onClick?: () => void;
401
- disabled?: boolean;
402
- isLoading?: boolean;
403
- };
404
- declare function Button({ children, className, disabled, isLoading, onClick, type, }: ButtonProps): React__default.JSX.Element;
560
+ interface EmojiPickerButtonProps {
561
+ onEmojiSelect: (emoji: string) => void;
562
+ }
563
+ declare const EmojiPickerButton: ({ onEmojiSelect }: EmojiPickerButtonProps) => React__default.JSX.Element;
405
564
 
406
565
  interface IMirantesButton extends React__default.ButtonHTMLAttributes<HTMLButtonElement> {
407
566
  label?: string;
@@ -412,124 +571,78 @@ interface IMirantesButton extends React__default.ButtonHTMLAttributes<HTMLButton
412
571
  }
413
572
  declare const MirantesButton: React__default.ForwardRefExoticComponent<IMirantesButton & React__default.RefAttributes<HTMLButtonElement>>;
414
573
 
415
- interface IDropdownProps {
416
- trigger: React.ReactNode;
417
- options: IDropdownOption[];
418
- onSelect: (id: string) => void;
574
+ declare function RadioButtonInput({ label, isSelected, onSelect, }: {
575
+ label?: string;
576
+ isSelected?: boolean;
577
+ onSelect?: () => void;
578
+ }): React__default.JSX.Element;
579
+
580
+ interface IResponsiveDrawerProps {
581
+ isOpen: boolean;
582
+ onClose: () => void;
583
+ header?: React$1.ReactNode;
584
+ footer?: React$1.ReactNode;
585
+ children: React$1.ReactNode;
419
586
  className?: string;
420
- itemClassName?: string;
421
- itemHoverClassName?: string;
422
- animate?: boolean;
423
- enableSearch?: boolean;
587
+ side?: "right" | "left" | "bottom";
588
+ swipeable?: boolean;
589
+ swipeThreshold?: number;
424
590
  }
425
- interface IDropdownOption {
426
- id: string;
427
- label: string;
428
- value: string;
429
- icon?: React.ReactNode;
430
- }
431
-
432
- declare function CustomDropdown({ trigger, options, onSelect, className, itemClassName, itemHoverClassName, animate, enableSearch, }: IDropdownProps): React__default.JSX.Element;
433
-
434
- declare function ContactsModal({ onClose, slug, }: {
435
- onClose: () => void;
436
- slug?: string;
437
- }): React__default.JSX.Element;
438
591
 
439
- interface IUserVisibilitySettings {
440
- userId?: string;
441
- profileViewMode?: EProfileViewMode;
442
- profilePublic?: boolean;
443
- profilePictureScope?: EPictureVisibility;
444
- followingVisibility?: EFollowingVisibility;
445
- notifyMentionsInMedia?: boolean;
446
- }
447
- declare enum EProfileViewMode {
448
- professional = "PROFESSIONAL_IDENTITY",
449
- sector = "SECTOR_IDENTIFICATION",
450
- confidential = "CONFIDENTIAL_MODE"
451
- }
452
- declare enum EPictureVisibility {
453
- contacts = "CONTACTS",
454
- network = "NETWORK",
455
- public = "PUBLIC"
456
- }
457
- declare enum EFollowingVisibility {
458
- me = "ONLY_ME",
459
- contacts = "CONTACTS",
460
- all = "EVERYONE"
592
+ interface ExtendedDrawerProps extends IResponsiveDrawerProps {
593
+ title?: string;
461
594
  }
595
+ declare function ResponsiveDrawer$1({ isOpen, onClose, title, header, footer, children, className, swipeable, }: ExtendedDrawerProps): React$1.JSX.Element;
462
596
 
463
- type Settings = {
464
- language: {
465
- interface: string;
466
- content: string;
467
- };
468
- theme: string;
469
- feed: {
470
- preference: string;
471
- allowMentions: boolean;
472
- };
473
- profile: IUserVisibilitySettings;
474
- };
475
- declare const getSettingsFromCookie: (cookieName: string) => Settings | null;
476
- declare const clearSettingsCookie: (cookieName: string, options: {
477
- domain: string;
478
- isDev: boolean;
479
- }) => void;
480
- declare const useLoadSettings: () => Settings | null;
481
-
482
- interface IFollowerUser {
483
- id?: string;
484
- name?: string;
485
- avatar?: string;
486
- }
487
- interface IFollowerPage {
488
- id?: string;
489
- name?: string;
490
- logo?: string;
597
+ interface AddressSuggestion {
598
+ country?: string;
599
+ city?: string;
600
+ latitude?: number;
601
+ longitude?: number;
602
+ address?: string;
491
603
  }
492
- interface IFollowers {
493
- page?: IFollowerPage[];
494
- user?: IFollowerUser[];
604
+ interface AddressInputProps {
605
+ value: string;
606
+ onChange: (props?: AddressSuggestion) => void;
607
+ className?: string;
608
+ wrapperClassName?: string;
609
+ inputClassName?: string;
610
+ suggestionsWrapperClassName?: string;
611
+ suggestionItemClassName?: string;
612
+ selectedItemClassName?: string;
613
+ loadingIndicatorClassName?: string;
614
+ clearButtonClassName?: string;
615
+ error?: string;
616
+ errorClassName?: string;
617
+ leftElement?: ReactNode;
618
+ minChars?: number;
619
+ debounceDelay?: number;
620
+ placeholder?: string;
621
+ noResultsText?: string;
622
+ customLoading?: ReactNode;
623
+ floatable?: boolean;
495
624
  }
496
- interface IPage {
497
- id?: string;
498
- name?: string;
499
- slug?: string;
500
- logo?: string;
501
- sector?: string;
502
- sectorId?: string;
503
- description?: string;
504
- aboutUs?: string;
505
- site?: string;
506
- organizationSize?: string;
507
- organizationType?: string;
508
- pageType?: string;
509
- isAcademic?: boolean;
510
- foundedYear?: number;
511
- address?: {
512
- city?: string;
513
- country?: string;
514
- address?: string;
515
- };
516
- phoneNumber?: string;
517
- followers?: IFollowers;
518
- followersCount?: number;
625
+ 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;
626
+
627
+ interface IActivateAccountModalProps {
628
+ isOpen: boolean;
629
+ onClose?: () => void;
519
630
  }
520
631
 
521
- declare const useApiGetPage: (slug?: string) => {
522
- page: IPage | null | undefined;
523
- isGettingPage: boolean;
524
- };
632
+ declare function ActivateAccountModal({ isOpen, onClose }: IActivateAccountModalProps): React__default.JSX.Element;
525
633
 
526
- declare function useSetChatVisibility(): {
527
- isChatVisible: boolean;
528
- isToSendMessageToPage: boolean;
529
- isPageContext: boolean;
530
- };
634
+ declare function ChatContacts({ postId, onClose, searchTerm, selectedContacts, setSelectedContacts }: {
635
+ postId?: string;
636
+ onClose?: () => void;
637
+ searchTerm?: string;
638
+ selectedContacts?: Set<string>;
639
+ setSelectedContacts?: (contacts: Set<string> | ((prev: Set<string>) => Set<string>)) => void;
640
+ }): React__default.JSX.Element;
531
641
 
532
- declare function ChatView(): React__default.JSX.Element;
642
+ declare function ChatListWrapper({ isChatOpen, isCompactMode }: {
643
+ isChatOpen?: boolean;
644
+ isCompactMode?: boolean;
645
+ }): React__default.JSX.Element;
533
646
 
534
647
  declare function ChatViewDesktopPage(): React__default.JSX.Element;
535
648
 
@@ -554,10 +667,26 @@ interface IMessageButtonProps$1 {
554
667
  }
555
668
  declare function MessageButton({ user, page, icon, label, className, disabled, onClick: customOnClick, isSharing, link, onConversationReady, }: IMessageButtonProps$1): React__default.JSX.Element;
556
669
 
557
- declare function ChatListWrapper({ isChatOpen, isCompactMode }: {
558
- isChatOpen?: boolean;
559
- isCompactMode?: boolean;
560
- }): React__default.JSX.Element;
670
+ interface TargetEntity {
671
+ id?: string;
672
+ name?: string;
673
+ avatar?: string;
674
+ logo?: string;
675
+ image?: string;
676
+ slug?: string;
677
+ }
678
+ interface IMessageButtonProps {
679
+ user?: TargetEntity;
680
+ label?: string;
681
+ className?: string;
682
+ disabled?: boolean;
683
+ onClick?: () => void;
684
+ variant?: 'default' | 'small';
685
+ onConversationReady?: (conversationId: string) => void;
686
+ }
687
+ declare function MessagesButtonFromPage({ user, label, className, disabled, onClick: customOnClick, variant, }: IMessageButtonProps): React__default.JSX.Element;
688
+
689
+ declare function useRestorePendingChat(): void;
561
690
 
562
691
  interface IMessage {
563
692
  id?: string;
@@ -715,73 +844,25 @@ type State = {
715
844
 
716
845
  declare const useMessageAppStore: zustand.UseBoundStore<zustand.StoreApi<State>>;
717
846
 
718
- interface IndexProps {
719
- chatForPage?: boolean;
720
- isCompactMode?: boolean;
721
- }
722
- declare const Index: ({ chatForPage, isCompactMode }: IndexProps) => React__default.JSX.Element;
847
+ declare function PageChatContent(): React__default.JSX.Element;
723
848
 
724
- interface MirantesChatButtonProps {
725
- forMobile?: boolean;
726
- chatForPage?: boolean;
727
- }
728
- declare function MirantesChatButton({ forMobile, chatForPage, }: MirantesChatButtonProps): React__default.JSX.Element;
849
+ declare function PageChatContentHeader(): React__default.JSX.Element | null;
729
850
 
730
- declare function useOpenChat(): {
731
- isChatVisible: boolean;
732
- isToSendMessageToPage: boolean;
733
- toggleChat: () => void;
734
- openChat: (sendMessageToPage?: boolean) => void;
735
- closeChat: () => void;
736
- };
851
+ declare function PageChatInput(): React__default.JSX.Element;
737
852
 
738
853
  declare function PageChatList(): React__default.JSX.Element;
739
854
 
740
- declare function PageChatContent(): React__default.JSX.Element;
855
+ declare function PageChatListWrapper(): React__default.JSX.Element;
741
856
 
742
857
  type PageChatUserSuggestionsProps = {
743
858
  onUserClick?: () => void;
744
859
  };
745
860
  declare const PageChatUserSuggestions: React__default.ForwardRefExoticComponent<PageChatUserSuggestionsProps & React__default.RefAttributes<HTMLDivElement>>;
746
861
 
747
- declare function PageChatListWrapper(): React__default.JSX.Element;
748
-
749
- declare function PageChatInput(): React__default.JSX.Element;
750
-
751
- declare function PageChatContentHeader(): React__default.JSX.Element | null;
752
-
753
862
  declare function PageMessageWrapper({ containerRef: externalContainerRef }: {
754
863
  containerRef?: React__default.RefObject<HTMLDivElement | null>;
755
864
  }): React__default.JSX.Element;
756
865
 
757
- interface JobTriggerState {
758
- isJobOpen: boolean;
759
- openJob: () => void;
760
- closeJob: () => void;
761
- toggleJob: () => void;
762
- }
763
- declare const useJobTriggerStore: zustand.UseBoundStore<Omit<zustand.StoreApi<JobTriggerState>, "setState" | "persist"> & {
764
- setState(partial: JobTriggerState | Partial<JobTriggerState> | ((state: JobTriggerState) => JobTriggerState | Partial<JobTriggerState>), replace?: false | undefined): unknown;
765
- setState(state: JobTriggerState | ((state: JobTriggerState) => JobTriggerState), replace: true): unknown;
766
- persist: {
767
- setOptions: (options: Partial<zustand_middleware.PersistOptions<JobTriggerState, unknown, unknown>>) => void;
768
- clearStorage: () => void;
769
- rehydrate: () => Promise<void> | void;
770
- hasHydrated: () => boolean;
771
- onHydrate: (fn: (state: JobTriggerState) => void) => () => void;
772
- onFinishHydration: (fn: (state: JobTriggerState) => void) => () => void;
773
- getOptions: () => Partial<zustand_middleware.PersistOptions<JobTriggerState, unknown, unknown>>;
774
- };
775
- }>;
776
-
777
- interface CandidaciesTriggerState {
778
- isCandidaciesOpen: boolean;
779
- openCandidacies: () => void;
780
- closeCandidacies: () => void;
781
- toggleCandidacies: () => void;
782
- }
783
- declare const useCandidaciesTriggerStore: zustand.UseBoundStore<zustand.StoreApi<CandidaciesTriggerState>>;
784
-
785
866
  interface CommunityTriggerState {
786
867
  isCommunitiesOpen: boolean;
787
868
  openCommunity: () => void;
@@ -790,98 +871,81 @@ interface CommunityTriggerState {
790
871
  }
791
872
  declare const useCommunityTriggerStore: zustand.UseBoundStore<zustand.StoreApi<CommunityTriggerState>>;
792
873
 
793
- type ModalVariant = "expanded" | "minimized" | "center";
794
- interface ModalPosition {
795
- top?: string;
796
- bottom?: string;
797
- left?: string;
798
- right?: string;
799
- }
800
- interface ModalAnimationConfig {
801
- duration?: number;
802
- ease?: string | number[];
803
- exitDuration?: number;
804
- }
805
- interface BaseModalProps {
806
- isOpen: boolean;
874
+ declare function ContactsModal({ onClose, slug, }: {
807
875
  onClose: () => void;
808
- children: React.ReactNode;
809
- }
810
- interface ModalStyleProps {
876
+ slug?: string;
877
+ }): React__default.JSX.Element;
878
+
879
+ interface CountryDisplayProps {
880
+ code: string;
881
+ locale: "pt" | "fr" | "en";
811
882
  className?: string;
812
- contentClassName?: string;
813
- overlayClassName?: string;
814
- }
815
- interface ModalBehaviorProps {
816
- closeOnClickOutside?: boolean;
817
- closeOnEscape?: boolean;
818
- hideCloseButton?: boolean;
819
- preventBodyScroll?: boolean;
820
- showOverlay?: boolean;
821
883
  }
822
- interface ModalConfigProps {
823
- variant?: ModalVariant;
824
- position?: ModalPosition;
825
- animationConfig?: ModalAnimationConfig;
826
- header?: React.ReactNode;
827
- zIndex?: number;
828
- offsetTop?: number;
829
- }
830
- interface AnimatedModalProps extends BaseModalProps, ModalStyleProps, ModalBehaviorProps, ModalConfigProps {
884
+ declare function CountryDisplay({ code, locale, className, }: CountryDisplayProps): React__default.JSX.Element | null;
885
+ declare namespace CountryDisplay {
886
+ var displayName: string;
831
887
  }
832
888
 
833
- declare function AnimatedModal({ isOpen, onClose, children, variant, className, contentClassName, overlayClassName, closeOnClickOutside, closeOnEscape, hideCloseButton, showOverlay, position, header, zIndex, offsetTop, preventBodyScroll }: AnimatedModalProps): React__default.JSX.Element;
834
-
835
- interface IResponsiveDrawerProps {
836
- isOpen: boolean;
837
- onClose: () => void;
838
- header?: React$1.ReactNode;
839
- footer?: React$1.ReactNode;
840
- children: React$1.ReactNode;
889
+ interface ICountryInputProps {
890
+ locale?: "pt" | "fr" | "en";
891
+ value?: string;
892
+ onChange?: (value: {
893
+ locale: string;
894
+ name: string;
895
+ }) => void;
841
896
  className?: string;
842
- side?: "right" | "left" | "bottom";
843
- swipeable?: boolean;
844
- swipeThreshold?: number;
897
+ defaultCode?: string;
898
+ forNationality?: boolean;
845
899
  }
846
900
 
847
- interface ExtendedDrawerProps extends IResponsiveDrawerProps {
848
- title?: string;
901
+ interface CountryInputProps extends Omit<ICountryInputProps, "locale" | "onChange"> {
902
+ className?: string;
903
+ buttonClassName?: string;
904
+ inputClassName?: string;
905
+ value?: string;
906
+ onChange?: (payload: {
907
+ code: string;
908
+ name: string;
909
+ }) => void;
910
+ error?: string;
911
+ floatable?: boolean;
912
+ }
913
+ declare function CountryInput({ className, buttonClassName, inputClassName, defaultCode, onChange, value, error, floatable, }: CountryInputProps): React__default.JSX.Element;
914
+ declare namespace CountryInput {
915
+ var displayName: string;
849
916
  }
850
- declare function ResponsiveDrawer$1({ isOpen, onClose, title, header, footer, children, className, swipeable, }: ExtendedDrawerProps): React$1.JSX.Element;
851
917
 
852
- type DrawerSide = 'bottom' | 'right';
853
- interface ResponsiveDrawerProps {
854
- isOpen: boolean;
855
- onClose: () => void;
856
- children: React__default.ReactNode;
918
+ interface DateInputProps$1 {
919
+ value?: Date | string | null;
920
+ onChange?: (date: Date | null) => void;
921
+ minDate?: Date;
922
+ maxDate?: Date;
923
+ required?: boolean;
924
+ showDateIcon?: boolean;
925
+ disabled?: boolean;
926
+ readOnly?: boolean;
857
927
  className?: string;
858
- fullWidth?: boolean;
859
- title?: string;
860
- header?: React__default.ReactNode;
861
- footer?: React__default.ReactNode;
862
- side?: DrawerSide;
928
+ placeholder?: string;
929
+ inputClassName?: string;
930
+ label?: string;
931
+ "data-testid"?: string;
932
+ error?: string;
933
+ formattedAsMonthYear?: boolean;
863
934
  }
864
- declare const ResponsiveDrawer: React__default.FC<ResponsiveDrawerProps>;
935
+ 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;
865
936
 
866
- type OportunityType = "jobs" | "candidancies" | null;
867
- interface OportunitiesState {
868
- openType: OportunityType;
869
- setOpenType: (type: OportunityType) => void;
870
- reset: () => void;
937
+ interface DateInputProps {
938
+ label: string;
939
+ onChange: (date: Date) => void;
940
+ value: Date;
941
+ required?: boolean;
942
+ className?: string;
943
+ error?: string;
944
+ disabled?: boolean;
945
+ calendarClassName?: string;
946
+ triggerClassName?: string;
871
947
  }
872
- declare const useOportunitiesStore: zustand.UseBoundStore<zustand.StoreApi<OportunitiesState>>;
873
-
874
- declare function ChatContacts({ postId, onClose, searchTerm, selectedContacts, setSelectedContacts }: {
875
- postId?: string;
876
- onClose?: () => void;
877
- searchTerm?: string;
878
- selectedContacts?: Set<string>;
879
- setSelectedContacts?: (contacts: Set<string> | ((prev: Set<string>) => Set<string>)) => void;
880
- }): React__default.JSX.Element;
881
-
882
- declare const DownloadMobileVersionBanner: () => React__default.JSX.Element;
883
-
884
- declare const DownloadModalTrigger: () => React__default.JSX.Element;
948
+ declare function DateInput({ label, onChange, value, required, className, triggerClassName, error, disabled, calendarClassName, }: DateInputProps): React$1.JSX.Element;
885
949
 
886
950
  interface AutoDownloadBannerProps {
887
951
  /** Número máximo de vezes que o banner pode ser mostrado (padrão: 5) */
@@ -895,13 +959,9 @@ interface AutoDownloadBannerProps {
895
959
  }
896
960
  declare const AutoDownloadBanner: React__default.FC<AutoDownloadBannerProps>;
897
961
 
898
- interface ModalState$1 {
899
- isDownloadModalOpen: boolean;
900
- openDownloadModal: () => void;
901
- closeDownloadModal: () => void;
902
- toggleDownloadModal: () => void;
903
- }
904
- declare const useModalStore: zustand.UseBoundStore<zustand.StoreApi<ModalState$1>>;
962
+ declare const DownloadModalTrigger: () => React__default.JSX.Element;
963
+
964
+ declare const DownloadMobileVersionBanner: () => React__default.JSX.Element;
905
965
 
906
966
  interface BannerConfig {
907
967
  /** Número máximo de vezes que o banner pode ser mostrado (padrão: 5) */
@@ -926,255 +986,116 @@ declare const usePeriodicDownloadBanner: (config?: BannerConfig) => {
926
986
  isMobile: boolean;
927
987
  };
928
988
 
929
- declare function PagesFeedTrigger({ onClick }: {
930
- onClick?: (e: React__default.MouseEvent) => void;
931
- }): React__default.JSX.Element;
989
+ interface ModalState$1 {
990
+ isDownloadModalOpen: boolean;
991
+ openDownloadModal: () => void;
992
+ closeDownloadModal: () => void;
993
+ toggleDownloadModal: () => void;
994
+ }
995
+ declare const useModalStore: zustand.UseBoundStore<zustand.StoreApi<ModalState$1>>;
932
996
 
933
- interface IRatingsCardProps {
934
- isCurrentPageOrProfile?: boolean;
935
- userId?: string;
936
- pageId?: string;
937
- communityId?: string;
938
- forAPage?: boolean;
939
- currentUserId?: string;
940
- pageSlug?: string;
941
- userSlug?: string;
942
- communitySlug?: string;
997
+ interface ArticleContentProps {
998
+ isOpen: boolean;
999
+ onClose: () => void;
943
1000
  }
944
- type TRatingUserCard = {
945
- user: {
946
- name: string;
947
- profession: string;
948
- avatar?: string;
949
- isOwner?: boolean;
1001
+ declare const ArticleContent: ({ isOpen, onClose }: ArticleContentProps) => React__default.JSX.Element;
1002
+
1003
+ type User$2 = {
1004
+ id?: string;
1005
+ name?: string;
1006
+ slug?: string;
1007
+ about?: string;
1008
+ email?: string;
1009
+ phone?: string;
1010
+ isOpenToWork?: boolean;
1011
+ gender?: string;
1012
+ banner?: string;
1013
+ isContact?: boolean;
1014
+ isFollowed?: boolean;
1015
+ isFollowedBy?: boolean;
1016
+ birthDate?: string;
1017
+ nationality?: string;
1018
+ headline?: string;
1019
+ country?: string;
1020
+ city?: string;
1021
+ street?: string;
1022
+ countryCode?: string;
1023
+ profession?: string;
1024
+ addresses?: {
1025
+ country?: string;
1026
+ city?: string;
1027
+ address?: string;
1028
+ }[];
1029
+ address?: {
1030
+ country?: string;
1031
+ city?: string;
1032
+ address?: string;
950
1033
  };
951
- anonymous?: boolean;
952
- rating: number;
953
- userRating: number;
954
- comment: string;
955
- createdAt: string | Date;
1034
+ avatar?: string;
1035
+ avatarDisplay?: string;
1036
+ provider?: string;
1037
+ role?: string;
1038
+ status?: string;
1039
+ createdAt?: string;
1040
+ updatedAt?: string;
1041
+ isPublic?: boolean;
1042
+ currentCompany?: string;
1043
+ person?: IPerson$2;
1044
+ link?: string;
1045
+ links?: string[];
956
1046
  };
1047
+ interface IPerson$2 {
1048
+ gender?: string;
1049
+ birthDate?: Date;
1050
+ nationality?: string;
1051
+ maritalStatus?: string;
1052
+ salaryExpectation?: string;
1053
+ countryCode?: string;
1054
+ }
957
1055
 
958
- declare function RatingsCard({ isCurrentPageOrProfile, pageId, userId, communityId, variant, forAPage, currentUserId, className, userSlug, pageSlug, communitySlug, }: IRatingsCardProps & {
959
- variant?: "maximized" | "minimized";
960
- className?: string;
961
- userSlug?: string;
962
- pageSlug?: string;
963
- communitySlug?: string;
964
- }): React__default.JSX.Element;
965
-
966
- interface RattingSuggestionCardProps {
967
- asPage?: boolean;
1056
+ type PostAttachmentProps$2 = {
1057
+ title?: string;
1058
+ description?: string;
1059
+ imageUrl?: string;
1060
+ url?: string;
1061
+ type: string;
1062
+ };
1063
+ type Post$2 = {
1064
+ user: User$2;
1065
+ postType: "NORMAL" | "REEL" | "ARTICLE";
1066
+ id: string;
1067
+ createdAt: string;
1068
+ scheduledAt?: string;
1069
+ bio: string;
1070
+ content: string;
1071
+ totalShares: number;
1072
+ totalReactions?: number;
1073
+ totalComments?: number;
1074
+ attachment?: PostAttachmentProps$2;
1075
+ isFollowed?: boolean;
1076
+ isContact?: boolean;
1077
+ isArticle?: boolean;
1078
+ isDraft?: boolean;
1079
+ expiresAt?: string | null;
1080
+ link: {
1081
+ title: string;
1082
+ description: string;
1083
+ imageUrl: string;
1084
+ url: string;
1085
+ };
1086
+ images: PostAssetProps$2[];
1087
+ videos: PostAssetProps$2[];
1088
+ reactions: PostReactionsProps$2[];
1089
+ comments: CommentProps$2[];
1090
+ sharedPostId: string;
968
1091
  page?: {
969
- slug?: string;
970
1092
  id?: string;
1093
+ name?: string;
1094
+ slug?: string;
971
1095
  sector?: string;
1096
+ banner?: string;
972
1097
  logo?: string;
973
- rating?: number;
974
- totalRatings?: number;
975
- };
976
- user?: {
977
- avatar?: string;
978
- name?: string;
979
- id?: string;
980
- headline?: string;
981
- slug?: string;
982
- rating?: number;
983
- totalRatings?: number;
984
- };
985
- renderFollowButton?: ReactNode;
986
- averageRatingScore?: number;
987
- }
988
- declare function RattingSuggestionCard({ asPage, page, user, renderFollowButton, averageRatingScore, }: RattingSuggestionCardProps): React__default.JSX.Element;
989
-
990
- interface ShareProfileButtonProps {
991
- onClick: () => void;
992
- }
993
- declare function ShareProfileButton({ onClick }: ShareProfileButtonProps): React__default.JSX.Element;
994
-
995
- interface ShareProfileModalProps extends RattingSuggestionCardProps {
996
- isOpen: boolean;
997
- onClose: () => void;
998
- }
999
- declare function ShareProfileModal({ asPage, page, user, isOpen, onClose, }: ShareProfileModalProps): React__default.JSX.Element;
1000
-
1001
- interface ShareProfileDivProps extends RattingSuggestionCardProps {
1002
- className?: string;
1003
- }
1004
- declare function ShareProfile({ asPage, page, user, className }: ShareProfileDivProps): React__default.JSX.Element;
1005
-
1006
- type AvatarRatingBadgeProps = {
1007
- name?: string;
1008
- src?: string;
1009
- rating: number;
1010
- asPage?: boolean;
1011
- isCommunity?: boolean;
1012
- };
1013
- declare function AvatarRatingBadge({ name, asPage, src, rating, isCommunity }: AvatarRatingBadgeProps): React__default.JSX.Element;
1014
-
1015
- type AddRatingProps = {
1016
- enableTitle?: boolean;
1017
- variantStars?: "large" | "small" | "medium";
1018
- starSize?: {
1019
- width: number;
1020
- height: number;
1021
- };
1022
- forAPage?: boolean;
1023
- receiverPageId?: string;
1024
- receiverUserId?: string;
1025
- receiverCommunityId?: string;
1026
- className?: string;
1027
- isCommunity?: boolean;
1028
- variant?: "default" | "feed";
1029
- userSlug?: string;
1030
- pageSlug?: string;
1031
- communitySlug?: string;
1032
- };
1033
- declare function AddRating({ enableTitle, variantStars, starSize, forAPage, receiverPageId, receiverUserId, receiverCommunityId, className, // <-- RECEBIDO
1034
- isCommunity, // <-- NOVA PROP
1035
- variant, // <-- NOVA PROP
1036
- userSlug, pageSlug, communitySlug, }: AddRatingProps): React__default.JSX.Element;
1037
-
1038
- interface PageFloatFooterProps {
1039
- /**
1040
- * Callback chamado quando o botão de adicionar é clicado.
1041
- * Se fornecido, será usado em vez do comportamento padrão.
1042
- */
1043
- onAddClick?: () => void;
1044
- }
1045
- declare function PageFloatFooter({ onAddClick }: PageFloatFooterProps): React__default.JSX.Element;
1046
-
1047
- declare const NoRecruitmentResponsiveIlustration: ({ className, }: {
1048
- className?: string;
1049
- }) => React__default.JSX.Element;
1050
-
1051
- declare function RatingReviewsList({ variant, forPage, receiverPageId, receiverUserId, receiverCommunityId, inlinePreview, onOpenAllRatings }: {
1052
- variant?: "maximized" | "minimized";
1053
- forPage?: boolean;
1054
- receiverUserId?: string;
1055
- receiverPageId?: string;
1056
- receiverCommunityId?: string;
1057
- inlinePreview?: boolean;
1058
- onOpenAllRatings?: () => void;
1059
- }): React__default.JSX.Element | null;
1060
-
1061
- declare function RatingsSummary({ variant, asPage, receiverUserId, receiverPageId, receiverCommunityId }: {
1062
- variant?: "maximized" | "minimized";
1063
- asPage?: boolean;
1064
- receiverUserId?: string;
1065
- receiverPageId?: string;
1066
- receiverCommunityId?: string;
1067
- }): React__default.JSX.Element;
1068
-
1069
- declare function RatingUserCard({ user, rating, userRating, comment, createdAt, anonymous, }: TRatingUserCard): React__default.JSX.Element;
1070
-
1071
- declare const useApiCheckRater: ({ userId, pageId, communityId, forAPage, }: {
1072
- userId?: string;
1073
- pageId?: string;
1074
- communityId?: string;
1075
- forAPage?: boolean;
1076
- }) => {
1077
- hasRated: boolean;
1078
- isCheckingRater: boolean;
1079
- };
1080
-
1081
- type User$2 = {
1082
- id?: string;
1083
- name?: string;
1084
- slug?: string;
1085
- about?: string;
1086
- email?: string;
1087
- phone?: string;
1088
- isOpenToWork?: boolean;
1089
- gender?: string;
1090
- banner?: string;
1091
- isContact?: boolean;
1092
- isFollowed?: boolean;
1093
- isFollowedBy?: boolean;
1094
- birthDate?: string;
1095
- nationality?: string;
1096
- headline?: string;
1097
- country?: string;
1098
- city?: string;
1099
- street?: string;
1100
- countryCode?: string;
1101
- profession?: string;
1102
- addresses?: {
1103
- country?: string;
1104
- city?: string;
1105
- address?: string;
1106
- }[];
1107
- address?: {
1108
- country?: string;
1109
- city?: string;
1110
- address?: string;
1111
- };
1112
- avatar?: string;
1113
- avatarDisplay?: string;
1114
- provider?: string;
1115
- role?: string;
1116
- status?: string;
1117
- createdAt?: string;
1118
- updatedAt?: string;
1119
- isPublic?: boolean;
1120
- currentCompany?: string;
1121
- person?: IPerson$2;
1122
- link?: string;
1123
- links?: string[];
1124
- };
1125
- interface IPerson$2 {
1126
- gender?: string;
1127
- birthDate?: Date;
1128
- nationality?: string;
1129
- maritalStatus?: string;
1130
- salaryExpectation?: string;
1131
- countryCode?: string;
1132
- }
1133
- type PostAttachmentProps$2 = {
1134
- title?: string;
1135
- description?: string;
1136
- imageUrl?: string;
1137
- url?: string;
1138
- slug?: string;
1139
- type: string;
1140
- };
1141
- type Post$2 = {
1142
- user: User$2;
1143
- postType: "NORMAL" | "REEL";
1144
- id: string;
1145
- slug: string;
1146
- createdAt: string;
1147
- scheduledAt?: string;
1148
- bio: string;
1149
- content: string;
1150
- totalShares: number;
1151
- totalReactions?: number;
1152
- totalComments?: number;
1153
- attachment?: PostAttachmentProps$2;
1154
- isFollowed?: boolean;
1155
- isContact?: boolean;
1156
- isArticle?: boolean;
1157
- expiresAt?: string | null;
1158
- link: {
1159
- title: string;
1160
- description: string;
1161
- imageUrl: string;
1162
- url: string;
1163
- slug: string;
1164
- };
1165
- images: PostAssetProps$2[];
1166
- videos: PostAssetProps$2[];
1167
- reactions: PostReactionsProps$2[];
1168
- comments: CommentProps$2[];
1169
- sharedPostId: string;
1170
- page?: {
1171
- id?: string;
1172
- name?: string;
1173
- slug?: string;
1174
- sector?: string;
1175
- banner?: string;
1176
- logo?: string;
1177
- site?: string;
1098
+ site?: string;
1178
1099
  };
1179
1100
  media?: unknown;
1180
1101
  linkPreview?: unknown;
@@ -1246,10 +1167,10 @@ type PostReactionsProps$2 = {
1246
1167
  id: string;
1247
1168
  userId: string;
1248
1169
  postId: string;
1249
- reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY";
1250
- createdAt: string;
1251
- updatedAt: string;
1252
- user: User$2;
1170
+ reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY" | "AGREE" | "DISLIKE" | "EUREKA" | "NO_COMMENT" | "SUPPORT" | "DISAGREE";
1171
+ createdAt?: string;
1172
+ updatedAt?: string;
1173
+ user?: User$2;
1253
1174
  };
1254
1175
  type CommentReactionsProps$2 = {
1255
1176
  id: string;
@@ -1282,33 +1203,284 @@ type CommentProps$2 = {
1282
1203
  };
1283
1204
  };
1284
1205
 
1285
- interface SharePostModalProps {
1286
- isOpen: boolean;
1287
- onClose: () => void;
1288
- post: Post$2;
1289
- isProfileLink?: boolean;
1290
- variant?: "share" | "repost";
1291
- }
1292
- declare const SharePostModal: ({ isOpen, onClose, post, variant, isProfileLink }: SharePostModalProps) => React__default.JSX.Element;
1293
-
1294
- interface IActivateAccountModalProps {
1295
- isOpen: boolean;
1296
- onClose?: () => void;
1206
+ interface IUserDraft {
1207
+ id: string;
1208
+ content: string;
1209
+ title: string;
1210
+ isArticle: boolean;
1211
+ isDraft: boolean;
1212
+ user: {
1213
+ name: string;
1214
+ slug: string;
1215
+ };
1297
1216
  }
1298
1217
 
1299
- declare function ActivateAccountModal({ isOpen, onClose }: IActivateAccountModalProps): React__default.JSX.Element;
1218
+ type Profile$2 = {
1219
+ id: string;
1220
+ name: string;
1221
+ avatar: string;
1222
+ role?: string;
1223
+ isPage?: boolean;
1224
+ };
1225
+ type ArticleViewMode = "create" | "view";
1226
+ type ArticleStep = "create" | "preview" | "published";
1227
+ type ArticleMedia = {
1228
+ id: string;
1229
+ url: string;
1230
+ type: "image" | "video";
1231
+ file?: File;
1232
+ };
1300
1233
 
1301
- type User$1 = {
1302
- id?: string;
1303
- name?: string;
1304
- slug?: string;
1305
- about?: string;
1306
- email?: string;
1307
- phone?: string;
1308
- isOpenToWork?: boolean;
1309
- gender?: string;
1310
- banner?: string;
1311
- isContact?: boolean;
1234
+ type ArticleState = {
1235
+ title: string;
1236
+ content: string;
1237
+ post: Post$2 | null;
1238
+ selectedProfile: Profile$2 | null;
1239
+ media: ArticleMedia[];
1240
+ uploadedMedia: string[];
1241
+ isUploading: boolean;
1242
+ selectedHashtags: string[];
1243
+ viewMode: ArticleViewMode;
1244
+ currentStep: ArticleStep;
1245
+ isModalOpen: boolean;
1246
+ isSaved: boolean;
1247
+ isDraft: boolean;
1248
+ isPublishing: boolean;
1249
+ isSavingDraft: boolean;
1250
+ lastSavedAt: Date | null;
1251
+ currentDraftId: string | null;
1252
+ setTitle: (title: string) => void;
1253
+ setContent: (content: string) => void;
1254
+ setPost: (post: Post$2 | null) => void;
1255
+ setSelectedProfile: (profile: Profile$2 | null) => void;
1256
+ addMedia: (media: ArticleMedia) => void;
1257
+ removeMedia: (id: string) => void;
1258
+ setIsUploading: (isUploading: boolean) => void;
1259
+ toggleHashtag: (hashtagId: string) => void;
1260
+ setSelectedHashtags: (hashtags: string[]) => void;
1261
+ loadDraft: (draft: IUserDraft) => void;
1262
+ clearDraft: () => void;
1263
+ setCurrentDraftId: (id: string | null) => void;
1264
+ setViewMode: (mode: ArticleViewMode) => void;
1265
+ setCurrentStep: (step: ArticleStep) => void;
1266
+ openModal: () => void;
1267
+ closeModal: () => void;
1268
+ setIsSaved: (isSaved: boolean) => void;
1269
+ setIsPublishing: (isPublishing: boolean) => void;
1270
+ setIsSavingDraft: (isSavingDraft: boolean) => void;
1271
+ markAsSaved: () => void;
1272
+ resetArticle: () => void;
1273
+ };
1274
+ declare const useArticleStore: zustand.UseBoundStore<zustand.StoreApi<ArticleState>>;
1275
+
1276
+ declare const useArticleNavigation: () => {
1277
+ viewMode: ArticleViewMode;
1278
+ currentStep: ArticleStep;
1279
+ isModalOpen: boolean;
1280
+ goToCreate: () => void;
1281
+ goToPreview: () => void;
1282
+ goToPublished: () => void;
1283
+ openModal: () => void;
1284
+ closeModal: () => void;
1285
+ resetAndClose: () => void;
1286
+ };
1287
+
1288
+ interface ArticleViewerProps {
1289
+ content: string;
1290
+ }
1291
+ declare function ArticleViewer({ content }: ArticleViewerProps): React__default.JSX.Element;
1292
+
1293
+ declare const PostCardArticle: ({ src, title, content, isCompact, classImage, fontSize }: {
1294
+ src?: string;
1295
+ title?: string;
1296
+ content?: string;
1297
+ classImage?: string;
1298
+ fontSize?: string;
1299
+ isCompact?: boolean;
1300
+ }) => React__default.JSX.Element;
1301
+
1302
+ type ModalState = {
1303
+ isOpen: boolean;
1304
+ modalId: string | null;
1305
+ openModal: () => void;
1306
+ closeModal: () => void;
1307
+ toggleModal: () => void;
1308
+ };
1309
+ declare const useModalArticleStore: zustand.UseBoundStore<zustand.StoreApi<ModalState>>;
1310
+
1311
+ declare function CreatePostCard(): React__default.JSX.Element;
1312
+
1313
+ type Profile$1 = {
1314
+ id: string;
1315
+ name: string;
1316
+ avatar: string;
1317
+ role?: string;
1318
+ isPage?: boolean;
1319
+ };
1320
+
1321
+ type ModalStep = 'main' | 'select-profile' | 'schedule' | 'scheduled-posts' | 'post-actions-menu' | 'edit-scheduled-post';
1322
+ interface CreatePostContentProps {
1323
+ readonly currentStep: ModalStep;
1324
+ readonly selectedProfile: Profile$1 | null;
1325
+ readonly scheduledDate: Date | null;
1326
+ readonly selectedPostForAction: string | null;
1327
+ readonly isSubmitting: boolean;
1328
+ readonly isLoading: boolean;
1329
+ readonly onProfileSelect: (profile: Profile$1) => void;
1330
+ readonly onGoToProfileSelection: () => void;
1331
+ readonly onGoToSchedule: () => void;
1332
+ readonly onScheduleSelect: (date: Date) => void;
1333
+ readonly onBackToMain: () => void;
1334
+ readonly onScheduleMore: () => void;
1335
+ readonly onPostActions: (postId: string) => void;
1336
+ readonly onEditScheduledPost: (postId: string) => void;
1337
+ readonly onDeleteScheduledPost: (postId?: string) => void;
1338
+ readonly onEditPostSubmit: (postId: string, updatedDate?: Date | null, shouldUpdateScheduledAt?: boolean) => void;
1339
+ readonly onSubmit: (type: 'REEL' | 'NORMAL') => void;
1340
+ readonly onClose?: () => void;
1341
+ readonly shouldLoadScheduledPosts?: boolean;
1342
+ readonly onPostDeleted?: () => void;
1343
+ readonly onPostUpdated?: () => void;
1344
+ readonly showScheduleOption?: boolean;
1345
+ }
1346
+ declare function CreatePostContent(props: CreatePostContentProps): React__default.JSX.Element;
1347
+
1348
+ type CreatePostFormProps = {
1349
+ readonly onSubmit: (data: {
1350
+ content: string;
1351
+ media: string[];
1352
+ }) => void;
1353
+ readonly onScheduleClick?: () => void;
1354
+ readonly scheduledDate?: Date | null;
1355
+ readonly showScheduleOption?: boolean;
1356
+ readonly onViewScheduledPosts?: () => void;
1357
+ };
1358
+ declare function CreatePostForm({ onSubmit, onScheduleClick, scheduledDate, showScheduleOption, onViewScheduledPosts, }: CreatePostFormProps): React__default.JSX.Element;
1359
+
1360
+ interface IMention {
1361
+ id: string;
1362
+ mentionedId: string;
1363
+ mentionType: string;
1364
+ mentionedCommunity?: {
1365
+ slug: string;
1366
+ name: string;
1367
+ id: string;
1368
+ image: string;
1369
+ };
1370
+ mentionedPage?: {
1371
+ name: string;
1372
+ slug: string;
1373
+ logo: string;
1374
+ id: string;
1375
+ };
1376
+ mentionedUser?: {
1377
+ id: string;
1378
+ name: string;
1379
+ slug: string;
1380
+ avatar: string;
1381
+ };
1382
+ }
1383
+
1384
+ interface CreatePostFormState {
1385
+ content: string;
1386
+ isUploading: boolean;
1387
+ hashtags?: string[];
1388
+ setHashtags: (value?: string[]) => void;
1389
+ mentions?: IMention[];
1390
+ setMentions: (mentions?: IMention[]) => void;
1391
+ mentionedUsers?: User$3[];
1392
+ setMentionedUsers: (users?: User$3[]) => void;
1393
+ uploadedMedia: string[];
1394
+ selectedFiles: File[];
1395
+ currentAssets: {
1396
+ id: string;
1397
+ url: string;
1398
+ }[];
1399
+ assetsToDelete: {
1400
+ id: string;
1401
+ url: string;
1402
+ }[];
1403
+ setCurrentAssets: (assets: {
1404
+ id: string;
1405
+ url: string;
1406
+ }[]) => void;
1407
+ setContent: (content: string) => void;
1408
+ handleMediaUpload: (files: FileList | null, ignore?: boolean) => void;
1409
+ removeMedia: (index: number) => void;
1410
+ replaceMedia: (index: number, file: File) => void;
1411
+ resetForm: () => void;
1412
+ resetFormContent: () => void;
1413
+ isValid: boolean;
1414
+ isCreatingThePost: boolean;
1415
+ setIsCreatingThePost: (isCreatingThePost: boolean) => void;
1416
+ uploadProgress: number;
1417
+ setUploadProgress: (progress: number) => void;
1418
+ isProcessingPost: boolean;
1419
+ setIsProcessingPost: (isProcessing: boolean) => void;
1420
+ progressText: string;
1421
+ setProgressText: (text: string) => void;
1422
+ }
1423
+ declare const useCreatePostFormStore: zustand.UseBoundStore<zustand.StoreApi<CreatePostFormState>>;
1424
+
1425
+ interface CreatePostModalProps {
1426
+ inline?: boolean;
1427
+ }
1428
+ declare function CreatePostModal({ inline }: CreatePostModalProps): React__default.JSX.Element;
1429
+
1430
+ type Profile = {
1431
+ id: string;
1432
+ name: string;
1433
+ avatar: string;
1434
+ role?: string;
1435
+ };
1436
+ type CreatePostModalFiltersProps = {
1437
+ readonly selectedProfile?: Profile | null;
1438
+ readonly onProfileSelectClick: () => void;
1439
+ };
1440
+ declare function CreatePostModalFilters({ selectedProfile, onProfileSelectClick, }: CreatePostModalFiltersProps): React__default.JSX.Element;
1441
+
1442
+ interface CreatePostReelFormProps {
1443
+ onSubmit: (data: {
1444
+ content: string;
1445
+ media: string[];
1446
+ }) => void;
1447
+ }
1448
+ declare function CreatePostReelForm({ onSubmit }: CreatePostReelFormProps): React__default.JSX.Element;
1449
+
1450
+ type CreatePostScheduleStepProps = {
1451
+ readonly onBack: () => void;
1452
+ readonly onScheduleSelect: (scheduledDate: Date) => void;
1453
+ readonly onClose?: () => void;
1454
+ readonly initialDate?: Date;
1455
+ readonly onViewScheduledPosts?: () => void;
1456
+ };
1457
+ declare function CreatePostScheduleStep({ onBack, onScheduleSelect, onClose, initialDate, onViewScheduledPosts, }: CreatePostScheduleStepProps): React__default.JSX.Element;
1458
+
1459
+ type CreatePostToolbarProps = {
1460
+ readonly onMediaSelect?: (files: FileList | null) => void;
1461
+ readonly isForReels?: boolean;
1462
+ readonly onScheduleClick?: () => void;
1463
+ readonly onMentionClick?: () => void;
1464
+ readonly showScheduleOption?: boolean;
1465
+ readonly hasMedia?: boolean;
1466
+ readonly onEmojiSelect?: (emoji: string) => void;
1467
+ readonly onViewScheduledPosts?: () => void;
1468
+ readonly onSubmit?: (type: 'REEL' | 'NORMAL') => void;
1469
+ readonly postType?: string;
1470
+ };
1471
+ declare function CreatePostToolbar({ onMediaSelect, isForReels, onScheduleClick, onMentionClick, hasMedia, onEmojiSelect, onViewScheduledPosts, onSubmit, postType, }: CreatePostToolbarProps): React__default.JSX.Element;
1472
+
1473
+ type User$1 = {
1474
+ id?: string;
1475
+ name?: string;
1476
+ slug?: string;
1477
+ about?: string;
1478
+ email?: string;
1479
+ phone?: string;
1480
+ isOpenToWork?: boolean;
1481
+ gender?: string;
1482
+ banner?: string;
1483
+ isContact?: boolean;
1312
1484
  isFollowed?: boolean;
1313
1485
  isFollowedBy?: boolean;
1314
1486
  birthDate?: string;
@@ -1386,6 +1558,7 @@ type Post$1 = {
1386
1558
  reactions: PostReactionsProps$1[];
1387
1559
  comments: CommentProps$1[];
1388
1560
  sharedPostId: string;
1561
+ pageId?: string;
1389
1562
  page?: {
1390
1563
  id?: string;
1391
1564
  name?: string;
@@ -1406,11 +1579,7 @@ type Post$1 = {
1406
1579
  shareCount?: number;
1407
1580
  };
1408
1581
  sharedContext?: unknown;
1409
- mention?: {
1410
- id: string;
1411
- mentionedId: string;
1412
- mentioned: User$1;
1413
- }[];
1582
+ mention?: IMention[];
1414
1583
  community?: {
1415
1584
  id: string;
1416
1585
  visibility: string;
@@ -1465,10 +1634,10 @@ type PostReactionsProps$1 = {
1465
1634
  id: string;
1466
1635
  userId: string;
1467
1636
  postId: string;
1468
- reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY" | "AGREE" | "DISLIKE" | "EUREKA" | "NO_COMMENT" | "SUPPORT" | "DISAGREE";
1469
- createdAt?: string;
1470
- updatedAt?: string;
1471
- user?: User$1;
1637
+ reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY";
1638
+ createdAt: string;
1639
+ updatedAt: string;
1640
+ user: User$1;
1472
1641
  };
1473
1642
  type CommentReactionsProps$1 = {
1474
1643
  id: string;
@@ -1501,134 +1670,181 @@ type CommentProps$1 = {
1501
1670
  };
1502
1671
  };
1503
1672
 
1504
- declare function ReactPostButton({ post, hideLabel, className, orientation, compact, }: {
1505
- post: Post$1;
1506
- hideLabel?: boolean;
1507
- className?: string;
1508
- orientation?: "vertical" | "horizontal";
1509
- compact?: boolean;
1510
- }): JSX.Element;
1673
+ type PostType = "text" | "media" | "job" | "reel" | "schedule" | null;
1674
+ type InitialStep = "main" | "schedule" | "scheduled-posts" | null;
1675
+ interface CreatePostState {
1676
+ isOpen: boolean;
1677
+ post: Post$1 | undefined;
1678
+ setPost: (post: Post$1 | undefined) => void;
1679
+ postType: PostType;
1680
+ initialStep: InitialStep;
1681
+ openModal: (type?: PostType, step?: InitialStep) => void;
1682
+ closeModal: (preserveFormState?: boolean) => void;
1683
+ operation: "create" | "update";
1684
+ setOperation: (operation: "create" | "update") => void;
1685
+ setInitialStep: (step: InitialStep) => void;
1686
+ }
1687
+ declare const useCreatePostStore: zustand.UseBoundStore<zustand.StoreApi<CreatePostState>>;
1511
1688
 
1512
- interface TargetEntity {
1689
+ type TMentionType = "user" | "page" | "community";
1690
+ type TMentionItem = {
1513
1691
  id?: string;
1514
1692
  name?: string;
1515
- avatar?: string;
1693
+ slug?: string;
1516
1694
  logo?: string;
1517
1695
  image?: string;
1696
+ avatar?: string;
1697
+ headline?: string;
1698
+ type?: TMentionType;
1699
+ };
1700
+
1701
+ type MentionableItem = {
1702
+ id?: string;
1703
+ name?: string;
1518
1704
  slug?: string;
1705
+ image?: string;
1706
+ type?: 'user' | 'page' | 'community';
1707
+ originalData?: TMentionItem;
1708
+ };
1709
+
1710
+ interface MentionableTextareaRef {
1711
+ insertMention: () => void;
1712
+ focus: () => void;
1713
+ getEditor: () => HTMLDivElement | null;
1519
1714
  }
1520
- interface IMessageButtonProps {
1521
- user?: TargetEntity;
1522
- label?: string;
1715
+ type MentionableTextareaProps = {
1716
+ value: string;
1717
+ onChange: (value: string) => void;
1718
+ placeholder?: string;
1523
1719
  className?: string;
1524
1720
  disabled?: boolean;
1525
- onClick?: () => void;
1526
- variant?: 'default' | 'small';
1527
- onConversationReady?: (conversationId: string) => void;
1721
+ onMentionsChange?: (mentions: IMention[]) => void;
1722
+ onKeyDown?: React__default.KeyboardEventHandler<HTMLDivElement>;
1723
+ minHeight?: number;
1724
+ maxHeight?: number;
1725
+ initialMentions?: MentionableItem[];
1726
+ };
1727
+ declare const MentionableTextarea: React__default.ForwardRefExoticComponent<MentionableTextareaProps & React__default.RefAttributes<MentionableTextareaRef>>;
1728
+
1729
+ interface SavedItemsStoreProps {
1730
+ isOpen: boolean;
1731
+ openModal: () => void;
1732
+ closeModal: () => void;
1733
+ toggleModal: () => void;
1528
1734
  }
1529
- declare function MessagesButtonFromPage({ user, label, className, disabled, onClick: customOnClick, variant, }: IMessageButtonProps): React__default.JSX.Element;
1735
+ declare const useSavedItemsStore: zustand.UseBoundStore<zustand.StoreApi<SavedItemsStoreProps>>;
1530
1736
 
1531
- declare function useRestorePendingChat(): void;
1737
+ declare function GradientModal({ onClose, children, isOpen, className, contentClassName, showGradient, }: {
1738
+ onClose: () => void;
1739
+ children: React__default.ReactNode;
1740
+ isOpen: boolean;
1741
+ className?: string;
1742
+ contentClassName?: string;
1743
+ showGradient?: boolean;
1744
+ }): React__default.JSX.Element;
1532
1745
 
1533
- type OwnerType = 'user' | 'organization' | 'system' | 'chat';
1534
- interface AssetUploadRequest {
1535
- file: File;
1536
- owner_type: OwnerType;
1537
- owner_id?: string;
1538
- is_public: boolean;
1539
- }
1540
- interface AssetUploadResponse {
1541
- data: {
1542
- url?: string;
1543
- assetId?: string;
1544
- };
1545
- message: string;
1546
- }
1547
- interface SignedUrlRequest {
1548
- assetId: string;
1549
- expiry: number;
1550
- version: 'small' | 'medium' | 'large';
1551
- }
1552
- interface SignedUrlResponse {
1553
- data: {
1554
- expiresAt: string;
1555
- signedUrl: string;
1556
- version: string;
1557
- };
1558
- message: string;
1746
+ type OportunityType = "jobs" | "candidancies" | null;
1747
+ interface OportunitiesState {
1748
+ openType: OportunityType;
1749
+ setOpenType: (type: OportunityType) => void;
1750
+ reset: () => void;
1559
1751
  }
1560
- type AssetVersionKey = 'small' | 'medium' | 'large';
1561
- interface AssetVersion {
1562
- format: string;
1563
- platforms: string[];
1564
- recommended: boolean;
1565
- url: string;
1752
+ declare const useOportunitiesStore: zustand.UseBoundStore<zustand.StoreApi<OportunitiesState>>;
1753
+
1754
+ declare function PagesFeedTrigger({ onClick }: {
1755
+ onClick?: (e: React__default.MouseEvent) => void;
1756
+ }): React__default.JSX.Element;
1757
+
1758
+ declare function Header({ className }: {
1759
+ className?: string;
1760
+ }): React__default.JSX.Element;
1761
+
1762
+ interface CandidaciesTriggerState {
1763
+ isCandidaciesOpen: boolean;
1764
+ openCandidacies: () => void;
1765
+ closeCandidacies: () => void;
1766
+ toggleCandidacies: () => void;
1566
1767
  }
1567
- interface AssetVersionsResponse {
1568
- mediaID: string;
1569
- platform: string;
1570
- versions: Record<AssetVersionKey, AssetVersion>;
1768
+ declare const useCandidaciesTriggerStore: zustand.UseBoundStore<zustand.StoreApi<CandidaciesTriggerState>>;
1769
+
1770
+ interface JobTriggerState {
1771
+ isJobOpen: boolean;
1772
+ openJob: () => void;
1773
+ closeJob: () => void;
1774
+ toggleJob: () => void;
1571
1775
  }
1572
- interface BulkAssetUploadItemSuccess {
1573
- status: 'success';
1574
- message: string;
1575
- data: {
1576
- url: string;
1577
- assetId?: string;
1776
+ declare const useJobTriggerStore: zustand.UseBoundStore<Omit<zustand.StoreApi<JobTriggerState>, "setState" | "persist"> & {
1777
+ setState(partial: JobTriggerState | Partial<JobTriggerState> | ((state: JobTriggerState) => JobTriggerState | Partial<JobTriggerState>), replace?: false | undefined): unknown;
1778
+ setState(state: JobTriggerState | ((state: JobTriggerState) => JobTriggerState), replace: true): unknown;
1779
+ persist: {
1780
+ setOptions: (options: Partial<zustand_middleware.PersistOptions<JobTriggerState, unknown, unknown>>) => void;
1781
+ clearStorage: () => void;
1782
+ rehydrate: () => Promise<void> | void;
1783
+ hasHydrated: () => boolean;
1784
+ onHydrate: (fn: (state: JobTriggerState) => void) => () => void;
1785
+ onFinishHydration: (fn: (state: JobTriggerState) => void) => () => void;
1786
+ getOptions: () => Partial<zustand_middleware.PersistOptions<JobTriggerState, unknown, unknown>>;
1578
1787
  };
1788
+ }>;
1789
+
1790
+ interface MirantesChatButtonProps {
1791
+ forMobile?: boolean;
1792
+ chatForPage?: boolean;
1579
1793
  }
1580
- interface BulkAssetUploadItemError {
1581
- status: 'error';
1582
- message: string;
1583
- data?: null;
1794
+ declare function MirantesChatButton({ forMobile, chatForPage, }: MirantesChatButtonProps): React__default.JSX.Element;
1795
+
1796
+ declare function useOpenChat(): {
1797
+ isChatVisible: boolean;
1798
+ isToSendMessageToPage: boolean;
1799
+ toggleChat: () => void;
1800
+ openChat: (sendMessageToPage?: boolean) => void;
1801
+ closeChat: () => void;
1802
+ };
1803
+
1804
+ interface IndexProps {
1805
+ chatForPage?: boolean;
1806
+ isCompactMode?: boolean;
1584
1807
  }
1585
- type BulkAssetUploadItem = BulkAssetUploadItemSuccess | BulkAssetUploadItemError;
1586
- interface AssetUploadBulkRequest {
1587
- files: File[];
1588
- owner_type: OwnerType;
1589
- owner_id?: string;
1590
- is_public: boolean;
1808
+ declare const Index: ({ chatForPage, isCompactMode }: IndexProps) => React__default.JSX.Element;
1809
+
1810
+ interface CalendarProps {
1811
+ locale?: "pt" | "fr" | "en";
1812
+ onMarkAsUnavailable?: () => void;
1813
+ isModalOpen?: boolean;
1814
+ onClose?: () => void;
1815
+ calendarCardClassName?: string;
1591
1816
  }
1592
- interface AssetUploadBulkResponse {
1593
- results: BulkAssetUploadItem[];
1817
+ declare function Calendar({ onMarkAsUnavailable, isModalOpen, onClose, calendarCardClassName, }: CalendarProps): React__default.JSX.Element;
1818
+
1819
+ interface PageFloatFooterProps {
1820
+ /**
1821
+ * Callback chamado quando o botão de adicionar é clicado.
1822
+ * Se fornecido, será usado em vez do comportamento padrão.
1823
+ */
1824
+ onAddClick?: () => void;
1594
1825
  }
1826
+ declare function PageFloatFooter({ onAddClick }: PageFloatFooterProps): React__default.JSX.Element;
1595
1827
 
1596
- /** POST /assets */
1597
- declare function useUploadAsset(): {
1598
- uploadAssets: _tanstack_react_query.UseMutateFunction<AssetUploadResponse | null, Error, AssetUploadRequest, unknown>;
1599
- isUploadingAsset: boolean;
1600
- };
1601
- /** POST /assets/bulk */
1602
- declare function useUploadAssetsBulk(): {
1603
- uploadAssetsBulk: _tanstack_react_query.UseMutateFunction<AssetUploadBulkResponse | null, Error, AssetUploadBulkRequest, unknown>;
1604
- isUploadingBulk: boolean;
1605
- };
1606
- /** POST /assets/signed-url */
1607
- declare function useSignedUrl(): {
1608
- postSignedUrl: _tanstack_react_query.UseMutateFunction<SignedUrlResponse | null, Error, SignedUrlRequest, unknown>;
1609
- isPostingSignedUrl: boolean;
1610
- };
1611
- /** GET /assets/:id/versions */
1612
- declare function useAssetVersions(assetId?: string): {
1613
- assetVersions: AssetVersionsResponse | null | undefined;
1614
- isGettingAssetVersions: boolean;
1615
- error: Error | null;
1616
- };
1617
- /** Auto-picks best version (large/medium/small) */
1618
- declare function useBestAssetVersion(assetId?: string): {
1619
- url: string | null | undefined;
1620
- isGettingUrl: boolean;
1621
- error: Error | null;
1622
- };
1828
+ interface ControlButtonsProps {
1829
+ onPrevious: () => void;
1830
+ onNext: () => void;
1831
+ canGoPrevious: boolean;
1832
+ canGoNext: boolean;
1833
+ }
1834
+ declare const ControlButtons: ({ onPrevious, onNext, canGoPrevious, canGoNext }: ControlButtonsProps) => React__default.JSX.Element;
1623
1835
 
1624
- interface PdfReaderProps {
1625
- pdfUrl?: string;
1626
- totalPages?: number;
1627
- pdfName?: string;
1628
- className?: string;
1629
- onMaximizeClicked?: () => void;
1836
+ interface PdfFooterProps {
1837
+ currentPage: number;
1838
+ numPages: number;
1839
+ pdfUrl: string;
1840
+ isHovered: boolean;
1841
+ onToggleFullscreen?: () => void;
1842
+ variant?: 'default' | 'fullscreen';
1843
+ zoom?: number;
1844
+ onZoomIn?: () => void;
1845
+ onZoomOut?: () => void;
1630
1846
  }
1631
- declare const PdfReader: ({ pdfUrl, totalPages: initialTotalPages, pdfName: initialPdfName, className, onMaximizeClicked }: PdfReaderProps) => React__default.JSX.Element;
1847
+ declare const PdfFooter: ({ currentPage, numPages, pdfUrl, isHovered, onToggleFullscreen, variant, zoom, onZoomIn, onZoomOut }: PdfFooterProps) => React__default.JSX.Element;
1632
1848
 
1633
1849
  interface PdfFullscreenViewProps {
1634
1850
  pdfUrl: string;
@@ -1649,6 +1865,15 @@ interface PdfFullscreenViewProps {
1649
1865
  }
1650
1866
  declare const PdfFullscreenView: ({ pdfUrl, pdfUrlWithPage, currentPage, numPages, pdfName, zoom, onClose, onDownload, onOpenAccessibility, onZoomIn, onZoomOut, onPreviousPage, onNextPage, canGoPrevious, canGoNext, }: PdfFullscreenViewProps) => React__default.ReactPortal | null;
1651
1867
 
1868
+ interface PdfReaderProps {
1869
+ pdfUrl?: string;
1870
+ totalPages?: number;
1871
+ pdfName?: string;
1872
+ className?: string;
1873
+ onMaximizeClicked?: () => void;
1874
+ }
1875
+ declare const PdfReader: ({ pdfUrl, totalPages: initialTotalPages, pdfName: initialPdfName, className, onMaximizeClicked }: PdfReaderProps) => React__default.JSX.Element;
1876
+
1652
1877
  interface PdfReaderHeaderProps {
1653
1878
  pdfName: string;
1654
1879
  currentPage: number;
@@ -1661,187 +1886,190 @@ interface PdfReaderHeaderProps {
1661
1886
  }
1662
1887
  declare const PdfReaderHeader: ({ pdfName, currentPage, numPages, isHovered, variant, onOpenAccessibility, onDownload, onClose }: PdfReaderHeaderProps) => React__default.JSX.Element;
1663
1888
 
1664
- interface PdfFooterProps {
1665
- currentPage: number;
1666
- numPages: number;
1667
- pdfUrl: string;
1668
- isHovered: boolean;
1669
- onToggleFullscreen?: () => void;
1670
- variant?: 'default' | 'fullscreen';
1671
- zoom?: number;
1672
- onZoomIn?: () => void;
1673
- onZoomOut?: () => void;
1674
- }
1675
- declare const PdfFooter: ({ currentPage, numPages, pdfUrl, isHovered, onToggleFullscreen, variant, zoom, onZoomIn, onZoomOut }: PdfFooterProps) => React__default.JSX.Element;
1676
-
1677
- interface ControlButtonsProps {
1678
- onPrevious: () => void;
1679
- onNext: () => void;
1680
- canGoPrevious: boolean;
1681
- canGoNext: boolean;
1682
- }
1683
- declare const ControlButtons: ({ onPrevious, onNext, canGoPrevious, canGoNext }: ControlButtonsProps) => React__default.JSX.Element;
1684
-
1685
- interface ProgressBarProps {
1889
+ interface ProgressBarProps {
1686
1890
  currentPage: number;
1687
1891
  totalPages: number;
1688
1892
  }
1689
1893
  declare const ProgressBar: ({ currentPage, totalPages }: ProgressBarProps) => React__default.JSX.Element;
1690
1894
 
1691
- interface ArticleContentProps {
1692
- isOpen: boolean;
1693
- onClose: () => void;
1694
- }
1695
- declare const ArticleContent: ({ isOpen, onClose }: ArticleContentProps) => React__default.JSX.Element;
1696
-
1697
- interface IUserDraft {
1698
- id: string;
1699
- content: string;
1700
- title: string;
1701
- isArticle: boolean;
1702
- isDraft: boolean;
1703
- user: {
1704
- name: string;
1705
- slug: string;
1706
- };
1707
- }
1708
-
1709
- type Profile$2 = {
1710
- id: string;
1711
- name: string;
1712
- avatar: string;
1713
- role?: string;
1714
- isPage?: boolean;
1715
- };
1716
- type ArticleViewMode = "create" | "view";
1717
- type ArticleStep = "create" | "preview" | "published";
1718
- type ArticleMedia = {
1719
- id: string;
1720
- url: string;
1721
- type: "image" | "video";
1722
- file?: File;
1895
+ declare const useApiCheckRater: ({ userId, pageId, communityId, forAPage, }: {
1896
+ userId?: string;
1897
+ pageId?: string;
1898
+ communityId?: string;
1899
+ forAPage?: boolean;
1900
+ }) => {
1901
+ hasRated: boolean;
1902
+ isCheckingRater: boolean;
1723
1903
  };
1724
1904
 
1725
- type ArticleState = {
1726
- title: string;
1727
- content: string;
1728
- post: Post$1 | null;
1729
- selectedProfile: Profile$2 | null;
1730
- media: ArticleMedia[];
1731
- uploadedMedia: string[];
1732
- isUploading: boolean;
1733
- selectedHashtags: string[];
1734
- viewMode: ArticleViewMode;
1735
- currentStep: ArticleStep;
1736
- isModalOpen: boolean;
1737
- isSaved: boolean;
1738
- isDraft: boolean;
1739
- isPublishing: boolean;
1740
- isSavingDraft: boolean;
1741
- lastSavedAt: Date | null;
1742
- currentDraftId: string | null;
1743
- setTitle: (title: string) => void;
1744
- setContent: (content: string) => void;
1745
- setPost: (post: Post$1 | null) => void;
1746
- setSelectedProfile: (profile: Profile$2 | null) => void;
1747
- addMedia: (media: ArticleMedia) => void;
1748
- removeMedia: (id: string) => void;
1749
- setIsUploading: (isUploading: boolean) => void;
1750
- toggleHashtag: (hashtagId: string) => void;
1751
- setSelectedHashtags: (hashtags: string[]) => void;
1752
- loadDraft: (draft: IUserDraft) => void;
1753
- clearDraft: () => void;
1754
- setCurrentDraftId: (id: string | null) => void;
1755
- setViewMode: (mode: ArticleViewMode) => void;
1756
- setCurrentStep: (step: ArticleStep) => void;
1757
- openModal: () => void;
1758
- closeModal: () => void;
1759
- setIsSaved: (isSaved: boolean) => void;
1760
- setIsPublishing: (isPublishing: boolean) => void;
1761
- setIsSavingDraft: (isSavingDraft: boolean) => void;
1762
- markAsSaved: () => void;
1763
- resetArticle: () => void;
1905
+ type AddRatingProps = {
1906
+ enableTitle?: boolean;
1907
+ variantStars?: "large" | "small" | "medium";
1908
+ starSize?: {
1909
+ width: number;
1910
+ height: number;
1911
+ };
1912
+ forAPage?: boolean;
1913
+ receiverPageId?: string;
1914
+ receiverUserId?: string;
1915
+ receiverCommunityId?: string;
1916
+ className?: string;
1917
+ isCommunity?: boolean;
1918
+ variant?: "default" | "feed";
1919
+ userSlug?: string;
1920
+ pageSlug?: string;
1921
+ communitySlug?: string;
1764
1922
  };
1765
- declare const useArticleStore: zustand.UseBoundStore<zustand.StoreApi<ArticleState>>;
1923
+ declare function AddRating({ enableTitle, variantStars, starSize, forAPage, receiverPageId, receiverUserId, receiverCommunityId, className, // <-- RECEBIDO
1924
+ isCommunity, // <-- NOVA PROP
1925
+ variant, // <-- NOVA PROP
1926
+ userSlug, pageSlug, communitySlug, }: AddRatingProps): React__default.JSX.Element;
1766
1927
 
1767
- declare const useArticleNavigation: () => {
1768
- viewMode: ArticleViewMode;
1769
- currentStep: ArticleStep;
1770
- isModalOpen: boolean;
1771
- goToCreate: () => void;
1772
- goToPreview: () => void;
1773
- goToPublished: () => void;
1774
- openModal: () => void;
1775
- closeModal: () => void;
1776
- resetAndClose: () => void;
1928
+ type AvatarRatingBadgeProps = {
1929
+ name?: string;
1930
+ src?: string;
1931
+ rating: number;
1932
+ asPage?: boolean;
1933
+ isCommunity?: boolean;
1777
1934
  };
1935
+ declare function AvatarRatingBadge({ name, asPage, src, rating, isCommunity }: AvatarRatingBadgeProps): React__default.JSX.Element;
1778
1936
 
1779
- declare function CreatePostCard(): React__default.JSX.Element;
1937
+ declare function RatingReviewsList({ variant, forPage, receiverPageId, receiverUserId, receiverCommunityId, inlinePreview, onOpenAllRatings }: {
1938
+ variant?: "maximized" | "minimized";
1939
+ forPage?: boolean;
1940
+ receiverUserId?: string;
1941
+ receiverPageId?: string;
1942
+ receiverCommunityId?: string;
1943
+ inlinePreview?: boolean;
1944
+ onOpenAllRatings?: () => void;
1945
+ }): React__default.JSX.Element | null;
1780
1946
 
1781
- interface IMention {
1782
- id: string;
1783
- mentionedId: string;
1784
- mentionType: string;
1785
- mentionedCommunity?: {
1786
- slug: string;
1947
+ interface IRatingsCardProps {
1948
+ isCurrentPageOrProfile?: boolean;
1949
+ userId?: string;
1950
+ pageId?: string;
1951
+ communityId?: string;
1952
+ forAPage?: boolean;
1953
+ currentUserId?: string;
1954
+ pageSlug?: string;
1955
+ userSlug?: string;
1956
+ communitySlug?: string;
1957
+ }
1958
+ type TRatingUserCard = {
1959
+ user: {
1787
1960
  name: string;
1788
- id: string;
1789
- image: string;
1961
+ profession: string;
1962
+ avatar?: string;
1963
+ isOwner?: boolean;
1790
1964
  };
1791
- mentionedPage?: {
1792
- name: string;
1793
- slug: string;
1794
- logo: string;
1795
- id: string;
1965
+ anonymous?: boolean;
1966
+ rating: number;
1967
+ userRating: number;
1968
+ comment: string;
1969
+ createdAt: string | Date;
1970
+ };
1971
+
1972
+ declare function RatingUserCard({ user, rating, userRating, comment, createdAt, anonymous, }: TRatingUserCard): React__default.JSX.Element;
1973
+
1974
+ interface RattingSuggestionCardProps {
1975
+ asPage?: boolean;
1976
+ page?: {
1977
+ slug?: string;
1978
+ id?: string;
1979
+ sector?: string;
1980
+ logo?: string;
1981
+ rating?: number;
1982
+ totalRatings?: number;
1796
1983
  };
1797
- mentionedUser?: {
1798
- id: string;
1799
- name: string;
1800
- slug: string;
1801
- avatar: string;
1984
+ user?: {
1985
+ avatar?: string;
1986
+ name?: string;
1987
+ id?: string;
1988
+ headline?: string;
1989
+ slug?: string;
1990
+ rating?: number;
1991
+ totalRatings?: number;
1802
1992
  };
1993
+ renderFollowButton?: ReactNode;
1994
+ averageRatingScore?: number;
1803
1995
  }
1996
+ declare function RattingSuggestionCard({ asPage, page, user, renderFollowButton, averageRatingScore, }: RattingSuggestionCardProps): React__default.JSX.Element;
1804
1997
 
1805
- interface CreatePostFormState {
1806
- content: string;
1807
- isUploading: boolean;
1808
- hashtags?: string[];
1809
- setHashtags: (value?: string[]) => void;
1810
- mentions?: IMention[];
1811
- setMentions: (mentions?: IMention[]) => void;
1812
- mentionedUsers?: User$3[];
1813
- setMentionedUsers: (users?: User$3[]) => void;
1814
- uploadedMedia: string[];
1815
- selectedFiles: File[];
1816
- currentAssets: {
1817
- id: string;
1818
- url: string;
1819
- }[];
1820
- assetsToDelete: {
1821
- id: string;
1822
- url: string;
1823
- }[];
1824
- setCurrentAssets: (assets: {
1825
- id: string;
1826
- url: string;
1827
- }[]) => void;
1828
- setContent: (content: string) => void;
1829
- handleMediaUpload: (files: FileList | null, ignore?: boolean) => void;
1830
- removeMedia: (index: number) => void;
1831
- replaceMedia: (index: number, file: File) => void;
1832
- resetForm: () => void;
1833
- resetFormContent: () => void;
1834
- isValid: boolean;
1835
- isCreatingThePost: boolean;
1836
- setIsCreatingThePost: (isCreatingThePost: boolean) => void;
1837
- uploadProgress: number;
1838
- setUploadProgress: (progress: number) => void;
1839
- isProcessingPost: boolean;
1840
- setIsProcessingPost: (isProcessing: boolean) => void;
1841
- progressText: string;
1842
- setProgressText: (text: string) => void;
1998
+ declare function RatingsSummary({ variant, asPage, receiverUserId, receiverPageId, receiverCommunityId }: {
1999
+ variant?: "maximized" | "minimized";
2000
+ asPage?: boolean;
2001
+ receiverUserId?: string;
2002
+ receiverPageId?: string;
2003
+ receiverCommunityId?: string;
2004
+ }): React__default.JSX.Element;
2005
+
2006
+ interface ShareProfileDivProps extends RattingSuggestionCardProps {
2007
+ className?: string;
2008
+ }
2009
+ declare function ShareProfile({ asPage, page, user, className }: ShareProfileDivProps): React__default.JSX.Element;
2010
+
2011
+ interface ShareProfileButtonProps {
2012
+ onClick: () => void;
2013
+ }
2014
+ declare function ShareProfileButton({ onClick }: ShareProfileButtonProps): React__default.JSX.Element;
2015
+
2016
+ interface ShareProfileModalProps extends RattingSuggestionCardProps {
2017
+ isOpen: boolean;
2018
+ onClose: () => void;
2019
+ }
2020
+ declare function ShareProfileModal({ asPage, page, user, isOpen, onClose, }: ShareProfileModalProps): React__default.JSX.Element;
2021
+
2022
+ declare function RatingsCard({ isCurrentPageOrProfile, pageId, userId, communityId, variant, forAPage, currentUserId, className, userSlug, pageSlug, communitySlug, }: IRatingsCardProps & {
2023
+ variant?: "maximized" | "minimized";
2024
+ className?: string;
2025
+ userSlug?: string;
2026
+ pageSlug?: string;
2027
+ communitySlug?: string;
2028
+ }): React__default.JSX.Element;
2029
+
2030
+ declare function ReactPostButton({ post, hideLabel, className, orientation, compact, }: {
2031
+ post: Post$2;
2032
+ hideLabel?: boolean;
2033
+ className?: string;
2034
+ orientation?: "vertical" | "horizontal";
2035
+ compact?: boolean;
2036
+ }): JSX.Element;
2037
+
2038
+ type DrawerSide = 'bottom' | 'right';
2039
+ interface ResponsiveDrawerProps {
2040
+ isOpen: boolean;
2041
+ onClose: () => void;
2042
+ children: React__default.ReactNode;
2043
+ className?: string;
2044
+ fullWidth?: boolean;
2045
+ title?: string;
2046
+ header?: React__default.ReactNode;
2047
+ footer?: React__default.ReactNode;
2048
+ side?: DrawerSide;
2049
+ }
2050
+ declare const ResponsiveDrawer: React__default.FC<ResponsiveDrawerProps>;
2051
+
2052
+ declare function Spinner({ className }: {
2053
+ className?: string;
2054
+ }): React__default.JSX.Element;
2055
+
2056
+ interface SalaryInputWithButtonProps {
2057
+ label?: string;
2058
+ value?: {
2059
+ amount: string;
2060
+ currency: string;
2061
+ };
2062
+ onChange?: (val: {
2063
+ amount: string;
2064
+ currency: string;
2065
+ }) => void;
2066
+ onGenerate?: () => void;
2067
+ placeholder?: string;
2068
+ disabled?: boolean;
2069
+ className?: string;
2070
+ buttonLabel?: string;
1843
2071
  }
1844
- declare const useCreatePostFormStore: zustand.UseBoundStore<zustand.StoreApi<CreatePostFormState>>;
2072
+ declare function SalaryInputWithButton({ label, value, onChange, onGenerate, placeholder, disabled, className, buttonLabel, }: SalaryInputWithButtonProps): React__default.JSX.Element;
1845
2073
 
1846
2074
  type User = {
1847
2075
  id?: string;
@@ -1895,18 +2123,19 @@ interface IPerson {
1895
2123
  salaryExpectation?: string;
1896
2124
  countryCode?: string;
1897
2125
  }
1898
-
1899
2126
  type PostAttachmentProps = {
1900
2127
  title?: string;
1901
2128
  description?: string;
1902
2129
  imageUrl?: string;
1903
2130
  url?: string;
2131
+ slug?: string;
1904
2132
  type: string;
1905
2133
  };
1906
2134
  type Post = {
1907
2135
  user: User;
1908
- postType: "NORMAL" | "REEL" | "ARTICLE";
2136
+ postType: "NORMAL" | "REEL";
1909
2137
  id: string;
2138
+ slug: string;
1910
2139
  createdAt: string;
1911
2140
  scheduledAt?: string;
1912
2141
  bio: string;
@@ -1918,20 +2147,19 @@ type Post = {
1918
2147
  isFollowed?: boolean;
1919
2148
  isContact?: boolean;
1920
2149
  isArticle?: boolean;
1921
- isDraft?: boolean;
1922
2150
  expiresAt?: string | null;
1923
2151
  link: {
1924
2152
  title: string;
1925
2153
  description: string;
1926
2154
  imageUrl: string;
1927
2155
  url: string;
2156
+ slug: string;
1928
2157
  };
1929
2158
  images: PostAssetProps[];
1930
2159
  videos: PostAssetProps[];
1931
2160
  reactions: PostReactionsProps[];
1932
2161
  comments: CommentProps[];
1933
2162
  sharedPostId: string;
1934
- pageId?: string;
1935
2163
  page?: {
1936
2164
  id?: string;
1937
2165
  name?: string;
@@ -1952,7 +2180,11 @@ type Post = {
1952
2180
  shareCount?: number;
1953
2181
  };
1954
2182
  sharedContext?: unknown;
1955
- mention?: IMention[];
2183
+ mention?: {
2184
+ id: string;
2185
+ mentionedId: string;
2186
+ mentioned: User;
2187
+ }[];
1956
2188
  community?: {
1957
2189
  id: string;
1958
2190
  visibility: string;
@@ -2043,225 +2275,33 @@ type CommentProps = {
2043
2275
  };
2044
2276
  };
2045
2277
 
2046
- type PostType = "text" | "media" | "job" | "reel" | "schedule" | null;
2047
- type InitialStep = "main" | "schedule" | "scheduled-posts" | null;
2048
- interface CreatePostState {
2049
- isOpen: boolean;
2050
- post: Post | undefined;
2051
- setPost: (post: Post | undefined) => void;
2052
- postType: PostType;
2053
- initialStep: InitialStep;
2054
- openModal: (type?: PostType, step?: InitialStep) => void;
2055
- closeModal: (preserveFormState?: boolean) => void;
2056
- operation: "create" | "update";
2057
- setOperation: (operation: "create" | "update") => void;
2058
- setInitialStep: (step: InitialStep) => void;
2059
- }
2060
- declare const useCreatePostStore: zustand.UseBoundStore<zustand.StoreApi<CreatePostState>>;
2061
-
2062
- declare const PostCardArticle: ({ src, title, content, isCompact, classImage, fontSize }: {
2063
- src?: string;
2064
- title?: string;
2065
- content?: string;
2066
- classImage?: string;
2067
- fontSize?: string;
2068
- isCompact?: boolean;
2069
- }) => React__default.JSX.Element;
2070
-
2071
- interface ArticleViewerProps {
2072
- content: string;
2073
- }
2074
- declare function ArticleViewer({ content }: ArticleViewerProps): React__default.JSX.Element;
2075
-
2076
- type ModalState = {
2278
+ interface SharePostModalProps {
2077
2279
  isOpen: boolean;
2078
- modalId: string | null;
2079
- openModal: () => void;
2080
- closeModal: () => void;
2081
- toggleModal: () => void;
2082
- };
2083
- declare const useModalArticleStore: zustand.UseBoundStore<zustand.StoreApi<ModalState>>;
2084
-
2085
- interface CreatePostModalProps {
2086
- inline?: boolean;
2087
- }
2088
- declare function CreatePostModal({ inline }: CreatePostModalProps): React__default.JSX.Element;
2089
-
2090
- type Profile$1 = {
2091
- id: string;
2092
- name: string;
2093
- avatar: string;
2094
- role?: string;
2095
- isPage?: boolean;
2096
- };
2097
-
2098
- type ModalStep = 'main' | 'select-profile' | 'schedule' | 'scheduled-posts' | 'post-actions-menu' | 'edit-scheduled-post';
2099
- interface CreatePostContentProps {
2100
- readonly currentStep: ModalStep;
2101
- readonly selectedProfile: Profile$1 | null;
2102
- readonly scheduledDate: Date | null;
2103
- readonly selectedPostForAction: string | null;
2104
- readonly isSubmitting: boolean;
2105
- readonly isLoading: boolean;
2106
- readonly onProfileSelect: (profile: Profile$1) => void;
2107
- readonly onGoToProfileSelection: () => void;
2108
- readonly onGoToSchedule: () => void;
2109
- readonly onScheduleSelect: (date: Date) => void;
2110
- readonly onBackToMain: () => void;
2111
- readonly onScheduleMore: () => void;
2112
- readonly onPostActions: (postId: string) => void;
2113
- readonly onEditScheduledPost: (postId: string) => void;
2114
- readonly onDeleteScheduledPost: (postId?: string) => void;
2115
- readonly onEditPostSubmit: (postId: string, updatedDate?: Date | null, shouldUpdateScheduledAt?: boolean) => void;
2116
- readonly onSubmit: (type: 'REEL' | 'NORMAL') => void;
2117
- readonly onClose?: () => void;
2118
- readonly shouldLoadScheduledPosts?: boolean;
2119
- readonly onPostDeleted?: () => void;
2120
- readonly onPostUpdated?: () => void;
2121
- readonly showScheduleOption?: boolean;
2280
+ onClose: () => void;
2281
+ post: Post;
2282
+ isProfileLink?: boolean;
2283
+ variant?: "share" | "repost";
2122
2284
  }
2123
- declare function CreatePostContent(props: CreatePostContentProps): React__default.JSX.Element;
2285
+ declare const SharePostModal: ({ isOpen, onClose, post, variant, isProfileLink }: SharePostModalProps) => React__default.JSX.Element;
2124
2286
 
2125
- type CreatePostToolbarProps = {
2126
- readonly onMediaSelect?: (files: FileList | null) => void;
2127
- readonly isForReels?: boolean;
2128
- readonly onScheduleClick?: () => void;
2129
- readonly onMentionClick?: () => void;
2130
- readonly showScheduleOption?: boolean;
2131
- readonly hasMedia?: boolean;
2132
- readonly onEmojiSelect?: (emoji: string) => void;
2133
- readonly onViewScheduledPosts?: () => void;
2134
- readonly onSubmit?: (type: 'REEL' | 'NORMAL') => void;
2135
- readonly postType?: string;
2136
- };
2137
- declare function CreatePostToolbar({ onMediaSelect, isForReels, onScheduleClick, onMentionClick, hasMedia, onEmojiSelect, onViewScheduledPosts, onSubmit, postType, }: CreatePostToolbarProps): React__default.JSX.Element;
2287
+ declare function getInitials(fullName: string): string;
2138
2288
 
2139
- type CreatePostScheduleStepProps = {
2140
- readonly onBack: () => void;
2141
- readonly onScheduleSelect: (scheduledDate: Date) => void;
2142
- readonly onClose?: () => void;
2143
- readonly initialDate?: Date;
2144
- readonly onViewScheduledPosts?: () => void;
2145
- };
2146
- declare function CreatePostScheduleStep({ onBack, onScheduleSelect, onClose, initialDate, onViewScheduledPosts, }: CreatePostScheduleStepProps): React__default.JSX.Element;
2289
+ declare function joinUrlWithPathAndQuery(baseUrl: string, path: string, query?: Record<string, string>): string;
2147
2290
 
2148
- interface CreatePostReelFormProps {
2149
- onSubmit: (data: {
2150
- content: string;
2151
- media: string[];
2152
- }) => void;
2153
- }
2154
- declare function CreatePostReelForm({ onSubmit }: CreatePostReelFormProps): React__default.JSX.Element;
2291
+ declare function broadcastLogout(): void;
2292
+ declare function onLogout(callback: () => void): void;
2293
+ declare function closeLogoutChannel(): void;
2155
2294
 
2156
- type CreatePostFormProps = {
2157
- readonly onSubmit: (data: {
2158
- content: string;
2159
- media: string[];
2160
- }) => void;
2161
- readonly onScheduleClick?: () => void;
2162
- readonly scheduledDate?: Date | null;
2163
- readonly showScheduleOption?: boolean;
2164
- readonly onViewScheduledPosts?: () => void;
2165
- };
2166
- declare function CreatePostForm({ onSubmit, onScheduleClick, scheduledDate, showScheduleOption, onViewScheduledPosts, }: CreatePostFormProps): React__default.JSX.Element;
2295
+ declare function stringToObj<T>(inputString: string, separator: string): T | undefined;
2167
2296
 
2168
- type Profile = {
2169
- id: string;
2170
- name: string;
2171
- avatar: string;
2172
- role?: string;
2173
- };
2174
- type CreatePostModalFiltersProps = {
2175
- readonly selectedProfile?: Profile | null;
2176
- readonly onProfileSelectClick: () => void;
2297
+ type MobileWorkspaceBarProps = {
2298
+ onCreatePost?: () => void;
2299
+ onCreateReel?: () => void;
2300
+ onCreateJob?: () => void;
2301
+ onJobsClick?: () => void;
2177
2302
  };
2178
- declare function CreatePostModalFilters({ selectedProfile, onProfileSelectClick, }: CreatePostModalFiltersProps): React__default.JSX.Element;
2179
-
2180
- interface EmojiPickerButtonProps {
2181
- onEmojiSelect: (emoji: string) => void;
2182
- }
2183
- declare const EmojiPickerButton: ({ onEmojiSelect }: EmojiPickerButtonProps) => React__default.JSX.Element;
2184
-
2185
- interface SavedItemsStoreProps {
2186
- isOpen: boolean;
2187
- openModal: () => void;
2188
- closeModal: () => void;
2189
- toggleModal: () => void;
2190
- }
2191
- declare const useSavedItemsStore: zustand.UseBoundStore<zustand.StoreApi<SavedItemsStoreProps>>;
2192
-
2193
- /**
2194
- * Creates a persistent state from localStorage
2195
- * @param key - The localStorage key to use
2196
- * @param defaultValue - The default value if no stored value exists
2197
- * @returns The stored value or defaultValue
2198
- */
2199
- declare function createPersistentState<T>(key: string, defaultValue: T): T;
2200
-
2201
- /**
2202
- * A hook that persists UI state (views, modals) to localStorage
2203
- * The state is automatically saved when changed and restored on page load
2204
- *
2205
- * @param key - The localStorage key to use for persistence
2206
- * @param defaultValue - The default value if no stored value exists
2207
- * @returns A tuple of [state, setState] similar to useState
2208
- *
2209
- * @example
2210
- * ```tsx
2211
- * // Persist view state
2212
- * const [view, setView] = usePersistentUIState<"home" | "chat">("ui-view", "home");
2213
- *
2214
- * // Persist modal state
2215
- * const [modal, setModal] = usePersistentUIState<string | null>("ui-modal", null);
2216
- * ```
2217
- */
2218
- declare function usePersistentUIState<T>(key: string, defaultValue: T): readonly [T, React$1.Dispatch<React$1.SetStateAction<T>>];
2219
-
2220
- interface ICreateTelemetryEventInput {
2221
- input?: {
2222
- source?: {
2223
- app?: "mirantes-web" | "mirantes-mobile";
2224
- platform?: "ios" | "android" | "web";
2225
- version?: string;
2226
- environment?: string;
2227
- };
2228
- actor?: {
2229
- user_id?: string;
2230
- anonymous_id?: string;
2231
- session_id?: string;
2232
- };
2233
- context?: {
2234
- route?: string;
2235
- referrer?: string;
2236
- timezone?: string;
2237
- locale?: string;
2238
- country?: string;
2239
- device?: {
2240
- os?: string;
2241
- model?: string;
2242
- };
2243
- browser?: {
2244
- name?: string;
2245
- version?: string;
2246
- };
2247
- };
2248
- events?: ITelemetryEvent[];
2249
- };
2250
- }
2251
- interface ITelemetryEvent {
2252
- event_id?: string;
2253
- event_type?: "PAGE_VIEW" | "PROFILE_VIEW" | "CLICK_APPLY_JOB" | "SIGNUP_STEP_1" | "SIGNUP_STEP_2" | "SIGNUP_STEP_3" | "PERF_LOAD_TIME";
2254
- occurred_at?: Date;
2255
- metadata?: any;
2256
- }
2257
- interface ICreateTelemetryEventOutput {
2258
- events?: {
2259
- id?: string;
2260
- }[];
2261
- }
2303
+ declare function MobileWorkspaceBar({ onCreateJob, }: MobileWorkspaceBarProps): React__default.JSX.Element;
2262
2304
 
2263
- declare function useRegisterTracking(): {
2264
- registerEvent: _tanstack_react_query.UseMutateFunction<ICreateTelemetryEventOutput | null, Error, ICreateTelemetryEventInput, unknown>;
2265
- };
2305
+ declare function WorkspacePanel(): React__default.JSX.Element;
2266
2306
 
2267
- export { ActivateAccountModal, AddRating, AddressAutocompleteInput, AnimatedModal, ArticleContent, ArticleViewer, AutoDownloadBanner, AvatarRatingBadge, BaseInput, Button, ChatContacts, ChatListWrapper, ChatView, ChatViewDesktopPage, CheckBoxInput, closeLogoutChannel as CloseLogoutChannel, ContactsModal, ControlButtons, CountryDisplay, CountryInput, CreatePostCard, CreatePostContent, CreatePostForm, CreatePostModal, CreatePostModalFilters, CreatePostReelForm, CreatePostScheduleStep, CreatePostToolbar, CustomDateInput, CustomDrawer, CustomDropdown, CustomSelectInput, DateInput, DownloadMobileVersionBanner, DownloadModalTrigger, EmojiPickerButton, GradientModal, Header, MessageButton, MessagesButtonFromPage, MirantesButton, Index as MirantesChatApp, MirantesChatButton, MirantesFoundationProvider, ResponsiveDrawer as MirantesResponsiveDrawer, MobileWorkspaceBar, NoRecruitmentResponsiveIlustration, onLogout as Onlogout, PageChatContent, PageChatContentHeader, PageChatInput, PageChatList, PageChatListWrapper, PageChatUserSuggestions, PageFloatFooter, PageMessageWrapper, PagesFeedTrigger, PdfFooter, PdfFullscreenView, PdfReader, PdfReaderHeader, PostCardArticle, ProgressBar, RadioButtonInput, RatingReviewsList, RatingUserCard, RatingsCard, RatingsSummary, RattingSuggestionCard, ReactPostButton, ResponsiveDrawer$1 as ResponsiveDrawer, SalaryInputWithButton, Calendar as ScheduleCalendar, SharePostModal, ShareProfile, ShareProfileButton, ShareProfileModal, Spinner, WorkspacePanel, broadcastLogout, clearSettingsCookie, clearUserSession, closeLogoutChannel, createPersistentState, getInitials, getSettingsFromCookie, joinUrlWithPathAndQuery, onLogout, stringToObj, useApiCheckRater, useApiGetPage, useArticleNavigation, useArticleStore, useAssetVersions, useBestAssetVersion, useCandidaciesTriggerStore, useCommunityTriggerStore, useCreatePostFormStore, useCreatePostStore, useJobTriggerStore, useLoadSettings, useMessageAppStore, useMirantesFoundation, useModalArticleStore, useModalStore, useOpenChat, useOportunitiesStore, usePeriodicDownloadBanner, usePersistentUIState, useRegisterTracking, useRestorePendingChat, useSavedItemsStore, useSetChatVisibility, useSignedUrl, useUploadAsset, useUploadAssetsBulk };
2307
+ export { ActivateAccountModal, AddRating, AddressAutocompleteInput, AnimatedModal, ArticleContent, ArticleViewer, AutoDownloadBanner, AvatarRatingBadge, BaseInput, Button, ChatContacts, ChatListWrapper, ChatView, ChatViewDesktopPage, CheckBoxInput, closeLogoutChannel as CloseLogoutChannel, ContactsModal, ControlButtons, CountryDisplay, CountryInput, CreatePostCard, CreatePostContent, CreatePostForm, CreatePostModal, CreatePostModalFilters, CreatePostReelForm, CreatePostScheduleStep, CreatePostToolbar, CustomDateInput, CustomDrawer, CustomDropdown, CustomSelectInput, DateInput, DownloadMobileVersionBanner, DownloadModalTrigger, EmojiPickerButton, GradientModal, Header, MentionableTextarea, MessageButton, MessagesButtonFromPage, MirantesButton, Index as MirantesChatApp, MirantesChatButton, MirantesFoundationProvider, ResponsiveDrawer as MirantesResponsiveDrawer, MobileWorkspaceBar, NoRecruitmentResponsiveIlustration, onLogout as Onlogout, PageChatContent, PageChatContentHeader, PageChatInput, PageChatList, PageChatListWrapper, PageChatUserSuggestions, PageFloatFooter, PageMessageWrapper, PagesFeedTrigger, PdfFooter, PdfFullscreenView, PdfReader, PdfReaderHeader, PostCardArticle, ProgressBar, RadioButtonInput, RatingReviewsList, RatingUserCard, RatingsCard, RatingsSummary, RattingSuggestionCard, ReactPostButton, ResponsiveDrawer$1 as ResponsiveDrawer, SalaryInputWithButton, Calendar as ScheduleCalendar, SharePostModal, ShareProfile, ShareProfileButton, ShareProfileModal, Spinner, WorkspacePanel, broadcastLogout, clearSettingsCookie, clearUserSession, closeLogoutChannel, createPersistentState, getInitials, getSettingsFromCookie, joinUrlWithPathAndQuery, onLogout, stringToObj, useApiCheckRater, useApiGetPage, useArticleNavigation, useArticleStore, useAssetVersions, useBestAssetVersion, useCandidaciesTriggerStore, useCommunityTriggerStore, useCreatePostFormStore, useCreatePostStore, useJobTriggerStore, useLoadSettings, useMessageAppStore, useMirantesFoundation, useModalArticleStore, useModalStore, useOpenChat, useOportunitiesStore, usePeriodicDownloadBanner, usePersistentUIState, useRegisterTracking, useRestorePendingChat, useSavedItemsStore, useSetChatVisibility, useSignedUrl, useUploadAsset, useUploadAssetsBulk };