UNPKG

@wordpress/components

Version:
8 lines (7 loc) 3.4 kB
{ "version": 3, "sources": ["../../src/navigable-container/menu.tsx"], "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport NavigableContainer from './container';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function UnforwardedNavigableMenu({\n role = 'menu',\n orientation = 'vertical',\n ...rest\n}, ref) {\n const eventToOffset = evt => {\n const {\n code\n } = evt;\n let next = ['ArrowDown'];\n let previous = ['ArrowUp'];\n if (orientation === 'horizontal') {\n next = ['ArrowRight'];\n previous = ['ArrowLeft'];\n }\n if (orientation === 'both') {\n next = ['ArrowRight', 'ArrowDown'];\n previous = ['ArrowLeft', 'ArrowUp'];\n }\n if (next.includes(code)) {\n return 1;\n } else if (previous.includes(code)) {\n return -1;\n } else if (['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight'].includes(code)) {\n // Key press should be handled, e.g. have event propagation and\n // default behavior handled by NavigableContainer but not result\n // in an offset.\n return 0;\n }\n return undefined;\n };\n return /*#__PURE__*/_jsx(NavigableContainer, {\n ref: ref,\n stopNavigationEvents: true,\n onlyBrowserTabstops: false,\n role: role,\n \"aria-orientation\": role !== 'presentation' && (orientation === 'vertical' || orientation === 'horizontal') ? orientation : undefined,\n eventToOffset: eventToOffset,\n ...rest\n });\n}\n\n/**\n * A container for a navigable menu.\n *\n * ```jsx\n * import {\n * NavigableMenu,\n * Button,\n * } from '@wordpress/components';\n *\n * function onNavigate( index, target ) {\n * console.log( `Navigates to ${ index }`, target );\n * }\n *\n * const MyNavigableContainer = () => (\n * <div>\n * <span>Navigable Menu:</span>\n * <NavigableMenu onNavigate={ onNavigate } orientation=\"horizontal\">\n * <Button variant=\"secondary\">Item 1</Button>\n * <Button variant=\"secondary\">Item 2</Button>\n * <Button variant=\"secondary\">Item 3</Button>\n * </NavigableMenu>\n * </div>\n * );\n * ```\n */\nexport const NavigableMenu = forwardRef(UnforwardedNavigableMenu);\nNavigableMenu.displayName = 'NavigableMenu';\nexport default NavigableMenu;"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,qBAA2B;AAK3B,uBAA+B;AAC/B,yBAA4B;AACrB,SAAS,yBAAyB;AAAA,EACvC,OAAO;AAAA,EACP,cAAc;AAAA,EACd,GAAG;AACL,GAAG,KAAK;AACN,QAAM,gBAAgB,SAAO;AAC3B,UAAM;AAAA,MACJ;AAAA,IACF,IAAI;AACJ,QAAI,OAAO,CAAC,WAAW;AACvB,QAAI,WAAW,CAAC,SAAS;AACzB,QAAI,gBAAgB,cAAc;AAChC,aAAO,CAAC,YAAY;AACpB,iBAAW,CAAC,WAAW;AAAA,IACzB;AACA,QAAI,gBAAgB,QAAQ;AAC1B,aAAO,CAAC,cAAc,WAAW;AACjC,iBAAW,CAAC,aAAa,SAAS;AAAA,IACpC;AACA,QAAI,KAAK,SAAS,IAAI,GAAG;AACvB,aAAO;AAAA,IACT,WAAW,SAAS,SAAS,IAAI,GAAG;AAClC,aAAO;AAAA,IACT,WAAW,CAAC,aAAa,WAAW,aAAa,YAAY,EAAE,SAAS,IAAI,GAAG;AAI7E,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,SAAoB,uCAAAA,KAAK,iBAAAC,SAAoB;AAAA,IAC3C;AAAA,IACA,sBAAsB;AAAA,IACtB,qBAAqB;AAAA,IACrB;AAAA,IACA,oBAAoB,SAAS,mBAAmB,gBAAgB,cAAc,gBAAgB,gBAAgB,cAAc;AAAA,IAC5H;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AACH;AA2BO,IAAM,oBAAgB,2BAAW,wBAAwB;AAChE,cAAc,cAAc;AAC5B,IAAO,eAAQ;", "names": ["_jsx", "NavigableContainer"] }