@wordpress/components 24.0.0 → 25.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/CONTRIBUTING.md +10 -0
  3. package/build/color-picker/styles.js +8 -8
  4. package/build/color-picker/styles.js.map +1 -1
  5. package/build/date-time/date-time/index.js +3 -84
  6. package/build/date-time/date-time/index.js.map +1 -1
  7. package/build/date-time/date-time/styles.js +4 -19
  8. package/build/date-time/date-time/styles.js.map +1 -1
  9. package/build/dropdown-menu/index.js +87 -11
  10. package/build/dropdown-menu/index.js.map +1 -1
  11. package/build/dropdown-menu/types.js +6 -0
  12. package/build/dropdown-menu/types.js.map +1 -0
  13. package/build/dropdown-menu-v2/index.js +195 -0
  14. package/build/dropdown-menu-v2/index.js.map +1 -0
  15. package/build/dropdown-menu-v2/styles.js +176 -0
  16. package/build/dropdown-menu-v2/styles.js.map +1 -0
  17. package/build/dropdown-menu-v2/types.js +6 -0
  18. package/build/dropdown-menu-v2/types.js.map +1 -0
  19. package/build/index.native.js +0 -9
  20. package/build/index.native.js.map +1 -1
  21. package/build/input-control/styles/input-control-styles.js +30 -23
  22. package/build/input-control/styles/input-control-styles.js.map +1 -1
  23. package/build/mobile/bottom-sheet/cell.native.js +16 -8
  24. package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
  25. package/build/mobile/bottom-sheet/range-cell.native.js +3 -2
  26. package/build/mobile/bottom-sheet/range-cell.native.js.map +1 -1
  27. package/build/mobile/bottom-sheet/stepper-cell/index.native.js +4 -2
  28. package/build/mobile/bottom-sheet/stepper-cell/index.native.js.map +1 -1
  29. package/build/mobile/bottom-sheet/switch-cell.native.js +8 -2
  30. package/build/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
  31. package/build/mobile/bottom-sheet-select-control/index.native.js +4 -2
  32. package/build/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  33. package/build/mobile/bottom-sheet-text-control/index.native.js +4 -2
  34. package/build/mobile/bottom-sheet-text-control/index.native.js.map +1 -1
  35. package/build/modal/index.js +1 -2
  36. package/build/modal/index.js.map +1 -1
  37. package/build/private-apis.js +13 -1
  38. package/build/private-apis.js.map +1 -1
  39. package/build/range-control/index.native.js +5 -2
  40. package/build/range-control/index.native.js.map +1 -1
  41. package/build/snackbar/list.js +0 -2
  42. package/build/snackbar/list.js.map +1 -1
  43. package/build/toggle-group-control/toggle-group-control/styles.js +7 -7
  44. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  45. package/build-module/color-picker/styles.js +8 -8
  46. package/build-module/color-picker/styles.js.map +1 -1
  47. package/build-module/date-time/date-time/index.js +6 -81
  48. package/build-module/date-time/date-time/index.js.map +1 -1
  49. package/build-module/date-time/date-time/styles.js +3 -17
  50. package/build-module/date-time/date-time/styles.js.map +1 -1
  51. package/build-module/dropdown-menu/index.js +87 -10
  52. package/build-module/dropdown-menu/index.js.map +1 -1
  53. package/build-module/dropdown-menu/types.js +2 -0
  54. package/build-module/dropdown-menu/types.js.map +1 -0
  55. package/build-module/dropdown-menu-v2/index.js +149 -0
  56. package/build-module/dropdown-menu-v2/index.js.map +1 -0
  57. package/build-module/dropdown-menu-v2/styles.js +153 -0
  58. package/build-module/dropdown-menu-v2/styles.js.map +1 -0
  59. package/build-module/dropdown-menu-v2/types.js +2 -0
  60. package/build-module/dropdown-menu-v2/types.js.map +1 -0
  61. package/build-module/index.native.js +0 -1
  62. package/build-module/index.native.js.map +1 -1
  63. package/build-module/input-control/styles/input-control-styles.js +30 -23
  64. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  65. package/build-module/mobile/bottom-sheet/cell.native.js +16 -8
  66. package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
  67. package/build-module/mobile/bottom-sheet/range-cell.native.js +3 -2
  68. package/build-module/mobile/bottom-sheet/range-cell.native.js.map +1 -1
  69. package/build-module/mobile/bottom-sheet/stepper-cell/index.native.js +4 -2
  70. package/build-module/mobile/bottom-sheet/stepper-cell/index.native.js.map +1 -1
  71. package/build-module/mobile/bottom-sheet/switch-cell.native.js +7 -2
  72. package/build-module/mobile/bottom-sheet/switch-cell.native.js.map +1 -1
  73. package/build-module/mobile/bottom-sheet-select-control/index.native.js +4 -2
  74. package/build-module/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  75. package/build-module/mobile/bottom-sheet-text-control/index.native.js +4 -2
  76. package/build-module/mobile/bottom-sheet-text-control/index.native.js.map +1 -1
  77. package/build-module/modal/index.js +1 -2
  78. package/build-module/modal/index.js.map +1 -1
  79. package/build-module/private-apis.js +12 -1
  80. package/build-module/private-apis.js.map +1 -1
  81. package/build-module/range-control/index.native.js +5 -2
  82. package/build-module/range-control/index.native.js.map +1 -1
  83. package/build-module/snackbar/list.js +0 -2
  84. package/build-module/snackbar/list.js.map +1 -1
  85. package/build-module/toggle-group-control/toggle-group-control/styles.js +7 -7
  86. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  87. package/build-style/style-rtl.css +11 -14
  88. package/build-style/style.css +11 -14
  89. package/build-types/color-picker/styles.d.ts.map +1 -1
  90. package/build-types/date-time/date-time/index.d.ts +3 -4
  91. package/build-types/date-time/date-time/index.d.ts.map +1 -1
  92. package/build-types/date-time/date-time/styles.d.ts +0 -4
  93. package/build-types/date-time/date-time/styles.d.ts.map +1 -1
  94. package/build-types/date-time/stories/date-time.d.ts.map +1 -1
  95. package/build-types/date-time/types.d.ts +0 -14
  96. package/build-types/date-time/types.d.ts.map +1 -1
  97. package/build-types/dropdown-menu/index.d.ts +83 -1
  98. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  99. package/build-types/dropdown-menu/stories/index.d.ts +13 -0
  100. package/build-types/dropdown-menu/stories/index.d.ts.map +1 -0
  101. package/build-types/dropdown-menu/test/index.d.ts +2 -0
  102. package/build-types/dropdown-menu/test/index.d.ts.map +1 -0
  103. package/build-types/dropdown-menu/types.d.ts +134 -0
  104. package/build-types/dropdown-menu/types.d.ts.map +1 -0
  105. package/build-types/dropdown-menu-v2/index.d.ts +17 -0
  106. package/build-types/dropdown-menu-v2/index.d.ts.map +1 -0
  107. package/build-types/dropdown-menu-v2/stories/index.d.ts +13 -0
  108. package/build-types/dropdown-menu-v2/stories/index.d.ts.map +1 -0
  109. package/build-types/dropdown-menu-v2/styles.d.ts +41 -0
  110. package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -0
  111. package/build-types/dropdown-menu-v2/test/index.d.ts +2 -0
  112. package/build-types/dropdown-menu-v2/test/index.d.ts.map +1 -0
  113. package/build-types/dropdown-menu-v2/types.d.ts +242 -0
  114. package/build-types/dropdown-menu-v2/types.d.ts.map +1 -0
  115. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  116. package/build-types/modal/index.d.ts.map +1 -1
  117. package/build-types/private-apis.d.ts.map +1 -1
  118. package/build-types/snackbar/list.d.ts.map +1 -1
  119. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  120. package/build-types/toolbar/stories/index.d.ts.map +1 -1
  121. package/build-types/ui/context/get-styled-class-name-from-key.d.ts +1 -10
  122. package/build-types/ui/context/get-styled-class-name-from-key.d.ts.map +1 -1
  123. package/package.json +21 -20
  124. package/src/button/style.scss +5 -12
  125. package/src/color-picker/styles.ts +7 -2
  126. package/src/date-time/README.md +0 -16
  127. package/src/date-time/date-time/index.tsx +17 -155
  128. package/src/date-time/date-time/styles.ts +0 -4
  129. package/src/date-time/stories/date-time.tsx +0 -4
  130. package/src/date-time/types.ts +0 -16
  131. package/src/dropdown-menu/README.md +12 -22
  132. package/src/dropdown-menu/{index.js → index.tsx} +111 -25
  133. package/src/dropdown-menu/stories/{index.js → index.tsx} +14 -22
  134. package/src/dropdown-menu/test/{index.js → index.tsx} +6 -5
  135. package/src/dropdown-menu/types.ts +143 -0
  136. package/src/dropdown-menu-v2/README.md +392 -0
  137. package/src/dropdown-menu-v2/index.tsx +241 -0
  138. package/src/dropdown-menu-v2/stories/index.tsx +193 -0
  139. package/src/dropdown-menu-v2/styles.ts +263 -0
  140. package/src/dropdown-menu-v2/test/index.tsx +816 -0
  141. package/src/dropdown-menu-v2/types.ts +250 -0
  142. package/src/index.native.js +0 -1
  143. package/src/input-control/styles/input-control-styles.tsx +7 -0
  144. package/src/mobile/bottom-sheet/cell.native.js +26 -5
  145. package/src/mobile/bottom-sheet/range-cell.native.js +2 -1
  146. package/src/mobile/bottom-sheet/stepper-cell/index.native.js +2 -0
  147. package/src/mobile/bottom-sheet/styles.native.scss +13 -1
  148. package/src/mobile/bottom-sheet/switch-cell.native.js +10 -2
  149. package/src/mobile/bottom-sheet-select-control/index.native.js +2 -0
  150. package/src/mobile/bottom-sheet-text-control/index.native.js +2 -0
  151. package/src/modal/index.tsx +1 -6
  152. package/src/private-apis.ts +22 -0
  153. package/src/range-control/index.native.js +3 -0
  154. package/src/search-control/style.scss +2 -0
  155. package/src/snackbar/list.tsx +0 -1
  156. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +6 -2
  157. package/src/toggle-group-control/toggle-group-control/styles.ts +6 -1
  158. package/src/toolbar/stories/index.tsx +25 -28
  159. package/src/tooltip/style.scss +2 -2
  160. package/tsconfig.tsbuildinfo +1 -1
  161. package/build/mobile/readable-content-view/index.native.js +0 -97
  162. package/build/mobile/readable-content-view/index.native.js.map +0 -1
  163. package/build-module/mobile/readable-content-view/index.native.js +0 -81
  164. package/build-module/mobile/readable-content-view/index.native.js.map +0 -1
  165. package/src/mobile/readable-content-view/index.native.js +0 -85
  166. package/src/mobile/readable-content-view/style.native.scss +0 -30
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/dropdown-menu/index.js"],"names":["classnames","menu","Button","Dropdown","NavigableMenu","mergeProps","defaultProps","props","mergedProps","className","isFunction","maybeFunc","DropdownMenu","dropdownMenuProps","children","controls","icon","label","popoverProps","toggleProps","menuProps","disableOpenOnArrowDown","text","noIcons","length","controlSets","Array","isArray","mergedPopoverProps","isOpen","onToggle","openOnArrowDown","event","code","preventDefault","as","Toggle","restToggleProps","mergedToggleProps","onClick","onKeyDown","showTooltip","mergedMenuProps","flatMap","controlSet","indexOfSet","map","control","indexOfControl","join","stopPropagation","onClose","isActive","title","role","undefined","isDisabled"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { menu } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport Dropdown from '../dropdown';\nimport { NavigableMenu } from '../navigable-container';\n\nfunction mergeProps( defaultProps = {}, props = {} ) {\n\tconst mergedProps = {\n\t\t...defaultProps,\n\t\t...props,\n\t};\n\n\tif ( props.className && defaultProps.className ) {\n\t\tmergedProps.className = classnames(\n\t\t\tprops.className,\n\t\t\tdefaultProps.className\n\t\t);\n\t}\n\n\treturn mergedProps;\n}\n\n/**\n * Whether the argument is a function.\n *\n * @param {*} maybeFunc The argument to check.\n * @return {boolean} True if the argument is a function, false otherwise.\n */\nfunction isFunction( maybeFunc ) {\n\treturn typeof maybeFunc === 'function';\n}\n\nfunction DropdownMenu( dropdownMenuProps ) {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tcontrols,\n\t\ticon = menu,\n\t\tlabel,\n\t\tpopoverProps,\n\t\ttoggleProps,\n\t\tmenuProps,\n\t\tdisableOpenOnArrowDown = false,\n\t\ttext,\n\t\tnoIcons,\n\t} = dropdownMenuProps;\n\n\tif ( ! controls?.length && ! isFunction( children ) ) {\n\t\treturn null;\n\t}\n\n\t// Normalize controls to nested array of objects (sets of controls)\n\tlet controlSets;\n\tif ( controls?.length ) {\n\t\tcontrolSets = controls;\n\t\tif ( ! Array.isArray( controlSets[ 0 ] ) ) {\n\t\t\tcontrolSets = [ controlSets ];\n\t\t}\n\t}\n\tconst mergedPopoverProps = mergeProps(\n\t\t{\n\t\t\tclassName: 'components-dropdown-menu__popover',\n\t\t},\n\t\tpopoverProps\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\tclassName={ classnames( 'components-dropdown-menu', className ) }\n\t\t\tpopoverProps={ mergedPopoverProps }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\tif ( disableOpenOnArrowDown ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! isOpen && event.code === 'ArrowDown' ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tonToggle();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst { as: Toggle = Button, ...restToggleProps } =\n\t\t\t\t\ttoggleProps ?? {};\n\n\t\t\t\tconst mergedToggleProps = mergeProps(\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t'components-dropdown-menu__toggle',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-opened': isOpen,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\trestToggleProps\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<Toggle\n\t\t\t\t\t\t{ ...mergedToggleProps }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tonToggle( event );\n\t\t\t\t\t\t\tif ( mergedToggleProps.onClick ) {\n\t\t\t\t\t\t\t\tmergedToggleProps.onClick( event );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\topenOnArrowDown( event );\n\t\t\t\t\t\t\tif ( mergedToggleProps.onKeyDown ) {\n\t\t\t\t\t\t\t\tmergedToggleProps.onKeyDown( event );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ttext={ text }\n\t\t\t\t\t\tshowTooltip={ toggleProps?.showTooltip ?? true }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ mergedToggleProps.children }\n\t\t\t\t\t</Toggle>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ ( props ) => {\n\t\t\t\tconst mergedMenuProps = mergeProps(\n\t\t\t\t\t{\n\t\t\t\t\t\t'aria-label': label,\n\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t'components-dropdown-menu__menu',\n\t\t\t\t\t\t\t{ 'no-icons': noIcons }\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmenuProps\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<NavigableMenu { ...mergedMenuProps } role=\"menu\">\n\t\t\t\t\t\t{ isFunction( children ) ? children( props ) : null }\n\t\t\t\t\t\t{ controlSets?.flatMap( ( controlSet, indexOfSet ) =>\n\t\t\t\t\t\t\tcontrolSet.map( ( control, indexOfControl ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tkey={ [\n\t\t\t\t\t\t\t\t\t\tindexOfSet,\n\t\t\t\t\t\t\t\t\t\tindexOfControl,\n\t\t\t\t\t\t\t\t\t].join() }\n\t\t\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\tprops.onClose();\n\t\t\t\t\t\t\t\t\t\tif ( control.onClick ) {\n\t\t\t\t\t\t\t\t\t\t\tcontrol.onClick();\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\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'has-separator':\n\t\t\t\t\t\t\t\t\t\t\t\tindexOfSet > 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\tindexOfControl === 0,\n\t\t\t\t\t\t\t\t\t\t\t'is-active': control.isActive,\n\t\t\t\t\t\t\t\t\t\t\t'is-icon-only': ! control.title,\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\ticon={ control.icon }\n\t\t\t\t\t\t\t\t\tlabel={ control.label }\n\t\t\t\t\t\t\t\t\taria-checked={\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemcheckbox' ||\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemradio'\n\t\t\t\t\t\t\t\t\t\t\t? control.isActive\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trole={\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemcheckbox' ||\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemradio'\n\t\t\t\t\t\t\t\t\t\t\t? control.role\n\t\t\t\t\t\t\t\t\t\t\t: 'menuitem'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdisabled={ control.isDisabled }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ control.title }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t) }\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nexport default DropdownMenu;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/dropdown-menu/index.tsx"],"names":["classnames","menu","Button","Dropdown","NavigableMenu","mergeProps","defaultProps","props","mergedProps","className","isFunction","maybeFunc","DropdownMenu","dropdownMenuProps","children","controls","icon","label","popoverProps","toggleProps","menuProps","disableOpenOnArrowDown","text","noIcons","length","controlSets","Array","isArray","mergedPopoverProps","isOpen","onToggle","openOnArrowDown","event","code","preventDefault","as","Toggle","restToggleProps","mergedToggleProps","onClick","onKeyDown","showTooltip","mergedMenuProps","flatMap","controlSet","indexOfSet","map","control","indexOfControl","join","stopPropagation","onClose","isActive","title","role","undefined","isDisabled"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,IAAT,QAAqB,kBAArB;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,WAAnB;AACA,OAAOC,QAAP,MAAqB,aAArB;AACA,SAASC,aAAT,QAA8B,wBAA9B;;AAGA,SAASC,UAAT,GAEyD;AAAA,MAAtDC,YAAsD,uEAAzB,EAAyB;AAAA,MAArBC,KAAqB,uEAAV,EAAU;AACxD,QAAMC,WAAc,GAAG,EACtB,GAAGF,YADmB;AAEtB,OAAGC;AAFmB,GAAvB;;AAKA,MAAKA,KAAK,CAACE,SAAN,IAAmBH,YAAY,CAACG,SAArC,EAAiD;AAChDD,IAAAA,WAAW,CAACC,SAAZ,GAAwBT,UAAU,CACjCO,KAAK,CAACE,SAD2B,EAEjCH,YAAY,CAACG,SAFoB,CAAlC;AAIA;;AAED,SAAOD,WAAP;AACA;;AAED,SAASE,UAAT,CAAqBC,SAArB,EAAmE;AAClE,SAAO,OAAOA,SAAP,KAAqB,UAA5B;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,SAASC,YAAT,CAAuBC,iBAAvB,EAA8D;AAC7D,QAAM;AACLC,IAAAA,QADK;AAELL,IAAAA,SAFK;AAGLM,IAAAA,QAHK;AAILC,IAAAA,IAAI,GAAGf,IAJF;AAKLgB,IAAAA,KALK;AAMLC,IAAAA,YANK;AAOLC,IAAAA,WAPK;AAQLC,IAAAA,SARK;AASLC,IAA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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { menu } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport Dropdown from '../dropdown';\nimport { NavigableMenu } from '../navigable-container';\nimport type { DropdownMenuProps, DropdownOption } from './types';\n\nfunction mergeProps<\n\tT extends { className?: string; [ key: string ]: unknown }\n>( defaultProps: Partial< T > = {}, props: T = {} as T ) {\n\tconst mergedProps: T = {\n\t\t...defaultProps,\n\t\t...props,\n\t};\n\n\tif ( props.className && defaultProps.className ) {\n\t\tmergedProps.className = classnames(\n\t\t\tprops.className,\n\t\t\tdefaultProps.className\n\t\t);\n\t}\n\n\treturn mergedProps;\n}\n\nfunction isFunction( maybeFunc: unknown ): maybeFunc is () => void {\n\treturn typeof maybeFunc === 'function';\n}\n\n/**\n *\n * The DropdownMenu displays a list of actions (each contained in a MenuItem,\n * MenuItemsChoice, or MenuGroup) in a compact way. It appears in a Popover\n * after the user has interacted with an element (a button or icon) or when\n * they perform a specific action.\n *\n * Render a Dropdown Menu with a set of controls:\n *\n * ```jsx\n * import { DropdownMenu } from '@wordpress/components';\n * import {\n * \tmore,\n * \tarrowLeft,\n * \tarrowRight,\n * \tarrowUp,\n * \tarrowDown,\n * } from '@wordpress/icons';\n *\n * const MyDropdownMenu = () => (\n * \t<DropdownMenu\n * \t\ticon={ more }\n * \t\tlabel=\"Select a direction\"\n * \t\tcontrols={ [\n * \t\t\t{\n * \t\t\t\ttitle: 'Up',\n * \t\t\t\ticon: arrowUp,\n * \t\t\t\tonClick: () => console.log( 'up' ),\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\ttitle: 'Right',\n * \t\t\t\ticon: arrowRight,\n * \t\t\t\tonClick: () => console.log( 'right' ),\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\ttitle: 'Down',\n * \t\t\t\ticon: arrowDown,\n * \t\t\t\tonClick: () => console.log( 'down' ),\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\ttitle: 'Left',\n * \t\t\t\ticon: arrowLeft,\n * \t\t\t\tonClick: () => console.log( 'left' ),\n * \t\t\t},\n * \t\t] }\n * \t/>\n * );\n * ```\n *\n * Alternatively, specify a `children` function which returns elements valid for\n * use in a DropdownMenu: `MenuItem`, `MenuItemsChoice`, or `MenuGroup`.\n *\n * ```jsx\n * import { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\n * import { more, arrowUp, arrowDown, trash } from '@wordpress/icons';\n *\n * const MyDropdownMenu = () => (\n * \t<DropdownMenu icon={ more } label=\"Select a direction\">\n * \t\t{ ( { onClose } ) => (\n * \t\t\t<>\n * \t\t\t\t<MenuGroup>\n * \t\t\t\t\t<MenuItem icon={ arrowUp } onClick={ onClose }>\n * \t\t\t\t\t\tMove Up\n * \t\t\t\t\t</MenuItem>\n * \t\t\t\t\t<MenuItem icon={ arrowDown } onClick={ onClose }>\n * \t\t\t\t\t\tMove Down\n * \t\t\t\t\t</MenuItem>\n * \t\t\t\t</MenuGroup>\n * \t\t\t\t<MenuGroup>\n * \t\t\t\t\t<MenuItem icon={ trash } onClick={ onClose }>\n * \t\t\t\t\t\tRemove\n * \t\t\t\t\t</MenuItem>\n * \t\t\t\t</MenuGroup>\n * \t\t\t</>\n * \t\t) }\n * \t</DropdownMenu>\n * );\n * ```\n *\n */\n\nfunction DropdownMenu( dropdownMenuProps: DropdownMenuProps ) {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tcontrols,\n\t\ticon = menu,\n\t\tlabel,\n\t\tpopoverProps,\n\t\ttoggleProps,\n\t\tmenuProps,\n\t\tdisableOpenOnArrowDown = false,\n\t\ttext,\n\t\tnoIcons,\n\t} = dropdownMenuProps;\n\n\tif ( ! controls?.length && ! isFunction( children ) ) {\n\t\treturn null;\n\t}\n\n\t// Normalize controls to nested array of objects (sets of controls)\n\tlet controlSets: DropdownOption[][];\n\tif ( controls?.length ) {\n\t\t// @ts-expect-error The check below is needed because `DropdownMenus`\n\t\t// rendered by `ToolBarGroup` receive controls as a nested array.\n\t\tcontrolSets = controls;\n\t\tif ( ! Array.isArray( controlSets[ 0 ] ) ) {\n\t\t\t// This is not ideal, but at this point we know that `controls` is\n\t\t\t// not a nested array, even if TypeScript doesn't.\n\t\t\tcontrolSets = [ controls as DropdownOption[] ];\n\t\t}\n\t}\n\n\tconst mergedPopoverProps = mergeProps(\n\t\t{\n\t\t\tclassName: 'components-dropdown-menu__popover',\n\t\t},\n\t\tpopoverProps\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\tclassName={ classnames( 'components-dropdown-menu', className ) }\n\t\t\tpopoverProps={ mergedPopoverProps }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst openOnArrowDown = ( event: React.KeyboardEvent ) => {\n\t\t\t\t\tif ( disableOpenOnArrowDown ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! isOpen && event.code === 'ArrowDown' ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tonToggle();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst { as: Toggle = Button, ...restToggleProps } =\n\t\t\t\t\ttoggleProps ?? {};\n\n\t\t\t\tconst mergedToggleProps = mergeProps(\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t'components-dropdown-menu__toggle',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-opened': isOpen,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\trestToggleProps\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<Toggle\n\t\t\t\t\t\t{ ...mergedToggleProps }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t( ( event ) => {\n\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\tif ( mergedToggleProps.onClick ) {\n\t\t\t\t\t\t\t\t\tmergedToggleProps.onClick( event );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} ) as React.MouseEventHandler< HTMLButtonElement >\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonKeyDown={\n\t\t\t\t\t\t\t( ( event ) => {\n\t\t\t\t\t\t\t\topenOnArrowDown( event );\n\t\t\t\t\t\t\t\tif ( mergedToggleProps.onKeyDown ) {\n\t\t\t\t\t\t\t\t\tmergedToggleProps.onKeyDown( event );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} ) as React.KeyboardEventHandler< HTMLButtonElement >\n\t\t\t\t\t\t}\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ttext={ text }\n\t\t\t\t\t\tshowTooltip={ toggleProps?.showTooltip ?? true }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ mergedToggleProps.children }\n\t\t\t\t\t</Toggle>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ ( props ) => {\n\t\t\t\tconst mergedMenuProps = mergeProps(\n\t\t\t\t\t{\n\t\t\t\t\t\t'aria-label': label,\n\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t'components-dropdown-menu__menu',\n\t\t\t\t\t\t\t{ 'no-icons': noIcons }\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmenuProps\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<NavigableMenu { ...mergedMenuProps } role=\"menu\">\n\t\t\t\t\t\t{ isFunction( children ) ? children( props ) : null }\n\t\t\t\t\t\t{ controlSets?.flatMap( ( controlSet, indexOfSet ) =>\n\t\t\t\t\t\t\tcontrolSet.map( ( control, indexOfControl ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tkey={ [\n\t\t\t\t\t\t\t\t\t\tindexOfSet,\n\t\t\t\t\t\t\t\t\t\tindexOfControl,\n\t\t\t\t\t\t\t\t\t].join() }\n\t\t\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\tprops.onClose();\n\t\t\t\t\t\t\t\t\t\tif ( control.onClick ) {\n\t\t\t\t\t\t\t\t\t\t\tcontrol.onClick();\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\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'has-separator':\n\t\t\t\t\t\t\t\t\t\t\t\tindexOfSet > 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\tindexOfControl === 0,\n\t\t\t\t\t\t\t\t\t\t\t'is-active': control.isActive,\n\t\t\t\t\t\t\t\t\t\t\t'is-icon-only': ! control.title,\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\ticon={ control.icon }\n\t\t\t\t\t\t\t\t\tlabel={ control.label }\n\t\t\t\t\t\t\t\t\taria-checked={\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemcheckbox' ||\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemradio'\n\t\t\t\t\t\t\t\t\t\t\t? control.isActive\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trole={\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemcheckbox' ||\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemradio'\n\t\t\t\t\t\t\t\t\t\t\t? control.role\n\t\t\t\t\t\t\t\t\t\t\t: 'menuitem'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdisabled={ control.isDisabled }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ control.title }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t) }\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nexport default DropdownMenu;\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -0,0 +1,149 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { createElement, Fragment } from "@wordpress/element";
3
+
4
+ /**
5
+ * External dependencies
6
+ */
7
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
8
+ /**
9
+ * WordPress dependencies
10
+ */
11
+
12
+ import { forwardRef } from '@wordpress/element';
13
+ import { isRTL } from '@wordpress/i18n';
14
+ import { check, chevronRightSmall, lineSolid } from '@wordpress/icons';
15
+ import { SVG, Circle } from '@wordpress/primitives';
16
+ /**
17
+ * Internal dependencies
18
+ */
19
+
20
+ import Icon from '../icon';
21
+ import * as DropdownMenuStyled from './styles';
22
+ // Menu content's side padding + 4px
23
+ const SUB_MENU_OFFSET_SIDE = 12; // Opposite amount of the top padding of the menu item
24
+
25
+ const SUB_MENU_OFFSET_ALIGN = -8;
26
+ /**
27
+ * `DropdownMenu` displays a menu to the user (such as a set of actions
28
+ * or functions) triggered by a button.
29
+ */
30
+
31
+ export const DropdownMenu = _ref => {
32
+ let {
33
+ // Root props
34
+ defaultOpen,
35
+ open,
36
+ onOpenChange,
37
+ modal = true,
38
+ // Content positioning props
39
+ side = 'bottom',
40
+ sideOffset = 0,
41
+ align = 'center',
42
+ alignOffset = 0,
43
+ // Render props
44
+ children,
45
+ trigger
46
+ } = _ref;
47
+ return createElement(DropdownMenuPrimitive.Root, {
48
+ defaultOpen: defaultOpen,
49
+ open: open,
50
+ onOpenChange: onOpenChange,
51
+ modal: modal,
52
+ dir: isRTL() ? 'rtl' : 'ltr'
53
+ }, createElement(DropdownMenuPrimitive.Trigger, {
54
+ asChild: true
55
+ }, trigger), createElement(DropdownMenuPrimitive.Portal, null, createElement(DropdownMenuStyled.Content, {
56
+ side: side,
57
+ align: align,
58
+ sideOffset: sideOffset,
59
+ alignOffset: alignOffset,
60
+ loop: true
61
+ }, children)));
62
+ };
63
+ export const DropdownSubMenuTrigger = _ref2 => {
64
+ let {
65
+ prefix,
66
+ suffix = createElement(DropdownMenuStyled.SubmenuRtlChevronIcon, {
67
+ icon: chevronRightSmall,
68
+ size: 24
69
+ }),
70
+ children
71
+ } = _ref2;
72
+ return createElement(Fragment, null, prefix && createElement(DropdownMenuStyled.ItemPrefixWrapper, null, prefix), children, suffix && createElement(DropdownMenuStyled.ItemSuffixWrapper, null, suffix));
73
+ };
74
+ export const DropdownSubMenu = _ref3 => {
75
+ let {
76
+ // Sub props
77
+ defaultOpen,
78
+ open,
79
+ onOpenChange,
80
+ // Sub trigger props
81
+ disabled,
82
+ textValue,
83
+ // Render props
84
+ children,
85
+ trigger
86
+ } = _ref3;
87
+ return createElement(DropdownMenuPrimitive.Sub, {
88
+ defaultOpen: defaultOpen,
89
+ open: open,
90
+ onOpenChange: onOpenChange
91
+ }, createElement(DropdownMenuStyled.SubTrigger, {
92
+ disabled: disabled,
93
+ textValue: textValue
94
+ }, trigger), createElement(DropdownMenuPrimitive.Portal, null, createElement(DropdownMenuStyled.SubContent, {
95
+ loop: true,
96
+ sideOffset: SUB_MENU_OFFSET_SIDE,
97
+ alignOffset: SUB_MENU_OFFSET_ALIGN
98
+ }, children)));
99
+ };
100
+ export const DropdownMenuLabel = props => createElement(DropdownMenuStyled.Label, props);
101
+ export const DropdownMenuGroup = props => createElement(DropdownMenuPrimitive.Group, props);
102
+ export const DropdownMenuItem = forwardRef((_ref4, forwardedRef) => {
103
+ let {
104
+ children,
105
+ prefix,
106
+ suffix,
107
+ ...props
108
+ } = _ref4;
109
+ return createElement(DropdownMenuStyled.Item, _extends({}, props, {
110
+ ref: forwardedRef
111
+ }), prefix && createElement(DropdownMenuStyled.ItemPrefixWrapper, null, prefix), children, suffix && createElement(DropdownMenuStyled.ItemSuffixWrapper, null, suffix));
112
+ });
113
+ export const DropdownMenuCheckboxItem = _ref5 => {
114
+ let {
115
+ children,
116
+ checked = false,
117
+ suffix,
118
+ ...props
119
+ } = _ref5;
120
+ return createElement(DropdownMenuStyled.CheckboxItem, _extends({}, props, {
121
+ checked: checked
122
+ }), createElement(DropdownMenuStyled.ItemPrefixWrapper, null, createElement(DropdownMenuStyled.ItemIndicator, null, (checked === 'indeterminate' || checked === true) && createElement(Icon, {
123
+ icon: checked === 'indeterminate' ? lineSolid : check,
124
+ size: 24
125
+ }))), children, suffix && createElement(DropdownMenuStyled.ItemSuffixWrapper, null, suffix));
126
+ };
127
+ export const DropdownMenuRadioGroup = props => createElement(DropdownMenuPrimitive.RadioGroup, props);
128
+ const radioDot = createElement(SVG, {
129
+ viewBox: "0 0 24 24",
130
+ xmlns: "http://www.w3.org/2000/svg"
131
+ }, createElement(Circle, {
132
+ cx: 12,
133
+ cy: 12,
134
+ r: 3,
135
+ fill: "currentColor"
136
+ }));
137
+ export const DropdownMenuRadioItem = _ref6 => {
138
+ let {
139
+ children,
140
+ suffix,
141
+ ...props
142
+ } = _ref6;
143
+ return createElement(DropdownMenuStyled.RadioItem, props, createElement(DropdownMenuStyled.ItemPrefixWrapper, null, createElement(DropdownMenuStyled.ItemIndicator, null, createElement(Icon, {
144
+ icon: radioDot,
145
+ size: 22
146
+ }))), children, suffix && createElement(DropdownMenuStyled.ItemSuffixWrapper, null, suffix));
147
+ };
148
+ export const DropdownMenuSeparator = props => createElement(DropdownMenuStyled.Separator, props);
149
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/dropdown-menu-v2/index.tsx"],"names":["DropdownMenuPrimitive","forwardRef","isRTL","check","chevronRightSmall","lineSolid","SVG","Circle","Icon","DropdownMenuStyled","SUB_MENU_OFFSET_SIDE","SUB_MENU_OFFSET_ALIGN","DropdownMenu","defaultOpen","open","onOpenChange","modal","side","sideOffset","align","alignOffset","children","trigger","DropdownSubMenuTrigger","prefix","suffix","DropdownSubMenu","disabled","textValue","DropdownMenuLabel","props","DropdownMenuGroup","DropdownMenuItem","forwardedRef","DropdownMenuCheckboxItem","checked","DropdownMenuRadioGroup","radioDot","DropdownMenuRadioItem","DropdownMenuSeparator"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\nimport { check, chevronRightSmall, lineSolid } from '@wordpress/icons';\nimport { SVG, Circle } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport Icon from '../icon';\nimport * as DropdownMenuStyled from './styles';\nimport type {\n\tDropdownMenuProps,\n\tDropdownSubMenuProps,\n\tDropdownMenuItemProps,\n\tDropdownMenuLabelProps,\n\tDropdownMenuGroupProps,\n\tDropdownMenuCheckboxItemProps,\n\tDropdownMenuRadioGroupProps,\n\tDropdownMenuRadioItemProps,\n\tDropdownMenuSeparatorProps,\n\tDropdownSubMenuTriggerProps,\n} from './types';\n\n// Menu content's side padding + 4px\nconst SUB_MENU_OFFSET_SIDE = 12;\n// Opposite amount of the top padding of the menu item\nconst SUB_MENU_OFFSET_ALIGN = -8;\n\n/**\n * `DropdownMenu` displays a menu to the user (such as a set of actions\n * or functions) triggered by a button.\n */\nexport const DropdownMenu = ( {\n\t// Root props\n\tdefaultOpen,\n\topen,\n\tonOpenChange,\n\tmodal = true,\n\t// Content positioning props\n\tside = 'bottom',\n\tsideOffset = 0,\n\talign = 'center',\n\talignOffset = 0,\n\t// Render props\n\tchildren,\n\ttrigger,\n}: DropdownMenuProps ) => {\n\treturn (\n\t\t<DropdownMenuPrimitive.Root\n\t\t\tdefaultOpen={ defaultOpen }\n\t\t\topen={ open }\n\t\t\tonOpenChange={ onOpenChange }\n\t\t\tmodal={ modal }\n\t\t\tdir={ isRTL() ? 'rtl' : 'ltr' }\n\t\t>\n\t\t\t<DropdownMenuPrimitive.Trigger asChild>\n\t\t\t\t{ trigger }\n\t\t\t</DropdownMenuPrimitive.Trigger>\n\t\t\t<DropdownMenuPrimitive.Portal>\n\t\t\t\t<DropdownMenuStyled.Content\n\t\t\t\t\tside={ side }\n\t\t\t\t\talign={ align }\n\t\t\t\t\tsideOffset={ sideOffset }\n\t\t\t\t\talignOffset={ alignOffset }\n\t\t\t\t\tloop={ true }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</DropdownMenuStyled.Content>\n\t\t\t</DropdownMenuPrimitive.Portal>\n\t\t</DropdownMenuPrimitive.Root>\n\t);\n};\n\nexport const DropdownSubMenuTrigger = ( {\n\tprefix,\n\tsuffix = (\n\t\t<DropdownMenuStyled.SubmenuRtlChevronIcon\n\t\t\ticon={ chevronRightSmall }\n\t\t\tsize={ 24 }\n\t\t/>\n\t),\n\tchildren,\n}: DropdownSubMenuTriggerProps ) => {\n\treturn (\n\t\t<>\n\t\t\t{ prefix && (\n\t\t\t\t<DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t\t\t{ prefix }\n\t\t\t\t</DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t) }\n\t\t\t{ children }\n\t\t\t{ suffix && (\n\t\t\t\t<DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t\t\t{ suffix }\n\t\t\t\t</DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport const DropdownSubMenu = ( {\n\t// Sub props\n\tdefaultOpen,\n\topen,\n\tonOpenChange,\n\t// Sub trigger props\n\tdisabled,\n\ttextValue,\n\t// Render props\n\tchildren,\n\ttrigger,\n}: DropdownSubMenuProps ) => {\n\treturn (\n\t\t<DropdownMenuPrimitive.Sub\n\t\t\tdefaultOpen={ defaultOpen }\n\t\t\topen={ open }\n\t\t\tonOpenChange={ onOpenChange }\n\t\t>\n\t\t\t<DropdownMenuStyled.SubTrigger\n\t\t\t\tdisabled={ disabled }\n\t\t\t\ttextValue={ textValue }\n\t\t\t>\n\t\t\t\t{ trigger }\n\t\t\t</DropdownMenuStyled.SubTrigger>\n\t\t\t<DropdownMenuPrimitive.Portal>\n\t\t\t\t<DropdownMenuStyled.SubContent\n\t\t\t\t\tloop\n\t\t\t\t\tsideOffset={ SUB_MENU_OFFSET_SIDE }\n\t\t\t\t\talignOffset={ SUB_MENU_OFFSET_ALIGN }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</DropdownMenuStyled.SubContent>\n\t\t\t</DropdownMenuPrimitive.Portal>\n\t\t</DropdownMenuPrimitive.Sub>\n\t);\n};\n\nexport const DropdownMenuLabel = ( props: DropdownMenuLabelProps ) => (\n\t<DropdownMenuStyled.Label { ...props } />\n);\n\nexport const DropdownMenuGroup = ( props: DropdownMenuGroupProps ) => (\n\t<DropdownMenuPrimitive.Group { ...props } />\n);\n\nexport const DropdownMenuItem = forwardRef(\n\t(\n\t\t{ children, prefix, suffix, ...props }: DropdownMenuItemProps,\n\t\tforwardedRef: React.ForwardedRef< any >\n\t) => {\n\t\treturn (\n\t\t\t<DropdownMenuStyled.Item { ...props } ref={ forwardedRef }>\n\t\t\t\t{ prefix && (\n\t\t\t\t\t<DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t\t\t\t{ prefix }\n\t\t\t\t\t</DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ suffix && (\n\t\t\t\t\t<DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t</DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t\t) }\n\t\t\t</DropdownMenuStyled.Item>\n\t\t);\n\t}\n);\n\nexport const DropdownMenuCheckboxItem = ( {\n\tchildren,\n\tchecked = false,\n\tsuffix,\n\t...props\n}: DropdownMenuCheckboxItemProps ) => {\n\treturn (\n\t\t<DropdownMenuStyled.CheckboxItem { ...props } checked={ checked }>\n\t\t\t<DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t\t<DropdownMenuStyled.ItemIndicator>\n\t\t\t\t\t{ ( checked === 'indeterminate' || checked === true ) && (\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\tchecked === 'indeterminate' ? lineSolid : check\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenuStyled.ItemIndicator>\n\t\t\t</DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t{ children }\n\t\t\t{ suffix && (\n\t\t\t\t<DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t\t\t{ suffix }\n\t\t\t\t</DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t) }\n\t\t</DropdownMenuStyled.CheckboxItem>\n\t);\n};\n\nexport const DropdownMenuRadioGroup = (\n\tprops: DropdownMenuRadioGroupProps\n) => <DropdownMenuPrimitive.RadioGroup { ...props } />;\n\nconst radioDot = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Circle cx={ 12 } cy={ 12 } r={ 3 } fill=\"currentColor\"></Circle>\n\t</SVG>\n);\n\nexport const DropdownMenuRadioItem = ( {\n\tchildren,\n\tsuffix,\n\t...props\n}: DropdownMenuRadioItemProps ) => {\n\treturn (\n\t\t<DropdownMenuStyled.RadioItem { ...props }>\n\t\t\t<DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t\t<DropdownMenuStyled.ItemIndicator>\n\t\t\t\t\t<Icon icon={ radioDot } size={ 22 } />\n\t\t\t\t</DropdownMenuStyled.ItemIndicator>\n\t\t\t</DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t{ children }\n\t\t\t{ suffix && (\n\t\t\t\t<DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t\t\t{ suffix }\n\t\t\t\t</DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t) }\n\t\t</DropdownMenuStyled.RadioItem>\n\t);\n};\n\nexport const DropdownMenuSeparator = ( props: DropdownMenuSeparatorProps ) => (\n\t<DropdownMenuStyled.Separator { ...props } />\n);\n"]}