import { styled } from '@linaria/react'; import { type ReactNode, useState } from 'react'; import { useDebouncedCallback } from 'use-debounce'; import { SettingsTextInput } from '@/ui/input/components/SettingsTextInput'; import { ModalStatefulWrapper } from '@/ui/layout/modal/components/ModalStatefulWrapper'; import { useModal } from '@/ui/layout/modal/hooks/useModal'; import { msg } from '@lingui/core/macro'; import { useLingui } from '@lingui/react/macro'; import { H1Title, H1TitleFontColor } from 'twenty-ui/display'; import { Button, type ButtonAccent } from 'twenty-ui/input'; import { Section, SectionAlignment, SectionFontColor, type ModalOverlay, } from 'twenty-ui/layout'; import { themeCssVariables } from 'twenty-ui/theme-constants'; export type ConfirmationModalProps = { modalInstanceId: string; title: string; loading?: boolean; subtitle: ReactNode; onClose?: () => void; onConfirmClick: () => void; confirmButtonText?: string; confirmationPlaceholder?: string; confirmationValue?: string; confirmButtonAccent?: ButtonAccent; AdditionalButtons?: React.ReactNode; overlay?: ModalOverlay; }; const StyledCenteredButtonContainer = styled.div` box-sizing: border-box; margin-top: ${themeCssVariables.spacing[2]}; `; export const StyledCenteredButton = ( props: React.ComponentProps, ) => ( {/* oxlint-disable-next-line react/jsx-props-no-spreading */}