UNPKG

@wordpress/components

Version:
8 lines (7 loc) 2.87 kB
{ "version": 3, "sources": ["../../src/menu-items-choice/index.tsx"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { check } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport MenuItem from '../menu-item';\nimport { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nconst noop = () => {};\n\n/**\n * `MenuItemsChoice` functions similarly to a set of `MenuItem`s, but allows the user to select one option from a set of multiple choices.\n *\n *\n * ```jsx\n * import { MenuGroup, MenuItemsChoice } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyMenuItemsChoice = () => {\n * \tconst [ mode, setMode ] = useState( 'visual' );\n * \tconst choices = [\n * \t\t{\n * \t\t\tvalue: 'visual',\n * \t\t\tlabel: 'Visual editor',\n * \t\t},\n * \t\t{\n * \t\t\tvalue: 'text',\n * \t\t\tlabel: 'Code editor',\n * \t\t},\n * \t];\n *\n * \treturn (\n * \t\t<MenuGroup label=\"Editor\">\n * \t\t\t<MenuItemsChoice\n * \t\t\t\tchoices={ choices }\n * \t\t\t\tvalue={ mode }\n * \t\t\t\tonSelect={ ( newMode ) => setMode( newMode ) }\n * \t\t\t/>\n * \t\t</MenuGroup>\n * \t);\n * };\n * ```\n */\nfunction MenuItemsChoice({\n choices = [],\n onHover = noop,\n onSelect,\n value\n}) {\n return /*#__PURE__*/_jsx(_Fragment, {\n children: choices.map(item => {\n const isSelected = value === item.value;\n return /*#__PURE__*/_jsx(MenuItem, {\n role: \"menuitemradio\",\n disabled: item.disabled,\n icon: isSelected ? check : null,\n info: item.info,\n isSelected: isSelected,\n shortcut: item.shortcut,\n className: \"components-menu-items-choice\",\n onClick: () => {\n if (!isSelected) {\n onSelect(item.value);\n }\n },\n onMouseEnter: () => onHover(item.value),\n onMouseLeave: () => onHover(null),\n \"aria-label\": item['aria-label'],\n children: item.label\n }, item.value);\n })\n });\n}\nexport default MenuItemsChoice;"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAAsB;AAKtB,uBAAqB;AACrB,yBAAmD;AACnD,IAAM,OAAO,MAAM;AAAC;AAmCpB,SAAS,gBAAgB;AAAA,EACvB,UAAU,CAAC;AAAA,EACX,UAAU;AAAA,EACV;AAAA,EACA;AACF,GAAG;AACD,SAAoB,uCAAAA,KAAK,mBAAAC,UAAW;AAAA,IAClC,UAAU,QAAQ,IAAI,UAAQ;AAC5B,YAAM,aAAa,UAAU,KAAK;AAClC,aAAoB,uCAAAD,KAAK,iBAAAE,SAAU;AAAA,QACjC,MAAM;AAAA,QACN,UAAU,KAAK;AAAA,QACf,MAAM,aAAa,qBAAQ;AAAA,QAC3B,MAAM,KAAK;AAAA,QACX;AAAA,QACA,UAAU,KAAK;AAAA,QACf,WAAW;AAAA,QACX,SAAS,MAAM;AACb,cAAI,CAAC,YAAY;AACf,qBAAS,KAAK,KAAK;AAAA,UACrB;AAAA,QACF;AAAA,QACA,cAAc,MAAM,QAAQ,KAAK,KAAK;AAAA,QACtC,cAAc,MAAM,QAAQ,IAAI;AAAA,QAChC,cAAc,KAAK,YAAY;AAAA,QAC/B,UAAU,KAAK;AAAA,MACjB,GAAG,KAAK,KAAK;AAAA,IACf,CAAC;AAAA,EACH,CAAC;AACH;AACA,IAAO,4BAAQ;", "names": ["_jsx", "_Fragment", "MenuItem"] }