/** * WordPress dependencies */ import { __, sprintf, isRTL } from '@wordpress/i18n'; import { privateApis as componentsPrivateApis, __experimentalSpacer as Spacer, __experimentalView as View, __experimentalItemGroup as ItemGroup, __experimentalVStack as VStack, __experimentalHStack as HStack, FlexItem, Button, } from '@wordpress/components'; import { Icon, plus, moreVertical, chevronLeft, chevronRight, } from '@wordpress/icons'; import { useState } from '@wordpress/element'; import type { FontSize } from '@wordpress/global-styles-engine'; /** * Internal dependencies */ import { Subtitle } from '../subtitle'; import { NavigationButtonAsItem } from '../navigation-button'; import { getNewIndexFromPresets } from '../utils'; import { ScreenHeader } from '../screen-header'; import ConfirmResetFontSizesDialog from './confirm-reset-font-sizes-dialog'; import { useSetting } from '../hooks'; import { unlock } from '../lock-unlock'; const { Menu } = unlock( componentsPrivateApis ); interface FontSizeGroupProps { label: string; origin: string; sizes: FontSize[]; handleAddFontSize: () => void; handleResetFontSizes?: () => void; } function FontSizeGroup( { label, origin, sizes, handleAddFontSize, handleResetFontSizes, }: FontSizeGroupProps ) { const [ isResetDialogOpen, setIsResetDialogOpen ] = useState( false ); const toggleResetDialog = () => setIsResetDialogOpen( ! isResetDialogOpen ); const resetDialogText = origin === 'custom' ? __( 'Are you sure you want to remove all custom font size presets?' ) : __( 'Are you sure you want to reset all font size presets to their default values?' ); return ( <> { handleResetFontSizes && isResetDialogOpen && ( ) } { label } { origin === 'custom' && (