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

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 +1169 -1207
  2. package/dist/index.js +3260 -3261
  3. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -7,53 +7,15 @@ 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 const NoRecruitmentResponsiveIlustration: ({ className, }: {
10
+ declare function Spinner({ className }: {
11
11
  className?: string;
12
- }) => React__default.JSX.Element;
12
+ }): React__default.JSX.Element;
13
13
 
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
- }
14
+ declare function joinUrlWithPathAndQuery(baseUrl: string, path: string, query?: Record<string, string>): string;
52
15
 
53
- declare const useApiGetPage: (slug?: string) => {
54
- page: IPage | null | undefined;
55
- isGettingPage: boolean;
56
- };
16
+ declare function stringToObj<T>(inputString: string, separator: string): T | undefined;
17
+
18
+ declare function getInitials(fullName: string): string;
57
19
 
58
20
  type TLocale = "pt" | "en" | "fr";
59
21
  interface IMirantesFoundationProviderProps {
@@ -199,274 +161,171 @@ type UsePathname = () => string;
199
161
 
200
162
  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;
201
163
 
202
- declare function useMirantesFoundation(): IMirantesFoundationContext;
164
+ declare function WorkspacePanel(): React__default.JSX.Element;
203
165
 
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;
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;
211
173
 
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>>];
174
+ declare function Header({ className }: {
175
+ className?: string;
176
+ }): React__default.JSX.Element;
230
177
 
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"
178
+ declare function useMirantesFoundation(): IMirantesFoundationContext;
179
+
180
+ declare function broadcastLogout(): void;
181
+ declare function onLogout(callback: () => void): void;
182
+ declare function closeLogoutChannel(): void;
183
+
184
+ interface LogoutOptions {
185
+ broadcast?: boolean;
186
+ reload?: boolean;
187
+ redirectUrl?: string;
188
+ domain?: string;
189
+ secure?: boolean;
248
190
  }
249
- declare enum EFollowingVisibility {
250
- me = "ONLY_ME",
251
- contacts = "CONTACTS",
252
- all = "EVERYONE"
191
+ declare function clearUserSession(options?: LogoutOptions): void;
192
+
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;
253
203
  }
204
+ declare function DateInput({ label, onChange, value, required, className, triggerClassName, error, disabled, calendarClassName, }: DateInputProps$1): React$1.JSX.Element;
254
205
 
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;
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;
273
214
 
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
- };
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;
304
231
  }
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;
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;
310
240
  }
311
- interface ICreateTelemetryEventOutput {
312
- events?: {
313
- id?: string;
314
- }[];
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;
315
261
  }
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;
316
263
 
317
- declare function useRegisterTracking(): {
318
- registerEvent: _tanstack_react_query.UseMutateFunction<ICreateTelemetryEventOutput | null, Error, ICreateTelemetryEventInput, unknown>;
319
- };
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
+ }
320
275
 
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;
327
- }
328
- interface AssetUploadResponse {
329
- data: {
330
- url?: string;
331
- assetId?: string;
332
- };
333
- message: string;
334
- }
335
- interface SignedUrlRequest {
336
- assetId: string;
337
- expiry: number;
338
- version: 'small' | 'medium' | 'large';
339
- }
340
- interface SignedUrlResponse {
341
- data: {
342
- expiresAt: string;
343
- signedUrl: string;
344
- version: string;
345
- };
346
- message: string;
347
- }
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;
366
- };
367
- }
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[];
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;
382
287
  }
383
-
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;
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;
418
291
  }
