@mirantes-micro/foundation-design-system 1.2.246 → 1.2.248

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 +1233 -1182
  2. package/dist/index.js +2929 -2928
  3. package/package.json +196 -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,256 +986,117 @@ 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
+ currentUserReaction?: string | undefined;
1074
+ totalComments?: number;
1075
+ attachment?: PostAttachmentProps$2;
1076
+ isFollowed?: boolean;
1077
+ isContact?: boolean;
1078
+ isArticle?: boolean;
1079
+ isDraft?: boolean;
1080
+ expiresAt?: string | null;
1081
+ link: {
1082
+ title: string;
1083
+ description: string;
1084
+ imageUrl: string;
1085
+ url: string;
1086
+ };
1087
+ images: PostAssetProps$2[];
1088
+ videos: PostAssetProps$2[];
1089
+ reactions: PostReactionsProps$2[];
1090
+ comments: CommentProps$2[];
1091
+ sharedPostId: string;
968
1092
  page?: {
969
- slug?: string;
970
1093
  id?: string;
1094
+ name?: string;
1095
+ slug?: string;
971
1096
  sector?: string;
1097
+ banner?: string;
972
1098
  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
- className?: string;
1013
- };
1014
- declare function AvatarRatingBadge({ name, asPage, src, rating, isCommunity, className, }: AvatarRatingBadgeProps): React__default.JSX.Element;
1015
-
1016
- type AddRatingProps = {
1017
- enableTitle?: boolean;
1018
- variantStars?: "large" | "small" | "medium";
1019
- starSize?: {
1020
- width: number;
1021
- height: number;
1022
- };
1023
- forAPage?: boolean;
1024
- receiverPageId?: string;
1025
- receiverUserId?: string;
1026
- receiverCommunityId?: string;
1027
- className?: string;
1028
- isCommunity?: boolean;
1029
- variant?: "default" | "feed";
1030
- userSlug?: string;
1031
- pageSlug?: string;
1032
- communitySlug?: string;
1033
- };
1034
- declare function AddRating({ enableTitle, variantStars, starSize, forAPage, receiverPageId, receiverUserId, receiverCommunityId, className, // <-- RECEBIDO
1035
- isCommunity, // <-- NOVA PROP
1036
- variant, // <-- NOVA PROP
1037
- userSlug, pageSlug, communitySlug, }: AddRatingProps): React__default.JSX.Element;
1038
-
1039
- interface PageFloatFooterProps {
1040
- /**
1041
- * Callback chamado quando o botão de adicionar é clicado.
1042
- * Se fornecido, será usado em vez do comportamento padrão.
1043
- */
1044
- onAddClick?: () => void;
1045
- }
1046
- declare function PageFloatFooter({ onAddClick }: PageFloatFooterProps): React__default.JSX.Element;
1047
-
1048
- declare const NoRecruitmentResponsiveIlustration: ({ className, }: {
1049
- className?: string;
1050
- }) => React__default.JSX.Element;
1051
-
1052
- declare function RatingReviewsList({ variant, forPage, receiverPageId, receiverUserId, receiverCommunityId, inlinePreview, onOpenAllRatings, }: {
1053
- variant?: "maximized" | "minimized";
1054
- forPage?: boolean;
1055
- receiverUserId?: string;
1056
- receiverPageId?: string;
1057
- receiverCommunityId?: string;
1058
- inlinePreview?: boolean;
1059
- onOpenAllRatings?: () => void;
1060
- }): React__default.JSX.Element | null;
1061
-
1062
- declare function RatingsSummary({ variant, asPage, receiverUserId, receiverPageId, receiverCommunityId }: {
1063
- variant?: "maximized" | "minimized";
1064
- asPage?: boolean;
1065
- receiverUserId?: string;
1066
- receiverPageId?: string;
1067
- receiverCommunityId?: string;
1068
- }): React__default.JSX.Element;
1069
-
1070
- declare function RatingUserCard({ user, rating, userRating, comment, createdAt, anonymous, }: TRatingUserCard): React__default.JSX.Element;
1071
-
1072
- declare const useApiCheckRater: ({ userId, pageId, communityId, forAPage, }: {
1073
- userId?: string;
1074
- pageId?: string;
1075
- communityId?: string;
1076
- forAPage?: boolean;
1077
- }) => {
1078
- hasRated: boolean;
1079
- isCheckingRater: boolean;
1080
- };
1081
-
1082
- type User$2 = {
1083
- id?: string;
1084
- name?: string;
1085
- slug?: string;
1086
- about?: string;
1087
- email?: string;
1088
- phone?: string;
1089
- isOpenToWork?: boolean;
1090
- gender?: string;
1091
- banner?: string;
1092
- isContact?: boolean;
1093
- isFollowed?: boolean;
1094
- isFollowedBy?: boolean;
1095
- birthDate?: string;
1096
- nationality?: string;
1097
- headline?: string;
1098
- country?: string;
1099
- city?: string;
1100
- street?: string;
1101
- countryCode?: string;
1102
- profession?: string;
1103
- addresses?: {
1104
- country?: string;
1105
- city?: string;
1106
- address?: string;
1107
- }[];
1108
- address?: {
1109
- country?: string;
1110
- city?: string;
1111
- address?: string;
1112
- };
1113
- avatar?: string;
1114
- avatarDisplay?: string;
1115
- provider?: string;
1116
- role?: string;
1117
- status?: string;
1118
- createdAt?: string;
1119
- updatedAt?: string;
1120
- isPublic?: boolean;
1121
- currentCompany?: string;
1122
- person?: IPerson$2;
1123
- link?: string;
1124
- links?: string[];
1125
- };
1126
- interface IPerson$2 {
1127
- gender?: string;
1128
- birthDate?: Date;
1129
- nationality?: string;
1130
- maritalStatus?: string;
1131
- salaryExpectation?: string;
1132
- countryCode?: string;
1133
- }
1134
- type PostAttachmentProps$2 = {
1135
- title?: string;
1136
- description?: string;
1137
- imageUrl?: string;
1138
- url?: string;
1139
- slug?: string;
1140
- type: string;
1141
- };
1142
- type Post$2 = {
1143
- user: User$2;
1144
- postType: "NORMAL" | "REEL";
1145
- id: string;
1146
- slug: string;
1147
- createdAt: string;
1148
- scheduledAt?: string;
1149
- bio: string;
1150
- content: string;
1151
- totalShares: number;
1152
- totalReactions?: number;
1153
- totalComments?: number;
1154
- attachment?: PostAttachmentProps$2;
1155
- isFollowed?: boolean;
1156
- isContact?: boolean;
1157
- isArticle?: boolean;
1158
- expiresAt?: string | null;
1159
- link: {
1160
- title: string;
1161
- description: string;
1162
- imageUrl: string;
1163
- url: string;
1164
- slug: string;
1165
- };
1166
- images: PostAssetProps$2[];
1167
- videos: PostAssetProps$2[];
1168
- reactions: PostReactionsProps$2[];
1169
- comments: CommentProps$2[];
1170
- sharedPostId: string;
1171
- page?: {
1172
- id?: string;
1173
- name?: string;
1174
- slug?: string;
1175
- sector?: string;
1176
- banner?: string;
1177
- logo?: string;
1178
- site?: string;
1099
+ site?: string;
1179
1100
  };
1180
1101
  media?: unknown;
1181
1102
  linkPreview?: unknown;
@@ -1247,10 +1168,10 @@ type PostReactionsProps$2 = {
1247
1168
  id: string;
1248
1169
  userId: string;
1249
1170
  postId: string;
1250
- reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY";
1251
- createdAt: string;
1252
- updatedAt: string;
1253
- user: User$2;
1171
+ reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY" | "AGREE" | "DISLIKE" | "EUREKA" | "NO_COMMENT" | "SUPPORT" | "DISAGREE";
1172
+ createdAt?: string;
1173
+ updatedAt?: string;
1174
+ user?: User$2;
1254
1175
  };
1255
1176
  type CommentReactionsProps$2 = {
1256
1177
  id: string;
@@ -1283,33 +1204,284 @@ type CommentProps$2 = {
1283
1204
  };
1284
1205
  };
1285
1206
 
1286
- interface SharePostModalProps {
1287
- isOpen: boolean;
1288
- onClose: () => void;
1289
- post: Post$2;
1290
- isProfileLink?: boolean;
1291
- variant?: "share" | "repost";
1292
- }
1293
- declare const SharePostModal: ({ isOpen, onClose, post, variant, isProfileLink }: SharePostModalProps) => React__default.JSX.Element;
1294
-
1295
- interface IActivateAccountModalProps {
1296
- isOpen: boolean;
1297
- onClose?: () => void;
1207
+ interface IUserDraft {
1208
+ id: string;
1209
+ content: string;
1210
+ title: string;
1211
+ isArticle: boolean;
1212
+ isDraft: boolean;
1213
+ user: {
1214
+ name: string;
1215
+ slug: string;
1216
+ };
1298
1217
  }
1299
1218
 
1300
- declare function ActivateAccountModal({ isOpen, onClose }: IActivateAccountModalProps): React__default.JSX.Element;
1219
+ type Profile$2 = {
1220
+ id: string;
1221
+ name: string;
1222
+ avatar: string;
1223
+ role?: string;
1224
+ isPage?: boolean;
1225
+ };
1226
+ type ArticleViewMode = "create" | "view";
1227
+ type ArticleStep = "create" | "preview" | "published";
1228
+ type ArticleMedia = {
1229
+ id: string;
1230
+ url: string;
1231
+ type: "image" | "video";
1232
+ file?: File;
1233
+ };
1301
1234
 
1302
- type User$1 = {
1303
- id?: string;
1304
- name?: string;
1305
- slug?: string;
1306
- about?: string;
1307
- email?: string;
1308
- phone?: string;
1309
- isOpenToWork?: boolean;
1310
- gender?: string;
1311
- banner?: string;
1312
- isContact?: boolean;
1235
+ type ArticleState = {
1236
+ title: string;
1237
+ content: string;
1238
+ post: Post$2 | null;
1239
+ selectedProfile: Profile$2 | null;
1240
+ media: ArticleMedia[];
1241
+ uploadedMedia: string[];
1242
+ isUploading: boolean;
1243
+ selectedHashtags: string[];
1244
+ viewMode: ArticleViewMode;
1245
+ currentStep: ArticleStep;
1246
+ isModalOpen: boolean;
1247
+ isSaved: boolean;
1248
+ isDraft: boolean;
1249
+ isPublishing: boolean;
1250
+ isSavingDraft: boolean;
1251
+ lastSavedAt: Date | null;
1252
+ currentDraftId: string | null;
1253
+ setTitle: (title: string) => void;
1254
+ setContent: (content: string) => void;
1255
+ setPost: (post: Post$2 | null) => void;
1256
+ setSelectedProfile: (profile: Profile$2 | null) => void;
1257
+ addMedia: (media: ArticleMedia) => void;
1258
+ removeMedia: (id: string) => void;
1259
+ setIsUploading: (isUploading: boolean) => void;
1260
+ toggleHashtag: (hashtagId: string) => void;
1261
+ setSelectedHashtags: (hashtags: string[]) => void;
1262
+ loadDraft: (draft: IUserDraft) => void;
1263
+ clearDraft: () => void;
1264
+ setCurrentDraftId: (id: string | null) => void;
1265
+ setViewMode: (mode: ArticleViewMode) => void;
1266
+ setCurrentStep: (step: ArticleStep) => void;
1267
+ openModal: () => void;
1268
+ closeModal: () => void;
1269
+ setIsSaved: (isSaved: boolean) => void;
1270
+ setIsPublishing: (isPublishing: boolean) => void;
1271
+ setIsSavingDraft: (isSavingDraft: boolean) => void;
1272
+ markAsSaved: () => void;
1273
+ resetArticle: () => void;
1274
+ };
1275
+ declare const useArticleStore: zustand.UseBoundStore<zustand.StoreApi<ArticleState>>;
1276
+
1277
+ declare const useArticleNavigation: () => {
1278
+ viewMode: ArticleViewMode;
1279
+ currentStep: ArticleStep;
1280
+ isModalOpen: boolean;
1281
+ goToCreate: () => void;
1282
+ goToPreview: () => void;
1283
+ goToPublished: () => void;
1284
+ openModal: () => void;
1285
+ closeModal: () => void;
1286
+ resetAndClose: () => void;
1287
+ };
1288
+
1289
+ interface ArticleViewerProps {
1290
+ content: string;
1291
+ }
1292
+ declare function ArticleViewer({ content }: ArticleViewerProps): React__default.JSX.Element;
1293
+
1294
+ declare const PostCardArticle: ({ src, title, content, isCompact, classImage, fontSize }: {
1295
+ src?: string;
1296
+ title?: string;
1297
+ content?: string;
1298
+ classImage?: string;
1299
+ fontSize?: string;
1300
+ isCompact?: boolean;
1301
+ }) => React__default.JSX.Element;
1302
+
1303
+ type ModalState = {
1304
+ isOpen: boolean;
1305
+ modalId: string | null;
1306
+ openModal: () => void;
1307
+ closeModal: () => void;
1308
+ toggleModal: () => void;
1309
+ };
1310
+ declare const useModalArticleStore: zustand.UseBoundStore<zustand.StoreApi<ModalState>>;
1311
+
1312
+ declare function CreatePostCard(): React__default.JSX.Element;
1313
+
1314
+ type Profile$1 = {
1315
+ id: string;
1316
+ name: string;
1317
+ avatar: string;
1318
+ role?: string;
1319
+ isPage?: boolean;
1320
+ };
1321
+
1322
+ type ModalStep = 'main' | 'select-profile' | 'schedule' | 'scheduled-posts' | 'post-actions-menu' | 'edit-scheduled-post';
1323
+ interface CreatePostContentProps {
1324
+ readonly currentStep: ModalStep;
1325
+ readonly selectedProfile: Profile$1 | null;
1326
+ readonly scheduledDate: Date | null;
1327
+ readonly selectedPostForAction: string | null;
1328
+ readonly isSubmitting: boolean;
1329
+ readonly isLoading: boolean;
1330
+ readonly onProfileSelect: (profile: Profile$1) => void;
1331
+ readonly onGoToProfileSelection: () => void;
1332
+ readonly onGoToSchedule: () => void;
1333
+ readonly onScheduleSelect: (date: Date) => void;
1334
+ readonly onBackToMain: () => void;
1335
+ readonly onScheduleMore: () => void;
1336
+ readonly onPostActions: (postId: string) => void;
1337
+ readonly onEditScheduledPost: (postId: string) => void;
1338
+ readonly onDeleteScheduledPost: (postId?: string) => void;
1339
+ readonly onEditPostSubmit: (postId: string, updatedDate?: Date | null, shouldUpdateScheduledAt?: boolean) => void;
1340
+ readonly onSubmit: (type: 'REEL' | 'NORMAL') => void;
1341
+ readonly onClose?: () => void;
1342
+ readonly shouldLoadScheduledPosts?: boolean;
1343
+ readonly onPostDeleted?: () => void;
1344
+ readonly onPostUpdated?: () => void;
1345
+ readonly showScheduleOption?: boolean;
1346
+ }
1347
+ declare function CreatePostContent(props: CreatePostContentProps): React__default.JSX.Element;
1348
+
1349
+ type CreatePostFormProps = {
1350
+ readonly onSubmit: (data: {
1351
+ content: string;
1352
+ media: string[];
1353
+ }) => void;
1354
+ readonly onScheduleClick?: () => void;
1355
+ readonly scheduledDate?: Date | null;
1356
+ readonly showScheduleOption?: boolean;
1357
+ readonly onViewScheduledPosts?: () => void;
1358
+ };
1359
+ declare function CreatePostForm({ onSubmit, onScheduleClick, scheduledDate, showScheduleOption, onViewScheduledPosts, }: CreatePostFormProps): React__default.JSX.Element;
1360
+
1361
+ interface IMention {
1362
+ id: string;
1363
+ mentionedId: string;
1364
+ mentionType: string;
1365
+ mentionedCommunity?: {
1366
+ slug: string;
1367
+ name: string;
1368
+ id: string;
1369
+ image: string;
1370
+ };
1371
+ mentionedPage?: {
1372
+ name: string;
1373
+ slug: string;
1374
+ logo: string;
1375
+ id: string;
1376
+ };
1377
+ mentionedUser?: {
1378
+ id: string;
1379
+ name: string;
1380
+ slug: string;
1381
+ avatar: string;
1382
+ };
1383
+ }
1384
+
1385
+ interface CreatePostFormState {
1386
+ content: string;
1387
+ isUploading: boolean;
1388
+ hashtags?: string[];
1389
+ setHashtags: (value?: string[]) => void;
1390
+ mentions?: IMention[];
1391
+ setMentions: (mentions?: IMention[]) => void;
1392
+ mentionedUsers?: User$3[];
1393
+ setMentionedUsers: (users?: User$3[]) => void;
1394
+ uploadedMedia: string[];
1395
+ selectedFiles: File[];
1396
+ currentAssets: {
1397
+ id: string;
1398
+ url: string;
1399
+ }[];
1400
+ assetsToDelete: {
1401
+ id: string;
1402
+ url: string;
1403
+ }[];
1404
+ setCurrentAssets: (assets: {
1405
+ id: string;
1406
+ url: string;
1407
+ }[]) => void;
1408
+ setContent: (content: string) => void;
1409
+ handleMediaUpload: (files: FileList | null, ignore?: boolean) => void;
1410
+ removeMedia: (index: number) => void;
1411
+ replaceMedia: (index: number, file: File) => void;
1412
+ resetForm: () => void;
1413
+ resetFormContent: () => void;
1414
+ isValid: boolean;
1415
+ isCreatingThePost: boolean;
1416
+ setIsCreatingThePost: (isCreatingThePost: boolean) => void;
1417
+ uploadProgress: number;
1418
+ setUploadProgress: (progress: number) => void;
1419
+ isProcessingPost: boolean;
1420
+ setIsProcessingPost: (isProcessing: boolean) => void;
1421
+ progressText: string;
1422
+ setProgressText: (text: string) => void;
1423
+ }
1424
+ declare const useCreatePostFormStore: zustand.UseBoundStore<zustand.StoreApi<CreatePostFormState>>;
1425
+
1426
+ interface CreatePostModalProps {
1427
+ inline?: boolean;
1428
+ }
1429
+ declare function CreatePostModal({ inline }: CreatePostModalProps): React__default.JSX.Element;
1430
+
1431
+ type Profile = {
1432
+ id: string;
1433
+ name: string;
1434
+ avatar: string;
1435
+ role?: string;
1436
+ };
1437
+ type CreatePostModalFiltersProps = {
1438
+ readonly selectedProfile?: Profile | null;
1439
+ readonly onProfileSelectClick: () => void;
1440
+ };
1441
+ declare function CreatePostModalFilters({ selectedProfile, onProfileSelectClick, }: CreatePostModalFiltersProps): React__default.JSX.Element;
1442
+
1443
+ interface CreatePostReelFormProps {
1444
+ onSubmit: (data: {
1445
+ content: string;
1446
+ media: string[];
1447
+ }) => void;
1448
+ }
1449
+ declare function CreatePostReelForm({ onSubmit }: CreatePostReelFormProps): React__default.JSX.Element;
1450
+
1451
+ type CreatePostScheduleStepProps = {
1452
+ readonly onBack: () => void;
1453
+ readonly onScheduleSelect: (scheduledDate: Date) => void;
1454
+ readonly onClose?: () => void;
1455
+ readonly initialDate?: Date;
1456
+ readonly onViewScheduledPosts?: () => void;
1457
+ };
1458
+ declare function CreatePostScheduleStep({ onBack, onScheduleSelect, onClose, initialDate, onViewScheduledPosts, }: CreatePostScheduleStepProps): React__default.JSX.Element;
1459
+
1460
+ type CreatePostToolbarProps = {
1461
+ readonly onMediaSelect?: (files: FileList | null) => void;
1462
+ readonly isForReels?: boolean;
1463
+ readonly onScheduleClick?: () => void;
1464
+ readonly onMentionClick?: () => void;
1465
+ readonly showScheduleOption?: boolean;
1466
+ readonly hasMedia?: boolean;
1467
+ readonly onEmojiSelect?: (emoji: string) => void;
1468
+ readonly onViewScheduledPosts?: () => void;
1469
+ readonly onSubmit?: (type: 'REEL' | 'NORMAL') => void;
1470
+ readonly postType?: string;
1471
+ };
1472
+ declare function CreatePostToolbar({ onMediaSelect, isForReels, onScheduleClick, onMentionClick, hasMedia, onEmojiSelect, onViewScheduledPosts, onSubmit, postType, }: CreatePostToolbarProps): React__default.JSX.Element;
1473
+
1474
+ type User$1 = {
1475
+ id?: string;
1476
+ name?: string;
1477
+ slug?: string;
1478
+ about?: string;
1479
+ email?: string;
1480
+ phone?: string;
1481
+ isOpenToWork?: boolean;
1482
+ gender?: string;
1483
+ banner?: string;
1484
+ isContact?: boolean;
1313
1485
  isFollowed?: boolean;
1314
1486
  isFollowedBy?: boolean;
1315
1487
  birthDate?: string;
@@ -1361,7 +1533,7 @@ type PostAttachmentProps$1 = {
1361
1533
  };
1362
1534
  type Post$1 = {
1363
1535
  user: User$1;
1364
- postType: 'NORMAL' | 'REEL' | 'ARTICLE';
1536
+ postType: "NORMAL" | "REEL" | "ARTICLE";
1365
1537
  id: string;
1366
1538
  createdAt: string;
1367
1539
  scheduledAt?: string;
@@ -1369,7 +1541,6 @@ type Post$1 = {
1369
1541
  content: string;
1370
1542
  totalShares: number;
1371
1543
  totalReactions?: number;
1372
- currentUserReaction?: string | undefined;
1373
1544
  totalComments?: number;
1374
1545
  attachment?: PostAttachmentProps$1;
1375
1546
  isFollowed?: boolean;
@@ -1388,6 +1559,7 @@ type Post$1 = {
1388
1559
  reactions: PostReactionsProps$1[];
1389
1560
  comments: CommentProps$1[];
1390
1561
  sharedPostId: string;
1562
+ pageId?: string;
1391
1563
  page?: {
1392
1564
  id?: string;
1393
1565
  name?: string;
@@ -1408,11 +1580,7 @@ type Post$1 = {
1408
1580
  shareCount?: number;
1409
1581
  };
1410
1582
  sharedContext?: unknown;
1411
- mention?: {
1412
- id: string;
1413
- mentionedId: string;
1414
- mentioned: User$1;
1415
- }[];
1583
+ mention?: IMention[];
1416
1584
  community?: {
1417
1585
  id: string;
1418
1586
  visibility: string;
@@ -1460,23 +1628,23 @@ type Post$1 = {
1460
1628
  type PostAssetProps$1 = {
1461
1629
  id: string;
1462
1630
  url: string;
1463
- type?: 'image' | 'video' | 'pdf';
1631
+ type?: "image" | "video" | "pdf";
1464
1632
  createdAt?: string;
1465
1633
  };
1466
1634
  type PostReactionsProps$1 = {
1467
1635
  id: string;
1468
1636
  userId: string;
1469
1637
  postId: string;
1470
- reaction: 'LIKE' | 'LOVE' | 'HAHA' | 'WOW' | 'SAD' | 'ANGRY' | 'AGREE' | 'DISLIKE' | 'EUREKA' | 'NO_COMMENT' | 'SUPPORT' | 'DISAGREE';
1471
- createdAt?: string;
1472
- updatedAt?: string;
1473
- user?: User$1;
1638
+ reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY";
1639
+ createdAt: string;
1640
+ updatedAt: string;
1641
+ user: User$1;
1474
1642
  };
1475
1643
  type CommentReactionsProps$1 = {
1476
1644
  id: string;
1477
1645
  userId: string;
1478
1646
  commentId: string;
1479
- reaction: 'LIKE' | 'LOVE' | 'HAHA' | 'AGREE' | 'DISLIKE' | 'EUREKA' | 'NO_COMMENT' | 'SUPPORT';
1647
+ reaction: "LIKE" | "LOVE" | "HAHA" | "AGREE" | "DISLIKE" | "EUREKA" | "NO_COMMENT" | "SUPPORT";
1480
1648
  createdAt: string;
1481
1649
  updatedAt: string;
1482
1650
  user?: User$1;
@@ -1503,134 +1671,192 @@ type CommentProps$1 = {
1503
1671
  };
1504
1672
  };
1505
1673
 
1506
- declare function ReactPostButton({ post, hideLabel, className, orientation, compact, }: {
1507
- post: Post$1;
1508
- hideLabel?: boolean;
1509
- className?: string;
1510
- orientation?: "vertical" | "horizontal";
1511
- compact?: boolean;
1512
- }): JSX.Element;
1674
+ type PostType = "text" | "media" | "job" | "reel" | "schedule" | null;
1675
+ type InitialStep = "main" | "schedule" | "scheduled-posts" | null;
1676
+ interface CreatePostState {
1677
+ isOpen: boolean;
1678
+ post: Post$1 | undefined;
1679
+ setPost: (post: Post$1 | undefined) => void;
1680
+ postType: PostType;
1681
+ initialStep: InitialStep;
1682
+ openModal: (type?: PostType, step?: InitialStep) => void;
1683
+ closeModal: (preserveFormState?: boolean) => void;
1684
+ operation: "create" | "update";
1685
+ setOperation: (operation: "create" | "update") => void;
1686
+ setInitialStep: (step: InitialStep) => void;
1687
+ }
1688
+ declare const useCreatePostStore: zustand.UseBoundStore<zustand.StoreApi<CreatePostState>>;
1513
1689
 
1514
- interface TargetEntity {
1690
+ type TMentionType = "user" | "page" | "community";
1691
+ type TMentionItem = {
1515
1692
  id?: string;
1516
1693
  name?: string;
1517
- avatar?: string;
1694
+ slug?: string;
1518
1695
  logo?: string;
1519
1696
  image?: string;
1697
+ avatar?: string;
1698
+ headline?: string;
1699
+ type?: TMentionType;
1700
+ };
1701
+
1702
+ type MentionableItem$1 = {
1703
+ id?: string;
1704
+ name?: string;
1705
+ slug?: string;
1706
+ image?: string;
1707
+ type?: 'user' | 'page' | 'community';
1708
+ originalData?: TMentionItem;
1709
+ };
1710
+
1711
+ declare function injectMentionUIDs(text: string, mentionedItems: MentionableItem$1[]): string;
1712
+
1713
+ type MentionableItem = {
1714
+ id?: string;
1715
+ name?: string;
1520
1716
  slug?: string;
1717
+ image?: string;
1718
+ type?: 'user' | 'page' | 'community';
1719
+ originalData?: TMentionItem;
1720
+ };
1721
+
1722
+ interface MentionableTextareaRef {
1723
+ insertMention: () => void;
1724
+ focus: () => void;
1725
+ getEditor: () => HTMLDivElement | null;
1521
1726
  }
1522
- interface IMessageButtonProps {
1523
- user?: TargetEntity;
1524
- label?: string;
1727
+ type MentionableTextareaProps = {
1728
+ value: string;
1729
+ onChange: (value: string) => void;
1730
+ placeholder?: string;
1525
1731
  className?: string;
1526
1732
  disabled?: boolean;
1527
- onClick?: () => void;
1528
- variant?: 'default' | 'small';
1529
- onConversationReady?: (conversationId: string) => void;
1733
+ onMentionsChange?: (mentions: IMention[]) => void;
1734
+ onKeyDown?: React__default.KeyboardEventHandler<HTMLDivElement>;
1735
+ minHeight?: number;
1736
+ maxHeight?: number;
1737
+ initialMentions?: MentionableItem[];
1738
+ };
1739
+ declare const MentionableTextarea: React__default.ForwardRefExoticComponent<MentionableTextareaProps & React__default.RefAttributes<MentionableTextareaRef>>;
1740
+
1741
+ interface SavedItemsStoreProps {
1742
+ isOpen: boolean;
1743
+ openModal: () => void;
1744
+ closeModal: () => void;
1745
+ toggleModal: () => void;
1530
1746
  }
1531
- declare function MessagesButtonFromPage({ user, label, className, disabled, onClick: customOnClick, variant, }: IMessageButtonProps): React__default.JSX.Element;
1747
+ declare const useSavedItemsStore: zustand.UseBoundStore<zustand.StoreApi<SavedItemsStoreProps>>;
1532
1748
 
1533
- declare function useRestorePendingChat(): void;
1749
+ declare function GradientModal({ onClose, children, isOpen, className, contentClassName, showGradient, }: {
1750
+ onClose: () => void;
1751
+ children: React__default.ReactNode;
1752
+ isOpen: boolean;
1753
+ className?: string;
1754
+ contentClassName?: string;
1755
+ showGradient?: boolean;
1756
+ }): React__default.JSX.Element;
1534
1757
 
1535
- type OwnerType = 'user' | 'organization' | 'system' | 'chat';
1536
- interface AssetUploadRequest {
1537
- file: File;
1538
- owner_type: OwnerType;
1539
- owner_id?: string;
1540
- is_public: boolean;
1541
- }
1542
- interface AssetUploadResponse {
1543
- data: {
1544
- url?: string;
1545
- assetId?: string;
1546
- };
1547
- message: string;
1548
- }
1549
- interface SignedUrlRequest {
1550
- assetId: string;
1551
- expiry: number;
1552
- version: 'small' | 'medium' | 'large';
1553
- }
1554
- interface SignedUrlResponse {
1555
- data: {
1556
- expiresAt: string;
1557
- signedUrl: string;
1558
- version: string;
1559
- };
1560
- message: string;
1758
+ type OportunityType = "jobs" | "candidancies" | null;
1759
+ interface OportunitiesState {
1760
+ openType: OportunityType;
1761
+ setOpenType: (type: OportunityType) => void;
1762
+ reset: () => void;
1561
1763
  }
1562
- type AssetVersionKey = 'small' | 'medium' | 'large';
1563
- interface AssetVersion {
1564
- format: string;
1565
- platforms: string[];
1566
- recommended: boolean;
1567
- url: string;
1764
+ declare const useOportunitiesStore: zustand.UseBoundStore<zustand.StoreApi<OportunitiesState>>;
1765
+
1766
+ declare function PagesFeedTrigger({ onClick }: {
1767
+ onClick?: (e: React__default.MouseEvent) => void;
1768
+ }): React__default.JSX.Element;
1769
+
1770
+ declare function Header({ className }: {
1771
+ className?: string;
1772
+ }): React__default.JSX.Element;
1773
+
1774
+ interface CandidaciesTriggerState {
1775
+ isCandidaciesOpen: boolean;
1776
+ openCandidacies: () => void;
1777
+ closeCandidacies: () => void;
1778
+ toggleCandidacies: () => void;
1568
1779
  }
1569
- interface AssetVersionsResponse {
1570
- mediaID: string;
1571
- platform: string;
1572
- versions: Record<AssetVersionKey, AssetVersion>;
1780
+ declare const useCandidaciesTriggerStore: zustand.UseBoundStore<zustand.StoreApi<CandidaciesTriggerState>>;
1781
+
1782
+ interface JobTriggerState {
1783
+ isJobOpen: boolean;
1784
+ openJob: () => void;
1785
+ closeJob: () => void;
1786
+ toggleJob: () => void;
1573
1787
  }
1574
- interface BulkAssetUploadItemSuccess {
1575
- status: 'success';
1576
- message: string;
1577
- data: {
1578
- url: string;
1579
- assetId?: string;
1788
+ declare const useJobTriggerStore: zustand.UseBoundStore<Omit<zustand.StoreApi<JobTriggerState>, "setState" | "persist"> & {
1789
+ setState(partial: JobTriggerState | Partial<JobTriggerState> | ((state: JobTriggerState) => JobTriggerState | Partial<JobTriggerState>), replace?: false | undefined): unknown;
1790
+ setState(state: JobTriggerState | ((state: JobTriggerState) => JobTriggerState), replace: true): unknown;
1791
+ persist: {
1792
+ setOptions: (options: Partial<zustand_middleware.PersistOptions<JobTriggerState, unknown, unknown>>) => void;
1793
+ clearStorage: () => void;
1794
+ rehydrate: () => Promise<void> | void;
1795
+ hasHydrated: () => boolean;
1796
+ onHydrate: (fn: (state: JobTriggerState) => void) => () => void;
1797
+ onFinishHydration: (fn: (state: JobTriggerState) => void) => () => void;
1798
+ getOptions: () => Partial<zustand_middleware.PersistOptions<JobTriggerState, unknown, unknown>>;
1580
1799
  };
1800
+ }>;
1801
+
1802
+ interface MirantesChatButtonProps {
1803
+ forMobile?: boolean;
1804
+ chatForPage?: boolean;
1581
1805
  }
1582
- interface BulkAssetUploadItemError {
1583
- status: 'error';
1584
- message: string;
1585
- data?: null;
1806
+ declare function MirantesChatButton({ forMobile, chatForPage, }: MirantesChatButtonProps): React__default.JSX.Element;
1807
+
1808
+ declare function useOpenChat(): {
1809
+ isChatVisible: boolean;
1810
+ isToSendMessageToPage: boolean;
1811
+ toggleChat: () => void;
1812
+ openChat: (sendMessageToPage?: boolean) => void;
1813
+ closeChat: () => void;
1814
+ };
1815
+
1816
+ interface IndexProps {
1817
+ chatForPage?: boolean;
1818
+ isCompactMode?: boolean;
1586
1819
  }
1587
- type BulkAssetUploadItem = BulkAssetUploadItemSuccess | BulkAssetUploadItemError;
1588
- interface AssetUploadBulkRequest {
1589
- files: File[];
1590
- owner_type: OwnerType;
1591
- owner_id?: string;
1592
- is_public: boolean;
1820
+ declare const Index: ({ chatForPage, isCompactMode }: IndexProps) => React__default.JSX.Element;
1821
+
1822
+ interface CalendarProps {
1823
+ locale?: "pt" | "fr" | "en";
1824
+ onMarkAsUnavailable?: () => void;
1825
+ isModalOpen?: boolean;
1826
+ onClose?: () => void;
1827
+ calendarCardClassName?: string;
1593
1828
  }
1594
- interface AssetUploadBulkResponse {
1595
- results: BulkAssetUploadItem[];
1829
+ declare function Calendar({ onMarkAsUnavailable, isModalOpen, onClose, calendarCardClassName, }: CalendarProps): React__default.JSX.Element;
1830
+
1831
+ interface PageFloatFooterProps {
1832
+ /**
1833
+ * Callback chamado quando o botão de adicionar é clicado.
1834
+ * Se fornecido, será usado em vez do comportamento padrão.
1835
+ */
1836
+ onAddClick?: () => void;
1596
1837
  }
1838
+ declare function PageFloatFooter({ onAddClick }: PageFloatFooterProps): React__default.JSX.Element;
1597
1839
 
1598
- /** POST /assets */
1599
- declare function useUploadAsset(): {
1600
- uploadAssets: _tanstack_react_query.UseMutateFunction<AssetUploadResponse | null, Error, AssetUploadRequest, unknown>;
1601
- isUploadingAsset: boolean;
1602
- };
1603
- /** POST /assets/bulk */
1604
- declare function useUploadAssetsBulk(): {
1605
- uploadAssetsBulk: _tanstack_react_query.UseMutateFunction<AssetUploadBulkResponse | null, Error, AssetUploadBulkRequest, unknown>;
1606
- isUploadingBulk: boolean;
1607
- };
1608
- /** POST /assets/signed-url */
1609
- declare function useSignedUrl(): {
1610
- postSignedUrl: _tanstack_react_query.UseMutateFunction<SignedUrlResponse | null, Error, SignedUrlRequest, unknown>;
1611
- isPostingSignedUrl: boolean;
1612
- };
1613
- /** GET /assets/:id/versions */
1614
- declare function useAssetVersions(assetId?: string): {
1615
- assetVersions: AssetVersionsResponse | null | undefined;
1616
- isGettingAssetVersions: boolean;
1617
- error: Error | null;
1618
- };
1619
- /** Auto-picks best version (large/medium/small) */
1620
- declare function useBestAssetVersion(assetId?: string): {
1621
- url: string | null | undefined;
1622
- isGettingUrl: boolean;
1623
- error: Error | null;
1624
- };
1840
+ interface ControlButtonsProps {
1841
+ onPrevious: () => void;
1842
+ onNext: () => void;
1843
+ canGoPrevious: boolean;
1844
+ canGoNext: boolean;
1845
+ }
1846
+ declare const ControlButtons: ({ onPrevious, onNext, canGoPrevious, canGoNext }: ControlButtonsProps) => React__default.JSX.Element;
1625
1847
 
1626
- interface PdfReaderProps {
1627
- pdfUrl?: string;
1628
- totalPages?: number;
1629
- pdfName?: string;
1630
- className?: string;
1631
- onMaximizeClicked?: () => void;
1848
+ interface PdfFooterProps {
1849
+ currentPage: number;
1850
+ numPages: number;
1851
+ pdfUrl: string;
1852
+ isHovered: boolean;
1853
+ onToggleFullscreen?: () => void;
1854
+ variant?: 'default' | 'fullscreen';
1855
+ zoom?: number;
1856
+ onZoomIn?: () => void;
1857
+ onZoomOut?: () => void;
1632
1858
  }
1633
- declare const PdfReader: ({ pdfUrl, totalPages: initialTotalPages, pdfName: initialPdfName, className, onMaximizeClicked }: PdfReaderProps) => React__default.JSX.Element;
1859
+ declare const PdfFooter: ({ currentPage, numPages, pdfUrl, isHovered, onToggleFullscreen, variant, zoom, onZoomIn, onZoomOut }: PdfFooterProps) => React__default.JSX.Element;
1634
1860
 
1635
1861
  interface PdfFullscreenViewProps {
1636
1862
  pdfUrl: string;
@@ -1651,38 +1877,26 @@ interface PdfFullscreenViewProps {
1651
1877
  }
1652
1878
  declare const PdfFullscreenView: ({ pdfUrl, pdfUrlWithPage, currentPage, numPages, pdfName, zoom, onClose, onDownload, onOpenAccessibility, onZoomIn, onZoomOut, onPreviousPage, onNextPage, canGoPrevious, canGoNext, }: PdfFullscreenViewProps) => React__default.ReactPortal | null;
1653
1879
 
1654
- interface PdfReaderHeaderProps {
1655
- pdfName: string;
1656
- currentPage: number;
1657
- numPages: number;
1658
- isHovered: boolean;
1659
- variant?: 'default' | 'fullscreen';
1660
- onOpenAccessibility?: () => void;
1661
- onDownload?: () => void;
1662
- onClose?: () => void;
1880
+ interface PdfReaderProps {
1881
+ pdfUrl?: string;
1882
+ totalPages?: number;
1883
+ pdfName?: string;
1884
+ className?: string;
1885
+ onMaximizeClicked?: () => void;
1663
1886
  }
1664
- declare const PdfReaderHeader: ({ pdfName, currentPage, numPages, isHovered, variant, onOpenAccessibility, onDownload, onClose }: PdfReaderHeaderProps) => React__default.JSX.Element;
1887
+ declare const PdfReader: ({ pdfUrl, totalPages: initialTotalPages, pdfName: initialPdfName, className, onMaximizeClicked }: PdfReaderProps) => React__default.JSX.Element;
1665
1888
 
1666
- interface PdfFooterProps {
1889
+ interface PdfReaderHeaderProps {
1890
+ pdfName: string;
1667
1891
  currentPage: number;
1668
1892
  numPages: number;
1669
- pdfUrl: string;
1670
1893
  isHovered: boolean;
1671
- onToggleFullscreen?: () => void;
1672
1894
  variant?: 'default' | 'fullscreen';
1673
- zoom?: number;
1674
- onZoomIn?: () => void;
1675
- onZoomOut?: () => void;
1676
- }
1677
- declare const PdfFooter: ({ currentPage, numPages, pdfUrl, isHovered, onToggleFullscreen, variant, zoom, onZoomIn, onZoomOut }: PdfFooterProps) => React__default.JSX.Element;
1678
-
1679
- interface ControlButtonsProps {
1680
- onPrevious: () => void;
1681
- onNext: () => void;
1682
- canGoPrevious: boolean;
1683
- canGoNext: boolean;
1895
+ onOpenAccessibility?: () => void;
1896
+ onDownload?: () => void;
1897
+ onClose?: () => void;
1684
1898
  }
1685
- declare const ControlButtons: ({ onPrevious, onNext, canGoPrevious, canGoNext }: ControlButtonsProps) => React__default.JSX.Element;
1899
+ declare const PdfReaderHeader: ({ pdfName, currentPage, numPages, isHovered, variant, onOpenAccessibility, onDownload, onClose }: PdfReaderHeaderProps) => React__default.JSX.Element;
1686
1900
 
1687
1901
  interface ProgressBarProps {
1688
1902
  currentPage: number;
@@ -1690,160 +1904,185 @@ interface ProgressBarProps {
1690
1904
  }
1691
1905
  declare const ProgressBar: ({ currentPage, totalPages }: ProgressBarProps) => React__default.JSX.Element;
1692
1906
 
1693
- interface ArticleContentProps {
1694
- isOpen: boolean;
1695
- onClose: () => void;
1696
- }
1697
- declare const ArticleContent: ({ isOpen, onClose }: ArticleContentProps) => React__default.JSX.Element;
1698
-
1699
- interface IUserDraft {
1700
- id: string;
1701
- content: string;
1702
- title: string;
1703
- isArticle: boolean;
1704
- isDraft: boolean;
1705
- user: {
1706
- name: string;
1707
- slug: string;
1708
- };
1709
- }
1710
-
1711
- type Profile$2 = {
1712
- id: string;
1713
- name: string;
1714
- avatar: string;
1715
- role?: string;
1716
- isPage?: boolean;
1717
- };
1718
- type ArticleViewMode = "create" | "view";
1719
- type ArticleStep = "create" | "preview" | "published";
1720
- type ArticleMedia = {
1721
- id: string;
1722
- url: string;
1723
- type: "image" | "video";
1724
- file?: File;
1907
+ declare const useApiCheckRater: ({ userId, pageId, communityId, forAPage, }: {
1908
+ userId?: string;
1909
+ pageId?: string;
1910
+ communityId?: string;
1911
+ forAPage?: boolean;
1912
+ }) => {
1913
+ hasRated: boolean;
1914
+ isCheckingRater: boolean;
1725
1915
  };
1726
1916
 
1727
- type ArticleState = {
1728
- title: string;
1729
- content: string;
1730
- post: Post$1 | null;
1731
- selectedProfile: Profile$2 | null;
1732
- media: ArticleMedia[];
1733
- uploadedMedia: string[];
1734
- isUploading: boolean;
1735
- selectedHashtags: string[];
1736
- viewMode: ArticleViewMode;
1737
- currentStep: ArticleStep;
1738
- isModalOpen: boolean;
1739
- isSaved: boolean;
1740
- isDraft: boolean;
1741
- isPublishing: boolean;
1742
- isSavingDraft: boolean;
1743
- lastSavedAt: Date | null;
1744
- currentDraftId: string | null;
1745
- setTitle: (title: string) => void;
1746
- setContent: (content: string) => void;
1747
- setPost: (post: Post$1 | null) => void;
1748
- setSelectedProfile: (profile: Profile$2 | null) => void;
1749
- addMedia: (media: ArticleMedia) => void;
1750
- removeMedia: (id: string) => void;
1751
- setIsUploading: (isUploading: boolean) => void;
1752
- toggleHashtag: (hashtagId: string) => void;
1753
- setSelectedHashtags: (hashtags: string[]) => void;
1754
- loadDraft: (draft: IUserDraft) => void;
1755
- clearDraft: () => void;
1756
- setCurrentDraftId: (id: string | null) => void;
1757
- setViewMode: (mode: ArticleViewMode) => void;
1758
- setCurrentStep: (step: ArticleStep) => void;
1759
- openModal: () => void;
1760
- closeModal: () => void;
1761
- setIsSaved: (isSaved: boolean) => void;
1762
- setIsPublishing: (isPublishing: boolean) => void;
1763
- setIsSavingDraft: (isSavingDraft: boolean) => void;
1764
- markAsSaved: () => void;
1765
- resetArticle: () => void;
1917
+ type AddRatingProps = {
1918
+ enableTitle?: boolean;
1919
+ variantStars?: "large" | "small" | "medium";
1920
+ starSize?: {
1921
+ width: number;
1922
+ height: number;
1923
+ };
1924
+ forAPage?: boolean;
1925
+ receiverPageId?: string;
1926
+ receiverUserId?: string;
1927
+ receiverCommunityId?: string;
1928
+ className?: string;
1929
+ isCommunity?: boolean;
1930
+ variant?: "default" | "feed";
1931
+ userSlug?: string;
1932
+ pageSlug?: string;
1933
+ communitySlug?: string;
1766
1934
  };
1767
- declare const useArticleStore: zustand.UseBoundStore<zustand.StoreApi<ArticleState>>;
1935
+ declare function AddRating({ enableTitle, variantStars, starSize, forAPage, receiverPageId, receiverUserId, receiverCommunityId, className, // <-- RECEBIDO
1936
+ isCommunity, // <-- NOVA PROP
1937
+ variant, // <-- NOVA PROP
1938
+ userSlug, pageSlug, communitySlug, }: AddRatingProps): React__default.JSX.Element;
1768
1939
 
1769
- declare const useArticleNavigation: () => {
1770
- viewMode: ArticleViewMode;
1771
- currentStep: ArticleStep;
1772
- isModalOpen: boolean;
1773
- goToCreate: () => void;
1774
- goToPreview: () => void;
1775
- goToPublished: () => void;
1776
- openModal: () => void;
1777
- closeModal: () => void;
1778
- resetAndClose: () => void;
1940
+ type AvatarRatingBadgeProps = {
1941
+ name?: string;
1942
+ src?: string;
1943
+ rating: number;
1944
+ asPage?: boolean;
1945
+ isCommunity?: boolean;
1946
+ className?: string;
1779
1947
  };
1948
+ declare function AvatarRatingBadge({ name, asPage, src, rating, isCommunity, }: AvatarRatingBadgeProps): React__default.JSX.Element;
1780
1949
 
1781
- declare function CreatePostCard(): React__default.JSX.Element;
1950
+ declare function RatingReviewsList({ variant, forPage, receiverPageId, receiverUserId, receiverCommunityId, inlinePreview, onOpenAllRatings, }: {
1951
+ variant?: "maximized" | "minimized";
1952
+ forPage?: boolean;
1953
+ receiverUserId?: string;
1954
+ receiverPageId?: string;
1955
+ receiverCommunityId?: string;
1956
+ inlinePreview?: boolean;
1957
+ onOpenAllRatings?: () => void;
1958
+ }): React__default.JSX.Element | null;
1782
1959
 
1783
- interface IMention {
1784
- id: string;
1785
- mentionedId: string;
1786
- mentionType: string;
1787
- mentionedCommunity?: {
1788
- slug: string;
1960
+ interface IRatingsCardProps {
1961
+ isCurrentPageOrProfile?: boolean;
1962
+ userId?: string;
1963
+ pageId?: string;
1964
+ communityId?: string;
1965
+ forAPage?: boolean;
1966
+ currentUserId?: string;
1967
+ pageSlug?: string;
1968
+ userSlug?: string;
1969
+ communitySlug?: string;
1970
+ }
1971
+ type TRatingUserCard = {
1972
+ user: {
1789
1973
  name: string;
1790
- id: string;
1791
- image: string;
1974
+ profession: string;
1975
+ avatar?: string;
1976
+ isOwner?: boolean;
1792
1977
  };
1793
- mentionedPage?: {
1794
- name: string;
1795
- slug: string;
1796
- logo: string;
1797
- id: string;
1978
+ anonymous?: boolean;
1979
+ rating: number;
1980
+ userRating: number;
1981
+ comment: string;
1982
+ createdAt: string | Date;
1983
+ };
1984
+
1985
+ declare function RatingUserCard({ user, rating, userRating, comment, createdAt, anonymous, }: TRatingUserCard): React__default.JSX.Element;
1986
+
1987
+ interface RattingSuggestionCardProps {
1988
+ asPage?: boolean;
1989
+ page?: {
1990
+ slug?: string;
1991
+ id?: string;
1992
+ sector?: string;
1993
+ logo?: string;
1994
+ rating?: number;
1995
+ totalRatings?: number;
1798
1996
  };
1799
- mentionedUser?: {
1800
- id: string;
1801
- name: string;
1802
- slug: string;
1803
- avatar: string;
1997
+ user?: {
1998
+ avatar?: string;
1999
+ name?: string;
2000
+ id?: string;
2001
+ headline?: string;
2002
+ slug?: string;
2003
+ rating?: number;
2004
+ totalRatings?: number;
1804
2005
  };
2006
+ renderFollowButton?: ReactNode;
2007
+ averageRatingScore?: number;
1805
2008
  }
2009
+ declare function RattingSuggestionCard({ asPage, page, user, renderFollowButton, averageRatingScore, }: RattingSuggestionCardProps): React__default.JSX.Element;
1806
2010
 
1807
- interface CreatePostFormState {
1808
- content: string;
1809
- isUploading: boolean;
1810
- hashtags?: string[];
1811
- setHashtags: (value?: string[]) => void;
1812
- mentions?: IMention[];
1813
- setMentions: (mentions?: IMention[]) => void;
1814
- mentionedUsers?: User$3[];
1815
- setMentionedUsers: (users?: User$3[]) => void;
1816
- uploadedMedia: string[];
1817
- selectedFiles: File[];
1818
- currentAssets: {
1819
- id: string;
1820
- url: string;
1821
- }[];
1822
- assetsToDelete: {
1823
- id: string;
1824
- url: string;
1825
- }[];
1826
- setCurrentAssets: (assets: {
1827
- id: string;
1828
- url: string;
1829
- }[]) => void;
1830
- setContent: (content: string) => void;
1831
- handleMediaUpload: (files: FileList | null, ignore?: boolean) => void;
1832
- removeMedia: (index: number) => void;
1833
- replaceMedia: (index: number, file: File) => void;
1834
- resetForm: () => void;
1835
- resetFormContent: () => void;
1836
- isValid: boolean;
1837
- isCreatingThePost: boolean;
1838
- setIsCreatingThePost: (isCreatingThePost: boolean) => void;
1839
- uploadProgress: number;
1840
- setUploadProgress: (progress: number) => void;
1841
- isProcessingPost: boolean;
1842
- setIsProcessingPost: (isProcessing: boolean) => void;
1843
- progressText: string;
1844
- setProgressText: (text: string) => void;
2011
+ declare function RatingsSummary({ variant, asPage, receiverUserId, receiverPageId, receiverCommunityId }: {
2012
+ variant?: "maximized" | "minimized";
2013
+ asPage?: boolean;
2014
+ receiverUserId?: string;
2015
+ receiverPageId?: string;
2016
+ receiverCommunityId?: string;
2017
+ }): React__default.JSX.Element;
2018
+
2019
+ interface ShareProfileDivProps extends RattingSuggestionCardProps {
2020
+ className?: string;
2021
+ }
2022
+ declare function ShareProfile({ asPage, page, user, className }: ShareProfileDivProps): React__default.JSX.Element;
2023
+
2024
+ interface ShareProfileButtonProps {
2025
+ onClick: () => void;
2026
+ }
2027
+ declare function ShareProfileButton({ onClick }: ShareProfileButtonProps): React__default.JSX.Element;
2028
+
2029
+ interface ShareProfileModalProps extends RattingSuggestionCardProps {
2030
+ isOpen: boolean;
2031
+ onClose: () => void;
2032
+ }
2033
+ declare function ShareProfileModal({ asPage, page, user, isOpen, onClose, }: ShareProfileModalProps): React__default.JSX.Element;
2034
+
2035
+ declare function RatingsCard({ isCurrentPageOrProfile, pageId, userId, communityId, variant, forAPage, currentUserId, className, userSlug, pageSlug, communitySlug, }: IRatingsCardProps & {
2036
+ variant?: "maximized" | "minimized";
2037
+ className?: string;
2038
+ userSlug?: string;
2039
+ pageSlug?: string;
2040
+ communitySlug?: string;
2041
+ }): React__default.JSX.Element;
2042
+
2043
+ declare function ReactPostButton({ post, hideLabel, className, orientation, compact, }: {
2044
+ post: Post$2;
2045
+ hideLabel?: boolean;
2046
+ className?: string;
2047
+ orientation?: "vertical" | "horizontal";
2048
+ compact?: boolean;
2049
+ }): JSX.Element;
2050
+
2051
+ type DrawerSide = 'bottom' | 'right';
2052
+ interface ResponsiveDrawerProps {
2053
+ isOpen: boolean;
2054
+ onClose: () => void;
2055
+ children: React__default.ReactNode;
2056
+ className?: string;
2057
+ fullWidth?: boolean;
2058
+ title?: string;
2059
+ header?: React__default.ReactNode;
2060
+ footer?: React__default.ReactNode;
2061
+ side?: DrawerSide;
2062
+ }
2063
+ declare const ResponsiveDrawer: React__default.FC<ResponsiveDrawerProps>;
2064
+
2065
+ declare function Spinner({ className }: {
2066
+ className?: string;
2067
+ }): React__default.JSX.Element;
2068
+
2069
+ interface SalaryInputWithButtonProps {
2070
+ label?: string;
2071
+ value?: {
2072
+ amount: string;
2073
+ currency: string;
2074
+ };
2075
+ onChange?: (val: {
2076
+ amount: string;
2077
+ currency: string;
2078
+ }) => void;
2079
+ onGenerate?: () => void;
2080
+ placeholder?: string;
2081
+ disabled?: boolean;
2082
+ className?: string;
2083
+ buttonLabel?: string;
1845
2084
  }
1846
- declare const useCreatePostFormStore: zustand.UseBoundStore<zustand.StoreApi<CreatePostFormState>>;
2085
+ declare function SalaryInputWithButton({ label, value, onChange, onGenerate, placeholder, disabled, className, buttonLabel, }: SalaryInputWithButtonProps): React__default.JSX.Element;
1847
2086
 
1848
2087
  type User = {
1849
2088
  id?: string;
@@ -1897,18 +2136,19 @@ interface IPerson {
1897
2136
  salaryExpectation?: string;
1898
2137
  countryCode?: string;
1899
2138
  }
1900
-
1901
2139
  type PostAttachmentProps = {
1902
2140
  title?: string;
1903
2141
  description?: string;
1904
2142
  imageUrl?: string;
1905
2143
  url?: string;
2144
+ slug?: string;
1906
2145
  type: string;
1907
2146
  };
1908
2147
  type Post = {
1909
2148
  user: User;
1910
- postType: "NORMAL" | "REEL" | "ARTICLE";
2149
+ postType: "NORMAL" | "REEL";
1911
2150
  id: string;
2151
+ slug: string;
1912
2152
  createdAt: string;
1913
2153
  scheduledAt?: string;
1914
2154
  bio: string;
@@ -1920,20 +2160,19 @@ type Post = {
1920
2160
  isFollowed?: boolean;
1921
2161
  isContact?: boolean;
1922
2162
  isArticle?: boolean;
1923
- isDraft?: boolean;
1924
2163
  expiresAt?: string | null;
1925
2164
  link: {
1926
2165
  title: string;
1927
2166
  description: string;
1928
2167
  imageUrl: string;
1929
2168
  url: string;
2169
+ slug: string;
1930
2170
  };
1931
2171
  images: PostAssetProps[];
1932
2172
  videos: PostAssetProps[];
1933
2173
  reactions: PostReactionsProps[];
1934
2174
  comments: CommentProps[];
1935
2175
  sharedPostId: string;
1936
- pageId?: string;
1937
2176
  page?: {
1938
2177
  id?: string;
1939
2178
  name?: string;
@@ -1954,7 +2193,11 @@ type Post = {
1954
2193
  shareCount?: number;
1955
2194
  };
1956
2195
  sharedContext?: unknown;
1957
- mention?: IMention[];
2196
+ mention?: {
2197
+ id: string;
2198
+ mentionedId: string;
2199
+ mentioned: User;
2200
+ }[];
1958
2201
  community?: {
1959
2202
  id: string;
1960
2203
  visibility: string;
@@ -2045,225 +2288,33 @@ type CommentProps = {
2045
2288
  };
2046
2289
  };
2047
2290
 
2048
- type PostType = "text" | "media" | "job" | "reel" | "schedule" | null;
2049
- type InitialStep = "main" | "schedule" | "scheduled-posts" | null;
2050
- interface CreatePostState {
2051
- isOpen: boolean;
2052
- post: Post | undefined;
2053
- setPost: (post: Post | undefined) => void;
2054
- postType: PostType;
2055
- initialStep: InitialStep;
2056
- openModal: (type?: PostType, step?: InitialStep) => void;
2057
- closeModal: (preserveFormState?: boolean) => void;
2058
- operation: "create" | "update";
2059
- setOperation: (operation: "create" | "update") => void;
2060
- setInitialStep: (step: InitialStep) => void;
2061
- }
2062
- declare const useCreatePostStore: zustand.UseBoundStore<zustand.StoreApi<CreatePostState>>;
2063
-
2064
- declare const PostCardArticle: ({ src, title, content, isCompact, classImage, fontSize }: {
2065
- src?: string;
2066
- title?: string;
2067
- content?: string;
2068
- classImage?: string;
2069
- fontSize?: string;
2070
- isCompact?: boolean;
2071
- }) => React__default.JSX.Element;
2072
-
2073
- interface ArticleViewerProps {
2074
- content: string;
2075
- }
2076
- declare function ArticleViewer({ content }: ArticleViewerProps): React__default.JSX.Element;
2077
-
2078
- type ModalState = {
2291
+ interface SharePostModalProps {
2079
2292
  isOpen: boolean;
2080
- modalId: string | null;
2081
- openModal: () => void;
2082
- closeModal: () => void;
2083
- toggleModal: () => void;
2084
- };
2085
- declare const useModalArticleStore: zustand.UseBoundStore<zustand.StoreApi<ModalState>>;
2086
-
2087
- interface CreatePostModalProps {
2088
- inline?: boolean;
2089
- }
2090
- declare function CreatePostModal({ inline }: CreatePostModalProps): React__default.JSX.Element;
2091
-
2092
- type Profile$1 = {
2093
- id: string;
2094
- name: string;
2095
- avatar: string;
2096
- role?: string;
2097
- isPage?: boolean;
2098
- };
2099
-
2100
- type ModalStep = 'main' | 'select-profile' | 'schedule' | 'scheduled-posts' | 'post-actions-menu' | 'edit-scheduled-post';
2101
- interface CreatePostContentProps {
2102
- readonly currentStep: ModalStep;
2103
- readonly selectedProfile: Profile$1 | null;
2104
- readonly scheduledDate: Date | null;
2105
- readonly selectedPostForAction: string | null;
2106
- readonly isSubmitting: boolean;
2107
- readonly isLoading: boolean;
2108
- readonly onProfileSelect: (profile: Profile$1) => void;
2109
- readonly onGoToProfileSelection: () => void;
2110
- readonly onGoToSchedule: () => void;
2111
- readonly onScheduleSelect: (date: Date) => void;
2112
- readonly onBackToMain: () => void;
2113
- readonly onScheduleMore: () => void;
2114
- readonly onPostActions: (postId: string) => void;
2115
- readonly onEditScheduledPost: (postId: string) => void;
2116
- readonly onDeleteScheduledPost: (postId?: string) => void;
2117
- readonly onEditPostSubmit: (postId: string, updatedDate?: Date | null, shouldUpdateScheduledAt?: boolean) => void;
2118
- readonly onSubmit: (type: 'REEL' | 'NORMAL') => void;
2119
- readonly onClose?: () => void;
2120
- readonly shouldLoadScheduledPosts?: boolean;
2121
- readonly onPostDeleted?: () => void;
2122
- readonly onPostUpdated?: () => void;
2123
- readonly showScheduleOption?: boolean;
2293
+ onClose: () => void;
2294
+ post: Post;
2295
+ isProfileLink?: boolean;
2296
+ variant?: "share" | "repost";
2124
2297
  }
2125
- declare function CreatePostContent(props: CreatePostContentProps): React__default.JSX.Element;
2298
+ declare const SharePostModal: ({ isOpen, onClose, post, variant, isProfileLink }: SharePostModalProps) => React__default.JSX.Element;
2126
2299
 
2127
- type CreatePostToolbarProps = {
2128
- readonly onMediaSelect?: (files: FileList | null) => void;
2129
- readonly isForReels?: boolean;
2130
- readonly onScheduleClick?: () => void;
2131
- readonly onMentionClick?: () => void;
2132
- readonly showScheduleOption?: boolean;
2133
- readonly hasMedia?: boolean;
2134
- readonly onEmojiSelect?: (emoji: string) => void;
2135
- readonly onViewScheduledPosts?: () => void;
2136
- readonly onSubmit?: (type: 'REEL' | 'NORMAL') => void;
2137
- readonly postType?: string;
2138
- };
2139
- declare function CreatePostToolbar({ onMediaSelect, isForReels, onScheduleClick, onMentionClick, hasMedia, onEmojiSelect, onViewScheduledPosts, onSubmit, postType, }: CreatePostToolbarProps): React__default.JSX.Element;
2300
+ declare function getInitials(fullName: string): string;
2140
2301
 
2141
- type CreatePostScheduleStepProps = {
2142
- readonly onBack: () => void;
2143
- readonly onScheduleSelect: (scheduledDate: Date) => void;
2144
- readonly onClose?: () => void;
2145
- readonly initialDate?: Date;
2146
- readonly onViewScheduledPosts?: () => void;
2147
- };
2148
- declare function CreatePostScheduleStep({ onBack, onScheduleSelect, onClose, initialDate, onViewScheduledPosts, }: CreatePostScheduleStepProps): React__default.JSX.Element;
2302
+ declare function joinUrlWithPathAndQuery(baseUrl: string, path: string, query?: Record<string, string>): string;
2149
2303
 
2150
- interface CreatePostReelFormProps {
2151
- onSubmit: (data: {
2152
- content: string;
2153
- media: string[];
2154
- }) => void;
2155
- }
2156
- declare function CreatePostReelForm({ onSubmit }: CreatePostReelFormProps): React__default.JSX.Element;
2304
+ declare function broadcastLogout(): void;
2305
+ declare function onLogout(callback: () => void): void;
2306
+ declare function closeLogoutChannel(): void;
2157
2307
 
2158
- type CreatePostFormProps = {
2159
- readonly onSubmit: (data: {
2160
- content: string;
2161
- media: string[];
2162
- }) => void;
2163
- readonly onScheduleClick?: () => void;
2164
- readonly scheduledDate?: Date | null;
2165
- readonly showScheduleOption?: boolean;
2166
- readonly onViewScheduledPosts?: () => void;
2167
- };
2168
- declare function CreatePostForm({ onSubmit, onScheduleClick, scheduledDate, showScheduleOption, onViewScheduledPosts, }: CreatePostFormProps): React__default.JSX.Element;
2308
+ declare function stringToObj<T>(inputString: string, separator: string): T | undefined;
2169
2309
 
2170
- type Profile = {
2171
- id: string;
2172
- name: string;
2173
- avatar: string;
2174
- role?: string;
2175
- };
2176
- type CreatePostModalFiltersProps = {
2177
- readonly selectedProfile?: Profile | null;
2178
- readonly onProfileSelectClick: () => void;
2310
+ type MobileWorkspaceBarProps = {
2311
+ onCreatePost?: () => void;
2312
+ onCreateReel?: () => void;
2313
+ onCreateJob?: () => void;
2314
+ onJobsClick?: () => void;
2179
2315
  };
2180
- declare function CreatePostModalFilters({ selectedProfile, onProfileSelectClick, }: CreatePostModalFiltersProps): React__default.JSX.Element;
2181
-
2182
- interface EmojiPickerButtonProps {
2183
- onEmojiSelect: (emoji: string) => void;
2184
- }
2185
- declare const EmojiPickerButton: ({ onEmojiSelect }: EmojiPickerButtonProps) => React__default.JSX.Element;
2186
-
2187
- interface SavedItemsStoreProps {
2188
- isOpen: boolean;
2189
- openModal: () => void;
2190
- closeModal: () => void;
2191
- toggleModal: () => void;
2192
- }
2193
- declare const useSavedItemsStore: zustand.UseBoundStore<zustand.StoreApi<SavedItemsStoreProps>>;
2194
-
2195
- /**
2196
- * Creates a persistent state from localStorage
2197
- * @param key - The localStorage key to use
2198
- * @param defaultValue - The default value if no stored value exists
2199
- * @returns The stored value or defaultValue
2200
- */
2201
- declare function createPersistentState<T>(key: string, defaultValue: T): T;
2202
-
2203
- /**
2204
- * A hook that persists UI state (views, modals) to localStorage
2205
- * The state is automatically saved when changed and restored on page load
2206
- *
2207
- * @param key - The localStorage key to use for persistence
2208
- * @param defaultValue - The default value if no stored value exists
2209
- * @returns A tuple of [state, setState] similar to useState
2210
- *
2211
- * @example
2212
- * ```tsx
2213
- * // Persist view state
2214
- * const [view, setView] = usePersistentUIState<"home" | "chat">("ui-view", "home");
2215
- *
2216
- * // Persist modal state
2217
- * const [modal, setModal] = usePersistentUIState<string | null>("ui-modal", null);
2218
- * ```
2219
- */
2220
- declare function usePersistentUIState<T>(key: string, defaultValue: T): readonly [T, React$1.Dispatch<React$1.SetStateAction<T>>];
2221
-
2222
- interface ICreateTelemetryEventInput {
2223
- input?: {
2224
- source?: {
2225
- app?: "mirantes-web" | "mirantes-mobile";
2226
- platform?: "ios" | "android" | "web";
2227
- version?: string;
2228
- environment?: string;
2229
- };
2230
- actor?: {
2231
- user_id?: string;
2232
- anonymous_id?: string;
2233
- session_id?: string;
2234
- };
2235
- context?: {
2236
- route?: string;
2237
- referrer?: string;
2238
- timezone?: string;
2239
- locale?: string;
2240
- country?: string;
2241
- device?: {
2242
- os?: string;
2243
- model?: string;
2244
- };
2245
- browser?: {
2246
- name?: string;
2247
- version?: string;
2248
- };
2249
- };
2250
- events?: ITelemetryEvent[];
2251
- };
2252
- }
2253
- interface ITelemetryEvent {
2254
- event_id?: string;
2255
- event_type?: "PAGE_VIEW" | "PROFILE_VIEW" | "CLICK_APPLY_JOB" | "SIGNUP_STEP_1" | "SIGNUP_STEP_2" | "SIGNUP_STEP_3" | "PERF_LOAD_TIME";
2256
- occurred_at?: Date;
2257
- metadata?: any;
2258
- }
2259
- interface ICreateTelemetryEventOutput {
2260
- events?: {
2261
- id?: string;
2262
- }[];
2263
- }
2316
+ declare function MobileWorkspaceBar({ onCreateJob, }: MobileWorkspaceBarProps): React__default.JSX.Element;
2264
2317
 
2265
- declare function useRegisterTracking(): {
2266
- registerEvent: _tanstack_react_query.UseMutateFunction<ICreateTelemetryEventOutput | null, Error, ICreateTelemetryEventInput, unknown>;
2267
- };
2318
+ declare function WorkspacePanel(): React__default.JSX.Element;
2268
2319
 
2269
- 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 };
2320
+ 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, injectMentionUIDs, 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 };