{
  "version": 3,
  "sources": ["../../src/font-sizes/font-size.tsx"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalSpacer as Spacer,\n\tuseNavigator,\n\t__experimentalView as View,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n\tButton,\n\tFlexItem,\n\tToggleControl,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { useState, useEffect } from '@wordpress/element';\nimport type {\n\tTypographyPreset,\n\tFluidTypographySettings,\n\tFontSize,\n\tFluidTypographyConfig,\n} from '@wordpress/global-styles-engine';\n\n/**\n * Internal dependencies\n */\nimport { ScreenHeader } from '../screen-header';\nimport FontSizePreview from './font-size-preview';\nimport ConfirmDeleteFontSizeDialog from './confirm-delete-font-size-dialog';\nimport RenameFontSizeDialog from './rename-font-size-dialog';\nimport { SizeControl } from '../size-control';\nimport { useSetting } from '../hooks';\nimport { unlock } from '../lock-unlock';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nfunction FontSize() {\n\tconst [ isDeleteConfirmOpen, setIsDeleteConfirmOpen ] = useState( false );\n\tconst [ isRenameDialogOpen, setIsRenameDialogOpen ] = useState( false );\n\n\tconst {\n\t\tparams: { origin, slug },\n\t\tgoBack,\n\t} = useNavigator();\n\n\tconst [ fontSizes, setFontSizes ] = useSetting<\n\t\tRecord< string, TypographyPreset[] > | undefined\n\t>( 'typography.fontSizes' );\n\tconst [ globalFluid ] = useSetting<\n\t\tboolean | FluidTypographySettings | undefined\n\t>( 'typography.fluid' );\n\n\t// Get the font sizes from the origin, default to empty array.\n\tconst sizes = fontSizes?.[ origin as string ] ?? [];\n\n\t// Get the font size by slug.\n\tconst fontSize: FontSize | undefined = sizes.find(\n\t\t( size ) => size.slug === slug\n\t);\n\n\t// Navigate to the font sizes list if the font size is not available.\n\tuseEffect( () => {\n\t\tif ( !! slug && ! fontSize ) {\n\t\t\tgoBack();\n\t\t}\n\t}, [ slug, fontSize, goBack ] );\n\n\tif ( ! origin || ! slug || ! fontSize ) {\n\t\treturn null;\n\t}\n\n\t// Whether the font size is fluid. If not defined, use the global fluid value of the theme.\n\tconst isFluid =\n\t\tfontSize?.fluid !== undefined ? !! fontSize.fluid : !! globalFluid;\n\n\t// Whether custom fluid values are used.\n\tconst isCustomFluid = typeof fontSize?.fluid === 'object';\n\n\tconst handleNameChange = ( value: string ) => {\n\t\tupdateFontSize( 'name', value );\n\t};\n\n\tconst handleFontSizeChange = ( value: string | undefined ) => {\n\t\tupdateFontSize( 'size', value );\n\t};\n\n\tconst handleFluidChange = ( value: boolean ) => {\n\t\tupdateFontSize( 'fluid', value );\n\t};\n\n\tconst handleCustomFluidValues = ( value: boolean ) => {\n\t\tif ( value ) {\n\t\t\t// If custom values are used, init the values with the current ones.\n\t\t\tupdateFontSize( 'fluid', {\n\t\t\t\tmin: fontSize.size,\n\t\t\t\tmax: fontSize.size,\n\t\t\t} );\n\t\t} else {\n\t\t\t// If custom fluid values are disabled, set fluid to true.\n\t\t\tupdateFontSize( 'fluid', true );\n\t\t}\n\t};\n\n\tconst handleMinChange = ( value: string | undefined ) => {\n\t\tconst fluid: FluidTypographyConfig =\n\t\t\ttypeof fontSize.fluid === 'object' ? fontSize.fluid : {};\n\t\tupdateFontSize( 'fluid', { ...fluid, min: value } );\n\t};\n\n\tconst handleMaxChange = ( value: string | undefined ) => {\n\t\tconst fluid: FluidTypographyConfig =\n\t\t\ttypeof fontSize.fluid === 'object' ? fontSize.fluid : {};\n\t\tupdateFontSize( 'fluid', { ...fluid, max: value } );\n\t};\n\n\tconst updateFontSize = ( key: string, value: any ) => {\n\t\tconst newFontSizes = sizes.map( ( size ) => {\n\t\t\tif ( size.slug === slug ) {\n\t\t\t\treturn { ...size, [ key ]: value }; // Create a new object with updated key\n\t\t\t}\n\t\t\treturn size;\n\t\t} );\n\n\t\tsetFontSizes( {\n\t\t\t...fontSizes,\n\t\t\t[ origin as string ]: newFontSizes,\n\t\t} );\n\t};\n\n\tconst handleRemoveFontSize = () => {\n\t\tconst newFontSizes = sizes.filter( ( size ) => size.slug !== slug );\n\t\tsetFontSizes( {\n\t\t\t...fontSizes,\n\t\t\t[ origin as string ]: newFontSizes,\n\t\t} );\n\t};\n\n\tconst toggleDeleteConfirm = () => {\n\t\tsetIsDeleteConfirmOpen( ! isDeleteConfirmOpen );\n\t};\n\n\tconst toggleRenameDialog = () => {\n\t\tsetIsRenameDialogOpen( ! isRenameDialogOpen );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ConfirmDeleteFontSizeDialog\n\t\t\t\tfontSize={ fontSize }\n\t\t\t\tisOpen={ isDeleteConfirmOpen }\n\t\t\t\ttoggleOpen={ toggleDeleteConfirm }\n\t\t\t\thandleRemoveFontSize={ handleRemoveFontSize }\n\t\t\t/>\n\n\t\t\t{ isRenameDialogOpen && (\n\t\t\t\t<RenameFontSizeDialog\n\t\t\t\t\tfontSize={ fontSize }\n\t\t\t\t\ttoggleOpen={ toggleRenameDialog }\n\t\t\t\t\thandleRename={ handleNameChange }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<HStack justify=\"space-between\" alignment=\"flex-start\">\n\t\t\t\t\t<ScreenHeader\n\t\t\t\t\t\ttitle={ fontSize.name }\n\t\t\t\t\t\tdescription={ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: font size preset name. */\n\t\t\t\t\t\t\t__( 'Manage the font size %s.' ),\n\t\t\t\t\t\t\tfontSize.name\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ origin === 'custom' && (\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Spacer\n\t\t\t\t\t\t\t\tmarginTop={ 3 }\n\t\t\t\t\t\t\t\tmarginBottom={ 0 }\n\t\t\t\t\t\t\t\tpaddingX={ 4 }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Menu>\n\t\t\t\t\t\t\t\t\t<Menu.TriggerButton\n\t\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Font size options'\n\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<Menu.Popover>\n\t\t\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\t\t\tonClick={ toggleRenameDialog }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Rename' ) }\n\t\t\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\t\t\t\t\t\tonClick={ toggleDeleteConfirm }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t\t\t</Menu.Popover>\n\t\t\t\t\t\t\t\t</Menu>\n\t\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\n\t\t\t\t<View>\n\t\t\t\t\t<Spacer\n\t\t\t\t\t\tpaddingX={ 4 }\n\t\t\t\t\t\tmarginBottom={ 0 }\n\t\t\t\t\t\tpaddingBottom={ 6 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<FontSizePreview fontSize={ fontSize } />\n\t\t\t\t\t\t\t</FlexItem>\n\n\t\t\t\t\t\t\t<SizeControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\t! isCustomFluid && fontSize.size\n\t\t\t\t\t\t\t\t\t\t? String( fontSize.size )\n\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonChange={ handleFontSizeChange }\n\t\t\t\t\t\t\t\tdisabled={ isCustomFluid }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Fluid typography' ) }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Scale the font size dynamically to fit the screen or viewport.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tchecked={ isFluid }\n\t\t\t\t\t\t\t\tonChange={ handleFluidChange }\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t{ isFluid && (\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Custom fluid values' ) }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Set custom min and max values for the fluid font size.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tchecked={ isCustomFluid }\n\t\t\t\t\t\t\t\t\tonChange={ handleCustomFluidValues }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t{ isCustomFluid && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<SizeControl\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Minimum' ) }\n\t\t\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\t\t\ttypeof fontSize?.fluid === 'object'\n\t\t\t\t\t\t\t\t\t\t\t\t? fontSize.fluid?.min\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonChange={ handleMinChange }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<SizeControl\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Maximum' ) }\n\t\t\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\t\t\ttypeof fontSize?.fluid === 'object'\n\t\t\t\t\t\t\t\t\t\t\t\t? fontSize.fluid?.max\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonChange={ handleMaxChange }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</VStack>\n\t\t\t\t\t</Spacer>\n\t\t\t\t</View>\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nexport default FontSize;\n"],
  "mappings": "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",
  "names": ["componentsPrivateApis", "ConfirmDeleteFontSizeDialog", "RenameFontSizeDialog", "VStack", "HStack", "Spacer", "View", "FontSizePreview"]
}