419
- declare function clearUserSession(options?: LogoutOptions): void;
420
-
421
- declare function ChatView(): React__default.JSX.Element;
422
292
 
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 {
293
+ interface CountryDisplayProps {
294
+ code: string;
295
+ locale: "pt" | "fr" | "en";
447
296
  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
297
  }
458
- interface ModalConfigProps {
459
- variant?: ModalVariant;
460
- position?: ModalPosition;
461
- animationConfig?: ModalAnimationConfig;
462
- header?: React.ReactNode;
463
- zIndex?: number;
464
- offsetTop?: number;
298
+ declare function CountryDisplay({ code, locale, className, }: CountryDisplayProps): React__default.JSX.Element | null;
299
+ declare namespace CountryDisplay {
300
+ var displayName: string;
465
301
  }
466
- interface AnimatedModalProps extends BaseModalProps, ModalStyleProps, ModalBehaviorProps, ModalConfigProps {
302
+
303
+ interface SalaryInputWithButtonProps {
304
+ label?: string;
305
+ value?: {
306
+ amount: string;
307
+ currency: string;
308
+ };
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;
467
318
  }
319
+ declare function SalaryInputWithButton({ label, value, onChange, onGenerate, placeholder, disabled, className, buttonLabel, }: SalaryInputWithButtonProps): React__default.JSX.Element;
468
320
 
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;
321
+ interface CalendarProps {
322
+ locale?: "pt" | "fr" | "en";
323
+ onMarkAsUnavailable?: () => void;
324
+ isModalOpen?: boolean;
325
+ onClose?: () => void;
326
+ calendarCardClassName?: string;
327
+ }
328
+ declare function Calendar({ onMarkAsUnavailable, isModalOpen, onClose, calendarCardClassName, }: CalendarProps): React__default.JSX.Element;
470
329
 
471
330
  interface BaseInputProps extends InputHTMLAttributes<HTMLInputElement> {
472
331
  placeholder: string;
@@ -485,16 +344,6 @@ interface BaseInputProps extends InputHTMLAttributes<HTMLInputElement> {
485
344
  }
486
345
  declare const BaseInput: React__default.ForwardRefExoticComponent<BaseInputProps & React__default.RefAttributes<HTMLInputElement>>;
487
346
 
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
-
498
347
  declare function CheckBoxInput({ isChecked, onClick, label, disabled, }: {
499
348
  isChecked?: boolean;
500
349
  onClick?: (e: React__default.MouseEvent<HTMLDivElement> | React__default.KeyboardEvent<HTMLDivElement>) => void;
@@ -515,24 +364,11 @@ type CustomDrawerProps = {
515
364
  };
516
365
  declare function CustomDrawer({ children, footer, title, onClose, className, isOpen, hideCloseBlock, direction, hiddenInMobileArticle, }: CustomDrawerProps): React__default.JSX.Element | null;
517
366
 
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;
367
+ declare function RadioButtonInput({ label, isSelected, onSelect, }: {
368
+ label?: string;
369
+ isSelected?: boolean;
370
+ onSelect?: () => void;
371
+ }): React__default.JSX.Element;
536
372
 
537
373
  type Option = {
538
374
  id: string;
@@ -557,10 +393,15 @@ type CustomSelectInputProps = {
557
393
  };
558
394
  declare function CustomSelectInput({ options, value, onChange, placeholder, className, enableSearch, floattable, required, showCheck, label, error, disabled, onSearch, isLoading, }: CustomSelectInputProps): React$1.JSX.Element;
559
395
 
560
- interface EmojiPickerButtonProps {
561
- onEmojiSelect: (emoji: string) => void;
562
- }
563
- declare const EmojiPickerButton: ({ onEmojiSelect }: EmojiPickerButtonProps) => React__default.JSX.Element;
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;
564
405
 
565
406
  interface IMirantesButton extends React__default.ButtonHTMLAttributes<HTMLButtonElement> {
566
407
  label?: string;
@@ -571,78 +412,124 @@ interface IMirantesButton extends React__default.ButtonHTMLAttributes<HTMLButton
571
412
  }
572
413
  declare const MirantesButton: React__default.ForwardRefExoticComponent<IMirantesButton & React__default.RefAttributes<HTMLButtonElement>>;
573
414
 
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;
415
+ interface IDropdownProps {
416
+ trigger: React.ReactNode;
417
+ options: IDropdownOption[];
418
+ onSelect: (id: string) => void;
586
419
  className?: string;
587
- side?: "right" | "left" | "bottom";
588
- swipeable?: boolean;
589
- swipeThreshold?: number;
420
+ itemClassName?: string;
421
+ itemHoverClassName?: string;
422
+ animate?: boolean;
423
+ enableSearch?: boolean;
590
424
  }
591
-
592
- interface ExtendedDrawerProps extends IResponsiveDrawerProps {
593
- title?: string;
425
+ interface IDropdownOption {
426
+ id: string;
427
+ label: string;
428
+ value: string;
429
+ icon?: React.ReactNode;
594
430
  }
595
- declare function ResponsiveDrawer$1({ isOpen, onClose, title, header, footer, children, className, swipeable, }: ExtendedDrawerProps): React$1.JSX.Element;
596
431
 
597
- interface AddressSuggestion {
598
- country?: string;
599
- city?: string;
600
- latitude?: number;
601
- longitude?: number;
602
- address?: string;
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
+
439
+ interface IUserVisibilitySettings {
440
+ userId?: string;
441
+ profileViewMode?: EProfileViewMode;
442
+ profilePublic?: boolean;
443
+ profilePictureScope?: EPictureVisibility;
444
+ followingVisibility?: EFollowingVisibility;
445
+ notifyMentionsInMedia?: boolean;
603
446
  }
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;
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"
624
461
  }
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
462
 
627
- interface IActivateAccountModalProps {
628
- isOpen: boolean;
629
- onClose?: () => void;
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;
491
+ }
492
+ interface IFollowers {
493
+ page?: IFollowerPage[];
494
+ user?: IFollowerUser[];
495
+ }
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;
630
519
  }
631
520
 
632
- declare function ActivateAccountModal({ isOpen, onClose }: IActivateAccountModalProps): React__default.JSX.Element;
521
+ declare const useApiGetPage: (slug?: string) => {
522
+ page: IPage | null | undefined;
523
+ isGettingPage: boolean;
524
+ };
633
525
 
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;
526
+ declare function useSetChatVisibility(): {
527
+ isChatVisible: boolean;
528
+ isToSendMessageToPage: boolean;
529
+ isPageContext: boolean;
530
+ };
641
531
 
642
- declare function ChatListWrapper({ isChatOpen, isCompactMode }: {
643
- isChatOpen?: boolean;
644
- isCompactMode?: boolean;
645
- }): React__default.JSX.Element;
532
+ declare function ChatView(): React__default.JSX.Element;
646
533
 
647
534
  declare function ChatViewDesktopPage(): React__default.JSX.Element;
648
535
 
@@ -667,26 +554,10 @@ interface IMessageButtonProps$1 {
667
554
  }
668
555
  declare function MessageButton({ user, page, icon, label, className, disabled, onClick: customOnClick, isSharing, link, onConversationReady, }: IMessageButtonProps$1): React__default.JSX.Element;
669
556
 
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;
557
+ declare function ChatListWrapper({ isChatOpen, isCompactMode }: {
558
+ isChatOpen?: boolean;
559
+ isCompactMode?: boolean;
560
+ }): React__default.JSX.Element;
690
561
 
691
562
  interface IMessage {
692
563
  id?: string;
@@ -844,25 +715,73 @@ type State = {
844
715
 
845
716
  declare const useMessageAppStore: zustand.UseBoundStore<zustand.StoreApi<State>>;
846
717
 
847
- declare function PageChatContent(): React__default.JSX.Element;
718
+ interface IndexProps {
719
+ chatForPage?: boolean;
720
+ isCompactMode?: boolean;
721
+ }
722
+ declare const Index: ({ chatForPage, isCompactMode }: IndexProps) => React__default.JSX.Element;
848
723
 
849
- declare function PageChatContentHeader(): React__default.JSX.Element | null;
724
+ interface MirantesChatButtonProps {
725
+ forMobile?: boolean;
726
+ chatForPage?: boolean;
727
+ }
728
+ declare function MirantesChatButton({ forMobile, chatForPage, }: MirantesChatButtonProps): React__default.JSX.Element;
850
729
 
851
- declare function PageChatInput(): React__default.JSX.Element;
730
+ declare function useOpenChat(): {
731
+ isChatVisible: boolean;
732
+ isToSendMessageToPage: boolean;
733
+ toggleChat: () => void;
734
+ openChat: (sendMessageToPage?: boolean) => void;
735
+ closeChat: () => void;
736
+ };
852
737
 
853
738
  declare function PageChatList(): React__default.JSX.Element;
854
739
 
855
- declare function PageChatListWrapper(): React__default.JSX.Element;
740
+ declare function PageChatContent(): React__default.JSX.Element;
856
741
 
857
742
  type PageChatUserSuggestionsProps = {
858
743
  onUserClick?: () => void;
859
744
  };
860
745
  declare const PageChatUserSuggestions: React__default.ForwardRefExoticComponent<PageChatUserSuggestionsProps & React__default.RefAttributes<HTMLDivElement>>;
861
746
 
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
+
862
753
  declare function PageMessageWrapper({ containerRef: externalContainerRef }: {
863
754
  containerRef?: React__default.RefObject<HTMLDivElement | null>;
864
755
  }): React__default.JSX.Element;
865
756
 
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
+
866
785
  interface CommunityTriggerState {
867
786
  isCommunitiesOpen: boolean;
868
787
  openCommunity: () => void;
@@ -871,81 +790,98 @@ interface CommunityTriggerState {
871
790
  }
872
791
  declare const useCommunityTriggerStore: zustand.UseBoundStore<zustand.StoreApi<CommunityTriggerState>>;
873
792
 
874
- declare function ContactsModal({ onClose, slug, }: {
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;
875
807
  onClose: () => void;
876
- slug?: string;
877
- }): React__default.JSX.Element;
878
-
879
- interface CountryDisplayProps {
880
- code: string;
881
- locale: "pt" | "fr" | "en";
882
- className?: string;
808
+ children: React.ReactNode;
883
809
  }
884
- declare function CountryDisplay({ code, locale, className, }: CountryDisplayProps): React__default.JSX.Element | null;
885
- declare namespace CountryDisplay {
886
- var displayName: string;
810
+ interface ModalStyleProps {
811
+ className?: string;
812
+ contentClassName?: string;
813
+ overlayClassName?: string;
887
814
  }
888
-
889
- interface ICountryInputProps {
890
- locale?: "pt" | "fr" | "en";
891
- value?: string;
892
- onChange?: (value: {
893
- locale: string;
894
- name: string;
895
- }) => void;
896
- className?: string;
897
- defaultCode?: string;
898
- forNationality?: boolean;
815
+ interface ModalBehaviorProps {
816
+ closeOnClickOutside?: boolean;
817
+ closeOnEscape?: boolean;
818
+ hideCloseButton?: boolean;
819
+ preventBodyScroll?: boolean;
820
+ showOverlay?: boolean;
821
+ }
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 {
899
831
  }
900
832
 
901
- interface CountryInputProps extends Omit<ICountryInputProps, "locale" | "onChange"> {
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;
902
841
  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;
842
+ side?: "right" | "left" | "bottom";
843
+ swipeable?: boolean;
844
+ swipeThreshold?: number;
912
845
  }
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;
846
+
847
+ interface ExtendedDrawerProps extends IResponsiveDrawerProps {
848
+ title?: string;
916
849
  }
850
+ declare function ResponsiveDrawer$1({ isOpen, onClose, title, header, footer, children, className, swipeable, }: ExtendedDrawerProps): React$1.JSX.Element;
917
851
 
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;
852
+ type DrawerSide = 'bottom' | 'right';
853
+ interface ResponsiveDrawerProps {
854
+ isOpen: boolean;
855
+ onClose: () => void;
856
+ children: React__default.ReactNode;
927
857
  className?: string;
928
- placeholder?: string;
929
- inputClassName?: string;
930
- label?: string;
931
- "data-testid"?: string;
932
- error?: string;
933
- formattedAsMonthYear?: boolean;
858
+ fullWidth?: boolean;
859
+ title?: string;
860
+ header?: React__default.ReactNode;
861
+ footer?: React__default.ReactNode;
862
+ side?: DrawerSide;
934
863
  }
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;
864
+ declare const ResponsiveDrawer: React__default.FC<ResponsiveDrawerProps>;
936
865
 
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;
866
+ type OportunityType = "jobs" | "candidancies" | null;
867
+ interface OportunitiesState {
868
+ openType: OportunityType;
869
+ setOpenType: (type: OportunityType) => void;
870
+ reset: () => void;
947
871
  }
948
- declare function DateInput({ label, onChange, value, required, className, triggerClassName, error, disabled, calendarClassName, }: DateInputProps): React$1.JSX.Element;
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;
949
885
 
950
886
  interface AutoDownloadBannerProps {
951
887
  /** Número máximo de vezes que o banner pode ser mostrado (padrão: 5) */
@@ -959,9 +895,13 @@ interface AutoDownloadBannerProps {
959
895
  }
960
896
  declare const AutoDownloadBanner: React__default.FC<AutoDownloadBannerProps>;
961
897
 
962
- declare const DownloadModalTrigger: () => React__default.JSX.Element;
963
-
964
- declare const DownloadMobileVersionBanner: () => React__default.JSX.Element;
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>>;
965
905
 
966
906
  interface BannerConfig {
967
907
  /** Número máximo de vezes que o banner pode ser mostrado (padrão: 5) */
@@ -986,119 +926,259 @@ declare const usePeriodicDownloadBanner: (config?: BannerConfig) => {
986
926
  isMobile: boolean;
987
927
  };
988
928
 
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>>;
929
+ declare function PagesFeedTrigger({ onClick }: {
930
+ onClick?: (e: React__default.MouseEvent) => void;
931
+ }): React__default.JSX.Element;
996
932
 
997
- interface ArticleContentProps {
998
- isOpen: boolean;
999
- onClose: () => void;
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;
1000
943
  }
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;
944
+ type TRatingUserCard = {
945
+ user: {
946
+ name: string;
947
+ profession: string;
948
+ avatar?: string;
949
+ isOwner?: boolean;
1033
950
  };
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[];
951
+ anonymous?: boolean;
952
+ rating: number;
953
+ userRating: number;
954
+ comment: string;
955
+ createdAt: string | Date;
1046
956
  };
1047
- interface IPerson$2 {
1048
- gender?: string;
1049
- birthDate?: Date;
1050
- nationality?: string;
1051
- maritalStatus?: string;
1052
- salaryExpectation?: string;
1053
- countryCode?: string;
1054
- }
1055
957
 
1056
- type PostAttachmentProps$2 = {
1057
- title?: string;
1058
- description?: string;
1059
- imageUrl?: string;
1060
- url?: string;
1061
- type: string;
1062
- };
1063
- type Post$2 = {
1064
- user: User$2;
1065
- postType: "NORMAL" | "REEL" | "ARTICLE";
1066
- id: string;
1067
- createdAt: string;
1068
- scheduledAt?: string;
1069
- bio: string;
1070
- content: string;
1071
- totalShares: number;
1072
- totalReactions?: number;
1073
- totalComments?: number;
1074
- attachment?: PostAttachmentProps$2;
1075
- isFollowed?: boolean;
1076
- isContact?: boolean;
1077
- isArticle?: boolean;
1078
- isDraft?: boolean;
1079
- expiresAt?: string | null;
1080
- link: {
1081
- title: string;
1082
- description: string;
1083
- imageUrl: string;
1084
- url: string;
1085
- };
1086
- images: PostAssetProps$2[];
1087
- videos: PostAssetProps$2[];
1088
- reactions: PostReactionsProps$2[];
1089
- comments: CommentProps$2[];
1090
- sharedPostId: string;
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;
1091
968
  page?: {
1092
- id?: string;
1093
- name?: string;
1094
969
  slug?: string;
970
+ id?: string;
1095
971
  sector?: string;
1096
- banner?: string;
1097
972
  logo?: string;
1098
- site?: string;
973
+ rating?: number;
974
+ totalRatings?: number;
1099
975
  };
1100
- media?: unknown;
1101
- linkPreview?: unknown;
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;
1179
+ };
1180
+ media?: unknown;
1181
+ linkPreview?: unknown;
1102
1182
  visibility?: string;
1103
1183
  sharedPost: Post$2;
1104
1184
  title?: string;
@@ -1167,10 +1247,10 @@ type PostReactionsProps$2 = {
1167
1247
  id: string;
1168
1248
  userId: string;
1169
1249
  postId: string;
1170
- reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY" | "AGREE" | "DISLIKE" | "EUREKA" | "NO_COMMENT" | "SUPPORT" | "DISAGREE";
1171
- createdAt?: string;
1172
- updatedAt?: string;
1173
- user?: User$2;
1250
+ reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY";
1251
+ createdAt: string;
1252
+ updatedAt: string;
1253
+ user: User$2;
1174
1254
  };
1175
1255
  type CommentReactionsProps$2 = {
1176
1256
  id: string;
@@ -1203,272 +1283,21 @@ type CommentProps$2 = {
1203
1283
  };
1204
1284
  };
1205
1285
 
1206
- interface IUserDraft {
1207
- id: string;
1208
- content: string;
1209
- title: string;
1210
- isArticle: boolean;
1211
- isDraft: boolean;
1212
- user: {
1213
- name: string;
1214
- slug: string;
1215
- };
1286
+ interface SharePostModalProps {
1287
+ isOpen: boolean;
1288
+ onClose: () => void;
1289
+ post: Post$2;
1290
+ isProfileLink?: boolean;
1291
+ variant?: "share" | "repost";
1216
1292
  }
1293
+ declare const SharePostModal: ({ isOpen, onClose, post, variant, isProfileLink }: SharePostModalProps) => React__default.JSX.Element;
1217
1294
 
1218
- type Profile$2 = {
1219
- id: string;
1220
- name: string;
1221
- avatar: string;
1222
- role?: string;
1223
- isPage?: boolean;
1224
- };
1225
- type ArticleViewMode = "create" | "view";
1226
- type ArticleStep = "create" | "preview" | "published";
1227
- type ArticleMedia = {
1228
- id: string;
1229
- url: string;
1230
- type: "image" | "video";
1231
- file?: File;
1232
- };
1295
+ interface IActivateAccountModalProps {
1296
+ isOpen: boolean;
1297
+ onClose?: () => void;
1298
+ }
1233
1299
 
1234
- type ArticleState = {
1235
- title: string;
1236
- content: string;
1237
- post: Post$2 | null;
1238
- selectedProfile: Profile$2 | null;
1239
- media: ArticleMedia[];
1240
- uploadedMedia: string[];
1241
- isUploading: boolean;
1242
- selectedHashtags: string[];
1243
- viewMode: ArticleViewMode;
1244
- currentStep: ArticleStep;
1245
- isModalOpen: boolean;
1246
- isSaved: boolean;
1247
- isDraft: boolean;
1248
- isPublishing: boolean;
1249
- isSavingDraft: boolean;
1250
- lastSavedAt: Date | null;
1251
- currentDraftId: string | null;
1252
- setTitle: (title: string) => void;
1253
- setContent: (content: string) => void;
1254
- setPost: (post: Post$2 | null) => void;
1255
- setSelectedProfile: (profile: Profile$2 | null) => void;
1256
- addMedia: (media: ArticleMedia) => void;
1257
- removeMedia: (id: string) => void;
1258
- setIsUploading: (isUploading: boolean) => void;
1259
- toggleHashtag: (hashtagId: string) => void;
1260
- setSelectedHashtags: (hashtags: string[]) => void;
1261
- loadDraft: (draft: IUserDraft) => void;
1262
- clearDraft: () => void;
1263
- setCurrentDraftId: (id: string | null) => void;
1264
- setViewMode: (mode: ArticleViewMode) => void;
1265
- setCurrentStep: (step: ArticleStep) => void;
1266
- openModal: () => void;
1267
- closeModal: () => void;
1268
- setIsSaved: (isSaved: boolean) => void;
1269
- setIsPublishing: (isPublishing: boolean) => void;
1270
- setIsSavingDraft: (isSavingDraft: boolean) => void;
1271
- markAsSaved: () => void;
1272
- resetArticle: () => void;
1273
- };
1274
- declare const useArticleStore: zustand.UseBoundStore<zustand.StoreApi<ArticleState>>;
1275
-
1276
- declare const useArticleNavigation: () => {
1277
- viewMode: ArticleViewMode;
1278
- currentStep: ArticleStep;
1279
- isModalOpen: boolean;
1280
- goToCreate: () => void;
1281
- goToPreview: () => void;
1282
- goToPublished: () => void;
1283
- openModal: () => void;
1284
- closeModal: () => void;
1285
- resetAndClose: () => void;
1286
- };
1287
-
1288
- interface ArticleViewerProps {
1289
- content: string;
1290
- }
1291
- declare function ArticleViewer({ content }: ArticleViewerProps): React__default.JSX.Element;
1292
-
1293
- declare const PostCardArticle: ({ src, title, content, isCompact, classImage, fontSize }: {
1294
- src?: string;
1295
- title?: string;
1296
- content?: string;
1297
- classImage?: string;
1298
- fontSize?: string;
1299
- isCompact?: boolean;
1300
- }) => React__default.JSX.Element;
1301
-
1302
- type ModalState = {
1303
- isOpen: boolean;
1304
- modalId: string | null;
1305
- openModal: () => void;
1306
- closeModal: () => void;
1307
- toggleModal: () => void;
1308
- };
1309
- declare const useModalArticleStore: zustand.UseBoundStore<zustand.StoreApi<ModalState>>;
1310
-
1311
- declare function CreatePostCard(): React__default.JSX.Element;
1312
-
1313
- type Profile$1 = {
1314
- id: string;
1315
- name: string;
1316
- avatar: string;
1317
- role?: string;
1318
- isPage?: boolean;
1319
- };
1320
-
1321
- type ModalStep = 'main' | 'select-profile' | 'schedule' | 'scheduled-posts' | 'post-actions-menu' | 'edit-scheduled-post';
1322
- interface CreatePostContentProps {
1323
- readonly currentStep: ModalStep;
1324
- readonly selectedProfile: Profile$1 | null;
1325
- readonly scheduledDate: Date | null;
1326
- readonly selectedPostForAction: string | null;
1327
- readonly isSubmitting: boolean;
1328
- readonly isLoading: boolean;
1329
- readonly onProfileSelect: (profile: Profile$1) => void;
1330
- readonly onGoToProfileSelection: () => void;
1331
- readonly onGoToSchedule: () => void;
1332
- readonly onScheduleSelect: (date: Date) => void;
1333
- readonly onBackToMain: () => void;
1334
- readonly onScheduleMore: () => void;
1335
- readonly onPostActions: (postId: string) => void;
1336
- readonly onEditScheduledPost: (postId: string) => void;
1337
- readonly onDeleteScheduledPost: (postId?: string) => void;
1338
- readonly onEditPostSubmit: (postId: string, updatedDate?: Date | null, shouldUpdateScheduledAt?: boolean) => void;
1339
- readonly onSubmit: (type: 'REEL' | 'NORMAL') => void;
1340
- readonly onClose?: () => void;
1341
- readonly shouldLoadScheduledPosts?: boolean;
1342
- readonly onPostDeleted?: () => void;
1343
- readonly onPostUpdated?: () => void;
1344
- readonly showScheduleOption?: boolean;
1345
- }
1346
- declare function CreatePostContent(props: CreatePostContentProps): React__default.JSX.Element;
1347
-
1348
- type CreatePostFormProps = {
1349
- readonly onSubmit: (data: {
1350
- content: string;
1351
- media: string[];
1352
- }) => void;
1353
- readonly onScheduleClick?: () => void;
1354
- readonly scheduledDate?: Date | null;
1355
- readonly showScheduleOption?: boolean;
1356
- readonly onViewScheduledPosts?: () => void;
1357
- };
1358
- declare function CreatePostForm({ onSubmit, onScheduleClick, scheduledDate, showScheduleOption, onViewScheduledPosts, }: CreatePostFormProps): React__default.JSX.Element;
1359
-
1360
- interface IMention {
1361
- id: string;
1362
- mentionedId: string;
1363
- mentionType: string;
1364
- mentionedCommunity?: {
1365
- slug: string;
1366
- name: string;
1367
- id: string;
1368
- image: string;
1369
- };
1370
- mentionedPage?: {
1371
- name: string;
1372
- slug: string;
1373
- logo: string;
1374
- id: string;
1375
- };
1376
- mentionedUser?: {
1377
- id: string;
1378
- name: string;
1379
- slug: string;
1380
- avatar: string;
1381
- };
1382
- }
1383
-
1384
- interface CreatePostFormState {
1385
- content: string;
1386
- isUploading: boolean;
1387
- hashtags?: string[];
1388
- setHashtags: (value?: string[]) => void;
1389
- mentions?: IMention[];
1390
- setMentions: (mentions?: IMention[]) => void;
1391
- mentionedUsers?: User$3[];
1392
- setMentionedUsers: (users?: User$3[]) => void;
1393
- uploadedMedia: string[];
1394
- selectedFiles: File[];
1395
- currentAssets: {
1396
- id: string;
1397
- url: string;
1398
- }[];
1399
- assetsToDelete: {
1400
- id: string;
1401
- url: string;
1402
- }[];
1403
- setCurrentAssets: (assets: {
1404
- id: string;
1405
- url: string;
1406
- }[]) => void;
1407
- setContent: (content: string) => void;
1408
- handleMediaUpload: (files: FileList | null, ignore?: boolean) => void;
1409
- removeMedia: (index: number) => void;
1410
- replaceMedia: (index: number, file: File) => void;
1411
- resetForm: () => void;
1412
- resetFormContent: () => void;
1413
- isValid: boolean;
1414
- isCreatingThePost: boolean;
1415
- setIsCreatingThePost: (isCreatingThePost: boolean) => void;
1416
- uploadProgress: number;
1417
- setUploadProgress: (progress: number) => void;
1418
- isProcessingPost: boolean;
1419
- setIsProcessingPost: (isProcessing: boolean) => void;
1420
- progressText: string;
1421
- setProgressText: (text: string) => void;
1422
- }
1423
- declare const useCreatePostFormStore: zustand.UseBoundStore<zustand.StoreApi<CreatePostFormState>>;
1424
-
1425
- interface CreatePostModalProps {
1426
- inline?: boolean;
1427
- }
1428
- declare function CreatePostModal({ inline }: CreatePostModalProps): React__default.JSX.Element;
1429
-
1430
- type Profile = {
1431
- id: string;
1432
- name: string;
1433
- avatar: string;
1434
- role?: string;
1435
- };
1436
- type CreatePostModalFiltersProps = {
1437
- readonly selectedProfile?: Profile | null;
1438
- readonly onProfileSelectClick: () => void;
1439
- };
1440
- declare function CreatePostModalFilters({ selectedProfile, onProfileSelectClick, }: CreatePostModalFiltersProps): React__default.JSX.Element;
1441
-
1442
- interface CreatePostReelFormProps {
1443
- onSubmit: (data: {
1444
- content: string;
1445
- media: string[];
1446
- }) => void;
1447
- }
1448
- declare function CreatePostReelForm({ onSubmit }: CreatePostReelFormProps): React__default.JSX.Element;
1449
-
1450
- type CreatePostScheduleStepProps = {
1451
- readonly onBack: () => void;
1452
- readonly onScheduleSelect: (scheduledDate: Date) => void;
1453
- readonly onClose?: () => void;
1454
- readonly initialDate?: Date;
1455
- readonly onViewScheduledPosts?: () => void;
1456
- };
1457
- declare function CreatePostScheduleStep({ onBack, onScheduleSelect, onClose, initialDate, onViewScheduledPosts, }: CreatePostScheduleStepProps): React__default.JSX.Element;
1458
-
1459
- type CreatePostToolbarProps = {
1460
- readonly onMediaSelect?: (files: FileList | null) => void;
1461
- readonly isForReels?: boolean;
1462
- readonly onScheduleClick?: () => void;
1463
- readonly onMentionClick?: () => void;
1464
- readonly showScheduleOption?: boolean;
1465
- readonly hasMedia?: boolean;
1466
- readonly onEmojiSelect?: (emoji: string) => void;
1467
- readonly onViewScheduledPosts?: () => void;
1468
- readonly onSubmit?: (type: 'REEL' | 'NORMAL') => void;
1469
- readonly postType?: string;
1470
- };
1471
- declare function CreatePostToolbar({ onMediaSelect, isForReels, onScheduleClick, onMentionClick, hasMedia, onEmojiSelect, onViewScheduledPosts, onSubmit, postType, }: CreatePostToolbarProps): React__default.JSX.Element;
1300
+ declare function ActivateAccountModal({ isOpen, onClose }: IActivateAccountModalProps): React__default.JSX.Element;
1472
1301
 
1473
1302
  type User$1 = {
1474
1303
  id?: string;
@@ -1532,7 +1361,7 @@ type PostAttachmentProps$1 = {
1532
1361
  };
1533
1362
  type Post$1 = {
1534
1363
  user: User$1;
1535
- postType: "NORMAL" | "REEL" | "ARTICLE";
1364
+ postType: 'NORMAL' | 'REEL' | 'ARTICLE';
1536
1365
  id: string;
1537
1366
  createdAt: string;
1538
1367
  scheduledAt?: string;
@@ -1540,6 +1369,7 @@ type Post$1 = {
1540
1369
  content: string;
1541
1370
  totalShares: number;
1542
1371
  totalReactions?: number;
1372
+ currentUserReaction?: string | undefined;
1543
1373
  totalComments?: number;
1544
1374
  attachment?: PostAttachmentProps$1;
1545
1375
  isFollowed?: boolean;
@@ -1558,7 +1388,6 @@ type Post$1 = {
1558
1388
  reactions: PostReactionsProps$1[];
1559
1389
  comments: CommentProps$1[];
1560
1390
  sharedPostId: string;
1561
- pageId?: string;
1562
1391
  page?: {
1563
1392
  id?: string;
1564
1393
  name?: string;
@@ -1579,7 +1408,11 @@ type Post$1 = {
1579
1408
  shareCount?: number;
1580
1409
  };
1581
1410
  sharedContext?: unknown;
1582
- mention?: IMention[];
1411
+ mention?: {
1412
+ id: string;
1413
+ mentionedId: string;
1414
+ mentioned: User$1;
1415
+ }[];
1583
1416
  community?: {
1584
1417
  id: string;
1585
1418
  visibility: string;
@@ -1627,23 +1460,23 @@ type Post$1 = {
1627
1460
  type PostAssetProps$1 = {
1628
1461
  id: string;
1629
1462
  url: string;
1630
- type?: "image" | "video" | "pdf";
1463
+ type?: 'image' | 'video' | 'pdf';
1631
1464
  createdAt?: string;
1632
1465
  };
1633
1466
  type PostReactionsProps$1 = {
1634
1467
  id: string;
1635
1468
  userId: string;
1636
1469
  postId: string;
1637
- reaction: "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY";
1638
- createdAt: string;
1639
- updatedAt: string;
1640
- user: User$1;
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;
1641
1474
  };
1642
1475
  type CommentReactionsProps$1 = {
1643
1476
  id: string;
1644
1477
  userId: string;
1645
1478
  commentId: string;
1646
- reaction: "LIKE" | "LOVE" | "HAHA" | "AGREE" | "DISLIKE" | "EUREKA" | "NO_COMMENT" | "SUPPORT";
1479
+ reaction: 'LIKE' | 'LOVE' | 'HAHA' | 'AGREE' | 'DISLIKE' | 'EUREKA' | 'NO_COMMENT' | 'SUPPORT';
1647
1480
  createdAt: string;
1648
1481
  updatedAt: string;
1649
1482
  user?: User$1;
@@ -1670,181 +1503,134 @@ type CommentProps$1 = {
1670
1503
  };
1671
1504
  };
1672
1505
 
1673
- type PostType = "text" | "media" | "job" | "reel" | "schedule" | null;
1674
- type InitialStep = "main" | "schedule" | "scheduled-posts" | null;
1675
- interface CreatePostState {
1676
- isOpen: boolean;
1677
- post: Post$1 | undefined;
1678
- setPost: (post: Post$1 | undefined) => void;
1679
- postType: PostType;
1680
- initialStep: InitialStep;
1681
- openModal: (type?: PostType, step?: InitialStep) => void;
1682
- closeModal: (preserveFormState?: boolean) => void;
1683
- operation: "create" | "update";
1684
- setOperation: (operation: "create" | "update") => void;
1685
- setInitialStep: (step: InitialStep) => void;
1686
- }
1687
- declare const useCreatePostStore: zustand.UseBoundStore<zustand.StoreApi<CreatePostState>>;
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;
1688
1513
 
1689
- type TMentionType = "user" | "page" | "community";
1690
- type TMentionItem = {
1514
+ interface TargetEntity {
1691
1515
  id?: string;
1692
1516
  name?: string;
1693
- slug?: string;
1517
+ avatar?: string;
1694
1518
  logo?: string;
1695
1519
  image?: string;
1696
- avatar?: string;
1697
- headline?: string;
1698
- type?: TMentionType;
1699
- };
1700
-
1701
- type MentionableItem = {
1702
- id?: string;
1703
- name?: string;
1704
1520
  slug?: string;
1705
- image?: string;
1706
- type?: 'user' | 'page' | 'community';
1707
- originalData?: TMentionItem;
1708
- };
1709
-
1710
- interface MentionableTextareaRef {
1711
- insertMention: () => void;
1712
- focus: () => void;
1713
- getEditor: () => HTMLDivElement | null;
1714
1521
  }
1715
- type MentionableTextareaProps = {
1716
- value: string;
1717
- onChange: (value: string) => void;
1718
- placeholder?: string;
1522
+ interface IMessageButtonProps {
1523
+ user?: TargetEntity;
1524
+ label?: string;
1719
1525
  className?: string;
1720
1526
  disabled?: boolean;
1721
- onMentionsChange?: (mentions: IMention[]) => void;
1722
- onKeyDown?: React__default.KeyboardEventHandler<HTMLDivElement>;
1723
- minHeight?: number;
1724
- maxHeight?: number;
1725
- initialMentions?: MentionableItem[];
1726
- };
1727
- declare const MentionableTextarea: React__default.ForwardRefExoticComponent<MentionableTextareaProps & React__default.RefAttributes<MentionableTextareaRef>>;
1728
-
1729
- interface SavedItemsStoreProps {
1730
- isOpen: boolean;
1731
- openModal: () => void;
1732
- closeModal: () => void;
1733
- toggleModal: () => void;
1527
+ onClick?: () => void;
1528
+ variant?: 'default' | 'small';
1529
+ onConversationReady?: (conversationId: string) => void;
1734
1530
  }
1735
- declare const useSavedItemsStore: zustand.UseBoundStore<zustand.StoreApi<SavedItemsStoreProps>>;
1531
+ declare function MessagesButtonFromPage({ user, label, className, disabled, onClick: customOnClick, variant, }: IMessageButtonProps): React__default.JSX.Element;
1736
1532
 
1737
- declare function GradientModal({ onClose, children, isOpen, className, contentClassName, showGradient, }: {
1738
- onClose: () => void;
1739
- children: React__default.ReactNode;
1740
- isOpen: boolean;
1741
- className?: string;
1742
- contentClassName?: string;
1743
- showGradient?: boolean;
1744
- }): React__default.JSX.Element;
1533
+ declare function useRestorePendingChat(): void;
1745
1534
 
1746
- type OportunityType = "jobs" | "candidancies" | null;
1747
- interface OportunitiesState {
1748
- openType: OportunityType;
1749
- setOpenType: (type: OportunityType) => void;
1750
- reset: () => void;
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;
1751
1541
  }
1752
- declare const useOportunitiesStore: zustand.UseBoundStore<zustand.StoreApi<OportunitiesState>>;
1753
-
1754
- declare function PagesFeedTrigger({ onClick }: {
1755
- onClick?: (e: React__default.MouseEvent) => void;
1756
- }): React__default.JSX.Element;
1757
-
1758
- declare function Header({ className }: {
1759
- className?: string;
1760
- }): React__default.JSX.Element;
1761
-
1762
- interface CandidaciesTriggerState {
1763
- isCandidaciesOpen: boolean;
1764
- openCandidacies: () => void;
1765
- closeCandidacies: () => void;
1766
- toggleCandidacies: () => void;
1542
+ interface AssetUploadResponse {
1543
+ data: {
1544
+ url?: string;
1545
+ assetId?: string;
1546
+ };
1547
+ message: string;
1767
1548
  }
1768
- declare const useCandidaciesTriggerStore: zustand.UseBoundStore<zustand.StoreApi<CandidaciesTriggerState>>;
1769
-
1770
- interface JobTriggerState {
1771
- isJobOpen: boolean;
1772
- openJob: () => void;
1773
- closeJob: () => void;
1774
- toggleJob: () => void;
1549
+ interface SignedUrlRequest {
1550
+ assetId: string;
1551
+ expiry: number;
1552
+ version: 'small' | 'medium' | 'large';
1775
1553
  }
1776
- declare const useJobTriggerStore: zustand.UseBoundStore<Omit<zustand.StoreApi<JobTriggerState>, "setState" | "persist"> & {
1777
- setState(partial: JobTriggerState | Partial<JobTriggerState> | ((state: JobTriggerState) => JobTriggerState | Partial<JobTriggerState>), replace?: false | undefined): unknown;
1778
- setState(state: JobTriggerState | ((state: JobTriggerState) => JobTriggerState), replace: true): unknown;
1779
- persist: {
1780
- setOptions: (options: Partial<zustand_middleware.PersistOptions<JobTriggerState, unknown, unknown>>) => void;
1781
- clearStorage: () => void;
1782
- rehydrate: () => Promise<void> | void;
1783
- hasHydrated: () => boolean;
1784
- onHydrate: (fn: (state: JobTriggerState) => void) => () => void;
1785
- onFinishHydration: (fn: (state: JobTriggerState) => void) => () => void;
1786
- getOptions: () => Partial<zustand_middleware.PersistOptions<JobTriggerState, unknown, unknown>>;
1554
+ interface SignedUrlResponse {
1555
+ data: {
1556
+ expiresAt: string;
1557
+ signedUrl: string;
1558
+ version: string;
1787
1559
  };
1788
- }>;
1789
-
1790
- interface MirantesChatButtonProps {
1791
- forMobile?: boolean;
1792
- chatForPage?: boolean;
1560
+ message: string;
1793
1561
  }
1794
- declare function MirantesChatButton({ forMobile, chatForPage, }: MirantesChatButtonProps): React__default.JSX.Element;
1795
-
1796
- declare function useOpenChat(): {
1797
- isChatVisible: boolean;
1798
- isToSendMessageToPage: boolean;
1799
- toggleChat: () => void;
1800
- openChat: (sendMessageToPage?: boolean) => void;
1801
- closeChat: () => void;
1802
- };
1803
-
1804
- interface IndexProps {
1805
- chatForPage?: boolean;
1806
- isCompactMode?: boolean;
1562
+ type AssetVersionKey = 'small' | 'medium' | 'large';
1563
+ interface AssetVersion {
1564
+ format: string;
1565
+ platforms: string[];
1566
+ recommended: boolean;
1567
+ url: string;
1807
1568
  }
1808
- declare const Index: ({ chatForPage, isCompactMode }: IndexProps) => React__default.JSX.Element;
1809
-
1810
- interface CalendarProps {
1811
- locale?: "pt" | "fr" | "en";
1812
- onMarkAsUnavailable?: () => void;
1813
- isModalOpen?: boolean;
1814
- onClose?: () => void;
1815
- calendarCardClassName?: string;
1569
+ interface AssetVersionsResponse {
1570
+ mediaID: string;
1571
+ platform: string;
1572
+ versions: Record<AssetVersionKey, AssetVersion>;
1816
1573
  }
1817
- declare function Calendar({ onMarkAsUnavailable, isModalOpen, onClose, calendarCardClassName, }: CalendarProps): React__default.JSX.Element;
1818
-
1819
- interface PageFloatFooterProps {
1820
- /**
1821
- * Callback chamado quando o botão de adicionar é clicado.
1822
- * Se fornecido, será usado em vez do comportamento padrão.
1823
- */
1824
- onAddClick?: () => void;
1574
+ interface BulkAssetUploadItemSuccess {
1575
+ status: 'success';
1576
+ message: string;
1577
+ data: {
1578
+ url: string;
1579
+ assetId?: string;
1580
+ };
1825
1581
  }
1826
- declare function PageFloatFooter({ onAddClick }: PageFloatFooterProps): React__default.JSX.Element;
1827
-
1828
- interface ControlButtonsProps {
1829
- onPrevious: () => void;
1830
- onNext: () => void;
1831
- canGoPrevious: boolean;
1832
- canGoNext: boolean;
1582
+ interface BulkAssetUploadItemError {
1583
+ status: 'error';
1584
+ message: string;
1585
+ data?: null;
1586
+ }
1587
+ type BulkAssetUploadItem = BulkAssetUploadItemSuccess | BulkAssetUploadItemError;
1588
+ interface AssetUploadBulkRequest {
1589
+ files: File[];
1590
+ owner_type: OwnerType;
1591
+ owner_id?: string;
1592
+ is_public: boolean;
1593
+ }
1594
+ interface AssetUploadBulkResponse {
1595
+ results: BulkAssetUploadItem[];
1833
1596
  }
1834
- declare const ControlButtons: ({ onPrevious, onNext, canGoPrevious, canGoNext }: ControlButtonsProps) => React__default.JSX.Element;
1835
1597
 
1836
- interface PdfFooterProps {
1837
- currentPage: number;
1838
- numPages: number;
1839
- pdfUrl: string;
1840
- isHovered: boolean;
1841
- onToggleFullscreen?: () => void;
1842
- variant?: 'default' | 'fullscreen';
1843
- zoom?: number;
1844
- onZoomIn?: () => void;
1845
- onZoomOut?: () => void;
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
+ };
1625
+
1626
+ interface PdfReaderProps {
1627
+ pdfUrl?: string;
1628
+ totalPages?: number;
1629
+ pdfName?: string;
1630
+ className?: string;
1631
+ onMaximizeClicked?: () => void;
1846
1632
  }
1847
- declare const PdfFooter: ({ currentPage, numPages, pdfUrl, isHovered, onToggleFullscreen, variant, zoom, onZoomIn, onZoomOut }: PdfFooterProps) => React__default.JSX.Element;
1633
+ declare const PdfReader: ({ pdfUrl, totalPages: initialTotalPages, pdfName: initialPdfName, className, onMaximizeClicked }: PdfReaderProps) => React__default.JSX.Element;
1848
1634
 
1849
1635
  interface PdfFullscreenViewProps {
1850
1636
  pdfUrl: string;
@@ -1865,15 +1651,6 @@ interface PdfFullscreenViewProps {
1865
1651
  }
1866
1652
  declare const PdfFullscreenView: ({ pdfUrl, pdfUrlWithPage, currentPage, numPages, pdfName, zoom, onClose, onDownload, onOpenAccessibility, onZoomIn, onZoomOut, onPreviousPage, onNextPage, canGoPrevious, canGoNext, }: PdfFullscreenViewProps) => React__default.ReactPortal | null;
1867
1653
 
1868
- interface PdfReaderProps {
1869
- pdfUrl?: string;
1870
- totalPages?: number;
1871
- pdfName?: string;
1872
- className?: string;
1873
- onMaximizeClicked?: () => void;
1874
- }
1875
- declare const PdfReader: ({ pdfUrl, totalPages: initialTotalPages, pdfName: initialPdfName, className, onMaximizeClicked }: PdfReaderProps) => React__default.JSX.Element;
1876
-
1877
1654
  interface PdfReaderHeaderProps {
1878
1655
  pdfName: string;
1879
1656
  currentPage: number;
@@ -1886,190 +1663,187 @@ interface PdfReaderHeaderProps {
1886
1663
  }
1887
1664
  declare const PdfReaderHeader: ({ pdfName, currentPage, numPages, isHovered, variant, onOpenAccessibility, onDownload, onClose }: PdfReaderHeaderProps) => React__default.JSX.Element;
1888
1665
 
1666
+ interface PdfFooterProps {
1667
+ currentPage: number;
1668
+ numPages: number;
1669
+ pdfUrl: string;
1670
+ isHovered: boolean;
1671
+ onToggleFullscreen?: () => void;
1672
+ 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;
1684
+ }
1685
+ declare const ControlButtons: ({ onPrevious, onNext, canGoPrevious, canGoNext }: ControlButtonsProps) => React__default.JSX.Element;
1686
+
1889
1687
  interface ProgressBarProps {
1890
1688
  currentPage: number;
1891
1689
  totalPages: number;
1892
1690
  }
1893
1691
  declare const ProgressBar: ({ currentPage, totalPages }: ProgressBarProps) => React__default.JSX.Element;
1894
1692
 
1895
- declare const useApiCheckRater: ({ userId, pageId, communityId, forAPage, }: {
1896
- userId?: string;
1897
- pageId?: string;
1898
- communityId?: string;
1899
- forAPage?: boolean;
1900
- }) => {
1901
- hasRated: boolean;
1902
- isCheckingRater: boolean;
1903
- };
1693
+ interface ArticleContentProps {
1694
+ isOpen: boolean;
1695
+ onClose: () => void;
1696
+ }
1697
+ declare const ArticleContent: ({ isOpen, onClose }: ArticleContentProps) => React__default.JSX.Element;
1904
1698
 
1905
- type AddRatingProps = {
1906
- enableTitle?: boolean;
1907
- variantStars?: "large" | "small" | "medium";
1908
- starSize?: {
1909
- width: number;
1910
- height: number;
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;
1911
1708
  };
1912
- forAPage?: boolean;
1913
- receiverPageId?: string;
1914
- receiverUserId?: string;
1915
- receiverCommunityId?: string;
1916
- className?: string;
1917
- isCommunity?: boolean;
1918
- variant?: "default" | "feed";
1919
- userSlug?: string;
1920
- pageSlug?: string;
1921
- communitySlug?: string;
1922
- };
1923
- declare function AddRating({ enableTitle, variantStars, starSize, forAPage, receiverPageId, receiverUserId, receiverCommunityId, className, // <-- RECEBIDO
1924
- isCommunity, // <-- NOVA PROP
1925
- variant, // <-- NOVA PROP
1926
- userSlug, pageSlug, communitySlug, }: AddRatingProps): React__default.JSX.Element;
1709
+ }
1927
1710
 
1928
- type AvatarRatingBadgeProps = {
1929
- name?: string;
1930
- src?: string;
1931
- rating: number;
1932
- asPage?: boolean;
1933
- isCommunity?: boolean;
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;
1934
1725
  };
1935
- declare function AvatarRatingBadge({ name, asPage, src, rating, isCommunity }: AvatarRatingBadgeProps): React__default.JSX.Element;
1936
1726
 
1937
- declare function RatingReviewsList({ variant, forPage, receiverPageId, receiverUserId, receiverCommunityId, inlinePreview, onOpenAllRatings }: {
1938
- variant?: "maximized" | "minimized";
1939
- forPage?: boolean;
1940
- receiverUserId?: string;
1941
- receiverPageId?: string;
1942
- receiverCommunityId?: string;
1943
- inlinePreview?: boolean;
1944
- onOpenAllRatings?: () => void;
1945
- }): React__default.JSX.Element | null;
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;
1766
+ };
1767
+ declare const useArticleStore: zustand.UseBoundStore<zustand.StoreApi<ArticleState>>;
1946
1768
 
1947
- interface IRatingsCardProps {
1948
- isCurrentPageOrProfile?: boolean;
1949
- userId?: string;
1950
- pageId?: string;
1951
- communityId?: string;
1952
- forAPage?: boolean;
1953
- currentUserId?: string;
1954
- pageSlug?: string;
1955
- userSlug?: string;
1956
- communitySlug?: string;
1957
- }
1958
- type TRatingUserCard = {
1959
- user: {
1960
- name: string;
1961
- profession: string;
1962
- avatar?: string;
1963
- isOwner?: boolean;
1964
- };
1965
- anonymous?: boolean;
1966
- rating: number;
1967
- userRating: number;
1968
- comment: string;
1969
- createdAt: string | Date;
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;
1970
1779
  };
1971
1780
 
1972
- declare function RatingUserCard({ user, rating, userRating, comment, createdAt, anonymous, }: TRatingUserCard): React__default.JSX.Element;
1781
+ declare function CreatePostCard(): React__default.JSX.Element;
1973
1782
 
1974
- interface RattingSuggestionCardProps {
1975
- asPage?: boolean;
1976
- page?: {
1977
- slug?: string;
1978
- id?: string;
1979
- sector?: string;
1980
- logo?: string;
1981
- rating?: number;
1982
- totalRatings?: number;
1783
+ interface IMention {
1784
+ id: string;
1785
+ mentionedId: string;
1786
+ mentionType: string;
1787
+ mentionedCommunity?: {
1788
+ slug: string;
1789
+ name: string;
1790
+ id: string;
1791
+ image: string;
1983
1792
  };
1984
- user?: {
1985
- avatar?: string;
1986
- name?: string;
1987
- id?: string;
1988
- headline?: string;
1989
- slug?: string;
1990
- rating?: number;
1991
- totalRatings?: number;
1793
+ mentionedPage?: {
1794
+ name: string;
1795
+ slug: string;
1796
+ logo: string;
1797
+ id: string;
1798
+ };
1799
+ mentionedUser?: {
1800
+ id: string;
1801
+ name: string;
1802
+ slug: string;
1803
+ avatar: string;
1992
1804
  };
1993
- renderFollowButton?: ReactNode;
1994
- averageRatingScore?: number;
1995
- }
1996
- declare function RattingSuggestionCard({ asPage, page, user, renderFollowButton, averageRatingScore, }: RattingSuggestionCardProps): React__default.JSX.Element;
1997
-
1998
- declare function RatingsSummary({ variant, asPage, receiverUserId, receiverPageId, receiverCommunityId }: {
1999
- variant?: "maximized" | "minimized";
2000
- asPage?: boolean;
2001
- receiverUserId?: string;
2002
- receiverPageId?: string;
2003
- receiverCommunityId?: string;
2004
- }): React__default.JSX.Element;
2005
-
2006
- interface ShareProfileDivProps extends RattingSuggestionCardProps {
2007
- className?: string;
2008
- }
2009
- declare function ShareProfile({ asPage, page, user, className }: ShareProfileDivProps): React__default.JSX.Element;
2010
-
2011
- interface ShareProfileButtonProps {
2012
- onClick: () => void;
2013
- }
2014
- declare function ShareProfileButton({ onClick }: ShareProfileButtonProps): React__default.JSX.Element;
2015
-
2016
- interface ShareProfileModalProps extends RattingSuggestionCardProps {
2017
- isOpen: boolean;
2018
- onClose: () => void;
2019
- }
2020
- declare function ShareProfileModal({ asPage, page, user, isOpen, onClose, }: ShareProfileModalProps): React__default.JSX.Element;
2021
-
2022
- declare function RatingsCard({ isCurrentPageOrProfile, pageId, userId, communityId, variant, forAPage, currentUserId, className, userSlug, pageSlug, communitySlug, }: IRatingsCardProps & {
2023
- variant?: "maximized" | "minimized";
2024
- className?: string;
2025
- userSlug?: string;
2026
- pageSlug?: string;
2027
- communitySlug?: string;
2028
- }): React__default.JSX.Element;
2029
-
2030
- declare function ReactPostButton({ post, hideLabel, className, orientation, compact, }: {
2031
- post: Post$2;
2032
- hideLabel?: boolean;
2033
- className?: string;
2034
- orientation?: "vertical" | "horizontal";
2035
- compact?: boolean;
2036
- }): JSX.Element;
2037
-
2038
- type DrawerSide = 'bottom' | 'right';
2039
- interface ResponsiveDrawerProps {
2040
- isOpen: boolean;
2041
- onClose: () => void;
2042
- children: React__default.ReactNode;
2043
- className?: string;
2044
- fullWidth?: boolean;
2045
- title?: string;
2046
- header?: React__default.ReactNode;
2047
- footer?: React__default.ReactNode;
2048
- side?: DrawerSide;
2049
1805
  }
2050
- declare const ResponsiveDrawer: React__default.FC<ResponsiveDrawerProps>;
2051
1806
 
2052
- declare function Spinner({ className }: {
2053
- className?: string;
2054
- }): React__default.JSX.Element;
2055
-
2056
- interface SalaryInputWithButtonProps {
2057
- label?: string;
2058
- value?: {
2059
- amount: string;
2060
- currency: string;
2061
- };
2062
- onChange?: (val: {
2063
- amount: string;
2064
- currency: string;
2065
- }) => void;
2066
- onGenerate?: () => void;
2067
- placeholder?: string;
2068
- disabled?: boolean;
2069
- className?: string;
2070
- buttonLabel?: string;
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;
2071
1845
  }
2072
- declare function SalaryInputWithButton({ label, value, onChange, onGenerate, placeholder, disabled, className, buttonLabel, }: SalaryInputWithButtonProps): React__default.JSX.Element;
1846
+ declare const useCreatePostFormStore: zustand.UseBoundStore<zustand.StoreApi<CreatePostFormState>>;
2073
1847
 
2074
1848
  type User = {
2075
1849
  id?: string;
@@ -2123,19 +1897,18 @@ interface IPerson {
2123
1897
  salaryExpectation?: string;
2124
1898
  countryCode?: string;
2125
1899
  }
1900
+
2126
1901
  type PostAttachmentProps = {
2127
1902
  title?: string;
2128
1903
  description?: string;
2129
1904
  imageUrl?: string;
2130
1905
  url?: string;
2131
- slug?: string;
2132
1906
  type: string;
2133
1907
  };
2134
1908
  type Post = {
2135
1909
  user: User;
2136
- postType: "NORMAL" | "REEL";
1910
+ postType: "NORMAL" | "REEL" | "ARTICLE";
2137
1911
  id: string;
2138
- slug: string;
2139
1912
  createdAt: string;
2140
1913
  scheduledAt?: string;
2141
1914
  bio: string;
@@ -2147,19 +1920,20 @@ type Post = {
2147
1920
  isFollowed?: boolean;
2148
1921
  isContact?: boolean;
2149
1922
  isArticle?: boolean;
1923
+ isDraft?: boolean;
2150
1924
  expiresAt?: string | null;
2151
1925
  link: {
2152
1926
  title: string;
2153
1927
  description: string;
2154
1928
  imageUrl: string;
2155
1929
  url: string;
2156
- slug: string;
2157
1930
  };
2158
1931
  images: PostAssetProps[];
2159
1932
  videos: PostAssetProps[];
2160
1933
  reactions: PostReactionsProps[];
2161
1934
  comments: CommentProps[];
2162
1935
  sharedPostId: string;
1936
+ pageId?: string;
2163
1937
  page?: {
2164
1938
  id?: string;
2165
1939
  name?: string;
@@ -2180,11 +1954,7 @@ type Post = {
2180
1954
  shareCount?: number;
2181
1955
  };
2182
1956
  sharedContext?: unknown;
2183
- mention?: {
2184
- id: string;
2185
- mentionedId: string;
2186
- mentioned: User;
2187
- }[];
1957
+ mention?: IMention[];
2188
1958
  community?: {
2189
1959
  id: string;
2190
1960
  visibility: string;
@@ -2275,33 +2045,225 @@ type CommentProps = {
2275
2045
  };
2276
2046
  };
2277
2047
 
2278
- interface SharePostModalProps {
2048
+ type PostType = "text" | "media" | "job" | "reel" | "schedule" | null;
2049
+ type InitialStep = "main" | "schedule" | "scheduled-posts" | null;
2050
+ interface CreatePostState {
2279
2051
  isOpen: boolean;
2280
- onClose: () => void;
2281
- post: Post;
2282
- isProfileLink?: boolean;
2283
- variant?: "share" | "repost";
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;
2284
2061
  }
2285
- declare const SharePostModal: ({ isOpen, onClose, post, variant, isProfileLink }: SharePostModalProps) => React__default.JSX.Element;
2062
+ declare const useCreatePostStore: zustand.UseBoundStore<zustand.StoreApi<CreatePostState>>;
2286
2063
 
2287
- declare function getInitials(fullName: string): string;
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;
2288
2072
 
2289
- declare function joinUrlWithPathAndQuery(baseUrl: string, path: string, query?: Record<string, string>): string;
2073
+ interface ArticleViewerProps {
2074
+ content: string;
2075
+ }
2076
+ declare function ArticleViewer({ content }: ArticleViewerProps): React__default.JSX.Element;
2290
2077
 
2291
- declare function broadcastLogout(): void;
2292
- declare function onLogout(callback: () => void): void;
2293
- declare function closeLogoutChannel(): void;
2078
+ type ModalState = {
2079
+ 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>>;
2294
2086
 
2295
- declare function stringToObj<T>(inputString: string, separator: string): T | undefined;
2087
+ interface CreatePostModalProps {
2088
+ inline?: boolean;
2089
+ }
2090
+ declare function CreatePostModal({ inline }: CreatePostModalProps): React__default.JSX.Element;
2296
2091
 
2297
- type MobileWorkspaceBarProps = {
2298
- onCreatePost?: () => void;
2299
- onCreateReel?: () => void;
2300
- onCreateJob?: () => void;
2301
- onJobsClick?: () => void;
2092
+ type Profile$1 = {
2093
+ id: string;
2094
+ name: string;
2095
+ avatar: string;
2096
+ role?: string;
2097
+ isPage?: boolean;
2302
2098
  };
2303
- declare function MobileWorkspaceBar({ onCreateJob, }: MobileWorkspaceBarProps): React__default.JSX.Element;
2304
2099
 
2305
- declare function WorkspacePanel(): React__default.JSX.Element;
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;
2124
+ }
2125
+ declare function CreatePostContent(props: CreatePostContentProps): React__default.JSX.Element;
2126
+
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;
2140
+
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;
2149
+
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;
2157
+
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;
2169
+
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;
2179
+ };
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
+ }
2264
+
2265
+ declare function useRegisterTracking(): {
2266
+ registerEvent: _tanstack_react_query.UseMutateFunction<ICreateTelemetryEventOutput | null, Error, ICreateTelemetryEventInput, unknown>;
2267
+ };
2306
2268
 
2307
- export { ActivateAccountModal, AddRating, AddressAutocompleteInput, AnimatedModal, ArticleContent, ArticleViewer, AutoDownloadBanner, AvatarRatingBadge, BaseInput, Button, ChatContacts, ChatListWrapper, ChatView, ChatViewDesktopPage, CheckBoxInput, closeLogoutChannel as CloseLogoutChannel, ContactsModal, ControlButtons, CountryDisplay, CountryInput, CreatePostCard, CreatePostContent, CreatePostForm, CreatePostModal, CreatePostModalFilters, CreatePostReelForm, CreatePostScheduleStep, CreatePostToolbar, CustomDateInput, CustomDrawer, CustomDropdown, CustomSelectInput, DateInput, DownloadMobileVersionBanner, DownloadModalTrigger, EmojiPickerButton, GradientModal, Header, MentionableTextarea, MessageButton, MessagesButtonFromPage, MirantesButton, Index as MirantesChatApp, MirantesChatButton, MirantesFoundationProvider, ResponsiveDrawer as MirantesResponsiveDrawer, MobileWorkspaceBar, NoRecruitmentResponsiveIlustration, onLogout as Onlogout, PageChatContent, PageChatContentHeader, PageChatInput, PageChatList, PageChatListWrapper, PageChatUserSuggestions, PageFloatFooter, PageMessageWrapper, PagesFeedTrigger, PdfFooter, PdfFullscreenView, PdfReader, PdfReaderHeader, PostCardArticle, ProgressBar, RadioButtonInput, RatingReviewsList, RatingUserCard, RatingsCard, RatingsSummary, RattingSuggestionCard, ReactPostButton, ResponsiveDrawer$1 as ResponsiveDrawer, SalaryInputWithButton, Calendar as ScheduleCalendar, SharePostModal, ShareProfile, ShareProfileButton, ShareProfileModal, Spinner, WorkspacePanel, broadcastLogout, clearSettingsCookie, clearUserSession, closeLogoutChannel, createPersistentState, getInitials, getSettingsFromCookie, joinUrlWithPathAndQuery, onLogout, stringToObj, useApiCheckRater, useApiGetPage, useArticleNavigation, useArticleStore, useAssetVersions, useBestAssetVersion, useCandidaciesTriggerStore, useCommunityTriggerStore, useCreatePostFormStore, useCreatePostStore, useJobTriggerStore, useLoadSettings, useMessageAppStore, useMirantesFoundation, useModalArticleStore, useModalStore, useOpenChat, useOportunitiesStore, usePeriodicDownloadBanner, usePersistentUIState, useRegisterTracking, useRestorePendingChat, useSavedItemsStore, useSetChatVisibility, useSignedUrl, useUploadAsset, useUploadAssetsBulk };
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 };