{
  "version": 3,
  "sources": ["../../../src/components/preferences-modal-tabs/index.tsx"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tNavigator,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\t__experimentalTruncate as Truncate,\n\tFlexItem,\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useMemo, useState } from '@wordpress/element';\nimport { chevronLeft, chevronRight, Icon } from '@wordpress/icons';\nimport { isRTL, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { Tabs } = unlock( componentsPrivateApis );\n\nconst PREFERENCES_MENU = 'preferences-menu';\n\nexport type PreferencesModalTabsProps = {\n\tsections: { name: string; tabLabel: string; content: React.ReactNode }[];\n};\nexport default function PreferencesModalTabs( {\n\tsections,\n}: PreferencesModalTabsProps ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\n\t// This is also used to sync the two different rendered components\n\t// between small and large viewports.\n\tconst [ activeMenu, setActiveMenu ] = useState( PREFERENCES_MENU );\n\t/**\n\t * Create helper objects from `sections` for easier data handling.\n\t * `tabs` is used for creating the `Tabs` and `sectionsContentMap`\n\t * is used for easier access to active tab's content.\n\t */\n\tconst { tabs, sectionsContentMap } = useMemo( () => {\n\t\tlet mappedTabs: {\n\t\t\ttabs: { name: string; title: string }[];\n\t\t\tsectionsContentMap: Record< string, React.ReactNode >;\n\t\t} = {\n\t\t\ttabs: [],\n\t\t\tsectionsContentMap: {},\n\t\t};\n\t\tif ( sections.length ) {\n\t\t\tmappedTabs = sections.reduce< typeof mappedTabs >(\n\t\t\t\t( accumulator, { name, tabLabel: title, content } ) => {\n\t\t\t\t\taccumulator.tabs.push( { name, title } );\n\t\t\t\t\taccumulator.sectionsContentMap[ name ] = content;\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ tabs: [], sectionsContentMap: {} }\n\t\t\t);\n\t\t}\n\t\treturn mappedTabs;\n\t}, [ sections ] );\n\n\tlet modalContent;\n\t// We render different components based on the viewport size.\n\tif ( isLargeViewport ) {\n\t\tmodalContent = (\n\t\t\t<div className=\"preferences__tabs\">\n\t\t\t\t<Tabs\n\t\t\t\t\tdefaultTabId={\n\t\t\t\t\t\tactiveMenu !== PREFERENCES_MENU ? activeMenu : undefined\n\t\t\t\t\t}\n\t\t\t\t\tonSelect={ setActiveMenu }\n\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t>\n\t\t\t\t\t<Tabs.TabList className=\"preferences__tabs-tablist\">\n\t\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t\t<Tabs.Tab\n\t\t\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\t\tclassName=\"preferences__tabs-tab\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t</Tabs.Tab>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</Tabs.TabList>\n\t\t\t\t\t{ tabs.map( ( tab ) => (\n\t\t\t\t\t\t<Tabs.TabPanel\n\t\t\t\t\t\t\ttabId={ tab.name }\n\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\tclassName=\"preferences__tabs-tabpanel\"\n\t\t\t\t\t\t\tfocusable={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ sectionsContentMap[ tab.name ] || null }\n\t\t\t\t\t\t</Tabs.TabPanel>\n\t\t\t\t\t) ) }\n\t\t\t\t</Tabs>\n\t\t\t</div>\n\t\t);\n\t} else {\n\t\tmodalContent = (\n\t\t\t<Navigator initialPath=\"/\" className=\"preferences__provider\">\n\t\t\t\t<Navigator.Screen path=\"/\">\n\t\t\t\t\t<Card isBorderless size=\"small\">\n\t\t\t\t\t\t<CardBody>\n\t\t\t\t\t\t\t<ItemGroup>\n\t\t\t\t\t\t\t\t{ tabs.map( ( tab ) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t// @ts-expect-error: Navigator.Button is currently typed in a way that prevents Item from being passed in\n\t\t\t\t\t\t\t\t\t\t<Navigator.Button\n\t\t\t\t\t\t\t\t\t\t\tkey={ tab.name }\n\t\t\t\t\t\t\t\t\t\t\tpath={ `/${ tab.name }` }\n\t\t\t\t\t\t\t\t\t\t\tas={ Item }\n\t\t\t\t\t\t\t\t\t\t\tisAction\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Truncate>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ tab.title }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\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\t\t\t? chevronLeft\n\t\t\t\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\t\t\t}\n\t\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</FlexItem>\n\t\t\t\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t\t\t\t</Navigator.Button>\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</ItemGroup>\n\t\t\t\t\t\t</CardBody>\n\t\t\t\t\t</Card>\n\t\t\t\t</Navigator.Screen>\n\t\t\t\t{ sections.length &&\n\t\t\t\t\tsections.map( ( section ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Navigator.Screen\n\t\t\t\t\t\t\t\tkey={ `${ section.name }-menu` }\n\t\t\t\t\t\t\t\tpath={ `/${ section.name }` }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Card isBorderless size=\"large\">\n\t\t\t\t\t\t\t\t\t<CardHeader\n\t\t\t\t\t\t\t\t\t\tisBorderless={ false }\n\t\t\t\t\t\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\tgap=\"6\"\n\t\t\t\t\t\t\t\t\t\tas=\"div\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Navigator.BackButton\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? chevronRight\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}\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<Text size=\"16\">\n\t\t\t\t\t\t\t\t\t\t\t{ section.tabLabel }\n\t\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t\t</CardHeader>\n\t\t\t\t\t\t\t\t\t<CardBody>{ section.content }</CardBody>\n\t\t\t\t\t\t\t\t</Card>\n\t\t\t\t\t\t\t</Navigator.Screen>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t</Navigator>\n\t\t);\n\t}\n\n\treturn modalContent;\n}\n"],
  "mappings": "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",
  "names": ["componentsPrivateApis", "ItemGroup", "Item", "HStack", "Truncate", "Text"]
}
