{
  "version": 3,
  "sources": ["../../src/font-sizes/font-sizes.tsx"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf, isRTL } from '@wordpress/i18n';\nimport {\n\tprivateApis as componentsPrivateApis,\n\t__experimentalSpacer as Spacer,\n\t__experimentalView as View,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tFlexItem,\n\tButton,\n} from '@wordpress/components';\nimport {\n\tIcon,\n\tplus,\n\tmoreVertical,\n\tchevronLeft,\n\tchevronRight,\n} from '@wordpress/icons';\nimport { useState } from '@wordpress/element';\nimport type { FontSize } from '@wordpress/global-styles-engine';\n\n/**\n * Internal dependencies\n */\nimport { Subtitle } from '../subtitle';\nimport { NavigationButtonAsItem } from '../navigation-button';\nimport { getNewIndexFromPresets } from '../utils';\nimport { ScreenHeader } from '../screen-header';\nimport ConfirmResetFontSizesDialog from './confirm-reset-font-sizes-dialog';\nimport { useSetting } from '../hooks';\nimport { unlock } from '../lock-unlock';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\ninterface FontSizeGroupProps {\n\tlabel: string;\n\torigin: string;\n\tsizes: FontSize[];\n\thandleAddFontSize: () => void;\n\thandleResetFontSizes?: () => void;\n}\n\nfunction FontSizeGroup( {\n\tlabel,\n\torigin,\n\tsizes,\n\thandleAddFontSize,\n\thandleResetFontSizes,\n}: FontSizeGroupProps ) {\n\tconst [ isResetDialogOpen, setIsResetDialogOpen ] = useState( false );\n\n\tconst toggleResetDialog = () => setIsResetDialogOpen( ! isResetDialogOpen );\n\n\tconst resetDialogText =\n\t\torigin === 'custom'\n\t\t\t? __(\n\t\t\t\t\t'Are you sure you want to remove all custom font size presets?'\n\t\t\t  )\n\t\t\t: __(\n\t\t\t\t\t'Are you sure you want to reset all font size presets to their default values?'\n\t\t\t  );\n\n\treturn (\n\t\t<>\n\t\t\t{ handleResetFontSizes && isResetDialogOpen && (\n\t\t\t\t<ConfirmResetFontSizesDialog\n\t\t\t\t\ttext={ resetDialogText }\n\t\t\t\t\tconfirmButtonText={\n\t\t\t\t\t\torigin === 'custom' ? __( 'Remove' ) : __( 'Reset' )\n\t\t\t\t\t}\n\t\t\t\t\tisOpen={ isResetDialogOpen }\n\t\t\t\t\ttoggleOpen={ toggleResetDialog }\n\t\t\t\t\tonConfirm={ handleResetFontSizes }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t<HStack>\n\t\t\t\t\t<Subtitle level={ 3 }>{ label }</Subtitle>\n\t\t\t\t\t<FlexItem className=\"global-styles-ui__typography-panel__options-container\">\n\t\t\t\t\t\t{ origin === 'custom' && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tlabel={ __( 'Add font size' ) }\n\t\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tonClick={ handleAddFontSize }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ !! handleResetFontSizes && (\n\t\t\t\t\t\t\t<Menu>\n\t\t\t\t\t\t\t\t<Menu.TriggerButton\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Font size presets options'\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/>\n\t\t\t\t\t\t\t\t<Menu.Popover>\n\t\t\t\t\t\t\t\t\t<Menu.Item onClick={ toggleResetDialog }>\n\t\t\t\t\t\t\t\t\t\t<Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ origin === 'custom'\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\t\t\t'Remove font size presets'\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\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Reset font size presets'\n\t\t\t\t\t\t\t\t\t\t\t\t  ) }\n\t\t\t\t\t\t\t\t\t\t</Menu.ItemLabel>\n\t\t\t\t\t\t\t\t\t</Menu.Item>\n\t\t\t\t\t\t\t\t</Menu.Popover>\n\t\t\t\t\t\t\t</Menu>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</HStack>\n\n\t\t\t\t{ !! sizes.length && (\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t{ sizes.map( ( size ) => (\n\t\t\t\t\t\t\t<NavigationButtonAsItem\n\t\t\t\t\t\t\t\tkey={ size.slug }\n\t\t\t\t\t\t\t\tpath={ `/typography/font-sizes/${ origin }/${ size.slug }` }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HStack>\n\t\t\t\t\t\t\t\t\t<FlexItem className=\"global-styles-ui-font-size__item\">\n\t\t\t\t\t\t\t\t\t\t{ size.name }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<FlexItem display=\"flex\">\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tisRTL()\n\t\t\t\t\t\t\t\t\t\t\t\t\t? chevronLeft\n\t\t\t\t\t\t\t\t\t\t\t\t\t: chevronRight\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</FlexItem>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t</NavigationButtonAsItem>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nfunction FontSizes() {\n\tconst [ themeFontSizes, setThemeFontSizes ] = useSetting(\n\t\t'typography.fontSizes.theme'\n\t);\n\n\tconst [ baseThemeFontSizes ] = useSetting(\n\t\t'typography.fontSizes.theme',\n\t\t'base'\n\t);\n\tconst [ defaultFontSizes, setDefaultFontSizes ] = useSetting(\n\t\t'typography.fontSizes.default'\n\t);\n\n\tconst [ baseDefaultFontSizes ] = useSetting(\n\t\t'typography.fontSizes.default',\n\t\t'base'\n\t);\n\n\tconst [ customFontSizes = [], setCustomFontSizes ] = useSetting(\n\t\t'typography.fontSizes.custom'\n\t);\n\n\tconst [ defaultFontSizesEnabled ] = useSetting(\n\t\t'typography.defaultFontSizes'\n\t);\n\n\tconst handleAddFontSize = () => {\n\t\tconst index = getNewIndexFromPresets( customFontSizes, 'custom-' );\n\t\tconst newFontSize = {\n\t\t\t/* translators: %d: font size index */\n\t\t\tname: sprintf( __( 'New Font Size %d' ), index ),\n\t\t\tsize: '16px',\n\t\t\tslug: `custom-${ index }`,\n\t\t};\n\n\t\tsetCustomFontSizes( [ ...customFontSizes, newFontSize ] );\n\t};\n\n\tconst hasSameSizeValues = ( arr1: FontSize[], arr2: FontSize[] ): boolean =>\n\t\tarr1.map( ( item ) => item.size ).join( '' ) ===\n\t\tarr2.map( ( item ) => item.size ).join( '' );\n\n\treturn (\n\t\t<VStack spacing={ 2 }>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Font size presets' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Create and edit the presets used for font sizes across the site.'\n\t\t\t\t) }\n\t\t\t/>\n\n\t\t\t<View>\n\t\t\t\t<Spacer paddingX={ 4 }>\n\t\t\t\t\t<VStack spacing={ 8 }>\n\t\t\t\t\t\t{ !! themeFontSizes?.length && (\n\t\t\t\t\t\t\t<FontSizeGroup\n\t\t\t\t\t\t\t\tlabel={ __( 'Theme' ) }\n\t\t\t\t\t\t\t\torigin=\"theme\"\n\t\t\t\t\t\t\t\tsizes={ themeFontSizes }\n\t\t\t\t\t\t\t\thandleAddFontSize={ handleAddFontSize }\n\t\t\t\t\t\t\t\thandleResetFontSizes={\n\t\t\t\t\t\t\t\t\thasSameSizeValues(\n\t\t\t\t\t\t\t\t\t\tthemeFontSizes,\n\t\t\t\t\t\t\t\t\t\tbaseThemeFontSizes\n\t\t\t\t\t\t\t\t\t)\n\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\t\t\tsetThemeFontSizes(\n\t\t\t\t\t\t\t\t\t\t\t\t\tbaseThemeFontSizes\n\t\t\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/>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t{ defaultFontSizesEnabled &&\n\t\t\t\t\t\t\t!! defaultFontSizes?.length && (\n\t\t\t\t\t\t\t\t<FontSizeGroup\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Default' ) }\n\t\t\t\t\t\t\t\t\torigin=\"default\"\n\t\t\t\t\t\t\t\t\tsizes={ defaultFontSizes }\n\t\t\t\t\t\t\t\t\thandleAddFontSize={ handleAddFontSize }\n\t\t\t\t\t\t\t\t\thandleResetFontSizes={\n\t\t\t\t\t\t\t\t\t\thasSameSizeValues(\n\t\t\t\t\t\t\t\t\t\t\tdefaultFontSizes,\n\t\t\t\t\t\t\t\t\t\t\tbaseDefaultFontSizes\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t\t: () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetDefaultFontSizes(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbaseDefaultFontSizes\n\t\t\t\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/>\n\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t<FontSizeGroup\n\t\t\t\t\t\t\tlabel={ __( 'Custom' ) }\n\t\t\t\t\t\t\torigin=\"custom\"\n\t\t\t\t\t\t\tsizes={ customFontSizes }\n\t\t\t\t\t\t\thandleAddFontSize={ handleAddFontSize }\n\t\t\t\t\t\t\thandleResetFontSizes={\n\t\t\t\t\t\t\t\tcustomFontSizes.length > 0\n\t\t\t\t\t\t\t\t\t? () => setCustomFontSizes( [] )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t</Spacer>\n\t\t\t</View>\n\t\t</VStack>\n\t);\n}\n\nexport default FontSizes;\n"],
  "mappings": "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",
  "names": []
}
